{"version":3,"sources":["webpack:///./src/client/default/js/components/notificationComponent.js","webpack:///./src/client/default/js/base/baseComponent.js","webpack:///./node_modules/js-cookie/src/js.cookie.js","webpack:///./src/microtemplates/notification/notificationList.ejs"],"names":["NotificationComponent","element","notificationActiveId","this","CUSTOM_MESSAGES","NOTIFICATION","push","addNotification","close","closeNotification","pushall","addNotificationAll","pushFirstAvailable","addFirstAvailableNotification","notifications","forEach","notification","firstNotification","find","n","isNotificationClosed","setTimeout","notificationCanBeAdded","stateUpdate","id","title","notificationTitle","description","notificationDescription","icon","notificationIcon","quietPeriod","notificationQuietPeriod","maxViews","notificationMaxViews","image","notificationImage","rank","notificationPromoPush","notificationPost","notificationCtaLink","notificationCtaLabel","subtitle","notificationSubTitle","isfirst","setState","notificationToClose","notificationTimer","$el","lastElementChild","classList","add","skipCookie","document","querySelector","state","Cookies","set","expires","Date","getTime","incrementViews","closed","Object","keys","some","remove","EMIT","get","querySelectorAll","stateChanges","notificationList","map","sort","a","b","firstNotificationOpen","slice","reverse","e","firstNotificationIndex","findIndex","emitTracking","trackLinkClass","length","innerHTML","notificationListTemplate","trackingClick","notificationClosed","views","shown","action","label","TRACKING_EVENTS","update","eventCategory","eventAction","eventLabel","_this","link","$on","baseComponent","BaseComponent","_componentElement","setAttribute","_checkMessages","compOptions","options","dataset","filter","entry","includes","optionValue","cleanEntry","cleanOptionKey","JSON","parse","replace","convertType","deepFreeze","getAttribute","events","cb","elements","Bean","on","stopPropagation","one","off","fire","container","message","_loading","LOADER_EVENTS","show","body","error","hide","option","optionReturn","key","str","charAt","toLocaleLowerCase","BaseGiaComponent","factory","module","exports","OldCookies","window","api","noConflict","extend","i","result","arguments","attributes","decode","s","decodeURIComponent","init","converter","value","path","defaults","toUTCString","stringify","test","write","encodeURIComponent","String","escape","stringifiedAttributes","attributeName","split","cookie","json","jar","cookies","parts","join","name","read","getJSON","withConverter","anonymous","locals","escapeFn","include","rethrow","err","flnm","lineno","esc","lines","start","Math","max","end","min","filename","context","line","curr","markup","undefined","_MATCH_HTML","encode_char","_ENCODE_HTML_RULES","c","__line","__lines","__filename","__output","__append","index"],"mappings":"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","file":"js/component-notificationComponent-js.chunks.js","sourcesContent":["import baseComponent from '../base/baseComponent';\nimport notificationListTemplate from 'MICROTEMPLATES/notification/notificationList.ejs';\nimport Cookies from 'js-cookie';\n\nexport default class NotificationComponent extends baseComponent {\n get Messages() {\n return {\n [this.CUSTOM_MESSAGES.NOTIFICATION.push]: this.addNotification,\n [this.CUSTOM_MESSAGES.NOTIFICATION.close]: this.closeNotification,\n [this.CUSTOM_MESSAGES.NOTIFICATION.pushall]: this.addNotificationAll,\n [this.CUSTOM_MESSAGES.NOTIFICATION.pushFirstAvailable]: this.addFirstAvailableNotification\n };\n }\n\n constructor(element) {\n super(element);\n this.notificationActiveId = '';\n }\n\n addNotificationAll(notifications) {\n notifications.forEach((notification) => {\n this.addNotification(notification);\n });\n }\n\n addFirstAvailableNotification({ notifications }) {\n let firstNotification = notifications.find((n) => {\n return !this.isNotificationClosed(n);\n });\n if (firstNotification) {\n setTimeout(() => {\n this.addNotification(firstNotification);\n }, 3000);\n }\n }\n\n addNotification(notification) {\n if (this.notificationCanBeAdded(notification)) {\n let stateUpdate = {};\n stateUpdate[notification.id] = {\n id: notification.id,\n title: notification.notificationTitle,\n description: notification.notificationDescription,\n icon: notification.notificationIcon,\n quietPeriod: notification.notificationQuietPeriod,\n maxViews: notification.notificationMaxViews,\n image: notification.notificationImage,\n rank: notification.rank,\n notificationPromoPush: notification.notificationPromoPush,\n notificationPost: notification.notificationPost,\n notificationCtaLink: notification.notificationCtaLink,\n notificationCtaLabel: notification.notificationCtaLabel,\n subtitle: notification.notificationSubTitle,\n isfirst: false\n };\n\n this.setState(stateUpdate);\n\n if (notification.notificationToClose) {\n this.closeNotification({ id: notification.notificationToClose });\n }\n\n if (notification.notificationTimer) {\n setTimeout(() => {\n this.$el.lastElementChild.classList.add('closing');\n }, notification.notificationTimer);\n setTimeout(() => {\n this.closeNotification({ id: notification.id, skipCookie: true });\n }, notification.notificationTimer + +500);\n }\n\n document.querySelector('body').classList.add(`notification-in`);\n }\n }\n\n closeNotification({ id, skipCookie }) {\n let notification = this.state[id];\n if (notification) {\n if (!skipCookie) {\n Cookies.set('c4_notification_closed_' + notification.id, 'true', {\n expires: new Date(new Date().getTime() + notification.quietPeriod * 60 * 1000)\n });\n }\n this.incrementViews(notification);\n notification.closed = true;\n let stateUpdate = {};\n stateUpdate[id] = notification;\n this.setState(stateUpdate);\n let hasNotificationOpen = Object.keys(this.state).some((id) => {\n return !this.state[id].closed;\n });\n\n if (!hasNotificationOpen) {\n document.querySelector('body').classList.remove(`notification-in`);\n }\n this.EMIT(this.CUSTOM_MESSAGES.NOTIFICATION.closed, { id: id });\n\n let firstNotification = Cookies.get('c4_notification_first_' + notification.id);\n if (firstNotification) {\n Cookies.remove('c4_notification_first_' + notification.id);\n }\n }\n this.$el.querySelectorAll('.push-notification').forEach((notification) => {\n notification.classList.add('opening');\n });\n }\n\n stateChange(stateChanges) {\n let notificationList = Object.keys(this.state)\n .map((id) => {\n return this.state[id];\n })\n .sort((a, b) => {\n return a.rank - b.rank;\n });\n\n let firstNotificationOpen = notificationList\n .slice()\n .reverse()\n .find((e) => {\n return !e.closed;\n });\n\n if (firstNotificationOpen) {\n let firstNotificationIndex = notificationList.findIndex((e) => {\n return e.id === firstNotificationOpen.id;\n });\n if (this.notificationActiveId !== firstNotificationOpen.id) {\n this.emitTracking('Impression', null);\n this.notificationActiveId = firstNotificationOpen.id;\n }\n\n if (firstNotificationOpen.notificationCtaLabel && firstNotificationOpen.notificationCtaLink) {\n notificationList[firstNotificationIndex].trackLinkClass = 'js-track-link';\n }\n\n let firstNotification = Cookies.get('c4_notification_first_' + firstNotificationOpen.id);\n if (!firstNotification && !firstNotificationOpen.notificationTimer) {\n notificationList[firstNotificationIndex].isfirst = true;\n setTimeout(() => {\n Cookies.set('c4_notification_first_' + firstNotificationOpen.id, 'true');\n }, 1000);\n } else {\n notificationList[notificationList.length - 1].isfirst = false;\n }\n }\n\n // if (firstNotificationOpen && firstNotificationOpen.notificationPromoPush) {\n // Cookies.set('c4_notification_shown_' + firstNotificationOpen.id, 'true', { expires: new Date(new Date().getTime() + firstNotificationOpen.quietPeriod * 60 * 1000) });\n // }\n this.$el.innerHTML = notificationListTemplate({ notifications: notificationList });\n if (firstNotificationOpen) {\n this.trackingClick(firstNotificationOpen);\n }\n }\n\n closeFirtsNotification() {\n let notificationList = Object.keys(this.state)\n .map((id) => {\n return this.state[id];\n })\n .sort((a, b) => {\n return a.rank - b.rank;\n });\n\n let firstNotificationOpen = notificationList\n .slice()\n .reverse()\n .find((e) => {\n return !e.closed;\n });\n\n if (firstNotificationOpen) {\n this.closeNotification({ id: firstNotificationOpen.id });\n }\n }\n\n notificationCanBeAdded(notification) {\n let notificationexist = this.state[notification.id];\n if (notificationexist && !notification.closed) return;\n let notificationClosed = Cookies.get('c4_notification_closed_' + notification.id);\n let views = Cookies.get('c4_notification_views_' + notification.id);\n let shown = Cookies.get('c4_notification_shown_' + notification.id);\n if (\n (notificationClosed && notificationClosed === 'true') ||\n (views && views >= notification.maxViews) ||\n (views && views >= notification.notificationMaxViews) ||\n (shown && shown === 'true')\n ) {\n return false;\n }\n\n return true;\n }\n\n isNotificationClosed(notification) {\n let notificationClosed = Cookies.get('c4_notification_closed_' + notification.id);\n let views = Cookies.get('c4_notification_views_' + notification.id);\n let shown = Cookies.get('c4_notification_shown_' + notification.id);\n if ((notificationClosed && notificationClosed === 'true') || (views && views >= notification.notificationMaxViews) || (shown && shown === 'true')) {\n return true;\n }\n\n return false;\n }\n\n incrementViews(notification) {\n let views = Cookies.get('c4_notification_views_' + notification.id);\n Cookies.set('c4_notification_views_' + notification.id, views ? +views + 1 : 1);\n }\n\n emitTracking(action, label) {\n this.EMIT(this.CUSTOM_MESSAGES.TRACKING_EVENTS.update, {\n eventCategory: 'Push banner',\n eventAction: action,\n eventLabel: label\n });\n }\n\n trackingClick(notification) {\n const _this = this;\n let link = document.querySelector('.js-track-link');\n this.$on(\n 'click',\n function(e) {\n _this.emitTracking('Click', notification.id + ' - ' + notification.notificationCtaLabel);\n },\n link\n );\n }\n}\n","/* eslint-disable new-cap */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable no-underscore-dangle */\n\nimport Bean from 'bean';\nimport deepFreeze from '../utilities/freeze';\nimport BaseGiaComponent from './baseGiaComponent';\n\nexport default class BaseComponent extends BaseGiaComponent {\n /**\n * @returns {HTMLElement}\n */\n get $el() {\n return /** @type {HTMLElement} */ (this._componentElement);\n }\n\n get $options() {\n const compOptions = {};\n const options = { ...this.$el.dataset };\n const optionsEntires = Object.keys(options).filter((entry) => entry.includes('option'));\n optionsEntires.forEach((entry) => {\n const cleanEntry = BaseComponent.cleanOptionKey(entry);\n let optionValue;\n if (options[entry].includes('{') && options[entry].includes('}')) {\n optionValue = JSON.parse(options[entry].replace(/'/g, '\"'));\n } else {\n optionValue = BaseComponent.convertType(options[entry]);\n }\n compOptions[cleanEntry] = optionValue;\n });\n return deepFreeze(compOptions);\n }\n\n get COMPONENT_NAME() {\n return this.$el.getAttribute('data-component');\n }\n\n /**\n *\n * constructor\n *\n * @param {Element} element\n */\n constructor(element) {\n super(element);\n this._componentElement = element;\n this._componentElement.setAttribute('data-component-init', 'true');\n this._checkMessages();\n }\n\n static convertType(option) {\n let optionReturn;\n switch (option) {\n case 'false':\n optionReturn = false;\n break;\n case 'true':\n optionReturn = true;\n break;\n case 'null':\n optionReturn = null;\n break;\n default:\n optionReturn = option;\n break;\n }\n\n return optionReturn;\n }\n\n static cleanOptionKey(key) {\n const str = key.replace('option', '');\n return `${str.charAt(0).toLocaleLowerCase()}${str.slice(1)}`;\n }\n\n /**\n *\n * $on\n *\n * @param {String} events\n * @param {Function} cb\n * @param {Element} [element = this.$el]\n * @param {Array|String|Element} [elements = null]\n */\n $on(events, cb, element = this.$el, elements = null) {\n if (!element || !events || !cb) return;\n if (!elements) {\n Bean.on(element, events, (e) => {\n if (e) e.stopPropagation();\n cb(e);\n });\n } else {\n Bean.on(element, events, elements, (e) => {\n if (e) e.stopPropagation();\n cb(e);\n });\n }\n }\n\n /**\n *\n * $one\n *\n * @param {String} events\n * @param {Function} cb\n * @param {Element} [element = this.$el]\n */\n $one(events, cb, element = this.$el) {\n Bean.one(element, events, cb);\n }\n\n /**\n *\n * $off\n *\n * @param {String} events\n * @param {Element} [element = this.$el]\n */\n $off(events, element = this.$el) {\n Bean.off(element, events);\n }\n\n /**\n *\n * $fire\n *\n * @param {String} events\n * @param {Element} [element = this.$el]\n */\n $fire(events, element = this.$el) {\n Bean.fire(element, events);\n }\n\n /**\n *\n * Activate loader\n *\n * @param {HTMLElement} [container]\n * @param {String} [message]\n */\n loading(container, message) {\n this._loading = true;\n this.EMIT(this.CUSTOM_MESSAGES.LOADER_EVENTS.show, {\n container: container || document.body,\n message: message ?? null\n });\n }\n\n /**\n *\n * Deactivate loader\n *\n * @param {HTMLElement} [container]\n * @param {String} [message]\n * @param {Boolean} [error=false]\n * @param {String} [icon]\n */\n endLoading(container, message, error = false, icon) {\n this._loading = false;\n setTimeout(() => {\n if (!this._loading) {\n this.EMIT(this.CUSTOM_MESSAGES.LOADER_EVENTS.hide, {\n container: container || document.body,\n message,\n error,\n icon\n });\n }\n }, 400);\n }\n}\n","/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader;\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction decode (s) {\n\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api() {}\n\n\t\tfunction set (key, value, attributes) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattributes = extend({\n\t\t\t\tpath: '/'\n\t\t\t}, api.defaults, attributes);\n\n\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t}\n\n\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\ttry {\n\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\tvalue = result;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tvalue = converter.write ?\n\t\t\t\tconverter.write(value, key) :\n\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\n\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\n\t\t\tvar stringifiedAttributes = '';\n\t\t\tfor (var attributeName in attributes) {\n\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t// ...\n\t\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t// character:\n\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t// ...\n\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t}\n\n\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t}\n\n\t\tfunction get (key, json) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar jar = {};\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all.\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\tdecode(cookie);\n\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tjar[name] = cookie;\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn key ? jar[key] : jar;\n\t\t}\n\n\t\tapi.set = set;\n\t\tapi.get = function (key) {\n\t\t\treturn get(key, false /* read as raw */);\n\t\t};\n\t\tapi.getJSON = function (key) {\n\t\t\treturn get(key, true /* read as json */);\n\t\t};\n\t\tapi.remove = function (key, attributes) {\n\t\t\tset(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.defaults = {};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n","module.exports = function anonymous(locals, escapeFn, include, rethrow) {\n rethrow = rethrow || function rethrow(err, str, flnm, lineno, esc) {\n var lines = str.split(\"\\n\");\n var start = Math.max(lineno - 3, 0);\n var end = Math.min(lines.length, lineno + 3);\n var filename = esc(flnm);\n var context = lines.slice(start, end).map(function(line, i) {\n var curr = i + start + 1;\n return (curr == lineno ? \" >> \" : \" \") + curr + \"| \" + line;\n }).join(\"\\n\");\n err.path = filename;\n err.message = (filename || \"ejs\") + \":\" + lineno + \"\\n\" + context + \"\\n\\n\" + err.message;\n throw err;\n };\n escapeFn = escapeFn || function(markup) {\n return markup == undefined ? \"\" : String(markup).replace(_MATCH_HTML, encode_char);\n };\n var _ENCODE_HTML_RULES = {\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n '\"': \""\",\n \"'\": \"'\"\n }, _MATCH_HTML = /[&<>'\"]/g;\n function encode_char(c) {\n return _ENCODE_HTML_RULES[c] || c;\n }\n var __line = 1, __lines = '<% if (notifications && notifications.length > 0) { %> <% notifications.forEach(function(notification,index){ %> <% if (!notification.closed) { %>\\n
\" alt=\"<%= notification.title %>\" /><%= notification.title %>
<%- notification.subtitle %>
\\n <%}%>\\n<%- notification.description %>
\\n <% if (notification.notificationCtaLabel && notification.notificationCtaLink) {%>\\n \" class=\"btn btn-primary <% if (notification.trackLinkClass) { %> <%- notification.trackLinkClass %> <% } %>\"\\n ><%- notification.notificationCtaLabel %>\\n <%}%>\\n');\n __append(escapeFn(notification.title));\n __append('
');\n __line = 11;\n __append(notification.subtitle);\n __append(\"
\\n \");\n __line = 12;\n }\n __append(\"\\n\");\n __line = 13;\n __append(notification.description);\n __append(\"
\\n \");\n __line = 14;\n if (notification.notificationCtaLabel && notification.notificationCtaLink) {\n __append('\\n ');\n __line = 16;\n __append(notification.notificationCtaLabel);\n __append(\"\\n \");\n __line = 18;\n }\n __append(\"\\n