primeng 19.0.0 → 19.0.2
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/autocomplete/autocomplete.d.ts +1 -1
- package/cascadeselect/cascadeselect.d.ts +1 -1
- package/dropdown/dropdown.d.ts +2 -1
- package/dynamicdialog/dialogservice.d.ts +1 -1
- package/dynamicdialog/dynamicdialog-config.d.ts +7 -2
- package/dynamicdialog/dynamicdialog.d.ts +5 -4
- package/fesm2022/primeng-autocomplete.mjs +5 -5
- package/fesm2022/primeng-autocomplete.mjs.map +1 -1
- package/fesm2022/primeng-breadcrumb.mjs +76 -70
- package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
- package/fesm2022/primeng-calendar.mjs +6 -4
- package/fesm2022/primeng-calendar.mjs.map +1 -1
- package/fesm2022/primeng-carousel.mjs +14 -5
- package/fesm2022/primeng-carousel.mjs.map +1 -1
- package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
- package/fesm2022/primeng-confirmdialog.mjs +1 -1
- package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
- package/fesm2022/primeng-datepicker.mjs +11 -10
- package/fesm2022/primeng-datepicker.mjs.map +1 -1
- package/fesm2022/primeng-dialog.mjs +1 -0
- package/fesm2022/primeng-dialog.mjs.map +1 -1
- package/fesm2022/primeng-dock.mjs +90 -80
- package/fesm2022/primeng-dock.mjs.map +1 -1
- package/fesm2022/primeng-dropdown.mjs +8 -15
- package/fesm2022/primeng-dropdown.mjs.map +1 -1
- package/fesm2022/primeng-dynamicdialog.mjs +19 -6
- package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
- package/fesm2022/primeng-fileupload.mjs +2 -2
- package/fesm2022/primeng-fileupload.mjs.map +1 -1
- package/fesm2022/primeng-galleria.mjs +229 -86
- package/fesm2022/primeng-galleria.mjs.map +1 -1
- package/fesm2022/primeng-inputnumber.mjs +1 -1
- package/fesm2022/primeng-inputnumber.mjs.map +1 -1
- package/fesm2022/primeng-inputotp.mjs +17 -8
- package/fesm2022/primeng-inputotp.mjs.map +1 -1
- package/fesm2022/primeng-listbox.mjs +23 -12
- package/fesm2022/primeng-listbox.mjs.map +1 -1
- package/fesm2022/primeng-menu.mjs +38 -48
- package/fesm2022/primeng-menu.mjs.map +1 -1
- package/fesm2022/primeng-multiselect.mjs +48 -24
- package/fesm2022/primeng-multiselect.mjs.map +1 -1
- package/fesm2022/primeng-paginator.mjs +5 -1
- package/fesm2022/primeng-paginator.mjs.map +1 -1
- package/fesm2022/primeng-panel.mjs +58 -52
- package/fesm2022/primeng-panel.mjs.map +1 -1
- package/fesm2022/primeng-popover.mjs +10 -19
- package/fesm2022/primeng-popover.mjs.map +1 -1
- package/fesm2022/primeng-select.mjs +15 -21
- package/fesm2022/primeng-select.mjs.map +1 -1
- package/fesm2022/primeng-splitter.mjs +28 -14
- package/fesm2022/primeng-splitter.mjs.map +1 -1
- package/fesm2022/primeng-steps.mjs +100 -90
- package/fesm2022/primeng-steps.mjs.map +1 -1
- package/fesm2022/primeng-table.mjs +3 -3
- package/fesm2022/primeng-table.mjs.map +1 -1
- package/fesm2022/primeng-tag.mjs +0 -1
- package/fesm2022/primeng-tag.mjs.map +1 -1
- package/fesm2022/primeng-togglebutton.mjs +3 -3
- package/fesm2022/primeng-tree.mjs +19 -13
- package/fesm2022/primeng-tree.mjs.map +1 -1
- package/fesm2022/primeng-treetable.mjs +385 -175
- package/fesm2022/primeng-treetable.mjs.map +1 -1
- package/galleria/galleria.d.ts +18 -1
- package/inputotp/inputotp.d.ts +1 -0
- package/package.json +131 -131
- package/popover/popover.d.ts +1 -7
- package/select/select.d.ts +1 -0
- package/splitter/splitter.d.ts +2 -1
- package/tag/tag.d.ts +0 -1
- package/togglebutton/public_api.d.ts +2 -1
- package/treetable/treetable.d.ts +28 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"primeng-treetable.mjs","sources":["../../src/treetable/style/treetablestyle.ts","../../src/treetable/treetable.ts","../../src/treetable/primeng-treetable.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n/* For PrimeNG */\n.p-treetable {\n position: relative;\n}\n\n.p-treetable table {\n border-collapse: collapse;\n width: 100%;\n table-layout: fixed;\n}\n\n.p-treetable .p-sortable-column {\n cursor: pointer;\n user-select: none;\n}\n\n.p-treetable .p-sortable-column .p-column-title,\n.p-treetable .p-sortable-column .p-sortable-column-icon,\n.p-treetable .p-sortable-column .p-sortable-column-badge {\n vertical-align: middle;\n}\n\n.p-treetable .p-sortable-column .p-sortable-column-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.p-treetable-auto-layout>.p-treetable-wrapper {\n overflow-x: auto;\n}\n\n.p-treetable-auto-layout>.p-treetable-wrapper>table {\n table-layout: auto;\n}\n\n.p-treetable-hoverable-rows .p-treetable-tbody>tr {\n cursor: pointer;\n}\n\n.p-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.p-treetable-scrollable-wrapper {\n position: relative;\n}\n\n.p-treetable-scrollable-header,\n.p-treetable-scrollable-footer {\n overflow: hidden;\n flex-shrink: 0;\n}\n\n.p-treetable-scrollable-body {\n overflow: auto;\n position: relative;\n}\n\n.p-treetable-virtual-table {\n position: absolute;\n}\n\n/* Frozen Columns */\n.p-treetable-frozen-view .p-treetable-scrollable-body {\n overflow: hidden;\n}\n\n.p-treetable-frozen-view>.p-treetable-scrollable-body>table>.p-treetable-tbody>tr>td:last-child {\n border-right: 0 none;\n}\n\n.p-treetable-unfrozen-view {\n position: absolute;\n top: 0;\n}\n\n/* Flex Scrollable */\n.p-treetable-flex-scrollable {\n display: flex;\n flex-direction: column;\n flex: 1;\n height: 100%;\n}\n\n.p-treetable-flex-scrollable .p-treetable-scrollable-wrapper,\n.p-treetable-flex-scrollable .p-treetable-scrollable-view {\n display: flex;\n flex-direction: column;\n flex: 1;\n height: 100%;\n}\n\n.p-treetable-flex-scrollable .p-treetable-virtual-scrollable-body {\n flex: 1;\n}\n\n/* Resizable */\n.p-treetable-resizable>.p-treetable-wrapper {\n overflow-x: auto;\n}\n\n.p-treetable-resizable .p-treetable-thead>tr>th,\n.p-treetable-resizable .p-treetable-tfoot>tr>td,\n.p-treetable-resizable .p-treetable-tbody>tr>td {\n overflow: hidden;\n}\n\n.p-treetable-resizable .p-resizable-column {\n background-clip: padding-box;\n position: relative;\n}\n\n.p-treetable-resizable-fit .p-resizable-column:last-child .p-column-resizer {\n display: none;\n}\n\n.p-treetable .p-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.p-treetable .p-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.p-treetable .p-row-editor-init,\n.p-treetable .p-row-editor-save,\n.p-treetable .p-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.p-treetable-reorder-indicator-up,\n.p-treetable-reorder-indicator-down {\n position: absolute;\n display: none;\n}\n\n[ttReorderableColumn] {\n cursor: move;\n}\n\n/* Loader */\n.p-treetable-mask {\n position: absolute !important;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 2;\n}\n\n.p-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.p-treetable .p-scroller-loading {\n transform: none !important;\n min-height: 0;\n position: sticky;\n top: 0;\n left: 0;\n}\n\n.p-treetable .p-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.p-treetable .p-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.p-treetable .p-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.p-treetable .p-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.p-treetable .p-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.p-treetable .p-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.p-treetable .p-sortable-column {\n cursor: pointer;\n user-select: none;\n outline-color: transparent;\n vertical-align: middle;\n}\n\n.p-treetable .p-sortable-column .p-sortable-column-icon {\n color: ${dt('treetable.sort.icon.color')};\n transition: color ${dt('treetable.transition.duration')};\n}\n\n\n.p-treetable .p-sortable-column:not(.p-treetable-column-sorted):hover {\n background: ${dt('treetable.header.cell.hover.background')};\n color: ${dt('treetable.header.cell.hover.color')};\n}\n\n.p-treetable .p-sortable-column:not(.p-treetable-column-sorted):hover .p-sortable-column-icon {\n color: ${dt('treetable.sort.icon.hover.color')};\n}\n\n.p-treetable .p-sortable-column.p-treetable-column-sorted {\n background: ${dt('treetable.header.cell.selected.background')};\n color: ${dt('treetable.header.cell.selected.color')};\n}\n\n.p-treetable .p-sortable-column.p-treetable-column-sorted .p-sortable-column-icon {\n color: ${dt('treetable.header.cell.selected.color')};\n}\n\n.p-treetable .p-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.p-treetable-hoverable .p-treetable-selectable-row {\n cursor: pointer;\n}\n\n.p-treetable .p-treetable-tbody > tr {\n outline-color: transparent;\n background: ${dt('treetable.row.background')};\n color: ${dt('treetable.row.color')};\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.p-treetable .p-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.p-treetable .p-treetable-tbody>tr>td .p-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.p-treetable .p-treetable-tbody>tr>td .p-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.p-treetable .p-treetable-tbody>tr>tr.treetable-row-selected .p-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.p-treetable .p-treetable-tbody>tr>td .p-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.p-treetable .p-treetable-tbody>tr.p-treetable-row-selected {\n background: ${dt('treetable.row.selected.background')};\n color: ${dt('treetable.row.selected.color')};\n}\n\n.p-treetable-tbody > tr:focus-visible,\n.p-treetable-tbody > tr.p-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.p-treetable .p-treetable-tbody>tr.p-treetable-row-selected .p-treetable-toggler {\n color: inherit;\n}\n\n.p-treetable .p-treetable-tbody>tr.p-treetable-row-selected .p-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.p-treetable.p-treetable-hoverable-rows .p-treetable-tbody>tr:not(.p-treetable-row-selected):hover {\n background: ${dt('treetable.row.hover.background')};\n color: ${dt('treetable.row.hover.color')};\n}\n\n.p-treetable.p-treetable-gridlines .p-datatable-header {\n border-width: 1px 1px 0 1px;\n}\n\n.p-treetable.p-treetable-gridlines .p-treetable-footer {\n border-width: 0 1px 1px 1px;\n}\n\n.p-treetable.p-treetable-gridlines .p-treetable-top {\n border-width: 0 1px 0 1px;\n}\n\n.p-treetable.p-treetable-gridlines .p-treetable-bottom {\n border-width: 0 1px 1px 1px;\n}\n\n.p-treetable.p-treetable-gridlines .p-treetable-thead>tr>th {\n border-width: 1px;\n}\n\n.p-treetable.p-treetable-gridlines .p-treetable-tbody>tr>td {\n border-width: 1px;\n}\n\n.p-treetable.p-treetable-gridlines .p-treetable-tfoot>tr>td {\n border-width: 1px;\n}\n\n.p-treetable.p-treetable-sm .p-treetable-header {\n padding: 0.65625rem 0.875rem;\n}\n\n.p-treetable.p-treetable-sm .p-treetable-thead>tr>th {\n padding: 0.375rem 0.5rem;\n}\n\n.p-treetable.p-treetable-sm .p-treetable-tbody>tr>td {\n padding: 0.375rem 0.5rem;\n}\n\n.p-treetable.p-treetable-sm .p-treetable-tfoot>tr>td {\n padding: 0.375rem 0.5rem;\n}\n\n.p-treetable.p-treetable-sm .p-treetable-footer {\n padding: 0.375rem 0.5rem;\n}\n\n.p-treetable.p-treetable-lg .p-treetable-header {\n padding: 0.9375rem 1.25rem;\n}\n\n.p-treetable.p-treetable-lg .p-treetable-thead>tr>th {\n padding: 0.9375rem 1.25rem;\n}\n\n.p-treetable.p-treetable-lg .p-treetable-tbody>tr>td {\n padding: 0.9375rem 1.25rem;\n}\n\n.p-treetable.p-treetable-lg .p-treetable-tfoot>tr>td {\n padding: 0.9375rem 1.25rem;\n}\n\n.p-treetable.p-treetable-lg .p-treetable-footer {\n padding: 0.9375rem 1.25rem;\n}\n\np-treetabletoggler + p-treetablecheckbox .p-checkbox {\n vertical-align: middle;\n}\n\np-treetabletoggler + p-treetablecheckbox + span {\n vertical-align: middle;\n}\n`;\n\nconst classes = {\n root: ({ instance }) => ({\n 'p-treetable p-component': true,\n 'p-treetable-hoverable': instance.rowHover || instance.selectionMode,\n 'p-treetable-resizable': instance.resizableColumns,\n 'p-treetable-resizable-fit': instance.resizableColumns && instance.columnResizeMode === 'fit',\n 'p-treetable-scrollable': instance.scrollable,\n 'p-treetable-flex-scrollable': instance.scrollable && instance.scrollHeight === 'flex',\n 'p-treetable-gridlines': instance.showGridlines,\n 'p-treetable-sm': instance.size === 'small',\n 'p-treetable-lg': instance.size === 'large'\n }),\n loading: 'p-treetable-loading', //TODO: required?\n mask: 'p-treetable-mask p-overlay-mask',\n loadingIcon: 'p-treetable-loading-icon',\n header: 'p-treetable-header',\n paginator: ({ instance }) => 'p-treetable-paginator-' + instance.paginatorPosition,\n tableContainer: 'p-treetable-table-container',\n table: ({ instance }) => ({\n 'p-treetable-table': true,\n 'p-treetable-scrollable-table': instance.scrollable,\n 'p-treetable-resizable-table': instance.resizableColumns,\n 'p-treetable-resizable-table-fit': instance.resizableColumns && instance.columnResizeMode === 'fit'\n }),\n thead: 'p-treetable-thead',\n headerCell: ({ instance }) => ({\n 'p-treetable-header-cell': true,\n 'p-treetable-sortable-column': instance.sortable,\n 'p-treetable-resizable-column': instance.resizableColumns,\n 'p-treetable-column-sorted': instance?.sorted,\n 'p-treetable-frozen-column': instance.columnProp('frozen')\n }),\n columnResizer: 'p-treetable-column-resizer',\n columnHeaderContent: 'p-treetable-column-header-content',\n columnTitle: 'p-treetable-column-title',\n sortIcon: 'p-treetable-sort-icon',\n pcSortBadge: 'p-treetable-sort-badge',\n tbody: 'p-treetable-tbody',\n row: ({ instance }) => ({\n 'p-treetable-row-selected': instance.selected\n }),\n bodyCell: ({ instance }) => ({\n 'p-treetable-frozen-column': instance.columnProp('frozen')\n }),\n bodyCellContent: ({ instance }) => ({\n 'p-treetable-body-cell-content': true,\n 'p-treetable-body-cell-content-expander': instance.columnProp('expander')\n }),\n toggler: 'p-treetable-body-cell-content-expander',\n nodeToggleButton: 'p-treetable-node-toggle-button',\n nodeToggleIcon: 'p-treetable-node-toggle-icon',\n pcNodeCheckbox: 'p-treetable-node-checkbox',\n emptyMessage: 'p-treetable-empty-message',\n tfoot: 'p-treetable-tfoot',\n footerCell: ({ instance }) => ({\n 'p-treetable-frozen-column': instance.columnProp('frozen')\n }),\n footer: 'p-treetable-footer',\n columnResizeIndicator: 'p-treetable-column-resize-indicator'\n};\n\nconst inlineStyles = {\n tableContainer: { overflow: 'auto' },\n thead: { position: 'sticky' },\n tfoot: { position: 'sticky' }\n};\n\n@Injectable()\nexport class TreeTableStyle extends BaseStyle {\n name = 'treetable';\n\n theme = theme;\n\n classes = classes;\n\n inlineStyles = inlineStyles;\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 = 'p-treetable',\n /**\n * Class name of the loading element\n */\n loading = 'p-treetable-loading',\n /**\n * Class name of the mask element\n */\n mask = 'p-treetable-mask',\n /**\n * Class name of the loading icon element\n */\n loadingIcon = 'p-treetable-loading-icon',\n /**\n * Class name of the header element\n */\n header = 'p-treetable-header',\n /**\n * Class name of the paginator element\n */\n paginator = 'p-treetable-paginator-[position]',\n /**\n * Class name of the table container element\n */\n tableContainer = 'p-treetable-table-container',\n /**\n * Class name of the table element\n */\n table = 'p-treetable-table',\n /**\n * Class name of the thead element\n */\n thead = 'p-treetable-thead',\n /**\n * Class name of the column resizer element\n */\n columnResizer = 'p-treetable-column-resizer',\n /**\n * Class name of the column title element\n */\n columnTitle = 'p-treetable-column-title',\n /**\n * Class name of the sort icon element\n */\n sortIcon = 'p-treetable-sort-icon',\n /**\n * Class name of the sort badge element\n */\n pcSortBadge = 'p-treetable-sort-badge',\n /**\n * Class name of the tbody element\n */\n tbody = 'p-treetable-tbody',\n /**\n * Class name of the node toggle button element\n */\n nodeToggleButton = 'p-treetable-node-toggle-button',\n /**\n * Class name of the node toggle icon element\n */\n nodeToggleIcon = 'p-treetable-node-toggle-icon',\n /**\n * Class name of the node checkbox element\n */\n pcNodeCheckbox = 'p-treetable-node-checkbox',\n /**\n * Class name of the empty message element\n */\n emptyMessage = 'p-treetable-empty-message',\n /**\n * Class name of the tfoot element\n */\n tfoot = 'p-treetable-tfoot',\n /**\n * Class name of the footer element\n */\n footer = 'p-treetable-footer',\n /**\n * Class name of the column resize indicator element\n */\n columnResizeIndicator = 'p-treetable-column-resize-indicator'\n}\n\nexport interface TreeTableStyle extends BaseStyle {}\n","import { CommonModule, DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport {\n AfterContentInit,\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Inject,\n inject,\n Injectable,\n Input,\n NgModule,\n NgZone,\n numberAttribute,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n PLATFORM_ID,\n QueryList,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport {\n addClass,\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 hasClass,\n invokeElementMethod,\n isEmpty,\n isNotEmpty,\n removeClass,\n reorderArray,\n resolveFieldData\n} from '@primeuix/utils';\nimport { BlockableUI, FilterMetadata, FilterService, PrimeTemplate, ScrollerOptions, SharedModule, SortMeta, TreeNode, TreeTableNode } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { Checkbox } from 'primeng/checkbox';\nimport { DomHandler } from 'primeng/dom';\nimport { ArrowDownIcon, ArrowUpIcon, CheckIcon, ChevronDownIcon, ChevronRightIcon, MinusIcon, SortAltIcon, SortAmountDownIcon, SortAmountUpAltIcon, SpinnerIcon } from 'primeng/icons';\nimport { PaginatorModule } from 'primeng/paginator';\nimport { Ripple } from 'primeng/ripple';\nimport { Scroller } from 'primeng/scroller';\nimport { Nullable, VoidListener } from 'primeng/ts-helpers';\nimport { Subject, Subscription } from 'rxjs';\nimport { TreeTableStyle } from './style/treetablestyle';\nimport {\n TreeTableColResizeEvent,\n TreeTableColumnReorderEvent,\n TreeTableContextMenuSelectEvent,\n TreeTableEditEvent,\n TreeTableFilterEvent,\n TreeTableFilterOptions,\n TreeTableHeaderCheckboxToggleEvent,\n TreeTableLazyLoadEvent,\n TreeTableNodeCollapseEvent,\n TreeTableNodeExpandEvent,\n TreeTableNodeUnSelectEvent,\n TreeTablePaginatorState,\n TreeTableSortEvent\n} from './treetable.interface';\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: 'p-treeTable, p-treetable, p-tree-table',\n standalone: false,\n template: `\n <div\n #container\n [ngStyle]=\"style\"\n [class]=\"styleClass\"\n data-scrollselectors=\".p-treetable-scrollable-body\"\n [ngClass]=\"{\n 'p-treetable p-component': true,\n 'p-treetable-gridlines': showGridlines,\n 'p-treetable-hoverable-rows': rowHover || selectionMode === 'single' || selectionMode === 'multiple',\n 'p-treetable-auto-layout': autoLayout,\n 'p-treetable-resizable': resizableColumns,\n 'p-treetable-resizable-fit': resizableColumns && columnResizeMode === 'fit',\n 'p-treetable-flex-scrollable': scrollable && scrollHeight === 'flex'\n }\"\n >\n <div class=\"p-treetable-loading\" *ngIf=\"loading && showLoader\">\n <div class=\"p-overlay-mask p-treetable-mask\">\n <i *ngIf=\"loadingIcon\" [class]=\"'p-treetable-loading-icon pi-spin ' + loadingIcon\"></i>\n <ng-container *ngIf=\"!loadingIcon\">\n <SpinnerIcon *ngIf=\"!loadingIconTemplate\" [spin]=\"true\" [styleClass]=\"'p-treetable-loading-icon'\" />\n <span *ngIf=\"loadingIconTemplate\" class=\"p-treetable-loading-icon\">\n <ng-template *ngTemplateOutlet=\"loadingIconTemplate\"></ng-template>\n </span>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"captionTemplate\" class=\"p-treetable-header\">\n <ng-container *ngTemplateOutlet=\"captionTemplate\"></ng-container>\n </div>\n <p-paginator\n [rows]=\"rows\"\n [first]=\"first\"\n [totalRecords]=\"totalRecords\"\n [pageLinkSize]=\"pageLinks\"\n styleClass=\"p-paginator-top\"\n [alwaysShow]=\"alwaysShowPaginator\"\n (onPageChange)=\"onPageChange($event)\"\n [rowsPerPageOptions]=\"rowsPerPageOptions\"\n *ngIf=\"paginator && (paginatorPosition === 'top' || paginatorPosition == 'both')\"\n [templateLeft]=\"paginatorLeftTemplate\"\n [templateRight]=\"paginatorRightTemplate\"\n [dropdownAppendTo]=\"paginatorDropdownAppendTo\"\n [currentPageReportTemplate]=\"currentPageReportTemplate\"\n [showFirstLastIcon]=\"showFirstLastIcon\"\n [dropdownItemTemplate]=\"paginatorDropdownItemTemplate\"\n [showCurrentPageReport]=\"showCurrentPageReport\"\n [showJumpToPageDropdown]=\"showJumpToPageDropdown\"\n [showPageLinks]=\"showPageLinks\"\n [styleClass]=\"paginatorStyleClass\"\n [locale]=\"paginatorLocale\"\n >\n <ng-template pTemplate=\"firstpagelinkicon\" *ngIf=\"paginatorFirstPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorFirstPageLinkIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"previouspagelinkicon\" *ngIf=\"paginatorPreviousPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorPreviousPageLinkIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"lastpagelinkicon\" *ngIf=\"paginatorLastPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorLastPageLinkIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"nextpagelinkicon\" *ngIf=\"paginatorNextPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorNextPageLinkIconTemplate\"></ng-container>\n </ng-template>\n </p-paginator>\n\n <div class=\"p-treetable-wrapper\" *ngIf=\"!scrollable\">\n <table role=\"table\" #table [ngClass]=\"tableStyleClass\" [ngStyle]=\"tableStyle\">\n <ng-container *ngTemplateOutlet=\"colGroupTemplate; context: { $implicit: columns }\"></ng-container>\n <thead role=\"rowgroup\" class=\"p-treetable-thead\">\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: columns }\"></ng-container>\n </thead>\n <tbody class=\"p-treetable-tbody\" role=\"rowgroup\" [pTreeTableBody]=\"columns\" [pTreeTableBodyTemplate]=\"bodyTemplate\"></tbody>\n <tfoot class=\"p-treetable-tfoot\" role=\"rowgroup\">\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: columns }\"></ng-container>\n </tfoot>\n </table>\n </div>\n\n <div class=\"p-treetable-scrollable-wrapper\" *ngIf=\"scrollable\">\n <div\n class=\"p-treetable-scrollable-view p-treetable-frozen-view\"\n *ngIf=\"frozenColumns || frozenBodyTemplate\"\n #scrollableFrozenView\n [ttScrollableView]=\"frozenColumns\"\n [frozen]=\"true\"\n [ngStyle]=\"{ width: frozenWidth }\"\n [scrollHeight]=\"scrollHeight\"\n ></div>\n <div class=\"p-treetable-scrollable-view\" #scrollableView [ttScrollableView]=\"columns\" [frozen]=\"false\" [scrollHeight]=\"scrollHeight\" [ngStyle]=\"{ left: frozenWidth, width: 'calc(100% - ' + frozenWidth + ')' }\"></div>\n </div>\n\n <p-paginator\n [rows]=\"rows\"\n [first]=\"first\"\n [totalRecords]=\"totalRecords\"\n [pageLinkSize]=\"pageLinks\"\n styleClass=\"p-paginator-bottom\"\n [alwaysShow]=\"alwaysShowPaginator\"\n (onPageChange)=\"onPageChange($event)\"\n [rowsPerPageOptions]=\"rowsPerPageOptions\"\n *ngIf=\"paginator && (paginatorPosition === 'bottom' || paginatorPosition == 'both')\"\n [templateLeft]=\"paginatorLeftTemplate\"\n [templateRight]=\"paginatorRightTemplate\"\n [dropdownAppendTo]=\"paginatorDropdownAppendTo\"\n [currentPageReportTemplate]=\"currentPageReportTemplate\"\n [showFirstLastIcon]=\"showFirstLastIcon\"\n [dropdownItemTemplate]=\"paginatorDropdownItemTemplate\"\n [showCurrentPageReport]=\"showCurrentPageReport\"\n [showJumpToPageDropdown]=\"showJumpToPageDropdown\"\n [showPageLinks]=\"showPageLinks\"\n [styleClass]=\"paginatorStyleClass\"\n [locale]=\"paginatorLocale\"\n >\n <ng-template pTemplate=\"firstpagelinkicon\" *ngIf=\"paginatorFirstPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorFirstPageLinkIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"previouspagelinkicon\" *ngIf=\"paginatorPreviousPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorPreviousPageLinkIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"lastpagelinkicon\" *ngIf=\"paginatorLastPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorLastPageLinkIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"nextpagelinkicon\" *ngIf=\"paginatorNextPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorNextPageLinkIconTemplate\"></ng-container>\n </ng-template>\n </p-paginator>\n <div *ngIf=\"summaryTemplate\" class=\"p-treetable-footer\">\n <ng-container *ngTemplateOutlet=\"summaryTemplate\"></ng-container>\n </div>\n\n <div #resizeHelper class=\"p-column-resizer-helper\" style=\"display:none\" *ngIf=\"resizableColumns\"></div>\n <span #reorderIndicatorUp class=\"p-treetable-reorder-indicator-up\" style=\"display: none;\" *ngIf=\"reorderableColumns\">\n <ArrowDownIcon *ngIf=\"!reorderIndicatorUpIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"reorderIndicatorUpIconTemplate\"></ng-template>\n </span>\n <span #reorderIndicatorDown class=\"p-treetable-reorder-indicator-down\" style=\"display: none;\" *ngIf=\"reorderableColumns\">\n <ArrowUpIcon *ngIf=\"!reorderIndicatorDownIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"reorderIndicatorDownIconTemplate\"></ng-template>\n </span>\n </div>\n `,\n providers: [TreeTableService, TreeTableStyle],\n encapsulation: ViewEncapsulation.None\n})\nexport class TreeTable extends BaseComponent implements AfterContentInit, OnInit, OnDestroy, BlockableUI, OnChanges {\n _componentStyle = inject(TreeTableStyle);\n /**\n * An array of objects to represent dynamic columns.\n * @group Props\n */\n @Input() columns: any[] | undefined;\n /**\n * Inline style of the component.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the component.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Inline style of the table.\n * @group Props\n */\n @Input() tableStyle: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the table.\n * @group Props\n */\n @Input() tableStyleClass: string | undefined;\n /**\n * Whether the cell widths scale according to their content or not.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) autoLayout: boolean | undefined;\n /**\n * Defines if data is loaded and interacted with in lazy manner.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) lazy: boolean = false;\n /**\n * Whether to call lazy loading on initialization.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) lazyLoadOnInit: boolean = true;\n /**\n * When specified as true, enables the pagination.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) paginator: boolean | undefined;\n /**\n * Number of rows to display per page.\n * @group Props\n */\n @Input({ transform: numberAttribute }) rows: number | undefined;\n /**\n * Index of the first row to be displayed.\n * @group Props\n */\n @Input({ transform: numberAttribute }) first: number = 0;\n /**\n * Number of page links to display in paginator.\n * @group Props\n */\n @Input({ transform: numberAttribute }) pageLinks: number = 5;\n /**\n * Array of integer/object values to display inside rows per page dropdown of paginator\n * @group Props\n */\n @Input() rowsPerPageOptions: any[] | undefined;\n /**\n * Whether to show it even there is only one page.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) alwaysShowPaginator: boolean = true;\n /**\n * Position of the paginator.\n * @group Props\n */\n @Input() paginatorPosition: 'top' | 'bottom' | 'both' = 'bottom';\n /**\n * Custom style class for paginator\n * @group Props\n */\n @Input() paginatorStyleClass: string | undefined;\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 @Input() paginatorDropdownAppendTo: HTMLElement | ElementRef | TemplateRef<any> | string | null | undefined | 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 @Input() currentPageReportTemplate: string = '{currentPage} of {totalPages}';\n /**\n * Whether to display current page report.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showCurrentPageReport: boolean | undefined;\n /**\n * Whether to display a dropdown to navigate to any page.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showJumpToPageDropdown: boolean | undefined;\n /**\n * When enabled, icons are displayed on paginator to go first and last page.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showFirstLastIcon: boolean = true;\n /**\n * Whether to show page links.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showPageLinks: boolean = true;\n /**\n * Sort order to use when an unsorted column gets sorted by user interaction.\n * @group Props\n */\n @Input({ transform: numberAttribute }) defaultSortOrder: number = 1;\n /**\n * Defines whether sorting works on single column or on multiple columns.\n * @group Props\n */\n @Input() sortMode: 'single' | 'multiple' = 'single';\n /**\n * When true, resets paginator to first page after sorting.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) resetPageOnSort: boolean = true;\n /**\n * Whether to use the default sorting or a custom one using sortFunction.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) customSort: boolean | undefined;\n /**\n * Specifies the selection mode, valid values are \"single\" and \"multiple\".\n * @group Props\n */\n @Input() selectionMode: string | undefined;\n /**\n * Selected row with a context menu.\n * @group Props\n */\n @Input() contextMenuSelection: any;\n /**\n * Mode of the contet menu selection.\n * @group Props\n */\n @Input() contextMenuSelectionMode: string = 'separate';\n /**\n * A property to uniquely identify a record in data.\n * @group Props\n */\n @Input() dataKey: string | undefined;\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 @Input({ transform: booleanAttribute }) metaKeySelection: boolean | undefined = false;\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 @Input() compareSelectionBy: string = 'deepEquals';\n /**\n * Adds hover effect to rows without the need for selectionMode.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) rowHover: boolean | undefined;\n /**\n * Displays a loader to indicate data load is in progress.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) loading: boolean | undefined;\n /**\n * The icon to show while indicating data load is in progress.\n * @group Props\n */\n @Input() loadingIcon: string | undefined;\n /**\n * Whether to show the loading mask when loading property is true.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showLoader: boolean = true;\n /**\n * When specified, enables horizontal and/or vertical scrolling.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) scrollable: boolean | undefined;\n /**\n * Height of the scroll viewport in fixed pixels or the \"flex\" keyword for a dynamic size.\n * @group Props\n */\n @Input() scrollHeight: string | undefined;\n /**\n * Whether the data should be loaded on demand during scroll.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) virtualScroll: boolean | undefined;\n /**\n * Height of a row to use in calculations of virtual scrolling.\n * @group Props\n */\n @Input({ transform: numberAttribute }) virtualScrollItemSize: number | undefined;\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 @Input() virtualScrollOptions: ScrollerOptions | undefined;\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 @Input({ transform: numberAttribute }) virtualScrollDelay: number = 150;\n /**\n * Width of the frozen columns container.\n * @group Props\n */\n @Input() frozenWidth: string | undefined;\n /**\n * An array of objects to represent dynamic columns that are frozen.\n * @group Props\n */\n @Input() frozenColumns: { [klass: string]: any } | null | undefined;\n /**\n * When enabled, columns can be resized using drag and drop.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) resizableColumns: boolean | undefined;\n /**\n * Defines whether the overall table width should change on column resize, valid values are \"fit\" and \"expand\".\n * @group Props\n */\n @Input() columnResizeMode: string = 'fit';\n /**\n * When enabled, columns can be reordered using drag and drop.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) reorderableColumns: boolean | undefined;\n /**\n * Local ng-template varilable of a ContextMenu.\n * @group Props\n */\n @Input() contextMenu: any;\n /**\n * Function to optimize the dom operations by delegating to ngForTrackBy, default algorithm checks for object identity.\n * @group Props\n */\n @Input() rowTrackBy: Function = (index: number, item: any) => item;\n /**\n * An array of FilterMetadata objects to provide external filters.\n * @group Props\n */\n @Input() filters: { [s: string]: FilterMetadata | undefined } = {};\n /**\n * An array of fields as string to use in global filtering.\n * @group Props\n */\n @Input() globalFilterFields: string[] | undefined;\n /**\n * Delay in milliseconds before filtering the data.\n * @group Props\n */\n @Input({ transform: numberAttribute }) filterDelay: number = 300;\n /**\n * Mode for filtering valid values are \"lenient\" and \"strict\". Default is lenient.\n * @group Props\n */\n @Input() filterMode: string = 'lenient';\n /**\n * Locale to use in filtering. The default locale is the host environment's current locale.\n * @group Props\n */\n @Input() filterLocale: string | undefined;\n /**\n * Locale to be used in paginator formatting.\n * @group Props\n */\n @Input() paginatorLocale: string | undefined;\n /**\n * Number of total records, defaults to length of value when not defined.\n * @group Props\n */\n @Input() get totalRecords(): number {\n return this._totalRecords;\n }\n set totalRecords(val: number) {\n this._totalRecords = val;\n this.tableService.onTotalRecordsChange(this._totalRecords);\n }\n /**\n * Name of the field to sort data by default.\n * @group Props\n */\n @Input() get sortField(): string | undefined | null {\n return this._sortField;\n }\n set sortField(val: string | undefined | null) {\n this._sortField = val;\n }\n /**\n * Order to sort when default sorting is enabled.\n * @defaultValue 1\n * @group Props\n */\n @Input() get sortOrder(): number {\n return this._sortOrder;\n }\n set sortOrder(val: number) {\n this._sortOrder = val;\n }\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 @Input() get multiSortMeta(): SortMeta[] | undefined | null {\n return this._multiSortMeta;\n }\n set multiSortMeta(val: SortMeta[] | undefined | null) {\n this._multiSortMeta = val;\n }\n /**\n * Selected row in single mode or an array of values in multiple mode.\n * @defaultValue null\n * @group Props\n */\n @Input() get selection(): any {\n return this._selection;\n }\n set selection(val: any) {\n this._selection = val;\n }\n /**\n * An array of objects to display.\n * @defaultValue null\n * @group Props\n */\n @Input() get value(): TreeNode<any>[] | undefined {\n return this._value;\n }\n set value(val: TreeNode<any>[] | undefined) {\n this._value = val;\n }\n /**\n * Indicates the height of rows to be scrolled.\n * @defaultValue 28\n * @group Props\n * @deprecated use virtualScrollItemSize property instead.\n */\n @Input() get virtualRowHeight(): number {\n return this._virtualRowHeight;\n }\n set virtualRowHeight(val: number) {\n this._virtualRowHeight = val;\n console.log('The virtualRowHeight property is deprecated, use virtualScrollItemSize property instead.');\n }\n /**\n * A map of keys to control the selection state.\n * @group Props\n */\n @Input() get selectionKeys(): any {\n return this._selectionKeys;\n }\n set selectionKeys(value: any) {\n this._selectionKeys = value;\n this.selectionKeysChange.emit(this._selectionKeys);\n }\n /**\n * Whether to show grid lines between cells.\n * @defaultValue false\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showGridlines: boolean = false;\n /**\n * Callback to invoke on selected node change.\n * @param {TreeTableNode} object - Node instance.\n * @group Emits\n */\n @Output() selectionChange: EventEmitter<TreeTableNode<any> | TreeTableNode<any>[] | null> = new EventEmitter<TreeTableNode<any> | TreeTableNode<any>[] | null>();\n /**\n * Callback to invoke on context menu selection change.\n * @param {TreeTableNode} object - Node instance.\n * @group Emits\n */\n @Output() contextMenuSelectionChange: EventEmitter<TreeTableNode> = new EventEmitter<TreeTableNode>();\n /**\n * Callback to invoke when data is filtered.\n * @param {TreeTableFilterEvent} event - Custom filter event.\n * @group Emits\n */\n @Output() onFilter: EventEmitter<TreeTableFilterEvent> = new EventEmitter<TreeTableFilterEvent>();\n /**\n * Callback to invoke when a node is expanded.\n * @param {TreeTableNodeExpandEvent} event - Node expand event.\n * @group Emits\n */\n @Output() onNodeExpand: EventEmitter<TreeTableNodeExpandEvent> = new EventEmitter<TreeTableNodeExpandEvent>();\n /**\n * Callback to invoke when a node is collapsed.\n * @param {TreeTableNodeCollapseEvent} event - Node collapse event.\n * @group Emits\n */\n @Output() onNodeCollapse: EventEmitter<TreeTableNodeCollapseEvent> = new EventEmitter<TreeTableNodeCollapseEvent>();\n /**\n * Callback to invoke when pagination occurs.\n * @param {TreeTablePaginatorState} object - Paginator state.\n * @group Emits\n */\n @Output() onPage: EventEmitter<TreeTablePaginatorState> = new EventEmitter<TreeTablePaginatorState>();\n /**\n * Callback to invoke when a column gets sorted.\n * @param {Object} Object - Sort data.\n * @group Emits\n */\n @Output() onSort: EventEmitter<any> = new EventEmitter<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 @Output() onLazyLoad: EventEmitter<TreeTableLazyLoadEvent> = new EventEmitter<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 @Output() sortFunction: EventEmitter<TreeTableSortEvent> = new EventEmitter<TreeTableSortEvent>();\n /**\n * Callback to invoke when a column is resized.\n * @param {TreeTableColResizeEvent} event - Custom column resize event.\n * @group Emits\n */\n @Output() onColResize: EventEmitter<TreeTableColResizeEvent> = new EventEmitter<TreeTableColResizeEvent>();\n /**\n * Callback to invoke when a column is reordered.\n * @param {TreeTableColumnReorderEvent} event - Custom column reorder.\n * @group Emits\n */\n @Output() onColReorder: EventEmitter<TreeTableColumnReorderEvent> = new EventEmitter<TreeTableColumnReorderEvent>();\n /**\n * Callback to invoke when a node is selected.\n * @param {TreeTableNode} object - Node instance.\n * @group Emits\n */\n @Output() onNodeSelect: EventEmitter<TreeTableNode> = new EventEmitter<TreeTableNode>();\n /**\n * Callback to invoke when a node is unselected.\n * @param {TreeTableNodeUnSelectEvent} event - Custom node unselect event.\n * @group Emits\n */\n @Output() onNodeUnselect: EventEmitter<TreeTableNodeUnSelectEvent> = new EventEmitter<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 @Output() onContextMenuSelect: EventEmitter<TreeTableContextMenuSelectEvent> = new EventEmitter<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 @Output() onHeaderCheckboxToggle: EventEmitter<TreeTableHeaderCheckboxToggleEvent> = new EventEmitter<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 @Output() onEditInit: EventEmitter<TreeTableEditEvent> = new EventEmitter<TreeTableEditEvent>();\n /**\n * Callback to invoke when cell edit is completed.\n * @param {TreeTableEditEvent} event - Custom edit event.\n * @group Emits\n */\n @Output() onEditComplete: EventEmitter<TreeTableEditEvent> = new EventEmitter<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 @Output() onEditCancel: EventEmitter<TreeTableEditEvent> = new EventEmitter<TreeTableEditEvent>();\n /**\n * Callback to invoke when selectionKeys are changed.\n * @param {Object} object - updated value of the selectionKeys.\n * @group Emits\n */\n @Output() selectionKeysChange: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('container') containerViewChild: Nullable<ElementRef>;\n\n @ViewChild('resizeHelper') resizeHelperViewChild: Nullable<ElementRef>;\n\n @ViewChild('reorderIndicatorUp') reorderIndicatorUpViewChild: Nullable<ElementRef>;\n\n @ViewChild('reorderIndicatorDown') reorderIndicatorDownViewChild: Nullable<ElementRef>;\n\n @ViewChild('table') tableViewChild: Nullable<ElementRef>;\n\n @ViewChild('scrollableView') scrollableViewChild: Nullable<ElementRef>;\n\n @ViewChild('scrollableFrozenView') scrollableFrozenViewChild: Nullable<ElementRef>;\n\n _value: TreeNode<any>[] | undefined = [];\n\n _virtualRowHeight: number = 28;\n\n _selectionKeys: any;\n\n serializedValue: any[] | undefined | null;\n\n _totalRecords: number = 0;\n\n _multiSortMeta: SortMeta[] | undefined | null;\n\n _sortField: string | undefined | null;\n\n _sortOrder: number = 1;\n\n filteredNodes: Nullable<any[]>;\n\n filterTimeout: any;\n\n colGroupTemplate: Nullable<TemplateRef<any>>;\n\n captionTemplate: Nullable<TemplateRef<any>>;\n\n headerTemplate: Nullable<TemplateRef<any>>;\n\n bodyTemplate: Nullable<TemplateRef<any>>;\n\n footerTemplate: Nullable<TemplateRef<any>>;\n\n summaryTemplate: Nullable<TemplateRef<any>>;\n\n emptyMessageTemplate: Nullable<TemplateRef<any>>;\n\n paginatorLeftTemplate: Nullable<TemplateRef<any>>;\n\n paginatorRightTemplate: Nullable<TemplateRef<any>>;\n\n paginatorDropdownItemTemplate: Nullable<TemplateRef<any>>;\n\n frozenHeaderTemplate: Nullable<TemplateRef<any>>;\n\n frozenBodyTemplate: Nullable<TemplateRef<any>>;\n\n frozenFooterTemplate: Nullable<TemplateRef<any>>;\n\n frozenColGroupTemplate: Nullable<TemplateRef<any>>;\n\n loadingIconTemplate: Nullable<TemplateRef<any>>;\n\n reorderIndicatorUpIconTemplate: Nullable<TemplateRef<any>>;\n\n reorderIndicatorDownIconTemplate: Nullable<TemplateRef<any>>;\n\n sortIconTemplate: Nullable<TemplateRef<any>>;\n\n checkboxIconTemplate: Nullable<TemplateRef<any>>;\n\n headerCheckboxIconTemplate: Nullable<TemplateRef<any>>;\n\n togglerIconTemplate: Nullable<TemplateRef<any>>;\n\n paginatorFirstPageLinkIconTemplate: Nullable<TemplateRef<any>>;\n\n paginatorLastPageLinkIconTemplate: Nullable<TemplateRef<any>>;\n\n paginatorPreviousPageLinkIconTemplate: Nullable<TemplateRef<any>>;\n\n paginatorNextPageLinkIconTemplate: Nullable<TemplateRef<any>>;\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 _selection: any;\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 ngOnInit() {\n super.ngOnInit();\n if (this.lazy && this.lazyLoadOnInit && !this.virtualScroll) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n this.initialized = true;\n }\n\n @ContentChildren(PrimeTemplate) templates: Nullable<QueryList<PrimeTemplate>>;\n\n ngAfterContentInit() {\n (this.templates as QueryList<PrimeTemplate>).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 });\n }\n\n filterService = inject(FilterService);\n\n tableService = inject(TreeTableService);\n\n zone = inject(NgZone);\n\n ngOnChanges(simpleChange: SimpleChanges) {\n super.ngOnChanges(simpleChange);\n if (simpleChange.value) {\n this._value = simpleChange.value.currentValue;\n\n if (!this.lazy) {\n this.totalRecords = this._value ? this._value.length : 0;\n\n if (this.sortMode == 'single' && this.sortField) this.sortSingle();\n else if (this.sortMode == 'multiple' && this.multiSortMeta) this.sortMultiple();\n else if (this.hasFilter())\n //sort already filters\n this._filter();\n }\n\n this.updateSerializedValue();\n this.tableService.onUIUpdate(this.value);\n }\n\n if (simpleChange.sortField) {\n this._sortField = simpleChange.sortField.currentValue;\n\n //avoid triggering lazy load prior to lazy initialization at onInit\n if (!this.lazy || this.initialized) {\n if (this.sortMode === 'single') {\n this.sortSingle();\n }\n }\n }\n\n if (simpleChange.sortOrder) {\n this._sortOrder = simpleChange.sortOrder.currentValue;\n\n //avoid triggering lazy load prior to lazy initialization at onInit\n if (!this.lazy || this.initialized) {\n if (this.sortMode === 'single') {\n this.sortSingle();\n }\n }\n }\n\n if (simpleChange.multiSortMeta) {\n this._multiSortMeta = simpleChange.multiSortMeta.currentValue;\n if (this.sortMode === 'multiple') {\n this.sortMultiple();\n }\n }\n\n if (simpleChange.selection) {\n this._selection = simpleChange.selection.currentValue;\n\n if (!this.preventSelectionSetterPropagation) {\n this.updateselectedKeys();\n this.tableService.onSelectionChange();\n }\n this.preventSelectionSetterPropagation = false;\n }\n }\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 : 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 if (this.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, this.dataKey))] = 1;\n }\n } else {\n this.selectedKeys[String(resolveFieldData((<any>this._selection).data, this.dataKey))] = 1;\n }\n }\n }\n\n onPageChange(event: TreeTablePaginatorState) {\n this.first = <number>event.first;\n this.rows = <number>event.rows;\n\n if (this.lazy) this.onLazyLoad.emit(this.createLazyLoadMetadata());\n else this.serializePageNodes();\n\n this.onPage.emit({\n first: 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 if (this.sortMode === 'single') {\n this._sortOrder = this.sortField === event.field ? this.sortOrder * -1 : this.defaultSortOrder;\n this._sortField = event.field;\n this.sortSingle();\n\n if (this.resetPageOnSort && this.scrollable) {\n this.resetScrollTop();\n }\n }\n if (this.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 = [{ field: <string>event.field, order: sortMeta.order * -1 }];\n\n if (this.resetPageOnSort && this.scrollable) {\n this.resetScrollTop();\n }\n } else {\n sortMeta.order = sortMeta.order * -1;\n }\n } else {\n if (!metaKey || !this.multiSortMeta) {\n this._multiSortMeta = [];\n\n if (this.resetPageOnSort && this.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(this.value);\n\n if (this.hasFilter()) {\n this._filter();\n }\n }\n\n let sortMeta: SortMeta = {\n field: 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 = null;\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(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(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 = null;\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 * <number>result;\n }\n\n getSortMeta(field: string) {\n if (this.multiSortMeta && this.multiSortMeta.length) {\n for (let i = 0; i < this.multiSortMeta.length; i++) {\n if (this.multiSortMeta[i].field === field) {\n return this.multiSortMeta[i];\n }\n }\n }\n\n return null;\n }\n\n isSorted(field: string) {\n if (this.sortMode === 'single') {\n return this.sortField && this.sortField === field;\n } else if (this.sortMode === 'multiple') {\n let sorted = false;\n if (this.multiSortMeta) {\n for (let i = 0; i < this.multiSortMeta.length; i++) {\n if (this.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'] ? 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 if (this.scrollableViewChild) {\n (<any>this.scrollableViewChild).scrollToVirtualIndex(<number>index);\n }\n\n if (this.scrollableFrozenViewChild) {\n (<any>this.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 if (this.scrollableViewChild) {\n (<any>this.scrollableViewChild).scrollTo(options);\n }\n\n if (this.scrollableFrozenViewChild) {\n (<any>this.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.containerViewChild?.nativeElement).left;\n this.lastResizerHelperX = event.pageX - containerLeft + this.containerViewChild?.nativeElement.scrollLeft;\n event.preventDefault();\n }\n\n onColumnResize(event: MouseEvent) {\n let containerLeft = <any>getOffset(this.containerViewChild?.nativeElement).left;\n addClass(this.containerViewChild?.nativeElement, 'p-unselectable-text');\n (<ElementRef>this.resizeHelperViewChild).nativeElement.style.height = this.containerViewChild?.nativeElement.offsetHeight + 'px';\n (<ElementRef>this.resizeHelperViewChild).nativeElement.style.top = 0 + 'px';\n (<ElementRef>this.resizeHelperViewChild).nativeElement.style.left = event.pageX - containerLeft + this.containerViewChild?.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 if (this.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, '.p-treetable-scrollable-body table') || findSingle(scrollableView, '.p-scroller-viewport table');\n let scrollableHeaderTable = <any>findSingle(scrollableView, 'table.p-treetable-scrollable-header-table');\n let scrollableFooterTable = <any>findSingle(scrollableView, 'table.p-treetable-scrollable-footer-table');\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 (this.columnResizeMode === 'expand') {\n if (this.scrollable) {\n let scrollableView = this.findParentScrollableView(column);\n let scrollableBody = <any>findSingle(scrollableView, '.p-treetable-scrollable-body') || findSingle(scrollableView, '.p-scroller-viewport');\n let scrollableHeader = <any>findSingle(scrollableView, '.p-treetable-scrollable-header');\n let scrollableFooter = <any>findSingle(scrollableView, '.p-treetable-scrollable-footer');\n let scrollableBodyTable = <any>findSingle(scrollableView, '.p-treetable-scrollable-body table') || findSingle(scrollableView, '.p-scroller-viewport table');\n let scrollableHeaderTable = <any>findSingle(scrollableView, 'table.p-treetable-scrollable-header-table');\n let scrollableFooterTable = <any>findSingle(scrollableView, 'table.p-treetable-scrollable-footer-table');\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.containerViewChild?.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 (<ElementRef>this.tableViewChild).nativeElement.style.width = this.tableViewChild?.nativeElement.offsetWidth + delta + 'px';\n column.style.width = newColumnWidth + 'px';\n let containerWidth = this.tableViewChild?.nativeElement.style.width;\n (<ElementRef>this.containerViewChild).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 removeClass(this.containerViewChild?.nativeElement, 'p-unselectable-text');\n }\n\n findParentScrollableView(column: any) {\n if (column) {\n let parent = column.parentElement;\n while (parent && !hasClass(parent, 'p-treetable-scrollable-view')) {\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.containerViewChild?.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 reorderArray(<any[]>this.columns, dragIndex, dropIndex);\n\n this.onColReorder.emit({\n dragIndex: dragIndex,\n dropIndex: dropIndex,\n columns: this.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' || hasClass(event.originalEvent.target, 'p-clickable')) {\n return;\n }\n\n if (this.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 let dataKeyValue = this.dataKey ? String(resolveFieldData((<TreeTableNode>rowNode.node).data, this.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 = null;\n this.selectedKeys = {};\n this.selectionChange.emit(null);\n } else {\n let selectionIndex = this.findIndexInSelection(rowNode.node);\n this._selection = this.selection.filter((val: TreeTableNode, i: number) => i != selectionIndex);\n this.selectionChange.emit(this.selection);\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 = rowNode.node;\n this.selectionChange.emit(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 = this.selection || [];\n } else {\n this._selection = [];\n this.selectedKeys = {};\n }\n\n this._selection = [...this.selection, rowNode.node];\n this.selectionChange.emit(this.selection);\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 (this.selectionMode === 'single') {\n if (selected) {\n this._selection = null;\n this.selectedKeys = {};\n this.selectionChange.emit(this.selection);\n this.onNodeUnselect.emit({\n originalEvent: event.originalEvent,\n node: <TreeTableNode>rowNode.node,\n type: 'row'\n });\n } else {\n this._selection = rowNode.node;\n this.selectionChange.emit(this.selection);\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 (this.selectionMode === 'multiple') {\n if (selected) {\n let selectionIndex = this.findIndexInSelection(rowNode.node);\n this._selection = this.selection.filter((val: TreeTableNode, i: number) => i != selectionIndex);\n this.selectionChange.emit(this.selection);\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 = this.selection ? [...this.selection, rowNode.node] : [rowNode.node];\n this.selectionChange.emit(this.selection);\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 if (this.contextMenuSelectionMode === 'separate') {\n this.contextMenuSelection = node;\n this.contextMenuSelectionChange.emit(node);\n this.onContextMenuSelect.emit({ originalEvent: event.originalEvent, node: node });\n this.contextMenu.show(event.originalEvent);\n this.tableService.onContextMenu(node);\n } else if (this.contextMenuSelectionMode === 'joint') {\n this.preventSelectionSetterPropagation = true;\n let selected = this.isSelected(node);\n let dataKeyValue = this.dataKey ? String(resolveFieldData(node.data, this.dataKey)) : null;\n\n if (!selected) {\n if (this.isSingleSelectionMode()) {\n this.selection = node;\n this.selectionChange.emit(node);\n } else if (this.isMultipleSelectionMode()) {\n this.selection = [node];\n this.selectionChange.emit(this.selection);\n }\n\n if (dataKeyValue) {\n this.selectedKeys[dataKeyValue] = 1;\n }\n }\n\n this.contextMenu.show(event.originalEvent);\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 = 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.selectionChange.emit(this.selection);\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.selectionChange.emit(this.selection);\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 = check && data ? data.slice() : [];\n\n this.toggleAll(check);\n\n if (!check) {\n this._selection = [];\n this.selectedKeys = {};\n }\n\n this.preventSelectionSetterPropagation = true;\n this.selectionChange.emit(this._selection);\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 this.selectionKeysChange.emit(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 let dataKeyValue = this.dataKey ? String(resolveFieldData(node.data, this.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 = [...(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 = 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 let dataKeyValue = this.dataKey ? String(resolveFieldData(node.data, this.dataKey)) : null;\n\n if (select && index == -1) {\n this._selection = [...(this.selection || []), node];\n if (dataKeyValue) {\n this.selectedKeys[dataKeyValue] = 1;\n }\n } else if (!select && index > -1) {\n this._selection = 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 if (this.dataKey) {\n if (node.hasOwnProperty('checked')) {\n return node['checked'];\n } else {\n return this.selectedKeys[resolveFieldData(node.data, this.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 return resolveFieldData(node, this.dataKey) || resolveFieldData(node?.data, this.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 this.selectionKeysChange.emit(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 if (!this.value) {\n return;\n }\n\n if (!this.hasFilter()) {\n this.filteredNodes = null;\n if (this.paginator) {\n this.totalRecords = this.value ? this.value.length : 0;\n }\n } else {\n let globalFilterFieldsArray;\n if (this.filters['global']) {\n if (!this.columns && !this.globalFilterFields) throw new Error('Global filtering requires dynamic columns or globalFilterFields to be defined.');\n else globalFilterFieldsArray = this.globalFilterFields || this.columns;\n }\n\n this.filteredNodes = [];\n const isStrictMode = this.filterMode === 'strict';\n let isValueChanged = false;\n\n for (let node of this.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 = 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 = this.filteredNodes ? this.filteredNodes.length : this.value ? this.value.length : 0;\n }\n }\n this.cd.markForCheck();\n }\n\n this.first = 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 = null;\n this._sortOrder = 1;\n this._multiSortMeta = null;\n this.tableService.onSort(null);\n\n this.filteredNodes = null;\n this.filters = {};\n\n this.first = 0;\n\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n } else {\n this.totalRecords = this._value ? this._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 removeClass(this.editingCell, 'p-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 ngOnDestroy() {\n this.unbindDocumentEditListener();\n this.editingCell = null;\n this.editingCellField = null;\n this.editingCellData = null;\n this.initialized = null;\n\n super.ngOnDestroy();\n }\n}\n\n@Component({\n selector: '[pTreeTableBody]',\n standalone: false,\n template: `\n <ng-template ngFor let-serializedNode let-rowIndex=\"index\" [ngForOf]=\"serializedNodes || tt.serializedValue\" [ngForTrackBy]=\"tt.rowTrackBy\">\n <ng-container *ngIf=\"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 </ng-container>\n </ng-template>\n <ng-container *ngIf=\"tt.isEmpty()\">\n <ng-container *ngTemplateOutlet=\"tt.emptyMessageTemplate; context: { $implicit: columns, frozen: frozen }\"></ng-container>\n </ng-container>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class TTBody {\n @Input('pTreeTableBody') columns: any[] | undefined;\n\n @Input('pTreeTableBodyTemplate') template: Nullable<TemplateRef<any>>;\n\n @Input({ transform: booleanAttribute }) frozen: boolean | undefined;\n\n @Input() serializedNodes: any;\n\n @Input() scrollerOptions: any;\n\n subscription: Subscription;\n\n constructor(\n public tt: TreeTable,\n public treeTableService: TreeTableService,\n public cd: ChangeDetectorRef\n ) {\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 ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Component({\n selector: '[ttScrollableView]',\n standalone: false,\n template: `\n <div #scrollHeader class=\"p-treetable-scrollable-header\">\n <div #scrollHeaderBox class=\"p-treetable-scrollable-header-box\">\n <table class=\"p-treetable-scrollable-header-table\" [ngClass]=\"tt.tableStyleClass\" [ngStyle]=\"tt.tableStyle\">\n <ng-container *ngTemplateOutlet=\"frozen ? tt.frozenColGroupTemplate || tt.colGroupTemplate : tt.colGroupTemplate; context: { $implicit: columns }\"></ng-container>\n <thead role=\"rowgroup\" class=\"p-treetable-thead\">\n <ng-container *ngTemplateOutlet=\"frozen ? tt.frozenHeaderTemplate || tt.headerTemplate : tt.headerTemplate; context: { $implicit: columns }\"></ng-container>\n </thead>\n </table>\n </div>\n </div>\n\n <p-scroller\n *ngIf=\"tt.virtualScroll\"\n #scroller\n [items]=\"tt.serializedValue\"\n styleClass=\"p-treetable-scrollable-body\"\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 >\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 <ng-container *ngIf=\"loaderTemplate\">\n <ng-template #loader let-scrollerOptions=\"options\">\n <ng-container *ngTemplateOutlet=\"loaderTemplate; context: { options: scrollerOptions }\"></ng-container>\n </ng-template>\n </ng-container>\n </p-scroller>\n <ng-container *ngIf=\"!tt.virtualScroll\">\n <div\n #scrollBody\n class=\"p-treetable-scrollable-body\"\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 </ng-container>\n\n <ng-template #buildInItems let-items let-scrollerOptions=\"options\">\n <table role=\"table\" #scrollTable [class]=\"tt.tableStyleClass\" [ngClass]=\"scrollerOptions.contentStyleClass\" [ngStyle]=\"tt.tableStyle\" [style]=\"scrollerOptions.contentStyle\">\n <ng-container *ngTemplateOutlet=\"frozen ? tt.frozenColGroupTemplate || tt.colGroupTemplate : tt.colGroupTemplate; context: { $implicit: columns }\"></ng-container>\n <tbody role=\"rowgroup\" class=\"p-treetable-tbody\" [pTreeTableBody]=\"columns\" [pTreeTableBodyTemplate]=\"frozen ? tt.frozenBodyTemplate || tt.bodyTemplate : tt.bodyTemplate\" [serializedNodes]=\"items\" [frozen]=\"frozen\"></tbody>\n </table>\n <div #scrollableAligner style=\"background-color:transparent\" *ngIf=\"frozen\"></div>\n </ng-template>\n\n <div #scrollFooter *ngIf=\"tt.footerTemplate\" class=\"p-treetable-scrollable-footer\">\n <div #scrollFooterBox class=\"p-treetable-scrollable-footer-box\">\n <table class=\"p-treetable-scrollable-footer-table\" [ngClass]=\"tt.tableStyleClass\" [ngStyle]=\"tt.tableStyle\">\n <ng-container *ngTemplateOutlet=\"frozen ? tt.frozenColGroupTemplate || tt.colGroupTemplate : tt.colGroupTemplate; context: { $implicit: columns }\"></ng-container>\n <tfoot role=\"rowgroup\" class=\"p-treetable-tfoot\">\n <ng-container *ngTemplateOutlet=\"frozen ? tt.frozenFooterTemplate || tt.footerTemplate : tt.footerTemplate; context: { $implicit: columns }\"></ng-container>\n </tfoot>\n </table>\n </div>\n </div>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class TTScrollableView implements AfterViewInit, OnDestroy {\n @Input('ttScrollableView') columns: any[] | undefined;\n\n @Input({ transform: booleanAttribute }) frozen: boolean | undefined;\n\n @ViewChild('scrollHeader') scrollHeaderViewChild: Nullable<ElementRef>;\n\n @ViewChild('scrollHeaderBox') scrollHeaderBoxViewChild: Nullable<ElementRef>;\n\n @ViewChild('scrollBody') scrollBodyViewChild: Nullable<ElementRef>;\n\n @ViewChild('scrollTable') scrollTableViewChild: Nullable<ElementRef>;\n\n @ViewChild('loadingTable') scrollLoadingTableViewChild: Nullable<ElementRef>;\n\n @ViewChild('scrollFooter') scrollFooterViewChild: Nullable<ElementRef>;\n\n @ViewChild('scrollFooterBox') scrollFooterBoxViewChild: Nullable<ElementRef>;\n\n @ViewChild('scrollableAligner') scrollableAlignerViewChild: Nullable<ElementRef>;\n\n @ViewChild('scroller') scroller: Nullable<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 _scrollHeight: string | undefined | null;\n\n preventBodyScrollPropagation: boolean | undefined;\n\n @Input() get scrollHeight(): string | undefined | null {\n return this._scrollHeight;\n }\n set scrollHeight(val: string | undefined | null) {\n this._scrollHeight = val;\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 @Inject(PLATFORM_ID) private platformId: any,\n private renderer: Renderer2,\n public tt: TreeTable,\n public el: ElementRef,\n public zone: NgZone\n ) {}\n\n ngAfterViewInit() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.frozen) {\n if (this.tt.frozenColumns || this.tt.frozenBodyTemplate) {\n addClass(this.el.nativeElement, 'p-treetable-unfrozen-view');\n }\n\n let frozenView = this.el.nativeElement.previousElementSibling;\n if (frozenView) {\n if (this.tt.virtualScroll) this.frozenSiblingBody = findSingle(frozenView, '.p-scroller-viewport');\n else this.frozenSiblingBody = findSingle(frozenView, '.p-treetable-scrollable-body');\n }\n\n if (this.scrollHeight) {\n let scrollBarWidth = calculateScrollbarWidth();\n this.scrollHeaderBoxViewChild.nativeElement.style.paddingRight = scrollBarWidth + 'px';\n\n if (this.scrollFooterBoxViewChild && this.scrollFooterBoxViewChild.nativeElement) {\n this.scrollFooterBoxViewChild.nativeElement.style.paddingRight = scrollBarWidth + 'px';\n }\n }\n } else {\n if (this.scrollableAlignerViewChild && this.scrollableAlignerViewChild.nativeElement) {\n this.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 if (this.scrollHeaderViewChild && this.scrollHeaderViewChild.nativeElement) {\n this.headerScrollListener = this.renderer.listen(this.scrollHeaderBoxViewChild?.nativeElement, 'scroll', this.onHeaderScroll.bind(this));\n }\n\n if (this.scrollFooterViewChild && this.scrollFooterViewChild.nativeElement) {\n this.footerScrollListener = this.renderer.listen(this.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 if (this.scrollHeaderViewChild && this.scrollHeaderViewChild.nativeElement) {\n if (this.headerScrollListener) {\n this.headerScrollListener();\n this.headerScrollListener = null;\n }\n }\n\n if (this.scrollFooterViewChild && this.scrollFooterViewChild.nativeElement) {\n if (this.footerScrollListener) {\n this.footerScrollListener();\n this.footerScrollListener = null;\n }\n }\n\n if (this.scrollBodyViewChild && this.scrollBodyViewChild.nativeElement) {\n if (this.bodyScrollListener) {\n this.bodyScrollListener();\n this.bodyScrollListener = null;\n }\n }\n\n if (this.scroller && this.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 if (this.scrollFooterViewChild && this.scrollFooterViewChild.nativeElement) {\n this.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 if (this.scrollHeaderViewChild && this.scrollHeaderViewChild.nativeElement) {\n this.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 if (this.scrollHeaderViewChild && this.scrollHeaderViewChild.nativeElement) {\n (this.scrollHeaderBoxViewChild as ElementRef).nativeElement.style.marginLeft = -1 * event.target.scrollLeft + 'px';\n }\n\n if (this.scrollFooterViewChild && this.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 if (this.scroller) {\n this.scroller.scrollToIndex(index);\n }\n }\n\n scrollTo(options: ScrollToOptions): void {\n if (this.scroller) {\n this.scroller.scrollTo(options);\n } else {\n if (this.scrollBodyViewChild?.nativeElement.scrollTo) {\n this.scrollBodyViewChild.nativeElement.scrollTo(options);\n } else {\n (this.scrollBodyViewChild as ElementRef).nativeElement.scrollLeft = options.left;\n (this.scrollBodyViewChild as ElementRef).nativeElement.scrollTop = options.top;\n }\n }\n }\n\n ngOnDestroy() {\n this.unbindEvents();\n\n this.frozenSiblingBody = null;\n }\n}\n\n@Directive({\n selector: '[ttSortableColumn]',\n standalone: false,\n host: {\n '[class.p-sortable-column]': 'isEnabled()',\n '[class.p-treetable-column-sorted]': 'sorted',\n '[attr.tabindex]': 'isEnabled() ? \"0\" : null',\n '[attr.role]': '\"columnheader\"',\n '[attr.aria-sort]': 'ariaSorted'\n }\n})\nexport class TTSortableColumn implements OnInit, OnDestroy {\n @Input('ttSortableColumn') field: string | undefined;\n\n @Input({ transform: booleanAttribute }) ttSortableColumnDisabled: boolean | undefined;\n\n sorted: boolean | undefined;\n\n subscription: Subscription | undefined;\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 if (this.isEnabled()) {\n this.subscription = this.tt.tableService.sortSource$.subscribe((sortMeta) => {\n this.updateSortState();\n });\n }\n }\n\n ngOnInit() {\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 @HostListener('click', ['$event'])\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 @HostListener('keydown.enter', ['$event'])\n onEnterKey(event: MouseEvent) {\n this.onClick(event);\n }\n\n isEnabled() {\n return this.ttSortableColumnDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Component({\n selector: 'p-treeTableSortIcon',\n standalone: false,\n template: ` <ng-container *ngIf=\"!tt.sortIconTemplate\">\n <SortAltIcon [styleClass]=\"'p-sortable-column-icon'\" *ngIf=\"sortOrder === 0\" />\n <SortAmountUpAltIcon [styleClass]=\"'p-sortable-column-icon'\" *ngIf=\"sortOrder === 1\" />\n <SortAmountDownIcon [styleClass]=\"'p-sortable-column-icon'\" *ngIf=\"sortOrder === -1\" />\n </ng-container>\n <span *ngIf=\"tt.sortIconTemplate\" class=\"p-sortable-column-icon\">\n <ng-template *ngTemplateOutlet=\"tt.sortIconTemplate; context: { $implicit: sortOrder }\"></ng-template>\n </span>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TTSortIcon implements OnInit, OnDestroy {\n @Input() field: string | undefined;\n\n @Input() ariaLabelDesc: string | undefined;\n\n @Input() ariaLabelAsc: string | undefined;\n\n subscription: Subscription | undefined;\n\n sortOrder: number | undefined;\n\n constructor(\n public tt: TreeTable,\n public cd: ChangeDetectorRef\n ) {\n this.subscription = this.tt.tableService.sortSource$.subscribe((sortMeta) => {\n this.updateSortState();\n this.cd.markForCheck();\n });\n }\n\n ngOnInit() {\n this.updateSortState();\n }\n\n onClick(event: Event) {\n event.preventDefault();\n }\n\n updateSortState() {\n if (this.tt.sortMode === 'single') {\n this.sortOrder = this.tt.isSorted(<string>this.field) ? this.tt.sortOrder : 0;\n } else if (this.tt.sortMode === 'multiple') {\n let sortMeta = this.tt.getSortMeta(<string>this.field);\n this.sortOrder = sortMeta ? sortMeta.order : 0;\n }\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Directive({\n selector: '[ttResizableColumn]',\n standalone: false\n})\nexport class TTResizableColumn implements AfterViewInit, OnDestroy {\n @Input({ transform: booleanAttribute }) ttResizableColumnDisabled: boolean | undefined;\n\n resizer: HTMLSpanElement | undefined;\n\n resizerMouseDownListener: VoidListener;\n\n documentMouseMoveListener: VoidListener;\n\n documentMouseUpListener: VoidListener;\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n @Inject(PLATFORM_ID) private platformId: any,\n private renderer: Renderer2,\n public tt: TreeTable,\n public el: ElementRef,\n public zone: NgZone\n ) {}\n\n ngAfterViewInit() {\n if (isPlatformBrowser(this.platformId)) {\n if (this.isEnabled()) {\n addClass(this.el.nativeElement, 'p-resizable-column');\n this.resizer = this.renderer.createElement('span');\n this.renderer.addClass(this.resizer, 'p-column-resizer');\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 ngOnDestroy() {\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})\nexport class TTReorderableColumn implements AfterViewInit, OnDestroy {\n @Input({ transform: booleanAttribute }) ttReorderableColumnDisabled: boolean | undefined;\n\n dragStartListener: VoidListener;\n\n dragOverListener: VoidListener;\n\n dragEnterListener: VoidListener;\n\n dragLeaveListener: VoidListener;\n\n mouseDownListener: VoidListener;\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n @Inject(PLATFORM_ID) private platformId: any,\n private renderer: Renderer2,\n public tt: TreeTable,\n public el: ElementRef,\n public zone: NgZone\n ) {}\n\n ngAfterViewInit() {\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' || hasClass(event.target, 'p-column-resizer')) 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 @HostListener('drop', ['$event'])\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 ngOnDestroy() {\n this.unbindEvents();\n }\n}\n\n@Directive({\n selector: '[ttSelectableRow]',\n standalone: false,\n host: {\n '[class.p-treetable-row-selected]': 'selected',\n '[attr.aria-checked]': 'selected'\n }\n})\nexport class TTSelectableRow implements OnInit, OnDestroy {\n @Input('ttSelectableRow') rowNode: any;\n\n @Input({ transform: booleanAttribute }) ttSelectableRowDisabled: boolean | undefined;\n\n selected: boolean | undefined;\n\n subscription: Subscription | undefined;\n\n constructor(\n public tt: TreeTable,\n public tableService: TreeTableService\n ) {\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 ngOnInit() {\n if (this.isEnabled()) {\n this.selected = this.tt.isSelected(this.rowNode.node);\n }\n }\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n if (this.isEnabled()) {\n this.tt.handleRowClick({\n originalEvent: event,\n rowNode: this.rowNode\n });\n }\n }\n\n @HostListener('keydown', ['$event'])\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 @HostListener('touchend', ['$event'])\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 ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Directive({\n selector: '[ttSelectableRowDblClick]',\n standalone: false,\n host: {\n '[class.p-treetable-row-selected]': 'selected'\n }\n})\nexport class TTSelectableRowDblClick implements OnInit, OnDestroy {\n @Input('ttSelectableRowDblClick') rowNode: any;\n\n @Input({ transform: booleanAttribute }) ttSelectableRowDisabled: boolean | undefined;\n\n selected: boolean | undefined;\n\n subscription: Subscription | undefined;\n\n constructor(\n public tt: TreeTable,\n public tableService: TreeTableService\n ) {\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 ngOnInit() {\n if (this.isEnabled()) {\n this.selected = this.tt.isSelected(this.rowNode.node);\n }\n }\n\n @HostListener('dblclick', ['$event'])\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 ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Directive({\n selector: '[ttContextMenuRow]',\n standalone: false,\n host: {\n '[class.p-treetable-contextmenu-row-selected]': 'selected',\n '[attr.tabindex]': 'isEnabled() ? 0 : undefined'\n }\n})\nexport class TTContextMenuRow {\n @Input('ttContextMenuRow') rowNode: any | undefined;\n\n @Input({ transform: booleanAttribute }) ttContextMenuRowDisabled: boolean | undefined;\n\n selected: boolean | undefined;\n\n subscription: Subscription | undefined;\n\n constructor(\n public tt: TreeTable,\n public tableService: TreeTableService,\n private el: ElementRef\n ) {\n if (this.isEnabled()) {\n this.subscription = this.tt.tableService.contextMenuSource$.subscribe((node) => {\n this.selected = this.tt.equals(this.rowNode.node, node);\n });\n }\n }\n\n @HostListener('contextmenu', ['$event'])\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 ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Component({\n selector: 'p-treeTableCheckbox',\n standalone: false,\n template: `\n <p-checkbox [ngModel]=\"checked\" (onChange)=\"onClick($event)\" [binary]=\"true\" [indeterminate]=\"partialChecked\" styleClass=\"p-treetable-node-checkbox\" [tabIndex]=\"-1\">\n <ng-container *ngIf=\"tt.checkboxIconTemplate\">\n <ng-template pTemplate=\"icon\">\n <ng-template *ngTemplateOutlet=\"tt.checkboxIconTemplate; context: { $implicit: checked, partialSelected: partialChecked }\"></ng-template>\n </ng-template>\n </ng-container>\n </p-checkbox>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TTCheckbox {\n @Input({ transform: booleanAttribute }) disabled: boolean | undefined;\n\n @Input('value') rowNode: any;\n\n checked: boolean | undefined;\n\n partialChecked: boolean | undefined;\n\n focused: boolean | undefined;\n\n subscription: Subscription | undefined;\n\n constructor(\n public tt: TreeTable,\n public tableService: TreeTableService,\n public cd: ChangeDetectorRef\n ) {\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 ngOnInit() {\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 ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Component({\n selector: 'p-treeTableHeaderCheckbox',\n standalone: false,\n template: `\n <p-checkbox [ngModel]=\"checked\" (onChange)=\"onClick($event)\" [binary]=\"true\" [disabled]=\"!tt.value || tt.value.length === 0\">\n <ng-container *ngIf=\"tt.headerCheckboxIconTemplate\">\n <ng-template pTemplate=\"icon\">\n <ng-template *ngTemplateOutlet=\"tt.headerCheckboxIconTemplate; context: { $implicit: checked }\"></ng-template>\n </ng-template>\n </ng-container>\n </p-checkbox>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TTHeaderCheckbox {\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 private cd: ChangeDetectorRef\n ) {\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 ngOnInit() {\n this.checked = this.updateCheckedState();\n }\n\n onClick(event: Event) {\n if ((this.tt.value || this.tt.filteredNodes) && (this.tt.value.length > 0 || this.tt.filteredNodes.length > 0)) {\n this.tt.toggleNodesWithCheckbox(event, !this.checked);\n }\n\n clearSelection();\n }\n\n ngOnDestroy() {\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})\nexport class TTEditableColumn implements AfterViewInit {\n @Input('ttEditableColumn') data: any;\n\n @Input('ttEditableColumnField') field: any;\n\n @Input({ transform: booleanAttribute }) ttEditableColumnDisabled: boolean | undefined;\n\n constructor(\n public tt: TreeTable,\n public el: ElementRef,\n public zone: NgZone\n ) {}\n\n ngAfterViewInit() {\n if (this.isEnabled()) {\n addClass(this.el.nativeElement, 'p-editable-column');\n }\n }\n\n @HostListener('click', ['$event'])\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 removeClass(this.tt.editingCell, 'p-cell-editing');\n this.openCell();\n }\n } else {\n this.openCell();\n }\n }\n }\n\n openCell() {\n this.tt.updateEditingCell(this.el.nativeElement, this.data, this.field);\n addClass(this.el.nativeElement, 'p-cell-editing');\n this.tt.onEditInit.emit({ field: this.field, data: this.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 removeClass(this.tt.editingCell, 'p-checkbox-icon');\n this.tt.editingCell = null;\n this.tt.unbindDocumentEditListener();\n }\n\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent) {\n if (this.isEnabled()) {\n //enter\n if (event.keyCode == 13 && !event.shiftKey) {\n if (this.tt.isEditingCellValid()) {\n removeClass(this.tt.editingCell, 'p-cell-editing');\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 removeClass(this.tt.editingCell, 'p-cell-editing');\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 && !hasClass(cell, 'p-cell-editing')) {\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 invokeElementMethod(targetCell, '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 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 (hasClass(prevCell, 'p-editable-column')) 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 (hasClass(nextCell, 'p-editable-column')) 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: 'p-treeTableCellEditor, p-treetablecelleditor, p-treetable-cell-editor',\n standalone: false,\n template: `\n <ng-container *ngIf=\"tt.editingCell === editableColumn.el.nativeElement\">\n <ng-container *ngTemplateOutlet=\"inputTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!tt.editingCell || tt.editingCell !== editableColumn.el.nativeElement\">\n <ng-container *ngTemplateOutlet=\"outputTemplate\"></ng-container>\n </ng-container>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class TreeTableCellEditor extends BaseComponent implements AfterContentInit {\n @ContentChildren(PrimeTemplate) templates: Nullable<QueryList<PrimeTemplate>>;\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 ngAfterContentInit() {\n (this.templates as QueryList<PrimeTemplate>).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]': `'p-element ' + styleClass`,\n '[attr.tabindex]': \"'0'\",\n '[attr.aria-expanded]': 'expanded',\n '[attr.aria-level]': 'level',\n '[attr.data-pc-section]': 'row',\n '[attr.role]': 'row'\n }\n})\nexport class TTRow {\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 @Input('ttRow') rowNode: any;\n\n constructor(\n public tt: TreeTable,\n public el: ElementRef,\n public zone: NgZone\n ) {}\n\n @HostListener('keydown', ['$event'])\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.containerViewChild?.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.containerViewChild?.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.containerViewChild?.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-p-highlight') || row.getAttribute('aria-checked') === 'true');\n rows.forEach((row: any) => {\n row.tabIndex = -1;\n });\n\n if (hasSelectedRow) {\n const selectedNodes = rows.filter((node) => getAttribute(node, 'data-p-highlight') || node.getAttribute('aria-checked') === '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 this.rowNode.node['expanded'] = true;\n\n this.tt.updateSerializedValue();\n this.tt.tableService.onUIUpdate(this.tt.value);\n this.rowNode.node['children'] ? this.restoreFocus(this.tt.toggleRowIndex + 1) : this.restoreFocus();\n\n this.tt.onNodeExpand.emit({\n originalEvent: event,\n node: this.rowNode.node\n });\n }\n\n collapse(event: Event) {\n this.rowNode.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: this.rowNode.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.containerViewChild?.nativeElement;\n const row = <any>findSingle(container, '.p-treetable-tbody').children[<number>index || this.tt.toggleRowIndex];\n const rows = [...find(container, 'tr')];\n\n rows &&\n rows.forEach((r: any) => {\n if (!row.isSameNode(r)) {\n r.tabIndex = -1;\n }\n });\n\n if (row) {\n row.tabIndex = 0;\n row.focus();\n }\n }, 25);\n });\n }\n}\n\n@Component({\n selector: 'p-treeTableToggler, p-treetabletoggler, p-treetable-toggler',\n standalone: false,\n template: `\n <button\n type=\"button\"\n class=\"p-treetable-toggler\"\n (click)=\"onClick($event)\"\n tabindex=\"-1\"\n pRipple\n [style.visibility]=\"rowNode.node.leaf === false || (rowNode.node.children && rowNode.node.children.length) ? 'visible' : 'hidden'\"\n [style.marginLeft]=\"rowNode.level * 16 + 'px'\"\n [attr.data-pc-section]=\"'rowtoggler'\"\n [attr.data-pc-group-section]=\"'rowactionbutton'\"\n [attr.aria-label]=\"toggleButtonAriaLabel\"\n >\n <ng-container *ngIf=\"!tt.togglerIconTemplate\">\n <ChevronDownIcon *ngIf=\"rowNode.node.expanded\" [attr.aria-hidden]=\"true\" />\n <ChevronRightIcon *ngIf=\"!rowNode.node.expanded\" [attr.aria-hidden]=\"true\" />\n </ng-container>\n <ng-template *ngTemplateOutlet=\"tt.togglerIconTemplate; context: { $implicit: rowNode.node.expanded }\"></ng-template>\n </button>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class TreeTableToggler extends BaseComponent {\n @Input() rowNode: any;\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 this.rowNode.node.expanded = !this.rowNode.node.expanded;\n\n if (this.rowNode.node.expanded) {\n this.tt.onNodeExpand.emit({\n originalEvent: event,\n node: this.rowNode.node\n });\n } else {\n this.tt.onNodeCollapse.emit({\n originalEvent: event,\n node: this.rowNode.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 CheckIcon,\n MinusIcon,\n ChevronDownIcon,\n ChevronRightIcon,\n Checkbox,\n SharedModule,\n FormsModule\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"primeng-treetable.mjs","sources":["../../src/treetable/style/treetablestyle.ts","../../src/treetable/treetable.ts","../../src/treetable/primeng-treetable.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n/* For PrimeNG */\n.p-treetable {\n position: relative;\n}\n\n.p-treetable table {\n border-collapse: collapse;\n width: 100%;\n table-layout: fixed;\n}\n\n.p-treetable .p-sortable-column {\n cursor: pointer;\n user-select: none;\n}\n\n.p-treetable .p-sortable-column .p-column-title,\n.p-treetable .p-sortable-column .p-sortable-column-icon,\n.p-treetable .p-sortable-column .p-sortable-column-badge {\n vertical-align: middle;\n}\n\n.p-treetable .p-sortable-column .p-sortable-column-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.p-treetable-auto-layout>.p-treetable-wrapper {\n overflow-x: auto;\n}\n\n.p-treetable-auto-layout>.p-treetable-wrapper>table {\n table-layout: auto;\n}\n\n.p-treetable-hoverable-rows .p-treetable-tbody>tr {\n cursor: pointer;\n}\n\n.p-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.p-treetable-scrollable-wrapper {\n position: relative;\n}\n\n.p-treetable-scrollable-header,\n.p-treetable-scrollable-footer {\n overflow: hidden;\n flex-shrink: 0;\n}\n\n.p-treetable-scrollable-body {\n overflow: auto;\n position: relative;\n}\n\n.p-treetable-virtual-table {\n position: absolute;\n}\n\n/* Frozen Columns */\n.p-treetable-frozen-view .p-treetable-scrollable-body {\n overflow: hidden;\n}\n\n.p-treetable-frozen-view>.p-treetable-scrollable-body>table>.p-treetable-tbody>tr>td:last-child {\n border-right: 0 none;\n}\n\n.p-treetable-unfrozen-view {\n position: absolute;\n top: 0;\n}\n\n/* Flex Scrollable */\n.p-treetable-flex-scrollable {\n display: flex;\n flex-direction: column;\n flex: 1;\n height: 100%;\n}\n\n.p-treetable-flex-scrollable .p-treetable-scrollable-wrapper,\n.p-treetable-flex-scrollable .p-treetable-scrollable-view {\n display: flex;\n flex-direction: column;\n flex: 1;\n height: 100%;\n}\n\n.p-treetable-flex-scrollable .p-treetable-virtual-scrollable-body {\n flex: 1;\n}\n\n/* Resizable */\n.p-treetable-resizable>.p-treetable-wrapper {\n overflow-x: auto;\n}\n\n.p-treetable-resizable .p-treetable-thead>tr>th,\n.p-treetable-resizable .p-treetable-tfoot>tr>td,\n.p-treetable-resizable .p-treetable-tbody>tr>td {\n overflow: hidden;\n}\n\n.p-treetable-resizable .p-resizable-column {\n background-clip: padding-box;\n position: relative;\n}\n\n.p-treetable-resizable-fit .p-resizable-column:last-child .p-column-resizer {\n display: none;\n}\n\n.p-treetable .p-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.p-treetable .p-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.p-treetable .p-row-editor-init,\n.p-treetable .p-row-editor-save,\n.p-treetable .p-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.p-treetable-reorder-indicator-up,\n.p-treetable-reorder-indicator-down {\n position: absolute;\n display: none;\n}\n\n[ttReorderableColumn] {\n cursor: move;\n}\n\n/* Loader */\n.p-treetable-mask {\n position: absolute !important;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 2;\n}\n\n.p-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.p-treetable .p-scroller-loading {\n transform: none !important;\n min-height: 0;\n position: sticky;\n top: 0;\n left: 0;\n}\n\n.p-treetable .p-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.p-treetable .p-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.p-treetable .p-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.p-treetable .p-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.p-treetable .p-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.p-treetable .p-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.p-treetable .p-sortable-column {\n cursor: pointer;\n user-select: none;\n outline-color: transparent;\n vertical-align: middle;\n}\n\n.p-treetable .p-sortable-column .p-sortable-column-icon {\n color: ${dt('treetable.sort.icon.color')};\n transition: color ${dt('treetable.transition.duration')};\n}\n\n\n.p-treetable .p-sortable-column:not(.p-treetable-column-sorted):hover {\n background: ${dt('treetable.header.cell.hover.background')};\n color: ${dt('treetable.header.cell.hover.color')};\n}\n\n.p-treetable .p-sortable-column:not(.p-treetable-column-sorted):hover .p-sortable-column-icon {\n color: ${dt('treetable.sort.icon.hover.color')};\n}\n\n.p-treetable .p-sortable-column.p-treetable-column-sorted {\n background: ${dt('treetable.header.cell.selected.background')};\n color: ${dt('treetable.header.cell.selected.color')};\n}\n\n.p-treetable .p-sortable-column.p-treetable-column-sorted .p-sortable-column-icon {\n color: ${dt('treetable.header.cell.selected.color')};\n}\n\n.p-treetable .p-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.p-treetable-hoverable .p-treetable-selectable-row {\n cursor: pointer;\n}\n\n.p-treetable .p-treetable-tbody > tr {\n outline-color: transparent;\n background: ${dt('treetable.row.background')};\n color: ${dt('treetable.row.color')};\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.p-treetable .p-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.p-treetable .p-treetable-tbody>tr>td .p-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.p-treetable .p-treetable-tbody>tr>td .p-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.p-treetable .p-treetable-tbody>tr>tr.treetable-row-selected .p-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.p-treetable .p-treetable-tbody>tr>td .p-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.p-treetable .p-treetable-tbody>tr.p-treetable-row-selected {\n background: ${dt('treetable.row.selected.background')};\n color: ${dt('treetable.row.selected.color')};\n}\n\n.p-treetable-tbody > tr:focus-visible,\n.p-treetable-tbody > tr.p-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.p-treetable .p-treetable-tbody>tr.p-treetable-row-selected .p-treetable-toggler {\n color: inherit;\n}\n\n.p-treetable .p-treetable-tbody>tr.p-treetable-row-selected .p-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.p-treetable.p-treetable-hoverable-rows .p-treetable-tbody>tr:not(.p-treetable-row-selected):hover {\n background: ${dt('treetable.row.hover.background')};\n color: ${dt('treetable.row.hover.color')};\n}\n\n.p-treetable.p-treetable-gridlines .p-datatable-header {\n border-width: 1px 1px 0 1px;\n}\n\n.p-treetable.p-treetable-gridlines .p-treetable-footer {\n border-width: 0 1px 1px 1px;\n}\n\n.p-treetable.p-treetable-gridlines .p-treetable-top {\n border-width: 0 1px 0 1px;\n}\n\n.p-treetable.p-treetable-gridlines .p-treetable-bottom {\n border-width: 0 1px 1px 1px;\n}\n\n.p-treetable.p-treetable-gridlines .p-treetable-thead>tr>th {\n border-width: 1px;\n}\n\n.p-treetable.p-treetable-gridlines .p-treetable-tbody>tr>td {\n border-width: 1px;\n}\n\n.p-treetable.p-treetable-gridlines .p-treetable-tfoot>tr>td {\n border-width: 1px;\n}\n\n.p-treetable.p-treetable-sm .p-treetable-header {\n padding: 0.65625rem 0.875rem;\n}\n\n.p-treetable.p-treetable-sm .p-treetable-thead>tr>th {\n padding: 0.375rem 0.5rem;\n}\n\n.p-treetable.p-treetable-sm .p-treetable-tbody>tr>td {\n padding: 0.375rem 0.5rem;\n}\n\n.p-treetable.p-treetable-sm .p-treetable-tfoot>tr>td {\n padding: 0.375rem 0.5rem;\n}\n\n.p-treetable.p-treetable-sm .p-treetable-footer {\n padding: 0.375rem 0.5rem;\n}\n\n.p-treetable.p-treetable-lg .p-treetable-header {\n padding: 0.9375rem 1.25rem;\n}\n\n.p-treetable.p-treetable-lg .p-treetable-thead>tr>th {\n padding: 0.9375rem 1.25rem;\n}\n\n.p-treetable.p-treetable-lg .p-treetable-tbody>tr>td {\n padding: 0.9375rem 1.25rem;\n}\n\n.p-treetable.p-treetable-lg .p-treetable-tfoot>tr>td {\n padding: 0.9375rem 1.25rem;\n}\n\n.p-treetable.p-treetable-lg .p-treetable-footer {\n padding: 0.9375rem 1.25rem;\n}\n\np-treetabletoggler + p-treetablecheckbox .p-checkbox {\n vertical-align: middle;\n}\n\np-treetabletoggler + p-treetablecheckbox + span {\n vertical-align: middle;\n}\n`;\n\nconst classes = {\n root: ({ instance }) => ({\n 'p-treetable p-component': true,\n 'p-treetable-hoverable': instance.rowHover || instance.selectionMode,\n 'p-treetable-resizable': instance.resizableColumns,\n 'p-treetable-resizable-fit': instance.resizableColumns && instance.columnResizeMode === 'fit',\n 'p-treetable-scrollable': instance.scrollable,\n 'p-treetable-flex-scrollable': instance.scrollable && instance.scrollHeight === 'flex',\n 'p-treetable-gridlines': instance.showGridlines,\n 'p-treetable-sm': instance.size === 'small',\n 'p-treetable-lg': instance.size === 'large'\n }),\n loading: 'p-treetable-loading', //TODO: required?\n mask: 'p-treetable-mask p-overlay-mask',\n loadingIcon: 'p-treetable-loading-icon',\n header: 'p-treetable-header',\n paginator: ({ instance }) => 'p-treetable-paginator-' + instance.paginatorPosition,\n tableContainer: 'p-treetable-table-container',\n table: ({ instance }) => ({\n 'p-treetable-table': true,\n 'p-treetable-scrollable-table': instance.scrollable,\n 'p-treetable-resizable-table': instance.resizableColumns,\n 'p-treetable-resizable-table-fit': instance.resizableColumns && instance.columnResizeMode === 'fit'\n }),\n thead: 'p-treetable-thead',\n headerCell: ({ instance }) => ({\n 'p-treetable-header-cell': true,\n 'p-treetable-sortable-column': instance.sortable,\n 'p-treetable-resizable-column': instance.resizableColumns,\n 'p-treetable-column-sorted': instance?.sorted,\n 'p-treetable-frozen-column': instance.columnProp('frozen')\n }),\n columnResizer: 'p-treetable-column-resizer',\n columnHeaderContent: 'p-treetable-column-header-content',\n columnTitle: 'p-treetable-column-title',\n sortIcon: 'p-treetable-sort-icon',\n pcSortBadge: 'p-treetable-sort-badge',\n tbody: 'p-treetable-tbody',\n row: ({ instance }) => ({\n 'p-treetable-row-selected': instance.selected\n }),\n bodyCell: ({ instance }) => ({\n 'p-treetable-frozen-column': instance.columnProp('frozen')\n }),\n bodyCellContent: ({ instance }) => ({\n 'p-treetable-body-cell-content': true,\n 'p-treetable-body-cell-content-expander': instance.columnProp('expander')\n }),\n toggler: 'p-treetable-body-cell-content-expander',\n nodeToggleButton: 'p-treetable-node-toggle-button',\n nodeToggleIcon: 'p-treetable-node-toggle-icon',\n pcNodeCheckbox: 'p-treetable-node-checkbox',\n emptyMessage: 'p-treetable-empty-message',\n tfoot: 'p-treetable-tfoot',\n footerCell: ({ instance }) => ({\n 'p-treetable-frozen-column': instance.columnProp('frozen')\n }),\n footer: 'p-treetable-footer',\n columnResizeIndicator: 'p-treetable-column-resize-indicator'\n};\n\nconst inlineStyles = {\n tableContainer: { overflow: 'auto' },\n thead: { position: 'sticky' },\n tfoot: { position: 'sticky' }\n};\n\n@Injectable()\nexport class TreeTableStyle extends BaseStyle {\n name = 'treetable';\n\n theme = theme;\n\n classes = classes;\n\n inlineStyles = inlineStyles;\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 = 'p-treetable',\n /**\n * Class name of the loading element\n */\n loading = 'p-treetable-loading',\n /**\n * Class name of the mask element\n */\n mask = 'p-treetable-mask',\n /**\n * Class name of the loading icon element\n */\n loadingIcon = 'p-treetable-loading-icon',\n /**\n * Class name of the header element\n */\n header = 'p-treetable-header',\n /**\n * Class name of the paginator element\n */\n paginator = 'p-treetable-paginator-[position]',\n /**\n * Class name of the table container element\n */\n tableContainer = 'p-treetable-table-container',\n /**\n * Class name of the table element\n */\n table = 'p-treetable-table',\n /**\n * Class name of the thead element\n */\n thead = 'p-treetable-thead',\n /**\n * Class name of the column resizer element\n */\n columnResizer = 'p-treetable-column-resizer',\n /**\n * Class name of the column title element\n */\n columnTitle = 'p-treetable-column-title',\n /**\n * Class name of the sort icon element\n */\n sortIcon = 'p-treetable-sort-icon',\n /**\n * Class name of the sort badge element\n */\n pcSortBadge = 'p-treetable-sort-badge',\n /**\n * Class name of the tbody element\n */\n tbody = 'p-treetable-tbody',\n /**\n * Class name of the node toggle button element\n */\n nodeToggleButton = 'p-treetable-node-toggle-button',\n /**\n * Class name of the node toggle icon element\n */\n nodeToggleIcon = 'p-treetable-node-toggle-icon',\n /**\n * Class name of the node checkbox element\n */\n pcNodeCheckbox = 'p-treetable-node-checkbox',\n /**\n * Class name of the empty message element\n */\n emptyMessage = 'p-treetable-empty-message',\n /**\n * Class name of the tfoot element\n */\n tfoot = 'p-treetable-tfoot',\n /**\n * Class name of the footer element\n */\n footer = 'p-treetable-footer',\n /**\n * Class name of the column resize indicator element\n */\n columnResizeIndicator = 'p-treetable-column-resize-indicator'\n}\n\nexport interface TreeTableStyle extends BaseStyle {}\n","import { CommonModule, DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport {\n AfterContentInit,\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Inject,\n inject,\n Injectable,\n Input,\n NgModule,\n NgZone,\n numberAttribute,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n PLATFORM_ID,\n QueryList,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport {\n addClass,\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 hasClass,\n invokeElementMethod,\n isEmpty,\n isNotEmpty,\n removeClass,\n reorderArray,\n resolveFieldData\n} from '@primeuix/utils';\nimport { BlockableUI, FilterMetadata, FilterService, PrimeTemplate, ScrollerOptions, SharedModule, SortMeta, TreeNode, TreeTableNode } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { Checkbox } from 'primeng/checkbox';\nimport { DomHandler } from 'primeng/dom';\nimport { ArrowDownIcon, ArrowUpIcon, CheckIcon, ChevronDownIcon, ChevronRightIcon, MinusIcon, SortAltIcon, SortAmountDownIcon, SortAmountUpAltIcon, SpinnerIcon } from 'primeng/icons';\nimport { PaginatorModule } from 'primeng/paginator';\nimport { Ripple } from 'primeng/ripple';\nimport { Scroller } from 'primeng/scroller';\nimport { Nullable, VoidListener } from 'primeng/ts-helpers';\nimport { Subject, Subscription } from 'rxjs';\nimport { TreeTableStyle } from './style/treetablestyle';\nimport {\n TreeTableColResizeEvent,\n TreeTableColumnReorderEvent,\n TreeTableContextMenuSelectEvent,\n TreeTableEditEvent,\n TreeTableFilterEvent,\n TreeTableFilterOptions,\n TreeTableHeaderCheckboxToggleEvent,\n TreeTableLazyLoadEvent,\n TreeTableNodeCollapseEvent,\n TreeTableNodeExpandEvent,\n TreeTableNodeUnSelectEvent,\n TreeTablePaginatorState,\n TreeTableSortEvent\n} from './treetable.interface';\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: 'p-treeTable, p-treetable, p-tree-table',\n standalone: false,\n template: `\n <div\n #container\n [ngStyle]=\"style\"\n [class]=\"styleClass\"\n data-scrollselectors=\".p-treetable-scrollable-body\"\n [ngClass]=\"{\n 'p-treetable p-component': true,\n 'p-treetable-gridlines': showGridlines,\n 'p-treetable-hoverable-rows': rowHover || selectionMode === 'single' || selectionMode === 'multiple',\n 'p-treetable-auto-layout': autoLayout,\n 'p-treetable-resizable': resizableColumns,\n 'p-treetable-resizable-fit': resizableColumns && columnResizeMode === 'fit',\n 'p-treetable-flex-scrollable': scrollable && scrollHeight === 'flex'\n }\"\n >\n <div class=\"p-treetable-loading\" *ngIf=\"loading && showLoader\">\n <div class=\"p-overlay-mask p-treetable-mask\">\n <i *ngIf=\"loadingIcon\" [class]=\"'p-treetable-loading-icon pi-spin ' + loadingIcon\"></i>\n <ng-container *ngIf=\"!loadingIcon\">\n <SpinnerIcon *ngIf=\"!loadingIconTemplate && !_loadingIconTemplate\" [spin]=\"true\" [styleClass]=\"'p-treetable-loading-icon'\" />\n <span *ngIf=\"loadingIconTemplate || _loadingIconTemplate\" class=\"p-treetable-loading-icon\">\n <ng-template *ngTemplateOutlet=\"loadingIconTemplate || _loadingIconTemplate\"></ng-template>\n </span>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"captionTemplate || _captionTemplate\" class=\"p-treetable-header\">\n <ng-container *ngTemplateOutlet=\"captionTemplate || _captionTemplate\"></ng-container>\n </div>\n <p-paginator\n [rows]=\"rows\"\n [first]=\"first\"\n [totalRecords]=\"totalRecords\"\n [pageLinkSize]=\"pageLinks\"\n styleClass=\"p-paginator-top\"\n [alwaysShow]=\"alwaysShowPaginator\"\n (onPageChange)=\"onPageChange($event)\"\n [rowsPerPageOptions]=\"rowsPerPageOptions\"\n *ngIf=\"paginator && (paginatorPosition === 'top' || paginatorPosition == 'both')\"\n [templateLeft]=\"paginatorLeftTemplate ?? _paginatorLeftTemplate\"\n [templateRight]=\"paginatorRightTemplate ?? _paginatorRightTemplate\"\n [dropdownAppendTo]=\"paginatorDropdownAppendTo\"\n [currentPageReportTemplate]=\"currentPageReportTemplate\"\n [showFirstLastIcon]=\"showFirstLastIcon\"\n [dropdownItemTemplate]=\"paginatorDropdownItemTemplate ?? _paginatorDropdownItemTemplate\"\n [showCurrentPageReport]=\"showCurrentPageReport\"\n [showJumpToPageDropdown]=\"showJumpToPageDropdown\"\n [showPageLinks]=\"showPageLinks\"\n [styleClass]=\"paginatorStyleClass\"\n [locale]=\"paginatorLocale\"\n >\n <ng-template pTemplate=\"firstpagelinkicon\" *ngIf=\"paginatorFirstPageLinkIconTemplate || _paginatorFirstPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorFirstPageLinkIconTemplate || _paginatorFirstPageLinkIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"previouspagelinkicon\" *ngIf=\"paginatorPreviousPageLinkIconTemplate || _paginatorPreviousPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorPreviousPageLinkIconTemplate || _paginatorPreviousPageLinkIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"lastpagelinkicon\" *ngIf=\"paginatorLastPageLinkIconTemplate || _paginatorLastPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorLastPageLinkIconTemplate || _paginatorLastPageLinkIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"nextpagelinkicon\" *ngIf=\"paginatorNextPageLinkIconTemplate || _paginatorNextPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorNextPageLinkIconTemplate || _paginatorNextPageLinkIconTemplate\"></ng-container>\n </ng-template>\n </p-paginator>\n\n <div class=\"p-treetable-wrapper\" *ngIf=\"!scrollable\">\n <table role=\"table\" #table [ngClass]=\"tableStyleClass\" [ngStyle]=\"tableStyle\">\n <ng-container *ngTemplateOutlet=\"colGroupTemplate || _colGroupTemplate; context: { $implicit: columns }\"></ng-container>\n <thead role=\"rowgroup\" class=\"p-treetable-thead\">\n <ng-container *ngTemplateOutlet=\"headerTemplate || _headerTemplate; context: { $implicit: columns }\"></ng-container>\n </thead>\n <tbody class=\"p-treetable-tbody\" role=\"rowgroup\" [pTreeTableBody]=\"columns\" [pTreeTableBodyTemplate]=\"bodyTemplate ?? _bodyTemplate\"></tbody>\n <tfoot class=\"p-treetable-tfoot\" role=\"rowgroup\">\n <ng-container *ngTemplateOutlet=\"footerTemplate || _footerTemplate; context: { $implicit: columns }\"></ng-container>\n </tfoot>\n </table>\n </div>\n\n <div class=\"p-treetable-scrollable-wrapper\" *ngIf=\"scrollable\">\n <div\n class=\"p-treetable-scrollable-view p-treetable-frozen-view\"\n *ngIf=\"frozenColumns || frozenBodyTemplate || _frozenBodyTemplate\"\n #scrollableFrozenView\n [ttScrollableView]=\"frozenColumns\"\n [frozen]=\"true\"\n [ngStyle]=\"{ width: frozenWidth }\"\n [scrollHeight]=\"scrollHeight\"\n ></div>\n <div class=\"p-treetable-scrollable-view\" #scrollableView [ttScrollableView]=\"columns\" [frozen]=\"false\" [scrollHeight]=\"scrollHeight\" [ngStyle]=\"{ left: frozenWidth, width: 'calc(100% - ' + frozenWidth + ')' }\"></div>\n </div>\n\n <p-paginator\n [rows]=\"rows\"\n [first]=\"first\"\n [totalRecords]=\"totalRecords\"\n [pageLinkSize]=\"pageLinks\"\n styleClass=\"p-paginator-bottom\"\n [alwaysShow]=\"alwaysShowPaginator\"\n (onPageChange)=\"onPageChange($event)\"\n [rowsPerPageOptions]=\"rowsPerPageOptions\"\n *ngIf=\"paginator && (paginatorPosition === 'bottom' || paginatorPosition == 'both')\"\n [templateLeft]=\"paginatorLeftTemplate ?? _paginatorLeftTemplate\"\n [templateRight]=\"paginatorRightTemplate ?? _paginatorRightTemplate\"\n [dropdownAppendTo]=\"paginatorDropdownAppendTo\"\n [currentPageReportTemplate]=\"currentPageReportTemplate\"\n [showFirstLastIcon]=\"showFirstLastIcon\"\n [dropdownItemTemplate]=\"paginatorDropdownItemTemplate ?? _paginatorDropdownItemTemplate\"\n [showCurrentPageReport]=\"showCurrentPageReport\"\n [showJumpToPageDropdown]=\"showJumpToPageDropdown\"\n [showPageLinks]=\"showPageLinks\"\n [styleClass]=\"paginatorStyleClass\"\n [locale]=\"paginatorLocale\"\n >\n <ng-template pTemplate=\"firstpagelinkicon\" *ngIf=\"paginatorFirstPageLinkIconTemplate || _paginatorFirstPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorFirstPageLinkIconTemplate || _paginatorFirstPageLinkIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"previouspagelinkicon\" *ngIf=\"paginatorPreviousPageLinkIconTemplate || _paginatorPreviousPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorPreviousPageLinkIconTemplate || _paginatorPreviousPageLinkIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"lastpagelinkicon\" *ngIf=\"paginatorLastPageLinkIconTemplate || _paginatorLastPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorLastPageLinkIconTemplate || _paginatorLastPageLinkIconTemplate\"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"nextpagelinkicon\" *ngIf=\"paginatorNextPageLinkIconTemplate || _paginatorNextPageLinkIconTemplate\">\n <ng-container *ngTemplateOutlet=\"paginatorNextPageLinkIconTemplate || _paginatorNextPageLinkIconTemplate\"></ng-container>\n </ng-template>\n </p-paginator>\n <div *ngIf=\"summaryTemplate || _summaryTemplate\" class=\"p-treetable-footer\">\n <ng-container *ngTemplateOutlet=\"summaryTemplate || _summaryTemplate\"></ng-container>\n </div>\n\n <div #resizeHelper class=\"p-column-resizer-helper\" style=\"display:none\" *ngIf=\"resizableColumns\"></div>\n <span #reorderIndicatorUp class=\"p-treetable-reorder-indicator-up\" style=\"display: none;\" *ngIf=\"reorderableColumns\">\n <ArrowDownIcon *ngIf=\"!reorderIndicatorUpIconTemplate && !_reorderIndicatorUpIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"reorderIndicatorUpIconTemplate || _reorderIndicatorUpIconTemplate\"></ng-template>\n </span>\n <span #reorderIndicatorDown class=\"p-treetable-reorder-indicator-down\" style=\"display: none;\" *ngIf=\"reorderableColumns\">\n <ArrowUpIcon *ngIf=\"!reorderIndicatorDownIconTemplate && !_reorderIndicatorDownIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"reorderIndicatorDownIconTemplate || _reorderIndicatorDownIconTemplate\"></ng-template>\n </span>\n </div>\n `,\n providers: [TreeTableService, TreeTableStyle],\n encapsulation: ViewEncapsulation.None\n})\nexport class TreeTable extends BaseComponent implements AfterContentInit, OnInit, OnDestroy, BlockableUI, OnChanges {\n _componentStyle = inject(TreeTableStyle);\n /**\n * An array of objects to represent dynamic columns.\n * @group Props\n */\n @Input() columns: any[] | undefined;\n /**\n * Inline style of the component.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the component.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Inline style of the table.\n * @group Props\n */\n @Input() tableStyle: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the table.\n * @group Props\n */\n @Input() tableStyleClass: string | undefined;\n /**\n * Whether the cell widths scale according to their content or not.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) autoLayout: boolean | undefined;\n /**\n * Defines if data is loaded and interacted with in lazy manner.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) lazy: boolean = false;\n /**\n * Whether to call lazy loading on initialization.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) lazyLoadOnInit: boolean = true;\n /**\n * When specified as true, enables the pagination.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) paginator: boolean | undefined;\n /**\n * Number of rows to display per page.\n * @group Props\n */\n @Input({ transform: numberAttribute }) rows: number | undefined;\n /**\n * Index of the first row to be displayed.\n * @group Props\n */\n @Input({ transform: numberAttribute }) first: number = 0;\n /**\n * Number of page links to display in paginator.\n * @group Props\n */\n @Input({ transform: numberAttribute }) pageLinks: number = 5;\n /**\n * Array of integer/object values to display inside rows per page dropdown of paginator\n * @group Props\n */\n @Input() rowsPerPageOptions: any[] | undefined;\n /**\n * Whether to show it even there is only one page.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) alwaysShowPaginator: boolean = true;\n /**\n * Position of the paginator.\n * @group Props\n */\n @Input() paginatorPosition: 'top' | 'bottom' | 'both' = 'bottom';\n /**\n * Custom style class for paginator\n * @group Props\n */\n @Input() paginatorStyleClass: string | undefined;\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 @Input() paginatorDropdownAppendTo: HTMLElement | ElementRef | TemplateRef<any> | string | null | undefined | 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 @Input() currentPageReportTemplate: string = '{currentPage} of {totalPages}';\n /**\n * Whether to display current page report.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showCurrentPageReport: boolean | undefined;\n /**\n * Whether to display a dropdown to navigate to any page.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showJumpToPageDropdown: boolean | undefined;\n /**\n * When enabled, icons are displayed on paginator to go first and last page.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showFirstLastIcon: boolean = true;\n /**\n * Whether to show page links.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showPageLinks: boolean = true;\n /**\n * Sort order to use when an unsorted column gets sorted by user interaction.\n * @group Props\n */\n @Input({ transform: numberAttribute }) defaultSortOrder: number = 1;\n /**\n * Defines whether sorting works on single column or on multiple columns.\n * @group Props\n */\n @Input() sortMode: 'single' | 'multiple' = 'single';\n /**\n * When true, resets paginator to first page after sorting.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) resetPageOnSort: boolean = true;\n /**\n * Whether to use the default sorting or a custom one using sortFunction.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) customSort: boolean | undefined;\n /**\n * Specifies the selection mode, valid values are \"single\" and \"multiple\".\n * @group Props\n */\n @Input() selectionMode: string | undefined;\n /**\n * Selected row with a context menu.\n * @group Props\n */\n @Input() contextMenuSelection: any;\n /**\n * Mode of the contet menu selection.\n * @group Props\n */\n @Input() contextMenuSelectionMode: string = 'separate';\n /**\n * A property to uniquely identify a record in data.\n * @group Props\n */\n @Input() dataKey: string | undefined;\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 @Input({ transform: booleanAttribute }) metaKeySelection: boolean | undefined = false;\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 @Input() compareSelectionBy: string = 'deepEquals';\n /**\n * Adds hover effect to rows without the need for selectionMode.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) rowHover: boolean | undefined;\n /**\n * Displays a loader to indicate data load is in progress.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) loading: boolean | undefined;\n /**\n * The icon to show while indicating data load is in progress.\n * @group Props\n */\n @Input() loadingIcon: string | undefined;\n /**\n * Whether to show the loading mask when loading property is true.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showLoader: boolean = true;\n /**\n * When specified, enables horizontal and/or vertical scrolling.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) scrollable: boolean | undefined;\n /**\n * Height of the scroll viewport in fixed pixels or the \"flex\" keyword for a dynamic size.\n * @group Props\n */\n @Input() scrollHeight: string | undefined;\n /**\n * Whether the data should be loaded on demand during scroll.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) virtualScroll: boolean | undefined;\n /**\n * Height of a row to use in calculations of virtual scrolling.\n * @group Props\n */\n @Input({ transform: numberAttribute }) virtualScrollItemSize: number | undefined;\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 @Input() virtualScrollOptions: ScrollerOptions | undefined;\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 @Input({ transform: numberAttribute }) virtualScrollDelay: number = 150;\n /**\n * Width of the frozen columns container.\n * @group Props\n */\n @Input() frozenWidth: string | undefined;\n /**\n * An array of objects to represent dynamic columns that are frozen.\n * @group Props\n */\n @Input() frozenColumns: { [klass: string]: any } | null | undefined;\n /**\n * When enabled, columns can be resized using drag and drop.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) resizableColumns: boolean | undefined;\n /**\n * Defines whether the overall table width should change on column resize, valid values are \"fit\" and \"expand\".\n * @group Props\n */\n @Input() columnResizeMode: string = 'fit';\n /**\n * When enabled, columns can be reordered using drag and drop.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) reorderableColumns: boolean | undefined;\n /**\n * Local ng-template varilable of a ContextMenu.\n * @group Props\n */\n @Input() contextMenu: any;\n /**\n * Function to optimize the dom operations by delegating to ngForTrackBy, default algorithm checks for object identity.\n * @group Props\n */\n @Input() rowTrackBy: Function = (index: number, item: any) => item;\n /**\n * An array of FilterMetadata objects to provide external filters.\n * @group Props\n */\n @Input() filters: { [s: string]: FilterMetadata | undefined } = {};\n /**\n * An array of fields as string to use in global filtering.\n * @group Props\n */\n @Input() globalFilterFields: string[] | undefined;\n /**\n * Delay in milliseconds before filtering the data.\n * @group Props\n */\n @Input({ transform: numberAttribute }) filterDelay: number = 300;\n /**\n * Mode for filtering valid values are \"lenient\" and \"strict\". Default is lenient.\n * @group Props\n */\n @Input() filterMode: string = 'lenient';\n /**\n * Locale to use in filtering. The default locale is the host environment's current locale.\n * @group Props\n */\n @Input() filterLocale: string | undefined;\n /**\n * Locale to be used in paginator formatting.\n * @group Props\n */\n @Input() paginatorLocale: string | undefined;\n /**\n * Number of total records, defaults to length of value when not defined.\n * @group Props\n */\n @Input() get totalRecords(): number {\n return this._totalRecords;\n }\n set totalRecords(val: number) {\n this._totalRecords = val;\n this.tableService.onTotalRecordsChange(this._totalRecords);\n }\n /**\n * Name of the field to sort data by default.\n * @group Props\n */\n @Input() get sortField(): string | undefined | null {\n return this._sortField;\n }\n set sortField(val: string | undefined | null) {\n this._sortField = val;\n }\n /**\n * Order to sort when default sorting is enabled.\n * @defaultValue 1\n * @group Props\n */\n @Input() get sortOrder(): number {\n return this._sortOrder;\n }\n set sortOrder(val: number) {\n this._sortOrder = val;\n }\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 @Input() get multiSortMeta(): SortMeta[] | undefined | null {\n return this._multiSortMeta;\n }\n set multiSortMeta(val: SortMeta[] | undefined | null) {\n this._multiSortMeta = val;\n }\n /**\n * Selected row in single mode or an array of values in multiple mode.\n * @defaultValue null\n * @group Props\n */\n @Input() get selection(): any {\n return this._selection;\n }\n set selection(val: any) {\n this._selection = val;\n }\n /**\n * An array of objects to display.\n * @defaultValue null\n * @group Props\n */\n @Input() get value(): TreeNode<any>[] | undefined {\n return this._value;\n }\n set value(val: TreeNode<any>[] | undefined) {\n this._value = val;\n }\n /**\n * Indicates the height of rows to be scrolled.\n * @defaultValue 28\n * @group Props\n * @deprecated use virtualScrollItemSize property instead.\n */\n @Input() get virtualRowHeight(): number {\n return this._virtualRowHeight;\n }\n set virtualRowHeight(val: number) {\n this._virtualRowHeight = val;\n console.log('The virtualRowHeight property is deprecated, use virtualScrollItemSize property instead.');\n }\n /**\n * A map of keys to control the selection state.\n * @group Props\n */\n @Input() get selectionKeys(): any {\n return this._selectionKeys;\n }\n set selectionKeys(value: any) {\n this._selectionKeys = value;\n this.selectionKeysChange.emit(this._selectionKeys);\n }\n /**\n * Whether to show grid lines between cells.\n * @defaultValue false\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showGridlines: boolean = false;\n /**\n * Callback to invoke on selected node change.\n * @param {TreeTableNode} object - Node instance.\n * @group Emits\n */\n @Output() selectionChange: EventEmitter<TreeTableNode<any> | TreeTableNode<any>[] | null> = new EventEmitter<TreeTableNode<any> | TreeTableNode<any>[] | null>();\n /**\n * Callback to invoke on context menu selection change.\n * @param {TreeTableNode} object - Node instance.\n * @group Emits\n */\n @Output() contextMenuSelectionChange: EventEmitter<TreeTableNode> = new EventEmitter<TreeTableNode>();\n /**\n * Callback to invoke when data is filtered.\n * @param {TreeTableFilterEvent} event - Custom filter event.\n * @group Emits\n */\n @Output() onFilter: EventEmitter<TreeTableFilterEvent> = new EventEmitter<TreeTableFilterEvent>();\n /**\n * Callback to invoke when a node is expanded.\n * @param {TreeTableNodeExpandEvent} event - Node expand event.\n * @group Emits\n */\n @Output() onNodeExpand: EventEmitter<TreeTableNodeExpandEvent> = new EventEmitter<TreeTableNodeExpandEvent>();\n /**\n * Callback to invoke when a node is collapsed.\n * @param {TreeTableNodeCollapseEvent} event - Node collapse event.\n * @group Emits\n */\n @Output() onNodeCollapse: EventEmitter<TreeTableNodeCollapseEvent> = new EventEmitter<TreeTableNodeCollapseEvent>();\n /**\n * Callback to invoke when pagination occurs.\n * @param {TreeTablePaginatorState} object - Paginator state.\n * @group Emits\n */\n @Output() onPage: EventEmitter<TreeTablePaginatorState> = new EventEmitter<TreeTablePaginatorState>();\n /**\n * Callback to invoke when a column gets sorted.\n * @param {Object} Object - Sort data.\n * @group Emits\n */\n @Output() onSort: EventEmitter<any> = new EventEmitter<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 @Output() onLazyLoad: EventEmitter<TreeTableLazyLoadEvent> = new EventEmitter<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 @Output() sortFunction: EventEmitter<TreeTableSortEvent> = new EventEmitter<TreeTableSortEvent>();\n /**\n * Callback to invoke when a column is resized.\n * @param {TreeTableColResizeEvent} event - Custom column resize event.\n * @group Emits\n */\n @Output() onColResize: EventEmitter<TreeTableColResizeEvent> = new EventEmitter<TreeTableColResizeEvent>();\n /**\n * Callback to invoke when a column is reordered.\n * @param {TreeTableColumnReorderEvent} event - Custom column reorder.\n * @group Emits\n */\n @Output() onColReorder: EventEmitter<TreeTableColumnReorderEvent> = new EventEmitter<TreeTableColumnReorderEvent>();\n /**\n * Callback to invoke when a node is selected.\n * @param {TreeTableNode} object - Node instance.\n * @group Emits\n */\n @Output() onNodeSelect: EventEmitter<TreeTableNode> = new EventEmitter<TreeTableNode>();\n /**\n * Callback to invoke when a node is unselected.\n * @param {TreeTableNodeUnSelectEvent} event - Custom node unselect event.\n * @group Emits\n */\n @Output() onNodeUnselect: EventEmitter<TreeTableNodeUnSelectEvent> = new EventEmitter<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 @Output() onContextMenuSelect: EventEmitter<TreeTableContextMenuSelectEvent> = new EventEmitter<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 @Output() onHeaderCheckboxToggle: EventEmitter<TreeTableHeaderCheckboxToggleEvent> = new EventEmitter<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 @Output() onEditInit: EventEmitter<TreeTableEditEvent> = new EventEmitter<TreeTableEditEvent>();\n /**\n * Callback to invoke when cell edit is completed.\n * @param {TreeTableEditEvent} event - Custom edit event.\n * @group Emits\n */\n @Output() onEditComplete: EventEmitter<TreeTableEditEvent> = new EventEmitter<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 @Output() onEditCancel: EventEmitter<TreeTableEditEvent> = new EventEmitter<TreeTableEditEvent>();\n /**\n * Callback to invoke when selectionKeys are changed.\n * @param {Object} object - updated value of the selectionKeys.\n * @group Emits\n */\n @Output() selectionKeysChange: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('container') containerViewChild: Nullable<ElementRef>;\n\n @ViewChild('resizeHelper') resizeHelperViewChild: Nullable<ElementRef>;\n\n @ViewChild('reorderIndicatorUp') reorderIndicatorUpViewChild: Nullable<ElementRef>;\n\n @ViewChild('reorderIndicatorDown') reorderIndicatorDownViewChild: Nullable<ElementRef>;\n\n @ViewChild('table') tableViewChild: Nullable<ElementRef>;\n\n @ViewChild('scrollableView') scrollableViewChild: Nullable<ElementRef>;\n\n @ViewChild('scrollableFrozenView') scrollableFrozenViewChild: Nullable<ElementRef>;\n\n _value: TreeNode<any>[] | undefined = [];\n\n _virtualRowHeight: number = 28;\n\n _selectionKeys: any;\n\n serializedValue: any[] | undefined | null;\n\n _totalRecords: number = 0;\n\n _multiSortMeta: SortMeta[] | undefined | null;\n\n _sortField: string | undefined | null;\n\n _sortOrder: number = 1;\n\n filteredNodes: Nullable<any[]>;\n\n filterTimeout: any;\n\n @ContentChild('colgroup', { descendants: false }) _colGroupTemplate: Nullable<TemplateRef<any>>;\n colGroupTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('caption', { descendants: false }) _captionTemplate: Nullable<TemplateRef<any>>;\n captionTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('header', { descendants: false }) _headerTemplate: Nullable<TemplateRef<any>>;\n headerTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('body', { descendants: false }) _bodyTemplate: Nullable<TemplateRef<any>>;\n bodyTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('footer', { descendants: false }) _footerTemplate: Nullable<TemplateRef<any>>;\n footerTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('summary', { descendants: false }) _summaryTemplate: Nullable<TemplateRef<any>>;\n summaryTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('emptymessage', { descendants: false }) _emptyMessageTemplate: Nullable<TemplateRef<any>>;\n emptyMessageTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('paginatorleft', { descendants: false }) _paginatorLeftTemplate: Nullable<TemplateRef<any>>;\n paginatorLeftTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('paginatorright', { descendants: false }) _paginatorRightTemplate: Nullable<TemplateRef<any>>;\n paginatorRightTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('paginatordropdownitem', { descendants: false }) _paginatorDropdownItemTemplate: Nullable<TemplateRef<any>>;\n paginatorDropdownItemTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('frozenheader', { descendants: false }) _frozenHeaderTemplate: Nullable<TemplateRef<any>>;\n frozenHeaderTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('frozenbody', { descendants: false }) _frozenBodyTemplate: Nullable<TemplateRef<any>>;\n frozenBodyTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('frozenfooter', { descendants: false }) _frozenFooterTemplate: Nullable<TemplateRef<any>>;\n frozenFooterTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('frozencolgroup', { descendants: false }) _frozenColGroupTemplate: Nullable<TemplateRef<any>>;\n frozenColGroupTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('loadingicon', { descendants: false }) _loadingIconTemplate: Nullable<TemplateRef<any>>;\n loadingIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('reorderindicatorupicon', { descendants: false }) _reorderIndicatorUpIconTemplate: Nullable<TemplateRef<any>>;\n reorderIndicatorUpIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('reorderindicatordownicon', { descendants: false }) _reorderIndicatorDownIconTemplate: Nullable<TemplateRef<any>>;\n reorderIndicatorDownIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('sorticon', { descendants: false }) _sortIconTemplate: Nullable<TemplateRef<any>>;\n sortIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('checkboxicon', { descendants: false }) _checkboxIconTemplate: Nullable<TemplateRef<any>>;\n checkboxIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('headercheckboxicon', { descendants: false }) _headerCheckboxIconTemplate: Nullable<TemplateRef<any>>;\n headerCheckboxIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('togglericon', { descendants: false }) _togglerIconTemplate: Nullable<TemplateRef<any>>;\n togglerIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('paginatorfirstpagelinkicon', { descendants: false }) _paginatorFirstPageLinkIconTemplate: Nullable<TemplateRef<any>>;\n paginatorFirstPageLinkIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('paginatorlastpagelinkicon', { descendants: false }) _paginatorLastPageLinkIconTemplate: Nullable<TemplateRef<any>>;\n paginatorLastPageLinkIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('paginatorpreviouspagelinkicon', { descendants: false }) _paginatorPreviousPageLinkIconTemplate: Nullable<TemplateRef<any>>;\n paginatorPreviousPageLinkIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('paginatornextpagelinkicon', { descendants: false }) _paginatorNextPageLinkIconTemplate: Nullable<TemplateRef<any>>;\n paginatorNextPageLinkIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('loader', { descendants: false }) _loaderTemplate: Nullable<TemplateRef<any>>;\n loaderTemplate: Nullable<TemplateRef<any>>;\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 _selection: any;\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 ngOnInit() {\n super.ngOnInit();\n if (this.lazy && this.lazyLoadOnInit && !this.virtualScroll) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n this.initialized = true;\n }\n\n @ContentChildren(PrimeTemplate) templates: Nullable<QueryList<PrimeTemplate>>;\n\n ngAfterContentInit() {\n (this.templates as QueryList<PrimeTemplate>).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 ngOnChanges(simpleChange: SimpleChanges) {\n super.ngOnChanges(simpleChange);\n if (simpleChange.value) {\n this._value = simpleChange.value.currentValue;\n\n if (!this.lazy) {\n this.totalRecords = this._value ? this._value.length : 0;\n\n if (this.sortMode == 'single' && this.sortField) this.sortSingle();\n else if (this.sortMode == 'multiple' && this.multiSortMeta) this.sortMultiple();\n else if (this.hasFilter())\n //sort already filters\n this._filter();\n }\n\n this.updateSerializedValue();\n this.tableService.onUIUpdate(this.value);\n }\n\n if (simpleChange.sortField) {\n this._sortField = simpleChange.sortField.currentValue;\n\n //avoid triggering lazy load prior to lazy initialization at onInit\n if (!this.lazy || this.initialized) {\n if (this.sortMode === 'single') {\n this.sortSingle();\n }\n }\n }\n\n if (simpleChange.sortOrder) {\n this._sortOrder = simpleChange.sortOrder.currentValue;\n\n //avoid triggering lazy load prior to lazy initialization at onInit\n if (!this.lazy || this.initialized) {\n if (this.sortMode === 'single') {\n this.sortSingle();\n }\n }\n }\n\n if (simpleChange.multiSortMeta) {\n this._multiSortMeta = simpleChange.multiSortMeta.currentValue;\n if (this.sortMode === 'multiple') {\n this.sortMultiple();\n }\n }\n\n if (simpleChange.selection) {\n this._selection = simpleChange.selection.currentValue;\n\n if (!this.preventSelectionSetterPropagation) {\n this.updateselectedKeys();\n this.tableService.onSelectionChange();\n }\n this.preventSelectionSetterPropagation = false;\n }\n }\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 : 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 if (this.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, this.dataKey))] = 1;\n }\n } else {\n this.selectedKeys[String(resolveFieldData((<any>this._selection).data, this.dataKey))] = 1;\n }\n }\n }\n\n onPageChange(event: TreeTablePaginatorState) {\n this.first = <number>event.first;\n this.rows = <number>event.rows;\n\n if (this.lazy) this.onLazyLoad.emit(this.createLazyLoadMetadata());\n else this.serializePageNodes();\n\n this.onPage.emit({\n first: 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 if (this.sortMode === 'single') {\n this._sortOrder = this.sortField === event.field ? this.sortOrder * -1 : this.defaultSortOrder;\n this._sortField = event.field;\n this.sortSingle();\n\n if (this.resetPageOnSort && this.scrollable) {\n this.resetScrollTop();\n }\n }\n if (this.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 = [{ field: <string>event.field, order: sortMeta.order * -1 }];\n\n if (this.resetPageOnSort && this.scrollable) {\n this.resetScrollTop();\n }\n } else {\n sortMeta.order = sortMeta.order * -1;\n }\n } else {\n if (!metaKey || !this.multiSortMeta) {\n this._multiSortMeta = [];\n\n if (this.resetPageOnSort && this.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(this.value);\n\n if (this.hasFilter()) {\n this._filter();\n }\n }\n\n let sortMeta: SortMeta = {\n field: 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 = null;\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(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(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 = null;\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 * <number>result;\n }\n\n getSortMeta(field: string) {\n if (this.multiSortMeta && this.multiSortMeta.length) {\n for (let i = 0; i < this.multiSortMeta.length; i++) {\n if (this.multiSortMeta[i].field === field) {\n return this.multiSortMeta[i];\n }\n }\n }\n\n return null;\n }\n\n isSorted(field: string) {\n if (this.sortMode === 'single') {\n return this.sortField && this.sortField === field;\n } else if (this.sortMode === 'multiple') {\n let sorted = false;\n if (this.multiSortMeta) {\n for (let i = 0; i < this.multiSortMeta.length; i++) {\n if (this.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'] ? 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 if (this.scrollableViewChild) {\n (<any>this.scrollableViewChild).scrollToVirtualIndex(<number>index);\n }\n\n if (this.scrollableFrozenViewChild) {\n (<any>this.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 if (this.scrollableViewChild) {\n (<any>this.scrollableViewChild).scrollTo(options);\n }\n\n if (this.scrollableFrozenViewChild) {\n (<any>this.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.containerViewChild?.nativeElement).left;\n this.lastResizerHelperX = event.pageX - containerLeft + this.containerViewChild?.nativeElement.scrollLeft;\n event.preventDefault();\n }\n\n onColumnResize(event: MouseEvent) {\n let containerLeft = <any>getOffset(this.containerViewChild?.nativeElement).left;\n addClass(this.containerViewChild?.nativeElement, 'p-unselectable-text');\n (<ElementRef>this.resizeHelperViewChild).nativeElement.style.height = this.containerViewChild?.nativeElement.offsetHeight + 'px';\n (<ElementRef>this.resizeHelperViewChild).nativeElement.style.top = 0 + 'px';\n (<ElementRef>this.resizeHelperViewChild).nativeElement.style.left = event.pageX - containerLeft + this.containerViewChild?.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 if (this.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, '.p-treetable-scrollable-body table') || findSingle(scrollableView, '.p-scroller-viewport table');\n let scrollableHeaderTable = <any>findSingle(scrollableView, 'table.p-treetable-scrollable-header-table');\n let scrollableFooterTable = <any>findSingle(scrollableView, 'table.p-treetable-scrollable-footer-table');\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 (this.columnResizeMode === 'expand') {\n if (this.scrollable) {\n let scrollableView = this.findParentScrollableView(column);\n let scrollableBody = <any>findSingle(scrollableView, '.p-treetable-scrollable-body') || findSingle(scrollableView, '.p-scroller-viewport');\n let scrollableHeader = <any>findSingle(scrollableView, '.p-treetable-scrollable-header');\n let scrollableFooter = <any>findSingle(scrollableView, '.p-treetable-scrollable-footer');\n let scrollableBodyTable = <any>findSingle(scrollableView, '.p-treetable-scrollable-body table') || findSingle(scrollableView, '.p-scroller-viewport table');\n let scrollableHeaderTable = <any>findSingle(scrollableView, 'table.p-treetable-scrollable-header-table');\n let scrollableFooterTable = <any>findSingle(scrollableView, 'table.p-treetable-scrollable-footer-table');\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.containerViewChild?.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 (<ElementRef>this.tableViewChild).nativeElement.style.width = this.tableViewChild?.nativeElement.offsetWidth + delta + 'px';\n column.style.width = newColumnWidth + 'px';\n let containerWidth = this.tableViewChild?.nativeElement.style.width;\n (<ElementRef>this.containerViewChild).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 removeClass(this.containerViewChild?.nativeElement, 'p-unselectable-text');\n }\n\n findParentScrollableView(column: any) {\n if (column) {\n let parent = column.parentElement;\n while (parent && !hasClass(parent, 'p-treetable-scrollable-view')) {\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.containerViewChild?.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 reorderArray(<any[]>this.columns, dragIndex, dropIndex);\n\n this.onColReorder.emit({\n dragIndex: dragIndex,\n dropIndex: dropIndex,\n columns: this.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' || hasClass(event.originalEvent.target, 'p-clickable')) {\n return;\n }\n\n if (this.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 let dataKeyValue = this.dataKey ? String(resolveFieldData((<TreeTableNode>rowNode.node).data, this.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 = null;\n this.selectedKeys = {};\n this.selectionChange.emit(null);\n } else {\n let selectionIndex = this.findIndexInSelection(rowNode.node);\n this._selection = this.selection.filter((val: TreeTableNode, i: number) => i != selectionIndex);\n this.selectionChange.emit(this.selection);\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 = rowNode.node;\n this.selectionChange.emit(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 = this.selection || [];\n } else {\n this._selection = [];\n this.selectedKeys = {};\n }\n\n this._selection = [...this.selection, rowNode.node];\n this.selectionChange.emit(this.selection);\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 (this.selectionMode === 'single') {\n if (selected) {\n this._selection = null;\n this.selectedKeys = {};\n this.selectionChange.emit(this.selection);\n this.onNodeUnselect.emit({\n originalEvent: event.originalEvent,\n node: <TreeTableNode>rowNode.node,\n type: 'row'\n });\n } else {\n this._selection = rowNode.node;\n this.selectionChange.emit(this.selection);\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 (this.selectionMode === 'multiple') {\n if (selected) {\n let selectionIndex = this.findIndexInSelection(rowNode.node);\n this._selection = this.selection.filter((val: TreeTableNode, i: number) => i != selectionIndex);\n this.selectionChange.emit(this.selection);\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 = this.selection ? [...this.selection, rowNode.node] : [rowNode.node];\n this.selectionChange.emit(this.selection);\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 if (this.contextMenuSelectionMode === 'separate') {\n this.contextMenuSelection = node;\n this.contextMenuSelectionChange.emit(node);\n this.onContextMenuSelect.emit({ originalEvent: event.originalEvent, node: node });\n this.contextMenu.show(event.originalEvent);\n this.tableService.onContextMenu(node);\n } else if (this.contextMenuSelectionMode === 'joint') {\n this.preventSelectionSetterPropagation = true;\n let selected = this.isSelected(node);\n let dataKeyValue = this.dataKey ? String(resolveFieldData(node.data, this.dataKey)) : null;\n\n if (!selected) {\n if (this.isSingleSelectionMode()) {\n this.selection = node;\n this.selectionChange.emit(node);\n } else if (this.isMultipleSelectionMode()) {\n this.selection = [node];\n this.selectionChange.emit(this.selection);\n }\n\n if (dataKeyValue) {\n this.selectedKeys[dataKeyValue] = 1;\n }\n }\n\n this.contextMenu.show(event.originalEvent);\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 = 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.selectionChange.emit(this.selection);\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.selectionChange.emit(this.selection);\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 = check && data ? data.slice() : [];\n\n this.toggleAll(check);\n\n if (!check) {\n this._selection = [];\n this.selectedKeys = {};\n }\n\n this.preventSelectionSetterPropagation = true;\n this.selectionChange.emit(this._selection);\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 this.selectionKeysChange.emit(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 let dataKeyValue = this.dataKey ? String(resolveFieldData(node.data, this.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 = [...(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 = 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 let dataKeyValue = this.dataKey ? String(resolveFieldData(node.data, this.dataKey)) : null;\n\n if (select && index == -1) {\n this._selection = [...(this.selection || []), node];\n if (dataKeyValue) {\n this.selectedKeys[dataKeyValue] = 1;\n }\n } else if (!select && index > -1) {\n this._selection = 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 if (this.dataKey) {\n if (node.hasOwnProperty('checked')) {\n return node['checked'];\n } else {\n return this.selectedKeys[resolveFieldData(node.data, this.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 return resolveFieldData(node, this.dataKey) || resolveFieldData(node?.data, this.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 this.selectionKeysChange.emit(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 if (!this.value) {\n return;\n }\n\n if (!this.hasFilter()) {\n this.filteredNodes = null;\n if (this.paginator) {\n this.totalRecords = this.value ? this.value.length : 0;\n }\n } else {\n let globalFilterFieldsArray;\n if (this.filters['global']) {\n if (!this.columns && !this.globalFilterFields) throw new Error('Global filtering requires dynamic columns or globalFilterFields to be defined.');\n else globalFilterFieldsArray = this.globalFilterFields || this.columns;\n }\n\n this.filteredNodes = [];\n const isStrictMode = this.filterMode === 'strict';\n let isValueChanged = false;\n\n for (let node of this.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 = 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 = this.filteredNodes ? this.filteredNodes.length : this.value ? this.value.length : 0;\n }\n }\n this.cd.markForCheck();\n }\n\n this.first = 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 = null;\n this._sortOrder = 1;\n this._multiSortMeta = null;\n this.tableService.onSort(null);\n\n this.filteredNodes = null;\n this.filters = {};\n\n this.first = 0;\n\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n } else {\n this.totalRecords = this._value ? this._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 removeClass(this.editingCell, 'p-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 ngOnDestroy() {\n this.unbindDocumentEditListener();\n this.editingCell = null;\n this.editingCellField = null;\n this.editingCellData = null;\n this.initialized = null;\n\n super.ngOnDestroy();\n }\n}\n\n@Component({\n selector: '[pTreeTableBody]',\n standalone: false,\n template: `\n <ng-template ngFor let-serializedNode let-rowIndex=\"index\" [ngForOf]=\"serializedNodes || tt.serializedValue\" [ngForTrackBy]=\"tt.rowTrackBy\">\n <ng-container *ngIf=\"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 </ng-container>\n </ng-template>\n <ng-container *ngIf=\"tt.isEmpty()\">\n <ng-container *ngTemplateOutlet=\"tt.emptyMessageTemplate; context: { $implicit: columns, frozen: frozen }\"></ng-container>\n </ng-container>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class TTBody {\n @Input('pTreeTableBody') columns: any[] | undefined;\n\n @Input('pTreeTableBodyTemplate') template: Nullable<TemplateRef<any>>;\n\n @Input({ transform: booleanAttribute }) frozen: boolean | undefined;\n\n @Input() serializedNodes: any;\n\n @Input() scrollerOptions: any;\n\n subscription: Subscription;\n\n constructor(\n public tt: TreeTable,\n public treeTableService: TreeTableService,\n public cd: ChangeDetectorRef\n ) {\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 ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Component({\n selector: '[ttScrollableView]',\n standalone: false,\n template: `\n <div #scrollHeader class=\"p-treetable-scrollable-header\">\n <div #scrollHeaderBox class=\"p-treetable-scrollable-header-box\">\n <table class=\"p-treetable-scrollable-header-table\" [ngClass]=\"tt.tableStyleClass\" [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=\"p-treetable-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 <p-scroller\n *ngIf=\"tt.virtualScroll\"\n #scroller\n [items]=\"tt.serializedValue\"\n styleClass=\"p-treetable-scrollable-body\"\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 >\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 <ng-container *ngIf=\"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 </ng-container>\n </p-scroller>\n <ng-container *ngIf=\"!tt.virtualScroll\">\n <div\n #scrollBody\n class=\"p-treetable-scrollable-body\"\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 </ng-container>\n\n <ng-template #buildInItems let-items let-scrollerOptions=\"options\">\n <table role=\"table\" #scrollTable [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 role=\"rowgroup\"\n class=\"p-treetable-tbody\"\n [pTreeTableBody]=\"columns\"\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 <div #scrollableAligner style=\"background-color:transparent\" *ngIf=\"frozen\"></div>\n </ng-template>\n\n <div #scrollFooter *ngIf=\"tt.footerTemplate || tt._footerTemplate\" class=\"p-treetable-scrollable-footer\">\n <div #scrollFooterBox class=\"p-treetable-scrollable-footer-box\">\n <table class=\"p-treetable-scrollable-footer-table\" [ngClass]=\"tt.tableStyleClass\" [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 <tfoot role=\"rowgroup\" class=\"p-treetable-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 encapsulation: ViewEncapsulation.None\n})\nexport class TTScrollableView implements AfterViewInit, OnDestroy {\n @Input('ttScrollableView') columns: any[] | undefined;\n\n @Input({ transform: booleanAttribute }) frozen: boolean | undefined;\n\n @ViewChild('scrollHeader') scrollHeaderViewChild: Nullable<ElementRef>;\n\n @ViewChild('scrollHeaderBox') scrollHeaderBoxViewChild: Nullable<ElementRef>;\n\n @ViewChild('scrollBody') scrollBodyViewChild: Nullable<ElementRef>;\n\n @ViewChild('scrollTable') scrollTableViewChild: Nullable<ElementRef>;\n\n @ViewChild('loadingTable') scrollLoadingTableViewChild: Nullable<ElementRef>;\n\n @ViewChild('scrollFooter') scrollFooterViewChild: Nullable<ElementRef>;\n\n @ViewChild('scrollFooterBox') scrollFooterBoxViewChild: Nullable<ElementRef>;\n\n @ViewChild('scrollableAligner') scrollableAlignerViewChild: Nullable<ElementRef>;\n\n @ViewChild('scroller') scroller: Nullable<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 _scrollHeight: string | undefined | null;\n\n preventBodyScrollPropagation: boolean | undefined;\n\n @Input() get scrollHeight(): string | undefined | null {\n return this._scrollHeight;\n }\n set scrollHeight(val: string | undefined | null) {\n this._scrollHeight = val;\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 @Inject(PLATFORM_ID) private platformId: any,\n private renderer: Renderer2,\n public tt: TreeTable,\n public el: ElementRef,\n public zone: NgZone\n ) {}\n\n ngAfterViewInit() {\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, 'p-treetable-unfrozen-view');\n }\n\n let frozenView = this.el.nativeElement.previousElementSibling;\n if (frozenView) {\n if (this.tt.virtualScroll) this.frozenSiblingBody = findSingle(frozenView, '.p-scroller-viewport');\n else this.frozenSiblingBody = findSingle(frozenView, '.p-treetable-scrollable-body');\n }\n\n if (this.scrollHeight) {\n let scrollBarWidth = calculateScrollbarWidth();\n this.scrollHeaderBoxViewChild.nativeElement.style.paddingRight = scrollBarWidth + 'px';\n\n if (this.scrollFooterBoxViewChild && this.scrollFooterBoxViewChild.nativeElement) {\n this.scrollFooterBoxViewChild.nativeElement.style.paddingRight = scrollBarWidth + 'px';\n }\n }\n } else {\n if (this.scrollableAlignerViewChild && this.scrollableAlignerViewChild.nativeElement) {\n this.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 if (this.scrollHeaderViewChild && this.scrollHeaderViewChild.nativeElement) {\n this.headerScrollListener = this.renderer.listen(this.scrollHeaderBoxViewChild?.nativeElement, 'scroll', this.onHeaderScroll.bind(this));\n }\n\n if (this.scrollFooterViewChild && this.scrollFooterViewChild.nativeElement) {\n this.footerScrollListener = this.renderer.listen(this.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 if (this.scrollHeaderViewChild && this.scrollHeaderViewChild.nativeElement) {\n if (this.headerScrollListener) {\n this.headerScrollListener();\n this.headerScrollListener = null;\n }\n }\n\n if (this.scrollFooterViewChild && this.scrollFooterViewChild.nativeElement) {\n if (this.footerScrollListener) {\n this.footerScrollListener();\n this.footerScrollListener = null;\n }\n }\n\n if (this.scrollBodyViewChild && this.scrollBodyViewChild.nativeElement) {\n if (this.bodyScrollListener) {\n this.bodyScrollListener();\n this.bodyScrollListener = null;\n }\n }\n\n if (this.scroller && this.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 if (this.scrollFooterViewChild && this.scrollFooterViewChild.nativeElement) {\n this.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 if (this.scrollHeaderViewChild && this.scrollHeaderViewChild.nativeElement) {\n this.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 if (this.scrollHeaderViewChild && this.scrollHeaderViewChild.nativeElement) {\n (this.scrollHeaderBoxViewChild as ElementRef).nativeElement.style.marginLeft = -1 * event.target.scrollLeft + 'px';\n }\n\n if (this.scrollFooterViewChild && this.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 if (this.scroller) {\n this.scroller.scrollToIndex(index);\n }\n }\n\n scrollTo(options: ScrollToOptions): void {\n if (this.scroller) {\n this.scroller.scrollTo(options);\n } else {\n if (this.scrollBodyViewChild?.nativeElement.scrollTo) {\n this.scrollBodyViewChild.nativeElement.scrollTo(options);\n } else {\n (this.scrollBodyViewChild as ElementRef).nativeElement.scrollLeft = options.left;\n (this.scrollBodyViewChild as ElementRef).nativeElement.scrollTop = options.top;\n }\n }\n }\n\n ngOnDestroy() {\n this.unbindEvents();\n\n this.frozenSiblingBody = null;\n }\n}\n\n@Directive({\n selector: '[ttSortableColumn]',\n standalone: false,\n host: {\n '[class.p-sortable-column]': 'isEnabled()',\n '[class.p-treetable-column-sorted]': 'sorted',\n '[attr.tabindex]': 'isEnabled() ? \"0\" : null',\n '[attr.role]': '\"columnheader\"',\n '[attr.aria-sort]': 'ariaSorted'\n }\n})\nexport class TTSortableColumn implements OnInit, OnDestroy {\n @Input('ttSortableColumn') field: string | undefined;\n\n @Input({ transform: booleanAttribute }) ttSortableColumnDisabled: boolean | undefined;\n\n sorted: boolean | undefined;\n\n subscription: Subscription | undefined;\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 if (this.isEnabled()) {\n this.subscription = this.tt.tableService.sortSource$.subscribe((sortMeta) => {\n this.updateSortState();\n });\n }\n }\n\n ngOnInit() {\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 @HostListener('click', ['$event'])\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 @HostListener('keydown.enter', ['$event'])\n onEnterKey(event: MouseEvent) {\n this.onClick(event);\n }\n\n isEnabled() {\n return this.ttSortableColumnDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Component({\n selector: 'p-treeTableSortIcon',\n standalone: false,\n template: ` <ng-container *ngIf=\"!tt.sortIconTemplate && !tt._sortIconTemplate\">\n <SortAltIcon [styleClass]=\"'p-sortable-column-icon'\" *ngIf=\"sortOrder === 0\" />\n <SortAmountUpAltIcon [styleClass]=\"'p-sortable-column-icon'\" *ngIf=\"sortOrder === 1\" />\n <SortAmountDownIcon [styleClass]=\"'p-sortable-column-icon'\" *ngIf=\"sortOrder === -1\" />\n </ng-container>\n <span *ngIf=\"tt.sortIconTemplate || tt._sortIconTemplate\" class=\"p-sortable-column-icon\">\n <ng-template *ngTemplateOutlet=\"tt.sortIconTemplate || tt._sortIconTemplate; context: { $implicit: sortOrder }\"></ng-template>\n </span>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TTSortIcon implements OnInit, OnDestroy {\n @Input() field: string | undefined;\n\n @Input() ariaLabelDesc: string | undefined;\n\n @Input() ariaLabelAsc: string | undefined;\n\n subscription: Subscription | undefined;\n\n sortOrder: number | undefined;\n\n constructor(\n public tt: TreeTable,\n public cd: ChangeDetectorRef\n ) {\n this.subscription = this.tt.tableService.sortSource$.subscribe((sortMeta) => {\n this.updateSortState();\n this.cd.markForCheck();\n });\n }\n\n ngOnInit() {\n this.updateSortState();\n }\n\n onClick(event: Event) {\n event.preventDefault();\n }\n\n updateSortState() {\n if (this.tt.sortMode === 'single') {\n this.sortOrder = this.tt.isSorted(<string>this.field) ? this.tt.sortOrder : 0;\n } else if (this.tt.sortMode === 'multiple') {\n let sortMeta = this.tt.getSortMeta(<string>this.field);\n this.sortOrder = sortMeta ? sortMeta.order : 0;\n }\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Directive({\n selector: '[ttResizableColumn]',\n standalone: false\n})\nexport class TTResizableColumn implements AfterViewInit, OnDestroy {\n @Input({ transform: booleanAttribute }) ttResizableColumnDisabled: boolean | undefined;\n\n resizer: HTMLSpanElement | undefined;\n\n resizerMouseDownListener: VoidListener;\n\n documentMouseMoveListener: VoidListener;\n\n documentMouseUpListener: VoidListener;\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n @Inject(PLATFORM_ID) private platformId: any,\n private renderer: Renderer2,\n public tt: TreeTable,\n public el: ElementRef,\n public zone: NgZone\n ) {}\n\n ngAfterViewInit() {\n if (isPlatformBrowser(this.platformId)) {\n if (this.isEnabled()) {\n addClass(this.el.nativeElement, 'p-resizable-column');\n this.resizer = this.renderer.createElement('span');\n this.renderer.addClass(this.resizer, 'p-column-resizer');\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 ngOnDestroy() {\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})\nexport class TTReorderableColumn implements AfterViewInit, OnDestroy {\n @Input({ transform: booleanAttribute }) ttReorderableColumnDisabled: boolean | undefined;\n\n dragStartListener: VoidListener;\n\n dragOverListener: VoidListener;\n\n dragEnterListener: VoidListener;\n\n dragLeaveListener: VoidListener;\n\n mouseDownListener: VoidListener;\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n @Inject(PLATFORM_ID) private platformId: any,\n private renderer: Renderer2,\n public tt: TreeTable,\n public el: ElementRef,\n public zone: NgZone\n ) {}\n\n ngAfterViewInit() {\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' || hasClass(event.target, 'p-column-resizer')) 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 @HostListener('drop', ['$event'])\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 ngOnDestroy() {\n this.unbindEvents();\n }\n}\n\n@Directive({\n selector: '[ttSelectableRow]',\n standalone: false,\n host: {\n '[class.p-treetable-row-selected]': 'selected',\n '[attr.aria-checked]': 'selected'\n }\n})\nexport class TTSelectableRow implements OnInit, OnDestroy {\n @Input('ttSelectableRow') rowNode: any;\n\n @Input({ transform: booleanAttribute }) ttSelectableRowDisabled: boolean | undefined;\n\n selected: boolean | undefined;\n\n subscription: Subscription | undefined;\n\n constructor(\n public tt: TreeTable,\n public tableService: TreeTableService\n ) {\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 ngOnInit() {\n if (this.isEnabled()) {\n this.selected = this.tt.isSelected(this.rowNode.node);\n }\n }\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n if (this.isEnabled()) {\n this.tt.handleRowClick({\n originalEvent: event,\n rowNode: this.rowNode\n });\n }\n }\n\n @HostListener('keydown', ['$event'])\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 @HostListener('touchend', ['$event'])\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 ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Directive({\n selector: '[ttSelectableRowDblClick]',\n standalone: false,\n host: {\n '[class.p-treetable-row-selected]': 'selected'\n }\n})\nexport class TTSelectableRowDblClick implements OnInit, OnDestroy {\n @Input('ttSelectableRowDblClick') rowNode: any;\n\n @Input({ transform: booleanAttribute }) ttSelectableRowDisabled: boolean | undefined;\n\n selected: boolean | undefined;\n\n subscription: Subscription | undefined;\n\n constructor(\n public tt: TreeTable,\n public tableService: TreeTableService\n ) {\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 ngOnInit() {\n if (this.isEnabled()) {\n this.selected = this.tt.isSelected(this.rowNode.node);\n }\n }\n\n @HostListener('dblclick', ['$event'])\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 ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Directive({\n selector: '[ttContextMenuRow]',\n standalone: false,\n host: {\n '[class.p-treetable-contextmenu-row-selected]': 'selected',\n '[attr.tabindex]': 'isEnabled() ? 0 : undefined'\n }\n})\nexport class TTContextMenuRow {\n @Input('ttContextMenuRow') rowNode: any | undefined;\n\n @Input({ transform: booleanAttribute }) ttContextMenuRowDisabled: boolean | undefined;\n\n selected: boolean | undefined;\n\n subscription: Subscription | undefined;\n\n constructor(\n public tt: TreeTable,\n public tableService: TreeTableService,\n private el: ElementRef\n ) {\n if (this.isEnabled()) {\n this.subscription = this.tt.tableService.contextMenuSource$.subscribe((node) => {\n this.selected = this.tt.equals(this.rowNode.node, node);\n });\n }\n }\n\n @HostListener('contextmenu', ['$event'])\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 ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Component({\n selector: 'p-treeTableCheckbox',\n standalone: false,\n template: `\n <p-checkbox [ngModel]=\"checked\" (onChange)=\"onClick($event)\" [binary]=\"true\" [indeterminate]=\"partialChecked\" styleClass=\"p-treetable-node-checkbox\" [tabIndex]=\"-1\">\n <ng-container *ngIf=\"tt.checkboxIconTemplate || tt._checkboxIconTemplate\">\n <ng-template pTemplate=\"icon\">\n <ng-template *ngTemplateOutlet=\"tt.checkboxIconTemplate || tt._checkboxIconTemplate; context: { $implicit: checked, partialSelected: partialChecked }\"></ng-template>\n </ng-template>\n </ng-container>\n </p-checkbox>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TTCheckbox {\n @Input({ transform: booleanAttribute }) disabled: boolean | undefined;\n\n @Input('value') rowNode: any;\n\n checked: boolean | undefined;\n\n partialChecked: boolean | undefined;\n\n focused: boolean | undefined;\n\n subscription: Subscription | undefined;\n\n constructor(\n public tt: TreeTable,\n public tableService: TreeTableService,\n public cd: ChangeDetectorRef\n ) {\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 ngOnInit() {\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 ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n@Component({\n selector: 'p-treeTableHeaderCheckbox',\n standalone: false,\n template: `\n <p-checkbox [ngModel]=\"checked\" (onChange)=\"onClick($event)\" [binary]=\"true\" [disabled]=\"!tt.value || tt.value.length === 0\">\n <ng-container *ngIf=\"tt.headerCheckboxIconTemplate || tt._headerCheckboxIconTemplate\">\n <ng-template pTemplate=\"icon\">\n <ng-template *ngTemplateOutlet=\"tt.headerCheckboxIconTemplate || tt._headerCheckboxIconTemplate; context: { $implicit: checked }\"></ng-template>\n </ng-template>\n </ng-container>\n </p-checkbox>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TTHeaderCheckbox {\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 private cd: ChangeDetectorRef\n ) {\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 ngOnInit() {\n this.checked = this.updateCheckedState();\n }\n\n onClick(event: Event) {\n if ((this.tt.value || this.tt.filteredNodes) && (this.tt.value.length > 0 || this.tt.filteredNodes.length > 0)) {\n this.tt.toggleNodesWithCheckbox(event, !this.checked);\n }\n\n clearSelection();\n }\n\n ngOnDestroy() {\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})\nexport class TTEditableColumn implements AfterViewInit {\n @Input('ttEditableColumn') data: any;\n\n @Input('ttEditableColumnField') field: any;\n\n @Input({ transform: booleanAttribute }) ttEditableColumnDisabled: boolean | undefined;\n\n constructor(\n public tt: TreeTable,\n public el: ElementRef,\n public zone: NgZone\n ) {}\n\n ngAfterViewInit() {\n if (this.isEnabled()) {\n addClass(this.el.nativeElement, 'p-editable-column');\n }\n }\n\n @HostListener('click', ['$event'])\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 removeClass(this.tt.editingCell, 'p-cell-editing');\n this.openCell();\n }\n } else {\n this.openCell();\n }\n }\n }\n\n openCell() {\n this.tt.updateEditingCell(this.el.nativeElement, this.data, this.field);\n addClass(this.el.nativeElement, 'p-cell-editing');\n this.tt.onEditInit.emit({ field: this.field, data: this.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 removeClass(this.tt.editingCell, 'p-checkbox-icon');\n this.tt.editingCell = null;\n this.tt.unbindDocumentEditListener();\n }\n\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent) {\n if (this.isEnabled()) {\n //enter\n if (event.keyCode == 13 && !event.shiftKey) {\n if (this.tt.isEditingCellValid()) {\n removeClass(this.tt.editingCell, 'p-cell-editing');\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 removeClass(this.tt.editingCell, 'p-cell-editing');\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 && !hasClass(cell, 'p-cell-editing')) {\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 invokeElementMethod(targetCell, '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 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 (hasClass(prevCell, 'p-editable-column')) 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 (hasClass(nextCell, 'p-editable-column')) 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: 'p-treeTableCellEditor, p-treetablecelleditor, p-treetable-cell-editor',\n standalone: false,\n template: `\n <ng-container *ngIf=\"tt.editingCell === editableColumn.el.nativeElement\">\n <ng-container *ngTemplateOutlet=\"inputTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!tt.editingCell || tt.editingCell !== editableColumn.el.nativeElement\">\n <ng-container *ngTemplateOutlet=\"outputTemplate\"></ng-container>\n </ng-container>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class TreeTableCellEditor extends BaseComponent implements AfterContentInit {\n @ContentChildren(PrimeTemplate) templates: Nullable<QueryList<PrimeTemplate>>;\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 ngAfterContentInit() {\n (this.templates as QueryList<PrimeTemplate>).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]': `'p-element ' + styleClass`,\n '[attr.tabindex]': \"'0'\",\n '[attr.aria-expanded]': 'expanded',\n '[attr.aria-level]': 'level',\n '[attr.data-pc-section]': 'row',\n '[attr.role]': 'row'\n }\n})\nexport class TTRow {\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 @Input('ttRow') rowNode: any;\n\n constructor(\n public tt: TreeTable,\n public el: ElementRef,\n public zone: NgZone\n ) {}\n\n @HostListener('keydown', ['$event'])\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.containerViewChild?.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.containerViewChild?.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.containerViewChild?.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-p-highlight') || row.getAttribute('aria-checked') === 'true');\n rows.forEach((row: any) => {\n row.tabIndex = -1;\n });\n\n if (hasSelectedRow) {\n const selectedNodes = rows.filter((node) => getAttribute(node, 'data-p-highlight') || node.getAttribute('aria-checked') === '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 this.rowNode.node['expanded'] = true;\n\n this.tt.updateSerializedValue();\n this.tt.tableService.onUIUpdate(this.tt.value);\n this.rowNode.node['children'] ? this.restoreFocus(this.tt.toggleRowIndex + 1) : this.restoreFocus();\n\n this.tt.onNodeExpand.emit({\n originalEvent: event,\n node: this.rowNode.node\n });\n }\n\n collapse(event: Event) {\n this.rowNode.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: this.rowNode.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.containerViewChild?.nativeElement;\n const row = <any>findSingle(container, '.p-treetable-tbody').children[<number>index || this.tt.toggleRowIndex];\n const rows = [...find(container, 'tr')];\n\n rows &&\n rows.forEach((r: any) => {\n if (!row.isSameNode(r)) {\n r.tabIndex = -1;\n }\n });\n\n if (row) {\n row.tabIndex = 0;\n row.focus();\n }\n }, 25);\n });\n }\n}\n\n@Component({\n selector: 'p-treeTableToggler, p-treetabletoggler, p-treetable-toggler',\n standalone: false,\n template: `\n <button\n type=\"button\"\n class=\"p-treetable-toggler\"\n (click)=\"onClick($event)\"\n tabindex=\"-1\"\n pRipple\n [style.visibility]=\"rowNode.node.leaf === false || (rowNode.node.children && rowNode.node.children.length) ? 'visible' : 'hidden'\"\n [style.marginLeft]=\"rowNode.level * 16 + 'px'\"\n [attr.data-pc-section]=\"'rowtoggler'\"\n [attr.data-pc-group-section]=\"'rowactionbutton'\"\n [attr.aria-label]=\"toggleButtonAriaLabel\"\n >\n <ng-container *ngIf=\"!tt.togglerIconTemplate && !tt._togglerIconTemplate\">\n <ChevronDownIcon *ngIf=\"rowNode.node.expanded\" [attr.aria-hidden]=\"true\" />\n <ChevronRightIcon *ngIf=\"!rowNode.node.expanded\" [attr.aria-hidden]=\"true\" />\n </ng-container>\n <ng-template *ngTemplateOutlet=\"tt.togglerIconTemplate || tt._togglerIconTemplate; context: { $implicit: rowNode.node.expanded }\"></ng-template>\n </button>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class TreeTableToggler extends BaseComponent {\n @Input() rowNode: any;\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 this.rowNode.node.expanded = !this.rowNode.node.expanded;\n\n if (this.rowNode.node.expanded) {\n this.tt.onNodeExpand.emit({\n originalEvent: event,\n node: this.rowNode.node\n });\n } else {\n this.tt.onNodeCollapse.emit({\n originalEvent: event,\n node: this.rowNode.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 CheckIcon,\n MinusIcon,\n ChevronDownIcon,\n ChevronRightIcon,\n Checkbox,\n SharedModule,\n FormsModule\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|