primevuelab 4.0.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +21 -0
- package/README.md +90 -0
- package/accordion/Accordion.d.ts +252 -0
- package/accordion/Accordion.vue +170 -0
- package/accordion/BaseAccordion.vue +51 -0
- package/accordion/accordion.mjs +268 -0
- package/accordion/accordion.mjs.map +1 -0
- package/accordion/package.json +11 -0
- package/accordion/style/AccordionStyle.d.ts +19 -0
- package/accordion/style/accordionstyle.mjs +17 -0
- package/accordion/style/accordionstyle.mjs.map +1 -0
- package/accordion/style/package.json +6 -0
- package/accordioncontent/AccordionContent.d.ts +149 -0
- package/accordioncontent/AccordionContent.vue +51 -0
- package/accordioncontent/BaseAccordionContent.vue +26 -0
- package/accordioncontent/accordioncontent.mjs +91 -0
- package/accordioncontent/accordioncontent.mjs.map +1 -0
- package/accordioncontent/package.json +11 -0
- package/accordioncontent/style/AccordionContentStyle.d.ts +23 -0
- package/accordioncontent/style/accordioncontentstyle.mjs +13 -0
- package/accordioncontent/style/accordioncontentstyle.mjs.map +1 -0
- package/accordioncontent/style/package.json +6 -0
- package/accordionheader/AccordionHeader.d.ts +149 -0
- package/accordionheader/AccordionHeader.vue +171 -0
- package/accordionheader/BaseAccordionHeader.vue +26 -0
- package/accordionheader/accordionheader.mjs +201 -0
- package/accordionheader/accordionheader.mjs.map +1 -0
- package/accordionheader/package.json +11 -0
- package/accordionheader/style/AccordionHeaderStyle.d.ts +23 -0
- package/accordionheader/style/accordionheaderstyle.mjs +13 -0
- package/accordionheader/style/accordionheaderstyle.mjs.map +1 -0
- package/accordionheader/style/package.json +6 -0
- package/accordionpanel/AccordionPanel.d.ts +147 -0
- package/accordionpanel/AccordionPanel.vue +40 -0
- package/accordionpanel/BaseAccordionPanel.vue +34 -0
- package/accordionpanel/accordionpanel.mjs +84 -0
- package/accordionpanel/accordionpanel.mjs.map +1 -0
- package/accordionpanel/package.json +11 -0
- package/accordionpanel/style/AccordionPanelStyle.d.ts +19 -0
- package/accordionpanel/style/accordionpanelstyle.mjs +19 -0
- package/accordionpanel/style/accordionpanelstyle.mjs.map +1 -0
- package/accordionpanel/style/package.json +6 -0
- package/accordiontab/AccordionTab.d.ts +236 -0
- package/accordiontab/AccordionTab.vue +16 -0
- package/accordiontab/BaseAccordionTab.vue +27 -0
- package/accordiontab/accordiontab.mjs +44 -0
- package/accordiontab/accordiontab.mjs.map +1 -0
- package/accordiontab/package.json +11 -0
- package/accordiontab/style/AccordionTabStyle.d.ts +15 -0
- package/accordiontab/style/accordiontabstyle.mjs +8 -0
- package/accordiontab/style/accordiontabstyle.mjs.map +1 -0
- package/accordiontab/style/package.json +6 -0
- package/animateonscroll/AnimateOnScroll.d.ts +87 -0
- package/animateonscroll/animateonscroll.mjs +130 -0
- package/animateonscroll/animateonscroll.mjs.map +1 -0
- package/animateonscroll/package.json +5 -0
- package/animateonscroll/style/AnimateOnScrollStyle.d.ts +14 -0
- package/animateonscroll/style/animateonscrollstyle.mjs +8 -0
- package/animateonscroll/style/animateonscrollstyle.mjs.map +1 -0
- package/animateonscroll/style/package.json +6 -0
- package/autocomplete/AutoComplete.d.ts +833 -0
- package/autocomplete/AutoComplete.vue +985 -0
- package/autocomplete/BaseAutoComplete.vue +191 -0
- package/autocomplete/autocomplete.mjs +1327 -0
- package/autocomplete/autocomplete.mjs.map +1 -0
- package/autocomplete/package.json +11 -0
- package/autocomplete/style/AutoCompleteStyle.d.ts +71 -0
- package/autocomplete/style/autocompletestyle.mjs +70 -0
- package/autocomplete/style/autocompletestyle.mjs.map +1 -0
- package/autocomplete/style/package.json +6 -0
- package/avatar/Avatar.d.ts +178 -0
- package/avatar/Avatar.vue +26 -0
- package/avatar/BaseAvatar.vue +46 -0
- package/avatar/avatar.mjs +90 -0
- package/avatar/avatar.mjs.map +1 -0
- package/avatar/package.json +11 -0
- package/avatar/style/AvatarStyle.d.ts +27 -0
- package/avatar/style/avatarstyle.mjs +27 -0
- package/avatar/style/avatarstyle.mjs.map +1 -0
- package/avatar/style/package.json +6 -0
- package/avatargroup/AvatarGroup.d.ts +128 -0
- package/avatargroup/AvatarGroup.vue +15 -0
- package/avatargroup/BaseAvatarGroup.vue +16 -0
- package/avatargroup/avatargroup.mjs +32 -0
- package/avatargroup/avatargroup.mjs.map +1 -0
- package/avatargroup/package.json +11 -0
- package/avatargroup/style/AvatarGroupStyle.d.ts +16 -0
- package/avatargroup/style/avatargroupstyle.mjs +12 -0
- package/avatargroup/style/avatargroupstyle.mjs.map +1 -0
- package/avatargroup/style/package.json +6 -0
- package/badge/Badge.d.ts +136 -0
- package/badge/Badge.vue +15 -0
- package/badge/BaseBadge.vue +30 -0
- package/badge/badge.mjs +48 -0
- package/badge/badge.mjs.map +1 -0
- package/badge/package.json +11 -0
- package/badge/style/BadgeStyle.d.ts +19 -0
- package/badge/style/badgestyle.mjs +34 -0
- package/badge/style/badgestyle.mjs.map +1 -0
- package/badge/style/package.json +6 -0
- package/badgedirective/BadgeDirective.d.ts +170 -0
- package/badgedirective/badgedirective.mjs +68 -0
- package/badgedirective/badgedirective.mjs.map +1 -0
- package/badgedirective/package.json +5 -0
- package/badgedirective/style/BadgeDirectiveStyle.d.ts +16 -0
- package/badgedirective/style/badgedirectivestyle.mjs +12 -0
- package/badgedirective/style/badgedirectivestyle.mjs.map +1 -0
- package/badgedirective/style/package.json +6 -0
- package/blockui/BaseBlockUI.vue +34 -0
- package/blockui/BlockUI.d.ts +176 -0
- package/blockui/BlockUI.vue +103 -0
- package/blockui/blockui.mjs +133 -0
- package/blockui/blockui.mjs.map +1 -0
- package/blockui/package.json +11 -0
- package/blockui/style/BlockUIStyle.d.ts +19 -0
- package/blockui/style/blockuistyle.mjs +17 -0
- package/blockui/style/blockuistyle.mjs.map +1 -0
- package/blockui/style/package.json +6 -0
- package/breadcrumb/BaseBreadcrumb.vue +26 -0
- package/breadcrumb/Breadcrumb.d.ts +241 -0
- package/breadcrumb/Breadcrumb.vue +31 -0
- package/breadcrumb/BreadcrumbItem.vue +87 -0
- package/breadcrumb/breadcrumb.mjs +176 -0
- package/breadcrumb/breadcrumb.mjs.map +1 -0
- package/breadcrumb/package.json +11 -0
- package/breadcrumb/style/BreadcrumbStyle.d.ts +47 -0
- package/breadcrumb/style/breadcrumbstyle.mjs +29 -0
- package/breadcrumb/style/breadcrumbstyle.mjs.map +1 -0
- package/breadcrumb/style/package.json +6 -0
- package/button/BaseButton.vue +86 -0
- package/button/Button.d.ts +259 -0
- package/button/Button.vue +57 -0
- package/button/button.mjs +172 -0
- package/button/button.mjs.map +1 -0
- package/button/package.json +11 -0
- package/button/style/ButtonStyle.d.ts +31 -0
- package/button/style/buttonstyle.mjs +36 -0
- package/button/style/buttonstyle.mjs.map +1 -0
- package/button/style/package.json +6 -0
- package/buttongroup/BaseButtonGroup.vue +16 -0
- package/buttongroup/ButtonGroup.d.ts +120 -0
- package/buttongroup/ButtonGroup.vue +15 -0
- package/buttongroup/buttongroup.mjs +33 -0
- package/buttongroup/buttongroup.mjs.map +1 -0
- package/buttongroup/package.json +11 -0
- package/buttongroup/style/ButtonGroupStyle.d.ts +19 -0
- package/buttongroup/style/buttongroupstyle.mjs +17 -0
- package/buttongroup/style/buttongroupstyle.mjs.map +1 -0
- package/buttongroup/style/package.json +6 -0
- package/calendar/Calendar.d.ts +127 -0
- package/calendar/Calendar.vue +11 -0
- package/calendar/calendar.mjs +12 -0
- package/calendar/calendar.mjs.map +1 -0
- package/calendar/package.json +11 -0
- package/calendar/style/CalendarStyle.d.ts +14 -0
- package/calendar/style/calendarstyle.mjs +8 -0
- package/calendar/style/calendarstyle.mjs.map +1 -0
- package/calendar/style/package.json +6 -0
- package/card/BaseCard.vue +16 -0
- package/card/Card.d.ts +168 -0
- package/card/Card.vue +33 -0
- package/card/card.mjs +51 -0
- package/card/card.mjs.map +1 -0
- package/card/package.json +11 -0
- package/card/style/CardStyle.d.ts +47 -0
- package/card/style/cardstyle.mjs +24 -0
- package/card/style/cardstyle.mjs.map +1 -0
- package/card/style/package.json +6 -0
- package/carousel/BaseCarousel.vue +71 -0
- package/carousel/Carousel.d.ts +403 -0
- package/carousel/Carousel.vue +653 -0
- package/carousel/carousel.mjs +730 -0
- package/carousel/carousel.mjs.map +1 -0
- package/carousel/package.json +11 -0
- package/carousel/style/CarouselStyle.d.ts +71 -0
- package/carousel/style/carouselstyle.mjs +70 -0
- package/carousel/style/carouselstyle.mjs.map +1 -0
- package/carousel/style/package.json +6 -0
- package/cascadeselect/BaseCascadeSelect.vue +144 -0
- package/cascadeselect/CascadeSelect.d.ts +567 -0
- package/cascadeselect/CascadeSelect.vue +784 -0
- package/cascadeselect/CascadeSelectSub.vue +176 -0
- package/cascadeselect/cascadeselect.mjs +1250 -0
- package/cascadeselect/cascadeselect.mjs.map +1 -0
- package/cascadeselect/package.json +11 -0
- package/cascadeselect/style/CascadeSelectStyle.d.ts +67 -0
- package/cascadeselect/style/cascadeselectstyle.mjs +66 -0
- package/cascadeselect/style/cascadeselectstyle.mjs.map +1 -0
- package/cascadeselect/style/package.json +6 -0
- package/chart/BaseChart.vue +34 -0
- package/chart/Chart.d.ts +211 -0
- package/chart/Chart.vue +97 -0
- package/chart/chart.mjs +153 -0
- package/chart/chart.mjs.map +1 -0
- package/chart/package.json +11 -0
- package/chart/style/ChartStyle.d.ts +19 -0
- package/chart/style/chartstyle.mjs +18 -0
- package/chart/style/chartstyle.mjs.map +1 -0
- package/chart/style/package.json +6 -0
- package/checkbox/BaseCheckbox.vue +81 -0
- package/checkbox/Checkbox.d.ts +283 -0
- package/checkbox/Checkbox.vue +102 -0
- package/checkbox/checkbox.mjs +208 -0
- package/checkbox/checkbox.mjs.map +1 -0
- package/checkbox/package.json +11 -0
- package/checkbox/style/CheckboxStyle.d.ts +31 -0
- package/checkbox/style/checkboxstyle.mjs +29 -0
- package/checkbox/style/checkboxstyle.mjs.map +1 -0
- package/checkbox/style/package.json +6 -0
- package/chip/BaseChip.vue +38 -0
- package/chip/Chip.d.ts +206 -0
- package/chip/Chip.vue +44 -0
- package/chip/chip.mjs +106 -0
- package/chip/chip.mjs.map +1 -0
- package/chip/package.json +11 -0
- package/chip/style/ChipStyle.d.ts +35 -0
- package/chip/style/chipstyle.mjs +21 -0
- package/chip/style/chipstyle.mjs.map +1 -0
- package/chip/style/package.json +6 -0
- package/chips/Chips.d.ts +90 -0
- package/chips/Chips.vue +11 -0
- package/chips/chips.mjs +12 -0
- package/chips/chips.mjs.map +1 -0
- package/chips/package.json +11 -0
- package/chips/style/ChipsStyle.d.ts +14 -0
- package/chips/style/chipsstyle.mjs +8 -0
- package/chips/style/chipsstyle.mjs.map +1 -0
- package/chips/style/package.json +6 -0
- package/colorpicker/BaseColorPicker.vue +55 -0
- package/colorpicker/ColorPicker.d.ts +254 -0
- package/colorpicker/ColorPicker.vue +569 -0
- package/colorpicker/colorpicker.mjs +646 -0
- package/colorpicker/colorpicker.mjs.map +1 -0
- package/colorpicker/package.json +11 -0
- package/colorpicker/style/ColorPickerStyle.d.ts +47 -0
- package/colorpicker/style/colorpickerstyle.mjs +35 -0
- package/colorpicker/style/colorpickerstyle.mjs.map +1 -0
- package/colorpicker/style/package.json +6 -0
- package/column/BaseColumn.vue +194 -0
- package/column/Column.d.ts +1006 -0
- package/column/Column.vue +19 -0
- package/column/column.mjs +213 -0
- package/column/column.mjs.map +1 -0
- package/column/package.json +11 -0
- package/column/style/ColumnStyle.d.ts +15 -0
- package/column/style/columnstyle.mjs +8 -0
- package/column/style/columnstyle.mjs.map +1 -0
- package/column/style/package.json +6 -0
- package/columngroup/BaseColumnGroup.vue +22 -0
- package/columngroup/ColumnGroup.d.ts +145 -0
- package/columngroup/ColumnGroup.vue +19 -0
- package/columngroup/columngroup.mjs +41 -0
- package/columngroup/columngroup.mjs.map +1 -0
- package/columngroup/package.json +11 -0
- package/columngroup/style/ColumnGroupStyle.d.ts +15 -0
- package/columngroup/style/columngroupstyle.mjs +8 -0
- package/columngroup/style/columngroupstyle.mjs.map +1 -0
- package/columngroup/style/package.json +6 -0
- package/config/Config.d.ts +425 -0
- package/config/config.mjs +3 -0
- package/config/config.mjs.map +1 -0
- package/config/package.json +5 -0
- package/confirmationeventbus/confirmationeventbus.mjs +6 -0
- package/confirmationeventbus/confirmationeventbus.mjs.map +1 -0
- package/confirmationeventbus/package.json +4 -0
- package/confirmationoptions/ConfirmationOptions.d.ts +99 -0
- package/confirmationservice/ConfirmationService.d.ts +40 -0
- package/confirmationservice/confirmationservice.mjs +20 -0
- package/confirmationservice/confirmationservice.mjs.map +1 -0
- package/confirmationservice/package.json +5 -0
- package/confirmdialog/BaseConfirmDialog.vue +27 -0
- package/confirmdialog/ConfirmDialog.d.ts +291 -0
- package/confirmdialog/ConfirmDialog.vue +182 -0
- package/confirmdialog/confirmdialog.mjs +260 -0
- package/confirmdialog/confirmdialog.mjs.map +1 -0
- package/confirmdialog/package.json +11 -0
- package/confirmdialog/style/ConfirmDialogStyle.d.ts +35 -0
- package/confirmdialog/style/confirmdialogstyle.mjs +21 -0
- package/confirmdialog/style/confirmdialogstyle.mjs.map +1 -0
- package/confirmdialog/style/package.json +6 -0
- package/confirmpopup/BaseConfirmPopup.vue +19 -0
- package/confirmpopup/ConfirmPopup.d.ts +241 -0
- package/confirmpopup/ConfirmPopup.vue +336 -0
- package/confirmpopup/confirmpopup.mjs +396 -0
- package/confirmpopup/confirmpopup.mjs.map +1 -0
- package/confirmpopup/package.json +11 -0
- package/confirmpopup/style/ConfirmPopupStyle.d.ts +43 -0
- package/confirmpopup/style/confirmpopupstyle.mjs +23 -0
- package/confirmpopup/style/confirmpopupstyle.mjs.map +1 -0
- package/confirmpopup/style/package.json +6 -0
- package/contextmenu/BaseContextMenu.vue +50 -0
- package/contextmenu/ContextMenu.d.ts +413 -0
- package/contextmenu/ContextMenu.vue +600 -0
- package/contextmenu/ContextMenuSub.vue +227 -0
- package/contextmenu/contextmenu.mjs +988 -0
- package/contextmenu/contextmenu.mjs.map +1 -0
- package/contextmenu/package.json +11 -0
- package/contextmenu/style/ContextMenuStyle.d.ts +56 -0
- package/contextmenu/style/contextmenustyle.mjs +34 -0
- package/contextmenu/style/contextmenustyle.mjs.map +1 -0
- package/contextmenu/style/package.json +6 -0
- package/datatable/BaseDataTable.vue +309 -0
- package/datatable/BodyCell.vue +577 -0
- package/datatable/BodyRow.vue +598 -0
- package/datatable/ColumnFilter.vue +736 -0
- package/datatable/DataTable.d.ts +1639 -0
- package/datatable/DataTable.vue +2061 -0
- package/datatable/FooterCell.vue +104 -0
- package/datatable/HeaderCell.vue +377 -0
- package/datatable/HeaderCheckbox.vue +67 -0
- package/datatable/RowCheckbox.vue +74 -0
- package/datatable/RowRadioButton.vue +59 -0
- package/datatable/TableBody.vue +303 -0
- package/datatable/TableFooter.vue +131 -0
- package/datatable/TableHeader.vue +345 -0
- package/datatable/datatable.mjs +6379 -0
- package/datatable/datatable.mjs.map +1 -0
- package/datatable/package.json +11 -0
- package/datatable/style/DataTableStyle.d.ts +207 -0
- package/datatable/style/datatablestyle.mjs +169 -0
- package/datatable/style/datatablestyle.mjs.map +1 -0
- package/datatable/style/package.json +6 -0
- package/dataview/BaseDataView.vue +82 -0
- package/dataview/DataView.d.ts +356 -0
- package/dataview/DataView.vue +172 -0
- package/dataview/dataview.mjs +283 -0
- package/dataview/dataview.mjs.map +1 -0
- package/dataview/package.json +11 -0
- package/dataview/style/DataViewStyle.d.ts +39 -0
- package/dataview/style/dataviewstyle.mjs +32 -0
- package/dataview/style/dataviewstyle.mjs.map +1 -0
- package/dataview/style/package.json +6 -0
- package/datepicker/BaseDatePicker.vue +248 -0
- package/datepicker/DatePicker.d.ts +1047 -0
- package/datepicker/DatePicker.vue +2951 -0
- package/datepicker/datepicker.mjs +3323 -0
- package/datepicker/datepicker.mjs.map +1 -0
- package/datepicker/package.json +11 -0
- package/datepicker/style/DatePickerStyle.d.ts +167 -0
- package/datepicker/style/datepickerstyle.mjs +114 -0
- package/datepicker/style/datepickerstyle.mjs.map +1 -0
- package/datepicker/style/package.json +6 -0
- package/deferredcontent/DeferredContent.d.ts +148 -0
- package/deferredcontent/DeferredContent.vue +65 -0
- package/deferredcontent/deferredcontent.mjs +69 -0
- package/deferredcontent/deferredcontent.mjs.map +1 -0
- package/deferredcontent/package.json +11 -0
- package/deferredcontent/style/DeferredContentStyle.d.ts +14 -0
- package/deferredcontent/style/deferredcontentstyle.mjs +8 -0
- package/deferredcontent/style/deferredcontentstyle.mjs.map +1 -0
- package/deferredcontent/style/package.json +6 -0
- package/dialog/BaseDialog.vue +139 -0
- package/dialog/Dialog.d.ts +433 -0
- package/dialog/Dialog.vue +418 -0
- package/dialog/dialog.mjs +608 -0
- package/dialog/dialog.mjs.map +1 -0
- package/dialog/package.json +11 -0
- package/dialog/style/DialogStyle.d.ts +51 -0
- package/dialog/style/dialogstyle.mjs +65 -0
- package/dialog/style/dialogstyle.mjs.map +1 -0
- package/dialog/style/package.json +6 -0
- package/dialogservice/DialogService.d.ts +39 -0
- package/dialogservice/dialogservice.mjs +34 -0
- package/dialogservice/dialogservice.mjs.map +1 -0
- package/dialogservice/package.json +5 -0
- package/divider/BaseDivider.vue +30 -0
- package/divider/Divider.d.ts +143 -0
- package/divider/Divider.vue +17 -0
- package/divider/divider.mjs +53 -0
- package/divider/divider.mjs.map +1 -0
- package/divider/package.json +11 -0
- package/divider/style/DividerStyle.d.ts +23 -0
- package/divider/style/dividerstyle.mjs +45 -0
- package/divider/style/dividerstyle.mjs.map +1 -0
- package/divider/style/package.json +6 -0
- package/dock/BaseDock.vue +46 -0
- package/dock/Dock.d.ts +331 -0
- package/dock/Dock.vue +60 -0
- package/dock/DockSub.vue +286 -0
- package/dock/dock.mjs +423 -0
- package/dock/dock.mjs.map +1 -0
- package/dock/package.json +11 -0
- package/dock/style/DockStyle.d.ts +43 -0
- package/dock/style/dockstyle.mjs +37 -0
- package/dock/style/dockstyle.mjs.map +1 -0
- package/dock/style/package.json +6 -0
- package/drawer/BaseDrawer.vue +73 -0
- package/drawer/Drawer.d.ts +286 -0
- package/drawer/Drawer.vue +234 -0
- package/drawer/drawer.mjs +341 -0
- package/drawer/drawer.mjs.map +1 -0
- package/drawer/package.json +11 -0
- package/drawer/style/DrawerStyle.d.ts +39 -0
- package/drawer/style/drawerstyle.mjs +56 -0
- package/drawer/style/drawerstyle.mjs.map +1 -0
- package/drawer/style/package.json +6 -0
- package/dropdown/Dropdown.d.ts +108 -0
- package/dropdown/Dropdown.vue +11 -0
- package/dropdown/dropdown.mjs +12 -0
- package/dropdown/dropdown.mjs.map +1 -0
- package/dropdown/package.json +11 -0
- package/dropdown/style/DropdownStyle.d.ts +14 -0
- package/dropdown/style/dropdownstyle.mjs +8 -0
- package/dropdown/style/dropdownstyle.mjs.map +1 -0
- package/dropdown/style/package.json +6 -0
- package/dynamicdialog/BaseDynamicDialog.vue +17 -0
- package/dynamicdialog/DynamicDialog.d.ts +55 -0
- package/dynamicdialog/DynamicDialog.vue +77 -0
- package/dynamicdialog/dynamicdialog.mjs +134 -0
- package/dynamicdialog/dynamicdialog.mjs.map +1 -0
- package/dynamicdialog/package.json +11 -0
- package/dynamicdialog/style/DynamicDialogStyle.d.ts +14 -0
- package/dynamicdialog/style/dynamicdialogstyle.mjs +8 -0
- package/dynamicdialog/style/dynamicdialogstyle.mjs.map +1 -0
- package/dynamicdialog/style/package.json +6 -0
- package/dynamicdialogeventbus/dynamicdialogeventbus.mjs +6 -0
- package/dynamicdialogeventbus/dynamicdialogeventbus.mjs.map +1 -0
- package/dynamicdialogeventbus/package.json +4 -0
- package/dynamicdialogoptions/DynamicDialogOptions.d.ts +93 -0
- package/editor/BaseEditor.vue +24 -0
- package/editor/Editor.d.ts +320 -0
- package/editor/Editor.vue +178 -0
- package/editor/editor.mjs +238 -0
- package/editor/editor.mjs.map +1 -0
- package/editor/package.json +11 -0
- package/editor/style/EditorStyle.d.ts +27 -0
- package/editor/style/editorstyle.mjs +19 -0
- package/editor/style/editorstyle.mjs.map +1 -0
- package/editor/style/package.json +6 -0
- package/fieldset/BaseFieldset.vue +25 -0
- package/fieldset/Fieldset.d.ts +253 -0
- package/fieldset/Fieldset.vue +95 -0
- package/fieldset/fieldset.mjs +147 -0
- package/fieldset/fieldset.mjs.map +1 -0
- package/fieldset/package.json +11 -0
- package/fieldset/style/FieldsetStyle.d.ts +39 -0
- package/fieldset/style/fieldsetstyle.mjs +28 -0
- package/fieldset/style/fieldsetstyle.mjs.map +1 -0
- package/fieldset/style/package.json +6 -0
- package/fileupload/BaseFileUpload.vue +128 -0
- package/fileupload/FileContent.vue +75 -0
- package/fileupload/FileUpload.d.ts +670 -0
- package/fileupload/FileUpload.vue +448 -0
- package/fileupload/fileupload.mjs +870 -0
- package/fileupload/fileupload.mjs.map +1 -0
- package/fileupload/package.json +11 -0
- package/fileupload/style/FileUploadStyle.d.ts +75 -0
- package/fileupload/style/fileuploadstyle.mjs +34 -0
- package/fileupload/style/fileuploadstyle.mjs.map +1 -0
- package/fileupload/style/package.json +6 -0
- package/floatlabel/BaseFloatLabel.vue +17 -0
- package/floatlabel/FloatLabel.d.ts +130 -0
- package/floatlabel/FloatLabel.vue +15 -0
- package/floatlabel/floatlabel.mjs +33 -0
- package/floatlabel/floatlabel.mjs.map +1 -0
- package/floatlabel/package.json +11 -0
- package/floatlabel/style/FloatLabelStyle.d.ts +19 -0
- package/floatlabel/style/floatlabelstyle.mjs +17 -0
- package/floatlabel/style/floatlabelstyle.mjs.map +1 -0
- package/floatlabel/style/package.json +6 -0
- package/focustrap/FocusTrap.d.ts +100 -0
- package/focustrap/focustrap.mjs +141 -0
- package/focustrap/focustrap.mjs.map +1 -0
- package/focustrap/package.json +5 -0
- package/focustrap/style/FocusTrapStyle.d.ts +14 -0
- package/focustrap/style/focustrapstyle.mjs +8 -0
- package/focustrap/style/focustrapstyle.mjs.map +1 -0
- package/focustrap/style/package.json +6 -0
- package/galleria/BaseGalleria.vue +134 -0
- package/galleria/Galleria.d.ts +541 -0
- package/galleria/Galleria.vue +95 -0
- package/galleria/GalleriaContent.vue +168 -0
- package/galleria/GalleriaItem.vue +271 -0
- package/galleria/GalleriaThumbnails.vue +546 -0
- package/galleria/galleria.mjs +1278 -0
- package/galleria/galleria.mjs.map +1 -0
- package/galleria/package.json +11 -0
- package/galleria/style/GalleriaStyle.d.ts +127 -0
- package/galleria/style/galleriastyle.mjs +89 -0
- package/galleria/style/galleriastyle.mjs.map +1 -0
- package/galleria/style/package.json +6 -0
- package/iconfield/BaseIconField.vue +16 -0
- package/iconfield/IconField.d.ts +128 -0
- package/iconfield/IconField.vue +15 -0
- package/iconfield/iconfield.mjs +32 -0
- package/iconfield/iconfield.mjs.map +1 -0
- package/iconfield/package.json +11 -0
- package/iconfield/style/IconFieldStyle.d.ts +19 -0
- package/iconfield/style/iconfieldstyle.mjs +17 -0
- package/iconfield/style/iconfieldstyle.mjs.map +1 -0
- package/iconfield/style/package.json +6 -0
- package/image/BaseImage.vue +58 -0
- package/image/Image.d.ts +362 -0
- package/image/Image.vue +233 -0
- package/image/image.mjs +387 -0
- package/image/image.mjs.map +1 -0
- package/image/package.json +11 -0
- package/image/style/ImageStyle.d.ts +59 -0
- package/image/style/imagestyle.mjs +42 -0
- package/image/style/imagestyle.mjs.map +1 -0
- package/image/style/package.json +6 -0
- package/inlinemessage/BaseInlineMessage.vue +26 -0
- package/inlinemessage/InlineMessage.d.ts +162 -0
- package/inlinemessage/InlineMessage.vue +47 -0
- package/inlinemessage/inlinemessage.mjs +80 -0
- package/inlinemessage/inlinemessage.mjs.map +1 -0
- package/inlinemessage/package.json +11 -0
- package/inlinemessage/style/InlineMessageStyle.d.ts +27 -0
- package/inlinemessage/style/inlinemessagestyle.mjs +28 -0
- package/inlinemessage/style/inlinemessagestyle.mjs.map +1 -0
- package/inlinemessage/style/package.json +6 -0
- package/inplace/BaseInplace.vue +30 -0
- package/inplace/Inplace.d.ts +209 -0
- package/inplace/Inplace.vue +53 -0
- package/inplace/inplace.mjs +101 -0
- package/inplace/inplace.mjs.map +1 -0
- package/inplace/package.json +11 -0
- package/inplace/style/InplaceStyle.d.ts +27 -0
- package/inplace/style/inplacestyle.mjs +24 -0
- package/inplace/style/inplacestyle.mjs.map +1 -0
- package/inplace/style/package.json +6 -0
- package/inputchips/BaseInputChips.vue +86 -0
- package/inputchips/InputChips.d.ts +349 -0
- package/inputchips/InputChips.vue +271 -0
- package/inputchips/inputchips.mjs +394 -0
- package/inputchips/inputchips.mjs.map +1 -0
- package/inputchips/package.json +11 -0
- package/inputchips/style/InputChipsStyle.d.ts +39 -0
- package/inputchips/style/inputchipsstyle.mjs +44 -0
- package/inputchips/style/inputchipsstyle.mjs.map +1 -0
- package/inputchips/style/package.json +6 -0
- package/inputgroup/BaseInputGroup.vue +16 -0
- package/inputgroup/InputGroup.d.ts +129 -0
- package/inputgroup/InputGroup.vue +15 -0
- package/inputgroup/inputgroup.mjs +32 -0
- package/inputgroup/inputgroup.mjs.map +1 -0
- package/inputgroup/package.json +11 -0
- package/inputgroup/style/InputGroupStyle.d.ts +19 -0
- package/inputgroup/style/inputgroupstyle.mjs +17 -0
- package/inputgroup/style/inputgroupstyle.mjs.map +1 -0
- package/inputgroup/style/package.json +6 -0
- package/inputgroupaddon/BaseInputGroupAddon.vue +16 -0
- package/inputgroupaddon/InputGroupAddon.d.ts +129 -0
- package/inputgroupaddon/InputGroupAddon.vue +15 -0
- package/inputgroupaddon/inputgroupaddon.mjs +32 -0
- package/inputgroupaddon/inputgroupaddon.mjs.map +1 -0
- package/inputgroupaddon/package.json +11 -0
- package/inputgroupaddon/style/InputGroupAddonStyle.d.ts +19 -0
- package/inputgroupaddon/style/inputgroupaddonstyle.mjs +12 -0
- package/inputgroupaddon/style/inputgroupaddonstyle.mjs.map +1 -0
- package/inputgroupaddon/style/package.json +6 -0
- package/inputicon/BaseInputIcon.vue +19 -0
- package/inputicon/InputIcon.d.ts +124 -0
- package/inputicon/InputIcon.vue +20 -0
- package/inputicon/inputicon.mjs +40 -0
- package/inputicon/inputicon.mjs.map +1 -0
- package/inputicon/package.json +11 -0
- package/inputicon/style/InputIconStyle.d.ts +19 -0
- package/inputicon/style/inputiconstyle.mjs +12 -0
- package/inputicon/style/inputiconstyle.mjs.map +1 -0
- package/inputicon/style/package.json +6 -0
- package/inputmask/BaseInputMask.vue +55 -0
- package/inputmask/InputMask.d.ts +231 -0
- package/inputmask/InputMask.vue +532 -0
- package/inputmask/inputmask.mjs +512 -0
- package/inputmask/inputmask.mjs.map +1 -0
- package/inputmask/package.json +11 -0
- package/inputmask/style/InputMaskStyle.d.ts +19 -0
- package/inputmask/style/inputmaskstyle.mjs +12 -0
- package/inputmask/style/inputmaskstyle.mjs.map +1 -0
- package/inputmask/style/package.json +6 -0
- package/inputnumber/BaseInputNumber.vue +165 -0
- package/inputnumber/InputNumber.d.ts +477 -0
- package/inputnumber/InputNumber.vue +987 -0
- package/inputnumber/inputnumber.mjs +1134 -0
- package/inputnumber/inputnumber.mjs.map +1 -0
- package/inputnumber/package.json +11 -0
- package/inputnumber/style/InputNumberStyle.d.ts +35 -0
- package/inputnumber/style/inputnumberstyle.mjs +43 -0
- package/inputnumber/style/inputnumberstyle.mjs.map +1 -0
- package/inputnumber/style/package.json +6 -0
- package/inputotp/BaseInputOtp.vue +54 -0
- package/inputotp/InputOtp.d.ts +281 -0
- package/inputotp/InputOtp.vue +194 -0
- package/inputotp/inputotp.mjs +255 -0
- package/inputotp/inputotp.mjs.map +1 -0
- package/inputotp/package.json +11 -0
- package/inputotp/style/InputOtpStyle.d.ts +23 -0
- package/inputotp/style/inputotpstyle.mjs +18 -0
- package/inputotp/style/inputotpstyle.mjs.map +1 -0
- package/inputotp/style/package.json +6 -0
- package/inputswitch/InputSwitch.d.ts +69 -0
- package/inputswitch/InputSwitch.vue +11 -0
- package/inputswitch/inputswitch.mjs +12 -0
- package/inputswitch/inputswitch.mjs.map +1 -0
- package/inputswitch/package.json +11 -0
- package/inputswitch/style/InputSwitchStyle.d.ts +14 -0
- package/inputswitch/style/inputswitchstyle.mjs +8 -0
- package/inputswitch/style/inputswitchstyle.mjs.map +1 -0
- package/inputswitch/style/package.json +6 -0
- package/inputtext/BaseInputText.vue +31 -0
- package/inputtext/InputText.d.ts +163 -0
- package/inputtext/InputText.vue +34 -0
- package/inputtext/inputtext.mjs +74 -0
- package/inputtext/inputtext.mjs.map +1 -0
- package/inputtext/package.json +11 -0
- package/inputtext/style/InputTextStyle.d.ts +19 -0
- package/inputtext/style/inputtextstyle.mjs +27 -0
- package/inputtext/style/inputtextstyle.mjs.map +1 -0
- package/inputtext/style/package.json +6 -0
- package/knob/BaseKnob.vue +89 -0
- package/knob/Knob.d.ts +259 -0
- package/knob/Knob.vue +227 -0
- package/knob/knob.mjs +333 -0
- package/knob/knob.mjs.map +1 -0
- package/knob/package.json +11 -0
- package/knob/style/KnobStyle.d.ts +31 -0
- package/knob/style/knobstyle.mjs +25 -0
- package/knob/style/knobstyle.mjs.map +1 -0
- package/knob/style/package.json +6 -0
- package/listbox/BaseListbox.vue +122 -0
- package/listbox/Listbox.d.ts +621 -0
- package/listbox/Listbox.vue +782 -0
- package/listbox/listbox.mjs +1051 -0
- package/listbox/listbox.mjs.map +1 -0
- package/listbox/package.json +11 -0
- package/listbox/style/ListboxStyle.d.ts +55 -0
- package/listbox/style/listboxstyle.mjs +44 -0
- package/listbox/style/listboxstyle.mjs.map +1 -0
- package/listbox/style/package.json +6 -0
- package/megamenu/BaseMegaMenu.vue +46 -0
- package/megamenu/MegaMenu.d.ts +410 -0
- package/megamenu/MegaMenu.vue +673 -0
- package/megamenu/MegaMenuSub.vue +228 -0
- package/megamenu/megamenu.mjs +1051 -0
- package/megamenu/megamenu.mjs.map +1 -0
- package/megamenu/package.json +11 -0
- package/megamenu/style/MegaMenuStyle.d.ts +83 -0
- package/megamenu/style/megamenustyle.mjs +90 -0
- package/megamenu/style/megamenustyle.mjs.map +1 -0
- package/megamenu/style/package.json +6 -0
- package/menu/BaseMenu.vue +50 -0
- package/menu/Menu.d.ts +381 -0
- package/menu/Menu.vue +390 -0
- package/menu/Menuitem.vue +110 -0
- package/menu/menu.mjs +596 -0
- package/menu/menu.mjs.map +1 -0
- package/menu/package.json +11 -0
- package/menu/style/MenuStyle.d.ts +59 -0
- package/menu/style/menustyle.mjs +38 -0
- package/menu/style/menustyle.mjs.map +1 -0
- package/menu/style/package.json +6 -0
- package/menubar/BaseMenubar.vue +38 -0
- package/menubar/Menubar.d.ts +423 -0
- package/menubar/Menubar.vue +638 -0
- package/menubar/MenubarSub.vue +224 -0
- package/menubar/menubar.mjs +1013 -0
- package/menubar/menubar.mjs.map +1 -0
- package/menubar/package.json +11 -0
- package/menubar/style/MenubarStyle.d.ts +67 -0
- package/menubar/style/menubarstyle.mjs +53 -0
- package/menubar/style/menubarstyle.mjs.map +1 -0
- package/menubar/style/package.json +6 -0
- package/menuitem/MenuItem.d.ts +89 -0
- package/message/BaseMessage.vue +42 -0
- package/message/Message.d.ts +238 -0
- package/message/Message.vue +81 -0
- package/message/message.mjs +159 -0
- package/message/message.mjs.map +1 -0
- package/message/package.json +11 -0
- package/message/style/MessageStyle.d.ts +39 -0
- package/message/style/messagestyle.mjs +25 -0
- package/message/style/messagestyle.mjs.map +1 -0
- package/message/style/package.json +6 -0
- package/metergroup/BaseMeterGroup.vue +42 -0
- package/metergroup/MeterGroup.d.ts +312 -0
- package/metergroup/MeterGroup.vue +74 -0
- package/metergroup/MeterGroupLabel.vue +36 -0
- package/metergroup/metergroup.mjs +218 -0
- package/metergroup/metergroup.mjs.map +1 -0
- package/metergroup/package.json +11 -0
- package/metergroup/style/MeterGroupStyle.d.ts +47 -0
- package/metergroup/style/metergroupstyle.mjs +36 -0
- package/metergroup/style/metergroupstyle.mjs.map +1 -0
- package/metergroup/style/package.json +6 -0
- package/multiselect/BaseMultiSelect.vue +187 -0
- package/multiselect/MultiSelect.d.ts +898 -0
- package/multiselect/MultiSelect.vue +1131 -0
- package/multiselect/multiselect.mjs +1529 -0
- package/multiselect/multiselect.mjs.map +1 -0
- package/multiselect/package.json +11 -0
- package/multiselect/style/MultiSelectStyle.d.ts +87 -0
- package/multiselect/style/multiselectstyle.mjs +74 -0
- package/multiselect/style/multiselectstyle.mjs.map +1 -0
- package/multiselect/style/package.json +6 -0
- package/orderlist/BaseOrderList.vue +100 -0
- package/orderlist/OrderList.d.ts +404 -0
- package/orderlist/OrderList.vue +323 -0
- package/orderlist/orderlist.mjs +453 -0
- package/orderlist/orderlist.mjs.map +1 -0
- package/orderlist/package.json +11 -0
- package/orderlist/style/OrderListStyle.d.ts +23 -0
- package/orderlist/style/orderliststyle.mjs +18 -0
- package/orderlist/style/orderliststyle.mjs.map +1 -0
- package/orderlist/style/package.json +6 -0
- package/organizationchart/BaseOrganizationChart.vue +38 -0
- package/organizationchart/OrganizationChart.d.ts +376 -0
- package/organizationchart/OrganizationChart.vue +78 -0
- package/organizationchart/OrganizationChartNode.vue +165 -0
- package/organizationchart/organizationchart.mjs +316 -0
- package/organizationchart/organizationchart.mjs.map +1 -0
- package/organizationchart/package.json +11 -0
- package/organizationchart/style/OrganizationChartStyle.d.ts +55 -0
- package/organizationchart/style/organizationchartstyle.mjs +43 -0
- package/organizationchart/style/organizationchartstyle.mjs.map +1 -0
- package/organizationchart/style/package.json +6 -0
- package/overlaybadge/BaseOverlayBadge.vue +16 -0
- package/overlaybadge/OverlayBadge.d.ts +152 -0
- package/overlaybadge/OverlayBadge.vue +16 -0
- package/overlaybadge/overlaybadge.mjs +35 -0
- package/overlaybadge/overlaybadge.mjs.map +1 -0
- package/overlaybadge/package.json +11 -0
- package/overlaybadge/style/OverlayBadgeStyle.d.ts +19 -0
- package/overlaybadge/style/overlaybadgestyle.mjs +17 -0
- package/overlaybadge/style/overlaybadgestyle.mjs.map +1 -0
- package/overlaybadge/style/package.json +6 -0
- package/overlayeventbus/overlayeventbus.mjs +6 -0
- package/overlayeventbus/overlayeventbus.mjs.map +1 -0
- package/overlayeventbus/package.json +4 -0
- package/overlaypanel/OverlayPanel.d.ts +110 -0
- package/overlaypanel/OverlayPanel.vue +11 -0
- package/overlaypanel/overlaypanel.mjs +12 -0
- package/overlaypanel/overlaypanel.mjs.map +1 -0
- package/overlaypanel/package.json +11 -0
- package/overlaypanel/style/OverlayPanelStyle.d.ts +12 -0
- package/overlaypanel/style/overlaypanelstyle.mjs +8 -0
- package/overlaypanel/style/overlaypanelstyle.mjs.map +1 -0
- package/overlaypanel/style/package.json +6 -0
- package/package.json +52 -0
- package/paginator/BasePaginator.vue +50 -0
- package/paginator/CurrentPageReport.vue +56 -0
- package/paginator/FirstPageLink.vue +38 -0
- package/paginator/JumpToPageDropdown.vue +55 -0
- package/paginator/JumpToPageInput.vue +47 -0
- package/paginator/LastPageLink.vue +38 -0
- package/paginator/NextPageLink.vue +38 -0
- package/paginator/PageLinks.vue +56 -0
- package/paginator/Paginator.d.ts +460 -0
- package/paginator/Paginator.vue +343 -0
- package/paginator/PrevPageLink.vue +38 -0
- package/paginator/RowsPerPageDropdown.vue +57 -0
- package/paginator/package.json +11 -0
- package/paginator/paginator.mjs +873 -0
- package/paginator/paginator.mjs.map +1 -0
- package/paginator/style/PaginatorStyle.d.ts +83 -0
- package/paginator/style/package.json +6 -0
- package/paginator/style/paginatorstyle.mjs +69 -0
- package/paginator/style/paginatorstyle.mjs.map +1 -0
- package/panel/BasePanel.vue +31 -0
- package/panel/Panel.d.ts +281 -0
- package/panel/Panel.vue +104 -0
- package/panel/package.json +11 -0
- package/panel/panel.mjs +155 -0
- package/panel/panel.mjs.map +1 -0
- package/panel/style/PanelStyle.d.ts +47 -0
- package/panel/style/package.json +6 -0
- package/panel/style/panelstyle.mjs +29 -0
- package/panel/style/panelstyle.mjs.map +1 -0
- package/panelmenu/BasePanelMenu.vue +34 -0
- package/panelmenu/PanelMenu.d.ts +414 -0
- package/panelmenu/PanelMenu.vue +274 -0
- package/panelmenu/PanelMenuList.vue +399 -0
- package/panelmenu/PanelMenuSub.vue +211 -0
- package/panelmenu/package.json +11 -0
- package/panelmenu/panelmenu.mjs +1055 -0
- package/panelmenu/panelmenu.mjs.map +1 -0
- package/panelmenu/style/PanelMenuStyle.d.ts +84 -0
- package/panelmenu/style/package.json +6 -0
- package/panelmenu/style/panelmenustyle.mjs +48 -0
- package/panelmenu/style/panelmenustyle.mjs.map +1 -0
- package/passthrough/index.d.ts +8 -0
- package/passthrough/index.mjs +26 -0
- package/passthrough/index.mjs.map +1 -0
- package/passthrough/package.json +5 -0
- package/password/BasePassword.vue +147 -0
- package/password/Password.d.ts +425 -0
- package/password/Password.vue +328 -0
- package/password/package.json +11 -0
- package/password/password.mjs +499 -0
- package/password/password.mjs.map +1 -0
- package/password/style/PasswordStyle.d.ts +47 -0
- package/password/style/package.json +6 -0
- package/password/style/passwordstyle.mjs +44 -0
- package/password/style/passwordstyle.mjs.map +1 -0
- package/picklist/BasePickList.vue +116 -0
- package/picklist/PickList.d.ts +635 -0
- package/picklist/PickList.vue +654 -0
- package/picklist/package.json +11 -0
- package/picklist/picklist.mjs +905 -0
- package/picklist/picklist.mjs.map +1 -0
- package/picklist/style/PickListStyle.d.ts +39 -0
- package/picklist/style/package.json +6 -0
- package/picklist/style/pickliststyle.mjs +22 -0
- package/picklist/style/pickliststyle.mjs.map +1 -0
- package/popover/BasePopover.vue +42 -0
- package/popover/Popover.d.ts +257 -0
- package/popover/Popover.vue +314 -0
- package/popover/package.json +11 -0
- package/popover/popover.mjs +369 -0
- package/popover/popover.mjs.map +1 -0
- package/popover/style/PopoverStyle.d.ts +23 -0
- package/popover/style/package.json +6 -0
- package/popover/style/popoverstyle.mjs +18 -0
- package/popover/style/popoverstyle.mjs.map +1 -0
- package/portal/Portal.d.ts +39 -0
- package/portal/Portal.vue +41 -0
- package/portal/package.json +11 -0
- package/portal/portal.mjs +43 -0
- package/portal/portal.mjs.map +1 -0
- package/portal/style/PortalStyle.d.ts +12 -0
- package/portal/style/package.json +6 -0
- package/portal/style/portalstyle.mjs +8 -0
- package/portal/style/portalstyle.mjs.map +1 -0
- package/progressbar/BaseProgressBar.vue +30 -0
- package/progressbar/ProgressBar.d.ts +146 -0
- package/progressbar/ProgressBar.vue +34 -0
- package/progressbar/package.json +11 -0
- package/progressbar/progressbar.mjs +77 -0
- package/progressbar/progressbar.mjs.map +1 -0
- package/progressbar/style/ProgressBarStyle.d.ts +27 -0
- package/progressbar/style/package.json +6 -0
- package/progressbar/style/progressbarstyle.mjs +25 -0
- package/progressbar/style/progressbarstyle.mjs.map +1 -0
- package/progressspinner/BaseProgressSpinner.vue +30 -0
- package/progressspinner/ProgressSpinner.d.ts +144 -0
- package/progressspinner/ProgressSpinner.vue +24 -0
- package/progressspinner/package.json +11 -0
- package/progressspinner/progressspinner.mjs +67 -0
- package/progressspinner/progressspinner.mjs.map +1 -0
- package/progressspinner/style/ProgressSpinnerStyle.d.ts +27 -0
- package/progressspinner/style/package.json +6 -0
- package/progressspinner/style/progressspinnerstyle.mjs +19 -0
- package/progressspinner/style/progressspinnerstyle.mjs.map +1 -0
- package/radiobutton/BaseRadioButton.vue +65 -0
- package/radiobutton/RadioButton.d.ts +244 -0
- package/radiobutton/RadioButton.vue +69 -0
- package/radiobutton/package.json +11 -0
- package/radiobutton/radiobutton.mjs +144 -0
- package/radiobutton/radiobutton.mjs.map +1 -0
- package/radiobutton/style/RadioButtonStyle.d.ts +31 -0
- package/radiobutton/style/package.json +6 -0
- package/radiobutton/style/radiobuttonstyle.mjs +29 -0
- package/radiobutton/style/radiobuttonstyle.mjs.map +1 -0
- package/rating/BaseRating.vue +42 -0
- package/rating/Rating.d.ts +277 -0
- package/rating/Rating.vue +111 -0
- package/rating/package.json +11 -0
- package/rating/rating.mjs +189 -0
- package/rating/rating.mjs.map +1 -0
- package/rating/style/RatingStyle.d.ts +31 -0
- package/rating/style/package.json +6 -0
- package/rating/style/ratingstyle.mjs +34 -0
- package/rating/style/ratingstyle.mjs.map +1 -0
- package/ripple/Ripple.d.ts +87 -0
- package/ripple/package.json +5 -0
- package/ripple/ripple.mjs +111 -0
- package/ripple/ripple.mjs.map +1 -0
- package/ripple/style/RippleStyle.d.ts +19 -0
- package/ripple/style/package.json +6 -0
- package/ripple/style/ripplestyle.mjs +17 -0
- package/ripple/style/ripplestyle.mjs.map +1 -0
- package/row/Row.d.ts +126 -0
- package/row/Row.vue +18 -0
- package/row/package.json +11 -0
- package/row/row.mjs +21 -0
- package/row/row.mjs.map +1 -0
- package/row/style/RowStyle.d.ts +14 -0
- package/row/style/package.json +6 -0
- package/row/style/rowstyle.mjs +8 -0
- package/row/style/rowstyle.mjs.map +1 -0
- package/scrollpanel/BaseScrollPanel.vue +22 -0
- package/scrollpanel/ScrollPanel.d.ts +175 -0
- package/scrollpanel/ScrollPanel.vue +382 -0
- package/scrollpanel/package.json +11 -0
- package/scrollpanel/scrollpanel.mjs +406 -0
- package/scrollpanel/scrollpanel.mjs.map +1 -0
- package/scrollpanel/style/ScrollPanelStyle.d.ts +35 -0
- package/scrollpanel/style/package.json +6 -0
- package/scrollpanel/style/scrollpanelstyle.mjs +21 -0
- package/scrollpanel/style/scrollpanelstyle.mjs.map +1 -0
- package/scrolltop/BaseScrollTop.vue +40 -0
- package/scrolltop/ScrollTop.d.ts +195 -0
- package/scrolltop/ScrollTop.vue +109 -0
- package/scrolltop/package.json +11 -0
- package/scrolltop/scrolltop.mjs +169 -0
- package/scrolltop/scrolltop.mjs.map +1 -0
- package/scrolltop/style/ScrollTopStyle.d.ts +23 -0
- package/scrolltop/style/package.json +6 -0
- package/scrolltop/style/scrolltopstyle.mjs +23 -0
- package/scrolltop/style/scrolltopstyle.mjs.map +1 -0
- package/select/BaseSelect.vue +194 -0
- package/select/Select.d.ts +803 -0
- package/select/Select.vue +1011 -0
- package/select/package.json +11 -0
- package/select/select.mjs +1360 -0
- package/select/select.mjs.map +1 -0
- package/select/style/SelectStyle.d.ts +87 -0
- package/select/style/package.json +6 -0
- package/select/style/selectstyle.mjs +65 -0
- package/select/style/selectstyle.mjs.map +1 -0
- package/selectbutton/BaseSelectButton.vue +38 -0
- package/selectbutton/SelectButton.d.ts +264 -0
- package/selectbutton/SelectButton.vue +113 -0
- package/selectbutton/package.json +11 -0
- package/selectbutton/selectbutton.mjs +182 -0
- package/selectbutton/selectbutton.mjs.map +1 -0
- package/selectbutton/style/SelectButtonStyle.d.ts +19 -0
- package/selectbutton/style/package.json +6 -0
- package/selectbutton/style/selectbuttonstyle.mjs +22 -0
- package/selectbutton/style/selectbuttonstyle.mjs.map +1 -0
- package/sidebar/Sidebar.d.ts +79 -0
- package/sidebar/Sidebar.vue +11 -0
- package/sidebar/package.json +11 -0
- package/sidebar/sidebar.mjs +12 -0
- package/sidebar/sidebar.mjs.map +1 -0
- package/sidebar/style/SidebarStyle.d.ts +14 -0
- package/sidebar/style/package.json +6 -0
- package/sidebar/style/sidebarstyle.mjs +8 -0
- package/sidebar/style/sidebarstyle.mjs.map +1 -0
- package/skeleton/BaseSkeleton.vue +42 -0
- package/skeleton/Skeleton.d.ts +150 -0
- package/skeleton/Skeleton.vue +19 -0
- package/skeleton/package.json +11 -0
- package/skeleton/skeleton.mjs +73 -0
- package/skeleton/skeleton.mjs.map +1 -0
- package/skeleton/style/SkeletonStyle.d.ts +19 -0
- package/skeleton/style/package.json +6 -0
- package/skeleton/style/skeletonstyle.mjs +29 -0
- package/skeleton/style/skeletonstyle.mjs.map +1 -0
- package/slider/BaseSlider.vue +55 -0
- package/slider/Slider.d.ts +215 -0
- package/slider/Slider.vue +333 -0
- package/slider/package.json +11 -0
- package/slider/slider.mjs +407 -0
- package/slider/slider.mjs.map +1 -0
- package/slider/style/SliderStyle.d.ts +27 -0
- package/slider/style/package.json +6 -0
- package/slider/style/sliderstyle.mjs +35 -0
- package/slider/style/sliderstyle.mjs.map +1 -0
- package/speeddial/BaseSpeedDial.vue +89 -0
- package/speeddial/SpeedDial.d.ts +412 -0
- package/speeddial/SpeedDial.vue +470 -0
- package/speeddial/package.json +11 -0
- package/speeddial/speeddial.mjs +622 -0
- package/speeddial/speeddial.mjs.map +1 -0
- package/speeddial/style/SpeedDialStyle.d.ts +43 -0
- package/speeddial/style/package.json +6 -0
- package/speeddial/style/speeddialstyle.mjs +60 -0
- package/speeddial/style/speeddialstyle.mjs.map +1 -0
- package/splitbutton/BaseSplitButton.vue +98 -0
- package/splitbutton/SplitButton.d.ts +342 -0
- package/splitbutton/SplitButton.vue +127 -0
- package/splitbutton/package.json +11 -0
- package/splitbutton/splitbutton.mjs +272 -0
- package/splitbutton/splitbutton.mjs.map +1 -0
- package/splitbutton/style/SplitButtonStyle.d.ts +27 -0
- package/splitbutton/style/package.json +6 -0
- package/splitbutton/style/splitbuttonstyle.mjs +25 -0
- package/splitbutton/style/splitbuttonstyle.mjs.map +1 -0
- package/splitter/BaseSplitter.vue +38 -0
- package/splitter/Splitter.d.ts +249 -0
- package/splitter/Splitter.vue +385 -0
- package/splitter/package.json +11 -0
- package/splitter/splitter.mjs +444 -0
- package/splitter/splitter.mjs.map +1 -0
- package/splitter/style/SplitterStyle.d.ts +27 -0
- package/splitter/style/package.json +6 -0
- package/splitter/style/splitterstyle.mjs +34 -0
- package/splitter/style/splitterstyle.mjs.map +1 -0
- package/splitterpanel/BaseSplitterPanel.vue +26 -0
- package/splitterpanel/SplitterPanel.d.ts +147 -0
- package/splitterpanel/SplitterPanel.vue +36 -0
- package/splitterpanel/package.json +11 -0
- package/splitterpanel/splitterpanel.mjs +64 -0
- package/splitterpanel/splitterpanel.mjs.map +1 -0
- package/splitterpanel/style/SplitterPanelStyle.d.ts +19 -0
- package/splitterpanel/style/package.json +6 -0
- package/splitterpanel/style/splitterpanelstyle.mjs +17 -0
- package/splitterpanel/style/splitterpanelstyle.mjs.map +1 -0
- package/step/BaseStep.vue +34 -0
- package/step/Step.d.ts +187 -0
- package/step/Step.vue +98 -0
- package/step/package.json +11 -0
- package/step/step.mjs +182 -0
- package/step/step.mjs.map +1 -0
- package/step/style/StepStyle.d.ts +31 -0
- package/step/style/package.json +6 -0
- package/step/style/stepstyle.mjs +22 -0
- package/step/style/stepstyle.mjs.map +1 -0
- package/stepitem/BaseStepItem.vue +22 -0
- package/stepitem/StepItem.d.ts +121 -0
- package/stepitem/StepItem.vue +21 -0
- package/stepitem/package.json +11 -0
- package/stepitem/stepitem.mjs +47 -0
- package/stepitem/stepitem.mjs.map +1 -0
- package/stepitem/style/StepItemStyle.d.ts +19 -0
- package/stepitem/style/package.json +6 -0
- package/stepitem/style/stepitemstyle.mjs +17 -0
- package/stepitem/style/stepitemstyle.mjs.map +1 -0
- package/steplist/BaseStepList.vue +22 -0
- package/steplist/StepList.d.ts +121 -0
- package/steplist/StepList.vue +15 -0
- package/steplist/package.json +11 -0
- package/steplist/steplist.mjs +38 -0
- package/steplist/steplist.mjs.map +1 -0
- package/steplist/style/StepListStyle.d.ts +19 -0
- package/steplist/style/package.json +6 -0
- package/steplist/style/stepliststyle.mjs +12 -0
- package/steplist/style/stepliststyle.mjs.map +1 -0
- package/steppanel/BaseStepPanel.vue +30 -0
- package/steppanel/StepPanel.d.ts +148 -0
- package/steppanel/StepPanel.vue +99 -0
- package/steppanel/package.json +11 -0
- package/steppanel/steppanel.mjs +195 -0
- package/steppanel/steppanel.mjs.map +1 -0
- package/steppanel/style/StepPanelStyle.d.ts +19 -0
- package/steppanel/style/package.json +6 -0
- package/steppanel/style/steppanelstyle.mjs +18 -0
- package/steppanel/style/steppanelstyle.mjs.map +1 -0
- package/steppanels/BaseStepPanels.vue +22 -0
- package/steppanels/StepPanels.d.ts +121 -0
- package/steppanels/StepPanels.vue +15 -0
- package/steppanels/package.json +11 -0
- package/steppanels/steppanels.mjs +38 -0
- package/steppanels/steppanels.mjs.map +1 -0
- package/steppanels/style/StepPanelsStyle.d.ts +19 -0
- package/steppanels/style/package.json +6 -0
- package/steppanels/style/steppanelsstyle.mjs +12 -0
- package/steppanels/style/steppanelsstyle.mjs.map +1 -0
- package/stepper/BaseStepper.vue +26 -0
- package/stepper/Stepper.d.ts +170 -0
- package/stepper/Stepper.vue +50 -0
- package/stepper/StepperSeparator.vue +13 -0
- package/stepper/package.json +11 -0
- package/stepper/stepper.mjs +80 -0
- package/stepper/stepper.mjs.map +1 -0
- package/stepper/style/StepperStyle.d.ts +23 -0
- package/stepper/style/package.json +6 -0
- package/stepper/style/stepperstyle.mjs +23 -0
- package/stepper/style/stepperstyle.mjs.map +1 -0
- package/stepperpanel/BaseStepperPanel.vue +19 -0
- package/stepperpanel/StepperPanel.d.ts +290 -0
- package/stepperpanel/StepperPanel.vue +15 -0
- package/stepperpanel/package.json +11 -0
- package/stepperpanel/stepperpanel.mjs +35 -0
- package/stepperpanel/stepperpanel.mjs.map +1 -0
- package/stepperpanel/style/StepperPanelStyle.d.ts +14 -0
- package/stepperpanel/style/package.json +6 -0
- package/stepperpanel/style/stepperpanelstyle.mjs +8 -0
- package/stepperpanel/style/stepperpanelstyle.mjs.map +1 -0
- package/steps/BaseSteps.vue +33 -0
- package/steps/Steps.d.ts +235 -0
- package/steps/Steps.vue +218 -0
- package/steps/package.json +11 -0
- package/steps/steps.mjs +253 -0
- package/steps/steps.mjs.map +1 -0
- package/steps/style/StepsStyle.d.ts +39 -0
- package/steps/style/package.json +6 -0
- package/steps/style/stepsstyle.mjs +35 -0
- package/steps/style/stepsstyle.mjs.map +1 -0
- package/styleclass/StyleClass.d.ts +105 -0
- package/styleclass/package.json +5 -0
- package/styleclass/style/StyleClassStyle.d.ts +14 -0
- package/styleclass/style/package.json +6 -0
- package/styleclass/style/styleclassstyle.mjs +8 -0
- package/styleclass/style/styleclassstyle.mjs.map +1 -0
- package/styleclass/styleclass.mjs +151 -0
- package/styleclass/styleclass.mjs.map +1 -0
- package/tab/BaseTab.vue +34 -0
- package/tab/Tab.d.ts +150 -0
- package/tab/Tab.vue +167 -0
- package/tab/package.json +11 -0
- package/tab/style/TabStyle.d.ts +19 -0
- package/tab/style/package.json +6 -0
- package/tab/style/tabstyle.mjs +19 -0
- package/tab/style/tabstyle.mjs.map +1 -0
- package/tab/tab.mjs +210 -0
- package/tab/tab.mjs.map +1 -0
- package/tablist/BaseTabList.vue +17 -0
- package/tablist/TabList.d.ts +144 -0
- package/tablist/TabList.vue +165 -0
- package/tablist/package.json +11 -0
- package/tablist/style/TabListStyle.d.ts +39 -0
- package/tablist/style/package.json +6 -0
- package/tablist/style/tabliststyle.mjs +22 -0
- package/tablist/style/tabliststyle.mjs.map +1 -0
- package/tablist/tablist.mjs +213 -0
- package/tablist/tablist.mjs.map +1 -0
- package/tabmenu/BaseTabMenu.vue +34 -0
- package/tabmenu/TabMenu.d.ts +278 -0
- package/tabmenu/TabMenu.vue +262 -0
- package/tabmenu/package.json +11 -0
- package/tabmenu/style/TabMenuStyle.d.ts +43 -0
- package/tabmenu/style/package.json +6 -0
- package/tabmenu/style/tabmenustyle.mjs +31 -0
- package/tabmenu/style/tabmenustyle.mjs.map +1 -0
- package/tabmenu/tabmenu.mjs +312 -0
- package/tabmenu/tabmenu.mjs.map +1 -0
- package/tabpanel/BaseTabPanel.vue +41 -0
- package/tabpanel/TabPanel.d.ts +236 -0
- package/tabpanel/TabPanel.vue +56 -0
- package/tabpanel/package.json +11 -0
- package/tabpanel/style/TabPanelStyle.d.ts +19 -0
- package/tabpanel/style/package.json +6 -0
- package/tabpanel/style/tabpanelstyle.mjs +17 -0
- package/tabpanel/style/tabpanelstyle.mjs.map +1 -0
- package/tabpanel/tabpanel.mjs +112 -0
- package/tabpanel/tabpanel.mjs.map +1 -0
- package/tabpanels/BaseTabPanels.vue +17 -0
- package/tabpanels/TabPanels.d.ts +128 -0
- package/tabpanels/TabPanels.vue +15 -0
- package/tabpanels/package.json +11 -0
- package/tabpanels/style/TabPanelsStyle.d.ts +19 -0
- package/tabpanels/style/package.json +6 -0
- package/tabpanels/style/tabpanelsstyle.mjs +12 -0
- package/tabpanels/style/tabpanelsstyle.mjs.map +1 -0
- package/tabpanels/tabpanels.mjs +34 -0
- package/tabpanels/tabpanels.mjs.map +1 -0
- package/tabs/BaseTabs.vue +42 -0
- package/tabs/Tabs.d.ts +189 -0
- package/tabs/Tabs.vue +45 -0
- package/tabs/package.json +11 -0
- package/tabs/style/TabsStyle.d.ts +19 -0
- package/tabs/style/package.json +6 -0
- package/tabs/style/tabsstyle.mjs +22 -0
- package/tabs/style/tabsstyle.mjs.map +1 -0
- package/tabs/tabs.mjs +88 -0
- package/tabs/tabs.mjs.map +1 -0
- package/tabview/BaseTabView.vue +55 -0
- package/tabview/TabView.d.ts +287 -0
- package/tabview/TabView.vue +376 -0
- package/tabview/package.json +11 -0
- package/tabview/style/TabViewStyle.d.ts +64 -0
- package/tabview/style/package.json +6 -0
- package/tabview/style/tabviewstyle.mjs +47 -0
- package/tabview/style/tabviewstyle.mjs.map +1 -0
- package/tabview/tabview.mjs +458 -0
- package/tabview/tabview.mjs.map +1 -0
- package/tag/BaseTag.vue +22 -0
- package/tag/Tag.d.ts +157 -0
- package/tag/Tag.vue +19 -0
- package/tag/package.json +11 -0
- package/tag/style/TagStyle.d.ts +27 -0
- package/tag/style/package.json +6 -0
- package/tag/style/tagstyle.mjs +30 -0
- package/tag/style/tagstyle.mjs.map +1 -0
- package/tag/tag.mjs +50 -0
- package/tag/tag.mjs.map +1 -0
- package/terminal/BaseTerminal.vue +26 -0
- package/terminal/Terminal.d.ts +180 -0
- package/terminal/Terminal.vue +58 -0
- package/terminal/package.json +11 -0
- package/terminal/style/TerminalStyle.d.ts +51 -0
- package/terminal/style/package.json +6 -0
- package/terminal/style/terminalstyle.mjs +25 -0
- package/terminal/style/terminalstyle.mjs.map +1 -0
- package/terminal/terminal.mjs +115 -0
- package/terminal/terminal.mjs.map +1 -0
- package/terminalservice/TerminalService.d.ts +30 -0
- package/terminalservice/package.json +5 -0
- package/terminalservice/terminalservice.mjs +6 -0
- package/terminalservice/terminalservice.mjs.map +1 -0
- package/textarea/BaseTextarea.vue +28 -0
- package/textarea/Textarea.d.ts +169 -0
- package/textarea/Textarea.vue +56 -0
- package/textarea/package.json +11 -0
- package/textarea/style/TextareaStyle.d.ts +19 -0
- package/textarea/style/package.json +6 -0
- package/textarea/style/textareastyle.mjs +26 -0
- package/textarea/style/textareastyle.mjs.map +1 -0
- package/textarea/textarea.mjs +91 -0
- package/textarea/textarea.mjs.map +1 -0
- package/tieredmenu/BaseTieredMenu.vue +54 -0
- package/tieredmenu/TieredMenu.d.ts +419 -0
- package/tieredmenu/TieredMenu.vue +632 -0
- package/tieredmenu/TieredMenuSub.vue +225 -0
- package/tieredmenu/package.json +11 -0
- package/tieredmenu/style/TieredMenuStyle.d.ts +63 -0
- package/tieredmenu/style/package.json +6 -0
- package/tieredmenu/style/tieredmenustyle.mjs +52 -0
- package/tieredmenu/style/tieredmenustyle.mjs.map +1 -0
- package/tieredmenu/tieredmenu.mjs +1027 -0
- package/tieredmenu/tieredmenu.mjs.map +1 -0
- package/timeline/BaseTimeline.vue +28 -0
- package/timeline/Timeline.d.ts +235 -0
- package/timeline/Timeline.vue +44 -0
- package/timeline/package.json +11 -0
- package/timeline/style/TimelineStyle.d.ts +43 -0
- package/timeline/style/package.json +6 -0
- package/timeline/style/timelinestyle.mjs +26 -0
- package/timeline/style/timelinestyle.mjs.map +1 -0
- package/timeline/timeline.mjs +98 -0
- package/timeline/timeline.mjs.map +1 -0
- package/toast/BaseToast.vue +62 -0
- package/toast/Toast.d.ts +354 -0
- package/toast/Toast.vue +157 -0
- package/toast/ToastMessage.vue +120 -0
- package/toast/package.json +11 -0
- package/toast/style/ToastStyle.d.ts +51 -0
- package/toast/style/package.json +6 -0
- package/toast/style/toaststyle.mjs +60 -0
- package/toast/style/toaststyle.mjs.map +1 -0
- package/toast/toast.mjs +396 -0
- package/toast/toast.mjs.map +1 -0
- package/toasteventbus/package.json +4 -0
- package/toasteventbus/toasteventbus.mjs +6 -0
- package/toasteventbus/toasteventbus.mjs.map +1 -0
- package/toastservice/ToastService.d.ts +52 -0
- package/toastservice/package.json +5 -0
- package/toastservice/toastservice.mjs +26 -0
- package/toastservice/toastservice.mjs.map +1 -0
- package/togglebutton/BaseToggleButton.vue +57 -0
- package/togglebutton/ToggleButton.d.ts +250 -0
- package/togglebutton/ToggleButton.vue +57 -0
- package/togglebutton/package.json +11 -0
- package/togglebutton/style/ToggleButtonStyle.d.ts +27 -0
- package/togglebutton/style/package.json +6 -0
- package/togglebutton/style/togglebuttonstyle.mjs +27 -0
- package/togglebutton/style/togglebuttonstyle.mjs.map +1 -0
- package/togglebutton/togglebutton.mjs +133 -0
- package/togglebutton/togglebutton.mjs.map +1 -0
- package/toggleswitch/BaseToggleSwitch.vue +66 -0
- package/toggleswitch/ToggleSwitch.d.ts +222 -0
- package/toggleswitch/ToggleSwitch.vue +66 -0
- package/toggleswitch/package.json +11 -0
- package/toggleswitch/style/ToggleSwitchStyle.d.ts +27 -0
- package/toggleswitch/style/package.json +6 -0
- package/toggleswitch/style/toggleswitchstyle.mjs +33 -0
- package/toggleswitch/style/toggleswitchstyle.mjs.map +1 -0
- package/toggleswitch/toggleswitch.mjs +143 -0
- package/toggleswitch/toggleswitch.mjs.map +1 -0
- package/toolbar/BaseToolbar.vue +22 -0
- package/toolbar/Toolbar.d.ts +153 -0
- package/toolbar/Toolbar.vue +23 -0
- package/toolbar/package.json +11 -0
- package/toolbar/style/ToolbarStyle.d.ts +31 -0
- package/toolbar/style/package.json +6 -0
- package/toolbar/style/toolbarstyle.mjs +20 -0
- package/toolbar/style/toolbarstyle.mjs.map +1 -0
- package/toolbar/toolbar.mjs +47 -0
- package/toolbar/toolbar.mjs.map +1 -0
- package/tooltip/Tooltip.d.ts +214 -0
- package/tooltip/package.json +5 -0
- package/tooltip/style/TooltipStyle.d.ts +27 -0
- package/tooltip/style/package.json +6 -0
- package/tooltip/style/tooltipstyle.mjs +19 -0
- package/tooltip/style/tooltipstyle.mjs.map +1 -0
- package/tooltip/tooltip.mjs +418 -0
- package/tooltip/tooltip.mjs.map +1 -0
- package/tree/BaseTree.vue +90 -0
- package/tree/Tree.d.ts +525 -0
- package/tree/Tree.vue +257 -0
- package/tree/TreeNode.vue +460 -0
- package/tree/package.json +11 -0
- package/tree/style/TreeStyle.d.ts +71 -0
- package/tree/style/package.json +6 -0
- package/tree/style/treestyle.mjs +49 -0
- package/tree/style/treestyle.mjs.map +1 -0
- package/tree/tree.mjs +918 -0
- package/tree/tree.mjs.map +1 -0
- package/treenode/TreeNode.d.ts +71 -0
- package/treeselect/BaseTreeSelect.vue +96 -0
- package/treeselect/TreeSelect.d.ts +482 -0
- package/treeselect/TreeSelect.vue +515 -0
- package/treeselect/package.json +11 -0
- package/treeselect/style/TreeSelectStyle.d.ts +55 -0
- package/treeselect/style/package.json +6 -0
- package/treeselect/style/treeselectstyle.mjs +55 -0
- package/treeselect/style/treeselectstyle.mjs.map +1 -0
- package/treeselect/treeselect.mjs +745 -0
- package/treeselect/treeselect.mjs.map +1 -0
- package/treetable/BaseTreeTable.vue +182 -0
- package/treetable/BodyCell.vue +234 -0
- package/treetable/FooterCell.vue +104 -0
- package/treetable/HeaderCell.vue +242 -0
- package/treetable/TreeTable.d.ts +822 -0
- package/treetable/TreeTable.vue +877 -0
- package/treetable/TreeTableRow.vue +455 -0
- package/treetable/package.json +11 -0
- package/treetable/style/TreeTableStyle.d.ts +99 -0
- package/treetable/style/package.json +6 -0
- package/treetable/style/treetablestyle.mjs +109 -0
- package/treetable/style/treetablestyle.mjs.map +1 -0
- package/treetable/treetable.mjs +2272 -0
- package/treetable/treetable.mjs.map +1 -0
- package/ts-helpers.d.ts +43 -0
- package/umd/primevue.min.js +1 -0
- package/useconfirm/UseConfirm.d.ts +6 -0
- package/useconfirm/package.json +5 -0
- package/useconfirm/useconfirm.mjs +13 -0
- package/useconfirm/useconfirm.mjs.map +1 -0
- package/usedialog/UseDialog.d.ts +5 -0
- package/usedialog/package.json +5 -0
- package/usedialog/usedialog.mjs +13 -0
- package/usedialog/usedialog.mjs.map +1 -0
- package/usestyle/UseStyle.d.ts +1 -0
- package/usestyle/package.json +5 -0
- package/usestyle/usestyle.mjs +2 -0
- package/usestyle/usestyle.mjs.map +1 -0
- package/usetoast/UseToast.d.ts +3 -0
- package/usetoast/package.json +5 -0
- package/usetoast/usetoast.mjs +13 -0
- package/usetoast/usetoast.mjs.map +1 -0
- package/utils/Utils.d.ts +127 -0
- package/utils/package.json +5 -0
- package/utils/utils.mjs +1292 -0
- package/utils/utils.mjs.map +1 -0
- package/vetur-attributes.json +4778 -0
- package/vetur-tags.json +1643 -0
- package/virtualscroller/BaseVirtualScroller.vue +101 -0
- package/virtualscroller/VirtualScroller.d.ts +537 -0
- package/virtualscroller/VirtualScroller.vue +693 -0
- package/virtualscroller/package.json +11 -0
- package/virtualscroller/style/VirtualScrollerStyle.d.ts +35 -0
- package/virtualscroller/style/package.json +6 -0
- package/virtualscroller/style/virtualscrollerstyle.mjs +10 -0
- package/virtualscroller/style/virtualscrollerstyle.mjs.map +1 -0
- package/virtualscroller/virtualscroller.mjs +915 -0
- package/virtualscroller/virtualscroller.mjs.map +1 -0
- package/web-types.json +18296 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datatable.mjs","sources":["../../src/datatable/BaseDataTable.vue","../../src/datatable/RowCheckbox.vue","../../src/datatable/RowCheckbox.vue?vue&type=template&id=6e19787b&lang.js","../../src/datatable/RowRadioButton.vue","../../src/datatable/RowRadioButton.vue?vue&type=template&id=7c791223&lang.js","../../src/datatable/BodyCell.vue","../../src/datatable/BodyCell.vue?vue&type=template&id=014512a6&lang.js","../../src/datatable/BodyRow.vue","../../src/datatable/BodyRow.vue?vue&type=template&id=e7cae31a&lang.js","../../src/datatable/TableBody.vue","../../src/datatable/TableBody.vue?vue&type=template&id=89ffba5e&lang.js","../../src/datatable/FooterCell.vue","../../src/datatable/FooterCell.vue?vue&type=template&id=29702792&lang.js","../../src/datatable/TableFooter.vue","../../src/datatable/TableFooter.vue?vue&type=template&id=47730bcb&lang.js","../../src/datatable/ColumnFilter.vue","../../src/datatable/ColumnFilter.vue?vue&type=template&id=6b9c113c&lang.js","../../src/datatable/HeaderCheckbox.vue","../../src/datatable/HeaderCheckbox.vue?vue&type=template&id=01fb3027&lang.js","../../src/datatable/HeaderCell.vue","../../src/datatable/HeaderCell.vue?vue&type=template&id=bad89304&lang.js","../../src/datatable/TableHeader.vue","../../src/datatable/TableHeader.vue?vue&type=template&id=2a4576b9&lang.js","../../src/datatable/DataTable.vue","../../src/datatable/DataTable.vue?vue&type=template&id=1b7a8dc0&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevuelab/core/basecomponent';\nimport DataTableStyle from 'primevuelab/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 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 '@primevuelab/core/basecomponent';\nimport CheckIcon from '@primevuelab/icons/check';\nimport Checkbox from 'primevuelab/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 '@primevuelab/core/basecomponent';\nimport CheckIcon from '@primevuelab/icons/check';\nimport Checkbox from 'primevuelab/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 '@primevuelab/core/basecomponent';\nimport RadioButton from 'primevuelab/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 '@primevuelab/core/basecomponent';\nimport RadioButton from 'primevuelab/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=\"{ ...getColumnPT('pcRowEditorInit'), ...editButtonProps.init }\"\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=\"{ ...getColumnPT('pcRowEditorSave'), ...editButtonProps.save }\"\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=\"{ ...getColumnPT('pcRowEditorCancel'), ...editButtonProps.cancel }\"\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 BaseComponent from '@primevuelab/core/basecomponent';\nimport { DomHandler, ObjectUtils } from '@primevuelab/core/utils';\nimport BarsIcon from '@primevuelab/icons/bars';\nimport CheckIcon from '@primevuelab/icons/check';\nimport ChevronDownIcon from '@primevuelab/icons/chevrondown';\nimport ChevronRightIcon from '@primevuelab/icons/chevronright';\nimport PencilIcon from '@primevuelab/icons/pencil';\nimport TimesIcon from '@primevuelab/icons/times';\nimport Button from 'primevuelab/button';\nimport OverlayEventBus from 'primevuelab/overlayeventbus';\nimport Ripple from 'primevuelab/ripple';\nimport { mergeProps } from 'vue';\nimport RowCheckbox from './RowCheckbox.vue';\nimport RowRadioButton from './RowRadioButton.vue';\n\nexport default {\n name: 'BodyCell',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['cell-edit-init', 'cell-edit-complete', 'cell-edit-cancel', 'row-edit-init', 'row-edit-save', 'row-edit-cancel', 'row-toggle', 'radio-change', 'checkbox-change', 'editing-meta-change'],\n props: {\n rowData: {\n type: Object,\n default: null\n },\n column: {\n type: Object,\n default: null\n },\n frozenRow: {\n type: Boolean,\n default: false\n },\n rowIndex: {\n type: Number,\n default: null\n },\n index: {\n type: Number,\n default: null\n },\n isRowExpanded: {\n type: Boolean,\n default: false\n },\n selected: {\n type: Boolean,\n default: false\n },\n editing: {\n type: Boolean,\n default: false\n },\n editingMeta: {\n type: Object,\n default: null\n },\n editMode: {\n type: String,\n default: null\n },\n virtualScrollerContentProps: {\n type: Object,\n default: null\n },\n ariaControls: {\n type: String,\n default: null\n },\n name: {\n type: String,\n default: null\n },\n expandedRowIcon: {\n type: String,\n default: null\n },\n collapsedRowIcon: {\n type: String,\n default: null\n },\n editButtonProps: {\n type: Object,\n default: null\n }\n },\n documentEditListener: null,\n selfClick: false,\n overlayEventListener: null,\n data() {\n return {\n d_editing: this.editing,\n styleObject: {}\n };\n },\n watch: {\n editing(newValue) {\n this.d_editing = newValue;\n },\n '$data.d_editing': function (newValue) {\n this.$emit('editing-meta-change', { data: this.rowData, field: this.field || `field_${this.index}`, index: this.rowIndex, editing: newValue });\n }\n },\n mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n\n if (this.d_editing && (this.editMode === 'cell' || (this.editMode === 'row' && this.columnProp('rowEditor')))) {\n setTimeout(() => {\n const focusableEl = DomHandler.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 ObjectUtils.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 ObjectUtils.resolveFieldData(this.rowData, this.field);\n },\n toggleRow(event) {\n this.$emit('row-toggle', {\n originalEvent: event,\n data: this.rowData\n });\n },\n toggleRowWithRadio(event, index) {\n this.$emit('radio-change', { originalEvent: event.originalEvent, index: index, data: event.data });\n },\n toggleRowWithCheckbox(event, index) {\n this.$emit('checkbox-change', { originalEvent: event.originalEvent, index: index, data: event.data });\n },\n isEditable() {\n return this.column.children && this.column.children.editor != null;\n },\n bindDocumentEditListener() {\n if (!this.documentEditListener) {\n this.documentEditListener = (event) => {\n if (!this.selfClick) {\n this.completeEdit(event, 'outside');\n }\n\n this.selfClick = false;\n };\n\n document.addEventListener('click', this.documentEditListener);\n }\n },\n unbindDocumentEditListener() {\n if (this.documentEditListener) {\n document.removeEventListener('click', this.documentEditListener);\n this.documentEditListener = null;\n this.selfClick = false;\n }\n },\n switchCellToViewMode() {\n this.d_editing = false;\n this.unbindDocumentEditListener();\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n },\n onClick(event) {\n if (this.editMode === 'cell' && this.isEditable()) {\n this.selfClick = true;\n\n if (!this.d_editing) {\n this.d_editing = true;\n this.bindDocumentEditListener();\n this.$emit('cell-edit-init', { originalEvent: event, data: this.rowData, field: this.field, index: this.rowIndex });\n\n this.overlayEventListener = (e) => {\n if (this.$el && this.$el.contains(e.target)) {\n this.selfClick = true;\n }\n };\n\n OverlayEventBus.on('overlay-click', this.overlayEventListener);\n }\n }\n },\n completeEdit(event, type) {\n const completeEvent = {\n originalEvent: event,\n data: this.rowData,\n newData: this.editingRowData,\n value: this.rowData[this.field],\n newValue: this.editingRowData[this.field],\n field: this.field,\n index: this.rowIndex,\n type: type,\n defaultPrevented: false,\n preventDefault: function () {\n this.defaultPrevented = true;\n }\n };\n\n this.$emit('cell-edit-complete', completeEvent);\n\n if (!completeEvent.defaultPrevented) {\n this.switchCellToViewMode();\n }\n },\n onKeyDown(event) {\n if (this.editMode === 'cell') {\n switch (event.code) {\n case 'Enter':\n case 'NumpadEnter':\n this.completeEdit(event, 'enter');\n break;\n\n case 'Escape':\n this.switchCellToViewMode();\n this.$emit('cell-edit-cancel', { originalEvent: event, data: this.rowData, field: this.field, index: this.rowIndex });\n break;\n\n case 'Tab':\n this.completeEdit(event, 'tab');\n\n if (event.shiftKey) this.moveToPreviousCell(event);\n else this.moveToNextCell(event);\n break;\n\n default:\n break;\n }\n }\n },\n moveToPreviousCell(event) {\n let currentCell = this.findCell(event.target);\n let targetCell = this.findPreviousEditableColumn(currentCell);\n\n if (targetCell) {\n DomHandler.invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n },\n moveToNextCell(event) {\n let currentCell = this.findCell(event.target);\n let targetCell = this.findNextEditableColumn(currentCell);\n\n if (targetCell) {\n DomHandler.invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n },\n findCell(element) {\n if (element) {\n let cell = element;\n\n while (cell && !DomHandler.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 (DomHandler.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 (DomHandler.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 right = 0;\n let next = DomHandler.getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n right = DomHandler.getOuterWidth(next) + parseFloat(next.style.right || 0);\n }\n\n this.styleObject.right = right + 'px';\n } else {\n let left = 0;\n let prev = DomHandler.getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n left = DomHandler.getOuterWidth(prev) + parseFloat(prev.style.left || 0);\n }\n\n this.styleObject.left = left + '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=\"{ ...getColumnPT('pcRowEditorInit'), ...editButtonProps.init }\"\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=\"{ ...getColumnPT('pcRowEditorSave'), ...editButtonProps.save }\"\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=\"{ ...getColumnPT('pcRowEditorCancel'), ...editButtonProps.cancel }\"\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 BaseComponent from '@primevuelab/core/basecomponent';\nimport { DomHandler, ObjectUtils } from '@primevuelab/core/utils';\nimport BarsIcon from '@primevuelab/icons/bars';\nimport CheckIcon from '@primevuelab/icons/check';\nimport ChevronDownIcon from '@primevuelab/icons/chevrondown';\nimport ChevronRightIcon from '@primevuelab/icons/chevronright';\nimport PencilIcon from '@primevuelab/icons/pencil';\nimport TimesIcon from '@primevuelab/icons/times';\nimport Button from 'primevuelab/button';\nimport OverlayEventBus from 'primevuelab/overlayeventbus';\nimport Ripple from 'primevuelab/ripple';\nimport { mergeProps } from 'vue';\nimport RowCheckbox from './RowCheckbox.vue';\nimport RowRadioButton from './RowRadioButton.vue';\n\nexport default {\n name: 'BodyCell',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['cell-edit-init', 'cell-edit-complete', 'cell-edit-cancel', 'row-edit-init', 'row-edit-save', 'row-edit-cancel', 'row-toggle', 'radio-change', 'checkbox-change', 'editing-meta-change'],\n props: {\n rowData: {\n type: Object,\n default: null\n },\n column: {\n type: Object,\n default: null\n },\n frozenRow: {\n type: Boolean,\n default: false\n },\n rowIndex: {\n type: Number,\n default: null\n },\n index: {\n type: Number,\n default: null\n },\n isRowExpanded: {\n type: Boolean,\n default: false\n },\n selected: {\n type: Boolean,\n default: false\n },\n editing: {\n type: Boolean,\n default: false\n },\n editingMeta: {\n type: Object,\n default: null\n },\n editMode: {\n type: String,\n default: null\n },\n virtualScrollerContentProps: {\n type: Object,\n default: null\n },\n ariaControls: {\n type: String,\n default: null\n },\n name: {\n type: String,\n default: null\n },\n expandedRowIcon: {\n type: String,\n default: null\n },\n collapsedRowIcon: {\n type: String,\n default: null\n },\n editButtonProps: {\n type: Object,\n default: null\n }\n },\n documentEditListener: null,\n selfClick: false,\n overlayEventListener: null,\n data() {\n return {\n d_editing: this.editing,\n styleObject: {}\n };\n },\n watch: {\n editing(newValue) {\n this.d_editing = newValue;\n },\n '$data.d_editing': function (newValue) {\n this.$emit('editing-meta-change', { data: this.rowData, field: this.field || `field_${this.index}`, index: this.rowIndex, editing: newValue });\n }\n },\n mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n\n if (this.d_editing && (this.editMode === 'cell' || (this.editMode === 'row' && this.columnProp('rowEditor')))) {\n setTimeout(() => {\n const focusableEl = DomHandler.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 ObjectUtils.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 ObjectUtils.resolveFieldData(this.rowData, this.field);\n },\n toggleRow(event) {\n this.$emit('row-toggle', {\n originalEvent: event,\n data: this.rowData\n });\n },\n toggleRowWithRadio(event, index) {\n this.$emit('radio-change', { originalEvent: event.originalEvent, index: index, data: event.data });\n },\n toggleRowWithCheckbox(event, index) {\n this.$emit('checkbox-change', { originalEvent: event.originalEvent, index: index, data: event.data });\n },\n isEditable() {\n return this.column.children && this.column.children.editor != null;\n },\n bindDocumentEditListener() {\n if (!this.documentEditListener) {\n this.documentEditListener = (event) => {\n if (!this.selfClick) {\n this.completeEdit(event, 'outside');\n }\n\n this.selfClick = false;\n };\n\n document.addEventListener('click', this.documentEditListener);\n }\n },\n unbindDocumentEditListener() {\n if (this.documentEditListener) {\n document.removeEventListener('click', this.documentEditListener);\n this.documentEditListener = null;\n this.selfClick = false;\n }\n },\n switchCellToViewMode() {\n this.d_editing = false;\n this.unbindDocumentEditListener();\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n },\n onClick(event) {\n if (this.editMode === 'cell' && this.isEditable()) {\n this.selfClick = true;\n\n if (!this.d_editing) {\n this.d_editing = true;\n this.bindDocumentEditListener();\n this.$emit('cell-edit-init', { originalEvent: event, data: this.rowData, field: this.field, index: this.rowIndex });\n\n this.overlayEventListener = (e) => {\n if (this.$el && this.$el.contains(e.target)) {\n this.selfClick = true;\n }\n };\n\n OverlayEventBus.on('overlay-click', this.overlayEventListener);\n }\n }\n },\n completeEdit(event, type) {\n const completeEvent = {\n originalEvent: event,\n data: this.rowData,\n newData: this.editingRowData,\n value: this.rowData[this.field],\n newValue: this.editingRowData[this.field],\n field: this.field,\n index: this.rowIndex,\n type: type,\n defaultPrevented: false,\n preventDefault: function () {\n this.defaultPrevented = true;\n }\n };\n\n this.$emit('cell-edit-complete', completeEvent);\n\n if (!completeEvent.defaultPrevented) {\n this.switchCellToViewMode();\n }\n },\n onKeyDown(event) {\n if (this.editMode === 'cell') {\n switch (event.code) {\n case 'Enter':\n case 'NumpadEnter':\n this.completeEdit(event, 'enter');\n break;\n\n case 'Escape':\n this.switchCellToViewMode();\n this.$emit('cell-edit-cancel', { originalEvent: event, data: this.rowData, field: this.field, index: this.rowIndex });\n break;\n\n case 'Tab':\n this.completeEdit(event, 'tab');\n\n if (event.shiftKey) this.moveToPreviousCell(event);\n else this.moveToNextCell(event);\n break;\n\n default:\n break;\n }\n }\n },\n moveToPreviousCell(event) {\n let currentCell = this.findCell(event.target);\n let targetCell = this.findPreviousEditableColumn(currentCell);\n\n if (targetCell) {\n DomHandler.invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n },\n moveToNextCell(event) {\n let currentCell = this.findCell(event.target);\n let targetCell = this.findNextEditableColumn(currentCell);\n\n if (targetCell) {\n DomHandler.invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n },\n findCell(element) {\n if (element) {\n let cell = element;\n\n while (cell && !DomHandler.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 (DomHandler.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 (DomHandler.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 right = 0;\n let next = DomHandler.getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n right = DomHandler.getOuterWidth(next) + parseFloat(next.style.right || 0);\n }\n\n this.styleObject.right = right + 'px';\n } else {\n let left = 0;\n let prev = DomHandler.getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n left = DomHandler.getOuterWidth(prev) + parseFloat(prev.style.left || 0);\n }\n\n this.styleObject.left = left + '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 BaseComponent from '@primevuelab/core/basecomponent';\nimport { ObjectUtils } from '@primevuelab/core/utils';\nimport ChevronDownIcon from '@primevuelab/icons/chevrondown';\nimport ChevronRightIcon from '@primevuelab/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?.[ObjectUtils.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 ObjectUtils.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 = ObjectUtils.resolveFieldData(this.value[this.rowIndex], field);\n const previousRowFieldData = ObjectUtils.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 = ObjectUtils.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 = ObjectUtils.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 : ObjectUtils.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 (ObjectUtils.isNotEmpty(_selectionMode) && _selectionMode === 'multiple') {\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[ObjectUtils.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 = ObjectUtils.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[ObjectUtils.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 = ObjectUtils.resolveFieldData(this.rowData, this.groupRowsBy);\n const prevRowData = this.value[this.rowIndex - 1];\n\n if (prevRowData) {\n const previousRowFieldData = ObjectUtils.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 = ObjectUtils.resolveFieldData(this.rowData, this.groupRowsBy);\n let nextRowData = this.value[this.rowIndex + 1];\n\n if (nextRowData) {\n let nextRowFieldData = ObjectUtils.resolveFieldData(nextRowData, this.groupRowsBy);\n\n return currentRowFieldData !== nextRowFieldData;\n } else {\n return true;\n }\n }\n },\n columnsLength() {\n if (this.columns) {\n let hiddenColLength = 0;\n\n this.columns.forEach((column) => {\n if (this.columnProp(column, 'selectionMode') === 'single') hiddenColLength--;\n if (this.columnProp(column, 'hidden')) hiddenColLength++;\n });\n\n return this.columns.length - hiddenColLength;\n }\n\n return 0;\n }\n },\n components: {\n DTBodyCell: BodyCell,\n ChevronDownIcon: ChevronDownIcon,\n ChevronRightIcon: ChevronRightIcon\n }\n};\n</script>\n","<template>\n <template v-if=\"!empty\">\n <tr v-if=\"templates['groupheader'] && rowGroupMode === 'subheader' && shouldRenderRowGroupHeader\" :class=\"cx('rowGroupHeader')\" :style=\"rowGroupHeaderStyle\" role=\"row\" v-bind=\"ptm('rowGroupHeader')\">\n <td :colspan=\"columnsLength - 1\" v-bind=\"{ ...getColumnPT('bodycell'), ...ptm('rowGroupHeaderCell') }\">\n <button v-if=\"expandableRowGroups\" :class=\"cx('rowToggleButton')\" @click=\"onRowGroupToggle\" type=\"button\" v-bind=\"ptm('rowToggleButton')\">\n <component v-if=\"templates['rowtoggleicon'] || templates['rowgrouptogglericon']\" :is=\"templates['rowtoggleicon'] || templates['rowgrouptogglericon']\" :expanded=\"isRowGroupExpanded\" />\n <template v-else>\n <span v-if=\"isRowGroupExpanded && expandedRowIcon\" :class=\"[cx('rowToggleIcon'), expandedRowIcon]\" v-bind=\"ptm('rowToggleIcon')\" />\n <ChevronDownIcon v-else-if=\"isRowGroupExpanded && !expandedRowIcon\" :class=\"cx('rowToggleIcon')\" v-bind=\"ptm('rowToggleIcon')\" />\n <span v-else-if=\"!isRowGroupExpanded && collapsedRowIcon\" :class=\"[cx('rowToggleIcon'), collapsedRowIcon]\" v-bind=\"ptm('rowToggleIcon')\" />\n <ChevronRightIcon v-else-if=\"!isRowGroupExpanded && !collapsedRowIcon\" :class=\"cx('rowToggleIcon')\" v-bind=\"ptm('rowToggleIcon')\" />\n </template>\n </button>\n <component :is=\"templates['groupheader']\" :data=\"rowData\" :index=\"rowIndex\" />\n </td>\n </tr>\n <tr\n v-if=\"expandableRowGroups ? isRowGroupExpanded : true\"\n :class=\"rowClasses\"\n :style=\"rowStyles\"\n :tabindex=\"rowTabindex\"\n role=\"row\"\n :aria-selected=\"selectionMode ? isSelected : null\"\n @click=\"onRowClick\"\n @dblclick=\"onRowDblClick\"\n @contextmenu=\"onRowRightClick\"\n @touchend=\"onRowTouchEnd\"\n @keydown.self=\"onRowKeyDown\"\n @mousedown=\"onRowMouseDown\"\n @dragstart=\"onRowDragStart\"\n @dragover=\"onRowDragOver\"\n @dragleave=\"onRowDragLeave\"\n @dragend=\"onRowDragEnd\"\n @drop=\"onRowDrop\"\n v-bind=\"getBodyRowPTOptions('bodyRow')\"\n :data-p-index=\"rowIndex\"\n :data-p-selectable-row=\"selectionMode ? true : false\"\n :data-p-selected=\"selection && isSelected\"\n :data-p-selected-contextmenu=\"contextMenuSelection && isSelectedWithContextMenu\"\n >\n <template v-for=\"(col, i) of columns\">\n <DTBodyCell\n v-if=\"shouldRenderBodyCell(col)\"\n :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\"\n :rowData=\"rowData\"\n :column=\"col\"\n :rowIndex=\"rowIndex\"\n :index=\"i\"\n :selected=\"isSelected\"\n :frozenRow=\"frozenRow\"\n :rowspan=\"rowGroupMode === 'rowspan' ? calculateRowGroupSize(col) : null\"\n :editMode=\"editMode\"\n :editing=\"editMode === 'row' && isRowEditing\"\n :editingMeta=\"editingMeta\"\n :virtualScrollerContentProps=\"virtualScrollerContentProps\"\n :ariaControls=\"expandedRowId + '_' + rowIndex + '_expansion'\"\n :name=\"nameAttributeSelector\"\n :isRowExpanded=\"d_rowExpanded\"\n :expandedRowIcon=\"expandedRowIcon\"\n :collapsedRowIcon=\"collapsedRowIcon\"\n :editButtonProps=\"editButtonProps\"\n @radio-change=\"onRadioChange\"\n @checkbox-change=\"onCheckboxChange\"\n @row-toggle=\"onRowToggle\"\n @cell-edit-init=\"onCellEditInit\"\n @cell-edit-complete=\"onCellEditComplete\"\n @cell-edit-cancel=\"onCellEditCancel\"\n @row-edit-init=\"onRowEditInit\"\n @row-edit-save=\"onRowEditSave\"\n @row-edit-cancel=\"onRowEditCancel\"\n @editing-meta-change=\"onEditingMetaChange\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </tr>\n <tr v-if=\"templates['expansion'] && expandedRows && d_rowExpanded\" :id=\"expandedRowId + '_' + rowIndex + '_expansion'\" :class=\"cx('rowExpansion')\" role=\"row\" v-bind=\"ptm('rowExpansion')\">\n <td :colspan=\"columnsLength\" v-bind=\"{ ...getColumnPT('bodycell'), ...ptm('rowExpansionCell') }\">\n <component :is=\"templates['expansion']\" :data=\"rowData\" :index=\"rowIndex\" />\n </td>\n </tr>\n <tr v-if=\"templates['groupfooter'] && rowGroupMode === 'subheader' && shouldRenderRowGroupFooter\" :class=\"cx('rowGroupFooter')\" role=\"row\" v-bind=\"ptm('rowGroupFooter')\">\n <td :colspan=\"columnsLength - 1\" v-bind=\"{ ...getColumnPT('bodycell'), ...ptm('rowGroupFooterCell') }\">\n <component :is=\"templates['groupfooter']\" :data=\"rowData\" :index=\"rowIndex\" />\n </td>\n </tr>\n </template>\n <tr v-else :class=\"cx('emptyMessage')\" role=\"row\" v-bind=\"ptm('emptyMessage')\">\n <td :colspan=\"columnsLength\" v-bind=\"{ ...getColumnPT('bodycell'), ...ptm('emptyMessageCell') }\">\n <component v-if=\"templates.empty\" :is=\"templates.empty\" />\n </td>\n </tr>\n</template>\n\n<script>\nimport BaseComponent from '@primevuelab/core/basecomponent';\nimport { ObjectUtils } from '@primevuelab/core/utils';\nimport ChevronDownIcon from '@primevuelab/icons/chevrondown';\nimport ChevronRightIcon from '@primevuelab/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?.[ObjectUtils.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 ObjectUtils.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 = ObjectUtils.resolveFieldData(this.value[this.rowIndex], field);\n const previousRowFieldData = ObjectUtils.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 = ObjectUtils.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 = ObjectUtils.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 : ObjectUtils.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 (ObjectUtils.isNotEmpty(_selectionMode) && _selectionMode === 'multiple') {\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[ObjectUtils.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 = ObjectUtils.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[ObjectUtils.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 = ObjectUtils.resolveFieldData(this.rowData, this.groupRowsBy);\n const prevRowData = this.value[this.rowIndex - 1];\n\n if (prevRowData) {\n const previousRowFieldData = ObjectUtils.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 = ObjectUtils.resolveFieldData(this.rowData, this.groupRowsBy);\n let nextRowData = this.value[this.rowIndex + 1];\n\n if (nextRowData) {\n let nextRowFieldData = ObjectUtils.resolveFieldData(nextRowData, this.groupRowsBy);\n\n return currentRowFieldData !== nextRowFieldData;\n } else {\n return true;\n }\n }\n },\n columnsLength() {\n if (this.columns) {\n let hiddenColLength = 0;\n\n this.columns.forEach((column) => {\n if (this.columnProp(column, 'selectionMode') === 'single') hiddenColLength--;\n if (this.columnProp(column, 'hidden')) hiddenColLength++;\n });\n\n return this.columns.length - hiddenColLength;\n }\n\n return 0;\n }\n },\n components: {\n DTBodyCell: BodyCell,\n ChevronDownIcon: ChevronDownIcon,\n ChevronRightIcon: ChevronRightIcon\n }\n};\n</script>\n","<template>\n <tbody :ref=\"bodyRef\" :class=\"cx('tbody')\" role=\"rowgroup\" :style=\"bodyContentStyle\" v-bind=\"ptm('tbody', ptmTBodyOptions)\">\n <template v-if=\"!empty\">\n <template v-for=\"(rowData, rowIndex) of value\" :key=\"getRowKey(rowData, rowIndex)\">\n <DTBodyRow\n :rowData=\"rowData\"\n :index=\"rowIndex\"\n :value=\"value\"\n :columns=\"columns\"\n :frozenRow=\"frozenRow\"\n :empty=\"empty\"\n :first=\"first\"\n :dataKey=\"dataKey\"\n :selection=\"selection\"\n :selectionKeys=\"selectionKeys\"\n :selectionMode=\"selectionMode\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :rowGroupMode=\"rowGroupMode\"\n :groupRowsBy=\"groupRowsBy\"\n :expandableRowGroups=\"expandableRowGroups\"\n :rowClass=\"rowClass\"\n :rowStyle=\"rowStyle\"\n :editMode=\"editMode\"\n :compareSelectionBy=\"compareSelectionBy\"\n :scrollable=\"scrollable\"\n :expandedRowIcon=\"expandedRowIcon\"\n :collapsedRowIcon=\"collapsedRowIcon\"\n :expandedRows=\"expandedRows\"\n :expandedRowGroups=\"expandedRowGroups\"\n :editingRows=\"editingRows\"\n :editingRowKeys=\"editingRowKeys\"\n :templates=\"templates\"\n :editButtonProps=\"editButtonProps\"\n :virtualScrollerContentProps=\"virtualScrollerContentProps\"\n :isVirtualScrollerDisabled=\"isVirtualScrollerDisabled\"\n :editingMeta=\"editingMeta\"\n :rowGroupHeaderStyle=\"rowGroupHeaderStyle\"\n :expandedRowId=\"expandedRowId\"\n :nameAttributeSelector=\"nameAttributeSelector\"\n @rowgroup-toggle=\"$emit('rowgroup-toggle', $event)\"\n @row-click=\"$emit('row-click', $event)\"\n @row-dblclick=\"$emit('row-dblclick', $event)\"\n @row-rightclick=\"$emit('row-rightclick', $event)\"\n @row-touchend=\"$emit('row-touchend', $event)\"\n @row-keydown=\"$emit('row-keydown', $event)\"\n @row-mousedown=\"$emit('row-mousedown', $event)\"\n @row-dragstart=\"$emit('row-dragstart', $event)\"\n @row-dragover=\"$emit('row-dragover', $event)\"\n @row-dragleave=\"$emit('row-dragleave', $event)\"\n @row-dragend=\"$emit('row-dragend', $event)\"\n @row-drop=\"$emit('row-drop', $event)\"\n @row-toggle=\"$emit('row-toggle', $event)\"\n @radio-change=\"$emit('radio-change', $event)\"\n @checkbox-change=\"$emit('checkbox-change', $event)\"\n @cell-edit-init=\"$emit('cell-edit-init', $event)\"\n @cell-edit-complete=\"$emit('cell-edit-complete', $event)\"\n @cell-edit-cancel=\"$emit('cell-edit-cancel', $event)\"\n @row-edit-init=\"$emit('row-edit-init', $event)\"\n @row-edit-save=\"$emit('row-edit-save', $event)\"\n @row-edit-cancel=\"$emit('row-edit-cancel', $event)\"\n @editing-meta-change=\"$emit('editing-meta-change', $event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </template>\n <DTBodyRow v-else :empty=\"empty\" :columns=\"columns\" :templates=\"templates\" />\n </tbody>\n</template>\n\n<script>\nimport BaseComponent from '@primevuelab/core/basecomponent';\nimport { DomHandler, ObjectUtils, UniqueComponentId } from '@primevuelab/core/utils';\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 ? ObjectUtils.resolveFieldData(rowData, this.dataKey) : rowIndex;\n },\n updateFrozenRowStickyPosition() {\n this.$el.style.top = DomHandler.getOuterHeight(this.$el.previousElementSibling) + 'px';\n },\n updateFrozenRowGroupHeaderStickyPosition() {\n let tableHeaderHeight = DomHandler.getOuterHeight(this.$el.previousElementSibling);\n\n this.rowGroupHeaderStyleObject.top = tableHeaderHeight + 'px';\n },\n getVirtualScrollerProp(option, options) {\n options = options || this.virtualScrollerContentProps;\n\n return options ? options[option] : null;\n },\n bodyRef(el) {\n // For VirtualScroller\n const contentRef = this.getVirtualScrollerProp('contentRef');\n\n contentRef && contentRef(el);\n }\n },\n computed: {\n rowGroupHeaderStyle() {\n if (this.scrollable) {\n return { top: this.rowGroupHeaderStyleObject.top };\n }\n\n return null;\n },\n bodyContentStyle() {\n return this.getVirtualScrollerProp('contentStyle');\n },\n ptmTBodyOptions() {\n return {\n context: {\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n },\n expandedRowId() {\n return UniqueComponentId();\n },\n nameAttributeSelector() {\n return UniqueComponentId();\n }\n },\n components: {\n DTBodyRow: BodyRow\n }\n};\n</script>\n","<template>\n <tbody :ref=\"bodyRef\" :class=\"cx('tbody')\" role=\"rowgroup\" :style=\"bodyContentStyle\" v-bind=\"ptm('tbody', ptmTBodyOptions)\">\n <template v-if=\"!empty\">\n <template v-for=\"(rowData, rowIndex) of value\" :key=\"getRowKey(rowData, rowIndex)\">\n <DTBodyRow\n :rowData=\"rowData\"\n :index=\"rowIndex\"\n :value=\"value\"\n :columns=\"columns\"\n :frozenRow=\"frozenRow\"\n :empty=\"empty\"\n :first=\"first\"\n :dataKey=\"dataKey\"\n :selection=\"selection\"\n :selectionKeys=\"selectionKeys\"\n :selectionMode=\"selectionMode\"\n :contextMenu=\"contextMenu\"\n :contextMenuSelection=\"contextMenuSelection\"\n :rowGroupMode=\"rowGroupMode\"\n :groupRowsBy=\"groupRowsBy\"\n :expandableRowGroups=\"expandableRowGroups\"\n :rowClass=\"rowClass\"\n :rowStyle=\"rowStyle\"\n :editMode=\"editMode\"\n :compareSelectionBy=\"compareSelectionBy\"\n :scrollable=\"scrollable\"\n :expandedRowIcon=\"expandedRowIcon\"\n :collapsedRowIcon=\"collapsedRowIcon\"\n :expandedRows=\"expandedRows\"\n :expandedRowGroups=\"expandedRowGroups\"\n :editingRows=\"editingRows\"\n :editingRowKeys=\"editingRowKeys\"\n :templates=\"templates\"\n :editButtonProps=\"editButtonProps\"\n :virtualScrollerContentProps=\"virtualScrollerContentProps\"\n :isVirtualScrollerDisabled=\"isVirtualScrollerDisabled\"\n :editingMeta=\"editingMeta\"\n :rowGroupHeaderStyle=\"rowGroupHeaderStyle\"\n :expandedRowId=\"expandedRowId\"\n :nameAttributeSelector=\"nameAttributeSelector\"\n @rowgroup-toggle=\"$emit('rowgroup-toggle', $event)\"\n @row-click=\"$emit('row-click', $event)\"\n @row-dblclick=\"$emit('row-dblclick', $event)\"\n @row-rightclick=\"$emit('row-rightclick', $event)\"\n @row-touchend=\"$emit('row-touchend', $event)\"\n @row-keydown=\"$emit('row-keydown', $event)\"\n @row-mousedown=\"$emit('row-mousedown', $event)\"\n @row-dragstart=\"$emit('row-dragstart', $event)\"\n @row-dragover=\"$emit('row-dragover', $event)\"\n @row-dragleave=\"$emit('row-dragleave', $event)\"\n @row-dragend=\"$emit('row-dragend', $event)\"\n @row-drop=\"$emit('row-drop', $event)\"\n @row-toggle=\"$emit('row-toggle', $event)\"\n @radio-change=\"$emit('radio-change', $event)\"\n @checkbox-change=\"$emit('checkbox-change', $event)\"\n @cell-edit-init=\"$emit('cell-edit-init', $event)\"\n @cell-edit-complete=\"$emit('cell-edit-complete', $event)\"\n @cell-edit-cancel=\"$emit('cell-edit-cancel', $event)\"\n @row-edit-init=\"$emit('row-edit-init', $event)\"\n @row-edit-save=\"$emit('row-edit-save', $event)\"\n @row-edit-cancel=\"$emit('row-edit-cancel', $event)\"\n @editing-meta-change=\"$emit('editing-meta-change', $event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </template>\n <DTBodyRow v-else :empty=\"empty\" :columns=\"columns\" :templates=\"templates\" />\n </tbody>\n</template>\n\n<script>\nimport BaseComponent from '@primevuelab/core/basecomponent';\nimport { DomHandler, ObjectUtils, UniqueComponentId } from '@primevuelab/core/utils';\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 ? ObjectUtils.resolveFieldData(rowData, this.dataKey) : rowIndex;\n },\n updateFrozenRowStickyPosition() {\n this.$el.style.top = DomHandler.getOuterHeight(this.$el.previousElementSibling) + 'px';\n },\n updateFrozenRowGroupHeaderStickyPosition() {\n let tableHeaderHeight = DomHandler.getOuterHeight(this.$el.previousElementSibling);\n\n this.rowGroupHeaderStyleObject.top = tableHeaderHeight + 'px';\n },\n getVirtualScrollerProp(option, options) {\n options = options || this.virtualScrollerContentProps;\n\n return options ? options[option] : null;\n },\n bodyRef(el) {\n // For VirtualScroller\n const contentRef = this.getVirtualScrollerProp('contentRef');\n\n contentRef && contentRef(el);\n }\n },\n computed: {\n rowGroupHeaderStyle() {\n if (this.scrollable) {\n return { top: this.rowGroupHeaderStyleObject.top };\n }\n\n return null;\n },\n bodyContentStyle() {\n return this.getVirtualScrollerProp('contentStyle');\n },\n ptmTBodyOptions() {\n return {\n context: {\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n },\n expandedRowId() {\n return UniqueComponentId();\n },\n nameAttributeSelector() {\n return UniqueComponentId();\n }\n },\n components: {\n DTBodyRow: BodyRow\n }\n};\n</script>\n","<template>\n <td :style=\"containerStyle\" :class=\"containerClass\" role=\"cell\" :colspan=\"columnProp('colspan')\" :rowspan=\"columnProp('rowspan')\" v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('footerCell') }\" :data-p-frozen-column=\"columnProp('frozen')\">\n <component v-if=\"column.children && column.children.footer\" :is=\"column.children.footer\" :column=\"column\" />\n <span v-if=\"columnProp('footer')\" :class=\"cx('columnFooter')\" v-bind=\"getColumnPT('columnFooter')\">{{ columnProp('footer') }}</span>\n </td>\n</template>\n\n<script>\nimport BaseComponent from '@primevuelab/core/basecomponent';\nimport { DomHandler, ObjectUtils } from '@primevuelab/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 ObjectUtils.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 right = 0;\n let next = DomHandler.getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n right = DomHandler.getOuterWidth(next) + parseFloat(next.style.right || 0);\n }\n\n this.styleObject.right = right + 'px';\n } else {\n let left = 0;\n let prev = DomHandler.getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n left = DomHandler.getOuterWidth(prev) + parseFloat(prev.style.left || 0);\n }\n\n this.styleObject.left = left + '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 BaseComponent from '@primevuelab/core/basecomponent';\nimport { DomHandler, ObjectUtils } from '@primevuelab/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 ObjectUtils.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 right = 0;\n let next = DomHandler.getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n right = DomHandler.getOuterWidth(next) + parseFloat(next.style.right || 0);\n }\n\n this.styleObject.right = right + 'px';\n } else {\n let left = 0;\n let prev = DomHandler.getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n left = DomHandler.getOuterWidth(prev) + parseFloat(prev.style.left || 0);\n }\n\n this.styleObject.left = left + '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 '@primevuelab/core/basecomponent';\nimport { HelperSet, ObjectUtils } from '@primevuelab/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 ObjectUtils.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 '@primevuelab/core/basecomponent';\nimport { HelperSet, ObjectUtils } from '@primevuelab/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 ObjectUtils.getVNodeProp(col, prop);\n },\n getColumnGroupPT(key) {\n const columnGroupMetaData = {\n props: this.getColumnGroupProps(),\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n type: 'footer',\n scrollable: this.ptmTFootOptions.context.scrollable\n }\n };\n\n return mergeProps(this.ptm(`columnGroup.${key}`, { columnGroup: columnGroupMetaData }), this.ptm(`columnGroup.${key}`, columnGroupMetaData), this.ptmo(this.getColumnGroupProps(), key, columnGroupMetaData));\n },\n getColumnGroupProps() {\n return this.columnGroup && this.columnGroup.props && this.columnGroup.props.pt ? this.columnGroup.props.pt : undefined; //@todo\n },\n getRowPT(row, key, index) {\n const rowMetaData = {\n props: row.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index\n }\n };\n\n return mergeProps(this.ptm(`row.${key}`, { row: rowMetaData }), this.ptm(`row.${key}`, rowMetaData), this.ptmo(this.getRowProp(row), key, rowMetaData));\n },\n getRowProp(row) {\n return row.props && row.props.pt ? row.props.pt : undefined; //@todo\n },\n getFooterRows() {\n return this.d_footerRows?.get(this.columnGroup, this.columnGroup.children);\n },\n getFooterColumns(row) {\n return this.d_footerColumns?.get(row, row.children);\n }\n },\n computed: {\n hasFooter() {\n let hasFooter = false;\n\n if (this.columnGroup) {\n hasFooter = true;\n } else if (this.columns) {\n for (let col of this.columns) {\n if (this.columnProp(col, 'footer') || (col.children && col.children.footer)) {\n hasFooter = true;\n break;\n }\n }\n }\n\n return hasFooter;\n },\n ptmTFootOptions() {\n return {\n context: {\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n }\n },\n components: {\n DTFooterCell: FooterCell\n }\n};\n</script>\n","<template>\n <div :class=\"cx('filter')\" v-bind=\"getColumnPT('filter')\">\n <div v-if=\"display === 'row'\" :class=\"cx('filterElementContainer')\" v-bind=\"{ ...filterInputProps, ...getColumnPT('filterElementContainer') }\">\n <component :is=\"filterElement\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"filterCallback\" />\n </div>\n <Button\n v-if=\"showMenuButton\"\n ref=\"icon\"\n :aria-label=\"columnFilterButtonAriaLabel\"\n aria-haspopup=\"true\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"overlayId\"\n :class=\"cx('pcColumnFilterButton')\"\n :unstyled=\"unstyled\"\n @click=\"toggleMenu($event)\"\n @keydown=\"onToggleButtonKeyDown($event)\"\n v-bind=\"{ ...getColumnPT('pcColumnFilterButton', ptmFilterMenuParams), ...filterButtonProps.filter }\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"filterIconTemplate || 'FilterIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('filterMenuIcon')\" />\n </template>\n </Button>\n <Button\n v-if=\"showClearButton && display === 'row' && hasRowFilter()\"\n :class=\"cx('pcColumnFilterClearButton')\"\n :unstyled=\"unstyled\"\n @click=\"clearFilter()\"\n v-bind=\"{ ...getColumnPT('pcColumnFilterClearButton', ptmHeaderFilterClearParams), ...filterButtonProps.inline.clear }\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"filterClearIconTemplate || 'FilterSlashIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('filterClearIcon')\" />\n </template>\n </Button>\n <Portal>\n <transition name=\"p-connected-overlay\" @enter=\"onOverlayEnter\" @after-enter=\"onOverlayAfterEnter\" @leave=\"onOverlayLeave\" @after-leave=\"onOverlayAfterLeave\" v-bind=\"getColumnPT('transition')\">\n <div\n v-if=\"overlayVisible\"\n :ref=\"overlayRef\"\n :id=\"overlayId\"\n v-focustrap\n :aria-modal=\"overlayVisible\"\n role=\"dialog\"\n :class=\"[cx('filterOverlay'), filterMenuClass]\"\n @keydown.escape=\"hide\"\n @click=\"onContentClick\"\n @mousedown=\"onContentMouseDown\"\n v-bind=\"getColumnPT('filterOverlay')\"\n >\n <component :is=\"filterHeaderTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"filterCallback\" />\n <template v-if=\"display === 'row'\">\n <ul :class=\"cx('filterConstraintList')\" v-bind=\"getColumnPT('filterConstraintList')\">\n <li\n v-for=\"(matchMode, i) of matchModes\"\n :key=\"matchMode.label\"\n :class=\"cx('filterConstraint', { matchMode })\"\n @click=\"onRowMatchModeChange(matchMode.value)\"\n @keydown=\"onRowMatchModeKeyDown($event)\"\n @keydown.enter.prevent=\"onRowMatchModeChange(matchMode.value)\"\n :tabindex=\"i === 0 ? '0' : null\"\n v-bind=\"getColumnPT('filterConstraint', ptmFilterConstraintOptions(matchMode))\"\n >\n {{ matchMode.label }}\n </li>\n <li :class=\"cx('filterConstraintSeparator')\" v-bind=\"getColumnPT('filterConstraintSeparator')\"></li>\n <li :class=\"cx('filterConstraint')\" @click=\"clearFilter()\" @keydown=\"onRowMatchModeKeyDown($event)\" @keydown.enter=\"onRowClearItemClick()\" v-bind=\"getColumnPT('filterConstraint')\">\n {{ noFilterLabel }}\n </li>\n </ul>\n </template>\n <template v-else>\n <div v-if=\"isShowOperator\" :class=\"cx('filterOperator')\" v-bind=\"getColumnPT('filterOperator')\">\n <Select\n :options=\"operatorOptions\"\n :modelValue=\"operator\"\n :aria-label=\"filterOperatorAriaLabel\"\n :class=\"cx('pcFilterOperatorDropdown')\"\n optionLabel=\"label\"\n optionValue=\"value\"\n @update:modelValue=\"onOperatorChange($event)\"\n :unstyled=\"unstyled\"\n :pt=\"getColumnPT('pcFilterOperatorDropdown')\"\n ></Select>\n </div>\n <div :class=\"cx('filterRuleList')\" v-bind=\"getColumnPT('filterRuleList')\">\n <div v-for=\"(fieldConstraint, i) of fieldConstraints\" :key=\"i\" :class=\"cx('filterRule')\" v-bind=\"getColumnPT('filterRule')\">\n <Select\n v-if=\"isShowMatchModes\"\n :options=\"matchModes\"\n :modelValue=\"fieldConstraint.matchMode\"\n :class=\"cx('pcFilterConstraintDropdown')\"\n optionLabel=\"label\"\n optionValue=\"value\"\n :aria-label=\"filterRuleAriaLabel\"\n @update:modelValue=\"onMenuMatchModeChange($event, i)\"\n :unstyled=\"unstyled\"\n :pt=\"getColumnPT('pcFilterConstraintDropdown')\"\n ></Select>\n <component v-if=\"display === 'menu'\" :is=\"filterElement\" :field=\"field\" :filterModel=\"fieldConstraint\" :filterCallback=\"filterCallback\" :applyFilter=\"applyFilter\" />\n <div v-if=\"showRemoveIcon\" v-bind=\"getColumnPT('filterRemove')\">\n <Button\n type=\"button\"\n :class=\"cx('pcFilterRemoveRuleButton')\"\n @click=\"removeConstraint(i)\"\n :label=\"removeRuleButtonLabel\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.removeRule\"\n :pt=\"getColumnPT('pcFilterRemoveRuleButton')\"\n >\n <template #icon=\"iconProps\">\n <component :is=\"filterRemoveIconTemplate || 'TrashIcon'\" :class=\"iconProps.class\" v-bind=\"getColumnPT('pcFilterRemoveRuleButton')['icon']\" />\n </template>\n </Button>\n </div>\n </div>\n </div>\n <div v-if=\"isShowAddConstraint\" v-bind=\"getColumnPT('filterAddButtonContainer')\">\n <Button\n type=\"button\"\n :label=\"addRuleButtonLabel\"\n iconPos=\"left\"\n :class=\"cx('pcFilterAddRuleButton')\"\n @click=\"addConstraint()\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.addRule\"\n :pt=\"getColumnPT('pcFilterAddRuleButton')\"\n >\n <template #icon=\"iconProps\">\n <component :is=\"filterAddIconTemplate || 'PlusIcon'\" :class=\"iconProps.class\" v-bind=\"getColumnPT('pcFilterAddRuleButton')['icon']\" />\n </template>\n </Button>\n </div>\n <div :class=\"cx('filterButtonbar')\" v-bind=\"getColumnPT('filterButtonbar')\">\n <Button\n v-if=\"!filterClearTemplate && showClearButton\"\n type=\"button\"\n :class=\"cx('pcFilterClearButton')\"\n :label=\"clearButtonLabel\"\n @click=\"clearFilter\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.clear\"\n :pt=\"getColumnPT('pcFilterClearButton')\"\n ></Button>\n <component v-else :is=\"filterClearTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"clearFilter\" />\n <template v-if=\"showApplyButton\">\n <Button\n v-if=\"!filterApplyTemplate\"\n type=\"button\"\n :class=\"cx('pcFilterApplyButton')\"\n :label=\"applyButtonLabel\"\n @click=\"applyFilter()\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.apply\"\n :pt=\"getColumnPT('pcFilterApplyButton')\"\n ></Button>\n <component v-else :is=\"filterApplyTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"applyFilter\" />\n </template>\n </div>\n </template>\n <component :is=\"filterFooterTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"filterCallback\" />\n </div>\n </transition>\n </Portal>\n </div>\n</template>\n\n<script>\nimport { FilterOperator } from '@primevuelab/core/api';\nimport BaseComponent from '@primevuelab/core/basecomponent';\nimport { ConnectedOverlayScrollHandler, DomHandler, UniqueComponentId, ZIndexUtils } from '@primevuelab/core/utils';\nimport FilterIcon from '@primevuelab/icons/filter';\nimport FilterSlashIcon from '@primevuelab/icons/filterslash';\nimport PlusIcon from '@primevuelab/icons/plus';\nimport TrashIcon from '@primevuelab/icons/trash';\nimport Button from 'primevuelab/button';\nimport FocusTrap from 'primevuelab/focustrap';\nimport OverlayEventBus from 'primevuelab/overlayeventbus';\nimport Portal from 'primevuelab/portal';\nimport Select from 'primevuelab/select';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'ColumnFilter',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['filter-change', 'filter-apply', 'operator-change', 'matchmode-change', 'constraint-add', 'constraint-remove', 'filter-clear', 'apply-click'],\n props: {\n field: {\n type: String,\n default: null\n },\n type: {\n type: String,\n default: 'text'\n },\n display: {\n type: String,\n default: null\n },\n showMenu: {\n type: Boolean,\n default: true\n },\n matchMode: {\n type: String,\n default: null\n },\n showOperator: {\n type: Boolean,\n default: true\n },\n showClearButton: {\n type: Boolean,\n default: true\n },\n showApplyButton: {\n type: Boolean,\n default: true\n },\n showMatchModes: {\n type: Boolean,\n default: true\n },\n showAddButton: {\n type: Boolean,\n default: true\n },\n matchModeOptions: {\n type: Array,\n default: null\n },\n maxConstraints: {\n type: Number,\n default: 2\n },\n filterElement: {\n type: Function,\n default: null\n },\n filterHeaderTemplate: {\n type: Function,\n default: null\n },\n filterFooterTemplate: {\n type: Function,\n default: null\n },\n filterClearTemplate: {\n type: Function,\n default: null\n },\n filterApplyTemplate: {\n type: Function,\n default: null\n },\n filterIconTemplate: {\n type: Function,\n default: null\n },\n filterAddIconTemplate: {\n type: Function,\n default: null\n },\n filterRemoveIconTemplate: {\n type: Function,\n default: null\n },\n filterClearIconTemplate: {\n type: Function,\n default: null\n },\n filters: {\n type: Object,\n default: null\n },\n filtersStore: {\n type: Object,\n default: null\n },\n filterMenuClass: {\n type: String,\n default: null\n },\n filterMenuStyle: {\n type: null,\n default: null\n },\n filterInputProps: {\n type: null,\n default: null\n },\n filterButtonProps: {\n type: null,\n default: null\n },\n column: null\n },\n data() {\n return {\n id: this.$attrs.id,\n overlayVisible: false,\n defaultMatchMode: null,\n defaultOperator: null\n };\n },\n watch: {\n '$attrs.id': function (newValue) {\n this.id = newValue || UniqueComponentId();\n }\n },\n overlay: null,\n selfClick: false,\n overlayEventListener: null,\n beforeUnmount() {\n if (this.overlayEventListener) {\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n }\n\n if (this.overlay) {\n ZIndexUtils.clear(this.overlay);\n this.onOverlayHide();\n }\n },\n mounted() {\n this.id = this.id || UniqueComponentId();\n\n if (this.filters && this.filters[this.field]) {\n let fieldFilters = this.filters[this.field];\n\n if (fieldFilters.operator) {\n this.defaultMatchMode = fieldFilters.constraints[0].matchMode;\n this.defaultOperator = fieldFilters.operator;\n } else {\n this.defaultMatchMode = this.filters[this.field].matchMode;\n }\n }\n },\n methods: {\n getColumnPT(key, params) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n ...params\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined;\n },\n ptmFilterConstraintOptions(matchMode) {\n return {\n context: {\n highlighted: matchMode && this.isRowMatchModeSelected(matchMode.value)\n }\n };\n },\n clearFilter() {\n let _filters = { ...this.filters };\n\n if (_filters[this.field].operator) {\n _filters[this.field].constraints.splice(1);\n _filters[this.field].operator = this.defaultOperator;\n _filters[this.field].constraints[0] = { value: null, matchMode: this.defaultMatchMode };\n } else {\n _filters[this.field].value = null;\n _filters[this.field].matchMode = this.defaultMatchMode;\n }\n\n this.$emit('filter-clear');\n this.$emit('filter-change', _filters);\n this.$emit('filter-apply');\n this.hide();\n },\n applyFilter() {\n this.$emit('apply-click', { field: this.field, constraints: this.filters[this.field] });\n this.$emit('filter-apply');\n this.hide();\n },\n hasFilter() {\n if (this.filtersStore) {\n let fieldFilter = this.filtersStore[this.field];\n\n if (fieldFilter) {\n if (fieldFilter.operator) return !this.isFilterBlank(fieldFilter.constraints[0].value);\n else return !this.isFilterBlank(fieldFilter.value);\n }\n }\n\n return false;\n },\n hasRowFilter() {\n return this.filters[this.field] && !this.isFilterBlank(this.filters[this.field].value);\n },\n isFilterBlank(filter) {\n if (filter !== null && filter !== undefined) {\n if ((typeof filter === 'string' && filter.trim().length == 0) || (filter instanceof Array && filter.length == 0)) return true;\n else return false;\n }\n\n return true;\n },\n toggleMenu(event) {\n this.overlayVisible = !this.overlayVisible;\n\n event.preventDefault();\n },\n onToggleButtonKeyDown(event) {\n switch (event.code) {\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.toggleMenu(event);\n\n break;\n\n case 'Escape':\n this.overlayVisible = false;\n break;\n }\n },\n onRowMatchModeChange(matchMode) {\n let _filters = { ...this.filters };\n\n _filters[this.field].matchMode = matchMode;\n this.$emit('matchmode-change', { field: this.field, matchMode: matchMode });\n this.$emit('filter-change', _filters);\n this.$emit('filter-apply');\n this.hide();\n },\n onRowMatchModeKeyDown(event) {\n let item = event.target;\n\n switch (event.code) {\n case 'ArrowDown':\n var nextItem = this.findNextItem(item);\n\n if (nextItem) {\n item.removeAttribute('tabindex');\n nextItem.tabIndex = '0';\n nextItem.focus();\n }\n\n event.preventDefault();\n break;\n\n case 'ArrowUp':\n var prevItem = this.findPrevItem(item);\n\n if (prevItem) {\n item.removeAttribute('tabindex');\n prevItem.tabIndex = '0';\n prevItem.focus();\n }\n\n event.preventDefault();\n break;\n }\n },\n isRowMatchModeSelected(matchMode) {\n return this.filters[this.field].matchMode === matchMode;\n },\n onOperatorChange(value) {\n let _filters = { ...this.filters };\n\n _filters[this.field].operator = value;\n this.$emit('filter-change', _filters);\n\n this.$emit('operator-change', { field: this.field, operator: value });\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n onMenuMatchModeChange(value, index) {\n let _filters = { ...this.filters };\n\n _filters[this.field].constraints[index].matchMode = value;\n this.$emit('matchmode-change', { field: this.field, matchMode: value, index: index });\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n addConstraint() {\n let _filters = { ...this.filters };\n let newConstraint = { value: null, matchMode: this.defaultMatchMode };\n\n _filters[this.field].constraints.push(newConstraint);\n this.$emit('constraint-add', { field: this.field, constraing: newConstraint });\n this.$emit('filter-change', _filters);\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n removeConstraint(index) {\n let _filters = { ...this.filters };\n let removedConstraint = _filters[this.field].constraints.splice(index, 1);\n\n this.$emit('constraint-remove', { field: this.field, constraing: removedConstraint });\n this.$emit('filter-change', _filters);\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n filterCallback() {\n this.$emit('filter-apply');\n },\n findNextItem(item) {\n let nextItem = item.nextElementSibling;\n\n if (nextItem) return DomHandler.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 DomHandler.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 && DomHandler.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 DomHandler.applyStyle(this.overlay, this.filterMenuStyle);\n }\n\n ZIndexUtils.set('overlay', el, this.$primevue.config.zIndex.overlay);\n DomHandler.addStyles(el, { position: 'absolute', top: '0', left: '0' });\n DomHandler.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 ZIndexUtils.clear(el);\n },\n onOverlayHide() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindScrollListener();\n this.overlay = null;\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n },\n overlayRef(el) {\n this.overlay = el;\n },\n isOutsideClicked(target) {\n return !this.isTargetClicked(target) && this.overlay && !(this.overlay.isSameNode(target) || this.overlay.contains(target));\n },\n isTargetClicked(target) {\n return this.$refs.icon && (this.$refs.icon.$el.isSameNode(target) || this.$refs.icon.$el.contains(target));\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n if (this.overlayVisible && !this.selfClick && this.isOutsideClicked(event.target)) {\n this.overlayVisible = false;\n }\n\n this.selfClick = false;\n };\n\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n this.selfClick = false;\n }\n },\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.icon.$el, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.overlayVisible && !DomHandler.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 -\n lab.config.filterMatchModeOptions[this.type].map((key) => {\n return { label: this.$primevue.config.locale[key], value: key };\n })\n );\n },\n isShowMatchModes() {\n return this.type !== 'boolean' && this.showMatchModes && this.matchModes;\n },\n operatorOptions() {\n return [\n { label: this.$primevue.config.locale.matchAll, value: FilterOperator.AND },\n { label: this.$primevue.config.locale.matchAny, value: FilterOperator.OR }\n ];\n },\n noFilterLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.noFilter : undefined;\n },\n isShowOperator() {\n return this.showOperator && this.filters[this.field].operator;\n },\n operator() {\n return this.filters[this.field].operator;\n },\n fieldConstraints() {\n return this.filters[this.field].constraints || [this.filters[this.field]];\n },\n showRemoveIcon() {\n return this.fieldConstraints.length > 1;\n },\n removeRuleButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.removeRule : undefined;\n },\n addRuleButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.addRule : undefined;\n },\n isShowAddConstraint() {\n return this.showAddButton && this.filters[this.field].operator && this.fieldConstraints && this.fieldConstraints.length < this.maxConstraints;\n },\n clearButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.clear : undefined;\n },\n applyButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.apply : undefined;\n },\n columnFilterButtonAriaLabel() {\n return this.$primevue.config.locale ? (this.overlayVisible ? this.$primevue.config.locale.showFilterMenu : this.$primevue.config.locale.hideFilterMenu) : undefined;\n },\n filterOperatorAriaLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.filterOperator : undefined;\n },\n filterRuleAriaLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.filterConstraint : undefined;\n },\n ptmHeaderFilterClearParams() {\n return {\n context: {\n hidden: this.hasRowFilter()\n }\n };\n },\n ptmFilterMenuParams() {\n return {\n context: {\n overlayVisible: this.overlayVisible,\n active: this.hasFilter()\n }\n };\n }\n },\n components: {\n Select,\n Button,\n Portal,\n FilterSlashIcon,\n FilterIcon,\n TrashIcon,\n PlusIcon\n },\n directives: {\n focustrap: FocusTrap\n }\n};\n</script>\n","<template>\n <div :class=\"cx('filter')\" v-bind=\"getColumnPT('filter')\">\n <div v-if=\"display === 'row'\" :class=\"cx('filterElementContainer')\" v-bind=\"{ ...filterInputProps, ...getColumnPT('filterElementContainer') }\">\n <component :is=\"filterElement\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"filterCallback\" />\n </div>\n <Button\n v-if=\"showMenuButton\"\n ref=\"icon\"\n :aria-label=\"columnFilterButtonAriaLabel\"\n aria-haspopup=\"true\"\n :aria-expanded=\"overlayVisible\"\n :aria-controls=\"overlayId\"\n :class=\"cx('pcColumnFilterButton')\"\n :unstyled=\"unstyled\"\n @click=\"toggleMenu($event)\"\n @keydown=\"onToggleButtonKeyDown($event)\"\n v-bind=\"{ ...getColumnPT('pcColumnFilterButton', ptmFilterMenuParams), ...filterButtonProps.filter }\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"filterIconTemplate || 'FilterIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('filterMenuIcon')\" />\n </template>\n </Button>\n <Button\n v-if=\"showClearButton && display === 'row' && hasRowFilter()\"\n :class=\"cx('pcColumnFilterClearButton')\"\n :unstyled=\"unstyled\"\n @click=\"clearFilter()\"\n v-bind=\"{ ...getColumnPT('pcColumnFilterClearButton', ptmHeaderFilterClearParams), ...filterButtonProps.inline.clear }\"\n >\n <template #icon=\"slotProps\">\n <component :is=\"filterClearIconTemplate || 'FilterSlashIcon'\" :class=\"slotProps.class\" v-bind=\"getColumnPT('filterClearIcon')\" />\n </template>\n </Button>\n <Portal>\n <transition name=\"p-connected-overlay\" @enter=\"onOverlayEnter\" @after-enter=\"onOverlayAfterEnter\" @leave=\"onOverlayLeave\" @after-leave=\"onOverlayAfterLeave\" v-bind=\"getColumnPT('transition')\">\n <div\n v-if=\"overlayVisible\"\n :ref=\"overlayRef\"\n :id=\"overlayId\"\n v-focustrap\n :aria-modal=\"overlayVisible\"\n role=\"dialog\"\n :class=\"[cx('filterOverlay'), filterMenuClass]\"\n @keydown.escape=\"hide\"\n @click=\"onContentClick\"\n @mousedown=\"onContentMouseDown\"\n v-bind=\"getColumnPT('filterOverlay')\"\n >\n <component :is=\"filterHeaderTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"filterCallback\" />\n <template v-if=\"display === 'row'\">\n <ul :class=\"cx('filterConstraintList')\" v-bind=\"getColumnPT('filterConstraintList')\">\n <li\n v-for=\"(matchMode, i) of matchModes\"\n :key=\"matchMode.label\"\n :class=\"cx('filterConstraint', { matchMode })\"\n @click=\"onRowMatchModeChange(matchMode.value)\"\n @keydown=\"onRowMatchModeKeyDown($event)\"\n @keydown.enter.prevent=\"onRowMatchModeChange(matchMode.value)\"\n :tabindex=\"i === 0 ? '0' : null\"\n v-bind=\"getColumnPT('filterConstraint', ptmFilterConstraintOptions(matchMode))\"\n >\n {{ matchMode.label }}\n </li>\n <li :class=\"cx('filterConstraintSeparator')\" v-bind=\"getColumnPT('filterConstraintSeparator')\"></li>\n <li :class=\"cx('filterConstraint')\" @click=\"clearFilter()\" @keydown=\"onRowMatchModeKeyDown($event)\" @keydown.enter=\"onRowClearItemClick()\" v-bind=\"getColumnPT('filterConstraint')\">\n {{ noFilterLabel }}\n </li>\n </ul>\n </template>\n <template v-else>\n <div v-if=\"isShowOperator\" :class=\"cx('filterOperator')\" v-bind=\"getColumnPT('filterOperator')\">\n <Select\n :options=\"operatorOptions\"\n :modelValue=\"operator\"\n :aria-label=\"filterOperatorAriaLabel\"\n :class=\"cx('pcFilterOperatorDropdown')\"\n optionLabel=\"label\"\n optionValue=\"value\"\n @update:modelValue=\"onOperatorChange($event)\"\n :unstyled=\"unstyled\"\n :pt=\"getColumnPT('pcFilterOperatorDropdown')\"\n ></Select>\n </div>\n <div :class=\"cx('filterRuleList')\" v-bind=\"getColumnPT('filterRuleList')\">\n <div v-for=\"(fieldConstraint, i) of fieldConstraints\" :key=\"i\" :class=\"cx('filterRule')\" v-bind=\"getColumnPT('filterRule')\">\n <Select\n v-if=\"isShowMatchModes\"\n :options=\"matchModes\"\n :modelValue=\"fieldConstraint.matchMode\"\n :class=\"cx('pcFilterConstraintDropdown')\"\n optionLabel=\"label\"\n optionValue=\"value\"\n :aria-label=\"filterRuleAriaLabel\"\n @update:modelValue=\"onMenuMatchModeChange($event, i)\"\n :unstyled=\"unstyled\"\n :pt=\"getColumnPT('pcFilterConstraintDropdown')\"\n ></Select>\n <component v-if=\"display === 'menu'\" :is=\"filterElement\" :field=\"field\" :filterModel=\"fieldConstraint\" :filterCallback=\"filterCallback\" :applyFilter=\"applyFilter\" />\n <div v-if=\"showRemoveIcon\" v-bind=\"getColumnPT('filterRemove')\">\n <Button\n type=\"button\"\n :class=\"cx('pcFilterRemoveRuleButton')\"\n @click=\"removeConstraint(i)\"\n :label=\"removeRuleButtonLabel\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.removeRule\"\n :pt=\"getColumnPT('pcFilterRemoveRuleButton')\"\n >\n <template #icon=\"iconProps\">\n <component :is=\"filterRemoveIconTemplate || 'TrashIcon'\" :class=\"iconProps.class\" v-bind=\"getColumnPT('pcFilterRemoveRuleButton')['icon']\" />\n </template>\n </Button>\n </div>\n </div>\n </div>\n <div v-if=\"isShowAddConstraint\" v-bind=\"getColumnPT('filterAddButtonContainer')\">\n <Button\n type=\"button\"\n :label=\"addRuleButtonLabel\"\n iconPos=\"left\"\n :class=\"cx('pcFilterAddRuleButton')\"\n @click=\"addConstraint()\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.addRule\"\n :pt=\"getColumnPT('pcFilterAddRuleButton')\"\n >\n <template #icon=\"iconProps\">\n <component :is=\"filterAddIconTemplate || 'PlusIcon'\" :class=\"iconProps.class\" v-bind=\"getColumnPT('pcFilterAddRuleButton')['icon']\" />\n </template>\n </Button>\n </div>\n <div :class=\"cx('filterButtonbar')\" v-bind=\"getColumnPT('filterButtonbar')\">\n <Button\n v-if=\"!filterClearTemplate && showClearButton\"\n type=\"button\"\n :class=\"cx('pcFilterClearButton')\"\n :label=\"clearButtonLabel\"\n @click=\"clearFilter\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.clear\"\n :pt=\"getColumnPT('pcFilterClearButton')\"\n ></Button>\n <component v-else :is=\"filterClearTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"clearFilter\" />\n <template v-if=\"showApplyButton\">\n <Button\n v-if=\"!filterApplyTemplate\"\n type=\"button\"\n :class=\"cx('pcFilterApplyButton')\"\n :label=\"applyButtonLabel\"\n @click=\"applyFilter()\"\n :unstyled=\"unstyled\"\n v-bind=\"filterButtonProps.popover.apply\"\n :pt=\"getColumnPT('pcFilterApplyButton')\"\n ></Button>\n <component v-else :is=\"filterApplyTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"applyFilter\" />\n </template>\n </div>\n </template>\n <component :is=\"filterFooterTemplate\" :field=\"field\" :filterModel=\"filters[field]\" :filterCallback=\"filterCallback\" />\n </div>\n </transition>\n </Portal>\n </div>\n</template>\n\n<script>\nimport { FilterOperator } from '@primevuelab/core/api';\nimport BaseComponent from '@primevuelab/core/basecomponent';\nimport { ConnectedOverlayScrollHandler, DomHandler, UniqueComponentId, ZIndexUtils } from '@primevuelab/core/utils';\nimport FilterIcon from '@primevuelab/icons/filter';\nimport FilterSlashIcon from '@primevuelab/icons/filterslash';\nimport PlusIcon from '@primevuelab/icons/plus';\nimport TrashIcon from '@primevuelab/icons/trash';\nimport Button from 'primevuelab/button';\nimport FocusTrap from 'primevuelab/focustrap';\nimport OverlayEventBus from 'primevuelab/overlayeventbus';\nimport Portal from 'primevuelab/portal';\nimport Select from 'primevuelab/select';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'ColumnFilter',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['filter-change', 'filter-apply', 'operator-change', 'matchmode-change', 'constraint-add', 'constraint-remove', 'filter-clear', 'apply-click'],\n props: {\n field: {\n type: String,\n default: null\n },\n type: {\n type: String,\n default: 'text'\n },\n display: {\n type: String,\n default: null\n },\n showMenu: {\n type: Boolean,\n default: true\n },\n matchMode: {\n type: String,\n default: null\n },\n showOperator: {\n type: Boolean,\n default: true\n },\n showClearButton: {\n type: Boolean,\n default: true\n },\n showApplyButton: {\n type: Boolean,\n default: true\n },\n showMatchModes: {\n type: Boolean,\n default: true\n },\n showAddButton: {\n type: Boolean,\n default: true\n },\n matchModeOptions: {\n type: Array,\n default: null\n },\n maxConstraints: {\n type: Number,\n default: 2\n },\n filterElement: {\n type: Function,\n default: null\n },\n filterHeaderTemplate: {\n type: Function,\n default: null\n },\n filterFooterTemplate: {\n type: Function,\n default: null\n },\n filterClearTemplate: {\n type: Function,\n default: null\n },\n filterApplyTemplate: {\n type: Function,\n default: null\n },\n filterIconTemplate: {\n type: Function,\n default: null\n },\n filterAddIconTemplate: {\n type: Function,\n default: null\n },\n filterRemoveIconTemplate: {\n type: Function,\n default: null\n },\n filterClearIconTemplate: {\n type: Function,\n default: null\n },\n filters: {\n type: Object,\n default: null\n },\n filtersStore: {\n type: Object,\n default: null\n },\n filterMenuClass: {\n type: String,\n default: null\n },\n filterMenuStyle: {\n type: null,\n default: null\n },\n filterInputProps: {\n type: null,\n default: null\n },\n filterButtonProps: {\n type: null,\n default: null\n },\n column: null\n },\n data() {\n return {\n id: this.$attrs.id,\n overlayVisible: false,\n defaultMatchMode: null,\n defaultOperator: null\n };\n },\n watch: {\n '$attrs.id': function (newValue) {\n this.id = newValue || UniqueComponentId();\n }\n },\n overlay: null,\n selfClick: false,\n overlayEventListener: null,\n beforeUnmount() {\n if (this.overlayEventListener) {\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n }\n\n if (this.overlay) {\n ZIndexUtils.clear(this.overlay);\n this.onOverlayHide();\n }\n },\n mounted() {\n this.id = this.id || UniqueComponentId();\n\n if (this.filters && this.filters[this.field]) {\n let fieldFilters = this.filters[this.field];\n\n if (fieldFilters.operator) {\n this.defaultMatchMode = fieldFilters.constraints[0].matchMode;\n this.defaultOperator = fieldFilters.operator;\n } else {\n this.defaultMatchMode = this.filters[this.field].matchMode;\n }\n }\n },\n methods: {\n getColumnPT(key, params) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n ...params\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined;\n },\n ptmFilterConstraintOptions(matchMode) {\n return {\n context: {\n highlighted: matchMode && this.isRowMatchModeSelected(matchMode.value)\n }\n };\n },\n clearFilter() {\n let _filters = { ...this.filters };\n\n if (_filters[this.field].operator) {\n _filters[this.field].constraints.splice(1);\n _filters[this.field].operator = this.defaultOperator;\n _filters[this.field].constraints[0] = { value: null, matchMode: this.defaultMatchMode };\n } else {\n _filters[this.field].value = null;\n _filters[this.field].matchMode = this.defaultMatchMode;\n }\n\n this.$emit('filter-clear');\n this.$emit('filter-change', _filters);\n this.$emit('filter-apply');\n this.hide();\n },\n applyFilter() {\n this.$emit('apply-click', { field: this.field, constraints: this.filters[this.field] });\n this.$emit('filter-apply');\n this.hide();\n },\n hasFilter() {\n if (this.filtersStore) {\n let fieldFilter = this.filtersStore[this.field];\n\n if (fieldFilter) {\n if (fieldFilter.operator) return !this.isFilterBlank(fieldFilter.constraints[0].value);\n else return !this.isFilterBlank(fieldFilter.value);\n }\n }\n\n return false;\n },\n hasRowFilter() {\n return this.filters[this.field] && !this.isFilterBlank(this.filters[this.field].value);\n },\n isFilterBlank(filter) {\n if (filter !== null && filter !== undefined) {\n if ((typeof filter === 'string' && filter.trim().length == 0) || (filter instanceof Array && filter.length == 0)) return true;\n else return false;\n }\n\n return true;\n },\n toggleMenu(event) {\n this.overlayVisible = !this.overlayVisible;\n\n event.preventDefault();\n },\n onToggleButtonKeyDown(event) {\n switch (event.code) {\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.toggleMenu(event);\n\n break;\n\n case 'Escape':\n this.overlayVisible = false;\n break;\n }\n },\n onRowMatchModeChange(matchMode) {\n let _filters = { ...this.filters };\n\n _filters[this.field].matchMode = matchMode;\n this.$emit('matchmode-change', { field: this.field, matchMode: matchMode });\n this.$emit('filter-change', _filters);\n this.$emit('filter-apply');\n this.hide();\n },\n onRowMatchModeKeyDown(event) {\n let item = event.target;\n\n switch (event.code) {\n case 'ArrowDown':\n var nextItem = this.findNextItem(item);\n\n if (nextItem) {\n item.removeAttribute('tabindex');\n nextItem.tabIndex = '0';\n nextItem.focus();\n }\n\n event.preventDefault();\n break;\n\n case 'ArrowUp':\n var prevItem = this.findPrevItem(item);\n\n if (prevItem) {\n item.removeAttribute('tabindex');\n prevItem.tabIndex = '0';\n prevItem.focus();\n }\n\n event.preventDefault();\n break;\n }\n },\n isRowMatchModeSelected(matchMode) {\n return this.filters[this.field].matchMode === matchMode;\n },\n onOperatorChange(value) {\n let _filters = { ...this.filters };\n\n _filters[this.field].operator = value;\n this.$emit('filter-change', _filters);\n\n this.$emit('operator-change', { field: this.field, operator: value });\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n onMenuMatchModeChange(value, index) {\n let _filters = { ...this.filters };\n\n _filters[this.field].constraints[index].matchMode = value;\n this.$emit('matchmode-change', { field: this.field, matchMode: value, index: index });\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n addConstraint() {\n let _filters = { ...this.filters };\n let newConstraint = { value: null, matchMode: this.defaultMatchMode };\n\n _filters[this.field].constraints.push(newConstraint);\n this.$emit('constraint-add', { field: this.field, constraing: newConstraint });\n this.$emit('filter-change', _filters);\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n removeConstraint(index) {\n let _filters = { ...this.filters };\n let removedConstraint = _filters[this.field].constraints.splice(index, 1);\n\n this.$emit('constraint-remove', { field: this.field, constraing: removedConstraint });\n this.$emit('filter-change', _filters);\n\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n filterCallback() {\n this.$emit('filter-apply');\n },\n findNextItem(item) {\n let nextItem = item.nextElementSibling;\n\n if (nextItem) return DomHandler.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 DomHandler.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 && DomHandler.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 DomHandler.applyStyle(this.overlay, this.filterMenuStyle);\n }\n\n ZIndexUtils.set('overlay', el, this.$primevue.config.zIndex.overlay);\n DomHandler.addStyles(el, { position: 'absolute', top: '0', left: '0' });\n DomHandler.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 ZIndexUtils.clear(el);\n },\n onOverlayHide() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindScrollListener();\n this.overlay = null;\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n },\n overlayRef(el) {\n this.overlay = el;\n },\n isOutsideClicked(target) {\n return !this.isTargetClicked(target) && this.overlay && !(this.overlay.isSameNode(target) || this.overlay.contains(target));\n },\n isTargetClicked(target) {\n return this.$refs.icon && (this.$refs.icon.$el.isSameNode(target) || this.$refs.icon.$el.contains(target));\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n if (this.overlayVisible && !this.selfClick && this.isOutsideClicked(event.target)) {\n this.overlayVisible = false;\n }\n\n this.selfClick = false;\n };\n\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n this.selfClick = false;\n }\n },\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.icon.$el, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.overlayVisible && !DomHandler.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 -\n lab.config.filterMatchModeOptions[this.type].map((key) => {\n return { label: this.$primevue.config.locale[key], value: key };\n })\n );\n },\n isShowMatchModes() {\n return this.type !== 'boolean' && this.showMatchModes && this.matchModes;\n },\n operatorOptions() {\n return [\n { label: this.$primevue.config.locale.matchAll, value: FilterOperator.AND },\n { label: this.$primevue.config.locale.matchAny, value: FilterOperator.OR }\n ];\n },\n noFilterLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.noFilter : undefined;\n },\n isShowOperator() {\n return this.showOperator && this.filters[this.field].operator;\n },\n operator() {\n return this.filters[this.field].operator;\n },\n fieldConstraints() {\n return this.filters[this.field].constraints || [this.filters[this.field]];\n },\n showRemoveIcon() {\n return this.fieldConstraints.length > 1;\n },\n removeRuleButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.removeRule : undefined;\n },\n addRuleButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.addRule : undefined;\n },\n isShowAddConstraint() {\n return this.showAddButton && this.filters[this.field].operator && this.fieldConstraints && this.fieldConstraints.length < this.maxConstraints;\n },\n clearButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.clear : undefined;\n },\n applyButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.apply : undefined;\n },\n columnFilterButtonAriaLabel() {\n return this.$primevue.config.locale ? (this.overlayVisible ? this.$primevue.config.locale.showFilterMenu : this.$primevue.config.locale.hideFilterMenu) : undefined;\n },\n filterOperatorAriaLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.filterOperator : undefined;\n },\n filterRuleAriaLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.filterConstraint : undefined;\n },\n ptmHeaderFilterClearParams() {\n return {\n context: {\n hidden: this.hasRowFilter()\n }\n };\n },\n ptmFilterMenuParams() {\n return {\n context: {\n overlayVisible: this.overlayVisible,\n active: this.hasFilter()\n }\n };\n }\n },\n components: {\n Select,\n Button,\n Portal,\n FilterSlashIcon,\n FilterIcon,\n TrashIcon,\n PlusIcon\n },\n directives: {\n focustrap: FocusTrap\n }\n};\n</script>\n","<template>\n <Checkbox :modelValue=\"checked\" :binary=\"true\" :disabled=\"disabled\" :aria-label=\"headerCheckboxAriaLabel\" @change=\"onChange\" :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 '@primevuelab/core/basecomponent';\nimport CheckIcon from '@primevuelab/icons/check';\nimport Checkbox from 'primevuelab/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\" :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 '@primevuelab/core/basecomponent';\nimport CheckIcon from '@primevuelab/icons/check';\nimport Checkbox from 'primevuelab/checkbox';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'HeaderCheckbox',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: ['change'],\n props: {\n checked: null,\n disabled: null,\n column: null,\n headerCheckboxIconTemplate: {\n type: Function,\n default: null\n }\n },\n methods: {\n getColumnPT(key) {\n const columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n checked: this.checked,\n disabled: this.disabled\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo:\n },\n onChange(event) {\n this.$emit('change', {\n originalEvent: event,\n checked: !this.checked\n });\n }\n },\n computed: {\n headerCheckboxAriaLabel() {\n return this.$primevue.config.locale.aria ? (this.checked ? this.$primevue.config.locale.aria.selectAll : this.$primevue.config.locale.aria.unselectAll) : undefined;\n }\n },\n components: {\n CheckIcon,\n Checkbox\n }\n};\n</script>\n","<template>\n <th\n :style=\"containerStyle\"\n :class=\"containerClass\"\n :tabindex=\"columnProp('sortable') ? '0' : null\"\n role=\"columnheader\"\n :colspan=\"columnProp('colspan')\"\n :rowspan=\"columnProp('rowspan')\"\n :aria-sort=\"ariaSort\"\n @click=\"onClick\"\n @keydown=\"onKeyDown\"\n @mousedown=\"onMouseDown\"\n @dragstart=\"onDragStart\"\n @dragover=\"onDragOver\"\n @dragleave=\"onDragLeave\"\n @drop=\"onDrop\"\n v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('headerCell') }\"\n :data-p-sortable-column=\"columnProp('sortable')\"\n :data-p-resizable-column=\"resizableColumns\"\n :data-p-sorted=\"isColumnSorted()\"\n :data-p-filter-column=\"filterColumn\"\n :data-p-frozen-column=\"columnProp('frozen')\"\n :data-p-reorderable-column=\"reorderableColumns\"\n >\n <span v-if=\"resizableColumns && !columnProp('frozen')\" :class=\"cx('columnResizer')\" @mousedown=\"onResizeStart\" v-bind=\"getColumnPT('columnResizer')\"></span>\n <div :class=\"cx('columnHeaderContent')\" v-bind=\"getColumnPT('columnHeaderContent')\">\n <component v-if=\"column.children && column.children.header\" :is=\"column.children.header\" :column=\"column\" />\n <span v-if=\"columnProp('header')\" :class=\"cx('columnTitle')\" v-bind=\"getColumnPT('columnTitle')\">{{ columnProp('header') }}</span>\n <span v-if=\"columnProp('sortable')\" v-bind=\"getColumnPT('sort')\">\n <component :is=\"(column.children && column.children.sorticon) || sortableColumnIcon\" :sorted=\"sortState.sorted\" :sortOrder=\"sortState.sortOrder\" :class=\"cx('sortIcon')\" v-bind=\"getColumnPT('sorticon')\" />\n </span>\n <Badge v-if=\"isMultiSorted()\" :class=\"cx('pcSortBadge')\" v-bind=\"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 BaseComponent from '@primevuelab/core/basecomponent';\nimport { DomHandler, ObjectUtils } from '@primevuelab/core/utils';\nimport SortAltIcon from '@primevuelab/icons/sortalt';\nimport SortAmountDownIcon from '@primevuelab/icons/sortamountdown';\nimport SortAmountUpAltIcon from '@primevuelab/icons/sortamountupalt';\nimport Badge from 'primevuelab/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 ObjectUtils.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' && DomHandler.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 right = 0;\n let next = DomHandler.getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n right = DomHandler.getOuterWidth(next) + parseFloat(next.style.right || 0);\n }\n\n this.styleObject.right = right + 'px';\n } else {\n let left = 0;\n let prev = DomHandler.getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n left = DomHandler.getOuterWidth(prev) + parseFloat(prev.style.left || 0);\n }\n\n this.styleObject.left = left + 'px';\n }\n\n let filterRow = this.$el.parentElement.nextElementSibling;\n\n if (filterRow) {\n let index = DomHandler.index(this.$el);\n\n if (filterRow.children[index]) {\n filterRow.children[index].style.left = this.styleObject.left;\n filterRow.children[index].style.right = this.styleObject.right;\n }\n }\n }\n },\n onHeaderCheckboxChange(event) {\n this.$emit('checkbox-change', event);\n }\n },\n computed: {\n containerClass() {\n return [this.cx('headerCell'), this.filterColumn ? this.columnProp('filterHeaderClass') : this.columnProp('headerClass'), this.columnProp('class')];\n },\n containerStyle() {\n let headerStyle = this.filterColumn ? this.columnProp('filterHeaderStyle') : this.columnProp('headerStyle');\n let columnStyle = this.columnProp('style');\n\n return this.columnProp('frozen') ? [columnStyle, headerStyle, this.styleObject] : [columnStyle, headerStyle];\n },\n sortState() {\n let sorted = false;\n let sortOrder = null;\n\n if (this.sortMode === 'single') {\n sorted = this.sortField && (this.sortField === this.columnProp('field') || this.sortField === this.columnProp('sortField'));\n sortOrder = sorted ? this.sortOrder : 0;\n } else if (this.sortMode === 'multiple') {\n let metaIndex = this.getMultiSortMetaIndex();\n\n if (metaIndex > -1) {\n sorted = true;\n sortOrder = this.multiSortMeta[metaIndex].order;\n }\n }\n\n return {\n sorted,\n sortOrder\n };\n },\n sortableColumnIcon() {\n const { sorted, sortOrder } = this.sortState;\n\n if (!sorted) return SortAltIcon;\n else if (sorted && sortOrder > 0) return SortAmountUpAltIcon;\n else if (sorted && sortOrder < 0) return SortAmountDownIcon;\n\n return null;\n },\n ariaSort() {\n if (this.columnProp('sortable')) {\n const { sorted, sortOrder } = this.sortState;\n\n if (sorted && sortOrder < 0) return 'descending';\n else if (sorted && sortOrder > 0) return 'ascending';\n else return 'none';\n } else {\n return null;\n }\n }\n },\n components: {\n Badge,\n DTHeaderCheckbox: HeaderCheckbox,\n DTColumnFilter: ColumnFilter,\n SortAltIcon: SortAltIcon,\n SortAmountUpAltIcon: SortAmountUpAltIcon,\n SortAmountDownIcon: SortAmountDownIcon\n }\n};\n</script>\n","<template>\n <th\n :style=\"containerStyle\"\n :class=\"containerClass\"\n :tabindex=\"columnProp('sortable') ? '0' : null\"\n role=\"columnheader\"\n :colspan=\"columnProp('colspan')\"\n :rowspan=\"columnProp('rowspan')\"\n :aria-sort=\"ariaSort\"\n @click=\"onClick\"\n @keydown=\"onKeyDown\"\n @mousedown=\"onMouseDown\"\n @dragstart=\"onDragStart\"\n @dragover=\"onDragOver\"\n @dragleave=\"onDragLeave\"\n @drop=\"onDrop\"\n v-bind=\"{ ...getColumnPT('root'), ...getColumnPT('headerCell') }\"\n :data-p-sortable-column=\"columnProp('sortable')\"\n :data-p-resizable-column=\"resizableColumns\"\n :data-p-sorted=\"isColumnSorted()\"\n :data-p-filter-column=\"filterColumn\"\n :data-p-frozen-column=\"columnProp('frozen')\"\n :data-p-reorderable-column=\"reorderableColumns\"\n >\n <span v-if=\"resizableColumns && !columnProp('frozen')\" :class=\"cx('columnResizer')\" @mousedown=\"onResizeStart\" v-bind=\"getColumnPT('columnResizer')\"></span>\n <div :class=\"cx('columnHeaderContent')\" v-bind=\"getColumnPT('columnHeaderContent')\">\n <component v-if=\"column.children && column.children.header\" :is=\"column.children.header\" :column=\"column\" />\n <span v-if=\"columnProp('header')\" :class=\"cx('columnTitle')\" v-bind=\"getColumnPT('columnTitle')\">{{ columnProp('header') }}</span>\n <span v-if=\"columnProp('sortable')\" v-bind=\"getColumnPT('sort')\">\n <component :is=\"(column.children && column.children.sorticon) || sortableColumnIcon\" :sorted=\"sortState.sorted\" :sortOrder=\"sortState.sortOrder\" :class=\"cx('sortIcon')\" v-bind=\"getColumnPT('sorticon')\" />\n </span>\n <Badge v-if=\"isMultiSorted()\" :class=\"cx('pcSortBadge')\" v-bind=\"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 BaseComponent from '@primevuelab/core/basecomponent';\nimport { DomHandler, ObjectUtils } from '@primevuelab/core/utils';\nimport SortAltIcon from '@primevuelab/icons/sortalt';\nimport SortAmountDownIcon from '@primevuelab/icons/sortamountdown';\nimport SortAmountUpAltIcon from '@primevuelab/icons/sortamountupalt';\nimport Badge from 'primevuelab/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 ObjectUtils.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' && DomHandler.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 right = 0;\n let next = DomHandler.getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (next) {\n right = DomHandler.getOuterWidth(next) + parseFloat(next.style.right || 0);\n }\n\n this.styleObject.right = right + 'px';\n } else {\n let left = 0;\n let prev = DomHandler.getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n\n if (prev) {\n left = DomHandler.getOuterWidth(prev) + parseFloat(prev.style.left || 0);\n }\n\n this.styleObject.left = left + 'px';\n }\n\n let filterRow = this.$el.parentElement.nextElementSibling;\n\n if (filterRow) {\n let index = DomHandler.index(this.$el);\n\n if (filterRow.children[index]) {\n filterRow.children[index].style.left = this.styleObject.left;\n filterRow.children[index].style.right = this.styleObject.right;\n }\n }\n }\n },\n onHeaderCheckboxChange(event) {\n this.$emit('checkbox-change', event);\n }\n },\n computed: {\n containerClass() {\n return [this.cx('headerCell'), this.filterColumn ? this.columnProp('filterHeaderClass') : this.columnProp('headerClass'), this.columnProp('class')];\n },\n containerStyle() {\n let headerStyle = this.filterColumn ? this.columnProp('filterHeaderStyle') : this.columnProp('headerStyle');\n let columnStyle = this.columnProp('style');\n\n return this.columnProp('frozen') ? [columnStyle, headerStyle, this.styleObject] : [columnStyle, headerStyle];\n },\n sortState() {\n let sorted = false;\n let sortOrder = null;\n\n if (this.sortMode === 'single') {\n sorted = this.sortField && (this.sortField === this.columnProp('field') || this.sortField === this.columnProp('sortField'));\n sortOrder = sorted ? this.sortOrder : 0;\n } else if (this.sortMode === 'multiple') {\n let metaIndex = this.getMultiSortMetaIndex();\n\n if (metaIndex > -1) {\n sorted = true;\n sortOrder = this.multiSortMeta[metaIndex].order;\n }\n }\n\n return {\n sorted,\n sortOrder\n };\n },\n sortableColumnIcon() {\n const { sorted, sortOrder } = this.sortState;\n\n if (!sorted) return SortAltIcon;\n else if (sorted && sortOrder > 0) return SortAmountUpAltIcon;\n else if (sorted && sortOrder < 0) return SortAmountDownIcon;\n\n return null;\n },\n ariaSort() {\n if (this.columnProp('sortable')) {\n const { sorted, sortOrder } = this.sortState;\n\n if (sorted && sortOrder < 0) return 'descending';\n else if (sorted && sortOrder > 0) return 'ascending';\n else return 'none';\n } else {\n return null;\n }\n }\n },\n components: {\n Badge,\n DTHeaderCheckbox: HeaderCheckbox,\n DTColumnFilter: ColumnFilter,\n SortAltIcon: SortAltIcon,\n SortAmountUpAltIcon: SortAmountUpAltIcon,\n SortAmountDownIcon: SortAmountDownIcon\n }\n};\n</script>\n","<template>\n <thead :class=\"cx('thead')\" :style=\"sx('thead')\" role=\"rowgroup\" v-bind=\"columnGroup ? { ...ptm('thead', ptmTHeadOptions), ...getColumnGroupPT('root') } : ptm('thead', ptmTHeadOptions)\" data-pc-section=\"thead\">\n <template v-if=\"!columnGroup\">\n <tr role=\"row\" v-bind=\"ptm('headerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <DTHeaderCell\n v-if=\"!columnProp(col, 'hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp(col, 'field'))\"\n :column=\"col\"\n :index=\"i\"\n @column-click=\"$emit('column-click', $event)\"\n @column-mousedown=\"$emit('column-mousedown', $event)\"\n @column-dragstart=\"$emit('column-dragstart', $event)\"\n @column-dragover=\"$emit('column-dragover', $event)\"\n @column-dragleave=\"$emit('column-dragleave', $event)\"\n @column-drop=\"$emit('column-drop', $event)\"\n :groupRowsBy=\"groupRowsBy\"\n :groupRowSortField=\"groupRowSortField\"\n :reorderableColumns=\"reorderableColumns\"\n :resizableColumns=\"resizableColumns\"\n @column-resizestart=\"$emit('column-resizestart', $event)\"\n :sortMode=\"sortMode\"\n :sortField=\"sortField\"\n :sortOrder=\"sortOrder\"\n :multiSortMeta=\"multiSortMeta\"\n :allRowsSelected=\"allRowsSelected\"\n :empty=\"empty\"\n @checkbox-change=\"$emit('checkbox-change', $event)\"\n :filters=\"filters\"\n :filterDisplay=\"filterDisplay\"\n :filtersStore=\"filtersStore\"\n :filterInputProps=\"filterInputProps\"\n :filterButtonProps=\"filterButtonProps\"\n :first=\"first\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </tr>\n <tr v-if=\"filterDisplay === 'row'\" role=\"row\" v-bind=\"ptm('headerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <th\n v-if=\"!columnProp(col, 'hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp(col, 'field'))\"\n :style=\"getFilterColumnHeaderStyle(col)\"\n :class=\"getFilterColumnHeaderClass(col)\"\n v-bind=\"{ ...getColumnPT(col, 'root', i), ...getColumnPT(col, 'headerCell', i) }\"\n >\n <DTHeaderCheckbox v-if=\"columnProp(col, 'selectionMode') === 'multiple'\" :checked=\"allRowsSelected\" :disabled=\"empty\" @change=\"$emit('checkbox-change', $event)\" :column=\"col\" :unstyled=\"unstyled\" :pt=\"pt\" />\n <DTColumnFilter\n v-if=\"col.children && col.children.filter\"\n :field=\"columnProp(col, 'filterField') || columnProp(col, 'field')\"\n :type=\"columnProp(col, 'dataType')\"\n display=\"row\"\n :showMenu=\"columnProp(col, 'showFilterMenu')\"\n :filterElement=\"col.children && col.children.filter\"\n :filterHeaderTemplate=\"col.children && col.children.filterheader\"\n :filterFooterTemplate=\"col.children && col.children.filterfooter\"\n :filterClearTemplate=\"col.children && col.children.filterclear\"\n :filterApplyTemplate=\"col.children && col.children.filterapply\"\n :filterIconTemplate=\"col.children && col.children.filtericon\"\n :filterAddIconTemplate=\"col.children && col.children.filteraddicon\"\n :filterRemoveIconTemplate=\"col.children && col.children.filterremoveicon\"\n :filterClearIconTemplate=\"col.children && col.children.filterclearicon\"\n :filters=\"filters\"\n :filtersStore=\"filtersStore\"\n :filterInputProps=\"filterInputProps\"\n :filterButtonProps=\"filterButtonProps\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n :filterMenuStyle=\"columnProp(col, 'filterMenuStyle')\"\n :filterMenuClass=\"columnProp(col, 'filterMenuClass')\"\n :showOperator=\"columnProp(col, 'showFilterOperator')\"\n :showClearButton=\"columnProp(col, 'showClearButton')\"\n :showApplyButton=\"columnProp(col, 'showApplyButton')\"\n :showMatchModes=\"columnProp(col, 'showFilterMatchModes')\"\n :showAddButton=\"columnProp(col, 'showAddButton')\"\n :matchModeOptions=\"columnProp(col, 'filterMatchModeOptions')\"\n :maxConstraints=\"columnProp(col, 'maxConstraints')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n :column=\"col\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </th>\n </template>\n </tr>\n </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 </thead>\n</template>\n\n<script>\nimport BaseComponent from '@primevuelab/core/basecomponent';\nimport { HelperSet, ObjectUtils } from '@primevuelab/core/utils';\nimport { mergeProps } from 'vue';\nimport ColumnFilter from './ColumnFilter.vue';\nimport HeaderCell from './HeaderCell.vue';\nimport HeaderCheckbox from './HeaderCheckbox.vue';\n\nexport default {\n name: 'TableHeader',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: [\n 'column-click',\n 'column-mousedown',\n 'column-dragstart',\n 'column-dragover',\n 'column-dragleave',\n 'column-drop',\n 'column-resizestart',\n 'checkbox-change',\n 'filter-change',\n 'filter-apply',\n 'operator-change',\n 'matchmode-change',\n 'constraint-add',\n 'constraint-remove',\n 'filter-clear',\n 'apply-click'\n ],\n props: {\n columnGroup: {\n type: null,\n default: null\n },\n columns: {\n type: null,\n default: null\n },\n rowGroupMode: {\n type: String,\n default: null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n resizableColumns: {\n type: Boolean,\n default: false\n },\n allRowsSelected: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n sortMode: {\n type: String,\n default: 'single'\n },\n groupRowSortField: {\n type: [String, Function],\n default: null\n },\n sortField: {\n type: [String, Function],\n default: null\n },\n sortOrder: {\n type: Number,\n default: null\n },\n multiSortMeta: {\n type: Array,\n default: null\n },\n filterDisplay: {\n type: String,\n default: null\n },\n filters: {\n type: Object,\n default: null\n },\n filtersStore: {\n type: Object,\n default: null\n },\n reorderableColumns: {\n type: Boolean,\n default: false\n },\n first: {\n type: Number,\n default: 0\n },\n filterInputProps: {\n type: null,\n default: null\n },\n filterButtonProps: {\n type: null,\n default: null\n }\n },\n provide() {\n return {\n $rows: this.d_headerRows,\n $columns: this.d_headerColumns\n };\n },\n data() {\n return {\n d_headerRows: new HelperSet({ type: 'Row' }),\n d_headerColumns: new HelperSet({ type: 'Column' })\n };\n },\n beforeUnmount() {\n this.d_headerRows.clear();\n this.d_headerColumns.clear();\n },\n methods: {\n columnProp(col, prop) {\n return ObjectUtils.getVNodeProp(col, prop);\n },\n getColumnGroupPT(key) {\n const columnGroupMetaData = {\n props: this.getColumnGroupProps(),\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n type: 'header',\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n\n return mergeProps(this.ptm(`columnGroup.${key}`, { columnGroup: columnGroupMetaData }), this.ptm(`columnGroup.${key}`, columnGroupMetaData), this.ptmo(this.getColumnGroupProps(), key, columnGroupMetaData));\n },\n getColumnGroupProps() {\n return this.columnGroup && this.columnGroup.props && this.columnGroup.props.pt ? this.columnGroup.props.pt : undefined; //@todo\n },\n getRowPT(row, key, index) {\n const rowMetaData = {\n props: row.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index\n }\n };\n\n return mergeProps(this.ptm(`row.${key}`, { row: rowMetaData }), this.ptm(`row.${key}`, rowMetaData), this.ptmo(this.getRowProp(row), key, rowMetaData));\n },\n getRowProp(row) {\n return row.props && row.props.pt ? row.props.pt : undefined; //@todo\n },\n getColumnPT(column, key, index) {\n const columnMetaData = {\n props: column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(column), key, columnMetaData));\n },\n getColumnProp(column) {\n return column.props && column.props.pt ? column.props.pt : undefined; //@todo\n },\n getFilterColumnHeaderClass(column) {\n return [this.cx('headerCell', { column }), this.columnProp(column, 'filterHeaderClass'), this.columnProp(column, 'class')];\n },\n getFilterColumnHeaderStyle(column) {\n return [this.columnProp(column, 'filterHeaderStyle'), this.columnProp(column, 'style')];\n },\n getHeaderRows() {\n return this.d_headerRows?.get(this.columnGroup, this.columnGroup.children);\n },\n getHeaderColumns(row) {\n return this.d_headerColumns?.get(row, row.children);\n }\n },\n computed: {\n ptmTHeadOptions() {\n return {\n context: {\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n }\n },\n components: {\n DTHeaderCell: HeaderCell,\n DTHeaderCheckbox: HeaderCheckbox,\n DTColumnFilter: ColumnFilter\n }\n};\n</script>\n","<template>\n <thead :class=\"cx('thead')\" :style=\"sx('thead')\" role=\"rowgroup\" v-bind=\"columnGroup ? { ...ptm('thead', ptmTHeadOptions), ...getColumnGroupPT('root') } : ptm('thead', ptmTHeadOptions)\" data-pc-section=\"thead\">\n <template v-if=\"!columnGroup\">\n <tr role=\"row\" v-bind=\"ptm('headerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <DTHeaderCell\n v-if=\"!columnProp(col, 'hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp(col, 'field'))\"\n :column=\"col\"\n :index=\"i\"\n @column-click=\"$emit('column-click', $event)\"\n @column-mousedown=\"$emit('column-mousedown', $event)\"\n @column-dragstart=\"$emit('column-dragstart', $event)\"\n @column-dragover=\"$emit('column-dragover', $event)\"\n @column-dragleave=\"$emit('column-dragleave', $event)\"\n @column-drop=\"$emit('column-drop', $event)\"\n :groupRowsBy=\"groupRowsBy\"\n :groupRowSortField=\"groupRowSortField\"\n :reorderableColumns=\"reorderableColumns\"\n :resizableColumns=\"resizableColumns\"\n @column-resizestart=\"$emit('column-resizestart', $event)\"\n :sortMode=\"sortMode\"\n :sortField=\"sortField\"\n :sortOrder=\"sortOrder\"\n :multiSortMeta=\"multiSortMeta\"\n :allRowsSelected=\"allRowsSelected\"\n :empty=\"empty\"\n @checkbox-change=\"$emit('checkbox-change', $event)\"\n :filters=\"filters\"\n :filterDisplay=\"filterDisplay\"\n :filtersStore=\"filtersStore\"\n :filterInputProps=\"filterInputProps\"\n :filterButtonProps=\"filterButtonProps\"\n :first=\"first\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </template>\n </tr>\n <tr v-if=\"filterDisplay === 'row'\" role=\"row\" v-bind=\"ptm('headerRow')\">\n <template v-for=\"(col, i) of columns\" :key=\"columnProp(col, 'columnKey') || columnProp(col, 'field') || i\">\n <th\n v-if=\"!columnProp(col, 'hidden') && (rowGroupMode !== 'subheader' || groupRowsBy !== columnProp(col, 'field'))\"\n :style=\"getFilterColumnHeaderStyle(col)\"\n :class=\"getFilterColumnHeaderClass(col)\"\n v-bind=\"{ ...getColumnPT(col, 'root', i), ...getColumnPT(col, 'headerCell', i) }\"\n >\n <DTHeaderCheckbox v-if=\"columnProp(col, 'selectionMode') === 'multiple'\" :checked=\"allRowsSelected\" :disabled=\"empty\" @change=\"$emit('checkbox-change', $event)\" :column=\"col\" :unstyled=\"unstyled\" :pt=\"pt\" />\n <DTColumnFilter\n v-if=\"col.children && col.children.filter\"\n :field=\"columnProp(col, 'filterField') || columnProp(col, 'field')\"\n :type=\"columnProp(col, 'dataType')\"\n display=\"row\"\n :showMenu=\"columnProp(col, 'showFilterMenu')\"\n :filterElement=\"col.children && col.children.filter\"\n :filterHeaderTemplate=\"col.children && col.children.filterheader\"\n :filterFooterTemplate=\"col.children && col.children.filterfooter\"\n :filterClearTemplate=\"col.children && col.children.filterclear\"\n :filterApplyTemplate=\"col.children && col.children.filterapply\"\n :filterIconTemplate=\"col.children && col.children.filtericon\"\n :filterAddIconTemplate=\"col.children && col.children.filteraddicon\"\n :filterRemoveIconTemplate=\"col.children && col.children.filterremoveicon\"\n :filterClearIconTemplate=\"col.children && col.children.filterclearicon\"\n :filters=\"filters\"\n :filtersStore=\"filtersStore\"\n :filterInputProps=\"filterInputProps\"\n :filterButtonProps=\"filterButtonProps\"\n @filter-change=\"$emit('filter-change', $event)\"\n @filter-apply=\"$emit('filter-apply')\"\n :filterMenuStyle=\"columnProp(col, 'filterMenuStyle')\"\n :filterMenuClass=\"columnProp(col, 'filterMenuClass')\"\n :showOperator=\"columnProp(col, 'showFilterOperator')\"\n :showClearButton=\"columnProp(col, 'showClearButton')\"\n :showApplyButton=\"columnProp(col, 'showApplyButton')\"\n :showMatchModes=\"columnProp(col, 'showFilterMatchModes')\"\n :showAddButton=\"columnProp(col, 'showAddButton')\"\n :matchModeOptions=\"columnProp(col, 'filterMatchModeOptions')\"\n :maxConstraints=\"columnProp(col, 'maxConstraints')\"\n @operator-change=\"$emit('operator-change', $event)\"\n @matchmode-change=\"$emit('matchmode-change', $event)\"\n @constraint-add=\"$emit('constraint-add', $event)\"\n @constraint-remove=\"$emit('constraint-remove', $event)\"\n @apply-click=\"$emit('apply-click', $event)\"\n :column=\"col\"\n :unstyled=\"unstyled\"\n :pt=\"pt\"\n />\n </th>\n </template>\n </tr>\n </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 </thead>\n</template>\n\n<script>\nimport BaseComponent from '@primevuelab/core/basecomponent';\nimport { HelperSet, ObjectUtils } from '@primevuelab/core/utils';\nimport { mergeProps } from 'vue';\nimport ColumnFilter from './ColumnFilter.vue';\nimport HeaderCell from './HeaderCell.vue';\nimport HeaderCheckbox from './HeaderCheckbox.vue';\n\nexport default {\n name: 'TableHeader',\n hostName: 'DataTable',\n extends: BaseComponent,\n emits: [\n 'column-click',\n 'column-mousedown',\n 'column-dragstart',\n 'column-dragover',\n 'column-dragleave',\n 'column-drop',\n 'column-resizestart',\n 'checkbox-change',\n 'filter-change',\n 'filter-apply',\n 'operator-change',\n 'matchmode-change',\n 'constraint-add',\n 'constraint-remove',\n 'filter-clear',\n 'apply-click'\n ],\n props: {\n columnGroup: {\n type: null,\n default: null\n },\n columns: {\n type: null,\n default: null\n },\n rowGroupMode: {\n type: String,\n default: null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n default: null\n },\n resizableColumns: {\n type: Boolean,\n default: false\n },\n allRowsSelected: {\n type: Boolean,\n default: false\n },\n empty: {\n type: Boolean,\n default: false\n },\n sortMode: {\n type: String,\n default: 'single'\n },\n groupRowSortField: {\n type: [String, Function],\n default: null\n },\n sortField: {\n type: [String, Function],\n default: null\n },\n sortOrder: {\n type: Number,\n default: null\n },\n multiSortMeta: {\n type: Array,\n default: null\n },\n filterDisplay: {\n type: String,\n default: null\n },\n filters: {\n type: Object,\n default: null\n },\n filtersStore: {\n type: Object,\n default: null\n },\n reorderableColumns: {\n type: Boolean,\n default: false\n },\n first: {\n type: Number,\n default: 0\n },\n filterInputProps: {\n type: null,\n default: null\n },\n filterButtonProps: {\n type: null,\n default: null\n }\n },\n provide() {\n return {\n $rows: this.d_headerRows,\n $columns: this.d_headerColumns\n };\n },\n data() {\n return {\n d_headerRows: new HelperSet({ type: 'Row' }),\n d_headerColumns: new HelperSet({ type: 'Column' })\n };\n },\n beforeUnmount() {\n this.d_headerRows.clear();\n this.d_headerColumns.clear();\n },\n methods: {\n columnProp(col, prop) {\n return ObjectUtils.getVNodeProp(col, prop);\n },\n getColumnGroupPT(key) {\n const columnGroupMetaData = {\n props: this.getColumnGroupProps(),\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n type: 'header',\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n\n return mergeProps(this.ptm(`columnGroup.${key}`, { columnGroup: columnGroupMetaData }), this.ptm(`columnGroup.${key}`, columnGroupMetaData), this.ptmo(this.getColumnGroupProps(), key, columnGroupMetaData));\n },\n getColumnGroupProps() {\n return this.columnGroup && this.columnGroup.props && this.columnGroup.props.pt ? this.columnGroup.props.pt : undefined; //@todo\n },\n getRowPT(row, key, index) {\n const rowMetaData = {\n props: row.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index\n }\n };\n\n return mergeProps(this.ptm(`row.${key}`, { row: rowMetaData }), this.ptm(`row.${key}`, rowMetaData), this.ptmo(this.getRowProp(row), key, rowMetaData));\n },\n getRowProp(row) {\n return row.props && row.props.pt ? row.props.pt : undefined; //@todo\n },\n getColumnPT(column, key, index) {\n const columnMetaData = {\n props: column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index\n }\n };\n\n return mergeProps(this.ptm(`column.${key}`, { column: columnMetaData }), this.ptm(`column.${key}`, columnMetaData), this.ptmo(this.getColumnProp(column), key, columnMetaData));\n },\n getColumnProp(column) {\n return column.props && column.props.pt ? column.props.pt : undefined; //@todo\n },\n getFilterColumnHeaderClass(column) {\n return [this.cx('headerCell', { column }), this.columnProp(column, 'filterHeaderClass'), this.columnProp(column, 'class')];\n },\n getFilterColumnHeaderStyle(column) {\n return [this.columnProp(column, 'filterHeaderStyle'), this.columnProp(column, 'style')];\n },\n getHeaderRows() {\n return this.d_headerRows?.get(this.columnGroup, this.columnGroup.children);\n },\n getHeaderColumns(row) {\n return this.d_headerColumns?.get(row, row.children);\n }\n },\n computed: {\n ptmTHeadOptions() {\n return {\n context: {\n scrollable: this.$parentInstance?.$parentInstance?.scrollable\n }\n };\n }\n },\n components: {\n DTHeaderCell: HeaderCell,\n DTHeaderCheckbox: HeaderCheckbox,\n DTColumnFilter: ColumnFilter\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" data-scrollselectors=\".p-datatable-wrapper\" v-bind=\"ptmi('root')\">\n <slot></slot>\n <div v-if=\"loading\" :class=\"cx('mask')\" v-bind=\"ptm('mask')\">\n <slot v-if=\"$slots.loading\" name=\"loading\"></slot>\n <template v-else>\n <component v-if=\"$slots.loadingicon\" :is=\"$slots.loadingicon\" :class=\"cx('loadingIcon')\" />\n <i v-else-if=\"loadingIcon\" :class=\"[cx('loadingIcon'), 'pi-spin', loadingIcon]\" v-bind=\"ptm('loadingIcon')\" />\n <SpinnerIcon v-else spin :class=\"cx('loadingIcon')\" v-bind=\"ptm('loadingIcon')\" />\n </template>\n </div>\n <div v-if=\"$slots.header\" :class=\"cx('header')\" v-bind=\"ptm('header')\">\n <slot name=\"header\"></slot>\n </div>\n <DTPaginator\n v-if=\"paginatorTop\"\n :rows=\"d_rows\"\n :first=\"d_first\"\n :totalRecords=\"totalRecordsLength\"\n :pageLinkSize=\"pageLinkSize\"\n :template=\"paginatorTemplate\"\n :rowsPerPageOptions=\"rowsPerPageOptions\"\n :currentPageReportTemplate=\"currentPageReportTemplate\"\n :class=\"cx('pcPaginator', { position: 'top' })\"\n @page=\"onPage($event)\"\n :alwaysShow=\"alwaysShowPaginator\"\n :unstyled=\"unstyled\"\n :pt=\"ptm('pcPaginator')\"\n >\n <template v-if=\"$slots.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 :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.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 { FilterMatchMode, FilterOperator, FilterService } from '@primevuelab/core/api';\nimport { DomHandler, HelperSet, ObjectUtils, UniqueComponentId } from '@primevuelab/core/utils';\nimport ArrowDownIcon from '@primevuelab/icons/arrowdown';\nimport ArrowUpIcon from '@primevuelab/icons/arrowup';\nimport SpinnerIcon from '@primevuelab/icons/spinner';\nimport Paginator from 'primevuelab/paginator';\nimport VirtualScroller from 'primevuelab/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 this.$el.setAttribute(this.attributeSelector, '');\n\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 ObjectUtils.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 DomHandler.getAttribute(targetNode, 'data-p-sortable-column') === true ||\n DomHandler.getAttribute(targetNode, 'data-pc-section') === 'columntitle' ||\n DomHandler.getAttribute(targetNode, 'data-pc-section') === 'columnheadercontent' ||\n DomHandler.getAttribute(targetNode, 'data-pc-section') === 'sorticon' ||\n DomHandler.getAttribute(targetNode.parentElement, 'data-pc-section') === 'sorticon' ||\n DomHandler.getAttribute(targetNode.parentElement.parentElement, 'data-pc-section') === 'sorticon' ||\n (targetNode.closest('[data-p-sortable-column=\"true\"]') && !targetNode.closest('[data-pc-section=\"columnfilterbutton\"]') && !DomHandler.isClickable(event.target))\n ) {\n DomHandler.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, ObjectUtils.resolveFieldData(item, this.d_sortField));\n }\n\n const comparer = ObjectUtils.localeComparator();\n\n data.sort((data1, data2) => {\n let value1 = resolvedFieldData.get(data1);\n let value2 = resolvedFieldData.get(data2);\n\n return ObjectUtils.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 = ObjectUtils.resolveFieldData(data1, this.d_multiSortMeta[index].field);\n const value2 = ObjectUtils.resolveFieldData(data2, this.d_multiSortMeta[index].field);\n const comparer = ObjectUtils.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 ObjectUtils.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](ObjectUtils.resolveFieldData(data[i], globalFilterField), activeFilters['global'].value, this.filterLocale);\n\n if (globalMatch) {\n break;\n }\n }\n }\n\n let matches;\n\n if (activeFilters['global']) {\n matches = localFiltered ? localFiltered && localMatch && globalMatch : globalMatch;\n } else {\n matches = localFiltered && localMatch;\n }\n\n if (matches) {\n filteredValue.push(data[i]);\n }\n }\n\n if (filteredValue.length === this.value.length || Object.keys(activeFilters).length == 0) {\n filteredValue = data;\n }\n\n let filterEvent = this.createLazyLoadEvent();\n\n filterEvent.filteredValue = filteredValue;\n this.$emit('filter', filterEvent);\n this.$nextTick(() => {\n this.$emit('value-change', this.processedData);\n });\n\n return filteredValue;\n },\n executeLocalFilter(field, rowData, filterMeta) {\n let filterValue = filterMeta.value;\n let filterMatchMode = filterMeta.matchMode || FilterMatchMode.STARTS_WITH;\n let dataFieldValue = ObjectUtils.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 = DomHandler.findSingle(body, 'tr[data-p-selectable-row=\"true\"][tabindex=\"0\"]');\n\n if (DomHandler.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 DomHandler.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' || event.target?.parentElement?.getAttribute('data-pc-section') === 'rowtoggleicon') return;\n\n const targetRow = event.target?.closest('tr[data-p-selectable-row=\"true\"]');\n\n focusedItem.tabIndex = '-1';\n targetRow.tabIndex = '0';\n }\n },\n onRowDblClick(e) {\n const event = e.originalEvent;\n\n if (DomHandler.isClickable(event.target)) {\n return;\n }\n\n this.$emit('row-dblclick', e);\n },\n onRowRightClick(event) {\n if (this.contextMenu) {\n DomHandler.clearSelection();\n event.originalEvent.target.focus();\n }\n\n this.$emit('update:contextMenuSelection', event.data);\n this.$emit('row-contextmenu', event);\n },\n onRowTouchEnd() {\n this.rowTouched = true;\n },\n onRowKeyDown(e, slotProps) {\n const event = e.originalEvent;\n const rowData = e.data;\n const rowIndex = e.index;\n const metaKey = event.metaKey || event.ctrlKey;\n\n if (this.selectionMode) {\n const row = event.target;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event, row, rowIndex, slotProps);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event, row, rowIndex, slotProps);\n break;\n\n case 'Home':\n this.onHomeKey(event, row, rowIndex, slotProps);\n break;\n\n case 'End':\n this.onEndKey(event, row, rowIndex, slotProps);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event, rowData, rowIndex);\n break;\n\n case 'Space':\n this.onSpaceKey(event, rowData, rowIndex, slotProps);\n break;\n\n case 'Tab':\n this.onTabKey(event, rowIndex);\n break;\n\n default:\n if (event.code === 'KeyA' && metaKey && this.isMultipleSelectionMode()) {\n const data = this.dataToRender(slotProps.rows);\n\n this.$emit('update:selection', data);\n }\n\n event.preventDefault();\n\n break;\n }\n }\n },\n onArrowDownKey(event, row, rowIndex, slotProps) {\n const nextRow = this.findNextSelectableRow(row);\n\n nextRow && this.focusRowChange(row, nextRow);\n\n if (event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n const nextRowIndex = rowIndex + 1 >= data.length ? data.length - 1 : rowIndex + 1;\n\n this.onRowClick({ originalEvent: event, data: data[nextRowIndex], index: nextRowIndex });\n }\n\n event.preventDefault();\n },\n onArrowUpKey(event, row, rowIndex, slotProps) {\n const prevRow = this.findPrevSelectableRow(row);\n\n prevRow && this.focusRowChange(row, prevRow);\n\n if (event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n const prevRowIndex = rowIndex - 1 <= 0 ? 0 : rowIndex - 1;\n\n this.onRowClick({ originalEvent: event, data: data[prevRowIndex], index: prevRowIndex });\n }\n\n event.preventDefault();\n },\n onHomeKey(event, row, rowIndex, slotProps) {\n const firstRow = this.findFirstSelectableRow();\n\n firstRow && this.focusRowChange(row, firstRow);\n\n if (event.ctrlKey && event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n\n this.$emit('update:selection', data.slice(0, rowIndex + 1));\n }\n\n event.preventDefault();\n },\n onEndKey(event, row, rowIndex, slotProps) {\n const lastRow = this.findLastSelectableRow();\n\n lastRow && this.focusRowChange(row, lastRow);\n\n if (event.ctrlKey && event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n\n this.$emit('update:selection', data.slice(rowIndex, data.length));\n }\n\n event.preventDefault();\n },\n onEnterKey(event, rowData, rowIndex) {\n this.onRowClick({ originalEvent: event, data: rowData, index: rowIndex });\n event.preventDefault();\n },\n onSpaceKey(event, rowData, rowIndex, slotProps) {\n this.onEnterKey(event, rowData, rowIndex);\n\n if (event.shiftKey && this.selection !== null) {\n const data = this.dataToRender(slotProps.rows);\n let index;\n\n if (this.selection.length > 0) {\n let firstSelectedRowIndex, lastSelectedRowIndex;\n\n firstSelectedRowIndex = ObjectUtils.findIndexInList(this.selection[0], data);\n lastSelectedRowIndex = ObjectUtils.findIndexInList(this.selection[this.selection.length - 1], data);\n\n index = rowIndex <= firstSelectedRowIndex ? lastSelectedRowIndex : firstSelectedRowIndex;\n } else {\n index = ObjectUtils.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 = DomHandler.find(body, 'tr[data-p-selectable-row=\"true\"]');\n\n if (event.code === 'Tab' && rows && rows.length > 0) {\n const firstSelectedRow = DomHandler.findSingle(body, 'tr[data-p-selected=\"true\"]');\n const focusedItem = DomHandler.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 (DomHandler.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 (DomHandler.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 = DomHandler.findSingle(this.$refs.table, 'tr[data-p-selectable-row=\"true\"]');\n\n return firstRow;\n },\n findLastSelectableRow() {\n const rows = DomHandler.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 DomHandler.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[ObjectUtils.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(ObjectUtils.resolveFieldData(data, this.dataKey))] = 1;\n }\n } else {\n this.d_selectionKeys[String(ObjectUtils.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(ObjectUtils.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 : ObjectUtils.equals(data1, data2, this.dataKey);\n },\n selectRange(event) {\n let rangeStart, rangeEnd;\n\n if (this.rangeRowIndex > this.anchorRowIndex) {\n rangeStart = this.anchorRowIndex;\n rangeEnd = this.rangeRowIndex;\n } else if (this.rangeRowIndex < this.anchorRowIndex) {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.anchorRowIndex;\n } else {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.rangeRowIndex;\n }\n\n if (this.lazy && this.paginator) {\n rangeStart -= this.first;\n rangeEnd -= this.first;\n }\n\n const value = this.processedData;\n let _selection = [];\n\n for (let i = rangeStart; i <= rangeEnd; i++) {\n let rangeRowData = value[i];\n\n _selection.push(rangeRowData);\n this.$emit('row-select', { originalEvent: event, data: rangeRowData, type: 'row' });\n }\n\n this.$emit('update:selection', _selection);\n },\n exportCSV(options, data) {\n let csv = '\\ufeff';\n\n if (!data) {\n data = this.processedData;\n\n if (options && options.selectionOnly) data = this.selection || [];\n else if (this.frozenValue) data = data ? [...this.frozenValue, ...data] : this.frozenValue;\n }\n\n //headers\n let headerInitiated = false;\n\n for (let i = 0; i < this.columns.length; i++) {\n let column = this.columns[i];\n\n if (this.columnProp(column, 'exportable') !== false && this.columnProp(column, 'field')) {\n if (headerInitiated) csv += this.csvSeparator;\n else headerInitiated = true;\n\n csv += '\"' + (this.columnProp(column, 'exportHeader') || this.columnProp(column, 'header') || this.columnProp(column, 'field')) + '\"';\n }\n }\n\n //body\n if (data) {\n data.forEach((record) => {\n csv += '\\n';\n let rowInitiated = false;\n\n for (let i = 0; i < this.columns.length; i++) {\n let column = this.columns[i];\n\n if (this.columnProp(column, 'exportable') !== false && this.columnProp(column, 'field')) {\n if (rowInitiated) csv += this.csvSeparator;\n else rowInitiated = true;\n\n let cellData = ObjectUtils.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 DomHandler.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 = DomHandler.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 = DomHandler.getOffset(this.$el).left;\n\n this.$el.setAttribute('data-p-unselectable-text', 'true');\n !this.isUnstyled && DomHandler.addStyles(this.$el, { 'user-select': 'none' });\n this.$refs.resizeHelper.style.height = this.$el.offsetHeight + 'px';\n this.$refs.resizeHelper.style.top = 0 + 'px';\n this.$refs.resizeHelper.style.left = event.pageX - containerLeft + this.$el.scrollLeft + 'px';\n\n this.$refs.resizeHelper.style.display = 'block';\n },\n onColumnResizeEnd() {\n let delta = this.$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 = DomHandler.index(this.resizeColumnElement);\n let widths = [];\n let headers = DomHandler.find(this.$refs.table, 'thead[data-pc-section=\"thead\"] > tr > th');\n\n headers.forEach((header) => widths.push(DomHandler.getOuterWidth(header)));\n\n this.destroyStyleElement();\n this.createStyleElement();\n\n let innerHTML = '';\n let selector = `[data-pc-name=\"datatable\"][${this.attributeSelector}] > [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' || DomHandler.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 = DomHandler.getHiddenElementOuterWidth(this.$refs.reorderIndicatorUp);\n this.colReorderIconHeight = DomHandler.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 = DomHandler.getOffset(this.$el);\n let dropHeaderOffset = DomHandler.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 = DomHandler.index(this.draggedColumnElement);\n let dropIndex = DomHandler.index(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 = DomHandler.find(this.$el, 'thead[data-pc-section=\"thead\"] > tr > th');\n\n headers.forEach((header) => widths.push(DomHandler.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 ObjectUtils.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 (DomHandler.getAttribute(event.target, 'data-pc-section') === 'reorderablerowhandle' || DomHandler.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 = DomHandler.getOffset(rowElement).top + DomHandler.getWindowScrollTop();\n let pageY = event.pageY;\n let rowMidY = rowY + DomHandler.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 && DomHandler.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 && DomHandler.addClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n } else {\n rowElement.setAttribute('data-p-datatable-dragpoint-top', 'true');\n !this.isUnstyled && DomHandler.addClass(rowElement, 'p-datatable-dragpoint-top');\n }\n } else {\n if (prevRowElement) {\n prevRowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && DomHandler.removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n } else {\n rowElement.setAttribute('data-p-datatable-dragpoint-top', 'true');\n !this.isUnstyled && DomHandler.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 && DomHandler.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 && DomHandler.removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n }\n\n rowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && DomHandler.removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n rowElement.setAttribute('data-p-datatable-dragpoint-top', 'false');\n !this.isUnstyled && DomHandler.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 ObjectUtils.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 = ObjectUtils.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 = ObjectUtils.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 = ObjectUtils.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 = DomHandler.find(this.$el, 'thead[data-pc-section=\"thead\"] > tr > th');\n\n headers.forEach((header) => widths.push(DomHandler.getOuterWidth(header)));\n state.columnWidths = widths.join(',');\n\n if (this.columnResizeMode === 'expand') {\n state.tableWidth = DomHandler.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.attributeSelector}] > [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 (ObjectUtils.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 DomHandler.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 ObjectUtils.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 ObjectUtils.isNotEmpty(val) && this.selection && Array.isArray(this.selection) && val.every((v) => this.selection.some((s) => this.equals(s, v)));\n }\n },\n attributeSelector() {\n return UniqueComponentId();\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 ObjectUtils.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.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 :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.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 { FilterMatchMode, FilterOperator, FilterService } from '@primevuelab/core/api';\nimport { DomHandler, HelperSet, ObjectUtils, UniqueComponentId } from '@primevuelab/core/utils';\nimport ArrowDownIcon from '@primevuelab/icons/arrowdown';\nimport ArrowUpIcon from '@primevuelab/icons/arrowup';\nimport SpinnerIcon from '@primevuelab/icons/spinner';\nimport Paginator from 'primevuelab/paginator';\nimport VirtualScroller from 'primevuelab/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 this.$el.setAttribute(this.attributeSelector, '');\n\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 ObjectUtils.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 DomHandler.getAttribute(targetNode, 'data-p-sortable-column') === true ||\n DomHandler.getAttribute(targetNode, 'data-pc-section') === 'columntitle' ||\n DomHandler.getAttribute(targetNode, 'data-pc-section') === 'columnheadercontent' ||\n DomHandler.getAttribute(targetNode, 'data-pc-section') === 'sorticon' ||\n DomHandler.getAttribute(targetNode.parentElement, 'data-pc-section') === 'sorticon' ||\n DomHandler.getAttribute(targetNode.parentElement.parentElement, 'data-pc-section') === 'sorticon' ||\n (targetNode.closest('[data-p-sortable-column=\"true\"]') && !targetNode.closest('[data-pc-section=\"columnfilterbutton\"]') && !DomHandler.isClickable(event.target))\n ) {\n DomHandler.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, ObjectUtils.resolveFieldData(item, this.d_sortField));\n }\n\n const comparer = ObjectUtils.localeComparator();\n\n data.sort((data1, data2) => {\n let value1 = resolvedFieldData.get(data1);\n let value2 = resolvedFieldData.get(data2);\n\n return ObjectUtils.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 = ObjectUtils.resolveFieldData(data1, this.d_multiSortMeta[index].field);\n const value2 = ObjectUtils.resolveFieldData(data2, this.d_multiSortMeta[index].field);\n const comparer = ObjectUtils.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 ObjectUtils.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](ObjectUtils.resolveFieldData(data[i], globalFilterField), activeFilters['global'].value, this.filterLocale);\n\n if (globalMatch) {\n break;\n }\n }\n }\n\n let matches;\n\n if (activeFilters['global']) {\n matches = localFiltered ? localFiltered && localMatch && globalMatch : globalMatch;\n } else {\n matches = localFiltered && localMatch;\n }\n\n if (matches) {\n filteredValue.push(data[i]);\n }\n }\n\n if (filteredValue.length === this.value.length || Object.keys(activeFilters).length == 0) {\n filteredValue = data;\n }\n\n let filterEvent = this.createLazyLoadEvent();\n\n filterEvent.filteredValue = filteredValue;\n this.$emit('filter', filterEvent);\n this.$nextTick(() => {\n this.$emit('value-change', this.processedData);\n });\n\n return filteredValue;\n },\n executeLocalFilter(field, rowData, filterMeta) {\n let filterValue = filterMeta.value;\n let filterMatchMode = filterMeta.matchMode || FilterMatchMode.STARTS_WITH;\n let dataFieldValue = ObjectUtils.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 = DomHandler.findSingle(body, 'tr[data-p-selectable-row=\"true\"][tabindex=\"0\"]');\n\n if (DomHandler.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 DomHandler.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' || event.target?.parentElement?.getAttribute('data-pc-section') === 'rowtoggleicon') return;\n\n const targetRow = event.target?.closest('tr[data-p-selectable-row=\"true\"]');\n\n focusedItem.tabIndex = '-1';\n targetRow.tabIndex = '0';\n }\n },\n onRowDblClick(e) {\n const event = e.originalEvent;\n\n if (DomHandler.isClickable(event.target)) {\n return;\n }\n\n this.$emit('row-dblclick', e);\n },\n onRowRightClick(event) {\n if (this.contextMenu) {\n DomHandler.clearSelection();\n event.originalEvent.target.focus();\n }\n\n this.$emit('update:contextMenuSelection', event.data);\n this.$emit('row-contextmenu', event);\n },\n onRowTouchEnd() {\n this.rowTouched = true;\n },\n onRowKeyDown(e, slotProps) {\n const event = e.originalEvent;\n const rowData = e.data;\n const rowIndex = e.index;\n const metaKey = event.metaKey || event.ctrlKey;\n\n if (this.selectionMode) {\n const row = event.target;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event, row, rowIndex, slotProps);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event, row, rowIndex, slotProps);\n break;\n\n case 'Home':\n this.onHomeKey(event, row, rowIndex, slotProps);\n break;\n\n case 'End':\n this.onEndKey(event, row, rowIndex, slotProps);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event, rowData, rowIndex);\n break;\n\n case 'Space':\n this.onSpaceKey(event, rowData, rowIndex, slotProps);\n break;\n\n case 'Tab':\n this.onTabKey(event, rowIndex);\n break;\n\n default:\n if (event.code === 'KeyA' && metaKey && this.isMultipleSelectionMode()) {\n const data = this.dataToRender(slotProps.rows);\n\n this.$emit('update:selection', data);\n }\n\n event.preventDefault();\n\n break;\n }\n }\n },\n onArrowDownKey(event, row, rowIndex, slotProps) {\n const nextRow = this.findNextSelectableRow(row);\n\n nextRow && this.focusRowChange(row, nextRow);\n\n if (event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n const nextRowIndex = rowIndex + 1 >= data.length ? data.length - 1 : rowIndex + 1;\n\n this.onRowClick({ originalEvent: event, data: data[nextRowIndex], index: nextRowIndex });\n }\n\n event.preventDefault();\n },\n onArrowUpKey(event, row, rowIndex, slotProps) {\n const prevRow = this.findPrevSelectableRow(row);\n\n prevRow && this.focusRowChange(row, prevRow);\n\n if (event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n const prevRowIndex = rowIndex - 1 <= 0 ? 0 : rowIndex - 1;\n\n this.onRowClick({ originalEvent: event, data: data[prevRowIndex], index: prevRowIndex });\n }\n\n event.preventDefault();\n },\n onHomeKey(event, row, rowIndex, slotProps) {\n const firstRow = this.findFirstSelectableRow();\n\n firstRow && this.focusRowChange(row, firstRow);\n\n if (event.ctrlKey && event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n\n this.$emit('update:selection', data.slice(0, rowIndex + 1));\n }\n\n event.preventDefault();\n },\n onEndKey(event, row, rowIndex, slotProps) {\n const lastRow = this.findLastSelectableRow();\n\n lastRow && this.focusRowChange(row, lastRow);\n\n if (event.ctrlKey && event.shiftKey) {\n const data = this.dataToRender(slotProps.rows);\n\n this.$emit('update:selection', data.slice(rowIndex, data.length));\n }\n\n event.preventDefault();\n },\n onEnterKey(event, rowData, rowIndex) {\n this.onRowClick({ originalEvent: event, data: rowData, index: rowIndex });\n event.preventDefault();\n },\n onSpaceKey(event, rowData, rowIndex, slotProps) {\n this.onEnterKey(event, rowData, rowIndex);\n\n if (event.shiftKey && this.selection !== null) {\n const data = this.dataToRender(slotProps.rows);\n let index;\n\n if (this.selection.length > 0) {\n let firstSelectedRowIndex, lastSelectedRowIndex;\n\n firstSelectedRowIndex = ObjectUtils.findIndexInList(this.selection[0], data);\n lastSelectedRowIndex = ObjectUtils.findIndexInList(this.selection[this.selection.length - 1], data);\n\n index = rowIndex <= firstSelectedRowIndex ? lastSelectedRowIndex : firstSelectedRowIndex;\n } else {\n index = ObjectUtils.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 = DomHandler.find(body, 'tr[data-p-selectable-row=\"true\"]');\n\n if (event.code === 'Tab' && rows && rows.length > 0) {\n const firstSelectedRow = DomHandler.findSingle(body, 'tr[data-p-selected=\"true\"]');\n const focusedItem = DomHandler.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 (DomHandler.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 (DomHandler.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 = DomHandler.findSingle(this.$refs.table, 'tr[data-p-selectable-row=\"true\"]');\n\n return firstRow;\n },\n findLastSelectableRow() {\n const rows = DomHandler.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 DomHandler.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[ObjectUtils.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(ObjectUtils.resolveFieldData(data, this.dataKey))] = 1;\n }\n } else {\n this.d_selectionKeys[String(ObjectUtils.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(ObjectUtils.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 : ObjectUtils.equals(data1, data2, this.dataKey);\n },\n selectRange(event) {\n let rangeStart, rangeEnd;\n\n if (this.rangeRowIndex > this.anchorRowIndex) {\n rangeStart = this.anchorRowIndex;\n rangeEnd = this.rangeRowIndex;\n } else if (this.rangeRowIndex < this.anchorRowIndex) {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.anchorRowIndex;\n } else {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.rangeRowIndex;\n }\n\n if (this.lazy && this.paginator) {\n rangeStart -= this.first;\n rangeEnd -= this.first;\n }\n\n const value = this.processedData;\n let _selection = [];\n\n for (let i = rangeStart; i <= rangeEnd; i++) {\n let rangeRowData = value[i];\n\n _selection.push(rangeRowData);\n this.$emit('row-select', { originalEvent: event, data: rangeRowData, type: 'row' });\n }\n\n this.$emit('update:selection', _selection);\n },\n exportCSV(options, data) {\n let csv = '\\ufeff';\n\n if (!data) {\n data = this.processedData;\n\n if (options && options.selectionOnly) data = this.selection || [];\n else if (this.frozenValue) data = data ? [...this.frozenValue, ...data] : this.frozenValue;\n }\n\n //headers\n let headerInitiated = false;\n\n for (let i = 0; i < this.columns.length; i++) {\n let column = this.columns[i];\n\n if (this.columnProp(column, 'exportable') !== false && this.columnProp(column, 'field')) {\n if (headerInitiated) csv += this.csvSeparator;\n else headerInitiated = true;\n\n csv += '\"' + (this.columnProp(column, 'exportHeader') || this.columnProp(column, 'header') || this.columnProp(column, 'field')) + '\"';\n }\n }\n\n //body\n if (data) {\n data.forEach((record) => {\n csv += '\\n';\n let rowInitiated = false;\n\n for (let i = 0; i < this.columns.length; i++) {\n let column = this.columns[i];\n\n if (this.columnProp(column, 'exportable') !== false && this.columnProp(column, 'field')) {\n if (rowInitiated) csv += this.csvSeparator;\n else rowInitiated = true;\n\n let cellData = ObjectUtils.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 DomHandler.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 = DomHandler.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 = DomHandler.getOffset(this.$el).left;\n\n this.$el.setAttribute('data-p-unselectable-text', 'true');\n !this.isUnstyled && DomHandler.addStyles(this.$el, { 'user-select': 'none' });\n this.$refs.resizeHelper.style.height = this.$el.offsetHeight + 'px';\n this.$refs.resizeHelper.style.top = 0 + 'px';\n this.$refs.resizeHelper.style.left = event.pageX - containerLeft + this.$el.scrollLeft + 'px';\n\n this.$refs.resizeHelper.style.display = 'block';\n },\n onColumnResizeEnd() {\n let delta = this.$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 = DomHandler.index(this.resizeColumnElement);\n let widths = [];\n let headers = DomHandler.find(this.$refs.table, 'thead[data-pc-section=\"thead\"] > tr > th');\n\n headers.forEach((header) => widths.push(DomHandler.getOuterWidth(header)));\n\n this.destroyStyleElement();\n this.createStyleElement();\n\n let innerHTML = '';\n let selector = `[data-pc-name=\"datatable\"][${this.attributeSelector}] > [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' || DomHandler.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 = DomHandler.getHiddenElementOuterWidth(this.$refs.reorderIndicatorUp);\n this.colReorderIconHeight = DomHandler.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 = DomHandler.getOffset(this.$el);\n let dropHeaderOffset = DomHandler.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 = DomHandler.index(this.draggedColumnElement);\n let dropIndex = DomHandler.index(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 = DomHandler.find(this.$el, 'thead[data-pc-section=\"thead\"] > tr > th');\n\n headers.forEach((header) => widths.push(DomHandler.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 ObjectUtils.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 (DomHandler.getAttribute(event.target, 'data-pc-section') === 'reorderablerowhandle' || DomHandler.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 = DomHandler.getOffset(rowElement).top + DomHandler.getWindowScrollTop();\n let pageY = event.pageY;\n let rowMidY = rowY + DomHandler.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 && DomHandler.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 && DomHandler.addClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n } else {\n rowElement.setAttribute('data-p-datatable-dragpoint-top', 'true');\n !this.isUnstyled && DomHandler.addClass(rowElement, 'p-datatable-dragpoint-top');\n }\n } else {\n if (prevRowElement) {\n prevRowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && DomHandler.removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n } else {\n rowElement.setAttribute('data-p-datatable-dragpoint-top', 'true');\n !this.isUnstyled && DomHandler.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 && DomHandler.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 && DomHandler.removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n }\n\n rowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && DomHandler.removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n rowElement.setAttribute('data-p-datatable-dragpoint-top', 'false');\n !this.isUnstyled && DomHandler.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 ObjectUtils.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 = ObjectUtils.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 = ObjectUtils.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 = ObjectUtils.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 = DomHandler.find(this.$el, 'thead[data-pc-section=\"thead\"] > tr > th');\n\n headers.forEach((header) => widths.push(DomHandler.getOuterWidth(header)));\n state.columnWidths = widths.join(',');\n\n if (this.columnResizeMode === 'expand') {\n state.tableWidth = DomHandler.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.attributeSelector}] > [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 (ObjectUtils.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 DomHandler.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 ObjectUtils.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 ObjectUtils.isNotEmpty(val) && this.selection && Array.isArray(this.selection) && val.every((v) => this.selection.some((s) => this.equals(s, v)));\n }\n },\n attributeSelector() {\n return UniqueComponentId();\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 ObjectUtils.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","showGridlines","stripedRows","highlightOnSelect","size","tableStyle","tableClass","tableProps","filterInputProps","filterButtonProps","_default","filter","severity","text","rounded","inline","clear","popover","addRule","removeRule","apply","outlined","editButtonProps","init","save","cancel","style","DataTableStyle","provide","$pcDataTable","$parentInstance","hostName","emits","checked","column","rowCheckboxIconTemplate","index","methods","getColumnPT","key","columnMetaData","parent","instance","$props","state","$data","context","disabled","$attrs","mergeProps","ptm","concat","ptmo","getColumnProp","pt","onChange","event","$emit","originalEvent","data","computed","checkboxAriaLabel","$primevue","config","locale","aria","selectRow","unselectRow","components","CheckIcon","Checkbox","_createBlock","_component_Checkbox","modelValue","binary","_ctx","$options","unstyled","icon","_withCtx","slotProps","_openBlock","_resolveDynamicComponent","_normalizeClass","_component_CheckIcon","_mergeProps","RadioButton","_component_RadioButton","rowData","frozenRow","rowIndex","isRowExpanded","selected","editing","editingMeta","virtualScrollerContentProps","ariaControls","documentEditListener","selfClick","overlayEventListener","d_editing","styleObject","watch","newValue","$dataD_editing","field","mounted","columnProp","updateStickyPosition","updated","_this","setTimeout","focusableEl","DomHandler","getFirstFocusableElement","$el","focus","beforeUnmount","OverlayEventBus","off","prop","ObjectUtils","getVNodeProp","_this$$parentInstance","_this$$parentInstance2","resolveFieldData","toggleRow","toggleRowWithRadio","toggleRowWithCheckbox","isEditable","children","editor","bindDocumentEditListener","_this2","completeEdit","document","addEventListener","unbindDocumentEditListener","removeEventListener","switchCellToViewMode","onClick","_this3","e","contains","target","on","completeEvent","newData","editingRowData","defaultPrevented","preventDefault","onKeyDown","code","shiftKey","moveToPreviousCell","moveToNextCell","currentCell","findCell","targetCell","findPreviousEditableColumn","invokeElementMethod","findNextEditableColumn","element","cell","getAttribute","parentElement","prevCell","previousElementSibling","previousRow","lastElementChild","nextCell","nextElementSibling","nextRow","firstElementChild","onRowEditInit","onRowEditSave","onRowEditCancel","editorInitCallback","editorSaveCallback","editorCancelCallback","align","right","next","getNextElementSibling","getOuterWidth","parseFloat","left","prev","getPreviousElementSibling","getVirtualScrollerProp","option","containerClass","cx","containerStyle","bodyStyle","columnStyle","loadingOptions","getLoaderOptions","cellIndex","cellFirst","cellLast","length","cellEven","cellOdd","expandButtonAriaLabel","expandRow","collapseRow","initButtonAriaLabel","editRow","saveButtonAriaLabel","saveEdit","cancelButtonAriaLabel","cancelEdit","DTRadioButton","RowRadioButton","DTCheckbox","RowCheckbox","Button","ChevronDownIcon","ChevronRightIcon","BarsIcon","PencilIcon","TimesIcon","directives","ripple","Ripple","_createElementBlock","role","_objectSpread","colspan","rowspan","arguments","onKeydown","body","rowTogglerCallback","_Fragment","_component_DTRadioButton","_cache","$event","_component_DTCheckbox","rowcheckboxicon","rowreordericon","_component_BarsIcon","_withDirectives","rowtogglericon","rowExpanded","_component_ChevronDownIcon","_component_ChevronRightIcon","_component_Button","roweditoriniticon","roweditorsaveicon","roweditorcancelicon","columns","empty","selectionKeys","rowGroupHeaderStyle","editingRowKeys","templates","isVirtualScrollerDisabled","expandedRowId","nameAttributeSelector","d_rowExpanded","deep","immediate","handler","some","d","equals","col","getBodyRowPTOptions","datatable","selectable","isSelected","shouldRenderBodyCell","isHidden","isGrouped","prevRowData","currentRowFieldData","previousRowFieldData","calculateRowGroupSize","nextRowFieldData","groupRowSpan","nextRowData","isArray","indexOf","findIndexInSelection","findIndex","collection","i","data1","data2","onRowGroupToggle","onRowClick","onRowDblClick","onRowRightClick","onRowTouchEnd","onRowKeyDown","onRowMouseDown","onRowDragStart","onRowDragOver","onRowDragLeave","onRowDragEnd","onRowDrop","onRowToggle","expanded","onRadioChange","onCheckboxChange","onCellEditInit","onCellEditComplete","onCellEditCancel","onEditingMetaChange","options","getItemOptions","rowStyles","_this$rowStyle","call","rowClasses","rowStyleClass","columnSelectionMode","rowClassValue","push","_iterator","_createForOfIteratorHelper","_step","s","n","done","_selectionMode","isNotEmpty","err","f","rowTabindex","isRowEditing","isRowGroupExpanded","groupFieldValue","isSelectedWithContextMenu","shouldRenderRowGroupHeader","shouldRenderRowGroupFooter","columnsLength","hiddenColLength","forEach","DTBodyCell","BodyCell","_createElementVNode","tabindex","onDblclick","onContextmenu","onTouchend","onMousedown","onDragstart","onDragover","onDragleave","onDragend","onDrop","_renderList","_component_DTBodyCell","id","rowGroupHeaderStyleObject","updateFrozenRowStickyPosition","updateFrozenRowGroupHeaderStickyPosition","getRowKey","top","getOuterHeight","tableHeaderHeight","bodyRef","el","contentRef","bodyContentStyle","ptmTBodyOptions","UniqueComponentId","DTBodyRow","BodyRow","ref","_component_DTBodyRow","onRowgroupToggle","onRowDblclick","onRowRightclick","onRowTouchend","onRowKeydown","onRowMousedown","onRowDragstart","onRowDragover","onRowDragleave","onRowDragend","footer","columnGroup","$rows","d_footerRows","$columns","d_footerColumns","HelperSet","getColumnGroupPT","columnGroupMetaData","getColumnGroupProps","ptmTFootOptions","getRowPT","row","rowMetaData","getRowProp","getFooterRows","_this$d_footerRows","get","getFooterColumns","_this$d_footerColumns","hasFooter","DTFooterCell","FooterCell","sx","_component_DTFooterCell","j","display","showMenu","matchMode","showOperator","showClearButton","showApplyButton","showMatchModes","showAddButton","matchModeOptions","maxConstraints","filterElement","filterHeaderTemplate","filterFooterTemplate","filterClearTemplate","filterApplyTemplate","filterIconTemplate","filterAddIconTemplate","filterRemoveIconTemplate","filterClearIconTemplate","filtersStore","filterMenuClass","filterMenuStyle","overlayVisible","defaultMatchMode","defaultOperator","$attrsId","overlay","ZIndexUtils","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","applyStyle","set","zIndex","addStyles","position","absolutePosition","bindOutsideClickListener","bindScrollListener","bindResizeListener","isOutsideClicked","onOverlayAfterEnter","_this$overlay","$focustrap","autoFocus","onOverlayLeave","onOverlayAfterLeave","unbindOutsideClickListener","unbindResizeListener","unbindScrollListener","overlayRef","isTargetClicked","isSameNode","outsideClickListener","scrollHandler","ConnectedOverlayScrollHandler","_this4","resizeListener","isTouchDevice","window","overlayId","matchModes","_this5","lab","filterMatchModeOptions","map","label","isShowMatchModes","operatorOptions","matchAll","FilterOperator","AND","matchAny","OR","noFilterLabel","noFilter","isShowOperator","fieldConstraints","showRemoveIcon","removeRuleButtonLabel","addRuleButtonLabel","isShowAddConstraint","clearButtonLabel","applyButtonLabel","columnFilterButtonAriaLabel","showFilterMenu","hideFilterMenu","filterOperatorAriaLabel","filterOperator","filterRuleAriaLabel","filterConstraint","ptmHeaderFilterClearParams","hidden","ptmFilterMenuParams","active","Select","Portal","FilterSlashIcon","FilterIcon","TrashIcon","PlusIcon","focustrap","FocusTrap","filterModel","_createVNode","_component_Portal","_Transition","onEnter","onAfterEnter","onLeave","onAfterLeave","_toDisplayString","onRowClearItemClick","_component_Select","optionLabel","optionValue","fieldConstraint","onUpdateModelValue","iconProps","iconPos","headerCheckboxIconTemplate","headerCheckboxAriaLabel","unselectAll","groupRowSortField","allRowsSelected","filterColumn","sortable","sorted","isColumnSorted","resizable","currentTarget","nodeName","onMouseDown","onDragStart","onDragOver","onDragLeave","onResizeStart","getMultiSortMetaIndex","meta","getBadgeValue","isMultiSorted","filterRow","onHeaderCheckboxChange","headerStyle","sortState","metaIndex","order","sortableColumnIcon","_this$sortState","SortAltIcon","SortAmountUpAltIcon","SortAmountDownIcon","ariaSort","_this$sortState2","Badge","DTHeaderCheckbox","HeaderCheckbox","DTColumnFilter","ColumnFilter","header","sorticon","_component_Badge","_component_DTHeaderCheckbox","headercheckboxicon","_component_DTColumnFilter","filterheader","filterfooter","filterclear","filterapply","filtericon","filteraddicon","filterremoveicon","filterclearicon","onFilterChange","onFilterApply","onMatchmodeChange","onConstraintAdd","onConstraintRemove","onApplyClick","d_headerRows","d_headerColumns","getFilterColumnHeaderClass","getFilterColumnHeaderStyle","getHeaderRows","_this$d_headerRows","getHeaderColumns","_this$d_headerColumns","ptmTHeadOptions","DTHeaderCell","HeaderCell","_component_DTHeaderCell","onColumnClick","onColumnMousedown","onColumnDragstart","onColumnDragover","onColumnDragleave","onColumnDrop","onColumnResizestart","BaseDataTable","inheritAttrs","d_columns","$columnGroups","d_columnGroups","d_first","d_rows","d_sortField","d_sortOrder","d_nullSortOrder","d_multiSortMeta","_toConsumableArray","d_groupRowsSortMeta","d_selectionKeys","d_columnOrder","d_editingRowKeys","d_editingMeta","d_filters","cloneFilters","rowTouched","anchorRowIndex","rangeRowIndex","documentColumnResizeListener","documentColumnResizeEndListener","lastResizeHelperX","resizeColumnElement","columnResizing","colReorderIconWidth","colReorderIconHeight","draggedColumn","draggedColumnElement","draggedRowIndex","droppedRowIndex","rowDragging","columnWidthsState","tableWidthState","columnWidthsRestored","updateSelectionKeys","updateEditingRowKeys","setAttribute","attributeSelector","isStateful","restoreState","restoreColumnWidths","unbindColumnResizeEvents","destroyStyleElement","saveState","onPage","clearEditingMetaData","pageEvent","createLazyLoadEvent","pageCount","page","$nextTick","processedData","onColumnHeaderClick","targetNode","columnField","closest","isClickable","clearSelection","resetPage","metaKey","ctrlKey","addMultiSortField","sortSingle","sortMultiple","resolvedFieldData","Map","comparer","localeComparator","sort","value1","value2","firstSortMeta","multisortField","getActiveFilters","removeEmptyFilters","_ref","_ref2","_slicedToArray","filteredConstraints","constraint","filterValidEntries","entry","entries","fromEntries","activeFilters","globalFilterFieldsArray","filteredValue","localMatch","globalMatch","localFiltered","prototype","hasOwnProperty","filterField","filterMeta","_iterator2","_step2","executeLocalFilter","globalFilterField","FilterService","FilterMatchMode","CONTAINS","matches","keys","filterEvent","filterValue","filterMatchMode","STARTS_WITH","dataFieldValue","focusedItem","findSingle","isMultipleSelectionMode","selectRange","metaSelection","isSingleSelectionMode","selectionIndex","_selection","val","_event$target","_event$target2","_event$target3","targetRow","onArrowDownKey","onArrowUpKey","onHomeKey","onEndKey","onEnterKey","onSpaceKey","onTabKey","dataToRender","findNextSelectableRow","focusRowChange","nextRowIndex","prevRow","findPrevSelectableRow","prevRowIndex","firstRow","findFirstSelectableRow","slice","lastRow","findLastSelectableRow","firstSelectedRowIndex","lastSelectedRowIndex","findIndexInList","Math","min","max","find","firstSelectedRow","table","firstFocusableRow","currentFocusedRow","toggleRowsWithCheckbox","_iterator3","_step3","_iterator4","_step4","rangeStart","rangeEnd","rangeRowData","exportCSV","_this6","csv","selectionOnly","headerInitiated","record","rowInitiated","cellData","replace","footerInitiated","onColumnResizeStart","containerLeft","getOffset","pageX","scrollLeft","bindColumnResizeEvents","onColumnResize","isUnstyled","resizeHelper","height","offsetHeight","onColumnResizeEnd","delta","offsetLeft","columnWidth","offsetWidth","newColumnWidth","minWidth","parseInt","nextColumn","nextColumnWidth","resizeTableCells","tableWidth","updateTableWidth","width","virtualScrollerDisabled","frozenBody","frozenBodyRef","resizeColumn","colIndex","widths","headers","createStyleElement","innerHTML","selector","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","getWindowScrollTop","pageY","rowMidY","prevRowElement","removeClass","addClass","_this9","rest","_objectWithoutProperties","_excluded","toggleRowGroup","_expandedRowGroups","group","getStorage","localStorage","sessionStorage","Error","storage","hasFilters","saveColumnWidths","columnOrder","setItem","JSON","stringify","stateString","getItem","dateFormat","reviver","test","Date","restoredState","parse","columnWidths","join","split","_editingRows","fields","hasGlobalFilter","cloned","_ref3","_ref4","_this10","_this$$primevue","createElement","csp","nonce","head","appendChild","removeChild","_data","getVirtualScrollerRef","virtualScroller","hasSpacerStyle","cols","orderedColumns","_iterator5","_step5","columnKey","columnGroups","headerColumnGroup","_this$columnGroups","_this11","footerColumnGroup","_this$columnGroups2","_this12","constructor","_this$virtualScroller","totalRecordsLength","paginatorTop","paginatorBottom","_this13","every","v","headerFilterButtonProps","rowEditButtonProps","isEmpty","DTPaginator","Paginator","DTTableHeader","TableHeader","DTTableBody","TableBody","DTTableFooter","TableFooter","DTVirtualScroller","VirtualScroller","ArrowDownIcon","ArrowUpIcon","SpinnerIcon","ptmi","_renderSlot","$slots","loadingicon","_component_SpinnerIcon","spin","_component_DTPaginator","template","alwaysShow","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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"}
|