primevue 4.2.1 → 4.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/autocomplete/AutoComplete.vue +3 -2
- package/autocomplete/BaseAutoComplete.vue +4 -0
- package/autocomplete/index.d.ts +5 -0
- package/autocomplete/index.mjs +8 -2
- package/autocomplete/index.mjs.map +1 -1
- package/button/Button.vue +2 -2
- package/button/index.d.ts +1 -1
- package/button/index.mjs +7 -7
- package/button/index.mjs.map +1 -1
- package/buttongroup/style/index.mjs +1 -1
- package/buttongroup/style/index.mjs.map +1 -1
- package/checkbox/index.d.ts +5 -0
- package/colorpicker/ColorPicker.vue +1 -1
- package/colorpicker/index.mjs +1 -0
- package/colorpicker/index.mjs.map +1 -1
- package/confirmpopup/ConfirmPopup.vue +1 -1
- package/confirmpopup/index.mjs +1 -1
- package/confirmpopup/index.mjs.map +1 -1
- package/contextmenu/ContextMenuSub.vue +1 -2
- package/contextmenu/index.mjs +1 -2
- package/contextmenu/index.mjs.map +1 -1
- package/datatable/BodyCell.vue +2 -11
- package/datatable/DataTable.vue +3 -24
- package/datatable/FooterCell.vue +3 -12
- package/datatable/HeaderCell.vue +2 -11
- package/datatable/index.mjs +49 -98
- package/datatable/index.mjs.map +1 -1
- package/datatable/style/index.mjs +1 -1
- package/datatable/style/index.mjs.map +1 -1
- package/datepicker/DatePicker.vue +6 -1
- package/datepicker/index.mjs +5 -1
- package/datepicker/index.mjs.map +1 -1
- package/datepicker/style/index.mjs +1 -1
- package/datepicker/style/index.mjs.map +1 -1
- package/dock/DockSub.vue +2 -3
- package/dock/index.mjs +1 -2
- package/dock/index.mjs.map +1 -1
- package/drawer/Drawer.vue +4 -3
- package/drawer/index.d.ts +10 -1
- package/drawer/index.mjs +5 -2
- package/drawer/index.mjs.map +1 -1
- package/drawer/style/index.mjs +8 -3
- package/drawer/style/index.mjs.map +1 -1
- package/dynamicdialog/DynamicDialog.vue +1 -0
- package/dynamicdialog/index.mjs +1 -0
- package/dynamicdialog/index.mjs.map +1 -1
- package/editor/Editor.vue +1 -1
- package/editor/index.mjs +1 -1
- package/editor/index.mjs.map +1 -1
- package/imagecompare/ImageCompare.vue +3 -33
- package/imagecompare/index.mjs +3 -35
- package/imagecompare/index.mjs.map +1 -1
- package/imagecompare/style/index.mjs +1 -1
- package/imagecompare/style/index.mjs.map +1 -1
- package/inputgroup/style/index.mjs +1 -1
- package/inputgroup/style/index.mjs.map +1 -1
- package/inputnumber/InputNumber.vue +2 -1
- package/inputnumber/index.mjs +2 -1
- package/inputnumber/index.mjs.map +1 -1
- package/inputotp/InputOtp.vue +2 -1
- package/inputotp/index.mjs +2 -1
- package/inputotp/index.mjs.map +1 -1
- package/inputtext/index.d.ts +6 -6
- package/listbox/Listbox.vue +19 -15
- package/listbox/index.d.ts +4 -0
- package/listbox/index.mjs +21 -18
- package/listbox/index.mjs.map +1 -1
- package/megamenu/MegaMenuSub.vue +1 -2
- package/megamenu/index.d.ts +1 -1
- package/megamenu/index.mjs +1 -2
- package/megamenu/index.mjs.map +1 -1
- package/menu/Menuitem.vue +1 -2
- package/menu/index.mjs +1 -2
- package/menu/index.mjs.map +1 -1
- package/menubar/MenubarSub.vue +1 -2
- package/menubar/index.mjs +1 -2
- package/menubar/index.mjs.map +1 -1
- package/menubar/style/index.mjs +1 -1
- package/menubar/style/index.mjs.map +1 -1
- package/metergroup/index.d.ts +1 -1
- package/package.json +5 -5
- package/paginator/style/index.mjs +1 -1
- package/paginator/style/index.mjs.map +1 -1
- package/panelmenu/PanelMenu.vue +6 -3
- package/panelmenu/PanelMenuSub.vue +1 -2
- package/panelmenu/index.mjs +6 -4
- package/panelmenu/index.mjs.map +1 -1
- package/panelmenu/style/index.mjs +1 -1
- package/panelmenu/style/index.mjs.map +1 -1
- package/password/index.d.ts +1 -1
- package/scrollpanel/ScrollPanel.vue +4 -35
- package/scrollpanel/index.mjs +27 -57
- package/scrollpanel/index.mjs.map +1 -1
- package/scrollpanel/style/index.mjs +1 -1
- package/scrollpanel/style/index.mjs.map +1 -1
- package/select/Select.vue +2 -2
- package/select/index.mjs +2 -2
- package/select/index.mjs.map +1 -1
- package/slider/Slider.vue +15 -39
- package/slider/index.mjs +17 -51
- package/slider/index.mjs.map +1 -1
- package/splitter/Splitter.vue +3 -24
- package/splitter/index.mjs +21 -43
- package/splitter/index.mjs.map +1 -1
- package/step/Step.vue +2 -2
- package/step/index.mjs +2 -2
- package/step/index.mjs.map +1 -1
- package/tablist/TabList.vue +11 -43
- package/tablist/index.mjs +11 -42
- package/tablist/index.mjs.map +1 -1
- package/tabs/index.d.ts +3 -3
- package/textarea/Textarea.vue +14 -3
- package/textarea/index.d.ts +2 -3
- package/textarea/index.mjs +14 -3
- package/textarea/index.mjs.map +1 -1
- package/tieredmenu/TieredMenuSub.vue +1 -2
- package/tieredmenu/index.mjs +1 -2
- package/tieredmenu/index.mjs.map +1 -1
- package/timeline/style/index.mjs +1 -1
- package/timeline/style/index.mjs.map +1 -1
- package/togglebutton/ToggleButton.vue +1 -1
- package/togglebutton/index.mjs +1 -1
- package/togglebutton/index.mjs.map +1 -1
- package/tree/Tree.vue +1 -1
- package/tree/index.mjs +29 -23
- package/tree/index.mjs.map +1 -1
- package/tree/style/index.mjs +1 -1
- package/tree/style/index.mjs.map +1 -1
- package/treeselect/TreeSelect.vue +4 -3
- package/treeselect/index.mjs +9 -8
- package/treeselect/index.mjs.map +1 -1
- package/treetable/BodyCell.vue +2 -11
- package/treetable/FooterCell.vue +3 -12
- package/treetable/HeaderCell.vue +3 -12
- package/treetable/TreeTable.vue +3 -26
- package/treetable/index.mjs +24 -75
- package/treetable/index.mjs.map +1 -1
- package/treetable/style/index.mjs +1 -1
- package/treetable/style/index.mjs.map +1 -1
- package/umd/primevue.min.js +1 -1
- package/web-types.json +1 -1
package/datatable/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../src/datatable/BaseDataTable.vue","../../src/datatable/RowCheckbox.vue","../../src/datatable/RowCheckbox.vue?vue&type=template&id=48b3a88a&lang.js","../../src/datatable/RowRadioButton.vue","../../src/datatable/RowRadioButton.vue?vue&type=template&id=4c71d642&lang.js","../../src/datatable/BodyCell.vue","../../src/datatable/BodyCell.vue?vue&type=template&id=b8b5c9cc&lang.js","../../src/datatable/BodyRow.vue","../../src/datatable/BodyRow.vue?vue&type=template&id=06cd1716&lang.js","../../src/datatable/TableBody.vue","../../src/datatable/TableBody.vue?vue&type=template&id=283c7364&lang.js","../../src/datatable/FooterCell.vue","../../src/datatable/FooterCell.vue?vue&type=template&id=2a081e90&lang.js","../../src/datatable/TableFooter.vue","../../src/datatable/TableFooter.vue?vue&type=template&id=75fe3824&lang.js","../../src/datatable/ColumnFilter.vue","../../src/datatable/ColumnFilter.vue?vue&type=template&id=2262eab9&lang.js","../../src/datatable/HeaderCheckbox.vue","../../src/datatable/HeaderCheckbox.vue?vue&type=template&id=b2aea9ee&lang.js","../../src/datatable/HeaderCell.vue","../../src/datatable/HeaderCell.vue?vue&type=template&id=2ad3b2bd&lang.js","../../src/datatable/TableHeader.vue","../../src/datatable/TableHeader.vue?vue&type=template&id=69029af0&lang.js","../../src/datatable/DataTable.vue","../../src/datatable/DataTable.vue?vue&type=template&id=3435e866&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport DataTableStyle from 'primevue/datatable/style';\n\nexport default {\n name: 'BaseDataTable',\n extends: BaseComponent,\n props: {\n value: {\n type: Array,\n default: null\n },\n dataKey: {\n type: [String, Function],\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: [Object, 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 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 nullSortOrder: {\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 filterDisplay: {\n type: String,\n default: null\n },\n globalFilterFields: {\n type: Array,\n default: null\n },\n filterLocale: {\n type: String,\n default: undefined\n },\n selection: {\n type: [Array, Object],\n default: null\n },\n selectionMode: {\n type: String,\n default: null\n },\n compareSelectionBy: {\n type: String,\n default: 'deepEquals'\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 selectAll: {\n type: Boolean,\n default: null\n },\n rowHover: {\n type: Boolean,\n default: false\n },\n csvSeparator: {\n type: String,\n default: ','\n },\n exportFilename: {\n type: String,\n default: 'download'\n },\n exportFunction: {\n type: Function,\n default: null\n },\n resizableColumns: {\n type: Boolean,\n default: false\n },\n columnResizeMode: {\n type: String,\n default: 'fit'\n },\n reorderableColumns: {\n type: Boolean,\n default: false\n },\n expandedRows: {\n type: [Array, Object],\n default: null\n },\n expandedRowIcon: {\n type: String,\n default: undefined\n },\n collapsedRowIcon: {\n type: String,\n default: undefined\n },\n rowGroupMode: {\n type: String,\n default: null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n expandableRowGroups: {\n type: Boolean,\n default: false\n },\n expandedRowGroups: {\n type: Array,\n default: null\n },\n stateStorage: {\n type: String,\n default: 'session'\n },\n stateKey: {\n type: String,\n default: null\n },\n editMode: {\n type: String,\n default: null\n },\n editingRows: {\n type: Array,\n default: null\n },\n rowClass: {\n type: Function,\n default: null\n },\n rowStyle: {\n type: Function,\n default: null\n },\n scrollable: {\n type: Boolean,\n default: false\n },\n virtualScrollerOptions: {\n type: Object,\n default: null\n },\n scrollHeight: {\n type: String,\n default: null\n },\n frozenValue: {\n type: Array,\n default: null\n },\n breakpoint: {\n type: String,\n default: '960px'\n },\n showHeaders: {\n type: Boolean,\n default: true\n },\n showGridlines: {\n type: Boolean,\n default: false\n },\n stripedRows: {\n type: Boolean,\n default: false\n },\n highlightOnSelect: {\n type: Boolean,\n default: false\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 filterInputProps: {\n type: null,\n default: null\n },\n filterButtonProps: {\n type: Object,\n default() {\n return {\n filter: { severity: 'secondary', text: true, rounded: true },\n inline: {\n clear: { severity: 'secondary', text: true, rounded: true }\n },\n popover: {\n addRule: { severity: 'info', text: true, size: 'small' },\n removeRule: { severity: 'danger', text: true, size: 'small' },\n apply: { size: 'small' },\n clear: { outlined: true, size: 'small' }\n }\n };\n }\n },\n editButtonProps: {\n type: Object,\n default() {\n return {\n init: { severity: 'secondary', text: true, rounded: true },\n save: { severity: 'secondary', text: true, rounded: true },\n cancel: { severity: 'secondary', text: true, rounded: true }\n };\n }\n }\n },\n style: DataTableStyle,\n provide() {\n return {\n $pcDataTable: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <Checkbox :modelValue=\"checked\" :binary=\"true\" :disabled=\"$attrs.disabled\" :aria-label=\"checkboxAriaLabel\" @change=\"onChange\" :unstyled=\"unstyled\" :pt=\"getColumnPT('pcRowCheckbox')\">\n <template #icon=\"slotProps\">\n <component v-if=\"rowCheckboxIconTemplate\" :is=\"rowCheckboxIconTemplate\" :checked=\"slotProps.checked\" :class=\"slotProps.class\" />\n <CheckIcon v-else-if=\"!rowCheckboxIconTemplate && slotProps.checked\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcRowCheckbox')['icon']\" />\n </template>\n </Checkbox>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport CheckIcon from '@primevue/icons/check';\nimport Checkbox from 'primevue/checkbox';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'RowCheckbox',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['change'],\n props: {\n value: null,\n checked: null,\n column: null,\n rowCheckboxIconTemplate: {\n type: Function,\n default: null\n },\n index: {\n type: Number,\n default: null\n }\n },\n methods: {\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 checked: this.checked,\n disabled: this.$attrs.disabled\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 onChange(event) {\n if (!this.$attrs.disabled) {\n this.$emit('change', {\n originalEvent: event,\n data: this.value\n });\n }\n }\n },\n computed: {\n checkboxAriaLabel() {\n return this.$primevue.config.locale.aria ? (this.checked ? this.$primevue.config.locale.aria.selectRow : this.$primevue.config.locale.aria.unselectRow) : undefined;\n }\n },\n components: {\n CheckIcon,\n Checkbox\n }\n};\n</script>\n","<template>\n <Checkbox :modelValue=\"checked\" :binary=\"true\" :disabled=\"$attrs.disabled\" :aria-label=\"checkboxAriaLabel\" @change=\"onChange\" :unstyled=\"unstyled\" :pt=\"getColumnPT('pcRowCheckbox')\">\n <template #icon=\"slotProps\">\n <component v-if=\"rowCheckboxIconTemplate\" :is=\"rowCheckboxIconTemplate\" :checked=\"slotProps.checked\" :class=\"slotProps.class\" />\n <CheckIcon v-else-if=\"!rowCheckboxIconTemplate && slotProps.checked\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcRowCheckbox')['icon']\" />\n </template>\n </Checkbox>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport CheckIcon from '@primevue/icons/check';\nimport Checkbox from 'primevue/checkbox';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'RowCheckbox',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['change'],\n props: {\n value: null,\n checked: null,\n column: null,\n rowCheckboxIconTemplate: {\n type: Function,\n default: null\n },\n index: {\n type: Number,\n default: null\n }\n },\n methods: {\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 checked: this.checked,\n disabled: this.$attrs.disabled\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 onChange(event) {\n if (!this.$attrs.disabled) {\n this.$emit('change', {\n originalEvent: event,\n data: this.value\n });\n }\n }\n },\n computed: {\n checkboxAriaLabel() {\n return this.$primevue.config.locale.aria ? (this.checked ? this.$primevue.config.locale.aria.selectRow : this.$primevue.config.locale.aria.unselectRow) : undefined;\n }\n },\n components: {\n CheckIcon,\n Checkbox\n }\n};\n</script>\n","<template>\n <RadioButton :modelValue=\"checked\" :binary=\"true\" :disabled=\"$attrs.disabled\" :name=\"name\" @change=\"onChange\" :unstyled=\"unstyled\" :pt=\"getColumnPT('pcRowRadiobutton')\" />\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport RadioButton from 'primevue/radiobutton';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'RowRadioButton',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['change'],\n props: {\n value: null,\n checked: null,\n name: null,\n column: null,\n index: {\n type: Number,\n default: null\n }\n },\n methods: {\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 checked: this.checked,\n disabled: this.$attrs.disabled\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 onChange(event) {\n if (!this.$attrs.disabled) {\n this.$emit('change', {\n originalEvent: event,\n data: this.value\n });\n }\n }\n },\n components: {\n RadioButton\n }\n};\n</script>\n","<template>\n <RadioButton :modelValue=\"checked\" :binary=\"true\" :disabled=\"$attrs.disabled\" :name=\"name\" @change=\"onChange\" :unstyled=\"unstyled\" :pt=\"getColumnPT('pcRowRadiobutton')\" />\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport RadioButton from 'primevue/radiobutton';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'RowRadioButton',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['change'],\n props: {\n value: null,\n checked: null,\n name: null,\n column: null,\n index: {\n type: Number,\n default: null\n }\n },\n methods: {\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 checked: this.checked,\n disabled: this.$attrs.disabled\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 onChange(event) {\n if (!this.$attrs.disabled) {\n this.$emit('change', {\n originalEvent: event,\n data: this.value\n });\n }\n }\n },\n components: {\n RadioButton\n }\n};\n</script>\n","<template>\n <td v-if=\"loading\" :style=\"containerStyle\" :class=\"containerClass\" role=\"cell\" v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('bodyCell') }\">\n <component :is=\"column.children.loading\" :data=\"rowData\" :column=\"column\" :field=\"field\" :index=\"rowIndex\" :frozenRow=\"frozenRow\" :loadingOptions=\"loadingOptions\" />\n </td>\n <td\n v-else\n :style=\"containerStyle\"\n :class=\"containerClass\"\n :colspan=\"columnProp('colspan')\"\n :rowspan=\"columnProp('rowspan')\"\n @click=\"onClick\"\n @keydown=\"onKeyDown\"\n role=\"cell\"\n v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('bodyCell') }\"\n :data-p-selection-column=\"columnProp('selectionMode') != null\"\n :data-p-editable-column=\"isEditable()\"\n :data-p-cell-editing=\"d_editing\"\n :data-p-frozen-column=\"columnProp('frozen')\"\n >\n <component\n v-if=\"column.children && column.children.body && !d_editing\"\n :is=\"column.children.body\"\n :data=\"rowData\"\n :column=\"column\"\n :field=\"field\"\n :index=\"rowIndex\"\n :frozenRow=\"frozenRow\"\n :editorInitCallback=\"editorInitCallback\"\n :rowTogglerCallback=\"toggleRow\"\n />\n <component\n v-else-if=\"column.children && column.children.editor && d_editing\"\n :is=\"column.children.editor\"\n :data=\"editingRowData\"\n :column=\"column\"\n :field=\"field\"\n :index=\"rowIndex\"\n :frozenRow=\"frozenRow\"\n :editorSaveCallback=\"editorSaveCallback\"\n :editorCancelCallback=\"editorCancelCallback\"\n />\n <component v-else-if=\"column.children && column.children.body && !column.children.editor && d_editing\" :is=\"column.children.body\" :data=\"editingRowData\" :column=\"column\" :field=\"field\" :index=\"rowIndex\" :frozenRow=\"frozenRow\" />\n <template v-else-if=\"columnProp('selectionMode')\">\n <DTRadioButton v-if=\"columnProp('selectionMode') === 'single'\" :value=\"rowData\" :name=\"name\" :checked=\"selected\" @change=\"toggleRowWithRadio($event, rowIndex)\" :column=\"column\" :index=\"index\" :unstyled=\"unstyled\" :pt=\"pt\" />\n <DTCheckbox\n v-else-if=\"columnProp('selectionMode') === 'multiple'\"\n :value=\"rowData\"\n :checked=\"selected\"\n :rowCheckboxIconTemplate=\"column.children && column.children.rowcheckboxicon\"\n :aria-selected=\"selected ? true : undefined\"\n @change=\"toggleRowWithCheckbox($event, rowIndex)\"\n :column=\"column\"\n :index=\"index\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n <template v-else-if=\"columnProp('rowReorder')\">\n <component v-if=\"column.children && column.children.rowreordericon\" :is=\"column.children.rowreordericon\" :class=\"cx('reorderableRowHandle')\" />\n <i v-else-if=\"columnProp('rowReorderIcon')\" :class=\"[cx('reorderableRowHandle'), columnProp('rowReorderIcon')]\" v-bind=\"getColumnPT('reorderableRowHandle')\" />\n <BarsIcon v-else :class=\"cx('reorderableRowHandle')\" v-bind=\"getColumnPT('reorderableRowHandle')\" />\n </template>\n <template v-else-if=\"columnProp('expander')\">\n <button\n v-ripple\n :class=\"cx('rowToggleButton')\"\n type=\"button\"\n :aria-expanded=\"isRowExpanded\"\n :aria-controls=\"ariaControls\"\n :aria-label=\"expandButtonAriaLabel\"\n @click=\"toggleRow\"\n v-bind=\"getColumnPT('rowToggleButton')\"\n data-pc-group-section=\"rowactionbutton\"\n >\n <component v-if=\"column.children && column.children.rowtogglericon\" :is=\"column.children.rowtogglericon\" :class=\"cx('rowToggleIcon')\" :rowExpanded=\"isRowExpanded\" />\n <template v-else>\n <span v-if=\"isRowExpanded && expandedRowIcon\" :class=\"[cx('rowToggleIcon'), expandedRowIcon]\" />\n <ChevronDownIcon v-else-if=\"isRowExpanded && !expandedRowIcon\" :class=\"cx('rowToggleIcon')\" v-bind=\"getColumnPT('rowToggleIcon')\" />\n <span v-else-if=\"!isRowExpanded && collapsedRowIcon\" :class=\"[cx('rowToggleIcon'), collapsedRowIcon]\" />\n <ChevronRightIcon v-else-if=\"!isRowExpanded && !collapsedRowIcon\" :class=\"cx('rowToggleIcon')\" v-bind=\"getColumnPT('rowToggleIcon')\" />\n </template>\n </button>\n </template>\n <template v-else-if=\"editMode === 'row' && columnProp('rowEditor')\">\n <Button\n v-if=\"!d_editing\"\n :class=\"cx('pcRowEditorInit')\"\n :aria-label=\"initButtonAriaLabel\"\n :unstyled=\"unstyled\"\n @click=\"onRowEditInit\"\n v-bind=\"editButtonProps.init\"\n :pt=\"getColumnPT('pcRowEditorInit')\"\n data-pc-group-section=\"rowactionbutton\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"(column.children && column.children.roweditoriniticon) || 'PencilIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcRowEditorInit')['icon']\" />\n </template>\n </Button>\n <Button\n v-if=\"d_editing\"\n :class=\"cx('pcRowEditorSave')\"\n :aria-label=\"saveButtonAriaLabel\"\n :unstyled=\"unstyled\"\n @click=\"onRowEditSave\"\n v-bind=\"editButtonProps.save\"\n :pt=\"getColumnPT('pcRowEditorSave')\"\n data-pc-group-section=\"rowactionbutton\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"(column.children && column.children.roweditorsaveicon) || 'CheckIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcRowEditorSave')['icon']\" />\n </template>\n </Button>\n <Button\n v-if=\"d_editing\"\n :class=\"cx('pcRowEditorCancel')\"\n :aria-label=\"cancelButtonAriaLabel\"\n :unstyled=\"unstyled\"\n @click=\"onRowEditCancel\"\n v-bind=\"editButtonProps.cancel\"\n :pt=\"getColumnPT('pcRowEditorCancel')\"\n data-pc-group-section=\"rowactionbutton\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"(column.children && column.children.roweditorcancelicon) || 'TimesIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcRowEditorCancel')['icon']\" />\n </template>\n </Button>\n </template>\n <template v-else>{{ resolveFieldData() }}</template>\n </td>\n</template>\n\n<script>\nimport { getAttribute, getFirstFocusableElement, getNextElementSibling, getOuterWidth, getPreviousElementSibling, invokeElementMethod } from '@primeuix/utils/dom';\nimport { resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport BarsIcon from '@primevue/icons/bars';\nimport CheckIcon from '@primevue/icons/check';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport PencilIcon from '@primevue/icons/pencil';\nimport TimesIcon from '@primevue/icons/times';\nimport Button from 'primevue/button';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\nimport RowCheckbox from './RowCheckbox.vue';\nimport RowRadioButton from './RowRadioButton.vue';\n\nexport default {\n name: 'BodyCell',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['cell-edit-init', 'cell-edit-complete', 'cell-edit-cancel', 'row-edit-init', 'row-edit-save', 'row-edit-cancel', 'row-toggle', 'radio-change', 'checkbox-change', 'editing-meta-change'],\n props: {\n rowData: {\n type: Object,\n default: null\n },\n column: {\n type: Object,\n default: null\n },\n frozenRow: {\n type: Boolean,\n default: false\n },\n rowIndex: {\n type: Number,\n default: null\n },\n index: {\n type: Number,\n default: null\n },\n isRowExpanded: {\n type: Boolean,\n default: false\n },\n selected: {\n type: Boolean,\n default: false\n },\n editing: {\n type: Boolean,\n default: false\n },\n editingMeta: {\n type: Object,\n default: null\n },\n editMode: {\n type: String,\n default: null\n },\n virtualScrollerContentProps: {\n type: Object,\n default: null\n },\n ariaControls: {\n type: String,\n default: null\n },\n name: {\n type: String,\n default: null\n },\n expandedRowIcon: {\n type: String,\n default: null\n },\n collapsedRowIcon: {\n type: String,\n default: null\n },\n editButtonProps: {\n type: Object,\n default: null\n }\n },\n documentEditListener: null,\n selfClick: false,\n overlayEventListener: null,\n data() {\n return {\n d_editing: this.editing,\n styleObject: {}\n };\n },\n watch: {\n editing(newValue) {\n this.d_editing = newValue;\n },\n '$data.d_editing': function (newValue) {\n this.$emit('editing-meta-change', { data: this.rowData, field: this.field || `field_${this.index}`, index: this.rowIndex, editing: newValue });\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 if (this.d_editing && (this.editMode === 'cell' || (this.editMode === 'row' && this.columnProp('rowEditor')))) {\n setTimeout(() => {\n const focusableEl = getFirstFocusableElement(this.$el);\n\n focusableEl && focusableEl.focus();\n }, 1);\n }\n },\n beforeUnmount() {\n if (this.overlayEventListener) {\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\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 size: this.$parentInstance?.$parentInstance?.size,\n showGridlines: this.$parentInstance?.$parentInstance?.showGridlines\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 resolveFieldData() {\n return resolveFieldData(this.rowData, this.field);\n },\n toggleRow(event) {\n this.$emit('row-toggle', {\n originalEvent: event,\n data: this.rowData\n });\n },\n toggleRowWithRadio(event, index) {\n this.$emit('radio-change', { originalEvent: event.originalEvent, index: index, data: event.data });\n },\n toggleRowWithCheckbox(event, index) {\n this.$emit('checkbox-change', { originalEvent: event.originalEvent, index: index, data: event.data });\n },\n isEditable() {\n return this.column.children && this.column.children.editor != null;\n },\n bindDocumentEditListener() {\n if (!this.documentEditListener) {\n this.documentEditListener = (event) => {\n if (!this.selfClick) {\n this.completeEdit(event, 'outside');\n }\n\n this.selfClick = false;\n };\n\n document.addEventListener('click', this.documentEditListener);\n }\n },\n unbindDocumentEditListener() {\n if (this.documentEditListener) {\n document.removeEventListener('click', this.documentEditListener);\n this.documentEditListener = null;\n this.selfClick = false;\n }\n },\n switchCellToViewMode() {\n this.d_editing = false;\n this.unbindDocumentEditListener();\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n },\n onClick(event) {\n if (this.editMode === 'cell' && this.isEditable()) {\n this.selfClick = true;\n\n if (!this.d_editing) {\n this.d_editing = true;\n this.bindDocumentEditListener();\n this.$emit('cell-edit-init', { originalEvent: event, data: this.rowData, field: this.field, index: this.rowIndex });\n\n this.overlayEventListener = (e) => {\n if (this.$el && this.$el.contains(e.target)) {\n this.selfClick = true;\n }\n };\n\n OverlayEventBus.on('overlay-click', this.overlayEventListener);\n }\n }\n },\n completeEdit(event, type) {\n const completeEvent = {\n originalEvent: event,\n data: this.rowData,\n newData: this.editingRowData,\n value: this.rowData[this.field],\n newValue: this.editingRowData[this.field],\n field: this.field,\n index: this.rowIndex,\n type: type,\n defaultPrevented: false,\n preventDefault: function () {\n this.defaultPrevented = true;\n }\n };\n\n this.$emit('cell-edit-complete', completeEvent);\n\n if (!completeEvent.defaultPrevented) {\n this.switchCellToViewMode();\n }\n },\n onKeyDown(event) {\n if (this.editMode === 'cell') {\n switch (event.code) {\n case 'Enter':\n case 'NumpadEnter':\n this.completeEdit(event, 'enter');\n break;\n\n case 'Escape':\n this.switchCellToViewMode();\n this.$emit('cell-edit-cancel', { originalEvent: event, data: this.rowData, field: this.field, index: this.rowIndex });\n break;\n\n case 'Tab':\n this.completeEdit(event, 'tab');\n\n if (event.shiftKey) this.moveToPreviousCell(event);\n else this.moveToNextCell(event);\n break;\n\n default:\n break;\n }\n }\n },\n moveToPreviousCell(event) {\n let currentCell = this.findCell(event.target);\n let targetCell = this.findPreviousEditableColumn(currentCell);\n\n if (targetCell) {\n invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n },\n moveToNextCell(event) {\n let currentCell = this.findCell(event.target);\n let targetCell = this.findNextEditableColumn(currentCell);\n\n if (targetCell) {\n invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n },\n findCell(element) {\n if (element) {\n let cell = element;\n\n while (cell && !getAttribute(cell, 'data-p-cell-editing')) {\n cell = cell.parentElement;\n }\n\n return cell;\n } else {\n return null;\n }\n },\n findPreviousEditableColumn(cell) {\n let prevCell = cell.previousElementSibling;\n\n if (!prevCell) {\n let previousRow = cell.parentElement.previousElementSibling;\n\n if (previousRow) {\n prevCell = previousRow.lastElementChild;\n }\n }\n\n if (prevCell) {\n if (getAttribute(prevCell, 'data-p-editable-column')) return prevCell;\n else return this.findPreviousEditableColumn(prevCell);\n } else {\n return null;\n }\n },\n findNextEditableColumn(cell) {\n let nextCell = cell.nextElementSibling;\n\n if (!nextCell) {\n let nextRow = cell.parentElement.nextElementSibling;\n\n if (nextRow) {\n nextCell = nextRow.firstElementChild;\n }\n }\n\n if (nextCell) {\n if (getAttribute(nextCell, 'data-p-editable-column')) return nextCell;\n else return this.findNextEditableColumn(nextCell);\n } else {\n return null;\n }\n },\n onRowEditInit(event) {\n this.$emit('row-edit-init', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n },\n onRowEditSave(event) {\n this.$emit('row-edit-save', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n },\n onRowEditCancel(event) {\n this.$emit('row-edit-cancel', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n },\n editorInitCallback(event) {\n this.$emit('row-edit-init', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n },\n editorSaveCallback(event) {\n if (this.editMode === 'row') {\n this.$emit('row-edit-save', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n } else {\n this.completeEdit(event, 'enter');\n }\n },\n editorCancelCallback(event) {\n if (this.editMode === 'row') {\n this.$emit('row-edit-cancel', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n } else {\n this.switchCellToViewMode();\n this.$emit('cell-edit-cancel', { originalEvent: event, data: this.rowData, field: this.field, index: this.rowIndex });\n }\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let align = this.columnProp('alignFrozen');\n let isRTL = this.$parentInstance.$parentInstance.isRTL;\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.right || 0);\n }\n\n if (isRTL) {\n this.styleObject.left = pos + 'px';\n } else {\n this.styleObject.right = pos + 'px';\n }\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.left || 0);\n }\n\n if (isRTL) {\n this.styleObject.right = pos + 'px';\n } else {\n this.styleObject.left = pos + 'px';\n }\n }\n }\n },\n getVirtualScrollerProp(option) {\n return this.virtualScrollerContentProps ? this.virtualScrollerContentProps[option] : null;\n }\n },\n computed: {\n editingRowData() {\n return this.editingMeta[this.rowIndex] ? this.editingMeta[this.rowIndex].data : this.rowData;\n },\n field() {\n return this.columnProp('field');\n },\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 loading() {\n return this.getVirtualScrollerProp('loading');\n },\n loadingOptions() {\n const getLoaderOptions = this.getVirtualScrollerProp('getLoaderOptions');\n\n return (\n getLoaderOptions &&\n getLoaderOptions(this.rowIndex, {\n cellIndex: this.index,\n cellFirst: this.index === 0,\n cellLast: this.index === this.getVirtualScrollerProp('columns').length - 1,\n cellEven: this.index % 2 === 0,\n cellOdd: this.index % 2 !== 0,\n column: this.column,\n field: this.field\n })\n );\n },\n expandButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? (this.isRowExpanded ? this.$primevue.config.locale.aria.expandRow : this.$primevue.config.locale.aria.collapseRow) : undefined;\n },\n initButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.editRow : undefined;\n },\n saveButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.saveEdit : undefined;\n },\n cancelButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.cancelEdit : undefined;\n }\n },\n components: {\n DTRadioButton: RowRadioButton,\n DTCheckbox: RowCheckbox,\n Button,\n ChevronDownIcon,\n ChevronRightIcon,\n BarsIcon,\n PencilIcon,\n CheckIcon,\n TimesIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <td v-if=\"loading\" :style=\"containerStyle\" :class=\"containerClass\" role=\"cell\" v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('bodyCell') }\">\n <component :is=\"column.children.loading\" :data=\"rowData\" :column=\"column\" :field=\"field\" :index=\"rowIndex\" :frozenRow=\"frozenRow\" :loadingOptions=\"loadingOptions\" />\n </td>\n <td\n v-else\n :style=\"containerStyle\"\n :class=\"containerClass\"\n :colspan=\"columnProp('colspan')\"\n :rowspan=\"columnProp('rowspan')\"\n @click=\"onClick\"\n @keydown=\"onKeyDown\"\n role=\"cell\"\n v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('bodyCell') }\"\n :data-p-selection-column=\"columnProp('selectionMode') != null\"\n :data-p-editable-column=\"isEditable()\"\n :data-p-cell-editing=\"d_editing\"\n :data-p-frozen-column=\"columnProp('frozen')\"\n >\n <component\n v-if=\"column.children && column.children.body && !d_editing\"\n :is=\"column.children.body\"\n :data=\"rowData\"\n :column=\"column\"\n :field=\"field\"\n :index=\"rowIndex\"\n :frozenRow=\"frozenRow\"\n :editorInitCallback=\"editorInitCallback\"\n :rowTogglerCallback=\"toggleRow\"\n />\n <component\n v-else-if=\"column.children && column.children.editor && d_editing\"\n :is=\"column.children.editor\"\n :data=\"editingRowData\"\n :column=\"column\"\n :field=\"field\"\n :index=\"rowIndex\"\n :frozenRow=\"frozenRow\"\n :editorSaveCallback=\"editorSaveCallback\"\n :editorCancelCallback=\"editorCancelCallback\"\n />\n <component v-else-if=\"column.children && column.children.body && !column.children.editor && d_editing\" :is=\"column.children.body\" :data=\"editingRowData\" :column=\"column\" :field=\"field\" :index=\"rowIndex\" :frozenRow=\"frozenRow\" />\n <template v-else-if=\"columnProp('selectionMode')\">\n <DTRadioButton v-if=\"columnProp('selectionMode') === 'single'\" :value=\"rowData\" :name=\"name\" :checked=\"selected\" @change=\"toggleRowWithRadio($event, rowIndex)\" :column=\"column\" :index=\"index\" :unstyled=\"unstyled\" :pt=\"pt\" />\n <DTCheckbox\n v-else-if=\"columnProp('selectionMode') === 'multiple'\"\n :value=\"rowData\"\n :checked=\"selected\"\n :rowCheckboxIconTemplate=\"column.children && column.children.rowcheckboxicon\"\n :aria-selected=\"selected ? true : undefined\"\n @change=\"toggleRowWithCheckbox($event, rowIndex)\"\n :column=\"column\"\n :index=\"index\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n <template v-else-if=\"columnProp('rowReorder')\">\n <component v-if=\"column.children && column.children.rowreordericon\" :is=\"column.children.rowreordericon\" :class=\"cx('reorderableRowHandle')\" />\n <i v-else-if=\"columnProp('rowReorderIcon')\" :class=\"[cx('reorderableRowHandle'), columnProp('rowReorderIcon')]\" v-bind=\"getColumnPT('reorderableRowHandle')\" />\n <BarsIcon v-else :class=\"cx('reorderableRowHandle')\" v-bind=\"getColumnPT('reorderableRowHandle')\" />\n </template>\n <template v-else-if=\"columnProp('expander')\">\n <button\n v-ripple\n :class=\"cx('rowToggleButton')\"\n type=\"button\"\n :aria-expanded=\"isRowExpanded\"\n :aria-controls=\"ariaControls\"\n :aria-label=\"expandButtonAriaLabel\"\n @click=\"toggleRow\"\n v-bind=\"getColumnPT('rowToggleButton')\"\n data-pc-group-section=\"rowactionbutton\"\n >\n <component v-if=\"column.children && column.children.rowtogglericon\" :is=\"column.children.rowtogglericon\" :class=\"cx('rowToggleIcon')\" :rowExpanded=\"isRowExpanded\" />\n <template v-else>\n <span v-if=\"isRowExpanded && expandedRowIcon\" :class=\"[cx('rowToggleIcon'), expandedRowIcon]\" />\n <ChevronDownIcon v-else-if=\"isRowExpanded && !expandedRowIcon\" :class=\"cx('rowToggleIcon')\" v-bind=\"getColumnPT('rowToggleIcon')\" />\n <span v-else-if=\"!isRowExpanded && collapsedRowIcon\" :class=\"[cx('rowToggleIcon'), collapsedRowIcon]\" />\n <ChevronRightIcon v-else-if=\"!isRowExpanded && !collapsedRowIcon\" :class=\"cx('rowToggleIcon')\" v-bind=\"getColumnPT('rowToggleIcon')\" />\n </template>\n </button>\n </template>\n <template v-else-if=\"editMode === 'row' && columnProp('rowEditor')\">\n <Button\n v-if=\"!d_editing\"\n :class=\"cx('pcRowEditorInit')\"\n :aria-label=\"initButtonAriaLabel\"\n :unstyled=\"unstyled\"\n @click=\"onRowEditInit\"\n v-bind=\"editButtonProps.init\"\n :pt=\"getColumnPT('pcRowEditorInit')\"\n data-pc-group-section=\"rowactionbutton\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"(column.children && column.children.roweditoriniticon) || 'PencilIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcRowEditorInit')['icon']\" />\n </template>\n </Button>\n <Button\n v-if=\"d_editing\"\n :class=\"cx('pcRowEditorSave')\"\n :aria-label=\"saveButtonAriaLabel\"\n :unstyled=\"unstyled\"\n @click=\"onRowEditSave\"\n v-bind=\"editButtonProps.save\"\n :pt=\"getColumnPT('pcRowEditorSave')\"\n data-pc-group-section=\"rowactionbutton\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"(column.children && column.children.roweditorsaveicon) || 'CheckIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcRowEditorSave')['icon']\" />\n </template>\n </Button>\n <Button\n v-if=\"d_editing\"\n :class=\"cx('pcRowEditorCancel')\"\n :aria-label=\"cancelButtonAriaLabel\"\n :unstyled=\"unstyled\"\n @click=\"onRowEditCancel\"\n v-bind=\"editButtonProps.cancel\"\n :pt=\"getColumnPT('pcRowEditorCancel')\"\n data-pc-group-section=\"rowactionbutton\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"(column.children && column.children.roweditorcancelicon) || 'TimesIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcRowEditorCancel')['icon']\" />\n </template>\n </Button>\n </template>\n <template v-else>{{ resolveFieldData() }}</template>\n </td>\n</template>\n\n<script>\nimport { getAttribute, getFirstFocusableElement, getNextElementSibling, getOuterWidth, getPreviousElementSibling, invokeElementMethod } from '@primeuix/utils/dom';\nimport { resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport BarsIcon from '@primevue/icons/bars';\nimport CheckIcon from '@primevue/icons/check';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport PencilIcon from '@primevue/icons/pencil';\nimport TimesIcon from '@primevue/icons/times';\nimport Button from 'primevue/button';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\nimport RowCheckbox from './RowCheckbox.vue';\nimport RowRadioButton from './RowRadioButton.vue';\n\nexport default {\n name: 'BodyCell',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['cell-edit-init', 'cell-edit-complete', 'cell-edit-cancel', 'row-edit-init', 'row-edit-save', 'row-edit-cancel', 'row-toggle', 'radio-change', 'checkbox-change', 'editing-meta-change'],\n props: {\n rowData: {\n type: Object,\n default: null\n },\n column: {\n type: Object,\n default: null\n },\n frozenRow: {\n type: Boolean,\n default: false\n },\n rowIndex: {\n type: Number,\n default: null\n },\n index: {\n type: Number,\n default: null\n },\n isRowExpanded: {\n type: Boolean,\n default: false\n },\n selected: {\n type: Boolean,\n default: false\n },\n editing: {\n type: Boolean,\n default: false\n },\n editingMeta: {\n type: Object,\n default: null\n },\n editMode: {\n type: String,\n default: null\n },\n virtualScrollerContentProps: {\n type: Object,\n default: null\n },\n ariaControls: {\n type: String,\n default: null\n },\n name: {\n type: String,\n default: null\n },\n expandedRowIcon: {\n type: String,\n default: null\n },\n collapsedRowIcon: {\n type: String,\n default: null\n },\n editButtonProps: {\n type: Object,\n default: null\n }\n },\n documentEditListener: null,\n selfClick: false,\n overlayEventListener: null,\n data() {\n return {\n d_editing: this.editing,\n styleObject: {}\n };\n },\n watch: {\n editing(newValue) {\n this.d_editing = newValue;\n },\n '$data.d_editing': function (newValue) {\n this.$emit('editing-meta-change', { data: this.rowData, field: this.field || `field_${this.index}`, index: this.rowIndex, editing: newValue });\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 if (this.d_editing && (this.editMode === 'cell' || (this.editMode === 'row' && this.columnProp('rowEditor')))) {\n setTimeout(() => {\n const focusableEl = getFirstFocusableElement(this.$el);\n\n focusableEl && focusableEl.focus();\n }, 1);\n }\n },\n beforeUnmount() {\n if (this.overlayEventListener) {\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\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 size: this.$parentInstance?.$parentInstance?.size,\n showGridlines: this.$parentInstance?.$parentInstance?.showGridlines\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 resolveFieldData() {\n return resolveFieldData(this.rowData, this.field);\n },\n toggleRow(event) {\n this.$emit('row-toggle', {\n originalEvent: event,\n data: this.rowData\n });\n },\n toggleRowWithRadio(event, index) {\n this.$emit('radio-change', { originalEvent: event.originalEvent, index: index, data: event.data });\n },\n toggleRowWithCheckbox(event, index) {\n this.$emit('checkbox-change', { originalEvent: event.originalEvent, index: index, data: event.data });\n },\n isEditable() {\n return this.column.children && this.column.children.editor != null;\n },\n bindDocumentEditListener() {\n if (!this.documentEditListener) {\n this.documentEditListener = (event) => {\n if (!this.selfClick) {\n this.completeEdit(event, 'outside');\n }\n\n this.selfClick = false;\n };\n\n document.addEventListener('click', this.documentEditListener);\n }\n },\n unbindDocumentEditListener() {\n if (this.documentEditListener) {\n document.removeEventListener('click', this.documentEditListener);\n this.documentEditListener = null;\n this.selfClick = false;\n }\n },\n switchCellToViewMode() {\n this.d_editing = false;\n this.unbindDocumentEditListener();\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n },\n onClick(event) {\n if (this.editMode === 'cell' && this.isEditable()) {\n this.selfClick = true;\n\n if (!this.d_editing) {\n this.d_editing = true;\n this.bindDocumentEditListener();\n this.$emit('cell-edit-init', { originalEvent: event, data: this.rowData, field: this.field, index: this.rowIndex });\n\n this.overlayEventListener = (e) => {\n if (this.$el && this.$el.contains(e.target)) {\n this.selfClick = true;\n }\n };\n\n OverlayEventBus.on('overlay-click', this.overlayEventListener);\n }\n }\n },\n completeEdit(event, type) {\n const completeEvent = {\n originalEvent: event,\n data: this.rowData,\n newData: this.editingRowData,\n value: this.rowData[this.field],\n newValue: this.editingRowData[this.field],\n field: this.field,\n index: this.rowIndex,\n type: type,\n defaultPrevented: false,\n preventDefault: function () {\n this.defaultPrevented = true;\n }\n };\n\n this.$emit('cell-edit-complete', completeEvent);\n\n if (!completeEvent.defaultPrevented) {\n this.switchCellToViewMode();\n }\n },\n onKeyDown(event) {\n if (this.editMode === 'cell') {\n switch (event.code) {\n case 'Enter':\n case 'NumpadEnter':\n this.completeEdit(event, 'enter');\n break;\n\n case 'Escape':\n this.switchCellToViewMode();\n this.$emit('cell-edit-cancel', { originalEvent: event, data: this.rowData, field: this.field, index: this.rowIndex });\n break;\n\n case 'Tab':\n this.completeEdit(event, 'tab');\n\n if (event.shiftKey) this.moveToPreviousCell(event);\n else this.moveToNextCell(event);\n break;\n\n default:\n break;\n }\n }\n },\n moveToPreviousCell(event) {\n let currentCell = this.findCell(event.target);\n let targetCell = this.findPreviousEditableColumn(currentCell);\n\n if (targetCell) {\n invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n },\n moveToNextCell(event) {\n let currentCell = this.findCell(event.target);\n let targetCell = this.findNextEditableColumn(currentCell);\n\n if (targetCell) {\n invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n },\n findCell(element) {\n if (element) {\n let cell = element;\n\n while (cell && !getAttribute(cell, 'data-p-cell-editing')) {\n cell = cell.parentElement;\n }\n\n return cell;\n } else {\n return null;\n }\n },\n findPreviousEditableColumn(cell) {\n let prevCell = cell.previousElementSibling;\n\n if (!prevCell) {\n let previousRow = cell.parentElement.previousElementSibling;\n\n if (previousRow) {\n prevCell = previousRow.lastElementChild;\n }\n }\n\n if (prevCell) {\n if (getAttribute(prevCell, 'data-p-editable-column')) return prevCell;\n else return this.findPreviousEditableColumn(prevCell);\n } else {\n return null;\n }\n },\n findNextEditableColumn(cell) {\n let nextCell = cell.nextElementSibling;\n\n if (!nextCell) {\n let nextRow = cell.parentElement.nextElementSibling;\n\n if (nextRow) {\n nextCell = nextRow.firstElementChild;\n }\n }\n\n if (nextCell) {\n if (getAttribute(nextCell, 'data-p-editable-column')) return nextCell;\n else return this.findNextEditableColumn(nextCell);\n } else {\n return null;\n }\n },\n onRowEditInit(event) {\n this.$emit('row-edit-init', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n },\n onRowEditSave(event) {\n this.$emit('row-edit-save', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n },\n onRowEditCancel(event) {\n this.$emit('row-edit-cancel', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n },\n editorInitCallback(event) {\n this.$emit('row-edit-init', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n },\n editorSaveCallback(event) {\n if (this.editMode === 'row') {\n this.$emit('row-edit-save', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n } else {\n this.completeEdit(event, 'enter');\n }\n },\n editorCancelCallback(event) {\n if (this.editMode === 'row') {\n this.$emit('row-edit-cancel', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n } else {\n this.switchCellToViewMode();\n this.$emit('cell-edit-cancel', { originalEvent: event, data: this.rowData, field: this.field, index: this.rowIndex });\n }\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let align = this.columnProp('alignFrozen');\n let isRTL = this.$parentInstance.$parentInstance.isRTL;\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.right || 0);\n }\n\n if (isRTL) {\n this.styleObject.left = pos + 'px';\n } else {\n this.styleObject.right = pos + 'px';\n }\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.left || 0);\n }\n\n if (isRTL) {\n this.styleObject.right = pos + 'px';\n } else {\n this.styleObject.left = pos + 'px';\n }\n }\n }\n },\n getVirtualScrollerProp(option) {\n return this.virtualScrollerContentProps ? this.virtualScrollerContentProps[option] : null;\n }\n },\n computed: {\n editingRowData() {\n return this.editingMeta[this.rowIndex] ? this.editingMeta[this.rowIndex].data : this.rowData;\n },\n field() {\n return this.columnProp('field');\n },\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 loading() {\n return this.getVirtualScrollerProp('loading');\n },\n loadingOptions() {\n const getLoaderOptions = this.getVirtualScrollerProp('getLoaderOptions');\n\n return (\n getLoaderOptions &&\n getLoaderOptions(this.rowIndex, {\n cellIndex: this.index,\n cellFirst: this.index === 0,\n cellLast: this.index === this.getVirtualScrollerProp('columns').length - 1,\n cellEven: this.index % 2 === 0,\n cellOdd: this.index % 2 !== 0,\n column: this.column,\n field: this.field\n })\n );\n },\n expandButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? (this.isRowExpanded ? this.$primevue.config.locale.aria.expandRow : this.$primevue.config.locale.aria.collapseRow) : undefined;\n },\n initButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.editRow : undefined;\n },\n saveButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.saveEdit : undefined;\n },\n cancelButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.cancelEdit : undefined;\n }\n },\n components: {\n DTRadioButton: RowRadioButton,\n DTCheckbox: RowCheckbox,\n Button,\n ChevronDownIcon,\n ChevronRightIcon,\n BarsIcon,\n PencilIcon,\n CheckIcon,\n TimesIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <template v-if=\"!empty\">\n <tr v-if=\"templates['groupheader'] && rowGroupMode === 'subheader' && shouldRenderRowGroupHeader\" :class=\"cx('rowGroupHeader')\" :style=\"rowGroupHeaderStyle\" role=\"row\" v-bind=\"ptm('rowGroupHeader')\">\n <td :colspan=\"columnsLength - 1\" v-bind=\"{ ...getColumnPT('bodycell'), ...ptm('rowGroupHeaderCell') }\">\n <button v-if=\"expandableRowGroups\" :class=\"cx('rowToggleButton')\" @click=\"onRowGroupToggle\" type=\"button\" v-bind=\"ptm('rowToggleButton')\">\n <component v-if=\"templates['rowtoggleicon'] || templates['rowgrouptogglericon']\" :is=\"templates['rowtoggleicon'] || templates['rowgrouptogglericon']\" :expanded=\"isRowGroupExpanded\" />\n <template v-else>\n <span v-if=\"isRowGroupExpanded && expandedRowIcon\" :class=\"[cx('rowToggleIcon'), expandedRowIcon]\" v-bind=\"ptm('rowToggleIcon')\" />\n <ChevronDownIcon v-else-if=\"isRowGroupExpanded && !expandedRowIcon\" :class=\"cx('rowToggleIcon')\" v-bind=\"ptm('rowToggleIcon')\" />\n <span v-else-if=\"!isRowGroupExpanded && collapsedRowIcon\" :class=\"[cx('rowToggleIcon'), collapsedRowIcon]\" v-bind=\"ptm('rowToggleIcon')\" />\n <ChevronRightIcon v-else-if=\"!isRowGroupExpanded && !collapsedRowIcon\" :class=\"cx('rowToggleIcon')\" v-bind=\"ptm('rowToggleIcon')\" />\n </template>\n </button>\n <component :is=\"templates['groupheader']\" :data=\"rowData\" :index=\"rowIndex\" />\n </td>\n </tr>\n <tr\n v-if=\"expandableRowGroups ? isRowGroupExpanded : true\"\n :class=\"rowClasses\"\n :style=\"rowStyles\"\n :tabindex=\"rowTabindex\"\n role=\"row\"\n :aria-selected=\"selectionMode ? isSelected : null\"\n @click=\"onRowClick\"\n @dblclick=\"onRowDblClick\"\n @contextmenu=\"onRowRightClick\"\n @touchend=\"onRowTouchEnd\"\n @keydown.self=\"onRowKeyDown\"\n @mousedown=\"onRowMouseDown\"\n @dragstart=\"onRowDragStart\"\n @dragover=\"onRowDragOver\"\n @dragleave=\"onRowDragLeave\"\n @dragend=\"onRowDragEnd\"\n @drop=\"onRowDrop\"\n v-bind=\"getBodyRowPTOptions('bodyRow')\"\n :data-p-index=\"rowIndex\"\n :data-p-selectable-row=\"selectionMode ? true : false\"\n :data-p-selected=\"selection && isSelected\"\n :data-p-selected-contextmenu=\"contextMenuSelection && isSelectedWithContextMenu\"\n >\n <template v-for=\"(col, i) of columns\">\n <DTBodyCell\n v-if=\"shouldRenderBodyCell(col)\"\n :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\"\n :rowData=\"rowData\"\n :column=\"col\"\n :rowIndex=\"rowIndex\"\n :index=\"i\"\n :selected=\"isSelected\"\n :frozenRow=\"frozenRow\"\n :rowspan=\"rowGroupMode === 'rowspan' ? calculateRowGroupSize(col) : null\"\n :editMode=\"editMode\"\n :editing=\"editMode === 'row' && isRowEditing\"\n :editingMeta=\"editingMeta\"\n :virtualScrollerContentProps=\"virtualScrollerContentProps\"\n :ariaControls=\"expandedRowId + '_' + rowIndex + '_expansion'\"\n :name=\"nameAttributeSelector\"\n :isRowExpanded=\"d_rowExpanded\"\n :expandedRowIcon=\"expandedRowIcon\"\n :collapsedRowIcon=\"collapsedRowIcon\"\n :editButtonProps=\"editButtonProps\"\n @radio-change=\"onRadioChange\"\n @checkbox-change=\"onCheckboxChange\"\n @row-toggle=\"onRowToggle\"\n @cell-edit-init=\"onCellEditInit\"\n @cell-edit-complete=\"onCellEditComplete\"\n @cell-edit-cancel=\"onCellEditCancel\"\n @row-edit-init=\"onRowEditInit\"\n @row-edit-save=\"onRowEditSave\"\n @row-edit-cancel=\"onRowEditCancel\"\n @editing-meta-change=\"onEditingMetaChange\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </tr>\n <tr v-if=\"templates['expansion'] && expandedRows && d_rowExpanded\" :id=\"expandedRowId + '_' + rowIndex + '_expansion'\" :class=\"cx('rowExpansion')\" role=\"row\" v-bind=\"ptm('rowExpansion')\">\n <td :colspan=\"columnsLength\" v-bind=\"{ ...getColumnPT('bodycell'), ...ptm('rowExpansionCell') }\">\n <component :is=\"templates['expansion']\" :data=\"rowData\" :index=\"rowIndex\" />\n </td>\n </tr>\n <tr v-if=\"templates['groupfooter'] && rowGroupMode === 'subheader' && shouldRenderRowGroupFooter\" :class=\"cx('rowGroupFooter')\" role=\"row\" v-bind=\"ptm('rowGroupFooter')\">\n <td :colspan=\"columnsLength - 1\" v-bind=\"{ ...getColumnPT('bodycell'), ...ptm('rowGroupFooterCell') }\">\n <component :is=\"templates['groupfooter']\" :data=\"rowData\" :index=\"rowIndex\" />\n </td>\n </tr>\n </template>\n <tr v-else :class=\"cx('emptyMessage')\" role=\"row\" v-bind=\"ptm('emptyMessage')\">\n <td :colspan=\"columnsLength\" v-bind=\"{ ...getColumnPT('bodycell'), ...ptm('emptyMessageCell') }\">\n <component v-if=\"templates.empty\" :is=\"templates.empty\" />\n </td>\n </tr>\n</template>\n\n<script>\nimport { equals, isNotEmpty, resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport { mergeProps } from 'vue';\nimport BodyCell from './BodyCell.vue';\n\nexport default {\n name: 'BodyRow',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: [\n 'rowgroup-toggle',\n 'row-click',\n 'row-dblclick',\n 'row-rightclick',\n 'row-touchend',\n 'row-keydown',\n 'row-mousedown',\n 'row-dragstart',\n 'row-dragover',\n 'row-dragleave',\n 'row-dragend',\n 'row-drop',\n 'row-toggle',\n 'radio-change',\n 'checkbox-change',\n 'cell-edit-init',\n 'cell-edit-complete',\n 'cell-edit-cancel',\n 'row-edit-init',\n 'row-edit-save',\n 'row-edit-cancel',\n 'editing-meta-change'\n ],\n props: {\n rowData: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: 0\n },\n value: {\n type: Array,\n default: null\n },\n columns: {\n type: null,\n default: null\n },\n frozenRow: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n rowGroupMode: {\n type: String,\n default: null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n expandableRowGroups: {\n type: Boolean,\n default: false\n },\n expandedRowGroups: {\n type: Array,\n default: null\n },\n first: {\n type: Number,\n default: 0\n },\n dataKey: {\n type: [String, Function],\n default: null\n },\n expandedRowIcon: {\n type: String,\n default: null\n },\n collapsedRowIcon: {\n type: String,\n default: null\n },\n expandedRows: {\n type: [Array, Object],\n default: null\n },\n selection: {\n type: [Array, Object],\n default: null\n },\n selectionKeys: {\n type: null,\n default: null\n },\n selectionMode: {\n type: String,\n default: null\n },\n contextMenu: {\n type: Boolean,\n default: false\n },\n contextMenuSelection: {\n type: Object,\n default: null\n },\n rowClass: {\n type: null,\n default: null\n },\n rowStyle: {\n type: null,\n default: null\n },\n rowGroupHeaderStyle: {\n type: null,\n default: null\n },\n editMode: {\n type: String,\n default: null\n },\n compareSelectionBy: {\n type: String,\n default: 'deepEquals'\n },\n editingRows: {\n type: Array,\n default: null\n },\n editingRowKeys: {\n type: null,\n default: null\n },\n editingMeta: {\n type: Object,\n default: null\n },\n templates: {\n type: null,\n default: null\n },\n scrollable: {\n type: Boolean,\n default: false\n },\n editButtonProps: {\n type: Object,\n default: null\n },\n virtualScrollerContentProps: {\n type: Object,\n default: null\n },\n isVirtualScrollerDisabled: {\n type: Boolean,\n default: false\n },\n expandedRowId: {\n type: String,\n default: null\n },\n nameAttributeSelector: {\n type: String,\n default: null\n }\n },\n data() {\n return {\n d_rowExpanded: false\n };\n },\n watch: {\n expandedRows: {\n deep: true,\n immediate: true,\n handler(newValue) {\n this.d_rowExpanded = this.dataKey ? newValue?.[resolveFieldData(this.rowData, this.dataKey)] !== undefined : newValue?.some((d) => this.equals(this.rowData, d));\n }\n }\n },\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n //@todo - update this method\n getColumnPT(key) {\n const columnMetaData = {\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.columnProp({}, 'pt'), key, columnMetaData));\n },\n //@todo - update this method\n getBodyRowPTOptions(key) {\n const datatable = this.$parentInstance?.$parentInstance;\n\n return this.ptm(key, {\n context: {\n index: this.rowIndex,\n selectable: datatable?.rowHover || datatable?.selectionMode,\n selected: this.isSelected,\n stripedRows: datatable?.stripedRows || false\n }\n });\n },\n shouldRenderBodyCell(column) {\n const isHidden = this.columnProp(column, 'hidden');\n\n if (this.rowGroupMode && !isHidden) {\n const field = this.columnProp(column, 'field');\n\n if (this.rowGroupMode === 'subheader') {\n return this.groupRowsBy !== field;\n } else if (this.rowGroupMode === 'rowspan') {\n if (this.isGrouped(column)) {\n let prevRowData = this.value[this.rowIndex - 1];\n\n if (prevRowData) {\n const currentRowFieldData = resolveFieldData(this.value[this.rowIndex], field);\n const previousRowFieldData = resolveFieldData(prevRowData, field);\n\n return currentRowFieldData !== previousRowFieldData;\n } else {\n return true;\n }\n } else {\n return true;\n }\n }\n } else {\n return !isHidden;\n }\n },\n calculateRowGroupSize(column) {\n if (this.isGrouped(column)) {\n let index = this.rowIndex;\n const field = this.columnProp(column, 'field');\n const currentRowFieldData = resolveFieldData(this.value[index], field);\n let nextRowFieldData = currentRowFieldData;\n let groupRowSpan = 0;\n\n while (currentRowFieldData === nextRowFieldData) {\n groupRowSpan++;\n let nextRowData = this.value[++index];\n\n if (nextRowData) {\n nextRowFieldData = resolveFieldData(nextRowData, field);\n } else {\n break;\n }\n }\n\n return groupRowSpan === 1 ? null : groupRowSpan;\n } else {\n return null;\n }\n },\n isGrouped(column) {\n const field = this.columnProp(column, 'field');\n\n if (this.groupRowsBy && field) {\n if (Array.isArray(this.groupRowsBy)) return this.groupRowsBy.indexOf(field) > -1;\n else return this.groupRowsBy === field;\n } else {\n return false;\n }\n },\n findIndexInSelection(data) {\n return this.findIndex(data, this.selection);\n },\n findIndex(data, collection) {\n let index = -1;\n\n if (collection && collection.length) {\n for (let i = 0; i < collection.length; i++) {\n if (this.equals(data, collection[i])) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n },\n equals(data1, data2) {\n return this.compareSelectionBy === 'equals' ? data1 === data2 : equals(data1, data2, this.dataKey);\n },\n onRowGroupToggle(event) {\n this.$emit('rowgroup-toggle', { originalEvent: event, data: this.rowData });\n },\n onRowClick(event) {\n this.$emit('row-click', { originalEvent: event, data: this.rowData, index: this.rowIndex });\n },\n onRowDblClick(event) {\n this.$emit('row-dblclick', { originalEvent: event, data: this.rowData, index: this.rowIndex });\n },\n onRowRightClick(event) {\n this.$emit('row-rightclick', { originalEvent: event, data: this.rowData, index: this.rowIndex });\n },\n onRowTouchEnd(event) {\n this.$emit('row-touchend', event);\n },\n onRowKeyDown(event) {\n this.$emit('row-keydown', { originalEvent: event, data: this.rowData, index: this.rowIndex });\n },\n onRowMouseDown(event) {\n this.$emit('row-mousedown', event);\n },\n onRowDragStart(event) {\n this.$emit('row-dragstart', { originalEvent: event, index: this.rowIndex });\n },\n onRowDragOver(event) {\n this.$emit('row-dragover', { originalEvent: event, index: this.rowIndex });\n },\n onRowDragLeave(event) {\n this.$emit('row-dragleave', event);\n },\n onRowDragEnd(event) {\n this.$emit('row-dragend', event);\n },\n onRowDrop(event) {\n this.$emit('row-drop', event);\n },\n onRowToggle(event) {\n this.d_rowExpanded = !this.d_rowExpanded;\n\n this.$emit('row-toggle', { ...event, expanded: this.d_rowExpanded });\n },\n onRadioChange(event) {\n this.$emit('radio-change', event);\n },\n onCheckboxChange(event) {\n this.$emit('checkbox-change', event);\n },\n onCellEditInit(event) {\n this.$emit('cell-edit-init', event);\n },\n onCellEditComplete(event) {\n this.$emit('cell-edit-complete', event);\n },\n onCellEditCancel(event) {\n this.$emit('cell-edit-cancel', event);\n },\n onRowEditInit(event) {\n this.$emit('row-edit-init', event);\n },\n onRowEditSave(event) {\n this.$emit('row-edit-save', event);\n },\n onRowEditCancel(event) {\n this.$emit('row-edit-cancel', event);\n },\n onEditingMetaChange(event) {\n this.$emit('editing-meta-change', event);\n },\n getVirtualScrollerProp(option, options) {\n options = options || this.virtualScrollerContentProps;\n\n return options ? options[option] : null;\n }\n },\n computed: {\n rowIndex() {\n const getItemOptions = this.getVirtualScrollerProp('getItemOptions');\n\n return getItemOptions ? getItemOptions(this.index).index : this.index;\n },\n rowStyles() {\n return this.rowStyle?.(this.rowData);\n },\n rowClasses() {\n let rowStyleClass = [];\n let columnSelectionMode = null;\n\n if (this.rowClass) {\n let rowClassValue = this.rowClass(this.rowData);\n\n if (rowClassValue) {\n rowStyleClass.push(rowClassValue);\n }\n }\n\n if (this.columns) {\n for (let col of this.columns) {\n let _selectionMode = this.columnProp(col, 'selectionMode');\n\n if (isNotEmpty(_selectionMode)) {\n columnSelectionMode = _selectionMode;\n break;\n }\n }\n }\n\n return [this.cx('row', { rowData: this.rowData, index: this.rowIndex, columnSelectionMode }), rowStyleClass];\n },\n rowTabindex() {\n if (this.selection === null && (this.selectionMode === 'single' || this.selectionMode === 'multiple')) {\n return this.rowIndex === 0 ? 0 : -1;\n }\n\n return -1;\n },\n isRowEditing() {\n if (this.rowData && this.editingRows) {\n if (this.dataKey) return this.editingRowKeys ? this.editingRowKeys[resolveFieldData(this.rowData, this.dataKey)] !== undefined : false;\n else return this.findIndex(this.rowData, this.editingRows) > -1;\n }\n\n return false;\n },\n isRowGroupExpanded() {\n if (this.expandableRowGroups && this.expandedRowGroups) {\n const groupFieldValue = resolveFieldData(this.rowData, this.groupRowsBy);\n\n return this.expandedRowGroups.indexOf(groupFieldValue) > -1;\n }\n\n return false;\n },\n isSelected() {\n if (this.rowData && this.selection) {\n if (this.dataKey) {\n return this.selectionKeys ? this.selectionKeys[resolveFieldData(this.rowData, this.dataKey)] !== undefined : false;\n } else {\n if (this.selection instanceof Array) return this.findIndexInSelection(this.rowData) > -1;\n else return this.equals(this.rowData, this.selection);\n }\n }\n\n return false;\n },\n isSelectedWithContextMenu() {\n if (this.rowData && this.contextMenuSelection) {\n return this.equals(this.rowData, this.contextMenuSelection, this.dataKey);\n }\n\n return false;\n },\n shouldRenderRowGroupHeader() {\n const currentRowFieldData = resolveFieldData(this.rowData, this.groupRowsBy);\n const prevRowData = this.value[this.rowIndex - 1];\n\n if (prevRowData) {\n const previousRowFieldData = resolveFieldData(prevRowData, this.groupRowsBy);\n\n return currentRowFieldData !== previousRowFieldData;\n } else {\n return true;\n }\n },\n shouldRenderRowGroupFooter() {\n if (this.expandableRowGroups && !this.isRowGroupExpanded) {\n return false;\n } else {\n let currentRowFieldData = resolveFieldData(this.rowData, this.groupRowsBy);\n let nextRowData = this.value[this.rowIndex + 1];\n\n if (nextRowData) {\n let nextRowFieldData = resolveFieldData(nextRowData, this.groupRowsBy);\n\n return currentRowFieldData !== nextRowFieldData;\n } else {\n return true;\n }\n }\n },\n columnsLength() {\n if (this.columns) {\n let hiddenColLength = 0;\n\n this.columns.forEach((column) => {\n if (this.columnProp(column, 'selectionMode') === 'single') hiddenColLength--;\n if (this.columnProp(column, 'hidden')) hiddenColLength++;\n });\n\n return this.columns.length - hiddenColLength;\n }\n\n return 0;\n }\n },\n components: {\n DTBodyCell: BodyCell,\n ChevronDownIcon: ChevronDownIcon,\n ChevronRightIcon: ChevronRightIcon\n }\n};\n</script>\n","<template>\n <template v-if=\"!empty\">\n <tr v-if=\"templates['groupheader'] && rowGroupMode === 'subheader' && shouldRenderRowGroupHeader\" :class=\"cx('rowGroupHeader')\" :style=\"rowGroupHeaderStyle\" role=\"row\" v-bind=\"ptm('rowGroupHeader')\">\n <td :colspan=\"columnsLength - 1\" v-bind=\"{ ...getColumnPT('bodycell'), ...ptm('rowGroupHeaderCell') }\">\n <button v-if=\"expandableRowGroups\" :class=\"cx('rowToggleButton')\" @click=\"onRowGroupToggle\" type=\"button\" v-bind=\"ptm('rowToggleButton')\">\n <component v-if=\"templates['rowtoggleicon'] || templates['rowgrouptogglericon']\" :is=\"templates['rowtoggleicon'] || templates['rowgrouptogglericon']\" :expanded=\"isRowGroupExpanded\" />\n <template v-else>\n <span v-if=\"isRowGroupExpanded && expandedRowIcon\" :class=\"[cx('rowToggleIcon'), expandedRowIcon]\" v-bind=\"ptm('rowToggleIcon')\" />\n <ChevronDownIcon v-else-if=\"isRowGroupExpanded && !expandedRowIcon\" :class=\"cx('rowToggleIcon')\" v-bind=\"ptm('rowToggleIcon')\" />\n <span v-else-if=\"!isRowGroupExpanded && collapsedRowIcon\" :class=\"[cx('rowToggleIcon'), collapsedRowIcon]\" v-bind=\"ptm('rowToggleIcon')\" />\n <ChevronRightIcon v-else-if=\"!isRowGroupExpanded && !collapsedRowIcon\" :class=\"cx('rowToggleIcon')\" v-bind=\"ptm('rowToggleIcon')\" />\n </template>\n </button>\n <component :is=\"templates['groupheader']\" :data=\"rowData\" :index=\"rowIndex\" />\n </td>\n </tr>\n <tr\n v-if=\"expandableRowGroups ? isRowGroupExpanded : true\"\n :class=\"rowClasses\"\n :style=\"rowStyles\"\n :tabindex=\"rowTabindex\"\n role=\"row\"\n :aria-selected=\"selectionMode ? isSelected : null\"\n @click=\"onRowClick\"\n @dblclick=\"onRowDblClick\"\n @contextmenu=\"onRowRightClick\"\n @touchend=\"onRowTouchEnd\"\n @keydown.self=\"onRowKeyDown\"\n @mousedown=\"onRowMouseDown\"\n @dragstart=\"onRowDragStart\"\n @dragover=\"onRowDragOver\"\n @dragleave=\"onRowDragLeave\"\n @dragend=\"onRowDragEnd\"\n @drop=\"onRowDrop\"\n v-bind=\"getBodyRowPTOptions('bodyRow')\"\n :data-p-index=\"rowIndex\"\n :data-p-selectable-row=\"selectionMode ? true : false\"\n :data-p-selected=\"selection && isSelected\"\n :data-p-selected-contextmenu=\"contextMenuSelection && isSelectedWithContextMenu\"\n >\n <template v-for=\"(col, i) of columns\">\n <DTBodyCell\n v-if=\"shouldRenderBodyCell(col)\"\n :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\"\n :rowData=\"rowData\"\n :column=\"col\"\n :rowIndex=\"rowIndex\"\n :index=\"i\"\n :selected=\"isSelected\"\n :frozenRow=\"frozenRow\"\n :rowspan=\"rowGroupMode === 'rowspan' ? calculateRowGroupSize(col) : null\"\n :editMode=\"editMode\"\n :editing=\"editMode === 'row' && isRowEditing\"\n :editingMeta=\"editingMeta\"\n :virtualScrollerContentProps=\"virtualScrollerContentProps\"\n :ariaControls=\"expandedRowId + '_' + rowIndex + '_expansion'\"\n :name=\"nameAttributeSelector\"\n :isRowExpanded=\"d_rowExpanded\"\n :expandedRowIcon=\"expandedRowIcon\"\n :collapsedRowIcon=\"collapsedRowIcon\"\n :editButtonProps=\"editButtonProps\"\n @radio-change=\"onRadioChange\"\n @checkbox-change=\"onCheckboxChange\"\n @row-toggle=\"onRowToggle\"\n @cell-edit-init=\"onCellEditInit\"\n @cell-edit-complete=\"onCellEditComplete\"\n @cell-edit-cancel=\"onCellEditCancel\"\n @row-edit-init=\"onRowEditInit\"\n @row-edit-save=\"onRowEditSave\"\n @row-edit-cancel=\"onRowEditCancel\"\n @editing-meta-change=\"onEditingMetaChange\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </tr>\n <tr v-if=\"templates['expansion'] && expandedRows && d_rowExpanded\" :id=\"expandedRowId + '_' + rowIndex + '_expansion'\" :class=\"cx('rowExpansion')\" role=\"row\" v-bind=\"ptm('rowExpansion')\">\n <td :colspan=\"columnsLength\" v-bind=\"{ ...getColumnPT('bodycell'), ...ptm('rowExpansionCell') }\">\n <component :is=\"templates['expansion']\" :data=\"rowData\" :index=\"rowIndex\" />\n </td>\n </tr>\n <tr v-if=\"templates['groupfooter'] && rowGroupMode === 'subheader' && shouldRenderRowGroupFooter\" :class=\"cx('rowGroupFooter')\" role=\"row\" v-bind=\"ptm('rowGroupFooter')\">\n <td :colspan=\"columnsLength - 1\" v-bind=\"{ ...getColumnPT('bodycell'), ...ptm('rowGroupFooterCell') }\">\n <component :is=\"templates['groupfooter']\" :data=\"rowData\" :index=\"rowIndex\" />\n </td>\n </tr>\n </template>\n <tr v-else :class=\"cx('emptyMessage')\" role=\"row\" v-bind=\"ptm('emptyMessage')\">\n <td :colspan=\"columnsLength\" v-bind=\"{ ...getColumnPT('bodycell'), ...ptm('emptyMessageCell') }\">\n <component v-if=\"templates.empty\" :is=\"templates.empty\" />\n </td>\n </tr>\n</template>\n\n<script>\nimport { equals, isNotEmpty, resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport { mergeProps } from 'vue';\nimport BodyCell from './BodyCell.vue';\n\nexport default {\n name: 'BodyRow',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: [\n 'rowgroup-toggle',\n 'row-click',\n 'row-dblclick',\n 'row-rightclick',\n 'row-touchend',\n 'row-keydown',\n 'row-mousedown',\n 'row-dragstart',\n 'row-dragover',\n 'row-dragleave',\n 'row-dragend',\n 'row-drop',\n 'row-toggle',\n 'radio-change',\n 'checkbox-change',\n 'cell-edit-init',\n 'cell-edit-complete',\n 'cell-edit-cancel',\n 'row-edit-init',\n 'row-edit-save',\n 'row-edit-cancel',\n 'editing-meta-change'\n ],\n props: {\n rowData: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: 0\n },\n value: {\n type: Array,\n default: null\n },\n columns: {\n type: null,\n default: null\n },\n frozenRow: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n rowGroupMode: {\n type: String,\n default: null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n expandableRowGroups: {\n type: Boolean,\n default: false\n },\n expandedRowGroups: {\n type: Array,\n default: null\n },\n first: {\n type: Number,\n default: 0\n },\n dataKey: {\n type: [String, Function],\n default: null\n },\n expandedRowIcon: {\n type: String,\n default: null\n },\n collapsedRowIcon: {\n type: String,\n default: null\n },\n expandedRows: {\n type: [Array, Object],\n default: null\n },\n selection: {\n type: [Array, Object],\n default: null\n },\n selectionKeys: {\n type: null,\n default: null\n },\n selectionMode: {\n type: String,\n default: null\n },\n contextMenu: {\n type: Boolean,\n default: false\n },\n contextMenuSelection: {\n type: Object,\n default: null\n },\n rowClass: {\n type: null,\n default: null\n },\n rowStyle: {\n type: null,\n default: null\n },\n rowGroupHeaderStyle: {\n type: null,\n default: null\n },\n editMode: {\n type: String,\n default: null\n },\n compareSelectionBy: {\n type: String,\n default: 'deepEquals'\n },\n editingRows: {\n type: Array,\n default: null\n },\n editingRowKeys: {\n type: null,\n default: null\n },\n editingMeta: {\n type: Object,\n default: null\n },\n templates: {\n type: null,\n default: null\n },\n scrollable: {\n type: Boolean,\n default: false\n },\n editButtonProps: {\n type: Object,\n default: null\n },\n virtualScrollerContentProps: {\n type: Object,\n default: null\n },\n isVirtualScrollerDisabled: {\n type: Boolean,\n default: false\n },\n expandedRowId: {\n type: String,\n default: null\n },\n nameAttributeSelector: {\n type: String,\n default: null\n }\n },\n data() {\n return {\n d_rowExpanded: false\n };\n },\n watch: {\n expandedRows: {\n deep: true,\n immediate: true,\n handler(newValue) {\n this.d_rowExpanded = this.dataKey ? newValue?.[resolveFieldData(this.rowData, this.dataKey)] !== undefined : newValue?.some((d) => this.equals(this.rowData, d));\n }\n }\n },\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n //@todo - update this method\n getColumnPT(key) {\n const columnMetaData = {\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.columnProp({}, 'pt'), key, columnMetaData));\n },\n //@todo - update this method\n getBodyRowPTOptions(key) {\n const datatable = this.$parentInstance?.$parentInstance;\n\n return this.ptm(key, {\n context: {\n index: this.rowIndex,\n selectable: datatable?.rowHover || datatable?.selectionMode,\n selected: this.isSelected,\n stripedRows: datatable?.stripedRows || false\n }\n });\n },\n shouldRenderBodyCell(column) {\n const isHidden = this.columnProp(column, 'hidden');\n\n if (this.rowGroupMode && !isHidden) {\n const field = this.columnProp(column, 'field');\n\n if (this.rowGroupMode === 'subheader') {\n return this.groupRowsBy !== field;\n } else if (this.rowGroupMode === 'rowspan') {\n if (this.isGrouped(column)) {\n let prevRowData = this.value[this.rowIndex - 1];\n\n if (prevRowData) {\n const currentRowFieldData = resolveFieldData(this.value[this.rowIndex], field);\n const previousRowFieldData = resolveFieldData(prevRowData, field);\n\n return currentRowFieldData !== previousRowFieldData;\n } else {\n return true;\n }\n } else {\n return true;\n }\n }\n } else {\n return !isHidden;\n }\n },\n calculateRowGroupSize(column) {\n if (this.isGrouped(column)) {\n let index = this.rowIndex;\n const field = this.columnProp(column, 'field');\n const currentRowFieldData = resolveFieldData(this.value[index], field);\n let nextRowFieldData = currentRowFieldData;\n let groupRowSpan = 0;\n\n while (currentRowFieldData === nextRowFieldData) {\n groupRowSpan++;\n let nextRowData = this.value[++index];\n\n if (nextRowData) {\n nextRowFieldData = resolveFieldData(nextRowData, field);\n } else {\n break;\n }\n }\n\n return groupRowSpan === 1 ? null : groupRowSpan;\n } else {\n return null;\n }\n },\n isGrouped(column) {\n const field = this.columnProp(column, 'field');\n\n if (this.groupRowsBy && field) {\n if (Array.isArray(this.groupRowsBy)) return this.groupRowsBy.indexOf(field) > -1;\n else return this.groupRowsBy === field;\n } else {\n return false;\n }\n },\n findIndexInSelection(data) {\n return this.findIndex(data, this.selection);\n },\n findIndex(data, collection) {\n let index = -1;\n\n if (collection && collection.length) {\n for (let i = 0; i < collection.length; i++) {\n if (this.equals(data, collection[i])) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n },\n equals(data1, data2) {\n return this.compareSelectionBy === 'equals' ? data1 === data2 : equals(data1, data2, this.dataKey);\n },\n onRowGroupToggle(event) {\n this.$emit('rowgroup-toggle', { originalEvent: event, data: this.rowData });\n },\n onRowClick(event) {\n this.$emit('row-click', { originalEvent: event, data: this.rowData, index: this.rowIndex });\n },\n onRowDblClick(event) {\n this.$emit('row-dblclick', { originalEvent: event, data: this.rowData, index: this.rowIndex });\n },\n onRowRightClick(event) {\n this.$emit('row-rightclick', { originalEvent: event, data: this.rowData, index: this.rowIndex });\n },\n onRowTouchEnd(event) {\n this.$emit('row-touchend', event);\n },\n onRowKeyDown(event) {\n this.$emit('row-keydown', { originalEvent: event, data: this.rowData, index: this.rowIndex });\n },\n onRowMouseDown(event) {\n this.$emit('row-mousedown', event);\n },\n onRowDragStart(event) {\n this.$emit('row-dragstart', { originalEvent: event, index: this.rowIndex });\n },\n onRowDragOver(event) {\n this.$emit('row-dragover', { originalEvent: event, index: this.rowIndex });\n },\n onRowDragLeave(event) {\n this.$emit('row-dragleave', event);\n },\n onRowDragEnd(event) {\n this.$emit('row-dragend', event);\n },\n onRowDrop(event) {\n this.$emit('row-drop', event);\n },\n onRowToggle(event) {\n this.d_rowExpanded = !this.d_rowExpanded;\n\n this.$emit('row-toggle', { ...event, expanded: this.d_rowExpanded });\n },\n onRadioChange(event) {\n this.$emit('radio-change', event);\n },\n onCheckboxChange(event) {\n this.$emit('checkbox-change', event);\n },\n onCellEditInit(event) {\n this.$emit('cell-edit-init', event);\n },\n onCellEditComplete(event) {\n this.$emit('cell-edit-complete', event);\n },\n onCellEditCancel(event) {\n this.$emit('cell-edit-cancel', event);\n },\n onRowEditInit(event) {\n this.$emit('row-edit-init', event);\n },\n onRowEditSave(event) {\n this.$emit('row-edit-save', event);\n },\n onRowEditCancel(event) {\n this.$emit('row-edit-cancel', event);\n },\n onEditingMetaChange(event) {\n this.$emit('editing-meta-change', event);\n },\n getVirtualScrollerProp(option, options) {\n options = options || this.virtualScrollerContentProps;\n\n return options ? options[option] : null;\n }\n },\n computed: {\n rowIndex() {\n const getItemOptions = this.getVirtualScrollerProp('getItemOptions');\n\n return getItemOptions ? getItemOptions(this.index).index : this.index;\n },\n rowStyles() {\n return this.rowStyle?.(this.rowData);\n },\n rowClasses() {\n let rowStyleClass = [];\n let columnSelectionMode = null;\n\n if (this.rowClass) {\n let rowClassValue = this.rowClass(this.rowData);\n\n if (rowClassValue) {\n rowStyleClass.push(rowClassValue);\n }\n }\n\n if (this.columns) {\n for (let col of this.columns) {\n let _selectionMode = this.columnProp(col, 'selectionMode');\n\n if (isNotEmpty(_selectionMode)) {\n columnSelectionMode = _selectionMode;\n break;\n }\n }\n }\n\n return [this.cx('row', { rowData: this.rowData, index: this.rowIndex, columnSelectionMode }), rowStyleClass];\n },\n rowTabindex() {\n if (this.selection === null && (this.selectionMode === 'single' || this.selectionMode === 'multiple')) {\n return this.rowIndex === 0 ? 0 : -1;\n }\n\n return -1;\n },\n isRowEditing() {\n if (this.rowData && this.editingRows) {\n if (this.dataKey) return this.editingRowKeys ? this.editingRowKeys[resolveFieldData(this.rowData, this.dataKey)] !== undefined : false;\n else return this.findIndex(this.rowData, this.editingRows) > -1;\n }\n\n return false;\n },\n isRowGroupExpanded() {\n if (this.expandableRowGroups && this.expandedRowGroups) {\n const groupFieldValue = resolveFieldData(this.rowData, this.groupRowsBy);\n\n return this.expandedRowGroups.indexOf(groupFieldValue) > -1;\n }\n\n return false;\n },\n isSelected() {\n if (this.rowData && this.selection) {\n if (this.dataKey) {\n return this.selectionKeys ? this.selectionKeys[resolveFieldData(this.rowData, this.dataKey)] !== undefined : false;\n } else {\n if (this.selection instanceof Array) return this.findIndexInSelection(this.rowData) > -1;\n else return this.equals(this.rowData, this.selection);\n }\n }\n\n return false;\n },\n isSelectedWithContextMenu() {\n if (this.rowData && this.contextMenuSelection) {\n return this.equals(this.rowData, this.contextMenuSelection, this.dataKey);\n }\n\n return false;\n },\n shouldRenderRowGroupHeader() {\n const currentRowFieldData = resolveFieldData(this.rowData, this.groupRowsBy);\n const prevRowData = this.value[this.rowIndex - 1];\n\n if (prevRowData) {\n const previousRowFieldData = resolveFieldData(prevRowData, this.groupRowsBy);\n\n return currentRowFieldData !== previousRowFieldData;\n } else {\n return true;\n }\n },\n shouldRenderRowGroupFooter() {\n if (this.expandableRowGroups && !this.isRowGroupExpanded) {\n return false;\n } else {\n let currentRowFieldData = resolveFieldData(this.rowData, this.groupRowsBy);\n let nextRowData = this.value[this.rowIndex + 1];\n\n if (nextRowData) {\n let nextRowFieldData = resolveFieldData(nextRowData, this.groupRowsBy);\n\n return currentRowFieldData !== nextRowFieldData;\n } else {\n return true;\n }\n }\n },\n columnsLength() {\n if (this.columns) {\n let hiddenColLength = 0;\n\n this.columns.forEach((column) => {\n if (this.columnProp(column, 'selectionMode') === 'single') hiddenColLength--;\n if (this.columnProp(column, 'hidden')) hiddenColLength++;\n });\n\n return this.columns.length - hiddenColLength;\n }\n\n return 0;\n }\n },\n components: {\n DTBodyCell: BodyCell,\n ChevronDownIcon: ChevronDownIcon,\n ChevronRightIcon: ChevronRightIcon\n }\n};\n</script>\n","<template>\n <tbody :ref=\"bodyRef\" :class=\"cx('tbody')\" role=\"rowgroup\" :style=\"bodyContentStyle\" v-bind=\"ptm('tbody', ptmTBodyOptions)\">\n <template v-if=\"!empty\">\n <template v-for=\"(rowData, rowIndex) of value\" :key=\"getRowKey(rowData, rowIndex)\">\n <DTBodyRow\n :rowData=\"rowData\"\n :index=\"rowIndex\"\n :value=\"value\"\n :columns=\"columns\"\n :frozenRow=\"frozenRow\"\n :empty=\"empty\"\n :first=\"first\"\n :dataKey=\"dataKey\"\n :selection=\"selection\"\n :selectionKeys=\"selectionKeys\"\n :selectionMode=\"selectionMode\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :rowGroupMode=\"rowGroupMode\"\n :groupRowsBy=\"groupRowsBy\"\n :expandableRowGroups=\"expandableRowGroups\"\n :rowClass=\"rowClass\"\n :rowStyle=\"rowStyle\"\n :editMode=\"editMode\"\n :compareSelectionBy=\"compareSelectionBy\"\n :scrollable=\"scrollable\"\n :expandedRowIcon=\"expandedRowIcon\"\n :collapsedRowIcon=\"collapsedRowIcon\"\n :expandedRows=\"expandedRows\"\n :expandedRowGroups=\"expandedRowGroups\"\n :editingRows=\"editingRows\"\n :editingRowKeys=\"editingRowKeys\"\n :templates=\"templates\"\n :editButtonProps=\"editButtonProps\"\n :virtualScrollerContentProps=\"virtualScrollerContentProps\"\n :isVirtualScrollerDisabled=\"isVirtualScrollerDisabled\"\n :editingMeta=\"editingMeta\"\n :rowGroupHeaderStyle=\"rowGroupHeaderStyle\"\n :expandedRowId=\"expandedRowId\"\n :nameAttributeSelector=\"nameAttributeSelector\"\n @rowgroup-toggle=\"$emit('rowgroup-toggle', $event)\"\n @row-click=\"$emit('row-click', $event)\"\n @row-dblclick=\"$emit('row-dblclick', $event)\"\n @row-rightclick=\"$emit('row-rightclick', $event)\"\n @row-touchend=\"$emit('row-touchend', $event)\"\n @row-keydown=\"$emit('row-keydown', $event)\"\n @row-mousedown=\"$emit('row-mousedown', $event)\"\n @row-dragstart=\"$emit('row-dragstart', $event)\"\n @row-dragover=\"$emit('row-dragover', $event)\"\n @row-dragleave=\"$emit('row-dragleave', $event)\"\n @row-dragend=\"$emit('row-dragend', $event)\"\n @row-drop=\"$emit('row-drop', $event)\"\n @row-toggle=\"$emit('row-toggle', $event)\"\n @radio-change=\"$emit('radio-change', $event)\"\n @checkbox-change=\"$emit('checkbox-change', $event)\"\n @cell-edit-init=\"$emit('cell-edit-init', $event)\"\n @cell-edit-complete=\"$emit('cell-edit-complete', $event)\"\n @cell-edit-cancel=\"$emit('cell-edit-cancel', $event)\"\n @row-edit-init=\"$emit('row-edit-init', $event)\"\n @row-edit-save=\"$emit('row-edit-save', $event)\"\n @row-edit-cancel=\"$emit('row-edit-cancel', $event)\"\n @editing-meta-change=\"$emit('editing-meta-change', $event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </template>\n <DTBodyRow v-else :empty=\"empty\" :columns=\"columns\" :templates=\"templates\" :unstyled=\"unstyled\" :pt=\"pt\" />\n </tbody>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { UniqueComponentId } from '@primevue/core/utils';\nimport { getOuterHeight } from '@primeuix/utils/dom';\nimport { resolveFieldData } from '@primeuix/utils/object';\nimport BodyRow from './BodyRow.vue';\n\nexport default {\n name: 'TableBody',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: [\n 'rowgroup-toggle',\n 'row-click',\n 'row-dblclick',\n 'row-rightclick',\n 'row-touchend',\n 'row-keydown',\n 'row-mousedown',\n 'row-dragstart',\n 'row-dragover',\n 'row-dragleave',\n 'row-dragend',\n 'row-drop',\n 'row-toggle',\n 'radio-change',\n 'checkbox-change',\n 'cell-edit-init',\n 'cell-edit-complete',\n 'cell-edit-cancel',\n 'row-edit-init',\n 'row-edit-save',\n 'row-edit-cancel',\n 'editing-meta-change'\n ],\n props: {\n value: {\n type: Array,\n default: null\n },\n columns: {\n type: null,\n default: null\n },\n frozenRow: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n rowGroupMode: {\n type: String,\n default: null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n expandableRowGroups: {\n type: Boolean,\n default: false\n },\n expandedRowGroups: {\n type: Array,\n default: null\n },\n first: {\n type: Number,\n default: 0\n },\n dataKey: {\n type: [String, Function],\n default: null\n },\n expandedRowIcon: {\n type: String,\n default: null\n },\n collapsedRowIcon: {\n type: String,\n default: null\n },\n expandedRows: {\n type: [Array, Object],\n default: null\n },\n selection: {\n type: [Array, Object],\n default: null\n },\n selectionKeys: {\n type: null,\n default: null\n },\n selectionMode: {\n type: String,\n default: null\n },\n contextMenu: {\n type: Boolean,\n default: false\n },\n contextMenuSelection: {\n type: Object,\n default: null\n },\n rowClass: {\n type: null,\n default: null\n },\n rowStyle: {\n type: null,\n default: null\n },\n editMode: {\n type: String,\n default: null\n },\n compareSelectionBy: {\n type: String,\n default: 'deepEquals'\n },\n editingRows: {\n type: Array,\n default: null\n },\n editingRowKeys: {\n type: null,\n default: null\n },\n editingMeta: {\n type: Object,\n default: null\n },\n templates: {\n type: null,\n default: null\n },\n scrollable: {\n type: Boolean,\n default: false\n },\n editButtonProps: {\n type: Object,\n default: null\n },\n virtualScrollerContentProps: {\n type: Object,\n default: null\n },\n isVirtualScrollerDisabled: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n rowGroupHeaderStyleObject: {}\n };\n },\n mounted() {\n if (this.frozenRow) {\n this.updateFrozenRowStickyPosition();\n }\n\n if (this.scrollable && this.rowGroupMode === 'subheader') {\n this.updateFrozenRowGroupHeaderStickyPosition();\n }\n },\n updated() {\n if (this.frozenRow) {\n this.updateFrozenRowStickyPosition();\n }\n\n if (this.scrollable && this.rowGroupMode === 'subheader') {\n this.updateFrozenRowGroupHeaderStickyPosition();\n }\n },\n methods: {\n getRowKey(rowData, rowIndex) {\n return this.dataKey ? resolveFieldData(rowData, this.dataKey) : rowIndex;\n },\n updateFrozenRowStickyPosition() {\n this.$el.style.top = getOuterHeight(this.$el.previousElementSibling) + 'px';\n },\n updateFrozenRowGroupHeaderStickyPosition() {\n let tableHeaderHeight = getOuterHeight(this.$el.previousElementSibling);\n\n this.rowGroupHeaderStyleObject.top = tableHeaderHeight + 'px';\n },\n getVirtualScrollerProp(option, options) {\n options = options || this.virtualScrollerContentProps;\n\n return options ? options[option] : null;\n },\n bodyRef(el) {\n // For VirtualScroller\n const contentRef = this.getVirtualScrollerProp('contentRef');\n\n contentRef && contentRef(el);\n }\n },\n computed: {\n rowGroupHeaderStyle() {\n if (this.scrollable) {\n return { top: this.rowGroupHeaderStyleObject.top };\n }\n\n return null;\n },\n bodyContentStyle() {\n return this.getVirtualScrollerProp('contentStyle');\n },\n ptmTBodyOptions() {\n return {\n context: {\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n },\n expandedRowId() {\n return UniqueComponentId();\n },\n nameAttributeSelector() {\n return UniqueComponentId();\n }\n },\n components: {\n DTBodyRow: BodyRow\n }\n};\n</script>\n","<template>\n <tbody :ref=\"bodyRef\" :class=\"cx('tbody')\" role=\"rowgroup\" :style=\"bodyContentStyle\" v-bind=\"ptm('tbody', ptmTBodyOptions)\">\n <template v-if=\"!empty\">\n <template v-for=\"(rowData, rowIndex) of value\" :key=\"getRowKey(rowData, rowIndex)\">\n <DTBodyRow\n :rowData=\"rowData\"\n :index=\"rowIndex\"\n :value=\"value\"\n :columns=\"columns\"\n :frozenRow=\"frozenRow\"\n :empty=\"empty\"\n :first=\"first\"\n :dataKey=\"dataKey\"\n :selection=\"selection\"\n :selectionKeys=\"selectionKeys\"\n :selectionMode=\"selectionMode\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :rowGroupMode=\"rowGroupMode\"\n :groupRowsBy=\"groupRowsBy\"\n :expandableRowGroups=\"expandableRowGroups\"\n :rowClass=\"rowClass\"\n :rowStyle=\"rowStyle\"\n :editMode=\"editMode\"\n :compareSelectionBy=\"compareSelectionBy\"\n :scrollable=\"scrollable\"\n :expandedRowIcon=\"expandedRowIcon\"\n :collapsedRowIcon=\"collapsedRowIcon\"\n :expandedRows=\"expandedRows\"\n :expandedRowGroups=\"expandedRowGroups\"\n :editingRows=\"editingRows\"\n :editingRowKeys=\"editingRowKeys\"\n :templates=\"templates\"\n :editButtonProps=\"editButtonProps\"\n :virtualScrollerContentProps=\"virtualScrollerContentProps\"\n :isVirtualScrollerDisabled=\"isVirtualScrollerDisabled\"\n :editingMeta=\"editingMeta\"\n :rowGroupHeaderStyle=\"rowGroupHeaderStyle\"\n :expandedRowId=\"expandedRowId\"\n :nameAttributeSelector=\"nameAttributeSelector\"\n @rowgroup-toggle=\"$emit('rowgroup-toggle', $event)\"\n @row-click=\"$emit('row-click', $event)\"\n @row-dblclick=\"$emit('row-dblclick', $event)\"\n @row-rightclick=\"$emit('row-rightclick', $event)\"\n @row-touchend=\"$emit('row-touchend', $event)\"\n @row-keydown=\"$emit('row-keydown', $event)\"\n @row-mousedown=\"$emit('row-mousedown', $event)\"\n @row-dragstart=\"$emit('row-dragstart', $event)\"\n @row-dragover=\"$emit('row-dragover', $event)\"\n @row-dragleave=\"$emit('row-dragleave', $event)\"\n @row-dragend=\"$emit('row-dragend', $event)\"\n @row-drop=\"$emit('row-drop', $event)\"\n @row-toggle=\"$emit('row-toggle', $event)\"\n @radio-change=\"$emit('radio-change', $event)\"\n @checkbox-change=\"$emit('checkbox-change', $event)\"\n @cell-edit-init=\"$emit('cell-edit-init', $event)\"\n @cell-edit-complete=\"$emit('cell-edit-complete', $event)\"\n @cell-edit-cancel=\"$emit('cell-edit-cancel', $event)\"\n @row-edit-init=\"$emit('row-edit-init', $event)\"\n @row-edit-save=\"$emit('row-edit-save', $event)\"\n @row-edit-cancel=\"$emit('row-edit-cancel', $event)\"\n @editing-meta-change=\"$emit('editing-meta-change', $event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </template>\n <DTBodyRow v-else :empty=\"empty\" :columns=\"columns\" :templates=\"templates\" :unstyled=\"unstyled\" :pt=\"pt\" />\n </tbody>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { UniqueComponentId } from '@primevue/core/utils';\nimport { getOuterHeight } from '@primeuix/utils/dom';\nimport { resolveFieldData } from '@primeuix/utils/object';\nimport BodyRow from './BodyRow.vue';\n\nexport default {\n name: 'TableBody',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: [\n 'rowgroup-toggle',\n 'row-click',\n 'row-dblclick',\n 'row-rightclick',\n 'row-touchend',\n 'row-keydown',\n 'row-mousedown',\n 'row-dragstart',\n 'row-dragover',\n 'row-dragleave',\n 'row-dragend',\n 'row-drop',\n 'row-toggle',\n 'radio-change',\n 'checkbox-change',\n 'cell-edit-init',\n 'cell-edit-complete',\n 'cell-edit-cancel',\n 'row-edit-init',\n 'row-edit-save',\n 'row-edit-cancel',\n 'editing-meta-change'\n ],\n props: {\n value: {\n type: Array,\n default: null\n },\n columns: {\n type: null,\n default: null\n },\n frozenRow: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n rowGroupMode: {\n type: String,\n default: null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n expandableRowGroups: {\n type: Boolean,\n default: false\n },\n expandedRowGroups: {\n type: Array,\n default: null\n },\n first: {\n type: Number,\n default: 0\n },\n dataKey: {\n type: [String, Function],\n default: null\n },\n expandedRowIcon: {\n type: String,\n default: null\n },\n collapsedRowIcon: {\n type: String,\n default: null\n },\n expandedRows: {\n type: [Array, Object],\n default: null\n },\n selection: {\n type: [Array, Object],\n default: null\n },\n selectionKeys: {\n type: null,\n default: null\n },\n selectionMode: {\n type: String,\n default: null\n },\n contextMenu: {\n type: Boolean,\n default: false\n },\n contextMenuSelection: {\n type: Object,\n default: null\n },\n rowClass: {\n type: null,\n default: null\n },\n rowStyle: {\n type: null,\n default: null\n },\n editMode: {\n type: String,\n default: null\n },\n compareSelectionBy: {\n type: String,\n default: 'deepEquals'\n },\n editingRows: {\n type: Array,\n default: null\n },\n editingRowKeys: {\n type: null,\n default: null\n },\n editingMeta: {\n type: Object,\n default: null\n },\n templates: {\n type: null,\n default: null\n },\n scrollable: {\n type: Boolean,\n default: false\n },\n editButtonProps: {\n type: Object,\n default: null\n },\n virtualScrollerContentProps: {\n type: Object,\n default: null\n },\n isVirtualScrollerDisabled: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n rowGroupHeaderStyleObject: {}\n };\n },\n mounted() {\n if (this.frozenRow) {\n this.updateFrozenRowStickyPosition();\n }\n\n if (this.scrollable && this.rowGroupMode === 'subheader') {\n this.updateFrozenRowGroupHeaderStickyPosition();\n }\n },\n updated() {\n if (this.frozenRow) {\n this.updateFrozenRowStickyPosition();\n }\n\n if (this.scrollable && this.rowGroupMode === 'subheader') {\n this.updateFrozenRowGroupHeaderStickyPosition();\n }\n },\n methods: {\n getRowKey(rowData, rowIndex) {\n return this.dataKey ? resolveFieldData(rowData, this.dataKey) : rowIndex;\n },\n updateFrozenRowStickyPosition() {\n this.$el.style.top = getOuterHeight(this.$el.previousElementSibling) + 'px';\n },\n updateFrozenRowGroupHeaderStickyPosition() {\n let tableHeaderHeight = getOuterHeight(this.$el.previousElementSibling);\n\n this.rowGroupHeaderStyleObject.top = tableHeaderHeight + 'px';\n },\n getVirtualScrollerProp(option, options) {\n options = options || this.virtualScrollerContentProps;\n\n return options ? options[option] : null;\n },\n bodyRef(el) {\n // For VirtualScroller\n const contentRef = this.getVirtualScrollerProp('contentRef');\n\n contentRef && contentRef(el);\n }\n },\n computed: {\n rowGroupHeaderStyle() {\n if (this.scrollable) {\n return { top: this.rowGroupHeaderStyleObject.top };\n }\n\n return null;\n },\n bodyContentStyle() {\n return this.getVirtualScrollerProp('contentStyle');\n },\n ptmTBodyOptions() {\n return {\n context: {\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n },\n expandedRowId() {\n return UniqueComponentId();\n },\n nameAttributeSelector() {\n return UniqueComponentId();\n }\n },\n components: {\n DTBodyRow: BodyRow\n }\n};\n</script>\n","<template>\n <td :style=\"containerStyle\" :class=\"containerClass\" role=\"cell\" :colspan=\"columnProp('colspan')\" :rowspan=\"columnProp('rowspan')\" 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 BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport { getNextElementSibling, getOuterWidth, getPreviousElementSibling } from '@primeuix/utils/dom';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'FooterCell',\n hostName: 'DataTable',\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 size: this.$parentInstance?.$parentInstance?.size,\n showGridlines: this.$parentInstance?.$parentInstance?.showGridlines || false\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 let isRTL = this.$parentInstance.$parentInstance.isRTL;\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.right || 0);\n }\n\n if (isRTL) {\n this.styleObject.left = pos + 'px';\n } else {\n this.styleObject.right = pos + 'px';\n }\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.left || 0);\n }\n\n if (isRTL) {\n this.styleObject.right = pos + 'px';\n } else {\n this.styleObject.left = pos + 'px';\n }\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\" :colspan=\"columnProp('colspan')\" :rowspan=\"columnProp('rowspan')\" 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 BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport { getNextElementSibling, getOuterWidth, getPreviousElementSibling } from '@primeuix/utils/dom';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'FooterCell',\n hostName: 'DataTable',\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 size: this.$parentInstance?.$parentInstance?.size,\n showGridlines: this.$parentInstance?.$parentInstance?.showGridlines || false\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 let isRTL = this.$parentInstance.$parentInstance.isRTL;\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.right || 0);\n }\n\n if (isRTL) {\n this.styleObject.left = pos + 'px';\n } else {\n this.styleObject.right = pos + 'px';\n }\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.left || 0);\n }\n\n if (isRTL) {\n this.styleObject.right = pos + 'px';\n } else {\n this.styleObject.left = pos + 'px';\n }\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 <tfoot v-if=\"hasFooter\" :class=\"cx('tfoot')\" :style=\"sx('tfoot')\" role=\"rowgroup\" v-bind=\"columnGroup ? { ...ptm('tfoot', ptmTFootOptions), ...getColumnGroupPT('root') } : ptm('tfoot', ptmTFootOptions)\" data-pc-section=\"tfoot\">\n <tr v-if=\"!columnGroup\" role=\"row\" v-bind=\"ptm('footerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <DTFooterCell v-if=\"!columnProp(col, 'hidden')\" :column=\"col\" :pt=\"pt\" />\n </template>\n </tr>\n <template v-else>\n <tr v-for=\"(row, i) of getFooterRows()\" :key=\"i\" role=\"row\" v-bind=\"{ ...ptm('footerRow'), ...getRowPT(row, 'root', i) }\">\n <template v-for=\"(col, j) of getFooterColumns(row)\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || j\">\n <DTFooterCell v-if=\"!columnProp(col, 'hidden')\" :column=\"col\" :index=\"i\" :pt=\"pt\" />\n </template>\n </tr>\n </template>\n </tfoot>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { HelperSet, getVNodeProp } from '@primevue/core/utils';\nimport { mergeProps } from 'vue';\nimport FooterCell from './FooterCell.vue';\n\nexport default {\n name: 'TableFooter',\n hostName: 'DataTable',\n extends: BaseComponent,\n props: {\n columnGroup: {\n type: null,\n default: null\n },\n columns: {\n type: Object,\n default: null\n }\n },\n provide() {\n return {\n $rows: this.d_footerRows,\n $columns: this.d_footerColumns\n };\n },\n data() {\n return {\n d_footerRows: new HelperSet({ type: 'Row' }),\n d_footerColumns: new HelperSet({ type: 'Column' })\n };\n },\n beforeUnmount() {\n this.d_footerRows.clear();\n this.d_footerColumns.clear();\n },\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n getColumnGroupPT(key) {\n const columnGroupMetaData = {\n props: this.getColumnGroupProps(),\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n type: 'footer',\n scrollable: this.ptmTFootOptions.context.scrollable\n }\n };\n\n return mergeProps(this.ptm(`columnGroup.${key}`, { columnGroup: columnGroupMetaData }), this.ptm(`columnGroup.${key}`, columnGroupMetaData), this.ptmo(this.getColumnGroupProps(), key, columnGroupMetaData));\n },\n getColumnGroupProps() {\n return this.columnGroup && this.columnGroup.props && this.columnGroup.props.pt ? this.columnGroup.props.pt : undefined; //@todo\n },\n getRowPT(row, key, index) {\n const rowMetaData = {\n props: row.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index\n }\n };\n\n return mergeProps(this.ptm(`row.${key}`, { row: rowMetaData }), this.ptm(`row.${key}`, rowMetaData), this.ptmo(this.getRowProp(row), key, rowMetaData));\n },\n getRowProp(row) {\n return row.props && row.props.pt ? row.props.pt : undefined; //@todo\n },\n getFooterRows() {\n return this.d_footerRows?.get(this.columnGroup, this.columnGroup.children);\n },\n getFooterColumns(row) {\n return this.d_footerColumns?.get(row, row.children);\n }\n },\n computed: {\n hasFooter() {\n let hasFooter = false;\n\n if (this.columnGroup) {\n hasFooter = true;\n } else if (this.columns) {\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\n return hasFooter;\n },\n ptmTFootOptions() {\n return {\n context: {\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n }\n },\n components: {\n DTFooterCell: FooterCell\n }\n};\n</script>\n","<template>\n <tfoot v-if=\"hasFooter\" :class=\"cx('tfoot')\" :style=\"sx('tfoot')\" role=\"rowgroup\" v-bind=\"columnGroup ? { ...ptm('tfoot', ptmTFootOptions), ...getColumnGroupPT('root') } : ptm('tfoot', ptmTFootOptions)\" data-pc-section=\"tfoot\">\n <tr v-if=\"!columnGroup\" role=\"row\" v-bind=\"ptm('footerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <DTFooterCell v-if=\"!columnProp(col, 'hidden')\" :column=\"col\" :pt=\"pt\" />\n </template>\n </tr>\n <template v-else>\n <tr v-for=\"(row, i) of getFooterRows()\" :key=\"i\" role=\"row\" v-bind=\"{ ...ptm('footerRow'), ...getRowPT(row, 'root', i) }\">\n <template v-for=\"(col, j) of getFooterColumns(row)\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || j\">\n <DTFooterCell v-if=\"!columnProp(col, 'hidden')\" :column=\"col\" :index=\"i\" :pt=\"pt\" />\n </template>\n </tr>\n </template>\n </tfoot>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { HelperSet, getVNodeProp } from '@primevue/core/utils';\nimport { mergeProps } from 'vue';\nimport FooterCell from './FooterCell.vue';\n\nexport default {\n name: 'TableFooter',\n hostName: 'DataTable',\n extends: BaseComponent,\n props: {\n columnGroup: {\n type: null,\n default: null\n },\n columns: {\n type: Object,\n default: null\n }\n },\n provide() {\n return {\n $rows: this.d_footerRows,\n $columns: this.d_footerColumns\n };\n },\n data() {\n return {\n d_footerRows: new HelperSet({ type: 'Row' }),\n d_footerColumns: new HelperSet({ type: 'Column' })\n };\n },\n beforeUnmount() {\n this.d_footerRows.clear();\n this.d_footerColumns.clear();\n },\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n getColumnGroupPT(key) {\n const columnGroupMetaData = {\n props: this.getColumnGroupProps(),\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n type: 'footer',\n scrollable: this.ptmTFootOptions.context.scrollable\n }\n };\n\n return mergeProps(this.ptm(`columnGroup.${key}`, { columnGroup: columnGroupMetaData }), this.ptm(`columnGroup.${key}`, columnGroupMetaData), this.ptmo(this.getColumnGroupProps(), key, columnGroupMetaData));\n },\n getColumnGroupProps() {\n return this.columnGroup && this.columnGroup.props && this.columnGroup.props.pt ? this.columnGroup.props.pt : undefined; //@todo\n },\n getRowPT(row, key, index) {\n const rowMetaData = {\n props: row.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index\n }\n };\n\n return mergeProps(this.ptm(`row.${key}`, { row: rowMetaData }), this.ptm(`row.${key}`, rowMetaData), this.ptmo(this.getRowProp(row), key, rowMetaData));\n },\n getRowProp(row) {\n return row.props && row.props.pt ? row.props.pt : undefined; //@todo\n },\n getFooterRows() {\n return this.d_footerRows?.get(this.columnGroup, this.columnGroup.children);\n },\n getFooterColumns(row) {\n return this.d_footerColumns?.get(row, row.children);\n }\n },\n computed: {\n hasFooter() {\n let hasFooter = false;\n\n if (this.columnGroup) {\n hasFooter = true;\n } else if (this.columns) {\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\n return hasFooter;\n },\n ptmTFootOptions() {\n return {\n context: {\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n }\n },\n components: {\n DTFooterCell: FooterCell\n }\n};\n</script>\n","<template>\n <div :class=\"cx('filter')\" v-bind=\"getColumnPT('filter')\">\n <div v-if=\"display === 'row'\" :class=\"cx('filterElementContainer')\" v-bind=\"{ ...filterInputProps, ...getColumnPT('filterElementContainer') }\">\n <component :is=\"filterElement\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"filterCallback\" />\n </div>\n <Button\n v-if=\"showMenuButton\"\n ref=\"icon\"\n :aria-label=\"columnFilterButtonAriaLabel\"\n aria-haspopup=\"true\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"overlayId\"\n :class=\"cx('pcColumnFilterButton')\"\n :unstyled=\"unstyled\"\n @click=\"toggleMenu($event)\"\n @keydown=\"onToggleButtonKeyDown($event)\"\n v-bind=\"{ ...getColumnPT('pcColumnFilterButton', ptmFilterMenuParams), ...filterButtonProps.filter }\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"filterIconTemplate || 'FilterIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('filterMenuIcon')\" />\n </template>\n </Button>\n <Button\n v-if=\"showClearButton && display === 'row' && hasRowFilter()\"\n :class=\"cx('pcColumnFilterClearButton')\"\n :unstyled=\"unstyled\"\n @click=\"clearFilter()\"\n v-bind=\"{ ...getColumnPT('pcColumnFilterClearButton', ptmHeaderFilterClearParams), ...filterButtonProps.inline.clear }\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"filterClearIconTemplate || 'FilterSlashIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('filterClearIcon')\" />\n </template>\n </Button>\n <Portal>\n <transition name=\"p-connected-overlay\" @enter=\"onOverlayEnter\" @after-enter=\"onOverlayAfterEnter\" @leave=\"onOverlayLeave\" @after-leave=\"onOverlayAfterLeave\" v-bind=\"getColumnPT('transition')\">\n <div\n v-if=\"overlayVisible\"\n :ref=\"overlayRef\"\n :id=\"overlayId\"\n v-focustrap\n :aria-modal=\"overlayVisible\"\n role=\"dialog\"\n :class=\"[cx('filterOverlay'), filterMenuClass]\"\n @keydown.escape=\"hide\"\n @click=\"onContentClick\"\n @mousedown=\"onContentMouseDown\"\n v-bind=\"getColumnPT('filterOverlay')\"\n >\n <component :is=\"filterHeaderTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"filterCallback\" />\n <template v-if=\"display === 'row'\">\n <ul :class=\"cx('filterConstraintList')\" v-bind=\"getColumnPT('filterConstraintList')\">\n <li\n v-for=\"(matchMode, i) of matchModes\"\n :key=\"matchMode.label\"\n :class=\"cx('filterConstraint', { matchMode })\"\n @click=\"onRowMatchModeChange(matchMode.value)\"\n @keydown=\"onRowMatchModeKeyDown($event)\"\n @keydown.enter.prevent=\"onRowMatchModeChange(matchMode.value)\"\n :tabindex=\"i === 0 ? '0' : null\"\n v-bind=\"getColumnPT('filterConstraint', ptmFilterConstraintOptions(matchMode))\"\n >\n {{ matchMode.label }}\n </li>\n <li :class=\"cx('filterConstraintSeparator')\" v-bind=\"getColumnPT('filterConstraintSeparator')\"></li>\n <li :class=\"cx('filterConstraint')\" @click=\"clearFilter()\" @keydown=\"onRowMatchModeKeyDown($event)\" @keydown.enter=\"onRowClearItemClick()\" v-bind=\"getColumnPT('filterConstraint')\">\n {{ noFilterLabel }}\n </li>\n </ul>\n </template>\n <template v-else>\n <div v-if=\"isShowOperator\" :class=\"cx('filterOperator')\" v-bind=\"getColumnPT('filterOperator')\">\n <Select\n :options=\"operatorOptions\"\n :modelValue=\"operator\"\n :aria-label=\"filterOperatorAriaLabel\"\n :class=\"cx('pcFilterOperatorDropdown')\"\n optionLabel=\"label\"\n optionValue=\"value\"\n @update:modelValue=\"onOperatorChange($event)\"\n :unstyled=\"unstyled\"\n :pt=\"getColumnPT('pcFilterOperatorDropdown')\"\n ></Select>\n </div>\n <div :class=\"cx('filterRuleList')\" v-bind=\"getColumnPT('filterRuleList')\">\n <div v-for=\"(fieldConstraint, i) of fieldConstraints\" :key=\"i\" :class=\"cx('filterRule')\" v-bind=\"getColumnPT('filterRule')\">\n <Select\n v-if=\"isShowMatchModes\"\n :options=\"matchModes\"\n :modelValue=\"fieldConstraint.matchMode\"\n :class=\"cx('pcFilterConstraintDropdown')\"\n optionLabel=\"label\"\n optionValue=\"value\"\n :aria-label=\"filterRuleAriaLabel\"\n @update:modelValue=\"onMenuMatchModeChange($event, i)\"\n :unstyled=\"unstyled\"\n :pt=\"getColumnPT('pcFilterConstraintDropdown')\"\n ></Select>\n <component v-if=\"display === 'menu'\" :is=\"filterElement\" :field=\"field\" :filterModel=\"fieldConstraint\" :filterCallback=\"filterCallback\" :applyFilter=\"applyFilter\" />\n <div v-if=\"showRemoveIcon\" v-bind=\"getColumnPT('filterRemove')\">\n <Button\n type=\"button\"\n :class=\"cx('pcFilterRemoveRuleButton')\"\n @click=\"removeConstraint(i)\"\n :label=\"removeRuleButtonLabel\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.removeRule\"\n :pt=\"getColumnPT('pcFilterRemoveRuleButton')\"\n >\n <template #icon=\"iconProps\">\n <component :is=\"filterRemoveIconTemplate || 'TrashIcon'\" :class=\"iconProps.class\" v-bind=\"getColumnPT('pcFilterRemoveRuleButton')['icon']\" />\n </template>\n </Button>\n </div>\n </div>\n </div>\n <div v-if=\"isShowAddConstraint\" v-bind=\"getColumnPT('filterAddButtonContainer')\">\n <Button\n type=\"button\"\n :label=\"addRuleButtonLabel\"\n iconPos=\"left\"\n :class=\"cx('pcFilterAddRuleButton')\"\n @click=\"addConstraint()\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.addRule\"\n :pt=\"getColumnPT('pcFilterAddRuleButton')\"\n >\n <template #icon=\"iconProps\">\n <component :is=\"filterAddIconTemplate || 'PlusIcon'\" :class=\"iconProps.class\" v-bind=\"getColumnPT('pcFilterAddRuleButton')['icon']\" />\n </template>\n </Button>\n </div>\n <div :class=\"cx('filterButtonbar')\" v-bind=\"getColumnPT('filterButtonbar')\">\n <Button\n v-if=\"!filterClearTemplate && showClearButton\"\n type=\"button\"\n :class=\"cx('pcFilterClearButton')\"\n :label=\"clearButtonLabel\"\n @click=\"clearFilter\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.clear\"\n :pt=\"getColumnPT('pcFilterClearButton')\"\n ></Button>\n <component v-else :is=\"filterClearTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"clearFilter\" />\n <template v-if=\"showApplyButton\">\n <Button\n v-if=\"!filterApplyTemplate\"\n type=\"button\"\n :class=\"cx('pcFilterApplyButton')\"\n :label=\"applyButtonLabel\"\n @click=\"applyFilter()\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.apply\"\n :pt=\"getColumnPT('pcFilterApplyButton')\"\n ></Button>\n <component v-else :is=\"filterApplyTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"applyFilter\" />\n </template>\n </div>\n </template>\n <component :is=\"filterFooterTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"filterCallback\" />\n </div>\n </transition>\n </Portal>\n </div>\n</template>\n\n<script>\nimport { FilterOperator } from '@primevue/core/api';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { ConnectedOverlayScrollHandler, UniqueComponentId } from '@primevue/core/utils';\nimport { getAttribute, focus, addStyle, absolutePosition, isTouchDevice } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport FilterIcon from '@primevue/icons/filter';\nimport FilterSlashIcon from '@primevue/icons/filterslash';\nimport PlusIcon from '@primevue/icons/plus';\nimport TrashIcon from '@primevue/icons/trash';\nimport Button from 'primevue/button';\nimport FocusTrap from 'primevue/focustrap';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport Select from 'primevue/select';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'ColumnFilter',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['filter-change', 'filter-apply', 'operator-change', 'matchmode-change', 'constraint-add', 'constraint-remove', 'filter-clear', 'apply-click'],\n props: {\n field: {\n type: String,\n default: null\n },\n type: {\n type: String,\n default: 'text'\n },\n display: {\n type: String,\n default: null\n },\n showMenu: {\n type: Boolean,\n default: true\n },\n matchMode: {\n type: String,\n default: null\n },\n showOperator: {\n type: Boolean,\n default: true\n },\n showClearButton: {\n type: Boolean,\n default: true\n },\n showApplyButton: {\n type: Boolean,\n default: true\n },\n showMatchModes: {\n type: Boolean,\n default: true\n },\n showAddButton: {\n type: Boolean,\n default: true\n },\n matchModeOptions: {\n type: Array,\n default: null\n },\n maxConstraints: {\n type: Number,\n default: 2\n },\n filterElement: {\n type: Function,\n default: null\n },\n filterHeaderTemplate: {\n type: Function,\n default: null\n },\n filterFooterTemplate: {\n type: Function,\n default: null\n },\n filterClearTemplate: {\n type: Function,\n default: null\n },\n filterApplyTemplate: {\n type: Function,\n default: null\n },\n filterIconTemplate: {\n type: Function,\n default: null\n },\n filterAddIconTemplate: {\n type: Function,\n default: null\n },\n filterRemoveIconTemplate: {\n type: Function,\n default: null\n },\n filterClearIconTemplate: {\n type: Function,\n default: null\n },\n filters: {\n type: Object,\n default: null\n },\n filtersStore: {\n type: Object,\n default: null\n },\n filterMenuClass: {\n type: String,\n default: null\n },\n filterMenuStyle: {\n type: null,\n default: null\n },\n filterInputProps: {\n type: null,\n default: null\n },\n filterButtonProps: {\n type: null,\n default: null\n },\n column: null\n },\n data() {\n return {\n id: this.$attrs.id,\n overlayVisible: false,\n defaultMatchMode: null,\n defaultOperator: null\n };\n },\n watch: {\n '$attrs.id': function (newValue) {\n this.id = newValue || UniqueComponentId();\n }\n },\n overlay: null,\n selfClick: false,\n overlayEventListener: null,\n beforeUnmount() {\n if (this.overlayEventListener) {\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n }\n\n if (this.overlay) {\n ZIndex.clear(this.overlay);\n this.onOverlayHide();\n }\n },\n mounted() {\n this.id = this.id || UniqueComponentId();\n\n if (this.filters && this.filters[this.field]) {\n let fieldFilters = this.filters[this.field];\n\n if (fieldFilters.operator) {\n this.defaultMatchMode = fieldFilters.constraints[0].matchMode;\n this.defaultOperator = fieldFilters.operator;\n } else {\n this.defaultMatchMode = this.filters[this.field].matchMode;\n }\n }\n },\n methods: {\n getColumnPT(key, params) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n ...params\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 ptmFilterConstraintOptions(matchMode) {\n return {\n context: {\n highlighted: matchMode && this.isRowMatchModeSelected(matchMode.value)\n }\n };\n },\n clearFilter() {\n let _filters = { ...this.filters };\n\n if (_filters[this.field].operator) {\n _filters[this.field].constraints.splice(1);\n _filters[this.field].operator = this.defaultOperator;\n _filters[this.field].constraints[0] = { value: null, matchMode: this.defaultMatchMode };\n } else {\n _filters[this.field].value = null;\n _filters[this.field].matchMode = this.defaultMatchMode;\n }\n\n this.$emit('filter-clear');\n this.$emit('filter-change', _filters);\n this.$emit('filter-apply');\n this.hide();\n },\n applyFilter() {\n this.$emit('apply-click', { field: this.field, constraints: this.filters[this.field] });\n this.$emit('filter-apply');\n this.hide();\n },\n hasFilter() {\n if (this.filtersStore) {\n let fieldFilter = this.filtersStore[this.field];\n\n if (fieldFilter) {\n if (fieldFilter.operator) return !this.isFilterBlank(fieldFilter.constraints[0].value);\n else return !this.isFilterBlank(fieldFilter.value);\n }\n }\n\n return false;\n },\n hasRowFilter() {\n return this.filters[this.field] && !this.isFilterBlank(this.filters[this.field].value);\n },\n isFilterBlank(filter) {\n if (filter !== null && filter !== undefined) {\n if ((typeof filter === 'string' && filter.trim().length == 0) || (filter instanceof Array && filter.length == 0)) return true;\n else return false;\n }\n\n return true;\n },\n toggleMenu(event) {\n this.overlayVisible = !this.overlayVisible;\n\n event.preventDefault();\n },\n onToggleButtonKeyDown(event) {\n switch (event.code) {\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.toggleMenu(event);\n\n break;\n\n case 'Escape':\n this.overlayVisible = false;\n break;\n }\n },\n onRowMatchModeChange(matchMode) {\n let _filters = { ...this.filters };\n\n _filters[this.field].matchMode = matchMode;\n this.$emit('matchmode-change', { field: this.field, matchMode: matchMode });\n this.$emit('filter-change', _filters);\n this.$emit('filter-apply');\n this.hide();\n },\n onRowMatchModeKeyDown(event) {\n let item = event.target;\n\n switch (event.code) {\n case 'ArrowDown':\n var nextItem = this.findNextItem(item);\n\n if (nextItem) {\n item.removeAttribute('tabindex');\n nextItem.tabIndex = '0';\n nextItem.focus();\n }\n\n event.preventDefault();\n break;\n\n case 'ArrowUp':\n var prevItem = this.findPrevItem(item);\n\n if (prevItem) {\n item.removeAttribute('tabindex');\n prevItem.tabIndex = '0';\n prevItem.focus();\n }\n\n event.preventDefault();\n break;\n }\n },\n isRowMatchModeSelected(matchMode) {\n return this.filters[this.field].matchMode === matchMode;\n },\n onOperatorChange(value) {\n let _filters = { ...this.filters };\n\n _filters[this.field].operator = value;\n this.$emit('filter-change', _filters);\n\n this.$emit('operator-change', { field: this.field, operator: value });\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n onMenuMatchModeChange(value, index) {\n let _filters = { ...this.filters };\n\n _filters[this.field].constraints[index].matchMode = value;\n this.$emit('matchmode-change', { field: this.field, matchMode: value, index: index });\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n addConstraint() {\n let _filters = { ...this.filters };\n let newConstraint = { value: null, matchMode: this.defaultMatchMode };\n\n _filters[this.field].constraints.push(newConstraint);\n this.$emit('constraint-add', { field: this.field, constraing: newConstraint });\n this.$emit('filter-change', _filters);\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n removeConstraint(index) {\n let _filters = { ...this.filters };\n let removedConstraint = _filters[this.field].constraints.splice(index, 1);\n\n this.$emit('constraint-remove', { field: this.field, constraing: removedConstraint });\n this.$emit('filter-change', _filters);\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n filterCallback() {\n this.$emit('filter-apply');\n },\n findNextItem(item) {\n let nextItem = item.nextElementSibling;\n\n if (nextItem) return getAttribute(nextItem, 'data-pc-section') === 'filterconstraintseparator' ? this.findNextItem(nextItem) : nextItem;\n else return item.parentElement.firstElementChild;\n },\n findPrevItem(item) {\n let prevItem = item.previousElementSibling;\n\n if (prevItem) return getAttribute(prevItem, 'data-pc-section') === 'filterconstraintseparator' ? this.findPrevItem(prevItem) : prevItem;\n else return item.parentElement.lastElementChild;\n },\n hide() {\n this.overlayVisible = false;\n\n this.showMenuButton && focus(this.$refs.icon.$el);\n },\n onContentClick(event) {\n this.selfClick = true;\n\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.overlay\n });\n },\n onContentMouseDown() {\n this.selfClick = true;\n },\n onOverlayEnter(el) {\n if (this.filterMenuStyle) {\n addStyle(this.overlay, this.filterMenuStyle);\n }\n\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n addStyle(el, { position: 'absolute', top: '0', left: '0' });\n absolutePosition(this.overlay, this.$refs.icon.$el);\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n\n this.overlayEventListener = (e) => {\n if (!this.isOutsideClicked(e.target)) {\n this.selfClick = true;\n }\n };\n\n OverlayEventBus.on('overlay-click', this.overlayEventListener);\n },\n onOverlayAfterEnter() {\n this.overlay?.$focustrap?.autoFocus();\n },\n onOverlayLeave() {\n this.onOverlayHide();\n },\n onOverlayAfterLeave(el) {\n ZIndex.clear(el);\n },\n onOverlayHide() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindScrollListener();\n this.overlay = null;\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n },\n overlayRef(el) {\n this.overlay = el;\n },\n isOutsideClicked(target) {\n return !this.isTargetClicked(target) && this.overlay && !(this.overlay.isSameNode(target) || this.overlay.contains(target));\n },\n isTargetClicked(target) {\n return this.$refs.icon && (this.$refs.icon.$el.isSameNode(target) || this.$refs.icon.$el.contains(target));\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n if (this.overlayVisible && !this.selfClick && this.isOutsideClicked(event.target)) {\n this.overlayVisible = false;\n }\n\n this.selfClick = false;\n };\n\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n this.selfClick = false;\n }\n },\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.icon.$el, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.overlayVisible && !isTouchDevice()) {\n this.hide();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n }\n },\n computed: {\n showMenuButton() {\n return this.showMenu && (this.display === 'row' ? this.type !== 'boolean' : true);\n },\n overlayId() {\n return this.id + '_overlay';\n },\n matchModes() {\n return (\n this.matchModeOptions ||\n this.$primevue.config.filterMatchModeOptions[this.type].map((key) => {\n return { label: this.$primevue.config.locale[key], value: key };\n })\n );\n },\n isShowMatchModes() {\n return this.type !== 'boolean' && this.showMatchModes && this.matchModes;\n },\n operatorOptions() {\n return [\n { label: this.$primevue.config.locale.matchAll, value: FilterOperator.AND },\n { label: this.$primevue.config.locale.matchAny, value: FilterOperator.OR }\n ];\n },\n noFilterLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.noFilter : undefined;\n },\n isShowOperator() {\n return this.showOperator && this.filters[this.field].operator;\n },\n operator() {\n return this.filters[this.field].operator;\n },\n fieldConstraints() {\n return this.filters[this.field].constraints || [this.filters[this.field]];\n },\n showRemoveIcon() {\n return this.fieldConstraints.length > 1;\n },\n removeRuleButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.removeRule : undefined;\n },\n addRuleButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.addRule : undefined;\n },\n isShowAddConstraint() {\n return this.showAddButton && this.filters[this.field].operator && this.fieldConstraints && this.fieldConstraints.length < this.maxConstraints;\n },\n clearButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.clear : undefined;\n },\n applyButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.apply : undefined;\n },\n columnFilterButtonAriaLabel() {\n return this.$primevue.config.locale ? (this.overlayVisible ? this.$primevue.config.locale.showFilterMenu : this.$primevue.config.locale.hideFilterMenu) : undefined;\n },\n filterOperatorAriaLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.filterOperator : undefined;\n },\n filterRuleAriaLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.filterConstraint : undefined;\n },\n ptmHeaderFilterClearParams() {\n return {\n context: {\n hidden: this.hasRowFilter()\n }\n };\n },\n ptmFilterMenuParams() {\n return {\n context: {\n overlayVisible: this.overlayVisible,\n active: this.hasFilter()\n }\n };\n }\n },\n components: {\n Select,\n Button,\n Portal,\n FilterSlashIcon,\n FilterIcon,\n TrashIcon,\n PlusIcon\n },\n directives: {\n focustrap: FocusTrap\n }\n};\n</script>\n","<template>\n <div :class=\"cx('filter')\" v-bind=\"getColumnPT('filter')\">\n <div v-if=\"display === 'row'\" :class=\"cx('filterElementContainer')\" v-bind=\"{ ...filterInputProps, ...getColumnPT('filterElementContainer') }\">\n <component :is=\"filterElement\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"filterCallback\" />\n </div>\n <Button\n v-if=\"showMenuButton\"\n ref=\"icon\"\n :aria-label=\"columnFilterButtonAriaLabel\"\n aria-haspopup=\"true\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"overlayId\"\n :class=\"cx('pcColumnFilterButton')\"\n :unstyled=\"unstyled\"\n @click=\"toggleMenu($event)\"\n @keydown=\"onToggleButtonKeyDown($event)\"\n v-bind=\"{ ...getColumnPT('pcColumnFilterButton', ptmFilterMenuParams), ...filterButtonProps.filter }\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"filterIconTemplate || 'FilterIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('filterMenuIcon')\" />\n </template>\n </Button>\n <Button\n v-if=\"showClearButton && display === 'row' && hasRowFilter()\"\n :class=\"cx('pcColumnFilterClearButton')\"\n :unstyled=\"unstyled\"\n @click=\"clearFilter()\"\n v-bind=\"{ ...getColumnPT('pcColumnFilterClearButton', ptmHeaderFilterClearParams), ...filterButtonProps.inline.clear }\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"filterClearIconTemplate || 'FilterSlashIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('filterClearIcon')\" />\n </template>\n </Button>\n <Portal>\n <transition name=\"p-connected-overlay\" @enter=\"onOverlayEnter\" @after-enter=\"onOverlayAfterEnter\" @leave=\"onOverlayLeave\" @after-leave=\"onOverlayAfterLeave\" v-bind=\"getColumnPT('transition')\">\n <div\n v-if=\"overlayVisible\"\n :ref=\"overlayRef\"\n :id=\"overlayId\"\n v-focustrap\n :aria-modal=\"overlayVisible\"\n role=\"dialog\"\n :class=\"[cx('filterOverlay'), filterMenuClass]\"\n @keydown.escape=\"hide\"\n @click=\"onContentClick\"\n @mousedown=\"onContentMouseDown\"\n v-bind=\"getColumnPT('filterOverlay')\"\n >\n <component :is=\"filterHeaderTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"filterCallback\" />\n <template v-if=\"display === 'row'\">\n <ul :class=\"cx('filterConstraintList')\" v-bind=\"getColumnPT('filterConstraintList')\">\n <li\n v-for=\"(matchMode, i) of matchModes\"\n :key=\"matchMode.label\"\n :class=\"cx('filterConstraint', { matchMode })\"\n @click=\"onRowMatchModeChange(matchMode.value)\"\n @keydown=\"onRowMatchModeKeyDown($event)\"\n @keydown.enter.prevent=\"onRowMatchModeChange(matchMode.value)\"\n :tabindex=\"i === 0 ? '0' : null\"\n v-bind=\"getColumnPT('filterConstraint', ptmFilterConstraintOptions(matchMode))\"\n >\n {{ matchMode.label }}\n </li>\n <li :class=\"cx('filterConstraintSeparator')\" v-bind=\"getColumnPT('filterConstraintSeparator')\"></li>\n <li :class=\"cx('filterConstraint')\" @click=\"clearFilter()\" @keydown=\"onRowMatchModeKeyDown($event)\" @keydown.enter=\"onRowClearItemClick()\" v-bind=\"getColumnPT('filterConstraint')\">\n {{ noFilterLabel }}\n </li>\n </ul>\n </template>\n <template v-else>\n <div v-if=\"isShowOperator\" :class=\"cx('filterOperator')\" v-bind=\"getColumnPT('filterOperator')\">\n <Select\n :options=\"operatorOptions\"\n :modelValue=\"operator\"\n :aria-label=\"filterOperatorAriaLabel\"\n :class=\"cx('pcFilterOperatorDropdown')\"\n optionLabel=\"label\"\n optionValue=\"value\"\n @update:modelValue=\"onOperatorChange($event)\"\n :unstyled=\"unstyled\"\n :pt=\"getColumnPT('pcFilterOperatorDropdown')\"\n ></Select>\n </div>\n <div :class=\"cx('filterRuleList')\" v-bind=\"getColumnPT('filterRuleList')\">\n <div v-for=\"(fieldConstraint, i) of fieldConstraints\" :key=\"i\" :class=\"cx('filterRule')\" v-bind=\"getColumnPT('filterRule')\">\n <Select\n v-if=\"isShowMatchModes\"\n :options=\"matchModes\"\n :modelValue=\"fieldConstraint.matchMode\"\n :class=\"cx('pcFilterConstraintDropdown')\"\n optionLabel=\"label\"\n optionValue=\"value\"\n :aria-label=\"filterRuleAriaLabel\"\n @update:modelValue=\"onMenuMatchModeChange($event, i)\"\n :unstyled=\"unstyled\"\n :pt=\"getColumnPT('pcFilterConstraintDropdown')\"\n ></Select>\n <component v-if=\"display === 'menu'\" :is=\"filterElement\" :field=\"field\" :filterModel=\"fieldConstraint\" :filterCallback=\"filterCallback\" :applyFilter=\"applyFilter\" />\n <div v-if=\"showRemoveIcon\" v-bind=\"getColumnPT('filterRemove')\">\n <Button\n type=\"button\"\n :class=\"cx('pcFilterRemoveRuleButton')\"\n @click=\"removeConstraint(i)\"\n :label=\"removeRuleButtonLabel\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.removeRule\"\n :pt=\"getColumnPT('pcFilterRemoveRuleButton')\"\n >\n <template #icon=\"iconProps\">\n <component :is=\"filterRemoveIconTemplate || 'TrashIcon'\" :class=\"iconProps.class\" v-bind=\"getColumnPT('pcFilterRemoveRuleButton')['icon']\" />\n </template>\n </Button>\n </div>\n </div>\n </div>\n <div v-if=\"isShowAddConstraint\" v-bind=\"getColumnPT('filterAddButtonContainer')\">\n <Button\n type=\"button\"\n :label=\"addRuleButtonLabel\"\n iconPos=\"left\"\n :class=\"cx('pcFilterAddRuleButton')\"\n @click=\"addConstraint()\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.addRule\"\n :pt=\"getColumnPT('pcFilterAddRuleButton')\"\n >\n <template #icon=\"iconProps\">\n <component :is=\"filterAddIconTemplate || 'PlusIcon'\" :class=\"iconProps.class\" v-bind=\"getColumnPT('pcFilterAddRuleButton')['icon']\" />\n </template>\n </Button>\n </div>\n <div :class=\"cx('filterButtonbar')\" v-bind=\"getColumnPT('filterButtonbar')\">\n <Button\n v-if=\"!filterClearTemplate && showClearButton\"\n type=\"button\"\n :class=\"cx('pcFilterClearButton')\"\n :label=\"clearButtonLabel\"\n @click=\"clearFilter\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.clear\"\n :pt=\"getColumnPT('pcFilterClearButton')\"\n ></Button>\n <component v-else :is=\"filterClearTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"clearFilter\" />\n <template v-if=\"showApplyButton\">\n <Button\n v-if=\"!filterApplyTemplate\"\n type=\"button\"\n :class=\"cx('pcFilterApplyButton')\"\n :label=\"applyButtonLabel\"\n @click=\"applyFilter()\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.apply\"\n :pt=\"getColumnPT('pcFilterApplyButton')\"\n ></Button>\n <component v-else :is=\"filterApplyTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"applyFilter\" />\n </template>\n </div>\n </template>\n <component :is=\"filterFooterTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"filterCallback\" />\n </div>\n </transition>\n </Portal>\n </div>\n</template>\n\n<script>\nimport { FilterOperator } from '@primevue/core/api';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { ConnectedOverlayScrollHandler, UniqueComponentId } from '@primevue/core/utils';\nimport { getAttribute, focus, addStyle, absolutePosition, isTouchDevice } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport FilterIcon from '@primevue/icons/filter';\nimport FilterSlashIcon from '@primevue/icons/filterslash';\nimport PlusIcon from '@primevue/icons/plus';\nimport TrashIcon from '@primevue/icons/trash';\nimport Button from 'primevue/button';\nimport FocusTrap from 'primevue/focustrap';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport Select from 'primevue/select';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'ColumnFilter',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['filter-change', 'filter-apply', 'operator-change', 'matchmode-change', 'constraint-add', 'constraint-remove', 'filter-clear', 'apply-click'],\n props: {\n field: {\n type: String,\n default: null\n },\n type: {\n type: String,\n default: 'text'\n },\n display: {\n type: String,\n default: null\n },\n showMenu: {\n type: Boolean,\n default: true\n },\n matchMode: {\n type: String,\n default: null\n },\n showOperator: {\n type: Boolean,\n default: true\n },\n showClearButton: {\n type: Boolean,\n default: true\n },\n showApplyButton: {\n type: Boolean,\n default: true\n },\n showMatchModes: {\n type: Boolean,\n default: true\n },\n showAddButton: {\n type: Boolean,\n default: true\n },\n matchModeOptions: {\n type: Array,\n default: null\n },\n maxConstraints: {\n type: Number,\n default: 2\n },\n filterElement: {\n type: Function,\n default: null\n },\n filterHeaderTemplate: {\n type: Function,\n default: null\n },\n filterFooterTemplate: {\n type: Function,\n default: null\n },\n filterClearTemplate: {\n type: Function,\n default: null\n },\n filterApplyTemplate: {\n type: Function,\n default: null\n },\n filterIconTemplate: {\n type: Function,\n default: null\n },\n filterAddIconTemplate: {\n type: Function,\n default: null\n },\n filterRemoveIconTemplate: {\n type: Function,\n default: null\n },\n filterClearIconTemplate: {\n type: Function,\n default: null\n },\n filters: {\n type: Object,\n default: null\n },\n filtersStore: {\n type: Object,\n default: null\n },\n filterMenuClass: {\n type: String,\n default: null\n },\n filterMenuStyle: {\n type: null,\n default: null\n },\n filterInputProps: {\n type: null,\n default: null\n },\n filterButtonProps: {\n type: null,\n default: null\n },\n column: null\n },\n data() {\n return {\n id: this.$attrs.id,\n overlayVisible: false,\n defaultMatchMode: null,\n defaultOperator: null\n };\n },\n watch: {\n '$attrs.id': function (newValue) {\n this.id = newValue || UniqueComponentId();\n }\n },\n overlay: null,\n selfClick: false,\n overlayEventListener: null,\n beforeUnmount() {\n if (this.overlayEventListener) {\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n }\n\n if (this.overlay) {\n ZIndex.clear(this.overlay);\n this.onOverlayHide();\n }\n },\n mounted() {\n this.id = this.id || UniqueComponentId();\n\n if (this.filters && this.filters[this.field]) {\n let fieldFilters = this.filters[this.field];\n\n if (fieldFilters.operator) {\n this.defaultMatchMode = fieldFilters.constraints[0].matchMode;\n this.defaultOperator = fieldFilters.operator;\n } else {\n this.defaultMatchMode = this.filters[this.field].matchMode;\n }\n }\n },\n methods: {\n getColumnPT(key, params) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n ...params\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 ptmFilterConstraintOptions(matchMode) {\n return {\n context: {\n highlighted: matchMode && this.isRowMatchModeSelected(matchMode.value)\n }\n };\n },\n clearFilter() {\n let _filters = { ...this.filters };\n\n if (_filters[this.field].operator) {\n _filters[this.field].constraints.splice(1);\n _filters[this.field].operator = this.defaultOperator;\n _filters[this.field].constraints[0] = { value: null, matchMode: this.defaultMatchMode };\n } else {\n _filters[this.field].value = null;\n _filters[this.field].matchMode = this.defaultMatchMode;\n }\n\n this.$emit('filter-clear');\n this.$emit('filter-change', _filters);\n this.$emit('filter-apply');\n this.hide();\n },\n applyFilter() {\n this.$emit('apply-click', { field: this.field, constraints: this.filters[this.field] });\n this.$emit('filter-apply');\n this.hide();\n },\n hasFilter() {\n if (this.filtersStore) {\n let fieldFilter = this.filtersStore[this.field];\n\n if (fieldFilter) {\n if (fieldFilter.operator) return !this.isFilterBlank(fieldFilter.constraints[0].value);\n else return !this.isFilterBlank(fieldFilter.value);\n }\n }\n\n return false;\n },\n hasRowFilter() {\n return this.filters[this.field] && !this.isFilterBlank(this.filters[this.field].value);\n },\n isFilterBlank(filter) {\n if (filter !== null && filter !== undefined) {\n if ((typeof filter === 'string' && filter.trim().length == 0) || (filter instanceof Array && filter.length == 0)) return true;\n else return false;\n }\n\n return true;\n },\n toggleMenu(event) {\n this.overlayVisible = !this.overlayVisible;\n\n event.preventDefault();\n },\n onToggleButtonKeyDown(event) {\n switch (event.code) {\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.toggleMenu(event);\n\n break;\n\n case 'Escape':\n this.overlayVisible = false;\n break;\n }\n },\n onRowMatchModeChange(matchMode) {\n let _filters = { ...this.filters };\n\n _filters[this.field].matchMode = matchMode;\n this.$emit('matchmode-change', { field: this.field, matchMode: matchMode });\n this.$emit('filter-change', _filters);\n this.$emit('filter-apply');\n this.hide();\n },\n onRowMatchModeKeyDown(event) {\n let item = event.target;\n\n switch (event.code) {\n case 'ArrowDown':\n var nextItem = this.findNextItem(item);\n\n if (nextItem) {\n item.removeAttribute('tabindex');\n nextItem.tabIndex = '0';\n nextItem.focus();\n }\n\n event.preventDefault();\n break;\n\n case 'ArrowUp':\n var prevItem = this.findPrevItem(item);\n\n if (prevItem) {\n item.removeAttribute('tabindex');\n prevItem.tabIndex = '0';\n prevItem.focus();\n }\n\n event.preventDefault();\n break;\n }\n },\n isRowMatchModeSelected(matchMode) {\n return this.filters[this.field].matchMode === matchMode;\n },\n onOperatorChange(value) {\n let _filters = { ...this.filters };\n\n _filters[this.field].operator = value;\n this.$emit('filter-change', _filters);\n\n this.$emit('operator-change', { field: this.field, operator: value });\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n onMenuMatchModeChange(value, index) {\n let _filters = { ...this.filters };\n\n _filters[this.field].constraints[index].matchMode = value;\n this.$emit('matchmode-change', { field: this.field, matchMode: value, index: index });\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n addConstraint() {\n let _filters = { ...this.filters };\n let newConstraint = { value: null, matchMode: this.defaultMatchMode };\n\n _filters[this.field].constraints.push(newConstraint);\n this.$emit('constraint-add', { field: this.field, constraing: newConstraint });\n this.$emit('filter-change', _filters);\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n removeConstraint(index) {\n let _filters = { ...this.filters };\n let removedConstraint = _filters[this.field].constraints.splice(index, 1);\n\n this.$emit('constraint-remove', { field: this.field, constraing: removedConstraint });\n this.$emit('filter-change', _filters);\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n filterCallback() {\n this.$emit('filter-apply');\n },\n findNextItem(item) {\n let nextItem = item.nextElementSibling;\n\n if (nextItem) return getAttribute(nextItem, 'data-pc-section') === 'filterconstraintseparator' ? this.findNextItem(nextItem) : nextItem;\n else return item.parentElement.firstElementChild;\n },\n findPrevItem(item) {\n let prevItem = item.previousElementSibling;\n\n if (prevItem) return getAttribute(prevItem, 'data-pc-section') === 'filterconstraintseparator' ? this.findPrevItem(prevItem) : prevItem;\n else return item.parentElement.lastElementChild;\n },\n hide() {\n this.overlayVisible = false;\n\n this.showMenuButton && focus(this.$refs.icon.$el);\n },\n onContentClick(event) {\n this.selfClick = true;\n\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.overlay\n });\n },\n onContentMouseDown() {\n this.selfClick = true;\n },\n onOverlayEnter(el) {\n if (this.filterMenuStyle) {\n addStyle(this.overlay, this.filterMenuStyle);\n }\n\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n addStyle(el, { position: 'absolute', top: '0', left: '0' });\n absolutePosition(this.overlay, this.$refs.icon.$el);\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n\n this.overlayEventListener = (e) => {\n if (!this.isOutsideClicked(e.target)) {\n this.selfClick = true;\n }\n };\n\n OverlayEventBus.on('overlay-click', this.overlayEventListener);\n },\n onOverlayAfterEnter() {\n this.overlay?.$focustrap?.autoFocus();\n },\n onOverlayLeave() {\n this.onOverlayHide();\n },\n onOverlayAfterLeave(el) {\n ZIndex.clear(el);\n },\n onOverlayHide() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindScrollListener();\n this.overlay = null;\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n },\n overlayRef(el) {\n this.overlay = el;\n },\n isOutsideClicked(target) {\n return !this.isTargetClicked(target) && this.overlay && !(this.overlay.isSameNode(target) || this.overlay.contains(target));\n },\n isTargetClicked(target) {\n return this.$refs.icon && (this.$refs.icon.$el.isSameNode(target) || this.$refs.icon.$el.contains(target));\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n if (this.overlayVisible && !this.selfClick && this.isOutsideClicked(event.target)) {\n this.overlayVisible = false;\n }\n\n this.selfClick = false;\n };\n\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n this.selfClick = false;\n }\n },\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.icon.$el, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.overlayVisible && !isTouchDevice()) {\n this.hide();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n }\n },\n computed: {\n showMenuButton() {\n return this.showMenu && (this.display === 'row' ? this.type !== 'boolean' : true);\n },\n overlayId() {\n return this.id + '_overlay';\n },\n matchModes() {\n return (\n this.matchModeOptions ||\n this.$primevue.config.filterMatchModeOptions[this.type].map((key) => {\n return { label: this.$primevue.config.locale[key], value: key };\n })\n );\n },\n isShowMatchModes() {\n return this.type !== 'boolean' && this.showMatchModes && this.matchModes;\n },\n operatorOptions() {\n return [\n { label: this.$primevue.config.locale.matchAll, value: FilterOperator.AND },\n { label: this.$primevue.config.locale.matchAny, value: FilterOperator.OR }\n ];\n },\n noFilterLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.noFilter : undefined;\n },\n isShowOperator() {\n return this.showOperator && this.filters[this.field].operator;\n },\n operator() {\n return this.filters[this.field].operator;\n },\n fieldConstraints() {\n return this.filters[this.field].constraints || [this.filters[this.field]];\n },\n showRemoveIcon() {\n return this.fieldConstraints.length > 1;\n },\n removeRuleButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.removeRule : undefined;\n },\n addRuleButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.addRule : undefined;\n },\n isShowAddConstraint() {\n return this.showAddButton && this.filters[this.field].operator && this.fieldConstraints && this.fieldConstraints.length < this.maxConstraints;\n },\n clearButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.clear : undefined;\n },\n applyButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.apply : undefined;\n },\n columnFilterButtonAriaLabel() {\n return this.$primevue.config.locale ? (this.overlayVisible ? this.$primevue.config.locale.showFilterMenu : this.$primevue.config.locale.hideFilterMenu) : undefined;\n },\n filterOperatorAriaLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.filterOperator : undefined;\n },\n filterRuleAriaLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.filterConstraint : undefined;\n },\n ptmHeaderFilterClearParams() {\n return {\n context: {\n hidden: this.hasRowFilter()\n }\n };\n },\n ptmFilterMenuParams() {\n return {\n context: {\n overlayVisible: this.overlayVisible,\n active: this.hasFilter()\n }\n };\n }\n },\n components: {\n Select,\n Button,\n Portal,\n FilterSlashIcon,\n FilterIcon,\n TrashIcon,\n PlusIcon\n },\n directives: {\n focustrap: FocusTrap\n }\n};\n</script>\n","<template>\n <Checkbox :modelValue=\"checked\" :binary=\"true\" :disabled=\"disabled\" :aria-label=\"headerCheckboxAriaLabel\" @change=\"onChange\" :unstyled=\"unstyled\" :pt=\"getColumnPT('pcHeaderCheckbox')\">\n <template #icon=\"slotProps\">\n <component v-if=\"headerCheckboxIconTemplate\" :is=\"headerCheckboxIconTemplate\" :checked=\"slotProps.checked\" :class=\"slotProps.class\" />\n <CheckIcon v-else-if=\"!headerCheckboxIconTemplate && slotProps.checked\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcHeaderCheckbox')['icon']\" />\n </template>\n </Checkbox>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport CheckIcon from '@primevue/icons/check';\nimport Checkbox from 'primevue/checkbox';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'HeaderCheckbox',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['change'],\n props: {\n checked: null,\n disabled: null,\n column: null,\n headerCheckboxIconTemplate: {\n type: Function,\n default: null\n }\n },\n methods: {\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 checked: this.checked,\n disabled: this.disabled\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 onChange(event) {\n this.$emit('change', {\n originalEvent: event,\n checked: !this.checked\n });\n }\n },\n computed: {\n headerCheckboxAriaLabel() {\n return this.$primevue.config.locale.aria ? (this.checked ? this.$primevue.config.locale.aria.selectAll : this.$primevue.config.locale.aria.unselectAll) : undefined;\n }\n },\n components: {\n CheckIcon,\n Checkbox\n }\n};\n</script>\n","<template>\n <Checkbox :modelValue=\"checked\" :binary=\"true\" :disabled=\"disabled\" :aria-label=\"headerCheckboxAriaLabel\" @change=\"onChange\" :unstyled=\"unstyled\" :pt=\"getColumnPT('pcHeaderCheckbox')\">\n <template #icon=\"slotProps\">\n <component v-if=\"headerCheckboxIconTemplate\" :is=\"headerCheckboxIconTemplate\" :checked=\"slotProps.checked\" :class=\"slotProps.class\" />\n <CheckIcon v-else-if=\"!headerCheckboxIconTemplate && slotProps.checked\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcHeaderCheckbox')['icon']\" />\n </template>\n </Checkbox>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport CheckIcon from '@primevue/icons/check';\nimport Checkbox from 'primevue/checkbox';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'HeaderCheckbox',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['change'],\n props: {\n checked: null,\n disabled: null,\n column: null,\n headerCheckboxIconTemplate: {\n type: Function,\n default: null\n }\n },\n methods: {\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 checked: this.checked,\n disabled: this.disabled\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 onChange(event) {\n this.$emit('change', {\n originalEvent: event,\n checked: !this.checked\n });\n }\n },\n computed: {\n headerCheckboxAriaLabel() {\n return this.$primevue.config.locale.aria ? (this.checked ? this.$primevue.config.locale.aria.selectAll : this.$primevue.config.locale.aria.unselectAll) : undefined;\n }\n },\n components: {\n CheckIcon,\n Checkbox\n }\n};\n</script>\n","<template>\n <th\n :style=\"containerStyle\"\n :class=\"containerClass\"\n :tabindex=\"columnProp('sortable') ? '0' : null\"\n role=\"columnheader\"\n :colspan=\"columnProp('colspan')\"\n :rowspan=\"columnProp('rowspan')\"\n :aria-sort=\"ariaSort\"\n @click=\"onClick\"\n @keydown=\"onKeyDown\"\n @mousedown=\"onMouseDown\"\n @dragstart=\"onDragStart\"\n @dragover=\"onDragOver\"\n @dragleave=\"onDragLeave\"\n @drop=\"onDrop\"\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-filter-column=\"filterColumn\"\n :data-p-frozen-column=\"columnProp('frozen')\"\n :data-p-reorderable-column=\"reorderableColumns\"\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')\" :pt=\"getColumnPT('pcSortBadge')\" :value=\"getBadgeValue()\" size=\"small\" />\n <DTHeaderCheckbox\n v-if=\"columnProp('selectionMode') === 'multiple' && filterDisplay !== 'row'\"\n :checked=\"allRowsSelected\"\n @change=\"onHeaderCheckboxChange\"\n :disabled=\"empty\"\n :headerCheckboxIconTemplate=\"column.children && column.children.headercheckboxicon\"\n :column=\"column\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n <DTColumnFilter\n v-if=\"filterDisplay === 'menu' && column.children && column.children.filter\"\n :field=\"columnProp('filterField') || columnProp('field')\"\n :type=\"columnProp('dataType')\"\n display=\"menu\"\n :showMenu=\"columnProp('showFilterMenu')\"\n :filterElement=\"column.children && column.children.filter\"\n :filterHeaderTemplate=\"column.children && column.children.filterheader\"\n :filterFooterTemplate=\"column.children && column.children.filterfooter\"\n :filterClearTemplate=\"column.children && column.children.filterclear\"\n :filterApplyTemplate=\"column.children && column.children.filterapply\"\n :filterIconTemplate=\"column.children && column.children.filtericon\"\n :filterAddIconTemplate=\"column.children && column.children.filteraddicon\"\n :filterRemoveIconTemplate=\"column.children && column.children.filterremoveicon\"\n :filterClearIconTemplate=\"column.children && column.children.filterclearicon\"\n :filters=\"filters\"\n :filtersStore=\"filtersStore\"\n :filterInputProps=\"filterInputProps\"\n :filterButtonProps=\"filterButtonProps\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n :filterMenuStyle=\"columnProp('filterMenuStyle')\"\n :filterMenuClass=\"columnProp('filterMenuClass')\"\n :showOperator=\"columnProp('showFilterOperator')\"\n :showClearButton=\"columnProp('showClearButton')\"\n :showApplyButton=\"columnProp('showApplyButton')\"\n :showMatchModes=\"columnProp('showFilterMatchModes')\"\n :showAddButton=\"columnProp('showAddButton')\"\n :matchModeOptions=\"columnProp('filterMatchModeOptions')\"\n :maxConstraints=\"columnProp('maxConstraints')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n :column=\"column\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\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';\nimport ColumnFilter from './ColumnFilter.vue';\nimport HeaderCheckbox from './HeaderCheckbox.vue';\n\nexport default {\n name: 'HeaderCell',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: [\n 'column-click',\n 'column-mousedown',\n 'column-dragstart',\n 'column-dragover',\n 'column-dragleave',\n 'column-drop',\n 'column-resizestart',\n 'checkbox-change',\n 'filter-change',\n 'filter-apply',\n 'operator-change',\n 'matchmode-change',\n 'constraint-add',\n 'constraint-remove',\n 'filter-clear',\n 'apply-click'\n ],\n props: {\n column: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: null\n },\n resizableColumns: {\n type: Boolean,\n default: false\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n sortMode: {\n type: String,\n default: 'single'\n },\n groupRowSortField: {\n type: [String, Function],\n default: null\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 allRowsSelected: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n filterDisplay: {\n type: String,\n default: null\n },\n filters: {\n type: Object,\n default: null\n },\n filtersStore: {\n type: Object,\n default: null\n },\n filterColumn: {\n type: Boolean,\n default: false\n },\n reorderableColumns: {\n type: Boolean,\n default: false\n },\n filterInputProps: {\n type: null,\n default: null\n },\n filterButtonProps: {\n type: null,\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 sortable: this.columnProp('sortable') === '' || this.columnProp('sortable'),\n sorted: this.isColumnSorted(),\n resizable: this.resizableColumns,\n size: this.$parentInstance?.$parentInstance?.size,\n showGridlines: this.$parentInstance?.$parentInstance?.showGridlines || false\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 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 event.preventDefault();\n }\n },\n onMouseDown(event) {\n this.$emit('column-mousedown', { originalEvent: event, column: this.column });\n },\n onDragStart(event) {\n this.$emit('column-dragstart', { originalEvent: event, column: this.column });\n },\n onDragOver(event) {\n this.$emit('column-dragover', { originalEvent: event, column: this.column });\n },\n onDragLeave(event) {\n this.$emit('column-dragleave', { originalEvent: event, column: this.column });\n },\n onDrop(event) {\n this.$emit('column-drop', { originalEvent: event, column: this.column });\n },\n onResizeStart(event) {\n this.$emit('column-resizestart', event);\n },\n getMultiSortMetaIndex() {\n return this.multiSortMeta.findIndex((meta) => meta.field === this.columnProp('field') || meta.field === this.columnProp('sortField'));\n },\n getBadgeValue() {\n let index = this.getMultiSortMetaIndex();\n\n return this.groupRowsBy && this.groupRowsBy === this.groupRowSortField && index > -1 ? index : index + 1;\n },\n isMultiSorted() {\n return this.sortMode === 'multiple' && 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 updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let align = this.columnProp('alignFrozen');\n let isRTL = this.$parentInstance.$parentInstance.isRTL;\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.right || 0);\n }\n\n if (isRTL) {\n this.styleObject.left = pos + 'px';\n } else {\n this.styleObject.right = pos + 'px';\n }\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.left || 0);\n }\n\n if (isRTL) {\n this.styleObject.right = pos + 'px';\n } else {\n this.styleObject.left = pos + 'px';\n }\n }\n\n let filterRow = this.$el.parentElement.nextElementSibling;\n\n if (filterRow) {\n let index = getIndex(this.$el);\n\n if (filterRow.children[index]) {\n filterRow.children[index].style.left = this.styleObject.left;\n filterRow.children[index].style.right = this.styleObject.right;\n }\n }\n }\n },\n onHeaderCheckboxChange(event) {\n this.$emit('checkbox-change', event);\n }\n },\n computed: {\n containerClass() {\n return [this.cx('headerCell'), this.filterColumn ? this.columnProp('filterHeaderClass') : this.columnProp('headerClass'), this.columnProp('class')];\n },\n containerStyle() {\n let headerStyle = this.filterColumn ? this.columnProp('filterHeaderStyle') : 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 DTHeaderCheckbox: HeaderCheckbox,\n DTColumnFilter: ColumnFilter,\n SortAltIcon: SortAltIcon,\n SortAmountUpAltIcon: SortAmountUpAltIcon,\n SortAmountDownIcon: SortAmountDownIcon\n }\n};\n</script>\n","<template>\n <th\n :style=\"containerStyle\"\n :class=\"containerClass\"\n :tabindex=\"columnProp('sortable') ? '0' : null\"\n role=\"columnheader\"\n :colspan=\"columnProp('colspan')\"\n :rowspan=\"columnProp('rowspan')\"\n :aria-sort=\"ariaSort\"\n @click=\"onClick\"\n @keydown=\"onKeyDown\"\n @mousedown=\"onMouseDown\"\n @dragstart=\"onDragStart\"\n @dragover=\"onDragOver\"\n @dragleave=\"onDragLeave\"\n @drop=\"onDrop\"\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-filter-column=\"filterColumn\"\n :data-p-frozen-column=\"columnProp('frozen')\"\n :data-p-reorderable-column=\"reorderableColumns\"\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')\" :pt=\"getColumnPT('pcSortBadge')\" :value=\"getBadgeValue()\" size=\"small\" />\n <DTHeaderCheckbox\n v-if=\"columnProp('selectionMode') === 'multiple' && filterDisplay !== 'row'\"\n :checked=\"allRowsSelected\"\n @change=\"onHeaderCheckboxChange\"\n :disabled=\"empty\"\n :headerCheckboxIconTemplate=\"column.children && column.children.headercheckboxicon\"\n :column=\"column\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n <DTColumnFilter\n v-if=\"filterDisplay === 'menu' && column.children && column.children.filter\"\n :field=\"columnProp('filterField') || columnProp('field')\"\n :type=\"columnProp('dataType')\"\n display=\"menu\"\n :showMenu=\"columnProp('showFilterMenu')\"\n :filterElement=\"column.children && column.children.filter\"\n :filterHeaderTemplate=\"column.children && column.children.filterheader\"\n :filterFooterTemplate=\"column.children && column.children.filterfooter\"\n :filterClearTemplate=\"column.children && column.children.filterclear\"\n :filterApplyTemplate=\"column.children && column.children.filterapply\"\n :filterIconTemplate=\"column.children && column.children.filtericon\"\n :filterAddIconTemplate=\"column.children && column.children.filteraddicon\"\n :filterRemoveIconTemplate=\"column.children && column.children.filterremoveicon\"\n :filterClearIconTemplate=\"column.children && column.children.filterclearicon\"\n :filters=\"filters\"\n :filtersStore=\"filtersStore\"\n :filterInputProps=\"filterInputProps\"\n :filterButtonProps=\"filterButtonProps\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n :filterMenuStyle=\"columnProp('filterMenuStyle')\"\n :filterMenuClass=\"columnProp('filterMenuClass')\"\n :showOperator=\"columnProp('showFilterOperator')\"\n :showClearButton=\"columnProp('showClearButton')\"\n :showApplyButton=\"columnProp('showApplyButton')\"\n :showMatchModes=\"columnProp('showFilterMatchModes')\"\n :showAddButton=\"columnProp('showAddButton')\"\n :matchModeOptions=\"columnProp('filterMatchModeOptions')\"\n :maxConstraints=\"columnProp('maxConstraints')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n :column=\"column\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\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';\nimport ColumnFilter from './ColumnFilter.vue';\nimport HeaderCheckbox from './HeaderCheckbox.vue';\n\nexport default {\n name: 'HeaderCell',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: [\n 'column-click',\n 'column-mousedown',\n 'column-dragstart',\n 'column-dragover',\n 'column-dragleave',\n 'column-drop',\n 'column-resizestart',\n 'checkbox-change',\n 'filter-change',\n 'filter-apply',\n 'operator-change',\n 'matchmode-change',\n 'constraint-add',\n 'constraint-remove',\n 'filter-clear',\n 'apply-click'\n ],\n props: {\n column: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: null\n },\n resizableColumns: {\n type: Boolean,\n default: false\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n sortMode: {\n type: String,\n default: 'single'\n },\n groupRowSortField: {\n type: [String, Function],\n default: null\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 allRowsSelected: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n filterDisplay: {\n type: String,\n default: null\n },\n filters: {\n type: Object,\n default: null\n },\n filtersStore: {\n type: Object,\n default: null\n },\n filterColumn: {\n type: Boolean,\n default: false\n },\n reorderableColumns: {\n type: Boolean,\n default: false\n },\n filterInputProps: {\n type: null,\n default: null\n },\n filterButtonProps: {\n type: null,\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 sortable: this.columnProp('sortable') === '' || this.columnProp('sortable'),\n sorted: this.isColumnSorted(),\n resizable: this.resizableColumns,\n size: this.$parentInstance?.$parentInstance?.size,\n showGridlines: this.$parentInstance?.$parentInstance?.showGridlines || false\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 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 event.preventDefault();\n }\n },\n onMouseDown(event) {\n this.$emit('column-mousedown', { originalEvent: event, column: this.column });\n },\n onDragStart(event) {\n this.$emit('column-dragstart', { originalEvent: event, column: this.column });\n },\n onDragOver(event) {\n this.$emit('column-dragover', { originalEvent: event, column: this.column });\n },\n onDragLeave(event) {\n this.$emit('column-dragleave', { originalEvent: event, column: this.column });\n },\n onDrop(event) {\n this.$emit('column-drop', { originalEvent: event, column: this.column });\n },\n onResizeStart(event) {\n this.$emit('column-resizestart', event);\n },\n getMultiSortMetaIndex() {\n return this.multiSortMeta.findIndex((meta) => meta.field === this.columnProp('field') || meta.field === this.columnProp('sortField'));\n },\n getBadgeValue() {\n let index = this.getMultiSortMetaIndex();\n\n return this.groupRowsBy && this.groupRowsBy === this.groupRowSortField && index > -1 ? index : index + 1;\n },\n isMultiSorted() {\n return this.sortMode === 'multiple' && 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 updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let align = this.columnProp('alignFrozen');\n let isRTL = this.$parentInstance.$parentInstance.isRTL;\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.right || 0);\n }\n\n if (isRTL) {\n this.styleObject.left = pos + 'px';\n } else {\n this.styleObject.right = pos + 'px';\n }\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.left || 0);\n }\n\n if (isRTL) {\n this.styleObject.right = pos + 'px';\n } else {\n this.styleObject.left = pos + 'px';\n }\n }\n\n let filterRow = this.$el.parentElement.nextElementSibling;\n\n if (filterRow) {\n let index = getIndex(this.$el);\n\n if (filterRow.children[index]) {\n filterRow.children[index].style.left = this.styleObject.left;\n filterRow.children[index].style.right = this.styleObject.right;\n }\n }\n }\n },\n onHeaderCheckboxChange(event) {\n this.$emit('checkbox-change', event);\n }\n },\n computed: {\n containerClass() {\n return [this.cx('headerCell'), this.filterColumn ? this.columnProp('filterHeaderClass') : this.columnProp('headerClass'), this.columnProp('class')];\n },\n containerStyle() {\n let headerStyle = this.filterColumn ? this.columnProp('filterHeaderStyle') : 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 DTHeaderCheckbox: HeaderCheckbox,\n DTColumnFilter: ColumnFilter,\n SortAltIcon: SortAltIcon,\n SortAmountUpAltIcon: SortAmountUpAltIcon,\n SortAmountDownIcon: SortAmountDownIcon\n }\n};\n</script>\n","<template>\n <thead :class=\"cx('thead')\" :style=\"sx('thead')\" role=\"rowgroup\" v-bind=\"columnGroup ? { ...ptm('thead', ptmTHeadOptions), ...getColumnGroupPT('root') } : ptm('thead', ptmTHeadOptions)\" data-pc-section=\"thead\">\n <template v-if=\"!columnGroup\">\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 <DTHeaderCell\n v-if=\"!columnProp(col, 'hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp(col, 'field'))\"\n :column=\"col\"\n :index=\"i\"\n @column-click=\"$emit('column-click', $event)\"\n @column-mousedown=\"$emit('column-mousedown', $event)\"\n @column-dragstart=\"$emit('column-dragstart', $event)\"\n @column-dragover=\"$emit('column-dragover', $event)\"\n @column-dragleave=\"$emit('column-dragleave', $event)\"\n @column-drop=\"$emit('column-drop', $event)\"\n :groupRowsBy=\"groupRowsBy\"\n :groupRowSortField=\"groupRowSortField\"\n :reorderableColumns=\"reorderableColumns\"\n :resizableColumns=\"resizableColumns\"\n @column-resizestart=\"$emit('column-resizestart', $event)\"\n :sortMode=\"sortMode\"\n :sortField=\"sortField\"\n :sortOrder=\"sortOrder\"\n :multiSortMeta=\"multiSortMeta\"\n :allRowsSelected=\"allRowsSelected\"\n :empty=\"empty\"\n @checkbox-change=\"$emit('checkbox-change', $event)\"\n :filters=\"filters\"\n :filterDisplay=\"filterDisplay\"\n :filtersStore=\"filtersStore\"\n :filterInputProps=\"filterInputProps\"\n :filterButtonProps=\"filterButtonProps\"\n :first=\"first\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </tr>\n </template>\n <template v-else>\n <tr v-for=\"(row, i) of getHeaderRows()\" :key=\"i\" role=\"row\" v-bind=\"{ ...ptm('headerRow'), ...getRowPT(row, 'root', i) }\">\n <template v-for=\"(col, j) of getHeaderColumns(row)\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || j\">\n <DTHeaderCell\n v-if=\"!columnProp(col, 'hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp(col, 'field')) && typeof col.children !== 'string'\"\n :column=\"col\"\n @column-click=\"$emit('column-click', $event)\"\n @column-mousedown=\"$emit('column-mousedown', $event)\"\n :groupRowsBy=\"groupRowsBy\"\n :groupRowSortField=\"groupRowSortField\"\n :sortMode=\"sortMode\"\n :sortField=\"sortField\"\n :sortOrder=\"sortOrder\"\n :multiSortMeta=\"multiSortMeta\"\n :allRowsSelected=\"allRowsSelected\"\n :empty=\"empty\"\n @checkbox-change=\"$emit('checkbox-change', $event)\"\n :filters=\"filters\"\n :filterDisplay=\"filterDisplay\"\n :filtersStore=\"filtersStore\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </tr>\n </template>\n <tr v-if=\"filterDisplay === 'row'\" role=\"row\" v-bind=\"ptm('headerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <th\n v-if=\"!columnProp(col, 'hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp(col, 'field'))\"\n :style=\"getFilterColumnHeaderStyle(col)\"\n :class=\"getFilterColumnHeaderClass(col)\"\n v-bind=\"{ ...getColumnPT(col, 'root', i), ...getColumnPT(col, 'headerCell', i) }\"\n >\n <DTHeaderCheckbox v-if=\"columnProp(col, 'selectionMode') === 'multiple'\" :checked=\"allRowsSelected\" :disabled=\"empty\" @change=\"$emit('checkbox-change', $event)\" :column=\"col\" :unstyled=\"unstyled\" :pt=\"pt\" />\n <DTColumnFilter\n v-if=\"col.children && col.children.filter\"\n :field=\"columnProp(col, 'filterField') || columnProp(col, 'field')\"\n :type=\"columnProp(col, 'dataType')\"\n display=\"row\"\n :showMenu=\"columnProp(col, 'showFilterMenu')\"\n :filterElement=\"col.children && col.children.filter\"\n :filterHeaderTemplate=\"col.children && col.children.filterheader\"\n :filterFooterTemplate=\"col.children && col.children.filterfooter\"\n :filterClearTemplate=\"col.children && col.children.filterclear\"\n :filterApplyTemplate=\"col.children && col.children.filterapply\"\n :filterIconTemplate=\"col.children && col.children.filtericon\"\n :filterAddIconTemplate=\"col.children && col.children.filteraddicon\"\n :filterRemoveIconTemplate=\"col.children && col.children.filterremoveicon\"\n :filterClearIconTemplate=\"col.children && col.children.filterclearicon\"\n :filters=\"filters\"\n :filtersStore=\"filtersStore\"\n :filterInputProps=\"filterInputProps\"\n :filterButtonProps=\"filterButtonProps\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n :filterMenuStyle=\"columnProp(col, 'filterMenuStyle')\"\n :filterMenuClass=\"columnProp(col, 'filterMenuClass')\"\n :showOperator=\"columnProp(col, 'showFilterOperator')\"\n :showClearButton=\"columnProp(col, 'showClearButton')\"\n :showApplyButton=\"columnProp(col, 'showApplyButton')\"\n :showMatchModes=\"columnProp(col, 'showFilterMatchModes')\"\n :showAddButton=\"columnProp(col, 'showAddButton')\"\n :matchModeOptions=\"columnProp(col, 'filterMatchModeOptions')\"\n :maxConstraints=\"columnProp(col, 'maxConstraints')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n :column=\"col\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </th>\n </template>\n </tr>\n </thead>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { HelperSet, getVNodeProp } from '@primevue/core/utils';\nimport { mergeProps } from 'vue';\nimport ColumnFilter from './ColumnFilter.vue';\nimport HeaderCell from './HeaderCell.vue';\nimport HeaderCheckbox from './HeaderCheckbox.vue';\n\nexport default {\n name: 'TableHeader',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: [\n 'column-click',\n 'column-mousedown',\n 'column-dragstart',\n 'column-dragover',\n 'column-dragleave',\n 'column-drop',\n 'column-resizestart',\n 'checkbox-change',\n 'filter-change',\n 'filter-apply',\n 'operator-change',\n 'matchmode-change',\n 'constraint-add',\n 'constraint-remove',\n 'filter-clear',\n 'apply-click'\n ],\n props: {\n columnGroup: {\n type: null,\n default: null\n },\n columns: {\n type: null,\n default: null\n },\n rowGroupMode: {\n type: String,\n default: null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n resizableColumns: {\n type: Boolean,\n default: false\n },\n allRowsSelected: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n sortMode: {\n type: String,\n default: 'single'\n },\n groupRowSortField: {\n type: [String, Function],\n default: null\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 filterDisplay: {\n type: String,\n default: null\n },\n filters: {\n type: Object,\n default: null\n },\n filtersStore: {\n type: Object,\n default: null\n },\n reorderableColumns: {\n type: Boolean,\n default: false\n },\n first: {\n type: Number,\n default: 0\n },\n filterInputProps: {\n type: null,\n default: null\n },\n filterButtonProps: {\n type: null,\n default: null\n }\n },\n provide() {\n return {\n $rows: this.d_headerRows,\n $columns: this.d_headerColumns\n };\n },\n data() {\n return {\n d_headerRows: new HelperSet({ type: 'Row' }),\n d_headerColumns: new HelperSet({ type: 'Column' })\n };\n },\n beforeUnmount() {\n this.d_headerRows.clear();\n this.d_headerColumns.clear();\n },\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n getColumnGroupPT(key) {\n const columnGroupMetaData = {\n props: this.getColumnGroupProps(),\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n type: 'header',\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n\n return mergeProps(this.ptm(`columnGroup.${key}`, { columnGroup: columnGroupMetaData }), this.ptm(`columnGroup.${key}`, columnGroupMetaData), this.ptmo(this.getColumnGroupProps(), key, columnGroupMetaData));\n },\n getColumnGroupProps() {\n return this.columnGroup && this.columnGroup.props && this.columnGroup.props.pt ? this.columnGroup.props.pt : undefined; //@todo\n },\n getRowPT(row, key, index) {\n const rowMetaData = {\n props: row.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index\n }\n };\n\n return mergeProps(this.ptm(`row.${key}`, { row: rowMetaData }), this.ptm(`row.${key}`, rowMetaData), this.ptmo(this.getRowProp(row), key, rowMetaData));\n },\n getRowProp(row) {\n return row.props && row.props.pt ? row.props.pt : undefined; //@todo\n },\n getColumnPT(column, key, index) {\n const columnMetaData = {\n props: column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(column), key, columnMetaData));\n },\n getColumnProp(column) {\n return column.props && column.props.pt ? column.props.pt : undefined; //@todo\n },\n getFilterColumnHeaderClass(column) {\n return [this.cx('headerCell', { column }), this.columnProp(column, 'filterHeaderClass'), this.columnProp(column, 'class')];\n },\n getFilterColumnHeaderStyle(column) {\n return [this.columnProp(column, 'filterHeaderStyle'), this.columnProp(column, 'style')];\n },\n getHeaderRows() {\n return this.d_headerRows?.get(this.columnGroup, this.columnGroup.children);\n },\n getHeaderColumns(row) {\n return this.d_headerColumns?.get(row, row.children);\n }\n },\n computed: {\n ptmTHeadOptions() {\n return {\n context: {\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n }\n },\n components: {\n DTHeaderCell: HeaderCell,\n DTHeaderCheckbox: HeaderCheckbox,\n DTColumnFilter: ColumnFilter\n }\n};\n</script>\n","<template>\n <thead :class=\"cx('thead')\" :style=\"sx('thead')\" role=\"rowgroup\" v-bind=\"columnGroup ? { ...ptm('thead', ptmTHeadOptions), ...getColumnGroupPT('root') } : ptm('thead', ptmTHeadOptions)\" data-pc-section=\"thead\">\n <template v-if=\"!columnGroup\">\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 <DTHeaderCell\n v-if=\"!columnProp(col, 'hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp(col, 'field'))\"\n :column=\"col\"\n :index=\"i\"\n @column-click=\"$emit('column-click', $event)\"\n @column-mousedown=\"$emit('column-mousedown', $event)\"\n @column-dragstart=\"$emit('column-dragstart', $event)\"\n @column-dragover=\"$emit('column-dragover', $event)\"\n @column-dragleave=\"$emit('column-dragleave', $event)\"\n @column-drop=\"$emit('column-drop', $event)\"\n :groupRowsBy=\"groupRowsBy\"\n :groupRowSortField=\"groupRowSortField\"\n :reorderableColumns=\"reorderableColumns\"\n :resizableColumns=\"resizableColumns\"\n @column-resizestart=\"$emit('column-resizestart', $event)\"\n :sortMode=\"sortMode\"\n :sortField=\"sortField\"\n :sortOrder=\"sortOrder\"\n :multiSortMeta=\"multiSortMeta\"\n :allRowsSelected=\"allRowsSelected\"\n :empty=\"empty\"\n @checkbox-change=\"$emit('checkbox-change', $event)\"\n :filters=\"filters\"\n :filterDisplay=\"filterDisplay\"\n :filtersStore=\"filtersStore\"\n :filterInputProps=\"filterInputProps\"\n :filterButtonProps=\"filterButtonProps\"\n :first=\"first\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </tr>\n </template>\n <template v-else>\n <tr v-for=\"(row, i) of getHeaderRows()\" :key=\"i\" role=\"row\" v-bind=\"{ ...ptm('headerRow'), ...getRowPT(row, 'root', i) }\">\n <template v-for=\"(col, j) of getHeaderColumns(row)\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || j\">\n <DTHeaderCell\n v-if=\"!columnProp(col, 'hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp(col, 'field')) && typeof col.children !== 'string'\"\n :column=\"col\"\n @column-click=\"$emit('column-click', $event)\"\n @column-mousedown=\"$emit('column-mousedown', $event)\"\n :groupRowsBy=\"groupRowsBy\"\n :groupRowSortField=\"groupRowSortField\"\n :sortMode=\"sortMode\"\n :sortField=\"sortField\"\n :sortOrder=\"sortOrder\"\n :multiSortMeta=\"multiSortMeta\"\n :allRowsSelected=\"allRowsSelected\"\n :empty=\"empty\"\n @checkbox-change=\"$emit('checkbox-change', $event)\"\n :filters=\"filters\"\n :filterDisplay=\"filterDisplay\"\n :filtersStore=\"filtersStore\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </tr>\n </template>\n <tr v-if=\"filterDisplay === 'row'\" role=\"row\" v-bind=\"ptm('headerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <th\n v-if=\"!columnProp(col, 'hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp(col, 'field'))\"\n :style=\"getFilterColumnHeaderStyle(col)\"\n :class=\"getFilterColumnHeaderClass(col)\"\n v-bind=\"{ ...getColumnPT(col, 'root', i), ...getColumnPT(col, 'headerCell', i) }\"\n >\n <DTHeaderCheckbox v-if=\"columnProp(col, 'selectionMode') === 'multiple'\" :checked=\"allRowsSelected\" :disabled=\"empty\" @change=\"$emit('checkbox-change', $event)\" :column=\"col\" :unstyled=\"unstyled\" :pt=\"pt\" />\n <DTColumnFilter\n v-if=\"col.children && col.children.filter\"\n :field=\"columnProp(col, 'filterField') || columnProp(col, 'field')\"\n :type=\"columnProp(col, 'dataType')\"\n display=\"row\"\n :showMenu=\"columnProp(col, 'showFilterMenu')\"\n :filterElement=\"col.children && col.children.filter\"\n :filterHeaderTemplate=\"col.children && col.children.filterheader\"\n :filterFooterTemplate=\"col.children && col.children.filterfooter\"\n :filterClearTemplate=\"col.children && col.children.filterclear\"\n :filterApplyTemplate=\"col.children && col.children.filterapply\"\n :filterIconTemplate=\"col.children && col.children.filtericon\"\n :filterAddIconTemplate=\"col.children && col.children.filteraddicon\"\n :filterRemoveIconTemplate=\"col.children && col.children.filterremoveicon\"\n :filterClearIconTemplate=\"col.children && col.children.filterclearicon\"\n :filters=\"filters\"\n :filtersStore=\"filtersStore\"\n :filterInputProps=\"filterInputProps\"\n :filterButtonProps=\"filterButtonProps\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n :filterMenuStyle=\"columnProp(col, 'filterMenuStyle')\"\n :filterMenuClass=\"columnProp(col, 'filterMenuClass')\"\n :showOperator=\"columnProp(col, 'showFilterOperator')\"\n :showClearButton=\"columnProp(col, 'showClearButton')\"\n :showApplyButton=\"columnProp(col, 'showApplyButton')\"\n :showMatchModes=\"columnProp(col, 'showFilterMatchModes')\"\n :showAddButton=\"columnProp(col, 'showAddButton')\"\n :matchModeOptions=\"columnProp(col, 'filterMatchModeOptions')\"\n :maxConstraints=\"columnProp(col, 'maxConstraints')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n :column=\"col\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </th>\n </template>\n </tr>\n </thead>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { HelperSet, getVNodeProp } from '@primevue/core/utils';\nimport { mergeProps } from 'vue';\nimport ColumnFilter from './ColumnFilter.vue';\nimport HeaderCell from './HeaderCell.vue';\nimport HeaderCheckbox from './HeaderCheckbox.vue';\n\nexport default {\n name: 'TableHeader',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: [\n 'column-click',\n 'column-mousedown',\n 'column-dragstart',\n 'column-dragover',\n 'column-dragleave',\n 'column-drop',\n 'column-resizestart',\n 'checkbox-change',\n 'filter-change',\n 'filter-apply',\n 'operator-change',\n 'matchmode-change',\n 'constraint-add',\n 'constraint-remove',\n 'filter-clear',\n 'apply-click'\n ],\n props: {\n columnGroup: {\n type: null,\n default: null\n },\n columns: {\n type: null,\n default: null\n },\n rowGroupMode: {\n type: String,\n default: null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n resizableColumns: {\n type: Boolean,\n default: false\n },\n allRowsSelected: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n sortMode: {\n type: String,\n default: 'single'\n },\n groupRowSortField: {\n type: [String, Function],\n default: null\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 filterDisplay: {\n type: String,\n default: null\n },\n filters: {\n type: Object,\n default: null\n },\n filtersStore: {\n type: Object,\n default: null\n },\n reorderableColumns: {\n type: Boolean,\n default: false\n },\n first: {\n type: Number,\n default: 0\n },\n filterInputProps: {\n type: null,\n default: null\n },\n filterButtonProps: {\n type: null,\n default: null\n }\n },\n provide() {\n return {\n $rows: this.d_headerRows,\n $columns: this.d_headerColumns\n };\n },\n data() {\n return {\n d_headerRows: new HelperSet({ type: 'Row' }),\n d_headerColumns: new HelperSet({ type: 'Column' })\n };\n },\n beforeUnmount() {\n this.d_headerRows.clear();\n this.d_headerColumns.clear();\n },\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n getColumnGroupPT(key) {\n const columnGroupMetaData = {\n props: this.getColumnGroupProps(),\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n type: 'header',\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n\n return mergeProps(this.ptm(`columnGroup.${key}`, { columnGroup: columnGroupMetaData }), this.ptm(`columnGroup.${key}`, columnGroupMetaData), this.ptmo(this.getColumnGroupProps(), key, columnGroupMetaData));\n },\n getColumnGroupProps() {\n return this.columnGroup && this.columnGroup.props && this.columnGroup.props.pt ? this.columnGroup.props.pt : undefined; //@todo\n },\n getRowPT(row, key, index) {\n const rowMetaData = {\n props: row.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index\n }\n };\n\n return mergeProps(this.ptm(`row.${key}`, { row: rowMetaData }), this.ptm(`row.${key}`, rowMetaData), this.ptmo(this.getRowProp(row), key, rowMetaData));\n },\n getRowProp(row) {\n return row.props && row.props.pt ? row.props.pt : undefined; //@todo\n },\n getColumnPT(column, key, index) {\n const columnMetaData = {\n props: column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(column), key, columnMetaData));\n },\n getColumnProp(column) {\n return column.props && column.props.pt ? column.props.pt : undefined; //@todo\n },\n getFilterColumnHeaderClass(column) {\n return [this.cx('headerCell', { column }), this.columnProp(column, 'filterHeaderClass'), this.columnProp(column, 'class')];\n },\n getFilterColumnHeaderStyle(column) {\n return [this.columnProp(column, 'filterHeaderStyle'), this.columnProp(column, 'style')];\n },\n getHeaderRows() {\n return this.d_headerRows?.get(this.columnGroup, this.columnGroup.children);\n },\n getHeaderColumns(row) {\n return this.d_headerColumns?.get(row, row.children);\n }\n },\n computed: {\n ptmTHeadOptions() {\n return {\n context: {\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n }\n },\n components: {\n DTHeaderCell: HeaderCell,\n DTHeaderCheckbox: HeaderCheckbox,\n DTColumnFilter: ColumnFilter\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" data-scrollselectors=\".p-datatable-wrapper\" v-bind=\"ptmi('root')\">\n <slot></slot>\n <div v-if=\"loading\" :class=\"cx('mask')\" v-bind=\"ptm('mask')\">\n <slot v-if=\"$slots.loading\" name=\"loading\"></slot>\n <template v-else>\n <component v-if=\"$slots.loadingicon\" :is=\"$slots.loadingicon\" :class=\"cx('loadingIcon')\" />\n <i v-else-if=\"loadingIcon\" :class=\"[cx('loadingIcon'), 'pi-spin', loadingIcon]\" v-bind=\"ptm('loadingIcon')\" />\n <SpinnerIcon v-else spin :class=\"cx('loadingIcon')\" v-bind=\"ptm('loadingIcon')\" />\n </template>\n </div>\n <div v-if=\"$slots.header\" :class=\"cx('header')\" v-bind=\"ptm('header')\">\n <slot name=\"header\"></slot>\n </div>\n <DTPaginator\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>\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 ></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 </DTPaginator>\n <div :class=\"cx('tableContainer')\" :style=\"[sx('tableContainer'), { maxHeight: virtualScrollerDisabled ? scrollHeight : '' }]\" v-bind=\"ptm('tableContainer')\">\n <DTVirtualScroller\n ref=\"virtualScroller\"\n v-bind=\"virtualScrollerOptions\"\n :items=\"processedData\"\n :columns=\"columns\"\n :style=\"scrollHeight !== 'flex' ? { height: scrollHeight } : undefined\"\n :scrollHeight=\"scrollHeight !== 'flex' ? undefined : '100%'\"\n :disabled=\"virtualScrollerDisabled\"\n loaderDisabled\n inline\n autoSize\n :showSpacer=\"false\"\n :pt=\"ptm('virtualScroller')\"\n >\n <template #content=\"slotProps\">\n <table ref=\"table\" role=\"table\" :class=\"[cx('table'), tableClass]\" :style=\"[tableStyle, slotProps.spacerStyle]\" v-bind=\"{ ...tableProps, ...ptm('table') }\">\n <DTTableHeader\n v-if=\"showHeaders\"\n :columnGroup=\"headerColumnGroup\"\n :columns=\"slotProps.columns\"\n :rowGroupMode=\"rowGroupMode\"\n :groupRowsBy=\"groupRowsBy\"\n :groupRowSortField=\"groupRowSortField\"\n :reorderableColumns=\"reorderableColumns\"\n :resizableColumns=\"resizableColumns\"\n :allRowsSelected=\"allRowsSelected\"\n :empty=\"empty\"\n :sortMode=\"sortMode\"\n :sortField=\"d_sortField\"\n :sortOrder=\"d_sortOrder\"\n :multiSortMeta=\"d_multiSortMeta\"\n :filters=\"d_filters\"\n :filtersStore=\"filters\"\n :filterDisplay=\"filterDisplay\"\n :filterButtonProps=\"headerFilterButtonProps\"\n :filterInputProps=\"filterInputProps\"\n :first=\"d_first\"\n @column-click=\"onColumnHeaderClick($event)\"\n @column-mousedown=\"onColumnHeaderMouseDown($event)\"\n @filter-change=\"onFilterChange\"\n @filter-apply=\"onFilterApply\"\n @column-dragstart=\"onColumnHeaderDragStart($event)\"\n @column-dragover=\"onColumnHeaderDragOver($event)\"\n @column-dragleave=\"onColumnHeaderDragLeave($event)\"\n @column-drop=\"onColumnHeaderDrop($event)\"\n @column-resizestart=\"onColumnResizeStart($event)\"\n @checkbox-change=\"toggleRowsWithCheckbox($event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n <DTTableBody\n v-if=\"frozenValue\"\n ref=\"frozenBodyRef\"\n :value=\"frozenValue\"\n :frozenRow=\"true\"\n :columns=\"slotProps.columns\"\n :first=\"d_first\"\n :dataKey=\"dataKey\"\n :selection=\"selection\"\n :selectionKeys=\"d_selectionKeys\"\n :selectionMode=\"selectionMode\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :rowGroupMode=\"rowGroupMode\"\n :groupRowsBy=\"groupRowsBy\"\n :expandableRowGroups=\"expandableRowGroups\"\n :rowClass=\"rowClass\"\n :rowStyle=\"rowStyle\"\n :editMode=\"editMode\"\n :compareSelectionBy=\"compareSelectionBy\"\n :scrollable=\"scrollable\"\n :expandedRowIcon=\"expandedRowIcon\"\n :collapsedRowIcon=\"collapsedRowIcon\"\n :expandedRows=\"expandedRows\"\n :expandedRowGroups=\"expandedRowGroups\"\n :editingRows=\"editingRows\"\n :editingRowKeys=\"d_editingRowKeys\"\n :templates=\"$slots\"\n :editButtonProps=\"rowEditButtonProps\"\n :isVirtualScrollerDisabled=\"true\"\n @rowgroup-toggle=\"toggleRowGroup\"\n @row-click=\"onRowClick($event)\"\n @row-dblclick=\"onRowDblClick($event)\"\n @row-rightclick=\"onRowRightClick($event)\"\n @row-touchend=\"onRowTouchEnd\"\n @row-keydown=\"onRowKeyDown\"\n @row-mousedown=\"onRowMouseDown\"\n @row-dragstart=\"onRowDragStart($event)\"\n @row-dragover=\"onRowDragOver($event)\"\n @row-dragleave=\"onRowDragLeave($event)\"\n @row-dragend=\"onRowDragEnd($event)\"\n @row-drop=\"onRowDrop($event)\"\n @row-toggle=\"toggleRow($event)\"\n @radio-change=\"toggleRowWithRadio($event)\"\n @checkbox-change=\"toggleRowWithCheckbox($event)\"\n @cell-edit-init=\"onCellEditInit($event)\"\n @cell-edit-complete=\"onCellEditComplete($event)\"\n @cell-edit-cancel=\"onCellEditCancel($event)\"\n @row-edit-init=\"onRowEditInit($event)\"\n @row-edit-save=\"onRowEditSave($event)\"\n @row-edit-cancel=\"onRowEditCancel($event)\"\n :editingMeta=\"d_editingMeta\"\n @editing-meta-change=\"onEditingMetaChange\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n <DTTableBody\n ref=\"bodyRef\"\n :value=\"dataToRender(slotProps.rows)\"\n :class=\"slotProps.styleClass\"\n :columns=\"slotProps.columns\"\n :empty=\"empty\"\n :first=\"d_first\"\n :dataKey=\"dataKey\"\n :selection=\"selection\"\n :selectionKeys=\"d_selectionKeys\"\n :selectionMode=\"selectionMode\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :rowGroupMode=\"rowGroupMode\"\n :groupRowsBy=\"groupRowsBy\"\n :expandableRowGroups=\"expandableRowGroups\"\n :rowClass=\"rowClass\"\n :rowStyle=\"rowStyle\"\n :editMode=\"editMode\"\n :compareSelectionBy=\"compareSelectionBy\"\n :scrollable=\"scrollable\"\n :expandedRowIcon=\"expandedRowIcon\"\n :collapsedRowIcon=\"collapsedRowIcon\"\n :expandedRows=\"expandedRows\"\n :expandedRowGroups=\"expandedRowGroups\"\n :editingRows=\"editingRows\"\n :editingRowKeys=\"d_editingRowKeys\"\n :templates=\"$slots\"\n :editButtonProps=\"rowEditButtonProps\"\n :virtualScrollerContentProps=\"slotProps\"\n :isVirtualScrollerDisabled=\"virtualScrollerDisabled\"\n @rowgroup-toggle=\"toggleRowGroup\"\n @row-click=\"onRowClick($event)\"\n @row-dblclick=\"onRowDblClick($event)\"\n @row-rightclick=\"onRowRightClick($event)\"\n @row-touchend=\"onRowTouchEnd\"\n @row-keydown=\"onRowKeyDown($event, slotProps)\"\n @row-mousedown=\"onRowMouseDown\"\n @row-dragstart=\"onRowDragStart($event)\"\n @row-dragover=\"onRowDragOver($event)\"\n @row-dragleave=\"onRowDragLeave($event)\"\n @row-dragend=\"onRowDragEnd($event)\"\n @row-drop=\"onRowDrop($event)\"\n @row-toggle=\"toggleRow($event)\"\n @radio-change=\"toggleRowWithRadio($event)\"\n @checkbox-change=\"toggleRowWithCheckbox($event)\"\n @cell-edit-init=\"onCellEditInit($event)\"\n @cell-edit-complete=\"onCellEditComplete($event)\"\n @cell-edit-cancel=\"onCellEditCancel($event)\"\n @row-edit-init=\"onRowEditInit($event)\"\n @row-edit-save=\"onRowEditSave($event)\"\n @row-edit-cancel=\"onRowEditCancel($event)\"\n :editingMeta=\"d_editingMeta\"\n @editing-meta-change=\"onEditingMetaChange\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n <tbody\n v-if=\"hasSpacerStyle(slotProps.spacerStyle)\"\n :class=\"cx('virtualScrollerSpacer')\"\n :style=\"{ height: `calc(${slotProps.spacerStyle.height} - ${slotProps.rows.length * slotProps.itemSize}px)` }\"\n v-bind=\"ptm('virtualScrollerSpacer')\"\n ></tbody>\n <DTTableFooter :columnGroup=\"footerColumnGroup\" :columns=\"slotProps.columns\" :pt=\"pt\" />\n </table>\n </template>\n </DTVirtualScroller>\n </div>\n <DTPaginator\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 :totalRecords=\"slotProps.totalRecords\"\n :firstPageCallback=\"slotProps.firstPageCallback\"\n :lastPageCallback=\"slotProps.lastPageCallback\"\n :prevPageCallback=\"slotProps.prevPageCallback\"\n :nextPageCallback=\"slotProps.nextPageCallback\"\n :rowChangeCallback=\"slotProps.rowChangeCallback\"\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 </DTPaginator>\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 <span v-if=\"reorderableColumns\" ref=\"reorderIndicatorUp\" :class=\"cx('rowReorderIndicatorUp')\" style=\"position: absolute; display: none\" v-bind=\"ptm('rowReorderIndicatorUp')\">\n <component :is=\"$slots.rowreorderindicatorupicon || $slots.reorderindicatorupicon || 'ArrowDownIcon'\" />\n </span>\n <span v-if=\"reorderableColumns\" ref=\"reorderIndicatorDown\" :class=\"cx('rowReorderIndicatorDown')\" style=\"position: absolute; display: none\" v-bind=\"ptm('rowReorderIndicatorDown')\">\n <component :is=\"$slots.rowreorderindicatordownicon || $slots.reorderindicatordownicon || 'ArrowUpIcon'\" />\n </span>\n </div>\n</template>\n\n<script>\nimport {\n addClass,\n addStyle,\n clearSelection,\n exportCSV,\n find,\n findSingle,\n focus,\n getAttribute,\n getHiddenElementOuterHeight,\n getHiddenElementOuterWidth,\n getIndex,\n getOffset,\n getOuterHeight,\n getOuterWidth,\n isClickable,\n removeClass,\n setAttribute\n} from '@primeuix/utils/dom';\nimport { equals, findIndexInList, isEmpty, isNotEmpty, localeComparator, reorderArray, resolveFieldData, sort } from '@primeuix/utils/object';\nimport { FilterMatchMode, FilterOperator, FilterService } from '@primevue/core/api';\nimport { HelperSet, getVNodeProp } from '@primevue/core/utils';\nimport ArrowDownIcon from '@primevue/icons/arrowdown';\nimport ArrowUpIcon from '@primevue/icons/arrowup';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport Paginator from 'primevue/paginator';\nimport VirtualScroller from 'primevue/virtualscroller';\nimport BaseDataTable from './BaseDataTable.vue';\nimport TableBody from './TableBody.vue';\nimport TableFooter from './TableFooter.vue';\nimport TableHeader from './TableHeader.vue';\n\nexport default {\n name: 'DataTable',\n extends: BaseDataTable,\n inheritAttrs: false,\n emits: [\n 'value-change',\n 'update:first',\n 'update:rows',\n 'page',\n 'update:sortField',\n 'update:sortOrder',\n 'update:multiSortMeta',\n 'sort',\n 'filter',\n 'row-click',\n 'row-dblclick',\n 'update:selection',\n 'row-select',\n 'row-unselect',\n 'update:contextMenuSelection',\n 'row-contextmenu',\n 'row-unselect-all',\n 'row-select-all',\n 'select-all-change',\n 'column-resize-end',\n 'column-reorder',\n 'row-reorder',\n 'update:expandedRows',\n 'row-collapse',\n 'row-expand',\n 'update:expandedRowGroups',\n 'rowgroup-collapse',\n 'rowgroup-expand',\n 'update:filters',\n 'state-restore',\n 'state-save',\n 'cell-edit-init',\n 'cell-edit-complete',\n 'cell-edit-cancel',\n 'update:editingRows',\n 'row-edit-init',\n 'row-edit-save',\n 'row-edit-cancel'\n ],\n provide() {\n return {\n $columns: this.d_columns,\n $columnGroups: this.d_columnGroups\n };\n },\n data() {\n return {\n d_first: this.first,\n d_rows: this.rows,\n d_sortField: this.sortField,\n d_sortOrder: this.sortOrder,\n d_nullSortOrder: this.nullSortOrder,\n d_multiSortMeta: this.multiSortMeta ? [...this.multiSortMeta] : [],\n d_groupRowsSortMeta: null,\n d_selectionKeys: null,\n d_columnOrder: null,\n d_editingRowKeys: null,\n d_editingMeta: {},\n d_filters: this.cloneFilters(this.filters),\n d_columns: new HelperSet({ type: 'Column' }),\n d_columnGroups: new HelperSet({ type: 'ColumnGroup' }),\n isRTL: false\n };\n },\n rowTouched: false,\n anchorRowIndex: null,\n rangeRowIndex: null,\n documentColumnResizeListener: null,\n documentColumnResizeEndListener: null,\n lastResizeHelperX: null,\n resizeColumnElement: null,\n columnResizing: false,\n colReorderIconWidth: null,\n colReorderIconHeight: null,\n draggedColumn: null,\n draggedColumnElement: null,\n draggedRowIndex: null,\n droppedRowIndex: null,\n rowDragging: null,\n columnWidthsState: null,\n tableWidthState: null,\n columnWidthsRestored: false,\n mutationObserver: null,\n watch: {\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 nullSortOrder(newValue) {\n this.d_nullSortOrder = newValue;\n },\n multiSortMeta(newValue) {\n this.d_multiSortMeta = newValue;\n },\n selection: {\n immediate: true,\n handler(newValue) {\n if (this.dataKey) {\n this.updateSelectionKeys(newValue);\n }\n }\n },\n editingRows: {\n immediate: true,\n handler(newValue) {\n if (this.dataKey) {\n this.updateEditingRowKeys(newValue);\n }\n }\n },\n filters: {\n deep: true,\n handler: function (newValue) {\n this.d_filters = this.cloneFilters(newValue);\n }\n }\n },\n mounted() {\n if (this.isStateful()) {\n this.restoreState();\n\n this.resizableColumns && this.restoreColumnWidths();\n }\n\n if (this.editMode === 'row' && this.dataKey && !this.d_editingRowKeys) {\n this.updateEditingRowKeys(this.editingRows);\n }\n\n this.updateDirection();\n this.observeDirectionChanges();\n },\n beforeUnmount() {\n this.unbindColumnResizeEvents();\n this.destroyStyleElement();\n\n this.d_columns.clear();\n this.d_columnGroups.clear();\n\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n },\n updated() {\n if (this.isStateful()) {\n this.saveState();\n }\n\n if (this.editMode === 'row' && this.dataKey && !this.d_editingRowKeys) {\n this.updateEditingRowKeys(this.editingRows);\n }\n },\n methods: {\n updateDirection() {\n this.isRTL = !!this.$el.closest('[dir=\"rtl\"]');\n },\n observeDirectionChanges() {\n const targetNode = document.documentElement;\n const config = { attributes: true, attributeFilter: ['dir'] };\n\n this.mutationObserver = new MutationObserver(() => {\n this.updateDirection();\n });\n\n this.mutationObserver.observe(targetNode, config);\n },\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n onPage(event) {\n this.clearEditingMetaData();\n\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.$emit('update:first', this.d_first);\n this.$emit('update:rows', this.d_rows);\n this.$emit('page', pageEvent);\n this.$nextTick(() => {\n this.$emit('value-change', this.processedData);\n });\n },\n onColumnHeaderClick(e) {\n const event = e.originalEvent;\n const 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\"]') && !targetNode.closest('[data-pc-section=\"columnfilterbutton\"]') && !isClickable(event.target))\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 this.$nextTick(() => {\n this.$emit('value-change', this.processedData);\n });\n }\n }\n },\n sortSingle(value) {\n this.clearEditingMetaData();\n\n if (this.groupRowsBy && this.groupRowsBy === this.sortField) {\n this.d_multiSortMeta = [\n { field: this.sortField, order: this.sortOrder || this.defaultSortOrder },\n { field: this.d_sortField, order: this.d_sortOrder }\n ];\n\n return this.sortMultiple(value);\n }\n\n let data = [...value];\n let resolvedFieldData = new Map();\n\n for (let item of data) {\n resolvedFieldData.set(item, resolveFieldData(item, this.d_sortField));\n }\n\n const comparer = localeComparator();\n\n data.sort((data1, data2) => {\n let value1 = resolvedFieldData.get(data1);\n let value2 = resolvedFieldData.get(data2);\n\n return sort(value1, value2, this.d_sortOrder, comparer, this.d_nullSortOrder);\n });\n\n return data;\n },\n sortMultiple(value) {\n this.clearEditingMetaData();\n\n if (this.groupRowsBy && (this.d_groupRowsSortMeta || (this.d_multiSortMeta.length && this.groupRowsBy === this.d_multiSortMeta[0].field))) {\n const firstSortMeta = this.d_multiSortMeta[0];\n\n !this.d_groupRowsSortMeta && (this.d_groupRowsSortMeta = firstSortMeta);\n\n if (firstSortMeta.field !== this.d_groupRowsSortMeta.field) {\n this.d_multiSortMeta = [this.d_groupRowsSortMeta, ...this.d_multiSortMeta];\n }\n }\n\n let data = [...value];\n\n data.sort((data1, data2) => {\n return this.multisortField(data1, data2, 0);\n });\n\n return data;\n },\n multisortField(data1, data2, index) {\n const value1 = resolveFieldData(data1, this.d_multiSortMeta[index].field);\n const value2 = resolveFieldData(data2, this.d_multiSortMeta[index].field);\n const comparer = localeComparator();\n\n if (value1 === value2) {\n return this.d_multiSortMeta.length - 1 > index ? this.multisortField(data1, data2, index + 1) : 0;\n }\n\n return sort(value1, value2, this.d_multiSortMeta[index].order, comparer, this.d_nullSortOrder);\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 getActiveFilters(filters) {\n const removeEmptyFilters = ([key, value]) => {\n if (value.constraints) {\n const filteredConstraints = value.constraints.filter((constraint) => constraint.value !== null);\n\n if (filteredConstraints.length > 0) {\n return [key, { ...value, constraints: filteredConstraints }];\n }\n } else if (value.value !== null) {\n return [key, value];\n }\n\n return undefined;\n };\n\n const filterValidEntries = (entry) => entry !== undefined;\n const entries = Object.entries(filters).map(removeEmptyFilters).filter(filterValidEntries);\n\n return Object.fromEntries(entries);\n },\n filter(data) {\n if (!data) {\n return;\n }\n\n this.clearEditingMetaData();\n\n let activeFilters = this.getActiveFilters(this.filters);\n let globalFilterFieldsArray;\n\n if (activeFilters['global']) {\n globalFilterFieldsArray = this.globalFilterFields || this.columns.map((col) => this.columnProp(col, 'filterField') || this.columnProp(col, 'field'));\n }\n\n let filteredValue = [];\n\n for (let i = 0; i < data.length; i++) {\n let localMatch = true;\n let globalMatch = false;\n let localFiltered = false;\n\n for (let prop in activeFilters) {\n if (Object.prototype.hasOwnProperty.call(activeFilters, prop) && prop !== 'global') {\n localFiltered = true;\n let filterField = prop;\n let filterMeta = activeFilters[filterField];\n\n if (filterMeta.operator) {\n for (let filterConstraint of filterMeta.constraints) {\n localMatch = this.executeLocalFilter(filterField, data[i], filterConstraint);\n\n if ((filterMeta.operator === FilterOperator.OR && localMatch) || (filterMeta.operator === FilterOperator.AND && !localMatch)) {\n break;\n }\n }\n } else {\n localMatch = this.executeLocalFilter(filterField, data[i], filterMeta);\n }\n\n if (!localMatch) {\n break;\n }\n }\n }\n\n if (localMatch && activeFilters['global'] && !globalMatch && globalFilterFieldsArray) {\n for (let j = 0; j < globalFilterFieldsArray.length; j++) {\n let globalFilterField = globalFilterFieldsArray[j];\n\n globalMatch = FilterService.filters[activeFilters['global'].matchMode || FilterMatchMode.CONTAINS](resolveFieldData(data[i], globalFilterField), activeFilters['global'].value, this.filterLocale);\n\n if (globalMatch) {\n break;\n }\n }\n }\n\n let matches;\n\n if (activeFilters['global']) {\n matches = localFiltered ? localFiltered && localMatch && globalMatch : globalMatch;\n } else {\n matches = localFiltered && localMatch;\n }\n\n if (matches) {\n filteredValue.push(data[i]);\n }\n }\n\n if (filteredValue.length === this.value.length || Object.keys(activeFilters).length == 0) {\n filteredValue = data;\n }\n\n let filterEvent = this.createLazyLoadEvent();\n\n filterEvent.filteredValue = filteredValue;\n this.$emit('filter', filterEvent);\n this.$nextTick(() => {\n this.$emit('value-change', this.processedData);\n });\n\n return filteredValue;\n },\n executeLocalFilter(field, rowData, filterMeta) {\n let filterValue = filterMeta.value;\n let filterMatchMode = filterMeta.matchMode || FilterMatchMode.STARTS_WITH;\n let dataFieldValue = resolveFieldData(rowData, field);\n let filterConstraint = FilterService.filters[filterMatchMode];\n\n return filterConstraint(dataFieldValue, filterValue, this.filterLocale);\n },\n onRowClick(e) {\n const event = e.originalEvent;\n const body = this.$refs.bodyRef && this.$refs.bodyRef.$el;\n const focusedItem = findSingle(body, 'tr[data-p-selectable-row=\"true\"][tabindex=\"0\"]');\n\n if (isClickable(event.target)) {\n return;\n }\n\n this.$emit('row-click', e);\n\n if (this.selectionMode) {\n const rowData = e.data;\n const rowIndex = this.d_first + e.index;\n\n if (this.isMultipleSelectionMode() && event.shiftKey && this.anchorRowIndex != null) {\n clearSelection();\n this.rangeRowIndex = rowIndex;\n this.selectRange(event);\n } else {\n const selected = this.isSelected(rowData);\n const metaSelection = this.rowTouched ? false : this.metaKeySelection;\n\n this.anchorRowIndex = rowIndex;\n this.rangeRowIndex = rowIndex;\n\n if (metaSelection) {\n let metaKey = event.metaKey || event.ctrlKey;\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n this.$emit('update:selection', null);\n } else {\n const selectionIndex = this.findIndexInSelection(rowData);\n const _selection = this.selection.filter((val, i) => i != selectionIndex);\n\n this.$emit('update:selection', _selection);\n }\n\n this.$emit('row-unselect', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n } else {\n if (this.isSingleSelectionMode()) {\n this.$emit('update:selection', rowData);\n } else if (this.isMultipleSelectionMode()) {\n let _selection = metaKey ? this.selection || [] : [];\n\n _selection = [..._selection, rowData];\n this.$emit('update:selection', _selection);\n }\n\n this.$emit('row-select', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n }\n } else {\n if (this.selectionMode === 'single') {\n if (selected) {\n this.$emit('update:selection', null);\n this.$emit('row-unselect', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n } else {\n this.$emit('update:selection', rowData);\n this.$emit('row-select', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n }\n } else if (this.selectionMode === 'multiple') {\n if (selected) {\n const selectionIndex = this.findIndexInSelection(rowData);\n const _selection = this.selection.filter((val, i) => i != selectionIndex);\n\n this.$emit('update:selection', _selection);\n this.$emit('row-unselect', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n } else {\n const _selection = this.selection ? [...this.selection, rowData] : [rowData];\n\n this.$emit('update:selection', _selection);\n this.$emit('row-select', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n }\n }\n }\n }\n }\n\n this.rowTouched = false;\n\n if (focusedItem) {\n if (event.target?.getAttribute('data-pc-section') === 'rowtoggleicon') return;\n\n const targetRow = event.currentTarget?.closest('tr[data-p-selectable-row=\"true\"]');\n\n focusedItem.tabIndex = '-1';\n targetRow.tabIndex = '0';\n }\n },\n onRowDblClick(e) {\n const event = e.originalEvent;\n\n if (isClickable(event.target)) {\n return;\n }\n\n this.$emit('row-dblclick', e);\n },\n onRowRightClick(event) {\n if (this.contextMenu) {\n clearSelection();\n event.originalEvent.target.focus();\n }\n\n this.$emit('update:contextMenuSelection', event.data);\n this.$emit('row-contextmenu', event);\n },\n onRowTouchEnd() {\n this.rowTouched = true;\n },\n onRowKeyDown(e, slotProps) {\n const event = e.originalEvent;\n const rowData = e.data;\n const rowIndex = e.index;\n const metaKey = event.metaKey || event.ctrlKey;\n\n if (this.selectionMode) {\n const row = event.target;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event, row, rowIndex, slotProps);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event, row, rowIndex, slotProps);\n break;\n\n case 'Home':\n this.onHomeKey(event, row, rowIndex, slotProps);\n break;\n\n case 'End':\n this.onEndKey(event, row, rowIndex, slotProps);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event, rowData, rowIndex);\n break;\n\n case 'Space':\n this.onSpaceKey(event, rowData, rowIndex, slotProps);\n break;\n\n case 'Tab':\n this.onTabKey(event, rowIndex);\n break;\n\n default:\n if (event.code === 'KeyA' && metaKey && this.isMultipleSelectionMode()) {\n const data = this.dataToRender(slotProps.rows);\n\n this.$emit('update:selection', data);\n }\n\n event.preventDefault();\n\n break;\n }\n }\n },\n onArrowDownKey(event, row, rowIndex, slotProps) {\n const nextRow = this.findNextSelectableRow(row);\n\n nextRow && this.focusRowChange(row, nextRow);\n\n if (event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n const nextRowIndex = rowIndex + 1 >= data.length ? data.length - 1 : rowIndex + 1;\n\n this.onRowClick({ originalEvent: event, data: data[nextRowIndex], index: nextRowIndex });\n }\n\n event.preventDefault();\n },\n onArrowUpKey(event, row, rowIndex, slotProps) {\n const prevRow = this.findPrevSelectableRow(row);\n\n prevRow && this.focusRowChange(row, prevRow);\n\n if (event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n const prevRowIndex = rowIndex - 1 <= 0 ? 0 : rowIndex - 1;\n\n this.onRowClick({ originalEvent: event, data: data[prevRowIndex], index: prevRowIndex });\n }\n\n event.preventDefault();\n },\n onHomeKey(event, row, rowIndex, slotProps) {\n const firstRow = this.findFirstSelectableRow();\n\n firstRow && this.focusRowChange(row, firstRow);\n\n if (event.ctrlKey && event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n\n this.$emit('update:selection', data.slice(0, rowIndex + 1));\n }\n\n event.preventDefault();\n },\n onEndKey(event, row, rowIndex, slotProps) {\n const lastRow = this.findLastSelectableRow();\n\n lastRow && this.focusRowChange(row, lastRow);\n\n if (event.ctrlKey && event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n\n this.$emit('update:selection', data.slice(rowIndex, data.length));\n }\n\n event.preventDefault();\n },\n onEnterKey(event, rowData, rowIndex) {\n this.onRowClick({ originalEvent: event, data: rowData, index: rowIndex });\n event.preventDefault();\n },\n onSpaceKey(event, rowData, rowIndex, slotProps) {\n this.onEnterKey(event, rowData, rowIndex);\n\n if (event.shiftKey && this.selection !== null) {\n const data = this.dataToRender(slotProps.rows);\n let index;\n\n if (this.selection.length > 0) {\n let firstSelectedRowIndex, lastSelectedRowIndex;\n\n firstSelectedRowIndex = findIndexInList(this.selection[0], data);\n lastSelectedRowIndex = findIndexInList(this.selection[this.selection.length - 1], data);\n\n index = rowIndex <= firstSelectedRowIndex ? lastSelectedRowIndex : firstSelectedRowIndex;\n } else {\n index = findIndexInList(this.selection, data);\n }\n\n const _selection = index !== rowIndex ? data.slice(Math.min(index, rowIndex), Math.max(index, rowIndex) + 1) : rowData;\n\n this.$emit('update:selection', _selection);\n }\n },\n onTabKey(event, rowIndex) {\n const body = this.$refs.bodyRef && this.$refs.bodyRef.$el;\n const rows = find(body, 'tr[data-p-selectable-row=\"true\"]');\n\n if (event.code === 'Tab' && rows && rows.length > 0) {\n const firstSelectedRow = findSingle(body, 'tr[data-p-selected=\"true\"]');\n const focusedItem = findSingle(body, 'tr[data-p-selectable-row=\"true\"][tabindex=\"0\"]');\n\n if (firstSelectedRow) {\n firstSelectedRow.tabIndex = '0';\n focusedItem && focusedItem !== firstSelectedRow && (focusedItem.tabIndex = '-1');\n } else {\n rows[0].tabIndex = '0';\n focusedItem !== rows[0] && (rows[rowIndex].tabIndex = '-1');\n }\n }\n },\n findNextSelectableRow(row) {\n let nextRow = row.nextElementSibling;\n\n if (nextRow) {\n if (getAttribute(nextRow, 'data-p-selectable-row') === true) return nextRow;\n else return this.findNextSelectableRow(nextRow);\n } else {\n return null;\n }\n },\n findPrevSelectableRow(row) {\n let prevRow = row.previousElementSibling;\n\n if (prevRow) {\n if (getAttribute(prevRow, 'data-p-selectable-row') === true) return prevRow;\n else return this.findPrevSelectableRow(prevRow);\n } else {\n return null;\n }\n },\n findFirstSelectableRow() {\n const firstRow = findSingle(this.$refs.table, 'tr[data-p-selectable-row=\"true\"]');\n\n return firstRow;\n },\n findLastSelectableRow() {\n const rows = find(this.$refs.table, 'tr[data-p-selectable-row=\"true\"]');\n\n return rows ? rows[rows.length - 1] : null;\n },\n focusRowChange(firstFocusableRow, currentFocusedRow) {\n firstFocusableRow.tabIndex = '-1';\n currentFocusedRow.tabIndex = '0';\n focus(currentFocusedRow);\n },\n toggleRowWithRadio(event) {\n const rowData = event.data;\n\n if (this.isSelected(rowData)) {\n this.$emit('update:selection', null);\n this.$emit('row-unselect', { originalEvent: event.originalEvent, data: rowData, index: event.index, type: 'radiobutton' });\n } else {\n this.$emit('update:selection', rowData);\n this.$emit('row-select', { originalEvent: event.originalEvent, data: rowData, index: event.index, type: 'radiobutton' });\n }\n },\n toggleRowWithCheckbox(event) {\n const rowData = event.data;\n\n if (this.isSelected(rowData)) {\n const selectionIndex = this.findIndexInSelection(rowData);\n const _selection = this.selection.filter((val, i) => i != selectionIndex);\n\n this.$emit('update:selection', _selection);\n this.$emit('row-unselect', { originalEvent: event.originalEvent, data: rowData, index: event.index, type: 'checkbox' });\n } else {\n let _selection = this.selection ? [...this.selection] : [];\n\n _selection = [..._selection, rowData];\n this.$emit('update:selection', _selection);\n this.$emit('row-select', { originalEvent: event.originalEvent, data: rowData, index: event.index, type: 'checkbox' });\n }\n },\n toggleRowsWithCheckbox(event) {\n if (this.selectAll !== null) {\n this.$emit('select-all-change', event);\n } else {\n const { originalEvent, checked } = event;\n let _selection = [];\n\n if (checked) {\n _selection = this.frozenValue ? [...this.frozenValue, ...this.processedData] : this.processedData;\n this.$emit('row-select-all', { originalEvent, data: _selection });\n } else {\n this.$emit('row-unselect-all', { originalEvent });\n }\n\n this.$emit('update:selection', _selection);\n }\n },\n isSingleSelectionMode() {\n return this.selectionMode === 'single';\n },\n isMultipleSelectionMode() {\n return this.selectionMode === 'multiple';\n },\n isSelected(rowData) {\n if (rowData && this.selection) {\n if (this.dataKey) {\n return this.d_selectionKeys ? this.d_selectionKeys[resolveFieldData(rowData, this.dataKey)] !== undefined : false;\n } else {\n if (this.selection instanceof Array) return this.findIndexInSelection(rowData) > -1;\n else return this.equals(rowData, this.selection);\n }\n }\n\n return false;\n },\n findIndexInSelection(rowData) {\n return this.findIndex(rowData, this.selection);\n },\n findIndex(rowData, collection) {\n let index = -1;\n\n if (collection && collection.length) {\n for (let i = 0; i < collection.length; i++) {\n if (this.equals(rowData, collection[i])) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n },\n updateSelectionKeys(selection) {\n this.d_selectionKeys = {};\n\n if (Array.isArray(selection)) {\n for (let data of selection) {\n this.d_selectionKeys[String(resolveFieldData(data, this.dataKey))] = 1;\n }\n } else {\n this.d_selectionKeys[String(resolveFieldData(selection, this.dataKey))] = 1;\n }\n },\n updateEditingRowKeys(editingRows) {\n if (editingRows && editingRows.length) {\n this.d_editingRowKeys = {};\n\n for (let data of editingRows) {\n this.d_editingRowKeys[String(resolveFieldData(data, this.dataKey))] = 1;\n }\n } else {\n this.d_editingRowKeys = null;\n }\n },\n equals(data1, data2) {\n return this.compareSelectionBy === 'equals' ? data1 === data2 : equals(data1, data2, this.dataKey);\n },\n selectRange(event) {\n let rangeStart, rangeEnd;\n\n if (this.rangeRowIndex > this.anchorRowIndex) {\n rangeStart = this.anchorRowIndex;\n rangeEnd = this.rangeRowIndex;\n } else if (this.rangeRowIndex < this.anchorRowIndex) {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.anchorRowIndex;\n } else {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.rangeRowIndex;\n }\n\n if (this.lazy && this.paginator) {\n rangeStart -= this.first;\n rangeEnd -= this.first;\n }\n\n const value = this.processedData;\n let _selection = [];\n\n for (let i = rangeStart; i <= rangeEnd; i++) {\n let rangeRowData = value[i];\n\n _selection.push(rangeRowData);\n this.$emit('row-select', { originalEvent: event, data: rangeRowData, type: 'row' });\n }\n\n this.$emit('update:selection', _selection);\n },\n exportCSV(options, data) {\n let csv = '\\ufeff';\n\n if (!data) {\n data = this.processedData;\n\n if (options && options.selectionOnly) data = this.selection || [];\n else if (this.frozenValue) data = data ? [...this.frozenValue, ...data] : this.frozenValue;\n }\n\n //headers\n let headerInitiated = false;\n\n for (let i = 0; i < this.columns.length; i++) {\n let column = this.columns[i];\n\n if (this.columnProp(column, 'exportable') !== false && this.columnProp(column, 'field')) {\n if (headerInitiated) csv += this.csvSeparator;\n else headerInitiated = true;\n\n csv += '\"' + (this.columnProp(column, 'exportHeader') || this.columnProp(column, 'header') || this.columnProp(column, 'field')) + '\"';\n }\n }\n\n //body\n if (data) {\n data.forEach((record) => {\n csv += '\\n';\n let rowInitiated = false;\n\n for (let i = 0; i < this.columns.length; i++) {\n let column = this.columns[i];\n\n if (this.columnProp(column, 'exportable') !== false && this.columnProp(column, 'field')) {\n if (rowInitiated) csv += this.csvSeparator;\n else rowInitiated = true;\n\n let cellData = resolveFieldData(record, this.columnProp(column, 'field'));\n\n if (cellData != null) {\n if (this.exportFunction) {\n cellData = this.exportFunction({\n data: cellData,\n field: this.columnProp(column, 'field')\n });\n } else cellData = String(cellData).replace(/\"/g, '\"\"');\n } else cellData = '';\n\n csv += '\"' + cellData + '\"';\n }\n }\n });\n }\n\n //footers\n let footerInitiated = false;\n\n for (let i = 0; i < this.columns.length; i++) {\n let column = this.columns[i];\n\n if (i === 0) csv += '\\n';\n\n if (this.columnProp(column, 'exportable') !== false && this.columnProp(column, 'exportFooter')) {\n if (footerInitiated) csv += this.csvSeparator;\n else footerInitiated = true;\n\n csv += '\"' + (this.columnProp(column, 'exportFooter') || this.columnProp(column, 'footer') || this.columnProp(column, 'field')) + '\"';\n }\n }\n\n exportCSV(csv, this.exportFilename);\n },\n resetPage() {\n this.d_first = 0;\n this.$emit('update:first', this.d_first);\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 = this.isRTL ? 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 if (!this.virtualScrollerDisabled) {\n const body = this.$refs.bodyRef && this.$refs.bodyRef.$el;\n const frozenBody = this.$refs.frozenBodyRef && this.$refs.frozenBodyRef.$el;\n\n updateTableWidth(body);\n updateTableWidth(frozenBody);\n }\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 if (this.isStateful()) {\n this.saveState();\n }\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=\"datatable\"][${this.$attrSelector}] > [data-pc-section=\"tablecontainer\"] ${this.virtualScrollerDisabled ? '' : '> [data-pc-name=\"virtualscroller\"]'} > 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', () => {\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 onColumnHeaderMouseDown(e) {\n const event = e.originalEvent;\n const column = e.column;\n\n if (this.reorderableColumns && this.columnProp(column, 'reorderableColumn') !== false) {\n if (event.target.nodeName === 'INPUT' || event.target.nodeName === 'TEXTAREA' || getAttribute(event.target, '[data-pc-section=\"columnresizer\"]')) event.currentTarget.draggable = false;\n else event.currentTarget.draggable = true;\n }\n },\n onColumnHeaderDragStart(e) {\n const { originalEvent: event, column } = e;\n\n if (this.columnResizing) {\n event.preventDefault();\n\n return;\n }\n\n this.colReorderIconWidth = getHiddenElementOuterWidth(this.$refs.reorderIndicatorUp);\n this.colReorderIconHeight = getHiddenElementOuterHeight(this.$refs.reorderIndicatorUp);\n\n this.draggedColumn = column;\n this.draggedColumnElement = this.findParentHeader(event.target);\n event.dataTransfer.setData('text', 'b'); // Firefox requires this to make dragging possible\n },\n onColumnHeaderDragOver(e) {\n const { originalEvent: event, column } = e;\n let dropHeader = this.findParentHeader(event.target);\n\n if (this.reorderableColumns && this.draggedColumnElement && dropHeader && !this.columnProp(column, 'frozen')) {\n event.preventDefault();\n let containerOffset = getOffset(this.$el);\n let dropHeaderOffset = getOffset(dropHeader);\n\n if (this.draggedColumnElement !== dropHeader) {\n let targetLeft = dropHeaderOffset.left - containerOffset.left;\n let columnCenter = dropHeaderOffset.left + dropHeader.offsetWidth / 2;\n\n this.$refs.reorderIndicatorUp.style.top = dropHeaderOffset.top - containerOffset.top - (this.colReorderIconHeight - 1) + 'px';\n this.$refs.reorderIndicatorDown.style.top = dropHeaderOffset.top - containerOffset.top + dropHeader.offsetHeight + 'px';\n\n if (event.pageX > columnCenter) {\n this.$refs.reorderIndicatorUp.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.$refs.reorderIndicatorDown.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.dropPosition = 1;\n } else {\n this.$refs.reorderIndicatorUp.style.left = targetLeft - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.$refs.reorderIndicatorDown.style.left = targetLeft - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.dropPosition = -1;\n }\n\n this.$refs.reorderIndicatorUp.style.display = 'block';\n this.$refs.reorderIndicatorDown.style.display = 'block';\n }\n }\n },\n onColumnHeaderDragLeave(e) {\n const { originalEvent: event } = e;\n\n if (this.reorderableColumns && this.draggedColumnElement) {\n event.preventDefault();\n this.$refs.reorderIndicatorUp.style.display = 'none';\n this.$refs.reorderIndicatorDown.style.display = 'none';\n }\n },\n onColumnHeaderDrop(e) {\n const { originalEvent: event, column } = e;\n\n event.preventDefault();\n\n if (this.draggedColumnElement) {\n let dragIndex = getIndex(this.draggedColumnElement);\n let dropIndex = getIndex(this.findParentHeader(event.target));\n let allowDrop = dragIndex !== dropIndex;\n\n if (allowDrop && ((dropIndex - dragIndex === 1 && this.dropPosition === -1) || (dropIndex - dragIndex === -1 && this.dropPosition === 1))) {\n allowDrop = false;\n }\n\n if (allowDrop) {\n let isSameColumn = (col1, col2) =>\n this.columnProp(col1, 'columnKey') || this.columnProp(col2, 'columnKey') ? this.columnProp(col1, 'columnKey') === this.columnProp(col2, 'columnKey') : this.columnProp(col1, 'field') === this.columnProp(col2, 'field');\n let dragColIndex = this.columns.findIndex((child) => isSameColumn(child, this.draggedColumn));\n let dropColIndex = this.columns.findIndex((child) => isSameColumn(child, column));\n let widths = [];\n let headers = find(this.$el, 'thead[data-pc-section=\"thead\"] > tr > th');\n\n headers.forEach((header) => widths.push(getOuterWidth(header)));\n const movedItem = widths.find((_, index) => index === dragColIndex);\n const remainingItems = widths.filter((_, index) => index !== dragColIndex);\n const reorderedWidths = [...remainingItems.slice(0, dropColIndex), movedItem, ...remainingItems.slice(dropColIndex)];\n\n this.addColumnWidthStyles(reorderedWidths);\n\n if (dropColIndex < dragColIndex && this.dropPosition === 1) {\n dropColIndex++;\n }\n\n if (dropColIndex > dragColIndex && this.dropPosition === -1) {\n dropColIndex--;\n }\n\n reorderArray(this.columns, dragColIndex, dropColIndex);\n this.updateReorderableColumns();\n\n this.$emit('column-reorder', {\n originalEvent: event,\n dragIndex: dragColIndex,\n dropIndex: dropColIndex\n });\n }\n\n this.$refs.reorderIndicatorUp.style.display = 'none';\n this.$refs.reorderIndicatorDown.style.display = 'none';\n this.draggedColumnElement.draggable = false;\n this.draggedColumnElement = null;\n this.draggedColumn = null;\n this.dropPosition = null;\n }\n },\n findParentHeader(element) {\n if (element.nodeName === 'TH') {\n return element;\n } else {\n let parent = element.parentElement;\n\n while (parent.nodeName !== 'TH') {\n parent = parent.parentElement;\n if (!parent) break;\n }\n\n return parent;\n }\n },\n findColumnByKey(columns, key) {\n if (columns && columns.length) {\n for (let i = 0; i < columns.length; i++) {\n let column = columns[i];\n\n if (this.columnProp(column, 'columnKey') === key || this.columnProp(column, 'field') === key) {\n return column;\n }\n }\n }\n\n return null;\n },\n onRowMouseDown(event) {\n if (getAttribute(event.target, 'data-pc-section') === 'reorderablerowhandle' || getAttribute(event.target.parentElement, 'data-pc-section') === 'reorderablerowhandle') event.currentTarget.draggable = true;\n else event.currentTarget.draggable = false;\n },\n onRowDragStart(e) {\n const event = e.originalEvent;\n const index = e.index;\n\n this.rowDragging = true;\n this.draggedRowIndex = index;\n event.dataTransfer.setData('text', 'b'); // For firefox\n },\n onRowDragOver(e) {\n const event = e.originalEvent;\n const index = e.index;\n\n if (this.rowDragging && this.draggedRowIndex !== index) {\n let rowElement = event.currentTarget;\n let rowY = getOffset(rowElement).top;\n let pageY = event.pageY;\n let rowMidY = rowY + getOuterHeight(rowElement) / 2;\n let prevRowElement = rowElement.previousElementSibling;\n\n if (pageY < rowMidY) {\n rowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n\n this.droppedRowIndex = index;\n\n if (prevRowElement) {\n prevRowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'true');\n !this.isUnstyled && addClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n } else {\n rowElement.setAttribute('data-p-datatable-dragpoint-top', 'true');\n !this.isUnstyled && addClass(rowElement, 'p-datatable-dragpoint-top');\n }\n } else {\n if (prevRowElement) {\n prevRowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n } else {\n rowElement.setAttribute('data-p-datatable-dragpoint-top', 'true');\n !this.isUnstyled && addClass(rowElement, 'p-datatable-dragpoint-top');\n }\n\n this.droppedRowIndex = index + 1;\n rowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'true');\n !this.isUnstyled && addClass(rowElement, 'p-datatable-dragpoint-bottom');\n }\n\n event.preventDefault();\n }\n },\n onRowDragLeave(event) {\n let rowElement = event.currentTarget;\n let prevRowElement = rowElement.previousElementSibling;\n\n if (prevRowElement) {\n prevRowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n }\n\n rowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n rowElement.setAttribute('data-p-datatable-dragpoint-top', 'false');\n !this.isUnstyled && removeClass(rowElement, 'p-datatable-dragpoint-top');\n },\n onRowDragEnd(event) {\n this.rowDragging = false;\n this.draggedRowIndex = null;\n this.droppedRowIndex = null;\n event.currentTarget.draggable = false;\n },\n onRowDrop(event) {\n if (this.droppedRowIndex != null) {\n let dropIndex = this.draggedRowIndex > this.droppedRowIndex ? this.droppedRowIndex : this.droppedRowIndex === 0 ? 0 : this.droppedRowIndex - 1;\n let processedData = [...this.processedData];\n\n reorderArray(processedData, this.draggedRowIndex + this.d_first, dropIndex + this.d_first);\n\n this.$emit('row-reorder', {\n originalEvent: event,\n dragIndex: this.draggedRowIndex,\n dropIndex: dropIndex,\n value: processedData\n });\n }\n\n //cleanup\n this.onRowDragLeave(event);\n this.onRowDragEnd(event);\n event.preventDefault();\n },\n toggleRow(event) {\n const { expanded, ...rest } = event;\n const rowData = event.data;\n let expandedRows;\n\n if (this.dataKey) {\n const value = resolveFieldData(rowData, this.dataKey);\n\n expandedRows = this.expandedRows ? { ...this.expandedRows } : {};\n expanded ? (expandedRows[value] = true) : delete expandedRows[value];\n } else {\n expandedRows = this.expandedRows ? [...this.expandedRows] : [];\n expanded ? expandedRows.push(rowData) : (expandedRows = expandedRows.filter((d) => !this.equals(rowData, d)));\n }\n\n this.$emit('update:expandedRows', expandedRows);\n expanded ? this.$emit('row-expand', rest) : this.$emit('row-collapse', rest);\n },\n toggleRowGroup(e) {\n const event = e.originalEvent;\n const data = e.data;\n const groupFieldValue = resolveFieldData(data, this.groupRowsBy);\n let _expandedRowGroups = this.expandedRowGroups ? [...this.expandedRowGroups] : [];\n\n if (this.isRowGroupExpanded(data)) {\n _expandedRowGroups = _expandedRowGroups.filter((group) => group !== groupFieldValue);\n this.$emit('update:expandedRowGroups', _expandedRowGroups);\n this.$emit('rowgroup-collapse', { originalEvent: event, data: groupFieldValue });\n } else {\n _expandedRowGroups.push(groupFieldValue);\n this.$emit('update:expandedRowGroups', _expandedRowGroups);\n this.$emit('rowgroup-expand', { originalEvent: event, data: groupFieldValue });\n }\n },\n isRowGroupExpanded(rowData) {\n if (this.expandableRowGroups && this.expandedRowGroups) {\n let groupFieldValue = resolveFieldData(rowData, this.groupRowsBy);\n\n return this.expandedRowGroups.indexOf(groupFieldValue) > -1;\n }\n\n return false;\n },\n isStateful() {\n return this.stateKey != null;\n },\n getStorage() {\n switch (this.stateStorage) {\n case 'local':\n return window.localStorage;\n\n case 'session':\n return window.sessionStorage;\n\n default:\n throw new Error(this.stateStorage + ' is not a valid value for the state storage, supported values are \"local\" and \"session\".');\n }\n },\n saveState() {\n const storage = this.getStorage();\n let state = {};\n\n if (this.paginator) {\n state.first = this.d_first;\n state.rows = this.d_rows;\n }\n\n if (this.d_sortField) {\n state.sortField = this.d_sortField;\n state.sortOrder = this.d_sortOrder;\n }\n\n if (this.d_multiSortMeta) {\n state.multiSortMeta = this.d_multiSortMeta;\n }\n\n if (this.hasFilters) {\n state.filters = this.filters;\n }\n\n if (this.resizableColumns) {\n this.saveColumnWidths(state);\n }\n\n if (this.reorderableColumns) {\n state.columnOrder = this.d_columnOrder;\n }\n\n if (this.expandedRows) {\n state.expandedRows = this.expandedRows;\n }\n\n if (this.expandedRowGroups) {\n state.expandedRowGroups = this.expandedRowGroups;\n }\n\n if (this.selection) {\n state.selection = this.selection;\n state.selectionKeys = this.d_selectionKeys;\n }\n\n if (Object.keys(state).length) {\n storage.setItem(this.stateKey, JSON.stringify(state));\n }\n\n this.$emit('state-save', state);\n },\n restoreState() {\n const storage = this.getStorage();\n const stateString = storage.getItem(this.stateKey);\n const dateFormat = /\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z/;\n\n const reviver = function (key, value) {\n if (typeof value === 'string' && dateFormat.test(value)) {\n return new Date(value);\n }\n\n return value;\n };\n\n if (stateString) {\n let restoredState = JSON.parse(stateString, reviver);\n\n if (this.paginator) {\n this.d_first = restoredState.first;\n this.d_rows = restoredState.rows;\n }\n\n if (restoredState.sortField) {\n this.d_sortField = restoredState.sortField;\n this.d_sortOrder = restoredState.sortOrder;\n }\n\n if (restoredState.multiSortMeta) {\n this.d_multiSortMeta = restoredState.multiSortMeta;\n }\n\n if (restoredState.filters) {\n this.$emit('update:filters', restoredState.filters);\n }\n\n if (this.resizableColumns) {\n this.columnWidthsState = restoredState.columnWidths;\n this.tableWidthState = restoredState.tableWidth;\n }\n\n if (this.reorderableColumns) {\n this.d_columnOrder = restoredState.columnOrder;\n }\n\n if (restoredState.expandedRows) {\n this.$emit('update:expandedRows', restoredState.expandedRows);\n }\n\n if (restoredState.expandedRowGroups) {\n this.$emit('update:expandedRowGroups', restoredState.expandedRowGroups);\n }\n\n if (restoredState.selection) {\n this.d_selectionKeys = restoredState.d_selectionKeys;\n this.$emit('update:selection', restoredState.selection);\n }\n\n this.$emit('state-restore', restoredState);\n }\n },\n saveColumnWidths(state) {\n let widths = [];\n let headers = find(this.$el, 'thead[data-pc-section=\"thead\"] > tr > th');\n\n headers.forEach((header) => widths.push(getOuterWidth(header)));\n state.columnWidths = widths.join(',');\n\n if (this.columnResizeMode === 'expand') {\n state.tableWidth = getOuterWidth(this.$refs.table) + 'px';\n }\n },\n addColumnWidthStyles(widths) {\n this.createStyleElement();\n\n let innerHTML = '';\n let selector = `[data-pc-name=\"datatable\"][${this.$attrSelector}] > [data-pc-section=\"tablecontainer\"] ${this.virtualScrollerDisabled ? '' : '> [data-pc-name=\"virtualscroller\"]'} > table[data-pc-section=\"table\"]`;\n\n widths.forEach((width, index) => {\n let style = `width: ${width}px !important; max-width: ${width}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 restoreColumnWidths() {\n if (this.columnWidthsState) {\n let widths = this.columnWidthsState.split(',');\n\n if (this.columnResizeMode === 'expand' && this.tableWidthState) {\n this.$refs.table.style.width = this.tableWidthState;\n this.$refs.table.style.minWidth = this.tableWidthState;\n }\n\n if (isNotEmpty(widths)) {\n this.addColumnWidthStyles(widths);\n }\n }\n },\n onCellEditInit(event) {\n this.$emit('cell-edit-init', event);\n },\n onCellEditComplete(event) {\n this.$emit('cell-edit-complete', event);\n },\n onCellEditCancel(event) {\n this.$emit('cell-edit-cancel', event);\n },\n onRowEditInit(event) {\n let _editingRows = this.editingRows ? [...this.editingRows] : [];\n\n _editingRows.push(event.data);\n this.$emit('update:editingRows', _editingRows);\n this.$emit('row-edit-init', event);\n },\n onRowEditSave(event) {\n let _editingRows = [...this.editingRows];\n\n _editingRows.splice(this.findIndex(event.data, _editingRows), 1);\n this.$emit('update:editingRows', _editingRows);\n this.$emit('row-edit-save', event);\n },\n onRowEditCancel(event) {\n let _editingRows = [...this.editingRows];\n\n _editingRows.splice(this.findIndex(event.data, _editingRows), 1);\n this.$emit('update:editingRows', _editingRows);\n this.$emit('row-edit-cancel', event);\n },\n onEditingMetaChange(event) {\n let { data, field, index, editing } = event;\n let editingMeta = { ...this.d_editingMeta };\n let meta = editingMeta[index];\n\n if (editing) {\n !meta && (meta = editingMeta[index] = { data: { ...data }, fields: [] });\n meta['fields'].push(field);\n } else if (meta) {\n const fields = meta['fields'].filter((f) => f !== field);\n\n !fields.length ? delete editingMeta[index] : (meta['fields'] = fields);\n }\n\n this.d_editingMeta = editingMeta;\n },\n clearEditingMetaData() {\n if (this.editMode) {\n this.d_editingMeta = {};\n }\n },\n createLazyLoadEvent(event) {\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.d_filters\n };\n },\n hasGlobalFilter() {\n return this.filters && Object.prototype.hasOwnProperty.call(this.filters, 'global');\n },\n onFilterChange(filters) {\n this.d_filters = filters;\n },\n onFilterApply() {\n this.d_first = 0;\n this.$emit('update:first', this.d_first);\n this.$emit('update:filters', this.d_filters);\n\n if (this.lazy) {\n this.$emit('filter', this.createLazyLoadEvent());\n }\n },\n cloneFilters() {\n let cloned = {};\n\n if (this.filters) {\n Object.entries(this.filters).forEach(([prop, value]) => {\n cloned[prop] = value.operator\n ? {\n operator: value.operator,\n constraints: value.constraints.map((constraint) => {\n return { ...constraint };\n })\n }\n : { ...value };\n });\n }\n\n return cloned;\n },\n updateReorderableColumns() {\n let columnOrder = [];\n\n this.columns.forEach((col) => columnOrder.push(this.columnProp(col, 'columnKey') || this.columnProp(col, 'field')));\n this.d_columnOrder = columnOrder;\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 dataToRender(data) {\n const _data = data || this.processedData;\n\n if (_data && this.paginator) {\n const first = this.lazy ? 0 : this.d_first;\n\n return _data.slice(first, first + this.d_rows);\n }\n\n return _data;\n },\n getVirtualScrollerRef() {\n return this.$refs.virtualScroller;\n },\n hasSpacerStyle(style) {\n return isNotEmpty(style);\n }\n },\n computed: {\n columns() {\n const cols = this.d_columns.get(this);\n\n if (this.reorderableColumns && this.d_columnOrder) {\n let orderedColumns = [];\n\n for (let columnKey of this.d_columnOrder) {\n let column = this.findColumnByKey(cols, columnKey);\n\n if (column && !this.columnProp(column, 'hidden')) {\n orderedColumns.push(column);\n }\n }\n\n return [...orderedColumns, ...cols.filter((item) => orderedColumns.indexOf(item) < 0)];\n }\n\n return cols;\n },\n columnGroups() {\n return this.d_columnGroups.get(this);\n },\n headerColumnGroup() {\n return this.columnGroups?.find((group) => this.columnProp(group, 'type') === 'header');\n },\n footerColumnGroup() {\n return this.columnGroups?.find((group) => this.columnProp(group, 'type') === 'footer');\n },\n hasFilters() {\n return this.filters && Object.keys(this.filters).length > 0 && this.filters.constructor === Object;\n },\n processedData() {\n let data = this.value || [];\n\n if (!this.lazy && !this.virtualScrollerOptions?.lazy) {\n if (data && data.length) {\n if (this.hasFilters) {\n data = this.filter(data);\n }\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 }\n\n return data;\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 empty() {\n const data = this.processedData;\n\n return !data || data.length === 0;\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 sorted() {\n return this.d_sortField || (this.d_multiSortMeta && this.d_multiSortMeta.length > 0);\n },\n allRowsSelected() {\n if (this.selectAll !== null) {\n return this.selectAll;\n } else {\n const val = this.frozenValue ? [...this.frozenValue, ...this.processedData] : this.processedData;\n\n return isNotEmpty(val) && this.selection && Array.isArray(this.selection) && val.every((v) => this.selection.some((s) => this.equals(s, v)));\n }\n },\n groupRowSortField() {\n return this.sortMode === 'single' ? this.sortField : this.d_groupRowsSortMeta ? this.d_groupRowsSortMeta.field : null;\n },\n headerFilterButtonProps() {\n return {\n filter: { severity: 'secondary', text: true, rounded: true },\n ...this.filterButtonProps,\n inline: {\n clear: { severity: 'secondary', text: true, rounded: true },\n ...this.filterButtonProps.inline\n },\n popover: {\n addRule: { severity: 'info', text: true, size: 'small' },\n removeRule: { severity: 'danger', text: true, size: 'small' },\n apply: { size: 'small' },\n clear: { outlined: true, size: 'small' },\n ...this.filterButtonProps.popover\n }\n };\n },\n rowEditButtonProps() {\n return {\n ...{\n init: { severity: 'secondary', text: true, rounded: true },\n save: { severity: 'secondary', text: true, rounded: true },\n cancel: { severity: 'secondary', text: true, rounded: true }\n },\n ...this.editButtonProps\n };\n },\n virtualScrollerDisabled() {\n return isEmpty(this.virtualScrollerOptions) || !this.scrollable;\n }\n },\n components: {\n DTPaginator: Paginator,\n DTTableHeader: TableHeader,\n DTTableBody: TableBody,\n DTTableFooter: TableFooter,\n DTVirtualScroller: VirtualScroller,\n ArrowDownIcon: ArrowDownIcon,\n ArrowUpIcon: ArrowUpIcon,\n SpinnerIcon: SpinnerIcon\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" data-scrollselectors=\".p-datatable-wrapper\" v-bind=\"ptmi('root')\">\n <slot></slot>\n <div v-if=\"loading\" :class=\"cx('mask')\" v-bind=\"ptm('mask')\">\n <slot v-if=\"$slots.loading\" name=\"loading\"></slot>\n <template v-else>\n <component v-if=\"$slots.loadingicon\" :is=\"$slots.loadingicon\" :class=\"cx('loadingIcon')\" />\n <i v-else-if=\"loadingIcon\" :class=\"[cx('loadingIcon'), 'pi-spin', loadingIcon]\" v-bind=\"ptm('loadingIcon')\" />\n <SpinnerIcon v-else spin :class=\"cx('loadingIcon')\" v-bind=\"ptm('loadingIcon')\" />\n </template>\n </div>\n <div v-if=\"$slots.header\" :class=\"cx('header')\" v-bind=\"ptm('header')\">\n <slot name=\"header\"></slot>\n </div>\n <DTPaginator\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>\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 ></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 </DTPaginator>\n <div :class=\"cx('tableContainer')\" :style=\"[sx('tableContainer'), { maxHeight: virtualScrollerDisabled ? scrollHeight : '' }]\" v-bind=\"ptm('tableContainer')\">\n <DTVirtualScroller\n ref=\"virtualScroller\"\n v-bind=\"virtualScrollerOptions\"\n :items=\"processedData\"\n :columns=\"columns\"\n :style=\"scrollHeight !== 'flex' ? { height: scrollHeight } : undefined\"\n :scrollHeight=\"scrollHeight !== 'flex' ? undefined : '100%'\"\n :disabled=\"virtualScrollerDisabled\"\n loaderDisabled\n inline\n autoSize\n :showSpacer=\"false\"\n :pt=\"ptm('virtualScroller')\"\n >\n <template #content=\"slotProps\">\n <table ref=\"table\" role=\"table\" :class=\"[cx('table'), tableClass]\" :style=\"[tableStyle, slotProps.spacerStyle]\" v-bind=\"{ ...tableProps, ...ptm('table') }\">\n <DTTableHeader\n v-if=\"showHeaders\"\n :columnGroup=\"headerColumnGroup\"\n :columns=\"slotProps.columns\"\n :rowGroupMode=\"rowGroupMode\"\n :groupRowsBy=\"groupRowsBy\"\n :groupRowSortField=\"groupRowSortField\"\n :reorderableColumns=\"reorderableColumns\"\n :resizableColumns=\"resizableColumns\"\n :allRowsSelected=\"allRowsSelected\"\n :empty=\"empty\"\n :sortMode=\"sortMode\"\n :sortField=\"d_sortField\"\n :sortOrder=\"d_sortOrder\"\n :multiSortMeta=\"d_multiSortMeta\"\n :filters=\"d_filters\"\n :filtersStore=\"filters\"\n :filterDisplay=\"filterDisplay\"\n :filterButtonProps=\"headerFilterButtonProps\"\n :filterInputProps=\"filterInputProps\"\n :first=\"d_first\"\n @column-click=\"onColumnHeaderClick($event)\"\n @column-mousedown=\"onColumnHeaderMouseDown($event)\"\n @filter-change=\"onFilterChange\"\n @filter-apply=\"onFilterApply\"\n @column-dragstart=\"onColumnHeaderDragStart($event)\"\n @column-dragover=\"onColumnHeaderDragOver($event)\"\n @column-dragleave=\"onColumnHeaderDragLeave($event)\"\n @column-drop=\"onColumnHeaderDrop($event)\"\n @column-resizestart=\"onColumnResizeStart($event)\"\n @checkbox-change=\"toggleRowsWithCheckbox($event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n <DTTableBody\n v-if=\"frozenValue\"\n ref=\"frozenBodyRef\"\n :value=\"frozenValue\"\n :frozenRow=\"true\"\n :columns=\"slotProps.columns\"\n :first=\"d_first\"\n :dataKey=\"dataKey\"\n :selection=\"selection\"\n :selectionKeys=\"d_selectionKeys\"\n :selectionMode=\"selectionMode\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :rowGroupMode=\"rowGroupMode\"\n :groupRowsBy=\"groupRowsBy\"\n :expandableRowGroups=\"expandableRowGroups\"\n :rowClass=\"rowClass\"\n :rowStyle=\"rowStyle\"\n :editMode=\"editMode\"\n :compareSelectionBy=\"compareSelectionBy\"\n :scrollable=\"scrollable\"\n :expandedRowIcon=\"expandedRowIcon\"\n :collapsedRowIcon=\"collapsedRowIcon\"\n :expandedRows=\"expandedRows\"\n :expandedRowGroups=\"expandedRowGroups\"\n :editingRows=\"editingRows\"\n :editingRowKeys=\"d_editingRowKeys\"\n :templates=\"$slots\"\n :editButtonProps=\"rowEditButtonProps\"\n :isVirtualScrollerDisabled=\"true\"\n @rowgroup-toggle=\"toggleRowGroup\"\n @row-click=\"onRowClick($event)\"\n @row-dblclick=\"onRowDblClick($event)\"\n @row-rightclick=\"onRowRightClick($event)\"\n @row-touchend=\"onRowTouchEnd\"\n @row-keydown=\"onRowKeyDown\"\n @row-mousedown=\"onRowMouseDown\"\n @row-dragstart=\"onRowDragStart($event)\"\n @row-dragover=\"onRowDragOver($event)\"\n @row-dragleave=\"onRowDragLeave($event)\"\n @row-dragend=\"onRowDragEnd($event)\"\n @row-drop=\"onRowDrop($event)\"\n @row-toggle=\"toggleRow($event)\"\n @radio-change=\"toggleRowWithRadio($event)\"\n @checkbox-change=\"toggleRowWithCheckbox($event)\"\n @cell-edit-init=\"onCellEditInit($event)\"\n @cell-edit-complete=\"onCellEditComplete($event)\"\n @cell-edit-cancel=\"onCellEditCancel($event)\"\n @row-edit-init=\"onRowEditInit($event)\"\n @row-edit-save=\"onRowEditSave($event)\"\n @row-edit-cancel=\"onRowEditCancel($event)\"\n :editingMeta=\"d_editingMeta\"\n @editing-meta-change=\"onEditingMetaChange\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n <DTTableBody\n ref=\"bodyRef\"\n :value=\"dataToRender(slotProps.rows)\"\n :class=\"slotProps.styleClass\"\n :columns=\"slotProps.columns\"\n :empty=\"empty\"\n :first=\"d_first\"\n :dataKey=\"dataKey\"\n :selection=\"selection\"\n :selectionKeys=\"d_selectionKeys\"\n :selectionMode=\"selectionMode\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :rowGroupMode=\"rowGroupMode\"\n :groupRowsBy=\"groupRowsBy\"\n :expandableRowGroups=\"expandableRowGroups\"\n :rowClass=\"rowClass\"\n :rowStyle=\"rowStyle\"\n :editMode=\"editMode\"\n :compareSelectionBy=\"compareSelectionBy\"\n :scrollable=\"scrollable\"\n :expandedRowIcon=\"expandedRowIcon\"\n :collapsedRowIcon=\"collapsedRowIcon\"\n :expandedRows=\"expandedRows\"\n :expandedRowGroups=\"expandedRowGroups\"\n :editingRows=\"editingRows\"\n :editingRowKeys=\"d_editingRowKeys\"\n :templates=\"$slots\"\n :editButtonProps=\"rowEditButtonProps\"\n :virtualScrollerContentProps=\"slotProps\"\n :isVirtualScrollerDisabled=\"virtualScrollerDisabled\"\n @rowgroup-toggle=\"toggleRowGroup\"\n @row-click=\"onRowClick($event)\"\n @row-dblclick=\"onRowDblClick($event)\"\n @row-rightclick=\"onRowRightClick($event)\"\n @row-touchend=\"onRowTouchEnd\"\n @row-keydown=\"onRowKeyDown($event, slotProps)\"\n @row-mousedown=\"onRowMouseDown\"\n @row-dragstart=\"onRowDragStart($event)\"\n @row-dragover=\"onRowDragOver($event)\"\n @row-dragleave=\"onRowDragLeave($event)\"\n @row-dragend=\"onRowDragEnd($event)\"\n @row-drop=\"onRowDrop($event)\"\n @row-toggle=\"toggleRow($event)\"\n @radio-change=\"toggleRowWithRadio($event)\"\n @checkbox-change=\"toggleRowWithCheckbox($event)\"\n @cell-edit-init=\"onCellEditInit($event)\"\n @cell-edit-complete=\"onCellEditComplete($event)\"\n @cell-edit-cancel=\"onCellEditCancel($event)\"\n @row-edit-init=\"onRowEditInit($event)\"\n @row-edit-save=\"onRowEditSave($event)\"\n @row-edit-cancel=\"onRowEditCancel($event)\"\n :editingMeta=\"d_editingMeta\"\n @editing-meta-change=\"onEditingMetaChange\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n <tbody\n v-if=\"hasSpacerStyle(slotProps.spacerStyle)\"\n :class=\"cx('virtualScrollerSpacer')\"\n :style=\"{ height: `calc(${slotProps.spacerStyle.height} - ${slotProps.rows.length * slotProps.itemSize}px)` }\"\n v-bind=\"ptm('virtualScrollerSpacer')\"\n ></tbody>\n <DTTableFooter :columnGroup=\"footerColumnGroup\" :columns=\"slotProps.columns\" :pt=\"pt\" />\n </table>\n </template>\n </DTVirtualScroller>\n </div>\n <DTPaginator\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 :totalRecords=\"slotProps.totalRecords\"\n :firstPageCallback=\"slotProps.firstPageCallback\"\n :lastPageCallback=\"slotProps.lastPageCallback\"\n :prevPageCallback=\"slotProps.prevPageCallback\"\n :nextPageCallback=\"slotProps.nextPageCallback\"\n :rowChangeCallback=\"slotProps.rowChangeCallback\"\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 </DTPaginator>\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 <span v-if=\"reorderableColumns\" ref=\"reorderIndicatorUp\" :class=\"cx('rowReorderIndicatorUp')\" style=\"position: absolute; display: none\" v-bind=\"ptm('rowReorderIndicatorUp')\">\n <component :is=\"$slots.rowreorderindicatorupicon || $slots.reorderindicatorupicon || 'ArrowDownIcon'\" />\n </span>\n <span v-if=\"reorderableColumns\" ref=\"reorderIndicatorDown\" :class=\"cx('rowReorderIndicatorDown')\" style=\"position: absolute; display: none\" v-bind=\"ptm('rowReorderIndicatorDown')\">\n <component :is=\"$slots.rowreorderindicatordownicon || $slots.reorderindicatordownicon || 'ArrowUpIcon'\" />\n </span>\n </div>\n</template>\n\n<script>\nimport {\n addClass,\n addStyle,\n clearSelection,\n exportCSV,\n find,\n findSingle,\n focus,\n getAttribute,\n getHiddenElementOuterHeight,\n getHiddenElementOuterWidth,\n getIndex,\n getOffset,\n getOuterHeight,\n getOuterWidth,\n isClickable,\n removeClass,\n setAttribute\n} from '@primeuix/utils/dom';\nimport { equals, findIndexInList, isEmpty, isNotEmpty, localeComparator, reorderArray, resolveFieldData, sort } from '@primeuix/utils/object';\nimport { FilterMatchMode, FilterOperator, FilterService } from '@primevue/core/api';\nimport { HelperSet, getVNodeProp } from '@primevue/core/utils';\nimport ArrowDownIcon from '@primevue/icons/arrowdown';\nimport ArrowUpIcon from '@primevue/icons/arrowup';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport Paginator from 'primevue/paginator';\nimport VirtualScroller from 'primevue/virtualscroller';\nimport BaseDataTable from './BaseDataTable.vue';\nimport TableBody from './TableBody.vue';\nimport TableFooter from './TableFooter.vue';\nimport TableHeader from './TableHeader.vue';\n\nexport default {\n name: 'DataTable',\n extends: BaseDataTable,\n inheritAttrs: false,\n emits: [\n 'value-change',\n 'update:first',\n 'update:rows',\n 'page',\n 'update:sortField',\n 'update:sortOrder',\n 'update:multiSortMeta',\n 'sort',\n 'filter',\n 'row-click',\n 'row-dblclick',\n 'update:selection',\n 'row-select',\n 'row-unselect',\n 'update:contextMenuSelection',\n 'row-contextmenu',\n 'row-unselect-all',\n 'row-select-all',\n 'select-all-change',\n 'column-resize-end',\n 'column-reorder',\n 'row-reorder',\n 'update:expandedRows',\n 'row-collapse',\n 'row-expand',\n 'update:expandedRowGroups',\n 'rowgroup-collapse',\n 'rowgroup-expand',\n 'update:filters',\n 'state-restore',\n 'state-save',\n 'cell-edit-init',\n 'cell-edit-complete',\n 'cell-edit-cancel',\n 'update:editingRows',\n 'row-edit-init',\n 'row-edit-save',\n 'row-edit-cancel'\n ],\n provide() {\n return {\n $columns: this.d_columns,\n $columnGroups: this.d_columnGroups\n };\n },\n data() {\n return {\n d_first: this.first,\n d_rows: this.rows,\n d_sortField: this.sortField,\n d_sortOrder: this.sortOrder,\n d_nullSortOrder: this.nullSortOrder,\n d_multiSortMeta: this.multiSortMeta ? [...this.multiSortMeta] : [],\n d_groupRowsSortMeta: null,\n d_selectionKeys: null,\n d_columnOrder: null,\n d_editingRowKeys: null,\n d_editingMeta: {},\n d_filters: this.cloneFilters(this.filters),\n d_columns: new HelperSet({ type: 'Column' }),\n d_columnGroups: new HelperSet({ type: 'ColumnGroup' }),\n isRTL: false\n };\n },\n rowTouched: false,\n anchorRowIndex: null,\n rangeRowIndex: null,\n documentColumnResizeListener: null,\n documentColumnResizeEndListener: null,\n lastResizeHelperX: null,\n resizeColumnElement: null,\n columnResizing: false,\n colReorderIconWidth: null,\n colReorderIconHeight: null,\n draggedColumn: null,\n draggedColumnElement: null,\n draggedRowIndex: null,\n droppedRowIndex: null,\n rowDragging: null,\n columnWidthsState: null,\n tableWidthState: null,\n columnWidthsRestored: false,\n mutationObserver: null,\n watch: {\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 nullSortOrder(newValue) {\n this.d_nullSortOrder = newValue;\n },\n multiSortMeta(newValue) {\n this.d_multiSortMeta = newValue;\n },\n selection: {\n immediate: true,\n handler(newValue) {\n if (this.dataKey) {\n this.updateSelectionKeys(newValue);\n }\n }\n },\n editingRows: {\n immediate: true,\n handler(newValue) {\n if (this.dataKey) {\n this.updateEditingRowKeys(newValue);\n }\n }\n },\n filters: {\n deep: true,\n handler: function (newValue) {\n this.d_filters = this.cloneFilters(newValue);\n }\n }\n },\n mounted() {\n if (this.isStateful()) {\n this.restoreState();\n\n this.resizableColumns && this.restoreColumnWidths();\n }\n\n if (this.editMode === 'row' && this.dataKey && !this.d_editingRowKeys) {\n this.updateEditingRowKeys(this.editingRows);\n }\n\n this.updateDirection();\n this.observeDirectionChanges();\n },\n beforeUnmount() {\n this.unbindColumnResizeEvents();\n this.destroyStyleElement();\n\n this.d_columns.clear();\n this.d_columnGroups.clear();\n\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n },\n updated() {\n if (this.isStateful()) {\n this.saveState();\n }\n\n if (this.editMode === 'row' && this.dataKey && !this.d_editingRowKeys) {\n this.updateEditingRowKeys(this.editingRows);\n }\n },\n methods: {\n updateDirection() {\n this.isRTL = !!this.$el.closest('[dir=\"rtl\"]');\n },\n observeDirectionChanges() {\n const targetNode = document.documentElement;\n const config = { attributes: true, attributeFilter: ['dir'] };\n\n this.mutationObserver = new MutationObserver(() => {\n this.updateDirection();\n });\n\n this.mutationObserver.observe(targetNode, config);\n },\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n onPage(event) {\n this.clearEditingMetaData();\n\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.$emit('update:first', this.d_first);\n this.$emit('update:rows', this.d_rows);\n this.$emit('page', pageEvent);\n this.$nextTick(() => {\n this.$emit('value-change', this.processedData);\n });\n },\n onColumnHeaderClick(e) {\n const event = e.originalEvent;\n const 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\"]') && !targetNode.closest('[data-pc-section=\"columnfilterbutton\"]') && !isClickable(event.target))\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 this.$nextTick(() => {\n this.$emit('value-change', this.processedData);\n });\n }\n }\n },\n sortSingle(value) {\n this.clearEditingMetaData();\n\n if (this.groupRowsBy && this.groupRowsBy === this.sortField) {\n this.d_multiSortMeta = [\n { field: this.sortField, order: this.sortOrder || this.defaultSortOrder },\n { field: this.d_sortField, order: this.d_sortOrder }\n ];\n\n return this.sortMultiple(value);\n }\n\n let data = [...value];\n let resolvedFieldData = new Map();\n\n for (let item of data) {\n resolvedFieldData.set(item, resolveFieldData(item, this.d_sortField));\n }\n\n const comparer = localeComparator();\n\n data.sort((data1, data2) => {\n let value1 = resolvedFieldData.get(data1);\n let value2 = resolvedFieldData.get(data2);\n\n return sort(value1, value2, this.d_sortOrder, comparer, this.d_nullSortOrder);\n });\n\n return data;\n },\n sortMultiple(value) {\n this.clearEditingMetaData();\n\n if (this.groupRowsBy && (this.d_groupRowsSortMeta || (this.d_multiSortMeta.length && this.groupRowsBy === this.d_multiSortMeta[0].field))) {\n const firstSortMeta = this.d_multiSortMeta[0];\n\n !this.d_groupRowsSortMeta && (this.d_groupRowsSortMeta = firstSortMeta);\n\n if (firstSortMeta.field !== this.d_groupRowsSortMeta.field) {\n this.d_multiSortMeta = [this.d_groupRowsSortMeta, ...this.d_multiSortMeta];\n }\n }\n\n let data = [...value];\n\n data.sort((data1, data2) => {\n return this.multisortField(data1, data2, 0);\n });\n\n return data;\n },\n multisortField(data1, data2, index) {\n const value1 = resolveFieldData(data1, this.d_multiSortMeta[index].field);\n const value2 = resolveFieldData(data2, this.d_multiSortMeta[index].field);\n const comparer = localeComparator();\n\n if (value1 === value2) {\n return this.d_multiSortMeta.length - 1 > index ? this.multisortField(data1, data2, index + 1) : 0;\n }\n\n return sort(value1, value2, this.d_multiSortMeta[index].order, comparer, this.d_nullSortOrder);\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 getActiveFilters(filters) {\n const removeEmptyFilters = ([key, value]) => {\n if (value.constraints) {\n const filteredConstraints = value.constraints.filter((constraint) => constraint.value !== null);\n\n if (filteredConstraints.length > 0) {\n return [key, { ...value, constraints: filteredConstraints }];\n }\n } else if (value.value !== null) {\n return [key, value];\n }\n\n return undefined;\n };\n\n const filterValidEntries = (entry) => entry !== undefined;\n const entries = Object.entries(filters).map(removeEmptyFilters).filter(filterValidEntries);\n\n return Object.fromEntries(entries);\n },\n filter(data) {\n if (!data) {\n return;\n }\n\n this.clearEditingMetaData();\n\n let activeFilters = this.getActiveFilters(this.filters);\n let globalFilterFieldsArray;\n\n if (activeFilters['global']) {\n globalFilterFieldsArray = this.globalFilterFields || this.columns.map((col) => this.columnProp(col, 'filterField') || this.columnProp(col, 'field'));\n }\n\n let filteredValue = [];\n\n for (let i = 0; i < data.length; i++) {\n let localMatch = true;\n let globalMatch = false;\n let localFiltered = false;\n\n for (let prop in activeFilters) {\n if (Object.prototype.hasOwnProperty.call(activeFilters, prop) && prop !== 'global') {\n localFiltered = true;\n let filterField = prop;\n let filterMeta = activeFilters[filterField];\n\n if (filterMeta.operator) {\n for (let filterConstraint of filterMeta.constraints) {\n localMatch = this.executeLocalFilter(filterField, data[i], filterConstraint);\n\n if ((filterMeta.operator === FilterOperator.OR && localMatch) || (filterMeta.operator === FilterOperator.AND && !localMatch)) {\n break;\n }\n }\n } else {\n localMatch = this.executeLocalFilter(filterField, data[i], filterMeta);\n }\n\n if (!localMatch) {\n break;\n }\n }\n }\n\n if (localMatch && activeFilters['global'] && !globalMatch && globalFilterFieldsArray) {\n for (let j = 0; j < globalFilterFieldsArray.length; j++) {\n let globalFilterField = globalFilterFieldsArray[j];\n\n globalMatch = FilterService.filters[activeFilters['global'].matchMode || FilterMatchMode.CONTAINS](resolveFieldData(data[i], globalFilterField), activeFilters['global'].value, this.filterLocale);\n\n if (globalMatch) {\n break;\n }\n }\n }\n\n let matches;\n\n if (activeFilters['global']) {\n matches = localFiltered ? localFiltered && localMatch && globalMatch : globalMatch;\n } else {\n matches = localFiltered && localMatch;\n }\n\n if (matches) {\n filteredValue.push(data[i]);\n }\n }\n\n if (filteredValue.length === this.value.length || Object.keys(activeFilters).length == 0) {\n filteredValue = data;\n }\n\n let filterEvent = this.createLazyLoadEvent();\n\n filterEvent.filteredValue = filteredValue;\n this.$emit('filter', filterEvent);\n this.$nextTick(() => {\n this.$emit('value-change', this.processedData);\n });\n\n return filteredValue;\n },\n executeLocalFilter(field, rowData, filterMeta) {\n let filterValue = filterMeta.value;\n let filterMatchMode = filterMeta.matchMode || FilterMatchMode.STARTS_WITH;\n let dataFieldValue = resolveFieldData(rowData, field);\n let filterConstraint = FilterService.filters[filterMatchMode];\n\n return filterConstraint(dataFieldValue, filterValue, this.filterLocale);\n },\n onRowClick(e) {\n const event = e.originalEvent;\n const body = this.$refs.bodyRef && this.$refs.bodyRef.$el;\n const focusedItem = findSingle(body, 'tr[data-p-selectable-row=\"true\"][tabindex=\"0\"]');\n\n if (isClickable(event.target)) {\n return;\n }\n\n this.$emit('row-click', e);\n\n if (this.selectionMode) {\n const rowData = e.data;\n const rowIndex = this.d_first + e.index;\n\n if (this.isMultipleSelectionMode() && event.shiftKey && this.anchorRowIndex != null) {\n clearSelection();\n this.rangeRowIndex = rowIndex;\n this.selectRange(event);\n } else {\n const selected = this.isSelected(rowData);\n const metaSelection = this.rowTouched ? false : this.metaKeySelection;\n\n this.anchorRowIndex = rowIndex;\n this.rangeRowIndex = rowIndex;\n\n if (metaSelection) {\n let metaKey = event.metaKey || event.ctrlKey;\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n this.$emit('update:selection', null);\n } else {\n const selectionIndex = this.findIndexInSelection(rowData);\n const _selection = this.selection.filter((val, i) => i != selectionIndex);\n\n this.$emit('update:selection', _selection);\n }\n\n this.$emit('row-unselect', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n } else {\n if (this.isSingleSelectionMode()) {\n this.$emit('update:selection', rowData);\n } else if (this.isMultipleSelectionMode()) {\n let _selection = metaKey ? this.selection || [] : [];\n\n _selection = [..._selection, rowData];\n this.$emit('update:selection', _selection);\n }\n\n this.$emit('row-select', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n }\n } else {\n if (this.selectionMode === 'single') {\n if (selected) {\n this.$emit('update:selection', null);\n this.$emit('row-unselect', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n } else {\n this.$emit('update:selection', rowData);\n this.$emit('row-select', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n }\n } else if (this.selectionMode === 'multiple') {\n if (selected) {\n const selectionIndex = this.findIndexInSelection(rowData);\n const _selection = this.selection.filter((val, i) => i != selectionIndex);\n\n this.$emit('update:selection', _selection);\n this.$emit('row-unselect', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n } else {\n const _selection = this.selection ? [...this.selection, rowData] : [rowData];\n\n this.$emit('update:selection', _selection);\n this.$emit('row-select', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n }\n }\n }\n }\n }\n\n this.rowTouched = false;\n\n if (focusedItem) {\n if (event.target?.getAttribute('data-pc-section') === 'rowtoggleicon') return;\n\n const targetRow = event.currentTarget?.closest('tr[data-p-selectable-row=\"true\"]');\n\n focusedItem.tabIndex = '-1';\n targetRow.tabIndex = '0';\n }\n },\n onRowDblClick(e) {\n const event = e.originalEvent;\n\n if (isClickable(event.target)) {\n return;\n }\n\n this.$emit('row-dblclick', e);\n },\n onRowRightClick(event) {\n if (this.contextMenu) {\n clearSelection();\n event.originalEvent.target.focus();\n }\n\n this.$emit('update:contextMenuSelection', event.data);\n this.$emit('row-contextmenu', event);\n },\n onRowTouchEnd() {\n this.rowTouched = true;\n },\n onRowKeyDown(e, slotProps) {\n const event = e.originalEvent;\n const rowData = e.data;\n const rowIndex = e.index;\n const metaKey = event.metaKey || event.ctrlKey;\n\n if (this.selectionMode) {\n const row = event.target;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event, row, rowIndex, slotProps);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event, row, rowIndex, slotProps);\n break;\n\n case 'Home':\n this.onHomeKey(event, row, rowIndex, slotProps);\n break;\n\n case 'End':\n this.onEndKey(event, row, rowIndex, slotProps);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event, rowData, rowIndex);\n break;\n\n case 'Space':\n this.onSpaceKey(event, rowData, rowIndex, slotProps);\n break;\n\n case 'Tab':\n this.onTabKey(event, rowIndex);\n break;\n\n default:\n if (event.code === 'KeyA' && metaKey && this.isMultipleSelectionMode()) {\n const data = this.dataToRender(slotProps.rows);\n\n this.$emit('update:selection', data);\n }\n\n event.preventDefault();\n\n break;\n }\n }\n },\n onArrowDownKey(event, row, rowIndex, slotProps) {\n const nextRow = this.findNextSelectableRow(row);\n\n nextRow && this.focusRowChange(row, nextRow);\n\n if (event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n const nextRowIndex = rowIndex + 1 >= data.length ? data.length - 1 : rowIndex + 1;\n\n this.onRowClick({ originalEvent: event, data: data[nextRowIndex], index: nextRowIndex });\n }\n\n event.preventDefault();\n },\n onArrowUpKey(event, row, rowIndex, slotProps) {\n const prevRow = this.findPrevSelectableRow(row);\n\n prevRow && this.focusRowChange(row, prevRow);\n\n if (event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n const prevRowIndex = rowIndex - 1 <= 0 ? 0 : rowIndex - 1;\n\n this.onRowClick({ originalEvent: event, data: data[prevRowIndex], index: prevRowIndex });\n }\n\n event.preventDefault();\n },\n onHomeKey(event, row, rowIndex, slotProps) {\n const firstRow = this.findFirstSelectableRow();\n\n firstRow && this.focusRowChange(row, firstRow);\n\n if (event.ctrlKey && event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n\n this.$emit('update:selection', data.slice(0, rowIndex + 1));\n }\n\n event.preventDefault();\n },\n onEndKey(event, row, rowIndex, slotProps) {\n const lastRow = this.findLastSelectableRow();\n\n lastRow && this.focusRowChange(row, lastRow);\n\n if (event.ctrlKey && event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n\n this.$emit('update:selection', data.slice(rowIndex, data.length));\n }\n\n event.preventDefault();\n },\n onEnterKey(event, rowData, rowIndex) {\n this.onRowClick({ originalEvent: event, data: rowData, index: rowIndex });\n event.preventDefault();\n },\n onSpaceKey(event, rowData, rowIndex, slotProps) {\n this.onEnterKey(event, rowData, rowIndex);\n\n if (event.shiftKey && this.selection !== null) {\n const data = this.dataToRender(slotProps.rows);\n let index;\n\n if (this.selection.length > 0) {\n let firstSelectedRowIndex, lastSelectedRowIndex;\n\n firstSelectedRowIndex = findIndexInList(this.selection[0], data);\n lastSelectedRowIndex = findIndexInList(this.selection[this.selection.length - 1], data);\n\n index = rowIndex <= firstSelectedRowIndex ? lastSelectedRowIndex : firstSelectedRowIndex;\n } else {\n index = findIndexInList(this.selection, data);\n }\n\n const _selection = index !== rowIndex ? data.slice(Math.min(index, rowIndex), Math.max(index, rowIndex) + 1) : rowData;\n\n this.$emit('update:selection', _selection);\n }\n },\n onTabKey(event, rowIndex) {\n const body = this.$refs.bodyRef && this.$refs.bodyRef.$el;\n const rows = find(body, 'tr[data-p-selectable-row=\"true\"]');\n\n if (event.code === 'Tab' && rows && rows.length > 0) {\n const firstSelectedRow = findSingle(body, 'tr[data-p-selected=\"true\"]');\n const focusedItem = findSingle(body, 'tr[data-p-selectable-row=\"true\"][tabindex=\"0\"]');\n\n if (firstSelectedRow) {\n firstSelectedRow.tabIndex = '0';\n focusedItem && focusedItem !== firstSelectedRow && (focusedItem.tabIndex = '-1');\n } else {\n rows[0].tabIndex = '0';\n focusedItem !== rows[0] && (rows[rowIndex].tabIndex = '-1');\n }\n }\n },\n findNextSelectableRow(row) {\n let nextRow = row.nextElementSibling;\n\n if (nextRow) {\n if (getAttribute(nextRow, 'data-p-selectable-row') === true) return nextRow;\n else return this.findNextSelectableRow(nextRow);\n } else {\n return null;\n }\n },\n findPrevSelectableRow(row) {\n let prevRow = row.previousElementSibling;\n\n if (prevRow) {\n if (getAttribute(prevRow, 'data-p-selectable-row') === true) return prevRow;\n else return this.findPrevSelectableRow(prevRow);\n } else {\n return null;\n }\n },\n findFirstSelectableRow() {\n const firstRow = findSingle(this.$refs.table, 'tr[data-p-selectable-row=\"true\"]');\n\n return firstRow;\n },\n findLastSelectableRow() {\n const rows = find(this.$refs.table, 'tr[data-p-selectable-row=\"true\"]');\n\n return rows ? rows[rows.length - 1] : null;\n },\n focusRowChange(firstFocusableRow, currentFocusedRow) {\n firstFocusableRow.tabIndex = '-1';\n currentFocusedRow.tabIndex = '0';\n focus(currentFocusedRow);\n },\n toggleRowWithRadio(event) {\n const rowData = event.data;\n\n if (this.isSelected(rowData)) {\n this.$emit('update:selection', null);\n this.$emit('row-unselect', { originalEvent: event.originalEvent, data: rowData, index: event.index, type: 'radiobutton' });\n } else {\n this.$emit('update:selection', rowData);\n this.$emit('row-select', { originalEvent: event.originalEvent, data: rowData, index: event.index, type: 'radiobutton' });\n }\n },\n toggleRowWithCheckbox(event) {\n const rowData = event.data;\n\n if (this.isSelected(rowData)) {\n const selectionIndex = this.findIndexInSelection(rowData);\n const _selection = this.selection.filter((val, i) => i != selectionIndex);\n\n this.$emit('update:selection', _selection);\n this.$emit('row-unselect', { originalEvent: event.originalEvent, data: rowData, index: event.index, type: 'checkbox' });\n } else {\n let _selection = this.selection ? [...this.selection] : [];\n\n _selection = [..._selection, rowData];\n this.$emit('update:selection', _selection);\n this.$emit('row-select', { originalEvent: event.originalEvent, data: rowData, index: event.index, type: 'checkbox' });\n }\n },\n toggleRowsWithCheckbox(event) {\n if (this.selectAll !== null) {\n this.$emit('select-all-change', event);\n } else {\n const { originalEvent, checked } = event;\n let _selection = [];\n\n if (checked) {\n _selection = this.frozenValue ? [...this.frozenValue, ...this.processedData] : this.processedData;\n this.$emit('row-select-all', { originalEvent, data: _selection });\n } else {\n this.$emit('row-unselect-all', { originalEvent });\n }\n\n this.$emit('update:selection', _selection);\n }\n },\n isSingleSelectionMode() {\n return this.selectionMode === 'single';\n },\n isMultipleSelectionMode() {\n return this.selectionMode === 'multiple';\n },\n isSelected(rowData) {\n if (rowData && this.selection) {\n if (this.dataKey) {\n return this.d_selectionKeys ? this.d_selectionKeys[resolveFieldData(rowData, this.dataKey)] !== undefined : false;\n } else {\n if (this.selection instanceof Array) return this.findIndexInSelection(rowData) > -1;\n else return this.equals(rowData, this.selection);\n }\n }\n\n return false;\n },\n findIndexInSelection(rowData) {\n return this.findIndex(rowData, this.selection);\n },\n findIndex(rowData, collection) {\n let index = -1;\n\n if (collection && collection.length) {\n for (let i = 0; i < collection.length; i++) {\n if (this.equals(rowData, collection[i])) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n },\n updateSelectionKeys(selection) {\n this.d_selectionKeys = {};\n\n if (Array.isArray(selection)) {\n for (let data of selection) {\n this.d_selectionKeys[String(resolveFieldData(data, this.dataKey))] = 1;\n }\n } else {\n this.d_selectionKeys[String(resolveFieldData(selection, this.dataKey))] = 1;\n }\n },\n updateEditingRowKeys(editingRows) {\n if (editingRows && editingRows.length) {\n this.d_editingRowKeys = {};\n\n for (let data of editingRows) {\n this.d_editingRowKeys[String(resolveFieldData(data, this.dataKey))] = 1;\n }\n } else {\n this.d_editingRowKeys = null;\n }\n },\n equals(data1, data2) {\n return this.compareSelectionBy === 'equals' ? data1 === data2 : equals(data1, data2, this.dataKey);\n },\n selectRange(event) {\n let rangeStart, rangeEnd;\n\n if (this.rangeRowIndex > this.anchorRowIndex) {\n rangeStart = this.anchorRowIndex;\n rangeEnd = this.rangeRowIndex;\n } else if (this.rangeRowIndex < this.anchorRowIndex) {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.anchorRowIndex;\n } else {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.rangeRowIndex;\n }\n\n if (this.lazy && this.paginator) {\n rangeStart -= this.first;\n rangeEnd -= this.first;\n }\n\n const value = this.processedData;\n let _selection = [];\n\n for (let i = rangeStart; i <= rangeEnd; i++) {\n let rangeRowData = value[i];\n\n _selection.push(rangeRowData);\n this.$emit('row-select', { originalEvent: event, data: rangeRowData, type: 'row' });\n }\n\n this.$emit('update:selection', _selection);\n },\n exportCSV(options, data) {\n let csv = '\\ufeff';\n\n if (!data) {\n data = this.processedData;\n\n if (options && options.selectionOnly) data = this.selection || [];\n else if (this.frozenValue) data = data ? [...this.frozenValue, ...data] : this.frozenValue;\n }\n\n //headers\n let headerInitiated = false;\n\n for (let i = 0; i < this.columns.length; i++) {\n let column = this.columns[i];\n\n if (this.columnProp(column, 'exportable') !== false && this.columnProp(column, 'field')) {\n if (headerInitiated) csv += this.csvSeparator;\n else headerInitiated = true;\n\n csv += '\"' + (this.columnProp(column, 'exportHeader') || this.columnProp(column, 'header') || this.columnProp(column, 'field')) + '\"';\n }\n }\n\n //body\n if (data) {\n data.forEach((record) => {\n csv += '\\n';\n let rowInitiated = false;\n\n for (let i = 0; i < this.columns.length; i++) {\n let column = this.columns[i];\n\n if (this.columnProp(column, 'exportable') !== false && this.columnProp(column, 'field')) {\n if (rowInitiated) csv += this.csvSeparator;\n else rowInitiated = true;\n\n let cellData = resolveFieldData(record, this.columnProp(column, 'field'));\n\n if (cellData != null) {\n if (this.exportFunction) {\n cellData = this.exportFunction({\n data: cellData,\n field: this.columnProp(column, 'field')\n });\n } else cellData = String(cellData).replace(/\"/g, '\"\"');\n } else cellData = '';\n\n csv += '\"' + cellData + '\"';\n }\n }\n });\n }\n\n //footers\n let footerInitiated = false;\n\n for (let i = 0; i < this.columns.length; i++) {\n let column = this.columns[i];\n\n if (i === 0) csv += '\\n';\n\n if (this.columnProp(column, 'exportable') !== false && this.columnProp(column, 'exportFooter')) {\n if (footerInitiated) csv += this.csvSeparator;\n else footerInitiated = true;\n\n csv += '\"' + (this.columnProp(column, 'exportFooter') || this.columnProp(column, 'footer') || this.columnProp(column, 'field')) + '\"';\n }\n }\n\n exportCSV(csv, this.exportFilename);\n },\n resetPage() {\n this.d_first = 0;\n this.$emit('update:first', this.d_first);\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 = this.isRTL ? 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 if (!this.virtualScrollerDisabled) {\n const body = this.$refs.bodyRef && this.$refs.bodyRef.$el;\n const frozenBody = this.$refs.frozenBodyRef && this.$refs.frozenBodyRef.$el;\n\n updateTableWidth(body);\n updateTableWidth(frozenBody);\n }\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 if (this.isStateful()) {\n this.saveState();\n }\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=\"datatable\"][${this.$attrSelector}] > [data-pc-section=\"tablecontainer\"] ${this.virtualScrollerDisabled ? '' : '> [data-pc-name=\"virtualscroller\"]'} > 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', () => {\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 onColumnHeaderMouseDown(e) {\n const event = e.originalEvent;\n const column = e.column;\n\n if (this.reorderableColumns && this.columnProp(column, 'reorderableColumn') !== false) {\n if (event.target.nodeName === 'INPUT' || event.target.nodeName === 'TEXTAREA' || getAttribute(event.target, '[data-pc-section=\"columnresizer\"]')) event.currentTarget.draggable = false;\n else event.currentTarget.draggable = true;\n }\n },\n onColumnHeaderDragStart(e) {\n const { originalEvent: event, column } = e;\n\n if (this.columnResizing) {\n event.preventDefault();\n\n return;\n }\n\n this.colReorderIconWidth = getHiddenElementOuterWidth(this.$refs.reorderIndicatorUp);\n this.colReorderIconHeight = getHiddenElementOuterHeight(this.$refs.reorderIndicatorUp);\n\n this.draggedColumn = column;\n this.draggedColumnElement = this.findParentHeader(event.target);\n event.dataTransfer.setData('text', 'b'); // Firefox requires this to make dragging possible\n },\n onColumnHeaderDragOver(e) {\n const { originalEvent: event, column } = e;\n let dropHeader = this.findParentHeader(event.target);\n\n if (this.reorderableColumns && this.draggedColumnElement && dropHeader && !this.columnProp(column, 'frozen')) {\n event.preventDefault();\n let containerOffset = getOffset(this.$el);\n let dropHeaderOffset = getOffset(dropHeader);\n\n if (this.draggedColumnElement !== dropHeader) {\n let targetLeft = dropHeaderOffset.left - containerOffset.left;\n let columnCenter = dropHeaderOffset.left + dropHeader.offsetWidth / 2;\n\n this.$refs.reorderIndicatorUp.style.top = dropHeaderOffset.top - containerOffset.top - (this.colReorderIconHeight - 1) + 'px';\n this.$refs.reorderIndicatorDown.style.top = dropHeaderOffset.top - containerOffset.top + dropHeader.offsetHeight + 'px';\n\n if (event.pageX > columnCenter) {\n this.$refs.reorderIndicatorUp.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.$refs.reorderIndicatorDown.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.dropPosition = 1;\n } else {\n this.$refs.reorderIndicatorUp.style.left = targetLeft - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.$refs.reorderIndicatorDown.style.left = targetLeft - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.dropPosition = -1;\n }\n\n this.$refs.reorderIndicatorUp.style.display = 'block';\n this.$refs.reorderIndicatorDown.style.display = 'block';\n }\n }\n },\n onColumnHeaderDragLeave(e) {\n const { originalEvent: event } = e;\n\n if (this.reorderableColumns && this.draggedColumnElement) {\n event.preventDefault();\n this.$refs.reorderIndicatorUp.style.display = 'none';\n this.$refs.reorderIndicatorDown.style.display = 'none';\n }\n },\n onColumnHeaderDrop(e) {\n const { originalEvent: event, column } = e;\n\n event.preventDefault();\n\n if (this.draggedColumnElement) {\n let dragIndex = getIndex(this.draggedColumnElement);\n let dropIndex = getIndex(this.findParentHeader(event.target));\n let allowDrop = dragIndex !== dropIndex;\n\n if (allowDrop && ((dropIndex - dragIndex === 1 && this.dropPosition === -1) || (dropIndex - dragIndex === -1 && this.dropPosition === 1))) {\n allowDrop = false;\n }\n\n if (allowDrop) {\n let isSameColumn = (col1, col2) =>\n this.columnProp(col1, 'columnKey') || this.columnProp(col2, 'columnKey') ? this.columnProp(col1, 'columnKey') === this.columnProp(col2, 'columnKey') : this.columnProp(col1, 'field') === this.columnProp(col2, 'field');\n let dragColIndex = this.columns.findIndex((child) => isSameColumn(child, this.draggedColumn));\n let dropColIndex = this.columns.findIndex((child) => isSameColumn(child, column));\n let widths = [];\n let headers = find(this.$el, 'thead[data-pc-section=\"thead\"] > tr > th');\n\n headers.forEach((header) => widths.push(getOuterWidth(header)));\n const movedItem = widths.find((_, index) => index === dragColIndex);\n const remainingItems = widths.filter((_, index) => index !== dragColIndex);\n const reorderedWidths = [...remainingItems.slice(0, dropColIndex), movedItem, ...remainingItems.slice(dropColIndex)];\n\n this.addColumnWidthStyles(reorderedWidths);\n\n if (dropColIndex < dragColIndex && this.dropPosition === 1) {\n dropColIndex++;\n }\n\n if (dropColIndex > dragColIndex && this.dropPosition === -1) {\n dropColIndex--;\n }\n\n reorderArray(this.columns, dragColIndex, dropColIndex);\n this.updateReorderableColumns();\n\n this.$emit('column-reorder', {\n originalEvent: event,\n dragIndex: dragColIndex,\n dropIndex: dropColIndex\n });\n }\n\n this.$refs.reorderIndicatorUp.style.display = 'none';\n this.$refs.reorderIndicatorDown.style.display = 'none';\n this.draggedColumnElement.draggable = false;\n this.draggedColumnElement = null;\n this.draggedColumn = null;\n this.dropPosition = null;\n }\n },\n findParentHeader(element) {\n if (element.nodeName === 'TH') {\n return element;\n } else {\n let parent = element.parentElement;\n\n while (parent.nodeName !== 'TH') {\n parent = parent.parentElement;\n if (!parent) break;\n }\n\n return parent;\n }\n },\n findColumnByKey(columns, key) {\n if (columns && columns.length) {\n for (let i = 0; i < columns.length; i++) {\n let column = columns[i];\n\n if (this.columnProp(column, 'columnKey') === key || this.columnProp(column, 'field') === key) {\n return column;\n }\n }\n }\n\n return null;\n },\n onRowMouseDown(event) {\n if (getAttribute(event.target, 'data-pc-section') === 'reorderablerowhandle' || getAttribute(event.target.parentElement, 'data-pc-section') === 'reorderablerowhandle') event.currentTarget.draggable = true;\n else event.currentTarget.draggable = false;\n },\n onRowDragStart(e) {\n const event = e.originalEvent;\n const index = e.index;\n\n this.rowDragging = true;\n this.draggedRowIndex = index;\n event.dataTransfer.setData('text', 'b'); // For firefox\n },\n onRowDragOver(e) {\n const event = e.originalEvent;\n const index = e.index;\n\n if (this.rowDragging && this.draggedRowIndex !== index) {\n let rowElement = event.currentTarget;\n let rowY = getOffset(rowElement).top;\n let pageY = event.pageY;\n let rowMidY = rowY + getOuterHeight(rowElement) / 2;\n let prevRowElement = rowElement.previousElementSibling;\n\n if (pageY < rowMidY) {\n rowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n\n this.droppedRowIndex = index;\n\n if (prevRowElement) {\n prevRowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'true');\n !this.isUnstyled && addClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n } else {\n rowElement.setAttribute('data-p-datatable-dragpoint-top', 'true');\n !this.isUnstyled && addClass(rowElement, 'p-datatable-dragpoint-top');\n }\n } else {\n if (prevRowElement) {\n prevRowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n } else {\n rowElement.setAttribute('data-p-datatable-dragpoint-top', 'true');\n !this.isUnstyled && addClass(rowElement, 'p-datatable-dragpoint-top');\n }\n\n this.droppedRowIndex = index + 1;\n rowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'true');\n !this.isUnstyled && addClass(rowElement, 'p-datatable-dragpoint-bottom');\n }\n\n event.preventDefault();\n }\n },\n onRowDragLeave(event) {\n let rowElement = event.currentTarget;\n let prevRowElement = rowElement.previousElementSibling;\n\n if (prevRowElement) {\n prevRowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n }\n\n rowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n rowElement.setAttribute('data-p-datatable-dragpoint-top', 'false');\n !this.isUnstyled && removeClass(rowElement, 'p-datatable-dragpoint-top');\n },\n onRowDragEnd(event) {\n this.rowDragging = false;\n this.draggedRowIndex = null;\n this.droppedRowIndex = null;\n event.currentTarget.draggable = false;\n },\n onRowDrop(event) {\n if (this.droppedRowIndex != null) {\n let dropIndex = this.draggedRowIndex > this.droppedRowIndex ? this.droppedRowIndex : this.droppedRowIndex === 0 ? 0 : this.droppedRowIndex - 1;\n let processedData = [...this.processedData];\n\n reorderArray(processedData, this.draggedRowIndex + this.d_first, dropIndex + this.d_first);\n\n this.$emit('row-reorder', {\n originalEvent: event,\n dragIndex: this.draggedRowIndex,\n dropIndex: dropIndex,\n value: processedData\n });\n }\n\n //cleanup\n this.onRowDragLeave(event);\n this.onRowDragEnd(event);\n event.preventDefault();\n },\n toggleRow(event) {\n const { expanded, ...rest } = event;\n const rowData = event.data;\n let expandedRows;\n\n if (this.dataKey) {\n const value = resolveFieldData(rowData, this.dataKey);\n\n expandedRows = this.expandedRows ? { ...this.expandedRows } : {};\n expanded ? (expandedRows[value] = true) : delete expandedRows[value];\n } else {\n expandedRows = this.expandedRows ? [...this.expandedRows] : [];\n expanded ? expandedRows.push(rowData) : (expandedRows = expandedRows.filter((d) => !this.equals(rowData, d)));\n }\n\n this.$emit('update:expandedRows', expandedRows);\n expanded ? this.$emit('row-expand', rest) : this.$emit('row-collapse', rest);\n },\n toggleRowGroup(e) {\n const event = e.originalEvent;\n const data = e.data;\n const groupFieldValue = resolveFieldData(data, this.groupRowsBy);\n let _expandedRowGroups = this.expandedRowGroups ? [...this.expandedRowGroups] : [];\n\n if (this.isRowGroupExpanded(data)) {\n _expandedRowGroups = _expandedRowGroups.filter((group) => group !== groupFieldValue);\n this.$emit('update:expandedRowGroups', _expandedRowGroups);\n this.$emit('rowgroup-collapse', { originalEvent: event, data: groupFieldValue });\n } else {\n _expandedRowGroups.push(groupFieldValue);\n this.$emit('update:expandedRowGroups', _expandedRowGroups);\n this.$emit('rowgroup-expand', { originalEvent: event, data: groupFieldValue });\n }\n },\n isRowGroupExpanded(rowData) {\n if (this.expandableRowGroups && this.expandedRowGroups) {\n let groupFieldValue = resolveFieldData(rowData, this.groupRowsBy);\n\n return this.expandedRowGroups.indexOf(groupFieldValue) > -1;\n }\n\n return false;\n },\n isStateful() {\n return this.stateKey != null;\n },\n getStorage() {\n switch (this.stateStorage) {\n case 'local':\n return window.localStorage;\n\n case 'session':\n return window.sessionStorage;\n\n default:\n throw new Error(this.stateStorage + ' is not a valid value for the state storage, supported values are \"local\" and \"session\".');\n }\n },\n saveState() {\n const storage = this.getStorage();\n let state = {};\n\n if (this.paginator) {\n state.first = this.d_first;\n state.rows = this.d_rows;\n }\n\n if (this.d_sortField) {\n state.sortField = this.d_sortField;\n state.sortOrder = this.d_sortOrder;\n }\n\n if (this.d_multiSortMeta) {\n state.multiSortMeta = this.d_multiSortMeta;\n }\n\n if (this.hasFilters) {\n state.filters = this.filters;\n }\n\n if (this.resizableColumns) {\n this.saveColumnWidths(state);\n }\n\n if (this.reorderableColumns) {\n state.columnOrder = this.d_columnOrder;\n }\n\n if (this.expandedRows) {\n state.expandedRows = this.expandedRows;\n }\n\n if (this.expandedRowGroups) {\n state.expandedRowGroups = this.expandedRowGroups;\n }\n\n if (this.selection) {\n state.selection = this.selection;\n state.selectionKeys = this.d_selectionKeys;\n }\n\n if (Object.keys(state).length) {\n storage.setItem(this.stateKey, JSON.stringify(state));\n }\n\n this.$emit('state-save', state);\n },\n restoreState() {\n const storage = this.getStorage();\n const stateString = storage.getItem(this.stateKey);\n const dateFormat = /\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z/;\n\n const reviver = function (key, value) {\n if (typeof value === 'string' && dateFormat.test(value)) {\n return new Date(value);\n }\n\n return value;\n };\n\n if (stateString) {\n let restoredState = JSON.parse(stateString, reviver);\n\n if (this.paginator) {\n this.d_first = restoredState.first;\n this.d_rows = restoredState.rows;\n }\n\n if (restoredState.sortField) {\n this.d_sortField = restoredState.sortField;\n this.d_sortOrder = restoredState.sortOrder;\n }\n\n if (restoredState.multiSortMeta) {\n this.d_multiSortMeta = restoredState.multiSortMeta;\n }\n\n if (restoredState.filters) {\n this.$emit('update:filters', restoredState.filters);\n }\n\n if (this.resizableColumns) {\n this.columnWidthsState = restoredState.columnWidths;\n this.tableWidthState = restoredState.tableWidth;\n }\n\n if (this.reorderableColumns) {\n this.d_columnOrder = restoredState.columnOrder;\n }\n\n if (restoredState.expandedRows) {\n this.$emit('update:expandedRows', restoredState.expandedRows);\n }\n\n if (restoredState.expandedRowGroups) {\n this.$emit('update:expandedRowGroups', restoredState.expandedRowGroups);\n }\n\n if (restoredState.selection) {\n this.d_selectionKeys = restoredState.d_selectionKeys;\n this.$emit('update:selection', restoredState.selection);\n }\n\n this.$emit('state-restore', restoredState);\n }\n },\n saveColumnWidths(state) {\n let widths = [];\n let headers = find(this.$el, 'thead[data-pc-section=\"thead\"] > tr > th');\n\n headers.forEach((header) => widths.push(getOuterWidth(header)));\n state.columnWidths = widths.join(',');\n\n if (this.columnResizeMode === 'expand') {\n state.tableWidth = getOuterWidth(this.$refs.table) + 'px';\n }\n },\n addColumnWidthStyles(widths) {\n this.createStyleElement();\n\n let innerHTML = '';\n let selector = `[data-pc-name=\"datatable\"][${this.$attrSelector}] > [data-pc-section=\"tablecontainer\"] ${this.virtualScrollerDisabled ? '' : '> [data-pc-name=\"virtualscroller\"]'} > table[data-pc-section=\"table\"]`;\n\n widths.forEach((width, index) => {\n let style = `width: ${width}px !important; max-width: ${width}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 restoreColumnWidths() {\n if (this.columnWidthsState) {\n let widths = this.columnWidthsState.split(',');\n\n if (this.columnResizeMode === 'expand' && this.tableWidthState) {\n this.$refs.table.style.width = this.tableWidthState;\n this.$refs.table.style.minWidth = this.tableWidthState;\n }\n\n if (isNotEmpty(widths)) {\n this.addColumnWidthStyles(widths);\n }\n }\n },\n onCellEditInit(event) {\n this.$emit('cell-edit-init', event);\n },\n onCellEditComplete(event) {\n this.$emit('cell-edit-complete', event);\n },\n onCellEditCancel(event) {\n this.$emit('cell-edit-cancel', event);\n },\n onRowEditInit(event) {\n let _editingRows = this.editingRows ? [...this.editingRows] : [];\n\n _editingRows.push(event.data);\n this.$emit('update:editingRows', _editingRows);\n this.$emit('row-edit-init', event);\n },\n onRowEditSave(event) {\n let _editingRows = [...this.editingRows];\n\n _editingRows.splice(this.findIndex(event.data, _editingRows), 1);\n this.$emit('update:editingRows', _editingRows);\n this.$emit('row-edit-save', event);\n },\n onRowEditCancel(event) {\n let _editingRows = [...this.editingRows];\n\n _editingRows.splice(this.findIndex(event.data, _editingRows), 1);\n this.$emit('update:editingRows', _editingRows);\n this.$emit('row-edit-cancel', event);\n },\n onEditingMetaChange(event) {\n let { data, field, index, editing } = event;\n let editingMeta = { ...this.d_editingMeta };\n let meta = editingMeta[index];\n\n if (editing) {\n !meta && (meta = editingMeta[index] = { data: { ...data }, fields: [] });\n meta['fields'].push(field);\n } else if (meta) {\n const fields = meta['fields'].filter((f) => f !== field);\n\n !fields.length ? delete editingMeta[index] : (meta['fields'] = fields);\n }\n\n this.d_editingMeta = editingMeta;\n },\n clearEditingMetaData() {\n if (this.editMode) {\n this.d_editingMeta = {};\n }\n },\n createLazyLoadEvent(event) {\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.d_filters\n };\n },\n hasGlobalFilter() {\n return this.filters && Object.prototype.hasOwnProperty.call(this.filters, 'global');\n },\n onFilterChange(filters) {\n this.d_filters = filters;\n },\n onFilterApply() {\n this.d_first = 0;\n this.$emit('update:first', this.d_first);\n this.$emit('update:filters', this.d_filters);\n\n if (this.lazy) {\n this.$emit('filter', this.createLazyLoadEvent());\n }\n },\n cloneFilters() {\n let cloned = {};\n\n if (this.filters) {\n Object.entries(this.filters).forEach(([prop, value]) => {\n cloned[prop] = value.operator\n ? {\n operator: value.operator,\n constraints: value.constraints.map((constraint) => {\n return { ...constraint };\n })\n }\n : { ...value };\n });\n }\n\n return cloned;\n },\n updateReorderableColumns() {\n let columnOrder = [];\n\n this.columns.forEach((col) => columnOrder.push(this.columnProp(col, 'columnKey') || this.columnProp(col, 'field')));\n this.d_columnOrder = columnOrder;\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 dataToRender(data) {\n const _data = data || this.processedData;\n\n if (_data && this.paginator) {\n const first = this.lazy ? 0 : this.d_first;\n\n return _data.slice(first, first + this.d_rows);\n }\n\n return _data;\n },\n getVirtualScrollerRef() {\n return this.$refs.virtualScroller;\n },\n hasSpacerStyle(style) {\n return isNotEmpty(style);\n }\n },\n computed: {\n columns() {\n const cols = this.d_columns.get(this);\n\n if (this.reorderableColumns && this.d_columnOrder) {\n let orderedColumns = [];\n\n for (let columnKey of this.d_columnOrder) {\n let column = this.findColumnByKey(cols, columnKey);\n\n if (column && !this.columnProp(column, 'hidden')) {\n orderedColumns.push(column);\n }\n }\n\n return [...orderedColumns, ...cols.filter((item) => orderedColumns.indexOf(item) < 0)];\n }\n\n return cols;\n },\n columnGroups() {\n return this.d_columnGroups.get(this);\n },\n headerColumnGroup() {\n return this.columnGroups?.find((group) => this.columnProp(group, 'type') === 'header');\n },\n footerColumnGroup() {\n return this.columnGroups?.find((group) => this.columnProp(group, 'type') === 'footer');\n },\n hasFilters() {\n return this.filters && Object.keys(this.filters).length > 0 && this.filters.constructor === Object;\n },\n processedData() {\n let data = this.value || [];\n\n if (!this.lazy && !this.virtualScrollerOptions?.lazy) {\n if (data && data.length) {\n if (this.hasFilters) {\n data = this.filter(data);\n }\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 }\n\n return data;\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 empty() {\n const data = this.processedData;\n\n return !data || data.length === 0;\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 sorted() {\n return this.d_sortField || (this.d_multiSortMeta && this.d_multiSortMeta.length > 0);\n },\n allRowsSelected() {\n if (this.selectAll !== null) {\n return this.selectAll;\n } else {\n const val = this.frozenValue ? [...this.frozenValue, ...this.processedData] : this.processedData;\n\n return isNotEmpty(val) && this.selection && Array.isArray(this.selection) && val.every((v) => this.selection.some((s) => this.equals(s, v)));\n }\n },\n groupRowSortField() {\n return this.sortMode === 'single' ? this.sortField : this.d_groupRowsSortMeta ? this.d_groupRowsSortMeta.field : null;\n },\n headerFilterButtonProps() {\n return {\n filter: { severity: 'secondary', text: true, rounded: true },\n ...this.filterButtonProps,\n inline: {\n clear: { severity: 'secondary', text: true, rounded: true },\n ...this.filterButtonProps.inline\n },\n popover: {\n addRule: { severity: 'info', text: true, size: 'small' },\n removeRule: { severity: 'danger', text: true, size: 'small' },\n apply: { size: 'small' },\n clear: { outlined: true, size: 'small' },\n ...this.filterButtonProps.popover\n }\n };\n },\n rowEditButtonProps() {\n return {\n ...{\n init: { severity: 'secondary', text: true, rounded: true },\n save: { severity: 'secondary', text: true, rounded: true },\n cancel: { severity: 'secondary', text: true, rounded: true }\n },\n ...this.editButtonProps\n };\n },\n virtualScrollerDisabled() {\n return isEmpty(this.virtualScrollerOptions) || !this.scrollable;\n }\n },\n components: {\n DTPaginator: Paginator,\n DTTableHeader: TableHeader,\n DTTableBody: TableBody,\n DTTableFooter: TableFooter,\n DTVirtualScroller: VirtualScroller,\n ArrowDownIcon: ArrowDownIcon,\n ArrowUpIcon: ArrowUpIcon,\n SpinnerIcon: SpinnerIcon\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","value","type","Array","dataKey","String","Function","rows","Number","first","totalRecords","paginator","Boolean","paginatorPosition","alwaysShowPaginator","paginatorTemplate","Object","pageLinkSize","rowsPerPageOptions","currentPageReportTemplate","lazy","loading","loadingIcon","undefined","sortField","sortOrder","defaultSortOrder","nullSortOrder","multiSortMeta","sortMode","removableSort","filters","filterDisplay","globalFilterFields","filterLocale","selection","selectionMode","compareSelectionBy","metaKeySelection","contextMenu","contextMenuSelection","selectAll","rowHover","csvSeparator","exportFilename","exportFunction","resizableColumns","columnResizeMode","reorderableColumns","expandedRows","expandedRowIcon","collapsedRowIcon","rowGroupMode","groupRowsBy","expandableRowGroups","expandedRowGroups","stateStorage","stateKey","editMode","editingRows","rowClass","rowStyle","scrollable","virtualScrollerOptions","scrollHeight","frozenValue","breakpoint","showHeaders","showGridlines","stripedRows","highlightOnSelect","size","tableStyle","tableClass","tableProps","filterInputProps","filterButtonProps","default","filter","severity","text","rounded","inline","clear","popover","addRule","removeRule","apply","outlined","editButtonProps","init","save","cancel","style","DataTableStyle","provide","$pcDataTable","$parentInstance","hostName","emits","checked","column","rowCheckboxIconTemplate","index","methods","getColumnPT","key","columnMetaData","parent","instance","$props","state","$data","context","disabled","$attrs","mergeProps","ptm","concat","ptmo","getColumnProp","pt","onChange","event","$emit","originalEvent","data","computed","checkboxAriaLabel","$primevue","config","locale","aria","selectRow","unselectRow","components","CheckIcon","Checkbox","_createBlock","_component_Checkbox","modelValue","binary","_ctx","$options","unstyled","icon","_withCtx","slotProps","_openBlock","_resolveDynamicComponent","_normalizeClass","_component_CheckIcon","_mergeProps","RadioButton","_component_RadioButton","rowData","frozenRow","rowIndex","isRowExpanded","selected","editing","editingMeta","virtualScrollerContentProps","ariaControls","documentEditListener","selfClick","overlayEventListener","d_editing","styleObject","watch","newValue","$dataD_editing","field","mounted","columnProp","updateStickyPosition","updated","_this","setTimeout","focusableEl","getFirstFocusableElement","$el","focus","beforeUnmount","OverlayEventBus","off","prop","getVNodeProp","_this$$parentInstance","_this$$parentInstance2","resolveFieldData","toggleRow","toggleRowWithRadio","toggleRowWithCheckbox","isEditable","children","editor","bindDocumentEditListener","_this2","completeEdit","document","addEventListener","unbindDocumentEditListener","removeEventListener","switchCellToViewMode","onClick","_this3","e","contains","target","on","completeEvent","newData","editingRowData","defaultPrevented","preventDefault","onKeyDown","code","shiftKey","moveToPreviousCell","moveToNextCell","currentCell","findCell","targetCell","findPreviousEditableColumn","invokeElementMethod","findNextEditableColumn","element","cell","getAttribute","parentElement","prevCell","previousElementSibling","previousRow","lastElementChild","nextCell","nextElementSibling","nextRow","firstElementChild","onRowEditInit","onRowEditSave","onRowEditCancel","editorInitCallback","editorSaveCallback","editorCancelCallback","align","isRTL","pos","next","getNextElementSibling","getOuterWidth","parseFloat","right","left","prev","getPreviousElementSibling","getVirtualScrollerProp","option","containerClass","cx","containerStyle","bodyStyle","columnStyle","loadingOptions","getLoaderOptions","cellIndex","cellFirst","cellLast","length","cellEven","cellOdd","expandButtonAriaLabel","expandRow","collapseRow","initButtonAriaLabel","editRow","saveButtonAriaLabel","saveEdit","cancelButtonAriaLabel","cancelEdit","DTRadioButton","RowRadioButton","DTCheckbox","RowCheckbox","Button","ChevronDownIcon","ChevronRightIcon","BarsIcon","PencilIcon","TimesIcon","directives","ripple","Ripple","_createElementBlock","role","_objectSpread","colspan","rowspan","arguments","onKeydown","body","rowTogglerCallback","_Fragment","_component_DTRadioButton","_cache","$event","_component_DTCheckbox","rowcheckboxicon","rowreordericon","_component_BarsIcon","_withDirectives","rowtogglericon","rowExpanded","_component_ChevronDownIcon","_component_ChevronRightIcon","_component_Button","roweditoriniticon","roweditorsaveicon","roweditorcancelicon","columns","empty","selectionKeys","rowGroupHeaderStyle","editingRowKeys","templates","isVirtualScrollerDisabled","expandedRowId","nameAttributeSelector","d_rowExpanded","deep","immediate","handler","some","d","equals","col","getBodyRowPTOptions","datatable","selectable","isSelected","shouldRenderBodyCell","isHidden","isGrouped","prevRowData","currentRowFieldData","previousRowFieldData","calculateRowGroupSize","nextRowFieldData","groupRowSpan","nextRowData","isArray","indexOf","findIndexInSelection","findIndex","collection","i","data1","data2","onRowGroupToggle","onRowClick","onRowDblClick","onRowRightClick","onRowTouchEnd","onRowKeyDown","onRowMouseDown","onRowDragStart","onRowDragOver","onRowDragLeave","onRowDragEnd","onRowDrop","onRowToggle","expanded","onRadioChange","onCheckboxChange","onCellEditInit","onCellEditComplete","onCellEditCancel","onEditingMetaChange","options","getItemOptions","rowStyles","_this$rowStyle","call","rowClasses","rowStyleClass","columnSelectionMode","rowClassValue","push","_iterator","_createForOfIteratorHelper","_step","s","n","done","_selectionMode","isNotEmpty","err","f","rowTabindex","isRowEditing","isRowGroupExpanded","groupFieldValue","isSelectedWithContextMenu","shouldRenderRowGroupHeader","shouldRenderRowGroupFooter","columnsLength","hiddenColLength","forEach","DTBodyCell","BodyCell","_createElementVNode","tabindex","onDblclick","onContextmenu","onTouchend","onMousedown","onDragstart","onDragover","onDragleave","onDragend","onDrop","_renderList","_component_DTBodyCell","id","rowGroupHeaderStyleObject","updateFrozenRowStickyPosition","updateFrozenRowGroupHeaderStickyPosition","getRowKey","top","getOuterHeight","tableHeaderHeight","bodyRef","el","contentRef","bodyContentStyle","ptmTBodyOptions","UniqueComponentId","DTBodyRow","BodyRow","ref","_component_DTBodyRow","onRowgroupToggle","onRowDblclick","onRowRightclick","onRowTouchend","onRowKeydown","onRowMousedown","onRowDragstart","onRowDragover","onRowDragleave","onRowDragend","footer","columnGroup","$rows","d_footerRows","$columns","d_footerColumns","HelperSet","getColumnGroupPT","columnGroupMetaData","getColumnGroupProps","ptmTFootOptions","getRowPT","row","rowMetaData","getRowProp","getFooterRows","_this$d_footerRows","get","getFooterColumns","_this$d_footerColumns","hasFooter","DTFooterCell","FooterCell","sx","_component_DTFooterCell","j","display","showMenu","matchMode","showOperator","showClearButton","showApplyButton","showMatchModes","showAddButton","matchModeOptions","maxConstraints","filterElement","filterHeaderTemplate","filterFooterTemplate","filterClearTemplate","filterApplyTemplate","filterIconTemplate","filterAddIconTemplate","filterRemoveIconTemplate","filterClearIconTemplate","filtersStore","filterMenuClass","filterMenuStyle","overlayVisible","defaultMatchMode","defaultOperator","$attrsId","overlay","ZIndex","onOverlayHide","fieldFilters","operator","constraints","params","ptmFilterConstraintOptions","highlighted","isRowMatchModeSelected","clearFilter","_filters","splice","hide","applyFilter","hasFilter","fieldFilter","isFilterBlank","hasRowFilter","trim","toggleMenu","onToggleButtonKeyDown","onRowMatchModeChange","onRowMatchModeKeyDown","item","nextItem","findNextItem","removeAttribute","tabIndex","prevItem","findPrevItem","onOperatorChange","onMenuMatchModeChange","addConstraint","newConstraint","constraing","removeConstraint","removedConstraint","filterCallback","showMenuButton","$refs","onContentClick","emit","onContentMouseDown","onOverlayEnter","addStyle","set","zIndex","position","absolutePosition","bindOutsideClickListener","bindScrollListener","bindResizeListener","isOutsideClicked","onOverlayAfterEnter","_this$overlay","$focustrap","autoFocus","onOverlayLeave","onOverlayAfterLeave","unbindOutsideClickListener","unbindResizeListener","unbindScrollListener","overlayRef","isTargetClicked","isSameNode","outsideClickListener","scrollHandler","ConnectedOverlayScrollHandler","_this4","resizeListener","isTouchDevice","window","overlayId","matchModes","_this5","filterMatchModeOptions","map","label","isShowMatchModes","operatorOptions","matchAll","FilterOperator","AND","matchAny","OR","noFilterLabel","noFilter","isShowOperator","fieldConstraints","showRemoveIcon","removeRuleButtonLabel","addRuleButtonLabel","isShowAddConstraint","clearButtonLabel","applyButtonLabel","columnFilterButtonAriaLabel","showFilterMenu","hideFilterMenu","filterOperatorAriaLabel","filterOperator","filterRuleAriaLabel","filterConstraint","ptmHeaderFilterClearParams","hidden","ptmFilterMenuParams","active","Select","Portal","FilterSlashIcon","FilterIcon","TrashIcon","PlusIcon","focustrap","FocusTrap","filterModel","_createVNode","_component_Portal","_Transition","onEnter","onAfterEnter","onLeave","onAfterLeave","_toDisplayString","onRowClearItemClick","_component_Select","optionLabel","optionValue","fieldConstraint","onUpdateModelValue","iconProps","iconPos","headerCheckboxIconTemplate","headerCheckboxAriaLabel","unselectAll","groupRowSortField","allRowsSelected","filterColumn","sortable","sorted","isColumnSorted","resizable","currentTarget","nodeName","onMouseDown","onDragStart","onDragOver","onDragLeave","onResizeStart","getMultiSortMetaIndex","meta","getBadgeValue","isMultiSorted","filterRow","getIndex","onHeaderCheckboxChange","headerStyle","sortState","metaIndex","order","sortableColumnIcon","_this$sortState","SortAltIcon","SortAmountUpAltIcon","SortAmountDownIcon","ariaSort","_this$sortState2","Badge","DTHeaderCheckbox","HeaderCheckbox","DTColumnFilter","ColumnFilter","header","sorticon","_component_Badge","_component_DTHeaderCheckbox","headercheckboxicon","_component_DTColumnFilter","filterheader","filterfooter","filterclear","filterapply","filtericon","filteraddicon","filterremoveicon","filterclearicon","onFilterChange","onFilterApply","onMatchmodeChange","onConstraintAdd","onConstraintRemove","onApplyClick","d_headerRows","d_headerColumns","getFilterColumnHeaderClass","getFilterColumnHeaderStyle","getHeaderRows","_this$d_headerRows","getHeaderColumns","_this$d_headerColumns","ptmTHeadOptions","DTHeaderCell","HeaderCell","_component_DTHeaderCell","onColumnClick","onColumnMousedown","onColumnDragstart","onColumnDragover","onColumnDragleave","onColumnDrop","onColumnResizestart","BaseDataTable","inheritAttrs","d_columns","$columnGroups","d_columnGroups","d_first","d_rows","d_sortField","d_sortOrder","d_nullSortOrder","d_multiSortMeta","_toConsumableArray","d_groupRowsSortMeta","d_selectionKeys","d_columnOrder","d_editingRowKeys","d_editingMeta","d_filters","cloneFilters","rowTouched","anchorRowIndex","rangeRowIndex","documentColumnResizeListener","documentColumnResizeEndListener","lastResizeHelperX","resizeColumnElement","columnResizing","colReorderIconWidth","colReorderIconHeight","draggedColumn","draggedColumnElement","draggedRowIndex","droppedRowIndex","rowDragging","columnWidthsState","tableWidthState","columnWidthsRestored","mutationObserver","updateSelectionKeys","updateEditingRowKeys","isStateful","restoreState","restoreColumnWidths","updateDirection","observeDirectionChanges","unbindColumnResizeEvents","destroyStyleElement","disconnect","saveState","closest","targetNode","documentElement","attributes","attributeFilter","MutationObserver","observe","onPage","clearEditingMetaData","pageEvent","createLazyLoadEvent","pageCount","page","$nextTick","processedData","onColumnHeaderClick","columnField","isClickable","clearSelection","resetPage","metaKey","ctrlKey","addMultiSortField","sortSingle","sortMultiple","resolvedFieldData","Map","comparer","localeComparator","sort","value1","value2","firstSortMeta","multisortField","getActiveFilters","removeEmptyFilters","_ref","_ref2","_slicedToArray","filteredConstraints","constraint","filterValidEntries","entry","entries","fromEntries","_this6","activeFilters","globalFilterFieldsArray","filteredValue","localMatch","globalMatch","localFiltered","prototype","hasOwnProperty","filterField","filterMeta","_iterator2","_step2","executeLocalFilter","globalFilterField","FilterService","FilterMatchMode","CONTAINS","matches","keys","filterEvent","filterValue","filterMatchMode","STARTS_WITH","dataFieldValue","focusedItem","findSingle","isMultipleSelectionMode","selectRange","metaSelection","isSingleSelectionMode","selectionIndex","_selection","val","_event$target","_event$currentTarget","targetRow","onArrowDownKey","onArrowUpKey","onHomeKey","onEndKey","onEnterKey","onSpaceKey","onTabKey","dataToRender","findNextSelectableRow","focusRowChange","nextRowIndex","prevRow","findPrevSelectableRow","prevRowIndex","firstRow","findFirstSelectableRow","slice","lastRow","findLastSelectableRow","firstSelectedRowIndex","lastSelectedRowIndex","findIndexInList","Math","min","max","find","firstSelectedRow","table","firstFocusableRow","currentFocusedRow","toggleRowsWithCheckbox","_iterator3","_step3","_iterator4","_step4","rangeStart","rangeEnd","rangeRowData","exportCSV","_this7","csv","selectionOnly","headerInitiated","record","rowInitiated","cellData","replace","footerInitiated","onColumnResizeStart","containerLeft","getOffset","pageX","scrollLeft","bindColumnResizeEvents","onColumnResize","setAttribute","isUnstyled","resizeHelper","height","offsetHeight","onColumnResizeEnd","delta","offsetLeft","columnWidth","offsetWidth","newColumnWidth","minWidth","parseInt","nextColumn","nextColumnWidth","resizeTableCells","tableWidth","updateTableWidth","width","virtualScrollerDisabled","frozenBody","frozenBodyRef","resizeColumn","colIndex","widths","headers","createStyleElement","innerHTML","selector","$attrSelector","colWidth","styleElement","_this8","onColumnHeaderMouseDown","draggable","onColumnHeaderDragStart","getHiddenElementOuterWidth","reorderIndicatorUp","getHiddenElementOuterHeight","findParentHeader","dataTransfer","setData","onColumnHeaderDragOver","dropHeader","containerOffset","dropHeaderOffset","targetLeft","columnCenter","reorderIndicatorDown","ceil","dropPosition","onColumnHeaderDragLeave","onColumnHeaderDrop","_this9","dragIndex","dropIndex","allowDrop","isSameColumn","col1","col2","dragColIndex","child","dropColIndex","movedItem","_","remainingItems","reorderedWidths","addColumnWidthStyles","reorderArray","updateReorderableColumns","findColumnByKey","rowElement","rowY","pageY","rowMidY","prevRowElement","removeClass","addClass","_this10","rest","_objectWithoutProperties","_excluded","toggleRowGroup","_expandedRowGroups","group","getStorage","localStorage","sessionStorage","Error","storage","hasFilters","saveColumnWidths","columnOrder","setItem","JSON","stringify","stateString","getItem","dateFormat","reviver","test","Date","restoredState","parse","columnWidths","join","split","_editingRows","fields","hasGlobalFilter","cloned","_ref3","_ref4","_this11","_this$$primevue","createElement","csp","nonce","head","appendChild","removeChild","_data","getVirtualScrollerRef","virtualScroller","hasSpacerStyle","cols","orderedColumns","_iterator5","_step5","columnKey","columnGroups","headerColumnGroup","_this$columnGroups","_this12","footerColumnGroup","_this$columnGroups2","_this13","constructor","_this$virtualScroller","totalRecordsLength","paginatorTop","paginatorBottom","_this14","every","v","headerFilterButtonProps","rowEditButtonProps","isEmpty","DTPaginator","Paginator","DTTableHeader","TableHeader","DTTableBody","TableBody","DTTableFooter","TableFooter","DTVirtualScroller","VirtualScroller","ArrowDownIcon","ArrowUpIcon","SpinnerIcon","ptmi","_renderSlot","$slots","loadingicon","_component_SpinnerIcon","spin","_component_DTPaginator","template","alwaysShow","paginatorcontainer","last","firstPageCallback","lastPageCallback","prevPageCallback","nextPageCallback","rowChangeCallback","paginatorstart","paginatorend","paginatorfirstpagelinkicon","fn","paginatorprevpagelinkicon","paginatornextpagelinkicon","paginatorlastpagelinkicon","paginatorjumptopagedropdownicon","paginatorrowsperpagedropdownicon","maxHeight","_component_DTVirtualScroller","items","loaderDisabled","autoSize","showSpacer","content","spacerStyle","_component_DTTableHeader","_component_DTTableBody","styleClass","itemSize","_component_DTTableFooter","rowreorderindicatorupicon","reorderindicatorupicon","rowreorderindicatordownicon","reorderindicatordownicon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/datatable/BaseDataTable.vue","../../src/datatable/RowCheckbox.vue","../../src/datatable/RowCheckbox.vue?vue&type=template&id=48b3a88a&lang.js","../../src/datatable/RowRadioButton.vue","../../src/datatable/RowRadioButton.vue?vue&type=template&id=4c71d642&lang.js","../../src/datatable/BodyCell.vue","../../src/datatable/BodyCell.vue?vue&type=template&id=7bf689a0&lang.js","../../src/datatable/BodyRow.vue","../../src/datatable/BodyRow.vue?vue&type=template&id=06cd1716&lang.js","../../src/datatable/TableBody.vue","../../src/datatable/TableBody.vue?vue&type=template&id=283c7364&lang.js","../../src/datatable/FooterCell.vue","../../src/datatable/FooterCell.vue?vue&type=template&id=639c0b08&lang.js","../../src/datatable/TableFooter.vue","../../src/datatable/TableFooter.vue?vue&type=template&id=75fe3824&lang.js","../../src/datatable/ColumnFilter.vue","../../src/datatable/ColumnFilter.vue?vue&type=template&id=2262eab9&lang.js","../../src/datatable/HeaderCheckbox.vue","../../src/datatable/HeaderCheckbox.vue?vue&type=template&id=b2aea9ee&lang.js","../../src/datatable/HeaderCell.vue","../../src/datatable/HeaderCell.vue?vue&type=template&id=8fbad732&lang.js","../../src/datatable/TableHeader.vue","../../src/datatable/TableHeader.vue?vue&type=template&id=69029af0&lang.js","../../src/datatable/DataTable.vue","../../src/datatable/DataTable.vue?vue&type=template&id=29ea5b65&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport DataTableStyle from 'primevue/datatable/style';\n\nexport default {\n name: 'BaseDataTable',\n extends: BaseComponent,\n props: {\n value: {\n type: Array,\n default: null\n },\n dataKey: {\n type: [String, Function],\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: [Object, 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 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 nullSortOrder: {\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 filterDisplay: {\n type: String,\n default: null\n },\n globalFilterFields: {\n type: Array,\n default: null\n },\n filterLocale: {\n type: String,\n default: undefined\n },\n selection: {\n type: [Array, Object],\n default: null\n },\n selectionMode: {\n type: String,\n default: null\n },\n compareSelectionBy: {\n type: String,\n default: 'deepEquals'\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 selectAll: {\n type: Boolean,\n default: null\n },\n rowHover: {\n type: Boolean,\n default: false\n },\n csvSeparator: {\n type: String,\n default: ','\n },\n exportFilename: {\n type: String,\n default: 'download'\n },\n exportFunction: {\n type: Function,\n default: null\n },\n resizableColumns: {\n type: Boolean,\n default: false\n },\n columnResizeMode: {\n type: String,\n default: 'fit'\n },\n reorderableColumns: {\n type: Boolean,\n default: false\n },\n expandedRows: {\n type: [Array, Object],\n default: null\n },\n expandedRowIcon: {\n type: String,\n default: undefined\n },\n collapsedRowIcon: {\n type: String,\n default: undefined\n },\n rowGroupMode: {\n type: String,\n default: null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n expandableRowGroups: {\n type: Boolean,\n default: false\n },\n expandedRowGroups: {\n type: Array,\n default: null\n },\n stateStorage: {\n type: String,\n default: 'session'\n },\n stateKey: {\n type: String,\n default: null\n },\n editMode: {\n type: String,\n default: null\n },\n editingRows: {\n type: Array,\n default: null\n },\n rowClass: {\n type: Function,\n default: null\n },\n rowStyle: {\n type: Function,\n default: null\n },\n scrollable: {\n type: Boolean,\n default: false\n },\n virtualScrollerOptions: {\n type: Object,\n default: null\n },\n scrollHeight: {\n type: String,\n default: null\n },\n frozenValue: {\n type: Array,\n default: null\n },\n breakpoint: {\n type: String,\n default: '960px'\n },\n showHeaders: {\n type: Boolean,\n default: true\n },\n showGridlines: {\n type: Boolean,\n default: false\n },\n stripedRows: {\n type: Boolean,\n default: false\n },\n highlightOnSelect: {\n type: Boolean,\n default: false\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 filterInputProps: {\n type: null,\n default: null\n },\n filterButtonProps: {\n type: Object,\n default() {\n return {\n filter: { severity: 'secondary', text: true, rounded: true },\n inline: {\n clear: { severity: 'secondary', text: true, rounded: true }\n },\n popover: {\n addRule: { severity: 'info', text: true, size: 'small' },\n removeRule: { severity: 'danger', text: true, size: 'small' },\n apply: { size: 'small' },\n clear: { outlined: true, size: 'small' }\n }\n };\n }\n },\n editButtonProps: {\n type: Object,\n default() {\n return {\n init: { severity: 'secondary', text: true, rounded: true },\n save: { severity: 'secondary', text: true, rounded: true },\n cancel: { severity: 'secondary', text: true, rounded: true }\n };\n }\n }\n },\n style: DataTableStyle,\n provide() {\n return {\n $pcDataTable: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <Checkbox :modelValue=\"checked\" :binary=\"true\" :disabled=\"$attrs.disabled\" :aria-label=\"checkboxAriaLabel\" @change=\"onChange\" :unstyled=\"unstyled\" :pt=\"getColumnPT('pcRowCheckbox')\">\n <template #icon=\"slotProps\">\n <component v-if=\"rowCheckboxIconTemplate\" :is=\"rowCheckboxIconTemplate\" :checked=\"slotProps.checked\" :class=\"slotProps.class\" />\n <CheckIcon v-else-if=\"!rowCheckboxIconTemplate && slotProps.checked\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcRowCheckbox')['icon']\" />\n </template>\n </Checkbox>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport CheckIcon from '@primevue/icons/check';\nimport Checkbox from 'primevue/checkbox';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'RowCheckbox',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['change'],\n props: {\n value: null,\n checked: null,\n column: null,\n rowCheckboxIconTemplate: {\n type: Function,\n default: null\n },\n index: {\n type: Number,\n default: null\n }\n },\n methods: {\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 checked: this.checked,\n disabled: this.$attrs.disabled\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 onChange(event) {\n if (!this.$attrs.disabled) {\n this.$emit('change', {\n originalEvent: event,\n data: this.value\n });\n }\n }\n },\n computed: {\n checkboxAriaLabel() {\n return this.$primevue.config.locale.aria ? (this.checked ? this.$primevue.config.locale.aria.selectRow : this.$primevue.config.locale.aria.unselectRow) : undefined;\n }\n },\n components: {\n CheckIcon,\n Checkbox\n }\n};\n</script>\n","<template>\n <Checkbox :modelValue=\"checked\" :binary=\"true\" :disabled=\"$attrs.disabled\" :aria-label=\"checkboxAriaLabel\" @change=\"onChange\" :unstyled=\"unstyled\" :pt=\"getColumnPT('pcRowCheckbox')\">\n <template #icon=\"slotProps\">\n <component v-if=\"rowCheckboxIconTemplate\" :is=\"rowCheckboxIconTemplate\" :checked=\"slotProps.checked\" :class=\"slotProps.class\" />\n <CheckIcon v-else-if=\"!rowCheckboxIconTemplate && slotProps.checked\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcRowCheckbox')['icon']\" />\n </template>\n </Checkbox>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport CheckIcon from '@primevue/icons/check';\nimport Checkbox from 'primevue/checkbox';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'RowCheckbox',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['change'],\n props: {\n value: null,\n checked: null,\n column: null,\n rowCheckboxIconTemplate: {\n type: Function,\n default: null\n },\n index: {\n type: Number,\n default: null\n }\n },\n methods: {\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 checked: this.checked,\n disabled: this.$attrs.disabled\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 onChange(event) {\n if (!this.$attrs.disabled) {\n this.$emit('change', {\n originalEvent: event,\n data: this.value\n });\n }\n }\n },\n computed: {\n checkboxAriaLabel() {\n return this.$primevue.config.locale.aria ? (this.checked ? this.$primevue.config.locale.aria.selectRow : this.$primevue.config.locale.aria.unselectRow) : undefined;\n }\n },\n components: {\n CheckIcon,\n Checkbox\n }\n};\n</script>\n","<template>\n <RadioButton :modelValue=\"checked\" :binary=\"true\" :disabled=\"$attrs.disabled\" :name=\"name\" @change=\"onChange\" :unstyled=\"unstyled\" :pt=\"getColumnPT('pcRowRadiobutton')\" />\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport RadioButton from 'primevue/radiobutton';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'RowRadioButton',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['change'],\n props: {\n value: null,\n checked: null,\n name: null,\n column: null,\n index: {\n type: Number,\n default: null\n }\n },\n methods: {\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 checked: this.checked,\n disabled: this.$attrs.disabled\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 onChange(event) {\n if (!this.$attrs.disabled) {\n this.$emit('change', {\n originalEvent: event,\n data: this.value\n });\n }\n }\n },\n components: {\n RadioButton\n }\n};\n</script>\n","<template>\n <RadioButton :modelValue=\"checked\" :binary=\"true\" :disabled=\"$attrs.disabled\" :name=\"name\" @change=\"onChange\" :unstyled=\"unstyled\" :pt=\"getColumnPT('pcRowRadiobutton')\" />\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport RadioButton from 'primevue/radiobutton';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'RowRadioButton',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['change'],\n props: {\n value: null,\n checked: null,\n name: null,\n column: null,\n index: {\n type: Number,\n default: null\n }\n },\n methods: {\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 checked: this.checked,\n disabled: this.$attrs.disabled\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 onChange(event) {\n if (!this.$attrs.disabled) {\n this.$emit('change', {\n originalEvent: event,\n data: this.value\n });\n }\n }\n },\n components: {\n RadioButton\n }\n};\n</script>\n","<template>\n <td v-if=\"loading\" :style=\"containerStyle\" :class=\"containerClass\" role=\"cell\" v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('bodyCell') }\">\n <component :is=\"column.children.loading\" :data=\"rowData\" :column=\"column\" :field=\"field\" :index=\"rowIndex\" :frozenRow=\"frozenRow\" :loadingOptions=\"loadingOptions\" />\n </td>\n <td\n v-else\n :style=\"containerStyle\"\n :class=\"containerClass\"\n :colspan=\"columnProp('colspan')\"\n :rowspan=\"columnProp('rowspan')\"\n @click=\"onClick\"\n @keydown=\"onKeyDown\"\n role=\"cell\"\n v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('bodyCell') }\"\n :data-p-selection-column=\"columnProp('selectionMode') != null\"\n :data-p-editable-column=\"isEditable()\"\n :data-p-cell-editing=\"d_editing\"\n :data-p-frozen-column=\"columnProp('frozen')\"\n >\n <component\n v-if=\"column.children && column.children.body && !d_editing\"\n :is=\"column.children.body\"\n :data=\"rowData\"\n :column=\"column\"\n :field=\"field\"\n :index=\"rowIndex\"\n :frozenRow=\"frozenRow\"\n :editorInitCallback=\"editorInitCallback\"\n :rowTogglerCallback=\"toggleRow\"\n />\n <component\n v-else-if=\"column.children && column.children.editor && d_editing\"\n :is=\"column.children.editor\"\n :data=\"editingRowData\"\n :column=\"column\"\n :field=\"field\"\n :index=\"rowIndex\"\n :frozenRow=\"frozenRow\"\n :editorSaveCallback=\"editorSaveCallback\"\n :editorCancelCallback=\"editorCancelCallback\"\n />\n <component v-else-if=\"column.children && column.children.body && !column.children.editor && d_editing\" :is=\"column.children.body\" :data=\"editingRowData\" :column=\"column\" :field=\"field\" :index=\"rowIndex\" :frozenRow=\"frozenRow\" />\n <template v-else-if=\"columnProp('selectionMode')\">\n <DTRadioButton v-if=\"columnProp('selectionMode') === 'single'\" :value=\"rowData\" :name=\"name\" :checked=\"selected\" @change=\"toggleRowWithRadio($event, rowIndex)\" :column=\"column\" :index=\"index\" :unstyled=\"unstyled\" :pt=\"pt\" />\n <DTCheckbox\n v-else-if=\"columnProp('selectionMode') === 'multiple'\"\n :value=\"rowData\"\n :checked=\"selected\"\n :rowCheckboxIconTemplate=\"column.children && column.children.rowcheckboxicon\"\n :aria-selected=\"selected ? true : undefined\"\n @change=\"toggleRowWithCheckbox($event, rowIndex)\"\n :column=\"column\"\n :index=\"index\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n <template v-else-if=\"columnProp('rowReorder')\">\n <component v-if=\"column.children && column.children.rowreordericon\" :is=\"column.children.rowreordericon\" :class=\"cx('reorderableRowHandle')\" />\n <i v-else-if=\"columnProp('rowReorderIcon')\" :class=\"[cx('reorderableRowHandle'), columnProp('rowReorderIcon')]\" v-bind=\"getColumnPT('reorderableRowHandle')\" />\n <BarsIcon v-else :class=\"cx('reorderableRowHandle')\" v-bind=\"getColumnPT('reorderableRowHandle')\" />\n </template>\n <template v-else-if=\"columnProp('expander')\">\n <button\n v-ripple\n :class=\"cx('rowToggleButton')\"\n type=\"button\"\n :aria-expanded=\"isRowExpanded\"\n :aria-controls=\"ariaControls\"\n :aria-label=\"expandButtonAriaLabel\"\n @click=\"toggleRow\"\n v-bind=\"getColumnPT('rowToggleButton')\"\n data-pc-group-section=\"rowactionbutton\"\n >\n <component v-if=\"column.children && column.children.rowtogglericon\" :is=\"column.children.rowtogglericon\" :class=\"cx('rowToggleIcon')\" :rowExpanded=\"isRowExpanded\" />\n <template v-else>\n <span v-if=\"isRowExpanded && expandedRowIcon\" :class=\"[cx('rowToggleIcon'), expandedRowIcon]\" />\n <ChevronDownIcon v-else-if=\"isRowExpanded && !expandedRowIcon\" :class=\"cx('rowToggleIcon')\" v-bind=\"getColumnPT('rowToggleIcon')\" />\n <span v-else-if=\"!isRowExpanded && collapsedRowIcon\" :class=\"[cx('rowToggleIcon'), collapsedRowIcon]\" />\n <ChevronRightIcon v-else-if=\"!isRowExpanded && !collapsedRowIcon\" :class=\"cx('rowToggleIcon')\" v-bind=\"getColumnPT('rowToggleIcon')\" />\n </template>\n </button>\n </template>\n <template v-else-if=\"editMode === 'row' && columnProp('rowEditor')\">\n <Button\n v-if=\"!d_editing\"\n :class=\"cx('pcRowEditorInit')\"\n :aria-label=\"initButtonAriaLabel\"\n :unstyled=\"unstyled\"\n @click=\"onRowEditInit\"\n v-bind=\"editButtonProps.init\"\n :pt=\"getColumnPT('pcRowEditorInit')\"\n data-pc-group-section=\"rowactionbutton\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"(column.children && column.children.roweditoriniticon) || 'PencilIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcRowEditorInit')['icon']\" />\n </template>\n </Button>\n <Button\n v-if=\"d_editing\"\n :class=\"cx('pcRowEditorSave')\"\n :aria-label=\"saveButtonAriaLabel\"\n :unstyled=\"unstyled\"\n @click=\"onRowEditSave\"\n v-bind=\"editButtonProps.save\"\n :pt=\"getColumnPT('pcRowEditorSave')\"\n data-pc-group-section=\"rowactionbutton\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"(column.children && column.children.roweditorsaveicon) || 'CheckIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcRowEditorSave')['icon']\" />\n </template>\n </Button>\n <Button\n v-if=\"d_editing\"\n :class=\"cx('pcRowEditorCancel')\"\n :aria-label=\"cancelButtonAriaLabel\"\n :unstyled=\"unstyled\"\n @click=\"onRowEditCancel\"\n v-bind=\"editButtonProps.cancel\"\n :pt=\"getColumnPT('pcRowEditorCancel')\"\n data-pc-group-section=\"rowactionbutton\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"(column.children && column.children.roweditorcancelicon) || 'TimesIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcRowEditorCancel')['icon']\" />\n </template>\n </Button>\n </template>\n <template v-else>{{ resolveFieldData() }}</template>\n </td>\n</template>\n\n<script>\nimport { getAttribute, getFirstFocusableElement, getNextElementSibling, getOuterWidth, getPreviousElementSibling, invokeElementMethod } from '@primeuix/utils/dom';\nimport { resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport BarsIcon from '@primevue/icons/bars';\nimport CheckIcon from '@primevue/icons/check';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport PencilIcon from '@primevue/icons/pencil';\nimport TimesIcon from '@primevue/icons/times';\nimport Button from 'primevue/button';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\nimport RowCheckbox from './RowCheckbox.vue';\nimport RowRadioButton from './RowRadioButton.vue';\n\nexport default {\n name: 'BodyCell',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['cell-edit-init', 'cell-edit-complete', 'cell-edit-cancel', 'row-edit-init', 'row-edit-save', 'row-edit-cancel', 'row-toggle', 'radio-change', 'checkbox-change', 'editing-meta-change'],\n props: {\n rowData: {\n type: Object,\n default: null\n },\n column: {\n type: Object,\n default: null\n },\n frozenRow: {\n type: Boolean,\n default: false\n },\n rowIndex: {\n type: Number,\n default: null\n },\n index: {\n type: Number,\n default: null\n },\n isRowExpanded: {\n type: Boolean,\n default: false\n },\n selected: {\n type: Boolean,\n default: false\n },\n editing: {\n type: Boolean,\n default: false\n },\n editingMeta: {\n type: Object,\n default: null\n },\n editMode: {\n type: String,\n default: null\n },\n virtualScrollerContentProps: {\n type: Object,\n default: null\n },\n ariaControls: {\n type: String,\n default: null\n },\n name: {\n type: String,\n default: null\n },\n expandedRowIcon: {\n type: String,\n default: null\n },\n collapsedRowIcon: {\n type: String,\n default: null\n },\n editButtonProps: {\n type: Object,\n default: null\n }\n },\n documentEditListener: null,\n selfClick: false,\n overlayEventListener: null,\n data() {\n return {\n d_editing: this.editing,\n styleObject: {}\n };\n },\n watch: {\n editing(newValue) {\n this.d_editing = newValue;\n },\n '$data.d_editing': function (newValue) {\n this.$emit('editing-meta-change', { data: this.rowData, field: this.field || `field_${this.index}`, index: this.rowIndex, editing: newValue });\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 if (this.d_editing && (this.editMode === 'cell' || (this.editMode === 'row' && this.columnProp('rowEditor')))) {\n setTimeout(() => {\n const focusableEl = getFirstFocusableElement(this.$el);\n\n focusableEl && focusableEl.focus();\n }, 1);\n }\n },\n beforeUnmount() {\n if (this.overlayEventListener) {\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\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 size: this.$parentInstance?.$parentInstance?.size,\n showGridlines: this.$parentInstance?.$parentInstance?.showGridlines\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 resolveFieldData() {\n return resolveFieldData(this.rowData, this.field);\n },\n toggleRow(event) {\n this.$emit('row-toggle', {\n originalEvent: event,\n data: this.rowData\n });\n },\n toggleRowWithRadio(event, index) {\n this.$emit('radio-change', { originalEvent: event.originalEvent, index: index, data: event.data });\n },\n toggleRowWithCheckbox(event, index) {\n this.$emit('checkbox-change', { originalEvent: event.originalEvent, index: index, data: event.data });\n },\n isEditable() {\n return this.column.children && this.column.children.editor != null;\n },\n bindDocumentEditListener() {\n if (!this.documentEditListener) {\n this.documentEditListener = (event) => {\n if (!this.selfClick) {\n this.completeEdit(event, 'outside');\n }\n\n this.selfClick = false;\n };\n\n document.addEventListener('click', this.documentEditListener);\n }\n },\n unbindDocumentEditListener() {\n if (this.documentEditListener) {\n document.removeEventListener('click', this.documentEditListener);\n this.documentEditListener = null;\n this.selfClick = false;\n }\n },\n switchCellToViewMode() {\n this.d_editing = false;\n this.unbindDocumentEditListener();\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n },\n onClick(event) {\n if (this.editMode === 'cell' && this.isEditable()) {\n this.selfClick = true;\n\n if (!this.d_editing) {\n this.d_editing = true;\n this.bindDocumentEditListener();\n this.$emit('cell-edit-init', { originalEvent: event, data: this.rowData, field: this.field, index: this.rowIndex });\n\n this.overlayEventListener = (e) => {\n if (this.$el && this.$el.contains(e.target)) {\n this.selfClick = true;\n }\n };\n\n OverlayEventBus.on('overlay-click', this.overlayEventListener);\n }\n }\n },\n completeEdit(event, type) {\n const completeEvent = {\n originalEvent: event,\n data: this.rowData,\n newData: this.editingRowData,\n value: this.rowData[this.field],\n newValue: this.editingRowData[this.field],\n field: this.field,\n index: this.rowIndex,\n type: type,\n defaultPrevented: false,\n preventDefault: function () {\n this.defaultPrevented = true;\n }\n };\n\n this.$emit('cell-edit-complete', completeEvent);\n\n if (!completeEvent.defaultPrevented) {\n this.switchCellToViewMode();\n }\n },\n onKeyDown(event) {\n if (this.editMode === 'cell') {\n switch (event.code) {\n case 'Enter':\n case 'NumpadEnter':\n this.completeEdit(event, 'enter');\n break;\n\n case 'Escape':\n this.switchCellToViewMode();\n this.$emit('cell-edit-cancel', { originalEvent: event, data: this.rowData, field: this.field, index: this.rowIndex });\n break;\n\n case 'Tab':\n this.completeEdit(event, 'tab');\n\n if (event.shiftKey) this.moveToPreviousCell(event);\n else this.moveToNextCell(event);\n break;\n\n default:\n break;\n }\n }\n },\n moveToPreviousCell(event) {\n let currentCell = this.findCell(event.target);\n let targetCell = this.findPreviousEditableColumn(currentCell);\n\n if (targetCell) {\n invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n },\n moveToNextCell(event) {\n let currentCell = this.findCell(event.target);\n let targetCell = this.findNextEditableColumn(currentCell);\n\n if (targetCell) {\n invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n },\n findCell(element) {\n if (element) {\n let cell = element;\n\n while (cell && !getAttribute(cell, 'data-p-cell-editing')) {\n cell = cell.parentElement;\n }\n\n return cell;\n } else {\n return null;\n }\n },\n findPreviousEditableColumn(cell) {\n let prevCell = cell.previousElementSibling;\n\n if (!prevCell) {\n let previousRow = cell.parentElement.previousElementSibling;\n\n if (previousRow) {\n prevCell = previousRow.lastElementChild;\n }\n }\n\n if (prevCell) {\n if (getAttribute(prevCell, 'data-p-editable-column')) return prevCell;\n else return this.findPreviousEditableColumn(prevCell);\n } else {\n return null;\n }\n },\n findNextEditableColumn(cell) {\n let nextCell = cell.nextElementSibling;\n\n if (!nextCell) {\n let nextRow = cell.parentElement.nextElementSibling;\n\n if (nextRow) {\n nextCell = nextRow.firstElementChild;\n }\n }\n\n if (nextCell) {\n if (getAttribute(nextCell, 'data-p-editable-column')) return nextCell;\n else return this.findNextEditableColumn(nextCell);\n } else {\n return null;\n }\n },\n onRowEditInit(event) {\n this.$emit('row-edit-init', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n },\n onRowEditSave(event) {\n this.$emit('row-edit-save', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n },\n onRowEditCancel(event) {\n this.$emit('row-edit-cancel', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n },\n editorInitCallback(event) {\n this.$emit('row-edit-init', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n },\n editorSaveCallback(event) {\n if (this.editMode === 'row') {\n this.$emit('row-edit-save', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n } else {\n this.completeEdit(event, 'enter');\n }\n },\n editorCancelCallback(event) {\n if (this.editMode === 'row') {\n this.$emit('row-edit-cancel', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n } else {\n this.switchCellToViewMode();\n this.$emit('cell-edit-cancel', { originalEvent: event, data: this.rowData, field: this.field, index: this.rowIndex });\n }\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.right || 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.left || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n }\n },\n getVirtualScrollerProp(option) {\n return this.virtualScrollerContentProps ? this.virtualScrollerContentProps[option] : null;\n }\n },\n computed: {\n editingRowData() {\n return this.editingMeta[this.rowIndex] ? this.editingMeta[this.rowIndex].data : this.rowData;\n },\n field() {\n return this.columnProp('field');\n },\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 loading() {\n return this.getVirtualScrollerProp('loading');\n },\n loadingOptions() {\n const getLoaderOptions = this.getVirtualScrollerProp('getLoaderOptions');\n\n return (\n getLoaderOptions &&\n getLoaderOptions(this.rowIndex, {\n cellIndex: this.index,\n cellFirst: this.index === 0,\n cellLast: this.index === this.getVirtualScrollerProp('columns').length - 1,\n cellEven: this.index % 2 === 0,\n cellOdd: this.index % 2 !== 0,\n column: this.column,\n field: this.field\n })\n );\n },\n expandButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? (this.isRowExpanded ? this.$primevue.config.locale.aria.expandRow : this.$primevue.config.locale.aria.collapseRow) : undefined;\n },\n initButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.editRow : undefined;\n },\n saveButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.saveEdit : undefined;\n },\n cancelButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.cancelEdit : undefined;\n }\n },\n components: {\n DTRadioButton: RowRadioButton,\n DTCheckbox: RowCheckbox,\n Button,\n ChevronDownIcon,\n ChevronRightIcon,\n BarsIcon,\n PencilIcon,\n CheckIcon,\n TimesIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <td v-if=\"loading\" :style=\"containerStyle\" :class=\"containerClass\" role=\"cell\" v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('bodyCell') }\">\n <component :is=\"column.children.loading\" :data=\"rowData\" :column=\"column\" :field=\"field\" :index=\"rowIndex\" :frozenRow=\"frozenRow\" :loadingOptions=\"loadingOptions\" />\n </td>\n <td\n v-else\n :style=\"containerStyle\"\n :class=\"containerClass\"\n :colspan=\"columnProp('colspan')\"\n :rowspan=\"columnProp('rowspan')\"\n @click=\"onClick\"\n @keydown=\"onKeyDown\"\n role=\"cell\"\n v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('bodyCell') }\"\n :data-p-selection-column=\"columnProp('selectionMode') != null\"\n :data-p-editable-column=\"isEditable()\"\n :data-p-cell-editing=\"d_editing\"\n :data-p-frozen-column=\"columnProp('frozen')\"\n >\n <component\n v-if=\"column.children && column.children.body && !d_editing\"\n :is=\"column.children.body\"\n :data=\"rowData\"\n :column=\"column\"\n :field=\"field\"\n :index=\"rowIndex\"\n :frozenRow=\"frozenRow\"\n :editorInitCallback=\"editorInitCallback\"\n :rowTogglerCallback=\"toggleRow\"\n />\n <component\n v-else-if=\"column.children && column.children.editor && d_editing\"\n :is=\"column.children.editor\"\n :data=\"editingRowData\"\n :column=\"column\"\n :field=\"field\"\n :index=\"rowIndex\"\n :frozenRow=\"frozenRow\"\n :editorSaveCallback=\"editorSaveCallback\"\n :editorCancelCallback=\"editorCancelCallback\"\n />\n <component v-else-if=\"column.children && column.children.body && !column.children.editor && d_editing\" :is=\"column.children.body\" :data=\"editingRowData\" :column=\"column\" :field=\"field\" :index=\"rowIndex\" :frozenRow=\"frozenRow\" />\n <template v-else-if=\"columnProp('selectionMode')\">\n <DTRadioButton v-if=\"columnProp('selectionMode') === 'single'\" :value=\"rowData\" :name=\"name\" :checked=\"selected\" @change=\"toggleRowWithRadio($event, rowIndex)\" :column=\"column\" :index=\"index\" :unstyled=\"unstyled\" :pt=\"pt\" />\n <DTCheckbox\n v-else-if=\"columnProp('selectionMode') === 'multiple'\"\n :value=\"rowData\"\n :checked=\"selected\"\n :rowCheckboxIconTemplate=\"column.children && column.children.rowcheckboxicon\"\n :aria-selected=\"selected ? true : undefined\"\n @change=\"toggleRowWithCheckbox($event, rowIndex)\"\n :column=\"column\"\n :index=\"index\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n <template v-else-if=\"columnProp('rowReorder')\">\n <component v-if=\"column.children && column.children.rowreordericon\" :is=\"column.children.rowreordericon\" :class=\"cx('reorderableRowHandle')\" />\n <i v-else-if=\"columnProp('rowReorderIcon')\" :class=\"[cx('reorderableRowHandle'), columnProp('rowReorderIcon')]\" v-bind=\"getColumnPT('reorderableRowHandle')\" />\n <BarsIcon v-else :class=\"cx('reorderableRowHandle')\" v-bind=\"getColumnPT('reorderableRowHandle')\" />\n </template>\n <template v-else-if=\"columnProp('expander')\">\n <button\n v-ripple\n :class=\"cx('rowToggleButton')\"\n type=\"button\"\n :aria-expanded=\"isRowExpanded\"\n :aria-controls=\"ariaControls\"\n :aria-label=\"expandButtonAriaLabel\"\n @click=\"toggleRow\"\n v-bind=\"getColumnPT('rowToggleButton')\"\n data-pc-group-section=\"rowactionbutton\"\n >\n <component v-if=\"column.children && column.children.rowtogglericon\" :is=\"column.children.rowtogglericon\" :class=\"cx('rowToggleIcon')\" :rowExpanded=\"isRowExpanded\" />\n <template v-else>\n <span v-if=\"isRowExpanded && expandedRowIcon\" :class=\"[cx('rowToggleIcon'), expandedRowIcon]\" />\n <ChevronDownIcon v-else-if=\"isRowExpanded && !expandedRowIcon\" :class=\"cx('rowToggleIcon')\" v-bind=\"getColumnPT('rowToggleIcon')\" />\n <span v-else-if=\"!isRowExpanded && collapsedRowIcon\" :class=\"[cx('rowToggleIcon'), collapsedRowIcon]\" />\n <ChevronRightIcon v-else-if=\"!isRowExpanded && !collapsedRowIcon\" :class=\"cx('rowToggleIcon')\" v-bind=\"getColumnPT('rowToggleIcon')\" />\n </template>\n </button>\n </template>\n <template v-else-if=\"editMode === 'row' && columnProp('rowEditor')\">\n <Button\n v-if=\"!d_editing\"\n :class=\"cx('pcRowEditorInit')\"\n :aria-label=\"initButtonAriaLabel\"\n :unstyled=\"unstyled\"\n @click=\"onRowEditInit\"\n v-bind=\"editButtonProps.init\"\n :pt=\"getColumnPT('pcRowEditorInit')\"\n data-pc-group-section=\"rowactionbutton\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"(column.children && column.children.roweditoriniticon) || 'PencilIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcRowEditorInit')['icon']\" />\n </template>\n </Button>\n <Button\n v-if=\"d_editing\"\n :class=\"cx('pcRowEditorSave')\"\n :aria-label=\"saveButtonAriaLabel\"\n :unstyled=\"unstyled\"\n @click=\"onRowEditSave\"\n v-bind=\"editButtonProps.save\"\n :pt=\"getColumnPT('pcRowEditorSave')\"\n data-pc-group-section=\"rowactionbutton\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"(column.children && column.children.roweditorsaveicon) || 'CheckIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcRowEditorSave')['icon']\" />\n </template>\n </Button>\n <Button\n v-if=\"d_editing\"\n :class=\"cx('pcRowEditorCancel')\"\n :aria-label=\"cancelButtonAriaLabel\"\n :unstyled=\"unstyled\"\n @click=\"onRowEditCancel\"\n v-bind=\"editButtonProps.cancel\"\n :pt=\"getColumnPT('pcRowEditorCancel')\"\n data-pc-group-section=\"rowactionbutton\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"(column.children && column.children.roweditorcancelicon) || 'TimesIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcRowEditorCancel')['icon']\" />\n </template>\n </Button>\n </template>\n <template v-else>{{ resolveFieldData() }}</template>\n </td>\n</template>\n\n<script>\nimport { getAttribute, getFirstFocusableElement, getNextElementSibling, getOuterWidth, getPreviousElementSibling, invokeElementMethod } from '@primeuix/utils/dom';\nimport { resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport BarsIcon from '@primevue/icons/bars';\nimport CheckIcon from '@primevue/icons/check';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport PencilIcon from '@primevue/icons/pencil';\nimport TimesIcon from '@primevue/icons/times';\nimport Button from 'primevue/button';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\nimport RowCheckbox from './RowCheckbox.vue';\nimport RowRadioButton from './RowRadioButton.vue';\n\nexport default {\n name: 'BodyCell',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['cell-edit-init', 'cell-edit-complete', 'cell-edit-cancel', 'row-edit-init', 'row-edit-save', 'row-edit-cancel', 'row-toggle', 'radio-change', 'checkbox-change', 'editing-meta-change'],\n props: {\n rowData: {\n type: Object,\n default: null\n },\n column: {\n type: Object,\n default: null\n },\n frozenRow: {\n type: Boolean,\n default: false\n },\n rowIndex: {\n type: Number,\n default: null\n },\n index: {\n type: Number,\n default: null\n },\n isRowExpanded: {\n type: Boolean,\n default: false\n },\n selected: {\n type: Boolean,\n default: false\n },\n editing: {\n type: Boolean,\n default: false\n },\n editingMeta: {\n type: Object,\n default: null\n },\n editMode: {\n type: String,\n default: null\n },\n virtualScrollerContentProps: {\n type: Object,\n default: null\n },\n ariaControls: {\n type: String,\n default: null\n },\n name: {\n type: String,\n default: null\n },\n expandedRowIcon: {\n type: String,\n default: null\n },\n collapsedRowIcon: {\n type: String,\n default: null\n },\n editButtonProps: {\n type: Object,\n default: null\n }\n },\n documentEditListener: null,\n selfClick: false,\n overlayEventListener: null,\n data() {\n return {\n d_editing: this.editing,\n styleObject: {}\n };\n },\n watch: {\n editing(newValue) {\n this.d_editing = newValue;\n },\n '$data.d_editing': function (newValue) {\n this.$emit('editing-meta-change', { data: this.rowData, field: this.field || `field_${this.index}`, index: this.rowIndex, editing: newValue });\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 if (this.d_editing && (this.editMode === 'cell' || (this.editMode === 'row' && this.columnProp('rowEditor')))) {\n setTimeout(() => {\n const focusableEl = getFirstFocusableElement(this.$el);\n\n focusableEl && focusableEl.focus();\n }, 1);\n }\n },\n beforeUnmount() {\n if (this.overlayEventListener) {\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\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 size: this.$parentInstance?.$parentInstance?.size,\n showGridlines: this.$parentInstance?.$parentInstance?.showGridlines\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 resolveFieldData() {\n return resolveFieldData(this.rowData, this.field);\n },\n toggleRow(event) {\n this.$emit('row-toggle', {\n originalEvent: event,\n data: this.rowData\n });\n },\n toggleRowWithRadio(event, index) {\n this.$emit('radio-change', { originalEvent: event.originalEvent, index: index, data: event.data });\n },\n toggleRowWithCheckbox(event, index) {\n this.$emit('checkbox-change', { originalEvent: event.originalEvent, index: index, data: event.data });\n },\n isEditable() {\n return this.column.children && this.column.children.editor != null;\n },\n bindDocumentEditListener() {\n if (!this.documentEditListener) {\n this.documentEditListener = (event) => {\n if (!this.selfClick) {\n this.completeEdit(event, 'outside');\n }\n\n this.selfClick = false;\n };\n\n document.addEventListener('click', this.documentEditListener);\n }\n },\n unbindDocumentEditListener() {\n if (this.documentEditListener) {\n document.removeEventListener('click', this.documentEditListener);\n this.documentEditListener = null;\n this.selfClick = false;\n }\n },\n switchCellToViewMode() {\n this.d_editing = false;\n this.unbindDocumentEditListener();\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n },\n onClick(event) {\n if (this.editMode === 'cell' && this.isEditable()) {\n this.selfClick = true;\n\n if (!this.d_editing) {\n this.d_editing = true;\n this.bindDocumentEditListener();\n this.$emit('cell-edit-init', { originalEvent: event, data: this.rowData, field: this.field, index: this.rowIndex });\n\n this.overlayEventListener = (e) => {\n if (this.$el && this.$el.contains(e.target)) {\n this.selfClick = true;\n }\n };\n\n OverlayEventBus.on('overlay-click', this.overlayEventListener);\n }\n }\n },\n completeEdit(event, type) {\n const completeEvent = {\n originalEvent: event,\n data: this.rowData,\n newData: this.editingRowData,\n value: this.rowData[this.field],\n newValue: this.editingRowData[this.field],\n field: this.field,\n index: this.rowIndex,\n type: type,\n defaultPrevented: false,\n preventDefault: function () {\n this.defaultPrevented = true;\n }\n };\n\n this.$emit('cell-edit-complete', completeEvent);\n\n if (!completeEvent.defaultPrevented) {\n this.switchCellToViewMode();\n }\n },\n onKeyDown(event) {\n if (this.editMode === 'cell') {\n switch (event.code) {\n case 'Enter':\n case 'NumpadEnter':\n this.completeEdit(event, 'enter');\n break;\n\n case 'Escape':\n this.switchCellToViewMode();\n this.$emit('cell-edit-cancel', { originalEvent: event, data: this.rowData, field: this.field, index: this.rowIndex });\n break;\n\n case 'Tab':\n this.completeEdit(event, 'tab');\n\n if (event.shiftKey) this.moveToPreviousCell(event);\n else this.moveToNextCell(event);\n break;\n\n default:\n break;\n }\n }\n },\n moveToPreviousCell(event) {\n let currentCell = this.findCell(event.target);\n let targetCell = this.findPreviousEditableColumn(currentCell);\n\n if (targetCell) {\n invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n },\n moveToNextCell(event) {\n let currentCell = this.findCell(event.target);\n let targetCell = this.findNextEditableColumn(currentCell);\n\n if (targetCell) {\n invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n },\n findCell(element) {\n if (element) {\n let cell = element;\n\n while (cell && !getAttribute(cell, 'data-p-cell-editing')) {\n cell = cell.parentElement;\n }\n\n return cell;\n } else {\n return null;\n }\n },\n findPreviousEditableColumn(cell) {\n let prevCell = cell.previousElementSibling;\n\n if (!prevCell) {\n let previousRow = cell.parentElement.previousElementSibling;\n\n if (previousRow) {\n prevCell = previousRow.lastElementChild;\n }\n }\n\n if (prevCell) {\n if (getAttribute(prevCell, 'data-p-editable-column')) return prevCell;\n else return this.findPreviousEditableColumn(prevCell);\n } else {\n return null;\n }\n },\n findNextEditableColumn(cell) {\n let nextCell = cell.nextElementSibling;\n\n if (!nextCell) {\n let nextRow = cell.parentElement.nextElementSibling;\n\n if (nextRow) {\n nextCell = nextRow.firstElementChild;\n }\n }\n\n if (nextCell) {\n if (getAttribute(nextCell, 'data-p-editable-column')) return nextCell;\n else return this.findNextEditableColumn(nextCell);\n } else {\n return null;\n }\n },\n onRowEditInit(event) {\n this.$emit('row-edit-init', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n },\n onRowEditSave(event) {\n this.$emit('row-edit-save', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n },\n onRowEditCancel(event) {\n this.$emit('row-edit-cancel', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n },\n editorInitCallback(event) {\n this.$emit('row-edit-init', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n },\n editorSaveCallback(event) {\n if (this.editMode === 'row') {\n this.$emit('row-edit-save', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n } else {\n this.completeEdit(event, 'enter');\n }\n },\n editorCancelCallback(event) {\n if (this.editMode === 'row') {\n this.$emit('row-edit-cancel', { originalEvent: event, data: this.rowData, newData: this.editingRowData, field: this.field, index: this.rowIndex });\n } else {\n this.switchCellToViewMode();\n this.$emit('cell-edit-cancel', { originalEvent: event, data: this.rowData, field: this.field, index: this.rowIndex });\n }\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.right || 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.left || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n }\n },\n getVirtualScrollerProp(option) {\n return this.virtualScrollerContentProps ? this.virtualScrollerContentProps[option] : null;\n }\n },\n computed: {\n editingRowData() {\n return this.editingMeta[this.rowIndex] ? this.editingMeta[this.rowIndex].data : this.rowData;\n },\n field() {\n return this.columnProp('field');\n },\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 loading() {\n return this.getVirtualScrollerProp('loading');\n },\n loadingOptions() {\n const getLoaderOptions = this.getVirtualScrollerProp('getLoaderOptions');\n\n return (\n getLoaderOptions &&\n getLoaderOptions(this.rowIndex, {\n cellIndex: this.index,\n cellFirst: this.index === 0,\n cellLast: this.index === this.getVirtualScrollerProp('columns').length - 1,\n cellEven: this.index % 2 === 0,\n cellOdd: this.index % 2 !== 0,\n column: this.column,\n field: this.field\n })\n );\n },\n expandButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? (this.isRowExpanded ? this.$primevue.config.locale.aria.expandRow : this.$primevue.config.locale.aria.collapseRow) : undefined;\n },\n initButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.editRow : undefined;\n },\n saveButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.saveEdit : undefined;\n },\n cancelButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.cancelEdit : undefined;\n }\n },\n components: {\n DTRadioButton: RowRadioButton,\n DTCheckbox: RowCheckbox,\n Button,\n ChevronDownIcon,\n ChevronRightIcon,\n BarsIcon,\n PencilIcon,\n CheckIcon,\n TimesIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <template v-if=\"!empty\">\n <tr v-if=\"templates['groupheader'] && rowGroupMode === 'subheader' && shouldRenderRowGroupHeader\" :class=\"cx('rowGroupHeader')\" :style=\"rowGroupHeaderStyle\" role=\"row\" v-bind=\"ptm('rowGroupHeader')\">\n <td :colspan=\"columnsLength - 1\" v-bind=\"{ ...getColumnPT('bodycell'), ...ptm('rowGroupHeaderCell') }\">\n <button v-if=\"expandableRowGroups\" :class=\"cx('rowToggleButton')\" @click=\"onRowGroupToggle\" type=\"button\" v-bind=\"ptm('rowToggleButton')\">\n <component v-if=\"templates['rowtoggleicon'] || templates['rowgrouptogglericon']\" :is=\"templates['rowtoggleicon'] || templates['rowgrouptogglericon']\" :expanded=\"isRowGroupExpanded\" />\n <template v-else>\n <span v-if=\"isRowGroupExpanded && expandedRowIcon\" :class=\"[cx('rowToggleIcon'), expandedRowIcon]\" v-bind=\"ptm('rowToggleIcon')\" />\n <ChevronDownIcon v-else-if=\"isRowGroupExpanded && !expandedRowIcon\" :class=\"cx('rowToggleIcon')\" v-bind=\"ptm('rowToggleIcon')\" />\n <span v-else-if=\"!isRowGroupExpanded && collapsedRowIcon\" :class=\"[cx('rowToggleIcon'), collapsedRowIcon]\" v-bind=\"ptm('rowToggleIcon')\" />\n <ChevronRightIcon v-else-if=\"!isRowGroupExpanded && !collapsedRowIcon\" :class=\"cx('rowToggleIcon')\" v-bind=\"ptm('rowToggleIcon')\" />\n </template>\n </button>\n <component :is=\"templates['groupheader']\" :data=\"rowData\" :index=\"rowIndex\" />\n </td>\n </tr>\n <tr\n v-if=\"expandableRowGroups ? isRowGroupExpanded : true\"\n :class=\"rowClasses\"\n :style=\"rowStyles\"\n :tabindex=\"rowTabindex\"\n role=\"row\"\n :aria-selected=\"selectionMode ? isSelected : null\"\n @click=\"onRowClick\"\n @dblclick=\"onRowDblClick\"\n @contextmenu=\"onRowRightClick\"\n @touchend=\"onRowTouchEnd\"\n @keydown.self=\"onRowKeyDown\"\n @mousedown=\"onRowMouseDown\"\n @dragstart=\"onRowDragStart\"\n @dragover=\"onRowDragOver\"\n @dragleave=\"onRowDragLeave\"\n @dragend=\"onRowDragEnd\"\n @drop=\"onRowDrop\"\n v-bind=\"getBodyRowPTOptions('bodyRow')\"\n :data-p-index=\"rowIndex\"\n :data-p-selectable-row=\"selectionMode ? true : false\"\n :data-p-selected=\"selection && isSelected\"\n :data-p-selected-contextmenu=\"contextMenuSelection && isSelectedWithContextMenu\"\n >\n <template v-for=\"(col, i) of columns\">\n <DTBodyCell\n v-if=\"shouldRenderBodyCell(col)\"\n :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\"\n :rowData=\"rowData\"\n :column=\"col\"\n :rowIndex=\"rowIndex\"\n :index=\"i\"\n :selected=\"isSelected\"\n :frozenRow=\"frozenRow\"\n :rowspan=\"rowGroupMode === 'rowspan' ? calculateRowGroupSize(col) : null\"\n :editMode=\"editMode\"\n :editing=\"editMode === 'row' && isRowEditing\"\n :editingMeta=\"editingMeta\"\n :virtualScrollerContentProps=\"virtualScrollerContentProps\"\n :ariaControls=\"expandedRowId + '_' + rowIndex + '_expansion'\"\n :name=\"nameAttributeSelector\"\n :isRowExpanded=\"d_rowExpanded\"\n :expandedRowIcon=\"expandedRowIcon\"\n :collapsedRowIcon=\"collapsedRowIcon\"\n :editButtonProps=\"editButtonProps\"\n @radio-change=\"onRadioChange\"\n @checkbox-change=\"onCheckboxChange\"\n @row-toggle=\"onRowToggle\"\n @cell-edit-init=\"onCellEditInit\"\n @cell-edit-complete=\"onCellEditComplete\"\n @cell-edit-cancel=\"onCellEditCancel\"\n @row-edit-init=\"onRowEditInit\"\n @row-edit-save=\"onRowEditSave\"\n @row-edit-cancel=\"onRowEditCancel\"\n @editing-meta-change=\"onEditingMetaChange\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </tr>\n <tr v-if=\"templates['expansion'] && expandedRows && d_rowExpanded\" :id=\"expandedRowId + '_' + rowIndex + '_expansion'\" :class=\"cx('rowExpansion')\" role=\"row\" v-bind=\"ptm('rowExpansion')\">\n <td :colspan=\"columnsLength\" v-bind=\"{ ...getColumnPT('bodycell'), ...ptm('rowExpansionCell') }\">\n <component :is=\"templates['expansion']\" :data=\"rowData\" :index=\"rowIndex\" />\n </td>\n </tr>\n <tr v-if=\"templates['groupfooter'] && rowGroupMode === 'subheader' && shouldRenderRowGroupFooter\" :class=\"cx('rowGroupFooter')\" role=\"row\" v-bind=\"ptm('rowGroupFooter')\">\n <td :colspan=\"columnsLength - 1\" v-bind=\"{ ...getColumnPT('bodycell'), ...ptm('rowGroupFooterCell') }\">\n <component :is=\"templates['groupfooter']\" :data=\"rowData\" :index=\"rowIndex\" />\n </td>\n </tr>\n </template>\n <tr v-else :class=\"cx('emptyMessage')\" role=\"row\" v-bind=\"ptm('emptyMessage')\">\n <td :colspan=\"columnsLength\" v-bind=\"{ ...getColumnPT('bodycell'), ...ptm('emptyMessageCell') }\">\n <component v-if=\"templates.empty\" :is=\"templates.empty\" />\n </td>\n </tr>\n</template>\n\n<script>\nimport { equals, isNotEmpty, resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport { mergeProps } from 'vue';\nimport BodyCell from './BodyCell.vue';\n\nexport default {\n name: 'BodyRow',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: [\n 'rowgroup-toggle',\n 'row-click',\n 'row-dblclick',\n 'row-rightclick',\n 'row-touchend',\n 'row-keydown',\n 'row-mousedown',\n 'row-dragstart',\n 'row-dragover',\n 'row-dragleave',\n 'row-dragend',\n 'row-drop',\n 'row-toggle',\n 'radio-change',\n 'checkbox-change',\n 'cell-edit-init',\n 'cell-edit-complete',\n 'cell-edit-cancel',\n 'row-edit-init',\n 'row-edit-save',\n 'row-edit-cancel',\n 'editing-meta-change'\n ],\n props: {\n rowData: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: 0\n },\n value: {\n type: Array,\n default: null\n },\n columns: {\n type: null,\n default: null\n },\n frozenRow: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n rowGroupMode: {\n type: String,\n default: null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n expandableRowGroups: {\n type: Boolean,\n default: false\n },\n expandedRowGroups: {\n type: Array,\n default: null\n },\n first: {\n type: Number,\n default: 0\n },\n dataKey: {\n type: [String, Function],\n default: null\n },\n expandedRowIcon: {\n type: String,\n default: null\n },\n collapsedRowIcon: {\n type: String,\n default: null\n },\n expandedRows: {\n type: [Array, Object],\n default: null\n },\n selection: {\n type: [Array, Object],\n default: null\n },\n selectionKeys: {\n type: null,\n default: null\n },\n selectionMode: {\n type: String,\n default: null\n },\n contextMenu: {\n type: Boolean,\n default: false\n },\n contextMenuSelection: {\n type: Object,\n default: null\n },\n rowClass: {\n type: null,\n default: null\n },\n rowStyle: {\n type: null,\n default: null\n },\n rowGroupHeaderStyle: {\n type: null,\n default: null\n },\n editMode: {\n type: String,\n default: null\n },\n compareSelectionBy: {\n type: String,\n default: 'deepEquals'\n },\n editingRows: {\n type: Array,\n default: null\n },\n editingRowKeys: {\n type: null,\n default: null\n },\n editingMeta: {\n type: Object,\n default: null\n },\n templates: {\n type: null,\n default: null\n },\n scrollable: {\n type: Boolean,\n default: false\n },\n editButtonProps: {\n type: Object,\n default: null\n },\n virtualScrollerContentProps: {\n type: Object,\n default: null\n },\n isVirtualScrollerDisabled: {\n type: Boolean,\n default: false\n },\n expandedRowId: {\n type: String,\n default: null\n },\n nameAttributeSelector: {\n type: String,\n default: null\n }\n },\n data() {\n return {\n d_rowExpanded: false\n };\n },\n watch: {\n expandedRows: {\n deep: true,\n immediate: true,\n handler(newValue) {\n this.d_rowExpanded = this.dataKey ? newValue?.[resolveFieldData(this.rowData, this.dataKey)] !== undefined : newValue?.some((d) => this.equals(this.rowData, d));\n }\n }\n },\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n //@todo - update this method\n getColumnPT(key) {\n const columnMetaData = {\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.columnProp({}, 'pt'), key, columnMetaData));\n },\n //@todo - update this method\n getBodyRowPTOptions(key) {\n const datatable = this.$parentInstance?.$parentInstance;\n\n return this.ptm(key, {\n context: {\n index: this.rowIndex,\n selectable: datatable?.rowHover || datatable?.selectionMode,\n selected: this.isSelected,\n stripedRows: datatable?.stripedRows || false\n }\n });\n },\n shouldRenderBodyCell(column) {\n const isHidden = this.columnProp(column, 'hidden');\n\n if (this.rowGroupMode && !isHidden) {\n const field = this.columnProp(column, 'field');\n\n if (this.rowGroupMode === 'subheader') {\n return this.groupRowsBy !== field;\n } else if (this.rowGroupMode === 'rowspan') {\n if (this.isGrouped(column)) {\n let prevRowData = this.value[this.rowIndex - 1];\n\n if (prevRowData) {\n const currentRowFieldData = resolveFieldData(this.value[this.rowIndex], field);\n const previousRowFieldData = resolveFieldData(prevRowData, field);\n\n return currentRowFieldData !== previousRowFieldData;\n } else {\n return true;\n }\n } else {\n return true;\n }\n }\n } else {\n return !isHidden;\n }\n },\n calculateRowGroupSize(column) {\n if (this.isGrouped(column)) {\n let index = this.rowIndex;\n const field = this.columnProp(column, 'field');\n const currentRowFieldData = resolveFieldData(this.value[index], field);\n let nextRowFieldData = currentRowFieldData;\n let groupRowSpan = 0;\n\n while (currentRowFieldData === nextRowFieldData) {\n groupRowSpan++;\n let nextRowData = this.value[++index];\n\n if (nextRowData) {\n nextRowFieldData = resolveFieldData(nextRowData, field);\n } else {\n break;\n }\n }\n\n return groupRowSpan === 1 ? null : groupRowSpan;\n } else {\n return null;\n }\n },\n isGrouped(column) {\n const field = this.columnProp(column, 'field');\n\n if (this.groupRowsBy && field) {\n if (Array.isArray(this.groupRowsBy)) return this.groupRowsBy.indexOf(field) > -1;\n else return this.groupRowsBy === field;\n } else {\n return false;\n }\n },\n findIndexInSelection(data) {\n return this.findIndex(data, this.selection);\n },\n findIndex(data, collection) {\n let index = -1;\n\n if (collection && collection.length) {\n for (let i = 0; i < collection.length; i++) {\n if (this.equals(data, collection[i])) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n },\n equals(data1, data2) {\n return this.compareSelectionBy === 'equals' ? data1 === data2 : equals(data1, data2, this.dataKey);\n },\n onRowGroupToggle(event) {\n this.$emit('rowgroup-toggle', { originalEvent: event, data: this.rowData });\n },\n onRowClick(event) {\n this.$emit('row-click', { originalEvent: event, data: this.rowData, index: this.rowIndex });\n },\n onRowDblClick(event) {\n this.$emit('row-dblclick', { originalEvent: event, data: this.rowData, index: this.rowIndex });\n },\n onRowRightClick(event) {\n this.$emit('row-rightclick', { originalEvent: event, data: this.rowData, index: this.rowIndex });\n },\n onRowTouchEnd(event) {\n this.$emit('row-touchend', event);\n },\n onRowKeyDown(event) {\n this.$emit('row-keydown', { originalEvent: event, data: this.rowData, index: this.rowIndex });\n },\n onRowMouseDown(event) {\n this.$emit('row-mousedown', event);\n },\n onRowDragStart(event) {\n this.$emit('row-dragstart', { originalEvent: event, index: this.rowIndex });\n },\n onRowDragOver(event) {\n this.$emit('row-dragover', { originalEvent: event, index: this.rowIndex });\n },\n onRowDragLeave(event) {\n this.$emit('row-dragleave', event);\n },\n onRowDragEnd(event) {\n this.$emit('row-dragend', event);\n },\n onRowDrop(event) {\n this.$emit('row-drop', event);\n },\n onRowToggle(event) {\n this.d_rowExpanded = !this.d_rowExpanded;\n\n this.$emit('row-toggle', { ...event, expanded: this.d_rowExpanded });\n },\n onRadioChange(event) {\n this.$emit('radio-change', event);\n },\n onCheckboxChange(event) {\n this.$emit('checkbox-change', event);\n },\n onCellEditInit(event) {\n this.$emit('cell-edit-init', event);\n },\n onCellEditComplete(event) {\n this.$emit('cell-edit-complete', event);\n },\n onCellEditCancel(event) {\n this.$emit('cell-edit-cancel', event);\n },\n onRowEditInit(event) {\n this.$emit('row-edit-init', event);\n },\n onRowEditSave(event) {\n this.$emit('row-edit-save', event);\n },\n onRowEditCancel(event) {\n this.$emit('row-edit-cancel', event);\n },\n onEditingMetaChange(event) {\n this.$emit('editing-meta-change', event);\n },\n getVirtualScrollerProp(option, options) {\n options = options || this.virtualScrollerContentProps;\n\n return options ? options[option] : null;\n }\n },\n computed: {\n rowIndex() {\n const getItemOptions = this.getVirtualScrollerProp('getItemOptions');\n\n return getItemOptions ? getItemOptions(this.index).index : this.index;\n },\n rowStyles() {\n return this.rowStyle?.(this.rowData);\n },\n rowClasses() {\n let rowStyleClass = [];\n let columnSelectionMode = null;\n\n if (this.rowClass) {\n let rowClassValue = this.rowClass(this.rowData);\n\n if (rowClassValue) {\n rowStyleClass.push(rowClassValue);\n }\n }\n\n if (this.columns) {\n for (let col of this.columns) {\n let _selectionMode = this.columnProp(col, 'selectionMode');\n\n if (isNotEmpty(_selectionMode)) {\n columnSelectionMode = _selectionMode;\n break;\n }\n }\n }\n\n return [this.cx('row', { rowData: this.rowData, index: this.rowIndex, columnSelectionMode }), rowStyleClass];\n },\n rowTabindex() {\n if (this.selection === null && (this.selectionMode === 'single' || this.selectionMode === 'multiple')) {\n return this.rowIndex === 0 ? 0 : -1;\n }\n\n return -1;\n },\n isRowEditing() {\n if (this.rowData && this.editingRows) {\n if (this.dataKey) return this.editingRowKeys ? this.editingRowKeys[resolveFieldData(this.rowData, this.dataKey)] !== undefined : false;\n else return this.findIndex(this.rowData, this.editingRows) > -1;\n }\n\n return false;\n },\n isRowGroupExpanded() {\n if (this.expandableRowGroups && this.expandedRowGroups) {\n const groupFieldValue = resolveFieldData(this.rowData, this.groupRowsBy);\n\n return this.expandedRowGroups.indexOf(groupFieldValue) > -1;\n }\n\n return false;\n },\n isSelected() {\n if (this.rowData && this.selection) {\n if (this.dataKey) {\n return this.selectionKeys ? this.selectionKeys[resolveFieldData(this.rowData, this.dataKey)] !== undefined : false;\n } else {\n if (this.selection instanceof Array) return this.findIndexInSelection(this.rowData) > -1;\n else return this.equals(this.rowData, this.selection);\n }\n }\n\n return false;\n },\n isSelectedWithContextMenu() {\n if (this.rowData && this.contextMenuSelection) {\n return this.equals(this.rowData, this.contextMenuSelection, this.dataKey);\n }\n\n return false;\n },\n shouldRenderRowGroupHeader() {\n const currentRowFieldData = resolveFieldData(this.rowData, this.groupRowsBy);\n const prevRowData = this.value[this.rowIndex - 1];\n\n if (prevRowData) {\n const previousRowFieldData = resolveFieldData(prevRowData, this.groupRowsBy);\n\n return currentRowFieldData !== previousRowFieldData;\n } else {\n return true;\n }\n },\n shouldRenderRowGroupFooter() {\n if (this.expandableRowGroups && !this.isRowGroupExpanded) {\n return false;\n } else {\n let currentRowFieldData = resolveFieldData(this.rowData, this.groupRowsBy);\n let nextRowData = this.value[this.rowIndex + 1];\n\n if (nextRowData) {\n let nextRowFieldData = resolveFieldData(nextRowData, this.groupRowsBy);\n\n return currentRowFieldData !== nextRowFieldData;\n } else {\n return true;\n }\n }\n },\n columnsLength() {\n if (this.columns) {\n let hiddenColLength = 0;\n\n this.columns.forEach((column) => {\n if (this.columnProp(column, 'selectionMode') === 'single') hiddenColLength--;\n if (this.columnProp(column, 'hidden')) hiddenColLength++;\n });\n\n return this.columns.length - hiddenColLength;\n }\n\n return 0;\n }\n },\n components: {\n DTBodyCell: BodyCell,\n ChevronDownIcon: ChevronDownIcon,\n ChevronRightIcon: ChevronRightIcon\n }\n};\n</script>\n","<template>\n <template v-if=\"!empty\">\n <tr v-if=\"templates['groupheader'] && rowGroupMode === 'subheader' && shouldRenderRowGroupHeader\" :class=\"cx('rowGroupHeader')\" :style=\"rowGroupHeaderStyle\" role=\"row\" v-bind=\"ptm('rowGroupHeader')\">\n <td :colspan=\"columnsLength - 1\" v-bind=\"{ ...getColumnPT('bodycell'), ...ptm('rowGroupHeaderCell') }\">\n <button v-if=\"expandableRowGroups\" :class=\"cx('rowToggleButton')\" @click=\"onRowGroupToggle\" type=\"button\" v-bind=\"ptm('rowToggleButton')\">\n <component v-if=\"templates['rowtoggleicon'] || templates['rowgrouptogglericon']\" :is=\"templates['rowtoggleicon'] || templates['rowgrouptogglericon']\" :expanded=\"isRowGroupExpanded\" />\n <template v-else>\n <span v-if=\"isRowGroupExpanded && expandedRowIcon\" :class=\"[cx('rowToggleIcon'), expandedRowIcon]\" v-bind=\"ptm('rowToggleIcon')\" />\n <ChevronDownIcon v-else-if=\"isRowGroupExpanded && !expandedRowIcon\" :class=\"cx('rowToggleIcon')\" v-bind=\"ptm('rowToggleIcon')\" />\n <span v-else-if=\"!isRowGroupExpanded && collapsedRowIcon\" :class=\"[cx('rowToggleIcon'), collapsedRowIcon]\" v-bind=\"ptm('rowToggleIcon')\" />\n <ChevronRightIcon v-else-if=\"!isRowGroupExpanded && !collapsedRowIcon\" :class=\"cx('rowToggleIcon')\" v-bind=\"ptm('rowToggleIcon')\" />\n </template>\n </button>\n <component :is=\"templates['groupheader']\" :data=\"rowData\" :index=\"rowIndex\" />\n </td>\n </tr>\n <tr\n v-if=\"expandableRowGroups ? isRowGroupExpanded : true\"\n :class=\"rowClasses\"\n :style=\"rowStyles\"\n :tabindex=\"rowTabindex\"\n role=\"row\"\n :aria-selected=\"selectionMode ? isSelected : null\"\n @click=\"onRowClick\"\n @dblclick=\"onRowDblClick\"\n @contextmenu=\"onRowRightClick\"\n @touchend=\"onRowTouchEnd\"\n @keydown.self=\"onRowKeyDown\"\n @mousedown=\"onRowMouseDown\"\n @dragstart=\"onRowDragStart\"\n @dragover=\"onRowDragOver\"\n @dragleave=\"onRowDragLeave\"\n @dragend=\"onRowDragEnd\"\n @drop=\"onRowDrop\"\n v-bind=\"getBodyRowPTOptions('bodyRow')\"\n :data-p-index=\"rowIndex\"\n :data-p-selectable-row=\"selectionMode ? true : false\"\n :data-p-selected=\"selection && isSelected\"\n :data-p-selected-contextmenu=\"contextMenuSelection && isSelectedWithContextMenu\"\n >\n <template v-for=\"(col, i) of columns\">\n <DTBodyCell\n v-if=\"shouldRenderBodyCell(col)\"\n :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\"\n :rowData=\"rowData\"\n :column=\"col\"\n :rowIndex=\"rowIndex\"\n :index=\"i\"\n :selected=\"isSelected\"\n :frozenRow=\"frozenRow\"\n :rowspan=\"rowGroupMode === 'rowspan' ? calculateRowGroupSize(col) : null\"\n :editMode=\"editMode\"\n :editing=\"editMode === 'row' && isRowEditing\"\n :editingMeta=\"editingMeta\"\n :virtualScrollerContentProps=\"virtualScrollerContentProps\"\n :ariaControls=\"expandedRowId + '_' + rowIndex + '_expansion'\"\n :name=\"nameAttributeSelector\"\n :isRowExpanded=\"d_rowExpanded\"\n :expandedRowIcon=\"expandedRowIcon\"\n :collapsedRowIcon=\"collapsedRowIcon\"\n :editButtonProps=\"editButtonProps\"\n @radio-change=\"onRadioChange\"\n @checkbox-change=\"onCheckboxChange\"\n @row-toggle=\"onRowToggle\"\n @cell-edit-init=\"onCellEditInit\"\n @cell-edit-complete=\"onCellEditComplete\"\n @cell-edit-cancel=\"onCellEditCancel\"\n @row-edit-init=\"onRowEditInit\"\n @row-edit-save=\"onRowEditSave\"\n @row-edit-cancel=\"onRowEditCancel\"\n @editing-meta-change=\"onEditingMetaChange\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </tr>\n <tr v-if=\"templates['expansion'] && expandedRows && d_rowExpanded\" :id=\"expandedRowId + '_' + rowIndex + '_expansion'\" :class=\"cx('rowExpansion')\" role=\"row\" v-bind=\"ptm('rowExpansion')\">\n <td :colspan=\"columnsLength\" v-bind=\"{ ...getColumnPT('bodycell'), ...ptm('rowExpansionCell') }\">\n <component :is=\"templates['expansion']\" :data=\"rowData\" :index=\"rowIndex\" />\n </td>\n </tr>\n <tr v-if=\"templates['groupfooter'] && rowGroupMode === 'subheader' && shouldRenderRowGroupFooter\" :class=\"cx('rowGroupFooter')\" role=\"row\" v-bind=\"ptm('rowGroupFooter')\">\n <td :colspan=\"columnsLength - 1\" v-bind=\"{ ...getColumnPT('bodycell'), ...ptm('rowGroupFooterCell') }\">\n <component :is=\"templates['groupfooter']\" :data=\"rowData\" :index=\"rowIndex\" />\n </td>\n </tr>\n </template>\n <tr v-else :class=\"cx('emptyMessage')\" role=\"row\" v-bind=\"ptm('emptyMessage')\">\n <td :colspan=\"columnsLength\" v-bind=\"{ ...getColumnPT('bodycell'), ...ptm('emptyMessageCell') }\">\n <component v-if=\"templates.empty\" :is=\"templates.empty\" />\n </td>\n </tr>\n</template>\n\n<script>\nimport { equals, isNotEmpty, resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { getVNodeProp } from '@primevue/core/utils';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport { mergeProps } from 'vue';\nimport BodyCell from './BodyCell.vue';\n\nexport default {\n name: 'BodyRow',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: [\n 'rowgroup-toggle',\n 'row-click',\n 'row-dblclick',\n 'row-rightclick',\n 'row-touchend',\n 'row-keydown',\n 'row-mousedown',\n 'row-dragstart',\n 'row-dragover',\n 'row-dragleave',\n 'row-dragend',\n 'row-drop',\n 'row-toggle',\n 'radio-change',\n 'checkbox-change',\n 'cell-edit-init',\n 'cell-edit-complete',\n 'cell-edit-cancel',\n 'row-edit-init',\n 'row-edit-save',\n 'row-edit-cancel',\n 'editing-meta-change'\n ],\n props: {\n rowData: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: 0\n },\n value: {\n type: Array,\n default: null\n },\n columns: {\n type: null,\n default: null\n },\n frozenRow: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n rowGroupMode: {\n type: String,\n default: null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n expandableRowGroups: {\n type: Boolean,\n default: false\n },\n expandedRowGroups: {\n type: Array,\n default: null\n },\n first: {\n type: Number,\n default: 0\n },\n dataKey: {\n type: [String, Function],\n default: null\n },\n expandedRowIcon: {\n type: String,\n default: null\n },\n collapsedRowIcon: {\n type: String,\n default: null\n },\n expandedRows: {\n type: [Array, Object],\n default: null\n },\n selection: {\n type: [Array, Object],\n default: null\n },\n selectionKeys: {\n type: null,\n default: null\n },\n selectionMode: {\n type: String,\n default: null\n },\n contextMenu: {\n type: Boolean,\n default: false\n },\n contextMenuSelection: {\n type: Object,\n default: null\n },\n rowClass: {\n type: null,\n default: null\n },\n rowStyle: {\n type: null,\n default: null\n },\n rowGroupHeaderStyle: {\n type: null,\n default: null\n },\n editMode: {\n type: String,\n default: null\n },\n compareSelectionBy: {\n type: String,\n default: 'deepEquals'\n },\n editingRows: {\n type: Array,\n default: null\n },\n editingRowKeys: {\n type: null,\n default: null\n },\n editingMeta: {\n type: Object,\n default: null\n },\n templates: {\n type: null,\n default: null\n },\n scrollable: {\n type: Boolean,\n default: false\n },\n editButtonProps: {\n type: Object,\n default: null\n },\n virtualScrollerContentProps: {\n type: Object,\n default: null\n },\n isVirtualScrollerDisabled: {\n type: Boolean,\n default: false\n },\n expandedRowId: {\n type: String,\n default: null\n },\n nameAttributeSelector: {\n type: String,\n default: null\n }\n },\n data() {\n return {\n d_rowExpanded: false\n };\n },\n watch: {\n expandedRows: {\n deep: true,\n immediate: true,\n handler(newValue) {\n this.d_rowExpanded = this.dataKey ? newValue?.[resolveFieldData(this.rowData, this.dataKey)] !== undefined : newValue?.some((d) => this.equals(this.rowData, d));\n }\n }\n },\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n //@todo - update this method\n getColumnPT(key) {\n const columnMetaData = {\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.columnProp({}, 'pt'), key, columnMetaData));\n },\n //@todo - update this method\n getBodyRowPTOptions(key) {\n const datatable = this.$parentInstance?.$parentInstance;\n\n return this.ptm(key, {\n context: {\n index: this.rowIndex,\n selectable: datatable?.rowHover || datatable?.selectionMode,\n selected: this.isSelected,\n stripedRows: datatable?.stripedRows || false\n }\n });\n },\n shouldRenderBodyCell(column) {\n const isHidden = this.columnProp(column, 'hidden');\n\n if (this.rowGroupMode && !isHidden) {\n const field = this.columnProp(column, 'field');\n\n if (this.rowGroupMode === 'subheader') {\n return this.groupRowsBy !== field;\n } else if (this.rowGroupMode === 'rowspan') {\n if (this.isGrouped(column)) {\n let prevRowData = this.value[this.rowIndex - 1];\n\n if (prevRowData) {\n const currentRowFieldData = resolveFieldData(this.value[this.rowIndex], field);\n const previousRowFieldData = resolveFieldData(prevRowData, field);\n\n return currentRowFieldData !== previousRowFieldData;\n } else {\n return true;\n }\n } else {\n return true;\n }\n }\n } else {\n return !isHidden;\n }\n },\n calculateRowGroupSize(column) {\n if (this.isGrouped(column)) {\n let index = this.rowIndex;\n const field = this.columnProp(column, 'field');\n const currentRowFieldData = resolveFieldData(this.value[index], field);\n let nextRowFieldData = currentRowFieldData;\n let groupRowSpan = 0;\n\n while (currentRowFieldData === nextRowFieldData) {\n groupRowSpan++;\n let nextRowData = this.value[++index];\n\n if (nextRowData) {\n nextRowFieldData = resolveFieldData(nextRowData, field);\n } else {\n break;\n }\n }\n\n return groupRowSpan === 1 ? null : groupRowSpan;\n } else {\n return null;\n }\n },\n isGrouped(column) {\n const field = this.columnProp(column, 'field');\n\n if (this.groupRowsBy && field) {\n if (Array.isArray(this.groupRowsBy)) return this.groupRowsBy.indexOf(field) > -1;\n else return this.groupRowsBy === field;\n } else {\n return false;\n }\n },\n findIndexInSelection(data) {\n return this.findIndex(data, this.selection);\n },\n findIndex(data, collection) {\n let index = -1;\n\n if (collection && collection.length) {\n for (let i = 0; i < collection.length; i++) {\n if (this.equals(data, collection[i])) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n },\n equals(data1, data2) {\n return this.compareSelectionBy === 'equals' ? data1 === data2 : equals(data1, data2, this.dataKey);\n },\n onRowGroupToggle(event) {\n this.$emit('rowgroup-toggle', { originalEvent: event, data: this.rowData });\n },\n onRowClick(event) {\n this.$emit('row-click', { originalEvent: event, data: this.rowData, index: this.rowIndex });\n },\n onRowDblClick(event) {\n this.$emit('row-dblclick', { originalEvent: event, data: this.rowData, index: this.rowIndex });\n },\n onRowRightClick(event) {\n this.$emit('row-rightclick', { originalEvent: event, data: this.rowData, index: this.rowIndex });\n },\n onRowTouchEnd(event) {\n this.$emit('row-touchend', event);\n },\n onRowKeyDown(event) {\n this.$emit('row-keydown', { originalEvent: event, data: this.rowData, index: this.rowIndex });\n },\n onRowMouseDown(event) {\n this.$emit('row-mousedown', event);\n },\n onRowDragStart(event) {\n this.$emit('row-dragstart', { originalEvent: event, index: this.rowIndex });\n },\n onRowDragOver(event) {\n this.$emit('row-dragover', { originalEvent: event, index: this.rowIndex });\n },\n onRowDragLeave(event) {\n this.$emit('row-dragleave', event);\n },\n onRowDragEnd(event) {\n this.$emit('row-dragend', event);\n },\n onRowDrop(event) {\n this.$emit('row-drop', event);\n },\n onRowToggle(event) {\n this.d_rowExpanded = !this.d_rowExpanded;\n\n this.$emit('row-toggle', { ...event, expanded: this.d_rowExpanded });\n },\n onRadioChange(event) {\n this.$emit('radio-change', event);\n },\n onCheckboxChange(event) {\n this.$emit('checkbox-change', event);\n },\n onCellEditInit(event) {\n this.$emit('cell-edit-init', event);\n },\n onCellEditComplete(event) {\n this.$emit('cell-edit-complete', event);\n },\n onCellEditCancel(event) {\n this.$emit('cell-edit-cancel', event);\n },\n onRowEditInit(event) {\n this.$emit('row-edit-init', event);\n },\n onRowEditSave(event) {\n this.$emit('row-edit-save', event);\n },\n onRowEditCancel(event) {\n this.$emit('row-edit-cancel', event);\n },\n onEditingMetaChange(event) {\n this.$emit('editing-meta-change', event);\n },\n getVirtualScrollerProp(option, options) {\n options = options || this.virtualScrollerContentProps;\n\n return options ? options[option] : null;\n }\n },\n computed: {\n rowIndex() {\n const getItemOptions = this.getVirtualScrollerProp('getItemOptions');\n\n return getItemOptions ? getItemOptions(this.index).index : this.index;\n },\n rowStyles() {\n return this.rowStyle?.(this.rowData);\n },\n rowClasses() {\n let rowStyleClass = [];\n let columnSelectionMode = null;\n\n if (this.rowClass) {\n let rowClassValue = this.rowClass(this.rowData);\n\n if (rowClassValue) {\n rowStyleClass.push(rowClassValue);\n }\n }\n\n if (this.columns) {\n for (let col of this.columns) {\n let _selectionMode = this.columnProp(col, 'selectionMode');\n\n if (isNotEmpty(_selectionMode)) {\n columnSelectionMode = _selectionMode;\n break;\n }\n }\n }\n\n return [this.cx('row', { rowData: this.rowData, index: this.rowIndex, columnSelectionMode }), rowStyleClass];\n },\n rowTabindex() {\n if (this.selection === null && (this.selectionMode === 'single' || this.selectionMode === 'multiple')) {\n return this.rowIndex === 0 ? 0 : -1;\n }\n\n return -1;\n },\n isRowEditing() {\n if (this.rowData && this.editingRows) {\n if (this.dataKey) return this.editingRowKeys ? this.editingRowKeys[resolveFieldData(this.rowData, this.dataKey)] !== undefined : false;\n else return this.findIndex(this.rowData, this.editingRows) > -1;\n }\n\n return false;\n },\n isRowGroupExpanded() {\n if (this.expandableRowGroups && this.expandedRowGroups) {\n const groupFieldValue = resolveFieldData(this.rowData, this.groupRowsBy);\n\n return this.expandedRowGroups.indexOf(groupFieldValue) > -1;\n }\n\n return false;\n },\n isSelected() {\n if (this.rowData && this.selection) {\n if (this.dataKey) {\n return this.selectionKeys ? this.selectionKeys[resolveFieldData(this.rowData, this.dataKey)] !== undefined : false;\n } else {\n if (this.selection instanceof Array) return this.findIndexInSelection(this.rowData) > -1;\n else return this.equals(this.rowData, this.selection);\n }\n }\n\n return false;\n },\n isSelectedWithContextMenu() {\n if (this.rowData && this.contextMenuSelection) {\n return this.equals(this.rowData, this.contextMenuSelection, this.dataKey);\n }\n\n return false;\n },\n shouldRenderRowGroupHeader() {\n const currentRowFieldData = resolveFieldData(this.rowData, this.groupRowsBy);\n const prevRowData = this.value[this.rowIndex - 1];\n\n if (prevRowData) {\n const previousRowFieldData = resolveFieldData(prevRowData, this.groupRowsBy);\n\n return currentRowFieldData !== previousRowFieldData;\n } else {\n return true;\n }\n },\n shouldRenderRowGroupFooter() {\n if (this.expandableRowGroups && !this.isRowGroupExpanded) {\n return false;\n } else {\n let currentRowFieldData = resolveFieldData(this.rowData, this.groupRowsBy);\n let nextRowData = this.value[this.rowIndex + 1];\n\n if (nextRowData) {\n let nextRowFieldData = resolveFieldData(nextRowData, this.groupRowsBy);\n\n return currentRowFieldData !== nextRowFieldData;\n } else {\n return true;\n }\n }\n },\n columnsLength() {\n if (this.columns) {\n let hiddenColLength = 0;\n\n this.columns.forEach((column) => {\n if (this.columnProp(column, 'selectionMode') === 'single') hiddenColLength--;\n if (this.columnProp(column, 'hidden')) hiddenColLength++;\n });\n\n return this.columns.length - hiddenColLength;\n }\n\n return 0;\n }\n },\n components: {\n DTBodyCell: BodyCell,\n ChevronDownIcon: ChevronDownIcon,\n ChevronRightIcon: ChevronRightIcon\n }\n};\n</script>\n","<template>\n <tbody :ref=\"bodyRef\" :class=\"cx('tbody')\" role=\"rowgroup\" :style=\"bodyContentStyle\" v-bind=\"ptm('tbody', ptmTBodyOptions)\">\n <template v-if=\"!empty\">\n <template v-for=\"(rowData, rowIndex) of value\" :key=\"getRowKey(rowData, rowIndex)\">\n <DTBodyRow\n :rowData=\"rowData\"\n :index=\"rowIndex\"\n :value=\"value\"\n :columns=\"columns\"\n :frozenRow=\"frozenRow\"\n :empty=\"empty\"\n :first=\"first\"\n :dataKey=\"dataKey\"\n :selection=\"selection\"\n :selectionKeys=\"selectionKeys\"\n :selectionMode=\"selectionMode\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :rowGroupMode=\"rowGroupMode\"\n :groupRowsBy=\"groupRowsBy\"\n :expandableRowGroups=\"expandableRowGroups\"\n :rowClass=\"rowClass\"\n :rowStyle=\"rowStyle\"\n :editMode=\"editMode\"\n :compareSelectionBy=\"compareSelectionBy\"\n :scrollable=\"scrollable\"\n :expandedRowIcon=\"expandedRowIcon\"\n :collapsedRowIcon=\"collapsedRowIcon\"\n :expandedRows=\"expandedRows\"\n :expandedRowGroups=\"expandedRowGroups\"\n :editingRows=\"editingRows\"\n :editingRowKeys=\"editingRowKeys\"\n :templates=\"templates\"\n :editButtonProps=\"editButtonProps\"\n :virtualScrollerContentProps=\"virtualScrollerContentProps\"\n :isVirtualScrollerDisabled=\"isVirtualScrollerDisabled\"\n :editingMeta=\"editingMeta\"\n :rowGroupHeaderStyle=\"rowGroupHeaderStyle\"\n :expandedRowId=\"expandedRowId\"\n :nameAttributeSelector=\"nameAttributeSelector\"\n @rowgroup-toggle=\"$emit('rowgroup-toggle', $event)\"\n @row-click=\"$emit('row-click', $event)\"\n @row-dblclick=\"$emit('row-dblclick', $event)\"\n @row-rightclick=\"$emit('row-rightclick', $event)\"\n @row-touchend=\"$emit('row-touchend', $event)\"\n @row-keydown=\"$emit('row-keydown', $event)\"\n @row-mousedown=\"$emit('row-mousedown', $event)\"\n @row-dragstart=\"$emit('row-dragstart', $event)\"\n @row-dragover=\"$emit('row-dragover', $event)\"\n @row-dragleave=\"$emit('row-dragleave', $event)\"\n @row-dragend=\"$emit('row-dragend', $event)\"\n @row-drop=\"$emit('row-drop', $event)\"\n @row-toggle=\"$emit('row-toggle', $event)\"\n @radio-change=\"$emit('radio-change', $event)\"\n @checkbox-change=\"$emit('checkbox-change', $event)\"\n @cell-edit-init=\"$emit('cell-edit-init', $event)\"\n @cell-edit-complete=\"$emit('cell-edit-complete', $event)\"\n @cell-edit-cancel=\"$emit('cell-edit-cancel', $event)\"\n @row-edit-init=\"$emit('row-edit-init', $event)\"\n @row-edit-save=\"$emit('row-edit-save', $event)\"\n @row-edit-cancel=\"$emit('row-edit-cancel', $event)\"\n @editing-meta-change=\"$emit('editing-meta-change', $event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </template>\n <DTBodyRow v-else :empty=\"empty\" :columns=\"columns\" :templates=\"templates\" :unstyled=\"unstyled\" :pt=\"pt\" />\n </tbody>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { UniqueComponentId } from '@primevue/core/utils';\nimport { getOuterHeight } from '@primeuix/utils/dom';\nimport { resolveFieldData } from '@primeuix/utils/object';\nimport BodyRow from './BodyRow.vue';\n\nexport default {\n name: 'TableBody',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: [\n 'rowgroup-toggle',\n 'row-click',\n 'row-dblclick',\n 'row-rightclick',\n 'row-touchend',\n 'row-keydown',\n 'row-mousedown',\n 'row-dragstart',\n 'row-dragover',\n 'row-dragleave',\n 'row-dragend',\n 'row-drop',\n 'row-toggle',\n 'radio-change',\n 'checkbox-change',\n 'cell-edit-init',\n 'cell-edit-complete',\n 'cell-edit-cancel',\n 'row-edit-init',\n 'row-edit-save',\n 'row-edit-cancel',\n 'editing-meta-change'\n ],\n props: {\n value: {\n type: Array,\n default: null\n },\n columns: {\n type: null,\n default: null\n },\n frozenRow: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n rowGroupMode: {\n type: String,\n default: null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n expandableRowGroups: {\n type: Boolean,\n default: false\n },\n expandedRowGroups: {\n type: Array,\n default: null\n },\n first: {\n type: Number,\n default: 0\n },\n dataKey: {\n type: [String, Function],\n default: null\n },\n expandedRowIcon: {\n type: String,\n default: null\n },\n collapsedRowIcon: {\n type: String,\n default: null\n },\n expandedRows: {\n type: [Array, Object],\n default: null\n },\n selection: {\n type: [Array, Object],\n default: null\n },\n selectionKeys: {\n type: null,\n default: null\n },\n selectionMode: {\n type: String,\n default: null\n },\n contextMenu: {\n type: Boolean,\n default: false\n },\n contextMenuSelection: {\n type: Object,\n default: null\n },\n rowClass: {\n type: null,\n default: null\n },\n rowStyle: {\n type: null,\n default: null\n },\n editMode: {\n type: String,\n default: null\n },\n compareSelectionBy: {\n type: String,\n default: 'deepEquals'\n },\n editingRows: {\n type: Array,\n default: null\n },\n editingRowKeys: {\n type: null,\n default: null\n },\n editingMeta: {\n type: Object,\n default: null\n },\n templates: {\n type: null,\n default: null\n },\n scrollable: {\n type: Boolean,\n default: false\n },\n editButtonProps: {\n type: Object,\n default: null\n },\n virtualScrollerContentProps: {\n type: Object,\n default: null\n },\n isVirtualScrollerDisabled: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n rowGroupHeaderStyleObject: {}\n };\n },\n mounted() {\n if (this.frozenRow) {\n this.updateFrozenRowStickyPosition();\n }\n\n if (this.scrollable && this.rowGroupMode === 'subheader') {\n this.updateFrozenRowGroupHeaderStickyPosition();\n }\n },\n updated() {\n if (this.frozenRow) {\n this.updateFrozenRowStickyPosition();\n }\n\n if (this.scrollable && this.rowGroupMode === 'subheader') {\n this.updateFrozenRowGroupHeaderStickyPosition();\n }\n },\n methods: {\n getRowKey(rowData, rowIndex) {\n return this.dataKey ? resolveFieldData(rowData, this.dataKey) : rowIndex;\n },\n updateFrozenRowStickyPosition() {\n this.$el.style.top = getOuterHeight(this.$el.previousElementSibling) + 'px';\n },\n updateFrozenRowGroupHeaderStickyPosition() {\n let tableHeaderHeight = getOuterHeight(this.$el.previousElementSibling);\n\n this.rowGroupHeaderStyleObject.top = tableHeaderHeight + 'px';\n },\n getVirtualScrollerProp(option, options) {\n options = options || this.virtualScrollerContentProps;\n\n return options ? options[option] : null;\n },\n bodyRef(el) {\n // For VirtualScroller\n const contentRef = this.getVirtualScrollerProp('contentRef');\n\n contentRef && contentRef(el);\n }\n },\n computed: {\n rowGroupHeaderStyle() {\n if (this.scrollable) {\n return { top: this.rowGroupHeaderStyleObject.top };\n }\n\n return null;\n },\n bodyContentStyle() {\n return this.getVirtualScrollerProp('contentStyle');\n },\n ptmTBodyOptions() {\n return {\n context: {\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n },\n expandedRowId() {\n return UniqueComponentId();\n },\n nameAttributeSelector() {\n return UniqueComponentId();\n }\n },\n components: {\n DTBodyRow: BodyRow\n }\n};\n</script>\n","<template>\n <tbody :ref=\"bodyRef\" :class=\"cx('tbody')\" role=\"rowgroup\" :style=\"bodyContentStyle\" v-bind=\"ptm('tbody', ptmTBodyOptions)\">\n <template v-if=\"!empty\">\n <template v-for=\"(rowData, rowIndex) of value\" :key=\"getRowKey(rowData, rowIndex)\">\n <DTBodyRow\n :rowData=\"rowData\"\n :index=\"rowIndex\"\n :value=\"value\"\n :columns=\"columns\"\n :frozenRow=\"frozenRow\"\n :empty=\"empty\"\n :first=\"first\"\n :dataKey=\"dataKey\"\n :selection=\"selection\"\n :selectionKeys=\"selectionKeys\"\n :selectionMode=\"selectionMode\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :rowGroupMode=\"rowGroupMode\"\n :groupRowsBy=\"groupRowsBy\"\n :expandableRowGroups=\"expandableRowGroups\"\n :rowClass=\"rowClass\"\n :rowStyle=\"rowStyle\"\n :editMode=\"editMode\"\n :compareSelectionBy=\"compareSelectionBy\"\n :scrollable=\"scrollable\"\n :expandedRowIcon=\"expandedRowIcon\"\n :collapsedRowIcon=\"collapsedRowIcon\"\n :expandedRows=\"expandedRows\"\n :expandedRowGroups=\"expandedRowGroups\"\n :editingRows=\"editingRows\"\n :editingRowKeys=\"editingRowKeys\"\n :templates=\"templates\"\n :editButtonProps=\"editButtonProps\"\n :virtualScrollerContentProps=\"virtualScrollerContentProps\"\n :isVirtualScrollerDisabled=\"isVirtualScrollerDisabled\"\n :editingMeta=\"editingMeta\"\n :rowGroupHeaderStyle=\"rowGroupHeaderStyle\"\n :expandedRowId=\"expandedRowId\"\n :nameAttributeSelector=\"nameAttributeSelector\"\n @rowgroup-toggle=\"$emit('rowgroup-toggle', $event)\"\n @row-click=\"$emit('row-click', $event)\"\n @row-dblclick=\"$emit('row-dblclick', $event)\"\n @row-rightclick=\"$emit('row-rightclick', $event)\"\n @row-touchend=\"$emit('row-touchend', $event)\"\n @row-keydown=\"$emit('row-keydown', $event)\"\n @row-mousedown=\"$emit('row-mousedown', $event)\"\n @row-dragstart=\"$emit('row-dragstart', $event)\"\n @row-dragover=\"$emit('row-dragover', $event)\"\n @row-dragleave=\"$emit('row-dragleave', $event)\"\n @row-dragend=\"$emit('row-dragend', $event)\"\n @row-drop=\"$emit('row-drop', $event)\"\n @row-toggle=\"$emit('row-toggle', $event)\"\n @radio-change=\"$emit('radio-change', $event)\"\n @checkbox-change=\"$emit('checkbox-change', $event)\"\n @cell-edit-init=\"$emit('cell-edit-init', $event)\"\n @cell-edit-complete=\"$emit('cell-edit-complete', $event)\"\n @cell-edit-cancel=\"$emit('cell-edit-cancel', $event)\"\n @row-edit-init=\"$emit('row-edit-init', $event)\"\n @row-edit-save=\"$emit('row-edit-save', $event)\"\n @row-edit-cancel=\"$emit('row-edit-cancel', $event)\"\n @editing-meta-change=\"$emit('editing-meta-change', $event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </template>\n <DTBodyRow v-else :empty=\"empty\" :columns=\"columns\" :templates=\"templates\" :unstyled=\"unstyled\" :pt=\"pt\" />\n </tbody>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { UniqueComponentId } from '@primevue/core/utils';\nimport { getOuterHeight } from '@primeuix/utils/dom';\nimport { resolveFieldData } from '@primeuix/utils/object';\nimport BodyRow from './BodyRow.vue';\n\nexport default {\n name: 'TableBody',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: [\n 'rowgroup-toggle',\n 'row-click',\n 'row-dblclick',\n 'row-rightclick',\n 'row-touchend',\n 'row-keydown',\n 'row-mousedown',\n 'row-dragstart',\n 'row-dragover',\n 'row-dragleave',\n 'row-dragend',\n 'row-drop',\n 'row-toggle',\n 'radio-change',\n 'checkbox-change',\n 'cell-edit-init',\n 'cell-edit-complete',\n 'cell-edit-cancel',\n 'row-edit-init',\n 'row-edit-save',\n 'row-edit-cancel',\n 'editing-meta-change'\n ],\n props: {\n value: {\n type: Array,\n default: null\n },\n columns: {\n type: null,\n default: null\n },\n frozenRow: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n rowGroupMode: {\n type: String,\n default: null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n expandableRowGroups: {\n type: Boolean,\n default: false\n },\n expandedRowGroups: {\n type: Array,\n default: null\n },\n first: {\n type: Number,\n default: 0\n },\n dataKey: {\n type: [String, Function],\n default: null\n },\n expandedRowIcon: {\n type: String,\n default: null\n },\n collapsedRowIcon: {\n type: String,\n default: null\n },\n expandedRows: {\n type: [Array, Object],\n default: null\n },\n selection: {\n type: [Array, Object],\n default: null\n },\n selectionKeys: {\n type: null,\n default: null\n },\n selectionMode: {\n type: String,\n default: null\n },\n contextMenu: {\n type: Boolean,\n default: false\n },\n contextMenuSelection: {\n type: Object,\n default: null\n },\n rowClass: {\n type: null,\n default: null\n },\n rowStyle: {\n type: null,\n default: null\n },\n editMode: {\n type: String,\n default: null\n },\n compareSelectionBy: {\n type: String,\n default: 'deepEquals'\n },\n editingRows: {\n type: Array,\n default: null\n },\n editingRowKeys: {\n type: null,\n default: null\n },\n editingMeta: {\n type: Object,\n default: null\n },\n templates: {\n type: null,\n default: null\n },\n scrollable: {\n type: Boolean,\n default: false\n },\n editButtonProps: {\n type: Object,\n default: null\n },\n virtualScrollerContentProps: {\n type: Object,\n default: null\n },\n isVirtualScrollerDisabled: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n rowGroupHeaderStyleObject: {}\n };\n },\n mounted() {\n if (this.frozenRow) {\n this.updateFrozenRowStickyPosition();\n }\n\n if (this.scrollable && this.rowGroupMode === 'subheader') {\n this.updateFrozenRowGroupHeaderStickyPosition();\n }\n },\n updated() {\n if (this.frozenRow) {\n this.updateFrozenRowStickyPosition();\n }\n\n if (this.scrollable && this.rowGroupMode === 'subheader') {\n this.updateFrozenRowGroupHeaderStickyPosition();\n }\n },\n methods: {\n getRowKey(rowData, rowIndex) {\n return this.dataKey ? resolveFieldData(rowData, this.dataKey) : rowIndex;\n },\n updateFrozenRowStickyPosition() {\n this.$el.style.top = getOuterHeight(this.$el.previousElementSibling) + 'px';\n },\n updateFrozenRowGroupHeaderStickyPosition() {\n let tableHeaderHeight = getOuterHeight(this.$el.previousElementSibling);\n\n this.rowGroupHeaderStyleObject.top = tableHeaderHeight + 'px';\n },\n getVirtualScrollerProp(option, options) {\n options = options || this.virtualScrollerContentProps;\n\n return options ? options[option] : null;\n },\n bodyRef(el) {\n // For VirtualScroller\n const contentRef = this.getVirtualScrollerProp('contentRef');\n\n contentRef && contentRef(el);\n }\n },\n computed: {\n rowGroupHeaderStyle() {\n if (this.scrollable) {\n return { top: this.rowGroupHeaderStyleObject.top };\n }\n\n return null;\n },\n bodyContentStyle() {\n return this.getVirtualScrollerProp('contentStyle');\n },\n ptmTBodyOptions() {\n return {\n context: {\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n },\n expandedRowId() {\n return UniqueComponentId();\n },\n nameAttributeSelector() {\n return UniqueComponentId();\n }\n },\n components: {\n DTBodyRow: BodyRow\n }\n};\n</script>\n","<template>\n <td :style=\"containerStyle\" :class=\"containerClass\" role=\"cell\" :colspan=\"columnProp('colspan')\" :rowspan=\"columnProp('rowspan')\" 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: 'DataTable',\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 size: this.$parentInstance?.$parentInstance?.size,\n showGridlines: this.$parentInstance?.$parentInstance?.showGridlines || false\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.right || 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.left || 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\" :colspan=\"columnProp('colspan')\" :rowspan=\"columnProp('rowspan')\" 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: 'DataTable',\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 size: this.$parentInstance?.$parentInstance?.size,\n showGridlines: this.$parentInstance?.$parentInstance?.showGridlines || false\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.right || 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.left || 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 <tfoot v-if=\"hasFooter\" :class=\"cx('tfoot')\" :style=\"sx('tfoot')\" role=\"rowgroup\" v-bind=\"columnGroup ? { ...ptm('tfoot', ptmTFootOptions), ...getColumnGroupPT('root') } : ptm('tfoot', ptmTFootOptions)\" data-pc-section=\"tfoot\">\n <tr v-if=\"!columnGroup\" role=\"row\" v-bind=\"ptm('footerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <DTFooterCell v-if=\"!columnProp(col, 'hidden')\" :column=\"col\" :pt=\"pt\" />\n </template>\n </tr>\n <template v-else>\n <tr v-for=\"(row, i) of getFooterRows()\" :key=\"i\" role=\"row\" v-bind=\"{ ...ptm('footerRow'), ...getRowPT(row, 'root', i) }\">\n <template v-for=\"(col, j) of getFooterColumns(row)\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || j\">\n <DTFooterCell v-if=\"!columnProp(col, 'hidden')\" :column=\"col\" :index=\"i\" :pt=\"pt\" />\n </template>\n </tr>\n </template>\n </tfoot>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { HelperSet, getVNodeProp } from '@primevue/core/utils';\nimport { mergeProps } from 'vue';\nimport FooterCell from './FooterCell.vue';\n\nexport default {\n name: 'TableFooter',\n hostName: 'DataTable',\n extends: BaseComponent,\n props: {\n columnGroup: {\n type: null,\n default: null\n },\n columns: {\n type: Object,\n default: null\n }\n },\n provide() {\n return {\n $rows: this.d_footerRows,\n $columns: this.d_footerColumns\n };\n },\n data() {\n return {\n d_footerRows: new HelperSet({ type: 'Row' }),\n d_footerColumns: new HelperSet({ type: 'Column' })\n };\n },\n beforeUnmount() {\n this.d_footerRows.clear();\n this.d_footerColumns.clear();\n },\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n getColumnGroupPT(key) {\n const columnGroupMetaData = {\n props: this.getColumnGroupProps(),\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n type: 'footer',\n scrollable: this.ptmTFootOptions.context.scrollable\n }\n };\n\n return mergeProps(this.ptm(`columnGroup.${key}`, { columnGroup: columnGroupMetaData }), this.ptm(`columnGroup.${key}`, columnGroupMetaData), this.ptmo(this.getColumnGroupProps(), key, columnGroupMetaData));\n },\n getColumnGroupProps() {\n return this.columnGroup && this.columnGroup.props && this.columnGroup.props.pt ? this.columnGroup.props.pt : undefined; //@todo\n },\n getRowPT(row, key, index) {\n const rowMetaData = {\n props: row.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index\n }\n };\n\n return mergeProps(this.ptm(`row.${key}`, { row: rowMetaData }), this.ptm(`row.${key}`, rowMetaData), this.ptmo(this.getRowProp(row), key, rowMetaData));\n },\n getRowProp(row) {\n return row.props && row.props.pt ? row.props.pt : undefined; //@todo\n },\n getFooterRows() {\n return this.d_footerRows?.get(this.columnGroup, this.columnGroup.children);\n },\n getFooterColumns(row) {\n return this.d_footerColumns?.get(row, row.children);\n }\n },\n computed: {\n hasFooter() {\n let hasFooter = false;\n\n if (this.columnGroup) {\n hasFooter = true;\n } else if (this.columns) {\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\n return hasFooter;\n },\n ptmTFootOptions() {\n return {\n context: {\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n }\n },\n components: {\n DTFooterCell: FooterCell\n }\n};\n</script>\n","<template>\n <tfoot v-if=\"hasFooter\" :class=\"cx('tfoot')\" :style=\"sx('tfoot')\" role=\"rowgroup\" v-bind=\"columnGroup ? { ...ptm('tfoot', ptmTFootOptions), ...getColumnGroupPT('root') } : ptm('tfoot', ptmTFootOptions)\" data-pc-section=\"tfoot\">\n <tr v-if=\"!columnGroup\" role=\"row\" v-bind=\"ptm('footerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <DTFooterCell v-if=\"!columnProp(col, 'hidden')\" :column=\"col\" :pt=\"pt\" />\n </template>\n </tr>\n <template v-else>\n <tr v-for=\"(row, i) of getFooterRows()\" :key=\"i\" role=\"row\" v-bind=\"{ ...ptm('footerRow'), ...getRowPT(row, 'root', i) }\">\n <template v-for=\"(col, j) of getFooterColumns(row)\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || j\">\n <DTFooterCell v-if=\"!columnProp(col, 'hidden')\" :column=\"col\" :index=\"i\" :pt=\"pt\" />\n </template>\n </tr>\n </template>\n </tfoot>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { HelperSet, getVNodeProp } from '@primevue/core/utils';\nimport { mergeProps } from 'vue';\nimport FooterCell from './FooterCell.vue';\n\nexport default {\n name: 'TableFooter',\n hostName: 'DataTable',\n extends: BaseComponent,\n props: {\n columnGroup: {\n type: null,\n default: null\n },\n columns: {\n type: Object,\n default: null\n }\n },\n provide() {\n return {\n $rows: this.d_footerRows,\n $columns: this.d_footerColumns\n };\n },\n data() {\n return {\n d_footerRows: new HelperSet({ type: 'Row' }),\n d_footerColumns: new HelperSet({ type: 'Column' })\n };\n },\n beforeUnmount() {\n this.d_footerRows.clear();\n this.d_footerColumns.clear();\n },\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n getColumnGroupPT(key) {\n const columnGroupMetaData = {\n props: this.getColumnGroupProps(),\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n type: 'footer',\n scrollable: this.ptmTFootOptions.context.scrollable\n }\n };\n\n return mergeProps(this.ptm(`columnGroup.${key}`, { columnGroup: columnGroupMetaData }), this.ptm(`columnGroup.${key}`, columnGroupMetaData), this.ptmo(this.getColumnGroupProps(), key, columnGroupMetaData));\n },\n getColumnGroupProps() {\n return this.columnGroup && this.columnGroup.props && this.columnGroup.props.pt ? this.columnGroup.props.pt : undefined; //@todo\n },\n getRowPT(row, key, index) {\n const rowMetaData = {\n props: row.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index\n }\n };\n\n return mergeProps(this.ptm(`row.${key}`, { row: rowMetaData }), this.ptm(`row.${key}`, rowMetaData), this.ptmo(this.getRowProp(row), key, rowMetaData));\n },\n getRowProp(row) {\n return row.props && row.props.pt ? row.props.pt : undefined; //@todo\n },\n getFooterRows() {\n return this.d_footerRows?.get(this.columnGroup, this.columnGroup.children);\n },\n getFooterColumns(row) {\n return this.d_footerColumns?.get(row, row.children);\n }\n },\n computed: {\n hasFooter() {\n let hasFooter = false;\n\n if (this.columnGroup) {\n hasFooter = true;\n } else if (this.columns) {\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\n return hasFooter;\n },\n ptmTFootOptions() {\n return {\n context: {\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n }\n },\n components: {\n DTFooterCell: FooterCell\n }\n};\n</script>\n","<template>\n <div :class=\"cx('filter')\" v-bind=\"getColumnPT('filter')\">\n <div v-if=\"display === 'row'\" :class=\"cx('filterElementContainer')\" v-bind=\"{ ...filterInputProps, ...getColumnPT('filterElementContainer') }\">\n <component :is=\"filterElement\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"filterCallback\" />\n </div>\n <Button\n v-if=\"showMenuButton\"\n ref=\"icon\"\n :aria-label=\"columnFilterButtonAriaLabel\"\n aria-haspopup=\"true\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"overlayId\"\n :class=\"cx('pcColumnFilterButton')\"\n :unstyled=\"unstyled\"\n @click=\"toggleMenu($event)\"\n @keydown=\"onToggleButtonKeyDown($event)\"\n v-bind=\"{ ...getColumnPT('pcColumnFilterButton', ptmFilterMenuParams), ...filterButtonProps.filter }\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"filterIconTemplate || 'FilterIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('filterMenuIcon')\" />\n </template>\n </Button>\n <Button\n v-if=\"showClearButton && display === 'row' && hasRowFilter()\"\n :class=\"cx('pcColumnFilterClearButton')\"\n :unstyled=\"unstyled\"\n @click=\"clearFilter()\"\n v-bind=\"{ ...getColumnPT('pcColumnFilterClearButton', ptmHeaderFilterClearParams), ...filterButtonProps.inline.clear }\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"filterClearIconTemplate || 'FilterSlashIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('filterClearIcon')\" />\n </template>\n </Button>\n <Portal>\n <transition name=\"p-connected-overlay\" @enter=\"onOverlayEnter\" @after-enter=\"onOverlayAfterEnter\" @leave=\"onOverlayLeave\" @after-leave=\"onOverlayAfterLeave\" v-bind=\"getColumnPT('transition')\">\n <div\n v-if=\"overlayVisible\"\n :ref=\"overlayRef\"\n :id=\"overlayId\"\n v-focustrap\n :aria-modal=\"overlayVisible\"\n role=\"dialog\"\n :class=\"[cx('filterOverlay'), filterMenuClass]\"\n @keydown.escape=\"hide\"\n @click=\"onContentClick\"\n @mousedown=\"onContentMouseDown\"\n v-bind=\"getColumnPT('filterOverlay')\"\n >\n <component :is=\"filterHeaderTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"filterCallback\" />\n <template v-if=\"display === 'row'\">\n <ul :class=\"cx('filterConstraintList')\" v-bind=\"getColumnPT('filterConstraintList')\">\n <li\n v-for=\"(matchMode, i) of matchModes\"\n :key=\"matchMode.label\"\n :class=\"cx('filterConstraint', { matchMode })\"\n @click=\"onRowMatchModeChange(matchMode.value)\"\n @keydown=\"onRowMatchModeKeyDown($event)\"\n @keydown.enter.prevent=\"onRowMatchModeChange(matchMode.value)\"\n :tabindex=\"i === 0 ? '0' : null\"\n v-bind=\"getColumnPT('filterConstraint', ptmFilterConstraintOptions(matchMode))\"\n >\n {{ matchMode.label }}\n </li>\n <li :class=\"cx('filterConstraintSeparator')\" v-bind=\"getColumnPT('filterConstraintSeparator')\"></li>\n <li :class=\"cx('filterConstraint')\" @click=\"clearFilter()\" @keydown=\"onRowMatchModeKeyDown($event)\" @keydown.enter=\"onRowClearItemClick()\" v-bind=\"getColumnPT('filterConstraint')\">\n {{ noFilterLabel }}\n </li>\n </ul>\n </template>\n <template v-else>\n <div v-if=\"isShowOperator\" :class=\"cx('filterOperator')\" v-bind=\"getColumnPT('filterOperator')\">\n <Select\n :options=\"operatorOptions\"\n :modelValue=\"operator\"\n :aria-label=\"filterOperatorAriaLabel\"\n :class=\"cx('pcFilterOperatorDropdown')\"\n optionLabel=\"label\"\n optionValue=\"value\"\n @update:modelValue=\"onOperatorChange($event)\"\n :unstyled=\"unstyled\"\n :pt=\"getColumnPT('pcFilterOperatorDropdown')\"\n ></Select>\n </div>\n <div :class=\"cx('filterRuleList')\" v-bind=\"getColumnPT('filterRuleList')\">\n <div v-for=\"(fieldConstraint, i) of fieldConstraints\" :key=\"i\" :class=\"cx('filterRule')\" v-bind=\"getColumnPT('filterRule')\">\n <Select\n v-if=\"isShowMatchModes\"\n :options=\"matchModes\"\n :modelValue=\"fieldConstraint.matchMode\"\n :class=\"cx('pcFilterConstraintDropdown')\"\n optionLabel=\"label\"\n optionValue=\"value\"\n :aria-label=\"filterRuleAriaLabel\"\n @update:modelValue=\"onMenuMatchModeChange($event, i)\"\n :unstyled=\"unstyled\"\n :pt=\"getColumnPT('pcFilterConstraintDropdown')\"\n ></Select>\n <component v-if=\"display === 'menu'\" :is=\"filterElement\" :field=\"field\" :filterModel=\"fieldConstraint\" :filterCallback=\"filterCallback\" :applyFilter=\"applyFilter\" />\n <div v-if=\"showRemoveIcon\" v-bind=\"getColumnPT('filterRemove')\">\n <Button\n type=\"button\"\n :class=\"cx('pcFilterRemoveRuleButton')\"\n @click=\"removeConstraint(i)\"\n :label=\"removeRuleButtonLabel\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.removeRule\"\n :pt=\"getColumnPT('pcFilterRemoveRuleButton')\"\n >\n <template #icon=\"iconProps\">\n <component :is=\"filterRemoveIconTemplate || 'TrashIcon'\" :class=\"iconProps.class\" v-bind=\"getColumnPT('pcFilterRemoveRuleButton')['icon']\" />\n </template>\n </Button>\n </div>\n </div>\n </div>\n <div v-if=\"isShowAddConstraint\" v-bind=\"getColumnPT('filterAddButtonContainer')\">\n <Button\n type=\"button\"\n :label=\"addRuleButtonLabel\"\n iconPos=\"left\"\n :class=\"cx('pcFilterAddRuleButton')\"\n @click=\"addConstraint()\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.addRule\"\n :pt=\"getColumnPT('pcFilterAddRuleButton')\"\n >\n <template #icon=\"iconProps\">\n <component :is=\"filterAddIconTemplate || 'PlusIcon'\" :class=\"iconProps.class\" v-bind=\"getColumnPT('pcFilterAddRuleButton')['icon']\" />\n </template>\n </Button>\n </div>\n <div :class=\"cx('filterButtonbar')\" v-bind=\"getColumnPT('filterButtonbar')\">\n <Button\n v-if=\"!filterClearTemplate && showClearButton\"\n type=\"button\"\n :class=\"cx('pcFilterClearButton')\"\n :label=\"clearButtonLabel\"\n @click=\"clearFilter\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.clear\"\n :pt=\"getColumnPT('pcFilterClearButton')\"\n ></Button>\n <component v-else :is=\"filterClearTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"clearFilter\" />\n <template v-if=\"showApplyButton\">\n <Button\n v-if=\"!filterApplyTemplate\"\n type=\"button\"\n :class=\"cx('pcFilterApplyButton')\"\n :label=\"applyButtonLabel\"\n @click=\"applyFilter()\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.apply\"\n :pt=\"getColumnPT('pcFilterApplyButton')\"\n ></Button>\n <component v-else :is=\"filterApplyTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"applyFilter\" />\n </template>\n </div>\n </template>\n <component :is=\"filterFooterTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"filterCallback\" />\n </div>\n </transition>\n </Portal>\n </div>\n</template>\n\n<script>\nimport { FilterOperator } from '@primevue/core/api';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { ConnectedOverlayScrollHandler, UniqueComponentId } from '@primevue/core/utils';\nimport { getAttribute, focus, addStyle, absolutePosition, isTouchDevice } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport FilterIcon from '@primevue/icons/filter';\nimport FilterSlashIcon from '@primevue/icons/filterslash';\nimport PlusIcon from '@primevue/icons/plus';\nimport TrashIcon from '@primevue/icons/trash';\nimport Button from 'primevue/button';\nimport FocusTrap from 'primevue/focustrap';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport Select from 'primevue/select';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'ColumnFilter',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['filter-change', 'filter-apply', 'operator-change', 'matchmode-change', 'constraint-add', 'constraint-remove', 'filter-clear', 'apply-click'],\n props: {\n field: {\n type: String,\n default: null\n },\n type: {\n type: String,\n default: 'text'\n },\n display: {\n type: String,\n default: null\n },\n showMenu: {\n type: Boolean,\n default: true\n },\n matchMode: {\n type: String,\n default: null\n },\n showOperator: {\n type: Boolean,\n default: true\n },\n showClearButton: {\n type: Boolean,\n default: true\n },\n showApplyButton: {\n type: Boolean,\n default: true\n },\n showMatchModes: {\n type: Boolean,\n default: true\n },\n showAddButton: {\n type: Boolean,\n default: true\n },\n matchModeOptions: {\n type: Array,\n default: null\n },\n maxConstraints: {\n type: Number,\n default: 2\n },\n filterElement: {\n type: Function,\n default: null\n },\n filterHeaderTemplate: {\n type: Function,\n default: null\n },\n filterFooterTemplate: {\n type: Function,\n default: null\n },\n filterClearTemplate: {\n type: Function,\n default: null\n },\n filterApplyTemplate: {\n type: Function,\n default: null\n },\n filterIconTemplate: {\n type: Function,\n default: null\n },\n filterAddIconTemplate: {\n type: Function,\n default: null\n },\n filterRemoveIconTemplate: {\n type: Function,\n default: null\n },\n filterClearIconTemplate: {\n type: Function,\n default: null\n },\n filters: {\n type: Object,\n default: null\n },\n filtersStore: {\n type: Object,\n default: null\n },\n filterMenuClass: {\n type: String,\n default: null\n },\n filterMenuStyle: {\n type: null,\n default: null\n },\n filterInputProps: {\n type: null,\n default: null\n },\n filterButtonProps: {\n type: null,\n default: null\n },\n column: null\n },\n data() {\n return {\n id: this.$attrs.id,\n overlayVisible: false,\n defaultMatchMode: null,\n defaultOperator: null\n };\n },\n watch: {\n '$attrs.id': function (newValue) {\n this.id = newValue || UniqueComponentId();\n }\n },\n overlay: null,\n selfClick: false,\n overlayEventListener: null,\n beforeUnmount() {\n if (this.overlayEventListener) {\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n }\n\n if (this.overlay) {\n ZIndex.clear(this.overlay);\n this.onOverlayHide();\n }\n },\n mounted() {\n this.id = this.id || UniqueComponentId();\n\n if (this.filters && this.filters[this.field]) {\n let fieldFilters = this.filters[this.field];\n\n if (fieldFilters.operator) {\n this.defaultMatchMode = fieldFilters.constraints[0].matchMode;\n this.defaultOperator = fieldFilters.operator;\n } else {\n this.defaultMatchMode = this.filters[this.field].matchMode;\n }\n }\n },\n methods: {\n getColumnPT(key, params) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n ...params\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 ptmFilterConstraintOptions(matchMode) {\n return {\n context: {\n highlighted: matchMode && this.isRowMatchModeSelected(matchMode.value)\n }\n };\n },\n clearFilter() {\n let _filters = { ...this.filters };\n\n if (_filters[this.field].operator) {\n _filters[this.field].constraints.splice(1);\n _filters[this.field].operator = this.defaultOperator;\n _filters[this.field].constraints[0] = { value: null, matchMode: this.defaultMatchMode };\n } else {\n _filters[this.field].value = null;\n _filters[this.field].matchMode = this.defaultMatchMode;\n }\n\n this.$emit('filter-clear');\n this.$emit('filter-change', _filters);\n this.$emit('filter-apply');\n this.hide();\n },\n applyFilter() {\n this.$emit('apply-click', { field: this.field, constraints: this.filters[this.field] });\n this.$emit('filter-apply');\n this.hide();\n },\n hasFilter() {\n if (this.filtersStore) {\n let fieldFilter = this.filtersStore[this.field];\n\n if (fieldFilter) {\n if (fieldFilter.operator) return !this.isFilterBlank(fieldFilter.constraints[0].value);\n else return !this.isFilterBlank(fieldFilter.value);\n }\n }\n\n return false;\n },\n hasRowFilter() {\n return this.filters[this.field] && !this.isFilterBlank(this.filters[this.field].value);\n },\n isFilterBlank(filter) {\n if (filter !== null && filter !== undefined) {\n if ((typeof filter === 'string' && filter.trim().length == 0) || (filter instanceof Array && filter.length == 0)) return true;\n else return false;\n }\n\n return true;\n },\n toggleMenu(event) {\n this.overlayVisible = !this.overlayVisible;\n\n event.preventDefault();\n },\n onToggleButtonKeyDown(event) {\n switch (event.code) {\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.toggleMenu(event);\n\n break;\n\n case 'Escape':\n this.overlayVisible = false;\n break;\n }\n },\n onRowMatchModeChange(matchMode) {\n let _filters = { ...this.filters };\n\n _filters[this.field].matchMode = matchMode;\n this.$emit('matchmode-change', { field: this.field, matchMode: matchMode });\n this.$emit('filter-change', _filters);\n this.$emit('filter-apply');\n this.hide();\n },\n onRowMatchModeKeyDown(event) {\n let item = event.target;\n\n switch (event.code) {\n case 'ArrowDown':\n var nextItem = this.findNextItem(item);\n\n if (nextItem) {\n item.removeAttribute('tabindex');\n nextItem.tabIndex = '0';\n nextItem.focus();\n }\n\n event.preventDefault();\n break;\n\n case 'ArrowUp':\n var prevItem = this.findPrevItem(item);\n\n if (prevItem) {\n item.removeAttribute('tabindex');\n prevItem.tabIndex = '0';\n prevItem.focus();\n }\n\n event.preventDefault();\n break;\n }\n },\n isRowMatchModeSelected(matchMode) {\n return this.filters[this.field].matchMode === matchMode;\n },\n onOperatorChange(value) {\n let _filters = { ...this.filters };\n\n _filters[this.field].operator = value;\n this.$emit('filter-change', _filters);\n\n this.$emit('operator-change', { field: this.field, operator: value });\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n onMenuMatchModeChange(value, index) {\n let _filters = { ...this.filters };\n\n _filters[this.field].constraints[index].matchMode = value;\n this.$emit('matchmode-change', { field: this.field, matchMode: value, index: index });\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n addConstraint() {\n let _filters = { ...this.filters };\n let newConstraint = { value: null, matchMode: this.defaultMatchMode };\n\n _filters[this.field].constraints.push(newConstraint);\n this.$emit('constraint-add', { field: this.field, constraing: newConstraint });\n this.$emit('filter-change', _filters);\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n removeConstraint(index) {\n let _filters = { ...this.filters };\n let removedConstraint = _filters[this.field].constraints.splice(index, 1);\n\n this.$emit('constraint-remove', { field: this.field, constraing: removedConstraint });\n this.$emit('filter-change', _filters);\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n filterCallback() {\n this.$emit('filter-apply');\n },\n findNextItem(item) {\n let nextItem = item.nextElementSibling;\n\n if (nextItem) return getAttribute(nextItem, 'data-pc-section') === 'filterconstraintseparator' ? this.findNextItem(nextItem) : nextItem;\n else return item.parentElement.firstElementChild;\n },\n findPrevItem(item) {\n let prevItem = item.previousElementSibling;\n\n if (prevItem) return getAttribute(prevItem, 'data-pc-section') === 'filterconstraintseparator' ? this.findPrevItem(prevItem) : prevItem;\n else return item.parentElement.lastElementChild;\n },\n hide() {\n this.overlayVisible = false;\n\n this.showMenuButton && focus(this.$refs.icon.$el);\n },\n onContentClick(event) {\n this.selfClick = true;\n\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.overlay\n });\n },\n onContentMouseDown() {\n this.selfClick = true;\n },\n onOverlayEnter(el) {\n if (this.filterMenuStyle) {\n addStyle(this.overlay, this.filterMenuStyle);\n }\n\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n addStyle(el, { position: 'absolute', top: '0', left: '0' });\n absolutePosition(this.overlay, this.$refs.icon.$el);\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n\n this.overlayEventListener = (e) => {\n if (!this.isOutsideClicked(e.target)) {\n this.selfClick = true;\n }\n };\n\n OverlayEventBus.on('overlay-click', this.overlayEventListener);\n },\n onOverlayAfterEnter() {\n this.overlay?.$focustrap?.autoFocus();\n },\n onOverlayLeave() {\n this.onOverlayHide();\n },\n onOverlayAfterLeave(el) {\n ZIndex.clear(el);\n },\n onOverlayHide() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindScrollListener();\n this.overlay = null;\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n },\n overlayRef(el) {\n this.overlay = el;\n },\n isOutsideClicked(target) {\n return !this.isTargetClicked(target) && this.overlay && !(this.overlay.isSameNode(target) || this.overlay.contains(target));\n },\n isTargetClicked(target) {\n return this.$refs.icon && (this.$refs.icon.$el.isSameNode(target) || this.$refs.icon.$el.contains(target));\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n if (this.overlayVisible && !this.selfClick && this.isOutsideClicked(event.target)) {\n this.overlayVisible = false;\n }\n\n this.selfClick = false;\n };\n\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n this.selfClick = false;\n }\n },\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.icon.$el, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.overlayVisible && !isTouchDevice()) {\n this.hide();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n }\n },\n computed: {\n showMenuButton() {\n return this.showMenu && (this.display === 'row' ? this.type !== 'boolean' : true);\n },\n overlayId() {\n return this.id + '_overlay';\n },\n matchModes() {\n return (\n this.matchModeOptions ||\n this.$primevue.config.filterMatchModeOptions[this.type].map((key) => {\n return { label: this.$primevue.config.locale[key], value: key };\n })\n );\n },\n isShowMatchModes() {\n return this.type !== 'boolean' && this.showMatchModes && this.matchModes;\n },\n operatorOptions() {\n return [\n { label: this.$primevue.config.locale.matchAll, value: FilterOperator.AND },\n { label: this.$primevue.config.locale.matchAny, value: FilterOperator.OR }\n ];\n },\n noFilterLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.noFilter : undefined;\n },\n isShowOperator() {\n return this.showOperator && this.filters[this.field].operator;\n },\n operator() {\n return this.filters[this.field].operator;\n },\n fieldConstraints() {\n return this.filters[this.field].constraints || [this.filters[this.field]];\n },\n showRemoveIcon() {\n return this.fieldConstraints.length > 1;\n },\n removeRuleButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.removeRule : undefined;\n },\n addRuleButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.addRule : undefined;\n },\n isShowAddConstraint() {\n return this.showAddButton && this.filters[this.field].operator && this.fieldConstraints && this.fieldConstraints.length < this.maxConstraints;\n },\n clearButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.clear : undefined;\n },\n applyButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.apply : undefined;\n },\n columnFilterButtonAriaLabel() {\n return this.$primevue.config.locale ? (this.overlayVisible ? this.$primevue.config.locale.showFilterMenu : this.$primevue.config.locale.hideFilterMenu) : undefined;\n },\n filterOperatorAriaLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.filterOperator : undefined;\n },\n filterRuleAriaLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.filterConstraint : undefined;\n },\n ptmHeaderFilterClearParams() {\n return {\n context: {\n hidden: this.hasRowFilter()\n }\n };\n },\n ptmFilterMenuParams() {\n return {\n context: {\n overlayVisible: this.overlayVisible,\n active: this.hasFilter()\n }\n };\n }\n },\n components: {\n Select,\n Button,\n Portal,\n FilterSlashIcon,\n FilterIcon,\n TrashIcon,\n PlusIcon\n },\n directives: {\n focustrap: FocusTrap\n }\n};\n</script>\n","<template>\n <div :class=\"cx('filter')\" v-bind=\"getColumnPT('filter')\">\n <div v-if=\"display === 'row'\" :class=\"cx('filterElementContainer')\" v-bind=\"{ ...filterInputProps, ...getColumnPT('filterElementContainer') }\">\n <component :is=\"filterElement\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"filterCallback\" />\n </div>\n <Button\n v-if=\"showMenuButton\"\n ref=\"icon\"\n :aria-label=\"columnFilterButtonAriaLabel\"\n aria-haspopup=\"true\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"overlayId\"\n :class=\"cx('pcColumnFilterButton')\"\n :unstyled=\"unstyled\"\n @click=\"toggleMenu($event)\"\n @keydown=\"onToggleButtonKeyDown($event)\"\n v-bind=\"{ ...getColumnPT('pcColumnFilterButton', ptmFilterMenuParams), ...filterButtonProps.filter }\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"filterIconTemplate || 'FilterIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('filterMenuIcon')\" />\n </template>\n </Button>\n <Button\n v-if=\"showClearButton && display === 'row' && hasRowFilter()\"\n :class=\"cx('pcColumnFilterClearButton')\"\n :unstyled=\"unstyled\"\n @click=\"clearFilter()\"\n v-bind=\"{ ...getColumnPT('pcColumnFilterClearButton', ptmHeaderFilterClearParams), ...filterButtonProps.inline.clear }\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"filterClearIconTemplate || 'FilterSlashIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('filterClearIcon')\" />\n </template>\n </Button>\n <Portal>\n <transition name=\"p-connected-overlay\" @enter=\"onOverlayEnter\" @after-enter=\"onOverlayAfterEnter\" @leave=\"onOverlayLeave\" @after-leave=\"onOverlayAfterLeave\" v-bind=\"getColumnPT('transition')\">\n <div\n v-if=\"overlayVisible\"\n :ref=\"overlayRef\"\n :id=\"overlayId\"\n v-focustrap\n :aria-modal=\"overlayVisible\"\n role=\"dialog\"\n :class=\"[cx('filterOverlay'), filterMenuClass]\"\n @keydown.escape=\"hide\"\n @click=\"onContentClick\"\n @mousedown=\"onContentMouseDown\"\n v-bind=\"getColumnPT('filterOverlay')\"\n >\n <component :is=\"filterHeaderTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"filterCallback\" />\n <template v-if=\"display === 'row'\">\n <ul :class=\"cx('filterConstraintList')\" v-bind=\"getColumnPT('filterConstraintList')\">\n <li\n v-for=\"(matchMode, i) of matchModes\"\n :key=\"matchMode.label\"\n :class=\"cx('filterConstraint', { matchMode })\"\n @click=\"onRowMatchModeChange(matchMode.value)\"\n @keydown=\"onRowMatchModeKeyDown($event)\"\n @keydown.enter.prevent=\"onRowMatchModeChange(matchMode.value)\"\n :tabindex=\"i === 0 ? '0' : null\"\n v-bind=\"getColumnPT('filterConstraint', ptmFilterConstraintOptions(matchMode))\"\n >\n {{ matchMode.label }}\n </li>\n <li :class=\"cx('filterConstraintSeparator')\" v-bind=\"getColumnPT('filterConstraintSeparator')\"></li>\n <li :class=\"cx('filterConstraint')\" @click=\"clearFilter()\" @keydown=\"onRowMatchModeKeyDown($event)\" @keydown.enter=\"onRowClearItemClick()\" v-bind=\"getColumnPT('filterConstraint')\">\n {{ noFilterLabel }}\n </li>\n </ul>\n </template>\n <template v-else>\n <div v-if=\"isShowOperator\" :class=\"cx('filterOperator')\" v-bind=\"getColumnPT('filterOperator')\">\n <Select\n :options=\"operatorOptions\"\n :modelValue=\"operator\"\n :aria-label=\"filterOperatorAriaLabel\"\n :class=\"cx('pcFilterOperatorDropdown')\"\n optionLabel=\"label\"\n optionValue=\"value\"\n @update:modelValue=\"onOperatorChange($event)\"\n :unstyled=\"unstyled\"\n :pt=\"getColumnPT('pcFilterOperatorDropdown')\"\n ></Select>\n </div>\n <div :class=\"cx('filterRuleList')\" v-bind=\"getColumnPT('filterRuleList')\">\n <div v-for=\"(fieldConstraint, i) of fieldConstraints\" :key=\"i\" :class=\"cx('filterRule')\" v-bind=\"getColumnPT('filterRule')\">\n <Select\n v-if=\"isShowMatchModes\"\n :options=\"matchModes\"\n :modelValue=\"fieldConstraint.matchMode\"\n :class=\"cx('pcFilterConstraintDropdown')\"\n optionLabel=\"label\"\n optionValue=\"value\"\n :aria-label=\"filterRuleAriaLabel\"\n @update:modelValue=\"onMenuMatchModeChange($event, i)\"\n :unstyled=\"unstyled\"\n :pt=\"getColumnPT('pcFilterConstraintDropdown')\"\n ></Select>\n <component v-if=\"display === 'menu'\" :is=\"filterElement\" :field=\"field\" :filterModel=\"fieldConstraint\" :filterCallback=\"filterCallback\" :applyFilter=\"applyFilter\" />\n <div v-if=\"showRemoveIcon\" v-bind=\"getColumnPT('filterRemove')\">\n <Button\n type=\"button\"\n :class=\"cx('pcFilterRemoveRuleButton')\"\n @click=\"removeConstraint(i)\"\n :label=\"removeRuleButtonLabel\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.removeRule\"\n :pt=\"getColumnPT('pcFilterRemoveRuleButton')\"\n >\n <template #icon=\"iconProps\">\n <component :is=\"filterRemoveIconTemplate || 'TrashIcon'\" :class=\"iconProps.class\" v-bind=\"getColumnPT('pcFilterRemoveRuleButton')['icon']\" />\n </template>\n </Button>\n </div>\n </div>\n </div>\n <div v-if=\"isShowAddConstraint\" v-bind=\"getColumnPT('filterAddButtonContainer')\">\n <Button\n type=\"button\"\n :label=\"addRuleButtonLabel\"\n iconPos=\"left\"\n :class=\"cx('pcFilterAddRuleButton')\"\n @click=\"addConstraint()\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.addRule\"\n :pt=\"getColumnPT('pcFilterAddRuleButton')\"\n >\n <template #icon=\"iconProps\">\n <component :is=\"filterAddIconTemplate || 'PlusIcon'\" :class=\"iconProps.class\" v-bind=\"getColumnPT('pcFilterAddRuleButton')['icon']\" />\n </template>\n </Button>\n </div>\n <div :class=\"cx('filterButtonbar')\" v-bind=\"getColumnPT('filterButtonbar')\">\n <Button\n v-if=\"!filterClearTemplate && showClearButton\"\n type=\"button\"\n :class=\"cx('pcFilterClearButton')\"\n :label=\"clearButtonLabel\"\n @click=\"clearFilter\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.clear\"\n :pt=\"getColumnPT('pcFilterClearButton')\"\n ></Button>\n <component v-else :is=\"filterClearTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"clearFilter\" />\n <template v-if=\"showApplyButton\">\n <Button\n v-if=\"!filterApplyTemplate\"\n type=\"button\"\n :class=\"cx('pcFilterApplyButton')\"\n :label=\"applyButtonLabel\"\n @click=\"applyFilter()\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.apply\"\n :pt=\"getColumnPT('pcFilterApplyButton')\"\n ></Button>\n <component v-else :is=\"filterApplyTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"applyFilter\" />\n </template>\n </div>\n </template>\n <component :is=\"filterFooterTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"filterCallback\" />\n </div>\n </transition>\n </Portal>\n </div>\n</template>\n\n<script>\nimport { FilterOperator } from '@primevue/core/api';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { ConnectedOverlayScrollHandler, UniqueComponentId } from '@primevue/core/utils';\nimport { getAttribute, focus, addStyle, absolutePosition, isTouchDevice } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport FilterIcon from '@primevue/icons/filter';\nimport FilterSlashIcon from '@primevue/icons/filterslash';\nimport PlusIcon from '@primevue/icons/plus';\nimport TrashIcon from '@primevue/icons/trash';\nimport Button from 'primevue/button';\nimport FocusTrap from 'primevue/focustrap';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport Select from 'primevue/select';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'ColumnFilter',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['filter-change', 'filter-apply', 'operator-change', 'matchmode-change', 'constraint-add', 'constraint-remove', 'filter-clear', 'apply-click'],\n props: {\n field: {\n type: String,\n default: null\n },\n type: {\n type: String,\n default: 'text'\n },\n display: {\n type: String,\n default: null\n },\n showMenu: {\n type: Boolean,\n default: true\n },\n matchMode: {\n type: String,\n default: null\n },\n showOperator: {\n type: Boolean,\n default: true\n },\n showClearButton: {\n type: Boolean,\n default: true\n },\n showApplyButton: {\n type: Boolean,\n default: true\n },\n showMatchModes: {\n type: Boolean,\n default: true\n },\n showAddButton: {\n type: Boolean,\n default: true\n },\n matchModeOptions: {\n type: Array,\n default: null\n },\n maxConstraints: {\n type: Number,\n default: 2\n },\n filterElement: {\n type: Function,\n default: null\n },\n filterHeaderTemplate: {\n type: Function,\n default: null\n },\n filterFooterTemplate: {\n type: Function,\n default: null\n },\n filterClearTemplate: {\n type: Function,\n default: null\n },\n filterApplyTemplate: {\n type: Function,\n default: null\n },\n filterIconTemplate: {\n type: Function,\n default: null\n },\n filterAddIconTemplate: {\n type: Function,\n default: null\n },\n filterRemoveIconTemplate: {\n type: Function,\n default: null\n },\n filterClearIconTemplate: {\n type: Function,\n default: null\n },\n filters: {\n type: Object,\n default: null\n },\n filtersStore: {\n type: Object,\n default: null\n },\n filterMenuClass: {\n type: String,\n default: null\n },\n filterMenuStyle: {\n type: null,\n default: null\n },\n filterInputProps: {\n type: null,\n default: null\n },\n filterButtonProps: {\n type: null,\n default: null\n },\n column: null\n },\n data() {\n return {\n id: this.$attrs.id,\n overlayVisible: false,\n defaultMatchMode: null,\n defaultOperator: null\n };\n },\n watch: {\n '$attrs.id': function (newValue) {\n this.id = newValue || UniqueComponentId();\n }\n },\n overlay: null,\n selfClick: false,\n overlayEventListener: null,\n beforeUnmount() {\n if (this.overlayEventListener) {\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n }\n\n if (this.overlay) {\n ZIndex.clear(this.overlay);\n this.onOverlayHide();\n }\n },\n mounted() {\n this.id = this.id || UniqueComponentId();\n\n if (this.filters && this.filters[this.field]) {\n let fieldFilters = this.filters[this.field];\n\n if (fieldFilters.operator) {\n this.defaultMatchMode = fieldFilters.constraints[0].matchMode;\n this.defaultOperator = fieldFilters.operator;\n } else {\n this.defaultMatchMode = this.filters[this.field].matchMode;\n }\n }\n },\n methods: {\n getColumnPT(key, params) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n ...params\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 ptmFilterConstraintOptions(matchMode) {\n return {\n context: {\n highlighted: matchMode && this.isRowMatchModeSelected(matchMode.value)\n }\n };\n },\n clearFilter() {\n let _filters = { ...this.filters };\n\n if (_filters[this.field].operator) {\n _filters[this.field].constraints.splice(1);\n _filters[this.field].operator = this.defaultOperator;\n _filters[this.field].constraints[0] = { value: null, matchMode: this.defaultMatchMode };\n } else {\n _filters[this.field].value = null;\n _filters[this.field].matchMode = this.defaultMatchMode;\n }\n\n this.$emit('filter-clear');\n this.$emit('filter-change', _filters);\n this.$emit('filter-apply');\n this.hide();\n },\n applyFilter() {\n this.$emit('apply-click', { field: this.field, constraints: this.filters[this.field] });\n this.$emit('filter-apply');\n this.hide();\n },\n hasFilter() {\n if (this.filtersStore) {\n let fieldFilter = this.filtersStore[this.field];\n\n if (fieldFilter) {\n if (fieldFilter.operator) return !this.isFilterBlank(fieldFilter.constraints[0].value);\n else return !this.isFilterBlank(fieldFilter.value);\n }\n }\n\n return false;\n },\n hasRowFilter() {\n return this.filters[this.field] && !this.isFilterBlank(this.filters[this.field].value);\n },\n isFilterBlank(filter) {\n if (filter !== null && filter !== undefined) {\n if ((typeof filter === 'string' && filter.trim().length == 0) || (filter instanceof Array && filter.length == 0)) return true;\n else return false;\n }\n\n return true;\n },\n toggleMenu(event) {\n this.overlayVisible = !this.overlayVisible;\n\n event.preventDefault();\n },\n onToggleButtonKeyDown(event) {\n switch (event.code) {\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.toggleMenu(event);\n\n break;\n\n case 'Escape':\n this.overlayVisible = false;\n break;\n }\n },\n onRowMatchModeChange(matchMode) {\n let _filters = { ...this.filters };\n\n _filters[this.field].matchMode = matchMode;\n this.$emit('matchmode-change', { field: this.field, matchMode: matchMode });\n this.$emit('filter-change', _filters);\n this.$emit('filter-apply');\n this.hide();\n },\n onRowMatchModeKeyDown(event) {\n let item = event.target;\n\n switch (event.code) {\n case 'ArrowDown':\n var nextItem = this.findNextItem(item);\n\n if (nextItem) {\n item.removeAttribute('tabindex');\n nextItem.tabIndex = '0';\n nextItem.focus();\n }\n\n event.preventDefault();\n break;\n\n case 'ArrowUp':\n var prevItem = this.findPrevItem(item);\n\n if (prevItem) {\n item.removeAttribute('tabindex');\n prevItem.tabIndex = '0';\n prevItem.focus();\n }\n\n event.preventDefault();\n break;\n }\n },\n isRowMatchModeSelected(matchMode) {\n return this.filters[this.field].matchMode === matchMode;\n },\n onOperatorChange(value) {\n let _filters = { ...this.filters };\n\n _filters[this.field].operator = value;\n this.$emit('filter-change', _filters);\n\n this.$emit('operator-change', { field: this.field, operator: value });\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n onMenuMatchModeChange(value, index) {\n let _filters = { ...this.filters };\n\n _filters[this.field].constraints[index].matchMode = value;\n this.$emit('matchmode-change', { field: this.field, matchMode: value, index: index });\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n addConstraint() {\n let _filters = { ...this.filters };\n let newConstraint = { value: null, matchMode: this.defaultMatchMode };\n\n _filters[this.field].constraints.push(newConstraint);\n this.$emit('constraint-add', { field: this.field, constraing: newConstraint });\n this.$emit('filter-change', _filters);\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n removeConstraint(index) {\n let _filters = { ...this.filters };\n let removedConstraint = _filters[this.field].constraints.splice(index, 1);\n\n this.$emit('constraint-remove', { field: this.field, constraing: removedConstraint });\n this.$emit('filter-change', _filters);\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n filterCallback() {\n this.$emit('filter-apply');\n },\n findNextItem(item) {\n let nextItem = item.nextElementSibling;\n\n if (nextItem) return getAttribute(nextItem, 'data-pc-section') === 'filterconstraintseparator' ? this.findNextItem(nextItem) : nextItem;\n else return item.parentElement.firstElementChild;\n },\n findPrevItem(item) {\n let prevItem = item.previousElementSibling;\n\n if (prevItem) return getAttribute(prevItem, 'data-pc-section') === 'filterconstraintseparator' ? this.findPrevItem(prevItem) : prevItem;\n else return item.parentElement.lastElementChild;\n },\n hide() {\n this.overlayVisible = false;\n\n this.showMenuButton && focus(this.$refs.icon.$el);\n },\n onContentClick(event) {\n this.selfClick = true;\n\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.overlay\n });\n },\n onContentMouseDown() {\n this.selfClick = true;\n },\n onOverlayEnter(el) {\n if (this.filterMenuStyle) {\n addStyle(this.overlay, this.filterMenuStyle);\n }\n\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n addStyle(el, { position: 'absolute', top: '0', left: '0' });\n absolutePosition(this.overlay, this.$refs.icon.$el);\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n\n this.overlayEventListener = (e) => {\n if (!this.isOutsideClicked(e.target)) {\n this.selfClick = true;\n }\n };\n\n OverlayEventBus.on('overlay-click', this.overlayEventListener);\n },\n onOverlayAfterEnter() {\n this.overlay?.$focustrap?.autoFocus();\n },\n onOverlayLeave() {\n this.onOverlayHide();\n },\n onOverlayAfterLeave(el) {\n ZIndex.clear(el);\n },\n onOverlayHide() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindScrollListener();\n this.overlay = null;\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n },\n overlayRef(el) {\n this.overlay = el;\n },\n isOutsideClicked(target) {\n return !this.isTargetClicked(target) && this.overlay && !(this.overlay.isSameNode(target) || this.overlay.contains(target));\n },\n isTargetClicked(target) {\n return this.$refs.icon && (this.$refs.icon.$el.isSameNode(target) || this.$refs.icon.$el.contains(target));\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n if (this.overlayVisible && !this.selfClick && this.isOutsideClicked(event.target)) {\n this.overlayVisible = false;\n }\n\n this.selfClick = false;\n };\n\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n this.selfClick = false;\n }\n },\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.icon.$el, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.overlayVisible && !isTouchDevice()) {\n this.hide();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n }\n },\n computed: {\n showMenuButton() {\n return this.showMenu && (this.display === 'row' ? this.type !== 'boolean' : true);\n },\n overlayId() {\n return this.id + '_overlay';\n },\n matchModes() {\n return (\n this.matchModeOptions ||\n this.$primevue.config.filterMatchModeOptions[this.type].map((key) => {\n return { label: this.$primevue.config.locale[key], value: key };\n })\n );\n },\n isShowMatchModes() {\n return this.type !== 'boolean' && this.showMatchModes && this.matchModes;\n },\n operatorOptions() {\n return [\n { label: this.$primevue.config.locale.matchAll, value: FilterOperator.AND },\n { label: this.$primevue.config.locale.matchAny, value: FilterOperator.OR }\n ];\n },\n noFilterLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.noFilter : undefined;\n },\n isShowOperator() {\n return this.showOperator && this.filters[this.field].operator;\n },\n operator() {\n return this.filters[this.field].operator;\n },\n fieldConstraints() {\n return this.filters[this.field].constraints || [this.filters[this.field]];\n },\n showRemoveIcon() {\n return this.fieldConstraints.length > 1;\n },\n removeRuleButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.removeRule : undefined;\n },\n addRuleButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.addRule : undefined;\n },\n isShowAddConstraint() {\n return this.showAddButton && this.filters[this.field].operator && this.fieldConstraints && this.fieldConstraints.length < this.maxConstraints;\n },\n clearButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.clear : undefined;\n },\n applyButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.apply : undefined;\n },\n columnFilterButtonAriaLabel() {\n return this.$primevue.config.locale ? (this.overlayVisible ? this.$primevue.config.locale.showFilterMenu : this.$primevue.config.locale.hideFilterMenu) : undefined;\n },\n filterOperatorAriaLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.filterOperator : undefined;\n },\n filterRuleAriaLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.filterConstraint : undefined;\n },\n ptmHeaderFilterClearParams() {\n return {\n context: {\n hidden: this.hasRowFilter()\n }\n };\n },\n ptmFilterMenuParams() {\n return {\n context: {\n overlayVisible: this.overlayVisible,\n active: this.hasFilter()\n }\n };\n }\n },\n components: {\n Select,\n Button,\n Portal,\n FilterSlashIcon,\n FilterIcon,\n TrashIcon,\n PlusIcon\n },\n directives: {\n focustrap: FocusTrap\n }\n};\n</script>\n","<template>\n <Checkbox :modelValue=\"checked\" :binary=\"true\" :disabled=\"disabled\" :aria-label=\"headerCheckboxAriaLabel\" @change=\"onChange\" :unstyled=\"unstyled\" :pt=\"getColumnPT('pcHeaderCheckbox')\">\n <template #icon=\"slotProps\">\n <component v-if=\"headerCheckboxIconTemplate\" :is=\"headerCheckboxIconTemplate\" :checked=\"slotProps.checked\" :class=\"slotProps.class\" />\n <CheckIcon v-else-if=\"!headerCheckboxIconTemplate && slotProps.checked\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcHeaderCheckbox')['icon']\" />\n </template>\n </Checkbox>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport CheckIcon from '@primevue/icons/check';\nimport Checkbox from 'primevue/checkbox';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'HeaderCheckbox',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['change'],\n props: {\n checked: null,\n disabled: null,\n column: null,\n headerCheckboxIconTemplate: {\n type: Function,\n default: null\n }\n },\n methods: {\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 checked: this.checked,\n disabled: this.disabled\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 onChange(event) {\n this.$emit('change', {\n originalEvent: event,\n checked: !this.checked\n });\n }\n },\n computed: {\n headerCheckboxAriaLabel() {\n return this.$primevue.config.locale.aria ? (this.checked ? this.$primevue.config.locale.aria.selectAll : this.$primevue.config.locale.aria.unselectAll) : undefined;\n }\n },\n components: {\n CheckIcon,\n Checkbox\n }\n};\n</script>\n","<template>\n <Checkbox :modelValue=\"checked\" :binary=\"true\" :disabled=\"disabled\" :aria-label=\"headerCheckboxAriaLabel\" @change=\"onChange\" :unstyled=\"unstyled\" :pt=\"getColumnPT('pcHeaderCheckbox')\">\n <template #icon=\"slotProps\">\n <component v-if=\"headerCheckboxIconTemplate\" :is=\"headerCheckboxIconTemplate\" :checked=\"slotProps.checked\" :class=\"slotProps.class\" />\n <CheckIcon v-else-if=\"!headerCheckboxIconTemplate && slotProps.checked\" :class=\"slotProps.class\" v-bind=\"getColumnPT('pcHeaderCheckbox')['icon']\" />\n </template>\n </Checkbox>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport CheckIcon from '@primevue/icons/check';\nimport Checkbox from 'primevue/checkbox';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'HeaderCheckbox',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['change'],\n props: {\n checked: null,\n disabled: null,\n column: null,\n headerCheckboxIconTemplate: {\n type: Function,\n default: null\n }\n },\n methods: {\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 checked: this.checked,\n disabled: this.disabled\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 onChange(event) {\n this.$emit('change', {\n originalEvent: event,\n checked: !this.checked\n });\n }\n },\n computed: {\n headerCheckboxAriaLabel() {\n return this.$primevue.config.locale.aria ? (this.checked ? this.$primevue.config.locale.aria.selectAll : this.$primevue.config.locale.aria.unselectAll) : undefined;\n }\n },\n components: {\n CheckIcon,\n Checkbox\n }\n};\n</script>\n","<template>\n <th\n :style=\"containerStyle\"\n :class=\"containerClass\"\n :tabindex=\"columnProp('sortable') ? '0' : null\"\n role=\"columnheader\"\n :colspan=\"columnProp('colspan')\"\n :rowspan=\"columnProp('rowspan')\"\n :aria-sort=\"ariaSort\"\n @click=\"onClick\"\n @keydown=\"onKeyDown\"\n @mousedown=\"onMouseDown\"\n @dragstart=\"onDragStart\"\n @dragover=\"onDragOver\"\n @dragleave=\"onDragLeave\"\n @drop=\"onDrop\"\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-filter-column=\"filterColumn\"\n :data-p-frozen-column=\"columnProp('frozen')\"\n :data-p-reorderable-column=\"reorderableColumns\"\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')\" :pt=\"getColumnPT('pcSortBadge')\" :value=\"getBadgeValue()\" size=\"small\" />\n <DTHeaderCheckbox\n v-if=\"columnProp('selectionMode') === 'multiple' && filterDisplay !== 'row'\"\n :checked=\"allRowsSelected\"\n @change=\"onHeaderCheckboxChange\"\n :disabled=\"empty\"\n :headerCheckboxIconTemplate=\"column.children && column.children.headercheckboxicon\"\n :column=\"column\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n <DTColumnFilter\n v-if=\"filterDisplay === 'menu' && column.children && column.children.filter\"\n :field=\"columnProp('filterField') || columnProp('field')\"\n :type=\"columnProp('dataType')\"\n display=\"menu\"\n :showMenu=\"columnProp('showFilterMenu')\"\n :filterElement=\"column.children && column.children.filter\"\n :filterHeaderTemplate=\"column.children && column.children.filterheader\"\n :filterFooterTemplate=\"column.children && column.children.filterfooter\"\n :filterClearTemplate=\"column.children && column.children.filterclear\"\n :filterApplyTemplate=\"column.children && column.children.filterapply\"\n :filterIconTemplate=\"column.children && column.children.filtericon\"\n :filterAddIconTemplate=\"column.children && column.children.filteraddicon\"\n :filterRemoveIconTemplate=\"column.children && column.children.filterremoveicon\"\n :filterClearIconTemplate=\"column.children && column.children.filterclearicon\"\n :filters=\"filters\"\n :filtersStore=\"filtersStore\"\n :filterInputProps=\"filterInputProps\"\n :filterButtonProps=\"filterButtonProps\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n :filterMenuStyle=\"columnProp('filterMenuStyle')\"\n :filterMenuClass=\"columnProp('filterMenuClass')\"\n :showOperator=\"columnProp('showFilterOperator')\"\n :showClearButton=\"columnProp('showClearButton')\"\n :showApplyButton=\"columnProp('showApplyButton')\"\n :showMatchModes=\"columnProp('showFilterMatchModes')\"\n :showAddButton=\"columnProp('showAddButton')\"\n :matchModeOptions=\"columnProp('filterMatchModeOptions')\"\n :maxConstraints=\"columnProp('maxConstraints')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n :column=\"column\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\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';\nimport ColumnFilter from './ColumnFilter.vue';\nimport HeaderCheckbox from './HeaderCheckbox.vue';\n\nexport default {\n name: 'HeaderCell',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: [\n 'column-click',\n 'column-mousedown',\n 'column-dragstart',\n 'column-dragover',\n 'column-dragleave',\n 'column-drop',\n 'column-resizestart',\n 'checkbox-change',\n 'filter-change',\n 'filter-apply',\n 'operator-change',\n 'matchmode-change',\n 'constraint-add',\n 'constraint-remove',\n 'filter-clear',\n 'apply-click'\n ],\n props: {\n column: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: null\n },\n resizableColumns: {\n type: Boolean,\n default: false\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n sortMode: {\n type: String,\n default: 'single'\n },\n groupRowSortField: {\n type: [String, Function],\n default: null\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 allRowsSelected: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n filterDisplay: {\n type: String,\n default: null\n },\n filters: {\n type: Object,\n default: null\n },\n filtersStore: {\n type: Object,\n default: null\n },\n filterColumn: {\n type: Boolean,\n default: false\n },\n reorderableColumns: {\n type: Boolean,\n default: false\n },\n filterInputProps: {\n type: null,\n default: null\n },\n filterButtonProps: {\n type: null,\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 sortable: this.columnProp('sortable') === '' || this.columnProp('sortable'),\n sorted: this.isColumnSorted(),\n resizable: this.resizableColumns,\n size: this.$parentInstance?.$parentInstance?.size,\n showGridlines: this.$parentInstance?.$parentInstance?.showGridlines || false\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 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 event.preventDefault();\n }\n },\n onMouseDown(event) {\n this.$emit('column-mousedown', { originalEvent: event, column: this.column });\n },\n onDragStart(event) {\n this.$emit('column-dragstart', { originalEvent: event, column: this.column });\n },\n onDragOver(event) {\n this.$emit('column-dragover', { originalEvent: event, column: this.column });\n },\n onDragLeave(event) {\n this.$emit('column-dragleave', { originalEvent: event, column: this.column });\n },\n onDrop(event) {\n this.$emit('column-drop', { originalEvent: event, column: this.column });\n },\n onResizeStart(event) {\n this.$emit('column-resizestart', event);\n },\n getMultiSortMetaIndex() {\n return this.multiSortMeta.findIndex((meta) => meta.field === this.columnProp('field') || meta.field === this.columnProp('sortField'));\n },\n getBadgeValue() {\n let index = this.getMultiSortMetaIndex();\n\n return this.groupRowsBy && this.groupRowsBy === this.groupRowSortField && index > -1 ? index : index + 1;\n },\n isMultiSorted() {\n return this.sortMode === 'multiple' && 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 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.right || 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.left || 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 if (filterRow.children[index]) {\n filterRow.children[index].style.left = this.styleObject.left;\n filterRow.children[index].style.right = this.styleObject.right;\n }\n }\n }\n },\n onHeaderCheckboxChange(event) {\n this.$emit('checkbox-change', event);\n }\n },\n computed: {\n containerClass() {\n return [this.cx('headerCell'), this.filterColumn ? this.columnProp('filterHeaderClass') : this.columnProp('headerClass'), this.columnProp('class')];\n },\n containerStyle() {\n let headerStyle = this.filterColumn ? this.columnProp('filterHeaderStyle') : 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 DTHeaderCheckbox: HeaderCheckbox,\n DTColumnFilter: ColumnFilter,\n SortAltIcon: SortAltIcon,\n SortAmountUpAltIcon: SortAmountUpAltIcon,\n SortAmountDownIcon: SortAmountDownIcon\n }\n};\n</script>\n","<template>\n <th\n :style=\"containerStyle\"\n :class=\"containerClass\"\n :tabindex=\"columnProp('sortable') ? '0' : null\"\n role=\"columnheader\"\n :colspan=\"columnProp('colspan')\"\n :rowspan=\"columnProp('rowspan')\"\n :aria-sort=\"ariaSort\"\n @click=\"onClick\"\n @keydown=\"onKeyDown\"\n @mousedown=\"onMouseDown\"\n @dragstart=\"onDragStart\"\n @dragover=\"onDragOver\"\n @dragleave=\"onDragLeave\"\n @drop=\"onDrop\"\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-filter-column=\"filterColumn\"\n :data-p-frozen-column=\"columnProp('frozen')\"\n :data-p-reorderable-column=\"reorderableColumns\"\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')\" :pt=\"getColumnPT('pcSortBadge')\" :value=\"getBadgeValue()\" size=\"small\" />\n <DTHeaderCheckbox\n v-if=\"columnProp('selectionMode') === 'multiple' && filterDisplay !== 'row'\"\n :checked=\"allRowsSelected\"\n @change=\"onHeaderCheckboxChange\"\n :disabled=\"empty\"\n :headerCheckboxIconTemplate=\"column.children && column.children.headercheckboxicon\"\n :column=\"column\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n <DTColumnFilter\n v-if=\"filterDisplay === 'menu' && column.children && column.children.filter\"\n :field=\"columnProp('filterField') || columnProp('field')\"\n :type=\"columnProp('dataType')\"\n display=\"menu\"\n :showMenu=\"columnProp('showFilterMenu')\"\n :filterElement=\"column.children && column.children.filter\"\n :filterHeaderTemplate=\"column.children && column.children.filterheader\"\n :filterFooterTemplate=\"column.children && column.children.filterfooter\"\n :filterClearTemplate=\"column.children && column.children.filterclear\"\n :filterApplyTemplate=\"column.children && column.children.filterapply\"\n :filterIconTemplate=\"column.children && column.children.filtericon\"\n :filterAddIconTemplate=\"column.children && column.children.filteraddicon\"\n :filterRemoveIconTemplate=\"column.children && column.children.filterremoveicon\"\n :filterClearIconTemplate=\"column.children && column.children.filterclearicon\"\n :filters=\"filters\"\n :filtersStore=\"filtersStore\"\n :filterInputProps=\"filterInputProps\"\n :filterButtonProps=\"filterButtonProps\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n :filterMenuStyle=\"columnProp('filterMenuStyle')\"\n :filterMenuClass=\"columnProp('filterMenuClass')\"\n :showOperator=\"columnProp('showFilterOperator')\"\n :showClearButton=\"columnProp('showClearButton')\"\n :showApplyButton=\"columnProp('showApplyButton')\"\n :showMatchModes=\"columnProp('showFilterMatchModes')\"\n :showAddButton=\"columnProp('showAddButton')\"\n :matchModeOptions=\"columnProp('filterMatchModeOptions')\"\n :maxConstraints=\"columnProp('maxConstraints')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n :column=\"column\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\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';\nimport ColumnFilter from './ColumnFilter.vue';\nimport HeaderCheckbox from './HeaderCheckbox.vue';\n\nexport default {\n name: 'HeaderCell',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: [\n 'column-click',\n 'column-mousedown',\n 'column-dragstart',\n 'column-dragover',\n 'column-dragleave',\n 'column-drop',\n 'column-resizestart',\n 'checkbox-change',\n 'filter-change',\n 'filter-apply',\n 'operator-change',\n 'matchmode-change',\n 'constraint-add',\n 'constraint-remove',\n 'filter-clear',\n 'apply-click'\n ],\n props: {\n column: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: null\n },\n resizableColumns: {\n type: Boolean,\n default: false\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n sortMode: {\n type: String,\n default: 'single'\n },\n groupRowSortField: {\n type: [String, Function],\n default: null\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 allRowsSelected: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n filterDisplay: {\n type: String,\n default: null\n },\n filters: {\n type: Object,\n default: null\n },\n filtersStore: {\n type: Object,\n default: null\n },\n filterColumn: {\n type: Boolean,\n default: false\n },\n reorderableColumns: {\n type: Boolean,\n default: false\n },\n filterInputProps: {\n type: null,\n default: null\n },\n filterButtonProps: {\n type: null,\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 sortable: this.columnProp('sortable') === '' || this.columnProp('sortable'),\n sorted: this.isColumnSorted(),\n resizable: this.resizableColumns,\n size: this.$parentInstance?.$parentInstance?.size,\n showGridlines: this.$parentInstance?.$parentInstance?.showGridlines || false\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 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 event.preventDefault();\n }\n },\n onMouseDown(event) {\n this.$emit('column-mousedown', { originalEvent: event, column: this.column });\n },\n onDragStart(event) {\n this.$emit('column-dragstart', { originalEvent: event, column: this.column });\n },\n onDragOver(event) {\n this.$emit('column-dragover', { originalEvent: event, column: this.column });\n },\n onDragLeave(event) {\n this.$emit('column-dragleave', { originalEvent: event, column: this.column });\n },\n onDrop(event) {\n this.$emit('column-drop', { originalEvent: event, column: this.column });\n },\n onResizeStart(event) {\n this.$emit('column-resizestart', event);\n },\n getMultiSortMetaIndex() {\n return this.multiSortMeta.findIndex((meta) => meta.field === this.columnProp('field') || meta.field === this.columnProp('sortField'));\n },\n getBadgeValue() {\n let index = this.getMultiSortMetaIndex();\n\n return this.groupRowsBy && this.groupRowsBy === this.groupRowSortField && index > -1 ? index : index + 1;\n },\n isMultiSorted() {\n return this.sortMode === 'multiple' && 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 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.right || 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.left || 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 if (filterRow.children[index]) {\n filterRow.children[index].style.left = this.styleObject.left;\n filterRow.children[index].style.right = this.styleObject.right;\n }\n }\n }\n },\n onHeaderCheckboxChange(event) {\n this.$emit('checkbox-change', event);\n }\n },\n computed: {\n containerClass() {\n return [this.cx('headerCell'), this.filterColumn ? this.columnProp('filterHeaderClass') : this.columnProp('headerClass'), this.columnProp('class')];\n },\n containerStyle() {\n let headerStyle = this.filterColumn ? this.columnProp('filterHeaderStyle') : 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 DTHeaderCheckbox: HeaderCheckbox,\n DTColumnFilter: ColumnFilter,\n SortAltIcon: SortAltIcon,\n SortAmountUpAltIcon: SortAmountUpAltIcon,\n SortAmountDownIcon: SortAmountDownIcon\n }\n};\n</script>\n","<template>\n <thead :class=\"cx('thead')\" :style=\"sx('thead')\" role=\"rowgroup\" v-bind=\"columnGroup ? { ...ptm('thead', ptmTHeadOptions), ...getColumnGroupPT('root') } : ptm('thead', ptmTHeadOptions)\" data-pc-section=\"thead\">\n <template v-if=\"!columnGroup\">\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 <DTHeaderCell\n v-if=\"!columnProp(col, 'hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp(col, 'field'))\"\n :column=\"col\"\n :index=\"i\"\n @column-click=\"$emit('column-click', $event)\"\n @column-mousedown=\"$emit('column-mousedown', $event)\"\n @column-dragstart=\"$emit('column-dragstart', $event)\"\n @column-dragover=\"$emit('column-dragover', $event)\"\n @column-dragleave=\"$emit('column-dragleave', $event)\"\n @column-drop=\"$emit('column-drop', $event)\"\n :groupRowsBy=\"groupRowsBy\"\n :groupRowSortField=\"groupRowSortField\"\n :reorderableColumns=\"reorderableColumns\"\n :resizableColumns=\"resizableColumns\"\n @column-resizestart=\"$emit('column-resizestart', $event)\"\n :sortMode=\"sortMode\"\n :sortField=\"sortField\"\n :sortOrder=\"sortOrder\"\n :multiSortMeta=\"multiSortMeta\"\n :allRowsSelected=\"allRowsSelected\"\n :empty=\"empty\"\n @checkbox-change=\"$emit('checkbox-change', $event)\"\n :filters=\"filters\"\n :filterDisplay=\"filterDisplay\"\n :filtersStore=\"filtersStore\"\n :filterInputProps=\"filterInputProps\"\n :filterButtonProps=\"filterButtonProps\"\n :first=\"first\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </tr>\n </template>\n <template v-else>\n <tr v-for=\"(row, i) of getHeaderRows()\" :key=\"i\" role=\"row\" v-bind=\"{ ...ptm('headerRow'), ...getRowPT(row, 'root', i) }\">\n <template v-for=\"(col, j) of getHeaderColumns(row)\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || j\">\n <DTHeaderCell\n v-if=\"!columnProp(col, 'hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp(col, 'field')) && typeof col.children !== 'string'\"\n :column=\"col\"\n @column-click=\"$emit('column-click', $event)\"\n @column-mousedown=\"$emit('column-mousedown', $event)\"\n :groupRowsBy=\"groupRowsBy\"\n :groupRowSortField=\"groupRowSortField\"\n :sortMode=\"sortMode\"\n :sortField=\"sortField\"\n :sortOrder=\"sortOrder\"\n :multiSortMeta=\"multiSortMeta\"\n :allRowsSelected=\"allRowsSelected\"\n :empty=\"empty\"\n @checkbox-change=\"$emit('checkbox-change', $event)\"\n :filters=\"filters\"\n :filterDisplay=\"filterDisplay\"\n :filtersStore=\"filtersStore\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </tr>\n </template>\n <tr v-if=\"filterDisplay === 'row'\" role=\"row\" v-bind=\"ptm('headerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <th\n v-if=\"!columnProp(col, 'hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp(col, 'field'))\"\n :style=\"getFilterColumnHeaderStyle(col)\"\n :class=\"getFilterColumnHeaderClass(col)\"\n v-bind=\"{ ...getColumnPT(col, 'root', i), ...getColumnPT(col, 'headerCell', i) }\"\n >\n <DTHeaderCheckbox v-if=\"columnProp(col, 'selectionMode') === 'multiple'\" :checked=\"allRowsSelected\" :disabled=\"empty\" @change=\"$emit('checkbox-change', $event)\" :column=\"col\" :unstyled=\"unstyled\" :pt=\"pt\" />\n <DTColumnFilter\n v-if=\"col.children && col.children.filter\"\n :field=\"columnProp(col, 'filterField') || columnProp(col, 'field')\"\n :type=\"columnProp(col, 'dataType')\"\n display=\"row\"\n :showMenu=\"columnProp(col, 'showFilterMenu')\"\n :filterElement=\"col.children && col.children.filter\"\n :filterHeaderTemplate=\"col.children && col.children.filterheader\"\n :filterFooterTemplate=\"col.children && col.children.filterfooter\"\n :filterClearTemplate=\"col.children && col.children.filterclear\"\n :filterApplyTemplate=\"col.children && col.children.filterapply\"\n :filterIconTemplate=\"col.children && col.children.filtericon\"\n :filterAddIconTemplate=\"col.children && col.children.filteraddicon\"\n :filterRemoveIconTemplate=\"col.children && col.children.filterremoveicon\"\n :filterClearIconTemplate=\"col.children && col.children.filterclearicon\"\n :filters=\"filters\"\n :filtersStore=\"filtersStore\"\n :filterInputProps=\"filterInputProps\"\n :filterButtonProps=\"filterButtonProps\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n :filterMenuStyle=\"columnProp(col, 'filterMenuStyle')\"\n :filterMenuClass=\"columnProp(col, 'filterMenuClass')\"\n :showOperator=\"columnProp(col, 'showFilterOperator')\"\n :showClearButton=\"columnProp(col, 'showClearButton')\"\n :showApplyButton=\"columnProp(col, 'showApplyButton')\"\n :showMatchModes=\"columnProp(col, 'showFilterMatchModes')\"\n :showAddButton=\"columnProp(col, 'showAddButton')\"\n :matchModeOptions=\"columnProp(col, 'filterMatchModeOptions')\"\n :maxConstraints=\"columnProp(col, 'maxConstraints')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n :column=\"col\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </th>\n </template>\n </tr>\n </thead>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { HelperSet, getVNodeProp } from '@primevue/core/utils';\nimport { mergeProps } from 'vue';\nimport ColumnFilter from './ColumnFilter.vue';\nimport HeaderCell from './HeaderCell.vue';\nimport HeaderCheckbox from './HeaderCheckbox.vue';\n\nexport default {\n name: 'TableHeader',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: [\n 'column-click',\n 'column-mousedown',\n 'column-dragstart',\n 'column-dragover',\n 'column-dragleave',\n 'column-drop',\n 'column-resizestart',\n 'checkbox-change',\n 'filter-change',\n 'filter-apply',\n 'operator-change',\n 'matchmode-change',\n 'constraint-add',\n 'constraint-remove',\n 'filter-clear',\n 'apply-click'\n ],\n props: {\n columnGroup: {\n type: null,\n default: null\n },\n columns: {\n type: null,\n default: null\n },\n rowGroupMode: {\n type: String,\n default: null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n resizableColumns: {\n type: Boolean,\n default: false\n },\n allRowsSelected: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n sortMode: {\n type: String,\n default: 'single'\n },\n groupRowSortField: {\n type: [String, Function],\n default: null\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 filterDisplay: {\n type: String,\n default: null\n },\n filters: {\n type: Object,\n default: null\n },\n filtersStore: {\n type: Object,\n default: null\n },\n reorderableColumns: {\n type: Boolean,\n default: false\n },\n first: {\n type: Number,\n default: 0\n },\n filterInputProps: {\n type: null,\n default: null\n },\n filterButtonProps: {\n type: null,\n default: null\n }\n },\n provide() {\n return {\n $rows: this.d_headerRows,\n $columns: this.d_headerColumns\n };\n },\n data() {\n return {\n d_headerRows: new HelperSet({ type: 'Row' }),\n d_headerColumns: new HelperSet({ type: 'Column' })\n };\n },\n beforeUnmount() {\n this.d_headerRows.clear();\n this.d_headerColumns.clear();\n },\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n getColumnGroupPT(key) {\n const columnGroupMetaData = {\n props: this.getColumnGroupProps(),\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n type: 'header',\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n\n return mergeProps(this.ptm(`columnGroup.${key}`, { columnGroup: columnGroupMetaData }), this.ptm(`columnGroup.${key}`, columnGroupMetaData), this.ptmo(this.getColumnGroupProps(), key, columnGroupMetaData));\n },\n getColumnGroupProps() {\n return this.columnGroup && this.columnGroup.props && this.columnGroup.props.pt ? this.columnGroup.props.pt : undefined; //@todo\n },\n getRowPT(row, key, index) {\n const rowMetaData = {\n props: row.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index\n }\n };\n\n return mergeProps(this.ptm(`row.${key}`, { row: rowMetaData }), this.ptm(`row.${key}`, rowMetaData), this.ptmo(this.getRowProp(row), key, rowMetaData));\n },\n getRowProp(row) {\n return row.props && row.props.pt ? row.props.pt : undefined; //@todo\n },\n getColumnPT(column, key, index) {\n const columnMetaData = {\n props: column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(column), key, columnMetaData));\n },\n getColumnProp(column) {\n return column.props && column.props.pt ? column.props.pt : undefined; //@todo\n },\n getFilterColumnHeaderClass(column) {\n return [this.cx('headerCell', { column }), this.columnProp(column, 'filterHeaderClass'), this.columnProp(column, 'class')];\n },\n getFilterColumnHeaderStyle(column) {\n return [this.columnProp(column, 'filterHeaderStyle'), this.columnProp(column, 'style')];\n },\n getHeaderRows() {\n return this.d_headerRows?.get(this.columnGroup, this.columnGroup.children);\n },\n getHeaderColumns(row) {\n return this.d_headerColumns?.get(row, row.children);\n }\n },\n computed: {\n ptmTHeadOptions() {\n return {\n context: {\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n }\n },\n components: {\n DTHeaderCell: HeaderCell,\n DTHeaderCheckbox: HeaderCheckbox,\n DTColumnFilter: ColumnFilter\n }\n};\n</script>\n","<template>\n <thead :class=\"cx('thead')\" :style=\"sx('thead')\" role=\"rowgroup\" v-bind=\"columnGroup ? { ...ptm('thead', ptmTHeadOptions), ...getColumnGroupPT('root') } : ptm('thead', ptmTHeadOptions)\" data-pc-section=\"thead\">\n <template v-if=\"!columnGroup\">\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 <DTHeaderCell\n v-if=\"!columnProp(col, 'hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp(col, 'field'))\"\n :column=\"col\"\n :index=\"i\"\n @column-click=\"$emit('column-click', $event)\"\n @column-mousedown=\"$emit('column-mousedown', $event)\"\n @column-dragstart=\"$emit('column-dragstart', $event)\"\n @column-dragover=\"$emit('column-dragover', $event)\"\n @column-dragleave=\"$emit('column-dragleave', $event)\"\n @column-drop=\"$emit('column-drop', $event)\"\n :groupRowsBy=\"groupRowsBy\"\n :groupRowSortField=\"groupRowSortField\"\n :reorderableColumns=\"reorderableColumns\"\n :resizableColumns=\"resizableColumns\"\n @column-resizestart=\"$emit('column-resizestart', $event)\"\n :sortMode=\"sortMode\"\n :sortField=\"sortField\"\n :sortOrder=\"sortOrder\"\n :multiSortMeta=\"multiSortMeta\"\n :allRowsSelected=\"allRowsSelected\"\n :empty=\"empty\"\n @checkbox-change=\"$emit('checkbox-change', $event)\"\n :filters=\"filters\"\n :filterDisplay=\"filterDisplay\"\n :filtersStore=\"filtersStore\"\n :filterInputProps=\"filterInputProps\"\n :filterButtonProps=\"filterButtonProps\"\n :first=\"first\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </tr>\n </template>\n <template v-else>\n <tr v-for=\"(row, i) of getHeaderRows()\" :key=\"i\" role=\"row\" v-bind=\"{ ...ptm('headerRow'), ...getRowPT(row, 'root', i) }\">\n <template v-for=\"(col, j) of getHeaderColumns(row)\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || j\">\n <DTHeaderCell\n v-if=\"!columnProp(col, 'hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp(col, 'field')) && typeof col.children !== 'string'\"\n :column=\"col\"\n @column-click=\"$emit('column-click', $event)\"\n @column-mousedown=\"$emit('column-mousedown', $event)\"\n :groupRowsBy=\"groupRowsBy\"\n :groupRowSortField=\"groupRowSortField\"\n :sortMode=\"sortMode\"\n :sortField=\"sortField\"\n :sortOrder=\"sortOrder\"\n :multiSortMeta=\"multiSortMeta\"\n :allRowsSelected=\"allRowsSelected\"\n :empty=\"empty\"\n @checkbox-change=\"$emit('checkbox-change', $event)\"\n :filters=\"filters\"\n :filterDisplay=\"filterDisplay\"\n :filtersStore=\"filtersStore\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </tr>\n </template>\n <tr v-if=\"filterDisplay === 'row'\" role=\"row\" v-bind=\"ptm('headerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <th\n v-if=\"!columnProp(col, 'hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp(col, 'field'))\"\n :style=\"getFilterColumnHeaderStyle(col)\"\n :class=\"getFilterColumnHeaderClass(col)\"\n v-bind=\"{ ...getColumnPT(col, 'root', i), ...getColumnPT(col, 'headerCell', i) }\"\n >\n <DTHeaderCheckbox v-if=\"columnProp(col, 'selectionMode') === 'multiple'\" :checked=\"allRowsSelected\" :disabled=\"empty\" @change=\"$emit('checkbox-change', $event)\" :column=\"col\" :unstyled=\"unstyled\" :pt=\"pt\" />\n <DTColumnFilter\n v-if=\"col.children && col.children.filter\"\n :field=\"columnProp(col, 'filterField') || columnProp(col, 'field')\"\n :type=\"columnProp(col, 'dataType')\"\n display=\"row\"\n :showMenu=\"columnProp(col, 'showFilterMenu')\"\n :filterElement=\"col.children && col.children.filter\"\n :filterHeaderTemplate=\"col.children && col.children.filterheader\"\n :filterFooterTemplate=\"col.children && col.children.filterfooter\"\n :filterClearTemplate=\"col.children && col.children.filterclear\"\n :filterApplyTemplate=\"col.children && col.children.filterapply\"\n :filterIconTemplate=\"col.children && col.children.filtericon\"\n :filterAddIconTemplate=\"col.children && col.children.filteraddicon\"\n :filterRemoveIconTemplate=\"col.children && col.children.filterremoveicon\"\n :filterClearIconTemplate=\"col.children && col.children.filterclearicon\"\n :filters=\"filters\"\n :filtersStore=\"filtersStore\"\n :filterInputProps=\"filterInputProps\"\n :filterButtonProps=\"filterButtonProps\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n :filterMenuStyle=\"columnProp(col, 'filterMenuStyle')\"\n :filterMenuClass=\"columnProp(col, 'filterMenuClass')\"\n :showOperator=\"columnProp(col, 'showFilterOperator')\"\n :showClearButton=\"columnProp(col, 'showClearButton')\"\n :showApplyButton=\"columnProp(col, 'showApplyButton')\"\n :showMatchModes=\"columnProp(col, 'showFilterMatchModes')\"\n :showAddButton=\"columnProp(col, 'showAddButton')\"\n :matchModeOptions=\"columnProp(col, 'filterMatchModeOptions')\"\n :maxConstraints=\"columnProp(col, 'maxConstraints')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n :column=\"col\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </th>\n </template>\n </tr>\n </thead>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { HelperSet, getVNodeProp } from '@primevue/core/utils';\nimport { mergeProps } from 'vue';\nimport ColumnFilter from './ColumnFilter.vue';\nimport HeaderCell from './HeaderCell.vue';\nimport HeaderCheckbox from './HeaderCheckbox.vue';\n\nexport default {\n name: 'TableHeader',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: [\n 'column-click',\n 'column-mousedown',\n 'column-dragstart',\n 'column-dragover',\n 'column-dragleave',\n 'column-drop',\n 'column-resizestart',\n 'checkbox-change',\n 'filter-change',\n 'filter-apply',\n 'operator-change',\n 'matchmode-change',\n 'constraint-add',\n 'constraint-remove',\n 'filter-clear',\n 'apply-click'\n ],\n props: {\n columnGroup: {\n type: null,\n default: null\n },\n columns: {\n type: null,\n default: null\n },\n rowGroupMode: {\n type: String,\n default: null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n resizableColumns: {\n type: Boolean,\n default: false\n },\n allRowsSelected: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n sortMode: {\n type: String,\n default: 'single'\n },\n groupRowSortField: {\n type: [String, Function],\n default: null\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 filterDisplay: {\n type: String,\n default: null\n },\n filters: {\n type: Object,\n default: null\n },\n filtersStore: {\n type: Object,\n default: null\n },\n reorderableColumns: {\n type: Boolean,\n default: false\n },\n first: {\n type: Number,\n default: 0\n },\n filterInputProps: {\n type: null,\n default: null\n },\n filterButtonProps: {\n type: null,\n default: null\n }\n },\n provide() {\n return {\n $rows: this.d_headerRows,\n $columns: this.d_headerColumns\n };\n },\n data() {\n return {\n d_headerRows: new HelperSet({ type: 'Row' }),\n d_headerColumns: new HelperSet({ type: 'Column' })\n };\n },\n beforeUnmount() {\n this.d_headerRows.clear();\n this.d_headerColumns.clear();\n },\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n getColumnGroupPT(key) {\n const columnGroupMetaData = {\n props: this.getColumnGroupProps(),\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n type: 'header',\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n\n return mergeProps(this.ptm(`columnGroup.${key}`, { columnGroup: columnGroupMetaData }), this.ptm(`columnGroup.${key}`, columnGroupMetaData), this.ptmo(this.getColumnGroupProps(), key, columnGroupMetaData));\n },\n getColumnGroupProps() {\n return this.columnGroup && this.columnGroup.props && this.columnGroup.props.pt ? this.columnGroup.props.pt : undefined; //@todo\n },\n getRowPT(row, key, index) {\n const rowMetaData = {\n props: row.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index\n }\n };\n\n return mergeProps(this.ptm(`row.${key}`, { row: rowMetaData }), this.ptm(`row.${key}`, rowMetaData), this.ptmo(this.getRowProp(row), key, rowMetaData));\n },\n getRowProp(row) {\n return row.props && row.props.pt ? row.props.pt : undefined; //@todo\n },\n getColumnPT(column, key, index) {\n const columnMetaData = {\n props: column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(column), key, columnMetaData));\n },\n getColumnProp(column) {\n return column.props && column.props.pt ? column.props.pt : undefined; //@todo\n },\n getFilterColumnHeaderClass(column) {\n return [this.cx('headerCell', { column }), this.columnProp(column, 'filterHeaderClass'), this.columnProp(column, 'class')];\n },\n getFilterColumnHeaderStyle(column) {\n return [this.columnProp(column, 'filterHeaderStyle'), this.columnProp(column, 'style')];\n },\n getHeaderRows() {\n return this.d_headerRows?.get(this.columnGroup, this.columnGroup.children);\n },\n getHeaderColumns(row) {\n return this.d_headerColumns?.get(row, row.children);\n }\n },\n computed: {\n ptmTHeadOptions() {\n return {\n context: {\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n }\n },\n components: {\n DTHeaderCell: HeaderCell,\n DTHeaderCheckbox: HeaderCheckbox,\n DTColumnFilter: ColumnFilter\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" data-scrollselectors=\".p-datatable-wrapper\" v-bind=\"ptmi('root')\">\n <slot></slot>\n <div v-if=\"loading\" :class=\"cx('mask')\" v-bind=\"ptm('mask')\">\n <slot v-if=\"$slots.loading\" name=\"loading\"></slot>\n <template v-else>\n <component v-if=\"$slots.loadingicon\" :is=\"$slots.loadingicon\" :class=\"cx('loadingIcon')\" />\n <i v-else-if=\"loadingIcon\" :class=\"[cx('loadingIcon'), 'pi-spin', loadingIcon]\" v-bind=\"ptm('loadingIcon')\" />\n <SpinnerIcon v-else spin :class=\"cx('loadingIcon')\" v-bind=\"ptm('loadingIcon')\" />\n </template>\n </div>\n <div v-if=\"$slots.header\" :class=\"cx('header')\" v-bind=\"ptm('header')\">\n <slot name=\"header\"></slot>\n </div>\n <DTPaginator\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>\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 ></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 </DTPaginator>\n <div :class=\"cx('tableContainer')\" :style=\"[sx('tableContainer'), { maxHeight: virtualScrollerDisabled ? scrollHeight : '' }]\" v-bind=\"ptm('tableContainer')\">\n <DTVirtualScroller\n ref=\"virtualScroller\"\n v-bind=\"virtualScrollerOptions\"\n :items=\"processedData\"\n :columns=\"columns\"\n :style=\"scrollHeight !== 'flex' ? { height: scrollHeight } : undefined\"\n :scrollHeight=\"scrollHeight !== 'flex' ? undefined : '100%'\"\n :disabled=\"virtualScrollerDisabled\"\n loaderDisabled\n inline\n autoSize\n :showSpacer=\"false\"\n :pt=\"ptm('virtualScroller')\"\n >\n <template #content=\"slotProps\">\n <table ref=\"table\" role=\"table\" :class=\"[cx('table'), tableClass]\" :style=\"[tableStyle, slotProps.spacerStyle]\" v-bind=\"{ ...tableProps, ...ptm('table') }\">\n <DTTableHeader\n v-if=\"showHeaders\"\n :columnGroup=\"headerColumnGroup\"\n :columns=\"slotProps.columns\"\n :rowGroupMode=\"rowGroupMode\"\n :groupRowsBy=\"groupRowsBy\"\n :groupRowSortField=\"groupRowSortField\"\n :reorderableColumns=\"reorderableColumns\"\n :resizableColumns=\"resizableColumns\"\n :allRowsSelected=\"allRowsSelected\"\n :empty=\"empty\"\n :sortMode=\"sortMode\"\n :sortField=\"d_sortField\"\n :sortOrder=\"d_sortOrder\"\n :multiSortMeta=\"d_multiSortMeta\"\n :filters=\"d_filters\"\n :filtersStore=\"filters\"\n :filterDisplay=\"filterDisplay\"\n :filterButtonProps=\"headerFilterButtonProps\"\n :filterInputProps=\"filterInputProps\"\n :first=\"d_first\"\n @column-click=\"onColumnHeaderClick($event)\"\n @column-mousedown=\"onColumnHeaderMouseDown($event)\"\n @filter-change=\"onFilterChange\"\n @filter-apply=\"onFilterApply\"\n @column-dragstart=\"onColumnHeaderDragStart($event)\"\n @column-dragover=\"onColumnHeaderDragOver($event)\"\n @column-dragleave=\"onColumnHeaderDragLeave($event)\"\n @column-drop=\"onColumnHeaderDrop($event)\"\n @column-resizestart=\"onColumnResizeStart($event)\"\n @checkbox-change=\"toggleRowsWithCheckbox($event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n <DTTableBody\n v-if=\"frozenValue\"\n ref=\"frozenBodyRef\"\n :value=\"frozenValue\"\n :frozenRow=\"true\"\n :columns=\"slotProps.columns\"\n :first=\"d_first\"\n :dataKey=\"dataKey\"\n :selection=\"selection\"\n :selectionKeys=\"d_selectionKeys\"\n :selectionMode=\"selectionMode\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :rowGroupMode=\"rowGroupMode\"\n :groupRowsBy=\"groupRowsBy\"\n :expandableRowGroups=\"expandableRowGroups\"\n :rowClass=\"rowClass\"\n :rowStyle=\"rowStyle\"\n :editMode=\"editMode\"\n :compareSelectionBy=\"compareSelectionBy\"\n :scrollable=\"scrollable\"\n :expandedRowIcon=\"expandedRowIcon\"\n :collapsedRowIcon=\"collapsedRowIcon\"\n :expandedRows=\"expandedRows\"\n :expandedRowGroups=\"expandedRowGroups\"\n :editingRows=\"editingRows\"\n :editingRowKeys=\"d_editingRowKeys\"\n :templates=\"$slots\"\n :editButtonProps=\"rowEditButtonProps\"\n :isVirtualScrollerDisabled=\"true\"\n @rowgroup-toggle=\"toggleRowGroup\"\n @row-click=\"onRowClick($event)\"\n @row-dblclick=\"onRowDblClick($event)\"\n @row-rightclick=\"onRowRightClick($event)\"\n @row-touchend=\"onRowTouchEnd\"\n @row-keydown=\"onRowKeyDown\"\n @row-mousedown=\"onRowMouseDown\"\n @row-dragstart=\"onRowDragStart($event)\"\n @row-dragover=\"onRowDragOver($event)\"\n @row-dragleave=\"onRowDragLeave($event)\"\n @row-dragend=\"onRowDragEnd($event)\"\n @row-drop=\"onRowDrop($event)\"\n @row-toggle=\"toggleRow($event)\"\n @radio-change=\"toggleRowWithRadio($event)\"\n @checkbox-change=\"toggleRowWithCheckbox($event)\"\n @cell-edit-init=\"onCellEditInit($event)\"\n @cell-edit-complete=\"onCellEditComplete($event)\"\n @cell-edit-cancel=\"onCellEditCancel($event)\"\n @row-edit-init=\"onRowEditInit($event)\"\n @row-edit-save=\"onRowEditSave($event)\"\n @row-edit-cancel=\"onRowEditCancel($event)\"\n :editingMeta=\"d_editingMeta\"\n @editing-meta-change=\"onEditingMetaChange\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n <DTTableBody\n ref=\"bodyRef\"\n :value=\"dataToRender(slotProps.rows)\"\n :class=\"slotProps.styleClass\"\n :columns=\"slotProps.columns\"\n :empty=\"empty\"\n :first=\"d_first\"\n :dataKey=\"dataKey\"\n :selection=\"selection\"\n :selectionKeys=\"d_selectionKeys\"\n :selectionMode=\"selectionMode\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :rowGroupMode=\"rowGroupMode\"\n :groupRowsBy=\"groupRowsBy\"\n :expandableRowGroups=\"expandableRowGroups\"\n :rowClass=\"rowClass\"\n :rowStyle=\"rowStyle\"\n :editMode=\"editMode\"\n :compareSelectionBy=\"compareSelectionBy\"\n :scrollable=\"scrollable\"\n :expandedRowIcon=\"expandedRowIcon\"\n :collapsedRowIcon=\"collapsedRowIcon\"\n :expandedRows=\"expandedRows\"\n :expandedRowGroups=\"expandedRowGroups\"\n :editingRows=\"editingRows\"\n :editingRowKeys=\"d_editingRowKeys\"\n :templates=\"$slots\"\n :editButtonProps=\"rowEditButtonProps\"\n :virtualScrollerContentProps=\"slotProps\"\n :isVirtualScrollerDisabled=\"virtualScrollerDisabled\"\n @rowgroup-toggle=\"toggleRowGroup\"\n @row-click=\"onRowClick($event)\"\n @row-dblclick=\"onRowDblClick($event)\"\n @row-rightclick=\"onRowRightClick($event)\"\n @row-touchend=\"onRowTouchEnd\"\n @row-keydown=\"onRowKeyDown($event, slotProps)\"\n @row-mousedown=\"onRowMouseDown\"\n @row-dragstart=\"onRowDragStart($event)\"\n @row-dragover=\"onRowDragOver($event)\"\n @row-dragleave=\"onRowDragLeave($event)\"\n @row-dragend=\"onRowDragEnd($event)\"\n @row-drop=\"onRowDrop($event)\"\n @row-toggle=\"toggleRow($event)\"\n @radio-change=\"toggleRowWithRadio($event)\"\n @checkbox-change=\"toggleRowWithCheckbox($event)\"\n @cell-edit-init=\"onCellEditInit($event)\"\n @cell-edit-complete=\"onCellEditComplete($event)\"\n @cell-edit-cancel=\"onCellEditCancel($event)\"\n @row-edit-init=\"onRowEditInit($event)\"\n @row-edit-save=\"onRowEditSave($event)\"\n @row-edit-cancel=\"onRowEditCancel($event)\"\n :editingMeta=\"d_editingMeta\"\n @editing-meta-change=\"onEditingMetaChange\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n <tbody\n v-if=\"hasSpacerStyle(slotProps.spacerStyle)\"\n :class=\"cx('virtualScrollerSpacer')\"\n :style=\"{ height: `calc(${slotProps.spacerStyle.height} - ${slotProps.rows.length * slotProps.itemSize}px)` }\"\n v-bind=\"ptm('virtualScrollerSpacer')\"\n ></tbody>\n <DTTableFooter :columnGroup=\"footerColumnGroup\" :columns=\"slotProps.columns\" :pt=\"pt\" />\n </table>\n </template>\n </DTVirtualScroller>\n </div>\n <DTPaginator\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 :totalRecords=\"slotProps.totalRecords\"\n :firstPageCallback=\"slotProps.firstPageCallback\"\n :lastPageCallback=\"slotProps.lastPageCallback\"\n :prevPageCallback=\"slotProps.prevPageCallback\"\n :nextPageCallback=\"slotProps.nextPageCallback\"\n :rowChangeCallback=\"slotProps.rowChangeCallback\"\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 </DTPaginator>\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 <span v-if=\"reorderableColumns\" ref=\"reorderIndicatorUp\" :class=\"cx('rowReorderIndicatorUp')\" style=\"position: absolute; display: none\" v-bind=\"ptm('rowReorderIndicatorUp')\">\n <component :is=\"$slots.rowreorderindicatorupicon || $slots.reorderindicatorupicon || 'ArrowDownIcon'\" />\n </span>\n <span v-if=\"reorderableColumns\" ref=\"reorderIndicatorDown\" :class=\"cx('rowReorderIndicatorDown')\" style=\"position: absolute; display: none\" v-bind=\"ptm('rowReorderIndicatorDown')\">\n <component :is=\"$slots.rowreorderindicatordownicon || $slots.reorderindicatordownicon || 'ArrowUpIcon'\" />\n </span>\n </div>\n</template>\n\n<script>\nimport {\n addClass,\n addStyle,\n clearSelection,\n exportCSV,\n find,\n findSingle,\n focus,\n getAttribute,\n getHiddenElementOuterHeight,\n getHiddenElementOuterWidth,\n getIndex,\n getOffset,\n getOuterHeight,\n getOuterWidth,\n isClickable,\n isRTL,\n removeClass,\n setAttribute\n} from '@primeuix/utils/dom';\nimport { equals, findIndexInList, isEmpty, isNotEmpty, localeComparator, reorderArray, resolveFieldData, sort } from '@primeuix/utils/object';\nimport { FilterMatchMode, FilterOperator, FilterService } from '@primevue/core/api';\nimport { HelperSet, getVNodeProp } from '@primevue/core/utils';\nimport ArrowDownIcon from '@primevue/icons/arrowdown';\nimport ArrowUpIcon from '@primevue/icons/arrowup';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport Paginator from 'primevue/paginator';\nimport VirtualScroller from 'primevue/virtualscroller';\nimport BaseDataTable from './BaseDataTable.vue';\nimport TableBody from './TableBody.vue';\nimport TableFooter from './TableFooter.vue';\nimport TableHeader from './TableHeader.vue';\n\nexport default {\n name: 'DataTable',\n extends: BaseDataTable,\n inheritAttrs: false,\n emits: [\n 'value-change',\n 'update:first',\n 'update:rows',\n 'page',\n 'update:sortField',\n 'update:sortOrder',\n 'update:multiSortMeta',\n 'sort',\n 'filter',\n 'row-click',\n 'row-dblclick',\n 'update:selection',\n 'row-select',\n 'row-unselect',\n 'update:contextMenuSelection',\n 'row-contextmenu',\n 'row-unselect-all',\n 'row-select-all',\n 'select-all-change',\n 'column-resize-end',\n 'column-reorder',\n 'row-reorder',\n 'update:expandedRows',\n 'row-collapse',\n 'row-expand',\n 'update:expandedRowGroups',\n 'rowgroup-collapse',\n 'rowgroup-expand',\n 'update:filters',\n 'state-restore',\n 'state-save',\n 'cell-edit-init',\n 'cell-edit-complete',\n 'cell-edit-cancel',\n 'update:editingRows',\n 'row-edit-init',\n 'row-edit-save',\n 'row-edit-cancel'\n ],\n provide() {\n return {\n $columns: this.d_columns,\n $columnGroups: this.d_columnGroups\n };\n },\n data() {\n return {\n d_first: this.first,\n d_rows: this.rows,\n d_sortField: this.sortField,\n d_sortOrder: this.sortOrder,\n d_nullSortOrder: this.nullSortOrder,\n d_multiSortMeta: this.multiSortMeta ? [...this.multiSortMeta] : [],\n d_groupRowsSortMeta: null,\n d_selectionKeys: null,\n d_columnOrder: null,\n d_editingRowKeys: null,\n d_editingMeta: {},\n d_filters: this.cloneFilters(this.filters),\n d_columns: new HelperSet({ type: 'Column' }),\n d_columnGroups: new HelperSet({ type: 'ColumnGroup' })\n };\n },\n rowTouched: false,\n anchorRowIndex: null,\n rangeRowIndex: null,\n documentColumnResizeListener: null,\n documentColumnResizeEndListener: null,\n lastResizeHelperX: null,\n resizeColumnElement: null,\n columnResizing: false,\n colReorderIconWidth: null,\n colReorderIconHeight: null,\n draggedColumn: null,\n draggedColumnElement: null,\n draggedRowIndex: null,\n droppedRowIndex: null,\n rowDragging: null,\n columnWidthsState: null,\n tableWidthState: null,\n columnWidthsRestored: false,\n watch: {\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 nullSortOrder(newValue) {\n this.d_nullSortOrder = newValue;\n },\n multiSortMeta(newValue) {\n this.d_multiSortMeta = newValue;\n },\n selection: {\n immediate: true,\n handler(newValue) {\n if (this.dataKey) {\n this.updateSelectionKeys(newValue);\n }\n }\n },\n editingRows: {\n immediate: true,\n handler(newValue) {\n if (this.dataKey) {\n this.updateEditingRowKeys(newValue);\n }\n }\n },\n filters: {\n deep: true,\n handler: function (newValue) {\n this.d_filters = this.cloneFilters(newValue);\n }\n }\n },\n mounted() {\n if (this.isStateful()) {\n this.restoreState();\n\n this.resizableColumns && this.restoreColumnWidths();\n }\n\n if (this.editMode === 'row' && this.dataKey && !this.d_editingRowKeys) {\n this.updateEditingRowKeys(this.editingRows);\n }\n },\n beforeUnmount() {\n this.unbindColumnResizeEvents();\n this.destroyStyleElement();\n\n this.d_columns.clear();\n this.d_columnGroups.clear();\n },\n updated() {\n if (this.isStateful()) {\n this.saveState();\n }\n\n if (this.editMode === 'row' && this.dataKey && !this.d_editingRowKeys) {\n this.updateEditingRowKeys(this.editingRows);\n }\n },\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n onPage(event) {\n this.clearEditingMetaData();\n\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.$emit('update:first', this.d_first);\n this.$emit('update:rows', this.d_rows);\n this.$emit('page', pageEvent);\n this.$nextTick(() => {\n this.$emit('value-change', this.processedData);\n });\n },\n onColumnHeaderClick(e) {\n const event = e.originalEvent;\n const 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\"]') && !targetNode.closest('[data-pc-section=\"columnfilterbutton\"]') && !isClickable(event.target))\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 this.$nextTick(() => {\n this.$emit('value-change', this.processedData);\n });\n }\n }\n },\n sortSingle(value) {\n this.clearEditingMetaData();\n\n if (this.groupRowsBy && this.groupRowsBy === this.sortField) {\n this.d_multiSortMeta = [\n { field: this.sortField, order: this.sortOrder || this.defaultSortOrder },\n { field: this.d_sortField, order: this.d_sortOrder }\n ];\n\n return this.sortMultiple(value);\n }\n\n let data = [...value];\n let resolvedFieldData = new Map();\n\n for (let item of data) {\n resolvedFieldData.set(item, resolveFieldData(item, this.d_sortField));\n }\n\n const comparer = localeComparator();\n\n data.sort((data1, data2) => {\n let value1 = resolvedFieldData.get(data1);\n let value2 = resolvedFieldData.get(data2);\n\n return sort(value1, value2, this.d_sortOrder, comparer, this.d_nullSortOrder);\n });\n\n return data;\n },\n sortMultiple(value) {\n this.clearEditingMetaData();\n\n if (this.groupRowsBy && (this.d_groupRowsSortMeta || (this.d_multiSortMeta.length && this.groupRowsBy === this.d_multiSortMeta[0].field))) {\n const firstSortMeta = this.d_multiSortMeta[0];\n\n !this.d_groupRowsSortMeta && (this.d_groupRowsSortMeta = firstSortMeta);\n\n if (firstSortMeta.field !== this.d_groupRowsSortMeta.field) {\n this.d_multiSortMeta = [this.d_groupRowsSortMeta, ...this.d_multiSortMeta];\n }\n }\n\n let data = [...value];\n\n data.sort((data1, data2) => {\n return this.multisortField(data1, data2, 0);\n });\n\n return data;\n },\n multisortField(data1, data2, index) {\n const value1 = resolveFieldData(data1, this.d_multiSortMeta[index].field);\n const value2 = resolveFieldData(data2, this.d_multiSortMeta[index].field);\n const comparer = localeComparator();\n\n if (value1 === value2) {\n return this.d_multiSortMeta.length - 1 > index ? this.multisortField(data1, data2, index + 1) : 0;\n }\n\n return sort(value1, value2, this.d_multiSortMeta[index].order, comparer, this.d_nullSortOrder);\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 getActiveFilters(filters) {\n const removeEmptyFilters = ([key, value]) => {\n if (value.constraints) {\n const filteredConstraints = value.constraints.filter((constraint) => constraint.value !== null);\n\n if (filteredConstraints.length > 0) {\n return [key, { ...value, constraints: filteredConstraints }];\n }\n } else if (value.value !== null) {\n return [key, value];\n }\n\n return undefined;\n };\n\n const filterValidEntries = (entry) => entry !== undefined;\n const entries = Object.entries(filters).map(removeEmptyFilters).filter(filterValidEntries);\n\n return Object.fromEntries(entries);\n },\n filter(data) {\n if (!data) {\n return;\n }\n\n this.clearEditingMetaData();\n\n let activeFilters = this.getActiveFilters(this.filters);\n let globalFilterFieldsArray;\n\n if (activeFilters['global']) {\n globalFilterFieldsArray = this.globalFilterFields || this.columns.map((col) => this.columnProp(col, 'filterField') || this.columnProp(col, 'field'));\n }\n\n let filteredValue = [];\n\n for (let i = 0; i < data.length; i++) {\n let localMatch = true;\n let globalMatch = false;\n let localFiltered = false;\n\n for (let prop in activeFilters) {\n if (Object.prototype.hasOwnProperty.call(activeFilters, prop) && prop !== 'global') {\n localFiltered = true;\n let filterField = prop;\n let filterMeta = activeFilters[filterField];\n\n if (filterMeta.operator) {\n for (let filterConstraint of filterMeta.constraints) {\n localMatch = this.executeLocalFilter(filterField, data[i], filterConstraint);\n\n if ((filterMeta.operator === FilterOperator.OR && localMatch) || (filterMeta.operator === FilterOperator.AND && !localMatch)) {\n break;\n }\n }\n } else {\n localMatch = this.executeLocalFilter(filterField, data[i], filterMeta);\n }\n\n if (!localMatch) {\n break;\n }\n }\n }\n\n if (localMatch && activeFilters['global'] && !globalMatch && globalFilterFieldsArray) {\n for (let j = 0; j < globalFilterFieldsArray.length; j++) {\n let globalFilterField = globalFilterFieldsArray[j];\n\n globalMatch = FilterService.filters[activeFilters['global'].matchMode || FilterMatchMode.CONTAINS](resolveFieldData(data[i], globalFilterField), activeFilters['global'].value, this.filterLocale);\n\n if (globalMatch) {\n break;\n }\n }\n }\n\n let matches;\n\n if (activeFilters['global']) {\n matches = localFiltered ? localFiltered && localMatch && globalMatch : globalMatch;\n } else {\n matches = localFiltered && localMatch;\n }\n\n if (matches) {\n filteredValue.push(data[i]);\n }\n }\n\n if (filteredValue.length === this.value.length || Object.keys(activeFilters).length == 0) {\n filteredValue = data;\n }\n\n let filterEvent = this.createLazyLoadEvent();\n\n filterEvent.filteredValue = filteredValue;\n this.$emit('filter', filterEvent);\n this.$nextTick(() => {\n this.$emit('value-change', this.processedData);\n });\n\n return filteredValue;\n },\n executeLocalFilter(field, rowData, filterMeta) {\n let filterValue = filterMeta.value;\n let filterMatchMode = filterMeta.matchMode || FilterMatchMode.STARTS_WITH;\n let dataFieldValue = resolveFieldData(rowData, field);\n let filterConstraint = FilterService.filters[filterMatchMode];\n\n return filterConstraint(dataFieldValue, filterValue, this.filterLocale);\n },\n onRowClick(e) {\n const event = e.originalEvent;\n const body = this.$refs.bodyRef && this.$refs.bodyRef.$el;\n const focusedItem = findSingle(body, 'tr[data-p-selectable-row=\"true\"][tabindex=\"0\"]');\n\n if (isClickable(event.target)) {\n return;\n }\n\n this.$emit('row-click', e);\n\n if (this.selectionMode) {\n const rowData = e.data;\n const rowIndex = this.d_first + e.index;\n\n if (this.isMultipleSelectionMode() && event.shiftKey && this.anchorRowIndex != null) {\n clearSelection();\n this.rangeRowIndex = rowIndex;\n this.selectRange(event);\n } else {\n const selected = this.isSelected(rowData);\n const metaSelection = this.rowTouched ? false : this.metaKeySelection;\n\n this.anchorRowIndex = rowIndex;\n this.rangeRowIndex = rowIndex;\n\n if (metaSelection) {\n let metaKey = event.metaKey || event.ctrlKey;\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n this.$emit('update:selection', null);\n } else {\n const selectionIndex = this.findIndexInSelection(rowData);\n const _selection = this.selection.filter((val, i) => i != selectionIndex);\n\n this.$emit('update:selection', _selection);\n }\n\n this.$emit('row-unselect', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n } else {\n if (this.isSingleSelectionMode()) {\n this.$emit('update:selection', rowData);\n } else if (this.isMultipleSelectionMode()) {\n let _selection = metaKey ? this.selection || [] : [];\n\n _selection = [..._selection, rowData];\n this.$emit('update:selection', _selection);\n }\n\n this.$emit('row-select', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n }\n } else {\n if (this.selectionMode === 'single') {\n if (selected) {\n this.$emit('update:selection', null);\n this.$emit('row-unselect', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n } else {\n this.$emit('update:selection', rowData);\n this.$emit('row-select', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n }\n } else if (this.selectionMode === 'multiple') {\n if (selected) {\n const selectionIndex = this.findIndexInSelection(rowData);\n const _selection = this.selection.filter((val, i) => i != selectionIndex);\n\n this.$emit('update:selection', _selection);\n this.$emit('row-unselect', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n } else {\n const _selection = this.selection ? [...this.selection, rowData] : [rowData];\n\n this.$emit('update:selection', _selection);\n this.$emit('row-select', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n }\n }\n }\n }\n }\n\n this.rowTouched = false;\n\n if (focusedItem) {\n if (event.target?.getAttribute('data-pc-section') === 'rowtoggleicon') return;\n\n const targetRow = event.currentTarget?.closest('tr[data-p-selectable-row=\"true\"]');\n\n focusedItem.tabIndex = '-1';\n targetRow.tabIndex = '0';\n }\n },\n onRowDblClick(e) {\n const event = e.originalEvent;\n\n if (isClickable(event.target)) {\n return;\n }\n\n this.$emit('row-dblclick', e);\n },\n onRowRightClick(event) {\n if (this.contextMenu) {\n clearSelection();\n event.originalEvent.target.focus();\n }\n\n this.$emit('update:contextMenuSelection', event.data);\n this.$emit('row-contextmenu', event);\n },\n onRowTouchEnd() {\n this.rowTouched = true;\n },\n onRowKeyDown(e, slotProps) {\n const event = e.originalEvent;\n const rowData = e.data;\n const rowIndex = e.index;\n const metaKey = event.metaKey || event.ctrlKey;\n\n if (this.selectionMode) {\n const row = event.target;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event, row, rowIndex, slotProps);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event, row, rowIndex, slotProps);\n break;\n\n case 'Home':\n this.onHomeKey(event, row, rowIndex, slotProps);\n break;\n\n case 'End':\n this.onEndKey(event, row, rowIndex, slotProps);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event, rowData, rowIndex);\n break;\n\n case 'Space':\n this.onSpaceKey(event, rowData, rowIndex, slotProps);\n break;\n\n case 'Tab':\n this.onTabKey(event, rowIndex);\n break;\n\n default:\n if (event.code === 'KeyA' && metaKey && this.isMultipleSelectionMode()) {\n const data = this.dataToRender(slotProps.rows);\n\n this.$emit('update:selection', data);\n }\n\n event.preventDefault();\n\n break;\n }\n }\n },\n onArrowDownKey(event, row, rowIndex, slotProps) {\n const nextRow = this.findNextSelectableRow(row);\n\n nextRow && this.focusRowChange(row, nextRow);\n\n if (event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n const nextRowIndex = rowIndex + 1 >= data.length ? data.length - 1 : rowIndex + 1;\n\n this.onRowClick({ originalEvent: event, data: data[nextRowIndex], index: nextRowIndex });\n }\n\n event.preventDefault();\n },\n onArrowUpKey(event, row, rowIndex, slotProps) {\n const prevRow = this.findPrevSelectableRow(row);\n\n prevRow && this.focusRowChange(row, prevRow);\n\n if (event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n const prevRowIndex = rowIndex - 1 <= 0 ? 0 : rowIndex - 1;\n\n this.onRowClick({ originalEvent: event, data: data[prevRowIndex], index: prevRowIndex });\n }\n\n event.preventDefault();\n },\n onHomeKey(event, row, rowIndex, slotProps) {\n const firstRow = this.findFirstSelectableRow();\n\n firstRow && this.focusRowChange(row, firstRow);\n\n if (event.ctrlKey && event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n\n this.$emit('update:selection', data.slice(0, rowIndex + 1));\n }\n\n event.preventDefault();\n },\n onEndKey(event, row, rowIndex, slotProps) {\n const lastRow = this.findLastSelectableRow();\n\n lastRow && this.focusRowChange(row, lastRow);\n\n if (event.ctrlKey && event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n\n this.$emit('update:selection', data.slice(rowIndex, data.length));\n }\n\n event.preventDefault();\n },\n onEnterKey(event, rowData, rowIndex) {\n this.onRowClick({ originalEvent: event, data: rowData, index: rowIndex });\n event.preventDefault();\n },\n onSpaceKey(event, rowData, rowIndex, slotProps) {\n this.onEnterKey(event, rowData, rowIndex);\n\n if (event.shiftKey && this.selection !== null) {\n const data = this.dataToRender(slotProps.rows);\n let index;\n\n if (this.selection.length > 0) {\n let firstSelectedRowIndex, lastSelectedRowIndex;\n\n firstSelectedRowIndex = findIndexInList(this.selection[0], data);\n lastSelectedRowIndex = findIndexInList(this.selection[this.selection.length - 1], data);\n\n index = rowIndex <= firstSelectedRowIndex ? lastSelectedRowIndex : firstSelectedRowIndex;\n } else {\n index = findIndexInList(this.selection, data);\n }\n\n const _selection = index !== rowIndex ? data.slice(Math.min(index, rowIndex), Math.max(index, rowIndex) + 1) : rowData;\n\n this.$emit('update:selection', _selection);\n }\n },\n onTabKey(event, rowIndex) {\n const body = this.$refs.bodyRef && this.$refs.bodyRef.$el;\n const rows = find(body, 'tr[data-p-selectable-row=\"true\"]');\n\n if (event.code === 'Tab' && rows && rows.length > 0) {\n const firstSelectedRow = findSingle(body, 'tr[data-p-selected=\"true\"]');\n const focusedItem = findSingle(body, 'tr[data-p-selectable-row=\"true\"][tabindex=\"0\"]');\n\n if (firstSelectedRow) {\n firstSelectedRow.tabIndex = '0';\n focusedItem && focusedItem !== firstSelectedRow && (focusedItem.tabIndex = '-1');\n } else {\n rows[0].tabIndex = '0';\n focusedItem !== rows[0] && (rows[rowIndex].tabIndex = '-1');\n }\n }\n },\n findNextSelectableRow(row) {\n let nextRow = row.nextElementSibling;\n\n if (nextRow) {\n if (getAttribute(nextRow, 'data-p-selectable-row') === true) return nextRow;\n else return this.findNextSelectableRow(nextRow);\n } else {\n return null;\n }\n },\n findPrevSelectableRow(row) {\n let prevRow = row.previousElementSibling;\n\n if (prevRow) {\n if (getAttribute(prevRow, 'data-p-selectable-row') === true) return prevRow;\n else return this.findPrevSelectableRow(prevRow);\n } else {\n return null;\n }\n },\n findFirstSelectableRow() {\n const firstRow = findSingle(this.$refs.table, 'tr[data-p-selectable-row=\"true\"]');\n\n return firstRow;\n },\n findLastSelectableRow() {\n const rows = find(this.$refs.table, 'tr[data-p-selectable-row=\"true\"]');\n\n return rows ? rows[rows.length - 1] : null;\n },\n focusRowChange(firstFocusableRow, currentFocusedRow) {\n firstFocusableRow.tabIndex = '-1';\n currentFocusedRow.tabIndex = '0';\n focus(currentFocusedRow);\n },\n toggleRowWithRadio(event) {\n const rowData = event.data;\n\n if (this.isSelected(rowData)) {\n this.$emit('update:selection', null);\n this.$emit('row-unselect', { originalEvent: event.originalEvent, data: rowData, index: event.index, type: 'radiobutton' });\n } else {\n this.$emit('update:selection', rowData);\n this.$emit('row-select', { originalEvent: event.originalEvent, data: rowData, index: event.index, type: 'radiobutton' });\n }\n },\n toggleRowWithCheckbox(event) {\n const rowData = event.data;\n\n if (this.isSelected(rowData)) {\n const selectionIndex = this.findIndexInSelection(rowData);\n const _selection = this.selection.filter((val, i) => i != selectionIndex);\n\n this.$emit('update:selection', _selection);\n this.$emit('row-unselect', { originalEvent: event.originalEvent, data: rowData, index: event.index, type: 'checkbox' });\n } else {\n let _selection = this.selection ? [...this.selection] : [];\n\n _selection = [..._selection, rowData];\n this.$emit('update:selection', _selection);\n this.$emit('row-select', { originalEvent: event.originalEvent, data: rowData, index: event.index, type: 'checkbox' });\n }\n },\n toggleRowsWithCheckbox(event) {\n if (this.selectAll !== null) {\n this.$emit('select-all-change', event);\n } else {\n const { originalEvent, checked } = event;\n let _selection = [];\n\n if (checked) {\n _selection = this.frozenValue ? [...this.frozenValue, ...this.processedData] : this.processedData;\n this.$emit('row-select-all', { originalEvent, data: _selection });\n } else {\n this.$emit('row-unselect-all', { originalEvent });\n }\n\n this.$emit('update:selection', _selection);\n }\n },\n isSingleSelectionMode() {\n return this.selectionMode === 'single';\n },\n isMultipleSelectionMode() {\n return this.selectionMode === 'multiple';\n },\n isSelected(rowData) {\n if (rowData && this.selection) {\n if (this.dataKey) {\n return this.d_selectionKeys ? this.d_selectionKeys[resolveFieldData(rowData, this.dataKey)] !== undefined : false;\n } else {\n if (this.selection instanceof Array) return this.findIndexInSelection(rowData) > -1;\n else return this.equals(rowData, this.selection);\n }\n }\n\n return false;\n },\n findIndexInSelection(rowData) {\n return this.findIndex(rowData, this.selection);\n },\n findIndex(rowData, collection) {\n let index = -1;\n\n if (collection && collection.length) {\n for (let i = 0; i < collection.length; i++) {\n if (this.equals(rowData, collection[i])) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n },\n updateSelectionKeys(selection) {\n this.d_selectionKeys = {};\n\n if (Array.isArray(selection)) {\n for (let data of selection) {\n this.d_selectionKeys[String(resolveFieldData(data, this.dataKey))] = 1;\n }\n } else {\n this.d_selectionKeys[String(resolveFieldData(selection, this.dataKey))] = 1;\n }\n },\n updateEditingRowKeys(editingRows) {\n if (editingRows && editingRows.length) {\n this.d_editingRowKeys = {};\n\n for (let data of editingRows) {\n this.d_editingRowKeys[String(resolveFieldData(data, this.dataKey))] = 1;\n }\n } else {\n this.d_editingRowKeys = null;\n }\n },\n equals(data1, data2) {\n return this.compareSelectionBy === 'equals' ? data1 === data2 : equals(data1, data2, this.dataKey);\n },\n selectRange(event) {\n let rangeStart, rangeEnd;\n\n if (this.rangeRowIndex > this.anchorRowIndex) {\n rangeStart = this.anchorRowIndex;\n rangeEnd = this.rangeRowIndex;\n } else if (this.rangeRowIndex < this.anchorRowIndex) {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.anchorRowIndex;\n } else {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.rangeRowIndex;\n }\n\n if (this.lazy && this.paginator) {\n rangeStart -= this.first;\n rangeEnd -= this.first;\n }\n\n const value = this.processedData;\n let _selection = [];\n\n for (let i = rangeStart; i <= rangeEnd; i++) {\n let rangeRowData = value[i];\n\n _selection.push(rangeRowData);\n this.$emit('row-select', { originalEvent: event, data: rangeRowData, type: 'row' });\n }\n\n this.$emit('update:selection', _selection);\n },\n exportCSV(options, data) {\n let csv = '\\ufeff';\n\n if (!data) {\n data = this.processedData;\n\n if (options && options.selectionOnly) data = this.selection || [];\n else if (this.frozenValue) data = data ? [...this.frozenValue, ...data] : this.frozenValue;\n }\n\n //headers\n let headerInitiated = false;\n\n for (let i = 0; i < this.columns.length; i++) {\n let column = this.columns[i];\n\n if (this.columnProp(column, 'exportable') !== false && this.columnProp(column, 'field')) {\n if (headerInitiated) csv += this.csvSeparator;\n else headerInitiated = true;\n\n csv += '\"' + (this.columnProp(column, 'exportHeader') || this.columnProp(column, 'header') || this.columnProp(column, 'field')) + '\"';\n }\n }\n\n //body\n if (data) {\n data.forEach((record) => {\n csv += '\\n';\n let rowInitiated = false;\n\n for (let i = 0; i < this.columns.length; i++) {\n let column = this.columns[i];\n\n if (this.columnProp(column, 'exportable') !== false && this.columnProp(column, 'field')) {\n if (rowInitiated) csv += this.csvSeparator;\n else rowInitiated = true;\n\n let cellData = resolveFieldData(record, this.columnProp(column, 'field'));\n\n if (cellData != null) {\n if (this.exportFunction) {\n cellData = this.exportFunction({\n data: cellData,\n field: this.columnProp(column, 'field')\n });\n } else cellData = String(cellData).replace(/\"/g, '\"\"');\n } else cellData = '';\n\n csv += '\"' + cellData + '\"';\n }\n }\n });\n }\n\n //footers\n let footerInitiated = false;\n\n for (let i = 0; i < this.columns.length; i++) {\n let column = this.columns[i];\n\n if (i === 0) csv += '\\n';\n\n if (this.columnProp(column, 'exportable') !== false && this.columnProp(column, 'exportFooter')) {\n if (footerInitiated) csv += this.csvSeparator;\n else footerInitiated = true;\n\n csv += '\"' + (this.columnProp(column, 'exportFooter') || this.columnProp(column, 'footer') || this.columnProp(column, 'field')) + '\"';\n }\n }\n\n exportCSV(csv, this.exportFilename);\n },\n resetPage() {\n this.d_first = 0;\n this.$emit('update:first', this.d_first);\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 if (!this.virtualScrollerDisabled) {\n const body = this.$refs.bodyRef && this.$refs.bodyRef.$el;\n const frozenBody = this.$refs.frozenBodyRef && this.$refs.frozenBodyRef.$el;\n\n updateTableWidth(body);\n updateTableWidth(frozenBody);\n }\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 if (this.isStateful()) {\n this.saveState();\n }\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=\"datatable\"][${this.$attrSelector}] > [data-pc-section=\"tablecontainer\"] ${this.virtualScrollerDisabled ? '' : '> [data-pc-name=\"virtualscroller\"]'} > 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', () => {\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 onColumnHeaderMouseDown(e) {\n const event = e.originalEvent;\n const column = e.column;\n\n if (this.reorderableColumns && this.columnProp(column, 'reorderableColumn') !== false) {\n if (event.target.nodeName === 'INPUT' || event.target.nodeName === 'TEXTAREA' || getAttribute(event.target, '[data-pc-section=\"columnresizer\"]')) event.currentTarget.draggable = false;\n else event.currentTarget.draggable = true;\n }\n },\n onColumnHeaderDragStart(e) {\n const { originalEvent: event, column } = e;\n\n if (this.columnResizing) {\n event.preventDefault();\n\n return;\n }\n\n this.colReorderIconWidth = getHiddenElementOuterWidth(this.$refs.reorderIndicatorUp);\n this.colReorderIconHeight = getHiddenElementOuterHeight(this.$refs.reorderIndicatorUp);\n\n this.draggedColumn = column;\n this.draggedColumnElement = this.findParentHeader(event.target);\n event.dataTransfer.setData('text', 'b'); // Firefox requires this to make dragging possible\n },\n onColumnHeaderDragOver(e) {\n const { originalEvent: event, column } = e;\n let dropHeader = this.findParentHeader(event.target);\n\n if (this.reorderableColumns && this.draggedColumnElement && dropHeader && !this.columnProp(column, 'frozen')) {\n event.preventDefault();\n let containerOffset = getOffset(this.$el);\n let dropHeaderOffset = getOffset(dropHeader);\n\n if (this.draggedColumnElement !== dropHeader) {\n let targetLeft = dropHeaderOffset.left - containerOffset.left;\n let columnCenter = dropHeaderOffset.left + dropHeader.offsetWidth / 2;\n\n this.$refs.reorderIndicatorUp.style.top = dropHeaderOffset.top - containerOffset.top - (this.colReorderIconHeight - 1) + 'px';\n this.$refs.reorderIndicatorDown.style.top = dropHeaderOffset.top - containerOffset.top + dropHeader.offsetHeight + 'px';\n\n if (event.pageX > columnCenter) {\n this.$refs.reorderIndicatorUp.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.$refs.reorderIndicatorDown.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.dropPosition = 1;\n } else {\n this.$refs.reorderIndicatorUp.style.left = targetLeft - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.$refs.reorderIndicatorDown.style.left = targetLeft - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.dropPosition = -1;\n }\n\n this.$refs.reorderIndicatorUp.style.display = 'block';\n this.$refs.reorderIndicatorDown.style.display = 'block';\n }\n }\n },\n onColumnHeaderDragLeave(e) {\n const { originalEvent: event } = e;\n\n if (this.reorderableColumns && this.draggedColumnElement) {\n event.preventDefault();\n this.$refs.reorderIndicatorUp.style.display = 'none';\n this.$refs.reorderIndicatorDown.style.display = 'none';\n }\n },\n onColumnHeaderDrop(e) {\n const { originalEvent: event, column } = e;\n\n event.preventDefault();\n\n if (this.draggedColumnElement) {\n let dragIndex = getIndex(this.draggedColumnElement);\n let dropIndex = getIndex(this.findParentHeader(event.target));\n let allowDrop = dragIndex !== dropIndex;\n\n if (allowDrop && ((dropIndex - dragIndex === 1 && this.dropPosition === -1) || (dropIndex - dragIndex === -1 && this.dropPosition === 1))) {\n allowDrop = false;\n }\n\n if (allowDrop) {\n let isSameColumn = (col1, col2) =>\n this.columnProp(col1, 'columnKey') || this.columnProp(col2, 'columnKey') ? this.columnProp(col1, 'columnKey') === this.columnProp(col2, 'columnKey') : this.columnProp(col1, 'field') === this.columnProp(col2, 'field');\n let dragColIndex = this.columns.findIndex((child) => isSameColumn(child, this.draggedColumn));\n let dropColIndex = this.columns.findIndex((child) => isSameColumn(child, column));\n let widths = [];\n let headers = find(this.$el, 'thead[data-pc-section=\"thead\"] > tr > th');\n\n headers.forEach((header) => widths.push(getOuterWidth(header)));\n const movedItem = widths.find((_, index) => index === dragColIndex);\n const remainingItems = widths.filter((_, index) => index !== dragColIndex);\n const reorderedWidths = [...remainingItems.slice(0, dropColIndex), movedItem, ...remainingItems.slice(dropColIndex)];\n\n this.addColumnWidthStyles(reorderedWidths);\n\n if (dropColIndex < dragColIndex && this.dropPosition === 1) {\n dropColIndex++;\n }\n\n if (dropColIndex > dragColIndex && this.dropPosition === -1) {\n dropColIndex--;\n }\n\n reorderArray(this.columns, dragColIndex, dropColIndex);\n this.updateReorderableColumns();\n\n this.$emit('column-reorder', {\n originalEvent: event,\n dragIndex: dragColIndex,\n dropIndex: dropColIndex\n });\n }\n\n this.$refs.reorderIndicatorUp.style.display = 'none';\n this.$refs.reorderIndicatorDown.style.display = 'none';\n this.draggedColumnElement.draggable = false;\n this.draggedColumnElement = null;\n this.draggedColumn = null;\n this.dropPosition = null;\n }\n },\n findParentHeader(element) {\n if (element.nodeName === 'TH') {\n return element;\n } else {\n let parent = element.parentElement;\n\n while (parent.nodeName !== 'TH') {\n parent = parent.parentElement;\n if (!parent) break;\n }\n\n return parent;\n }\n },\n findColumnByKey(columns, key) {\n if (columns && columns.length) {\n for (let i = 0; i < columns.length; i++) {\n let column = columns[i];\n\n if (this.columnProp(column, 'columnKey') === key || this.columnProp(column, 'field') === key) {\n return column;\n }\n }\n }\n\n return null;\n },\n onRowMouseDown(event) {\n if (getAttribute(event.target, 'data-pc-section') === 'reorderablerowhandle' || getAttribute(event.target.parentElement, 'data-pc-section') === 'reorderablerowhandle') event.currentTarget.draggable = true;\n else event.currentTarget.draggable = false;\n },\n onRowDragStart(e) {\n const event = e.originalEvent;\n const index = e.index;\n\n this.rowDragging = true;\n this.draggedRowIndex = index;\n event.dataTransfer.setData('text', 'b'); // For firefox\n },\n onRowDragOver(e) {\n const event = e.originalEvent;\n const index = e.index;\n\n if (this.rowDragging && this.draggedRowIndex !== index) {\n let rowElement = event.currentTarget;\n let rowY = getOffset(rowElement).top;\n let pageY = event.pageY;\n let rowMidY = rowY + getOuterHeight(rowElement) / 2;\n let prevRowElement = rowElement.previousElementSibling;\n\n if (pageY < rowMidY) {\n rowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n\n this.droppedRowIndex = index;\n\n if (prevRowElement) {\n prevRowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'true');\n !this.isUnstyled && addClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n } else {\n rowElement.setAttribute('data-p-datatable-dragpoint-top', 'true');\n !this.isUnstyled && addClass(rowElement, 'p-datatable-dragpoint-top');\n }\n } else {\n if (prevRowElement) {\n prevRowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n } else {\n rowElement.setAttribute('data-p-datatable-dragpoint-top', 'true');\n !this.isUnstyled && addClass(rowElement, 'p-datatable-dragpoint-top');\n }\n\n this.droppedRowIndex = index + 1;\n rowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'true');\n !this.isUnstyled && addClass(rowElement, 'p-datatable-dragpoint-bottom');\n }\n\n event.preventDefault();\n }\n },\n onRowDragLeave(event) {\n let rowElement = event.currentTarget;\n let prevRowElement = rowElement.previousElementSibling;\n\n if (prevRowElement) {\n prevRowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n }\n\n rowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n rowElement.setAttribute('data-p-datatable-dragpoint-top', 'false');\n !this.isUnstyled && removeClass(rowElement, 'p-datatable-dragpoint-top');\n },\n onRowDragEnd(event) {\n this.rowDragging = false;\n this.draggedRowIndex = null;\n this.droppedRowIndex = null;\n event.currentTarget.draggable = false;\n },\n onRowDrop(event) {\n if (this.droppedRowIndex != null) {\n let dropIndex = this.draggedRowIndex > this.droppedRowIndex ? this.droppedRowIndex : this.droppedRowIndex === 0 ? 0 : this.droppedRowIndex - 1;\n let processedData = [...this.processedData];\n\n reorderArray(processedData, this.draggedRowIndex + this.d_first, dropIndex + this.d_first);\n\n this.$emit('row-reorder', {\n originalEvent: event,\n dragIndex: this.draggedRowIndex,\n dropIndex: dropIndex,\n value: processedData\n });\n }\n\n //cleanup\n this.onRowDragLeave(event);\n this.onRowDragEnd(event);\n event.preventDefault();\n },\n toggleRow(event) {\n const { expanded, ...rest } = event;\n const rowData = event.data;\n let expandedRows;\n\n if (this.dataKey) {\n const value = resolveFieldData(rowData, this.dataKey);\n\n expandedRows = this.expandedRows ? { ...this.expandedRows } : {};\n expanded ? (expandedRows[value] = true) : delete expandedRows[value];\n } else {\n expandedRows = this.expandedRows ? [...this.expandedRows] : [];\n expanded ? expandedRows.push(rowData) : (expandedRows = expandedRows.filter((d) => !this.equals(rowData, d)));\n }\n\n this.$emit('update:expandedRows', expandedRows);\n expanded ? this.$emit('row-expand', rest) : this.$emit('row-collapse', rest);\n },\n toggleRowGroup(e) {\n const event = e.originalEvent;\n const data = e.data;\n const groupFieldValue = resolveFieldData(data, this.groupRowsBy);\n let _expandedRowGroups = this.expandedRowGroups ? [...this.expandedRowGroups] : [];\n\n if (this.isRowGroupExpanded(data)) {\n _expandedRowGroups = _expandedRowGroups.filter((group) => group !== groupFieldValue);\n this.$emit('update:expandedRowGroups', _expandedRowGroups);\n this.$emit('rowgroup-collapse', { originalEvent: event, data: groupFieldValue });\n } else {\n _expandedRowGroups.push(groupFieldValue);\n this.$emit('update:expandedRowGroups', _expandedRowGroups);\n this.$emit('rowgroup-expand', { originalEvent: event, data: groupFieldValue });\n }\n },\n isRowGroupExpanded(rowData) {\n if (this.expandableRowGroups && this.expandedRowGroups) {\n let groupFieldValue = resolveFieldData(rowData, this.groupRowsBy);\n\n return this.expandedRowGroups.indexOf(groupFieldValue) > -1;\n }\n\n return false;\n },\n isStateful() {\n return this.stateKey != null;\n },\n getStorage() {\n switch (this.stateStorage) {\n case 'local':\n return window.localStorage;\n\n case 'session':\n return window.sessionStorage;\n\n default:\n throw new Error(this.stateStorage + ' is not a valid value for the state storage, supported values are \"local\" and \"session\".');\n }\n },\n saveState() {\n const storage = this.getStorage();\n let state = {};\n\n if (this.paginator) {\n state.first = this.d_first;\n state.rows = this.d_rows;\n }\n\n if (this.d_sortField) {\n state.sortField = this.d_sortField;\n state.sortOrder = this.d_sortOrder;\n }\n\n if (this.d_multiSortMeta) {\n state.multiSortMeta = this.d_multiSortMeta;\n }\n\n if (this.hasFilters) {\n state.filters = this.filters;\n }\n\n if (this.resizableColumns) {\n this.saveColumnWidths(state);\n }\n\n if (this.reorderableColumns) {\n state.columnOrder = this.d_columnOrder;\n }\n\n if (this.expandedRows) {\n state.expandedRows = this.expandedRows;\n }\n\n if (this.expandedRowGroups) {\n state.expandedRowGroups = this.expandedRowGroups;\n }\n\n if (this.selection) {\n state.selection = this.selection;\n state.selectionKeys = this.d_selectionKeys;\n }\n\n if (Object.keys(state).length) {\n storage.setItem(this.stateKey, JSON.stringify(state));\n }\n\n this.$emit('state-save', state);\n },\n restoreState() {\n const storage = this.getStorage();\n const stateString = storage.getItem(this.stateKey);\n const dateFormat = /\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z/;\n\n const reviver = function (key, value) {\n if (typeof value === 'string' && dateFormat.test(value)) {\n return new Date(value);\n }\n\n return value;\n };\n\n if (stateString) {\n let restoredState = JSON.parse(stateString, reviver);\n\n if (this.paginator) {\n this.d_first = restoredState.first;\n this.d_rows = restoredState.rows;\n }\n\n if (restoredState.sortField) {\n this.d_sortField = restoredState.sortField;\n this.d_sortOrder = restoredState.sortOrder;\n }\n\n if (restoredState.multiSortMeta) {\n this.d_multiSortMeta = restoredState.multiSortMeta;\n }\n\n if (restoredState.filters) {\n this.$emit('update:filters', restoredState.filters);\n }\n\n if (this.resizableColumns) {\n this.columnWidthsState = restoredState.columnWidths;\n this.tableWidthState = restoredState.tableWidth;\n }\n\n if (this.reorderableColumns) {\n this.d_columnOrder = restoredState.columnOrder;\n }\n\n if (restoredState.expandedRows) {\n this.$emit('update:expandedRows', restoredState.expandedRows);\n }\n\n if (restoredState.expandedRowGroups) {\n this.$emit('update:expandedRowGroups', restoredState.expandedRowGroups);\n }\n\n if (restoredState.selection) {\n this.d_selectionKeys = restoredState.d_selectionKeys;\n this.$emit('update:selection', restoredState.selection);\n }\n\n this.$emit('state-restore', restoredState);\n }\n },\n saveColumnWidths(state) {\n let widths = [];\n let headers = find(this.$el, 'thead[data-pc-section=\"thead\"] > tr > th');\n\n headers.forEach((header) => widths.push(getOuterWidth(header)));\n state.columnWidths = widths.join(',');\n\n if (this.columnResizeMode === 'expand') {\n state.tableWidth = getOuterWidth(this.$refs.table) + 'px';\n }\n },\n addColumnWidthStyles(widths) {\n this.createStyleElement();\n\n let innerHTML = '';\n let selector = `[data-pc-name=\"datatable\"][${this.$attrSelector}] > [data-pc-section=\"tablecontainer\"] ${this.virtualScrollerDisabled ? '' : '> [data-pc-name=\"virtualscroller\"]'} > table[data-pc-section=\"table\"]`;\n\n widths.forEach((width, index) => {\n let style = `width: ${width}px !important; max-width: ${width}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 restoreColumnWidths() {\n if (this.columnWidthsState) {\n let widths = this.columnWidthsState.split(',');\n\n if (this.columnResizeMode === 'expand' && this.tableWidthState) {\n this.$refs.table.style.width = this.tableWidthState;\n this.$refs.table.style.minWidth = this.tableWidthState;\n }\n\n if (isNotEmpty(widths)) {\n this.addColumnWidthStyles(widths);\n }\n }\n },\n onCellEditInit(event) {\n this.$emit('cell-edit-init', event);\n },\n onCellEditComplete(event) {\n this.$emit('cell-edit-complete', event);\n },\n onCellEditCancel(event) {\n this.$emit('cell-edit-cancel', event);\n },\n onRowEditInit(event) {\n let _editingRows = this.editingRows ? [...this.editingRows] : [];\n\n _editingRows.push(event.data);\n this.$emit('update:editingRows', _editingRows);\n this.$emit('row-edit-init', event);\n },\n onRowEditSave(event) {\n let _editingRows = [...this.editingRows];\n\n _editingRows.splice(this.findIndex(event.data, _editingRows), 1);\n this.$emit('update:editingRows', _editingRows);\n this.$emit('row-edit-save', event);\n },\n onRowEditCancel(event) {\n let _editingRows = [...this.editingRows];\n\n _editingRows.splice(this.findIndex(event.data, _editingRows), 1);\n this.$emit('update:editingRows', _editingRows);\n this.$emit('row-edit-cancel', event);\n },\n onEditingMetaChange(event) {\n let { data, field, index, editing } = event;\n let editingMeta = { ...this.d_editingMeta };\n let meta = editingMeta[index];\n\n if (editing) {\n !meta && (meta = editingMeta[index] = { data: { ...data }, fields: [] });\n meta['fields'].push(field);\n } else if (meta) {\n const fields = meta['fields'].filter((f) => f !== field);\n\n !fields.length ? delete editingMeta[index] : (meta['fields'] = fields);\n }\n\n this.d_editingMeta = editingMeta;\n },\n clearEditingMetaData() {\n if (this.editMode) {\n this.d_editingMeta = {};\n }\n },\n createLazyLoadEvent(event) {\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.d_filters\n };\n },\n hasGlobalFilter() {\n return this.filters && Object.prototype.hasOwnProperty.call(this.filters, 'global');\n },\n onFilterChange(filters) {\n this.d_filters = filters;\n },\n onFilterApply() {\n this.d_first = 0;\n this.$emit('update:first', this.d_first);\n this.$emit('update:filters', this.d_filters);\n\n if (this.lazy) {\n this.$emit('filter', this.createLazyLoadEvent());\n }\n },\n cloneFilters() {\n let cloned = {};\n\n if (this.filters) {\n Object.entries(this.filters).forEach(([prop, value]) => {\n cloned[prop] = value.operator\n ? {\n operator: value.operator,\n constraints: value.constraints.map((constraint) => {\n return { ...constraint };\n })\n }\n : { ...value };\n });\n }\n\n return cloned;\n },\n updateReorderableColumns() {\n let columnOrder = [];\n\n this.columns.forEach((col) => columnOrder.push(this.columnProp(col, 'columnKey') || this.columnProp(col, 'field')));\n this.d_columnOrder = columnOrder;\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 dataToRender(data) {\n const _data = data || this.processedData;\n\n if (_data && this.paginator) {\n const first = this.lazy ? 0 : this.d_first;\n\n return _data.slice(first, first + this.d_rows);\n }\n\n return _data;\n },\n getVirtualScrollerRef() {\n return this.$refs.virtualScroller;\n },\n hasSpacerStyle(style) {\n return isNotEmpty(style);\n }\n },\n computed: {\n columns() {\n const cols = this.d_columns.get(this);\n\n if (this.reorderableColumns && this.d_columnOrder) {\n let orderedColumns = [];\n\n for (let columnKey of this.d_columnOrder) {\n let column = this.findColumnByKey(cols, columnKey);\n\n if (column && !this.columnProp(column, 'hidden')) {\n orderedColumns.push(column);\n }\n }\n\n return [...orderedColumns, ...cols.filter((item) => orderedColumns.indexOf(item) < 0)];\n }\n\n return cols;\n },\n columnGroups() {\n return this.d_columnGroups.get(this);\n },\n headerColumnGroup() {\n return this.columnGroups?.find((group) => this.columnProp(group, 'type') === 'header');\n },\n footerColumnGroup() {\n return this.columnGroups?.find((group) => this.columnProp(group, 'type') === 'footer');\n },\n hasFilters() {\n return this.filters && Object.keys(this.filters).length > 0 && this.filters.constructor === Object;\n },\n processedData() {\n let data = this.value || [];\n\n if (!this.lazy && !this.virtualScrollerOptions?.lazy) {\n if (data && data.length) {\n if (this.hasFilters) {\n data = this.filter(data);\n }\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 }\n\n return data;\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 empty() {\n const data = this.processedData;\n\n return !data || data.length === 0;\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 sorted() {\n return this.d_sortField || (this.d_multiSortMeta && this.d_multiSortMeta.length > 0);\n },\n allRowsSelected() {\n if (this.selectAll !== null) {\n return this.selectAll;\n } else {\n const val = this.frozenValue ? [...this.frozenValue, ...this.processedData] : this.processedData;\n\n return isNotEmpty(val) && this.selection && Array.isArray(this.selection) && val.every((v) => this.selection.some((s) => this.equals(s, v)));\n }\n },\n groupRowSortField() {\n return this.sortMode === 'single' ? this.sortField : this.d_groupRowsSortMeta ? this.d_groupRowsSortMeta.field : null;\n },\n headerFilterButtonProps() {\n return {\n filter: { severity: 'secondary', text: true, rounded: true },\n ...this.filterButtonProps,\n inline: {\n clear: { severity: 'secondary', text: true, rounded: true },\n ...this.filterButtonProps.inline\n },\n popover: {\n addRule: { severity: 'info', text: true, size: 'small' },\n removeRule: { severity: 'danger', text: true, size: 'small' },\n apply: { size: 'small' },\n clear: { outlined: true, size: 'small' },\n ...this.filterButtonProps.popover\n }\n };\n },\n rowEditButtonProps() {\n return {\n ...{\n init: { severity: 'secondary', text: true, rounded: true },\n save: { severity: 'secondary', text: true, rounded: true },\n cancel: { severity: 'secondary', text: true, rounded: true }\n },\n ...this.editButtonProps\n };\n },\n virtualScrollerDisabled() {\n return isEmpty(this.virtualScrollerOptions) || !this.scrollable;\n }\n },\n components: {\n DTPaginator: Paginator,\n DTTableHeader: TableHeader,\n DTTableBody: TableBody,\n DTTableFooter: TableFooter,\n DTVirtualScroller: VirtualScroller,\n ArrowDownIcon: ArrowDownIcon,\n ArrowUpIcon: ArrowUpIcon,\n SpinnerIcon: SpinnerIcon\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" data-scrollselectors=\".p-datatable-wrapper\" v-bind=\"ptmi('root')\">\n <slot></slot>\n <div v-if=\"loading\" :class=\"cx('mask')\" v-bind=\"ptm('mask')\">\n <slot v-if=\"$slots.loading\" name=\"loading\"></slot>\n <template v-else>\n <component v-if=\"$slots.loadingicon\" :is=\"$slots.loadingicon\" :class=\"cx('loadingIcon')\" />\n <i v-else-if=\"loadingIcon\" :class=\"[cx('loadingIcon'), 'pi-spin', loadingIcon]\" v-bind=\"ptm('loadingIcon')\" />\n <SpinnerIcon v-else spin :class=\"cx('loadingIcon')\" v-bind=\"ptm('loadingIcon')\" />\n </template>\n </div>\n <div v-if=\"$slots.header\" :class=\"cx('header')\" v-bind=\"ptm('header')\">\n <slot name=\"header\"></slot>\n </div>\n <DTPaginator\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>\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 ></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 </DTPaginator>\n <div :class=\"cx('tableContainer')\" :style=\"[sx('tableContainer'), { maxHeight: virtualScrollerDisabled ? scrollHeight : '' }]\" v-bind=\"ptm('tableContainer')\">\n <DTVirtualScroller\n ref=\"virtualScroller\"\n v-bind=\"virtualScrollerOptions\"\n :items=\"processedData\"\n :columns=\"columns\"\n :style=\"scrollHeight !== 'flex' ? { height: scrollHeight } : undefined\"\n :scrollHeight=\"scrollHeight !== 'flex' ? undefined : '100%'\"\n :disabled=\"virtualScrollerDisabled\"\n loaderDisabled\n inline\n autoSize\n :showSpacer=\"false\"\n :pt=\"ptm('virtualScroller')\"\n >\n <template #content=\"slotProps\">\n <table ref=\"table\" role=\"table\" :class=\"[cx('table'), tableClass]\" :style=\"[tableStyle, slotProps.spacerStyle]\" v-bind=\"{ ...tableProps, ...ptm('table') }\">\n <DTTableHeader\n v-if=\"showHeaders\"\n :columnGroup=\"headerColumnGroup\"\n :columns=\"slotProps.columns\"\n :rowGroupMode=\"rowGroupMode\"\n :groupRowsBy=\"groupRowsBy\"\n :groupRowSortField=\"groupRowSortField\"\n :reorderableColumns=\"reorderableColumns\"\n :resizableColumns=\"resizableColumns\"\n :allRowsSelected=\"allRowsSelected\"\n :empty=\"empty\"\n :sortMode=\"sortMode\"\n :sortField=\"d_sortField\"\n :sortOrder=\"d_sortOrder\"\n :multiSortMeta=\"d_multiSortMeta\"\n :filters=\"d_filters\"\n :filtersStore=\"filters\"\n :filterDisplay=\"filterDisplay\"\n :filterButtonProps=\"headerFilterButtonProps\"\n :filterInputProps=\"filterInputProps\"\n :first=\"d_first\"\n @column-click=\"onColumnHeaderClick($event)\"\n @column-mousedown=\"onColumnHeaderMouseDown($event)\"\n @filter-change=\"onFilterChange\"\n @filter-apply=\"onFilterApply\"\n @column-dragstart=\"onColumnHeaderDragStart($event)\"\n @column-dragover=\"onColumnHeaderDragOver($event)\"\n @column-dragleave=\"onColumnHeaderDragLeave($event)\"\n @column-drop=\"onColumnHeaderDrop($event)\"\n @column-resizestart=\"onColumnResizeStart($event)\"\n @checkbox-change=\"toggleRowsWithCheckbox($event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n <DTTableBody\n v-if=\"frozenValue\"\n ref=\"frozenBodyRef\"\n :value=\"frozenValue\"\n :frozenRow=\"true\"\n :columns=\"slotProps.columns\"\n :first=\"d_first\"\n :dataKey=\"dataKey\"\n :selection=\"selection\"\n :selectionKeys=\"d_selectionKeys\"\n :selectionMode=\"selectionMode\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :rowGroupMode=\"rowGroupMode\"\n :groupRowsBy=\"groupRowsBy\"\n :expandableRowGroups=\"expandableRowGroups\"\n :rowClass=\"rowClass\"\n :rowStyle=\"rowStyle\"\n :editMode=\"editMode\"\n :compareSelectionBy=\"compareSelectionBy\"\n :scrollable=\"scrollable\"\n :expandedRowIcon=\"expandedRowIcon\"\n :collapsedRowIcon=\"collapsedRowIcon\"\n :expandedRows=\"expandedRows\"\n :expandedRowGroups=\"expandedRowGroups\"\n :editingRows=\"editingRows\"\n :editingRowKeys=\"d_editingRowKeys\"\n :templates=\"$slots\"\n :editButtonProps=\"rowEditButtonProps\"\n :isVirtualScrollerDisabled=\"true\"\n @rowgroup-toggle=\"toggleRowGroup\"\n @row-click=\"onRowClick($event)\"\n @row-dblclick=\"onRowDblClick($event)\"\n @row-rightclick=\"onRowRightClick($event)\"\n @row-touchend=\"onRowTouchEnd\"\n @row-keydown=\"onRowKeyDown\"\n @row-mousedown=\"onRowMouseDown\"\n @row-dragstart=\"onRowDragStart($event)\"\n @row-dragover=\"onRowDragOver($event)\"\n @row-dragleave=\"onRowDragLeave($event)\"\n @row-dragend=\"onRowDragEnd($event)\"\n @row-drop=\"onRowDrop($event)\"\n @row-toggle=\"toggleRow($event)\"\n @radio-change=\"toggleRowWithRadio($event)\"\n @checkbox-change=\"toggleRowWithCheckbox($event)\"\n @cell-edit-init=\"onCellEditInit($event)\"\n @cell-edit-complete=\"onCellEditComplete($event)\"\n @cell-edit-cancel=\"onCellEditCancel($event)\"\n @row-edit-init=\"onRowEditInit($event)\"\n @row-edit-save=\"onRowEditSave($event)\"\n @row-edit-cancel=\"onRowEditCancel($event)\"\n :editingMeta=\"d_editingMeta\"\n @editing-meta-change=\"onEditingMetaChange\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n <DTTableBody\n ref=\"bodyRef\"\n :value=\"dataToRender(slotProps.rows)\"\n :class=\"slotProps.styleClass\"\n :columns=\"slotProps.columns\"\n :empty=\"empty\"\n :first=\"d_first\"\n :dataKey=\"dataKey\"\n :selection=\"selection\"\n :selectionKeys=\"d_selectionKeys\"\n :selectionMode=\"selectionMode\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :rowGroupMode=\"rowGroupMode\"\n :groupRowsBy=\"groupRowsBy\"\n :expandableRowGroups=\"expandableRowGroups\"\n :rowClass=\"rowClass\"\n :rowStyle=\"rowStyle\"\n :editMode=\"editMode\"\n :compareSelectionBy=\"compareSelectionBy\"\n :scrollable=\"scrollable\"\n :expandedRowIcon=\"expandedRowIcon\"\n :collapsedRowIcon=\"collapsedRowIcon\"\n :expandedRows=\"expandedRows\"\n :expandedRowGroups=\"expandedRowGroups\"\n :editingRows=\"editingRows\"\n :editingRowKeys=\"d_editingRowKeys\"\n :templates=\"$slots\"\n :editButtonProps=\"rowEditButtonProps\"\n :virtualScrollerContentProps=\"slotProps\"\n :isVirtualScrollerDisabled=\"virtualScrollerDisabled\"\n @rowgroup-toggle=\"toggleRowGroup\"\n @row-click=\"onRowClick($event)\"\n @row-dblclick=\"onRowDblClick($event)\"\n @row-rightclick=\"onRowRightClick($event)\"\n @row-touchend=\"onRowTouchEnd\"\n @row-keydown=\"onRowKeyDown($event, slotProps)\"\n @row-mousedown=\"onRowMouseDown\"\n @row-dragstart=\"onRowDragStart($event)\"\n @row-dragover=\"onRowDragOver($event)\"\n @row-dragleave=\"onRowDragLeave($event)\"\n @row-dragend=\"onRowDragEnd($event)\"\n @row-drop=\"onRowDrop($event)\"\n @row-toggle=\"toggleRow($event)\"\n @radio-change=\"toggleRowWithRadio($event)\"\n @checkbox-change=\"toggleRowWithCheckbox($event)\"\n @cell-edit-init=\"onCellEditInit($event)\"\n @cell-edit-complete=\"onCellEditComplete($event)\"\n @cell-edit-cancel=\"onCellEditCancel($event)\"\n @row-edit-init=\"onRowEditInit($event)\"\n @row-edit-save=\"onRowEditSave($event)\"\n @row-edit-cancel=\"onRowEditCancel($event)\"\n :editingMeta=\"d_editingMeta\"\n @editing-meta-change=\"onEditingMetaChange\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n <tbody\n v-if=\"hasSpacerStyle(slotProps.spacerStyle)\"\n :class=\"cx('virtualScrollerSpacer')\"\n :style=\"{ height: `calc(${slotProps.spacerStyle.height} - ${slotProps.rows.length * slotProps.itemSize}px)` }\"\n v-bind=\"ptm('virtualScrollerSpacer')\"\n ></tbody>\n <DTTableFooter :columnGroup=\"footerColumnGroup\" :columns=\"slotProps.columns\" :pt=\"pt\" />\n </table>\n </template>\n </DTVirtualScroller>\n </div>\n <DTPaginator\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 :totalRecords=\"slotProps.totalRecords\"\n :firstPageCallback=\"slotProps.firstPageCallback\"\n :lastPageCallback=\"slotProps.lastPageCallback\"\n :prevPageCallback=\"slotProps.prevPageCallback\"\n :nextPageCallback=\"slotProps.nextPageCallback\"\n :rowChangeCallback=\"slotProps.rowChangeCallback\"\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 </DTPaginator>\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 <span v-if=\"reorderableColumns\" ref=\"reorderIndicatorUp\" :class=\"cx('rowReorderIndicatorUp')\" style=\"position: absolute; display: none\" v-bind=\"ptm('rowReorderIndicatorUp')\">\n <component :is=\"$slots.rowreorderindicatorupicon || $slots.reorderindicatorupicon || 'ArrowDownIcon'\" />\n </span>\n <span v-if=\"reorderableColumns\" ref=\"reorderIndicatorDown\" :class=\"cx('rowReorderIndicatorDown')\" style=\"position: absolute; display: none\" v-bind=\"ptm('rowReorderIndicatorDown')\">\n <component :is=\"$slots.rowreorderindicatordownicon || $slots.reorderindicatordownicon || 'ArrowUpIcon'\" />\n </span>\n </div>\n</template>\n\n<script>\nimport {\n addClass,\n addStyle,\n clearSelection,\n exportCSV,\n find,\n findSingle,\n focus,\n getAttribute,\n getHiddenElementOuterHeight,\n getHiddenElementOuterWidth,\n getIndex,\n getOffset,\n getOuterHeight,\n getOuterWidth,\n isClickable,\n isRTL,\n removeClass,\n setAttribute\n} from '@primeuix/utils/dom';\nimport { equals, findIndexInList, isEmpty, isNotEmpty, localeComparator, reorderArray, resolveFieldData, sort } from '@primeuix/utils/object';\nimport { FilterMatchMode, FilterOperator, FilterService } from '@primevue/core/api';\nimport { HelperSet, getVNodeProp } from '@primevue/core/utils';\nimport ArrowDownIcon from '@primevue/icons/arrowdown';\nimport ArrowUpIcon from '@primevue/icons/arrowup';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport Paginator from 'primevue/paginator';\nimport VirtualScroller from 'primevue/virtualscroller';\nimport BaseDataTable from './BaseDataTable.vue';\nimport TableBody from './TableBody.vue';\nimport TableFooter from './TableFooter.vue';\nimport TableHeader from './TableHeader.vue';\n\nexport default {\n name: 'DataTable',\n extends: BaseDataTable,\n inheritAttrs: false,\n emits: [\n 'value-change',\n 'update:first',\n 'update:rows',\n 'page',\n 'update:sortField',\n 'update:sortOrder',\n 'update:multiSortMeta',\n 'sort',\n 'filter',\n 'row-click',\n 'row-dblclick',\n 'update:selection',\n 'row-select',\n 'row-unselect',\n 'update:contextMenuSelection',\n 'row-contextmenu',\n 'row-unselect-all',\n 'row-select-all',\n 'select-all-change',\n 'column-resize-end',\n 'column-reorder',\n 'row-reorder',\n 'update:expandedRows',\n 'row-collapse',\n 'row-expand',\n 'update:expandedRowGroups',\n 'rowgroup-collapse',\n 'rowgroup-expand',\n 'update:filters',\n 'state-restore',\n 'state-save',\n 'cell-edit-init',\n 'cell-edit-complete',\n 'cell-edit-cancel',\n 'update:editingRows',\n 'row-edit-init',\n 'row-edit-save',\n 'row-edit-cancel'\n ],\n provide() {\n return {\n $columns: this.d_columns,\n $columnGroups: this.d_columnGroups\n };\n },\n data() {\n return {\n d_first: this.first,\n d_rows: this.rows,\n d_sortField: this.sortField,\n d_sortOrder: this.sortOrder,\n d_nullSortOrder: this.nullSortOrder,\n d_multiSortMeta: this.multiSortMeta ? [...this.multiSortMeta] : [],\n d_groupRowsSortMeta: null,\n d_selectionKeys: null,\n d_columnOrder: null,\n d_editingRowKeys: null,\n d_editingMeta: {},\n d_filters: this.cloneFilters(this.filters),\n d_columns: new HelperSet({ type: 'Column' }),\n d_columnGroups: new HelperSet({ type: 'ColumnGroup' })\n };\n },\n rowTouched: false,\n anchorRowIndex: null,\n rangeRowIndex: null,\n documentColumnResizeListener: null,\n documentColumnResizeEndListener: null,\n lastResizeHelperX: null,\n resizeColumnElement: null,\n columnResizing: false,\n colReorderIconWidth: null,\n colReorderIconHeight: null,\n draggedColumn: null,\n draggedColumnElement: null,\n draggedRowIndex: null,\n droppedRowIndex: null,\n rowDragging: null,\n columnWidthsState: null,\n tableWidthState: null,\n columnWidthsRestored: false,\n watch: {\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 nullSortOrder(newValue) {\n this.d_nullSortOrder = newValue;\n },\n multiSortMeta(newValue) {\n this.d_multiSortMeta = newValue;\n },\n selection: {\n immediate: true,\n handler(newValue) {\n if (this.dataKey) {\n this.updateSelectionKeys(newValue);\n }\n }\n },\n editingRows: {\n immediate: true,\n handler(newValue) {\n if (this.dataKey) {\n this.updateEditingRowKeys(newValue);\n }\n }\n },\n filters: {\n deep: true,\n handler: function (newValue) {\n this.d_filters = this.cloneFilters(newValue);\n }\n }\n },\n mounted() {\n if (this.isStateful()) {\n this.restoreState();\n\n this.resizableColumns && this.restoreColumnWidths();\n }\n\n if (this.editMode === 'row' && this.dataKey && !this.d_editingRowKeys) {\n this.updateEditingRowKeys(this.editingRows);\n }\n },\n beforeUnmount() {\n this.unbindColumnResizeEvents();\n this.destroyStyleElement();\n\n this.d_columns.clear();\n this.d_columnGroups.clear();\n },\n updated() {\n if (this.isStateful()) {\n this.saveState();\n }\n\n if (this.editMode === 'row' && this.dataKey && !this.d_editingRowKeys) {\n this.updateEditingRowKeys(this.editingRows);\n }\n },\n methods: {\n columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n onPage(event) {\n this.clearEditingMetaData();\n\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.$emit('update:first', this.d_first);\n this.$emit('update:rows', this.d_rows);\n this.$emit('page', pageEvent);\n this.$nextTick(() => {\n this.$emit('value-change', this.processedData);\n });\n },\n onColumnHeaderClick(e) {\n const event = e.originalEvent;\n const 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\"]') && !targetNode.closest('[data-pc-section=\"columnfilterbutton\"]') && !isClickable(event.target))\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 this.$nextTick(() => {\n this.$emit('value-change', this.processedData);\n });\n }\n }\n },\n sortSingle(value) {\n this.clearEditingMetaData();\n\n if (this.groupRowsBy && this.groupRowsBy === this.sortField) {\n this.d_multiSortMeta = [\n { field: this.sortField, order: this.sortOrder || this.defaultSortOrder },\n { field: this.d_sortField, order: this.d_sortOrder }\n ];\n\n return this.sortMultiple(value);\n }\n\n let data = [...value];\n let resolvedFieldData = new Map();\n\n for (let item of data) {\n resolvedFieldData.set(item, resolveFieldData(item, this.d_sortField));\n }\n\n const comparer = localeComparator();\n\n data.sort((data1, data2) => {\n let value1 = resolvedFieldData.get(data1);\n let value2 = resolvedFieldData.get(data2);\n\n return sort(value1, value2, this.d_sortOrder, comparer, this.d_nullSortOrder);\n });\n\n return data;\n },\n sortMultiple(value) {\n this.clearEditingMetaData();\n\n if (this.groupRowsBy && (this.d_groupRowsSortMeta || (this.d_multiSortMeta.length && this.groupRowsBy === this.d_multiSortMeta[0].field))) {\n const firstSortMeta = this.d_multiSortMeta[0];\n\n !this.d_groupRowsSortMeta && (this.d_groupRowsSortMeta = firstSortMeta);\n\n if (firstSortMeta.field !== this.d_groupRowsSortMeta.field) {\n this.d_multiSortMeta = [this.d_groupRowsSortMeta, ...this.d_multiSortMeta];\n }\n }\n\n let data = [...value];\n\n data.sort((data1, data2) => {\n return this.multisortField(data1, data2, 0);\n });\n\n return data;\n },\n multisortField(data1, data2, index) {\n const value1 = resolveFieldData(data1, this.d_multiSortMeta[index].field);\n const value2 = resolveFieldData(data2, this.d_multiSortMeta[index].field);\n const comparer = localeComparator();\n\n if (value1 === value2) {\n return this.d_multiSortMeta.length - 1 > index ? this.multisortField(data1, data2, index + 1) : 0;\n }\n\n return sort(value1, value2, this.d_multiSortMeta[index].order, comparer, this.d_nullSortOrder);\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 getActiveFilters(filters) {\n const removeEmptyFilters = ([key, value]) => {\n if (value.constraints) {\n const filteredConstraints = value.constraints.filter((constraint) => constraint.value !== null);\n\n if (filteredConstraints.length > 0) {\n return [key, { ...value, constraints: filteredConstraints }];\n }\n } else if (value.value !== null) {\n return [key, value];\n }\n\n return undefined;\n };\n\n const filterValidEntries = (entry) => entry !== undefined;\n const entries = Object.entries(filters).map(removeEmptyFilters).filter(filterValidEntries);\n\n return Object.fromEntries(entries);\n },\n filter(data) {\n if (!data) {\n return;\n }\n\n this.clearEditingMetaData();\n\n let activeFilters = this.getActiveFilters(this.filters);\n let globalFilterFieldsArray;\n\n if (activeFilters['global']) {\n globalFilterFieldsArray = this.globalFilterFields || this.columns.map((col) => this.columnProp(col, 'filterField') || this.columnProp(col, 'field'));\n }\n\n let filteredValue = [];\n\n for (let i = 0; i < data.length; i++) {\n let localMatch = true;\n let globalMatch = false;\n let localFiltered = false;\n\n for (let prop in activeFilters) {\n if (Object.prototype.hasOwnProperty.call(activeFilters, prop) && prop !== 'global') {\n localFiltered = true;\n let filterField = prop;\n let filterMeta = activeFilters[filterField];\n\n if (filterMeta.operator) {\n for (let filterConstraint of filterMeta.constraints) {\n localMatch = this.executeLocalFilter(filterField, data[i], filterConstraint);\n\n if ((filterMeta.operator === FilterOperator.OR && localMatch) || (filterMeta.operator === FilterOperator.AND && !localMatch)) {\n break;\n }\n }\n } else {\n localMatch = this.executeLocalFilter(filterField, data[i], filterMeta);\n }\n\n if (!localMatch) {\n break;\n }\n }\n }\n\n if (localMatch && activeFilters['global'] && !globalMatch && globalFilterFieldsArray) {\n for (let j = 0; j < globalFilterFieldsArray.length; j++) {\n let globalFilterField = globalFilterFieldsArray[j];\n\n globalMatch = FilterService.filters[activeFilters['global'].matchMode || FilterMatchMode.CONTAINS](resolveFieldData(data[i], globalFilterField), activeFilters['global'].value, this.filterLocale);\n\n if (globalMatch) {\n break;\n }\n }\n }\n\n let matches;\n\n if (activeFilters['global']) {\n matches = localFiltered ? localFiltered && localMatch && globalMatch : globalMatch;\n } else {\n matches = localFiltered && localMatch;\n }\n\n if (matches) {\n filteredValue.push(data[i]);\n }\n }\n\n if (filteredValue.length === this.value.length || Object.keys(activeFilters).length == 0) {\n filteredValue = data;\n }\n\n let filterEvent = this.createLazyLoadEvent();\n\n filterEvent.filteredValue = filteredValue;\n this.$emit('filter', filterEvent);\n this.$nextTick(() => {\n this.$emit('value-change', this.processedData);\n });\n\n return filteredValue;\n },\n executeLocalFilter(field, rowData, filterMeta) {\n let filterValue = filterMeta.value;\n let filterMatchMode = filterMeta.matchMode || FilterMatchMode.STARTS_WITH;\n let dataFieldValue = resolveFieldData(rowData, field);\n let filterConstraint = FilterService.filters[filterMatchMode];\n\n return filterConstraint(dataFieldValue, filterValue, this.filterLocale);\n },\n onRowClick(e) {\n const event = e.originalEvent;\n const body = this.$refs.bodyRef && this.$refs.bodyRef.$el;\n const focusedItem = findSingle(body, 'tr[data-p-selectable-row=\"true\"][tabindex=\"0\"]');\n\n if (isClickable(event.target)) {\n return;\n }\n\n this.$emit('row-click', e);\n\n if (this.selectionMode) {\n const rowData = e.data;\n const rowIndex = this.d_first + e.index;\n\n if (this.isMultipleSelectionMode() && event.shiftKey && this.anchorRowIndex != null) {\n clearSelection();\n this.rangeRowIndex = rowIndex;\n this.selectRange(event);\n } else {\n const selected = this.isSelected(rowData);\n const metaSelection = this.rowTouched ? false : this.metaKeySelection;\n\n this.anchorRowIndex = rowIndex;\n this.rangeRowIndex = rowIndex;\n\n if (metaSelection) {\n let metaKey = event.metaKey || event.ctrlKey;\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n this.$emit('update:selection', null);\n } else {\n const selectionIndex = this.findIndexInSelection(rowData);\n const _selection = this.selection.filter((val, i) => i != selectionIndex);\n\n this.$emit('update:selection', _selection);\n }\n\n this.$emit('row-unselect', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n } else {\n if (this.isSingleSelectionMode()) {\n this.$emit('update:selection', rowData);\n } else if (this.isMultipleSelectionMode()) {\n let _selection = metaKey ? this.selection || [] : [];\n\n _selection = [..._selection, rowData];\n this.$emit('update:selection', _selection);\n }\n\n this.$emit('row-select', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n }\n } else {\n if (this.selectionMode === 'single') {\n if (selected) {\n this.$emit('update:selection', null);\n this.$emit('row-unselect', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n } else {\n this.$emit('update:selection', rowData);\n this.$emit('row-select', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n }\n } else if (this.selectionMode === 'multiple') {\n if (selected) {\n const selectionIndex = this.findIndexInSelection(rowData);\n const _selection = this.selection.filter((val, i) => i != selectionIndex);\n\n this.$emit('update:selection', _selection);\n this.$emit('row-unselect', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n } else {\n const _selection = this.selection ? [...this.selection, rowData] : [rowData];\n\n this.$emit('update:selection', _selection);\n this.$emit('row-select', { originalEvent: event, data: rowData, index: rowIndex, type: 'row' });\n }\n }\n }\n }\n }\n\n this.rowTouched = false;\n\n if (focusedItem) {\n if (event.target?.getAttribute('data-pc-section') === 'rowtoggleicon') return;\n\n const targetRow = event.currentTarget?.closest('tr[data-p-selectable-row=\"true\"]');\n\n focusedItem.tabIndex = '-1';\n targetRow.tabIndex = '0';\n }\n },\n onRowDblClick(e) {\n const event = e.originalEvent;\n\n if (isClickable(event.target)) {\n return;\n }\n\n this.$emit('row-dblclick', e);\n },\n onRowRightClick(event) {\n if (this.contextMenu) {\n clearSelection();\n event.originalEvent.target.focus();\n }\n\n this.$emit('update:contextMenuSelection', event.data);\n this.$emit('row-contextmenu', event);\n },\n onRowTouchEnd() {\n this.rowTouched = true;\n },\n onRowKeyDown(e, slotProps) {\n const event = e.originalEvent;\n const rowData = e.data;\n const rowIndex = e.index;\n const metaKey = event.metaKey || event.ctrlKey;\n\n if (this.selectionMode) {\n const row = event.target;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event, row, rowIndex, slotProps);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event, row, rowIndex, slotProps);\n break;\n\n case 'Home':\n this.onHomeKey(event, row, rowIndex, slotProps);\n break;\n\n case 'End':\n this.onEndKey(event, row, rowIndex, slotProps);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event, rowData, rowIndex);\n break;\n\n case 'Space':\n this.onSpaceKey(event, rowData, rowIndex, slotProps);\n break;\n\n case 'Tab':\n this.onTabKey(event, rowIndex);\n break;\n\n default:\n if (event.code === 'KeyA' && metaKey && this.isMultipleSelectionMode()) {\n const data = this.dataToRender(slotProps.rows);\n\n this.$emit('update:selection', data);\n }\n\n event.preventDefault();\n\n break;\n }\n }\n },\n onArrowDownKey(event, row, rowIndex, slotProps) {\n const nextRow = this.findNextSelectableRow(row);\n\n nextRow && this.focusRowChange(row, nextRow);\n\n if (event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n const nextRowIndex = rowIndex + 1 >= data.length ? data.length - 1 : rowIndex + 1;\n\n this.onRowClick({ originalEvent: event, data: data[nextRowIndex], index: nextRowIndex });\n }\n\n event.preventDefault();\n },\n onArrowUpKey(event, row, rowIndex, slotProps) {\n const prevRow = this.findPrevSelectableRow(row);\n\n prevRow && this.focusRowChange(row, prevRow);\n\n if (event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n const prevRowIndex = rowIndex - 1 <= 0 ? 0 : rowIndex - 1;\n\n this.onRowClick({ originalEvent: event, data: data[prevRowIndex], index: prevRowIndex });\n }\n\n event.preventDefault();\n },\n onHomeKey(event, row, rowIndex, slotProps) {\n const firstRow = this.findFirstSelectableRow();\n\n firstRow && this.focusRowChange(row, firstRow);\n\n if (event.ctrlKey && event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n\n this.$emit('update:selection', data.slice(0, rowIndex + 1));\n }\n\n event.preventDefault();\n },\n onEndKey(event, row, rowIndex, slotProps) {\n const lastRow = this.findLastSelectableRow();\n\n lastRow && this.focusRowChange(row, lastRow);\n\n if (event.ctrlKey && event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n\n this.$emit('update:selection', data.slice(rowIndex, data.length));\n }\n\n event.preventDefault();\n },\n onEnterKey(event, rowData, rowIndex) {\n this.onRowClick({ originalEvent: event, data: rowData, index: rowIndex });\n event.preventDefault();\n },\n onSpaceKey(event, rowData, rowIndex, slotProps) {\n this.onEnterKey(event, rowData, rowIndex);\n\n if (event.shiftKey && this.selection !== null) {\n const data = this.dataToRender(slotProps.rows);\n let index;\n\n if (this.selection.length > 0) {\n let firstSelectedRowIndex, lastSelectedRowIndex;\n\n firstSelectedRowIndex = findIndexInList(this.selection[0], data);\n lastSelectedRowIndex = findIndexInList(this.selection[this.selection.length - 1], data);\n\n index = rowIndex <= firstSelectedRowIndex ? lastSelectedRowIndex : firstSelectedRowIndex;\n } else {\n index = findIndexInList(this.selection, data);\n }\n\n const _selection = index !== rowIndex ? data.slice(Math.min(index, rowIndex), Math.max(index, rowIndex) + 1) : rowData;\n\n this.$emit('update:selection', _selection);\n }\n },\n onTabKey(event, rowIndex) {\n const body = this.$refs.bodyRef && this.$refs.bodyRef.$el;\n const rows = find(body, 'tr[data-p-selectable-row=\"true\"]');\n\n if (event.code === 'Tab' && rows && rows.length > 0) {\n const firstSelectedRow = findSingle(body, 'tr[data-p-selected=\"true\"]');\n const focusedItem = findSingle(body, 'tr[data-p-selectable-row=\"true\"][tabindex=\"0\"]');\n\n if (firstSelectedRow) {\n firstSelectedRow.tabIndex = '0';\n focusedItem && focusedItem !== firstSelectedRow && (focusedItem.tabIndex = '-1');\n } else {\n rows[0].tabIndex = '0';\n focusedItem !== rows[0] && (rows[rowIndex].tabIndex = '-1');\n }\n }\n },\n findNextSelectableRow(row) {\n let nextRow = row.nextElementSibling;\n\n if (nextRow) {\n if (getAttribute(nextRow, 'data-p-selectable-row') === true) return nextRow;\n else return this.findNextSelectableRow(nextRow);\n } else {\n return null;\n }\n },\n findPrevSelectableRow(row) {\n let prevRow = row.previousElementSibling;\n\n if (prevRow) {\n if (getAttribute(prevRow, 'data-p-selectable-row') === true) return prevRow;\n else return this.findPrevSelectableRow(prevRow);\n } else {\n return null;\n }\n },\n findFirstSelectableRow() {\n const firstRow = findSingle(this.$refs.table, 'tr[data-p-selectable-row=\"true\"]');\n\n return firstRow;\n },\n findLastSelectableRow() {\n const rows = find(this.$refs.table, 'tr[data-p-selectable-row=\"true\"]');\n\n return rows ? rows[rows.length - 1] : null;\n },\n focusRowChange(firstFocusableRow, currentFocusedRow) {\n firstFocusableRow.tabIndex = '-1';\n currentFocusedRow.tabIndex = '0';\n focus(currentFocusedRow);\n },\n toggleRowWithRadio(event) {\n const rowData = event.data;\n\n if (this.isSelected(rowData)) {\n this.$emit('update:selection', null);\n this.$emit('row-unselect', { originalEvent: event.originalEvent, data: rowData, index: event.index, type: 'radiobutton' });\n } else {\n this.$emit('update:selection', rowData);\n this.$emit('row-select', { originalEvent: event.originalEvent, data: rowData, index: event.index, type: 'radiobutton' });\n }\n },\n toggleRowWithCheckbox(event) {\n const rowData = event.data;\n\n if (this.isSelected(rowData)) {\n const selectionIndex = this.findIndexInSelection(rowData);\n const _selection = this.selection.filter((val, i) => i != selectionIndex);\n\n this.$emit('update:selection', _selection);\n this.$emit('row-unselect', { originalEvent: event.originalEvent, data: rowData, index: event.index, type: 'checkbox' });\n } else {\n let _selection = this.selection ? [...this.selection] : [];\n\n _selection = [..._selection, rowData];\n this.$emit('update:selection', _selection);\n this.$emit('row-select', { originalEvent: event.originalEvent, data: rowData, index: event.index, type: 'checkbox' });\n }\n },\n toggleRowsWithCheckbox(event) {\n if (this.selectAll !== null) {\n this.$emit('select-all-change', event);\n } else {\n const { originalEvent, checked } = event;\n let _selection = [];\n\n if (checked) {\n _selection = this.frozenValue ? [...this.frozenValue, ...this.processedData] : this.processedData;\n this.$emit('row-select-all', { originalEvent, data: _selection });\n } else {\n this.$emit('row-unselect-all', { originalEvent });\n }\n\n this.$emit('update:selection', _selection);\n }\n },\n isSingleSelectionMode() {\n return this.selectionMode === 'single';\n },\n isMultipleSelectionMode() {\n return this.selectionMode === 'multiple';\n },\n isSelected(rowData) {\n if (rowData && this.selection) {\n if (this.dataKey) {\n return this.d_selectionKeys ? this.d_selectionKeys[resolveFieldData(rowData, this.dataKey)] !== undefined : false;\n } else {\n if (this.selection instanceof Array) return this.findIndexInSelection(rowData) > -1;\n else return this.equals(rowData, this.selection);\n }\n }\n\n return false;\n },\n findIndexInSelection(rowData) {\n return this.findIndex(rowData, this.selection);\n },\n findIndex(rowData, collection) {\n let index = -1;\n\n if (collection && collection.length) {\n for (let i = 0; i < collection.length; i++) {\n if (this.equals(rowData, collection[i])) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n },\n updateSelectionKeys(selection) {\n this.d_selectionKeys = {};\n\n if (Array.isArray(selection)) {\n for (let data of selection) {\n this.d_selectionKeys[String(resolveFieldData(data, this.dataKey))] = 1;\n }\n } else {\n this.d_selectionKeys[String(resolveFieldData(selection, this.dataKey))] = 1;\n }\n },\n updateEditingRowKeys(editingRows) {\n if (editingRows && editingRows.length) {\n this.d_editingRowKeys = {};\n\n for (let data of editingRows) {\n this.d_editingRowKeys[String(resolveFieldData(data, this.dataKey))] = 1;\n }\n } else {\n this.d_editingRowKeys = null;\n }\n },\n equals(data1, data2) {\n return this.compareSelectionBy === 'equals' ? data1 === data2 : equals(data1, data2, this.dataKey);\n },\n selectRange(event) {\n let rangeStart, rangeEnd;\n\n if (this.rangeRowIndex > this.anchorRowIndex) {\n rangeStart = this.anchorRowIndex;\n rangeEnd = this.rangeRowIndex;\n } else if (this.rangeRowIndex < this.anchorRowIndex) {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.anchorRowIndex;\n } else {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.rangeRowIndex;\n }\n\n if (this.lazy && this.paginator) {\n rangeStart -= this.first;\n rangeEnd -= this.first;\n }\n\n const value = this.processedData;\n let _selection = [];\n\n for (let i = rangeStart; i <= rangeEnd; i++) {\n let rangeRowData = value[i];\n\n _selection.push(rangeRowData);\n this.$emit('row-select', { originalEvent: event, data: rangeRowData, type: 'row' });\n }\n\n this.$emit('update:selection', _selection);\n },\n exportCSV(options, data) {\n let csv = '\\ufeff';\n\n if (!data) {\n data = this.processedData;\n\n if (options && options.selectionOnly) data = this.selection || [];\n else if (this.frozenValue) data = data ? [...this.frozenValue, ...data] : this.frozenValue;\n }\n\n //headers\n let headerInitiated = false;\n\n for (let i = 0; i < this.columns.length; i++) {\n let column = this.columns[i];\n\n if (this.columnProp(column, 'exportable') !== false && this.columnProp(column, 'field')) {\n if (headerInitiated) csv += this.csvSeparator;\n else headerInitiated = true;\n\n csv += '\"' + (this.columnProp(column, 'exportHeader') || this.columnProp(column, 'header') || this.columnProp(column, 'field')) + '\"';\n }\n }\n\n //body\n if (data) {\n data.forEach((record) => {\n csv += '\\n';\n let rowInitiated = false;\n\n for (let i = 0; i < this.columns.length; i++) {\n let column = this.columns[i];\n\n if (this.columnProp(column, 'exportable') !== false && this.columnProp(column, 'field')) {\n if (rowInitiated) csv += this.csvSeparator;\n else rowInitiated = true;\n\n let cellData = resolveFieldData(record, this.columnProp(column, 'field'));\n\n if (cellData != null) {\n if (this.exportFunction) {\n cellData = this.exportFunction({\n data: cellData,\n field: this.columnProp(column, 'field')\n });\n } else cellData = String(cellData).replace(/\"/g, '\"\"');\n } else cellData = '';\n\n csv += '\"' + cellData + '\"';\n }\n }\n });\n }\n\n //footers\n let footerInitiated = false;\n\n for (let i = 0; i < this.columns.length; i++) {\n let column = this.columns[i];\n\n if (i === 0) csv += '\\n';\n\n if (this.columnProp(column, 'exportable') !== false && this.columnProp(column, 'exportFooter')) {\n if (footerInitiated) csv += this.csvSeparator;\n else footerInitiated = true;\n\n csv += '\"' + (this.columnProp(column, 'exportFooter') || this.columnProp(column, 'footer') || this.columnProp(column, 'field')) + '\"';\n }\n }\n\n exportCSV(csv, this.exportFilename);\n },\n resetPage() {\n this.d_first = 0;\n this.$emit('update:first', this.d_first);\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 if (!this.virtualScrollerDisabled) {\n const body = this.$refs.bodyRef && this.$refs.bodyRef.$el;\n const frozenBody = this.$refs.frozenBodyRef && this.$refs.frozenBodyRef.$el;\n\n updateTableWidth(body);\n updateTableWidth(frozenBody);\n }\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 if (this.isStateful()) {\n this.saveState();\n }\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=\"datatable\"][${this.$attrSelector}] > [data-pc-section=\"tablecontainer\"] ${this.virtualScrollerDisabled ? '' : '> [data-pc-name=\"virtualscroller\"]'} > 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', () => {\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 onColumnHeaderMouseDown(e) {\n const event = e.originalEvent;\n const column = e.column;\n\n if (this.reorderableColumns && this.columnProp(column, 'reorderableColumn') !== false) {\n if (event.target.nodeName === 'INPUT' || event.target.nodeName === 'TEXTAREA' || getAttribute(event.target, '[data-pc-section=\"columnresizer\"]')) event.currentTarget.draggable = false;\n else event.currentTarget.draggable = true;\n }\n },\n onColumnHeaderDragStart(e) {\n const { originalEvent: event, column } = e;\n\n if (this.columnResizing) {\n event.preventDefault();\n\n return;\n }\n\n this.colReorderIconWidth = getHiddenElementOuterWidth(this.$refs.reorderIndicatorUp);\n this.colReorderIconHeight = getHiddenElementOuterHeight(this.$refs.reorderIndicatorUp);\n\n this.draggedColumn = column;\n this.draggedColumnElement = this.findParentHeader(event.target);\n event.dataTransfer.setData('text', 'b'); // Firefox requires this to make dragging possible\n },\n onColumnHeaderDragOver(e) {\n const { originalEvent: event, column } = e;\n let dropHeader = this.findParentHeader(event.target);\n\n if (this.reorderableColumns && this.draggedColumnElement && dropHeader && !this.columnProp(column, 'frozen')) {\n event.preventDefault();\n let containerOffset = getOffset(this.$el);\n let dropHeaderOffset = getOffset(dropHeader);\n\n if (this.draggedColumnElement !== dropHeader) {\n let targetLeft = dropHeaderOffset.left - containerOffset.left;\n let columnCenter = dropHeaderOffset.left + dropHeader.offsetWidth / 2;\n\n this.$refs.reorderIndicatorUp.style.top = dropHeaderOffset.top - containerOffset.top - (this.colReorderIconHeight - 1) + 'px';\n this.$refs.reorderIndicatorDown.style.top = dropHeaderOffset.top - containerOffset.top + dropHeader.offsetHeight + 'px';\n\n if (event.pageX > columnCenter) {\n this.$refs.reorderIndicatorUp.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.$refs.reorderIndicatorDown.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.dropPosition = 1;\n } else {\n this.$refs.reorderIndicatorUp.style.left = targetLeft - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.$refs.reorderIndicatorDown.style.left = targetLeft - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.dropPosition = -1;\n }\n\n this.$refs.reorderIndicatorUp.style.display = 'block';\n this.$refs.reorderIndicatorDown.style.display = 'block';\n }\n }\n },\n onColumnHeaderDragLeave(e) {\n const { originalEvent: event } = e;\n\n if (this.reorderableColumns && this.draggedColumnElement) {\n event.preventDefault();\n this.$refs.reorderIndicatorUp.style.display = 'none';\n this.$refs.reorderIndicatorDown.style.display = 'none';\n }\n },\n onColumnHeaderDrop(e) {\n const { originalEvent: event, column } = e;\n\n event.preventDefault();\n\n if (this.draggedColumnElement) {\n let dragIndex = getIndex(this.draggedColumnElement);\n let dropIndex = getIndex(this.findParentHeader(event.target));\n let allowDrop = dragIndex !== dropIndex;\n\n if (allowDrop && ((dropIndex - dragIndex === 1 && this.dropPosition === -1) || (dropIndex - dragIndex === -1 && this.dropPosition === 1))) {\n allowDrop = false;\n }\n\n if (allowDrop) {\n let isSameColumn = (col1, col2) =>\n this.columnProp(col1, 'columnKey') || this.columnProp(col2, 'columnKey') ? this.columnProp(col1, 'columnKey') === this.columnProp(col2, 'columnKey') : this.columnProp(col1, 'field') === this.columnProp(col2, 'field');\n let dragColIndex = this.columns.findIndex((child) => isSameColumn(child, this.draggedColumn));\n let dropColIndex = this.columns.findIndex((child) => isSameColumn(child, column));\n let widths = [];\n let headers = find(this.$el, 'thead[data-pc-section=\"thead\"] > tr > th');\n\n headers.forEach((header) => widths.push(getOuterWidth(header)));\n const movedItem = widths.find((_, index) => index === dragColIndex);\n const remainingItems = widths.filter((_, index) => index !== dragColIndex);\n const reorderedWidths = [...remainingItems.slice(0, dropColIndex), movedItem, ...remainingItems.slice(dropColIndex)];\n\n this.addColumnWidthStyles(reorderedWidths);\n\n if (dropColIndex < dragColIndex && this.dropPosition === 1) {\n dropColIndex++;\n }\n\n if (dropColIndex > dragColIndex && this.dropPosition === -1) {\n dropColIndex--;\n }\n\n reorderArray(this.columns, dragColIndex, dropColIndex);\n this.updateReorderableColumns();\n\n this.$emit('column-reorder', {\n originalEvent: event,\n dragIndex: dragColIndex,\n dropIndex: dropColIndex\n });\n }\n\n this.$refs.reorderIndicatorUp.style.display = 'none';\n this.$refs.reorderIndicatorDown.style.display = 'none';\n this.draggedColumnElement.draggable = false;\n this.draggedColumnElement = null;\n this.draggedColumn = null;\n this.dropPosition = null;\n }\n },\n findParentHeader(element) {\n if (element.nodeName === 'TH') {\n return element;\n } else {\n let parent = element.parentElement;\n\n while (parent.nodeName !== 'TH') {\n parent = parent.parentElement;\n if (!parent) break;\n }\n\n return parent;\n }\n },\n findColumnByKey(columns, key) {\n if (columns && columns.length) {\n for (let i = 0; i < columns.length; i++) {\n let column = columns[i];\n\n if (this.columnProp(column, 'columnKey') === key || this.columnProp(column, 'field') === key) {\n return column;\n }\n }\n }\n\n return null;\n },\n onRowMouseDown(event) {\n if (getAttribute(event.target, 'data-pc-section') === 'reorderablerowhandle' || getAttribute(event.target.parentElement, 'data-pc-section') === 'reorderablerowhandle') event.currentTarget.draggable = true;\n else event.currentTarget.draggable = false;\n },\n onRowDragStart(e) {\n const event = e.originalEvent;\n const index = e.index;\n\n this.rowDragging = true;\n this.draggedRowIndex = index;\n event.dataTransfer.setData('text', 'b'); // For firefox\n },\n onRowDragOver(e) {\n const event = e.originalEvent;\n const index = e.index;\n\n if (this.rowDragging && this.draggedRowIndex !== index) {\n let rowElement = event.currentTarget;\n let rowY = getOffset(rowElement).top;\n let pageY = event.pageY;\n let rowMidY = rowY + getOuterHeight(rowElement) / 2;\n let prevRowElement = rowElement.previousElementSibling;\n\n if (pageY < rowMidY) {\n rowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n\n this.droppedRowIndex = index;\n\n if (prevRowElement) {\n prevRowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'true');\n !this.isUnstyled && addClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n } else {\n rowElement.setAttribute('data-p-datatable-dragpoint-top', 'true');\n !this.isUnstyled && addClass(rowElement, 'p-datatable-dragpoint-top');\n }\n } else {\n if (prevRowElement) {\n prevRowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n } else {\n rowElement.setAttribute('data-p-datatable-dragpoint-top', 'true');\n !this.isUnstyled && addClass(rowElement, 'p-datatable-dragpoint-top');\n }\n\n this.droppedRowIndex = index + 1;\n rowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'true');\n !this.isUnstyled && addClass(rowElement, 'p-datatable-dragpoint-bottom');\n }\n\n event.preventDefault();\n }\n },\n onRowDragLeave(event) {\n let rowElement = event.currentTarget;\n let prevRowElement = rowElement.previousElementSibling;\n\n if (prevRowElement) {\n prevRowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n }\n\n rowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n rowElement.setAttribute('data-p-datatable-dragpoint-top', 'false');\n !this.isUnstyled && removeClass(rowElement, 'p-datatable-dragpoint-top');\n },\n onRowDragEnd(event) {\n this.rowDragging = false;\n this.draggedRowIndex = null;\n this.droppedRowIndex = null;\n event.currentTarget.draggable = false;\n },\n onRowDrop(event) {\n if (this.droppedRowIndex != null) {\n let dropIndex = this.draggedRowIndex > this.droppedRowIndex ? this.droppedRowIndex : this.droppedRowIndex === 0 ? 0 : this.droppedRowIndex - 1;\n let processedData = [...this.processedData];\n\n reorderArray(processedData, this.draggedRowIndex + this.d_first, dropIndex + this.d_first);\n\n this.$emit('row-reorder', {\n originalEvent: event,\n dragIndex: this.draggedRowIndex,\n dropIndex: dropIndex,\n value: processedData\n });\n }\n\n //cleanup\n this.onRowDragLeave(event);\n this.onRowDragEnd(event);\n event.preventDefault();\n },\n toggleRow(event) {\n const { expanded, ...rest } = event;\n const rowData = event.data;\n let expandedRows;\n\n if (this.dataKey) {\n const value = resolveFieldData(rowData, this.dataKey);\n\n expandedRows = this.expandedRows ? { ...this.expandedRows } : {};\n expanded ? (expandedRows[value] = true) : delete expandedRows[value];\n } else {\n expandedRows = this.expandedRows ? [...this.expandedRows] : [];\n expanded ? expandedRows.push(rowData) : (expandedRows = expandedRows.filter((d) => !this.equals(rowData, d)));\n }\n\n this.$emit('update:expandedRows', expandedRows);\n expanded ? this.$emit('row-expand', rest) : this.$emit('row-collapse', rest);\n },\n toggleRowGroup(e) {\n const event = e.originalEvent;\n const data = e.data;\n const groupFieldValue = resolveFieldData(data, this.groupRowsBy);\n let _expandedRowGroups = this.expandedRowGroups ? [...this.expandedRowGroups] : [];\n\n if (this.isRowGroupExpanded(data)) {\n _expandedRowGroups = _expandedRowGroups.filter((group) => group !== groupFieldValue);\n this.$emit('update:expandedRowGroups', _expandedRowGroups);\n this.$emit('rowgroup-collapse', { originalEvent: event, data: groupFieldValue });\n } else {\n _expandedRowGroups.push(groupFieldValue);\n this.$emit('update:expandedRowGroups', _expandedRowGroups);\n this.$emit('rowgroup-expand', { originalEvent: event, data: groupFieldValue });\n }\n },\n isRowGroupExpanded(rowData) {\n if (this.expandableRowGroups && this.expandedRowGroups) {\n let groupFieldValue = resolveFieldData(rowData, this.groupRowsBy);\n\n return this.expandedRowGroups.indexOf(groupFieldValue) > -1;\n }\n\n return false;\n },\n isStateful() {\n return this.stateKey != null;\n },\n getStorage() {\n switch (this.stateStorage) {\n case 'local':\n return window.localStorage;\n\n case 'session':\n return window.sessionStorage;\n\n default:\n throw new Error(this.stateStorage + ' is not a valid value for the state storage, supported values are \"local\" and \"session\".');\n }\n },\n saveState() {\n const storage = this.getStorage();\n let state = {};\n\n if (this.paginator) {\n state.first = this.d_first;\n state.rows = this.d_rows;\n }\n\n if (this.d_sortField) {\n state.sortField = this.d_sortField;\n state.sortOrder = this.d_sortOrder;\n }\n\n if (this.d_multiSortMeta) {\n state.multiSortMeta = this.d_multiSortMeta;\n }\n\n if (this.hasFilters) {\n state.filters = this.filters;\n }\n\n if (this.resizableColumns) {\n this.saveColumnWidths(state);\n }\n\n if (this.reorderableColumns) {\n state.columnOrder = this.d_columnOrder;\n }\n\n if (this.expandedRows) {\n state.expandedRows = this.expandedRows;\n }\n\n if (this.expandedRowGroups) {\n state.expandedRowGroups = this.expandedRowGroups;\n }\n\n if (this.selection) {\n state.selection = this.selection;\n state.selectionKeys = this.d_selectionKeys;\n }\n\n if (Object.keys(state).length) {\n storage.setItem(this.stateKey, JSON.stringify(state));\n }\n\n this.$emit('state-save', state);\n },\n restoreState() {\n const storage = this.getStorage();\n const stateString = storage.getItem(this.stateKey);\n const dateFormat = /\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z/;\n\n const reviver = function (key, value) {\n if (typeof value === 'string' && dateFormat.test(value)) {\n return new Date(value);\n }\n\n return value;\n };\n\n if (stateString) {\n let restoredState = JSON.parse(stateString, reviver);\n\n if (this.paginator) {\n this.d_first = restoredState.first;\n this.d_rows = restoredState.rows;\n }\n\n if (restoredState.sortField) {\n this.d_sortField = restoredState.sortField;\n this.d_sortOrder = restoredState.sortOrder;\n }\n\n if (restoredState.multiSortMeta) {\n this.d_multiSortMeta = restoredState.multiSortMeta;\n }\n\n if (restoredState.filters) {\n this.$emit('update:filters', restoredState.filters);\n }\n\n if (this.resizableColumns) {\n this.columnWidthsState = restoredState.columnWidths;\n this.tableWidthState = restoredState.tableWidth;\n }\n\n if (this.reorderableColumns) {\n this.d_columnOrder = restoredState.columnOrder;\n }\n\n if (restoredState.expandedRows) {\n this.$emit('update:expandedRows', restoredState.expandedRows);\n }\n\n if (restoredState.expandedRowGroups) {\n this.$emit('update:expandedRowGroups', restoredState.expandedRowGroups);\n }\n\n if (restoredState.selection) {\n this.d_selectionKeys = restoredState.d_selectionKeys;\n this.$emit('update:selection', restoredState.selection);\n }\n\n this.$emit('state-restore', restoredState);\n }\n },\n saveColumnWidths(state) {\n let widths = [];\n let headers = find(this.$el, 'thead[data-pc-section=\"thead\"] > tr > th');\n\n headers.forEach((header) => widths.push(getOuterWidth(header)));\n state.columnWidths = widths.join(',');\n\n if (this.columnResizeMode === 'expand') {\n state.tableWidth = getOuterWidth(this.$refs.table) + 'px';\n }\n },\n addColumnWidthStyles(widths) {\n this.createStyleElement();\n\n let innerHTML = '';\n let selector = `[data-pc-name=\"datatable\"][${this.$attrSelector}] > [data-pc-section=\"tablecontainer\"] ${this.virtualScrollerDisabled ? '' : '> [data-pc-name=\"virtualscroller\"]'} > table[data-pc-section=\"table\"]`;\n\n widths.forEach((width, index) => {\n let style = `width: ${width}px !important; max-width: ${width}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 restoreColumnWidths() {\n if (this.columnWidthsState) {\n let widths = this.columnWidthsState.split(',');\n\n if (this.columnResizeMode === 'expand' && this.tableWidthState) {\n this.$refs.table.style.width = this.tableWidthState;\n this.$refs.table.style.minWidth = this.tableWidthState;\n }\n\n if (isNotEmpty(widths)) {\n this.addColumnWidthStyles(widths);\n }\n }\n },\n onCellEditInit(event) {\n this.$emit('cell-edit-init', event);\n },\n onCellEditComplete(event) {\n this.$emit('cell-edit-complete', event);\n },\n onCellEditCancel(event) {\n this.$emit('cell-edit-cancel', event);\n },\n onRowEditInit(event) {\n let _editingRows = this.editingRows ? [...this.editingRows] : [];\n\n _editingRows.push(event.data);\n this.$emit('update:editingRows', _editingRows);\n this.$emit('row-edit-init', event);\n },\n onRowEditSave(event) {\n let _editingRows = [...this.editingRows];\n\n _editingRows.splice(this.findIndex(event.data, _editingRows), 1);\n this.$emit('update:editingRows', _editingRows);\n this.$emit('row-edit-save', event);\n },\n onRowEditCancel(event) {\n let _editingRows = [...this.editingRows];\n\n _editingRows.splice(this.findIndex(event.data, _editingRows), 1);\n this.$emit('update:editingRows', _editingRows);\n this.$emit('row-edit-cancel', event);\n },\n onEditingMetaChange(event) {\n let { data, field, index, editing } = event;\n let editingMeta = { ...this.d_editingMeta };\n let meta = editingMeta[index];\n\n if (editing) {\n !meta && (meta = editingMeta[index] = { data: { ...data }, fields: [] });\n meta['fields'].push(field);\n } else if (meta) {\n const fields = meta['fields'].filter((f) => f !== field);\n\n !fields.length ? delete editingMeta[index] : (meta['fields'] = fields);\n }\n\n this.d_editingMeta = editingMeta;\n },\n clearEditingMetaData() {\n if (this.editMode) {\n this.d_editingMeta = {};\n }\n },\n createLazyLoadEvent(event) {\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.d_filters\n };\n },\n hasGlobalFilter() {\n return this.filters && Object.prototype.hasOwnProperty.call(this.filters, 'global');\n },\n onFilterChange(filters) {\n this.d_filters = filters;\n },\n onFilterApply() {\n this.d_first = 0;\n this.$emit('update:first', this.d_first);\n this.$emit('update:filters', this.d_filters);\n\n if (this.lazy) {\n this.$emit('filter', this.createLazyLoadEvent());\n }\n },\n cloneFilters() {\n let cloned = {};\n\n if (this.filters) {\n Object.entries(this.filters).forEach(([prop, value]) => {\n cloned[prop] = value.operator\n ? {\n operator: value.operator,\n constraints: value.constraints.map((constraint) => {\n return { ...constraint };\n })\n }\n : { ...value };\n });\n }\n\n return cloned;\n },\n updateReorderableColumns() {\n let columnOrder = [];\n\n this.columns.forEach((col) => columnOrder.push(this.columnProp(col, 'columnKey') || this.columnProp(col, 'field')));\n this.d_columnOrder = columnOrder;\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 dataToRender(data) {\n const _data = data || this.processedData;\n\n if (_data && this.paginator) {\n const first = this.lazy ? 0 : this.d_first;\n\n return _data.slice(first, first + this.d_rows);\n }\n\n return _data;\n },\n getVirtualScrollerRef() {\n return this.$refs.virtualScroller;\n },\n hasSpacerStyle(style) {\n return isNotEmpty(style);\n }\n },\n computed: {\n columns() {\n const cols = this.d_columns.get(this);\n\n if (this.reorderableColumns && this.d_columnOrder) {\n let orderedColumns = [];\n\n for (let columnKey of this.d_columnOrder) {\n let column = this.findColumnByKey(cols, columnKey);\n\n if (column && !this.columnProp(column, 'hidden')) {\n orderedColumns.push(column);\n }\n }\n\n return [...orderedColumns, ...cols.filter((item) => orderedColumns.indexOf(item) < 0)];\n }\n\n return cols;\n },\n columnGroups() {\n return this.d_columnGroups.get(this);\n },\n headerColumnGroup() {\n return this.columnGroups?.find((group) => this.columnProp(group, 'type') === 'header');\n },\n footerColumnGroup() {\n return this.columnGroups?.find((group) => this.columnProp(group, 'type') === 'footer');\n },\n hasFilters() {\n return this.filters && Object.keys(this.filters).length > 0 && this.filters.constructor === Object;\n },\n processedData() {\n let data = this.value || [];\n\n if (!this.lazy && !this.virtualScrollerOptions?.lazy) {\n if (data && data.length) {\n if (this.hasFilters) {\n data = this.filter(data);\n }\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 }\n\n return data;\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 empty() {\n const data = this.processedData;\n\n return !data || data.length === 0;\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 sorted() {\n return this.d_sortField || (this.d_multiSortMeta && this.d_multiSortMeta.length > 0);\n },\n allRowsSelected() {\n if (this.selectAll !== null) {\n return this.selectAll;\n } else {\n const val = this.frozenValue ? [...this.frozenValue, ...this.processedData] : this.processedData;\n\n return isNotEmpty(val) && this.selection && Array.isArray(this.selection) && val.every((v) => this.selection.some((s) => this.equals(s, v)));\n }\n },\n groupRowSortField() {\n return this.sortMode === 'single' ? this.sortField : this.d_groupRowsSortMeta ? this.d_groupRowsSortMeta.field : null;\n },\n headerFilterButtonProps() {\n return {\n filter: { severity: 'secondary', text: true, rounded: true },\n ...this.filterButtonProps,\n inline: {\n clear: { severity: 'secondary', text: true, rounded: true },\n ...this.filterButtonProps.inline\n },\n popover: {\n addRule: { severity: 'info', text: true, size: 'small' },\n removeRule: { severity: 'danger', text: true, size: 'small' },\n apply: { size: 'small' },\n clear: { outlined: true, size: 'small' },\n ...this.filterButtonProps.popover\n }\n };\n },\n rowEditButtonProps() {\n return {\n ...{\n init: { severity: 'secondary', text: true, rounded: true },\n save: { severity: 'secondary', text: true, rounded: true },\n cancel: { severity: 'secondary', text: true, rounded: true }\n },\n ...this.editButtonProps\n };\n },\n virtualScrollerDisabled() {\n return isEmpty(this.virtualScrollerOptions) || !this.scrollable;\n }\n },\n components: {\n DTPaginator: Paginator,\n DTTableHeader: TableHeader,\n DTTableBody: TableBody,\n DTTableFooter: TableFooter,\n DTVirtualScroller: VirtualScroller,\n ArrowDownIcon: ArrowDownIcon,\n ArrowUpIcon: ArrowUpIcon,\n SpinnerIcon: SpinnerIcon\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","value","type","Array","dataKey","String","Function","rows","Number","first","totalRecords","paginator","Boolean","paginatorPosition","alwaysShowPaginator","paginatorTemplate","Object","pageLinkSize","rowsPerPageOptions","currentPageReportTemplate","lazy","loading","loadingIcon","undefined","sortField","sortOrder","defaultSortOrder","nullSortOrder","multiSortMeta","sortMode","removableSort","filters","filterDisplay","globalFilterFields","filterLocale","selection","selectionMode","compareSelectionBy","metaKeySelection","contextMenu","contextMenuSelection","selectAll","rowHover","csvSeparator","exportFilename","exportFunction","resizableColumns","columnResizeMode","reorderableColumns","expandedRows","expandedRowIcon","collapsedRowIcon","rowGroupMode","groupRowsBy","expandableRowGroups","expandedRowGroups","stateStorage","stateKey","editMode","editingRows","rowClass","rowStyle","scrollable","virtualScrollerOptions","scrollHeight","frozenValue","breakpoint","showHeaders","showGridlines","stripedRows","highlightOnSelect","size","tableStyle","tableClass","tableProps","filterInputProps","filterButtonProps","default","filter","severity","text","rounded","inline","clear","popover","addRule","removeRule","apply","outlined","editButtonProps","init","save","cancel","style","DataTableStyle","provide","$pcDataTable","$parentInstance","hostName","emits","checked","column","rowCheckboxIconTemplate","index","methods","getColumnPT","key","columnMetaData","parent","instance","$props","state","$data","context","disabled","$attrs","mergeProps","ptm","concat","ptmo","getColumnProp","pt","onChange","event","$emit","originalEvent","data","computed","checkboxAriaLabel","$primevue","config","locale","aria","selectRow","unselectRow","components","CheckIcon","Checkbox","_createBlock","_component_Checkbox","modelValue","binary","_ctx","$options","unstyled","icon","_withCtx","slotProps","_openBlock","_resolveDynamicComponent","_normalizeClass","_component_CheckIcon","_mergeProps","RadioButton","_component_RadioButton","rowData","frozenRow","rowIndex","isRowExpanded","selected","editing","editingMeta","virtualScrollerContentProps","ariaControls","documentEditListener","selfClick","overlayEventListener","d_editing","styleObject","watch","newValue","$dataD_editing","field","mounted","columnProp","updateStickyPosition","updated","_this","setTimeout","focusableEl","getFirstFocusableElement","$el","focus","beforeUnmount","OverlayEventBus","off","prop","getVNodeProp","_this$$parentInstance","_this$$parentInstance2","resolveFieldData","toggleRow","toggleRowWithRadio","toggleRowWithCheckbox","isEditable","children","editor","bindDocumentEditListener","_this2","completeEdit","document","addEventListener","unbindDocumentEditListener","removeEventListener","switchCellToViewMode","onClick","_this3","e","contains","target","on","completeEvent","newData","editingRowData","defaultPrevented","preventDefault","onKeyDown","code","shiftKey","moveToPreviousCell","moveToNextCell","currentCell","findCell","targetCell","findPreviousEditableColumn","invokeElementMethod","findNextEditableColumn","element","cell","getAttribute","parentElement","prevCell","previousElementSibling","previousRow","lastElementChild","nextCell","nextElementSibling","nextRow","firstElementChild","onRowEditInit","onRowEditSave","onRowEditCancel","editorInitCallback","editorSaveCallback","editorCancelCallback","align","pos","next","getNextElementSibling","getOuterWidth","parseFloat","right","insetInlineEnd","prev","getPreviousElementSibling","left","insetInlineStart","getVirtualScrollerProp","option","containerClass","cx","containerStyle","bodyStyle","columnStyle","loadingOptions","getLoaderOptions","cellIndex","cellFirst","cellLast","length","cellEven","cellOdd","expandButtonAriaLabel","expandRow","collapseRow","initButtonAriaLabel","editRow","saveButtonAriaLabel","saveEdit","cancelButtonAriaLabel","cancelEdit","DTRadioButton","RowRadioButton","DTCheckbox","RowCheckbox","Button","ChevronDownIcon","ChevronRightIcon","BarsIcon","PencilIcon","TimesIcon","directives","ripple","Ripple","_createElementBlock","role","_objectSpread","colspan","rowspan","arguments","onKeydown","body","rowTogglerCallback","_Fragment","_component_DTRadioButton","_cache","$event","_component_DTCheckbox","rowcheckboxicon","rowreordericon","_component_BarsIcon","_withDirectives","rowtogglericon","rowExpanded","_component_ChevronDownIcon","_component_ChevronRightIcon","_component_Button","roweditoriniticon","roweditorsaveicon","roweditorcancelicon","columns","empty","selectionKeys","rowGroupHeaderStyle","editingRowKeys","templates","isVirtualScrollerDisabled","expandedRowId","nameAttributeSelector","d_rowExpanded","deep","immediate","handler","some","d","equals","col","getBodyRowPTOptions","datatable","selectable","isSelected","shouldRenderBodyCell","isHidden","isGrouped","prevRowData","currentRowFieldData","previousRowFieldData","calculateRowGroupSize","nextRowFieldData","groupRowSpan","nextRowData","isArray","indexOf","findIndexInSelection","findIndex","collection","i","data1","data2","onRowGroupToggle","onRowClick","onRowDblClick","onRowRightClick","onRowTouchEnd","onRowKeyDown","onRowMouseDown","onRowDragStart","onRowDragOver","onRowDragLeave","onRowDragEnd","onRowDrop","onRowToggle","expanded","onRadioChange","onCheckboxChange","onCellEditInit","onCellEditComplete","onCellEditCancel","onEditingMetaChange","options","getItemOptions","rowStyles","_this$rowStyle","call","rowClasses","rowStyleClass","columnSelectionMode","rowClassValue","push","_iterator","_createForOfIteratorHelper","_step","s","n","done","_selectionMode","isNotEmpty","err","f","rowTabindex","isRowEditing","isRowGroupExpanded","groupFieldValue","isSelectedWithContextMenu","shouldRenderRowGroupHeader","shouldRenderRowGroupFooter","columnsLength","hiddenColLength","forEach","DTBodyCell","BodyCell","_createElementVNode","tabindex","onDblclick","onContextmenu","onTouchend","onMousedown","onDragstart","onDragover","onDragleave","onDragend","onDrop","_renderList","_component_DTBodyCell","id","rowGroupHeaderStyleObject","updateFrozenRowStickyPosition","updateFrozenRowGroupHeaderStickyPosition","getRowKey","top","getOuterHeight","tableHeaderHeight","bodyRef","el","contentRef","bodyContentStyle","ptmTBodyOptions","UniqueComponentId","DTBodyRow","BodyRow","ref","_component_DTBodyRow","onRowgroupToggle","onRowDblclick","onRowRightclick","onRowTouchend","onRowKeydown","onRowMousedown","onRowDragstart","onRowDragover","onRowDragleave","onRowDragend","footer","columnGroup","$rows","d_footerRows","$columns","d_footerColumns","HelperSet","getColumnGroupPT","columnGroupMetaData","getColumnGroupProps","ptmTFootOptions","getRowPT","row","rowMetaData","getRowProp","getFooterRows","_this$d_footerRows","get","getFooterColumns","_this$d_footerColumns","hasFooter","DTFooterCell","FooterCell","sx","_component_DTFooterCell","j","display","showMenu","matchMode","showOperator","showClearButton","showApplyButton","showMatchModes","showAddButton","matchModeOptions","maxConstraints","filterElement","filterHeaderTemplate","filterFooterTemplate","filterClearTemplate","filterApplyTemplate","filterIconTemplate","filterAddIconTemplate","filterRemoveIconTemplate","filterClearIconTemplate","filtersStore","filterMenuClass","filterMenuStyle","overlayVisible","defaultMatchMode","defaultOperator","$attrsId","overlay","ZIndex","onOverlayHide","fieldFilters","operator","constraints","params","ptmFilterConstraintOptions","highlighted","isRowMatchModeSelected","clearFilter","_filters","splice","hide","applyFilter","hasFilter","fieldFilter","isFilterBlank","hasRowFilter","trim","toggleMenu","onToggleButtonKeyDown","onRowMatchModeChange","onRowMatchModeKeyDown","item","nextItem","findNextItem","removeAttribute","tabIndex","prevItem","findPrevItem","onOperatorChange","onMenuMatchModeChange","addConstraint","newConstraint","constraing","removeConstraint","removedConstraint","filterCallback","showMenuButton","$refs","onContentClick","emit","onContentMouseDown","onOverlayEnter","addStyle","set","zIndex","position","absolutePosition","bindOutsideClickListener","bindScrollListener","bindResizeListener","isOutsideClicked","onOverlayAfterEnter","_this$overlay","$focustrap","autoFocus","onOverlayLeave","onOverlayAfterLeave","unbindOutsideClickListener","unbindResizeListener","unbindScrollListener","overlayRef","isTargetClicked","isSameNode","outsideClickListener","scrollHandler","ConnectedOverlayScrollHandler","_this4","resizeListener","isTouchDevice","window","overlayId","matchModes","_this5","filterMatchModeOptions","map","label","isShowMatchModes","operatorOptions","matchAll","FilterOperator","AND","matchAny","OR","noFilterLabel","noFilter","isShowOperator","fieldConstraints","showRemoveIcon","removeRuleButtonLabel","addRuleButtonLabel","isShowAddConstraint","clearButtonLabel","applyButtonLabel","columnFilterButtonAriaLabel","showFilterMenu","hideFilterMenu","filterOperatorAriaLabel","filterOperator","filterRuleAriaLabel","filterConstraint","ptmHeaderFilterClearParams","hidden","ptmFilterMenuParams","active","Select","Portal","FilterSlashIcon","FilterIcon","TrashIcon","PlusIcon","focustrap","FocusTrap","filterModel","_createVNode","_component_Portal","_Transition","onEnter","onAfterEnter","onLeave","onAfterLeave","_toDisplayString","onRowClearItemClick","_component_Select","optionLabel","optionValue","fieldConstraint","onUpdateModelValue","iconProps","iconPos","headerCheckboxIconTemplate","headerCheckboxAriaLabel","unselectAll","groupRowSortField","allRowsSelected","filterColumn","sortable","sorted","isColumnSorted","resizable","currentTarget","nodeName","onMouseDown","onDragStart","onDragOver","onDragLeave","onResizeStart","getMultiSortMetaIndex","meta","getBadgeValue","isMultiSorted","filterRow","getIndex","onHeaderCheckboxChange","headerStyle","sortState","metaIndex","order","sortableColumnIcon","_this$sortState","SortAltIcon","SortAmountUpAltIcon","SortAmountDownIcon","ariaSort","_this$sortState2","Badge","DTHeaderCheckbox","HeaderCheckbox","DTColumnFilter","ColumnFilter","header","sorticon","_component_Badge","_component_DTHeaderCheckbox","headercheckboxicon","_component_DTColumnFilter","filterheader","filterfooter","filterclear","filterapply","filtericon","filteraddicon","filterremoveicon","filterclearicon","onFilterChange","onFilterApply","onMatchmodeChange","onConstraintAdd","onConstraintRemove","onApplyClick","d_headerRows","d_headerColumns","getFilterColumnHeaderClass","getFilterColumnHeaderStyle","getHeaderRows","_this$d_headerRows","getHeaderColumns","_this$d_headerColumns","ptmTHeadOptions","DTHeaderCell","HeaderCell","_component_DTHeaderCell","onColumnClick","onColumnMousedown","onColumnDragstart","onColumnDragover","onColumnDragleave","onColumnDrop","onColumnResizestart","BaseDataTable","inheritAttrs","d_columns","$columnGroups","d_columnGroups","d_first","d_rows","d_sortField","d_sortOrder","d_nullSortOrder","d_multiSortMeta","_toConsumableArray","d_groupRowsSortMeta","d_selectionKeys","d_columnOrder","d_editingRowKeys","d_editingMeta","d_filters","cloneFilters","rowTouched","anchorRowIndex","rangeRowIndex","documentColumnResizeListener","documentColumnResizeEndListener","lastResizeHelperX","resizeColumnElement","columnResizing","colReorderIconWidth","colReorderIconHeight","draggedColumn","draggedColumnElement","draggedRowIndex","droppedRowIndex","rowDragging","columnWidthsState","tableWidthState","columnWidthsRestored","updateSelectionKeys","updateEditingRowKeys","isStateful","restoreState","restoreColumnWidths","unbindColumnResizeEvents","destroyStyleElement","saveState","onPage","clearEditingMetaData","pageEvent","createLazyLoadEvent","pageCount","page","$nextTick","processedData","onColumnHeaderClick","targetNode","columnField","closest","isClickable","clearSelection","resetPage","metaKey","ctrlKey","addMultiSortField","sortSingle","sortMultiple","resolvedFieldData","Map","comparer","localeComparator","sort","value1","value2","firstSortMeta","multisortField","getActiveFilters","removeEmptyFilters","_ref","_ref2","_slicedToArray","filteredConstraints","constraint","filterValidEntries","entry","entries","fromEntries","activeFilters","globalFilterFieldsArray","filteredValue","localMatch","globalMatch","localFiltered","prototype","hasOwnProperty","filterField","filterMeta","_iterator2","_step2","executeLocalFilter","globalFilterField","FilterService","FilterMatchMode","CONTAINS","matches","keys","filterEvent","filterValue","filterMatchMode","STARTS_WITH","dataFieldValue","focusedItem","findSingle","isMultipleSelectionMode","selectRange","metaSelection","isSingleSelectionMode","selectionIndex","_selection","val","_event$target","_event$currentTarget","targetRow","onArrowDownKey","onArrowUpKey","onHomeKey","onEndKey","onEnterKey","onSpaceKey","onTabKey","dataToRender","findNextSelectableRow","focusRowChange","nextRowIndex","prevRow","findPrevSelectableRow","prevRowIndex","firstRow","findFirstSelectableRow","slice","lastRow","findLastSelectableRow","firstSelectedRowIndex","lastSelectedRowIndex","findIndexInList","Math","min","max","find","firstSelectedRow","table","firstFocusableRow","currentFocusedRow","toggleRowsWithCheckbox","_iterator3","_step3","_iterator4","_step4","rangeStart","rangeEnd","rangeRowData","exportCSV","_this6","csv","selectionOnly","headerInitiated","record","rowInitiated","cellData","replace","footerInitiated","onColumnResizeStart","containerLeft","getOffset","pageX","scrollLeft","bindColumnResizeEvents","onColumnResize","setAttribute","isUnstyled","resizeHelper","height","offsetHeight","onColumnResizeEnd","delta","isRTL","offsetLeft","columnWidth","offsetWidth","newColumnWidth","minWidth","parseInt","nextColumn","nextColumnWidth","resizeTableCells","tableWidth","updateTableWidth","width","virtualScrollerDisabled","frozenBody","frozenBodyRef","resizeColumn","colIndex","widths","headers","createStyleElement","innerHTML","selector","$attrSelector","colWidth","styleElement","_this7","onColumnHeaderMouseDown","draggable","onColumnHeaderDragStart","getHiddenElementOuterWidth","reorderIndicatorUp","getHiddenElementOuterHeight","findParentHeader","dataTransfer","setData","onColumnHeaderDragOver","dropHeader","containerOffset","dropHeaderOffset","targetLeft","columnCenter","reorderIndicatorDown","ceil","dropPosition","onColumnHeaderDragLeave","onColumnHeaderDrop","_this8","dragIndex","dropIndex","allowDrop","isSameColumn","col1","col2","dragColIndex","child","dropColIndex","movedItem","_","remainingItems","reorderedWidths","addColumnWidthStyles","reorderArray","updateReorderableColumns","findColumnByKey","rowElement","rowY","pageY","rowMidY","prevRowElement","removeClass","addClass","_this9","rest","_objectWithoutProperties","_excluded","toggleRowGroup","_expandedRowGroups","group","getStorage","localStorage","sessionStorage","Error","storage","hasFilters","saveColumnWidths","columnOrder","setItem","JSON","stringify","stateString","getItem","dateFormat","reviver","test","Date","restoredState","parse","columnWidths","join","split","_editingRows","fields","hasGlobalFilter","cloned","_ref3","_ref4","_this10","_this$$primevue","createElement","csp","nonce","head","appendChild","removeChild","_data","getVirtualScrollerRef","virtualScroller","hasSpacerStyle","cols","orderedColumns","_iterator5","_step5","columnKey","columnGroups","headerColumnGroup","_this$columnGroups","_this11","footerColumnGroup","_this$columnGroups2","_this12","constructor","_this$virtualScroller","totalRecordsLength","paginatorTop","paginatorBottom","_this13","every","v","headerFilterButtonProps","rowEditButtonProps","isEmpty","DTPaginator","Paginator","DTTableHeader","TableHeader","DTTableBody","TableBody","DTTableFooter","TableFooter","DTVirtualScroller","VirtualScroller","ArrowDownIcon","ArrowUpIcon","SpinnerIcon","ptmi","_renderSlot","$slots","loadingicon","_component_SpinnerIcon","spin","_component_DTPaginator","template","alwaysShow","paginatorcontainer","last","firstPageCallback","lastPageCallback","prevPageCallback","nextPageCallback","rowChangeCallback","paginatorstart","paginatorend","paginatorfirstpagelinkicon","fn","paginatorprevpagelinkicon","paginatornextpagelinkicon","paginatorlastpagelinkicon","paginatorjumptopagedropdownicon","paginatorrowsperpagedropdownicon","maxHeight","_component_DTVirtualScroller","items","loaderDisabled","autoSize","showSpacer","content","spacerStyle","_component_DTTableHeader","_component_DTTableBody","styleClass","itemSize","_component_DTTableFooter","rowreorderindicatorupicon","reorderindicatorupicon","rowreorderindicatordownicon","reorderindicatordownicon"],"mappings":"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"}
|