1 line
255 KiB
Plaintext
1 line
255 KiB
Plaintext
{"version":3,"file":"index.mjs","sources":["../../src/treetable/BaseTreeTable.vue","../../src/treetable/FooterCell.vue","../../src/treetable/FooterCell.vue?vue&type=template&id=2533b3ba&lang.js","../../src/treetable/HeaderCell.vue","../../src/treetable/HeaderCell.vue?vue&type=template&id=443165a8&lang.js","../../src/treetable/BodyCell.vue","../../src/treetable/BodyCell.vue?vue&type=template&id=a4d989b8&lang.js","../../src/treetable/TreeTableRow.vue","../../src/treetable/TreeTableRow.vue?vue&type=template&id=631929fa&lang.js","../../src/treetable/TreeTable.vue","../../src/treetable/TreeTable.vue?vue&type=template&id=28d06f8b&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TreeTableStyle from 'primevue/treetable/style';\n\nexport default {\n name: 'BaseTreeTable',\n extends: BaseComponent,\n props: {\n value: {\n type: null,\n default: null\n },\n dataKey: {\n type: [String, Function],\n default: 'key'\n },\n expandedKeys: {\n type: null,\n default: null\n },\n selectionKeys: {\n type: null,\n default: null\n },\n selectionMode: {\n type: String,\n default: null\n },\n metaKeySelection: {\n type: Boolean,\n default: false\n },\n contextMenu: {\n type: Boolean,\n default: false\n },\n contextMenuSelection: {\n type: Object,\n default: null\n },\n rows: {\n type: Number,\n default: 0\n },\n first: {\n type: Number,\n default: 0\n },\n totalRecords: {\n type: Number,\n default: 0\n },\n paginator: {\n type: Boolean,\n default: false\n },\n paginatorPosition: {\n type: String,\n default: 'bottom'\n },\n alwaysShowPaginator: {\n type: Boolean,\n default: true\n },\n paginatorTemplate: {\n type: String,\n default: 'FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown'\n },\n pageLinkSize: {\n type: Number,\n default: 5\n },\n rowsPerPageOptions: {\n type: Array,\n default: null\n },\n currentPageReportTemplate: {\n type: String,\n default: '({currentPage} of {totalPages})'\n },\n lazy: {\n type: Boolean,\n default: false\n },\n loading: {\n type: Boolean,\n default: false\n },\n loadingIcon: {\n type: String,\n default: undefined\n },\n loadingMode: {\n type: String,\n default: 'mask'\n },\n rowHover: {\n type: Boolean,\n default: false\n },\n autoLayout: {\n type: Boolean,\n default: false\n },\n sortField: {\n type: [String, Function],\n default: null\n },\n sortOrder: {\n type: Number,\n default: null\n },\n defaultSortOrder: {\n type: Number,\n default: 1\n },\n multiSortMeta: {\n type: Array,\n default: null\n },\n sortMode: {\n type: String,\n default: 'single'\n },\n removableSort: {\n type: Boolean,\n default: false\n },\n filters: {\n type: Object,\n default: null\n },\n filterMode: {\n type: String,\n default: 'lenient'\n },\n filterLocale: {\n type: String,\n default: undefined\n },\n resizableColumns: {\n type: Boolean,\n default: false\n },\n columnResizeMode: {\n type: String,\n default: 'fit'\n },\n indentation: {\n type: Number,\n default: 1\n },\n showGridlines: {\n type: Boolean,\n default: false\n },\n scrollable: {\n type: Boolean,\n default: false\n },\n scrollHeight: {\n type: String,\n default: null\n },\n size: {\n type: String,\n default: null\n },\n tableStyle: {\n type: null,\n default: null\n },\n tableClass: {\n type: [String, Object],\n default: null\n },\n tableProps: {\n type: Object,\n default: null\n }\n },\n style: TreeTableStyle,\n provide() {\n return {\n $pcTreeTable: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <td :style=\"containerStyle\" :class=\"containerClass\" role=\"cell\" v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('footerCell') }\" :data-p-frozen-column=\"columnProp('frozen')\">\n <component v-if=\"column.children && column.children.footer\" :is=\"column.children.footer\" :column=\"column\" />\n <span v-if=\"columnProp('footer')\" :class=\"cx('columnFooter')\" v-bind=\"getColumnPT('columnFooter')\">{{ columnProp('footer') }}</span>\n </td>\n</template>\n\n<script>\nimport { getNextElementSibling, getOuterWidth, getPreviousElementSibling } from '@primeuix/utils/dom';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'FooterCell',\n hostName: 'TreeTable',\n extends: BaseComponent,\n props: {\n column: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: null\n }\n },\n data() {\n return {\n styleObject: {}\n };\n },\n mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n methods: {\n columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n frozen: this.columnProp('frozen'),\n size: this.$parentInstance?.size\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined;\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let pos = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n pos = getOuterWidth(next) + parseFloat(next.style['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n }\n }\n },\n computed: {\n containerClass() {\n return [this.columnProp('footerClass'), this.columnProp('class'), this.cx('footerCell')];\n },\n containerStyle() {\n let bodyStyle = this.columnProp('footerStyle');\n let columnStyle = this.columnProp('style');\n\n return this.columnProp('frozen') ? [columnStyle, bodyStyle, this.styleObject] : [columnStyle, bodyStyle];\n }\n }\n};\n</script>\n","<template>\n <td :style=\"containerStyle\" :class=\"containerClass\" role=\"cell\" v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('footerCell') }\" :data-p-frozen-column=\"columnProp('frozen')\">\n <component v-if=\"column.children && column.children.footer\" :is=\"column.children.footer\" :column=\"column\" />\n <span v-if=\"columnProp('footer')\" :class=\"cx('columnFooter')\" v-bind=\"getColumnPT('columnFooter')\">{{ columnProp('footer') }}</span>\n </td>\n</template>\n\n<script>\nimport { getNextElementSibling, getOuterWidth, getPreviousElementSibling } from '@primeuix/utils/dom';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'FooterCell',\n hostName: 'TreeTable',\n extends: BaseComponent,\n props: {\n column: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: null\n }\n },\n data() {\n return {\n styleObject: {}\n };\n },\n mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n methods: {\n columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n frozen: this.columnProp('frozen'),\n size: this.$parentInstance?.size\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined;\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let pos = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n pos = getOuterWidth(next) + parseFloat(next.style['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n }\n }\n },\n computed: {\n containerClass() {\n return [this.columnProp('footerClass'), this.columnProp('class'), this.cx('footerCell')];\n },\n containerStyle() {\n let bodyStyle = this.columnProp('footerStyle');\n let columnStyle = this.columnProp('style');\n\n return this.columnProp('frozen') ? [columnStyle, bodyStyle, this.styleObject] : [columnStyle, bodyStyle];\n }\n }\n};\n</script>\n","<template>\n <th\n :class=\"containerClass\"\n :style=\"[containerStyle]\"\n @click=\"onClick\"\n @keydown=\"onKeyDown\"\n :tabindex=\"columnProp('sortable') ? '0' : null\"\n :aria-sort=\"ariaSort\"\n role=\"columnheader\"\n v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('headerCell') }\"\n :data-p-sortable-column=\"columnProp('sortable')\"\n :data-p-resizable-column=\"resizableColumns\"\n :data-p-sorted=\"isColumnSorted()\"\n :data-p-frozen-column=\"columnProp('frozen')\"\n >\n <span v-if=\"resizableColumns && !columnProp('frozen')\" :class=\"cx('columnResizer')\" @mousedown=\"onResizeStart\" v-bind=\"getColumnPT('columnResizer')\"></span>\n <div :class=\"cx('columnHeaderContent')\" v-bind=\"getColumnPT('columnHeaderContent')\">\n <component v-if=\"column.children && column.children.header\" :is=\"column.children.header\" :column=\"column\" />\n <span v-if=\"columnProp('header')\" :class=\"cx('columnTitle')\" v-bind=\"getColumnPT('columnTitle')\">{{ columnProp('header') }}</span>\n <span v-if=\"columnProp('sortable')\" v-bind=\"getColumnPT('sort')\">\n <component :is=\"(column.children && column.children.sorticon) || sortableColumnIcon\" :sorted=\"sortState.sorted\" :sortOrder=\"sortState.sortOrder\" :class=\"cx('sortIcon')\" v-bind=\"getColumnPT('sortIcon')\" />\n </span>\n <Badge v-if=\"isMultiSorted()\" :class=\"cx('pcSortBadge')\" v-bind=\"getColumnPT('pcSortBadge')\" :value=\"getMultiSortMetaIndex() + 1\" size=\"small\" />\n </div>\n </th>\n</template>\n\n<script>\nimport { getAttribute, getIndex, getNextElementSibling, getOuterWidth, getPreviousElementSibling } from '@primeuix/utils/dom';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport SortAltIcon from '@primevue/icons/sortalt';\nimport SortAmountDownIcon from '@primevue/icons/sortamountdown';\nimport SortAmountUpAltIcon from '@primevue/icons/sortamountupalt';\nimport Badge from 'primevue/badge';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'HeaderCell',\n hostName: 'TreeTable',\n extends: BaseComponent,\n emits: ['column-click', 'column-resizestart'],\n props: {\n column: {\n type: Object,\n default: null\n },\n resizableColumns: {\n type: Boolean,\n default: false\n },\n sortField: {\n type: [String, Function],\n default: null\n },\n sortOrder: {\n type: Number,\n default: null\n },\n multiSortMeta: {\n type: Array,\n default: null\n },\n sortMode: {\n type: String,\n default: 'single'\n },\n index: {\n type: Number,\n default: null\n }\n },\n data() {\n return {\n styleObject: {}\n };\n },\n mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n methods: {\n columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n sorted: this.isColumnSorted(),\n frozen: this.$parentInstance.scrollable && this.columnProp('frozen'),\n resizable: this.resizableColumns,\n scrollable: this.$parentInstance.scrollable,\n showGridlines: this.$parentInstance.showGridlines,\n size: this.$parentInstance?.size\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo:\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let pos = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n pos = getOuterWidth(next) + parseFloat(next.style['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n\n let filterRow = this.$el.parentElement.nextElementSibling;\n\n if (filterRow) {\n let index = getIndex(this.$el);\n\n filterRow.children[index].style['inset-inline-start'] = this.styleObject['inset-inline-start'];\n filterRow.children[index].style['inset-inline-end'] = this.styleObject['inset-inline-end'];\n }\n }\n },\n onClick(event) {\n this.$emit('column-click', { originalEvent: event, column: this.column });\n },\n onKeyDown(event) {\n if ((event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') && event.currentTarget.nodeName === 'TH' && getAttribute(event.currentTarget, 'data-p-sortable-column')) {\n this.$emit('column-click', { originalEvent: event, column: this.column });\n\n event.preventDefault();\n }\n },\n onResizeStart(event) {\n this.$emit('column-resizestart', event);\n },\n getMultiSortMetaIndex() {\n let index = -1;\n\n for (let i = 0; i < this.multiSortMeta.length; i++) {\n let meta = this.multiSortMeta[i];\n\n if (meta.field === this.columnProp('field') || meta.field === this.columnProp('sortField')) {\n index = i;\n break;\n }\n }\n\n return index;\n },\n isMultiSorted() {\n return this.columnProp('sortable') && this.getMultiSortMetaIndex() > -1;\n },\n isColumnSorted() {\n return this.sortMode === 'single' ? this.sortField && (this.sortField === this.columnProp('field') || this.sortField === this.columnProp('sortField')) : this.isMultiSorted();\n }\n },\n computed: {\n containerClass() {\n return [this.columnProp('headerClass'), this.columnProp('class'), this.cx('headerCell')];\n },\n containerStyle() {\n let headerStyle = this.columnProp('headerStyle');\n let columnStyle = this.columnProp('style');\n\n return this.columnProp('frozen') ? [columnStyle, headerStyle, this.styleObject] : [columnStyle, headerStyle];\n },\n sortState() {\n let sorted = false;\n let sortOrder = null;\n\n if (this.sortMode === 'single') {\n sorted = this.sortField && (this.sortField === this.columnProp('field') || this.sortField === this.columnProp('sortField'));\n sortOrder = sorted ? this.sortOrder : 0;\n } else if (this.sortMode === 'multiple') {\n let metaIndex = this.getMultiSortMetaIndex();\n\n if (metaIndex > -1) {\n sorted = true;\n sortOrder = this.multiSortMeta[metaIndex].order;\n }\n }\n\n return {\n sorted,\n sortOrder\n };\n },\n sortableColumnIcon() {\n const { sorted, sortOrder } = this.sortState;\n\n if (!sorted) return SortAltIcon;\n else if (sorted && sortOrder > 0) return SortAmountUpAltIcon;\n else if (sorted && sortOrder < 0) return SortAmountDownIcon;\n\n return null;\n },\n ariaSort() {\n if (this.columnProp('sortable')) {\n const { sorted, sortOrder } = this.sortState;\n\n if (sorted && sortOrder < 0) return 'descending';\n else if (sorted && sortOrder > 0) return 'ascending';\n else return 'none';\n } else {\n return null;\n }\n }\n },\n components: {\n Badge,\n SortAltIcon: SortAltIcon,\n SortAmountUpAltIcon: SortAmountUpAltIcon,\n SortAmountDownIcon: SortAmountDownIcon\n }\n};\n</script>\n","<template>\n <th\n :class=\"containerClass\"\n :style=\"[containerStyle]\"\n @click=\"onClick\"\n @keydown=\"onKeyDown\"\n :tabindex=\"columnProp('sortable') ? '0' : null\"\n :aria-sort=\"ariaSort\"\n role=\"columnheader\"\n v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('headerCell') }\"\n :data-p-sortable-column=\"columnProp('sortable')\"\n :data-p-resizable-column=\"resizableColumns\"\n :data-p-sorted=\"isColumnSorted()\"\n :data-p-frozen-column=\"columnProp('frozen')\"\n >\n <span v-if=\"resizableColumns && !columnProp('frozen')\" :class=\"cx('columnResizer')\" @mousedown=\"onResizeStart\" v-bind=\"getColumnPT('columnResizer')\"></span>\n <div :class=\"cx('columnHeaderContent')\" v-bind=\"getColumnPT('columnHeaderContent')\">\n <component v-if=\"column.children && column.children.header\" :is=\"column.children.header\" :column=\"column\" />\n <span v-if=\"columnProp('header')\" :class=\"cx('columnTitle')\" v-bind=\"getColumnPT('columnTitle')\">{{ columnProp('header') }}</span>\n <span v-if=\"columnProp('sortable')\" v-bind=\"getColumnPT('sort')\">\n <component :is=\"(column.children && column.children.sorticon) || sortableColumnIcon\" :sorted=\"sortState.sorted\" :sortOrder=\"sortState.sortOrder\" :class=\"cx('sortIcon')\" v-bind=\"getColumnPT('sortIcon')\" />\n </span>\n <Badge v-if=\"isMultiSorted()\" :class=\"cx('pcSortBadge')\" v-bind=\"getColumnPT('pcSortBadge')\" :value=\"getMultiSortMetaIndex() + 1\" size=\"small\" />\n </div>\n </th>\n</template>\n\n<script>\nimport { getAttribute, getIndex, getNextElementSibling, getOuterWidth, getPreviousElementSibling } from '@primeuix/utils/dom';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport SortAltIcon from '@primevue/icons/sortalt';\nimport SortAmountDownIcon from '@primevue/icons/sortamountdown';\nimport SortAmountUpAltIcon from '@primevue/icons/sortamountupalt';\nimport Badge from 'primevue/badge';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'HeaderCell',\n hostName: 'TreeTable',\n extends: BaseComponent,\n emits: ['column-click', 'column-resizestart'],\n props: {\n column: {\n type: Object,\n default: null\n },\n resizableColumns: {\n type: Boolean,\n default: false\n },\n sortField: {\n type: [String, Function],\n default: null\n },\n sortOrder: {\n type: Number,\n default: null\n },\n multiSortMeta: {\n type: Array,\n default: null\n },\n sortMode: {\n type: String,\n default: 'single'\n },\n index: {\n type: Number,\n default: null\n }\n },\n data() {\n return {\n styleObject: {}\n };\n },\n mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n methods: {\n columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n sorted: this.isColumnSorted(),\n frozen: this.$parentInstance.scrollable && this.columnProp('frozen'),\n resizable: this.resizableColumns,\n scrollable: this.$parentInstance.scrollable,\n showGridlines: this.$parentInstance.showGridlines,\n size: this.$parentInstance?.size\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo:\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let pos = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n pos = getOuterWidth(next) + parseFloat(next.style['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n\n let filterRow = this.$el.parentElement.nextElementSibling;\n\n if (filterRow) {\n let index = getIndex(this.$el);\n\n filterRow.children[index].style['inset-inline-start'] = this.styleObject['inset-inline-start'];\n filterRow.children[index].style['inset-inline-end'] = this.styleObject['inset-inline-end'];\n }\n }\n },\n onClick(event) {\n this.$emit('column-click', { originalEvent: event, column: this.column });\n },\n onKeyDown(event) {\n if ((event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') && event.currentTarget.nodeName === 'TH' && getAttribute(event.currentTarget, 'data-p-sortable-column')) {\n this.$emit('column-click', { originalEvent: event, column: this.column });\n\n event.preventDefault();\n }\n },\n onResizeStart(event) {\n this.$emit('column-resizestart', event);\n },\n getMultiSortMetaIndex() {\n let index = -1;\n\n for (let i = 0; i < this.multiSortMeta.length; i++) {\n let meta = this.multiSortMeta[i];\n\n if (meta.field === this.columnProp('field') || meta.field === this.columnProp('sortField')) {\n index = i;\n break;\n }\n }\n\n return index;\n },\n isMultiSorted() {\n return this.columnProp('sortable') && this.getMultiSortMetaIndex() > -1;\n },\n isColumnSorted() {\n return this.sortMode === 'single' ? this.sortField && (this.sortField === this.columnProp('field') || this.sortField === this.columnProp('sortField')) : this.isMultiSorted();\n }\n },\n computed: {\n containerClass() {\n return [this.columnProp('headerClass'), this.columnProp('class'), this.cx('headerCell')];\n },\n containerStyle() {\n let headerStyle = this.columnProp('headerStyle');\n let columnStyle = this.columnProp('style');\n\n return this.columnProp('frozen') ? [columnStyle, headerStyle, this.styleObject] : [columnStyle, headerStyle];\n },\n sortState() {\n let sorted = false;\n let sortOrder = null;\n\n if (this.sortMode === 'single') {\n sorted = this.sortField && (this.sortField === this.columnProp('field') || this.sortField === this.columnProp('sortField'));\n sortOrder = sorted ? this.sortOrder : 0;\n } else if (this.sortMode === 'multiple') {\n let metaIndex = this.getMultiSortMetaIndex();\n\n if (metaIndex > -1) {\n sorted = true;\n sortOrder = this.multiSortMeta[metaIndex].order;\n }\n }\n\n return {\n sorted,\n sortOrder\n };\n },\n sortableColumnIcon() {\n const { sorted, sortOrder } = this.sortState;\n\n if (!sorted) return SortAltIcon;\n else if (sorted && sortOrder > 0) return SortAmountUpAltIcon;\n else if (sorted && sortOrder < 0) return SortAmountDownIcon;\n\n return null;\n },\n ariaSort() {\n if (this.columnProp('sortable')) {\n const { sorted, sortOrder } = this.sortState;\n\n if (sorted && sortOrder < 0) return 'descending';\n else if (sorted && sortOrder > 0) return 'ascending';\n else return 'none';\n } else {\n return null;\n }\n }\n },\n components: {\n Badge,\n SortAltIcon: SortAltIcon,\n SortAmountUpAltIcon: SortAmountUpAltIcon,\n SortAmountDownIcon: SortAmountDownIcon\n }\n};\n</script>\n","<template>\n <td :style=\"containerStyle\" :class=\"containerClass\" role=\"cell\" v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('bodyCell') }\" :data-p-frozen-column=\"columnProp('frozen')\">\n <div :class=\"cx('bodyCellContent')\" v-bind=\"getColumnPT('bodyCellContent')\">\n <button v-if=\"columnProp('expander')\" v-ripple type=\"button\" :class=\"cx('nodeToggleButton')\" @click=\"toggle\" :style=\"togglerStyle\" tabindex=\"-1\" v-bind=\"getColumnPT('nodeToggleButton')\" data-pc-group-section=\"rowactionbutton\">\n <template v-if=\"node.loading && loadingMode === 'icon'\">\n <component v-if=\"templates['nodetoggleicon']\" :is=\"templates['nodetoggleicon']\" />\n <!-- TODO: Deprecated since v4.0-->\n <component v-if=\"templates['nodetogglericon']\" :is=\"templates['nodetogglericon']\" />\n <SpinnerIcon v-else spin v-bind=\"ptm('nodetoggleicon')\" />\n </template>\n <template v-else>\n <component v-if=\"column.children && column.children.rowtoggleicon\" :is=\"column.children.rowtoggleicon\" :node=\"node\" :expanded=\"expanded\" :class=\"cx('nodeToggleIcon')\" />\n <component v-else-if=\"templates['nodetoggleicon']\" :is=\"templates['nodetoggleicon']\" :node=\"node\" :expanded=\"expanded\" :class=\"cx('nodeToggleIcon')\" />\n <!-- TODO: Deprecated since v4.0-->\n <component v-else-if=\"column.children && column.children.rowtogglericon\" :is=\"column.children.rowtogglericon\" :node=\"node\" :expanded=\"expanded\" :class=\"cx('nodeToggleIcon')\" />\n <component v-else-if=\"expanded\" :is=\"node.expandedIcon ? 'span' : 'ChevronDownIcon'\" :class=\"cx('nodeToggleIcon')\" v-bind=\"getColumnPT('nodeToggleIcon')\" />\n <component v-else :is=\"node.collapsedIcon ? 'span' : 'ChevronRightIcon'\" :class=\"cx('nodeToggleIcon')\" v-bind=\"getColumnPT('nodeToggleIcon')\" />\n </template>\n </button>\n <Checkbox\n v-if=\"checkboxSelectionMode && columnProp('expander')\"\n :modelValue=\"checked\"\n :binary=\"true\"\n :class=\"cx('pcNodeCheckbox')\"\n :disabled=\"node.selectable === false\"\n @change=\"toggleCheckbox\"\n :tabindex=\"-1\"\n :indeterminate=\"partialChecked\"\n :unstyled=\"unstyled\"\n :pt=\"getColumnCheckboxPT('pcNodeCheckbox')\"\n :data-p-partialchecked=\"partialChecked\"\n >\n <template #icon=\"slotProps\">\n <component v-if=\"templates['checkboxicon']\" :is=\"templates['checkboxicon']\" :checked=\"slotProps.checked\" :partialChecked=\"partialChecked\" :class=\"slotProps.class\" />\n </template>\n </Checkbox>\n <component v-if=\"column.children && column.children.body\" :is=\"column.children.body\" :node=\"node\" :column=\"column\" />\n <template v-else>{{ resolveFieldData(node.data, columnProp('field')) }}</template>\n </div>\n </td>\n</template>\n\n<script>\nimport { getNextElementSibling, getOuterWidth, getPreviousElementSibling } from '@primeuix/utils/dom';\nimport { resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport CheckIcon from '@primevue/icons/check';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport MinusIcon from '@primevue/icons/minus';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport Checkbox from 'primevue/checkbox';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'BodyCell',\n hostName: 'TreeTable',\n extends: BaseComponent,\n emits: ['node-toggle', 'checkbox-toggle'],\n props: {\n node: {\n type: Object,\n default: null\n },\n column: {\n type: Object,\n default: null\n },\n level: {\n type: Number,\n default: 0\n },\n indentation: {\n type: Number,\n default: 1\n },\n leaf: {\n type: Boolean,\n default: false\n },\n expanded: {\n type: Boolean,\n default: false\n },\n selectionMode: {\n type: String,\n default: null\n },\n checked: {\n type: Boolean,\n default: false\n },\n partialChecked: {\n type: Boolean,\n default: false\n },\n templates: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: null\n },\n loadingMode: {\n type: String,\n default: 'mask'\n }\n },\n data() {\n return {\n styleObject: {}\n };\n },\n mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n methods: {\n toggle() {\n this.$emit('node-toggle', this.node);\n },\n columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n selectable: this.$parentInstance.rowHover || this.$parentInstance.rowSelectionMode,\n selected: this.$parent.selected,\n frozen: this.columnProp('frozen'),\n scrollable: this.$parentInstance.scrollable,\n showGridlines: this.$parentInstance.showGridlines,\n size: this.$parentInstance?.size,\n node: this.node\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo\n },\n getColumnCheckboxPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n checked: this.checked,\n partialChecked: this.partialChecked,\n node: this.node\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let pos = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n pos = getOuterWidth(next) + parseFloat(next.style['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n }\n },\n resolveFieldData(rowData, field) {\n return resolveFieldData(rowData, field);\n },\n toggleCheckbox() {\n this.$emit('checkbox-toggle');\n }\n },\n computed: {\n containerClass() {\n return [this.columnProp('bodyClass'), this.columnProp('class'), this.cx('bodyCell')];\n },\n containerStyle() {\n let bodyStyle = this.columnProp('bodyStyle');\n let columnStyle = this.columnProp('style');\n\n return this.columnProp('frozen') ? [columnStyle, bodyStyle, this.styleObject] : [columnStyle, bodyStyle];\n },\n togglerStyle() {\n return {\n marginLeft: this.level * this.indentation + 'rem',\n visibility: this.leaf ? 'hidden' : 'visible'\n };\n },\n checkboxSelectionMode() {\n return this.selectionMode === 'checkbox';\n }\n },\n components: {\n Checkbox,\n ChevronRightIcon,\n ChevronDownIcon,\n CheckIcon,\n MinusIcon,\n SpinnerIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <td :style=\"containerStyle\" :class=\"containerClass\" role=\"cell\" v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('bodyCell') }\" :data-p-frozen-column=\"columnProp('frozen')\">\n <div :class=\"cx('bodyCellContent')\" v-bind=\"getColumnPT('bodyCellContent')\">\n <button v-if=\"columnProp('expander')\" v-ripple type=\"button\" :class=\"cx('nodeToggleButton')\" @click=\"toggle\" :style=\"togglerStyle\" tabindex=\"-1\" v-bind=\"getColumnPT('nodeToggleButton')\" data-pc-group-section=\"rowactionbutton\">\n <template v-if=\"node.loading && loadingMode === 'icon'\">\n <component v-if=\"templates['nodetoggleicon']\" :is=\"templates['nodetoggleicon']\" />\n <!-- TODO: Deprecated since v4.0-->\n <component v-if=\"templates['nodetogglericon']\" :is=\"templates['nodetogglericon']\" />\n <SpinnerIcon v-else spin v-bind=\"ptm('nodetoggleicon')\" />\n </template>\n <template v-else>\n <component v-if=\"column.children && column.children.rowtoggleicon\" :is=\"column.children.rowtoggleicon\" :node=\"node\" :expanded=\"expanded\" :class=\"cx('nodeToggleIcon')\" />\n <component v-else-if=\"templates['nodetoggleicon']\" :is=\"templates['nodetoggleicon']\" :node=\"node\" :expanded=\"expanded\" :class=\"cx('nodeToggleIcon')\" />\n <!-- TODO: Deprecated since v4.0-->\n <component v-else-if=\"column.children && column.children.rowtogglericon\" :is=\"column.children.rowtogglericon\" :node=\"node\" :expanded=\"expanded\" :class=\"cx('nodeToggleIcon')\" />\n <component v-else-if=\"expanded\" :is=\"node.expandedIcon ? 'span' : 'ChevronDownIcon'\" :class=\"cx('nodeToggleIcon')\" v-bind=\"getColumnPT('nodeToggleIcon')\" />\n <component v-else :is=\"node.collapsedIcon ? 'span' : 'ChevronRightIcon'\" :class=\"cx('nodeToggleIcon')\" v-bind=\"getColumnPT('nodeToggleIcon')\" />\n </template>\n </button>\n <Checkbox\n v-if=\"checkboxSelectionMode && columnProp('expander')\"\n :modelValue=\"checked\"\n :binary=\"true\"\n :class=\"cx('pcNodeCheckbox')\"\n :disabled=\"node.selectable === false\"\n @change=\"toggleCheckbox\"\n :tabindex=\"-1\"\n :indeterminate=\"partialChecked\"\n :unstyled=\"unstyled\"\n :pt=\"getColumnCheckboxPT('pcNodeCheckbox')\"\n :data-p-partialchecked=\"partialChecked\"\n >\n <template #icon=\"slotProps\">\n <component v-if=\"templates['checkboxicon']\" :is=\"templates['checkboxicon']\" :checked=\"slotProps.checked\" :partialChecked=\"partialChecked\" :class=\"slotProps.class\" />\n </template>\n </Checkbox>\n <component v-if=\"column.children && column.children.body\" :is=\"column.children.body\" :node=\"node\" :column=\"column\" />\n <template v-else>{{ resolveFieldData(node.data, columnProp('field')) }}</template>\n </div>\n </td>\n</template>\n\n<script>\nimport { getNextElementSibling, getOuterWidth, getPreviousElementSibling } from '@primeuix/utils/dom';\nimport { resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport CheckIcon from '@primevue/icons/check';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport MinusIcon from '@primevue/icons/minus';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport Checkbox from 'primevue/checkbox';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'BodyCell',\n hostName: 'TreeTable',\n extends: BaseComponent,\n emits: ['node-toggle', 'checkbox-toggle'],\n props: {\n node: {\n type: Object,\n default: null\n },\n column: {\n type: Object,\n default: null\n },\n level: {\n type: Number,\n default: 0\n },\n indentation: {\n type: Number,\n default: 1\n },\n leaf: {\n type: Boolean,\n default: false\n },\n expanded: {\n type: Boolean,\n default: false\n },\n selectionMode: {\n type: String,\n default: null\n },\n checked: {\n type: Boolean,\n default: false\n },\n partialChecked: {\n type: Boolean,\n default: false\n },\n templates: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: null\n },\n loadingMode: {\n type: String,\n default: 'mask'\n }\n },\n data() {\n return {\n styleObject: {}\n };\n },\n mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n methods: {\n toggle() {\n this.$emit('node-toggle', this.node);\n },\n columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n selectable: this.$parentInstance.rowHover || this.$parentInstance.rowSelectionMode,\n selected: this.$parent.selected,\n frozen: this.columnProp('frozen'),\n scrollable: this.$parentInstance.scrollable,\n showGridlines: this.$parentInstance.showGridlines,\n size: this.$parentInstance?.size,\n node: this.node\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo\n },\n getColumnCheckboxPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n checked: this.checked,\n partialChecked: this.partialChecked,\n node: this.node\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let pos = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n pos = getOuterWidth(next) + parseFloat(next.style['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n }\n },\n resolveFieldData(rowData, field) {\n return resolveFieldData(rowData, field);\n },\n toggleCheckbox() {\n this.$emit('checkbox-toggle');\n }\n },\n computed: {\n containerClass() {\n return [this.columnProp('bodyClass'), this.columnProp('class'), this.cx('bodyCell')];\n },\n containerStyle() {\n let bodyStyle = this.columnProp('bodyStyle');\n let columnStyle = this.columnProp('style');\n\n return this.columnProp('frozen') ? [columnStyle, bodyStyle, this.styleObject] : [columnStyle, bodyStyle];\n },\n togglerStyle() {\n return {\n marginLeft: this.level * this.indentation + 'rem',\n visibility: this.leaf ? 'hidden' : 'visible'\n };\n },\n checkboxSelectionMode() {\n return this.selectionMode === 'checkbox';\n }\n },\n components: {\n Checkbox,\n ChevronRightIcon,\n ChevronDownIcon,\n CheckIcon,\n MinusIcon,\n SpinnerIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <tr\n ref=\"node\"\n :class=\"containerClass\"\n :style=\"node.style\"\n :tabindex=\"tabindex\"\n role=\"row\"\n :aria-expanded=\"node.children && node.children.length ? expanded : undefined\"\n :aria-level=\"level + 1\"\n :aria-setsize=\"ariaSetSize\"\n :aria-posinset=\"ariaPosInset\"\n :aria-selected=\"getAriaSelected\"\n :aria-checked=\"checked || undefined\"\n @click=\"onClick\"\n @keydown=\"onKeyDown\"\n @touchend=\"onTouchEnd\"\n @contextmenu=\"onRowRightClick\"\n v-bind=\"ptm('row', ptmOptions)\"\n :data-p-selected=\"selected\"\n :data-p-selected-contextmenu=\"contextMenuSelection && isSelectedWithContextMenu\"\n >\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <TTBodyCell\n v-if=\"!columnProp(col, 'hidden')\"\n :column=\"col\"\n :node=\"node\"\n :level=\"level\"\n :leaf=\"leaf\"\n :indentation=\"indentation\"\n :expanded=\"expanded\"\n :selectionMode=\"selectionMode\"\n :checked=\"checked\"\n :partialChecked=\"partialChecked\"\n :templates=\"templates\"\n @node-toggle=\"$emit('node-toggle', $event)\"\n @checkbox-toggle=\"toggleCheckbox\"\n :index=\"i\"\n :loadingMode=\"loadingMode\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n ></TTBodyCell>\n </template>\n </tr>\n <template v-if=\"expanded && node.children && node.children.length\">\n <TreeTableRow\n v-for=\"childNode of node.children\"\n :key=\"nodeKey(childNode)\"\n :dataKey=\"dataKey\"\n :columns=\"columns\"\n :node=\"childNode\"\n :parentNode=\"node\"\n :level=\"level + 1\"\n :expandedKeys=\"expandedKeys\"\n :selectionMode=\"selectionMode\"\n :selectionKeys=\"selectionKeys\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :indentation=\"indentation\"\n :ariaPosInset=\"node.children.indexOf(childNode) + 1\"\n :ariaSetSize=\"node.children.length\"\n :templates=\"templates\"\n @node-toggle=\"$emit('node-toggle', $event)\"\n @node-click=\"$emit('node-click', $event)\"\n @row-rightclick=\"$emit('row-rightclick', $event)\"\n @checkbox-change=\"onCheckboxChange\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n</template>\n\n<script>\nimport { find, findSingle, focus, getAttribute, isClickable } from '@primeuix/utils/dom';\nimport { equals, resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport BodyCell from './BodyCell.vue';\n\nexport default {\n name: 'TreeTableRow',\n hostName: 'TreeTable',\n extends: BaseComponent,\n emits: ['node-click', 'node-toggle', 'checkbox-change', 'nodeClick', 'nodeToggle', 'checkboxChange', 'row-rightclick', 'rowRightclick'],\n props: {\n node: {\n type: null,\n default: null\n },\n dataKey: {\n type: [String, Function],\n default: 'key'\n },\n parentNode: {\n type: null,\n default: null\n },\n columns: {\n type: null,\n default: null\n },\n expandedKeys: {\n type: null,\n default: null\n },\n selectionKeys: {\n type: null,\n default: null\n },\n selectionMode: {\n type: String,\n default: null\n },\n level: {\n type: Number,\n default: 0\n },\n indentation: {\n type: Number,\n default: 1\n },\n tabindex: {\n type: Number,\n default: -1\n },\n ariaSetSize: {\n type: Number,\n default: null\n },\n ariaPosInset: {\n type: Number,\n default: null\n },\n loadingMode: {\n type: String,\n default: 'mask'\n },\n templates: {\n type: Object,\n default: null\n },\n contextMenu: {\n type: Boolean,\n default: false\n },\n contextMenuSelection: {\n type: Object,\n default: null\n }\n },\n nodeTouched: false,\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n toggle() {\n this.$emit('node-toggle', this.node);\n },\n onClick(event) {\n if (isClickable(event.target) || getAttribute(event.target, 'data-pc-section') === 'nodetogglebutton' || getAttribute(event.target, 'data-pc-section') === 'nodetoggleicon' || event.target.tagName === 'path') {\n return;\n }\n\n this.setTabIndexForSelectionMode(event, this.nodeTouched);\n\n this.$emit('node-click', {\n originalEvent: event,\n nodeTouched: this.nodeTouched,\n node: this.node\n });\n this.nodeTouched = false;\n },\n onRowRightClick(event) {\n this.$emit('row-rightclick', {\n originalEvent: event,\n node: this.node\n });\n },\n onTouchEnd() {\n this.nodeTouched = true;\n },\n nodeKey(node) {\n return resolveFieldData(node, this.dataKey);\n },\n onKeyDown(event, item) {\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n if (!isClickable(event.target)) {\n this.onEnterKey(event, item);\n }\n\n break;\n\n case 'Tab':\n this.onTabKey(event);\n break;\n\n default:\n break;\n }\n },\n onArrowDownKey(event) {\n const nextElementSibling = event.currentTarget.nextElementSibling;\n\n nextElementSibling && this.focusRowChange(event.currentTarget, nextElementSibling);\n\n event.preventDefault();\n },\n onArrowUpKey(event) {\n const previousElementSibling = event.currentTarget.previousElementSibling;\n\n previousElementSibling && this.focusRowChange(event.currentTarget, previousElementSibling);\n\n event.preventDefault();\n },\n onArrowRightKey(event) {\n const ishiddenIcon = findSingle(event.currentTarget, 'button').style.visibility === 'hidden';\n const togglerElement = findSingle(this.$refs.node, '[data-pc-section=\"nodetogglebutton\"]');\n\n if (ishiddenIcon) return;\n\n !this.expanded && togglerElement.click();\n\n this.$nextTick(() => {\n this.onArrowDownKey(event);\n });\n\n event.preventDefault();\n },\n onArrowLeftKey(event) {\n if (this.level === 0 && !this.expanded) {\n return;\n }\n\n const currentTarget = event.currentTarget;\n const ishiddenIcon = findSingle(currentTarget, 'button').style.visibility === 'hidden';\n const togglerElement = findSingle(currentTarget, '[data-pc-section=\"nodetogglebutton\"]');\n\n if (this.expanded && !ishiddenIcon) {\n togglerElement.click();\n\n return;\n }\n\n const target = this.findBeforeClickableNode(currentTarget);\n\n target && this.focusRowChange(currentTarget, target);\n },\n onHomeKey(event) {\n const findFirstElement = findSingle(event.currentTarget.parentElement, `tr[aria-level=\"${this.level + 1}\"]`);\n\n findFirstElement && focus(findFirstElement);\n\n event.preventDefault();\n },\n onEndKey(event) {\n const nodes = find(event.currentTarget.parentElement, `tr[aria-level=\"${this.level + 1}\"]`);\n const findFirstElement = nodes[nodes.length - 1];\n\n focus(findFirstElement);\n\n event.preventDefault();\n },\n onEnterKey(event) {\n event.preventDefault();\n this.setTabIndexForSelectionMode(event, this.nodeTouched);\n\n if (this.selectionMode === 'checkbox') {\n this.toggleCheckbox();\n\n return;\n }\n\n this.$emit('node-click', {\n originalEvent: event,\n nodeTouched: this.nodeTouched,\n node: this.node\n });\n\n this.nodeTouched = false;\n },\n onTabKey() {\n const rows = [...find(this.$refs.node.parentElement, 'tr')];\n const hasSelectedRow = rows.some((row) => getAttribute(row, 'data-p-selected') || row.getAttribute('aria-checked') === 'true');\n\n rows.forEach((row) => {\n row.tabIndex = -1;\n });\n\n if (hasSelectedRow) {\n const selectedNodes = rows.filter((node) => getAttribute(node, 'data-p-selected') || node.getAttribute('aria-checked') === 'true');\n\n selectedNodes[0].tabIndex = 0;\n\n return;\n }\n\n rows[0].tabIndex = 0;\n },\n focusRowChange(firstFocusableRow, currentFocusedRow) {\n firstFocusableRow.tabIndex = '-1';\n currentFocusedRow.tabIndex = '0';\n focus(currentFocusedRow);\n },\n findBeforeClickableNode(node) {\n const prevNode = node.previousElementSibling;\n\n if (prevNode) {\n const prevNodeButton = prevNode.querySelector('button');\n\n if (prevNodeButton && prevNodeButton.style.visibility !== 'hidden') {\n return prevNode;\n }\n\n return this.findBeforeClickableNode(prevNode);\n }\n\n return null;\n },\n toggleCheckbox() {\n let _selectionKeys = this.selectionKeys ? { ...this.selectionKeys } : {};\n const _check = !this.checked;\n\n this.propagateDown(this.node, _check, _selectionKeys);\n\n this.$emit('checkbox-change', {\n node: this.node,\n check: _check,\n selectionKeys: _selectionKeys\n });\n },\n propagateDown(node, check, selectionKeys) {\n if (check) selectionKeys[this.nodeKey(node)] = { checked: true, partialChecked: false };\n else delete selectionKeys[this.nodeKey(node)];\n\n if (node.children && node.children.length) {\n for (let child of node.children) {\n this.propagateDown(child, check, selectionKeys);\n }\n }\n },\n propagateUp(event) {\n let check = event.check;\n let _selectionKeys = { ...event.selectionKeys };\n let checkedChildCount = 0;\n let childPartialSelected = false;\n\n for (let child of this.node.children) {\n if (_selectionKeys[this.nodeKey(child)] && _selectionKeys[this.nodeKey(child)].checked) checkedChildCount++;\n else if (_selectionKeys[this.nodeKey(child)] && _selectionKeys[this.nodeKey(child)].partialChecked) childPartialSelected = true;\n }\n\n if (check && checkedChildCount === this.node.children.length) {\n _selectionKeys[this.nodeKey(this.node)] = { checked: true, partialChecked: false };\n } else {\n if (!check) {\n delete _selectionKeys[this.nodeKey(this.node)];\n }\n\n if (childPartialSelected || (checkedChildCount > 0 && checkedChildCount !== this.node.children.length)) _selectionKeys[this.nodeKey(this.node)] = { checked: false, partialChecked: true };\n else _selectionKeys[this.nodeKey(this.node)] = { checked: false, partialChecked: false };\n }\n\n this.$emit('checkbox-change', {\n node: event.node,\n check: event.check,\n selectionKeys: _selectionKeys\n });\n },\n onCheckboxChange(event) {\n let check = event.check;\n let _selectionKeys = { ...event.selectionKeys };\n let checkedChildCount = 0;\n let childPartialSelected = false;\n\n for (let child of this.node.children) {\n if (_selectionKeys[this.nodeKey(child)] && _selectionKeys[this.nodeKey(child)].checked) checkedChildCount++;\n else if (_selectionKeys[this.nodeKey(child)] && _selectionKeys[this.nodeKey(child)].partialChecked) childPartialSelected = true;\n }\n\n if (check && checkedChildCount === this.node.children.length) {\n _selectionKeys[this.nodeKey(this.node)] = { checked: true, partialChecked: false };\n } else {\n if (!check) {\n delete _selectionKeys[this.nodeKey(this.node)];\n }\n\n if (childPartialSelected || (checkedChildCount > 0 && checkedChildCount !== this.node.children.length)) _selectionKeys[this.nodeKey(this.node)] = { checked: false, partialChecked: true };\n else _selectionKeys[this.nodeKey(this.node)] = { checked: false, partialChecked: false };\n }\n\n this.$emit('checkbox-change', {\n node: event.node,\n check: event.check,\n selectionKeys: _selectionKeys\n });\n },\n setTabIndexForSelectionMode(event, nodeTouched) {\n if (this.selectionMode !== null) {\n const elements = [...find(this.$refs.node.parentElement, 'tr')];\n\n event.currentTarget.tabIndex = nodeTouched === false ? -1 : 0;\n\n if (elements.every((element) => element.tabIndex === -1)) {\n elements[0].tabIndex = 0;\n }\n }\n }\n },\n computed: {\n containerClass() {\n return [this.node.styleClass, this.cx('row')];\n },\n expanded() {\n return this.expandedKeys && this.expandedKeys[this.nodeKey(this.node)] === true;\n },\n leaf() {\n return this.node.leaf === false ? false : !(this.node.children && this.node.children.length);\n },\n selected() {\n return this.selectionMode && this.selectionKeys ? this.selectionKeys[this.nodeKey(this.node)] === true : false;\n },\n isSelectedWithContextMenu() {\n if (this.node && this.contextMenuSelection) {\n return equals(this.node, this.contextMenuSelection, this.dataKey);\n }\n\n return false;\n },\n checked() {\n return this.selectionKeys ? this.selectionKeys[this.nodeKey(this.node)] && this.selectionKeys[this.nodeKey(this.node)].checked : false;\n },\n partialChecked() {\n return this.selectionKeys ? this.selectionKeys[this.nodeKey(this.node)] && this.selectionKeys[this.nodeKey(this.node)].partialChecked : false;\n },\n getAriaSelected() {\n return this.selectionMode === 'single' || this.selectionMode === 'multiple' ? this.selected : null;\n },\n ptmOptions() {\n return {\n context: {\n selectable: this.$parentInstance.rowHover || this.$parentInstance.rowSelectionMode,\n selected: this.selected,\n scrollable: this.$parentInstance.scrollable\n }\n };\n }\n },\n components: {\n TTBodyCell: BodyCell\n }\n};\n</script>\n","<template>\n <tr\n ref=\"node\"\n :class=\"containerClass\"\n :style=\"node.style\"\n :tabindex=\"tabindex\"\n role=\"row\"\n :aria-expanded=\"node.children && node.children.length ? expanded : undefined\"\n :aria-level=\"level + 1\"\n :aria-setsize=\"ariaSetSize\"\n :aria-posinset=\"ariaPosInset\"\n :aria-selected=\"getAriaSelected\"\n :aria-checked=\"checked || undefined\"\n @click=\"onClick\"\n @keydown=\"onKeyDown\"\n @touchend=\"onTouchEnd\"\n @contextmenu=\"onRowRightClick\"\n v-bind=\"ptm('row', ptmOptions)\"\n :data-p-selected=\"selected\"\n :data-p-selected-contextmenu=\"contextMenuSelection && isSelectedWithContextMenu\"\n >\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <TTBodyCell\n v-if=\"!columnProp(col, 'hidden')\"\n :column=\"col\"\n :node=\"node\"\n :level=\"level\"\n :leaf=\"leaf\"\n :indentation=\"indentation\"\n :expanded=\"expanded\"\n :selectionMode=\"selectionMode\"\n :checked=\"checked\"\n :partialChecked=\"partialChecked\"\n :templates=\"templates\"\n @node-toggle=\"$emit('node-toggle', $event)\"\n @checkbox-toggle=\"toggleCheckbox\"\n :index=\"i\"\n :loadingMode=\"loadingMode\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n ></TTBodyCell>\n </template>\n </tr>\n <template v-if=\"expanded && node.children && node.children.length\">\n <TreeTableRow\n v-for=\"childNode of node.children\"\n :key=\"nodeKey(childNode)\"\n :dataKey=\"dataKey\"\n :columns=\"columns\"\n :node=\"childNode\"\n :parentNode=\"node\"\n :level=\"level + 1\"\n :expandedKeys=\"expandedKeys\"\n :selectionMode=\"selectionMode\"\n :selectionKeys=\"selectionKeys\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :indentation=\"indentation\"\n :ariaPosInset=\"node.children.indexOf(childNode) + 1\"\n :ariaSetSize=\"node.children.length\"\n :templates=\"templates\"\n @node-toggle=\"$emit('node-toggle', $event)\"\n @node-click=\"$emit('node-click', $event)\"\n @row-rightclick=\"$emit('row-rightclick', $event)\"\n @checkbox-change=\"onCheckboxChange\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n</template>\n\n<script>\nimport { find, findSingle, focus, getAttribute, isClickable } from '@primeuix/utils/dom';\nimport { equals, resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport BodyCell from './BodyCell.vue';\n\nexport default {\n name: 'TreeTableRow',\n hostName: 'TreeTable',\n extends: BaseComponent,\n emits: ['node-click', 'node-toggle', 'checkbox-change', 'nodeClick', 'nodeToggle', 'checkboxChange', 'row-rightclick', 'rowRightclick'],\n props: {\n node: {\n type: null,\n default: null\n },\n dataKey: {\n type: [String, Function],\n default: 'key'\n },\n parentNode: {\n type: null,\n default: null\n },\n columns: {\n type: null,\n default: null\n },\n expandedKeys: {\n type: null,\n default: null\n },\n selectionKeys: {\n type: null,\n default: null\n },\n selectionMode: {\n type: String,\n default: null\n },\n level: {\n type: Number,\n default: 0\n },\n indentation: {\n type: Number,\n default: 1\n },\n tabindex: {\n type: Number,\n default: -1\n },\n ariaSetSize: {\n type: Number,\n default: null\n },\n ariaPosInset: {\n type: Number,\n default: null\n },\n loadingMode: {\n type: String,\n default: 'mask'\n },\n templates: {\n type: Object,\n default: null\n },\n contextMenu: {\n type: Boolean,\n default: false\n },\n contextMenuSelection: {\n type: Object,\n default: null\n }\n },\n nodeTouched: false,\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n toggle() {\n this.$emit('node-toggle', this.node);\n },\n onClick(event) {\n if (isClickable(event.target) || getAttribute(event.target, 'data-pc-section') === 'nodetogglebutton' || getAttribute(event.target, 'data-pc-section') === 'nodetoggleicon' || event.target.tagName === 'path') {\n return;\n }\n\n this.setTabIndexForSelectionMode(event, this.nodeTouched);\n\n this.$emit('node-click', {\n originalEvent: event,\n nodeTouched: this.nodeTouched,\n node: this.node\n });\n this.nodeTouched = false;\n },\n onRowRightClick(event) {\n this.$emit('row-rightclick', {\n originalEvent: event,\n node: this.node\n });\n },\n onTouchEnd() {\n this.nodeTouched = true;\n },\n nodeKey(node) {\n return resolveFieldData(node, this.dataKey);\n },\n onKeyDown(event, item) {\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n if (!isClickable(event.target)) {\n this.onEnterKey(event, item);\n }\n\n break;\n\n case 'Tab':\n this.onTabKey(event);\n break;\n\n default:\n break;\n }\n },\n onArrowDownKey(event) {\n const nextElementSibling = event.currentTarget.nextElementSibling;\n\n nextElementSibling && this.focusRowChange(event.currentTarget, nextElementSibling);\n\n event.preventDefault();\n },\n onArrowUpKey(event) {\n const previousElementSibling = event.currentTarget.previousElementSibling;\n\n previousElementSibling && this.focusRowChange(event.currentTarget, previousElementSibling);\n\n event.preventDefault();\n },\n onArrowRightKey(event) {\n const ishiddenIcon = findSingle(event.currentTarget, 'button').style.visibility === 'hidden';\n const togglerElement = findSingle(this.$refs.node, '[data-pc-section=\"nodetogglebutton\"]');\n\n if (ishiddenIcon) return;\n\n !this.expanded && togglerElement.click();\n\n this.$nextTick(() => {\n this.onArrowDownKey(event);\n });\n\n event.preventDefault();\n },\n onArrowLeftKey(event) {\n if (this.level === 0 && !this.expanded) {\n return;\n }\n\n const currentTarget = event.currentTarget;\n const ishiddenIcon = findSingle(currentTarget, 'button').style.visibility === 'hidden';\n const togglerElement = findSingle(currentTarget, '[data-pc-section=\"nodetogglebutton\"]');\n\n if (this.expanded && !ishiddenIcon) {\n togglerElement.click();\n\n return;\n }\n\n const target = this.findBeforeClickableNode(currentTarget);\n\n target && this.focusRowChange(currentTarget, target);\n },\n onHomeKey(event) {\n const findFirstElement = findSingle(event.currentTarget.parentElement, `tr[aria-level=\"${this.level + 1}\"]`);\n\n findFirstElement && focus(findFirstElement);\n\n event.preventDefault();\n },\n onEndKey(event) {\n const nodes = find(event.currentTarget.parentElement, `tr[aria-level=\"${this.level + 1}\"]`);\n const findFirstElement = nodes[nodes.length - 1];\n\n focus(findFirstElement);\n\n event.preventDefault();\n },\n onEnterKey(event) {\n event.preventDefault();\n this.setTabIndexForSelectionMode(event, this.nodeTouched);\n\n if (this.selectionMode === 'checkbox') {\n this.toggleCheckbox();\n\n return;\n }\n\n this.$emit('node-click', {\n originalEvent: event,\n nodeTouched: this.nodeTouched,\n node: this.node\n });\n\n this.nodeTouched = false;\n },\n onTabKey() {\n const rows = [...find(this.$refs.node.parentElement, 'tr')];\n const hasSelectedRow = rows.some((row) => getAttribute(row, 'data-p-selected') || row.getAttribute('aria-checked') === 'true');\n\n rows.forEach((row) => {\n row.tabIndex = -1;\n });\n\n if (hasSelectedRow) {\n const selectedNodes = rows.filter((node) => getAttribute(node, 'data-p-selected') || node.getAttribute('aria-checked') === 'true');\n\n selectedNodes[0].tabIndex = 0;\n\n return;\n }\n\n rows[0].tabIndex = 0;\n },\n focusRowChange(firstFocusableRow, currentFocusedRow) {\n firstFocusableRow.tabIndex = '-1';\n currentFocusedRow.tabIndex = '0';\n focus(currentFocusedRow);\n },\n findBeforeClickableNode(node) {\n const prevNode = node.previousElementSibling;\n\n if (prevNode) {\n const prevNodeButton = prevNode.querySelector('button');\n\n if (prevNodeButton && prevNodeButton.style.visibility !== 'hidden') {\n return prevNode;\n }\n\n return this.findBeforeClickableNode(prevNode);\n }\n\n return null;\n },\n toggleCheckbox() {\n let _selectionKeys = this.selectionKeys ? { ...this.selectionKeys } : {};\n const _check = !this.checked;\n\n this.propagateDown(this.node, _check, _selectionKeys);\n\n this.$emit('checkbox-change', {\n node: this.node,\n check: _check,\n selectionKeys: _selectionKeys\n });\n },\n propagateDown(node, check, selectionKeys) {\n if (check) selectionKeys[this.nodeKey(node)] = { checked: true, partialChecked: false };\n else delete selectionKeys[this.nodeKey(node)];\n\n if (node.children && node.children.length) {\n for (let child of node.children) {\n this.propagateDown(child, check, selectionKeys);\n }\n }\n },\n propagateUp(event) {\n let check = event.check;\n let _selectionKeys = { ...event.selectionKeys };\n let checkedChildCount = 0;\n let childPartialSelected = false;\n\n for (let child of this.node.children) {\n if (_selectionKeys[this.nodeKey(child)] && _selectionKeys[this.nodeKey(child)].checked) checkedChildCount++;\n else if (_selectionKeys[this.nodeKey(child)] && _selectionKeys[this.nodeKey(child)].partialChecked) childPartialSelected = true;\n }\n\n if (check && checkedChildCount === this.node.children.length) {\n _selectionKeys[this.nodeKey(this.node)] = { checked: true, partialChecked: false };\n } else {\n if (!check) {\n delete _selectionKeys[this.nodeKey(this.node)];\n }\n\n if (childPartialSelected || (checkedChildCount > 0 && checkedChildCount !== this.node.children.length)) _selectionKeys[this.nodeKey(this.node)] = { checked: false, partialChecked: true };\n else _selectionKeys[this.nodeKey(this.node)] = { checked: false, partialChecked: false };\n }\n\n this.$emit('checkbox-change', {\n node: event.node,\n check: event.check,\n selectionKeys: _selectionKeys\n });\n },\n onCheckboxChange(event) {\n let check = event.check;\n let _selectionKeys = { ...event.selectionKeys };\n let checkedChildCount = 0;\n let childPartialSelected = false;\n\n for (let child of this.node.children) {\n if (_selectionKeys[this.nodeKey(child)] && _selectionKeys[this.nodeKey(child)].checked) checkedChildCount++;\n else if (_selectionKeys[this.nodeKey(child)] && _selectionKeys[this.nodeKey(child)].partialChecked) childPartialSelected = true;\n }\n\n if (check && checkedChildCount === this.node.children.length) {\n _selectionKeys[this.nodeKey(this.node)] = { checked: true, partialChecked: false };\n } else {\n if (!check) {\n delete _selectionKeys[this.nodeKey(this.node)];\n }\n\n if (childPartialSelected || (checkedChildCount > 0 && checkedChildCount !== this.node.children.length)) _selectionKeys[this.nodeKey(this.node)] = { checked: false, partialChecked: true };\n else _selectionKeys[this.nodeKey(this.node)] = { checked: false, partialChecked: false };\n }\n\n this.$emit('checkbox-change', {\n node: event.node,\n check: event.check,\n selectionKeys: _selectionKeys\n });\n },\n setTabIndexForSelectionMode(event, nodeTouched) {\n if (this.selectionMode !== null) {\n const elements = [...find(this.$refs.node.parentElement, 'tr')];\n\n event.currentTarget.tabIndex = nodeTouched === false ? -1 : 0;\n\n if (elements.every((element) => element.tabIndex === -1)) {\n elements[0].tabIndex = 0;\n }\n }\n }\n },\n computed: {\n containerClass() {\n return [this.node.styleClass, this.cx('row')];\n },\n expanded() {\n return this.expandedKeys && this.expandedKeys[this.nodeKey(this.node)] === true;\n },\n leaf() {\n return this.node.leaf === false ? false : !(this.node.children && this.node.children.length);\n },\n selected() {\n return this.selectionMode && this.selectionKeys ? this.selectionKeys[this.nodeKey(this.node)] === true : false;\n },\n isSelectedWithContextMenu() {\n if (this.node && this.contextMenuSelection) {\n return equals(this.node, this.contextMenuSelection, this.dataKey);\n }\n\n return false;\n },\n checked() {\n return this.selectionKeys ? this.selectionKeys[this.nodeKey(this.node)] && this.selectionKeys[this.nodeKey(this.node)].checked : false;\n },\n partialChecked() {\n return this.selectionKeys ? this.selectionKeys[this.nodeKey(this.node)] && this.selectionKeys[this.nodeKey(this.node)].partialChecked : false;\n },\n getAriaSelected() {\n return this.selectionMode === 'single' || this.selectionMode === 'multiple' ? this.selected : null;\n },\n ptmOptions() {\n return {\n context: {\n selectable: this.$parentInstance.rowHover || this.$parentInstance.rowSelectionMode,\n selected: this.selected,\n scrollable: this.$parentInstance.scrollable\n }\n };\n }\n },\n components: {\n TTBodyCell: BodyCell\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" data-scrollselectors=\".p-treetable-scrollable-body\" :data-p=\"dataP\" v-bind=\"ptmi('root')\">\n <slot></slot>\n <transition name=\"p-overlay-mask\">\n <div v-if=\"loading && loadingMode === 'mask'\" :class=\"cx('loading')\" v-bind=\"ptm('loading')\">\n <div :class=\"cx('mask')\" v-bind=\"ptm('mask')\">\n <slot name=\"loadingicon\" :class=\"cx('loadingIcon')\">\n <component :is=\"loadingIcon ? 'span' : 'SpinnerIcon'\" spin :class=\"[cx('loadingIcon'), loadingIcon]\" v-bind=\"ptm('loadingIcon')\" />\n </slot>\n </div>\n </div>\n </transition>\n <div v-if=\"$slots.header\" :class=\"cx('header')\" v-bind=\"ptm('header')\">\n <slot name=\"header\"></slot>\n </div>\n <TTPaginator\n v-if=\"paginatorTop\"\n :rows=\"d_rows\"\n :first=\"d_first\"\n :totalRecords=\"totalRecordsLength\"\n :pageLinkSize=\"pageLinkSize\"\n :template=\"paginatorTemplate\"\n :rowsPerPageOptions=\"rowsPerPageOptions\"\n :currentPageReportTemplate=\"currentPageReportTemplate\"\n :class=\"cx('pcPaginator', { position: 'top' })\"\n @page=\"onPage($event)\"\n :alwaysShow=\"alwaysShowPaginator\"\n :unstyled=\"unstyled\"\n :pt=\"ptm('pcPaginator')\"\n >\n <template v-if=\"$slots.paginatorcontainer\" #container=\"slotProps\">\n <slot\n name=\"paginatorcontainer\"\n :first=\"slotProps.first\"\n :last=\"slotProps.last\"\n :rows=\"slotProps.rows\"\n :page=\"slotProps.page\"\n :pageCount=\"slotProps.pageCount\"\n :totalRecords=\"slotProps.totalRecords\"\n :firstPageCallback=\"slotProps.firstPageCallback\"\n :lastPageCallback=\"slotProps.lastPageCallback\"\n :prevPageCallback=\"slotProps.prevPageCallback\"\n :nextPageCallback=\"slotProps.nextPageCallback\"\n :rowChangeCallback=\"slotProps.rowChangeCallback\"\n :pageLinks=\"slotProps.pageLinks\"\n :changePageCallback=\"slotProps.changePageCallback\"\n ></slot>\n </template>\n <template v-if=\"$slots.paginatorstart\" #start>\n <slot name=\"paginatorstart\"></slot>\n </template>\n <template v-if=\"$slots.paginatorend\" #end>\n <slot name=\"paginatorend\"></slot>\n </template>\n <template v-if=\"$slots.paginatorfirstpagelinkicon\" #firstpagelinkicon=\"slotProps\">\n <slot name=\"paginatorfirstpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorprevpagelinkicon\" #prevpagelinkicon=\"slotProps\">\n <slot name=\"paginatorprevpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatornextpagelinkicon\" #nextpagelinkicon=\"slotProps\">\n <slot name=\"paginatornextpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorlastpagelinkicon\" #lastpagelinkicon=\"slotProps\">\n <slot name=\"paginatorlastpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorjumptopagedropdownicon\" #jumptopagedropdownicon=\"slotProps\">\n <slot name=\"paginatorjumptopagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorrowsperpagedropdownicon\" #rowsperpagedropdownicon=\"slotProps\">\n <slot name=\"paginatorrowsperpagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n </TTPaginator>\n <div :class=\"cx('tableContainer')\" :style=\"[sx('tableContainer'), { maxHeight: scrollHeight }]\" v-bind=\"ptm('tableContainer')\">\n <table ref=\"table\" role=\"treegrid\" :class=\"[cx('table'), tableClass]\" :style=\"tableStyle\" v-bind=\"{ ...tableProps, ...ptm('table') }\">\n <thead :class=\"cx('thead')\" :style=\"sx('thead')\" role=\"rowgroup\" v-bind=\"ptm('thead')\">\n <tr role=\"row\" v-bind=\"ptm('headerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <TTHeaderCell\n v-if=\"!columnProp(col, 'hidden')\"\n :column=\"col\"\n :resizableColumns=\"resizableColumns\"\n :sortField=\"d_sortField\"\n :sortOrder=\"d_sortOrder\"\n :multiSortMeta=\"d_multiSortMeta\"\n :sortMode=\"sortMode\"\n @column-click=\"onColumnHeaderClick($event)\"\n @column-resizestart=\"onColumnResizeStart($event)\"\n :index=\"i\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n ></TTHeaderCell>\n </template>\n </tr>\n <tr v-if=\"hasColumnFilter()\" v-bind=\"ptm('headerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <th v-if=\"!columnProp(col, 'hidden')\" :class=\"getFilterColumnHeaderClass(col)\" :style=\"[columnProp(col, 'style'), columnProp(col, 'filterHeaderStyle')]\" v-bind=\"ptm('headerCell', ptHeaderCellOptions(col))\">\n <component v-if=\"col.children && col.children.filter\" :is=\"col.children.filter\" :column=\"col\" :index=\"i\" />\n </th>\n </template>\n </tr>\n </thead>\n <tbody :class=\"cx('tbody')\" role=\"rowgroup\" v-bind=\"ptm('tbody')\">\n <template v-if=\"!empty\">\n <TTRow\n v-for=\"(node, index) of dataToRender\"\n :key=\"nodeKey(node)\"\n :dataKey=\"dataKey\"\n :columns=\"columns\"\n :node=\"node\"\n :level=\"0\"\n :expandedKeys=\"d_expandedKeys\"\n :indentation=\"indentation\"\n :selectionMode=\"selectionMode\"\n :selectionKeys=\"selectionKeys\"\n :ariaSetSize=\"dataToRender.length\"\n :ariaPosInset=\"index + 1\"\n :tabindex=\"setTabindex(node, index)\"\n :loadingMode=\"loadingMode\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :templates=\"$slots\"\n @node-toggle=\"onNodeToggle\"\n @node-click=\"onNodeClick\"\n @checkbox-change=\"onCheckboxChange\"\n @row-rightclick=\"onRowRightClick($event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n ></TTRow>\n </template>\n <tr v-else :class=\"cx('emptyMessage')\" v-bind=\"ptm('emptyMessage')\">\n <td :colspan=\"columns.length\" v-bind=\"ptm('emptyMessageCell')\">\n <slot name=\"empty\"></slot>\n </td>\n </tr>\n </tbody>\n <tfoot v-if=\"hasFooter\" :class=\"cx('tfoot')\" :style=\"sx('tfoot')\" role=\"rowgroup\" v-bind=\"ptm('tfoot')\">\n <tr role=\"row\" v-bind=\"ptm('footerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <TTFooterCell v-if=\"!columnProp(col, 'hidden')\" :column=\"col\" :index=\"i\" :unstyled=\"unstyled\" :pt=\"pt\"></TTFooterCell>\n </template>\n </tr>\n </tfoot>\n </table>\n </div>\n <TTPaginator\n v-if=\"paginatorBottom\"\n :rows=\"d_rows\"\n :first=\"d_first\"\n :totalRecords=\"totalRecordsLength\"\n :pageLinkSize=\"pageLinkSize\"\n :template=\"paginatorTemplate\"\n :rowsPerPageOptions=\"rowsPerPageOptions\"\n :currentPageReportTemplate=\"currentPageReportTemplate\"\n :class=\"cx('pcPaginator', { position: 'bottom' })\"\n @page=\"onPage($event)\"\n :alwaysShow=\"alwaysShowPaginator\"\n :unstyled=\"unstyled\"\n :pt=\"ptm('pcPaginator')\"\n >\n <template v-if=\"$slots.paginatorcontainer\" #container=\"slotProps\">\n <slot\n name=\"paginatorcontainer\"\n :first=\"slotProps.first\"\n :last=\"slotProps.last\"\n :rows=\"slotProps.rows\"\n :page=\"slotProps.page\"\n :pageCount=\"slotProps.pageCount\"\n :pageLinks=\"slotProps.pageLinks\"\n :totalRecords=\"slotProps.totalRecords\"\n :firstPageCallback=\"slotProps.firstPageCallback\"\n :lastPageCallback=\"slotProps.lastPageCallback\"\n :prevPageCallback=\"slotProps.prevPageCallback\"\n :nextPageCallback=\"slotProps.nextPageCallback\"\n :rowChangeCallback=\"slotProps.rowChangeCallback\"\n :changePageCallback=\"slotProps.changePageCallback\"\n ></slot>\n </template>\n <template v-if=\"$slots.paginatorstart\" #start>\n <slot name=\"paginatorstart\"></slot>\n </template>\n <template v-if=\"$slots.paginatorend\" #end>\n <slot name=\"paginatorend\"></slot>\n </template>\n <template v-if=\"$slots.paginatorfirstpagelinkicon\" #firstpagelinkicon=\"slotProps\">\n <slot name=\"paginatorfirstpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorprevpagelinkicon\" #prevpagelinkicon=\"slotProps\">\n <slot name=\"paginatorprevpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatornextpagelinkicon\" #nextpagelinkicon=\"slotProps\">\n <slot name=\"paginatornextpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorlastpagelinkicon\" #lastpagelinkicon=\"slotProps\">\n <slot name=\"paginatorlastpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorjumptopagedropdownicon\" #jumptopagedropdownicon=\"slotProps\">\n <slot name=\"paginatorjumptopagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorrowsperpagedropdownicon\" #rowsperpagedropdownicon=\"slotProps\">\n <slot name=\"paginatorrowsperpagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n </TTPaginator>\n <div v-if=\"$slots.footer\" :class=\"cx('footer')\" v-bind=\"ptm('footer')\">\n <slot name=\"footer\"></slot>\n </div>\n <div ref=\"resizeHelper\" :class=\"cx('columnResizeIndicator')\" style=\"display: none\" v-bind=\"ptm('columnResizeIndicator')\"></div>\n </div>\n</template>\n\n<script>\nimport { cn } from '@primeuix/utils';\nimport { addStyle, clearSelection, find, getAttribute, getIndex, getOffset, getOuterWidth, isRTL, setAttribute } from '@primeuix/utils/dom';\nimport { localeComparator, resolveFieldData, sort } from '@primeuix/utils/object';\nimport { FilterService } from '@primevue/core/api';\nimport { getVNodeProp, HelperSet } from '@primevue/core/utils';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport Paginator from 'primevue/paginator';\nimport BaseTreeTable from './BaseTreeTable.vue';\nimport FooterCell from './FooterCell.vue';\nimport HeaderCell from './HeaderCell.vue';\nimport TreeTableRow from './TreeTableRow.vue';\n\nexport default {\n name: 'TreeTable',\n extends: BaseTreeTable,\n inheritAttrs: false,\n emits: [\n 'node-expand',\n 'node-collapse',\n 'update:expandedKeys',\n 'update:selectionKeys',\n 'node-select',\n 'node-unselect',\n 'update:first',\n 'update:rows',\n 'page',\n 'update:sortField',\n 'update:sortOrder',\n 'update:multiSortMeta',\n 'sort',\n 'filter',\n 'column-resize-end',\n 'update:contextMenuSelection',\n 'row-contextmenu'\n ],\n provide() {\n return {\n $columns: this.d_columns\n };\n },\n data() {\n return {\n d_expandedKeys: this.expandedKeys || {},\n d_first: this.first,\n d_rows: this.rows,\n d_sortField: this.sortField,\n d_sortOrder: this.sortOrder,\n d_multiSortMeta: this.multiSortMeta ? [...this.multiSortMeta] : [],\n hasASelectedNode: false,\n d_columns: new HelperSet({ type: 'Column' })\n };\n },\n documentColumnResizeListener: null,\n documentColumnResizeEndListener: null,\n lastResizeHelperX: null,\n resizeColumnElement: null,\n watch: {\n expandedKeys(newValue) {\n this.d_expandedKeys = newValue;\n },\n first(newValue) {\n this.d_first = newValue;\n },\n rows(newValue) {\n this.d_rows = newValue;\n },\n sortField(newValue) {\n this.d_sortField = newValue;\n },\n sortOrder(newValue) {\n this.d_sortOrder = newValue;\n },\n multiSortMeta(newValue) {\n this.d_multiSortMeta = newValue;\n }\n },\n beforeUnmount() {\n this.destroyStyleElement();\n this.d_columns.clear();\n },\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n ptHeaderCellOptions(column) {\n return {\n context: {\n frozen: this.columnProp(column, 'frozen')\n }\n };\n },\n onNodeToggle(node) {\n const key = this.nodeKey(node);\n\n if (this.d_expandedKeys[key]) {\n delete this.d_expandedKeys[key];\n this.$emit('node-collapse', node);\n } else {\n this.d_expandedKeys[key] = true;\n this.$emit('node-expand', node);\n }\n\n this.d_expandedKeys = { ...this.d_expandedKeys };\n this.$emit('update:expandedKeys', this.d_expandedKeys);\n },\n onNodeClick(event) {\n if (this.rowSelectionMode && event.node.selectable !== false) {\n const metaSelection = event.nodeTouched ? false : this.metaKeySelection;\n const _selectionKeys = metaSelection ? this.handleSelectionWithMetaKey(event) : this.handleSelectionWithoutMetaKey(event);\n\n this.$emit('update:selectionKeys', _selectionKeys);\n }\n },\n nodeKey(node) {\n return resolveFieldData(node, this.dataKey);\n },\n handleSelectionWithMetaKey(event) {\n const originalEvent = event.originalEvent;\n const node = event.node;\n const nodeKey = this.nodeKey(node);\n const metaKey = originalEvent.metaKey || originalEvent.ctrlKey;\n const selected = this.isNodeSelected(node);\n let _selectionKeys;\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n _selectionKeys = {};\n } else {\n _selectionKeys = { ...this.selectionKeys };\n delete _selectionKeys[nodeKey];\n }\n\n this.$emit('node-unselect', node);\n } else {\n if (this.isSingleSelectionMode()) {\n _selectionKeys = {};\n } else if (this.isMultipleSelectionMode()) {\n _selectionKeys = !metaKey ? {} : this.selectionKeys ? { ...this.selectionKeys } : {};\n }\n\n _selectionKeys[nodeKey] = true;\n this.$emit('node-select', node);\n }\n\n return _selectionKeys;\n },\n handleSelectionWithoutMetaKey(event) {\n const node = event.node;\n const nodeKey = this.nodeKey(node);\n const selected = this.isNodeSelected(node);\n let _selectionKeys;\n\n if (this.isSingleSelectionMode()) {\n if (selected) {\n _selectionKeys = {};\n this.$emit('node-unselect', node);\n } else {\n _selectionKeys = {};\n _selectionKeys[nodeKey] = true;\n this.$emit('node-select', node);\n }\n } else {\n if (selected) {\n _selectionKeys = { ...this.selectionKeys };\n delete _selectionKeys[nodeKey];\n\n this.$emit('node-unselect', node);\n } else {\n _selectionKeys = this.selectionKeys ? { ...this.selectionKeys } : {};\n _selectionKeys[nodeKey] = true;\n\n this.$emit('node-select', node);\n }\n }\n\n return _selectionKeys;\n },\n onCheckboxChange(event) {\n this.$emit('update:selectionKeys', event.selectionKeys);\n\n if (event.check) this.$emit('node-select', event.node);\n else this.$emit('node-unselect', event.node);\n },\n onRowRightClick(event) {\n if (this.contextMenu) {\n clearSelection();\n event.originalEvent.target.focus();\n }\n\n this.$emit('update:contextMenuSelection', event.node);\n this.$emit('row-contextmenu', event);\n },\n isSingleSelectionMode() {\n return this.selectionMode === 'single';\n },\n isMultipleSelectionMode() {\n return this.selectionMode === 'multiple';\n },\n onPage(event) {\n this.d_first = event.first;\n this.d_rows = event.rows;\n\n let pageEvent = this.createLazyLoadEvent(event);\n\n pageEvent.pageCount = event.pageCount;\n pageEvent.page = event.page;\n\n this.d_expandedKeys = {};\n this.$emit('update:expandedKeys', this.d_expandedKeys);\n this.$emit('update:first', this.d_first);\n this.$emit('update:rows', this.d_rows);\n this.$emit('page', pageEvent);\n },\n resetPage() {\n this.d_first = 0;\n this.$emit('update:first', this.d_first);\n },\n getFilterColumnHeaderClass(column) {\n return [this.cx('headerCell', { column }), this.columnProp(column, 'filterHeaderClass')];\n },\n onColumnHeaderClick(e) {\n let event = e.originalEvent;\n let column = e.column;\n\n if (this.columnProp(column, 'sortable')) {\n const targetNode = event.target;\n const columnField = this.columnProp(column, 'sortField') || this.columnProp(column, 'field');\n\n if (\n getAttribute(targetNode, 'data-p-sortable-column') === true ||\n getAttribute(targetNode, 'data-pc-section') === 'columntitle' ||\n getAttribute(targetNode, 'data-pc-section') === 'columnheadercontent' ||\n getAttribute(targetNode, 'data-pc-section') === 'sorticon' ||\n getAttribute(targetNode.parentElement, 'data-pc-section') === 'sorticon' ||\n getAttribute(targetNode.parentElement.parentElement, 'data-pc-section') === 'sorticon' ||\n targetNode.closest('[data-p-sortable-column=\"true\"]')\n ) {\n clearSelection();\n\n if (this.sortMode === 'single') {\n if (this.d_sortField === columnField) {\n if (this.removableSort && this.d_sortOrder * -1 === this.defaultSortOrder) {\n this.d_sortOrder = null;\n this.d_sortField = null;\n } else {\n this.d_sortOrder = this.d_sortOrder * -1;\n }\n } else {\n this.d_sortOrder = this.defaultSortOrder;\n this.d_sortField = columnField;\n }\n\n this.$emit('update:sortField', this.d_sortField);\n this.$emit('update:sortOrder', this.d_sortOrder);\n this.resetPage();\n } else if (this.sortMode === 'multiple') {\n let metaKey = event.metaKey || event.ctrlKey;\n\n if (!metaKey) {\n this.d_multiSortMeta = this.d_multiSortMeta.filter((meta) => meta.field === columnField);\n }\n\n this.addMultiSortField(columnField);\n this.$emit('update:multiSortMeta', this.d_multiSortMeta);\n }\n\n this.$emit('sort', this.createLazyLoadEvent(event));\n }\n }\n },\n addMultiSortField(field) {\n let index = this.d_multiSortMeta.findIndex((meta) => meta.field === field);\n\n if (index >= 0) {\n if (this.removableSort && this.d_multiSortMeta[index].order * -1 === this.defaultSortOrder) this.d_multiSortMeta.splice(index, 1);\n else this.d_multiSortMeta[index] = { field: field, order: this.d_multiSortMeta[index].order * -1 };\n } else {\n this.d_multiSortMeta.push({ field: field, order: this.defaultSortOrder });\n }\n\n this.d_multiSortMeta = [...this.d_multiSortMeta];\n },\n sortSingle(nodes) {\n return this.sortNodesSingle(nodes);\n },\n sortNodesSingle(nodes) {\n let _nodes = [...nodes];\n const comparer = localeComparator();\n\n _nodes.sort((node1, node2) => {\n const value1 = resolveFieldData(node1.data, this.d_sortField);\n const value2 = resolveFieldData(node2.data, this.d_sortField);\n\n return sort(value1, value2, this.d_sortOrder, comparer);\n });\n\n return _nodes;\n },\n sortMultiple(nodes) {\n return this.sortNodesMultiple(nodes);\n },\n sortNodesMultiple(nodes) {\n let _nodes = [...nodes];\n\n _nodes.sort((node1, node2) => {\n return this.multisortField(node1, node2, 0);\n });\n\n return _nodes;\n },\n multisortField(node1, node2, index) {\n const value1 = resolveFieldData(node1.data, this.d_multiSortMeta[index].field);\n const value2 = resolveFieldData(node2.data, this.d_multiSortMeta[index].field);\n const comparer = localeComparator();\n\n if (value1 === value2) {\n return this.d_multiSortMeta.length - 1 > index ? this.multisortField(node1, node2, index + 1) : 0;\n }\n\n return sort(value1, value2, this.d_multiSortMeta[index].order, comparer);\n },\n filter(value) {\n let filteredNodes = [];\n const strict = this.filterMode === 'strict';\n\n for (let node of value) {\n let copyNode = { ...node };\n let localMatch = true;\n let globalMatch = false;\n\n for (let j = 0; j < this.columns.length; j++) {\n let col = this.columns[j];\n let filterField = this.columnProp(col, 'filterField') || this.columnProp(col, 'field');\n\n //local\n if (Object.prototype.hasOwnProperty.call(this.filters, filterField)) {\n let filterMatchMode = this.columnProp(col, 'filterMatchMode') || 'startsWith';\n let filterValue = this.filters[filterField];\n let filterConstraint = FilterService.filters[filterMatchMode];\n let paramsWithoutNode = { filterField, filterValue, filterConstraint, strict };\n\n if (\n (strict && !(this.findFilteredNodes(copyNode, paramsWithoutNode) || this.isFilterMatched(copyNode, paramsWithoutNode))) ||\n (!strict && !(this.isFilterMatched(copyNode, paramsWithoutNode) || this.findFilteredNodes(copyNode, paramsWithoutNode)))\n ) {\n localMatch = false;\n }\n\n if (!localMatch) {\n break;\n }\n }\n\n //global\n if (this.hasGlobalFilter() && !globalMatch) {\n let copyNodeForGlobal = { ...copyNode };\n let filterValue = this.filters['global'];\n let filterConstraint = FilterService.filters['contains'];\n let globalFilterParamsWithoutNode = { filterField, filterValue, filterConstraint, strict };\n\n if (\n (strict && (this.findFilteredNodes(copyNodeForGlobal, globalFilterParamsWithoutNode) || this.isFilterMatched(copyNodeForGlobal, globalFilterParamsWithoutNode))) ||\n (!strict && (this.isFilterMatched(copyNodeForGlobal, globalFilterParamsWithoutNode) || this.findFilteredNodes(copyNodeForGlobal, globalFilterParamsWithoutNode)))\n ) {\n globalMatch = true;\n copyNode = copyNodeForGlobal;\n }\n }\n }\n\n let matches = localMatch;\n\n if (this.hasGlobalFilter()) {\n matches = localMatch && globalMatch;\n }\n\n if (matches) {\n filteredNodes.push(copyNode);\n }\n }\n\n let filterEvent = this.createLazyLoadEvent(event);\n\n filterEvent.filteredValue = filteredNodes;\n this.$emit('filter', filterEvent);\n\n return filteredNodes;\n },\n findFilteredNodes(node, paramsWithoutNode) {\n if (node) {\n let matched = false;\n\n if (node.children) {\n let childNodes = [...node.children];\n\n node.children = [];\n\n for (let childNode of childNodes) {\n let copyChildNode = { ...childNode };\n\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 isFilterMatched(node, { filterField, filterValue, filterConstraint, strict }) {\n let matched = false;\n let dataFieldValue = resolveFieldData(node.data, filterField);\n\n if (filterConstraint(dataFieldValue, filterValue, this.filterLocale)) {\n matched = true;\n }\n\n if (!matched || (strict && !this.isNodeLeaf(node))) {\n matched = this.findFilteredNodes(node, { filterField, filterValue, filterConstraint, strict }) || matched;\n }\n\n return matched;\n },\n isNodeSelected(node) {\n return this.selectionMode && this.selectionKeys ? this.selectionKeys[this.nodeKey(node)] === true : false;\n },\n isNodeLeaf(node) {\n return node.leaf === false ? false : !(node.children && node.children.length);\n },\n createLazyLoadEvent(event) {\n let filterMatchModes;\n\n if (this.hasFilters()) {\n filterMatchModes = {};\n this.columns.forEach((col) => {\n if (this.columnProp(col, 'field')) {\n filterMatchModes[col.props.field] = this.columnProp(col, 'filterMatchMode');\n }\n });\n }\n\n return {\n originalEvent: event,\n first: this.d_first,\n rows: this.d_rows,\n sortField: this.d_sortField,\n sortOrder: this.d_sortOrder,\n multiSortMeta: this.d_multiSortMeta,\n filters: this.filters,\n filterMatchModes: filterMatchModes\n };\n },\n onColumnResizeStart(event) {\n let containerLeft = getOffset(this.$el).left;\n\n this.resizeColumnElement = event.target.parentElement;\n this.columnResizing = true;\n this.lastResizeHelperX = event.pageX - containerLeft + this.$el.scrollLeft;\n\n this.bindColumnResizeEvents();\n },\n onColumnResize(event) {\n let containerLeft = getOffset(this.$el).left;\n\n this.$el.setAttribute('data-p-unselectable-text', 'true');\n !this.isUnstyled && addStyle(this.$el, { 'user-select': 'none' });\n this.$refs.resizeHelper.style.height = this.$el.offsetHeight + 'px';\n this.$refs.resizeHelper.style.top = 0 + 'px';\n this.$refs.resizeHelper.style.left = event.pageX - containerLeft + this.$el.scrollLeft + 'px';\n\n this.$refs.resizeHelper.style.display = 'block';\n },\n onColumnResizeEnd() {\n let delta = isRTL(this.$el) ? this.lastResizeHelperX - this.$refs.resizeHelper.offsetLeft : this.$refs.resizeHelper.offsetLeft - this.lastResizeHelperX;\n let columnWidth = this.resizeColumnElement.offsetWidth;\n let newColumnWidth = columnWidth + delta;\n let minWidth = this.resizeColumnElement.style.minWidth || 15;\n\n if (columnWidth + delta > parseInt(minWidth, 10)) {\n if (this.columnResizeMode === 'fit') {\n let nextColumn = this.resizeColumnElement.nextElementSibling;\n let nextColumnWidth = nextColumn.offsetWidth - delta;\n\n if (newColumnWidth > 15 && nextColumnWidth > 15) {\n this.resizeTableCells(newColumnWidth, nextColumnWidth);\n }\n } else if (this.columnResizeMode === 'expand') {\n const tableWidth = this.$refs.table.offsetWidth + delta + 'px';\n\n const updateTableWidth = (el) => {\n !!el && (el.style.width = el.style.minWidth = tableWidth);\n };\n\n // Reasoning: resize table cells before updating the table width so that it can use existing computed cell widths and adjust only the one column.\n this.resizeTableCells(newColumnWidth);\n updateTableWidth(this.$refs.table);\n }\n\n this.$emit('column-resize-end', {\n element: this.resizeColumnElement,\n delta: delta\n });\n }\n\n this.$refs.resizeHelper.style.display = 'none';\n this.resizeColumn = null;\n this.$el.removeAttribute('data-p-unselectable-text');\n !this.isUnstyled && (this.$el.style['user-select'] = '');\n\n this.unbindColumnResizeEvents();\n },\n resizeTableCells(newColumnWidth, nextColumnWidth) {\n let colIndex = getIndex(this.resizeColumnElement);\n let widths = [];\n let headers = find(this.$refs.table, 'thead[data-pc-section=\"thead\"] > tr > th');\n\n headers.forEach((header) => widths.push(getOuterWidth(header)));\n\n this.destroyStyleElement();\n this.createStyleElement();\n\n let innerHTML = '';\n let selector = `[data-pc-name=\"treetable\"][${this.$attrSelector}] > [data-pc-section=\"tablecontainer\"] > table[data-pc-section=\"table\"]`;\n\n widths.forEach((width, index) => {\n let colWidth = index === colIndex ? newColumnWidth : nextColumnWidth && index === colIndex + 1 ? nextColumnWidth : width;\n let style = `width: ${colWidth}px !important; max-width: ${colWidth}px !important`;\n\n innerHTML += `\n ${selector} > thead[data-pc-section=\"thead\"] > tr > th:nth-child(${index + 1}),\n ${selector} > tbody[data-pc-section=\"tbody\"] > tr > td:nth-child(${index + 1}),\n ${selector} > tfoot[data-pc-section=\"tfoot\"] > tr > td:nth-child(${index + 1}) {\n ${style}\n }\n `;\n });\n\n this.styleElement.innerHTML = innerHTML;\n },\n bindColumnResizeEvents() {\n if (!this.documentColumnResizeListener) {\n this.documentColumnResizeListener = document.addEventListener('mousemove', (event) => {\n if (this.columnResizing) {\n this.onColumnResize(event);\n }\n });\n }\n\n if (!this.documentColumnResizeEndListener) {\n this.documentColumnResizeEndListener = document.addEventListener('mouseup', () => {\n if (this.columnResizing) {\n this.columnResizing = false;\n this.onColumnResizeEnd();\n }\n });\n }\n },\n unbindColumnResizeEvents() {\n if (this.documentColumnResizeListener) {\n document.removeEventListener('document', this.documentColumnResizeListener);\n this.documentColumnResizeListener = null;\n }\n\n if (this.documentColumnResizeEndListener) {\n document.removeEventListener('document', this.documentColumnResizeEndListener);\n this.documentColumnResizeEndListener = null;\n }\n },\n onColumnKeyDown(event, col) {\n if ((event.code === 'Enter' || event.code === 'NumpadEnter') && event.currentTarget.nodeName === 'TH' && getAttribute(event.currentTarget, 'data-p-sortable-column')) {\n this.onColumnHeaderClick(event, col);\n }\n },\n hasColumnFilter() {\n if (this.columns) {\n for (let col of this.columns) {\n if (col.children && col.children.filter) {\n return true;\n }\n }\n }\n\n return false;\n },\n hasFilters() {\n return this.filters && Object.keys(this.filters).length > 0 && this.filters.constructor === Object;\n },\n hasGlobalFilter() {\n return this.filters && Object.prototype.hasOwnProperty.call(this.filters, 'global');\n },\n getItemLabel(node) {\n return node.data.name;\n },\n createStyleElement() {\n this.styleElement = document.createElement('style');\n this.styleElement.type = 'text/css';\n setAttribute(this.styleElement, 'nonce', this.$primevue?.config?.csp?.nonce);\n document.head.appendChild(this.styleElement);\n },\n destroyStyleElement() {\n if (this.styleElement) {\n document.head.removeChild(this.styleElement);\n this.styleElement = null;\n }\n },\n setTabindex(node, index) {\n if (this.isNodeSelected(node)) {\n this.hasASelectedNode = true;\n\n return 0;\n }\n\n if (this.selectionMode) {\n if (!this.isNodeSelected(node) && index === 0 && !this.hasASelectedNode) return 0;\n } else if (!this.selectionMode && index === 0) {\n return 0;\n }\n\n return -1;\n }\n },\n computed: {\n columns() {\n return this.d_columns.get(this);\n },\n processedData() {\n if (this.lazy) {\n return this.value;\n } else {\n if (this.value && this.value.length) {\n let data = this.value;\n\n if (this.sorted) {\n if (this.sortMode === 'single') data = this.sortSingle(data);\n else if (this.sortMode === 'multiple') data = this.sortMultiple(data);\n }\n\n if (this.hasFilters()) {\n data = this.filter(data);\n }\n\n return data;\n } else {\n return null;\n }\n }\n },\n dataToRender() {\n const data = this.processedData;\n\n if (this.paginator) {\n const first = this.lazy ? 0 : this.d_first;\n\n return data.slice(first, first + this.d_rows);\n } else {\n return data;\n }\n },\n empty() {\n const data = this.processedData;\n\n return !data || data.length === 0;\n },\n sorted() {\n return this.d_sortField || (this.d_multiSortMeta && this.d_multiSortMeta.length > 0);\n },\n hasFooter() {\n let hasFooter = false;\n\n for (let col of this.columns) {\n if (this.columnProp(col, 'footer') || (col.children && col.children.footer)) {\n hasFooter = true;\n break;\n }\n }\n\n return hasFooter;\n },\n paginatorTop() {\n return this.paginator && (this.paginatorPosition !== 'bottom' || this.paginatorPosition === 'both');\n },\n paginatorBottom() {\n return this.paginator && (this.paginatorPosition !== 'top' || this.paginatorPosition === 'both');\n },\n singleSelectionMode() {\n return this.selectionMode && this.selectionMode === 'single';\n },\n multipleSelectionMode() {\n return this.selectionMode && this.selectionMode === 'multiple';\n },\n rowSelectionMode() {\n return this.singleSelectionMode || this.multipleSelectionMode;\n },\n totalRecordsLength() {\n if (this.lazy) {\n return this.totalRecords;\n } else {\n const data = this.processedData;\n\n return data ? data.length : 0;\n }\n },\n dataP() {\n return cn({\n scrollable: this.scrollable,\n 'flex-scrollable': this.scrollable && this.scrollHeight === 'flex',\n [this.size]: this.size,\n loading: this.loading,\n empty: this.empty\n });\n }\n },\n components: {\n TTRow: TreeTableRow,\n TTPaginator: Paginator,\n TTHeaderCell: HeaderCell,\n TTFooterCell: FooterCell,\n SpinnerIcon: SpinnerIcon\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" data-scrollselectors=\".p-treetable-scrollable-body\" :data-p=\"dataP\" v-bind=\"ptmi('root')\">\n <slot></slot>\n <transition name=\"p-overlay-mask\">\n <div v-if=\"loading && loadingMode === 'mask'\" :class=\"cx('loading')\" v-bind=\"ptm('loading')\">\n <div :class=\"cx('mask')\" v-bind=\"ptm('mask')\">\n <slot name=\"loadingicon\" :class=\"cx('loadingIcon')\">\n <component :is=\"loadingIcon ? 'span' : 'SpinnerIcon'\" spin :class=\"[cx('loadingIcon'), loadingIcon]\" v-bind=\"ptm('loadingIcon')\" />\n </slot>\n </div>\n </div>\n </transition>\n <div v-if=\"$slots.header\" :class=\"cx('header')\" v-bind=\"ptm('header')\">\n <slot name=\"header\"></slot>\n </div>\n <TTPaginator\n v-if=\"paginatorTop\"\n :rows=\"d_rows\"\n :first=\"d_first\"\n :totalRecords=\"totalRecordsLength\"\n :pageLinkSize=\"pageLinkSize\"\n :template=\"paginatorTemplate\"\n :rowsPerPageOptions=\"rowsPerPageOptions\"\n :currentPageReportTemplate=\"currentPageReportTemplate\"\n :class=\"cx('pcPaginator', { position: 'top' })\"\n @page=\"onPage($event)\"\n :alwaysShow=\"alwaysShowPaginator\"\n :unstyled=\"unstyled\"\n :pt=\"ptm('pcPaginator')\"\n >\n <template v-if=\"$slots.paginatorcontainer\" #container=\"slotProps\">\n <slot\n name=\"paginatorcontainer\"\n :first=\"slotProps.first\"\n :last=\"slotProps.last\"\n :rows=\"slotProps.rows\"\n :page=\"slotProps.page\"\n :pageCount=\"slotProps.pageCount\"\n :totalRecords=\"slotProps.totalRecords\"\n :firstPageCallback=\"slotProps.firstPageCallback\"\n :lastPageCallback=\"slotProps.lastPageCallback\"\n :prevPageCallback=\"slotProps.prevPageCallback\"\n :nextPageCallback=\"slotProps.nextPageCallback\"\n :rowChangeCallback=\"slotProps.rowChangeCallback\"\n :pageLinks=\"slotProps.pageLinks\"\n :changePageCallback=\"slotProps.changePageCallback\"\n ></slot>\n </template>\n <template v-if=\"$slots.paginatorstart\" #start>\n <slot name=\"paginatorstart\"></slot>\n </template>\n <template v-if=\"$slots.paginatorend\" #end>\n <slot name=\"paginatorend\"></slot>\n </template>\n <template v-if=\"$slots.paginatorfirstpagelinkicon\" #firstpagelinkicon=\"slotProps\">\n <slot name=\"paginatorfirstpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorprevpagelinkicon\" #prevpagelinkicon=\"slotProps\">\n <slot name=\"paginatorprevpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatornextpagelinkicon\" #nextpagelinkicon=\"slotProps\">\n <slot name=\"paginatornextpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorlastpagelinkicon\" #lastpagelinkicon=\"slotProps\">\n <slot name=\"paginatorlastpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorjumptopagedropdownicon\" #jumptopagedropdownicon=\"slotProps\">\n <slot name=\"paginatorjumptopagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorrowsperpagedropdownicon\" #rowsperpagedropdownicon=\"slotProps\">\n <slot name=\"paginatorrowsperpagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n </TTPaginator>\n <div :class=\"cx('tableContainer')\" :style=\"[sx('tableContainer'), { maxHeight: scrollHeight }]\" v-bind=\"ptm('tableContainer')\">\n <table ref=\"table\" role=\"treegrid\" :class=\"[cx('table'), tableClass]\" :style=\"tableStyle\" v-bind=\"{ ...tableProps, ...ptm('table') }\">\n <thead :class=\"cx('thead')\" :style=\"sx('thead')\" role=\"rowgroup\" v-bind=\"ptm('thead')\">\n <tr role=\"row\" v-bind=\"ptm('headerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <TTHeaderCell\n v-if=\"!columnProp(col, 'hidden')\"\n :column=\"col\"\n :resizableColumns=\"resizableColumns\"\n :sortField=\"d_sortField\"\n :sortOrder=\"d_sortOrder\"\n :multiSortMeta=\"d_multiSortMeta\"\n :sortMode=\"sortMode\"\n @column-click=\"onColumnHeaderClick($event)\"\n @column-resizestart=\"onColumnResizeStart($event)\"\n :index=\"i\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n ></TTHeaderCell>\n </template>\n </tr>\n <tr v-if=\"hasColumnFilter()\" v-bind=\"ptm('headerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <th v-if=\"!columnProp(col, 'hidden')\" :class=\"getFilterColumnHeaderClass(col)\" :style=\"[columnProp(col, 'style'), columnProp(col, 'filterHeaderStyle')]\" v-bind=\"ptm('headerCell', ptHeaderCellOptions(col))\">\n <component v-if=\"col.children && col.children.filter\" :is=\"col.children.filter\" :column=\"col\" :index=\"i\" />\n </th>\n </template>\n </tr>\n </thead>\n <tbody :class=\"cx('tbody')\" role=\"rowgroup\" v-bind=\"ptm('tbody')\">\n <template v-if=\"!empty\">\n <TTRow\n v-for=\"(node, index) of dataToRender\"\n :key=\"nodeKey(node)\"\n :dataKey=\"dataKey\"\n :columns=\"columns\"\n :node=\"node\"\n :level=\"0\"\n :expandedKeys=\"d_expandedKeys\"\n :indentation=\"indentation\"\n :selectionMode=\"selectionMode\"\n :selectionKeys=\"selectionKeys\"\n :ariaSetSize=\"dataToRender.length\"\n :ariaPosInset=\"index + 1\"\n :tabindex=\"setTabindex(node, index)\"\n :loadingMode=\"loadingMode\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :templates=\"$slots\"\n @node-toggle=\"onNodeToggle\"\n @node-click=\"onNodeClick\"\n @checkbox-change=\"onCheckboxChange\"\n @row-rightclick=\"onRowRightClick($event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n ></TTRow>\n </template>\n <tr v-else :class=\"cx('emptyMessage')\" v-bind=\"ptm('emptyMessage')\">\n <td :colspan=\"columns.length\" v-bind=\"ptm('emptyMessageCell')\">\n <slot name=\"empty\"></slot>\n </td>\n </tr>\n </tbody>\n <tfoot v-if=\"hasFooter\" :class=\"cx('tfoot')\" :style=\"sx('tfoot')\" role=\"rowgroup\" v-bind=\"ptm('tfoot')\">\n <tr role=\"row\" v-bind=\"ptm('footerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <TTFooterCell v-if=\"!columnProp(col, 'hidden')\" :column=\"col\" :index=\"i\" :unstyled=\"unstyled\" :pt=\"pt\"></TTFooterCell>\n </template>\n </tr>\n </tfoot>\n </table>\n </div>\n <TTPaginator\n v-if=\"paginatorBottom\"\n :rows=\"d_rows\"\n :first=\"d_first\"\n :totalRecords=\"totalRecordsLength\"\n :pageLinkSize=\"pageLinkSize\"\n :template=\"paginatorTemplate\"\n :rowsPerPageOptions=\"rowsPerPageOptions\"\n :currentPageReportTemplate=\"currentPageReportTemplate\"\n :class=\"cx('pcPaginator', { position: 'bottom' })\"\n @page=\"onPage($event)\"\n :alwaysShow=\"alwaysShowPaginator\"\n :unstyled=\"unstyled\"\n :pt=\"ptm('pcPaginator')\"\n >\n <template v-if=\"$slots.paginatorcontainer\" #container=\"slotProps\">\n <slot\n name=\"paginatorcontainer\"\n :first=\"slotProps.first\"\n :last=\"slotProps.last\"\n :rows=\"slotProps.rows\"\n :page=\"slotProps.page\"\n :pageCount=\"slotProps.pageCount\"\n :pageLinks=\"slotProps.pageLinks\"\n :totalRecords=\"slotProps.totalRecords\"\n :firstPageCallback=\"slotProps.firstPageCallback\"\n :lastPageCallback=\"slotProps.lastPageCallback\"\n :prevPageCallback=\"slotProps.prevPageCallback\"\n :nextPageCallback=\"slotProps.nextPageCallback\"\n :rowChangeCallback=\"slotProps.rowChangeCallback\"\n :changePageCallback=\"slotProps.changePageCallback\"\n ></slot>\n </template>\n <template v-if=\"$slots.paginatorstart\" #start>\n <slot name=\"paginatorstart\"></slot>\n </template>\n <template v-if=\"$slots.paginatorend\" #end>\n <slot name=\"paginatorend\"></slot>\n </template>\n <template v-if=\"$slots.paginatorfirstpagelinkicon\" #firstpagelinkicon=\"slotProps\">\n <slot name=\"paginatorfirstpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorprevpagelinkicon\" #prevpagelinkicon=\"slotProps\">\n <slot name=\"paginatorprevpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatornextpagelinkicon\" #nextpagelinkicon=\"slotProps\">\n <slot name=\"paginatornextpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorlastpagelinkicon\" #lastpagelinkicon=\"slotProps\">\n <slot name=\"paginatorlastpagelinkicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorjumptopagedropdownicon\" #jumptopagedropdownicon=\"slotProps\">\n <slot name=\"paginatorjumptopagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n <template v-if=\"$slots.paginatorrowsperpagedropdownicon\" #rowsperpagedropdownicon=\"slotProps\">\n <slot name=\"paginatorrowsperpagedropdownicon\" :class=\"slotProps.class\"></slot>\n </template>\n </TTPaginator>\n <div v-if=\"$slots.footer\" :class=\"cx('footer')\" v-bind=\"ptm('footer')\">\n <slot name=\"footer\"></slot>\n </div>\n <div ref=\"resizeHelper\" :class=\"cx('columnResizeIndicator')\" style=\"display: none\" v-bind=\"ptm('columnResizeIndicator')\"></div>\n </div>\n</template>\n\n<script>\nimport { cn } from '@primeuix/utils';\nimport { addStyle, clearSelection, find, getAttribute, getIndex, getOffset, getOuterWidth, isRTL, setAttribute } from '@primeuix/utils/dom';\nimport { localeComparator, resolveFieldData, sort } from '@primeuix/utils/object';\nimport { FilterService } from '@primevue/core/api';\nimport { getVNodeProp, HelperSet } from '@primevue/core/utils';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport Paginator from 'primevue/paginator';\nimport BaseTreeTable from './BaseTreeTable.vue';\nimport FooterCell from './FooterCell.vue';\nimport HeaderCell from './HeaderCell.vue';\nimport TreeTableRow from './TreeTableRow.vue';\n\nexport default {\n name: 'TreeTable',\n extends: BaseTreeTable,\n inheritAttrs: false,\n emits: [\n 'node-expand',\n 'node-collapse',\n 'update:expandedKeys',\n 'update:selectionKeys',\n 'node-select',\n 'node-unselect',\n 'update:first',\n 'update:rows',\n 'page',\n 'update:sortField',\n 'update:sortOrder',\n 'update:multiSortMeta',\n 'sort',\n 'filter',\n 'column-resize-end',\n 'update:contextMenuSelection',\n 'row-contextmenu'\n ],\n provide() {\n return {\n $columns: this.d_columns\n };\n },\n data() {\n return {\n d_expandedKeys: this.expandedKeys || {},\n d_first: this.first,\n d_rows: this.rows,\n d_sortField: this.sortField,\n d_sortOrder: this.sortOrder,\n d_multiSortMeta: this.multiSortMeta ? [...this.multiSortMeta] : [],\n hasASelectedNode: false,\n d_columns: new HelperSet({ type: 'Column' })\n };\n },\n documentColumnResizeListener: null,\n documentColumnResizeEndListener: null,\n lastResizeHelperX: null,\n resizeColumnElement: null,\n watch: {\n expandedKeys(newValue) {\n this.d_expandedKeys = newValue;\n },\n first(newValue) {\n this.d_first = newValue;\n },\n rows(newValue) {\n this.d_rows = newValue;\n },\n sortField(newValue) {\n this.d_sortField = newValue;\n },\n sortOrder(newValue) {\n this.d_sortOrder = newValue;\n },\n multiSortMeta(newValue) {\n this.d_multiSortMeta = newValue;\n }\n },\n beforeUnmount() {\n this.destroyStyleElement();\n this.d_columns.clear();\n },\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n ptHeaderCellOptions(column) {\n return {\n context: {\n frozen: this.columnProp(column, 'frozen')\n }\n };\n },\n onNodeToggle(node) {\n const key = this.nodeKey(node);\n\n if (this.d_expandedKeys[key]) {\n delete this.d_expandedKeys[key];\n this.$emit('node-collapse', node);\n } else {\n this.d_expandedKeys[key] = true;\n this.$emit('node-expand', node);\n }\n\n this.d_expandedKeys = { ...this.d_expandedKeys };\n this.$emit('update:expandedKeys', this.d_expandedKeys);\n },\n onNodeClick(event) {\n if (this.rowSelectionMode && event.node.selectable !== false) {\n const metaSelection = event.nodeTouched ? false : this.metaKeySelection;\n const _selectionKeys = metaSelection ? this.handleSelectionWithMetaKey(event) : this.handleSelectionWithoutMetaKey(event);\n\n this.$emit('update:selectionKeys', _selectionKeys);\n }\n },\n nodeKey(node) {\n return resolveFieldData(node, this.dataKey);\n },\n handleSelectionWithMetaKey(event) {\n const originalEvent = event.originalEvent;\n const node = event.node;\n const nodeKey = this.nodeKey(node);\n const metaKey = originalEvent.metaKey || originalEvent.ctrlKey;\n const selected = this.isNodeSelected(node);\n let _selectionKeys;\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n _selectionKeys = {};\n } else {\n _selectionKeys = { ...this.selectionKeys };\n delete _selectionKeys[nodeKey];\n }\n\n this.$emit('node-unselect', node);\n } else {\n if (this.isSingleSelectionMode()) {\n _selectionKeys = {};\n } else if (this.isMultipleSelectionMode()) {\n _selectionKeys = !metaKey ? {} : this.selectionKeys ? { ...this.selectionKeys } : {};\n }\n\n _selectionKeys[nodeKey] = true;\n this.$emit('node-select', node);\n }\n\n return _selectionKeys;\n },\n handleSelectionWithoutMetaKey(event) {\n const node = event.node;\n const nodeKey = this.nodeKey(node);\n const selected = this.isNodeSelected(node);\n let _selectionKeys;\n\n if (this.isSingleSelectionMode()) {\n if (selected) {\n _selectionKeys = {};\n this.$emit('node-unselect', node);\n } else {\n _selectionKeys = {};\n _selectionKeys[nodeKey] = true;\n this.$emit('node-select', node);\n }\n } else {\n if (selected) {\n _selectionKeys = { ...this.selectionKeys };\n delete _selectionKeys[nodeKey];\n\n this.$emit('node-unselect', node);\n } else {\n _selectionKeys = this.selectionKeys ? { ...this.selectionKeys } : {};\n _selectionKeys[nodeKey] = true;\n\n this.$emit('node-select', node);\n }\n }\n\n return _selectionKeys;\n },\n onCheckboxChange(event) {\n this.$emit('update:selectionKeys', event.selectionKeys);\n\n if (event.check) this.$emit('node-select', event.node);\n else this.$emit('node-unselect', event.node);\n },\n onRowRightClick(event) {\n if (this.contextMenu) {\n clearSelection();\n event.originalEvent.target.focus();\n }\n\n this.$emit('update:contextMenuSelection', event.node);\n this.$emit('row-contextmenu', event);\n },\n isSingleSelectionMode() {\n return this.selectionMode === 'single';\n },\n isMultipleSelectionMode() {\n return this.selectionMode === 'multiple';\n },\n onPage(event) {\n this.d_first = event.first;\n this.d_rows = event.rows;\n\n let pageEvent = this.createLazyLoadEvent(event);\n\n pageEvent.pageCount = event.pageCount;\n pageEvent.page = event.page;\n\n this.d_expandedKeys = {};\n this.$emit('update:expandedKeys', this.d_expandedKeys);\n this.$emit('update:first', this.d_first);\n this.$emit('update:rows', this.d_rows);\n this.$emit('page', pageEvent);\n },\n resetPage() {\n this.d_first = 0;\n this.$emit('update:first', this.d_first);\n },\n getFilterColumnHeaderClass(column) {\n return [this.cx('headerCell', { column }), this.columnProp(column, 'filterHeaderClass')];\n },\n onColumnHeaderClick(e) {\n let event = e.originalEvent;\n let column = e.column;\n\n if (this.columnProp(column, 'sortable')) {\n const targetNode = event.target;\n const columnField = this.columnProp(column, 'sortField') || this.columnProp(column, 'field');\n\n if (\n getAttribute(targetNode, 'data-p-sortable-column') === true ||\n getAttribute(targetNode, 'data-pc-section') === 'columntitle' ||\n getAttribute(targetNode, 'data-pc-section') === 'columnheadercontent' ||\n getAttribute(targetNode, 'data-pc-section') === 'sorticon' ||\n getAttribute(targetNode.parentElement, 'data-pc-section') === 'sorticon' ||\n getAttribute(targetNode.parentElement.parentElement, 'data-pc-section') === 'sorticon' ||\n targetNode.closest('[data-p-sortable-column=\"true\"]')\n ) {\n clearSelection();\n\n if (this.sortMode === 'single') {\n if (this.d_sortField === columnField) {\n if (this.removableSort && this.d_sortOrder * -1 === this.defaultSortOrder) {\n this.d_sortOrder = null;\n this.d_sortField = null;\n } else {\n this.d_sortOrder = this.d_sortOrder * -1;\n }\n } else {\n this.d_sortOrder = this.defaultSortOrder;\n this.d_sortField = columnField;\n }\n\n this.$emit('update:sortField', this.d_sortField);\n this.$emit('update:sortOrder', this.d_sortOrder);\n this.resetPage();\n } else if (this.sortMode === 'multiple') {\n let metaKey = event.metaKey || event.ctrlKey;\n\n if (!metaKey) {\n this.d_multiSortMeta = this.d_multiSortMeta.filter((meta) => meta.field === columnField);\n }\n\n this.addMultiSortField(columnField);\n this.$emit('update:multiSortMeta', this.d_multiSortMeta);\n }\n\n this.$emit('sort', this.createLazyLoadEvent(event));\n }\n }\n },\n addMultiSortField(field) {\n let index = this.d_multiSortMeta.findIndex((meta) => meta.field === field);\n\n if (index >= 0) {\n if (this.removableSort && this.d_multiSortMeta[index].order * -1 === this.defaultSortOrder) this.d_multiSortMeta.splice(index, 1);\n else this.d_multiSortMeta[index] = { field: field, order: this.d_multiSortMeta[index].order * -1 };\n } else {\n this.d_multiSortMeta.push({ field: field, order: this.defaultSortOrder });\n }\n\n this.d_multiSortMeta = [...this.d_multiSortMeta];\n },\n sortSingle(nodes) {\n return this.sortNodesSingle(nodes);\n },\n sortNodesSingle(nodes) {\n let _nodes = [...nodes];\n const comparer = localeComparator();\n\n _nodes.sort((node1, node2) => {\n const value1 = resolveFieldData(node1.data, this.d_sortField);\n const value2 = resolveFieldData(node2.data, this.d_sortField);\n\n return sort(value1, value2, this.d_sortOrder, comparer);\n });\n\n return _nodes;\n },\n sortMultiple(nodes) {\n return this.sortNodesMultiple(nodes);\n },\n sortNodesMultiple(nodes) {\n let _nodes = [...nodes];\n\n _nodes.sort((node1, node2) => {\n return this.multisortField(node1, node2, 0);\n });\n\n return _nodes;\n },\n multisortField(node1, node2, index) {\n const value1 = resolveFieldData(node1.data, this.d_multiSortMeta[index].field);\n const value2 = resolveFieldData(node2.data, this.d_multiSortMeta[index].field);\n const comparer = localeComparator();\n\n if (value1 === value2) {\n return this.d_multiSortMeta.length - 1 > index ? this.multisortField(node1, node2, index + 1) : 0;\n }\n\n return sort(value1, value2, this.d_multiSortMeta[index].order, comparer);\n },\n filter(value) {\n let filteredNodes = [];\n const strict = this.filterMode === 'strict';\n\n for (let node of value) {\n let copyNode = { ...node };\n let localMatch = true;\n let globalMatch = false;\n\n for (let j = 0; j < this.columns.length; j++) {\n let col = this.columns[j];\n let filterField = this.columnProp(col, 'filterField') || this.columnProp(col, 'field');\n\n //local\n if (Object.prototype.hasOwnProperty.call(this.filters, filterField)) {\n let filterMatchMode = this.columnProp(col, 'filterMatchMode') || 'startsWith';\n let filterValue = this.filters[filterField];\n let filterConstraint = FilterService.filters[filterMatchMode];\n let paramsWithoutNode = { filterField, filterValue, filterConstraint, strict };\n\n if (\n (strict && !(this.findFilteredNodes(copyNode, paramsWithoutNode) || this.isFilterMatched(copyNode, paramsWithoutNode))) ||\n (!strict && !(this.isFilterMatched(copyNode, paramsWithoutNode) || this.findFilteredNodes(copyNode, paramsWithoutNode)))\n ) {\n localMatch = false;\n }\n\n if (!localMatch) {\n break;\n }\n }\n\n //global\n if (this.hasGlobalFilter() && !globalMatch) {\n let copyNodeForGlobal = { ...copyNode };\n let filterValue = this.filters['global'];\n let filterConstraint = FilterService.filters['contains'];\n let globalFilterParamsWithoutNode = { filterField, filterValue, filterConstraint, strict };\n\n if (\n (strict && (this.findFilteredNodes(copyNodeForGlobal, globalFilterParamsWithoutNode) || this.isFilterMatched(copyNodeForGlobal, globalFilterParamsWithoutNode))) ||\n (!strict && (this.isFilterMatched(copyNodeForGlobal, globalFilterParamsWithoutNode) || this.findFilteredNodes(copyNodeForGlobal, globalFilterParamsWithoutNode)))\n ) {\n globalMatch = true;\n copyNode = copyNodeForGlobal;\n }\n }\n }\n\n let matches = localMatch;\n\n if (this.hasGlobalFilter()) {\n matches = localMatch && globalMatch;\n }\n\n if (matches) {\n filteredNodes.push(copyNode);\n }\n }\n\n let filterEvent = this.createLazyLoadEvent(event);\n\n filterEvent.filteredValue = filteredNodes;\n this.$emit('filter', filterEvent);\n\n return filteredNodes;\n },\n findFilteredNodes(node, paramsWithoutNode) {\n if (node) {\n let matched = false;\n\n if (node.children) {\n let childNodes = [...node.children];\n\n node.children = [];\n\n for (let childNode of childNodes) {\n let copyChildNode = { ...childNode };\n\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 isFilterMatched(node, { filterField, filterValue, filterConstraint, strict }) {\n let matched = false;\n let dataFieldValue = resolveFieldData(node.data, filterField);\n\n if (filterConstraint(dataFieldValue, filterValue, this.filterLocale)) {\n matched = true;\n }\n\n if (!matched || (strict && !this.isNodeLeaf(node))) {\n matched = this.findFilteredNodes(node, { filterField, filterValue, filterConstraint, strict }) || matched;\n }\n\n return matched;\n },\n isNodeSelected(node) {\n return this.selectionMode && this.selectionKeys ? this.selectionKeys[this.nodeKey(node)] === true : false;\n },\n isNodeLeaf(node) {\n return node.leaf === false ? false : !(node.children && node.children.length);\n },\n createLazyLoadEvent(event) {\n let filterMatchModes;\n\n if (this.hasFilters()) {\n filterMatchModes = {};\n this.columns.forEach((col) => {\n if (this.columnProp(col, 'field')) {\n filterMatchModes[col.props.field] = this.columnProp(col, 'filterMatchMode');\n }\n });\n }\n\n return {\n originalEvent: event,\n first: this.d_first,\n rows: this.d_rows,\n sortField: this.d_sortField,\n sortOrder: this.d_sortOrder,\n multiSortMeta: this.d_multiSortMeta,\n filters: this.filters,\n filterMatchModes: filterMatchModes\n };\n },\n onColumnResizeStart(event) {\n let containerLeft = getOffset(this.$el).left;\n\n this.resizeColumnElement = event.target.parentElement;\n this.columnResizing = true;\n this.lastResizeHelperX = event.pageX - containerLeft + this.$el.scrollLeft;\n\n this.bindColumnResizeEvents();\n },\n onColumnResize(event) {\n let containerLeft = getOffset(this.$el).left;\n\n this.$el.setAttribute('data-p-unselectable-text', 'true');\n !this.isUnstyled && addStyle(this.$el, { 'user-select': 'none' });\n this.$refs.resizeHelper.style.height = this.$el.offsetHeight + 'px';\n this.$refs.resizeHelper.style.top = 0 + 'px';\n this.$refs.resizeHelper.style.left = event.pageX - containerLeft + this.$el.scrollLeft + 'px';\n\n this.$refs.resizeHelper.style.display = 'block';\n },\n onColumnResizeEnd() {\n let delta = isRTL(this.$el) ? this.lastResizeHelperX - this.$refs.resizeHelper.offsetLeft : this.$refs.resizeHelper.offsetLeft - this.lastResizeHelperX;\n let columnWidth = this.resizeColumnElement.offsetWidth;\n let newColumnWidth = columnWidth + delta;\n let minWidth = this.resizeColumnElement.style.minWidth || 15;\n\n if (columnWidth + delta > parseInt(minWidth, 10)) {\n if (this.columnResizeMode === 'fit') {\n let nextColumn = this.resizeColumnElement.nextElementSibling;\n let nextColumnWidth = nextColumn.offsetWidth - delta;\n\n if (newColumnWidth > 15 && nextColumnWidth > 15) {\n this.resizeTableCells(newColumnWidth, nextColumnWidth);\n }\n } else if (this.columnResizeMode === 'expand') {\n const tableWidth = this.$refs.table.offsetWidth + delta + 'px';\n\n const updateTableWidth = (el) => {\n !!el && (el.style.width = el.style.minWidth = tableWidth);\n };\n\n // Reasoning: resize table cells before updating the table width so that it can use existing computed cell widths and adjust only the one column.\n this.resizeTableCells(newColumnWidth);\n updateTableWidth(this.$refs.table);\n }\n\n this.$emit('column-resize-end', {\n element: this.resizeColumnElement,\n delta: delta\n });\n }\n\n this.$refs.resizeHelper.style.display = 'none';\n this.resizeColumn = null;\n this.$el.removeAttribute('data-p-unselectable-text');\n !this.isUnstyled && (this.$el.style['user-select'] = '');\n\n this.unbindColumnResizeEvents();\n },\n resizeTableCells(newColumnWidth, nextColumnWidth) {\n let colIndex = getIndex(this.resizeColumnElement);\n let widths = [];\n let headers = find(this.$refs.table, 'thead[data-pc-section=\"thead\"] > tr > th');\n\n headers.forEach((header) => widths.push(getOuterWidth(header)));\n\n this.destroyStyleElement();\n this.createStyleElement();\n\n let innerHTML = '';\n let selector = `[data-pc-name=\"treetable\"][${this.$attrSelector}] > [data-pc-section=\"tablecontainer\"] > table[data-pc-section=\"table\"]`;\n\n widths.forEach((width, index) => {\n let colWidth = index === colIndex ? newColumnWidth : nextColumnWidth && index === colIndex + 1 ? nextColumnWidth : width;\n let style = `width: ${colWidth}px !important; max-width: ${colWidth}px !important`;\n\n innerHTML += `\n ${selector} > thead[data-pc-section=\"thead\"] > tr > th:nth-child(${index + 1}),\n ${selector} > tbody[data-pc-section=\"tbody\"] > tr > td:nth-child(${index + 1}),\n ${selector} > tfoot[data-pc-section=\"tfoot\"] > tr > td:nth-child(${index + 1}) {\n ${style}\n }\n `;\n });\n\n this.styleElement.innerHTML = innerHTML;\n },\n bindColumnResizeEvents() {\n if (!this.documentColumnResizeListener) {\n this.documentColumnResizeListener = document.addEventListener('mousemove', (event) => {\n if (this.columnResizing) {\n this.onColumnResize(event);\n }\n });\n }\n\n if (!this.documentColumnResizeEndListener) {\n this.documentColumnResizeEndListener = document.addEventListener('mouseup', () => {\n if (this.columnResizing) {\n this.columnResizing = false;\n this.onColumnResizeEnd();\n }\n });\n }\n },\n unbindColumnResizeEvents() {\n if (this.documentColumnResizeListener) {\n document.removeEventListener('document', this.documentColumnResizeListener);\n this.documentColumnResizeListener = null;\n }\n\n if (this.documentColumnResizeEndListener) {\n document.removeEventListener('document', this.documentColumnResizeEndListener);\n this.documentColumnResizeEndListener = null;\n }\n },\n onColumnKeyDown(event, col) {\n if ((event.code === 'Enter' || event.code === 'NumpadEnter') && event.currentTarget.nodeName === 'TH' && getAttribute(event.currentTarget, 'data-p-sortable-column')) {\n this.onColumnHeaderClick(event, col);\n }\n },\n hasColumnFilter() {\n if (this.columns) {\n for (let col of this.columns) {\n if (col.children && col.children.filter) {\n return true;\n }\n }\n }\n\n return false;\n },\n hasFilters() {\n return this.filters && Object.keys(this.filters).length > 0 && this.filters.constructor === Object;\n },\n hasGlobalFilter() {\n return this.filters && Object.prototype.hasOwnProperty.call(this.filters, 'global');\n },\n getItemLabel(node) {\n return node.data.name;\n },\n createStyleElement() {\n this.styleElement = document.createElement('style');\n this.styleElement.type = 'text/css';\n setAttribute(this.styleElement, 'nonce', this.$primevue?.config?.csp?.nonce);\n document.head.appendChild(this.styleElement);\n },\n destroyStyleElement() {\n if (this.styleElement) {\n document.head.removeChild(this.styleElement);\n this.styleElement = null;\n }\n },\n setTabindex(node, index) {\n if (this.isNodeSelected(node)) {\n this.hasASelectedNode = true;\n\n return 0;\n }\n\n if (this.selectionMode) {\n if (!this.isNodeSelected(node) && index === 0 && !this.hasASelectedNode) return 0;\n } else if (!this.selectionMode && index === 0) {\n return 0;\n }\n\n return -1;\n }\n },\n computed: {\n columns() {\n return this.d_columns.get(this);\n },\n processedData() {\n if (this.lazy) {\n return this.value;\n } else {\n if (this.value && this.value.length) {\n let data = this.value;\n\n if (this.sorted) {\n if (this.sortMode === 'single') data = this.sortSingle(data);\n else if (this.sortMode === 'multiple') data = this.sortMultiple(data);\n }\n\n if (this.hasFilters()) {\n data = this.filter(data);\n }\n\n return data;\n } else {\n return null;\n }\n }\n },\n dataToRender() {\n const data = this.processedData;\n\n if (this.paginator) {\n const first = this.lazy ? 0 : this.d_first;\n\n return data.slice(first, first + this.d_rows);\n } else {\n return data;\n }\n },\n empty() {\n const data = this.processedData;\n\n return !data || data.length === 0;\n },\n sorted() {\n return this.d_sortField || (this.d_multiSortMeta && this.d_multiSortMeta.length > 0);\n },\n hasFooter() {\n let hasFooter = false;\n\n for (let col of this.columns) {\n if (this.columnProp(col, 'footer') || (col.children && col.children.footer)) {\n hasFooter = true;\n break;\n }\n }\n\n return hasFooter;\n },\n paginatorTop() {\n return this.paginator && (this.paginatorPosition !== 'bottom' || this.paginatorPosition === 'both');\n },\n paginatorBottom() {\n return this.paginator && (this.paginatorPosition !== 'top' || this.paginatorPosition === 'both');\n },\n singleSelectionMode() {\n return this.selectionMode && this.selectionMode === 'single';\n },\n multipleSelectionMode() {\n return this.selectionMode && this.selectionMode === 'multiple';\n },\n rowSelectionMode() {\n return this.singleSelectionMode || this.multipleSelectionMode;\n },\n totalRecordsLength() {\n if (this.lazy) {\n return this.totalRecords;\n } else {\n const data = this.processedData;\n\n return data ? data.length : 0;\n }\n },\n dataP() {\n return cn({\n scrollable: this.scrollable,\n 'flex-scrollable': this.scrollable && this.scrollHeight === 'flex',\n [this.size]: this.size,\n loading: this.loading,\n empty: this.empty\n });\n }\n },\n components: {\n TTRow: TreeTableRow,\n TTPaginator: Paginator,\n TTHeaderCell: HeaderCell,\n TTFooterCell: FooterCell,\n SpinnerIcon: SpinnerIcon\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","value","type","dataKey","String","Function","expandedKeys","selectionKeys","selectionMode","metaKeySelection","Boolean","contextMenu","contextMenuSelection","Object","rows","Number","first","totalRecords","paginator","paginatorPosition","alwaysShowPaginator","paginatorTemplate","pageLinkSize","rowsPerPageOptions","Array","currentPageReportTemplate","lazy","loading","loadingIcon","undefined","loadingMode","rowHover","autoLayout","sortField","sortOrder","defaultSortOrder","multiSortMeta","sortMode","removableSort","filters","filterMode","filterLocale","resizableColumns","columnResizeMode","indentation","showGridlines","scrollable","scrollHeight","size","tableStyle","tableClass","tableProps","style","TreeTableStyle","provide","$pcTreeTable","$parentInstance","hostName","column","index","data","styleObject","mounted","columnProp","updateStickyPosition","updated","methods","prop","getVNodeProp","getColumnPT","key","_this$$parentInstance","columnMetaData","parent","instance","$props","state","$data","context","frozen","mergeProps","ptm","concat","ptmo","getColumnProp","pt","align","pos","next","getNextElementSibling","$el","getOuterWidth","parseFloat","insetInlineEnd","prev","getPreviousElementSibling","insetInlineStart","computed","containerClass","cx","containerStyle","bodyStyle","columnStyle","_openBlock","_createElementBlock","_mergeProps","$options","role","_objectSpread","children","footer","_createBlock","_resolveDynamicComponent","_ctx","emits","sorted","isColumnSorted","resizable","filterRow","parentElement","nextElementSibling","getIndex","onClick","event","$emit","originalEvent","onKeyDown","code","currentTarget","nodeName","getAttribute","preventDefault","onResizeStart","getMultiSortMetaIndex","i","length","meta","field","isMultiSorted","headerStyle","sortState","metaIndex","order","sortableColumnIcon","_this$sortState","SortAltIcon","SortAmountUpAltIcon","SortAmountDownIcon","ariaSort","_this$sortState2","components","Badge","apply","arguments","onKeydown","tabindex","onMousedown","_createElementVNode","header","sorticon","_component_Badge","node","level","leaf","expanded","checked","partialChecked","templates","toggle","selectable","rowSelectionMode","selected","$parent","getColumnCheckboxPT","resolveFieldData","rowData","toggleCheckbox","togglerStyle","marginLeft","visibility","checkboxSelectionMode","Checkbox","ChevronRightIcon","ChevronDownIcon","CheckIcon","MinusIcon","SpinnerIcon","directives","ripple","Ripple","_withDirectives","_Fragment","_component_SpinnerIcon","spin","rowtoggleicon","rowtogglericon","expandedIcon","collapsedIcon","_component_Checkbox","modelValue","binary","disabled","onChange","indeterminate","unstyled","icon","_withCtx","slotProps","_normalizeClass","body","_createTextVNode","_toDisplayString","parentNode","columns","ariaSetSize","ariaPosInset","nodeTouched","col","isClickable","target","tagName","setTabIndexForSelectionMode","onRowRightClick","onTouchEnd","nodeKey","item","onArrowDownKey","onArrowUpKey","onArrowLeftKey","onArrowRightKey","onHomeKey","onEndKey","onEnterKey","onTabKey","focusRowChange","previousElementSibling","_this","ishiddenIcon","findSingle","togglerElement","$refs","click","$nextTick","findBeforeClickableNode","findFirstElement","focus","nodes","find","_toConsumableArray","hasSelectedRow","some","row","forEach","tabIndex","selectedNodes","filter","firstFocusableRow","currentFocusedRow","prevNode","prevNodeButton","querySelector","_selectionKeys","_check","propagateDown","check","_iterator","_createForOfIteratorHelper","_step","s","n","done","child","err","e","f","propagateUp","checkedChildCount","childPartialSelected","_iterator2","_step2","onCheckboxChange","_iterator3","_step3","elements","every","element","styleClass","isSelectedWithContextMenu","equals","getAriaSelected","ptmOptions","TTBodyCell","BodyCell","ref","onTouchend","onContextmenu","_renderList","_component_TTBodyCell","onNodeToggle","_cache","$event","onCheckboxToggle","childNode","_component_TreeTableRow","indexOf","onNodeClick","onRowRightclick","BaseTreeTable","inheritAttrs","$columns","d_columns","d_expandedKeys","d_first","d_rows","d_sortField","d_sortOrder","d_multiSortMeta","hasASelectedNode","HelperSet","documentColumnResizeListener","documentColumnResizeEndListener","lastResizeHelperX","resizeColumnElement","watch","newValue","beforeUnmount","destroyStyleElement","clear","ptHeaderCellOptions","metaSelection","handleSelectionWithMetaKey","handleSelectionWithoutMetaKey","metaKey","ctrlKey","isNodeSelected","isSingleSelectionMode","isMultipleSelectionMode","clearSelection","onPage","pageEvent","createLazyLoadEvent","pageCount","page","resetPage","getFilterColumnHeaderClass","onColumnHeaderClick","targetNode","columnField","closest","addMultiSortField","findIndex","splice","push","sortSingle","sortNodesSingle","_nodes","comparer","localeComparator","sort","node1","node2","value1","value2","sortMultiple","sortNodesMultiple","_this2","multisortField","filteredNodes","strict","copyNode","localMatch","globalMatch","j","filterField","prototype","hasOwnProperty","call","filterMatchMode","filterValue","filterConstraint","FilterService","paramsWithoutNode","findFilteredNodes","isFilterMatched","hasGlobalFilter","copyNodeForGlobal","globalFilterParamsWithoutNode","matches","filterEvent","filteredValue","matched","childNodes","copyChildNode","_ref","dataFieldValue","isNodeLeaf","_this3","filterMatchModes","hasFilters","onColumnResizeStart","containerLeft","getOffset","left","columnResizing","pageX","scrollLeft","bindColumnResizeEvents","onColumnResize","setAttribute","isUnstyled","addStyle","resizeHelper","height","offsetHeight","top","display","onColumnResizeEnd","delta","isRTL","offsetLeft","columnWidth","offsetWidth","newColumnWidth","minWidth","parseInt","nextColumn","nextColumnWidth","resizeTableCells","tableWidth","table","updateTableWidth","el","width","resizeColumn","removeAttribute","unbindColumnResizeEvents","colIndex","widths","headers","createStyleElement","innerHTML","selector","$attrSelector","colWidth","styleElement","_this4","document","addEventListener","removeEventListener","onColumnKeyDown","hasColumnFilter","keys","constructor","getItemLabel","_this$$primevue","createElement","$primevue","config","csp","nonce","head","appendChild","removeChild","setTabindex","get","processedData","dataToRender","slice","empty","hasFooter","_iterator4","_step4","paginatorTop","paginatorBottom","singleSelectionMode","multipleSelectionMode","totalRecordsLength","dataP","cn","_defineProperty","TTRow","TreeTableRow","TTPaginator","Paginator","TTHeaderCell","HeaderCell","TTFooterCell","FooterCell","ptmi","_renderSlot","$slots","_createVNode","_Transition","_component_TTPaginator","template","position","alwaysShow","paginatorcontainer","fn","last","firstPageCallback","lastPageCallback","prevPageCallback","nextPageCallback","rowChangeCallback","pageLinks","changePageCallback","paginatorstart","paginatorend","paginatorfirstpagelinkicon","paginatorprevpagelinkicon","paginatornextpagelinkicon","paginatorlastpagelinkicon","paginatorjumptopagedropdownicon","paginatorrowsperpagedropdownicon","sx","maxHeight","_component_TTHeaderCell","onColumnClick","onColumnResizestart","_component_TTRow","colspan","_component_TTFooterCell"],"mappings":"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"} |