@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-treetable.mjs","sources":["../../../projects/core/treetable/style/treetablestyle.ts","../../../projects/core/treetable/treetable.ts","../../../projects/core/treetable/treetable.html","../../../projects/core/treetable/ttbody.html","../../../projects/core/treetable/ttscrollableview.html","../../../projects/core/treetable/ttsorticon.html","../../../projects/core/treetable/treetabletoggler.html","../../../projects/core/treetable/gravionlabs-helix-core-treetable.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from '@gravionlabs/helix-core/base';\n\nconst style = /*css*/ `\n/* For Helix */\n.h-treetable {\n position: relative;\n}\n\n.h-treetable table {\n border-collapse: collapse;\n width: 100%;\n table-layout: fixed;\n}\n\n.h-treetable .h-sortable-column {\n cursor: pointer;\n user-select: none;\n}\n\n.h-treetable .h-sortable-column .h-column-title,\n.h-treetable .h-sortable-column .h-sortable-column-icon,\n.h-treetable .h-sortable-column .h-sortable-column-badge {\n vertical-align: middle;\n}\n\n.h-treetable-sort-icon {\n color: dt('treetable.sort.icon.color');\n font-size: dt('treetable.sort.icon.size');\n width: dt('treetable.sort.icon.size');\n height: dt('treetable.sort.icon.size');\n transition: color dt('treetable.transition.duration');\n}\n\n.h-treetable .h-sortable-column .h-sortable-column-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.h-treetable-auto-layout>.h-treetable-wrapper {\n overflow-x: auto;\n}\n\n.h-treetable-auto-layout>.h-treetable-wrapper>table {\n table-layout: auto;\n}\n\n.h-treetable-hoverable-rows .h-treetable-tbody>tr {\n cursor: pointer;\n}\n\n.h-treetable-toggler {\n cursor: pointer;\n user-select: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n vertical-align: middle;\n overflow: hidden;\n position: relative;\n}\n\n\n/* Scrollable */\n.h-treetable-scrollable-wrapper {\n position: relative;\n}\n\n.h-treetable-scrollable-header,\n.h-treetable-scrollable-footer {\n overflow: hidden;\n flex-shrink: 0;\n}\n\n.h-treetable-scrollable-body {\n overflow: auto;\n position: relative;\n}\n\n.h-treetable-virtual-table {\n position: absolute;\n}\n\n/* Frozen Columns */\n.h-treetable-frozen-view .h-treetable-scrollable-body {\n overflow: hidden;\n}\n\n.h-treetable-frozen-view>.h-treetable-scrollable-body>table>.h-treetable-tbody>tr>td:last-child {\n border-right: 0 none;\n}\n\n.h-treetable-unfrozen-view {\n position: absolute;\n top: 0;\n}\n\n/* Flex Scrollable */\n.h-treetable-flex-scrollable {\n display: flex;\n flex-direction: column;\n flex: 1;\n height: 100%;\n}\n\n.h-treetable-flex-scrollable .h-treetable-scrollable-wrapper,\n.h-treetable-flex-scrollable .h-treetable-scrollable-view {\n display: flex;\n flex-direction: column;\n flex: 1;\n height: 100%;\n}\n\n.h-treetable-flex-scrollable .h-treetable-virtual-scrollable-body {\n flex: 1;\n}\n\n/* Resizable */\n.h-treetable-resizable>.h-treetable-wrapper {\n overflow-x: auto;\n}\n\n.h-treetable-resizable .h-treetable-thead>tr>th,\n.h-treetable-resizable .h-treetable-tfoot>tr>td,\n.h-treetable-resizable .h-treetable-tbody>tr>td {\n overflow: hidden;\n}\n\n.h-treetable-resizable .h-resizable-column {\n background-clip: padding-box;\n position: relative;\n}\n\n.h-treetable-resizable-fit .h-resizable-column:last-child .h-column-resizer {\n display: none;\n}\n\n.h-treetable .h-column-resizer {\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n margin: 0;\n width: dt('treetable.column.resizer.width');\n height: 100%;\n padding: 0px;\n cursor: col-resize;\n border: 1px solid transparent;\n}\n\n.h-treetable .h-column-resizer-helper {\n width: dt('treetable.resize.indicator.width');\n position: absolute;\n z-index: 10;\n display: none;\n background: dt('treetable.resize.indicator.color');\n}\n\n.h-treetable .h-row-editor-init,\n.h-treetable .h-row-editor-save,\n.h-treetable .h-row-editor-cancel {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n position: relative;\n}\n\n\n/* Reorder */\n.h-treetable-reorder-indicator-up,\n.h-treetable-reorder-indicator-down {\n position: absolute;\n display: none;\n}\n\n[ttReorderableColumn] {\n cursor: move;\n}\n\n/* Loader */\n.h-treetable-mask {\n position: absolute !important;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 2;\n}\n\n.h-treetable-loading-icon {\n font-size: dt('treetable.loading.icon.size');\n width: dt('treetable.loading.icon.size');\n height: dt('treetable.loading.icon.size');\n}\n\n/* Virtual Scroll */\n.h-treetable .h-scroller-loading {\n transform: none !important;\n min-height: 0;\n position: sticky;\n top: 0;\n left: 0;\n}\n\n.h-treetable .h-paginator-top {\n border-color: dt('treetable.paginator.top.border.color');\n border-style: solid;\n border-width: dt('treetable.paginator.top.border.width');\n}\n\n.h-treetable .h-paginator-bottom {\n border-color: dt('treetable.paginator.bottom.border.color');\n border-style: solid;\n border-width: dt('treetable.paginator.bottom.border.width');\n}\n\n.h-treetable .h-treetable-header {\n background: dt('treetable.header.background');\n color: dt('treetable.header.color');\n border-color: dt('treetable.header.border.color');\n border-style: solid;\n border-width: dt('treetable.header.border.width');\n padding: dt('treetable.header.padding');\n font-weight: dt('treetable.column.title.font.weight');\n}\n\n.h-treetable .h-treetable-footer {\n background: dt('treetable.footer.background');\n color: dt('treetable.footer.color');\n border-color: dt('treetable.footer.border.color');\n border-style: solid;\n border-width: dt('treetable.footer.border.width');\n padding: dt('treetable.footer.padding');\n font-weight: dt('treetable.column.footer.font.weight');\n}\n\n.h-treetable .h-treetable-thead>tr>th {\n padding: dt('treetable.header.cell.padding');\n background: dt('treetable.header.cell.background');\n border-color: dt('treetable.header.cell.border.color');\n border-style: solid;\n border-width: 0 0 1px 0;\n color: dt('treetable.header.cell.color');\n font-weight: dt('treetable.column.title.font.weight');\n text-align: start;\n transition: background dt('treetable.transition.duration'), color dt('treetable.transition.duration'), border-color dt('treetable.transition.duration'),\n outline-color dt('treetable.transition.duration'), box-shadow dt('treetable.transition.duration');\n}\n\n.h-treetable .h-treetable-tfoot>tr>td {\n text-align: start;\n padding: dt('treetable.footer.cell.padding');\n border-color: dt('treetable.footer.cell.border.color');\n border-style: solid;\n border-width: 0 0 1px 0;\n color: dt('treetable.footer.cell.color');\n background: dt('treetable.footer.cell.background');\n font-weight: dt('treetable.column.footer.font.weight');\n}\n\n.h-treetable .h-sortable-column {\n cursor: pointer;\n user-select: none;\n outline-color: transparent;\n vertical-align: middle;\n}\n\n.h-treetable .h-sortable-column .h-sortable-column-icon {\n color: dt('treetable.sort.icon.color');\n transition: color dt('treetable.transition.duration');\n}\n\n\n.h-treetable .h-sortable-column:not(.h-treetable-column-sorted):hover {\n background: dt('treetable.header.cell.hover.background');\n color: dt('treetable.header.cell.hover.color');\n}\n\n.h-treetable .h-sortable-column:not(.h-treetable-column-sorted):hover .h-treetable-sort-icon {\n color: dt('treetable.sort.icon.hover.color');\n}\n\n.h-treetable .h-sortable-column.h-treetable-column-sorted {\n background: dt('treetable.header.cell.selected.background');\n color: dt('treetable.header.cell.selected.color');\n}\n\n.h-treetable .h-sortable-column.h-treetable-column-sorted .h-treetable-sort-icon {\n color: dt('treetable.header.cell.selected.color');\n}\n\n.h-treetable .h-sortable-column:focus-visible {\n box-shadow: dt('treetable.header.cell.focus.ring.shadow');\n outline: dt('treetable.header.cell.focus.ring.width') dt('treetable.header.cell.focus.ring.style') dt('treetable.header.cell.focus.ring.color');\n outline-offset: dt('treetable.header.cell.focus.ring.offset');\n}\n\n.h-treetable-hoverable .h-treetable-selectable-row {\n cursor: pointer;\n}\n\n.h-treetable .h-treetable-tbody > tr {\n outline-color: transparent;\n background: dt('treetable.row.background');\n color: dt('treetable.row.color');\n}\n\n.h-treetable .h-treetable-tbody>tr>td {\n text-align: start;\n border-color: dt('treetable.body.cell.border.color');\n border-style: solid;\n border-width: 0 0 1px 0;\n padding: dt('treetable.body.cell.padding');\n}\n\n.h-treetable .h-treetable-tbody>tr>td .h-treetable-toggler {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n position: relative;\n width: dt('treetable.node.toggle.button.size');\n height: dt('treetable.node.toggle.button.size');\n color: dt('treetable.node.toggle.button.color');\n border: 0 none;\n background: transparent;\n cursor: pointer;\n border-radius: dt('treetable.node.toggle.button.border.radius');\n transition: background dt('treetable.transition.duration'), color dt('treetable.transition.duration'), border-color dt('treetable.transition.duration'),\n outline-color dt('treetable.transition.duration'), box-shadow dt('treetable.transition.duration');\n outline-color: transparent;\n user-select: none;\n}\n\n.h-treetable .h-treetable-tbody>tr>td .h-treetable-toggler:enabled:hover {\n color: dt('treetable.node.toggle.button.hover.color');\n background: dt('treetable.node.toggle.button.hover.background');\n}\n\n.h-treetable .h-treetable-tbody>tr>tr.treetable-row-selected .h-treetable-toggler:hover {\n background: dt('treetable.node.toggle.button.selected.hover.background');\n color: dt('treetable.node.toggle.button.selected.hover.color');\n}\n\n.h-treetable .h-treetable-tbody>tr>td .h-treetable-toggler:focus-visible {\n box-shadow: dt('treetable.node.toggle.button.focus.ring.shadow');\n outline: dt('treetable.node.toggle.button.focus.ring.width') dt('treetable.node.toggle.button.focus.ring.style') dt('treetable.node.toggle.button.focus.ring.color');\n outline-offset: dt('treetable.node.toggle.button.focus.ring.offset');\n}\n\n\n.h-treetable .h-treetable-tbody>tr.h-treetable-row-selected {\n background: dt('treetable.row.selected.background');\n color: dt('treetable.row.selected.color');\n}\n\n.h-treetable-tbody > tr:focus-visible,\n.h-treetable-tbody > tr.h-treetable-contextmenu-row-selected {\n box-shadow: dt('treetable.row.focus.ring.shadow');\n outline: dt('treetable.row.focus.ring.width') dt('treetable.row.focus.ring.style') dt('treetable.row.focus.ring.color');\n outline-offset: dt('treetable.row.focus.ring.offset');\n}\n\n.h-treetable .h-treetable-tbody>tr.h-treetable-row-selected .h-treetable-toggler {\n color: inherit;\n}\n\n.h-treetable .h-treetable-tbody>tr.h-treetable-row-selected .h-treetable-toggler:hover {\n background: dt('treetable.node.toggle.button.selected.hover.background');\n color: dt('treetable.node.toggle.button.selected.hover.color');\n}\n\n.h-treetable.h-treetable-hoverable-rows .h-treetable-tbody>tr:not(.h-treetable-row-selected):hover {\n background: dt('treetable.row.hover.background');\n color: dt('treetable.row.hover.color');\n}\n\n.h-treetable-gridlines .h-treetable-header {\n border-width: 1px 1px 0 1px;\n}\n\n.h-treetable-gridlines .h-treetable-footer {\n border-width: 0 1px 1px 1px;\n}\n\n.h-treetable-gridlines .h-treetable-paginator-top {\n border-width: 1px 1px 0 1px;\n}\n\n.h-treetable-gridlines .h-treetable-paginator-bottom {\n border-width: 0 1px 1px 1px;\n}\n\n.h-treetable-gridlines .h-treetable-thead > tr > th {\n border-width: 1px 0 1px 1px;\n}\n\n.h-treetable-gridlines .h-treetable-thead > tr > th:last-child {\n border-width: 1px;\n}\n\n.h-treetable-gridlines .h-treetable-tbody > tr > td {\n border-width: 1px 0 0 1px;\n}\n\n.h-treetable-gridlines .h-treetable-tbody > tr > td:last-child {\n border-width: 1px 1px 0 1px;\n}\n\n.h-treetable-gridlines .h-treetable-tbody > tr:last-child > td {\n border-width: 1px 0 1px 1px;\n}\n\n.h-treetable-gridlines .h-treetable-tbody > tr:last-child > td:last-child {\n border-width: 1px;\n}\n\n.h-treetable-gridlines .h-treetable-tfoot > tr > td {\n border-width: 1px 0 1px 1px;\n}\n\n.h-treetable-gridlines .h-treetable-tfoot > tr > td:last-child {\n border-width: 1px 1px 1px 1px;\n}\n\n.h-treetable.h-treetable-gridlines .h-treetable-thead + .h-treetable-tfoot > tr > td {\n border-width: 0 0 1px 1px;\n}\n\n.h-treetable.h-treetable-gridlines .h-treetable-thead + .h-treetable-tfoot > tr > td:last-child {\n border-width: 0 1px 1px 1px;\n}\n\n.h-treetable.h-treetable-gridlines:has(.h-treetable-thead):has(.h-treetable-tbody) .h-treetable-tbody > tr > td {\n border-width: 0 0 1px 1px;\n}\n\n.h-treetable.h-treetable-gridlines:has(.h-treetable-thead):has(.h-treetable-tbody) .h-treetable-tbody > tr > td:last-child {\n border-width: 0 1px 1px 1px;\n}\n\n.h-treetable.h-treetable-gridlines:has(.h-treetable-tbody):has(.h-treetable-tfoot) .h-treetable-tbody > tr:last-child > td {\n border-width: 0 0 0 1px;\n}\n\n.h-treetable.h-treetable-gridlines:has(.h-treetable-tbody):has(.h-treetable-tfoot) .h-treetable-tbody > tr:last-child > td:last-child {\n border-width: 0 1px 0 1px;\n}\n\n.h-treetable.h-treetable-sm .h-treetable-header {\n padding: 0.65625rem 0.875rem;\n}\n\n.h-treetable.h-treetable-sm .h-treetable-thead>tr>th {\n padding: 0.375rem 0.5rem;\n}\n\n.h-treetable.h-treetable-sm .h-treetable-tbody>tr>td {\n padding: 0.375rem 0.5rem;\n}\n\n.h-treetable.h-treetable-sm .h-treetable-tfoot>tr>td {\n padding: 0.375rem 0.5rem;\n}\n\n.h-treetable.h-treetable-sm .h-treetable-footer {\n padding: 0.375rem 0.5rem;\n}\n\n.h-treetable.h-treetable-lg .h-treetable-header {\n padding: 0.9375rem 1.25rem;\n}\n\n.h-treetable.h-treetable-lg .h-treetable-thead>tr>th {\n padding: 0.9375rem 1.25rem;\n}\n\n.h-treetable.h-treetable-lg .h-treetable-tbody>tr>td {\n padding: 0.9375rem 1.25rem;\n}\n\n.h-treetable.h-treetable-lg .h-treetable-tfoot>tr>td {\n padding: 0.9375rem 1.25rem;\n}\n\n.h-treetable.h-treetable-lg .h-treetable-footer {\n padding: 0.9375rem 1.25rem;\n}\n\nh-treetabletoggler + h-treetablecheckbox .h-checkbox,\nh-treetable-toggler + h-treetable-checkbox .h-checkbox,\nh-tree-table-toggler + h-tree-table-checkbox .h-checkbox {\n vertical-align: middle;\n}\n\nh-treetabletoggler + h-treetablecheckbox + span,\nh-treetable-toggler + h-treetable-checkbox + span,\nh-tree-table-toggler + h-tree-table-checkbox + span {\n vertical-align: middle;\n}\n\nh-treetable-sort-icon {\n display: inline-flex;\n align-items: center;\n gap: dt('treetable.header.cell.gap');\n}\n`;\n\nconst classes = {\n root: ({ instance }) => [\n 'h-treetable h-component',\n {\n 'h-treetable-gridlines': instance.showGridlines,\n 'h-treetable-hoverable-rows': instance.rowHover || instance.selectionMode === 'single' || instance.selectionMode === 'multiple',\n 'h-treetable-auto-layout': instance.autoLayout,\n 'h-treetable-resizable': instance.resizableColumns,\n 'h-treetable-resizable-fit': instance.resizableColumns && instance.columnResizeMode === 'fit',\n 'h-treetable-flex-scrollable': instance.scrollable && instance.scrollHeight === 'flex'\n }\n ],\n loading: 'h-treetable-loading',\n mask: 'h-treetable-mask h-overlay-mask',\n loadingIcon: 'h-treetable-loading-icon',\n header: 'h-treetable-header',\n pcPaginator: ({ instance }) => ['h-treetable-paginator-' + instance.paginatorPosition, instance.paginatorStyleClass],\n tableContainer: 'h-treetable-table-container',\n table: ({ instance }) => ({\n 'h-treetable-table': true,\n 'h-treetable-scrollable-table': instance.scrollable,\n 'h-treetable-resizable-table': instance.resizableColumns,\n 'h-treetable-resizable-table-fit': instance.resizableColumns && instance.columnResizeMode === 'fit'\n }),\n thead: 'h-treetable-thead',\n sortableColumn: ({ instance }) => ({\n 'h-sortable-column': instance.isEnabled(),\n 'h-treetable-column-sorted': instance.sorted\n }),\n sortableColumnIcon: 'h-treetable-sort-icon',\n sortableColumnBadge: 'h-sortable-column-badge',\n columnResizer: 'h-treetable-column-resizer',\n columnHeaderContent: 'h-treetable-column-header-content',\n columnTitle: 'h-treetable-column-title',\n sortIcon: 'h-treetable-sort-icon',\n pcSortBadge: 'h-treetable-sort-badge',\n tbody: 'h-treetable-tbody',\n row: ({ instance }) => ({\n 'h-treetable-row-selected': instance.selected\n }),\n contextMenuRow: ({ instance }) => ({\n 'h-treetable-contextmenu-row-selected': instance.selected\n }),\n toggler: 'h-treetable-toggler',\n nodeToggleButton: 'h-treetable-node-toggle-button',\n nodeToggleIcon: 'h-treetable-node-toggle-icon',\n pcNodeCheckbox: 'h-treetable-node-checkbox',\n tfoot: 'h-treetable-tfoot',\n footerCell: ({ instance }) => ({\n 'h-treetable-frozen-column': instance.columnProp('frozen')\n }),\n footer: 'h-treetable-footer',\n columnResizeIndicator: 'h-treetable-column-resize-indicator',\n wrapper: 'h-treetable-wrapper',\n scrollableWrapper: 'h-treetable-scrollable-wrapper',\n scrollableView: 'h-treetable-scrollable-view',\n frozenView: 'h-treetable-frozen-view',\n columnResizerHelper: 'h-column-resizer-helper',\n reorderIndicatorUp: 'h-treetable-reorder-indicator-up',\n reorderIndicatorDown: 'h-treetable-reorder-indicator-down',\n scrollableHeader: 'h-treetable-scrollable-header',\n scrollableHeaderBox: 'h-treetable-scrollable-header-box',\n scrollableHeaderTable: 'h-treetable-scrollable-header-table',\n scrollableBody: 'h-treetable-scrollable-body',\n scrollableFooter: 'h-treetable-scrollable-footer',\n scrollableFooterBox: 'h-treetable-scrollable-footer-box',\n scrollableFooterTable: 'h-treetable-scrollable-footer-table'\n};\n\n@Injectable()\nexport class TreeTableStyle extends BaseStyle {\n name = 'treetable';\n\n style = style;\n\n classes = classes;\n}\n\n/**\n *\n * TreeTable is used to display hierarchical data in tabular format.\n *\n * [Live Demo](https://www.primeng.org/treetable/)\n *\n * @module treetablestyle\n *\n */\nexport enum TreeTableClasses {\n /**\n * Class name of the root element\n */\n root = 'h-treetable',\n /**\n * Class name of the loading element\n */\n loading = 'h-treetable-loading',\n /**\n * Class name of the mask element\n */\n mask = 'h-treetable-mask',\n /**\n * Class name of the loading icon element\n */\n loadingIcon = 'h-treetable-loading-icon',\n /**\n * Class name of the header element\n */\n header = 'h-treetable-header',\n /**\n * Class name of the paginator element\n */\n pcPaginator = 'h-treetable-paginator-[position]',\n /**\n * Class name of the table container element\n */\n tableContainer = 'h-treetable-table-container',\n /**\n * Class name of the table element\n */\n table = 'h-treetable-table',\n /**\n * Class name of the thead element\n */\n thead = 'h-treetable-thead',\n /**\n * Class name of the column resizer element\n */\n columnResizer = 'h-treetable-column-resizer',\n /**\n * Class name of the column title element\n */\n columnTitle = 'h-treetable-column-title',\n /**\n * Class name of the sort icon element\n */\n sortIcon = 'h-treetable-sort-icon',\n /**\n * Class name of the sort badge element\n */\n pcSortBadge = 'h-treetable-sort-badge',\n /**\n * Class name of the tbody element\n */\n tbody = 'h-treetable-tbody',\n /**\n * Class name of the node toggle button element\n */\n nodeToggleButton = 'h-treetable-node-toggle-button',\n /**\n * Class name of the node toggle icon element\n */\n nodeToggleIcon = 'h-treetable-node-toggle-icon',\n /**\n * Class name of the node checkbox element\n */\n pcNodeCheckbox = 'h-treetable-node-checkbox',\n /**\n * Class name of the empty message element\n */\n emptyMessage = 'h-treetable-empty-message',\n /**\n * Class name of the tfoot element\n */\n tfoot = 'h-treetable-tfoot',\n /**\n * Class name of the footer element\n */\n footer = 'h-treetable-footer',\n /**\n * Class name of the column resize indicator element\n */\n columnResizeIndicator = 'h-treetable-column-resize-indicator',\n /**\n * Class name of the wrapper element\n */\n wrapper = 'h-treetable-wrapper',\n /**\n * Class name of the scrollable wrapper element\n */\n scrollableWrapper = 'h-treetable-scrollable-wrapper',\n /**\n * Class name of the scrollable view element\n */\n scrollableView = 'h-treetable-scrollable-view',\n /**\n * Class name of the frozen view element\n */\n frozenView = 'h-treetable-frozen-view',\n /**\n * Class name of the column resizer helper element\n */\n columnResizerHelper = 'h-treetable-column-resizer-helper',\n /**\n * Class name of the reorder indicator up element\n */\n reorderIndicatorUp = 'h-treetable-reorder-indicator-up',\n /**\n * Class name of the reorder indicator down element\n */\n reorderIndicatorDown = 'h-treetable-reorder-indicator-down',\n /**\n * Class name of the scrollable header element\n */\n scrollableHeader = 'h-treetable-scrollable-header',\n /**\n * Class name of the scrollable header box element\n */\n scrollableHeaderBox = 'h-treetable-scrollable-header-box',\n /**\n * Class name of the scrollable header table element\n */\n scrollableHeaderTable = 'h-treetable-scrollable-header-table',\n /**\n * Class name of the scrollable body element\n */\n scrollableBody = 'h-treetable-scrollable-body',\n /**\n * Class name of the scrollable footer element\n */\n scrollableFooter = 'h-treetable-scrollable-footer',\n /**\n * Class name of the scrollable footer box element\n */\n scrollableFooterBox = 'h-treetable-scrollable-footer-box',\n /**\n * Class name of the scrollable footer table element\n */\n scrollableFooterTable = 'h-treetable-scrollable-footer-table',\n /**\n * Class name of the sortable column icon element\n */\n sortableColumnIcon = 'h-sortable-column-icon'\n}\n\nexport interface TreeTableStyle extends BaseStyle {}\n","import { CommonModule, isPlatformBrowser } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n effect,\n ElementRef,\n inject,\n Injectable,\n InjectionToken,\n NgModule,\n NgZone,\n numberAttribute,\n TemplateRef,\n ViewEncapsulation,\n input,\n model,\n output,\n viewChild,\n contentChild,\n contentChildren\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport {\n addClass,\n addStyle,\n calculateScrollbarHeight,\n calculateScrollbarWidth,\n clearSelection,\n equals,\n find,\n findSingle,\n focus,\n getAttribute,\n getHiddenElementOuterHeight,\n getHiddenElementOuterWidth,\n getIndex,\n getOffset,\n invokeElementMethod,\n isClickable,\n isEmpty,\n isNotEmpty,\n removeClass,\n reorderArray,\n resolveFieldData\n} from '@gravionlabs/helix-core/uix/utils';\nimport { BlockableUI, FilterMetadata, FilterService, HelixTemplate, ScrollerOptions, SharedModule, SortMeta, TreeNode, TreeTableNode } from '@gravionlabs/helix-core/api';\nimport { BadgeModule } from '@gravionlabs/helix-core/badge';\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 { DomHandler } from '@gravionlabs/helix-core/dom';\nimport { ArrowDownIcon, ArrowUpIcon, CheckIcon, ChevronDownIcon, ChevronRightIcon, SortAltIcon, SortAmountDownIcon, SortAmountUpAltIcon, SpinnerIcon } from '@gravionlabs/helix-core/icons';\nimport { PaginatorModule } from '@gravionlabs/helix-core/paginator';\nimport { Ripple } from '@gravionlabs/helix-core/ripple';\nimport { Scroller } from '@gravionlabs/helix-core/scroller';\nimport { Nullable, VoidListener } from '@gravionlabs/helix-core/ts-helpers';\nimport {\n TreeTableBodyTemplateContext,\n TreeTableCheckboxIconTemplateContext,\n TreeTableColResizeEvent,\n TreeTableColumnReorderEvent,\n TreeTableColumnsTemplateContext,\n TreeTableContextMenuSelectEvent,\n TreeTableEditEvent,\n TreeTableEmptyMessageTemplateContext,\n TreeTableFilterEvent,\n TreeTableFilterOptions,\n TreeTableHeaderCheckboxIconTemplateContext,\n TreeTableHeaderCheckboxToggleEvent,\n TreeTableLazyLoadEvent,\n TreeTableNodeCollapseEvent,\n TreeTableNodeExpandEvent,\n TreeTableNodeUnSelectEvent,\n TreeTablePaginatorState,\n TreeTablePassThrough,\n TreeTableSortEvent,\n TreeTableSortIconTemplateContext,\n TreeTableTogglerIconTemplateContext\n} from '@gravionlabs/helix-core/types/treetable';\nimport { Subject, Subscription } from 'rxjs';\nimport { TreeTableStyle } from './style/treetablestyle';\n\nconst TREETABLE_INSTANCE = new InjectionToken<TreeTable>('TREETABLE_INSTANCE');\n\n@Injectable()\nexport class TreeTableService {\n private sortSource = new Subject<SortMeta | SortMeta[] | null>();\n private selectionSource = new Subject();\n private contextMenuSource = new Subject<any>();\n private uiUpdateSource = new Subject<any>();\n private totalRecordsSource = new Subject<any>();\n\n sortSource$ = this.sortSource.asObservable();\n selectionSource$ = this.selectionSource.asObservable();\n contextMenuSource$ = this.contextMenuSource.asObservable();\n uiUpdateSource$ = this.uiUpdateSource.asObservable();\n totalRecordsSource$ = this.totalRecordsSource.asObservable();\n\n onSort(sortMeta: SortMeta | SortMeta[] | null) {\n this.sortSource.next(sortMeta);\n }\n\n onSelectionChange() {\n this.selectionSource.next(null);\n }\n\n onContextMenu(node: any) {\n this.contextMenuSource.next(node);\n }\n\n onUIUpdate(value: any) {\n this.uiUpdateSource.next(value);\n }\n\n onTotalRecordsChange(value: number) {\n this.totalRecordsSource.next(value);\n }\n}\n\n/**\n * TreeTable is used to display hierarchical data in tabular format.\n * @group Components\n */\n@Component({\n selector: 'h-treeTable, h-treetable, h-tree-table',\n standalone: false,\n templateUrl: './treetable.html',\n providers: [TreeTableService, TreeTableStyle, { provide: TREETABLE_INSTANCE, useExisting: TreeTable }, { provide: PARENT_INSTANCE, useExisting: TreeTable }],\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': \"cn(cx('root'), styleClass())\",\n '[attr.data-h]': 'dataP',\n '[attr.data-scrollselectors]': \"'.h-treetable-scrollable-body'\"\n },\n changeDetection: ChangeDetectionStrategy.Eager,\n hostDirectives: [Bind]\n})\nexport class TreeTable extends BaseComponent<TreeTablePassThrough> implements BlockableUI {\n componentName = 'TreeTable';\n\n _componentStyle = inject(TreeTableStyle);\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n onAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n /**\n * An array of objects to represent dynamic columns.\n * @group Props\n */\n readonly columns = input<any[]>();\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 * Inline style of the table.\n * @group Props\n */\n readonly tableStyle = input<{\n [klass: string]: any;\n} | null>();\n /**\n * Style class of the table.\n * @group Props\n */\n readonly tableStyleClass = input<string>();\n /**\n * Whether the cell widths scale according to their content or not.\n * @group Props\n */\n readonly autoLayout = input<boolean, unknown>(undefined, { transform: booleanAttribute });\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 to call lazy loading on initialization.\n * @group Props\n */\n readonly lazyLoadOnInit = input<boolean, unknown>(true, { transform: booleanAttribute });\n /**\n * When specified as true, enables the pagination.\n * @group Props\n */\n readonly paginator = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n /**\n * Number of rows to display per page.\n * @group Props\n */\n readonly rows = model<number | undefined>(undefined);\n /**\n * Index of the first row to be displayed.\n * @group Props\n */\n readonly first = model<number | null | undefined>(0);\n /**\n * Number of page links to display in paginator.\n * @group Props\n */\n readonly pageLinks = input<number, unknown>(5, { transform: numberAttribute });\n /**\n * Array of integer/object values to display inside rows per page dropdown of paginator\n * @group Props\n */\n readonly rowsPerPageOptions = input<any[]>();\n /**\n * Whether to show it even there is only one page.\n * @group Props\n */\n readonly alwaysShowPaginator = input<boolean, unknown>(true, { transform: booleanAttribute });\n /**\n * Position of the paginator.\n * @group Props\n */\n readonly paginatorPosition = input<'top' | 'bottom' | 'both'>('bottom');\n /**\n * Custom style class for paginator\n * @group Props\n */\n readonly paginatorStyleClass = input<string>();\n /**\n * Target element to attach the paginator dropdown overlay, valid values are \"body\" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having #mydiv as variable name).\n * @group Props\n */\n readonly paginatorDropdownAppendTo = input<HTMLElement | ElementRef | TemplateRef<any> | string | null | any>();\n /**\n * Template of the current page report element. Available placeholders are {currentPage},{totalPages},{rows},{first},{last} and {totalRecords}\n * @group Props\n */\n readonly currentPageReportTemplate = input<string>('{currentPage} of {totalPages}');\n /**\n * Whether to display current page report.\n * @group Props\n */\n readonly showCurrentPageReport = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n /**\n * Whether to display a dropdown to navigate to any page.\n * @group Props\n */\n readonly showJumpToPageDropdown = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n /**\n * When enabled, icons are displayed on paginator to go first and last page.\n * @group Props\n */\n readonly showFirstLastIcon = input<boolean, unknown>(true, { transform: booleanAttribute });\n /**\n * Whether to show page links.\n * @group Props\n */\n readonly showPageLinks = input<boolean, unknown>(true, { transform: booleanAttribute });\n /**\n * Sort order to use when an unsorted column gets sorted by user interaction.\n * @group Props\n */\n readonly defaultSortOrder = input<number, unknown>(1, { transform: numberAttribute });\n /**\n * Defines whether sorting works on single column or on multiple columns.\n * @group Props\n */\n readonly sortMode = input<'single' | 'multiple'>('single');\n /**\n * When true, resets paginator to first page after sorting.\n * @group Props\n */\n readonly resetPageOnSort = input<boolean, unknown>(true, { transform: booleanAttribute });\n /**\n * Whether to use the default sorting or a custom one using sortFunction.\n * @group Props\n */\n readonly customSort = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n /**\n * Specifies the selection mode, valid values are \"single\" and \"multiple\".\n * @group Props\n */\n readonly selectionMode = input<string>();\n /**\n * Selected row with a context menu.\n * @group Props\n */\n readonly contextMenuSelection = model<any>(undefined);\n /**\n * Mode of the contet menu selection.\n * @group Props\n */\n readonly contextMenuSelectionMode = input<string>('separate');\n /**\n * A property to uniquely identify a record in data.\n * @group Props\n */\n readonly dataKey = input<string>();\n /**\n * Defines whether metaKey is should be considered for the selection. On touch enabled devices, metaKeySelection is turned off automatically.\n * @group Props\n */\n readonly metaKeySelection = input<boolean | undefined, unknown>(false, { transform: booleanAttribute });\n /**\n * Algorithm to define if a row is selected, valid values are \"equals\" that compares by reference and \"deepEquals\" that compares all fields.\n * @group Props\n */\n readonly compareSelectionBy = input<string>('deepEquals');\n /**\n * Adds hover effect to rows without the need for selectionMode.\n * @group Props\n */\n readonly rowHover = input<boolean, unknown>(undefined, { 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>();\n /**\n * Whether to show the loading mask when loading property is true.\n * @group Props\n */\n readonly showLoader = input<boolean, unknown>(true, { transform: booleanAttribute });\n /**\n * When specified, enables horizontal and/or vertical scrolling.\n * @group Props\n */\n readonly scrollable = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n /**\n * Height of the scroll viewport in fixed pixels or the \"flex\" keyword for a dynamic size.\n * @group Props\n */\n readonly scrollHeight = input<string>();\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 a row to use in calculations of virtual scrolling.\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 * The delay (in milliseconds) before triggering the virtual scroll. This determines the time gap between the user's scroll action and the actual rendering of the next set of items in the virtual scroll.\n * @group Props\n */\n readonly virtualScrollDelay = input<number, unknown>(150, { transform: numberAttribute });\n /**\n * Width of the frozen columns container.\n * @group Props\n */\n readonly frozenWidth = input<string>();\n /**\n * An array of objects to represent dynamic columns that are frozen.\n * @group Props\n */\n readonly frozenColumns = input<{ [klass: string]: any } | null>();\n /**\n * When enabled, columns can be resized using drag and drop.\n * @group Props\n */\n readonly resizableColumns = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n /**\n * Defines whether the overall table width should change on column resize, valid values are \"fit\" and \"expand\".\n * @group Props\n */\n readonly columnResizeMode = input<string>('fit');\n /**\n * When enabled, columns can be reordered using drag and drop.\n * @group Props\n */\n readonly reorderableColumns = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n /**\n * Local ng-template varilable of a ContextMenu.\n * @group Props\n */\n readonly contextMenu = input<any>();\n /**\n * Function to optimize the dom operations by delegating to ngForTrackBy, default algorithm checks for object identity.\n * @group Props\n */\n readonly rowTrackBy = input<Function>((index: number, item: any) => item);\n /**\n * An array of FilterMetadata objects to provide external filters.\n * @group Props\n */\n readonly filters = input<{ [s: string]: FilterMetadata | undefined }>({});\n /**\n * An array of fields as string to use in global filtering.\n * @group Props\n */\n readonly globalFilterFields = input<string[]>();\n /**\n * Delay in milliseconds before filtering the data.\n * @group Props\n */\n readonly filterDelay = input<number, unknown>(300, { transform: numberAttribute });\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 * 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 * Locale to be used in paginator formatting.\n * @group Props\n */\n readonly paginatorLocale = input<string>();\n /**\n * Number of total records, defaults to length of value when not defined.\n * @group Props\n */\n readonly totalRecords = model<number>(0);\n /**\n * Name of the field to sort data by default.\n * @group Props\n */\n readonly sortField = model<string | undefined | null>(undefined);\n /**\n * Order to sort when default sorting is enabled.\n * @defaultValue 1\n * @group Props\n */\n readonly sortOrder = model<number>(1);\n /**\n * An array of SortMeta objects to sort the data by default in multiple sort mode.\n * @defaultValue null\n * @group Props\n */\n readonly multiSortMeta = model<SortMeta[] | undefined | null>(undefined);\n /**\n * Selected row in single mode or an array of values in multiple mode.\n * @defaultValue null\n * @group Props\n */\n readonly selection = model<any>(undefined);\n /**\n * An array of objects to display.\n * @defaultValue null\n * @group Props\n */\n readonly value = model<TreeNode<any>[] | undefined>([]);\n /**\n * Indicates the height of rows to be scrolled.\n * @defaultValue 28\n * @group Props\n * @deprecated use virtualScrollItemSize property instead.\n */\n readonly virtualRowHeight = input<number>(28);\n /**\n * A map of keys to control the selection state.\n * @group Props\n */\n readonly selectionKeys = model<any>(undefined);\n /**\n * Whether to show grid lines between cells.\n * @defaultValue false\n * @group Props\n */\n readonly showGridlines = input<boolean, unknown>(false, { transform: booleanAttribute });\n /**\n * Callback to invoke on selected node change.\n * Emitted automatically as `selectionChange` via the `selection` model.\n * @param {TreeTableNode} object - Node instance.\n * @group Emits\n */\n /**\n * Callback to invoke on context menu selection change.\n * Emitted automatically as `contextMenuSelectionChange` via the `contextMenuSelection` model.\n * @param {TreeTableNode} object - Node instance.\n * @group Emits\n */\n /**\n * Callback to invoke when data is filtered.\n * @param {TreeTableFilterEvent} event - Custom filter event.\n * @group Emits\n */\n readonly onFilter = output<TreeTableFilterEvent>();\n /**\n * Callback to invoke when a node is expanded.\n * @param {TreeTableNodeExpandEvent} event - Node expand event.\n * @group Emits\n */\n readonly onNodeExpand = output<TreeTableNodeExpandEvent>();\n /**\n * Callback to invoke when a node is collapsed.\n * @param {TreeTableNodeCollapseEvent} event - Node collapse event.\n * @group Emits\n */\n readonly onNodeCollapse = output<TreeTableNodeCollapseEvent>();\n /**\n * Callback to invoke when pagination occurs.\n * @param {TreeTablePaginatorState} object - Paginator state.\n * @group Emits\n */\n readonly onPage = output<TreeTablePaginatorState>();\n /**\n * Callback to invoke when a column gets sorted.\n * @param {Object} Object - Sort data.\n * @group Emits\n */\n readonly onSort = output<any>();\n /**\n * Callback to invoke when paging, sorting or filtering happens in lazy mode.\n * @param {TreeTableLazyLoadEvent} event - Custom lazy load event.\n * @group Emits\n */\n readonly onLazyLoad = output<TreeTableLazyLoadEvent>();\n /**\n * An event emitter to invoke on custom sorting, refer to sorting section for details.\n * @param {TreeTableSortEvent} event - Custom sort event.\n * @group Emits\n */\n readonly sortFunction = output<TreeTableSortEvent>();\n /**\n * Callback to invoke when a column is resized.\n * @param {TreeTableColResizeEvent} event - Custom column resize event.\n * @group Emits\n */\n readonly onColResize = output<TreeTableColResizeEvent>();\n /**\n * Callback to invoke when a column is reordered.\n * @param {TreeTableColumnReorderEvent} event - Custom column reorder.\n * @group Emits\n */\n readonly onColReorder = output<TreeTableColumnReorderEvent>();\n /**\n * Callback to invoke when a node is selected.\n * @param {TreeTableNode} object - Node instance.\n * @group Emits\n */\n readonly onNodeSelect = output<TreeTableNode>();\n /**\n * Callback to invoke when a node is unselected.\n * @param {TreeTableNodeUnSelectEvent} event - Custom node unselect event.\n * @group Emits\n */\n readonly onNodeUnselect = output<TreeTableNodeUnSelectEvent>();\n /**\n * Callback to invoke when a node is selected with right click.\n * @param {TreeTableContextMenuSelectEvent} event - Custom context menu select event.\n * @group Emits\n */\n readonly onContextMenuSelect = output<TreeTableContextMenuSelectEvent>();\n /**\n * Callback to invoke when state of header checkbox changes.\n * @param {TreeTableHeaderCheckboxToggleEvent} event - Custom checkbox toggle event.\n * @group Emits\n */\n readonly onHeaderCheckboxToggle = output<TreeTableHeaderCheckboxToggleEvent>();\n /**\n * Callback to invoke when a cell switches to edit mode.\n * @param {TreeTableEditEvent} event - Custom edit event.\n * @group Emits\n */\n readonly onEditInit = output<TreeTableEditEvent>();\n /**\n * Callback to invoke when cell edit is completed.\n * @param {TreeTableEditEvent} event - Custom edit event.\n * @group Emits\n */\n readonly onEditComplete = output<TreeTableEditEvent>();\n /**\n * Callback to invoke when cell edit is cancelled with escape key.\n * @param {TreeTableEditEvent} event - Custom edit event.\n * @group Emits\n */\n readonly onEditCancel = output<TreeTableEditEvent>();\n /**\n * Callback to invoke when selectionKeys are changed.\n * Emitted automatically as `selectionKeysChange` via the `selectionKeys` model.\n * @param {Object} object - updated value of the selectionKeys.\n * @group Emits\n */\n\n readonly resizeHelperViewChild = viewChild<Nullable<ElementRef>>('resizeHelper');\n\n readonly reorderIndicatorUpViewChild = viewChild<Nullable<ElementRef>>('reorderIndicatorUp');\n\n readonly reorderIndicatorDownViewChild = viewChild<Nullable<ElementRef>>('reorderIndicatorDown');\n\n readonly tableViewChild = viewChild<Nullable<ElementRef>>('table');\n\n readonly scrollableViewChild = viewChild<Nullable<ElementRef>>('scrollableView');\n\n readonly scrollableFrozenViewChild = viewChild<Nullable<ElementRef>>('scrollableFrozenView');\n\n serializedValue: any[] | undefined | null;\n\n filteredNodes: Nullable<any[]>;\n\n filterTimeout: any;\n\n readonly _colGroupTemplate = contentChild<Nullable<TemplateRef<TreeTableColumnsTemplateContext>>>('colgroup', { descendants: false });\n colGroupTemplate: Nullable<TemplateRef<TreeTableColumnsTemplateContext>>;\n\n readonly _captionTemplateSignal = contentChild<TemplateRef<void>>('caption', { descendants: false });\n get _captionTemplate(): TemplateRef<void> | undefined { return this._captionTemplateSignal(); }\n captionTemplate: Nullable<TemplateRef<void>>;\n\n readonly _headerTemplate = contentChild<Nullable<TemplateRef<TreeTableColumnsTemplateContext>>>('header', { descendants: false });\n headerTemplate: Nullable<TemplateRef<TreeTableColumnsTemplateContext>>;\n\n readonly _bodyTemplate = contentChild<Nullable<TemplateRef<TreeTableBodyTemplateContext>>>('body', { descendants: false });\n bodyTemplate: Nullable<TemplateRef<TreeTableBodyTemplateContext>>;\n\n readonly _footerTemplateSignal = contentChild<TemplateRef<TreeTableColumnsTemplateContext>>('footer', { descendants: false });\n get _footerTemplate(): TemplateRef<TreeTableColumnsTemplateContext> | undefined { return this._footerTemplateSignal(); }\n footerTemplate: Nullable<TemplateRef<TreeTableColumnsTemplateContext>>;\n\n readonly _summaryTemplateSignal = contentChild<TemplateRef<void>>('summary', { descendants: false });\n get _summaryTemplate(): TemplateRef<void> | undefined { return this._summaryTemplateSignal(); }\n summaryTemplate: Nullable<TemplateRef<void>>;\n\n readonly _emptyMessageTemplate = contentChild<Nullable<TemplateRef<TreeTableEmptyMessageTemplateContext>>>('emptymessage', { descendants: false });\n emptyMessageTemplate: Nullable<TemplateRef<TreeTableEmptyMessageTemplateContext>>;\n\n readonly _paginatorLeftTemplate = contentChild<Nullable<TemplateRef<void>>>('paginatorleft', { descendants: false });\n paginatorLeftTemplate: Nullable<TemplateRef<void>>;\n\n readonly _paginatorRightTemplate = contentChild<Nullable<TemplateRef<void>>>('paginatorright', { descendants: false });\n paginatorRightTemplate: Nullable<TemplateRef<void>>;\n\n readonly _paginatorDropdownItemTemplate = contentChild<Nullable<TemplateRef<void>>>('paginatordropdownitem', { descendants: false });\n paginatorDropdownItemTemplate: Nullable<TemplateRef<void>>;\n\n readonly _frozenHeaderTemplate = contentChild<Nullable<TemplateRef<TreeTableColumnsTemplateContext>>>('frozenheader', { descendants: false });\n frozenHeaderTemplate: Nullable<TemplateRef<TreeTableColumnsTemplateContext>>;\n\n readonly _frozenBodyTemplate = contentChild<Nullable<TemplateRef<void>>>('frozenbody', { descendants: false });\n frozenBodyTemplate: Nullable<TemplateRef<void>>;\n\n readonly _frozenFooterTemplate = contentChild<Nullable<TemplateRef<TreeTableColumnsTemplateContext>>>('frozenfooter', { descendants: false });\n frozenFooterTemplate: Nullable<TemplateRef<TreeTableColumnsTemplateContext>>;\n\n readonly _frozenColGroupTemplate = contentChild<Nullable<TemplateRef<TreeTableColumnsTemplateContext>>>('frozencolgroup', { descendants: false });\n frozenColGroupTemplate: Nullable<TemplateRef<TreeTableColumnsTemplateContext>>;\n\n readonly _loadingIconTemplateSignal = contentChild<TemplateRef<void>>('loadingicon', { descendants: false });\n get _loadingIconTemplate(): TemplateRef<void> | undefined { return this._loadingIconTemplateSignal(); }\n loadingIconTemplate: Nullable<TemplateRef<void>>;\n\n readonly _reorderIndicatorUpIconTemplate = contentChild<Nullable<TemplateRef<void>>>('reorderindicatorupicon', { descendants: false });\n reorderIndicatorUpIconTemplate: Nullable<TemplateRef<void>>;\n\n readonly _reorderIndicatorDownIconTemplate = contentChild<Nullable<TemplateRef<void>>>('reorderindicatordownicon', { descendants: false });\n reorderIndicatorDownIconTemplate: Nullable<TemplateRef<void>>;\n\n readonly _sortIconTemplateSignal = contentChild<TemplateRef<TreeTableSortIconTemplateContext>>('sorticon', { descendants: false });\n get _sortIconTemplate(): TemplateRef<TreeTableSortIconTemplateContext> | undefined { return this._sortIconTemplateSignal(); }\n sortIconTemplate: Nullable<TemplateRef<TreeTableSortIconTemplateContext>>;\n\n readonly _checkboxIconTemplateSignal = contentChild<TemplateRef<TreeTableCheckboxIconTemplateContext>>('checkboxicon', { descendants: false });\n get _checkboxIconTemplate(): TemplateRef<TreeTableCheckboxIconTemplateContext> | undefined { return this._checkboxIconTemplateSignal(); }\n checkboxIconTemplate: Nullable<TemplateRef<TreeTableCheckboxIconTemplateContext>>;\n\n readonly _headerCheckboxIconTemplateSignal = contentChild<TemplateRef<TreeTableHeaderCheckboxIconTemplateContext>>('headercheckboxicon', { descendants: false });\n get _headerCheckboxIconTemplate(): TemplateRef<TreeTableHeaderCheckboxIconTemplateContext> | undefined { return this._headerCheckboxIconTemplateSignal(); }\n headerCheckboxIconTemplate: Nullable<TemplateRef<TreeTableHeaderCheckboxIconTemplateContext>>;\n\n readonly _togglerIconTemplate = contentChild<Nullable<TemplateRef<TreeTableTogglerIconTemplateContext>>>('togglericon', { descendants: false });\n togglerIconTemplate: Nullable<TemplateRef<TreeTableTogglerIconTemplateContext>>;\n\n readonly _paginatorFirstPageLinkIconTemplateSignal = contentChild<TemplateRef<void>>('paginatorfirstpagelinkicon', { descendants: false });\n get _paginatorFirstPageLinkIconTemplate(): TemplateRef<void> | undefined { return this._paginatorFirstPageLinkIconTemplateSignal(); }\n paginatorFirstPageLinkIconTemplate: Nullable<TemplateRef<void>>;\n\n readonly _paginatorLastPageLinkIconTemplateSignal = contentChild<TemplateRef<void>>('paginatorlastpagelinkicon', { descendants: false });\n get _paginatorLastPageLinkIconTemplate(): TemplateRef<void> | undefined { return this._paginatorLastPageLinkIconTemplateSignal(); }\n paginatorLastPageLinkIconTemplate: Nullable<TemplateRef<void>>;\n\n readonly _paginatorPreviousPageLinkIconTemplateSignal = contentChild<TemplateRef<void>>('paginatorpreviouspagelinkicon', { descendants: false });\n get _paginatorPreviousPageLinkIconTemplate(): TemplateRef<void> | undefined { return this._paginatorPreviousPageLinkIconTemplateSignal(); }\n paginatorPreviousPageLinkIconTemplate: Nullable<TemplateRef<void>>;\n\n readonly _paginatorNextPageLinkIconTemplateSignal = contentChild<TemplateRef<void>>('paginatornextpagelinkicon', { descendants: false });\n get _paginatorNextPageLinkIconTemplate(): TemplateRef<void> | undefined { return this._paginatorNextPageLinkIconTemplateSignal(); }\n paginatorNextPageLinkIconTemplate: Nullable<TemplateRef<void>>;\n\n readonly _loaderTemplateSignal = contentChild<TemplateRef<void>>('loader', { descendants: false });\n get _loaderTemplate(): TemplateRef<void> | undefined { return this._loaderTemplateSignal(); }\n loaderTemplate: Nullable<TemplateRef<void>>;\n\n lastResizerHelperX: Nullable<number>;\n\n reorderIconWidth: Nullable<number>;\n\n reorderIconHeight: Nullable<number>;\n\n draggedColumn: Nullable<any[]>;\n\n dropPosition: Nullable<number>;\n\n preventSelectionSetterPropagation: Nullable<boolean>;\n\n selectedKeys: any = {};\n\n rowTouched: Nullable<boolean>;\n\n editingCell: Nullable<Element>;\n\n editingCellData: any | undefined | null;\n\n editingCellField: any | undefined | null;\n\n editingCellClick: Nullable<boolean>;\n\n documentEditListener: VoidListener;\n\n initialized: Nullable<boolean>;\n\n toggleRowIndex: Nullable<number>;\n\n onInit() {\n if (this.lazy() && this.lazyLoadOnInit() && !this.virtualScroll()) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n this.initialized = true;\n }\n\n readonly templates = contentChildren(HelixTemplate);\n\n onAfterContentInit() {\n this.templates().forEach((item) => {\n switch (item.getType()) {\n case 'caption':\n this.captionTemplate = item.template;\n break;\n\n case 'header':\n this.headerTemplate = item.template;\n break;\n\n case 'body':\n this.bodyTemplate = item.template;\n break;\n\n case 'footer':\n this.footerTemplate = item.template;\n break;\n\n case 'summary':\n this.summaryTemplate = item.template;\n break;\n\n case 'colgroup':\n this.colGroupTemplate = item.template;\n break;\n\n case 'emptymessage':\n this.emptyMessageTemplate = item.template;\n break;\n\n case 'paginatorleft':\n this.paginatorLeftTemplate = item.template;\n break;\n\n case 'paginatorright':\n this.paginatorRightTemplate = item.template;\n break;\n\n case 'paginatordropdownitem':\n this.paginatorDropdownItemTemplate = item.template;\n break;\n\n case 'frozenheader':\n this.frozenHeaderTemplate = item.template;\n break;\n\n case 'frozenbody':\n this.frozenBodyTemplate = item.template;\n break;\n\n case 'frozenfooter':\n this.frozenFooterTemplate = item.template;\n break;\n\n case 'frozencolgroup':\n this.frozenColGroupTemplate = item.template;\n break;\n\n case 'loadingicon':\n this.loadingIconTemplate = item.template;\n break;\n\n case 'reorderindicatorupicon':\n this.reorderIndicatorUpIconTemplate = item.template;\n break;\n\n case 'reorderindicatordownicon':\n this.reorderIndicatorDownIconTemplate = item.template;\n break;\n\n case 'sorticon':\n this.sortIconTemplate = item.template;\n break;\n\n case 'checkboxicon':\n this.checkboxIconTemplate = item.template;\n break;\n\n case 'headercheckboxicon':\n this.headerCheckboxIconTemplate = item.template;\n break;\n\n case 'togglericon':\n this.togglerIconTemplate = item.template;\n break;\n\n case 'paginatorfirstpagelinkicon':\n this.paginatorFirstPageLinkIconTemplate = item.template;\n break;\n\n case 'paginatorlastpagelinkicon':\n this.paginatorLastPageLinkIconTemplate = item.template;\n break;\n\n case 'paginatorpreviouspagelinkicon':\n this.paginatorPreviousPageLinkIconTemplate = item.template;\n break;\n\n case 'paginatornextpagelinkicon':\n this.paginatorNextPageLinkIconTemplate = item.template;\n break;\n\n case 'loader':\n this.loaderTemplate = item.template;\n break;\n }\n });\n }\n\n filterService = inject(FilterService);\n\n tableService = inject(TreeTableService);\n\n zone = inject(NgZone);\n\n // The `totalRecords` setter used to notify TreeTableService on every write; `totalRecords` is\n // now a model() signal, so the notification is reproduced as an effect (rule 3).\n private readonly _totalRecordsEffect = effect(() => {\n this.tableService.onTotalRecordsChange(this.totalRecords());\n });\n\n // NOTE: `virtualRowHeight`'s setter used to log a one-time deprecation console.log whenever a\n // consumer explicitly bound the (deprecated) property. It is now a plain input() (rule 1/3); the\n // console.log side effect was intentionally dropped rather than reproduced via effect(), because\n // an effect reading virtualRowHeight() fires once for every TreeTable instance at initialization\n // regardless of whether the consumer ever set the input (signals don't distinguish \"default value\"\n // from \"explicitly bound to the default\"), which would make the warning fire unconditionally for\n // every consumer instead of only those actually using the deprecated property.\n\n // Removed onChanges method (dead code with signal inputs): `value`, `sortField`, `sortOrder`,\n // `multiSortMeta`, and `selection` are now signal-based (model()), so Angular no longer routes\n // their changes through ngOnChanges/onChanges. Internal mutation paths (sort(), onPageChange(),\n // filter methods, selection handlers, etc.) already call updateSerializedValue()/sortSingle()/\n // sortMultiple()/updateselectedKeys() explicitly where needed. Mirrors table.ts (PR #391).\n\n updateSerializedValue() {\n this.serializedValue = [];\n\n if (this.paginator()) this.serializePageNodes();\n else this.serializeNodes(null, this.filteredNodes || this.value(), 0, true);\n }\n\n serializeNodes(parent: Nullable<TreeTableNode>, nodes: Nullable<TreeNode[]>, level: Nullable<number>, visible: Nullable<boolean>) {\n if (nodes && nodes.length) {\n for (let node of nodes) {\n node.parent = <TreeTableNode>parent;\n const rowNode = {\n node: node,\n parent: parent,\n level: level,\n visible: visible && (parent ? parent.expanded : true)\n };\n (<TreeNode[]>this.serializedValue).push(<TreeTableNode>rowNode);\n\n if (rowNode.visible && node.expanded) {\n this.serializeNodes(node, node.children, <number>level + 1, rowNode.visible);\n }\n }\n }\n }\n\n serializePageNodes() {\n let data = this.filteredNodes || this.value();\n this.serializedValue = [];\n if (data && data.length) {\n const first = this.lazy() ? 0 : <number>this.first();\n\n for (let i = first; i < first + <number>this.rows(); i++) {\n let node = data[i];\n if (node) {\n this.serializedValue.push({\n node: node,\n parent: <any>null,\n level: 0,\n visible: true\n });\n\n this.serializeNodes(node, node.children, 1, true);\n }\n }\n }\n }\n\n updateselectedKeys() {\n const dataKey = this.dataKey();\n if (dataKey && this.selection()) {\n this.selectedKeys = {};\n if (Array.isArray(this.selection())) {\n for (let node of this.selection()) {\n this.selectedKeys[String(resolveFieldData(node.data, dataKey))] = 1;\n }\n } else {\n this.selectedKeys[String(resolveFieldData((<any>this.selection()).data, dataKey))] = 1;\n }\n }\n }\n\n onPageChange(event: TreeTablePaginatorState) {\n this.first.set(<number>event.first);\n this.rows.set(<number>event.rows);\n\n if (this.lazy()) this.onLazyLoad.emit(this.createLazyLoadMetadata());\n else this.serializePageNodes();\n\n this.onPage.emit({\n first: <number>this.first(),\n rows: this.rows()\n });\n\n this.tableService.onUIUpdate(this.value());\n\n if (this.scrollable()) {\n this.resetScrollTop();\n }\n }\n\n sort(event: TreeTableSortEvent) {\n let originalEvent = event.originalEvent;\n\n const sortMode = this.sortMode();\n const scrollable = this.scrollable();\n const resetPageOnSort = this.resetPageOnSort();\n if (sortMode === 'single') {\n this.sortOrder.set(this.sortField() === event.field ? this.sortOrder() * -1 : this.defaultSortOrder());\n this.sortField.set(event.field);\n this.sortSingle();\n\n if (resetPageOnSort && scrollable) {\n this.resetScrollTop();\n }\n }\n if (sortMode === 'multiple') {\n let metaKey = (<KeyboardEvent>originalEvent).metaKey || (<KeyboardEvent>originalEvent).ctrlKey;\n let sortMeta = this.getSortMeta(<string>event.field);\n\n if (sortMeta) {\n if (!metaKey) {\n this.multiSortMeta.set([{ field: <string>event.field, order: sortMeta.order * -1 }]);\n\n if (resetPageOnSort && scrollable) {\n this.resetScrollTop();\n }\n } else {\n sortMeta.order = sortMeta.order * -1;\n }\n } else {\n if (!metaKey || !this.multiSortMeta()) {\n this.multiSortMeta.set([]);\n\n if (resetPageOnSort && scrollable) {\n this.resetScrollTop();\n }\n }\n (<SortMeta[]>this.multiSortMeta()).push({ field: <string>event.field, order: this.defaultSortOrder() });\n }\n\n this.sortMultiple();\n }\n }\n\n sortSingle() {\n if (this.sortField() && this.sortOrder()) {\n if (this.lazy()) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n } else if (this.value()) {\n this.sortNodes(<TreeNode[]>this.value());\n\n if (this.hasFilter()) {\n this._filter();\n }\n }\n\n let sortMeta: SortMeta = {\n field: <string>this.sortField(),\n order: this.sortOrder()\n };\n\n this.onSort.emit(sortMeta);\n this.tableService.onSort(sortMeta);\n this.updateSerializedValue();\n }\n }\n\n sortNodes(nodes: TreeNode[]) {\n if (!nodes || nodes.length === 0) {\n return;\n }\n\n if (this.customSort()) {\n this.sortFunction.emit({\n data: nodes,\n mode: this.sortMode(),\n field: <string>this.sortField(),\n order: this.sortOrder()\n });\n } else {\n nodes.sort((node1, node2) => {\n let value1 = resolveFieldData(node1.data, this.sortField());\n let value2 = resolveFieldData(node2.data, this.sortField());\n let result: number = 0;\n\n if (value1 == null && value2 != null) result = -1;\n else if (value1 != null && value2 == null) result = 1;\n else if (value1 == null && value2 == null) result = 0;\n else if (typeof value1 === 'string' && typeof value2 === 'string') result = value1.localeCompare(value2, undefined, { numeric: true });\n else result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n\n return this.sortOrder() * result;\n });\n }\n\n for (let node of nodes) {\n this.sortNodes(node.children as TreeNode[]);\n }\n }\n\n sortMultiple() {\n if (this.multiSortMeta()) {\n if (this.lazy()) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n } else if (this.value()) {\n this.sortMultipleNodes(<TreeNode[]>this.value());\n\n if (this.hasFilter()) {\n this._filter();\n }\n }\n\n this.onSort.emit({\n multisortmeta: this.multiSortMeta()\n });\n this.updateSerializedValue();\n this.tableService.onSort(<SortMeta[]>this.multiSortMeta());\n }\n }\n\n sortMultipleNodes(nodes: TreeNode[]) {\n if (!nodes || nodes.length === 0) {\n return;\n }\n\n if (this.customSort()) {\n this.sortFunction.emit({\n data: this.value(),\n mode: this.sortMode(),\n multiSortMeta: this.multiSortMeta()\n });\n } else {\n nodes.sort((node1, node2) => {\n return this.multisortField(node1, node2, <SortMeta[]>this.multiSortMeta(), 0);\n });\n }\n\n for (let node of nodes) {\n this.sortMultipleNodes(node.children as TreeNode[]);\n }\n }\n\n multisortField(node1: TreeTableNode, node2: TreeTableNode, multiSortMeta: SortMeta[], index: number): number {\n if (isEmpty(this.multiSortMeta()) || isEmpty(multiSortMeta[index])) {\n return 0;\n }\n\n let value1 = resolveFieldData(node1.data, multiSortMeta[index].field);\n let value2 = resolveFieldData(node2.data, multiSortMeta[index].field);\n let result: number = 0;\n\n if (value1 == null && value2 != null) result = -1;\n else if (value1 != null && value2 == null) result = 1;\n else if (value1 == null && value2 == null) result = 0;\n if (typeof value1 == 'string' || value1 instanceof String) {\n if (value1.localeCompare && value1 != value2) {\n return multiSortMeta[index].order * value1.localeCompare(value2, undefined, { numeric: true });\n }\n } else {\n result = value1 < value2 ? -1 : 1;\n }\n\n if (value1 == value2) {\n return multiSortMeta.length - 1 > index ? this.multisortField(node1, node2, multiSortMeta, index + 1) : 0;\n }\n\n return multiSortMeta[index].order * result;\n }\n\n getSortMeta(field: string) {\n const multiSortMeta = this.multiSortMeta();\n if (multiSortMeta && multiSortMeta.length) {\n for (let i = 0; i < multiSortMeta.length; i++) {\n if (multiSortMeta[i].field === field) {\n return multiSortMeta[i];\n }\n }\n }\n\n return null;\n }\n\n isSorted(field: string) {\n const sortMode = this.sortMode();\n if (sortMode === 'single') {\n return this.sortField() && this.sortField() === field;\n } else if (sortMode === 'multiple') {\n let sorted = false;\n const multiSortMeta = this.multiSortMeta();\n if (multiSortMeta) {\n for (let i = 0; i < multiSortMeta.length; i++) {\n if (multiSortMeta[i].field == field) {\n sorted = true;\n break;\n }\n }\n }\n return sorted;\n }\n }\n\n createLazyLoadMetadata(): any {\n return {\n first: this.first(),\n rows: this.rows(),\n sortField: this.sortField(),\n sortOrder: this.sortOrder(),\n filters: this.filters(),\n globalFilter: this.filters() && this.filters()['global'] ? (<FilterMetadata>this.filters()['global']).value : null,\n multiSortMeta: this.multiSortMeta(),\n forceUpdate: () => this.cd.detectChanges()\n };\n }\n\n onLazyItemLoad(event: TreeTableLazyLoadEvent) {\n this.onLazyLoad.emit({\n ...this.createLazyLoadMetadata(),\n ...event,\n rows: event.last - event.first\n });\n }\n /**\n * Resets scroll to top.\n * @group Method\n */\n public resetScrollTop() {\n if (this.virtualScroll()) this.scrollToVirtualIndex(0);\n else this.scrollTo({ top: 0 });\n }\n /**\n * Scrolls to given index when using virtual scroll.\n * @param {number} index - index of the element.\n * @group Method\n */\n public scrollToVirtualIndex(index: number) {\n const scrollableViewChild = this.scrollableViewChild();\n if (scrollableViewChild) {\n (<any>scrollableViewChild).scrollToVirtualIndex(<number>index);\n }\n\n if (this.scrollableFrozenViewChild()) {\n (<any>scrollableViewChild).scrollToVirtualIndex(index);\n }\n }\n /**\n * Scrolls to given index.\n * @param {ScrollToOptions} options - Scroll options.\n * @group Method\n */\n public scrollTo(options: ScrollToOptions) {\n const scrollableViewChild = this.scrollableViewChild();\n if (scrollableViewChild) {\n (<any>scrollableViewChild).scrollTo(options);\n }\n\n if (this.scrollableFrozenViewChild()) {\n (<any>scrollableViewChild).scrollTo(options);\n }\n }\n\n isEmpty() {\n let data = this.filteredNodes || this.value();\n return data == null || data.length == 0;\n }\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\n }\n\n onColumnResizeBegin(event: MouseEvent) {\n let containerLeft = <any>getOffset(this.el?.nativeElement).left;\n this.lastResizerHelperX = event.pageX - containerLeft + this.el?.nativeElement.scrollLeft;\n event.preventDefault();\n }\n\n onColumnResize(event: MouseEvent) {\n let containerLeft = <any>getOffset(this.el?.nativeElement).left;\n this.el?.nativeElement.setAttribute('data-h-unselectable-text', 'true');\n !this.$unstyled() && addStyle(this.el.nativeElement, { 'user-select': 'none' });\n (<ElementRef>this.resizeHelperViewChild()).nativeElement.style.height = this.el?.nativeElement.offsetHeight + 'px';\n (<ElementRef>this.resizeHelperViewChild()).nativeElement.style.top = 0 + 'px';\n (<ElementRef>this.resizeHelperViewChild()).nativeElement.style.left = event.pageX - containerLeft + this.el?.nativeElement.scrollLeft + 'px';\n\n (<ElementRef>this.resizeHelperViewChild()).nativeElement.style.display = 'block';\n }\n\n onColumnResizeEnd(event: MouseEvent, column: any) {\n let delta = (<ElementRef>this.resizeHelperViewChild()).nativeElement.offsetLeft - <number>this.lastResizerHelperX;\n let columnWidth = column.offsetWidth;\n let newColumnWidth = columnWidth + delta;\n let minWidth = column.style.minWidth || 15;\n\n if (columnWidth + delta > parseInt(minWidth)) {\n const columnResizeMode = this.columnResizeMode();\n if (columnResizeMode === 'fit') {\n let nextColumn = column.nextElementSibling;\n while (!nextColumn.offsetParent) {\n nextColumn = nextColumn.nextElementSibling;\n }\n\n if (nextColumn) {\n let nextColumnWidth = nextColumn.offsetWidth - delta;\n let nextColumnMinWidth = nextColumn.style.minWidth || 15;\n\n if (newColumnWidth > 15 && nextColumnWidth > parseInt(nextColumnMinWidth)) {\n if (this.scrollable()) {\n let scrollableView = this.findParentScrollableView(column);\n let scrollableBodyTable = <any>findSingle(scrollableView, '[data-pc-section=\"scrollablebody\"] table') || findSingle(scrollableView, '[data-pc-name=\"virtualscroller\"] table');\n let scrollableHeaderTable = <any>findSingle(scrollableView, '[data-pc-section=\"scrollableheadertable\"]');\n let scrollableFooterTable = <any>findSingle(scrollableView, '[data-pc-section=\"scrollablefootertable\"]');\n let resizeColumnIndex = getIndex(column);\n\n this.resizeColGroup(scrollableHeaderTable, resizeColumnIndex, newColumnWidth, nextColumnWidth);\n this.resizeColGroup(scrollableBodyTable, resizeColumnIndex, newColumnWidth, nextColumnWidth);\n this.resizeColGroup(scrollableFooterTable, resizeColumnIndex, newColumnWidth, nextColumnWidth);\n } else {\n column.style.width = newColumnWidth + 'px';\n if (nextColumn) {\n nextColumn.style.width = nextColumnWidth + 'px';\n }\n }\n }\n }\n } else if (columnResizeMode === 'expand') {\n if (this.scrollable()) {\n let scrollableView = this.findParentScrollableView(column);\n let scrollableBody = <any>findSingle(scrollableView, '[data-pc-section=\"scrollablebody\"]') || findSingle(scrollableView, '[data-pc-name=\"virtualscroller\"]');\n let scrollableHeader = <any>findSingle(scrollableView, '[data-pc-section=\"scrollableheader\"]');\n let scrollableFooter = <any>findSingle(scrollableView, '[data-pc-section=\"scrollablefooter\"]');\n let scrollableBodyTable = <any>findSingle(scrollableView, '[data-pc-section=\"scrollablebody\"] table') || findSingle(scrollableView, '[data-pc-name=\"virtualscroller\"] table');\n let scrollableHeaderTable = <any>findSingle(scrollableView, '[data-pc-section=\"scrollableheadertable\"]');\n let scrollableFooterTable = <any>findSingle(scrollableView, '[data-pc-section=\"scrollablefootertable\"]');\n scrollableBodyTable.style.width = scrollableBodyTable.offsetWidth + delta + 'px';\n scrollableHeaderTable.style.width = scrollableHeaderTable.offsetWidth + delta + 'px';\n if (scrollableFooterTable) {\n scrollableFooterTable.style.width = scrollableFooterTable.offsetWidth + delta + 'px';\n }\n let resizeColumnIndex = getIndex(column);\n\n const scrollableBodyTableWidth = column ? scrollableBodyTable.offsetWidth + delta : newColumnWidth;\n const scrollableHeaderTableWidth = column ? scrollableHeaderTable.offsetWidth + delta : newColumnWidth;\n const isContainerInViewport = this.el?.nativeElement.offsetWidth >= scrollableBodyTableWidth;\n\n let setWidth = (container: HTMLElement, table: HTMLElement, width: number, isContainerInViewport: boolean) => {\n if (container && table) {\n container.style.width = isContainerInViewport ? width + calculateScrollbarWidth(scrollableBody) + 'px' : 'auto';\n table.style.width = width + 'px';\n }\n };\n\n setWidth(scrollableBody, scrollableBodyTable, scrollableBodyTableWidth, isContainerInViewport);\n setWidth(scrollableHeader, scrollableHeaderTable, scrollableHeaderTableWidth, isContainerInViewport);\n setWidth(scrollableFooter, scrollableFooterTable, scrollableHeaderTableWidth, isContainerInViewport);\n\n this.resizeColGroup(scrollableHeaderTable, resizeColumnIndex, newColumnWidth, null);\n this.resizeColGroup(scrollableBodyTable, resizeColumnIndex, newColumnWidth, null);\n this.resizeColGroup(scrollableFooterTable, resizeColumnIndex, newColumnWidth, null);\n } else {\n const tableViewChild = this.tableViewChild();\n (<ElementRef>this.tableViewChild()).nativeElement.style.width = tableViewChild?.nativeElement.offsetWidth + delta + 'px';\n column.style.width = newColumnWidth + 'px';\n let containerWidth = tableViewChild?.nativeElement.style.width;\n (<ElementRef>this.el).nativeElement.style.width = containerWidth + 'px';\n }\n }\n\n this.onColResize.emit({\n element: column,\n delta: delta\n });\n }\n\n (this.resizeHelperViewChild() as ElementRef).nativeElement.style.display = 'none';\n\n this.el.nativeElement.removeAttribute('data-h-unselectable-text');\n !this.$unstyled() && (this.el.nativeElement.style['user-select'] = '');\n }\n\n findParentScrollableView(column: any) {\n if (column) {\n let parent = column.parentElement;\n while (parent && !findSingle(parent, '[data-pc-section=\"scrollableview\"]')) {\n parent = parent.parentElement;\n }\n\n return parent;\n } else {\n return null;\n }\n }\n\n resizeColGroup(table: Nullable<HTMLElement>, resizeColumnIndex: Nullable<number>, newColumnWidth: Nullable<number>, nextColumnWidth: Nullable<number>) {\n if (table) {\n let colGroup = table.children[0].nodeName === 'COLGROUP' ? table.children[0] : null;\n\n if (colGroup) {\n let col = colGroup.children[<number>resizeColumnIndex];\n let nextCol = col.nextElementSibling;\n (<HTMLElement>col).style.width = newColumnWidth + 'px';\n\n if (nextCol && nextColumnWidth) {\n (<HTMLElement>nextCol).style.width = nextColumnWidth + 'px';\n }\n } else {\n throw 'Scrollable tables require a colgroup to support resizable columns';\n }\n }\n }\n\n onColumnDragStart(event: DragEvent, columnElement: any) {\n this.reorderIconWidth = getHiddenElementOuterWidth(this.reorderIndicatorUpViewChild()?.nativeElement);\n this.reorderIconHeight = getHiddenElementOuterHeight(this.reorderIndicatorDownViewChild()?.nativeElement);\n this.draggedColumn = columnElement;\n (<any>event).dataTransfer.setData('text', 'b'); // For firefox\n }\n\n onColumnDragEnter(event: DragEvent, dropHeader: any) {\n if (this.reorderableColumns() && this.draggedColumn && dropHeader) {\n event.preventDefault();\n let containerOffset = <any>getOffset(this.el?.nativeElement);\n let dropHeaderOffset = <any>getOffset(dropHeader);\n\n if (this.draggedColumn != dropHeader) {\n let targetLeft = dropHeaderOffset.left - containerOffset.left;\n let targetTop = containerOffset.top - dropHeaderOffset.top;\n let columnCenter = dropHeaderOffset.left + dropHeader.offsetWidth / 2;\n\n (<ElementRef>this.reorderIndicatorUpViewChild()).nativeElement.style.top = dropHeaderOffset.top - containerOffset.top - (<number>this.reorderIconHeight - 1) + 'px';\n (<ElementRef>this.reorderIndicatorDownViewChild()).nativeElement.style.top = dropHeaderOffset.top - containerOffset.top + dropHeader.offsetHeight + 'px';\n\n if (event.pageX > columnCenter) {\n (<ElementRef>this.reorderIndicatorUpViewChild()).nativeElement.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(<number>this.reorderIconWidth / 2) + 'px';\n (<ElementRef>this.reorderIndicatorDownViewChild()).nativeElement.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(<number>this.reorderIconWidth / 2) + 'px';\n this.dropPosition = 1;\n } else {\n (<ElementRef>this.reorderIndicatorUpViewChild()).nativeElement.style.left = targetLeft - Math.ceil(<number>this.reorderIconWidth / 2) + 'px';\n (<ElementRef>this.reorderIndicatorDownViewChild()).nativeElement.style.left = targetLeft - Math.ceil(<number>this.reorderIconWidth / 2) + 'px';\n this.dropPosition = -1;\n }\n\n (<ElementRef>this.reorderIndicatorUpViewChild()).nativeElement.style.display = 'block';\n (<ElementRef>this.reorderIndicatorDownViewChild()).nativeElement.style.display = 'block';\n } else {\n (<any>event).dataTransfer.dropEffect = 'none';\n }\n }\n }\n\n onColumnDragLeave(event: DragEvent) {\n if (this.reorderableColumns() && this.draggedColumn) {\n event.preventDefault();\n (<ElementRef>this.reorderIndicatorUpViewChild()).nativeElement.style.display = 'none';\n (<ElementRef>this.reorderIndicatorDownViewChild()).nativeElement.style.display = 'none';\n }\n }\n\n onColumnDrop(event: DragEvent, dropColumn: any) {\n event.preventDefault();\n if (this.draggedColumn) {\n let dragIndex = DomHandler.indexWithinGroup(this.draggedColumn, 'ttreorderablecolumn');\n let dropIndex = DomHandler.indexWithinGroup(dropColumn, 'ttreorderablecolumn');\n let allowDrop = dragIndex != dropIndex;\n if (allowDrop && ((dropIndex - dragIndex == 1 && this.dropPosition === -1) || (dragIndex - dropIndex == 1 && this.dropPosition === 1))) {\n allowDrop = false;\n }\n\n if (allowDrop && dropIndex < dragIndex && this.dropPosition === 1) {\n dropIndex = dropIndex + 1;\n }\n\n if (allowDrop && dropIndex > dragIndex && this.dropPosition === -1) {\n dropIndex = dropIndex - 1;\n }\n\n if (allowDrop) {\n const columns = this.columns();\n reorderArray(<any[]>columns, dragIndex, dropIndex);\n\n this.onColReorder.emit({\n dragIndex: dragIndex,\n dropIndex: dropIndex,\n columns: columns\n });\n }\n\n (<ElementRef>this.reorderIndicatorUpViewChild()).nativeElement.style.display = 'none';\n (<ElementRef>this.reorderIndicatorDownViewChild()).nativeElement.style.display = 'none';\n (this.draggedColumn as any).draggable = false;\n this.draggedColumn = null;\n this.dropPosition = null;\n }\n }\n\n handleRowClick(event: any) {\n let targetNode = (<HTMLElement>event.originalEvent.target).nodeName;\n if (targetNode == 'INPUT' || targetNode == 'BUTTON' || targetNode == 'A' || isClickable(event.originalEvent.target)) {\n return;\n }\n\n const selectionMode = this.selectionMode();\n if (selectionMode) {\n this.preventSelectionSetterPropagation = true;\n let rowNode = event.rowNode;\n let selected = this.isSelected((<any>rowNode).node);\n let metaSelection = this.rowTouched ? false : this.metaKeySelection();\n const dataKey = this.dataKey();\n let dataKeyValue = dataKey ? String(resolveFieldData((<TreeTableNode>rowNode.node).data, dataKey)) : null;\n\n if (metaSelection) {\n let keyboardEvent = <KeyboardEvent>event.originalEvent;\n let metaKey = keyboardEvent.metaKey || keyboardEvent.ctrlKey;\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n this.selection.set(null);\n this.selectedKeys = {};\n } else {\n let selectionIndex = this.findIndexInSelection(rowNode.node);\n this.selection.set(this.selection().filter((val: TreeTableNode, i: number) => i != selectionIndex));\n if (dataKeyValue) {\n delete this.selectedKeys[dataKeyValue];\n }\n }\n\n this.onNodeUnselect.emit({\n originalEvent: event.originalEvent,\n node: <TreeTableNode>rowNode.node,\n type: 'row'\n });\n } else {\n if (this.isSingleSelectionMode()) {\n this.selection.set(rowNode.node);\n if (dataKeyValue) {\n this.selectedKeys = {};\n this.selectedKeys[dataKeyValue] = 1;\n }\n } else if (this.isMultipleSelectionMode()) {\n if (metaKey) {\n this.selection.set(this.selection() || []);\n } else {\n this.selection.set([]);\n this.selectedKeys = {};\n }\n\n this.selection.set([...this.selection(), rowNode.node]);\n if (dataKeyValue) {\n this.selectedKeys[dataKeyValue] = 1;\n }\n }\n\n this.onNodeSelect.emit({\n originalEvent: event.originalEvent,\n node: rowNode.node,\n type: 'row',\n index: (<any>event).rowIndex\n });\n }\n } else {\n if (selectionMode === 'single') {\n if (selected) {\n this.selection.set(null);\n this.selectedKeys = {};\n this.onNodeUnselect.emit({\n originalEvent: event.originalEvent,\n node: <TreeTableNode>rowNode.node,\n type: 'row'\n });\n } else {\n this.selection.set(rowNode.node);\n this.onNodeSelect.emit({\n originalEvent: event.originalEvent,\n node: rowNode.node,\n type: 'row',\n index: event.rowIndex\n });\n if (dataKeyValue) {\n this.selectedKeys = {};\n this.selectedKeys[dataKeyValue] = 1;\n }\n }\n } else if (selectionMode === 'multiple') {\n if (selected) {\n let selectionIndex = this.findIndexInSelection(rowNode.node);\n this.selection.set(this.selection().filter((val: TreeTableNode, i: number) => i != selectionIndex));\n this.onNodeUnselect.emit({\n originalEvent: event.originalEvent,\n node: rowNode.node,\n type: 'row'\n });\n if (dataKeyValue) {\n delete this.selectedKeys[dataKeyValue];\n }\n } else {\n this.selection.set(this.selection() ? [...this.selection(), rowNode.node] : [rowNode.node]);\n this.onNodeSelect.emit({\n originalEvent: event.originalEvent,\n node: rowNode.node,\n type: 'row',\n index: event.rowIndex\n });\n if (dataKeyValue) {\n this.selectedKeys[dataKeyValue] = 1;\n }\n }\n }\n }\n\n this.tableService.onSelectionChange();\n }\n\n this.rowTouched = false;\n }\n\n handleRowTouchEnd(event: Event) {\n this.rowTouched = true;\n }\n\n handleRowRightClick(event: any) {\n if (this.contextMenu()) {\n const node = event.rowNode.node;\n\n const showContextMenu = () => {\n this.contextMenu().show(event.originalEvent);\n this.contextMenu().hideCallback = () => {\n this.contextMenuSelection.set(null);\n this.tableService.onContextMenu(null);\n };\n };\n\n const contextMenuSelectionMode = this.contextMenuSelectionMode();\n if (contextMenuSelectionMode === 'separate') {\n this.contextMenuSelection.set(node);\n this.tableService.onContextMenu(node);\n showContextMenu();\n this.onContextMenuSelect.emit({ originalEvent: event.originalEvent, node: node });\n } else if (contextMenuSelectionMode === 'joint') {\n this.preventSelectionSetterPropagation = true;\n let selected = this.isSelected(node);\n const dataKey = this.dataKey();\n let dataKeyValue = dataKey ? String(resolveFieldData(node.data, dataKey)) : null;\n\n if (!selected) {\n if (this.isSingleSelectionMode()) {\n this.selection.set(node);\n } else if (this.isMultipleSelectionMode()) {\n this.selection.set([node]);\n }\n\n if (dataKeyValue) {\n this.selectedKeys[dataKeyValue] = 1;\n }\n }\n\n this.contextMenuSelection.set(node);\n this.tableService.onContextMenu(node);\n\n showContextMenu();\n this.onContextMenuSelect.emit({ originalEvent: event.originalEvent, node: node });\n }\n }\n }\n\n toggleNodeWithCheckbox(event: any) {\n // legacy selection support, will be removed in v18\n this.selection.set(this.selection() || []);\n this.preventSelectionSetterPropagation = true;\n let node = event.rowNode.node;\n let selected = this.isSelected(node);\n\n if (selected) {\n this.propagateSelectionDown(node, false);\n if (event.rowNode.parent) {\n this.propagateSelectionUp(node.parent, false);\n }\n this.onNodeUnselect.emit({ originalEvent: event, node: node });\n } else {\n this.propagateSelectionDown(node, true);\n if (event.rowNode.parent) {\n this.propagateSelectionUp(node.parent, true);\n }\n this.onNodeSelect.emit({ originalEvent: event, node: node });\n }\n\n this.tableService.onSelectionChange();\n }\n\n toggleNodesWithCheckbox(event: Event, check: boolean) {\n // legacy selection support, will be removed in v18\n let data = this.filteredNodes || this.value();\n this.selection.set(check && data ? data.slice() : []);\n\n this.toggleAll(check);\n\n if (!check) {\n this.selection.set([]);\n this.selectedKeys = {};\n }\n\n this.preventSelectionSetterPropagation = true;\n this.tableService.onSelectionChange();\n\n this.onHeaderCheckboxToggle.emit({ originalEvent: event, checked: check });\n }\n\n toggleAll(checked: boolean) {\n let data = this.filteredNodes || this.value();\n\n if (!this.selectionKeys()) {\n if (data && data.length) {\n for (let node of data) {\n this.propagateSelectionDown(node, checked);\n }\n }\n } else {\n // legacy selection support, will be removed in v18\n if (data && data.length) {\n for (let node of data) {\n this.propagateDown(node, checked);\n }\n // selectionKeys is mutated in place above; re-set with a shallow clone so the\n // selectionKeys model signal detects the change and emits selectionKeysChange.\n this.selectionKeys.set({ ...this.selectionKeys() });\n }\n }\n }\n\n propagateSelectionUp(node: TreeTableNode, select: boolean) {\n // legacy selection support, will be removed in v18\n if (node.children && node.children.length) {\n let selectedChildCount: number = 0;\n let childPartialSelected: boolean = false;\n const dataKey = this.dataKey();\n let dataKeyValue = dataKey ? String(resolveFieldData(node.data, dataKey)) : null;\n\n for (let child of node.children) {\n if (this.isSelected(child)) selectedChildCount++;\n else if (child.partialSelected) childPartialSelected = true;\n }\n\n if (select && selectedChildCount == node.children.length) {\n this.selection.set([...(this.selection() || []), node]);\n node.partialSelected = false;\n if (dataKeyValue) {\n this.selectedKeys[dataKeyValue] = 1;\n }\n } else {\n if (!select) {\n let index = this.findIndexInSelection(node);\n if (index >= 0) {\n this.selection.set(this.selection().filter((val: any, i: number) => i != index));\n\n if (dataKeyValue) {\n delete this.selectedKeys[dataKeyValue];\n }\n }\n }\n\n if (childPartialSelected || (selectedChildCount > 0 && selectedChildCount != node.children.length)) node.partialSelected = true;\n else node.partialSelected = false;\n }\n }\n\n let parent = node.parent;\n node.checked = select;\n if (parent) {\n this.propagateSelectionUp(parent, select);\n }\n }\n\n propagateSelectionDown(node: TreeTableNode, select: boolean) {\n // legacy selection support, will be removed in v18\n let index = this.findIndexInSelection(node);\n const dataKey = this.dataKey();\n let dataKeyValue = dataKey ? String(resolveFieldData(node.data, dataKey)) : null;\n\n if (select && index == -1) {\n this.selection.set([...(this.selection() || []), node]);\n if (dataKeyValue) {\n this.selectedKeys[dataKeyValue] = 1;\n }\n } else if (!select && index > -1) {\n this.selection.set(this.selection().filter((val: any, i: number) => i != index));\n if (dataKeyValue) {\n delete this.selectedKeys[dataKeyValue];\n }\n }\n\n node.partialSelected = false;\n node.checked = select;\n\n if (node.children && node.children.length) {\n for (let child of node.children) {\n this.propagateSelectionDown(child, select);\n }\n }\n }\n\n isSelected(node: TreeTableNode) {\n // legacy selection support, will be removed in v18\n if (node && this.selection()) {\n const dataKey = this.dataKey();\n if (dataKey) {\n if (node.hasOwnProperty('checked')) {\n return node['checked'];\n } else {\n return this.selectedKeys[resolveFieldData(node.data, dataKey)] !== undefined;\n }\n } else {\n if (Array.isArray(this.selection())) return this.findIndexInSelection(node) > -1;\n else return this.equals(node, this.selection());\n }\n }\n\n return false;\n }\n\n isNodeSelected(node) {\n return this.selectionMode() && this.selectionKeys() ? this.selectionKeys()[this.nodeKey(node)]?.checked === true : false;\n }\n\n isNodePartialSelected(node) {\n return this.selectionMode() && this.selectionKeys() ? this.selectionKeys()[this.nodeKey(node)]?.partialChecked === true : false;\n }\n\n nodeKey(node) {\n const dataKey = this.dataKey();\n return resolveFieldData(node, dataKey) || resolveFieldData(node?.data, dataKey);\n }\n\n toggleCheckbox(event) {\n let { rowNode, check, originalEvent } = event;\n let node = rowNode.node;\n if (this.selectionKeys()) {\n this.propagateDown(node, check);\n if (node.parent) {\n this.propagateUp(node.parent, check);\n }\n\n // selectionKeys is mutated in place above; re-set with a shallow clone so the\n // selectionKeys model signal detects the change and emits selectionKeysChange.\n this.selectionKeys.set({ ...this.selectionKeys() });\n } else {\n this.toggleNodeWithCheckbox({ originalEvent, rowNode });\n }\n\n this.tableService.onSelectionChange();\n }\n\n propagateDown(node, check) {\n if (check) {\n this.selectionKeys()[this.nodeKey(node)] = { checked: true, partialChecked: false };\n } else {\n delete this.selectionKeys()[this.nodeKey(node)];\n }\n\n if (node.children && node.children.length) {\n for (let child of node.children) {\n this.propagateDown(child, check);\n }\n }\n }\n\n propagateUp(node, check) {\n let checkedChildCount = 0;\n let childPartialSelected = false;\n\n for (let child of node.children) {\n if (this.selectionKeys()[this.nodeKey(child)] && this.selectionKeys()[this.nodeKey(child)].checked) checkedChildCount++;\n else if (this.selectionKeys()[this.nodeKey(child)] && this.selectionKeys()[this.nodeKey(child)].partialChecked) childPartialSelected = true;\n }\n\n if (check && checkedChildCount === node.children.length) {\n this.selectionKeys()[this.nodeKey(node)] = { checked: true, partialChecked: false };\n } else {\n if (!check) {\n delete this.selectionKeys()[this.nodeKey(node)];\n }\n\n if (childPartialSelected || (checkedChildCount > 0 && checkedChildCount !== node.children.length)) this.selectionKeys()[this.nodeKey(node)] = { checked: false, partialChecked: true };\n else this.selectionKeys()[this.nodeKey(node)] = { checked: false, partialChecked: false };\n }\n\n let parent = node.parent;\n if (parent) {\n this.propagateUp(parent, check);\n }\n }\n\n findIndexInSelection(node: any) {\n let index: number = -1;\n if (this.selection() && this.selection().length) {\n for (let i = 0; i < this.selection().length; i++) {\n if (this.equals(node, this.selection()[i])) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n }\n\n isSingleSelectionMode() {\n return this.selectionMode() === 'single';\n }\n\n isMultipleSelectionMode() {\n return this.selectionMode() === 'multiple';\n }\n\n equals(node1: TreeTableNode, node2: TreeTableNode) {\n return this.compareSelectionBy() === 'equals' ? equals(node1, node2) : equals(node1.data, node2.data, this.dataKey());\n }\n\n filter(value: string | string[], field: string, matchMode: string) {\n if (this.filterTimeout) {\n clearTimeout(this.filterTimeout);\n }\n\n if (!this.isFilterBlank(value)) {\n this.filters()[field] = { value: value, matchMode: matchMode };\n } else if (this.filters()[field]) {\n delete this.filters()[field];\n }\n\n this.filterTimeout = setTimeout(() => {\n this._filter();\n this.filterTimeout = null;\n }, this.filterDelay());\n }\n\n filterGlobal(value: string, matchMode: string) {\n this.filter(value, 'global', matchMode);\n }\n\n isFilterBlank(filter: any): boolean {\n if (filter !== null && filter !== undefined) {\n if ((typeof filter === 'string' && filter.trim().length == 0) || (Array.isArray(filter) && filter.length == 0)) return true;\n else return false;\n }\n return true;\n }\n\n _filter() {\n if (this.lazy()) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n } else {\n const value = this.value();\n if (!value) {\n return;\n }\n\n if (!this.hasFilter()) {\n this.filteredNodes = null;\n if (this.paginator()) {\n this.totalRecords.set(value ? value.length : 0);\n }\n } else {\n let globalFilterFieldsArray;\n if (this.filters()['global']) {\n const columns = this.columns();\n const globalFilterFields = this.globalFilterFields();\n if (!columns && !globalFilterFields) throw new Error('Global filtering requires dynamic columns or globalFilterFields to be defined.');\n else globalFilterFieldsArray = globalFilterFields || columns;\n }\n\n this.filteredNodes = [];\n const isStrictMode = this.filterMode() === 'strict';\n let isValueChanged = false;\n\n for (let node of value) {\n let copyNode = { ...node };\n let localMatch = true;\n let globalMatch = false;\n let paramsWithoutNode;\n\n for (let prop in this.filters()) {\n if (this.filters().hasOwnProperty(prop) && prop !== 'global') {\n let filterMeta = <FilterMetadata>this.filters()[prop];\n let filterField = prop;\n let filterValue = filterMeta.value;\n let filterMatchMode = filterMeta.matchMode || 'startsWith';\n let filterConstraint = (<any>this.filterService).filters[filterMatchMode];\n paramsWithoutNode = { filterField, filterValue, filterConstraint, 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 localMatch = false;\n }\n\n if (!localMatch) {\n break;\n }\n }\n }\n\n if (this.filters()['global'] && !globalMatch && globalFilterFieldsArray) {\n let copyNodeForGlobal = { ...copyNode };\n let filterField = undefined;\n let filterValue = (<FilterMetadata>this.filters()['global']).value;\n let filterConstraint = (<any>this.filterService).filters[(<any>this.filters())['global'].matchMode];\n paramsWithoutNode = {\n filterField,\n filterValue,\n filterConstraint,\n isStrictMode,\n globalFilterFieldsArray\n };\n\n if (\n (isStrictMode && (this.findFilteredNodes(copyNodeForGlobal, paramsWithoutNode) || this.isFilterMatched(copyNodeForGlobal, paramsWithoutNode))) ||\n (!isStrictMode && (this.isFilterMatched(copyNodeForGlobal, paramsWithoutNode) || this.findFilteredNodes(copyNodeForGlobal, paramsWithoutNode)))\n ) {\n globalMatch = true;\n copyNode = copyNodeForGlobal;\n }\n }\n\n let matches = localMatch;\n if (this.filters()['global']) {\n matches = localMatch && globalMatch;\n }\n\n if (matches) {\n this.filteredNodes.push(copyNode);\n }\n\n isValueChanged = isValueChanged || !localMatch || globalMatch || (localMatch && this.filteredNodes.length > 0) || (!globalMatch && this.filteredNodes.length === 0);\n }\n\n if (!isValueChanged) {\n this.filteredNodes = null;\n }\n\n if (this.paginator()) {\n this.totalRecords.set(this.filteredNodes ? this.filteredNodes.length : value ? value.length : 0);\n }\n }\n this.cd.markForCheck();\n }\n\n this.first.set(0);\n\n const filteredValue = this.filteredNodes || this.value();\n\n this.onFilter.emit({\n filters: this.filters(),\n filteredValue: filteredValue\n });\n\n this.tableService.onUIUpdate(filteredValue);\n this.updateSerializedValue();\n\n if (this.scrollable()) {\n this.resetScrollTop();\n }\n }\n\n findFilteredNodes(node: TreeTableNode, 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 return true;\n }\n }\n }\n\n isFilterMatched(node: TreeTableNode, filterOptions: TreeTableFilterOptions) {\n let { filterField, filterValue, filterConstraint, isStrictMode, globalFilterFieldsArray } = <any>filterOptions;\n let matched = false;\n const isMatched = (field: string) => filterConstraint(resolveFieldData(node.data, field), filterValue, <string>this.filterLocale());\n\n matched = globalFilterFieldsArray?.length ? globalFilterFieldsArray.some((globalFilterField) => isMatched(globalFilterField.field || globalFilterField)) : isMatched(filterField);\n\n if (!matched || (isStrictMode && !this.isNodeLeaf(node))) {\n matched =\n this.findFilteredNodes(node, {\n filterField,\n filterValue,\n filterConstraint,\n isStrictMode,\n globalFilterFieldsArray\n }) || matched;\n }\n\n return matched;\n }\n\n isNodeLeaf(node: TreeTableNode) {\n return node.leaf === false ? false : !(node.children && node.children.length);\n }\n\n hasFilter() {\n let empty = true;\n for (let prop in this.filters()) {\n if (this.filters().hasOwnProperty(prop)) {\n empty = false;\n break;\n }\n }\n\n return !empty;\n }\n /**\n * Clears the sort and paginator state.\n * @group Method\n */\n public reset() {\n this.sortField.set(null);\n this.sortOrder.set(1);\n this.multiSortMeta.set(null);\n this.tableService.onSort(null);\n\n this.filteredNodes = null;\n // `filters` is a plain input() (no filtersChange output), so it cannot be reassigned;\n // clear it in place instead, mirroring table.ts's approach for its filters input.\n for (const key of Object.keys(this.filters())) {\n delete this.filters()[key];\n }\n\n this.first.set(0);\n\n if (this.lazy()) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n } else {\n const value = this.value();\n this.totalRecords.set(value ? value.length : 0);\n }\n }\n\n updateEditingCell(cell: any, data: any, field: string) {\n this.editingCell = cell;\n this.editingCellData = data;\n this.editingCellField = field;\n this.bindDocumentEditListener();\n }\n\n isEditingCellValid() {\n return this.editingCell && find(this.editingCell, '.ng-invalid.ng-dirty').length === 0;\n }\n\n bindDocumentEditListener() {\n if (!this.documentEditListener) {\n this.documentEditListener = this.renderer.listen(this.document, 'click', (event) => {\n if (this.editingCell && !this.editingCellClick && this.isEditingCellValid()) {\n !this.$unstyled() && removeClass(this.editingCell, 'h-cell-editing');\n this.editingCell = null;\n this.onEditComplete.emit({ field: this.editingCellField, data: this.editingCellData });\n this.editingCellField = null;\n this.editingCellData = null;\n this.unbindDocumentEditListener();\n }\n\n this.editingCellClick = false;\n });\n }\n }\n\n unbindDocumentEditListener() {\n if (this.documentEditListener) {\n this.documentEditListener();\n this.documentEditListener = null;\n }\n }\n\n onDestroy() {\n this.unbindDocumentEditListener();\n this.editingCell = null;\n this.editingCellField = null;\n this.editingCellData = null;\n this.initialized = null;\n }\n\n get dataP() {\n return this.cn({\n scrollable: this.scrollable(),\n 'flex-scrollable': this.scrollable() && this.scrollHeight() === 'flex',\n loading: this.loading(),\n empty: this.isEmpty()\n });\n }\n}\n\n@Component({\n selector: '[hTreeTableBody]',\n standalone: false,\n templateUrl: './ttbody.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Eager,\n host: {\n '[attr.data-h]': 'dataP'\n }\n})\nexport class TTBody extends BaseComponent {\n readonly columns = input<any[]>(undefined, { alias: \"hTreeTableBody\" });\n\n readonly template = input<Nullable<TemplateRef<any>>>(undefined, { alias: \"pTreeTableBodyTemplate\" });\n\n readonly frozen = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n readonly serializedNodes = input<any>();\n\n readonly scrollerOptions = input<any>();\n\n subscription: Subscription;\n\n constructor(\n public tt: TreeTable,\n public treeTableService: TreeTableService\n ) {\n super();\n this.subscription = this.tt.tableService.uiUpdateSource$.subscribe(() => {\n if (this.tt.virtualScroll()) {\n this.cd.detectChanges();\n }\n });\n }\n\n getScrollerOption(option: any, options?: any) {\n if (this.tt.virtualScroll()) {\n options = options || this.scrollerOptions();\n return options ? options[option] : null;\n }\n\n return null;\n }\n\n getRowIndex(rowIndex: number) {\n const getItemOptions = this.getScrollerOption('getItemOptions');\n return getItemOptions ? getItemOptions(rowIndex).index : rowIndex;\n }\n\n onDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n get dataP() {\n return this.cn({\n hoverable: this.tt.rowHover() || this.tt.selectionMode(),\n frozen: this.frozen()\n });\n }\n}\n\n@Component({\n selector: '[ttScrollableView]',\n standalone: false,\n templateUrl: './ttscrollableview.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Eager,\n providers: [TreeTableStyle]\n})\nexport class TTScrollableView extends BaseComponent {\n hostName = 'TreeTable';\n\n readonly columns = input<any[]>(undefined, { alias: \"ttScrollableView\" });\n\n readonly frozen = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n readonly scrollHeaderViewChild = viewChild<Nullable<ElementRef>>('scrollHeader');\n\n readonly scrollHeaderBoxViewChild = viewChild<Nullable<ElementRef>>('scrollHeaderBox');\n\n readonly scrollBodyViewChild = viewChild<Nullable<ElementRef>>('scrollBody');\n\n readonly scrollTableViewChild = viewChild<Nullable<ElementRef>>('scrollTable');\n\n readonly scrollLoadingTableViewChild = viewChild<Nullable<ElementRef>>('loadingTable');\n\n readonly scrollFooterViewChild = viewChild<Nullable<ElementRef>>('scrollFooter');\n\n readonly scrollFooterBoxViewChild = viewChild<Nullable<ElementRef>>('scrollFooterBox');\n\n readonly scrollableAlignerViewChild = viewChild<Nullable<ElementRef>>('scrollableAligner');\n\n readonly scroller = viewChild<Nullable<Scroller>>('scroller');\n\n headerScrollListener: VoidListener;\n\n bodyScrollListener: VoidListener;\n\n footerScrollListener: VoidListener;\n\n frozenSiblingBody: Nullable<Element>;\n\n totalRecordsSubscription: Nullable<Subscription>;\n\n readonly scrollHeight = input<string | undefined | null>();\n\n preventBodyScrollPropagation: boolean | undefined;\n\n _componentStyle = inject(TreeTableStyle);\n\n // The `scrollHeight` setter used to log a deprecation console.log when a percentage/calc value\n // was provided; `scrollHeight` is now a plain input(), so the warning is reproduced as an effect\n // (rule 3).\n private readonly _scrollHeightEffect = effect(() => {\n const val = this.scrollHeight();\n if (val != null && (val.includes('%') || val.includes('calc'))) {\n console.log('Percentage scroll height calculation is removed in favor of the more performant CSS based flex mode, use scrollHeight=\"flex\" instead.');\n }\n });\n\n constructor(\n public tt: TreeTable,\n public zone: NgZone\n ) {\n super();\n }\n\n onAfterViewInit() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.frozen()) {\n if (this.tt.frozenColumns() || this.tt.frozenBodyTemplate || this.tt._frozenBodyTemplate()) {\n addClass(this.el.nativeElement, 'h-treetable-unfrozen-view');\n }\n\n let frozenView = this.el.nativeElement.previousElementSibling;\n if (frozenView) {\n if (this.tt.virtualScroll()) this.frozenSiblingBody = findSingle(frozenView, '[data-pc-name=\"virtualscroller\"]');\n else this.frozenSiblingBody = findSingle(frozenView, '[data-pc-section=\"scrollablebody\"]');\n }\n\n if (this.scrollHeight()) {\n let scrollBarWidth = calculateScrollbarWidth();\n const scrollHeaderBoxViewChild = this.scrollHeaderBoxViewChild();\n if (scrollHeaderBoxViewChild?.nativeElement) {\n scrollHeaderBoxViewChild.nativeElement.style.paddingRight = scrollBarWidth + 'px';\n }\n\n const scrollFooterBoxViewChild = this.scrollFooterBoxViewChild();\n if (scrollFooterBoxViewChild && scrollFooterBoxViewChild.nativeElement) {\n scrollFooterBoxViewChild.nativeElement.style.paddingRight = scrollBarWidth + 'px';\n }\n }\n } else {\n const scrollableAlignerViewChild = this.scrollableAlignerViewChild();\n if (scrollableAlignerViewChild && scrollableAlignerViewChild.nativeElement) {\n scrollableAlignerViewChild.nativeElement.style.height = calculateScrollbarHeight() + 'px';\n }\n }\n\n this.bindEvents();\n }\n }\n\n bindEvents() {\n if (isPlatformBrowser(this.platformId)) {\n this.zone.runOutsideAngular(() => {\n const scrollHeaderViewChild = this.scrollHeaderViewChild();\n if (scrollHeaderViewChild && scrollHeaderViewChild.nativeElement) {\n this.headerScrollListener = this.renderer.listen(this.scrollHeaderBoxViewChild()?.nativeElement, 'scroll', this.onHeaderScroll.bind(this));\n }\n\n const scrollFooterViewChild = this.scrollFooterViewChild();\n if (scrollFooterViewChild && scrollFooterViewChild.nativeElement) {\n this.footerScrollListener = this.renderer.listen(scrollFooterViewChild.nativeElement, 'scroll', this.onFooterScroll.bind(this));\n }\n\n if (!this.frozen()) {\n if (this.tt.virtualScroll()) {\n this.bodyScrollListener = this.renderer.listen((this.scroller()?.getElementRef() as ElementRef).nativeElement, 'scroll', this.onBodyScroll.bind(this));\n } else {\n this.bodyScrollListener = this.renderer.listen(this.scrollBodyViewChild()?.nativeElement, 'scroll', this.onBodyScroll.bind(this));\n }\n }\n });\n }\n }\n\n unbindEvents() {\n if (isPlatformBrowser(this.platformId)) {\n const scrollHeaderViewChild = this.scrollHeaderViewChild();\n if (scrollHeaderViewChild && scrollHeaderViewChild.nativeElement) {\n if (this.headerScrollListener) {\n this.headerScrollListener();\n this.headerScrollListener = null;\n }\n }\n\n const scrollFooterViewChild = this.scrollFooterViewChild();\n if (scrollFooterViewChild && scrollFooterViewChild.nativeElement) {\n if (this.footerScrollListener) {\n this.footerScrollListener();\n this.footerScrollListener = null;\n }\n }\n\n const scrollBodyViewChild = this.scrollBodyViewChild();\n if (scrollBodyViewChild && scrollBodyViewChild.nativeElement) {\n if (this.bodyScrollListener) {\n this.bodyScrollListener();\n this.bodyScrollListener = null;\n }\n }\n\n const scroller = this.scroller();\n if (scroller && scroller.getElementRef()) {\n if (this.bodyScrollListener) {\n this.bodyScrollListener();\n this.bodyScrollListener = null;\n }\n }\n }\n }\n\n onHeaderScroll() {\n const scrollLeft = this.scrollHeaderViewChild()?.nativeElement.scrollLeft;\n\n (this.scrollBodyViewChild() as ElementRef).nativeElement.scrollLeft = scrollLeft;\n\n const scrollFooterViewChild = this.scrollFooterViewChild();\n if (scrollFooterViewChild && scrollFooterViewChild.nativeElement) {\n scrollFooterViewChild.nativeElement.scrollLeft = scrollLeft;\n }\n\n this.preventBodyScrollPropagation = true;\n }\n\n onFooterScroll() {\n const scrollLeft = this.scrollFooterViewChild()?.nativeElement.scrollLeft;\n (this.scrollBodyViewChild() as ElementRef).nativeElement.scrollLeft = scrollLeft;\n\n const scrollHeaderViewChild = this.scrollHeaderViewChild();\n if (scrollHeaderViewChild && scrollHeaderViewChild.nativeElement) {\n scrollHeaderViewChild.nativeElement.scrollLeft = scrollLeft;\n }\n\n this.preventBodyScrollPropagation = true;\n }\n\n onBodyScroll(event: any) {\n if (this.preventBodyScrollPropagation) {\n this.preventBodyScrollPropagation = false;\n return;\n }\n\n const scrollHeaderViewChild = this.scrollHeaderViewChild();\n if (scrollHeaderViewChild && scrollHeaderViewChild.nativeElement) {\n (this.scrollHeaderBoxViewChild() as ElementRef).nativeElement.style.marginLeft = -1 * event.target.scrollLeft + 'px';\n }\n\n const scrollFooterViewChild = this.scrollFooterViewChild();\n if (scrollFooterViewChild && scrollFooterViewChild.nativeElement) {\n (this.scrollFooterBoxViewChild() as ElementRef).nativeElement.style.marginLeft = -1 * event.target.scrollLeft + 'px';\n }\n\n if (this.frozenSiblingBody) {\n this.frozenSiblingBody.scrollTop = event.target.scrollTop;\n }\n }\n\n scrollToVirtualIndex(index: number): void {\n const scroller = this.scroller();\n if (scroller) {\n scroller.scrollToIndex(index);\n }\n }\n\n scrollTo(options: ScrollToOptions): void {\n const scroller = this.scroller();\n if (scroller) {\n scroller.scrollTo(options);\n } else {\n const scrollBodyViewChild = this.scrollBodyViewChild();\n if (scrollBodyViewChild?.nativeElement.scrollTo) {\n scrollBodyViewChild.nativeElement.scrollTo(options);\n } else {\n (scrollBodyViewChild as ElementRef).nativeElement.scrollLeft = options.left;\n (scrollBodyViewChild as ElementRef).nativeElement.scrollTop = options.top;\n }\n }\n }\n\n onDestroy() {\n this.unbindEvents();\n\n this.frozenSiblingBody = null;\n }\n}\n\n@Directive({\n selector: '[ttSortableColumn]',\n standalone: false,\n host: {\n '[class]': 'cx(\"sortableColumn\")',\n '[tabindex]': 'isEnabled() ? \"0\" : null',\n role: 'columnheader',\n '[attr.aria-sort]': 'ariaSorted',\n '(click)': 'onClick($event)',\n '(keydown.enter)': 'onEnterKey($event)'\n },\n providers: [TreeTableStyle],\n hostDirectives: [Bind]\n})\nexport class TTSortableColumn extends BaseComponent {\n hostName = 'TreeTable ';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n onAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.ptm('sortableColumn', { context: { sorted: this.sorted } }));\n }\n\n readonly field = input<string>(undefined, { alias: \"ttSortableColumn\" });\n\n readonly ttSortableColumnDisabled = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n sorted: boolean | undefined;\n\n subscription: Subscription | undefined;\n\n _componentStyle = inject(TreeTableStyle);\n\n get ariaSorted() {\n if (this.sorted && this.tt.sortOrder() < 0) return 'descending';\n else if (this.sorted && this.tt.sortOrder() > 0) return 'ascending';\n else return 'none';\n }\n\n constructor(public tt: TreeTable) {\n super();\n if (this.isEnabled()) {\n this.subscription = this.tt.tableService.sortSource$.subscribe((sortMeta) => {\n this.updateSortState();\n });\n }\n }\n\n onInit() {\n if (this.isEnabled()) {\n this.updateSortState();\n }\n }\n\n updateSortState() {\n this.sorted = this.tt.isSorted(<string>this.field()) as boolean;\n }\n\n onClick(event: MouseEvent) {\n if (this.isEnabled()) {\n this.updateSortState();\n this.tt.sort({\n originalEvent: event,\n field: this.field()\n });\n\n clearSelection();\n }\n }\n\n onEnterKey(event: MouseEvent) {\n this.onClick(event);\n }\n\n isEnabled() {\n return this.ttSortableColumnDisabled() !== true;\n }\n\n onDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Component({\n selector: 'h-treeTableSortIcon, h-treetable-sort-icon, h-tree-table-sort-icon',\n standalone: false,\n templateUrl: './ttsorticon.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TreeTableStyle]\n})\nexport class TTSortIcon extends BaseComponent {\n hostName = 'TreeTable';\n\n readonly field = input<string>();\n\n readonly ariaLabelDesc = input<string>();\n\n readonly ariaLabelAsc = input<string>();\n\n subscription: Subscription | undefined;\n\n sortOrder: number | undefined;\n\n _componentStyle = inject(TreeTableStyle);\n\n constructor(\n public tt: TreeTable,\n public cd: ChangeDetectorRef\n ) {\n super();\n this.subscription = this.tt.tableService.sortSource$.subscribe((sortMeta) => {\n this.updateSortState();\n this.cd.markForCheck();\n });\n }\n\n onInit() {\n this.updateSortState();\n }\n\n onClick(event: Event) {\n event.preventDefault();\n }\n\n getMultiSortMetaIndex() {\n let multiSortMeta = this.tt.multiSortMeta();\n let index = -1;\n\n if (multiSortMeta && this.tt.sortMode() === 'multiple' && multiSortMeta.length > 1) {\n for (let i = 0; i < multiSortMeta.length; i++) {\n let meta = multiSortMeta[i];\n const field = this.field();\n if (meta.field === field || meta.field === field) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n }\n\n updateSortState() {\n const sortMode = this.tt.sortMode();\n if (sortMode === 'single') {\n this.sortOrder = this.tt.isSorted(<string>this.field()) ? this.tt.sortOrder() : 0;\n } else if (sortMode === 'multiple') {\n let sortMeta = this.tt.getSortMeta(<string>this.field());\n this.sortOrder = sortMeta ? sortMeta.order : 0;\n }\n }\n\n getBadgeValue() {\n return this.getMultiSortMetaIndex() + 1;\n }\n\n isMultiSorted() {\n return this.tt.sortMode() === 'multiple' && this.getMultiSortMetaIndex() > -1;\n }\n\n onDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Directive({\n selector: '[ttResizableColumn]',\n standalone: false\n})\nexport class TTResizableColumn extends BaseComponent {\n hostName = 'TreeTable';\n\n readonly ttResizableColumnDisabled = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n resizer: HTMLSpanElement | undefined;\n\n resizerMouseDownListener: VoidListener;\n\n documentMouseMoveListener: VoidListener;\n\n documentMouseUpListener: VoidListener;\n\n constructor(\n public tt: TreeTable,\n public zone: NgZone\n ) {\n super();\n }\n\n onAfterViewInit() {\n if (isPlatformBrowser(this.platformId)) {\n if (this.isEnabled()) {\n addClass(this.el.nativeElement, 'h-resizable-column');\n this.resizer = this.renderer.createElement('span');\n !this.$unstyled() && this.renderer.addClass(this.resizer, 'h-column-resizer');\n (this.resizer as HTMLElement).setAttribute('data-pc-section', 'columnresizer');\n this.renderer.appendChild(this.el.nativeElement, this.resizer);\n\n this.zone.runOutsideAngular(() => {\n this.resizerMouseDownListener = this.renderer.listen(this.resizer, 'mousedown', this.onMouseDown.bind(this));\n });\n }\n }\n }\n\n bindDocumentEvents() {\n this.zone.runOutsideAngular(() => {\n this.documentMouseMoveListener = this.renderer.listen(this.document, 'mousemove', this.onDocumentMouseMove.bind(this));\n this.documentMouseUpListener = this.renderer.listen(this.document, 'mouseup', this.onDocumentMouseUp.bind(this));\n });\n }\n\n unbindDocumentEvents() {\n if (this.documentMouseMoveListener) {\n this.documentMouseMoveListener();\n this.documentMouseMoveListener = null;\n }\n\n if (this.documentMouseUpListener) {\n this.documentMouseUpListener();\n this.documentMouseUpListener = null;\n }\n }\n\n onMouseDown(event: MouseEvent) {\n this.tt.onColumnResizeBegin(event);\n this.bindDocumentEvents();\n }\n\n onDocumentMouseMove(event: MouseEvent) {\n this.tt.onColumnResize(event);\n }\n\n onDocumentMouseUp(event: MouseEvent) {\n this.tt.onColumnResizeEnd(event, this.el.nativeElement);\n this.unbindDocumentEvents();\n }\n\n isEnabled() {\n return this.ttResizableColumnDisabled() !== true;\n }\n\n onDestroy() {\n if (this.resizerMouseDownListener) {\n this.resizerMouseDownListener();\n this.resizerMouseDownListener = null;\n }\n\n this.unbindDocumentEvents();\n }\n}\n\n@Directive({\n selector: '[ttReorderableColumn]',\n standalone: false,\n host: {\n '(drop)': 'onDrop($event)'\n }\n})\nexport class TTReorderableColumn extends BaseComponent {\n hostName = 'TreeTable';\n\n readonly ttReorderableColumnDisabled = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n dragStartListener: VoidListener;\n\n dragOverListener: VoidListener;\n\n dragEnterListener: VoidListener;\n\n dragLeaveListener: VoidListener;\n\n mouseDownListener: VoidListener;\n\n constructor(\n public tt: TreeTable,\n public zone: NgZone\n ) {\n super();\n }\n\n onAfterViewInit() {\n if (this.isEnabled()) {\n this.bindEvents();\n }\n }\n\n bindEvents() {\n if (isPlatformBrowser(this.platformId)) {\n this.zone.runOutsideAngular(() => {\n this.mouseDownListener = this.renderer.listen(this.el.nativeElement, 'mousedown', this.onMouseDown.bind(this));\n this.dragStartListener = this.renderer.listen(this.el.nativeElement, 'dragstart', this.onDragStart.bind(this));\n this.dragOverListener = this.renderer.listen(this.el.nativeElement, 'dragover', this.onDragEnter.bind(this));\n this.dragEnterListener = this.renderer.listen(this.el.nativeElement, 'dragenter', this.onDragEnter.bind(this));\n this.dragLeaveListener = this.renderer.listen(this.el.nativeElement, 'dragleave', this.onDragLeave.bind(this));\n });\n }\n }\n\n unbindEvents() {\n if (isPlatformBrowser(this.platformId)) {\n if (this.mouseDownListener) {\n this.mouseDownListener();\n this.mouseDownListener = null;\n }\n\n if (this.dragOverListener) {\n this.dragOverListener();\n this.dragOverListener = null;\n }\n\n if (this.dragEnterListener) {\n this.dragEnterListener();\n this.dragEnterListener = null;\n }\n\n if (this.dragLeaveListener) {\n this.dragLeaveListener();\n this.dragLeaveListener = null;\n }\n }\n }\n\n onMouseDown(event: any) {\n if (event.target.nodeName === 'INPUT' || event.target.nodeName === 'TEXTAREA' || findSingle(event.target, '[data-pc-section=\"columnresizer\"]')) this.el.nativeElement.draggable = false;\n else this.el.nativeElement.draggable = true;\n }\n\n onDragStart(event: DragEvent) {\n this.tt.onColumnDragStart(event, this.el.nativeElement);\n }\n\n onDragOver(event: DragEvent) {\n event.preventDefault();\n }\n\n onDragEnter(event: DragEvent) {\n this.tt.onColumnDragEnter(event, this.el.nativeElement);\n }\n\n onDragLeave(event: DragEvent) {\n this.tt.onColumnDragLeave(event);\n }\n\n onDrop(event: DragEvent) {\n if (this.isEnabled()) {\n this.tt.onColumnDrop(event, this.el.nativeElement);\n }\n }\n\n isEnabled() {\n return this.ttReorderableColumnDisabled() !== true;\n }\n\n onDestroy() {\n this.unbindEvents();\n }\n}\n\n@Directive({\n selector: '[ttSelectableRow]',\n standalone: false,\n host: {\n '[class]': 'cx(\"row\")',\n '[attr.aria-selected]': 'selected',\n '(click)': 'onClick($event)',\n '(keydown)': 'onKeyDown($event)',\n '(touchend)': 'onTouchEnd($event)'\n },\n providers: [TreeTableStyle]\n})\nexport class TTSelectableRow extends BaseComponent {\n readonly rowNode = input<any>(undefined, { alias: \"ttSelectableRow\" });\n\n readonly ttSelectableRowDisabled = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n selected: boolean | undefined;\n\n subscription: Subscription | undefined;\n\n _componentStyle = inject(TreeTableStyle);\n\n constructor(\n public tt: TreeTable,\n public tableService: TreeTableService\n ) {\n super();\n if (this.isEnabled()) {\n this.subscription = this.tt.tableService.selectionSource$.subscribe(() => {\n this.selected = this.tt.isSelected(this.rowNode().node);\n });\n }\n }\n\n onInit() {\n if (this.isEnabled()) {\n this.selected = this.tt.isSelected(this.rowNode().node);\n }\n }\n\n onClick(event: Event) {\n if (this.isEnabled()) {\n this.tt.handleRowClick({\n originalEvent: event,\n rowNode: this.rowNode()\n });\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n switch (event.code) {\n case 'Enter':\n case 'Space':\n this.onEnterKey(event);\n break;\n\n default:\n break;\n }\n }\n\n onTouchEnd(event: Event) {\n if (this.isEnabled()) {\n this.tt.handleRowTouchEnd(event);\n }\n }\n\n onEnterKey(event) {\n if (this.tt.selectionMode() === 'checkbox') {\n this.tt.toggleNodeWithCheckbox({\n originalEvent: event,\n rowNode: this.rowNode()\n });\n } else {\n this.onClick(event);\n }\n event.preventDefault();\n }\n\n isEnabled() {\n return this.ttSelectableRowDisabled() !== true;\n }\n\n onDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Directive({\n selector: '[ttSelectableRowDblClick]',\n standalone: false,\n host: {\n '[class]': 'cx(\"row\")',\n '(dblclick)': 'onClick($event)'\n },\n providers: [TreeTableStyle]\n})\nexport class TTSelectableRowDblClick extends BaseComponent {\n readonly rowNode = input<any>(undefined, { alias: \"ttSelectableRowDblClick\" });\n\n readonly ttSelectableRowDisabled = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n selected: boolean | undefined;\n\n subscription: Subscription | undefined;\n\n _componentStyle = inject(TreeTableStyle);\n\n constructor(\n public tt: TreeTable,\n public tableService: TreeTableService\n ) {\n super();\n if (this.isEnabled()) {\n this.subscription = this.tt.tableService.selectionSource$.subscribe(() => {\n this.selected = this.tt.isSelected(this.rowNode().node);\n });\n }\n }\n\n onInit() {\n if (this.isEnabled()) {\n this.selected = this.tt.isSelected(this.rowNode().node);\n }\n }\n\n onClick(event: Event) {\n if (this.isEnabled()) {\n this.tt.handleRowClick({\n originalEvent: event,\n rowNode: this.rowNode()\n });\n }\n }\n\n isEnabled() {\n return this.ttSelectableRowDisabled() !== true;\n }\n\n onDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Directive({\n selector: '[ttContextMenuRow]',\n standalone: false,\n host: {\n '[class]': 'cx(\"contextMenuRow\")',\n '[tabindex]': 'isEnabled() ? 0 : undefined',\n '(contextmenu)': 'onContextMenu($event)'\n },\n providers: [TreeTableStyle]\n})\nexport class TTContextMenuRow extends BaseComponent {\n readonly rowNode = input<any>(undefined, { alias: \"ttContextMenuRow\" });\n\n readonly ttContextMenuRowDisabled = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n selected: boolean | undefined;\n\n subscription: Subscription | undefined;\n\n _componentStyle = inject(TreeTableStyle);\n\n constructor(\n public tt: TreeTable,\n public tableService: TreeTableService\n ) {\n super();\n if (this.isEnabled()) {\n this.subscription = this.tt.tableService.contextMenuSource$.subscribe((node) => {\n this.selected = node ? this.tt.equals(this.rowNode().node, node) : false;\n });\n }\n }\n\n onContextMenu(event: Event) {\n if (this.isEnabled()) {\n this.tt.handleRowRightClick({\n originalEvent: event,\n rowNode: this.rowNode()\n });\n\n this.el.nativeElement.focus();\n\n event.preventDefault();\n }\n }\n\n isEnabled() {\n return this.ttContextMenuRowDisabled() !== true;\n }\n\n onDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Component({\n selector: 'h-treeTableCheckbox, h-treetable-checkbox, h-tree-table-checkbox',\n standalone: false,\n template: `\n <h-checkbox [ngModel]=\"checked\" [pt]=\"ptm('pcRowCheckbox')\" (onChange)=\"onClick($event)\" [binary]=\"true\" [disabled]=\"disabled()\" [indeterminate]=\"partialChecked\" [styleClass]=\"cx('pcNodeCheckbox')\" [tabIndex]=\"-1\" [unstyled]=\"unstyled()\">\n @if (tt.checkboxIconTemplate || tt._checkboxIconTemplate) {\n <ng-template hTemplate=\"icon\">\n <ng-template *ngTemplateOutlet=\"tt.checkboxIconTemplate || tt._checkboxIconTemplate; context: { $implicit: checked, partialSelected: partialChecked }\"></ng-template>\n </ng-template>\n }\n </h-checkbox>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TreeTableStyle]\n})\nexport class TTCheckbox extends BaseComponent {\n hostName = 'TreeTable';\n\n readonly disabled = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n readonly rowNode = input<any>(undefined, { alias: \"value\" });\n\n checked: boolean | undefined;\n\n partialChecked: boolean | undefined;\n\n focused: boolean | undefined;\n\n subscription: Subscription | undefined;\n\n _componentStyle = inject(TreeTableStyle);\n\n constructor(\n public tt: TreeTable,\n public tableService: TreeTableService,\n public cd: ChangeDetectorRef\n ) {\n super();\n this.subscription = this.tt.tableService.selectionSource$.subscribe(() => {\n if (this.tt.selectionKeys()) {\n this.checked = this.tt.isNodeSelected(this.rowNode().node);\n this.partialChecked = this.tt.isNodePartialSelected(this.rowNode().node);\n } else {\n this.checked = this.tt.isSelected(this.rowNode().node);\n this.partialChecked = this.rowNode().node.partialSelected;\n }\n this.cd.markForCheck();\n });\n }\n\n onInit() {\n if (this.tt.selectionKeys()) {\n this.checked = this.tt.isNodeSelected(this.rowNode().node);\n this.partialChecked = this.tt.isNodePartialSelected(this.rowNode().node);\n } else {\n // for backward compatibility\n this.checked = this.tt.isSelected(this.rowNode().node);\n this.partialChecked = this.rowNode().node.partialSelected;\n }\n }\n\n onClick(event: Event) {\n if (!this.disabled()) {\n if (this.tt.selectionKeys()) {\n const _check = !this.checked;\n this.tt.toggleCheckbox({\n originalEvent: event,\n check: _check,\n rowNode: this.rowNode()\n });\n } else {\n this.tt.toggleNodeWithCheckbox({\n originalEvent: event,\n rowNode: this.rowNode()\n });\n }\n }\n clearSelection();\n }\n\n onFocus() {\n this.focused = true;\n }\n\n onBlur() {\n this.focused = false;\n }\n\n onDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Component({\n selector: 'h-treeTableHeaderCheckbox',\n standalone: false,\n template: `\n <h-checkbox [ngModel]=\"checked\" [pt]=\"ptm('pcHeaderCheckbox')\" (onChange)=\"onClick($event)\" [binary]=\"true\" [disabled]=\"!tt.value || tt.value.length === 0\" [unstyled]=\"unstyled()\">\n @if (tt.headerCheckboxIconTemplate || tt._headerCheckboxIconTemplate) {\n <ng-template hTemplate=\"icon\">\n <ng-template *ngTemplateOutlet=\"tt.headerCheckboxIconTemplate || tt._headerCheckboxIconTemplate; context: { $implicit: checked }\"></ng-template>\n </ng-template>\n }\n </h-checkbox>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TTHeaderCheckbox extends BaseComponent {\n checked: boolean | undefined;\n\n disabled: boolean | undefined;\n\n selectionChangeSubscription: Subscription;\n\n valueChangeSubscription: Subscription;\n\n constructor(\n public tt: TreeTable,\n public tableService: TreeTableService\n ) {\n super();\n this.valueChangeSubscription = this.tt.tableService.uiUpdateSource$.subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n\n this.selectionChangeSubscription = this.tt.tableService.selectionSource$.subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n }\n\n onInit() {\n this.checked = this.updateCheckedState();\n }\n\n onClick(event: Event) {\n const value = this.tt?.value();\n if ((value || this.tt?.filteredNodes) && ((value && value.length > 0) || (this.tt?.filteredNodes && this.tt.filteredNodes.length > 0))) {\n this.tt?.toggleNodesWithCheckbox(event, !this.checked);\n }\n\n clearSelection();\n }\n\n onDestroy() {\n if (this.selectionChangeSubscription) {\n this.selectionChangeSubscription.unsubscribe();\n }\n\n if (this.valueChangeSubscription) {\n this.valueChangeSubscription.unsubscribe();\n }\n }\n\n updateCheckedState() {\n this.cd.markForCheck();\n let checked!: boolean;\n const data = this.tt.filteredNodes || this.tt.value();\n\n if (data) {\n if (this.tt.selectionKeys()) {\n for (let node of data) {\n if (this.tt.isNodeSelected(node)) {\n checked = true;\n } else {\n checked = false;\n break;\n }\n }\n }\n if (!this.tt.selectionKeys()) {\n // legacy selection support, will be removed in v18\n for (let node of data) {\n if (this.tt.isSelected(node)) {\n checked = true;\n } else {\n checked = false;\n break;\n }\n }\n }\n } else {\n checked = false;\n }\n\n return checked;\n }\n}\n\n@Directive({\n selector: '[ttEditableColumn]',\n standalone: false,\n host: {\n '(click)': 'onClick($event)',\n '(keydown)': 'onKeyDown($event)'\n }\n})\nexport class TTEditableColumn extends BaseComponent {\n readonly data = input<any>(undefined, { alias: \"ttEditableColumn\" });\n\n readonly field = input<any>(undefined, { alias: \"ttEditableColumnField\" });\n\n readonly ttEditableColumnDisabled = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n constructor(\n public tt: TreeTable,\n public zone: NgZone\n ) {\n super();\n }\n\n onAfterViewInit() {\n if (this.isEnabled()) {\n !this.$unstyled() && addClass(this.el.nativeElement, 'h-editable-column');\n this.el?.nativeElement.setAttribute('data-h-editable-column', 'true');\n }\n }\n\n onClick(event: MouseEvent) {\n if (this.isEnabled()) {\n this.tt.editingCellClick = true;\n\n if (this.tt.editingCell) {\n if (this.tt.editingCell !== this.el.nativeElement) {\n if (!this.tt.isEditingCellValid()) {\n return;\n }\n\n if (this.tt.editingCell) !this.$unstyled() && removeClass(this.tt.editingCell, 'h-cell-editing');\n this.openCell();\n }\n } else {\n this.openCell();\n }\n }\n }\n\n openCell() {\n const data = this.data();\n const field = this.field();\n this.tt.updateEditingCell(this.el.nativeElement, data, field);\n !this.$unstyled() && addClass(this.el.nativeElement, 'h-cell-editing');\n this.el?.nativeElement.setAttribute('data-h-cell-editing', 'true');\n this.tt.onEditInit.emit({ field: field, data: data });\n this.tt.editingCellClick = true;\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n let focusable = <any>findSingle(this.el.nativeElement, 'input, textarea');\n if (focusable) {\n focusable.focus();\n }\n }, 50);\n });\n }\n\n closeEditingCell() {\n if (this.tt.editingCell) !this.$unstyled() && removeClass(this.tt.editingCell, 'h-checkbox-icon');\n this.tt.editingCell = null;\n this.tt.unbindDocumentEditListener();\n }\n\n onKeyDown(event: KeyboardEvent) {\n if (this.isEnabled()) {\n //enter\n if (event.keyCode == 13 && !event.shiftKey) {\n if (this.tt.isEditingCellValid()) {\n if (this.tt.editingCell) {\n !this.$unstyled() && removeClass(this.tt.editingCell, 'h-cell-editing');\n this.el?.nativeElement.setAttribute('data-h-cell-editing', 'false');\n }\n this.closeEditingCell();\n this.tt.onEditComplete.emit({ field: this.field(), data: this.data() });\n }\n\n event.preventDefault();\n }\n\n //escape\n else if (event.keyCode == 27) {\n if (this.tt.isEditingCellValid()) {\n if (this.tt.editingCell) {\n !this.$unstyled() && removeClass(this.tt.editingCell, 'h-cell-editing');\n this.el?.nativeElement.setAttribute('data-h-cell-editing', 'false');\n }\n this.closeEditingCell();\n this.tt.onEditCancel.emit({ field: this.field(), data: this.data() });\n }\n\n event.preventDefault();\n }\n\n //tab\n else if (event.keyCode == 9) {\n this.tt.onEditComplete.emit({ field: this.field(), data: this.data() });\n\n if (event.shiftKey) this.moveToPreviousCell(event);\n else this.moveToNextCell(event);\n }\n }\n }\n\n findCell(element: any) {\n if (element) {\n let cell = element;\n while (cell && !findSingle(cell, '[data-h-cell-editing=\"true\"]')) {\n cell = cell.parentElement;\n }\n\n return cell;\n } else {\n return null;\n }\n }\n\n moveToPreviousCell(event: KeyboardEvent) {\n let currentCell = this.findCell(event.target);\n let row = currentCell.parentElement;\n let targetCell = this.findPreviousEditableColumn(currentCell);\n\n if (targetCell) {\n // @ts-ignore\n invokeElementMethod(targetCell as HTMLElement, 'click', undefined);\n event.preventDefault();\n }\n }\n\n moveToNextCell(event: KeyboardEvent) {\n let currentCell = this.findCell(event.target);\n let row = currentCell.parentElement;\n let targetCell = this.findNextEditableColumn(currentCell);\n\n if (targetCell) {\n // @ts-ignore\n invokeElementMethod(targetCell, 'click', undefined);\n event.preventDefault();\n }\n }\n\n findPreviousEditableColumn(cell: any): Element | null {\n let prevCell = cell.previousElementSibling;\n\n if (!prevCell) {\n let previousRow = cell.parentElement ? cell.parentElement.previousElementSibling : null;\n if (previousRow) {\n prevCell = previousRow.lastElementChild;\n }\n }\n\n if (prevCell) {\n if (findSingle(prevCell, '[data-h-editable-column=\"true\"]')) return prevCell;\n else return this.findPreviousEditableColumn(prevCell);\n } else {\n return null;\n }\n }\n\n findNextEditableColumn(cell: Element): Element | null {\n let nextCell = cell.nextElementSibling;\n\n if (!nextCell) {\n let nextRow = cell.parentElement ? cell.parentElement.nextElementSibling : null;\n if (nextRow) {\n nextCell = nextRow.firstElementChild;\n }\n }\n\n if (nextCell) {\n if (findSingle(nextCell, '[data-h-editable-column=\"true\"]')) return nextCell;\n else return this.findNextEditableColumn(nextCell);\n } else {\n return null;\n }\n }\n\n isEnabled() {\n return this.ttEditableColumnDisabled() !== true;\n }\n}\n\n@Component({\n selector: 'h-treeTableCellEditor, h-treetablecelleditor, h-treetable-cell-editor',\n standalone: false,\n template: `\n @if (tt.editingCell === editableColumn.el.nativeElement) {\n <ng-container *ngTemplateOutlet=\"inputTemplate\"></ng-container>\n }\n @if (!tt.editingCell || tt.editingCell !== editableColumn.el.nativeElement) {\n <ng-container *ngTemplateOutlet=\"outputTemplate\"></ng-container>\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Eager,\n hostDirectives: [Bind]\n})\nexport class TreeTableCellEditor extends BaseComponent {\n hostName = 'TreeTable';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n onAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.ptm('cellEditor'));\n }\n\n readonly templates = contentChildren(HelixTemplate);\n\n inputTemplate: Nullable<TemplateRef<any>>;\n\n outputTemplate: Nullable<TemplateRef<any>>;\n\n constructor(\n public tt: TreeTable,\n public editableColumn: TTEditableColumn\n ) {\n super();\n }\n\n onAfterContentInit() {\n this.templates().forEach((item) => {\n switch (item.getType()) {\n case 'input':\n this.inputTemplate = item.template;\n break;\n\n case 'output':\n this.outputTemplate = item.template;\n break;\n }\n });\n }\n}\n\n@Directive({\n selector: '[ttRow]',\n standalone: false,\n host: {\n '[class]': `'h-element ' + styleClass`,\n '[tabindex]': \"'0'\",\n '[attr.aria-expanded]': 'expanded',\n '[attr.aria-level]': 'level',\n role: 'row',\n '(keydown)': 'onKeyDown($event)'\n },\n providers: [TreeTableStyle],\n hostDirectives: [Bind]\n})\nexport class TTRow extends BaseComponent {\n hostName = 'TreeTable';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n treeTable = inject(TreeTable);\n\n onAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.ptm('row', this.ptmOptions()));\n }\n\n get level() {\n return this.rowNode()?.['level'] + 1;\n }\n\n get styleClass() {\n return this.rowNode()?.node['styleClass'] || '';\n }\n\n get expanded() {\n return this.rowNode()?.node['expanded'];\n }\n\n readonly rowNode = input<any>(undefined, { alias: \"ttRow\" });\n\n _componentStyle = inject(TreeTableStyle);\n\n constructor(\n public tt: TreeTable,\n public el: ElementRef,\n public zone: NgZone\n ) {\n super();\n }\n\n onKeyDown(event: KeyboardEvent) {\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n default:\n break;\n }\n }\n\n onArrowDownKey(event: KeyboardEvent) {\n let nextRow = this.el?.nativeElement?.nextElementSibling;\n if (nextRow) {\n this.focusRowChange(<HTMLElement>event.currentTarget, nextRow);\n }\n\n event.preventDefault();\n }\n\n onArrowUpKey(event: KeyboardEvent) {\n let prevRow = this.el?.nativeElement?.previousElementSibling;\n if (prevRow) {\n this.focusRowChange(<HTMLElement>event.currentTarget, prevRow);\n }\n\n event.preventDefault();\n }\n\n onArrowRightKey(event: KeyboardEvent) {\n const currentTarget = <HTMLElement>event.currentTarget;\n const isHiddenIcon = (findSingle(currentTarget, 'button') as any).style.visibility === 'hidden';\n\n if (!isHiddenIcon && !this.expanded && this.rowNode().node['children']) {\n this.expand(event);\n\n currentTarget.tabIndex = -1;\n }\n event.preventDefault();\n }\n\n onArrowLeftKey(event: KeyboardEvent) {\n const container = this.tt.el?.nativeElement;\n const expandedRows = find(container, '[aria-expanded=\"true\"]');\n const lastExpandedRow = expandedRows[expandedRows.length - 1];\n\n if (this.expanded) {\n this.collapse(event);\n }\n if (lastExpandedRow) {\n this.tt.toggleRowIndex = getIndex(lastExpandedRow as any);\n }\n this.restoreFocus();\n event.preventDefault();\n }\n\n onHomeKey(event: KeyboardEvent) {\n const firstElement = <any>findSingle(this.tt.el?.nativeElement, `tr[aria-level=\"${this.level}\"]`);\n firstElement && focus(firstElement);\n event.preventDefault();\n }\n\n onEndKey(event: KeyboardEvent) {\n const nodes = <any>find(this.tt.el?.nativeElement, `tr[aria-level=\"${this.level}\"]`);\n const lastElement = nodes[nodes.length - 1];\n focus(lastElement);\n event.preventDefault();\n }\n\n onTabKey(event: KeyboardEvent) {\n const rows = this.el.nativeElement ? [...find(this.el.nativeElement.parentNode, 'tr')] : undefined;\n\n if (rows && isNotEmpty(rows)) {\n const hasSelectedRow = rows.some((row) => getAttribute(row, 'data-h-highlight') || row.getAttribute('aria-selected') === 'true');\n rows.forEach((row: any) => {\n row.tabIndex = -1;\n });\n\n if (hasSelectedRow) {\n const selectedNodes = rows.filter((node) => getAttribute(node, 'data-h-highlight') || node.getAttribute('aria-selected') === 'true');\n (selectedNodes[0] as any).tabIndex = 0;\n\n return;\n }\n\n (rows[0] as any).tabIndex = 0;\n }\n }\n\n expand(event: Event) {\n this.tt.toggleRowIndex = getIndex(this.el.nativeElement);\n const node = this.rowNode()?.node;\n if (node) node['expanded'] = true;\n\n this.tt.updateSerializedValue();\n this.tt.tableService.onUIUpdate(this.tt.value());\n node?.['children'] ? this.restoreFocus(this.tt.toggleRowIndex + 1) : this.restoreFocus();\n\n this.tt.onNodeExpand.emit({\n originalEvent: event,\n node\n });\n }\n\n collapse(event: Event) {\n const node = this.rowNode()?.node;\n if (node) node['expanded'] = false;\n\n this.tt.updateSerializedValue();\n this.tt.tableService.onUIUpdate(this.tt.value());\n\n this.tt.onNodeCollapse.emit({ originalEvent: event, node });\n }\n\n focusRowChange(firstFocusableRow, currentFocusedRow, lastVisibleDescendant?) {\n firstFocusableRow.tabIndex = '-1';\n currentFocusedRow.tabIndex = '0';\n\n focus(currentFocusedRow);\n }\n\n restoreFocus(index?) {\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n const container = this.tt.el?.nativeElement;\n const tbody = findSingle(container, '[data-pc-section=\"tbody\"]');\n const row = tbody?.children?.[<number>index || this.tt.toggleRowIndex || 0];\n const rows = [...find(container, 'tr')];\n\n rows &&\n rows.forEach((r: any) => {\n if (row && !row.isSameNode(r)) {\n r.tabIndex = -1;\n }\n });\n\n if (row) {\n (row as HTMLElement).tabIndex = 0;\n (row as HTMLElement).focus();\n }\n }, 25);\n });\n }\n\n ptmOptions() {\n return {\n context: {\n selectable: this.treeTable?.rowHover() || this.treeTable.selectionMode() === 'row',\n selected: this.treeTable.isSelected((<any>this.rowNode())?.node),\n scrollable: this.treeTable?.scrollable(),\n rowNode: this.rowNode()\n }\n };\n }\n}\n\n@Component({\n selector: 'h-treeTableToggler, h-treetabletoggler, h-treetable-toggler',\n standalone: false,\n templateUrl: './treetabletoggler.html',\n encapsulation: ViewEncapsulation.None,\n providers: [TreeTableStyle],\n changeDetection: ChangeDetectionStrategy.Eager,\n hostDirectives: [Bind]\n})\nexport class TreeTableToggler extends BaseComponent {\n hostName = 'TreeTable';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n onAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.ptm('toggler'));\n }\n\n readonly rowNode = input<any>();\n\n _componentStyle = inject(TreeTableStyle);\n\n constructor(public tt: TreeTable) {\n super();\n }\n\n get toggleButtonAriaLabel() {\n return this.config.translation ? (this.rowNode().expanded ? this.config.translation?.aria?.collapseRow : this.config.translation?.aria?.expandRow) : undefined;\n }\n\n onClick(event: Event) {\n const node = this.rowNode();\n node.node.expanded = !node.node.expanded;\n\n if (node.node.expanded) {\n this.tt.onNodeExpand.emit({\n originalEvent: event,\n node: node.node\n });\n } else {\n this.tt.onNodeCollapse.emit({\n originalEvent: event,\n node: node.node\n });\n }\n\n this.tt.updateSerializedValue();\n this.tt.tableService.onUIUpdate(this.tt.value());\n\n event.preventDefault();\n }\n}\n\n@NgModule({\n imports: [\n CommonModule,\n PaginatorModule,\n Ripple,\n Scroller,\n SpinnerIcon,\n ArrowDownIcon,\n ArrowUpIcon,\n SortAltIcon,\n SortAmountUpAltIcon,\n SortAmountDownIcon,\n BadgeModule,\n CheckIcon,\n ChevronDownIcon,\n ChevronRightIcon,\n Checkbox,\n SharedModule,\n FormsModule,\n BindModule\n ],\n exports: [\n TreeTable,\n SharedModule,\n TreeTableToggler,\n TTSortableColumn,\n TTSortIcon,\n TTResizableColumn,\n TTRow,\n TTReorderableColumn,\n TTSelectableRow,\n TTSelectableRowDblClick,\n TTContextMenuRow,\n TTCheckbox,\n TTHeaderCheckbox,\n TTEditableColumn,\n TreeTableCellEditor,\n Scroller\n ],\n declarations: [\n TreeTable,\n TreeTableToggler,\n TTScrollableView,\n TTBody,\n TTSortableColumn,\n TTSortIcon,\n TTResizableColumn,\n TTRow,\n TTReorderableColumn,\n TTSelectableRow,\n TTSelectableRowDblClick,\n TTContextMenuRow,\n TTCheckbox,\n TTHeaderCheckbox,\n TTEditableColumn,\n TreeTableCellEditor\n ]\n})\nexport class TreeTableModule {}\n","@if (loading() && showLoader()) {\n <div [hBind]=\"ptm('mask')\" [class]=\"cx('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())\"></i>\n }\n @if (!loadingIcon()) {\n @if (!loadingIconTemplate && !_loadingIconTemplate) {\n <svg data-h-icon=\"spinner\" [spin]=\"true\" [class]=\"cx('loadingIcon')\" />\n }\n @if (loadingIconTemplate || _loadingIconTemplate) {\n <span [class]=\"cx('loadingIcon')\">\n <ng-template *ngTemplateOutlet=\"loadingIconTemplate || _loadingIconTemplate\"></ng-template>\n </span>\n }\n }\n </div>\n}\n@if (captionTemplate || _captionTemplate) {\n <div [hBind]=\"ptm('header')\" [class]=\"cx('header')\">\n <ng-container *ngTemplateOutlet=\"captionTemplate || _captionTemplate\"></ng-container>\n </div>\n}\n@if (paginator() && (paginatorPosition() === 'top' || paginatorPosition() == 'both')) {\n <h-paginator\n [pt]=\"ptm('pcPaginator')\"\n [rows]=\"rows()\"\n [first]=\"first()\"\n [totalRecords]=\"totalRecords()\"\n [pageLinkSize]=\"pageLinks()\"\n [styleClass]=\"cx('pcPaginator')\"\n [alwaysShow]=\"alwaysShowPaginator()\"\n (onPageChange)=\"onPageChange($event)\"\n [rowsPerPageOptions]=\"rowsPerPageOptions()\"\n [templateLeft]=\"paginatorLeftTemplate ?? _paginatorLeftTemplate()\"\n [templateRight]=\"paginatorRightTemplate ?? _paginatorRightTemplate()\"\n [appendTo]=\"paginatorDropdownAppendTo()\"\n [currentPageReportTemplate]=\"currentPageReportTemplate()\"\n [showFirstLastIcon]=\"showFirstLastIcon()\"\n [dropdownItemTemplate]=\"paginatorDropdownItemTemplate ?? _paginatorDropdownItemTemplate()\"\n [showCurrentPageReport]=\"showCurrentPageReport()\"\n [showJumpToPageDropdown]=\"showJumpToPageDropdown()\"\n [showPageLinks]=\"showPageLinks()\"\n [locale]=\"paginatorLocale()\"\n [unstyled]=\"unstyled()\"\n >\n @if (paginatorFirstPageLinkIconTemplate || _paginatorFirstPageLinkIconTemplate) {\n <ng-template hTemplate=\"firstpagelinkicon\">\n <ng-container *ngTemplateOutlet=\"paginatorFirstPageLinkIconTemplate || _paginatorFirstPageLinkIconTemplate\"></ng-container>\n </ng-template>\n }\n @if (paginatorPreviousPageLinkIconTemplate || _paginatorPreviousPageLinkIconTemplate) {\n <ng-template hTemplate=\"previouspagelinkicon\">\n <ng-container *ngTemplateOutlet=\"paginatorPreviousPageLinkIconTemplate || _paginatorPreviousPageLinkIconTemplate\"></ng-container>\n </ng-template>\n }\n @if (paginatorLastPageLinkIconTemplate || _paginatorLastPageLinkIconTemplate) {\n <ng-template hTemplate=\"lastpagelinkicon\">\n <ng-container *ngTemplateOutlet=\"paginatorLastPageLinkIconTemplate || _paginatorLastPageLinkIconTemplate\"></ng-container>\n </ng-template>\n }\n @if (paginatorNextPageLinkIconTemplate || _paginatorNextPageLinkIconTemplate) {\n <ng-template hTemplate=\"nextpagelinkicon\">\n <ng-container *ngTemplateOutlet=\"paginatorNextPageLinkIconTemplate || _paginatorNextPageLinkIconTemplate\"></ng-container>\n </ng-template>\n }\n </h-paginator>\n}\n\n@if (!scrollable()) {\n <div [hBind]=\"ptm('wrapper')\" [class]=\"cx('wrapper')\">\n <table role=\"treegrid\" [hBind]=\"ptm('table')\" #table [ngClass]=\"tableStyleClass()\" [ngStyle]=\"tableStyle()\">\n <ng-container *ngTemplateOutlet=\"colGroupTemplate || _colGroupTemplate(); context: { $implicit: columns() }\"></ng-container>\n <thead role=\"rowgroup\" [class]=\"cx('thead')\" [hBind]=\"ptm('thead')\">\n <ng-container *ngTemplateOutlet=\"headerTemplate || _headerTemplate(); context: { $implicit: columns() }\"></ng-container>\n </thead>\n <tbody [class]=\"cx('tbody')\" [hBind]=\"ptm('tbody')\" role=\"rowgroup\" [unstyled]=\"unstyled()\" [hTreeTableBody]=\"columns()\" [pTreeTableBodyTemplate]=\"bodyTemplate ?? _bodyTemplate()\"></tbody>\n <tfoot [class]=\"cx('tfoot')\" [hBind]=\"ptm('tfoot')\" role=\"rowgroup\">\n <ng-container *ngTemplateOutlet=\"footerTemplate || _footerTemplate; context: { $implicit: columns() }\"></ng-container>\n </tfoot>\n </table>\n </div>\n}\n\n@if (scrollable()) {\n <div [hBind]=\"ptm('scrollableWrapper')\" [class]=\"cx('scrollableWrapper')\">\n @if (frozenColumns() || frozenBodyTemplate || _frozenBodyTemplate()) {\n <div\n [ngClass]=\"[cx('scrollableView'), cx('frozenView')]\"\n #scrollableFrozenView\n [ttScrollableView]=\"frozenColumns()\"\n [unstyled]=\"unstyled()\"\n [frozen]=\"true\"\n [ngStyle]=\"{ width: frozenWidth() }\"\n [scrollHeight]=\"scrollHeight()\"\n [hBind]=\"ptm('scrollableView')\"\n ></div>\n }\n <div\n [class]=\"cx('scrollableView')\"\n [hBind]=\"ptm('scrollableView')\"\n #scrollableView\n [ttScrollableView]=\"columns()\"\n [unstyled]=\"unstyled()\"\n [frozen]=\"false\"\n [scrollHeight]=\"scrollHeight()\"\n [ngStyle]=\"{ left: frozenWidth(), width: 'calc(100% - ' + frozenWidth() + ')' }\"\n ></div>\n </div>\n}\n\n@if (paginator() && (paginatorPosition() === 'bottom' || paginatorPosition() == 'both')) {\n <h-paginator\n [pt]=\"ptm('pcPaginator')\"\n [rows]=\"rows()\"\n [first]=\"first()\"\n [totalRecords]=\"totalRecords()\"\n [pageLinkSize]=\"pageLinks()\"\n [styleClass]=\"cx('pcPaginator')\"\n [alwaysShow]=\"alwaysShowPaginator()\"\n (onPageChange)=\"onPageChange($event)\"\n [rowsPerPageOptions]=\"rowsPerPageOptions()\"\n [templateLeft]=\"paginatorLeftTemplate ?? _paginatorLeftTemplate()\"\n [templateRight]=\"paginatorRightTemplate ?? _paginatorRightTemplate()\"\n [appendTo]=\"paginatorDropdownAppendTo()\"\n [currentPageReportTemplate]=\"currentPageReportTemplate()\"\n [showFirstLastIcon]=\"showFirstLastIcon()\"\n [dropdownItemTemplate]=\"paginatorDropdownItemTemplate ?? _paginatorDropdownItemTemplate()\"\n [showCurrentPageReport]=\"showCurrentPageReport()\"\n [showJumpToPageDropdown]=\"showJumpToPageDropdown()\"\n [showPageLinks]=\"showPageLinks()\"\n [locale]=\"paginatorLocale()\"\n [unstyled]=\"unstyled()\"\n >\n @if (paginatorFirstPageLinkIconTemplate || _paginatorFirstPageLinkIconTemplate) {\n <ng-template hTemplate=\"firstpagelinkicon\">\n <ng-container *ngTemplateOutlet=\"paginatorFirstPageLinkIconTemplate || _paginatorFirstPageLinkIconTemplate\"></ng-container>\n </ng-template>\n }\n @if (paginatorPreviousPageLinkIconTemplate || _paginatorPreviousPageLinkIconTemplate) {\n <ng-template hTemplate=\"previouspagelinkicon\">\n <ng-container *ngTemplateOutlet=\"paginatorPreviousPageLinkIconTemplate || _paginatorPreviousPageLinkIconTemplate\"></ng-container>\n </ng-template>\n }\n @if (paginatorLastPageLinkIconTemplate || _paginatorLastPageLinkIconTemplate) {\n <ng-template hTemplate=\"lastpagelinkicon\">\n <ng-container *ngTemplateOutlet=\"paginatorLastPageLinkIconTemplate || _paginatorLastPageLinkIconTemplate\"></ng-container>\n </ng-template>\n }\n @if (paginatorNextPageLinkIconTemplate || _paginatorNextPageLinkIconTemplate) {\n <ng-template hTemplate=\"nextpagelinkicon\">\n <ng-container *ngTemplateOutlet=\"paginatorNextPageLinkIconTemplate || _paginatorNextPageLinkIconTemplate\"></ng-container>\n </ng-template>\n }\n </h-paginator>\n}\n@if (summaryTemplate || _summaryTemplate) {\n <div [hBind]=\"ptm('footer')\" [class]=\"cx('footer')\">\n <ng-container *ngTemplateOutlet=\"summaryTemplate || _summaryTemplate\"></ng-container>\n </div>\n}\n\n@if (resizableColumns()) {\n <div [hBind]=\"ptm('columnResizerHelper')\" #resizeHelper [class]=\"cx('columnResizerHelper')\" [style.display]=\"'none'\"></div>\n}\n@if (reorderableColumns()) {\n <span [hBind]=\"ptm('reorderIndicatorUp')\" #reorderIndicatorUp [class]=\"cx('reorderIndicatorUp')\" [style.display]=\"'none'\">\n @if (!reorderIndicatorUpIconTemplate && !_reorderIndicatorUpIconTemplate()) {\n <svg data-h-icon=\"arrow-down\" />\n }\n <ng-template *ngTemplateOutlet=\"reorderIndicatorUpIconTemplate || _reorderIndicatorUpIconTemplate()\"></ng-template>\n </span>\n}\n@if (reorderableColumns()) {\n <span [hBind]=\"ptm('reorderIndicatorDown')\" #reorderIndicatorDown [class]=\"cx('reorderIndicatorDown')\" [style.display]=\"'none'\">\n @if (!reorderIndicatorDownIconTemplate && !_reorderIndicatorDownIconTemplate()) {\n <svg data-h-icon=\"arrow-up\" />\n }\n <ng-template *ngTemplateOutlet=\"reorderIndicatorDownIconTemplate || _reorderIndicatorDownIconTemplate()\"></ng-template>\n </span>\n}\n","@for (serializedNode of serializedNodes() || tt.serializedValue; track tt.rowTrackBy()(rowIndex, serializedNode); let rowIndex = $index) {\n @if (serializedNode.visible) {\n <ng-container\n *ngTemplateOutlet=\"\n template();\n context: {\n $implicit: serializedNode,\n node: serializedNode.node,\n rowData: serializedNode.node.data,\n columns: columns()\n }\n \"\n ></ng-container>\n}\n}\n@if (tt.isEmpty()) {\n <ng-container *ngTemplateOutlet=\"tt.emptyMessageTemplate || tt._emptyMessageTemplate(); context: { $implicit: columns(), frozen: frozen() }\"></ng-container>\n}\n","<div #scrollHeader [class]=\"cx('scrollableHeader')\" [hBind]=\"ptm('scrollableHeader')\">\n <div #scrollHeaderBox [class]=\"cx('scrollableHeaderBox')\" [hBind]=\"ptm('scrollableHeaderBox')\">\n <table [class]=\"cn(cx('scrollableHeaderTable'), tt.tableStyleClass())\" [hBind]=\"ptm('scrollableHeaderTable')\" [ngStyle]=\"tt.tableStyle()\">\n <ng-container\n *ngTemplateOutlet=\"frozen() ? tt.frozenColGroupTemplate || tt._frozenColGroupTemplate() || tt.colGroupTemplate || tt._colGroupTemplate() : tt.colGroupTemplate || tt._colGroupTemplate(); context: { $implicit: columns() }\"\n ></ng-container>\n <thead role=\"rowgroup\" [class]=\"cx('thead')\" [hBind]=\"ptm('thead')\">\n <ng-container\n *ngTemplateOutlet=\"frozen() ? tt.frozenHeaderTemplate || tt._frozenHeaderTemplate() || tt.headerTemplate || tt._headerTemplate() : tt.headerTemplate || tt._headerTemplate(); context: { $implicit: columns() }\"\n ></ng-container>\n </thead>\n </table>\n </div>\n</div>\n\n@if (tt.virtualScroll()) {\n <h-scroller\n #scroller\n [items]=\"tt.serializedValue\"\n [styleClass]=\"cx('scrollableBody')\"\n [style]=\"{ height: tt.scrollHeight() !== 'flex' ? tt.scrollHeight() : undefined }\"\n [scrollHeight]=\"scrollHeight() !== 'flex' ? undefined : '100%'\"\n [itemSize]=\"tt.virtualScrollItemSize() || tt.virtualRowHeight()\"\n [lazy]=\"tt.lazy()\"\n (onLazyLoad)=\"tt.onLazyItemLoad($event)\"\n [options]=\"tt.virtualScrollOptions()\"\n [pt]=\"ptm('virtualScroller')\"\n >\n <ng-template #content let-items let-scrollerOptions=\"options\">\n <ng-container *ngTemplateOutlet=\"buildInItems; context: { $implicit: items, options: scrollerOptions }\"></ng-container>\n </ng-template>\n @if (tt.loaderTemplate || tt._loaderTemplate) {\n <ng-template #loader let-scrollerOptions=\"options\">\n <ng-container *ngTemplateOutlet=\"tt.loaderTemplate || tt._loaderTemplate; context: { options: scrollerOptions }\"></ng-container>\n </ng-template>\n }\n </h-scroller>\n}\n@if (!tt.virtualScroll()) {\n <div\n #scrollBody\n [class]=\"cx('scrollableBody')\"\n [hBind]=\"ptm('scrollableBody')\"\n [ngStyle]=\"{\n 'max-height': tt.scrollHeight() !== 'flex' ? scrollHeight() : undefined,\n 'overflow-y': !frozen() && tt.scrollHeight() ? 'scroll' : undefined\n }\"\n >\n <ng-container *ngTemplateOutlet=\"buildInItems; context: { $implicit: serializedValue, options: {} }\"></ng-container>\n </div>\n}\n\n<ng-template #buildInItems let-items let-scrollerOptions=\"options\">\n <table role=\"treegrid\" #scrollTable [hBind]=\"ptm('table')\" [class]=\"tt.tableStyleClass()\" [ngClass]=\"scrollerOptions.contentStyleClass\" [ngStyle]=\"tt.tableStyle()\" [style]=\"scrollerOptions.contentStyle\">\n <ng-container\n *ngTemplateOutlet=\"frozen() ? tt.frozenColGroupTemplate || tt._frozenColGroupTemplate() || tt.colGroupTemplate || tt._colGroupTemplate() : tt.colGroupTemplate || tt._colGroupTemplate(); context: { $implicit: columns() }\"\n ></ng-container>\n <tbody\n [hBind]=\"ptm('tbody')\"\n role=\"rowgroup\"\n [class]=\"cx('tbody')\"\n [hBind]=\"ptm('tbody')\"\n [hTreeTableBody]=\"columns()\"\n [unstyled]=\"unstyled()\"\n [pTreeTableBodyTemplate]=\"frozen() ? tt.frozenBodyTemplate || tt._frozenBodyTemplate() || tt.bodyTemplate || tt._bodyTemplate() : tt.bodyTemplate || tt._bodyTemplate()\"\n [serializedNodes]=\"items\"\n [frozen]=\"frozen()\"\n ></tbody>\n </table>\n @if (frozen()) {\n <div #scrollableAligner [style.background-color]=\"'transparent'\"></div>\n }\n</ng-template>\n\n@if (tt.footerTemplate || tt._footerTemplate) {\n <div #scrollFooter [class]=\"cx('scrollableFooter')\" [hBind]=\"ptm('scrollableFooter')\">\n <div #scrollFooterBox [class]=\"cx('scrollableFooterBox')\" [hBind]=\"ptm('scrollableFooterBox')\">\n <table [class]=\"cx('scrollableFooterTable')\" [ngClass]=\"tt.tableStyleClass()\" [ngStyle]=\"tt.tableStyle()\" [hBind]=\"ptm('scrollableFooterTable')\">\n <ng-container\n *ngTemplateOutlet=\"frozen() ? tt.frozenColGroupTemplate || tt._frozenColGroupTemplate() || tt.colGroupTemplate || tt._colGroupTemplate() : tt.colGroupTemplate || tt._colGroupTemplate(); context: { $implicit: columns() }\"\n ></ng-container>\n <tfoot role=\"rowgroup\" [class]=\"cx('tfoot')\" [hBind]=\"ptm('tfoot')\">\n <ng-container\n *ngTemplateOutlet=\"frozen() ? tt.frozenFooterTemplate || tt._frozenFooterTemplate() || tt.footerTemplate || tt._footerTemplate : tt.footerTemplate || tt._footerTemplate; context: { $implicit: columns() }\"\n ></ng-container>\n </tfoot>\n </table>\n </div>\n </div>\n}\n","@if (!tt.sortIconTemplate && !tt._sortIconTemplate) {\n @if (sortOrder === 0) {\n <svg data-h-icon=\"sort-alt\" [class]=\"cx('sortableColumnIcon')\" [hBind]=\"ptm('sortableColumnIcon')\" />\n }\n @if (sortOrder === 1) {\n <svg data-h-icon=\"sort-amount-up-alt\" [class]=\"cx('sortableColumnIcon')\" [hBind]=\"ptm('sortableColumnIcon')\" />\n }\n @if (sortOrder === -1) {\n <svg data-h-icon=\"sort-amount-down\" [class]=\"cx('sortableColumnIcon')\" [hBind]=\"ptm('sortableColumnIcon')\" />\n }\n}\n@if (tt.sortIconTemplate || tt._sortIconTemplate) {\n <span [class]=\"cx('sortableColumnIcon')\" [hBind]=\"ptm('sortableColumnIcon')\">\n <ng-template *ngTemplateOutlet=\"tt.sortIconTemplate || tt._sortIconTemplate; context: { $implicit: sortOrder }\"></ng-template>\n </span>\n}\n@if (isMultiSorted()) {\n <h-badge [class]=\"cx('sortableColumnBadge')\" [value]=\"getBadgeValue()\" size=\"small\" [pt]=\"ptm('pcSortableColumnBadge')\" [unstyled]=\"unstyled()\"></h-badge>\n}\n","<button\n type=\"button\"\n [class]=\"cx('toggler')\"\n [hBind]=\"ptm('rowToggleButton')\"\n (click)=\"onClick($event)\"\n tabindex=\"-1\"\n hRipple\n [style.visibility]=\"rowNode().node.leaf === false || (rowNode().node.children && rowNode().node.children.length) ? 'visible' : 'hidden'\"\n [style.marginInlineStart]=\"rowNode().level * 16 + 'px'\"\n [attr.data-pc-group-section]=\"'rowactionbutton'\"\n [attr.aria-label]=\"toggleButtonAriaLabel\"\n >\n @if (!tt.togglerIconTemplate && !tt._togglerIconTemplate()) {\n @if (rowNode().node.expanded) {\n <svg data-h-icon=\"chevron-down\" [hBind]=\"ptm('nodetoggleicon')\" [attr.aria-hidden]=\"true\" />\n }\n @if (!rowNode().node.expanded) {\n <svg data-h-icon=\"chevron-right\" [hBind]=\"ptm('nodetoggleicon')\" [attr.aria-hidden]=\"true\" />\n }\n }\n <ng-template *ngTemplateOutlet=\"tt.togglerIconTemplate || tt._togglerIconTemplate(); context: { $implicit: rowNode().node.expanded }\"></ng-template>\n</button>\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-treetable.mjs","names":[],"sources":["../../../projects/core/treetable/style/treetablestyle.ts","../../../projects/core/treetable/treetable.ts","../../../projects/core/treetable/treetable.html","../../../projects/core/treetable/ttbody.html","../../../projects/core/treetable/ttscrollableview.html","../../../projects/core/treetable/ttsorticon.html","../../../projects/core/treetable/treetabletoggler.html"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from '@gravionlabs/helix-core/base';\n\nconst style = /*css*/ `\n/* For Helix */\n.h-treetable {\n position: relative;\n}\n\n.h-treetable table {\n border-collapse: collapse;\n width: 100%;\n table-layout: fixed;\n}\n\n.h-treetable .h-sortable-column {\n cursor: pointer;\n user-select: none;\n}\n\n.h-treetable .h-sortable-column .h-column-title,\n.h-treetable .h-sortable-column .h-sortable-column-icon,\n.h-treetable .h-sortable-column .h-sortable-column-badge {\n vertical-align: middle;\n}\n\n.h-treetable-sort-icon {\n color: dt('treetable.sort.icon.color');\n font-size: dt('treetable.sort.icon.size');\n width: dt('treetable.sort.icon.size');\n height: dt('treetable.sort.icon.size');\n transition: color dt('treetable.transition.duration');\n}\n\n.h-treetable .h-sortable-column .h-sortable-column-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.h-treetable-auto-layout>.h-treetable-wrapper {\n overflow-x: auto;\n}\n\n.h-treetable-auto-layout>.h-treetable-wrapper>table {\n table-layout: auto;\n}\n\n.h-treetable-hoverable-rows .h-treetable-tbody>tr {\n cursor: pointer;\n}\n\n.h-treetable-toggler {\n cursor: pointer;\n user-select: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n vertical-align: middle;\n overflow: hidden;\n position: relative;\n}\n\n\n/* Scrollable */\n.h-treetable-scrollable-wrapper {\n position: relative;\n}\n\n.h-treetable-scrollable-header,\n.h-treetable-scrollable-footer {\n overflow: hidden;\n flex-shrink: 0;\n}\n\n.h-treetable-scrollable-body {\n overflow: auto;\n position: relative;\n}\n\n.h-treetable-virtual-table {\n position: absolute;\n}\n\n/* Frozen Columns */\n.h-treetable-frozen-view .h-treetable-scrollable-body {\n overflow: hidden;\n}\n\n.h-treetable-frozen-view>.h-treetable-scrollable-body>table>.h-treetable-tbody>tr>td:last-child {\n border-right: 0 none;\n}\n\n.h-treetable-unfrozen-view {\n position: absolute;\n top: 0;\n}\n\n/* Flex Scrollable */\n.h-treetable-flex-scrollable {\n display: flex;\n flex-direction: column;\n flex: 1;\n height: 100%;\n}\n\n.h-treetable-flex-scrollable .h-treetable-scrollable-wrapper,\n.h-treetable-flex-scrollable .h-treetable-scrollable-view {\n display: flex;\n flex-direction: column;\n flex: 1;\n height: 100%;\n}\n\n.h-treetable-flex-scrollable .h-treetable-virtual-scrollable-body {\n flex: 1;\n}\n\n/* Resizable */\n.h-treetable-resizable>.h-treetable-wrapper {\n overflow-x: auto;\n}\n\n.h-treetable-resizable .h-treetable-thead>tr>th,\n.h-treetable-resizable .h-treetable-tfoot>tr>td,\n.h-treetable-resizable .h-treetable-tbody>tr>td {\n overflow: hidden;\n}\n\n.h-treetable-resizable .h-resizable-column {\n background-clip: padding-box;\n position: relative;\n}\n\n.h-treetable-resizable-fit .h-resizable-column:last-child .h-column-resizer {\n display: none;\n}\n\n.h-treetable .h-column-resizer {\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n margin: 0;\n width: dt('treetable.column.resizer.width');\n height: 100%;\n padding: 0px;\n cursor: col-resize;\n border: 1px solid transparent;\n}\n\n.h-treetable .h-column-resizer-helper {\n width: dt('treetable.resize.indicator.width');\n position: absolute;\n z-index: 10;\n display: none;\n background: dt('treetable.resize.indicator.color');\n}\n\n.h-treetable .h-row-editor-init,\n.h-treetable .h-row-editor-save,\n.h-treetable .h-row-editor-cancel {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n position: relative;\n}\n\n\n/* Reorder */\n.h-treetable-reorder-indicator-up,\n.h-treetable-reorder-indicator-down {\n position: absolute;\n display: none;\n}\n\n[ttReorderableColumn] {\n cursor: move;\n}\n\n/* Loader */\n.h-treetable-mask {\n position: absolute !important;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 2;\n}\n\n.h-treetable-loading-icon {\n font-size: dt('treetable.loading.icon.size');\n width: dt('treetable.loading.icon.size');\n height: dt('treetable.loading.icon.size');\n}\n\n/* Virtual Scroll */\n.h-treetable .h-scroller-loading {\n transform: none !important;\n min-height: 0;\n position: sticky;\n top: 0;\n left: 0;\n}\n\n.h-treetable .h-paginator-top {\n border-color: dt('treetable.paginator.top.border.color');\n border-style: solid;\n border-width: dt('treetable.paginator.top.border.width');\n}\n\n.h-treetable .h-paginator-bottom {\n border-color: dt('treetable.paginator.bottom.border.color');\n border-style: solid;\n border-width: dt('treetable.paginator.bottom.border.width');\n}\n\n.h-treetable .h-treetable-header {\n background: dt('treetable.header.background');\n color: dt('treetable.header.color');\n border-color: dt('treetable.header.border.color');\n border-style: solid;\n border-width: dt('treetable.header.border.width');\n padding: dt('treetable.header.padding');\n font-weight: dt('treetable.column.title.font.weight');\n}\n\n.h-treetable .h-treetable-footer {\n background: dt('treetable.footer.background');\n color: dt('treetable.footer.color');\n border-color: dt('treetable.footer.border.color');\n border-style: solid;\n border-width: dt('treetable.footer.border.width');\n padding: dt('treetable.footer.padding');\n font-weight: dt('treetable.column.footer.font.weight');\n}\n\n.h-treetable .h-treetable-thead>tr>th {\n padding: dt('treetable.header.cell.padding');\n background: dt('treetable.header.cell.background');\n border-color: dt('treetable.header.cell.border.color');\n border-style: solid;\n border-width: 0 0 1px 0;\n color: dt('treetable.header.cell.color');\n font-weight: dt('treetable.column.title.font.weight');\n text-align: start;\n transition: background dt('treetable.transition.duration'), color dt('treetable.transition.duration'), border-color dt('treetable.transition.duration'),\n outline-color dt('treetable.transition.duration'), box-shadow dt('treetable.transition.duration');\n}\n\n.h-treetable .h-treetable-tfoot>tr>td {\n text-align: start;\n padding: dt('treetable.footer.cell.padding');\n border-color: dt('treetable.footer.cell.border.color');\n border-style: solid;\n border-width: 0 0 1px 0;\n color: dt('treetable.footer.cell.color');\n background: dt('treetable.footer.cell.background');\n font-weight: dt('treetable.column.footer.font.weight');\n}\n\n.h-treetable .h-sortable-column {\n cursor: pointer;\n user-select: none;\n outline-color: transparent;\n vertical-align: middle;\n}\n\n.h-treetable .h-sortable-column .h-sortable-column-icon {\n color: dt('treetable.sort.icon.color');\n transition: color dt('treetable.transition.duration');\n}\n\n\n.h-treetable .h-sortable-column:not(.h-treetable-column-sorted):hover {\n background: dt('treetable.header.cell.hover.background');\n color: dt('treetable.header.cell.hover.color');\n}\n\n.h-treetable .h-sortable-column:not(.h-treetable-column-sorted):hover .h-treetable-sort-icon {\n color: dt('treetable.sort.icon.hover.color');\n}\n\n.h-treetable .h-sortable-column.h-treetable-column-sorted {\n background: dt('treetable.header.cell.selected.background');\n color: dt('treetable.header.cell.selected.color');\n}\n\n.h-treetable .h-sortable-column.h-treetable-column-sorted .h-treetable-sort-icon {\n color: dt('treetable.header.cell.selected.color');\n}\n\n.h-treetable .h-sortable-column:focus-visible {\n box-shadow: dt('treetable.header.cell.focus.ring.shadow');\n outline: dt('treetable.header.cell.focus.ring.width') dt('treetable.header.cell.focus.ring.style') dt('treetable.header.cell.focus.ring.color');\n outline-offset: dt('treetable.header.cell.focus.ring.offset');\n}\n\n.h-treetable-hoverable .h-treetable-selectable-row {\n cursor: pointer;\n}\n\n.h-treetable .h-treetable-tbody > tr {\n outline-color: transparent;\n background: dt('treetable.row.background');\n color: dt('treetable.row.color');\n}\n\n.h-treetable .h-treetable-tbody>tr>td {\n text-align: start;\n border-color: dt('treetable.body.cell.border.color');\n border-style: solid;\n border-width: 0 0 1px 0;\n padding: dt('treetable.body.cell.padding');\n}\n\n.h-treetable .h-treetable-tbody>tr>td .h-treetable-toggler {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n position: relative;\n width: dt('treetable.node.toggle.button.size');\n height: dt('treetable.node.toggle.button.size');\n color: dt('treetable.node.toggle.button.color');\n border: 0 none;\n background: transparent;\n cursor: pointer;\n border-radius: dt('treetable.node.toggle.button.border.radius');\n transition: background dt('treetable.transition.duration'), color dt('treetable.transition.duration'), border-color dt('treetable.transition.duration'),\n outline-color dt('treetable.transition.duration'), box-shadow dt('treetable.transition.duration');\n outline-color: transparent;\n user-select: none;\n}\n\n.h-treetable .h-treetable-tbody>tr>td .h-treetable-toggler:enabled:hover {\n color: dt('treetable.node.toggle.button.hover.color');\n background: dt('treetable.node.toggle.button.hover.background');\n}\n\n.h-treetable .h-treetable-tbody>tr>tr.treetable-row-selected .h-treetable-toggler:hover {\n background: dt('treetable.node.toggle.button.selected.hover.background');\n color: dt('treetable.node.toggle.button.selected.hover.color');\n}\n\n.h-treetable .h-treetable-tbody>tr>td .h-treetable-toggler:focus-visible {\n box-shadow: dt('treetable.node.toggle.button.focus.ring.shadow');\n outline: dt('treetable.node.toggle.button.focus.ring.width') dt('treetable.node.toggle.button.focus.ring.style') dt('treetable.node.toggle.button.focus.ring.color');\n outline-offset: dt('treetable.node.toggle.button.focus.ring.offset');\n}\n\n\n.h-treetable .h-treetable-tbody>tr.h-treetable-row-selected {\n background: dt('treetable.row.selected.background');\n color: dt('treetable.row.selected.color');\n}\n\n.h-treetable-tbody > tr:focus-visible,\n.h-treetable-tbody > tr.h-treetable-contextmenu-row-selected {\n box-shadow: dt('treetable.row.focus.ring.shadow');\n outline: dt('treetable.row.focus.ring.width') dt('treetable.row.focus.ring.style') dt('treetable.row.focus.ring.color');\n outline-offset: dt('treetable.row.focus.ring.offset');\n}\n\n.h-treetable .h-treetable-tbody>tr.h-treetable-row-selected .h-treetable-toggler {\n color: inherit;\n}\n\n.h-treetable .h-treetable-tbody>tr.h-treetable-row-selected .h-treetable-toggler:hover {\n background: dt('treetable.node.toggle.button.selected.hover.background');\n color: dt('treetable.node.toggle.button.selected.hover.color');\n}\n\n.h-treetable.h-treetable-hoverable-rows .h-treetable-tbody>tr:not(.h-treetable-row-selected):hover {\n background: dt('treetable.row.hover.background');\n color: dt('treetable.row.hover.color');\n}\n\n.h-treetable-gridlines .h-treetable-header {\n border-width: 1px 1px 0 1px;\n}\n\n.h-treetable-gridlines .h-treetable-footer {\n border-width: 0 1px 1px 1px;\n}\n\n.h-treetable-gridlines .h-treetable-paginator-top {\n border-width: 1px 1px 0 1px;\n}\n\n.h-treetable-gridlines .h-treetable-paginator-bottom {\n border-width: 0 1px 1px 1px;\n}\n\n.h-treetable-gridlines .h-treetable-thead > tr > th {\n border-width: 1px 0 1px 1px;\n}\n\n.h-treetable-gridlines .h-treetable-thead > tr > th:last-child {\n border-width: 1px;\n}\n\n.h-treetable-gridlines .h-treetable-tbody > tr > td {\n border-width: 1px 0 0 1px;\n}\n\n.h-treetable-gridlines .h-treetable-tbody > tr > td:last-child {\n border-width: 1px 1px 0 1px;\n}\n\n.h-treetable-gridlines .h-treetable-tbody > tr:last-child > td {\n border-width: 1px 0 1px 1px;\n}\n\n.h-treetable-gridlines .h-treetable-tbody > tr:last-child > td:last-child {\n border-width: 1px;\n}\n\n.h-treetable-gridlines .h-treetable-tfoot > tr > td {\n border-width: 1px 0 1px 1px;\n}\n\n.h-treetable-gridlines .h-treetable-tfoot > tr > td:last-child {\n border-width: 1px 1px 1px 1px;\n}\n\n.h-treetable.h-treetable-gridlines .h-treetable-thead + .h-treetable-tfoot > tr > td {\n border-width: 0 0 1px 1px;\n}\n\n.h-treetable.h-treetable-gridlines .h-treetable-thead + .h-treetable-tfoot > tr > td:last-child {\n border-width: 0 1px 1px 1px;\n}\n\n.h-treetable.h-treetable-gridlines:has(.h-treetable-thead):has(.h-treetable-tbody) .h-treetable-tbody > tr > td {\n border-width: 0 0 1px 1px;\n}\n\n.h-treetable.h-treetable-gridlines:has(.h-treetable-thead):has(.h-treetable-tbody) .h-treetable-tbody > tr > td:last-child {\n border-width: 0 1px 1px 1px;\n}\n\n.h-treetable.h-treetable-gridlines:has(.h-treetable-tbody):has(.h-treetable-tfoot) .h-treetable-tbody > tr:last-child > td {\n border-width: 0 0 0 1px;\n}\n\n.h-treetable.h-treetable-gridlines:has(.h-treetable-tbody):has(.h-treetable-tfoot) .h-treetable-tbody > tr:last-child > td:last-child {\n border-width: 0 1px 0 1px;\n}\n\n.h-treetable.h-treetable-sm .h-treetable-header {\n padding: 0.65625rem 0.875rem;\n}\n\n.h-treetable.h-treetable-sm .h-treetable-thead>tr>th {\n padding: 0.375rem 0.5rem;\n}\n\n.h-treetable.h-treetable-sm .h-treetable-tbody>tr>td {\n padding: 0.375rem 0.5rem;\n}\n\n.h-treetable.h-treetable-sm .h-treetable-tfoot>tr>td {\n padding: 0.375rem 0.5rem;\n}\n\n.h-treetable.h-treetable-sm .h-treetable-footer {\n padding: 0.375rem 0.5rem;\n}\n\n.h-treetable.h-treetable-lg .h-treetable-header {\n padding: 0.9375rem 1.25rem;\n}\n\n.h-treetable.h-treetable-lg .h-treetable-thead>tr>th {\n padding: 0.9375rem 1.25rem;\n}\n\n.h-treetable.h-treetable-lg .h-treetable-tbody>tr>td {\n padding: 0.9375rem 1.25rem;\n}\n\n.h-treetable.h-treetable-lg .h-treetable-tfoot>tr>td {\n padding: 0.9375rem 1.25rem;\n}\n\n.h-treetable.h-treetable-lg .h-treetable-footer {\n padding: 0.9375rem 1.25rem;\n}\n\nh-treetabletoggler + h-treetablecheckbox .h-checkbox,\nh-treetable-toggler + h-treetable-checkbox .h-checkbox,\nh-tree-table-toggler + h-tree-table-checkbox .h-checkbox {\n vertical-align: middle;\n}\n\nh-treetabletoggler + h-treetablecheckbox + span,\nh-treetable-toggler + h-treetable-checkbox + span,\nh-tree-table-toggler + h-tree-table-checkbox + span {\n vertical-align: middle;\n}\n\nh-treetable-sort-icon {\n display: inline-flex;\n align-items: center;\n gap: dt('treetable.header.cell.gap');\n}\n`;\n\nconst classes = {\n root: ({ instance }) => [\n 'h-treetable h-component',\n {\n 'h-treetable-gridlines': instance.showGridlines,\n 'h-treetable-hoverable-rows': instance.rowHover || instance.selectionMode === 'single' || instance.selectionMode === 'multiple',\n 'h-treetable-auto-layout': instance.autoLayout,\n 'h-treetable-resizable': instance.resizableColumns,\n 'h-treetable-resizable-fit': instance.resizableColumns && instance.columnResizeMode === 'fit',\n 'h-treetable-flex-scrollable': instance.scrollable && instance.scrollHeight === 'flex'\n }\n ],\n loading: 'h-treetable-loading',\n mask: 'h-treetable-mask h-overlay-mask',\n loadingIcon: 'h-treetable-loading-icon',\n header: 'h-treetable-header',\n pcPaginator: ({ instance }) => ['h-treetable-paginator-' + instance.paginatorPosition, instance.paginatorStyleClass],\n tableContainer: 'h-treetable-table-container',\n table: ({ instance }) => ({\n 'h-treetable-table': true,\n 'h-treetable-scrollable-table': instance.scrollable,\n 'h-treetable-resizable-table': instance.resizableColumns,\n 'h-treetable-resizable-table-fit': instance.resizableColumns && instance.columnResizeMode === 'fit'\n }),\n thead: 'h-treetable-thead',\n sortableColumn: ({ instance }) => ({\n 'h-sortable-column': instance.isEnabled(),\n 'h-treetable-column-sorted': instance.sorted\n }),\n sortableColumnIcon: 'h-treetable-sort-icon',\n sortableColumnBadge: 'h-sortable-column-badge',\n columnResizer: 'h-treetable-column-resizer',\n columnHeaderContent: 'h-treetable-column-header-content',\n columnTitle: 'h-treetable-column-title',\n sortIcon: 'h-treetable-sort-icon',\n pcSortBadge: 'h-treetable-sort-badge',\n tbody: 'h-treetable-tbody',\n row: ({ instance }) => ({\n 'h-treetable-row-selected': instance.selected\n }),\n contextMenuRow: ({ instance }) => ({\n 'h-treetable-contextmenu-row-selected': instance.selected\n }),\n toggler: 'h-treetable-toggler',\n nodeToggleButton: 'h-treetable-node-toggle-button',\n nodeToggleIcon: 'h-treetable-node-toggle-icon',\n pcNodeCheckbox: 'h-treetable-node-checkbox',\n tfoot: 'h-treetable-tfoot',\n footerCell: ({ instance }) => ({\n 'h-treetable-frozen-column': instance.columnProp('frozen')\n }),\n footer: 'h-treetable-footer',\n columnResizeIndicator: 'h-treetable-column-resize-indicator',\n wrapper: 'h-treetable-wrapper',\n scrollableWrapper: 'h-treetable-scrollable-wrapper',\n scrollableView: 'h-treetable-scrollable-view',\n frozenView: 'h-treetable-frozen-view',\n columnResizerHelper: 'h-column-resizer-helper',\n reorderIndicatorUp: 'h-treetable-reorder-indicator-up',\n reorderIndicatorDown: 'h-treetable-reorder-indicator-down',\n scrollableHeader: 'h-treetable-scrollable-header',\n scrollableHeaderBox: 'h-treetable-scrollable-header-box',\n scrollableHeaderTable: 'h-treetable-scrollable-header-table',\n scrollableBody: 'h-treetable-scrollable-body',\n scrollableFooter: 'h-treetable-scrollable-footer',\n scrollableFooterBox: 'h-treetable-scrollable-footer-box',\n scrollableFooterTable: 'h-treetable-scrollable-footer-table'\n};\n\n@Injectable()\nexport class TreeTableStyle extends BaseStyle {\n name = 'treetable';\n\n style = style;\n\n classes = classes;\n}\n\n/**\n *\n * TreeTable is used to display hierarchical data in tabular format.\n *\n * [Live Demo](https://www.primeng.org/treetable/)\n *\n * @module treetablestyle\n *\n */\nexport enum TreeTableClasses {\n /**\n * Class name of the root element\n */\n root = 'h-treetable',\n /**\n * Class name of the loading element\n */\n loading = 'h-treetable-loading',\n /**\n * Class name of the mask element\n */\n mask = 'h-treetable-mask',\n /**\n * Class name of the loading icon element\n */\n loadingIcon = 'h-treetable-loading-icon',\n /**\n * Class name of the header element\n */\n header = 'h-treetable-header',\n /**\n * Class name of the paginator element\n */\n pcPaginator = 'h-treetable-paginator-[position]',\n /**\n * Class name of the table container element\n */\n tableContainer = 'h-treetable-table-container',\n /**\n * Class name of the table element\n */\n table = 'h-treetable-table',\n /**\n * Class name of the thead element\n */\n thead = 'h-treetable-thead',\n /**\n * Class name of the column resizer element\n */\n columnResizer = 'h-treetable-column-resizer',\n /**\n * Class name of the column title element\n */\n columnTitle = 'h-treetable-column-title',\n /**\n * Class name of the sort icon element\n */\n sortIcon = 'h-treetable-sort-icon',\n /**\n * Class name of the sort badge element\n */\n pcSortBadge = 'h-treetable-sort-badge',\n /**\n * Class name of the tbody element\n */\n tbody = 'h-treetable-tbody',\n /**\n * Class name of the node toggle button element\n */\n nodeToggleButton = 'h-treetable-node-toggle-button',\n /**\n * Class name of the node toggle icon element\n */\n nodeToggleIcon = 'h-treetable-node-toggle-icon',\n /**\n * Class name of the node checkbox element\n */\n pcNodeCheckbox = 'h-treetable-node-checkbox',\n /**\n * Class name of the empty message element\n */\n emptyMessage = 'h-treetable-empty-message',\n /**\n * Class name of the tfoot element\n */\n tfoot = 'h-treetable-tfoot',\n /**\n * Class name of the footer element\n */\n footer = 'h-treetable-footer',\n /**\n * Class name of the column resize indicator element\n */\n columnResizeIndicator = 'h-treetable-column-resize-indicator',\n /**\n * Class name of the wrapper element\n */\n wrapper = 'h-treetable-wrapper',\n /**\n * Class name of the scrollable wrapper element\n */\n scrollableWrapper = 'h-treetable-scrollable-wrapper',\n /**\n * Class name of the scrollable view element\n */\n scrollableView = 'h-treetable-scrollable-view',\n /**\n * Class name of the frozen view element\n */\n frozenView = 'h-treetable-frozen-view',\n /**\n * Class name of the column resizer helper element\n */\n columnResizerHelper = 'h-treetable-column-resizer-helper',\n /**\n * Class name of the reorder indicator up element\n */\n reorderIndicatorUp = 'h-treetable-reorder-indicator-up',\n /**\n * Class name of the reorder indicator down element\n */\n reorderIndicatorDown = 'h-treetable-reorder-indicator-down',\n /**\n * Class name of the scrollable header element\n */\n scrollableHeader = 'h-treetable-scrollable-header',\n /**\n * Class name of the scrollable header box element\n */\n scrollableHeaderBox = 'h-treetable-scrollable-header-box',\n /**\n * Class name of the scrollable header table element\n */\n scrollableHeaderTable = 'h-treetable-scrollable-header-table',\n /**\n * Class name of the scrollable body element\n */\n scrollableBody = 'h-treetable-scrollable-body',\n /**\n * Class name of the scrollable footer element\n */\n scrollableFooter = 'h-treetable-scrollable-footer',\n /**\n * Class name of the scrollable footer box element\n */\n scrollableFooterBox = 'h-treetable-scrollable-footer-box',\n /**\n * Class name of the scrollable footer table element\n */\n scrollableFooterTable = 'h-treetable-scrollable-footer-table',\n /**\n * Class name of the sortable column icon element\n */\n sortableColumnIcon = 'h-sortable-column-icon'\n}\n\nexport interface TreeTableStyle extends BaseStyle {}\n","import { CommonModule, isPlatformBrowser } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n effect,\n ElementRef,\n inject,\n Injectable,\n InjectionToken,\n NgModule,\n NgZone,\n numberAttribute,\n TemplateRef,\n ViewEncapsulation,\n input,\n model,\n output,\n viewChild,\n contentChild,\n contentChildren\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport {\n addClass,\n addStyle,\n calculateScrollbarHeight,\n calculateScrollbarWidth,\n clearSelection,\n equals,\n find,\n findSingle,\n focus,\n getAttribute,\n getHiddenElementOuterHeight,\n getHiddenElementOuterWidth,\n getIndex,\n getOffset,\n invokeElementMethod,\n isClickable,\n isEmpty,\n isNotEmpty,\n removeClass,\n reorderArray,\n resolveFieldData\n} from '@gravionlabs/helix-core/uix/utils';\nimport { BlockableUI, FilterMetadata, FilterService, HelixTemplate, ScrollerOptions, SharedModule, SortMeta, TreeNode, TreeTableNode } from '@gravionlabs/helix-core/api';\nimport { BadgeModule } from '@gravionlabs/helix-core/badge';\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 { DomHandler } from '@gravionlabs/helix-core/dom';\nimport { ArrowDownIcon, ArrowUpIcon, CheckIcon, ChevronDownIcon, ChevronRightIcon, SortAltIcon, SortAmountDownIcon, SortAmountUpAltIcon, SpinnerIcon } from '@gravionlabs/helix-core/icons';\nimport { PaginatorModule } from '@gravionlabs/helix-core/paginator';\nimport { Ripple } from '@gravionlabs/helix-core/ripple';\nimport { Scroller } from '@gravionlabs/helix-core/scroller';\nimport { Nullable, VoidListener } from '@gravionlabs/helix-core/ts-helpers';\nimport {\n TreeTableBodyTemplateContext,\n TreeTableCheckboxIconTemplateContext,\n TreeTableColResizeEvent,\n TreeTableColumnReorderEvent,\n TreeTableColumnsTemplateContext,\n TreeTableContextMenuSelectEvent,\n TreeTableEditEvent,\n TreeTableEmptyMessageTemplateContext,\n TreeTableFilterEvent,\n TreeTableFilterOptions,\n TreeTableHeaderCheckboxIconTemplateContext,\n TreeTableHeaderCheckboxToggleEvent,\n TreeTableLazyLoadEvent,\n TreeTableNodeCollapseEvent,\n TreeTableNodeExpandEvent,\n TreeTableNodeUnSelectEvent,\n TreeTablePaginatorState,\n TreeTablePassThrough,\n TreeTableSortEvent,\n TreeTableSortIconTemplateContext,\n TreeTableTogglerIconTemplateContext\n} from '@gravionlabs/helix-core/types/treetable';\nimport { Subject, Subscription } from 'rxjs';\nimport { TreeTableStyle } from './style/treetablestyle';\n\nconst TREETABLE_INSTANCE = new InjectionToken<TreeTable>('TREETABLE_INSTANCE');\n\n@Injectable()\nexport class TreeTableService {\n private sortSource = new Subject<SortMeta | SortMeta[] | null>();\n private selectionSource = new Subject();\n private contextMenuSource = new Subject<any>();\n private uiUpdateSource = new Subject<any>();\n private totalRecordsSource = new Subject<any>();\n\n sortSource$ = this.sortSource.asObservable();\n selectionSource$ = this.selectionSource.asObservable();\n contextMenuSource$ = this.contextMenuSource.asObservable();\n uiUpdateSource$ = this.uiUpdateSource.asObservable();\n totalRecordsSource$ = this.totalRecordsSource.asObservable();\n\n onSort(sortMeta: SortMeta | SortMeta[] | null) {\n this.sortSource.next(sortMeta);\n }\n\n onSelectionChange() {\n this.selectionSource.next(null);\n }\n\n onContextMenu(node: any) {\n this.contextMenuSource.next(node);\n }\n\n onUIUpdate(value: any) {\n this.uiUpdateSource.next(value);\n }\n\n onTotalRecordsChange(value: number) {\n this.totalRecordsSource.next(value);\n }\n}\n\n/**\n * TreeTable is used to display hierarchical data in tabular format.\n * @group Components\n */\n@Component({\n selector: 'h-treeTable, h-treetable, h-tree-table',\n standalone: false,\n templateUrl: './treetable.html',\n providers: [TreeTableService, TreeTableStyle, { provide: TREETABLE_INSTANCE, useExisting: TreeTable }, { provide: PARENT_INSTANCE, useExisting: TreeTable }],\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': \"cn(cx('root'), styleClass())\",\n '[attr.data-h]': 'dataP',\n '[attr.data-scrollselectors]': \"'.h-treetable-scrollable-body'\"\n },\n changeDetection: ChangeDetectionStrategy.Eager,\n hostDirectives: [Bind]\n})\nexport class TreeTable extends BaseComponent<TreeTablePassThrough> implements BlockableUI {\n componentName = 'TreeTable';\n\n _componentStyle = inject(TreeTableStyle);\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n onAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n /**\n * An array of objects to represent dynamic columns.\n * @group Props\n */\n readonly columns = input<any[]>();\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 * Inline style of the table.\n * @group Props\n */\n readonly tableStyle = input<{\n [klass: string]: any;\n} | null>();\n /**\n * Style class of the table.\n * @group Props\n */\n readonly tableStyleClass = input<string>();\n /**\n * Whether the cell widths scale according to their content or not.\n * @group Props\n */\n readonly autoLayout = input<boolean, unknown>(undefined, { transform: booleanAttribute });\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 to call lazy loading on initialization.\n * @group Props\n */\n readonly lazyLoadOnInit = input<boolean, unknown>(true, { transform: booleanAttribute });\n /**\n * When specified as true, enables the pagination.\n * @group Props\n */\n readonly paginator = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n /**\n * Number of rows to display per page.\n * @group Props\n */\n readonly rows = model<number | undefined>(undefined);\n /**\n * Index of the first row to be displayed.\n * @group Props\n */\n readonly first = model<number | null | undefined>(0);\n /**\n * Number of page links to display in paginator.\n * @group Props\n */\n readonly pageLinks = input<number, unknown>(5, { transform: numberAttribute });\n /**\n * Array of integer/object values to display inside rows per page dropdown of paginator\n * @group Props\n */\n readonly rowsPerPageOptions = input<any[]>();\n /**\n * Whether to show it even there is only one page.\n * @group Props\n */\n readonly alwaysShowPaginator = input<boolean, unknown>(true, { transform: booleanAttribute });\n /**\n * Position of the paginator.\n * @group Props\n */\n readonly paginatorPosition = input<'top' | 'bottom' | 'both'>('bottom');\n /**\n * Custom style class for paginator\n * @group Props\n */\n readonly paginatorStyleClass = input<string>();\n /**\n * Target element to attach the paginator dropdown overlay, valid values are \"body\" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having #mydiv as variable name).\n * @group Props\n */\n readonly paginatorDropdownAppendTo = input<HTMLElement | ElementRef | TemplateRef<any> | string | null | any>();\n /**\n * Template of the current page report element. Available placeholders are {currentPage},{totalPages},{rows},{first},{last} and {totalRecords}\n * @group Props\n */\n readonly currentPageReportTemplate = input<string>('{currentPage} of {totalPages}');\n /**\n * Whether to display current page report.\n * @group Props\n */\n readonly showCurrentPageReport = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n /**\n * Whether to display a dropdown to navigate to any page.\n * @group Props\n */\n readonly showJumpToPageDropdown = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n /**\n * When enabled, icons are displayed on paginator to go first and last page.\n * @group Props\n */\n readonly showFirstLastIcon = input<boolean, unknown>(true, { transform: booleanAttribute });\n /**\n * Whether to show page links.\n * @group Props\n */\n readonly showPageLinks = input<boolean, unknown>(true, { transform: booleanAttribute });\n /**\n * Sort order to use when an unsorted column gets sorted by user interaction.\n * @group Props\n */\n readonly defaultSortOrder = input<number, unknown>(1, { transform: numberAttribute });\n /**\n * Defines whether sorting works on single column or on multiple columns.\n * @group Props\n */\n readonly sortMode = input<'single' | 'multiple'>('single');\n /**\n * When true, resets paginator to first page after sorting.\n * @group Props\n */\n readonly resetPageOnSort = input<boolean, unknown>(true, { transform: booleanAttribute });\n /**\n * Whether to use the default sorting or a custom one using sortFunction.\n * @group Props\n */\n readonly customSort = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n /**\n * Specifies the selection mode, valid values are \"single\" and \"multiple\".\n * @group Props\n */\n readonly selectionMode = input<string>();\n /**\n * Selected row with a context menu.\n * @group Props\n */\n readonly contextMenuSelection = model<any>(undefined);\n /**\n * Mode of the contet menu selection.\n * @group Props\n */\n readonly contextMenuSelectionMode = input<string>('separate');\n /**\n * A property to uniquely identify a record in data.\n * @group Props\n */\n readonly dataKey = input<string>();\n /**\n * Defines whether metaKey is should be considered for the selection. On touch enabled devices, metaKeySelection is turned off automatically.\n * @group Props\n */\n readonly metaKeySelection = input<boolean | undefined, unknown>(false, { transform: booleanAttribute });\n /**\n * Algorithm to define if a row is selected, valid values are \"equals\" that compares by reference and \"deepEquals\" that compares all fields.\n * @group Props\n */\n readonly compareSelectionBy = input<string>('deepEquals');\n /**\n * Adds hover effect to rows without the need for selectionMode.\n * @group Props\n */\n readonly rowHover = input<boolean, unknown>(undefined, { 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>();\n /**\n * Whether to show the loading mask when loading property is true.\n * @group Props\n */\n readonly showLoader = input<boolean, unknown>(true, { transform: booleanAttribute });\n /**\n * When specified, enables horizontal and/or vertical scrolling.\n * @group Props\n */\n readonly scrollable = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n /**\n * Height of the scroll viewport in fixed pixels or the \"flex\" keyword for a dynamic size.\n * @group Props\n */\n readonly scrollHeight = input<string>();\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 a row to use in calculations of virtual scrolling.\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 * The delay (in milliseconds) before triggering the virtual scroll. This determines the time gap between the user's scroll action and the actual rendering of the next set of items in the virtual scroll.\n * @group Props\n */\n readonly virtualScrollDelay = input<number, unknown>(150, { transform: numberAttribute });\n /**\n * Width of the frozen columns container.\n * @group Props\n */\n readonly frozenWidth = input<string>();\n /**\n * An array of objects to represent dynamic columns that are frozen.\n * @group Props\n */\n readonly frozenColumns = input<{ [klass: string]: any } | null>();\n /**\n * When enabled, columns can be resized using drag and drop.\n * @group Props\n */\n readonly resizableColumns = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n /**\n * Defines whether the overall table width should change on column resize, valid values are \"fit\" and \"expand\".\n * @group Props\n */\n readonly columnResizeMode = input<string>('fit');\n /**\n * When enabled, columns can be reordered using drag and drop.\n * @group Props\n */\n readonly reorderableColumns = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n /**\n * Local ng-template varilable of a ContextMenu.\n * @group Props\n */\n readonly contextMenu = input<any>();\n /**\n * Function to optimize the dom operations by delegating to ngForTrackBy, default algorithm checks for object identity.\n * @group Props\n */\n readonly rowTrackBy = input<Function>((index: number, item: any) => item);\n /**\n * An array of FilterMetadata objects to provide external filters.\n * @group Props\n */\n readonly filters = input<{ [s: string]: FilterMetadata | undefined }>({});\n /**\n * An array of fields as string to use in global filtering.\n * @group Props\n */\n readonly globalFilterFields = input<string[]>();\n /**\n * Delay in milliseconds before filtering the data.\n * @group Props\n */\n readonly filterDelay = input<number, unknown>(300, { transform: numberAttribute });\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 * 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 * Locale to be used in paginator formatting.\n * @group Props\n */\n readonly paginatorLocale = input<string>();\n /**\n * Number of total records, defaults to length of value when not defined.\n * @group Props\n */\n readonly totalRecords = model<number>(0);\n /**\n * Name of the field to sort data by default.\n * @group Props\n */\n readonly sortField = model<string | undefined | null>(undefined);\n /**\n * Order to sort when default sorting is enabled.\n * @defaultValue 1\n * @group Props\n */\n readonly sortOrder = model<number>(1);\n /**\n * An array of SortMeta objects to sort the data by default in multiple sort mode.\n * @defaultValue null\n * @group Props\n */\n readonly multiSortMeta = model<SortMeta[] | undefined | null>(undefined);\n /**\n * Selected row in single mode or an array of values in multiple mode.\n * @defaultValue null\n * @group Props\n */\n readonly selection = model<any>(undefined);\n /**\n * An array of objects to display.\n * @defaultValue null\n * @group Props\n */\n readonly value = model<TreeNode<any>[] | undefined>([]);\n /**\n * Indicates the height of rows to be scrolled.\n * @defaultValue 28\n * @group Props\n * @deprecated use virtualScrollItemSize property instead.\n */\n readonly virtualRowHeight = input<number>(28);\n /**\n * A map of keys to control the selection state.\n * @group Props\n */\n readonly selectionKeys = model<any>(undefined);\n /**\n * Whether to show grid lines between cells.\n * @defaultValue false\n * @group Props\n */\n readonly showGridlines = input<boolean, unknown>(false, { transform: booleanAttribute });\n /**\n * Callback to invoke on selected node change.\n * Emitted automatically as `selectionChange` via the `selection` model.\n * @param {TreeTableNode} object - Node instance.\n * @group Emits\n */\n /**\n * Callback to invoke on context menu selection change.\n * Emitted automatically as `contextMenuSelectionChange` via the `contextMenuSelection` model.\n * @param {TreeTableNode} object - Node instance.\n * @group Emits\n */\n /**\n * Callback to invoke when data is filtered.\n * @param {TreeTableFilterEvent} event - Custom filter event.\n * @group Emits\n */\n readonly onFilter = output<TreeTableFilterEvent>();\n /**\n * Callback to invoke when a node is expanded.\n * @param {TreeTableNodeExpandEvent} event - Node expand event.\n * @group Emits\n */\n readonly onNodeExpand = output<TreeTableNodeExpandEvent>();\n /**\n * Callback to invoke when a node is collapsed.\n * @param {TreeTableNodeCollapseEvent} event - Node collapse event.\n * @group Emits\n */\n readonly onNodeCollapse = output<TreeTableNodeCollapseEvent>();\n /**\n * Callback to invoke when pagination occurs.\n * @param {TreeTablePaginatorState} object - Paginator state.\n * @group Emits\n */\n readonly onPage = output<TreeTablePaginatorState>();\n /**\n * Callback to invoke when a column gets sorted.\n * @param {Object} Object - Sort data.\n * @group Emits\n */\n readonly onSort = output<any>();\n /**\n * Callback to invoke when paging, sorting or filtering happens in lazy mode.\n * @param {TreeTableLazyLoadEvent} event - Custom lazy load event.\n * @group Emits\n */\n readonly onLazyLoad = output<TreeTableLazyLoadEvent>();\n /**\n * An event emitter to invoke on custom sorting, refer to sorting section for details.\n * @param {TreeTableSortEvent} event - Custom sort event.\n * @group Emits\n */\n readonly sortFunction = output<TreeTableSortEvent>();\n /**\n * Callback to invoke when a column is resized.\n * @param {TreeTableColResizeEvent} event - Custom column resize event.\n * @group Emits\n */\n readonly onColResize = output<TreeTableColResizeEvent>();\n /**\n * Callback to invoke when a column is reordered.\n * @param {TreeTableColumnReorderEvent} event - Custom column reorder.\n * @group Emits\n */\n readonly onColReorder = output<TreeTableColumnReorderEvent>();\n /**\n * Callback to invoke when a node is selected.\n * @param {TreeTableNode} object - Node instance.\n * @group Emits\n */\n readonly onNodeSelect = output<TreeTableNode>();\n /**\n * Callback to invoke when a node is unselected.\n * @param {TreeTableNodeUnSelectEvent} event - Custom node unselect event.\n * @group Emits\n */\n readonly onNodeUnselect = output<TreeTableNodeUnSelectEvent>();\n /**\n * Callback to invoke when a node is selected with right click.\n * @param {TreeTableContextMenuSelectEvent} event - Custom context menu select event.\n * @group Emits\n */\n readonly onContextMenuSelect = output<TreeTableContextMenuSelectEvent>();\n /**\n * Callback to invoke when state of header checkbox changes.\n * @param {TreeTableHeaderCheckboxToggleEvent} event - Custom checkbox toggle event.\n * @group Emits\n */\n readonly onHeaderCheckboxToggle = output<TreeTableHeaderCheckboxToggleEvent>();\n /**\n * Callback to invoke when a cell switches to edit mode.\n * @param {TreeTableEditEvent} event - Custom edit event.\n * @group Emits\n */\n readonly onEditInit = output<TreeTableEditEvent>();\n /**\n * Callback to invoke when cell edit is completed.\n * @param {TreeTableEditEvent} event - Custom edit event.\n * @group Emits\n */\n readonly onEditComplete = output<TreeTableEditEvent>();\n /**\n * Callback to invoke when cell edit is cancelled with escape key.\n * @param {TreeTableEditEvent} event - Custom edit event.\n * @group Emits\n */\n readonly onEditCancel = output<TreeTableEditEvent>();\n /**\n * Callback to invoke when selectionKeys are changed.\n * Emitted automatically as `selectionKeysChange` via the `selectionKeys` model.\n * @param {Object} object - updated value of the selectionKeys.\n * @group Emits\n */\n\n readonly resizeHelperViewChild = viewChild<Nullable<ElementRef>>('resizeHelper');\n\n readonly reorderIndicatorUpViewChild = viewChild<Nullable<ElementRef>>('reorderIndicatorUp');\n\n readonly reorderIndicatorDownViewChild = viewChild<Nullable<ElementRef>>('reorderIndicatorDown');\n\n readonly tableViewChild = viewChild<Nullable<ElementRef>>('table');\n\n readonly scrollableViewChild = viewChild<Nullable<ElementRef>>('scrollableView');\n\n readonly scrollableFrozenViewChild = viewChild<Nullable<ElementRef>>('scrollableFrozenView');\n\n serializedValue: any[] | undefined | null;\n\n filteredNodes: Nullable<any[]>;\n\n filterTimeout: any;\n\n readonly _colGroupTemplate = contentChild<Nullable<TemplateRef<TreeTableColumnsTemplateContext>>>('colgroup', { descendants: false });\n colGroupTemplate: Nullable<TemplateRef<TreeTableColumnsTemplateContext>>;\n\n readonly _captionTemplateSignal = contentChild<TemplateRef<void>>('caption', { descendants: false });\n get _captionTemplate(): TemplateRef<void> | undefined { return this._captionTemplateSignal(); }\n captionTemplate: Nullable<TemplateRef<void>>;\n\n readonly _headerTemplate = contentChild<Nullable<TemplateRef<TreeTableColumnsTemplateContext>>>('header', { descendants: false });\n headerTemplate: Nullable<TemplateRef<TreeTableColumnsTemplateContext>>;\n\n readonly _bodyTemplate = contentChild<Nullable<TemplateRef<TreeTableBodyTemplateContext>>>('body', { descendants: false });\n bodyTemplate: Nullable<TemplateRef<TreeTableBodyTemplateContext>>;\n\n readonly _footerTemplateSignal = contentChild<TemplateRef<TreeTableColumnsTemplateContext>>('footer', { descendants: false });\n get _footerTemplate(): TemplateRef<TreeTableColumnsTemplateContext> | undefined { return this._footerTemplateSignal(); }\n footerTemplate: Nullable<TemplateRef<TreeTableColumnsTemplateContext>>;\n\n readonly _summaryTemplateSignal = contentChild<TemplateRef<void>>('summary', { descendants: false });\n get _summaryTemplate(): TemplateRef<void> | undefined { return this._summaryTemplateSignal(); }\n summaryTemplate: Nullable<TemplateRef<void>>;\n\n readonly _emptyMessageTemplate = contentChild<Nullable<TemplateRef<TreeTableEmptyMessageTemplateContext>>>('emptymessage', { descendants: false });\n emptyMessageTemplate: Nullable<TemplateRef<TreeTableEmptyMessageTemplateContext>>;\n\n readonly _paginatorLeftTemplate = contentChild<Nullable<TemplateRef<void>>>('paginatorleft', { descendants: false });\n paginatorLeftTemplate: Nullable<TemplateRef<void>>;\n\n readonly _paginatorRightTemplate = contentChild<Nullable<TemplateRef<void>>>('paginatorright', { descendants: false });\n paginatorRightTemplate: Nullable<TemplateRef<void>>;\n\n readonly _paginatorDropdownItemTemplate = contentChild<Nullable<TemplateRef<void>>>('paginatordropdownitem', { descendants: false });\n paginatorDropdownItemTemplate: Nullable<TemplateRef<void>>;\n\n readonly _frozenHeaderTemplate = contentChild<Nullable<TemplateRef<TreeTableColumnsTemplateContext>>>('frozenheader', { descendants: false });\n frozenHeaderTemplate: Nullable<TemplateRef<TreeTableColumnsTemplateContext>>;\n\n readonly _frozenBodyTemplate = contentChild<Nullable<TemplateRef<void>>>('frozenbody', { descendants: false });\n frozenBodyTemplate: Nullable<TemplateRef<void>>;\n\n readonly _frozenFooterTemplate = contentChild<Nullable<TemplateRef<TreeTableColumnsTemplateContext>>>('frozenfooter', { descendants: false });\n frozenFooterTemplate: Nullable<TemplateRef<TreeTableColumnsTemplateContext>>;\n\n readonly _frozenColGroupTemplate = contentChild<Nullable<TemplateRef<TreeTableColumnsTemplateContext>>>('frozencolgroup', { descendants: false });\n frozenColGroupTemplate: Nullable<TemplateRef<TreeTableColumnsTemplateContext>>;\n\n readonly _loadingIconTemplateSignal = contentChild<TemplateRef<void>>('loadingicon', { descendants: false });\n get _loadingIconTemplate(): TemplateRef<void> | undefined { return this._loadingIconTemplateSignal(); }\n loadingIconTemplate: Nullable<TemplateRef<void>>;\n\n readonly _reorderIndicatorUpIconTemplate = contentChild<Nullable<TemplateRef<void>>>('reorderindicatorupicon', { descendants: false });\n reorderIndicatorUpIconTemplate: Nullable<TemplateRef<void>>;\n\n readonly _reorderIndicatorDownIconTemplate = contentChild<Nullable<TemplateRef<void>>>('reorderindicatordownicon', { descendants: false });\n reorderIndicatorDownIconTemplate: Nullable<TemplateRef<void>>;\n\n readonly _sortIconTemplateSignal = contentChild<TemplateRef<TreeTableSortIconTemplateContext>>('sorticon', { descendants: false });\n get _sortIconTemplate(): TemplateRef<TreeTableSortIconTemplateContext> | undefined { return this._sortIconTemplateSignal(); }\n sortIconTemplate: Nullable<TemplateRef<TreeTableSortIconTemplateContext>>;\n\n readonly _checkboxIconTemplateSignal = contentChild<TemplateRef<TreeTableCheckboxIconTemplateContext>>('checkboxicon', { descendants: false });\n get _checkboxIconTemplate(): TemplateRef<TreeTableCheckboxIconTemplateContext> | undefined { return this._checkboxIconTemplateSignal(); }\n checkboxIconTemplate: Nullable<TemplateRef<TreeTableCheckboxIconTemplateContext>>;\n\n readonly _headerCheckboxIconTemplateSignal = contentChild<TemplateRef<TreeTableHeaderCheckboxIconTemplateContext>>('headercheckboxicon', { descendants: false });\n get _headerCheckboxIconTemplate(): TemplateRef<TreeTableHeaderCheckboxIconTemplateContext> | undefined { return this._headerCheckboxIconTemplateSignal(); }\n headerCheckboxIconTemplate: Nullable<TemplateRef<TreeTableHeaderCheckboxIconTemplateContext>>;\n\n readonly _togglerIconTemplate = contentChild<Nullable<TemplateRef<TreeTableTogglerIconTemplateContext>>>('togglericon', { descendants: false });\n togglerIconTemplate: Nullable<TemplateRef<TreeTableTogglerIconTemplateContext>>;\n\n readonly _paginatorFirstPageLinkIconTemplateSignal = contentChild<TemplateRef<void>>('paginatorfirstpagelinkicon', { descendants: false });\n get _paginatorFirstPageLinkIconTemplate(): TemplateRef<void> | undefined { return this._paginatorFirstPageLinkIconTemplateSignal(); }\n paginatorFirstPageLinkIconTemplate: Nullable<TemplateRef<void>>;\n\n readonly _paginatorLastPageLinkIconTemplateSignal = contentChild<TemplateRef<void>>('paginatorlastpagelinkicon', { descendants: false });\n get _paginatorLastPageLinkIconTemplate(): TemplateRef<void> | undefined { return this._paginatorLastPageLinkIconTemplateSignal(); }\n paginatorLastPageLinkIconTemplate: Nullable<TemplateRef<void>>;\n\n readonly _paginatorPreviousPageLinkIconTemplateSignal = contentChild<TemplateRef<void>>('paginatorpreviouspagelinkicon', { descendants: false });\n get _paginatorPreviousPageLinkIconTemplate(): TemplateRef<void> | undefined { return this._paginatorPreviousPageLinkIconTemplateSignal(); }\n paginatorPreviousPageLinkIconTemplate: Nullable<TemplateRef<void>>;\n\n readonly _paginatorNextPageLinkIconTemplateSignal = contentChild<TemplateRef<void>>('paginatornextpagelinkicon', { descendants: false });\n get _paginatorNextPageLinkIconTemplate(): TemplateRef<void> | undefined { return this._paginatorNextPageLinkIconTemplateSignal(); }\n paginatorNextPageLinkIconTemplate: Nullable<TemplateRef<void>>;\n\n readonly _loaderTemplateSignal = contentChild<TemplateRef<void>>('loader', { descendants: false });\n get _loaderTemplate(): TemplateRef<void> | undefined { return this._loaderTemplateSignal(); }\n loaderTemplate: Nullable<TemplateRef<void>>;\n\n lastResizerHelperX: Nullable<number>;\n\n reorderIconWidth: Nullable<number>;\n\n reorderIconHeight: Nullable<number>;\n\n draggedColumn: Nullable<any[]>;\n\n dropPosition: Nullable<number>;\n\n preventSelectionSetterPropagation: Nullable<boolean>;\n\n selectedKeys: any = {};\n\n rowTouched: Nullable<boolean>;\n\n editingCell: Nullable<Element>;\n\n editingCellData: any | undefined | null;\n\n editingCellField: any | undefined | null;\n\n editingCellClick: Nullable<boolean>;\n\n documentEditListener: VoidListener;\n\n initialized: Nullable<boolean>;\n\n toggleRowIndex: Nullable<number>;\n\n onInit() {\n if (this.lazy() && this.lazyLoadOnInit() && !this.virtualScroll()) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n this.initialized = true;\n }\n\n readonly templates = contentChildren(HelixTemplate);\n\n onAfterContentInit() {\n this.templates().forEach((item) => {\n switch (item.getType()) {\n case 'caption':\n this.captionTemplate = item.template;\n break;\n\n case 'header':\n this.headerTemplate = item.template;\n break;\n\n case 'body':\n this.bodyTemplate = item.template;\n break;\n\n case 'footer':\n this.footerTemplate = item.template;\n break;\n\n case 'summary':\n this.summaryTemplate = item.template;\n break;\n\n case 'colgroup':\n this.colGroupTemplate = item.template;\n break;\n\n case 'emptymessage':\n this.emptyMessageTemplate = item.template;\n break;\n\n case 'paginatorleft':\n this.paginatorLeftTemplate = item.template;\n break;\n\n case 'paginatorright':\n this.paginatorRightTemplate = item.template;\n break;\n\n case 'paginatordropdownitem':\n this.paginatorDropdownItemTemplate = item.template;\n break;\n\n case 'frozenheader':\n this.frozenHeaderTemplate = item.template;\n break;\n\n case 'frozenbody':\n this.frozenBodyTemplate = item.template;\n break;\n\n case 'frozenfooter':\n this.frozenFooterTemplate = item.template;\n break;\n\n case 'frozencolgroup':\n this.frozenColGroupTemplate = item.template;\n break;\n\n case 'loadingicon':\n this.loadingIconTemplate = item.template;\n break;\n\n case 'reorderindicatorupicon':\n this.reorderIndicatorUpIconTemplate = item.template;\n break;\n\n case 'reorderindicatordownicon':\n this.reorderIndicatorDownIconTemplate = item.template;\n break;\n\n case 'sorticon':\n this.sortIconTemplate = item.template;\n break;\n\n case 'checkboxicon':\n this.checkboxIconTemplate = item.template;\n break;\n\n case 'headercheckboxicon':\n this.headerCheckboxIconTemplate = item.template;\n break;\n\n case 'togglericon':\n this.togglerIconTemplate = item.template;\n break;\n\n case 'paginatorfirstpagelinkicon':\n this.paginatorFirstPageLinkIconTemplate = item.template;\n break;\n\n case 'paginatorlastpagelinkicon':\n this.paginatorLastPageLinkIconTemplate = item.template;\n break;\n\n case 'paginatorpreviouspagelinkicon':\n this.paginatorPreviousPageLinkIconTemplate = item.template;\n break;\n\n case 'paginatornextpagelinkicon':\n this.paginatorNextPageLinkIconTemplate = item.template;\n break;\n\n case 'loader':\n this.loaderTemplate = item.template;\n break;\n }\n });\n }\n\n filterService = inject(FilterService);\n\n tableService = inject(TreeTableService);\n\n zone = inject(NgZone);\n\n // The `totalRecords` setter used to notify TreeTableService on every write; `totalRecords` is\n // now a model() signal, so the notification is reproduced as an effect (rule 3).\n private readonly _totalRecordsEffect = effect(() => {\n this.tableService.onTotalRecordsChange(this.totalRecords());\n });\n\n // NOTE: `virtualRowHeight`'s setter used to log a one-time deprecation console.log whenever a\n // consumer explicitly bound the (deprecated) property. It is now a plain input() (rule 1/3); the\n // console.log side effect was intentionally dropped rather than reproduced via effect(), because\n // an effect reading virtualRowHeight() fires once for every TreeTable instance at initialization\n // regardless of whether the consumer ever set the input (signals don't distinguish \"default value\"\n // from \"explicitly bound to the default\"), which would make the warning fire unconditionally for\n // every consumer instead of only those actually using the deprecated property.\n\n // Removed onChanges method (dead code with signal inputs): `value`, `sortField`, `sortOrder`,\n // `multiSortMeta`, and `selection` are now signal-based (model()), so Angular no longer routes\n // their changes through ngOnChanges/onChanges. Internal mutation paths (sort(), onPageChange(),\n // filter methods, selection handlers, etc.) already call updateSerializedValue()/sortSingle()/\n // sortMultiple()/updateselectedKeys() explicitly where needed. Mirrors table.ts (PR #391).\n\n updateSerializedValue() {\n this.serializedValue = [];\n\n if (this.paginator()) this.serializePageNodes();\n else this.serializeNodes(null, this.filteredNodes || this.value(), 0, true);\n }\n\n serializeNodes(parent: Nullable<TreeTableNode>, nodes: Nullable<TreeNode[]>, level: Nullable<number>, visible: Nullable<boolean>) {\n if (nodes && nodes.length) {\n for (let node of nodes) {\n node.parent = <TreeTableNode>parent;\n const rowNode = {\n node: node,\n parent: parent,\n level: level,\n visible: visible && (parent ? parent.expanded : true)\n };\n (<TreeNode[]>this.serializedValue).push(<TreeTableNode>rowNode);\n\n if (rowNode.visible && node.expanded) {\n this.serializeNodes(node, node.children, <number>level + 1, rowNode.visible);\n }\n }\n }\n }\n\n serializePageNodes() {\n let data = this.filteredNodes || this.value();\n this.serializedValue = [];\n if (data && data.length) {\n const first = this.lazy() ? 0 : <number>this.first();\n\n for (let i = first; i < first + <number>this.rows(); i++) {\n let node = data[i];\n if (node) {\n this.serializedValue.push({\n node: node,\n parent: <any>null,\n level: 0,\n visible: true\n });\n\n this.serializeNodes(node, node.children, 1, true);\n }\n }\n }\n }\n\n updateselectedKeys() {\n const dataKey = this.dataKey();\n if (dataKey && this.selection()) {\n this.selectedKeys = {};\n if (Array.isArray(this.selection())) {\n for (let node of this.selection()) {\n this.selectedKeys[String(resolveFieldData(node.data, dataKey))] = 1;\n }\n } else {\n this.selectedKeys[String(resolveFieldData((<any>this.selection()).data, dataKey))] = 1;\n }\n }\n }\n\n onPageChange(event: TreeTablePaginatorState) {\n this.first.set(<number>event.first);\n this.rows.set(<number>event.rows);\n\n if (this.lazy()) this.onLazyLoad.emit(this.createLazyLoadMetadata());\n else this.serializePageNodes();\n\n this.onPage.emit({\n first: <number>this.first(),\n rows: this.rows()\n });\n\n this.tableService.onUIUpdate(this.value());\n\n if (this.scrollable()) {\n this.resetScrollTop();\n }\n }\n\n sort(event: TreeTableSortEvent) {\n let originalEvent = event.originalEvent;\n\n const sortMode = this.sortMode();\n const scrollable = this.scrollable();\n const resetPageOnSort = this.resetPageOnSort();\n if (sortMode === 'single') {\n this.sortOrder.set(this.sortField() === event.field ? this.sortOrder() * -1 : this.defaultSortOrder());\n this.sortField.set(event.field);\n this.sortSingle();\n\n if (resetPageOnSort && scrollable) {\n this.resetScrollTop();\n }\n }\n if (sortMode === 'multiple') {\n let metaKey = (<KeyboardEvent>originalEvent).metaKey || (<KeyboardEvent>originalEvent).ctrlKey;\n let sortMeta = this.getSortMeta(<string>event.field);\n\n if (sortMeta) {\n if (!metaKey) {\n this.multiSortMeta.set([{ field: <string>event.field, order: sortMeta.order * -1 }]);\n\n if (resetPageOnSort && scrollable) {\n this.resetScrollTop();\n }\n } else {\n sortMeta.order = sortMeta.order * -1;\n }\n } else {\n if (!metaKey || !this.multiSortMeta()) {\n this.multiSortMeta.set([]);\n\n if (resetPageOnSort && scrollable) {\n this.resetScrollTop();\n }\n }\n (<SortMeta[]>this.multiSortMeta()).push({ field: <string>event.field, order: this.defaultSortOrder() });\n }\n\n this.sortMultiple();\n }\n }\n\n sortSingle() {\n if (this.sortField() && this.sortOrder()) {\n if (this.lazy()) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n } else if (this.value()) {\n this.sortNodes(<TreeNode[]>this.value());\n\n if (this.hasFilter()) {\n this._filter();\n }\n }\n\n let sortMeta: SortMeta = {\n field: <string>this.sortField(),\n order: this.sortOrder()\n };\n\n this.onSort.emit(sortMeta);\n this.tableService.onSort(sortMeta);\n this.updateSerializedValue();\n }\n }\n\n sortNodes(nodes: TreeNode[]) {\n if (!nodes || nodes.length === 0) {\n return;\n }\n\n if (this.customSort()) {\n this.sortFunction.emit({\n data: nodes,\n mode: this.sortMode(),\n field: <string>this.sortField(),\n order: this.sortOrder()\n });\n } else {\n nodes.sort((node1, node2) => {\n let value1 = resolveFieldData(node1.data, this.sortField());\n let value2 = resolveFieldData(node2.data, this.sortField());\n let result: number = 0;\n\n if (value1 == null && value2 != null) result = -1;\n else if (value1 != null && value2 == null) result = 1;\n else if (value1 == null && value2 == null) result = 0;\n else if (typeof value1 === 'string' && typeof value2 === 'string') result = value1.localeCompare(value2, undefined, { numeric: true });\n else result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n\n return this.sortOrder() * result;\n });\n }\n\n for (let node of nodes) {\n this.sortNodes(node.children as TreeNode[]);\n }\n }\n\n sortMultiple() {\n if (this.multiSortMeta()) {\n if (this.lazy()) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n } else if (this.value()) {\n this.sortMultipleNodes(<TreeNode[]>this.value());\n\n if (this.hasFilter()) {\n this._filter();\n }\n }\n\n this.onSort.emit({\n multisortmeta: this.multiSortMeta()\n });\n this.updateSerializedValue();\n this.tableService.onSort(<SortMeta[]>this.multiSortMeta());\n }\n }\n\n sortMultipleNodes(nodes: TreeNode[]) {\n if (!nodes || nodes.length === 0) {\n return;\n }\n\n if (this.customSort()) {\n this.sortFunction.emit({\n data: this.value(),\n mode: this.sortMode(),\n multiSortMeta: this.multiSortMeta()\n });\n } else {\n nodes.sort((node1, node2) => {\n return this.multisortField(node1, node2, <SortMeta[]>this.multiSortMeta(), 0);\n });\n }\n\n for (let node of nodes) {\n this.sortMultipleNodes(node.children as TreeNode[]);\n }\n }\n\n multisortField(node1: TreeTableNode, node2: TreeTableNode, multiSortMeta: SortMeta[], index: number): number {\n if (isEmpty(this.multiSortMeta()) || isEmpty(multiSortMeta[index])) {\n return 0;\n }\n\n let value1 = resolveFieldData(node1.data, multiSortMeta[index].field);\n let value2 = resolveFieldData(node2.data, multiSortMeta[index].field);\n let result: number = 0;\n\n if (value1 == null && value2 != null) result = -1;\n else if (value1 != null && value2 == null) result = 1;\n else if (value1 == null && value2 == null) result = 0;\n if (typeof value1 == 'string' || value1 instanceof String) {\n if (value1.localeCompare && value1 != value2) {\n return multiSortMeta[index].order * value1.localeCompare(value2, undefined, { numeric: true });\n }\n } else {\n result = value1 < value2 ? -1 : 1;\n }\n\n if (value1 == value2) {\n return multiSortMeta.length - 1 > index ? this.multisortField(node1, node2, multiSortMeta, index + 1) : 0;\n }\n\n return multiSortMeta[index].order * result;\n }\n\n getSortMeta(field: string) {\n const multiSortMeta = this.multiSortMeta();\n if (multiSortMeta && multiSortMeta.length) {\n for (let i = 0; i < multiSortMeta.length; i++) {\n if (multiSortMeta[i].field === field) {\n return multiSortMeta[i];\n }\n }\n }\n\n return null;\n }\n\n isSorted(field: string) {\n const sortMode = this.sortMode();\n if (sortMode === 'single') {\n return this.sortField() && this.sortField() === field;\n } else if (sortMode === 'multiple') {\n let sorted = false;\n const multiSortMeta = this.multiSortMeta();\n if (multiSortMeta) {\n for (let i = 0; i < multiSortMeta.length; i++) {\n if (multiSortMeta[i].field == field) {\n sorted = true;\n break;\n }\n }\n }\n return sorted;\n }\n }\n\n createLazyLoadMetadata(): any {\n return {\n first: this.first(),\n rows: this.rows(),\n sortField: this.sortField(),\n sortOrder: this.sortOrder(),\n filters: this.filters(),\n globalFilter: this.filters() && this.filters()['global'] ? (<FilterMetadata>this.filters()['global']).value : null,\n multiSortMeta: this.multiSortMeta(),\n forceUpdate: () => this.cd.detectChanges()\n };\n }\n\n onLazyItemLoad(event: TreeTableLazyLoadEvent) {\n this.onLazyLoad.emit({\n ...this.createLazyLoadMetadata(),\n ...event,\n rows: event.last - event.first\n });\n }\n /**\n * Resets scroll to top.\n * @group Method\n */\n public resetScrollTop() {\n if (this.virtualScroll()) this.scrollToVirtualIndex(0);\n else this.scrollTo({ top: 0 });\n }\n /**\n * Scrolls to given index when using virtual scroll.\n * @param {number} index - index of the element.\n * @group Method\n */\n public scrollToVirtualIndex(index: number) {\n const scrollableViewChild = this.scrollableViewChild();\n if (scrollableViewChild) {\n (<any>scrollableViewChild).scrollToVirtualIndex(<number>index);\n }\n\n if (this.scrollableFrozenViewChild()) {\n (<any>scrollableViewChild).scrollToVirtualIndex(index);\n }\n }\n /**\n * Scrolls to given index.\n * @param {ScrollToOptions} options - Scroll options.\n * @group Method\n */\n public scrollTo(options: ScrollToOptions) {\n const scrollableViewChild = this.scrollableViewChild();\n if (scrollableViewChild) {\n (<any>scrollableViewChild).scrollTo(options);\n }\n\n if (this.scrollableFrozenViewChild()) {\n (<any>scrollableViewChild).scrollTo(options);\n }\n }\n\n isEmpty() {\n let data = this.filteredNodes || this.value();\n return data == null || data.length == 0;\n }\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\n }\n\n onColumnResizeBegin(event: MouseEvent) {\n let containerLeft = <any>getOffset(this.el?.nativeElement).left;\n this.lastResizerHelperX = event.pageX - containerLeft + this.el?.nativeElement.scrollLeft;\n event.preventDefault();\n }\n\n onColumnResize(event: MouseEvent) {\n let containerLeft = <any>getOffset(this.el?.nativeElement).left;\n this.el?.nativeElement.setAttribute('data-h-unselectable-text', 'true');\n !this.$unstyled() && addStyle(this.el.nativeElement, { 'user-select': 'none' });\n (<ElementRef>this.resizeHelperViewChild()).nativeElement.style.height = this.el?.nativeElement.offsetHeight + 'px';\n (<ElementRef>this.resizeHelperViewChild()).nativeElement.style.top = 0 + 'px';\n (<ElementRef>this.resizeHelperViewChild()).nativeElement.style.left = event.pageX - containerLeft + this.el?.nativeElement.scrollLeft + 'px';\n\n (<ElementRef>this.resizeHelperViewChild()).nativeElement.style.display = 'block';\n }\n\n onColumnResizeEnd(event: MouseEvent, column: any) {\n let delta = (<ElementRef>this.resizeHelperViewChild()).nativeElement.offsetLeft - <number>this.lastResizerHelperX;\n let columnWidth = column.offsetWidth;\n let newColumnWidth = columnWidth + delta;\n let minWidth = column.style.minWidth || 15;\n\n if (columnWidth + delta > parseInt(minWidth)) {\n const columnResizeMode = this.columnResizeMode();\n if (columnResizeMode === 'fit') {\n let nextColumn = column.nextElementSibling;\n while (!nextColumn.offsetParent) {\n nextColumn = nextColumn.nextElementSibling;\n }\n\n if (nextColumn) {\n let nextColumnWidth = nextColumn.offsetWidth - delta;\n let nextColumnMinWidth = nextColumn.style.minWidth || 15;\n\n if (newColumnWidth > 15 && nextColumnWidth > parseInt(nextColumnMinWidth)) {\n if (this.scrollable()) {\n let scrollableView = this.findParentScrollableView(column);\n let scrollableBodyTable = <any>findSingle(scrollableView, '[data-pc-section=\"scrollablebody\"] table') || findSingle(scrollableView, '[data-pc-name=\"virtualscroller\"] table');\n let scrollableHeaderTable = <any>findSingle(scrollableView, '[data-pc-section=\"scrollableheadertable\"]');\n let scrollableFooterTable = <any>findSingle(scrollableView, '[data-pc-section=\"scrollablefootertable\"]');\n let resizeColumnIndex = getIndex(column);\n\n this.resizeColGroup(scrollableHeaderTable, resizeColumnIndex, newColumnWidth, nextColumnWidth);\n this.resizeColGroup(scrollableBodyTable, resizeColumnIndex, newColumnWidth, nextColumnWidth);\n this.resizeColGroup(scrollableFooterTable, resizeColumnIndex, newColumnWidth, nextColumnWidth);\n } else {\n column.style.width = newColumnWidth + 'px';\n if (nextColumn) {\n nextColumn.style.width = nextColumnWidth + 'px';\n }\n }\n }\n }\n } else if (columnResizeMode === 'expand') {\n if (this.scrollable()) {\n let scrollableView = this.findParentScrollableView(column);\n let scrollableBody = <any>findSingle(scrollableView, '[data-pc-section=\"scrollablebody\"]') || findSingle(scrollableView, '[data-pc-name=\"virtualscroller\"]');\n let scrollableHeader = <any>findSingle(scrollableView, '[data-pc-section=\"scrollableheader\"]');\n let scrollableFooter = <any>findSingle(scrollableView, '[data-pc-section=\"scrollablefooter\"]');\n let scrollableBodyTable = <any>findSingle(scrollableView, '[data-pc-section=\"scrollablebody\"] table') || findSingle(scrollableView, '[data-pc-name=\"virtualscroller\"] table');\n let scrollableHeaderTable = <any>findSingle(scrollableView, '[data-pc-section=\"scrollableheadertable\"]');\n let scrollableFooterTable = <any>findSingle(scrollableView, '[data-pc-section=\"scrollablefootertable\"]');\n scrollableBodyTable.style.width = scrollableBodyTable.offsetWidth + delta + 'px';\n scrollableHeaderTable.style.width = scrollableHeaderTable.offsetWidth + delta + 'px';\n if (scrollableFooterTable) {\n scrollableFooterTable.style.width = scrollableFooterTable.offsetWidth + delta + 'px';\n }\n let resizeColumnIndex = getIndex(column);\n\n const scrollableBodyTableWidth = column ? scrollableBodyTable.offsetWidth + delta : newColumnWidth;\n const scrollableHeaderTableWidth = column ? scrollableHeaderTable.offsetWidth + delta : newColumnWidth;\n const isContainerInViewport = this.el?.nativeElement.offsetWidth >= scrollableBodyTableWidth;\n\n let setWidth = (container: HTMLElement, table: HTMLElement, width: number, isContainerInViewport: boolean) => {\n if (container && table) {\n container.style.width = isContainerInViewport ? width + calculateScrollbarWidth(scrollableBody) + 'px' : 'auto';\n table.style.width = width + 'px';\n }\n };\n\n setWidth(scrollableBody, scrollableBodyTable, scrollableBodyTableWidth, isContainerInViewport);\n setWidth(scrollableHeader, scrollableHeaderTable, scrollableHeaderTableWidth, isContainerInViewport);\n setWidth(scrollableFooter, scrollableFooterTable, scrollableHeaderTableWidth, isContainerInViewport);\n\n this.resizeColGroup(scrollableHeaderTable, resizeColumnIndex, newColumnWidth, null);\n this.resizeColGroup(scrollableBodyTable, resizeColumnIndex, newColumnWidth, null);\n this.resizeColGroup(scrollableFooterTable, resizeColumnIndex, newColumnWidth, null);\n } else {\n const tableViewChild = this.tableViewChild();\n (<ElementRef>this.tableViewChild()).nativeElement.style.width = tableViewChild?.nativeElement.offsetWidth + delta + 'px';\n column.style.width = newColumnWidth + 'px';\n let containerWidth = tableViewChild?.nativeElement.style.width;\n (<ElementRef>this.el).nativeElement.style.width = containerWidth + 'px';\n }\n }\n\n this.onColResize.emit({\n element: column,\n delta: delta\n });\n }\n\n (this.resizeHelperViewChild() as ElementRef).nativeElement.style.display = 'none';\n\n this.el.nativeElement.removeAttribute('data-h-unselectable-text');\n !this.$unstyled() && (this.el.nativeElement.style['user-select'] = '');\n }\n\n findParentScrollableView(column: any) {\n if (column) {\n let parent = column.parentElement;\n while (parent && !findSingle(parent, '[data-pc-section=\"scrollableview\"]')) {\n parent = parent.parentElement;\n }\n\n return parent;\n } else {\n return null;\n }\n }\n\n resizeColGroup(table: Nullable<HTMLElement>, resizeColumnIndex: Nullable<number>, newColumnWidth: Nullable<number>, nextColumnWidth: Nullable<number>) {\n if (table) {\n let colGroup = table.children[0].nodeName === 'COLGROUP' ? table.children[0] : null;\n\n if (colGroup) {\n let col = colGroup.children[<number>resizeColumnIndex];\n let nextCol = col.nextElementSibling;\n (<HTMLElement>col).style.width = newColumnWidth + 'px';\n\n if (nextCol && nextColumnWidth) {\n (<HTMLElement>nextCol).style.width = nextColumnWidth + 'px';\n }\n } else {\n throw 'Scrollable tables require a colgroup to support resizable columns';\n }\n }\n }\n\n onColumnDragStart(event: DragEvent, columnElement: any) {\n this.reorderIconWidth = getHiddenElementOuterWidth(this.reorderIndicatorUpViewChild()?.nativeElement);\n this.reorderIconHeight = getHiddenElementOuterHeight(this.reorderIndicatorDownViewChild()?.nativeElement);\n this.draggedColumn = columnElement;\n (<any>event).dataTransfer.setData('text', 'b'); // For firefox\n }\n\n onColumnDragEnter(event: DragEvent, dropHeader: any) {\n if (this.reorderableColumns() && this.draggedColumn && dropHeader) {\n event.preventDefault();\n let containerOffset = <any>getOffset(this.el?.nativeElement);\n let dropHeaderOffset = <any>getOffset(dropHeader);\n\n if (this.draggedColumn != dropHeader) {\n let targetLeft = dropHeaderOffset.left - containerOffset.left;\n let targetTop = containerOffset.top - dropHeaderOffset.top;\n let columnCenter = dropHeaderOffset.left + dropHeader.offsetWidth / 2;\n\n (<ElementRef>this.reorderIndicatorUpViewChild()).nativeElement.style.top = dropHeaderOffset.top - containerOffset.top - (<number>this.reorderIconHeight - 1) + 'px';\n (<ElementRef>this.reorderIndicatorDownViewChild()).nativeElement.style.top = dropHeaderOffset.top - containerOffset.top + dropHeader.offsetHeight + 'px';\n\n if (event.pageX > columnCenter) {\n (<ElementRef>this.reorderIndicatorUpViewChild()).nativeElement.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(<number>this.reorderIconWidth / 2) + 'px';\n (<ElementRef>this.reorderIndicatorDownViewChild()).nativeElement.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(<number>this.reorderIconWidth / 2) + 'px';\n this.dropPosition = 1;\n } else {\n (<ElementRef>this.reorderIndicatorUpViewChild()).nativeElement.style.left = targetLeft - Math.ceil(<number>this.reorderIconWidth / 2) + 'px';\n (<ElementRef>this.reorderIndicatorDownViewChild()).nativeElement.style.left = targetLeft - Math.ceil(<number>this.reorderIconWidth / 2) + 'px';\n this.dropPosition = -1;\n }\n\n (<ElementRef>this.reorderIndicatorUpViewChild()).nativeElement.style.display = 'block';\n (<ElementRef>this.reorderIndicatorDownViewChild()).nativeElement.style.display = 'block';\n } else {\n (<any>event).dataTransfer.dropEffect = 'none';\n }\n }\n }\n\n onColumnDragLeave(event: DragEvent) {\n if (this.reorderableColumns() && this.draggedColumn) {\n event.preventDefault();\n (<ElementRef>this.reorderIndicatorUpViewChild()).nativeElement.style.display = 'none';\n (<ElementRef>this.reorderIndicatorDownViewChild()).nativeElement.style.display = 'none';\n }\n }\n\n onColumnDrop(event: DragEvent, dropColumn: any) {\n event.preventDefault();\n if (this.draggedColumn) {\n let dragIndex = DomHandler.indexWithinGroup(this.draggedColumn, 'ttreorderablecolumn');\n let dropIndex = DomHandler.indexWithinGroup(dropColumn, 'ttreorderablecolumn');\n let allowDrop = dragIndex != dropIndex;\n if (allowDrop && ((dropIndex - dragIndex == 1 && this.dropPosition === -1) || (dragIndex - dropIndex == 1 && this.dropPosition === 1))) {\n allowDrop = false;\n }\n\n if (allowDrop && dropIndex < dragIndex && this.dropPosition === 1) {\n dropIndex = dropIndex + 1;\n }\n\n if (allowDrop && dropIndex > dragIndex && this.dropPosition === -1) {\n dropIndex = dropIndex - 1;\n }\n\n if (allowDrop) {\n const columns = this.columns();\n reorderArray(<any[]>columns, dragIndex, dropIndex);\n\n this.onColReorder.emit({\n dragIndex: dragIndex,\n dropIndex: dropIndex,\n columns: columns\n });\n }\n\n (<ElementRef>this.reorderIndicatorUpViewChild()).nativeElement.style.display = 'none';\n (<ElementRef>this.reorderIndicatorDownViewChild()).nativeElement.style.display = 'none';\n (this.draggedColumn as any).draggable = false;\n this.draggedColumn = null;\n this.dropPosition = null;\n }\n }\n\n handleRowClick(event: any) {\n let targetNode = (<HTMLElement>event.originalEvent.target).nodeName;\n if (targetNode == 'INPUT' || targetNode == 'BUTTON' || targetNode == 'A' || isClickable(event.originalEvent.target)) {\n return;\n }\n\n const selectionMode = this.selectionMode();\n if (selectionMode) {\n this.preventSelectionSetterPropagation = true;\n let rowNode = event.rowNode;\n let selected = this.isSelected((<any>rowNode).node);\n let metaSelection = this.rowTouched ? false : this.metaKeySelection();\n const dataKey = this.dataKey();\n let dataKeyValue = dataKey ? String(resolveFieldData((<TreeTableNode>rowNode.node).data, dataKey)) : null;\n\n if (metaSelection) {\n let keyboardEvent = <KeyboardEvent>event.originalEvent;\n let metaKey = keyboardEvent.metaKey || keyboardEvent.ctrlKey;\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n this.selection.set(null);\n this.selectedKeys = {};\n } else {\n let selectionIndex = this.findIndexInSelection(rowNode.node);\n this.selection.set(this.selection().filter((val: TreeTableNode, i: number) => i != selectionIndex));\n if (dataKeyValue) {\n delete this.selectedKeys[dataKeyValue];\n }\n }\n\n this.onNodeUnselect.emit({\n originalEvent: event.originalEvent,\n node: <TreeTableNode>rowNode.node,\n type: 'row'\n });\n } else {\n if (this.isSingleSelectionMode()) {\n this.selection.set(rowNode.node);\n if (dataKeyValue) {\n this.selectedKeys = {};\n this.selectedKeys[dataKeyValue] = 1;\n }\n } else if (this.isMultipleSelectionMode()) {\n if (metaKey) {\n this.selection.set(this.selection() || []);\n } else {\n this.selection.set([]);\n this.selectedKeys = {};\n }\n\n this.selection.set([...this.selection(), rowNode.node]);\n if (dataKeyValue) {\n this.selectedKeys[dataKeyValue] = 1;\n }\n }\n\n this.onNodeSelect.emit({\n originalEvent: event.originalEvent,\n node: rowNode.node,\n type: 'row',\n index: (<any>event).rowIndex\n });\n }\n } else {\n if (selectionMode === 'single') {\n if (selected) {\n this.selection.set(null);\n this.selectedKeys = {};\n this.onNodeUnselect.emit({\n originalEvent: event.originalEvent,\n node: <TreeTableNode>rowNode.node,\n type: 'row'\n });\n } else {\n this.selection.set(rowNode.node);\n this.onNodeSelect.emit({\n originalEvent: event.originalEvent,\n node: rowNode.node,\n type: 'row',\n index: event.rowIndex\n });\n if (dataKeyValue) {\n this.selectedKeys = {};\n this.selectedKeys[dataKeyValue] = 1;\n }\n }\n } else if (selectionMode === 'multiple') {\n if (selected) {\n let selectionIndex = this.findIndexInSelection(rowNode.node);\n this.selection.set(this.selection().filter((val: TreeTableNode, i: number) => i != selectionIndex));\n this.onNodeUnselect.emit({\n originalEvent: event.originalEvent,\n node: rowNode.node,\n type: 'row'\n });\n if (dataKeyValue) {\n delete this.selectedKeys[dataKeyValue];\n }\n } else {\n this.selection.set(this.selection() ? [...this.selection(), rowNode.node] : [rowNode.node]);\n this.onNodeSelect.emit({\n originalEvent: event.originalEvent,\n node: rowNode.node,\n type: 'row',\n index: event.rowIndex\n });\n if (dataKeyValue) {\n this.selectedKeys[dataKeyValue] = 1;\n }\n }\n }\n }\n\n this.tableService.onSelectionChange();\n }\n\n this.rowTouched = false;\n }\n\n handleRowTouchEnd(event: Event) {\n this.rowTouched = true;\n }\n\n handleRowRightClick(event: any) {\n if (this.contextMenu()) {\n const node = event.rowNode.node;\n\n const showContextMenu = () => {\n this.contextMenu().show(event.originalEvent);\n this.contextMenu().hideCallback = () => {\n this.contextMenuSelection.set(null);\n this.tableService.onContextMenu(null);\n };\n };\n\n const contextMenuSelectionMode = this.contextMenuSelectionMode();\n if (contextMenuSelectionMode === 'separate') {\n this.contextMenuSelection.set(node);\n this.tableService.onContextMenu(node);\n showContextMenu();\n this.onContextMenuSelect.emit({ originalEvent: event.originalEvent, node: node });\n } else if (contextMenuSelectionMode === 'joint') {\n this.preventSelectionSetterPropagation = true;\n let selected = this.isSelected(node);\n const dataKey = this.dataKey();\n let dataKeyValue = dataKey ? String(resolveFieldData(node.data, dataKey)) : null;\n\n if (!selected) {\n if (this.isSingleSelectionMode()) {\n this.selection.set(node);\n } else if (this.isMultipleSelectionMode()) {\n this.selection.set([node]);\n }\n\n if (dataKeyValue) {\n this.selectedKeys[dataKeyValue] = 1;\n }\n }\n\n this.contextMenuSelection.set(node);\n this.tableService.onContextMenu(node);\n\n showContextMenu();\n this.onContextMenuSelect.emit({ originalEvent: event.originalEvent, node: node });\n }\n }\n }\n\n toggleNodeWithCheckbox(event: any) {\n // legacy selection support, will be removed in v18\n this.selection.set(this.selection() || []);\n this.preventSelectionSetterPropagation = true;\n let node = event.rowNode.node;\n let selected = this.isSelected(node);\n\n if (selected) {\n this.propagateSelectionDown(node, false);\n if (event.rowNode.parent) {\n this.propagateSelectionUp(node.parent, false);\n }\n this.onNodeUnselect.emit({ originalEvent: event, node: node });\n } else {\n this.propagateSelectionDown(node, true);\n if (event.rowNode.parent) {\n this.propagateSelectionUp(node.parent, true);\n }\n this.onNodeSelect.emit({ originalEvent: event, node: node });\n }\n\n this.tableService.onSelectionChange();\n }\n\n toggleNodesWithCheckbox(event: Event, check: boolean) {\n // legacy selection support, will be removed in v18\n let data = this.filteredNodes || this.value();\n this.selection.set(check && data ? data.slice() : []);\n\n this.toggleAll(check);\n\n if (!check) {\n this.selection.set([]);\n this.selectedKeys = {};\n }\n\n this.preventSelectionSetterPropagation = true;\n this.tableService.onSelectionChange();\n\n this.onHeaderCheckboxToggle.emit({ originalEvent: event, checked: check });\n }\n\n toggleAll(checked: boolean) {\n let data = this.filteredNodes || this.value();\n\n if (!this.selectionKeys()) {\n if (data && data.length) {\n for (let node of data) {\n this.propagateSelectionDown(node, checked);\n }\n }\n } else {\n // legacy selection support, will be removed in v18\n if (data && data.length) {\n for (let node of data) {\n this.propagateDown(node, checked);\n }\n // selectionKeys is mutated in place above; re-set with a shallow clone so the\n // selectionKeys model signal detects the change and emits selectionKeysChange.\n this.selectionKeys.set({ ...this.selectionKeys() });\n }\n }\n }\n\n propagateSelectionUp(node: TreeTableNode, select: boolean) {\n // legacy selection support, will be removed in v18\n if (node.children && node.children.length) {\n let selectedChildCount: number = 0;\n let childPartialSelected: boolean = false;\n const dataKey = this.dataKey();\n let dataKeyValue = dataKey ? String(resolveFieldData(node.data, dataKey)) : null;\n\n for (let child of node.children) {\n if (this.isSelected(child)) selectedChildCount++;\n else if (child.partialSelected) childPartialSelected = true;\n }\n\n if (select && selectedChildCount == node.children.length) {\n this.selection.set([...(this.selection() || []), node]);\n node.partialSelected = false;\n if (dataKeyValue) {\n this.selectedKeys[dataKeyValue] = 1;\n }\n } else {\n if (!select) {\n let index = this.findIndexInSelection(node);\n if (index >= 0) {\n this.selection.set(this.selection().filter((val: any, i: number) => i != index));\n\n if (dataKeyValue) {\n delete this.selectedKeys[dataKeyValue];\n }\n }\n }\n\n if (childPartialSelected || (selectedChildCount > 0 && selectedChildCount != node.children.length)) node.partialSelected = true;\n else node.partialSelected = false;\n }\n }\n\n let parent = node.parent;\n node.checked = select;\n if (parent) {\n this.propagateSelectionUp(parent, select);\n }\n }\n\n propagateSelectionDown(node: TreeTableNode, select: boolean) {\n // legacy selection support, will be removed in v18\n let index = this.findIndexInSelection(node);\n const dataKey = this.dataKey();\n let dataKeyValue = dataKey ? String(resolveFieldData(node.data, dataKey)) : null;\n\n if (select && index == -1) {\n this.selection.set([...(this.selection() || []), node]);\n if (dataKeyValue) {\n this.selectedKeys[dataKeyValue] = 1;\n }\n } else if (!select && index > -1) {\n this.selection.set(this.selection().filter((val: any, i: number) => i != index));\n if (dataKeyValue) {\n delete this.selectedKeys[dataKeyValue];\n }\n }\n\n node.partialSelected = false;\n node.checked = select;\n\n if (node.children && node.children.length) {\n for (let child of node.children) {\n this.propagateSelectionDown(child, select);\n }\n }\n }\n\n isSelected(node: TreeTableNode) {\n // legacy selection support, will be removed in v18\n if (node && this.selection()) {\n const dataKey = this.dataKey();\n if (dataKey) {\n if (node.hasOwnProperty('checked')) {\n return node['checked'];\n } else {\n return this.selectedKeys[resolveFieldData(node.data, dataKey)] !== undefined;\n }\n } else {\n if (Array.isArray(this.selection())) return this.findIndexInSelection(node) > -1;\n else return this.equals(node, this.selection());\n }\n }\n\n return false;\n }\n\n isNodeSelected(node) {\n return this.selectionMode() && this.selectionKeys() ? this.selectionKeys()[this.nodeKey(node)]?.checked === true : false;\n }\n\n isNodePartialSelected(node) {\n return this.selectionMode() && this.selectionKeys() ? this.selectionKeys()[this.nodeKey(node)]?.partialChecked === true : false;\n }\n\n nodeKey(node) {\n const dataKey = this.dataKey();\n return resolveFieldData(node, dataKey) || resolveFieldData(node?.data, dataKey);\n }\n\n toggleCheckbox(event) {\n let { rowNode, check, originalEvent } = event;\n let node = rowNode.node;\n if (this.selectionKeys()) {\n this.propagateDown(node, check);\n if (node.parent) {\n this.propagateUp(node.parent, check);\n }\n\n // selectionKeys is mutated in place above; re-set with a shallow clone so the\n // selectionKeys model signal detects the change and emits selectionKeysChange.\n this.selectionKeys.set({ ...this.selectionKeys() });\n } else {\n this.toggleNodeWithCheckbox({ originalEvent, rowNode });\n }\n\n this.tableService.onSelectionChange();\n }\n\n propagateDown(node, check) {\n if (check) {\n this.selectionKeys()[this.nodeKey(node)] = { checked: true, partialChecked: false };\n } else {\n delete this.selectionKeys()[this.nodeKey(node)];\n }\n\n if (node.children && node.children.length) {\n for (let child of node.children) {\n this.propagateDown(child, check);\n }\n }\n }\n\n propagateUp(node, check) {\n let checkedChildCount = 0;\n let childPartialSelected = false;\n\n for (let child of node.children) {\n if (this.selectionKeys()[this.nodeKey(child)] && this.selectionKeys()[this.nodeKey(child)].checked) checkedChildCount++;\n else if (this.selectionKeys()[this.nodeKey(child)] && this.selectionKeys()[this.nodeKey(child)].partialChecked) childPartialSelected = true;\n }\n\n if (check && checkedChildCount === node.children.length) {\n this.selectionKeys()[this.nodeKey(node)] = { checked: true, partialChecked: false };\n } else {\n if (!check) {\n delete this.selectionKeys()[this.nodeKey(node)];\n }\n\n if (childPartialSelected || (checkedChildCount > 0 && checkedChildCount !== node.children.length)) this.selectionKeys()[this.nodeKey(node)] = { checked: false, partialChecked: true };\n else this.selectionKeys()[this.nodeKey(node)] = { checked: false, partialChecked: false };\n }\n\n let parent = node.parent;\n if (parent) {\n this.propagateUp(parent, check);\n }\n }\n\n findIndexInSelection(node: any) {\n let index: number = -1;\n if (this.selection() && this.selection().length) {\n for (let i = 0; i < this.selection().length; i++) {\n if (this.equals(node, this.selection()[i])) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n }\n\n isSingleSelectionMode() {\n return this.selectionMode() === 'single';\n }\n\n isMultipleSelectionMode() {\n return this.selectionMode() === 'multiple';\n }\n\n equals(node1: TreeTableNode, node2: TreeTableNode) {\n return this.compareSelectionBy() === 'equals' ? equals(node1, node2) : equals(node1.data, node2.data, this.dataKey());\n }\n\n filter(value: string | string[], field: string, matchMode: string) {\n if (this.filterTimeout) {\n clearTimeout(this.filterTimeout);\n }\n\n if (!this.isFilterBlank(value)) {\n this.filters()[field] = { value: value, matchMode: matchMode };\n } else if (this.filters()[field]) {\n delete this.filters()[field];\n }\n\n this.filterTimeout = setTimeout(() => {\n this._filter();\n this.filterTimeout = null;\n }, this.filterDelay());\n }\n\n filterGlobal(value: string, matchMode: string) {\n this.filter(value, 'global', matchMode);\n }\n\n isFilterBlank(filter: any): boolean {\n if (filter !== null && filter !== undefined) {\n if ((typeof filter === 'string' && filter.trim().length == 0) || (Array.isArray(filter) && filter.length == 0)) return true;\n else return false;\n }\n return true;\n }\n\n _filter() {\n if (this.lazy()) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n } else {\n const value = this.value();\n if (!value) {\n return;\n }\n\n if (!this.hasFilter()) {\n this.filteredNodes = null;\n if (this.paginator()) {\n this.totalRecords.set(value ? value.length : 0);\n }\n } else {\n let globalFilterFieldsArray;\n if (this.filters()['global']) {\n const columns = this.columns();\n const globalFilterFields = this.globalFilterFields();\n if (!columns && !globalFilterFields) throw new Error('Global filtering requires dynamic columns or globalFilterFields to be defined.');\n else globalFilterFieldsArray = globalFilterFields || columns;\n }\n\n this.filteredNodes = [];\n const isStrictMode = this.filterMode() === 'strict';\n let isValueChanged = false;\n\n for (let node of value) {\n let copyNode = { ...node };\n let localMatch = true;\n let globalMatch = false;\n let paramsWithoutNode;\n\n for (let prop in this.filters()) {\n if (this.filters().hasOwnProperty(prop) && prop !== 'global') {\n let filterMeta = <FilterMetadata>this.filters()[prop];\n let filterField = prop;\n let filterValue = filterMeta.value;\n let filterMatchMode = filterMeta.matchMode || 'startsWith';\n let filterConstraint = (<any>this.filterService).filters[filterMatchMode];\n paramsWithoutNode = { filterField, filterValue, filterConstraint, 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 localMatch = false;\n }\n\n if (!localMatch) {\n break;\n }\n }\n }\n\n if (this.filters()['global'] && !globalMatch && globalFilterFieldsArray) {\n let copyNodeForGlobal = { ...copyNode };\n let filterField = undefined;\n let filterValue = (<FilterMetadata>this.filters()['global']).value;\n let filterConstraint = (<any>this.filterService).filters[(<any>this.filters())['global'].matchMode];\n paramsWithoutNode = {\n filterField,\n filterValue,\n filterConstraint,\n isStrictMode,\n globalFilterFieldsArray\n };\n\n if (\n (isStrictMode && (this.findFilteredNodes(copyNodeForGlobal, paramsWithoutNode) || this.isFilterMatched(copyNodeForGlobal, paramsWithoutNode))) ||\n (!isStrictMode && (this.isFilterMatched(copyNodeForGlobal, paramsWithoutNode) || this.findFilteredNodes(copyNodeForGlobal, paramsWithoutNode)))\n ) {\n globalMatch = true;\n copyNode = copyNodeForGlobal;\n }\n }\n\n let matches = localMatch;\n if (this.filters()['global']) {\n matches = localMatch && globalMatch;\n }\n\n if (matches) {\n this.filteredNodes.push(copyNode);\n }\n\n isValueChanged = isValueChanged || !localMatch || globalMatch || (localMatch && this.filteredNodes.length > 0) || (!globalMatch && this.filteredNodes.length === 0);\n }\n\n if (!isValueChanged) {\n this.filteredNodes = null;\n }\n\n if (this.paginator()) {\n this.totalRecords.set(this.filteredNodes ? this.filteredNodes.length : value ? value.length : 0);\n }\n }\n this.cd.markForCheck();\n }\n\n this.first.set(0);\n\n const filteredValue = this.filteredNodes || this.value();\n\n this.onFilter.emit({\n filters: this.filters(),\n filteredValue: filteredValue\n });\n\n this.tableService.onUIUpdate(filteredValue);\n this.updateSerializedValue();\n\n if (this.scrollable()) {\n this.resetScrollTop();\n }\n }\n\n findFilteredNodes(node: TreeTableNode, 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 return true;\n }\n }\n }\n\n isFilterMatched(node: TreeTableNode, filterOptions: TreeTableFilterOptions) {\n let { filterField, filterValue, filterConstraint, isStrictMode, globalFilterFieldsArray } = <any>filterOptions;\n let matched = false;\n const isMatched = (field: string) => filterConstraint(resolveFieldData(node.data, field), filterValue, <string>this.filterLocale());\n\n matched = globalFilterFieldsArray?.length ? globalFilterFieldsArray.some((globalFilterField) => isMatched(globalFilterField.field || globalFilterField)) : isMatched(filterField);\n\n if (!matched || (isStrictMode && !this.isNodeLeaf(node))) {\n matched =\n this.findFilteredNodes(node, {\n filterField,\n filterValue,\n filterConstraint,\n isStrictMode,\n globalFilterFieldsArray\n }) || matched;\n }\n\n return matched;\n }\n\n isNodeLeaf(node: TreeTableNode) {\n return node.leaf === false ? false : !(node.children && node.children.length);\n }\n\n hasFilter() {\n let empty = true;\n for (let prop in this.filters()) {\n if (this.filters().hasOwnProperty(prop)) {\n empty = false;\n break;\n }\n }\n\n return !empty;\n }\n /**\n * Clears the sort and paginator state.\n * @group Method\n */\n public reset() {\n this.sortField.set(null);\n this.sortOrder.set(1);\n this.multiSortMeta.set(null);\n this.tableService.onSort(null);\n\n this.filteredNodes = null;\n // `filters` is a plain input() (no filtersChange output), so it cannot be reassigned;\n // clear it in place instead, mirroring table.ts's approach for its filters input.\n for (const key of Object.keys(this.filters())) {\n delete this.filters()[key];\n }\n\n this.first.set(0);\n\n if (this.lazy()) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n } else {\n const value = this.value();\n this.totalRecords.set(value ? value.length : 0);\n }\n }\n\n updateEditingCell(cell: any, data: any, field: string) {\n this.editingCell = cell;\n this.editingCellData = data;\n this.editingCellField = field;\n this.bindDocumentEditListener();\n }\n\n isEditingCellValid() {\n return this.editingCell && find(this.editingCell, '.ng-invalid.ng-dirty').length === 0;\n }\n\n bindDocumentEditListener() {\n if (!this.documentEditListener) {\n this.documentEditListener = this.renderer.listen(this.document, 'click', (event) => {\n if (this.editingCell && !this.editingCellClick && this.isEditingCellValid()) {\n !this.$unstyled() && removeClass(this.editingCell, 'h-cell-editing');\n this.editingCell = null;\n this.onEditComplete.emit({ field: this.editingCellField, data: this.editingCellData });\n this.editingCellField = null;\n this.editingCellData = null;\n this.unbindDocumentEditListener();\n }\n\n this.editingCellClick = false;\n });\n }\n }\n\n unbindDocumentEditListener() {\n if (this.documentEditListener) {\n this.documentEditListener();\n this.documentEditListener = null;\n }\n }\n\n onDestroy() {\n this.unbindDocumentEditListener();\n this.editingCell = null;\n this.editingCellField = null;\n this.editingCellData = null;\n this.initialized = null;\n }\n\n get dataP() {\n return this.cn({\n scrollable: this.scrollable(),\n 'flex-scrollable': this.scrollable() && this.scrollHeight() === 'flex',\n loading: this.loading(),\n empty: this.isEmpty()\n });\n }\n}\n\n@Component({\n selector: '[hTreeTableBody]',\n standalone: false,\n templateUrl: './ttbody.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Eager,\n host: {\n '[attr.data-h]': 'dataP'\n }\n})\nexport class TTBody extends BaseComponent {\n readonly columns = input<any[]>(undefined, { alias: \"hTreeTableBody\" });\n\n readonly template = input<Nullable<TemplateRef<any>>>(undefined, { alias: \"pTreeTableBodyTemplate\" });\n\n readonly frozen = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n readonly serializedNodes = input<any>();\n\n readonly scrollerOptions = input<any>();\n\n subscription: Subscription;\n\n constructor(\n public tt: TreeTable,\n public treeTableService: TreeTableService\n ) {\n super();\n this.subscription = this.tt.tableService.uiUpdateSource$.subscribe(() => {\n if (this.tt.virtualScroll()) {\n this.cd.detectChanges();\n }\n });\n }\n\n getScrollerOption(option: any, options?: any) {\n if (this.tt.virtualScroll()) {\n options = options || this.scrollerOptions();\n return options ? options[option] : null;\n }\n\n return null;\n }\n\n getRowIndex(rowIndex: number) {\n const getItemOptions = this.getScrollerOption('getItemOptions');\n return getItemOptions ? getItemOptions(rowIndex).index : rowIndex;\n }\n\n onDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n get dataP() {\n return this.cn({\n hoverable: this.tt.rowHover() || this.tt.selectionMode(),\n frozen: this.frozen()\n });\n }\n}\n\n@Component({\n selector: '[ttScrollableView]',\n standalone: false,\n templateUrl: './ttscrollableview.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Eager,\n providers: [TreeTableStyle]\n})\nexport class TTScrollableView extends BaseComponent {\n hostName = 'TreeTable';\n\n readonly columns = input<any[]>(undefined, { alias: \"ttScrollableView\" });\n\n readonly frozen = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n readonly scrollHeaderViewChild = viewChild<Nullable<ElementRef>>('scrollHeader');\n\n readonly scrollHeaderBoxViewChild = viewChild<Nullable<ElementRef>>('scrollHeaderBox');\n\n readonly scrollBodyViewChild = viewChild<Nullable<ElementRef>>('scrollBody');\n\n readonly scrollTableViewChild = viewChild<Nullable<ElementRef>>('scrollTable');\n\n readonly scrollLoadingTableViewChild = viewChild<Nullable<ElementRef>>('loadingTable');\n\n readonly scrollFooterViewChild = viewChild<Nullable<ElementRef>>('scrollFooter');\n\n readonly scrollFooterBoxViewChild = viewChild<Nullable<ElementRef>>('scrollFooterBox');\n\n readonly scrollableAlignerViewChild = viewChild<Nullable<ElementRef>>('scrollableAligner');\n\n readonly scroller = viewChild<Nullable<Scroller>>('scroller');\n\n headerScrollListener: VoidListener;\n\n bodyScrollListener: VoidListener;\n\n footerScrollListener: VoidListener;\n\n frozenSiblingBody: Nullable<Element>;\n\n totalRecordsSubscription: Nullable<Subscription>;\n\n readonly scrollHeight = input<string | undefined | null>();\n\n preventBodyScrollPropagation: boolean | undefined;\n\n _componentStyle = inject(TreeTableStyle);\n\n // The `scrollHeight` setter used to log a deprecation console.log when a percentage/calc value\n // was provided; `scrollHeight` is now a plain input(), so the warning is reproduced as an effect\n // (rule 3).\n private readonly _scrollHeightEffect = effect(() => {\n const val = this.scrollHeight();\n if (val != null && (val.includes('%') || val.includes('calc'))) {\n console.log('Percentage scroll height calculation is removed in favor of the more performant CSS based flex mode, use scrollHeight=\"flex\" instead.');\n }\n });\n\n constructor(\n public tt: TreeTable,\n public zone: NgZone\n ) {\n super();\n }\n\n onAfterViewInit() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.frozen()) {\n if (this.tt.frozenColumns() || this.tt.frozenBodyTemplate || this.tt._frozenBodyTemplate()) {\n addClass(this.el.nativeElement, 'h-treetable-unfrozen-view');\n }\n\n let frozenView = this.el.nativeElement.previousElementSibling;\n if (frozenView) {\n if (this.tt.virtualScroll()) this.frozenSiblingBody = findSingle(frozenView, '[data-pc-name=\"virtualscroller\"]');\n else this.frozenSiblingBody = findSingle(frozenView, '[data-pc-section=\"scrollablebody\"]');\n }\n\n if (this.scrollHeight()) {\n let scrollBarWidth = calculateScrollbarWidth();\n const scrollHeaderBoxViewChild = this.scrollHeaderBoxViewChild();\n if (scrollHeaderBoxViewChild?.nativeElement) {\n scrollHeaderBoxViewChild.nativeElement.style.paddingRight = scrollBarWidth + 'px';\n }\n\n const scrollFooterBoxViewChild = this.scrollFooterBoxViewChild();\n if (scrollFooterBoxViewChild && scrollFooterBoxViewChild.nativeElement) {\n scrollFooterBoxViewChild.nativeElement.style.paddingRight = scrollBarWidth + 'px';\n }\n }\n } else {\n const scrollableAlignerViewChild = this.scrollableAlignerViewChild();\n if (scrollableAlignerViewChild && scrollableAlignerViewChild.nativeElement) {\n scrollableAlignerViewChild.nativeElement.style.height = calculateScrollbarHeight() + 'px';\n }\n }\n\n this.bindEvents();\n }\n }\n\n bindEvents() {\n if (isPlatformBrowser(this.platformId)) {\n this.zone.runOutsideAngular(() => {\n const scrollHeaderViewChild = this.scrollHeaderViewChild();\n if (scrollHeaderViewChild && scrollHeaderViewChild.nativeElement) {\n this.headerScrollListener = this.renderer.listen(this.scrollHeaderBoxViewChild()?.nativeElement, 'scroll', this.onHeaderScroll.bind(this));\n }\n\n const scrollFooterViewChild = this.scrollFooterViewChild();\n if (scrollFooterViewChild && scrollFooterViewChild.nativeElement) {\n this.footerScrollListener = this.renderer.listen(scrollFooterViewChild.nativeElement, 'scroll', this.onFooterScroll.bind(this));\n }\n\n if (!this.frozen()) {\n if (this.tt.virtualScroll()) {\n this.bodyScrollListener = this.renderer.listen((this.scroller()?.getElementRef() as ElementRef).nativeElement, 'scroll', this.onBodyScroll.bind(this));\n } else {\n this.bodyScrollListener = this.renderer.listen(this.scrollBodyViewChild()?.nativeElement, 'scroll', this.onBodyScroll.bind(this));\n }\n }\n });\n }\n }\n\n unbindEvents() {\n if (isPlatformBrowser(this.platformId)) {\n const scrollHeaderViewChild = this.scrollHeaderViewChild();\n if (scrollHeaderViewChild && scrollHeaderViewChild.nativeElement) {\n if (this.headerScrollListener) {\n this.headerScrollListener();\n this.headerScrollListener = null;\n }\n }\n\n const scrollFooterViewChild = this.scrollFooterViewChild();\n if (scrollFooterViewChild && scrollFooterViewChild.nativeElement) {\n if (this.footerScrollListener) {\n this.footerScrollListener();\n this.footerScrollListener = null;\n }\n }\n\n const scrollBodyViewChild = this.scrollBodyViewChild();\n if (scrollBodyViewChild && scrollBodyViewChild.nativeElement) {\n if (this.bodyScrollListener) {\n this.bodyScrollListener();\n this.bodyScrollListener = null;\n }\n }\n\n const scroller = this.scroller();\n if (scroller && scroller.getElementRef()) {\n if (this.bodyScrollListener) {\n this.bodyScrollListener();\n this.bodyScrollListener = null;\n }\n }\n }\n }\n\n onHeaderScroll() {\n const scrollLeft = this.scrollHeaderViewChild()?.nativeElement.scrollLeft;\n\n (this.scrollBodyViewChild() as ElementRef).nativeElement.scrollLeft = scrollLeft;\n\n const scrollFooterViewChild = this.scrollFooterViewChild();\n if (scrollFooterViewChild && scrollFooterViewChild.nativeElement) {\n scrollFooterViewChild.nativeElement.scrollLeft = scrollLeft;\n }\n\n this.preventBodyScrollPropagation = true;\n }\n\n onFooterScroll() {\n const scrollLeft = this.scrollFooterViewChild()?.nativeElement.scrollLeft;\n (this.scrollBodyViewChild() as ElementRef).nativeElement.scrollLeft = scrollLeft;\n\n const scrollHeaderViewChild = this.scrollHeaderViewChild();\n if (scrollHeaderViewChild && scrollHeaderViewChild.nativeElement) {\n scrollHeaderViewChild.nativeElement.scrollLeft = scrollLeft;\n }\n\n this.preventBodyScrollPropagation = true;\n }\n\n onBodyScroll(event: any) {\n if (this.preventBodyScrollPropagation) {\n this.preventBodyScrollPropagation = false;\n return;\n }\n\n const scrollHeaderViewChild = this.scrollHeaderViewChild();\n if (scrollHeaderViewChild && scrollHeaderViewChild.nativeElement) {\n (this.scrollHeaderBoxViewChild() as ElementRef).nativeElement.style.marginLeft = -1 * event.target.scrollLeft + 'px';\n }\n\n const scrollFooterViewChild = this.scrollFooterViewChild();\n if (scrollFooterViewChild && scrollFooterViewChild.nativeElement) {\n (this.scrollFooterBoxViewChild() as ElementRef).nativeElement.style.marginLeft = -1 * event.target.scrollLeft + 'px';\n }\n\n if (this.frozenSiblingBody) {\n this.frozenSiblingBody.scrollTop = event.target.scrollTop;\n }\n }\n\n scrollToVirtualIndex(index: number): void {\n const scroller = this.scroller();\n if (scroller) {\n scroller.scrollToIndex(index);\n }\n }\n\n scrollTo(options: ScrollToOptions): void {\n const scroller = this.scroller();\n if (scroller) {\n scroller.scrollTo(options);\n } else {\n const scrollBodyViewChild = this.scrollBodyViewChild();\n if (scrollBodyViewChild?.nativeElement.scrollTo) {\n scrollBodyViewChild.nativeElement.scrollTo(options);\n } else {\n (scrollBodyViewChild as ElementRef).nativeElement.scrollLeft = options.left;\n (scrollBodyViewChild as ElementRef).nativeElement.scrollTop = options.top;\n }\n }\n }\n\n onDestroy() {\n this.unbindEvents();\n\n this.frozenSiblingBody = null;\n }\n}\n\n@Directive({\n selector: '[ttSortableColumn]',\n standalone: false,\n host: {\n '[class]': 'cx(\"sortableColumn\")',\n '[tabindex]': 'isEnabled() ? \"0\" : null',\n role: 'columnheader',\n '[attr.aria-sort]': 'ariaSorted',\n '(click)': 'onClick($event)',\n '(keydown.enter)': 'onEnterKey($event)'\n },\n providers: [TreeTableStyle],\n hostDirectives: [Bind]\n})\nexport class TTSortableColumn extends BaseComponent {\n hostName = 'TreeTable ';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n onAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.ptm('sortableColumn', { context: { sorted: this.sorted } }));\n }\n\n readonly field = input<string>(undefined, { alias: \"ttSortableColumn\" });\n\n readonly ttSortableColumnDisabled = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n sorted: boolean | undefined;\n\n subscription: Subscription | undefined;\n\n _componentStyle = inject(TreeTableStyle);\n\n get ariaSorted() {\n if (this.sorted && this.tt.sortOrder() < 0) return 'descending';\n else if (this.sorted && this.tt.sortOrder() > 0) return 'ascending';\n else return 'none';\n }\n\n constructor(public tt: TreeTable) {\n super();\n if (this.isEnabled()) {\n this.subscription = this.tt.tableService.sortSource$.subscribe((sortMeta) => {\n this.updateSortState();\n });\n }\n }\n\n onInit() {\n if (this.isEnabled()) {\n this.updateSortState();\n }\n }\n\n updateSortState() {\n this.sorted = this.tt.isSorted(<string>this.field()) as boolean;\n }\n\n onClick(event: MouseEvent) {\n if (this.isEnabled()) {\n this.updateSortState();\n this.tt.sort({\n originalEvent: event,\n field: this.field()\n });\n\n clearSelection();\n }\n }\n\n onEnterKey(event: MouseEvent) {\n this.onClick(event);\n }\n\n isEnabled() {\n return this.ttSortableColumnDisabled() !== true;\n }\n\n onDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Component({\n selector: 'h-treeTableSortIcon, h-treetable-sort-icon, h-tree-table-sort-icon',\n standalone: false,\n templateUrl: './ttsorticon.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TreeTableStyle]\n})\nexport class TTSortIcon extends BaseComponent {\n hostName = 'TreeTable';\n\n readonly field = input<string>();\n\n readonly ariaLabelDesc = input<string>();\n\n readonly ariaLabelAsc = input<string>();\n\n subscription: Subscription | undefined;\n\n sortOrder: number | undefined;\n\n _componentStyle = inject(TreeTableStyle);\n\n constructor(\n public tt: TreeTable,\n public cd: ChangeDetectorRef\n ) {\n super();\n this.subscription = this.tt.tableService.sortSource$.subscribe((sortMeta) => {\n this.updateSortState();\n this.cd.markForCheck();\n });\n }\n\n onInit() {\n this.updateSortState();\n }\n\n onClick(event: Event) {\n event.preventDefault();\n }\n\n getMultiSortMetaIndex() {\n let multiSortMeta = this.tt.multiSortMeta();\n let index = -1;\n\n if (multiSortMeta && this.tt.sortMode() === 'multiple' && multiSortMeta.length > 1) {\n for (let i = 0; i < multiSortMeta.length; i++) {\n let meta = multiSortMeta[i];\n const field = this.field();\n if (meta.field === field || meta.field === field) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n }\n\n updateSortState() {\n const sortMode = this.tt.sortMode();\n if (sortMode === 'single') {\n this.sortOrder = this.tt.isSorted(<string>this.field()) ? this.tt.sortOrder() : 0;\n } else if (sortMode === 'multiple') {\n let sortMeta = this.tt.getSortMeta(<string>this.field());\n this.sortOrder = sortMeta ? sortMeta.order : 0;\n }\n }\n\n getBadgeValue() {\n return this.getMultiSortMetaIndex() + 1;\n }\n\n isMultiSorted() {\n return this.tt.sortMode() === 'multiple' && this.getMultiSortMetaIndex() > -1;\n }\n\n onDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Directive({\n selector: '[ttResizableColumn]',\n standalone: false\n})\nexport class TTResizableColumn extends BaseComponent {\n hostName = 'TreeTable';\n\n readonly ttResizableColumnDisabled = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n resizer: HTMLSpanElement | undefined;\n\n resizerMouseDownListener: VoidListener;\n\n documentMouseMoveListener: VoidListener;\n\n documentMouseUpListener: VoidListener;\n\n constructor(\n public tt: TreeTable,\n public zone: NgZone\n ) {\n super();\n }\n\n onAfterViewInit() {\n if (isPlatformBrowser(this.platformId)) {\n if (this.isEnabled()) {\n addClass(this.el.nativeElement, 'h-resizable-column');\n this.resizer = this.renderer.createElement('span');\n !this.$unstyled() && this.renderer.addClass(this.resizer, 'h-column-resizer');\n (this.resizer as HTMLElement).setAttribute('data-pc-section', 'columnresizer');\n this.renderer.appendChild(this.el.nativeElement, this.resizer);\n\n this.zone.runOutsideAngular(() => {\n this.resizerMouseDownListener = this.renderer.listen(this.resizer, 'mousedown', this.onMouseDown.bind(this));\n });\n }\n }\n }\n\n bindDocumentEvents() {\n this.zone.runOutsideAngular(() => {\n this.documentMouseMoveListener = this.renderer.listen(this.document, 'mousemove', this.onDocumentMouseMove.bind(this));\n this.documentMouseUpListener = this.renderer.listen(this.document, 'mouseup', this.onDocumentMouseUp.bind(this));\n });\n }\n\n unbindDocumentEvents() {\n if (this.documentMouseMoveListener) {\n this.documentMouseMoveListener();\n this.documentMouseMoveListener = null;\n }\n\n if (this.documentMouseUpListener) {\n this.documentMouseUpListener();\n this.documentMouseUpListener = null;\n }\n }\n\n onMouseDown(event: MouseEvent) {\n this.tt.onColumnResizeBegin(event);\n this.bindDocumentEvents();\n }\n\n onDocumentMouseMove(event: MouseEvent) {\n this.tt.onColumnResize(event);\n }\n\n onDocumentMouseUp(event: MouseEvent) {\n this.tt.onColumnResizeEnd(event, this.el.nativeElement);\n this.unbindDocumentEvents();\n }\n\n isEnabled() {\n return this.ttResizableColumnDisabled() !== true;\n }\n\n onDestroy() {\n if (this.resizerMouseDownListener) {\n this.resizerMouseDownListener();\n this.resizerMouseDownListener = null;\n }\n\n this.unbindDocumentEvents();\n }\n}\n\n@Directive({\n selector: '[ttReorderableColumn]',\n standalone: false,\n host: {\n '(drop)': 'onDrop($event)'\n }\n})\nexport class TTReorderableColumn extends BaseComponent {\n hostName = 'TreeTable';\n\n readonly ttReorderableColumnDisabled = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n dragStartListener: VoidListener;\n\n dragOverListener: VoidListener;\n\n dragEnterListener: VoidListener;\n\n dragLeaveListener: VoidListener;\n\n mouseDownListener: VoidListener;\n\n constructor(\n public tt: TreeTable,\n public zone: NgZone\n ) {\n super();\n }\n\n onAfterViewInit() {\n if (this.isEnabled()) {\n this.bindEvents();\n }\n }\n\n bindEvents() {\n if (isPlatformBrowser(this.platformId)) {\n this.zone.runOutsideAngular(() => {\n this.mouseDownListener = this.renderer.listen(this.el.nativeElement, 'mousedown', this.onMouseDown.bind(this));\n this.dragStartListener = this.renderer.listen(this.el.nativeElement, 'dragstart', this.onDragStart.bind(this));\n this.dragOverListener = this.renderer.listen(this.el.nativeElement, 'dragover', this.onDragEnter.bind(this));\n this.dragEnterListener = this.renderer.listen(this.el.nativeElement, 'dragenter', this.onDragEnter.bind(this));\n this.dragLeaveListener = this.renderer.listen(this.el.nativeElement, 'dragleave', this.onDragLeave.bind(this));\n });\n }\n }\n\n unbindEvents() {\n if (isPlatformBrowser(this.platformId)) {\n if (this.mouseDownListener) {\n this.mouseDownListener();\n this.mouseDownListener = null;\n }\n\n if (this.dragOverListener) {\n this.dragOverListener();\n this.dragOverListener = null;\n }\n\n if (this.dragEnterListener) {\n this.dragEnterListener();\n this.dragEnterListener = null;\n }\n\n if (this.dragLeaveListener) {\n this.dragLeaveListener();\n this.dragLeaveListener = null;\n }\n }\n }\n\n onMouseDown(event: any) {\n if (event.target.nodeName === 'INPUT' || event.target.nodeName === 'TEXTAREA' || findSingle(event.target, '[data-pc-section=\"columnresizer\"]')) this.el.nativeElement.draggable = false;\n else this.el.nativeElement.draggable = true;\n }\n\n onDragStart(event: DragEvent) {\n this.tt.onColumnDragStart(event, this.el.nativeElement);\n }\n\n onDragOver(event: DragEvent) {\n event.preventDefault();\n }\n\n onDragEnter(event: DragEvent) {\n this.tt.onColumnDragEnter(event, this.el.nativeElement);\n }\n\n onDragLeave(event: DragEvent) {\n this.tt.onColumnDragLeave(event);\n }\n\n onDrop(event: DragEvent) {\n if (this.isEnabled()) {\n this.tt.onColumnDrop(event, this.el.nativeElement);\n }\n }\n\n isEnabled() {\n return this.ttReorderableColumnDisabled() !== true;\n }\n\n onDestroy() {\n this.unbindEvents();\n }\n}\n\n@Directive({\n selector: '[ttSelectableRow]',\n standalone: false,\n host: {\n '[class]': 'cx(\"row\")',\n '[attr.aria-selected]': 'selected',\n '(click)': 'onClick($event)',\n '(keydown)': 'onKeyDown($event)',\n '(touchend)': 'onTouchEnd($event)'\n },\n providers: [TreeTableStyle]\n})\nexport class TTSelectableRow extends BaseComponent {\n readonly rowNode = input<any>(undefined, { alias: \"ttSelectableRow\" });\n\n readonly ttSelectableRowDisabled = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n selected: boolean | undefined;\n\n subscription: Subscription | undefined;\n\n _componentStyle = inject(TreeTableStyle);\n\n constructor(\n public tt: TreeTable,\n public tableService: TreeTableService\n ) {\n super();\n if (this.isEnabled()) {\n this.subscription = this.tt.tableService.selectionSource$.subscribe(() => {\n this.selected = this.tt.isSelected(this.rowNode().node);\n });\n }\n }\n\n onInit() {\n if (this.isEnabled()) {\n this.selected = this.tt.isSelected(this.rowNode().node);\n }\n }\n\n onClick(event: Event) {\n if (this.isEnabled()) {\n this.tt.handleRowClick({\n originalEvent: event,\n rowNode: this.rowNode()\n });\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n switch (event.code) {\n case 'Enter':\n case 'Space':\n this.onEnterKey(event);\n break;\n\n default:\n break;\n }\n }\n\n onTouchEnd(event: Event) {\n if (this.isEnabled()) {\n this.tt.handleRowTouchEnd(event);\n }\n }\n\n onEnterKey(event) {\n if (this.tt.selectionMode() === 'checkbox') {\n this.tt.toggleNodeWithCheckbox({\n originalEvent: event,\n rowNode: this.rowNode()\n });\n } else {\n this.onClick(event);\n }\n event.preventDefault();\n }\n\n isEnabled() {\n return this.ttSelectableRowDisabled() !== true;\n }\n\n onDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Directive({\n selector: '[ttSelectableRowDblClick]',\n standalone: false,\n host: {\n '[class]': 'cx(\"row\")',\n '(dblclick)': 'onClick($event)'\n },\n providers: [TreeTableStyle]\n})\nexport class TTSelectableRowDblClick extends BaseComponent {\n readonly rowNode = input<any>(undefined, { alias: \"ttSelectableRowDblClick\" });\n\n readonly ttSelectableRowDisabled = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n selected: boolean | undefined;\n\n subscription: Subscription | undefined;\n\n _componentStyle = inject(TreeTableStyle);\n\n constructor(\n public tt: TreeTable,\n public tableService: TreeTableService\n ) {\n super();\n if (this.isEnabled()) {\n this.subscription = this.tt.tableService.selectionSource$.subscribe(() => {\n this.selected = this.tt.isSelected(this.rowNode().node);\n });\n }\n }\n\n onInit() {\n if (this.isEnabled()) {\n this.selected = this.tt.isSelected(this.rowNode().node);\n }\n }\n\n onClick(event: Event) {\n if (this.isEnabled()) {\n this.tt.handleRowClick({\n originalEvent: event,\n rowNode: this.rowNode()\n });\n }\n }\n\n isEnabled() {\n return this.ttSelectableRowDisabled() !== true;\n }\n\n onDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Directive({\n selector: '[ttContextMenuRow]',\n standalone: false,\n host: {\n '[class]': 'cx(\"contextMenuRow\")',\n '[tabindex]': 'isEnabled() ? 0 : undefined',\n '(contextmenu)': 'onContextMenu($event)'\n },\n providers: [TreeTableStyle]\n})\nexport class TTContextMenuRow extends BaseComponent {\n readonly rowNode = input<any>(undefined, { alias: \"ttContextMenuRow\" });\n\n readonly ttContextMenuRowDisabled = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n selected: boolean | undefined;\n\n subscription: Subscription | undefined;\n\n _componentStyle = inject(TreeTableStyle);\n\n constructor(\n public tt: TreeTable,\n public tableService: TreeTableService\n ) {\n super();\n if (this.isEnabled()) {\n this.subscription = this.tt.tableService.contextMenuSource$.subscribe((node) => {\n this.selected = node ? this.tt.equals(this.rowNode().node, node) : false;\n });\n }\n }\n\n onContextMenu(event: Event) {\n if (this.isEnabled()) {\n this.tt.handleRowRightClick({\n originalEvent: event,\n rowNode: this.rowNode()\n });\n\n this.el.nativeElement.focus();\n\n event.preventDefault();\n }\n }\n\n isEnabled() {\n return this.ttContextMenuRowDisabled() !== true;\n }\n\n onDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Component({\n selector: 'h-treeTableCheckbox, h-treetable-checkbox, h-tree-table-checkbox',\n standalone: false,\n template: `\n <h-checkbox [ngModel]=\"checked\" [pt]=\"ptm('pcRowCheckbox')\" (onChange)=\"onClick($event)\" [binary]=\"true\" [disabled]=\"disabled()\" [indeterminate]=\"partialChecked\" [styleClass]=\"cx('pcNodeCheckbox')\" [tabIndex]=\"-1\" [unstyled]=\"unstyled()\">\n @if (tt.checkboxIconTemplate || tt._checkboxIconTemplate) {\n <ng-template hTemplate=\"icon\">\n <ng-template *ngTemplateOutlet=\"tt.checkboxIconTemplate || tt._checkboxIconTemplate; context: { $implicit: checked, partialSelected: partialChecked }\"></ng-template>\n </ng-template>\n }\n </h-checkbox>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TreeTableStyle]\n})\nexport class TTCheckbox extends BaseComponent {\n hostName = 'TreeTable';\n\n readonly disabled = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n readonly rowNode = input<any>(undefined, { alias: \"value\" });\n\n checked: boolean | undefined;\n\n partialChecked: boolean | undefined;\n\n focused: boolean | undefined;\n\n subscription: Subscription | undefined;\n\n _componentStyle = inject(TreeTableStyle);\n\n constructor(\n public tt: TreeTable,\n public tableService: TreeTableService,\n public cd: ChangeDetectorRef\n ) {\n super();\n this.subscription = this.tt.tableService.selectionSource$.subscribe(() => {\n if (this.tt.selectionKeys()) {\n this.checked = this.tt.isNodeSelected(this.rowNode().node);\n this.partialChecked = this.tt.isNodePartialSelected(this.rowNode().node);\n } else {\n this.checked = this.tt.isSelected(this.rowNode().node);\n this.partialChecked = this.rowNode().node.partialSelected;\n }\n this.cd.markForCheck();\n });\n }\n\n onInit() {\n if (this.tt.selectionKeys()) {\n this.checked = this.tt.isNodeSelected(this.rowNode().node);\n this.partialChecked = this.tt.isNodePartialSelected(this.rowNode().node);\n } else {\n // for backward compatibility\n this.checked = this.tt.isSelected(this.rowNode().node);\n this.partialChecked = this.rowNode().node.partialSelected;\n }\n }\n\n onClick(event: Event) {\n if (!this.disabled()) {\n if (this.tt.selectionKeys()) {\n const _check = !this.checked;\n this.tt.toggleCheckbox({\n originalEvent: event,\n check: _check,\n rowNode: this.rowNode()\n });\n } else {\n this.tt.toggleNodeWithCheckbox({\n originalEvent: event,\n rowNode: this.rowNode()\n });\n }\n }\n clearSelection();\n }\n\n onFocus() {\n this.focused = true;\n }\n\n onBlur() {\n this.focused = false;\n }\n\n onDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Component({\n selector: 'h-treeTableHeaderCheckbox',\n standalone: false,\n template: `\n <h-checkbox [ngModel]=\"checked\" [pt]=\"ptm('pcHeaderCheckbox')\" (onChange)=\"onClick($event)\" [binary]=\"true\" [disabled]=\"!tt.value || tt.value.length === 0\" [unstyled]=\"unstyled()\">\n @if (tt.headerCheckboxIconTemplate || tt._headerCheckboxIconTemplate) {\n <ng-template hTemplate=\"icon\">\n <ng-template *ngTemplateOutlet=\"tt.headerCheckboxIconTemplate || tt._headerCheckboxIconTemplate; context: { $implicit: checked }\"></ng-template>\n </ng-template>\n }\n </h-checkbox>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TTHeaderCheckbox extends BaseComponent {\n checked: boolean | undefined;\n\n disabled: boolean | undefined;\n\n selectionChangeSubscription: Subscription;\n\n valueChangeSubscription: Subscription;\n\n constructor(\n public tt: TreeTable,\n public tableService: TreeTableService\n ) {\n super();\n this.valueChangeSubscription = this.tt.tableService.uiUpdateSource$.subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n\n this.selectionChangeSubscription = this.tt.tableService.selectionSource$.subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n }\n\n onInit() {\n this.checked = this.updateCheckedState();\n }\n\n onClick(event: Event) {\n const value = this.tt?.value();\n if ((value || this.tt?.filteredNodes) && ((value && value.length > 0) || (this.tt?.filteredNodes && this.tt.filteredNodes.length > 0))) {\n this.tt?.toggleNodesWithCheckbox(event, !this.checked);\n }\n\n clearSelection();\n }\n\n onDestroy() {\n if (this.selectionChangeSubscription) {\n this.selectionChangeSubscription.unsubscribe();\n }\n\n if (this.valueChangeSubscription) {\n this.valueChangeSubscription.unsubscribe();\n }\n }\n\n updateCheckedState() {\n this.cd.markForCheck();\n let checked!: boolean;\n const data = this.tt.filteredNodes || this.tt.value();\n\n if (data) {\n if (this.tt.selectionKeys()) {\n for (let node of data) {\n if (this.tt.isNodeSelected(node)) {\n checked = true;\n } else {\n checked = false;\n break;\n }\n }\n }\n if (!this.tt.selectionKeys()) {\n // legacy selection support, will be removed in v18\n for (let node of data) {\n if (this.tt.isSelected(node)) {\n checked = true;\n } else {\n checked = false;\n break;\n }\n }\n }\n } else {\n checked = false;\n }\n\n return checked;\n }\n}\n\n@Directive({\n selector: '[ttEditableColumn]',\n standalone: false,\n host: {\n '(click)': 'onClick($event)',\n '(keydown)': 'onKeyDown($event)'\n }\n})\nexport class TTEditableColumn extends BaseComponent {\n readonly data = input<any>(undefined, { alias: \"ttEditableColumn\" });\n\n readonly field = input<any>(undefined, { alias: \"ttEditableColumnField\" });\n\n readonly ttEditableColumnDisabled = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n constructor(\n public tt: TreeTable,\n public zone: NgZone\n ) {\n super();\n }\n\n onAfterViewInit() {\n if (this.isEnabled()) {\n !this.$unstyled() && addClass(this.el.nativeElement, 'h-editable-column');\n this.el?.nativeElement.setAttribute('data-h-editable-column', 'true');\n }\n }\n\n onClick(event: MouseEvent) {\n if (this.isEnabled()) {\n this.tt.editingCellClick = true;\n\n if (this.tt.editingCell) {\n if (this.tt.editingCell !== this.el.nativeElement) {\n if (!this.tt.isEditingCellValid()) {\n return;\n }\n\n if (this.tt.editingCell) !this.$unstyled() && removeClass(this.tt.editingCell, 'h-cell-editing');\n this.openCell();\n }\n } else {\n this.openCell();\n }\n }\n }\n\n openCell() {\n const data = this.data();\n const field = this.field();\n this.tt.updateEditingCell(this.el.nativeElement, data, field);\n !this.$unstyled() && addClass(this.el.nativeElement, 'h-cell-editing');\n this.el?.nativeElement.setAttribute('data-h-cell-editing', 'true');\n this.tt.onEditInit.emit({ field: field, data: data });\n this.tt.editingCellClick = true;\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n let focusable = <any>findSingle(this.el.nativeElement, 'input, textarea');\n if (focusable) {\n focusable.focus();\n }\n }, 50);\n });\n }\n\n closeEditingCell() {\n if (this.tt.editingCell) !this.$unstyled() && removeClass(this.tt.editingCell, 'h-checkbox-icon');\n this.tt.editingCell = null;\n this.tt.unbindDocumentEditListener();\n }\n\n onKeyDown(event: KeyboardEvent) {\n if (this.isEnabled()) {\n //enter\n if (event.keyCode == 13 && !event.shiftKey) {\n if (this.tt.isEditingCellValid()) {\n if (this.tt.editingCell) {\n !this.$unstyled() && removeClass(this.tt.editingCell, 'h-cell-editing');\n this.el?.nativeElement.setAttribute('data-h-cell-editing', 'false');\n }\n this.closeEditingCell();\n this.tt.onEditComplete.emit({ field: this.field(), data: this.data() });\n }\n\n event.preventDefault();\n }\n\n //escape\n else if (event.keyCode == 27) {\n if (this.tt.isEditingCellValid()) {\n if (this.tt.editingCell) {\n !this.$unstyled() && removeClass(this.tt.editingCell, 'h-cell-editing');\n this.el?.nativeElement.setAttribute('data-h-cell-editing', 'false');\n }\n this.closeEditingCell();\n this.tt.onEditCancel.emit({ field: this.field(), data: this.data() });\n }\n\n event.preventDefault();\n }\n\n //tab\n else if (event.keyCode == 9) {\n this.tt.onEditComplete.emit({ field: this.field(), data: this.data() });\n\n if (event.shiftKey) this.moveToPreviousCell(event);\n else this.moveToNextCell(event);\n }\n }\n }\n\n findCell(element: any) {\n if (element) {\n let cell = element;\n while (cell && !findSingle(cell, '[data-h-cell-editing=\"true\"]')) {\n cell = cell.parentElement;\n }\n\n return cell;\n } else {\n return null;\n }\n }\n\n moveToPreviousCell(event: KeyboardEvent) {\n let currentCell = this.findCell(event.target);\n let row = currentCell.parentElement;\n let targetCell = this.findPreviousEditableColumn(currentCell);\n\n if (targetCell) {\n // @ts-ignore\n invokeElementMethod(targetCell as HTMLElement, 'click', undefined);\n event.preventDefault();\n }\n }\n\n moveToNextCell(event: KeyboardEvent) {\n let currentCell = this.findCell(event.target);\n let row = currentCell.parentElement;\n let targetCell = this.findNextEditableColumn(currentCell);\n\n if (targetCell) {\n // @ts-ignore\n invokeElementMethod(targetCell, 'click', undefined);\n event.preventDefault();\n }\n }\n\n findPreviousEditableColumn(cell: any): Element | null {\n let prevCell = cell.previousElementSibling;\n\n if (!prevCell) {\n let previousRow = cell.parentElement ? cell.parentElement.previousElementSibling : null;\n if (previousRow) {\n prevCell = previousRow.lastElementChild;\n }\n }\n\n if (prevCell) {\n if (findSingle(prevCell, '[data-h-editable-column=\"true\"]')) return prevCell;\n else return this.findPreviousEditableColumn(prevCell);\n } else {\n return null;\n }\n }\n\n findNextEditableColumn(cell: Element): Element | null {\n let nextCell = cell.nextElementSibling;\n\n if (!nextCell) {\n let nextRow = cell.parentElement ? cell.parentElement.nextElementSibling : null;\n if (nextRow) {\n nextCell = nextRow.firstElementChild;\n }\n }\n\n if (nextCell) {\n if (findSingle(nextCell, '[data-h-editable-column=\"true\"]')) return nextCell;\n else return this.findNextEditableColumn(nextCell);\n } else {\n return null;\n }\n }\n\n isEnabled() {\n return this.ttEditableColumnDisabled() !== true;\n }\n}\n\n@Component({\n selector: 'h-treeTableCellEditor, h-treetablecelleditor, h-treetable-cell-editor',\n standalone: false,\n template: `\n @if (tt.editingCell === editableColumn.el.nativeElement) {\n <ng-container *ngTemplateOutlet=\"inputTemplate\"></ng-container>\n }\n @if (!tt.editingCell || tt.editingCell !== editableColumn.el.nativeElement) {\n <ng-container *ngTemplateOutlet=\"outputTemplate\"></ng-container>\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Eager,\n hostDirectives: [Bind]\n})\nexport class TreeTableCellEditor extends BaseComponent {\n hostName = 'TreeTable';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n onAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.ptm('cellEditor'));\n }\n\n readonly templates = contentChildren(HelixTemplate);\n\n inputTemplate: Nullable<TemplateRef<any>>;\n\n outputTemplate: Nullable<TemplateRef<any>>;\n\n constructor(\n public tt: TreeTable,\n public editableColumn: TTEditableColumn\n ) {\n super();\n }\n\n onAfterContentInit() {\n this.templates().forEach((item) => {\n switch (item.getType()) {\n case 'input':\n this.inputTemplate = item.template;\n break;\n\n case 'output':\n this.outputTemplate = item.template;\n break;\n }\n });\n }\n}\n\n@Directive({\n selector: '[ttRow]',\n standalone: false,\n host: {\n '[class]': `'h-element ' + styleClass`,\n '[tabindex]': \"'0'\",\n '[attr.aria-expanded]': 'expanded',\n '[attr.aria-level]': 'level',\n role: 'row',\n '(keydown)': 'onKeyDown($event)'\n },\n providers: [TreeTableStyle],\n hostDirectives: [Bind]\n})\nexport class TTRow extends BaseComponent {\n hostName = 'TreeTable';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n treeTable = inject(TreeTable);\n\n onAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.ptm('row', this.ptmOptions()));\n }\n\n get level() {\n return this.rowNode()?.['level'] + 1;\n }\n\n get styleClass() {\n return this.rowNode()?.node['styleClass'] || '';\n }\n\n get expanded() {\n return this.rowNode()?.node['expanded'];\n }\n\n readonly rowNode = input<any>(undefined, { alias: \"ttRow\" });\n\n _componentStyle = inject(TreeTableStyle);\n\n constructor(\n public tt: TreeTable,\n public el: ElementRef,\n public zone: NgZone\n ) {\n super();\n }\n\n onKeyDown(event: KeyboardEvent) {\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n default:\n break;\n }\n }\n\n onArrowDownKey(event: KeyboardEvent) {\n let nextRow = this.el?.nativeElement?.nextElementSibling;\n if (nextRow) {\n this.focusRowChange(<HTMLElement>event.currentTarget, nextRow);\n }\n\n event.preventDefault();\n }\n\n onArrowUpKey(event: KeyboardEvent) {\n let prevRow = this.el?.nativeElement?.previousElementSibling;\n if (prevRow) {\n this.focusRowChange(<HTMLElement>event.currentTarget, prevRow);\n }\n\n event.preventDefault();\n }\n\n onArrowRightKey(event: KeyboardEvent) {\n const currentTarget = <HTMLElement>event.currentTarget;\n const isHiddenIcon = (findSingle(currentTarget, 'button') as any).style.visibility === 'hidden';\n\n if (!isHiddenIcon && !this.expanded && this.rowNode().node['children']) {\n this.expand(event);\n\n currentTarget.tabIndex = -1;\n }\n event.preventDefault();\n }\n\n onArrowLeftKey(event: KeyboardEvent) {\n const container = this.tt.el?.nativeElement;\n const expandedRows = find(container, '[aria-expanded=\"true\"]');\n const lastExpandedRow = expandedRows[expandedRows.length - 1];\n\n if (this.expanded) {\n this.collapse(event);\n }\n if (lastExpandedRow) {\n this.tt.toggleRowIndex = getIndex(lastExpandedRow as any);\n }\n this.restoreFocus();\n event.preventDefault();\n }\n\n onHomeKey(event: KeyboardEvent) {\n const firstElement = <any>findSingle(this.tt.el?.nativeElement, `tr[aria-level=\"${this.level}\"]`);\n firstElement && focus(firstElement);\n event.preventDefault();\n }\n\n onEndKey(event: KeyboardEvent) {\n const nodes = <any>find(this.tt.el?.nativeElement, `tr[aria-level=\"${this.level}\"]`);\n const lastElement = nodes[nodes.length - 1];\n focus(lastElement);\n event.preventDefault();\n }\n\n onTabKey(event: KeyboardEvent) {\n const rows = this.el.nativeElement ? [...find(this.el.nativeElement.parentNode, 'tr')] : undefined;\n\n if (rows && isNotEmpty(rows)) {\n const hasSelectedRow = rows.some((row) => getAttribute(row, 'data-h-highlight') || row.getAttribute('aria-selected') === 'true');\n rows.forEach((row: any) => {\n row.tabIndex = -1;\n });\n\n if (hasSelectedRow) {\n const selectedNodes = rows.filter((node) => getAttribute(node, 'data-h-highlight') || node.getAttribute('aria-selected') === 'true');\n (selectedNodes[0] as any).tabIndex = 0;\n\n return;\n }\n\n (rows[0] as any).tabIndex = 0;\n }\n }\n\n expand(event: Event) {\n this.tt.toggleRowIndex = getIndex(this.el.nativeElement);\n const node = this.rowNode()?.node;\n if (node) node['expanded'] = true;\n\n this.tt.updateSerializedValue();\n this.tt.tableService.onUIUpdate(this.tt.value());\n node?.['children'] ? this.restoreFocus(this.tt.toggleRowIndex + 1) : this.restoreFocus();\n\n this.tt.onNodeExpand.emit({\n originalEvent: event,\n node\n });\n }\n\n collapse(event: Event) {\n const node = this.rowNode()?.node;\n if (node) node['expanded'] = false;\n\n this.tt.updateSerializedValue();\n this.tt.tableService.onUIUpdate(this.tt.value());\n\n this.tt.onNodeCollapse.emit({ originalEvent: event, node });\n }\n\n focusRowChange(firstFocusableRow, currentFocusedRow, lastVisibleDescendant?) {\n firstFocusableRow.tabIndex = '-1';\n currentFocusedRow.tabIndex = '0';\n\n focus(currentFocusedRow);\n }\n\n restoreFocus(index?) {\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n const container = this.tt.el?.nativeElement;\n const tbody = findSingle(container, '[data-pc-section=\"tbody\"]');\n const row = tbody?.children?.[<number>index || this.tt.toggleRowIndex || 0];\n const rows = [...find(container, 'tr')];\n\n rows &&\n rows.forEach((r: any) => {\n if (row && !row.isSameNode(r)) {\n r.tabIndex = -1;\n }\n });\n\n if (row) {\n (row as HTMLElement).tabIndex = 0;\n (row as HTMLElement).focus();\n }\n }, 25);\n });\n }\n\n ptmOptions() {\n return {\n context: {\n selectable: this.treeTable?.rowHover() || this.treeTable.selectionMode() === 'row',\n selected: this.treeTable.isSelected((<any>this.rowNode())?.node),\n scrollable: this.treeTable?.scrollable(),\n rowNode: this.rowNode()\n }\n };\n }\n}\n\n@Component({\n selector: 'h-treeTableToggler, h-treetabletoggler, h-treetable-toggler',\n standalone: false,\n templateUrl: './treetabletoggler.html',\n encapsulation: ViewEncapsulation.None,\n providers: [TreeTableStyle],\n changeDetection: ChangeDetectionStrategy.Eager,\n hostDirectives: [Bind]\n})\nexport class TreeTableToggler extends BaseComponent {\n hostName = 'TreeTable';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n onAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.ptm('toggler'));\n }\n\n readonly rowNode = input<any>();\n\n _componentStyle = inject(TreeTableStyle);\n\n constructor(public tt: TreeTable) {\n super();\n }\n\n get toggleButtonAriaLabel() {\n return this.config.translation ? (this.rowNode().expanded ? this.config.translation?.aria?.collapseRow : this.config.translation?.aria?.expandRow) : undefined;\n }\n\n onClick(event: Event) {\n const node = this.rowNode();\n node.node.expanded = !node.node.expanded;\n\n if (node.node.expanded) {\n this.tt.onNodeExpand.emit({\n originalEvent: event,\n node: node.node\n });\n } else {\n this.tt.onNodeCollapse.emit({\n originalEvent: event,\n node: node.node\n });\n }\n\n this.tt.updateSerializedValue();\n this.tt.tableService.onUIUpdate(this.tt.value());\n\n event.preventDefault();\n }\n}\n\n@NgModule({\n imports: [\n CommonModule,\n PaginatorModule,\n Ripple,\n Scroller,\n SpinnerIcon,\n ArrowDownIcon,\n ArrowUpIcon,\n SortAltIcon,\n SortAmountUpAltIcon,\n SortAmountDownIcon,\n BadgeModule,\n CheckIcon,\n ChevronDownIcon,\n ChevronRightIcon,\n Checkbox,\n SharedModule,\n FormsModule,\n BindModule\n ],\n exports: [\n TreeTable,\n SharedModule,\n TreeTableToggler,\n TTSortableColumn,\n TTSortIcon,\n TTResizableColumn,\n TTRow,\n TTReorderableColumn,\n TTSelectableRow,\n TTSelectableRowDblClick,\n TTContextMenuRow,\n TTCheckbox,\n TTHeaderCheckbox,\n TTEditableColumn,\n TreeTableCellEditor,\n Scroller\n ],\n declarations: [\n TreeTable,\n TreeTableToggler,\n TTScrollableView,\n TTBody,\n TTSortableColumn,\n TTSortIcon,\n TTResizableColumn,\n TTRow,\n TTReorderableColumn,\n TTSelectableRow,\n TTSelectableRowDblClick,\n TTContextMenuRow,\n TTCheckbox,\n TTHeaderCheckbox,\n TTEditableColumn,\n TreeTableCellEditor\n ]\n})\nexport class TreeTableModule {}\n","@if (loading() && showLoader()) {\n <div [hBind]=\"ptm('mask')\" [class]=\"cx('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())\"></i>\n }\n @if (!loadingIcon()) {\n @if (!loadingIconTemplate && !_loadingIconTemplate) {\n <svg data-h-icon=\"spinner\" [spin]=\"true\" [class]=\"cx('loadingIcon')\" />\n }\n @if (loadingIconTemplate || _loadingIconTemplate) {\n <span [class]=\"cx('loadingIcon')\">\n <ng-template *ngTemplateOutlet=\"loadingIconTemplate || _loadingIconTemplate\"></ng-template>\n </span>\n }\n }\n </div>\n}\n@if (captionTemplate || _captionTemplate) {\n <div [hBind]=\"ptm('header')\" [class]=\"cx('header')\">\n <ng-container *ngTemplateOutlet=\"captionTemplate || _captionTemplate\"></ng-container>\n </div>\n}\n@if (paginator() && (paginatorPosition() === 'top' || paginatorPosition() == 'both')) {\n <h-paginator\n [pt]=\"ptm('pcPaginator')\"\n [rows]=\"rows()\"\n [first]=\"first()\"\n [totalRecords]=\"totalRecords()\"\n [pageLinkSize]=\"pageLinks()\"\n [styleClass]=\"cx('pcPaginator')\"\n [alwaysShow]=\"alwaysShowPaginator()\"\n (onPageChange)=\"onPageChange($event)\"\n [rowsPerPageOptions]=\"rowsPerPageOptions()\"\n [templateLeft]=\"paginatorLeftTemplate ?? _paginatorLeftTemplate()\"\n [templateRight]=\"paginatorRightTemplate ?? _paginatorRightTemplate()\"\n [appendTo]=\"paginatorDropdownAppendTo()\"\n [currentPageReportTemplate]=\"currentPageReportTemplate()\"\n [showFirstLastIcon]=\"showFirstLastIcon()\"\n [dropdownItemTemplate]=\"paginatorDropdownItemTemplate ?? _paginatorDropdownItemTemplate()\"\n [showCurrentPageReport]=\"showCurrentPageReport()\"\n [showJumpToPageDropdown]=\"showJumpToPageDropdown()\"\n [showPageLinks]=\"showPageLinks()\"\n [locale]=\"paginatorLocale()\"\n [unstyled]=\"unstyled()\"\n >\n @if (paginatorFirstPageLinkIconTemplate || _paginatorFirstPageLinkIconTemplate) {\n <ng-template hTemplate=\"firstpagelinkicon\">\n <ng-container *ngTemplateOutlet=\"paginatorFirstPageLinkIconTemplate || _paginatorFirstPageLinkIconTemplate\"></ng-container>\n </ng-template>\n }\n @if (paginatorPreviousPageLinkIconTemplate || _paginatorPreviousPageLinkIconTemplate) {\n <ng-template hTemplate=\"previouspagelinkicon\">\n <ng-container *ngTemplateOutlet=\"paginatorPreviousPageLinkIconTemplate || _paginatorPreviousPageLinkIconTemplate\"></ng-container>\n </ng-template>\n }\n @if (paginatorLastPageLinkIconTemplate || _paginatorLastPageLinkIconTemplate) {\n <ng-template hTemplate=\"lastpagelinkicon\">\n <ng-container *ngTemplateOutlet=\"paginatorLastPageLinkIconTemplate || _paginatorLastPageLinkIconTemplate\"></ng-container>\n </ng-template>\n }\n @if (paginatorNextPageLinkIconTemplate || _paginatorNextPageLinkIconTemplate) {\n <ng-template hTemplate=\"nextpagelinkicon\">\n <ng-container *ngTemplateOutlet=\"paginatorNextPageLinkIconTemplate || _paginatorNextPageLinkIconTemplate\"></ng-container>\n </ng-template>\n }\n </h-paginator>\n}\n\n@if (!scrollable()) {\n <div [hBind]=\"ptm('wrapper')\" [class]=\"cx('wrapper')\">\n <table role=\"treegrid\" [hBind]=\"ptm('table')\" #table [ngClass]=\"tableStyleClass()\" [ngStyle]=\"tableStyle()\">\n <ng-container *ngTemplateOutlet=\"colGroupTemplate || _colGroupTemplate(); context: { $implicit: columns() }\"></ng-container>\n <thead role=\"rowgroup\" [class]=\"cx('thead')\" [hBind]=\"ptm('thead')\">\n <ng-container *ngTemplateOutlet=\"headerTemplate || _headerTemplate(); context: { $implicit: columns() }\"></ng-container>\n </thead>\n <tbody [class]=\"cx('tbody')\" [hBind]=\"ptm('tbody')\" role=\"rowgroup\" [unstyled]=\"unstyled()\" [hTreeTableBody]=\"columns()\" [pTreeTableBodyTemplate]=\"bodyTemplate ?? _bodyTemplate()\"></tbody>\n <tfoot [class]=\"cx('tfoot')\" [hBind]=\"ptm('tfoot')\" role=\"rowgroup\">\n <ng-container *ngTemplateOutlet=\"footerTemplate || _footerTemplate; context: { $implicit: columns() }\"></ng-container>\n </tfoot>\n </table>\n </div>\n}\n\n@if (scrollable()) {\n <div [hBind]=\"ptm('scrollableWrapper')\" [class]=\"cx('scrollableWrapper')\">\n @if (frozenColumns() || frozenBodyTemplate || _frozenBodyTemplate()) {\n <div\n [ngClass]=\"[cx('scrollableView'), cx('frozenView')]\"\n #scrollableFrozenView\n [ttScrollableView]=\"frozenColumns()\"\n [unstyled]=\"unstyled()\"\n [frozen]=\"true\"\n [ngStyle]=\"{ width: frozenWidth() }\"\n [scrollHeight]=\"scrollHeight()\"\n [hBind]=\"ptm('scrollableView')\"\n ></div>\n }\n <div\n [class]=\"cx('scrollableView')\"\n [hBind]=\"ptm('scrollableView')\"\n #scrollableView\n [ttScrollableView]=\"columns()\"\n [unstyled]=\"unstyled()\"\n [frozen]=\"false\"\n [scrollHeight]=\"scrollHeight()\"\n [ngStyle]=\"{ left: frozenWidth(), width: 'calc(100% - ' + frozenWidth() + ')' }\"\n ></div>\n </div>\n}\n\n@if (paginator() && (paginatorPosition() === 'bottom' || paginatorPosition() == 'both')) {\n <h-paginator\n [pt]=\"ptm('pcPaginator')\"\n [rows]=\"rows()\"\n [first]=\"first()\"\n [totalRecords]=\"totalRecords()\"\n [pageLinkSize]=\"pageLinks()\"\n [styleClass]=\"cx('pcPaginator')\"\n [alwaysShow]=\"alwaysShowPaginator()\"\n (onPageChange)=\"onPageChange($event)\"\n [rowsPerPageOptions]=\"rowsPerPageOptions()\"\n [templateLeft]=\"paginatorLeftTemplate ?? _paginatorLeftTemplate()\"\n [templateRight]=\"paginatorRightTemplate ?? _paginatorRightTemplate()\"\n [appendTo]=\"paginatorDropdownAppendTo()\"\n [currentPageReportTemplate]=\"currentPageReportTemplate()\"\n [showFirstLastIcon]=\"showFirstLastIcon()\"\n [dropdownItemTemplate]=\"paginatorDropdownItemTemplate ?? _paginatorDropdownItemTemplate()\"\n [showCurrentPageReport]=\"showCurrentPageReport()\"\n [showJumpToPageDropdown]=\"showJumpToPageDropdown()\"\n [showPageLinks]=\"showPageLinks()\"\n [locale]=\"paginatorLocale()\"\n [unstyled]=\"unstyled()\"\n >\n @if (paginatorFirstPageLinkIconTemplate || _paginatorFirstPageLinkIconTemplate) {\n <ng-template hTemplate=\"firstpagelinkicon\">\n <ng-container *ngTemplateOutlet=\"paginatorFirstPageLinkIconTemplate || _paginatorFirstPageLinkIconTemplate\"></ng-container>\n </ng-template>\n }\n @if (paginatorPreviousPageLinkIconTemplate || _paginatorPreviousPageLinkIconTemplate) {\n <ng-template hTemplate=\"previouspagelinkicon\">\n <ng-container *ngTemplateOutlet=\"paginatorPreviousPageLinkIconTemplate || _paginatorPreviousPageLinkIconTemplate\"></ng-container>\n </ng-template>\n }\n @if (paginatorLastPageLinkIconTemplate || _paginatorLastPageLinkIconTemplate) {\n <ng-template hTemplate=\"lastpagelinkicon\">\n <ng-container *ngTemplateOutlet=\"paginatorLastPageLinkIconTemplate || _paginatorLastPageLinkIconTemplate\"></ng-container>\n </ng-template>\n }\n @if (paginatorNextPageLinkIconTemplate || _paginatorNextPageLinkIconTemplate) {\n <ng-template hTemplate=\"nextpagelinkicon\">\n <ng-container *ngTemplateOutlet=\"paginatorNextPageLinkIconTemplate || _paginatorNextPageLinkIconTemplate\"></ng-container>\n </ng-template>\n }\n </h-paginator>\n}\n@if (summaryTemplate || _summaryTemplate) {\n <div [hBind]=\"ptm('footer')\" [class]=\"cx('footer')\">\n <ng-container *ngTemplateOutlet=\"summaryTemplate || _summaryTemplate\"></ng-container>\n </div>\n}\n\n@if (resizableColumns()) {\n <div [hBind]=\"ptm('columnResizerHelper')\" #resizeHelper [class]=\"cx('columnResizerHelper')\" [style.display]=\"'none'\"></div>\n}\n@if (reorderableColumns()) {\n <span [hBind]=\"ptm('reorderIndicatorUp')\" #reorderIndicatorUp [class]=\"cx('reorderIndicatorUp')\" [style.display]=\"'none'\">\n @if (!reorderIndicatorUpIconTemplate && !_reorderIndicatorUpIconTemplate()) {\n <svg data-h-icon=\"arrow-down\" />\n }\n <ng-template *ngTemplateOutlet=\"reorderIndicatorUpIconTemplate || _reorderIndicatorUpIconTemplate()\"></ng-template>\n </span>\n}\n@if (reorderableColumns()) {\n <span [hBind]=\"ptm('reorderIndicatorDown')\" #reorderIndicatorDown [class]=\"cx('reorderIndicatorDown')\" [style.display]=\"'none'\">\n @if (!reorderIndicatorDownIconTemplate && !_reorderIndicatorDownIconTemplate()) {\n <svg data-h-icon=\"arrow-up\" />\n }\n <ng-template *ngTemplateOutlet=\"reorderIndicatorDownIconTemplate || _reorderIndicatorDownIconTemplate()\"></ng-template>\n </span>\n}\n","@for (serializedNode of serializedNodes() || tt.serializedValue; track tt.rowTrackBy()(rowIndex, serializedNode); let rowIndex = $index) {\n @if (serializedNode.visible) {\n <ng-container\n *ngTemplateOutlet=\"\n template();\n context: {\n $implicit: serializedNode,\n node: serializedNode.node,\n rowData: serializedNode.node.data,\n columns: columns()\n }\n \"\n ></ng-container>\n}\n}\n@if (tt.isEmpty()) {\n <ng-container *ngTemplateOutlet=\"tt.emptyMessageTemplate || tt._emptyMessageTemplate(); context: { $implicit: columns(), frozen: frozen() }\"></ng-container>\n}\n","<div #scrollHeader [class]=\"cx('scrollableHeader')\" [hBind]=\"ptm('scrollableHeader')\">\n <div #scrollHeaderBox [class]=\"cx('scrollableHeaderBox')\" [hBind]=\"ptm('scrollableHeaderBox')\">\n <table [class]=\"cn(cx('scrollableHeaderTable'), tt.tableStyleClass())\" [hBind]=\"ptm('scrollableHeaderTable')\" [ngStyle]=\"tt.tableStyle()\">\n <ng-container\n *ngTemplateOutlet=\"frozen() ? tt.frozenColGroupTemplate || tt._frozenColGroupTemplate() || tt.colGroupTemplate || tt._colGroupTemplate() : tt.colGroupTemplate || tt._colGroupTemplate(); context: { $implicit: columns() }\"\n ></ng-container>\n <thead role=\"rowgroup\" [class]=\"cx('thead')\" [hBind]=\"ptm('thead')\">\n <ng-container\n *ngTemplateOutlet=\"frozen() ? tt.frozenHeaderTemplate || tt._frozenHeaderTemplate() || tt.headerTemplate || tt._headerTemplate() : tt.headerTemplate || tt._headerTemplate(); context: { $implicit: columns() }\"\n ></ng-container>\n </thead>\n </table>\n </div>\n</div>\n\n@if (tt.virtualScroll()) {\n <h-scroller\n #scroller\n [items]=\"tt.serializedValue\"\n [styleClass]=\"cx('scrollableBody')\"\n [style]=\"{ height: tt.scrollHeight() !== 'flex' ? tt.scrollHeight() : undefined }\"\n [scrollHeight]=\"scrollHeight() !== 'flex' ? undefined : '100%'\"\n [itemSize]=\"tt.virtualScrollItemSize() || tt.virtualRowHeight()\"\n [lazy]=\"tt.lazy()\"\n (onLazyLoad)=\"tt.onLazyItemLoad($event)\"\n [options]=\"tt.virtualScrollOptions()\"\n [pt]=\"ptm('virtualScroller')\"\n >\n <ng-template #content let-items let-scrollerOptions=\"options\">\n <ng-container *ngTemplateOutlet=\"buildInItems; context: { $implicit: items, options: scrollerOptions }\"></ng-container>\n </ng-template>\n @if (tt.loaderTemplate || tt._loaderTemplate) {\n <ng-template #loader let-scrollerOptions=\"options\">\n <ng-container *ngTemplateOutlet=\"tt.loaderTemplate || tt._loaderTemplate; context: { options: scrollerOptions }\"></ng-container>\n </ng-template>\n }\n </h-scroller>\n}\n@if (!tt.virtualScroll()) {\n <div\n #scrollBody\n [class]=\"cx('scrollableBody')\"\n [hBind]=\"ptm('scrollableBody')\"\n [ngStyle]=\"{\n 'max-height': tt.scrollHeight() !== 'flex' ? scrollHeight() : undefined,\n 'overflow-y': !frozen() && tt.scrollHeight() ? 'scroll' : undefined\n }\"\n >\n <ng-container *ngTemplateOutlet=\"buildInItems; context: { $implicit: serializedValue, options: {} }\"></ng-container>\n </div>\n}\n\n<ng-template #buildInItems let-items let-scrollerOptions=\"options\">\n <table role=\"treegrid\" #scrollTable [hBind]=\"ptm('table')\" [class]=\"tt.tableStyleClass()\" [ngClass]=\"scrollerOptions.contentStyleClass\" [ngStyle]=\"tt.tableStyle()\" [style]=\"scrollerOptions.contentStyle\">\n <ng-container\n *ngTemplateOutlet=\"frozen() ? tt.frozenColGroupTemplate || tt._frozenColGroupTemplate() || tt.colGroupTemplate || tt._colGroupTemplate() : tt.colGroupTemplate || tt._colGroupTemplate(); context: { $implicit: columns() }\"\n ></ng-container>\n <tbody\n [hBind]=\"ptm('tbody')\"\n role=\"rowgroup\"\n [class]=\"cx('tbody')\"\n [hBind]=\"ptm('tbody')\"\n [hTreeTableBody]=\"columns()\"\n [unstyled]=\"unstyled()\"\n [pTreeTableBodyTemplate]=\"frozen() ? tt.frozenBodyTemplate || tt._frozenBodyTemplate() || tt.bodyTemplate || tt._bodyTemplate() : tt.bodyTemplate || tt._bodyTemplate()\"\n [serializedNodes]=\"items\"\n [frozen]=\"frozen()\"\n ></tbody>\n </table>\n @if (frozen()) {\n <div #scrollableAligner [style.background-color]=\"'transparent'\"></div>\n }\n</ng-template>\n\n@if (tt.footerTemplate || tt._footerTemplate) {\n <div #scrollFooter [class]=\"cx('scrollableFooter')\" [hBind]=\"ptm('scrollableFooter')\">\n <div #scrollFooterBox [class]=\"cx('scrollableFooterBox')\" [hBind]=\"ptm('scrollableFooterBox')\">\n <table [class]=\"cx('scrollableFooterTable')\" [ngClass]=\"tt.tableStyleClass()\" [ngStyle]=\"tt.tableStyle()\" [hBind]=\"ptm('scrollableFooterTable')\">\n <ng-container\n *ngTemplateOutlet=\"frozen() ? tt.frozenColGroupTemplate || tt._frozenColGroupTemplate() || tt.colGroupTemplate || tt._colGroupTemplate() : tt.colGroupTemplate || tt._colGroupTemplate(); context: { $implicit: columns() }\"\n ></ng-container>\n <tfoot role=\"rowgroup\" [class]=\"cx('tfoot')\" [hBind]=\"ptm('tfoot')\">\n <ng-container\n *ngTemplateOutlet=\"frozen() ? tt.frozenFooterTemplate || tt._frozenFooterTemplate() || tt.footerTemplate || tt._footerTemplate : tt.footerTemplate || tt._footerTemplate; context: { $implicit: columns() }\"\n ></ng-container>\n </tfoot>\n </table>\n </div>\n </div>\n}\n","@if (!tt.sortIconTemplate && !tt._sortIconTemplate) {\n @if (sortOrder === 0) {\n <svg data-h-icon=\"sort-alt\" [class]=\"cx('sortableColumnIcon')\" [hBind]=\"ptm('sortableColumnIcon')\" />\n }\n @if (sortOrder === 1) {\n <svg data-h-icon=\"sort-amount-up-alt\" [class]=\"cx('sortableColumnIcon')\" [hBind]=\"ptm('sortableColumnIcon')\" />\n }\n @if (sortOrder === -1) {\n <svg data-h-icon=\"sort-amount-down\" [class]=\"cx('sortableColumnIcon')\" [hBind]=\"ptm('sortableColumnIcon')\" />\n }\n}\n@if (tt.sortIconTemplate || tt._sortIconTemplate) {\n <span [class]=\"cx('sortableColumnIcon')\" [hBind]=\"ptm('sortableColumnIcon')\">\n <ng-template *ngTemplateOutlet=\"tt.sortIconTemplate || tt._sortIconTemplate; context: { $implicit: sortOrder }\"></ng-template>\n </span>\n}\n@if (isMultiSorted()) {\n <h-badge [class]=\"cx('sortableColumnBadge')\" [value]=\"getBadgeValue()\" size=\"small\" [pt]=\"ptm('pcSortableColumnBadge')\" [unstyled]=\"unstyled()\"></h-badge>\n}\n","<button\n type=\"button\"\n [class]=\"cx('toggler')\"\n [hBind]=\"ptm('rowToggleButton')\"\n (click)=\"onClick($event)\"\n tabindex=\"-1\"\n hRipple\n [style.visibility]=\"rowNode().node.leaf === false || (rowNode().node.children && rowNode().node.children.length) ? 'visible' : 'hidden'\"\n [style.marginInlineStart]=\"rowNode().level * 16 + 'px'\"\n [attr.data-pc-group-section]=\"'rowactionbutton'\"\n [attr.aria-label]=\"toggleButtonAriaLabel\"\n >\n @if (!tt.togglerIconTemplate && !tt._togglerIconTemplate()) {\n @if (rowNode().node.expanded) {\n <svg data-h-icon=\"chevron-down\" [hBind]=\"ptm('nodetoggleicon')\" [attr.aria-hidden]=\"true\" />\n }\n @if (!rowNode().node.expanded) {\n <svg data-h-icon=\"chevron-right\" [hBind]=\"ptm('nodetoggleicon')\" [attr.aria-hidden]=\"true\" />\n }\n }\n <ng-template *ngTemplateOutlet=\"tt.togglerIconTemplate || tt._togglerIconTemplate(); context: { $implicit: rowNode().node.expanded }\"></ng-template>\n</button>\n"],"mappings":"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"}
|