@gravionlabs/helix-core 22.1.2 → 22.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/gravionlabs-helix-core-accordion.mjs +994 -541
- package/fesm2022/gravionlabs-helix-core-accordion.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-animateonscroll.mjs +265 -166
- package/fesm2022/gravionlabs-helix-core-animateonscroll.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-api.mjs +926 -836
- package/fesm2022/gravionlabs-helix-core-api.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-autocomplete.mjs +2603 -1611
- package/fesm2022/gravionlabs-helix-core-autocomplete.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-autofocus.mjs +115 -79
- package/fesm2022/gravionlabs-helix-core-autofocus.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-avatar.mjs +356 -180
- package/fesm2022/gravionlabs-helix-core-avatar.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-avatargroup.mjs +200 -84
- package/fesm2022/gravionlabs-helix-core-avatargroup.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-badge.mjs +671 -390
- package/fesm2022/gravionlabs-helix-core-badge.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-base.mjs +113 -103
- package/fesm2022/gravionlabs-helix-core-base.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-basecomponent.mjs +498 -444
- package/fesm2022/gravionlabs-helix-core-basecomponent.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-baseeditableholder.mjs +131 -69
- package/fesm2022/gravionlabs-helix-core-baseeditableholder.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-baseinput.mjs +210 -94
- package/fesm2022/gravionlabs-helix-core-baseinput.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-basemodelholder.mjs +39 -26
- package/fesm2022/gravionlabs-helix-core-basemodelholder.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-bind.mjs +136 -98
- package/fesm2022/gravionlabs-helix-core-bind.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-blockui.mjs +390 -224
- package/fesm2022/gravionlabs-helix-core-blockui.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-breadcrumb.mjs +473 -212
- package/fesm2022/gravionlabs-helix-core-breadcrumb.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-button.mjs +1739 -825
- package/fesm2022/gravionlabs-helix-core-button.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-buttongroup.mjs +116 -64
- package/fesm2022/gravionlabs-helix-core-buttongroup.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-card.mjs +454 -205
- package/fesm2022/gravionlabs-helix-core-card.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-carousel.mjs +1238 -898
- package/fesm2022/gravionlabs-helix-core-carousel.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-cascadeselect.mjs +2373 -1337
- package/fesm2022/gravionlabs-helix-core-cascadeselect.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-chart.mjs +407 -214
- package/fesm2022/gravionlabs-helix-core-chart.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-checkbox.mjs +704 -346
- package/fesm2022/gravionlabs-helix-core-checkbox.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-chip.mjs +489 -251
- package/fesm2022/gravionlabs-helix-core-chip.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-classnames.mjs +95 -48
- package/fesm2022/gravionlabs-helix-core-classnames.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-colorpicker.mjs +975 -667
- package/fesm2022/gravionlabs-helix-core-colorpicker.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-config.mjs +395 -306
- package/fesm2022/gravionlabs-helix-core-config.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-confirmdialog.mjs +1222 -546
- package/fesm2022/gravionlabs-helix-core-confirmdialog.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-confirmpopup.mjs +878 -524
- package/fesm2022/gravionlabs-helix-core-confirmpopup.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-contextmenu.mjs +1917 -1031
- package/fesm2022/gravionlabs-helix-core-contextmenu.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-dataview.mjs +1075 -522
- package/fesm2022/gravionlabs-helix-core-dataview.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-datepicker.mjs +3797 -3313
- package/fesm2022/gravionlabs-helix-core-datepicker.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-dialog.mjs +1852 -1047
- package/fesm2022/gravionlabs-helix-core-dialog.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-divider.mjs +288 -136
- package/fesm2022/gravionlabs-helix-core-divider.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-dock.mjs +655 -387
- package/fesm2022/gravionlabs-helix-core-dock.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-dom.mjs +589 -760
- package/fesm2022/gravionlabs-helix-core-dom.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-dragdrop.mjs +457 -302
- package/fesm2022/gravionlabs-helix-core-dragdrop.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-drawer.mjs +986 -507
- package/fesm2022/gravionlabs-helix-core-drawer.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-dynamicdialog.mjs +849 -923
- package/fesm2022/gravionlabs-helix-core-dynamicdialog.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-editor.mjs +578 -383
- package/fesm2022/gravionlabs-helix-core-editor.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-fieldset.mjs +593 -280
- package/fesm2022/gravionlabs-helix-core-fieldset.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-fileupload.mjs +1882 -994
- package/fesm2022/gravionlabs-helix-core-fileupload.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-firsterror.mjs +41 -23
- package/fesm2022/gravionlabs-helix-core-firsterror.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-floatlabel.mjs +197 -94
- package/fesm2022/gravionlabs-helix-core-floatlabel.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-fluid.mjs +149 -74
- package/fesm2022/gravionlabs-helix-core-fluid.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-focustrap.mjs +141 -104
- package/fesm2022/gravionlabs-helix-core-focustrap.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-galleria.mjs +2800 -1449
- package/fesm2022/gravionlabs-helix-core-galleria.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-iconfield.mjs +214 -98
- package/fesm2022/gravionlabs-helix-core-iconfield.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-angledoubledown.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-angledoubledown.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-angledoubleleft.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-angledoubleleft.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-angledoubleright.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-angledoubleright.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-angledoubleup.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-angledoubleup.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-angledown.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-angledown.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-angleleft.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-angleleft.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-angleright.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-angleright.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-angleup.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-angleup.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-arrowdown.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-arrowdown.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-arrowdownleft.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-arrowdownleft.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-arrowdownright.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-arrowdownright.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-arrowleft.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-arrowleft.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-arrowright.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-arrowright.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-arrowup.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-arrowup.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-ban.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-ban.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-bars.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-bars.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-baseicon.mjs +120 -64
- package/fesm2022/gravionlabs-helix-core-icons-baseicon.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-blank.mjs +42 -23
- package/fesm2022/gravionlabs-helix-core-icons-blank.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-calendar.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-calendar.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-caretleft.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-caretleft.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-caretright.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-caretright.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-check.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-check.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-chevrondown.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-chevrondown.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-chevronleft.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-chevronleft.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-chevronright.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-chevronright.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-chevronup.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-chevronup.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-exclamationtriangle.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-exclamationtriangle.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-eye.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-eye.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-eyeslash.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-eyeslash.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-filter.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-filter.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-filterfill.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-filterfill.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-filterslash.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-filterslash.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-home.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-home.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-infocircle.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-infocircle.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-minus.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-minus.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-pencil.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-pencil.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-plus.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-plus.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-refresh.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-refresh.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-search.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-search.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-searchminus.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-searchminus.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-searchplus.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-searchplus.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-sortalt.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-sortalt.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-sortamountdown.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-sortamountdown.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-sortamountupalt.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-sortamountupalt.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-spinner.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-spinner.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-star.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-star.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-starfill.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-starfill.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-thlarge.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-thlarge.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-times.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-times.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-timescircle.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-timescircle.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-trash.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-trash.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-undo.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-undo.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-upload.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-upload.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-windowmaximize.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-windowmaximize.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-windowminimize.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-windowminimize.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons.mjs +53 -63
- package/fesm2022/gravionlabs-helix-core-iftalabel.mjs +175 -81
- package/fesm2022/gravionlabs-helix-core-iftalabel.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-image.mjs +1089 -552
- package/fesm2022/gravionlabs-helix-core-image.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-imagecompare.mjs +348 -165
- package/fesm2022/gravionlabs-helix-core-imagecompare.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-inplace.mjs +591 -249
- package/fesm2022/gravionlabs-helix-core-inplace.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-inputgroup.mjs +175 -91
- package/fesm2022/gravionlabs-helix-core-inputgroup.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-inputgroupaddon.mjs +196 -73
- package/fesm2022/gravionlabs-helix-core-inputgroupaddon.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-inputicon.mjs +207 -70
- package/fesm2022/gravionlabs-helix-core-inputicon.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-inputmask.mjs +1581 -1330
- package/fesm2022/gravionlabs-helix-core-inputmask.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-inputnumber.mjs +1696 -1294
- package/fesm2022/gravionlabs-helix-core-inputnumber.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-inputotp.mjs +576 -363
- package/fesm2022/gravionlabs-helix-core-inputotp.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-inputtext.mjs +344 -183
- package/fesm2022/gravionlabs-helix-core-inputtext.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-keyfilter.mjs +291 -252
- package/fesm2022/gravionlabs-helix-core-keyfilter.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-knob.mjs +642 -396
- package/fesm2022/gravionlabs-helix-core-knob.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-listbox.mjs +2354 -1401
- package/fesm2022/gravionlabs-helix-core-listbox.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-megamenu.mjs +1913 -1052
- package/fesm2022/gravionlabs-helix-core-megamenu.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-menu.mjs +1392 -767
- package/fesm2022/gravionlabs-helix-core-menu.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-menubar.mjs +1857 -984
- package/fesm2022/gravionlabs-helix-core-menubar.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-message.mjs +605 -288
- package/fesm2022/gravionlabs-helix-core-message.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-metergroup.mjs +719 -323
- package/fesm2022/gravionlabs-helix-core-metergroup.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-motion.mjs +1178 -694
- package/fesm2022/gravionlabs-helix-core-motion.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-multiselect.mjs +3437 -1839
- package/fesm2022/gravionlabs-helix-core-multiselect.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-orderlist.mjs +1426 -753
- package/fesm2022/gravionlabs-helix-core-orderlist.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-organizationchart.mjs +755 -371
- package/fesm2022/gravionlabs-helix-core-organizationchart.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-overlay.mjs +984 -600
- package/fesm2022/gravionlabs-helix-core-overlay.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-overlaybadge.mjs +310 -107
- package/fesm2022/gravionlabs-helix-core-overlaybadge.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-paginator.mjs +1076 -564
- package/fesm2022/gravionlabs-helix-core-paginator.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-panel.mjs +759 -364
- package/fesm2022/gravionlabs-helix-core-panel.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-panelmenu.mjs +1909 -888
- package/fesm2022/gravionlabs-helix-core-panelmenu.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-passthrough.mjs +10 -18
- package/fesm2022/gravionlabs-helix-core-passthrough.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-password.mjs +1624 -894
- package/fesm2022/gravionlabs-helix-core-password.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-picklist.mjs +2415 -1359
- package/fesm2022/gravionlabs-helix-core-picklist.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-popover.mjs +708 -442
- package/fesm2022/gravionlabs-helix-core-popover.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-progressbar.mjs +380 -170
- package/fesm2022/gravionlabs-helix-core-progressbar.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-progressspinner.mjs +276 -121
- package/fesm2022/gravionlabs-helix-core-progressspinner.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-radiobutton.mjs +525 -291
- package/fesm2022/gravionlabs-helix-core-radiobutton.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-rating.mjs +529 -286
- package/fesm2022/gravionlabs-helix-core-rating.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-ripple.mjs +194 -175
- package/fesm2022/gravionlabs-helix-core-ripple.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-scroller.mjs +1384 -977
- package/fesm2022/gravionlabs-helix-core-scroller.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-scrollpanel.mjs +605 -458
- package/fesm2022/gravionlabs-helix-core-scrollpanel.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-scrolltop.mjs +565 -261
- package/fesm2022/gravionlabs-helix-core-scrolltop.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-select.mjs +2959 -1644
- package/fesm2022/gravionlabs-helix-core-select.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-selectbutton.mjs +644 -335
- package/fesm2022/gravionlabs-helix-core-selectbutton.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-skeleton.mjs +315 -160
- package/fesm2022/gravionlabs-helix-core-skeleton.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-slider.mjs +839 -630
- package/fesm2022/gravionlabs-helix-core-slider.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-speeddial.mjs +1183 -700
- package/fesm2022/gravionlabs-helix-core-speeddial.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-splitbutton.mjs +977 -375
- package/fesm2022/gravionlabs-helix-core-splitbutton.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-splitter.mjs +737 -509
- package/fesm2022/gravionlabs-helix-core-splitter.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-stepper.mjs +1397 -628
- package/fesm2022/gravionlabs-helix-core-stepper.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-steps.mjs +457 -272
- package/fesm2022/gravionlabs-helix-core-steps.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-styleclass.mjs +466 -344
- package/fesm2022/gravionlabs-helix-core-styleclass.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-table.mjs +9728 -5590
- package/fesm2022/gravionlabs-helix-core-table.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-tabs.mjs +1350 -735
- package/fesm2022/gravionlabs-helix-core-tabs.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-tag.mjs +343 -154
- package/fesm2022/gravionlabs-helix-core-tag.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-terminal.mjs +384 -214
- package/fesm2022/gravionlabs-helix-core-terminal.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-textarea.mjs +347 -209
- package/fesm2022/gravionlabs-helix-core-textarea.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-themes-aura.mjs +4846 -5618
- package/fesm2022/gravionlabs-helix-core-themes-aura.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-themes-lara.mjs +4961 -5809
- package/fesm2022/gravionlabs-helix-core-themes-lara.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-themes-nora.mjs +4780 -5567
- package/fesm2022/gravionlabs-helix-core-themes-nora.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-themes-types.mjs +0 -700
- package/fesm2022/gravionlabs-helix-core-themes.mjs +4 -9
- package/fesm2022/gravionlabs-helix-core-themes.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-tieredmenu.mjs +1967 -1048
- package/fesm2022/gravionlabs-helix-core-tieredmenu.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-timeline.mjs +370 -185
- package/fesm2022/gravionlabs-helix-core-timeline.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-toast.mjs +1083 -526
- package/fesm2022/gravionlabs-helix-core-toast.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-togglebutton.mjs +609 -315
- package/fesm2022/gravionlabs-helix-core-togglebutton.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-toggleswitch.mjs +504 -246
- package/fesm2022/gravionlabs-helix-core-toggleswitch.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-toolbar.mjs +350 -149
- package/fesm2022/gravionlabs-helix-core-toolbar.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-tooltip.mjs +1035 -795
- package/fesm2022/gravionlabs-helix-core-tooltip.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-tree.mjs +2673 -1668
- package/fesm2022/gravionlabs-helix-core-tree.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-treeselect.mjs +1773 -976
- package/fesm2022/gravionlabs-helix-core-treeselect.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-treetable.mjs +5963 -3647
- package/fesm2022/gravionlabs-helix-core-treetable.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-ts-helpers.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-accordion.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-autocomplete.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-avatar.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-avatargroup.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-badge.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-blockui.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-breadcrumb.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-button.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-card.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-carousel.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-cascadeselect.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-chart.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-checkbox.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-chip.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-colorpicker.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-confirmdialog.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-confirmpopup.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-contextmenu.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-dataview.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-datepicker.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-dialog.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-divider.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-dock.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-drawer.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-editor.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-fieldset.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-fileupload.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-floatlabel.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-fluid.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-galleria.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-iconfield.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-iftalabel.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-image.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-imagecompare.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-inplace.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-inputgroup.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-inputgroupaddon.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-inputicon.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-inputmask.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-inputnumber.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-inputotp.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-inputtext.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-knob.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-listbox.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-megamenu.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-menu.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-menubar.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-message.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-metergroup.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-motion.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-multiselect.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-orderlist.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-organizationchart.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-overlay.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-overlaybadge.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-paginator.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-panel.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-panelmenu.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-password.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-picklist.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-popover.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-progressbar.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-progressspinner.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-radiobutton.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-rating.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-scroller.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-scrollpanel.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-scrolltop.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-select.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-selectbutton.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-skeleton.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-slider.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-speeddial.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-splitbutton.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-splitter.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-stepper.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-table.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-tabs.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-tag.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-terminal.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-textarea.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-tieredmenu.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-timeline.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-toast.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-togglebutton.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-toggleswitch.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-toolbar.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-tooltip.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-tree.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-treeselect.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-treetable.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-uix-motion.mjs +192 -282
- package/fesm2022/gravionlabs-helix-core-uix-motion.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-uix-styled.mjs +827 -813
- package/fesm2022/gravionlabs-helix-core-uix-styled.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-uix-utils.mjs +967 -1558
- package/fesm2022/gravionlabs-helix-core-uix-utils.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-usestyle.mjs +62 -52
- package/fesm2022/gravionlabs-helix-core-usestyle.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-utils.mjs +272 -366
- package/fesm2022/gravionlabs-helix-core-utils.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-validators.mjs +86 -93
- package/fesm2022/gravionlabs-helix-core-validators.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core.mjs +1 -5
- package/fesm2022/gravionlabs-helix-core.mjs.map +1 -1
- package/package.json +1 -1
- package/types/gravionlabs-helix-core-accordion.d.ts +317 -246
- package/types/gravionlabs-helix-core-animateonscroll.d.ts +89 -61
- package/types/gravionlabs-helix-core-api.d.ts +1743 -1777
- package/types/gravionlabs-helix-core-autocomplete.d.ts +1070 -750
- package/types/gravionlabs-helix-core-autofocus.d.ts +29 -26
- package/types/gravionlabs-helix-core-avatar.d.ts +165 -123
- package/types/gravionlabs-helix-core-avatargroup.d.ts +58 -48
- package/types/gravionlabs-helix-core-badge.d.ts +243 -162
- package/types/gravionlabs-helix-core-base.d.ts +46 -49
- package/types/gravionlabs-helix-core-basecomponent.d.ts +187 -170
- package/types/gravionlabs-helix-core-baseeditableholder.d.ts +63 -45
- package/types/gravionlabs-helix-core-baseinput.d.ts +121 -73
- package/types/gravionlabs-helix-core-basemodelholder.d.ts +9 -12
- package/types/gravionlabs-helix-core-bind.d.ts +36 -33
- package/types/gravionlabs-helix-core-blockui.d.ts +114 -90
- package/types/gravionlabs-helix-core-breadcrumb.d.ts +158 -132
- package/types/gravionlabs-helix-core-button.d.ts +716 -443
- package/types/gravionlabs-helix-core-buttongroup.d.ts +28 -33
- package/types/gravionlabs-helix-core-card.d.ts +156 -136
- package/types/gravionlabs-helix-core-carousel.d.ts +461 -361
- package/types/gravionlabs-helix-core-cascadeselect.d.ts +880 -604
- package/types/gravionlabs-helix-core-chart.d.ts +162 -115
- package/types/gravionlabs-helix-core-checkbox.d.ts +310 -211
- package/types/gravionlabs-helix-core-chip.d.ts +202 -147
- package/types/gravionlabs-helix-core-classnames.d.ts +23 -21
- package/types/gravionlabs-helix-core-colorpicker.d.ts +359 -290
- package/types/gravionlabs-helix-core-config.d.ts +249 -259
- package/types/gravionlabs-helix-core-confirmdialog.d.ts +498 -325
- package/types/gravionlabs-helix-core-confirmpopup.d.ts +273 -218
- package/types/gravionlabs-helix-core-contextmenu.d.ts +509 -351
- package/types/gravionlabs-helix-core-dataview.d.ts +507 -349
- package/types/gravionlabs-helix-core-datepicker.d.ts +1267 -954
- package/types/gravionlabs-helix-core-dialog.d.ts +758 -515
- package/types/gravionlabs-helix-core-divider.d.ts +126 -106
- package/types/gravionlabs-helix-core-dock.d.ts +219 -181
- package/types/gravionlabs-helix-core-dom.d.ts +97 -100
- package/types/gravionlabs-helix-core-dragdrop.d.ts +149 -107
- package/types/gravionlabs-helix-core-drawer.d.ts +382 -278
- package/types/gravionlabs-helix-core-dynamicdialog.d.ts +512 -519
- package/types/gravionlabs-helix-core-editor.d.ts +225 -173
- package/types/gravionlabs-helix-core-fieldset.d.ts +209 -170
- package/types/gravionlabs-helix-core-fileupload.d.ts +764 -533
- package/types/gravionlabs-helix-core-firsterror.d.ts +8 -11
- package/types/gravionlabs-helix-core-floatlabel.d.ts +57 -52
- package/types/gravionlabs-helix-core-fluid.d.ts +38 -39
- package/types/gravionlabs-helix-core-focustrap.d.ts +33 -30
- package/types/gravionlabs-helix-core-galleria.d.ts +957 -628
- package/types/gravionlabs-helix-core-iconfield.d.ts +72 -57
- package/types/gravionlabs-helix-core-icons-angledoubledown.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-angledoubleleft.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-angledoubleright.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-angledoubleup.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-angledown.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-angleleft.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-angleright.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-angleup.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-arrowdown.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-arrowdownleft.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-arrowdownright.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-arrowleft.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-arrowright.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-arrowup.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-ban.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-bars.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-baseicon.d.ts +25 -24
- package/types/gravionlabs-helix-core-icons-blank.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-calendar.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-caretleft.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-caretright.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-check.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-chevrondown.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-chevronleft.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-chevronright.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-chevronup.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-exclamationtriangle.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-eye.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-eyeslash.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-filter.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-filterfill.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-filterslash.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-home.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-infocircle.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-minus.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-pencil.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-plus.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-refresh.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-search.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-searchminus.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-searchplus.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-sortalt.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-sortamountdown.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-sortamountupalt.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-spinner.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-star.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-starfill.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-thlarge.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-times.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-timescircle.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-trash.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-undo.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-upload.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-windowmaximize.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-windowminimize.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons.d.ts +53 -53
- package/types/gravionlabs-helix-core-iftalabel.d.ts +42 -43
- package/types/gravionlabs-helix-core-image.d.ts +440 -331
- package/types/gravionlabs-helix-core-imagecompare.d.ts +99 -84
- package/types/gravionlabs-helix-core-inplace.d.ts +188 -149
- package/types/gravionlabs-helix-core-inputgroup.d.ts +55 -50
- package/types/gravionlabs-helix-core-inputgroupaddon.d.ts +54 -43
- package/types/gravionlabs-helix-core-inputicon.d.ts +49 -38
- package/types/gravionlabs-helix-core-inputmask.d.ts +499 -353
- package/types/gravionlabs-helix-core-inputnumber.d.ts +581 -410
- package/types/gravionlabs-helix-core-inputotp.d.ts +206 -158
- package/types/gravionlabs-helix-core-inputtext.d.ts +142 -102
- package/types/gravionlabs-helix-core-keyfilter.d.ts +62 -53
- package/types/gravionlabs-helix-core-knob.d.ts +265 -188
- package/types/gravionlabs-helix-core-listbox.d.ts +897 -638
- package/types/gravionlabs-helix-core-megamenu.d.ts +512 -365
- package/types/gravionlabs-helix-core-menu.d.ts +441 -343
- package/types/gravionlabs-helix-core-menubar.d.ts +499 -361
- package/types/gravionlabs-helix-core-message.d.ts +267 -195
- package/types/gravionlabs-helix-core-metergroup.d.ts +256 -190
- package/types/gravionlabs-helix-core-motion.d.ts +602 -385
- package/types/gravionlabs-helix-core-multiselect.d.ts +1256 -855
- package/types/gravionlabs-helix-core-orderlist.d.ts +504 -351
- package/types/gravionlabs-helix-core-organizationchart.d.ts +264 -203
- package/types/gravionlabs-helix-core-overlay.d.ts +417 -307
- package/types/gravionlabs-helix-core-overlaybadge.d.ts +107 -71
- package/types/gravionlabs-helix-core-paginator.d.ts +445 -336
- package/types/gravionlabs-helix-core-panel.d.ts +285 -225
- package/types/gravionlabs-helix-core-panelmenu.d.ts +499 -340
- package/types/gravionlabs-helix-core-passthrough.d.ts +5 -7
- package/types/gravionlabs-helix-core-password.d.ts +657 -463
- package/types/gravionlabs-helix-core-picklist.d.ts +938 -647
- package/types/gravionlabs-helix-core-popover.d.ts +259 -190
- package/types/gravionlabs-helix-core-progressbar.d.ts +141 -106
- package/types/gravionlabs-helix-core-progressspinner.d.ts +101 -76
- package/types/gravionlabs-helix-core-radiobutton.d.ts +228 -174
- package/types/gravionlabs-helix-core-rating.d.ts +217 -178
- package/types/gravionlabs-helix-core-ripple.d.ts +43 -48
- package/types/gravionlabs-helix-core-scroller.d.ts +505 -371
- package/types/gravionlabs-helix-core-scrollpanel.d.ts +151 -141
- package/types/gravionlabs-helix-core-scrolltop.d.ts +195 -140
- package/types/gravionlabs-helix-core-select.d.ts +1095 -749
- package/types/gravionlabs-helix-core-selectbutton.d.ts +238 -165
- package/types/gravionlabs-helix-core-skeleton.d.ts +123 -88
- package/types/gravionlabs-helix-core-slider.d.ts +259 -201
- package/types/gravionlabs-helix-core-speeddial.d.ts +511 -390
- package/types/gravionlabs-helix-core-splitbutton.d.ts +422 -267
- package/types/gravionlabs-helix-core-splitter.d.ts +246 -192
- package/types/gravionlabs-helix-core-stepper.d.ts +428 -269
- package/types/gravionlabs-helix-core-steps.d.ts +162 -134
- package/types/gravionlabs-helix-core-styleclass.d.ts +165 -107
- package/types/gravionlabs-helix-core-table.d.ts +2908 -1935
- package/types/gravionlabs-helix-core-tabs.d.ts +471 -311
- package/types/gravionlabs-helix-core-tag.d.ts +123 -98
- package/types/gravionlabs-helix-core-terminal.d.ts +142 -124
- package/types/gravionlabs-helix-core-textarea.d.ts +147 -110
- package/types/gravionlabs-helix-core-themes-aura.d.ts +957 -942
- package/types/gravionlabs-helix-core-themes-lara.d.ts +968 -953
- package/types/gravionlabs-helix-core-themes-nora.d.ts +954 -939
- package/types/gravionlabs-helix-core-themes-types.d.ts +17940 -18746
- package/types/gravionlabs-helix-core-themes.d.ts +8 -11
- package/types/gravionlabs-helix-core-tieredmenu.d.ts +583 -398
- package/types/gravionlabs-helix-core-timeline.d.ts +145 -125
- package/types/gravionlabs-helix-core-toast.d.ts +408 -275
- package/types/gravionlabs-helix-core-togglebutton.d.ts +264 -188
- package/types/gravionlabs-helix-core-toggleswitch.d.ts +202 -150
- package/types/gravionlabs-helix-core-toolbar.d.ts +100 -90
- package/types/gravionlabs-helix-core-tooltip.d.ts +362 -256
- package/types/gravionlabs-helix-core-tree.d.ts +902 -630
- package/types/gravionlabs-helix-core-treeselect.d.ts +770 -559
- package/types/gravionlabs-helix-core-treetable.d.ts +1715 -1205
- package/types/gravionlabs-helix-core-ts-helpers.d.ts +4 -6
- package/types/gravionlabs-helix-core-types-accordion.d.ts +42 -45
- package/types/gravionlabs-helix-core-types-autocomplete.d.ts +230 -233
- package/types/gravionlabs-helix-core-types-avatar.d.ts +23 -26
- package/types/gravionlabs-helix-core-types-avatargroup.d.ts +11 -14
- package/types/gravionlabs-helix-core-types-badge.d.ts +11 -14
- package/types/gravionlabs-helix-core-types-blockui.d.ts +18 -21
- package/types/gravionlabs-helix-core-types-breadcrumb.d.ts +65 -68
- package/types/gravionlabs-helix-core-types-button.d.ts +90 -93
- package/types/gravionlabs-helix-core-types-card.d.ts +54 -57
- package/types/gravionlabs-helix-core-types-carousel.d.ts +107 -110
- package/types/gravionlabs-helix-core-types-cascadeselect.d.ts +151 -157
- package/types/gravionlabs-helix-core-types-chart.d.ts +15 -18
- package/types/gravionlabs-helix-core-types-checkbox.d.ts +48 -51
- package/types/gravionlabs-helix-core-types-chip.d.ts +49 -52
- package/types/gravionlabs-helix-core-types-colorpicker.d.ts +58 -61
- package/types/gravionlabs-helix-core-types-confirmdialog.d.ts +116 -119
- package/types/gravionlabs-helix-core-types-confirmpopup.d.ts +74 -77
- package/types/gravionlabs-helix-core-types-contextmenu.d.ts +71 -74
- package/types/gravionlabs-helix-core-types-dataview.d.ts +178 -181
- package/types/gravionlabs-helix-core-types-datepicker.d.ts +436 -439
- package/types/gravionlabs-helix-core-types-dialog.d.ts +86 -89
- package/types/gravionlabs-helix-core-types-divider.d.ts +11 -14
- package/types/gravionlabs-helix-core-types-dock.d.ts +44 -47
- package/types/gravionlabs-helix-core-types-drawer.d.ts +61 -64
- package/types/gravionlabs-helix-core-types-editor.d.ts +143 -146
- package/types/gravionlabs-helix-core-types-fieldset.d.ts +69 -73
- package/types/gravionlabs-helix-core-types-fileupload.d.ts +260 -265
- package/types/gravionlabs-helix-core-types-floatlabel.d.ts +11 -14
- package/types/gravionlabs-helix-core-types-fluid.d.ts +11 -14
- package/types/gravionlabs-helix-core-types-galleria.d.ts +204 -207
- package/types/gravionlabs-helix-core-types-iconfield.d.ts +11 -14
- package/types/gravionlabs-helix-core-types-iftalabel.d.ts +11 -14
- package/types/gravionlabs-helix-core-types-image.d.ts +113 -116
- package/types/gravionlabs-helix-core-types-imagecompare.d.ts +22 -25
- package/types/gravionlabs-helix-core-types-inplace.d.ts +46 -49
- package/types/gravionlabs-helix-core-types-inputgroup.d.ts +11 -14
- package/types/gravionlabs-helix-core-types-inputgroupaddon.d.ts +11 -14
- package/types/gravionlabs-helix-core-types-inputicon.d.ts +11 -14
- package/types/gravionlabs-helix-core-types-inputmask.d.ts +30 -33
- package/types/gravionlabs-helix-core-types-inputnumber.d.ts +68 -71
- package/types/gravionlabs-helix-core-types-inputotp.d.ts +67 -70
- package/types/gravionlabs-helix-core-types-inputtext.d.ts +7 -10
- package/types/gravionlabs-helix-core-types-knob.d.ts +23 -26
- package/types/gravionlabs-helix-core-types-listbox.d.ts +262 -266
- package/types/gravionlabs-helix-core-types-megamenu.d.ts +112 -115
- package/types/gravionlabs-helix-core-types-menu.d.ts +83 -86
- package/types/gravionlabs-helix-core-types-menubar.d.ts +98 -101
- package/types/gravionlabs-helix-core-types-message.d.ts +61 -64
- package/types/gravionlabs-helix-core-types-metergroup.d.ts +135 -138
- package/types/gravionlabs-helix-core-types-motion.d.ts +11 -14
- package/types/gravionlabs-helix-core-types-multiselect.d.ts +302 -306
- package/types/gravionlabs-helix-core-types-orderlist.d.ts +125 -128
- package/types/gravionlabs-helix-core-types-organizationchart.d.ts +90 -96
- package/types/gravionlabs-helix-core-types-overlay.d.ts +31 -34
- package/types/gravionlabs-helix-core-types-overlaybadge.d.ts +17 -20
- package/types/gravionlabs-helix-core-types-paginator.d.ts +131 -134
- package/types/gravionlabs-helix-core-types-panel.d.ts +89 -93
- package/types/gravionlabs-helix-core-types-panelmenu.d.ts +105 -108
- package/types/gravionlabs-helix-core-types-password.d.ts +94 -97
- package/types/gravionlabs-helix-core-types-picklist.d.ts +240 -250
- package/types/gravionlabs-helix-core-types-popover.d.ts +33 -36
- package/types/gravionlabs-helix-core-types-progressbar.d.ts +32 -35
- package/types/gravionlabs-helix-core-types-progressspinner.d.ts +19 -22
- package/types/gravionlabs-helix-core-types-radiobutton.d.ts +29 -32
- package/types/gravionlabs-helix-core-types-rating.d.ts +62 -65
- package/types/gravionlabs-helix-core-types-scroller.d.ts +142 -146
- package/types/gravionlabs-helix-core-types-scrollpanel.d.ts +30 -33
- package/types/gravionlabs-helix-core-types-scrolltop.d.ts +35 -38
- package/types/gravionlabs-helix-core-types-select.d.ts +245 -248
- package/types/gravionlabs-helix-core-types-selectbutton.d.ts +56 -59
- package/types/gravionlabs-helix-core-types-skeleton.d.ts +11 -14
- package/types/gravionlabs-helix-core-types-slider.d.ts +50 -53
- package/types/gravionlabs-helix-core-types-speeddial.d.ts +69 -72
- package/types/gravionlabs-helix-core-types-splitbutton.d.ts +41 -44
- package/types/gravionlabs-helix-core-types-splitter.d.ts +36 -40
- package/types/gravionlabs-helix-core-types-stepper.d.ts +68 -71
- package/types/gravionlabs-helix-core-types-table.d.ts +721 -727
- package/types/gravionlabs-helix-core-types-tabs.d.ts +51 -54
- package/types/gravionlabs-helix-core-types-tag.d.ts +26 -29
- package/types/gravionlabs-helix-core-types-terminal.d.ts +43 -46
- package/types/gravionlabs-helix-core-types-textarea.d.ts +11 -14
- package/types/gravionlabs-helix-core-types-tieredmenu.d.ts +69 -72
- package/types/gravionlabs-helix-core-types-timeline.d.ts +58 -61
- package/types/gravionlabs-helix-core-types-toast.d.ts +86 -89
- package/types/gravionlabs-helix-core-types-togglebutton.d.ts +51 -54
- package/types/gravionlabs-helix-core-types-toggleswitch.d.ts +41 -44
- package/types/gravionlabs-helix-core-types-toolbar.d.ts +34 -37
- package/types/gravionlabs-helix-core-types-tooltip.d.ts +15 -18
- package/types/gravionlabs-helix-core-types-tree.d.ts +230 -239
- package/types/gravionlabs-helix-core-types-treeselect.d.ts +195 -199
- package/types/gravionlabs-helix-core-types-treetable.d.ts +486 -491
- package/types/gravionlabs-helix-core-uix-motion.d.ts +177 -190
- package/types/gravionlabs-helix-core-uix-styled.d.ts +254 -277
- package/types/gravionlabs-helix-core-uix-utils.d.ts +39 -176
- package/types/gravionlabs-helix-core-usestyle.d.ts +12 -15
- package/types/gravionlabs-helix-core-utils.d.ts +45 -50
- package/types/gravionlabs-helix-core-validators.d.ts +29 -34
- package/types/gravionlabs-helix-core.d.ts +2 -2
- package/fesm2022/gravionlabs-helix-core-icons.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-themes-types.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-ts-helpers.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-accordion.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-autocomplete.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-avatar.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-avatargroup.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-badge.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-blockui.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-breadcrumb.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-button.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-card.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-carousel.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-cascadeselect.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-chart.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-checkbox.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-chip.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-colorpicker.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-confirmdialog.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-confirmpopup.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-contextmenu.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-dataview.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-datepicker.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-dialog.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-divider.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-dock.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-drawer.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-editor.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-fieldset.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-fileupload.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-floatlabel.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-fluid.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-galleria.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-iconfield.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-iftalabel.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-image.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-imagecompare.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-inplace.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-inputgroup.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-inputgroupaddon.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-inputicon.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-inputmask.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-inputnumber.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-inputotp.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-inputtext.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-knob.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-listbox.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-megamenu.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-menu.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-menubar.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-message.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-metergroup.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-motion.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-multiselect.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-orderlist.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-organizationchart.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-overlay.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-overlaybadge.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-paginator.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-panel.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-panelmenu.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-password.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-picklist.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-popover.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-progressbar.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-progressspinner.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-radiobutton.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-rating.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-scroller.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-scrollpanel.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-scrolltop.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-select.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-selectbutton.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-skeleton.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-slider.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-speeddial.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-splitbutton.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-splitter.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-stepper.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-table.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-tabs.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-tag.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-terminal.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-textarea.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-tieredmenu.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-timeline.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-toast.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-togglebutton.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-toggleswitch.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-toolbar.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-tooltip.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-tree.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-treeselect.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-treetable.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gravionlabs-helix-core-listbox.mjs","sources":["../../../projects/core/listbox/style/listbox.css.ts","../../../projects/core/listbox/style/listboxstyle.ts","../../../projects/core/listbox/listbox.ts","../../../projects/core/listbox/listbox.html","../../../projects/core/listbox/gravionlabs-helix-core-listbox.ts"],"sourcesContent":["export const style = /*css*/ `\n .h-listbox {\n display: block;\n background: dt('listbox.background');\n color: dt('listbox.color');\n border: 1px solid dt('listbox.border.color');\n border-radius: dt('listbox.border.radius');\n transition:\n background dt('listbox.transition.duration'),\n color dt('listbox.transition.duration'),\n border-color dt('listbox.transition.duration'),\n box-shadow dt('listbox.transition.duration'),\n outline-color dt('listbox.transition.duration');\n outline-color: transparent;\n box-shadow: dt('listbox.shadow');\n }\n\n .h-listbox.h-disabled {\n opacity: 1;\n background: dt('listbox.disabled.background');\n color: dt('listbox.disabled.color');\n }\n\n .h-listbox.h-disabled .h-listbox-option {\n color: dt('listbox.disabled.color');\n }\n\n .h-listbox.h-invalid {\n border-color: dt('listbox.invalid.border.color');\n }\n\n .h-listbox-header {\n padding: dt('listbox.list.header.padding');\n }\n\n .h-listbox-filter {\n width: 100%;\n }\n\n .h-listbox-list-container {\n overflow: auto;\n }\n\n .h-listbox-list {\n list-style-type: none;\n margin: 0;\n padding: dt('listbox.list.padding');\n outline: 0 none;\n display: flex;\n flex-direction: column;\n gap: dt('listbox.list.gap');\n }\n\n .h-listbox-option {\n display: flex;\n align-items: center;\n cursor: pointer;\n position: relative;\n overflow: hidden;\n padding: dt('listbox.option.padding');\n border: 0 none;\n border-radius: dt('listbox.option.border.radius');\n color: dt('listbox.option.color');\n transition:\n background dt('listbox.transition.duration'),\n color dt('listbox.transition.duration'),\n border-color dt('listbox.transition.duration'),\n box-shadow dt('listbox.transition.duration'),\n outline-color dt('listbox.transition.duration');\n }\n\n .h-listbox-striped li:nth-child(even of .h-listbox-option) {\n background: dt('listbox.option.striped.background');\n }\n\n .h-listbox .h-listbox-list .h-listbox-option.h-listbox-option-selected {\n background: dt('listbox.option.selected.background');\n color: dt('listbox.option.selected.color');\n }\n\n .h-listbox:not(.h-disabled) .h-listbox-option.h-listbox-option-selected.h-focus {\n background: dt('listbox.option.selected.focus.background');\n color: dt('listbox.option.selected.focus.color');\n }\n\n .h-listbox:not(.h-disabled) .h-listbox-option:not(.h-listbox-option-selected):not(.h-disabled).h-focus {\n background: dt('listbox.option.focus.background');\n color: dt('listbox.option.focus.color');\n }\n\n .h-listbox:not(.h-disabled) .h-listbox-option:not(.h-listbox-option-selected):not(.h-disabled):hover {\n background: dt('listbox.option.focus.background');\n color: dt('listbox.option.focus.color');\n }\n\n .h-listbox-option-blank-icon {\n flex-shrink: 0;\n }\n\n .h-listbox-option-check-icon {\n position: relative;\n flex-shrink: 0;\n margin-inline-start: dt('listbox.checkmark.gutter.start');\n margin-inline-end: dt('listbox.checkmark.gutter.end');\n color: dt('listbox.checkmark.color');\n }\n\n .h-listbox-option-group {\n margin: 0;\n padding: dt('listbox.option.group.padding');\n color: dt('listbox.option.group.color');\n background: dt('listbox.option.group.background');\n font-weight: dt('listbox.option.group.font.weight');\n }\n\n .h-listbox-empty-message {\n padding: dt('listbox.empty.message.padding');\n }\n\n .h-listbox-fluid {\n width: 100%;\n }\n`;\n","import { Injectable } from '@angular/core';\nimport { style as listbox_style } from './listbox.css';\nimport { BaseStyle } from '@gravionlabs/helix-core/base';\n\nconst style = /*css*/ `\n ${listbox_style}\n\n /* For Helix */\n .h-listbox.ng-invalid.ng-dirty {\n border-color: dt('listbox.invalid.border.color');\n }\n\n .h-listbox-header {\n display: flex;\n align-items: center;\n }\n\n .h-listbox-header > .h-iconfield {\n flex-grow: 1;\n }\n\n .h-listbox-list-container {\n height: 100%;\n }\n\n /* CDK Drag & Drop styles */\n .h-listbox-option.cdk-drag-preview {\n background: dt('listbox.background');\n }\n\n .h-listbox-dragging .h-listbox-option:not(.cdk-drag-preview) {\n pointer-events: none !important;\n }\n\n .h-listbox-dragging .h-listbox-option:not(.cdk-drag-preview):hover {\n background: inherit !important;\n color: inherit !important;\n }\n\n .cdk-drag-placeholder {\n pointer-events: none;\n }\n`;\n\nconst classes = {\n root: ({ instance }) => [\n 'h-listbox h-component',\n {\n 'h-listbox-striped': instance.striped(),\n 'h-disabled': instance.$disabled(),\n 'h-invalid': instance.invalid(),\n 'h-listbox-fluid': instance.fluid(),\n 'h-listbox-dragging': instance.isDragging()\n }\n ],\n header: 'h-listbox-header',\n pcFilter: 'h-listbox-filter',\n listContainer: 'h-listbox-list-container',\n list: 'h-listbox-list',\n optionGroup: 'h-listbox-option-group',\n option: ({ instance, option, i, scrollerOptions }) => [\n 'h-listbox-option',\n {\n 'h-listbox-option-selected': instance.isSelected(option) && instance.highlightOnSelect(),\n 'h-focus': instance.focusedOptionIndex() === instance.getOptionIndex(i, scrollerOptions),\n 'h-disabled': instance.isOptionDisabled(option)\n }\n ],\n optionCheckIcon: 'h-listbox-option-check-icon',\n optionBlankIcon: 'h-listbox-option-blank-icon',\n emptyMessage: 'h-listbox-empty-message'\n};\n\n@Injectable()\nexport class ListBoxStyle extends BaseStyle {\n name = 'listbox';\n\n style = style;\n\n classes = classes;\n}\n\n/**\n *\n * ListBox is used to select one or more values from a list of items.\n *\n * [Live Demo](https://www.primeng.org/listbox/)\n *\n * @module listboxstyle\n *\n */\nexport enum ListboxClasses {\n /**\n * Class name of the root element\n */\n root = 'h-listbox',\n /**\n * Class name of the header element\n */\n header = 'h-listbox-header',\n /**\n * Class name of the filter element\n */\n pcFilter = 'h-listbox-filter',\n /**\n * Class name of the list container element\n */\n listContainer = 'h-listbox-list-container',\n /**\n * Class name of the list element\n */\n list = 'h-listbox-list',\n /**\n * Class name of the option group element\n */\n optionGroup = 'h-listbox-option-group',\n /**\n * Class name of the option element\n */\n option = 'h-listbox-option',\n /**\n * Class name of the option check icon element\n */\n optionCheckIcon = 'h-listbox-option-check-icon',\n /**\n * Class name of the option blank icon element\n */\n optionBlankIcon = 'h-listbox-option-blank-icon',\n /**\n * Class name of the empty message element\n */\n emptyMessage = 'h-listbox-empty-message'\n}\n\nexport interface ListboxStyle extends BaseStyle {}\n","import { CDK_DRAG_CONFIG, CdkDragDrop, DragDropModule, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, InjectionToken, Input, NgModule, TemplateRef, ViewEncapsulation, booleanAttribute, computed, forwardRef, inject, input, numberAttribute, signal, output, viewChild, contentChild, contentChildren, effect } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { equals, findLastIndex, findSingle, focus, getFirstFocusableElement, isEmpty, isFunction, isNotEmpty, isPrintableCharacter, resolveFieldData, uuid } from '@gravionlabs/helix-core/uix/utils';\nimport { FilterService, Footer, Header, HelixTemplate, ScrollerOptions, SharedModule } from '@gravionlabs/helix-core/api';\nimport { PARENT_INSTANCE } from '@gravionlabs/helix-core/basecomponent';\nimport { BaseEditableHolder } from '@gravionlabs/helix-core/baseeditableholder';\nimport { Bind, BindModule } from '@gravionlabs/helix-core/bind';\nimport { Checkbox } from '@gravionlabs/helix-core/checkbox';\nimport { IconField } from '@gravionlabs/helix-core/iconfield';\nimport { BlankIcon, CheckIcon, SearchIcon } from '@gravionlabs/helix-core/icons';\nimport { InputIcon } from '@gravionlabs/helix-core/inputicon';\nimport { InputText } from '@gravionlabs/helix-core/inputtext';\nimport { Ripple } from '@gravionlabs/helix-core/ripple';\nimport { Scroller, ScrollerLazyLoadEvent } from '@gravionlabs/helix-core/scroller';\nimport { Nullable } from '@gravionlabs/helix-core/ts-helpers';\nimport {\n ListBoxPassThrough,\n ListboxChangeEvent,\n ListboxCheckIconTemplateContext,\n ListboxCheckmarkTemplateContext,\n ListboxClickEvent,\n ListboxDoubleClickEvent,\n ListboxFilterEvent,\n ListboxFilterOptions,\n ListboxFilterTemplateContext,\n ListboxFooterTemplateContext,\n ListboxGroupTemplateContext,\n ListboxHeaderTemplateContext,\n ListboxItemTemplateContext,\n ListboxLoaderTemplateContext,\n ListboxSelectAllChangeEvent\n} from '@gravionlabs/helix-core/types/listbox';\nimport { Subscription } from 'rxjs';\nimport { ListBoxStyle } from './style/listboxstyle';\n\nconst LISTBOX_INSTANCE = new InjectionToken<Listbox>('LISTBOX_INSTANCE');\n\nexport const LISTBOX_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => Listbox),\n multi: true\n};\n/**\n * ListBox is used to select one or more values from a list of items.\n * @group Components\n */\n@Component({\n selector: 'h-listbox, h-listBox, h-list-box',\n standalone: true,\n imports: [CommonModule, Ripple, Scroller, InputIcon, SearchIcon, Checkbox, CheckIcon, IconField, InputText, BlankIcon, FormsModule, SharedModule, DragDropModule, BindModule],\n templateUrl: './listbox.html',\n providers: [\n LISTBOX_VALUE_ACCESSOR,\n ListBoxStyle,\n {\n provide: CDK_DRAG_CONFIG,\n useValue: {\n zIndex: 1200\n }\n },\n { provide: LISTBOX_INSTANCE, useExisting: Listbox },\n { provide: PARENT_INSTANCE, useExisting: Listbox }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[attr.id]': '$id()',\n '(focusout)': 'onHostFocusOut($event)',\n '[class]': \"cn(cx('root'), styleClass())\",\n '[attr.data-h]': 'containerDataP'\n },\n hostDirectives: [Bind]\n})\nexport class Listbox extends BaseEditableHolder<ListBoxPassThrough> {\n componentName = 'Listbox';\n\n readonly hostName = input<any>('');\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n $pcListbox: Listbox | undefined = inject(LISTBOX_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n onAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n\n /**\n * Unique identifier of the component.\n * @group Props\n */\n readonly id = input<string>();\n\n private readonly autoId = uuid('pn_id_');\n\n readonly $id = computed(() => this.id() || this.autoId);\n /**\n * Text to display when the search is active. Defaults to global value in i18n translation configuration.\n * @group Props\n * @defaultValue '{0} results are available'\n */\n readonly searchMessage = input<string>();\n /**\n * Text to display when filtering does not return any results. Defaults to global value in i18n translation configuration.\n * @group Props\n * @defaultValue 'No selected item'\n */\n readonly emptySelectionMessage = input<string>();\n /**\n * Text to be displayed in hidden accessible field when options are selected. Defaults to global value in i18n translation configuration.\n * @group Props\n * @defaultValue '{0} items selected'\n */\n readonly selectionMessage = input<string>();\n /**\n * Whether to focus on the first visible or selected element when the overlay panel is shown.\n * @group Props\n */\n readonly autoOptionFocus = input<boolean | undefined, unknown>(true, { transform: booleanAttribute });\n /**\n * Defines a string that labels the input for accessibility.\n * @group Props\n */\n readonly ariaLabel = input<string>();\n /**\n * When enabled, the focused option is selected.\n * @group Props\n */\n readonly selectOnFocus = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n /**\n * Locale to use in searching. The default locale is the host environment's current locale.\n * @group Props\n */\n readonly searchLocale = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n /**\n * When enabled, the hovered option will be focused.\n * @group Props\n */\n readonly focusOnHover = input<boolean | undefined, unknown>(true, { transform: booleanAttribute });\n /**\n * Text to display when filtering.\n * @group Props\n */\n readonly filterMessage = input<string>();\n /**\n * Fields used when filtering the options, defaults to optionLabel.\n * @group Props\n */\n readonly filterFields = input<any[]>();\n /**\n * Defines if data is loaded and interacted with in lazy manner.\n * @group Props\n */\n readonly lazy = input<boolean, unknown>(false, { transform: booleanAttribute });\n /**\n * Whether the data should be loaded on demand during scroll.\n * @group Props\n */\n readonly virtualScroll = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n /**\n * Height of an item in the list for VirtualScrolling.\n * @group Props\n */\n readonly virtualScrollItemSize = input<number, unknown>(undefined, { transform: numberAttribute });\n /**\n * Whether to use the scroller feature. The properties of scroller component can be used like an object in it.\n * @group Props\n */\n readonly virtualScrollOptions = input<ScrollerOptions>();\n /**\n * Height of the viewport in pixels, a scrollbar is defined if height of list exceeds this value.\n * @group Props\n */\n readonly scrollHeight = input<string>('14rem');\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n readonly tabindex = input<number | undefined, unknown>(0, { transform: numberAttribute });\n /**\n * When specified, allows selecting multiple values.\n * @group Props\n */\n readonly multiple = input<boolean | undefined, unknown>(undefined, { transform: booleanAttribute });\n /**\n * Style class of the container.\n * @deprecated since v20.0.0, use `class` instead.\n * @group Props\n */\n readonly styleClass = input<string>();\n /**\n * Inline style of the list element.\n * @group Props\n */\n readonly listStyle = input<{\n [klass: string]: any;\n} | null>();\n /**\n * Style class of the list element.\n * @group Props\n */\n readonly listStyleClass = input<string>();\n /**\n * When present, it specifies that the element value cannot be changed.\n * @group Props\n */\n readonly readonly = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n /**\n * When specified, allows selecting items with checkboxes.\n * @group Props\n */\n readonly checkbox = input<boolean, unknown>(false, { transform: booleanAttribute });\n /**\n * When specified, displays a filter input at header.\n * @group Props\n */\n readonly filter = input<boolean, unknown>(false, { transform: booleanAttribute });\n /**\n * When filtering is enabled, filterBy decides which field or fields (comma separated) to search against.\n * @group Props\n */\n readonly filterBy = input<string>();\n /**\n * Defines how the items are filtered.\n * @group Props\n */\n readonly filterMatchMode = input<'contains' | 'startsWith' | 'endsWith' | 'equals' | 'notEquals' | 'in' | 'lt' | 'lte' | 'gt' | 'gte' | string>('contains');\n /**\n * Locale to use in filtering. The default locale is the host environment's current locale.\n * @group Props\n */\n readonly filterLocale = input<string>();\n /**\n * Defines how multiple items can be selected, when true metaKey needs to be pressed to select or unselect an item and when set to false selection of each item can be toggled individually. On touch enabled devices, metaKeySelection is turned off automatically.\n * @group Props\n */\n readonly metaKeySelection = input<boolean, unknown>(false, { transform: booleanAttribute });\n /**\n * A property to uniquely identify a value in options.\n * @group Props\n */\n readonly dataKey = input<string>();\n /**\n * Whether header checkbox is shown in multiple mode.\n * @group Props\n */\n readonly showToggleAll = input<boolean, unknown>(true, { transform: booleanAttribute });\n /**\n * Name of the label field of an option.\n * @group Props\n */\n readonly optionLabel = input<string>();\n /**\n * Name of the value field of an option.\n * @group Props\n */\n readonly optionValue = input<string>();\n /**\n * Name of the options field of an option group.\n * @group Props\n */\n readonly optionGroupChildren = input<string | undefined>('items');\n /**\n * Name of the label field of an option group.\n * @group Props\n */\n readonly optionGroupLabel = input<string | undefined>('label');\n /**\n * Name of the disabled field of an option or function to determine disabled state.\n * @group Props\n */\n readonly optionDisabled = input<string | ((item: any) => boolean)>();\n /**\n * Defines a string that labels the filter input.\n * @group Props\n */\n readonly ariaFilterLabel = input<string>();\n /**\n * Defines placeholder of the filter input.\n * @group Props\n */\n readonly filterPlaceHolder = input<string>();\n /**\n * Text to display when filtering does not return any results.\n * @group Props\n */\n readonly emptyFilterMessage = input<string>();\n /**\n * Text to display when there is no data. Defaults to global value in i18n translation configuration.\n * @group Props\n */\n readonly emptyMessage = input<string>();\n /**\n * Whether to display options as grouped when nested options are provided.\n * @group Props\n */\n readonly group = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n /**\n * An array of selectitems to display as the available options.\n * @group Props\n */\n readonly options = input<any[]>(undefined!);\n\n public _options = signal<any>(null);\n /**\n * When specified, filter displays with this value.\n * @group Props\n */\n readonly filterValue = input<string>();\n /**\n * Whether all data is selected.\n * @group Props\n */\n readonly selectAll = input<boolean | undefined | null>(null);\n /**\n * Whether to displays rows with alternating colors.\n * @group Props\n * @defaultValue false\n */\n readonly striped = input<boolean | undefined, unknown>(false, { transform: booleanAttribute });\n /**\n * Whether the selected option will be add highlight class.\n * @group Props\n * @defaultValue true\n */\n readonly highlightOnSelect = input<boolean, unknown>(true, { transform: booleanAttribute });\n /**\n * Whether the selected option will be shown with a check mark.\n * @group Props\n * @defaultValue false\n */\n readonly checkmark = input<boolean, unknown>(false, { transform: booleanAttribute });\n /**\n * Whether to enable dragdrop based reordering.\n * @group Props\n */\n readonly dragdrop = input<boolean, unknown>(false, { transform: booleanAttribute });\n /**\n * Array to use for CDK drop list data binding. When not provided, uses options array.\n * @group Props\n */\n readonly dropListData = input<any[]>();\n\n /**\n * Computed property for stable CDK drop list data reference\n */\n cdkDropData = computed(() => {\n return this.dropListData() || this._options();\n });\n /**\n * Spans 100% width of the container when enabled.\n * @defaultValue undefined\n * @group Props\n */\n fluid = input(undefined, { transform: booleanAttribute });\n /**\n * Callback to invoke on value change.\n * @param {ListboxChangeEvent} event - Custom change event.\n * @group Emits\n */\n readonly onChange = output<ListboxChangeEvent>();\n /**\n * Callback to invoke when option is clicked.\n * @param {ListboxClickEvent} event - Custom click event.\n * @group Emits\n */\n readonly onClick = output<ListboxClickEvent>();\n /**\n * Callback to invoke when option is double clicked.\n * @param {ListboxDoubleClickEvent} event - Custom double click event.\n * @group Emits\n */\n readonly onDblClick = output<ListboxDoubleClickEvent>();\n /**\n * Callback to invoke when data is filtered.\n * @param {ListboxFilterEvent} event - Custom filter event.\n * @group Emits\n */\n readonly onFilter = output<ListboxFilterEvent>();\n /**\n * Callback to invoke when component receives focus.\n * @param {FocusEvent} event - Focus event.\n * @group Emits\n */\n readonly onFocus = output<FocusEvent>();\n /**\n * Callback to invoke when component loses focus.\n * @param {FocusEvent} event - Blur event.\n * @group Emits\n */\n readonly onBlur = output<FocusEvent>();\n /**\n * Callback to invoke when all data is selected.\n * @param {ListboxSelectAllChangeEvent} event - Custom select event.\n * @group Emits\n */\n readonly onSelectAllChange = output<ListboxSelectAllChangeEvent>();\n /**\n * Emits on lazy load.\n * @param {ScrollerLazyLoadEvent} event - Scroller lazy load event.\n * @group Emits\n */\n readonly onLazyLoad = output<ScrollerLazyLoadEvent>();\n /**\n * Emits on item is dropped.\n * @param {CdkDragDrop<string[]>} event - Scroller lazy load event.\n * @group Emits\n */\n readonly onDrop = output<CdkDragDrop<string[]>>();\n\n readonly headerCheckboxViewChild = viewChild<Nullable<ElementRef>>('headerchkbox');\n\n readonly filterViewChild = viewChild<Nullable<ElementRef>>('filter');\n\n readonly lastHiddenFocusableElement = viewChild<Nullable<ElementRef>>('lastHiddenFocusableElement');\n\n readonly firstHiddenFocusableElement = viewChild<Nullable<ElementRef>>('firstHiddenFocusableElement');\n\n readonly scroller = viewChild<Nullable<Scroller>>('scroller');\n\n readonly listViewChild = viewChild<Nullable<ElementRef>>('list');\n\n readonly containerViewChild = viewChild<Nullable<ElementRef>>('container');\n\n readonly headerFacet = contentChild(Header);\n\n readonly footerFacet = contentChild(Footer);\n\n /**\n * Custom item template.\n * @param {ListboxItemTemplateContext} context - item context.\n * @see {@link ListboxItemTemplateContext}\n * @group Templates\n */\n readonly itemTemplate = contentChild<TemplateRef<ListboxItemTemplateContext>>('item', { descendants: false });\n\n /**\n * Custom group template.\n * @param {ListboxGroupTemplateContext} context - group context.\n * @see {@link ListboxGroupTemplateContext}\n * @group Templates\n */\n readonly groupTemplate = contentChild<TemplateRef<ListboxGroupTemplateContext>>('group', { descendants: false });\n\n /**\n * Custom header template.\n * @param {ListboxHeaderTemplateContext} context - header context.\n * @see {@link ListboxHeaderTemplateContext}\n * @group Templates\n */\n readonly headerTemplate = contentChild<TemplateRef<ListboxHeaderTemplateContext>>('header', { descendants: false });\n\n /**\n * Custom filter template.\n * @param {ListboxFilterTemplateContext} context - filter context.\n * @see {@link ListboxFilterTemplateContext}\n * @group Templates\n */\n readonly filterTemplate = contentChild<TemplateRef<ListboxFilterTemplateContext>>('filter', { descendants: false });\n\n /**\n * Custom footer template.\n * @param {ListboxFooterTemplateContext} context - footer context.\n * @see {@link ListboxFooterTemplateContext}\n * @group Templates\n */\n readonly footerTemplate = contentChild<TemplateRef<ListboxFooterTemplateContext>>('footer', { descendants: false });\n\n /**\n * Custom empty filter message template.\n * @group Templates\n */\n readonly emptyFilterTemplate = contentChild<TemplateRef<void>>('emptyfilter', { descendants: false });\n\n /**\n * Custom empty message template.\n * @group Templates\n */\n readonly emptyTemplate = contentChild<TemplateRef<void>>('empty', { descendants: false });\n\n /**\n * Custom filter icon template.\n * @group Templates\n */\n readonly filterIconTemplate = contentChild<TemplateRef<void>>('filtericon', { descendants: false });\n\n /**\n * Custom check icon template.\n * @param {ListboxCheckIconTemplateContext} context - check icon context.\n * @see {@link ListboxCheckIconTemplateContext}\n * @group Templates\n */\n readonly checkIconTemplate = contentChild<TemplateRef<ListboxCheckIconTemplateContext>>('checkicon', { descendants: false });\n\n /**\n * Custom checkmark icon template.\n * @param {ListboxCheckmarkTemplateContext} context - checkmark context.\n * @see {@link ListboxCheckmarkTemplateContext}\n * @group Templates\n */\n readonly checkmarkTemplate = contentChild<TemplateRef<ListboxCheckmarkTemplateContext>>('checkmark', { descendants: false });\n\n /**\n * Custom loader template.\n * @param {ListboxLoaderTemplateContext} context - loader context.\n * @see {@link ListboxLoaderTemplateContext}\n * @group Templates\n */\n readonly loaderTemplate = contentChild<TemplateRef<ListboxLoaderTemplateContext>>('loader', { descendants: false });\n\n readonly templates = contentChildren(HelixTemplate);\n\n _itemTemplate: TemplateRef<ListboxItemTemplateContext> | undefined;\n\n _groupTemplate: TemplateRef<ListboxGroupTemplateContext> | undefined;\n\n _headerTemplate: TemplateRef<ListboxHeaderTemplateContext> | undefined;\n\n _filterTemplate: TemplateRef<ListboxFilterTemplateContext> | undefined;\n\n _footerTemplate: TemplateRef<ListboxFooterTemplateContext> | undefined;\n\n _emptyFilterTemplate: TemplateRef<void> | undefined;\n\n _emptyTemplate: TemplateRef<void> | undefined;\n\n _filterIconTemplate: TemplateRef<void> | undefined;\n\n _checkIconTemplate: TemplateRef<ListboxCheckIconTemplateContext> | undefined;\n\n _checkmarkTemplate: TemplateRef<ListboxCheckmarkTemplateContext> | undefined;\n\n _loaderTemplate: TemplateRef<ListboxLoaderTemplateContext> | undefined;\n\n public _filterValue = signal<string | null | undefined>(null);\n\n public _filteredOptions: any[] | undefined | null;\n\n filterOptions: ListboxFilterOptions | undefined;\n\n public filtered: boolean | undefined | null;\n\n public value: any | undefined | null;\n\n public optionTouched: boolean | undefined | null;\n\n public focus: boolean | undefined | null;\n\n public headerCheckboxFocus: boolean | undefined | null;\n\n translationSubscription: Nullable<Subscription>;\n\n focused: boolean | undefined;\n\n scrollerTabIndex: string = '0';\n\n _componentStyle = inject(ListBoxStyle);\n\n get focusedOptionId() {\n return this.focusedOptionIndex() !== -1 ? `${this.$id()}_${this.focusedOptionIndex()}` : null;\n }\n\n get filterResultMessageText() {\n return isNotEmpty(this.visibleOptions()) ? this.filterMessageText.replaceAll('{0}', this.visibleOptions().length) : this.emptyFilterMessageText;\n }\n\n get filterMessageText() {\n return this.filterMessage() || this.config.translation.searchMessage || '';\n }\n\n get searchMessageText() {\n return this.searchMessage() || this.config.translation.searchMessage || '';\n }\n\n get emptyFilterMessageText() {\n return this.emptyFilterMessage() || this.config.translation.emptySearchMessage || this.config.translation.emptyFilterMessage || '';\n }\n\n get selectionMessageText() {\n return this.selectionMessage() || this.config.translation.selectionMessage || '';\n }\n\n get emptySelectionMessageText() {\n return this.emptySelectionMessage() || this.config.translation.emptySelectionMessage || '';\n }\n\n get selectedMessageText() {\n return this.hasSelectedOption() ? this.selectionMessageText.replaceAll('{0}', this.multiple() ? this.modelValue().length : '1') : this.emptySelectionMessageText;\n }\n\n get ariaSetSize() {\n return this.visibleOptions().filter((option) => !this.isOptionGroup(option)).length;\n }\n\n get virtualScrollerDisabled() {\n return !this.virtualScroll();\n }\n\n get searchFields() {\n return this.filterBy()?.split(',') || this.filterFields() || [this.optionLabel()];\n }\n\n get toggleAllAriaLabel() {\n return this.config.translation.aria ? this.config.translation.aria[this.allSelected() ? 'selectAll' : 'unselectAll'] : undefined;\n }\n\n searchValue: string | undefined;\n\n searchTimeout: any;\n\n startRangeIndex = signal<number>(-1);\n\n focusedOptionIndex = signal<number>(-1);\n\n isDragging = signal<boolean>(false);\n\n onHostFocusOut(event: FocusEvent) {\n this.onFocusout(event);\n }\n\n visibleOptions = computed(() => {\n const options = this.group() ? this.flatOptions(this._options()) : this._options() || [];\n return this._filterValue() ? this.filterService.filter(options, this.searchFields, this._filterValue(), this.filterMatchMode(), this.filterLocale()) : options;\n });\n\n constructor(public filterService: FilterService) {\n super();\n effect(() => {\n this._filterValue.set(this.filterValue());\n });\n effect(() => {\n this._options.set(this.options());\n });\n }\n\n onInit() {\n this.translationSubscription = this.config.translationObserver.subscribe(() => {\n this.cd.markForCheck();\n });\n\n this.autoUpdateModel();\n\n if (this.filterBy()) {\n this.filterOptions = {\n filter: (value) => this.onFilterChange(value),\n reset: () => this.resetFilter()\n };\n }\n }\n\n onAfterContentInit() {\n this.templates().forEach((item) => {\n switch (item.getType()) {\n case 'item':\n this._itemTemplate = item.template;\n break;\n\n case 'group':\n this._groupTemplate = item.template;\n break;\n\n case 'header':\n this._headerTemplate = item.template;\n break;\n\n case 'filter':\n this._filterTemplate = item.template;\n break;\n\n case 'footer':\n this._footerTemplate = item.template;\n break;\n\n case 'empty':\n this._emptyTemplate = item.template;\n break;\n\n case 'emptyfilter':\n this._emptyFilterTemplate = item.template;\n break;\n\n case 'filtericon':\n this._filterIconTemplate = item.template;\n break;\n\n case 'checkicon':\n this._checkIconTemplate = item.template;\n break;\n\n case 'checkmark':\n this._checkmarkTemplate = item.template;\n break;\n\n case 'loader':\n this._loaderTemplate = item.template;\n break;\n\n default:\n this._itemTemplate = item.template;\n break;\n }\n });\n }\n\n flatOptions(options) {\n return (options || []).reduce((result, option, index) => {\n result.push({ optionGroup: option, group: true, index });\n\n const optionGroupChildren = this.getOptionGroupChildren(option);\n\n optionGroupChildren && optionGroupChildren.forEach((o) => result.push(o));\n\n return result;\n }, []);\n }\n\n autoUpdateModel() {\n if (this.selectOnFocus() && this.autoOptionFocus() && !this.hasSelectedOption() && !this.multiple()) {\n const focusedOptionIndex = this.findFirstFocusedOptionIndex();\n this.focusedOptionIndex.set(focusedOptionIndex);\n this.onOptionSelect(null, this.visibleOptions()[this.focusedOptionIndex()]);\n }\n }\n /**\n * Updates the model value.\n * @group Method\n */\n public updateModel(value, event?) {\n this.value = value;\n this.writeModelValue(value);\n this.onModelChange(value);\n\n this.onChange.emit({ originalEvent: event, value: this.value });\n }\n\n removeOption(option) {\n return this.modelValue().filter((val) => !equals(val, this.getOptionValue(option), this.equalityKey() || ''));\n }\n\n onOptionSelect(event, option, index = -1) {\n if (this.$disabled() || this.isOptionDisabled(option) || this.readonly()) {\n return;\n }\n\n event && this.onClick.emit({ originalEvent: event, option, value: this.value });\n this.multiple() ? this.onOptionSelectMultiple(event, option) : this.onOptionSelectSingle(event, option);\n this.optionTouched = false;\n index !== -1 && this.focusedOptionIndex.set(index);\n }\n\n onOptionSelectMultiple(event, option) {\n let selected = this.isSelected(option);\n let value: any[] = [];\n let metaSelection = this.optionTouched ? false : this.metaKeySelection();\n\n if (metaSelection) {\n let metaKey = event.metaKey || event.ctrlKey;\n\n if (selected) {\n value = metaKey ? this.removeOption(option) : [this.getOptionValue(option)];\n } else {\n value = metaKey ? this.modelValue() || [] : [];\n value = [...(value || []), this.getOptionValue(option)];\n }\n } else {\n value = selected ? this.removeOption(option) : [...(this.modelValue() || []), this.getOptionValue(option)];\n }\n\n this.updateModel(value, event);\n }\n\n onOptionSelectSingle(event, option) {\n let selected = this.isSelected(option);\n let valueChanged = false;\n let value = null;\n let metaSelection = this.optionTouched ? false : this.metaKeySelection();\n\n if (metaSelection) {\n let metaKey = event.metaKey || event.ctrlKey;\n\n if (selected) {\n if (metaKey) {\n value = null;\n valueChanged = true;\n }\n } else {\n value = this.getOptionValue(option);\n valueChanged = true;\n }\n } else {\n value = selected ? null : this.getOptionValue(option);\n valueChanged = true;\n }\n\n if (valueChanged) {\n this.updateModel(value, event);\n }\n }\n\n onOptionSelectRange(event, start = -1, end = -1) {\n start === -1 && (start = this.findNearestSelectedOptionIndex(end, true));\n end === -1 && (end = this.findNearestSelectedOptionIndex(start));\n\n if (start !== -1 && end !== -1) {\n const rangeStart = Math.min(start, end);\n const rangeEnd = Math.max(start, end);\n const value = this.visibleOptions()\n .slice(rangeStart, rangeEnd + 1)\n .filter((option) => this.isValidOption(option))\n .map((option) => this.getOptionValue(option));\n\n this.updateModel(value, event);\n }\n }\n\n onToggleAll(event) {\n if (this.$disabled() || this.readonly()) {\n return;\n }\n focus(this.headerCheckboxViewChild()?.nativeElement);\n\n if (this.selectAll() !== null) {\n this.onSelectAllChange.emit({\n originalEvent: event,\n checked: !this.allSelected()\n });\n } else {\n const value = this.allSelected()\n ? []\n : this.visibleOptions()\n .filter((option) => this.isValidOption(option))\n .map((option) => this.getOptionValue(option));\n\n this.updateModel(value, event);\n this.onChange.emit({ originalEvent: event, value: this.value });\n }\n }\n\n allSelected() {\n return this.selectAll() !== null ? this.selectAll() : isNotEmpty(this.visibleOptions()) && this.visibleOptions().every((option) => this.isOptionGroup(option) || this.isOptionDisabled(option) || this.isSelected(option));\n }\n\n onOptionTouchEnd() {\n if (this.$disabled()) {\n return;\n }\n\n this.optionTouched = true;\n }\n\n onOptionMouseDown(event: MouseEvent, index: number) {\n this.changeFocusedOptionIndex(event, index);\n }\n\n onOptionMouseEnter(event: MouseEvent, index: number) {\n if (this.focusOnHover() && this.focused) {\n this.changeFocusedOptionIndex(event, index);\n }\n }\n\n onOptionDoubleClick(event: MouseEvent, option: any) {\n if (this.$disabled() || this.isOptionDisabled(option) || this.readonly()) {\n return;\n }\n\n this.onDblClick.emit({\n originalEvent: event,\n option: option,\n value: this.value\n });\n }\n\n onFirstHiddenFocus(event: FocusEvent) {\n focus(this.listViewChild()?.nativeElement);\n const firstFocusableEl = getFirstFocusableElement(this.el?.nativeElement, ':not([data-h-hidden-focusable=\"true\"])');\n this.lastHiddenFocusableElement()?.nativeElement && (this.lastHiddenFocusableElement()!.nativeElement.tabIndex = isEmpty(firstFocusableEl) ? -1 : undefined);\n this.firstHiddenFocusableElement()?.nativeElement && (this.firstHiddenFocusableElement()!.nativeElement.tabIndex = -1);\n }\n\n onLastHiddenFocus(event: FocusEvent) {\n const relatedTarget = event.relatedTarget;\n\n if (relatedTarget === this.listViewChild()?.nativeElement) {\n const firstFocusableEl = <any>getFirstFocusableElement(this.el?.nativeElement, ':not([data-h-hidden-focusable=\"true\"])');\n\n focus(firstFocusableEl);\n this.firstHiddenFocusableElement()?.nativeElement && (this.firstHiddenFocusableElement()!.nativeElement.tabIndex = undefined);\n } else {\n focus(this.firstHiddenFocusableElement()?.nativeElement);\n }\n this.lastHiddenFocusableElement()?.nativeElement && (this.lastHiddenFocusableElement()!.nativeElement.tabIndex = -1);\n }\n\n onFocusout(event: FocusEvent) {\n const lastHiddenFocusableElement = this.lastHiddenFocusableElement();\n const firstHiddenFocusableElement = this.firstHiddenFocusableElement();\n if (!this.el.nativeElement.contains(event.relatedTarget) && lastHiddenFocusableElement && firstHiddenFocusableElement) {\n firstHiddenFocusableElement.nativeElement.tabIndex = lastHiddenFocusableElement.nativeElement.tabIndex = undefined;\n this.scrollerTabIndex = '0';\n }\n }\n\n onListFocus(event: FocusEvent) {\n this.focused = true;\n const focusedOptionIndex = this.focusedOptionIndex() !== -1 ? this.focusedOptionIndex() : this.autoOptionFocus() ? this.findFirstFocusedOptionIndex() : this.findSelectedOptionIndex();\n this.focusedOptionIndex.set(focusedOptionIndex);\n this.scrollInView(focusedOptionIndex);\n this.onFocus.emit(event);\n\n this.scrollerTabIndex = '-1';\n }\n\n onListBlur(event: FocusEvent) {\n this.focused = false;\n this.focusedOptionIndex.set(-1);\n this.startRangeIndex.set(-1);\n this.searchValue = '';\n this.onBlur.emit(event);\n }\n\n onHeaderCheckboxKeyDown(event) {\n if (this.$disabled()) {\n event.preventDefault();\n\n return;\n }\n\n switch (event.code) {\n case 'Space':\n this.onToggleAll(event);\n break;\n case 'Enter':\n this.onToggleAll(event);\n break;\n case 'Tab':\n this.onHeaderCheckboxTabKeyDown(event);\n break;\n default:\n break;\n }\n }\n\n onHeaderCheckboxTabKeyDown(event) {\n focus(this.listViewChild()?.nativeElement);\n event.preventDefault();\n }\n\n onFilterChange(event: Event) {\n let value: string = (event.target as HTMLInputElement).value?.trim();\n this._filterValue.set(value);\n this.focusedOptionIndex.set(-1);\n this.startRangeIndex.set(-1);\n this.onFilter.emit({ originalEvent: event, filter: this._filterValue() });\n\n !this.virtualScrollerDisabled && this.scroller()?.scrollToIndex(0);\n }\n\n onFilterBlur(event: FocusEvent) {\n this.focusedOptionIndex.set(-1);\n this.startRangeIndex.set(-1);\n }\n\n onListKeyDown(event: KeyboardEvent) {\n const metaKey = event.metaKey || event.ctrlKey;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n\n case 'Enter':\n case 'Space':\n case 'NumpadEnter':\n this.onSpaceKey(event);\n break;\n\n case 'Tab':\n //NOOP\n break;\n\n case 'ShiftLeft':\n case 'ShiftRight':\n this.onShiftKey();\n break;\n\n default:\n if (this.multiple() && event.code === 'KeyA' && metaKey) {\n const value = this.visibleOptions()\n .filter((option) => this.isValidOption(option))\n .map((option) => this.getOptionValue(option));\n\n this.updateModel(value, event);\n\n event.preventDefault();\n break;\n }\n\n if (!metaKey && isPrintableCharacter(event.key)) {\n this.searchOptions(event, event.key);\n event.preventDefault();\n }\n\n break;\n }\n }\n\n onFilterKeyDown(event: KeyboardEvent) {\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'ArrowLeft':\n case 'ArrowRight':\n this.onArrowLeftKey(event, true);\n break;\n\n case 'Home':\n this.onHomeKey(event, true);\n break;\n\n case 'End':\n this.onEndKey(event, true);\n break;\n\n case 'Enter':\n this.onEnterKey(event);\n break;\n\n case 'ShiftLeft':\n case 'ShiftRight':\n this.onShiftKey();\n break;\n\n default:\n break;\n }\n }\n\n onArrowDownKey(event: KeyboardEvent) {\n const optionIndex = this.focusedOptionIndex() !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex()) : this.findFirstFocusedOptionIndex();\n\n if (this.multiple() && event.shiftKey) {\n this.onOptionSelectRange(event, this.startRangeIndex(), optionIndex);\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n event.preventDefault();\n }\n\n onArrowUpKey(event: KeyboardEvent) {\n const optionIndex = this.focusedOptionIndex() !== -1 ? this.findPrevOptionIndex(this.focusedOptionIndex()) : this.findLastFocusedOptionIndex();\n\n if (this.multiple() && event.shiftKey) {\n this.onOptionSelectRange(event, optionIndex, this.startRangeIndex());\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n event.preventDefault();\n }\n\n onArrowLeftKey(event: KeyboardEvent, pressedInInputText = false) {\n pressedInInputText && this.focusedOptionIndex.set(-1);\n }\n\n onHomeKey(event: KeyboardEvent, pressedInInputText: boolean = false) {\n if (pressedInInputText) {\n (event.currentTarget as HTMLInputElement).setSelectionRange(0, 0);\n this.focusedOptionIndex.set(-1);\n } else {\n let metaKey = event.metaKey || event.ctrlKey;\n let optionIndex = this.findFirstOptionIndex();\n\n if (this.multiple() && event.shiftKey && metaKey) {\n this.onOptionSelectRange(event, optionIndex, this.startRangeIndex());\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n\n event.preventDefault();\n }\n\n onEndKey(event: KeyboardEvent, pressedInInputText: boolean = false) {\n if (pressedInInputText) {\n const target = event.currentTarget as HTMLInputElement;\n const len = target.value.length;\n\n target.setSelectionRange(len, len);\n this.focusedOptionIndex.set(-1);\n } else {\n let metaKey = event.metaKey || event.ctrlKey;\n let optionIndex = this.findLastOptionIndex();\n\n if (this.multiple() && event.shiftKey && metaKey) {\n this.onOptionSelectRange(event, this.startRangeIndex(), optionIndex);\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n\n event.preventDefault();\n }\n\n onPageDownKey(event: KeyboardEvent) {\n this.scrollInView(0);\n event.preventDefault();\n }\n\n onPageUpKey(event: KeyboardEvent) {\n this.scrollInView(this.visibleOptions().length - 1);\n event.preventDefault();\n }\n\n onEnterKey(event) {\n if (this.focusedOptionIndex() !== -1) {\n if (this.multiple() && event.shiftKey) this.onOptionSelectRange(event, this.focusedOptionIndex());\n else this.onOptionSelect(event, this.visibleOptions()[this.focusedOptionIndex()]);\n }\n\n event.preventDefault();\n }\n\n onSpaceKey(event: KeyboardEvent) {\n this.onEnterKey(event);\n }\n\n onShiftKey() {\n const focusedOptionIndex = this.focusedOptionIndex();\n this.startRangeIndex.set(focusedOptionIndex);\n }\n\n getOptionGroupChildren(optionGroup) {\n const optionGroupChildren = this.optionGroupChildren();\n return optionGroupChildren ? resolveFieldData(optionGroup, optionGroupChildren) : optionGroup.items;\n }\n\n getOptionGroupLabel(optionGroup: any) {\n const optionGroupLabel = this.optionGroupLabel();\n return optionGroupLabel ? resolveFieldData(optionGroup, optionGroupLabel) : optionGroup && optionGroup.label !== undefined ? optionGroup.label : optionGroup;\n }\n\n getOptionLabel(option) {\n const optionLabel = this.optionLabel();\n return optionLabel ? resolveFieldData(option, optionLabel) : option.label != undefined ? option.label : option;\n }\n\n getOptionIndex(index, scrollerOptions) {\n return this.virtualScrollerDisabled ? index : scrollerOptions && scrollerOptions.getItemOptions(index)['index'];\n }\n\n getOptionValue(option: any) {\n const optionValue = this.optionValue();\n return optionValue ? resolveFieldData(option, optionValue) : !this.optionLabel() && option && option.value !== undefined ? option.value : option;\n }\n\n getAriaPosInset(index: number) {\n return (\n (this.optionGroupLabel()\n ? index -\n this.visibleOptions()\n .slice(0, index)\n .filter((option) => this.isOptionGroup(option)).length\n : index) + 1\n );\n }\n\n getPTOptions(option: any, itemOptions: any, index: number, key: string) {\n return this.ptm(key, {\n context: {\n selected: this.isSelected(option),\n focused: this.focusedOptionIndex() === this.getOptionIndex(index, itemOptions),\n disabled: this.isOptionDisabled(option)\n }\n });\n }\n\n hasSelectedOption() {\n return isNotEmpty(this.modelValue());\n }\n\n isOptionGroup(option) {\n return this.optionGroupLabel() && option.optionGroup && option.group;\n }\n\n changeFocusedOptionIndex(event, index) {\n if (this.focusedOptionIndex() !== index) {\n this.focusedOptionIndex.set(index);\n this.scrollInView();\n\n if (this.selectOnFocus() && !this.multiple()) {\n this.onOptionSelect(event, this.visibleOptions()[index]);\n }\n }\n }\n\n searchOptions(event, char) {\n this.searchValue = (this.searchValue || '') + char;\n\n let optionIndex = -1;\n let matched = false;\n\n if (this.focusedOptionIndex() !== -1) {\n optionIndex = this.visibleOptions()\n .slice(this.focusedOptionIndex())\n .findIndex((option) => this.isOptionMatched(option));\n optionIndex =\n optionIndex === -1\n ? this.visibleOptions()\n .slice(0, this.focusedOptionIndex())\n .findIndex((option) => this.isOptionMatched(option))\n : optionIndex + this.focusedOptionIndex();\n } else {\n optionIndex = this.visibleOptions().findIndex((option) => this.isOptionMatched(option));\n }\n\n if (optionIndex !== -1) {\n matched = true;\n }\n\n if (optionIndex === -1 && this.focusedOptionIndex() === -1) {\n optionIndex = this.findFirstFocusedOptionIndex();\n }\n\n if (optionIndex !== -1) {\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n this.searchTimeout = setTimeout(() => {\n this.searchValue = '';\n this.searchTimeout = null;\n }, 500);\n\n return matched;\n }\n\n isOptionMatched(option) {\n return this.isValidOption(option) && this.getOptionLabel(option)?.toLocaleLowerCase(this.filterLocale()).startsWith(this.searchValue?.toLocaleLowerCase(this.filterLocale()));\n }\n\n scrollInView(index = -1) {\n const id = index !== -1 ? `${this.$id()}_${index}` : this.focusedOptionId;\n const element = findSingle(this.listViewChild()?.nativeElement, `li[id=\"${id}\"]`);\n\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n } else if (!this.virtualScrollerDisabled) {\n this.virtualScroll() && this.scroller()?.scrollToIndex(index !== -1 ? index : this.focusedOptionIndex());\n }\n }\n\n findFirstOptionIndex() {\n return this.visibleOptions().findIndex((option) => this.isValidOption(option));\n }\n\n findLastOptionIndex() {\n return findLastIndex(this.visibleOptions(), (option) => this.isValidOption(option));\n }\n\n findFirstFocusedOptionIndex() {\n const selectedIndex = this.findFirstSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n }\n\n findLastFocusedOptionIndex() {\n const selectedIndex = this.findLastSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;\n }\n\n findLastSelectedOptionIndex() {\n return this.hasSelectedOption() ? findLastIndex(this.visibleOptions(), (option) => this.isValidSelectedOption(option)) : -1;\n }\n\n findNextOptionIndex(index) {\n const matchedOptionIndex =\n index < this.visibleOptions().length - 1\n ? this.visibleOptions()\n .slice(index + 1)\n .findIndex((option) => this.isValidOption(option))\n : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;\n }\n\n findNextSelectedOptionIndex(index) {\n const matchedOptionIndex =\n this.hasSelectedOption() && index < this.visibleOptions().length - 1\n ? this.visibleOptions()\n .slice(index + 1)\n .findIndex((option) => this.isValidSelectedOption(option))\n : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : -1;\n }\n\n findPrevSelectedOptionIndex(index) {\n const matchedOptionIndex = this.hasSelectedOption() && index > 0 ? findLastIndex(this.visibleOptions().slice(0, index), (option) => this.isValidSelectedOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : -1;\n }\n\n findFirstSelectedOptionIndex() {\n return this.hasSelectedOption() ? this.visibleOptions().findIndex((option) => this.isValidSelectedOption(option)) : -1;\n }\n\n findPrevOptionIndex(index) {\n const matchedOptionIndex = index > 0 ? findLastIndex(this.visibleOptions().slice(0, index), (option) => this.isValidOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n }\n\n findSelectedOptionIndex() {\n if (this.$filled()) {\n if (this.multiple()) {\n for (let index = this.modelValue().length - 1; index >= 0; index--) {\n const value = this.modelValue()[index];\n const matchedOptionIndex = this.visibleOptions().findIndex((option) => this.isValidSelectedOption(option) && this.isEquals(value, this.getOptionValue(option)));\n\n if (matchedOptionIndex > -1) return matchedOptionIndex;\n }\n } else {\n return this.visibleOptions().findIndex((option) => this.isValidSelectedOption(option));\n }\n }\n\n return -1;\n }\n\n findNearestSelectedOptionIndex(index, firstCheckUp = false) {\n let matchedOptionIndex = -1;\n\n if (this.hasSelectedOption()) {\n if (firstCheckUp) {\n matchedOptionIndex = this.findPrevSelectedOptionIndex(index);\n matchedOptionIndex = matchedOptionIndex === -1 ? this.findNextSelectedOptionIndex(index) : matchedOptionIndex;\n } else {\n matchedOptionIndex = this.findNextSelectedOptionIndex(index);\n matchedOptionIndex = matchedOptionIndex === -1 ? this.findPrevSelectedOptionIndex(index) : matchedOptionIndex;\n }\n }\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n }\n\n equalityKey() {\n return this.optionValue() ? null : this.dataKey();\n }\n\n isValidSelectedOption(option) {\n return this.isValidOption(option) && this.isSelected(option);\n }\n\n isOptionDisabled(option: any) {\n const optionDisabled = this.optionDisabled();\n if (isFunction(optionDisabled)) {\n return optionDisabled(option);\n }\n return optionDisabled ? resolveFieldData(option, optionDisabled) : false;\n }\n\n isEquals(value1, value2) {\n return equals(value1, value2, this.equalityKey() || '');\n }\n\n isSelected(option) {\n const optionValue = this.getOptionValue(option);\n\n if (this.multiple()) return (this.modelValue() || []).some((value) => this.isEquals(value, optionValue));\n else return this.isEquals(this.modelValue(), optionValue);\n }\n\n isValidOption(option) {\n return option && !(this.isOptionDisabled(option) || this.isOptionGroup(option));\n }\n\n isEmpty() {\n return !this._options()?.length || !this.visibleOptions()?.length;\n }\n\n hasFilter() {\n return this._filterValue() && (this._filterValue()?.trim().length || 0) > 0;\n }\n\n resetFilter() {\n const filterViewChild = this.filterViewChild();\n if (filterViewChild && filterViewChild.nativeElement) {\n filterViewChild.nativeElement.value = '';\n }\n\n this._filterValue.set(null);\n }\n\n onDragEntered() {\n this.isDragging.set(true);\n this.el.nativeElement.setAttribute('h-listbox-dragging', 'true');\n }\n\n onDragExited() {\n this.isDragging.set(false);\n this.el.nativeElement.setAttribute('h-listbox-dragging', 'false');\n }\n\n drop(event: CdkDragDrop<string[]>) {\n this.isDragging.set(false);\n if (event) {\n // If dragdrop is enabled and same container (reordering), automatically handle reordering\n if (this.dragdrop() && event.previousContainer === event.container) {\n const currentOptions = [...this._options()];\n moveItemInArray(currentOptions, event.previousIndex, event.currentIndex);\n this._options.set(currentOptions);\n this.changeFocusedOptionIndex(event, event.currentIndex);\n\n // Update model value if needed for selection preservation\n if (this.modelValue()) {\n this.writeModelValue(this.modelValue());\n this.onModelChange(this.modelValue());\n }\n\n // Mark for change detection\n this.cd.markForCheck();\n }\n\n // Always emit the event for custom handling\n this.onDrop.emit(event);\n }\n }\n\n get containerDataP() {\n return this.cn({\n invalid: this.invalid(),\n disabled: this.$disabled()\n });\n }\n\n /**\n * @override\n *\n * @see {@link BaseEditableHolder.writeControlValue}\n * Writes the value to the control.\n */\n writeControlValue(value: any, setModelValue: (value: any) => void): void {\n this.value = value;\n setModelValue(this.value);\n this.cd.markForCheck();\n }\n\n onDestroy() {\n if (this.translationSubscription) {\n this.translationSubscription.unsubscribe();\n }\n }\n}\n\n@NgModule({\n imports: [Listbox, SharedModule],\n exports: [Listbox, SharedModule]\n})\nexport class ListboxModule {}\n","<span\n #firstHiddenFocusableElement\n role=\"presentation\"\n class=\"h-hidden-accessible h-hidden-focusable\"\n [tabindex]=\"!$disabled() ? tabindex() : -1\"\n (focus)=\"onFirstHiddenFocus($event)\"\n [attr.data-h-hidden-focusable]=\"true\"\n [hBind]=\"ptm('hiddenFirstFocusableElement')\"\n >\n</span>\n@if (headerFacet() || headerTemplate() || _headerTemplate) {\n <div [class]=\"cx('header')\" [hBind]=\"ptm('header')\">\n <ng-content select=\"h-header\"></ng-content>\n <ng-container *ngTemplateOutlet=\"headerTemplate() || _headerTemplate; context: { $implicit: modelValue(), options: visibleOptions() }\"></ng-container>\n </div>\n}\n@if ((checkbox() && multiple() && showToggleAll()) || filter()) {\n <div [class]=\"cx('header')\" [hBind]=\"ptm('header')\">\n @if (checkbox() && multiple() && showToggleAll()) {\n <h-checkbox()\n #headerchkbox\n (onChange)=\"onToggleAll($event)\"\n [class]=\"cx('optionCheckIcon')\"\n [ngModel]=\"allSelected()\"\n [disabled]=\"$disabled()\"\n [tabindex]=\"-1\"\n [variant]=\"config.inputStyle() === 'filled' || config.inputVariant() === 'filled' ? 'filled' : 'outlined'\"\n [binary]=\"true\"\n [attr.aria-label]=\"toggleAllAriaLabel\"\n [pt]=\"ptm('pcCheckbox')\"\n [unstyled]=\"unstyled()\"\n >\n @if (checkIconTemplate() || _checkIconTemplate) {\n <ng-template #icon>\n <ng-template *ngTemplateOutlet=\"checkIconTemplate() || _checkIconTemplate; context: { $implicit: allSelected() }\"></ng-template>\n </ng-template>\n }\n </h-checkbox()>\n }\n @if (filterTemplate() || _filterTemplate) {\n <ng-container *ngTemplateOutlet=\"filterTemplate() || _filterTemplate; context: { options: filterOptions }\"></ng-container>\n } @else {\n @if (filter()) {\n <h-iconfield [pt]=\"ptm('pcFilterContainer')\" hostName=\"listbox\" [unstyled]=\"unstyled()\">\n <input\n #filterInput\n hInputText\n type=\"text\"\n [class]=\"cx('pcFilter')\"\n role=\"searchbox\"\n [value]=\"_filterValue() || ''\"\n [attr.disabled]=\"$disabled() ? '' : undefined\"\n [attr.aria-owns]=\"$id() + '_list'\"\n [attr.aria-activedescendant]=\"focusedOptionId\"\n [attr.placeholder]=\"filterPlaceHolder()\"\n [attr.aria-label]=\"ariaFilterLabel()\"\n [attr.tabindex]=\"!$disabled() && !focused ? tabindex() : -1\"\n (input)=\"onFilterChange($event)\"\n (keydown)=\"onFilterKeyDown($event)\"\n (blur)=\"onFilterBlur($event)\"\n [pt]=\"ptm('pcFilter')\"\n [unstyled]=\"unstyled()\"\n hostName=\"listbox\"\n />\n <h-inputicon [pt]=\"ptm('pcFilterIconContainer')\" [unstyled]=\"unstyled()\">\n @if (!filterIconTemplate() && !_filterIconTemplate) {\n <svg data-h-icon=\"search\" [attr.aria-hidden]=\"true\" [hBind]=\"ptm('filterIcon')\" />\n }\n @if (filterIconTemplate() || _filterIconTemplate) {\n <span [attr.aria-hidden]=\"true\">\n <ng-template *ngTemplateOutlet=\"filterIconTemplate() || _filterIconTemplate\"></ng-template>\n </span>\n }\n </h-inputicon>\n </h-iconfield>\n }\n <span role=\"status\" [hBind]=\"ptm('hiddenFilterResult')\" [attr.aria-live]=\"'polite'\" class=\"h-hidden-accessible\" [attr.data-h-hidden-accessible]=\"true\">\n {{ filterResultMessageText }}\n </span>\n }\n </div>\n}\n<div\n #container\n [class]=\"cn(cx('listContainer'), listStyleClass())\"\n [ngStyle]=\"listStyle()\"\n [style.max-height]=\"virtualScroll() ? 'auto' : scrollHeight() || 'auto'\"\n cdkDropList\n [cdkDropListData]=\"cdkDropData()\"\n (cdkDropListDropped)=\"drop($event)\"\n (cdkDropListEntered)=\"onDragEntered()\"\n (cdkDropListExited)=\"onDragExited()\"\n [hBind]=\"ptm('listContainer')\"\n >\n @if (hasFilter() && isEmpty()) {\n <div [class]=\"cx('emptyMessage')\" [hBind]=\"ptm('emptyMessage')\">\n @if (!emptyFilterTemplate() && !_emptyFilterTemplate && !_emptyTemplate && !emptyTemplate()) {\n {{ emptyFilterMessageText }}\n } @else {\n <ng-container #emptyFilter *ngTemplateOutlet=\"emptyFilterTemplate() || _emptyFilterTemplate || _emptyTemplate || emptyTemplate()\"></ng-container>\n }\n </div>\n } @else if (!hasFilter() && isEmpty()) {\n <div [class]=\"cx('emptyMessage')\" [hBind]=\"ptm('emptyMessage')\">\n @if (!emptyTemplate() && !_emptyTemplate) {\n {{ emptyMessage() }}\n } @else {\n <ng-container #empty *ngTemplateOutlet=\"emptyTemplate() || _emptyTemplate\"></ng-container>\n }\n </div>\n } @else {\n @if (virtualScroll()) {\n <h-scroller\n [pt]=\"ptm('virtualScroller')\"\n hostName=\"listbox\"\n #scroller\n [items]=\"visibleOptions()\"\n [style]=\"{ height: scrollHeight() }\"\n [itemSize]=\"virtualScrollItemSize()\"\n [autoSize]=\"true\"\n [lazy]=\"lazy()\"\n [options]=\"virtualScrollOptions()\"\n (onLazyLoad)=\"onLazyLoad.emit($event)\"\n [tabindex]=\"scrollerTabIndex\"\n >\n <ng-template #content let-items let-scrollerOptions=\"options\">\n <ng-container *ngTemplateOutlet=\"buildInItems; context: { $implicit: items, options: scrollerOptions }\"></ng-container>\n </ng-template>\n @if (loaderTemplate() || _loaderTemplate) {\n <ng-template #loader let-scrollerOptions=\"options\">\n <ng-container *ngTemplateOutlet=\"loaderTemplate() || _loaderTemplate; context: { options: scrollerOptions }\"></ng-container>\n </ng-template>\n }\n </h-scroller>\n }\n @if (!virtualScroll()) {\n <ng-container *ngTemplateOutlet=\"buildInItems; context: { $implicit: visibleOptions(), options: {} }\"></ng-container>\n }\n\n <ng-template #buildInItems let-items let-scrollerOptions=\"options\">\n <ul\n #list\n [id]=\"$id() + '_list'\"\n [class]=\"cx('list')\"\n role=\"listbox\"\n [tabindex]=\"-1\"\n [attr.aria-multiselectable]=\"true\"\n [ngClass]=\"scrollerOptions.contentStyleClass\"\n [style]=\"scrollerOptions.contentStyle\"\n [attr.aria-activedescendant]=\"focused ? focusedOptionId : undefined\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-disabled]=\"$disabled()\"\n (focus)=\"onListFocus($event)\"\n (blur)=\"onListBlur($event)\"\n (keydown)=\"onListKeyDown($event)\"\n [hBind]=\"ptm('list')\"\n >\n @for (option of items; track option; let i = $index) {\n @if (isOptionGroup(option)) {\n <li\n [attr.id]=\"$id() + '_' + getOptionIndex(i, scrollerOptions)\"\n [class]=\"cx('optionGroup')\"\n [hBind]=\"getPTOptions(option.optionGroup, scrollerOptions, i, 'optionGroup')\"\n [ngStyle]=\"{ height: scrollerOptions.itemSize + 'px' }\"\n role=\"option\"\n cdkDrag\n [cdkDragData]=\"option\"\n [cdkDragDisabled]=\"!dragdrop()\"\n (cdkDragStarted)=\"isDragging.set(true)\"\n (cdkDragEnded)=\"isDragging.set(false)\"\n >\n @if (!groupTemplate() && !_groupTemplate) {\n <span>{{ getOptionGroupLabel(option.optionGroup) }}</span>\n }\n <ng-container *ngTemplateOutlet=\"groupTemplate() || _groupTemplate; context: { $implicit: option.optionGroup }\"></ng-container>\n </li>\n }\n @if (!isOptionGroup(option)) {\n <li\n hRipple\n [class]=\"cx('option', { option, i, scrollerOptions })\"\n role=\"option\"\n [attr.id]=\"$id() + '_' + getOptionIndex(i, scrollerOptions)\"\n [ngStyle]=\"{ height: scrollerOptions.itemSize + 'px' }\"\n [attr.aria-label]=\"getOptionLabel(option)\"\n [attr.aria-selected]=\"isSelected(option)\"\n [attr.aria-disabled]=\"isOptionDisabled(option)\"\n [attr.aria-setsize]=\"ariaSetSize\"\n [attr.ariaPosInset]=\"getAriaPosInset(getOptionIndex(i, scrollerOptions))\"\n [attr.data-h-selected]=\"isSelected(option)\"\n [attr.data-h-focused]=\"focusedOptionIndex() === getOptionIndex(i, scrollerOptions)\"\n [attr.data-h-disabled]=\"isOptionDisabled(option)\"\n [hBind]=\"getPTOptions(option, scrollerOptions, i, 'option')\"\n (click)=\"onOptionSelect($event, option, getOptionIndex(i, scrollerOptions))\"\n (dblclick)=\"onOptionDoubleClick($event, option)\"\n (mousedown)=\"onOptionMouseDown($event, getOptionIndex(i, scrollerOptions))\"\n (mouseenter)=\"onOptionMouseEnter($event, getOptionIndex(i, scrollerOptions))\"\n (touchend)=\"onOptionTouchEnd()\"\n cdkDrag\n [cdkDragData]=\"option\"\n [cdkDragDisabled]=\"!dragdrop()\"\n (cdkDragStarted)=\"isDragging.set(true)\"\n (cdkDragEnded)=\"isDragging.set(false)\"\n >\n @if (checkbox() && multiple()) {\n <h-checkbox()\n [class]=\"cx('optionCheckIcon')\"\n [ngModel]=\"isSelected(option)\"\n [readonly]=\"true\"\n [disabled]=\"$disabled() || isOptionDisabled(option)\"\n [tabindex]=\"-1\"\n [variant]=\"config.inputStyle() === 'filled' || config.inputVariant() === 'filled' ? 'filled' : 'outlined'\"\n [binary]=\"true\"\n [pt]=\"ptm('pcCheckbox')\"\n hostName=\"listbox\"\n [unstyled]=\"unstyled()\"\n >\n @if (checkIconTemplate() || _checkIconTemplate) {\n <ng-template #icon>\n <ng-template *ngTemplateOutlet=\"checkIconTemplate() || _checkIconTemplate; context: { $implicit: isSelected(option) }\"></ng-template>\n </ng-template>\n }\n </h-checkbox()>\n }\n @if (checkmark()) {\n @if (!checkmarkTemplate() && !_checkmarkTemplate) {\n @if (!isSelected(option)) {\n <svg data-h-icon=\"blank\" [class]=\"cx('optionBlankIcon')\" [hBind]=\"ptm('optionBlankIcon')\" />\n }\n @if (isSelected(option)) {\n <svg data-h-icon=\"check\" [class]=\"cx('optionCheckIcon')\" [hBind]=\"ptm('optionCheckIcon')\" />\n }\n }\n <ng-container *ngTemplateOutlet=\"checkmarkTemplate() || _checkmarkTemplate; context: { implicit: isSelected(option) }\"></ng-container>\n }\n @if (!itemTemplate() && !_itemTemplate) {\n <span>{{ getOptionLabel(option) }}</span>\n }\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate() || _itemTemplate;\n context: {\n $implicit: option,\n index: getOptionIndex(i, scrollerOptions),\n selected: isSelected(option),\n disabled: isOptionDisabled(option)\n }\n \"\n ></ng-container>\n </li>\n }\n }\n </ul>\n </ng-template>\n}\n</div>\n@if (footerFacet() || footerTemplate() || _footerTemplate) {\n <div>\n <ng-content select=\"h-footer\"></ng-content>\n <ng-container *ngTemplateOutlet=\"footerTemplate() || _footerTemplate; context: { $implicit: modelValue(), options: visibleOptions() }\"></ng-container>\n </div>\n}\n@if (isEmpty()) {\n <span role=\"status\" aria-live=\"polite\" class=\"h-hidden-accessible\" [hBind]=\"ptm('hiddenEmptyMessage')\">\n {{ emptyMessage() }}\n </span>\n}\n<span role=\"status\" aria-live=\"polite\" class=\"h-hidden-accessible\" [hBind]=\"ptm('hiddenSelectedMessage')\">\n {{ selectedMessageText }}\n</span>\n<span\n #lastHiddenFocusableElement\n role=\"presentation\"\n class=\"h-hidden-accessible h-hidden-focusable\"\n [tabindex]=\"!$disabled() ? tabindex() : -1\"\n (focus)=\"onLastHiddenFocus($event)\"\n [attr.data-h-hidden-focusable]=\"true\"\n [hBind]=\"ptm('hiddenLastFocusableEl')\"\n >\n</span>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["style","listbox_style"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAO,MAAMA,OAAK,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0H5B;;ACtHD,MAAM,KAAK,WAAW;MAChBC,OAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqClB;AAED,MAAM,OAAO,GAAG;AACZ,IAAA,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK;QACpB,uBAAuB;AACvB,QAAA;AACI,YAAA,mBAAmB,EAAE,QAAQ,CAAC,OAAO,EAAE;AACvC,YAAA,YAAY,EAAE,QAAQ,CAAC,SAAS,EAAE;AAClC,YAAA,WAAW,EAAE,QAAQ,CAAC,OAAO,EAAE;AAC/B,YAAA,iBAAiB,EAAE,QAAQ,CAAC,KAAK,EAAE;AACnC,YAAA,oBAAoB,EAAE,QAAQ,CAAC,UAAU;AAC5C;AACJ,KAAA;AACD,IAAA,MAAM,EAAE,kBAAkB;AAC1B,IAAA,QAAQ,EAAE,kBAAkB;AAC5B,IAAA,aAAa,EAAE,0BAA0B;AACzC,IAAA,IAAI,EAAE,gBAAgB;AACtB,IAAA,WAAW,EAAE,wBAAwB;AACrC,IAAA,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,eAAe,EAAE,KAAK;QAClD,kBAAkB;AAClB,QAAA;YACI,2BAA2B,EAAE,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,iBAAiB,EAAE;AACxF,YAAA,SAAS,EAAE,QAAQ,CAAC,kBAAkB,EAAE,KAAK,QAAQ,CAAC,cAAc,CAAC,CAAC,EAAE,eAAe,CAAC;AACxF,YAAA,YAAY,EAAE,QAAQ,CAAC,gBAAgB,CAAC,MAAM;AACjD;AACJ,KAAA;AACD,IAAA,eAAe,EAAE,6BAA6B;AAC9C,IAAA,eAAe,EAAE,6BAA6B;AAC9C,IAAA,YAAY,EAAE;CACjB;AAGK,MAAO,YAAa,SAAQ,SAAS,CAAA;IACvC,IAAI,GAAG,SAAS;IAEhB,KAAK,GAAG,KAAK;IAEb,OAAO,GAAG,OAAO;uGALR,YAAY,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAZ,YAAY,EAAA,CAAA;;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB;;AASD;;;;;;;;AAQG;IACS;AAAZ,CAAA,UAAY,cAAc,EAAA;AACtB;;AAEG;AACH,IAAA,cAAA,CAAA,MAAA,CAAA,GAAA,WAAkB;AAClB;;AAEG;AACH,IAAA,cAAA,CAAA,QAAA,CAAA,GAAA,kBAA2B;AAC3B;;AAEG;AACH,IAAA,cAAA,CAAA,UAAA,CAAA,GAAA,kBAA6B;AAC7B;;AAEG;AACH,IAAA,cAAA,CAAA,eAAA,CAAA,GAAA,0BAA0C;AAC1C;;AAEG;AACH,IAAA,cAAA,CAAA,MAAA,CAAA,GAAA,gBAAuB;AACvB;;AAEG;AACH,IAAA,cAAA,CAAA,aAAA,CAAA,GAAA,wBAAsC;AACtC;;AAEG;AACH,IAAA,cAAA,CAAA,QAAA,CAAA,GAAA,kBAA2B;AAC3B;;AAEG;AACH,IAAA,cAAA,CAAA,iBAAA,CAAA,GAAA,6BAA+C;AAC/C;;AAEG;AACH,IAAA,cAAA,CAAA,iBAAA,CAAA,GAAA,6BAA+C;AAC/C;;AAEG;AACH,IAAA,cAAA,CAAA,cAAA,CAAA,GAAA,yBAAwC;AAC5C,CAAC,EAzCW,cAAc,KAAd,cAAc,GAAA,EAAA,CAAA,CAAA;;ACtD1B,MAAM,gBAAgB,GAAG,IAAI,cAAc,CAAU,kBAAkB,CAAC;AAEjE,MAAM,sBAAsB,GAAQ;AACvC,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,OAAO,CAAC;AACtC,IAAA,KAAK,EAAE;;AAEX;;;AAGG;AA4BG,MAAO,OAAQ,SAAQ,kBAAsC,CAAA;AAuiB5C,IAAA,aAAA;IAtiBnB,aAAa,GAAG,SAAS;IAEhB,QAAQ,GAAG,KAAK,CAAM,EAAE;iFAAC;IAElC,qBAAqB,GAAG,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAEpD,IAAA,UAAU,GAAwB,MAAM,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS;IAE3G,kBAAkB,GAAA;AACd,QAAA,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACpE;AAEA;;;AAGG;AACM,IAAA,EAAE,GAAG,KAAK;sFAAU;AAEZ,IAAA,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;AAE/B,IAAA,GAAG,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,EAAE,IAAI,IAAI,CAAC,MAAM;4EAAC;AACvD;;;;AAIG;AACM,IAAA,aAAa,GAAG,KAAK;iGAAU;AACxC;;;;AAIG;AACM,IAAA,qBAAqB,GAAG,KAAK;yGAAU;AAChD;;;;AAIG;AACM,IAAA,gBAAgB,GAAG,KAAK;oGAAU;AAC3C;;;AAGG;IACM,eAAe,GAAG,KAAK,CAA+B,IAAI,uFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACrG;;;AAGG;AACM,IAAA,SAAS,GAAG,KAAK;6FAAU;AACpC;;;AAGG;IACM,aAAa,GAAG,KAAK,CAAmB,SAAS,qFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAC5F;;;AAGG;IACM,YAAY,GAAG,KAAK,CAAmB,SAAS,oFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAC3F;;;AAGG;IACM,YAAY,GAAG,KAAK,CAA+B,IAAI,oFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAClG;;;AAGG;AACM,IAAA,aAAa,GAAG,KAAK;iGAAU;AACxC;;;AAGG;AACM,IAAA,YAAY,GAAG,KAAK;gGAAS;AACtC;;;AAGG;IACM,IAAI,GAAG,KAAK,CAAmB,KAAK,4EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAC/E;;;AAGG;IACM,aAAa,GAAG,KAAK,CAAmB,SAAS,qFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAC5F;;;AAGG;IACM,qBAAqB,GAAG,KAAK,CAAkB,SAAS,6FAAI,SAAS,EAAE,eAAe,EAAA,CAAG;AAClG;;;AAGG;AACM,IAAA,oBAAoB,GAAG,KAAK;wGAAmB;AACxD;;;AAGG;IACM,YAAY,GAAG,KAAK,CAAS,OAAO;qFAAC;AAC9C;;;AAGG;IACM,QAAQ,GAAG,KAAK,CAA8B,CAAC,gFAAI,SAAS,EAAE,eAAe,EAAA,CAAG;AACzF;;;AAGG;IACM,QAAQ,GAAG,KAAK,CAA+B,SAAS,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACnG;;;;AAIG;AACM,IAAA,UAAU,GAAG,KAAK;8FAAU;AACrC;;;AAGG;AACM,IAAA,SAAS,GAAG,KAAK;6FAEnB;AACP;;;AAGG;AACM,IAAA,cAAc,GAAG,KAAK;kGAAU;AACzC;;;AAGG;IACM,QAAQ,GAAG,KAAK,CAAmB,SAAS,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACvF;;;AAGG;IACM,QAAQ,GAAG,KAAK,CAAmB,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACnF;;;AAGG;IACM,MAAM,GAAG,KAAK,CAAmB,KAAK,8EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACjF;;;AAGG;AACM,IAAA,QAAQ,GAAG,KAAK;4FAAU;AACnC;;;AAGG;IACM,eAAe,GAAG,KAAK,CAAgH,UAAU;wFAAC;AAC3J;;;AAGG;AACM,IAAA,YAAY,GAAG,KAAK;gGAAU;AACvC;;;AAGG;IACM,gBAAgB,GAAG,KAAK,CAAmB,KAAK,wFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAC3F;;;AAGG;AACM,IAAA,OAAO,GAAG,KAAK;2FAAU;AAClC;;;AAGG;IACM,aAAa,GAAG,KAAK,CAAmB,IAAI,qFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACvF;;;AAGG;AACM,IAAA,WAAW,GAAG,KAAK;+FAAU;AACtC;;;AAGG;AACM,IAAA,WAAW,GAAG,KAAK;+FAAU;AACtC;;;AAGG;IACM,mBAAmB,GAAG,KAAK,CAAqB,OAAO;4FAAC;AACjE;;;AAGG;IACM,gBAAgB,GAAG,KAAK,CAAqB,OAAO;yFAAC;AAC9D;;;AAGG;AACM,IAAA,cAAc,GAAG,KAAK;kGAAqC;AACpE;;;AAGG;AACM,IAAA,eAAe,GAAG,KAAK;mGAAU;AAC1C;;;AAGG;AACM,IAAA,iBAAiB,GAAG,KAAK;qGAAU;AAC5C;;;AAGG;AACM,IAAA,kBAAkB,GAAG,KAAK;sGAAU;AAC7C;;;AAGG;AACM,IAAA,YAAY,GAAG,KAAK;gGAAU;AACvC;;;AAGG;IACM,KAAK,GAAG,KAAK,CAAmB,SAAS,6EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACpF;;;AAGG;IACM,OAAO,GAAG,KAAK,CAAQ,SAAU;gFAAC;IAEpC,QAAQ,GAAG,MAAM,CAAM,IAAI;iFAAC;AACnC;;;AAGG;AACM,IAAA,WAAW,GAAG,KAAK;+FAAU;AACtC;;;AAGG;IACM,SAAS,GAAG,KAAK,CAA6B,IAAI;kFAAC;AAC5D;;;;AAIG;IACM,OAAO,GAAG,KAAK,CAA+B,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAC9F;;;;AAIG;IACM,iBAAiB,GAAG,KAAK,CAAmB,IAAI,yFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAC3F;;;;AAIG;IACM,SAAS,GAAG,KAAK,CAAmB,KAAK,iFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACpF;;;AAGG;IACM,QAAQ,GAAG,KAAK,CAAmB,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACnF;;;AAGG;AACM,IAAA,YAAY,GAAG,KAAK;gGAAS;AAEtC;;AAEG;AACH,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;QACxB,OAAO,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE;IACjD,CAAC;oFAAC;AACF;;;;AAIG;IACH,KAAK,GAAG,KAAK,CAAC,SAAS,6EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACzD;;;;AAIG;IACM,QAAQ,GAAG,MAAM,EAAsB;AAChD;;;;AAIG;IACM,OAAO,GAAG,MAAM,EAAqB;AAC9C;;;;AAIG;IACM,UAAU,GAAG,MAAM,EAA2B;AACvD;;;;AAIG;IACM,QAAQ,GAAG,MAAM,EAAsB;AAChD;;;;AAIG;IACM,OAAO,GAAG,MAAM,EAAc;AACvC;;;;AAIG;IACM,MAAM,GAAG,MAAM,EAAc;AACtC;;;;AAIG;IACM,iBAAiB,GAAG,MAAM,EAA+B;AAClE;;;;AAIG;IACM,UAAU,GAAG,MAAM,EAAyB;AACrD;;;;AAIG;IACM,MAAM,GAAG,MAAM,EAAyB;IAExC,uBAAuB,GAAG,SAAS,CAAuB,cAAc;gGAAC;IAEzE,eAAe,GAAG,SAAS,CAAuB,QAAQ;wFAAC;IAE3D,0BAA0B,GAAG,SAAS,CAAuB,4BAA4B;mGAAC;IAE1F,2BAA2B,GAAG,SAAS,CAAuB,6BAA6B;oGAAC;IAE5F,QAAQ,GAAG,SAAS,CAAqB,UAAU;iFAAC;IAEpD,aAAa,GAAG,SAAS,CAAuB,MAAM;sFAAC;IAEvD,kBAAkB,GAAG,SAAS,CAAuB,WAAW;2FAAC;IAEjE,WAAW,GAAG,YAAY,CAAC,MAAM;oFAAC;IAElC,WAAW,GAAG,YAAY,CAAC,MAAM;oFAAC;AAE3C;;;;;AAKG;IACM,YAAY,GAAG,YAAY,CAA0C,MAAM,oFAAI,WAAW,EAAE,KAAK,EAAA,CAAG;AAE7G;;;;;AAKG;IACM,aAAa,GAAG,YAAY,CAA2C,OAAO,qFAAI,WAAW,EAAE,KAAK,EAAA,CAAG;AAEhH;;;;;AAKG;IACM,cAAc,GAAG,YAAY,CAA4C,QAAQ,sFAAI,WAAW,EAAE,KAAK,EAAA,CAAG;AAEnH;;;;;AAKG;IACM,cAAc,GAAG,YAAY,CAA4C,QAAQ,sFAAI,WAAW,EAAE,KAAK,EAAA,CAAG;AAEnH;;;;;AAKG;IACM,cAAc,GAAG,YAAY,CAA4C,QAAQ,sFAAI,WAAW,EAAE,KAAK,EAAA,CAAG;AAEnH;;;AAGG;IACM,mBAAmB,GAAG,YAAY,CAAoB,aAAa,2FAAI,WAAW,EAAE,KAAK,EAAA,CAAG;AAErG;;;AAGG;IACM,aAAa,GAAG,YAAY,CAAoB,OAAO,qFAAI,WAAW,EAAE,KAAK,EAAA,CAAG;AAEzF;;;AAGG;IACM,kBAAkB,GAAG,YAAY,CAAoB,YAAY,0FAAI,WAAW,EAAE,KAAK,EAAA,CAAG;AAEnG;;;;;AAKG;IACM,iBAAiB,GAAG,YAAY,CAA+C,WAAW,yFAAI,WAAW,EAAE,KAAK,EAAA,CAAG;AAE5H;;;;;AAKG;IACM,iBAAiB,GAAG,YAAY,CAA+C,WAAW,yFAAI,WAAW,EAAE,KAAK,EAAA,CAAG;AAE5H;;;;;AAKG;IACM,cAAc,GAAG,YAAY,CAA4C,QAAQ,sFAAI,WAAW,EAAE,KAAK,EAAA,CAAG;IAE1G,SAAS,GAAG,eAAe,CAAC,aAAa;kFAAC;AAEnD,IAAA,aAAa;AAEb,IAAA,cAAc;AAEd,IAAA,eAAe;AAEf,IAAA,eAAe;AAEf,IAAA,eAAe;AAEf,IAAA,oBAAoB;AAEpB,IAAA,cAAc;AAEd,IAAA,mBAAmB;AAEnB,IAAA,kBAAkB;AAElB,IAAA,kBAAkB;AAElB,IAAA,eAAe;IAER,YAAY,GAAG,MAAM,CAA4B,IAAI;qFAAC;AAEtD,IAAA,gBAAgB;AAEvB,IAAA,aAAa;AAEN,IAAA,QAAQ;AAER,IAAA,KAAK;AAEL,IAAA,aAAa;AAEb,IAAA,KAAK;AAEL,IAAA,mBAAmB;AAE1B,IAAA,uBAAuB;AAEvB,IAAA,OAAO;IAEP,gBAAgB,GAAW,GAAG;AAE9B,IAAA,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC;AAEtC,IAAA,IAAI,eAAe,GAAA;QACf,OAAO,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC,GAAG,CAAA,EAAG,IAAI,CAAC,GAAG,EAAE,CAAA,CAAA,EAAI,IAAI,CAAC,kBAAkB,EAAE,CAAA,CAAE,GAAG,IAAI;IACjG;AAEA,IAAA,IAAI,uBAAuB,GAAA;AACvB,QAAA,OAAO,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,sBAAsB;IACnJ;AAEA,IAAA,IAAI,iBAAiB,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,IAAI,EAAE;IAC9E;AAEA,IAAA,IAAI,iBAAiB,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,IAAI,EAAE;IAC9E;AAEA,IAAA,IAAI,sBAAsB,GAAA;QACtB,OAAO,IAAI,CAAC,kBAAkB,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,kBAAkB,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,kBAAkB,IAAI,EAAE;IACtI;AAEA,IAAA,IAAI,oBAAoB,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,IAAI,EAAE;IACpF;AAEA,IAAA,IAAI,yBAAyB,GAAA;AACzB,QAAA,OAAO,IAAI,CAAC,qBAAqB,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,qBAAqB,IAAI,EAAE;IAC9F;AAEA,IAAA,IAAI,mBAAmB,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,yBAAyB;IACpK;AAEA,IAAA,IAAI,WAAW,GAAA;QACX,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;IACvF;AAEA,IAAA,IAAI,uBAAuB,GAAA;AACvB,QAAA,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE;IAChC;AAEA,IAAA,IAAI,YAAY,GAAA;QACZ,OAAO,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrF;AAEA,IAAA,IAAI,kBAAkB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,WAAW,GAAG,aAAa,CAAC,GAAG,SAAS;IACpI;AAEA,IAAA,WAAW;AAEX,IAAA,aAAa;AAEb,IAAA,eAAe,GAAG,MAAM,CAAS,CAAC,CAAC;wFAAC;AAEpC,IAAA,kBAAkB,GAAG,MAAM,CAAS,CAAC,CAAC;2FAAC;IAEvC,UAAU,GAAG,MAAM,CAAU,KAAK;mFAAC;AAEnC,IAAA,cAAc,CAAC,KAAiB,EAAA;AAC5B,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;IAC1B;AAEA,IAAA,cAAc,GAAG,QAAQ,CAAC,MAAK;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE;AACxF,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,OAAO;IAClK,CAAC;uFAAC;AAEF,IAAA,WAAA,CAAmB,aAA4B,EAAA;AAC3C,QAAA,KAAK,EAAE;QADQ,IAAA,CAAA,aAAa,GAAb,aAAa;QAE5B,MAAM,CAAC,MAAK;YACR,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AAC7C,QAAA,CAAC,CAAC;QACF,MAAM,CAAC,MAAK;YACR,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;AACrC,QAAA,CAAC,CAAC;IACN;IAEA,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,MAAK;AAC1E,YAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;AAC1B,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,eAAe,EAAE;AAEtB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACjB,IAAI,CAAC,aAAa,GAAG;gBACjB,MAAM,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;AAC7C,gBAAA,KAAK,EAAE,MAAM,IAAI,CAAC,WAAW;aAChC;QACL;IACJ;IAEA,kBAAkB,GAAA;QACd,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AAC9B,YAAA,QAAQ,IAAI,CAAC,OAAO,EAAE;AAClB,gBAAA,KAAK,MAAM;AACP,oBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ;oBAClC;AAEJ,gBAAA,KAAK,OAAO;AACR,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ;oBACnC;AAEJ,gBAAA,KAAK,QAAQ;AACT,oBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ;oBACpC;AAEJ,gBAAA,KAAK,QAAQ;AACT,oBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ;oBACpC;AAEJ,gBAAA,KAAK,QAAQ;AACT,oBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ;oBACpC;AAEJ,gBAAA,KAAK,OAAO;AACR,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ;oBACnC;AAEJ,gBAAA,KAAK,aAAa;AACd,oBAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,QAAQ;oBACzC;AAEJ,gBAAA,KAAK,YAAY;AACb,oBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,QAAQ;oBACxC;AAEJ,gBAAA,KAAK,WAAW;AACZ,oBAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,QAAQ;oBACvC;AAEJ,gBAAA,KAAK,WAAW;AACZ,oBAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,QAAQ;oBACvC;AAEJ,gBAAA,KAAK,QAAQ;AACT,oBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ;oBACpC;AAEJ,gBAAA;AACI,oBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ;oBAClC;;AAEZ,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,WAAW,CAAC,OAAO,EAAA;AACf,QAAA,OAAO,CAAC,OAAO,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,KAAI;AACpD,YAAA,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YAExD,MAAM,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC;AAE/D,YAAA,mBAAmB,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAEzE,YAAA,OAAO,MAAM;QACjB,CAAC,EAAE,EAAE,CAAC;IACV;IAEA,eAAe,GAAA;QACX,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;AACjG,YAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,2BAA2B,EAAE;AAC7D,YAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,kBAAkB,CAAC;AAC/C,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAC/E;IACJ;AACA;;;AAGG;IACI,WAAW,CAAC,KAAK,EAAE,KAAM,EAAA;AAC5B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;AAEzB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IACnE;AAEA,IAAA,YAAY,CAAC,MAAM,EAAA;AACf,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IACjH;IAEA,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,EAAA;AACpC,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACtE;QACJ;QAEA,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QAC/E,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC;AACvG,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;AAC1B,QAAA,KAAK,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC;IACtD;IAEA,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAA;QAChC,IAAI,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QACtC,IAAI,KAAK,GAAU,EAAE;AACrB,QAAA,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,KAAK,GAAG,IAAI,CAAC,gBAAgB,EAAE;QAExE,IAAI,aAAa,EAAE;YACf,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO;YAE5C,IAAI,QAAQ,EAAE;gBACV,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAC/E;iBAAO;AACH,gBAAA,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE;AAC9C,gBAAA,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAC3D;QACJ;aAAO;AACH,YAAA,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC9G;AAEA,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC;IAClC;IAEA,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAA;QAC9B,IAAI,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QACtC,IAAI,YAAY,GAAG,KAAK;QACxB,IAAI,KAAK,GAAG,IAAI;AAChB,QAAA,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,KAAK,GAAG,IAAI,CAAC,gBAAgB,EAAE;QAExE,IAAI,aAAa,EAAE;YACf,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO;YAE5C,IAAI,QAAQ,EAAE;gBACV,IAAI,OAAO,EAAE;oBACT,KAAK,GAAG,IAAI;oBACZ,YAAY,GAAG,IAAI;gBACvB;YACJ;iBAAO;AACH,gBAAA,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;gBACnC,YAAY,GAAG,IAAI;YACvB;QACJ;aAAO;AACH,YAAA,KAAK,GAAG,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;YACrD,YAAY,GAAG,IAAI;QACvB;QAEA,IAAI,YAAY,EAAE;AACd,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC;QAClC;IACJ;IAEA,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,EAAA;AAC3C,QAAA,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,GAAG,IAAI,CAAC,8BAA8B,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACxE,QAAA,GAAG,KAAK,CAAC,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC;QAEhE,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;YAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC;AACrC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc;AAC5B,iBAAA,KAAK,CAAC,UAAU,EAAE,QAAQ,GAAG,CAAC;AAC9B,iBAAA,MAAM,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;AAC7C,iBAAA,GAAG,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAEjD,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC;QAClC;IACJ;AAEA,IAAA,WAAW,CAAC,KAAK,EAAA;QACb,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACrC;QACJ;QACA,KAAK,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,aAAa,CAAC;AAEpD,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;AAC3B,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;AACxB,gBAAA,aAAa,EAAE,KAAK;AACpB,gBAAA,OAAO,EAAE,CAAC,IAAI,CAAC,WAAW;AAC7B,aAAA,CAAC;QACN;aAAO;AACH,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW;AAC1B,kBAAE;AACF,kBAAE,IAAI,CAAC,cAAc;AACd,qBAAA,MAAM,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;AAC7C,qBAAA,GAAG,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAEvD,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC;AAC9B,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QACnE;IACJ;IAEA,WAAW,GAAA;QACP,OAAO,IAAI,CAAC,SAAS,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC9N;IAEA,gBAAgB,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;YAClB;QACJ;AAEA,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;IAC7B;IAEA,iBAAiB,CAAC,KAAiB,EAAE,KAAa,EAAA;AAC9C,QAAA,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,CAAC;IAC/C;IAEA,kBAAkB,CAAC,KAAiB,EAAE,KAAa,EAAA;QAC/C,IAAI,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE;AACrC,YAAA,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,CAAC;QAC/C;IACJ;IAEA,mBAAmB,CAAC,KAAiB,EAAE,MAAW,EAAA;AAC9C,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACtE;QACJ;AAEA,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACjB,YAAA,aAAa,EAAE,KAAK;AACpB,YAAA,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,IAAI,CAAC;AACf,SAAA,CAAC;IACN;AAEA,IAAA,kBAAkB,CAAC,KAAiB,EAAA;QAChC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,aAAa,CAAC;AAC1C,QAAA,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,IAAI,CAAC,EAAE,EAAE,aAAa,EAAE,wCAAwC,CAAC;AACnH,QAAA,IAAI,CAAC,0BAA0B,EAAE,EAAE,aAAa,KAAK,IAAI,CAAC,0BAA0B,EAAG,CAAC,aAAa,CAAC,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;AAC5J,QAAA,IAAI,CAAC,2BAA2B,EAAE,EAAE,aAAa,KAAK,IAAI,CAAC,2BAA2B,EAAG,CAAC,aAAa,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IAC1H;AAEA,IAAA,iBAAiB,CAAC,KAAiB,EAAA;AAC/B,QAAA,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa;QAEzC,IAAI,aAAa,KAAK,IAAI,CAAC,aAAa,EAAE,EAAE,aAAa,EAAE;AACvD,YAAA,MAAM,gBAAgB,GAAQ,wBAAwB,CAAC,IAAI,CAAC,EAAE,EAAE,aAAa,EAAE,wCAAwC,CAAC;YAExH,KAAK,CAAC,gBAAgB,CAAC;AACvB,YAAA,IAAI,CAAC,2BAA2B,EAAE,EAAE,aAAa,KAAK,IAAI,CAAC,2BAA2B,EAAG,CAAC,aAAa,CAAC,QAAQ,GAAG,SAAS,CAAC;QACjI;aAAO;YACH,KAAK,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,aAAa,CAAC;QAC5D;AACA,QAAA,IAAI,CAAC,0BAA0B,EAAE,EAAE,aAAa,KAAK,IAAI,CAAC,0BAA0B,EAAG,CAAC,aAAa,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IACxH;AAEA,IAAA,UAAU,CAAC,KAAiB,EAAA;AACxB,QAAA,MAAM,0BAA0B,GAAG,IAAI,CAAC,0BAA0B,EAAE;AACpE,QAAA,MAAM,2BAA2B,GAAG,IAAI,CAAC,2BAA2B,EAAE;AACtE,QAAA,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,0BAA0B,IAAI,2BAA2B,EAAE;AACnH,YAAA,2BAA2B,CAAC,aAAa,CAAC,QAAQ,GAAG,0BAA0B,CAAC,aAAa,CAAC,QAAQ,GAAG,SAAS;AAClH,YAAA,IAAI,CAAC,gBAAgB,GAAG,GAAG;QAC/B;IACJ;AAEA,IAAA,WAAW,CAAC,KAAiB,EAAA;AACzB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,2BAA2B,EAAE,GAAG,IAAI,CAAC,uBAAuB,EAAE;AACtL,QAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,kBAAkB,CAAC;AAC/C,QAAA,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC;AACrC,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAExB,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;IAChC;AAEA,IAAA,UAAU,CAAC,KAAiB,EAAA;AACxB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;QACpB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE;AACrB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;IAC3B;AAEA,IAAA,uBAAuB,CAAC,KAAK,EAAA;AACzB,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;YAClB,KAAK,CAAC,cAAc,EAAE;YAEtB;QACJ;AAEA,QAAA,QAAQ,KAAK,CAAC,IAAI;AACd,YAAA,KAAK,OAAO;AACR,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;gBACvB;AACJ,YAAA,KAAK,OAAO;AACR,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;gBACvB;AACJ,YAAA,KAAK,KAAK;AACN,gBAAA,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC;gBACtC;AACJ,YAAA;gBACI;;IAEZ;AAEA,IAAA,0BAA0B,CAAC,KAAK,EAAA;QAC5B,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,aAAa,CAAC;QAC1C,KAAK,CAAC,cAAc,EAAE;IAC1B;AAEA,IAAA,cAAc,CAAC,KAAY,EAAA;QACvB,IAAI,KAAK,GAAY,KAAK,CAAC,MAA2B,CAAC,KAAK,EAAE,IAAI,EAAE;AACpE,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;AAEzE,QAAA,CAAC,IAAI,CAAC,uBAAuB,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;IACtE;AAEA,IAAA,YAAY,CAAC,KAAiB,EAAA;QAC1B,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChC;AAEA,IAAA,aAAa,CAAC,KAAoB,EAAA;QAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO;AAE9C,QAAA,QAAQ,KAAK,CAAC,IAAI;AACd,YAAA,KAAK,WAAW;AACZ,gBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;gBAC1B;AAEJ,YAAA,KAAK,SAAS;AACV,gBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;gBACxB;AAEJ,YAAA,KAAK,MAAM;AACP,gBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;gBACrB;AAEJ,YAAA,KAAK,KAAK;AACN,gBAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACpB;AAEJ,YAAA,KAAK,UAAU;AACX,gBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;gBACzB;AAEJ,YAAA,KAAK,QAAQ;AACT,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;gBACvB;AAEJ,YAAA,KAAK,OAAO;AACZ,YAAA,KAAK,OAAO;AACZ,YAAA,KAAK,aAAa;AACd,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;gBACtB;AAEJ,YAAA,KAAK,KAAK;;gBAEN;AAEJ,YAAA,KAAK,WAAW;AAChB,YAAA,KAAK,YAAY;gBACb,IAAI,CAAC,UAAU,EAAE;gBACjB;AAEJ,YAAA;AACI,gBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,EAAE;AACrD,oBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc;AAC5B,yBAAA,MAAM,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;AAC7C,yBAAA,GAAG,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAEjD,oBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC;oBAE9B,KAAK,CAAC,cAAc,EAAE;oBACtB;gBACJ;gBAEA,IAAI,CAAC,OAAO,IAAI,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oBAC7C,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;oBACpC,KAAK,CAAC,cAAc,EAAE;gBAC1B;gBAEA;;IAEZ;AAEA,IAAA,eAAe,CAAC,KAAoB,EAAA;AAChC,QAAA,QAAQ,KAAK,CAAC,IAAI;AACd,YAAA,KAAK,WAAW;AACZ,gBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;gBAC1B;AAEJ,YAAA,KAAK,SAAS;AACV,gBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;gBACxB;AAEJ,YAAA,KAAK,WAAW;AAChB,YAAA,KAAK,YAAY;AACb,gBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC;gBAChC;AAEJ,YAAA,KAAK,MAAM;AACP,gBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC;gBAC3B;AAEJ,YAAA,KAAK,KAAK;AACN,gBAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;gBAC1B;AAEJ,YAAA,KAAK,OAAO;AACR,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;gBACtB;AAEJ,YAAA,KAAK,WAAW;AAChB,YAAA,KAAK,YAAY;gBACb,IAAI,CAAC,UAAU,EAAE;gBACjB;AAEJ,YAAA;gBACI;;IAEZ;AAEA,IAAA,cAAc,CAAC,KAAoB,EAAA;AAC/B,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,GAAG,IAAI,CAAC,2BAA2B,EAAE;QAE/I,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,QAAQ,EAAE;AACnC,YAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,WAAW,CAAC;QACxE;AAEA,QAAA,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,WAAW,CAAC;QACjD,KAAK,CAAC,cAAc,EAAE;IAC1B;AAEA,IAAA,YAAY,CAAC,KAAoB,EAAA;AAC7B,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,GAAG,IAAI,CAAC,0BAA0B,EAAE;QAE9I,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,QAAQ,EAAE;AACnC,YAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;QACxE;AAEA,QAAA,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,WAAW,CAAC;QACjD,KAAK,CAAC,cAAc,EAAE;IAC1B;AAEA,IAAA,cAAc,CAAC,KAAoB,EAAE,kBAAkB,GAAG,KAAK,EAAA;QAC3D,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACzD;AAEA,IAAA,SAAS,CAAC,KAAoB,EAAE,kBAAA,GAA8B,KAAK,EAAA;QAC/D,IAAI,kBAAkB,EAAE;YACnB,KAAK,CAAC,aAAkC,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;YACjE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACnC;aAAO;YACH,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO;AAC5C,YAAA,IAAI,WAAW,GAAG,IAAI,CAAC,oBAAoB,EAAE;YAE7C,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,QAAQ,IAAI,OAAO,EAAE;AAC9C,gBAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;YACxE;AAEA,YAAA,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,WAAW,CAAC;QACrD;QAEA,KAAK,CAAC,cAAc,EAAE;IAC1B;AAEA,IAAA,QAAQ,CAAC,KAAoB,EAAE,kBAAA,GAA8B,KAAK,EAAA;QAC9D,IAAI,kBAAkB,EAAE;AACpB,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,aAAiC;AACtD,YAAA,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM;AAE/B,YAAA,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC;YAClC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACnC;aAAO;YACH,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO;AAC5C,YAAA,IAAI,WAAW,GAAG,IAAI,CAAC,mBAAmB,EAAE;YAE5C,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,QAAQ,IAAI,OAAO,EAAE;AAC9C,gBAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,WAAW,CAAC;YACxE;AAEA,YAAA,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,WAAW,CAAC;QACrD;QAEA,KAAK,CAAC,cAAc,EAAE;IAC1B;AAEA,IAAA,aAAa,CAAC,KAAoB,EAAA;AAC9B,QAAA,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QACpB,KAAK,CAAC,cAAc,EAAE;IAC1B;AAEA,IAAA,WAAW,CAAC,KAAoB,EAAA;AAC5B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QACnD,KAAK,CAAC,cAAc,EAAE;IAC1B;AAEA,IAAA,UAAU,CAAC,KAAK,EAAA;QACZ,IAAI,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC,EAAE;AAClC,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,QAAQ;gBAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC;;AAC5F,gBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;QACrF;QAEA,KAAK,CAAC,cAAc,EAAE;IAC1B;AAEA,IAAA,UAAU,CAAC,KAAoB,EAAA;AAC3B,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;IAC1B;IAEA,UAAU,GAAA;AACN,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,EAAE;AACpD,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAChD;AAEA,IAAA,sBAAsB,CAAC,WAAW,EAAA;AAC9B,QAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,EAAE;AACtD,QAAA,OAAO,mBAAmB,GAAG,gBAAgB,CAAC,WAAW,EAAE,mBAAmB,CAAC,GAAG,WAAW,CAAC,KAAK;IACvG;AAEA,IAAA,mBAAmB,CAAC,WAAgB,EAAA;AAChC,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAChD,QAAA,OAAO,gBAAgB,GAAG,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,CAAC,GAAG,WAAW,IAAI,WAAW,CAAC,KAAK,KAAK,SAAS,GAAG,WAAW,CAAC,KAAK,GAAG,WAAW;IAChK;AAEA,IAAA,cAAc,CAAC,MAAM,EAAA;AACjB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;AACtC,QAAA,OAAO,WAAW,GAAG,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,MAAM,CAAC,KAAK,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM;IAClH;IAEA,cAAc,CAAC,KAAK,EAAE,eAAe,EAAA;QACjC,OAAO,IAAI,CAAC,uBAAuB,GAAG,KAAK,GAAG,eAAe,IAAI,eAAe,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;IACnH;AAEA,IAAA,cAAc,CAAC,MAAW,EAAA;AACtB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;AACtC,QAAA,OAAO,WAAW,GAAG,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM;IACpJ;AAEA,IAAA,eAAe,CAAC,KAAa,EAAA;AACzB,QAAA,QACI,CAAC,IAAI,CAAC,gBAAgB;AAClB,cAAE,KAAK;gBACL,IAAI,CAAC,cAAc;AACd,qBAAA,KAAK,CAAC,CAAC,EAAE,KAAK;AACd,qBAAA,MAAM,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;AACtD,cAAE,KAAK,IAAI,CAAC;IAExB;AAEA,IAAA,YAAY,CAAC,MAAW,EAAE,WAAgB,EAAE,KAAa,EAAE,GAAW,EAAA;AAClE,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;AACjB,YAAA,OAAO,EAAE;AACL,gBAAA,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;AACjC,gBAAA,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,KAAK,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC;AAC9E,gBAAA,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM;AACzC;AACJ,SAAA,CAAC;IACN;IAEA,iBAAiB,GAAA;AACb,QAAA,OAAO,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;IACxC;AAEA,IAAA,aAAa,CAAC,MAAM,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,gBAAgB,EAAE,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,KAAK;IACxE;IAEA,wBAAwB,CAAC,KAAK,EAAE,KAAK,EAAA;AACjC,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE,KAAK,KAAK,EAAE;AACrC,YAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC;YAClC,IAAI,CAAC,YAAY,EAAE;YAEnB,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;AAC1C,gBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,CAAC;YAC5D;QACJ;IACJ;IAEA,aAAa,CAAC,KAAK,EAAE,IAAI,EAAA;AACrB,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,IAAI,IAAI;AAElD,QAAA,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,OAAO,GAAG,KAAK;QAEnB,IAAI,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC,EAAE;AAClC,YAAA,WAAW,GAAG,IAAI,CAAC,cAAc;AAC5B,iBAAA,KAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC/B,iBAAA,SAAS,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACxD,WAAW;gBACP,WAAW,KAAK,CAAC;AACb,sBAAE,IAAI,CAAC,cAAc;AACd,yBAAA,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE;AAClC,yBAAA,SAAS,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;AACzD,sBAAE,WAAW,GAAG,IAAI,CAAC,kBAAkB,EAAE;QACrD;aAAO;YACH,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC3F;AAEA,QAAA,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE;YACpB,OAAO,GAAG,IAAI;QAClB;AAEA,QAAA,IAAI,WAAW,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC,EAAE;AACxD,YAAA,WAAW,GAAG,IAAI,CAAC,2BAA2B,EAAE;QACpD;AAEA,QAAA,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE;AACpB,YAAA,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,WAAW,CAAC;QACrD;AAEA,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;QACpC;AAEA,QAAA,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,MAAK;AACjC,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE;AACrB,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI;QAC7B,CAAC,EAAE,GAAG,CAAC;AAEP,QAAA,OAAO,OAAO;IAClB;AAEA,IAAA,eAAe,CAAC,MAAM,EAAA;AAClB,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IACjL;AAEA,IAAA,YAAY,CAAC,KAAK,GAAG,CAAC,CAAC,EAAA;QACnB,MAAM,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,GAAG,CAAA,EAAG,IAAI,CAAC,GAAG,EAAE,CAAA,CAAA,EAAI,KAAK,CAAA,CAAE,GAAG,IAAI,CAAC,eAAe;AACzE,QAAA,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,aAAa,EAAE,CAAA,OAAA,EAAU,EAAE,CAAA,EAAA,CAAI,CAAC;QAEjF,IAAI,OAAO,EAAE;AACT,YAAA,OAAO,CAAC,cAAc,IAAI,OAAO,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QAC7F;AAAO,aAAA,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE;YACtC,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,aAAa,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5G;IACJ;IAEA,oBAAoB,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAClF;IAEA,mBAAmB,GAAA;AACf,QAAA,OAAO,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACvF;IAEA,2BAA2B,GAAA;AACvB,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,4BAA4B,EAAE;AAEzD,QAAA,OAAO,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,oBAAoB,EAAE,GAAG,aAAa;IAC1E;IAEA,0BAA0B,GAAA;AACtB,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,2BAA2B,EAAE;AAExD,QAAA,OAAO,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE,GAAG,aAAa;IACzE;IAEA,2BAA2B,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,iBAAiB,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;IAC/H;AAEA,IAAA,mBAAmB,CAAC,KAAK,EAAA;QACrB,MAAM,kBAAkB,GACpB,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,GAAG;AACnC,cAAE,IAAI,CAAC,cAAc;AACd,iBAAA,KAAK,CAAC,KAAK,GAAG,CAAC;AACf,iBAAA,SAAS,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;cACrD,CAAC,CAAC;AAEZ,QAAA,OAAO,kBAAkB,GAAG,CAAC,CAAC,GAAG,kBAAkB,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK;IAC3E;AAEA,IAAA,2BAA2B,CAAC,KAAK,EAAA;AAC7B,QAAA,MAAM,kBAAkB,GACpB,IAAI,CAAC,iBAAiB,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,GAAG;AAC/D,cAAE,IAAI,CAAC,cAAc;AACd,iBAAA,KAAK,CAAC,KAAK,GAAG,CAAC;AACf,iBAAA,SAAS,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC;cAC7D,CAAC,CAAC;AAEZ,QAAA,OAAO,kBAAkB,GAAG,CAAC,CAAC,GAAG,kBAAkB,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;IACxE;AAEA,IAAA,2BAA2B,CAAC,KAAK,EAAA;QAC7B,MAAM,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,EAAE,IAAI,KAAK,GAAG,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AAE5K,QAAA,OAAO,kBAAkB,GAAG,CAAC,CAAC,GAAG,kBAAkB,GAAG,CAAC,CAAC;IAC5D;IAEA,4BAA4B,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1H;AAEA,IAAA,mBAAmB,CAAC,KAAK,EAAA;AACrB,QAAA,MAAM,kBAAkB,GAAG,KAAK,GAAG,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AAExI,QAAA,OAAO,kBAAkB,GAAG,CAAC,CAAC,GAAG,kBAAkB,GAAG,KAAK;IAC/D;IAEA,uBAAuB,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAChB,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACjB,gBAAA,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE;oBAChE,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC;AACtC,oBAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;oBAE/J,IAAI,kBAAkB,GAAG,CAAC,CAAC;AAAE,wBAAA,OAAO,kBAAkB;gBAC1D;YACJ;iBAAO;AACH,gBAAA,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;YAC1F;QACJ;QAEA,OAAO,CAAC,CAAC;IACb;AAEA,IAAA,8BAA8B,CAAC,KAAK,EAAE,YAAY,GAAG,KAAK,EAAA;AACtD,QAAA,IAAI,kBAAkB,GAAG,CAAC,CAAC;AAE3B,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;YAC1B,IAAI,YAAY,EAAE;AACd,gBAAA,kBAAkB,GAAG,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC;AAC5D,gBAAA,kBAAkB,GAAG,kBAAkB,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,GAAG,kBAAkB;YACjH;iBAAO;AACH,gBAAA,kBAAkB,GAAG,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC;AAC5D,gBAAA,kBAAkB,GAAG,kBAAkB,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,GAAG,kBAAkB;YACjH;QACJ;AAEA,QAAA,OAAO,kBAAkB,GAAG,CAAC,CAAC,GAAG,kBAAkB,GAAG,KAAK;IAC/D;IAEA,WAAW,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE;IACrD;AAEA,IAAA,qBAAqB,CAAC,MAAM,EAAA;AACxB,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;IAChE;AAEA,IAAA,gBAAgB,CAAC,MAAW,EAAA;AACxB,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE;AAC5C,QAAA,IAAI,UAAU,CAAC,cAAc,CAAC,EAAE;AAC5B,YAAA,OAAO,cAAc,CAAC,MAAM,CAAC;QACjC;AACA,QAAA,OAAO,cAAc,GAAG,gBAAgB,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,KAAK;IAC5E;IAEA,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAA;AACnB,QAAA,OAAO,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;IAC3D;AAEA,IAAA,UAAU,CAAC,MAAM,EAAA;QACb,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;QAE/C,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;;YACnG,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,WAAW,CAAC;IAC7D;AAEA,IAAA,aAAa,CAAC,MAAM,EAAA;AAChB,QAAA,OAAO,MAAM,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACnF;IAEA,OAAO,GAAA;AACH,QAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,MAAM;IACrE;IAEA,SAAS,GAAA;QACL,OAAO,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC;IAC/E;IAEA,WAAW,GAAA;AACP,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE;AAC9C,QAAA,IAAI,eAAe,IAAI,eAAe,CAAC,aAAa,EAAE;AAClD,YAAA,eAAe,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE;QAC5C;AAEA,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;IAC/B;IAEA,aAAa,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACpE;IAEA,YAAY,GAAA;AACR,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,oBAAoB,EAAE,OAAO,CAAC;IACrE;AAEA,IAAA,IAAI,CAAC,KAA4B,EAAA;AAC7B,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;QAC1B,IAAI,KAAK,EAAE;;AAEP,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,iBAAiB,KAAK,KAAK,CAAC,SAAS,EAAE;gBAChE,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC3C,eAAe,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC;AACxE,gBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC;gBACjC,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC;;AAGxD,gBAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;oBACnB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;oBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACzC;;AAGA,gBAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;YAC1B;;AAGA,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;QAC3B;IACJ;AAEA,IAAA,IAAI,cAAc,GAAA;QACd,OAAO,IAAI,CAAC,EAAE,CAAC;AACX,YAAA,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;AACvB,YAAA,QAAQ,EAAE,IAAI,CAAC,SAAS;AAC3B,SAAA,CAAC;IACN;AAEA;;;;;AAKG;IACH,iBAAiB,CAAC,KAAU,EAAE,aAAmC,EAAA;AAC7D,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;IAC1B;IAEA,SAAS,GAAA;AACL,QAAA,IAAI,IAAI,CAAC,uBAAuB,EAAE;AAC9B,YAAA,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE;QAC9C;IACJ;uGA93CS,OAAO,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAP,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,OAAO,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,qBAAA,EAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,qBAAA,EAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,OAAA,EAAA,8BAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,SAAA,EAtBL;YACP,sBAAsB;YACtB,YAAY;AACZ,YAAA;AACI,gBAAA,OAAO,EAAE,eAAe;AACxB,gBAAA,QAAQ,EAAE;AACN,oBAAA,MAAM,EAAE;AACX;AACJ,aAAA;AACD,YAAA,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,OAAO,EAAE;AACnD,YAAA,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,OAAO;AACnD,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAyWmC,MAAM,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAEN,MAAM,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,SAAA,EAoFL,aAAa,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,yBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,4BAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,4BAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,6BAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,6BAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC/ftD,whZAwRA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDrOc,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,MAAM,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,QAAQ,sfAAE,SAAS,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,UAAU,EAAA,QAAA,EAAA,0BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAY,SAAS,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,SAAS,EAAA,QAAA,EAAA,wCAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,cAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,SAAS,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,SAAS,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,cAAc,ohCAAE,UAAU,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAwBnK,OAAO,EAAA,UAAA,EAAA,CAAA;kBA3BnB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kCAAkC,EAAA,UAAA,EAChC,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,CAAC,EAAA,SAAA,EAElK;wBACP,sBAAsB;wBACtB,YAAY;AACZ,wBAAA;AACI,4BAAA,OAAO,EAAE,eAAe;AACxB,4BAAA,QAAQ,EAAE;AACN,gCAAA,MAAM,EAAE;AACX;AACJ,yBAAA;AACD,wBAAA,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,SAAS,EAAE;AACnD,wBAAA,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,SAAS;AACnD,qBAAA,EAAA,eAAA,EACgB,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,IAAA,EAC/B;AACF,wBAAA,WAAW,EAAE,OAAO;AACpB,wBAAA,YAAY,EAAE,wBAAwB;AACtC,wBAAA,SAAS,EAAE,8BAA8B;AACzC,wBAAA,eAAe,EAAE;qBACpB,EAAA,cAAA,EACe,CAAC,IAAI,CAAC,EAAA,QAAA,EAAA,whZAAA,EAAA;8pLAkV6C,cAAc,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAEtB,QAAQ,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,0BAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAEG,4BAA4B,qFAE3B,6BAA6B,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAElD,UAAU,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAEH,MAAM,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAED,WAAW,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAErC,MAAM,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAEN,MAAM,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAQoC,MAAM,OAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAQ5B,OAAO,EAAA,EAAA,GAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAQ7B,QAAQ,EAAA,EAAA,GAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAQhC,QAAQ,EAAA,EAAA,GAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAQhC,QAAQ,EAAA,EAAA,GAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAMnD,aAAa,OAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAM3C,OAAO,EAAA,EAAA,GAAE,EAAE,WAAW,EAAE,KAAK,EAAE,6EAM1B,YAAY,EAAA,EAAA,GAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAQV,WAAW,EAAA,EAAA,GAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAQnC,WAAW,EAAA,EAAA,GAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAQzC,QAAQ,EAAA,EAAA,GAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAE7E,aAAa,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;MAi9BzC,aAAa,CAAA;uGAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAb,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,YAr4Cb,OAAO,EAk4CG,YAAY,CAAA,EAAA,OAAA,EAAA,CAl4CtB,OAAO,EAm4CG,YAAY,CAAA,EAAA,CAAA;AAEtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,EAAA,OAAA,EAAA,CAHZ,OAAO,EAAE,YAAY,EACZ,YAAY,CAAA,EAAA,CAAA;;2FAEtB,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC;AAChC,oBAAA,OAAO,EAAE,CAAC,OAAO,EAAE,YAAY;AAClC,iBAAA;;;AE/8CD;;AAEG;;"}
|
|
1
|
+
{"version":3,"file":"gravionlabs-helix-core-listbox.mjs","names":[],"sources":["../../../projects/core/listbox/style/listbox.css.ts","../../../projects/core/listbox/style/listboxstyle.ts","../../../projects/core/listbox/listbox.ts","../../../projects/core/listbox/listbox.html"],"sourcesContent":["export const style = /*css*/ `\n .h-listbox {\n display: block;\n background: dt('listbox.background');\n color: dt('listbox.color');\n border: 1px solid dt('listbox.border.color');\n border-radius: dt('listbox.border.radius');\n transition:\n background dt('listbox.transition.duration'),\n color dt('listbox.transition.duration'),\n border-color dt('listbox.transition.duration'),\n box-shadow dt('listbox.transition.duration'),\n outline-color dt('listbox.transition.duration');\n outline-color: transparent;\n box-shadow: dt('listbox.shadow');\n }\n\n .h-listbox.h-disabled {\n opacity: 1;\n background: dt('listbox.disabled.background');\n color: dt('listbox.disabled.color');\n }\n\n .h-listbox.h-disabled .h-listbox-option {\n color: dt('listbox.disabled.color');\n }\n\n .h-listbox.h-invalid {\n border-color: dt('listbox.invalid.border.color');\n }\n\n .h-listbox-header {\n padding: dt('listbox.list.header.padding');\n }\n\n .h-listbox-filter {\n width: 100%;\n }\n\n .h-listbox-list-container {\n overflow: auto;\n }\n\n .h-listbox-list {\n list-style-type: none;\n margin: 0;\n padding: dt('listbox.list.padding');\n outline: 0 none;\n display: flex;\n flex-direction: column;\n gap: dt('listbox.list.gap');\n }\n\n .h-listbox-option {\n display: flex;\n align-items: center;\n cursor: pointer;\n position: relative;\n overflow: hidden;\n padding: dt('listbox.option.padding');\n border: 0 none;\n border-radius: dt('listbox.option.border.radius');\n color: dt('listbox.option.color');\n transition:\n background dt('listbox.transition.duration'),\n color dt('listbox.transition.duration'),\n border-color dt('listbox.transition.duration'),\n box-shadow dt('listbox.transition.duration'),\n outline-color dt('listbox.transition.duration');\n }\n\n .h-listbox-striped li:nth-child(even of .h-listbox-option) {\n background: dt('listbox.option.striped.background');\n }\n\n .h-listbox .h-listbox-list .h-listbox-option.h-listbox-option-selected {\n background: dt('listbox.option.selected.background');\n color: dt('listbox.option.selected.color');\n }\n\n .h-listbox:not(.h-disabled) .h-listbox-option.h-listbox-option-selected.h-focus {\n background: dt('listbox.option.selected.focus.background');\n color: dt('listbox.option.selected.focus.color');\n }\n\n .h-listbox:not(.h-disabled) .h-listbox-option:not(.h-listbox-option-selected):not(.h-disabled).h-focus {\n background: dt('listbox.option.focus.background');\n color: dt('listbox.option.focus.color');\n }\n\n .h-listbox:not(.h-disabled) .h-listbox-option:not(.h-listbox-option-selected):not(.h-disabled):hover {\n background: dt('listbox.option.focus.background');\n color: dt('listbox.option.focus.color');\n }\n\n .h-listbox-option-blank-icon {\n flex-shrink: 0;\n }\n\n .h-listbox-option-check-icon {\n position: relative;\n flex-shrink: 0;\n margin-inline-start: dt('listbox.checkmark.gutter.start');\n margin-inline-end: dt('listbox.checkmark.gutter.end');\n color: dt('listbox.checkmark.color');\n }\n\n .h-listbox-option-group {\n margin: 0;\n padding: dt('listbox.option.group.padding');\n color: dt('listbox.option.group.color');\n background: dt('listbox.option.group.background');\n font-weight: dt('listbox.option.group.font.weight');\n }\n\n .h-listbox-empty-message {\n padding: dt('listbox.empty.message.padding');\n }\n\n .h-listbox-fluid {\n width: 100%;\n }\n`;\n","import { Injectable } from '@angular/core';\nimport { style as listbox_style } from './listbox.css';\nimport { BaseStyle } from '@gravionlabs/helix-core/base';\n\nconst style = /*css*/ `\n ${listbox_style}\n\n /* For Helix */\n .h-listbox.ng-invalid.ng-dirty {\n border-color: dt('listbox.invalid.border.color');\n }\n\n .h-listbox-header {\n display: flex;\n align-items: center;\n }\n\n .h-listbox-header > .h-iconfield {\n flex-grow: 1;\n }\n\n .h-listbox-list-container {\n height: 100%;\n }\n\n /* CDK Drag & Drop styles */\n .h-listbox-option.cdk-drag-preview {\n background: dt('listbox.background');\n }\n\n .h-listbox-dragging .h-listbox-option:not(.cdk-drag-preview) {\n pointer-events: none !important;\n }\n\n .h-listbox-dragging .h-listbox-option:not(.cdk-drag-preview):hover {\n background: inherit !important;\n color: inherit !important;\n }\n\n .cdk-drag-placeholder {\n pointer-events: none;\n }\n`;\n\nconst classes = {\n root: ({ instance }) => [\n 'h-listbox h-component',\n {\n 'h-listbox-striped': instance.striped(),\n 'h-disabled': instance.$disabled(),\n 'h-invalid': instance.invalid(),\n 'h-listbox-fluid': instance.fluid(),\n 'h-listbox-dragging': instance.isDragging()\n }\n ],\n header: 'h-listbox-header',\n pcFilter: 'h-listbox-filter',\n listContainer: 'h-listbox-list-container',\n list: 'h-listbox-list',\n optionGroup: 'h-listbox-option-group',\n option: ({ instance, option, i, scrollerOptions }) => [\n 'h-listbox-option',\n {\n 'h-listbox-option-selected': instance.isSelected(option) && instance.highlightOnSelect(),\n 'h-focus': instance.focusedOptionIndex() === instance.getOptionIndex(i, scrollerOptions),\n 'h-disabled': instance.isOptionDisabled(option)\n }\n ],\n optionCheckIcon: 'h-listbox-option-check-icon',\n optionBlankIcon: 'h-listbox-option-blank-icon',\n emptyMessage: 'h-listbox-empty-message'\n};\n\n@Injectable()\nexport class ListBoxStyle extends BaseStyle {\n name = 'listbox';\n\n style = style;\n\n classes = classes;\n}\n\n/**\n *\n * ListBox is used to select one or more values from a list of items.\n *\n * [Live Demo](https://www.primeng.org/listbox/)\n *\n * @module listboxstyle\n *\n */\nexport enum ListboxClasses {\n /**\n * Class name of the root element\n */\n root = 'h-listbox',\n /**\n * Class name of the header element\n */\n header = 'h-listbox-header',\n /**\n * Class name of the filter element\n */\n pcFilter = 'h-listbox-filter',\n /**\n * Class name of the list container element\n */\n listContainer = 'h-listbox-list-container',\n /**\n * Class name of the list element\n */\n list = 'h-listbox-list',\n /**\n * Class name of the option group element\n */\n optionGroup = 'h-listbox-option-group',\n /**\n * Class name of the option element\n */\n option = 'h-listbox-option',\n /**\n * Class name of the option check icon element\n */\n optionCheckIcon = 'h-listbox-option-check-icon',\n /**\n * Class name of the option blank icon element\n */\n optionBlankIcon = 'h-listbox-option-blank-icon',\n /**\n * Class name of the empty message element\n */\n emptyMessage = 'h-listbox-empty-message'\n}\n\nexport interface ListboxStyle extends BaseStyle {}\n","import { CDK_DRAG_CONFIG, CdkDragDrop, DragDropModule, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, InjectionToken, Input, NgModule, TemplateRef, ViewEncapsulation, booleanAttribute, computed, forwardRef, inject, input, numberAttribute, signal, output, viewChild, contentChild, contentChildren, effect } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { equals, findLastIndex, findSingle, focus, getFirstFocusableElement, isEmpty, isFunction, isNotEmpty, isPrintableCharacter, resolveFieldData, uuid } from '@gravionlabs/helix-core/uix/utils';\nimport { FilterService, Footer, Header, HelixTemplate, ScrollerOptions, SharedModule } from '@gravionlabs/helix-core/api';\nimport { PARENT_INSTANCE } from '@gravionlabs/helix-core/basecomponent';\nimport { BaseEditableHolder } from '@gravionlabs/helix-core/baseeditableholder';\nimport { Bind, BindModule } from '@gravionlabs/helix-core/bind';\nimport { Checkbox } from '@gravionlabs/helix-core/checkbox';\nimport { IconField } from '@gravionlabs/helix-core/iconfield';\nimport { BlankIcon, CheckIcon, SearchIcon } from '@gravionlabs/helix-core/icons';\nimport { InputIcon } from '@gravionlabs/helix-core/inputicon';\nimport { InputText } from '@gravionlabs/helix-core/inputtext';\nimport { Ripple } from '@gravionlabs/helix-core/ripple';\nimport { Scroller, ScrollerLazyLoadEvent } from '@gravionlabs/helix-core/scroller';\nimport { Nullable } from '@gravionlabs/helix-core/ts-helpers';\nimport {\n ListBoxPassThrough,\n ListboxChangeEvent,\n ListboxCheckIconTemplateContext,\n ListboxCheckmarkTemplateContext,\n ListboxClickEvent,\n ListboxDoubleClickEvent,\n ListboxFilterEvent,\n ListboxFilterOptions,\n ListboxFilterTemplateContext,\n ListboxFooterTemplateContext,\n ListboxGroupTemplateContext,\n ListboxHeaderTemplateContext,\n ListboxItemTemplateContext,\n ListboxLoaderTemplateContext,\n ListboxSelectAllChangeEvent\n} from '@gravionlabs/helix-core/types/listbox';\nimport { Subscription } from 'rxjs';\nimport { ListBoxStyle } from './style/listboxstyle';\n\nconst LISTBOX_INSTANCE = new InjectionToken<Listbox>('LISTBOX_INSTANCE');\n\nexport const LISTBOX_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => Listbox),\n multi: true\n};\n/**\n * ListBox is used to select one or more values from a list of items.\n * @group Components\n */\n@Component({\n selector: 'h-listbox, h-listBox, h-list-box',\n standalone: true,\n imports: [CommonModule, Ripple, Scroller, InputIcon, SearchIcon, Checkbox, CheckIcon, IconField, InputText, BlankIcon, FormsModule, SharedModule, DragDropModule, BindModule],\n templateUrl: './listbox.html',\n providers: [\n LISTBOX_VALUE_ACCESSOR,\n ListBoxStyle,\n {\n provide: CDK_DRAG_CONFIG,\n useValue: {\n zIndex: 1200\n }\n },\n { provide: LISTBOX_INSTANCE, useExisting: Listbox },\n { provide: PARENT_INSTANCE, useExisting: Listbox }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[attr.id]': '$id()',\n '(focusout)': 'onHostFocusOut($event)',\n '[class]': \"cn(cx('root'), styleClass())\",\n '[attr.data-h]': 'containerDataP'\n },\n hostDirectives: [Bind]\n})\nexport class Listbox extends BaseEditableHolder<ListBoxPassThrough> {\n componentName = 'Listbox';\n\n readonly hostName = input<any>('');\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n $pcListbox: Listbox | undefined = inject(LISTBOX_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n onAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n\n /**\n * Unique identifier of the component.\n * @group Props\n */\n readonly id = input<string>();\n\n private readonly autoId = uuid('pn_id_');\n\n readonly $id = computed(() => this.id() || this.autoId);\n /**\n * Text to display when the search is active. Defaults to global value in i18n translation configuration.\n * @group Props\n * @defaultValue '{0} results are available'\n */\n readonly searchMessage = input<string>();\n /**\n * Text to display when filtering does not return any results. Defaults to global value in i18n translation configuration.\n * @group Props\n * @defaultValue 'No selected item'\n */\n readonly emptySelectionMessage = input<string>();\n /**\n * Text to be displayed in hidden accessible field when options are selected. Defaults to global value in i18n translation configuration.\n * @group Props\n * @defaultValue '{0} items selected'\n */\n readonly selectionMessage = input<string>();\n /**\n * Whether to focus on the first visible or selected element when the overlay panel is shown.\n * @group Props\n */\n readonly autoOptionFocus = input<boolean | undefined, unknown>(true, { transform: booleanAttribute });\n /**\n * Defines a string that labels the input for accessibility.\n * @group Props\n */\n readonly ariaLabel = input<string>();\n /**\n * When enabled, the focused option is selected.\n * @group Props\n */\n readonly selectOnFocus = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n /**\n * Locale to use in searching. The default locale is the host environment's current locale.\n * @group Props\n */\n readonly searchLocale = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n /**\n * When enabled, the hovered option will be focused.\n * @group Props\n */\n readonly focusOnHover = input<boolean | undefined, unknown>(true, { transform: booleanAttribute });\n /**\n * Text to display when filtering.\n * @group Props\n */\n readonly filterMessage = input<string>();\n /**\n * Fields used when filtering the options, defaults to optionLabel.\n * @group Props\n */\n readonly filterFields = input<any[]>();\n /**\n * Defines if data is loaded and interacted with in lazy manner.\n * @group Props\n */\n readonly lazy = input<boolean, unknown>(false, { transform: booleanAttribute });\n /**\n * Whether the data should be loaded on demand during scroll.\n * @group Props\n */\n readonly virtualScroll = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n /**\n * Height of an item in the list for VirtualScrolling.\n * @group Props\n */\n readonly virtualScrollItemSize = input<number, unknown>(undefined, { transform: numberAttribute });\n /**\n * Whether to use the scroller feature. The properties of scroller component can be used like an object in it.\n * @group Props\n */\n readonly virtualScrollOptions = input<ScrollerOptions>();\n /**\n * Height of the viewport in pixels, a scrollbar is defined if height of list exceeds this value.\n * @group Props\n */\n readonly scrollHeight = input<string>('14rem');\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n readonly tabindex = input<number | undefined, unknown>(0, { transform: numberAttribute });\n /**\n * When specified, allows selecting multiple values.\n * @group Props\n */\n readonly multiple = input<boolean | undefined, unknown>(undefined, { transform: booleanAttribute });\n /**\n * Style class of the container.\n * @deprecated since v20.0.0, use `class` instead.\n * @group Props\n */\n readonly styleClass = input<string>();\n /**\n * Inline style of the list element.\n * @group Props\n */\n readonly listStyle = input<{\n [klass: string]: any;\n} | null>();\n /**\n * Style class of the list element.\n * @group Props\n */\n readonly listStyleClass = input<string>();\n /**\n * When present, it specifies that the element value cannot be changed.\n * @group Props\n */\n readonly readonly = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n /**\n * When specified, allows selecting items with checkboxes.\n * @group Props\n */\n readonly checkbox = input<boolean, unknown>(false, { transform: booleanAttribute });\n /**\n * When specified, displays a filter input at header.\n * @group Props\n */\n readonly filter = input<boolean, unknown>(false, { transform: booleanAttribute });\n /**\n * When filtering is enabled, filterBy decides which field or fields (comma separated) to search against.\n * @group Props\n */\n readonly filterBy = input<string>();\n /**\n * Defines how the items are filtered.\n * @group Props\n */\n readonly filterMatchMode = input<'contains' | 'startsWith' | 'endsWith' | 'equals' | 'notEquals' | 'in' | 'lt' | 'lte' | 'gt' | 'gte' | string>('contains');\n /**\n * Locale to use in filtering. The default locale is the host environment's current locale.\n * @group Props\n */\n readonly filterLocale = input<string>();\n /**\n * Defines how multiple items can be selected, when true metaKey needs to be pressed to select or unselect an item and when set to false selection of each item can be toggled individually. On touch enabled devices, metaKeySelection is turned off automatically.\n * @group Props\n */\n readonly metaKeySelection = input<boolean, unknown>(false, { transform: booleanAttribute });\n /**\n * A property to uniquely identify a value in options.\n * @group Props\n */\n readonly dataKey = input<string>();\n /**\n * Whether header checkbox is shown in multiple mode.\n * @group Props\n */\n readonly showToggleAll = input<boolean, unknown>(true, { transform: booleanAttribute });\n /**\n * Name of the label field of an option.\n * @group Props\n */\n readonly optionLabel = input<string>();\n /**\n * Name of the value field of an option.\n * @group Props\n */\n readonly optionValue = input<string>();\n /**\n * Name of the options field of an option group.\n * @group Props\n */\n readonly optionGroupChildren = input<string | undefined>('items');\n /**\n * Name of the label field of an option group.\n * @group Props\n */\n readonly optionGroupLabel = input<string | undefined>('label');\n /**\n * Name of the disabled field of an option or function to determine disabled state.\n * @group Props\n */\n readonly optionDisabled = input<string | ((item: any) => boolean)>();\n /**\n * Defines a string that labels the filter input.\n * @group Props\n */\n readonly ariaFilterLabel = input<string>();\n /**\n * Defines placeholder of the filter input.\n * @group Props\n */\n readonly filterPlaceHolder = input<string>();\n /**\n * Text to display when filtering does not return any results.\n * @group Props\n */\n readonly emptyFilterMessage = input<string>();\n /**\n * Text to display when there is no data. Defaults to global value in i18n translation configuration.\n * @group Props\n */\n readonly emptyMessage = input<string>();\n /**\n * Whether to display options as grouped when nested options are provided.\n * @group Props\n */\n readonly group = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n /**\n * An array of selectitems to display as the available options.\n * @group Props\n */\n readonly options = input<any[]>(undefined!);\n\n public _options = signal<any>(null);\n /**\n * When specified, filter displays with this value.\n * @group Props\n */\n readonly filterValue = input<string>();\n /**\n * Whether all data is selected.\n * @group Props\n */\n readonly selectAll = input<boolean | undefined | null>(null);\n /**\n * Whether to displays rows with alternating colors.\n * @group Props\n * @defaultValue false\n */\n readonly striped = input<boolean | undefined, unknown>(false, { transform: booleanAttribute });\n /**\n * Whether the selected option will be add highlight class.\n * @group Props\n * @defaultValue true\n */\n readonly highlightOnSelect = input<boolean, unknown>(true, { transform: booleanAttribute });\n /**\n * Whether the selected option will be shown with a check mark.\n * @group Props\n * @defaultValue false\n */\n readonly checkmark = input<boolean, unknown>(false, { transform: booleanAttribute });\n /**\n * Whether to enable dragdrop based reordering.\n * @group Props\n */\n readonly dragdrop = input<boolean, unknown>(false, { transform: booleanAttribute });\n /**\n * Array to use for CDK drop list data binding. When not provided, uses options array.\n * @group Props\n */\n readonly dropListData = input<any[]>();\n\n /**\n * Computed property for stable CDK drop list data reference\n */\n cdkDropData = computed(() => {\n return this.dropListData() || this._options();\n });\n /**\n * Spans 100% width of the container when enabled.\n * @defaultValue undefined\n * @group Props\n */\n fluid = input(undefined, { transform: booleanAttribute });\n /**\n * Callback to invoke on value change.\n * @param {ListboxChangeEvent} event - Custom change event.\n * @group Emits\n */\n readonly onChange = output<ListboxChangeEvent>();\n /**\n * Callback to invoke when option is clicked.\n * @param {ListboxClickEvent} event - Custom click event.\n * @group Emits\n */\n readonly onClick = output<ListboxClickEvent>();\n /**\n * Callback to invoke when option is double clicked.\n * @param {ListboxDoubleClickEvent} event - Custom double click event.\n * @group Emits\n */\n readonly onDblClick = output<ListboxDoubleClickEvent>();\n /**\n * Callback to invoke when data is filtered.\n * @param {ListboxFilterEvent} event - Custom filter event.\n * @group Emits\n */\n readonly onFilter = output<ListboxFilterEvent>();\n /**\n * Callback to invoke when component receives focus.\n * @param {FocusEvent} event - Focus event.\n * @group Emits\n */\n readonly onFocus = output<FocusEvent>();\n /**\n * Callback to invoke when component loses focus.\n * @param {FocusEvent} event - Blur event.\n * @group Emits\n */\n readonly onBlur = output<FocusEvent>();\n /**\n * Callback to invoke when all data is selected.\n * @param {ListboxSelectAllChangeEvent} event - Custom select event.\n * @group Emits\n */\n readonly onSelectAllChange = output<ListboxSelectAllChangeEvent>();\n /**\n * Emits on lazy load.\n * @param {ScrollerLazyLoadEvent} event - Scroller lazy load event.\n * @group Emits\n */\n readonly onLazyLoad = output<ScrollerLazyLoadEvent>();\n /**\n * Emits on item is dropped.\n * @param {CdkDragDrop<string[]>} event - Scroller lazy load event.\n * @group Emits\n */\n readonly onDrop = output<CdkDragDrop<string[]>>();\n\n readonly headerCheckboxViewChild = viewChild<Nullable<ElementRef>>('headerchkbox');\n\n readonly filterViewChild = viewChild<Nullable<ElementRef>>('filter');\n\n readonly lastHiddenFocusableElement = viewChild<Nullable<ElementRef>>('lastHiddenFocusableElement');\n\n readonly firstHiddenFocusableElement = viewChild<Nullable<ElementRef>>('firstHiddenFocusableElement');\n\n readonly scroller = viewChild<Nullable<Scroller>>('scroller');\n\n readonly listViewChild = viewChild<Nullable<ElementRef>>('list');\n\n readonly containerViewChild = viewChild<Nullable<ElementRef>>('container');\n\n readonly headerFacet = contentChild(Header);\n\n readonly footerFacet = contentChild(Footer);\n\n /**\n * Custom item template.\n * @param {ListboxItemTemplateContext} context - item context.\n * @see {@link ListboxItemTemplateContext}\n * @group Templates\n */\n readonly itemTemplate = contentChild<TemplateRef<ListboxItemTemplateContext>>('item', { descendants: false });\n\n /**\n * Custom group template.\n * @param {ListboxGroupTemplateContext} context - group context.\n * @see {@link ListboxGroupTemplateContext}\n * @group Templates\n */\n readonly groupTemplate = contentChild<TemplateRef<ListboxGroupTemplateContext>>('group', { descendants: false });\n\n /**\n * Custom header template.\n * @param {ListboxHeaderTemplateContext} context - header context.\n * @see {@link ListboxHeaderTemplateContext}\n * @group Templates\n */\n readonly headerTemplate = contentChild<TemplateRef<ListboxHeaderTemplateContext>>('header', { descendants: false });\n\n /**\n * Custom filter template.\n * @param {ListboxFilterTemplateContext} context - filter context.\n * @see {@link ListboxFilterTemplateContext}\n * @group Templates\n */\n readonly filterTemplate = contentChild<TemplateRef<ListboxFilterTemplateContext>>('filter', { descendants: false });\n\n /**\n * Custom footer template.\n * @param {ListboxFooterTemplateContext} context - footer context.\n * @see {@link ListboxFooterTemplateContext}\n * @group Templates\n */\n readonly footerTemplate = contentChild<TemplateRef<ListboxFooterTemplateContext>>('footer', { descendants: false });\n\n /**\n * Custom empty filter message template.\n * @group Templates\n */\n readonly emptyFilterTemplate = contentChild<TemplateRef<void>>('emptyfilter', { descendants: false });\n\n /**\n * Custom empty message template.\n * @group Templates\n */\n readonly emptyTemplate = contentChild<TemplateRef<void>>('empty', { descendants: false });\n\n /**\n * Custom filter icon template.\n * @group Templates\n */\n readonly filterIconTemplate = contentChild<TemplateRef<void>>('filtericon', { descendants: false });\n\n /**\n * Custom check icon template.\n * @param {ListboxCheckIconTemplateContext} context - check icon context.\n * @see {@link ListboxCheckIconTemplateContext}\n * @group Templates\n */\n readonly checkIconTemplate = contentChild<TemplateRef<ListboxCheckIconTemplateContext>>('checkicon', { descendants: false });\n\n /**\n * Custom checkmark icon template.\n * @param {ListboxCheckmarkTemplateContext} context - checkmark context.\n * @see {@link ListboxCheckmarkTemplateContext}\n * @group Templates\n */\n readonly checkmarkTemplate = contentChild<TemplateRef<ListboxCheckmarkTemplateContext>>('checkmark', { descendants: false });\n\n /**\n * Custom loader template.\n * @param {ListboxLoaderTemplateContext} context - loader context.\n * @see {@link ListboxLoaderTemplateContext}\n * @group Templates\n */\n readonly loaderTemplate = contentChild<TemplateRef<ListboxLoaderTemplateContext>>('loader', { descendants: false });\n\n readonly templates = contentChildren(HelixTemplate);\n\n _itemTemplate: TemplateRef<ListboxItemTemplateContext> | undefined;\n\n _groupTemplate: TemplateRef<ListboxGroupTemplateContext> | undefined;\n\n _headerTemplate: TemplateRef<ListboxHeaderTemplateContext> | undefined;\n\n _filterTemplate: TemplateRef<ListboxFilterTemplateContext> | undefined;\n\n _footerTemplate: TemplateRef<ListboxFooterTemplateContext> | undefined;\n\n _emptyFilterTemplate: TemplateRef<void> | undefined;\n\n _emptyTemplate: TemplateRef<void> | undefined;\n\n _filterIconTemplate: TemplateRef<void> | undefined;\n\n _checkIconTemplate: TemplateRef<ListboxCheckIconTemplateContext> | undefined;\n\n _checkmarkTemplate: TemplateRef<ListboxCheckmarkTemplateContext> | undefined;\n\n _loaderTemplate: TemplateRef<ListboxLoaderTemplateContext> | undefined;\n\n public _filterValue = signal<string | null | undefined>(null);\n\n public _filteredOptions: any[] | undefined | null;\n\n filterOptions: ListboxFilterOptions | undefined;\n\n public filtered: boolean | undefined | null;\n\n public value: any | undefined | null;\n\n public optionTouched: boolean | undefined | null;\n\n public focus: boolean | undefined | null;\n\n public headerCheckboxFocus: boolean | undefined | null;\n\n translationSubscription: Nullable<Subscription>;\n\n focused: boolean | undefined;\n\n scrollerTabIndex: string = '0';\n\n _componentStyle = inject(ListBoxStyle);\n\n get focusedOptionId() {\n return this.focusedOptionIndex() !== -1 ? `${this.$id()}_${this.focusedOptionIndex()}` : null;\n }\n\n get filterResultMessageText() {\n return isNotEmpty(this.visibleOptions()) ? this.filterMessageText.replaceAll('{0}', this.visibleOptions().length) : this.emptyFilterMessageText;\n }\n\n get filterMessageText() {\n return this.filterMessage() || this.config.translation.searchMessage || '';\n }\n\n get searchMessageText() {\n return this.searchMessage() || this.config.translation.searchMessage || '';\n }\n\n get emptyFilterMessageText() {\n return this.emptyFilterMessage() || this.config.translation.emptySearchMessage || this.config.translation.emptyFilterMessage || '';\n }\n\n get selectionMessageText() {\n return this.selectionMessage() || this.config.translation.selectionMessage || '';\n }\n\n get emptySelectionMessageText() {\n return this.emptySelectionMessage() || this.config.translation.emptySelectionMessage || '';\n }\n\n get selectedMessageText() {\n return this.hasSelectedOption() ? this.selectionMessageText.replaceAll('{0}', this.multiple() ? this.modelValue().length : '1') : this.emptySelectionMessageText;\n }\n\n get ariaSetSize() {\n return this.visibleOptions().filter((option) => !this.isOptionGroup(option)).length;\n }\n\n get virtualScrollerDisabled() {\n return !this.virtualScroll();\n }\n\n get searchFields() {\n return this.filterBy()?.split(',') || this.filterFields() || [this.optionLabel()];\n }\n\n get toggleAllAriaLabel() {\n return this.config.translation.aria ? this.config.translation.aria[this.allSelected() ? 'selectAll' : 'unselectAll'] : undefined;\n }\n\n searchValue: string | undefined;\n\n searchTimeout: any;\n\n startRangeIndex = signal<number>(-1);\n\n focusedOptionIndex = signal<number>(-1);\n\n isDragging = signal<boolean>(false);\n\n onHostFocusOut(event: FocusEvent) {\n this.onFocusout(event);\n }\n\n visibleOptions = computed(() => {\n const options = this.group() ? this.flatOptions(this._options()) : this._options() || [];\n return this._filterValue() ? this.filterService.filter(options, this.searchFields, this._filterValue(), this.filterMatchMode(), this.filterLocale()) : options;\n });\n\n constructor(public filterService: FilterService) {\n super();\n effect(() => {\n this._filterValue.set(this.filterValue());\n });\n effect(() => {\n this._options.set(this.options());\n });\n }\n\n onInit() {\n this.translationSubscription = this.config.translationObserver.subscribe(() => {\n this.cd.markForCheck();\n });\n\n this.autoUpdateModel();\n\n if (this.filterBy()) {\n this.filterOptions = {\n filter: (value) => this.onFilterChange(value),\n reset: () => this.resetFilter()\n };\n }\n }\n\n onAfterContentInit() {\n this.templates().forEach((item) => {\n switch (item.getType()) {\n case 'item':\n this._itemTemplate = item.template;\n break;\n\n case 'group':\n this._groupTemplate = item.template;\n break;\n\n case 'header':\n this._headerTemplate = item.template;\n break;\n\n case 'filter':\n this._filterTemplate = item.template;\n break;\n\n case 'footer':\n this._footerTemplate = item.template;\n break;\n\n case 'empty':\n this._emptyTemplate = item.template;\n break;\n\n case 'emptyfilter':\n this._emptyFilterTemplate = item.template;\n break;\n\n case 'filtericon':\n this._filterIconTemplate = item.template;\n break;\n\n case 'checkicon':\n this._checkIconTemplate = item.template;\n break;\n\n case 'checkmark':\n this._checkmarkTemplate = item.template;\n break;\n\n case 'loader':\n this._loaderTemplate = item.template;\n break;\n\n default:\n this._itemTemplate = item.template;\n break;\n }\n });\n }\n\n flatOptions(options) {\n return (options || []).reduce((result, option, index) => {\n result.push({ optionGroup: option, group: true, index });\n\n const optionGroupChildren = this.getOptionGroupChildren(option);\n\n optionGroupChildren && optionGroupChildren.forEach((o) => result.push(o));\n\n return result;\n }, []);\n }\n\n autoUpdateModel() {\n if (this.selectOnFocus() && this.autoOptionFocus() && !this.hasSelectedOption() && !this.multiple()) {\n const focusedOptionIndex = this.findFirstFocusedOptionIndex();\n this.focusedOptionIndex.set(focusedOptionIndex);\n this.onOptionSelect(null, this.visibleOptions()[this.focusedOptionIndex()]);\n }\n }\n /**\n * Updates the model value.\n * @group Method\n */\n public updateModel(value, event?) {\n this.value = value;\n this.writeModelValue(value);\n this.onModelChange(value);\n\n this.onChange.emit({ originalEvent: event, value: this.value });\n }\n\n removeOption(option) {\n return this.modelValue().filter((val) => !equals(val, this.getOptionValue(option), this.equalityKey() || ''));\n }\n\n onOptionSelect(event, option, index = -1) {\n if (this.$disabled() || this.isOptionDisabled(option) || this.readonly()) {\n return;\n }\n\n event && this.onClick.emit({ originalEvent: event, option, value: this.value });\n this.multiple() ? this.onOptionSelectMultiple(event, option) : this.onOptionSelectSingle(event, option);\n this.optionTouched = false;\n index !== -1 && this.focusedOptionIndex.set(index);\n }\n\n onOptionSelectMultiple(event, option) {\n let selected = this.isSelected(option);\n let value: any[] = [];\n let metaSelection = this.optionTouched ? false : this.metaKeySelection();\n\n if (metaSelection) {\n let metaKey = event.metaKey || event.ctrlKey;\n\n if (selected) {\n value = metaKey ? this.removeOption(option) : [this.getOptionValue(option)];\n } else {\n value = metaKey ? this.modelValue() || [] : [];\n value = [...(value || []), this.getOptionValue(option)];\n }\n } else {\n value = selected ? this.removeOption(option) : [...(this.modelValue() || []), this.getOptionValue(option)];\n }\n\n this.updateModel(value, event);\n }\n\n onOptionSelectSingle(event, option) {\n let selected = this.isSelected(option);\n let valueChanged = false;\n let value = null;\n let metaSelection = this.optionTouched ? false : this.metaKeySelection();\n\n if (metaSelection) {\n let metaKey = event.metaKey || event.ctrlKey;\n\n if (selected) {\n if (metaKey) {\n value = null;\n valueChanged = true;\n }\n } else {\n value = this.getOptionValue(option);\n valueChanged = true;\n }\n } else {\n value = selected ? null : this.getOptionValue(option);\n valueChanged = true;\n }\n\n if (valueChanged) {\n this.updateModel(value, event);\n }\n }\n\n onOptionSelectRange(event, start = -1, end = -1) {\n start === -1 && (start = this.findNearestSelectedOptionIndex(end, true));\n end === -1 && (end = this.findNearestSelectedOptionIndex(start));\n\n if (start !== -1 && end !== -1) {\n const rangeStart = Math.min(start, end);\n const rangeEnd = Math.max(start, end);\n const value = this.visibleOptions()\n .slice(rangeStart, rangeEnd + 1)\n .filter((option) => this.isValidOption(option))\n .map((option) => this.getOptionValue(option));\n\n this.updateModel(value, event);\n }\n }\n\n onToggleAll(event) {\n if (this.$disabled() || this.readonly()) {\n return;\n }\n focus(this.headerCheckboxViewChild()?.nativeElement);\n\n if (this.selectAll() !== null) {\n this.onSelectAllChange.emit({\n originalEvent: event,\n checked: !this.allSelected()\n });\n } else {\n const value = this.allSelected()\n ? []\n : this.visibleOptions()\n .filter((option) => this.isValidOption(option))\n .map((option) => this.getOptionValue(option));\n\n this.updateModel(value, event);\n this.onChange.emit({ originalEvent: event, value: this.value });\n }\n }\n\n allSelected() {\n return this.selectAll() !== null ? this.selectAll() : isNotEmpty(this.visibleOptions()) && this.visibleOptions().every((option) => this.isOptionGroup(option) || this.isOptionDisabled(option) || this.isSelected(option));\n }\n\n onOptionTouchEnd() {\n if (this.$disabled()) {\n return;\n }\n\n this.optionTouched = true;\n }\n\n onOptionMouseDown(event: MouseEvent, index: number) {\n this.changeFocusedOptionIndex(event, index);\n }\n\n onOptionMouseEnter(event: MouseEvent, index: number) {\n if (this.focusOnHover() && this.focused) {\n this.changeFocusedOptionIndex(event, index);\n }\n }\n\n onOptionDoubleClick(event: MouseEvent, option: any) {\n if (this.$disabled() || this.isOptionDisabled(option) || this.readonly()) {\n return;\n }\n\n this.onDblClick.emit({\n originalEvent: event,\n option: option,\n value: this.value\n });\n }\n\n onFirstHiddenFocus(event: FocusEvent) {\n focus(this.listViewChild()?.nativeElement);\n const firstFocusableEl = getFirstFocusableElement(this.el?.nativeElement, ':not([data-h-hidden-focusable=\"true\"])');\n this.lastHiddenFocusableElement()?.nativeElement && (this.lastHiddenFocusableElement()!.nativeElement.tabIndex = isEmpty(firstFocusableEl) ? -1 : undefined);\n this.firstHiddenFocusableElement()?.nativeElement && (this.firstHiddenFocusableElement()!.nativeElement.tabIndex = -1);\n }\n\n onLastHiddenFocus(event: FocusEvent) {\n const relatedTarget = event.relatedTarget;\n\n if (relatedTarget === this.listViewChild()?.nativeElement) {\n const firstFocusableEl = <any>getFirstFocusableElement(this.el?.nativeElement, ':not([data-h-hidden-focusable=\"true\"])');\n\n focus(firstFocusableEl);\n this.firstHiddenFocusableElement()?.nativeElement && (this.firstHiddenFocusableElement()!.nativeElement.tabIndex = undefined);\n } else {\n focus(this.firstHiddenFocusableElement()?.nativeElement);\n }\n this.lastHiddenFocusableElement()?.nativeElement && (this.lastHiddenFocusableElement()!.nativeElement.tabIndex = -1);\n }\n\n onFocusout(event: FocusEvent) {\n const lastHiddenFocusableElement = this.lastHiddenFocusableElement();\n const firstHiddenFocusableElement = this.firstHiddenFocusableElement();\n if (!this.el.nativeElement.contains(event.relatedTarget) && lastHiddenFocusableElement && firstHiddenFocusableElement) {\n firstHiddenFocusableElement.nativeElement.tabIndex = lastHiddenFocusableElement.nativeElement.tabIndex = undefined;\n this.scrollerTabIndex = '0';\n }\n }\n\n onListFocus(event: FocusEvent) {\n this.focused = true;\n const focusedOptionIndex = this.focusedOptionIndex() !== -1 ? this.focusedOptionIndex() : this.autoOptionFocus() ? this.findFirstFocusedOptionIndex() : this.findSelectedOptionIndex();\n this.focusedOptionIndex.set(focusedOptionIndex);\n this.scrollInView(focusedOptionIndex);\n this.onFocus.emit(event);\n\n this.scrollerTabIndex = '-1';\n }\n\n onListBlur(event: FocusEvent) {\n this.focused = false;\n this.focusedOptionIndex.set(-1);\n this.startRangeIndex.set(-1);\n this.searchValue = '';\n this.onBlur.emit(event);\n }\n\n onHeaderCheckboxKeyDown(event) {\n if (this.$disabled()) {\n event.preventDefault();\n\n return;\n }\n\n switch (event.code) {\n case 'Space':\n this.onToggleAll(event);\n break;\n case 'Enter':\n this.onToggleAll(event);\n break;\n case 'Tab':\n this.onHeaderCheckboxTabKeyDown(event);\n break;\n default:\n break;\n }\n }\n\n onHeaderCheckboxTabKeyDown(event) {\n focus(this.listViewChild()?.nativeElement);\n event.preventDefault();\n }\n\n onFilterChange(event: Event) {\n let value: string = (event.target as HTMLInputElement).value?.trim();\n this._filterValue.set(value);\n this.focusedOptionIndex.set(-1);\n this.startRangeIndex.set(-1);\n this.onFilter.emit({ originalEvent: event, filter: this._filterValue() });\n\n !this.virtualScrollerDisabled && this.scroller()?.scrollToIndex(0);\n }\n\n onFilterBlur(event: FocusEvent) {\n this.focusedOptionIndex.set(-1);\n this.startRangeIndex.set(-1);\n }\n\n onListKeyDown(event: KeyboardEvent) {\n const metaKey = event.metaKey || event.ctrlKey;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n\n case 'Enter':\n case 'Space':\n case 'NumpadEnter':\n this.onSpaceKey(event);\n break;\n\n case 'Tab':\n //NOOP\n break;\n\n case 'ShiftLeft':\n case 'ShiftRight':\n this.onShiftKey();\n break;\n\n default:\n if (this.multiple() && event.code === 'KeyA' && metaKey) {\n const value = this.visibleOptions()\n .filter((option) => this.isValidOption(option))\n .map((option) => this.getOptionValue(option));\n\n this.updateModel(value, event);\n\n event.preventDefault();\n break;\n }\n\n if (!metaKey && isPrintableCharacter(event.key)) {\n this.searchOptions(event, event.key);\n event.preventDefault();\n }\n\n break;\n }\n }\n\n onFilterKeyDown(event: KeyboardEvent) {\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'ArrowLeft':\n case 'ArrowRight':\n this.onArrowLeftKey(event, true);\n break;\n\n case 'Home':\n this.onHomeKey(event, true);\n break;\n\n case 'End':\n this.onEndKey(event, true);\n break;\n\n case 'Enter':\n this.onEnterKey(event);\n break;\n\n case 'ShiftLeft':\n case 'ShiftRight':\n this.onShiftKey();\n break;\n\n default:\n break;\n }\n }\n\n onArrowDownKey(event: KeyboardEvent) {\n const optionIndex = this.focusedOptionIndex() !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex()) : this.findFirstFocusedOptionIndex();\n\n if (this.multiple() && event.shiftKey) {\n this.onOptionSelectRange(event, this.startRangeIndex(), optionIndex);\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n event.preventDefault();\n }\n\n onArrowUpKey(event: KeyboardEvent) {\n const optionIndex = this.focusedOptionIndex() !== -1 ? this.findPrevOptionIndex(this.focusedOptionIndex()) : this.findLastFocusedOptionIndex();\n\n if (this.multiple() && event.shiftKey) {\n this.onOptionSelectRange(event, optionIndex, this.startRangeIndex());\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n event.preventDefault();\n }\n\n onArrowLeftKey(event: KeyboardEvent, pressedInInputText = false) {\n pressedInInputText && this.focusedOptionIndex.set(-1);\n }\n\n onHomeKey(event: KeyboardEvent, pressedInInputText: boolean = false) {\n if (pressedInInputText) {\n (event.currentTarget as HTMLInputElement).setSelectionRange(0, 0);\n this.focusedOptionIndex.set(-1);\n } else {\n let metaKey = event.metaKey || event.ctrlKey;\n let optionIndex = this.findFirstOptionIndex();\n\n if (this.multiple() && event.shiftKey && metaKey) {\n this.onOptionSelectRange(event, optionIndex, this.startRangeIndex());\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n\n event.preventDefault();\n }\n\n onEndKey(event: KeyboardEvent, pressedInInputText: boolean = false) {\n if (pressedInInputText) {\n const target = event.currentTarget as HTMLInputElement;\n const len = target.value.length;\n\n target.setSelectionRange(len, len);\n this.focusedOptionIndex.set(-1);\n } else {\n let metaKey = event.metaKey || event.ctrlKey;\n let optionIndex = this.findLastOptionIndex();\n\n if (this.multiple() && event.shiftKey && metaKey) {\n this.onOptionSelectRange(event, this.startRangeIndex(), optionIndex);\n }\n\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n\n event.preventDefault();\n }\n\n onPageDownKey(event: KeyboardEvent) {\n this.scrollInView(0);\n event.preventDefault();\n }\n\n onPageUpKey(event: KeyboardEvent) {\n this.scrollInView(this.visibleOptions().length - 1);\n event.preventDefault();\n }\n\n onEnterKey(event) {\n if (this.focusedOptionIndex() !== -1) {\n if (this.multiple() && event.shiftKey) this.onOptionSelectRange(event, this.focusedOptionIndex());\n else this.onOptionSelect(event, this.visibleOptions()[this.focusedOptionIndex()]);\n }\n\n event.preventDefault();\n }\n\n onSpaceKey(event: KeyboardEvent) {\n this.onEnterKey(event);\n }\n\n onShiftKey() {\n const focusedOptionIndex = this.focusedOptionIndex();\n this.startRangeIndex.set(focusedOptionIndex);\n }\n\n getOptionGroupChildren(optionGroup) {\n const optionGroupChildren = this.optionGroupChildren();\n return optionGroupChildren ? resolveFieldData(optionGroup, optionGroupChildren) : optionGroup.items;\n }\n\n getOptionGroupLabel(optionGroup: any) {\n const optionGroupLabel = this.optionGroupLabel();\n return optionGroupLabel ? resolveFieldData(optionGroup, optionGroupLabel) : optionGroup && optionGroup.label !== undefined ? optionGroup.label : optionGroup;\n }\n\n getOptionLabel(option) {\n const optionLabel = this.optionLabel();\n return optionLabel ? resolveFieldData(option, optionLabel) : option.label != undefined ? option.label : option;\n }\n\n getOptionIndex(index, scrollerOptions) {\n return this.virtualScrollerDisabled ? index : scrollerOptions && scrollerOptions.getItemOptions(index)['index'];\n }\n\n getOptionValue(option: any) {\n const optionValue = this.optionValue();\n return optionValue ? resolveFieldData(option, optionValue) : !this.optionLabel() && option && option.value !== undefined ? option.value : option;\n }\n\n getAriaPosInset(index: number) {\n return (\n (this.optionGroupLabel()\n ? index -\n this.visibleOptions()\n .slice(0, index)\n .filter((option) => this.isOptionGroup(option)).length\n : index) + 1\n );\n }\n\n getPTOptions(option: any, itemOptions: any, index: number, key: string) {\n return this.ptm(key, {\n context: {\n selected: this.isSelected(option),\n focused: this.focusedOptionIndex() === this.getOptionIndex(index, itemOptions),\n disabled: this.isOptionDisabled(option)\n }\n });\n }\n\n hasSelectedOption() {\n return isNotEmpty(this.modelValue());\n }\n\n isOptionGroup(option) {\n return this.optionGroupLabel() && option.optionGroup && option.group;\n }\n\n changeFocusedOptionIndex(event, index) {\n if (this.focusedOptionIndex() !== index) {\n this.focusedOptionIndex.set(index);\n this.scrollInView();\n\n if (this.selectOnFocus() && !this.multiple()) {\n this.onOptionSelect(event, this.visibleOptions()[index]);\n }\n }\n }\n\n searchOptions(event, char) {\n this.searchValue = (this.searchValue || '') + char;\n\n let optionIndex = -1;\n let matched = false;\n\n if (this.focusedOptionIndex() !== -1) {\n optionIndex = this.visibleOptions()\n .slice(this.focusedOptionIndex())\n .findIndex((option) => this.isOptionMatched(option));\n optionIndex =\n optionIndex === -1\n ? this.visibleOptions()\n .slice(0, this.focusedOptionIndex())\n .findIndex((option) => this.isOptionMatched(option))\n : optionIndex + this.focusedOptionIndex();\n } else {\n optionIndex = this.visibleOptions().findIndex((option) => this.isOptionMatched(option));\n }\n\n if (optionIndex !== -1) {\n matched = true;\n }\n\n if (optionIndex === -1 && this.focusedOptionIndex() === -1) {\n optionIndex = this.findFirstFocusedOptionIndex();\n }\n\n if (optionIndex !== -1) {\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n this.searchTimeout = setTimeout(() => {\n this.searchValue = '';\n this.searchTimeout = null;\n }, 500);\n\n return matched;\n }\n\n isOptionMatched(option) {\n return this.isValidOption(option) && this.getOptionLabel(option)?.toLocaleLowerCase(this.filterLocale()).startsWith(this.searchValue?.toLocaleLowerCase(this.filterLocale()));\n }\n\n scrollInView(index = -1) {\n const id = index !== -1 ? `${this.$id()}_${index}` : this.focusedOptionId;\n const element = findSingle(this.listViewChild()?.nativeElement, `li[id=\"${id}\"]`);\n\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n } else if (!this.virtualScrollerDisabled) {\n this.virtualScroll() && this.scroller()?.scrollToIndex(index !== -1 ? index : this.focusedOptionIndex());\n }\n }\n\n findFirstOptionIndex() {\n return this.visibleOptions().findIndex((option) => this.isValidOption(option));\n }\n\n findLastOptionIndex() {\n return findLastIndex(this.visibleOptions(), (option) => this.isValidOption(option));\n }\n\n findFirstFocusedOptionIndex() {\n const selectedIndex = this.findFirstSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n }\n\n findLastFocusedOptionIndex() {\n const selectedIndex = this.findLastSelectedOptionIndex();\n\n return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;\n }\n\n findLastSelectedOptionIndex() {\n return this.hasSelectedOption() ? findLastIndex(this.visibleOptions(), (option) => this.isValidSelectedOption(option)) : -1;\n }\n\n findNextOptionIndex(index) {\n const matchedOptionIndex =\n index < this.visibleOptions().length - 1\n ? this.visibleOptions()\n .slice(index + 1)\n .findIndex((option) => this.isValidOption(option))\n : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;\n }\n\n findNextSelectedOptionIndex(index) {\n const matchedOptionIndex =\n this.hasSelectedOption() && index < this.visibleOptions().length - 1\n ? this.visibleOptions()\n .slice(index + 1)\n .findIndex((option) => this.isValidSelectedOption(option))\n : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : -1;\n }\n\n findPrevSelectedOptionIndex(index) {\n const matchedOptionIndex = this.hasSelectedOption() && index > 0 ? findLastIndex(this.visibleOptions().slice(0, index), (option) => this.isValidSelectedOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : -1;\n }\n\n findFirstSelectedOptionIndex() {\n return this.hasSelectedOption() ? this.visibleOptions().findIndex((option) => this.isValidSelectedOption(option)) : -1;\n }\n\n findPrevOptionIndex(index) {\n const matchedOptionIndex = index > 0 ? findLastIndex(this.visibleOptions().slice(0, index), (option) => this.isValidOption(option)) : -1;\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n }\n\n findSelectedOptionIndex() {\n if (this.$filled()) {\n if (this.multiple()) {\n for (let index = this.modelValue().length - 1; index >= 0; index--) {\n const value = this.modelValue()[index];\n const matchedOptionIndex = this.visibleOptions().findIndex((option) => this.isValidSelectedOption(option) && this.isEquals(value, this.getOptionValue(option)));\n\n if (matchedOptionIndex > -1) return matchedOptionIndex;\n }\n } else {\n return this.visibleOptions().findIndex((option) => this.isValidSelectedOption(option));\n }\n }\n\n return -1;\n }\n\n findNearestSelectedOptionIndex(index, firstCheckUp = false) {\n let matchedOptionIndex = -1;\n\n if (this.hasSelectedOption()) {\n if (firstCheckUp) {\n matchedOptionIndex = this.findPrevSelectedOptionIndex(index);\n matchedOptionIndex = matchedOptionIndex === -1 ? this.findNextSelectedOptionIndex(index) : matchedOptionIndex;\n } else {\n matchedOptionIndex = this.findNextSelectedOptionIndex(index);\n matchedOptionIndex = matchedOptionIndex === -1 ? this.findPrevSelectedOptionIndex(index) : matchedOptionIndex;\n }\n }\n\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n }\n\n equalityKey() {\n return this.optionValue() ? null : this.dataKey();\n }\n\n isValidSelectedOption(option) {\n return this.isValidOption(option) && this.isSelected(option);\n }\n\n isOptionDisabled(option: any) {\n const optionDisabled = this.optionDisabled();\n if (isFunction(optionDisabled)) {\n return optionDisabled(option);\n }\n return optionDisabled ? resolveFieldData(option, optionDisabled) : false;\n }\n\n isEquals(value1, value2) {\n return equals(value1, value2, this.equalityKey() || '');\n }\n\n isSelected(option) {\n const optionValue = this.getOptionValue(option);\n\n if (this.multiple()) return (this.modelValue() || []).some((value) => this.isEquals(value, optionValue));\n else return this.isEquals(this.modelValue(), optionValue);\n }\n\n isValidOption(option) {\n return option && !(this.isOptionDisabled(option) || this.isOptionGroup(option));\n }\n\n isEmpty() {\n return !this._options()?.length || !this.visibleOptions()?.length;\n }\n\n hasFilter() {\n return this._filterValue() && (this._filterValue()?.trim().length || 0) > 0;\n }\n\n resetFilter() {\n const filterViewChild = this.filterViewChild();\n if (filterViewChild && filterViewChild.nativeElement) {\n filterViewChild.nativeElement.value = '';\n }\n\n this._filterValue.set(null);\n }\n\n onDragEntered() {\n this.isDragging.set(true);\n this.el.nativeElement.setAttribute('h-listbox-dragging', 'true');\n }\n\n onDragExited() {\n this.isDragging.set(false);\n this.el.nativeElement.setAttribute('h-listbox-dragging', 'false');\n }\n\n drop(event: CdkDragDrop<string[]>) {\n this.isDragging.set(false);\n if (event) {\n // If dragdrop is enabled and same container (reordering), automatically handle reordering\n if (this.dragdrop() && event.previousContainer === event.container) {\n const currentOptions = [...this._options()];\n moveItemInArray(currentOptions, event.previousIndex, event.currentIndex);\n this._options.set(currentOptions);\n this.changeFocusedOptionIndex(event, event.currentIndex);\n\n // Update model value if needed for selection preservation\n if (this.modelValue()) {\n this.writeModelValue(this.modelValue());\n this.onModelChange(this.modelValue());\n }\n\n // Mark for change detection\n this.cd.markForCheck();\n }\n\n // Always emit the event for custom handling\n this.onDrop.emit(event);\n }\n }\n\n get containerDataP() {\n return this.cn({\n invalid: this.invalid(),\n disabled: this.$disabled()\n });\n }\n\n /**\n * @override\n *\n * @see {@link BaseEditableHolder.writeControlValue}\n * Writes the value to the control.\n */\n writeControlValue(value: any, setModelValue: (value: any) => void): void {\n this.value = value;\n setModelValue(this.value);\n this.cd.markForCheck();\n }\n\n onDestroy() {\n if (this.translationSubscription) {\n this.translationSubscription.unsubscribe();\n }\n }\n}\n\n@NgModule({\n imports: [Listbox, SharedModule],\n exports: [Listbox, SharedModule]\n})\nexport class ListboxModule {}\n","<span\n #firstHiddenFocusableElement\n role=\"presentation\"\n class=\"h-hidden-accessible h-hidden-focusable\"\n [tabindex]=\"!$disabled() ? tabindex() : -1\"\n (focus)=\"onFirstHiddenFocus($event)\"\n [attr.data-h-hidden-focusable]=\"true\"\n [hBind]=\"ptm('hiddenFirstFocusableElement')\"\n >\n</span>\n@if (headerFacet() || headerTemplate() || _headerTemplate) {\n <div [class]=\"cx('header')\" [hBind]=\"ptm('header')\">\n <ng-content select=\"h-header\"></ng-content>\n <ng-container *ngTemplateOutlet=\"headerTemplate() || _headerTemplate; context: { $implicit: modelValue(), options: visibleOptions() }\"></ng-container>\n </div>\n}\n@if ((checkbox() && multiple() && showToggleAll()) || filter()) {\n <div [class]=\"cx('header')\" [hBind]=\"ptm('header')\">\n @if (checkbox() && multiple() && showToggleAll()) {\n <h-checkbox()\n #headerchkbox\n (onChange)=\"onToggleAll($event)\"\n [class]=\"cx('optionCheckIcon')\"\n [ngModel]=\"allSelected()\"\n [disabled]=\"$disabled()\"\n [tabindex]=\"-1\"\n [variant]=\"config.inputStyle() === 'filled' || config.inputVariant() === 'filled' ? 'filled' : 'outlined'\"\n [binary]=\"true\"\n [attr.aria-label]=\"toggleAllAriaLabel\"\n [pt]=\"ptm('pcCheckbox')\"\n [unstyled]=\"unstyled()\"\n >\n @if (checkIconTemplate() || _checkIconTemplate) {\n <ng-template #icon>\n <ng-template *ngTemplateOutlet=\"checkIconTemplate() || _checkIconTemplate; context: { $implicit: allSelected() }\"></ng-template>\n </ng-template>\n }\n </h-checkbox()>\n }\n @if (filterTemplate() || _filterTemplate) {\n <ng-container *ngTemplateOutlet=\"filterTemplate() || _filterTemplate; context: { options: filterOptions }\"></ng-container>\n } @else {\n @if (filter()) {\n <h-iconfield [pt]=\"ptm('pcFilterContainer')\" hostName=\"listbox\" [unstyled]=\"unstyled()\">\n <input\n #filterInput\n hInputText\n type=\"text\"\n [class]=\"cx('pcFilter')\"\n role=\"searchbox\"\n [value]=\"_filterValue() || ''\"\n [attr.disabled]=\"$disabled() ? '' : undefined\"\n [attr.aria-owns]=\"$id() + '_list'\"\n [attr.aria-activedescendant]=\"focusedOptionId\"\n [attr.placeholder]=\"filterPlaceHolder()\"\n [attr.aria-label]=\"ariaFilterLabel()\"\n [attr.tabindex]=\"!$disabled() && !focused ? tabindex() : -1\"\n (input)=\"onFilterChange($event)\"\n (keydown)=\"onFilterKeyDown($event)\"\n (blur)=\"onFilterBlur($event)\"\n [pt]=\"ptm('pcFilter')\"\n [unstyled]=\"unstyled()\"\n hostName=\"listbox\"\n />\n <h-inputicon [pt]=\"ptm('pcFilterIconContainer')\" [unstyled]=\"unstyled()\">\n @if (!filterIconTemplate() && !_filterIconTemplate) {\n <svg data-h-icon=\"search\" [attr.aria-hidden]=\"true\" [hBind]=\"ptm('filterIcon')\" />\n }\n @if (filterIconTemplate() || _filterIconTemplate) {\n <span [attr.aria-hidden]=\"true\">\n <ng-template *ngTemplateOutlet=\"filterIconTemplate() || _filterIconTemplate\"></ng-template>\n </span>\n }\n </h-inputicon>\n </h-iconfield>\n }\n <span role=\"status\" [hBind]=\"ptm('hiddenFilterResult')\" [attr.aria-live]=\"'polite'\" class=\"h-hidden-accessible\" [attr.data-h-hidden-accessible]=\"true\">\n {{ filterResultMessageText }}\n </span>\n }\n </div>\n}\n<div\n #container\n [class]=\"cn(cx('listContainer'), listStyleClass())\"\n [ngStyle]=\"listStyle()\"\n [style.max-height]=\"virtualScroll() ? 'auto' : scrollHeight() || 'auto'\"\n cdkDropList\n [cdkDropListData]=\"cdkDropData()\"\n (cdkDropListDropped)=\"drop($event)\"\n (cdkDropListEntered)=\"onDragEntered()\"\n (cdkDropListExited)=\"onDragExited()\"\n [hBind]=\"ptm('listContainer')\"\n >\n @if (hasFilter() && isEmpty()) {\n <div [class]=\"cx('emptyMessage')\" [hBind]=\"ptm('emptyMessage')\">\n @if (!emptyFilterTemplate() && !_emptyFilterTemplate && !_emptyTemplate && !emptyTemplate()) {\n {{ emptyFilterMessageText }}\n } @else {\n <ng-container #emptyFilter *ngTemplateOutlet=\"emptyFilterTemplate() || _emptyFilterTemplate || _emptyTemplate || emptyTemplate()\"></ng-container>\n }\n </div>\n } @else if (!hasFilter() && isEmpty()) {\n <div [class]=\"cx('emptyMessage')\" [hBind]=\"ptm('emptyMessage')\">\n @if (!emptyTemplate() && !_emptyTemplate) {\n {{ emptyMessage() }}\n } @else {\n <ng-container #empty *ngTemplateOutlet=\"emptyTemplate() || _emptyTemplate\"></ng-container>\n }\n </div>\n } @else {\n @if (virtualScroll()) {\n <h-scroller\n [pt]=\"ptm('virtualScroller')\"\n hostName=\"listbox\"\n #scroller\n [items]=\"visibleOptions()\"\n [style]=\"{ height: scrollHeight() }\"\n [itemSize]=\"virtualScrollItemSize()\"\n [autoSize]=\"true\"\n [lazy]=\"lazy()\"\n [options]=\"virtualScrollOptions()\"\n (onLazyLoad)=\"onLazyLoad.emit($event)\"\n [tabindex]=\"scrollerTabIndex\"\n >\n <ng-template #content let-items let-scrollerOptions=\"options\">\n <ng-container *ngTemplateOutlet=\"buildInItems; context: { $implicit: items, options: scrollerOptions }\"></ng-container>\n </ng-template>\n @if (loaderTemplate() || _loaderTemplate) {\n <ng-template #loader let-scrollerOptions=\"options\">\n <ng-container *ngTemplateOutlet=\"loaderTemplate() || _loaderTemplate; context: { options: scrollerOptions }\"></ng-container>\n </ng-template>\n }\n </h-scroller>\n }\n @if (!virtualScroll()) {\n <ng-container *ngTemplateOutlet=\"buildInItems; context: { $implicit: visibleOptions(), options: {} }\"></ng-container>\n }\n\n <ng-template #buildInItems let-items let-scrollerOptions=\"options\">\n <ul\n #list\n [id]=\"$id() + '_list'\"\n [class]=\"cx('list')\"\n role=\"listbox\"\n [tabindex]=\"-1\"\n [attr.aria-multiselectable]=\"true\"\n [ngClass]=\"scrollerOptions.contentStyleClass\"\n [style]=\"scrollerOptions.contentStyle\"\n [attr.aria-activedescendant]=\"focused ? focusedOptionId : undefined\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-disabled]=\"$disabled()\"\n (focus)=\"onListFocus($event)\"\n (blur)=\"onListBlur($event)\"\n (keydown)=\"onListKeyDown($event)\"\n [hBind]=\"ptm('list')\"\n >\n @for (option of items; track option; let i = $index) {\n @if (isOptionGroup(option)) {\n <li\n [attr.id]=\"$id() + '_' + getOptionIndex(i, scrollerOptions)\"\n [class]=\"cx('optionGroup')\"\n [hBind]=\"getPTOptions(option.optionGroup, scrollerOptions, i, 'optionGroup')\"\n [ngStyle]=\"{ height: scrollerOptions.itemSize + 'px' }\"\n role=\"option\"\n cdkDrag\n [cdkDragData]=\"option\"\n [cdkDragDisabled]=\"!dragdrop()\"\n (cdkDragStarted)=\"isDragging.set(true)\"\n (cdkDragEnded)=\"isDragging.set(false)\"\n >\n @if (!groupTemplate() && !_groupTemplate) {\n <span>{{ getOptionGroupLabel(option.optionGroup) }}</span>\n }\n <ng-container *ngTemplateOutlet=\"groupTemplate() || _groupTemplate; context: { $implicit: option.optionGroup }\"></ng-container>\n </li>\n }\n @if (!isOptionGroup(option)) {\n <li\n hRipple\n [class]=\"cx('option', { option, i, scrollerOptions })\"\n role=\"option\"\n [attr.id]=\"$id() + '_' + getOptionIndex(i, scrollerOptions)\"\n [ngStyle]=\"{ height: scrollerOptions.itemSize + 'px' }\"\n [attr.aria-label]=\"getOptionLabel(option)\"\n [attr.aria-selected]=\"isSelected(option)\"\n [attr.aria-disabled]=\"isOptionDisabled(option)\"\n [attr.aria-setsize]=\"ariaSetSize\"\n [attr.ariaPosInset]=\"getAriaPosInset(getOptionIndex(i, scrollerOptions))\"\n [attr.data-h-selected]=\"isSelected(option)\"\n [attr.data-h-focused]=\"focusedOptionIndex() === getOptionIndex(i, scrollerOptions)\"\n [attr.data-h-disabled]=\"isOptionDisabled(option)\"\n [hBind]=\"getPTOptions(option, scrollerOptions, i, 'option')\"\n (click)=\"onOptionSelect($event, option, getOptionIndex(i, scrollerOptions))\"\n (dblclick)=\"onOptionDoubleClick($event, option)\"\n (mousedown)=\"onOptionMouseDown($event, getOptionIndex(i, scrollerOptions))\"\n (mouseenter)=\"onOptionMouseEnter($event, getOptionIndex(i, scrollerOptions))\"\n (touchend)=\"onOptionTouchEnd()\"\n cdkDrag\n [cdkDragData]=\"option\"\n [cdkDragDisabled]=\"!dragdrop()\"\n (cdkDragStarted)=\"isDragging.set(true)\"\n (cdkDragEnded)=\"isDragging.set(false)\"\n >\n @if (checkbox() && multiple()) {\n <h-checkbox()\n [class]=\"cx('optionCheckIcon')\"\n [ngModel]=\"isSelected(option)\"\n [readonly]=\"true\"\n [disabled]=\"$disabled() || isOptionDisabled(option)\"\n [tabindex]=\"-1\"\n [variant]=\"config.inputStyle() === 'filled' || config.inputVariant() === 'filled' ? 'filled' : 'outlined'\"\n [binary]=\"true\"\n [pt]=\"ptm('pcCheckbox')\"\n hostName=\"listbox\"\n [unstyled]=\"unstyled()\"\n >\n @if (checkIconTemplate() || _checkIconTemplate) {\n <ng-template #icon>\n <ng-template *ngTemplateOutlet=\"checkIconTemplate() || _checkIconTemplate; context: { $implicit: isSelected(option) }\"></ng-template>\n </ng-template>\n }\n </h-checkbox()>\n }\n @if (checkmark()) {\n @if (!checkmarkTemplate() && !_checkmarkTemplate) {\n @if (!isSelected(option)) {\n <svg data-h-icon=\"blank\" [class]=\"cx('optionBlankIcon')\" [hBind]=\"ptm('optionBlankIcon')\" />\n }\n @if (isSelected(option)) {\n <svg data-h-icon=\"check\" [class]=\"cx('optionCheckIcon')\" [hBind]=\"ptm('optionCheckIcon')\" />\n }\n }\n <ng-container *ngTemplateOutlet=\"checkmarkTemplate() || _checkmarkTemplate; context: { implicit: isSelected(option) }\"></ng-container>\n }\n @if (!itemTemplate() && !_itemTemplate) {\n <span>{{ getOptionLabel(option) }}</span>\n }\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate() || _itemTemplate;\n context: {\n $implicit: option,\n index: getOptionIndex(i, scrollerOptions),\n selected: isSelected(option),\n disabled: isOptionDisabled(option)\n }\n \"\n ></ng-container>\n </li>\n }\n }\n </ul>\n </ng-template>\n}\n</div>\n@if (footerFacet() || footerTemplate() || _footerTemplate) {\n <div>\n <ng-content select=\"h-footer\"></ng-content>\n <ng-container *ngTemplateOutlet=\"footerTemplate() || _footerTemplate; context: { $implicit: modelValue(), options: visibleOptions() }\"></ng-container>\n </div>\n}\n@if (isEmpty()) {\n <span role=\"status\" aria-live=\"polite\" class=\"h-hidden-accessible\" [hBind]=\"ptm('hiddenEmptyMessage')\">\n {{ emptyMessage() }}\n </span>\n}\n<span role=\"status\" aria-live=\"polite\" class=\"h-hidden-accessible\" [hBind]=\"ptm('hiddenSelectedMessage')\">\n {{ selectedMessageText }}\n</span>\n<span\n #lastHiddenFocusableElement\n role=\"presentation\"\n class=\"h-hidden-accessible h-hidden-focusable\"\n [tabindex]=\"!$disabled() ? tabindex() : -1\"\n (focus)=\"onLastHiddenFocus($event)\"\n [attr.data-h-hidden-focusable]=\"true\"\n [hBind]=\"ptm('hiddenLastFocusableEl')\"\n >\n</span>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;ACIA,MAAM,QAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCtB,MAAM,UAAU;CACZ,OAAO,EAAE,eAAe,CACpB,yBACA;EACI,qBAAqB,SAAS,QAAO;EACrC,cAAc,SAAS,UAAS;EAChC,aAAa,SAAS,QAAO;EAC7B,mBAAmB,SAAS,MAAK;EACjC,sBAAsB,SAAS,WAAU;CAC5C,CACJ;CACD,QAAQ;CACR,UAAU;CACV,eAAe;CACf,MAAM;CACN,aAAa;CACb,SAAS,EAAE,UAAU,QAAQ,GAAG,sBAAsB,CAClD,oBACA;EACI,6BAA6B,SAAS,WAAW,MAAM,KAAK,SAAS,kBAAiB;EACtF,WAAW,SAAS,mBAAkB,MAAO,SAAS,eAAe,GAAG,eAAe;EACvF,cAAc,SAAS,iBAAiB,MAAM;CACjD,CACJ;CACD,iBAAiB;CACjB,iBAAiB;CACjB,cAAc;AACjB;AAGD,IAAa,eAAb,MAAa,qBAAqB,UAAS;CACvC,OAAO;CAEP,QAAQ;CAER,UAAU;CALD,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAY,MAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAZ,OAAA,QAAA,GAAA,sBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;CAAY,CAAA;;AAAZ,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAY,YAAA,CAAA,EADxB,MAAA,WAAA,CAAA;;AAkBD,IAAY;CAAZ,SAAY,gBAAc;CAItB,eAAA,UAAA;CAIA,eAAA,YAAA;CAIA,eAAA,cAAA;CAIA,eAAA,mBAAA;CAIA,eAAA,UAAA;CAIA,eAAA,iBAAA;CAIA,eAAA,YAAA;CAIA,eAAA,qBAAA;CAIA,eAAA,qBAAA;CAIA,eAAA,kBAAA;AACJ,EAAA,CAzCY,mBAAA,iBAAc,CAAA,EAAA;ACtD1B,MAAM,mBAAmB,IAAI,eAAwB,kBAAkB;AAEvE,MAAa,yBAA8B;CACvC,SAAS;CACT,aAAa,iBAAiB,OAAO;CACrC,OAAO;AACV;AAgCD,IAAa,UAAb,MAAa,gBAAgB,mBAAsC;CAuiB5C;CAtiBnB,gBAAgB;CAEP,WAAW,MAAW,IAAG,GAAA,YAAA,CAAA,EAAA,WAAA,WAAA,CAAA,gCAAA,CAAA,CAAA;CAElC,wBAAwB,OAAO,MAAM,EAAE,MAAM,KAAI,CAAE;CAEnD,aAAkC,OAAO,kBAAkB;EAAE,UAAU;EAAM,UAAU;CAAI,CAAE,KAAK;CAElG,qBAAkB;EACd,KAAK,sBAAsB,SAAS,KAAK,KAAK,CAAC,QAAQ,MAAM,CAAC,CAAC;CACnE;CAMS,KAAK,MAAe,GAAA,YAAA,CAAA,QAAA,EAAA,WAAA,KAAA,CAAA,gCAAA,CAAA,CAAA;CAEZ,SAAS,KAAK,QAAQ;CAE9B,MAAM,eAAe,KAAK,GAAE,KAAM,KAAK,QAAO,GAAA,YAAA,CAAA,EAAA,WAAA,MAAA,CAAA,gCAAA,CAAA,CAAA;CAM9C,gBAAgB,MAAe,GAAA,YAAA,CAAA,QAAA,EAAA,WAAA,gBAAA,CAAA,gCAAA,CAAA,CAAA;CAM/B,wBAAwB,MAAe,GAAA,YAAA,CAAA,QAAA,EAAA,WAAA,wBAAA,CAAA,gCAAA,CAAA,CAAA;CAMvC,mBAAmB,MAAe,GAAA,YAAA,CAAA,QAAA,EAAA,WAAA,mBAAA,CAAA,gCAAA,CAAA,CAAA;CAKlC,kBAAkB,MAAoC,MAAI;EAAA,GAAA,YAAA,EAAA,WAAA,kBAAA,iCAAA,CAAA;EAAI,WAAW;CAAgB,CAAA;CAKzF,YAAY,MAAe,GAAA,YAAA,CAAA,QAAA,EAAA,WAAA,YAAA,CAAA,gCAAA,CAAA,CAAA;CAK3B,gBAAgB,MAAwB,QAAS;EAAA,GAAA,YAAA,EAAA,WAAA,gBAAA,iCAAA,CAAA;EAAI,WAAW;CAAgB,CAAA;CAKhF,eAAe,MAAwB,QAAS;EAAA,GAAA,YAAA,EAAA,WAAA,eAAA,iCAAA,CAAA;EAAI,WAAW;CAAgB,CAAA;CAK/E,eAAe,MAAoC,MAAI;EAAA,GAAA,YAAA,EAAA,WAAA,eAAA,iCAAA,CAAA;EAAI,WAAW;CAAgB,CAAA;CAKtF,gBAAgB,MAAe,GAAA,YAAA,CAAA,QAAA,EAAA,WAAA,gBAAA,CAAA,gCAAA,CAAA,CAAA;CAK/B,eAAe,MAAc,GAAA,YAAA,CAAA,QAAA,EAAA,WAAA,eAAA,CAAA,gCAAA,CAAA,CAAA;CAK7B,OAAO,MAAwB,OAAK;EAAA,GAAA,YAAA,EAAA,WAAA,OAAA,iCAAA,CAAA;EAAI,WAAW;CAAgB,CAAA;CAKnE,gBAAgB,MAAwB,QAAS;EAAA,GAAA,YAAA,EAAA,WAAA,gBAAA,iCAAA,CAAA;EAAI,WAAW;CAAgB,CAAA;CAKhF,wBAAwB,MAAuB,QAAS;EAAA,GAAA,YAAA,EAAA,WAAA,wBAAA,iCAAA,CAAA;EAAI,WAAW;CAAe,CAAA;CAKtF,uBAAuB,MAAwB,GAAA,YAAA,CAAA,QAAA,EAAA,WAAA,uBAAA,CAAA,gCAAA,CAAA,CAAA;CAK/C,eAAe,MAAc,SAAQ,GAAA,YAAA,CAAA,EAAA,WAAA,eAAA,CAAA,gCAAA,CAAA,CAAA;CAKrC,WAAW,MAAmC,GAAC;EAAA,GAAA,YAAA,EAAA,WAAA,WAAA,iCAAA,CAAA;EAAI,WAAW;CAAe,CAAA;CAK7E,WAAW,MAAoC,QAAS;EAAA,GAAA,YAAA,EAAA,WAAA,WAAA,iCAAA,CAAA;EAAI,WAAW;CAAgB,CAAA;CAMvF,aAAa,MAAe,GAAA,YAAA,CAAA,QAAA,EAAA,WAAA,aAAA,CAAA,gCAAA,CAAA,CAAA;CAK5B,YAAY,MAEd,GAAA,YAAA,CAAA,QAAA,EAAA,WAAA,YAAA,CAAA,gCAAA,CAAA,CAAA;CAKE,iBAAiB,MAAe,GAAA,YAAA,CAAA,QAAA,EAAA,WAAA,iBAAA,CAAA,gCAAA,CAAA,CAAA;CAKhC,WAAW,MAAwB,QAAS;EAAA,GAAA,YAAA,EAAA,WAAA,WAAA,iCAAA,CAAA;EAAI,WAAW;CAAgB,CAAA;CAK3E,WAAW,MAAwB,OAAK;EAAA,GAAA,YAAA,EAAA,WAAA,WAAA,iCAAA,CAAA;EAAI,WAAW;CAAgB,CAAA;CAKvE,SAAS,MAAwB,OAAK;EAAA,GAAA,YAAA,EAAA,WAAA,SAAA,iCAAA,CAAA;EAAI,WAAW;CAAgB,CAAA;CAKrE,WAAW,MAAe,GAAA,YAAA,CAAA,QAAA,EAAA,WAAA,WAAA,CAAA,gCAAA,CAAA,CAAA;CAK1B,kBAAkB,MAAqH,YAAW,GAAA,YAAA,CAAA,EAAA,WAAA,kBAAA,CAAA,gCAAA,CAAA,CAAA;CAKlJ,eAAe,MAAe,GAAA,YAAA,CAAA,QAAA,EAAA,WAAA,eAAA,CAAA,gCAAA,CAAA,CAAA;CAK9B,mBAAmB,MAAwB,OAAK;EAAA,GAAA,YAAA,EAAA,WAAA,mBAAA,iCAAA,CAAA;EAAI,WAAW;CAAgB,CAAA;CAK/E,UAAU,MAAe,GAAA,YAAA,CAAA,QAAA,EAAA,WAAA,UAAA,CAAA,gCAAA,CAAA,CAAA;CAKzB,gBAAgB,MAAwB,MAAI;EAAA,GAAA,YAAA,EAAA,WAAA,gBAAA,iCAAA,CAAA;EAAI,WAAW;CAAgB,CAAA;CAK3E,cAAc,MAAe,GAAA,YAAA,CAAA,QAAA,EAAA,WAAA,cAAA,CAAA,gCAAA,CAAA,CAAA;CAK7B,cAAc,MAAe,GAAA,YAAA,CAAA,QAAA,EAAA,WAAA,cAAA,CAAA,gCAAA,CAAA,CAAA;CAK7B,sBAAsB,MAA0B,SAAQ,GAAA,YAAA,CAAA,EAAA,WAAA,sBAAA,CAAA,gCAAA,CAAA,CAAA;CAKxD,mBAAmB,MAA0B,SAAQ,GAAA,YAAA,CAAA,EAAA,WAAA,mBAAA,CAAA,gCAAA,CAAA,CAAA;CAKrD,iBAAiB,MAA0C,GAAA,YAAA,CAAA,QAAA,EAAA,WAAA,iBAAA,CAAA,gCAAA,CAAA,CAAA;CAK3D,kBAAkB,MAAe,GAAA,YAAA,CAAA,QAAA,EAAA,WAAA,kBAAA,CAAA,gCAAA,CAAA,CAAA;CAKjC,oBAAoB,MAAe,GAAA,YAAA,CAAA,QAAA,EAAA,WAAA,oBAAA,CAAA,gCAAA,CAAA,CAAA;CAKnC,qBAAqB,MAAe,GAAA,YAAA,CAAA,QAAA,EAAA,WAAA,qBAAA,CAAA,gCAAA,CAAA,CAAA;CAKpC,eAAe,MAAe,GAAA,YAAA,CAAA,QAAA,EAAA,WAAA,eAAA,CAAA,gCAAA,CAAA,CAAA;CAK9B,QAAQ,MAAwB,QAAS;EAAA,GAAA,YAAA,EAAA,WAAA,QAAA,iCAAA,CAAA;EAAI,WAAW;CAAgB,CAAA;CAKxE,UAAU,MAAa,QAAW,GAAA,YAAA,CAAA,EAAA,WAAA,UAAA,CAAA,gCAAA,CAAA,CAAA;CAEpC,WAAW,OAAY,MAAK,GAAA,YAAA,CAAA,EAAA,WAAA,WAAA,CAAA,gCAAA,CAAA,CAAA;CAK1B,cAAc,MAAe,GAAA,YAAA,CAAA,QAAA,EAAA,WAAA,cAAA,CAAA,gCAAA,CAAA,CAAA;CAK7B,YAAY,MAAkC,MAAK,GAAA,YAAA,CAAA,EAAA,WAAA,YAAA,CAAA,gCAAA,CAAA,CAAA;CAMnD,UAAU,MAAoC,OAAK;EAAA,GAAA,YAAA,EAAA,WAAA,UAAA,iCAAA,CAAA;EAAI,WAAW;CAAgB,CAAA;CAMlF,oBAAoB,MAAwB,MAAI;EAAA,GAAA,YAAA,EAAA,WAAA,oBAAA,iCAAA,CAAA;EAAI,WAAW;CAAgB,CAAA;CAM/E,YAAY,MAAwB,OAAK;EAAA,GAAA,YAAA,EAAA,WAAA,YAAA,iCAAA,CAAA;EAAI,WAAW;CAAgB,CAAA;CAKxE,WAAW,MAAwB,OAAK;EAAA,GAAA,YAAA,EAAA,WAAA,WAAA,iCAAA,CAAA;EAAI,WAAW;CAAgB,CAAA;CAKvE,eAAe,MAAc,GAAA,YAAA,CAAA,QAAA,EAAA,WAAA,eAAA,CAAA,gCAAA,CAAA,CAAA;CAKtC,cAAc,eAAc;EACxB,OAAO,KAAK,aAAY,KAAM,KAAK,SAAQ;CAC/C,GAAE,GAAA,YAAA,CAAA,EAAA,WAAA,cAAA,CAAA,gCAAA,CAAA,CAAA;CAMF,QAAQ,MAAM,QAAS;EAAA,GAAA,YAAA,EAAA,WAAA,QAAA,iCAAA,CAAA;EAAI,WAAW;CAAgB,CAAA;CAM7C,WAAW,OAAM;CAMjB,UAAU,OAAM;CAMhB,aAAa,OAAM;CAMnB,WAAW,OAAM;CAMjB,UAAU,OAAM;CAMhB,SAAS,OAAM;CAMf,oBAAoB,OAAM;CAM1B,aAAa,OAAM;CAMnB,SAAS,OAAM;CAEf,0BAA0B,UAAgC,gBAAe,GAAA,YAAA,CAAA,EAAA,WAAA,0BAAA,CAAA,gCAAA,CAAA,CAAA;CAEzE,kBAAkB,UAAgC,UAAS,GAAA,YAAA,CAAA,EAAA,WAAA,kBAAA,CAAA,gCAAA,CAAA,CAAA;CAE3D,6BAA6B,UAAgC,8BAA6B,GAAA,YAAA,CAAA,EAAA,WAAA,6BAAA,CAAA,gCAAA,CAAA,CAAA;CAE1F,8BAA8B,UAAgC,+BAA8B,GAAA,YAAA,CAAA,EAAA,WAAA,8BAAA,CAAA,gCAAA,CAAA,CAAA;CAE5F,WAAW,UAA8B,YAAW,GAAA,YAAA,CAAA,EAAA,WAAA,WAAA,CAAA,gCAAA,CAAA,CAAA;CAEpD,gBAAgB,UAAgC,QAAO,GAAA,YAAA,CAAA,EAAA,WAAA,gBAAA,CAAA,gCAAA,CAAA,CAAA;CAEvD,qBAAqB,UAAgC,aAAY,GAAA,YAAA,CAAA,EAAA,WAAA,qBAAA,CAAA,gCAAA,CAAA,CAAA;CAEjE,cAAc,aAAa,QAAO,GAAA,YAAA,CAAA,EAAA,WAAA,cAAA,CAAA,gCAAA,CAAA,CAAA;CAElC,cAAc,aAAa,QAAO,GAAA,YAAA,CAAA,EAAA,WAAA,cAAA,CAAA,gCAAA,CAAA,CAAA;CAQlC,eAAe,aAAsD,QAAM;EAAA,GAAA,YAAA,EAAA,WAAA,eAAA,iCAAA,CAAA;EAAI,aAAa;CAAK,CAAA;CAQjG,gBAAgB,aAAuD,SAAO;EAAA,GAAA,YAAA,EAAA,WAAA,gBAAA,iCAAA,CAAA;EAAI,aAAa;CAAK,CAAA;CAQpG,iBAAiB,aAAwD,UAAQ;EAAA,GAAA,YAAA,EAAA,WAAA,iBAAA,iCAAA,CAAA;EAAI,aAAa;CAAK,CAAA;CAQvG,iBAAiB,aAAwD,UAAQ;EAAA,GAAA,YAAA,EAAA,WAAA,iBAAA,iCAAA,CAAA;EAAI,aAAa;CAAK,CAAA;CAQvG,iBAAiB,aAAwD,UAAQ;EAAA,GAAA,YAAA,EAAA,WAAA,iBAAA,iCAAA,CAAA;EAAI,aAAa;CAAK,CAAA;CAMvG,sBAAsB,aAAgC,eAAa;EAAA,GAAA,YAAA,EAAA,WAAA,sBAAA,iCAAA,CAAA;EAAI,aAAa;CAAK,CAAA;CAMzF,gBAAgB,aAAgC,SAAO;EAAA,GAAA,YAAA,EAAA,WAAA,gBAAA,iCAAA,CAAA;EAAI,aAAa;CAAK,CAAA;CAM7E,qBAAqB,aAAgC,cAAY;EAAA,GAAA,YAAA,EAAA,WAAA,qBAAA,iCAAA,CAAA;EAAI,aAAa;CAAK,CAAA;CAQvF,oBAAoB,aAA2D,aAAW;EAAA,GAAA,YAAA,EAAA,WAAA,oBAAA,iCAAA,CAAA;EAAI,aAAa;CAAK,CAAA;CAQhH,oBAAoB,aAA2D,aAAW;EAAA,GAAA,YAAA,EAAA,WAAA,oBAAA,iCAAA,CAAA;EAAI,aAAa;CAAK,CAAA;CAQhH,iBAAiB,aAAwD,UAAQ;EAAA,GAAA,YAAA,EAAA,WAAA,iBAAA,iCAAA,CAAA;EAAI,aAAa;CAAK,CAAA;CAEvG,YAAY,gBAAgB,eAAc,GAAA,YAAA,CAAA,EAAA,WAAA,YAAA,CAAA,gCAAA,CAAA,CAAA;CAEnD;CAEA;CAEA;CAEA;CAEA;CAEA;CAEA;CAEA;CAEA;CAEA;CAEA;CAEO,eAAe,OAAkC,MAAK,GAAA,YAAA,CAAA,EAAA,WAAA,eAAA,CAAA,gCAAA,CAAA,CAAA;CAEtD;CAEP;CAEO;CAEA;CAEA;CAEA;CAEA;CAEP;CAEA;CAEA,mBAA2B;CAE3B,kBAAkB,OAAO,YAAY;CAErC,IAAI,kBAAe;EACf,OAAO,KAAK,mBAAkB,MAAO,KAAK,GAAG,KAAK,IAAG,EAAE,GAAI,KAAK,mBAAkB,MAAO;CAC7F;CAEA,IAAI,0BAAuB;EACvB,OAAO,WAAW,KAAK,eAAc,CAAE,IAAI,KAAK,kBAAkB,WAAW,OAAO,KAAK,eAAc,CAAE,CAAC,MAAM,IAAI,KAAK;CAC7H;CAEA,IAAI,oBAAiB;EACjB,OAAO,KAAK,cAAa,KAAM,KAAK,OAAO,YAAY,iBAAiB;CAC5E;CAEA,IAAI,oBAAiB;EACjB,OAAO,KAAK,cAAa,KAAM,KAAK,OAAO,YAAY,iBAAiB;CAC5E;CAEA,IAAI,yBAAsB;EACtB,OAAO,KAAK,mBAAkB,KAAM,KAAK,OAAO,YAAY,sBAAsB,KAAK,OAAO,YAAY,sBAAsB;CACpI;CAEA,IAAI,uBAAoB;EACpB,OAAO,KAAK,iBAAgB,KAAM,KAAK,OAAO,YAAY,oBAAoB;CAClF;CAEA,IAAI,4BAAyB;EACzB,OAAO,KAAK,sBAAqB,KAAM,KAAK,OAAO,YAAY,yBAAyB;CAC5F;CAEA,IAAI,sBAAmB;EACnB,OAAO,KAAK,kBAAiB,IAAK,KAAK,qBAAqB,WAAW,OAAO,KAAK,SAAQ,IAAK,KAAK,WAAU,CAAE,CAAC,SAAS,GAAG,IAAI,KAAK;CAC3I;CAEA,IAAI,cAAW;EACX,OAAO,KAAK,eAAc,CAAE,CAAC,QAAQ,WAAW,CAAC,KAAK,cAAc,MAAM,CAAC,CAAC,CAAC;CACjF;CAEA,IAAI,0BAAuB;EACvB,OAAO,CAAC,KAAK,cAAa;CAC9B;CAEA,IAAI,eAAY;EACZ,OAAO,KAAK,SAAQ,CAAE,EAAE,MAAM,GAAG,KAAK,KAAK,aAAY,KAAM,CAAC,KAAK,YAAW,CAAE;CACpF;CAEA,IAAI,qBAAkB;EAClB,OAAO,KAAK,OAAO,YAAY,OAAO,KAAK,OAAO,YAAY,KAAK,KAAK,YAAW,IAAK,cAAc,iBAAiB;CAC3H;CAEA;CAEA;CAEA,kBAAkB,OAAe,IAAG,GAAA,YAAA,CAAA,EAAA,WAAA,kBAAA,CAAA,gCAAA,CAAA,CAAA;CAEpC,qBAAqB,OAAe,IAAG,GAAA,YAAA,CAAA,EAAA,WAAA,qBAAA,CAAA,gCAAA,CAAA,CAAA;CAEvC,aAAa,OAAgB,OAAM,GAAA,YAAA,CAAA,EAAA,WAAA,aAAA,CAAA,gCAAA,CAAA,CAAA;CAEnC,eAAe,OAAiB;EAC5B,KAAK,WAAW,KAAK;CACzB;CAEA,iBAAiB,eAAc;EAC3B,MAAM,UAAU,KAAK,MAAK,IAAK,KAAK,YAAY,KAAK,SAAQ,CAAE,IAAI,KAAK,SAAQ,KAAM,CAAA;EACtF,OAAO,KAAK,aAAY,IAAK,KAAK,cAAc,OAAO,SAAS,KAAK,cAAc,KAAK,aAAY,GAAI,KAAK,gBAAe,GAAI,KAAK,aAAY,CAAE,IAAI;CAC3J,GAAE,GAAA,YAAA,CAAA,EAAA,WAAA,iBAAA,CAAA,gCAAA,CAAA,CAAA;CAEF,YAAmB,eAA4B;EAC3C,MAAK;EADU,KAAA,gBAAA;EAEf,aAAY;GACR,KAAK,aAAa,IAAI,KAAK,YAAW,CAAE;EAC5C,CAAC;EACD,aAAY;GACR,KAAK,SAAS,IAAI,KAAK,QAAO,CAAE;EACpC,CAAC;CACL;CAEA,SAAM;EACF,KAAK,0BAA0B,KAAK,OAAO,oBAAoB,gBAAe;GAC1E,KAAK,GAAG,aAAY;EACxB,CAAC;EAED,KAAK,gBAAe;EAEpB,IAAI,KAAK,SAAQ,GACb,KAAK,gBAAgB;GACjB,SAAS,UAAU,KAAK,eAAe,KAAK;GAC5C,aAAa,KAAK,YAAW;EAChC;CAET;CAEA,qBAAkB;EACd,KAAK,UAAS,CAAE,CAAC,SAAS,SAAQ;GAC9B,QAAQ,KAAK,QAAO,GAApB;IACI,KAAK;KACD,KAAK,gBAAgB,KAAK;KAC1B;IAEJ,KAAK;KACD,KAAK,iBAAiB,KAAK;KAC3B;IAEJ,KAAK;KACD,KAAK,kBAAkB,KAAK;KAC5B;IAEJ,KAAK;KACD,KAAK,kBAAkB,KAAK;KAC5B;IAEJ,KAAK;KACD,KAAK,kBAAkB,KAAK;KAC5B;IAEJ,KAAK;KACD,KAAK,iBAAiB,KAAK;KAC3B;IAEJ,KAAK;KACD,KAAK,uBAAuB,KAAK;KACjC;IAEJ,KAAK;KACD,KAAK,sBAAsB,KAAK;KAChC;IAEJ,KAAK;KACD,KAAK,qBAAqB,KAAK;KAC/B;IAEJ,KAAK;KACD,KAAK,qBAAqB,KAAK;KAC/B;IAEJ,KAAK;KACD,KAAK,kBAAkB,KAAK;KAC5B;IAEJ;KACI,KAAK,gBAAgB,KAAK;KAC1B;GACR;EACJ,CAAC;CACL;CAEA,YAAY,SAAO;EACf,QAAQ,WAAW,CAAA,EAAA,CAAI,QAAQ,QAAQ,QAAQ,UAAS;GACpD,OAAO,KAAK;IAAE,aAAa;IAAQ,OAAO;IAAM;GAAK,CAAE;GAEvD,MAAM,sBAAsB,KAAK,uBAAuB,MAAM;GAE9D,uBAAuB,oBAAoB,SAAS,MAAM,OAAO,KAAK,CAAC,CAAC;GAExE,OAAO;EACX,GAAG,CAAA,CAAE;CACT;CAEA,kBAAe;EACX,IAAI,KAAK,cAAa,KAAM,KAAK,gBAAe,KAAM,CAAC,KAAK,kBAAiB,KAAM,CAAC,KAAK,SAAQ,GAAI;GACjG,MAAM,qBAAqB,KAAK,4BAA2B;GAC3D,KAAK,mBAAmB,IAAI,kBAAkB;GAC9C,KAAK,eAAe,MAAM,KAAK,eAAc,CAAE,CAAC,KAAK,mBAAkB,EAAG;EAC9E;CACJ;CAKO,YAAY,OAAO,OAAM;EAC5B,KAAK,QAAQ;EACb,KAAK,gBAAgB,KAAK;EAC1B,KAAK,cAAc,KAAK;EAExB,KAAK,SAAS,KAAK;GAAE,eAAe;GAAO,OAAO,KAAK;EAAK,CAAE;CAClE;CAEA,aAAa,QAAM;EACf,OAAO,KAAK,WAAU,CAAE,CAAC,QAAQ,QAAQ,CAAC,OAAO,KAAK,KAAK,eAAe,MAAM,GAAG,KAAK,YAAW,KAAM,EAAE,CAAC;CAChH;CAEA,eAAe,OAAO,QAAQ,QAAQ,IAAE;EACpC,IAAI,KAAK,UAAS,KAAM,KAAK,iBAAiB,MAAM,KAAK,KAAK,SAAQ,GAClE;EAGJ,SAAS,KAAK,QAAQ,KAAK;GAAE,eAAe;GAAO;GAAQ,OAAO,KAAK;EAAK,CAAE;EAC9E,KAAK,SAAQ,IAAK,KAAK,uBAAuB,OAAO,MAAM,IAAI,KAAK,qBAAqB,OAAO,MAAM;EACtG,KAAK,gBAAgB;EACrB,UAAU,MAAM,KAAK,mBAAmB,IAAI,KAAK;CACrD;CAEA,uBAAuB,OAAO,QAAM;EAChC,IAAI,WAAW,KAAK,WAAW,MAAM;EACrC,IAAI,QAAe,CAAA;EAGnB,IAFoB,KAAK,gBAAgB,QAAQ,KAAK,iBAAgB,GAEnD;GACf,IAAI,UAAU,MAAM,WAAW,MAAM;GAErC,IAAI,UACA,QAAQ,UAAU,KAAK,aAAa,MAAM,IAAI,CAAC,KAAK,eAAe,MAAM,CAAC;QACvE;IACH,QAAQ,UAAU,KAAK,WAAU,KAAM,CAAA,IAAK,CAAA;IAC5C,QAAQ,CAAC,GAAI,SAAS,CAAA,GAAK,KAAK,eAAe,MAAM,CAAC;GAC1D;EACJ,OACI,QAAQ,WAAW,KAAK,aAAa,MAAM,IAAI,CAAC,GAAI,KAAK,WAAU,KAAM,CAAA,GAAK,KAAK,eAAe,MAAM,CAAC;EAG7G,KAAK,YAAY,OAAO,KAAK;CACjC;CAEA,qBAAqB,OAAO,QAAM;EAC9B,IAAI,WAAW,KAAK,WAAW,MAAM;EACrC,IAAI,eAAe;EACnB,IAAI,QAAQ;EAGZ,IAFoB,KAAK,gBAAgB,QAAQ,KAAK,iBAAgB,GAEnD;GACf,IAAI,UAAU,MAAM,WAAW,MAAM;GAErC,IAAI,UACA;QAAI,SAAS;KACT,QAAQ;KACR,eAAe;IACnB;UACG;IACH,QAAQ,KAAK,eAAe,MAAM;IAClC,eAAe;GACnB;EACJ,OAAO;GACH,QAAQ,WAAW,OAAO,KAAK,eAAe,MAAM;GACpD,eAAe;EACnB;EAEA,IAAI,cACA,KAAK,YAAY,OAAO,KAAK;CAErC;CAEA,oBAAoB,OAAO,QAAQ,IAAI,MAAM,IAAE;EAC3C,UAAU,OAAO,QAAQ,KAAK,+BAA+B,KAAK,IAAI;EACtE,QAAQ,OAAO,MAAM,KAAK,+BAA+B,KAAK;EAE9D,IAAI,UAAU,MAAM,QAAQ,IAAI;GAC5B,MAAM,aAAa,KAAK,IAAI,OAAO,GAAG;GACtC,MAAM,WAAW,KAAK,IAAI,OAAO,GAAG;GACpC,MAAM,QAAQ,KAAK,eAAc,CAAE,CAC9B,MAAM,YAAY,WAAW,CAAC,CAAC,CAC/B,QAAQ,WAAW,KAAK,cAAc,MAAM,CAAC,CAAC,CAC9C,KAAK,WAAW,KAAK,eAAe,MAAM,CAAC;GAEhD,KAAK,YAAY,OAAO,KAAK;EACjC;CACJ;CAEA,YAAY,OAAK;EACb,IAAI,KAAK,UAAS,KAAM,KAAK,SAAQ,GACjC;EAEJ,MAAM,KAAK,wBAAuB,CAAE,EAAE,aAAa;EAEnD,IAAI,KAAK,UAAS,MAAO,MACrB,KAAK,kBAAkB,KAAK;GACxB,eAAe;GACf,SAAS,CAAC,KAAK,YAAW;EAC7B,CAAA;OACE;GACH,MAAM,QAAQ,KAAK,YAAW,IACxB,CAAA,IACA,KAAK,eAAc,CAAE,CAChB,QAAQ,WAAW,KAAK,cAAc,MAAM,CAAC,CAAC,CAC9C,KAAK,WAAW,KAAK,eAAe,MAAM,CAAC;GAEtD,KAAK,YAAY,OAAO,KAAK;GAC7B,KAAK,SAAS,KAAK;IAAE,eAAe;IAAO,OAAO,KAAK;GAAK,CAAE;EAClE;CACJ;CAEA,cAAW;EACP,OAAO,KAAK,UAAS,MAAO,OAAO,KAAK,UAAS,IAAK,WAAW,KAAK,eAAc,CAAE,KAAK,KAAK,eAAc,CAAE,CAAC,OAAO,WAAW,KAAK,cAAc,MAAM,KAAK,KAAK,iBAAiB,MAAM,KAAK,KAAK,WAAW,MAAM,CAAC;CAC7N;CAEA,mBAAgB;EACZ,IAAI,KAAK,UAAS,GACd;EAGJ,KAAK,gBAAgB;CACzB;CAEA,kBAAkB,OAAmB,OAAa;EAC9C,KAAK,yBAAyB,OAAO,KAAK;CAC9C;CAEA,mBAAmB,OAAmB,OAAa;EAC/C,IAAI,KAAK,aAAY,KAAM,KAAK,SAC5B,KAAK,yBAAyB,OAAO,KAAK;CAElD;CAEA,oBAAoB,OAAmB,QAAW;EAC9C,IAAI,KAAK,UAAS,KAAM,KAAK,iBAAiB,MAAM,KAAK,KAAK,SAAQ,GAClE;EAGJ,KAAK,WAAW,KAAK;GACjB,eAAe;GACP;GACR,OAAO,KAAK;EACf,CAAA;CACL;CAEA,mBAAmB,OAAiB;EAChC,MAAM,KAAK,cAAa,CAAE,EAAE,aAAa;EACzC,MAAM,mBAAmB,yBAAyB,KAAK,IAAI,eAAe,0CAAwC;EAClH,KAAK,2BAA0B,CAAE,EAAE,kBAAkB,KAAK,2BAA0B,CAAG,CAAC,cAAc,WAAW,QAAQ,gBAAgB,IAAI,KAAK;EAClJ,KAAK,4BAA2B,CAAE,EAAE,kBAAkB,KAAK,4BAA2B,CAAG,CAAC,cAAc,WAAW;CACvH;CAEA,kBAAkB,OAAiB;EAG/B,IAFsB,MAAM,kBAEN,KAAK,cAAa,CAAE,EAAE,eAAe;GAGvD,MAF8B,yBAAyB,KAAK,IAAI,eAAe,0CAEzE,CAAgB;GACtB,KAAK,4BAA2B,CAAE,EAAE,kBAAkB,KAAK,4BAA2B,CAAG,CAAC,cAAc,WAAW;EACvH,OACI,MAAM,KAAK,4BAA2B,CAAE,EAAE,aAAa;EAE3D,KAAK,2BAA0B,CAAE,EAAE,kBAAkB,KAAK,2BAA0B,CAAG,CAAC,cAAc,WAAW;CACrH;CAEA,WAAW,OAAiB;EACxB,MAAM,6BAA6B,KAAK,2BAA0B;EAClE,MAAM,8BAA8B,KAAK,4BAA2B;EACpE,IAAI,CAAC,KAAK,GAAG,cAAc,SAAS,MAAM,aAAa,KAAK,8BAA8B,6BAA6B;GACnH,4BAA4B,cAAc,WAAW,2BAA2B,cAAc,WAAW;GACzG,KAAK,mBAAmB;EAC5B;CACJ;CAEA,YAAY,OAAiB;EACzB,KAAK,UAAU;EACf,MAAM,qBAAqB,KAAK,mBAAkB,MAAO,KAAK,KAAK,mBAAkB,IAAK,KAAK,gBAAe,IAAK,KAAK,4BAA2B,IAAK,KAAK,wBAAuB;EACpL,KAAK,mBAAmB,IAAI,kBAAkB;EAC9C,KAAK,aAAa,kBAAkB;EACpC,KAAK,QAAQ,KAAK,KAAK;EAEvB,KAAK,mBAAmB;CAC5B;CAEA,WAAW,OAAiB;EACxB,KAAK,UAAU;EACf,KAAK,mBAAmB,IAAI,EAAE;EAC9B,KAAK,gBAAgB,IAAI,EAAE;EAC3B,KAAK,cAAc;EACnB,KAAK,OAAO,KAAK,KAAK;CAC1B;CAEA,wBAAwB,OAAK;EACzB,IAAI,KAAK,UAAS,GAAI;GAClB,MAAM,eAAc;GAEpB;EACJ;EAEA,QAAQ,MAAM,MAAd;GACI,KAAK;IACD,KAAK,YAAY,KAAK;IACtB;GACJ,KAAK;IACD,KAAK,YAAY,KAAK;IACtB;GACJ,KAAK;IACD,KAAK,2BAA2B,KAAK;IACrC;GACJ,SACI;EACR;CACJ;CAEA,2BAA2B,OAAK;EAC5B,MAAM,KAAK,cAAa,CAAE,EAAE,aAAa;EACzC,MAAM,eAAc;CACxB;CAEA,eAAe,OAAY;EACvB,IAAI,QAAiB,MAAM,OAA4B,OAAO,KAAI;EAClE,KAAK,aAAa,IAAI,KAAK;EAC3B,KAAK,mBAAmB,IAAI,EAAE;EAC9B,KAAK,gBAAgB,IAAI,EAAE;EAC3B,KAAK,SAAS,KAAK;GAAE,eAAe;GAAO,QAAQ,KAAK,aAAY;EAAE,CAAE;EAExE,CAAC,KAAK,2BAA2B,KAAK,SAAQ,CAAE,EAAE,cAAc,CAAC;CACrE;CAEA,aAAa,OAAiB;EAC1B,KAAK,mBAAmB,IAAI,EAAE;EAC9B,KAAK,gBAAgB,IAAI,EAAE;CAC/B;CAEA,cAAc,OAAoB;EAC9B,MAAM,UAAU,MAAM,WAAW,MAAM;EAEvC,QAAQ,MAAM,MAAd;GACI,KAAK;IACD,KAAK,eAAe,KAAK;IACzB;GAEJ,KAAK;IACD,KAAK,aAAa,KAAK;IACvB;GAEJ,KAAK;IACD,KAAK,UAAU,KAAK;IACpB;GAEJ,KAAK;IACD,KAAK,SAAS,KAAK;IACnB;GAEJ,KAAK;IACD,KAAK,cAAc,KAAK;IACxB;GAEJ,KAAK;IACD,KAAK,YAAY,KAAK;IACtB;GAEJ,KAAK;GACL,KAAK;GACL,KAAK;IACD,KAAK,WAAW,KAAK;IACrB;GAEJ,KAAK,OAED;GAEJ,KAAK;GACL,KAAK;IACD,KAAK,WAAU;IACf;GAEJ;IACI,IAAI,KAAK,SAAQ,KAAM,MAAM,SAAS,UAAU,SAAS;KACrD,MAAM,QAAQ,KAAK,eAAc,CAAE,CAC9B,QAAQ,WAAW,KAAK,cAAc,MAAM,CAAC,CAAC,CAC9C,KAAK,WAAW,KAAK,eAAe,MAAM,CAAC;KAEhD,KAAK,YAAY,OAAO,KAAK;KAE7B,MAAM,eAAc;KACpB;IACJ;IAEA,IAAI,CAAC,WAAW,qBAAqB,MAAM,GAAG,GAAG;KAC7C,KAAK,cAAc,OAAO,MAAM,GAAG;KACnC,MAAM,eAAc;IACxB;IAEA;EACR;CACJ;CAEA,gBAAgB,OAAoB;EAChC,QAAQ,MAAM,MAAd;GACI,KAAK;IACD,KAAK,eAAe,KAAK;IACzB;GAEJ,KAAK;IACD,KAAK,aAAa,KAAK;IACvB;GAEJ,KAAK;GACL,KAAK;IACD,KAAK,eAAe,OAAO,IAAI;IAC/B;GAEJ,KAAK;IACD,KAAK,UAAU,OAAO,IAAI;IAC1B;GAEJ,KAAK;IACD,KAAK,SAAS,OAAO,IAAI;IACzB;GAEJ,KAAK;IACD,KAAK,WAAW,KAAK;IACrB;GAEJ,KAAK;GACL,KAAK;IACD,KAAK,WAAU;IACf;GAEJ,SACI;EACR;CACJ;CAEA,eAAe,OAAoB;EAC/B,MAAM,cAAc,KAAK,mBAAkB,MAAO,KAAK,KAAK,oBAAoB,KAAK,mBAAkB,CAAE,IAAI,KAAK,4BAA2B;EAE7I,IAAI,KAAK,SAAQ,KAAM,MAAM,UACzB,KAAK,oBAAoB,OAAO,KAAK,gBAAe,GAAI,WAAW;EAGvE,KAAK,yBAAyB,OAAO,WAAW;EAChD,MAAM,eAAc;CACxB;CAEA,aAAa,OAAoB;EAC7B,MAAM,cAAc,KAAK,mBAAkB,MAAO,KAAK,KAAK,oBAAoB,KAAK,mBAAkB,CAAE,IAAI,KAAK,2BAA0B;EAE5I,IAAI,KAAK,SAAQ,KAAM,MAAM,UACzB,KAAK,oBAAoB,OAAO,aAAa,KAAK,gBAAe,CAAE;EAGvE,KAAK,yBAAyB,OAAO,WAAW;EAChD,MAAM,eAAc;CACxB;CAEA,eAAe,OAAsB,qBAAqB,OAAK;EAC3D,sBAAsB,KAAK,mBAAmB,IAAI,EAAE;CACxD;CAEA,UAAU,OAAsB,qBAA8B,OAAK;EAC/D,IAAI,oBAAoB;GACnB,MAAM,cAAmC,kBAAkB,GAAG,CAAC;GAChE,KAAK,mBAAmB,IAAI,EAAE;EAClC,OAAO;GACH,IAAI,UAAU,MAAM,WAAW,MAAM;GACrC,IAAI,cAAc,KAAK,qBAAoB;GAE3C,IAAI,KAAK,SAAQ,KAAM,MAAM,YAAY,SACrC,KAAK,oBAAoB,OAAO,aAAa,KAAK,gBAAe,CAAE;GAGvE,KAAK,yBAAyB,OAAO,WAAW;EACpD;EAEA,MAAM,eAAc;CACxB;CAEA,SAAS,OAAsB,qBAA8B,OAAK;EAC9D,IAAI,oBAAoB;GACpB,MAAM,SAAS,MAAM;GACrB,MAAM,MAAM,OAAO,MAAM;GAEzB,OAAO,kBAAkB,KAAK,GAAG;GACjC,KAAK,mBAAmB,IAAI,EAAE;EAClC,OAAO;GACH,IAAI,UAAU,MAAM,WAAW,MAAM;GACrC,IAAI,cAAc,KAAK,oBAAmB;GAE1C,IAAI,KAAK,SAAQ,KAAM,MAAM,YAAY,SACrC,KAAK,oBAAoB,OAAO,KAAK,gBAAe,GAAI,WAAW;GAGvE,KAAK,yBAAyB,OAAO,WAAW;EACpD;EAEA,MAAM,eAAc;CACxB;CAEA,cAAc,OAAoB;EAC9B,KAAK,aAAa,CAAC;EACnB,MAAM,eAAc;CACxB;CAEA,YAAY,OAAoB;EAC5B,KAAK,aAAa,KAAK,eAAc,CAAE,CAAC,SAAS,CAAC;EAClD,MAAM,eAAc;CACxB;CAEA,WAAW,OAAK;EACZ,IAAI,KAAK,mBAAkB,MAAO,IAC9B,IAAI,KAAK,SAAQ,KAAM,MAAM,UAAU,KAAK,oBAAoB,OAAO,KAAK,mBAAkB,CAAE;OAC3F,KAAK,eAAe,OAAO,KAAK,eAAc,CAAE,CAAC,KAAK,mBAAkB,EAAG;EAGpF,MAAM,eAAc;CACxB;CAEA,WAAW,OAAoB;EAC3B,KAAK,WAAW,KAAK;CACzB;CAEA,aAAU;EACN,MAAM,qBAAqB,KAAK,mBAAkB;EAClD,KAAK,gBAAgB,IAAI,kBAAkB;CAC/C;CAEA,uBAAuB,aAAW;EAC9B,MAAM,sBAAsB,KAAK,oBAAmB;EACpD,OAAO,sBAAsB,iBAAiB,aAAa,mBAAmB,IAAI,YAAY;CAClG;CAEA,oBAAoB,aAAgB;EAChC,MAAM,mBAAmB,KAAK,iBAAgB;EAC9C,OAAO,mBAAmB,iBAAiB,aAAa,gBAAgB,IAAI,eAAe,YAAY,UAAU,SAAY,YAAY,QAAQ;CACrJ;CAEA,eAAe,QAAM;EACjB,MAAM,cAAc,KAAK,YAAW;EACpC,OAAO,cAAc,iBAAiB,QAAQ,WAAW,IAAI,OAAO,SAAS,SAAY,OAAO,QAAQ;CAC5G;CAEA,eAAe,OAAO,iBAAe;EACjC,OAAO,KAAK,0BAA0B,QAAQ,mBAAmB,gBAAgB,eAAe,KAAK,CAAC,CAAC;CAC3G;CAEA,eAAe,QAAW;EACtB,MAAM,cAAc,KAAK,YAAW;EACpC,OAAO,cAAc,iBAAiB,QAAQ,WAAW,IAAI,CAAC,KAAK,YAAW,KAAM,UAAU,OAAO,UAAU,SAAY,OAAO,QAAQ;CAC9I;CAEA,gBAAgB,OAAa;EACzB,QACK,KAAK,iBAAgB,IAChB,QACA,KAAK,eAAc,CAAE,CAChB,MAAM,GAAG,KAAK,CAAC,CACf,QAAQ,WAAW,KAAK,cAAc,MAAM,CAAC,CAAC,CAAC,SACpD,SAAS;CAEvB;CAEA,aAAa,QAAa,aAAkB,OAAe,KAAW;EAClE,OAAO,KAAK,IAAI,KAAK,EACjB,SAAS;GACL,UAAU,KAAK,WAAW,MAAM;GAChC,SAAS,KAAK,mBAAkB,MAAO,KAAK,eAAe,OAAO,WAAW;GAC7E,UAAU,KAAK,iBAAiB,MAAM;EACzC,EACJ,CAAA;CACL;CAEA,oBAAiB;EACb,OAAO,WAAW,KAAK,WAAU,CAAE;CACvC;CAEA,cAAc,QAAM;EAChB,OAAO,KAAK,iBAAgB,KAAM,OAAO,eAAe,OAAO;CACnE;CAEA,yBAAyB,OAAO,OAAK;EACjC,IAAI,KAAK,mBAAkB,MAAO,OAAO;GACrC,KAAK,mBAAmB,IAAI,KAAK;GACjC,KAAK,aAAY;GAEjB,IAAI,KAAK,cAAa,KAAM,CAAC,KAAK,SAAQ,GACtC,KAAK,eAAe,OAAO,KAAK,eAAc,CAAE,CAAC,MAAM;EAE/D;CACJ;CAEA,cAAc,OAAO,MAAI;EACrB,KAAK,eAAe,KAAK,eAAe,MAAM;EAE9C,IAAI,cAAc;EAClB,IAAI,UAAU;EAEd,IAAI,KAAK,mBAAkB,MAAO,IAAI;GAClC,cAAc,KAAK,eAAc,CAAE,CAC9B,MAAM,KAAK,mBAAkB,CAAE,CAAC,CAChC,WAAW,WAAW,KAAK,gBAAgB,MAAM,CAAC;GACvD,cACI,gBAAgB,KACV,KAAK,eAAc,CAAE,CAChB,MAAM,GAAG,KAAK,mBAAkB,CAAE,CAAC,CACnC,WAAW,WAAW,KAAK,gBAAgB,MAAM,CAAC,IACvD,cAAc,KAAK,mBAAkB;EACnD,OACI,cAAc,KAAK,eAAc,CAAE,CAAC,WAAW,WAAW,KAAK,gBAAgB,MAAM,CAAC;EAG1F,IAAI,gBAAgB,IAChB,UAAU;EAGd,IAAI,gBAAgB,MAAM,KAAK,mBAAkB,MAAO,IACpD,cAAc,KAAK,4BAA2B;EAGlD,IAAI,gBAAgB,IAChB,KAAK,yBAAyB,OAAO,WAAW;EAGpD,IAAI,KAAK,eACL,aAAa,KAAK,aAAa;EAGnC,KAAK,gBAAgB,iBAAgB;GACjC,KAAK,cAAc;GACnB,KAAK,gBAAgB;EACzB,GAAG,GAAG;EAEN,OAAO;CACX;CAEA,gBAAgB,QAAM;EAClB,OAAO,KAAK,cAAc,MAAM,KAAK,KAAK,eAAe,MAAM,CAAC,EAAE,kBAAkB,KAAK,aAAY,CAAE,CAAC,CAAC,WAAW,KAAK,aAAa,kBAAkB,KAAK,aAAY,CAAE,CAAC;CAChL;CAEA,aAAa,QAAQ,IAAE;EACnB,MAAM,KAAK,UAAU,KAAK,GAAG,KAAK,IAAG,EAAE,GAAI,UAAU,KAAK;EAC1D,MAAM,UAAU,WAAW,KAAK,cAAa,CAAE,EAAE,eAAe,UAAU,GAAE,GAAI;EAEhF,IAAI,SACA,QAAQ,kBAAkB,QAAQ,eAAe;GAAE,OAAO;GAAW,QAAQ;EAAS,CAAE;OACrF,IAAI,CAAC,KAAK,yBACb,KAAK,cAAa,KAAM,KAAK,SAAQ,CAAE,EAAE,cAAc,UAAU,KAAK,QAAQ,KAAK,mBAAkB,CAAE;CAE/G;CAEA,uBAAoB;EAChB,OAAO,KAAK,eAAc,CAAE,CAAC,WAAW,WAAW,KAAK,cAAc,MAAM,CAAC;CACjF;CAEA,sBAAmB;EACf,OAAO,cAAc,KAAK,eAAc,IAAK,WAAW,KAAK,cAAc,MAAM,CAAC;CACtF;CAEA,8BAA2B;EACvB,MAAM,gBAAgB,KAAK,6BAA4B;EAEvD,OAAO,gBAAgB,IAAI,KAAK,qBAAoB,IAAK;CAC7D;CAEA,6BAA0B;EACtB,MAAM,gBAAgB,KAAK,4BAA2B;EAEtD,OAAO,gBAAgB,IAAI,KAAK,oBAAmB,IAAK;CAC5D;CAEA,8BAA2B;EACvB,OAAO,KAAK,kBAAiB,IAAK,cAAc,KAAK,eAAc,IAAK,WAAW,KAAK,sBAAsB,MAAM,CAAC,IAAI;CAC7H;CAEA,oBAAoB,OAAK;EACrB,MAAM,qBACF,QAAQ,KAAK,eAAc,CAAE,CAAC,SAAS,IACjC,KAAK,eAAc,CAAE,CAChB,MAAM,QAAQ,CAAC,CAAC,CAChB,WAAW,WAAW,KAAK,cAAc,MAAM,CAAC,IACrD;EAEV,OAAO,qBAAqB,KAAK,qBAAqB,QAAQ,IAAI;CACtE;CAEA,4BAA4B,OAAK;EAC7B,MAAM,qBACF,KAAK,kBAAiB,KAAM,QAAQ,KAAK,eAAc,CAAE,CAAC,SAAS,IAC7D,KAAK,eAAc,CAAE,CAChB,MAAM,QAAQ,CAAC,CAAC,CAChB,WAAW,WAAW,KAAK,sBAAsB,MAAM,CAAC,IAC7D;EAEV,OAAO,qBAAqB,KAAK,qBAAqB,QAAQ,IAAI;CACtE;CAEA,4BAA4B,OAAK;EAC7B,MAAM,qBAAqB,KAAK,kBAAiB,KAAM,QAAQ,IAAI,cAAc,KAAK,eAAc,CAAE,CAAC,MAAM,GAAG,KAAK,IAAI,WAAW,KAAK,sBAAsB,MAAM,CAAC,IAAI;EAE1K,OAAO,qBAAqB,KAAK,qBAAqB;CAC1D;CAEA,+BAA4B;EACxB,OAAO,KAAK,kBAAiB,IAAK,KAAK,eAAc,CAAE,CAAC,WAAW,WAAW,KAAK,sBAAsB,MAAM,CAAC,IAAI;CACxH;CAEA,oBAAoB,OAAK;EACrB,MAAM,qBAAqB,QAAQ,IAAI,cAAc,KAAK,eAAc,CAAE,CAAC,MAAM,GAAG,KAAK,IAAI,WAAW,KAAK,cAAc,MAAM,CAAC,IAAI;EAEtI,OAAO,qBAAqB,KAAK,qBAAqB;CAC1D;CAEA,0BAAuB;EACnB,IAAI,KAAK,QAAO,GACZ,IAAI,KAAK,SAAQ,GACb,KAAK,IAAI,QAAQ,KAAK,WAAU,CAAE,CAAC,SAAS,GAAG,SAAS,GAAG,SAAS;GAChE,MAAM,QAAQ,KAAK,WAAU,CAAE,CAAC;GAChC,MAAM,qBAAqB,KAAK,eAAc,CAAE,CAAC,WAAW,WAAW,KAAK,sBAAsB,MAAM,KAAK,KAAK,SAAS,OAAO,KAAK,eAAe,MAAM,CAAC,CAAC;GAE9J,IAAI,qBAAqB,IAAI,OAAO;EACxC;OAEA,OAAO,KAAK,eAAc,CAAE,CAAC,WAAW,WAAW,KAAK,sBAAsB,MAAM,CAAC;EAI7F,OAAO;CACX;CAEA,+BAA+B,OAAO,eAAe,OAAK;EACtD,IAAI,qBAAqB;EAEzB,IAAI,KAAK,kBAAiB,GACtB,IAAI,cAAc;GACd,qBAAqB,KAAK,4BAA4B,KAAK;GAC3D,qBAAqB,uBAAuB,KAAK,KAAK,4BAA4B,KAAK,IAAI;EAC/F,OAAO;GACH,qBAAqB,KAAK,4BAA4B,KAAK;GAC3D,qBAAqB,uBAAuB,KAAK,KAAK,4BAA4B,KAAK,IAAI;EAC/F;EAGJ,OAAO,qBAAqB,KAAK,qBAAqB;CAC1D;CAEA,cAAW;EACP,OAAO,KAAK,YAAW,IAAK,OAAO,KAAK,QAAO;CACnD;CAEA,sBAAsB,QAAM;EACxB,OAAO,KAAK,cAAc,MAAM,KAAK,KAAK,WAAW,MAAM;CAC/D;CAEA,iBAAiB,QAAW;EACxB,MAAM,iBAAiB,KAAK,eAAc;EAC1C,IAAI,WAAW,cAAc,GACzB,OAAO,eAAe,MAAM;EAEhC,OAAO,iBAAiB,iBAAiB,QAAQ,cAAc,IAAI;CACvE;CAEA,SAAS,QAAQ,QAAM;EACnB,OAAO,OAAO,QAAQ,QAAQ,KAAK,YAAW,KAAM,EAAE;CAC1D;CAEA,WAAW,QAAM;EACb,MAAM,cAAc,KAAK,eAAe,MAAM;EAE9C,IAAI,KAAK,SAAQ,GAAI,QAAQ,KAAK,WAAU,KAAM,CAAA,EAAA,CAAI,MAAM,UAAU,KAAK,SAAS,OAAO,WAAW,CAAC;OAClG,OAAO,KAAK,SAAS,KAAK,WAAU,GAAI,WAAW;CAC5D;CAEA,cAAc,QAAM;EAChB,OAAO,UAAU,EAAE,KAAK,iBAAiB,MAAM,KAAK,KAAK,cAAc,MAAM;CACjF;CAEA,UAAO;EACH,OAAO,CAAC,KAAK,SAAQ,CAAE,EAAE,UAAU,CAAC,KAAK,eAAc,CAAE,EAAE;CAC/D;CAEA,YAAS;EACL,OAAO,KAAK,aAAY,MAAO,KAAK,aAAY,CAAE,EAAE,KAAI,CAAE,CAAC,UAAU,KAAK;CAC9E;CAEA,cAAW;EACP,MAAM,kBAAkB,KAAK,gBAAe;EAC5C,IAAI,mBAAmB,gBAAgB,eACnC,gBAAgB,cAAc,QAAQ;EAG1C,KAAK,aAAa,IAAI,IAAI;CAC9B;CAEA,gBAAa;EACT,KAAK,WAAW,IAAI,IAAI;EACxB,KAAK,GAAG,cAAc,aAAa,sBAAsB,MAAM;CACnE;CAEA,eAAY;EACR,KAAK,WAAW,IAAI,KAAK;EACzB,KAAK,GAAG,cAAc,aAAa,sBAAsB,OAAO;CACpE;CAEA,KAAK,OAA4B;EAC7B,KAAK,WAAW,IAAI,KAAK;EACzB,IAAI,OAAO;GAEP,IAAI,KAAK,SAAQ,KAAM,MAAM,sBAAsB,MAAM,WAAW;IAChE,MAAM,iBAAiB,CAAC,GAAG,KAAK,SAAQ,CAAE;IAC1C,gBAAgB,gBAAgB,MAAM,eAAe,MAAM,YAAY;IACvE,KAAK,SAAS,IAAI,cAAc;IAChC,KAAK,yBAAyB,OAAO,MAAM,YAAY;IAGvD,IAAI,KAAK,WAAU,GAAI;KACnB,KAAK,gBAAgB,KAAK,WAAU,CAAE;KACtC,KAAK,cAAc,KAAK,WAAU,CAAE;IACxC;IAGA,KAAK,GAAG,aAAY;GACxB;GAGA,KAAK,OAAO,KAAK,KAAK;EAC1B;CACJ;CAEA,IAAI,iBAAc;EACd,OAAO,KAAK,GAAG;GACX,SAAS,KAAK,QAAO;GACrB,UAAU,KAAK,UAAS;EAC3B,CAAA;CACL;CAQA,kBAAkB,OAAY,eAAmC;EAC7D,KAAK,QAAQ;EACb,cAAc,KAAK,KAAK;EACxB,KAAK,GAAG,aAAY;CACxB;CAEA,YAAS;EACL,IAAI,KAAK,yBACL,KAAK,wBAAwB,YAAW;CAEhD;CA93CS,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAO,MAAA,CAAA,EAAA,OAAA,GAAA,cAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAP,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAO,cAAA;EAAA,UAAA;EAAA,QAAA;GAAA,UAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,IAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,eAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,uBAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,kBAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,iBAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,WAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,eAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,cAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,cAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,eAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,cAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,MAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,eAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,uBAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,sBAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,cAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,UAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,UAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,YAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,WAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,gBAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,UAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,UAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,QAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,UAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,iBAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,cAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,kBAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,SAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,eAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,aAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,aAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,qBAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,kBAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,gBAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,iBAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,mBAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,oBAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,cAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,OAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,SAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,aAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,WAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,SAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,mBAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,WAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,UAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,cAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,OAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;EAAA;EAAA,SAAA;GAAA,UAAA;GAAA,SAAA;GAAA,YAAA;GAAA,UAAA;GAAA,SAAA;GAAA,QAAA;GAAA,mBAAA;GAAA,YAAA;GAAA,QAAA;EAAA;EAAA,MAAA;GAAA,WAAA,EAAA,YAAA,yBAAA;GAAA,YAAA;IAAA,WAAA;IAAA,SAAA;IAAA,eAAA;GAAA;EAAA;EAAA,WAtBL;GACP;GACA;GACA;IACI,SAAS;IACT,UAAU,EACN,QAAQ,KACX;GACJ;GACD;IAAE,SAAS;IAAkB,aAAa;GAAO;GACjD;IAAE,SAAS;IAAiB,aAAa;GAAO;EACnD;EAAA,SAAA;GAAA;IAAA,cAAA;IAAA,OAAA;IAAA,WAyWmC;IAAM,aAAA;IAAA,UAAA;GAAA;GAAA;IAAA,cAAA;IAAA,OAAA;IAAA,WAEN;IAAM,aAAA;IAAA,UAAA;GAAA;GAAA;IAAA,cAAA;IAAA,OAAA;IAAA,WAAA,CAAA,MAAA;IAAA,UAAA;GAAA;GAAA;IAAA,cAAA;IAAA,OAAA;IAAA,WAAA,CAAA,OAAA;IAAA,UAAA;GAAA;GAAA;IAAA,cAAA;IAAA,OAAA;IAAA,WAAA,CAAA,QAAA;IAAA,UAAA;GAAA;GAAA;IAAA,cAAA;IAAA,OAAA;IAAA,WAAA,CAAA,QAAA;IAAA,UAAA;GAAA;GAAA;IAAA,cAAA;IAAA,OAAA;IAAA,WAAA,CAAA,QAAA;IAAA,UAAA;GAAA;GAAA;IAAA,cAAA;IAAA,OAAA;IAAA,WAAA,CAAA,aAAA;IAAA,UAAA;GAAA;GAAA;IAAA,cAAA;IAAA,OAAA;IAAA,WAAA,CAAA,OAAA;IAAA,UAAA;GAAA;GAAA;IAAA,cAAA;IAAA,OAAA;IAAA,WAAA,CAAA,YAAA;IAAA,UAAA;GAAA;GAAA;IAAA,cAAA;IAAA,OAAA;IAAA,WAAA,CAAA,WAAA;IAAA,UAAA;GAAA;GAAA;IAAA,cAAA;IAAA,OAAA;IAAA,WAAA,CAAA,WAAA;IAAA,UAAA;GAAA;GAAA;IAAA,cAAA;IAAA,OAAA;IAAA,WAAA,CAAA,QAAA;IAAA,UAAA;GAAA;GAAA;IAAA,cAAA;IAAA,WAoFL;IAAa,UAAA;GAAA;EAAA;EAAA,aAAA;GAAA;IAAA,cAAA;IAAA,OAAA;IAAA,WAAA,CAAA,cAAA;IAAA,aAAA;IAAA,UAAA;GAAA;GAAA;IAAA,cAAA;IAAA,OAAA;IAAA,WAAA,CAAA,QAAA;IAAA,aAAA;IAAA,UAAA;GAAA;GAAA;IAAA,cAAA;IAAA,OAAA;IAAA,WAAA,CAAA,4BAAA;IAAA,aAAA;IAAA,UAAA;GAAA;GAAA;IAAA,cAAA;IAAA,OAAA;IAAA,WAAA,CAAA,6BAAA;IAAA,aAAA;IAAA,UAAA;GAAA;GAAA;IAAA,cAAA;IAAA,OAAA;IAAA,WAAA,CAAA,UAAA;IAAA,aAAA;IAAA,UAAA;GAAA;GAAA;IAAA,cAAA;IAAA,OAAA;IAAA,WAAA,CAAA,MAAA;IAAA,aAAA;IAAA,UAAA;GAAA;GAAA;IAAA,cAAA;IAAA,OAAA;IAAA,WAAA,CAAA,WAAA;IAAA,aAAA;IAAA,UAAA;GAAA;EAAA;EAAA,iBAAA;EAAA,gBAAA,CAAA,EAAA,WAAA,GAAA,KAAA,CAAA;EAAA,UAAA;EAAA,UC/ftD;EAwRA,cAAA;GAAA;IAAA,MAAA;IAAA,MDrOc;GAAY;GAAA;IAAA,MAAA;IAAA,MAAA,GAAA;IAAA,UAAA;IAAA,QAAA,CAAA,SAAA,SAAA;GAAA;GAAA;IAAA,MAAA;IAAA,MAAA,GAAA;IAAA,UAAA;IAAA,QAAA;KAAA;KAAA;KAAA;IAAA;GAAA;GAAA;IAAA,MAAA;IAAA,MAAA,GAAA;IAAA,UAAA;IAAA,QAAA,CAAA,SAAA;GAAA;GAAA;IAAA,MAAA;IAAA,MAAE;IAAM,UAAA;GAAA;GAAA;IAAA,MAAA;IAAA,MAAE;IAAQ,UAAA;IAAA,QAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;IAAA;IAAA,SAAA;KAAA;KAAA;KAAA;IAAA;GAAA;GAAA;IAAA,MAAA;IAAA,MAAE;IAAS,UAAA;IAAA,QAAA,CAAA,YAAA,YAAA;GAAA;GAAA;IAAA,MAAA;IAAA,MAAE;IAAU,UAAA;GAAA;GAAA;IAAA,MAAA;IAAA,MAAY;IAAS,UAAA;GAAA;GAAA;IAAA,MAAA;IAAA,MAAE;IAAS,UAAA;IAAA,QAAA;KAAA;KAAA;KAAA;IAAA;GAAA;GAAA;IAAA,MAAA;IAAA,MAAE;IAAS,UAAA;IAAA,QAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;IAAA;GAAA;GAAA;IAAA,MAAA;IAAA,MAAE;IAAS,UAAA;GAAA;GAAA;IAAA,MAAA;IAAA,MAAE;GAAW;GAAA;IAAA,MAAA;IAAA,MAAA,GAAA;IAAA,UAAA;GAAA;GAAA;IAAA,MAAA;IAAA,MAAA,GAAA;IAAA,UAAA;IAAA,QAAA;KAAA;KAAA;KAAA;KAAA;IAAA;IAAA,SAAA,CAAA,eAAA;IAAA,UAAA,CAAA,SAAA;GAAA;GAAA;IAAA,MAAA;IAAA,MAAE;GAAY;GAAA;IAAA,MAAA;IAAA,MAAE;GAAc;GAAA;IAAA,MAAA;IAAA,MAAA,GAAA;IAAA,UAAA;IAAA,QAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;IAAA;IAAA,SAAA;KAAA;KAAA;KAAA;KAAA;IAAA;IAAA,UAAA,CAAA,aAAA;GAAA;GAAA;IAAA,MAAA;IAAA,MAAA,GAAA;IAAA,UAAA;IAAA,QAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;IAAA;IAAA,SAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;IAAA;IAAA,UAAA,CAAA,SAAA;GAAA;GAAA;IAAA,MAAA;IAAA,MAAE;GAAU;GAAA;IAAA,MAAA;IAAA,MAAA,GAAA;IAAA,UAAA;IAAA,QAAA,CAAA,OAAA;GAAA;EAAA;EAAA,iBAAA,GAAA,wBAAA;EAAA,eAAA,GAAA,kBAAA;CAAA,CAAA;;AAwBnK,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAO,YAAA,CAAA;EA3BnB,MAAA;EACa,MAAA,CAAA;GAAA,UAAA;GAAkC,YAChC;GAAI,SACP;IAAC;IAAc;IAAQ;IAAU;IAAW;IAAY;IAAU;IAAW;IAAW;IAAW;IAAW;IAAa;IAAc;IAAgB;GAAU;GAAC,WAElK;IACP;IACA;IACA;KACI,SAAS;KACT,UAAU,EACN,QAAQ,KACX;IACJ;IACD;KAAE,SAAS;KAAkB,aAAW;IAAS;IACjD;KAAE,SAAS;KAAiB,aAAW;IAAS;GACnD;GAAA,iBACgB,wBAAwB;GAAM,eAChC,kBAAkB;GAAI,MAC/B;IACF,aAAa;IACb,cAAc;IACd,WAAW;IACX,iBAAiB;GACpB;GAAA,gBACe,CAAC,IAAI;GAAC,UAAA;EAAA,CAAA;CAkV6C,CAAA;CAAA,sBAAA,CAAA,EAAA,MAAA,GAAA,cAAA,CAAA;CAAA,gBAAA;EAAA,UAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,IAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,eAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,uBAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,kBAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,iBAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,WAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,eAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,cAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,cAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,eAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,cAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,MAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,eAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,uBAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,sBAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,cAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,UAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,UAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,YAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,WAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,gBAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,UAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,UAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,QAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,UAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,iBAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,cAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,kBAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,SAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,eAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,aAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,aAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,qBAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,kBAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,gBAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,iBAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,mBAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,oBAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,cAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,OAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,SAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,aAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,WAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,SAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,mBAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,WAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,UAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,cAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,OAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,UAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA,UAAA;EAAA,CAAA;EAAA,SAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA,SAAA;EAAA,CAAA;EAAA,YAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA,YAAA;EAAA,CAAA;EAAA,UAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA,UAAA;EAAA,CAAA;EAAA,SAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA,SAAA;EAAA,CAAA;EAAA,QAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA,QAAA;EAAA,CAAA;EAAA,mBAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA,mBAAA;EAAA,CAAA;EAAA,YAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA,YAAA;EAAA,CAAA;EAAA,QAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA,QAAA;EAAA,CAAA;EAAA,yBAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA,gBAAc,EAAA,UAAA,KAAA,CAAA;EAAA,CAAA;EAAA,iBAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAEtB,UAAQ,EAAA,UAAA,KAAA,CAAA;EAAA,CAAA;EAAA,4BAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAEG,8BAA4B,EAAA,UAAA,KAAA,CAAA;EAAA,CAAA;EAAA,6BAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAE3B,+BAA6B,EAAA,UAAA,KAAA,CAAA;EAAA,CAAA;EAAA,UAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAElD,YAAU,EAAA,UAAA,KAAA,CAAA;EAAA,CAAA;EAAA,eAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAEH,QAAM,EAAA,UAAA,KAAA,CAAA;EAAA,CAAA;EAAA,oBAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAED,aAAW,EAAA,UAAA,KAAA,CAAA;EAAA,CAAA;EAAA,aAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA,GAAA,iBAErC,MAAM,GAAA,EAAA,UAAA,KAAA,CAAA;EAAA,CAAA;EAAA,aAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA,GAAA,iBAEN,MAAM,GAAA,EAAA,UAAA,KAAA,CAAA;EAAA,CAAA;EAAA,cAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAQoC,QAAM;IAAI,aAAa;IAAO,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,eAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAQ5B,SAAO;IAAI,aAAa;IAAO,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,gBAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAQ7B,UAAQ;IAAI,aAAa;IAAO,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,gBAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAQhC,UAAQ;IAAI,aAAa;IAAO,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,gBAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAQhC,UAAQ;IAAI,aAAa;IAAO,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,qBAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAMnD,eAAa;IAAI,aAAa;IAAO,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,eAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAM3C,SAAO;IAAI,aAAa;IAAO,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,oBAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAM1B,cAAY;IAAI,aAAa;IAAO,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,mBAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAQV,aAAW;IAAI,aAAa;IAAO,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,mBAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAQnC,aAAW;IAAI,aAAa;IAAO,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,gBAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAQzC,UAAQ;IAAI,aAAa;IAAO,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,WAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA,GAAA,iBAE7E,aAAa,GAAA,EAAA,UAAA,KAAA,CAAA;EAAA,CAAA;CAAA;AAAA,CAAA;AAi9BtD,IAAa,gBAAb,MAAa,cAAa;CAAb,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAa,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAb,OAAA,OAAA,GAAA,oBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAa,SAAA,CAr4Cb,SAk4CU,YAAY;EAAA,SAAA,CAl4CtB,SAm4CU,YAAY;CAAA,CAAA;CAEtB,OAAA,OAAA,GAAA,oBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAa,SAAA;GAHZ;GAAS;GACA;EAAY;CAAA,CAAA;;AAEtB,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAa,YAAA,CAAA;EAJzB,MAAA;EAAS,MAAA,CAAA;GACN,SAAS,CAAC,SAAS,YAAY;GAC/B,SAAS,CAAC,SAAS,YAAY;EAClC,CAAA"}
|