@nova-design-system/nova-webcomponents 3.23.0 → 3.24.0
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/dist/cjs/app-globals-V2Kpy_OQ.js.map +1 -1
- package/dist/cjs/events.utils-BE6R5q9C.js +33 -0
- package/dist/cjs/events.utils-BE6R5q9C.js.map +1 -0
- package/dist/cjs/{grow.animation-BrWzyoUA.js → grow.animation-ynu_HmA_.js} +2 -30
- package/dist/cjs/grow.animation-ynu_HmA_.js.map +1 -0
- package/dist/cjs/{i18n.utils-BizoXo6c.js → i18n.utils-ku0bScip.js} +16 -20
- package/dist/cjs/{i18n.utils-BizoXo6c.js.map → i18n.utils-ku0bScip.js.map} +1 -1
- package/dist/cjs/index-B1na8x6M.js +12 -4
- package/dist/cjs/index.cjs.js +5 -2
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/index.esm-CG1TVKfu.js +540 -0
- package/dist/cjs/index.esm-CG1TVKfu.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/native.cjs.js +1 -1
- package/dist/cjs/nv-accordion.cjs.entry.js +2 -7
- package/dist/cjs/nv-accordion.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-alert.cjs.entry.js +1 -2
- package/dist/cjs/nv-alert.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-badge_2.cjs.entry.js +1 -1
- package/dist/cjs/nv-button.cjs.entry.js +3 -5
- package/dist/cjs/nv-button.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-calendar.cjs.entry.js +14 -24
- package/dist/cjs/nv-calendar.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-datagrid.cjs.entry.js +67 -72
- package/dist/cjs/nv-datagrid.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-dialog.cjs.entry.js +6 -538
- package/dist/cjs/nv-dialog.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-drawer.cjs.entry.js +443 -0
- package/dist/cjs/nv-drawer.entry.cjs.js.map +1 -0
- package/dist/cjs/nv-drawerfooter.nv-drawerheader.entry.cjs.js.map +1 -0
- package/dist/cjs/nv-drawerfooter_2.cjs.entry.js +144 -0
- package/dist/cjs/nv-fieldcheckbox.cjs.entry.js +6 -6
- package/dist/cjs/nv-fieldcheckbox.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-fielddate.cjs.entry.js +12 -15
- package/dist/cjs/nv-fielddate.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-fielddaterange.cjs.entry.js +12 -13
- package/dist/cjs/nv-fielddaterange.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-fielddropdown.cjs.entry.js +24 -33
- package/dist/cjs/nv-fielddropdown.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-fielddropdownitem.cjs.entry.js +2 -3
- package/dist/cjs/nv-fielddropdownitem.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-fieldmultiselect.cjs.entry.js +19 -27
- package/dist/cjs/nv-fieldmultiselect.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-fieldnumber.cjs.entry.js +6 -6
- package/dist/cjs/nv-fieldnumber.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-fieldpassword.cjs.entry.js +6 -6
- package/dist/cjs/nv-fieldpassword.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-fieldradio.cjs.entry.js +4 -4
- package/dist/cjs/nv-fieldradio.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-fieldselect.cjs.entry.js +8 -8
- package/dist/cjs/nv-fieldselect.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-fieldslider.cjs.entry.js +5 -5
- package/dist/cjs/nv-fieldslider.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-fieldtext.cjs.entry.js +6 -6
- package/dist/cjs/nv-fieldtext.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-fieldtextarea.cjs.entry.js +6 -7
- package/dist/cjs/nv-fieldtextarea.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-fieldtime.cjs.entry.js +27 -35
- package/dist/cjs/nv-fieldtime.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-icon.cjs.entry.js +2 -2
- package/dist/cjs/nv-icon.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-iconbutton.nv-loader.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-iconbutton_2.cjs.entry.js +5 -6
- package/dist/cjs/nv-menu.cjs.entry.js +3 -4
- package/dist/cjs/nv-menu.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-menuitem.cjs.entry.js +1 -1
- package/dist/cjs/nv-notification-bullet.cjs.entry.js +1 -2
- package/dist/cjs/nv-notification-bullet.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-notification.cjs.entry.js +6 -9
- package/dist/cjs/nv-notification.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-notificationcontainer.cjs.entry.js +1 -1
- package/dist/cjs/nv-popover.cjs.entry.js +12 -12
- package/dist/cjs/nv-popover.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-row.cjs.entry.js +1 -1
- package/dist/cjs/nv-sidebar.cjs.entry.js +3 -3
- package/dist/cjs/nv-sidebar.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-sidebarcontent.cjs.entry.js +1 -1
- package/dist/cjs/nv-sidebardivider.cjs.entry.js +1 -1
- package/dist/cjs/nv-sidebarfooter.cjs.entry.js +1 -1
- package/dist/cjs/nv-sidebargroup.cjs.entry.js +1 -1
- package/dist/cjs/nv-sidebarheader.cjs.entry.js +1 -1
- package/dist/cjs/nv-sidebarlogo.cjs.entry.js +1 -1
- package/dist/cjs/nv-sidebarnavitem.cjs.entry.js +4 -5
- package/dist/cjs/nv-sidebarnavitem.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-sidebarnavsubitem.cjs.entry.js +1 -1
- package/dist/cjs/nv-split.cjs.entry.js +43 -41
- package/dist/cjs/nv-split.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-stack.cjs.entry.js +1 -1
- package/dist/cjs/nv-table.cjs.entry.js +6 -8
- package/dist/cjs/nv-table.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-tableheader.cjs.entry.js +2 -2
- package/dist/cjs/nv-tableheader.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-toggle.cjs.entry.js +2 -2
- package/dist/cjs/nv-togglebutton.cjs.entry.js +2 -2
- package/dist/cjs/nv-togglebutton.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-togglebuttongroup.cjs.entry.js +3 -4
- package/dist/cjs/nv-togglebuttongroup.entry.cjs.js.map +1 -1
- package/dist/cjs/nv-tooltip.cjs.entry.js +1 -1
- package/dist/collection/collection-manifest.json +3 -0
- package/dist/collection/components/nv-accordion/nv-accordion.docs.js +66 -40
- package/dist/collection/components/nv-accordion/nv-accordion.docs.js.map +1 -1
- package/dist/collection/components/nv-accordion/nv-accordion.js +2 -7
- package/dist/collection/components/nv-accordion/nv-accordion.js.map +1 -1
- package/dist/collection/components/nv-alert/nv-alert.docs.js +18 -1
- package/dist/collection/components/nv-alert/nv-alert.docs.js.map +1 -1
- package/dist/collection/components/nv-alert/nv-alert.js +1 -2
- package/dist/collection/components/nv-alert/nv-alert.js.map +1 -1
- package/dist/collection/components/nv-avatar/nv-avatar.docs.js +56 -0
- package/dist/collection/components/nv-avatar/nv-avatar.docs.js.map +1 -1
- package/dist/collection/components/nv-badge/nv-badge.docs.js +64 -15
- package/dist/collection/components/nv-badge/nv-badge.docs.js.map +1 -1
- package/dist/collection/components/nv-breadcrumbs/nv-breadcrumbs.docs.js +10 -1
- package/dist/collection/components/nv-breadcrumbs/nv-breadcrumbs.docs.js.map +1 -1
- package/dist/collection/components/nv-button/nv-button.docs.js +38 -4
- package/dist/collection/components/nv-button/nv-button.docs.js.map +1 -1
- package/dist/collection/components/nv-button/nv-button.js +3 -5
- package/dist/collection/components/nv-button/nv-button.js.map +1 -1
- package/dist/collection/components/nv-buttongroup/nv-buttongroup.docs.js +22 -0
- package/dist/collection/components/nv-buttongroup/nv-buttongroup.docs.js.map +1 -1
- package/dist/collection/components/nv-calendar/nv-calendar.docs.js +269 -14
- package/dist/collection/components/nv-calendar/nv-calendar.docs.js.map +1 -1
- package/dist/collection/components/nv-calendar/nv-calendar.js +13 -22
- package/dist/collection/components/nv-calendar/nv-calendar.js.map +1 -1
- package/dist/collection/components/nv-calendar/partials/week-numbers.js +1 -2
- package/dist/collection/components/nv-calendar/partials/week-numbers.js.map +1 -1
- package/dist/collection/components/nv-calendar/test/nv-calendar.utils.test.js +11 -11
- package/dist/collection/components/nv-calendar/test/nv-calendar.utils.test.js.map +1 -1
- package/dist/collection/components/nv-calendar/test/partials/calendar-grid.logic.test.js +2 -2
- package/dist/collection/components/nv-calendar/test/partials/calendar-grid.logic.test.js.map +1 -1
- package/dist/collection/components/nv-calendar/test/partials/calendar-shortcuts.logic.test.js +6 -5
- package/dist/collection/components/nv-calendar/test/partials/calendar-shortcuts.logic.test.js.map +1 -1
- package/dist/collection/components/nv-calendar/test/partials/day-cell.logic.test.js +10 -1
- package/dist/collection/components/nv-calendar/test/partials/day-cell.logic.test.js.map +1 -1
- package/dist/collection/components/nv-col/nv-col.docs.js +8 -0
- package/dist/collection/components/nv-col/nv-col.docs.js.map +1 -1
- package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js +290 -286
- package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js.map +1 -1
- package/dist/collection/components/nv-datagrid/nv-datagrid.js +67 -72
- package/dist/collection/components/nv-datagrid/nv-datagrid.js.map +1 -1
- package/dist/collection/components/nv-dialog/nv-dialog.docs.js +64 -13
- package/dist/collection/components/nv-dialog/nv-dialog.docs.js.map +1 -1
- package/dist/collection/components/nv-drawer/nv-drawer.css +114 -0
- package/dist/collection/components/nv-drawer/nv-drawer.docs.js +145 -0
- package/dist/collection/components/nv-drawer/nv-drawer.docs.js.map +1 -0
- package/dist/collection/components/nv-drawer/nv-drawer.js +719 -0
- package/dist/collection/components/nv-drawer/nv-drawer.js.map +1 -0
- package/dist/collection/components/nv-drawerfooter/nv-drawerfooter.css +8 -0
- package/dist/collection/components/nv-drawerfooter/nv-drawerfooter.docs.js +6 -0
- package/dist/collection/components/nv-drawerfooter/nv-drawerfooter.docs.js.map +1 -0
- package/dist/collection/components/nv-drawerfooter/nv-drawerfooter.js +325 -0
- package/dist/collection/components/nv-drawerfooter/nv-drawerfooter.js.map +1 -0
- package/dist/collection/components/nv-drawerheader/nv-drawerheader.css +32 -0
- package/dist/collection/components/nv-drawerheader/nv-drawerheader.docs.js +6 -0
- package/dist/collection/components/nv-drawerheader/nv-drawerheader.docs.js.map +1 -0
- package/dist/collection/components/nv-drawerheader/nv-drawerheader.js +92 -0
- package/dist/collection/components/nv-drawerheader/nv-drawerheader.js.map +1 -0
- package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.docs.js +186 -136
- package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.js +6 -6
- package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.js.map +1 -1
- package/dist/collection/components/nv-fielddate/nv-fielddate.docs.js +300 -109
- package/dist/collection/components/nv-fielddate/nv-fielddate.docs.js.map +1 -1
- package/dist/collection/components/nv-fielddate/nv-fielddate.js +11 -14
- package/dist/collection/components/nv-fielddate/nv-fielddate.js.map +1 -1
- package/dist/collection/components/nv-fielddate/styles/nv-fielddate.css +1 -1
- package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.docs.js +406 -1
- package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.docs.js.map +1 -1
- package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js +11 -12
- package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js.map +1 -1
- package/dist/collection/components/nv-fielddaterange/styles/nv-fielddaterange.css +1 -1
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.docs.js +210 -118
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.docs.js.map +1 -1
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js +22 -31
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js.map +1 -1
- package/dist/collection/components/nv-fielddropdown/styles/nv-fielddropdown.css +1 -1
- package/dist/collection/components/nv-fielddropdownitem/nv-fielddropdownitem.js +2 -3
- package/dist/collection/components/nv-fielddropdownitem/nv-fielddropdownitem.js.map +1 -1
- package/dist/collection/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.js +1 -1
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.docs.js +462 -322
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js +17 -25
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js.map +1 -1
- package/dist/collection/components/nv-fieldmultiselect/styles/nv-fieldmultiselect.css +1 -1
- package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.css +1 -1
- package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.docs.js +70 -7
- package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js +5 -5
- package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js.map +1 -1
- package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.css +1 -1
- package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.docs.js +79 -6
- package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.js +5 -5
- package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.js.map +1 -1
- package/dist/collection/components/nv-fieldradio/nv-fieldradio.docs.js +58 -6
- package/dist/collection/components/nv-fieldradio/nv-fieldradio.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldradio/nv-fieldradio.js +4 -4
- package/dist/collection/components/nv-fieldradio/nv-fieldradio.js.map +1 -1
- package/dist/collection/components/nv-fieldselect/nv-fieldselect.docs.js +138 -30
- package/dist/collection/components/nv-fieldselect/nv-fieldselect.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldselect/nv-fieldselect.js +7 -7
- package/dist/collection/components/nv-fieldselect/nv-fieldselect.js.map +1 -1
- package/dist/collection/components/nv-fieldselect/styles/nv-fieldselect.css +1 -1
- package/dist/collection/components/nv-fieldslider/nv-fieldslider.docs.js +138 -30
- package/dist/collection/components/nv-fieldslider/nv-fieldslider.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldslider/nv-fieldslider.js +3 -3
- package/dist/collection/components/nv-fieldslider/partials/field-input.js +1 -1
- package/dist/collection/components/nv-fieldslider/partials/field-input.js.map +1 -1
- package/dist/collection/components/nv-fieldslider/styles/nv-fieldslider.css +1 -1
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.css +1 -1
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.docs.js +92 -16
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.js +5 -5
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.js.map +1 -1
- package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.docs.js +64 -3
- package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.js +6 -7
- package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.js.map +1 -1
- package/dist/collection/components/nv-fieldtime/nv-fieldtime.docs.js +41 -22
- package/dist/collection/components/nv-fieldtime/nv-fieldtime.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldtime/nv-fieldtime.js +25 -33
- package/dist/collection/components/nv-fieldtime/nv-fieldtime.js.map +1 -1
- package/dist/collection/components/nv-fieldtime/styles/nv-fieldtime.css +1 -1
- package/dist/collection/components/nv-fieldtime/utils/format-utils.js +1 -1
- package/dist/collection/components/nv-fieldtime/utils/format-utils.js.map +1 -1
- package/dist/collection/components/nv-icon/nv-icon.docs.js +46 -0
- package/dist/collection/components/nv-icon/nv-icon.docs.js.map +1 -1
- package/dist/collection/components/nv-icon/nv-icon.js +1 -1
- package/dist/collection/components/nv-icon/nv-icons.js +2 -0
- package/dist/collection/components/nv-icon/nv-icons.js.map +1 -1
- package/dist/collection/components/nv-iconbutton/nv-iconbutton.css +4 -4
- package/dist/collection/components/nv-iconbutton/nv-iconbutton.docs.js +18 -1
- package/dist/collection/components/nv-iconbutton/nv-iconbutton.docs.js.map +1 -1
- package/dist/collection/components/nv-iconbutton/nv-iconbutton.js +3 -4
- package/dist/collection/components/nv-iconbutton/nv-iconbutton.js.map +1 -1
- package/dist/collection/components/nv-loader/nv-loader.docs.js +8 -4
- package/dist/collection/components/nv-loader/nv-loader.docs.js.map +1 -1
- package/dist/collection/components/nv-loader/nv-loader.js +1 -1
- package/dist/collection/components/nv-menu/nv-menu.docs.js +17 -5
- package/dist/collection/components/nv-menu/nv-menu.docs.js.map +1 -1
- package/dist/collection/components/nv-menu/nv-menu.js +3 -4
- package/dist/collection/components/nv-menu/nv-menu.js.map +1 -1
- package/dist/collection/components/nv-menuitem/nv-menuitem.js +2 -2
- package/dist/collection/components/nv-notification/nv-notification.docs.js +34 -3
- package/dist/collection/components/nv-notification/nv-notification.docs.js.map +1 -1
- package/dist/collection/components/nv-notification/nv-notification.js +6 -9
- package/dist/collection/components/nv-notification/nv-notification.js.map +1 -1
- package/dist/collection/components/nv-notification-bullet/nv-notification-bullet.docs.js +60 -0
- package/dist/collection/components/nv-notification-bullet/nv-notification-bullet.docs.js.map +1 -1
- package/dist/collection/components/nv-notification-bullet/nv-notification-bullet.js +1 -2
- package/dist/collection/components/nv-notification-bullet/nv-notification-bullet.js.map +1 -1
- package/dist/collection/components/nv-notificationcontainer/nv-notificationcontainer.js +1 -1
- package/dist/collection/components/nv-popover/nv-popover.docs.js +35 -10
- package/dist/collection/components/nv-popover/nv-popover.docs.js.map +1 -1
- package/dist/collection/components/nv-popover/nv-popover.js +2 -3
- package/dist/collection/components/nv-popover/nv-popover.js.map +1 -1
- package/dist/collection/components/nv-row/nv-row.docs.js +7 -0
- package/dist/collection/components/nv-row/nv-row.docs.js.map +1 -1
- package/dist/collection/components/nv-row/nv-row.js +1 -1
- package/dist/collection/components/nv-sidebar/nv-sidebar.docs.js +39 -0
- package/dist/collection/components/nv-sidebar/nv-sidebar.docs.js.map +1 -1
- package/dist/collection/components/nv-sidebar/nv-sidebar.js +3 -3
- package/dist/collection/components/nv-sidebar/nv-sidebar.js.map +1 -1
- package/dist/collection/components/nv-sidebarcontent/nv-sidebarcontent.js +1 -1
- package/dist/collection/components/nv-sidebardivider/nv-sidebardivider.js +1 -1
- package/dist/collection/components/nv-sidebarfooter/nv-sidebarfooter.js +1 -1
- package/dist/collection/components/nv-sidebargroup/nv-sidebargroup.js +1 -1
- package/dist/collection/components/nv-sidebarheader/nv-sidebarheader.js +1 -1
- package/dist/collection/components/nv-sidebarlogo/nv-sidebarlogo.js +1 -1
- package/dist/collection/components/nv-sidebarnavitem/nv-sidebarnavitem.js +5 -6
- package/dist/collection/components/nv-sidebarnavitem/nv-sidebarnavitem.js.map +1 -1
- package/dist/collection/components/nv-sidebarnavsubitem/nv-sidebarnavsubitem.js +1 -1
- package/dist/collection/components/nv-split/nv-split.docs.js +38 -2
- package/dist/collection/components/nv-split/nv-split.docs.js.map +1 -1
- package/dist/collection/components/nv-split/nv-split.js +44 -42
- package/dist/collection/components/nv-split/nv-split.js.map +1 -1
- package/dist/collection/components/nv-split/styles/nv-split.css +2 -0
- package/dist/collection/components/nv-stack/nv-stack.docs.js +13 -0
- package/dist/collection/components/nv-stack/nv-stack.docs.js.map +1 -1
- package/dist/collection/components/nv-stack/nv-stack.js +1 -1
- package/dist/collection/components/nv-table/nv-table.docs.js +12 -0
- package/dist/collection/components/nv-table/nv-table.docs.js.map +1 -1
- package/dist/collection/components/nv-table/nv-table.js +1 -1
- package/dist/collection/components/nv-table/nv-table.utils.js +5 -7
- package/dist/collection/components/nv-table/nv-table.utils.js.map +1 -1
- package/dist/collection/components/nv-table/test/nv-table.utils.test.js +4 -5
- package/dist/collection/components/nv-table/test/nv-table.utils.test.js.map +1 -1
- package/dist/collection/components/nv-tableheader/nv-tableheader.docs.js +29 -1
- package/dist/collection/components/nv-tableheader/nv-tableheader.docs.js.map +1 -1
- package/dist/collection/components/nv-tableheader/nv-tableheader.js +2 -2
- package/dist/collection/components/nv-tableheader/nv-tableheader.js.map +1 -1
- package/dist/collection/components/nv-toggle/nv-toggle.docs.js +31 -0
- package/dist/collection/components/nv-toggle/nv-toggle.docs.js.map +1 -1
- package/dist/collection/components/nv-toggle/nv-toggle.js +2 -2
- package/dist/collection/components/nv-togglebutton/nv-togglebutton.js +1 -1
- package/dist/collection/components/nv-togglebutton/styles/nv-togglebutton.css +16 -12
- package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.docs.js +20 -7
- package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.docs.js.map +1 -1
- package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.js +2 -3
- package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.js.map +1 -1
- package/dist/collection/components/nv-togglebuttongroup/styles/nv-togglebuttongroup.css +4 -12
- package/dist/collection/components/nv-tooltip/nv-tooltip.docs.js +33 -6
- package/dist/collection/components/nv-tooltip/nv-tooltip.docs.js.map +1 -1
- package/dist/collection/components/nv-tooltip/nv-tooltip.js +1 -1
- package/dist/collection/templates/navigation.docs.js +1 -1
- package/dist/collection/templates/navigation.docs.js.map +1 -1
- package/dist/collection/utils/i18n.utils.js +1 -2
- package/dist/collection/utils/i18n.utils.js.map +1 -1
- package/dist/collection/utils/search-engine/strategies/fuzzy.js +2 -2
- package/dist/collection/utils/search-engine/strategies/fuzzy.js.map +1 -1
- package/dist/collection/utils/search-engine/strategies/smart.js +2 -2
- package/dist/collection/utils/search-engine/strategies/smart.js.map +1 -1
- package/dist/collection/utils/search-engine/strategies/strict.js +2 -2
- package/dist/collection/utils/search-engine/strategies/strict.js.map +1 -1
- package/dist/collection/utils/search-engine/worker/worker-client.js +7 -10
- package/dist/collection/utils/search-engine/worker/worker-client.js.map +1 -1
- package/dist/components/index.js +4 -2
- package/dist/components/index.js.map +1 -1
- package/dist/components/nv-accordion-item.js +1 -1
- package/dist/components/nv-accordion.js +6 -11
- package/dist/components/nv-accordion.js.map +1 -1
- package/dist/components/nv-alert.js +2 -3
- package/dist/components/nv-alert.js.map +1 -1
- package/dist/components/nv-avatar.js +1 -1
- package/dist/components/nv-badge.js +1 -1
- package/dist/components/nv-breadcrumb.js +2 -2
- package/dist/components/nv-button.js +1 -1
- package/dist/components/nv-calendar.js +1 -1
- package/dist/components/nv-datagrid.js +69 -74
- package/dist/components/nv-datagrid.js.map +1 -1
- package/dist/components/nv-dialog.js +7 -539
- package/dist/components/nv-dialog.js.map +1 -1
- package/dist/components/nv-dialogfooter.js +1 -1
- package/dist/components/nv-drawer.d.ts +11 -0
- package/dist/components/nv-drawer.js +507 -0
- package/dist/components/nv-drawer.js.map +1 -0
- package/dist/components/nv-drawerfooter.d.ts +11 -0
- package/dist/components/nv-drawerfooter.js +9 -0
- package/dist/components/nv-drawerfooter.js.map +1 -0
- package/dist/components/nv-drawerheader.d.ts +11 -0
- package/dist/components/nv-drawerheader.js +9 -0
- package/dist/components/nv-drawerheader.js.map +1 -0
- package/dist/components/nv-fieldcheckbox.js +1 -1
- package/dist/components/nv-fielddate.js +18 -21
- package/dist/components/nv-fielddate.js.map +1 -1
- package/dist/components/nv-fielddaterange.js +18 -19
- package/dist/components/nv-fielddaterange.js.map +1 -1
- package/dist/components/nv-fielddropdown.js +29 -38
- package/dist/components/nv-fielddropdown.js.map +1 -1
- package/dist/components/nv-fielddropdownitem.js +1 -1
- package/dist/components/nv-fielddropdownitemcheck.js +1 -1
- package/dist/components/nv-fieldmultiselect.js +26 -34
- package/dist/components/nv-fieldmultiselect.js.map +1 -1
- package/dist/components/nv-fieldnumber.js +1 -1
- package/dist/components/nv-fieldpassword.js +9 -9
- package/dist/components/nv-fieldpassword.js.map +1 -1
- package/dist/components/nv-fieldradio.js +4 -4
- package/dist/components/nv-fieldradio.js.map +1 -1
- package/dist/components/nv-fieldselect.js +11 -11
- package/dist/components/nv-fieldselect.js.map +1 -1
- package/dist/components/nv-fieldslider.js +9 -9
- package/dist/components/nv-fieldslider.js.map +1 -1
- package/dist/components/nv-fieldtext.js +1 -1
- package/dist/components/nv-fieldtextarea.js +6 -7
- package/dist/components/nv-fieldtextarea.js.map +1 -1
- package/dist/components/nv-fieldtime.js +31 -39
- package/dist/components/nv-fieldtime.js.map +1 -1
- package/dist/components/nv-icon.js +1 -1
- package/dist/components/nv-iconbutton.js +1 -1
- package/dist/components/nv-loader.js +1 -1
- package/dist/components/nv-menu.js +6 -7
- package/dist/components/nv-menu.js.map +1 -1
- package/dist/components/nv-menuitem.js +1 -1
- package/dist/components/nv-notification-bullet.js +1 -1
- package/dist/components/nv-notification.js +7 -10
- package/dist/components/nv-notification.js.map +1 -1
- package/dist/components/nv-notificationcontainer.js +1 -1
- package/dist/components/nv-popover.js +1 -1
- package/dist/components/nv-row.js +1 -1
- package/dist/components/nv-sidebar.js +4 -4
- package/dist/components/nv-sidebar.js.map +1 -1
- package/dist/components/nv-sidebarcontent.js +1 -1
- package/dist/components/nv-sidebardivider.js +1 -1
- package/dist/components/nv-sidebarfooter.js +1 -1
- package/dist/components/nv-sidebargroup.js +1 -1
- package/dist/components/nv-sidebarheader.js +1 -1
- package/dist/components/nv-sidebarlogo.js +1 -1
- package/dist/components/nv-sidebarnavitem.js +6 -7
- package/dist/components/nv-sidebarnavitem.js.map +1 -1
- package/dist/components/nv-sidebarnavsubitem.js +1 -1
- package/dist/components/nv-split.js +43 -41
- package/dist/components/nv-split.js.map +1 -1
- package/dist/components/nv-stack.js +1 -1
- package/dist/components/nv-table.js +6 -8
- package/dist/components/nv-table.js.map +1 -1
- package/dist/components/nv-tableheader.js +5 -5
- package/dist/components/nv-tableheader.js.map +1 -1
- package/dist/components/nv-toggle.js +2 -2
- package/dist/components/nv-togglebutton.js +2 -2
- package/dist/components/nv-togglebutton.js.map +1 -1
- package/dist/components/nv-togglebuttongroup.js +3 -4
- package/dist/components/nv-togglebuttongroup.js.map +1 -1
- package/dist/components/nv-tooltip.js +1 -1
- package/dist/components/{p-D1i2OAGe.js → p-B45HbBWe.js} +6 -8
- package/dist/components/p-B45HbBWe.js.map +1 -0
- package/dist/components/p-B6GgGra-.js +29 -0
- package/dist/components/p-B6GgGra-.js.map +1 -0
- package/dist/components/{p-Dk8ekxr_.js → p-B7VlEQVW.js} +16 -26
- package/dist/components/p-B7VlEQVW.js.map +1 -0
- package/dist/components/{p-B-3kAnun.js → p-B9i3m6rk.js} +6 -6
- package/dist/components/p-B9i3m6rk.js.map +1 -0
- package/dist/components/{p-BQo7AMPX.js → p-BILd3Ta-.js} +9 -9
- package/dist/components/p-BILd3Ta-.js.map +1 -0
- package/dist/components/{p-Dc_0pr83.js → p-BISctfud.js} +8 -8
- package/dist/components/p-BISctfud.js.map +1 -0
- package/dist/components/{p-CIyQBhTX.js → p-BVOv1zgq.js} +4 -4
- package/dist/components/{p-CIyQBhTX.js.map → p-BVOv1zgq.js.map} +1 -1
- package/dist/components/{p-B6EYOx_n.js → p-Bg_l3jn1.js} +3 -3
- package/dist/components/{p-B6EYOx_n.js.map → p-Bg_l3jn1.js.map} +1 -1
- package/dist/components/{p-CBvZjfqs.js → p-C2QAWGhf.js} +4 -4
- package/dist/components/{p-CBvZjfqs.js.map → p-C2QAWGhf.js.map} +1 -1
- package/dist/components/{p-DzUXTCUy.js → p-COnt5ux_.js} +3 -3
- package/dist/components/{p-DzUXTCUy.js.map → p-COnt5ux_.js.map} +1 -1
- package/dist/components/{p-KUIQrV3D.js → p-Cc7XnqPp.js} +5 -5
- package/dist/components/{p-KUIQrV3D.js.map → p-Cc7XnqPp.js.map} +1 -1
- package/dist/components/{p-CmwaW0q4.js → p-D02w_Ru6.js} +3 -28
- package/dist/components/p-D02w_Ru6.js.map +1 -0
- package/dist/components/p-D3eWMME9.js +538 -0
- package/dist/components/p-D3eWMME9.js.map +1 -0
- package/dist/components/{p--iYGZN4R.js → p-D6APFL6N.js} +11 -11
- package/dist/components/p-D6APFL6N.js.map +1 -0
- package/dist/components/{p-DstpaOhw.js → p-DZJHk4fr.js} +3 -3
- package/dist/components/{p-DstpaOhw.js.map → p-DZJHk4fr.js.map} +1 -1
- package/dist/components/{p-Da9WgE5U.js → p-DiUP3TzF.js} +5 -5
- package/dist/components/{p-Da9WgE5U.js.map → p-DiUP3TzF.js.map} +1 -1
- package/dist/components/{p-DWG6az-u.js → p-DpDooigg.js} +5 -6
- package/dist/components/p-DpDooigg.js.map +1 -0
- package/dist/components/{p-BKfPh2in.js → p-Dr-67WvG.js} +4 -4
- package/dist/components/{p-BKfPh2in.js.map → p-Dr-67WvG.js.map} +1 -1
- package/dist/components/{p-DaiLIZ8f.js → p-DvapDVBj.js} +8 -9
- package/dist/components/p-DvapDVBj.js.map +1 -0
- package/dist/components/{p-DOZbXX2L.js → p-IlwlcG9l.js} +16 -20
- package/dist/components/p-IlwlcG9l.js.map +1 -0
- package/dist/components/p-W6vOfMC9.js +63 -0
- package/dist/components/p-W6vOfMC9.js.map +1 -0
- package/dist/components/{p-CBOuqJTb.js → p-nfYynlVq.js} +4 -4
- package/dist/components/{p-CBOuqJTb.js.map → p-nfYynlVq.js.map} +1 -1
- package/dist/components/{p-CBF8V1L7.js → p-tyaJ-nGV.js} +3 -4
- package/dist/components/p-tyaJ-nGV.js.map +1 -0
- package/dist/components/p-u-maNLLs.js +145 -0
- package/dist/components/p-u-maNLLs.js.map +1 -0
- package/dist/esm/app-globals-DQuL1Twl.js.map +1 -1
- package/dist/esm/events.utils-B6GgGra-.js +29 -0
- package/dist/esm/events.utils-B6GgGra-.js.map +1 -0
- package/dist/esm/{grow.animation-CvHGHBL4.js → grow.animation-D7ep_aVl.js} +3 -28
- package/dist/esm/grow.animation-D7ep_aVl.js.map +1 -0
- package/dist/esm/{i18n.utils-DOZbXX2L.js → i18n.utils-IlwlcG9l.js} +16 -20
- package/dist/esm/{i18n.utils-DOZbXX2L.js.map → i18n.utils-IlwlcG9l.js.map} +1 -1
- package/dist/esm/index-CasQushP.js +12 -4
- package/dist/esm/index.esm-D3eWMME9.js +538 -0
- package/dist/esm/index.esm-D3eWMME9.js.map +1 -0
- package/dist/esm/index.js +4 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/native.js +1 -1
- package/dist/esm/nv-accordion.entry.js +2 -7
- package/dist/esm/nv-accordion.entry.js.map +1 -1
- package/dist/esm/nv-alert.entry.js +1 -2
- package/dist/esm/nv-alert.entry.js.map +1 -1
- package/dist/esm/nv-badge_2.entry.js +1 -1
- package/dist/esm/nv-button.entry.js +3 -5
- package/dist/esm/nv-button.entry.js.map +1 -1
- package/dist/esm/nv-calendar.entry.js +14 -24
- package/dist/esm/nv-calendar.entry.js.map +1 -1
- package/dist/esm/nv-datagrid.entry.js +67 -72
- package/dist/esm/nv-datagrid.entry.js.map +1 -1
- package/dist/esm/nv-dialog.entry.js +3 -535
- package/dist/esm/nv-dialog.entry.js.map +1 -1
- package/dist/esm/nv-drawer.entry.js +441 -0
- package/dist/esm/nv-drawer.entry.js.map +1 -0
- package/dist/esm/nv-drawerfooter.nv-drawerheader.entry.js.map +1 -0
- package/dist/esm/nv-drawerfooter_2.entry.js +141 -0
- package/dist/esm/nv-fieldcheckbox.entry.js +6 -6
- package/dist/esm/nv-fieldcheckbox.entry.js.map +1 -1
- package/dist/esm/nv-fielddate.entry.js +12 -15
- package/dist/esm/nv-fielddate.entry.js.map +1 -1
- package/dist/esm/nv-fielddaterange.entry.js +12 -13
- package/dist/esm/nv-fielddaterange.entry.js.map +1 -1
- package/dist/esm/nv-fielddropdown.entry.js +24 -33
- package/dist/esm/nv-fielddropdown.entry.js.map +1 -1
- package/dist/esm/nv-fielddropdownitem.entry.js +2 -3
- package/dist/esm/nv-fielddropdownitem.entry.js.map +1 -1
- package/dist/esm/nv-fieldmultiselect.entry.js +19 -27
- package/dist/esm/nv-fieldmultiselect.entry.js.map +1 -1
- package/dist/esm/nv-fieldnumber.entry.js +6 -6
- package/dist/esm/nv-fieldnumber.entry.js.map +1 -1
- package/dist/esm/nv-fieldpassword.entry.js +6 -6
- package/dist/esm/nv-fieldpassword.entry.js.map +1 -1
- package/dist/esm/nv-fieldradio.entry.js +4 -4
- package/dist/esm/nv-fieldradio.entry.js.map +1 -1
- package/dist/esm/nv-fieldselect.entry.js +8 -8
- package/dist/esm/nv-fieldselect.entry.js.map +1 -1
- package/dist/esm/nv-fieldslider.entry.js +5 -5
- package/dist/esm/nv-fieldslider.entry.js.map +1 -1
- package/dist/esm/nv-fieldtext.entry.js +6 -6
- package/dist/esm/nv-fieldtext.entry.js.map +1 -1
- package/dist/esm/nv-fieldtextarea.entry.js +6 -7
- package/dist/esm/nv-fieldtextarea.entry.js.map +1 -1
- package/dist/esm/nv-fieldtime.entry.js +27 -35
- package/dist/esm/nv-fieldtime.entry.js.map +1 -1
- package/dist/esm/nv-icon.entry.js +2 -2
- package/dist/esm/nv-icon.entry.js.map +1 -1
- package/dist/esm/nv-iconbutton.nv-loader.entry.js.map +1 -1
- package/dist/esm/nv-iconbutton_2.entry.js +5 -6
- package/dist/esm/nv-menu.entry.js +3 -4
- package/dist/esm/nv-menu.entry.js.map +1 -1
- package/dist/esm/nv-menuitem.entry.js +1 -1
- package/dist/esm/nv-notification-bullet.entry.js +1 -2
- package/dist/esm/nv-notification-bullet.entry.js.map +1 -1
- package/dist/esm/nv-notification.entry.js +6 -9
- package/dist/esm/nv-notification.entry.js.map +1 -1
- package/dist/esm/nv-notificationcontainer.entry.js +1 -1
- package/dist/esm/nv-popover.entry.js +4 -4
- package/dist/esm/nv-popover.entry.js.map +1 -1
- package/dist/esm/nv-row.entry.js +1 -1
- package/dist/esm/nv-sidebar.entry.js +3 -3
- package/dist/esm/nv-sidebar.entry.js.map +1 -1
- package/dist/esm/nv-sidebarcontent.entry.js +1 -1
- package/dist/esm/nv-sidebardivider.entry.js +1 -1
- package/dist/esm/nv-sidebarfooter.entry.js +1 -1
- package/dist/esm/nv-sidebargroup.entry.js +1 -1
- package/dist/esm/nv-sidebarheader.entry.js +1 -1
- package/dist/esm/nv-sidebarlogo.entry.js +1 -1
- package/dist/esm/nv-sidebarnavitem.entry.js +4 -5
- package/dist/esm/nv-sidebarnavitem.entry.js.map +1 -1
- package/dist/esm/nv-sidebarnavsubitem.entry.js +1 -1
- package/dist/esm/nv-split.entry.js +43 -41
- package/dist/esm/nv-split.entry.js.map +1 -1
- package/dist/esm/nv-stack.entry.js +1 -1
- package/dist/esm/nv-table.entry.js +6 -8
- package/dist/esm/nv-table.entry.js.map +1 -1
- package/dist/esm/nv-tableheader.entry.js +2 -2
- package/dist/esm/nv-tableheader.entry.js.map +1 -1
- package/dist/esm/nv-toggle.entry.js +2 -2
- package/dist/esm/nv-togglebutton.entry.js +2 -2
- package/dist/esm/nv-togglebutton.entry.js.map +1 -1
- package/dist/esm/nv-togglebuttongroup.entry.js +3 -4
- package/dist/esm/nv-togglebuttongroup.entry.js.map +1 -1
- package/dist/esm/nv-tooltip.entry.js +1 -1
- package/dist/lib/generators/angular-output.js +9 -7
- package/dist/lib/generators/angular-output.js.map +1 -1
- package/dist/lib/generators/docs-blazor.js +32 -14
- package/dist/lib/generators/docs-blazor.js.map +1 -1
- package/dist/lib/generators/vue-output.js +10 -11
- package/dist/lib/generators/vue-output.js.map +1 -1
- package/dist/lib/utils/componentBinding.js +9 -10
- package/dist/lib/utils/componentBinding.js.map +1 -1
- package/dist/lib/utils/parseToCSharpTypes.js +3 -16
- package/dist/lib/utils/parseToCSharpTypes.js.map +1 -1
- package/dist/lib/utils/spread.js +3 -4
- package/dist/lib/utils/spread.js.map +1 -1
- package/dist/native/index.esm.js +1 -1
- package/dist/native/index.esm.js.map +1 -1
- package/dist/native/native.css +1 -1
- package/dist/native/native.esm.js +1 -1
- package/dist/native/nv-accordion.entry.esm.js.map +1 -1
- package/dist/native/nv-alert.entry.esm.js.map +1 -1
- package/dist/native/nv-button.entry.esm.js.map +1 -1
- package/dist/native/nv-calendar.entry.esm.js.map +1 -1
- package/dist/native/nv-datagrid.entry.esm.js.map +1 -1
- package/dist/native/nv-dialog.entry.esm.js.map +1 -1
- package/dist/native/nv-drawer.entry.esm.js.map +1 -0
- package/dist/native/nv-drawerfooter.nv-drawerheader.entry.esm.js.map +1 -0
- package/dist/native/nv-fieldcheckbox.entry.esm.js.map +1 -1
- package/dist/native/nv-fielddate.entry.esm.js.map +1 -1
- package/dist/native/nv-fielddaterange.entry.esm.js.map +1 -1
- package/dist/native/nv-fielddropdown.entry.esm.js.map +1 -1
- package/dist/native/nv-fielddropdownitem.entry.esm.js.map +1 -1
- package/dist/native/nv-fieldmultiselect.entry.esm.js.map +1 -1
- package/dist/native/nv-fieldnumber.entry.esm.js.map +1 -1
- package/dist/native/nv-fieldpassword.entry.esm.js.map +1 -1
- package/dist/native/nv-fieldradio.entry.esm.js.map +1 -1
- package/dist/native/nv-fieldselect.entry.esm.js.map +1 -1
- package/dist/native/nv-fieldslider.entry.esm.js.map +1 -1
- package/dist/native/nv-fieldtext.entry.esm.js.map +1 -1
- package/dist/native/nv-fieldtextarea.entry.esm.js.map +1 -1
- package/dist/native/nv-fieldtime.entry.esm.js.map +1 -1
- package/dist/native/nv-icon.entry.esm.js.map +1 -1
- package/dist/native/nv-iconbutton.nv-loader.entry.esm.js.map +1 -1
- package/dist/native/nv-menu.entry.esm.js.map +1 -1
- package/dist/native/nv-notification-bullet.entry.esm.js.map +1 -1
- package/dist/native/nv-notification.entry.esm.js.map +1 -1
- package/dist/native/nv-popover.entry.esm.js.map +1 -1
- package/dist/native/nv-sidebar.entry.esm.js.map +1 -1
- package/dist/native/nv-sidebarnavitem.entry.esm.js.map +1 -1
- package/dist/native/nv-split.entry.esm.js.map +1 -1
- package/dist/native/nv-table.entry.esm.js.map +1 -1
- package/dist/native/nv-tableheader.entry.esm.js.map +1 -1
- package/dist/native/nv-togglebutton.entry.esm.js.map +1 -1
- package/dist/native/nv-togglebuttongroup.entry.esm.js.map +1 -1
- package/dist/native/{p-b21e38a3.entry.js → p-04a2fe7f.entry.js} +2 -2
- package/dist/native/p-08204da4.entry.js +2 -0
- package/dist/native/{p-bd6ae5f3.entry.js.map → p-08204da4.entry.js.map} +1 -1
- package/dist/native/{p-e0adb05d.entry.js → p-0e07b91b.entry.js} +2 -2
- package/dist/native/p-0e07b91b.entry.js.map +1 -0
- package/dist/native/p-136dfb3e.entry.js +2 -0
- package/dist/native/p-136dfb3e.entry.js.map +1 -0
- package/dist/native/p-1f2dd37f.entry.js +2 -0
- package/dist/native/p-1f2dd37f.entry.js.map +1 -0
- package/dist/native/p-255a0482.entry.js +2 -0
- package/dist/native/p-255a0482.entry.js.map +1 -0
- package/dist/native/{p-f73e9752.entry.js → p-3305a7e6.entry.js} +2 -2
- package/dist/native/p-3305a7e6.entry.js.map +1 -0
- package/dist/native/p-36b0a6f0.entry.js +2 -0
- package/dist/native/p-36b0a6f0.entry.js.map +1 -0
- package/dist/native/p-434bc910.entry.js +2 -0
- package/dist/native/p-434bc910.entry.js.map +1 -0
- package/dist/native/{p-ea98ba7a.entry.js → p-436029a5.entry.js} +2 -2
- package/dist/native/p-460fdf02.entry.js +2 -0
- package/dist/native/p-460fdf02.entry.js.map +1 -0
- package/dist/native/p-477e02cf.entry.js +2 -0
- package/dist/native/p-477e02cf.entry.js.map +1 -0
- package/dist/native/{p-28afb852.entry.js → p-4efb582b.entry.js} +2 -2
- package/dist/native/p-4efb582b.entry.js.map +1 -0
- package/dist/native/p-4f1dfa32.entry.js +2 -0
- package/dist/native/p-4f1dfa32.entry.js.map +1 -0
- package/dist/native/p-51b7de55.entry.js +13 -0
- package/dist/native/p-51b7de55.entry.js.map +1 -0
- package/dist/native/{p-37c6d559.entry.js → p-5dd120dc.entry.js} +2 -2
- package/dist/native/p-5dd120dc.entry.js.map +1 -0
- package/dist/native/{p-5acf105e.entry.js → p-67181258.entry.js} +2 -2
- package/dist/native/p-6a81884b.entry.js +2 -0
- package/dist/native/p-6a81884b.entry.js.map +1 -0
- package/dist/native/p-6aa483de.entry.js +2 -0
- package/dist/native/{p-b1a917c7.entry.js → p-6fc79712.entry.js} +2 -2
- package/dist/native/{p-ee04ea09.entry.js → p-729589cb.entry.js} +2 -2
- package/dist/native/p-729589cb.entry.js.map +1 -0
- package/dist/native/p-78bf7650.entry.js +2 -0
- package/dist/native/p-7e6e9ea2.entry.js +2 -0
- package/dist/native/p-8f1cd9e2.entry.js +2 -0
- package/dist/native/p-8f1cd9e2.entry.js.map +1 -0
- package/dist/native/{p-4cf47e1a.entry.js → p-910cd685.entry.js} +2 -2
- package/dist/native/p-91eaf02e.entry.js +2 -0
- package/dist/native/p-91eaf02e.entry.js.map +1 -0
- package/dist/native/p-93e35975.entry.js +2 -0
- package/dist/native/p-93e35975.entry.js.map +1 -0
- package/dist/native/{p-9d8257dc.entry.js → p-96c45604.entry.js} +2 -2
- package/dist/native/{p-6f456ae4.entry.js → p-9b6ad782.entry.js} +2 -2
- package/dist/native/{p-6f456ae4.entry.js.map → p-9b6ad782.entry.js.map} +1 -1
- package/dist/native/{p-fd872d54.entry.js → p-9f32c3ea.entry.js} +2 -2
- package/dist/native/p-B6GgGra-.js +2 -0
- package/dist/native/p-B6GgGra-.js.map +1 -0
- package/dist/native/p-Blc6XEY7.js +2 -0
- package/dist/native/p-Blc6XEY7.js.map +1 -0
- package/dist/native/p-D3eWMME9.js +6 -0
- package/dist/native/p-D3eWMME9.js.map +1 -0
- package/dist/native/p-DQuL1Twl.js.map +1 -1
- package/dist/native/p-IlwlcG9l.js +2 -0
- package/dist/native/{p-DOZbXX2L.js.map → p-IlwlcG9l.js.map} +1 -1
- package/dist/native/{p-b0935c49.entry.js → p-a6fea322.entry.js} +2 -2
- package/dist/native/p-ae279ae9.entry.js +2 -0
- package/dist/native/p-ae279ae9.entry.js.map +1 -0
- package/dist/native/p-ba1286aa.entry.js +2 -0
- package/dist/native/p-ba1286aa.entry.js.map +1 -0
- package/dist/native/p-bb52a5a9.entry.js +2 -0
- package/dist/native/p-bb52a5a9.entry.js.map +1 -0
- package/dist/native/p-bc90247e.entry.js +2 -0
- package/dist/native/p-bc90247e.entry.js.map +1 -0
- package/dist/native/{p-0493fb6d.entry.js → p-c2a73a5a.entry.js} +2 -2
- package/dist/native/p-c4c11549.entry.js +2 -0
- package/dist/native/{p-3c54e422.entry.js → p-c5ecdc49.entry.js} +2 -2
- package/dist/native/p-c5ecdc49.entry.js.map +1 -0
- package/dist/native/{p-527e9b56.entry.js → p-cb1b9edb.entry.js} +2 -2
- package/dist/native/p-cb1b9edb.entry.js.map +1 -0
- package/dist/native/p-cdaf54b0.entry.js +2 -0
- package/dist/native/p-cdaf54b0.entry.js.map +1 -0
- package/dist/native/{p-e7dc36d9.entry.js → p-ceb8fe8a.entry.js} +2 -2
- package/dist/native/p-daf7541b.entry.js +2 -0
- package/dist/native/p-daf7541b.entry.js.map +1 -0
- package/dist/native/{p-da893df2.entry.js → p-ded4be77.entry.js} +2 -2
- package/dist/native/p-ded4be77.entry.js.map +1 -0
- package/dist/native/p-e1fc5f8c.entry.js +2 -0
- package/dist/native/p-e1fc5f8c.entry.js.map +1 -0
- package/dist/native/{p-d4f95c86.entry.js → p-e6c69f7d.entry.js} +2 -2
- package/dist/native/p-e6c69f7d.entry.js.map +1 -0
- package/dist/native/p-e83603f1.entry.js +2 -0
- package/dist/native/p-e83603f1.entry.js.map +1 -0
- package/dist/native/p-ec217581.entry.js +2 -0
- package/dist/native/p-ec217581.entry.js.map +1 -0
- package/dist/native/p-ee694832.entry.js +2 -0
- package/dist/native/p-ee694832.entry.js.map +1 -0
- package/dist/native/{p-b1ef2f25.entry.js → p-f7e0146e.entry.js} +2 -2
- package/dist/native/p-f7e0146e.entry.js.map +1 -0
- package/dist/types/components/nv-drawer/nv-drawer.d.ts +161 -0
- package/dist/types/components/nv-drawer/nv-drawer.docs.d.ts +4 -0
- package/dist/types/components/nv-drawerfooter/nv-drawerfooter.d.ts +76 -0
- package/dist/types/components/nv-drawerfooter/nv-drawerfooter.docs.d.ts +4 -0
- package/dist/types/components/nv-drawerheader/nv-drawerheader.d.ts +20 -0
- package/dist/types/components/nv-drawerheader/nv-drawerheader.docs.d.ts +4 -0
- package/dist/types/components/nv-icon/nv-icons.d.ts +1 -1
- package/dist/types/components/nv-split/nv-split.d.ts +4 -4
- package/dist/types/components.d.ts +292 -5
- package/dist/vscode-data.json +153 -1
- package/hydrate/index.js +969 -408
- package/hydrate/index.mjs +969 -408
- package/package.json +13 -1
- package/dist/cjs/grow.animation-BrWzyoUA.js.map +0 -1
- package/dist/components/p--iYGZN4R.js.map +0 -1
- package/dist/components/p-B-3kAnun.js.map +0 -1
- package/dist/components/p-BQo7AMPX.js.map +0 -1
- package/dist/components/p-CBF8V1L7.js.map +0 -1
- package/dist/components/p-CmwaW0q4.js.map +0 -1
- package/dist/components/p-D1i2OAGe.js.map +0 -1
- package/dist/components/p-DOZbXX2L.js.map +0 -1
- package/dist/components/p-DWG6az-u.js.map +0 -1
- package/dist/components/p-DaiLIZ8f.js.map +0 -1
- package/dist/components/p-Dc_0pr83.js.map +0 -1
- package/dist/components/p-Dk8ekxr_.js.map +0 -1
- package/dist/esm/grow.animation-CvHGHBL4.js.map +0 -1
- package/dist/native/p-02df60a5.entry.js +0 -2
- package/dist/native/p-02df60a5.entry.js.map +0 -1
- package/dist/native/p-0b8d6777.entry.js +0 -13
- package/dist/native/p-0b8d6777.entry.js.map +0 -1
- package/dist/native/p-0e7e693f.entry.js +0 -2
- package/dist/native/p-0e7e693f.entry.js.map +0 -1
- package/dist/native/p-0fe60a9d.entry.js +0 -2
- package/dist/native/p-0fe60a9d.entry.js.map +0 -1
- package/dist/native/p-14b0bf14.entry.js +0 -2
- package/dist/native/p-14b0bf14.entry.js.map +0 -1
- package/dist/native/p-28afb852.entry.js.map +0 -1
- package/dist/native/p-2cf77850.entry.js +0 -2
- package/dist/native/p-2cf77850.entry.js.map +0 -1
- package/dist/native/p-31a12d8a.entry.js +0 -2
- package/dist/native/p-31a12d8a.entry.js.map +0 -1
- package/dist/native/p-37c6d559.entry.js.map +0 -1
- package/dist/native/p-3c54e422.entry.js.map +0 -1
- package/dist/native/p-3c9b22ff.entry.js +0 -2
- package/dist/native/p-3c9b22ff.entry.js.map +0 -1
- package/dist/native/p-4a71f223.entry.js +0 -2
- package/dist/native/p-4a71f223.entry.js.map +0 -1
- package/dist/native/p-527e9b56.entry.js.map +0 -1
- package/dist/native/p-5bce524d.entry.js +0 -2
- package/dist/native/p-5bce524d.entry.js.map +0 -1
- package/dist/native/p-63bc0a05.entry.js +0 -2
- package/dist/native/p-63bc0a05.entry.js.map +0 -1
- package/dist/native/p-63bf86de.entry.js +0 -2
- package/dist/native/p-6a3c1413.entry.js +0 -2
- package/dist/native/p-7e274db7.entry.js +0 -7
- package/dist/native/p-7e274db7.entry.js.map +0 -1
- package/dist/native/p-86b2b071.entry.js +0 -2
- package/dist/native/p-86b2b071.entry.js.map +0 -1
- package/dist/native/p-8b278fce.entry.js +0 -2
- package/dist/native/p-8b278fce.entry.js.map +0 -1
- package/dist/native/p-9c543ab2.entry.js +0 -2
- package/dist/native/p-9c543ab2.entry.js.map +0 -1
- package/dist/native/p-DOZbXX2L.js +0 -2
- package/dist/native/p-DS5GOtQ3.js +0 -2
- package/dist/native/p-DS5GOtQ3.js.map +0 -1
- package/dist/native/p-a2aa6872.entry.js +0 -2
- package/dist/native/p-b1ef2f25.entry.js.map +0 -1
- package/dist/native/p-b2ed6d34.entry.js +0 -2
- package/dist/native/p-b2ed6d34.entry.js.map +0 -1
- package/dist/native/p-bd6ae5f3.entry.js +0 -2
- package/dist/native/p-c98b9ce4.entry.js +0 -2
- package/dist/native/p-c98b9ce4.entry.js.map +0 -1
- package/dist/native/p-cc305619.entry.js +0 -2
- package/dist/native/p-cc305619.entry.js.map +0 -1
- package/dist/native/p-d1cfdc3e.entry.js +0 -2
- package/dist/native/p-d1cfdc3e.entry.js.map +0 -1
- package/dist/native/p-d3b1bd81.entry.js +0 -2
- package/dist/native/p-d424b9aa.entry.js +0 -2
- package/dist/native/p-d424b9aa.entry.js.map +0 -1
- package/dist/native/p-d4f95c86.entry.js.map +0 -1
- package/dist/native/p-da893df2.entry.js.map +0 -1
- package/dist/native/p-e0adb05d.entry.js.map +0 -1
- package/dist/native/p-e6a37207.entry.js +0 -2
- package/dist/native/p-e6a37207.entry.js.map +0 -1
- package/dist/native/p-ee04ea09.entry.js.map +0 -1
- package/dist/native/p-f73e9752.entry.js.map +0 -1
- /package/dist/native/{p-b21e38a3.entry.js.map → p-04a2fe7f.entry.js.map} +0 -0
- /package/dist/native/{p-ea98ba7a.entry.js.map → p-436029a5.entry.js.map} +0 -0
- /package/dist/native/{p-5acf105e.entry.js.map → p-67181258.entry.js.map} +0 -0
- /package/dist/native/{p-63bf86de.entry.js.map → p-6aa483de.entry.js.map} +0 -0
- /package/dist/native/{p-b1a917c7.entry.js.map → p-6fc79712.entry.js.map} +0 -0
- /package/dist/native/{p-d3b1bd81.entry.js.map → p-78bf7650.entry.js.map} +0 -0
- /package/dist/native/{p-a2aa6872.entry.js.map → p-7e6e9ea2.entry.js.map} +0 -0
- /package/dist/native/{p-4cf47e1a.entry.js.map → p-910cd685.entry.js.map} +0 -0
- /package/dist/native/{p-9d8257dc.entry.js.map → p-96c45604.entry.js.map} +0 -0
- /package/dist/native/{p-fd872d54.entry.js.map → p-9f32c3ea.entry.js.map} +0 -0
- /package/dist/native/{p-b0935c49.entry.js.map → p-a6fea322.entry.js.map} +0 -0
- /package/dist/native/{p-0493fb6d.entry.js.map → p-c2a73a5a.entry.js.map} +0 -0
- /package/dist/native/{p-6a3c1413.entry.js.map → p-c4c11549.entry.js.map} +0 -0
- /package/dist/native/{p-e7dc36d9.entry.js.map → p-ceb8fe8a.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nv-datagrid.js","sourceRoot":"","sources":["../../../../src/components/nv-datagrid/nv-datagrid.tsx"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n Component,\n Prop,\n h,\n State,\n Host,\n Watch,\n Element,\n Event,\n EventEmitter,\n} from '@stencil/core';\nimport {\n createTable,\n Table,\n TableOptionsResolved,\n getCoreRowModel,\n createColumnHelper,\n Row,\n getFilteredRowModel,\n getPaginationRowModel,\n PaginationState,\n getSortedRowModel,\n ColumnSort,\n SortingState,\n Header,\n RowSelectionState,\n ColumnDef,\n} from '@tanstack/table-core';\nimport { Column } from '../../interfaces/Column';\nimport { deepCopyElement, excludedProps } from '../../utils/dom.utils';\nimport { debounce } from '../../utils/input.utils';\nimport {\n GlobalFilterPosition,\n SortingPossibility,\n} from '../../utils/constants';\n\n/**\n * Indeterminate Checkbox Options\n */\ninterface IndeterminateCheckboxOptions {\n /**\n * State of the checkbox\n */\n indeterminate?: boolean;\n /**\n * Value of the checkbox\n */\n checked?: boolean;\n /**\n * Is the checkbox disabled or not\n */\n disabled?: boolean;\n /**\n * Class Name\n */\n className?: string;\n /**\n * On change event\n * @param {Event} e - The event\n * @returns\n */\n onChange?: (e: Event) => void;\n}\n\n/**\n * A flexible data grid component powered by `@tanstack/table-core`.\n * @slot default - Use this slot to insert HTML into the data grid content.\n * @slot before - Use this slot to insert HTML before the data grid.\n * @slot after - Use this slot to insert HTML after the data grid.\n *\n * @deprecated Please use the datatable instead\n */\n@Component({\n tag: 'nv-datagrid',\n styleUrl: './nv-datagrid.scss',\n shadow: false,\n})\nexport class NvDatagrid {\n @Element() el: HTMLNvDatagridElement;\n\n private readonly templateCache = new Map<string, Element>();\n private readonly headerTemplateCache = new Map<string, Element>();\n private readonly minPageIndex = 1;\n\n /****************************************************************************/\n //#region STATES\n\n @State()\n private table: Table<any> | null = null;\n\n @State()\n parsedColumns: Column[] = []; // Parsed array\n\n @State()\n parsedData: any[] = []; // Parsed array\n\n @State()\n private globalFilterSearchTerm: string = '';\n\n @State()\n private columnData: {\n /**\n * Defines the header of the column.\n */\n header?: string;\n\n /**\n * Defines the accessor of the column.\n */\n accessor: string;\n\n /**\n * Whether the column need to be repeated with the template.\n */\n repeatTemplate: boolean;\n\n /**\n * Defines the group header of the column.\n */\n group?: string;\n }[] = [];\n\n @State()\n private paginationState: PaginationState | null = null;\n\n @State()\n private sortingState: ColumnSort[] = [];\n\n @State()\n private rowSelectionState: RowSelectionState | null = {};\n\n //#endregion STATES\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * The data to display in the data grid.\n * @example [{ \"name\": \"Alice\", \"age\": 25 }, { \"name\": \"Bob\", \"age\": 30 }]\n * @default []\n */\n @Prop({ reflect: false })\n readonly data: any[] = [];\n\n /**\n * The columns to display in the data grid.\n * @example\n * [\n * {\"header\":\"Name\",\"accessor\":\"name\"},\n * {\"header\":\"Age\",\"accessor\":\"age\"},\n * {\"header\":\"Email\",\"accessor\":\"email\"}\n * ]\n * @default []\n */\n @Prop({ reflect: false })\n readonly columns: Column[] = [];\n\n /**\n * Fallback value to be displayed when data is not available\n * @default 'N/A'\n */\n @Prop({ reflect: true })\n readonly fallbackValue: string = 'N/A';\n\n /**\n * The message to display when there is no data available.\n * @default 'No data available'\n */\n @Prop({ reflect: true })\n readonly noDataMessage: string = 'No data available';\n\n /**\n * The message to display when there are no columns or data available.\n * @default 'No data or columns available to display.'\n */\n @Prop({ reflect: true })\n readonly noColumnsNoDataMessage: string =\n 'No data or columns available to display.';\n\n /**\n * Whether to automatically generate columns if none are provided.\n * If columns are explicitly set, this property is ignored.\n * @default false\n */\n @Prop({ reflect: true })\n readonly autoGenerateColumns: boolean = false;\n\n /**\n * Whether to enable global filtering for the data grid.\n * This allows users to search across all columns for a specific value.\n * The search is case-insensitive and supports partial matches.\n * It use string.includes() to match the search term.\n * @default false\n */\n @Prop({ reflect: true })\n readonly enableGlobalFilter: boolean = false;\n\n /**\n * Position the global filter input field\n */\n @Prop({ reflect: true })\n readonly globalFilterPosition: `${GlobalFilterPosition}` = 'end';\n\n /**\n * Whether to enable pagination for the data grid.\n * @default false\n */\n @Prop({ reflect: true })\n readonly enablePagination: boolean = false;\n\n /**\n * The number of rows to display per page.\n * If the number is not present in the property pageSizes it takes the first of the list.\n * @default 10\n */\n @Prop({ reflect: true })\n readonly pageSize: number = 10;\n\n /**\n * The array of page sizes to display in the pagination dropdown.\n * @default [10, 20, 30, 40, 50]\n */\n @Prop({ reflect: true })\n readonly pageSizes: number[] = [10, 20, 30, 40, 50];\n\n /**\n * Whether to enable sorting for the data grid.\n * @default false\n */\n @Prop({ reflect: true })\n readonly enableSorting: boolean = false;\n\n /**\n * Whether to enable row selection for the data grid.\n */\n @Prop({ reflect: true })\n readonly enableRowSelection: boolean = false;\n\n /**\n * The overall state\n */\n @Prop({ reflect: true })\n readonly state: {\n /**\n * Global filter search term\n */\n globalFilterSearchTerm: string;\n /**\n * Pagination State\n */\n paginationState: {\n /**\n * Page Index\n */\n pageIndex: number;\n /**\n * Page Size\n */\n pageSize: number;\n };\n /**\n * Sorting the columns\n */\n sortingState: {\n /**\n * Descending\n */\n desc: boolean;\n /**\n * Column Id\n */\n id: string;\n }[];\n } = null;\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region METHODS\n\n /**\n * Caches templates for cells and headers upfront to improve performance.\n */\n private cacheTemplates() {\n const columns = Array.from(this.el.querySelectorAll('nv-datagridcolumn'));\n\n this.columnData = [];\n\n columns.forEach((col: HTMLNvDatagridcolumnElement) => {\n const key = col.accessor;\n const cellSlot = col.querySelector('[slot=\"cell\"]');\n\n if (cellSlot) {\n const element = deepCopyElement(cellSlot as HTMLElement);\n this.templateCache.set(key, element);\n }\n\n const headerSlot = col.querySelector('[slot=\"header\"]');\n\n if (headerSlot) {\n const element = deepCopyElement(headerSlot as HTMLElement);\n this.headerTemplateCache.set(key, element);\n } else {\n const header = col.header;\n\n if (header) {\n const headerDiv = document.createElement('div');\n headerDiv.textContent = header;\n this.headerTemplateCache.set(key, headerDiv);\n }\n }\n\n const colData = {\n header: col.header,\n accessor: col.accessor,\n repeatTemplate: col.hasAttribute('repeat-template'),\n group: col.group,\n };\n\n this.columnData.push(colData);\n });\n\n console.info('cacheTemplates this.columnData:', this.columnData);\n }\n\n private parseDataAndColumns() {\n if (this.data && this.data.length > 0) {\n this.parseDataArray(this.data, this.parsedData);\n }\n\n if (this.columns && this.columns.length > 0) {\n this.parseColumnsArray(this.columns, this.parsedColumns);\n } else if (this.headerTemplateCache.size > 0) {\n const headerKeys = Array.from(this.headerTemplateCache.keys());\n const arrayColumnsConfig = headerKeys.map<Column>(key => ({\n ...{}, // Ensure no prototype inheritance\n accessor: key,\n header: key ? key.charAt(0).toUpperCase() + key.slice(1) : '',\n group:\n this.columnData.find(x => x.accessor === key)?.group ?? 'ungrouped',\n }));\n\n this.parseColumnsArray(arrayColumnsConfig, this.parsedColumns);\n } else if (this.parsedData.length > 0) {\n const firstRow = this.parsedData[0];\n const arrayColumnsConfig = Object.keys(firstRow).map<Column>(key => ({\n accessor: key,\n header: key.charAt(0).toUpperCase() + key.slice(1),\n group:\n this.columnData.find(x => x.accessor === key)?.group ?? 'ungrouped',\n }));\n\n if (this.autoGenerateColumns) {\n this.parseColumnsArray(arrayColumnsConfig, this.parsedColumns);\n }\n }\n }\n\n private deepEqual(a: any, b: any): boolean {\n return JSON.stringify(a) === JSON.stringify(b);\n }\n\n /**\n * Parses the data array and sets the state accordingly\n * @param {any[]} newValue - The new value of the data array.\n * @param {any[]} oldValue - The old value of the data array.\n */\n private parseDataArray(newValue: any[], oldValue: any[]) {\n // Ensure both are arrays for proper comparison\n const safeNewValue = Array.isArray(newValue) ? newValue : [];\n const safeOldValue = Array.isArray(oldValue) ? oldValue : [];\n\n if (this.deepEqual(safeNewValue, safeOldValue)) {\n return; // Deep comparison\n }\n\n this.parsedData = Array.isArray(newValue) ? newValue : [];\n }\n\n /**\n * Parses the columns array and sets the state accordingly\n * @param {Column[]} newValue - The new value of the columns array.\n * @param {Column[]} oldValue - The old value of the columns array.\n */\n private parseColumnsArray(newValue: Column[], oldValue: Column[]) {\n // Ensure both are arrays for proper comparison\n const safeNewValue = Array.isArray(newValue) ? newValue : [];\n const safeOldValue = Array.isArray(oldValue) ? oldValue : [];\n\n // Use a proper deep comparison function (e.g., Lodash's isEqual)\n if (this.deepEqual(safeNewValue, safeOldValue)) {\n return;\n }\n\n // Assign only after confirming changes\n this.parsedColumns = safeNewValue;\n }\n\n private initializeTable(): void {\n // Clear the previous table instance (if any)\n this.table = null;\n\n console.info('initializeTable this.columnData:', this.columnData);\n\n // Set default options for the table\n const tableOptions: TableOptionsResolved<any> = {\n columns: [],\n data: [],\n getCoreRowModel: getCoreRowModel(),\n debugAll: true,\n onStateChange: state => console.log('Table state changed:', state), // eslint-disable-line nova/no-console\n renderFallbackValue: 'No rows to display',\n state: {\n sorting: [], // Default: no active sorting\n columnVisibility: {}, // Default: all columns visible\n columnFilters: [], // Default: no column filters\n columnPinning: {}, // Default: no column pinning\n columnSizing: {}, // Default: no column sizing\n columnOrder: [], // Default: as defined in the `columns`\n pagination: null, // Default: no pagination\n grouping: [], // Default: no active grouping\n expanded: {}, // Default: no expanded rows\n rowPinning: {}, // Default: no row pinning\n rowSelection: {}, // Default: no row selection\n globalFilter: null, // Default: no global filter\n columnSizingInfo: {\n columnSizingStart: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n }, // Default: no column sizing info\n },\n };\n\n if (this.parsedColumns.length > 0) {\n // Validate and generate column definitions\n const validColumns = this.parsedColumns.filter(\n column => column?.accessor,\n );\n\n // Update tableOptions based on parsed data and columns\n const hasColumns =\n validColumns && Array.isArray(validColumns) && validColumns.length > 0;\n const hasData =\n this.parsedData &&\n Array.isArray(this.parsedData) &&\n this.parsedData.length > 0;\n\n if (!hasColumns && !hasData) {\n // No columns and no data\n } else if (hasColumns && !hasData) {\n // Has columns but no data\n tableOptions.columns = this.generateColumns(validColumns, tableOptions);\n } else {\n // Both columns and data are available\n tableOptions.data = this.getTableData();\n tableOptions.columns = this.generateColumns(validColumns, tableOptions);\n }\n } else {\n // No parsed columns and data is available\n const hasData =\n this.parsedData &&\n Array.isArray(this.parsedData) &&\n this.parsedData.length > 0;\n\n if (hasData) {\n // No parsed columns and data is available\n const firstRow = this.parsedData[0];\n const arrayColumnsConfig = Object.keys(firstRow).map<Column>(key => ({\n accessor: key,\n header: key.charAt(0).toUpperCase() + key.slice(1),\n group:\n this.columnData.find(x => x.accessor === key)?.group ?? 'ungrouped',\n }));\n\n if (this.autoGenerateColumns) {\n this.parseColumnsArray(arrayColumnsConfig, this.parsedColumns);\n }\n\n tableOptions.data = this.getTableData();\n tableOptions.columns = this.generateColumns(\n arrayColumnsConfig,\n tableOptions,\n );\n }\n }\n\n if (this.enableGlobalFilter) {\n tableOptions.getFilteredRowModel = getFilteredRowModel();\n\n const globalFilter = this.globalFilterSearchTerm;\n\n // Set the initial global filter value\n tableOptions.state.globalFilter = globalFilter;\n\n // Define the callback for global filter changes\n tableOptions.onGlobalFilterChange = updater => {\n const newFilter =\n typeof updater === 'function'\n ? updater(this.globalFilterSearchTerm)\n : updater;\n this.globalFilterSearchTerm = newFilter; // Will automatically trigger the searchTerm watcher and update the table\n };\n\n tableOptions.globalFilterFn = this.globalFilterFn;\n }\n\n if (this.enablePagination) {\n tableOptions.getPaginationRowModel = getPaginationRowModel();\n\n const pageIndex = this.paginationState?.pageIndex ?? 0;\n let effectivePageSize = this.paginationState?.pageSize ?? 10;\n\n if (!this.pageSizes.includes(effectivePageSize) && this.pageSizes) {\n effectivePageSize = this.pageSizes[0];\n }\n\n const pagination: PaginationState = {\n pageIndex: pageIndex,\n pageSize: effectivePageSize,\n };\n\n // Set the initial pagination value with safeguards\n tableOptions.state.pagination = pagination;\n\n tableOptions.onPaginationChange = updater => {\n const newPagination =\n typeof updater === 'function'\n ? updater(this.paginationState)\n : updater;\n\n this.paginationState = newPagination;\n };\n }\n\n if (this.enableSorting) {\n tableOptions.getSortedRowModel = getSortedRowModel();\n\n tableOptions.enableSorting = this.enableSorting;\n\n tableOptions.state.sorting = this.sortingState;\n\n tableOptions.onSortingChange = updater => {\n const newSorting =\n typeof updater === 'function' ? updater(this.sortingState) : updater;\n this.sortingState = newSorting; // Will automatically trigger the searchTerm watcher and update the table\n };\n }\n\n if (this.enableRowSelection) {\n tableOptions.state.rowSelection = this.rowSelectionState;\n\n tableOptions.onRowSelectionChange = updater => {\n const newRowSelectionState =\n typeof updater === 'function'\n ? updater(this.rowSelectionState)\n : updater;\n\n this.rowSelectionState = newRowSelectionState;\n\n // Emit the original rows instead of IDs\n const selectedRows = Object.keys(newRowSelectionState)\n .filter(rowId => newRowSelectionState[rowId])\n .map(rowId => {\n // Assuming rowId corresponds to the index in parsedData\n const index = parseInt(rowId, 10); // Convert rowId to an integer index\n return this.parsedData[index]; // Get the original row data\n });\n\n this.selectedRows.emit(selectedRows); // Emit the original rows\n };\n }\n\n // Initialize the table\n this.table = createTable(tableOptions);\n }\n\n /**\n * Global filter function for the table.\n * This function checks if the specified filter value is present in any of the row's original values,\n * including nested objects and arrays. It is used to filter the rows based on the global filter value,\n * allowing for case-insensitive matching.\n *\n * @param {Row<any>} row - The row object containing the data to be filtered.\n * @param {string} _columnId - The ID of the column being filtered (not used in this function).\n * @param {string} filterValue - The value to filter the rows by. This value is checked against the row's data.\n * @returns {boolean} - Returns true if the row should be included in the filtered results, false otherwise.\n * If the filter value is empty, all rows are included.\n */\n private globalFilterFn(\n row: Row<any>,\n _columnId: string,\n filterValue: string,\n ) {\n const safeFilterValue = String(filterValue).toLowerCase().trim();\n\n // If no filter value, return true for all rows\n if (!safeFilterValue) return true;\n\n // More robust filtering across all columns\n const checkValue = (value: any): boolean => {\n if (typeof value === 'object' && value !== null) {\n // If it's an array, check each item\n if (Array.isArray(value)) {\n return value.some(item => checkValue(item));\n }\n // If it's an object, check each property\n return Object.values(value).some(val => checkValue(val));\n }\n return String(value).toLowerCase().includes(safeFilterValue);\n };\n\n return checkValue(row.original);\n }\n\n private createIconSpan(checked: boolean, indeterminate: boolean) {\n const span = document.createElement('span');\n span.className = 'icon';\n\n if (checked && !indeterminate) {\n const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svg.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n svg.setAttribute('width', '14');\n svg.setAttribute('height', '14');\n svg.setAttribute('viewBox', '0 0 14 14');\n svg.setAttribute('fill', 'none');\n\n const path = document.createElementNS(\n 'http://www.w3.org/2000/svg',\n 'path',\n );\n path.setAttribute('d', 'M11.6667 3.5L5.25004 9.91667L2.33337 7');\n path.setAttribute('stroke-linecap', 'round');\n path.setAttribute('stroke-linejoin', 'round');\n\n svg.appendChild(path);\n span.appendChild(svg);\n }\n\n if (indeterminate) {\n const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svg.classList.add('indeterminate-svg');\n svg.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n svg.setAttribute('viewBox', '0 0 14 14');\n svg.setAttribute('fill', 'none');\n\n const path = document.createElementNS(\n 'http://www.w3.org/2000/svg',\n 'path',\n );\n path.setAttribute('d', 'M2.9165 7H11.0832');\n path.setAttribute('stroke-linecap', 'round');\n path.setAttribute('stroke-linejoin', 'round');\n\n svg.appendChild(path);\n span.appendChild(svg);\n }\n\n return span;\n }\n\n private createIndeterminateCheckbox(\n options: IndeterminateCheckboxOptions = {},\n ): HTMLElement {\n const {\n indeterminate,\n checked = false,\n disabled = false,\n className = '',\n onChange,\n } = options;\n\n const input = document.createElement('input');\n input.type = 'checkbox';\n input.checked = checked;\n input.disabled = disabled;\n input.className = `${className} cursor-pointer`.trim();\n\n if (typeof indeterminate === 'boolean') {\n input.indeterminate = !checked && indeterminate;\n }\n\n if (onChange) {\n input.addEventListener('change', onChange);\n }\n\n const iconSpan = this.createIconSpan(checked, indeterminate);\n\n const container = document.createElement('div');\n container.className = 'checkbox-container';\n container.appendChild(input);\n container.appendChild(iconSpan);\n\n return container;\n }\n\n // Helper function to generate column definitions\n private generateColumns(\n validColumns: Column[],\n tableOptions: TableOptionsResolved<any>,\n ): any[] {\n console.info('generateColumns this.columnData:', this.columnData);\n console.info('generateColumns validColumns:', validColumns);\n let processedColumns: Column[] = validColumns || [];\n const columnHelper = createColumnHelper<any>();\n\n // If no columns provided or autoGenerateColumns is true, generate them from data\n if (\n (!validColumns && tableOptions.data && tableOptions.data.length > 0) ||\n (validColumns.length <= 0 &&\n tableOptions.data &&\n tableOptions.data.length > 0)\n ) {\n const sampleRow = tableOptions.data[0];\n processedColumns = Object.keys(sampleRow as object).map(key => ({\n header: key.charAt(0).toUpperCase() + key.slice(1),\n accessor: key,\n group:\n this.columnData.find(x => x.accessor === key)?.group ?? 'ungrouped',\n headerSlot: null,\n cellSlot: null,\n }));\n }\n\n // Group columns by their group property\n const groupedColumns = processedColumns.reduce((acc, column) => {\n let group = column.group || 'ungrouped';\n\n if (group == 'ungrouped') {\n group = group + processedColumns.findIndex(x => x == column);\n }\n\n if (!acc[group]) {\n acc[group] = [];\n }\n acc[group].push(column);\n return acc;\n }, {} as Record<string, Column[]>);\n\n // Transform each column into a ColumnDef\n const createColumnDef = (column: Column) => {\n return columnHelper.accessor(column.accessor as any, {\n header:\n this.renderTemplate(\n this.headerTemplateCache.get(column.accessor),\n column.header ?? column.accessor,\n null,\n ) ??\n column.header ??\n column.accessor,\n cell: (info: any) => {\n const value = info.getValue();\n const row = info.row;\n\n return this.columnData.find(x => x.accessor === column.accessor)\n ?.repeatTemplate && Array.isArray(value)\n ? value.map(\n (item: any) =>\n this.renderTemplate(\n this.templateCache.get(column.accessor),\n item,\n row,\n ) ??\n item ??\n value ??\n this.fallbackValue,\n )\n : this.renderTemplate(\n this.templateCache.get(column.accessor),\n value,\n row,\n ) ??\n value ??\n this.fallbackValue;\n },\n sortUndefined: 'last',\n sortDescFirst: false,\n enableSorting: this.enableSorting, // Explicitly set enableSorting based on the sorting prop\n enableGlobalFilter: this.enableGlobalFilter, // Explicity set enableGlobalFilter based on the globalFiltering prop\n });\n };\n\n // Create the final column structure\n let generatedColumns = Object.entries(groupedColumns)\n .map(([groupName, groupColumns]) => {\n if (groupName.includes('ungrouped')) {\n return groupColumns.map(createColumnDef);\n }\n\n return {\n id: groupName,\n header: groupName,\n columns: groupColumns.map(createColumnDef),\n enableSorting: this.enableSorting, // Also apply to column groups\n enableGlobalFilter: this.enableGlobalFilter, // Also apply to column groups\n } as ColumnDef<any, any>;\n })\n .flat();\n\n if (this.enableRowSelection) {\n const rowSelection = columnHelper.accessor('select', {\n header: ({ table }) => {\n return (\n <div\n class=\"flex px-1\"\n ref={el => {\n const checkbox = this.createIndeterminateCheckbox({\n checked: table?.getIsAllRowsSelected(),\n indeterminate: table?.getIsSomeRowsSelected(),\n onChange: table?.getToggleAllRowsSelectedHandler(),\n });\n\n if (el) {\n el.innerHTML = ''; // Remove existing content\n el.appendChild(checkbox); // Append new checkbox\n }\n }}\n />\n );\n },\n cell: ({ row }) => {\n return (\n <div\n class=\"flex px-1\"\n ref={el => {\n const checkbox = this.createIndeterminateCheckbox({\n checked: row?.getIsSelected(),\n disabled: !row?.getCanSelect(),\n indeterminate: row?.getIsSomeSelected(),\n onChange: row?.getToggleSelectedHandler(),\n });\n\n if (el) {\n el.innerHTML = ''; // Remove existing content\n el.appendChild(checkbox); // Append new checkbox\n }\n }}\n />\n );\n },\n enableGlobalFilter: false,\n enableSorting: false,\n });\n\n generatedColumns = [rowSelection, ...generatedColumns];\n }\n\n return generatedColumns;\n }\n\n private getTableData(): any[] {\n if (\n this.parsedData &&\n Array.isArray(this.parsedData) &&\n this.parsedData.length > 0\n ) {\n return [...this.parsedData];\n } else {\n return [];\n }\n }\n\n private renderTemplate(\n template: Element | undefined,\n cellValue: any,\n row?: Row<any>,\n ) {\n if (!template) {\n return null;\n }\n\n // Handle <template> elements correctly\n const templateContent =\n template instanceof HTMLTemplateElement ? template.content : template;\n const element = deepCopyElement(templateContent as HTMLElement);\n\n // Replace placeholders in text content, attributes, and properties\n element.querySelectorAll('*').forEach(el => {\n // Replace placeholders in text content\n this.replacePlaceholdersTextContent(el, cellValue, row);\n\n // Replace placeholders in attributes\n this.replacePlaceholdersAttributes(el, cellValue, row);\n\n // Replace placeholders in properties\n this.replacePlaceholdersProperties(el, cellValue, row);\n });\n\n // Handle `data-bind-event`\n element.querySelectorAll('[data-bind-event]').forEach(el => {\n const bindEvent = el.getAttribute('data-bind-event') || '';\n const splitted = bindEvent.split(':');\n\n if (!bindEvent.includes(':') || splitted.length < 2) {\n console.warn('Invalid data-bind-event format:', bindEvent);\n return;\n }\n\n const eventType = splitted[0];\n const keyAction = splitted[1];\n const details = splitted.length > 2 ? splitted[2] : null;\n\n el.addEventListener(eventType, () => {\n const keys = details?.split(',') ?? [];\n\n // Convert keys into a single object instead of an array of objects\n const keyValue = keys.reduce((acc, key) => {\n if (row?.original) {\n if (key in row.original) {\n acc[key] = row.original?.[key];\n }\n }\n return acc;\n }, {} as Record<string, any>);\n\n const action = { keyAction, details: keyValue };\n\n this.action.emit(action);\n });\n });\n\n // Ensure Web Components are properly connected\n setTimeout(() => {\n element.querySelectorAll('*').forEach(child => {\n if (typeof (child as any).connectedCallback === 'function') {\n (child as any).connectedCallback();\n }\n });\n }, 0);\n\n return (\n <div\n ref={el => {\n if (el) {\n el.innerHTML = ''; // Remove existing content\n el.appendChild(element); // Append new element\n }\n }}\n ></div>\n );\n }\n\n private replaceKeyWithValue(key: string, cellValue: any): string {\n // Handle undefined or null values by returning the fallback\n if (cellValue === undefined || cellValue === null) {\n return this.fallbackValue;\n }\n\n // If cellValue is an object, attempt to retrieve the value\n if (typeof cellValue === 'object') {\n // Handle nested key paths (e.g., \"user.name\")\n if (key.includes('.')) {\n const resolvedValue = key.split('.').reduce((acc, keyPart) => {\n if (acc && acc[keyPart] !== undefined) {\n return acc[keyPart];\n } else {\n return undefined;\n }\n }, cellValue);\n\n if (resolvedValue !== undefined) {\n return String(resolvedValue);\n } else {\n const firstLevelKey = key.split('.')[0];\n const rest = key.substring(firstLevelKey.length + 1);\n\n const response = this.replaceKeyWithValue(rest, cellValue);\n\n if (response !== this.fallbackValue) {\n return response;\n }\n }\n }\n\n // Handle single-level key lookup\n if (key in cellValue) {\n return String(cellValue[key]);\n } else if (Array.isArray(cellValue)) {\n // Handle array of objects\n const response = cellValue.map((item: any) => {\n if (typeof item !== 'object') {\n return item.toString();\n } else if (key in item) {\n return item[key];\n } else {\n return item.toString();\n }\n });\n\n return response.join(', ');\n }\n\n return this.fallbackValue;\n }\n\n // If cellValue is a primitive (string, number, boolean, etc.), return it as a string\n return cellValue?.toString() ?? this.fallbackValue;\n }\n\n private replacePlaceholdersTextContent(\n element: Element,\n cellValue: any,\n row: Row<any>,\n ) {\n if (!cellValue) {\n // ✅ Replace placeholders in text content with the row original value\n // but first get the original value\n const originalValue = row.original;\n\n element.childNodes.forEach(node => {\n if (node.nodeType === Node.TEXT_NODE) {\n node.textContent = node.textContent.replace(\n /__([\\w.]+)__/g,\n (_, key) => {\n if (key in originalValue) {\n return this.replaceKeyWithValue(key, originalValue[key]);\n } else {\n console.warn(`Key ${key} not found in originalValue`);\n return '';\n }\n },\n );\n }\n });\n } else {\n // ✅ Replace placeholders in text content\n element.childNodes.forEach(node => {\n if (node.nodeType === Node.TEXT_NODE) {\n node.textContent = node.textContent.replace(\n /__([\\w.]+)__/g,\n (_, key) => this.replaceKeyWithValue(key, cellValue),\n );\n }\n });\n }\n }\n\n private replacePlaceholdersAttributes(\n element: Element,\n cellValue: any,\n row: Row<any>,\n ) {\n if (!cellValue) {\n // ✅ Replace placeholders in attributes with the row original value\n // but first get the original value\n const originalValue = row.original;\n\n Array.from(element.attributes).forEach(attr => {\n if (attr.value.includes('__')) {\n attr.value = attr.value.replace(/__([\\w.]+)__/g, (_, key) => {\n if (key in originalValue) {\n return this.replaceKeyWithValue(key, originalValue[key]);\n } else {\n console.warn(`Key ${key} not found in originalValue`);\n return '';\n }\n });\n }\n });\n } else {\n // ✅ Replace placeholders in attributes\n Array.from(element.attributes).forEach(attr => {\n if (attr.value.includes('__')) {\n attr.value = attr.value.replace(/__([\\w.]+)__/g, (_, key) =>\n this.replaceKeyWithValue(key, cellValue),\n );\n }\n });\n }\n }\n\n private replacePlaceholdersProperties(\n element: Element,\n cellValue: any,\n row: Row<any>,\n ) {\n if (!cellValue) {\n // ✅ Replace placeholders in properties with the row original value\n // but first get the original value\n const originalValue = row.original;\n\n // ✅ Dynamically extract relevant properties\n const properties = new Set<string>();\n\n // Collect only own enumerable properties\n Object.keys(originalValue).forEach(key => properties.add(key));\n\n // Collect inherited properties from prototypes (HTMLElement -> Element -> Node)\n let proto = Object.getPrototypeOf(originalValue);\n while (proto && proto !== HTMLElement.prototype) {\n Object.keys(proto).forEach(key => properties.add(key));\n proto = Object.getPrototypeOf(proto);\n }\n\n // ✅ Filter and copy only non-function properties and exclude irrelevant ones\n properties.forEach(prop => {\n if (\n typeof (element as any)[prop] !== 'function' && // Ignore methods\n !prop.startsWith('on') && // Ignore event listeners (onclick, oninput, etc.)\n !excludedProps.has(prop) // 🚨 Prevent text duplication and irrelevant props\n ) {\n const propValue = (element as any)[prop];\n\n if (typeof propValue === 'string' && propValue.includes('__')) {\n (element as any)[prop] = propValue.replace(\n /__([\\w.]+)__/g,\n (_, key) => {\n if (key in originalValue) {\n return this.replaceKeyWithValue(key, originalValue[key]);\n } else {\n console.warn(`Key ${key} not found in originalValue`);\n return '';\n }\n },\n );\n }\n }\n });\n } else {\n // ✅ Dynamically extract relevant properties\n const properties = new Set<string>();\n\n // Collect only own enumerable properties\n Object.keys(element).forEach(key => properties.add(key));\n\n // Collect inherited properties from prototypes (HTMLElement -> Element -> Node)\n let proto = Object.getPrototypeOf(element);\n while (proto && proto !== HTMLElement.prototype) {\n Object.keys(proto).forEach(key => properties.add(key));\n proto = Object.getPrototypeOf(proto);\n }\n\n // ✅ Filter and copy only non-function properties and exclude irrelevant ones\n properties.forEach(prop => {\n if (\n typeof (element as any)[prop] !== 'function' && // Ignore methods\n !prop.startsWith('on') && // Ignore event listeners (onclick, oninput, etc.)\n !excludedProps.has(prop) // 🚨 Prevent text duplication and irrelevant props\n ) {\n try {\n const propValue = element[prop];\n\n // ✅ Replace placeholders only if the value is a string\n if (typeof propValue === 'string' && propValue.includes('__')) {\n element[prop] = propValue.replace(/__([\\w.]+)__/g, (_, key) =>\n this.replaceKeyWithValue(key, cellValue),\n ) as any; // ✅ TypeScript safe\n }\n } catch (error) {\n console.warn(`Could not assign property ${prop}:`, error.message);\n }\n }\n });\n }\n }\n\n private readonly debouncedFilter = debounce((value: string) => {\n this.table?.setGlobalFilter(value);\n }, 300);\n\n /**\n * Handles global filtering on input event for the search input.\n * It debounces the input to prevent excessive filtering.\n * @param {Event} event - The input event.\n * @returns {void} - Nothing.\n */\n private readonly handleGlobalFilteringOnInput = (event: Event): void => {\n const target = event.target;\n\n if (target instanceof HTMLInputElement) {\n const value = target.value;\n\n // Update the globalFilter state\n this.debouncedFilter(value);\n }\n };\n\n private readonly flexRender = <TProps extends object>(\n comp: any,\n props: TProps,\n ) => {\n if (typeof comp === 'function') {\n return comp(props);\n }\n\n return comp;\n };\n\n private readonly handlePageIndexChange = (event: Event): void => {\n const target = event.target as HTMLInputElement;\n const page = target.value ? Number(target.value) - 1 : 0;\n\n // Simply use `setPageIndex` to update the page index directly\n this.paginationState = { ...this.paginationState, pageIndex: page }; // This triggers the paginationState watcher\n };\n\n private readonly handlePageSizeChange = (event: Event): void => {\n const target = event.target as HTMLSelectElement;\n let effectivePageSize = Number(target.value);\n\n if (!this.pageSizes.includes(effectivePageSize) && this.pageSizes) {\n effectivePageSize = this.pageSizes[0];\n }\n\n // Simply use `setPageSize` to update the page size directly\n this.paginationState = {\n ...this.paginationState,\n pageSize: effectivePageSize,\n }; // This triggers the paginationState watcher\n };\n\n private readonly handleSortingClick = (\n event: Event,\n header: Header<any, unknown>,\n ): void => {\n if (!header.column.getCanSort()) {\n return;\n }\n\n header.column.getToggleSortingHandler()?.(event);\n };\n\n private readonly getSortTitle = (\n header: Header<any, unknown>,\n ): string | undefined => {\n if (!header.column.getCanSort()) return;\n\n const nextOrder = header.column.getNextSortingOrder();\n\n switch (nextOrder) {\n case SortingPossibility.Asc:\n return 'Sort ascending';\n case SortingPossibility.Desc:\n return 'Sort descending';\n default:\n return 'Clear sort';\n }\n };\n\n private getArrowSorting(header: Header<any, unknown>) {\n if (!header.column.getCanSort()) return null;\n\n const sortState = header.column.getIsSorted() as string;\n\n if (sortState === SortingPossibility.Asc) {\n return (\n <div class=\"inline-flex align-middle\">\n <nv-icon name=\"arrow-up\"></nv-icon>\n </div>\n );\n }\n\n if (sortState === SortingPossibility.Desc) {\n return (\n <div class=\"inline-flex align-middle\">\n <nv-icon name=\"arrow-down\"></nv-icon>\n </div>\n );\n }\n\n return null;\n }\n\n private getHeaderCell(header: Header<any, unknown>) {\n const isSortable = header.column.getCanSort();\n const sortTitle = this.getSortTitle(header);\n const content = header.isPlaceholder\n ? null\n : header.column.columnDef.header\n ? this.flexRender(header.column.columnDef.header, header.getContext())\n : null; // Ensure content is not null\n const sortIcon = this.getArrowSorting(header);\n\n const handleClick = this.createSortingClickHandler(header);\n\n if (this.enableRowSelection) {\n return (\n <th key={header.id} colSpan={header.colSpan}>\n {content} {/* Directly render content to see if it appears */}\n </th>\n );\n }\n\n const returnHtml = (\n <th key={header.id} colSpan={header.colSpan}>\n <button\n type=\"button\"\n class={\n isSortable\n ? 'w-full text-left cursor-pointer select-none bg-transparent border-none p-0 m-0 focus:outline-none'\n : 'w-full text-left bg-transparent border-none p-0 m-0 cursor-default'\n }\n onClick={handleClick}\n title={sortTitle}\n >\n <span class=\"inline-flex items-center gap-1\">\n {content}\n {sortIcon}\n </span>\n </button>\n </th>\n );\n\n return returnHtml;\n }\n\n // 👇 Helper method to avoid arrow function in JSX\n private createSortingClickHandler(header: Header<any, unknown>) {\n return (e: MouseEvent) => {\n this.handleSortingClick(e, header);\n };\n }\n\n private getPagination() {\n return (\n this.enablePagination && (\n <div class=\"flex items-center gap-2\">\n <button\n class=\"border rounded p-1\"\n disabled={!this.table.getCanPreviousPage()}\n onClick={this.table.firstPage}\n >\n <<\n </button>\n <button\n class=\"border rounded p-1\"\n disabled={!this.table.getCanPreviousPage()}\n onClick={this.table.previousPage}\n >\n <\n </button>\n <button\n class=\"border rounded p-1\"\n disabled={!this.table.getCanNextPage()}\n onClick={this.table.nextPage}\n >\n >\n </button>\n <button\n class=\"border rounded p-1\"\n disabled={!this.table.getCanNextPage()}\n onClick={this.table.lastPage}\n >\n >>\n </button>\n\n <span class=\"flex items-center gap-1\">\n <div>Page</div>\n <strong>\n {this.table.getState().pagination.pageIndex + 1} of{' '}\n {this.table.getPageCount().toLocaleString()}\n </strong>\n </span>\n <span class=\"flex items-center gap-1\">\n | Go to page:{' '}\n <input\n type=\"number\"\n min={this.minPageIndex}\n max={this.table.getPageCount()}\n value={this.table.getState().pagination.pageIndex + 1}\n class=\"border p-1 rounded w-16\"\n aria-label=\"Go to page\"\n onInput={this.handlePageIndexChange}\n />\n </span>\n {this.pageSizes?.length > 0 && (\n <select\n aria-label=\"Rows per page\"\n onChange={this.handlePageSizeChange}\n >\n {this.pageSizes.map(pageSize => (\n <option\n value={String(pageSize)}\n selected={\n this.table.getState().pagination.pageSize === pageSize\n }\n >\n Show {pageSize}\n </option>\n ))}\n </select>\n )}\n </div>\n )\n );\n }\n\n //#endregion METHODS\n /****************************************************************************/\n //#region WATCHERS\n\n @Watch('columns')\n parseColumns(newValue: Column[], oldValue: Column[] = []) {\n this.parseColumnsArray(newValue, oldValue);\n }\n\n @Watch('data')\n parseData(newValue: any[], oldValue: any[] = []) {\n this.parseDataArray(newValue, oldValue);\n }\n\n @Watch('parsedColumns')\n @Watch('parsedData')\n handleParsedChange() {\n this.initializeTable();\n }\n\n @Watch('globalFilterSearchTerm')\n handleGlobalFilterSearchTerm(newValue: string) {\n if (!this.table) {\n console.warn('Table is not initialized yet.');\n return;\n }\n\n // Not working\n /*// Set the global filter for the table\n this.table.setGlobalFilter(newValue);*/\n\n // Manually update the globalFilter state\n this.table.options.state.globalFilter = newValue;\n }\n\n @Watch('paginationState')\n handlePaginationState(newValue: PaginationState, oldValue: PaginationState) {\n if (!this.table) {\n console.warn('Table is not initialized yet.');\n return;\n }\n\n // Only update if there is a meaningful change\n if (JSON.stringify(newValue) !== JSON.stringify(oldValue)) {\n // Not working\n /*// Set the pagination for the table\n this.table.setPagination(newValue);*/\n\n // Manually update the pagination state\n this.table.options.state.pagination = newValue;\n }\n }\n\n @Watch('sortingState')\n handleSortingState(newValue: SortingState) {\n if (!this.table) {\n console.warn('Table is not initialized yet.');\n return;\n }\n\n // Not working\n /*// Set the sorting for the table\n this.table.setSorting(newValue);*/\n\n // Manually update the sorting state\n this.table.options.state.sorting = newValue;\n }\n\n @Watch('pageSize')\n handlePageSize(newValue: number) {\n let effectivePageSize = newValue;\n if (!this.pageSizes.includes(effectivePageSize) && this.pageSizes) {\n effectivePageSize = this.pageSizes[0];\n }\n\n // Simply use `setPageSize` to update the page size directly\n this.paginationState = {\n ...this.paginationState,\n pageSize: effectivePageSize,\n }; // This triggers the paginationState watcher\n }\n\n @Watch('rowSelectionState')\n handleRowSelectionState(\n newValue: RowSelectionState,\n oldValue: RowSelectionState,\n ) {\n if (!this.table) {\n console.warn('Table is not initialized yet.');\n return;\n }\n\n // Only update if there is a meaningful change\n if (JSON.stringify(newValue) !== JSON.stringify(oldValue)) {\n // Not working\n /*// Set the rowSelection for the table\n this.table.setRowSelection(newValue);*/\n\n // Manually update the row selection state\n this.table.options.state.rowSelection = newValue;\n }\n }\n\n @Watch('state')\n handleStateChange(newValue: {\n /**\n * Global filter search term\n */\n globalFilterSearchTerm: string;\n /**\n * Pagination State\n */\n paginationState: {\n /**\n * Page Index\n */\n pageIndex: number;\n /**\n * Page Size\n */\n pageSize: number;\n };\n /**\n * Sorting the columns\n */\n sortingState: {\n /**\n * Descending\n */\n desc: boolean;\n /**\n * Column Id\n */\n id: string;\n }[];\n }) {\n if (newValue) {\n // Only update internal state if values are different to avoid loops\n if (this.globalFilterSearchTerm !== newValue.globalFilterSearchTerm) {\n this.globalFilterSearchTerm = newValue.globalFilterSearchTerm;\n }\n if (\n JSON.stringify(this.paginationState) !==\n JSON.stringify(newValue.paginationState)\n ) {\n this.paginationState = newValue.paginationState;\n }\n if (\n JSON.stringify(this.sortingState) !==\n JSON.stringify(newValue.sortingState)\n ) {\n this.sortingState = newValue.sortingState;\n }\n }\n }\n\n // Add watchers for internal state to emit changes\n @Watch('globalFilterSearchTerm')\n @Watch('paginationState')\n @Watch('sortingState')\n handleInternalStateChange() {\n // Only emit if the state has actually changed\n const newState = {\n globalFilterSearchTerm: this.globalFilterSearchTerm,\n paginationState: this.paginationState,\n sortingState: this.sortingState,\n };\n\n // Emit the new state and let the parent component update the prop\n this.stateChanged.emit(newState);\n }\n\n //#endregion WATCHERS\n /****************************************************************************/\n //#region LIFECYCLE\n\n componentWillLoad() {\n this.cacheTemplates();\n\n this.parseDataAndColumns();\n\n this.initializeTable();\n\n if (this.enablePagination) {\n // Ensure a valid page size\n let effectivePageSize = this.pageSize > 0 ? this.pageSize : 10;\n\n if (!this.pageSizes.includes(effectivePageSize) && this.pageSizes) {\n effectivePageSize = this.pageSizes[0];\n }\n\n this.paginationState = {\n pageIndex: Math.max(0, this.minPageIndex - 1),\n pageSize: effectivePageSize,\n };\n }\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emitted when an action is triggered on a cell.\n */\n @Event({ bubbles: false })\n action: EventEmitter<{\n /**\n * Key action to be performed\n */\n keyAction: string;\n\n /**\n * Details of the action to be performed\n */\n details: any;\n }>;\n\n /**\n * Emitted when the selection of the rows are changed.\n */\n @Event({ bubbles: false })\n // eslint-disable-next-line nova/event-inline-interfaces\n selectedRows: EventEmitter<any[]>;\n\n /**\n * Emitted when the state is changed\n * @bind state\n */\n @Event({ bubbles: false })\n // eslint-disable-next-line nova/event-inline-interfaces\n stateChanged: EventEmitter<{\n /**\n * Global filter search term\n */\n globalFilterSearchTerm: string;\n /**\n * Pagination State\n */\n paginationState: {\n /**\n * Page Index\n */\n pageIndex: number;\n /**\n * Page Size\n */\n pageSize: number;\n };\n /**\n * Sorting the columns\n */\n sortingState: {\n /**\n * Descending\n */\n desc: boolean;\n /**\n * Column Id\n */\n id: string;\n }[];\n }>;\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region RENDER\n\n render() {\n const headerGroups =\n !this.table || this.table === undefined || this.parsedColumns.length === 0\n ? []\n : this.table?.getHeaderGroups();\n\n const rows =\n !this.table || this.table === undefined || this.parsedData.length === 0\n ? []\n : this.table?.getRowModel()?.rows;\n\n return (\n <Host>\n <div class=\"hidden\">\n <slot></slot>\n </div>\n\n <slot name=\"before\"></slot>\n {this.enableGlobalFilter && this.table && (\n <div class={`search-container justify-${this.globalFilterPosition}`}>\n <nv-fieldtext\n value={this.globalFilterSearchTerm}\n onInput={this.handleGlobalFilteringOnInput}\n placeholder=\"Search all columns...\"\n />\n </div>\n )}\n\n {this.parsedColumns.length === 0 && this.parsedData.length === 0 ? (\n <div class=\"no-data\">{this.noColumnsNoDataMessage}</div>\n ) : (\n <div>\n <table>\n {this.parsedColumns.length > 0 && headerGroups.length > 0 && (\n <thead>\n {this.parsedColumns.length > 0 && headerGroups\n ? headerGroups?.map(headerGroup => (\n <tr key={headerGroup.id}>\n {headerGroup.headers.map(header => {\n return this.getHeaderCell(header);\n })}\n </tr>\n ))\n : null}\n </thead>\n )}\n <tbody>\n {!rows || rows.length === 0 || this.parsedData.length === 0 ? (\n <tr>\n <td\n colSpan={this.parsedColumns.length || 12}\n class=\"no-data\"\n >\n {this.noDataMessage}\n </td>\n </tr>\n ) : (\n rows.map(row => {\n const rowId = row.id;\n const visibleCells = row?.getVisibleCells();\n\n return (\n <tr key={rowId}>\n {visibleCells.map(cell => {\n return (\n <td key={cell.id} data-row-id={rowId}>\n {this.flexRender(\n cell.column.columnDef.cell,\n cell.getContext(),\n )}\n </td>\n );\n })}\n </tr>\n );\n })\n )}\n </tbody>\n {this.table && this.enableRowSelection ? (\n <tfoot>\n <tr>\n <td colSpan={20}>\n {this.enableRowSelection && this.table ? (\n <div>\n {this.rowSelectionState &&\n Object.keys(this.rowSelectionState).length > 0 ? (\n <span>\n {Object.keys(this.rowSelectionState).length} of{' '}\n {this.table.getPreFilteredRowModel()?.rows\n ?.length || 0}{' '}\n Total Rows Selected\n </span>\n ) : (\n <span>No rows selected</span>\n )}\n </div>\n ) : null}\n </td>\n </tr>\n </tfoot>\n ) : null}\n </table>\n {this.getPagination()}\n </div>\n )}\n\n <slot name=\"after\"></slot>\n </Host>\n );\n }\n\n //#endregion RENDER\n /****************************************************************************/\n}\n"]}
|
|
1
|
+
{"version":3,"file":"nv-datagrid.js","sourceRoot":"","sources":["../../../../src/components/nv-datagrid/nv-datagrid.tsx"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n Component,\n Prop,\n h,\n State,\n Host,\n Watch,\n Element,\n Event,\n EventEmitter,\n} from '@stencil/core';\nimport {\n createTable,\n Table,\n TableOptionsResolved,\n getCoreRowModel,\n createColumnHelper,\n Row,\n getFilteredRowModel,\n getPaginationRowModel,\n PaginationState,\n getSortedRowModel,\n ColumnSort,\n SortingState,\n Header,\n RowSelectionState,\n ColumnDef,\n} from '@tanstack/table-core';\nimport { Column } from '../../interfaces/Column';\nimport { deepCopyElement, excludedProps } from '../../utils/dom.utils';\nimport { debounce } from '../../utils/input.utils';\nimport {\n GlobalFilterPosition,\n SortingPossibility,\n} from '../../utils/constants';\n\n/**\n * Indeterminate Checkbox Options\n */\ninterface IndeterminateCheckboxOptions {\n /**\n * State of the checkbox\n */\n indeterminate?: boolean;\n /**\n * Value of the checkbox\n */\n checked?: boolean;\n /**\n * Is the checkbox disabled or not\n */\n disabled?: boolean;\n /**\n * Class Name\n */\n className?: string;\n /**\n * On change event\n * @param {Event} e - The event\n * @returns\n */\n onChange?: (e: Event) => void;\n}\n\n/**\n * A flexible data grid component powered by `@tanstack/table-core`.\n * @slot default - Use this slot to insert HTML into the data grid content.\n * @slot before - Use this slot to insert HTML before the data grid.\n * @slot after - Use this slot to insert HTML after the data grid.\n *\n * @deprecated Please use the datatable instead\n */\n@Component({\n tag: 'nv-datagrid',\n styleUrl: './nv-datagrid.scss',\n shadow: false,\n})\nexport class NvDatagrid {\n @Element() el: HTMLNvDatagridElement;\n\n private readonly templateCache = new Map<string, Element>();\n private readonly headerTemplateCache = new Map<string, Element>();\n private readonly minPageIndex = 1;\n\n /****************************************************************************/\n //#region STATES\n\n @State()\n private table: Table<any> | null = null;\n\n @State()\n parsedColumns: Column[] = []; // Parsed array\n\n @State()\n parsedData: any[] = []; // Parsed array\n\n @State()\n private globalFilterSearchTerm: string = '';\n\n @State()\n private columnData: {\n /**\n * Defines the header of the column.\n */\n header?: string;\n\n /**\n * Defines the accessor of the column.\n */\n accessor: string;\n\n /**\n * Whether the column need to be repeated with the template.\n */\n repeatTemplate: boolean;\n\n /**\n * Defines the group header of the column.\n */\n group?: string;\n }[] = [];\n\n @State()\n private paginationState: PaginationState | null = null;\n\n @State()\n private sortingState: ColumnSort[] = [];\n\n @State()\n private rowSelectionState: RowSelectionState | null = {};\n\n //#endregion STATES\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * The data to display in the data grid.\n * @example [{ \"name\": \"Alice\", \"age\": 25 }, { \"name\": \"Bob\", \"age\": 30 }]\n * @default []\n */\n @Prop({ reflect: false })\n readonly data: any[] = [];\n\n /**\n * The columns to display in the data grid.\n * @example\n * [\n * {\"header\":\"Name\",\"accessor\":\"name\"},\n * {\"header\":\"Age\",\"accessor\":\"age\"},\n * {\"header\":\"Email\",\"accessor\":\"email\"}\n * ]\n * @default []\n */\n @Prop({ reflect: false })\n readonly columns: Column[] = [];\n\n /**\n * Fallback value to be displayed when data is not available\n * @default 'N/A'\n */\n @Prop({ reflect: true })\n readonly fallbackValue: string = 'N/A';\n\n /**\n * The message to display when there is no data available.\n * @default 'No data available'\n */\n @Prop({ reflect: true })\n readonly noDataMessage: string = 'No data available';\n\n /**\n * The message to display when there are no columns or data available.\n * @default 'No data or columns available to display.'\n */\n @Prop({ reflect: true })\n readonly noColumnsNoDataMessage: string =\n 'No data or columns available to display.';\n\n /**\n * Whether to automatically generate columns if none are provided.\n * If columns are explicitly set, this property is ignored.\n * @default false\n */\n @Prop({ reflect: true })\n readonly autoGenerateColumns: boolean = false;\n\n /**\n * Whether to enable global filtering for the data grid.\n * This allows users to search across all columns for a specific value.\n * The search is case-insensitive and supports partial matches.\n * It use string.includes() to match the search term.\n * @default false\n */\n @Prop({ reflect: true })\n readonly enableGlobalFilter: boolean = false;\n\n /**\n * Position the global filter input field\n */\n @Prop({ reflect: true })\n readonly globalFilterPosition: `${GlobalFilterPosition}` = 'end';\n\n /**\n * Whether to enable pagination for the data grid.\n * @default false\n */\n @Prop({ reflect: true })\n readonly enablePagination: boolean = false;\n\n /**\n * The number of rows to display per page.\n * If the number is not present in the property pageSizes it takes the first of the list.\n * @default 10\n */\n @Prop({ reflect: true })\n readonly pageSize: number = 10;\n\n /**\n * The array of page sizes to display in the pagination dropdown.\n * @default [10, 20, 30, 40, 50]\n */\n @Prop({ reflect: true })\n readonly pageSizes: number[] = [10, 20, 30, 40, 50];\n\n /**\n * Whether to enable sorting for the data grid.\n * @default false\n */\n @Prop({ reflect: true })\n readonly enableSorting: boolean = false;\n\n /**\n * Whether to enable row selection for the data grid.\n */\n @Prop({ reflect: true })\n readonly enableRowSelection: boolean = false;\n\n /**\n * The overall state\n */\n @Prop({ reflect: true })\n readonly state: {\n /**\n * Global filter search term\n */\n globalFilterSearchTerm: string;\n /**\n * Pagination State\n */\n paginationState: {\n /**\n * Page Index\n */\n pageIndex: number;\n /**\n * Page Size\n */\n pageSize: number;\n };\n /**\n * Sorting the columns\n */\n sortingState: {\n /**\n * Descending\n */\n desc: boolean;\n /**\n * Column Id\n */\n id: string;\n }[];\n } = null;\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region METHODS\n\n /**\n * Caches templates for cells and headers upfront to improve performance.\n */\n private cacheTemplates() {\n const columns = Array.from(this.el.querySelectorAll('nv-datagridcolumn'));\n\n this.columnData = [];\n\n columns.forEach((col: HTMLNvDatagridcolumnElement) => {\n const key = col.accessor;\n const cellSlot = col.querySelector('[slot=\"cell\"]');\n\n if (cellSlot) {\n const element = deepCopyElement(cellSlot as HTMLElement);\n this.templateCache.set(key, element);\n }\n\n const headerSlot = col.querySelector('[slot=\"header\"]');\n\n if (headerSlot) {\n const element = deepCopyElement(headerSlot as HTMLElement);\n this.headerTemplateCache.set(key, element);\n } else {\n const header = col.header;\n\n if (header) {\n const headerDiv = document.createElement('div');\n headerDiv.textContent = header;\n this.headerTemplateCache.set(key, headerDiv);\n }\n }\n\n const colData = {\n header: col.header,\n accessor: col.accessor,\n repeatTemplate: col.hasAttribute('repeat-template'),\n group: col.group,\n };\n\n this.columnData.push(colData);\n });\n\n console.info('cacheTemplates this.columnData:', this.columnData);\n }\n\n private parseDataAndColumns() {\n if (this.data && this.data.length > 0) {\n this.parseDataArray(this.data, this.parsedData);\n }\n\n if (this.columns && this.columns.length > 0) {\n this.parseColumnsArray(this.columns, this.parsedColumns);\n } else if (this.headerTemplateCache.size > 0) {\n const headerKeys = Array.from(this.headerTemplateCache.keys());\n const arrayColumnsConfig = headerKeys.map<Column>(key => ({\n ...{}, // Ensure no prototype inheritance\n accessor: key,\n header: key ? key.charAt(0).toUpperCase() + key.slice(1) : '',\n group:\n this.columnData.find(x => x.accessor === key)?.group ?? 'ungrouped',\n }));\n\n this.parseColumnsArray(arrayColumnsConfig, this.parsedColumns);\n } else if (this.parsedData.length > 0) {\n const firstRow = this.parsedData[0];\n const arrayColumnsConfig = Object.keys(firstRow).map<Column>(key => ({\n accessor: key,\n header: key.charAt(0).toUpperCase() + key.slice(1),\n group:\n this.columnData.find(x => x.accessor === key)?.group ?? 'ungrouped',\n }));\n\n if (this.autoGenerateColumns) {\n this.parseColumnsArray(arrayColumnsConfig, this.parsedColumns);\n }\n }\n }\n\n private deepEqual(a: any, b: any): boolean {\n return JSON.stringify(a) === JSON.stringify(b);\n }\n\n /**\n * Parses the data array and sets the state accordingly\n * @param {any[]} newValue - The new value of the data array.\n * @param {any[]} oldValue - The old value of the data array.\n */\n private parseDataArray(newValue: any[], oldValue: any[]) {\n // Ensure both are arrays for proper comparison\n const safeNewValue = Array.isArray(newValue) ? newValue : [];\n const safeOldValue = Array.isArray(oldValue) ? oldValue : [];\n\n if (this.deepEqual(safeNewValue, safeOldValue)) {\n return; // Deep comparison\n }\n\n this.parsedData = Array.isArray(newValue) ? newValue : [];\n }\n\n /**\n * Parses the columns array and sets the state accordingly\n * @param {Column[]} newValue - The new value of the columns array.\n * @param {Column[]} oldValue - The old value of the columns array.\n */\n private parseColumnsArray(newValue: Column[], oldValue: Column[]) {\n // Ensure both are arrays for proper comparison\n const safeNewValue = Array.isArray(newValue) ? newValue : [];\n const safeOldValue = Array.isArray(oldValue) ? oldValue : [];\n\n // Use a proper deep comparison function (e.g., Lodash's isEqual)\n if (this.deepEqual(safeNewValue, safeOldValue)) {\n return;\n }\n\n // Assign only after confirming changes\n this.parsedColumns = safeNewValue;\n }\n\n private initializeTable(): void {\n // Clear the previous table instance (if any)\n this.table = null;\n\n console.info('initializeTable this.columnData:', this.columnData);\n\n // Set default options for the table\n const tableOptions: TableOptionsResolved<any> = {\n columns: [],\n data: [],\n getCoreRowModel: getCoreRowModel(),\n debugAll: true,\n onStateChange: state => console.log('Table state changed:', state), // eslint-disable-line nova/no-console\n renderFallbackValue: 'No rows to display',\n state: {\n sorting: [], // Default: no active sorting\n columnVisibility: {}, // Default: all columns visible\n columnFilters: [], // Default: no column filters\n columnPinning: {}, // Default: no column pinning\n columnSizing: {}, // Default: no column sizing\n columnOrder: [], // Default: as defined in the `columns`\n pagination: null, // Default: no pagination\n grouping: [], // Default: no active grouping\n expanded: {}, // Default: no expanded rows\n rowPinning: {}, // Default: no row pinning\n rowSelection: {}, // Default: no row selection\n globalFilter: null, // Default: no global filter\n columnSizingInfo: {\n columnSizingStart: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n }, // Default: no column sizing info\n },\n };\n\n if (this.parsedColumns.length > 0) {\n // Validate and generate column definitions\n const validColumns = this.parsedColumns.filter(\n column => column?.accessor,\n );\n\n // Update tableOptions based on parsed data and columns\n const hasColumns =\n validColumns && Array.isArray(validColumns) && validColumns.length > 0;\n const hasData =\n this.parsedData &&\n Array.isArray(this.parsedData) &&\n this.parsedData.length > 0;\n\n if (!hasColumns && !hasData) {\n // No columns and no data\n } else if (hasColumns && !hasData) {\n // Has columns but no data\n tableOptions.columns = this.generateColumns(validColumns, tableOptions);\n } else {\n // Both columns and data are available\n tableOptions.data = this.getTableData();\n tableOptions.columns = this.generateColumns(validColumns, tableOptions);\n }\n } else {\n // No parsed columns and data is available\n const hasData =\n this.parsedData &&\n Array.isArray(this.parsedData) &&\n this.parsedData.length > 0;\n\n if (hasData) {\n // No parsed columns and data is available\n const firstRow = this.parsedData[0];\n const arrayColumnsConfig = Object.keys(firstRow).map<Column>(key => ({\n accessor: key,\n header: key.charAt(0).toUpperCase() + key.slice(1),\n group:\n this.columnData.find(x => x.accessor === key)?.group ?? 'ungrouped',\n }));\n\n if (this.autoGenerateColumns) {\n this.parseColumnsArray(arrayColumnsConfig, this.parsedColumns);\n }\n\n tableOptions.data = this.getTableData();\n tableOptions.columns = this.generateColumns(\n arrayColumnsConfig,\n tableOptions,\n );\n }\n }\n\n if (this.enableGlobalFilter) {\n tableOptions.getFilteredRowModel = getFilteredRowModel();\n\n const globalFilter = this.globalFilterSearchTerm;\n\n // Set the initial global filter value\n tableOptions.state.globalFilter = globalFilter;\n\n // Define the callback for global filter changes\n tableOptions.onGlobalFilterChange = updater => {\n const newFilter =\n typeof updater === 'function'\n ? updater(this.globalFilterSearchTerm)\n : updater;\n this.globalFilterSearchTerm = newFilter; // Will automatically trigger the searchTerm watcher and update the table\n };\n\n tableOptions.globalFilterFn = this.globalFilterFn;\n }\n\n if (this.enablePagination) {\n tableOptions.getPaginationRowModel = getPaginationRowModel();\n\n const pageIndex = this.paginationState?.pageIndex ?? 0;\n let effectivePageSize = this.paginationState?.pageSize ?? 10;\n\n if (!this.pageSizes.includes(effectivePageSize) && this.pageSizes) {\n effectivePageSize = this.pageSizes[0];\n }\n\n const pagination: PaginationState = {\n pageIndex: pageIndex,\n pageSize: effectivePageSize,\n };\n\n // Set the initial pagination value with safeguards\n tableOptions.state.pagination = pagination;\n\n tableOptions.onPaginationChange = updater => {\n const newPagination =\n typeof updater === 'function'\n ? updater(this.paginationState)\n : updater;\n\n this.paginationState = newPagination;\n };\n }\n\n if (this.enableSorting) {\n tableOptions.getSortedRowModel = getSortedRowModel();\n\n tableOptions.enableSorting = this.enableSorting;\n\n tableOptions.state.sorting = this.sortingState;\n\n tableOptions.onSortingChange = updater => {\n const newSorting =\n typeof updater === 'function' ? updater(this.sortingState) : updater;\n this.sortingState = newSorting; // Will automatically trigger the searchTerm watcher and update the table\n };\n }\n\n if (this.enableRowSelection) {\n tableOptions.state.rowSelection = this.rowSelectionState;\n\n tableOptions.onRowSelectionChange = updater => {\n const newRowSelectionState =\n typeof updater === 'function'\n ? updater(this.rowSelectionState)\n : updater;\n\n this.rowSelectionState = newRowSelectionState;\n\n // Emit the original rows instead of IDs\n const selectedRows = Object.keys(newRowSelectionState)\n .filter(rowId => newRowSelectionState[rowId])\n .map(rowId => {\n // Assuming rowId corresponds to the index in parsedData\n const index = parseInt(rowId, 10); // Convert rowId to an integer index\n return this.parsedData[index]; // Get the original row data\n });\n\n this.selectedRows.emit(selectedRows); // Emit the original rows\n };\n }\n\n // Initialize the table\n this.table = createTable(tableOptions);\n }\n\n /**\n * Global filter function for the table.\n * This function checks if the specified filter value is present in any of the row's original values,\n * including nested objects and arrays. It is used to filter the rows based on the global filter value,\n * allowing for case-insensitive matching.\n *\n * @param {Row<any>} row - The row object containing the data to be filtered.\n * @param {string} _columnId - The ID of the column being filtered (not used in this function).\n * @param {string} filterValue - The value to filter the rows by. This value is checked against the row's data.\n * @returns {boolean} - Returns true if the row should be included in the filtered results, false otherwise.\n * If the filter value is empty, all rows are included.\n */\n private globalFilterFn(\n row: Row<any>,\n _columnId: string,\n filterValue: string,\n ) {\n const safeFilterValue = String(filterValue).toLowerCase().trim();\n\n // If no filter value, return true for all rows\n if (!safeFilterValue) return true;\n\n // More robust filtering across all columns\n const checkValue = (value: any): boolean => {\n if (typeof value === 'object' && value !== null) {\n // If it's an array, check each item\n if (Array.isArray(value)) {\n return value.some(item => checkValue(item));\n }\n // If it's an object, check each property\n return Object.values(value).some(val => checkValue(val));\n }\n return String(value).toLowerCase().includes(safeFilterValue);\n };\n\n return checkValue(row.original);\n }\n\n private createIconSpan(checked: boolean, indeterminate: boolean) {\n const span = document.createElement('span');\n span.className = 'icon';\n\n if (checked && !indeterminate) {\n const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svg.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n svg.setAttribute('width', '14');\n svg.setAttribute('height', '14');\n svg.setAttribute('viewBox', '0 0 14 14');\n svg.setAttribute('fill', 'none');\n\n const path = document.createElementNS(\n 'http://www.w3.org/2000/svg',\n 'path',\n );\n path.setAttribute('d', 'M11.6667 3.5L5.25004 9.91667L2.33337 7');\n path.setAttribute('stroke-linecap', 'round');\n path.setAttribute('stroke-linejoin', 'round');\n\n svg.appendChild(path);\n span.appendChild(svg);\n }\n\n if (indeterminate) {\n const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svg.classList.add('indeterminate-svg');\n svg.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n svg.setAttribute('viewBox', '0 0 14 14');\n svg.setAttribute('fill', 'none');\n\n const path = document.createElementNS(\n 'http://www.w3.org/2000/svg',\n 'path',\n );\n path.setAttribute('d', 'M2.9165 7H11.0832');\n path.setAttribute('stroke-linecap', 'round');\n path.setAttribute('stroke-linejoin', 'round');\n\n svg.appendChild(path);\n span.appendChild(svg);\n }\n\n return span;\n }\n\n private createIndeterminateCheckbox(\n options: IndeterminateCheckboxOptions = {},\n ): HTMLElement {\n const {\n indeterminate,\n checked = false,\n disabled = false,\n className = '',\n onChange,\n } = options;\n\n const input = document.createElement('input');\n input.type = 'checkbox';\n input.checked = checked;\n input.disabled = disabled;\n input.className = `${className} cursor-pointer`.trim();\n\n if (typeof indeterminate === 'boolean') {\n input.indeterminate = !checked && indeterminate;\n }\n\n if (onChange) {\n input.addEventListener('change', onChange);\n }\n\n const iconSpan = this.createIconSpan(checked, indeterminate);\n\n const container = document.createElement('div');\n container.className = 'checkbox-container';\n container.appendChild(input);\n container.appendChild(iconSpan);\n\n return container;\n }\n\n // Helper function to generate column definitions\n private generateColumns(\n validColumns: Column[],\n tableOptions: TableOptionsResolved<any>,\n ): any[] {\n console.info('generateColumns this.columnData:', this.columnData);\n console.info('generateColumns validColumns:', validColumns);\n let processedColumns: Column[] = validColumns || [];\n const columnHelper = createColumnHelper<any>();\n\n // If no columns provided or autoGenerateColumns is true, generate them from data\n if (\n (!validColumns && tableOptions.data && tableOptions.data.length > 0) ||\n (validColumns.length <= 0 &&\n tableOptions.data &&\n tableOptions.data.length > 0)\n ) {\n const sampleRow = tableOptions.data[0];\n processedColumns = Object.keys(sampleRow as object).map(key => ({\n header: key.charAt(0).toUpperCase() + key.slice(1),\n accessor: key,\n group:\n this.columnData.find(x => x.accessor === key)?.group ?? 'ungrouped',\n headerSlot: null,\n cellSlot: null,\n }));\n }\n\n // Group columns by their group property\n const groupedColumns = processedColumns.reduce((acc, column) => {\n let group = column.group || 'ungrouped';\n\n if (group == 'ungrouped') {\n group = group + processedColumns.findIndex(x => x == column);\n }\n\n if (!acc[group]) {\n acc[group] = [];\n }\n acc[group].push(column);\n return acc;\n }, {} as Record<string, Column[]>);\n\n // Transform each column into a ColumnDef\n const createColumnDef = (column: Column) => {\n return columnHelper.accessor(column.accessor as any, {\n header:\n this.renderTemplate(\n this.headerTemplateCache.get(column.accessor),\n column.header ?? column.accessor,\n null,\n ) ??\n column.header ??\n column.accessor,\n cell: (info: any) => {\n const value = info.getValue();\n const row = info.row;\n\n return this.columnData.find(x => x.accessor === column.accessor)\n ?.repeatTemplate && Array.isArray(value)\n ? value.map(\n (item: any) =>\n this.renderTemplate(\n this.templateCache.get(column.accessor),\n item,\n row,\n ) ??\n item ??\n value ??\n this.fallbackValue,\n )\n : this.renderTemplate(\n this.templateCache.get(column.accessor),\n value,\n row,\n ) ??\n value ??\n this.fallbackValue;\n },\n sortUndefined: 'last',\n sortDescFirst: false,\n enableSorting: this.enableSorting, // Explicitly set enableSorting based on the sorting prop\n enableGlobalFilter: this.enableGlobalFilter, // Explicity set enableGlobalFilter based on the globalFiltering prop\n });\n };\n\n // Create the final column structure\n let generatedColumns = Object.entries(groupedColumns)\n .map(([groupName, groupColumns]) => {\n if (groupName.includes('ungrouped')) {\n return groupColumns.map(createColumnDef);\n }\n\n return {\n id: groupName,\n header: groupName,\n columns: groupColumns.map(createColumnDef),\n enableSorting: this.enableSorting, // Also apply to column groups\n enableGlobalFilter: this.enableGlobalFilter, // Also apply to column groups\n } as ColumnDef<any, any>;\n })\n .flat();\n\n if (this.enableRowSelection) {\n const rowSelection = columnHelper.accessor('select', {\n header: ({ table }) => {\n return (\n <div\n class=\"flex px-1\"\n ref={el => {\n const checkbox = this.createIndeterminateCheckbox({\n checked: table?.getIsAllRowsSelected(),\n indeterminate: table?.getIsSomeRowsSelected(),\n onChange: table?.getToggleAllRowsSelectedHandler(),\n });\n\n if (el) {\n el.innerHTML = ''; // Remove existing content\n el.appendChild(checkbox); // Append new checkbox\n }\n }}\n />\n );\n },\n cell: ({ row }) => {\n return (\n <div\n class=\"flex px-1\"\n ref={el => {\n const checkbox = this.createIndeterminateCheckbox({\n checked: row?.getIsSelected(),\n disabled: !row?.getCanSelect(),\n indeterminate: row?.getIsSomeSelected(),\n onChange: row?.getToggleSelectedHandler(),\n });\n\n if (el) {\n el.innerHTML = ''; // Remove existing content\n el.appendChild(checkbox); // Append new checkbox\n }\n }}\n />\n );\n },\n enableGlobalFilter: false,\n enableSorting: false,\n });\n\n generatedColumns = [rowSelection, ...generatedColumns];\n }\n\n return generatedColumns;\n }\n\n private getTableData(): any[] {\n if (\n this.parsedData &&\n Array.isArray(this.parsedData) &&\n this.parsedData.length > 0\n ) {\n return [...this.parsedData];\n } else {\n return [];\n }\n }\n\n private renderTemplate(\n template: Element | undefined,\n cellValue: any,\n row?: Row<any>,\n ) {\n if (!template) {\n return null;\n }\n\n // Handle <template> elements correctly\n const templateContent =\n template instanceof HTMLTemplateElement ? template.content : template;\n const element = deepCopyElement(templateContent as HTMLElement);\n\n // Replace placeholders in text content, attributes, and properties\n element.querySelectorAll('*').forEach(el => {\n // Replace placeholders in text content\n this.replacePlaceholdersTextContent(el, cellValue, row);\n\n // Replace placeholders in attributes\n this.replacePlaceholdersAttributes(el, cellValue, row);\n\n // Replace placeholders in properties\n this.replacePlaceholdersProperties(el, cellValue, row);\n });\n\n // Handle `data-bind-event`\n element.querySelectorAll('[data-bind-event]').forEach(el => {\n const bindEvent = el.getAttribute('data-bind-event') || '';\n const splitted = bindEvent.split(':');\n\n if (!bindEvent.includes(':') || splitted.length < 2) {\n console.warn('Invalid data-bind-event format:', bindEvent);\n return;\n }\n\n const eventType = splitted[0];\n const keyAction = splitted[1];\n const details = splitted.length > 2 ? splitted[2] : null;\n\n el.addEventListener(eventType, () => {\n const keys = details?.split(',') ?? [];\n\n // Convert keys into a single object instead of an array of objects\n const keyValue = keys.reduce((acc, key) => {\n if (row?.original) {\n if (key in row.original) {\n acc[key] = row.original?.[key];\n }\n }\n return acc;\n }, {} as Record<string, any>);\n\n const action = { keyAction, details: keyValue };\n\n this.action.emit(action);\n });\n });\n\n // Ensure Web Components are properly connected\n setTimeout(() => {\n element.querySelectorAll('*').forEach(child => {\n if (typeof (child as any).connectedCallback === 'function') {\n (child as any).connectedCallback();\n }\n });\n }, 0);\n\n return (\n <div\n ref={el => {\n if (el) {\n el.innerHTML = ''; // Remove existing content\n el.appendChild(element); // Append new element\n }\n }}\n ></div>\n );\n }\n\n private replaceKeyWithValue(key: string, cellValue: any): string {\n // Handle undefined or null values by returning the fallback\n if (cellValue === undefined || cellValue === null) {\n return this.fallbackValue;\n }\n\n // If cellValue is an object, attempt to retrieve the value\n if (typeof cellValue === 'object') {\n // Handle nested key paths (e.g., \"user.name\")\n if (key.includes('.')) {\n const resolvedValue = key.split('.').reduce((acc, keyPart) => {\n if (acc && acc[keyPart] !== undefined) {\n return acc[keyPart];\n } else {\n return undefined;\n }\n }, cellValue);\n\n if (resolvedValue !== undefined) {\n return String(resolvedValue);\n } else {\n const firstLevelKey = key.split('.')[0];\n const rest = key.substring(firstLevelKey.length + 1);\n\n const response = this.replaceKeyWithValue(rest, cellValue);\n\n if (response !== this.fallbackValue) {\n return response;\n }\n }\n }\n\n // Handle single-level key lookup\n if (key in cellValue) {\n return String(cellValue[key]);\n } else if (Array.isArray(cellValue)) {\n // Handle array of objects\n const response = cellValue.map((item: any) => {\n if (typeof item !== 'object') {\n return item.toString();\n } else if (key in item) {\n return item[key];\n } else {\n return item.toString();\n }\n });\n\n return response.join(', ');\n }\n\n return this.fallbackValue;\n }\n\n // If cellValue is a primitive (string, number, boolean, etc.), return it as a string\n return cellValue?.toString() ?? this.fallbackValue;\n }\n\n private replacePlaceholdersTextContent(\n element: Element,\n cellValue: any,\n row: Row<any>,\n ) {\n if (!cellValue) {\n // ✅ Replace placeholders in text content with the row original value\n // but first get the original value\n const originalValue = row.original;\n\n element.childNodes.forEach(node => {\n if (node.nodeType === Node.TEXT_NODE) {\n node.textContent = node.textContent.replace(\n /__([\\w.]+)__/g,\n (_, key) => {\n if (key in originalValue) {\n return this.replaceKeyWithValue(key, originalValue[key]);\n } else {\n console.warn(`Key ${key} not found in originalValue`);\n return '';\n }\n },\n );\n }\n });\n } else {\n // ✅ Replace placeholders in text content\n element.childNodes.forEach(node => {\n if (node.nodeType === Node.TEXT_NODE) {\n node.textContent = node.textContent.replace(\n /__([\\w.]+)__/g,\n (_, key) => this.replaceKeyWithValue(key, cellValue),\n );\n }\n });\n }\n }\n\n private replacePlaceholdersAttributes(\n element: Element,\n cellValue: any,\n row: Row<any>,\n ) {\n if (!cellValue) {\n // ✅ Replace placeholders in attributes with the row original value\n // but first get the original value\n const originalValue = row.original;\n\n Array.from(element.attributes).forEach(attr => {\n if (attr.value.includes('__')) {\n attr.value = attr.value.replace(/__([\\w.]+)__/g, (_, key) => {\n if (key in originalValue) {\n return this.replaceKeyWithValue(key, originalValue[key]);\n } else {\n console.warn(`Key ${key} not found in originalValue`);\n return '';\n }\n });\n }\n });\n } else {\n // ✅ Replace placeholders in attributes\n Array.from(element.attributes).forEach(attr => {\n if (attr.value.includes('__')) {\n attr.value = attr.value.replace(/__([\\w.]+)__/g, (_, key) =>\n this.replaceKeyWithValue(key, cellValue),\n );\n }\n });\n }\n }\n\n private replacePlaceholdersProperties(\n element: Element,\n cellValue: any,\n row: Row<any>,\n ) {\n if (!cellValue) {\n // ✅ Replace placeholders in properties with the row original value\n // but first get the original value\n const originalValue = row.original;\n\n // ✅ Dynamically extract relevant properties\n const properties = new Set<string>();\n\n // Collect only own enumerable properties\n Object.keys(originalValue).forEach(key => properties.add(key));\n\n // Collect inherited properties from prototypes (HTMLElement -> Element -> Node)\n let proto = Object.getPrototypeOf(originalValue);\n while (proto && proto !== HTMLElement.prototype) {\n Object.keys(proto).forEach(key => properties.add(key));\n proto = Object.getPrototypeOf(proto);\n }\n\n // ✅ Filter and copy only non-function properties and exclude irrelevant ones\n properties.forEach(prop => {\n if (\n typeof (element as any)[prop] !== 'function' && // Ignore methods\n !prop.startsWith('on') && // Ignore event listeners (onclick, oninput, etc.)\n !excludedProps.has(prop) // 🚨 Prevent text duplication and irrelevant props\n ) {\n const propValue = (element as any)[prop];\n\n if (typeof propValue === 'string' && propValue.includes('__')) {\n (element as any)[prop] = propValue.replace(\n /__([\\w.]+)__/g,\n (_, key) => {\n if (key in originalValue) {\n return this.replaceKeyWithValue(key, originalValue[key]);\n } else {\n console.warn(`Key ${key} not found in originalValue`);\n return '';\n }\n },\n );\n }\n }\n });\n } else {\n // ✅ Dynamically extract relevant properties\n const properties = new Set<string>();\n\n // Collect only own enumerable properties\n Object.keys(element).forEach(key => properties.add(key));\n\n // Collect inherited properties from prototypes (HTMLElement -> Element -> Node)\n let proto = Object.getPrototypeOf(element);\n while (proto && proto !== HTMLElement.prototype) {\n Object.keys(proto).forEach(key => properties.add(key));\n proto = Object.getPrototypeOf(proto);\n }\n\n // ✅ Filter and copy only non-function properties and exclude irrelevant ones\n properties.forEach(prop => {\n if (\n typeof (element as any)[prop] !== 'function' && // Ignore methods\n !prop.startsWith('on') && // Ignore event listeners (onclick, oninput, etc.)\n !excludedProps.has(prop) // 🚨 Prevent text duplication and irrelevant props\n ) {\n try {\n const propValue = element[prop];\n\n // ✅ Replace placeholders only if the value is a string\n if (typeof propValue === 'string' && propValue.includes('__')) {\n element[prop] = propValue.replace(/__([\\w.]+)__/g, (_, key) =>\n this.replaceKeyWithValue(key, cellValue),\n ) as any; // ✅ TypeScript safe\n }\n } catch (error) {\n console.warn(`Could not assign property ${prop}:`, error.message);\n }\n }\n });\n }\n }\n\n private readonly debouncedFilter = debounce((value: string) => {\n this.table?.setGlobalFilter(value);\n }, 300);\n\n /**\n * Handles global filtering on input event for the search input.\n * It debounces the input to prevent excessive filtering.\n * @param {Event} event - The input event.\n * @returns {void} - Nothing.\n */\n private readonly handleGlobalFilteringOnInput = (event: Event): void => {\n const target = event.target;\n\n if (target instanceof HTMLInputElement) {\n const value = target.value;\n\n // Update the globalFilter state\n this.debouncedFilter(value);\n }\n };\n\n private readonly flexRender = <TProps extends object>(\n comp: any,\n props: TProps,\n ) => {\n if (typeof comp === 'function') {\n return comp(props);\n }\n\n return comp;\n };\n\n private readonly handlePageIndexChange = (event: Event): void => {\n const target = event.target as HTMLInputElement;\n const page = target.value ? Number(target.value) - 1 : 0;\n\n // Simply use `setPageIndex` to update the page index directly\n this.paginationState = { ...this.paginationState, pageIndex: page }; // This triggers the paginationState watcher\n };\n\n private readonly handlePageSizeChange = (event: Event): void => {\n const target = event.target as HTMLSelectElement;\n let effectivePageSize = Number(target.value);\n\n if (!this.pageSizes.includes(effectivePageSize) && this.pageSizes) {\n effectivePageSize = this.pageSizes[0];\n }\n\n // Simply use `setPageSize` to update the page size directly\n this.paginationState = {\n ...this.paginationState,\n pageSize: effectivePageSize,\n }; // This triggers the paginationState watcher\n };\n\n private readonly handleSortingClick = (\n event: Event,\n header: Header<any, unknown>,\n ): void => {\n if (!header.column.getCanSort()) {\n return;\n }\n\n header.column.getToggleSortingHandler()?.(event);\n };\n\n private readonly getSortTitle = (\n header: Header<any, unknown>,\n ): string | undefined => {\n if (!header.column.getCanSort()) return;\n\n const nextOrder = header.column.getNextSortingOrder();\n\n switch (nextOrder) {\n case SortingPossibility.Asc:\n return 'Sort ascending';\n case SortingPossibility.Desc:\n return 'Sort descending';\n default:\n return 'Clear sort';\n }\n };\n\n private getArrowSorting(header: Header<any, unknown>) {\n if (!header.column.getCanSort()) return null;\n\n const sortState = header.column.getIsSorted() as string;\n\n if (sortState === SortingPossibility.Asc) {\n return (\n <div class=\"inline-flex align-middle\">\n <nv-icon name=\"arrow-up\"></nv-icon>\n </div>\n );\n }\n\n if (sortState === SortingPossibility.Desc) {\n return (\n <div class=\"inline-flex align-middle\">\n <nv-icon name=\"arrow-down\"></nv-icon>\n </div>\n );\n }\n\n return null;\n }\n\n private getHeaderCell(header: Header<any, unknown>) {\n const isSortable = header.column.getCanSort();\n const sortTitle = this.getSortTitle(header);\n const content = header.isPlaceholder\n ? null\n : header.column.columnDef.header\n ? this.flexRender(header.column.columnDef.header, header.getContext())\n : null; // Ensure content is not null\n const sortIcon = this.getArrowSorting(header);\n\n const handleClick = this.createSortingClickHandler(header);\n\n if (this.enableRowSelection) {\n return (\n <th key={header.id} colSpan={header.colSpan}>\n {content} {/* Directly render content to see if it appears */}\n </th>\n );\n }\n\n const returnHtml = (\n <th key={header.id} colSpan={header.colSpan}>\n <button\n type=\"button\"\n class={\n isSortable\n ? 'w-full text-left cursor-pointer select-none bg-transparent border-none p-0 m-0 focus:outline-none'\n : 'w-full text-left bg-transparent border-none p-0 m-0 cursor-default'\n }\n onClick={handleClick}\n title={sortTitle}\n >\n <span class=\"inline-flex items-center gap-1\">\n {content}\n {sortIcon}\n </span>\n </button>\n </th>\n );\n\n return returnHtml;\n }\n\n // 👇 Helper method to avoid arrow function in JSX\n private createSortingClickHandler(header: Header<any, unknown>) {\n return (e: MouseEvent) => {\n this.handleSortingClick(e, header);\n };\n }\n\n private getPagination() {\n return (\n this.enablePagination && (\n <div class=\"flex items-center gap-2\">\n <button\n class=\"border rounded p-1\"\n disabled={!this.table.getCanPreviousPage()}\n onClick={this.table.firstPage}\n >\n <<\n </button>\n <button\n class=\"border rounded p-1\"\n disabled={!this.table.getCanPreviousPage()}\n onClick={this.table.previousPage}\n >\n <\n </button>\n <button\n class=\"border rounded p-1\"\n disabled={!this.table.getCanNextPage()}\n onClick={this.table.nextPage}\n >\n >\n </button>\n <button\n class=\"border rounded p-1\"\n disabled={!this.table.getCanNextPage()}\n onClick={this.table.lastPage}\n >\n >>\n </button>\n\n <span class=\"flex items-center gap-1\">\n <div>Page</div>\n <strong>\n {this.table.getState().pagination.pageIndex + 1} of{' '}\n {this.table.getPageCount().toLocaleString()}\n </strong>\n </span>\n <span class=\"flex items-center gap-1\">\n | Go to page:{' '}\n <input\n type=\"number\"\n min={this.minPageIndex}\n max={this.table.getPageCount()}\n value={this.table.getState().pagination.pageIndex + 1}\n class=\"border p-1 rounded w-16\"\n aria-label=\"Go to page\"\n onInput={this.handlePageIndexChange}\n />\n </span>\n {this.pageSizes?.length > 0 && (\n <select\n aria-label=\"Rows per page\"\n onChange={this.handlePageSizeChange}\n >\n {this.pageSizes.map(pageSize => (\n <option\n value={String(pageSize)}\n selected={\n this.table.getState().pagination.pageSize === pageSize\n }\n >\n Show {pageSize}\n </option>\n ))}\n </select>\n )}\n </div>\n )\n );\n }\n\n //#endregion METHODS\n /****************************************************************************/\n //#region WATCHERS\n\n @Watch('columns')\n parseColumns(newValue: Column[], oldValue: Column[] = []) {\n this.parseColumnsArray(newValue, oldValue);\n }\n\n @Watch('data')\n parseData(newValue: any[], oldValue: any[] = []) {\n this.parseDataArray(newValue, oldValue);\n }\n\n @Watch('parsedColumns')\n @Watch('parsedData')\n handleParsedChange() {\n this.initializeTable();\n }\n\n @Watch('globalFilterSearchTerm')\n handleGlobalFilterSearchTerm(newValue: string) {\n if (!this.table) {\n console.warn('Table is not initialized yet.');\n return;\n }\n\n // Not working\n /*// Set the global filter for the table\n this.table.setGlobalFilter(newValue);*/\n\n // Manually update the globalFilter state\n this.table.options.state.globalFilter = newValue;\n }\n\n @Watch('paginationState')\n handlePaginationState(newValue: PaginationState, oldValue: PaginationState) {\n if (!this.table) {\n console.warn('Table is not initialized yet.');\n return;\n }\n\n // Only update if there is a meaningful change\n if (JSON.stringify(newValue) !== JSON.stringify(oldValue)) {\n // Not working\n /*// Set the pagination for the table\n this.table.setPagination(newValue);*/\n\n // Manually update the pagination state\n this.table.options.state.pagination = newValue;\n }\n }\n\n @Watch('sortingState')\n handleSortingState(newValue: SortingState) {\n if (!this.table) {\n console.warn('Table is not initialized yet.');\n return;\n }\n\n // Not working\n /*// Set the sorting for the table\n this.table.setSorting(newValue);*/\n\n // Manually update the sorting state\n this.table.options.state.sorting = newValue;\n }\n\n @Watch('pageSize')\n handlePageSize(newValue: number) {\n let effectivePageSize = newValue;\n if (!this.pageSizes.includes(effectivePageSize) && this.pageSizes) {\n effectivePageSize = this.pageSizes[0];\n }\n\n // Simply use `setPageSize` to update the page size directly\n this.paginationState = {\n ...this.paginationState,\n pageSize: effectivePageSize,\n }; // This triggers the paginationState watcher\n }\n\n @Watch('rowSelectionState')\n handleRowSelectionState(\n newValue: RowSelectionState,\n oldValue: RowSelectionState,\n ) {\n if (!this.table) {\n console.warn('Table is not initialized yet.');\n return;\n }\n\n // Only update if there is a meaningful change\n if (JSON.stringify(newValue) !== JSON.stringify(oldValue)) {\n // Not working\n /*// Set the rowSelection for the table\n this.table.setRowSelection(newValue);*/\n\n // Manually update the row selection state\n this.table.options.state.rowSelection = newValue;\n }\n }\n\n @Watch('state')\n handleStateChange(newValue: {\n /**\n * Global filter search term\n */\n globalFilterSearchTerm: string;\n /**\n * Pagination State\n */\n paginationState: {\n /**\n * Page Index\n */\n pageIndex: number;\n /**\n * Page Size\n */\n pageSize: number;\n };\n /**\n * Sorting the columns\n */\n sortingState: {\n /**\n * Descending\n */\n desc: boolean;\n /**\n * Column Id\n */\n id: string;\n }[];\n }) {\n if (newValue) {\n // Only update internal state if values are different to avoid loops\n if (this.globalFilterSearchTerm !== newValue.globalFilterSearchTerm) {\n this.globalFilterSearchTerm = newValue.globalFilterSearchTerm;\n }\n if (\n JSON.stringify(this.paginationState) !==\n JSON.stringify(newValue.paginationState)\n ) {\n this.paginationState = newValue.paginationState;\n }\n if (\n JSON.stringify(this.sortingState) !==\n JSON.stringify(newValue.sortingState)\n ) {\n this.sortingState = newValue.sortingState;\n }\n }\n }\n\n // Add watchers for internal state to emit changes\n @Watch('globalFilterSearchTerm')\n @Watch('paginationState')\n @Watch('sortingState')\n handleInternalStateChange() {\n // Only emit if the state has actually changed\n const newState = {\n globalFilterSearchTerm: this.globalFilterSearchTerm,\n paginationState: this.paginationState,\n sortingState: this.sortingState,\n };\n\n // Emit the new state and let the parent component update the prop\n this.stateChanged.emit(newState);\n }\n\n //#endregion WATCHERS\n /****************************************************************************/\n //#region LIFECYCLE\n\n componentWillLoad() {\n this.cacheTemplates();\n\n this.parseDataAndColumns();\n\n this.initializeTable();\n\n if (this.enablePagination) {\n // Ensure a valid page size\n let effectivePageSize = this.pageSize > 0 ? this.pageSize : 10;\n\n if (!this.pageSizes.includes(effectivePageSize) && this.pageSizes) {\n effectivePageSize = this.pageSizes[0];\n }\n\n this.paginationState = {\n pageIndex: Math.max(0, this.minPageIndex - 1),\n pageSize: effectivePageSize,\n };\n }\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emitted when an action is triggered on a cell.\n */\n @Event({ bubbles: false })\n action: EventEmitter<{\n /**\n * Key action to be performed\n */\n keyAction: string;\n\n /**\n * Details of the action to be performed\n */\n details: any;\n }>;\n\n /**\n * Emitted when the selection of the rows are changed.\n */\n @Event({ bubbles: false })\n // eslint-disable-next-line nova/event-inline-interfaces\n selectedRows: EventEmitter<any[]>;\n\n /**\n * Emitted when the state is changed\n * @bind state\n */\n @Event({ bubbles: false })\n // eslint-disable-next-line nova/event-inline-interfaces\n stateChanged: EventEmitter<{\n /**\n * Global filter search term\n */\n globalFilterSearchTerm: string;\n /**\n * Pagination State\n */\n paginationState: {\n /**\n * Page Index\n */\n pageIndex: number;\n /**\n * Page Size\n */\n pageSize: number;\n };\n /**\n * Sorting the columns\n */\n sortingState: {\n /**\n * Descending\n */\n desc: boolean;\n /**\n * Column Id\n */\n id: string;\n }[];\n }>;\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region RENDER\n\n render() {\n const headerGroups =\n !this.table || this.table === undefined || this.parsedColumns.length === 0\n ? []\n : this.table?.getHeaderGroups();\n\n const rows =\n !this.table || this.table === undefined || this.parsedData.length === 0\n ? []\n : this.table?.getRowModel()?.rows;\n\n return (\n <Host>\n <div class=\"hidden\">\n <slot></slot>\n </div>\n\n <slot name=\"before\"></slot>\n {this.enableGlobalFilter && this.table && (\n <div class={`search-container justify-${this.globalFilterPosition}`}>\n <nv-fieldtext\n value={this.globalFilterSearchTerm}\n onInput={this.handleGlobalFilteringOnInput}\n placeholder=\"Search all columns...\"\n />\n </div>\n )}\n\n {this.parsedColumns.length === 0 && this.parsedData.length === 0 ? (\n <div class=\"no-data\">{this.noColumnsNoDataMessage}</div>\n ) : (\n <div>\n <table>\n {this.parsedColumns.length > 0 && headerGroups.length > 0 && (\n <thead>\n {this.parsedColumns.length > 0 && headerGroups\n ? headerGroups?.map(headerGroup => (\n <tr key={headerGroup.id}>\n {headerGroup.headers.map(header => {\n return this.getHeaderCell(header);\n })}\n </tr>\n ))\n : null}\n </thead>\n )}\n <tbody>\n {!rows || rows.length === 0 || this.parsedData.length === 0 ? (\n <tr>\n <td\n colSpan={this.parsedColumns.length || 12}\n class=\"no-data\"\n >\n {this.noDataMessage}\n </td>\n </tr>\n ) : (\n rows.map(row => {\n const rowId = row.id;\n const visibleCells = row?.getVisibleCells();\n\n return (\n <tr key={rowId}>\n {visibleCells.map(cell => {\n return (\n <td key={cell.id} data-row-id={rowId}>\n {this.flexRender(\n cell.column.columnDef.cell,\n cell.getContext(),\n )}\n </td>\n );\n })}\n </tr>\n );\n })\n )}\n </tbody>\n {this.table && this.enableRowSelection ? (\n <tfoot>\n <tr>\n <td colSpan={20}>\n {this.enableRowSelection && this.table ? (\n <div>\n {this.rowSelectionState &&\n Object.keys(this.rowSelectionState).length > 0 ? (\n <span>\n {Object.keys(this.rowSelectionState).length} of{' '}\n {this.table.getPreFilteredRowModel()?.rows\n ?.length || 0}{' '}\n Total Rows Selected\n </span>\n ) : (\n <span>No rows selected</span>\n )}\n </div>\n ) : null}\n </td>\n </tr>\n </tfoot>\n ) : null}\n </table>\n {this.getPagination()}\n </div>\n )}\n\n <slot name=\"after\"></slot>\n </Host>\n );\n }\n\n //#endregion RENDER\n /****************************************************************************/\n}\n"]}
|