{"version":3,"sources":["webpack:///./src/shared/utilities/screenSize.js","webpack:///./src/shared/utilities/when-in-view.js","webpack:///./node_modules/process/browser.js","webpack:///./src/components/organisms/bbox/bbox.js","webpack:///./src/shared/utilities/debounce.js","webpack:///./src/shared/utilities/pubsub.js","webpack:///./src/framework/base/base.js","webpack:///./src/shared/utilities/case.ts","webpack:///./src/shared/utilities/id.ts","webpack:///./src/shared/utilities/show-hide.ts","webpack:///./src/shared/utilities/addListenerOnce.js"],"names":["defaultWidths","sm","md","lg","xl","getBreakpoint","window","getComputedStyle","document","querySelector","getPropertyValue","replace","screenSmallerThan","size","widths","arguments","length","undefined","Object","prototype","hasOwnProperty","call","Error","concat","keys","join","innerWidth","screenGreatOrEqualTo","whenInView","elm","options","threshold","Promise","acc","then","obs","IntersectionObserver","entries","isIntersecting","intersectionRatio","disconnect","observe","cachedSetTimeout","cachedClearTimeout","process","module","exports","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","e","this","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","len","run","marker","runClearTimeout","Item","array","noop","nextTick","args","Array","i","push","apply","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","name","binding","cwd","chdir","dir","umask","Bbox","_BaseBehavior","element","_this","_classCallCheck","_callSuper","videoElem","imgElem","playing","loaded","isVideoAutoplayDisabled","hasAttribute","isSpinnerOnVideo","loaderElement","publishBreakpointOnResize","canPlayType","addEventListenersForPlayingVideo","playWhenInView","showElement","addEventListenersForSpinner","loadVideo23","_inherits","key","value","type","video23Iframe","src","dataset","video23Common","video23Mobile","loadInIframe","_this2","addEventListener","hideElement","_this3","complete","playVideo","removeEventListener","subscribe","setVideoLink","bind","setAttribute","mobilesrc","_this4","addEventListenerOnce","load","_navigator","_this5","_ref","navigator","connection","_ref$effectiveType","effectiveType","_ref$saveData","saveData","display","ensureLoaded","playPromise","play","catch","pause","unsubscribe","_this6","playButton","nextElementSibling","playAfterImgLoad","_this7","BaseBehavior","debounce","func","wait","immediate","_len","_key","later","callNow","pubsub","PubSub","subscriptions","topic","_step","_iterator","_createForOfIteratorHelper","s","n","done","fn","err","f","forEach","index","splice","state","events","behaviorName","camelCaseToDashCase","getAttribute","instanceId","generateId","attachInstanceId","partialState","_objectSpread","removeAttribute","dom","from","querySelectorAll","filter","el","closest","ref","dashCaseToCamelCase","split","console","error","delay","breakpoint","publish","debouncedGetBreakpoint","newBreakPoint","event","useCapture","obj","navigation","getBoundingClientRect","bottom","scrollY","scroll","reason","promise","log","str","toLowerCase","x","chr","toUpperCase","alphabet","id","charAt","Math","floor","random","classList","add","remove","listener"],"mappings":"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","file":"22-8a7ef486.js","sourcesContent":["export const defaultWidths = {\r\n\tsm: 768,\r\n\tmd: 1024,\r\n\tlg: 1280,\r\n\txl: 1400\r\n};\r\n\r\n// getBreakpoint :: Void -> String\r\nexport const getBreakpoint = () =>\r\n\twindow\r\n\t\t.getComputedStyle(document.querySelector('body'), ':before')\r\n\t\t.getPropertyValue('content')\r\n\t\t.replace(/\"/g, '');\r\n\r\n// function :: String -> ?Object -> Boolean\r\nexport function screenSmallerThan(size, widths = defaultWidths) {\r\n\tif (!Object.prototype.hasOwnProperty.call(widths, size)) {\r\n\t\tthrow new Error(`size must be one of: ${Object.keys(widths).join(', ')}`);\r\n\t}\r\n\treturn window.innerWidth < widths[size];\r\n}\r\n\r\nexport function screenGreatOrEqualTo(size, widths = defaultWidths) {\r\n\tif (!Object.prototype.hasOwnProperty.call(widths, size)) {\r\n\t\tthrow new Error(`size must be one of: ${Object.keys(widths).join(', ')}`);\r\n\t}\r\n\treturn window.innerWidth >= widths[size];\r\n}\r\n","export function whenInView(elm, options = { threshold: 0 }) {\r\n\treturn new Promise(acc => {\r\n\t\timport('intersection-observer').then(() => {\r\n\t\t\tconst obs = new IntersectionObserver(entries => {\r\n\t\t\t\tif (entries[0].isIntersecting && entries[0].intersectionRatio >= options.threshold) {\r\n\t\t\t\t\tacc();\r\n\t\t\t\t\tobs.disconnect();\r\n\t\t\t\t}\r\n\t\t\t}, options);\r\n\t\t\tobs.observe(elm);\r\n\t\t});\r\n\t});\r\n}\r\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","import BaseBehavior from '../../../framework/base/base';\r\nimport { whenInView } from '../../../shared/utilities/when-in-view';\r\nimport { hideElement, showElement } from '../../../shared/utilities/show-hide';\r\nimport { addEventListenerOnce } from '../../../shared/utilities/addListenerOnce';\r\nimport { screenGreatOrEqualTo } from '../../../shared/utilities/screenSize';\r\n\r\nexport default class Bbox extends BaseBehavior {\r\n\tconstructor(element) {\r\n\t\tsuper(element);\r\n\r\n\t\tthis.videoElem = this.element.querySelector('video');\r\n\t\tthis.imgElem = this.element.querySelector('img');\r\n\t\tthis.playing = false;\r\n\t\tthis.loaded = false;\r\n\t\tthis.isVideoAutoplayDisabled =\r\n\t\t\tthis.videoElem && this.videoElem.hasAttribute('data-autoplay-disabled');\r\n\t\tthis.isSpinnerOnVideo = this.videoElem && this.videoElem.hasAttribute('data-spinner-enabled');\r\n\t\tthis.loaderElement = this.element.querySelector('.v2-loading-indicator');\r\n\t\tthis.publishBreakpointOnResize(100);\r\n\t\tif (this.videoElem && this.videoElem.canPlayType('video/mp4') !== '') {\r\n\t\t\tthis.isVideoAutoplayDisabled\r\n\t\t\t\t? this.addEventListenersForPlayingVideo()\r\n\t\t\t\t: this.playWhenInView();\r\n\t\t}\r\n\t\tif (this.isSpinnerOnVideo) {\r\n\t\t\tif (!this.isVideoAutoplayDisabled) {\r\n\t\t\t\tshowElement(this.loaderElement); // Spinner will show, if both spinner and autoplay are enabled.\r\n\t\t\t}\r\n\t\t\tthis.addEventListenersForSpinner(); // Adding listeners for waiting and playing events, if spinner is enabled.\r\n\t\t}\r\n\r\n\t\tthis.loadVideo23();\r\n\t}\r\n\r\n\tloadInIframe(type) {\r\n\t\tconst video23Iframe = this[type].querySelector('iframe');\r\n\t\tif (video23Iframe) {\r\n\t\t\tvideo23Iframe.src = video23Iframe?.dataset.src;\r\n\t\t}\r\n\t}\r\n\r\n\tloadVideo23() {\r\n\t\tthis.video23Common = this.element.querySelector('.v2-bbox__background .video-common');\r\n\t\tthis.video23Mobile = this.element.querySelector('.v2-bbox__background .video-mobile');\r\n\r\n\t\t// if none of both is present, then return.\r\n\t\tif (!this.video23Common && !this.video23Mobile) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\t// If both common and mobile videos enabled, then load video according to device size\r\n\t\tif (this.video23Common && this.video23Mobile) {\r\n\t\t\tif (!screenGreatOrEqualTo('md')) {\r\n\t\t\t\tthis.loadInIframe('video23Mobile');\r\n\t\t\t} else {\r\n\t\t\t\tthis.loadInIframe('video23Common');\r\n\t\t\t}\r\n\t\t}\r\n\t\t// If only common is enabled and mobile video is disabled, then load common video\r\n\t\telse if (this.video23Common && !this.video23Mobile) {\r\n\t\t\tthis.loadInIframe('video23Common');\r\n\t\t} else if (!this.video23Common && this.video23Mobile && !screenGreatOrEqualTo('md')) {\r\n\t\t\tthis.loadInIframe('video23Mobile');\r\n\t\t}\r\n\t\t// this return is written for fixing lint error\r\n\t\treturn 0;\r\n\t}\r\n\r\n\taddEventListenersForSpinner() {\r\n\t\tthis.addEventListener(this.videoElem, 'waiting', () => {\r\n\t\t\tshowElement(this.loaderElement);\r\n\t\t});\r\n\t\tthis.addEventListener(this.videoElem, 'playing', () => {\r\n\t\t\thideElement(this.loaderElement);\r\n\t\t});\r\n\t}\r\n\r\n\tplayAfterImgLoad() {\r\n\t\tif (!this.imgElem || this.imgElem.complete) {\r\n\t\t\tthis.playVideo();\r\n\t\t} else {\r\n\t\t\tthis.addEventListener(this.imgElem, 'load.videoBackground', () => {\r\n\t\t\t\tthis.removeEventListener(window, 'load.videoBackground');\r\n\t\t\t\tthis.playVideo();\r\n\t\t\t});\r\n\t\t}\r\n\t\tthis.subscribe('SITE.BREAKPOINT', this.setVideoLink.bind(this));\r\n\t}\r\n\r\n\tsetVideoLink() {\r\n\t\tthis.videoElem.setAttribute(\r\n\t\t\t'src',\r\n\t\t\t!screenGreatOrEqualTo('md') && this.videoElem.dataset.mobilesrc\r\n\t\t\t\t? this.videoElem.dataset.mobilesrc\r\n\t\t\t\t: this.videoElem.dataset.src\r\n\t\t);\r\n\t}\r\n\r\n\tensureLoaded() {\r\n\t\tif (!this.loaded) {\r\n\t\t\tif (this.loaderElement) {\r\n\t\t\t\taddEventListenerOnce(this.videoElem, 'loadeddata', () => {\r\n\t\t\t\t\thideElement(this.loaderElement);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tthis.setVideoLink();\r\n\t\t\tthis.videoElem.load();\r\n\t\t\tthis.loaded = true;\r\n\t\t}\r\n\t}\r\n\r\n\tplayVideo() {\r\n\t\tconst { effectiveType = '4g', saveData = false } = navigator?.connection || {};\r\n\r\n\t\tif (\r\n\t\t\tgetComputedStyle(this.videoElem).display !== 'none' &&\r\n\t\t\teffectiveType !== '2g' &&\r\n\t\t\tsaveData === false\r\n\t\t) {\r\n\t\t\tthis.setVideoLink();\r\n\t\t\tif (!this.playing) {\r\n\t\t\t\t!this.isVideoAutoplayDisabled && this.ensureLoaded();\r\n\t\t\t\tconst playPromise = this.videoElem.play();\r\n\t\t\t\tif (playPromise !== undefined) {\r\n\t\t\t\t\tplayPromise\r\n\t\t\t\t\t\t.then(() => {\r\n\t\t\t\t\t\t\tthis.playing = true;\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.catch(() => {\r\n\t\t\t\t\t\t\tthis.playing = false;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\tthis.playing = true;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.videoElem.pause();\r\n\t\t\tthis.playing = false;\r\n\t\t}\r\n\t}\r\n\r\n\tcleanup() {\r\n\t\tthis.unsubscribe('SITE.BREAKPOINT');\r\n\t}\r\n\r\n\taddEventListenersForPlayingVideo() {\r\n\t\tconst playButton = this.videoElem.nextElementSibling;\r\n\t\tthis.addEventListener(playButton, 'click', () => {\r\n\t\t\tthis.playAfterImgLoad();\r\n\t\t\thideElement(playButton);\r\n\t\t});\r\n\t\tthis.addEventListener(this.videoElem, 'click', () => {\r\n\t\t\tif (this.playing) {\r\n\t\t\t\tthis.videoElem.pause();\r\n\t\t\t\tshowElement(playButton);\r\n\t\t\t\tthis.playing = false;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tplayWhenInView() {\r\n\t\twhenInView(this.videoElem, { threshold: 0.3 }).then(() => {\r\n\t\t\tthis.playAfterImgLoad();\r\n\t\t});\r\n\t}\r\n}\r\n","// debounce :: Function, Number, Bool -> (Any -> Void)\r\nexport function debounce(func, wait, immediate) {\r\n\tlet timeout;\r\n\treturn function debounced(...args) {\r\n\t\tconst later = () => {\r\n\t\t\ttimeout = null;\r\n\t\t\tif (!immediate) func(args);\r\n\t\t};\r\n\t\tconst callNow = immediate && !timeout;\r\n\t\tclearTimeout(timeout);\r\n\t\ttimeout = setTimeout(later, wait);\r\n\t\tif (callNow) func(args);\r\n\t};\r\n}\r\n","class PubSub {\r\n\tconstructor() {\r\n\t\tthis.subscriptions = {};\r\n\t}\r\n\r\n\tpublish(topic, ...args) {\r\n\t\tif (this.subscriptions[topic]) {\r\n\t\t\t// eslint-disable-next-line no-restricted-syntax\r\n\t\t\tfor (const fn of this.subscriptions[topic]) {\r\n\t\t\t\tfn(...args);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tsubscribe(topic, fn) {\r\n\t\tthis.subscriptions[topic] = this.subscriptions[topic] || [];\r\n\t\tthis.subscriptions[topic].push(fn);\r\n\t}\r\n\r\n\tunsubscribe(topic, fn) {\r\n\t\tif (this.subscriptions[topic]) {\r\n\t\t\tthis.subscriptions[topic].forEach((value, index) => {\r\n\t\t\t\tif (value === fn) {\r\n\t\t\t\t\tthis.subscriptions[topic].splice(index, 1);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\n\r\nconst pubsub = new PubSub();\r\n\r\nexport default pubsub;\r\n","import pubsub from '../../shared/utilities/pubsub';\r\nimport { generateId } from '../../shared/utilities/id';\r\nimport { camelCaseToDashCase, dashCaseToCamelCase } from '../../shared/utilities/case';\r\nimport { getBreakpoint } from '../../shared/utilities/screenSize';\r\nimport { debounce } from '../../shared/utilities/debounce';\r\n\r\nexport default class BaseBehavior {\r\n\tconstructor(element) {\r\n\t\tthis.element = element;\r\n\t\tthis.state = undefined;\r\n\t\tthis.events = {};\r\n\t\tthis.subscriptions = {};\r\n\t\tthis.behaviorName = camelCaseToDashCase(element.getAttribute('data-behavior'));\r\n\t\tthis.instanceId = generateId();\r\n\t\tthis.attachInstanceId();\r\n\t}\r\n\r\n\tsetState(partialState) {\r\n\t\tObject.keys(partialState).forEach(key => {\r\n\t\t\tif (!{}.hasOwnProperty.call(this.state, key)) {\r\n\t\t\t\tthrow new Error(\r\n\t\t\t\t\t`${this.behaviorName} does not have ${key} on the state object,\r\n\t\t\t\t\tmake sure to define all state properties in the constructor.`\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.state = { ...(this.state || {}), ...partialState };\r\n\t}\r\n\r\n\tattachInstanceId() {\r\n\t\tthis.element.setAttribute('data-instance', `${this.behaviorName}__${this.instanceId}`);\r\n\t\tthis.element.removeAttribute('data-instance-init');\r\n\t}\r\n\r\n\tinitDomCache() {\r\n\t\tthis.dom = {};\r\n\r\n\t\t// Filter out ref's that embedded in another instance of the same behavior.\r\n\t\tArray.from(this.element.querySelectorAll(`[data-ref^=${this.behaviorName}]`))\r\n\t\t\t.filter(el => el.closest(`[data-behavior*=\"${this.behaviorName}\"]`) === this.element)\r\n\t\t\t.forEach(element => {\r\n\t\t\t\tconst ref = element.getAttribute('data-ref');\r\n\t\t\t\tconst key = dashCaseToCamelCase(ref).split('__')[1];\r\n\r\n\t\t\t\tif (key) {\r\n\t\t\t\t\tthis.dom[key] = element;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.error(\r\n\t\t\t\t\t\t`Element cannot be cached. Reference \"${ref}\" should have the format \"behavior-name__element-name\"`\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n\r\n\tpublishBreakpointOnResize(delay = 250) {\r\n\t\tif (this.breakpoint) return;\r\n\r\n\t\tthis.breakpoint = getBreakpoint();\r\n\t\tthis.publish('SITE.BREAKPOINT', this.breakpoint);\r\n\r\n\t\tconst debouncedGetBreakpoint = debounce(() => {\r\n\t\t\tconst newBreakPoint = getBreakpoint();\r\n\t\t\tif (this.breakpoint !== newBreakPoint) {\r\n\t\t\t\tthis.publish('SITE.BREAKPOINT', newBreakPoint);\r\n\t\t\t\tthis.breakpoint = newBreakPoint;\r\n\t\t\t}\r\n\t\t}, delay);\r\n\r\n\t\twindow.addEventListener('resize', debouncedGetBreakpoint);\r\n\t}\r\n\r\n\taddEventListener(element, event, fn, useCapture = false) {\r\n\t\tif (element) {\r\n\t\t\tthis.events[event] = fn;\r\n\t\t\telement.addEventListener(event.split('.')[0], this.events[event], useCapture);\r\n\t\t}\r\n\t}\r\n\r\n\tremoveEventListener(element, event) {\r\n\t\telement.removeEventListener(event.split('.')[0], this.events[event]);\r\n\t\tthis.events[event] = null;\r\n\t\tdelete this.events[event];\r\n\t}\r\n\r\n\t// eslint-disable-next-line class-methods-use-this\r\n\tpublish(topic, obj) {\r\n\t\tpubsub.publish(topic, obj);\r\n\t}\r\n\r\n\tsubscribe(topic, fn) {\r\n\t\tthis.subscriptions[topic] = fn;\r\n\t\tpubsub.subscribe(topic, fn);\r\n\t}\r\n\r\n\tunsubscribe(topic) {\r\n\t\tpubsub.unsubscribe(topic, this.subscriptions[topic]);\r\n\t\tthis.subscriptions[topic] = null;\r\n\t\tdelete this.subscriptions[topic];\r\n\t}\r\n}\r\n\r\n// Below code is added for fixing scrolling issue on page refresh.\r\nwindow.addEventListener('load', () => {\r\n\tsetTimeout(() => {\r\n\t\tconst navigation = document.querySelector('#navigation');\r\n\t\t// eslint-disable-next-line\r\n\t\tif (navigation && navigation.getBoundingClientRect().bottom === scrollY) {\r\n\t\t\twindow.scroll(0, 0);\r\n\t\t}\r\n\t}, 0);\r\n});\r\n\r\nprocess.on('unhandledRejection', (reason, promise) => {\r\n\t// eslint-disable-next-line no-console\r\n\tconsole.log('Reason for this failure is : ', reason);\r\n\t// eslint-disable-next-line no-console\r\n\tconsole.log('promise is', promise);\r\n\t// Application specific logging, throwing an error, or other logic here\r\n});\r\n","export function camelCaseToDashCase(str: string): string {\r\n\treturn str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\r\n}\r\n\r\nexport function dashCaseToCamelCase(str: string): string {\r\n\treturn str.replace(/\\W+(.)/g, (x, chr) => chr.toUpperCase());\r\n}\r\n","const alphabet = '23456789ABDEGJKMNPQRVWXYZ';\r\n\r\nexport function generateId(length: number = 6): string {\r\n\tlet id:string = '';\r\n\r\n\tfor (let i:number = 0; i < length; i++) {\r\n\t\tid += alphabet.charAt(Math.floor(Math.random() * alphabet.length));\r\n\t}\r\n\r\n\treturn id;\r\n}\r\n","const hiddenClass = 'v2-hidden';\r\nexport const hideElement = (element:HTMLElement):void => element && element.classList.add(hiddenClass);\r\nexport const showElement = (element:HTMLElement):void => element && element.classList.remove(hiddenClass);\r\n","export const addEventListenerOnce = (element, type, listener) => {\r\n\telement.addEventListener(type, function fn(event) {\r\n\t\telement.removeEventListener(type, fn);\r\n\t\tlistener(event);\r\n\t});\r\n};\r\n"],"sourceRoot":""}