primevue 4.3.0 → 4.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordionheader/AccordionHeader.vue +8 -2
- package/accordionheader/index.mjs +8 -1
- package/accordionheader/index.mjs.map +1 -1
- package/autocomplete/AutoComplete.vue +16 -6
- package/autocomplete/index.d.ts +3 -3
- package/autocomplete/index.mjs +17 -4
- package/autocomplete/index.mjs.map +1 -1
- package/avatar/Avatar.vue +13 -4
- package/avatar/index.d.ts +3 -3
- package/avatar/index.mjs +26 -6
- package/avatar/index.mjs.map +1 -1
- package/badge/Badge.vue +13 -2
- package/badge/index.d.ts +1 -1
- package/badge/index.mjs +18 -3
- package/badge/index.mjs.map +1 -1
- package/blockui/BlockUI.vue +15 -4
- package/blockui/index.mjs +13 -4
- package/blockui/index.mjs.map +1 -1
- package/button/Button.vue +30 -3
- package/button/index.d.ts +3 -7
- package/button/index.mjs +28 -9
- package/button/index.mjs.map +1 -1
- package/cascadeselect/index.d.ts +2 -2
- package/checkbox/Checkbox.vue +14 -4
- package/checkbox/index.d.ts +2 -2
- package/checkbox/index.mjs +27 -6
- package/checkbox/index.mjs.map +1 -1
- package/chip/Chip.vue +9 -1
- package/chip/index.mjs +12 -2
- package/chip/index.mjs.map +1 -1
- package/colorpicker/ColorPicker.vue +10 -2
- package/colorpicker/index.d.ts +1 -1
- package/colorpicker/index.mjs +9 -2
- package/colorpicker/index.mjs.map +1 -1
- package/column/index.d.ts +3 -3
- package/columngroup/index.d.ts +2 -2
- package/confirmationoptions/index.d.ts +1 -1
- package/confirmpopup/ConfirmPopup.vue +2 -2
- package/confirmpopup/index.mjs +2 -2
- package/confirmpopup/index.mjs.map +1 -1
- package/datatable/BodyCell.vue +3 -1
- package/datatable/BodyRow.vue +2 -0
- package/datatable/index.d.ts +10 -10
- package/datatable/index.mjs +7 -2
- package/datatable/index.mjs.map +1 -1
- package/dataview/index.d.ts +3 -3
- package/datepicker/DatePicker.vue +1 -3
- package/datepicker/index.d.ts +6 -6
- package/datepicker/index.mjs +21 -24
- package/datepicker/index.mjs.map +1 -1
- package/dialog/Dialog.vue +48 -39
- package/dialog/index.d.ts +26 -1
- package/dialog/index.mjs +73 -50
- package/dialog/index.mjs.map +1 -1
- package/divider/Divider.vue +13 -3
- package/divider/index.d.ts +4 -4
- package/divider/index.mjs +18 -5
- package/divider/index.mjs.map +1 -1
- package/dock/index.d.ts +4 -4
- package/drawer/index.d.ts +2 -2
- package/fieldset/Fieldset.vue +8 -2
- package/fieldset/index.mjs +20 -10
- package/fieldset/index.mjs.map +1 -1
- package/fileupload/index.d.ts +2 -2
- package/floatlabel/index.d.ts +2 -2
- package/galleria/GalleriaItem.vue +8 -9
- package/galleria/index.d.ts +3 -3
- package/galleria/index.mjs +8 -8
- package/galleria/index.mjs.map +1 -1
- package/inputchips/index.d.ts +2 -2
- package/inputmask/InputMask.vue +15 -1
- package/inputmask/index.d.ts +3 -3
- package/inputmask/index.mjs +12 -1
- package/inputmask/index.mjs.map +1 -1
- package/inputnumber/InputNumber.vue +28 -6
- package/inputnumber/index.d.ts +6 -6
- package/inputnumber/index.mjs +43 -19
- package/inputnumber/index.mjs.map +1 -1
- package/inputotp/index.d.ts +3 -3
- package/inputtext/InputText.vue +10 -1
- package/inputtext/index.d.ts +3 -3
- package/inputtext/index.mjs +14 -1
- package/inputtext/index.mjs.map +1 -1
- package/knob/Knob.vue +1 -1
- package/knob/index.mjs +1 -1
- package/knob/index.mjs.map +1 -1
- package/megamenu/index.d.ts +2 -2
- package/message/Message.vue +16 -7
- package/message/index.d.ts +2 -2
- package/message/index.mjs +35 -13
- package/message/index.mjs.map +1 -1
- package/multiselect/MultiSelect.vue +5 -1
- package/multiselect/index.d.ts +3 -3
- package/multiselect/index.mjs +4 -1
- package/multiselect/index.mjs.map +1 -1
- package/organizationchart/index.d.ts +2 -2
- package/overlaybadge/index.d.ts +1 -1
- package/package.json +3 -3
- package/panel/Panel.vue +29 -22
- package/panel/index.d.ts +22 -2
- package/panel/index.mjs +55 -31
- package/panel/index.mjs.map +1 -1
- package/password/index.d.ts +2 -2
- package/popover/Popover.vue +2 -2
- package/popover/index.mjs +2 -2
- package/popover/index.mjs.map +1 -1
- package/progressbar/ProgressBar.vue +11 -4
- package/progressbar/index.mjs +24 -6
- package/progressbar/index.mjs.map +1 -1
- package/radiobutton/RadioButton.vue +13 -3
- package/radiobutton/index.d.ts +3 -3
- package/radiobutton/index.mjs +24 -4
- package/radiobutton/index.mjs.map +1 -1
- package/rating/Rating.vue +19 -2
- package/rating/index.mjs +28 -7
- package/rating/index.mjs.map +1 -1
- package/scrolltop/index.d.ts +2 -2
- package/select/Select.vue +8 -4
- package/select/index.d.ts +2 -2
- package/select/index.mjs +9 -5
- package/select/index.mjs.map +1 -1
- package/selectbutton/SelectButton.vue +26 -9
- package/selectbutton/index.d.ts +2 -2
- package/selectbutton/index.mjs +30 -10
- package/selectbutton/index.mjs.map +1 -1
- package/skeleton/Skeleton.vue +7 -1
- package/skeleton/index.d.ts +3 -3
- package/skeleton/index.mjs +12 -1
- package/skeleton/index.mjs.map +1 -1
- package/slider/Slider.vue +11 -2
- package/slider/index.d.ts +2 -2
- package/slider/index.mjs +27 -8
- package/slider/index.mjs.map +1 -1
- package/speeddial/index.d.ts +5 -5
- package/splitbutton/index.d.ts +1 -1
- package/splitter/index.d.ts +3 -3
- package/stepper/index.d.ts +4 -0
- package/tab/Tab.vue +8 -2
- package/tab/index.mjs +9 -1
- package/tab/index.mjs.map +1 -1
- package/tablist/TabList.vue +10 -2
- package/tablist/index.mjs +20 -8
- package/tablist/index.mjs.map +1 -1
- package/tag/Tag.vue +11 -2
- package/tag/index.mjs +17 -3
- package/tag/index.mjs.map +1 -1
- package/textarea/Textarea.vue +10 -1
- package/textarea/index.d.ts +3 -3
- package/textarea/index.mjs +14 -1
- package/textarea/index.mjs.map +1 -1
- package/timeline/Timeline.vue +16 -7
- package/timeline/index.d.ts +3 -3
- package/timeline/index.mjs +42 -11
- package/timeline/index.mjs.map +1 -1
- package/toast/Toast.vue +10 -1
- package/toast/ToastMessage.vue +29 -19
- package/toast/index.d.ts +2 -2
- package/toast/index.mjs +77 -38
- package/toast/index.mjs.map +1 -1
- package/togglebutton/ToggleButton.vue +10 -1
- package/togglebutton/index.d.ts +3 -3
- package/togglebutton/index.mjs +19 -4
- package/togglebutton/index.mjs.map +1 -1
- package/toggleswitch/ToggleSwitch.vue +11 -3
- package/toggleswitch/index.mjs +20 -5
- package/toggleswitch/index.mjs.map +1 -1
- package/tooltip/index.mjs +0 -6
- package/tooltip/index.mjs.map +1 -1
- package/tree/index.d.ts +3 -3
- package/treeselect/index.d.ts +6 -6
- package/treetable/index.d.ts +7 -7
- package/treetable/style/index.mjs +2 -3
- package/treetable/style/index.mjs.map +1 -1
- package/umd/primevue.min.js +1 -1
- package/virtualscroller/index.d.ts +2 -2
- 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=13b90e0a&lang.js","../../src/datatable/BodyRow.vue","../../src/datatable/BodyRow.vue?vue&type=template&id=108a5aa6&lang.js","../../src/datatable/TableBody.vue","../../src/datatable/TableBody.vue?vue&type=template&id=232de317&lang.js","../../src/datatable/FooterCell.vue","../../src/datatable/FooterCell.vue?vue&type=template&id=dcaeafd8&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=6c9ca502&lang.js","../../src/datatable/HeaderCheckbox.vue","../../src/datatable/HeaderCheckbox.vue?vue&type=template&id=b2aea9ee&lang.js","../../src/datatable/FilterHeaderCell.vue","../../src/datatable/FilterHeaderCell.vue?vue&type=template&id=1923dfa4&lang.js","../../src/datatable/HeaderCell.vue","../../src/datatable/HeaderCell.vue?vue&type=template&id=11cfc911&lang.js","../../src/datatable/TableHeader.vue","../../src/datatable/TableHeader.vue?vue&type=template&id=72e7af7f&lang.js","../../src/datatable/DataTable.vue","../../src/datatable/DataTable.vue?vue&type=template&id=a46df148&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 editCompleteTimeout: 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 this.selfClick = this.$el && this.$el.contains(event.target);\n\n if (this.editCompleteTimeout) {\n clearTimeout(this.editCompleteTimeout);\n }\n\n if (!this.selfClick) {\n this.editCompleteTimeout = setTimeout(() => {\n this.completeEdit(event, 'outside');\n }, 1);\n }\n };\n\n document.addEventListener('mousedown', this.documentEditListener);\n }\n },\n unbindDocumentEditListener() {\n if (this.documentEditListener) {\n document.removeEventListener('mousedown', this.documentEditListener);\n this.documentEditListener = null;\n this.selfClick = false;\n\n if (this.editCompleteTimeout) {\n clearTimeout(this.editCompleteTimeout);\n this.editCompleteTimeout = null;\n }\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 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 this.selfClick = this.$el && this.$el.contains(e.target);\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 async moveToPreviousCell(event) {\n let currentCell = this.findCell(event.target);\n let targetCell = this.findPreviousEditableColumn(currentCell);\n\n if (targetCell) {\n await this.$nextTick();\n invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n },\n async moveToNextCell(event) {\n let currentCell = this.findCell(event.target);\n let targetCell = this.findNextEditableColumn(currentCell);\n\n if (targetCell) {\n await this.$nextTick();\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['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n }\n },\n 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 editCompleteTimeout: 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 this.selfClick = this.$el && this.$el.contains(event.target);\n\n if (this.editCompleteTimeout) {\n clearTimeout(this.editCompleteTimeout);\n }\n\n if (!this.selfClick) {\n this.editCompleteTimeout = setTimeout(() => {\n this.completeEdit(event, 'outside');\n }, 1);\n }\n };\n\n document.addEventListener('mousedown', this.documentEditListener);\n }\n },\n unbindDocumentEditListener() {\n if (this.documentEditListener) {\n document.removeEventListener('mousedown', this.documentEditListener);\n this.documentEditListener = null;\n this.selfClick = false;\n\n if (this.editCompleteTimeout) {\n clearTimeout(this.editCompleteTimeout);\n this.editCompleteTimeout = null;\n }\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 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 this.selfClick = this.$el && this.$el.contains(e.target);\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 async moveToPreviousCell(event) {\n let currentCell = this.findCell(event.target);\n let targetCell = this.findPreviousEditableColumn(currentCell);\n\n if (targetCell) {\n await this.$nextTick();\n invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n },\n async moveToNextCell(event) {\n let currentCell = this.findCell(event.target);\n let targetCell = this.findNextEditableColumn(currentCell);\n\n if (targetCell) {\n await this.$nextTick();\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['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n }\n },\n 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, '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, '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=\"$id\"\n :nameAttributeSelector=\"$attrSelector\"\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 { getOuterHeight } from '@primeuix/utils/dom';\nimport { resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\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 },\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=\"$id\"\n :nameAttributeSelector=\"$attrSelector\"\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 { getOuterHeight } from '@primeuix/utils/dom';\nimport { resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\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 },\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['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n }\n }\n },\n computed: {\n containerClass() {\n return [this.columnProp('footerClass'), this.columnProp('class'), this.cx('footerCell')];\n },\n containerStyle() {\n let bodyStyle = this.columnProp('footerStyle');\n let columnStyle = this.columnProp('style');\n\n return this.columnProp('frozen') ? [columnStyle, bodyStyle, this.styleObject] : [columnStyle, bodyStyle];\n }\n }\n};\n</script>\n","<template>\n <td :style=\"containerStyle\" :class=\"containerClass\" role=\"cell\" :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['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n }\n }\n },\n computed: {\n containerClass() {\n return [this.columnProp('footerClass'), this.columnProp('class'), this.cx('footerCell')];\n },\n containerStyle() {\n let bodyStyle = this.columnProp('footerStyle');\n let columnStyle = this.columnProp('style');\n\n return this.columnProp('frozen') ? [columnStyle, bodyStyle, this.styleObject] : [columnStyle, bodyStyle];\n }\n }\n};\n</script>\n","<template>\n <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 || (hasFilter() ? 'FilterFillIcon' : '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 { absolutePosition, addStyle, focus, getAttribute, isTouchDevice } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { FilterOperator } from '@primevue/core/api';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport FilterIcon from '@primevue/icons/filter';\nimport FilterFillIcon from '@primevue/icons/filterfill';\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: false\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 overlayVisible: false,\n defaultMatchMode: null,\n defaultOperator: null\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 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, true);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener, true);\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 FilterFillIcon,\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 || (hasFilter() ? 'FilterFillIcon' : '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 { absolutePosition, addStyle, focus, getAttribute, isTouchDevice } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { FilterOperator } from '@primevue/core/api';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport FilterIcon from '@primevue/icons/filter';\nimport FilterFillIcon from '@primevue/icons/filterfill';\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: false\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 overlayVisible: false,\n defaultMatchMode: null,\n defaultOperator: null\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 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, true);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener, true);\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 FilterFillIcon,\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 v-if=\"!columnProp('hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp('field'))\"\n :style=\"getFilterColumnHeaderStyle\"\n :class=\"getFilterColumnHeaderClass\"\n v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('headerCell') }\"\n :data-p-frozen-column=\"columnProp('frozen')\"\n >\n <DTHeaderCheckbox v-if=\"columnProp('selectionMode') === 'multiple'\" :checked=\"allRowsSelected\" :disabled=\"empty\" @change=\"$emit('checkbox-change', $event)\" :column=\"column\" :unstyled=\"unstyled\" :pt=\"pt\" />\n <DTColumnFilter\n v-if=\"column.children && column.children.filter\"\n :field=\"columnProp('filterField') || columnProp('field')\"\n :type=\"columnProp('dataType')\"\n display=\"row\"\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 </th>\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';\nimport ColumnFilter from './ColumnFilter.vue';\nimport HeaderCheckbox from './HeaderCheckbox.vue';\n\nexport default {\n name: 'FilterHeaderCell',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['checkbox-change', 'filter-change', 'filter-apply', 'operator-change', 'matchmode-change', 'constraint-add', 'constraint-remove', 'apply-click'],\n props: {\n column: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: null\n },\n allRowsSelected: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n display: {\n type: String,\n default: 'row'\n },\n filters: {\n type: Object,\n default: null\n },\n filtersStore: {\n type: Object,\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 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 if (!this.column) return null;\n\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 }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let pos = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n pos = getOuterWidth(next) + parseFloat(next.style['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n }\n }\n },\n computed: {\n getFilterColumnHeaderClass() {\n return [this.cx('headerCell', { column: this.column }), this.columnProp('filterHeaderClass'), this.columnProp('class')];\n },\n getFilterColumnHeaderStyle() {\n return this.columnProp('frozen') ? [this.columnProp('filterHeaderStyle'), this.columnProp('style'), this.styleObject] : [this.columnProp('filterHeaderStyle'), this.columnProp('style')];\n }\n },\n components: {\n DTHeaderCheckbox: HeaderCheckbox,\n DTColumnFilter: ColumnFilter\n }\n};\n</script>\n","<template>\n <th\n v-if=\"!columnProp('hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp('field'))\"\n :style=\"getFilterColumnHeaderStyle\"\n :class=\"getFilterColumnHeaderClass\"\n v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('headerCell') }\"\n :data-p-frozen-column=\"columnProp('frozen')\"\n >\n <DTHeaderCheckbox v-if=\"columnProp('selectionMode') === 'multiple'\" :checked=\"allRowsSelected\" :disabled=\"empty\" @change=\"$emit('checkbox-change', $event)\" :column=\"column\" :unstyled=\"unstyled\" :pt=\"pt\" />\n <DTColumnFilter\n v-if=\"column.children && column.children.filter\"\n :field=\"columnProp('filterField') || columnProp('field')\"\n :type=\"columnProp('dataType')\"\n display=\"row\"\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 </th>\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';\nimport ColumnFilter from './ColumnFilter.vue';\nimport HeaderCheckbox from './HeaderCheckbox.vue';\n\nexport default {\n name: 'FilterHeaderCell',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['checkbox-change', 'filter-change', 'filter-apply', 'operator-change', 'matchmode-change', 'constraint-add', 'constraint-remove', 'apply-click'],\n props: {\n column: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: null\n },\n allRowsSelected: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n display: {\n type: String,\n default: 'row'\n },\n filters: {\n type: Object,\n default: null\n },\n filtersStore: {\n type: Object,\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 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 if (!this.column) return null;\n\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 }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let pos = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n pos = getOuterWidth(next) + parseFloat(next.style['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n }\n }\n },\n computed: {\n getFilterColumnHeaderClass() {\n return [this.cx('headerCell', { column: this.column }), this.columnProp('filterHeaderClass'), this.columnProp('class')];\n },\n getFilterColumnHeaderStyle() {\n return this.columnProp('frozen') ? [this.columnProp('filterHeaderStyle'), this.columnProp('style'), this.styleObject] : [this.columnProp('filterHeaderStyle'), this.columnProp('style')];\n }\n },\n components: {\n DTHeaderCheckbox: HeaderCheckbox,\n DTColumnFilter: ColumnFilter\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['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n\n let filterRow = this.$el.parentElement.nextElementSibling;\n\n if (filterRow) {\n let index = getIndex(this.$el);\n\n if (filterRow.children[index]) {\n filterRow.children[index].style['inset-inline-start'] = this.styleObject['inset-inline-start'];\n filterRow.children[index].style['inset-inline-end'] = this.styleObject['inset-inline-end'];\n }\n }\n }\n },\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['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n\n let filterRow = this.$el.parentElement.nextElementSibling;\n\n if (filterRow) {\n let index = getIndex(this.$el);\n\n if (filterRow.children[index]) {\n filterRow.children[index].style['inset-inline-start'] = this.styleObject['inset-inline-start'];\n filterRow.children[index].style['inset-inline-end'] = this.styleObject['inset-inline-end'];\n }\n }\n }\n },\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 <DTFilterHeaderCell\n v-if=\"!columnProp(col, 'hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp(col, 'field'))\"\n :column=\"col\"\n :index=\"i\"\n :allRowsSelected=\"allRowsSelected\"\n :empty=\"empty\"\n display=\"row\"\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 @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 @change=\"$emit('checkbox-change', $event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\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 FilterHeaderCell from './FilterHeaderCell.vue';\nimport HeaderCell from './HeaderCell.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 DTFilterHeaderCell: FilterHeaderCell\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 <DTFilterHeaderCell\n v-if=\"!columnProp(col, 'hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp(col, 'field'))\"\n :column=\"col\"\n :index=\"i\"\n :allRowsSelected=\"allRowsSelected\"\n :empty=\"empty\"\n display=\"row\"\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 @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 @change=\"$emit('checkbox-change', $event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\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 FilterHeaderCell from './FilterHeaderCell.vue';\nimport HeaderCell from './HeaderCell.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 DTFilterHeaderCell: FilterHeaderCell\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.$emit('value-change', filteredValue);\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 if (targetRow) 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 const isCopyShortcut = event.code === 'KeyC' && metaKey;\n\n if (!isCopyShortcut) 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.d_first;\n rangeEnd -= this.d_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.$emit('value-change', filteredValue);\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 if (targetRow) 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 const isCopyShortcut = event.code === 'KeyC' && metaKey;\n\n if (!isCopyShortcut) 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.d_first;\n rangeEnd -= this.d_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","_regeneratorRuntime","e","t","r","prototype","n","hasOwnProperty","o","defineProperty","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","asyncGeneratorStep","_asyncToGenerator","arguments","_next","_throw","rowData","frozenRow","rowIndex","isRowExpanded","selected","editing","editingMeta","virtualScrollerContentProps","ariaControls","documentEditListener","selfClick","overlayEventListener","editCompleteTimeout","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","contains","target","clearTimeout","completeEdit","document","addEventListener","unbindDocumentEditListener","removeEventListener","switchCellToViewMode","onClick","_this3","on","completeEvent","newData","editingRowData","defaultPrevented","preventDefault","onKeyDown","code","shiftKey","moveToPreviousCell","moveToNextCell","_this4","_callee","currentCell","targetCell","_callee$","_context","findCell","findPreviousEditableColumn","$nextTick","invokeElementMethod","_this5","_callee2","_callee2$","_context2","findNextEditableColumn","element","cell","getAttribute","parentElement","prevCell","previousElementSibling","previousRow","lastElementChild","nextCell","nextElementSibling","nextRow","firstElementChild","onRowEditInit","onRowEditSave","onRowEditCancel","editorInitCallback","editorSaveCallback","editorCancelCallback","align","pos","getNextElementSibling","getOuterWidth","parseFloat","insetInlineEnd","getPreviousElementSibling","insetInlineStart","getVirtualScrollerProp","option","containerClass","cx","containerStyle","bodyStyle","columnStyle","loadingOptions","getLoaderOptions","cellIndex","cellFirst","cellLast","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","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","equals","col","getBodyRowPTOptions","datatable","selectable","isSelected","shouldRenderBodyCell","isHidden","isGrouped","prevRowData","currentRowFieldData","previousRowFieldData","calculateRowGroupSize","nextRowFieldData","groupRowSpan","nextRowData","isArray","indexOf","findIndexInSelection","findIndex","collection","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","rowClasses","rowStyleClass","columnSelectionMode","rowClassValue","_iterator","_createForOfIteratorHelper","_step","_selectionMode","isNotEmpty","err","rowTabindex","isRowEditing","isRowGroupExpanded","groupFieldValue","isSelectedWithContextMenu","shouldRenderRowGroupHeader","shouldRenderRowGroupFooter","columnsLength","hiddenColLength","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","DTBodyRow","BodyRow","ref","_component_DTBodyRow","$id","$attrSelector","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","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","left","absolutePosition","bindOutsideClickListener","bindScrollListener","bindResizeListener","isOutsideClicked","onOverlayAfterEnter","_this$overlay","$focustrap","autoFocus","onOverlayLeave","onOverlayAfterLeave","unbindOutsideClickListener","unbindResizeListener","unbindScrollListener","overlayRef","isTargetClicked","isSameNode","outsideClickListener","scrollHandler","ConnectedOverlayScrollHandler","resizeListener","isTouchDevice","window","overlayId","matchModes","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","FilterFillIcon","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","allRowsSelected","getFilterColumnHeaderClass","getFilterColumnHeaderStyle","DTHeaderCheckbox","HeaderCheckbox","DTColumnFilter","ColumnFilter","_component_DTHeaderCheckbox","_component_DTColumnFilter","filterheader","filterfooter","filterclear","filterapply","filtericon","filteraddicon","filterremoveicon","filterclearicon","onFilterChange","onFilterApply","onMatchmodeChange","onConstraintAdd","onConstraintRemove","onApplyClick","groupRowSortField","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","header","sorticon","_component_Badge","headercheckboxicon","d_headerRows","d_headerColumns","getHeaderRows","_this$d_headerRows","getHeaderColumns","_this$d_headerColumns","ptmTHeadOptions","DTHeaderCell","HeaderCell","DTFilterHeaderCell","FilterHeaderCell","_component_DTHeaderCell","onColumnClick","onColumnMousedown","onColumnDragstart","onColumnDragover","onColumnDragleave","onColumnDrop","onColumnResizestart","_component_DTFilterHeaderCell","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","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","filterField","filterMeta","_iterator2","_step2","executeLocalFilter","globalFilterField","FilterService","FilterMatchMode","CONTAINS","matches","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","isCopyShortcut","findNextSelectableRow","focusRowChange","nextRowIndex","prevRow","findPrevSelectableRow","prevRowIndex","firstRow","findFirstSelectableRow","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","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","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","_this$virtualScroller","totalRecordsLength","paginatorTop","paginatorBottom","_this13","every","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=0da43375&lang.js","../../src/datatable/BodyRow.vue","../../src/datatable/BodyRow.vue?vue&type=template&id=fb011038&lang.js","../../src/datatable/TableBody.vue","../../src/datatable/TableBody.vue?vue&type=template&id=232de317&lang.js","../../src/datatable/FooterCell.vue","../../src/datatable/FooterCell.vue?vue&type=template&id=dcaeafd8&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=6c9ca502&lang.js","../../src/datatable/HeaderCheckbox.vue","../../src/datatable/HeaderCheckbox.vue?vue&type=template&id=b2aea9ee&lang.js","../../src/datatable/FilterHeaderCell.vue","../../src/datatable/FilterHeaderCell.vue?vue&type=template&id=1923dfa4&lang.js","../../src/datatable/HeaderCell.vue","../../src/datatable/HeaderCell.vue?vue&type=template&id=11cfc911&lang.js","../../src/datatable/TableHeader.vue","../../src/datatable/TableHeader.vue?vue&type=template&id=72e7af7f&lang.js","../../src/datatable/DataTable.vue","../../src/datatable/DataTable.vue?vue&type=template&id=a46df148&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.rowtoggleicon\" :is=\"column.children.rowtoggleicon\" :class=\"cx('rowToggleIcon')\" :rowExpanded=\"isRowExpanded\" />\n <!-- TODO: Deprecated since v4.0-->\n <component v-else-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 editCompleteTimeout: 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 this.selfClick = this.$el && this.$el.contains(event.target);\n\n if (this.editCompleteTimeout) {\n clearTimeout(this.editCompleteTimeout);\n }\n\n if (!this.selfClick) {\n this.editCompleteTimeout = setTimeout(() => {\n this.completeEdit(event, 'outside');\n }, 1);\n }\n };\n\n document.addEventListener('mousedown', this.documentEditListener);\n }\n },\n unbindDocumentEditListener() {\n if (this.documentEditListener) {\n document.removeEventListener('mousedown', this.documentEditListener);\n this.documentEditListener = null;\n this.selfClick = false;\n\n if (this.editCompleteTimeout) {\n clearTimeout(this.editCompleteTimeout);\n this.editCompleteTimeout = null;\n }\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 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 this.selfClick = this.$el && this.$el.contains(e.target);\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 async moveToPreviousCell(event) {\n let currentCell = this.findCell(event.target);\n let targetCell = this.findPreviousEditableColumn(currentCell);\n\n if (targetCell) {\n await this.$nextTick();\n invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n },\n async moveToNextCell(event) {\n let currentCell = this.findCell(event.target);\n let targetCell = this.findNextEditableColumn(currentCell);\n\n if (targetCell) {\n await this.$nextTick();\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['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n }\n },\n 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.rowtoggleicon\" :is=\"column.children.rowtoggleicon\" :class=\"cx('rowToggleIcon')\" :rowExpanded=\"isRowExpanded\" />\n <!-- TODO: Deprecated since v4.0-->\n <component v-else-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 editCompleteTimeout: 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 this.selfClick = this.$el && this.$el.contains(event.target);\n\n if (this.editCompleteTimeout) {\n clearTimeout(this.editCompleteTimeout);\n }\n\n if (!this.selfClick) {\n this.editCompleteTimeout = setTimeout(() => {\n this.completeEdit(event, 'outside');\n }, 1);\n }\n };\n\n document.addEventListener('mousedown', this.documentEditListener);\n }\n },\n unbindDocumentEditListener() {\n if (this.documentEditListener) {\n document.removeEventListener('mousedown', this.documentEditListener);\n this.documentEditListener = null;\n this.selfClick = false;\n\n if (this.editCompleteTimeout) {\n clearTimeout(this.editCompleteTimeout);\n this.editCompleteTimeout = null;\n }\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 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 this.selfClick = this.$el && this.$el.contains(e.target);\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 async moveToPreviousCell(event) {\n let currentCell = this.findCell(event.target);\n let targetCell = this.findPreviousEditableColumn(currentCell);\n\n if (targetCell) {\n await this.$nextTick();\n invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n },\n async moveToNextCell(event) {\n let currentCell = this.findCell(event.target);\n let targetCell = this.findNextEditableColumn(currentCell);\n\n if (targetCell) {\n await this.$nextTick();\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['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n }\n },\n 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 if (this.d_rowExpanded) groupRowSpan++;\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, '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 if (this.d_rowExpanded) groupRowSpan++;\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, '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=\"$id\"\n :nameAttributeSelector=\"$attrSelector\"\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 { getOuterHeight } from '@primeuix/utils/dom';\nimport { resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\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 },\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=\"$id\"\n :nameAttributeSelector=\"$attrSelector\"\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 { getOuterHeight } from '@primeuix/utils/dom';\nimport { resolveFieldData } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\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 },\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['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n }\n }\n },\n computed: {\n containerClass() {\n return [this.columnProp('footerClass'), this.columnProp('class'), this.cx('footerCell')];\n },\n containerStyle() {\n let bodyStyle = this.columnProp('footerStyle');\n let columnStyle = this.columnProp('style');\n\n return this.columnProp('frozen') ? [columnStyle, bodyStyle, this.styleObject] : [columnStyle, bodyStyle];\n }\n }\n};\n</script>\n","<template>\n <td :style=\"containerStyle\" :class=\"containerClass\" role=\"cell\" :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['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n }\n }\n },\n computed: {\n containerClass() {\n return [this.columnProp('footerClass'), this.columnProp('class'), this.cx('footerCell')];\n },\n containerStyle() {\n let bodyStyle = this.columnProp('footerStyle');\n let columnStyle = this.columnProp('style');\n\n return this.columnProp('frozen') ? [columnStyle, bodyStyle, this.styleObject] : [columnStyle, bodyStyle];\n }\n }\n};\n</script>\n","<template>\n <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 || (hasFilter() ? 'FilterFillIcon' : '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 { absolutePosition, addStyle, focus, getAttribute, isTouchDevice } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { FilterOperator } from '@primevue/core/api';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport FilterIcon from '@primevue/icons/filter';\nimport FilterFillIcon from '@primevue/icons/filterfill';\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: false\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 overlayVisible: false,\n defaultMatchMode: null,\n defaultOperator: null\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 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, true);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener, true);\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 FilterFillIcon,\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 || (hasFilter() ? 'FilterFillIcon' : '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 { absolutePosition, addStyle, focus, getAttribute, isTouchDevice } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { FilterOperator } from '@primevue/core/api';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport FilterIcon from '@primevue/icons/filter';\nimport FilterFillIcon from '@primevue/icons/filterfill';\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: false\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 overlayVisible: false,\n defaultMatchMode: null,\n defaultOperator: null\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 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, true);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener, true);\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 FilterFillIcon,\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 v-if=\"!columnProp('hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp('field'))\"\n :style=\"getFilterColumnHeaderStyle\"\n :class=\"getFilterColumnHeaderClass\"\n v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('headerCell') }\"\n :data-p-frozen-column=\"columnProp('frozen')\"\n >\n <DTHeaderCheckbox v-if=\"columnProp('selectionMode') === 'multiple'\" :checked=\"allRowsSelected\" :disabled=\"empty\" @change=\"$emit('checkbox-change', $event)\" :column=\"column\" :unstyled=\"unstyled\" :pt=\"pt\" />\n <DTColumnFilter\n v-if=\"column.children && column.children.filter\"\n :field=\"columnProp('filterField') || columnProp('field')\"\n :type=\"columnProp('dataType')\"\n display=\"row\"\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 </th>\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';\nimport ColumnFilter from './ColumnFilter.vue';\nimport HeaderCheckbox from './HeaderCheckbox.vue';\n\nexport default {\n name: 'FilterHeaderCell',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['checkbox-change', 'filter-change', 'filter-apply', 'operator-change', 'matchmode-change', 'constraint-add', 'constraint-remove', 'apply-click'],\n props: {\n column: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: null\n },\n allRowsSelected: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n display: {\n type: String,\n default: 'row'\n },\n filters: {\n type: Object,\n default: null\n },\n filtersStore: {\n type: Object,\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 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 if (!this.column) return null;\n\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 }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let pos = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n pos = getOuterWidth(next) + parseFloat(next.style['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n }\n }\n },\n computed: {\n getFilterColumnHeaderClass() {\n return [this.cx('headerCell', { column: this.column }), this.columnProp('filterHeaderClass'), this.columnProp('class')];\n },\n getFilterColumnHeaderStyle() {\n return this.columnProp('frozen') ? [this.columnProp('filterHeaderStyle'), this.columnProp('style'), this.styleObject] : [this.columnProp('filterHeaderStyle'), this.columnProp('style')];\n }\n },\n components: {\n DTHeaderCheckbox: HeaderCheckbox,\n DTColumnFilter: ColumnFilter\n }\n};\n</script>\n","<template>\n <th\n v-if=\"!columnProp('hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp('field'))\"\n :style=\"getFilterColumnHeaderStyle\"\n :class=\"getFilterColumnHeaderClass\"\n v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('headerCell') }\"\n :data-p-frozen-column=\"columnProp('frozen')\"\n >\n <DTHeaderCheckbox v-if=\"columnProp('selectionMode') === 'multiple'\" :checked=\"allRowsSelected\" :disabled=\"empty\" @change=\"$emit('checkbox-change', $event)\" :column=\"column\" :unstyled=\"unstyled\" :pt=\"pt\" />\n <DTColumnFilter\n v-if=\"column.children && column.children.filter\"\n :field=\"columnProp('filterField') || columnProp('field')\"\n :type=\"columnProp('dataType')\"\n display=\"row\"\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 </th>\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';\nimport ColumnFilter from './ColumnFilter.vue';\nimport HeaderCheckbox from './HeaderCheckbox.vue';\n\nexport default {\n name: 'FilterHeaderCell',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['checkbox-change', 'filter-change', 'filter-apply', 'operator-change', 'matchmode-change', 'constraint-add', 'constraint-remove', 'apply-click'],\n props: {\n column: {\n type: Object,\n default: null\n },\n index: {\n type: Number,\n default: null\n },\n allRowsSelected: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n display: {\n type: String,\n default: 'row'\n },\n filters: {\n type: Object,\n default: null\n },\n filtersStore: {\n type: Object,\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 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 if (!this.column) return null;\n\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 }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo\n },\n updateStickyPosition() {\n if (this.columnProp('frozen')) {\n let align = this.columnProp('alignFrozen');\n\n if (align === 'right') {\n let pos = 0;\n let next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n pos = getOuterWidth(next) + parseFloat(next.style['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n }\n }\n },\n computed: {\n getFilterColumnHeaderClass() {\n return [this.cx('headerCell', { column: this.column }), this.columnProp('filterHeaderClass'), this.columnProp('class')];\n },\n getFilterColumnHeaderStyle() {\n return this.columnProp('frozen') ? [this.columnProp('filterHeaderStyle'), this.columnProp('style'), this.styleObject] : [this.columnProp('filterHeaderStyle'), this.columnProp('style')];\n }\n },\n components: {\n DTHeaderCheckbox: HeaderCheckbox,\n DTColumnFilter: ColumnFilter\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['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n\n let filterRow = this.$el.parentElement.nextElementSibling;\n\n if (filterRow) {\n let index = getIndex(this.$el);\n\n if (filterRow.children[index]) {\n filterRow.children[index].style['inset-inline-start'] = this.styleObject['inset-inline-start'];\n filterRow.children[index].style['inset-inline-end'] = this.styleObject['inset-inline-end'];\n }\n }\n }\n },\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['inset-inline-end'] || 0);\n }\n\n this.styleObject.insetInlineEnd = pos + 'px';\n } else {\n let pos = 0;\n let prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n pos = getOuterWidth(prev) + parseFloat(prev.style['inset-inline-start'] || 0);\n }\n\n this.styleObject.insetInlineStart = pos + 'px';\n }\n\n let filterRow = this.$el.parentElement.nextElementSibling;\n\n if (filterRow) {\n let index = getIndex(this.$el);\n\n if (filterRow.children[index]) {\n filterRow.children[index].style['inset-inline-start'] = this.styleObject['inset-inline-start'];\n filterRow.children[index].style['inset-inline-end'] = this.styleObject['inset-inline-end'];\n }\n }\n }\n },\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 <DTFilterHeaderCell\n v-if=\"!columnProp(col, 'hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp(col, 'field'))\"\n :column=\"col\"\n :index=\"i\"\n :allRowsSelected=\"allRowsSelected\"\n :empty=\"empty\"\n display=\"row\"\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 @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 @change=\"$emit('checkbox-change', $event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\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 FilterHeaderCell from './FilterHeaderCell.vue';\nimport HeaderCell from './HeaderCell.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 DTFilterHeaderCell: FilterHeaderCell\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 <DTFilterHeaderCell\n v-if=\"!columnProp(col, 'hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp(col, 'field'))\"\n :column=\"col\"\n :index=\"i\"\n :allRowsSelected=\"allRowsSelected\"\n :empty=\"empty\"\n display=\"row\"\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 @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 @change=\"$emit('checkbox-change', $event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\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 FilterHeaderCell from './FilterHeaderCell.vue';\nimport HeaderCell from './HeaderCell.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 DTFilterHeaderCell: FilterHeaderCell\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.$emit('value-change', filteredValue);\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 if (targetRow) 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 const isCopyShortcut = event.code === 'KeyC' && metaKey;\n\n if (!isCopyShortcut) 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.d_first;\n rangeEnd -= this.d_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.$emit('value-change', filteredValue);\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 if (targetRow) 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 const isCopyShortcut = event.code === 'KeyC' && metaKey;\n\n if (!isCopyShortcut) 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.d_first;\n rangeEnd -= this.d_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","_regeneratorRuntime","e","t","r","prototype","n","hasOwnProperty","o","defineProperty","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","asyncGeneratorStep","_asyncToGenerator","arguments","_next","_throw","rowData","frozenRow","rowIndex","isRowExpanded","selected","editing","editingMeta","virtualScrollerContentProps","ariaControls","documentEditListener","selfClick","overlayEventListener","editCompleteTimeout","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","contains","target","clearTimeout","completeEdit","document","addEventListener","unbindDocumentEditListener","removeEventListener","switchCellToViewMode","onClick","_this3","on","completeEvent","newData","editingRowData","defaultPrevented","preventDefault","onKeyDown","code","shiftKey","moveToPreviousCell","moveToNextCell","_this4","_callee","currentCell","targetCell","_callee$","_context","findCell","findPreviousEditableColumn","$nextTick","invokeElementMethod","_this5","_callee2","_callee2$","_context2","findNextEditableColumn","element","cell","getAttribute","parentElement","prevCell","previousElementSibling","previousRow","lastElementChild","nextCell","nextElementSibling","nextRow","firstElementChild","onRowEditInit","onRowEditSave","onRowEditCancel","editorInitCallback","editorSaveCallback","editorCancelCallback","align","pos","getNextElementSibling","getOuterWidth","parseFloat","insetInlineEnd","getPreviousElementSibling","insetInlineStart","getVirtualScrollerProp","option","containerClass","cx","containerStyle","bodyStyle","columnStyle","loadingOptions","getLoaderOptions","cellIndex","cellFirst","cellLast","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","onKeydown","body","rowTogglerCallback","_Fragment","_component_DTRadioButton","_cache","$event","_component_DTCheckbox","rowcheckboxicon","rowreordericon","_component_BarsIcon","_withDirectives","rowtoggleicon","rowExpanded","rowtogglericon","_component_ChevronDownIcon","_component_ChevronRightIcon","_component_Button","roweditoriniticon","roweditorsaveicon","roweditorcancelicon","columns","empty","selectionKeys","rowGroupHeaderStyle","editingRowKeys","templates","isVirtualScrollerDisabled","expandedRowId","nameAttributeSelector","d_rowExpanded","deep","immediate","handler","some","equals","col","getBodyRowPTOptions","datatable","selectable","isSelected","shouldRenderBodyCell","isHidden","isGrouped","prevRowData","currentRowFieldData","previousRowFieldData","calculateRowGroupSize","nextRowFieldData","groupRowSpan","nextRowData","isArray","indexOf","findIndexInSelection","findIndex","collection","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","rowClasses","rowStyleClass","columnSelectionMode","rowClassValue","_iterator","_createForOfIteratorHelper","_step","_selectionMode","isNotEmpty","err","rowTabindex","isRowEditing","isRowGroupExpanded","groupFieldValue","isSelectedWithContextMenu","shouldRenderRowGroupHeader","shouldRenderRowGroupFooter","columnsLength","hiddenColLength","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","DTBodyRow","BodyRow","ref","_component_DTBodyRow","$id","$attrSelector","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","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","left","absolutePosition","bindOutsideClickListener","bindScrollListener","bindResizeListener","isOutsideClicked","onOverlayAfterEnter","_this$overlay","$focustrap","autoFocus","onOverlayLeave","onOverlayAfterLeave","unbindOutsideClickListener","unbindResizeListener","unbindScrollListener","overlayRef","isTargetClicked","isSameNode","outsideClickListener","scrollHandler","ConnectedOverlayScrollHandler","resizeListener","isTouchDevice","window","overlayId","matchModes","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","FilterFillIcon","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","allRowsSelected","getFilterColumnHeaderClass","getFilterColumnHeaderStyle","DTHeaderCheckbox","HeaderCheckbox","DTColumnFilter","ColumnFilter","_component_DTHeaderCheckbox","_component_DTColumnFilter","filterheader","filterfooter","filterclear","filterapply","filtericon","filteraddicon","filterremoveicon","filterclearicon","onFilterChange","onFilterApply","onMatchmodeChange","onConstraintAdd","onConstraintRemove","onApplyClick","groupRowSortField","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","header","sorticon","_component_Badge","headercheckboxicon","d_headerRows","d_headerColumns","getHeaderRows","_this$d_headerRows","getHeaderColumns","_this$d_headerColumns","ptmTHeadOptions","DTHeaderCell","HeaderCell","DTFilterHeaderCell","FilterHeaderCell","_component_DTHeaderCell","onColumnClick","onColumnMousedown","onColumnDragstart","onColumnDragover","onColumnDragleave","onColumnDrop","onColumnResizestart","_component_DTFilterHeaderCell","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","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","filterField","filterMeta","_iterator2","_step2","executeLocalFilter","globalFilterField","FilterService","FilterMatchMode","CONTAINS","matches","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","isCopyShortcut","findNextSelectableRow","focusRowChange","nextRowIndex","prevRow","findPrevSelectableRow","prevRowIndex","firstRow","findFirstSelectableRow","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","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","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","_this$virtualScroller","totalRecordsLength","paginatorTop","paginatorBottom","_this13","every","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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"}
|