@nova-design-system/nova-webcomponents 3.0.0-beta.39 → 3.0.0-beta.41
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/{constants-2ae3d9eb.js → constants-79d2cdfc.js} +4 -4
- package/dist/cjs/constants-79d2cdfc.js.map +1 -0
- package/dist/cjs/dom.utils-4d43f69a.js +170 -0
- package/dist/cjs/dom.utils-4d43f69a.js.map +1 -0
- package/dist/cjs/index-5910ba06.js +0 -32
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/native.cjs.js +1 -1
- package/dist/cjs/nv-alert.cjs.entry.js +32 -9
- package/dist/cjs/nv-alert.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-avatar.cjs.entry.js +2 -2
- package/dist/cjs/nv-badge_2.cjs.entry.js +3 -3
- package/dist/cjs/nv-base.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 +34 -12
- package/dist/cjs/nv-button.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-calendar.cjs.entry.js +2 -2
- package/dist/cjs/nv-col.cjs.entry.js +1 -1
- package/dist/cjs/nv-datagrid.cjs.entry.js +325 -165
- package/dist/cjs/nv-datagrid.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-datagridcolumn.cjs.entry.js +1 -5
- package/dist/cjs/nv-datagridcolumn.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-dialog.cjs.entry.js +20 -9
- package/dist/cjs/nv-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-dialogfooter_2.cjs.entry.js +17 -12
- package/dist/cjs/nv-dialogfooter_2.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldcheckbox.cjs.entry.js +4 -4
- package/dist/cjs/nv-fielddropdown.cjs.entry.js +3 -3
- package/dist/cjs/nv-fielddropdownitem.cjs.entry.js +1 -1
- package/dist/cjs/nv-fieldnumber.cjs.entry.js +3 -3
- 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 +10 -10
- package/dist/cjs/nv-icon.cjs.entry.js +3 -3
- package/dist/cjs/nv-icon.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-iconbutton.cjs.entry.js +1 -1
- package/dist/cjs/nv-loader.cjs.entry.js +1 -1
- package/dist/cjs/nv-menu.cjs.entry.js +2 -2
- 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-table.cjs.entry.js +267 -81
- package/dist/cjs/nv-table.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-tablecolumn.cjs.entry.js +1 -21
- package/dist/cjs/nv-tablecolumn.cjs.entry.js.map +1 -1
- 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 +1 -9
- package/dist/collection/components/nv-alert/nv-alert.docs.js +5 -0
- package/dist/collection/components/nv-alert/nv-alert.docs.js.map +1 -1
- package/dist/collection/components/nv-alert/nv-alert.js +51 -8
- package/dist/collection/components/nv-alert/nv-alert.js.map +1 -1
- package/dist/collection/components/nv-avatar/nv-avatar.js +1 -1
- package/dist/collection/components/nv-badge/nv-badge.js +2 -2
- package/dist/collection/components/nv-base/nv-base.js +1 -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.docs.js +4 -0
- package/dist/collection/components/nv-button/nv-button.docs.js.map +1 -1
- package/dist/collection/components/nv-button/nv-button.js +54 -13
- package/dist/collection/components/nv-button/nv-button.js.map +1 -1
- package/dist/collection/components/nv-calendar/nv-calendar.js +1 -1
- package/dist/collection/components/nv-col/nv-col.js +1 -1
- package/dist/collection/components/nv-datagrid/nv-datagrid.css +30 -0
- package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js +25 -77
- package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js.map +1 -1
- package/dist/collection/components/nv-datagrid/nv-datagrid.js +396 -194
- package/dist/collection/components/nv-datagrid/nv-datagrid.js.map +1 -1
- package/dist/collection/components/nv-datagridcolumn/nv-datagridcolumn.js +7 -16
- package/dist/collection/components/nv-datagridcolumn/nv-datagridcolumn.js.map +1 -1
- package/dist/collection/components/nv-dialog/nv-dialog.docs.js +6 -9
- package/dist/collection/components/nv-dialog/nv-dialog.docs.js.map +1 -1
- package/dist/collection/components/nv-dialog/nv-dialog.js +20 -29
- package/dist/collection/components/nv-dialog/nv-dialog.js.map +1 -1
- package/dist/collection/components/nv-dialogfooter/nv-dialogfooter.js +71 -21
- package/dist/collection/components/nv-dialogfooter/nv-dialogfooter.js.map +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-fielddropdown/nv-fielddropdown.js +4 -4
- 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-fieldnumber/nv-fieldnumber.js +3 -3
- 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 +3 -3
- package/dist/collection/components/nv-icon/nv-icon.js.map +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 +1 -1
- package/dist/collection/components/nv-menu/nv-menu.docs.js.map +1 -1
- package/dist/collection/components/nv-menu/nv-menu.js +3 -3
- package/dist/collection/components/nv-menu/nv-menu.js.map +1 -1
- package/dist/collection/components/nv-menuitem/nv-menuitem.js +3 -3
- 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.js +1 -1
- package/dist/collection/components/nv-table/nv-table.css +30 -0
- package/dist/collection/components/nv-table/nv-table.docs.js +69 -74
- package/dist/collection/components/nv-table/nv-table.docs.js.map +1 -1
- package/dist/collection/components/nv-table/nv-table.js +349 -137
- package/dist/collection/components/nv-table/nv-table.js.map +1 -1
- package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.js +11 -111
- package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.js.map +1 -1
- package/dist/collection/components/nv-toggle/nv-toggle.js +2 -2
- package/dist/collection/components/nv-tooltip/nv-tooltip.js +1 -1
- package/dist/collection/interfaces/ColumnConfig.js +2 -0
- package/dist/collection/interfaces/ColumnConfig.js.map +1 -0
- package/dist/collection/interfaces/actionEvent.js +2 -0
- package/dist/collection/interfaces/actionEvent.js.map +1 -0
- package/dist/collection/utils/dom.utils.js +164 -0
- package/dist/collection/utils/dom.utils.js.map +1 -0
- package/dist/collection/utils/test/class.utils.test.js +25 -0
- package/dist/collection/utils/test/class.utils.test.js.map +1 -0
- package/dist/collection/utils/test/dom.utils.test.js +102 -0
- package/dist/collection/utils/test/dom.utils.test.js.map +1 -0
- package/dist/components/index.js +1 -1
- package/dist/components/nv-alert.js +35 -11
- package/dist/components/nv-alert.js.map +1 -1
- package/dist/components/nv-avatar.js +3 -3
- package/dist/components/nv-badge.js +1 -1
- package/dist/components/nv-base.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 +6 -6
- package/dist/components/nv-col.js +1 -1
- package/dist/components/nv-datagrid.js +332 -173
- package/dist/components/nv-datagrid.js.map +1 -1
- package/dist/components/nv-datagridcolumn.js +3 -7
- package/dist/components/nv-datagridcolumn.js.map +1 -1
- package/dist/components/nv-dialog.js +25 -15
- package/dist/components/nv-dialog.js.map +1 -1
- package/dist/components/nv-dialogfooter.js +1 -1
- package/dist/components/nv-dialogheader.js +1 -1
- package/dist/components/nv-fieldcheckbox.js +1 -1
- package/dist/components/nv-fielddropdown.js +8 -8
- package/dist/components/nv-fielddropdownitem.js +1 -1
- package/dist/components/nv-fielddropdownitemcheck.js +1 -1
- package/dist/components/nv-fieldmultiselect.js +7 -7
- package/dist/components/nv-fieldnumber.js +4 -4
- package/dist/components/nv-fieldpassword.js +6 -6
- package/dist/components/nv-fieldradio.js +3 -3
- package/dist/components/nv-fieldselect.js +6 -6
- package/dist/components/nv-fieldtext.js +4 -4
- package/dist/components/nv-fieldtextarea.js +3 -3
- package/dist/components/nv-fieldtime.js +14 -14
- 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 +5 -5
- 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-table.js +279 -91
- package/dist/components/nv-table.js.map +1 -1
- package/dist/components/nv-tablecolumn.js +5 -28
- package/dist/components/nv-tablecolumn.js.map +1 -1
- package/dist/components/nv-toggle.js +2 -2
- package/dist/components/nv-tooltip.js +1 -1
- package/dist/components/{p-659a5ae4.js → p-11cc38e0.js} +4 -4
- package/dist/components/{p-659a5ae4.js.map → p-11cc38e0.js.map} +1 -1
- package/dist/components/{p-17b6705f.js → p-1657eba4.js} +23 -16
- package/dist/components/p-1657eba4.js.map +1 -0
- package/dist/components/{p-88165c0e.js → p-33f9bdb1.js} +4 -4
- package/dist/components/{p-88165c0e.js.map → p-33f9bdb1.js.map} +1 -1
- package/dist/components/{p-f40a7e2f.js → p-4b184820.js} +3 -3
- package/dist/components/{p-f40a7e2f.js.map → p-4b184820.js.map} +1 -1
- package/dist/components/{p-48317c2c.js → p-4bb5eb79.js} +3 -3
- package/dist/components/{p-48317c2c.js.map → p-4bb5eb79.js.map} +1 -1
- package/dist/components/{p-842afd9a.js → p-69543282.js} +3 -3
- package/dist/components/{p-842afd9a.js.map → p-69543282.js.map} +1 -1
- package/dist/components/{p-fdf57d25.js → p-96605453.js} +5 -5
- package/dist/components/{p-fdf57d25.js.map → p-96605453.js.map} +1 -1
- package/dist/components/{p-33e07c91.js → p-a633892a.js} +2 -2
- package/dist/components/{p-33e07c91.js.map → p-a633892a.js.map} +1 -1
- package/dist/components/{p-fd65c51f.js → p-b316c35d.js} +2 -2
- package/dist/components/p-b316c35d.js.map +1 -0
- package/dist/components/{p-8d7a57d1.js → p-ba145f46.js} +38 -15
- package/dist/components/p-ba145f46.js.map +1 -0
- package/dist/components/p-cb34aa4f.js +167 -0
- package/dist/components/p-cb34aa4f.js.map +1 -0
- package/dist/components/{p-492ad81d.js → p-d17558a8.js} +2 -2
- package/dist/components/{p-492ad81d.js.map → p-d17558a8.js.map} +1 -1
- package/dist/components/{p-73e703a1.js → p-f201db34.js} +2 -2
- package/dist/components/{p-73e703a1.js.map → p-f201db34.js.map} +1 -1
- package/dist/components/{p-5f5e2bf2.js → p-f77c3072.js} +4 -4
- package/dist/components/p-f77c3072.js.map +1 -0
- package/dist/components/{p-83e1177b.js → p-fad78896.js} +3 -3
- package/dist/components/{p-83e1177b.js.map → p-fad78896.js.map} +1 -1
- package/dist/docs.json +352 -679
- package/dist/esm/{constants-8243d2ea.js → constants-75e6d7f0.js} +2 -2
- package/dist/esm/constants-75e6d7f0.js.map +1 -0
- package/dist/esm/dom.utils-ac71e0ef.js +167 -0
- package/dist/esm/dom.utils-ac71e0ef.js.map +1 -0
- package/dist/esm/index-fac2d5d2.js +0 -32
- package/dist/esm/index.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/native.js +1 -1
- package/dist/esm/nv-alert.entry.js +32 -9
- package/dist/esm/nv-alert.entry.js.map +1 -1
- package/dist/esm/nv-avatar.entry.js +2 -2
- package/dist/esm/nv-badge_2.entry.js +3 -3
- package/dist/esm/nv-base.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 +34 -12
- package/dist/esm/nv-button.entry.js.map +1 -1
- package/dist/esm/nv-calendar.entry.js +2 -2
- package/dist/esm/nv-col.entry.js +1 -1
- package/dist/esm/nv-datagrid.entry.js +326 -166
- package/dist/esm/nv-datagrid.entry.js.map +1 -1
- package/dist/esm/nv-datagridcolumn.entry.js +1 -5
- package/dist/esm/nv-datagridcolumn.entry.js.map +1 -1
- package/dist/esm/nv-dialog.entry.js +20 -9
- package/dist/esm/nv-dialog.entry.js.map +1 -1
- package/dist/esm/nv-dialogfooter_2.entry.js +17 -12
- package/dist/esm/nv-dialogfooter_2.entry.js.map +1 -1
- package/dist/esm/nv-fieldcheckbox.entry.js +4 -4
- package/dist/esm/nv-fielddropdown.entry.js +3 -3
- package/dist/esm/nv-fielddropdownitem.entry.js +1 -1
- package/dist/esm/nv-fieldnumber.entry.js +3 -3
- 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 +10 -10
- package/dist/esm/nv-icon.entry.js +3 -3
- package/dist/esm/nv-icon.entry.js.map +1 -1
- package/dist/esm/nv-iconbutton.entry.js +1 -1
- package/dist/esm/nv-loader.entry.js +1 -1
- package/dist/esm/nv-menu.entry.js +2 -2
- 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-table.entry.js +268 -82
- package/dist/esm/nv-table.entry.js.map +1 -1
- package/dist/esm/nv-tablecolumn.entry.js +2 -22
- package/dist/esm/nv-tablecolumn.entry.js.map +1 -1
- package/dist/esm/nv-toggle.entry.js +2 -2
- package/dist/esm/nv-tooltip.entry.js +1 -1
- package/dist/native/index.esm.js +1 -1
- package/dist/native/native.css +1 -1
- package/dist/native/native.esm.js +1 -1
- package/dist/native/native.esm.js.map +1 -1
- package/dist/native/{p-e1b22ca7.entry.js → p-0a2a9f8b.entry.js} +2 -2
- package/dist/native/{p-46c9aa04.entry.js → p-12d08abc.entry.js} +2 -2
- package/dist/native/{p-63c894f0.entry.js → p-15be3d96.entry.js} +2 -2
- package/dist/native/{p-943a19a5.entry.js → p-184cd119.entry.js} +2 -2
- package/dist/native/{p-2b99e720.entry.js → p-1a3d2a74.entry.js} +2 -2
- package/dist/native/{p-bac62e20.entry.js → p-27ad7af2.entry.js} +2 -2
- package/dist/native/p-27ad7af2.entry.js.map +1 -0
- package/dist/native/p-2b2a10f9.entry.js +2 -0
- package/dist/native/p-2b2a10f9.entry.js.map +1 -0
- package/dist/native/{p-3b2c7871.entry.js → p-359f0f53.entry.js} +2 -2
- package/dist/native/p-3b65037c.entry.js +2 -0
- package/dist/native/p-3b65037c.entry.js.map +1 -0
- package/dist/native/p-3be2c9a1.entry.js +2 -0
- package/dist/native/p-4283f375.entry.js +2 -0
- package/dist/native/p-4283f375.entry.js.map +1 -0
- package/dist/native/p-487b81bd.entry.js +2 -0
- package/dist/native/p-487b81bd.entry.js.map +1 -0
- package/dist/native/{p-fa33ec18.entry.js → p-491f4605.entry.js} +2 -2
- package/dist/native/{p-39b4ec02.entry.js → p-554f7b44.entry.js} +2 -2
- package/dist/native/{p-44e7e3e8.entry.js → p-69fb1c9d.entry.js} +2 -2
- package/dist/native/{p-cba14168.entry.js → p-729c9d45.entry.js} +2 -2
- package/dist/native/{p-6acbf729.entry.js → p-78f08578.entry.js} +2 -2
- package/dist/native/p-8664ab16.entry.js +7 -0
- package/dist/native/p-8664ab16.entry.js.map +1 -0
- package/dist/native/p-8d6516a3.entry.js +2 -0
- package/dist/native/{p-4a7fa613.entry.js.map → p-8d6516a3.entry.js.map} +1 -1
- package/dist/native/p-951baf95.entry.js +2 -0
- package/dist/native/{p-b2ace8e9.entry.js → p-9795090f.entry.js} +2 -2
- package/dist/native/{p-b2ace8e9.entry.js.map → p-9795090f.entry.js.map} +1 -1
- package/dist/native/p-af60740c.entry.js +2 -0
- package/dist/native/{p-3bfd5a30.entry.js.map → p-af60740c.entry.js.map} +1 -1
- package/dist/native/{p-fd65c51f.js → p-b316c35d.js} +2 -2
- package/dist/native/{p-fd65c51f.js.map → p-b316c35d.js.map} +1 -1
- package/dist/native/p-b58c661b.entry.js +2 -0
- package/dist/native/p-b58c661b.entry.js.map +1 -0
- package/dist/native/p-b7bc918b.entry.js +2 -0
- package/dist/native/p-b7bc918b.entry.js.map +1 -0
- package/dist/native/p-cb34aa4f.js +2 -0
- package/dist/native/p-cb34aa4f.js.map +1 -0
- package/dist/native/{p-4eacd598.entry.js → p-cda56476.entry.js} +2 -2
- package/dist/native/{p-dbb89408.entry.js → p-d1bf4d77.entry.js} +2 -2
- package/dist/native/{p-b13b2663.entry.js → p-d7665a07.entry.js} +2 -2
- package/dist/native/{p-833af1bf.entry.js → p-daeb7e22.entry.js} +2 -2
- package/dist/native/{p-634b49fe.entry.js → p-e36e956b.entry.js} +2 -2
- package/dist/native/{p-afc16010.entry.js → p-e9e77494.entry.js} +2 -2
- package/dist/native/{p-0bf35abc.entry.js → p-edee1c1f.entry.js} +2 -2
- package/dist/native/{p-4db7add6.entry.js → p-f1585fc2.entry.js} +2 -2
- package/dist/native/{p-ac81e143.entry.js → p-f3579407.entry.js} +2 -2
- package/dist/native/p-fca807b4.entry.js +13 -0
- package/dist/native/p-fca807b4.entry.js.map +1 -0
- package/dist/native/{p-2151f564.entry.js → p-fde56f9c.entry.js} +2 -2
- package/dist/types/components/nv-alert/nv-alert.d.ts +14 -0
- package/dist/types/components/nv-base/nv-base.docs.d.ts +1 -1
- package/dist/types/components/nv-button/nv-button.d.ts +16 -5
- package/dist/types/components/nv-datagrid/nv-datagrid.d.ts +48 -31
- package/dist/types/components/nv-datagridcolumn/nv-datagridcolumn.d.ts +3 -2
- package/dist/types/components/nv-dialog/nv-dialog.d.ts +1 -7
- package/dist/types/components/nv-dialogfooter/nv-dialogfooter.d.ts +19 -10
- package/dist/types/components/nv-table/nv-table.d.ts +51 -39
- package/dist/types/components/nv-tablecolumn/nv-tablecolumn.d.ts +4 -42
- package/dist/types/components.d.ts +136 -256
- package/dist/types/interfaces/ColumnConfig.d.ts +13 -0
- package/dist/types/interfaces/actionEvent.d.ts +13 -0
- package/dist/types/utils/dom.utils.d.ts +12 -0
- package/dist/types/utils/test/class.utils.test.d.ts +1 -0
- package/dist/types/utils/test/dom.utils.test.d.ts +1 -0
- package/hydrate/index.js +958 -667
- package/hydrate/index.mjs +958 -667
- package/package.json +15 -27
- package/dist/blazor-docs.json +0 -15543
- package/dist/cjs/constants-2ae3d9eb.js.map +0 -1
- package/dist/cjs/nv-datagridbody.cjs.entry.js +0 -24
- package/dist/cjs/nv-datagridbody.cjs.entry.js.map +0 -1
- package/dist/cjs/nv-datagriddatacell.cjs.entry.js +0 -25
- package/dist/cjs/nv-datagriddatacell.cjs.entry.js.map +0 -1
- package/dist/cjs/nv-datagridhead.cjs.entry.js +0 -24
- package/dist/cjs/nv-datagridhead.cjs.entry.js.map +0 -1
- package/dist/cjs/nv-datagridrow.cjs.entry.js +0 -24
- package/dist/cjs/nv-datagridrow.cjs.entry.js.map +0 -1
- package/dist/cjs/nv-tablebody.cjs.entry.js +0 -24
- package/dist/cjs/nv-tablebody.cjs.entry.js.map +0 -1
- package/dist/cjs/nv-tabledatacell.cjs.entry.js +0 -43
- package/dist/cjs/nv-tabledatacell.cjs.entry.js.map +0 -1
- package/dist/cjs/nv-tablehead.cjs.entry.js +0 -24
- package/dist/cjs/nv-tablehead.cjs.entry.js.map +0 -1
- package/dist/cjs/nv-tablerow.cjs.entry.js +0 -24
- package/dist/cjs/nv-tablerow.cjs.entry.js.map +0 -1
- package/dist/collection/components/nv-datagridbody/nv-datagridbody.css +0 -0
- package/dist/collection/components/nv-datagridbody/nv-datagridbody.docs.js +0 -8
- package/dist/collection/components/nv-datagridbody/nv-datagridbody.docs.js.map +0 -1
- package/dist/collection/components/nv-datagridbody/nv-datagridbody.js +0 -23
- package/dist/collection/components/nv-datagridbody/nv-datagridbody.js.map +0 -1
- package/dist/collection/components/nv-datagridcolumn/nv-datagridcolumn.css +0 -0
- package/dist/collection/components/nv-datagriddatacell/nv-datagriddatacell.css +0 -0
- package/dist/collection/components/nv-datagriddatacell/nv-datagriddatacell.docs.js +0 -6
- package/dist/collection/components/nv-datagriddatacell/nv-datagriddatacell.docs.js.map +0 -1
- package/dist/collection/components/nv-datagriddatacell/nv-datagriddatacell.js +0 -50
- package/dist/collection/components/nv-datagriddatacell/nv-datagriddatacell.js.map +0 -1
- package/dist/collection/components/nv-datagridhead/nv-datagridhead.css +0 -0
- package/dist/collection/components/nv-datagridhead/nv-datagridhead.docs.js +0 -8
- package/dist/collection/components/nv-datagridhead/nv-datagridhead.docs.js.map +0 -1
- package/dist/collection/components/nv-datagridhead/nv-datagridhead.js +0 -23
- package/dist/collection/components/nv-datagridhead/nv-datagridhead.js.map +0 -1
- package/dist/collection/components/nv-datagridrow/nv-datagridrow.css +0 -0
- package/dist/collection/components/nv-datagridrow/nv-datagridrow.docs.js +0 -8
- package/dist/collection/components/nv-datagridrow/nv-datagridrow.docs.js.map +0 -1
- package/dist/collection/components/nv-datagridrow/nv-datagridrow.js +0 -23
- package/dist/collection/components/nv-datagridrow/nv-datagridrow.js.map +0 -1
- package/dist/collection/components/nv-tablebody/nv-tablebody.css +0 -0
- package/dist/collection/components/nv-tablebody/nv-tablebody.docs.js +0 -8
- package/dist/collection/components/nv-tablebody/nv-tablebody.docs.js.map +0 -1
- package/dist/collection/components/nv-tablebody/nv-tablebody.js +0 -23
- package/dist/collection/components/nv-tablebody/nv-tablebody.js.map +0 -1
- package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.css +0 -0
- package/dist/collection/components/nv-tabledatacell/nv-tabledatacell.css +0 -0
- package/dist/collection/components/nv-tabledatacell/nv-tabledatacell.docs.js +0 -6
- package/dist/collection/components/nv-tabledatacell/nv-tabledatacell.docs.js.map +0 -1
- package/dist/collection/components/nv-tabledatacell/nv-tabledatacell.js +0 -116
- package/dist/collection/components/nv-tabledatacell/nv-tabledatacell.js.map +0 -1
- package/dist/collection/components/nv-tablehead/nv-tablehead.css +0 -0
- package/dist/collection/components/nv-tablehead/nv-tablehead.docs.js +0 -8
- package/dist/collection/components/nv-tablehead/nv-tablehead.docs.js.map +0 -1
- package/dist/collection/components/nv-tablehead/nv-tablehead.js +0 -23
- package/dist/collection/components/nv-tablehead/nv-tablehead.js.map +0 -1
- package/dist/collection/components/nv-tablerow/nv-tablerow.css +0 -0
- package/dist/collection/components/nv-tablerow/nv-tablerow.docs.js +0 -8
- package/dist/collection/components/nv-tablerow/nv-tablerow.docs.js.map +0 -1
- package/dist/collection/components/nv-tablerow/nv-tablerow.js +0 -23
- package/dist/collection/components/nv-tablerow/nv-tablerow.js.map +0 -1
- package/dist/components/nv-datagridbody.d.ts +0 -11
- package/dist/components/nv-datagridbody.js +0 -38
- package/dist/components/nv-datagridbody.js.map +0 -1
- package/dist/components/nv-datagriddatacell.d.ts +0 -11
- package/dist/components/nv-datagriddatacell.js +0 -41
- package/dist/components/nv-datagriddatacell.js.map +0 -1
- package/dist/components/nv-datagridhead.d.ts +0 -11
- package/dist/components/nv-datagridhead.js +0 -38
- package/dist/components/nv-datagridhead.js.map +0 -1
- package/dist/components/nv-datagridrow.d.ts +0 -11
- package/dist/components/nv-datagridrow.js +0 -38
- package/dist/components/nv-datagridrow.js.map +0 -1
- package/dist/components/nv-tablebody.d.ts +0 -11
- package/dist/components/nv-tablebody.js +0 -38
- package/dist/components/nv-tablebody.js.map +0 -1
- package/dist/components/nv-tabledatacell.d.ts +0 -11
- package/dist/components/nv-tabledatacell.js +0 -61
- package/dist/components/nv-tabledatacell.js.map +0 -1
- package/dist/components/nv-tablehead.d.ts +0 -11
- package/dist/components/nv-tablehead.js +0 -38
- package/dist/components/nv-tablehead.js.map +0 -1
- package/dist/components/nv-tablerow.d.ts +0 -11
- package/dist/components/nv-tablerow.js +0 -38
- package/dist/components/nv-tablerow.js.map +0 -1
- package/dist/components/p-17b6705f.js.map +0 -1
- package/dist/components/p-5f5e2bf2.js.map +0 -1
- package/dist/components/p-8d7a57d1.js.map +0 -1
- package/dist/components/p-fd65c51f.js.map +0 -1
- package/dist/esm/constants-8243d2ea.js.map +0 -1
- package/dist/esm/nv-datagridbody.entry.js +0 -20
- package/dist/esm/nv-datagridbody.entry.js.map +0 -1
- package/dist/esm/nv-datagriddatacell.entry.js +0 -21
- package/dist/esm/nv-datagriddatacell.entry.js.map +0 -1
- package/dist/esm/nv-datagridhead.entry.js +0 -20
- package/dist/esm/nv-datagridhead.entry.js.map +0 -1
- package/dist/esm/nv-datagridrow.entry.js +0 -20
- package/dist/esm/nv-datagridrow.entry.js.map +0 -1
- package/dist/esm/nv-tablebody.entry.js +0 -20
- package/dist/esm/nv-tablebody.entry.js.map +0 -1
- package/dist/esm/nv-tabledatacell.entry.js +0 -39
- package/dist/esm/nv-tabledatacell.entry.js.map +0 -1
- package/dist/esm/nv-tablehead.entry.js +0 -20
- package/dist/esm/nv-tablehead.entry.js.map +0 -1
- package/dist/esm/nv-tablerow.entry.js +0 -20
- package/dist/esm/nv-tablerow.entry.js.map +0 -1
- package/dist/native/p-1bae8cdd.entry.js +0 -13
- package/dist/native/p-1bae8cdd.entry.js.map +0 -1
- package/dist/native/p-1ca72f74.entry.js +0 -2
- package/dist/native/p-1ca72f74.entry.js.map +0 -1
- package/dist/native/p-3422397d.entry.js +0 -2
- package/dist/native/p-3422397d.entry.js.map +0 -1
- package/dist/native/p-3bfd5a30.entry.js +0 -2
- package/dist/native/p-4a7fa613.entry.js +0 -2
- package/dist/native/p-51e0c5d3.entry.js +0 -2
- package/dist/native/p-51e0c5d3.entry.js.map +0 -1
- package/dist/native/p-57513eb0.entry.js +0 -2
- package/dist/native/p-57513eb0.entry.js.map +0 -1
- package/dist/native/p-5851fbed.entry.js +0 -2
- package/dist/native/p-5851fbed.entry.js.map +0 -1
- package/dist/native/p-5f1a7e6e.entry.js +0 -2
- package/dist/native/p-7211a3cb.entry.js +0 -7
- package/dist/native/p-7211a3cb.entry.js.map +0 -1
- package/dist/native/p-79765c7d.entry.js +0 -2
- package/dist/native/p-79765c7d.entry.js.map +0 -1
- package/dist/native/p-8b323a15.entry.js +0 -2
- package/dist/native/p-8b323a15.entry.js.map +0 -1
- package/dist/native/p-9c8eadde.entry.js +0 -2
- package/dist/native/p-9c8eadde.entry.js.map +0 -1
- package/dist/native/p-bac62e20.entry.js.map +0 -1
- package/dist/native/p-beab7cbd.entry.js +0 -2
- package/dist/native/p-bfb6e22c.entry.js +0 -2
- package/dist/native/p-bfb6e22c.entry.js.map +0 -1
- package/dist/native/p-c29be15d.entry.js +0 -2
- package/dist/native/p-c29be15d.entry.js.map +0 -1
- package/dist/native/p-ef9b66d4.entry.js +0 -2
- package/dist/native/p-ef9b66d4.entry.js.map +0 -1
- package/dist/native/p-f867541d.entry.js +0 -2
- package/dist/native/p-f867541d.entry.js.map +0 -1
- package/dist/native/p-f954a077.entry.js +0 -2
- package/dist/native/p-f954a077.entry.js.map +0 -1
- package/dist/native/p-ff7eea0e.entry.js +0 -2
- package/dist/native/p-ff7eea0e.entry.js.map +0 -1
- package/dist/types/components/nv-datagridbody/nv-datagridbody.d.ts +0 -7
- package/dist/types/components/nv-datagridbody/nv-datagridbody.docs.d.ts +0 -4
- package/dist/types/components/nv-datagriddatacell/nv-datagriddatacell.d.ts +0 -14
- package/dist/types/components/nv-datagriddatacell/nv-datagriddatacell.docs.d.ts +0 -4
- package/dist/types/components/nv-datagridhead/nv-datagridhead.d.ts +0 -7
- package/dist/types/components/nv-datagridhead/nv-datagridhead.docs.d.ts +0 -4
- package/dist/types/components/nv-datagridrow/nv-datagridrow.d.ts +0 -7
- package/dist/types/components/nv-datagridrow/nv-datagridrow.docs.d.ts +0 -4
- package/dist/types/components/nv-tablebody/nv-tablebody.d.ts +0 -7
- package/dist/types/components/nv-tablebody/nv-tablebody.docs.d.ts +0 -4
- package/dist/types/components/nv-tabledatacell/nv-tabledatacell.d.ts +0 -30
- package/dist/types/components/nv-tabledatacell/nv-tabledatacell.docs.d.ts +0 -4
- package/dist/types/components/nv-tablehead/nv-tablehead.d.ts +0 -7
- package/dist/types/components/nv-tablehead/nv-tablehead.docs.d.ts +0 -4
- package/dist/types/components/nv-tablerow/nv-tablerow.d.ts +0 -7
- package/dist/types/components/nv-tablerow/nv-tablerow.docs.d.ts +0 -4
- package/dist/vscode-data.json +0 -4407
- /package/dist/native/{p-e1b22ca7.entry.js.map → p-0a2a9f8b.entry.js.map} +0 -0
- /package/dist/native/{p-46c9aa04.entry.js.map → p-12d08abc.entry.js.map} +0 -0
- /package/dist/native/{p-63c894f0.entry.js.map → p-15be3d96.entry.js.map} +0 -0
- /package/dist/native/{p-943a19a5.entry.js.map → p-184cd119.entry.js.map} +0 -0
- /package/dist/native/{p-2b99e720.entry.js.map → p-1a3d2a74.entry.js.map} +0 -0
- /package/dist/native/{p-3b2c7871.entry.js.map → p-359f0f53.entry.js.map} +0 -0
- /package/dist/native/{p-beab7cbd.entry.js.map → p-3be2c9a1.entry.js.map} +0 -0
- /package/dist/native/{p-fa33ec18.entry.js.map → p-491f4605.entry.js.map} +0 -0
- /package/dist/native/{p-39b4ec02.entry.js.map → p-554f7b44.entry.js.map} +0 -0
- /package/dist/native/{p-44e7e3e8.entry.js.map → p-69fb1c9d.entry.js.map} +0 -0
- /package/dist/native/{p-cba14168.entry.js.map → p-729c9d45.entry.js.map} +0 -0
- /package/dist/native/{p-6acbf729.entry.js.map → p-78f08578.entry.js.map} +0 -0
- /package/dist/native/{p-5f1a7e6e.entry.js.map → p-951baf95.entry.js.map} +0 -0
- /package/dist/native/{p-4eacd598.entry.js.map → p-cda56476.entry.js.map} +0 -0
- /package/dist/native/{p-dbb89408.entry.js.map → p-d1bf4d77.entry.js.map} +0 -0
- /package/dist/native/{p-b13b2663.entry.js.map → p-d7665a07.entry.js.map} +0 -0
- /package/dist/native/{p-833af1bf.entry.js.map → p-daeb7e22.entry.js.map} +0 -0
- /package/dist/native/{p-634b49fe.entry.js.map → p-e36e956b.entry.js.map} +0 -0
- /package/dist/native/{p-afc16010.entry.js.map → p-e9e77494.entry.js.map} +0 -0
- /package/dist/native/{p-0bf35abc.entry.js.map → p-edee1c1f.entry.js.map} +0 -0
- /package/dist/native/{p-4db7add6.entry.js.map → p-f1585fc2.entry.js.map} +0 -0
- /package/dist/native/{p-ac81e143.entry.js.map → p-f3579407.entry.js.map} +0 -0
- /package/dist/native/{p-2151f564.entry.js.map → p-fde56f9c.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nv-table.js","sourceRoot":"","sources":["../../../src/components/nv-table/nv-table.tsx"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, Host, Prop, State, Watch, h, Element } from '@stencil/core';\n\n/**\n * @slot default - Use this slot to insert HTML into the table content.\n * @slot head - Use this slot to insert HTML into the table header.\n * @slot before - Use this slot to insert HTML before the table.\n * @slot after - Use this slot to insert HTML after the table.\n * @slot body - Use this slot to insert HTML into the table body.\n *\n * @deprecated [EXPERIMENTAL]\n * @experimental - This component is still under development and is not ready for use.\n */\n@Component({\n tag: 'nv-table',\n styleUrl: './nv-table.scss',\n shadow: false,\n})\nexport class NvTable {\n @Element() el: HTMLNvTableElement;\n\n /****************************************************************************/\n //#region STATES\n\n @State()\n parsedColumns: string[] = []; // Parsed array of column headers\n\n @State()\n parsedData: any[] = []; // Parsed array of data rows\n\n @State()\n hasSlotHead: boolean = false;\n\n @State()\n hasSlotBody: boolean = false;\n\n //#endregion STATES\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Defines the table columns.\n * @example ['Name', 'Age', 'Email']\n * @default []\n */\n @Prop()\n readonly columns: string[] = [];\n\n /**\n * Defines the table columns.\n * It can be passed directly as an array of strings or as a JSON string.\n * @example '[\"Name\", \"Age\", \"Email\"]'\n */\n @Prop({ reflect: true })\n readonly columnsJson?: string;\n\n /**\n * Defines the table data.\n * @example [{ name: 'Alice', age: 25, email: 'alice@mail.com' }, { name: 'Bob', age: 30, email: 'bob@mail.com' }]\n * @default []\n */\n @Prop()\n readonly data: any[] = [];\n\n /**\n * Defines the table data.\n * It can be passed directly as an array of objects or as a JSON string.\n * @example '[{ \"name\": \"Alice\", \"age\": \"25\", \"email\": \"alice@mail.com\" },{ \"name\": \"Bob\", \"age\": \"30\", \"email\": \"bob@mail.com\" }]'\n */\n @Prop({ reflect: true })\n readonly dataJson?: string;\n\n /**\n * The message to display when there is no data available.\n * @default 'No data available'\n */\n @Prop()\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()\n readonly noColumnsNoDataMessage: string =\n 'No data or columns available to display.';\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region WATCHERS\n\n @Watch('columns')\n parseColumns(newValue: string[], oldValue: string[]) {\n this.parseColumnsArray(newValue, oldValue);\n }\n\n @Watch('columnsJson')\n parseJsonColumns(newValue: string | undefined) {\n try {\n const newItems = newValue ? JSON.parse(newValue) : [];\n\n this.parseColumnsArray(newItems, this.parsedColumns);\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 //#endregion WATCHERS\n /****************************************************************************/\n //#region METHODS\n\n /**\n * Parses the columns array.\n * @param {string[]} newValue - The new value of the columns array.\n * @param {string[]} oldValue - The old value of the columns array.\n */\n private parseColumnsArray(newValue: string[], oldValue: string[]) {\n if (JSON.stringify(newValue) === JSON.stringify(oldValue)) return; // Deep comparison\n this.parsedColumns = Array.isArray(newValue) ? newValue : [];\n }\n\n /**\n * Parses the data array.\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 if (JSON.stringify(newValue) === JSON.stringify(oldValue)) return; // Deep comparison\n this.parsedData = Array.isArray(newValue) ? newValue : [];\n }\n\n //#endregion METHODS\n /****************************************************************************/\n //#region LIFECYCLE\n\n componentWillLoad() {\n this.hasSlotHead = !!this.el.querySelector('[slot=\"head\"]');\n this.hasSlotBody = !!this.el.querySelector('[slot=\"body\"]');\n\n if (this.columnsJson) {\n this.parseJsonColumns(this.columnsJson);\n } else {\n this.parseColumns(this.columns, this.parsedColumns);\n }\n\n if (this.dataJson) {\n this.parseJsonData(this.dataJson);\n } else {\n this.parseData(this.data, this.parsedData);\n }\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region RENDER\n\n render() {\n const headerRows = this.hasSlotHead\n ? Array.from(\n this.el\n .querySelector('[slot=\"head\"]')\n .querySelectorAll('nv-tablerow'),\n )\n : [];\n const bodyRows = this.hasSlotBody\n ? Array.from(\n this.el\n .querySelector('[slot=\"body\"]')\n .querySelectorAll('nv-tablerow'),\n )\n : [];\n\n return (\n <Host>\n <div class=\"hidden\">\n <slot></slot>\n <slot name=\"head\"></slot>\n <slot name=\"body\"></slot>\n </div>\n\n <slot name=\"before\"></slot>\n\n {this.parsedColumns.length === 0 &&\n this.parsedData.length === 0 &&\n headerRows.length === 0 &&\n bodyRows.length === 0 ? (\n <p>{this.noColumnsNoDataMessage}</p>\n ) : (\n <table>\n {this.parsedColumns.length > 0 ? (\n <thead>\n <tr>\n {this.parsedColumns.map(column => (\n <th>{column}</th>\n ))}\n </tr>\n </thead>\n ) : headerRows.length > 0 ? (\n <thead>\n {headerRows.map(row => {\n const cells = Array.from(\n row.querySelectorAll('nv-tablecolumn'),\n );\n return (\n <tr>\n {cells.map(cell => (\n <th\n colSpan={cell.colspan}\n rowSpan={cell.rowspan}\n headers={cell.headers}\n scope={cell.scope}\n innerHTML={cell.innerHTML}\n ></th>\n ))}\n </tr>\n );\n })}\n </thead>\n ) : null}\n\n <tbody>\n {this.parsedData.length === 0 && bodyRows.length === 0 ? (\n <tr>\n <td colSpan={this.parsedColumns.length || 12}>\n {this.noDataMessage}\n </td>\n </tr>\n ) : this.parsedData.length > 0 ? (\n this.parsedData.map(row => (\n <tr>\n {this.parsedColumns.length > 0\n ? this.parsedColumns.map(column => (\n <td>{row[column.toLowerCase()] || ''}</td>\n ))\n : Object.values(row).map(value => <td>{value}</td>)}\n </tr>\n ))\n ) : bodyRows.length > 0 ? (\n bodyRows.map(row => {\n const cells = Array.from(\n row.querySelectorAll('nv-tabledatacell'),\n );\n return (\n <tr>\n {cells.map(cell => (\n <td\n colSpan={cell.colspan}\n rowSpan={cell.rowspan}\n headers={cell.headers}\n innerHTML={cell.innerHTML}\n ></td>\n ))}\n </tr>\n );\n })\n ) : null}\n </tbody>\n </table>\n )}\n\n <slot name=\"after\"></slot>\n </Host>\n );\n }\n\n //#endregion RENDER\n /****************************************************************************/\n}\n"]}
|
|
1
|
+
{"version":3,"file":"nv-table.js","sourceRoot":"","sources":["../../../src/components/nv-table/nv-table.tsx"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n Component,\n Host,\n Prop,\n State,\n h,\n Element,\n Watch,\n Event,\n EventEmitter,\n} from '@stencil/core';\nimport { ColumnConfig } from '../../interfaces/ColumnConfig';\nimport { ActionEvent } from '../../interfaces/actionEvent';\nimport { deepCopyElement, excludedProps } from '../../utils/dom.utils';\n\n/**\n * Helper interface to define the table structure\n */\ninterface Table {\n /**\n * Configuration of the columns of the table\n */\n columns: ColumnConfig[];\n\n /**\n * Data to be displayed in the table\n */\n data: any[];\n}\n\n/**\n * @slot default - Slot for the composed table columns\n * @slot before - Use this slot to insert HTML before the table.\n * @slot after - Use this slot to insert HTML after the table.\n */\n@Component({\n tag: 'nv-table',\n styleUrl: 'nv-table.scss',\n shadow: false,\n})\nexport class NvTable {\n @Element() el: HTMLNvTableElement;\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 parsedColumns: ColumnConfig[] = [];\n\n @State()\n parsedData: any[] = [];\n\n @State()\n private table: Table = null;\n\n //#endregion STATES\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Data to be displayed in the table\n */\n @Prop({ reflect: true })\n readonly data: any[] = [];\n\n /**\n * Configuration of the columns of the table\n */\n @Prop({ reflect: true })\n readonly columnsConfig: ColumnConfig[] = [];\n\n /**\n * Data to be displayed in the table\n */\n @Prop({ reflect: true })\n readonly dataJson?: string;\n\n /**\n * Configuration of the columns of the table\n */\n @Prop({ reflect: true })\n readonly columnsConfigJson?: string;\n\n /**\n * Fallback value to be displayed when data is not available\n */\n @Prop({ reflect: true })\n readonly fallbackValue: string = 'N/A';\n\n /**\n * Message to be displayed when no data is 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 //#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-tablecolumn'));\n\n columns.forEach((col: HTMLNvTablecolumnElement) => {\n const key = col.name;\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 }\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.columnsConfigJson) {\n this.parseJsonColumns(this.columnsConfigJson, this.parsedColumns);\n } else if (this.columnsConfig && this.columnsConfig.length > 0) {\n this.parseColumnsArray(this.columnsConfig, this.parsedColumns);\n } else if (this.headerTemplateCache.size > 0) {\n const headerKeys = Array.from(this.headerTemplateCache.keys());\n const arrayColumnsConfig = headerKeys.map<ColumnConfig>(key => ({\n ...{}, // Ensure no prototype inheritance\n name: 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<ColumnConfig>(\n key => ({\n name: key,\n header: key.charAt(0).toUpperCase() + key.slice(1),\n }),\n );\n\n this.parseColumnsArray(arrayColumnsConfig, this.parsedColumns);\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 - New value of the data array\n * @param {any[]} oldValue - Old value of the data array\n * @returns {void}\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 {ColumnConfig[]} newValue - New value of the columns array\n * @param {ColumnConfig[]} oldValue - Old value of the columns array\n * @returns {void}\n */\n private parseColumnsArray(\n newValue: ColumnConfig[] | null | undefined,\n oldValue: ColumnConfig[] | null | undefined,\n ) {\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() {\n // Clear the previous table instance (if any)\n this.table = null;\n\n if (this.parsedColumns.length > 0) {\n this.table = {\n columns: this.parsedColumns,\n data: this.getTableData(),\n };\n } else {\n this.table = null;\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 // Helper function to get nested property value\n private replaceKeyWithValue(obj: any, path: string) {\n return (\n path\n .split('.')\n .reduce(\n (acc, key) => (acc && acc[key] !== undefined ? acc[key] : undefined),\n obj,\n ) ?? this.fallbackValue\n );\n }\n\n private renderTemplate(template: Element | undefined, row: any) {\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, row);\n\n // Replace placeholders in attributes\n this.replacePlaceholdersAttributes(el, row);\n\n // Replace placeholders in properties\n this.replacePlaceholdersProperties(el, row);\n });\n\n // Handle `data-bind-event`\n element.querySelectorAll('[data-bind-event]').forEach(el => {\n const bindEvent = el.getAttribute('data-bind-event') || '';\n const splitted = bindEvent.split(':');\n\n if (!bindEvent.includes(':') || splitted.length < 2) {\n console.warn('Invalid data-bind-event format:', bindEvent);\n return;\n }\n\n const eventType = splitted[0];\n const keyAction = splitted[1];\n const details = splitted.length > 2 ? splitted[2] : null;\n\n el.addEventListener(eventType, () => {\n const keys = details?.split(',') ?? [];\n\n // Convert keys into a single object instead of an array of objects\n const keyValue = keys.reduce((acc, key) => {\n acc[key] = row?.[key];\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 replacePlaceholdersTextContent(element: Element, row: 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(row, key),\n );\n }\n });\n }\n\n private replacePlaceholdersAttributes(element: Element, row: 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(row, key),\n );\n }\n });\n }\n\n private replacePlaceholdersProperties(element: Element, row: 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 value = element[prop];\n\n // ✅ Replace placeholders only if the value is a string\n if (typeof value === 'string' && value.includes('__')) {\n element[prop] = value.replace(/__([\\w.]+)__/g, (_, key: string) =>\n this.replaceKeyWithValue(row, key),\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 //#endregion METHODS\n /****************************************************************************/\n //#region WATCHERS\n\n @Watch('columnsConfig')\n parseColumns(newValue: ColumnConfig[], oldValue: ColumnConfig[]) {\n this.parseColumnsArray(newValue, oldValue);\n }\n\n @Watch('columnsConfigJson')\n parseJsonColumns(newValue: string | undefined, oldValue: ColumnConfig[]) {\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 columnsConfigJson:', 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 //#endregion WATCHERS\n /****************************************************************************/\n //#region LIFECYCLE\n\n componentWillLoad() {\n this.cacheTemplates();\n\n this.parseDataAndColumns();\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region EVENTS\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.columns;\n\n const rows =\n !this.table || this.table === undefined || this.parsedData.length === 0\n ? []\n : this.table.data;\n\n return (\n <Host>\n <div class=\"hidden\">\n <slot></slot>\n </div>\n\n <slot name=\"before\"></slot>\n\n {this.parsedColumns.length === 0 && this.parsedData.length === 0 ? (\n <div class=\"no-data\">{this.noColumnsNoDataMessage}</div>\n ) : (\n <table class=\"table\">\n {this.parsedColumns.length > 0 && headerGroups.length > 0 && (\n <thead class=\"table-header\">\n <tr>\n {headerGroups &&\n headerGroups.map(col => {\n return (\n <th key={col.name}>\n {this.renderTemplate(\n this.headerTemplateCache.get(col.name),\n {},\n ) || col.header}\n </th>\n );\n })}\n </tr>\n </thead>\n )}\n <tbody class=\"table-body\">\n {!rows || rows.length === 0 ? (\n <tr>\n <td colSpan={headerGroups.length || 12} class=\"no-data\">\n {this.noDataMessage}\n </td>\n </tr>\n ) : (\n rows.map(row => (\n <tr key={JSON.stringify(row)}>\n {headerGroups.map(col => (\n <td>\n {this.renderTemplate(\n this.templateCache.get(col.name),\n row,\n ) ||\n (row[col.name] ?? this.fallbackValue)}\n </td>\n ))}\n </tr>\n ))\n )}\n </tbody>\n </table>\n )}\n\n <slot name=\"after\"></slot>\n </Host>\n );\n }\n // #endregion RENDER\n}\n"]}
|
|
@@ -1,46 +1,14 @@
|
|
|
1
|
-
import { Host, h } from "@stencil/core";
|
|
2
|
-
/**
|
|
3
|
-
* @slot default - Use this slot to insert HTML into the table column.
|
|
4
|
-
*/
|
|
5
1
|
export class NvTablecolumn {
|
|
6
|
-
constructor() {
|
|
7
|
-
/**
|
|
8
|
-
* A non-negative integer value indicating how many columns the header cell spans
|
|
9
|
-
* or extends. The default value is 1. User agents dismiss values higher than 1000
|
|
10
|
-
* as incorrect, defaulting such values to 1.
|
|
11
|
-
* @default 1
|
|
12
|
-
*/
|
|
13
|
-
this.colspan = 1;
|
|
14
|
-
/**
|
|
15
|
-
* A non-negative integer value indicating how many rows the header cell spans or
|
|
16
|
-
* extends. The default value is 1; if its value is set to 0, the header cell will
|
|
17
|
-
* extends to the end of the table grouping section (`<thead>`, `<tbody>`, `<tfoot>`,
|
|
18
|
-
* even if implicitly defined), that the `<th>` belongs to. Values higher than 65534
|
|
19
|
-
* are clipped at 65534.
|
|
20
|
-
* @default 1
|
|
21
|
-
*/
|
|
22
|
-
this.rowspan = 1;
|
|
23
|
-
}
|
|
24
2
|
//#endregion PROPERTIES
|
|
25
3
|
/****************************************************************************/
|
|
26
4
|
//#region RENDER
|
|
27
5
|
render() {
|
|
28
|
-
return
|
|
6
|
+
return null;
|
|
29
7
|
}
|
|
30
8
|
static get is() { return "nv-tablecolumn"; }
|
|
31
|
-
static get originalStyleUrls() {
|
|
32
|
-
return {
|
|
33
|
-
"$": ["nv-tablecolumn.scss"]
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
static get styleUrls() {
|
|
37
|
-
return {
|
|
38
|
-
"$": ["nv-tablecolumn.css"]
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
9
|
static get properties() {
|
|
42
10
|
return {
|
|
43
|
-
"
|
|
11
|
+
"name": {
|
|
44
12
|
"type": "string",
|
|
45
13
|
"mutable": false,
|
|
46
14
|
"complexType": {
|
|
@@ -48,64 +16,18 @@ export class NvTablecolumn {
|
|
|
48
16
|
"resolved": "string",
|
|
49
17
|
"references": {}
|
|
50
18
|
},
|
|
51
|
-
"required":
|
|
19
|
+
"required": true,
|
|
52
20
|
"optional": false,
|
|
53
21
|
"docs": {
|
|
54
22
|
"tags": [],
|
|
55
|
-
"text": "
|
|
56
|
-
},
|
|
57
|
-
"getter": false,
|
|
58
|
-
"setter": false,
|
|
59
|
-
"attribute": "abbr",
|
|
60
|
-
"reflect": false
|
|
61
|
-
},
|
|
62
|
-
"colspan": {
|
|
63
|
-
"type": "number",
|
|
64
|
-
"mutable": false,
|
|
65
|
-
"complexType": {
|
|
66
|
-
"original": "number",
|
|
67
|
-
"resolved": "number",
|
|
68
|
-
"references": {}
|
|
69
|
-
},
|
|
70
|
-
"required": false,
|
|
71
|
-
"optional": false,
|
|
72
|
-
"docs": {
|
|
73
|
-
"tags": [{
|
|
74
|
-
"name": "default",
|
|
75
|
-
"text": "1"
|
|
76
|
-
}],
|
|
77
|
-
"text": "A non-negative integer value indicating how many columns the header cell spans\nor extends. The default value is 1. User agents dismiss values higher than 1000\nas incorrect, defaulting such values to 1."
|
|
23
|
+
"text": "Name of the column and data accessor"
|
|
78
24
|
},
|
|
79
25
|
"getter": false,
|
|
80
26
|
"setter": false,
|
|
81
|
-
"attribute": "
|
|
82
|
-
"reflect":
|
|
83
|
-
"defaultValue": "1"
|
|
27
|
+
"attribute": "name",
|
|
28
|
+
"reflect": true
|
|
84
29
|
},
|
|
85
|
-
"
|
|
86
|
-
"type": "number",
|
|
87
|
-
"mutable": false,
|
|
88
|
-
"complexType": {
|
|
89
|
-
"original": "number",
|
|
90
|
-
"resolved": "number",
|
|
91
|
-
"references": {}
|
|
92
|
-
},
|
|
93
|
-
"required": false,
|
|
94
|
-
"optional": false,
|
|
95
|
-
"docs": {
|
|
96
|
-
"tags": [{
|
|
97
|
-
"name": "default",
|
|
98
|
-
"text": "1"
|
|
99
|
-
}],
|
|
100
|
-
"text": "A non-negative integer value indicating how many rows the header cell spans or\nextends. The default value is 1; if its value is set to 0, the header cell will\nextends to the end of the table grouping section (`<thead>`, `<tbody>`, `<tfoot>`,\neven if implicitly defined), that the `<th>` belongs to. Values higher than 65534\nare clipped at 65534."
|
|
101
|
-
},
|
|
102
|
-
"getter": false,
|
|
103
|
-
"setter": false,
|
|
104
|
-
"attribute": "rowspan",
|
|
105
|
-
"reflect": false,
|
|
106
|
-
"defaultValue": "1"
|
|
107
|
-
},
|
|
108
|
-
"headers": {
|
|
30
|
+
"header": {
|
|
109
31
|
"type": "string",
|
|
110
32
|
"mutable": false,
|
|
111
33
|
"complexType": {
|
|
@@ -114,37 +36,15 @@ export class NvTablecolumn {
|
|
|
114
36
|
"references": {}
|
|
115
37
|
},
|
|
116
38
|
"required": false,
|
|
117
|
-
"optional":
|
|
118
|
-
"docs": {
|
|
119
|
-
"tags": [{
|
|
120
|
-
"name": "example",
|
|
121
|
-
"text": "'col1 col2'"
|
|
122
|
-
}],
|
|
123
|
-
"text": "A list of space-separated strings corresponding to the id attributes of the `<th>`\nelements that provide the headers for this header cell."
|
|
124
|
-
},
|
|
125
|
-
"getter": false,
|
|
126
|
-
"setter": false,
|
|
127
|
-
"attribute": "headers",
|
|
128
|
-
"reflect": false
|
|
129
|
-
},
|
|
130
|
-
"scope": {
|
|
131
|
-
"type": "string",
|
|
132
|
-
"mutable": false,
|
|
133
|
-
"complexType": {
|
|
134
|
-
"original": "'col' | 'row' | 'colgroup' | 'rowgroup'",
|
|
135
|
-
"resolved": "\"col\" | \"colgroup\" | \"row\" | \"rowgroup\"",
|
|
136
|
-
"references": {}
|
|
137
|
-
},
|
|
138
|
-
"required": false,
|
|
139
|
-
"optional": false,
|
|
39
|
+
"optional": true,
|
|
140
40
|
"docs": {
|
|
141
41
|
"tags": [],
|
|
142
|
-
"text": "
|
|
42
|
+
"text": "Header of the column to be displayed"
|
|
143
43
|
},
|
|
144
44
|
"getter": false,
|
|
145
45
|
"setter": false,
|
|
146
|
-
"attribute": "
|
|
147
|
-
"reflect":
|
|
46
|
+
"attribute": "header",
|
|
47
|
+
"reflect": true
|
|
148
48
|
}
|
|
149
49
|
};
|
|
150
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nv-tablecolumn.js","sourceRoot":"","sources":["../../../src/components/nv-tablecolumn/nv-tablecolumn.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"nv-tablecolumn.js","sourceRoot":"","sources":["../../../src/components/nv-tablecolumn/nv-tablecolumn.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAMhD,MAAM,OAAO,aAAa;IAgBxB,uBAAuB;IACvB,8EAA8E;IAC9E,gBAAgB;IAEhB,MAAM;QACJ,OAAO,IAAI,CAAC;IACd,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGF","sourcesContent":["import { Component, Prop } from '@stencil/core';\n\n@Component({\n tag: 'nv-tablecolumn',\n shadow: false,\n})\nexport class NvTablecolumn {\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Name of the column and data accessor\n */\n @Prop({ reflect: true })\n readonly name!: string;\n\n /**\n * Header of the column to be displayed\n */\n @Prop({ reflect: true })\n readonly header?: string;\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region RENDER\n\n render() {\n return null;\n }\n\n // #endregion RENDER\n}\n"]}
|
|
@@ -60,8 +60,8 @@ export class NvToggle {
|
|
|
60
60
|
/****************************************************************************/
|
|
61
61
|
//#region RENDER
|
|
62
62
|
render() {
|
|
63
|
-
return (h(Host, { key: '
|
|
64
|
-
this.el.querySelector('[slot="description"]')) && (h("div", { key: '
|
|
63
|
+
return (h(Host, { key: '0ea7a73c5b656d0d7f9342a9526dc00a66a94f83', class: clsx(this.labelPlacement === 'before' && 'label-placement-before') }, h("div", { key: 'eb294c704b9f3568e03af1817a302d2edfe24486', class: "input-container" }, h("input", { key: '777b6e7172691aba435751364c5908f381390f23', type: "checkbox", id: this.inputId, name: this.name, autocomplete: "off", value: this.value, checked: Boolean(this.checked), disabled: this.disabled || this.readonly, readonly: this.readonly })), h("div", { key: '92dbdb51e8c9fc231572009d37e274e070334292', class: "text-container" }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { key: '9d50bac5932e25c3b3c8dd04fe44e2622e22b6ac', htmlFor: this.inputId, class: clsx(this.hideLabel && 'visually-hidden') }, h("slot", { key: 'bf6cb8ff071c11d7809580a5dee61a1dfd89c112', name: "label" }, this.label))), (this.description ||
|
|
64
|
+
this.el.querySelector('[slot="description"]')) && (h("div", { key: 'db77b501162725dcf3b05b3d7c4b26d0f933ac8b', class: "description" }, h("slot", { key: 'a201c736b5237e88ee0d8caa3999874caa7f85f3', name: "description" }, this.description))))));
|
|
65
65
|
}
|
|
66
66
|
static get is() { return "nv-toggle"; }
|
|
67
67
|
static get formAssociated() { return true; }
|
|
@@ -31,7 +31,7 @@ export class NvTooltip {
|
|
|
31
31
|
/****************************************************************************/
|
|
32
32
|
//#region RENDER
|
|
33
33
|
render() {
|
|
34
|
-
return (h(Host, { key: '
|
|
34
|
+
return (h(Host, { key: 'c5a2dddc41ad3379be20d7809faf4bd683ff459c' }, h("slot", { key: '400d32d15407fed83e424f00338efd60528b6fb2' }), h("nv-popover", { key: 'd7efd362efa204aae2fea623a5efd33d3b1429b0', triggerMode: "hover", hasArrow: true, placement: this.placement, triggerElement: this.triggerElement, groupName: 'tooltip', enterDelay: this.enterDelay }, h("p", { key: 'a6426276d51217387c4d028bb0eb719839197d62', slot: "content" }, this.message), h("slot", { key: '01f6af2ae0243f3cd6c2d1a01e6c16cd2fd16cd0', name: "content" }))));
|
|
35
35
|
}
|
|
36
36
|
static get is() { return "nv-tooltip"; }
|
|
37
37
|
static get originalStyleUrls() {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ColumnConfig.js","sourceRoot":"","sources":["../../src/interfaces/ColumnConfig.tsx"],"names":[],"mappings":"","sourcesContent":["/**\n * Column configuration for the table\n */\nexport interface ColumnConfig {\n /**\n * Name of the column and data accessor\n */\n name: string;\n /**\n * Header of the column to be displayed\n */\n header: string;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actionEvent.js","sourceRoot":"","sources":["../../src/interfaces/actionEvent.tsx"],"names":[],"mappings":"","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Interface for action event\n */\nexport interface ActionEvent {\n /**\n * Key action to be performed\n */\n keyAction: string;\n\n /**\n * Details of the action to be performed\n */\n details: any;\n}\n"]}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
/**
|
|
3
|
+
* All properties that should be excluded from the deep copy of an HTML element.
|
|
4
|
+
*/
|
|
5
|
+
export const excludedProps = new Set([
|
|
6
|
+
// Text and content-related properties
|
|
7
|
+
'textContent',
|
|
8
|
+
'innerText',
|
|
9
|
+
'outerText',
|
|
10
|
+
'innerHTML',
|
|
11
|
+
'outerHTML',
|
|
12
|
+
'text',
|
|
13
|
+
// Form element properties
|
|
14
|
+
'value',
|
|
15
|
+
'defaultValue',
|
|
16
|
+
'checked',
|
|
17
|
+
'defaultChecked',
|
|
18
|
+
'selectionStart',
|
|
19
|
+
'selectionEnd',
|
|
20
|
+
'selectionDirection',
|
|
21
|
+
'form',
|
|
22
|
+
'willValidate',
|
|
23
|
+
'validity',
|
|
24
|
+
'validationMessage',
|
|
25
|
+
'labels',
|
|
26
|
+
'list',
|
|
27
|
+
'maxLength',
|
|
28
|
+
'minLength',
|
|
29
|
+
'valueAsDate',
|
|
30
|
+
'valueAsNumber',
|
|
31
|
+
// Editability and namespaces
|
|
32
|
+
'contentEditable',
|
|
33
|
+
'isContentEditable',
|
|
34
|
+
'namespaceURI',
|
|
35
|
+
// Child-related properties (handled recursively)
|
|
36
|
+
'attributes',
|
|
37
|
+
'children',
|
|
38
|
+
'childNodes',
|
|
39
|
+
'firstChild',
|
|
40
|
+
'lastChild',
|
|
41
|
+
// Blazor-related properties
|
|
42
|
+
'origin',
|
|
43
|
+
'dataset',
|
|
44
|
+
'attributeStyleMap',
|
|
45
|
+
'prefix',
|
|
46
|
+
'localName',
|
|
47
|
+
'tagName',
|
|
48
|
+
'shadowRoot',
|
|
49
|
+
'assignedSlot',
|
|
50
|
+
'scrollWidth',
|
|
51
|
+
'scrollHeight',
|
|
52
|
+
'clientTop',
|
|
53
|
+
'clientLeft',
|
|
54
|
+
'clientWidth',
|
|
55
|
+
'clientHeight',
|
|
56
|
+
'firstElementChild',
|
|
57
|
+
'lastElementChild',
|
|
58
|
+
'childElementCount',
|
|
59
|
+
'previousElementSibling',
|
|
60
|
+
'nextElementSibling',
|
|
61
|
+
'currentCSSZoom',
|
|
62
|
+
'nodeType',
|
|
63
|
+
'nodeName',
|
|
64
|
+
'baseURI',
|
|
65
|
+
'isConnected',
|
|
66
|
+
'ownerDocument',
|
|
67
|
+
'parentNode',
|
|
68
|
+
'parentElement',
|
|
69
|
+
'previousSibling',
|
|
70
|
+
'nextSibling',
|
|
71
|
+
'ELEMENT_NODE',
|
|
72
|
+
'ATTRIBUTE_NODE',
|
|
73
|
+
'TEXT_NODE',
|
|
74
|
+
'CDATA_SECTION_NODE',
|
|
75
|
+
'ENTITY_REFERENCE_NODE',
|
|
76
|
+
'ENTITY_NODE',
|
|
77
|
+
'PROCESSING_INSTRUCTION_NODE',
|
|
78
|
+
'COMMENT_NODE',
|
|
79
|
+
'DOCUMENT_NODE',
|
|
80
|
+
'DOCUMENT_TYPE_NODE',
|
|
81
|
+
'DOCUMENT_FRAGMENT_NODE',
|
|
82
|
+
'NOTATION_NODE',
|
|
83
|
+
'DOCUMENT_POSITION_DISCONNECTED',
|
|
84
|
+
'DOCUMENT_POSITION_PRECEDING',
|
|
85
|
+
'DOCUMENT_POSITION_FOLLOWING',
|
|
86
|
+
'DOCUMENT_POSITION_CONTAINS',
|
|
87
|
+
'DOCUMENT_POSITION_CONTAINED_BY',
|
|
88
|
+
'DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC',
|
|
89
|
+
]);
|
|
90
|
+
/**
|
|
91
|
+
* Deep copy an HTML element with all its attributes, properties, and child nodes.
|
|
92
|
+
* This method is useful for creating a clone of an element that can be safely modified without affecting the original.
|
|
93
|
+
* @param {HTMLElement} element - The HTML element to copy.
|
|
94
|
+
* @returns {HTMLElement} - A deep copy of the HTML element.
|
|
95
|
+
* @example const copy = deepCopyElement(document.getElementById('myElement'));
|
|
96
|
+
*/
|
|
97
|
+
export function deepCopyElement(element) {
|
|
98
|
+
const copy = document.createElement(element.tagName);
|
|
99
|
+
// ✅ Copy attributes
|
|
100
|
+
Array.from(element.attributes).forEach(attr => {
|
|
101
|
+
copy.setAttribute(attr.name, attr.value);
|
|
102
|
+
});
|
|
103
|
+
// ✅ Dynamically extract relevant properties
|
|
104
|
+
const properties = new Set();
|
|
105
|
+
// Collect only own enumerable properties
|
|
106
|
+
Object.keys(element).forEach(key => properties.add(key));
|
|
107
|
+
// Collect inherited properties from prototypes (HTMLElement -> Element -> Node)
|
|
108
|
+
let proto = Object.getPrototypeOf(element);
|
|
109
|
+
while (proto && proto !== HTMLElement.prototype) {
|
|
110
|
+
Object.keys(proto).forEach(key => properties.add(key));
|
|
111
|
+
proto = Object.getPrototypeOf(proto);
|
|
112
|
+
}
|
|
113
|
+
// ✅ Filter and copy only non-function properties (methods are excluded) and non-event listeners
|
|
114
|
+
properties.forEach(prop => {
|
|
115
|
+
if (typeof element[prop] !== 'function' && // Ignore methods
|
|
116
|
+
!prop.startsWith('on') && // Ignore event listeners (onclick, oninput, etc.)
|
|
117
|
+
!excludedProps.has(prop) // 🚨 Prevent text duplication and irrelevant props
|
|
118
|
+
) {
|
|
119
|
+
try {
|
|
120
|
+
copy[prop] = element[prop];
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
console.warn(`Could not copy property ${prop}:`, error.message);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
// ✅ Copy dataset separately
|
|
128
|
+
Object.assign(copy.dataset, element.dataset);
|
|
129
|
+
// ✅ Handle form elements specifically
|
|
130
|
+
if (element instanceof HTMLInputElement) {
|
|
131
|
+
copy.value = element.value;
|
|
132
|
+
copy.checked = element.checked;
|
|
133
|
+
copy.defaultValue = element.defaultValue;
|
|
134
|
+
copy.defaultChecked = element.defaultChecked;
|
|
135
|
+
copy.selectionStart = element.selectionStart;
|
|
136
|
+
copy.selectionEnd = element.selectionEnd;
|
|
137
|
+
copy.selectionDirection = element.selectionDirection;
|
|
138
|
+
}
|
|
139
|
+
else if (element instanceof HTMLTextAreaElement) {
|
|
140
|
+
copy.value = element.value;
|
|
141
|
+
copy.defaultValue = element.defaultValue;
|
|
142
|
+
copy.selectionStart = element.selectionStart;
|
|
143
|
+
copy.selectionEnd = element.selectionEnd;
|
|
144
|
+
copy.selectionDirection =
|
|
145
|
+
element.selectionDirection;
|
|
146
|
+
}
|
|
147
|
+
else if (element instanceof HTMLSelectElement) {
|
|
148
|
+
copy.value = element.value;
|
|
149
|
+
copy.selectedIndex = element.selectedIndex;
|
|
150
|
+
}
|
|
151
|
+
// ✅ Recursively copy child nodes (prevent duplicates)
|
|
152
|
+
element.childNodes.forEach(child => {
|
|
153
|
+
let childCopy;
|
|
154
|
+
if (child.nodeType === Node.ELEMENT_NODE) {
|
|
155
|
+
childCopy = deepCopyElement(child);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
childCopy = child.cloneNode(true);
|
|
159
|
+
}
|
|
160
|
+
copy.appendChild(childCopy);
|
|
161
|
+
});
|
|
162
|
+
return copy;
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=dom.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dom.utils.js","sourceRoot":"","sources":["../../src/utils/dom.utils.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * All properties that should be excluded from the deep copy of an HTML element.\n */\nexport const excludedProps = new Set([\n // Text and content-related properties\n 'textContent',\n 'innerText',\n 'outerText',\n 'innerHTML',\n 'outerHTML',\n 'text',\n\n // Form element properties\n 'value',\n 'defaultValue',\n 'checked',\n 'defaultChecked',\n 'selectionStart',\n 'selectionEnd',\n 'selectionDirection',\n 'form',\n 'willValidate',\n 'validity',\n 'validationMessage',\n 'labels',\n 'list',\n 'maxLength',\n 'minLength',\n 'valueAsDate',\n 'valueAsNumber',\n\n // Editability and namespaces\n 'contentEditable',\n 'isContentEditable',\n 'namespaceURI',\n\n // Child-related properties (handled recursively)\n 'attributes',\n 'children',\n 'childNodes',\n 'firstChild',\n 'lastChild',\n\n // Blazor-related properties\n 'origin',\n 'dataset',\n 'attributeStyleMap',\n 'prefix',\n 'localName',\n 'tagName',\n 'shadowRoot',\n 'assignedSlot',\n 'scrollWidth',\n 'scrollHeight',\n 'clientTop',\n 'clientLeft',\n 'clientWidth',\n 'clientHeight',\n 'firstElementChild',\n 'lastElementChild',\n 'childElementCount',\n 'previousElementSibling',\n 'nextElementSibling',\n 'currentCSSZoom',\n 'nodeType',\n 'nodeName',\n 'baseURI',\n 'isConnected',\n 'ownerDocument',\n 'parentNode',\n 'parentElement',\n 'previousSibling',\n 'nextSibling',\n 'ELEMENT_NODE',\n 'ATTRIBUTE_NODE',\n 'TEXT_NODE',\n 'CDATA_SECTION_NODE',\n 'ENTITY_REFERENCE_NODE',\n 'ENTITY_NODE',\n 'PROCESSING_INSTRUCTION_NODE',\n 'COMMENT_NODE',\n 'DOCUMENT_NODE',\n 'DOCUMENT_TYPE_NODE',\n 'DOCUMENT_FRAGMENT_NODE',\n 'NOTATION_NODE',\n 'DOCUMENT_POSITION_DISCONNECTED',\n 'DOCUMENT_POSITION_PRECEDING',\n 'DOCUMENT_POSITION_FOLLOWING',\n 'DOCUMENT_POSITION_CONTAINS',\n 'DOCUMENT_POSITION_CONTAINED_BY',\n 'DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC',\n]);\n\n/**\n * Deep copy an HTML element with all its attributes, properties, and child nodes.\n * This method is useful for creating a clone of an element that can be safely modified without affecting the original.\n * @param {HTMLElement} element - The HTML element to copy.\n * @returns {HTMLElement} - A deep copy of the HTML element.\n * @example const copy = deepCopyElement(document.getElementById('myElement'));\n */\nexport function deepCopyElement(element: HTMLElement): HTMLElement {\n const copy = document.createElement(element.tagName);\n\n // ✅ Copy attributes\n Array.from(element.attributes).forEach(attr => {\n copy.setAttribute(attr.name, attr.value);\n });\n\n // ✅ Dynamically extract relevant properties\n const properties = new Set<string>();\n\n // Collect only own enumerable properties\n Object.keys(element).forEach(key => properties.add(key));\n\n // Collect inherited properties from prototypes (HTMLElement -> Element -> Node)\n let proto = Object.getPrototypeOf(element);\n while (proto && proto !== HTMLElement.prototype) {\n Object.keys(proto).forEach(key => properties.add(key));\n proto = Object.getPrototypeOf(proto);\n }\n\n // ✅ Filter and copy only non-function properties (methods are excluded) and non-event listeners\n properties.forEach(prop => {\n if (\n typeof (element as any)[prop] !== 'function' && // Ignore methods\n !prop.startsWith('on') && // Ignore event listeners (onclick, oninput, etc.)\n !excludedProps.has(prop) // 🚨 Prevent text duplication and irrelevant props\n ) {\n try {\n (copy as any)[prop] = (element as any)[prop];\n } catch (error) {\n console.warn(`Could not copy property ${prop}:`, error.message);\n }\n }\n });\n\n // ✅ Copy dataset separately\n Object.assign(copy.dataset, element.dataset);\n\n // ✅ Handle form elements specifically\n if (element instanceof HTMLInputElement) {\n (copy as HTMLInputElement).value = element.value;\n (copy as HTMLInputElement).checked = element.checked;\n (copy as HTMLInputElement).defaultValue = element.defaultValue;\n (copy as HTMLInputElement).defaultChecked = element.defaultChecked;\n (copy as HTMLInputElement).selectionStart = element.selectionStart;\n (copy as HTMLInputElement).selectionEnd = element.selectionEnd;\n (copy as HTMLInputElement).selectionDirection = element.selectionDirection;\n } else if (element instanceof HTMLTextAreaElement) {\n (copy as HTMLTextAreaElement).value = element.value;\n (copy as HTMLTextAreaElement).defaultValue = element.defaultValue;\n (copy as HTMLTextAreaElement).selectionStart = element.selectionStart;\n (copy as HTMLTextAreaElement).selectionEnd = element.selectionEnd;\n (copy as HTMLTextAreaElement).selectionDirection =\n element.selectionDirection;\n } else if (element instanceof HTMLSelectElement) {\n (copy as HTMLSelectElement).value = element.value;\n (copy as HTMLSelectElement).selectedIndex = element.selectedIndex;\n }\n\n // ✅ Recursively copy child nodes (prevent duplicates)\n element.childNodes.forEach(child => {\n let childCopy;\n if (child.nodeType === Node.ELEMENT_NODE) {\n childCopy = deepCopyElement(child as HTMLElement);\n } else {\n childCopy = child.cloneNode(true);\n }\n copy.appendChild(childCopy);\n });\n\n return copy;\n}\n"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
import { describe, expect, test } from "vitest";
|
|
3
|
+
import { nameof } from "../class.utils";
|
|
4
|
+
class Person {
|
|
5
|
+
}
|
|
6
|
+
describe('nameof', () => {
|
|
7
|
+
test.each([
|
|
8
|
+
[nameof(x => x.firstName), 'firstName'],
|
|
9
|
+
[nameof(x => x.lastName), 'lastName'],
|
|
10
|
+
[nameof(x => x.age), 'age'],
|
|
11
|
+
[nameof(x => x.model), 'model'],
|
|
12
|
+
[nameof(x => x.year), 'year'],
|
|
13
|
+
[
|
|
14
|
+
nameof(x => x.foo),
|
|
15
|
+
'foo',
|
|
16
|
+
],
|
|
17
|
+
[
|
|
18
|
+
nameof(x => x.bar),
|
|
19
|
+
'bar',
|
|
20
|
+
],
|
|
21
|
+
])('should return correct property name', (actual, expected) => {
|
|
22
|
+
expect(actual).toEqual(expected);
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=class.utils.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"class.utils.test.js","sourceRoot":"","sources":["../../../src/utils/test/class.utils.test.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,MAAM,MAAM;CAIX;AAgBD,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,IAAI,CAAC,IAAI,CAAC;QACR,CAAC,MAAM,CAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC;QAC/C,CAAC,MAAM,CAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC;QAC7C,CAAC,MAAM,CAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC;QACnC,CAAC,MAAM,CAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QACpC,CAAC,MAAM,CAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAClC;YACE,MAAM,CASH,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YACd,KAAK;SACN;QACD;YACE,MAAM,CASH,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YACd,KAAK;SACN;KACF,CAAC,CAAC,qCAAqC,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;QAC7D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { describe, expect, test } from 'vitest';\nimport { nameof } from '../class.utils';\n\nclass Person {\n firstName!: string;\n lastName!: string;\n age!: number;\n}\n\n/**\n * Car interface.\n */\ninterface Car {\n /**\n * Car model.\n */\n model: string;\n /**\n * Car year.\n */\n year: number;\n}\n\ndescribe('nameof', () => {\n test.each([\n [nameof<Person>(x => x.firstName), 'firstName'],\n [nameof<Person>(x => x.lastName), 'lastName'],\n [nameof<Person>(x => x.age), 'age'],\n [nameof<Car>(x => x.model), 'model'],\n [nameof<Car>(x => x.year), 'year'],\n [\n nameof<{\n /**\n * Foo property.\n */\n foo: number;\n /**\n * Bar property.\n */\n bar: string;\n }>(x => x.foo),\n 'foo',\n ],\n [\n nameof<{\n /**\n * Foo property.\n */\n foo: number;\n /**\n * Bar property.\n */\n bar: string;\n }>(x => x.bar),\n 'bar',\n ],\n ])('should return correct property name', (actual, expected) => {\n expect(actual).toEqual(expected);\n });\n});\n"]}
|