{"version":3,"file":"./modules/HotSpot.xxxxxxxx.js","mappings":"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","sources":["webpack:///./modules/HotSpot.ts","webpack:///./modules/LayerAdvance.ts","webpack:///./modules/LayerBasic.ts","webpack:///./modules/LayerCircle.ts"],"sourcesContent":["import LayerCircle from './LayerCircle';\r\nimport { isImageLoaded, createElementFromString } from '../helpers/DOMHelpers';\r\n\r\nconst moduleSelector = '[data-module=\"HotSpot\"]';\r\n\r\nexport default class HotSpot {\r\n imageWidth: string;\r\n imageHeight: string;\r\n layer: LayerCircle;\r\n hotspotData: any;\r\n image: any;\r\n closeText: string;\r\n hotspotArea: HTMLElement;\r\n contentArray: any[];\r\n\r\n static setup(selector: string = moduleSelector): void {\r\n Array.from(document.querySelectorAll(selector)).filter((node: HTMLElement) => !node.dataset.moduleInitialized).forEach((element: HTMLElement) => {\r\n new HotSpot(element);\r\n element.dataset.moduleInitialized = 'true';\r\n });\r\n }\r\n\r\n constructor(public element: HTMLElement) {\r\n this.hotspotArea = element;\r\n this.image = this.element.querySelector('img');\r\n this.layer = new LayerCircle(document.body);\r\n this.imageWidth = this.hotspotArea.dataset.imageWidth;\r\n this.imageHeight = this.hotspotArea.dataset.imageHeight;\r\n this.closeText = this.hotspotArea.dataset.closeTitle;\r\n this.hotspotData = this.hotspotArea.querySelector('.cw-hotspot-data').innerHTML;\r\n if (this.hotspotData) {\r\n this.contentArray = JSON.parse(this.hotspotData);\r\n }\r\n\r\n this.init();\r\n }\r\n\r\n protected init(): HotSpot {\r\n isImageLoaded(this.image) ? this.createHotspots() : this.setImageEventHandler();\r\n return this;\r\n }\r\n\r\n private setImageEventHandler(): HotSpot {\r\n this.image.addEventListener('load', () => this.createHotspots());\r\n return this;\r\n }\r\n\r\n private createHotspots(): HotSpot {\r\n if (this.contentArray) {\r\n this.contentArray.forEach(hotspotObject => {\r\n const { X, Y, ...hotspotData } = hotspotObject,\r\n hotSpotNode = this.responsiveHotspot(X, Y, this.imageWidth, this.imageHeight, hotspotData.Color);\r\n\r\n hotspotData.HotspotDetail.forEach(hotspotDetail => {\r\n const layerContent = this.getLayerContent(hotspotDetail, this.closeText);\r\n\r\n hotSpotNode.addEventListener('click',\r\n () =>\r\n this.layer\r\n .adjustTransformOrigin(hotSpotNode)\r\n .insertContent(createElementFromString((layerContent)))\r\n .open(() => {\r\n this.onLayerOpen(hotSpotNode, hotspotDetail);\r\n }));\r\n });\r\n });\r\n }\r\n return this;\r\n }\r\n\r\n protected onLayerOpen(hotSpotNode, hotspotDetail): void {\r\n //window.Beiersdorf.initModules();\r\n hotSpotNode.classList.add(\"active\");\r\n }\r\n\r\n private placeHotspot(x_pos, y_pos, color = \"default-color\"): HTMLElement {\r\n let hotSpotArea = this.hotspotArea;\r\n let hotspot = document.createElement(\"div\");\r\n let innerCircle = document.createElement('span');\r\n\r\n hotspot.appendChild(innerCircle);\r\n\r\n hotspot.setAttribute(\"class\", \"cw-hotspot \" + color);\r\n hotspot.style.left = x_pos + '%';\r\n hotspot.style.top = y_pos + '%';\r\n\r\n innerCircle.className = 'cw-hotspot-btn cw-u-plus-minus-btn';\r\n\r\n hotSpotArea.appendChild(hotspot);\r\n\r\n return hotspot;\r\n }\r\n\r\n private responsiveHotspot(xPos, yPos, imageWidth, imageHeight, color): HTMLElement {\r\n let xPercentage = xPos / imageWidth * 100;\r\n let yPercentage = yPos / imageHeight * 100;\r\n\r\n return this.placeHotspot(xPercentage, yPercentage, color);\r\n }\r\n\r\n private getLayerContent(details: any, closeText:string): string {\r\n const { Title, Copy, Link: { Title: LinkTitle, Url: LinkUrl } } = details;\r\n const layerContent = `
\r\n
\r\n
\r\n ${closeText}\r\n
\r\n
\r\n
\r\n
\r\n

${Title}

\r\n
\r\n
${Copy}
\r\n ${LinkTitle}\r\n
\r\n
\r\n \r\n
\r\n
`;\r\n\r\n return layerContent;\r\n }\r\n}\r\n\r\nnew HotSpot.setup();","import LayerBasic, { BasicLayerOptions } from './LayerBasic';\r\nimport { Optional } from '../typings/mapped-types';\r\nimport {\r\n getOptions,\r\n requestAnimationFrameTimer,\r\n requestNextAnimationFrame,\r\n IOSScroll,\r\n} from '../helpers/helperFunctions';\r\nimport {\r\n addClass,\r\n addClasses,\r\n removeClasses,\r\n} from '../helpers/DOMHelpers';\r\n\r\nconst spinnerClasses = ['cw-u-spinner', 'cw-u-spinner--medium'];\r\nconst opaqueSpinnerClasses = ['cw-u-spinner', 'cw-u-spinner--medium', 'cw-u-spinner--opaque'];\r\n\r\nexport interface LayerAdvanceOptions extends BasicLayerOptions {\r\n beforeOpen: AsyncCallback;\r\n afterOpen: AsyncCallback;\r\n beforeClose: AsyncCallback;\r\n afterClose: AsyncCallback;\r\n}\r\n\r\nexport default class LayerAdvance extends LayerBasic {\r\n protected options: LayerAdvanceOptions;\r\n\r\n constructor(element: HTMLElement, options: Optional = {}) {\r\n super(element, options);\r\n\r\n this.options = getOptions(this.element, this.options);\r\n\r\n this.init();\r\n }\r\n\r\n protected getDefaultOptions(): Optional {\r\n const defOptions = super.getDefaultOptions();\r\n\r\n return {\r\n ...defOptions,\r\n layerModifierClasses: `${defOptions.layerMainClass}--page`,\r\n layerCloseBtnModifierClass: `${defOptions.layerMainClass}__close-btn--page`,\r\n layerCloseIconClass: `${defOptions.layerCloseIconClass} cw-close-icon--thin`,\r\n beforeOpen: async () => { await window.Beiersdorf.initModules(); },\r\n afterOpen: async () => { },\r\n beforeClose: async () => { },\r\n afterClose: async () => { },\r\n };\r\n }\r\n\r\n protected get isOpen(): boolean {\r\n return document.body.contains(this.layer);\r\n }\r\n\r\n showSpinner(): LayerAdvance {\r\n addClasses(this.layer.querySelector('.cw-layer__wrapper'), ...spinnerClasses);\r\n\r\n if (!this.isOpen) IOSScroll.prevent(true);\r\n super.open();\r\n\r\n return this;\r\n }\r\n\r\n showSpinnerOpaque(): LayerAdvance {\r\n addClasses(this.layer.querySelector('.cw-layer__wrapper'), ...opaqueSpinnerClasses);\r\n\r\n if (!this.isOpen) IOSScroll.prevent(true);\r\n super.open();\r\n\r\n return this;\r\n }\r\n\r\n async open(callback: Callback = () => { }): Promise {\r\n const {\r\n layerMainClass,\r\n beforeOpen,\r\n afterOpen,\r\n } = this.options;\r\n\r\n await beforeOpen();\r\n\r\n if (!this.isOpen) IOSScroll.prevent(true);\r\n\r\n if (!this.layer.querySelector('.cw-u-spinner--opaque')) {\r\n removeClasses(this.layer.querySelector('.cw-layer__wrapper'), ...spinnerClasses);\r\n }\r\n\r\n super.open();\r\n requestNextAnimationFrame(() => this.layer.classList.add(`${layerMainClass}--open`));\r\n\r\n await afterOpen();\r\n\r\n callback();\r\n }\r\n\r\n async close(callback: Callback = () => { }): Promise {\r\n const {\r\n layerMainClass,\r\n beforeClose,\r\n afterClose,\r\n } = this.options;\r\n\r\n await beforeClose();\r\n\r\n addClass(this.layer, `${layerMainClass}--closing`);\r\n\r\n requestAnimationFrameTimer(() => {\r\n removeClasses(this.layer, `${layerMainClass}--open`, `${layerMainClass}--closing`);\r\n super.close();\r\n }, 400);\r\n\r\n if (document.body.classList.contains('cw-u-lock-screen') || document.body.classList.contains('cw-u-prevent-scroll'))\r\n IOSScroll.allow();\r\n\r\n await afterClose();\r\n\r\n callback();\r\n }\r\n}\r\n","import {\r\n createElementFromString,\r\n} from '../helpers/DOMHelpers';\r\n\r\nimport { Optional } from '../typings/mapped-types';\r\n\r\nexport interface BasicLayerOptions {\r\n layerMainClass: string;\r\n layerCloseBtnModifierClass: string;\r\n layerCloseIconClass: string;\r\n layerModifierClasses: string;\r\n parent: HTMLElement;\r\n animationDuration: number;\r\n closeBtnWithBackground: string;\r\n}\r\n\r\nexport default class BasicLayer {\r\n protected element: HTMLElement;\r\n protected options: Optional;\r\n protected layer: HTMLElement;\r\n protected wrapper: HTMLElement;\r\n protected layerContent: HTMLElement;\r\n protected closeBtn: HTMLElement;\r\n\r\n constructor(element: HTMLElement, options: Optional = {}) {\r\n this.element = element;\r\n this.options = { ...this.getDefaultOptions(), ...options };\r\n }\r\n\r\n protected init(content: string = ''): BasicLayer {\r\n const { layerMainClass } = this.options;\r\n\r\n this.layer = this.createLayer(content);\r\n this.wrapper = this.layer.querySelector(`.${layerMainClass}__wrapper`);\r\n this.layerContent = this.layer.querySelector(`.${layerMainClass}__content`);\r\n this.closeBtn = this.layer.querySelector(`.${layerMainClass}__close-btn`);\r\n this.closeBtn.addEventListener('click', () => this.close());\r\n\r\n return this;\r\n }\r\n\r\n protected createLayer(content: string = ''): HTMLElement {\r\n const { layerMainClass, layerModifierClasses, layerCloseIconClass, layerCloseBtnModifierClass } = this.options;\r\n\r\n return createElementFromString(`\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
${content}
\r\n
\r\n
\r\n `);\r\n }\r\n\r\n protected getDefaultOptions(): Optional {\r\n return {\r\n layerMainClass: 'cw-layer',\r\n layerCloseIconClass: 'cw-close-icon cw-close-icon--blue',\r\n closeBtnWithBackground: 'cw-layer__close-btn--bg',\r\n layerModifierClasses: '',\r\n layerCloseBtnModifierClass: '',\r\n animationDuration: 400,\r\n parent: this.element,\r\n }\r\n }\r\n\r\n async open(callback: Callback = () => { }): Promise {\r\n const { parent } = this.options;\r\n parent.appendChild(this.layer);\r\n\r\n callback();\r\n }\r\n\r\n async close(callback: Callback = () => { }): Promise {\r\n document.dispatchEvent(new CustomEvent('CwCloseLayer', { detail: { layerNode: this.layer } }));\r\n this.layer.remove();\r\n this.removeCloseBtnModifierClass();\r\n callback();\r\n }\r\n\r\n insertContent(content: HTMLElement, callback: Callback = () => { }): BasicLayer {\r\n const lastContent = this.layerContent.firstElementChild;\r\n\r\n if (lastContent && lastContent !== content) {\r\n this.layerContent.innerHTML = '';\r\n }\r\n\r\n this.layerContent.appendChild(content);\r\n this.closeBtnModifierClass();\r\n\r\n callback();\r\n\r\n return this;\r\n }\r\n\r\n closeBtnModifierClass() {\r\n const { layerModifierClasses, closeBtnWithBackground } = this.options;\r\n\r\n if (layerModifierClasses == \"cw-layer--page\" && !(this.layer.querySelector('.cw-overlay__title')))\r\n this.closeBtn.classList.add(closeBtnWithBackground);\r\n }\r\n\r\n removeCloseBtnModifierClass() {\r\n const { closeBtnWithBackground } = this.options;\r\n if (this.closeBtn.classList.contains(closeBtnWithBackground))\r\n this.closeBtn.classList.remove(closeBtnWithBackground);\r\n }\r\n\r\n getElement(): HTMLElement {\r\n return this.element;\r\n }\r\n}","import LayerAdvance, { LayerAdvanceOptions } from './LayerAdvance';\r\nimport { Optional } from '../typings/mapped-types';\r\nimport { objectToStyleString, hasClass, toggleClass } from '../helpers/DOMHelpers';\r\nimport { requestAnimationFrameTimer } from '../helpers/helperFunctions';\r\n\r\nconst moduleSelector = '[data-module=\"LayerCircle\"]';\r\n\r\ninterface LayerCircleOptions extends LayerAdvanceOptions {\r\n expandBtnClass: string;\r\n expandLayerModifierClass: string;\r\n layerLandscapeModifierClass: string;\r\n}\r\n\r\nexport default class LayerCircle extends LayerAdvance {\r\n protected options: LayerCircleOptions;\r\n protected closeBtn: HTMLElement;\r\n\r\n static setup(selector: string = moduleSelector): void {\r\n Array.from(document.querySelectorAll(selector)).filter((node: HTMLElement) => !node.dataset.moduleInitialized).forEach((element: HTMLElement) => {\r\n new LayerCircle(element);\r\n element.dataset.moduleInitialized = 'true';\r\n });\r\n }\r\n\r\n constructor(element: HTMLElement, options: Optional = {}) {\r\n super(element, options);\r\n this.addFlyoutClick()\r\n .addExpandBtnClick()\r\n .adjustLandscapeMode();\r\n }\r\n\r\n protected getDefaultOptions(): Optional {\r\n const defOptions = super.getDefaultOptions();\r\n\r\n return {\r\n ...defOptions,\r\n layerModifierClasses: `${defOptions.layerMainClass}--circle`,\r\n layerCloseBtnModifierClass: 'cw-layer__close-btn--hide',\r\n layerCloseIconClass: '',\r\n layerLandscapeModifierClass: `${defOptions.layerMainClass}--landscape`,\r\n expandBtnClass: 'cw-expander__button',\r\n expandLayerModifierClass: `${defOptions.layerMainClass}--expand`,\r\n beforeOpen: async () => {\r\n await window.Beiersdorf.initModules();\r\n document.querySelector('body').classList.add('cw-u-lock-screen');\r\n },\r\n afterOpen: async () => {\r\n this.addCloseClick();\r\n },\r\n beforeClose: async () => {\r\n Array.from(this.element.querySelectorAll('.cw-hotspot')).forEach((element: HTMLElement) => {\r\n element.classList.remove(\"active\");\r\n });\r\n\r\n document.querySelector('body').classList.remove('cw-u-lock-screen');\r\n },\r\n afterClose: async () => {},\r\n };\r\n }\r\n\r\n protected addCloseClick(): LayerCircle {\r\n this.closeBtn = this.layer.querySelector('.cw-circle-layer-close');\r\n this.closeBtn.addEventListener('click', () => this.close());\r\n return this;\r\n }\r\n\r\n protected addFlyoutClick(): LayerCircle {\r\n this.layer.addEventListener('click', ({ target }) => target === this.layer && this.close());\r\n return this;\r\n }\r\n\r\n protected addExpandBtnClick(): LayerCircle {\r\n const { expandBtnClass, expandLayerModifierClass } = this.options;\r\n this.layer.addEventListener('click',\r\n ({ target }: Event) =>\r\n hasClass(target, expandBtnClass) && this.layer.classList.toggle(expandLayerModifierClass));\r\n return this;\r\n }\r\n\r\n protected adjustLandscapeMode(): LayerCircle {\r\n const { layerLandscapeModifierClass } = this.options;\r\n\r\n toggleClass(\r\n this.layer,\r\n layerLandscapeModifierClass,\r\n window.innerHeight < 528);\r\n\r\n return this;\r\n }\r\n\r\n adjustOptions(options: Optional = {}): LayerCircle {\r\n this.options = { ...this.options, ...options };\r\n return this;\r\n }\r\n\r\n adjustTransformOrigin(element: HTMLElement): LayerCircle {\r\n const { top, left } = element.getBoundingClientRect();\r\n const { offsetHeight, offsetWidth } = element;\r\n const styles = {\r\n 'transform-origin': `${left + offsetWidth / 2}px ${top + offsetHeight / 2}px`,\r\n };\r\n\r\n this.layer.setAttribute('style', objectToStyleString(styles));\r\n return this;\r\n }\r\n\r\n async close(callback: Callback = () => { }): Promise {\r\n const { expandLayerModifierClass } = this.options;\r\n await super.close();\r\n requestAnimationFrameTimer(() => {\r\n this.layer.classList.remove(expandLayerModifierClass);\r\n callback();\r\n }, 400);\r\n }\r\n}\r\n\r\n// Hot Module Replacement\r\nif (module.hot) {\r\n let nodesCache: HMRNodes[] = Array.from(document.querySelectorAll(moduleSelector)).map((element: Node) => ({ nodeToReplace: element, nodeOrigin: element.cloneNode(true) }));\r\n\r\n new LayerCircle.setup(moduleSelector);\r\n\r\n module.hot.accept(() => {\r\n new LayerCircle.setup(moduleSelector);\r\n });\r\n module.hot.dispose(() => {\r\n nodesCache.forEach(({ nodeToReplace, nodeOrigin }) => { nodeToReplace = nodeToReplace.parentElement.replaceChild(nodeOrigin.cloneNode(true), nodeToReplace) });\r\n });\r\n} else {\r\n new LayerCircle.setup(moduleSelector);\r\n}"],"names":["HotSpot","element","this","hotspotArea","image","querySelector","layer","_LayerCircle__WEBPACK_IMPORTED_MODULE_0__","document","body","imageWidth","dataset","imageHeight","closeText","closeTitle","hotspotData","innerHTML","contentArray","JSON","parse","init","setup","selector","Array","from","querySelectorAll","filter","node","moduleInitialized","forEach","prototype","_helpers_DOMHelpers__WEBPACK_IMPORTED_MODULE_1__","LE","createHotspots","setImageEventHandler","_this","addEventListener","hotspotObject","X","Y","__rest","hotSpotNode","responsiveHotspot","Color","HotspotDetail","hotspotDetail","layerContent","getLayerContent","adjustTransformOrigin","insertContent","Uo","open","onLayerOpen","classList","add","placeHotspot","x_pos","y_pos","color","hotSpotArea","hotspot","createElement","innerCircle","appendChild","setAttribute","style","left","top","className","xPos","yPos","xPercentage","yPercentage","details","Title","Copy","_a","Link","LinkTitle","LinkUrl","Url","concat","spinnerClasses","opaqueSpinnerClasses","LayerAdvance","_super","options","call","_helpers_helperFunctions__WEBPACK_IMPORTED_MODULE_1__","$E","__extends","getDefaultOptions","defOptions","__assign","layerModifierClasses","layerMainClass","layerCloseBtnModifierClass","layerCloseIconClass","beforeOpen","__awaiter","__generator","window","Beiersdorf","initModules","sent","afterOpen","beforeClose","afterClose","Object","defineProperty","contains","showSpinner","_helpers_DOMHelpers__WEBPACK_IMPORTED_MODULE_2__","gR","apply","__spreadArray","__read","isOpen","LW","prevent","showSpinnerOpaque","Promise","callback","_b","jo","mS","close","iQ","Ys","allow","_LayerBasic__WEBPACK_IMPORTED_MODULE_0__","BasicLayer","content","createLayer","wrapper","closeBtn","_helpers_DOMHelpers__WEBPACK_IMPORTED_MODULE_0__","closeBtnWithBackground","animationDuration","parent","dispatchEvent","CustomEvent","detail","layerNode","remove","removeCloseBtnModifierClass","lastContent","firstElementChild","closeBtnModifierClass","getElement","moduleSelector","LayerCircle","addFlyoutClick","addExpandBtnClick","adjustLandscapeMode","layerLandscapeModifierClass","expandBtnClass","expandLayerModifierClass","addCloseClick","target","nB","toggle","p1","innerHeight","adjustOptions","getBoundingClientRect","offsetHeight","offsetWidth","styles","FQ","_helpers_helperFunctions__WEBPACK_IMPORTED_MODULE_2__","_LayerAdvance__WEBPACK_IMPORTED_MODULE_0__"],"sourceRoot":""}