{"version":3,"file":"range-BDH_5-UZ.js","sources":["../../../app/frontend/entrypoints/marketing/free/range.js"],"sourcesContent":["import { getjQuery, element, onDOMContentLoaded } from '../mdb/util/index';\nimport Data from '../mdb/dom/data';\nimport EventHandler from '../mdb/dom/event-handler';\nimport Manipulator from '../mdb/dom/manipulator';\nimport SelectorEngine from '../mdb/dom/selector-engine';\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'range';\nconst DATA_KEY = 'mdb.range';\nconst CLASSNAME_THUMB = 'thumb';\nconst CLASSNAME_WRAPPER = 'range';\nconst CLASSNAME_ACTIVE = 'thumb-active';\nconst CLASSNAME_THUMB_VALUE = 'thumb-value';\n\nconst SELECTOR_THUMB_VALUE = `.${CLASSNAME_THUMB_VALUE}`;\nconst SELECTOR_WRAPPER = `.${CLASSNAME_WRAPPER}`;\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Range {\n constructor(element) {\n this._element = element;\n this._initiated = false;\n\n if (this._element) {\n Data.setData(element, DATA_KEY, this);\n this.init();\n }\n }\n\n // Getters\n static get NAME() {\n return NAME;\n }\n\n get rangeInput() {\n return SelectorEngine.findOne('input[type=range]', this._element);\n }\n\n // Public\n init() {\n if (this._initiated) {\n return;\n }\n this._addThumb();\n this._updateValue();\n this._thumbPositionUpdate();\n this._handleEvents();\n this._initiated = true;\n }\n\n dispose() {\n this._disposeEvents();\n Data.removeData(this._element, DATA_KEY);\n this._element = null;\n }\n\n // Private\n _addThumb() {\n const RANGE_THUMB = element('span');\n Manipulator.addClass(RANGE_THUMB, CLASSNAME_THUMB);\n RANGE_THUMB.innerHTML = '';\n this._element.append(RANGE_THUMB);\n }\n\n _updateValue() {\n const thumbValue = SelectorEngine.findOne(SELECTOR_THUMB_VALUE, this._element);\n thumbValue.textContent = this.rangeInput.value;\n this.rangeInput.oninput = () => (thumbValue.textContent = this.rangeInput.value);\n }\n\n _handleEvents() {\n EventHandler.on(this.rangeInput, 'mousedown', () => this._showThumb());\n EventHandler.on(this.rangeInput, 'mouseup', () => this._hideThumb());\n EventHandler.on(this.rangeInput, 'touchstart', () => this._showThumb());\n EventHandler.on(this.rangeInput, 'touchend', () => this._hideThumb());\n EventHandler.on(this.rangeInput, 'input', () => this._thumbPositionUpdate());\n }\n\n _disposeEvents() {\n EventHandler.off(this.rangeInput, 'mousedown', this._showThumb);\n EventHandler.off(this.rangeInput, 'mouseup', this._hideThumb);\n EventHandler.off(this.rangeInput, 'touchstart', this._showThumb);\n EventHandler.off(this.rangeInput, 'touchend', this._hideThumb);\n EventHandler.off(this.rangeInput, 'input', this._thumbPositionUpdate);\n }\n\n _showThumb() {\n Manipulator.addClass(this._element.lastElementChild, CLASSNAME_ACTIVE);\n }\n\n _hideThumb() {\n Manipulator.removeClass(this._element.lastElementChild, CLASSNAME_ACTIVE);\n }\n\n _thumbPositionUpdate() {\n const rangeInput = this.rangeInput;\n const inputValue = rangeInput.value;\n const minValue = rangeInput.min ? rangeInput.min : 0;\n const maxValue = rangeInput.max ? rangeInput.max : 100;\n const thumb = this._element.lastElementChild;\n const newValue = Number(((inputValue - minValue) * 100) / (maxValue - minValue));\n thumb.firstElementChild.textContent = inputValue;\n Manipulator.style(thumb, { left: `calc(${newValue}% + (${8 - newValue * 0.15}px))` });\n }\n // Static\n\n static getInstance(element) {\n return Data.getData(element, DATA_KEY);\n }\n\n static getOrCreateInstance(element, config = {}) {\n return (\n this.getInstance(element) || new this(element, typeof config === 'object' ? config : null)\n );\n }\n\n static jQueryInterface(config, options) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY);\n const _config = typeof config === 'object' && config;\n if (!data && /dispose/.test(config)) {\n return;\n }\n if (!data) {\n data = new Range(this, _config);\n }\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config](options);\n }\n });\n }\n}\n\n// auto-init\nSelectorEngine.find(SELECTOR_WRAPPER).map((element) => new Range(element));\n\n// jQuery init\nonDOMContentLoaded(() => {\n const $ = getjQuery();\n\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME];\n $.fn[NAME] = Range.jQueryInterface;\n $.fn[NAME].Constructor = Range;\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n return Range.jQueryInterface;\n };\n }\n});\n\nexport default Range;\n"],"names":["NAME","DATA_KEY","CLASSNAME_THUMB","CLASSNAME_WRAPPER","CLASSNAME_ACTIVE","CLASSNAME_THUMB_VALUE","SELECTOR_THUMB_VALUE","SELECTOR_WRAPPER","Range","element","Data","SelectorEngine","RANGE_THUMB","Manipulator","thumbValue","EventHandler","rangeInput","inputValue","minValue","maxValue","thumb","newValue","config","options","data","_config","onDOMContentLoaded","$","getjQuery","JQUERY_NO_CONFLICT"],"mappings":"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"}