{"version":3,"file":"scripts/chunks/src_widgets_smartbanner_index_js.f9b4c08fcff557bd9b60.js","mappings":"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","sources":["webpack://disp0001/./src/widgets/smartbanner/index.js","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":["import SmartBanner from './smartbanner.js';\r\n\r\nlet smartbanner;\r\n\r\nwindow.addEventListener('load', function() {\r\n smartbanner = new SmartBanner();\r\n if (smartbanner.apiEnabled) {\r\n window.smartbanner = smartbanner;\r\n } else {\r\n smartbanner.publish();\r\n }\r\n});\r\n","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":["smartbanner","window","addEventListener","SmartBanner","apiEnabled","publish","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","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","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","api","userAgentExcluded","excludeUserAgentRegex","userAgentIncluded","includeUserAgentRegex","parseInt","Object","keys","Error","bannerDiv","createElement","prepend","outerHTML","hideSmartBanner","Cookies","get","hasClass","fadeIn","self","exit","preventDefault","handleExitClick","clickout","handleClickout","on","addEventListeners","set","expires","path","off","restoreContentPosition","banner","removeChild"],"sourceRoot":""}