@gravionlabs/helix-core 22.1.2 → 22.1.3
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-scroller.mjs","sources":["../../../projects/core/scroller/style/scrollerstyle.ts","../../../projects/core/scroller/scroller.ts","../../../projects/core/scroller/scroller.html","../../../projects/core/scroller/gravionlabs-helix-core-scroller.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from '@gravionlabs/helix-core/base';\n\nconst css = /*css*/ `\n.h-virtualscroller {\n position: relative;\n overflow: auto;\n contain: strict;\n transform: translateZ(0);\n will-change: scroll-position;\n outline: 0 none;\n}\n\n.h-virtualscroller-content {\n position: absolute;\n top: 0;\n left: 0;\n min-height: 100%;\n min-width: 100%;\n will-change: transform;\n}\n\n.h-virtualscroller-spacer {\n position: absolute;\n top: 0;\n left: 0;\n height: 1px;\n width: 1px;\n transform-origin: 0 0;\n pointer-events: none;\n}\n\n.h-virtualscroller-loader {\n position: sticky;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: dt('virtualscroller.loader.mask.background');\n color: dt('virtualscroller.loader.mask.color');\n}\n\n.h-virtualscroller-loader-mask {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.h-virtualscroller-loading-icon {\n font-size: dt('virtualscroller.loader.icon.size');\n width: dt('virtualscroller.loader.icon.size');\n height: dt('virtualscroller.loader.icon.size');\n}\n\n.h-virtualscroller-horizontal > .h-virtualscroller-content {\n display: flex;\n}\n\n.h-virtualscroller-inline .h-virtualscroller-content {\n position: static;\n}\n`;\n\nconst classes = {\n root: ({ instance }) => [\n 'h-virtualscroller',\n {\n 'h-virtualscroller-inline': instance.inline,\n 'h-virtualscroller-both h-both-scroll': instance.both,\n 'h-virtualscroller-horizontal h-horizontal-scroll': instance.horizontal\n }\n ],\n content: 'h-virtualscroller-content',\n spacer: 'h-virtualscroller-spacer',\n loader: ({ instance }) => [\n 'h-virtualscroller-loader',\n {\n 'h-virtualscroller-loader-mask': !instance.loaderTemplate\n }\n ],\n loadingIcon: 'h-virtualscroller-loading-icon'\n};\n\n@Injectable()\nexport class ScrollerStyle extends BaseStyle {\n name = 'virtualscroller';\n\n css = css;\n\n classes = classes;\n}\n\n/**\n *\n * VirtualScroller is a performant approach to handle huge data efficiently.\n *\n * [Live Demo](https://www.primeng.org/scroller/)\n *\n * @module scrollerstyle\n *\n */\nexport enum ScrollerClasses {\n /**\n * Class name of the root element\n */\n root = 'h-virtualscroller',\n /**\n * Class name of the content element\n */\n content = 'h-virtualscroller-content',\n /**\n * Class name of the spacer element\n */\n spacer = 'h-virtualscroller-spacer',\n /**\n * Class name of the loader element\n */\n loader = 'h-virtualscroller-loader',\n /**\n * Class name of the loading icon element\n */\n loadingIcon = 'h-virtualscroller-loading-icon'\n}\n\nexport interface ScrollerStyle extends BaseStyle {}\n","import { CommonModule, isPlatformBrowser } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n effect,\n inject,\n InjectionToken,\n input,\n NgModule,\n NgZone,\n QueryList,\n TemplateRef,\n ViewEncapsulation,\n output,\n viewChild,\n contentChild,\n contentChildren\n} from '@angular/core';\nimport { findSingle, getHeight, getWidth, isTouchDevice, isVisible } from '@gravionlabs/helix-core/uix/utils';\nimport { HelixTemplate, ScrollerOptions, SharedModule } from '@gravionlabs/helix-core/api';\nimport { BaseComponent, PARENT_INSTANCE } from '@gravionlabs/helix-core/basecomponent';\nimport { Bind } from '@gravionlabs/helix-core/bind';\nimport { SpinnerIcon } from '@gravionlabs/helix-core/icons';\nimport { Nullable, VoidListener } from '@gravionlabs/helix-core/ts-helpers';\nimport {\n ScrollerContentTemplateContext,\n ScrollerItemTemplateContext,\n ScrollerLazyLoadEvent,\n ScrollerLoaderIconTemplateContext,\n ScrollerLoaderTemplateContext,\n ScrollerScrollEvent,\n ScrollerScrollIndexChangeEvent,\n ScrollerToType,\n VirtualScrollerPassThrough\n} from '@gravionlabs/helix-core/types/scroller';\nimport { ScrollerStyle } from './style/scrollerstyle';\n\nconst SCROLLER_INSTANCE = new InjectionToken<Scroller>('SCROLLER_INSTANCE');\n\n/**\n * Scroller is a performance-approach to handle huge data efficiently.\n * @group Components\n */\n@Component({\n selector: 'h-scroller, h-virtualscroller, h-virtual-scroller, h-virtualScroller',\n imports: [CommonModule, SpinnerIcon, SharedModule, Bind],\n standalone: true,\n templateUrl: './scroller.html',\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None,\n providers: [ScrollerStyle, { provide: SCROLLER_INSTANCE, useExisting: Scroller }, { provide: PARENT_INSTANCE, useExisting: Scroller }],\n host: {\n '[style.height]': 'height'\n },\n hostDirectives: [Bind]\n})\nexport class Scroller extends BaseComponent<VirtualScrollerPassThrough> {\n componentName = 'VirtualScroller';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n $pcScroller: Scroller | undefined = inject(SCROLLER_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n readonly hostName = input<string>('');\n /**\n * Unique identifier of the element.\n * @group Props\n */\n readonly id = input<string>();\n /**\n * Inline style of the component.\n * @group Props\n */\n readonly style = input<any>();\n /**\n * Style class of the element.\n * @group Props\n */\n readonly styleClass = input<string>();\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n readonly tabindex = input<number>(0);\n /**\n * An array of objects to display.\n * @group Props\n */\n readonly items = input<any[] | undefined | null>();\n /**\n * The height/width of item according to orientation.\n * @group Props\n */\n readonly itemSize = input<number[] | number>(0);\n /**\n * Height of the scroll viewport.\n * @group Props\n */\n readonly scrollHeight = input<string>();\n /**\n * Width of the scroll viewport.\n * @group Props\n */\n readonly scrollWidth = input<string>();\n /**\n * The orientation of scrollbar.\n * @group Props\n */\n readonly orientation = input<'vertical' | 'horizontal' | 'both'>('vertical');\n /**\n * Used to specify how many items to load in each load method in lazy mode.\n * @group Props\n */\n readonly step = input<number>(0);\n /**\n * Delay in scroll before new data is loaded.\n * @group Props\n */\n readonly delay = input<number>(0);\n /**\n * Delay after window's resize finishes.\n * @group Props\n */\n readonly resizeDelay = input<number>(10);\n /**\n * Used to append each loaded item to top without removing any items from the DOM. Using very large data may cause the browser to crash.\n * @group Props\n */\n readonly appendOnly = input<boolean>(false);\n /**\n * Specifies whether the scroller should be displayed inline or not.\n * @group Props\n */\n readonly inline = input<boolean>(false);\n /**\n * Defines if data is loaded and interacted with in lazy manner.\n * @group Props\n */\n readonly lazy = input<boolean>(false);\n /**\n * If disabled, the scroller feature is eliminated and the content is displayed directly.\n * @group Props\n */\n readonly disabled = input<boolean>(false);\n /**\n * Used to implement a custom loader instead of using the loader feature in the scroller.\n * @group Props\n */\n readonly loaderDisabled = input<boolean>(false);\n /**\n * Columns to display.\n * @group Props\n */\n readonly columns = input<any[] | undefined | null>();\n /**\n * Used to implement a custom spacer instead of using the spacer feature in the scroller.\n * @group Props\n */\n readonly showSpacer = input<boolean>(true);\n /**\n * Defines whether to show loader.\n * @group Props\n */\n readonly showLoader = input<boolean>(false);\n /**\n * Determines how many additional elements to add to the DOM outside of the view. According to the scrolls made up and down, extra items are added in a certain algorithm in the form of multiples of this number. Default value is half the number of items shown in the view.\n * @group Props\n */\n readonly numToleratedItems = input<number>();\n /**\n * Defines whether the data is loaded.\n * @group Props\n */\n readonly loading = input<boolean | undefined>();\n /**\n * Defines whether to dynamically change the height or width of scrollable container.\n * @group Props\n */\n readonly autoSize = input<boolean>(false);\n /**\n * Function to optimize the dom operations by delegating to ngForTrackBy, default algoritm checks for object identity.\n * @group Props\n */\n readonly trackBy = input<Function>();\n /**\n * Defines 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 options = input<ScrollerOptions | undefined>();\n /**\n * Callback to invoke in lazy mode to load new data.\n * @param {ScrollerLazyLoadEvent} event - Custom lazy load event.\n * @group Emits\n */\n readonly onLazyLoad = output<ScrollerLazyLoadEvent>();\n /**\n * Callback to invoke when scroll position changes.\n * @param {ScrollerScrollEvent} event - Custom scroll event.\n * @group Emits\n */\n readonly onScroll = output<ScrollerScrollEvent>();\n /**\n * Callback to invoke when scroll position and item's range in view changes.\n * @param {ScrollerScrollEvent} event - Custom scroll index change event.\n * @group Emits\n */\n readonly onScrollIndexChange = output<ScrollerScrollIndexChangeEvent>();\n\n readonly elementViewChild = viewChild<Nullable<ElementRef>>('element');\n\n readonly contentViewChild = viewChild<Nullable<ElementRef>>('content');\n\n height: string;\n\n d_loading: boolean = false;\n\n d_numToleratedItems: any;\n\n contentEl: any;\n /**\n * Content template of the component.\n * @param {ScrollerContentTemplateContext} context - content context.\n * @see {@link ScrollerContentTemplateContext}\n * @group Templates\n */\n readonly contentTemplate = contentChild<Nullable<TemplateRef<ScrollerContentTemplateContext>>>('content', { descendants: false });\n\n /**\n * Item template of the component.\n * @param {ScrollerItemTemplateContext} context - item context.\n * @see {@link ScrollerItemTemplateContext}\n * @group Templates\n */\n readonly itemTemplate = contentChild<Nullable<TemplateRef<ScrollerItemTemplateContext>>>('item', { descendants: false });\n\n /**\n * Loader template of the component.\n * @param {ScrollerLoaderTemplateContext} context - loader context.\n * @see {@link ScrollerLoaderTemplateContext}\n * @group Templates\n */\n readonly loaderTemplate = contentChild<Nullable<TemplateRef<ScrollerLoaderTemplateContext>>>('loader', { descendants: false });\n\n /**\n * Loader icon template of the component.\n * @param {ScrollerLoaderIconTemplateContext} context - loader icon context.\n * @see {@link ScrollerLoaderIconTemplateContext}\n * @group Templates\n */\n readonly loaderIconTemplate = contentChild<Nullable<TemplateRef<ScrollerLoaderIconTemplateContext>>>('loadericon', { descendants: false });\n\n readonly templates = contentChildren(HelixTemplate);\n\n _contentTemplate: TemplateRef<ScrollerContentTemplateContext> | undefined;\n\n _itemTemplate: TemplateRef<ScrollerItemTemplateContext> | undefined;\n\n _loaderTemplate: TemplateRef<ScrollerLoaderTemplateContext> | undefined;\n\n _loaderIconTemplate: TemplateRef<ScrollerLoaderIconTemplateContext> | undefined;\n\n first: any = 0;\n\n last: any = 0;\n\n page: number = 0;\n\n isRangeChanged: boolean = false;\n\n numItemsInViewport: any = 0;\n\n lastScrollPos: any = 0;\n\n lazyLoadState: any = {};\n\n loaderArr: any[] = [];\n\n spacerStyle: { [klass: string]: any } | null | undefined = {};\n\n contentStyle: { [klass: string]: any } | null | undefined = {};\n\n scrollTimeout: any;\n\n resizeTimeout: any;\n\n initialized: boolean = false;\n\n windowResizeListener: VoidListener;\n\n defaultWidth: number | undefined;\n\n defaultHeight: number | undefined;\n\n defaultContentWidth: number | undefined;\n\n defaultContentHeight: number | undefined;\n\n _contentStyleClass: any;\n\n get contentStyleClass() {\n return this._contentStyleClass;\n }\n\n set contentStyleClass(val) {\n this._contentStyleClass = val;\n }\n\n get vertical() {\n return this.orientation() === 'vertical';\n }\n\n get horizontal() {\n return this.orientation() === 'horizontal';\n }\n\n get both() {\n return this.orientation() === 'both';\n }\n\n get loadedItems() {\n const currentItems = this.items();\n if (currentItems && !this.d_loading) {\n if (this.both) {\n return currentItems.slice(this.appendOnly() ? 0 : this.first.rows, this.last.rows).map((item) => {\n if (this.columns()) {\n return item;\n } else if (Array.isArray(item)) {\n return item.slice(this.appendOnly() ? 0 : this.first.cols, this.last.cols);\n } else {\n return item;\n }\n });\n } else if (this.horizontal && this.columns()) return currentItems;\n else return currentItems.slice(this.appendOnly() ? 0 : this.first, this.last);\n }\n\n return [];\n }\n\n get loadedRows() {\n return this.d_loading ? (this.loaderDisabled() ? this.loaderArr : []) : this.loadedItems;\n }\n\n get loadedColumns() {\n const currentColumns = this.columns();\n if (currentColumns && (this.both || this.horizontal)) {\n return this.d_loading && this.loaderDisabled() ? (this.both ? this.loaderArr[0] : this.loaderArr) : currentColumns.slice(this.both ? this.first.cols : this.first, this.both ? this.last.cols : this.last);\n }\n\n return currentColumns;\n }\n\n _componentStyle = inject(ScrollerStyle);\n\n constructor(private zone: NgZone) {\n super();\n effect(() => {\n if (this.scrollHeight() === '100%') {\n this.height = '100%';\n }\n });\n effect(() => {\n const loadingVal = this.loading();\n if (this.lazy() && loadingVal !== this.d_loading) {\n this.d_loading = loadingVal ?? false;\n }\n });\n effect(() => {\n this.orientation();\n this.lastScrollPos = this.both ? { top: 0, left: 0 } : 0;\n });\n effect(() => {\n const numTol = this.numToleratedItems();\n if (numTol !== this.d_numToleratedItems) {\n this.d_numToleratedItems = numTol;\n }\n });\n effect(() => {\n const opts = this.options();\n if (opts && typeof opts === 'object') {\n Object.entries(opts).forEach(([k, v]) => this[`_${k}`] !== v && (this[`_${k}`] = v));\n Object.entries(opts).forEach(([k, v]) => this[`${k}`] !== v && (this[`${k}`] = v));\n\n if (this.lazy() && opts.loading !== this.d_loading) {\n this.d_loading = opts.loading ?? false;\n }\n if (opts.numToleratedItems !== this.d_numToleratedItems) {\n this.d_numToleratedItems = opts.numToleratedItems;\n }\n }\n });\n effect(() => {\n this.items();\n this.itemSize();\n this.scrollHeight();\n this.scrollWidth();\n if (this.initialized) {\n this.init();\n }\n });\n }\n\n onInit() {\n this.setInitialState();\n }\n\n onAfterContentInit() {\n this.templates().forEach((item) => {\n switch (item.getType()) {\n case 'content':\n this._contentTemplate = item.template;\n break;\n\n case 'item':\n this._itemTemplate = item.template;\n break;\n\n case 'loader':\n this._loaderTemplate = item.template;\n break;\n\n case 'loadericon':\n this._loaderIconTemplate = item.template;\n break;\n\n default:\n this._itemTemplate = item.template;\n break;\n }\n });\n }\n\n onAfterViewInit() {\n Promise.resolve().then(() => {\n this.viewInit();\n });\n }\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptm('host'));\n if (!this.initialized) {\n this.viewInit();\n }\n }\n\n onDestroy() {\n this.unbindResizeListener();\n\n this.contentEl = null;\n this.initialized = false;\n }\n\n viewInit() {\n if (isPlatformBrowser(this.platformId) && !this.initialized) {\n const elementViewChild = this.elementViewChild();\n if (isVisible(elementViewChild?.nativeElement)) {\n this.setInitialState();\n this.setContentEl(this.contentEl);\n this.init();\n\n this.defaultWidth = getWidth(elementViewChild?.nativeElement);\n this.defaultHeight = getHeight(elementViewChild?.nativeElement);\n this.defaultContentWidth = getWidth(this.contentEl);\n this.defaultContentHeight = getHeight(this.contentEl);\n this.initialized = true;\n }\n }\n }\n\n init() {\n if (!this.disabled()) {\n this.bindResizeListener();\n\n // wait for the next tick\n setTimeout(() => {\n this.setSpacerSize();\n this.setSize();\n this.calculateOptions();\n this.calculateAutoSize();\n this.cd.detectChanges();\n }, 1);\n }\n }\n\n setContentEl(el?: HTMLElement) {\n this.contentEl = el || this.contentViewChild()?.nativeElement || findSingle(this.elementViewChild()?.nativeElement, '.h-virtualscroller-content');\n }\n setInitialState() {\n this.first = this.both ? { rows: 0, cols: 0 } : 0;\n this.last = this.both ? { rows: 0, cols: 0 } : 0;\n this.numItemsInViewport = this.both ? { rows: 0, cols: 0 } : 0;\n this.lastScrollPos = this.both ? { top: 0, left: 0 } : 0;\n if (this.d_loading === undefined || this.d_loading === false) {\n this.d_loading = this.loading() || false;\n }\n this.d_numToleratedItems = this.numToleratedItems();\n this.loaderArr = this.loaderArr.length > 0 ? this.loaderArr : [];\n }\n\n getElementRef() {\n return this.elementViewChild();\n }\n\n getPageByFirst(first?: any) {\n return Math.floor(((first ?? this.first) + this.d_numToleratedItems * 4) / (this.step() || 1));\n }\n\n isPageChanged(first?: any) {\n return this.step() ? this.page !== this.getPageByFirst(first ?? this.first) : true;\n }\n\n scrollTo(options: ScrollToOptions) {\n // this.lastScrollPos = this.both ? { top: 0, left: 0 } : 0;\n this.elementViewChild()?.nativeElement?.scrollTo(options);\n }\n\n scrollToIndex(index: number | number[], behavior: ScrollBehavior = 'auto') {\n const valid = this.both ? (index as number[]).every((i) => i > -1) : (index as number) > -1;\n\n if (valid) {\n const first = this.first;\n const { scrollTop = 0, scrollLeft = 0 } = this.elementViewChild()?.nativeElement;\n const { numToleratedItems } = this.calculateNumItems();\n const contentPos = this.getContentPosition();\n const itemSize = this.itemSize();\n const calculateFirst = (_index = 0, _numT) => (_index <= _numT ? 0 : _index);\n const calculateCoord = (_first, _size, _cpos) => _first * _size + _cpos;\n const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });\n let newFirst = this.both ? { rows: 0, cols: 0 } : 0;\n let isRangeChanged = false,\n isScrollChanged = false;\n\n if (this.both) {\n newFirst = {\n rows: calculateFirst(index[0], numToleratedItems[0]),\n cols: calculateFirst(index[1], numToleratedItems[1])\n };\n scrollTo(calculateCoord(newFirst.cols, itemSize[1], contentPos.left), calculateCoord(newFirst.rows, itemSize[0], contentPos.top));\n isScrollChanged = this.lastScrollPos.top !== scrollTop || this.lastScrollPos.left !== scrollLeft;\n isRangeChanged = newFirst.rows !== first.rows || newFirst.cols !== first.cols;\n } else {\n newFirst = calculateFirst(index as number, numToleratedItems);\n this.horizontal ? scrollTo(calculateCoord(newFirst, itemSize, contentPos.left), scrollTop) : scrollTo(scrollLeft, calculateCoord(newFirst, itemSize, contentPos.top));\n isScrollChanged = this.lastScrollPos !== (this.horizontal ? scrollLeft : scrollTop);\n isRangeChanged = newFirst !== first;\n }\n\n this.isRangeChanged = isRangeChanged;\n isScrollChanged && (this.first = newFirst);\n }\n }\n\n scrollInView(index: number, to: ScrollerToType, behavior: ScrollBehavior = 'auto') {\n if (to) {\n const { first, viewport } = this.getRenderedRange();\n const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });\n const isToStart = to === 'to-start';\n const isToEnd = to === 'to-end';\n\n if (isToStart) {\n if (this.both) {\n if (viewport.first.rows - first.rows > (<any>index)[0]) {\n scrollTo(viewport.first.cols * (<number[]>this.itemSize())[1], (viewport.first.rows - 1) * (<number[]>this.itemSize())[0]);\n } else if (viewport.first.cols - first.cols > (<any>index)[1]) {\n scrollTo((viewport.first.cols - 1) * (<number[]>this.itemSize())[1], viewport.first.rows * (<number[]>this.itemSize())[0]);\n }\n } else {\n if (viewport.first - first > index) {\n const pos = (viewport.first - 1) * <number>this.itemSize();\n this.horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);\n }\n }\n } else if (isToEnd) {\n if (this.both) {\n if (viewport.last.rows - first.rows <= (<any>index)[0] + 1) {\n scrollTo(viewport.first.cols * (<number[]>this.itemSize())[1], (viewport.first.rows + 1) * (<number[]>this.itemSize())[0]);\n } else if (viewport.last.cols - first.cols <= (<any>index)[1] + 1) {\n scrollTo((viewport.first.cols + 1) * (<number[]>this.itemSize())[1], viewport.first.rows * (<number[]>this.itemSize())[0]);\n }\n } else {\n if (viewport.last - first <= index + 1) {\n const pos = (viewport.first + 1) * <number>this.itemSize();\n this.horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);\n }\n }\n }\n } else {\n this.scrollToIndex(index, behavior);\n }\n }\n\n getRenderedRange() {\n const calculateFirstInViewport = (_pos: number, _size: number) => (_size || _pos ? Math.floor(_pos / (_size || _pos)) : 0);\n\n let firstInViewport = this.first;\n let lastInViewport: any = 0;\n\n const elementViewChild = this.elementViewChild();\n if (elementViewChild?.nativeElement) {\n const { scrollTop, scrollLeft } = elementViewChild.nativeElement;\n\n if (this.both) {\n firstInViewport = {\n rows: calculateFirstInViewport(scrollTop, (<number[]>this.itemSize())[0]),\n cols: calculateFirstInViewport(scrollLeft, (<number[]>this.itemSize())[1])\n };\n lastInViewport = {\n rows: firstInViewport.rows + this.numItemsInViewport.rows,\n cols: firstInViewport.cols + this.numItemsInViewport.cols\n };\n } else {\n const scrollPos = this.horizontal ? scrollLeft : scrollTop;\n firstInViewport = calculateFirstInViewport(scrollPos, <number>this.itemSize());\n lastInViewport = firstInViewport + this.numItemsInViewport;\n }\n }\n\n return {\n first: this.first,\n last: this.last,\n viewport: {\n first: firstInViewport,\n last: lastInViewport\n }\n };\n }\n\n calculateNumItems() {\n const contentPos = this.getContentPosition();\n const elementViewChild = this.elementViewChild();\n const contentWidth = (elementViewChild?.nativeElement ? elementViewChild.nativeElement.offsetWidth - contentPos.left : 0) || 0;\n const elementViewChildValue = this.elementViewChild();\n const contentHeight = (elementViewChildValue?.nativeElement ? elementViewChildValue.nativeElement.offsetHeight - contentPos.top : 0) || 0;\n const calculateNumItemsInViewport = (_contentSize: number, _itemSize: number) => (_itemSize || _contentSize ? Math.ceil(_contentSize / (_itemSize || _contentSize)) : 0);\n const calculateNumToleratedItems = (_numItems: number) => Math.ceil(_numItems / 2);\n const numItemsInViewport: any = this.both\n ? {\n rows: calculateNumItemsInViewport(contentHeight, (<number[]>this.itemSize())[0]),\n cols: calculateNumItemsInViewport(contentWidth, (<number[]>this.itemSize())[1])\n }\n : calculateNumItemsInViewport(this.horizontal ? contentWidth : contentHeight, <number>this.itemSize());\n\n const numToleratedItems = this.d_numToleratedItems || (this.both ? [calculateNumToleratedItems(numItemsInViewport.rows), calculateNumToleratedItems(numItemsInViewport.cols)] : calculateNumToleratedItems(numItemsInViewport));\n\n return { numItemsInViewport, numToleratedItems };\n }\n\n calculateOptions() {\n const { numItemsInViewport, numToleratedItems } = this.calculateNumItems();\n const calculateLast = (_first: number, _num: number, _numT: number, _isCols: boolean = false) => this.getLast(_first + _num + (_first < _numT ? 2 : 3) * _numT, _isCols);\n const first = this.first;\n const last = this.both\n ? {\n rows: calculateLast(this.first.rows, numItemsInViewport.rows, numToleratedItems[0]),\n cols: calculateLast(this.first.cols, numItemsInViewport.cols, numToleratedItems[1], true)\n }\n : calculateLast(this.first, numItemsInViewport, numToleratedItems);\n\n this.last = last;\n this.numItemsInViewport = numItemsInViewport;\n this.d_numToleratedItems = numToleratedItems;\n\n if (this.showLoader()) {\n this.loaderArr = this.both ? Array.from({ length: numItemsInViewport.rows }).map(() => Array.from({ length: numItemsInViewport.cols })) : Array.from({ length: numItemsInViewport });\n }\n\n if (this.lazy()) {\n Promise.resolve().then(() => {\n this.lazyLoadState = {\n first: this.step() ? (this.both ? { rows: 0, cols: first.cols } : 0) : first,\n last: Math.min(this.step() ? this.step() : this.last, (<any[]>this.items()).length)\n };\n\n this.handleEvents('onLazyLoad', this.lazyLoadState);\n });\n }\n }\n\n calculateAutoSize() {\n if (this.autoSize() && !this.d_loading) {\n Promise.resolve().then(() => {\n if (this.contentEl) {\n this.contentEl.style.minHeight = this.contentEl.style.minWidth = 'auto';\n this.contentEl.style.position = 'relative';\n (<ElementRef>this.elementViewChild()).nativeElement.style.contain = 'none';\n\n const [contentWidth, contentHeight] = [getWidth(this.contentEl), getHeight(this.contentEl)];\n contentWidth !== this.defaultContentWidth && ((<ElementRef>this.elementViewChild()).nativeElement.style.width = '');\n contentHeight !== this.defaultContentHeight && ((<ElementRef>this.elementViewChild()).nativeElement.style.height = '');\n\n const [width, height] = [getWidth((<ElementRef>this.elementViewChild()).nativeElement), getHeight((<ElementRef>this.elementViewChild()).nativeElement)];\n (this.both || this.horizontal) && ((<ElementRef>this.elementViewChild()).nativeElement.style.width = width < <number>this.defaultWidth ? width + 'px' : this.scrollWidth() || this.defaultWidth + 'px');\n (this.both || this.vertical) && ((<ElementRef>this.elementViewChild()).nativeElement.style.height = height < <number>this.defaultHeight ? height + 'px' : this.scrollHeight() || this.defaultHeight + 'px');\n\n this.contentEl.style.minHeight = this.contentEl.style.minWidth = '';\n this.contentEl.style.position = '';\n (<ElementRef>this.elementViewChild()).nativeElement.style.contain = '';\n }\n });\n }\n }\n\n getLast(last = 0, isCols = false) {\n const currentItems = this.items();\n return currentItems ? Math.min(isCols ? (this.columns() || currentItems[0]).length : currentItems.length, last) : 0;\n }\n\n getContentPosition() {\n if (this.contentEl) {\n const style = getComputedStyle(this.contentEl);\n const left = parseFloat(style.paddingLeft) + Math.max(parseFloat(style.left) || 0, 0);\n const right = parseFloat(style.paddingRight) + Math.max(parseFloat(style.right) || 0, 0);\n const top = parseFloat(style.paddingTop) + Math.max(parseFloat(style.top) || 0, 0);\n const bottom = parseFloat(style.paddingBottom) + Math.max(parseFloat(style.bottom) || 0, 0);\n\n return { left, right, top, bottom, x: left + right, y: top + bottom };\n }\n\n return { left: 0, right: 0, top: 0, bottom: 0, x: 0, y: 0 };\n }\n\n setSize() {\n const elementViewChild = this.elementViewChild();\n if (elementViewChild?.nativeElement) {\n const nativeElement = elementViewChild.nativeElement;\n const parentElement = nativeElement.parentElement?.parentElement;\n\n const elementWidth = nativeElement.offsetWidth;\n const parentWidth = parentElement?.offsetWidth || 0;\n const width = this.scrollWidth() || `${elementWidth || parentWidth}px`;\n\n const elementHeight = nativeElement.offsetHeight;\n const parentHeight = parentElement?.offsetHeight || 0;\n const height = this.scrollHeight() || `${elementHeight || parentHeight}px`;\n\n const setProp = (_name: string, _value: any) => (nativeElement.style[_name] = _value);\n\n if (this.both || this.horizontal) {\n setProp('height', height);\n setProp('width', width);\n } else {\n setProp('height', height);\n }\n }\n }\n\n setSpacerSize() {\n const currentItems = this.items();\n if (currentItems) {\n const contentPos = this.getContentPosition();\n const setProp = (_name: string, _value: any, _size: number, _cpos: number = 0) =>\n (this.spacerStyle = {\n ...this.spacerStyle,\n ...{ [`${_name}`]: (_value || []).length * _size + _cpos + 'px' }\n });\n\n if (this.both) {\n setProp('height', currentItems, (<number[]>this.itemSize())[0], contentPos.y);\n setProp('width', this.columns() || currentItems[1], (<number[]>this.itemSize())[1], contentPos.x);\n } else {\n this.horizontal ? setProp('width', this.columns() || currentItems, <number>this.itemSize(), contentPos.x) : setProp('height', currentItems, <number>this.itemSize(), contentPos.y);\n }\n }\n }\n\n setContentPosition(pos: any) {\n if (this.contentEl && !this.appendOnly()) {\n const first = pos ? pos.first : this.first;\n const calculateTranslateVal = (_first: number, _size: number) => _first * _size;\n const setTransform = (_x = 0, _y = 0) => (this.contentStyle = { ...this.contentStyle, ...{ transform: `translate3d(${_x}px, ${_y}px, 0)` } });\n\n if (this.both) {\n setTransform(calculateTranslateVal(first.cols, (<number[]>this.itemSize())[1]), calculateTranslateVal(first.rows, (<number[]>this.itemSize())[0]));\n } else {\n const translateVal = calculateTranslateVal(first, <number>this.itemSize());\n this.horizontal ? setTransform(translateVal, 0) : setTransform(0, translateVal);\n }\n }\n }\n\n onScrollPositionChange(event: Event) {\n const target = event.target;\n if (!target) {\n throw new Error('Event target is null');\n }\n const contentPos = this.getContentPosition();\n const calculateScrollPos = (_pos: number, _cpos: number) => (_pos ? (_pos > _cpos ? _pos - _cpos : _pos) : 0);\n const calculateCurrentIndex = (_pos: number, _size: number) => (_size || _pos ? Math.floor(_pos / (_size || _pos)) : 0);\n const calculateTriggerIndex = (_currentIndex: number, _first: number, _last: number, _num: number, _numT: number, _isScrollDownOrRight: any) => {\n return _currentIndex <= _numT ? _numT : _isScrollDownOrRight ? _last - _num - _numT : _first + _numT - 1;\n };\n const calculateFirst = (_currentIndex: number, _triggerIndex: number, _first: number, _last: number, _num: number, _numT: number, _isScrollDownOrRight: any) => {\n if (_currentIndex <= _numT) return 0;\n else return Math.max(0, _isScrollDownOrRight ? (_currentIndex < _triggerIndex ? _first : _currentIndex - _numT) : _currentIndex > _triggerIndex ? _first : _currentIndex - 2 * _numT);\n };\n const calculateLast = (_currentIndex: number, _first: number, _last: number, _num: number, _numT: number, _isCols = false) => {\n let lastValue = _first + _num + 2 * _numT;\n\n if (_currentIndex >= _numT) {\n lastValue += _numT + 1;\n }\n\n return this.getLast(lastValue, _isCols);\n };\n\n const scrollTop = calculateScrollPos((<HTMLElement>target).scrollTop, contentPos.top);\n const scrollLeft = calculateScrollPos((<HTMLElement>target).scrollLeft, contentPos.left);\n\n let newFirst = this.both ? { rows: 0, cols: 0 } : 0;\n let newLast = this.last;\n let isRangeChanged = false;\n let newScrollPos = this.lastScrollPos;\n\n if (this.both) {\n const isScrollDown = this.lastScrollPos.top <= scrollTop;\n const isScrollRight = this.lastScrollPos.left <= scrollLeft;\n\n if (!this.appendOnly() || (this.appendOnly() && (isScrollDown || isScrollRight))) {\n const currentIndex = {\n rows: calculateCurrentIndex(scrollTop, (<number[]>this.itemSize())[0]),\n cols: calculateCurrentIndex(scrollLeft, (<number[]>this.itemSize())[1])\n };\n const triggerIndex = {\n rows: calculateTriggerIndex(currentIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),\n cols: calculateTriggerIndex(currentIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)\n };\n\n newFirst = {\n rows: calculateFirst(currentIndex.rows, triggerIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),\n cols: calculateFirst(currentIndex.cols, triggerIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)\n };\n newLast = {\n rows: calculateLast(currentIndex.rows, newFirst.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0]),\n cols: calculateLast(currentIndex.cols, newFirst.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], true)\n };\n\n isRangeChanged = newFirst.rows !== this.first.rows || newLast.rows !== this.last.rows || newFirst.cols !== this.first.cols || newLast.cols !== this.last.cols || this.isRangeChanged;\n newScrollPos = { top: scrollTop, left: scrollLeft };\n }\n } else {\n const scrollPos = this.horizontal ? scrollLeft : scrollTop;\n const isScrollDownOrRight = this.lastScrollPos <= scrollPos;\n\n if (!this.appendOnly() || (this.appendOnly() && isScrollDownOrRight)) {\n const currentIndex = calculateCurrentIndex(scrollPos, <number>this.itemSize());\n const triggerIndex = calculateTriggerIndex(currentIndex, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);\n\n newFirst = calculateFirst(currentIndex, triggerIndex, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);\n newLast = calculateLast(currentIndex, newFirst, this.last, this.numItemsInViewport, this.d_numToleratedItems);\n isRangeChanged = newFirst !== this.first || newLast !== this.last || this.isRangeChanged;\n newScrollPos = scrollPos;\n }\n }\n\n return {\n first: newFirst,\n last: newLast,\n isRangeChanged,\n scrollPos: newScrollPos\n };\n }\n\n onScrollChange(event: Event) {\n const { first, last, isRangeChanged, scrollPos } = this.onScrollPositionChange(event);\n\n if (isRangeChanged) {\n const newState = { first, last };\n\n this.setContentPosition(newState);\n\n this.first = first;\n this.last = last;\n this.lastScrollPos = scrollPos;\n\n this.handleEvents('onScrollIndexChange', newState);\n\n if (this.lazy() && this.isPageChanged(first)) {\n const lazyLoadState = {\n first: this.step() ? Math.min(this.getPageByFirst(first) * this.step(), (<any[]>this.items()).length - this.step()) : first,\n last: Math.min(this.step() ? (this.getPageByFirst(first) + 1) * this.step() : last, (<any[]>this.items()).length)\n };\n const isLazyStateChanged = this.lazyLoadState.first !== lazyLoadState.first || this.lazyLoadState.last !== lazyLoadState.last;\n\n isLazyStateChanged && this.handleEvents('onLazyLoad', lazyLoadState);\n this.lazyLoadState = lazyLoadState;\n }\n }\n }\n\n onContainerScroll(event: Event) {\n this.handleEvents('onScroll', { originalEvent: event });\n\n if (this.delay()) {\n if (this.scrollTimeout) {\n clearTimeout(this.scrollTimeout);\n }\n\n if (!this.d_loading && this.showLoader()) {\n const { isRangeChanged } = this.onScrollPositionChange(event);\n const changed = isRangeChanged || (this.step() ? this.isPageChanged() : false);\n\n if (changed) {\n this.d_loading = true;\n\n this.cd.detectChanges();\n }\n }\n\n this.scrollTimeout = setTimeout(() => {\n this.onScrollChange(event);\n\n if (this.d_loading && this.showLoader() && (!this.lazy() || this.loading() === undefined)) {\n this.d_loading = false;\n this.page = this.getPageByFirst();\n }\n this.cd.detectChanges();\n }, this.delay());\n } else {\n !this.d_loading && this.onScrollChange(event);\n }\n }\n\n bindResizeListener() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.windowResizeListener) {\n this.zone.runOutsideAngular(() => {\n const window = this.document.defaultView as Window;\n const event = isTouchDevice() ? 'orientationchange' : 'resize';\n this.windowResizeListener = this.renderer.listen(window, event, this.onWindowResize.bind(this));\n });\n }\n }\n }\n\n unbindResizeListener() {\n if (this.windowResizeListener) {\n this.windowResizeListener();\n this.windowResizeListener = null;\n }\n }\n\n onWindowResize() {\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n }\n\n this.resizeTimeout = setTimeout(() => {\n const elementViewChild = this.elementViewChild();\n if (isVisible(elementViewChild?.nativeElement)) {\n const [width, height] = [getWidth(elementViewChild?.nativeElement), getHeight(elementViewChild?.nativeElement)];\n const [isDiffWidth, isDiffHeight] = [width !== this.defaultWidth, height !== this.defaultHeight];\n const reinit = this.both ? isDiffWidth || isDiffHeight : this.horizontal ? isDiffWidth : this.vertical ? isDiffHeight : false;\n\n reinit &&\n this.zone.run(() => {\n this.d_numToleratedItems = this.numToleratedItems();\n this.defaultWidth = width;\n this.defaultHeight = height;\n this.defaultContentWidth = getWidth(this.contentEl);\n this.defaultContentHeight = getHeight(this.contentEl);\n\n this.init();\n });\n }\n }, this.resizeDelay());\n }\n\n handleEvents(name: string, params: any) {\n //@ts-ignore\n return this.options() && (<any>this.options())[name] ? (<any>this.options())[name](params) : this[name].emit(params);\n }\n\n getContentOptions() {\n return {\n contentStyleClass: `h-virtualscroller-content ${this.d_loading ? 'h-virtualscroller-loading' : ''}`,\n items: this.loadedItems,\n getItemOptions: (index: number) => this.getOptions(index),\n loading: this.d_loading,\n getLoaderOptions: (index: number, options?: any) => this.getLoaderOptions(index, options),\n itemSize: this.itemSize(),\n rows: this.loadedRows,\n columns: this.loadedColumns,\n spacerStyle: this.spacerStyle,\n contentStyle: this.contentStyle,\n vertical: this.vertical,\n horizontal: this.horizontal,\n both: this.both,\n scrollTo: this.scrollTo.bind(this),\n scrollToIndex: this.scrollToIndex.bind(this),\n orientation: this.orientation(),\n scrollableElement: this.elementViewChild()?.nativeElement\n };\n }\n\n getOptions(renderedIndex: number) {\n const count = (this.items() || []).length;\n const index = this.both ? this.first.rows + renderedIndex : this.first + renderedIndex;\n\n return {\n index,\n count,\n first: index === 0,\n last: index === count - 1,\n even: index % 2 === 0,\n odd: index % 2 !== 0\n };\n }\n\n getLoaderOptions(index: number, extOptions: any) {\n const count = this.loaderArr.length;\n\n return {\n index,\n count,\n first: index === 0,\n last: index === count - 1,\n even: index % 2 === 0,\n odd: index % 2 !== 0,\n loading: this.d_loading,\n ...extOptions\n };\n }\n}\n\n@NgModule({\n imports: [Scroller, SharedModule],\n exports: [Scroller, SharedModule]\n})\nexport class ScrollerModule {}\n","@if (!disabled()) {\n <div #element [attr.id]=\"id()\" [attr.tabindex]=\"tabindex()\" [ngStyle]=\"style()\" [class]=\"cn(cx('root'), styleClass())\" (scroll)=\"onContainerScroll($event)\" [hBind]=\"ptm('root')\">\n @if (contentTemplate() || _contentTemplate) {\n <ng-container *ngTemplateOutlet=\"contentTemplate() || _contentTemplate; context: { $implicit: loadedItems, options: getContentOptions() }\"></ng-container>\n } @else {\n <div #content [class]=\"cn(cx('content'), contentStyleClass)\" [style]=\"contentStyle\" [hBind]=\"ptm('content')\">\n @for (item of loadedItems; track trackBy()(index, item); let index = $index) {\n <ng-container *ngTemplateOutlet=\"itemTemplate() || _itemTemplate; context: { $implicit: item, options: getOptions(index) }\"></ng-container>\n }\n </div>\n }\n @if (showSpacer()) {\n <div [class]=\"cx('spacer')\" [ngStyle]=\"spacerStyle\" [hBind]=\"ptm('spacer')\"></div>\n }\n @if (!loaderDisabled() && showLoader() && d_loading) {\n <div [class]=\"cx('loader')\" [hBind]=\"ptm('loader')\">\n @if (loaderTemplate() || _loaderTemplate) {\n @for (item of loaderArr; track item; let index = $index) {\n <ng-container\n *ngTemplateOutlet=\"\n loaderTemplate() || _loaderTemplate;\n context: {\n options: getLoaderOptions(index, both && { numCols: numItemsInViewport.cols })\n }\n \"\n ></ng-container>\n }\n } @else {\n @if (loaderIconTemplate() || _loaderIconTemplate) {\n <ng-container *ngTemplateOutlet=\"loaderIconTemplate() || _loaderIconTemplate; context: { options: { styleClass: 'h-virtualscroller-loading-icon' } }\"></ng-container>\n } @else {\n <svg data-h-icon=\"spinner\" [class]=\"cx('loadingIcon')\" [spin]=\"true\" [hBind]=\"ptm('loadingIcon')\" />\n }\n }\n </div>\n }\n</div>\n} @else {\n <ng-content></ng-content>\n @if (contentTemplate() || _contentTemplate) {\n <ng-container *ngTemplateOutlet=\"contentTemplate() || _contentTemplate; context: { $implicit: items(), options: { rows: items(), columns: loadedColumns } }\"></ng-container>\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;;;;;;AAGA,MAAM,GAAG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0DnB;AAED,MAAM,OAAO,GAAG;AACZ,IAAA,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK;QACpB,mBAAmB;AACnB,QAAA;YACI,0BAA0B,EAAE,QAAQ,CAAC,MAAM;YAC3C,sCAAsC,EAAE,QAAQ,CAAC,IAAI;YACrD,kDAAkD,EAAE,QAAQ,CAAC;AAChE;AACJ,KAAA;AACD,IAAA,OAAO,EAAE,2BAA2B;AACpC,IAAA,MAAM,EAAE,0BAA0B;AAClC,IAAA,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK;QACtB,0BAA0B;AAC1B,QAAA;AACI,YAAA,+BAA+B,EAAE,CAAC,QAAQ,CAAC;AAC9C;AACJ,KAAA;AACD,IAAA,WAAW,EAAE;CAChB;AAGK,MAAO,aAAc,SAAQ,SAAS,CAAA;IACxC,IAAI,GAAG,iBAAiB;IAExB,GAAG,GAAG,GAAG;IAET,OAAO,GAAG,OAAO;uGALR,aAAa,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAb,aAAa,EAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB;;AASD;;;;;;;;AAQG;IACS;AAAZ,CAAA,UAAY,eAAe,EAAA;AACvB;;AAEG;AACH,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,mBAA0B;AAC1B;;AAEG;AACH,IAAA,eAAA,CAAA,SAAA,CAAA,GAAA,2BAAqC;AACrC;;AAEG;AACH,IAAA,eAAA,CAAA,QAAA,CAAA,GAAA,0BAAmC;AACnC;;AAEG;AACH,IAAA,eAAA,CAAA,QAAA,CAAA,GAAA,0BAAmC;AACnC;;AAEG;AACH,IAAA,eAAA,CAAA,aAAA,CAAA,GAAA,gCAA8C;AAClD,CAAC,EArBW,eAAe,KAAf,eAAe,GAAA,EAAA,CAAA,CAAA;;AC/D3B,MAAM,iBAAiB,GAAG,IAAI,cAAc,CAAW,mBAAmB,CAAC;AAE3E;;;AAGG;AAcG,MAAO,QAAS,SAAQ,aAAyC,CAAA;AA0S/C,IAAA,IAAA;IAzSpB,aAAa,GAAG,iBAAiB;IAEjC,qBAAqB,GAAG,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAEpD,IAAA,WAAW,GAAyB,MAAM,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS;IAErG,QAAQ,GAAG,KAAK,CAAS,EAAE;iFAAC;AACrC;;;AAGG;AACM,IAAA,EAAE,GAAG,KAAK;sFAAU;AAC7B;;;AAGG;AACM,IAAA,KAAK,GAAG,KAAK;yFAAO;AAC7B;;;AAGG;AACM,IAAA,UAAU,GAAG,KAAK;8FAAU;AACrC;;;AAGG;IACM,QAAQ,GAAG,KAAK,CAAS,CAAC;iFAAC;AACpC;;;AAGG;AACM,IAAA,KAAK,GAAG,KAAK;yFAA4B;AAClD;;;AAGG;IACM,QAAQ,GAAG,KAAK,CAAoB,CAAC;iFAAC;AAC/C;;;AAGG;AACM,IAAA,YAAY,GAAG,KAAK;gGAAU;AACvC;;;AAGG;AACM,IAAA,WAAW,GAAG,KAAK;+FAAU;AACtC;;;AAGG;IACM,WAAW,GAAG,KAAK,CAAqC,UAAU;oFAAC;AAC5E;;;AAGG;IACM,IAAI,GAAG,KAAK,CAAS,CAAC;6EAAC;AAChC;;;AAGG;IACM,KAAK,GAAG,KAAK,CAAS,CAAC;8EAAC;AACjC;;;AAGG;IACM,WAAW,GAAG,KAAK,CAAS,EAAE;oFAAC;AACxC;;;AAGG;IACM,UAAU,GAAG,KAAK,CAAU,KAAK;mFAAC;AAC3C;;;AAGG;IACM,MAAM,GAAG,KAAK,CAAU,KAAK;+EAAC;AACvC;;;AAGG;IACM,IAAI,GAAG,KAAK,CAAU,KAAK;6EAAC;AACrC;;;AAGG;IACM,QAAQ,GAAG,KAAK,CAAU,KAAK;iFAAC;AACzC;;;AAGG;IACM,cAAc,GAAG,KAAK,CAAU,KAAK;uFAAC;AAC/C;;;AAGG;AACM,IAAA,OAAO,GAAG,KAAK;2FAA4B;AACpD;;;AAGG;IACM,UAAU,GAAG,KAAK,CAAU,IAAI;mFAAC;AAC1C;;;AAGG;IACM,UAAU,GAAG,KAAK,CAAU,KAAK;mFAAC;AAC3C;;;AAGG;AACM,IAAA,iBAAiB,GAAG,KAAK;qGAAU;AAC5C;;;AAGG;AACM,IAAA,OAAO,GAAG,KAAK;2FAAuB;AAC/C;;;AAGG;IACM,QAAQ,GAAG,KAAK,CAAU,KAAK;iFAAC;AACzC;;;AAGG;AACM,IAAA,OAAO,GAAG,KAAK;2FAAY;AACpC;;;AAGG;AACM,IAAA,OAAO,GAAG,KAAK;2FAA+B;AACvD;;;;AAIG;IACM,UAAU,GAAG,MAAM,EAAyB;AACrD;;;;AAIG;IACM,QAAQ,GAAG,MAAM,EAAuB;AACjD;;;;AAIG;IACM,mBAAmB,GAAG,MAAM,EAAkC;IAE9D,gBAAgB,GAAG,SAAS,CAAuB,SAAS;yFAAC;IAE7D,gBAAgB,GAAG,SAAS,CAAuB,SAAS;yFAAC;AAEtE,IAAA,MAAM;IAEN,SAAS,GAAY,KAAK;AAE1B,IAAA,mBAAmB;AAEnB,IAAA,SAAS;AACT;;;;;AAKG;IACM,eAAe,GAAG,YAAY,CAAwD,SAAS,uFAAI,WAAW,EAAE,KAAK,EAAA,CAAG;AAEjI;;;;;AAKG;IACM,YAAY,GAAG,YAAY,CAAqD,MAAM,oFAAI,WAAW,EAAE,KAAK,EAAA,CAAG;AAExH;;;;;AAKG;IACM,cAAc,GAAG,YAAY,CAAuD,QAAQ,sFAAI,WAAW,EAAE,KAAK,EAAA,CAAG;AAE9H;;;;;AAKG;IACM,kBAAkB,GAAG,YAAY,CAA2D,YAAY,0FAAI,WAAW,EAAE,KAAK,EAAA,CAAG;IAEjI,SAAS,GAAG,eAAe,CAAC,aAAa;kFAAC;AAEnD,IAAA,gBAAgB;AAEhB,IAAA,aAAa;AAEb,IAAA,eAAe;AAEf,IAAA,mBAAmB;IAEnB,KAAK,GAAQ,CAAC;IAEd,IAAI,GAAQ,CAAC;IAEb,IAAI,GAAW,CAAC;IAEhB,cAAc,GAAY,KAAK;IAE/B,kBAAkB,GAAQ,CAAC;IAE3B,aAAa,GAAQ,CAAC;IAEtB,aAAa,GAAQ,EAAE;IAEvB,SAAS,GAAU,EAAE;IAErB,WAAW,GAAgD,EAAE;IAE7D,YAAY,GAAgD,EAAE;AAE9D,IAAA,aAAa;AAEb,IAAA,aAAa;IAEb,WAAW,GAAY,KAAK;AAE5B,IAAA,oBAAoB;AAEpB,IAAA,YAAY;AAEZ,IAAA,aAAa;AAEb,IAAA,mBAAmB;AAEnB,IAAA,oBAAoB;AAEpB,IAAA,kBAAkB;AAElB,IAAA,IAAI,iBAAiB,GAAA;QACjB,OAAO,IAAI,CAAC,kBAAkB;IAClC;IAEA,IAAI,iBAAiB,CAAC,GAAG,EAAA;AACrB,QAAA,IAAI,CAAC,kBAAkB,GAAG,GAAG;IACjC;AAEA,IAAA,IAAI,QAAQ,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE,KAAK,UAAU;IAC5C;AAEA,IAAA,IAAI,UAAU,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE,KAAK,YAAY;IAC9C;AAEA,IAAA,IAAI,IAAI,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM;IACxC;AAEA,IAAA,IAAI,WAAW,GAAA;AACX,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE;AACjC,QAAA,IAAI,YAAY,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACjC,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACX,gBAAA,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AAC5F,oBAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAChB,wBAAA,OAAO,IAAI;oBACf;AAAO,yBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;wBAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;oBAC9E;yBAAO;AACH,wBAAA,OAAO,IAAI;oBACf;AACJ,gBAAA,CAAC,CAAC;YACN;AAAO,iBAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE;AAAE,gBAAA,OAAO,YAAY;;gBAC5D,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC;QACjF;AAEA,QAAA,OAAO,EAAE;IACb;AAEA,IAAA,IAAI,UAAU,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,SAAS,GAAG,EAAE,IAAI,IAAI,CAAC,WAAW;IAC5F;AAEA,IAAA,IAAI,aAAa,GAAA;AACb,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE;AACrC,QAAA,IAAI,cAAc,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE;AAClD,YAAA,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,IAAI,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9M;AAEA,QAAA,OAAO,cAAc;IACzB;AAEA,IAAA,eAAe,GAAG,MAAM,CAAC,aAAa,CAAC;AAEvC,IAAA,WAAA,CAAoB,IAAY,EAAA;AAC5B,QAAA,KAAK,EAAE;QADS,IAAA,CAAA,IAAI,GAAJ,IAAI;QAEpB,MAAM,CAAC,MAAK;AACR,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,MAAM,EAAE;AAChC,gBAAA,IAAI,CAAC,MAAM,GAAG,MAAM;YACxB;AACJ,QAAA,CAAC,CAAC;QACF,MAAM,CAAC,MAAK;AACR,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE;YACjC,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,UAAU,KAAK,IAAI,CAAC,SAAS,EAAE;AAC9C,gBAAA,IAAI,CAAC,SAAS,GAAG,UAAU,IAAI,KAAK;YACxC;AACJ,QAAA,CAAC,CAAC;QACF,MAAM,CAAC,MAAK;YACR,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC;AAC5D,QAAA,CAAC,CAAC;QACF,MAAM,CAAC,MAAK;AACR,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE;AACvC,YAAA,IAAI,MAAM,KAAK,IAAI,CAAC,mBAAmB,EAAE;AACrC,gBAAA,IAAI,CAAC,mBAAmB,GAAG,MAAM;YACrC;AACJ,QAAA,CAAC,CAAC;QACF,MAAM,CAAC,MAAK;AACR,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE;AAC3B,YAAA,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAClC,gBAAA,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,CAAE,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,CAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACpF,gBAAA,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAA,EAAG,CAAC,CAAA,CAAE,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAA,EAAG,CAAC,CAAA,CAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAElF,gBAAA,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,SAAS,EAAE;oBAChD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,IAAI,KAAK;gBAC1C;gBACA,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,CAAC,mBAAmB,EAAE;AACrD,oBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,iBAAiB;gBACrD;YACJ;AACJ,QAAA,CAAC,CAAC;QACF,MAAM,CAAC,MAAK;YACR,IAAI,CAAC,KAAK,EAAE;YACZ,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB,IAAI,CAAC,IAAI,EAAE;YACf;AACJ,QAAA,CAAC,CAAC;IACN;IAEA,MAAM,GAAA;QACF,IAAI,CAAC,eAAe,EAAE;IAC1B;IAEA,kBAAkB,GAAA;QACd,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AAC9B,YAAA,QAAQ,IAAI,CAAC,OAAO,EAAE;AAClB,gBAAA,KAAK,SAAS;AACV,oBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ;oBACrC;AAEJ,gBAAA,KAAK,MAAM;AACP,oBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ;oBAClC;AAEJ,gBAAA,KAAK,QAAQ;AACT,oBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ;oBACpC;AAEJ,gBAAA,KAAK,YAAY;AACb,oBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,QAAQ;oBACxC;AAEJ,gBAAA;AACI,oBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ;oBAClC;;AAEZ,QAAA,CAAC,CAAC;IACN;IAEA,eAAe,GAAA;AACX,QAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAK;YACxB,IAAI,CAAC,QAAQ,EAAE;AACnB,QAAA,CAAC,CAAC;IACN;IAEA,kBAAkB,GAAA;AACd,QAAA,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACrD,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,IAAI,CAAC,QAAQ,EAAE;QACnB;IACJ;IAEA,SAAS,GAAA;QACL,IAAI,CAAC,oBAAoB,EAAE;AAE3B,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;IAC5B;IAEA,QAAQ,GAAA;AACJ,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACzD,YAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAChD,YAAA,IAAI,SAAS,CAAC,gBAAgB,EAAE,aAAa,CAAC,EAAE;gBAC5C,IAAI,CAAC,eAAe,EAAE;AACtB,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;gBACjC,IAAI,CAAC,IAAI,EAAE;gBAEX,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,gBAAgB,EAAE,aAAa,CAAC;gBAC7D,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,gBAAgB,EAAE,aAAa,CAAC;gBAC/D,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;gBACnD,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;AACrD,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI;YAC3B;QACJ;IACJ;IAEA,IAAI,GAAA;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;YAClB,IAAI,CAAC,kBAAkB,EAAE;;YAGzB,UAAU,CAAC,MAAK;gBACZ,IAAI,CAAC,aAAa,EAAE;gBACpB,IAAI,CAAC,OAAO,EAAE;gBACd,IAAI,CAAC,gBAAgB,EAAE;gBACvB,IAAI,CAAC,iBAAiB,EAAE;AACxB,gBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;YAC3B,CAAC,EAAE,CAAC,CAAC;QACT;IACJ;AAEA,IAAA,YAAY,CAAC,EAAgB,EAAA;QACzB,IAAI,CAAC,SAAS,GAAG,EAAE,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE,aAAa,IAAI,UAAU,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,aAAa,EAAE,4BAA4B,CAAC;IACrJ;IACA,eAAe,GAAA;QACX,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC;QACjD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC;QAChD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC;QAC9D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC;AACxD,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE;YAC1D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK;QAC5C;AACA,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,EAAE;QACnD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,EAAE;IACpE;IAEA,aAAa,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,gBAAgB,EAAE;IAClC;AAEA,IAAA,cAAc,CAAC,KAAW,EAAA;AACtB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,mBAAmB,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAClG;AAEA,IAAA,aAAa,CAAC,KAAW,EAAA;QACrB,OAAO,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI;IACtF;AAEA,IAAA,QAAQ,CAAC,OAAwB,EAAA;;QAE7B,IAAI,CAAC,gBAAgB,EAAE,EAAE,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC;IAC7D;AAEA,IAAA,aAAa,CAAC,KAAwB,EAAE,QAAA,GAA2B,MAAM,EAAA;AACrE,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,GAAI,KAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAI,KAAgB,GAAG,CAAC,CAAC;QAE3F,IAAI,KAAK,EAAE;AACP,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;AACxB,YAAA,MAAM,EAAE,SAAS,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAE,aAAa;YAChF,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE;AACtD,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,EAAE;AAC5C,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;YAChC,MAAM,cAAc,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,MAAM,MAAM,IAAI,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC;AAC5E,YAAA,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,MAAM,GAAG,KAAK,GAAG,KAAK;YACvE,MAAM,QAAQ,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;YAC9E,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC;AACnD,YAAA,IAAI,cAAc,GAAG,KAAK,EACtB,eAAe,GAAG,KAAK;AAE3B,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACX,gBAAA,QAAQ,GAAG;AACP,oBAAA,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;AACpD,oBAAA,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC;iBACtD;AACD,gBAAA,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;AACjI,gBAAA,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,UAAU;AAChG,gBAAA,cAAc,GAAG,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;YACjF;iBAAO;AACH,gBAAA,QAAQ,GAAG,cAAc,CAAC,KAAe,EAAE,iBAAiB,CAAC;AAC7D,gBAAA,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;AACrK,gBAAA,eAAe,GAAG,IAAI,CAAC,aAAa,MAAM,IAAI,CAAC,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;AACnF,gBAAA,cAAc,GAAG,QAAQ,KAAK,KAAK;YACvC;AAEA,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc;YACpC,eAAe,KAAK,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QAC9C;IACJ;AAEA,IAAA,YAAY,CAAC,KAAa,EAAE,EAAkB,EAAE,WAA2B,MAAM,EAAA;QAC7E,IAAI,EAAE,EAAE;YACJ,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE;YACnD,MAAM,QAAQ,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AAC9E,YAAA,MAAM,SAAS,GAAG,EAAE,KAAK,UAAU;AACnC,YAAA,MAAM,OAAO,GAAG,EAAE,KAAK,QAAQ;YAE/B,IAAI,SAAS,EAAE;AACX,gBAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACX,oBAAA,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAS,KAAM,CAAC,CAAC,CAAC,EAAE;AACpD,wBAAA,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAc,IAAI,CAAC,QAAQ,EAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAe,IAAI,CAAC,QAAQ,EAAG,CAAC,CAAC,CAAC,CAAC;oBAC9H;AAAO,yBAAA,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAS,KAAM,CAAC,CAAC,CAAC,EAAE;AAC3D,wBAAA,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAe,IAAI,CAAC,QAAQ,EAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAc,IAAI,CAAC,QAAQ,EAAG,CAAC,CAAC,CAAC,CAAC;oBAC9H;gBACJ;qBAAO;oBACH,IAAI,QAAQ,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,EAAE;AAChC,wBAAA,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,IAAY,IAAI,CAAC,QAAQ,EAAE;wBAC1D,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;oBACzD;gBACJ;YACJ;iBAAO,IAAI,OAAO,EAAE;AAChB,gBAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACX,oBAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,IAAU,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AACxD,wBAAA,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAc,IAAI,CAAC,QAAQ,EAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAe,IAAI,CAAC,QAAQ,EAAG,CAAC,CAAC,CAAC,CAAC;oBAC9H;AAAO,yBAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,IAAU,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AAC/D,wBAAA,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAe,IAAI,CAAC,QAAQ,EAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAc,IAAI,CAAC,QAAQ,EAAG,CAAC,CAAC,CAAC,CAAC;oBAC9H;gBACJ;qBAAO;oBACH,IAAI,QAAQ,CAAC,IAAI,GAAG,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE;AACpC,wBAAA,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,IAAY,IAAI,CAAC,QAAQ,EAAE;wBAC1D,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;oBACzD;gBACJ;YACJ;QACJ;aAAO;AACH,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC;QACvC;IACJ;IAEA,gBAAgB,GAAA;AACZ,QAAA,MAAM,wBAAwB,GAAG,CAAC,IAAY,EAAE,KAAa,MAAM,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAE1H,QAAA,IAAI,eAAe,GAAG,IAAI,CAAC,KAAK;QAChC,IAAI,cAAc,GAAQ,CAAC;AAE3B,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAChD,QAAA,IAAI,gBAAgB,EAAE,aAAa,EAAE;YACjC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,gBAAgB,CAAC,aAAa;AAEhE,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACX,gBAAA,eAAe,GAAG;AACd,oBAAA,IAAI,EAAE,wBAAwB,CAAC,SAAS,EAAa,IAAI,CAAC,QAAQ,EAAG,CAAC,CAAC,CAAC,CAAC;AACzE,oBAAA,IAAI,EAAE,wBAAwB,CAAC,UAAU,EAAa,IAAI,CAAC,QAAQ,EAAG,CAAC,CAAC,CAAC;iBAC5E;AACD,gBAAA,cAAc,GAAG;oBACb,IAAI,EAAE,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI;oBACzD,IAAI,EAAE,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC;iBACxD;YACL;iBAAO;AACH,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,GAAG,UAAU,GAAG,SAAS;gBAC1D,eAAe,GAAG,wBAAwB,CAAC,SAAS,EAAU,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC9E,gBAAA,cAAc,GAAG,eAAe,GAAG,IAAI,CAAC,kBAAkB;YAC9D;QACJ;QAEA,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,YAAA,QAAQ,EAAE;AACN,gBAAA,KAAK,EAAE,eAAe;AACtB,gBAAA,IAAI,EAAE;AACT;SACJ;IACL;IAEA,iBAAiB,GAAA;AACb,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,EAAE;AAC5C,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE;QAChD,MAAM,YAAY,GAAG,CAAC,gBAAgB,EAAE,aAAa,GAAG,gBAAgB,CAAC,aAAa,CAAC,WAAW,GAAG,UAAU,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC;AAC9H,QAAA,MAAM,qBAAqB,GAAG,IAAI,CAAC,gBAAgB,EAAE;QACrD,MAAM,aAAa,GAAG,CAAC,qBAAqB,EAAE,aAAa,GAAG,qBAAqB,CAAC,aAAa,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;AACzI,QAAA,MAAM,2BAA2B,GAAG,CAAC,YAAoB,EAAE,SAAiB,MAAM,SAAS,IAAI,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,SAAS,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC;AACxK,QAAA,MAAM,0BAA0B,GAAG,CAAC,SAAiB,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AAClF,QAAA,MAAM,kBAAkB,GAAQ,IAAI,CAAC;AACjC,cAAE;AACI,gBAAA,IAAI,EAAE,2BAA2B,CAAC,aAAa,EAAa,IAAI,CAAC,QAAQ,EAAG,CAAC,CAAC,CAAC,CAAC;AAChF,gBAAA,IAAI,EAAE,2BAA2B,CAAC,YAAY,EAAa,IAAI,CAAC,QAAQ,EAAG,CAAC,CAAC,CAAC;AACjF;cACD,2BAA2B,CAAC,IAAI,CAAC,UAAU,GAAG,YAAY,GAAG,aAAa,EAAU,IAAI,CAAC,QAAQ,EAAE,CAAC;AAE1G,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,KAAK,IAAI,CAAC,IAAI,GAAG,CAAC,0BAA0B,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,0BAA0B,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,GAAG,0BAA0B,CAAC,kBAAkB,CAAC,CAAC;AAE/N,QAAA,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE;IACpD;IAEA,gBAAgB,GAAA;QACZ,MAAM,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE;AAC1E,QAAA,MAAM,aAAa,GAAG,CAAC,MAAc,EAAE,IAAY,EAAE,KAAa,EAAE,OAAA,GAAmB,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,OAAO,CAAC;AACxK,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;AACxB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC;AACd,cAAE;AACI,gBAAA,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;AACnF,gBAAA,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,IAAI;AAC3F;cACD,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,CAAC;AAEtE,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB;AAC5C,QAAA,IAAI,CAAC,mBAAmB,GAAG,iBAAiB;AAE5C,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;QACxL;AAEA,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;AACb,YAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAK;gBACxB,IAAI,CAAC,aAAa,GAAG;AACjB,oBAAA,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,KAAK;AAC5E,oBAAA,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,EAAU,IAAI,CAAC,KAAK,EAAG,CAAC,MAAM;iBACrF;gBAED,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC;AACvD,YAAA,CAAC,CAAC;QACN;IACJ;IAEA,iBAAiB,GAAA;QACb,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACpC,YAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAK;AACxB,gBAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,oBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM;oBACvE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;oBAC7B,IAAI,CAAC,gBAAgB,EAAG,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;oBAE1E,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC3F,oBAAA,YAAY,KAAK,IAAI,CAAC,mBAAmB,KAAkB,IAAI,CAAC,gBAAgB,EAAG,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;AACnH,oBAAA,aAAa,KAAK,IAAI,CAAC,oBAAoB,KAAkB,IAAI,CAAC,gBAAgB,EAAG,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;oBAEtH,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAc,IAAI,CAAC,gBAAgB,EAAG,CAAC,aAAa,CAAC,EAAE,SAAS,CAAc,IAAI,CAAC,gBAAgB,EAAG,CAAC,aAAa,CAAC,CAAC;oBACvJ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,MAAmB,IAAI,CAAC,gBAAgB,EAAG,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,GAAW,IAAI,CAAC,YAAY,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;oBACvM,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,MAAmB,IAAI,CAAC,gBAAgB,EAAG,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,GAAW,IAAI,CAAC,aAAa,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAE3M,oBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE;oBACnE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE;oBACrB,IAAI,CAAC,gBAAgB,EAAG,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE;gBAC1E;AACJ,YAAA,CAAC,CAAC;QACN;IACJ;AAEA,IAAA,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,EAAA;AAC5B,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE;AACjC,QAAA,OAAO,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC;IACvH;IAEA,kBAAkB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9C,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrF,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxF,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClF,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAE3F,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,EAAE,GAAG,GAAG,MAAM,EAAE;QACzE;QAEA,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;IAC/D;IAEA,OAAO,GAAA;AACH,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAChD,QAAA,IAAI,gBAAgB,EAAE,aAAa,EAAE;AACjC,YAAA,MAAM,aAAa,GAAG,gBAAgB,CAAC,aAAa;AACpD,YAAA,MAAM,aAAa,GAAG,aAAa,CAAC,aAAa,EAAE,aAAa;AAEhE,YAAA,MAAM,YAAY,GAAG,aAAa,CAAC,WAAW;AAC9C,YAAA,MAAM,WAAW,GAAG,aAAa,EAAE,WAAW,IAAI,CAAC;AACnD,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAA,EAAG,YAAY,IAAI,WAAW,CAAA,EAAA,CAAI;AAEtE,YAAA,MAAM,aAAa,GAAG,aAAa,CAAC,YAAY;AAChD,YAAA,MAAM,YAAY,GAAG,aAAa,EAAE,YAAY,IAAI,CAAC;AACrD,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,CAAA,EAAG,aAAa,IAAI,YAAY,CAAA,EAAA,CAAI;AAE1E,YAAA,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,MAAW,MAAM,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;YAErF,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AAC9B,gBAAA,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC;AACzB,gBAAA,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC;YAC3B;iBAAO;AACH,gBAAA,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC;YAC7B;QACJ;IACJ;IAEA,aAAa,GAAA;AACT,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE;QACjC,IAAI,YAAY,EAAE;AACd,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,EAAE;AAC5C,YAAA,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,MAAW,EAAE,KAAa,EAAE,KAAA,GAAgB,CAAC,MACxE,IAAI,CAAC,WAAW,GAAG;gBAChB,GAAG,IAAI,CAAC,WAAW;gBACnB,GAAG,EAAE,CAAC,CAAA,EAAG,KAAK,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI;AAClE,aAAA,CAAC;AAEN,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACX,gBAAA,OAAO,CAAC,QAAQ,EAAE,YAAY,EAAa,IAAI,CAAC,QAAQ,EAAG,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;gBAC7E,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,YAAY,CAAC,CAAC,CAAC,EAAa,IAAI,CAAC,QAAQ,EAAG,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;YACrG;iBAAO;AACH,gBAAA,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,YAAY,EAAU,IAAI,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,YAAY,EAAU,IAAI,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;YACtL;QACJ;IACJ;AAEA,IAAA,kBAAkB,CAAC,GAAQ,EAAA;QACvB,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;AACtC,YAAA,MAAM,KAAK,GAAG,GAAG,GAAG,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;AAC1C,YAAA,MAAM,qBAAqB,GAAG,CAAC,MAAc,EAAE,KAAa,KAAK,MAAM,GAAG,KAAK;AAC/E,YAAA,MAAM,YAAY,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE,CAAA,YAAA,EAAe,EAAE,OAAO,EAAE,CAAA,MAAA,CAAQ,EAAE,EAAE,CAAC;AAE7I,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACX,gBAAA,YAAY,CAAC,qBAAqB,CAAC,KAAK,CAAC,IAAI,EAAa,IAAI,CAAC,QAAQ,EAAG,CAAC,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,KAAK,CAAC,IAAI,EAAa,IAAI,CAAC,QAAQ,EAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACtJ;iBAAO;gBACH,MAAM,YAAY,GAAG,qBAAqB,CAAC,KAAK,EAAU,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC1E,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,YAAY,CAAC;YACnF;QACJ;IACJ;AAEA,IAAA,sBAAsB,CAAC,KAAY,EAAA;AAC/B,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM;QAC3B,IAAI,CAAC,MAAM,EAAE;AACT,YAAA,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC;QAC3C;AACA,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,EAAE;AAC5C,QAAA,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAE,KAAa,MAAM,IAAI,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC;AAC7G,QAAA,MAAM,qBAAqB,GAAG,CAAC,IAAY,EAAE,KAAa,MAAM,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACvH,QAAA,MAAM,qBAAqB,GAAG,CAAC,aAAqB,EAAE,MAAc,EAAE,KAAa,EAAE,IAAY,EAAE,KAAa,EAAE,oBAAyB,KAAI;YAC3I,OAAO,aAAa,IAAI,KAAK,GAAG,KAAK,GAAG,oBAAoB,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,CAAC;AAC5G,QAAA,CAAC;AACD,QAAA,MAAM,cAAc,GAAG,CAAC,aAAqB,EAAE,aAAqB,EAAE,MAAc,EAAE,KAAa,EAAE,IAAY,EAAE,KAAa,EAAE,oBAAyB,KAAI;YAC3J,IAAI,aAAa,IAAI,KAAK;AAAE,gBAAA,OAAO,CAAC;;gBAC/B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,oBAAoB,IAAI,aAAa,GAAG,aAAa,GAAG,MAAM,GAAG,aAAa,GAAG,KAAK,IAAI,aAAa,GAAG,aAAa,GAAG,MAAM,GAAG,aAAa,GAAG,CAAC,GAAG,KAAK,CAAC;AACzL,QAAA,CAAC;AACD,QAAA,MAAM,aAAa,GAAG,CAAC,aAAqB,EAAE,MAAc,EAAE,KAAa,EAAE,IAAY,EAAE,KAAa,EAAE,OAAO,GAAG,KAAK,KAAI;YACzH,IAAI,SAAS,GAAG,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK;AAEzC,YAAA,IAAI,aAAa,IAAI,KAAK,EAAE;AACxB,gBAAA,SAAS,IAAI,KAAK,GAAG,CAAC;YAC1B;YAEA,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC;AAC3C,QAAA,CAAC;AAED,QAAA,MAAM,SAAS,GAAG,kBAAkB,CAAe,MAAO,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,CAAC;AACrF,QAAA,MAAM,UAAU,GAAG,kBAAkB,CAAe,MAAO,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC;QAExF,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC;AACnD,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI;QACvB,IAAI,cAAc,GAAG,KAAK;AAC1B,QAAA,IAAI,YAAY,GAAG,IAAI,CAAC,aAAa;AAErC,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,SAAS;YACxD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,UAAU;AAE3D,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,CAAC,UAAU,EAAE,KAAK,YAAY,IAAI,aAAa,CAAC,CAAC,EAAE;AAC9E,gBAAA,MAAM,YAAY,GAAG;AACjB,oBAAA,IAAI,EAAE,qBAAqB,CAAC,SAAS,EAAa,IAAI,CAAC,QAAQ,EAAG,CAAC,CAAC,CAAC,CAAC;AACtE,oBAAA,IAAI,EAAE,qBAAqB,CAAC,UAAU,EAAa,IAAI,CAAC,QAAQ,EAAG,CAAC,CAAC,CAAC;iBACzE;AACD,gBAAA,MAAM,YAAY,GAAG;AACjB,oBAAA,IAAI,EAAE,qBAAqB,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC;AACxJ,oBAAA,IAAI,EAAE,qBAAqB,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,aAAa;iBAC3J;AAED,gBAAA,QAAQ,GAAG;AACP,oBAAA,IAAI,EAAE,cAAc,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC;AACpK,oBAAA,IAAI,EAAE,cAAc,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,aAAa;iBACvK;AACD,gBAAA,OAAO,GAAG;AACN,oBAAA,IAAI,EAAE,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAChI,oBAAA,IAAI,EAAE,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,IAAI;iBACxI;gBAED,cAAc,GAAG,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc;gBACpL,YAAY,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE;YACvD;QACJ;aAAO;AACH,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,GAAG,UAAU,GAAG,SAAS;AAC1D,YAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,aAAa,IAAI,SAAS;AAE3D,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,CAAC,UAAU,EAAE,IAAI,mBAAmB,CAAC,EAAE;gBAClE,MAAM,YAAY,GAAG,qBAAqB,CAAC,SAAS,EAAU,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC9E,MAAM,YAAY,GAAG,qBAAqB,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;gBAEvJ,QAAQ,GAAG,cAAc,CAAC,YAAY,EAAE,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;AACpJ,gBAAA,OAAO,GAAG,aAAa,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,mBAAmB,CAAC;AAC7G,gBAAA,cAAc,GAAG,QAAQ,KAAK,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc;gBACxF,YAAY,GAAG,SAAS;YAC5B;QACJ;QAEA,OAAO;AACH,YAAA,KAAK,EAAE,QAAQ;AACf,YAAA,IAAI,EAAE,OAAO;YACb,cAAc;AACd,YAAA,SAAS,EAAE;SACd;IACL;AAEA,IAAA,cAAc,CAAC,KAAY,EAAA;AACvB,QAAA,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;QAErF,IAAI,cAAc,EAAE;AAChB,YAAA,MAAM,QAAQ,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE;AAEhC,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;AAEjC,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,YAAA,IAAI,CAAC,aAAa,GAAG,SAAS;AAE9B,YAAA,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,QAAQ,CAAC;AAElD,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;AAC1C,gBAAA,MAAM,aAAa,GAAG;AAClB,oBAAA,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,EAAU,IAAI,CAAC,KAAK,EAAG,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3H,oBAAA,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,EAAU,IAAI,CAAC,KAAK,EAAG,CAAC,MAAM;iBACnH;gBACD,MAAM,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,KAAK,aAAa,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI;gBAE7H,kBAAkB,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,aAAa,CAAC;AACpE,gBAAA,IAAI,CAAC,aAAa,GAAG,aAAa;YACtC;QACJ;IACJ;AAEA,IAAA,iBAAiB,CAAC,KAAY,EAAA;QAC1B,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;AAEvD,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;AACd,YAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,gBAAA,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;YACpC;YAEA,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;gBACtC,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;gBAC7D,MAAM,OAAO,GAAG,cAAc,KAAK,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,KAAK,CAAC;gBAE9E,IAAI,OAAO,EAAE;AACT,oBAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AAErB,oBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;gBAC3B;YACJ;AAEA,YAAA,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,MAAK;AACjC,gBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;gBAE1B,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,SAAS,CAAC,EAAE;AACvF,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,oBAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE;gBACrC;AACA,gBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AAC3B,YAAA,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QACpB;aAAO;YACH,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;QACjD;IACJ;IAEA,kBAAkB,GAAA;AACd,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACpC,YAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;AAC5B,gBAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAK;AAC7B,oBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAqB;AAClD,oBAAA,MAAM,KAAK,GAAG,aAAa,EAAE,GAAG,mBAAmB,GAAG,QAAQ;oBAC9D,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnG,gBAAA,CAAC,CAAC;YACN;QACJ;IACJ;IAEA,oBAAoB,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,oBAAoB,EAAE;AAC3B,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI;QACpC;IACJ;IAEA,cAAc,GAAA;AACV,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,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAChD,YAAA,IAAI,SAAS,CAAC,gBAAgB,EAAE,aAAa,CAAC,EAAE;gBAC5C,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,gBAAgB,EAAE,aAAa,CAAC,EAAE,SAAS,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;AAC/G,gBAAA,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC,aAAa,CAAC;AAChG,gBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,GAAG,WAAW,IAAI,YAAY,GAAG,IAAI,CAAC,UAAU,GAAG,WAAW,GAAG,IAAI,CAAC,QAAQ,GAAG,YAAY,GAAG,KAAK;gBAE7H,MAAM;AACF,oBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAK;AACf,wBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,EAAE;AACnD,wBAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,wBAAA,IAAI,CAAC,aAAa,GAAG,MAAM;wBAC3B,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;wBACnD,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;wBAErD,IAAI,CAAC,IAAI,EAAE;AACf,oBAAA,CAAC,CAAC;YACV;AACJ,QAAA,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;IAC1B;IAEA,YAAY,CAAC,IAAY,EAAE,MAAW,EAAA;;AAElC,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,IAAU,IAAI,CAAC,OAAO,EAAG,CAAC,IAAI,CAAC,GAAS,IAAI,CAAC,OAAO,EAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IACxH;IAEA,iBAAiB,GAAA;QACb,OAAO;AACH,YAAA,iBAAiB,EAAE,CAAA,0BAAA,EAA6B,IAAI,CAAC,SAAS,GAAG,2BAA2B,GAAG,EAAE,CAAA,CAAE;YACnG,KAAK,EAAE,IAAI,CAAC,WAAW;YACvB,cAAc,EAAE,CAAC,KAAa,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YACzD,OAAO,EAAE,IAAI,CAAC,SAAS;AACvB,YAAA,gBAAgB,EAAE,CAAC,KAAa,EAAE,OAAa,KAAK,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC;AACzF,YAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;YACzB,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,OAAO,EAAE,IAAI,CAAC,aAAa;YAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YAClC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5C,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAC/B,YAAA,iBAAiB,EAAE,IAAI,CAAC,gBAAgB,EAAE,EAAE;SAC/C;IACL;AAEA,IAAA,UAAU,CAAC,aAAqB,EAAA;AAC5B,QAAA,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,aAAa,GAAG,IAAI,CAAC,KAAK,GAAG,aAAa;QAEtF,OAAO;YACH,KAAK;YACL,KAAK;YACL,KAAK,EAAE,KAAK,KAAK,CAAC;AAClB,YAAA,IAAI,EAAE,KAAK,KAAK,KAAK,GAAG,CAAC;AACzB,YAAA,IAAI,EAAE,KAAK,GAAG,CAAC,KAAK,CAAC;AACrB,YAAA,GAAG,EAAE,KAAK,GAAG,CAAC,KAAK;SACtB;IACL;IAEA,gBAAgB,CAAC,KAAa,EAAE,UAAe,EAAA;AAC3C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM;QAEnC,OAAO;YACH,KAAK;YACL,KAAK;YACL,KAAK,EAAE,KAAK,KAAK,CAAC;AAClB,YAAA,IAAI,EAAE,KAAK,KAAK,KAAK,GAAG,CAAC;AACzB,YAAA,IAAI,EAAE,KAAK,GAAG,CAAC,KAAK,CAAC;AACrB,YAAA,GAAG,EAAE,KAAK,GAAG,CAAC,KAAK,CAAC;YACpB,OAAO,EAAE,IAAI,CAAC,SAAS;AACvB,YAAA,GAAG;SACN;IACL;uGAr8BS,QAAQ,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAR,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sEAAA,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,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,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,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,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,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,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,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,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,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,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,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,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,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,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,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,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,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,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,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,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,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,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,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,QAAA,EAAA,EAAA,EAAA,SAAA,EANN,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,0ZAyMjG,aAAa,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,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,EC5PtD,sxEA2CA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDGc,YAAY,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,WAAW,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,+BAAE,IAAI,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAW9C,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAbpB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sEAAsE,WACvE,CAAC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,CAAC,EAAA,UAAA,EAC5C,IAAI,mBAEC,uBAAuB,CAAC,KAAK,EAAA,aAAA,EAC/B,iBAAiB,CAAC,IAAI,EAAA,SAAA,EAC1B,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAA,QAAU,EAAE,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAA,QAAU,EAAE,CAAC,EAAA,IAAA,EAChI;AACF,wBAAA,gBAAgB,EAAE;qBACrB,EAAA,cAAA,EACe,CAAC,IAAI,CAAC,EAAA,QAAA,EAAA,sxEAAA,EAAA;AA0JsC,SAAA,CAAA,EAAA,cAAA,EAAA,MAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,IAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAAA,SAAS,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAET,SAAS,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAe0B,SAAS,OAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAQvC,MAAM,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,CAQ1B,QAAQ,EAAA,EAAA,GAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAQxB,YAAY,EAAA,EAAA,GAAE,EAAE,WAAW,EAAE,KAAK,EAAE,2FAEpG,aAAa,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;MAywBzC,cAAc,CAAA;uGAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YA58Bd,QAAQ,EAy8BG,YAAY,CAAA,EAAA,OAAA,EAAA,CAz8BvB,QAAQ,EA08BG,YAAY,CAAA,EAAA,CAAA;AAEvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,EAAA,OAAA,EAAA,CAHb,QAAQ,EAAE,YAAY,EACZ,YAAY,CAAA,EAAA,CAAA;;2FAEvB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC;AACjC,oBAAA,OAAO,EAAE,CAAC,QAAQ,EAAE,YAAY;AACnC,iBAAA;;;AEpgCD;;AAEG;;"}
|
|
1
|
+
{"version":3,"file":"gravionlabs-helix-core-scroller.mjs","names":[],"sources":["../../../projects/core/scroller/style/scrollerstyle.ts","../../../projects/core/scroller/scroller.ts","../../../projects/core/scroller/scroller.html"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from '@gravionlabs/helix-core/base';\n\nconst css = /*css*/ `\n.h-virtualscroller {\n position: relative;\n overflow: auto;\n contain: strict;\n transform: translateZ(0);\n will-change: scroll-position;\n outline: 0 none;\n}\n\n.h-virtualscroller-content {\n position: absolute;\n top: 0;\n left: 0;\n min-height: 100%;\n min-width: 100%;\n will-change: transform;\n}\n\n.h-virtualscroller-spacer {\n position: absolute;\n top: 0;\n left: 0;\n height: 1px;\n width: 1px;\n transform-origin: 0 0;\n pointer-events: none;\n}\n\n.h-virtualscroller-loader {\n position: sticky;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: dt('virtualscroller.loader.mask.background');\n color: dt('virtualscroller.loader.mask.color');\n}\n\n.h-virtualscroller-loader-mask {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.h-virtualscroller-loading-icon {\n font-size: dt('virtualscroller.loader.icon.size');\n width: dt('virtualscroller.loader.icon.size');\n height: dt('virtualscroller.loader.icon.size');\n}\n\n.h-virtualscroller-horizontal > .h-virtualscroller-content {\n display: flex;\n}\n\n.h-virtualscroller-inline .h-virtualscroller-content {\n position: static;\n}\n`;\n\nconst classes = {\n root: ({ instance }) => [\n 'h-virtualscroller',\n {\n 'h-virtualscroller-inline': instance.inline,\n 'h-virtualscroller-both h-both-scroll': instance.both,\n 'h-virtualscroller-horizontal h-horizontal-scroll': instance.horizontal\n }\n ],\n content: 'h-virtualscroller-content',\n spacer: 'h-virtualscroller-spacer',\n loader: ({ instance }) => [\n 'h-virtualscroller-loader',\n {\n 'h-virtualscroller-loader-mask': !instance.loaderTemplate\n }\n ],\n loadingIcon: 'h-virtualscroller-loading-icon'\n};\n\n@Injectable()\nexport class ScrollerStyle extends BaseStyle {\n name = 'virtualscroller';\n\n css = css;\n\n classes = classes;\n}\n\n/**\n *\n * VirtualScroller is a performant approach to handle huge data efficiently.\n *\n * [Live Demo](https://www.primeng.org/scroller/)\n *\n * @module scrollerstyle\n *\n */\nexport enum ScrollerClasses {\n /**\n * Class name of the root element\n */\n root = 'h-virtualscroller',\n /**\n * Class name of the content element\n */\n content = 'h-virtualscroller-content',\n /**\n * Class name of the spacer element\n */\n spacer = 'h-virtualscroller-spacer',\n /**\n * Class name of the loader element\n */\n loader = 'h-virtualscroller-loader',\n /**\n * Class name of the loading icon element\n */\n loadingIcon = 'h-virtualscroller-loading-icon'\n}\n\nexport interface ScrollerStyle extends BaseStyle {}\n","import { CommonModule, isPlatformBrowser } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n effect,\n inject,\n InjectionToken,\n input,\n NgModule,\n NgZone,\n QueryList,\n TemplateRef,\n ViewEncapsulation,\n output,\n viewChild,\n contentChild,\n contentChildren\n} from '@angular/core';\nimport { findSingle, getHeight, getWidth, isTouchDevice, isVisible } from '@gravionlabs/helix-core/uix/utils';\nimport { HelixTemplate, ScrollerOptions, SharedModule } from '@gravionlabs/helix-core/api';\nimport { BaseComponent, PARENT_INSTANCE } from '@gravionlabs/helix-core/basecomponent';\nimport { Bind } from '@gravionlabs/helix-core/bind';\nimport { SpinnerIcon } from '@gravionlabs/helix-core/icons';\nimport { Nullable, VoidListener } from '@gravionlabs/helix-core/ts-helpers';\nimport {\n ScrollerContentTemplateContext,\n ScrollerItemTemplateContext,\n ScrollerLazyLoadEvent,\n ScrollerLoaderIconTemplateContext,\n ScrollerLoaderTemplateContext,\n ScrollerScrollEvent,\n ScrollerScrollIndexChangeEvent,\n ScrollerToType,\n VirtualScrollerPassThrough\n} from '@gravionlabs/helix-core/types/scroller';\nimport { ScrollerStyle } from './style/scrollerstyle';\n\nconst SCROLLER_INSTANCE = new InjectionToken<Scroller>('SCROLLER_INSTANCE');\n\n/**\n * Scroller is a performance-approach to handle huge data efficiently.\n * @group Components\n */\n@Component({\n selector: 'h-scroller, h-virtualscroller, h-virtual-scroller, h-virtualScroller',\n imports: [CommonModule, SpinnerIcon, SharedModule, Bind],\n standalone: true,\n templateUrl: './scroller.html',\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None,\n providers: [ScrollerStyle, { provide: SCROLLER_INSTANCE, useExisting: Scroller }, { provide: PARENT_INSTANCE, useExisting: Scroller }],\n host: {\n '[style.height]': 'height'\n },\n hostDirectives: [Bind]\n})\nexport class Scroller extends BaseComponent<VirtualScrollerPassThrough> {\n componentName = 'VirtualScroller';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n $pcScroller: Scroller | undefined = inject(SCROLLER_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n readonly hostName = input<string>('');\n /**\n * Unique identifier of the element.\n * @group Props\n */\n readonly id = input<string>();\n /**\n * Inline style of the component.\n * @group Props\n */\n readonly style = input<any>();\n /**\n * Style class of the element.\n * @group Props\n */\n readonly styleClass = input<string>();\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n readonly tabindex = input<number>(0);\n /**\n * An array of objects to display.\n * @group Props\n */\n readonly items = input<any[] | undefined | null>();\n /**\n * The height/width of item according to orientation.\n * @group Props\n */\n readonly itemSize = input<number[] | number>(0);\n /**\n * Height of the scroll viewport.\n * @group Props\n */\n readonly scrollHeight = input<string>();\n /**\n * Width of the scroll viewport.\n * @group Props\n */\n readonly scrollWidth = input<string>();\n /**\n * The orientation of scrollbar.\n * @group Props\n */\n readonly orientation = input<'vertical' | 'horizontal' | 'both'>('vertical');\n /**\n * Used to specify how many items to load in each load method in lazy mode.\n * @group Props\n */\n readonly step = input<number>(0);\n /**\n * Delay in scroll before new data is loaded.\n * @group Props\n */\n readonly delay = input<number>(0);\n /**\n * Delay after window's resize finishes.\n * @group Props\n */\n readonly resizeDelay = input<number>(10);\n /**\n * Used to append each loaded item to top without removing any items from the DOM. Using very large data may cause the browser to crash.\n * @group Props\n */\n readonly appendOnly = input<boolean>(false);\n /**\n * Specifies whether the scroller should be displayed inline or not.\n * @group Props\n */\n readonly inline = input<boolean>(false);\n /**\n * Defines if data is loaded and interacted with in lazy manner.\n * @group Props\n */\n readonly lazy = input<boolean>(false);\n /**\n * If disabled, the scroller feature is eliminated and the content is displayed directly.\n * @group Props\n */\n readonly disabled = input<boolean>(false);\n /**\n * Used to implement a custom loader instead of using the loader feature in the scroller.\n * @group Props\n */\n readonly loaderDisabled = input<boolean>(false);\n /**\n * Columns to display.\n * @group Props\n */\n readonly columns = input<any[] | undefined | null>();\n /**\n * Used to implement a custom spacer instead of using the spacer feature in the scroller.\n * @group Props\n */\n readonly showSpacer = input<boolean>(true);\n /**\n * Defines whether to show loader.\n * @group Props\n */\n readonly showLoader = input<boolean>(false);\n /**\n * Determines how many additional elements to add to the DOM outside of the view. According to the scrolls made up and down, extra items are added in a certain algorithm in the form of multiples of this number. Default value is half the number of items shown in the view.\n * @group Props\n */\n readonly numToleratedItems = input<number>();\n /**\n * Defines whether the data is loaded.\n * @group Props\n */\n readonly loading = input<boolean | undefined>();\n /**\n * Defines whether to dynamically change the height or width of scrollable container.\n * @group Props\n */\n readonly autoSize = input<boolean>(false);\n /**\n * Function to optimize the dom operations by delegating to ngForTrackBy, default algoritm checks for object identity.\n * @group Props\n */\n readonly trackBy = input<Function>();\n /**\n * Defines 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 options = input<ScrollerOptions | undefined>();\n /**\n * Callback to invoke in lazy mode to load new data.\n * @param {ScrollerLazyLoadEvent} event - Custom lazy load event.\n * @group Emits\n */\n readonly onLazyLoad = output<ScrollerLazyLoadEvent>();\n /**\n * Callback to invoke when scroll position changes.\n * @param {ScrollerScrollEvent} event - Custom scroll event.\n * @group Emits\n */\n readonly onScroll = output<ScrollerScrollEvent>();\n /**\n * Callback to invoke when scroll position and item's range in view changes.\n * @param {ScrollerScrollEvent} event - Custom scroll index change event.\n * @group Emits\n */\n readonly onScrollIndexChange = output<ScrollerScrollIndexChangeEvent>();\n\n readonly elementViewChild = viewChild<Nullable<ElementRef>>('element');\n\n readonly contentViewChild = viewChild<Nullable<ElementRef>>('content');\n\n height: string;\n\n d_loading: boolean = false;\n\n d_numToleratedItems: any;\n\n contentEl: any;\n /**\n * Content template of the component.\n * @param {ScrollerContentTemplateContext} context - content context.\n * @see {@link ScrollerContentTemplateContext}\n * @group Templates\n */\n readonly contentTemplate = contentChild<Nullable<TemplateRef<ScrollerContentTemplateContext>>>('content', { descendants: false });\n\n /**\n * Item template of the component.\n * @param {ScrollerItemTemplateContext} context - item context.\n * @see {@link ScrollerItemTemplateContext}\n * @group Templates\n */\n readonly itemTemplate = contentChild<Nullable<TemplateRef<ScrollerItemTemplateContext>>>('item', { descendants: false });\n\n /**\n * Loader template of the component.\n * @param {ScrollerLoaderTemplateContext} context - loader context.\n * @see {@link ScrollerLoaderTemplateContext}\n * @group Templates\n */\n readonly loaderTemplate = contentChild<Nullable<TemplateRef<ScrollerLoaderTemplateContext>>>('loader', { descendants: false });\n\n /**\n * Loader icon template of the component.\n * @param {ScrollerLoaderIconTemplateContext} context - loader icon context.\n * @see {@link ScrollerLoaderIconTemplateContext}\n * @group Templates\n */\n readonly loaderIconTemplate = contentChild<Nullable<TemplateRef<ScrollerLoaderIconTemplateContext>>>('loadericon', { descendants: false });\n\n readonly templates = contentChildren(HelixTemplate);\n\n _contentTemplate: TemplateRef<ScrollerContentTemplateContext> | undefined;\n\n _itemTemplate: TemplateRef<ScrollerItemTemplateContext> | undefined;\n\n _loaderTemplate: TemplateRef<ScrollerLoaderTemplateContext> | undefined;\n\n _loaderIconTemplate: TemplateRef<ScrollerLoaderIconTemplateContext> | undefined;\n\n first: any = 0;\n\n last: any = 0;\n\n page: number = 0;\n\n isRangeChanged: boolean = false;\n\n numItemsInViewport: any = 0;\n\n lastScrollPos: any = 0;\n\n lazyLoadState: any = {};\n\n loaderArr: any[] = [];\n\n spacerStyle: { [klass: string]: any } | null | undefined = {};\n\n contentStyle: { [klass: string]: any } | null | undefined = {};\n\n scrollTimeout: any;\n\n resizeTimeout: any;\n\n initialized: boolean = false;\n\n windowResizeListener: VoidListener;\n\n defaultWidth: number | undefined;\n\n defaultHeight: number | undefined;\n\n defaultContentWidth: number | undefined;\n\n defaultContentHeight: number | undefined;\n\n _contentStyleClass: any;\n\n get contentStyleClass() {\n return this._contentStyleClass;\n }\n\n set contentStyleClass(val) {\n this._contentStyleClass = val;\n }\n\n get vertical() {\n return this.orientation() === 'vertical';\n }\n\n get horizontal() {\n return this.orientation() === 'horizontal';\n }\n\n get both() {\n return this.orientation() === 'both';\n }\n\n get loadedItems() {\n const currentItems = this.items();\n if (currentItems && !this.d_loading) {\n if (this.both) {\n return currentItems.slice(this.appendOnly() ? 0 : this.first.rows, this.last.rows).map((item) => {\n if (this.columns()) {\n return item;\n } else if (Array.isArray(item)) {\n return item.slice(this.appendOnly() ? 0 : this.first.cols, this.last.cols);\n } else {\n return item;\n }\n });\n } else if (this.horizontal && this.columns()) return currentItems;\n else return currentItems.slice(this.appendOnly() ? 0 : this.first, this.last);\n }\n\n return [];\n }\n\n get loadedRows() {\n return this.d_loading ? (this.loaderDisabled() ? this.loaderArr : []) : this.loadedItems;\n }\n\n get loadedColumns() {\n const currentColumns = this.columns();\n if (currentColumns && (this.both || this.horizontal)) {\n return this.d_loading && this.loaderDisabled() ? (this.both ? this.loaderArr[0] : this.loaderArr) : currentColumns.slice(this.both ? this.first.cols : this.first, this.both ? this.last.cols : this.last);\n }\n\n return currentColumns;\n }\n\n _componentStyle = inject(ScrollerStyle);\n\n constructor(private zone: NgZone) {\n super();\n effect(() => {\n if (this.scrollHeight() === '100%') {\n this.height = '100%';\n }\n });\n effect(() => {\n const loadingVal = this.loading();\n if (this.lazy() && loadingVal !== this.d_loading) {\n this.d_loading = loadingVal ?? false;\n }\n });\n effect(() => {\n this.orientation();\n this.lastScrollPos = this.both ? { top: 0, left: 0 } : 0;\n });\n effect(() => {\n const numTol = this.numToleratedItems();\n if (numTol !== this.d_numToleratedItems) {\n this.d_numToleratedItems = numTol;\n }\n });\n effect(() => {\n const opts = this.options();\n if (opts && typeof opts === 'object') {\n Object.entries(opts).forEach(([k, v]) => this[`_${k}`] !== v && (this[`_${k}`] = v));\n Object.entries(opts).forEach(([k, v]) => this[`${k}`] !== v && (this[`${k}`] = v));\n\n if (this.lazy() && opts.loading !== this.d_loading) {\n this.d_loading = opts.loading ?? false;\n }\n if (opts.numToleratedItems !== this.d_numToleratedItems) {\n this.d_numToleratedItems = opts.numToleratedItems;\n }\n }\n });\n effect(() => {\n this.items();\n this.itemSize();\n this.scrollHeight();\n this.scrollWidth();\n if (this.initialized) {\n this.init();\n }\n });\n }\n\n onInit() {\n this.setInitialState();\n }\n\n onAfterContentInit() {\n this.templates().forEach((item) => {\n switch (item.getType()) {\n case 'content':\n this._contentTemplate = item.template;\n break;\n\n case 'item':\n this._itemTemplate = item.template;\n break;\n\n case 'loader':\n this._loaderTemplate = item.template;\n break;\n\n case 'loadericon':\n this._loaderIconTemplate = item.template;\n break;\n\n default:\n this._itemTemplate = item.template;\n break;\n }\n });\n }\n\n onAfterViewInit() {\n Promise.resolve().then(() => {\n this.viewInit();\n });\n }\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptm('host'));\n if (!this.initialized) {\n this.viewInit();\n }\n }\n\n onDestroy() {\n this.unbindResizeListener();\n\n this.contentEl = null;\n this.initialized = false;\n }\n\n viewInit() {\n if (isPlatformBrowser(this.platformId) && !this.initialized) {\n const elementViewChild = this.elementViewChild();\n if (isVisible(elementViewChild?.nativeElement)) {\n this.setInitialState();\n this.setContentEl(this.contentEl);\n this.init();\n\n this.defaultWidth = getWidth(elementViewChild?.nativeElement);\n this.defaultHeight = getHeight(elementViewChild?.nativeElement);\n this.defaultContentWidth = getWidth(this.contentEl);\n this.defaultContentHeight = getHeight(this.contentEl);\n this.initialized = true;\n }\n }\n }\n\n init() {\n if (!this.disabled()) {\n this.bindResizeListener();\n\n // wait for the next tick\n setTimeout(() => {\n this.setSpacerSize();\n this.setSize();\n this.calculateOptions();\n this.calculateAutoSize();\n this.cd.detectChanges();\n }, 1);\n }\n }\n\n setContentEl(el?: HTMLElement) {\n this.contentEl = el || this.contentViewChild()?.nativeElement || findSingle(this.elementViewChild()?.nativeElement, '.h-virtualscroller-content');\n }\n setInitialState() {\n this.first = this.both ? { rows: 0, cols: 0 } : 0;\n this.last = this.both ? { rows: 0, cols: 0 } : 0;\n this.numItemsInViewport = this.both ? { rows: 0, cols: 0 } : 0;\n this.lastScrollPos = this.both ? { top: 0, left: 0 } : 0;\n if (this.d_loading === undefined || this.d_loading === false) {\n this.d_loading = this.loading() || false;\n }\n this.d_numToleratedItems = this.numToleratedItems();\n this.loaderArr = this.loaderArr.length > 0 ? this.loaderArr : [];\n }\n\n getElementRef() {\n return this.elementViewChild();\n }\n\n getPageByFirst(first?: any) {\n return Math.floor(((first ?? this.first) + this.d_numToleratedItems * 4) / (this.step() || 1));\n }\n\n isPageChanged(first?: any) {\n return this.step() ? this.page !== this.getPageByFirst(first ?? this.first) : true;\n }\n\n scrollTo(options: ScrollToOptions) {\n // this.lastScrollPos = this.both ? { top: 0, left: 0 } : 0;\n this.elementViewChild()?.nativeElement?.scrollTo(options);\n }\n\n scrollToIndex(index: number | number[], behavior: ScrollBehavior = 'auto') {\n const valid = this.both ? (index as number[]).every((i) => i > -1) : (index as number) > -1;\n\n if (valid) {\n const first = this.first;\n const { scrollTop = 0, scrollLeft = 0 } = this.elementViewChild()?.nativeElement;\n const { numToleratedItems } = this.calculateNumItems();\n const contentPos = this.getContentPosition();\n const itemSize = this.itemSize();\n const calculateFirst = (_index = 0, _numT) => (_index <= _numT ? 0 : _index);\n const calculateCoord = (_first, _size, _cpos) => _first * _size + _cpos;\n const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });\n let newFirst = this.both ? { rows: 0, cols: 0 } : 0;\n let isRangeChanged = false,\n isScrollChanged = false;\n\n if (this.both) {\n newFirst = {\n rows: calculateFirst(index[0], numToleratedItems[0]),\n cols: calculateFirst(index[1], numToleratedItems[1])\n };\n scrollTo(calculateCoord(newFirst.cols, itemSize[1], contentPos.left), calculateCoord(newFirst.rows, itemSize[0], contentPos.top));\n isScrollChanged = this.lastScrollPos.top !== scrollTop || this.lastScrollPos.left !== scrollLeft;\n isRangeChanged = newFirst.rows !== first.rows || newFirst.cols !== first.cols;\n } else {\n newFirst = calculateFirst(index as number, numToleratedItems);\n this.horizontal ? scrollTo(calculateCoord(newFirst, itemSize, contentPos.left), scrollTop) : scrollTo(scrollLeft, calculateCoord(newFirst, itemSize, contentPos.top));\n isScrollChanged = this.lastScrollPos !== (this.horizontal ? scrollLeft : scrollTop);\n isRangeChanged = newFirst !== first;\n }\n\n this.isRangeChanged = isRangeChanged;\n isScrollChanged && (this.first = newFirst);\n }\n }\n\n scrollInView(index: number, to: ScrollerToType, behavior: ScrollBehavior = 'auto') {\n if (to) {\n const { first, viewport } = this.getRenderedRange();\n const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });\n const isToStart = to === 'to-start';\n const isToEnd = to === 'to-end';\n\n if (isToStart) {\n if (this.both) {\n if (viewport.first.rows - first.rows > (<any>index)[0]) {\n scrollTo(viewport.first.cols * (<number[]>this.itemSize())[1], (viewport.first.rows - 1) * (<number[]>this.itemSize())[0]);\n } else if (viewport.first.cols - first.cols > (<any>index)[1]) {\n scrollTo((viewport.first.cols - 1) * (<number[]>this.itemSize())[1], viewport.first.rows * (<number[]>this.itemSize())[0]);\n }\n } else {\n if (viewport.first - first > index) {\n const pos = (viewport.first - 1) * <number>this.itemSize();\n this.horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);\n }\n }\n } else if (isToEnd) {\n if (this.both) {\n if (viewport.last.rows - first.rows <= (<any>index)[0] + 1) {\n scrollTo(viewport.first.cols * (<number[]>this.itemSize())[1], (viewport.first.rows + 1) * (<number[]>this.itemSize())[0]);\n } else if (viewport.last.cols - first.cols <= (<any>index)[1] + 1) {\n scrollTo((viewport.first.cols + 1) * (<number[]>this.itemSize())[1], viewport.first.rows * (<number[]>this.itemSize())[0]);\n }\n } else {\n if (viewport.last - first <= index + 1) {\n const pos = (viewport.first + 1) * <number>this.itemSize();\n this.horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);\n }\n }\n }\n } else {\n this.scrollToIndex(index, behavior);\n }\n }\n\n getRenderedRange() {\n const calculateFirstInViewport = (_pos: number, _size: number) => (_size || _pos ? Math.floor(_pos / (_size || _pos)) : 0);\n\n let firstInViewport = this.first;\n let lastInViewport: any = 0;\n\n const elementViewChild = this.elementViewChild();\n if (elementViewChild?.nativeElement) {\n const { scrollTop, scrollLeft } = elementViewChild.nativeElement;\n\n if (this.both) {\n firstInViewport = {\n rows: calculateFirstInViewport(scrollTop, (<number[]>this.itemSize())[0]),\n cols: calculateFirstInViewport(scrollLeft, (<number[]>this.itemSize())[1])\n };\n lastInViewport = {\n rows: firstInViewport.rows + this.numItemsInViewport.rows,\n cols: firstInViewport.cols + this.numItemsInViewport.cols\n };\n } else {\n const scrollPos = this.horizontal ? scrollLeft : scrollTop;\n firstInViewport = calculateFirstInViewport(scrollPos, <number>this.itemSize());\n lastInViewport = firstInViewport + this.numItemsInViewport;\n }\n }\n\n return {\n first: this.first,\n last: this.last,\n viewport: {\n first: firstInViewport,\n last: lastInViewport\n }\n };\n }\n\n calculateNumItems() {\n const contentPos = this.getContentPosition();\n const elementViewChild = this.elementViewChild();\n const contentWidth = (elementViewChild?.nativeElement ? elementViewChild.nativeElement.offsetWidth - contentPos.left : 0) || 0;\n const elementViewChildValue = this.elementViewChild();\n const contentHeight = (elementViewChildValue?.nativeElement ? elementViewChildValue.nativeElement.offsetHeight - contentPos.top : 0) || 0;\n const calculateNumItemsInViewport = (_contentSize: number, _itemSize: number) => (_itemSize || _contentSize ? Math.ceil(_contentSize / (_itemSize || _contentSize)) : 0);\n const calculateNumToleratedItems = (_numItems: number) => Math.ceil(_numItems / 2);\n const numItemsInViewport: any = this.both\n ? {\n rows: calculateNumItemsInViewport(contentHeight, (<number[]>this.itemSize())[0]),\n cols: calculateNumItemsInViewport(contentWidth, (<number[]>this.itemSize())[1])\n }\n : calculateNumItemsInViewport(this.horizontal ? contentWidth : contentHeight, <number>this.itemSize());\n\n const numToleratedItems = this.d_numToleratedItems || (this.both ? [calculateNumToleratedItems(numItemsInViewport.rows), calculateNumToleratedItems(numItemsInViewport.cols)] : calculateNumToleratedItems(numItemsInViewport));\n\n return { numItemsInViewport, numToleratedItems };\n }\n\n calculateOptions() {\n const { numItemsInViewport, numToleratedItems } = this.calculateNumItems();\n const calculateLast = (_first: number, _num: number, _numT: number, _isCols: boolean = false) => this.getLast(_first + _num + (_first < _numT ? 2 : 3) * _numT, _isCols);\n const first = this.first;\n const last = this.both\n ? {\n rows: calculateLast(this.first.rows, numItemsInViewport.rows, numToleratedItems[0]),\n cols: calculateLast(this.first.cols, numItemsInViewport.cols, numToleratedItems[1], true)\n }\n : calculateLast(this.first, numItemsInViewport, numToleratedItems);\n\n this.last = last;\n this.numItemsInViewport = numItemsInViewport;\n this.d_numToleratedItems = numToleratedItems;\n\n if (this.showLoader()) {\n this.loaderArr = this.both ? Array.from({ length: numItemsInViewport.rows }).map(() => Array.from({ length: numItemsInViewport.cols })) : Array.from({ length: numItemsInViewport });\n }\n\n if (this.lazy()) {\n Promise.resolve().then(() => {\n this.lazyLoadState = {\n first: this.step() ? (this.both ? { rows: 0, cols: first.cols } : 0) : first,\n last: Math.min(this.step() ? this.step() : this.last, (<any[]>this.items()).length)\n };\n\n this.handleEvents('onLazyLoad', this.lazyLoadState);\n });\n }\n }\n\n calculateAutoSize() {\n if (this.autoSize() && !this.d_loading) {\n Promise.resolve().then(() => {\n if (this.contentEl) {\n this.contentEl.style.minHeight = this.contentEl.style.minWidth = 'auto';\n this.contentEl.style.position = 'relative';\n (<ElementRef>this.elementViewChild()).nativeElement.style.contain = 'none';\n\n const [contentWidth, contentHeight] = [getWidth(this.contentEl), getHeight(this.contentEl)];\n contentWidth !== this.defaultContentWidth && ((<ElementRef>this.elementViewChild()).nativeElement.style.width = '');\n contentHeight !== this.defaultContentHeight && ((<ElementRef>this.elementViewChild()).nativeElement.style.height = '');\n\n const [width, height] = [getWidth((<ElementRef>this.elementViewChild()).nativeElement), getHeight((<ElementRef>this.elementViewChild()).nativeElement)];\n (this.both || this.horizontal) && ((<ElementRef>this.elementViewChild()).nativeElement.style.width = width < <number>this.defaultWidth ? width + 'px' : this.scrollWidth() || this.defaultWidth + 'px');\n (this.both || this.vertical) && ((<ElementRef>this.elementViewChild()).nativeElement.style.height = height < <number>this.defaultHeight ? height + 'px' : this.scrollHeight() || this.defaultHeight + 'px');\n\n this.contentEl.style.minHeight = this.contentEl.style.minWidth = '';\n this.contentEl.style.position = '';\n (<ElementRef>this.elementViewChild()).nativeElement.style.contain = '';\n }\n });\n }\n }\n\n getLast(last = 0, isCols = false) {\n const currentItems = this.items();\n return currentItems ? Math.min(isCols ? (this.columns() || currentItems[0]).length : currentItems.length, last) : 0;\n }\n\n getContentPosition() {\n if (this.contentEl) {\n const style = getComputedStyle(this.contentEl);\n const left = parseFloat(style.paddingLeft) + Math.max(parseFloat(style.left) || 0, 0);\n const right = parseFloat(style.paddingRight) + Math.max(parseFloat(style.right) || 0, 0);\n const top = parseFloat(style.paddingTop) + Math.max(parseFloat(style.top) || 0, 0);\n const bottom = parseFloat(style.paddingBottom) + Math.max(parseFloat(style.bottom) || 0, 0);\n\n return { left, right, top, bottom, x: left + right, y: top + bottom };\n }\n\n return { left: 0, right: 0, top: 0, bottom: 0, x: 0, y: 0 };\n }\n\n setSize() {\n const elementViewChild = this.elementViewChild();\n if (elementViewChild?.nativeElement) {\n const nativeElement = elementViewChild.nativeElement;\n const parentElement = nativeElement.parentElement?.parentElement;\n\n const elementWidth = nativeElement.offsetWidth;\n const parentWidth = parentElement?.offsetWidth || 0;\n const width = this.scrollWidth() || `${elementWidth || parentWidth}px`;\n\n const elementHeight = nativeElement.offsetHeight;\n const parentHeight = parentElement?.offsetHeight || 0;\n const height = this.scrollHeight() || `${elementHeight || parentHeight}px`;\n\n const setProp = (_name: string, _value: any) => (nativeElement.style[_name] = _value);\n\n if (this.both || this.horizontal) {\n setProp('height', height);\n setProp('width', width);\n } else {\n setProp('height', height);\n }\n }\n }\n\n setSpacerSize() {\n const currentItems = this.items();\n if (currentItems) {\n const contentPos = this.getContentPosition();\n const setProp = (_name: string, _value: any, _size: number, _cpos: number = 0) =>\n (this.spacerStyle = {\n ...this.spacerStyle,\n ...{ [`${_name}`]: (_value || []).length * _size + _cpos + 'px' }\n });\n\n if (this.both) {\n setProp('height', currentItems, (<number[]>this.itemSize())[0], contentPos.y);\n setProp('width', this.columns() || currentItems[1], (<number[]>this.itemSize())[1], contentPos.x);\n } else {\n this.horizontal ? setProp('width', this.columns() || currentItems, <number>this.itemSize(), contentPos.x) : setProp('height', currentItems, <number>this.itemSize(), contentPos.y);\n }\n }\n }\n\n setContentPosition(pos: any) {\n if (this.contentEl && !this.appendOnly()) {\n const first = pos ? pos.first : this.first;\n const calculateTranslateVal = (_first: number, _size: number) => _first * _size;\n const setTransform = (_x = 0, _y = 0) => (this.contentStyle = { ...this.contentStyle, ...{ transform: `translate3d(${_x}px, ${_y}px, 0)` } });\n\n if (this.both) {\n setTransform(calculateTranslateVal(first.cols, (<number[]>this.itemSize())[1]), calculateTranslateVal(first.rows, (<number[]>this.itemSize())[0]));\n } else {\n const translateVal = calculateTranslateVal(first, <number>this.itemSize());\n this.horizontal ? setTransform(translateVal, 0) : setTransform(0, translateVal);\n }\n }\n }\n\n onScrollPositionChange(event: Event) {\n const target = event.target;\n if (!target) {\n throw new Error('Event target is null');\n }\n const contentPos = this.getContentPosition();\n const calculateScrollPos = (_pos: number, _cpos: number) => (_pos ? (_pos > _cpos ? _pos - _cpos : _pos) : 0);\n const calculateCurrentIndex = (_pos: number, _size: number) => (_size || _pos ? Math.floor(_pos / (_size || _pos)) : 0);\n const calculateTriggerIndex = (_currentIndex: number, _first: number, _last: number, _num: number, _numT: number, _isScrollDownOrRight: any) => {\n return _currentIndex <= _numT ? _numT : _isScrollDownOrRight ? _last - _num - _numT : _first + _numT - 1;\n };\n const calculateFirst = (_currentIndex: number, _triggerIndex: number, _first: number, _last: number, _num: number, _numT: number, _isScrollDownOrRight: any) => {\n if (_currentIndex <= _numT) return 0;\n else return Math.max(0, _isScrollDownOrRight ? (_currentIndex < _triggerIndex ? _first : _currentIndex - _numT) : _currentIndex > _triggerIndex ? _first : _currentIndex - 2 * _numT);\n };\n const calculateLast = (_currentIndex: number, _first: number, _last: number, _num: number, _numT: number, _isCols = false) => {\n let lastValue = _first + _num + 2 * _numT;\n\n if (_currentIndex >= _numT) {\n lastValue += _numT + 1;\n }\n\n return this.getLast(lastValue, _isCols);\n };\n\n const scrollTop = calculateScrollPos((<HTMLElement>target).scrollTop, contentPos.top);\n const scrollLeft = calculateScrollPos((<HTMLElement>target).scrollLeft, contentPos.left);\n\n let newFirst = this.both ? { rows: 0, cols: 0 } : 0;\n let newLast = this.last;\n let isRangeChanged = false;\n let newScrollPos = this.lastScrollPos;\n\n if (this.both) {\n const isScrollDown = this.lastScrollPos.top <= scrollTop;\n const isScrollRight = this.lastScrollPos.left <= scrollLeft;\n\n if (!this.appendOnly() || (this.appendOnly() && (isScrollDown || isScrollRight))) {\n const currentIndex = {\n rows: calculateCurrentIndex(scrollTop, (<number[]>this.itemSize())[0]),\n cols: calculateCurrentIndex(scrollLeft, (<number[]>this.itemSize())[1])\n };\n const triggerIndex = {\n rows: calculateTriggerIndex(currentIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),\n cols: calculateTriggerIndex(currentIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)\n };\n\n newFirst = {\n rows: calculateFirst(currentIndex.rows, triggerIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),\n cols: calculateFirst(currentIndex.cols, triggerIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)\n };\n newLast = {\n rows: calculateLast(currentIndex.rows, newFirst.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0]),\n cols: calculateLast(currentIndex.cols, newFirst.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], true)\n };\n\n isRangeChanged = newFirst.rows !== this.first.rows || newLast.rows !== this.last.rows || newFirst.cols !== this.first.cols || newLast.cols !== this.last.cols || this.isRangeChanged;\n newScrollPos = { top: scrollTop, left: scrollLeft };\n }\n } else {\n const scrollPos = this.horizontal ? scrollLeft : scrollTop;\n const isScrollDownOrRight = this.lastScrollPos <= scrollPos;\n\n if (!this.appendOnly() || (this.appendOnly() && isScrollDownOrRight)) {\n const currentIndex = calculateCurrentIndex(scrollPos, <number>this.itemSize());\n const triggerIndex = calculateTriggerIndex(currentIndex, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);\n\n newFirst = calculateFirst(currentIndex, triggerIndex, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);\n newLast = calculateLast(currentIndex, newFirst, this.last, this.numItemsInViewport, this.d_numToleratedItems);\n isRangeChanged = newFirst !== this.first || newLast !== this.last || this.isRangeChanged;\n newScrollPos = scrollPos;\n }\n }\n\n return {\n first: newFirst,\n last: newLast,\n isRangeChanged,\n scrollPos: newScrollPos\n };\n }\n\n onScrollChange(event: Event) {\n const { first, last, isRangeChanged, scrollPos } = this.onScrollPositionChange(event);\n\n if (isRangeChanged) {\n const newState = { first, last };\n\n this.setContentPosition(newState);\n\n this.first = first;\n this.last = last;\n this.lastScrollPos = scrollPos;\n\n this.handleEvents('onScrollIndexChange', newState);\n\n if (this.lazy() && this.isPageChanged(first)) {\n const lazyLoadState = {\n first: this.step() ? Math.min(this.getPageByFirst(first) * this.step(), (<any[]>this.items()).length - this.step()) : first,\n last: Math.min(this.step() ? (this.getPageByFirst(first) + 1) * this.step() : last, (<any[]>this.items()).length)\n };\n const isLazyStateChanged = this.lazyLoadState.first !== lazyLoadState.first || this.lazyLoadState.last !== lazyLoadState.last;\n\n isLazyStateChanged && this.handleEvents('onLazyLoad', lazyLoadState);\n this.lazyLoadState = lazyLoadState;\n }\n }\n }\n\n onContainerScroll(event: Event) {\n this.handleEvents('onScroll', { originalEvent: event });\n\n if (this.delay()) {\n if (this.scrollTimeout) {\n clearTimeout(this.scrollTimeout);\n }\n\n if (!this.d_loading && this.showLoader()) {\n const { isRangeChanged } = this.onScrollPositionChange(event);\n const changed = isRangeChanged || (this.step() ? this.isPageChanged() : false);\n\n if (changed) {\n this.d_loading = true;\n\n this.cd.detectChanges();\n }\n }\n\n this.scrollTimeout = setTimeout(() => {\n this.onScrollChange(event);\n\n if (this.d_loading && this.showLoader() && (!this.lazy() || this.loading() === undefined)) {\n this.d_loading = false;\n this.page = this.getPageByFirst();\n }\n this.cd.detectChanges();\n }, this.delay());\n } else {\n !this.d_loading && this.onScrollChange(event);\n }\n }\n\n bindResizeListener() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.windowResizeListener) {\n this.zone.runOutsideAngular(() => {\n const window = this.document.defaultView as Window;\n const event = isTouchDevice() ? 'orientationchange' : 'resize';\n this.windowResizeListener = this.renderer.listen(window, event, this.onWindowResize.bind(this));\n });\n }\n }\n }\n\n unbindResizeListener() {\n if (this.windowResizeListener) {\n this.windowResizeListener();\n this.windowResizeListener = null;\n }\n }\n\n onWindowResize() {\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n }\n\n this.resizeTimeout = setTimeout(() => {\n const elementViewChild = this.elementViewChild();\n if (isVisible(elementViewChild?.nativeElement)) {\n const [width, height] = [getWidth(elementViewChild?.nativeElement), getHeight(elementViewChild?.nativeElement)];\n const [isDiffWidth, isDiffHeight] = [width !== this.defaultWidth, height !== this.defaultHeight];\n const reinit = this.both ? isDiffWidth || isDiffHeight : this.horizontal ? isDiffWidth : this.vertical ? isDiffHeight : false;\n\n reinit &&\n this.zone.run(() => {\n this.d_numToleratedItems = this.numToleratedItems();\n this.defaultWidth = width;\n this.defaultHeight = height;\n this.defaultContentWidth = getWidth(this.contentEl);\n this.defaultContentHeight = getHeight(this.contentEl);\n\n this.init();\n });\n }\n }, this.resizeDelay());\n }\n\n handleEvents(name: string, params: any) {\n //@ts-ignore\n return this.options() && (<any>this.options())[name] ? (<any>this.options())[name](params) : this[name].emit(params);\n }\n\n getContentOptions() {\n return {\n contentStyleClass: `h-virtualscroller-content ${this.d_loading ? 'h-virtualscroller-loading' : ''}`,\n items: this.loadedItems,\n getItemOptions: (index: number) => this.getOptions(index),\n loading: this.d_loading,\n getLoaderOptions: (index: number, options?: any) => this.getLoaderOptions(index, options),\n itemSize: this.itemSize(),\n rows: this.loadedRows,\n columns: this.loadedColumns,\n spacerStyle: this.spacerStyle,\n contentStyle: this.contentStyle,\n vertical: this.vertical,\n horizontal: this.horizontal,\n both: this.both,\n scrollTo: this.scrollTo.bind(this),\n scrollToIndex: this.scrollToIndex.bind(this),\n orientation: this.orientation(),\n scrollableElement: this.elementViewChild()?.nativeElement\n };\n }\n\n getOptions(renderedIndex: number) {\n const count = (this.items() || []).length;\n const index = this.both ? this.first.rows + renderedIndex : this.first + renderedIndex;\n\n return {\n index,\n count,\n first: index === 0,\n last: index === count - 1,\n even: index % 2 === 0,\n odd: index % 2 !== 0\n };\n }\n\n getLoaderOptions(index: number, extOptions: any) {\n const count = this.loaderArr.length;\n\n return {\n index,\n count,\n first: index === 0,\n last: index === count - 1,\n even: index % 2 === 0,\n odd: index % 2 !== 0,\n loading: this.d_loading,\n ...extOptions\n };\n }\n}\n\n@NgModule({\n imports: [Scroller, SharedModule],\n exports: [Scroller, SharedModule]\n})\nexport class ScrollerModule {}\n","@if (!disabled()) {\n <div #element [attr.id]=\"id()\" [attr.tabindex]=\"tabindex()\" [ngStyle]=\"style()\" [class]=\"cn(cx('root'), styleClass())\" (scroll)=\"onContainerScroll($event)\" [hBind]=\"ptm('root')\">\n @if (contentTemplate() || _contentTemplate) {\n <ng-container *ngTemplateOutlet=\"contentTemplate() || _contentTemplate; context: { $implicit: loadedItems, options: getContentOptions() }\"></ng-container>\n } @else {\n <div #content [class]=\"cn(cx('content'), contentStyleClass)\" [style]=\"contentStyle\" [hBind]=\"ptm('content')\">\n @for (item of loadedItems; track trackBy()(index, item); let index = $index) {\n <ng-container *ngTemplateOutlet=\"itemTemplate() || _itemTemplate; context: { $implicit: item, options: getOptions(index) }\"></ng-container>\n }\n </div>\n }\n @if (showSpacer()) {\n <div [class]=\"cx('spacer')\" [ngStyle]=\"spacerStyle\" [hBind]=\"ptm('spacer')\"></div>\n }\n @if (!loaderDisabled() && showLoader() && d_loading) {\n <div [class]=\"cx('loader')\" [hBind]=\"ptm('loader')\">\n @if (loaderTemplate() || _loaderTemplate) {\n @for (item of loaderArr; track item; let index = $index) {\n <ng-container\n *ngTemplateOutlet=\"\n loaderTemplate() || _loaderTemplate;\n context: {\n options: getLoaderOptions(index, both && { numCols: numItemsInViewport.cols })\n }\n \"\n ></ng-container>\n }\n } @else {\n @if (loaderIconTemplate() || _loaderIconTemplate) {\n <ng-container *ngTemplateOutlet=\"loaderIconTemplate() || _loaderIconTemplate; context: { options: { styleClass: 'h-virtualscroller-loading-icon' } }\"></ng-container>\n } @else {\n <svg data-h-icon=\"spinner\" [class]=\"cx('loadingIcon')\" [spin]=\"true\" [hBind]=\"ptm('loadingIcon')\" />\n }\n }\n </div>\n }\n</div>\n} @else {\n <ng-content></ng-content>\n @if (contentTemplate() || _contentTemplate) {\n <ng-container *ngTemplateOutlet=\"contentTemplate() || _contentTemplate; context: { $implicit: items(), options: { rows: items(), columns: loadedColumns } }\"></ng-container>\n }\n}\n"],"mappings":"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"}
|