{"version":3,"file":"javascripts/chunks/00ffd6aed7b0fe4af7fd.input.js","mappings":"wlCAEqBA,EAAAA,SAAAA,I,0oBACnB,WAAYC,GAAS,a,4FAAA,UACnB,cAAMA,EAASA,EAAQC,aAAa,oBAE/BC,MAAQF,EAAQG,cAAc,SACnC,EAAKC,OAASJ,EAAQG,cAAc,UACpC,EAAKE,KAAO,EAAKD,OAAOD,cAAc,OACtC,EAAKG,MAAQ,EAAKF,OAAOD,cAAc,SAEvC,EAAKI,SAAU,EAEf,EAAKC,UAAYR,EAAQC,aAAa,cAAgB,gBACtD,EAAKQ,UAAYT,EAAQC,aAAa,cAAgB,gBAEtD,EAAKS,qBAbc,E,2CAgBrB,SAAeC,GACbA,EAAEC,iBACFC,KAAKN,SAAWM,KAAKN,QAErBM,KAAKR,KAAKS,aAAa,aAAcD,KAAKN,QAAU,WAAa,QACjEM,KAAKX,MAAMa,KAAOF,KAAKN,QAAU,OAAS,WAC1CM,KAAKP,MAAMU,UAAYH,KAAKN,QAAUM,KAAKJ,UAAYI,KAAKL,UAC5DK,KAAKT,OAAOE,MAAQO,KAAKN,QAAUM,KAAKJ,UAAYI,KAAKL,Y,gCAG3D,WAAqB,WACnBK,KAAKT,OAAOa,iBAAiB,SAAS,SAACN,GAAD,OAAO,EAAKO,eAAeP,W,mBA5BhDZ,C,SAAcoB,I,0CCInC,iBAAgBC,GAAD,IAAWpB,EAAX,uDAAqBqB,OAAOC,SAA5B,MACb,GAAGC,MAAMC,KAAKxB,EAAQyB,iBAAiBL,M,gqCCkEzC,QAvEMD,WACJ,WAAYnB,EAAS0B,I,4FAAI,SACvBb,KAAKa,GAAKA,EACVb,KAAKc,SAAW,CACdC,KAAM5B,GAGRa,KAAKgB,iB,mDAGP,WACMhB,KAAKc,SAASC,MAChBf,KAAKc,SAASC,KAAKd,aAAa,8BAA8B,K,8BAIlE,WACMD,KAAKc,SAASC,MAChBf,KAAKc,SAASC,KAAKE,gBAAgB,gC,yBAWvC,SAAYC,GAQV,IARkB,WACZC,EAAiBD,EAAOE,KAAI,SAACC,GAAD,cAC7BA,GAD6B,IAEhCd,SAAU,GAAF,OAAK,EAAKM,GAAV,aAAiBQ,EAAcd,eAGnCe,GAAcC,EAAAA,EAAAA,GAAO,oBAAqBvB,KAAKc,SAASC,MAN5C,WAQTS,GACP,IAAMC,EAAaH,EAAYE,GAMxBH,E,k1BAAP,CALgCF,EAAeO,QAC7C,SAACC,GAAD,OACEF,EAAWrC,aAAa,qBAAuBuC,EAAapB,YAGhE,MAEIc,SAC6C,IAApC,EAAKP,SAASO,EAAcR,IACrC,EAAKC,SAASO,EAAcR,IAAMY,QAEkB,IAAzC,EAAKX,SAASO,EAAcR,IAAIe,OACzC,EAAKd,SAASO,EAAcR,IAAM,CAAC,EAAKC,SAASO,EAAcR,MAEjE,EAAKC,SAASO,EAAcR,IAAIe,KAAKH,MAhBlCD,EAAI,EAAGA,EAAIF,EAAYO,OAAQL,GAAK,EAAG,EAAvCA,GA4BTM,OAAOC,OAAO/B,KAAKc,UAAUkB,SAAQ,SAACC,GACpCA,EAAIC,OAFS,SAACD,GAAD,YAA8B,IAAbA,EAAIL,KAAuB,CAACK,GAAOA,EAEpDC,CAAOD,W,mBAlEpB3B","sources":["webpack:///./components/input/javascripts/input.js","webpack:///./javascripts/dom/select.js","webpack:///./javascripts/helpers/baseModule.js"],"sourcesContent":["import BaseModule from '../../../javascripts/helpers/baseModule';\n\nexport default class Input extends BaseModule {\n constructor(element) {\n super(element, element.getAttribute('data-js-module'));\n\n this.input = element.querySelector('input');\n this.toggle = element.querySelector('button');\n this.icon = this.toggle.querySelector('use');\n this.title = this.toggle.querySelector('title');\n\n this.toggled = false;\n\n this.showLabel = element.getAttribute('data-show') || 'Show password';\n this.hideLabel = element.getAttribute('data-hide') || 'Hide password';\n\n this.initEventListeners();\n }\n\n togglePassword(e) {\n e.preventDefault();\n this.toggled = !this.toggled;\n\n this.icon.setAttribute('xlink:href', this.toggled ? '#eye-off' : '#eye');\n this.input.type = this.toggled ? 'text' : 'password';\n this.title.innerHTML = this.toggled ? this.hideLabel : this.showLabel;\n this.toggle.title = this.toggled ? this.hideLabel : this.showLabel;\n }\n\n initEventListeners() {\n this.toggle.addEventListener('click', (e) => this.togglePassword(e));\n }\n}\n","/**\n * This methods selects Elements from a specific context by a selector\n * @param {string} selector Selector of the element to find\n * @param {Element|HTMLDocument} [element] Context of the selectable\n * @returns {Array} Am array with selected Elements\n */\nexport default (selector, element = window.document) =>\n [].slice.call(element.querySelectorAll(selector));\n","import select from '../dom/select';\n\nclass BaseModule {\n constructor(element, id) {\n this.id = id;\n this.elements = {\n self: element\n };\n\n this.setInitialized();\n }\n\n setInitialized() {\n if (this.elements.self) {\n this.elements.self.setAttribute('data-js-module-initialized', true);\n }\n }\n\n setUnInitialized() {\n if (this.elements.self) {\n this.elements.self.removeAttribute('data-js-module-initialized');\n }\n }\n\n /**\n * Selects DOMElements of a module with a specific data attribute (`data-js-element=\"${module}__${selector}\"`)\n * Receives an object where the id param is the key in the elements cache\n * The selector param of the config is the selector part in the query-selector described above\n * @param {Object} config Configuration object in a key value format\n * @returns {void}\n */\n getElements(config) {\n const elementsConfig = config.map((elementConfig) => ({\n ...elementConfig,\n selector: `${this.id}__${elementConfig.selector}`\n }));\n\n const domElements = select('[data-js-element]', this.elements.self);\n\n for (let i = 0; i < domElements.length; i += 1) {\n const domElement = domElements[i];\n const elementConfigCandidates = elementsConfig.filter(\n (singleConfig) =>\n domElement.getAttribute('data-js-element') === singleConfig.selector\n );\n\n const [elementConfig] = elementConfigCandidates;\n\n if (elementConfig) {\n if (typeof this.elements[elementConfig.id] === 'undefined') {\n this.elements[elementConfig.id] = domElement;\n } else {\n if (typeof this.elements[elementConfig.id].push === 'undefined') {\n this.elements[elementConfig.id] = [this.elements[elementConfig.id]];\n }\n this.elements[elementConfig.id].push(domElement);\n }\n }\n }\n\n /*\n * Append a attribute \"asList\" to each element/s in this.elements\n * which is always an array no matter if element/s is an array\n * or a single HTMLElement\n */\n\n const asList = (obj) => (typeof obj.push === 'undefined' ? [obj] : obj);\n Object.values(this.elements).forEach((obj) => {\n obj.asList = asList(obj); // eslint-disable-line no-param-reassign\n });\n }\n}\n\nexport default BaseModule;\n"],"names":["Input","element","getAttribute","input","querySelector","toggle","icon","title","toggled","showLabel","hideLabel","initEventListeners","e","preventDefault","this","setAttribute","type","innerHTML","addEventListener","togglePassword","BaseModule","selector","window","document","slice","call","querySelectorAll","id","elements","self","setInitialized","removeAttribute","config","elementsConfig","map","elementConfig","domElements","select","i","domElement","filter","singleConfig","push","length","Object","values","forEach","obj","asList"],"sourceRoot":""}