{"version":3,"sources":["webpack:///./src/components/pmicom/widgets/interactive-wheel/WheelCursor.js","webpack:///./src/components/pmicom/widgets/interactive-wheel/controller.js","webpack:///./src/js/cancellableTask.js"],"names":["getClosestTo","ref","values","closestValue","lowestGap","forEach","value","gap","Math","abs","WheelCursor","constructor","total","current","setOnIndex","index","currentTurn","getCurrentTurn","normalComposed","getComposed","lowerComposed","higherComposed","nextIndex","floor","getSlice","turn","fillWithDomElements","fillWithDomElementsAll","awaitNextFrame","setClassAll","awaitEventOnCondition","trackGtm","trackGtm4","require","DIRECTION_ALL","asyncImport","default","registerCancelable","CLASS_ACTIVE","CLASS_NO_DISPLAY","CLASS_CONTROLLED","CLASS_WHEEL","CLASS_WHEEL_CONTAINER","CLASS_BACK_BUTTON","CLASS_TOUCH_ZONE","CLASS_SLICE_BUTTON","CLASS_ARROW_TOP","CLASS_ARROW_BOTTOM","CLASS_SLICE","CLASS_LINK","CLASS_TIER_LINK","CLASS_SECTION_SLICE","CLASS_TIER_ONE","CLASS_TIER_TWO","CLASSROOT_COLOR","VAR_SLICES_COUNT","VAR_SLICES_CURRENT","VAR_SLICE_INDEX","VAR_ROTATION_SPEED_FACTOR","selectors","wheel","wheelContainer","backButton","arrowTop","arrowBottom","touchZone","selectorsAll","slices","filterClass","list","className","filter","element","classList","contains","filterSection","section","dataset","module","exports","init","root","oneLevel","firstSection","document","createElement","secondSection","add","innerHTML","tierOneLabel","tierTwoLabel","sectionsArray","split","sectionOneCount","length","sectionTwoCount","before","sinOne","sin","cosOne","cos","style","cssText","sinTwo","cosTwo","setProperty","initValues","initEvents","initPanning","curentSection","setCurrent","level","previousPanDelta","Number","undefined","slicesCount","getPropertyValue","wheelCursor","getWheelRotation","slicesSection","slicesTierOne","slicesTierTwo","addEventListener","e","target","find","name","sliceTracking","onLinkClick","onSliceButtonClick","bind","slice","parentNode","href","preventDefault","linkCancel","isCancelled","cancel","next","propertyName","window","location","touch","Hammer","get","set","direction","on","onPanStart","onPan","onPanEnd","priorPanPosition","deltaY","newPos","setWheelRotation","toggle","remove","setSpeedFactor","round","arrow","getEnabledAndDisabled","setBackButtonState","color","disabled","currentCancel","slicesDisabled","factor","rotation","previousIndex","closestIndex","rotationDifference","textContent","eventCategory","eventAction","eventLabel","event","link_text","trim","link_url","indexCounter","cancelablesMap","Map","has","delete"],"mappings":"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","file":"components--interactive-wheel299af21d05a0f2fe6759.js","sourcesContent":["const getClosestTo = (ref, values) => {\n\tlet closestValue = null;\n\tlet lowestGap = null;\n\tvalues.forEach(value => {\n\t\tconst gap = Math.abs(ref - value);\n\t\tif (lowestGap == null || gap < lowestGap) {\n\t\t\tlowestGap = gap;\n\t\t\tclosestValue = value;\n\t\t}\n\t});\n\treturn closestValue;\n};\n\nexport default class WheelCursor {\n\tconstructor(total, current) {\n\t\tthis.total = total;\n\t\tthis.current = current;\n\t}\n\tsetOnIndex(index) {\n\t\tconst currentTurn = this.getCurrentTurn();\n\t\tconst normalComposed = this.getComposed(index, currentTurn);\n\t\tconst lowerComposed = this.getComposed(index, currentTurn - 1);\n\t\tconst higherComposed = this.getComposed(index, currentTurn + 1);\n\t\tconst nextIndex = getClosestTo(this.current, [\n\t\t\tnormalComposed,\n\t\t\tlowerComposed,\n\t\t\thigherComposed,\n\t\t]);\n\t\tthis.current = nextIndex;\n\t\treturn nextIndex;\n\t}\n\tgetCurrentTurn() {\n\t\treturn Math.floor(this.current / this.total);\n\t}\n\tgetSlice() {\n\t\treturn Math.abs(\n\t\t\tthis.current >= 0\n\t\t\t\t? this.current % this.total\n\t\t\t\t: (this.total + (this.current % this.total)) % this.total,\n\t\t);\n\t}\n\tgetComposed(index, turn) {\n\t\treturn index + turn * this.total;\n\t}\n}\n","const {\n\tfillWithDomElements,\n\tfillWithDomElementsAll,\n\tawaitNextFrame,\n\tsetClassAll,\n\tawaitEventOnCondition,\n\ttrackGtm,\n\ttrackGtm4,\n} = require('util/functions');\nconst { DIRECTION_ALL } = require('util/consts');\nconst asyncImport = require('util/asyncImport').default;\nconst { default: WheelCursor } = require('./WheelCursor');\nconst { default: registerCancelable } = require('util/cancellableTask');\n\nconst CLASS_ACTIVE = 'active';\nconst CLASS_NO_DISPLAY = 'no-display';\nconst CLASS_CONTROLLED = 'controlled';\n\nconst CLASS_WHEEL = 'interactive-wheel--wheel';\nconst CLASS_WHEEL_CONTAINER = 'interactive-wheel--wheel-container';\nconst CLASS_BACK_BUTTON = 'interactive-wheel--back-button';\nconst CLASS_TOUCH_ZONE = 'interactive-wheel--touch';\n\nconst CLASS_SLICE_BUTTON = 'wheel-slice--button';\nconst CLASS_ARROW_TOP = 'interactive-wheel--rotation-arrow-top';\nconst CLASS_ARROW_BOTTOM = 'interactive-wheel--rotation-arrow-bottom';\n\nconst CLASS_SLICE = 'wheel-slice';\nconst CLASS_LINK = 'wheel-slice--link';\nconst CLASS_TIER_LINK = 'wheel-slice--tier-link';\n\nconst CLASS_SECTION_SLICE = 'section-slice';\nconst CLASS_TIER_ONE = 'tier-one';\nconst CLASS_TIER_TWO = 'tier-two';\n\nconst CLASSROOT_COLOR = 'color--';\n\nconst VAR_SLICES_COUNT = '--slices-count';\nconst VAR_SLICES_CURRENT = '--current-slice';\nconst VAR_SLICE_INDEX = '--slice-index';\nconst VAR_ROTATION_SPEED_FACTOR = '--rotation-speed-factor';\n\nconst selectors = {\n\twheel: CLASS_WHEEL,\n\twheelContainer: CLASS_WHEEL_CONTAINER,\n\tbackButton: CLASS_BACK_BUTTON,\n\tarrowTop: CLASS_ARROW_TOP,\n\tarrowBottom: CLASS_ARROW_BOTTOM,\n\ttouchZone: CLASS_TOUCH_ZONE,\n};\nconst selectorsAll = {\n\tslices: CLASS_SLICE,\n};\n\nconst filterClass = (list, className) =>\n\t[...list].filter(element => element.classList.contains(className));\nconst filterSection = section => list =>\n\t//intended coertion\n\t[...list].filter(element => element.dataset.section == section);\n\nmodule.exports = {\n\tasync init() {\n\t\tfillWithDomElements(this, selectors);\n\t\tfillWithDomElementsAll(this, selectorsAll);\n\t\tif (!!this.root.dataset.oneLevel) {\n\t\t\tconst firstSection = document.createElement('li');\n\t\t\tconst secondSection = document.createElement('li');\n\t\t\tfirstSection.classList.add(\n\t\t\t\t'wheel-slice',\n\t\t\t\t'active',\n\t\t\t\t'tier-group',\n\t\t\t\t'color--transparent',\n\t\t\t\t'one-level--first',\n\t\t\t\t'tier-one',\n\t\t\t\t'is-wide',\n\t\t\t);\n\t\t\tfirstSection.innerHTML = `\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t${this.root.dataset.tierOneLabel}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t`;\n\t\t\tsecondSection.classList.add(\n\t\t\t\t'wheel-slice',\n\t\t\t\t'active',\n\t\t\t\t'tier-group',\n\t\t\t\t'color--transparent',\n\t\t\t\t'one-level--second',\n\t\t\t\t'tier-two',\n\t\t\t\t'is-wide',\n\t\t\t);\n\t\t\tsecondSection.innerHTML = `\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t${this.root.dataset.tierTwoLabel}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t`;\n\n\t\t\tconst sectionsArray = this.root.dataset.section\n\t\t\t\t.split(',')\n\t\t\t\t.filter(element => element);\n\t\t\tconst sectionOneCount = sectionsArray.filter(\n\t\t\t\telement => element === '1',\n\t\t\t).length;\n\t\t\tconst sectionTwoCount = sectionsArray.filter(\n\t\t\t\telement => element === '2',\n\t\t\t).length;\n\n\t\t\tif (sectionOneCount) {\n\t\t\t\tthis.slices[0].before(firstSection);\n\t\t\t\tconst sinOne = Math.sin(\n\t\t\t\t\t3.14159265359 * 2 * (sectionOneCount / sectionsArray.length),\n\t\t\t\t);\n\t\t\t\tconst cosOne =\n\t\t\t\t\tsectionOneCount === 3\n\t\t\t\t\t\t? -1\n\t\t\t\t\t\t: Math.cos(\n\t\t\t\t\t\t\t\t3.14159265359 * 2 * (sectionOneCount / sectionsArray.length),\n\t\t\t\t\t\t );\n\t\t\t\tfirstSection.style.cssText += `--slice-index:0;--angle-sin:${sinOne}; --slice-width:${sectionOneCount};--angle-cos:${cosOne};`;\n\t\t\t}\n\t\t\tif (sectionTwoCount) {\n\t\t\t\tthis.slices[sectionOneCount].before(secondSection);\n\t\t\t\tconst sinTwo = Math.sin(\n\t\t\t\t\t3.14159265359 * 2 * (sectionTwoCount / sectionsArray.length),\n\t\t\t\t);\n\t\t\t\tconst cosTwo = sectionTwoCount\n\t\t\t\t\t? -1\n\t\t\t\t\t: Math.cos(\n\t\t\t\t\t\t\t3.14159265359 * 2 * (sectionTwoCount / sectionsArray.length),\n\t\t\t\t\t );\n\t\t\t\tsecondSection.style.cssText += `--slice-index:${sectionOneCount};--angle-sin:${sinTwo}; --slice-width:${sectionTwoCount};--angle-cos:${cosTwo};`;\n\t\t\t}\n\t\t}\n\n\t\tthis.wheel.style.setProperty('--additional-full-turn', 0);\n\t\tthis.initValues();\n\t\tthis.initEvents();\n\t\tawait asyncImport(this, 'Hammer');\n\t\tthis.initPanning();\n\t\tif (this.curentSection != null && !!!this.root.dataset.oneLevel) {\n\t\t\tthis.setCurrent(0);\n\t\t\tthis.level(1, this.curentSection);\n\t\t}\n\t},\n\tinitValues() {\n\t\tthis.previousPanDelta = 0;\n\t\tthis.curentSection = this.root.dataset.section\n\t\t\t? Number(this.root.dataset.section)\n\t\t\t: undefined;\n\n\t\tthis.slicesCount = Number(\n\t\t\tthis.wheel.style.getPropertyValue(VAR_SLICES_COUNT),\n\t\t);\n\t\tthis.wheelCursor = new WheelCursor(\n\t\t\tthis.slicesCount,\n\t\t\tthis.getWheelRotation(),\n\t\t);\n\n\t\tthis.slicesSection = filterClass(this.slices, CLASS_SECTION_SLICE);\n\t\tthis.slicesTierOne = filterClass(this.slices, CLASS_TIER_ONE);\n\t\tthis.slicesTierTwo = filterClass(this.slices, CLASS_TIER_TWO);\n\t},\n\tinitEvents() {\n\t\tthis.wheelContainer.addEventListener('click', e => {\n\t\t\tconst { target } = e;\n\t\t\tconst { classList } = target;\n\t\t\tconst className = [\n\t\t\t\tCLASS_BACK_BUTTON,\n\t\t\t\tCLASS_LINK,\n\t\t\t\tCLASS_TIER_LINK,\n\t\t\t\tCLASS_SLICE_BUTTON,\n\t\t\t].find(name => classList.contains(name));\n\t\t\tif (!className) return;\n\t\t\t({\n\t\t\t\t[CLASS_BACK_BUTTON]: () => {\n\t\t\t\t\tthis.setCurrent(this.curentSection || 0);\n\t\t\t\t\tthis.level(0, 0);\n\t\t\t\t},\n\t\t\t\t[CLASS_LINK]: () => {\n\t\t\t\t\tthis.sliceTracking(e.target);\n\t\t\t\t\tthis.onLinkClick(e);\n\t\t\t\t},\n\t\t\t\t[CLASS_TIER_LINK]: () => {\n\t\t\t\t\tthis.sliceTracking(e.target);\n\t\t\t\t},\n\t\t\t\t[CLASS_SLICE_BUTTON]: this.onSliceButtonClick.bind(this, target),\n\t\t\t}[className]());\n\t\t});\n\t},\n\tonSliceButtonClick(target) {\n\t\tconst slice = target.parentNode;\n\t\tconst index = Number(slice.style.getPropertyValue(VAR_SLICE_INDEX));\n\t\tthis.curentSection = index;\n\t\tthis.setCurrent(0);\n\t\tthis.level(1, index);\n\t},\n\tonLinkClick(e) {\n\t\tconst { target } = e;\n\t\tconst {\n\t\t\tparentNode: {\n\t\t\t\tdataset: { section },\n\t\t\t},\n\t\t\thref,\n\t\t} = target;\n\t\te.preventDefault();\n\t\t(async () => {\n\t\t\tthis.linkCancel && this.linkCancel();\n\t\t\tconst { isCancelled, cancel } = registerCancelable();\n\t\t\tthis.linkCancel = cancel;\n\t\t\tconst next = Number(section || 0);\n\t\t\tif (this.wheelCursor.getSlice() !== next) {\n\t\t\t\tthis.setCurrent(next);\n\t\t\t\tawait awaitEventOnCondition(\n\t\t\t\t\tthis.slicesSection[0],\n\t\t\t\t\t'transitionend',\n\t\t\t\t\t({ propertyName }) => propertyName === 'transform',\n\t\t\t\t);\n\t\t\t\tif (isCancelled()) return;\n\t\t\t}\n\t\t\twindow.location.href = href;\n\t\t})();\n\t},\n\tinitPanning() {\n\t\t[this.touchZone, this.wheelContainer].forEach(element => {\n\t\t\tconst touch = new this.Hammer(element);\n\t\t\ttouch.get('pan').set({ direction: DIRECTION_ALL });\n\t\t\ttouch.on('panstart', this.onPanStart.bind(this));\n\t\t\ttouch.on('pan', this.onPan.bind(this));\n\t\t\ttouch.on('panend', this.onPanEnd.bind(this));\n\t\t});\n\t},\n\tonPanStart() {\n\t\tthis.root.classList.add(CLASS_CONTROLLED);\n\t\tthis.priorPanPosition = Number(\n\t\t\tthis.wheel.style.getPropertyValue(VAR_SLICES_CURRENT),\n\t\t);\n\t},\n\tonPan({ deltaY }) {\n\t\tconst newPos = this.priorPanPosition + deltaY / 200;\n\t\tthis.setWheelRotation(newPos);\n\t\tthis.arrowTop.classList.toggle(\n\t\t\tCLASS_ACTIVE,\n\t\t\tdeltaY < this.previousPanDelta,\n\t\t);\n\t\tthis.arrowBottom.classList.toggle(\n\t\t\tCLASS_ACTIVE,\n\t\t\tdeltaY > this.previousPanDelta,\n\t\t);\n\t\tthis.previousPanDelta = deltaY;\n\t},\n\tasync onPanEnd() {\n\t\tthis.previousPanDelta = 0;\n\t\tthis.root.classList.remove(CLASS_CONTROLLED);\n\t\tthis.setSpeedFactor(1);\n\t\tawait awaitNextFrame();\n\t\tthis.setWheelRotation(Math.round(this.getWheelRotation()));\n\t\t[this.arrowTop, this.arrowBottom].forEach(arrow =>\n\t\t\tarrow.classList.toggle(CLASS_ACTIVE, false),\n\t\t);\n\t},\n\tgetEnabledAndDisabled(level, section) {\n\t\tconst filter = filterSection(section);\n\t\treturn (() => {\n\t\t\tif (level)\n\t\t\t\treturn [\n\t\t\t\t\t[...filter(this.slicesTierOne), ...filter(this.slicesTierTwo)],\n\t\t\t\t\tthis.slicesSection,\n\t\t\t\t];\n\t\t\telse\n\t\t\t\treturn [\n\t\t\t\t\tthis.slicesSection,\n\t\t\t\t\t[...this.slicesTierOne, ...this.slicesTierTwo],\n\t\t\t\t];\n\t\t})();\n\t},\n\tsetBackButtonState(level, section) {\n\t\tconst color = section != null && this.slicesSection[section].dataset.color;\n\t\tthis.backButton.className =\n\t\t\tCLASS_BACK_BUTTON + ' ' + (level && color ? CLASSROOT_COLOR + color : '');\n\t\tthis.backButton.disabled = !level;\n\t},\n\tasync level(level, section) {\n\t\tthis.currentCancel && this.currentCancel();\n\t\tconst { isCancelled, cancel } = registerCancelable();\n\t\tthis.currentCancel = cancel;\n\t\tawait awaitNextFrame();\n\t\tif (isCancelled()) return;\n\t\tconst [slices, slicesDisabled] = this.getEnabledAndDisabled(level, section);\n\t\tthis.setSpeedFactor(4);\n\t\tthis.setBackButtonState(level, section);\n\t\tsetClassAll(slices, false, CLASS_NO_DISPLAY);\n\t\tawait awaitNextFrame();\n\t\tif (isCancelled()) return;\n\t\tsetClassAll(slices, true, CLASS_ACTIVE);\n\t\tsetClassAll(slicesDisabled, false, CLASS_ACTIVE);\n\t\tawait awaitEventOnCondition(\n\t\t\tslices[0],\n\t\t\t'transitionend',\n\t\t\t({ propertyName }) => propertyName === 'transform',\n\t\t);\n\t\tif (isCancelled()) return;\n\t\tsetClassAll(slicesDisabled, true, CLASS_NO_DISPLAY);\n\t},\n\tsetSpeedFactor(factor) {\n\t\tthis.wheel.style.setProperty(VAR_ROTATION_SPEED_FACTOR, factor);\n\t},\n\tsetWheelRotation(rotation) {\n\t\tthis.wheel.style.setProperty(VAR_SLICES_CURRENT, rotation);\n\t\tthis.wheelCursor.current = rotation;\n\t},\n\tgetWheelRotation() {\n\t\treturn Number(this.wheel.style.getPropertyValue(VAR_SLICES_CURRENT));\n\t},\n\tsetCurrent(index) {\n\t\tconst previousIndex = this.wheelCursor.current;\n\t\tconst closestIndex = this.wheelCursor.setOnIndex(index);\n\t\tconst rotationDifference = Math.abs(closestIndex - previousIndex);\n\t\tthis.setSpeedFactor(rotationDifference || 1);\n\t\tthis.setWheelRotation(closestIndex);\n\t},\n\tsliceTracking(target) {\n\t\tconst { classList, textContent } = target;\n\t\tconst level = classList.contains(CLASS_LINK) ? 1 : 2;\n\t\ttrackGtm({\n\t\t\teventCategory: 'sustainability wheel',\n\t\t\teventAction: `level ${level}`,\n\t\t\teventLabel: textContent,\n\t\t});\n\t\ttrackGtm4({\n\t\t\tevent: 'GA4_event_c_sustainability_wheel',\n\t\t\tlink_text: textContent ? textContent.trim() : 'Text not set',\n\t\t\tlink_url: target.href ? target.href : 'No url',\n\t\t});\n\t},\n};\n","let indexCounter = 0;\nconst cancelablesMap = new Map();\n\nconst registerCancelable = () => {\n\tconst index = indexCounter;\n\tindexCounter++;\n\tcancelablesMap.set(index, true);\n\tconst isCancelled = () => !cancelablesMap.has(index);\n\tconst cancel = () => cancelablesMap.delete(index);\n\treturn { isCancelled, cancel };\n};\n\nexport default registerCancelable;\n"],"sourceRoot":""}