{"version":3,"file":"dropdowns-27f7287a.js","sources":["../../src/js/cursor.js","../../src/js/dropdowns.js"],"sourcesContent":["const body = document.body;\r\nconst cursor = document.querySelector(\".js-cursor\");\r\nconst cursorDot = document.querySelector(\".js-cursorDot\");\r\n\r\nexport function addCursorTextClass(text) {\r\n cursor.classList.add(\"cursor--text\");\r\n cursorDot.dataset.label = text;\r\n}\r\n\r\nexport function removeCursorTextClass() {\r\n cursor.classList.remove(\"cursor--text\");\r\n cursorDot.dataset.label = \"\";\r\n}\r\n\r\nexport default function () {\r\n // const ctas = document.querySelectorAll(\".btn\");\r\n const cursorTriggers = document.querySelectorAll(\".js-cursorText\");\r\n\r\n // Dot follows cursor\r\n body.addEventListener(\"mousemove\", function (e) {\r\n cursorDot.style.transform = `translate(${e.clientX}px, ${e.clientY}px)`;\r\n });\r\n\r\n // Expand dot on cta hover\r\n // ctas.forEach(function (cta) {\r\n // cta.addEventListener(\"mouseenter\", function () {\r\n // cursor.classList.add(\"cursor--cta\");\r\n // });\r\n // cta.addEventListener(\"mouseleave\", function () {\r\n // cursor.classList.remove(\"cursor--cta\");\r\n // });\r\n // });\r\n\r\n cursorTriggers.forEach(function (t) {\r\n const hoverText = t.dataset.label;\r\n t.addEventListener(\"mouseenter\", function () {\r\n addCursorTextClass(hoverText);\r\n });\r\n t.addEventListener(\"mouseleave\", function () {\r\n removeCursorTextClass();\r\n });\r\n });\r\n}\r\n","export default function () {\r\n init();\r\n}\r\n\r\nfunction init() {\r\n const dropdowns = document.querySelectorAll(\".js-dropdown\");\r\n dropdowns.forEach(function (dropdown) {\r\n const dd = new PBCustomDropdown(dropdown, {});\r\n dropdown.pbCustomDropdown = dd;\r\n });\r\n}\r\n\r\nfunction PBCustomDropdown(wrapperEl, options = {}) {\r\n this.options = {\r\n defaultLabel: \"DEFAULT LABEL\",\r\n hoverClass: \"isHover\",\r\n activeClass: \"isActive\",\r\n submitForm: Object.keys(wrapperEl.dataset).includes(\"submit\"),\r\n ...options,\r\n };\r\n\r\n this.els = {\r\n wrapper: wrapperEl,\r\n nativeSelect: wrapperEl.querySelector(\".js-selectNative\"),\r\n customSelect: wrapperEl.querySelector(\".js-selectCustom\"),\r\n customSelectBox: null,\r\n customSelectOptions: null,\r\n customOptsList: [],\r\n form: null,\r\n };\r\n\r\n this.state = {\r\n optionHoveredIndex: -1,\r\n optionChecked: \"\",\r\n optionsCount: 0,\r\n selectedIndex: 0,\r\n };\r\n\r\n const self = this;\r\n\r\n this.init = function () {\r\n if (!self.els.wrapper) return;\r\n\r\n if (self.options.submitForm) {\r\n self.els.form = self.els.wrapper.closest(\"form\");\r\n }\r\n\r\n self.state.selectedIndex = Array.prototype.slice\r\n .call(self.els.nativeSelect.children)\r\n .reduce(function (acc, curr, currIdx) {\r\n if (curr.selected) {\r\n return currIdx;\r\n }\r\n return acc;\r\n }, 0);\r\n\r\n self.createCustomSelect();\r\n self.addListeners();\r\n };\r\n\r\n this.updateSelectOptions = function () {\r\n // Clear current options\r\n self.els.customSelectOptions.innerHTML = \"\";\r\n\r\n // Add options based on select list\r\n Array.from(self.els.nativeSelect.children).forEach(function (el) {\r\n const opt = document.createElement(\"div\");\r\n opt.classList.add(\"select-custom-option\");\r\n\r\n opt.dataset.value = el.value;\r\n self.setDatasetProps(el.dataset, opt);\r\n\r\n opt.textContent = el.textContent;\r\n self.els.customSelectOptions.appendChild(opt);\r\n });\r\n\r\n // Update stored elements & state\r\n self.els.customOptsList = Array.from(self.els.customSelectOptions.children);\r\n self.state.optionsCount = self.els.customOptsList.length;\r\n\r\n // Set initial text as first option text\r\n self.els.customSelectBox.textContent =\r\n self.els.nativeSelect.children[self.state.selectedIndex].textContent;\r\n\r\n self.setDatasetProps(\r\n self.els.nativeSelect.children[self.state.selectedIndex].dataset,\r\n self.els.customSelectBox\r\n );\r\n\r\n this.addCustomOptionListeners();\r\n };\r\n\r\n this.createCustomSelect = function () {\r\n // Create custom select box from native select options\r\n const customSelect = document.createElement(\"div\");\r\n customSelect.classList.add(\"select-custom\");\r\n customSelect.setAttribute(\"aria-hidden\", true);\r\n\r\n const customTrigger = document.createElement(\"div\");\r\n customTrigger.classList.add(\"select-custom-trigger\");\r\n\r\n const customOptions = document.createElement(\"div\");\r\n customOptions.classList.add(\"select-custom-options\");\r\n\r\n customSelect.appendChild(customTrigger);\r\n customSelect.appendChild(customOptions);\r\n\r\n self.els.wrapper.children[0].appendChild(customSelect);\r\n self.els.customSelect = customSelect;\r\n self.els.customSelectBox = customTrigger;\r\n self.els.customSelectOptions = customOptions;\r\n\r\n self.updateSelectOptions();\r\n };\r\n\r\n this.addListeners = function () {\r\n // Toggle custom select visibility when clicking the box\r\n self.els.customSelectBox.addEventListener(\"click\", function (e) {\r\n const isClosed = !self.els.customSelect.classList.contains(\r\n self.options.activeClass\r\n );\r\n\r\n if (isClosed) {\r\n self.openSelectCustom();\r\n } else {\r\n self.closeSelectCustom();\r\n }\r\n });\r\n document.addEventListener(\"click\", self.watchClickOutside);\r\n };\r\n\r\n this.addCustomOptionListeners = function () {\r\n // Update selectCustom value when an option is clicked or hovered\r\n self.els.customOptsList.forEach(function (elOption, index) {\r\n elOption.addEventListener(\"click\", function (e) {\r\n const value = e.target.getAttribute(\"data-value\");\r\n\r\n // Sync native select to have the same value\r\n self.els.nativeSelect.value = value;\r\n self.updateCustomSelectChecked(\r\n value,\r\n e.target.textContent,\r\n e.target.dataset\r\n );\r\n self.closeSelectCustom();\r\n\r\n self.submitForm();\r\n });\r\n\r\n elOption.addEventListener(\"mouseenter\", function (e) {\r\n self.updateCustomSelectHovered(index);\r\n });\r\n });\r\n };\r\n\r\n this.submitForm = function () {\r\n if (self.options.submitForm) {\r\n self.els.form.submit();\r\n }\r\n };\r\n\r\n this.openSelectCustom = function () {\r\n self.els.customSelect.classList.add(self.options.activeClass);\r\n // Remove aria-hidden in case this was opened by a user\r\n // who uses AT (e.g. Screen Reader) and a mouse at the same time.\r\n self.els.customSelect.setAttribute(\"aria-hidden\", false);\r\n\r\n if (self.state.optionChecked) {\r\n const optionCheckedIndex = self.els.customOptsList.findIndex(\r\n (el) => el.getAttribute(\"data-value\") === self.state.optionChecked\r\n );\r\n self.updateCustomSelectHovered(optionCheckedIndex);\r\n }\r\n\r\n // Add related event listeners\r\n // Remove initial listener\r\n document.removeEventListener(\"click\", self.watchClickOutside);\r\n\r\n document.addEventListener(\"click\", self.watchClickOutside);\r\n document.addEventListener(\"keydown\", self.supportKeyboardNavigation);\r\n };\r\n\r\n this.closeSelectCustom = function () {\r\n self.els.customSelect.classList.remove(self.options.activeClass);\r\n\r\n self.els.customSelect.setAttribute(\"aria-hidden\", true);\r\n\r\n self.updateCustomSelectHovered(-1);\r\n\r\n // Remove related event listeners\r\n document.removeEventListener(\"click\", self.watchClickOutside);\r\n document.removeEventListener(\"keydown\", self.supportKeyboardNavigation);\r\n };\r\n\r\n this.updateCustomSelectHovered = function (newIndex) {\r\n const prevOption =\r\n self.els.customSelectOptions.children[self.state.optionHoveredIndex];\r\n const option = self.els.customSelectOptions.children[newIndex];\r\n\r\n if (prevOption) {\r\n prevOption.classList.remove(self.options.hoverClass);\r\n }\r\n if (option) {\r\n option.classList.add(self.options.hoverClass);\r\n }\r\n\r\n self.state.optionHoveredIndex = newIndex;\r\n };\r\n\r\n this.updateCustomSelectChecked = function (value, text, optDataset) {\r\n const prevValue = self.state.optionChecked;\r\n\r\n const elPrevOption = self.els.customSelectOptions.querySelector(\r\n `[data-value=\"${prevValue}\"]`\r\n );\r\n const elOption = self.els.customSelectOptions.querySelector(\r\n `[data-value=\"${value}\"]`\r\n );\r\n\r\n if (elPrevOption) {\r\n elPrevOption.classList.remove(self.options.activeClass);\r\n }\r\n\r\n if (elOption) {\r\n elOption.classList.add(self.options.activeClass);\r\n }\r\n\r\n self.els.customSelectBox.textContent = text;\r\n self.setDatasetProps(optDataset, self.els.customSelectBox);\r\n\r\n self.els.customSelectBox.textContent = text;\r\n self.state.optionChecked = value;\r\n\r\n // Fire change event manually\r\n var event = new Event(\"change\");\r\n event.value = value;\r\n self.els.nativeSelect.dispatchEvent(event);\r\n\r\n self.submitForm();\r\n };\r\n\r\n this.watchClickOutside = function (e) {\r\n const didClickedOutside = !self.els.customSelect.contains(e.target);\r\n if (didClickedOutside) {\r\n self.closeSelectCustom();\r\n }\r\n };\r\n\r\n this.supportKeyboardNavigation = function (e) {\r\n // press down -> go next\r\n if (\r\n e.keyCode === 40 &&\r\n self.state.optionHoveredIndex < self.state.optionsCount - 1\r\n ) {\r\n let index = self.state.optionHoveredIndex;\r\n e.preventDefault(); // prevent page scrolling\r\n self.updateCustomSelectHovered(self.state.optionHoveredIndex + 1);\r\n }\r\n\r\n // press up -> go previous\r\n if (e.keyCode === 38 && self.state.optionHoveredIndex > 0) {\r\n e.preventDefault(); // prevent page scrolling\r\n self.updateCustomSelectHovered(self.state.optionHoveredIndex - 1);\r\n }\r\n\r\n // press Enter or space -> select the option\r\n if (e.keyCode === 13 || e.keyCode === 32) {\r\n e.preventDefault();\r\n\r\n const option =\r\n self.els.customSelectOptions.children[self.state.optionHoveredIndex];\r\n const value = option && option.getAttribute(\"data-value\");\r\n\r\n if (value) {\r\n self.els.nativeSelect.value = value;\r\n self.updateCustomSelectChecked(\r\n value,\r\n option.textContent,\r\n option.dataset\r\n );\r\n }\r\n self.closeSelectCustom();\r\n }\r\n\r\n // press ESC -> close selectCustom\r\n if (e.keyCode === 27) {\r\n self.closeSelectCustom();\r\n }\r\n };\r\n\r\n this.setDatasetProps = function (optDataset, targetEl) {\r\n const optDatasetArr = Object.entries(optDataset);\r\n for (let i = 0; i < optDatasetArr.length; i++) {\r\n const key = optDatasetArr[i][0];\r\n const val = optDatasetArr[i][1];\r\n targetEl.dataset[key] = val;\r\n }\r\n };\r\n\r\n this.init();\r\n}\r\n"],"names":["body","document","cursor","querySelector","cursorDot","addCursorTextClass","text","classList","add","dataset","label","removeCursorTextClass","remove","cursorTriggers","querySelectorAll","addEventListener","e","style","transform","clientX","clientY","forEach","t","hoverText","init","dropdowns","dropdown","dd","PBCustomDropdown","pbCustomDropdown","wrapperEl","options","defaultLabel","hoverClass","activeClass","submitForm","Object","keys","includes","els","wrapper","nativeSelect","customSelect","customSelectBox","customSelectOptions","customOptsList","form","state","optionHoveredIndex","optionChecked","optionsCount","selectedIndex","self","closest","Array","prototype","slice","call","children","reduce","acc","curr","currIdx","selected","createCustomSelect","addListeners","updateSelectOptions","innerHTML","from","el","opt","createElement","value","setDatasetProps","textContent","appendChild","length","addCustomOptionListeners","setAttribute","customTrigger","customOptions","isClosed","contains","openSelectCustom","closeSelectCustom","watchClickOutside","elOption","index","target","getAttribute","updateCustomSelectChecked","updateCustomSelectHovered","submit","optionCheckedIndex","findIndex","removeEventListener","supportKeyboardNavigation","newIndex","prevOption","option","optDataset","prevValue","elPrevOption","event","Event","dispatchEvent","didClickedOutside","keyCode","preventDefault","targetEl","optDatasetArr","entries","i","key","val"],"mappings":";;AAAA,IAAMA,IAAI,GAAGC,QAAQ,CAACD,IAAI,CAAA;AAC1B,IAAME,MAAM,GAAGD,QAAQ,CAACE,aAAa,CAAC,YAAY,CAAC,CAAA;AACnD,IAAMC,SAAS,GAAGH,QAAQ,CAACE,aAAa,CAAC,eAAe,CAAC,CAAA;AAElD,SAASE,kBAAkB,CAACC,IAAI,EAAE;AACvCJ,EAAAA,MAAM,CAACK,SAAS,CAACC,GAAG,CAAC,cAAc,CAAC,CAAA;AACpCJ,EAAAA,SAAS,CAACK,OAAO,CAACC,KAAK,GAAGJ,IAAI,CAAA;AAChC,CAAA;AAEO,SAASK,qBAAqB,GAAG;AACtCT,EAAAA,MAAM,CAACK,SAAS,CAACK,MAAM,CAAC,cAAc,CAAC,CAAA;AACvCR,EAAAA,SAAS,CAACK,OAAO,CAACC,KAAK,GAAG,EAAE,CAAA;AAC9B,CAAA;AAEe,mBAAY,IAAA;AACzB;AACA,EAAA,IAAMG,cAAc,GAAGZ,QAAQ,CAACa,gBAAgB,CAAC,gBAAgB,CAAC,CAAA;;AAElE;AACAd,EAAAA,IAAI,CAACe,gBAAgB,CAAC,WAAW,EAAE,UAAUC,CAAC,EAAE;AAC9CZ,IAAAA,SAAS,CAACa,KAAK,CAACC,SAAS,GAAgBF,YAAAA,CAAAA,MAAAA,CAAAA,CAAC,CAACG,OAAO,EAAOH,MAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAC,CAACI,OAAO,EAAK,KAAA,CAAA,CAAA;AACzE,GAAC,CAAC,CAAA;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEAP,EAAAA,cAAc,CAACQ,OAAO,CAAC,UAAUC,CAAC,EAAE;AAClC,IAAA,IAAMC,SAAS,GAAGD,CAAC,CAACb,OAAO,CAACC,KAAK,CAAA;AACjCY,IAAAA,CAAC,CAACP,gBAAgB,CAAC,YAAY,EAAE,YAAY;MAC3CV,kBAAkB,CAACkB,SAAS,CAAC,CAAA;AAC/B,KAAC,CAAC,CAAA;AACFD,IAAAA,CAAC,CAACP,gBAAgB,CAAC,YAAY,EAAE,YAAY;AAC3CJ,MAAAA,qBAAqB,EAAE,CAAA;AACzB,KAAC,CAAC,CAAA;AACJ,GAAC,CAAC,CAAA;AACJ;;;;AC1Ce,4BAAY,IAAA;AACvBa,EAAAA,IAAI,EAAE,CAAA;AACV,CAAA;AAEA,SAASA,IAAI,GAAG;AACZ,EAAA,IAAMC,SAAS,GAAGxB,QAAQ,CAACa,gBAAgB,CAAC,cAAc,CAAC,CAAA;AAC3DW,EAAAA,SAAS,CAACJ,OAAO,CAAC,UAAUK,QAAQ,EAAE;IAClC,IAAMC,EAAE,GAAG,IAAIC,gBAAgB,CAACF,QAAQ,EAAE,EAAE,CAAC,CAAA;IAC7CA,QAAQ,CAACG,gBAAgB,GAAGF,EAAE,CAAA;AAClC,GAAC,CAAC,CAAA;AACN,CAAA;AAEA,SAASC,gBAAgB,CAACE,SAAS,EAAgB;EAAA,IAAdC,OAAO,GAAG,SAAA,CAAA,MAAA,GAAA,CAAA,IAAA,SAAA,CAAA,CAAA,CAAA,KAAA,SAAA,GAAA,SAAA,CAAA,CAAA,CAAA,GAAA,EAAE,CAAA;AAC/C,EAAA,IAAI,CAACA,OAAO,GAAA,aAAA,CAAA;AACVC,IAAAA,YAAY,EAAE,eAAe;AAC7BC,IAAAA,UAAU,EAAE,SAAS;AACrBC,IAAAA,WAAW,EAAE,UAAU;AACvBC,IAAAA,UAAU,EAAEC,MAAM,CAACC,IAAI,CAACP,SAAS,CAACrB,OAAO,CAAC,CAAC6B,QAAQ,CAAC,QAAQ,CAAA;AAAC,GAAA,EAC1DP,OAAO,CACX,CAAA;EAED,IAAI,CAACQ,GAAG,GAAG;AACTC,IAAAA,OAAO,EAAEV,SAAS;AAClBW,IAAAA,YAAY,EAAEX,SAAS,CAAC3B,aAAa,CAAC,kBAAkB,CAAC;AACzDuC,IAAAA,YAAY,EAAEZ,SAAS,CAAC3B,aAAa,CAAC,kBAAkB,CAAC;AACzDwC,IAAAA,eAAe,EAAE,IAAI;AACrBC,IAAAA,mBAAmB,EAAE,IAAI;AACzBC,IAAAA,cAAc,EAAE,EAAE;AAClBC,IAAAA,IAAI,EAAE,IAAA;GACP,CAAA;EAED,IAAI,CAACC,KAAK,GAAG;IACXC,kBAAkB,EAAE,CAAC,CAAC;AACtBC,IAAAA,aAAa,EAAE,EAAE;AACjBC,IAAAA,YAAY,EAAE,CAAC;AACfC,IAAAA,aAAa,EAAE,CAAA;GAChB,CAAA;EAED,IAAMC,IAAI,GAAG,IAAI,CAAA;EAEjB,IAAI,CAAC5B,IAAI,GAAG,YAAY;AACtB,IAAA,IAAI,CAAC4B,IAAI,CAACb,GAAG,CAACC,OAAO,EAAE,OAAA;AAEvB,IAAA,IAAIY,IAAI,CAACrB,OAAO,CAACI,UAAU,EAAE;AAC3BiB,MAAAA,IAAI,CAACb,GAAG,CAACO,IAAI,GAAGM,IAAI,CAACb,GAAG,CAACC,OAAO,CAACa,OAAO,CAAC,MAAM,CAAC,CAAA;AAClD,KAAA;AAEAD,IAAAA,IAAI,CAACL,KAAK,CAACI,aAAa,GAAGG,KAAK,CAACC,SAAS,CAACC,KAAK,CAC7CC,IAAI,CAACL,IAAI,CAACb,GAAG,CAACE,YAAY,CAACiB,QAAQ,CAAC,CACpCC,MAAM,CAAC,UAAUC,GAAG,EAAEC,IAAI,EAAEC,OAAO,EAAE;MACpC,IAAID,IAAI,CAACE,QAAQ,EAAE;AACjB,QAAA,OAAOD,OAAO,CAAA;AAChB,OAAA;AACA,MAAA,OAAOF,GAAG,CAAA;KACX,EAAE,CAAC,CAAC,CAAA;IAEPR,IAAI,CAACY,kBAAkB,EAAE,CAAA;IACzBZ,IAAI,CAACa,YAAY,EAAE,CAAA;GACpB,CAAA;EAED,IAAI,CAACC,mBAAmB,GAAG,YAAY;AACrC;AACAd,IAAAA,IAAI,CAACb,GAAG,CAACK,mBAAmB,CAACuB,SAAS,GAAG,EAAE,CAAA;;AAE3C;AACAb,IAAAA,KAAK,CAACc,IAAI,CAAChB,IAAI,CAACb,GAAG,CAACE,YAAY,CAACiB,QAAQ,CAAC,CAACrC,OAAO,CAAC,UAAUgD,EAAE,EAAE;AAC/D,MAAA,IAAMC,GAAG,GAAGrE,QAAQ,CAACsE,aAAa,CAAC,KAAK,CAAC,CAAA;AACzCD,MAAAA,GAAG,CAAC/D,SAAS,CAACC,GAAG,CAAC,sBAAsB,CAAC,CAAA;AAEzC8D,MAAAA,GAAG,CAAC7D,OAAO,CAAC+D,KAAK,GAAGH,EAAE,CAACG,KAAK,CAAA;MAC5BpB,IAAI,CAACqB,eAAe,CAACJ,EAAE,CAAC5D,OAAO,EAAE6D,GAAG,CAAC,CAAA;AAErCA,MAAAA,GAAG,CAACI,WAAW,GAAGL,EAAE,CAACK,WAAW,CAAA;MAChCtB,IAAI,CAACb,GAAG,CAACK,mBAAmB,CAAC+B,WAAW,CAACL,GAAG,CAAC,CAAA;AAC/C,KAAC,CAAC,CAAA;;AAEF;AACAlB,IAAAA,IAAI,CAACb,GAAG,CAACM,cAAc,GAAGS,KAAK,CAACc,IAAI,CAAChB,IAAI,CAACb,GAAG,CAACK,mBAAmB,CAACc,QAAQ,CAAC,CAAA;IAC3EN,IAAI,CAACL,KAAK,CAACG,YAAY,GAAGE,IAAI,CAACb,GAAG,CAACM,cAAc,CAAC+B,MAAM,CAAA;;AAExD;IACAxB,IAAI,CAACb,GAAG,CAACI,eAAe,CAAC+B,WAAW,GAClCtB,IAAI,CAACb,GAAG,CAACE,YAAY,CAACiB,QAAQ,CAACN,IAAI,CAACL,KAAK,CAACI,aAAa,CAAC,CAACuB,WAAW,CAAA;IAEtEtB,IAAI,CAACqB,eAAe,CAClBrB,IAAI,CAACb,GAAG,CAACE,YAAY,CAACiB,QAAQ,CAACN,IAAI,CAACL,KAAK,CAACI,aAAa,CAAC,CAAC1C,OAAO,EAChE2C,IAAI,CAACb,GAAG,CAACI,eAAe,CACzB,CAAA;IAED,IAAI,CAACkC,wBAAwB,EAAE,CAAA;GAChC,CAAA;EAED,IAAI,CAACb,kBAAkB,GAAG,YAAY;AACpC;AACA,IAAA,IAAMtB,YAAY,GAAGzC,QAAQ,CAACsE,aAAa,CAAC,KAAK,CAAC,CAAA;AAClD7B,IAAAA,YAAY,CAACnC,SAAS,CAACC,GAAG,CAAC,eAAe,CAAC,CAAA;AAC3CkC,IAAAA,YAAY,CAACoC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,CAAA;AAE9C,IAAA,IAAMC,aAAa,GAAG9E,QAAQ,CAACsE,aAAa,CAAC,KAAK,CAAC,CAAA;AACnDQ,IAAAA,aAAa,CAACxE,SAAS,CAACC,GAAG,CAAC,uBAAuB,CAAC,CAAA;AAEpD,IAAA,IAAMwE,aAAa,GAAG/E,QAAQ,CAACsE,aAAa,CAAC,KAAK,CAAC,CAAA;AACnDS,IAAAA,aAAa,CAACzE,SAAS,CAACC,GAAG,CAAC,uBAAuB,CAAC,CAAA;AAEpDkC,IAAAA,YAAY,CAACiC,WAAW,CAACI,aAAa,CAAC,CAAA;AACvCrC,IAAAA,YAAY,CAACiC,WAAW,CAACK,aAAa,CAAC,CAAA;AAEvC5B,IAAAA,IAAI,CAACb,GAAG,CAACC,OAAO,CAACkB,QAAQ,CAAC,CAAC,CAAC,CAACiB,WAAW,CAACjC,YAAY,CAAC,CAAA;AACtDU,IAAAA,IAAI,CAACb,GAAG,CAACG,YAAY,GAAGA,YAAY,CAAA;AACpCU,IAAAA,IAAI,CAACb,GAAG,CAACI,eAAe,GAAGoC,aAAa,CAAA;AACxC3B,IAAAA,IAAI,CAACb,GAAG,CAACK,mBAAmB,GAAGoC,aAAa,CAAA;IAE5C5B,IAAI,CAACc,mBAAmB,EAAE,CAAA;GAC3B,CAAA;EAED,IAAI,CAACD,YAAY,GAAG,YAAY;AAC9B;IACAb,IAAI,CAACb,GAAG,CAACI,eAAe,CAAC5B,gBAAgB,CAAC,OAAO,EAAE,UAAUC,CAAC,EAAE;AAC9D,MAAA,IAAMiE,QAAQ,GAAG,CAAC7B,IAAI,CAACb,GAAG,CAACG,YAAY,CAACnC,SAAS,CAAC2E,QAAQ,CACxD9B,IAAI,CAACrB,OAAO,CAACG,WAAW,CACzB,CAAA;AAED,MAAA,IAAI+C,QAAQ,EAAE;QACZ7B,IAAI,CAAC+B,gBAAgB,EAAE,CAAA;AACzB,OAAC,MAAM;QACL/B,IAAI,CAACgC,iBAAiB,EAAE,CAAA;AAC1B,OAAA;AACF,KAAC,CAAC,CAAA;IACFnF,QAAQ,CAACc,gBAAgB,CAAC,OAAO,EAAEqC,IAAI,CAACiC,iBAAiB,CAAC,CAAA;GAC3D,CAAA;EAED,IAAI,CAACR,wBAAwB,GAAG,YAAY;AAC1C;IACAzB,IAAI,CAACb,GAAG,CAACM,cAAc,CAACxB,OAAO,CAAC,UAAUiE,QAAQ,EAAEC,KAAK,EAAE;AACzDD,MAAAA,QAAQ,CAACvE,gBAAgB,CAAC,OAAO,EAAE,UAAUC,CAAC,EAAE;QAC9C,IAAMwD,KAAK,GAAGxD,CAAC,CAACwE,MAAM,CAACC,YAAY,CAAC,YAAY,CAAC,CAAA;;AAEjD;AACArC,QAAAA,IAAI,CAACb,GAAG,CAACE,YAAY,CAAC+B,KAAK,GAAGA,KAAK,CAAA;AACnCpB,QAAAA,IAAI,CAACsC,yBAAyB,CAC5BlB,KAAK,EACLxD,CAAC,CAACwE,MAAM,CAACd,WAAW,EACpB1D,CAAC,CAACwE,MAAM,CAAC/E,OAAO,CACjB,CAAA;QACD2C,IAAI,CAACgC,iBAAiB,EAAE,CAAA;QAExBhC,IAAI,CAACjB,UAAU,EAAE,CAAA;AACnB,OAAC,CAAC,CAAA;AAEFmD,MAAAA,QAAQ,CAACvE,gBAAgB,CAAC,YAAY,EAAE,UAAUC,CAAC,EAAE;AACnDoC,QAAAA,IAAI,CAACuC,yBAAyB,CAACJ,KAAK,CAAC,CAAA;AACvC,OAAC,CAAC,CAAA;AACJ,KAAC,CAAC,CAAA;GACH,CAAA;EAED,IAAI,CAACpD,UAAU,GAAG,YAAY;AAC5B,IAAA,IAAIiB,IAAI,CAACrB,OAAO,CAACI,UAAU,EAAE;AAC3BiB,MAAAA,IAAI,CAACb,GAAG,CAACO,IAAI,CAAC8C,MAAM,EAAE,CAAA;AACxB,KAAA;GACD,CAAA;EAED,IAAI,CAACT,gBAAgB,GAAG,YAAY;AAClC/B,IAAAA,IAAI,CAACb,GAAG,CAACG,YAAY,CAACnC,SAAS,CAACC,GAAG,CAAC4C,IAAI,CAACrB,OAAO,CAACG,WAAW,CAAC,CAAA;AAC7D;AACA;IACAkB,IAAI,CAACb,GAAG,CAACG,YAAY,CAACoC,YAAY,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;AAExD,IAAA,IAAI1B,IAAI,CAACL,KAAK,CAACE,aAAa,EAAE;MAC5B,IAAM4C,kBAAkB,GAAGzC,IAAI,CAACb,GAAG,CAACM,cAAc,CAACiD,SAAS,CAC1D,UAACzB,EAAE,EAAA;QAAA,OAAKA,EAAE,CAACoB,YAAY,CAAC,YAAY,CAAC,KAAKrC,IAAI,CAACL,KAAK,CAACE,aAAa,CAAA;OACnE,CAAA,CAAA;AACDG,MAAAA,IAAI,CAACuC,yBAAyB,CAACE,kBAAkB,CAAC,CAAA;AACpD,KAAA;;AAEA;AACA;IACA5F,QAAQ,CAAC8F,mBAAmB,CAAC,OAAO,EAAE3C,IAAI,CAACiC,iBAAiB,CAAC,CAAA;IAE7DpF,QAAQ,CAACc,gBAAgB,CAAC,OAAO,EAAEqC,IAAI,CAACiC,iBAAiB,CAAC,CAAA;IAC1DpF,QAAQ,CAACc,gBAAgB,CAAC,SAAS,EAAEqC,IAAI,CAAC4C,yBAAyB,CAAC,CAAA;GACrE,CAAA;EAED,IAAI,CAACZ,iBAAiB,GAAG,YAAY;AACnChC,IAAAA,IAAI,CAACb,GAAG,CAACG,YAAY,CAACnC,SAAS,CAACK,MAAM,CAACwC,IAAI,CAACrB,OAAO,CAACG,WAAW,CAAC,CAAA;IAEhEkB,IAAI,CAACb,GAAG,CAACG,YAAY,CAACoC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,CAAA;AAEvD1B,IAAAA,IAAI,CAACuC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAA;;AAElC;IACA1F,QAAQ,CAAC8F,mBAAmB,CAAC,OAAO,EAAE3C,IAAI,CAACiC,iBAAiB,CAAC,CAAA;IAC7DpF,QAAQ,CAAC8F,mBAAmB,CAAC,SAAS,EAAE3C,IAAI,CAAC4C,yBAAyB,CAAC,CAAA;GACxE,CAAA;AAED,EAAA,IAAI,CAACL,yBAAyB,GAAG,UAAUM,QAAQ,EAAE;AACnD,IAAA,IAAMC,UAAU,GACd9C,IAAI,CAACb,GAAG,CAACK,mBAAmB,CAACc,QAAQ,CAACN,IAAI,CAACL,KAAK,CAACC,kBAAkB,CAAC,CAAA;IACtE,IAAMmD,MAAM,GAAG/C,IAAI,CAACb,GAAG,CAACK,mBAAmB,CAACc,QAAQ,CAACuC,QAAQ,CAAC,CAAA;AAE9D,IAAA,IAAIC,UAAU,EAAE;MACdA,UAAU,CAAC3F,SAAS,CAACK,MAAM,CAACwC,IAAI,CAACrB,OAAO,CAACE,UAAU,CAAC,CAAA;AACtD,KAAA;AACA,IAAA,IAAIkE,MAAM,EAAE;MACVA,MAAM,CAAC5F,SAAS,CAACC,GAAG,CAAC4C,IAAI,CAACrB,OAAO,CAACE,UAAU,CAAC,CAAA;AAC/C,KAAA;AAEAmB,IAAAA,IAAI,CAACL,KAAK,CAACC,kBAAkB,GAAGiD,QAAQ,CAAA;GACzC,CAAA;EAED,IAAI,CAACP,yBAAyB,GAAG,UAAUlB,KAAK,EAAElE,IAAI,EAAE8F,UAAU,EAAE;AAClE,IAAA,IAAMC,SAAS,GAAGjD,IAAI,CAACL,KAAK,CAACE,aAAa,CAAA;IAE1C,IAAMqD,YAAY,GAAGlD,IAAI,CAACb,GAAG,CAACK,mBAAmB,CAACzC,aAAa,CAC7CkG,gBAAAA,CAAAA,MAAAA,CAAAA,SAAS,EAC1B,KAAA,CAAA,CAAA,CAAA;IACD,IAAMf,QAAQ,GAAGlC,IAAI,CAACb,GAAG,CAACK,mBAAmB,CAACzC,aAAa,CACzCqE,gBAAAA,CAAAA,MAAAA,CAAAA,KAAK,EACtB,KAAA,CAAA,CAAA,CAAA;AAED,IAAA,IAAI8B,YAAY,EAAE;MAChBA,YAAY,CAAC/F,SAAS,CAACK,MAAM,CAACwC,IAAI,CAACrB,OAAO,CAACG,WAAW,CAAC,CAAA;AACzD,KAAA;AAEA,IAAA,IAAIoD,QAAQ,EAAE;MACZA,QAAQ,CAAC/E,SAAS,CAACC,GAAG,CAAC4C,IAAI,CAACrB,OAAO,CAACG,WAAW,CAAC,CAAA;AAClD,KAAA;AAEAkB,IAAAA,IAAI,CAACb,GAAG,CAACI,eAAe,CAAC+B,WAAW,GAAGpE,IAAI,CAAA;IAC3C8C,IAAI,CAACqB,eAAe,CAAC2B,UAAU,EAAEhD,IAAI,CAACb,GAAG,CAACI,eAAe,CAAC,CAAA;AAE1DS,IAAAA,IAAI,CAACb,GAAG,CAACI,eAAe,CAAC+B,WAAW,GAAGpE,IAAI,CAAA;AAC3C8C,IAAAA,IAAI,CAACL,KAAK,CAACE,aAAa,GAAGuB,KAAK,CAAA;;AAEhC;AACA,IAAA,IAAI+B,KAAK,GAAG,IAAIC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAC/BD,KAAK,CAAC/B,KAAK,GAAGA,KAAK,CAAA;IACnBpB,IAAI,CAACb,GAAG,CAACE,YAAY,CAACgE,aAAa,CAACF,KAAK,CAAC,CAAA;IAE1CnD,IAAI,CAACjB,UAAU,EAAE,CAAA;GAClB,CAAA;AAED,EAAA,IAAI,CAACkD,iBAAiB,GAAG,UAAUrE,CAAC,EAAE;AACpC,IAAA,IAAM0F,iBAAiB,GAAG,CAACtD,IAAI,CAACb,GAAG,CAACG,YAAY,CAACwC,QAAQ,CAAClE,CAAC,CAACwE,MAAM,CAAC,CAAA;AACnE,IAAA,IAAIkB,iBAAiB,EAAE;MACrBtD,IAAI,CAACgC,iBAAiB,EAAE,CAAA;AAC1B,KAAA;GACD,CAAA;AAED,EAAA,IAAI,CAACY,yBAAyB,GAAG,UAAUhF,CAAC,EAAE;AAC5C;AACA,IAAA,IACEA,CAAC,CAAC2F,OAAO,KAAK,EAAE,IAChBvD,IAAI,CAACL,KAAK,CAACC,kBAAkB,GAAGI,IAAI,CAACL,KAAK,CAACG,YAAY,GAAG,CAAC,EAC3D;AACA,MAAYE,IAAI,CAACL,KAAK,CAACC,mBAAkB;AACzChC,MAAAA,CAAC,CAAC4F,cAAc,EAAE,CAAC;MACnBxD,IAAI,CAACuC,yBAAyB,CAACvC,IAAI,CAACL,KAAK,CAACC,kBAAkB,GAAG,CAAC,CAAC,CAAA;AACnE,KAAA;;AAEA;AACA,IAAA,IAAIhC,CAAC,CAAC2F,OAAO,KAAK,EAAE,IAAIvD,IAAI,CAACL,KAAK,CAACC,kBAAkB,GAAG,CAAC,EAAE;AACzDhC,MAAAA,CAAC,CAAC4F,cAAc,EAAE,CAAC;MACnBxD,IAAI,CAACuC,yBAAyB,CAACvC,IAAI,CAACL,KAAK,CAACC,kBAAkB,GAAG,CAAC,CAAC,CAAA;AACnE,KAAA;;AAEA;IACA,IAAIhC,CAAC,CAAC2F,OAAO,KAAK,EAAE,IAAI3F,CAAC,CAAC2F,OAAO,KAAK,EAAE,EAAE;MACxC3F,CAAC,CAAC4F,cAAc,EAAE,CAAA;AAElB,MAAA,IAAMT,MAAM,GACV/C,IAAI,CAACb,GAAG,CAACK,mBAAmB,CAACc,QAAQ,CAACN,IAAI,CAACL,KAAK,CAACC,kBAAkB,CAAC,CAAA;MACtE,IAAMwB,KAAK,GAAG2B,MAAM,IAAIA,MAAM,CAACV,YAAY,CAAC,YAAY,CAAC,CAAA;AAEzD,MAAA,IAAIjB,KAAK,EAAE;AACTpB,QAAAA,IAAI,CAACb,GAAG,CAACE,YAAY,CAAC+B,KAAK,GAAGA,KAAK,CAAA;AACnCpB,QAAAA,IAAI,CAACsC,yBAAyB,CAC5BlB,KAAK,EACL2B,MAAM,CAACzB,WAAW,EAClByB,MAAM,CAAC1F,OAAO,CACf,CAAA;AACH,OAAA;MACA2C,IAAI,CAACgC,iBAAiB,EAAE,CAAA;AAC1B,KAAA;;AAEA;AACA,IAAA,IAAIpE,CAAC,CAAC2F,OAAO,KAAK,EAAE,EAAE;MACpBvD,IAAI,CAACgC,iBAAiB,EAAE,CAAA;AAC1B,KAAA;GACD,CAAA;AAED,EAAA,IAAI,CAACX,eAAe,GAAG,UAAU2B,UAAU,EAAES,QAAQ,EAAE;AACrD,IAAA,IAAMC,aAAa,GAAG1E,MAAM,CAAC2E,OAAO,CAACX,UAAU,CAAC,CAAA;AAChD,IAAA,KAAK,IAAIY,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,aAAa,CAAClC,MAAM,EAAEoC,CAAC,EAAE,EAAE;MAC7C,IAAMC,GAAG,GAAGH,aAAa,CAACE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;MAC/B,IAAME,GAAG,GAAGJ,aAAa,CAACE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC/BH,MAAAA,QAAQ,CAACpG,OAAO,CAACwG,GAAG,CAAC,GAAGC,GAAG,CAAA;AAC7B,KAAA;GACD,CAAA;EAED,IAAI,CAAC1F,IAAI,EAAE,CAAA;AACb;;;;"}