{"version":3,"file":"./modules/MultiselectToggleCheckbox.xxxxxxxx.js","mappings":"mIAAA,MAAMA,EAAiB,4CAER,MAAMC,EAKjB,YAAOC,CAAMC,EAAmBH,GAC5BI,MAAMC,KAAKC,SAASC,iBAAiBJ,IAAWK,OAAQC,IAAuBA,EAAKC,QAAQC,mBAAmBC,QAASC,IACpH,IAAIZ,EAA0BY,GAC9BA,EAAQH,QAAQC,kBAAoB,QAE5C,CAEA,WAAAG,CAAmBD,GAAA,KAAAA,QAAAA,EACfE,KAAKC,kBAAoBD,KAAKF,QAAQI,cAAc,qCACpDF,KAAKG,uBAAyBH,KAAKC,kBAAkBC,cAAc,SACnEF,KAAKI,aAAef,MAAMC,KAAKU,KAAKF,QAAQN,iBAAiB,4CAC7DQ,KAAKK,mBACT,CAEA,iBAAAA,GACIL,KAAKC,kBAAkBK,iBAAiB,QAAUC,GAAMP,KAAKQ,iBAAiBD,IAC9EP,KAAKI,aAAaP,QAASY,GAA+BA,EAASH,iBAAiB,QAAUC,GAAMP,KAAKU,gBAAgBH,IAC7H,CAEA,gBAAAC,CAAiBD,GACb,IAAII,EAAgBJ,EAAEK,OAEtBZ,KAAKI,aAAaP,QAASY,IACvBA,EAASI,QAAUF,EAAcE,SAEzC,CAEA,eAAAH,CAAgBH,GACZ,IAAIO,EAAgBP,EAAEK,OACHZ,KAAKI,aAAaW,KAAMC,GAA6C,GAAjBA,EAAMH,SAIzC,GAAzBC,EAAcD,UACrBb,KAAKG,uBAAuBU,SAAU,GAFtCb,KAAKG,uBAAuBU,SAAU,CAI9C,EAgBA3B,EAA0BC,MAAMF,E,gDC1DpC,Q,SAAwC,O","sources":["webpack:///./modules/MultiselectToggleCheckbox/MultiselectToggleCheckbox.ts","webpack:///./modules/MultiselectToggleCheckbox/index.ts"],"sourcesContent":["const moduleSelector = '[data-module=\"MultiselectToggleCheckbox\"]';\r\n\r\nexport default class MultiselectToggleCheckbox {\r\n selectAllCheckbox: HTMLElement;\r\n selectAllCheckboxInput: HTMLInputElement;\r\n checkboxList: HTMLInputElement[];\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 MultiselectToggleCheckbox(element);\r\n element.dataset.moduleInitialized = 'true';\r\n });\r\n }\r\n\r\n constructor(public element: HTMLElement) {\r\n this.selectAllCheckbox = this.element.querySelector('.nx-u-toggle-checkbox--select-all');\r\n this.selectAllCheckboxInput = this.selectAllCheckbox.querySelector('input');\r\n this.checkboxList = Array.from(this.element.querySelectorAll('.item-group-option input[type=checkbox]'));\r\n this.initEventHandlers();\r\n }\r\n\r\n initEventHandlers() {\r\n this.selectAllCheckbox.addEventListener('click', (e) => this.selectAllHandler(e))\r\n this.checkboxList.forEach((checkbox: HTMLInputElement) => checkbox.addEventListener('click', (e) => this.onCheckboxClick(e)))\r\n }\r\n\r\n selectAllHandler(e: Event) {\r\n let selectAllItem = e.target as HTMLInputElement;\r\n\r\n this.checkboxList.forEach((checkbox: HTMLInputElement) => {\r\n checkbox.checked = selectAllItem.checked;\r\n });\r\n }\r\n\r\n onCheckboxClick(e: Event) {\r\n let checkboxInput = e.target as HTMLInputElement;\r\n let hasUnchecked = this.checkboxList.some((input: HTMLInputElement) => input.checked == false);\r\n\r\n if (!hasUnchecked) {\r\n this.selectAllCheckboxInput.checked = true;\r\n } else if (checkboxInput.checked == false) {\r\n this.selectAllCheckboxInput.checked = false;\r\n }\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 MultiselectToggleCheckbox.setup(moduleSelector);\r\n\r\n module.hot.accept(() => {\r\n MultiselectToggleCheckbox.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 MultiselectToggleCheckbox.setup(moduleSelector);\r\n}","import MultiselectToggleCheckbox from './MultiselectToggleCheckbox';\r\nexport default MultiselectToggleCheckbox;"],"names":["moduleSelector","MultiselectToggleCheckbox","setup","selector","Array","from","document","querySelectorAll","filter","node","dataset","moduleInitialized","forEach","element","constructor","this","selectAllCheckbox","querySelector","selectAllCheckboxInput","checkboxList","initEventHandlers","addEventListener","e","selectAllHandler","checkbox","onCheckboxClick","selectAllItem","target","checked","checkboxInput","some","input"],"sourceRoot":""}