@nova-design-system/nova-webcomponents 3.15.0 → 3.17.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/{index-c56424e5.js → index-93d3b2f8.js} +9 -6
- package/dist/cjs/index-93d3b2f8.js.map +1 -0
- package/dist/cjs/index.cjs.js +6 -1
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/native.cjs.js +2 -2
- package/dist/cjs/nv-accordion-item.cjs.entry.js +2 -2
- package/dist/cjs/nv-accordion-item.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-accordion.cjs.entry.js +6 -6
- package/dist/cjs/nv-accordion.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-alert.cjs.entry.js +2 -2
- package/dist/cjs/nv-alert.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-avatar.cjs.entry.js +2 -2
- package/dist/cjs/nv-avatar.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-badge_2.cjs.entry.js +1 -1
- package/dist/cjs/nv-breadcrumb.cjs.entry.js +2 -2
- package/dist/cjs/nv-breadcrumb.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-breadcrumbs.cjs.entry.js +1 -1
- package/dist/cjs/nv-button.cjs.entry.js +3 -9
- package/dist/cjs/nv-button.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-buttongroup.cjs.entry.js +1 -1
- package/dist/cjs/nv-calendar.cjs.entry.js +1 -1
- package/dist/cjs/nv-col.cjs.entry.js +1 -1
- package/dist/cjs/nv-datagrid.cjs.entry.js +177 -10
- package/dist/cjs/nv-datagrid.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-datagridcolumn.cjs.entry.js +1 -1
- package/dist/cjs/nv-dialog.cjs.entry.js +32 -29
- package/dist/cjs/nv-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-dialogfooter_2.cjs.entry.js +2 -2
- package/dist/cjs/nv-dialogfooter_2.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldcheckbox.cjs.entry.js +2 -2
- package/dist/cjs/nv-fieldcheckbox.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fielddate.cjs.entry.js +51 -26
- package/dist/cjs/nv-fielddate.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fielddaterange.cjs.entry.js +68 -42
- package/dist/cjs/nv-fielddaterange.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fielddropdown.cjs.entry.js +33 -7
- package/dist/cjs/nv-fielddropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fielddropdownitem.cjs.entry.js +1 -1
- package/dist/cjs/nv-fieldmultiselect.cjs.entry.js +187 -156
- package/dist/cjs/nv-fieldmultiselect.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldnumber.cjs.entry.js +2 -2
- package/dist/cjs/nv-fieldnumber.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldpassword.cjs.entry.js +2 -2
- package/dist/cjs/nv-fieldpassword.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldradio.cjs.entry.js +2 -2
- package/dist/cjs/nv-fieldradio.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldselect.cjs.entry.js +2 -2
- package/dist/cjs/nv-fieldselect.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldslider.cjs.entry.js +2 -2
- package/dist/cjs/nv-fieldslider.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldtext.cjs.entry.js +2 -2
- package/dist/cjs/nv-fieldtext.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldtextarea.cjs.entry.js +2 -2
- package/dist/cjs/nv-fieldtextarea.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldtime.cjs.entry.js +25 -12
- package/dist/cjs/nv-fieldtime.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-icon.cjs.entry.js +2 -2
- package/dist/cjs/nv-icon.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-iconbutton_2.cjs.entry.js +2 -2
- package/dist/cjs/nv-iconbutton_2.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-menu.cjs.entry.js +24 -9
- package/dist/cjs/nv-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-menuitem.cjs.entry.js +1 -1
- package/dist/cjs/nv-notification.cjs.entry.js +2 -2
- package/dist/cjs/nv-notification.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-notificationcontainer.cjs.entry.js +1 -1
- package/dist/cjs/nv-popover.cjs.entry.js +67 -61
- package/dist/cjs/nv-popover.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-row.cjs.entry.js +1 -1
- package/dist/cjs/nv-split.cjs.entry.js +339 -0
- package/dist/cjs/nv-split.cjs.entry.js.map +1 -0
- package/dist/cjs/nv-stack.cjs.entry.js +2 -2
- package/dist/cjs/nv-table.cjs.entry.js +216 -310
- package/dist/cjs/nv-table.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-toggle.cjs.entry.js +2 -2
- package/dist/cjs/nv-toggle.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-togglebutton.cjs.entry.js +1 -1
- package/dist/cjs/nv-togglebuttongroup.cjs.entry.js +2 -2
- package/dist/cjs/nv-togglebuttongroup.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-tooltip.cjs.entry.js +1 -1
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/nv-accordion/nv-accordion.js +12 -9
- package/dist/collection/components/nv-accordion/nv-accordion.js.map +1 -1
- package/dist/collection/components/nv-accordion-item/nv-accordion-item.js.map +1 -1
- package/dist/collection/components/nv-accordion-item/styles/nv-accordion-item.css +1 -1
- package/dist/collection/components/nv-alert/nv-alert.css +1 -1
- package/dist/collection/components/nv-avatar/nv-avatar.css +1 -1
- package/dist/collection/components/nv-breadcrumb/nv-breadcrumb.css +1 -1
- package/dist/collection/components/nv-button/nv-button.js +1 -13
- package/dist/collection/components/nv-button/nv-button.js.map +1 -1
- package/dist/collection/components/nv-button/styles/nv-button.css +1 -1
- package/dist/collection/components/nv-datagrid/nv-datagrid.css +2 -2
- package/dist/collection/components/nv-dialog/nv-dialog.css +2 -2
- package/dist/collection/components/nv-dialog/nv-dialog.docs.js +13 -0
- package/dist/collection/components/nv-dialog/nv-dialog.docs.js.map +1 -1
- package/dist/collection/components/nv-dialog/nv-dialog.js +30 -27
- package/dist/collection/components/nv-dialog/nv-dialog.js.map +1 -1
- package/dist/collection/components/nv-dialogheader/nv-dialogheader.css +4 -4
- package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.css +3 -3
- package/dist/collection/components/nv-fielddate/nv-fielddate.js +49 -24
- package/dist/collection/components/nv-fielddate/nv-fielddate.js.map +1 -1
- package/dist/collection/components/nv-fielddate/styles/nv-fielddate.css +8 -8
- package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js +66 -43
- package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js.map +1 -1
- package/dist/collection/components/nv-fielddaterange/styles/nv-fielddaterange.css +8 -8
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.docs.js +26 -4
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.docs.js.map +1 -1
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js +32 -4
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js.map +1 -1
- package/dist/collection/components/nv-fielddropdown/styles/nv-fielddropdown.css +9 -9
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js +186 -153
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js.map +1 -1
- package/dist/collection/components/nv-fieldmultiselect/styles/nv-fieldmultiselect.css +9 -9
- package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.css +8 -8
- package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.css +8 -8
- package/dist/collection/components/nv-fieldradio/nv-fieldradio.css +3 -3
- package/dist/collection/components/nv-fieldselect/nv-fieldselect.css +12 -12
- package/dist/collection/components/nv-fieldslider/styles/nv-fieldslider.css +7 -7
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.css +8 -8
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.docs.js +9 -1
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.css +8 -8
- package/dist/collection/components/nv-fieldtime/nv-fieldtime.docs.js +22 -0
- package/dist/collection/components/nv-fieldtime/nv-fieldtime.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldtime/nv-fieldtime.js +24 -9
- package/dist/collection/components/nv-fieldtime/nv-fieldtime.js.map +1 -1
- package/dist/collection/components/nv-fieldtime/styles/nv-fieldtime.css +8 -8
- package/dist/collection/components/nv-icon/nv-icons.js +6 -1
- package/dist/collection/components/nv-icon/nv-icons.js.map +1 -1
- package/dist/collection/components/nv-iconbutton/nv-iconbutton.css +2 -2
- package/dist/collection/components/nv-menu/nv-menu.docs.js +7 -0
- package/dist/collection/components/nv-menu/nv-menu.docs.js.map +1 -1
- package/dist/collection/components/nv-menu/nv-menu.js +26 -8
- package/dist/collection/components/nv-menu/nv-menu.js.map +1 -1
- package/dist/collection/components/nv-menuitem/nv-menuitem.js +1 -1
- package/dist/collection/components/nv-notification/styles/nv-notification.css +2 -2
- package/dist/collection/components/nv-popover/nv-popover.docs.js +11 -0
- package/dist/collection/components/nv-popover/nv-popover.docs.js.map +1 -1
- package/dist/collection/components/nv-popover/nv-popover.js +66 -60
- package/dist/collection/components/nv-popover/nv-popover.js.map +1 -1
- package/dist/collection/components/nv-split/nv-split.docs.js +41 -0
- package/dist/collection/components/nv-split/nv-split.docs.js.map +1 -0
- package/dist/collection/components/nv-split/nv-split.js +549 -0
- package/dist/collection/components/nv-split/nv-split.js.map +1 -0
- package/dist/collection/components/nv-split/styles/nv-split.css +96 -0
- package/dist/collection/components/nv-stack/nv-stack.js +1 -1
- package/dist/collection/components/nv-table/nv-table.docs.js +16 -155
- package/dist/collection/components/nv-table/nv-table.docs.js.map +1 -1
- package/dist/collection/components/nv-table/nv-table.js +68 -496
- package/dist/collection/components/nv-table/nv-table.js.map +1 -1
- package/dist/collection/components/nv-table/nv-table.utils.js +175 -0
- package/dist/collection/components/nv-table/nv-table.utils.js.map +1 -0
- package/dist/collection/components/nv-table/styles/nv-table.css +84 -0
- package/dist/collection/components/nv-table/test/nv-table.utils.test.js +604 -0
- package/dist/collection/components/nv-table/test/nv-table.utils.test.js.map +1 -0
- package/dist/collection/components/nv-toggle/nv-toggle.css +3 -3
- package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.docs.js +1 -0
- package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.docs.js.map +1 -1
- package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.js +1 -3
- package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.js.map +1 -1
- package/dist/components/index.js +7 -2
- package/dist/components/index.js.map +1 -1
- package/dist/components/nv-accordion-item.js +1 -1
- package/dist/components/nv-accordion.js +10 -10
- package/dist/components/nv-accordion.js.map +1 -1
- package/dist/components/nv-alert.js +3 -3
- package/dist/components/nv-alert.js.map +1 -1
- package/dist/components/nv-avatar.js +3 -3
- package/dist/components/nv-avatar.js.map +1 -1
- package/dist/components/nv-badge.js +1 -1
- package/dist/components/nv-breadcrumb.js +4 -4
- package/dist/components/nv-breadcrumb.js.map +1 -1
- package/dist/components/nv-breadcrumbs.js +1 -1
- package/dist/components/nv-button.js +1 -1
- package/dist/components/nv-buttongroup.js +1 -1
- package/dist/components/nv-calendar.js +1 -1
- package/dist/components/nv-col.js +1 -1
- package/dist/components/nv-datagrid.js +174 -7
- package/dist/components/nv-datagrid.js.map +1 -1
- package/dist/components/nv-datagridcolumn.js +1 -1
- package/dist/components/nv-dialog.js +37 -34
- package/dist/components/nv-dialog.js.map +1 -1
- package/dist/components/nv-dialogfooter.js +1 -1
- package/dist/components/nv-dialogheader.js +1 -1
- package/dist/components/nv-fieldcheckbox.js +1 -1
- package/dist/components/nv-fielddate.js +57 -32
- package/dist/components/nv-fielddate.js.map +1 -1
- package/dist/components/nv-fielddaterange.js +74 -48
- package/dist/components/nv-fielddaterange.js.map +1 -1
- package/dist/components/nv-fielddropdown.js +40 -13
- 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 +196 -164
- package/dist/components/nv-fieldmultiselect.js.map +1 -1
- package/dist/components/nv-fieldnumber.js +1 -1
- package/dist/components/nv-fieldpassword.js +5 -5
- package/dist/components/nv-fieldpassword.js.map +1 -1
- package/dist/components/nv-fieldradio.js +2 -2
- package/dist/components/nv-fieldradio.js.map +1 -1
- package/dist/components/nv-fieldselect.js +5 -5
- package/dist/components/nv-fieldselect.js.map +1 -1
- package/dist/components/nv-fieldslider.js +6 -6
- package/dist/components/nv-fieldslider.js.map +1 -1
- package/dist/components/nv-fieldtext.js +1 -1
- package/dist/components/nv-fieldtextarea.js +2 -2
- package/dist/components/nv-fieldtextarea.js.map +1 -1
- package/dist/components/nv-fieldtime.js +31 -17
- 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 +30 -13
- package/dist/components/nv-menu.js.map +1 -1
- package/dist/components/nv-menuitem.js +1 -1
- package/dist/components/nv-notification.js +3 -3
- 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-tablecolumn.d.ts → nv-split.d.ts} +4 -4
- package/dist/components/nv-split.js +366 -0
- package/dist/components/nv-split.js.map +1 -0
- package/dist/components/nv-stack.js +2 -2
- package/dist/components/nv-table.js +216 -328
- package/dist/components/nv-table.js.map +1 -1
- package/dist/components/nv-toggle.js +2 -2
- package/dist/components/nv-toggle.js.map +1 -1
- package/dist/components/nv-togglebutton.js +1 -1
- package/dist/components/nv-togglebuttongroup.js +2 -2
- package/dist/components/nv-togglebuttongroup.js.map +1 -1
- package/dist/components/nv-tooltip.js +1 -1
- package/dist/components/{p-00cbf2a1.js → p-0d5ed1d7.js} +3 -3
- package/dist/components/p-0d5ed1d7.js.map +1 -0
- package/dist/components/{p-54161bad.js → p-0e6f41c7.js} +2 -2
- package/dist/components/{p-54161bad.js.map → p-0e6f41c7.js.map} +1 -1
- package/dist/components/{p-0c42fafb.js → p-0fd23531.js} +6 -6
- package/dist/components/{p-0c42fafb.js.map → p-0fd23531.js.map} +1 -1
- package/dist/components/{p-a823b8e9.js → p-1639703f.js} +2 -2
- package/dist/components/{p-a823b8e9.js.map → p-1639703f.js.map} +1 -1
- package/dist/components/{p-e5c62ea8.js → p-2cc83e0c.js} +3 -3
- package/dist/components/{p-e5c62ea8.js.map → p-2cc83e0c.js.map} +1 -1
- package/dist/components/{p-3763c9c4.js → p-31478080.js} +3 -3
- package/dist/components/{p-3763c9c4.js.map → p-31478080.js.map} +1 -1
- package/dist/components/{p-178fa27e.js → p-378e3127.js} +6 -6
- package/dist/components/{p-178fa27e.js.map → p-378e3127.js.map} +1 -1
- package/dist/components/{p-51876ca1.js → p-429e01f3.js} +3 -3
- package/dist/components/p-429e01f3.js.map +1 -0
- package/dist/components/p-47d499b4.js +88 -0
- package/dist/components/p-47d499b4.js.map +1 -0
- package/dist/components/{p-aff3ed68.js → p-5829b9f7.js} +5 -2
- package/dist/components/p-5829b9f7.js.map +1 -0
- package/dist/components/{p-ee8944f3.js → p-63595ea1.js} +68 -62
- package/dist/components/p-63595ea1.js.map +1 -0
- package/dist/components/{p-1af3591a.js → p-6f2b257e.js} +3 -3
- package/dist/components/{p-1af3591a.js.map → p-6f2b257e.js.map} +1 -1
- package/dist/components/{p-4fc01a78.js → p-7112612c.js} +5 -5
- package/dist/components/p-7112612c.js.map +1 -0
- package/dist/components/{p-7426b20f.js → p-715e5235.js} +3 -3
- package/dist/components/{p-7426b20f.js.map → p-715e5235.js.map} +1 -1
- package/dist/components/{p-31e262bd.js → p-7b5102c8.js} +5 -5
- package/dist/components/{p-31e262bd.js.map → p-7b5102c8.js.map} +1 -1
- package/dist/components/{p-fda58a76.js → p-98429fd7.js} +2 -2
- package/dist/components/{p-fda58a76.js.map → p-98429fd7.js.map} +1 -1
- package/dist/components/p-9e7468e3.js +185 -0
- package/dist/components/p-9e7468e3.js.map +1 -0
- package/dist/components/{p-75200cc0.js → p-df5d76a5.js} +3 -3
- package/dist/components/{p-75200cc0.js.map → p-df5d76a5.js.map} +1 -1
- package/dist/components/{p-51459a44.js → p-f2bac2aa.js} +4 -4
- package/dist/components/{p-51459a44.js.map → p-f2bac2aa.js.map} +1 -1
- package/dist/esm/{index-a1936cd0.js → index-dc2723f3.js} +9 -6
- package/dist/esm/index-dc2723f3.js.map +1 -0
- package/dist/esm/index.js +6 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/native.js +3 -3
- package/dist/esm/nv-accordion-item.entry.js +2 -2
- package/dist/esm/nv-accordion-item.entry.js.map +1 -1
- package/dist/esm/nv-accordion.entry.js +6 -6
- package/dist/esm/nv-accordion.entry.js.map +1 -1
- package/dist/esm/nv-alert.entry.js +2 -2
- package/dist/esm/nv-alert.entry.js.map +1 -1
- package/dist/esm/nv-avatar.entry.js +2 -2
- package/dist/esm/nv-avatar.entry.js.map +1 -1
- package/dist/esm/nv-badge_2.entry.js +1 -1
- package/dist/esm/nv-breadcrumb.entry.js +2 -2
- package/dist/esm/nv-breadcrumb.entry.js.map +1 -1
- package/dist/esm/nv-breadcrumbs.entry.js +1 -1
- package/dist/esm/nv-button.entry.js +3 -9
- package/dist/esm/nv-button.entry.js.map +1 -1
- package/dist/esm/nv-buttongroup.entry.js +1 -1
- package/dist/esm/nv-calendar.entry.js +1 -1
- package/dist/esm/nv-col.entry.js +1 -1
- package/dist/esm/nv-datagrid.entry.js +172 -5
- package/dist/esm/nv-datagrid.entry.js.map +1 -1
- package/dist/esm/nv-datagridcolumn.entry.js +1 -1
- package/dist/esm/nv-dialog.entry.js +32 -29
- package/dist/esm/nv-dialog.entry.js.map +1 -1
- package/dist/esm/nv-dialogfooter_2.entry.js +2 -2
- package/dist/esm/nv-dialogfooter_2.entry.js.map +1 -1
- package/dist/esm/nv-fieldcheckbox.entry.js +2 -2
- package/dist/esm/nv-fieldcheckbox.entry.js.map +1 -1
- package/dist/esm/nv-fielddate.entry.js +51 -26
- package/dist/esm/nv-fielddate.entry.js.map +1 -1
- package/dist/esm/nv-fielddaterange.entry.js +68 -42
- package/dist/esm/nv-fielddaterange.entry.js.map +1 -1
- package/dist/esm/nv-fielddropdown.entry.js +33 -7
- package/dist/esm/nv-fielddropdown.entry.js.map +1 -1
- package/dist/esm/nv-fielddropdownitem.entry.js +1 -1
- package/dist/esm/nv-fieldmultiselect.entry.js +187 -156
- package/dist/esm/nv-fieldmultiselect.entry.js.map +1 -1
- package/dist/esm/nv-fieldnumber.entry.js +2 -2
- package/dist/esm/nv-fieldnumber.entry.js.map +1 -1
- package/dist/esm/nv-fieldpassword.entry.js +2 -2
- package/dist/esm/nv-fieldpassword.entry.js.map +1 -1
- package/dist/esm/nv-fieldradio.entry.js +2 -2
- package/dist/esm/nv-fieldradio.entry.js.map +1 -1
- package/dist/esm/nv-fieldselect.entry.js +2 -2
- package/dist/esm/nv-fieldselect.entry.js.map +1 -1
- package/dist/esm/nv-fieldslider.entry.js +2 -2
- package/dist/esm/nv-fieldslider.entry.js.map +1 -1
- package/dist/esm/nv-fieldtext.entry.js +2 -2
- package/dist/esm/nv-fieldtext.entry.js.map +1 -1
- package/dist/esm/nv-fieldtextarea.entry.js +2 -2
- package/dist/esm/nv-fieldtextarea.entry.js.map +1 -1
- package/dist/esm/nv-fieldtime.entry.js +25 -12
- 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_2.entry.js +2 -2
- package/dist/esm/nv-iconbutton_2.entry.js.map +1 -1
- package/dist/esm/nv-menu.entry.js +24 -9
- package/dist/esm/nv-menu.entry.js.map +1 -1
- package/dist/esm/nv-menuitem.entry.js +1 -1
- package/dist/esm/nv-notification.entry.js +2 -2
- 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 +67 -61
- package/dist/esm/nv-popover.entry.js.map +1 -1
- package/dist/esm/nv-row.entry.js +1 -1
- package/dist/esm/nv-split.entry.js +335 -0
- package/dist/esm/nv-split.entry.js.map +1 -0
- package/dist/esm/nv-stack.entry.js +2 -2
- package/dist/esm/nv-table.entry.js +216 -310
- package/dist/esm/nv-table.entry.js.map +1 -1
- package/dist/esm/nv-toggle.entry.js +2 -2
- package/dist/esm/nv-toggle.entry.js.map +1 -1
- package/dist/esm/nv-togglebutton.entry.js +1 -1
- package/dist/esm/nv-togglebuttongroup.entry.js +2 -2
- package/dist/esm/nv-togglebuttongroup.entry.js.map +1 -1
- package/dist/esm/nv-tooltip.entry.js +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/native.esm.js.map +1 -1
- package/dist/native/p-107e80c6.entry.js +2 -0
- package/dist/native/p-107e80c6.entry.js.map +1 -0
- package/dist/native/{p-5c697133.entry.js → p-112d096c.entry.js} +2 -2
- package/dist/native/p-14e622e1.entry.js +2 -0
- package/dist/native/p-14e622e1.entry.js.map +1 -0
- package/dist/native/p-217de553.entry.js +2 -0
- package/dist/native/p-217de553.entry.js.map +1 -0
- package/dist/native/{p-85f8f11a.entry.js → p-230af58a.entry.js} +2 -2
- package/dist/native/p-2364aefa.entry.js +2 -0
- package/dist/native/p-2364aefa.entry.js.map +1 -0
- package/dist/native/p-23ee0384.entry.js +2 -0
- package/dist/native/{p-29f68e07.entry.js.map → p-23ee0384.entry.js.map} +1 -1
- package/dist/native/p-26513cbd.entry.js +2 -0
- package/dist/native/p-26513cbd.entry.js.map +1 -0
- package/dist/native/p-278613a3.entry.js +2 -0
- package/dist/native/{p-6cb6679b.entry.js.map → p-278613a3.entry.js.map} +1 -1
- package/dist/native/p-2dfd786f.entry.js +2 -0
- package/dist/native/{p-29df974e.entry.js.map → p-2dfd786f.entry.js.map} +1 -1
- package/dist/native/{p-d0a33e64.js → p-3060df80.js} +3 -3
- package/dist/native/p-3060df80.js.map +1 -0
- package/dist/native/p-4dc7483d.entry.js +2 -0
- package/dist/native/{p-c7b7ffaf.entry.js.map → p-4dc7483d.entry.js.map} +1 -1
- package/dist/native/p-4eaf417d.entry.js +13 -0
- package/dist/native/p-4eaf417d.entry.js.map +1 -0
- package/dist/native/p-5039ceb8.entry.js +2 -0
- package/dist/native/p-5039ceb8.entry.js.map +1 -0
- package/dist/native/{p-08322093.entry.js → p-52d2c0ae.entry.js} +2 -2
- package/dist/native/p-638967bf.entry.js +2 -0
- package/dist/native/p-638967bf.entry.js.map +1 -0
- package/dist/native/{p-19090193.entry.js → p-647a0765.entry.js} +2 -2
- package/dist/native/p-68dc02be.entry.js +2 -0
- package/dist/native/p-68dc02be.entry.js.map +1 -0
- package/dist/native/p-6d427897.entry.js +2 -0
- package/dist/native/{p-92931ab8.entry.js.map → p-6d427897.entry.js.map} +1 -1
- package/dist/native/{p-1504e28b.entry.js → p-701b48a4.entry.js} +2 -2
- package/dist/native/p-7c9bf981.entry.js +2 -0
- package/dist/native/p-835abdb9.entry.js +2 -0
- package/dist/native/{p-f5120223.entry.js.map → p-835abdb9.entry.js.map} +1 -1
- package/dist/native/{p-464bb197.entry.js → p-83765537.entry.js} +2 -2
- package/dist/native/p-88f9fca5.entry.js +2 -0
- package/dist/native/p-88f9fca5.entry.js.map +1 -0
- package/dist/native/{p-d2c9247b.entry.js → p-8e423742.entry.js} +3 -3
- package/dist/native/{p-d2c9247b.entry.js.map → p-8e423742.entry.js.map} +1 -1
- package/dist/native/{p-d882f417.entry.js → p-91fab6c2.entry.js} +2 -2
- package/dist/native/p-91fab6c2.entry.js.map +1 -0
- package/dist/native/p-95184ea2.entry.js +2 -0
- package/dist/native/p-95184ea2.entry.js.map +1 -0
- package/dist/native/p-9613087c.entry.js +2 -0
- package/dist/native/{p-2781637d.entry.js.map → p-9613087c.entry.js.map} +1 -1
- package/dist/native/{p-94dc9c41.entry.js → p-9d7e099f.entry.js} +2 -2
- package/dist/native/p-a6fc987a.entry.js +2 -0
- package/dist/native/p-a6fc987a.entry.js.map +1 -0
- package/dist/native/{p-1235c007.entry.js → p-acabac31.entry.js} +2 -2
- package/dist/native/p-acada158.entry.js +2 -0
- package/dist/native/p-acada158.entry.js.map +1 -0
- package/dist/native/p-b06f0e61.entry.js +2 -0
- package/dist/native/p-b06f0e61.entry.js.map +1 -0
- package/dist/native/p-b4c15f25.entry.js +2 -0
- package/dist/native/p-b4c15f25.entry.js.map +1 -0
- package/dist/native/{p-74b129e9.entry.js → p-bcf41cd0.entry.js} +2 -2
- package/dist/native/{p-c66565f8.entry.js → p-cb0293ec.entry.js} +2 -2
- package/dist/native/p-ce97ce24.entry.js +2 -0
- package/dist/native/p-ce97ce24.entry.js.map +1 -0
- package/dist/native/p-d0db5e72.entry.js +2 -0
- package/dist/native/p-d0db5e72.entry.js.map +1 -0
- package/dist/native/p-d7f444fb.entry.js +2 -0
- package/dist/native/p-d7f444fb.entry.js.map +1 -0
- package/dist/native/p-d878e90a.entry.js +2 -0
- package/dist/native/p-d878e90a.entry.js.map +1 -0
- package/dist/native/{p-e2c99ce2.entry.js → p-d94bf052.entry.js} +2 -2
- package/dist/native/p-ddc41f1f.entry.js +2 -0
- package/dist/native/p-ddc41f1f.entry.js.map +1 -0
- package/dist/native/p-f30e0be6.entry.js +2 -0
- package/dist/native/p-f30e0be6.entry.js.map +1 -0
- package/dist/native/p-f3c73492.entry.js +2 -0
- package/dist/native/{p-b32d0a5a.entry.js.map → p-f3c73492.entry.js.map} +1 -1
- package/dist/native/{p-9c5d6827.entry.js → p-fa78d8eb.entry.js} +2 -2
- package/dist/types/components/nv-accordion/nv-accordion.d.ts +2 -4
- package/dist/types/components/nv-button/nv-button.d.ts +0 -1
- package/dist/types/components/nv-dialog/nv-dialog.d.ts +9 -8
- package/dist/types/components/nv-fielddate/nv-fielddate.d.ts +6 -3
- package/dist/types/components/nv-fielddaterange/nv-fielddaterange.d.ts +5 -4
- package/dist/types/components/nv-fielddropdown/nv-fielddropdown.d.ts +3 -1
- package/dist/types/components/nv-fieldmultiselect/nv-fieldmultiselect.d.ts +12 -11
- package/dist/types/components/nv-fieldtime/nv-fieldtime.d.ts +1 -0
- package/dist/types/components/nv-icon/nv-icons.d.ts +1 -1
- package/dist/types/components/nv-menu/nv-menu.d.ts +4 -1
- package/dist/types/components/nv-popover/nv-popover.d.ts +10 -8
- package/dist/types/components/nv-split/nv-split.d.ts +128 -0
- package/dist/types/components/nv-split/nv-split.docs.d.ts +4 -0
- package/dist/types/components/nv-table/nv-table.d.ts +6 -87
- package/dist/types/components/nv-table/nv-table.utils.d.ts +129 -0
- package/dist/types/components/nv-table/test/nv-table.utils.test.d.ts +1 -0
- package/dist/types/components/nv-togglebuttongroup/nv-togglebuttongroup.d.ts +0 -2
- package/dist/types/components.d.ts +102 -200
- package/dist/vscode-data.json +43 -41
- package/hydrate/index.js +1148 -783
- package/hydrate/index.mjs +1148 -783
- package/package.json +10 -10
- package/dist/cjs/dom.utils-4d43f69a.js +0 -170
- package/dist/cjs/dom.utils-4d43f69a.js.map +0 -1
- package/dist/cjs/index-c56424e5.js.map +0 -1
- package/dist/cjs/nv-tablecolumn.cjs.entry.js +0 -21
- package/dist/cjs/nv-tablecolumn.cjs.entry.js.map +0 -1
- package/dist/collection/components/nv-table/nv-table.css +0 -35
- package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.docs.js +0 -6
- package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.docs.js.map +0 -1
- package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.js +0 -52
- package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.js.map +0 -1
- package/dist/components/nv-tablecolumn.js +0 -38
- package/dist/components/nv-tablecolumn.js.map +0 -1
- package/dist/components/p-00cbf2a1.js.map +0 -1
- package/dist/components/p-4fc01a78.js.map +0 -1
- package/dist/components/p-51876ca1.js.map +0 -1
- package/dist/components/p-5d14ba3f.js +0 -88
- package/dist/components/p-5d14ba3f.js.map +0 -1
- package/dist/components/p-95857e4f.js +0 -191
- package/dist/components/p-95857e4f.js.map +0 -1
- package/dist/components/p-aff3ed68.js.map +0 -1
- package/dist/components/p-cb34aa4f.js +0 -167
- package/dist/components/p-cb34aa4f.js.map +0 -1
- package/dist/components/p-ee8944f3.js.map +0 -1
- package/dist/esm/dom.utils-ac71e0ef.js +0 -167
- package/dist/esm/dom.utils-ac71e0ef.js.map +0 -1
- package/dist/esm/index-a1936cd0.js.map +0 -1
- package/dist/esm/nv-tablecolumn.entry.js +0 -17
- package/dist/esm/nv-tablecolumn.entry.js.map +0 -1
- package/dist/native/p-0a99c6fb.entry.js +0 -2
- package/dist/native/p-0a99c6fb.entry.js.map +0 -1
- package/dist/native/p-1ad1bff9.entry.js +0 -2
- package/dist/native/p-1ad1bff9.entry.js.map +0 -1
- package/dist/native/p-1c83f540.entry.js +0 -2
- package/dist/native/p-1c83f540.entry.js.map +0 -1
- package/dist/native/p-224b1a01.entry.js +0 -2
- package/dist/native/p-224b1a01.entry.js.map +0 -1
- package/dist/native/p-234cfa2e.entry.js +0 -2
- package/dist/native/p-2781637d.entry.js +0 -2
- package/dist/native/p-29df974e.entry.js +0 -2
- package/dist/native/p-29f68e07.entry.js +0 -2
- package/dist/native/p-45506c37.entry.js +0 -2
- package/dist/native/p-45506c37.entry.js.map +0 -1
- package/dist/native/p-48774d0c.entry.js +0 -13
- package/dist/native/p-48774d0c.entry.js.map +0 -1
- package/dist/native/p-4ec61dec.entry.js +0 -2
- package/dist/native/p-4ec61dec.entry.js.map +0 -1
- package/dist/native/p-5f0776cb.entry.js +0 -2
- package/dist/native/p-5f0776cb.entry.js.map +0 -1
- package/dist/native/p-6c7a9a21.entry.js +0 -2
- package/dist/native/p-6c7a9a21.entry.js.map +0 -1
- package/dist/native/p-6cb6679b.entry.js +0 -2
- package/dist/native/p-6d13a851.entry.js +0 -2
- package/dist/native/p-6d13a851.entry.js.map +0 -1
- package/dist/native/p-87784622.entry.js +0 -2
- package/dist/native/p-87784622.entry.js.map +0 -1
- package/dist/native/p-92931ab8.entry.js +0 -2
- package/dist/native/p-9a46baa9.entry.js +0 -2
- package/dist/native/p-9a46baa9.entry.js.map +0 -1
- package/dist/native/p-a34beedf.entry.js +0 -2
- package/dist/native/p-a34beedf.entry.js.map +0 -1
- package/dist/native/p-a69dbcef.entry.js +0 -2
- package/dist/native/p-a69dbcef.entry.js.map +0 -1
- package/dist/native/p-b32d0a5a.entry.js +0 -2
- package/dist/native/p-bc01787b.entry.js +0 -2
- package/dist/native/p-bc01787b.entry.js.map +0 -1
- package/dist/native/p-c7b7ffaf.entry.js +0 -2
- package/dist/native/p-cb34aa4f.js +0 -2
- package/dist/native/p-cb34aa4f.js.map +0 -1
- package/dist/native/p-cea942b9.entry.js +0 -2
- package/dist/native/p-cea942b9.entry.js.map +0 -1
- package/dist/native/p-d0a33e64.js.map +0 -1
- package/dist/native/p-d0ef1bbb.entry.js +0 -2
- package/dist/native/p-d0ef1bbb.entry.js.map +0 -1
- package/dist/native/p-d882f417.entry.js.map +0 -1
- package/dist/native/p-dd023fd6.entry.js +0 -2
- package/dist/native/p-dd023fd6.entry.js.map +0 -1
- package/dist/native/p-e765a624.entry.js +0 -2
- package/dist/native/p-e765a624.entry.js.map +0 -1
- package/dist/native/p-f0cbfb3d.entry.js +0 -2
- package/dist/native/p-f0cbfb3d.entry.js.map +0 -1
- package/dist/native/p-f5120223.entry.js +0 -2
- package/dist/native/p-fa177c39.entry.js +0 -2
- package/dist/native/p-fa177c39.entry.js.map +0 -1
- package/dist/types/components/nv-tablecolumn/nv-tablecolumn.d.ts +0 -13
- package/dist/types/components/nv-tablecolumn/nv-tablecolumn.docs.d.ts +0 -4
- /package/dist/native/{p-5c697133.entry.js.map → p-112d096c.entry.js.map} +0 -0
- /package/dist/native/{p-85f8f11a.entry.js.map → p-230af58a.entry.js.map} +0 -0
- /package/dist/native/{p-08322093.entry.js.map → p-52d2c0ae.entry.js.map} +0 -0
- /package/dist/native/{p-19090193.entry.js.map → p-647a0765.entry.js.map} +0 -0
- /package/dist/native/{p-1504e28b.entry.js.map → p-701b48a4.entry.js.map} +0 -0
- /package/dist/native/{p-234cfa2e.entry.js.map → p-7c9bf981.entry.js.map} +0 -0
- /package/dist/native/{p-464bb197.entry.js.map → p-83765537.entry.js.map} +0 -0
- /package/dist/native/{p-94dc9c41.entry.js.map → p-9d7e099f.entry.js.map} +0 -0
- /package/dist/native/{p-1235c007.entry.js.map → p-acabac31.entry.js.map} +0 -0
- /package/dist/native/{p-74b129e9.entry.js.map → p-bcf41cd0.entry.js.map} +0 -0
- /package/dist/native/{p-c66565f8.entry.js.map → p-cb0293ec.entry.js.map} +0 -0
- /package/dist/native/{p-e2c99ce2.entry.js.map → p-d94bf052.entry.js.map} +0 -0
- /package/dist/native/{p-9c5d6827.entry.js.map → p-fa78d8eb.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"nv-datagrid.entry.cjs.js","mappings":"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","names":["SortingPossibility","deepCopyElement","h","excludedProps","Host"],"sources":["../../node_modules/@tanstack/table-core/build/lib/index.esm.js","src/utils/input.utils.ts","src/components/nv-datagrid/nv-datagrid.scss?tag=nv-datagrid","src/components/nv-datagrid/nv-datagrid.tsx"],"sourcesContent":["/**\n * table-core\n *\n * Copyright (c) TanStack\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n// type Person = {\n// firstName: string\n// lastName: string\n// age: number\n// visits: number\n// status: string\n// progress: number\n// createdAt: Date\n// nested: {\n// foo: [\n// {\n// bar: 'bar'\n// }\n// ]\n// bar: { subBar: boolean }[]\n// baz: {\n// foo: 'foo'\n// bar: {\n// baz: 'baz'\n// }\n// }\n// }\n// }\n\n// const test: DeepKeys<Person> = 'nested.foo.0.bar'\n// const test2: DeepKeys<Person> = 'nested.bar'\n\n// const helper = createColumnHelper<Person>()\n\n// helper.accessor('nested.foo', {\n// cell: info => info.getValue(),\n// })\n\n// helper.accessor('nested.foo.0.bar', {\n// cell: info => info.getValue(),\n// })\n\n// helper.accessor('nested.bar', {\n// cell: info => info.getValue(),\n// })\n\nfunction createColumnHelper() {\n return {\n accessor: (accessor, column) => {\n return typeof accessor === 'function' ? {\n ...column,\n accessorFn: accessor\n } : {\n ...column,\n accessorKey: accessor\n };\n },\n display: column => column,\n group: column => column\n };\n}\n\n// Is this type a tuple?\n\n// If this type is a tuple, what indices are allowed?\n\n///\n\nfunction functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nfunction noop() {\n //\n}\nfunction makeStateUpdater(key, instance) {\n return updater => {\n instance.setState(old => {\n return {\n ...old,\n [key]: functionalUpdate(updater, old[key])\n };\n });\n };\n}\nfunction isFunction(d) {\n return d instanceof Function;\n}\nfunction isNumberArray(d) {\n return Array.isArray(d) && d.every(val => typeof val === 'number');\n}\nfunction flattenBy(arr, getChildren) {\n const flat = [];\n const recurse = subArr => {\n subArr.forEach(item => {\n flat.push(item);\n const children = getChildren(item);\n if (children != null && children.length) {\n recurse(children);\n }\n });\n };\n recurse(arr);\n return flat;\n}\nfunction memo(getDeps, fn, opts) {\n let deps = [];\n let result;\n return depArgs => {\n let depTime;\n if (opts.key && opts.debug) depTime = Date.now();\n const newDeps = getDeps(depArgs);\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n if (!depsChanged) {\n return result;\n }\n deps = newDeps;\n let resultTime;\n if (opts.key && opts.debug) resultTime = Date.now();\n result = fn(...newDeps);\n opts == null || opts.onChange == null || opts.onChange(result);\n if (opts.key && opts.debug) {\n if (opts != null && opts.debug()) {\n const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n const resultFpsPercentage = resultEndTime / 16;\n const pad = (str, num) => {\n str = String(str);\n while (str.length < num) {\n str = ' ' + str;\n }\n return str;\n };\n console.info(`%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`, `\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(0, Math.min(120 - 120 * resultFpsPercentage, 120))}deg 100% 31%);`, opts == null ? void 0 : opts.key);\n }\n }\n return result;\n };\n}\nfunction getMemoOptions(tableOptions, debugLevel, key, onChange) {\n return {\n debug: () => {\n var _tableOptions$debugAl;\n return (_tableOptions$debugAl = tableOptions == null ? void 0 : tableOptions.debugAll) != null ? _tableOptions$debugAl : tableOptions[debugLevel];\n },\n key: process.env.NODE_ENV === 'development' && key,\n onChange\n };\n}\n\nfunction createCell(table, row, column, columnId) {\n const getRenderValue = () => {\n var _cell$getValue;\n return (_cell$getValue = cell.getValue()) != null ? _cell$getValue : table.options.renderFallbackValue;\n };\n const cell = {\n id: `${row.id}_${column.id}`,\n row,\n column,\n getValue: () => row.getValue(columnId),\n renderValue: getRenderValue,\n getContext: memo(() => [table, column, row, cell], (table, column, row, cell) => ({\n table,\n column,\n row,\n cell: cell,\n getValue: cell.getValue,\n renderValue: cell.renderValue\n }), getMemoOptions(table.options, 'debugCells', 'cell.getContext'))\n };\n table._features.forEach(feature => {\n feature.createCell == null || feature.createCell(cell, column, row, table);\n }, {});\n return cell;\n}\n\nfunction createColumn(table, columnDef, depth, parent) {\n var _ref, _resolvedColumnDef$id;\n const defaultColumn = table._getDefaultColumnDef();\n const resolvedColumnDef = {\n ...defaultColumn,\n ...columnDef\n };\n const accessorKey = resolvedColumnDef.accessorKey;\n let id = (_ref = (_resolvedColumnDef$id = resolvedColumnDef.id) != null ? _resolvedColumnDef$id : accessorKey ? typeof String.prototype.replaceAll === 'function' ? accessorKey.replaceAll('.', '_') : accessorKey.replace(/\\./g, '_') : undefined) != null ? _ref : typeof resolvedColumnDef.header === 'string' ? resolvedColumnDef.header : undefined;\n let accessorFn;\n if (resolvedColumnDef.accessorFn) {\n accessorFn = resolvedColumnDef.accessorFn;\n } else if (accessorKey) {\n // Support deep accessor keys\n if (accessorKey.includes('.')) {\n accessorFn = originalRow => {\n let result = originalRow;\n for (const key of accessorKey.split('.')) {\n var _result;\n result = (_result = result) == null ? void 0 : _result[key];\n if (process.env.NODE_ENV !== 'production' && result === undefined) {\n console.warn(`\"${key}\" in deeply nested key \"${accessorKey}\" returned undefined.`);\n }\n }\n return result;\n };\n } else {\n accessorFn = originalRow => originalRow[resolvedColumnDef.accessorKey];\n }\n }\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(resolvedColumnDef.accessorFn ? `Columns require an id when using an accessorFn` : `Columns require an id when using a non-string header`);\n }\n throw new Error();\n }\n let column = {\n id: `${String(id)}`,\n accessorFn,\n parent: parent,\n depth,\n columnDef: resolvedColumnDef,\n columns: [],\n getFlatColumns: memo(() => [true], () => {\n var _column$columns;\n return [column, ...((_column$columns = column.columns) == null ? void 0 : _column$columns.flatMap(d => d.getFlatColumns()))];\n }, getMemoOptions(table.options, 'debugColumns', 'column.getFlatColumns')),\n getLeafColumns: memo(() => [table._getOrderColumnsFn()], orderColumns => {\n var _column$columns2;\n if ((_column$columns2 = column.columns) != null && _column$columns2.length) {\n let leafColumns = column.columns.flatMap(column => column.getLeafColumns());\n return orderColumns(leafColumns);\n }\n return [column];\n }, getMemoOptions(table.options, 'debugColumns', 'column.getLeafColumns'))\n };\n for (const feature of table._features) {\n feature.createColumn == null || feature.createColumn(column, table);\n }\n\n // Yes, we have to convert table to unknown, because we know more than the compiler here.\n return column;\n}\n\nconst debug = 'debugHeaders';\n//\n\nfunction createHeader(table, column, options) {\n var _options$id;\n const id = (_options$id = options.id) != null ? _options$id : column.id;\n let header = {\n id,\n column,\n index: options.index,\n isPlaceholder: !!options.isPlaceholder,\n placeholderId: options.placeholderId,\n depth: options.depth,\n subHeaders: [],\n colSpan: 0,\n rowSpan: 0,\n headerGroup: null,\n getLeafHeaders: () => {\n const leafHeaders = [];\n const recurseHeader = h => {\n if (h.subHeaders && h.subHeaders.length) {\n h.subHeaders.map(recurseHeader);\n }\n leafHeaders.push(h);\n };\n recurseHeader(header);\n return leafHeaders;\n },\n getContext: () => ({\n table,\n header: header,\n column\n })\n };\n table._features.forEach(feature => {\n feature.createHeader == null || feature.createHeader(header, table);\n });\n return header;\n}\nconst Headers = {\n createTable: table => {\n // Header Groups\n\n table.getHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {\n var _left$map$filter, _right$map$filter;\n const leftColumns = (_left$map$filter = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter : [];\n const rightColumns = (_right$map$filter = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter : [];\n const centerColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));\n const headerGroups = buildHeaderGroups(allColumns, [...leftColumns, ...centerColumns, ...rightColumns], table);\n return headerGroups;\n }, getMemoOptions(table.options, debug, 'getHeaderGroups'));\n table.getCenterHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {\n leafColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));\n return buildHeaderGroups(allColumns, leafColumns, table, 'center');\n }, getMemoOptions(table.options, debug, 'getCenterHeaderGroups'));\n table.getLeftHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left], (allColumns, leafColumns, left) => {\n var _left$map$filter2;\n const orderedLeafColumns = (_left$map$filter2 = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter2 : [];\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'left');\n }, getMemoOptions(table.options, debug, 'getLeftHeaderGroups'));\n table.getRightHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.right], (allColumns, leafColumns, right) => {\n var _right$map$filter2;\n const orderedLeafColumns = (_right$map$filter2 = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter2 : [];\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'right');\n }, getMemoOptions(table.options, debug, 'getRightHeaderGroups'));\n\n // Footer Groups\n\n table.getFooterGroups = memo(() => [table.getHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getFooterGroups'));\n table.getLeftFooterGroups = memo(() => [table.getLeftHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getLeftFooterGroups'));\n table.getCenterFooterGroups = memo(() => [table.getCenterHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getCenterFooterGroups'));\n table.getRightFooterGroups = memo(() => [table.getRightHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getRightFooterGroups'));\n\n // Flat Headers\n\n table.getFlatHeaders = memo(() => [table.getHeaderGroups()], headerGroups => {\n return headerGroups.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getFlatHeaders'));\n table.getLeftFlatHeaders = memo(() => [table.getLeftHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getLeftFlatHeaders'));\n table.getCenterFlatHeaders = memo(() => [table.getCenterHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getCenterFlatHeaders'));\n table.getRightFlatHeaders = memo(() => [table.getRightHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getRightFlatHeaders'));\n\n // Leaf Headers\n\n table.getCenterLeafHeaders = memo(() => [table.getCenterFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders;\n return !((_header$subHeaders = header.subHeaders) != null && _header$subHeaders.length);\n });\n }, getMemoOptions(table.options, debug, 'getCenterLeafHeaders'));\n table.getLeftLeafHeaders = memo(() => [table.getLeftFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders2;\n return !((_header$subHeaders2 = header.subHeaders) != null && _header$subHeaders2.length);\n });\n }, getMemoOptions(table.options, debug, 'getLeftLeafHeaders'));\n table.getRightLeafHeaders = memo(() => [table.getRightFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders3;\n return !((_header$subHeaders3 = header.subHeaders) != null && _header$subHeaders3.length);\n });\n }, getMemoOptions(table.options, debug, 'getRightLeafHeaders'));\n table.getLeafHeaders = memo(() => [table.getLeftHeaderGroups(), table.getCenterHeaderGroups(), table.getRightHeaderGroups()], (left, center, right) => {\n var _left$0$headers, _left$, _center$0$headers, _center$, _right$0$headers, _right$;\n return [...((_left$0$headers = (_left$ = left[0]) == null ? void 0 : _left$.headers) != null ? _left$0$headers : []), ...((_center$0$headers = (_center$ = center[0]) == null ? void 0 : _center$.headers) != null ? _center$0$headers : []), ...((_right$0$headers = (_right$ = right[0]) == null ? void 0 : _right$.headers) != null ? _right$0$headers : [])].map(header => {\n return header.getLeafHeaders();\n }).flat();\n }, getMemoOptions(table.options, debug, 'getLeafHeaders'));\n }\n};\nfunction buildHeaderGroups(allColumns, columnsToGroup, table, headerFamily) {\n var _headerGroups$0$heade, _headerGroups$;\n // Find the max depth of the columns:\n // build the leaf column row\n // build each buffer row going up\n // placeholder for non-existent level\n // real column for existing level\n\n let maxDepth = 0;\n const findMaxDepth = function (columns, depth) {\n if (depth === void 0) {\n depth = 1;\n }\n maxDepth = Math.max(maxDepth, depth);\n columns.filter(column => column.getIsVisible()).forEach(column => {\n var _column$columns;\n if ((_column$columns = column.columns) != null && _column$columns.length) {\n findMaxDepth(column.columns, depth + 1);\n }\n }, 0);\n };\n findMaxDepth(allColumns);\n let headerGroups = [];\n const createHeaderGroup = (headersToGroup, depth) => {\n // The header group we are creating\n const headerGroup = {\n depth,\n id: [headerFamily, `${depth}`].filter(Boolean).join('_'),\n headers: []\n };\n\n // The parent columns we're going to scan next\n const pendingParentHeaders = [];\n\n // Scan each column for parents\n headersToGroup.forEach(headerToGroup => {\n // What is the latest (last) parent column?\n\n const latestPendingParentHeader = [...pendingParentHeaders].reverse()[0];\n const isLeafHeader = headerToGroup.column.depth === headerGroup.depth;\n let column;\n let isPlaceholder = false;\n if (isLeafHeader && headerToGroup.column.parent) {\n // The parent header is new\n column = headerToGroup.column.parent;\n } else {\n // The parent header is repeated\n column = headerToGroup.column;\n isPlaceholder = true;\n }\n if (latestPendingParentHeader && (latestPendingParentHeader == null ? void 0 : latestPendingParentHeader.column) === column) {\n // This column is repeated. Add it as a sub header to the next batch\n latestPendingParentHeader.subHeaders.push(headerToGroup);\n } else {\n // This is a new header. Let's create it\n const header = createHeader(table, column, {\n id: [headerFamily, depth, column.id, headerToGroup == null ? void 0 : headerToGroup.id].filter(Boolean).join('_'),\n isPlaceholder,\n placeholderId: isPlaceholder ? `${pendingParentHeaders.filter(d => d.column === column).length}` : undefined,\n depth,\n index: pendingParentHeaders.length\n });\n\n // Add the headerToGroup as a subHeader of the new header\n header.subHeaders.push(headerToGroup);\n // Add the new header to the pendingParentHeaders to get grouped\n // in the next batch\n pendingParentHeaders.push(header);\n }\n headerGroup.headers.push(headerToGroup);\n headerToGroup.headerGroup = headerGroup;\n });\n headerGroups.push(headerGroup);\n if (depth > 0) {\n createHeaderGroup(pendingParentHeaders, depth - 1);\n }\n };\n const bottomHeaders = columnsToGroup.map((column, index) => createHeader(table, column, {\n depth: maxDepth,\n index\n }));\n createHeaderGroup(bottomHeaders, maxDepth - 1);\n headerGroups.reverse();\n\n // headerGroups = headerGroups.filter(headerGroup => {\n // return !headerGroup.headers.every(header => header.isPlaceholder)\n // })\n\n const recurseHeadersForSpans = headers => {\n const filteredHeaders = headers.filter(header => header.column.getIsVisible());\n return filteredHeaders.map(header => {\n let colSpan = 0;\n let rowSpan = 0;\n let childRowSpans = [0];\n if (header.subHeaders && header.subHeaders.length) {\n childRowSpans = [];\n recurseHeadersForSpans(header.subHeaders).forEach(_ref => {\n let {\n colSpan: childColSpan,\n rowSpan: childRowSpan\n } = _ref;\n colSpan += childColSpan;\n childRowSpans.push(childRowSpan);\n });\n } else {\n colSpan = 1;\n }\n const minChildRowSpan = Math.min(...childRowSpans);\n rowSpan = rowSpan + minChildRowSpan;\n header.colSpan = colSpan;\n header.rowSpan = rowSpan;\n return {\n colSpan,\n rowSpan\n };\n });\n };\n recurseHeadersForSpans((_headerGroups$0$heade = (_headerGroups$ = headerGroups[0]) == null ? void 0 : _headerGroups$.headers) != null ? _headerGroups$0$heade : []);\n return headerGroups;\n}\n\nconst createRow = (table, id, original, rowIndex, depth, subRows, parentId) => {\n let row = {\n id,\n index: rowIndex,\n original,\n depth,\n parentId,\n _valuesCache: {},\n _uniqueValuesCache: {},\n getValue: columnId => {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.accessorFn)) {\n return undefined;\n }\n row._valuesCache[columnId] = column.accessorFn(row.original, rowIndex);\n return row._valuesCache[columnId];\n },\n getUniqueValues: columnId => {\n if (row._uniqueValuesCache.hasOwnProperty(columnId)) {\n return row._uniqueValuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.accessorFn)) {\n return undefined;\n }\n if (!column.columnDef.getUniqueValues) {\n row._uniqueValuesCache[columnId] = [row.getValue(columnId)];\n return row._uniqueValuesCache[columnId];\n }\n row._uniqueValuesCache[columnId] = column.columnDef.getUniqueValues(row.original, rowIndex);\n return row._uniqueValuesCache[columnId];\n },\n renderValue: columnId => {\n var _row$getValue;\n return (_row$getValue = row.getValue(columnId)) != null ? _row$getValue : table.options.renderFallbackValue;\n },\n subRows: subRows != null ? subRows : [],\n getLeafRows: () => flattenBy(row.subRows, d => d.subRows),\n getParentRow: () => row.parentId ? table.getRow(row.parentId, true) : undefined,\n getParentRows: () => {\n let parentRows = [];\n let currentRow = row;\n while (true) {\n const parentRow = currentRow.getParentRow();\n if (!parentRow) break;\n parentRows.push(parentRow);\n currentRow = parentRow;\n }\n return parentRows.reverse();\n },\n getAllCells: memo(() => [table.getAllLeafColumns()], leafColumns => {\n return leafColumns.map(column => {\n return createCell(table, row, column, column.id);\n });\n }, getMemoOptions(table.options, 'debugRows', 'getAllCells')),\n _getAllCellsByColumnId: memo(() => [row.getAllCells()], allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.column.id] = cell;\n return acc;\n }, {});\n }, getMemoOptions(table.options, 'debugRows', 'getAllCellsByColumnId'))\n };\n for (let i = 0; i < table._features.length; i++) {\n const feature = table._features[i];\n feature == null || feature.createRow == null || feature.createRow(row, table);\n }\n return row;\n};\n\n//\n\nconst ColumnFaceting = {\n createColumn: (column, table) => {\n column._getFacetedRowModel = table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, column.id);\n column.getFacetedRowModel = () => {\n if (!column._getFacetedRowModel) {\n return table.getPreFilteredRowModel();\n }\n return column._getFacetedRowModel();\n };\n column._getFacetedUniqueValues = table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, column.id);\n column.getFacetedUniqueValues = () => {\n if (!column._getFacetedUniqueValues) {\n return new Map();\n }\n return column._getFacetedUniqueValues();\n };\n column._getFacetedMinMaxValues = table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, column.id);\n column.getFacetedMinMaxValues = () => {\n if (!column._getFacetedMinMaxValues) {\n return undefined;\n }\n return column._getFacetedMinMaxValues();\n };\n }\n};\n\nconst includesString = (row, columnId, filterValue) => {\n var _filterValue$toString, _row$getValue;\n const search = filterValue == null || (_filterValue$toString = filterValue.toString()) == null ? void 0 : _filterValue$toString.toLowerCase();\n return Boolean((_row$getValue = row.getValue(columnId)) == null || (_row$getValue = _row$getValue.toString()) == null || (_row$getValue = _row$getValue.toLowerCase()) == null ? void 0 : _row$getValue.includes(search));\n};\nincludesString.autoRemove = val => testFalsey(val);\nconst includesStringSensitive = (row, columnId, filterValue) => {\n var _row$getValue2;\n return Boolean((_row$getValue2 = row.getValue(columnId)) == null || (_row$getValue2 = _row$getValue2.toString()) == null ? void 0 : _row$getValue2.includes(filterValue));\n};\nincludesStringSensitive.autoRemove = val => testFalsey(val);\nconst equalsString = (row, columnId, filterValue) => {\n var _row$getValue3;\n return ((_row$getValue3 = row.getValue(columnId)) == null || (_row$getValue3 = _row$getValue3.toString()) == null ? void 0 : _row$getValue3.toLowerCase()) === (filterValue == null ? void 0 : filterValue.toLowerCase());\n};\nequalsString.autoRemove = val => testFalsey(val);\nconst arrIncludes = (row, columnId, filterValue) => {\n var _row$getValue4;\n return (_row$getValue4 = row.getValue(columnId)) == null ? void 0 : _row$getValue4.includes(filterValue);\n};\narrIncludes.autoRemove = val => testFalsey(val) || !(val != null && val.length);\nconst arrIncludesAll = (row, columnId, filterValue) => {\n return !filterValue.some(val => {\n var _row$getValue5;\n return !((_row$getValue5 = row.getValue(columnId)) != null && _row$getValue5.includes(val));\n });\n};\narrIncludesAll.autoRemove = val => testFalsey(val) || !(val != null && val.length);\nconst arrIncludesSome = (row, columnId, filterValue) => {\n return filterValue.some(val => {\n var _row$getValue6;\n return (_row$getValue6 = row.getValue(columnId)) == null ? void 0 : _row$getValue6.includes(val);\n });\n};\narrIncludesSome.autoRemove = val => testFalsey(val) || !(val != null && val.length);\nconst equals = (row, columnId, filterValue) => {\n return row.getValue(columnId) === filterValue;\n};\nequals.autoRemove = val => testFalsey(val);\nconst weakEquals = (row, columnId, filterValue) => {\n return row.getValue(columnId) == filterValue;\n};\nweakEquals.autoRemove = val => testFalsey(val);\nconst inNumberRange = (row, columnId, filterValue) => {\n let [min, max] = filterValue;\n const rowValue = row.getValue(columnId);\n return rowValue >= min && rowValue <= max;\n};\ninNumberRange.resolveFilterValue = val => {\n let [unsafeMin, unsafeMax] = val;\n let parsedMin = typeof unsafeMin !== 'number' ? parseFloat(unsafeMin) : unsafeMin;\n let parsedMax = typeof unsafeMax !== 'number' ? parseFloat(unsafeMax) : unsafeMax;\n let min = unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin;\n let max = unsafeMax === null || Number.isNaN(parsedMax) ? Infinity : parsedMax;\n if (min > max) {\n const temp = min;\n min = max;\n max = temp;\n }\n return [min, max];\n};\ninNumberRange.autoRemove = val => testFalsey(val) || testFalsey(val[0]) && testFalsey(val[1]);\n\n// Export\n\nconst filterFns = {\n includesString,\n includesStringSensitive,\n equalsString,\n arrIncludes,\n arrIncludesAll,\n arrIncludesSome,\n equals,\n weakEquals,\n inNumberRange\n};\n// Utils\n\nfunction testFalsey(val) {\n return val === undefined || val === null || val === '';\n}\n\n//\n\nconst ColumnFiltering = {\n getDefaultColumnDef: () => {\n return {\n filterFn: 'auto'\n };\n },\n getInitialState: state => {\n return {\n columnFilters: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', table),\n filterFromLeafRows: false,\n maxLeafRowFilterDepth: 100\n };\n },\n createColumn: (column, table) => {\n column.getAutoFilterFn = () => {\n const firstRow = table.getCoreRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'string') {\n return filterFns.includesString;\n }\n if (typeof value === 'number') {\n return filterFns.inNumberRange;\n }\n if (typeof value === 'boolean') {\n return filterFns.equals;\n }\n if (value !== null && typeof value === 'object') {\n return filterFns.equals;\n }\n if (Array.isArray(value)) {\n return filterFns.arrIncludes;\n }\n return filterFns.weakEquals;\n };\n column.getFilterFn = () => {\n var _table$options$filter, _table$options$filter2;\n return isFunction(column.columnDef.filterFn) ? column.columnDef.filterFn : column.columnDef.filterFn === 'auto' ? column.getAutoFilterFn() : // @ts-ignore\n (_table$options$filter = (_table$options$filter2 = table.options.filterFns) == null ? void 0 : _table$options$filter2[column.columnDef.filterFn]) != null ? _table$options$filter : filterFns[column.columnDef.filterFn];\n };\n column.getCanFilter = () => {\n var _column$columnDef$ena, _table$options$enable, _table$options$enable2;\n return ((_column$columnDef$ena = column.columnDef.enableColumnFilter) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableColumnFilters) != null ? _table$options$enable : true) && ((_table$options$enable2 = table.options.enableFilters) != null ? _table$options$enable2 : true) && !!column.accessorFn;\n };\n column.getIsFiltered = () => column.getFilterIndex() > -1;\n column.getFilterValue = () => {\n var _table$getState$colum;\n return (_table$getState$colum = table.getState().columnFilters) == null || (_table$getState$colum = _table$getState$colum.find(d => d.id === column.id)) == null ? void 0 : _table$getState$colum.value;\n };\n column.getFilterIndex = () => {\n var _table$getState$colum2, _table$getState$colum3;\n return (_table$getState$colum2 = (_table$getState$colum3 = table.getState().columnFilters) == null ? void 0 : _table$getState$colum3.findIndex(d => d.id === column.id)) != null ? _table$getState$colum2 : -1;\n };\n column.setFilterValue = value => {\n table.setColumnFilters(old => {\n const filterFn = column.getFilterFn();\n const previousFilter = old == null ? void 0 : old.find(d => d.id === column.id);\n const newFilter = functionalUpdate(value, previousFilter ? previousFilter.value : undefined);\n\n //\n if (shouldAutoRemoveFilter(filterFn, newFilter, column)) {\n var _old$filter;\n return (_old$filter = old == null ? void 0 : old.filter(d => d.id !== column.id)) != null ? _old$filter : [];\n }\n const newFilterObj = {\n id: column.id,\n value: newFilter\n };\n if (previousFilter) {\n var _old$map;\n return (_old$map = old == null ? void 0 : old.map(d => {\n if (d.id === column.id) {\n return newFilterObj;\n }\n return d;\n })) != null ? _old$map : [];\n }\n if (old != null && old.length) {\n return [...old, newFilterObj];\n }\n return [newFilterObj];\n });\n };\n },\n createRow: (row, _table) => {\n row.columnFilters = {};\n row.columnFiltersMeta = {};\n },\n createTable: table => {\n table.setColumnFilters = updater => {\n const leafColumns = table.getAllLeafColumns();\n const updateFn = old => {\n var _functionalUpdate;\n return (_functionalUpdate = functionalUpdate(updater, old)) == null ? void 0 : _functionalUpdate.filter(filter => {\n const column = leafColumns.find(d => d.id === filter.id);\n if (column) {\n const filterFn = column.getFilterFn();\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false;\n }\n }\n return true;\n });\n };\n table.options.onColumnFiltersChange == null || table.options.onColumnFiltersChange(updateFn);\n };\n table.resetColumnFilters = defaultState => {\n var _table$initialState$c, _table$initialState;\n table.setColumnFilters(defaultState ? [] : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnFilters) != null ? _table$initialState$c : []);\n };\n table.getPreFilteredRowModel = () => table.getCoreRowModel();\n table.getFilteredRowModel = () => {\n if (!table._getFilteredRowModel && table.options.getFilteredRowModel) {\n table._getFilteredRowModel = table.options.getFilteredRowModel(table);\n }\n if (table.options.manualFiltering || !table._getFilteredRowModel) {\n return table.getPreFilteredRowModel();\n }\n return table._getFilteredRowModel();\n };\n }\n};\nfunction shouldAutoRemoveFilter(filterFn, value, column) {\n return (filterFn && filterFn.autoRemove ? filterFn.autoRemove(value, column) : false) || typeof value === 'undefined' || typeof value === 'string' && !value;\n}\n\nconst sum = (columnId, _leafRows, childRows) => {\n // It's faster to just add the aggregations together instead of\n // process leaf nodes individually\n return childRows.reduce((sum, next) => {\n const nextValue = next.getValue(columnId);\n return sum + (typeof nextValue === 'number' ? nextValue : 0);\n }, 0);\n};\nconst min = (columnId, _leafRows, childRows) => {\n let min;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n if (value != null && (min > value || min === undefined && value >= value)) {\n min = value;\n }\n });\n return min;\n};\nconst max = (columnId, _leafRows, childRows) => {\n let max;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n if (value != null && (max < value || max === undefined && value >= value)) {\n max = value;\n }\n });\n return max;\n};\nconst extent = (columnId, _leafRows, childRows) => {\n let min;\n let max;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n if (value != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n });\n return [min, max];\n};\nconst mean = (columnId, leafRows) => {\n let count = 0;\n let sum = 0;\n leafRows.forEach(row => {\n let value = row.getValue(columnId);\n if (value != null && (value = +value) >= value) {\n ++count, sum += value;\n }\n });\n if (count) return sum / count;\n return;\n};\nconst median = (columnId, leafRows) => {\n if (!leafRows.length) {\n return;\n }\n const values = leafRows.map(row => row.getValue(columnId));\n if (!isNumberArray(values)) {\n return;\n }\n if (values.length === 1) {\n return values[0];\n }\n const mid = Math.floor(values.length / 2);\n const nums = values.sort((a, b) => a - b);\n return values.length % 2 !== 0 ? nums[mid] : (nums[mid - 1] + nums[mid]) / 2;\n};\nconst unique = (columnId, leafRows) => {\n return Array.from(new Set(leafRows.map(d => d.getValue(columnId))).values());\n};\nconst uniqueCount = (columnId, leafRows) => {\n return new Set(leafRows.map(d => d.getValue(columnId))).size;\n};\nconst count = (_columnId, leafRows) => {\n return leafRows.length;\n};\nconst aggregationFns = {\n sum,\n min,\n max,\n extent,\n mean,\n median,\n unique,\n uniqueCount,\n count\n};\n\n//\n\nconst ColumnGrouping = {\n getDefaultColumnDef: () => {\n return {\n aggregatedCell: props => {\n var _toString, _props$getValue;\n return (_toString = (_props$getValue = props.getValue()) == null || _props$getValue.toString == null ? void 0 : _props$getValue.toString()) != null ? _toString : null;\n },\n aggregationFn: 'auto'\n };\n },\n getInitialState: state => {\n return {\n grouping: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onGroupingChange: makeStateUpdater('grouping', table),\n groupedColumnMode: 'reorder'\n };\n },\n createColumn: (column, table) => {\n column.toggleGrouping = () => {\n table.setGrouping(old => {\n // Find any existing grouping for this column\n if (old != null && old.includes(column.id)) {\n return old.filter(d => d !== column.id);\n }\n return [...(old != null ? old : []), column.id];\n });\n };\n column.getCanGroup = () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableGrouping) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableGrouping) != null ? _table$options$enable : true) && (!!column.accessorFn || !!column.columnDef.getGroupingValue);\n };\n column.getIsGrouped = () => {\n var _table$getState$group;\n return (_table$getState$group = table.getState().grouping) == null ? void 0 : _table$getState$group.includes(column.id);\n };\n column.getGroupedIndex = () => {\n var _table$getState$group2;\n return (_table$getState$group2 = table.getState().grouping) == null ? void 0 : _table$getState$group2.indexOf(column.id);\n };\n column.getToggleGroupingHandler = () => {\n const canGroup = column.getCanGroup();\n return () => {\n if (!canGroup) return;\n column.toggleGrouping();\n };\n };\n column.getAutoAggregationFn = () => {\n const firstRow = table.getCoreRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'number') {\n return aggregationFns.sum;\n }\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns.extent;\n }\n };\n column.getAggregationFn = () => {\n var _table$options$aggreg, _table$options$aggreg2;\n if (!column) {\n throw new Error();\n }\n return isFunction(column.columnDef.aggregationFn) ? column.columnDef.aggregationFn : column.columnDef.aggregationFn === 'auto' ? column.getAutoAggregationFn() : (_table$options$aggreg = (_table$options$aggreg2 = table.options.aggregationFns) == null ? void 0 : _table$options$aggreg2[column.columnDef.aggregationFn]) != null ? _table$options$aggreg : aggregationFns[column.columnDef.aggregationFn];\n };\n },\n createTable: table => {\n table.setGrouping = updater => table.options.onGroupingChange == null ? void 0 : table.options.onGroupingChange(updater);\n table.resetGrouping = defaultState => {\n var _table$initialState$g, _table$initialState;\n table.setGrouping(defaultState ? [] : (_table$initialState$g = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.grouping) != null ? _table$initialState$g : []);\n };\n table.getPreGroupedRowModel = () => table.getFilteredRowModel();\n table.getGroupedRowModel = () => {\n if (!table._getGroupedRowModel && table.options.getGroupedRowModel) {\n table._getGroupedRowModel = table.options.getGroupedRowModel(table);\n }\n if (table.options.manualGrouping || !table._getGroupedRowModel) {\n return table.getPreGroupedRowModel();\n }\n return table._getGroupedRowModel();\n };\n },\n createRow: (row, table) => {\n row.getIsGrouped = () => !!row.groupingColumnId;\n row.getGroupingValue = columnId => {\n if (row._groupingValuesCache.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.columnDef.getGroupingValue)) {\n return row.getValue(columnId);\n }\n row._groupingValuesCache[columnId] = column.columnDef.getGroupingValue(row.original);\n return row._groupingValuesCache[columnId];\n };\n row._groupingValuesCache = {};\n },\n createCell: (cell, column, row, table) => {\n cell.getIsGrouped = () => column.getIsGrouped() && column.id === row.groupingColumnId;\n cell.getIsPlaceholder = () => !cell.getIsGrouped() && column.getIsGrouped();\n cell.getIsAggregated = () => {\n var _row$subRows;\n return !cell.getIsGrouped() && !cell.getIsPlaceholder() && !!((_row$subRows = row.subRows) != null && _row$subRows.length);\n };\n }\n};\nfunction orderColumns(leafColumns, grouping, groupedColumnMode) {\n if (!(grouping != null && grouping.length) || !groupedColumnMode) {\n return leafColumns;\n }\n const nonGroupingColumns = leafColumns.filter(col => !grouping.includes(col.id));\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns;\n }\n const groupingColumns = grouping.map(g => leafColumns.find(col => col.id === g)).filter(Boolean);\n return [...groupingColumns, ...nonGroupingColumns];\n}\n\n//\n\nconst ColumnOrdering = {\n getInitialState: state => {\n return {\n columnOrder: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', table)\n };\n },\n createColumn: (column, table) => {\n column.getIndex = memo(position => [_getVisibleLeafColumns(table, position)], columns => columns.findIndex(d => d.id === column.id), getMemoOptions(table.options, 'debugColumns', 'getIndex'));\n column.getIsFirstColumn = position => {\n var _columns$;\n const columns = _getVisibleLeafColumns(table, position);\n return ((_columns$ = columns[0]) == null ? void 0 : _columns$.id) === column.id;\n };\n column.getIsLastColumn = position => {\n var _columns;\n const columns = _getVisibleLeafColumns(table, position);\n return ((_columns = columns[columns.length - 1]) == null ? void 0 : _columns.id) === column.id;\n };\n },\n createTable: table => {\n table.setColumnOrder = updater => table.options.onColumnOrderChange == null ? void 0 : table.options.onColumnOrderChange(updater);\n table.resetColumnOrder = defaultState => {\n var _table$initialState$c;\n table.setColumnOrder(defaultState ? [] : (_table$initialState$c = table.initialState.columnOrder) != null ? _table$initialState$c : []);\n };\n table._getOrderColumnsFn = memo(() => [table.getState().columnOrder, table.getState().grouping, table.options.groupedColumnMode], (columnOrder, grouping, groupedColumnMode) => columns => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns = [];\n\n // If there is no order, return the normal columns\n if (!(columnOrder != null && columnOrder.length)) {\n orderedColumns = columns;\n } else {\n const columnOrderCopy = [...columnOrder];\n\n // If there is an order, make a copy of the columns\n const columnsCopy = [...columns];\n\n // And make a new ordered array of the columns\n\n // Loop over the columns and place them in order into the new array\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift();\n const foundIndex = columnsCopy.findIndex(d => d.id === targetColumnId);\n if (foundIndex > -1) {\n orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]);\n }\n }\n\n // If there are any columns left, add them to the end\n orderedColumns = [...orderedColumns, ...columnsCopy];\n }\n return orderColumns(orderedColumns, grouping, groupedColumnMode);\n }, getMemoOptions(table.options, 'debugTable', '_getOrderColumnsFn'));\n }\n};\n\n//\n\nconst getDefaultColumnPinningState = () => ({\n left: [],\n right: []\n});\nconst ColumnPinning = {\n getInitialState: state => {\n return {\n columnPinning: getDefaultColumnPinningState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', table)\n };\n },\n createColumn: (column, table) => {\n column.pin = position => {\n const columnIds = column.getLeafColumns().map(d => d.id).filter(Boolean);\n table.setColumnPinning(old => {\n var _old$left3, _old$right3;\n if (position === 'right') {\n var _old$left, _old$right;\n return {\n left: ((_old$left = old == null ? void 0 : old.left) != null ? _old$left : []).filter(d => !(columnIds != null && columnIds.includes(d))),\n right: [...((_old$right = old == null ? void 0 : old.right) != null ? _old$right : []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds]\n };\n }\n if (position === 'left') {\n var _old$left2, _old$right2;\n return {\n left: [...((_old$left2 = old == null ? void 0 : old.left) != null ? _old$left2 : []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds],\n right: ((_old$right2 = old == null ? void 0 : old.right) != null ? _old$right2 : []).filter(d => !(columnIds != null && columnIds.includes(d)))\n };\n }\n return {\n left: ((_old$left3 = old == null ? void 0 : old.left) != null ? _old$left3 : []).filter(d => !(columnIds != null && columnIds.includes(d))),\n right: ((_old$right3 = old == null ? void 0 : old.right) != null ? _old$right3 : []).filter(d => !(columnIds != null && columnIds.includes(d)))\n };\n });\n };\n column.getCanPin = () => {\n const leafColumns = column.getLeafColumns();\n return leafColumns.some(d => {\n var _d$columnDef$enablePi, _ref, _table$options$enable;\n return ((_d$columnDef$enablePi = d.columnDef.enablePinning) != null ? _d$columnDef$enablePi : true) && ((_ref = (_table$options$enable = table.options.enableColumnPinning) != null ? _table$options$enable : table.options.enablePinning) != null ? _ref : true);\n });\n };\n column.getIsPinned = () => {\n const leafColumnIds = column.getLeafColumns().map(d => d.id);\n const {\n left,\n right\n } = table.getState().columnPinning;\n const isLeft = leafColumnIds.some(d => left == null ? void 0 : left.includes(d));\n const isRight = leafColumnIds.some(d => right == null ? void 0 : right.includes(d));\n return isLeft ? 'left' : isRight ? 'right' : false;\n };\n column.getPinnedIndex = () => {\n var _table$getState$colum, _table$getState$colum2;\n const position = column.getIsPinned();\n return position ? (_table$getState$colum = (_table$getState$colum2 = table.getState().columnPinning) == null || (_table$getState$colum2 = _table$getState$colum2[position]) == null ? void 0 : _table$getState$colum2.indexOf(column.id)) != null ? _table$getState$colum : -1 : 0;\n };\n },\n createRow: (row, table) => {\n row.getCenterVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allCells, left, right) => {\n const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];\n return allCells.filter(d => !leftAndRight.includes(d.column.id));\n }, getMemoOptions(table.options, 'debugRows', 'getCenterVisibleCells'));\n row.getLeftVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left], (allCells, left) => {\n const cells = (left != null ? left : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({\n ...d,\n position: 'left'\n }));\n return cells;\n }, getMemoOptions(table.options, 'debugRows', 'getLeftVisibleCells'));\n row.getRightVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.right], (allCells, right) => {\n const cells = (right != null ? right : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({\n ...d,\n position: 'right'\n }));\n return cells;\n }, getMemoOptions(table.options, 'debugRows', 'getRightVisibleCells'));\n },\n createTable: table => {\n table.setColumnPinning = updater => table.options.onColumnPinningChange == null ? void 0 : table.options.onColumnPinningChange(updater);\n table.resetColumnPinning = defaultState => {\n var _table$initialState$c, _table$initialState;\n return table.setColumnPinning(defaultState ? getDefaultColumnPinningState() : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnPinning) != null ? _table$initialState$c : getDefaultColumnPinningState());\n };\n table.getIsSomeColumnsPinned = position => {\n var _pinningState$positio;\n const pinningState = table.getState().columnPinning;\n if (!position) {\n var _pinningState$left, _pinningState$right;\n return Boolean(((_pinningState$left = pinningState.left) == null ? void 0 : _pinningState$left.length) || ((_pinningState$right = pinningState.right) == null ? void 0 : _pinningState$right.length));\n }\n return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);\n };\n table.getLeftLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left], (allColumns, left) => {\n return (left != null ? left : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);\n }, getMemoOptions(table.options, 'debugColumns', 'getLeftLeafColumns'));\n table.getRightLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.right], (allColumns, right) => {\n return (right != null ? right : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);\n }, getMemoOptions(table.options, 'debugColumns', 'getRightLeafColumns'));\n table.getCenterLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, left, right) => {\n const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];\n return allColumns.filter(d => !leftAndRight.includes(d.id));\n }, getMemoOptions(table.options, 'debugColumns', 'getCenterLeafColumns'));\n }\n};\n\n//\n\n//\n\nconst defaultColumnSizing = {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER\n};\nconst getDefaultColumnSizingInfoState = () => ({\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: []\n});\nconst ColumnSizing = {\n getDefaultColumnDef: () => {\n return defaultColumnSizing;\n },\n getInitialState: state => {\n return {\n columnSizing: {},\n columnSizingInfo: getDefaultColumnSizingInfoState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n columnResizeMode: 'onEnd',\n columnResizeDirection: 'ltr',\n onColumnSizingChange: makeStateUpdater('columnSizing', table),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', table)\n };\n },\n createColumn: (column, table) => {\n column.getSize = () => {\n var _column$columnDef$min, _ref, _column$columnDef$max;\n const columnSize = table.getState().columnSizing[column.id];\n return Math.min(Math.max((_column$columnDef$min = column.columnDef.minSize) != null ? _column$columnDef$min : defaultColumnSizing.minSize, (_ref = columnSize != null ? columnSize : column.columnDef.size) != null ? _ref : defaultColumnSizing.size), (_column$columnDef$max = column.columnDef.maxSize) != null ? _column$columnDef$max : defaultColumnSizing.maxSize);\n };\n column.getStart = memo(position => [position, _getVisibleLeafColumns(table, position), table.getState().columnSizing], (position, columns) => columns.slice(0, column.getIndex(position)).reduce((sum, column) => sum + column.getSize(), 0), getMemoOptions(table.options, 'debugColumns', 'getStart'));\n column.getAfter = memo(position => [position, _getVisibleLeafColumns(table, position), table.getState().columnSizing], (position, columns) => columns.slice(column.getIndex(position) + 1).reduce((sum, column) => sum + column.getSize(), 0), getMemoOptions(table.options, 'debugColumns', 'getAfter'));\n column.resetSize = () => {\n table.setColumnSizing(_ref2 => {\n let {\n [column.id]: _,\n ...rest\n } = _ref2;\n return rest;\n });\n };\n column.getCanResize = () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableResizing) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableColumnResizing) != null ? _table$options$enable : true);\n };\n column.getIsResizing = () => {\n return table.getState().columnSizingInfo.isResizingColumn === column.id;\n };\n },\n createHeader: (header, table) => {\n header.getSize = () => {\n let sum = 0;\n const recurse = header => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse);\n } else {\n var _header$column$getSiz;\n sum += (_header$column$getSiz = header.column.getSize()) != null ? _header$column$getSiz : 0;\n }\n };\n recurse(header);\n return sum;\n };\n header.getStart = () => {\n if (header.index > 0) {\n const prevSiblingHeader = header.headerGroup.headers[header.index - 1];\n return prevSiblingHeader.getStart() + prevSiblingHeader.getSize();\n }\n return 0;\n };\n header.getResizeHandler = _contextDocument => {\n const column = table.getColumn(header.column.id);\n const canResize = column == null ? void 0 : column.getCanResize();\n return e => {\n if (!column || !canResize) {\n return;\n }\n e.persist == null || e.persist();\n if (isTouchStartEvent(e)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return;\n }\n }\n const startSize = header.getSize();\n const columnSizingStart = header ? header.getLeafHeaders().map(d => [d.column.id, d.column.getSize()]) : [[column.id, column.getSize()]];\n const clientX = isTouchStartEvent(e) ? Math.round(e.touches[0].clientX) : e.clientX;\n const newColumnSizing = {};\n const updateOffset = (eventType, clientXPos) => {\n if (typeof clientXPos !== 'number') {\n return;\n }\n table.setColumnSizingInfo(old => {\n var _old$startOffset, _old$startSize;\n const deltaDirection = table.options.columnResizeDirection === 'rtl' ? -1 : 1;\n const deltaOffset = (clientXPos - ((_old$startOffset = old == null ? void 0 : old.startOffset) != null ? _old$startOffset : 0)) * deltaDirection;\n const deltaPercentage = Math.max(deltaOffset / ((_old$startSize = old == null ? void 0 : old.startSize) != null ? _old$startSize : 0), -0.999999);\n old.columnSizingStart.forEach(_ref3 => {\n let [columnId, headerSize] = _ref3;\n newColumnSizing[columnId] = Math.round(Math.max(headerSize + headerSize * deltaPercentage, 0) * 100) / 100;\n });\n return {\n ...old,\n deltaOffset,\n deltaPercentage\n };\n });\n if (table.options.columnResizeMode === 'onChange' || eventType === 'end') {\n table.setColumnSizing(old => ({\n ...old,\n ...newColumnSizing\n }));\n }\n };\n const onMove = clientXPos => updateOffset('move', clientXPos);\n const onEnd = clientXPos => {\n updateOffset('end', clientXPos);\n table.setColumnSizingInfo(old => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: []\n }));\n };\n const contextDocument = _contextDocument || typeof document !== 'undefined' ? document : null;\n const mouseEvents = {\n moveHandler: e => onMove(e.clientX),\n upHandler: e => {\n contextDocument == null || contextDocument.removeEventListener('mousemove', mouseEvents.moveHandler);\n contextDocument == null || contextDocument.removeEventListener('mouseup', mouseEvents.upHandler);\n onEnd(e.clientX);\n }\n };\n const touchEvents = {\n moveHandler: e => {\n if (e.cancelable) {\n e.preventDefault();\n e.stopPropagation();\n }\n onMove(e.touches[0].clientX);\n return false;\n },\n upHandler: e => {\n var _e$touches$;\n contextDocument == null || contextDocument.removeEventListener('touchmove', touchEvents.moveHandler);\n contextDocument == null || contextDocument.removeEventListener('touchend', touchEvents.upHandler);\n if (e.cancelable) {\n e.preventDefault();\n e.stopPropagation();\n }\n onEnd((_e$touches$ = e.touches[0]) == null ? void 0 : _e$touches$.clientX);\n }\n };\n const passiveIfSupported = passiveEventSupported() ? {\n passive: false\n } : false;\n if (isTouchStartEvent(e)) {\n contextDocument == null || contextDocument.addEventListener('touchmove', touchEvents.moveHandler, passiveIfSupported);\n contextDocument == null || contextDocument.addEventListener('touchend', touchEvents.upHandler, passiveIfSupported);\n } else {\n contextDocument == null || contextDocument.addEventListener('mousemove', mouseEvents.moveHandler, passiveIfSupported);\n contextDocument == null || contextDocument.addEventListener('mouseup', mouseEvents.upHandler, passiveIfSupported);\n }\n table.setColumnSizingInfo(old => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id\n }));\n };\n };\n },\n createTable: table => {\n table.setColumnSizing = updater => table.options.onColumnSizingChange == null ? void 0 : table.options.onColumnSizingChange(updater);\n table.setColumnSizingInfo = updater => table.options.onColumnSizingInfoChange == null ? void 0 : table.options.onColumnSizingInfoChange(updater);\n table.resetColumnSizing = defaultState => {\n var _table$initialState$c;\n table.setColumnSizing(defaultState ? {} : (_table$initialState$c = table.initialState.columnSizing) != null ? _table$initialState$c : {});\n };\n table.resetHeaderSizeInfo = defaultState => {\n var _table$initialState$c2;\n table.setColumnSizingInfo(defaultState ? getDefaultColumnSizingInfoState() : (_table$initialState$c2 = table.initialState.columnSizingInfo) != null ? _table$initialState$c2 : getDefaultColumnSizingInfoState());\n };\n table.getTotalSize = () => {\n var _table$getHeaderGroup, _table$getHeaderGroup2;\n return (_table$getHeaderGroup = (_table$getHeaderGroup2 = table.getHeaderGroups()[0]) == null ? void 0 : _table$getHeaderGroup2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getHeaderGroup : 0;\n };\n table.getLeftTotalSize = () => {\n var _table$getLeftHeaderG, _table$getLeftHeaderG2;\n return (_table$getLeftHeaderG = (_table$getLeftHeaderG2 = table.getLeftHeaderGroups()[0]) == null ? void 0 : _table$getLeftHeaderG2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getLeftHeaderG : 0;\n };\n table.getCenterTotalSize = () => {\n var _table$getCenterHeade, _table$getCenterHeade2;\n return (_table$getCenterHeade = (_table$getCenterHeade2 = table.getCenterHeaderGroups()[0]) == null ? void 0 : _table$getCenterHeade2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getCenterHeade : 0;\n };\n table.getRightTotalSize = () => {\n var _table$getRightHeader, _table$getRightHeader2;\n return (_table$getRightHeader = (_table$getRightHeader2 = table.getRightHeaderGroups()[0]) == null ? void 0 : _table$getRightHeader2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getRightHeader : 0;\n };\n }\n};\nlet passiveSupported = null;\nfunction passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported;\n let supported = false;\n try {\n const options = {\n get passive() {\n supported = true;\n return false;\n }\n };\n const noop = () => {};\n window.addEventListener('test', noop, options);\n window.removeEventListener('test', noop);\n } catch (err) {\n supported = false;\n }\n passiveSupported = supported;\n return passiveSupported;\n}\nfunction isTouchStartEvent(e) {\n return e.type === 'touchstart';\n}\n\n//\n\nconst ColumnVisibility = {\n getInitialState: state => {\n return {\n columnVisibility: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', table)\n };\n },\n createColumn: (column, table) => {\n column.toggleVisibility = value => {\n if (column.getCanHide()) {\n table.setColumnVisibility(old => ({\n ...old,\n [column.id]: value != null ? value : !column.getIsVisible()\n }));\n }\n };\n column.getIsVisible = () => {\n var _ref, _table$getState$colum;\n const childColumns = column.columns;\n return (_ref = childColumns.length ? childColumns.some(c => c.getIsVisible()) : (_table$getState$colum = table.getState().columnVisibility) == null ? void 0 : _table$getState$colum[column.id]) != null ? _ref : true;\n };\n column.getCanHide = () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableHiding) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableHiding) != null ? _table$options$enable : true);\n };\n column.getToggleVisibilityHandler = () => {\n return e => {\n column.toggleVisibility == null || column.toggleVisibility(e.target.checked);\n };\n };\n },\n createRow: (row, table) => {\n row._getAllVisibleCells = memo(() => [row.getAllCells(), table.getState().columnVisibility], cells => {\n return cells.filter(cell => cell.column.getIsVisible());\n }, getMemoOptions(table.options, 'debugRows', '_getAllVisibleCells'));\n row.getVisibleCells = memo(() => [row.getLeftVisibleCells(), row.getCenterVisibleCells(), row.getRightVisibleCells()], (left, center, right) => [...left, ...center, ...right], getMemoOptions(table.options, 'debugRows', 'getVisibleCells'));\n },\n createTable: table => {\n const makeVisibleColumnsMethod = (key, getColumns) => {\n return memo(() => [getColumns(), getColumns().filter(d => d.getIsVisible()).map(d => d.id).join('_')], columns => {\n return columns.filter(d => d.getIsVisible == null ? void 0 : d.getIsVisible());\n }, getMemoOptions(table.options, 'debugColumns', key));\n };\n table.getVisibleFlatColumns = makeVisibleColumnsMethod('getVisibleFlatColumns', () => table.getAllFlatColumns());\n table.getVisibleLeafColumns = makeVisibleColumnsMethod('getVisibleLeafColumns', () => table.getAllLeafColumns());\n table.getLeftVisibleLeafColumns = makeVisibleColumnsMethod('getLeftVisibleLeafColumns', () => table.getLeftLeafColumns());\n table.getRightVisibleLeafColumns = makeVisibleColumnsMethod('getRightVisibleLeafColumns', () => table.getRightLeafColumns());\n table.getCenterVisibleLeafColumns = makeVisibleColumnsMethod('getCenterVisibleLeafColumns', () => table.getCenterLeafColumns());\n table.setColumnVisibility = updater => table.options.onColumnVisibilityChange == null ? void 0 : table.options.onColumnVisibilityChange(updater);\n table.resetColumnVisibility = defaultState => {\n var _table$initialState$c;\n table.setColumnVisibility(defaultState ? {} : (_table$initialState$c = table.initialState.columnVisibility) != null ? _table$initialState$c : {});\n };\n table.toggleAllColumnsVisible = value => {\n var _value;\n value = (_value = value) != null ? _value : !table.getIsAllColumnsVisible();\n table.setColumnVisibility(table.getAllLeafColumns().reduce((obj, column) => ({\n ...obj,\n [column.id]: !value ? !(column.getCanHide != null && column.getCanHide()) : value\n }), {}));\n };\n table.getIsAllColumnsVisible = () => !table.getAllLeafColumns().some(column => !(column.getIsVisible != null && column.getIsVisible()));\n table.getIsSomeColumnsVisible = () => table.getAllLeafColumns().some(column => column.getIsVisible == null ? void 0 : column.getIsVisible());\n table.getToggleAllColumnsVisibilityHandler = () => {\n return e => {\n var _target;\n table.toggleAllColumnsVisible((_target = e.target) == null ? void 0 : _target.checked);\n };\n };\n }\n};\nfunction _getVisibleLeafColumns(table, position) {\n return !position ? table.getVisibleLeafColumns() : position === 'center' ? table.getCenterVisibleLeafColumns() : position === 'left' ? table.getLeftVisibleLeafColumns() : table.getRightVisibleLeafColumns();\n}\n\n//\n\nconst GlobalFaceting = {\n createTable: table => {\n table._getGlobalFacetedRowModel = table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, '__global__');\n table.getGlobalFacetedRowModel = () => {\n if (table.options.manualFiltering || !table._getGlobalFacetedRowModel) {\n return table.getPreFilteredRowModel();\n }\n return table._getGlobalFacetedRowModel();\n };\n table._getGlobalFacetedUniqueValues = table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, '__global__');\n table.getGlobalFacetedUniqueValues = () => {\n if (!table._getGlobalFacetedUniqueValues) {\n return new Map();\n }\n return table._getGlobalFacetedUniqueValues();\n };\n table._getGlobalFacetedMinMaxValues = table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, '__global__');\n table.getGlobalFacetedMinMaxValues = () => {\n if (!table._getGlobalFacetedMinMaxValues) {\n return;\n }\n return table._getGlobalFacetedMinMaxValues();\n };\n }\n};\n\n//\n\nconst GlobalFiltering = {\n getInitialState: state => {\n return {\n globalFilter: undefined,\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onGlobalFilterChange: makeStateUpdater('globalFilter', table),\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: column => {\n var _table$getCoreRowMode;\n const value = (_table$getCoreRowMode = table.getCoreRowModel().flatRows[0]) == null || (_table$getCoreRowMode = _table$getCoreRowMode._getAllCellsByColumnId()[column.id]) == null ? void 0 : _table$getCoreRowMode.getValue();\n return typeof value === 'string' || typeof value === 'number';\n }\n };\n },\n createColumn: (column, table) => {\n column.getCanGlobalFilter = () => {\n var _column$columnDef$ena, _table$options$enable, _table$options$enable2, _table$options$getCol;\n return ((_column$columnDef$ena = column.columnDef.enableGlobalFilter) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableGlobalFilter) != null ? _table$options$enable : true) && ((_table$options$enable2 = table.options.enableFilters) != null ? _table$options$enable2 : true) && ((_table$options$getCol = table.options.getColumnCanGlobalFilter == null ? void 0 : table.options.getColumnCanGlobalFilter(column)) != null ? _table$options$getCol : true) && !!column.accessorFn;\n };\n },\n createTable: table => {\n table.getGlobalAutoFilterFn = () => {\n return filterFns.includesString;\n };\n table.getGlobalFilterFn = () => {\n var _table$options$filter, _table$options$filter2;\n const {\n globalFilterFn: globalFilterFn\n } = table.options;\n return isFunction(globalFilterFn) ? globalFilterFn : globalFilterFn === 'auto' ? table.getGlobalAutoFilterFn() : (_table$options$filter = (_table$options$filter2 = table.options.filterFns) == null ? void 0 : _table$options$filter2[globalFilterFn]) != null ? _table$options$filter : filterFns[globalFilterFn];\n };\n table.setGlobalFilter = updater => {\n table.options.onGlobalFilterChange == null || table.options.onGlobalFilterChange(updater);\n };\n table.resetGlobalFilter = defaultState => {\n table.setGlobalFilter(defaultState ? undefined : table.initialState.globalFilter);\n };\n }\n};\n\n//\n\nconst RowExpanding = {\n getInitialState: state => {\n return {\n expanded: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onExpandedChange: makeStateUpdater('expanded', table),\n paginateExpandedRows: true\n };\n },\n createTable: table => {\n let registered = false;\n let queued = false;\n table._autoResetExpanded = () => {\n var _ref, _table$options$autoRe;\n if (!registered) {\n table._queue(() => {\n registered = true;\n });\n return;\n }\n if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetExpanded) != null ? _ref : !table.options.manualExpanding) {\n if (queued) return;\n queued = true;\n table._queue(() => {\n table.resetExpanded();\n queued = false;\n });\n }\n };\n table.setExpanded = updater => table.options.onExpandedChange == null ? void 0 : table.options.onExpandedChange(updater);\n table.toggleAllRowsExpanded = expanded => {\n if (expanded != null ? expanded : !table.getIsAllRowsExpanded()) {\n table.setExpanded(true);\n } else {\n table.setExpanded({});\n }\n };\n table.resetExpanded = defaultState => {\n var _table$initialState$e, _table$initialState;\n table.setExpanded(defaultState ? {} : (_table$initialState$e = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.expanded) != null ? _table$initialState$e : {});\n };\n table.getCanSomeRowsExpand = () => {\n return table.getPrePaginationRowModel().flatRows.some(row => row.getCanExpand());\n };\n table.getToggleAllRowsExpandedHandler = () => {\n return e => {\n e.persist == null || e.persist();\n table.toggleAllRowsExpanded();\n };\n };\n table.getIsSomeRowsExpanded = () => {\n const expanded = table.getState().expanded;\n return expanded === true || Object.values(expanded).some(Boolean);\n };\n table.getIsAllRowsExpanded = () => {\n const expanded = table.getState().expanded;\n\n // If expanded is true, save some cycles and return true\n if (typeof expanded === 'boolean') {\n return expanded === true;\n }\n if (!Object.keys(expanded).length) {\n return false;\n }\n\n // If any row is not expanded, return false\n if (table.getRowModel().flatRows.some(row => !row.getIsExpanded())) {\n return false;\n }\n\n // They must all be expanded :shrug:\n return true;\n };\n table.getExpandedDepth = () => {\n let maxDepth = 0;\n const rowIds = table.getState().expanded === true ? Object.keys(table.getRowModel().rowsById) : Object.keys(table.getState().expanded);\n rowIds.forEach(id => {\n const splitId = id.split('.');\n maxDepth = Math.max(maxDepth, splitId.length);\n });\n return maxDepth;\n };\n table.getPreExpandedRowModel = () => table.getSortedRowModel();\n table.getExpandedRowModel = () => {\n if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {\n table._getExpandedRowModel = table.options.getExpandedRowModel(table);\n }\n if (table.options.manualExpanding || !table._getExpandedRowModel) {\n return table.getPreExpandedRowModel();\n }\n return table._getExpandedRowModel();\n };\n },\n createRow: (row, table) => {\n row.toggleExpanded = expanded => {\n table.setExpanded(old => {\n var _expanded;\n const exists = old === true ? true : !!(old != null && old[row.id]);\n let oldExpanded = {};\n if (old === true) {\n Object.keys(table.getRowModel().rowsById).forEach(rowId => {\n oldExpanded[rowId] = true;\n });\n } else {\n oldExpanded = old;\n }\n expanded = (_expanded = expanded) != null ? _expanded : !exists;\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [row.id]: true\n };\n }\n if (exists && !expanded) {\n const {\n [row.id]: _,\n ...rest\n } = oldExpanded;\n return rest;\n }\n return old;\n });\n };\n row.getIsExpanded = () => {\n var _table$options$getIsR;\n const expanded = table.getState().expanded;\n return !!((_table$options$getIsR = table.options.getIsRowExpanded == null ? void 0 : table.options.getIsRowExpanded(row)) != null ? _table$options$getIsR : expanded === true || (expanded == null ? void 0 : expanded[row.id]));\n };\n row.getCanExpand = () => {\n var _table$options$getRow, _table$options$enable, _row$subRows;\n return (_table$options$getRow = table.options.getRowCanExpand == null ? void 0 : table.options.getRowCanExpand(row)) != null ? _table$options$getRow : ((_table$options$enable = table.options.enableExpanding) != null ? _table$options$enable : true) && !!((_row$subRows = row.subRows) != null && _row$subRows.length);\n };\n row.getIsAllParentsExpanded = () => {\n let isFullyExpanded = true;\n let currentRow = row;\n while (isFullyExpanded && currentRow.parentId) {\n currentRow = table.getRow(currentRow.parentId, true);\n isFullyExpanded = currentRow.getIsExpanded();\n }\n return isFullyExpanded;\n };\n row.getToggleExpandedHandler = () => {\n const canExpand = row.getCanExpand();\n return () => {\n if (!canExpand) return;\n row.toggleExpanded();\n };\n };\n }\n};\n\n//\n\nconst defaultPageIndex = 0;\nconst defaultPageSize = 10;\nconst getDefaultPaginationState = () => ({\n pageIndex: defaultPageIndex,\n pageSize: defaultPageSize\n});\nconst RowPagination = {\n getInitialState: state => {\n return {\n ...state,\n pagination: {\n ...getDefaultPaginationState(),\n ...(state == null ? void 0 : state.pagination)\n }\n };\n },\n getDefaultOptions: table => {\n return {\n onPaginationChange: makeStateUpdater('pagination', table)\n };\n },\n createTable: table => {\n let registered = false;\n let queued = false;\n table._autoResetPageIndex = () => {\n var _ref, _table$options$autoRe;\n if (!registered) {\n table._queue(() => {\n registered = true;\n });\n return;\n }\n if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetPageIndex) != null ? _ref : !table.options.manualPagination) {\n if (queued) return;\n queued = true;\n table._queue(() => {\n table.resetPageIndex();\n queued = false;\n });\n }\n };\n table.setPagination = updater => {\n const safeUpdater = old => {\n let newState = functionalUpdate(updater, old);\n return newState;\n };\n return table.options.onPaginationChange == null ? void 0 : table.options.onPaginationChange(safeUpdater);\n };\n table.resetPagination = defaultState => {\n var _table$initialState$p;\n table.setPagination(defaultState ? getDefaultPaginationState() : (_table$initialState$p = table.initialState.pagination) != null ? _table$initialState$p : getDefaultPaginationState());\n };\n table.setPageIndex = updater => {\n table.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex);\n const maxPageIndex = typeof table.options.pageCount === 'undefined' || table.options.pageCount === -1 ? Number.MAX_SAFE_INTEGER : table.options.pageCount - 1;\n pageIndex = Math.max(0, Math.min(pageIndex, maxPageIndex));\n return {\n ...old,\n pageIndex\n };\n });\n };\n table.resetPageIndex = defaultState => {\n var _table$initialState$p2, _table$initialState;\n table.setPageIndex(defaultState ? defaultPageIndex : (_table$initialState$p2 = (_table$initialState = table.initialState) == null || (_table$initialState = _table$initialState.pagination) == null ? void 0 : _table$initialState.pageIndex) != null ? _table$initialState$p2 : defaultPageIndex);\n };\n table.resetPageSize = defaultState => {\n var _table$initialState$p3, _table$initialState2;\n table.setPageSize(defaultState ? defaultPageSize : (_table$initialState$p3 = (_table$initialState2 = table.initialState) == null || (_table$initialState2 = _table$initialState2.pagination) == null ? void 0 : _table$initialState2.pageSize) != null ? _table$initialState$p3 : defaultPageSize);\n };\n table.setPageSize = updater => {\n table.setPagination(old => {\n const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize));\n const topRowIndex = old.pageSize * old.pageIndex;\n const pageIndex = Math.floor(topRowIndex / pageSize);\n return {\n ...old,\n pageIndex,\n pageSize\n };\n });\n };\n //deprecated\n table.setPageCount = updater => table.setPagination(old => {\n var _table$options$pageCo;\n let newPageCount = functionalUpdate(updater, (_table$options$pageCo = table.options.pageCount) != null ? _table$options$pageCo : -1);\n if (typeof newPageCount === 'number') {\n newPageCount = Math.max(-1, newPageCount);\n }\n return {\n ...old,\n pageCount: newPageCount\n };\n });\n table.getPageOptions = memo(() => [table.getPageCount()], pageCount => {\n let pageOptions = [];\n if (pageCount && pageCount > 0) {\n pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i);\n }\n return pageOptions;\n }, getMemoOptions(table.options, 'debugTable', 'getPageOptions'));\n table.getCanPreviousPage = () => table.getState().pagination.pageIndex > 0;\n table.getCanNextPage = () => {\n const {\n pageIndex\n } = table.getState().pagination;\n const pageCount = table.getPageCount();\n if (pageCount === -1) {\n return true;\n }\n if (pageCount === 0) {\n return false;\n }\n return pageIndex < pageCount - 1;\n };\n table.previousPage = () => {\n return table.setPageIndex(old => old - 1);\n };\n table.nextPage = () => {\n return table.setPageIndex(old => {\n return old + 1;\n });\n };\n table.firstPage = () => {\n return table.setPageIndex(0);\n };\n table.lastPage = () => {\n return table.setPageIndex(table.getPageCount() - 1);\n };\n table.getPrePaginationRowModel = () => table.getExpandedRowModel();\n table.getPaginationRowModel = () => {\n if (!table._getPaginationRowModel && table.options.getPaginationRowModel) {\n table._getPaginationRowModel = table.options.getPaginationRowModel(table);\n }\n if (table.options.manualPagination || !table._getPaginationRowModel) {\n return table.getPrePaginationRowModel();\n }\n return table._getPaginationRowModel();\n };\n table.getPageCount = () => {\n var _table$options$pageCo2;\n return (_table$options$pageCo2 = table.options.pageCount) != null ? _table$options$pageCo2 : Math.ceil(table.getRowCount() / table.getState().pagination.pageSize);\n };\n table.getRowCount = () => {\n var _table$options$rowCou;\n return (_table$options$rowCou = table.options.rowCount) != null ? _table$options$rowCou : table.getPrePaginationRowModel().rows.length;\n };\n }\n};\n\n//\n\nconst getDefaultRowPinningState = () => ({\n top: [],\n bottom: []\n});\nconst RowPinning = {\n getInitialState: state => {\n return {\n rowPinning: getDefaultRowPinningState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onRowPinningChange: makeStateUpdater('rowPinning', table)\n };\n },\n createRow: (row, table) => {\n row.pin = (position, includeLeafRows, includeParentRows) => {\n const leafRowIds = includeLeafRows ? row.getLeafRows().map(_ref => {\n let {\n id\n } = _ref;\n return id;\n }) : [];\n const parentRowIds = includeParentRows ? row.getParentRows().map(_ref2 => {\n let {\n id\n } = _ref2;\n return id;\n }) : [];\n const rowIds = new Set([...parentRowIds, row.id, ...leafRowIds]);\n table.setRowPinning(old => {\n var _old$top3, _old$bottom3;\n if (position === 'bottom') {\n var _old$top, _old$bottom;\n return {\n top: ((_old$top = old == null ? void 0 : old.top) != null ? _old$top : []).filter(d => !(rowIds != null && rowIds.has(d))),\n bottom: [...((_old$bottom = old == null ? void 0 : old.bottom) != null ? _old$bottom : []).filter(d => !(rowIds != null && rowIds.has(d))), ...Array.from(rowIds)]\n };\n }\n if (position === 'top') {\n var _old$top2, _old$bottom2;\n return {\n top: [...((_old$top2 = old == null ? void 0 : old.top) != null ? _old$top2 : []).filter(d => !(rowIds != null && rowIds.has(d))), ...Array.from(rowIds)],\n bottom: ((_old$bottom2 = old == null ? void 0 : old.bottom) != null ? _old$bottom2 : []).filter(d => !(rowIds != null && rowIds.has(d)))\n };\n }\n return {\n top: ((_old$top3 = old == null ? void 0 : old.top) != null ? _old$top3 : []).filter(d => !(rowIds != null && rowIds.has(d))),\n bottom: ((_old$bottom3 = old == null ? void 0 : old.bottom) != null ? _old$bottom3 : []).filter(d => !(rowIds != null && rowIds.has(d)))\n };\n });\n };\n row.getCanPin = () => {\n var _ref3;\n const {\n enableRowPinning,\n enablePinning\n } = table.options;\n if (typeof enableRowPinning === 'function') {\n return enableRowPinning(row);\n }\n return (_ref3 = enableRowPinning != null ? enableRowPinning : enablePinning) != null ? _ref3 : true;\n };\n row.getIsPinned = () => {\n const rowIds = [row.id];\n const {\n top,\n bottom\n } = table.getState().rowPinning;\n const isTop = rowIds.some(d => top == null ? void 0 : top.includes(d));\n const isBottom = rowIds.some(d => bottom == null ? void 0 : bottom.includes(d));\n return isTop ? 'top' : isBottom ? 'bottom' : false;\n };\n row.getPinnedIndex = () => {\n var _ref4, _visiblePinnedRowIds$;\n const position = row.getIsPinned();\n if (!position) return -1;\n const visiblePinnedRowIds = (_ref4 = position === 'top' ? table.getTopRows() : table.getBottomRows()) == null ? void 0 : _ref4.map(_ref5 => {\n let {\n id\n } = _ref5;\n return id;\n });\n return (_visiblePinnedRowIds$ = visiblePinnedRowIds == null ? void 0 : visiblePinnedRowIds.indexOf(row.id)) != null ? _visiblePinnedRowIds$ : -1;\n };\n },\n createTable: table => {\n table.setRowPinning = updater => table.options.onRowPinningChange == null ? void 0 : table.options.onRowPinningChange(updater);\n table.resetRowPinning = defaultState => {\n var _table$initialState$r, _table$initialState;\n return table.setRowPinning(defaultState ? getDefaultRowPinningState() : (_table$initialState$r = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.rowPinning) != null ? _table$initialState$r : getDefaultRowPinningState());\n };\n table.getIsSomeRowsPinned = position => {\n var _pinningState$positio;\n const pinningState = table.getState().rowPinning;\n if (!position) {\n var _pinningState$top, _pinningState$bottom;\n return Boolean(((_pinningState$top = pinningState.top) == null ? void 0 : _pinningState$top.length) || ((_pinningState$bottom = pinningState.bottom) == null ? void 0 : _pinningState$bottom.length));\n }\n return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);\n };\n table._getPinnedRows = (visibleRows, pinnedRowIds, position) => {\n var _table$options$keepPi;\n const rows = ((_table$options$keepPi = table.options.keepPinnedRows) != null ? _table$options$keepPi : true) ?\n //get all rows that are pinned even if they would not be otherwise visible\n //account for expanded parent rows, but not pagination or filtering\n (pinnedRowIds != null ? pinnedRowIds : []).map(rowId => {\n const row = table.getRow(rowId, true);\n return row.getIsAllParentsExpanded() ? row : null;\n }) :\n //else get only visible rows that are pinned\n (pinnedRowIds != null ? pinnedRowIds : []).map(rowId => visibleRows.find(row => row.id === rowId));\n return rows.filter(Boolean).map(d => ({\n ...d,\n position\n }));\n };\n table.getTopRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.top], (allRows, topPinnedRowIds) => table._getPinnedRows(allRows, topPinnedRowIds, 'top'), getMemoOptions(table.options, 'debugRows', 'getTopRows'));\n table.getBottomRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.bottom], (allRows, bottomPinnedRowIds) => table._getPinnedRows(allRows, bottomPinnedRowIds, 'bottom'), getMemoOptions(table.options, 'debugRows', 'getBottomRows'));\n table.getCenterRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.top, table.getState().rowPinning.bottom], (allRows, top, bottom) => {\n const topAndBottom = new Set([...(top != null ? top : []), ...(bottom != null ? bottom : [])]);\n return allRows.filter(d => !topAndBottom.has(d.id));\n }, getMemoOptions(table.options, 'debugRows', 'getCenterRows'));\n }\n};\n\n//\n\nconst RowSelection = {\n getInitialState: state => {\n return {\n rowSelection: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', table),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,\n };\n },\n createTable: table => {\n table.setRowSelection = updater => table.options.onRowSelectionChange == null ? void 0 : table.options.onRowSelectionChange(updater);\n table.resetRowSelection = defaultState => {\n var _table$initialState$r;\n return table.setRowSelection(defaultState ? {} : (_table$initialState$r = table.initialState.rowSelection) != null ? _table$initialState$r : {});\n };\n table.toggleAllRowsSelected = value => {\n table.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !table.getIsAllRowsSelected();\n const rowSelection = {\n ...old\n };\n const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows;\n\n // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n if (value) {\n preGroupedFlatRows.forEach(row => {\n if (!row.getCanSelect()) {\n return;\n }\n rowSelection[row.id] = true;\n });\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id];\n });\n }\n return rowSelection;\n });\n };\n table.toggleAllPageRowsSelected = value => table.setRowSelection(old => {\n const resolvedValue = typeof value !== 'undefined' ? value : !table.getIsAllPageRowsSelected();\n const rowSelection = {\n ...old\n };\n table.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, resolvedValue, true, table);\n });\n return rowSelection;\n });\n\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = table\n\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n\n // let include = false\n // const selectedRowIds = {}\n\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n\n // table.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n\n // if (include) {\n // addRow(row)\n // }\n // })\n\n // table.setRowSelection(selectedRowIds)\n // },\n table.getPreSelectedRowModel = () => table.getCoreRowModel();\n table.getSelectedRowModel = memo(() => [table.getState().rowSelection, table.getCoreRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getSelectedRowModel'));\n table.getFilteredSelectedRowModel = memo(() => [table.getState().rowSelection, table.getFilteredRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getFilteredSelectedRowModel'));\n table.getGroupedSelectedRowModel = memo(() => [table.getState().rowSelection, table.getSortedRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getGroupedSelectedRowModel'));\n\n ///\n\n // getGroupingRowCanSelect: rowId => {\n // const row = table.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof table.options.enableGroupingRowSelection === 'function') {\n // return table.options.enableGroupingRowSelection(row)\n // }\n\n // return table.options.enableGroupingRowSelection ?? false\n // },\n\n table.getIsAllRowsSelected = () => {\n const preGroupedFlatRows = table.getFilteredRowModel().flatRows;\n const {\n rowSelection\n } = table.getState();\n let isAllRowsSelected = Boolean(preGroupedFlatRows.length && Object.keys(rowSelection).length);\n if (isAllRowsSelected) {\n if (preGroupedFlatRows.some(row => row.getCanSelect() && !rowSelection[row.id])) {\n isAllRowsSelected = false;\n }\n }\n return isAllRowsSelected;\n };\n table.getIsAllPageRowsSelected = () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows.filter(row => row.getCanSelect());\n const {\n rowSelection\n } = table.getState();\n let isAllPageRowsSelected = !!paginationFlatRows.length;\n if (isAllPageRowsSelected && paginationFlatRows.some(row => !rowSelection[row.id])) {\n isAllPageRowsSelected = false;\n }\n return isAllPageRowsSelected;\n };\n table.getIsSomeRowsSelected = () => {\n var _table$getState$rowSe;\n const totalSelected = Object.keys((_table$getState$rowSe = table.getState().rowSelection) != null ? _table$getState$rowSe : {}).length;\n return totalSelected > 0 && totalSelected < table.getFilteredRowModel().flatRows.length;\n };\n table.getIsSomePageRowsSelected = () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows;\n return table.getIsAllPageRowsSelected() ? false : paginationFlatRows.filter(row => row.getCanSelect()).some(d => d.getIsSelected() || d.getIsSomeSelected());\n };\n table.getToggleAllRowsSelectedHandler = () => {\n return e => {\n table.toggleAllRowsSelected(e.target.checked);\n };\n };\n table.getToggleAllPageRowsSelectedHandler = () => {\n return e => {\n table.toggleAllPageRowsSelected(e.target.checked);\n };\n };\n },\n createRow: (row, table) => {\n row.toggleSelected = (value, opts) => {\n const isSelected = row.getIsSelected();\n table.setRowSelection(old => {\n var _opts$selectChildren;\n value = typeof value !== 'undefined' ? value : !isSelected;\n if (row.getCanSelect() && isSelected === value) {\n return old;\n }\n const selectedRowIds = {\n ...old\n };\n mutateRowIsSelected(selectedRowIds, row.id, value, (_opts$selectChildren = opts == null ? void 0 : opts.selectChildren) != null ? _opts$selectChildren : true, table);\n return selectedRowIds;\n });\n };\n row.getIsSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isRowSelected(row, rowSelection);\n };\n row.getIsSomeSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isSubRowSelected(row, rowSelection) === 'some';\n };\n row.getIsAllSubRowsSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isSubRowSelected(row, rowSelection) === 'all';\n };\n row.getCanSelect = () => {\n var _table$options$enable;\n if (typeof table.options.enableRowSelection === 'function') {\n return table.options.enableRowSelection(row);\n }\n return (_table$options$enable = table.options.enableRowSelection) != null ? _table$options$enable : true;\n };\n row.getCanSelectSubRows = () => {\n var _table$options$enable2;\n if (typeof table.options.enableSubRowSelection === 'function') {\n return table.options.enableSubRowSelection(row);\n }\n return (_table$options$enable2 = table.options.enableSubRowSelection) != null ? _table$options$enable2 : true;\n };\n row.getCanMultiSelect = () => {\n var _table$options$enable3;\n if (typeof table.options.enableMultiRowSelection === 'function') {\n return table.options.enableMultiRowSelection(row);\n }\n return (_table$options$enable3 = table.options.enableMultiRowSelection) != null ? _table$options$enable3 : true;\n };\n row.getToggleSelectedHandler = () => {\n const canSelect = row.getCanSelect();\n return e => {\n var _target;\n if (!canSelect) return;\n row.toggleSelected((_target = e.target) == null ? void 0 : _target.checked);\n };\n };\n }\n};\nconst mutateRowIsSelected = (selectedRowIds, id, value, includeChildren, table) => {\n var _row$subRows;\n const row = table.getRow(id, true);\n\n // const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && table.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n if (!row.getCanMultiSelect()) {\n Object.keys(selectedRowIds).forEach(key => delete selectedRowIds[key]);\n }\n if (row.getCanSelect()) {\n selectedRowIds[id] = true;\n }\n } else {\n delete selectedRowIds[id];\n }\n // }\n\n if (includeChildren && (_row$subRows = row.subRows) != null && _row$subRows.length && row.getCanSelectSubRows()) {\n row.subRows.forEach(row => mutateRowIsSelected(selectedRowIds, row.id, value, includeChildren, table));\n }\n};\nfunction selectRowsFn(table, rowModel) {\n const rowSelection = table.getState().rowSelection;\n const newSelectedFlatRows = [];\n const newSelectedRowsById = {};\n\n // Filters top level and nested rows\n const recurseRows = function (rows, depth) {\n return rows.map(row => {\n var _row$subRows2;\n const isSelected = isRowSelected(row, rowSelection);\n if (isSelected) {\n newSelectedFlatRows.push(row);\n newSelectedRowsById[row.id] = row;\n }\n if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length) {\n row = {\n ...row,\n subRows: recurseRows(row.subRows)\n };\n }\n if (isSelected) {\n return row;\n }\n }).filter(Boolean);\n };\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById\n };\n}\nfunction isRowSelected(row, selection) {\n var _selection$row$id;\n return (_selection$row$id = selection[row.id]) != null ? _selection$row$id : false;\n}\nfunction isSubRowSelected(row, selection, table) {\n var _row$subRows3;\n if (!((_row$subRows3 = row.subRows) != null && _row$subRows3.length)) return false;\n let allChildrenSelected = true;\n let someSelected = false;\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return;\n }\n if (subRow.getCanSelect()) {\n if (isRowSelected(subRow, selection)) {\n someSelected = true;\n } else {\n allChildrenSelected = false;\n }\n }\n\n // Check row selection of nested subrows\n if (subRow.subRows && subRow.subRows.length) {\n const subRowChildrenSelected = isSubRowSelected(subRow, selection);\n if (subRowChildrenSelected === 'all') {\n someSelected = true;\n } else if (subRowChildrenSelected === 'some') {\n someSelected = true;\n allChildrenSelected = false;\n } else {\n allChildrenSelected = false;\n }\n }\n });\n return allChildrenSelected ? 'all' : someSelected ? 'some' : false;\n}\n\nconst reSplitAlphaNumeric = /([0-9]+)/gm;\nconst alphanumeric = (rowA, rowB, columnId) => {\n return compareAlphanumeric(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());\n};\nconst alphanumericCaseSensitive = (rowA, rowB, columnId) => {\n return compareAlphanumeric(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));\n};\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nconst text = (rowA, rowB, columnId) => {\n return compareBasic(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());\n};\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nconst textCaseSensitive = (rowA, rowB, columnId) => {\n return compareBasic(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));\n};\nconst datetime = (rowA, rowB, columnId) => {\n const a = rowA.getValue(columnId);\n const b = rowB.getValue(columnId);\n\n // Can handle nullish values\n // Use > and < because == (and ===) doesn't work with\n // Date objects (would require calling getTime()).\n return a > b ? 1 : a < b ? -1 : 0;\n};\nconst basic = (rowA, rowB, columnId) => {\n return compareBasic(rowA.getValue(columnId), rowB.getValue(columnId));\n};\n\n// Utils\n\nfunction compareBasic(a, b) {\n return a === b ? 0 : a > b ? 1 : -1;\n}\nfunction toString(a) {\n if (typeof a === 'number') {\n if (isNaN(a) || a === Infinity || a === -Infinity) {\n return '';\n }\n return String(a);\n }\n if (typeof a === 'string') {\n return a;\n }\n return '';\n}\n\n// Mixed sorting is slow, but very inclusive of many edge cases.\n// It handles numbers, mixed alphanumeric combinations, and even\n// null, undefined, and Infinity\nfunction compareAlphanumeric(aStr, bStr) {\n // Split on number groups, but keep the delimiter\n // Then remove falsey split values\n const a = aStr.split(reSplitAlphaNumeric).filter(Boolean);\n const b = bStr.split(reSplitAlphaNumeric).filter(Boolean);\n\n // While\n while (a.length && b.length) {\n const aa = a.shift();\n const bb = b.shift();\n const an = parseInt(aa, 10);\n const bn = parseInt(bb, 10);\n const combo = [an, bn].sort();\n\n // Both are string\n if (isNaN(combo[0])) {\n if (aa > bb) {\n return 1;\n }\n if (bb > aa) {\n return -1;\n }\n continue;\n }\n\n // One is a string, one is a number\n if (isNaN(combo[1])) {\n return isNaN(an) ? -1 : 1;\n }\n\n // Both are numbers\n if (an > bn) {\n return 1;\n }\n if (bn > an) {\n return -1;\n }\n }\n return a.length - b.length;\n}\n\n// Exports\n\nconst sortingFns = {\n alphanumeric,\n alphanumericCaseSensitive,\n text,\n textCaseSensitive,\n datetime,\n basic\n};\n\n//\n\nconst RowSorting = {\n getInitialState: state => {\n return {\n sorting: [],\n ...state\n };\n },\n getDefaultColumnDef: () => {\n return {\n sortingFn: 'auto',\n sortUndefined: 1\n };\n },\n getDefaultOptions: table => {\n return {\n onSortingChange: makeStateUpdater('sorting', table),\n isMultiSortEvent: e => {\n return e.shiftKey;\n }\n };\n },\n createColumn: (column, table) => {\n column.getAutoSortingFn = () => {\n const firstRows = table.getFilteredRowModel().flatRows.slice(10);\n let isString = false;\n for (const row of firstRows) {\n const value = row == null ? void 0 : row.getValue(column.id);\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortingFns.datetime;\n }\n if (typeof value === 'string') {\n isString = true;\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortingFns.alphanumeric;\n }\n }\n }\n if (isString) {\n return sortingFns.text;\n }\n return sortingFns.basic;\n };\n column.getAutoSortDir = () => {\n const firstRow = table.getFilteredRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'string') {\n return 'asc';\n }\n return 'desc';\n };\n column.getSortingFn = () => {\n var _table$options$sortin, _table$options$sortin2;\n if (!column) {\n throw new Error();\n }\n return isFunction(column.columnDef.sortingFn) ? column.columnDef.sortingFn : column.columnDef.sortingFn === 'auto' ? column.getAutoSortingFn() : (_table$options$sortin = (_table$options$sortin2 = table.options.sortingFns) == null ? void 0 : _table$options$sortin2[column.columnDef.sortingFn]) != null ? _table$options$sortin : sortingFns[column.columnDef.sortingFn];\n };\n column.toggleSorting = (desc, multi) => {\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // table.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n\n // this needs to be outside of table.setSorting to be in sync with rerender\n const nextSortingOrder = column.getNextSortingOrder();\n const hasManualValue = typeof desc !== 'undefined' && desc !== null;\n table.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old == null ? void 0 : old.find(d => d.id === column.id);\n const existingIndex = old == null ? void 0 : old.findIndex(d => d.id === column.id);\n let newSorting = [];\n\n // What should we do with this sort action?\n let sortAction;\n let nextDesc = hasManualValue ? desc : nextSortingOrder === 'desc';\n\n // Multi-mode\n if (old != null && old.length && column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle';\n } else {\n sortAction = 'add';\n }\n } else {\n // Normal mode\n if (old != null && old.length && existingIndex !== old.length - 1) {\n sortAction = 'replace';\n } else if (existingSorting) {\n sortAction = 'toggle';\n } else {\n sortAction = 'replace';\n }\n }\n\n // Handle toggle states that will remove the sorting\n if (sortAction === 'toggle') {\n // If we are \"actually\" toggling (not a manual set value), should we remove the sorting?\n if (!hasManualValue) {\n // Is our intention to remove?\n if (!nextSortingOrder) {\n sortAction = 'remove';\n }\n }\n }\n if (sortAction === 'add') {\n var _table$options$maxMul;\n newSorting = [...old, {\n id: column.id,\n desc: nextDesc\n }];\n // Take latest n columns\n newSorting.splice(0, newSorting.length - ((_table$options$maxMul = table.options.maxMultiSortColCount) != null ? _table$options$maxMul : Number.MAX_SAFE_INTEGER));\n } else if (sortAction === 'toggle') {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === column.id) {\n return {\n ...d,\n desc: nextDesc\n };\n }\n return d;\n });\n } else if (sortAction === 'remove') {\n newSorting = old.filter(d => d.id !== column.id);\n } else {\n newSorting = [{\n id: column.id,\n desc: nextDesc\n }];\n }\n return newSorting;\n });\n };\n column.getFirstSortDir = () => {\n var _ref, _column$columnDef$sor;\n const sortDescFirst = (_ref = (_column$columnDef$sor = column.columnDef.sortDescFirst) != null ? _column$columnDef$sor : table.options.sortDescFirst) != null ? _ref : column.getAutoSortDir() === 'desc';\n return sortDescFirst ? 'desc' : 'asc';\n };\n column.getNextSortingOrder = multi => {\n var _table$options$enable, _table$options$enable2;\n const firstSortDirection = column.getFirstSortDir();\n const isSorted = column.getIsSorted();\n if (!isSorted) {\n return firstSortDirection;\n }\n if (isSorted !== firstSortDirection && ((_table$options$enable = table.options.enableSortingRemoval) != null ? _table$options$enable : true) && (\n // If enableSortRemove, enable in general\n multi ? (_table$options$enable2 = table.options.enableMultiRemove) != null ? _table$options$enable2 : true : true) // If multi, don't allow if enableMultiRemove))\n ) {\n return false;\n }\n return isSorted === 'desc' ? 'asc' : 'desc';\n };\n column.getCanSort = () => {\n var _column$columnDef$ena, _table$options$enable3;\n return ((_column$columnDef$ena = column.columnDef.enableSorting) != null ? _column$columnDef$ena : true) && ((_table$options$enable3 = table.options.enableSorting) != null ? _table$options$enable3 : true) && !!column.accessorFn;\n };\n column.getCanMultiSort = () => {\n var _ref2, _column$columnDef$ena2;\n return (_ref2 = (_column$columnDef$ena2 = column.columnDef.enableMultiSort) != null ? _column$columnDef$ena2 : table.options.enableMultiSort) != null ? _ref2 : !!column.accessorFn;\n };\n column.getIsSorted = () => {\n var _table$getState$sorti;\n const columnSort = (_table$getState$sorti = table.getState().sorting) == null ? void 0 : _table$getState$sorti.find(d => d.id === column.id);\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc';\n };\n column.getSortIndex = () => {\n var _table$getState$sorti2, _table$getState$sorti3;\n return (_table$getState$sorti2 = (_table$getState$sorti3 = table.getState().sorting) == null ? void 0 : _table$getState$sorti3.findIndex(d => d.id === column.id)) != null ? _table$getState$sorti2 : -1;\n };\n column.clearSorting = () => {\n //clear sorting for just 1 column\n table.setSorting(old => old != null && old.length ? old.filter(d => d.id !== column.id) : []);\n };\n column.getToggleSortingHandler = () => {\n const canSort = column.getCanSort();\n return e => {\n if (!canSort) return;\n e.persist == null || e.persist();\n column.toggleSorting == null || column.toggleSorting(undefined, column.getCanMultiSort() ? table.options.isMultiSortEvent == null ? void 0 : table.options.isMultiSortEvent(e) : false);\n };\n };\n },\n createTable: table => {\n table.setSorting = updater => table.options.onSortingChange == null ? void 0 : table.options.onSortingChange(updater);\n table.resetSorting = defaultState => {\n var _table$initialState$s, _table$initialState;\n table.setSorting(defaultState ? [] : (_table$initialState$s = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.sorting) != null ? _table$initialState$s : []);\n };\n table.getPreSortedRowModel = () => table.getGroupedRowModel();\n table.getSortedRowModel = () => {\n if (!table._getSortedRowModel && table.options.getSortedRowModel) {\n table._getSortedRowModel = table.options.getSortedRowModel(table);\n }\n if (table.options.manualSorting || !table._getSortedRowModel) {\n return table.getPreSortedRowModel();\n }\n return table._getSortedRowModel();\n };\n }\n};\n\nconst builtInFeatures = [Headers, ColumnVisibility, ColumnOrdering, ColumnPinning, ColumnFaceting, ColumnFiltering, GlobalFaceting,\n//depends on ColumnFaceting\nGlobalFiltering,\n//depends on ColumnFiltering\nRowSorting, ColumnGrouping,\n//depends on RowSorting\nRowExpanding, RowPagination, RowPinning, RowSelection, ColumnSizing];\n\n//\n\nfunction createTable(options) {\n var _options$_features, _options$initialState;\n if (process.env.NODE_ENV !== 'production' && (options.debugAll || options.debugTable)) {\n console.info('Creating Table Instance...');\n }\n const _features = [...builtInFeatures, ...((_options$_features = options._features) != null ? _options$_features : [])];\n let table = {\n _features\n };\n const defaultOptions = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions == null ? void 0 : feature.getDefaultOptions(table));\n }, {});\n const mergeOptions = options => {\n if (table.options.mergeOptions) {\n return table.options.mergeOptions(defaultOptions, options);\n }\n return {\n ...defaultOptions,\n ...options\n };\n };\n const coreInitialState = {};\n let initialState = {\n ...coreInitialState,\n ...((_options$initialState = options.initialState) != null ? _options$initialState : {})\n };\n table._features.forEach(feature => {\n var _feature$getInitialSt;\n initialState = (_feature$getInitialSt = feature.getInitialState == null ? void 0 : feature.getInitialState(initialState)) != null ? _feature$getInitialSt : initialState;\n });\n const queued = [];\n let queuedTimeout = false;\n const coreInstance = {\n _features,\n options: {\n ...defaultOptions,\n ...options\n },\n initialState,\n _queue: cb => {\n queued.push(cb);\n if (!queuedTimeout) {\n queuedTimeout = true;\n\n // Schedule a microtask to run the queued callbacks after\n // the current call stack (render, etc) has finished.\n Promise.resolve().then(() => {\n while (queued.length) {\n queued.shift()();\n }\n queuedTimeout = false;\n }).catch(error => setTimeout(() => {\n throw error;\n }));\n }\n },\n reset: () => {\n table.setState(table.initialState);\n },\n setOptions: updater => {\n const newOptions = functionalUpdate(updater, table.options);\n table.options = mergeOptions(newOptions);\n },\n getState: () => {\n return table.options.state;\n },\n setState: updater => {\n table.options.onStateChange == null || table.options.onStateChange(updater);\n },\n _getRowId: (row, index, parent) => {\n var _table$options$getRow;\n return (_table$options$getRow = table.options.getRowId == null ? void 0 : table.options.getRowId(row, index, parent)) != null ? _table$options$getRow : `${parent ? [parent.id, index].join('.') : index}`;\n },\n getCoreRowModel: () => {\n if (!table._getCoreRowModel) {\n table._getCoreRowModel = table.options.getCoreRowModel(table);\n }\n return table._getCoreRowModel();\n },\n // The final calls start at the bottom of the model,\n // expanded rows, which then work their way up\n\n getRowModel: () => {\n return table.getPaginationRowModel();\n },\n //in next version, we should just pass in the row model as the optional 2nd arg\n getRow: (id, searchAll) => {\n let row = (searchAll ? table.getPrePaginationRowModel() : table.getRowModel()).rowsById[id];\n if (!row) {\n row = table.getCoreRowModel().rowsById[id];\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRow could not find row with ID: ${id}`);\n }\n throw new Error();\n }\n }\n return row;\n },\n _getDefaultColumnDef: memo(() => [table.options.defaultColumn], defaultColumn => {\n var _defaultColumn;\n defaultColumn = (_defaultColumn = defaultColumn) != null ? _defaultColumn : {};\n return {\n header: props => {\n const resolvedColumnDef = props.header.column.columnDef;\n if (resolvedColumnDef.accessorKey) {\n return resolvedColumnDef.accessorKey;\n }\n if (resolvedColumnDef.accessorFn) {\n return resolvedColumnDef.id;\n }\n return null;\n },\n // footer: props => props.header.column.id,\n cell: props => {\n var _props$renderValue$to, _props$renderValue;\n return (_props$renderValue$to = (_props$renderValue = props.renderValue()) == null || _props$renderValue.toString == null ? void 0 : _props$renderValue.toString()) != null ? _props$renderValue$to : null;\n },\n ...table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumnDef == null ? void 0 : feature.getDefaultColumnDef());\n }, {}),\n ...defaultColumn\n };\n }, getMemoOptions(options, 'debugColumns', '_getDefaultColumnDef')),\n _getColumnDefs: () => table.options.columns,\n getAllColumns: memo(() => [table._getColumnDefs()], columnDefs => {\n const recurseColumns = function (columnDefs, parent, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n return columnDefs.map(columnDef => {\n const column = createColumn(table, columnDef, depth, parent);\n const groupingColumnDef = columnDef;\n column.columns = groupingColumnDef.columns ? recurseColumns(groupingColumnDef.columns, column, depth + 1) : [];\n return column;\n });\n };\n return recurseColumns(columnDefs);\n }, getMemoOptions(options, 'debugColumns', 'getAllColumns')),\n getAllFlatColumns: memo(() => [table.getAllColumns()], allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns();\n });\n }, getMemoOptions(options, 'debugColumns', 'getAllFlatColumns')),\n _getAllFlatColumnsById: memo(() => [table.getAllFlatColumns()], flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column;\n return acc;\n }, {});\n }, getMemoOptions(options, 'debugColumns', 'getAllFlatColumnsById')),\n getAllLeafColumns: memo(() => [table.getAllColumns(), table._getOrderColumnsFn()], (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns());\n return orderColumns(leafColumns);\n }, getMemoOptions(options, 'debugColumns', 'getAllLeafColumns')),\n getColumn: columnId => {\n const column = table._getAllFlatColumnsById()[columnId];\n if (process.env.NODE_ENV !== 'production' && !column) {\n console.error(`[Table] Column with id '${columnId}' does not exist.`);\n }\n return column;\n }\n };\n Object.assign(table, coreInstance);\n for (let index = 0; index < table._features.length; index++) {\n const feature = table._features[index];\n feature == null || feature.createTable == null || feature.createTable(table);\n }\n return table;\n}\n\nfunction getCoreRowModel() {\n return table => memo(() => [table.options.data], data => {\n const rowModel = {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n const accessRows = function (originalRows, depth, parentRow) {\n if (depth === void 0) {\n depth = 0;\n }\n const rows = [];\n for (let i = 0; i < originalRows.length; i++) {\n // This could be an expensive check at scale, so we should move it somewhere else, but where?\n // if (!id) {\n // if (process.env.NODE_ENV !== 'production') {\n // throw new Error(`getRowId expected an ID, but got ${id}`)\n // }\n // }\n\n // Make the row\n const row = createRow(table, table._getRowId(originalRows[i], i, parentRow), originalRows[i], i, depth, undefined, parentRow == null ? void 0 : parentRow.id);\n\n // Keep track of every row in a flat array\n rowModel.flatRows.push(row);\n // Also keep track of every row by its ID\n rowModel.rowsById[row.id] = row;\n // Push table row into parent\n rows.push(row);\n\n // Get the original subrows\n if (table.options.getSubRows) {\n var _row$originalSubRows;\n row.originalSubRows = table.options.getSubRows(originalRows[i], i);\n\n // Then recursively access them\n if ((_row$originalSubRows = row.originalSubRows) != null && _row$originalSubRows.length) {\n row.subRows = accessRows(row.originalSubRows, depth + 1, row);\n }\n }\n }\n return rows;\n };\n rowModel.rows = accessRows(data);\n return rowModel;\n }, getMemoOptions(table.options, 'debugTable', 'getRowModel', () => table._autoResetPageIndex()));\n}\n\nfunction getExpandedRowModel() {\n return table => memo(() => [table.getState().expanded, table.getPreExpandedRowModel(), table.options.paginateExpandedRows], (expanded, rowModel, paginateExpandedRows) => {\n if (!rowModel.rows.length || expanded !== true && !Object.keys(expanded != null ? expanded : {}).length) {\n return rowModel;\n }\n if (!paginateExpandedRows) {\n // Only expand rows at this point if they are being paginated\n return rowModel;\n }\n return expandRows(rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getExpandedRowModel'));\n}\nfunction expandRows(rowModel) {\n const expandedRows = [];\n const handleRow = row => {\n var _row$subRows;\n expandedRows.push(row);\n if ((_row$subRows = row.subRows) != null && _row$subRows.length && row.getIsExpanded()) {\n row.subRows.forEach(handleRow);\n }\n };\n rowModel.rows.forEach(handleRow);\n return {\n rows: expandedRows,\n flatRows: rowModel.flatRows,\n rowsById: rowModel.rowsById\n };\n}\n\nfunction getFacetedMinMaxValues() {\n return (table, columnId) => memo(() => {\n var _table$getColumn;\n return [(_table$getColumn = table.getColumn(columnId)) == null ? void 0 : _table$getColumn.getFacetedRowModel()];\n }, facetedRowModel => {\n if (!facetedRowModel) return undefined;\n const uniqueValues = facetedRowModel.flatRows.flatMap(flatRow => {\n var _flatRow$getUniqueVal;\n return (_flatRow$getUniqueVal = flatRow.getUniqueValues(columnId)) != null ? _flatRow$getUniqueVal : [];\n }).map(Number).filter(value => !Number.isNaN(value));\n if (!uniqueValues.length) return;\n let facetedMinValue = uniqueValues[0];\n let facetedMaxValue = uniqueValues[uniqueValues.length - 1];\n for (const value of uniqueValues) {\n if (value < facetedMinValue) facetedMinValue = value;else if (value > facetedMaxValue) facetedMaxValue = value;\n }\n return [facetedMinValue, facetedMaxValue];\n }, getMemoOptions(table.options, 'debugTable', 'getFacetedMinMaxValues'));\n}\n\nfunction filterRows(rows, filterRowImpl, table) {\n if (table.options.filterFromLeafRows) {\n return filterRowModelFromLeafs(rows, filterRowImpl, table);\n }\n return filterRowModelFromRoot(rows, filterRowImpl, table);\n}\nfunction filterRowModelFromLeafs(rowsToFilter, filterRow, table) {\n var _table$options$maxLea;\n const newFilteredFlatRows = [];\n const newFilteredRowsById = {};\n const maxDepth = (_table$options$maxLea = table.options.maxLeafRowFilterDepth) != null ? _table$options$maxLea : 100;\n const recurseFilterRows = function (rowsToFilter, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n const rows = [];\n\n // Filter from children up first\n for (let i = 0; i < rowsToFilter.length; i++) {\n var _row$subRows;\n let row = rowsToFilter[i];\n const newRow = createRow(table, row.id, row.original, row.index, row.depth, undefined, row.parentId);\n newRow.columnFilters = row.columnFilters;\n if ((_row$subRows = row.subRows) != null && _row$subRows.length && depth < maxDepth) {\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1);\n row = newRow;\n if (filterRow(row) && !newRow.subRows.length) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredFlatRows.push(row);\n continue;\n }\n if (filterRow(row) || newRow.subRows.length) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredFlatRows.push(row);\n continue;\n }\n } else {\n row = newRow;\n if (filterRow(row)) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredFlatRows.push(row);\n }\n }\n }\n return rows;\n };\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById\n };\n}\nfunction filterRowModelFromRoot(rowsToFilter, filterRow, table) {\n var _table$options$maxLea2;\n const newFilteredFlatRows = [];\n const newFilteredRowsById = {};\n const maxDepth = (_table$options$maxLea2 = table.options.maxLeafRowFilterDepth) != null ? _table$options$maxLea2 : 100;\n\n // Filters top level and nested rows\n const recurseFilterRows = function (rowsToFilter, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n // Filter from parents downward first\n\n const rows = [];\n\n // Apply the filter to any subRows\n for (let i = 0; i < rowsToFilter.length; i++) {\n let row = rowsToFilter[i];\n const pass = filterRow(row);\n if (pass) {\n var _row$subRows2;\n if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length && depth < maxDepth) {\n const newRow = createRow(table, row.id, row.original, row.index, row.depth, undefined, row.parentId);\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1);\n row = newRow;\n }\n rows.push(row);\n newFilteredFlatRows.push(row);\n newFilteredRowsById[row.id] = row;\n }\n }\n return rows;\n };\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById\n };\n}\n\nfunction getFacetedRowModel() {\n return (table, columnId) => memo(() => [table.getPreFilteredRowModel(), table.getState().columnFilters, table.getState().globalFilter, table.getFilteredRowModel()], (preRowModel, columnFilters, globalFilter) => {\n if (!preRowModel.rows.length || !(columnFilters != null && columnFilters.length) && !globalFilter) {\n return preRowModel;\n }\n const filterableIds = [...columnFilters.map(d => d.id).filter(d => d !== columnId), globalFilter ? '__global__' : undefined].filter(Boolean);\n const filterRowsImpl = row => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilters[filterableIds[i]] === false) {\n return false;\n }\n }\n return true;\n };\n return filterRows(preRowModel.rows, filterRowsImpl, table);\n }, getMemoOptions(table.options, 'debugTable', 'getFacetedRowModel'));\n}\n\nfunction getFacetedUniqueValues() {\n return (table, columnId) => memo(() => {\n var _table$getColumn;\n return [(_table$getColumn = table.getColumn(columnId)) == null ? void 0 : _table$getColumn.getFacetedRowModel()];\n }, facetedRowModel => {\n if (!facetedRowModel) return new Map();\n let facetedUniqueValues = new Map();\n for (let i = 0; i < facetedRowModel.flatRows.length; i++) {\n const values = facetedRowModel.flatRows[i].getUniqueValues(columnId);\n for (let j = 0; j < values.length; j++) {\n const value = values[j];\n if (facetedUniqueValues.has(value)) {\n var _facetedUniqueValues$;\n facetedUniqueValues.set(value, ((_facetedUniqueValues$ = facetedUniqueValues.get(value)) != null ? _facetedUniqueValues$ : 0) + 1);\n } else {\n facetedUniqueValues.set(value, 1);\n }\n }\n }\n return facetedUniqueValues;\n }, getMemoOptions(table.options, 'debugTable', `getFacetedUniqueValues_${columnId}`));\n}\n\nfunction getFilteredRowModel() {\n return table => memo(() => [table.getPreFilteredRowModel(), table.getState().columnFilters, table.getState().globalFilter], (rowModel, columnFilters, globalFilter) => {\n if (!rowModel.rows.length || !(columnFilters != null && columnFilters.length) && !globalFilter) {\n for (let i = 0; i < rowModel.flatRows.length; i++) {\n rowModel.flatRows[i].columnFilters = {};\n rowModel.flatRows[i].columnFiltersMeta = {};\n }\n return rowModel;\n }\n const resolvedColumnFilters = [];\n const resolvedGlobalFilters = [];\n (columnFilters != null ? columnFilters : []).forEach(d => {\n var _filterFn$resolveFilt;\n const column = table.getColumn(d.id);\n if (!column) {\n return;\n }\n const filterFn = column.getFilterFn();\n if (!filterFn) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Could not find a valid 'column.filterFn' for column with the ID: ${column.id}.`);\n }\n return;\n }\n resolvedColumnFilters.push({\n id: d.id,\n filterFn,\n resolvedValue: (_filterFn$resolveFilt = filterFn.resolveFilterValue == null ? void 0 : filterFn.resolveFilterValue(d.value)) != null ? _filterFn$resolveFilt : d.value\n });\n });\n const filterableIds = (columnFilters != null ? columnFilters : []).map(d => d.id);\n const globalFilterFn = table.getGlobalFilterFn();\n const globallyFilterableColumns = table.getAllLeafColumns().filter(column => column.getCanGlobalFilter());\n if (globalFilter && globalFilterFn && globallyFilterableColumns.length) {\n filterableIds.push('__global__');\n globallyFilterableColumns.forEach(column => {\n var _globalFilterFn$resol;\n resolvedGlobalFilters.push({\n id: column.id,\n filterFn: globalFilterFn,\n resolvedValue: (_globalFilterFn$resol = globalFilterFn.resolveFilterValue == null ? void 0 : globalFilterFn.resolveFilterValue(globalFilter)) != null ? _globalFilterFn$resol : globalFilter\n });\n });\n }\n let currentColumnFilter;\n let currentGlobalFilter;\n\n // Flag the prefiltered row model with each filter state\n for (let j = 0; j < rowModel.flatRows.length; j++) {\n const row = rowModel.flatRows[j];\n row.columnFilters = {};\n if (resolvedColumnFilters.length) {\n for (let i = 0; i < resolvedColumnFilters.length; i++) {\n currentColumnFilter = resolvedColumnFilters[i];\n const id = currentColumnFilter.id;\n\n // Tag the row with the column filter state\n row.columnFilters[id] = currentColumnFilter.filterFn(row, id, currentColumnFilter.resolvedValue, filterMeta => {\n row.columnFiltersMeta[id] = filterMeta;\n });\n }\n }\n if (resolvedGlobalFilters.length) {\n for (let i = 0; i < resolvedGlobalFilters.length; i++) {\n currentGlobalFilter = resolvedGlobalFilters[i];\n const id = currentGlobalFilter.id;\n // Tag the row with the first truthy global filter state\n if (currentGlobalFilter.filterFn(row, id, currentGlobalFilter.resolvedValue, filterMeta => {\n row.columnFiltersMeta[id] = filterMeta;\n })) {\n row.columnFilters.__global__ = true;\n break;\n }\n }\n if (row.columnFilters.__global__ !== true) {\n row.columnFilters.__global__ = false;\n }\n }\n }\n const filterRowsImpl = row => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilters[filterableIds[i]] === false) {\n return false;\n }\n }\n return true;\n };\n\n // Filter final rows using all of the active filters\n return filterRows(rowModel.rows, filterRowsImpl, table);\n }, getMemoOptions(table.options, 'debugTable', 'getFilteredRowModel', () => table._autoResetPageIndex()));\n}\n\nfunction getGroupedRowModel() {\n return table => memo(() => [table.getState().grouping, table.getPreGroupedRowModel()], (grouping, rowModel) => {\n if (!rowModel.rows.length || !grouping.length) {\n rowModel.rows.forEach(row => {\n row.depth = 0;\n row.parentId = undefined;\n });\n return rowModel;\n }\n\n // Filter the grouping list down to columns that exist\n const existingGrouping = grouping.filter(columnId => table.getColumn(columnId));\n const groupedFlatRows = [];\n const groupedRowsById = {};\n // const onlyGroupedFlatRows: Row[] = [];\n // const onlyGroupedRowsById: Record<RowId, Row> = {};\n // const nonGroupedFlatRows: Row[] = [];\n // const nonGroupedRowsById: Record<RowId, Row> = {};\n\n // Recursively group the data\n const groupUpRecursively = function (rows, depth, parentId) {\n if (depth === void 0) {\n depth = 0;\n }\n // Grouping depth has been been met\n // Stop grouping and simply rewrite thd depth and row relationships\n if (depth >= existingGrouping.length) {\n return rows.map(row => {\n row.depth = depth;\n groupedFlatRows.push(row);\n groupedRowsById[row.id] = row;\n if (row.subRows) {\n row.subRows = groupUpRecursively(row.subRows, depth + 1, row.id);\n }\n return row;\n });\n }\n const columnId = existingGrouping[depth];\n\n // Group the rows together for this level\n const rowGroupsMap = groupBy(rows, columnId);\n\n // Perform aggregations for each group\n const aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map((_ref, index) => {\n let [groupingValue, groupedRows] = _ref;\n let id = `${columnId}:${groupingValue}`;\n id = parentId ? `${parentId}>${id}` : id;\n\n // First, Recurse to group sub rows before aggregation\n const subRows = groupUpRecursively(groupedRows, depth + 1, id);\n subRows.forEach(subRow => {\n subRow.parentId = id;\n });\n\n // Flatten the leaf rows of the rows in this group\n const leafRows = depth ? flattenBy(groupedRows, row => row.subRows) : groupedRows;\n const row = createRow(table, id, leafRows[0].original, index, depth, undefined, parentId);\n Object.assign(row, {\n groupingColumnId: columnId,\n groupingValue,\n subRows,\n leafRows,\n getValue: columnId => {\n // Don't aggregate columns that are in the grouping\n if (existingGrouping.includes(columnId)) {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId];\n }\n if (groupedRows[0]) {\n var _groupedRows$0$getVal;\n row._valuesCache[columnId] = (_groupedRows$0$getVal = groupedRows[0].getValue(columnId)) != null ? _groupedRows$0$getVal : undefined;\n }\n return row._valuesCache[columnId];\n }\n if (row._groupingValuesCache.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId];\n }\n\n // Aggregate the values\n const column = table.getColumn(columnId);\n const aggregateFn = column == null ? void 0 : column.getAggregationFn();\n if (aggregateFn) {\n row._groupingValuesCache[columnId] = aggregateFn(columnId, leafRows, groupedRows);\n return row._groupingValuesCache[columnId];\n }\n }\n });\n subRows.forEach(subRow => {\n groupedFlatRows.push(subRow);\n groupedRowsById[subRow.id] = subRow;\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n });\n return row;\n });\n return aggregatedGroupedRows;\n };\n const groupedRows = groupUpRecursively(rowModel.rows, 0);\n groupedRows.forEach(subRow => {\n groupedFlatRows.push(subRow);\n groupedRowsById[subRow.id] = subRow;\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n });\n return {\n rows: groupedRows,\n flatRows: groupedFlatRows,\n rowsById: groupedRowsById\n };\n }, getMemoOptions(table.options, 'debugTable', 'getGroupedRowModel', () => {\n table._queue(() => {\n table._autoResetExpanded();\n table._autoResetPageIndex();\n });\n }));\n}\nfunction groupBy(rows, columnId) {\n const groupMap = new Map();\n return rows.reduce((map, row) => {\n const resKey = `${row.getGroupingValue(columnId)}`;\n const previous = map.get(resKey);\n if (!previous) {\n map.set(resKey, [row]);\n } else {\n previous.push(row);\n }\n return map;\n }, groupMap);\n}\n\nfunction getPaginationRowModel(opts) {\n return table => memo(() => [table.getState().pagination, table.getPrePaginationRowModel(), table.options.paginateExpandedRows ? undefined : table.getState().expanded], (pagination, rowModel) => {\n if (!rowModel.rows.length) {\n return rowModel;\n }\n const {\n pageSize,\n pageIndex\n } = pagination;\n let {\n rows,\n flatRows,\n rowsById\n } = rowModel;\n const pageStart = pageSize * pageIndex;\n const pageEnd = pageStart + pageSize;\n rows = rows.slice(pageStart, pageEnd);\n let paginatedRowModel;\n if (!table.options.paginateExpandedRows) {\n paginatedRowModel = expandRows({\n rows,\n flatRows,\n rowsById\n });\n } else {\n paginatedRowModel = {\n rows,\n flatRows,\n rowsById\n };\n }\n paginatedRowModel.flatRows = [];\n const handleRow = row => {\n paginatedRowModel.flatRows.push(row);\n if (row.subRows.length) {\n row.subRows.forEach(handleRow);\n }\n };\n paginatedRowModel.rows.forEach(handleRow);\n return paginatedRowModel;\n }, getMemoOptions(table.options, 'debugTable', 'getPaginationRowModel'));\n}\n\nfunction getSortedRowModel() {\n return table => memo(() => [table.getState().sorting, table.getPreSortedRowModel()], (sorting, rowModel) => {\n if (!rowModel.rows.length || !(sorting != null && sorting.length)) {\n return rowModel;\n }\n const sortingState = table.getState().sorting;\n const sortedFlatRows = [];\n\n // Filter out sortings that correspond to non existing columns\n const availableSorting = sortingState.filter(sort => {\n var _table$getColumn;\n return (_table$getColumn = table.getColumn(sort.id)) == null ? void 0 : _table$getColumn.getCanSort();\n });\n const columnInfoById = {};\n availableSorting.forEach(sortEntry => {\n const column = table.getColumn(sortEntry.id);\n if (!column) return;\n columnInfoById[sortEntry.id] = {\n sortUndefined: column.columnDef.sortUndefined,\n invertSorting: column.columnDef.invertSorting,\n sortingFn: column.getSortingFn()\n };\n });\n const sortData = rows => {\n // This will also perform a stable sorting using the row index\n // if needed.\n const sortedData = rows.map(row => ({\n ...row\n }));\n sortedData.sort((rowA, rowB) => {\n for (let i = 0; i < availableSorting.length; i += 1) {\n var _sortEntry$desc;\n const sortEntry = availableSorting[i];\n const columnInfo = columnInfoById[sortEntry.id];\n const sortUndefined = columnInfo.sortUndefined;\n const isDesc = (_sortEntry$desc = sortEntry == null ? void 0 : sortEntry.desc) != null ? _sortEntry$desc : false;\n let sortInt = 0;\n\n // All sorting ints should always return in ascending order\n if (sortUndefined) {\n const aValue = rowA.getValue(sortEntry.id);\n const bValue = rowB.getValue(sortEntry.id);\n const aUndefined = aValue === undefined;\n const bUndefined = bValue === undefined;\n if (aUndefined || bUndefined) {\n if (sortUndefined === 'first') return aUndefined ? -1 : 1;\n if (sortUndefined === 'last') return aUndefined ? 1 : -1;\n sortInt = aUndefined && bUndefined ? 0 : aUndefined ? sortUndefined : -sortUndefined;\n }\n }\n if (sortInt === 0) {\n sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id);\n }\n\n // If sorting is non-zero, take care of desc and inversion\n if (sortInt !== 0) {\n if (isDesc) {\n sortInt *= -1;\n }\n if (columnInfo.invertSorting) {\n sortInt *= -1;\n }\n return sortInt;\n }\n }\n return rowA.index - rowB.index;\n });\n\n // If there are sub-rows, sort them\n sortedData.forEach(row => {\n var _row$subRows;\n sortedFlatRows.push(row);\n if ((_row$subRows = row.subRows) != null && _row$subRows.length) {\n row.subRows = sortData(row.subRows);\n }\n });\n return sortedData;\n };\n return {\n rows: sortData(rowModel.rows),\n flatRows: sortedFlatRows,\n rowsById: rowModel.rowsById\n };\n }, getMemoOptions(table.options, 'debugTable', 'getSortedRowModel', () => table._autoResetPageIndex()));\n}\n\nexport { ColumnFaceting, ColumnFiltering, ColumnGrouping, ColumnOrdering, ColumnPinning, ColumnSizing, ColumnVisibility, GlobalFaceting, GlobalFiltering, Headers, RowExpanding, RowPagination, RowPinning, RowSelection, RowSorting, _getVisibleLeafColumns, aggregationFns, buildHeaderGroups, createCell, createColumn, createColumnHelper, createRow, createTable, defaultColumnSizing, expandRows, filterFns, flattenBy, functionalUpdate, getCoreRowModel, getExpandedRowModel, getFacetedMinMaxValues, getFacetedRowModel, getFacetedUniqueValues, getFilteredRowModel, getGroupedRowModel, getMemoOptions, getPaginationRowModel, getSortedRowModel, isFunction, isNumberArray, isRowSelected, isSubRowSelected, makeStateUpdater, memo, noop, orderColumns, passiveEventSupported, reSplitAlphaNumeric, selectRowsFn, shouldAutoRemoveFilter, sortingFns };\n//# sourceMappingURL=index.esm.js.map\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Debounce function to prevent multiple calls in a short\n * period of time (e.g., input events).\n * @param {T} func - Function to be debounced\n * @param {number} wait - Time in milliseconds\n * @returns {(...args: Parameters<T>) => void} - Debounced function\n */\nexport function debounce<T extends (...args: any[]) => any>(\n func: T,\n wait: number,\n): (...args: Parameters<T>) => void {\n let timeout: ReturnType<typeof setTimeout>;\n\n return function executedFunction(...args: Parameters<T>) {\n const later = () => {\n clearTimeout(timeout);\n func(...args);\n };\n\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n };\n}\n","@import '../../styles/focus-ring';\n\n@mixin root-styles() {\n display: block;\n}\n\n@mixin datagrid-variables() {\n --nv-datagrid-border-default: var(\n --components-form-field-border-default\n );\n --nv-datagrid-border-hover: var(--components-form-field-border-hover);\n --nv-datagrid-border-focus: var(--components-form-field-border-default);\n --nv-datagrid-background-default: var(\n --components-form-field-background-default\n );\n --nv-datagrid-background-checked: var(\n --components-form-field-background-checked\n );\n --nv-datagrid-background-disabled: var(\n --components-form-field-background-disabled\n ); \n --nv-datagrid-color-checked: var(\n --components-form-shape-foreground-default\n );\n --nv-datagrid-color-disabled: var(\n --components-form-shape-foreground-disabled\n );\n --nv-datagrid-outline-color: var(--color-focus-brand);\n}\n\n@mixin checkbox-container-styles() {\n position: relative;\n color: var(--nv-datagrid-color-checked);\n\n input[type='checkbox'][readonly] {\n // TODO: Find a way to use the --components-form-opacity-disabled variable properly, right now it outputs a value of 50px instead of 0.5.\n opacity: 0.5;\n }\n\n &:has(input[type='checkbox']:disabled:not([readonly])) {\n color: var(--nv-datagrid-color-disabled);\n }\n}\n\n@mixin input-styles() {\n appearance: none;\n position: relative;\n display: flex;\n width: var(--form-checkbox-size);\n height: var(--form-checkbox-size);\n flex-direction: column;\n align-items: flex-start;\n border-radius: var(--form-checkbox-radius);\n border-width: var(--form-checkbox-border-width);\n border-style: solid;\n border-color: var(--nv-datagrid-border-default);\n background: var(--nv-datagrid-background-default);\n\n &:hover {\n border-color: var(--nv-datagrid-border-hover);\n }\n\n &:focus {\n border-color: var(--nv-datagrid-border-focus);\n }\n\n @include focus-ring(var(--nv-datagrid-outline-color));\n\n &:checked,\n &:indeterminate {\n background: var(--nv-datagrid-background-checked);\n border-color: var(--nv-datagrid-background-checked);\n }\n\n &:disabled:not([readonly]) {\n background: var(--nv-datagrid-background-disabled);\n border-color: var(--nv-datagrid-border-default);\n }\n\n &[readonly] {\n // TODO: Find a way to use the --components-form-opacity-disabled variable properly, right now it outputs a value of 50px instead of 0.5.\n opacity: 0.5;\n }\n}\n\n@mixin icon-styles() {\n pointer-events: none;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n width: var(--form-checkbox-icon-size);\n height: var(--form-checkbox-icon-size);\n fill: none;\n stroke: currentcolor;\n stroke-width: var(--form-checkbox-icon-stroke);\n flex-shrink: 0;\n }\n}\n\nnv-datagrid {\n @include datagrid-variables();\n @include root-styles();\n\n .hidden {\n display: none;\n }\n\n table {\n border-collapse: collapse;\n border-color: inherit;\n text-indent: 0;\n width: 100%;\n }\n th {\n text-align: left;\n border-bottom: 1px solid var(--components-datagrid-header-border);\n height: var(--spacing-12);\n padding: var(--spacing-3) var(--spacing-4);\n font-size: var(--font-size-md);\n font-weight: 700;\n color: var(--components-datagrid-header-text);\n }\n td {\n border-bottom: 1px solid var(--components-datagrid-body-border);\n height: var(--spacing-12);\n max-height: var(--spacing-14);\n padding: var(--spacing-2) var(--spacing-4);\n font-size: var(--font-size-md);\n font-weight: 400;\n color: var(--components-datagrid-body-text);\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n tbody > tr:hover {\n background: var(--color-interaction-container-neutral-background-hover);\n }\n .cursor-pointer {\n cursor: pointer;\n }\n .select-none {\n -webkit-user-select: none;\n user-select: none;\n }\n .search-container {\n display: flex;\n }\n\n .checkbox-container {\n @include checkbox-container-styles();\n\n input[type='checkbox'] {\n @include input-styles();\n }\n\n .icon {\n @include icon-styles();\n }\n }\n}\n\n// https://tailwindcss.com/docs/table-layout\n","/* 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@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()\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()\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()\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"],"version":3}
|
|
1
|
+
{"file":"nv-datagrid.entry.cjs.js","mappings":"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","names":["SortingPossibility","h","Host"],"sources":["../../node_modules/@tanstack/table-core/build/lib/index.esm.js","src/utils/dom.utils.ts","src/utils/input.utils.ts","src/components/nv-datagrid/nv-datagrid.scss?tag=nv-datagrid","src/components/nv-datagrid/nv-datagrid.tsx"],"sourcesContent":["/**\n * table-core\n *\n * Copyright (c) TanStack\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n// type Person = {\n// firstName: string\n// lastName: string\n// age: number\n// visits: number\n// status: string\n// progress: number\n// createdAt: Date\n// nested: {\n// foo: [\n// {\n// bar: 'bar'\n// }\n// ]\n// bar: { subBar: boolean }[]\n// baz: {\n// foo: 'foo'\n// bar: {\n// baz: 'baz'\n// }\n// }\n// }\n// }\n\n// const test: DeepKeys<Person> = 'nested.foo.0.bar'\n// const test2: DeepKeys<Person> = 'nested.bar'\n\n// const helper = createColumnHelper<Person>()\n\n// helper.accessor('nested.foo', {\n// cell: info => info.getValue(),\n// })\n\n// helper.accessor('nested.foo.0.bar', {\n// cell: info => info.getValue(),\n// })\n\n// helper.accessor('nested.bar', {\n// cell: info => info.getValue(),\n// })\n\nfunction createColumnHelper() {\n return {\n accessor: (accessor, column) => {\n return typeof accessor === 'function' ? {\n ...column,\n accessorFn: accessor\n } : {\n ...column,\n accessorKey: accessor\n };\n },\n display: column => column,\n group: column => column\n };\n}\n\n// Is this type a tuple?\n\n// If this type is a tuple, what indices are allowed?\n\n///\n\nfunction functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nfunction noop() {\n //\n}\nfunction makeStateUpdater(key, instance) {\n return updater => {\n instance.setState(old => {\n return {\n ...old,\n [key]: functionalUpdate(updater, old[key])\n };\n });\n };\n}\nfunction isFunction(d) {\n return d instanceof Function;\n}\nfunction isNumberArray(d) {\n return Array.isArray(d) && d.every(val => typeof val === 'number');\n}\nfunction flattenBy(arr, getChildren) {\n const flat = [];\n const recurse = subArr => {\n subArr.forEach(item => {\n flat.push(item);\n const children = getChildren(item);\n if (children != null && children.length) {\n recurse(children);\n }\n });\n };\n recurse(arr);\n return flat;\n}\nfunction memo(getDeps, fn, opts) {\n let deps = [];\n let result;\n return depArgs => {\n let depTime;\n if (opts.key && opts.debug) depTime = Date.now();\n const newDeps = getDeps(depArgs);\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n if (!depsChanged) {\n return result;\n }\n deps = newDeps;\n let resultTime;\n if (opts.key && opts.debug) resultTime = Date.now();\n result = fn(...newDeps);\n opts == null || opts.onChange == null || opts.onChange(result);\n if (opts.key && opts.debug) {\n if (opts != null && opts.debug()) {\n const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n const resultFpsPercentage = resultEndTime / 16;\n const pad = (str, num) => {\n str = String(str);\n while (str.length < num) {\n str = ' ' + str;\n }\n return str;\n };\n console.info(`%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`, `\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(0, Math.min(120 - 120 * resultFpsPercentage, 120))}deg 100% 31%);`, opts == null ? void 0 : opts.key);\n }\n }\n return result;\n };\n}\nfunction getMemoOptions(tableOptions, debugLevel, key, onChange) {\n return {\n debug: () => {\n var _tableOptions$debugAl;\n return (_tableOptions$debugAl = tableOptions == null ? void 0 : tableOptions.debugAll) != null ? _tableOptions$debugAl : tableOptions[debugLevel];\n },\n key: process.env.NODE_ENV === 'development' && key,\n onChange\n };\n}\n\nfunction createCell(table, row, column, columnId) {\n const getRenderValue = () => {\n var _cell$getValue;\n return (_cell$getValue = cell.getValue()) != null ? _cell$getValue : table.options.renderFallbackValue;\n };\n const cell = {\n id: `${row.id}_${column.id}`,\n row,\n column,\n getValue: () => row.getValue(columnId),\n renderValue: getRenderValue,\n getContext: memo(() => [table, column, row, cell], (table, column, row, cell) => ({\n table,\n column,\n row,\n cell: cell,\n getValue: cell.getValue,\n renderValue: cell.renderValue\n }), getMemoOptions(table.options, 'debugCells', 'cell.getContext'))\n };\n table._features.forEach(feature => {\n feature.createCell == null || feature.createCell(cell, column, row, table);\n }, {});\n return cell;\n}\n\nfunction createColumn(table, columnDef, depth, parent) {\n var _ref, _resolvedColumnDef$id;\n const defaultColumn = table._getDefaultColumnDef();\n const resolvedColumnDef = {\n ...defaultColumn,\n ...columnDef\n };\n const accessorKey = resolvedColumnDef.accessorKey;\n let id = (_ref = (_resolvedColumnDef$id = resolvedColumnDef.id) != null ? _resolvedColumnDef$id : accessorKey ? typeof String.prototype.replaceAll === 'function' ? accessorKey.replaceAll('.', '_') : accessorKey.replace(/\\./g, '_') : undefined) != null ? _ref : typeof resolvedColumnDef.header === 'string' ? resolvedColumnDef.header : undefined;\n let accessorFn;\n if (resolvedColumnDef.accessorFn) {\n accessorFn = resolvedColumnDef.accessorFn;\n } else if (accessorKey) {\n // Support deep accessor keys\n if (accessorKey.includes('.')) {\n accessorFn = originalRow => {\n let result = originalRow;\n for (const key of accessorKey.split('.')) {\n var _result;\n result = (_result = result) == null ? void 0 : _result[key];\n if (process.env.NODE_ENV !== 'production' && result === undefined) {\n console.warn(`\"${key}\" in deeply nested key \"${accessorKey}\" returned undefined.`);\n }\n }\n return result;\n };\n } else {\n accessorFn = originalRow => originalRow[resolvedColumnDef.accessorKey];\n }\n }\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(resolvedColumnDef.accessorFn ? `Columns require an id when using an accessorFn` : `Columns require an id when using a non-string header`);\n }\n throw new Error();\n }\n let column = {\n id: `${String(id)}`,\n accessorFn,\n parent: parent,\n depth,\n columnDef: resolvedColumnDef,\n columns: [],\n getFlatColumns: memo(() => [true], () => {\n var _column$columns;\n return [column, ...((_column$columns = column.columns) == null ? void 0 : _column$columns.flatMap(d => d.getFlatColumns()))];\n }, getMemoOptions(table.options, 'debugColumns', 'column.getFlatColumns')),\n getLeafColumns: memo(() => [table._getOrderColumnsFn()], orderColumns => {\n var _column$columns2;\n if ((_column$columns2 = column.columns) != null && _column$columns2.length) {\n let leafColumns = column.columns.flatMap(column => column.getLeafColumns());\n return orderColumns(leafColumns);\n }\n return [column];\n }, getMemoOptions(table.options, 'debugColumns', 'column.getLeafColumns'))\n };\n for (const feature of table._features) {\n feature.createColumn == null || feature.createColumn(column, table);\n }\n\n // Yes, we have to convert table to unknown, because we know more than the compiler here.\n return column;\n}\n\nconst debug = 'debugHeaders';\n//\n\nfunction createHeader(table, column, options) {\n var _options$id;\n const id = (_options$id = options.id) != null ? _options$id : column.id;\n let header = {\n id,\n column,\n index: options.index,\n isPlaceholder: !!options.isPlaceholder,\n placeholderId: options.placeholderId,\n depth: options.depth,\n subHeaders: [],\n colSpan: 0,\n rowSpan: 0,\n headerGroup: null,\n getLeafHeaders: () => {\n const leafHeaders = [];\n const recurseHeader = h => {\n if (h.subHeaders && h.subHeaders.length) {\n h.subHeaders.map(recurseHeader);\n }\n leafHeaders.push(h);\n };\n recurseHeader(header);\n return leafHeaders;\n },\n getContext: () => ({\n table,\n header: header,\n column\n })\n };\n table._features.forEach(feature => {\n feature.createHeader == null || feature.createHeader(header, table);\n });\n return header;\n}\nconst Headers = {\n createTable: table => {\n // Header Groups\n\n table.getHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {\n var _left$map$filter, _right$map$filter;\n const leftColumns = (_left$map$filter = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter : [];\n const rightColumns = (_right$map$filter = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter : [];\n const centerColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));\n const headerGroups = buildHeaderGroups(allColumns, [...leftColumns, ...centerColumns, ...rightColumns], table);\n return headerGroups;\n }, getMemoOptions(table.options, debug, 'getHeaderGroups'));\n table.getCenterHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {\n leafColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));\n return buildHeaderGroups(allColumns, leafColumns, table, 'center');\n }, getMemoOptions(table.options, debug, 'getCenterHeaderGroups'));\n table.getLeftHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left], (allColumns, leafColumns, left) => {\n var _left$map$filter2;\n const orderedLeafColumns = (_left$map$filter2 = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter2 : [];\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'left');\n }, getMemoOptions(table.options, debug, 'getLeftHeaderGroups'));\n table.getRightHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.right], (allColumns, leafColumns, right) => {\n var _right$map$filter2;\n const orderedLeafColumns = (_right$map$filter2 = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter2 : [];\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'right');\n }, getMemoOptions(table.options, debug, 'getRightHeaderGroups'));\n\n // Footer Groups\n\n table.getFooterGroups = memo(() => [table.getHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getFooterGroups'));\n table.getLeftFooterGroups = memo(() => [table.getLeftHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getLeftFooterGroups'));\n table.getCenterFooterGroups = memo(() => [table.getCenterHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getCenterFooterGroups'));\n table.getRightFooterGroups = memo(() => [table.getRightHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getRightFooterGroups'));\n\n // Flat Headers\n\n table.getFlatHeaders = memo(() => [table.getHeaderGroups()], headerGroups => {\n return headerGroups.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getFlatHeaders'));\n table.getLeftFlatHeaders = memo(() => [table.getLeftHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getLeftFlatHeaders'));\n table.getCenterFlatHeaders = memo(() => [table.getCenterHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getCenterFlatHeaders'));\n table.getRightFlatHeaders = memo(() => [table.getRightHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getRightFlatHeaders'));\n\n // Leaf Headers\n\n table.getCenterLeafHeaders = memo(() => [table.getCenterFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders;\n return !((_header$subHeaders = header.subHeaders) != null && _header$subHeaders.length);\n });\n }, getMemoOptions(table.options, debug, 'getCenterLeafHeaders'));\n table.getLeftLeafHeaders = memo(() => [table.getLeftFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders2;\n return !((_header$subHeaders2 = header.subHeaders) != null && _header$subHeaders2.length);\n });\n }, getMemoOptions(table.options, debug, 'getLeftLeafHeaders'));\n table.getRightLeafHeaders = memo(() => [table.getRightFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders3;\n return !((_header$subHeaders3 = header.subHeaders) != null && _header$subHeaders3.length);\n });\n }, getMemoOptions(table.options, debug, 'getRightLeafHeaders'));\n table.getLeafHeaders = memo(() => [table.getLeftHeaderGroups(), table.getCenterHeaderGroups(), table.getRightHeaderGroups()], (left, center, right) => {\n var _left$0$headers, _left$, _center$0$headers, _center$, _right$0$headers, _right$;\n return [...((_left$0$headers = (_left$ = left[0]) == null ? void 0 : _left$.headers) != null ? _left$0$headers : []), ...((_center$0$headers = (_center$ = center[0]) == null ? void 0 : _center$.headers) != null ? _center$0$headers : []), ...((_right$0$headers = (_right$ = right[0]) == null ? void 0 : _right$.headers) != null ? _right$0$headers : [])].map(header => {\n return header.getLeafHeaders();\n }).flat();\n }, getMemoOptions(table.options, debug, 'getLeafHeaders'));\n }\n};\nfunction buildHeaderGroups(allColumns, columnsToGroup, table, headerFamily) {\n var _headerGroups$0$heade, _headerGroups$;\n // Find the max depth of the columns:\n // build the leaf column row\n // build each buffer row going up\n // placeholder for non-existent level\n // real column for existing level\n\n let maxDepth = 0;\n const findMaxDepth = function (columns, depth) {\n if (depth === void 0) {\n depth = 1;\n }\n maxDepth = Math.max(maxDepth, depth);\n columns.filter(column => column.getIsVisible()).forEach(column => {\n var _column$columns;\n if ((_column$columns = column.columns) != null && _column$columns.length) {\n findMaxDepth(column.columns, depth + 1);\n }\n }, 0);\n };\n findMaxDepth(allColumns);\n let headerGroups = [];\n const createHeaderGroup = (headersToGroup, depth) => {\n // The header group we are creating\n const headerGroup = {\n depth,\n id: [headerFamily, `${depth}`].filter(Boolean).join('_'),\n headers: []\n };\n\n // The parent columns we're going to scan next\n const pendingParentHeaders = [];\n\n // Scan each column for parents\n headersToGroup.forEach(headerToGroup => {\n // What is the latest (last) parent column?\n\n const latestPendingParentHeader = [...pendingParentHeaders].reverse()[0];\n const isLeafHeader = headerToGroup.column.depth === headerGroup.depth;\n let column;\n let isPlaceholder = false;\n if (isLeafHeader && headerToGroup.column.parent) {\n // The parent header is new\n column = headerToGroup.column.parent;\n } else {\n // The parent header is repeated\n column = headerToGroup.column;\n isPlaceholder = true;\n }\n if (latestPendingParentHeader && (latestPendingParentHeader == null ? void 0 : latestPendingParentHeader.column) === column) {\n // This column is repeated. Add it as a sub header to the next batch\n latestPendingParentHeader.subHeaders.push(headerToGroup);\n } else {\n // This is a new header. Let's create it\n const header = createHeader(table, column, {\n id: [headerFamily, depth, column.id, headerToGroup == null ? void 0 : headerToGroup.id].filter(Boolean).join('_'),\n isPlaceholder,\n placeholderId: isPlaceholder ? `${pendingParentHeaders.filter(d => d.column === column).length}` : undefined,\n depth,\n index: pendingParentHeaders.length\n });\n\n // Add the headerToGroup as a subHeader of the new header\n header.subHeaders.push(headerToGroup);\n // Add the new header to the pendingParentHeaders to get grouped\n // in the next batch\n pendingParentHeaders.push(header);\n }\n headerGroup.headers.push(headerToGroup);\n headerToGroup.headerGroup = headerGroup;\n });\n headerGroups.push(headerGroup);\n if (depth > 0) {\n createHeaderGroup(pendingParentHeaders, depth - 1);\n }\n };\n const bottomHeaders = columnsToGroup.map((column, index) => createHeader(table, column, {\n depth: maxDepth,\n index\n }));\n createHeaderGroup(bottomHeaders, maxDepth - 1);\n headerGroups.reverse();\n\n // headerGroups = headerGroups.filter(headerGroup => {\n // return !headerGroup.headers.every(header => header.isPlaceholder)\n // })\n\n const recurseHeadersForSpans = headers => {\n const filteredHeaders = headers.filter(header => header.column.getIsVisible());\n return filteredHeaders.map(header => {\n let colSpan = 0;\n let rowSpan = 0;\n let childRowSpans = [0];\n if (header.subHeaders && header.subHeaders.length) {\n childRowSpans = [];\n recurseHeadersForSpans(header.subHeaders).forEach(_ref => {\n let {\n colSpan: childColSpan,\n rowSpan: childRowSpan\n } = _ref;\n colSpan += childColSpan;\n childRowSpans.push(childRowSpan);\n });\n } else {\n colSpan = 1;\n }\n const minChildRowSpan = Math.min(...childRowSpans);\n rowSpan = rowSpan + minChildRowSpan;\n header.colSpan = colSpan;\n header.rowSpan = rowSpan;\n return {\n colSpan,\n rowSpan\n };\n });\n };\n recurseHeadersForSpans((_headerGroups$0$heade = (_headerGroups$ = headerGroups[0]) == null ? void 0 : _headerGroups$.headers) != null ? _headerGroups$0$heade : []);\n return headerGroups;\n}\n\nconst createRow = (table, id, original, rowIndex, depth, subRows, parentId) => {\n let row = {\n id,\n index: rowIndex,\n original,\n depth,\n parentId,\n _valuesCache: {},\n _uniqueValuesCache: {},\n getValue: columnId => {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.accessorFn)) {\n return undefined;\n }\n row._valuesCache[columnId] = column.accessorFn(row.original, rowIndex);\n return row._valuesCache[columnId];\n },\n getUniqueValues: columnId => {\n if (row._uniqueValuesCache.hasOwnProperty(columnId)) {\n return row._uniqueValuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.accessorFn)) {\n return undefined;\n }\n if (!column.columnDef.getUniqueValues) {\n row._uniqueValuesCache[columnId] = [row.getValue(columnId)];\n return row._uniqueValuesCache[columnId];\n }\n row._uniqueValuesCache[columnId] = column.columnDef.getUniqueValues(row.original, rowIndex);\n return row._uniqueValuesCache[columnId];\n },\n renderValue: columnId => {\n var _row$getValue;\n return (_row$getValue = row.getValue(columnId)) != null ? _row$getValue : table.options.renderFallbackValue;\n },\n subRows: subRows != null ? subRows : [],\n getLeafRows: () => flattenBy(row.subRows, d => d.subRows),\n getParentRow: () => row.parentId ? table.getRow(row.parentId, true) : undefined,\n getParentRows: () => {\n let parentRows = [];\n let currentRow = row;\n while (true) {\n const parentRow = currentRow.getParentRow();\n if (!parentRow) break;\n parentRows.push(parentRow);\n currentRow = parentRow;\n }\n return parentRows.reverse();\n },\n getAllCells: memo(() => [table.getAllLeafColumns()], leafColumns => {\n return leafColumns.map(column => {\n return createCell(table, row, column, column.id);\n });\n }, getMemoOptions(table.options, 'debugRows', 'getAllCells')),\n _getAllCellsByColumnId: memo(() => [row.getAllCells()], allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.column.id] = cell;\n return acc;\n }, {});\n }, getMemoOptions(table.options, 'debugRows', 'getAllCellsByColumnId'))\n };\n for (let i = 0; i < table._features.length; i++) {\n const feature = table._features[i];\n feature == null || feature.createRow == null || feature.createRow(row, table);\n }\n return row;\n};\n\n//\n\nconst ColumnFaceting = {\n createColumn: (column, table) => {\n column._getFacetedRowModel = table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, column.id);\n column.getFacetedRowModel = () => {\n if (!column._getFacetedRowModel) {\n return table.getPreFilteredRowModel();\n }\n return column._getFacetedRowModel();\n };\n column._getFacetedUniqueValues = table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, column.id);\n column.getFacetedUniqueValues = () => {\n if (!column._getFacetedUniqueValues) {\n return new Map();\n }\n return column._getFacetedUniqueValues();\n };\n column._getFacetedMinMaxValues = table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, column.id);\n column.getFacetedMinMaxValues = () => {\n if (!column._getFacetedMinMaxValues) {\n return undefined;\n }\n return column._getFacetedMinMaxValues();\n };\n }\n};\n\nconst includesString = (row, columnId, filterValue) => {\n var _filterValue$toString, _row$getValue;\n const search = filterValue == null || (_filterValue$toString = filterValue.toString()) == null ? void 0 : _filterValue$toString.toLowerCase();\n return Boolean((_row$getValue = row.getValue(columnId)) == null || (_row$getValue = _row$getValue.toString()) == null || (_row$getValue = _row$getValue.toLowerCase()) == null ? void 0 : _row$getValue.includes(search));\n};\nincludesString.autoRemove = val => testFalsey(val);\nconst includesStringSensitive = (row, columnId, filterValue) => {\n var _row$getValue2;\n return Boolean((_row$getValue2 = row.getValue(columnId)) == null || (_row$getValue2 = _row$getValue2.toString()) == null ? void 0 : _row$getValue2.includes(filterValue));\n};\nincludesStringSensitive.autoRemove = val => testFalsey(val);\nconst equalsString = (row, columnId, filterValue) => {\n var _row$getValue3;\n return ((_row$getValue3 = row.getValue(columnId)) == null || (_row$getValue3 = _row$getValue3.toString()) == null ? void 0 : _row$getValue3.toLowerCase()) === (filterValue == null ? void 0 : filterValue.toLowerCase());\n};\nequalsString.autoRemove = val => testFalsey(val);\nconst arrIncludes = (row, columnId, filterValue) => {\n var _row$getValue4;\n return (_row$getValue4 = row.getValue(columnId)) == null ? void 0 : _row$getValue4.includes(filterValue);\n};\narrIncludes.autoRemove = val => testFalsey(val);\nconst arrIncludesAll = (row, columnId, filterValue) => {\n return !filterValue.some(val => {\n var _row$getValue5;\n return !((_row$getValue5 = row.getValue(columnId)) != null && _row$getValue5.includes(val));\n });\n};\narrIncludesAll.autoRemove = val => testFalsey(val) || !(val != null && val.length);\nconst arrIncludesSome = (row, columnId, filterValue) => {\n return filterValue.some(val => {\n var _row$getValue6;\n return (_row$getValue6 = row.getValue(columnId)) == null ? void 0 : _row$getValue6.includes(val);\n });\n};\narrIncludesSome.autoRemove = val => testFalsey(val) || !(val != null && val.length);\nconst equals = (row, columnId, filterValue) => {\n return row.getValue(columnId) === filterValue;\n};\nequals.autoRemove = val => testFalsey(val);\nconst weakEquals = (row, columnId, filterValue) => {\n return row.getValue(columnId) == filterValue;\n};\nweakEquals.autoRemove = val => testFalsey(val);\nconst inNumberRange = (row, columnId, filterValue) => {\n let [min, max] = filterValue;\n const rowValue = row.getValue(columnId);\n return rowValue >= min && rowValue <= max;\n};\ninNumberRange.resolveFilterValue = val => {\n let [unsafeMin, unsafeMax] = val;\n let parsedMin = typeof unsafeMin !== 'number' ? parseFloat(unsafeMin) : unsafeMin;\n let parsedMax = typeof unsafeMax !== 'number' ? parseFloat(unsafeMax) : unsafeMax;\n let min = unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin;\n let max = unsafeMax === null || Number.isNaN(parsedMax) ? Infinity : parsedMax;\n if (min > max) {\n const temp = min;\n min = max;\n max = temp;\n }\n return [min, max];\n};\ninNumberRange.autoRemove = val => testFalsey(val) || testFalsey(val[0]) && testFalsey(val[1]);\n\n// Export\n\nconst filterFns = {\n includesString,\n includesStringSensitive,\n equalsString,\n arrIncludes,\n arrIncludesAll,\n arrIncludesSome,\n equals,\n weakEquals,\n inNumberRange\n};\n// Utils\n\nfunction testFalsey(val) {\n return val === undefined || val === null || val === '';\n}\n\n//\n\nconst ColumnFiltering = {\n getDefaultColumnDef: () => {\n return {\n filterFn: 'auto'\n };\n },\n getInitialState: state => {\n return {\n columnFilters: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', table),\n filterFromLeafRows: false,\n maxLeafRowFilterDepth: 100\n };\n },\n createColumn: (column, table) => {\n column.getAutoFilterFn = () => {\n const firstRow = table.getCoreRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'string') {\n return filterFns.includesString;\n }\n if (typeof value === 'number') {\n return filterFns.inNumberRange;\n }\n if (typeof value === 'boolean') {\n return filterFns.equals;\n }\n if (value !== null && typeof value === 'object') {\n return filterFns.equals;\n }\n if (Array.isArray(value)) {\n return filterFns.arrIncludes;\n }\n return filterFns.weakEquals;\n };\n column.getFilterFn = () => {\n var _table$options$filter, _table$options$filter2;\n return isFunction(column.columnDef.filterFn) ? column.columnDef.filterFn : column.columnDef.filterFn === 'auto' ? column.getAutoFilterFn() : // @ts-ignore\n (_table$options$filter = (_table$options$filter2 = table.options.filterFns) == null ? void 0 : _table$options$filter2[column.columnDef.filterFn]) != null ? _table$options$filter : filterFns[column.columnDef.filterFn];\n };\n column.getCanFilter = () => {\n var _column$columnDef$ena, _table$options$enable, _table$options$enable2;\n return ((_column$columnDef$ena = column.columnDef.enableColumnFilter) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableColumnFilters) != null ? _table$options$enable : true) && ((_table$options$enable2 = table.options.enableFilters) != null ? _table$options$enable2 : true) && !!column.accessorFn;\n };\n column.getIsFiltered = () => column.getFilterIndex() > -1;\n column.getFilterValue = () => {\n var _table$getState$colum;\n return (_table$getState$colum = table.getState().columnFilters) == null || (_table$getState$colum = _table$getState$colum.find(d => d.id === column.id)) == null ? void 0 : _table$getState$colum.value;\n };\n column.getFilterIndex = () => {\n var _table$getState$colum2, _table$getState$colum3;\n return (_table$getState$colum2 = (_table$getState$colum3 = table.getState().columnFilters) == null ? void 0 : _table$getState$colum3.findIndex(d => d.id === column.id)) != null ? _table$getState$colum2 : -1;\n };\n column.setFilterValue = value => {\n table.setColumnFilters(old => {\n const filterFn = column.getFilterFn();\n const previousFilter = old == null ? void 0 : old.find(d => d.id === column.id);\n const newFilter = functionalUpdate(value, previousFilter ? previousFilter.value : undefined);\n\n //\n if (shouldAutoRemoveFilter(filterFn, newFilter, column)) {\n var _old$filter;\n return (_old$filter = old == null ? void 0 : old.filter(d => d.id !== column.id)) != null ? _old$filter : [];\n }\n const newFilterObj = {\n id: column.id,\n value: newFilter\n };\n if (previousFilter) {\n var _old$map;\n return (_old$map = old == null ? void 0 : old.map(d => {\n if (d.id === column.id) {\n return newFilterObj;\n }\n return d;\n })) != null ? _old$map : [];\n }\n if (old != null && old.length) {\n return [...old, newFilterObj];\n }\n return [newFilterObj];\n });\n };\n },\n createRow: (row, _table) => {\n row.columnFilters = {};\n row.columnFiltersMeta = {};\n },\n createTable: table => {\n table.setColumnFilters = updater => {\n const leafColumns = table.getAllLeafColumns();\n const updateFn = old => {\n var _functionalUpdate;\n return (_functionalUpdate = functionalUpdate(updater, old)) == null ? void 0 : _functionalUpdate.filter(filter => {\n const column = leafColumns.find(d => d.id === filter.id);\n if (column) {\n const filterFn = column.getFilterFn();\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false;\n }\n }\n return true;\n });\n };\n table.options.onColumnFiltersChange == null || table.options.onColumnFiltersChange(updateFn);\n };\n table.resetColumnFilters = defaultState => {\n var _table$initialState$c, _table$initialState;\n table.setColumnFilters(defaultState ? [] : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnFilters) != null ? _table$initialState$c : []);\n };\n table.getPreFilteredRowModel = () => table.getCoreRowModel();\n table.getFilteredRowModel = () => {\n if (!table._getFilteredRowModel && table.options.getFilteredRowModel) {\n table._getFilteredRowModel = table.options.getFilteredRowModel(table);\n }\n if (table.options.manualFiltering || !table._getFilteredRowModel) {\n return table.getPreFilteredRowModel();\n }\n return table._getFilteredRowModel();\n };\n }\n};\nfunction shouldAutoRemoveFilter(filterFn, value, column) {\n return (filterFn && filterFn.autoRemove ? filterFn.autoRemove(value, column) : false) || typeof value === 'undefined' || typeof value === 'string' && !value;\n}\n\nconst sum = (columnId, _leafRows, childRows) => {\n // It's faster to just add the aggregations together instead of\n // process leaf nodes individually\n return childRows.reduce((sum, next) => {\n const nextValue = next.getValue(columnId);\n return sum + (typeof nextValue === 'number' ? nextValue : 0);\n }, 0);\n};\nconst min = (columnId, _leafRows, childRows) => {\n let min;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n if (value != null && (min > value || min === undefined && value >= value)) {\n min = value;\n }\n });\n return min;\n};\nconst max = (columnId, _leafRows, childRows) => {\n let max;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n if (value != null && (max < value || max === undefined && value >= value)) {\n max = value;\n }\n });\n return max;\n};\nconst extent = (columnId, _leafRows, childRows) => {\n let min;\n let max;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n if (value != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n });\n return [min, max];\n};\nconst mean = (columnId, leafRows) => {\n let count = 0;\n let sum = 0;\n leafRows.forEach(row => {\n let value = row.getValue(columnId);\n if (value != null && (value = +value) >= value) {\n ++count, sum += value;\n }\n });\n if (count) return sum / count;\n return;\n};\nconst median = (columnId, leafRows) => {\n if (!leafRows.length) {\n return;\n }\n const values = leafRows.map(row => row.getValue(columnId));\n if (!isNumberArray(values)) {\n return;\n }\n if (values.length === 1) {\n return values[0];\n }\n const mid = Math.floor(values.length / 2);\n const nums = values.sort((a, b) => a - b);\n return values.length % 2 !== 0 ? nums[mid] : (nums[mid - 1] + nums[mid]) / 2;\n};\nconst unique = (columnId, leafRows) => {\n return Array.from(new Set(leafRows.map(d => d.getValue(columnId))).values());\n};\nconst uniqueCount = (columnId, leafRows) => {\n return new Set(leafRows.map(d => d.getValue(columnId))).size;\n};\nconst count = (_columnId, leafRows) => {\n return leafRows.length;\n};\nconst aggregationFns = {\n sum,\n min,\n max,\n extent,\n mean,\n median,\n unique,\n uniqueCount,\n count\n};\n\n//\n\nconst ColumnGrouping = {\n getDefaultColumnDef: () => {\n return {\n aggregatedCell: props => {\n var _toString, _props$getValue;\n return (_toString = (_props$getValue = props.getValue()) == null || _props$getValue.toString == null ? void 0 : _props$getValue.toString()) != null ? _toString : null;\n },\n aggregationFn: 'auto'\n };\n },\n getInitialState: state => {\n return {\n grouping: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onGroupingChange: makeStateUpdater('grouping', table),\n groupedColumnMode: 'reorder'\n };\n },\n createColumn: (column, table) => {\n column.toggleGrouping = () => {\n table.setGrouping(old => {\n // Find any existing grouping for this column\n if (old != null && old.includes(column.id)) {\n return old.filter(d => d !== column.id);\n }\n return [...(old != null ? old : []), column.id];\n });\n };\n column.getCanGroup = () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableGrouping) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableGrouping) != null ? _table$options$enable : true) && (!!column.accessorFn || !!column.columnDef.getGroupingValue);\n };\n column.getIsGrouped = () => {\n var _table$getState$group;\n return (_table$getState$group = table.getState().grouping) == null ? void 0 : _table$getState$group.includes(column.id);\n };\n column.getGroupedIndex = () => {\n var _table$getState$group2;\n return (_table$getState$group2 = table.getState().grouping) == null ? void 0 : _table$getState$group2.indexOf(column.id);\n };\n column.getToggleGroupingHandler = () => {\n const canGroup = column.getCanGroup();\n return () => {\n if (!canGroup) return;\n column.toggleGrouping();\n };\n };\n column.getAutoAggregationFn = () => {\n const firstRow = table.getCoreRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'number') {\n return aggregationFns.sum;\n }\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns.extent;\n }\n };\n column.getAggregationFn = () => {\n var _table$options$aggreg, _table$options$aggreg2;\n if (!column) {\n throw new Error();\n }\n return isFunction(column.columnDef.aggregationFn) ? column.columnDef.aggregationFn : column.columnDef.aggregationFn === 'auto' ? column.getAutoAggregationFn() : (_table$options$aggreg = (_table$options$aggreg2 = table.options.aggregationFns) == null ? void 0 : _table$options$aggreg2[column.columnDef.aggregationFn]) != null ? _table$options$aggreg : aggregationFns[column.columnDef.aggregationFn];\n };\n },\n createTable: table => {\n table.setGrouping = updater => table.options.onGroupingChange == null ? void 0 : table.options.onGroupingChange(updater);\n table.resetGrouping = defaultState => {\n var _table$initialState$g, _table$initialState;\n table.setGrouping(defaultState ? [] : (_table$initialState$g = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.grouping) != null ? _table$initialState$g : []);\n };\n table.getPreGroupedRowModel = () => table.getFilteredRowModel();\n table.getGroupedRowModel = () => {\n if (!table._getGroupedRowModel && table.options.getGroupedRowModel) {\n table._getGroupedRowModel = table.options.getGroupedRowModel(table);\n }\n if (table.options.manualGrouping || !table._getGroupedRowModel) {\n return table.getPreGroupedRowModel();\n }\n return table._getGroupedRowModel();\n };\n },\n createRow: (row, table) => {\n row.getIsGrouped = () => !!row.groupingColumnId;\n row.getGroupingValue = columnId => {\n if (row._groupingValuesCache.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.columnDef.getGroupingValue)) {\n return row.getValue(columnId);\n }\n row._groupingValuesCache[columnId] = column.columnDef.getGroupingValue(row.original);\n return row._groupingValuesCache[columnId];\n };\n row._groupingValuesCache = {};\n },\n createCell: (cell, column, row, table) => {\n cell.getIsGrouped = () => column.getIsGrouped() && column.id === row.groupingColumnId;\n cell.getIsPlaceholder = () => !cell.getIsGrouped() && column.getIsGrouped();\n cell.getIsAggregated = () => {\n var _row$subRows;\n return !cell.getIsGrouped() && !cell.getIsPlaceholder() && !!((_row$subRows = row.subRows) != null && _row$subRows.length);\n };\n }\n};\nfunction orderColumns(leafColumns, grouping, groupedColumnMode) {\n if (!(grouping != null && grouping.length) || !groupedColumnMode) {\n return leafColumns;\n }\n const nonGroupingColumns = leafColumns.filter(col => !grouping.includes(col.id));\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns;\n }\n const groupingColumns = grouping.map(g => leafColumns.find(col => col.id === g)).filter(Boolean);\n return [...groupingColumns, ...nonGroupingColumns];\n}\n\n//\n\nconst ColumnOrdering = {\n getInitialState: state => {\n return {\n columnOrder: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', table)\n };\n },\n createColumn: (column, table) => {\n column.getIndex = memo(position => [_getVisibleLeafColumns(table, position)], columns => columns.findIndex(d => d.id === column.id), getMemoOptions(table.options, 'debugColumns', 'getIndex'));\n column.getIsFirstColumn = position => {\n var _columns$;\n const columns = _getVisibleLeafColumns(table, position);\n return ((_columns$ = columns[0]) == null ? void 0 : _columns$.id) === column.id;\n };\n column.getIsLastColumn = position => {\n var _columns;\n const columns = _getVisibleLeafColumns(table, position);\n return ((_columns = columns[columns.length - 1]) == null ? void 0 : _columns.id) === column.id;\n };\n },\n createTable: table => {\n table.setColumnOrder = updater => table.options.onColumnOrderChange == null ? void 0 : table.options.onColumnOrderChange(updater);\n table.resetColumnOrder = defaultState => {\n var _table$initialState$c;\n table.setColumnOrder(defaultState ? [] : (_table$initialState$c = table.initialState.columnOrder) != null ? _table$initialState$c : []);\n };\n table._getOrderColumnsFn = memo(() => [table.getState().columnOrder, table.getState().grouping, table.options.groupedColumnMode], (columnOrder, grouping, groupedColumnMode) => columns => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns = [];\n\n // If there is no order, return the normal columns\n if (!(columnOrder != null && columnOrder.length)) {\n orderedColumns = columns;\n } else {\n const columnOrderCopy = [...columnOrder];\n\n // If there is an order, make a copy of the columns\n const columnsCopy = [...columns];\n\n // And make a new ordered array of the columns\n\n // Loop over the columns and place them in order into the new array\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift();\n const foundIndex = columnsCopy.findIndex(d => d.id === targetColumnId);\n if (foundIndex > -1) {\n orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]);\n }\n }\n\n // If there are any columns left, add them to the end\n orderedColumns = [...orderedColumns, ...columnsCopy];\n }\n return orderColumns(orderedColumns, grouping, groupedColumnMode);\n }, getMemoOptions(table.options, 'debugTable', '_getOrderColumnsFn'));\n }\n};\n\n//\n\nconst getDefaultColumnPinningState = () => ({\n left: [],\n right: []\n});\nconst ColumnPinning = {\n getInitialState: state => {\n return {\n columnPinning: getDefaultColumnPinningState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', table)\n };\n },\n createColumn: (column, table) => {\n column.pin = position => {\n const columnIds = column.getLeafColumns().map(d => d.id).filter(Boolean);\n table.setColumnPinning(old => {\n var _old$left3, _old$right3;\n if (position === 'right') {\n var _old$left, _old$right;\n return {\n left: ((_old$left = old == null ? void 0 : old.left) != null ? _old$left : []).filter(d => !(columnIds != null && columnIds.includes(d))),\n right: [...((_old$right = old == null ? void 0 : old.right) != null ? _old$right : []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds]\n };\n }\n if (position === 'left') {\n var _old$left2, _old$right2;\n return {\n left: [...((_old$left2 = old == null ? void 0 : old.left) != null ? _old$left2 : []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds],\n right: ((_old$right2 = old == null ? void 0 : old.right) != null ? _old$right2 : []).filter(d => !(columnIds != null && columnIds.includes(d)))\n };\n }\n return {\n left: ((_old$left3 = old == null ? void 0 : old.left) != null ? _old$left3 : []).filter(d => !(columnIds != null && columnIds.includes(d))),\n right: ((_old$right3 = old == null ? void 0 : old.right) != null ? _old$right3 : []).filter(d => !(columnIds != null && columnIds.includes(d)))\n };\n });\n };\n column.getCanPin = () => {\n const leafColumns = column.getLeafColumns();\n return leafColumns.some(d => {\n var _d$columnDef$enablePi, _ref, _table$options$enable;\n return ((_d$columnDef$enablePi = d.columnDef.enablePinning) != null ? _d$columnDef$enablePi : true) && ((_ref = (_table$options$enable = table.options.enableColumnPinning) != null ? _table$options$enable : table.options.enablePinning) != null ? _ref : true);\n });\n };\n column.getIsPinned = () => {\n const leafColumnIds = column.getLeafColumns().map(d => d.id);\n const {\n left,\n right\n } = table.getState().columnPinning;\n const isLeft = leafColumnIds.some(d => left == null ? void 0 : left.includes(d));\n const isRight = leafColumnIds.some(d => right == null ? void 0 : right.includes(d));\n return isLeft ? 'left' : isRight ? 'right' : false;\n };\n column.getPinnedIndex = () => {\n var _table$getState$colum, _table$getState$colum2;\n const position = column.getIsPinned();\n return position ? (_table$getState$colum = (_table$getState$colum2 = table.getState().columnPinning) == null || (_table$getState$colum2 = _table$getState$colum2[position]) == null ? void 0 : _table$getState$colum2.indexOf(column.id)) != null ? _table$getState$colum : -1 : 0;\n };\n },\n createRow: (row, table) => {\n row.getCenterVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allCells, left, right) => {\n const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];\n return allCells.filter(d => !leftAndRight.includes(d.column.id));\n }, getMemoOptions(table.options, 'debugRows', 'getCenterVisibleCells'));\n row.getLeftVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left], (allCells, left) => {\n const cells = (left != null ? left : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({\n ...d,\n position: 'left'\n }));\n return cells;\n }, getMemoOptions(table.options, 'debugRows', 'getLeftVisibleCells'));\n row.getRightVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.right], (allCells, right) => {\n const cells = (right != null ? right : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({\n ...d,\n position: 'right'\n }));\n return cells;\n }, getMemoOptions(table.options, 'debugRows', 'getRightVisibleCells'));\n },\n createTable: table => {\n table.setColumnPinning = updater => table.options.onColumnPinningChange == null ? void 0 : table.options.onColumnPinningChange(updater);\n table.resetColumnPinning = defaultState => {\n var _table$initialState$c, _table$initialState;\n return table.setColumnPinning(defaultState ? getDefaultColumnPinningState() : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnPinning) != null ? _table$initialState$c : getDefaultColumnPinningState());\n };\n table.getIsSomeColumnsPinned = position => {\n var _pinningState$positio;\n const pinningState = table.getState().columnPinning;\n if (!position) {\n var _pinningState$left, _pinningState$right;\n return Boolean(((_pinningState$left = pinningState.left) == null ? void 0 : _pinningState$left.length) || ((_pinningState$right = pinningState.right) == null ? void 0 : _pinningState$right.length));\n }\n return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);\n };\n table.getLeftLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left], (allColumns, left) => {\n return (left != null ? left : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);\n }, getMemoOptions(table.options, 'debugColumns', 'getLeftLeafColumns'));\n table.getRightLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.right], (allColumns, right) => {\n return (right != null ? right : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);\n }, getMemoOptions(table.options, 'debugColumns', 'getRightLeafColumns'));\n table.getCenterLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, left, right) => {\n const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];\n return allColumns.filter(d => !leftAndRight.includes(d.id));\n }, getMemoOptions(table.options, 'debugColumns', 'getCenterLeafColumns'));\n }\n};\n\nfunction safelyAccessDocument(_document) {\n return _document || (typeof document !== 'undefined' ? document : null);\n}\n\n//\n\n//\n\nconst defaultColumnSizing = {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER\n};\nconst getDefaultColumnSizingInfoState = () => ({\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: []\n});\nconst ColumnSizing = {\n getDefaultColumnDef: () => {\n return defaultColumnSizing;\n },\n getInitialState: state => {\n return {\n columnSizing: {},\n columnSizingInfo: getDefaultColumnSizingInfoState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n columnResizeMode: 'onEnd',\n columnResizeDirection: 'ltr',\n onColumnSizingChange: makeStateUpdater('columnSizing', table),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', table)\n };\n },\n createColumn: (column, table) => {\n column.getSize = () => {\n var _column$columnDef$min, _ref, _column$columnDef$max;\n const columnSize = table.getState().columnSizing[column.id];\n return Math.min(Math.max((_column$columnDef$min = column.columnDef.minSize) != null ? _column$columnDef$min : defaultColumnSizing.minSize, (_ref = columnSize != null ? columnSize : column.columnDef.size) != null ? _ref : defaultColumnSizing.size), (_column$columnDef$max = column.columnDef.maxSize) != null ? _column$columnDef$max : defaultColumnSizing.maxSize);\n };\n column.getStart = memo(position => [position, _getVisibleLeafColumns(table, position), table.getState().columnSizing], (position, columns) => columns.slice(0, column.getIndex(position)).reduce((sum, column) => sum + column.getSize(), 0), getMemoOptions(table.options, 'debugColumns', 'getStart'));\n column.getAfter = memo(position => [position, _getVisibleLeafColumns(table, position), table.getState().columnSizing], (position, columns) => columns.slice(column.getIndex(position) + 1).reduce((sum, column) => sum + column.getSize(), 0), getMemoOptions(table.options, 'debugColumns', 'getAfter'));\n column.resetSize = () => {\n table.setColumnSizing(_ref2 => {\n let {\n [column.id]: _,\n ...rest\n } = _ref2;\n return rest;\n });\n };\n column.getCanResize = () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableResizing) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableColumnResizing) != null ? _table$options$enable : true);\n };\n column.getIsResizing = () => {\n return table.getState().columnSizingInfo.isResizingColumn === column.id;\n };\n },\n createHeader: (header, table) => {\n header.getSize = () => {\n let sum = 0;\n const recurse = header => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse);\n } else {\n var _header$column$getSiz;\n sum += (_header$column$getSiz = header.column.getSize()) != null ? _header$column$getSiz : 0;\n }\n };\n recurse(header);\n return sum;\n };\n header.getStart = () => {\n if (header.index > 0) {\n const prevSiblingHeader = header.headerGroup.headers[header.index - 1];\n return prevSiblingHeader.getStart() + prevSiblingHeader.getSize();\n }\n return 0;\n };\n header.getResizeHandler = _contextDocument => {\n const column = table.getColumn(header.column.id);\n const canResize = column == null ? void 0 : column.getCanResize();\n return e => {\n if (!column || !canResize) {\n return;\n }\n e.persist == null || e.persist();\n if (isTouchStartEvent(e)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return;\n }\n }\n const startSize = header.getSize();\n const columnSizingStart = header ? header.getLeafHeaders().map(d => [d.column.id, d.column.getSize()]) : [[column.id, column.getSize()]];\n const clientX = isTouchStartEvent(e) ? Math.round(e.touches[0].clientX) : e.clientX;\n const newColumnSizing = {};\n const updateOffset = (eventType, clientXPos) => {\n if (typeof clientXPos !== 'number') {\n return;\n }\n table.setColumnSizingInfo(old => {\n var _old$startOffset, _old$startSize;\n const deltaDirection = table.options.columnResizeDirection === 'rtl' ? -1 : 1;\n const deltaOffset = (clientXPos - ((_old$startOffset = old == null ? void 0 : old.startOffset) != null ? _old$startOffset : 0)) * deltaDirection;\n const deltaPercentage = Math.max(deltaOffset / ((_old$startSize = old == null ? void 0 : old.startSize) != null ? _old$startSize : 0), -0.999999);\n old.columnSizingStart.forEach(_ref3 => {\n let [columnId, headerSize] = _ref3;\n newColumnSizing[columnId] = Math.round(Math.max(headerSize + headerSize * deltaPercentage, 0) * 100) / 100;\n });\n return {\n ...old,\n deltaOffset,\n deltaPercentage\n };\n });\n if (table.options.columnResizeMode === 'onChange' || eventType === 'end') {\n table.setColumnSizing(old => ({\n ...old,\n ...newColumnSizing\n }));\n }\n };\n const onMove = clientXPos => updateOffset('move', clientXPos);\n const onEnd = clientXPos => {\n updateOffset('end', clientXPos);\n table.setColumnSizingInfo(old => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: []\n }));\n };\n const contextDocument = safelyAccessDocument(_contextDocument);\n const mouseEvents = {\n moveHandler: e => onMove(e.clientX),\n upHandler: e => {\n contextDocument == null || contextDocument.removeEventListener('mousemove', mouseEvents.moveHandler);\n contextDocument == null || contextDocument.removeEventListener('mouseup', mouseEvents.upHandler);\n onEnd(e.clientX);\n }\n };\n const touchEvents = {\n moveHandler: e => {\n if (e.cancelable) {\n e.preventDefault();\n e.stopPropagation();\n }\n onMove(e.touches[0].clientX);\n return false;\n },\n upHandler: e => {\n var _e$touches$;\n contextDocument == null || contextDocument.removeEventListener('touchmove', touchEvents.moveHandler);\n contextDocument == null || contextDocument.removeEventListener('touchend', touchEvents.upHandler);\n if (e.cancelable) {\n e.preventDefault();\n e.stopPropagation();\n }\n onEnd((_e$touches$ = e.touches[0]) == null ? void 0 : _e$touches$.clientX);\n }\n };\n const passiveIfSupported = passiveEventSupported() ? {\n passive: false\n } : false;\n if (isTouchStartEvent(e)) {\n contextDocument == null || contextDocument.addEventListener('touchmove', touchEvents.moveHandler, passiveIfSupported);\n contextDocument == null || contextDocument.addEventListener('touchend', touchEvents.upHandler, passiveIfSupported);\n } else {\n contextDocument == null || contextDocument.addEventListener('mousemove', mouseEvents.moveHandler, passiveIfSupported);\n contextDocument == null || contextDocument.addEventListener('mouseup', mouseEvents.upHandler, passiveIfSupported);\n }\n table.setColumnSizingInfo(old => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id\n }));\n };\n };\n },\n createTable: table => {\n table.setColumnSizing = updater => table.options.onColumnSizingChange == null ? void 0 : table.options.onColumnSizingChange(updater);\n table.setColumnSizingInfo = updater => table.options.onColumnSizingInfoChange == null ? void 0 : table.options.onColumnSizingInfoChange(updater);\n table.resetColumnSizing = defaultState => {\n var _table$initialState$c;\n table.setColumnSizing(defaultState ? {} : (_table$initialState$c = table.initialState.columnSizing) != null ? _table$initialState$c : {});\n };\n table.resetHeaderSizeInfo = defaultState => {\n var _table$initialState$c2;\n table.setColumnSizingInfo(defaultState ? getDefaultColumnSizingInfoState() : (_table$initialState$c2 = table.initialState.columnSizingInfo) != null ? _table$initialState$c2 : getDefaultColumnSizingInfoState());\n };\n table.getTotalSize = () => {\n var _table$getHeaderGroup, _table$getHeaderGroup2;\n return (_table$getHeaderGroup = (_table$getHeaderGroup2 = table.getHeaderGroups()[0]) == null ? void 0 : _table$getHeaderGroup2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getHeaderGroup : 0;\n };\n table.getLeftTotalSize = () => {\n var _table$getLeftHeaderG, _table$getLeftHeaderG2;\n return (_table$getLeftHeaderG = (_table$getLeftHeaderG2 = table.getLeftHeaderGroups()[0]) == null ? void 0 : _table$getLeftHeaderG2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getLeftHeaderG : 0;\n };\n table.getCenterTotalSize = () => {\n var _table$getCenterHeade, _table$getCenterHeade2;\n return (_table$getCenterHeade = (_table$getCenterHeade2 = table.getCenterHeaderGroups()[0]) == null ? void 0 : _table$getCenterHeade2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getCenterHeade : 0;\n };\n table.getRightTotalSize = () => {\n var _table$getRightHeader, _table$getRightHeader2;\n return (_table$getRightHeader = (_table$getRightHeader2 = table.getRightHeaderGroups()[0]) == null ? void 0 : _table$getRightHeader2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getRightHeader : 0;\n };\n }\n};\nlet passiveSupported = null;\nfunction passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported;\n let supported = false;\n try {\n const options = {\n get passive() {\n supported = true;\n return false;\n }\n };\n const noop = () => {};\n window.addEventListener('test', noop, options);\n window.removeEventListener('test', noop);\n } catch (err) {\n supported = false;\n }\n passiveSupported = supported;\n return passiveSupported;\n}\nfunction isTouchStartEvent(e) {\n return e.type === 'touchstart';\n}\n\n//\n\nconst ColumnVisibility = {\n getInitialState: state => {\n return {\n columnVisibility: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', table)\n };\n },\n createColumn: (column, table) => {\n column.toggleVisibility = value => {\n if (column.getCanHide()) {\n table.setColumnVisibility(old => ({\n ...old,\n [column.id]: value != null ? value : !column.getIsVisible()\n }));\n }\n };\n column.getIsVisible = () => {\n var _ref, _table$getState$colum;\n const childColumns = column.columns;\n return (_ref = childColumns.length ? childColumns.some(c => c.getIsVisible()) : (_table$getState$colum = table.getState().columnVisibility) == null ? void 0 : _table$getState$colum[column.id]) != null ? _ref : true;\n };\n column.getCanHide = () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableHiding) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableHiding) != null ? _table$options$enable : true);\n };\n column.getToggleVisibilityHandler = () => {\n return e => {\n column.toggleVisibility == null || column.toggleVisibility(e.target.checked);\n };\n };\n },\n createRow: (row, table) => {\n row._getAllVisibleCells = memo(() => [row.getAllCells(), table.getState().columnVisibility], cells => {\n return cells.filter(cell => cell.column.getIsVisible());\n }, getMemoOptions(table.options, 'debugRows', '_getAllVisibleCells'));\n row.getVisibleCells = memo(() => [row.getLeftVisibleCells(), row.getCenterVisibleCells(), row.getRightVisibleCells()], (left, center, right) => [...left, ...center, ...right], getMemoOptions(table.options, 'debugRows', 'getVisibleCells'));\n },\n createTable: table => {\n const makeVisibleColumnsMethod = (key, getColumns) => {\n return memo(() => [getColumns(), getColumns().filter(d => d.getIsVisible()).map(d => d.id).join('_')], columns => {\n return columns.filter(d => d.getIsVisible == null ? void 0 : d.getIsVisible());\n }, getMemoOptions(table.options, 'debugColumns', key));\n };\n table.getVisibleFlatColumns = makeVisibleColumnsMethod('getVisibleFlatColumns', () => table.getAllFlatColumns());\n table.getVisibleLeafColumns = makeVisibleColumnsMethod('getVisibleLeafColumns', () => table.getAllLeafColumns());\n table.getLeftVisibleLeafColumns = makeVisibleColumnsMethod('getLeftVisibleLeafColumns', () => table.getLeftLeafColumns());\n table.getRightVisibleLeafColumns = makeVisibleColumnsMethod('getRightVisibleLeafColumns', () => table.getRightLeafColumns());\n table.getCenterVisibleLeafColumns = makeVisibleColumnsMethod('getCenterVisibleLeafColumns', () => table.getCenterLeafColumns());\n table.setColumnVisibility = updater => table.options.onColumnVisibilityChange == null ? void 0 : table.options.onColumnVisibilityChange(updater);\n table.resetColumnVisibility = defaultState => {\n var _table$initialState$c;\n table.setColumnVisibility(defaultState ? {} : (_table$initialState$c = table.initialState.columnVisibility) != null ? _table$initialState$c : {});\n };\n table.toggleAllColumnsVisible = value => {\n var _value;\n value = (_value = value) != null ? _value : !table.getIsAllColumnsVisible();\n table.setColumnVisibility(table.getAllLeafColumns().reduce((obj, column) => ({\n ...obj,\n [column.id]: !value ? !(column.getCanHide != null && column.getCanHide()) : value\n }), {}));\n };\n table.getIsAllColumnsVisible = () => !table.getAllLeafColumns().some(column => !(column.getIsVisible != null && column.getIsVisible()));\n table.getIsSomeColumnsVisible = () => table.getAllLeafColumns().some(column => column.getIsVisible == null ? void 0 : column.getIsVisible());\n table.getToggleAllColumnsVisibilityHandler = () => {\n return e => {\n var _target;\n table.toggleAllColumnsVisible((_target = e.target) == null ? void 0 : _target.checked);\n };\n };\n }\n};\nfunction _getVisibleLeafColumns(table, position) {\n return !position ? table.getVisibleLeafColumns() : position === 'center' ? table.getCenterVisibleLeafColumns() : position === 'left' ? table.getLeftVisibleLeafColumns() : table.getRightVisibleLeafColumns();\n}\n\n//\n\nconst GlobalFaceting = {\n createTable: table => {\n table._getGlobalFacetedRowModel = table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, '__global__');\n table.getGlobalFacetedRowModel = () => {\n if (table.options.manualFiltering || !table._getGlobalFacetedRowModel) {\n return table.getPreFilteredRowModel();\n }\n return table._getGlobalFacetedRowModel();\n };\n table._getGlobalFacetedUniqueValues = table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, '__global__');\n table.getGlobalFacetedUniqueValues = () => {\n if (!table._getGlobalFacetedUniqueValues) {\n return new Map();\n }\n return table._getGlobalFacetedUniqueValues();\n };\n table._getGlobalFacetedMinMaxValues = table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, '__global__');\n table.getGlobalFacetedMinMaxValues = () => {\n if (!table._getGlobalFacetedMinMaxValues) {\n return;\n }\n return table._getGlobalFacetedMinMaxValues();\n };\n }\n};\n\n//\n\nconst GlobalFiltering = {\n getInitialState: state => {\n return {\n globalFilter: undefined,\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onGlobalFilterChange: makeStateUpdater('globalFilter', table),\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: column => {\n var _table$getCoreRowMode;\n const value = (_table$getCoreRowMode = table.getCoreRowModel().flatRows[0]) == null || (_table$getCoreRowMode = _table$getCoreRowMode._getAllCellsByColumnId()[column.id]) == null ? void 0 : _table$getCoreRowMode.getValue();\n return typeof value === 'string' || typeof value === 'number';\n }\n };\n },\n createColumn: (column, table) => {\n column.getCanGlobalFilter = () => {\n var _column$columnDef$ena, _table$options$enable, _table$options$enable2, _table$options$getCol;\n return ((_column$columnDef$ena = column.columnDef.enableGlobalFilter) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableGlobalFilter) != null ? _table$options$enable : true) && ((_table$options$enable2 = table.options.enableFilters) != null ? _table$options$enable2 : true) && ((_table$options$getCol = table.options.getColumnCanGlobalFilter == null ? void 0 : table.options.getColumnCanGlobalFilter(column)) != null ? _table$options$getCol : true) && !!column.accessorFn;\n };\n },\n createTable: table => {\n table.getGlobalAutoFilterFn = () => {\n return filterFns.includesString;\n };\n table.getGlobalFilterFn = () => {\n var _table$options$filter, _table$options$filter2;\n const {\n globalFilterFn: globalFilterFn\n } = table.options;\n return isFunction(globalFilterFn) ? globalFilterFn : globalFilterFn === 'auto' ? table.getGlobalAutoFilterFn() : (_table$options$filter = (_table$options$filter2 = table.options.filterFns) == null ? void 0 : _table$options$filter2[globalFilterFn]) != null ? _table$options$filter : filterFns[globalFilterFn];\n };\n table.setGlobalFilter = updater => {\n table.options.onGlobalFilterChange == null || table.options.onGlobalFilterChange(updater);\n };\n table.resetGlobalFilter = defaultState => {\n table.setGlobalFilter(defaultState ? undefined : table.initialState.globalFilter);\n };\n }\n};\n\n//\n\nconst RowExpanding = {\n getInitialState: state => {\n return {\n expanded: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onExpandedChange: makeStateUpdater('expanded', table),\n paginateExpandedRows: true\n };\n },\n createTable: table => {\n let registered = false;\n let queued = false;\n table._autoResetExpanded = () => {\n var _ref, _table$options$autoRe;\n if (!registered) {\n table._queue(() => {\n registered = true;\n });\n return;\n }\n if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetExpanded) != null ? _ref : !table.options.manualExpanding) {\n if (queued) return;\n queued = true;\n table._queue(() => {\n table.resetExpanded();\n queued = false;\n });\n }\n };\n table.setExpanded = updater => table.options.onExpandedChange == null ? void 0 : table.options.onExpandedChange(updater);\n table.toggleAllRowsExpanded = expanded => {\n if (expanded != null ? expanded : !table.getIsAllRowsExpanded()) {\n table.setExpanded(true);\n } else {\n table.setExpanded({});\n }\n };\n table.resetExpanded = defaultState => {\n var _table$initialState$e, _table$initialState;\n table.setExpanded(defaultState ? {} : (_table$initialState$e = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.expanded) != null ? _table$initialState$e : {});\n };\n table.getCanSomeRowsExpand = () => {\n return table.getPrePaginationRowModel().flatRows.some(row => row.getCanExpand());\n };\n table.getToggleAllRowsExpandedHandler = () => {\n return e => {\n e.persist == null || e.persist();\n table.toggleAllRowsExpanded();\n };\n };\n table.getIsSomeRowsExpanded = () => {\n const expanded = table.getState().expanded;\n return expanded === true || Object.values(expanded).some(Boolean);\n };\n table.getIsAllRowsExpanded = () => {\n const expanded = table.getState().expanded;\n\n // If expanded is true, save some cycles and return true\n if (typeof expanded === 'boolean') {\n return expanded === true;\n }\n if (!Object.keys(expanded).length) {\n return false;\n }\n\n // If any row is not expanded, return false\n if (table.getRowModel().flatRows.some(row => !row.getIsExpanded())) {\n return false;\n }\n\n // They must all be expanded :shrug:\n return true;\n };\n table.getExpandedDepth = () => {\n let maxDepth = 0;\n const rowIds = table.getState().expanded === true ? Object.keys(table.getRowModel().rowsById) : Object.keys(table.getState().expanded);\n rowIds.forEach(id => {\n const splitId = id.split('.');\n maxDepth = Math.max(maxDepth, splitId.length);\n });\n return maxDepth;\n };\n table.getPreExpandedRowModel = () => table.getSortedRowModel();\n table.getExpandedRowModel = () => {\n if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {\n table._getExpandedRowModel = table.options.getExpandedRowModel(table);\n }\n if (table.options.manualExpanding || !table._getExpandedRowModel) {\n return table.getPreExpandedRowModel();\n }\n return table._getExpandedRowModel();\n };\n },\n createRow: (row, table) => {\n row.toggleExpanded = expanded => {\n table.setExpanded(old => {\n var _expanded;\n const exists = old === true ? true : !!(old != null && old[row.id]);\n let oldExpanded = {};\n if (old === true) {\n Object.keys(table.getRowModel().rowsById).forEach(rowId => {\n oldExpanded[rowId] = true;\n });\n } else {\n oldExpanded = old;\n }\n expanded = (_expanded = expanded) != null ? _expanded : !exists;\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [row.id]: true\n };\n }\n if (exists && !expanded) {\n const {\n [row.id]: _,\n ...rest\n } = oldExpanded;\n return rest;\n }\n return old;\n });\n };\n row.getIsExpanded = () => {\n var _table$options$getIsR;\n const expanded = table.getState().expanded;\n return !!((_table$options$getIsR = table.options.getIsRowExpanded == null ? void 0 : table.options.getIsRowExpanded(row)) != null ? _table$options$getIsR : expanded === true || (expanded == null ? void 0 : expanded[row.id]));\n };\n row.getCanExpand = () => {\n var _table$options$getRow, _table$options$enable, _row$subRows;\n return (_table$options$getRow = table.options.getRowCanExpand == null ? void 0 : table.options.getRowCanExpand(row)) != null ? _table$options$getRow : ((_table$options$enable = table.options.enableExpanding) != null ? _table$options$enable : true) && !!((_row$subRows = row.subRows) != null && _row$subRows.length);\n };\n row.getIsAllParentsExpanded = () => {\n let isFullyExpanded = true;\n let currentRow = row;\n while (isFullyExpanded && currentRow.parentId) {\n currentRow = table.getRow(currentRow.parentId, true);\n isFullyExpanded = currentRow.getIsExpanded();\n }\n return isFullyExpanded;\n };\n row.getToggleExpandedHandler = () => {\n const canExpand = row.getCanExpand();\n return () => {\n if (!canExpand) return;\n row.toggleExpanded();\n };\n };\n }\n};\n\n//\n\nconst defaultPageIndex = 0;\nconst defaultPageSize = 10;\nconst getDefaultPaginationState = () => ({\n pageIndex: defaultPageIndex,\n pageSize: defaultPageSize\n});\nconst RowPagination = {\n getInitialState: state => {\n return {\n ...state,\n pagination: {\n ...getDefaultPaginationState(),\n ...(state == null ? void 0 : state.pagination)\n }\n };\n },\n getDefaultOptions: table => {\n return {\n onPaginationChange: makeStateUpdater('pagination', table)\n };\n },\n createTable: table => {\n let registered = false;\n let queued = false;\n table._autoResetPageIndex = () => {\n var _ref, _table$options$autoRe;\n if (!registered) {\n table._queue(() => {\n registered = true;\n });\n return;\n }\n if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetPageIndex) != null ? _ref : !table.options.manualPagination) {\n if (queued) return;\n queued = true;\n table._queue(() => {\n table.resetPageIndex();\n queued = false;\n });\n }\n };\n table.setPagination = updater => {\n const safeUpdater = old => {\n let newState = functionalUpdate(updater, old);\n return newState;\n };\n return table.options.onPaginationChange == null ? void 0 : table.options.onPaginationChange(safeUpdater);\n };\n table.resetPagination = defaultState => {\n var _table$initialState$p;\n table.setPagination(defaultState ? getDefaultPaginationState() : (_table$initialState$p = table.initialState.pagination) != null ? _table$initialState$p : getDefaultPaginationState());\n };\n table.setPageIndex = updater => {\n table.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex);\n const maxPageIndex = typeof table.options.pageCount === 'undefined' || table.options.pageCount === -1 ? Number.MAX_SAFE_INTEGER : table.options.pageCount - 1;\n pageIndex = Math.max(0, Math.min(pageIndex, maxPageIndex));\n return {\n ...old,\n pageIndex\n };\n });\n };\n table.resetPageIndex = defaultState => {\n var _table$initialState$p2, _table$initialState;\n table.setPageIndex(defaultState ? defaultPageIndex : (_table$initialState$p2 = (_table$initialState = table.initialState) == null || (_table$initialState = _table$initialState.pagination) == null ? void 0 : _table$initialState.pageIndex) != null ? _table$initialState$p2 : defaultPageIndex);\n };\n table.resetPageSize = defaultState => {\n var _table$initialState$p3, _table$initialState2;\n table.setPageSize(defaultState ? defaultPageSize : (_table$initialState$p3 = (_table$initialState2 = table.initialState) == null || (_table$initialState2 = _table$initialState2.pagination) == null ? void 0 : _table$initialState2.pageSize) != null ? _table$initialState$p3 : defaultPageSize);\n };\n table.setPageSize = updater => {\n table.setPagination(old => {\n const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize));\n const topRowIndex = old.pageSize * old.pageIndex;\n const pageIndex = Math.floor(topRowIndex / pageSize);\n return {\n ...old,\n pageIndex,\n pageSize\n };\n });\n };\n //deprecated\n table.setPageCount = updater => table.setPagination(old => {\n var _table$options$pageCo;\n let newPageCount = functionalUpdate(updater, (_table$options$pageCo = table.options.pageCount) != null ? _table$options$pageCo : -1);\n if (typeof newPageCount === 'number') {\n newPageCount = Math.max(-1, newPageCount);\n }\n return {\n ...old,\n pageCount: newPageCount\n };\n });\n table.getPageOptions = memo(() => [table.getPageCount()], pageCount => {\n let pageOptions = [];\n if (pageCount && pageCount > 0) {\n pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i);\n }\n return pageOptions;\n }, getMemoOptions(table.options, 'debugTable', 'getPageOptions'));\n table.getCanPreviousPage = () => table.getState().pagination.pageIndex > 0;\n table.getCanNextPage = () => {\n const {\n pageIndex\n } = table.getState().pagination;\n const pageCount = table.getPageCount();\n if (pageCount === -1) {\n return true;\n }\n if (pageCount === 0) {\n return false;\n }\n return pageIndex < pageCount - 1;\n };\n table.previousPage = () => {\n return table.setPageIndex(old => old - 1);\n };\n table.nextPage = () => {\n return table.setPageIndex(old => {\n return old + 1;\n });\n };\n table.firstPage = () => {\n return table.setPageIndex(0);\n };\n table.lastPage = () => {\n return table.setPageIndex(table.getPageCount() - 1);\n };\n table.getPrePaginationRowModel = () => table.getExpandedRowModel();\n table.getPaginationRowModel = () => {\n if (!table._getPaginationRowModel && table.options.getPaginationRowModel) {\n table._getPaginationRowModel = table.options.getPaginationRowModel(table);\n }\n if (table.options.manualPagination || !table._getPaginationRowModel) {\n return table.getPrePaginationRowModel();\n }\n return table._getPaginationRowModel();\n };\n table.getPageCount = () => {\n var _table$options$pageCo2;\n return (_table$options$pageCo2 = table.options.pageCount) != null ? _table$options$pageCo2 : Math.ceil(table.getRowCount() / table.getState().pagination.pageSize);\n };\n table.getRowCount = () => {\n var _table$options$rowCou;\n return (_table$options$rowCou = table.options.rowCount) != null ? _table$options$rowCou : table.getPrePaginationRowModel().rows.length;\n };\n }\n};\n\n//\n\nconst getDefaultRowPinningState = () => ({\n top: [],\n bottom: []\n});\nconst RowPinning = {\n getInitialState: state => {\n return {\n rowPinning: getDefaultRowPinningState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onRowPinningChange: makeStateUpdater('rowPinning', table)\n };\n },\n createRow: (row, table) => {\n row.pin = (position, includeLeafRows, includeParentRows) => {\n const leafRowIds = includeLeafRows ? row.getLeafRows().map(_ref => {\n let {\n id\n } = _ref;\n return id;\n }) : [];\n const parentRowIds = includeParentRows ? row.getParentRows().map(_ref2 => {\n let {\n id\n } = _ref2;\n return id;\n }) : [];\n const rowIds = new Set([...parentRowIds, row.id, ...leafRowIds]);\n table.setRowPinning(old => {\n var _old$top3, _old$bottom3;\n if (position === 'bottom') {\n var _old$top, _old$bottom;\n return {\n top: ((_old$top = old == null ? void 0 : old.top) != null ? _old$top : []).filter(d => !(rowIds != null && rowIds.has(d))),\n bottom: [...((_old$bottom = old == null ? void 0 : old.bottom) != null ? _old$bottom : []).filter(d => !(rowIds != null && rowIds.has(d))), ...Array.from(rowIds)]\n };\n }\n if (position === 'top') {\n var _old$top2, _old$bottom2;\n return {\n top: [...((_old$top2 = old == null ? void 0 : old.top) != null ? _old$top2 : []).filter(d => !(rowIds != null && rowIds.has(d))), ...Array.from(rowIds)],\n bottom: ((_old$bottom2 = old == null ? void 0 : old.bottom) != null ? _old$bottom2 : []).filter(d => !(rowIds != null && rowIds.has(d)))\n };\n }\n return {\n top: ((_old$top3 = old == null ? void 0 : old.top) != null ? _old$top3 : []).filter(d => !(rowIds != null && rowIds.has(d))),\n bottom: ((_old$bottom3 = old == null ? void 0 : old.bottom) != null ? _old$bottom3 : []).filter(d => !(rowIds != null && rowIds.has(d)))\n };\n });\n };\n row.getCanPin = () => {\n var _ref3;\n const {\n enableRowPinning,\n enablePinning\n } = table.options;\n if (typeof enableRowPinning === 'function') {\n return enableRowPinning(row);\n }\n return (_ref3 = enableRowPinning != null ? enableRowPinning : enablePinning) != null ? _ref3 : true;\n };\n row.getIsPinned = () => {\n const rowIds = [row.id];\n const {\n top,\n bottom\n } = table.getState().rowPinning;\n const isTop = rowIds.some(d => top == null ? void 0 : top.includes(d));\n const isBottom = rowIds.some(d => bottom == null ? void 0 : bottom.includes(d));\n return isTop ? 'top' : isBottom ? 'bottom' : false;\n };\n row.getPinnedIndex = () => {\n var _ref4, _visiblePinnedRowIds$;\n const position = row.getIsPinned();\n if (!position) return -1;\n const visiblePinnedRowIds = (_ref4 = position === 'top' ? table.getTopRows() : table.getBottomRows()) == null ? void 0 : _ref4.map(_ref5 => {\n let {\n id\n } = _ref5;\n return id;\n });\n return (_visiblePinnedRowIds$ = visiblePinnedRowIds == null ? void 0 : visiblePinnedRowIds.indexOf(row.id)) != null ? _visiblePinnedRowIds$ : -1;\n };\n },\n createTable: table => {\n table.setRowPinning = updater => table.options.onRowPinningChange == null ? void 0 : table.options.onRowPinningChange(updater);\n table.resetRowPinning = defaultState => {\n var _table$initialState$r, _table$initialState;\n return table.setRowPinning(defaultState ? getDefaultRowPinningState() : (_table$initialState$r = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.rowPinning) != null ? _table$initialState$r : getDefaultRowPinningState());\n };\n table.getIsSomeRowsPinned = position => {\n var _pinningState$positio;\n const pinningState = table.getState().rowPinning;\n if (!position) {\n var _pinningState$top, _pinningState$bottom;\n return Boolean(((_pinningState$top = pinningState.top) == null ? void 0 : _pinningState$top.length) || ((_pinningState$bottom = pinningState.bottom) == null ? void 0 : _pinningState$bottom.length));\n }\n return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);\n };\n table._getPinnedRows = (visibleRows, pinnedRowIds, position) => {\n var _table$options$keepPi;\n const rows = ((_table$options$keepPi = table.options.keepPinnedRows) != null ? _table$options$keepPi : true) ?\n //get all rows that are pinned even if they would not be otherwise visible\n //account for expanded parent rows, but not pagination or filtering\n (pinnedRowIds != null ? pinnedRowIds : []).map(rowId => {\n const row = table.getRow(rowId, true);\n return row.getIsAllParentsExpanded() ? row : null;\n }) :\n //else get only visible rows that are pinned\n (pinnedRowIds != null ? pinnedRowIds : []).map(rowId => visibleRows.find(row => row.id === rowId));\n return rows.filter(Boolean).map(d => ({\n ...d,\n position\n }));\n };\n table.getTopRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.top], (allRows, topPinnedRowIds) => table._getPinnedRows(allRows, topPinnedRowIds, 'top'), getMemoOptions(table.options, 'debugRows', 'getTopRows'));\n table.getBottomRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.bottom], (allRows, bottomPinnedRowIds) => table._getPinnedRows(allRows, bottomPinnedRowIds, 'bottom'), getMemoOptions(table.options, 'debugRows', 'getBottomRows'));\n table.getCenterRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.top, table.getState().rowPinning.bottom], (allRows, top, bottom) => {\n const topAndBottom = new Set([...(top != null ? top : []), ...(bottom != null ? bottom : [])]);\n return allRows.filter(d => !topAndBottom.has(d.id));\n }, getMemoOptions(table.options, 'debugRows', 'getCenterRows'));\n }\n};\n\n//\n\nconst RowSelection = {\n getInitialState: state => {\n return {\n rowSelection: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', table),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,\n };\n },\n createTable: table => {\n table.setRowSelection = updater => table.options.onRowSelectionChange == null ? void 0 : table.options.onRowSelectionChange(updater);\n table.resetRowSelection = defaultState => {\n var _table$initialState$r;\n return table.setRowSelection(defaultState ? {} : (_table$initialState$r = table.initialState.rowSelection) != null ? _table$initialState$r : {});\n };\n table.toggleAllRowsSelected = value => {\n table.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !table.getIsAllRowsSelected();\n const rowSelection = {\n ...old\n };\n const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows;\n\n // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n if (value) {\n preGroupedFlatRows.forEach(row => {\n if (!row.getCanSelect()) {\n return;\n }\n rowSelection[row.id] = true;\n });\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id];\n });\n }\n return rowSelection;\n });\n };\n table.toggleAllPageRowsSelected = value => table.setRowSelection(old => {\n const resolvedValue = typeof value !== 'undefined' ? value : !table.getIsAllPageRowsSelected();\n const rowSelection = {\n ...old\n };\n table.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, resolvedValue, true, table);\n });\n return rowSelection;\n });\n\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = table\n\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n\n // let include = false\n // const selectedRowIds = {}\n\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n\n // table.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n\n // if (include) {\n // addRow(row)\n // }\n // })\n\n // table.setRowSelection(selectedRowIds)\n // },\n table.getPreSelectedRowModel = () => table.getCoreRowModel();\n table.getSelectedRowModel = memo(() => [table.getState().rowSelection, table.getCoreRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getSelectedRowModel'));\n table.getFilteredSelectedRowModel = memo(() => [table.getState().rowSelection, table.getFilteredRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getFilteredSelectedRowModel'));\n table.getGroupedSelectedRowModel = memo(() => [table.getState().rowSelection, table.getSortedRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getGroupedSelectedRowModel'));\n\n ///\n\n // getGroupingRowCanSelect: rowId => {\n // const row = table.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof table.options.enableGroupingRowSelection === 'function') {\n // return table.options.enableGroupingRowSelection(row)\n // }\n\n // return table.options.enableGroupingRowSelection ?? false\n // },\n\n table.getIsAllRowsSelected = () => {\n const preGroupedFlatRows = table.getFilteredRowModel().flatRows;\n const {\n rowSelection\n } = table.getState();\n let isAllRowsSelected = Boolean(preGroupedFlatRows.length && Object.keys(rowSelection).length);\n if (isAllRowsSelected) {\n if (preGroupedFlatRows.some(row => row.getCanSelect() && !rowSelection[row.id])) {\n isAllRowsSelected = false;\n }\n }\n return isAllRowsSelected;\n };\n table.getIsAllPageRowsSelected = () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows.filter(row => row.getCanSelect());\n const {\n rowSelection\n } = table.getState();\n let isAllPageRowsSelected = !!paginationFlatRows.length;\n if (isAllPageRowsSelected && paginationFlatRows.some(row => !rowSelection[row.id])) {\n isAllPageRowsSelected = false;\n }\n return isAllPageRowsSelected;\n };\n table.getIsSomeRowsSelected = () => {\n var _table$getState$rowSe;\n const totalSelected = Object.keys((_table$getState$rowSe = table.getState().rowSelection) != null ? _table$getState$rowSe : {}).length;\n return totalSelected > 0 && totalSelected < table.getFilteredRowModel().flatRows.length;\n };\n table.getIsSomePageRowsSelected = () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows;\n return table.getIsAllPageRowsSelected() ? false : paginationFlatRows.filter(row => row.getCanSelect()).some(d => d.getIsSelected() || d.getIsSomeSelected());\n };\n table.getToggleAllRowsSelectedHandler = () => {\n return e => {\n table.toggleAllRowsSelected(e.target.checked);\n };\n };\n table.getToggleAllPageRowsSelectedHandler = () => {\n return e => {\n table.toggleAllPageRowsSelected(e.target.checked);\n };\n };\n },\n createRow: (row, table) => {\n row.toggleSelected = (value, opts) => {\n const isSelected = row.getIsSelected();\n table.setRowSelection(old => {\n var _opts$selectChildren;\n value = typeof value !== 'undefined' ? value : !isSelected;\n if (row.getCanSelect() && isSelected === value) {\n return old;\n }\n const selectedRowIds = {\n ...old\n };\n mutateRowIsSelected(selectedRowIds, row.id, value, (_opts$selectChildren = opts == null ? void 0 : opts.selectChildren) != null ? _opts$selectChildren : true, table);\n return selectedRowIds;\n });\n };\n row.getIsSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isRowSelected(row, rowSelection);\n };\n row.getIsSomeSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isSubRowSelected(row, rowSelection) === 'some';\n };\n row.getIsAllSubRowsSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isSubRowSelected(row, rowSelection) === 'all';\n };\n row.getCanSelect = () => {\n var _table$options$enable;\n if (typeof table.options.enableRowSelection === 'function') {\n return table.options.enableRowSelection(row);\n }\n return (_table$options$enable = table.options.enableRowSelection) != null ? _table$options$enable : true;\n };\n row.getCanSelectSubRows = () => {\n var _table$options$enable2;\n if (typeof table.options.enableSubRowSelection === 'function') {\n return table.options.enableSubRowSelection(row);\n }\n return (_table$options$enable2 = table.options.enableSubRowSelection) != null ? _table$options$enable2 : true;\n };\n row.getCanMultiSelect = () => {\n var _table$options$enable3;\n if (typeof table.options.enableMultiRowSelection === 'function') {\n return table.options.enableMultiRowSelection(row);\n }\n return (_table$options$enable3 = table.options.enableMultiRowSelection) != null ? _table$options$enable3 : true;\n };\n row.getToggleSelectedHandler = () => {\n const canSelect = row.getCanSelect();\n return e => {\n var _target;\n if (!canSelect) return;\n row.toggleSelected((_target = e.target) == null ? void 0 : _target.checked);\n };\n };\n }\n};\nconst mutateRowIsSelected = (selectedRowIds, id, value, includeChildren, table) => {\n var _row$subRows;\n const row = table.getRow(id, true);\n\n // const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && table.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n if (!row.getCanMultiSelect()) {\n Object.keys(selectedRowIds).forEach(key => delete selectedRowIds[key]);\n }\n if (row.getCanSelect()) {\n selectedRowIds[id] = true;\n }\n } else {\n delete selectedRowIds[id];\n }\n // }\n\n if (includeChildren && (_row$subRows = row.subRows) != null && _row$subRows.length && row.getCanSelectSubRows()) {\n row.subRows.forEach(row => mutateRowIsSelected(selectedRowIds, row.id, value, includeChildren, table));\n }\n};\nfunction selectRowsFn(table, rowModel) {\n const rowSelection = table.getState().rowSelection;\n const newSelectedFlatRows = [];\n const newSelectedRowsById = {};\n\n // Filters top level and nested rows\n const recurseRows = function (rows, depth) {\n return rows.map(row => {\n var _row$subRows2;\n const isSelected = isRowSelected(row, rowSelection);\n if (isSelected) {\n newSelectedFlatRows.push(row);\n newSelectedRowsById[row.id] = row;\n }\n if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length) {\n row = {\n ...row,\n subRows: recurseRows(row.subRows)\n };\n }\n if (isSelected) {\n return row;\n }\n }).filter(Boolean);\n };\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById\n };\n}\nfunction isRowSelected(row, selection) {\n var _selection$row$id;\n return (_selection$row$id = selection[row.id]) != null ? _selection$row$id : false;\n}\nfunction isSubRowSelected(row, selection, table) {\n var _row$subRows3;\n if (!((_row$subRows3 = row.subRows) != null && _row$subRows3.length)) return false;\n let allChildrenSelected = true;\n let someSelected = false;\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return;\n }\n if (subRow.getCanSelect()) {\n if (isRowSelected(subRow, selection)) {\n someSelected = true;\n } else {\n allChildrenSelected = false;\n }\n }\n\n // Check row selection of nested subrows\n if (subRow.subRows && subRow.subRows.length) {\n const subRowChildrenSelected = isSubRowSelected(subRow, selection);\n if (subRowChildrenSelected === 'all') {\n someSelected = true;\n } else if (subRowChildrenSelected === 'some') {\n someSelected = true;\n allChildrenSelected = false;\n } else {\n allChildrenSelected = false;\n }\n }\n });\n return allChildrenSelected ? 'all' : someSelected ? 'some' : false;\n}\n\nconst reSplitAlphaNumeric = /([0-9]+)/gm;\nconst alphanumeric = (rowA, rowB, columnId) => {\n return compareAlphanumeric(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());\n};\nconst alphanumericCaseSensitive = (rowA, rowB, columnId) => {\n return compareAlphanumeric(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));\n};\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nconst text = (rowA, rowB, columnId) => {\n return compareBasic(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());\n};\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nconst textCaseSensitive = (rowA, rowB, columnId) => {\n return compareBasic(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));\n};\nconst datetime = (rowA, rowB, columnId) => {\n const a = rowA.getValue(columnId);\n const b = rowB.getValue(columnId);\n\n // Can handle nullish values\n // Use > and < because == (and ===) doesn't work with\n // Date objects (would require calling getTime()).\n return a > b ? 1 : a < b ? -1 : 0;\n};\nconst basic = (rowA, rowB, columnId) => {\n return compareBasic(rowA.getValue(columnId), rowB.getValue(columnId));\n};\n\n// Utils\n\nfunction compareBasic(a, b) {\n return a === b ? 0 : a > b ? 1 : -1;\n}\nfunction toString(a) {\n if (typeof a === 'number') {\n if (isNaN(a) || a === Infinity || a === -Infinity) {\n return '';\n }\n return String(a);\n }\n if (typeof a === 'string') {\n return a;\n }\n return '';\n}\n\n// Mixed sorting is slow, but very inclusive of many edge cases.\n// It handles numbers, mixed alphanumeric combinations, and even\n// null, undefined, and Infinity\nfunction compareAlphanumeric(aStr, bStr) {\n // Split on number groups, but keep the delimiter\n // Then remove falsey split values\n const a = aStr.split(reSplitAlphaNumeric).filter(Boolean);\n const b = bStr.split(reSplitAlphaNumeric).filter(Boolean);\n\n // While\n while (a.length && b.length) {\n const aa = a.shift();\n const bb = b.shift();\n const an = parseInt(aa, 10);\n const bn = parseInt(bb, 10);\n const combo = [an, bn].sort();\n\n // Both are string\n if (isNaN(combo[0])) {\n if (aa > bb) {\n return 1;\n }\n if (bb > aa) {\n return -1;\n }\n continue;\n }\n\n // One is a string, one is a number\n if (isNaN(combo[1])) {\n return isNaN(an) ? -1 : 1;\n }\n\n // Both are numbers\n if (an > bn) {\n return 1;\n }\n if (bn > an) {\n return -1;\n }\n }\n return a.length - b.length;\n}\n\n// Exports\n\nconst sortingFns = {\n alphanumeric,\n alphanumericCaseSensitive,\n text,\n textCaseSensitive,\n datetime,\n basic\n};\n\n//\n\nconst RowSorting = {\n getInitialState: state => {\n return {\n sorting: [],\n ...state\n };\n },\n getDefaultColumnDef: () => {\n return {\n sortingFn: 'auto',\n sortUndefined: 1\n };\n },\n getDefaultOptions: table => {\n return {\n onSortingChange: makeStateUpdater('sorting', table),\n isMultiSortEvent: e => {\n return e.shiftKey;\n }\n };\n },\n createColumn: (column, table) => {\n column.getAutoSortingFn = () => {\n const firstRows = table.getFilteredRowModel().flatRows.slice(10);\n let isString = false;\n for (const row of firstRows) {\n const value = row == null ? void 0 : row.getValue(column.id);\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortingFns.datetime;\n }\n if (typeof value === 'string') {\n isString = true;\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortingFns.alphanumeric;\n }\n }\n }\n if (isString) {\n return sortingFns.text;\n }\n return sortingFns.basic;\n };\n column.getAutoSortDir = () => {\n const firstRow = table.getFilteredRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'string') {\n return 'asc';\n }\n return 'desc';\n };\n column.getSortingFn = () => {\n var _table$options$sortin, _table$options$sortin2;\n if (!column) {\n throw new Error();\n }\n return isFunction(column.columnDef.sortingFn) ? column.columnDef.sortingFn : column.columnDef.sortingFn === 'auto' ? column.getAutoSortingFn() : (_table$options$sortin = (_table$options$sortin2 = table.options.sortingFns) == null ? void 0 : _table$options$sortin2[column.columnDef.sortingFn]) != null ? _table$options$sortin : sortingFns[column.columnDef.sortingFn];\n };\n column.toggleSorting = (desc, multi) => {\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // table.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n\n // this needs to be outside of table.setSorting to be in sync with rerender\n const nextSortingOrder = column.getNextSortingOrder();\n const hasManualValue = typeof desc !== 'undefined' && desc !== null;\n table.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old == null ? void 0 : old.find(d => d.id === column.id);\n const existingIndex = old == null ? void 0 : old.findIndex(d => d.id === column.id);\n let newSorting = [];\n\n // What should we do with this sort action?\n let sortAction;\n let nextDesc = hasManualValue ? desc : nextSortingOrder === 'desc';\n\n // Multi-mode\n if (old != null && old.length && column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle';\n } else {\n sortAction = 'add';\n }\n } else {\n // Normal mode\n if (old != null && old.length && existingIndex !== old.length - 1) {\n sortAction = 'replace';\n } else if (existingSorting) {\n sortAction = 'toggle';\n } else {\n sortAction = 'replace';\n }\n }\n\n // Handle toggle states that will remove the sorting\n if (sortAction === 'toggle') {\n // If we are \"actually\" toggling (not a manual set value), should we remove the sorting?\n if (!hasManualValue) {\n // Is our intention to remove?\n if (!nextSortingOrder) {\n sortAction = 'remove';\n }\n }\n }\n if (sortAction === 'add') {\n var _table$options$maxMul;\n newSorting = [...old, {\n id: column.id,\n desc: nextDesc\n }];\n // Take latest n columns\n newSorting.splice(0, newSorting.length - ((_table$options$maxMul = table.options.maxMultiSortColCount) != null ? _table$options$maxMul : Number.MAX_SAFE_INTEGER));\n } else if (sortAction === 'toggle') {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === column.id) {\n return {\n ...d,\n desc: nextDesc\n };\n }\n return d;\n });\n } else if (sortAction === 'remove') {\n newSorting = old.filter(d => d.id !== column.id);\n } else {\n newSorting = [{\n id: column.id,\n desc: nextDesc\n }];\n }\n return newSorting;\n });\n };\n column.getFirstSortDir = () => {\n var _ref, _column$columnDef$sor;\n const sortDescFirst = (_ref = (_column$columnDef$sor = column.columnDef.sortDescFirst) != null ? _column$columnDef$sor : table.options.sortDescFirst) != null ? _ref : column.getAutoSortDir() === 'desc';\n return sortDescFirst ? 'desc' : 'asc';\n };\n column.getNextSortingOrder = multi => {\n var _table$options$enable, _table$options$enable2;\n const firstSortDirection = column.getFirstSortDir();\n const isSorted = column.getIsSorted();\n if (!isSorted) {\n return firstSortDirection;\n }\n if (isSorted !== firstSortDirection && ((_table$options$enable = table.options.enableSortingRemoval) != null ? _table$options$enable : true) && (\n // If enableSortRemove, enable in general\n multi ? (_table$options$enable2 = table.options.enableMultiRemove) != null ? _table$options$enable2 : true : true) // If multi, don't allow if enableMultiRemove))\n ) {\n return false;\n }\n return isSorted === 'desc' ? 'asc' : 'desc';\n };\n column.getCanSort = () => {\n var _column$columnDef$ena, _table$options$enable3;\n return ((_column$columnDef$ena = column.columnDef.enableSorting) != null ? _column$columnDef$ena : true) && ((_table$options$enable3 = table.options.enableSorting) != null ? _table$options$enable3 : true) && !!column.accessorFn;\n };\n column.getCanMultiSort = () => {\n var _ref2, _column$columnDef$ena2;\n return (_ref2 = (_column$columnDef$ena2 = column.columnDef.enableMultiSort) != null ? _column$columnDef$ena2 : table.options.enableMultiSort) != null ? _ref2 : !!column.accessorFn;\n };\n column.getIsSorted = () => {\n var _table$getState$sorti;\n const columnSort = (_table$getState$sorti = table.getState().sorting) == null ? void 0 : _table$getState$sorti.find(d => d.id === column.id);\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc';\n };\n column.getSortIndex = () => {\n var _table$getState$sorti2, _table$getState$sorti3;\n return (_table$getState$sorti2 = (_table$getState$sorti3 = table.getState().sorting) == null ? void 0 : _table$getState$sorti3.findIndex(d => d.id === column.id)) != null ? _table$getState$sorti2 : -1;\n };\n column.clearSorting = () => {\n //clear sorting for just 1 column\n table.setSorting(old => old != null && old.length ? old.filter(d => d.id !== column.id) : []);\n };\n column.getToggleSortingHandler = () => {\n const canSort = column.getCanSort();\n return e => {\n if (!canSort) return;\n e.persist == null || e.persist();\n column.toggleSorting == null || column.toggleSorting(undefined, column.getCanMultiSort() ? table.options.isMultiSortEvent == null ? void 0 : table.options.isMultiSortEvent(e) : false);\n };\n };\n },\n createTable: table => {\n table.setSorting = updater => table.options.onSortingChange == null ? void 0 : table.options.onSortingChange(updater);\n table.resetSorting = defaultState => {\n var _table$initialState$s, _table$initialState;\n table.setSorting(defaultState ? [] : (_table$initialState$s = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.sorting) != null ? _table$initialState$s : []);\n };\n table.getPreSortedRowModel = () => table.getGroupedRowModel();\n table.getSortedRowModel = () => {\n if (!table._getSortedRowModel && table.options.getSortedRowModel) {\n table._getSortedRowModel = table.options.getSortedRowModel(table);\n }\n if (table.options.manualSorting || !table._getSortedRowModel) {\n return table.getPreSortedRowModel();\n }\n return table._getSortedRowModel();\n };\n }\n};\n\nconst builtInFeatures = [Headers, ColumnVisibility, ColumnOrdering, ColumnPinning, ColumnFaceting, ColumnFiltering, GlobalFaceting,\n//depends on ColumnFaceting\nGlobalFiltering,\n//depends on ColumnFiltering\nRowSorting, ColumnGrouping,\n//depends on RowSorting\nRowExpanding, RowPagination, RowPinning, RowSelection, ColumnSizing];\n\n//\n\nfunction createTable(options) {\n var _options$_features, _options$initialState;\n if (process.env.NODE_ENV !== 'production' && (options.debugAll || options.debugTable)) {\n console.info('Creating Table Instance...');\n }\n const _features = [...builtInFeatures, ...((_options$_features = options._features) != null ? _options$_features : [])];\n let table = {\n _features\n };\n const defaultOptions = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions == null ? void 0 : feature.getDefaultOptions(table));\n }, {});\n const mergeOptions = options => {\n if (table.options.mergeOptions) {\n return table.options.mergeOptions(defaultOptions, options);\n }\n return {\n ...defaultOptions,\n ...options\n };\n };\n const coreInitialState = {};\n let initialState = {\n ...coreInitialState,\n ...((_options$initialState = options.initialState) != null ? _options$initialState : {})\n };\n table._features.forEach(feature => {\n var _feature$getInitialSt;\n initialState = (_feature$getInitialSt = feature.getInitialState == null ? void 0 : feature.getInitialState(initialState)) != null ? _feature$getInitialSt : initialState;\n });\n const queued = [];\n let queuedTimeout = false;\n const coreInstance = {\n _features,\n options: {\n ...defaultOptions,\n ...options\n },\n initialState,\n _queue: cb => {\n queued.push(cb);\n if (!queuedTimeout) {\n queuedTimeout = true;\n\n // Schedule a microtask to run the queued callbacks after\n // the current call stack (render, etc) has finished.\n Promise.resolve().then(() => {\n while (queued.length) {\n queued.shift()();\n }\n queuedTimeout = false;\n }).catch(error => setTimeout(() => {\n throw error;\n }));\n }\n },\n reset: () => {\n table.setState(table.initialState);\n },\n setOptions: updater => {\n const newOptions = functionalUpdate(updater, table.options);\n table.options = mergeOptions(newOptions);\n },\n getState: () => {\n return table.options.state;\n },\n setState: updater => {\n table.options.onStateChange == null || table.options.onStateChange(updater);\n },\n _getRowId: (row, index, parent) => {\n var _table$options$getRow;\n return (_table$options$getRow = table.options.getRowId == null ? void 0 : table.options.getRowId(row, index, parent)) != null ? _table$options$getRow : `${parent ? [parent.id, index].join('.') : index}`;\n },\n getCoreRowModel: () => {\n if (!table._getCoreRowModel) {\n table._getCoreRowModel = table.options.getCoreRowModel(table);\n }\n return table._getCoreRowModel();\n },\n // The final calls start at the bottom of the model,\n // expanded rows, which then work their way up\n\n getRowModel: () => {\n return table.getPaginationRowModel();\n },\n //in next version, we should just pass in the row model as the optional 2nd arg\n getRow: (id, searchAll) => {\n let row = (searchAll ? table.getPrePaginationRowModel() : table.getRowModel()).rowsById[id];\n if (!row) {\n row = table.getCoreRowModel().rowsById[id];\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRow could not find row with ID: ${id}`);\n }\n throw new Error();\n }\n }\n return row;\n },\n _getDefaultColumnDef: memo(() => [table.options.defaultColumn], defaultColumn => {\n var _defaultColumn;\n defaultColumn = (_defaultColumn = defaultColumn) != null ? _defaultColumn : {};\n return {\n header: props => {\n const resolvedColumnDef = props.header.column.columnDef;\n if (resolvedColumnDef.accessorKey) {\n return resolvedColumnDef.accessorKey;\n }\n if (resolvedColumnDef.accessorFn) {\n return resolvedColumnDef.id;\n }\n return null;\n },\n // footer: props => props.header.column.id,\n cell: props => {\n var _props$renderValue$to, _props$renderValue;\n return (_props$renderValue$to = (_props$renderValue = props.renderValue()) == null || _props$renderValue.toString == null ? void 0 : _props$renderValue.toString()) != null ? _props$renderValue$to : null;\n },\n ...table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumnDef == null ? void 0 : feature.getDefaultColumnDef());\n }, {}),\n ...defaultColumn\n };\n }, getMemoOptions(options, 'debugColumns', '_getDefaultColumnDef')),\n _getColumnDefs: () => table.options.columns,\n getAllColumns: memo(() => [table._getColumnDefs()], columnDefs => {\n const recurseColumns = function (columnDefs, parent, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n return columnDefs.map(columnDef => {\n const column = createColumn(table, columnDef, depth, parent);\n const groupingColumnDef = columnDef;\n column.columns = groupingColumnDef.columns ? recurseColumns(groupingColumnDef.columns, column, depth + 1) : [];\n return column;\n });\n };\n return recurseColumns(columnDefs);\n }, getMemoOptions(options, 'debugColumns', 'getAllColumns')),\n getAllFlatColumns: memo(() => [table.getAllColumns()], allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns();\n });\n }, getMemoOptions(options, 'debugColumns', 'getAllFlatColumns')),\n _getAllFlatColumnsById: memo(() => [table.getAllFlatColumns()], flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column;\n return acc;\n }, {});\n }, getMemoOptions(options, 'debugColumns', 'getAllFlatColumnsById')),\n getAllLeafColumns: memo(() => [table.getAllColumns(), table._getOrderColumnsFn()], (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns());\n return orderColumns(leafColumns);\n }, getMemoOptions(options, 'debugColumns', 'getAllLeafColumns')),\n getColumn: columnId => {\n const column = table._getAllFlatColumnsById()[columnId];\n if (process.env.NODE_ENV !== 'production' && !column) {\n console.error(`[Table] Column with id '${columnId}' does not exist.`);\n }\n return column;\n }\n };\n Object.assign(table, coreInstance);\n for (let index = 0; index < table._features.length; index++) {\n const feature = table._features[index];\n feature == null || feature.createTable == null || feature.createTable(table);\n }\n return table;\n}\n\nfunction getCoreRowModel() {\n return table => memo(() => [table.options.data], data => {\n const rowModel = {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n const accessRows = function (originalRows, depth, parentRow) {\n if (depth === void 0) {\n depth = 0;\n }\n const rows = [];\n for (let i = 0; i < originalRows.length; i++) {\n // This could be an expensive check at scale, so we should move it somewhere else, but where?\n // if (!id) {\n // if (process.env.NODE_ENV !== 'production') {\n // throw new Error(`getRowId expected an ID, but got ${id}`)\n // }\n // }\n\n // Make the row\n const row = createRow(table, table._getRowId(originalRows[i], i, parentRow), originalRows[i], i, depth, undefined, parentRow == null ? void 0 : parentRow.id);\n\n // Keep track of every row in a flat array\n rowModel.flatRows.push(row);\n // Also keep track of every row by its ID\n rowModel.rowsById[row.id] = row;\n // Push table row into parent\n rows.push(row);\n\n // Get the original subrows\n if (table.options.getSubRows) {\n var _row$originalSubRows;\n row.originalSubRows = table.options.getSubRows(originalRows[i], i);\n\n // Then recursively access them\n if ((_row$originalSubRows = row.originalSubRows) != null && _row$originalSubRows.length) {\n row.subRows = accessRows(row.originalSubRows, depth + 1, row);\n }\n }\n }\n return rows;\n };\n rowModel.rows = accessRows(data);\n return rowModel;\n }, getMemoOptions(table.options, 'debugTable', 'getRowModel', () => table._autoResetPageIndex()));\n}\n\nfunction getExpandedRowModel() {\n return table => memo(() => [table.getState().expanded, table.getPreExpandedRowModel(), table.options.paginateExpandedRows], (expanded, rowModel, paginateExpandedRows) => {\n if (!rowModel.rows.length || expanded !== true && !Object.keys(expanded != null ? expanded : {}).length) {\n return rowModel;\n }\n if (!paginateExpandedRows) {\n // Only expand rows at this point if they are being paginated\n return rowModel;\n }\n return expandRows(rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getExpandedRowModel'));\n}\nfunction expandRows(rowModel) {\n const expandedRows = [];\n const handleRow = row => {\n var _row$subRows;\n expandedRows.push(row);\n if ((_row$subRows = row.subRows) != null && _row$subRows.length && row.getIsExpanded()) {\n row.subRows.forEach(handleRow);\n }\n };\n rowModel.rows.forEach(handleRow);\n return {\n rows: expandedRows,\n flatRows: rowModel.flatRows,\n rowsById: rowModel.rowsById\n };\n}\n\nfunction getFacetedMinMaxValues() {\n return (table, columnId) => memo(() => {\n var _table$getColumn;\n return [(_table$getColumn = table.getColumn(columnId)) == null ? void 0 : _table$getColumn.getFacetedRowModel()];\n }, facetedRowModel => {\n if (!facetedRowModel) return undefined;\n const uniqueValues = facetedRowModel.flatRows.flatMap(flatRow => {\n var _flatRow$getUniqueVal;\n return (_flatRow$getUniqueVal = flatRow.getUniqueValues(columnId)) != null ? _flatRow$getUniqueVal : [];\n }).map(Number).filter(value => !Number.isNaN(value));\n if (!uniqueValues.length) return;\n let facetedMinValue = uniqueValues[0];\n let facetedMaxValue = uniqueValues[uniqueValues.length - 1];\n for (const value of uniqueValues) {\n if (value < facetedMinValue) facetedMinValue = value;else if (value > facetedMaxValue) facetedMaxValue = value;\n }\n return [facetedMinValue, facetedMaxValue];\n }, getMemoOptions(table.options, 'debugTable', 'getFacetedMinMaxValues'));\n}\n\nfunction filterRows(rows, filterRowImpl, table) {\n if (table.options.filterFromLeafRows) {\n return filterRowModelFromLeafs(rows, filterRowImpl, table);\n }\n return filterRowModelFromRoot(rows, filterRowImpl, table);\n}\nfunction filterRowModelFromLeafs(rowsToFilter, filterRow, table) {\n var _table$options$maxLea;\n const newFilteredFlatRows = [];\n const newFilteredRowsById = {};\n const maxDepth = (_table$options$maxLea = table.options.maxLeafRowFilterDepth) != null ? _table$options$maxLea : 100;\n const recurseFilterRows = function (rowsToFilter, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n const rows = [];\n\n // Filter from children up first\n for (let i = 0; i < rowsToFilter.length; i++) {\n var _row$subRows;\n let row = rowsToFilter[i];\n const newRow = createRow(table, row.id, row.original, row.index, row.depth, undefined, row.parentId);\n newRow.columnFilters = row.columnFilters;\n if ((_row$subRows = row.subRows) != null && _row$subRows.length && depth < maxDepth) {\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1);\n row = newRow;\n if (filterRow(row) && !newRow.subRows.length) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredFlatRows.push(row);\n continue;\n }\n if (filterRow(row) || newRow.subRows.length) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredFlatRows.push(row);\n continue;\n }\n } else {\n row = newRow;\n if (filterRow(row)) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredFlatRows.push(row);\n }\n }\n }\n return rows;\n };\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById\n };\n}\nfunction filterRowModelFromRoot(rowsToFilter, filterRow, table) {\n var _table$options$maxLea2;\n const newFilteredFlatRows = [];\n const newFilteredRowsById = {};\n const maxDepth = (_table$options$maxLea2 = table.options.maxLeafRowFilterDepth) != null ? _table$options$maxLea2 : 100;\n\n // Filters top level and nested rows\n const recurseFilterRows = function (rowsToFilter, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n // Filter from parents downward first\n\n const rows = [];\n\n // Apply the filter to any subRows\n for (let i = 0; i < rowsToFilter.length; i++) {\n let row = rowsToFilter[i];\n const pass = filterRow(row);\n if (pass) {\n var _row$subRows2;\n if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length && depth < maxDepth) {\n const newRow = createRow(table, row.id, row.original, row.index, row.depth, undefined, row.parentId);\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1);\n row = newRow;\n }\n rows.push(row);\n newFilteredFlatRows.push(row);\n newFilteredRowsById[row.id] = row;\n }\n }\n return rows;\n };\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById\n };\n}\n\nfunction getFacetedRowModel() {\n return (table, columnId) => memo(() => [table.getPreFilteredRowModel(), table.getState().columnFilters, table.getState().globalFilter, table.getFilteredRowModel()], (preRowModel, columnFilters, globalFilter) => {\n if (!preRowModel.rows.length || !(columnFilters != null && columnFilters.length) && !globalFilter) {\n return preRowModel;\n }\n const filterableIds = [...columnFilters.map(d => d.id).filter(d => d !== columnId), globalFilter ? '__global__' : undefined].filter(Boolean);\n const filterRowsImpl = row => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilters[filterableIds[i]] === false) {\n return false;\n }\n }\n return true;\n };\n return filterRows(preRowModel.rows, filterRowsImpl, table);\n }, getMemoOptions(table.options, 'debugTable', 'getFacetedRowModel'));\n}\n\nfunction getFacetedUniqueValues() {\n return (table, columnId) => memo(() => {\n var _table$getColumn;\n return [(_table$getColumn = table.getColumn(columnId)) == null ? void 0 : _table$getColumn.getFacetedRowModel()];\n }, facetedRowModel => {\n if (!facetedRowModel) return new Map();\n let facetedUniqueValues = new Map();\n for (let i = 0; i < facetedRowModel.flatRows.length; i++) {\n const values = facetedRowModel.flatRows[i].getUniqueValues(columnId);\n for (let j = 0; j < values.length; j++) {\n const value = values[j];\n if (facetedUniqueValues.has(value)) {\n var _facetedUniqueValues$;\n facetedUniqueValues.set(value, ((_facetedUniqueValues$ = facetedUniqueValues.get(value)) != null ? _facetedUniqueValues$ : 0) + 1);\n } else {\n facetedUniqueValues.set(value, 1);\n }\n }\n }\n return facetedUniqueValues;\n }, getMemoOptions(table.options, 'debugTable', `getFacetedUniqueValues_${columnId}`));\n}\n\nfunction getFilteredRowModel() {\n return table => memo(() => [table.getPreFilteredRowModel(), table.getState().columnFilters, table.getState().globalFilter], (rowModel, columnFilters, globalFilter) => {\n if (!rowModel.rows.length || !(columnFilters != null && columnFilters.length) && !globalFilter) {\n for (let i = 0; i < rowModel.flatRows.length; i++) {\n rowModel.flatRows[i].columnFilters = {};\n rowModel.flatRows[i].columnFiltersMeta = {};\n }\n return rowModel;\n }\n const resolvedColumnFilters = [];\n const resolvedGlobalFilters = [];\n (columnFilters != null ? columnFilters : []).forEach(d => {\n var _filterFn$resolveFilt;\n const column = table.getColumn(d.id);\n if (!column) {\n return;\n }\n const filterFn = column.getFilterFn();\n if (!filterFn) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Could not find a valid 'column.filterFn' for column with the ID: ${column.id}.`);\n }\n return;\n }\n resolvedColumnFilters.push({\n id: d.id,\n filterFn,\n resolvedValue: (_filterFn$resolveFilt = filterFn.resolveFilterValue == null ? void 0 : filterFn.resolveFilterValue(d.value)) != null ? _filterFn$resolveFilt : d.value\n });\n });\n const filterableIds = (columnFilters != null ? columnFilters : []).map(d => d.id);\n const globalFilterFn = table.getGlobalFilterFn();\n const globallyFilterableColumns = table.getAllLeafColumns().filter(column => column.getCanGlobalFilter());\n if (globalFilter && globalFilterFn && globallyFilterableColumns.length) {\n filterableIds.push('__global__');\n globallyFilterableColumns.forEach(column => {\n var _globalFilterFn$resol;\n resolvedGlobalFilters.push({\n id: column.id,\n filterFn: globalFilterFn,\n resolvedValue: (_globalFilterFn$resol = globalFilterFn.resolveFilterValue == null ? void 0 : globalFilterFn.resolveFilterValue(globalFilter)) != null ? _globalFilterFn$resol : globalFilter\n });\n });\n }\n let currentColumnFilter;\n let currentGlobalFilter;\n\n // Flag the prefiltered row model with each filter state\n for (let j = 0; j < rowModel.flatRows.length; j++) {\n const row = rowModel.flatRows[j];\n row.columnFilters = {};\n if (resolvedColumnFilters.length) {\n for (let i = 0; i < resolvedColumnFilters.length; i++) {\n currentColumnFilter = resolvedColumnFilters[i];\n const id = currentColumnFilter.id;\n\n // Tag the row with the column filter state\n row.columnFilters[id] = currentColumnFilter.filterFn(row, id, currentColumnFilter.resolvedValue, filterMeta => {\n row.columnFiltersMeta[id] = filterMeta;\n });\n }\n }\n if (resolvedGlobalFilters.length) {\n for (let i = 0; i < resolvedGlobalFilters.length; i++) {\n currentGlobalFilter = resolvedGlobalFilters[i];\n const id = currentGlobalFilter.id;\n // Tag the row with the first truthy global filter state\n if (currentGlobalFilter.filterFn(row, id, currentGlobalFilter.resolvedValue, filterMeta => {\n row.columnFiltersMeta[id] = filterMeta;\n })) {\n row.columnFilters.__global__ = true;\n break;\n }\n }\n if (row.columnFilters.__global__ !== true) {\n row.columnFilters.__global__ = false;\n }\n }\n }\n const filterRowsImpl = row => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilters[filterableIds[i]] === false) {\n return false;\n }\n }\n return true;\n };\n\n // Filter final rows using all of the active filters\n return filterRows(rowModel.rows, filterRowsImpl, table);\n }, getMemoOptions(table.options, 'debugTable', 'getFilteredRowModel', () => table._autoResetPageIndex()));\n}\n\nfunction getGroupedRowModel() {\n return table => memo(() => [table.getState().grouping, table.getPreGroupedRowModel()], (grouping, rowModel) => {\n if (!rowModel.rows.length || !grouping.length) {\n rowModel.rows.forEach(row => {\n row.depth = 0;\n row.parentId = undefined;\n });\n return rowModel;\n }\n\n // Filter the grouping list down to columns that exist\n const existingGrouping = grouping.filter(columnId => table.getColumn(columnId));\n const groupedFlatRows = [];\n const groupedRowsById = {};\n // const onlyGroupedFlatRows: Row[] = [];\n // const onlyGroupedRowsById: Record<RowId, Row> = {};\n // const nonGroupedFlatRows: Row[] = [];\n // const nonGroupedRowsById: Record<RowId, Row> = {};\n\n // Recursively group the data\n const groupUpRecursively = function (rows, depth, parentId) {\n if (depth === void 0) {\n depth = 0;\n }\n // Grouping depth has been been met\n // Stop grouping and simply rewrite thd depth and row relationships\n if (depth >= existingGrouping.length) {\n return rows.map(row => {\n row.depth = depth;\n groupedFlatRows.push(row);\n groupedRowsById[row.id] = row;\n if (row.subRows) {\n row.subRows = groupUpRecursively(row.subRows, depth + 1, row.id);\n }\n return row;\n });\n }\n const columnId = existingGrouping[depth];\n\n // Group the rows together for this level\n const rowGroupsMap = groupBy(rows, columnId);\n\n // Perform aggregations for each group\n const aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map((_ref, index) => {\n let [groupingValue, groupedRows] = _ref;\n let id = `${columnId}:${groupingValue}`;\n id = parentId ? `${parentId}>${id}` : id;\n\n // First, Recurse to group sub rows before aggregation\n const subRows = groupUpRecursively(groupedRows, depth + 1, id);\n subRows.forEach(subRow => {\n subRow.parentId = id;\n });\n\n // Flatten the leaf rows of the rows in this group\n const leafRows = depth ? flattenBy(groupedRows, row => row.subRows) : groupedRows;\n const row = createRow(table, id, leafRows[0].original, index, depth, undefined, parentId);\n Object.assign(row, {\n groupingColumnId: columnId,\n groupingValue,\n subRows,\n leafRows,\n getValue: columnId => {\n // Don't aggregate columns that are in the grouping\n if (existingGrouping.includes(columnId)) {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId];\n }\n if (groupedRows[0]) {\n var _groupedRows$0$getVal;\n row._valuesCache[columnId] = (_groupedRows$0$getVal = groupedRows[0].getValue(columnId)) != null ? _groupedRows$0$getVal : undefined;\n }\n return row._valuesCache[columnId];\n }\n if (row._groupingValuesCache.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId];\n }\n\n // Aggregate the values\n const column = table.getColumn(columnId);\n const aggregateFn = column == null ? void 0 : column.getAggregationFn();\n if (aggregateFn) {\n row._groupingValuesCache[columnId] = aggregateFn(columnId, leafRows, groupedRows);\n return row._groupingValuesCache[columnId];\n }\n }\n });\n subRows.forEach(subRow => {\n groupedFlatRows.push(subRow);\n groupedRowsById[subRow.id] = subRow;\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n });\n return row;\n });\n return aggregatedGroupedRows;\n };\n const groupedRows = groupUpRecursively(rowModel.rows, 0);\n groupedRows.forEach(subRow => {\n groupedFlatRows.push(subRow);\n groupedRowsById[subRow.id] = subRow;\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n });\n return {\n rows: groupedRows,\n flatRows: groupedFlatRows,\n rowsById: groupedRowsById\n };\n }, getMemoOptions(table.options, 'debugTable', 'getGroupedRowModel', () => {\n table._queue(() => {\n table._autoResetExpanded();\n table._autoResetPageIndex();\n });\n }));\n}\nfunction groupBy(rows, columnId) {\n const groupMap = new Map();\n return rows.reduce((map, row) => {\n const resKey = `${row.getGroupingValue(columnId)}`;\n const previous = map.get(resKey);\n if (!previous) {\n map.set(resKey, [row]);\n } else {\n previous.push(row);\n }\n return map;\n }, groupMap);\n}\n\nfunction getPaginationRowModel(opts) {\n return table => memo(() => [table.getState().pagination, table.getPrePaginationRowModel(), table.options.paginateExpandedRows ? undefined : table.getState().expanded], (pagination, rowModel) => {\n if (!rowModel.rows.length) {\n return rowModel;\n }\n const {\n pageSize,\n pageIndex\n } = pagination;\n let {\n rows,\n flatRows,\n rowsById\n } = rowModel;\n const pageStart = pageSize * pageIndex;\n const pageEnd = pageStart + pageSize;\n rows = rows.slice(pageStart, pageEnd);\n let paginatedRowModel;\n if (!table.options.paginateExpandedRows) {\n paginatedRowModel = expandRows({\n rows,\n flatRows,\n rowsById\n });\n } else {\n paginatedRowModel = {\n rows,\n flatRows,\n rowsById\n };\n }\n paginatedRowModel.flatRows = [];\n const handleRow = row => {\n paginatedRowModel.flatRows.push(row);\n if (row.subRows.length) {\n row.subRows.forEach(handleRow);\n }\n };\n paginatedRowModel.rows.forEach(handleRow);\n return paginatedRowModel;\n }, getMemoOptions(table.options, 'debugTable', 'getPaginationRowModel'));\n}\n\nfunction getSortedRowModel() {\n return table => memo(() => [table.getState().sorting, table.getPreSortedRowModel()], (sorting, rowModel) => {\n if (!rowModel.rows.length || !(sorting != null && sorting.length)) {\n return rowModel;\n }\n const sortingState = table.getState().sorting;\n const sortedFlatRows = [];\n\n // Filter out sortings that correspond to non existing columns\n const availableSorting = sortingState.filter(sort => {\n var _table$getColumn;\n return (_table$getColumn = table.getColumn(sort.id)) == null ? void 0 : _table$getColumn.getCanSort();\n });\n const columnInfoById = {};\n availableSorting.forEach(sortEntry => {\n const column = table.getColumn(sortEntry.id);\n if (!column) return;\n columnInfoById[sortEntry.id] = {\n sortUndefined: column.columnDef.sortUndefined,\n invertSorting: column.columnDef.invertSorting,\n sortingFn: column.getSortingFn()\n };\n });\n const sortData = rows => {\n // This will also perform a stable sorting using the row index\n // if needed.\n const sortedData = rows.map(row => ({\n ...row\n }));\n sortedData.sort((rowA, rowB) => {\n for (let i = 0; i < availableSorting.length; i += 1) {\n var _sortEntry$desc;\n const sortEntry = availableSorting[i];\n const columnInfo = columnInfoById[sortEntry.id];\n const sortUndefined = columnInfo.sortUndefined;\n const isDesc = (_sortEntry$desc = sortEntry == null ? void 0 : sortEntry.desc) != null ? _sortEntry$desc : false;\n let sortInt = 0;\n\n // All sorting ints should always return in ascending order\n if (sortUndefined) {\n const aValue = rowA.getValue(sortEntry.id);\n const bValue = rowB.getValue(sortEntry.id);\n const aUndefined = aValue === undefined;\n const bUndefined = bValue === undefined;\n if (aUndefined || bUndefined) {\n if (sortUndefined === 'first') return aUndefined ? -1 : 1;\n if (sortUndefined === 'last') return aUndefined ? 1 : -1;\n sortInt = aUndefined && bUndefined ? 0 : aUndefined ? sortUndefined : -sortUndefined;\n }\n }\n if (sortInt === 0) {\n sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id);\n }\n\n // If sorting is non-zero, take care of desc and inversion\n if (sortInt !== 0) {\n if (isDesc) {\n sortInt *= -1;\n }\n if (columnInfo.invertSorting) {\n sortInt *= -1;\n }\n return sortInt;\n }\n }\n return rowA.index - rowB.index;\n });\n\n // If there are sub-rows, sort them\n sortedData.forEach(row => {\n var _row$subRows;\n sortedFlatRows.push(row);\n if ((_row$subRows = row.subRows) != null && _row$subRows.length) {\n row.subRows = sortData(row.subRows);\n }\n });\n return sortedData;\n };\n return {\n rows: sortData(rowModel.rows),\n flatRows: sortedFlatRows,\n rowsById: rowModel.rowsById\n };\n }, getMemoOptions(table.options, 'debugTable', 'getSortedRowModel', () => table._autoResetPageIndex()));\n}\n\nexport { ColumnFaceting, ColumnFiltering, ColumnGrouping, ColumnOrdering, ColumnPinning, ColumnSizing, ColumnVisibility, GlobalFaceting, GlobalFiltering, Headers, RowExpanding, RowPagination, RowPinning, RowSelection, RowSorting, _getVisibleLeafColumns, aggregationFns, buildHeaderGroups, createCell, createColumn, createColumnHelper, createRow, createTable, defaultColumnSizing, expandRows, filterFns, flattenBy, functionalUpdate, getCoreRowModel, getExpandedRowModel, getFacetedMinMaxValues, getFacetedRowModel, getFacetedUniqueValues, getFilteredRowModel, getGroupedRowModel, getMemoOptions, getPaginationRowModel, getSortedRowModel, isFunction, isNumberArray, isRowSelected, isSubRowSelected, makeStateUpdater, memo, noop, orderColumns, passiveEventSupported, reSplitAlphaNumeric, selectRowsFn, shouldAutoRemoveFilter, sortingFns };\n//# sourceMappingURL=index.esm.js.map\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * All properties that should be excluded from the deep copy of an HTML element.\n */\nexport const excludedProps = new Set([\n // Text and content-related properties\n 'textContent',\n 'innerText',\n 'outerText',\n 'innerHTML',\n 'outerHTML',\n 'text',\n\n // Form element properties\n 'value',\n 'defaultValue',\n 'checked',\n 'defaultChecked',\n 'selectionStart',\n 'selectionEnd',\n 'selectionDirection',\n 'form',\n 'willValidate',\n 'validity',\n 'validationMessage',\n 'labels',\n 'list',\n 'maxLength',\n 'minLength',\n 'valueAsDate',\n 'valueAsNumber',\n\n // Editability and namespaces\n 'contentEditable',\n 'isContentEditable',\n 'namespaceURI',\n\n // Child-related properties (handled recursively)\n 'attributes',\n 'children',\n 'childNodes',\n 'firstChild',\n 'lastChild',\n\n // Blazor-related properties\n 'origin',\n 'dataset',\n 'attributeStyleMap',\n 'prefix',\n 'localName',\n 'tagName',\n 'shadowRoot',\n 'assignedSlot',\n 'scrollWidth',\n 'scrollHeight',\n 'clientTop',\n 'clientLeft',\n 'clientWidth',\n 'clientHeight',\n 'firstElementChild',\n 'lastElementChild',\n 'childElementCount',\n 'previousElementSibling',\n 'nextElementSibling',\n 'currentCSSZoom',\n 'nodeType',\n 'nodeName',\n 'baseURI',\n 'isConnected',\n 'ownerDocument',\n 'parentNode',\n 'parentElement',\n 'previousSibling',\n 'nextSibling',\n 'ELEMENT_NODE',\n 'ATTRIBUTE_NODE',\n 'TEXT_NODE',\n 'CDATA_SECTION_NODE',\n 'ENTITY_REFERENCE_NODE',\n 'ENTITY_NODE',\n 'PROCESSING_INSTRUCTION_NODE',\n 'COMMENT_NODE',\n 'DOCUMENT_NODE',\n 'DOCUMENT_TYPE_NODE',\n 'DOCUMENT_FRAGMENT_NODE',\n 'NOTATION_NODE',\n 'DOCUMENT_POSITION_DISCONNECTED',\n 'DOCUMENT_POSITION_PRECEDING',\n 'DOCUMENT_POSITION_FOLLOWING',\n 'DOCUMENT_POSITION_CONTAINS',\n 'DOCUMENT_POSITION_CONTAINED_BY',\n 'DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC',\n]);\n\n/**\n * Deep copy an HTML element with all its attributes, properties, and child nodes.\n * This method is useful for creating a clone of an element that can be safely modified without affecting the original.\n * @param {HTMLElement} element - The HTML element to copy.\n * @returns {HTMLElement} - A deep copy of the HTML element.\n * @example const copy = deepCopyElement(document.getElementById('myElement'));\n */\nexport function deepCopyElement(element: HTMLElement): HTMLElement {\n const copy = document.createElement(element.tagName);\n\n // ✅ Copy attributes\n Array.from(element.attributes).forEach(attr => {\n copy.setAttribute(attr.name, attr.value);\n });\n\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 (methods are excluded) and non-event listeners\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 (copy as any)[prop] = (element as any)[prop];\n } catch (error) {\n console.warn(`Could not copy property ${prop}:`, error.message);\n }\n }\n });\n\n // ✅ Copy dataset separately\n Object.assign(copy.dataset, element.dataset);\n\n // ✅ Handle form elements specifically\n if (element instanceof HTMLInputElement) {\n (copy as HTMLInputElement).value = element.value;\n (copy as HTMLInputElement).checked = element.checked;\n (copy as HTMLInputElement).defaultValue = element.defaultValue;\n (copy as HTMLInputElement).defaultChecked = element.defaultChecked;\n (copy as HTMLInputElement).selectionStart = element.selectionStart;\n (copy as HTMLInputElement).selectionEnd = element.selectionEnd;\n (copy as HTMLInputElement).selectionDirection = element.selectionDirection;\n } else if (element instanceof HTMLTextAreaElement) {\n (copy as HTMLTextAreaElement).value = element.value;\n (copy as HTMLTextAreaElement).defaultValue = element.defaultValue;\n (copy as HTMLTextAreaElement).selectionStart = element.selectionStart;\n (copy as HTMLTextAreaElement).selectionEnd = element.selectionEnd;\n (copy as HTMLTextAreaElement).selectionDirection =\n element.selectionDirection;\n } else if (element instanceof HTMLSelectElement) {\n (copy as HTMLSelectElement).value = element.value;\n (copy as HTMLSelectElement).selectedIndex = element.selectedIndex;\n }\n\n // ✅ Recursively copy child nodes (prevent duplicates)\n element.childNodes.forEach(child => {\n let childCopy;\n if (child.nodeType === Node.ELEMENT_NODE) {\n childCopy = deepCopyElement(child as HTMLElement);\n } else {\n childCopy = child.cloneNode(true);\n }\n copy.appendChild(childCopy);\n });\n\n return copy;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Debounce function to prevent multiple calls in a short\n * period of time (e.g., input events).\n * @param {T} func - Function to be debounced\n * @param {number} wait - Time in milliseconds\n * @returns {(...args: Parameters<T>) => void} - Debounced function\n */\nexport function debounce<T extends (...args: any[]) => any>(\n func: T,\n wait: number,\n): (...args: Parameters<T>) => void {\n let timeout: ReturnType<typeof setTimeout>;\n\n return function executedFunction(...args: Parameters<T>) {\n const later = () => {\n clearTimeout(timeout);\n func(...args);\n };\n\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n };\n}\n","@import '../../styles/focus-ring';\n\n@mixin root-styles() {\n display: block;\n}\n\n@mixin datagrid-variables() {\n --nv-datagrid-border-default: var(\n --components-form-field-border-default\n );\n --nv-datagrid-border-hover: var(--components-form-field-border-hover);\n --nv-datagrid-border-focus: var(--components-form-field-border-default);\n --nv-datagrid-background-default: var(\n --components-form-field-background-default\n );\n --nv-datagrid-background-checked: var(\n --components-form-field-background-checked\n );\n --nv-datagrid-background-disabled: var(\n --components-form-field-background-disabled\n ); \n --nv-datagrid-color-checked: var(\n --components-form-shape-foreground-default\n );\n --nv-datagrid-color-disabled: var(\n --components-form-shape-foreground-disabled\n );\n --nv-datagrid-outline-color: var(--color-focus-brand);\n}\n\n@mixin checkbox-container-styles() {\n position: relative;\n color: var(--nv-datagrid-color-checked);\n\n input[type='checkbox'][readonly] {\n // TODO: Find a way to use the --components-form-opacity-disabled variable properly, right now it outputs a value of 50px instead of 0.5.\n opacity: 0.5;\n }\n\n &:has(input[type='checkbox']:disabled:not([readonly])) {\n color: var(--nv-datagrid-color-disabled);\n }\n}\n\n@mixin input-styles() {\n appearance: none;\n position: relative;\n display: flex;\n width: var(--form-checkbox-size);\n height: var(--form-checkbox-size);\n flex-direction: column;\n align-items: flex-start;\n border-radius: var(--form-checkbox-radius);\n border-width: var(--form-checkbox-border-width);\n border-style: solid;\n border-color: var(--nv-datagrid-border-default);\n background: var(--nv-datagrid-background-default);\n\n &:hover {\n border-color: var(--nv-datagrid-border-hover);\n }\n\n &:focus {\n border-color: var(--nv-datagrid-border-focus);\n }\n\n @include focus-ring(var(--nv-datagrid-outline-color));\n\n &:checked,\n &:indeterminate {\n background: var(--nv-datagrid-background-checked);\n border-color: var(--nv-datagrid-background-checked);\n }\n\n &:disabled:not([readonly]) {\n background: var(--nv-datagrid-background-disabled);\n border-color: var(--nv-datagrid-border-default);\n }\n\n &[readonly] {\n // TODO: Find a way to use the --components-form-opacity-disabled variable properly, right now it outputs a value of 50px instead of 0.5.\n opacity: 0.5;\n }\n}\n\n@mixin icon-styles() {\n pointer-events: none;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n width: var(--form-checkbox-icon-size);\n height: var(--form-checkbox-icon-size);\n fill: none;\n stroke: currentcolor;\n stroke-width: var(--form-checkbox-icon-stroke);\n flex-shrink: 0;\n }\n}\n\nnv-datagrid {\n @include datagrid-variables();\n @include root-styles();\n\n .hidden {\n display: none;\n }\n\n table {\n border-collapse: collapse;\n border-color: inherit;\n text-indent: 0;\n width: 100%;\n }\n th {\n text-align: left;\n border-bottom: 1px solid var(--components-datagrid-header-border);\n height: var(--spacing-12);\n padding: var(--spacing-3) var(--spacing-4);\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-high-emphasis);\n color: var(--components-datagrid-header-text);\n }\n td {\n border-bottom: 1px solid var(--components-datagrid-body-border);\n height: var(--spacing-12);\n max-height: var(--spacing-14);\n padding: var(--spacing-2) var(--spacing-4);\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-low-emphasis);\n color: var(--components-datagrid-body-text);\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n tbody > tr:hover {\n background: var(--color-interaction-container-neutral-background-hover);\n }\n .cursor-pointer {\n cursor: pointer;\n }\n .select-none {\n -webkit-user-select: none;\n user-select: none;\n }\n .search-container {\n display: flex;\n }\n\n .checkbox-container {\n @include checkbox-container-styles();\n\n input[type='checkbox'] {\n @include input-styles();\n }\n\n .icon {\n @include icon-styles();\n }\n }\n}\n\n// https://tailwindcss.com/docs/table-layout\n","/* 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@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()\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()\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()\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"],"version":3}
|