{"version":3,"file":"scripts/chunks/src_widgets_smartbanner_smartbanner_js.b71c6f7493ae2f95ee28.js","mappings":"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","sources":["webpack://disp0001/./src/widgets/smartbanner/optionparser.js","webpack://disp0001/./src/widgets/smartbanner/detector.js","webpack://disp0001/./src/widgets/smartbanner/bakery.js","webpack://disp0001/./src/widgets/smartbanner/smartbanner.js"],"sourcesContent":["function valid(name) {\r\n // TODO: validate against options dictionary\r\n return name.indexOf('smartbanner:') !== -1 && name.split(':')[1].length > 0;\r\n}\r\n\r\nfunction convertToCamelCase(name) {\r\n let parts = name.split('-');\r\n parts.map(function(part, index) {\r\n if (index > 0) {\r\n parts[index] = part.charAt(0).toUpperCase() + part.substring(1);\r\n }\r\n });\r\n return parts.join('');\r\n}\r\n\r\nexport default class OptionParser {\r\n\r\n parse() {\r\n let metas = document.getElementsByTagName('meta');\r\n let options = {};\r\n Array.apply(null, metas).forEach(function(meta) {\r\n let optionName = null;\r\n let name = meta.getAttribute('name');\r\n let content = meta.getAttribute('content');\r\n if (name && content && valid(name) && content.length > 0) {\r\n optionName = name.split(':')[1];\r\n if (optionName.indexOf('-') !== -1) {\r\n optionName = convertToCamelCase(optionName);\r\n }\r\n options[optionName] = content;\r\n }\r\n });\r\n return options;\r\n }\r\n\r\n}\r\n","export default class Detector {\r\n\r\n static platform() {\r\n let maxTouchPoints = window.navigator.maxTouchPoints;\r\n let userAgent = window.navigator.userAgent;\r\n\r\n if (/Android/i.test(userAgent)){\r\n return 'android';\r\n // maxTouchPoints is the only effective method to detect iPad iOS 13+\r\n // FMI https://developer.apple.com/forums/thread/119186\r\n } else if ((!window.MSStream && !/X11|Linux|Windows/i.test(userAgent) && maxTouchPoints && maxTouchPoints > 0) || /iPhone|iPad|iPod/i.test(userAgent)) {\r\n return 'ios';\r\n }\r\n }\r\n\r\n static userAgentMatchesRegex(regexString) {\r\n return new RegExp(regexString).test(window.navigator.userAgent);\r\n }\r\n\r\n static jQueryMobilePage() {\r\n return typeof global.$ !== 'undefined' && global.$.mobile !== 'undefined' && document.querySelector('.ui-page') !== null;\r\n }\r\n\r\n static wrapperElement() {\r\n let selector = Detector.jQueryMobilePage() ? '.ui-page' : 'html';\r\n return document.querySelectorAll(selector);\r\n }\r\n\r\n}\r\n","export default class Bakery {\r\n\r\n static getCookieExpiresString(hideTtl) {\r\n const now = new Date();\r\n const expireTime = new Date(now.getTime() + hideTtl);\r\n return `expires=${expireTime.toGMTString()};`;\r\n }\r\n\r\n static bake(hideTtl, hidePath) {\r\n document.cookie = `smartbanner_exited=1; ${hideTtl ? Bakery.getCookieExpiresString(hideTtl) : ''} path=${hidePath}`;\r\n }\r\n\r\n static unbake() {\r\n document.cookie = 'smartbanner_exited=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';\r\n }\r\n\r\n static get baked() {\r\n let value = document.cookie.replace(/(?:(?:^|.*;\\s*)smartbanner_exited\\s*=\\s*([^;]*).*$)|^.*$/, '$1');\r\n return value === '1';\r\n }\r\n\r\n}\r\n","import OptionParser from './optionparser.js';\r\nimport Detector from './detector.js';\r\nimport Bakery from './bakery.js';\r\nimport Cookies from 'js-cookie'\r\n\r\nconst DEFAULT_PLATFORMS = 'android,ios';\r\nconst DEFAULT_CLOSE_LABEL = 'Close';\r\nconst DEFAULT_BUTTON_LABEL = 'Open';\r\n\r\nlet datas = {\r\n originalTop: 'data-smartbanner-original-top',\r\n originalMarginTop: 'data-smartbanner-original-margin-top'\r\n};\r\n\r\nfunction handleExitClick(event, self) {\r\n self.exit();\r\n event.preventDefault();\r\n}\r\nfunction handleClickout(event, self) {\r\n self.clickout();\r\n}\r\n\r\nfunction handleJQueryMobilePageLoad(event) {\r\n if (!this.positioningDisabled) {\r\n setContentPosition(event.data.height);\r\n }\r\n}\r\n\r\nfunction addEventListeners(self) {\r\n let closeIcon = document.querySelector('.js_smartbanner__exit');\r\n closeIcon.addEventListener('click', (event) => handleExitClick(event, self));\r\n\r\n let button = document.querySelector('.js_smartbanner__button');\r\n button.addEventListener('click', (event) => handleClickout(event, self));\r\n\r\n if (Detector.jQueryMobilePage()) {\r\n $(document).on('pagebeforeshow', self, handleJQueryMobilePageLoad);\r\n }\r\n}\r\n\r\nfunction removeEventListeners() {\r\n if (Detector.jQueryMobilePage()) {\r\n $(document).off('pagebeforeshow', handleJQueryMobilePageLoad);\r\n }\r\n}\r\n\r\nfunction setContentPosition(value) {\r\n let wrappers = Detector.wrapperElement();\r\n for (let i = 0, l = wrappers.length, wrapper; i < l; i++) {\r\n wrapper = wrappers[i];\r\n if (Detector.jQueryMobilePage()) {\r\n if (wrapper.getAttribute(datas.originalTop)) {\r\n continue;\r\n }\r\n let top = parseFloat(getComputedStyle(wrapper).top);\r\n wrapper.setAttribute(datas.originalTop, isNaN(top) ? 0 : top);\r\n wrapper.style.top = value + 'px';\r\n } else {\r\n if (wrapper.getAttribute(datas.originalMarginTop)) {\r\n continue;\r\n }\r\n let margin = parseFloat(getComputedStyle(wrapper).marginTop);\r\n wrapper.setAttribute(datas.originalMarginTop, isNaN(margin) ? 0 : margin);\r\n wrapper.style.marginTop = value + 'px';\r\n }\r\n }\r\n}\r\n\r\nfunction restoreContentPosition() {\r\n let wrappers = Detector.wrapperElement();\r\n for (let i = 0, l = wrappers.length, wrapper; i < l; i++) {\r\n wrapper = wrappers[i];\r\n if (Detector.jQueryMobilePage() && wrapper.getAttribute(datas.originalTop)) {\r\n wrapper.style.top = wrapper.getAttribute(datas.originalTop) + 'px';\r\n } else if (wrapper.getAttribute(datas.originalMarginTop)) {\r\n wrapper.style.marginTop = wrapper.getAttribute(datas.originalMarginTop) + 'px';\r\n }\r\n }\r\n}\r\n\r\nfunction adjustHeader() {\r\n var el = document.getElementsByClassName(\"smartbanner\");\r\n if (el.length > 0 && $('#smartbanner').css('display') != 'none') {\r\n $('body').addClass('smartbanner-active');\r\n } else {\r\n $('body').removeClass('smartbanner-active');\r\n }\r\n}\r\n\r\nexport default class SmartBanner {\r\n\r\n constructor() {\r\n let parser = new OptionParser();\r\n this.options = parser.parse();\r\n this.platform = Detector.platform();\r\n\r\n let event = new Event('smartbanner.init');\r\n document.dispatchEvent(event);\r\n }\r\n\r\n // DEPRECATED. Will be removed.\r\n get originalTop() {\r\n let wrapper = Detector.wrapperElement()[0];\r\n return parseFloat(wrapper.getAttribute(datas.originalTop));\r\n }\r\n\r\n // DEPRECATED. Will be removed.\r\n get originalTopMargin() {\r\n let wrapper = Detector.wrapperElement()[0];\r\n return parseFloat(wrapper.getAttribute(datas.originalMarginTop));\r\n }\r\n\r\n get priceSuffix() {\r\n if (this.platform === 'ios' && this.options.priceSuffixApple) {\r\n return this.options.priceSuffixApple;\r\n } else if (this.platform === 'android' && this.options.priceSuffixGoogle) {\r\n return this.options.priceSuffixGoogle;\r\n }\r\n return '';\r\n }\r\n\r\n get price() {\r\n if (this.options.price && this.options.price !== '') {\r\n return this.options.price;\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n get icon() {\r\n if (this.platform === 'android') {\r\n return this.options.iconGoogle;\r\n } else {\r\n return this.options.iconApple;\r\n }\r\n }\r\n\r\n get buttonUrl() {\r\n if (this.platform === 'android') {\r\n return this.options.buttonUrlGoogle;\r\n } else if (this.platform === 'ios') {\r\n return this.options.buttonUrlApple;\r\n }\r\n return '#';\r\n }\r\n\r\n get closeLabel() {\r\n return this.options.closeLabel !== undefined ? this.options.closeLabel : DEFAULT_CLOSE_LABEL;\r\n }\r\n\r\n get buttonLabel() {\r\n let buttonLabel = this.options.button;\r\n if (this.platform === 'android' && this.options.buttonGoogle) {\r\n buttonLabel = this.options.buttonGoogle;\r\n } else if (this.platform === 'ios' && this.options.buttonApple) {\r\n buttonLabel = this.options.buttonApple;\r\n }\r\n\r\n return buttonLabel || DEFAULT_BUTTON_LABEL;\r\n }\r\n\r\n get html() {\r\n let modifier = !this.options.customDesignModifier ? this.platform : this.options.customDesignModifier;\r\n return `<div class=\"smartbanner smartbanner--${modifier} js_smartbanner\" id=\"smartbanner\" style=\"display: none;\">\r\n <a href=\"#\" class=\"smartbanner__exit js_smartbanner__exit\" title=\"${this.closeLabel}\" rel=\"nofollow\"></a>\r\n <div class=\"smartbanner__icon\" style=\"background-image: url(${this.icon});\"></div>\r\n <div class=\"smartbanner__info\">\r\n <div>\r\n <div class=\"smartbanner__info__title\">${this.options.title}</div>\r\n <div class=\"smartbanner__info__author\">${this.options.author}</div>\r\n <div class=\"smartbanner__info__price\">${this.price}${this.priceSuffix}</div>\r\n </div>\r\n </div>\r\n <a href=\"${this.buttonUrl}\" target=\"_blank\" class=\"smartbanner__button js_smartbanner__button ui button\" rel=\"noopener\" aria-label=\"${this.buttonLabel}\">\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M10.5 0H15.5C15.75 0 16 0.25 16 0.5V5.5C16 5.78125 15.75 6 15.5 6C15.2188 6 15 5.78125 15 5.5V1.71875L7.34375 9.375C7.15625 9.5625 6.8125 9.5625 6.625 9.375C6.4375 9.1875 6.4375 8.84375 6.625 8.65625L14.2812 1H10.5C10.2188 1 10 0.78125 10 0.5C10 0.25 10.2188 0 10.5 0ZM2 1H6.5C6.75 1 7 1.25 7 1.5C7 1.78125 6.75 2 6.5 2H2C1.4375 2 1 2.46875 1 3V14C1 14.5625 1.4375 15 2 15H13C13.5312 15 14 14.5625 14 14V9.5C14 9.25 14.2188 9 14.5 9C14.75 9 15 9.25 15 9.5V14C15 15.125 14.0938 16 13 16H2C0.875 16 0 15.125 0 14V3C0 1.90625 0.875 1 2 1Z\" fill=\"#444444\"/>\r\n </svg>\r\n\r\n <span class=\"smartbanner__button__label\">${this.buttonLabel}</span></a>\r\n </div>`;\r\n }\r\n\r\n get height() {\r\n try {\r\n return document.querySelector('.js_smartbanner').offsetHeight;\r\n } catch(error) {\r\n return 0;\r\n }\r\n }\r\n\r\n get platformEnabled() {\r\n let enabledPlatforms = this.options.enabledPlatforms || DEFAULT_PLATFORMS;\r\n return enabledPlatforms && enabledPlatforms.replace(/\\s+/g, '').split(',').indexOf(this.platform) !== -1;\r\n }\r\n\r\n get positioningDisabled() {\r\n return this.options.disablePositioning === 'true';\r\n }\r\n\r\n get apiEnabled() {\r\n return this.options.api === 'true' || this.options.api === 'yes';\r\n }\r\n\r\n get userAgentExcluded() {\r\n if (!this.options.excludeUserAgentRegex) {\r\n return false;\r\n }\r\n return Detector.userAgentMatchesRegex(this.options.excludeUserAgentRegex);\r\n }\r\n\r\n get userAgentIncluded() {\r\n if (!this.options.includeUserAgentRegex) {\r\n return false;\r\n }\r\n return Detector.userAgentMatchesRegex(this.options.includeUserAgentRegex);\r\n }\r\n\r\n get hideTtl() {\r\n return this.options.hideTtl ? parseInt(this.options.hideTtl) : false;\r\n }\r\n\r\n get hidePath() {\r\n return this.options.hidePath ? this.options.hidePath : '/';\r\n }\r\n\r\n publish() { \r\n if (Object.keys(this.options).length === 0) {\r\n throw new Error('No options detected. Please consult documentation.');\r\n }\r\n\r\n if (Bakery.baked) {\r\n return false;\r\n }\r\n\r\n // User Agent was explicetely excluded by defined excludeUserAgentRegex\r\n if (this.userAgentExcluded) {\r\n return false;\r\n }\r\n\r\n // User agent was neither included by platformEnabled,\r\n // nor by defined includeUserAgentRegex\r\n if (!(this.platformEnabled || this.userAgentIncluded)) {\r\n return false;\r\n }\r\n \r\n let bannerDiv = document.createElement('div');\r\n document.querySelector('body').prepend(bannerDiv);\r\n bannerDiv.outerHTML = this.html;\r\n let event = new Event('smartbanner.view');\r\n document.dispatchEvent(event);\r\n //if (!this.positioningDisabled) {\r\n //setContentPosition(this.height);\r\n //}\r\n\r\n const hideSmartBanner = Cookies.get(`HideSmartBanner`)\r\n if ($('html').hasClass('gday-theme') && !hideSmartBanner) {\r\n $('#smartbanner').fadeIn(100);\r\n addEventListeners(this);\r\n adjustHeader(); \r\n }\r\n \r\n \r\n \r\n }\r\n\r\n exit() {\r\n Cookies.set(`HideSmartBanner`, true, {\r\n expires: 1, // in days\r\n path: '/',\r\n })\r\n removeEventListeners();\r\n if (!this.positioningDisabled) {\r\n restoreContentPosition();\r\n }\r\n let banner = document.querySelector('.js_smartbanner');\r\n document.querySelector('body').removeChild(banner);\r\n let event = new Event('smartbanner.exit');\r\n document.dispatchEvent(event);\r\n Bakery.bake(this.hideTtl, this.hidePath);\r\n adjustHeader();\r\n }\r\n\r\n clickout() { \r\n let event = new Event('smartbanner.clickout');\r\n document.dispatchEvent(event);\r\n adjustHeader();\r\n }\r\n}\r\n"],"names":["OptionParser","parse","metas","document","getElementsByTagName","options","Array","apply","forEach","meta","optionName","name","getAttribute","content","indexOf","split","length","valid","parts","map","part","index","charAt","toUpperCase","substring","join","convertToCamelCase","Detector","platform","maxTouchPoints","window","navigator","userAgent","test","MSStream","userAgentMatchesRegex","regexString","RegExp","jQueryMobilePage","global","$","mobile","querySelector","wrapperElement","selector","querySelectorAll","Bakery","getCookieExpiresString","hideTtl","now","Date","getTime","toGMTString","bake","hidePath","cookie","unbake","baked","replace","datas","originalTop","originalMarginTop","handleJQueryMobilePageLoad","event","this","positioningDisabled","value","wrappers","wrapper","i","l","top","parseFloat","getComputedStyle","setAttribute","isNaN","style","margin","marginTop","setContentPosition","data","height","adjustHeader","getElementsByClassName","css","addClass","removeClass","SmartBanner","constructor","parser","Event","dispatchEvent","originalTopMargin","priceSuffix","priceSuffixApple","priceSuffixGoogle","price","icon","iconGoogle","iconApple","buttonUrl","buttonUrlGoogle","buttonUrlApple","closeLabel","undefined","buttonLabel","button","buttonGoogle","buttonApple","html","customDesignModifier","title","author","offsetHeight","error","platformEnabled","enabledPlatforms","disablePositioning","apiEnabled","api","userAgentExcluded","excludeUserAgentRegex","userAgentIncluded","includeUserAgentRegex","parseInt","publish","Object","keys","Error","bannerDiv","createElement","prepend","outerHTML","hideSmartBanner","Cookies","get","hasClass","fadeIn","self","addEventListener","exit","preventDefault","handleExitClick","clickout","handleClickout","on","addEventListeners","set","expires","path","off","restoreContentPosition","banner","removeChild"],"sourceRoot":""}