@gravionlabs/helix-core 22.1.2 → 22.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/gravionlabs-helix-core-accordion.mjs +994 -541
- package/fesm2022/gravionlabs-helix-core-accordion.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-animateonscroll.mjs +265 -166
- package/fesm2022/gravionlabs-helix-core-animateonscroll.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-api.mjs +926 -836
- package/fesm2022/gravionlabs-helix-core-api.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-autocomplete.mjs +2603 -1611
- package/fesm2022/gravionlabs-helix-core-autocomplete.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-autofocus.mjs +115 -79
- package/fesm2022/gravionlabs-helix-core-autofocus.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-avatar.mjs +356 -180
- package/fesm2022/gravionlabs-helix-core-avatar.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-avatargroup.mjs +200 -84
- package/fesm2022/gravionlabs-helix-core-avatargroup.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-badge.mjs +671 -390
- package/fesm2022/gravionlabs-helix-core-badge.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-base.mjs +113 -103
- package/fesm2022/gravionlabs-helix-core-base.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-basecomponent.mjs +498 -444
- package/fesm2022/gravionlabs-helix-core-basecomponent.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-baseeditableholder.mjs +131 -69
- package/fesm2022/gravionlabs-helix-core-baseeditableholder.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-baseinput.mjs +210 -94
- package/fesm2022/gravionlabs-helix-core-baseinput.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-basemodelholder.mjs +39 -26
- package/fesm2022/gravionlabs-helix-core-basemodelholder.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-bind.mjs +136 -98
- package/fesm2022/gravionlabs-helix-core-bind.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-blockui.mjs +390 -224
- package/fesm2022/gravionlabs-helix-core-blockui.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-breadcrumb.mjs +473 -212
- package/fesm2022/gravionlabs-helix-core-breadcrumb.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-button.mjs +1739 -825
- package/fesm2022/gravionlabs-helix-core-button.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-buttongroup.mjs +116 -64
- package/fesm2022/gravionlabs-helix-core-buttongroup.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-card.mjs +454 -205
- package/fesm2022/gravionlabs-helix-core-card.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-carousel.mjs +1238 -898
- package/fesm2022/gravionlabs-helix-core-carousel.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-cascadeselect.mjs +2373 -1337
- package/fesm2022/gravionlabs-helix-core-cascadeselect.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-chart.mjs +407 -214
- package/fesm2022/gravionlabs-helix-core-chart.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-checkbox.mjs +704 -346
- package/fesm2022/gravionlabs-helix-core-checkbox.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-chip.mjs +489 -251
- package/fesm2022/gravionlabs-helix-core-chip.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-classnames.mjs +95 -48
- package/fesm2022/gravionlabs-helix-core-classnames.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-colorpicker.mjs +975 -667
- package/fesm2022/gravionlabs-helix-core-colorpicker.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-config.mjs +395 -306
- package/fesm2022/gravionlabs-helix-core-config.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-confirmdialog.mjs +1222 -546
- package/fesm2022/gravionlabs-helix-core-confirmdialog.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-confirmpopup.mjs +878 -524
- package/fesm2022/gravionlabs-helix-core-confirmpopup.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-contextmenu.mjs +1917 -1031
- package/fesm2022/gravionlabs-helix-core-contextmenu.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-dataview.mjs +1075 -522
- package/fesm2022/gravionlabs-helix-core-dataview.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-datepicker.mjs +3797 -3313
- package/fesm2022/gravionlabs-helix-core-datepicker.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-dialog.mjs +1852 -1047
- package/fesm2022/gravionlabs-helix-core-dialog.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-divider.mjs +288 -136
- package/fesm2022/gravionlabs-helix-core-divider.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-dock.mjs +655 -387
- package/fesm2022/gravionlabs-helix-core-dock.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-dom.mjs +589 -760
- package/fesm2022/gravionlabs-helix-core-dom.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-dragdrop.mjs +457 -302
- package/fesm2022/gravionlabs-helix-core-dragdrop.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-drawer.mjs +986 -507
- package/fesm2022/gravionlabs-helix-core-drawer.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-dynamicdialog.mjs +849 -923
- package/fesm2022/gravionlabs-helix-core-dynamicdialog.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-editor.mjs +578 -383
- package/fesm2022/gravionlabs-helix-core-editor.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-fieldset.mjs +593 -280
- package/fesm2022/gravionlabs-helix-core-fieldset.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-fileupload.mjs +1882 -994
- package/fesm2022/gravionlabs-helix-core-fileupload.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-firsterror.mjs +41 -23
- package/fesm2022/gravionlabs-helix-core-firsterror.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-floatlabel.mjs +197 -94
- package/fesm2022/gravionlabs-helix-core-floatlabel.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-fluid.mjs +149 -74
- package/fesm2022/gravionlabs-helix-core-fluid.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-focustrap.mjs +141 -104
- package/fesm2022/gravionlabs-helix-core-focustrap.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-galleria.mjs +2800 -1449
- package/fesm2022/gravionlabs-helix-core-galleria.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-iconfield.mjs +214 -98
- package/fesm2022/gravionlabs-helix-core-iconfield.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-angledoubledown.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-angledoubledown.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-angledoubleleft.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-angledoubleleft.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-angledoubleright.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-angledoubleright.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-angledoubleup.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-angledoubleup.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-angledown.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-angledown.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-angleleft.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-angleleft.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-angleright.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-angleright.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-angleup.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-angleup.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-arrowdown.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-arrowdown.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-arrowdownleft.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-arrowdownleft.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-arrowdownright.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-arrowdownright.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-arrowleft.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-arrowleft.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-arrowright.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-arrowright.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-arrowup.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-arrowup.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-ban.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-ban.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-bars.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-bars.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-baseicon.mjs +120 -64
- package/fesm2022/gravionlabs-helix-core-icons-baseicon.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-blank.mjs +42 -23
- package/fesm2022/gravionlabs-helix-core-icons-blank.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-calendar.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-calendar.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-caretleft.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-caretleft.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-caretright.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-caretright.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-check.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-check.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-chevrondown.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-chevrondown.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-chevronleft.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-chevronleft.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-chevronright.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-chevronright.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-chevronup.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-chevronup.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-exclamationtriangle.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-exclamationtriangle.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-eye.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-eye.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-eyeslash.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-eyeslash.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-filter.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-filter.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-filterfill.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-filterfill.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-filterslash.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-filterslash.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-home.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-home.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-infocircle.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-infocircle.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-minus.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-minus.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-pencil.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-pencil.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-plus.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-plus.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-refresh.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-refresh.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-search.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-search.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-searchminus.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-searchminus.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-searchplus.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-searchplus.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-sortalt.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-sortalt.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-sortamountdown.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-sortamountdown.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-sortamountupalt.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-sortamountupalt.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-spinner.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-spinner.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-star.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-star.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-starfill.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-starfill.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-thlarge.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-thlarge.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-times.mjs +43 -24
- package/fesm2022/gravionlabs-helix-core-icons-times.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-timescircle.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-timescircle.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-trash.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-trash.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-undo.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-undo.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-upload.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-upload.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-windowmaximize.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-windowmaximize.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons-windowminimize.mjs +48 -29
- package/fesm2022/gravionlabs-helix-core-icons-windowminimize.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-icons.mjs +53 -63
- package/fesm2022/gravionlabs-helix-core-iftalabel.mjs +175 -81
- package/fesm2022/gravionlabs-helix-core-iftalabel.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-image.mjs +1089 -552
- package/fesm2022/gravionlabs-helix-core-image.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-imagecompare.mjs +348 -165
- package/fesm2022/gravionlabs-helix-core-imagecompare.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-inplace.mjs +591 -249
- package/fesm2022/gravionlabs-helix-core-inplace.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-inputgroup.mjs +175 -91
- package/fesm2022/gravionlabs-helix-core-inputgroup.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-inputgroupaddon.mjs +196 -73
- package/fesm2022/gravionlabs-helix-core-inputgroupaddon.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-inputicon.mjs +207 -70
- package/fesm2022/gravionlabs-helix-core-inputicon.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-inputmask.mjs +1581 -1330
- package/fesm2022/gravionlabs-helix-core-inputmask.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-inputnumber.mjs +1696 -1294
- package/fesm2022/gravionlabs-helix-core-inputnumber.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-inputotp.mjs +576 -363
- package/fesm2022/gravionlabs-helix-core-inputotp.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-inputtext.mjs +344 -183
- package/fesm2022/gravionlabs-helix-core-inputtext.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-keyfilter.mjs +291 -252
- package/fesm2022/gravionlabs-helix-core-keyfilter.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-knob.mjs +642 -396
- package/fesm2022/gravionlabs-helix-core-knob.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-listbox.mjs +2354 -1401
- package/fesm2022/gravionlabs-helix-core-listbox.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-megamenu.mjs +1913 -1052
- package/fesm2022/gravionlabs-helix-core-megamenu.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-menu.mjs +1392 -767
- package/fesm2022/gravionlabs-helix-core-menu.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-menubar.mjs +1857 -984
- package/fesm2022/gravionlabs-helix-core-menubar.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-message.mjs +605 -288
- package/fesm2022/gravionlabs-helix-core-message.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-metergroup.mjs +719 -323
- package/fesm2022/gravionlabs-helix-core-metergroup.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-motion.mjs +1178 -694
- package/fesm2022/gravionlabs-helix-core-motion.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-multiselect.mjs +3437 -1839
- package/fesm2022/gravionlabs-helix-core-multiselect.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-orderlist.mjs +1426 -753
- package/fesm2022/gravionlabs-helix-core-orderlist.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-organizationchart.mjs +755 -371
- package/fesm2022/gravionlabs-helix-core-organizationchart.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-overlay.mjs +984 -600
- package/fesm2022/gravionlabs-helix-core-overlay.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-overlaybadge.mjs +310 -107
- package/fesm2022/gravionlabs-helix-core-overlaybadge.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-paginator.mjs +1076 -564
- package/fesm2022/gravionlabs-helix-core-paginator.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-panel.mjs +759 -364
- package/fesm2022/gravionlabs-helix-core-panel.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-panelmenu.mjs +1909 -888
- package/fesm2022/gravionlabs-helix-core-panelmenu.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-passthrough.mjs +10 -18
- package/fesm2022/gravionlabs-helix-core-passthrough.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-password.mjs +1624 -894
- package/fesm2022/gravionlabs-helix-core-password.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-picklist.mjs +2415 -1359
- package/fesm2022/gravionlabs-helix-core-picklist.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-popover.mjs +708 -442
- package/fesm2022/gravionlabs-helix-core-popover.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-progressbar.mjs +380 -170
- package/fesm2022/gravionlabs-helix-core-progressbar.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-progressspinner.mjs +276 -121
- package/fesm2022/gravionlabs-helix-core-progressspinner.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-radiobutton.mjs +525 -291
- package/fesm2022/gravionlabs-helix-core-radiobutton.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-rating.mjs +529 -286
- package/fesm2022/gravionlabs-helix-core-rating.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-ripple.mjs +194 -175
- package/fesm2022/gravionlabs-helix-core-ripple.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-scroller.mjs +1384 -977
- package/fesm2022/gravionlabs-helix-core-scroller.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-scrollpanel.mjs +605 -458
- package/fesm2022/gravionlabs-helix-core-scrollpanel.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-scrolltop.mjs +565 -261
- package/fesm2022/gravionlabs-helix-core-scrolltop.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-select.mjs +2959 -1644
- package/fesm2022/gravionlabs-helix-core-select.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-selectbutton.mjs +644 -335
- package/fesm2022/gravionlabs-helix-core-selectbutton.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-skeleton.mjs +315 -160
- package/fesm2022/gravionlabs-helix-core-skeleton.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-slider.mjs +839 -630
- package/fesm2022/gravionlabs-helix-core-slider.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-speeddial.mjs +1183 -700
- package/fesm2022/gravionlabs-helix-core-speeddial.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-splitbutton.mjs +977 -375
- package/fesm2022/gravionlabs-helix-core-splitbutton.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-splitter.mjs +737 -509
- package/fesm2022/gravionlabs-helix-core-splitter.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-stepper.mjs +1397 -628
- package/fesm2022/gravionlabs-helix-core-stepper.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-steps.mjs +457 -272
- package/fesm2022/gravionlabs-helix-core-steps.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-styleclass.mjs +466 -344
- package/fesm2022/gravionlabs-helix-core-styleclass.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-table.mjs +9728 -5590
- package/fesm2022/gravionlabs-helix-core-table.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-tabs.mjs +1350 -735
- package/fesm2022/gravionlabs-helix-core-tabs.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-tag.mjs +343 -154
- package/fesm2022/gravionlabs-helix-core-tag.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-terminal.mjs +384 -214
- package/fesm2022/gravionlabs-helix-core-terminal.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-textarea.mjs +347 -209
- package/fesm2022/gravionlabs-helix-core-textarea.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-themes-aura.mjs +4846 -5618
- package/fesm2022/gravionlabs-helix-core-themes-aura.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-themes-lara.mjs +4961 -5809
- package/fesm2022/gravionlabs-helix-core-themes-lara.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-themes-nora.mjs +4780 -5567
- package/fesm2022/gravionlabs-helix-core-themes-nora.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-themes-types.mjs +0 -700
- package/fesm2022/gravionlabs-helix-core-themes.mjs +4 -9
- package/fesm2022/gravionlabs-helix-core-themes.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-tieredmenu.mjs +1967 -1048
- package/fesm2022/gravionlabs-helix-core-tieredmenu.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-timeline.mjs +370 -185
- package/fesm2022/gravionlabs-helix-core-timeline.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-toast.mjs +1083 -526
- package/fesm2022/gravionlabs-helix-core-toast.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-togglebutton.mjs +609 -315
- package/fesm2022/gravionlabs-helix-core-togglebutton.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-toggleswitch.mjs +504 -246
- package/fesm2022/gravionlabs-helix-core-toggleswitch.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-toolbar.mjs +350 -149
- package/fesm2022/gravionlabs-helix-core-toolbar.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-tooltip.mjs +1035 -795
- package/fesm2022/gravionlabs-helix-core-tooltip.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-tree.mjs +2673 -1668
- package/fesm2022/gravionlabs-helix-core-tree.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-treeselect.mjs +1773 -976
- package/fesm2022/gravionlabs-helix-core-treeselect.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-treetable.mjs +5963 -3647
- package/fesm2022/gravionlabs-helix-core-treetable.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-ts-helpers.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-accordion.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-autocomplete.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-avatar.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-avatargroup.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-badge.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-blockui.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-breadcrumb.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-button.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-card.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-carousel.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-cascadeselect.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-chart.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-checkbox.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-chip.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-colorpicker.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-confirmdialog.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-confirmpopup.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-contextmenu.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-dataview.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-datepicker.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-dialog.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-divider.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-dock.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-drawer.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-editor.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-fieldset.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-fileupload.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-floatlabel.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-fluid.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-galleria.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-iconfield.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-iftalabel.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-image.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-imagecompare.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-inplace.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-inputgroup.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-inputgroupaddon.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-inputicon.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-inputmask.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-inputnumber.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-inputotp.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-inputtext.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-knob.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-listbox.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-megamenu.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-menu.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-menubar.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-message.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-metergroup.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-motion.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-multiselect.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-orderlist.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-organizationchart.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-overlay.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-overlaybadge.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-paginator.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-panel.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-panelmenu.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-password.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-picklist.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-popover.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-progressbar.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-progressspinner.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-radiobutton.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-rating.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-scroller.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-scrollpanel.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-scrolltop.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-select.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-selectbutton.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-skeleton.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-slider.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-speeddial.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-splitbutton.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-splitter.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-stepper.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-table.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-tabs.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-tag.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-terminal.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-textarea.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-tieredmenu.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-timeline.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-toast.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-togglebutton.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-toggleswitch.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-toolbar.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-tooltip.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-tree.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-treeselect.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-types-treetable.mjs +0 -4
- package/fesm2022/gravionlabs-helix-core-uix-motion.mjs +192 -282
- package/fesm2022/gravionlabs-helix-core-uix-motion.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-uix-styled.mjs +827 -813
- package/fesm2022/gravionlabs-helix-core-uix-styled.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-uix-utils.mjs +967 -1558
- package/fesm2022/gravionlabs-helix-core-uix-utils.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-usestyle.mjs +62 -52
- package/fesm2022/gravionlabs-helix-core-usestyle.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-utils.mjs +272 -366
- package/fesm2022/gravionlabs-helix-core-utils.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core-validators.mjs +86 -93
- package/fesm2022/gravionlabs-helix-core-validators.mjs.map +1 -1
- package/fesm2022/gravionlabs-helix-core.mjs +1 -5
- package/fesm2022/gravionlabs-helix-core.mjs.map +1 -1
- package/package.json +1 -1
- package/types/gravionlabs-helix-core-accordion.d.ts +317 -246
- package/types/gravionlabs-helix-core-animateonscroll.d.ts +89 -61
- package/types/gravionlabs-helix-core-api.d.ts +1743 -1777
- package/types/gravionlabs-helix-core-autocomplete.d.ts +1070 -750
- package/types/gravionlabs-helix-core-autofocus.d.ts +29 -26
- package/types/gravionlabs-helix-core-avatar.d.ts +165 -123
- package/types/gravionlabs-helix-core-avatargroup.d.ts +58 -48
- package/types/gravionlabs-helix-core-badge.d.ts +243 -162
- package/types/gravionlabs-helix-core-base.d.ts +46 -49
- package/types/gravionlabs-helix-core-basecomponent.d.ts +187 -170
- package/types/gravionlabs-helix-core-baseeditableholder.d.ts +63 -45
- package/types/gravionlabs-helix-core-baseinput.d.ts +121 -73
- package/types/gravionlabs-helix-core-basemodelholder.d.ts +9 -12
- package/types/gravionlabs-helix-core-bind.d.ts +36 -33
- package/types/gravionlabs-helix-core-blockui.d.ts +114 -90
- package/types/gravionlabs-helix-core-breadcrumb.d.ts +158 -132
- package/types/gravionlabs-helix-core-button.d.ts +716 -443
- package/types/gravionlabs-helix-core-buttongroup.d.ts +28 -33
- package/types/gravionlabs-helix-core-card.d.ts +156 -136
- package/types/gravionlabs-helix-core-carousel.d.ts +461 -361
- package/types/gravionlabs-helix-core-cascadeselect.d.ts +880 -604
- package/types/gravionlabs-helix-core-chart.d.ts +162 -115
- package/types/gravionlabs-helix-core-checkbox.d.ts +310 -211
- package/types/gravionlabs-helix-core-chip.d.ts +202 -147
- package/types/gravionlabs-helix-core-classnames.d.ts +23 -21
- package/types/gravionlabs-helix-core-colorpicker.d.ts +359 -290
- package/types/gravionlabs-helix-core-config.d.ts +249 -259
- package/types/gravionlabs-helix-core-confirmdialog.d.ts +498 -325
- package/types/gravionlabs-helix-core-confirmpopup.d.ts +273 -218
- package/types/gravionlabs-helix-core-contextmenu.d.ts +509 -351
- package/types/gravionlabs-helix-core-dataview.d.ts +507 -349
- package/types/gravionlabs-helix-core-datepicker.d.ts +1267 -954
- package/types/gravionlabs-helix-core-dialog.d.ts +758 -515
- package/types/gravionlabs-helix-core-divider.d.ts +126 -106
- package/types/gravionlabs-helix-core-dock.d.ts +219 -181
- package/types/gravionlabs-helix-core-dom.d.ts +97 -100
- package/types/gravionlabs-helix-core-dragdrop.d.ts +149 -107
- package/types/gravionlabs-helix-core-drawer.d.ts +382 -278
- package/types/gravionlabs-helix-core-dynamicdialog.d.ts +512 -519
- package/types/gravionlabs-helix-core-editor.d.ts +225 -173
- package/types/gravionlabs-helix-core-fieldset.d.ts +209 -170
- package/types/gravionlabs-helix-core-fileupload.d.ts +764 -533
- package/types/gravionlabs-helix-core-firsterror.d.ts +8 -11
- package/types/gravionlabs-helix-core-floatlabel.d.ts +57 -52
- package/types/gravionlabs-helix-core-fluid.d.ts +38 -39
- package/types/gravionlabs-helix-core-focustrap.d.ts +33 -30
- package/types/gravionlabs-helix-core-galleria.d.ts +957 -628
- package/types/gravionlabs-helix-core-iconfield.d.ts +72 -57
- package/types/gravionlabs-helix-core-icons-angledoubledown.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-angledoubleleft.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-angledoubleright.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-angledoubleup.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-angledown.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-angleleft.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-angleright.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-angleup.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-arrowdown.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-arrowdownleft.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-arrowdownright.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-arrowleft.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-arrowright.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-arrowup.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-ban.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-bars.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-baseicon.d.ts +25 -24
- package/types/gravionlabs-helix-core-icons-blank.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-calendar.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-caretleft.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-caretright.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-check.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-chevrondown.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-chevronleft.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-chevronright.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-chevronup.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-exclamationtriangle.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-eye.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-eyeslash.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-filter.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-filterfill.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-filterslash.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-home.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-infocircle.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-minus.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-pencil.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-plus.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-refresh.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-search.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-searchminus.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-searchplus.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-sortalt.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-sortamountdown.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-sortamountupalt.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-spinner.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-star.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-starfill.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-thlarge.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-times.d.ts +6 -9
- package/types/gravionlabs-helix-core-icons-timescircle.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-trash.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-undo.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-upload.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-windowmaximize.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons-windowminimize.d.ts +8 -11
- package/types/gravionlabs-helix-core-icons.d.ts +53 -53
- package/types/gravionlabs-helix-core-iftalabel.d.ts +42 -43
- package/types/gravionlabs-helix-core-image.d.ts +440 -331
- package/types/gravionlabs-helix-core-imagecompare.d.ts +99 -84
- package/types/gravionlabs-helix-core-inplace.d.ts +188 -149
- package/types/gravionlabs-helix-core-inputgroup.d.ts +55 -50
- package/types/gravionlabs-helix-core-inputgroupaddon.d.ts +54 -43
- package/types/gravionlabs-helix-core-inputicon.d.ts +49 -38
- package/types/gravionlabs-helix-core-inputmask.d.ts +499 -353
- package/types/gravionlabs-helix-core-inputnumber.d.ts +581 -410
- package/types/gravionlabs-helix-core-inputotp.d.ts +206 -158
- package/types/gravionlabs-helix-core-inputtext.d.ts +142 -102
- package/types/gravionlabs-helix-core-keyfilter.d.ts +62 -53
- package/types/gravionlabs-helix-core-knob.d.ts +265 -188
- package/types/gravionlabs-helix-core-listbox.d.ts +897 -638
- package/types/gravionlabs-helix-core-megamenu.d.ts +512 -365
- package/types/gravionlabs-helix-core-menu.d.ts +441 -343
- package/types/gravionlabs-helix-core-menubar.d.ts +499 -361
- package/types/gravionlabs-helix-core-message.d.ts +267 -195
- package/types/gravionlabs-helix-core-metergroup.d.ts +256 -190
- package/types/gravionlabs-helix-core-motion.d.ts +602 -385
- package/types/gravionlabs-helix-core-multiselect.d.ts +1256 -855
- package/types/gravionlabs-helix-core-orderlist.d.ts +504 -351
- package/types/gravionlabs-helix-core-organizationchart.d.ts +264 -203
- package/types/gravionlabs-helix-core-overlay.d.ts +417 -307
- package/types/gravionlabs-helix-core-overlaybadge.d.ts +107 -71
- package/types/gravionlabs-helix-core-paginator.d.ts +445 -336
- package/types/gravionlabs-helix-core-panel.d.ts +285 -225
- package/types/gravionlabs-helix-core-panelmenu.d.ts +499 -340
- package/types/gravionlabs-helix-core-passthrough.d.ts +5 -7
- package/types/gravionlabs-helix-core-password.d.ts +657 -463
- package/types/gravionlabs-helix-core-picklist.d.ts +938 -647
- package/types/gravionlabs-helix-core-popover.d.ts +259 -190
- package/types/gravionlabs-helix-core-progressbar.d.ts +141 -106
- package/types/gravionlabs-helix-core-progressspinner.d.ts +101 -76
- package/types/gravionlabs-helix-core-radiobutton.d.ts +228 -174
- package/types/gravionlabs-helix-core-rating.d.ts +217 -178
- package/types/gravionlabs-helix-core-ripple.d.ts +43 -48
- package/types/gravionlabs-helix-core-scroller.d.ts +505 -371
- package/types/gravionlabs-helix-core-scrollpanel.d.ts +151 -141
- package/types/gravionlabs-helix-core-scrolltop.d.ts +195 -140
- package/types/gravionlabs-helix-core-select.d.ts +1095 -749
- package/types/gravionlabs-helix-core-selectbutton.d.ts +238 -165
- package/types/gravionlabs-helix-core-skeleton.d.ts +123 -88
- package/types/gravionlabs-helix-core-slider.d.ts +259 -201
- package/types/gravionlabs-helix-core-speeddial.d.ts +511 -390
- package/types/gravionlabs-helix-core-splitbutton.d.ts +422 -267
- package/types/gravionlabs-helix-core-splitter.d.ts +246 -192
- package/types/gravionlabs-helix-core-stepper.d.ts +428 -269
- package/types/gravionlabs-helix-core-steps.d.ts +162 -134
- package/types/gravionlabs-helix-core-styleclass.d.ts +165 -107
- package/types/gravionlabs-helix-core-table.d.ts +2908 -1935
- package/types/gravionlabs-helix-core-tabs.d.ts +471 -311
- package/types/gravionlabs-helix-core-tag.d.ts +123 -98
- package/types/gravionlabs-helix-core-terminal.d.ts +142 -124
- package/types/gravionlabs-helix-core-textarea.d.ts +147 -110
- package/types/gravionlabs-helix-core-themes-aura.d.ts +957 -942
- package/types/gravionlabs-helix-core-themes-lara.d.ts +968 -953
- package/types/gravionlabs-helix-core-themes-nora.d.ts +954 -939
- package/types/gravionlabs-helix-core-themes-types.d.ts +17940 -18746
- package/types/gravionlabs-helix-core-themes.d.ts +8 -11
- package/types/gravionlabs-helix-core-tieredmenu.d.ts +583 -398
- package/types/gravionlabs-helix-core-timeline.d.ts +145 -125
- package/types/gravionlabs-helix-core-toast.d.ts +408 -275
- package/types/gravionlabs-helix-core-togglebutton.d.ts +264 -188
- package/types/gravionlabs-helix-core-toggleswitch.d.ts +202 -150
- package/types/gravionlabs-helix-core-toolbar.d.ts +100 -90
- package/types/gravionlabs-helix-core-tooltip.d.ts +362 -256
- package/types/gravionlabs-helix-core-tree.d.ts +902 -630
- package/types/gravionlabs-helix-core-treeselect.d.ts +770 -559
- package/types/gravionlabs-helix-core-treetable.d.ts +1715 -1205
- package/types/gravionlabs-helix-core-ts-helpers.d.ts +4 -6
- package/types/gravionlabs-helix-core-types-accordion.d.ts +42 -45
- package/types/gravionlabs-helix-core-types-autocomplete.d.ts +230 -233
- package/types/gravionlabs-helix-core-types-avatar.d.ts +23 -26
- package/types/gravionlabs-helix-core-types-avatargroup.d.ts +11 -14
- package/types/gravionlabs-helix-core-types-badge.d.ts +11 -14
- package/types/gravionlabs-helix-core-types-blockui.d.ts +18 -21
- package/types/gravionlabs-helix-core-types-breadcrumb.d.ts +65 -68
- package/types/gravionlabs-helix-core-types-button.d.ts +90 -93
- package/types/gravionlabs-helix-core-types-card.d.ts +54 -57
- package/types/gravionlabs-helix-core-types-carousel.d.ts +107 -110
- package/types/gravionlabs-helix-core-types-cascadeselect.d.ts +151 -157
- package/types/gravionlabs-helix-core-types-chart.d.ts +15 -18
- package/types/gravionlabs-helix-core-types-checkbox.d.ts +48 -51
- package/types/gravionlabs-helix-core-types-chip.d.ts +49 -52
- package/types/gravionlabs-helix-core-types-colorpicker.d.ts +58 -61
- package/types/gravionlabs-helix-core-types-confirmdialog.d.ts +116 -119
- package/types/gravionlabs-helix-core-types-confirmpopup.d.ts +74 -77
- package/types/gravionlabs-helix-core-types-contextmenu.d.ts +71 -74
- package/types/gravionlabs-helix-core-types-dataview.d.ts +178 -181
- package/types/gravionlabs-helix-core-types-datepicker.d.ts +436 -439
- package/types/gravionlabs-helix-core-types-dialog.d.ts +86 -89
- package/types/gravionlabs-helix-core-types-divider.d.ts +11 -14
- package/types/gravionlabs-helix-core-types-dock.d.ts +44 -47
- package/types/gravionlabs-helix-core-types-drawer.d.ts +61 -64
- package/types/gravionlabs-helix-core-types-editor.d.ts +143 -146
- package/types/gravionlabs-helix-core-types-fieldset.d.ts +69 -73
- package/types/gravionlabs-helix-core-types-fileupload.d.ts +260 -265
- package/types/gravionlabs-helix-core-types-floatlabel.d.ts +11 -14
- package/types/gravionlabs-helix-core-types-fluid.d.ts +11 -14
- package/types/gravionlabs-helix-core-types-galleria.d.ts +204 -207
- package/types/gravionlabs-helix-core-types-iconfield.d.ts +11 -14
- package/types/gravionlabs-helix-core-types-iftalabel.d.ts +11 -14
- package/types/gravionlabs-helix-core-types-image.d.ts +113 -116
- package/types/gravionlabs-helix-core-types-imagecompare.d.ts +22 -25
- package/types/gravionlabs-helix-core-types-inplace.d.ts +46 -49
- package/types/gravionlabs-helix-core-types-inputgroup.d.ts +11 -14
- package/types/gravionlabs-helix-core-types-inputgroupaddon.d.ts +11 -14
- package/types/gravionlabs-helix-core-types-inputicon.d.ts +11 -14
- package/types/gravionlabs-helix-core-types-inputmask.d.ts +30 -33
- package/types/gravionlabs-helix-core-types-inputnumber.d.ts +68 -71
- package/types/gravionlabs-helix-core-types-inputotp.d.ts +67 -70
- package/types/gravionlabs-helix-core-types-inputtext.d.ts +7 -10
- package/types/gravionlabs-helix-core-types-knob.d.ts +23 -26
- package/types/gravionlabs-helix-core-types-listbox.d.ts +262 -266
- package/types/gravionlabs-helix-core-types-megamenu.d.ts +112 -115
- package/types/gravionlabs-helix-core-types-menu.d.ts +83 -86
- package/types/gravionlabs-helix-core-types-menubar.d.ts +98 -101
- package/types/gravionlabs-helix-core-types-message.d.ts +61 -64
- package/types/gravionlabs-helix-core-types-metergroup.d.ts +135 -138
- package/types/gravionlabs-helix-core-types-motion.d.ts +11 -14
- package/types/gravionlabs-helix-core-types-multiselect.d.ts +302 -306
- package/types/gravionlabs-helix-core-types-orderlist.d.ts +125 -128
- package/types/gravionlabs-helix-core-types-organizationchart.d.ts +90 -96
- package/types/gravionlabs-helix-core-types-overlay.d.ts +31 -34
- package/types/gravionlabs-helix-core-types-overlaybadge.d.ts +17 -20
- package/types/gravionlabs-helix-core-types-paginator.d.ts +131 -134
- package/types/gravionlabs-helix-core-types-panel.d.ts +89 -93
- package/types/gravionlabs-helix-core-types-panelmenu.d.ts +105 -108
- package/types/gravionlabs-helix-core-types-password.d.ts +94 -97
- package/types/gravionlabs-helix-core-types-picklist.d.ts +240 -250
- package/types/gravionlabs-helix-core-types-popover.d.ts +33 -36
- package/types/gravionlabs-helix-core-types-progressbar.d.ts +32 -35
- package/types/gravionlabs-helix-core-types-progressspinner.d.ts +19 -22
- package/types/gravionlabs-helix-core-types-radiobutton.d.ts +29 -32
- package/types/gravionlabs-helix-core-types-rating.d.ts +62 -65
- package/types/gravionlabs-helix-core-types-scroller.d.ts +142 -146
- package/types/gravionlabs-helix-core-types-scrollpanel.d.ts +30 -33
- package/types/gravionlabs-helix-core-types-scrolltop.d.ts +35 -38
- package/types/gravionlabs-helix-core-types-select.d.ts +245 -248
- package/types/gravionlabs-helix-core-types-selectbutton.d.ts +56 -59
- package/types/gravionlabs-helix-core-types-skeleton.d.ts +11 -14
- package/types/gravionlabs-helix-core-types-slider.d.ts +50 -53
- package/types/gravionlabs-helix-core-types-speeddial.d.ts +69 -72
- package/types/gravionlabs-helix-core-types-splitbutton.d.ts +41 -44
- package/types/gravionlabs-helix-core-types-splitter.d.ts +36 -40
- package/types/gravionlabs-helix-core-types-stepper.d.ts +68 -71
- package/types/gravionlabs-helix-core-types-table.d.ts +721 -727
- package/types/gravionlabs-helix-core-types-tabs.d.ts +51 -54
- package/types/gravionlabs-helix-core-types-tag.d.ts +26 -29
- package/types/gravionlabs-helix-core-types-terminal.d.ts +43 -46
- package/types/gravionlabs-helix-core-types-textarea.d.ts +11 -14
- package/types/gravionlabs-helix-core-types-tieredmenu.d.ts +69 -72
- package/types/gravionlabs-helix-core-types-timeline.d.ts +58 -61
- package/types/gravionlabs-helix-core-types-toast.d.ts +86 -89
- package/types/gravionlabs-helix-core-types-togglebutton.d.ts +51 -54
- package/types/gravionlabs-helix-core-types-toggleswitch.d.ts +41 -44
- package/types/gravionlabs-helix-core-types-toolbar.d.ts +34 -37
- package/types/gravionlabs-helix-core-types-tooltip.d.ts +15 -18
- package/types/gravionlabs-helix-core-types-tree.d.ts +230 -239
- package/types/gravionlabs-helix-core-types-treeselect.d.ts +195 -199
- package/types/gravionlabs-helix-core-types-treetable.d.ts +486 -491
- package/types/gravionlabs-helix-core-uix-motion.d.ts +177 -190
- package/types/gravionlabs-helix-core-uix-styled.d.ts +254 -277
- package/types/gravionlabs-helix-core-uix-utils.d.ts +39 -176
- package/types/gravionlabs-helix-core-usestyle.d.ts +12 -15
- package/types/gravionlabs-helix-core-utils.d.ts +45 -50
- package/types/gravionlabs-helix-core-validators.d.ts +29 -34
- package/types/gravionlabs-helix-core.d.ts +2 -2
- package/fesm2022/gravionlabs-helix-core-icons.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-themes-types.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-ts-helpers.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-accordion.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-autocomplete.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-avatar.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-avatargroup.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-badge.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-blockui.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-breadcrumb.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-button.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-card.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-carousel.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-cascadeselect.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-chart.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-checkbox.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-chip.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-colorpicker.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-confirmdialog.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-confirmpopup.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-contextmenu.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-dataview.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-datepicker.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-dialog.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-divider.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-dock.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-drawer.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-editor.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-fieldset.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-fileupload.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-floatlabel.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-fluid.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-galleria.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-iconfield.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-iftalabel.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-image.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-imagecompare.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-inplace.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-inputgroup.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-inputgroupaddon.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-inputicon.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-inputmask.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-inputnumber.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-inputotp.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-inputtext.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-knob.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-listbox.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-megamenu.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-menu.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-menubar.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-message.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-metergroup.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-motion.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-multiselect.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-orderlist.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-organizationchart.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-overlay.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-overlaybadge.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-paginator.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-panel.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-panelmenu.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-password.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-picklist.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-popover.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-progressbar.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-progressspinner.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-radiobutton.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-rating.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-scroller.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-scrollpanel.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-scrolltop.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-select.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-selectbutton.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-skeleton.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-slider.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-speeddial.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-splitbutton.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-splitter.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-stepper.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-table.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-tabs.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-tag.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-terminal.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-textarea.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-tieredmenu.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-timeline.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-toast.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-togglebutton.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-toggleswitch.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-toolbar.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-tooltip.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-tree.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-treeselect.mjs.map +0 -1
- package/fesm2022/gravionlabs-helix-core-types-treetable.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gravionlabs-helix-core-tree.mjs","sources":["../../../projects/core/tree/style/tree.css.ts","../../../projects/core/tree/style/treestyle.ts","../../../projects/core/tree/tree.ts","../../../projects/core/tree/uitreenode.html","../../../projects/core/tree/tree.html","../../../projects/core/tree/gravionlabs-helix-core-tree.ts"],"sourcesContent":["export const style = /*css*/ `\n .h-tree {\n display: block;\n background: dt('tree.background');\n color: dt('tree.color');\n padding: dt('tree.padding');\n position: relative;\n }\n\n .h-tree-root-children,\n .h-tree-node-children {\n display: flex;\n list-style-type: none;\n flex-direction: column;\n margin: 0;\n gap: dt('tree.gap');\n }\n\n .h-tree-root-children {\n padding: 0;\n padding-block-start: dt('tree.gap');\n }\n\n .h-tree-node-children {\n padding: 0;\n padding-block-start: dt('tree.gap');\n padding-inline-start: dt('tree.indent');\n }\n\n .h-tree-node {\n padding: 0;\n outline: 0 none;\n }\n\n .h-tree-node-content {\n border-radius: dt('tree.node.border.radius');\n padding: dt('tree.node.padding');\n display: flex;\n align-items: center;\n outline-color: transparent;\n color: dt('tree.node.color');\n gap: dt('tree.node.gap');\n transition:\n background dt('tree.transition.duration'),\n color dt('tree.transition.duration'),\n outline-color dt('tree.transition.duration'),\n box-shadow dt('tree.transition.duration');\n }\n\n .h-tree-node-content[data-h-dragging] {\n outline: 1px dashed dt('primary.color');\n outline-offset: -1px;\n }\n\n .h-tree-node-content[data-pc-section=\"drag-image\"] {\n background: dt('tree.background');\n }\n\n .h-tree-node:focus-visible > .h-tree-node-content {\n box-shadow: dt('tree.node.focus.ring.shadow');\n outline: dt('tree.node.focus.ring.width') dt('tree.node.focus.ring.style') dt('tree.node.focus.ring.color');\n outline-offset: dt('tree.node.focus.ring.offset');\n }\n\n .h-tree-node-content.h-tree-node-selectable:not(.h-tree-node-selected):hover {\n background: dt('tree.node.hover.background');\n color: dt('tree.node.hover.color');\n }\n\n .h-tree-node-content.h-tree-node-selectable:not(.h-tree-node-selected):hover .h-tree-node-icon {\n color: dt('tree.node.icon.hover.color');\n }\n\n .h-tree-node-content.h-tree-node-selected {\n background: dt('tree.node.selected.background');\n color: dt('tree.node.selected.color');\n }\n\n .h-tree-node-content.h-tree-node-selected .h-tree-node-toggle-button {\n color: inherit;\n }\n\n .h-tree-node-content.h-tree-node-dragover {\n background: dt('tree.node.hover.background');\n color: dt('tree.node.hover.color');\n }\n\n .h-tree-node-content:focus-visible,\n .h-tree-node-content.h-tree-node-contextmenu-selected {\n box-shadow: dt('tree.node.focus.ring.shadow');\n outline: dt('tree.node.focus.ring.width') dt('tree.node.focus.ring.style') dt('tree.node.focus.ring.color');\n outline-offset: dt('tree.node.focus.ring.offset');\n }\n\n .h-tree-node-drop-point {\n\t\toutline: 1px solid dt('primary.color');\n\t}\n\n .h-tree-node-toggle-button {\n cursor: pointer;\n user-select: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n position: relative;\n flex-shrink: 0;\n width: dt('tree.node.toggle.button.size');\n height: dt('tree.node.toggle.button.size');\n color: dt('tree.node.toggle.button.color');\n border: 0 none;\n background: transparent;\n border-radius: dt('tree.node.toggle.button.border.radius');\n transition:\n background dt('tree.transition.duration'),\n color dt('tree.transition.duration'),\n border-color dt('tree.transition.duration'),\n outline-color dt('tree.transition.duration'),\n box-shadow dt('tree.transition.duration');\n outline-color: transparent;\n padding: 0;\n }\n\n .h-tree-node-toggle-button:enabled:hover {\n background: dt('tree.node.toggle.button.hover.background');\n color: dt('tree.node.toggle.button.hover.color');\n }\n\n .h-tree-node-content.h-tree-node-selected .h-tree-node-toggle-button:hover {\n background: dt('tree.node.toggle.button.selected.hover.background');\n color: dt('tree.node.toggle.button.selected.hover.color');\n }\n\n .h-tree-root {\n overflow: auto;\n }\n\n .h-tree-node-selectable {\n cursor: pointer;\n user-select: none;\n }\n\n .h-tree-node-leaf > .h-tree-node-content .h-tree-node-toggle-button {\n visibility: hidden;\n }\n\n .h-tree-node-icon {\n color: dt('tree.node.icon.color');\n transition: color dt('tree.transition.duration');\n }\n\n .h-tree-node-content.h-tree-node-selected .h-tree-node-icon {\n color: dt('tree.node.icon.selected.color');\n }\n\n .h-tree-filter {\n margin: dt('tree.filter.margin');\n }\n\n .h-tree-filter-input {\n width: 100%;\n }\n\n .h-tree-loading-icon {\n font-size: dt('tree.loading.icon.size');\n width: dt('tree.loading.icon.size');\n height: dt('tree.loading.icon.size');\n }\n\n .h-tree .h-tree-mask {\n position: absolute;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .h-tree-flex-scrollable {\n display: flex;\n flex: 1;\n height: 100%;\n flex-direction: column;\n }\n\n .h-tree-flex-scrollable .h-tree-root {\n flex: 1;\n }\n`;\n","import { Injectable } from '@angular/core';\nimport { style } from './tree.css';\nimport { BaseStyle } from '@gravionlabs/helix-core/base';\n\nconst classes = {\n root: ({ instance }) => [\n 'h-tree h-component',\n {\n 'h-tree-selectable': instance.selectionMode != null,\n 'h-tree-loading': instance.loading,\n 'h-tree-flex-scrollable': instance.scrollHeight === 'flex',\n 'h-tree-node-dragover': instance.dragHover\n }\n ],\n mask: 'h-tree-mask h-overlay-mask',\n loadingIcon: 'h-tree-loading-icon',\n pcFilterInput: 'h-tree-filter-input',\n wrapper: 'h-tree-root',\n rootChildren: 'h-tree-root-children',\n node: ({ instance }) => ({ 'h-tree-node': true, 'h-tree-node-leaf': instance.isLeaf() }),\n nodeContent: ({ instance }) => ({\n 'h-tree-node-content': true,\n 'h-tree-node-selectable': instance.selectable,\n 'h-tree-node-dragover': instance.isNodeDropActive(),\n 'h-tree-node-selected': instance.selectionMode === 'checkbox' && instance.tree.highlightOnSelect ? instance.checked : instance.selected,\n 'h-tree-node-contextmenu-selected': instance.isContextMenuSelected()\n }),\n nodeToggleButton: 'h-tree-node-toggle-button',\n nodeToggleIcon: 'h-tree-node-toggle-icon',\n nodeCheckbox: 'h-tree-node-checkbox',\n nodeIcon: 'h-tree-node-icon',\n nodeLabel: 'h-tree-node-label',\n nodeChildren: 'h-tree-node-children',\n emptyMessage: 'h-tree-empty-message',\n dropPoint: 'h-tree-node-drop-point'\n};\n\n@Injectable()\nexport class TreeStyle extends BaseStyle {\n name = 'tree';\n\n style = style;\n\n classes = classes;\n}\n\n/**\n *\n * Tree is used to display hierarchical data.\n *\n * [Live Demo](https://www.primeng.org/tree/)\n *\n * @module treestyle\n *\n */\nexport enum TreeClasses {\n /**\n * Class name of the root element\n */\n root = 'h-tree',\n /**\n * Class name of the mask element\n */\n mask = 'h-tree-mask',\n /**\n * Class name of the loading icon element\n */\n loadingIcon = 'h-tree-loading-icon',\n /**\n * Class name of the filter input element\n */\n pcFilterInput = 'h-tree-filter-input',\n /**\n * Class name of the wrapper element\n */\n wrapper = 'h-tree-root',\n /**\n * Class name of the root children element\n */\n rootChildren = 'h-tree-root-children',\n /**\n * Class name of the node element\n */\n node = 'h-tree-node',\n /**\n * Class name of the node content element\n */\n nodeContent = 'h-tree-node-content',\n /**\n * Class name of the node toggle button element\n */\n nodeToggleButton = 'h-tree-node-toggle-button',\n /**\n * Class name of the node toggle icon element\n */\n nodeToggleIcon = 'h-tree-node-toggle-icon',\n /**\n * Class name of the node checkbox element\n */\n nodeCheckbox = 'h-tree-node-checkbox',\n /**\n * Class name of the node icon element\n */\n nodeIcon = 'h-tree-node-icon',\n /**\n * Class name of the node label element\n */\n nodeLabel = 'h-tree-node-label',\n /**\n * Class name of the node children element\n */\n nodeChildren = 'h-tree-node-children',\n /**\n * Class name of the empty message element\n */\n emptyMessage = 'h-tree-empty-message',\n /**\n * Class name of the drop point element\n */\n dropPoint = 'h-tree-node-droppoint'\n}\n\nexport interface TreeStyle extends BaseStyle {}\n","import { CommonModule } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n contentChildren,\n ElementRef,\n forwardRef,\n inject,\n InjectionToken,\n input,\n model,\n NgModule,\n numberAttribute,\n Optional,\n output,\n signal,\n SimpleChanges,\n TemplateRef,\n viewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { find, findSingle, focus, getOuterHeight, getOuterWidth, removeAccents, resolveFieldData } from '@gravionlabs/helix-core/uix/utils';\nimport { BlockableUI, HelixTemplate, ScrollerOptions, SharedModule, TranslationKeys, TreeDragDropService, TreeNode } from '@gravionlabs/helix-core/api';\nimport { AutoFocusModule } from '@gravionlabs/helix-core/autofocus';\nimport { BaseComponent, PARENT_INSTANCE } from '@gravionlabs/helix-core/basecomponent';\nimport { Bind, BindModule } from '@gravionlabs/helix-core/bind';\nimport { Checkbox } from '@gravionlabs/helix-core/checkbox';\nimport { IconField } from '@gravionlabs/helix-core/iconfield';\nimport { ChevronDownIcon, ChevronRightIcon, SearchIcon, SpinnerIcon } from '@gravionlabs/helix-core/icons';\nimport { InputIcon } from '@gravionlabs/helix-core/inputicon';\nimport { InputText } from '@gravionlabs/helix-core/inputtext';\nimport { Ripple } from '@gravionlabs/helix-core/ripple';\nimport { Scroller } from '@gravionlabs/helix-core/scroller';\nimport { Nullable } from '@gravionlabs/helix-core/ts-helpers';\nimport {\n TreeCheckboxIconTemplateContext,\n TreeFilterEvent,\n TreeFilterTemplateContext,\n TreeLazyLoadEvent,\n TreeLoaderTemplateContext,\n TreeNodeCollapseEvent,\n TreeNodeContextMenuSelectEvent,\n TreeNodeDoubleClickEvent,\n TreeNodeDropEvent,\n TreeNodeExpandEvent,\n TreeNodeSelectEvent,\n TreeNodeUnSelectEvent,\n TreePassThrough,\n TreeScrollEvent,\n TreeScrollIndexChangeEvent,\n TreeTogglerIconTemplateContext\n} from '@gravionlabs/helix-core/types/tree';\nimport { Subscription } from 'rxjs';\nimport { TreeStyle } from './style/treestyle';\n\nconst TREE_INSTANCE = new InjectionToken<Tree>('TREE_INSTANCE');\nconst TREENODE_INSTANCE = new InjectionToken<UITreeNode>('TREENODE_INSTANCE');\n\n@Component({\n selector: 'h-treeNode',\n standalone: true,\n imports: [CommonModule, Ripple, Checkbox, FormsModule, ChevronRightIcon, ChevronDownIcon, SpinnerIcon, SharedModule, BindModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './uitreenode.html',\n encapsulation: ViewEncapsulation.None,\n providers: [TreeStyle, { provide: TREENODE_INSTANCE, useExisting: UITreeNode }, { provide: PARENT_INSTANCE, useExisting: UITreeNode }]\n})\nexport class UITreeNode extends BaseComponent<TreePassThrough> {\n $pcTreeNode: UITreeNode | undefined = inject(TREENODE_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n static ICON_CLASS: string = 'h-tree-node-icon ';\n\n readonly rowNode = input<any>();\n\n readonly node = input<TreeNode<any> | undefined>(undefined);\n\n readonly parentNode = input<TreeNode<any>>();\n\n readonly root = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n readonly index = input<number, unknown>(undefined, { transform: numberAttribute });\n\n readonly firstChild = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n readonly lastChild = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n readonly level = input<number, unknown>(undefined, { transform: numberAttribute });\n\n readonly indentation = input<number, unknown>(undefined, { transform: numberAttribute });\n\n readonly itemSize = input<number, unknown>(undefined, { transform: numberAttribute });\n\n readonly loadingMode = input<string>(undefined!);\n\n tree: Tree = inject(forwardRef(() => Tree));\n\n timeout: any;\n\n isPrevDropPointHovered = signal<boolean>(false);\n\n isNextDropPointHovered = signal<boolean>(false);\n\n isNodeDropHovered = signal<boolean>(false);\n\n isPrevDropPointActive = computed(() => this.isPrevDropPointHovered() && this.isDroppable());\n\n isNextDropPointActive = computed(() => this.isNextDropPointHovered() && this.isDroppable());\n\n isNodeDropActive = computed(() => this.isNodeDropHovered() && this.isNodeDroppable());\n\n dropPosition = computed(() => (this.isPrevDropPointActive() ? -1 : this.isNextDropPointActive() ? 1 : 0));\n\n _componentStyle = inject(TreeStyle);\n\n /**\n * Computed signal that reactively tracks selection state.\n */\n private _selected = computed(() => {\n // Reading selection() makes this computed reactive to selection changes\n this.tree.selection();\n return this.tree.isSelected(<TreeNode>this.node());\n });\n\n /**\n * Computed signal that reactively tracks context menu selection state.\n */\n private _contextMenuSelected = computed(() => {\n const selection = this.tree.contextMenuSelection();\n const n = this.node();\n if (!selection || !n) {\n return false;\n }\n return selection === n || (selection.key && selection.key === n.key);\n });\n\n get selected() {\n return this.tree.selectionMode() === 'single' || this.tree.selectionMode() === 'multiple' ? this._selected() : undefined;\n }\n\n get checked() {\n return this.tree.selectionMode() === 'checkbox' ? this._selected() : undefined;\n }\n\n get nodeClass() {\n return this.tree._componentStyle.classes.node({ instance: this });\n }\n\n get selectable() {\n return this.node()?.selectable === false ? false : this.tree?.selectionMode() != null;\n }\n\n get subNodes(): TreeNode[] | undefined {\n const n = this.node();\n return n?.parent ? n.parent.children : this.tree.value();\n }\n\n getPTOptions(key: string) {\n return this.ptm(key, {\n context: {\n node: this.node(),\n index: this.index(),\n expanded: this.node()?.expanded,\n selected: this.selected,\n checked: this.checked,\n partialChecked: this.node()?.partialSelected,\n leaf: this.isLeaf()\n }\n });\n }\n\n onInit() {\n (<TreeNode>this.node()).parent = this.parentNode();\n const nativeElement = this.tree.el.nativeElement;\n const pDialogWrapper = nativeElement.closest('h-dialog');\n const parentNode = this.parentNode();\n if (parentNode && !pDialogWrapper) {\n this.setAllNodesTabIndexes();\n this.tree.syncNodeOption(<TreeNode>this.node(), <TreeNode<any>[]>this.tree.value(), 'parent', this.tree.getNodeWithKey(<string>parentNode.key, <TreeNode<any>[]>this.tree.value()));\n }\n }\n\n getIcon() {\n let icon: string | undefined;\n\n if ((<TreeNode>this.node()).icon) icon = (<TreeNode>this.node()).icon as string;\n else icon = (<TreeNode>this.node()).expanded && (<TreeNode>this.node()).children && (<TreeNode>this.node()).children?.length ? (<TreeNode>this.node()).expandedIcon : (<TreeNode>this.node()).collapsedIcon;\n\n return UITreeNode.ICON_CLASS + ' ' + icon + ' h-tree-node-icon';\n }\n\n isLeaf() {\n return this.tree.isNodeLeaf(<TreeNode>this.node());\n }\n\n isSelected() {\n return this._selected();\n }\n\n isContextMenuSelected() {\n return this._contextMenuSelected();\n }\n\n isSameNode(event) {\n return event.currentTarget && (event.currentTarget.isSameNode(event.target) || event.currentTarget.isSameNode(event.target.closest('[role=\"treeitem\"]')));\n }\n\n isDraggable() {\n return this.tree.draggableNodes();\n }\n\n isDroppable() {\n return this.tree.droppableNodes() && this.tree.allowDrop(<TreeNode>this.tree.dragNode, <TreeNode>this.node(), this.tree.dragNodeScope);\n }\n\n isNodeDroppable() {\n return (<TreeNode>this.node())?.droppable !== false && this.isDroppable();\n }\n\n isNodeDraggable() {\n return (<TreeNode>this.node())?.draggable !== false && this.isDraggable();\n }\n\n toggle(event: Event) {\n if ((<TreeNode>this.node()).expanded) this.collapse(event);\n else this.expand(event);\n\n event.stopPropagation();\n }\n\n expand(event: Event) {\n (<TreeNode>this.node()).expanded = true;\n if (this.tree.virtualScroll()) {\n this.tree.updateSerializedValue();\n this.focusVirtualNode();\n }\n this.tree.onNodeExpand.emit({ originalEvent: event, node: <TreeNode>this.node() });\n }\n\n collapse(event: Event) {\n (<TreeNode>this.node()).expanded = false;\n if (this.tree.virtualScroll()) {\n this.tree.updateSerializedValue();\n }\n this.tree.onNodeCollapse.emit({ originalEvent: event, node: <TreeNode>this.node() });\n this.focusVirtualNode();\n }\n\n onNodeClick(event: MouseEvent) {\n this.tree.onNodeClick(event, <TreeNode>this.node());\n }\n\n onNodeKeydown(event: KeyboardEvent) {\n if (event.key === 'Enter') {\n this.tree.onNodeClick(event, <TreeNode>this.node());\n }\n }\n\n onNodeTouchEnd() {\n this.tree.onNodeTouchEnd();\n }\n\n onNodeRightClick(event: MouseEvent) {\n this.tree.onNodeRightClick(event, <TreeNode>this.node());\n }\n\n onNodeDblClick(event: MouseEvent) {\n this.tree.onNodeDblClick(event, <TreeNode>this.node());\n }\n\n insertNodeOnDrop() {\n const { dragNode, dragNodeIndex, dragNodeSubNodes } = this.tree;\n const n = this.node();\n\n if (!n || dragNodeIndex == null || !dragNode || !dragNodeSubNodes) {\n return;\n }\n\n const position = this.dropPosition();\n const subNodes = this.subNodes || [];\n const index = this.index() || 0;\n const dropIndex = dragNodeSubNodes === subNodes ? (dragNodeIndex > index ? index : index - 1) : index;\n\n dragNodeSubNodes.splice(dragNodeIndex, 1);\n\n if (position < 0) {\n // insert before a Node\n subNodes.splice(dropIndex, 0, dragNode);\n } else if (position > 0) {\n // insert after a Node\n subNodes.splice(dropIndex + 1, 0, dragNode);\n } else {\n // insert as child of a Node\n n.children = n.children || [];\n n.children.push(dragNode);\n }\n\n this.tree.dragDropService.stopDrag({\n node: dragNode,\n subNodes,\n index: dragNodeIndex\n });\n }\n\n onNodeDrop(event: any) {\n event.preventDefault();\n event.stopPropagation();\n\n if (this.isDroppable()) {\n const { dragNode } = this.tree;\n const position = this.dropPosition();\n const isValidDrop = position !== 0 || (position === 0 && this.isNodeDroppable());\n\n if (isValidDrop) {\n if (this.tree.validateDrop()) {\n this.tree.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: this.node(),\n index: this.index(),\n accept: () => {\n this.insertNodeOnDrop();\n }\n });\n } else {\n this.insertNodeOnDrop();\n this.tree.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: this.node(),\n index: this.index()\n });\n }\n }\n }\n\n this.isPrevDropPointHovered.set(false);\n this.isNextDropPointHovered.set(false);\n this.isNodeDropHovered.set(false);\n }\n\n onNodeDragStart(event: any) {\n if (this.isNodeDraggable()) {\n event.dataTransfer.effectAllowed = 'all';\n event.dataTransfer?.setData('text', 'data');\n\n const target = event.currentTarget as HTMLElement;\n const dragEl = target.cloneNode(true) as HTMLElement;\n const toggler = <HTMLElement>dragEl.querySelector('[data-pc-section=\"nodetogglebutton\"]');\n const checkbox = <HTMLElement>dragEl.querySelector('[data-pc-name=\"pcnodecheckbox\"]');\n\n target.setAttribute('data-h-dragging', 'true');\n dragEl.style.width = getOuterWidth(target) + 'px';\n dragEl.style.height = getOuterHeight(target) + 'px';\n dragEl.setAttribute('data-pc-section', 'drag-image');\n toggler.style.visibility = 'hidden';\n checkbox?.remove();\n document.body.appendChild(dragEl);\n\n event.dataTransfer?.setDragImage(dragEl, 0, 0);\n\n setTimeout(() => document.body.removeChild(dragEl), 0);\n\n this.tree.dragDropService.startDrag({\n tree: this,\n node: this.node(),\n subNodes: this.subNodes,\n index: this.index(),\n scope: this.tree.draggableScope()\n });\n } else {\n event.preventDefault();\n }\n }\n\n onNodeDragOver(event: any) {\n if (this.isDroppable()) {\n event.dataTransfer.dropEffect = 'copy';\n\n const nodeElement = event.currentTarget as HTMLElement;\n const rect = nodeElement.getBoundingClientRect();\n const y = event.clientY - parseInt(rect.top as any);\n\n this.isPrevDropPointHovered.set(false);\n this.isNextDropPointHovered.set(false);\n this.isNodeDropHovered.set(false);\n\n if (y < rect.height * 0.25) {\n this.isPrevDropPointHovered.set(true);\n } else if (y > rect.height * 0.75) {\n this.isNextDropPointHovered.set(true);\n } else if (this.isNodeDroppable()) {\n this.isNodeDropHovered.set(true);\n }\n } else {\n event.dataTransfer.dropEffect = 'none';\n }\n\n if (this.tree.droppableNodes()) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n onNodeDragLeave() {\n this.isPrevDropPointHovered.set(false);\n this.isNextDropPointHovered.set(false);\n this.isNodeDropHovered.set(false);\n }\n\n onNodeDragEnd(event: any) {\n event.currentTarget?.removeAttribute('data-h-dragging');\n\n this.tree.dragDropService.stopDrag({\n node: this.node(),\n subNodes: this.subNodes,\n index: this.index()\n });\n }\n\n onKeyDown(event: KeyboardEvent) {\n const contextMenu = this.tree.contextMenu();\n if (!this.isSameNode(event) || (contextMenu && contextMenu.containerViewChild?.nativeElement.style.display === 'block')) {\n return;\n }\n\n switch (event.code) {\n //down arrow\n case 'ArrowDown':\n this.onArrowDown(event);\n break;\n\n //up arrow\n case 'ArrowUp':\n this.onArrowUp(event);\n break;\n\n //right arrow\n case 'ArrowRight':\n this.onArrowRight(event);\n break;\n\n //left arrow\n case 'ArrowLeft':\n this.onArrowLeft(event);\n break;\n\n //enter\n case 'Enter':\n case 'Space':\n case 'NumpadEnter':\n this.onEnter(event);\n break;\n //tab\n case 'Tab':\n this.setAllNodesTabIndexes();\n break;\n\n default:\n //no op\n break;\n }\n }\n\n onArrowUp(event: KeyboardEvent) {\n const nodeElement = (<HTMLDivElement>event.target).getAttribute('data-pc-section') === 'nodetogglebutton' ? (<HTMLDivElement>event.target).closest('[role=\"treeitem\"]') : (<HTMLDivElement>event.target).parentElement;\n\n if (nodeElement?.previousElementSibling) {\n this.focusRowChange(nodeElement, nodeElement.previousElementSibling, this.findLastVisibleDescendant(nodeElement.previousElementSibling));\n } else {\n let parentNodeElement = this.getParentNodeElement(nodeElement!);\n\n if (parentNodeElement) {\n this.focusRowChange(nodeElement, parentNodeElement);\n }\n }\n\n event.preventDefault();\n }\n\n onArrowDown(event: KeyboardEvent) {\n const nodeElement = (<HTMLDivElement>event.target).getAttribute('data-pc-section') === 'nodetogglebutton' ? (<HTMLDivElement>event.target).closest('[role=\"treeitem\"]') : <HTMLDivElement>event.target;\n const listElement = nodeElement?.children[1];\n\n if (listElement && listElement.children.length > 0) {\n this.focusRowChange(nodeElement, listElement.children[0]);\n } else {\n if (nodeElement?.parentElement?.nextElementSibling) {\n this.focusRowChange(nodeElement, nodeElement.parentElement.nextElementSibling);\n } else {\n let nextSiblingAncestor = this.findNextSiblingOfAncestor(nodeElement?.parentElement!);\n\n if (nextSiblingAncestor) {\n this.focusRowChange(nodeElement, nextSiblingAncestor);\n }\n }\n }\n event.preventDefault();\n }\n\n onArrowRight(event: KeyboardEvent) {\n if (!this.node()?.expanded && !this.tree.isNodeLeaf(<TreeNode>this.node())) {\n this.expand(event);\n (<HTMLDivElement>event.currentTarget).tabIndex = -1;\n\n setTimeout(() => {\n this.onArrowDown(event);\n }, 1);\n }\n event.preventDefault();\n }\n\n onArrowLeft(event: KeyboardEvent) {\n const nodeElement = (<HTMLDivElement>event.target).getAttribute('data-pc-section') === 'nodetogglebutton' ? (<HTMLDivElement>event.target).closest('[role=\"treeitem\"]') : <HTMLDivElement>event.target;\n\n if (this.level() === 0 && !this.node()?.expanded) {\n return false;\n }\n\n if (this.node()?.expanded) {\n this.collapse(event);\n return;\n }\n\n let parentNodeElement = this.getParentNodeElement(nodeElement?.parentElement!);\n\n if (parentNodeElement) {\n this.focusRowChange(event.currentTarget, parentNodeElement);\n }\n\n event.preventDefault();\n }\n\n onEnter(event: KeyboardEvent) {\n this.tree.onNodeClick(event, <TreeNode>this.node());\n this.setTabIndexForSelectionMode(event, this.tree.nodeTouched);\n event.preventDefault();\n }\n\n setAllNodesTabIndexes() {\n const nodes = <any>find(this.tree.el.nativeElement, '[data-pc-section=\"node\"]');\n\n const hasSelectedNode = [...nodes].some((node) => node.getAttribute('aria-selected') === 'true' || node.getAttribute('aria-checked') === 'true');\n\n [...nodes].forEach((node) => {\n node.tabIndex = -1;\n });\n\n if (hasSelectedNode) {\n const selectedNodes = [...nodes].filter((node) => node.getAttribute('aria-selected') === 'true' || node.getAttribute('aria-checked') === 'true');\n\n selectedNodes[0].tabIndex = 0;\n\n return;\n }\n\n if (nodes.length) {\n ([...nodes][0] as any).tabIndex = 0;\n }\n }\n\n setTabIndexForSelectionMode(event, nodeTouched) {\n if (this.tree.selectionMode() !== null) {\n const elements = [...find(this.tree.el.nativeElement, '[role=\"treeitem\"]')];\n\n event.currentTarget.tabIndex = nodeTouched === false ? -1 : 0;\n\n if (elements.every((element: any) => element.tabIndex === -1)) {\n (elements[0] as any).tabIndex = 0;\n }\n }\n }\n\n findNextSiblingOfAncestor(nodeElement: any): any {\n let parentNodeElement = this.getParentNodeElement(nodeElement);\n\n if (parentNodeElement) {\n if (parentNodeElement.nextElementSibling) return parentNodeElement.nextElementSibling;\n else return this.findNextSiblingOfAncestor(parentNodeElement);\n } else {\n return null;\n }\n }\n\n findLastVisibleDescendant(nodeElement: any): any {\n const listElement = <HTMLElement>Array.from(nodeElement.children).find((el: any) => el.getAttribute('data-pc-section') === 'node');\n const childrenListElement = listElement?.children[1];\n if (childrenListElement && childrenListElement.children.length > 0) {\n const lastChildElement = childrenListElement.children[childrenListElement.children.length - 1];\n\n return this.findLastVisibleDescendant(lastChildElement);\n } else {\n return nodeElement;\n }\n }\n\n getParentNodeElement(nodeElement: HTMLElement | Element) {\n const parentNodeElement = nodeElement.parentElement?.parentElement?.parentElement;\n\n return parentNodeElement?.tagName === 'P-TREENODE' ? parentNodeElement : null;\n }\n\n focusNode(element: any) {\n (element.children[0] as HTMLElement).focus();\n }\n\n focusRowChange(firstFocusableRow, currentFocusedRow, lastVisibleDescendant?) {\n firstFocusableRow.tabIndex = '-1';\n currentFocusedRow.children[0].tabIndex = '0';\n\n this.focusNode(lastVisibleDescendant || currentFocusedRow);\n }\n\n focusVirtualNode() {\n this.timeout = setTimeout(() => {\n let node = <any>findSingle(this.tree?.contentViewChild()?.nativeElement, `[data-id=\"${<TreeNode>this.node()?.key ?? <TreeNode>this.node()?.data}\"]`);\n focus(node);\n }, 1);\n }\n}\n/**\n * Tree is used to display hierarchical data.\n * @group Components\n */\n@Component({\n selector: 'h-tree',\n standalone: true,\n imports: [CommonModule, Scroller, SharedModule, SearchIcon, SpinnerIcon, InputText, FormsModule, IconField, InputIcon, UITreeNode, AutoFocusModule, Bind],\n templateUrl: './tree.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [TreeStyle, { provide: TREE_INSTANCE, useExisting: Tree }, { provide: PARENT_INSTANCE, useExisting: Tree }],\n host: {\n '[class]': \"cn(cx('root'), styleClass())\",\n '[attr.data-h]': 'containerDataP',\n '(drop)': 'handleDropEvent($event)',\n '(dragover)': 'handleDragOverEvent($event)',\n '(dragenter)': 'handleDragEnterEvent()',\n '(dragleave)': 'handleDragLeaveEvent($event)'\n },\n hostDirectives: [Bind]\n})\nexport class Tree extends BaseComponent<TreePassThrough> implements BlockableUI {\n componentName = 'Tree';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n $pcTree: Tree | undefined = inject(TREE_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n onAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n /**\n * An array of treenodes.\n * @group Props\n */\n readonly value = model<TreeNode<any> | TreeNode<any>[] | any[] | any>(undefined);\n /**\n * Defines the selection mode.\n * @group Props\n */\n readonly selectionMode = model<'single' | 'multiple' | 'checkbox' | null | undefined>(undefined);\n /**\n * Loading mode display.\n * @group Props\n */\n readonly loadingMode = input<'mask' | 'icon'>('mask');\n /**\n * A single treenode instance or an array to refer to the selections.\n * @group Props\n */\n selection = model<TreeNode<any> | TreeNode<any>[] | null | undefined>(null);\n /**\n * Style class of the component.\n * @deprecated since v20.0.0, use `class` instead.\n * @group Props\n */\n readonly styleClass = input<string>();\n /**\n * Context menu instance.\n * @group Props\n */\n readonly contextMenu = input<any>();\n /**\n * Defines the behavior of context menu selection, in \"separate\" mode context menu updates contextMenuSelection property whereas in joint mode selection property is used instead so that when row selection is enabled, both row selection and context menu selection use the same property.\n * @group Props\n */\n readonly contextMenuSelectionMode = input<'separate' | 'joint'>('joint');\n /**\n * Selected node with a context menu.\n * @group Props\n */\n contextMenuSelection = model<TreeNode<any> | null>(null);\n /**\n * Scope of the draggable nodes to match a droppableScope.\n * @group Props\n */\n readonly draggableScope = input<any>();\n /**\n * Scope of the droppable nodes to match a droppableScope.\n * @group Props\n */\n readonly droppableScope = input<any>();\n /**\n * Whether the nodes are draggable.\n * @group Props\n */\n readonly draggableNodes = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n /**\n * Whether the nodes are droppable.\n * @group Props\n */\n readonly droppableNodes = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n /**\n * Defines how multiple items can be selected, when true metaKey needs to be pressed to select or unselect an item and when set to false selection of each item can be toggled individually. On touch enabled devices, metaKeySelection is turned off automatically.\n * @group Props\n */\n readonly metaKeySelection = input<boolean, unknown>(false, { transform: booleanAttribute });\n /**\n * Whether checkbox selections propagate to ancestor nodes.\n * @group Props\n */\n readonly propagateSelectionUp = input<boolean, unknown>(true, { transform: booleanAttribute });\n /**\n * Whether checkbox selections propagate to descendant nodes.\n * @group Props\n */\n readonly propagateSelectionDown = input<boolean, unknown>(true, { transform: booleanAttribute });\n /**\n * Displays a loader to indicate data load is in progress.\n * @group Props\n */\n readonly loading = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n /**\n * The icon to show while indicating data load is in progress.\n * @group Props\n */\n readonly loadingIcon = input<string | undefined>(undefined);\n /**\n * Text to display when there is no data.\n * @group Props\n */\n readonly emptyMessage = input<string>('');\n /**\n * Used to define a string that labels the tree.\n * @group Props\n */\n readonly ariaLabel = input<string>();\n /**\n * Defines a string that labels the toggler icon for accessibility.\n * @group Props\n */\n readonly togglerAriaLabel = input<string>();\n /**\n * Establishes relationships between the component and label(s) where its value should be one or more element IDs.\n * @group Props\n */\n readonly ariaLabelledBy = input<string>();\n /**\n * When enabled, drop can be accepted or rejected based on condition defined at onNodeDrop.\n * @group Props\n */\n readonly validateDrop = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n /**\n * When specified, displays an input field to filter the items.\n * @group Props\n */\n readonly filter = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n /**\n * Determines whether the filter input should be automatically focused when the component is rendered.\n * @group Props\n */\n readonly filterInputAutoFocus = input<boolean, unknown>(false, { transform: booleanAttribute });\n /**\n * When filtering is enabled, filterBy decides which field or fields (comma separated) to search against.\n * @group Props\n */\n readonly filterBy = input<string>('label');\n /**\n * Mode for filtering valid values are \"lenient\" and \"strict\". Default is lenient.\n * @group Props\n */\n readonly filterMode = input<string>('lenient');\n /**\n * Mode for filtering valid values are \"lenient\" and \"strict\". Default is lenient.\n * @group Props\n */\n readonly filterOptions = model<any>(undefined);\n /**\n * Placeholder text to show when filter input is empty.\n * @group Props\n */\n readonly filterPlaceholder = input<string>();\n /**\n * Values after the tree nodes are filtered.\n * @group Props\n */\n readonly filteredNodes = model<TreeNode<any>[] | undefined | null>(undefined);\n /**\n * Locale to use in filtering. The default locale is the host environment's current locale.\n * @group Props\n */\n readonly filterLocale = input<string>();\n /**\n * Height of the scrollable viewport.\n * @group Props\n */\n readonly scrollHeight = input<string>();\n /**\n * Defines if data is loaded and interacted with in lazy manner.\n * @group Props\n */\n readonly lazy = input<boolean, unknown>(false, { transform: booleanAttribute });\n /**\n * Whether the data should be loaded on demand during scroll.\n * @group Props\n */\n readonly virtualScroll = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n /**\n * Height of an item in the list for VirtualScrolling.\n * @group Props\n */\n readonly virtualScrollItemSize = input<number, unknown>(undefined, { transform: numberAttribute });\n /**\n * Whether to use the scroller feature. The properties of scroller component can be used like an object in it.\n * @group Props\n */\n readonly virtualScrollOptions = input<ScrollerOptions>();\n /**\n * Indentation factor for spacing of the nested node when virtual scrolling is enabled.\n * @group Props\n */\n readonly indentation = input<number, unknown>(1.5, { transform: numberAttribute });\n /**\n * Custom templates of the component.\n * @group Props\n */\n readonly _templateMap = model<any>(undefined);\n /**\n * Function to optimize the node list rendering, default algorithm checks for object identity.\n * @group Props\n */\n readonly trackBy = input<Function>((index: number, item: any) => item);\n /**\n * Highlights the node on select.\n * @group Props\n */\n readonly highlightOnSelect = input<boolean, unknown>(false, { transform: booleanAttribute });\n /**\n * Callback to invoke when a node is selected.\n * @param {TreeNodeSelectEvent} event - Node select event.\n * @group Emits\n */\n readonly onNodeSelect = output<TreeNodeSelectEvent>();\n /**\n * Callback to invoke when a node is unselected.\n * @param {TreeNodeUnSelectEvent} event - Node unselect event.\n * @group Emits\n */\n readonly onNodeUnselect = output<TreeNodeUnSelectEvent>();\n /**\n * Callback to invoke when a node is expanded.\n * @param {TreeNodeExpandEvent} event - Node expand event.\n * @group Emits\n */\n readonly onNodeExpand = output<TreeNodeExpandEvent>();\n /**\n * Callback to invoke when a node is collapsed.\n * @param {TreeNodeCollapseEvent} event - Node collapse event.\n * @group Emits\n */\n readonly onNodeCollapse = output<TreeNodeCollapseEvent>();\n /**\n * Callback to invoke when a node is selected with right click.\n * @param {onNodeContextMenuSelect} event - Node context menu select event.\n * @group Emits\n */\n readonly onNodeContextMenuSelect = output<TreeNodeContextMenuSelectEvent>();\n /**\n * Callback to invoke when a node is double clicked.\n * @param {TreeNodeDoubleClickEvent} event - Node double click event.\n * @group Emits\n */\n readonly onNodeDoubleClick = output<TreeNodeDoubleClickEvent>();\n /**\n * Callback to invoke when a node is dropped.\n * @param {TreeNodeDropEvent} event - Node drop event.\n * @group Emits\n */\n readonly onNodeDrop = output<TreeNodeDropEvent>();\n /**\n * Callback to invoke in lazy mode to load new data.\n * @param {TreeLazyLoadEvent} event - Custom lazy load event.\n * @group Emits\n */\n readonly onLazyLoad = output<TreeLazyLoadEvent>();\n /**\n * Callback to invoke in virtual scroll mode when scroll position changes.\n * @param {TreeScrollEvent} event - Custom scroll event.\n * @group Emits\n */\n readonly onScroll = output<TreeScrollEvent>();\n /**\n * Callback to invoke in virtual scroll mode when scroll position and item's range in view changes.\n * @param {TreeScrollIndexChangeEvent} event - Scroll index change event.\n * @group Emits\n */\n readonly onScrollIndexChange = output<TreeScrollIndexChangeEvent>();\n /**\n * Callback to invoke when data is filtered.\n * @param {TreeFilterEvent} event - Custom filter event.\n * @group Emits\n */\n readonly onFilter = output<TreeFilterEvent>();\n /**\n * Custom filter template.\n * @param {TreeFilterTemplateContext} context - filter context.\n * @see {@link TreeFilterTemplateContext}\n * @group Templates\n */\n readonly filterTemplate = contentChild<TemplateRef<TreeFilterTemplateContext>>('filter', { descendants: false });\n /**\n * Custom node template.\n * @group Templates\n */\n readonly nodeTemplate = contentChild<TemplateRef<any>>('node', { descendants: false });\n /**\n * Custom header template.\n * @group Templates\n */\n readonly headerTemplate = contentChild<TemplateRef<void>>('header', { descendants: false });\n /**\n * Custom footer template.\n * @group Templates\n */\n readonly footerTemplate = contentChild<TemplateRef<void>>('footer', { descendants: false });\n /**\n * Custom loader template.\n * @param {TreeLoaderTemplateContext} context - loader context.\n * @see {@link TreeLoaderTemplateContext}\n * @group Templates\n */\n readonly loaderTemplate = contentChild<TemplateRef<TreeLoaderTemplateContext>>('loader', { descendants: false });\n /**\n * Custom empty message template.\n * @group Templates\n */\n readonly emptyTemplate = contentChild<TemplateRef<void>>('empty', { descendants: false });\n /**\n * Custom toggler icon template.\n * @param {TreeTogglerIconTemplateContext} context - toggler icon context.\n * @see {@link TreeTogglerIconTemplateContext}\n * @group Templates\n */\n readonly togglerIconTemplate = contentChild<TemplateRef<TreeTogglerIconTemplateContext>>('togglericon', { descendants: false });\n /**\n * Custom checkbox icon template.\n * @param {TreeCheckboxIconTemplateContext} context - checkbox icon context.\n * @see {@link TreeCheckboxIconTemplateContext}\n * @group Templates\n */\n readonly checkboxIconTemplate = contentChild<TemplateRef<TreeCheckboxIconTemplateContext>>('checkboxicon', { descendants: false });\n /**\n * Custom loading icon template.\n * @group Templates\n */\n readonly loadingIconTemplate = contentChild<TemplateRef<void>>('loadingicon', { descendants: false });\n /**\n * Custom filter icon template.\n * @group Templates\n */\n readonly filterIconTemplate = contentChild<TemplateRef<void>>('filtericon', { descendants: false });\n\n readonly filterViewChild = viewChild<ElementRef>('filter');\n\n readonly scroller = viewChild<Scroller>('scroller');\n\n readonly wrapperViewChild = viewChild<ElementRef>('wrapper');\n\n readonly contentViewChild = viewChild<ElementRef>('content');\n\n readonly templates = contentChildren(HelixTemplate);\n\n _headerTemplate: TemplateRef<void> | undefined;\n\n _emptyTemplate: TemplateRef<void> | undefined;\n\n _footerTemplate: TemplateRef<void> | undefined;\n\n _loaderTemplate: TemplateRef<TreeLoaderTemplateContext> | undefined;\n\n _togglerIconTemplate: TemplateRef<TreeTogglerIconTemplateContext> | undefined;\n\n _checkboxIconTemplate: TemplateRef<TreeCheckboxIconTemplateContext> | undefined;\n\n _loadingIconTemplate: TemplateRef<void> | undefined;\n\n _filterIconTemplate: TemplateRef<void> | undefined;\n\n _filterTemplate: TemplateRef<TreeFilterTemplateContext> | undefined;\n\n onAfterContentInit() {\n const map: any = {};\n this.templates().forEach((item) => {\n switch (item.getType()) {\n case 'header':\n this._headerTemplate = item.template;\n break;\n\n case 'empty':\n this._emptyTemplate = item.template;\n break;\n\n case 'footer':\n this._footerTemplate = item.template;\n break;\n\n case 'loader':\n this._loaderTemplate = item.template;\n break;\n\n case 'togglericon':\n this._togglerIconTemplate = item.template;\n break;\n\n case 'checkboxicon':\n this._checkboxIconTemplate = item.template;\n break;\n\n case 'loadingicon':\n this._loadingIconTemplate = item.template;\n break;\n\n case 'filtericon':\n this._filterIconTemplate = item.template;\n break;\n\n case 'filter':\n this._filterTemplate = item.template;\n break;\n\n default:\n map[<any>item.name()] = item.template;\n break;\n }\n });\n if (Object.keys(map).length) {\n this._templateMap.set(map);\n }\n }\n\n serializedValue: Nullable<TreeNode<any>[]>;\n\n public nodeTouched: boolean | undefined | null;\n\n public dragNodeTree: Tree | undefined | null;\n\n public dragNode: TreeNode<any> | undefined | null;\n\n public dragNodeSubNodes: TreeNode<any>[] | undefined | null;\n\n public dragNodeIndex: number | undefined | null;\n\n public dragNodeScope: any;\n\n public dragHover: boolean | undefined | null;\n\n public dragStartSubscription: Subscription | undefined | null;\n\n public dragStopSubscription: Subscription | undefined | null;\n\n _componentStyle = inject(TreeStyle);\n\n handleDropEvent(event: DragEvent) {\n this.onDrop(event);\n }\n\n handleDragOverEvent(event: DragEvent) {\n this.onDragOver(event);\n }\n\n handleDragEnterEvent() {\n this.onDragEnter();\n }\n\n handleDragLeaveEvent(event: DragEvent) {\n this.onDragLeave(event);\n }\n\n constructor(@Optional() public dragDropService: TreeDragDropService) {\n super();\n }\n\n onInit() {\n if (this.filterBy()) {\n this.filterOptions.set({\n filter: (value) => this._filter(value),\n reset: () => this.resetFilter()\n });\n }\n if (this.droppableNodes()) {\n this.dragStartSubscription = this.dragDropService.dragStart$.subscribe((event) => {\n this.dragNodeTree = event.tree;\n this.dragNode = event.node;\n this.dragNodeSubNodes = event.subNodes;\n this.dragNodeIndex = event.index;\n this.dragNodeScope = event.scope;\n });\n\n this.dragStopSubscription = this.dragDropService.dragStop$.subscribe((event) => {\n this.dragNodeTree = null;\n this.dragNode = null;\n this.dragNodeSubNodes = null;\n this.dragNodeIndex = null;\n this.dragNodeScope = null;\n this.dragHover = false;\n });\n }\n }\n\n onChanges(simpleChange: SimpleChanges) {\n if (simpleChange.value) {\n this.updateSerializedValue();\n if (this.hasFilterActive()) {\n this._filter(this.filterViewChild()?.nativeElement?.value);\n }\n }\n }\n\n get emptyMessageLabel(): string {\n return this.emptyMessage() || this.config.getTranslation(TranslationKeys.EMPTY_MESSAGE);\n }\n\n updateSerializedValue() {\n this.serializedValue = [];\n this.serializeNodes(null, this.getRootNode(), 0, true);\n }\n\n serializeNodes(parent: TreeNode<any> | null, nodes: TreeNode<any>[] | any, level: number, visible: boolean) {\n if (nodes && nodes.length) {\n for (let node of nodes) {\n node.parent = parent;\n const rowNode = {\n node: node,\n parent: parent,\n level: level,\n visible: visible && (parent ? parent.expanded : true)\n };\n (this.serializedValue as TreeNode<any>[]).push(<TreeNode>rowNode);\n\n if (rowNode.visible && node.expanded) {\n this.serializeNodes(node, node.children, level + 1, rowNode.visible);\n }\n }\n }\n }\n\n onNodeClick(event: Event, node: TreeNode) {\n let eventTarget = <Element>event.target;\n const section = eventTarget?.getAttribute?.('data-pc-section');\n if (section === 'nodetogglebutton' || section === 'nodetoggleicon') {\n return;\n }\n\n if (this.selectionMode()) {\n if (node.selectable === false) {\n node.style = '--h-focus-ring-color: none;';\n return;\n } else {\n if (!node.style?.includes('--h-focus-ring-color')) {\n node.style = node.style ? `${node.style}--h-focus-ring-color: var(--primary-color)` : '--h-focus-ring-color: var(--primary-color)';\n }\n }\n\n if (this.hasFilteredNodes()) {\n node = this.getNodeWithKey(<string>node.key, <TreeNode<any>[]>this.filteredNodes()) as TreeNode;\n if (!node) {\n return;\n }\n }\n\n let index = this.findIndexInSelection(node);\n let selected = index >= 0;\n const currentSelection = this.selection();\n\n if (this.isCheckboxSelectionMode()) {\n if (selected) {\n if (this.propagateSelectionDown()) this.propagateDown(node, false);\n else this.selection.set((currentSelection as TreeNode[]).filter((_val: TreeNode, i: number) => i != index));\n\n if (this.propagateSelectionUp() && node.parent) {\n this.propagateUp(node.parent, false);\n }\n\n this.onNodeUnselect.emit({ originalEvent: event, node: node });\n } else {\n if (this.propagateSelectionDown()) this.propagateDown(node, true);\n else this.selection.set([...((currentSelection as TreeNode[]) || []), node]);\n\n if (this.propagateSelectionUp() && node.parent) {\n this.propagateUp(node.parent, true);\n }\n\n this.onNodeSelect.emit({ originalEvent: event, node: node });\n }\n } else {\n let metaSelection = this.nodeTouched ? false : this.metaKeySelection();\n\n if (metaSelection) {\n let metaKey = (<KeyboardEvent>event).metaKey || (<KeyboardEvent>event).ctrlKey;\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n this.selection.set(null);\n } else {\n this.selection.set((currentSelection as TreeNode[]).filter((_val: TreeNode, i: number) => i != index));\n }\n\n this.onNodeUnselect.emit({ originalEvent: event, node: node });\n } else {\n if (this.isSingleSelectionMode()) {\n this.selection.set(node);\n } else if (this.isMultipleSelectionMode()) {\n const base = !metaKey ? [] : (currentSelection as TreeNode[]) || [];\n this.selection.set([...base, node]);\n }\n\n this.onNodeSelect.emit({ originalEvent: event, node: node });\n }\n } else {\n if (this.isSingleSelectionMode()) {\n if (selected) {\n this.selection.set(null);\n this.onNodeUnselect.emit({ originalEvent: event, node: node });\n } else {\n this.selection.set(node);\n setTimeout(() => {\n this.onNodeSelect.emit({ originalEvent: event, node: node });\n });\n }\n } else {\n if (selected) {\n this.selection.set((currentSelection as TreeNode[]).filter((_val: TreeNode, i: number) => i != index));\n this.onNodeUnselect.emit({ originalEvent: event, node: node });\n } else {\n this.selection.set([...((currentSelection as TreeNode[]) || []), node]);\n setTimeout(() => {\n this.onNodeSelect.emit({ originalEvent: event, node: node });\n });\n }\n }\n }\n }\n }\n\n this.nodeTouched = false;\n }\n\n onNodeTouchEnd() {\n this.nodeTouched = true;\n }\n\n onNodeRightClick(event: MouseEvent, node: TreeNode<any>) {\n if (this.contextMenu()) {\n let eventTarget = <Element>event.target;\n const section = eventTarget.getAttribute('data-pc-section');\n\n if (section === 'nodetogglebutton' || section === 'nodetoggleicon') {\n return;\n }\n\n let index = this.findIndexInSelection(node);\n let isNodeSelected = index >= 0;\n\n const onContextMenuCallback = () => {\n this.contextMenu().show(event);\n this.contextMenu().hideCallback = () => {\n this.contextMenuSelection.set(null);\n };\n\n this.onNodeContextMenuSelect.emit({ originalEvent: event, node: node });\n };\n\n const contextMenuSelectionMode = this.contextMenuSelectionMode();\n if (contextMenuSelectionMode === 'separate') {\n // In 'separate' mode: Update contextMenuSelection with clicked node, don't modify selection\n this.contextMenuSelection.set(node);\n onContextMenuCallback();\n } else if (contextMenuSelectionMode === 'joint') {\n // In 'joint' mode: Update only selection, don't touch contextMenuSelection\n if (!isNodeSelected) {\n if (this.isSingleSelectionMode()) {\n this.selection.set(node);\n } else {\n this.selection.set([node]);\n }\n }\n // If already selected, keep current selection as is\n\n onContextMenuCallback();\n }\n }\n }\n\n onNodeDblClick(event: MouseEvent, node: TreeNode<any>) {\n this.onNodeDoubleClick.emit({ originalEvent: event, node: node });\n }\n\n findIndexInSelection(node: TreeNode) {\n let index: number = -1;\n const currentSelection = this.selection();\n if (this.selectionMode() && currentSelection) {\n if (this.isSingleSelectionMode()) {\n const sel = currentSelection as TreeNode;\n let areNodesEqual = (sel.key && sel.key === node.key) || sel == node;\n index = areNodesEqual ? 0 : -1;\n } else {\n const selArray = currentSelection as TreeNode[];\n for (let i = 0; i < selArray.length; i++) {\n let selectedNode = selArray[i];\n let areNodesEqual = (selectedNode.key && selectedNode.key === node.key) || selectedNode == node;\n if (areNodesEqual) {\n index = i;\n break;\n }\n }\n }\n }\n\n return index;\n }\n\n syncNodeOption(node: TreeNode, parentNodes: TreeNode<any>[], option: any, value?: any) {\n // to synchronize the node option between the filtered nodes and the original nodes(this.value)\n const _node = this.hasFilteredNodes() ? this.getNodeWithKey(<string>node.key, parentNodes) : null;\n if (_node) {\n (<any>_node)[option] = value || (<any>node)[option];\n }\n }\n\n hasFilteredNodes() {\n const filtered = this.filteredNodes();\n return this.filter() && filtered && filtered.length > 0;\n }\n\n hasFilterActive() {\n return this.filter() && this.filterViewChild()?.nativeElement?.value.length > 0;\n }\n\n getNodeWithKey(key: string, nodes: TreeNode<any>[]): TreeNode<any> | undefined {\n for (let node of nodes) {\n if (node.key === key) {\n return node;\n }\n\n if (node.children) {\n let matchedNode = this.getNodeWithKey(key, node.children);\n if (matchedNode) {\n return matchedNode;\n }\n }\n }\n }\n\n propagateUp(node: TreeNode, select: boolean) {\n if (node.children && node.children.length) {\n let selectedCount: number = 0;\n let childPartialSelected: boolean = false;\n for (let child of node.children) {\n if (this.isSelected(child)) {\n selectedCount++;\n } else if (child.partialSelected) {\n childPartialSelected = true;\n }\n }\n\n const currentSelection = (this.selection() as TreeNode[]) || [];\n if (select && selectedCount == node.children.length) {\n this.selection.set([...currentSelection, node]);\n node.partialSelected = false;\n } else {\n if (!select) {\n let index = this.findIndexInSelection(node);\n if (index >= 0) {\n this.selection.set(currentSelection.filter((_val: TreeNode, i: number) => i != index));\n }\n }\n\n if (childPartialSelected || (selectedCount > 0 && selectedCount != node.children.length)) node.partialSelected = true;\n else node.partialSelected = false;\n }\n\n this.syncNodeOption(node, <TreeNode<any>[]>this.filteredNodes(), 'partialSelected');\n }\n\n let parent = node.parent;\n if (parent) {\n this.propagateUp(parent, select);\n }\n }\n\n propagateDown(node: TreeNode, select: boolean) {\n let index = this.findIndexInSelection(node);\n const currentSelection = (this.selection() as TreeNode[]) || [];\n\n if (select && index == -1) {\n this.selection.set([...currentSelection, node]);\n } else if (!select && index > -1) {\n this.selection.set(currentSelection.filter((_val: TreeNode, i: number) => i != index));\n }\n\n node.partialSelected = false;\n\n this.syncNodeOption(node, <TreeNode<any>[]>this.filteredNodes(), 'partialSelected');\n\n if (node.children && node.children.length) {\n for (let child of node.children) {\n this.propagateDown(child, select);\n }\n }\n }\n\n isSelected(node: TreeNode) {\n return this.findIndexInSelection(node) != -1;\n }\n\n isSingleSelectionMode() {\n return this.selectionMode() && this.selectionMode() == 'single';\n }\n\n isMultipleSelectionMode() {\n return this.selectionMode() && this.selectionMode() == 'multiple';\n }\n\n isCheckboxSelectionMode() {\n return this.selectionMode() && this.selectionMode() == 'checkbox';\n }\n\n isNodeLeaf(node: TreeNode): boolean {\n return node.leaf == false ? false : !(node.children && node.children.length);\n }\n\n getRootNode() {\n return this.filteredNodes() ? this.filteredNodes() : this.value();\n }\n\n getTemplateForNode(node: TreeNode): TemplateRef<any> | null {\n if (this._templateMap()) return node.type ? this._templateMap()[node.type] : this._templateMap()['default'];\n else return null;\n }\n\n onDragOver(event: DragEvent) {\n if (this.droppableNodes() && this.allowDrop(<TreeNode>this.dragNode, null, this.dragNodeScope)) {\n (<any>event).dataTransfer.dropEffect = 'copy';\n event.preventDefault();\n }\n }\n\n onDrop(event: DragEvent) {\n if (this.droppableNodes()) {\n event.preventDefault();\n let dragNode = this.dragNode as TreeNode;\n\n if (this.isSameTreeScope(this.dragNodeScope)) {\n return;\n }\n\n if (this.allowDrop(dragNode, null, this.dragNodeScope)) {\n let dragNodeIndex = <number>this.dragNodeIndex;\n this.value.update(v => v || []);\n\n if (this.validateDrop()) {\n this.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: null,\n index: dragNodeIndex,\n accept: () => {\n this.processTreeDrop(dragNode, dragNodeIndex);\n }\n });\n } else {\n this.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: null,\n index: dragNodeIndex\n });\n\n this.processTreeDrop(dragNode, dragNodeIndex);\n }\n }\n }\n }\n\n processTreeDrop(dragNode: TreeNode, dragNodeIndex: number) {\n (<TreeNode<any>[]>this.dragNodeSubNodes).splice(dragNodeIndex, 1);\n (this.value() as TreeNode<any>[]).push(dragNode);\n this.dragDropService.stopDrag({\n node: dragNode\n });\n }\n\n onDragEnter() {\n if (this.droppableNodes() && this.allowDrop(<TreeNode>this.dragNode, null, this.dragNodeScope)) {\n this.dragHover = true;\n }\n }\n\n onDragLeave(event: DragEvent) {\n if (this.droppableNodes()) {\n let rect = (event.currentTarget as HTMLElement).getBoundingClientRect();\n if (event.x > parseInt(rect.left as any) + rect.width || event.x < parseInt(rect.left as any) || event.y > parseInt(rect.top as any) + rect.height || event.y < parseInt(rect.top as any)) {\n this.dragHover = false;\n }\n }\n }\n\n allowDrop(dragNode: TreeNode, dropNode: TreeNode<any> | null, dragNodeScope: any): boolean {\n if (!dragNode) {\n //prevent random html elements to be dragged\n return false;\n } else if (this.isValidDragScope(dragNodeScope)) {\n let allow: boolean = true;\n if (dropNode) {\n if (dragNode === dropNode) {\n allow = false;\n } else {\n let parent = dropNode.parent;\n while (parent != null) {\n if (parent === dragNode) {\n allow = false;\n break;\n }\n parent = parent.parent;\n }\n }\n }\n\n return allow;\n } else {\n return false;\n }\n }\n\n hasCommonScope(dragScope: any, dropScope: any): boolean {\n if (typeof dropScope === 'string') {\n if (typeof dragScope === 'string') return dropScope === dragScope;\n else if (Array.isArray(dragScope)) return (<Array<any>>dragScope).indexOf(dropScope) != -1;\n } else if (Array.isArray(dropScope)) {\n if (typeof dragScope === 'string') {\n return (<Array<any>>dropScope).indexOf(dragScope) != -1;\n } else if (Array.isArray(dragScope)) {\n for (let s of dropScope) {\n for (let ds of dragScope) {\n if (s === ds) {\n return true;\n }\n }\n }\n }\n }\n return false;\n }\n\n isSameTreeScope(dragScope: any): boolean {\n return this.hasCommonScope(dragScope, this.draggableScope());\n }\n\n isValidDragScope(dragScope: any): boolean {\n let dropScope = this.droppableScope();\n\n if (dropScope) {\n return this.hasCommonScope(dragScope, dropScope);\n } else {\n return true;\n }\n }\n\n public _filter(value: string) {\n let filterValue = value;\n if (filterValue === '') {\n this.filteredNodes.set(null);\n } else {\n const filtered: TreeNode<any>[] = [];\n const searchFields: string[] = this.filterBy().split(',');\n const filterText = removeAccents(filterValue).toLocaleLowerCase(this.filterLocale());\n const isStrictMode = this.filterMode() === 'strict';\n for (let node of <TreeNode<any>[]>this.value()) {\n let copyNode = { ...node };\n let paramsWithoutNode = { searchFields, filterText, isStrictMode };\n if (\n (isStrictMode && (this.findFilteredNodes(copyNode, paramsWithoutNode) || this.isFilterMatched(copyNode, paramsWithoutNode))) ||\n (!isStrictMode && (this.isFilterMatched(copyNode, paramsWithoutNode) || this.findFilteredNodes(copyNode, paramsWithoutNode)))\n ) {\n filtered.push(copyNode);\n }\n }\n this.filteredNodes.set(filtered);\n }\n\n this.updateSerializedValue();\n this.onFilter.emit({\n filter: filterValue,\n filteredValue: this.filteredNodes()\n });\n }\n\n /**\n * Resets filter.\n * @group Method\n */\n public resetFilter() {\n this.filteredNodes.set(null);\n\n const filterViewChildEl = this.filterViewChild();\n if (filterViewChildEl?.nativeElement) {\n filterViewChildEl.nativeElement.value = '';\n }\n }\n /**\n * Scrolls to virtual index.\n * @param {number} number - Index to be scrolled.\n * @group Method\n */\n public scrollToVirtualIndex(index: number) {\n this.virtualScroll() && this.scroller()?.scrollToIndex(index);\n }\n /**\n * Scrolls to virtual index.\n * @param {ScrollToOptions} options - Scroll options.\n * @group Method\n */\n public scrollTo(options: any) {\n if (this.virtualScroll()) {\n this.scroller()?.scrollTo(options);\n } else {\n const wrapperEl = this.wrapperViewChild();\n if (wrapperEl?.nativeElement) {\n if (wrapperEl.nativeElement.scrollTo) {\n wrapperEl.nativeElement.scrollTo(options);\n } else {\n wrapperEl.nativeElement.scrollLeft = options.left;\n wrapperEl.nativeElement.scrollTop = options.top;\n }\n }\n }\n }\n\n findFilteredNodes(node: TreeNode, paramsWithoutNode: any) {\n if (node) {\n let matched = false;\n if (node.children) {\n let childNodes = [...node.children];\n node.children = [];\n for (let childNode of childNodes) {\n let copyChildNode = { ...childNode };\n if (this.isFilterMatched(copyChildNode, paramsWithoutNode)) {\n matched = true;\n node.children.push(copyChildNode);\n }\n }\n }\n\n if (matched) {\n node.expanded = true;\n return true;\n }\n }\n }\n\n isFilterMatched(node: TreeNode, params: any) {\n let { searchFields, filterText, isStrictMode } = params;\n let matched = false;\n for (let field of searchFields) {\n let fieldValue = removeAccents(String(resolveFieldData(node, field))).toLocaleLowerCase(this.filterLocale());\n if (fieldValue.indexOf(filterText) > -1) {\n matched = true;\n }\n }\n\n if (!matched || (isStrictMode && !this.isNodeLeaf(node))) {\n matched = this.findFilteredNodes(node, { searchFields, filterText, isStrictMode }) || matched;\n }\n\n return matched;\n }\n\n getIndex(options: any, index: number) {\n const getItemOptions = options['getItemOptions'];\n return getItemOptions ? getItemOptions(index).index : index;\n }\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\n }\n\n onDestroy() {\n if (this.dragStartSubscription) {\n this.dragStartSubscription.unsubscribe();\n }\n\n if (this.dragStopSubscription) {\n this.dragStopSubscription.unsubscribe();\n }\n }\n\n get containerDataP() {\n return this.cn({\n loading: this.loading(),\n scrollable: this.scrollHeight() === 'flex'\n });\n }\n\n get wrapperDataP() {\n return this.cn({\n scrollable: this.scrollHeight() === 'flex'\n });\n }\n}\n@NgModule({\n imports: [Tree, SharedModule],\n exports: [Tree, SharedModule]\n})\nexport class TreeModule {}\n","@if (node()) {\n <li\n [class]=\"cn(cx('node'), node().styleClass)\"\n [ngStyle]=\"{ height: itemSize() + 'px' }\"\n [style]=\"node().style\"\n [attr.aria-label]=\"node().label\"\n [attr.aria-checked]=\"checked\"\n [attr.aria-setsize]=\"node().children ? node().children.length : 0\"\n [attr.aria-selected]=\"selected\"\n [attr.aria-expanded]=\"node().expanded\"\n [attr.aria-posinset]=\"index() + 1\"\n [attr.aria-level]=\"level() + 1\"\n [attr.tabindex]=\"index() === 0 ? 0 : -1\"\n [attr.data-id]=\"node().key\"\n role=\"treeitem\"\n (keydown)=\"onKeyDown($event)\"\n [hBind]=\"getPTOptions('node')\"\n >\n @if (isPrevDropPointActive()) {\n <div [class]=\"cx('dropPoint')\" [attr.aria-hidden]=\"true\" [hBind]=\"getPTOptions('dropPoint')\"></div>\n }\n <div\n [class]=\"cx('nodeContent')\"\n [style.paddingLeft]=\"level() * indentation() + 'rem'\"\n (click)=\"onNodeClick($event)\"\n (contextmenu)=\"onNodeRightClick($event)\"\n (dblclick)=\"onNodeDblClick($event)\"\n (touchend)=\"onNodeTouchEnd()\"\n (drop)=\"onNodeDrop($event)\"\n (dragstart)=\"onNodeDragStart($event)\"\n (dragover)=\"onNodeDragOver($event)\"\n (dragleave)=\"onNodeDragLeave($event)\"\n (dragend)=\"onNodeDragEnd($event)\"\n [draggable]=\"tree.draggableNodes()\"\n [hBind]=\"getPTOptions('nodeContent')\"\n >\n <button type=\"button\" [class]=\"cx('nodeToggleButton')\" (click)=\"toggle($event)\" hRipple tabindex=\"-1\" [hBind]=\"getPTOptions('nodeToggleButton')\">\n @if (!tree.togglerIconTemplate() && !tree._togglerIconTemplate) {\n @if (!node().loading) {\n @if (!node().expanded) {\n <svg data-h-icon=\"chevron-right\" [class]=\"cx('nodeToggleIcon')\" [hBind]=\"getPTOptions('nodeToggleIcon')\" />\n }\n @if (node().expanded) {\n <svg data-h-icon=\"chevron-down\" [class]=\"cx('nodeToggleIcon')\" [hBind]=\"getPTOptions('nodeToggleIcon')\" />\n }\n }\n @if (loadingMode() === 'icon' && node().loading) {\n <svg data-h-icon=\"spinner\" [class]=\"cx('nodeToggleIcon')\" spin [hBind]=\"getPTOptions('nodeToggleIcon')\" />\n }\n }\n @if (tree.togglerIconTemplate() || tree._togglerIconTemplate) {\n <span [class]=\"cx('nodeToggleIcon')\" [hBind]=\"getPTOptions('nodeToggleIcon')\">\n <ng-template *ngTemplateOutlet=\"tree.togglerIconTemplate() || tree._togglerIconTemplate; context: { $implicit: node().expanded, loading: node().loading }\"></ng-template>\n </span>\n }\n </button>\n\n @if (tree.selectionMode() == 'checkbox') {\n <h-checkbox\n [ngModel]=\"isSelected()\"\n [styleClass]=\"cx('nodeCheckbox')\"\n [binary]=\"true\"\n [indeterminate]=\"node().partialSelected\"\n [disabled]=\"node().selectable === false\"\n [variant]=\"tree?.config.inputStyle() === 'filled' || tree?.config.inputVariant() === 'filled' ? 'filled' : 'outlined'\"\n [attr.data-h-partialchecked]=\"node().partialSelected\"\n [tabindex]=\"-1\"\n (click)=\"$event.preventDefault()\"\n [pt]=\"getPTOptions('pcNodeCheckbox')\"\n [unstyled]=\"unstyled()\"\n >\n @if (tree.checkboxIconTemplate() || tree._checkboxIconTemplate) {\n <ng-template #icon>\n <ng-template\n *ngTemplateOutlet=\"\n tree.checkboxIconTemplate() || tree._checkboxIconTemplate;\n context: {\n $implicit: isSelected(),\n partialSelected: node().partialSelected,\n class: cx('nodeCheckbox')\n }\n \"\n ></ng-template>\n </ng-template>\n }\n </h-checkbox>\n }\n\n @if (node().icon || node().expandedIcon || node().collapsedIcon) {\n <span [class]=\"getIcon()\" [hBind]=\"getPTOptions('nodeIcon')\"></span>\n }\n <span [class]=\"cx('nodeLabel')\" [hBind]=\"getPTOptions('nodeLabel')\">\n @if (!tree.getTemplateForNode(node())) {\n <span>{{ node().label }}</span>\n }\n @if (tree.getTemplateForNode(node())) {\n <span>\n <ng-container *ngTemplateOutlet=\"tree.getTemplateForNode(node()); context: { $implicit: node() }\"></ng-container>\n </span>\n }\n </span>\n </div>\n @if (isNextDropPointActive()) {\n <div [class]=\"cx('dropPoint', { next: true })\" [attr.aria-hidden]=\"true\" [hBind]=\"getPTOptions('dropPoint')\"></div>\n }\n @if (!tree.virtualScroll() && node().children && node().expanded) {\n <ul [class]=\"cx('nodeChildren')\" role=\"group\" [hBind]=\"ptm('nodeChildren')\">\n @for (childNode of node().children; track tree.trackBy().bind(this)(index, childNode); let firstChild = $first; let lastChild = $last; let index = $index) {\n <h-treeNode\n [node]=\"childNode\"\n [parentNode]=\"node()\"\n [firstChild]=\"firstChild\"\n [lastChild]=\"lastChild\"\n [index]=\"index\"\n [itemSize]=\"itemSize()\"\n [level]=\"level() + 1\"\n [loadingMode]=\"loadingMode()\"\n [pt]=\"pt\"\n [unstyled]=\"unstyled()\"\n ></h-treeNode>\n }\n </ul>\n }\n</li>\n}\n","@if (loading() && loadingMode() === 'mask') {\n <div [class]=\"cx('mask')\" [hBind]=\"ptm('mask')\" animate.enter=\"h-overlay-mask-enter-active\" animate.leave=\"h-overlay-mask-leave-active\">\n @if (loadingIcon()) {\n <i [class]=\"cn(cx('loadingIcon'), 'pi-spin' + loadingIcon())\" [hBind]=\"ptm('loadingIcon')\"></i>\n }\n @if (!loadingIcon()) {\n @if (!loadingIconTemplate() && !_loadingIconTemplate) {\n <svg data-h-icon=\"spinner\" spin [class]=\"cx('loadingIcon')\" [hBind]=\"ptm('loadingIcon')\" />\n }\n @if (loadingIconTemplate() || _loadingIconTemplate) {\n <span [class]=\"cx('loadingIcon')\" [hBind]=\"ptm('loadingIcon')\">\n <ng-template *ngTemplateOutlet=\"loadingIconTemplate() || _loadingIconTemplate\"></ng-template>\n </span>\n }\n }\n </div>\n}\n<ng-container *ngTemplateOutlet=\"headerTemplate() || _headerTemplate\"></ng-container>\n@if (filterTemplate() || _filterTemplate) {\n <ng-container *ngTemplateOutlet=\"filterTemplate() || _filterTemplate; context: { $implicit: filterOptions() }\"></ng-container>\n} @else {\n @if (filter()) {\n <h-iconfield [class]=\"cx('pcFilterContainer')\" [pt]=\"ptm('pcFilterContainer')\" [unstyled]=\"unstyled()\">\n <input\n #filter\n [hAutoFocus]=\"filterInputAutoFocus()\"\n hInputText\n type=\"search\"\n autocomplete=\"off\"\n [class]=\"cx('pcFilterInput')\"\n [attr.placeholder]=\"filterPlaceholder()\"\n (keydown.enter)=\"$event.preventDefault()\"\n (input)=\"_filter($safeNavigationMigration($event.target?.value))\"\n [pt]=\"ptm('pcFilterInput')\"\n [unstyled]=\"unstyled()\"\n />\n <h-inputicon [pt]=\"ptm('pcFilterIconContainer')\" [unstyled]=\"unstyled()\">\n @if (!filterIconTemplate() && !_filterIconTemplate) {\n <svg data-h-icon=\"search\" [class]=\"cx('filterIcon')\" [hBind]=\"ptm('filterIcon')\" />\n }\n @if (filterIconTemplate() || _filterIconTemplate) {\n <span [class]=\"cx('filterIcon')\" [hBind]=\"ptm('filterIcon')\">\n <ng-template *ngTemplateOutlet=\"filterIconTemplate() || _filterIconTemplate\"></ng-template>\n </span>\n }\n </h-inputicon>\n </h-iconfield>\n }\n}\n\n@if (getRootNode()?.length) {\n @if (virtualScroll()) {\n <h-scroller\n #scroller\n [items]=\"serializedValue\"\n [tabindex]=\"-1\"\n [styleClass]=\"cx('wrapper')\"\n [style]=\"{ height: scrollHeight() !== 'flex' ? scrollHeight() : undefined }\"\n [scrollHeight]=\"scrollHeight() !== 'flex' ? undefined : '100%'\"\n [itemSize]=\"virtualScrollItemSize()\"\n [lazy]=\"lazy()\"\n (onScroll)=\"onScroll.emit($event)\"\n (onScrollIndexChange)=\"onScrollIndexChange.emit($event)\"\n (onLazyLoad)=\"onLazyLoad.emit($event)\"\n [options]=\"virtualScrollOptions()\"\n [pt]=\"ptm('virtualScroller')\"\n hostName=\"tree\"\n [attr.data-h]=\"wrapperDataP\"\n >\n <ng-template #content let-items let-scrollerOptions=\"options\">\n @if (items) {\n <ul\n #content\n [class]=\"cx('rootChildren')\"\n [ngClass]=\"scrollerOptions.contentStyleClass\"\n [style]=\"scrollerOptions.contentStyle\"\n role=\"tree\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [hBind]=\"ptm('rootChildren')\"\n >\n @for (rowNode of items; track trackBy()(index, rowNode); let firstChild = $first; let lastChild = $last; let index = $index) {\n <h-treeNode\n #treeNode\n [level]=\"rowNode.level\"\n [rowNode]=\"rowNode\"\n [node]=\"rowNode.node\"\n [parentNode]=\"rowNode.parent\"\n [firstChild]=\"firstChild\"\n [lastChild]=\"lastChild\"\n [index]=\"getIndex(scrollerOptions, index)\"\n [itemSize]=\"scrollerOptions.itemSize\"\n [indentation]=\"indentation()\"\n [loadingMode]=\"loadingMode()\"\n [pt]=\"pt\"\n [unstyled]=\"unstyled()\"\n ></h-treeNode>\n }\n </ul>\n }\n </ng-template>\n @if (loaderTemplate() || _loaderTemplate) {\n <ng-template #loader let-scrollerOptions=\"options\">\n <ng-container *ngTemplateOutlet=\"loaderTemplate() || _loaderTemplate; context: { options: scrollerOptions }\"></ng-container>\n </ng-template>\n }\n </h-scroller>\n }\n @if (!virtualScroll()) {\n <div #wrapper [class]=\"cx('wrapper')\" [style.max-height]=\"scrollHeight()\" [hBind]=\"ptm('wrapper')\" [attr.data-h]=\"wrapperDataP\">\n @if (getRootNode()) {\n <ul #content [class]=\"cx('rootChildren')\" role=\"tree\" [attr.aria-label]=\"ariaLabel()\" [attr.aria-labelledby]=\"ariaLabelledBy()\" [hBind]=\"ptm('rootChildren')\">\n @for (node of getRootNode(); track trackBy().bind(this)(index, node); let firstChild = $first; let lastChild = $last; let index = $index) {\n <h-treeNode\n [node]=\"node\"\n [firstChild]=\"firstChild\"\n [lastChild]=\"lastChild\"\n [index]=\"index\"\n [level]=\"0\"\n [loadingMode]=\"loadingMode()\"\n [pt]=\"pt\"\n [unstyled]=\"unstyled()\"\n ></h-treeNode>\n }\n </ul>\n }\n </div>\n }\n}\n\n@if (!loading() && (getRootNode() == null || getRootNode().length === 0)) {\n <div [class]=\"cx('emptyMessage')\" [hBind]=\"ptm('emptyMessage')\">\n @if (!emptyTemplate() && !_emptyTemplate) {\n {{ emptyMessageLabel }}\n } @else {\n <ng-container *ngTemplateOutlet=\"emptyTemplate() || _emptyTemplate\"></ng-container>\n }\n </div>\n}\n<ng-container *ngTemplateOutlet=\"footerTemplate() || _footerTemplate\"></ng-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gravionlabs-helix-core-tree.mjs","names":[],"sources":["../../../projects/core/tree/style/tree.css.ts","../../../projects/core/tree/style/treestyle.ts","../../../projects/core/tree/tree.ts","../../../projects/core/tree/uitreenode.html","../../../projects/core/tree/tree.html"],"sourcesContent":["export const style = /*css*/ `\n .h-tree {\n display: block;\n background: dt('tree.background');\n color: dt('tree.color');\n padding: dt('tree.padding');\n position: relative;\n }\n\n .h-tree-root-children,\n .h-tree-node-children {\n display: flex;\n list-style-type: none;\n flex-direction: column;\n margin: 0;\n gap: dt('tree.gap');\n }\n\n .h-tree-root-children {\n padding: 0;\n padding-block-start: dt('tree.gap');\n }\n\n .h-tree-node-children {\n padding: 0;\n padding-block-start: dt('tree.gap');\n padding-inline-start: dt('tree.indent');\n }\n\n .h-tree-node {\n padding: 0;\n outline: 0 none;\n }\n\n .h-tree-node-content {\n border-radius: dt('tree.node.border.radius');\n padding: dt('tree.node.padding');\n display: flex;\n align-items: center;\n outline-color: transparent;\n color: dt('tree.node.color');\n gap: dt('tree.node.gap');\n transition:\n background dt('tree.transition.duration'),\n color dt('tree.transition.duration'),\n outline-color dt('tree.transition.duration'),\n box-shadow dt('tree.transition.duration');\n }\n\n .h-tree-node-content[data-h-dragging] {\n outline: 1px dashed dt('primary.color');\n outline-offset: -1px;\n }\n\n .h-tree-node-content[data-pc-section=\"drag-image\"] {\n background: dt('tree.background');\n }\n\n .h-tree-node:focus-visible > .h-tree-node-content {\n box-shadow: dt('tree.node.focus.ring.shadow');\n outline: dt('tree.node.focus.ring.width') dt('tree.node.focus.ring.style') dt('tree.node.focus.ring.color');\n outline-offset: dt('tree.node.focus.ring.offset');\n }\n\n .h-tree-node-content.h-tree-node-selectable:not(.h-tree-node-selected):hover {\n background: dt('tree.node.hover.background');\n color: dt('tree.node.hover.color');\n }\n\n .h-tree-node-content.h-tree-node-selectable:not(.h-tree-node-selected):hover .h-tree-node-icon {\n color: dt('tree.node.icon.hover.color');\n }\n\n .h-tree-node-content.h-tree-node-selected {\n background: dt('tree.node.selected.background');\n color: dt('tree.node.selected.color');\n }\n\n .h-tree-node-content.h-tree-node-selected .h-tree-node-toggle-button {\n color: inherit;\n }\n\n .h-tree-node-content.h-tree-node-dragover {\n background: dt('tree.node.hover.background');\n color: dt('tree.node.hover.color');\n }\n\n .h-tree-node-content:focus-visible,\n .h-tree-node-content.h-tree-node-contextmenu-selected {\n box-shadow: dt('tree.node.focus.ring.shadow');\n outline: dt('tree.node.focus.ring.width') dt('tree.node.focus.ring.style') dt('tree.node.focus.ring.color');\n outline-offset: dt('tree.node.focus.ring.offset');\n }\n\n .h-tree-node-drop-point {\n\t\toutline: 1px solid dt('primary.color');\n\t}\n\n .h-tree-node-toggle-button {\n cursor: pointer;\n user-select: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n position: relative;\n flex-shrink: 0;\n width: dt('tree.node.toggle.button.size');\n height: dt('tree.node.toggle.button.size');\n color: dt('tree.node.toggle.button.color');\n border: 0 none;\n background: transparent;\n border-radius: dt('tree.node.toggle.button.border.radius');\n transition:\n background dt('tree.transition.duration'),\n color dt('tree.transition.duration'),\n border-color dt('tree.transition.duration'),\n outline-color dt('tree.transition.duration'),\n box-shadow dt('tree.transition.duration');\n outline-color: transparent;\n padding: 0;\n }\n\n .h-tree-node-toggle-button:enabled:hover {\n background: dt('tree.node.toggle.button.hover.background');\n color: dt('tree.node.toggle.button.hover.color');\n }\n\n .h-tree-node-content.h-tree-node-selected .h-tree-node-toggle-button:hover {\n background: dt('tree.node.toggle.button.selected.hover.background');\n color: dt('tree.node.toggle.button.selected.hover.color');\n }\n\n .h-tree-root {\n overflow: auto;\n }\n\n .h-tree-node-selectable {\n cursor: pointer;\n user-select: none;\n }\n\n .h-tree-node-leaf > .h-tree-node-content .h-tree-node-toggle-button {\n visibility: hidden;\n }\n\n .h-tree-node-icon {\n color: dt('tree.node.icon.color');\n transition: color dt('tree.transition.duration');\n }\n\n .h-tree-node-content.h-tree-node-selected .h-tree-node-icon {\n color: dt('tree.node.icon.selected.color');\n }\n\n .h-tree-filter {\n margin: dt('tree.filter.margin');\n }\n\n .h-tree-filter-input {\n width: 100%;\n }\n\n .h-tree-loading-icon {\n font-size: dt('tree.loading.icon.size');\n width: dt('tree.loading.icon.size');\n height: dt('tree.loading.icon.size');\n }\n\n .h-tree .h-tree-mask {\n position: absolute;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .h-tree-flex-scrollable {\n display: flex;\n flex: 1;\n height: 100%;\n flex-direction: column;\n }\n\n .h-tree-flex-scrollable .h-tree-root {\n flex: 1;\n }\n`;\n","import { Injectable } from '@angular/core';\nimport { style } from './tree.css';\nimport { BaseStyle } from '@gravionlabs/helix-core/base';\n\nconst classes = {\n root: ({ instance }) => [\n 'h-tree h-component',\n {\n 'h-tree-selectable': instance.selectionMode != null,\n 'h-tree-loading': instance.loading,\n 'h-tree-flex-scrollable': instance.scrollHeight === 'flex',\n 'h-tree-node-dragover': instance.dragHover\n }\n ],\n mask: 'h-tree-mask h-overlay-mask',\n loadingIcon: 'h-tree-loading-icon',\n pcFilterInput: 'h-tree-filter-input',\n wrapper: 'h-tree-root',\n rootChildren: 'h-tree-root-children',\n node: ({ instance }) => ({ 'h-tree-node': true, 'h-tree-node-leaf': instance.isLeaf() }),\n nodeContent: ({ instance }) => ({\n 'h-tree-node-content': true,\n 'h-tree-node-selectable': instance.selectable,\n 'h-tree-node-dragover': instance.isNodeDropActive(),\n 'h-tree-node-selected': instance.selectionMode === 'checkbox' && instance.tree.highlightOnSelect ? instance.checked : instance.selected,\n 'h-tree-node-contextmenu-selected': instance.isContextMenuSelected()\n }),\n nodeToggleButton: 'h-tree-node-toggle-button',\n nodeToggleIcon: 'h-tree-node-toggle-icon',\n nodeCheckbox: 'h-tree-node-checkbox',\n nodeIcon: 'h-tree-node-icon',\n nodeLabel: 'h-tree-node-label',\n nodeChildren: 'h-tree-node-children',\n emptyMessage: 'h-tree-empty-message',\n dropPoint: 'h-tree-node-drop-point'\n};\n\n@Injectable()\nexport class TreeStyle extends BaseStyle {\n name = 'tree';\n\n style = style;\n\n classes = classes;\n}\n\n/**\n *\n * Tree is used to display hierarchical data.\n *\n * [Live Demo](https://www.primeng.org/tree/)\n *\n * @module treestyle\n *\n */\nexport enum TreeClasses {\n /**\n * Class name of the root element\n */\n root = 'h-tree',\n /**\n * Class name of the mask element\n */\n mask = 'h-tree-mask',\n /**\n * Class name of the loading icon element\n */\n loadingIcon = 'h-tree-loading-icon',\n /**\n * Class name of the filter input element\n */\n pcFilterInput = 'h-tree-filter-input',\n /**\n * Class name of the wrapper element\n */\n wrapper = 'h-tree-root',\n /**\n * Class name of the root children element\n */\n rootChildren = 'h-tree-root-children',\n /**\n * Class name of the node element\n */\n node = 'h-tree-node',\n /**\n * Class name of the node content element\n */\n nodeContent = 'h-tree-node-content',\n /**\n * Class name of the node toggle button element\n */\n nodeToggleButton = 'h-tree-node-toggle-button',\n /**\n * Class name of the node toggle icon element\n */\n nodeToggleIcon = 'h-tree-node-toggle-icon',\n /**\n * Class name of the node checkbox element\n */\n nodeCheckbox = 'h-tree-node-checkbox',\n /**\n * Class name of the node icon element\n */\n nodeIcon = 'h-tree-node-icon',\n /**\n * Class name of the node label element\n */\n nodeLabel = 'h-tree-node-label',\n /**\n * Class name of the node children element\n */\n nodeChildren = 'h-tree-node-children',\n /**\n * Class name of the empty message element\n */\n emptyMessage = 'h-tree-empty-message',\n /**\n * Class name of the drop point element\n */\n dropPoint = 'h-tree-node-droppoint'\n}\n\nexport interface TreeStyle extends BaseStyle {}\n","import { CommonModule } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n contentChildren,\n ElementRef,\n forwardRef,\n inject,\n InjectionToken,\n input,\n model,\n NgModule,\n numberAttribute,\n Optional,\n output,\n signal,\n SimpleChanges,\n TemplateRef,\n viewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { find, findSingle, focus, getOuterHeight, getOuterWidth, removeAccents, resolveFieldData } from '@gravionlabs/helix-core/uix/utils';\nimport { BlockableUI, HelixTemplate, ScrollerOptions, SharedModule, TranslationKeys, TreeDragDropService, TreeNode } from '@gravionlabs/helix-core/api';\nimport { AutoFocusModule } from '@gravionlabs/helix-core/autofocus';\nimport { BaseComponent, PARENT_INSTANCE } from '@gravionlabs/helix-core/basecomponent';\nimport { Bind, BindModule } from '@gravionlabs/helix-core/bind';\nimport { Checkbox } from '@gravionlabs/helix-core/checkbox';\nimport { IconField } from '@gravionlabs/helix-core/iconfield';\nimport { ChevronDownIcon, ChevronRightIcon, SearchIcon, SpinnerIcon } from '@gravionlabs/helix-core/icons';\nimport { InputIcon } from '@gravionlabs/helix-core/inputicon';\nimport { InputText } from '@gravionlabs/helix-core/inputtext';\nimport { Ripple } from '@gravionlabs/helix-core/ripple';\nimport { Scroller } from '@gravionlabs/helix-core/scroller';\nimport { Nullable } from '@gravionlabs/helix-core/ts-helpers';\nimport {\n TreeCheckboxIconTemplateContext,\n TreeFilterEvent,\n TreeFilterTemplateContext,\n TreeLazyLoadEvent,\n TreeLoaderTemplateContext,\n TreeNodeCollapseEvent,\n TreeNodeContextMenuSelectEvent,\n TreeNodeDoubleClickEvent,\n TreeNodeDropEvent,\n TreeNodeExpandEvent,\n TreeNodeSelectEvent,\n TreeNodeUnSelectEvent,\n TreePassThrough,\n TreeScrollEvent,\n TreeScrollIndexChangeEvent,\n TreeTogglerIconTemplateContext\n} from '@gravionlabs/helix-core/types/tree';\nimport { Subscription } from 'rxjs';\nimport { TreeStyle } from './style/treestyle';\n\nconst TREE_INSTANCE = new InjectionToken<Tree>('TREE_INSTANCE');\nconst TREENODE_INSTANCE = new InjectionToken<UITreeNode>('TREENODE_INSTANCE');\n\n@Component({\n selector: 'h-treeNode',\n standalone: true,\n imports: [CommonModule, Ripple, Checkbox, FormsModule, ChevronRightIcon, ChevronDownIcon, SpinnerIcon, SharedModule, BindModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './uitreenode.html',\n encapsulation: ViewEncapsulation.None,\n providers: [TreeStyle, { provide: TREENODE_INSTANCE, useExisting: UITreeNode }, { provide: PARENT_INSTANCE, useExisting: UITreeNode }]\n})\nexport class UITreeNode extends BaseComponent<TreePassThrough> {\n $pcTreeNode: UITreeNode | undefined = inject(TREENODE_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n static ICON_CLASS: string = 'h-tree-node-icon ';\n\n readonly rowNode = input<any>();\n\n readonly node = input<TreeNode<any> | undefined>(undefined);\n\n readonly parentNode = input<TreeNode<any>>();\n\n readonly root = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n readonly index = input<number, unknown>(undefined, { transform: numberAttribute });\n\n readonly firstChild = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n readonly lastChild = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n readonly level = input<number, unknown>(undefined, { transform: numberAttribute });\n\n readonly indentation = input<number, unknown>(undefined, { transform: numberAttribute });\n\n readonly itemSize = input<number, unknown>(undefined, { transform: numberAttribute });\n\n readonly loadingMode = input<string>(undefined!);\n\n tree: Tree = inject(forwardRef(() => Tree));\n\n timeout: any;\n\n isPrevDropPointHovered = signal<boolean>(false);\n\n isNextDropPointHovered = signal<boolean>(false);\n\n isNodeDropHovered = signal<boolean>(false);\n\n isPrevDropPointActive = computed(() => this.isPrevDropPointHovered() && this.isDroppable());\n\n isNextDropPointActive = computed(() => this.isNextDropPointHovered() && this.isDroppable());\n\n isNodeDropActive = computed(() => this.isNodeDropHovered() && this.isNodeDroppable());\n\n dropPosition = computed(() => (this.isPrevDropPointActive() ? -1 : this.isNextDropPointActive() ? 1 : 0));\n\n _componentStyle = inject(TreeStyle);\n\n /**\n * Computed signal that reactively tracks selection state.\n */\n private _selected = computed(() => {\n // Reading selection() makes this computed reactive to selection changes\n this.tree.selection();\n return this.tree.isSelected(<TreeNode>this.node());\n });\n\n /**\n * Computed signal that reactively tracks context menu selection state.\n */\n private _contextMenuSelected = computed(() => {\n const selection = this.tree.contextMenuSelection();\n const n = this.node();\n if (!selection || !n) {\n return false;\n }\n return selection === n || (selection.key && selection.key === n.key);\n });\n\n get selected() {\n return this.tree.selectionMode() === 'single' || this.tree.selectionMode() === 'multiple' ? this._selected() : undefined;\n }\n\n get checked() {\n return this.tree.selectionMode() === 'checkbox' ? this._selected() : undefined;\n }\n\n get nodeClass() {\n return this.tree._componentStyle.classes.node({ instance: this });\n }\n\n get selectable() {\n return this.node()?.selectable === false ? false : this.tree?.selectionMode() != null;\n }\n\n get subNodes(): TreeNode[] | undefined {\n const n = this.node();\n return n?.parent ? n.parent.children : this.tree.value();\n }\n\n getPTOptions(key: string) {\n return this.ptm(key, {\n context: {\n node: this.node(),\n index: this.index(),\n expanded: this.node()?.expanded,\n selected: this.selected,\n checked: this.checked,\n partialChecked: this.node()?.partialSelected,\n leaf: this.isLeaf()\n }\n });\n }\n\n onInit() {\n (<TreeNode>this.node()).parent = this.parentNode();\n const nativeElement = this.tree.el.nativeElement;\n const pDialogWrapper = nativeElement.closest('h-dialog');\n const parentNode = this.parentNode();\n if (parentNode && !pDialogWrapper) {\n this.setAllNodesTabIndexes();\n this.tree.syncNodeOption(<TreeNode>this.node(), <TreeNode<any>[]>this.tree.value(), 'parent', this.tree.getNodeWithKey(<string>parentNode.key, <TreeNode<any>[]>this.tree.value()));\n }\n }\n\n getIcon() {\n let icon: string | undefined;\n\n if ((<TreeNode>this.node()).icon) icon = (<TreeNode>this.node()).icon as string;\n else icon = (<TreeNode>this.node()).expanded && (<TreeNode>this.node()).children && (<TreeNode>this.node()).children?.length ? (<TreeNode>this.node()).expandedIcon : (<TreeNode>this.node()).collapsedIcon;\n\n return UITreeNode.ICON_CLASS + ' ' + icon + ' h-tree-node-icon';\n }\n\n isLeaf() {\n return this.tree.isNodeLeaf(<TreeNode>this.node());\n }\n\n isSelected() {\n return this._selected();\n }\n\n isContextMenuSelected() {\n return this._contextMenuSelected();\n }\n\n isSameNode(event) {\n return event.currentTarget && (event.currentTarget.isSameNode(event.target) || event.currentTarget.isSameNode(event.target.closest('[role=\"treeitem\"]')));\n }\n\n isDraggable() {\n return this.tree.draggableNodes();\n }\n\n isDroppable() {\n return this.tree.droppableNodes() && this.tree.allowDrop(<TreeNode>this.tree.dragNode, <TreeNode>this.node(), this.tree.dragNodeScope);\n }\n\n isNodeDroppable() {\n return (<TreeNode>this.node())?.droppable !== false && this.isDroppable();\n }\n\n isNodeDraggable() {\n return (<TreeNode>this.node())?.draggable !== false && this.isDraggable();\n }\n\n toggle(event: Event) {\n if ((<TreeNode>this.node()).expanded) this.collapse(event);\n else this.expand(event);\n\n event.stopPropagation();\n }\n\n expand(event: Event) {\n (<TreeNode>this.node()).expanded = true;\n if (this.tree.virtualScroll()) {\n this.tree.updateSerializedValue();\n this.focusVirtualNode();\n }\n this.tree.onNodeExpand.emit({ originalEvent: event, node: <TreeNode>this.node() });\n }\n\n collapse(event: Event) {\n (<TreeNode>this.node()).expanded = false;\n if (this.tree.virtualScroll()) {\n this.tree.updateSerializedValue();\n }\n this.tree.onNodeCollapse.emit({ originalEvent: event, node: <TreeNode>this.node() });\n this.focusVirtualNode();\n }\n\n onNodeClick(event: MouseEvent) {\n this.tree.onNodeClick(event, <TreeNode>this.node());\n }\n\n onNodeKeydown(event: KeyboardEvent) {\n if (event.key === 'Enter') {\n this.tree.onNodeClick(event, <TreeNode>this.node());\n }\n }\n\n onNodeTouchEnd() {\n this.tree.onNodeTouchEnd();\n }\n\n onNodeRightClick(event: MouseEvent) {\n this.tree.onNodeRightClick(event, <TreeNode>this.node());\n }\n\n onNodeDblClick(event: MouseEvent) {\n this.tree.onNodeDblClick(event, <TreeNode>this.node());\n }\n\n insertNodeOnDrop() {\n const { dragNode, dragNodeIndex, dragNodeSubNodes } = this.tree;\n const n = this.node();\n\n if (!n || dragNodeIndex == null || !dragNode || !dragNodeSubNodes) {\n return;\n }\n\n const position = this.dropPosition();\n const subNodes = this.subNodes || [];\n const index = this.index() || 0;\n const dropIndex = dragNodeSubNodes === subNodes ? (dragNodeIndex > index ? index : index - 1) : index;\n\n dragNodeSubNodes.splice(dragNodeIndex, 1);\n\n if (position < 0) {\n // insert before a Node\n subNodes.splice(dropIndex, 0, dragNode);\n } else if (position > 0) {\n // insert after a Node\n subNodes.splice(dropIndex + 1, 0, dragNode);\n } else {\n // insert as child of a Node\n n.children = n.children || [];\n n.children.push(dragNode);\n }\n\n this.tree.dragDropService.stopDrag({\n node: dragNode,\n subNodes,\n index: dragNodeIndex\n });\n }\n\n onNodeDrop(event: any) {\n event.preventDefault();\n event.stopPropagation();\n\n if (this.isDroppable()) {\n const { dragNode } = this.tree;\n const position = this.dropPosition();\n const isValidDrop = position !== 0 || (position === 0 && this.isNodeDroppable());\n\n if (isValidDrop) {\n if (this.tree.validateDrop()) {\n this.tree.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: this.node(),\n index: this.index(),\n accept: () => {\n this.insertNodeOnDrop();\n }\n });\n } else {\n this.insertNodeOnDrop();\n this.tree.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: this.node(),\n index: this.index()\n });\n }\n }\n }\n\n this.isPrevDropPointHovered.set(false);\n this.isNextDropPointHovered.set(false);\n this.isNodeDropHovered.set(false);\n }\n\n onNodeDragStart(event: any) {\n if (this.isNodeDraggable()) {\n event.dataTransfer.effectAllowed = 'all';\n event.dataTransfer?.setData('text', 'data');\n\n const target = event.currentTarget as HTMLElement;\n const dragEl = target.cloneNode(true) as HTMLElement;\n const toggler = <HTMLElement>dragEl.querySelector('[data-pc-section=\"nodetogglebutton\"]');\n const checkbox = <HTMLElement>dragEl.querySelector('[data-pc-name=\"pcnodecheckbox\"]');\n\n target.setAttribute('data-h-dragging', 'true');\n dragEl.style.width = getOuterWidth(target) + 'px';\n dragEl.style.height = getOuterHeight(target) + 'px';\n dragEl.setAttribute('data-pc-section', 'drag-image');\n toggler.style.visibility = 'hidden';\n checkbox?.remove();\n document.body.appendChild(dragEl);\n\n event.dataTransfer?.setDragImage(dragEl, 0, 0);\n\n setTimeout(() => document.body.removeChild(dragEl), 0);\n\n this.tree.dragDropService.startDrag({\n tree: this,\n node: this.node(),\n subNodes: this.subNodes,\n index: this.index(),\n scope: this.tree.draggableScope()\n });\n } else {\n event.preventDefault();\n }\n }\n\n onNodeDragOver(event: any) {\n if (this.isDroppable()) {\n event.dataTransfer.dropEffect = 'copy';\n\n const nodeElement = event.currentTarget as HTMLElement;\n const rect = nodeElement.getBoundingClientRect();\n const y = event.clientY - parseInt(rect.top as any);\n\n this.isPrevDropPointHovered.set(false);\n this.isNextDropPointHovered.set(false);\n this.isNodeDropHovered.set(false);\n\n if (y < rect.height * 0.25) {\n this.isPrevDropPointHovered.set(true);\n } else if (y > rect.height * 0.75) {\n this.isNextDropPointHovered.set(true);\n } else if (this.isNodeDroppable()) {\n this.isNodeDropHovered.set(true);\n }\n } else {\n event.dataTransfer.dropEffect = 'none';\n }\n\n if (this.tree.droppableNodes()) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n onNodeDragLeave() {\n this.isPrevDropPointHovered.set(false);\n this.isNextDropPointHovered.set(false);\n this.isNodeDropHovered.set(false);\n }\n\n onNodeDragEnd(event: any) {\n event.currentTarget?.removeAttribute('data-h-dragging');\n\n this.tree.dragDropService.stopDrag({\n node: this.node(),\n subNodes: this.subNodes,\n index: this.index()\n });\n }\n\n onKeyDown(event: KeyboardEvent) {\n const contextMenu = this.tree.contextMenu();\n if (!this.isSameNode(event) || (contextMenu && contextMenu.containerViewChild?.nativeElement.style.display === 'block')) {\n return;\n }\n\n switch (event.code) {\n //down arrow\n case 'ArrowDown':\n this.onArrowDown(event);\n break;\n\n //up arrow\n case 'ArrowUp':\n this.onArrowUp(event);\n break;\n\n //right arrow\n case 'ArrowRight':\n this.onArrowRight(event);\n break;\n\n //left arrow\n case 'ArrowLeft':\n this.onArrowLeft(event);\n break;\n\n //enter\n case 'Enter':\n case 'Space':\n case 'NumpadEnter':\n this.onEnter(event);\n break;\n //tab\n case 'Tab':\n this.setAllNodesTabIndexes();\n break;\n\n default:\n //no op\n break;\n }\n }\n\n onArrowUp(event: KeyboardEvent) {\n const nodeElement = (<HTMLDivElement>event.target).getAttribute('data-pc-section') === 'nodetogglebutton' ? (<HTMLDivElement>event.target).closest('[role=\"treeitem\"]') : (<HTMLDivElement>event.target).parentElement;\n\n if (nodeElement?.previousElementSibling) {\n this.focusRowChange(nodeElement, nodeElement.previousElementSibling, this.findLastVisibleDescendant(nodeElement.previousElementSibling));\n } else {\n let parentNodeElement = this.getParentNodeElement(nodeElement!);\n\n if (parentNodeElement) {\n this.focusRowChange(nodeElement, parentNodeElement);\n }\n }\n\n event.preventDefault();\n }\n\n onArrowDown(event: KeyboardEvent) {\n const nodeElement = (<HTMLDivElement>event.target).getAttribute('data-pc-section') === 'nodetogglebutton' ? (<HTMLDivElement>event.target).closest('[role=\"treeitem\"]') : <HTMLDivElement>event.target;\n const listElement = nodeElement?.children[1];\n\n if (listElement && listElement.children.length > 0) {\n this.focusRowChange(nodeElement, listElement.children[0]);\n } else {\n if (nodeElement?.parentElement?.nextElementSibling) {\n this.focusRowChange(nodeElement, nodeElement.parentElement.nextElementSibling);\n } else {\n let nextSiblingAncestor = this.findNextSiblingOfAncestor(nodeElement?.parentElement!);\n\n if (nextSiblingAncestor) {\n this.focusRowChange(nodeElement, nextSiblingAncestor);\n }\n }\n }\n event.preventDefault();\n }\n\n onArrowRight(event: KeyboardEvent) {\n if (!this.node()?.expanded && !this.tree.isNodeLeaf(<TreeNode>this.node())) {\n this.expand(event);\n (<HTMLDivElement>event.currentTarget).tabIndex = -1;\n\n setTimeout(() => {\n this.onArrowDown(event);\n }, 1);\n }\n event.preventDefault();\n }\n\n onArrowLeft(event: KeyboardEvent) {\n const nodeElement = (<HTMLDivElement>event.target).getAttribute('data-pc-section') === 'nodetogglebutton' ? (<HTMLDivElement>event.target).closest('[role=\"treeitem\"]') : <HTMLDivElement>event.target;\n\n if (this.level() === 0 && !this.node()?.expanded) {\n return false;\n }\n\n if (this.node()?.expanded) {\n this.collapse(event);\n return;\n }\n\n let parentNodeElement = this.getParentNodeElement(nodeElement?.parentElement!);\n\n if (parentNodeElement) {\n this.focusRowChange(event.currentTarget, parentNodeElement);\n }\n\n event.preventDefault();\n }\n\n onEnter(event: KeyboardEvent) {\n this.tree.onNodeClick(event, <TreeNode>this.node());\n this.setTabIndexForSelectionMode(event, this.tree.nodeTouched);\n event.preventDefault();\n }\n\n setAllNodesTabIndexes() {\n const nodes = <any>find(this.tree.el.nativeElement, '[data-pc-section=\"node\"]');\n\n const hasSelectedNode = [...nodes].some((node) => node.getAttribute('aria-selected') === 'true' || node.getAttribute('aria-checked') === 'true');\n\n [...nodes].forEach((node) => {\n node.tabIndex = -1;\n });\n\n if (hasSelectedNode) {\n const selectedNodes = [...nodes].filter((node) => node.getAttribute('aria-selected') === 'true' || node.getAttribute('aria-checked') === 'true');\n\n selectedNodes[0].tabIndex = 0;\n\n return;\n }\n\n if (nodes.length) {\n ([...nodes][0] as any).tabIndex = 0;\n }\n }\n\n setTabIndexForSelectionMode(event, nodeTouched) {\n if (this.tree.selectionMode() !== null) {\n const elements = [...find(this.tree.el.nativeElement, '[role=\"treeitem\"]')];\n\n event.currentTarget.tabIndex = nodeTouched === false ? -1 : 0;\n\n if (elements.every((element: any) => element.tabIndex === -1)) {\n (elements[0] as any).tabIndex = 0;\n }\n }\n }\n\n findNextSiblingOfAncestor(nodeElement: any): any {\n let parentNodeElement = this.getParentNodeElement(nodeElement);\n\n if (parentNodeElement) {\n if (parentNodeElement.nextElementSibling) return parentNodeElement.nextElementSibling;\n else return this.findNextSiblingOfAncestor(parentNodeElement);\n } else {\n return null;\n }\n }\n\n findLastVisibleDescendant(nodeElement: any): any {\n const listElement = <HTMLElement>Array.from(nodeElement.children).find((el: any) => el.getAttribute('data-pc-section') === 'node');\n const childrenListElement = listElement?.children[1];\n if (childrenListElement && childrenListElement.children.length > 0) {\n const lastChildElement = childrenListElement.children[childrenListElement.children.length - 1];\n\n return this.findLastVisibleDescendant(lastChildElement);\n } else {\n return nodeElement;\n }\n }\n\n getParentNodeElement(nodeElement: HTMLElement | Element) {\n const parentNodeElement = nodeElement.parentElement?.parentElement?.parentElement;\n\n return parentNodeElement?.tagName === 'P-TREENODE' ? parentNodeElement : null;\n }\n\n focusNode(element: any) {\n (element.children[0] as HTMLElement).focus();\n }\n\n focusRowChange(firstFocusableRow, currentFocusedRow, lastVisibleDescendant?) {\n firstFocusableRow.tabIndex = '-1';\n currentFocusedRow.children[0].tabIndex = '0';\n\n this.focusNode(lastVisibleDescendant || currentFocusedRow);\n }\n\n focusVirtualNode() {\n this.timeout = setTimeout(() => {\n let node = <any>findSingle(this.tree?.contentViewChild()?.nativeElement, `[data-id=\"${<TreeNode>this.node()?.key ?? <TreeNode>this.node()?.data}\"]`);\n focus(node);\n }, 1);\n }\n}\n/**\n * Tree is used to display hierarchical data.\n * @group Components\n */\n@Component({\n selector: 'h-tree',\n standalone: true,\n imports: [CommonModule, Scroller, SharedModule, SearchIcon, SpinnerIcon, InputText, FormsModule, IconField, InputIcon, UITreeNode, AutoFocusModule, Bind],\n templateUrl: './tree.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [TreeStyle, { provide: TREE_INSTANCE, useExisting: Tree }, { provide: PARENT_INSTANCE, useExisting: Tree }],\n host: {\n '[class]': \"cn(cx('root'), styleClass())\",\n '[attr.data-h]': 'containerDataP',\n '(drop)': 'handleDropEvent($event)',\n '(dragover)': 'handleDragOverEvent($event)',\n '(dragenter)': 'handleDragEnterEvent()',\n '(dragleave)': 'handleDragLeaveEvent($event)'\n },\n hostDirectives: [Bind]\n})\nexport class Tree extends BaseComponent<TreePassThrough> implements BlockableUI {\n componentName = 'Tree';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n $pcTree: Tree | undefined = inject(TREE_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n onAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n /**\n * An array of treenodes.\n * @group Props\n */\n readonly value = model<TreeNode<any> | TreeNode<any>[] | any[] | any>(undefined);\n /**\n * Defines the selection mode.\n * @group Props\n */\n readonly selectionMode = model<'single' | 'multiple' | 'checkbox' | null | undefined>(undefined);\n /**\n * Loading mode display.\n * @group Props\n */\n readonly loadingMode = input<'mask' | 'icon'>('mask');\n /**\n * A single treenode instance or an array to refer to the selections.\n * @group Props\n */\n selection = model<TreeNode<any> | TreeNode<any>[] | null | undefined>(null);\n /**\n * Style class of the component.\n * @deprecated since v20.0.0, use `class` instead.\n * @group Props\n */\n readonly styleClass = input<string>();\n /**\n * Context menu instance.\n * @group Props\n */\n readonly contextMenu = input<any>();\n /**\n * Defines the behavior of context menu selection, in \"separate\" mode context menu updates contextMenuSelection property whereas in joint mode selection property is used instead so that when row selection is enabled, both row selection and context menu selection use the same property.\n * @group Props\n */\n readonly contextMenuSelectionMode = input<'separate' | 'joint'>('joint');\n /**\n * Selected node with a context menu.\n * @group Props\n */\n contextMenuSelection = model<TreeNode<any> | null>(null);\n /**\n * Scope of the draggable nodes to match a droppableScope.\n * @group Props\n */\n readonly draggableScope = input<any>();\n /**\n * Scope of the droppable nodes to match a droppableScope.\n * @group Props\n */\n readonly droppableScope = input<any>();\n /**\n * Whether the nodes are draggable.\n * @group Props\n */\n readonly draggableNodes = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n /**\n * Whether the nodes are droppable.\n * @group Props\n */\n readonly droppableNodes = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n /**\n * Defines how multiple items can be selected, when true metaKey needs to be pressed to select or unselect an item and when set to false selection of each item can be toggled individually. On touch enabled devices, metaKeySelection is turned off automatically.\n * @group Props\n */\n readonly metaKeySelection = input<boolean, unknown>(false, { transform: booleanAttribute });\n /**\n * Whether checkbox selections propagate to ancestor nodes.\n * @group Props\n */\n readonly propagateSelectionUp = input<boolean, unknown>(true, { transform: booleanAttribute });\n /**\n * Whether checkbox selections propagate to descendant nodes.\n * @group Props\n */\n readonly propagateSelectionDown = input<boolean, unknown>(true, { transform: booleanAttribute });\n /**\n * Displays a loader to indicate data load is in progress.\n * @group Props\n */\n readonly loading = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n /**\n * The icon to show while indicating data load is in progress.\n * @group Props\n */\n readonly loadingIcon = input<string | undefined>(undefined);\n /**\n * Text to display when there is no data.\n * @group Props\n */\n readonly emptyMessage = input<string>('');\n /**\n * Used to define a string that labels the tree.\n * @group Props\n */\n readonly ariaLabel = input<string>();\n /**\n * Defines a string that labels the toggler icon for accessibility.\n * @group Props\n */\n readonly togglerAriaLabel = input<string>();\n /**\n * Establishes relationships between the component and label(s) where its value should be one or more element IDs.\n * @group Props\n */\n readonly ariaLabelledBy = input<string>();\n /**\n * When enabled, drop can be accepted or rejected based on condition defined at onNodeDrop.\n * @group Props\n */\n readonly validateDrop = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n /**\n * When specified, displays an input field to filter the items.\n * @group Props\n */\n readonly filter = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n /**\n * Determines whether the filter input should be automatically focused when the component is rendered.\n * @group Props\n */\n readonly filterInputAutoFocus = input<boolean, unknown>(false, { transform: booleanAttribute });\n /**\n * When filtering is enabled, filterBy decides which field or fields (comma separated) to search against.\n * @group Props\n */\n readonly filterBy = input<string>('label');\n /**\n * Mode for filtering valid values are \"lenient\" and \"strict\". Default is lenient.\n * @group Props\n */\n readonly filterMode = input<string>('lenient');\n /**\n * Mode for filtering valid values are \"lenient\" and \"strict\". Default is lenient.\n * @group Props\n */\n readonly filterOptions = model<any>(undefined);\n /**\n * Placeholder text to show when filter input is empty.\n * @group Props\n */\n readonly filterPlaceholder = input<string>();\n /**\n * Values after the tree nodes are filtered.\n * @group Props\n */\n readonly filteredNodes = model<TreeNode<any>[] | undefined | null>(undefined);\n /**\n * Locale to use in filtering. The default locale is the host environment's current locale.\n * @group Props\n */\n readonly filterLocale = input<string>();\n /**\n * Height of the scrollable viewport.\n * @group Props\n */\n readonly scrollHeight = input<string>();\n /**\n * Defines if data is loaded and interacted with in lazy manner.\n * @group Props\n */\n readonly lazy = input<boolean, unknown>(false, { transform: booleanAttribute });\n /**\n * Whether the data should be loaded on demand during scroll.\n * @group Props\n */\n readonly virtualScroll = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n /**\n * Height of an item in the list for VirtualScrolling.\n * @group Props\n */\n readonly virtualScrollItemSize = input<number, unknown>(undefined, { transform: numberAttribute });\n /**\n * Whether to use the scroller feature. The properties of scroller component can be used like an object in it.\n * @group Props\n */\n readonly virtualScrollOptions = input<ScrollerOptions>();\n /**\n * Indentation factor for spacing of the nested node when virtual scrolling is enabled.\n * @group Props\n */\n readonly indentation = input<number, unknown>(1.5, { transform: numberAttribute });\n /**\n * Custom templates of the component.\n * @group Props\n */\n readonly _templateMap = model<any>(undefined);\n /**\n * Function to optimize the node list rendering, default algorithm checks for object identity.\n * @group Props\n */\n readonly trackBy = input<Function>((index: number, item: any) => item);\n /**\n * Highlights the node on select.\n * @group Props\n */\n readonly highlightOnSelect = input<boolean, unknown>(false, { transform: booleanAttribute });\n /**\n * Callback to invoke when a node is selected.\n * @param {TreeNodeSelectEvent} event - Node select event.\n * @group Emits\n */\n readonly onNodeSelect = output<TreeNodeSelectEvent>();\n /**\n * Callback to invoke when a node is unselected.\n * @param {TreeNodeUnSelectEvent} event - Node unselect event.\n * @group Emits\n */\n readonly onNodeUnselect = output<TreeNodeUnSelectEvent>();\n /**\n * Callback to invoke when a node is expanded.\n * @param {TreeNodeExpandEvent} event - Node expand event.\n * @group Emits\n */\n readonly onNodeExpand = output<TreeNodeExpandEvent>();\n /**\n * Callback to invoke when a node is collapsed.\n * @param {TreeNodeCollapseEvent} event - Node collapse event.\n * @group Emits\n */\n readonly onNodeCollapse = output<TreeNodeCollapseEvent>();\n /**\n * Callback to invoke when a node is selected with right click.\n * @param {onNodeContextMenuSelect} event - Node context menu select event.\n * @group Emits\n */\n readonly onNodeContextMenuSelect = output<TreeNodeContextMenuSelectEvent>();\n /**\n * Callback to invoke when a node is double clicked.\n * @param {TreeNodeDoubleClickEvent} event - Node double click event.\n * @group Emits\n */\n readonly onNodeDoubleClick = output<TreeNodeDoubleClickEvent>();\n /**\n * Callback to invoke when a node is dropped.\n * @param {TreeNodeDropEvent} event - Node drop event.\n * @group Emits\n */\n readonly onNodeDrop = output<TreeNodeDropEvent>();\n /**\n * Callback to invoke in lazy mode to load new data.\n * @param {TreeLazyLoadEvent} event - Custom lazy load event.\n * @group Emits\n */\n readonly onLazyLoad = output<TreeLazyLoadEvent>();\n /**\n * Callback to invoke in virtual scroll mode when scroll position changes.\n * @param {TreeScrollEvent} event - Custom scroll event.\n * @group Emits\n */\n readonly onScroll = output<TreeScrollEvent>();\n /**\n * Callback to invoke in virtual scroll mode when scroll position and item's range in view changes.\n * @param {TreeScrollIndexChangeEvent} event - Scroll index change event.\n * @group Emits\n */\n readonly onScrollIndexChange = output<TreeScrollIndexChangeEvent>();\n /**\n * Callback to invoke when data is filtered.\n * @param {TreeFilterEvent} event - Custom filter event.\n * @group Emits\n */\n readonly onFilter = output<TreeFilterEvent>();\n /**\n * Custom filter template.\n * @param {TreeFilterTemplateContext} context - filter context.\n * @see {@link TreeFilterTemplateContext}\n * @group Templates\n */\n readonly filterTemplate = contentChild<TemplateRef<TreeFilterTemplateContext>>('filter', { descendants: false });\n /**\n * Custom node template.\n * @group Templates\n */\n readonly nodeTemplate = contentChild<TemplateRef<any>>('node', { descendants: false });\n /**\n * Custom header template.\n * @group Templates\n */\n readonly headerTemplate = contentChild<TemplateRef<void>>('header', { descendants: false });\n /**\n * Custom footer template.\n * @group Templates\n */\n readonly footerTemplate = contentChild<TemplateRef<void>>('footer', { descendants: false });\n /**\n * Custom loader template.\n * @param {TreeLoaderTemplateContext} context - loader context.\n * @see {@link TreeLoaderTemplateContext}\n * @group Templates\n */\n readonly loaderTemplate = contentChild<TemplateRef<TreeLoaderTemplateContext>>('loader', { descendants: false });\n /**\n * Custom empty message template.\n * @group Templates\n */\n readonly emptyTemplate = contentChild<TemplateRef<void>>('empty', { descendants: false });\n /**\n * Custom toggler icon template.\n * @param {TreeTogglerIconTemplateContext} context - toggler icon context.\n * @see {@link TreeTogglerIconTemplateContext}\n * @group Templates\n */\n readonly togglerIconTemplate = contentChild<TemplateRef<TreeTogglerIconTemplateContext>>('togglericon', { descendants: false });\n /**\n * Custom checkbox icon template.\n * @param {TreeCheckboxIconTemplateContext} context - checkbox icon context.\n * @see {@link TreeCheckboxIconTemplateContext}\n * @group Templates\n */\n readonly checkboxIconTemplate = contentChild<TemplateRef<TreeCheckboxIconTemplateContext>>('checkboxicon', { descendants: false });\n /**\n * Custom loading icon template.\n * @group Templates\n */\n readonly loadingIconTemplate = contentChild<TemplateRef<void>>('loadingicon', { descendants: false });\n /**\n * Custom filter icon template.\n * @group Templates\n */\n readonly filterIconTemplate = contentChild<TemplateRef<void>>('filtericon', { descendants: false });\n\n readonly filterViewChild = viewChild<ElementRef>('filter');\n\n readonly scroller = viewChild<Scroller>('scroller');\n\n readonly wrapperViewChild = viewChild<ElementRef>('wrapper');\n\n readonly contentViewChild = viewChild<ElementRef>('content');\n\n readonly templates = contentChildren(HelixTemplate);\n\n _headerTemplate: TemplateRef<void> | undefined;\n\n _emptyTemplate: TemplateRef<void> | undefined;\n\n _footerTemplate: TemplateRef<void> | undefined;\n\n _loaderTemplate: TemplateRef<TreeLoaderTemplateContext> | undefined;\n\n _togglerIconTemplate: TemplateRef<TreeTogglerIconTemplateContext> | undefined;\n\n _checkboxIconTemplate: TemplateRef<TreeCheckboxIconTemplateContext> | undefined;\n\n _loadingIconTemplate: TemplateRef<void> | undefined;\n\n _filterIconTemplate: TemplateRef<void> | undefined;\n\n _filterTemplate: TemplateRef<TreeFilterTemplateContext> | undefined;\n\n onAfterContentInit() {\n const map: any = {};\n this.templates().forEach((item) => {\n switch (item.getType()) {\n case 'header':\n this._headerTemplate = item.template;\n break;\n\n case 'empty':\n this._emptyTemplate = item.template;\n break;\n\n case 'footer':\n this._footerTemplate = item.template;\n break;\n\n case 'loader':\n this._loaderTemplate = item.template;\n break;\n\n case 'togglericon':\n this._togglerIconTemplate = item.template;\n break;\n\n case 'checkboxicon':\n this._checkboxIconTemplate = item.template;\n break;\n\n case 'loadingicon':\n this._loadingIconTemplate = item.template;\n break;\n\n case 'filtericon':\n this._filterIconTemplate = item.template;\n break;\n\n case 'filter':\n this._filterTemplate = item.template;\n break;\n\n default:\n map[<any>item.name()] = item.template;\n break;\n }\n });\n if (Object.keys(map).length) {\n this._templateMap.set(map);\n }\n }\n\n serializedValue: Nullable<TreeNode<any>[]>;\n\n public nodeTouched: boolean | undefined | null;\n\n public dragNodeTree: Tree | undefined | null;\n\n public dragNode: TreeNode<any> | undefined | null;\n\n public dragNodeSubNodes: TreeNode<any>[] | undefined | null;\n\n public dragNodeIndex: number | undefined | null;\n\n public dragNodeScope: any;\n\n public dragHover: boolean | undefined | null;\n\n public dragStartSubscription: Subscription | undefined | null;\n\n public dragStopSubscription: Subscription | undefined | null;\n\n _componentStyle = inject(TreeStyle);\n\n handleDropEvent(event: DragEvent) {\n this.onDrop(event);\n }\n\n handleDragOverEvent(event: DragEvent) {\n this.onDragOver(event);\n }\n\n handleDragEnterEvent() {\n this.onDragEnter();\n }\n\n handleDragLeaveEvent(event: DragEvent) {\n this.onDragLeave(event);\n }\n\n constructor(@Optional() public dragDropService: TreeDragDropService) {\n super();\n }\n\n onInit() {\n if (this.filterBy()) {\n this.filterOptions.set({\n filter: (value) => this._filter(value),\n reset: () => this.resetFilter()\n });\n }\n if (this.droppableNodes()) {\n this.dragStartSubscription = this.dragDropService.dragStart$.subscribe((event) => {\n this.dragNodeTree = event.tree;\n this.dragNode = event.node;\n this.dragNodeSubNodes = event.subNodes;\n this.dragNodeIndex = event.index;\n this.dragNodeScope = event.scope;\n });\n\n this.dragStopSubscription = this.dragDropService.dragStop$.subscribe((event) => {\n this.dragNodeTree = null;\n this.dragNode = null;\n this.dragNodeSubNodes = null;\n this.dragNodeIndex = null;\n this.dragNodeScope = null;\n this.dragHover = false;\n });\n }\n }\n\n onChanges(simpleChange: SimpleChanges) {\n if (simpleChange.value) {\n this.updateSerializedValue();\n if (this.hasFilterActive()) {\n this._filter(this.filterViewChild()?.nativeElement?.value);\n }\n }\n }\n\n get emptyMessageLabel(): string {\n return this.emptyMessage() || this.config.getTranslation(TranslationKeys.EMPTY_MESSAGE);\n }\n\n updateSerializedValue() {\n this.serializedValue = [];\n this.serializeNodes(null, this.getRootNode(), 0, true);\n }\n\n serializeNodes(parent: TreeNode<any> | null, nodes: TreeNode<any>[] | any, level: number, visible: boolean) {\n if (nodes && nodes.length) {\n for (let node of nodes) {\n node.parent = parent;\n const rowNode = {\n node: node,\n parent: parent,\n level: level,\n visible: visible && (parent ? parent.expanded : true)\n };\n (this.serializedValue as TreeNode<any>[]).push(<TreeNode>rowNode);\n\n if (rowNode.visible && node.expanded) {\n this.serializeNodes(node, node.children, level + 1, rowNode.visible);\n }\n }\n }\n }\n\n onNodeClick(event: Event, node: TreeNode) {\n let eventTarget = <Element>event.target;\n const section = eventTarget?.getAttribute?.('data-pc-section');\n if (section === 'nodetogglebutton' || section === 'nodetoggleicon') {\n return;\n }\n\n if (this.selectionMode()) {\n if (node.selectable === false) {\n node.style = '--h-focus-ring-color: none;';\n return;\n } else {\n if (!node.style?.includes('--h-focus-ring-color')) {\n node.style = node.style ? `${node.style}--h-focus-ring-color: var(--primary-color)` : '--h-focus-ring-color: var(--primary-color)';\n }\n }\n\n if (this.hasFilteredNodes()) {\n node = this.getNodeWithKey(<string>node.key, <TreeNode<any>[]>this.filteredNodes()) as TreeNode;\n if (!node) {\n return;\n }\n }\n\n let index = this.findIndexInSelection(node);\n let selected = index >= 0;\n const currentSelection = this.selection();\n\n if (this.isCheckboxSelectionMode()) {\n if (selected) {\n if (this.propagateSelectionDown()) this.propagateDown(node, false);\n else this.selection.set((currentSelection as TreeNode[]).filter((_val: TreeNode, i: number) => i != index));\n\n if (this.propagateSelectionUp() && node.parent) {\n this.propagateUp(node.parent, false);\n }\n\n this.onNodeUnselect.emit({ originalEvent: event, node: node });\n } else {\n if (this.propagateSelectionDown()) this.propagateDown(node, true);\n else this.selection.set([...((currentSelection as TreeNode[]) || []), node]);\n\n if (this.propagateSelectionUp() && node.parent) {\n this.propagateUp(node.parent, true);\n }\n\n this.onNodeSelect.emit({ originalEvent: event, node: node });\n }\n } else {\n let metaSelection = this.nodeTouched ? false : this.metaKeySelection();\n\n if (metaSelection) {\n let metaKey = (<KeyboardEvent>event).metaKey || (<KeyboardEvent>event).ctrlKey;\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n this.selection.set(null);\n } else {\n this.selection.set((currentSelection as TreeNode[]).filter((_val: TreeNode, i: number) => i != index));\n }\n\n this.onNodeUnselect.emit({ originalEvent: event, node: node });\n } else {\n if (this.isSingleSelectionMode()) {\n this.selection.set(node);\n } else if (this.isMultipleSelectionMode()) {\n const base = !metaKey ? [] : (currentSelection as TreeNode[]) || [];\n this.selection.set([...base, node]);\n }\n\n this.onNodeSelect.emit({ originalEvent: event, node: node });\n }\n } else {\n if (this.isSingleSelectionMode()) {\n if (selected) {\n this.selection.set(null);\n this.onNodeUnselect.emit({ originalEvent: event, node: node });\n } else {\n this.selection.set(node);\n setTimeout(() => {\n this.onNodeSelect.emit({ originalEvent: event, node: node });\n });\n }\n } else {\n if (selected) {\n this.selection.set((currentSelection as TreeNode[]).filter((_val: TreeNode, i: number) => i != index));\n this.onNodeUnselect.emit({ originalEvent: event, node: node });\n } else {\n this.selection.set([...((currentSelection as TreeNode[]) || []), node]);\n setTimeout(() => {\n this.onNodeSelect.emit({ originalEvent: event, node: node });\n });\n }\n }\n }\n }\n }\n\n this.nodeTouched = false;\n }\n\n onNodeTouchEnd() {\n this.nodeTouched = true;\n }\n\n onNodeRightClick(event: MouseEvent, node: TreeNode<any>) {\n if (this.contextMenu()) {\n let eventTarget = <Element>event.target;\n const section = eventTarget.getAttribute('data-pc-section');\n\n if (section === 'nodetogglebutton' || section === 'nodetoggleicon') {\n return;\n }\n\n let index = this.findIndexInSelection(node);\n let isNodeSelected = index >= 0;\n\n const onContextMenuCallback = () => {\n this.contextMenu().show(event);\n this.contextMenu().hideCallback = () => {\n this.contextMenuSelection.set(null);\n };\n\n this.onNodeContextMenuSelect.emit({ originalEvent: event, node: node });\n };\n\n const contextMenuSelectionMode = this.contextMenuSelectionMode();\n if (contextMenuSelectionMode === 'separate') {\n // In 'separate' mode: Update contextMenuSelection with clicked node, don't modify selection\n this.contextMenuSelection.set(node);\n onContextMenuCallback();\n } else if (contextMenuSelectionMode === 'joint') {\n // In 'joint' mode: Update only selection, don't touch contextMenuSelection\n if (!isNodeSelected) {\n if (this.isSingleSelectionMode()) {\n this.selection.set(node);\n } else {\n this.selection.set([node]);\n }\n }\n // If already selected, keep current selection as is\n\n onContextMenuCallback();\n }\n }\n }\n\n onNodeDblClick(event: MouseEvent, node: TreeNode<any>) {\n this.onNodeDoubleClick.emit({ originalEvent: event, node: node });\n }\n\n findIndexInSelection(node: TreeNode) {\n let index: number = -1;\n const currentSelection = this.selection();\n if (this.selectionMode() && currentSelection) {\n if (this.isSingleSelectionMode()) {\n const sel = currentSelection as TreeNode;\n let areNodesEqual = (sel.key && sel.key === node.key) || sel == node;\n index = areNodesEqual ? 0 : -1;\n } else {\n const selArray = currentSelection as TreeNode[];\n for (let i = 0; i < selArray.length; i++) {\n let selectedNode = selArray[i];\n let areNodesEqual = (selectedNode.key && selectedNode.key === node.key) || selectedNode == node;\n if (areNodesEqual) {\n index = i;\n break;\n }\n }\n }\n }\n\n return index;\n }\n\n syncNodeOption(node: TreeNode, parentNodes: TreeNode<any>[], option: any, value?: any) {\n // to synchronize the node option between the filtered nodes and the original nodes(this.value)\n const _node = this.hasFilteredNodes() ? this.getNodeWithKey(<string>node.key, parentNodes) : null;\n if (_node) {\n (<any>_node)[option] = value || (<any>node)[option];\n }\n }\n\n hasFilteredNodes() {\n const filtered = this.filteredNodes();\n return this.filter() && filtered && filtered.length > 0;\n }\n\n hasFilterActive() {\n return this.filter() && this.filterViewChild()?.nativeElement?.value.length > 0;\n }\n\n getNodeWithKey(key: string, nodes: TreeNode<any>[]): TreeNode<any> | undefined {\n for (let node of nodes) {\n if (node.key === key) {\n return node;\n }\n\n if (node.children) {\n let matchedNode = this.getNodeWithKey(key, node.children);\n if (matchedNode) {\n return matchedNode;\n }\n }\n }\n }\n\n propagateUp(node: TreeNode, select: boolean) {\n if (node.children && node.children.length) {\n let selectedCount: number = 0;\n let childPartialSelected: boolean = false;\n for (let child of node.children) {\n if (this.isSelected(child)) {\n selectedCount++;\n } else if (child.partialSelected) {\n childPartialSelected = true;\n }\n }\n\n const currentSelection = (this.selection() as TreeNode[]) || [];\n if (select && selectedCount == node.children.length) {\n this.selection.set([...currentSelection, node]);\n node.partialSelected = false;\n } else {\n if (!select) {\n let index = this.findIndexInSelection(node);\n if (index >= 0) {\n this.selection.set(currentSelection.filter((_val: TreeNode, i: number) => i != index));\n }\n }\n\n if (childPartialSelected || (selectedCount > 0 && selectedCount != node.children.length)) node.partialSelected = true;\n else node.partialSelected = false;\n }\n\n this.syncNodeOption(node, <TreeNode<any>[]>this.filteredNodes(), 'partialSelected');\n }\n\n let parent = node.parent;\n if (parent) {\n this.propagateUp(parent, select);\n }\n }\n\n propagateDown(node: TreeNode, select: boolean) {\n let index = this.findIndexInSelection(node);\n const currentSelection = (this.selection() as TreeNode[]) || [];\n\n if (select && index == -1) {\n this.selection.set([...currentSelection, node]);\n } else if (!select && index > -1) {\n this.selection.set(currentSelection.filter((_val: TreeNode, i: number) => i != index));\n }\n\n node.partialSelected = false;\n\n this.syncNodeOption(node, <TreeNode<any>[]>this.filteredNodes(), 'partialSelected');\n\n if (node.children && node.children.length) {\n for (let child of node.children) {\n this.propagateDown(child, select);\n }\n }\n }\n\n isSelected(node: TreeNode) {\n return this.findIndexInSelection(node) != -1;\n }\n\n isSingleSelectionMode() {\n return this.selectionMode() && this.selectionMode() == 'single';\n }\n\n isMultipleSelectionMode() {\n return this.selectionMode() && this.selectionMode() == 'multiple';\n }\n\n isCheckboxSelectionMode() {\n return this.selectionMode() && this.selectionMode() == 'checkbox';\n }\n\n isNodeLeaf(node: TreeNode): boolean {\n return node.leaf == false ? false : !(node.children && node.children.length);\n }\n\n getRootNode() {\n return this.filteredNodes() ? this.filteredNodes() : this.value();\n }\n\n getTemplateForNode(node: TreeNode): TemplateRef<any> | null {\n if (this._templateMap()) return node.type ? this._templateMap()[node.type] : this._templateMap()['default'];\n else return null;\n }\n\n onDragOver(event: DragEvent) {\n if (this.droppableNodes() && this.allowDrop(<TreeNode>this.dragNode, null, this.dragNodeScope)) {\n (<any>event).dataTransfer.dropEffect = 'copy';\n event.preventDefault();\n }\n }\n\n onDrop(event: DragEvent) {\n if (this.droppableNodes()) {\n event.preventDefault();\n let dragNode = this.dragNode as TreeNode;\n\n if (this.isSameTreeScope(this.dragNodeScope)) {\n return;\n }\n\n if (this.allowDrop(dragNode, null, this.dragNodeScope)) {\n let dragNodeIndex = <number>this.dragNodeIndex;\n this.value.update(v => v || []);\n\n if (this.validateDrop()) {\n this.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: null,\n index: dragNodeIndex,\n accept: () => {\n this.processTreeDrop(dragNode, dragNodeIndex);\n }\n });\n } else {\n this.onNodeDrop.emit({\n originalEvent: event,\n dragNode: dragNode,\n dropNode: null,\n index: dragNodeIndex\n });\n\n this.processTreeDrop(dragNode, dragNodeIndex);\n }\n }\n }\n }\n\n processTreeDrop(dragNode: TreeNode, dragNodeIndex: number) {\n (<TreeNode<any>[]>this.dragNodeSubNodes).splice(dragNodeIndex, 1);\n (this.value() as TreeNode<any>[]).push(dragNode);\n this.dragDropService.stopDrag({\n node: dragNode\n });\n }\n\n onDragEnter() {\n if (this.droppableNodes() && this.allowDrop(<TreeNode>this.dragNode, null, this.dragNodeScope)) {\n this.dragHover = true;\n }\n }\n\n onDragLeave(event: DragEvent) {\n if (this.droppableNodes()) {\n let rect = (event.currentTarget as HTMLElement).getBoundingClientRect();\n if (event.x > parseInt(rect.left as any) + rect.width || event.x < parseInt(rect.left as any) || event.y > parseInt(rect.top as any) + rect.height || event.y < parseInt(rect.top as any)) {\n this.dragHover = false;\n }\n }\n }\n\n allowDrop(dragNode: TreeNode, dropNode: TreeNode<any> | null, dragNodeScope: any): boolean {\n if (!dragNode) {\n //prevent random html elements to be dragged\n return false;\n } else if (this.isValidDragScope(dragNodeScope)) {\n let allow: boolean = true;\n if (dropNode) {\n if (dragNode === dropNode) {\n allow = false;\n } else {\n let parent = dropNode.parent;\n while (parent != null) {\n if (parent === dragNode) {\n allow = false;\n break;\n }\n parent = parent.parent;\n }\n }\n }\n\n return allow;\n } else {\n return false;\n }\n }\n\n hasCommonScope(dragScope: any, dropScope: any): boolean {\n if (typeof dropScope === 'string') {\n if (typeof dragScope === 'string') return dropScope === dragScope;\n else if (Array.isArray(dragScope)) return (<Array<any>>dragScope).indexOf(dropScope) != -1;\n } else if (Array.isArray(dropScope)) {\n if (typeof dragScope === 'string') {\n return (<Array<any>>dropScope).indexOf(dragScope) != -1;\n } else if (Array.isArray(dragScope)) {\n for (let s of dropScope) {\n for (let ds of dragScope) {\n if (s === ds) {\n return true;\n }\n }\n }\n }\n }\n return false;\n }\n\n isSameTreeScope(dragScope: any): boolean {\n return this.hasCommonScope(dragScope, this.draggableScope());\n }\n\n isValidDragScope(dragScope: any): boolean {\n let dropScope = this.droppableScope();\n\n if (dropScope) {\n return this.hasCommonScope(dragScope, dropScope);\n } else {\n return true;\n }\n }\n\n public _filter(value: string) {\n let filterValue = value;\n if (filterValue === '') {\n this.filteredNodes.set(null);\n } else {\n const filtered: TreeNode<any>[] = [];\n const searchFields: string[] = this.filterBy().split(',');\n const filterText = removeAccents(filterValue).toLocaleLowerCase(this.filterLocale());\n const isStrictMode = this.filterMode() === 'strict';\n for (let node of <TreeNode<any>[]>this.value()) {\n let copyNode = { ...node };\n let paramsWithoutNode = { searchFields, filterText, isStrictMode };\n if (\n (isStrictMode && (this.findFilteredNodes(copyNode, paramsWithoutNode) || this.isFilterMatched(copyNode, paramsWithoutNode))) ||\n (!isStrictMode && (this.isFilterMatched(copyNode, paramsWithoutNode) || this.findFilteredNodes(copyNode, paramsWithoutNode)))\n ) {\n filtered.push(copyNode);\n }\n }\n this.filteredNodes.set(filtered);\n }\n\n this.updateSerializedValue();\n this.onFilter.emit({\n filter: filterValue,\n filteredValue: this.filteredNodes()\n });\n }\n\n /**\n * Resets filter.\n * @group Method\n */\n public resetFilter() {\n this.filteredNodes.set(null);\n\n const filterViewChildEl = this.filterViewChild();\n if (filterViewChildEl?.nativeElement) {\n filterViewChildEl.nativeElement.value = '';\n }\n }\n /**\n * Scrolls to virtual index.\n * @param {number} number - Index to be scrolled.\n * @group Method\n */\n public scrollToVirtualIndex(index: number) {\n this.virtualScroll() && this.scroller()?.scrollToIndex(index);\n }\n /**\n * Scrolls to virtual index.\n * @param {ScrollToOptions} options - Scroll options.\n * @group Method\n */\n public scrollTo(options: any) {\n if (this.virtualScroll()) {\n this.scroller()?.scrollTo(options);\n } else {\n const wrapperEl = this.wrapperViewChild();\n if (wrapperEl?.nativeElement) {\n if (wrapperEl.nativeElement.scrollTo) {\n wrapperEl.nativeElement.scrollTo(options);\n } else {\n wrapperEl.nativeElement.scrollLeft = options.left;\n wrapperEl.nativeElement.scrollTop = options.top;\n }\n }\n }\n }\n\n findFilteredNodes(node: TreeNode, paramsWithoutNode: any) {\n if (node) {\n let matched = false;\n if (node.children) {\n let childNodes = [...node.children];\n node.children = [];\n for (let childNode of childNodes) {\n let copyChildNode = { ...childNode };\n if (this.isFilterMatched(copyChildNode, paramsWithoutNode)) {\n matched = true;\n node.children.push(copyChildNode);\n }\n }\n }\n\n if (matched) {\n node.expanded = true;\n return true;\n }\n }\n }\n\n isFilterMatched(node: TreeNode, params: any) {\n let { searchFields, filterText, isStrictMode } = params;\n let matched = false;\n for (let field of searchFields) {\n let fieldValue = removeAccents(String(resolveFieldData(node, field))).toLocaleLowerCase(this.filterLocale());\n if (fieldValue.indexOf(filterText) > -1) {\n matched = true;\n }\n }\n\n if (!matched || (isStrictMode && !this.isNodeLeaf(node))) {\n matched = this.findFilteredNodes(node, { searchFields, filterText, isStrictMode }) || matched;\n }\n\n return matched;\n }\n\n getIndex(options: any, index: number) {\n const getItemOptions = options['getItemOptions'];\n return getItemOptions ? getItemOptions(index).index : index;\n }\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\n }\n\n onDestroy() {\n if (this.dragStartSubscription) {\n this.dragStartSubscription.unsubscribe();\n }\n\n if (this.dragStopSubscription) {\n this.dragStopSubscription.unsubscribe();\n }\n }\n\n get containerDataP() {\n return this.cn({\n loading: this.loading(),\n scrollable: this.scrollHeight() === 'flex'\n });\n }\n\n get wrapperDataP() {\n return this.cn({\n scrollable: this.scrollHeight() === 'flex'\n });\n }\n}\n@NgModule({\n imports: [Tree, SharedModule],\n exports: [Tree, SharedModule]\n})\nexport class TreeModule {}\n","@if (node()) {\n <li\n [class]=\"cn(cx('node'), node().styleClass)\"\n [ngStyle]=\"{ height: itemSize() + 'px' }\"\n [style]=\"node().style\"\n [attr.aria-label]=\"node().label\"\n [attr.aria-checked]=\"checked\"\n [attr.aria-setsize]=\"node().children ? node().children.length : 0\"\n [attr.aria-selected]=\"selected\"\n [attr.aria-expanded]=\"node().expanded\"\n [attr.aria-posinset]=\"index() + 1\"\n [attr.aria-level]=\"level() + 1\"\n [attr.tabindex]=\"index() === 0 ? 0 : -1\"\n [attr.data-id]=\"node().key\"\n role=\"treeitem\"\n (keydown)=\"onKeyDown($event)\"\n [hBind]=\"getPTOptions('node')\"\n >\n @if (isPrevDropPointActive()) {\n <div [class]=\"cx('dropPoint')\" [attr.aria-hidden]=\"true\" [hBind]=\"getPTOptions('dropPoint')\"></div>\n }\n <div\n [class]=\"cx('nodeContent')\"\n [style.paddingLeft]=\"level() * indentation() + 'rem'\"\n (click)=\"onNodeClick($event)\"\n (contextmenu)=\"onNodeRightClick($event)\"\n (dblclick)=\"onNodeDblClick($event)\"\n (touchend)=\"onNodeTouchEnd()\"\n (drop)=\"onNodeDrop($event)\"\n (dragstart)=\"onNodeDragStart($event)\"\n (dragover)=\"onNodeDragOver($event)\"\n (dragleave)=\"onNodeDragLeave($event)\"\n (dragend)=\"onNodeDragEnd($event)\"\n [draggable]=\"tree.draggableNodes()\"\n [hBind]=\"getPTOptions('nodeContent')\"\n >\n <button type=\"button\" [class]=\"cx('nodeToggleButton')\" (click)=\"toggle($event)\" hRipple tabindex=\"-1\" [hBind]=\"getPTOptions('nodeToggleButton')\">\n @if (!tree.togglerIconTemplate() && !tree._togglerIconTemplate) {\n @if (!node().loading) {\n @if (!node().expanded) {\n <svg data-h-icon=\"chevron-right\" [class]=\"cx('nodeToggleIcon')\" [hBind]=\"getPTOptions('nodeToggleIcon')\" />\n }\n @if (node().expanded) {\n <svg data-h-icon=\"chevron-down\" [class]=\"cx('nodeToggleIcon')\" [hBind]=\"getPTOptions('nodeToggleIcon')\" />\n }\n }\n @if (loadingMode() === 'icon' && node().loading) {\n <svg data-h-icon=\"spinner\" [class]=\"cx('nodeToggleIcon')\" spin [hBind]=\"getPTOptions('nodeToggleIcon')\" />\n }\n }\n @if (tree.togglerIconTemplate() || tree._togglerIconTemplate) {\n <span [class]=\"cx('nodeToggleIcon')\" [hBind]=\"getPTOptions('nodeToggleIcon')\">\n <ng-template *ngTemplateOutlet=\"tree.togglerIconTemplate() || tree._togglerIconTemplate; context: { $implicit: node().expanded, loading: node().loading }\"></ng-template>\n </span>\n }\n </button>\n\n @if (tree.selectionMode() == 'checkbox') {\n <h-checkbox\n [ngModel]=\"isSelected()\"\n [styleClass]=\"cx('nodeCheckbox')\"\n [binary]=\"true\"\n [indeterminate]=\"node().partialSelected\"\n [disabled]=\"node().selectable === false\"\n [variant]=\"tree?.config.inputStyle() === 'filled' || tree?.config.inputVariant() === 'filled' ? 'filled' : 'outlined'\"\n [attr.data-h-partialchecked]=\"node().partialSelected\"\n [tabindex]=\"-1\"\n (click)=\"$event.preventDefault()\"\n [pt]=\"getPTOptions('pcNodeCheckbox')\"\n [unstyled]=\"unstyled()\"\n >\n @if (tree.checkboxIconTemplate() || tree._checkboxIconTemplate) {\n <ng-template #icon>\n <ng-template\n *ngTemplateOutlet=\"\n tree.checkboxIconTemplate() || tree._checkboxIconTemplate;\n context: {\n $implicit: isSelected(),\n partialSelected: node().partialSelected,\n class: cx('nodeCheckbox')\n }\n \"\n ></ng-template>\n </ng-template>\n }\n </h-checkbox>\n }\n\n @if (node().icon || node().expandedIcon || node().collapsedIcon) {\n <span [class]=\"getIcon()\" [hBind]=\"getPTOptions('nodeIcon')\"></span>\n }\n <span [class]=\"cx('nodeLabel')\" [hBind]=\"getPTOptions('nodeLabel')\">\n @if (!tree.getTemplateForNode(node())) {\n <span>{{ node().label }}</span>\n }\n @if (tree.getTemplateForNode(node())) {\n <span>\n <ng-container *ngTemplateOutlet=\"tree.getTemplateForNode(node()); context: { $implicit: node() }\"></ng-container>\n </span>\n }\n </span>\n </div>\n @if (isNextDropPointActive()) {\n <div [class]=\"cx('dropPoint', { next: true })\" [attr.aria-hidden]=\"true\" [hBind]=\"getPTOptions('dropPoint')\"></div>\n }\n @if (!tree.virtualScroll() && node().children && node().expanded) {\n <ul [class]=\"cx('nodeChildren')\" role=\"group\" [hBind]=\"ptm('nodeChildren')\">\n @for (childNode of node().children; track tree.trackBy().bind(this)(index, childNode); let firstChild = $first; let lastChild = $last; let index = $index) {\n <h-treeNode\n [node]=\"childNode\"\n [parentNode]=\"node()\"\n [firstChild]=\"firstChild\"\n [lastChild]=\"lastChild\"\n [index]=\"index\"\n [itemSize]=\"itemSize()\"\n [level]=\"level() + 1\"\n [loadingMode]=\"loadingMode()\"\n [pt]=\"pt\"\n [unstyled]=\"unstyled()\"\n ></h-treeNode>\n }\n </ul>\n }\n</li>\n}\n","@if (loading() && loadingMode() === 'mask') {\n <div [class]=\"cx('mask')\" [hBind]=\"ptm('mask')\" animate.enter=\"h-overlay-mask-enter-active\" animate.leave=\"h-overlay-mask-leave-active\">\n @if (loadingIcon()) {\n <i [class]=\"cn(cx('loadingIcon'), 'pi-spin' + loadingIcon())\" [hBind]=\"ptm('loadingIcon')\"></i>\n }\n @if (!loadingIcon()) {\n @if (!loadingIconTemplate() && !_loadingIconTemplate) {\n <svg data-h-icon=\"spinner\" spin [class]=\"cx('loadingIcon')\" [hBind]=\"ptm('loadingIcon')\" />\n }\n @if (loadingIconTemplate() || _loadingIconTemplate) {\n <span [class]=\"cx('loadingIcon')\" [hBind]=\"ptm('loadingIcon')\">\n <ng-template *ngTemplateOutlet=\"loadingIconTemplate() || _loadingIconTemplate\"></ng-template>\n </span>\n }\n }\n </div>\n}\n<ng-container *ngTemplateOutlet=\"headerTemplate() || _headerTemplate\"></ng-container>\n@if (filterTemplate() || _filterTemplate) {\n <ng-container *ngTemplateOutlet=\"filterTemplate() || _filterTemplate; context: { $implicit: filterOptions() }\"></ng-container>\n} @else {\n @if (filter()) {\n <h-iconfield [class]=\"cx('pcFilterContainer')\" [pt]=\"ptm('pcFilterContainer')\" [unstyled]=\"unstyled()\">\n <input\n #filter\n [hAutoFocus]=\"filterInputAutoFocus()\"\n hInputText\n type=\"search\"\n autocomplete=\"off\"\n [class]=\"cx('pcFilterInput')\"\n [attr.placeholder]=\"filterPlaceholder()\"\n (keydown.enter)=\"$event.preventDefault()\"\n (input)=\"_filter($safeNavigationMigration($event.target?.value))\"\n [pt]=\"ptm('pcFilterInput')\"\n [unstyled]=\"unstyled()\"\n />\n <h-inputicon [pt]=\"ptm('pcFilterIconContainer')\" [unstyled]=\"unstyled()\">\n @if (!filterIconTemplate() && !_filterIconTemplate) {\n <svg data-h-icon=\"search\" [class]=\"cx('filterIcon')\" [hBind]=\"ptm('filterIcon')\" />\n }\n @if (filterIconTemplate() || _filterIconTemplate) {\n <span [class]=\"cx('filterIcon')\" [hBind]=\"ptm('filterIcon')\">\n <ng-template *ngTemplateOutlet=\"filterIconTemplate() || _filterIconTemplate\"></ng-template>\n </span>\n }\n </h-inputicon>\n </h-iconfield>\n }\n}\n\n@if (getRootNode()?.length) {\n @if (virtualScroll()) {\n <h-scroller\n #scroller\n [items]=\"serializedValue\"\n [tabindex]=\"-1\"\n [styleClass]=\"cx('wrapper')\"\n [style]=\"{ height: scrollHeight() !== 'flex' ? scrollHeight() : undefined }\"\n [scrollHeight]=\"scrollHeight() !== 'flex' ? undefined : '100%'\"\n [itemSize]=\"virtualScrollItemSize()\"\n [lazy]=\"lazy()\"\n (onScroll)=\"onScroll.emit($event)\"\n (onScrollIndexChange)=\"onScrollIndexChange.emit($event)\"\n (onLazyLoad)=\"onLazyLoad.emit($event)\"\n [options]=\"virtualScrollOptions()\"\n [pt]=\"ptm('virtualScroller')\"\n hostName=\"tree\"\n [attr.data-h]=\"wrapperDataP\"\n >\n <ng-template #content let-items let-scrollerOptions=\"options\">\n @if (items) {\n <ul\n #content\n [class]=\"cx('rootChildren')\"\n [ngClass]=\"scrollerOptions.contentStyleClass\"\n [style]=\"scrollerOptions.contentStyle\"\n role=\"tree\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [hBind]=\"ptm('rootChildren')\"\n >\n @for (rowNode of items; track trackBy()(index, rowNode); let firstChild = $first; let lastChild = $last; let index = $index) {\n <h-treeNode\n #treeNode\n [level]=\"rowNode.level\"\n [rowNode]=\"rowNode\"\n [node]=\"rowNode.node\"\n [parentNode]=\"rowNode.parent\"\n [firstChild]=\"firstChild\"\n [lastChild]=\"lastChild\"\n [index]=\"getIndex(scrollerOptions, index)\"\n [itemSize]=\"scrollerOptions.itemSize\"\n [indentation]=\"indentation()\"\n [loadingMode]=\"loadingMode()\"\n [pt]=\"pt\"\n [unstyled]=\"unstyled()\"\n ></h-treeNode>\n }\n </ul>\n }\n </ng-template>\n @if (loaderTemplate() || _loaderTemplate) {\n <ng-template #loader let-scrollerOptions=\"options\">\n <ng-container *ngTemplateOutlet=\"loaderTemplate() || _loaderTemplate; context: { options: scrollerOptions }\"></ng-container>\n </ng-template>\n }\n </h-scroller>\n }\n @if (!virtualScroll()) {\n <div #wrapper [class]=\"cx('wrapper')\" [style.max-height]=\"scrollHeight()\" [hBind]=\"ptm('wrapper')\" [attr.data-h]=\"wrapperDataP\">\n @if (getRootNode()) {\n <ul #content [class]=\"cx('rootChildren')\" role=\"tree\" [attr.aria-label]=\"ariaLabel()\" [attr.aria-labelledby]=\"ariaLabelledBy()\" [hBind]=\"ptm('rootChildren')\">\n @for (node of getRootNode(); track trackBy().bind(this)(index, node); let firstChild = $first; let lastChild = $last; let index = $index) {\n <h-treeNode\n [node]=\"node\"\n [firstChild]=\"firstChild\"\n [lastChild]=\"lastChild\"\n [index]=\"index\"\n [level]=\"0\"\n [loadingMode]=\"loadingMode()\"\n [pt]=\"pt\"\n [unstyled]=\"unstyled()\"\n ></h-treeNode>\n }\n </ul>\n }\n </div>\n }\n}\n\n@if (!loading() && (getRootNode() == null || getRootNode().length === 0)) {\n <div [class]=\"cx('emptyMessage')\" [hBind]=\"ptm('emptyMessage')\">\n @if (!emptyTemplate() && !_emptyTemplate) {\n {{ emptyMessageLabel }}\n } @else {\n <ng-container *ngTemplateOutlet=\"emptyTemplate() || _emptyTemplate\"></ng-container>\n }\n </div>\n}\n<ng-container *ngTemplateOutlet=\"footerTemplate() || _footerTemplate\"></ng-container>\n"],"mappings":"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"}
|