@nova-design-system/nova-webcomponents 3.0.0-beta.46 → 3.0.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-9bda5507.js +0 -4
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/native.cjs.js +1 -1
- package/dist/cjs/nv-badge_2.cjs.entry.js +1 -1
- package/dist/cjs/nv-breadcrumb.cjs.entry.js +1 -1
- package/dist/cjs/nv-breadcrumbs.cjs.entry.js +1 -1
- package/dist/cjs/nv-button.cjs.entry.js +1 -1
- package/dist/cjs/nv-calendar.cjs.entry.js +48 -19
- package/dist/cjs/nv-calendar.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-col.cjs.entry.js +1 -1
- package/dist/cjs/nv-datagrid.cjs.entry.js +351 -91
- 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 +1 -1
- package/dist/cjs/nv-dialogfooter_2.cjs.entry.js +2 -2
- package/dist/cjs/nv-fieldcheckbox.cjs.entry.js +4 -4
- package/dist/cjs/nv-fielddate.cjs.entry.js +5 -5
- package/dist/cjs/nv-fielddaterange.cjs.entry.js +4 -4
- package/dist/cjs/nv-fielddropdown.cjs.entry.js +15 -29
- 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 +28 -71
- package/dist/cjs/nv-fieldmultiselect.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldnumber.cjs.entry.js +3 -3
- package/dist/cjs/nv-fieldnumber.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldpassword.cjs.entry.js +3 -3
- package/dist/cjs/nv-fieldradio.cjs.entry.js +3 -3
- package/dist/cjs/nv-fieldselect.cjs.entry.js +5 -5
- package/dist/cjs/nv-fieldtext.cjs.entry.js +3 -3
- package/dist/cjs/nv-fieldtextarea.cjs.entry.js +3 -3
- package/dist/cjs/nv-fieldtime.cjs.entry.js +9 -9
- package/dist/cjs/nv-icon.cjs.entry.js +1 -1
- package/dist/cjs/nv-iconbutton_2.cjs.entry.js +2 -2
- package/dist/cjs/nv-menu.cjs.entry.js +16 -42
- 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-popover.cjs.entry.js +1 -1
- package/dist/cjs/nv-row.cjs.entry.js +1 -1
- package/dist/cjs/nv-stack.cjs.entry.js +1 -1
- package/dist/cjs/nv-stack.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-table.cjs.entry.js +2 -2
- package/dist/cjs/nv-toggle.cjs.entry.js +2 -2
- package/dist/cjs/nv-tooltip.cjs.entry.js +1 -1
- package/dist/collection/collection-manifest.json +0 -1
- package/dist/collection/components/nv-breadcrumb/nv-breadcrumb.js +1 -1
- package/dist/collection/components/nv-breadcrumbs/nv-breadcrumbs.js +1 -1
- package/dist/collection/components/nv-button/nv-button.js +1 -1
- package/dist/collection/components/nv-calendar/nv-calendar.docs.js +0 -9
- package/dist/collection/components/nv-calendar/nv-calendar.docs.js.map +1 -1
- package/dist/collection/components/nv-calendar/nv-calendar.js +48 -19
- package/dist/collection/components/nv-calendar/nv-calendar.js.map +1 -1
- package/dist/collection/components/nv-col/nv-col.js +1 -1
- package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js +542 -75
- package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js.map +1 -1
- package/dist/collection/components/nv-datagrid/nv-datagrid.js +366 -95
- package/dist/collection/components/nv-datagrid/nv-datagrid.js.map +1 -1
- package/dist/collection/components/nv-datagridcolumn/nv-datagridcolumn.js +1 -1
- package/dist/collection/components/nv-dialog/nv-dialog.js +1 -1
- package/dist/collection/components/nv-dialogfooter/nv-dialogfooter.js +1 -1
- package/dist/collection/components/nv-dialogheader/nv-dialogheader.js +1 -1
- package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.js +4 -4
- package/dist/collection/components/nv-fielddate/nv-fielddate.js +5 -5
- package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js +4 -4
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.docs.js +8 -8
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.docs.js.map +1 -1
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js +22 -39
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js.map +1 -1
- package/dist/collection/components/nv-fielddropdownitem/nv-fielddropdownitem.js +1 -1
- package/dist/collection/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.js +1 -1
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.docs.js +6 -6
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js +35 -85
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js.map +1 -1
- package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js +3 -3
- package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js.map +1 -1
- package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.js +3 -3
- package/dist/collection/components/nv-fieldradio/nv-fieldradio.js +3 -3
- package/dist/collection/components/nv-fieldselect/nv-fieldselect.js +5 -5
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.js +3 -3
- package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.js +3 -3
- package/dist/collection/components/nv-fieldtime/nv-fieldtime.js +9 -9
- package/dist/collection/components/nv-icon/nv-icon.js +1 -1
- package/dist/collection/components/nv-iconbutton/nv-iconbutton.js +1 -1
- package/dist/collection/components/nv-loader/nv-loader.js +1 -1
- package/dist/collection/components/nv-menu/nv-menu.docs.js +3 -3
- package/dist/collection/components/nv-menu/nv-menu.docs.js.map +1 -1
- package/dist/collection/components/nv-menu/nv-menu.js +31 -59
- 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-popover/nv-popover.js +1 -1
- package/dist/collection/components/nv-row/nv-row.js +1 -1
- package/dist/collection/components/nv-stack/nv-stack.docs.js +7 -6
- package/dist/collection/components/nv-stack/nv-stack.docs.js.map +1 -1
- package/dist/collection/components/nv-stack/nv-stack.js +1 -1
- package/dist/collection/components/nv-stack/nv-stack.js.map +1 -1
- package/dist/collection/components/nv-table/nv-table.js +2 -2
- package/dist/collection/components/nv-toggle/nv-toggle.js +2 -2
- package/dist/collection/components/nv-tooltip/nv-tooltip.js +1 -1
- package/dist/components/nv-alert.js +1 -1
- package/dist/components/nv-avatar.js +1 -1
- package/dist/components/nv-badge.js +1 -1
- package/dist/components/nv-breadcrumb.js +3 -3
- package/dist/components/nv-breadcrumbs.js +1 -1
- package/dist/components/nv-button.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 +359 -94
- package/dist/components/nv-datagrid.js.map +1 -1
- package/dist/components/nv-datagridcolumn.js +1 -1
- package/dist/components/nv-dialog.js +6 -6
- 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 +12 -12
- package/dist/components/nv-fielddaterange.js +11 -11
- package/dist/components/nv-fielddropdown.js +21 -36
- 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 +36 -81
- package/dist/components/nv-fieldmultiselect.js.map +1 -1
- package/dist/components/nv-fieldnumber.js +6 -6
- package/dist/components/nv-fieldnumber.js.map +1 -1
- package/dist/components/nv-fieldpassword.js +6 -6
- package/dist/components/nv-fieldradio.js +3 -3
- package/dist/components/nv-fieldselect.js +8 -8
- package/dist/components/nv-fieldtext.js +4 -4
- package/dist/components/nv-fieldtextarea.js +3 -3
- package/dist/components/nv-fieldtime.js +13 -13
- 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 +21 -50
- package/dist/components/nv-menu.js.map +1 -1
- package/dist/components/nv-menuitem.js +1 -1
- package/dist/components/nv-popover.js +1 -1
- package/dist/components/nv-row.js +1 -1
- package/dist/components/nv-stack.js +1 -1
- package/dist/components/nv-stack.js.map +1 -1
- package/dist/components/nv-table.js +2 -2
- package/dist/components/nv-toggle.js +2 -2
- package/dist/components/nv-tooltip.js +1 -1
- package/dist/components/{p-d88ced51.js → p-02752770.js} +2 -2
- package/dist/components/{p-d88ced51.js.map → p-02752770.js.map} +1 -1
- package/dist/components/{p-7b89fb48.js → p-150daf68.js} +2 -2
- package/dist/components/{p-7b89fb48.js.map → p-150daf68.js.map} +1 -1
- package/dist/components/{p-56ef8131.js → p-2012b8ba.js} +3 -3
- package/dist/components/{p-56ef8131.js.map → p-2012b8ba.js.map} +1 -1
- package/dist/components/{p-8674c7af.js → p-2d9ba7d3.js} +3 -3
- package/dist/components/{p-8674c7af.js.map → p-2d9ba7d3.js.map} +1 -1
- package/dist/components/{p-5a5f11c2.js → p-373926aa.js} +2 -2
- package/dist/components/{p-5a5f11c2.js.map → p-373926aa.js.map} +1 -1
- package/dist/components/{p-dcabc6fa.js → p-4d3ec142.js} +3 -3
- package/dist/components/{p-dcabc6fa.js.map → p-4d3ec142.js.map} +1 -1
- package/dist/components/{p-91b58443.js → p-591730e7.js} +2 -2
- package/dist/components/{p-91b58443.js.map → p-591730e7.js.map} +1 -1
- package/dist/components/{p-b4768da6.js → p-6c364a23.js} +5 -5
- package/dist/components/{p-b4768da6.js.map → p-6c364a23.js.map} +1 -1
- package/dist/components/{p-f469df15.js → p-a30b55fc.js} +2 -2
- package/dist/components/{p-f469df15.js.map → p-a30b55fc.js.map} +1 -1
- package/dist/components/{p-664c5a14.js → p-b7b78e64.js} +2 -2
- package/dist/components/{p-664c5a14.js.map → p-b7b78e64.js.map} +1 -1
- package/dist/components/{p-8c5a861b.js → p-c14f6b8e.js} +3 -3
- package/dist/components/{p-8c5a861b.js.map → p-c14f6b8e.js.map} +1 -1
- package/dist/components/{p-a9e1bf70.js → p-dc3faba3.js} +4 -4
- package/dist/components/{p-a9e1bf70.js.map → p-dc3faba3.js.map} +1 -1
- package/dist/components/{p-9d6aaf76.js → p-e00cbb8a.js} +5 -5
- package/dist/components/{p-9d6aaf76.js.map → p-e00cbb8a.js.map} +1 -1
- package/dist/components/{p-a9f162a8.js → p-f331117c.js} +53 -24
- package/dist/components/p-f331117c.js.map +1 -0
- package/dist/components/{p-18bc0291.js → p-f4d86795.js} +3 -3
- package/dist/components/{p-18bc0291.js.map → p-f4d86795.js.map} +1 -1
- package/dist/esm/index-1fb7a9a6.js +0 -4
- package/dist/esm/loader.js +1 -1
- package/dist/esm/native.js +1 -1
- package/dist/esm/nv-badge_2.entry.js +1 -1
- package/dist/esm/nv-breadcrumb.entry.js +1 -1
- package/dist/esm/nv-breadcrumbs.entry.js +1 -1
- package/dist/esm/nv-button.entry.js +1 -1
- package/dist/esm/nv-calendar.entry.js +48 -19
- package/dist/esm/nv-calendar.entry.js.map +1 -1
- package/dist/esm/nv-col.entry.js +1 -1
- package/dist/esm/nv-datagrid.entry.js +351 -91
- 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 +1 -1
- package/dist/esm/nv-dialogfooter_2.entry.js +2 -2
- package/dist/esm/nv-fieldcheckbox.entry.js +4 -4
- package/dist/esm/nv-fielddate.entry.js +5 -5
- package/dist/esm/nv-fielddaterange.entry.js +4 -4
- package/dist/esm/nv-fielddropdown.entry.js +15 -29
- 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 +28 -71
- package/dist/esm/nv-fieldmultiselect.entry.js.map +1 -1
- package/dist/esm/nv-fieldnumber.entry.js +3 -3
- package/dist/esm/nv-fieldnumber.entry.js.map +1 -1
- package/dist/esm/nv-fieldpassword.entry.js +3 -3
- package/dist/esm/nv-fieldradio.entry.js +3 -3
- package/dist/esm/nv-fieldselect.entry.js +5 -5
- package/dist/esm/nv-fieldtext.entry.js +3 -3
- package/dist/esm/nv-fieldtextarea.entry.js +3 -3
- package/dist/esm/nv-fieldtime.entry.js +9 -9
- package/dist/esm/nv-icon.entry.js +1 -1
- package/dist/esm/nv-iconbutton_2.entry.js +2 -2
- package/dist/esm/nv-menu.entry.js +16 -42
- package/dist/esm/nv-menu.entry.js.map +1 -1
- package/dist/esm/nv-menuitem.entry.js +1 -1
- package/dist/esm/nv-popover.entry.js +1 -1
- package/dist/esm/nv-row.entry.js +1 -1
- package/dist/esm/nv-stack.entry.js +1 -1
- package/dist/esm/nv-stack.entry.js.map +1 -1
- package/dist/esm/nv-table.entry.js +2 -2
- package/dist/esm/nv-toggle.entry.js +2 -2
- package/dist/esm/nv-tooltip.entry.js +1 -1
- package/dist/native/native.esm.js +1 -1
- package/dist/native/native.esm.js.map +1 -1
- package/dist/native/p-0245863d.entry.js +2 -0
- package/dist/native/{p-8946883b.entry.js → p-0ee428d5.entry.js} +2 -2
- package/dist/native/{p-8f7c1bb8.entry.js → p-244f56ac.entry.js} +2 -2
- package/dist/native/p-2691e02d.entry.js +2 -0
- package/dist/native/{p-aeac63ea.entry.js → p-37f0210e.entry.js} +2 -2
- package/dist/native/{p-000ef9c9.entry.js → p-39bb95ff.entry.js} +2 -2
- package/dist/native/{p-76cd466a.entry.js → p-4ae26462.entry.js} +2 -2
- package/dist/native/{p-75f4bfe8.entry.js → p-4d9c4618.entry.js} +2 -2
- package/dist/native/p-4d9c4618.entry.js.map +1 -0
- package/dist/native/{p-d4e48d08.entry.js → p-59e0bd2b.entry.js} +2 -2
- package/dist/native/{p-d4e48d08.entry.js.map → p-59e0bd2b.entry.js.map} +1 -1
- package/dist/native/{p-626a1372.entry.js → p-5c00f092.entry.js} +2 -2
- package/dist/native/p-63e6aed3.entry.js +2 -0
- package/dist/native/p-63e6aed3.entry.js.map +1 -0
- package/dist/native/{p-4fe5ebe9.entry.js → p-6b348684.entry.js} +2 -2
- package/dist/native/{p-aa957898.entry.js → p-6ff228da.entry.js} +2 -2
- package/dist/native/{p-aa957898.entry.js.map → p-6ff228da.entry.js.map} +1 -1
- package/dist/native/{p-74f7f404.entry.js → p-701b5557.entry.js} +2 -2
- package/dist/native/{p-002e7bf1.entry.js → p-7f5eb2ac.entry.js} +2 -2
- package/dist/native/{p-e4f84faa.entry.js → p-84a73e2a.entry.js} +2 -2
- package/dist/native/p-9135fdf5.entry.js +2 -0
- package/dist/native/p-93dc2f47.entry.js +2 -0
- package/dist/native/{p-7e1fa44c.entry.js.map → p-93dc2f47.entry.js.map} +1 -1
- package/dist/native/{p-be5f62e5.entry.js → p-9a267f16.entry.js} +2 -2
- package/dist/native/p-9a267f16.entry.js.map +1 -0
- package/dist/native/{p-60d6ffa3.entry.js → p-9d6431c7.entry.js} +2 -2
- package/dist/native/{p-b11fdaed.entry.js → p-b094296d.entry.js} +2 -2
- package/dist/native/{p-43cc98dc.entry.js → p-b2ce83ad.entry.js} +2 -2
- package/dist/native/{p-115ad66c.entry.js → p-bad11367.entry.js} +2 -2
- package/dist/native/{p-6603d939.entry.js → p-c7b201cd.entry.js} +2 -2
- package/dist/native/{p-4c859a14.entry.js → p-d7a76400.entry.js} +2 -2
- package/dist/native/p-e1a4f776.entry.js +2 -0
- package/dist/native/p-e1a4f776.entry.js.map +1 -0
- package/dist/native/p-e49bbd02.entry.js +2 -0
- package/dist/native/p-e49bbd02.entry.js.map +1 -0
- package/dist/native/{p-98030346.entry.js → p-e5de64d5.entry.js} +2 -2
- package/dist/native/p-eee01062.entry.js +2 -0
- package/dist/native/{p-3df6febe.entry.js.map → p-eee01062.entry.js.map} +1 -1
- package/dist/native/{p-b6164ebc.entry.js → p-f6bdc270.entry.js} +2 -2
- package/dist/native/{p-50dcce07.entry.js → p-f85aca27.entry.js} +2 -2
- package/dist/native/{p-1e5453be.entry.js → p-fa77a591.entry.js} +2 -2
- package/dist/native/{p-d5158e27.entry.js → p-fb5bddba.entry.js} +2 -2
- package/dist/types/components/nv-calendar/nv-calendar.d.ts +10 -7
- package/dist/types/components/nv-datagrid/nv-datagrid.d.ts +37 -2
- package/dist/types/components/nv-fielddropdown/nv-fielddropdown.d.ts +16 -20
- package/dist/types/components/nv-fieldmultiselect/nv-fieldmultiselect.d.ts +16 -34
- package/dist/types/components/nv-menu/nv-menu.d.ts +46 -12
- package/dist/types/components.d.ts +174 -43
- package/dist/vscode-data.json +8 -20
- package/hydrate/index.js +535 -407
- package/hydrate/index.mjs +535 -407
- package/package.json +3 -2
- package/dist/cjs/nv-base.cjs.entry.js +0 -74
- package/dist/cjs/nv-base.cjs.entry.js.map +0 -1
- package/dist/collection/components/nv-base/nv-base.docs.js +0 -5
- package/dist/collection/components/nv-base/nv-base.docs.js.map +0 -1
- package/dist/collection/components/nv-base/nv-base.js +0 -68
- package/dist/collection/components/nv-base/nv-base.js.map +0 -1
- package/dist/components/nv-base.d.ts +0 -11
- package/dist/components/nv-base.js +0 -88
- package/dist/components/nv-base.js.map +0 -1
- package/dist/components/p-a9f162a8.js.map +0 -1
- package/dist/esm/nv-base.entry.js +0 -70
- package/dist/esm/nv-base.entry.js.map +0 -1
- package/dist/native/p-2ed9934a.entry.js +0 -2
- package/dist/native/p-2ed9934a.entry.js.map +0 -1
- package/dist/native/p-3df6febe.entry.js +0 -2
- package/dist/native/p-4977fcd0.entry.js +0 -2
- package/dist/native/p-75f4bfe8.entry.js.map +0 -1
- package/dist/native/p-7e1fa44c.entry.js +0 -2
- package/dist/native/p-b8b58064.entry.js +0 -2
- package/dist/native/p-be5f62e5.entry.js.map +0 -1
- package/dist/native/p-c6fe73a9.entry.js +0 -2
- package/dist/native/p-c6fe73a9.entry.js.map +0 -1
- package/dist/native/p-ce64d562.entry.js +0 -2
- package/dist/native/p-d352a8b3.entry.js +0 -2
- package/dist/native/p-d352a8b3.entry.js.map +0 -1
- package/dist/native/p-e200185a.entry.js +0 -2
- package/dist/native/p-e200185a.entry.js.map +0 -1
- package/dist/types/components/nv-base/nv-base.d.ts +0 -17
- package/dist/types/components/nv-base/nv-base.docs.d.ts +0 -5
- /package/dist/native/{p-ce64d562.entry.js.map → p-0245863d.entry.js.map} +0 -0
- /package/dist/native/{p-8946883b.entry.js.map → p-0ee428d5.entry.js.map} +0 -0
- /package/dist/native/{p-8f7c1bb8.entry.js.map → p-244f56ac.entry.js.map} +0 -0
- /package/dist/native/{p-4977fcd0.entry.js.map → p-2691e02d.entry.js.map} +0 -0
- /package/dist/native/{p-aeac63ea.entry.js.map → p-37f0210e.entry.js.map} +0 -0
- /package/dist/native/{p-000ef9c9.entry.js.map → p-39bb95ff.entry.js.map} +0 -0
- /package/dist/native/{p-76cd466a.entry.js.map → p-4ae26462.entry.js.map} +0 -0
- /package/dist/native/{p-626a1372.entry.js.map → p-5c00f092.entry.js.map} +0 -0
- /package/dist/native/{p-4fe5ebe9.entry.js.map → p-6b348684.entry.js.map} +0 -0
- /package/dist/native/{p-74f7f404.entry.js.map → p-701b5557.entry.js.map} +0 -0
- /package/dist/native/{p-002e7bf1.entry.js.map → p-7f5eb2ac.entry.js.map} +0 -0
- /package/dist/native/{p-e4f84faa.entry.js.map → p-84a73e2a.entry.js.map} +0 -0
- /package/dist/native/{p-b8b58064.entry.js.map → p-9135fdf5.entry.js.map} +0 -0
- /package/dist/native/{p-60d6ffa3.entry.js.map → p-9d6431c7.entry.js.map} +0 -0
- /package/dist/native/{p-b11fdaed.entry.js.map → p-b094296d.entry.js.map} +0 -0
- /package/dist/native/{p-43cc98dc.entry.js.map → p-b2ce83ad.entry.js.map} +0 -0
- /package/dist/native/{p-115ad66c.entry.js.map → p-bad11367.entry.js.map} +0 -0
- /package/dist/native/{p-6603d939.entry.js.map → p-c7b201cd.entry.js.map} +0 -0
- /package/dist/native/{p-4c859a14.entry.js.map → p-d7a76400.entry.js.map} +0 -0
- /package/dist/native/{p-98030346.entry.js.map → p-e5de64d5.entry.js.map} +0 -0
- /package/dist/native/{p-b6164ebc.entry.js.map → p-f6bdc270.entry.js.map} +0 -0
- /package/dist/native/{p-50dcce07.entry.js.map → p-f85aca27.entry.js.map} +0 -0
- /package/dist/native/{p-1e5453be.entry.js.map → p-fa77a591.entry.js.map} +0 -0
- /package/dist/native/{p-d5158e27.entry.js.map → p-fb5bddba.entry.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["createColumnHelper","accessor","column","accessorFn","accessorKey","display","group","functionalUpdate","updater","input","makeStateUpdater","key","instance","setState","old","isFunction","d","Function","isNumberArray","Array","isArray","every","val","flattenBy","arr","getChildren","flat","recurse","subArr","forEach","item","push","children","length","memo","getDeps","fn","opts","deps","result","depArgs","depTime","debug","Date","now","newDeps","depsChanged","some","dep","index","resultTime","onChange","depEndTime","Math","round","resultEndTime","resultFpsPercentage","pad","str","num","String","console","info","max","min","getMemoOptions","tableOptions","debugLevel","_tableOptions$debugAl","debugAll","createCell","table","row","columnId","getRenderValue","_cell$getValue","cell","getValue","options","renderFallbackValue","id","renderValue","getContext","_features","feature","createColumn","columnDef","depth","parent","_ref","_resolvedColumnDef$id","defaultColumn","_getDefaultColumnDef","resolvedColumnDef","prototype","replaceAll","replace","undefined","header","includes","originalRow","split","_result","Error","columns","getFlatColumns","_column$columns","flatMap","getLeafColumns","_getOrderColumnsFn","orderColumns","_column$columns2","leafColumns","createHeader","_options$id","isPlaceholder","placeholderId","subHeaders","colSpan","rowSpan","headerGroup","getLeafHeaders","leafHeaders","recurseHeader","h","map","Headers","createTable","getHeaderGroups","getAllColumns","getVisibleLeafColumns","getState","columnPinning","left","right","allColumns","_left$map$filter","_right$map$filter","leftColumns","find","filter","Boolean","rightColumns","centerColumns","headerGroups","buildHeaderGroups","getCenterHeaderGroups","getLeftHeaderGroups","_left$map$filter2","orderedLeafColumns","getRightHeaderGroups","_right$map$filter2","getFooterGroups","reverse","getLeftFooterGroups","getCenterFooterGroups","getRightFooterGroups","getFlatHeaders","headers","getLeftFlatHeaders","getCenterFlatHeaders","getRightFlatHeaders","getCenterLeafHeaders","flatHeaders","_header$subHeaders","getLeftLeafHeaders","_header$subHeaders2","getRightLeafHeaders","_header$subHeaders3","center","_left$0$headers","_left$","_center$0$headers","_center$","_right$0$headers","_right$","columnsToGroup","headerFamily","_headerGroups$0$heade","_headerGroups$","maxDepth","findMaxDepth","getIsVisible","createHeaderGroup","headersToGroup","join","pendingParentHeaders","headerToGroup","latestPendingParentHeader","isLeafHeader","bottomHeaders","recurseHeadersForSpans","filteredHeaders","childRowSpans","childColSpan","childRowSpan","minChildRowSpan","createRow","original","rowIndex","subRows","parentId","_valuesCache","_uniqueValuesCache","hasOwnProperty","getColumn","getUniqueValues","_row$getValue","getLeafRows","getParentRow","getRow","getParentRows","parentRows","currentRow","parentRow","getAllCells","getAllLeafColumns","_getAllCellsByColumnId","allCells","reduce","acc","i","ColumnFaceting","_getFacetedRowModel","getFacetedRowModel","getPreFilteredRowModel","_getFacetedUniqueValues","getFacetedUniqueValues","Map","_getFacetedMinMaxValues","getFacetedMinMaxValues","includesString","filterValue","_filterValue$toString","search","toString","toLowerCase","autoRemove","testFalsey","includesStringSensitive","_row$getValue2","equalsString","_row$getValue3","arrIncludes","_row$getValue4","arrIncludesAll","_row$getValue5","arrIncludesSome","_row$getValue6","equals","weakEquals","inNumberRange","rowValue","resolveFilterValue","unsafeMin","unsafeMax","parsedMin","parseFloat","parsedMax","Number","isNaN","Infinity","temp","filterFns","ColumnFiltering","getDefaultColumnDef","filterFn","getInitialState","state","columnFilters","getDefaultOptions","onColumnFiltersChange","filterFromLeafRows","maxLeafRowFilterDepth","getAutoFilterFn","firstRow","getCoreRowModel","flatRows","value","getFilterFn","_table$options$filter","_table$options$filter2","getCanFilter","_column$columnDef$ena","_table$options$enable","_table$options$enable2","enableColumnFilter","enableColumnFilters","enableFilters","getIsFiltered","getFilterIndex","getFilterValue","_table$getState$colum","_table$getState$colum2","_table$getState$colum3","findIndex","setFilterValue","setColumnFilters","previousFilter","newFilter","shouldAutoRemoveFilter","_old$filter","newFilterObj","_old$map","_table","columnFiltersMeta","updateFn","_functionalUpdate","resetColumnFilters","defaultState","_table$initialState$c","_table$initialState","initialState","getFilteredRowModel","_getFilteredRowModel","manualFiltering","sum","_leafRows","childRows","next","nextValue","extent","mean","leafRows","count","median","values","mid","floor","nums","sort","a","b","unique","from","Set","uniqueCount","size","_columnId","aggregationFns","ColumnGrouping","aggregatedCell","props","_toString","_props$getValue","aggregationFn","grouping","onGroupingChange","groupedColumnMode","toggleGrouping","setGrouping","getCanGroup","enableGrouping","getGroupingValue","getIsGrouped","_table$getState$group","getGroupedIndex","_table$getState$group2","indexOf","getToggleGroupingHandler","canGroup","getAutoAggregationFn","Object","call","getAggregationFn","_table$options$aggreg","_table$options$aggreg2","resetGrouping","_table$initialState$g","getPreGroupedRowModel","getGroupedRowModel","_getGroupedRowModel","manualGrouping","groupingColumnId","_groupingValuesCache","getIsPlaceholder","getIsAggregated","_row$subRows","nonGroupingColumns","col","groupingColumns","g","ColumnOrdering","columnOrder","onColumnOrderChange","getIndex","position","_getVisibleLeafColumns","getIsFirstColumn","_columns$","getIsLastColumn","_columns","setColumnOrder","resetColumnOrder","orderedColumns","columnOrderCopy","columnsCopy","targetColumnId","shift","foundIndex","splice","getDefaultColumnPinningState","ColumnPinning","onColumnPinningChange","pin","columnIds","setColumnPinning","_old$left3","_old$right3","_old$left","_old$right","_old$left2","_old$right2","getCanPin","_d$columnDef$enablePi","enablePinning","enableColumnPinning","getIsPinned","leafColumnIds","isLeft","isRight","getPinnedIndex","getCenterVisibleCells","_getAllVisibleCells","leftAndRight","getLeftVisibleCells","cells","getRightVisibleCells","resetColumnPinning","getIsSomeColumnsPinned","_pinningState$positio","pinningState","_pinningState$left","_pinningState$right","getLeftLeafColumns","getRightLeafColumns","getCenterLeafColumns","defaultColumnSizing","minSize","maxSize","MAX_SAFE_INTEGER","getDefaultColumnSizingInfoState","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","ColumnSizing","columnSizing","columnSizingInfo","columnResizeMode","columnResizeDirection","onColumnSizingChange","onColumnSizingInfoChange","getSize","_column$columnDef$min","_column$columnDef$max","columnSize","getStart","slice","getAfter","resetSize","setColumnSizing","_ref2","_","rest","getCanResize","enableResizing","enableColumnResizing","getIsResizing","_header$column$getSiz","prevSiblingHeader","getResizeHandler","_contextDocument","canResize","e","persist","isTouchStartEvent","touches","clientX","newColumnSizing","updateOffset","eventType","clientXPos","setColumnSizingInfo","_old$startOffset","_old$startSize","deltaDirection","_ref3","headerSize","onMove","onEnd","contextDocument","document","mouseEvents","moveHandler","upHandler","removeEventListener","touchEvents","cancelable","preventDefault","stopPropagation","_e$touches$","passiveIfSupported","passiveEventSupported","passive","addEventListener","resetColumnSizing","resetHeaderSizeInfo","_table$initialState$c2","getTotalSize","_table$getHeaderGroup","_table$getHeaderGroup2","getLeftTotalSize","_table$getLeftHeaderG","_table$getLeftHeaderG2","getCenterTotalSize","_table$getCenterHeade","_table$getCenterHeade2","getRightTotalSize","_table$getRightHeader","_table$getRightHeader2","passiveSupported","supported","noop","window","err","type","ColumnVisibility","columnVisibility","onColumnVisibilityChange","toggleVisibility","getCanHide","setColumnVisibility","childColumns","c","enableHiding","getToggleVisibilityHandler","target","checked","getVisibleCells","makeVisibleColumnsMethod","getColumns","getVisibleFlatColumns","getAllFlatColumns","getLeftVisibleLeafColumns","getRightVisibleLeafColumns","getCenterVisibleLeafColumns","resetColumnVisibility","toggleAllColumnsVisible","_value","getIsAllColumnsVisible","obj","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityHandler","_target","GlobalFaceting","_getGlobalFacetedRowModel","getGlobalFacetedRowModel","_getGlobalFacetedUniqueValues","getGlobalFacetedUniqueValues","_getGlobalFacetedMinMaxValues","getGlobalFacetedMinMaxValues","GlobalFiltering","globalFilter","onGlobalFilterChange","globalFilterFn","getColumnCanGlobalFilter","_table$getCoreRowMode","getCanGlobalFilter","_table$options$getCol","enableGlobalFilter","getGlobalAutoFilterFn","getGlobalFilterFn","setGlobalFilter","resetGlobalFilter","RowExpanding","expanded","onExpandedChange","paginateExpandedRows","registered","queued","_autoResetExpanded","_table$options$autoRe","_queue","autoResetAll","autoResetExpanded","manualExpanding","resetExpanded","setExpanded","toggleAllRowsExpanded","getIsAllRowsExpanded","_table$initialState$e","getCanSomeRowsExpand","getPrePaginationRowModel","getCanExpand","getToggleAllRowsExpandedHandler","getIsSomeRowsExpanded","keys","getRowModel","getIsExpanded","getExpandedDepth","rowIds","rowsById","splitId","getPreExpandedRowModel","getSortedRowModel","getExpandedRowModel","_getExpandedRowModel","toggleExpanded","_expanded","exists","oldExpanded","rowId","_table$options$getIsR","getIsRowExpanded","_table$options$getRow","getRowCanExpand","enableExpanding","getIsAllParentsExpanded","isFullyExpanded","getToggleExpandedHandler","canExpand","defaultPageIndex","defaultPageSize","getDefaultPaginationState","pageIndex","pageSize","RowPagination","pagination","onPaginationChange","_autoResetPageIndex","autoResetPageIndex","manualPagination","resetPageIndex","setPagination","safeUpdater","newState","resetPagination","_table$initialState$p","setPageIndex","maxPageIndex","pageCount","_table$initialState$p2","resetPageSize","_table$initialState$p3","_table$initialState2","setPageSize","topRowIndex","setPageCount","_table$options$pageCo","newPageCount","getPageOptions","getPageCount","pageOptions","fill","getCanPreviousPage","getCanNextPage","previousPage","nextPage","firstPage","lastPage","getPaginationRowModel","_getPaginationRowModel","_table$options$pageCo2","ceil","getRowCount","_table$options$rowCou","rowCount","rows","getDefaultRowPinningState","top","bottom","RowPinning","rowPinning","onRowPinningChange","includeLeafRows","includeParentRows","leafRowIds","parentRowIds","setRowPinning","_old$top3","_old$bottom3","_old$top","_old$bottom","has","_old$top2","_old$bottom2","enableRowPinning","isTop","isBottom","_ref4","_visiblePinnedRowIds$","visiblePinnedRowIds","getTopRows","getBottomRows","_ref5","resetRowPinning","_table$initialState$r","getIsSomeRowsPinned","_pinningState$top","_pinningState$bottom","_getPinnedRows","visibleRows","pinnedRowIds","_table$options$keepPi","keepPinnedRows","allRows","topPinnedRowIds","bottomPinnedRowIds","getCenterRows","topAndBottom","RowSelection","rowSelection","onRowSelectionChange","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","setRowSelection","resetRowSelection","toggleAllRowsSelected","getIsAllRowsSelected","preGroupedFlatRows","getCanSelect","toggleAllPageRowsSelected","resolvedValue","getIsAllPageRowsSelected","mutateRowIsSelected","getPreSelectedRowModel","getSelectedRowModel","rowModel","selectRowsFn","getFilteredSelectedRowModel","getGroupedSelectedRowModel","isAllRowsSelected","paginationFlatRows","isAllPageRowsSelected","getIsSomeRowsSelected","_table$getState$rowSe","totalSelected","getIsSomePageRowsSelected","getIsSelected","getIsSomeSelected","getToggleAllRowsSelectedHandler","getToggleAllPageRowsSelectedHandler","toggleSelected","isSelected","_opts$selectChildren","selectedRowIds","selectChildren","isRowSelected","isSubRowSelected","getIsAllSubRowsSelected","getCanSelectSubRows","getCanMultiSelect","_table$options$enable3","getToggleSelectedHandler","canSelect","includeChildren","newSelectedFlatRows","newSelectedRowsById","recurseRows","_row$subRows2","selection","_selection$row$id","_row$subRows3","allChildrenSelected","someSelected","subRow","subRowChildrenSelected","reSplitAlphaNumeric","alphanumeric","rowA","rowB","compareAlphanumeric","alphanumericCaseSensitive","text","compareBasic","textCaseSensitive","datetime","basic","aStr","bStr","aa","bb","an","parseInt","bn","combo","sortingFns","RowSorting","sorting","sortingFn","sortUndefined","onSortingChange","isMultiSortEvent","shiftKey","getAutoSortingFn","firstRows","isString","getAutoSortDir","getSortingFn","_table$options$sortin","_table$options$sortin2","toggleSorting","desc","multi","nextSortingOrder","getNextSortingOrder","hasManualValue","setSorting","existingSorting","existingIndex","newSorting","sortAction","nextDesc","getCanMultiSort","_table$options$maxMul","maxMultiSortColCount","getFirstSortDir","_column$columnDef$sor","sortDescFirst","firstSortDirection","isSorted","getIsSorted","enableSortingRemoval","enableMultiRemove","getCanSort","enableSorting","_column$columnDef$ena2","enableMultiSort","_table$getState$sorti","columnSort","getSortIndex","_table$getState$sorti2","_table$getState$sorti3","clearSorting","getToggleSortingHandler","canSort","resetSorting","_table$initialState$s","getPreSortedRowModel","_getSortedRowModel","manualSorting","builtInFeatures","_options$_features","_options$initialState","defaultOptions","assign","mergeOptions","coreInitialState","_feature$getInitialSt","queuedTimeout","coreInstance","cb","Promise","resolve","then","catch","error","setTimeout","reset","setOptions","newOptions","onStateChange","_getRowId","getRowId","_getCoreRowModel","searchAll","_defaultColumn","_props$renderValue$to","_props$renderValue","_getColumnDefs","columnDefs","recurseColumns","groupingColumnDef","_getAllFlatColumnsById","flatColumns","data","accessRows","originalRows","getSubRows","_row$originalSubRows","originalSubRows","filterRows","filterRowImpl","filterRowModelFromLeafs","filterRowModelFromRoot","rowsToFilter","filterRow","_table$options$maxLea","newFilteredFlatRows","newFilteredRowsById","recurseFilterRows","newRow","_table$options$maxLea2","pass","resolvedColumnFilters","resolvedGlobalFilters","_filterFn$resolveFilt","filterableIds","globallyFilterableColumns","_globalFilterFn$resol","currentColumnFilter","currentGlobalFilter","j","filterMeta","__global__","filterRowsImpl","debounce","func","wait","timeout","executedFunction","args","later","clearTimeout","nvDatagridCss","NvDatagridStyle0","NvDatagrid","constructor","hostRef","this","templateCache","headerTemplateCache","parsedColumns","parsedData","columnData","fallbackValue","noDataMessage","noColumnsNoDataMessage","autoGenerateColumns","debouncedFilter","handleGlobalFilteringOnInput","event","HTMLInputElement","cacheTemplates","el","querySelectorAll","cellSlot","querySelector","element","deepCopyElement","set","headerSlot","headerDiv","createElement","textContent","colData","repeatTemplate","hasAttribute","parseDataAndColumns","dataJson","parseJsonData","parseDataArray","columnsJson","parseJsonColumns","parseColumnsArray","headerKeys","arrayColumnsConfig","charAt","toUpperCase","deepEqual","JSON","stringify","newValue","oldValue","safeNewValue","safeOldValue","initializeTable","log","response","validColumns","hasColumns","hasData","generateColumns","getTableData","columnHelper","sampleRow","renderTemplate","template","cellValue","templateContent","HTMLTemplateElement","content","replacePlaceholdersTextContent","replacePlaceholdersAttributes","replacePlaceholdersProperties","bindEvent","getAttribute","splitted","warn","keyAction","details","_a","keyValue","action","emit","child","connectedCallback","ref","innerHTML","appendChild","replaceKeyWithValue","keyPart","firstLevelKey","substring","childNodes","node","nodeType","Node","TEXT_NODE","attributes","attr","properties","add","proto","getPrototypeOf","HTMLElement","prop","startsWith","excludedProps","propValue","message","parseColumns","newItems","parse","parseData","handleParsedChange","handleGlobalFilter","componentWillLoad","render","_c","_b","Host","class","name","_d","onInput","placeholder","get","visibleCells","cellAccessors","x"],"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","@mixin root-styles() {\n display: block;\n}\n\nnv-datagrid {\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}\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} from '@tanstack/table-core';\nimport { Column } from '../../interfaces/Column';\nimport { ActionEvent } from '../../interfaces/actionEvent';\nimport { deepCopyElement, excludedProps } from '../../utils/dom.utils';\nimport { debounce } from '../../utils/input.utils';\n\n/**\n * A flexible data grid component powered by `@tanstack/table-core`.\n * @slot default - Use this slot to insert HTML into the data grid content.\n * @slot before - Use this slot to insert HTML before the data grid.\n * @slot after - Use this slot to insert HTML after the data grid.\n *\n * @deprecated [EXPERIMENTAL]\n * @experimental - This component is still under development and is not ready for use.\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\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 globalFilter: 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 //#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 * The data to display in the data grid.\n * It can be passed directly as an array of objects or as a JSON string.\n * If both `data` and `dataJson` are provided, `data` takes precedence.\n * @example `[{ \"name\": \"Alice\", \"age\": 25 }, { \"name\": \"Bob\", \"age\": 30 }]`\n */\n @Prop({ reflect: true })\n readonly dataJson?: string;\n\n /**\n * The columns to display in the data grid.\n * It can be passed directly as an array of objects or as a JSON string.\n * If both `columns` and `columnsJson` are provided, `columns` takes precedence.\n * @example `[{\"header\":\"Name\",\"accessor\":\"name\"},{\"header\":\"Age\",\"accessor\":\"age\"},{\"header\":\"Email\",\"accessor\":\"email\"}]`\n */\n @Prop({ reflect: true })\n readonly columnsJson?: string;\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 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 * 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 //#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 };\n\n this.columnData.push(colData);\n });\n }\n\n private parseDataAndColumns() {\n if (this.dataJson) {\n this.parseJsonData(this.dataJson);\n } else if (this.data && this.data.length > 0) {\n this.parseDataArray(this.data, this.parsedData);\n }\n\n if (this.columnsJson) {\n this.parseJsonColumns(this.columnsJson, this.parsedColumns);\n } else 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 }));\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 }));\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 // 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.enableGlobalFilter) {\n tableOptions.getFilteredRowModel = getFilteredRowModel();\n\n // Set the initial global filter value\n tableOptions.state.globalFilter = this.globalFilter;\n\n // Define the callback for global filter changes\n tableOptions.onGlobalFilterChange = value => {\n this.globalFilter = value;\n };\n\n tableOptions.globalFilterFn = (row, columnId, filterValue) => {\n const response = row\n .getValue(columnId)\n .toString()\n .toLowerCase()\n .includes(filterValue.toLowerCase());\n\n return response;\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 && column?.header,\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 tableOptions.columns = this.generateColumns(validColumns, tableOptions);\n } else {\n // Both columns and data are available\n // No columns and data is available\n tableOptions.data = this.getTableData();\n tableOptions.columns = this.generateColumns(validColumns, tableOptions);\n }\n } else {\n // No 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 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 }));\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 // Initialize the table\n this.table = createTable(tableOptions);\n }\n\n // Helper function to generate column definitions\n private generateColumns(\n validColumns: Column[],\n tableOptions: TableOptionsResolved<any>,\n ): any[] {\n const columnHelper = createColumnHelper<any>();\n\n if (validColumns.length > 0) {\n // Use defined columns\n return validColumns.map(column =>\n columnHelper.accessor(column.accessor, {\n header: column.header,\n cell: info => info.getValue(),\n enableGlobalFilter: this.enableGlobalFilter,\n }),\n );\n } else if (tableOptions.data && tableOptions.data.length > 0) {\n // Generate columns from data keys\n const sampleRow = tableOptions.data[0];\n return Object.keys(sampleRow).map(key =>\n columnHelper.accessor(key, {\n header: key.charAt(0).toUpperCase() + key.slice(1), // Capitalize key for header\n cell: info => info.getValue(),\n enableGlobalFilter: this.enableGlobalFilter,\n }),\n );\n } else {\n // No columns and no data\n return [];\n }\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);\n\n // Replace placeholders in attributes\n this.replacePlaceholdersAttributes(el, cellValue);\n\n // Replace placeholders in properties\n this.replacePlaceholdersProperties(el, cellValue);\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: ActionEvent = { 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(element: Element, cellValue: any) {\n // ✅ Replace placeholders in text content\n element.childNodes.forEach(node => {\n if (node.nodeType === Node.TEXT_NODE) {\n node.textContent = node.textContent.replace(/__([\\w.]+)__/g, (_, key) =>\n this.replaceKeyWithValue(key, cellValue),\n );\n }\n });\n }\n\n private replacePlaceholdersAttributes(element: Element, cellValue: any) {\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 private replacePlaceholdersProperties(element: Element, cellValue: any) {\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 private readonly debouncedFilter = debounce((value: string) => {\n this.globalFilter = 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 //#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('columnsJson')\n parseJsonColumns(newValue: string | undefined, oldValue: Column[]) {\n try {\n const newItems = newValue ? JSON.parse(newValue) : [];\n\n this.parseColumnsArray(newItems, oldValue);\n } catch (e) {\n console.error('Invalid JSON format for columnsJson:', e.message);\n this.parsedColumns = [];\n }\n }\n\n @Watch('data')\n parseData(newValue: any[], oldValue: any[] = []) {\n this.parseDataArray(newValue, oldValue);\n }\n\n @Watch('dataJson')\n parseJsonData(newValue: string | undefined) {\n try {\n const newItems = newValue ? JSON.parse(newValue) : [];\n\n this.parseDataArray(newItems, this.parsedData);\n } catch (e) {\n console.error('Invalid JSON format for dataJson:', e.message);\n this.parsedData = [];\n }\n }\n\n @Watch('parsedColumns')\n @Watch('parsedData')\n handleParsedChange() {\n this.initializeTable();\n }\n\n @Watch('globalFilter')\n handleGlobalFilter(newValue: string) {\n if (!this.table) {\n console.warn('Table is not initialized yet.');\n return;\n }\n\n // 🚨 Manually update state before calling filter\n this.table.options.state = {\n ...this.table.options.state,\n globalFilter: newValue,\n };\n\n this.table.setGlobalFilter(newValue);\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\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<ActionEvent>;\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\">\n <input\n type=\"text\"\n value={this.globalFilter ?? ''}\n onInput={this.handleGlobalFilteringOnInput}\n placeholder=\"Search all columns...\"\n class=\"search-input\"\n aria-label=\"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 <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 (\n <th key={header.id}>\n {header.isPlaceholder\n ? null\n : this.renderTemplate(\n this.headerTemplateCache.get(header.id),\n {},\n ) || header.column.columnDef.header}\n </th>\n );\n })}\n </tr>\n ))\n : null}\n </thead>\n )}\n <tbody>\n {!rows || rows.length === 0 || this.parsedData.length === 0 ? (\n <tr>\n <td colSpan={this.parsedColumns.length || 12} class=\"no-data\">\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 const cellAccessors = cell.column.id;\n const cellValue = cell.getValue();\n\n return (\n <td key={cell.id} data-row-id={rowId}>\n {this.columnData.find(\n x => x.accessor === cellAccessors,\n )?.repeatTemplate && Array.isArray(cellValue)\n ? cellValue.map(\n (item: any) =>\n (this.renderTemplate(\n this.templateCache.get(cellAccessors),\n item,\n row,\n ) ||\n item) ??\n this.fallbackValue,\n )\n : (this.renderTemplate(\n this.templateCache.get(cellAccessors),\n cellValue,\n row,\n ) ||\n cellValue) ??\n this.fallbackValue}\n </td>\n );\n })}\n </tr>\n );\n })\n )}\n </tbody>\n </table>\n )}\n\n <slot name=\"after\"></slot>\n </Host>\n );\n }\n\n //#endregion RENDER\n /****************************************************************************/\n}\n"],"mappings":"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","ignoreList":[]}
|