{"version":3,"sources":["webpack:///./cartridges/app_designholding/cartridge/client/default/js/components/form-elements/label-as-placeholder/label-as-placeholder.js","webpack:///./cartridges/app_designholding/cartridge/client/default/js/components/form-elements/label-as-placeholder/index.js"],"names":["LAP_ACTIVE","INPUT_QUERY","LabelAsPlaceholder","constructor","element","formItem","input","querySelector","toggleLabelClass","bindEvents","addEventListener","Events","$on","id","type","forceAnimateLabel","action","value","classList"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAEA,IAAMA,UAAU,GAAG,wBAAnB;AACA,IAAMC,WAAW,GAAG,yBAApB;;AAEA,MAAMC,uCAAN,CAAyB;AACvBC,aAAW,CAACC,OAAD,EAAU;AACnB,SAAKC,QAAL,GAAgBD,OAAhB;AACA,SAAKE,KAAL,GAAa,KAAKD,QAAL,CAAcE,aAAd,CAA4BN,WAA5B,CAAb;;AAEA,QAAI,KAAKI,QAAT,EAAmB;AACjB,WAAKG,gBAAL;AACA,WAAKC,UAAL;AACD;AACF;;AAEDA,YAAU,GAAG;AACX,SAAKH,KAAL,CAAWI,gBAAX,CAA4B,QAA5B,EAAsC,MAAM,KAAKF,gBAAL,EAA5C;AAEAG,qBAAM,CAACC,GAAP,eAAkB,KAAKN,KAAL,CAAWO,EAA7B,uBAAmD,MAAM,KAAKL,gBAAL,EAAzD;;AAEA,QAAI,KAAKF,KAAL,CAAWQ,IAAX,KAAoB,MAAxB,EAAgC;AAC9B,WAAKR,KAAL,CAAWI,gBAAX,CAA4B,OAA5B,EAAqC,MAAM,KAAKF,gBAAL,CAAsB,IAAtB,CAA3C;AACA,WAAKF,KAAL,CAAWI,gBAAX,CAA4B,OAA5B,EAAqC,MAAM,KAAKF,gBAAL,CAAsB,IAAtB,CAA3C;AACA,WAAKF,KAAL,CAAWI,gBAAX,CAA4B,UAA5B,EAAwC,MAAM,KAAKF,gBAAL,EAA9C;AACA,WAAKF,KAAL,CAAWI,gBAAX,CAA4B,QAA5B,EAAsC,MAAM,KAAKF,gBAAL,EAA5C;AACD;AACF;;AAEDA,kBAAgB,CAACO,iBAAD,EAAoB;AAClC,QAAMC,MAAM,GAAGD,iBAAiB,IAAI,KAAKT,KAAL,CAAWW,KAAhC,GAAwC,KAAxC,GAAgD,QAA/D;AAEA,SAAKZ,QAAL,CAAca,SAAd,CAAwBF,MAAxB,EAAgChB,UAAhC;AACD;;AA5BsB;;AA+BVE,gGAAf,E;;ACpCA;AAEeA,4HAAf,E","file":"js/LabelAsPlaceholder.js","sourcesContent":["import Events from '@utilities/events'\n\nconst LAP_ACTIVE = 'form__item--lap-active'\nconst INPUT_QUERY = 'input, textarea, select'\n\nclass LabelAsPlaceholder {\n  constructor(element) {\n    this.formItem = element\n    this.input = this.formItem.querySelector(INPUT_QUERY)\n\n    if (this.formItem) {\n      this.toggleLabelClass()\n      this.bindEvents()\n    }\n  }\n\n  bindEvents() {\n    this.input.addEventListener('change', () => this.toggleLabelClass())\n\n    Events.$on(`lap[${this.input.id}]::toggle-update`, () => this.toggleLabelClass())\n\n    if (this.input.type !== 'file') {\n      this.input.addEventListener('input', () => this.toggleLabelClass(true))\n      this.input.addEventListener('focus', () => this.toggleLabelClass(true))\n      this.input.addEventListener('focusout', () => this.toggleLabelClass())\n      this.input.addEventListener('change', () => this.toggleLabelClass())\n    }\n  }\n\n  toggleLabelClass(forceAnimateLabel) {\n    const action = forceAnimateLabel || this.input.value ? 'add' : 'remove'\n\n    this.formItem.classList[action](LAP_ACTIVE)\n  }\n}\n\nexport default LabelAsPlaceholder\n","import LabelAsPlaceholder from './label-as-placeholder'\n\nexport default LabelAsPlaceholder\n"],"sourceRoot":""}