@nova-design-system/nova-webcomponents 3.1.0 → 3.3.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 → index-c56424e5.js} +34 -186
- package/dist/cjs/index-c56424e5.js.map +1 -0
- package/dist/cjs/index.cjs.js +1 -0
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/native.cjs.js +2 -23
- package/dist/cjs/native.cjs.js.map +1 -1
- package/dist/cjs/nv-alert.cjs.entry.js +1 -1
- package/dist/cjs/nv-avatar.cjs.entry.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 +384 -172
- 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 +95 -103
- package/dist/cjs/nv-datagrid.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-datagridcolumn.cjs.entry.js +2 -2
- package/dist/cjs/nv-datagridcolumn.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-dialog.cjs.entry.js +1 -1
- package/dist/cjs/nv-dialogfooter_2.cjs.entry.js +1 -1
- package/dist/cjs/nv-fieldcheckbox.cjs.entry.js +1 -1
- package/dist/cjs/nv-fielddate.cjs.entry.js +45 -11
- package/dist/cjs/nv-fielddate.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fielddaterange.cjs.entry.js +128 -42
- package/dist/cjs/nv-fielddaterange.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fielddropdown.cjs.entry.js +84 -60
- 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 +116 -104
- package/dist/cjs/nv-fieldmultiselect.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldnumber.cjs.entry.js +2 -2
- package/dist/cjs/nv-fieldnumber.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldpassword.cjs.entry.js +2 -2
- package/dist/cjs/nv-fieldpassword.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldradio.cjs.entry.js +1 -1
- package/dist/cjs/nv-fieldselect.cjs.entry.js +2 -2
- package/dist/cjs/nv-fieldselect.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldslider.cjs.entry.js +668 -0
- package/dist/cjs/nv-fieldslider.cjs.entry.js.map +1 -0
- package/dist/cjs/nv-fieldtext.cjs.entry.js +5 -5
- package/dist/cjs/nv-fieldtext.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldtextarea.cjs.entry.js +5 -5
- package/dist/cjs/nv-fieldtextarea.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldtime.cjs.entry.js +11 -11
- package/dist/cjs/nv-fieldtime.cjs.entry.js.map +1 -1
- 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_2.cjs.entry.js +3 -3
- package/dist/cjs/nv-menu.cjs.entry.js +2 -2
- package/dist/cjs/nv-menuitem.cjs.entry.js +2 -2
- package/dist/cjs/nv-popover.cjs.entry.js +2 -2
- package/dist/cjs/nv-row.cjs.entry.js +2 -2
- package/dist/cjs/nv-stack.cjs.entry.js +2 -2
- package/dist/cjs/nv-table.cjs.entry.js +3 -3
- package/dist/cjs/nv-tablecolumn.cjs.entry.js +1 -1
- package/dist/cjs/nv-toggle.cjs.entry.js +3 -3
- package/dist/cjs/nv-tooltip.cjs.entry.js +3 -3
- package/dist/cjs/nv-tooltip.cjs.entry.js.map +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/nv-calendar/nv-calendar.css +6 -2
- package/dist/collection/components/nv-calendar/nv-calendar.js +247 -169
- package/dist/collection/components/nv-calendar/nv-calendar.js.map +1 -1
- package/dist/collection/components/nv-calendar/nv-calendar.utils.js +12 -3
- package/dist/collection/components/nv-calendar/nv-calendar.utils.js.map +1 -1
- package/dist/collection/components/nv-calendar/partials/calendar-actions.js +11 -0
- package/dist/collection/components/nv-calendar/partials/calendar-actions.js.map +1 -0
- package/dist/collection/components/nv-calendar/partials/calendar-grid.js +24 -0
- package/dist/collection/components/nv-calendar/partials/calendar-grid.js.map +1 -0
- package/dist/collection/components/nv-calendar/partials/calendar-header.js +38 -0
- package/dist/collection/components/nv-calendar/partials/calendar-header.js.map +1 -0
- package/dist/collection/components/nv-calendar/partials/calendar-shortcuts.js +22 -0
- package/dist/collection/components/nv-calendar/partials/calendar-shortcuts.js.map +1 -0
- package/dist/collection/components/nv-calendar/partials/day-cell.js +31 -0
- package/dist/collection/components/nv-calendar/partials/day-cell.js.map +1 -0
- package/dist/collection/components/nv-calendar/partials/index.js +7 -0
- package/dist/collection/components/nv-calendar/partials/index.js.map +1 -0
- package/dist/collection/components/nv-calendar/partials/week-numbers.js +36 -0
- package/dist/collection/components/nv-calendar/partials/week-numbers.js.map +1 -0
- package/dist/collection/components/nv-calendar/test/nv-calendar.utils.test.js +692 -651
- package/dist/collection/components/nv-calendar/test/nv-calendar.utils.test.js.map +1 -1
- package/dist/collection/components/nv-calendar/test/partials/calendar-actions.logic.test.js +169 -0
- package/dist/collection/components/nv-calendar/test/partials/calendar-actions.logic.test.js.map +1 -0
- package/dist/collection/components/nv-calendar/test/partials/calendar-grid.logic.test.js +262 -0
- package/dist/collection/components/nv-calendar/test/partials/calendar-grid.logic.test.js.map +1 -0
- package/dist/collection/components/nv-calendar/test/partials/calendar-header.logic.test.js +208 -0
- package/dist/collection/components/nv-calendar/test/partials/calendar-header.logic.test.js.map +1 -0
- package/dist/collection/components/nv-calendar/test/partials/calendar-shortcuts.logic.test.js +355 -0
- package/dist/collection/components/nv-calendar/test/partials/calendar-shortcuts.logic.test.js.map +1 -0
- package/dist/collection/components/nv-calendar/test/partials/day-cell.logic.test.js +250 -0
- package/dist/collection/components/nv-calendar/test/partials/day-cell.logic.test.js.map +1 -0
- package/dist/collection/components/nv-calendar/test/partials/week-numbers.logic.test.js +217 -0
- package/dist/collection/components/nv-calendar/test/partials/week-numbers.logic.test.js.map +1 -0
- package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js +131 -48
- package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js.map +1 -1
- package/dist/collection/components/nv-datagrid/nv-datagrid.js +94 -152
- package/dist/collection/components/nv-datagrid/nv-datagrid.js.map +1 -1
- package/dist/collection/components/nv-datagridcolumn/nv-datagridcolumn.js +20 -1
- package/dist/collection/components/nv-datagridcolumn/nv-datagridcolumn.js.map +1 -1
- package/dist/collection/components/nv-fielddate/nv-fielddate.js +56 -16
- package/dist/collection/components/nv-fielddate/nv-fielddate.js.map +1 -1
- package/dist/collection/components/nv-fielddate/styles/nv-fielddate.css +51 -1
- package/dist/collection/components/nv-fielddate/test/nv-fielddate.logic.test.js +196 -0
- package/dist/collection/components/nv-fielddate/test/nv-fielddate.logic.test.js.map +1 -0
- package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js +165 -41
- package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js.map +1 -1
- package/dist/collection/components/nv-fielddaterange/styles/nv-fielddaterange.css +51 -1
- package/dist/collection/components/nv-fielddaterange/test/nv-fielddaterange.logic.test.js +137 -0
- package/dist/collection/components/nv-fielddaterange/test/nv-fielddaterange.logic.test.js.map +1 -0
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.docs.js +8 -0
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.docs.js.map +1 -1
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js +173 -106
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js.map +1 -1
- package/dist/collection/components/nv-fielddropdown/styles/nv-fielddropdown.css +77 -1
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js +202 -190
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js.map +1 -1
- package/dist/collection/components/nv-fieldmultiselect/{nv-fieldmultiselect.css → styles/nv-fieldmultiselect.css} +61 -4
- package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.css +51 -1
- package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.css +51 -1
- package/dist/collection/components/nv-fieldselect/nv-fieldselect.css +51 -1
- package/dist/collection/components/nv-fieldslider/nv-fieldslider.docs.js +264 -0
- package/dist/collection/components/nv-fieldslider/nv-fieldslider.docs.js.map +1 -0
- package/dist/collection/components/nv-fieldslider/nv-fieldslider.js +1036 -0
- package/dist/collection/components/nv-fieldslider/nv-fieldslider.js.map +1 -0
- package/dist/collection/components/nv-fieldslider/nv-fieldslider.utils.js +77 -0
- package/dist/collection/components/nv-fieldslider/nv-fieldslider.utils.js.map +1 -0
- package/dist/collection/components/nv-fieldslider/partials/field-input.js +33 -0
- package/dist/collection/components/nv-fieldslider/partials/field-input.js.map +1 -0
- package/dist/collection/components/nv-fieldslider/partials/range-thumb.js +34 -0
- package/dist/collection/components/nv-fieldslider/partials/range-thumb.js.map +1 -0
- package/dist/collection/components/nv-fieldslider/partials/single-thumb.js +18 -0
- package/dist/collection/components/nv-fieldslider/partials/single-thumb.js.map +1 -0
- package/dist/collection/components/nv-fieldslider/partials/tick-marks.js +18 -0
- package/dist/collection/components/nv-fieldslider/partials/tick-marks.js.map +1 -0
- package/dist/collection/components/nv-fieldslider/styles/nv-fieldslider.css +338 -0
- package/dist/collection/components/nv-fieldslider/test/nv-fieldslider.utils.test.js +159 -0
- package/dist/collection/components/nv-fieldslider/test/nv-fieldslider.utils.test.js.map +1 -0
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.css +59 -1
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.docs.js +9 -1
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.js +4 -3
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.js.map +1 -1
- package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.css +45 -1
- 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-fieldtime/styles/nv-fieldtime.css +51 -1
- package/dist/collection/components/nv-icon/nv-icon.js +1 -1
- package/dist/collection/components/nv-icon/nv-icons.js +1 -0
- package/dist/collection/components/nv-icon/nv-icons.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.js +1 -1
- package/dist/collection/components/nv-menuitem/nv-menuitem.js +2 -2
- 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.js +2 -2
- package/dist/collection/components/nv-toggle/nv-toggle.js +2 -2
- package/dist/collection/components/nv-tooltip/nv-tooltip.css +1 -0
- package/dist/collection/components/nv-tooltip/nv-tooltip.js +1 -1
- package/dist/collection/interfaces/Column.js.map +1 -1
- package/dist/components/index.js +2 -1
- package/dist/components/index.js.map +1 -1
- package/dist/components/nv-alert.js +2 -2
- package/dist/components/nv-avatar.js +2 -2
- 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 +97 -109
- package/dist/components/nv-datagrid.js.map +1 -1
- package/dist/components/nv-datagridcolumn.js +4 -3
- package/dist/components/nv-datagridcolumn.js.map +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 +53 -25
- package/dist/components/nv-fielddate.js.map +1 -1
- package/dist/components/nv-fielddaterange.js +137 -57
- package/dist/components/nv-fielddaterange.js.map +1 -1
- package/dist/components/nv-fielddropdown.js +98 -72
- 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 +132 -120
- package/dist/components/nv-fieldmultiselect.js.map +1 -1
- package/dist/components/nv-fieldnumber.js +5 -5
- package/dist/components/nv-fieldnumber.js.map +1 -1
- package/dist/components/nv-fieldpassword.js +5 -5
- package/dist/components/nv-fieldpassword.js.map +1 -1
- package/dist/components/nv-fieldradio.js +1 -1
- package/dist/components/nv-fieldselect.js +5 -5
- package/dist/components/nv-fieldselect.js.map +1 -1
- package/dist/components/nv-fieldslider.d.ts +11 -0
- package/dist/components/nv-fieldslider.js +731 -0
- package/dist/components/nv-fieldslider.js.map +1 -0
- package/dist/components/nv-fieldtext.js +1 -1
- package/dist/components/nv-fieldtextarea.js +5 -5
- package/dist/components/nv-fieldtextarea.js.map +1 -1
- package/dist/components/nv-fieldtime.js +15 -15
- package/dist/components/nv-fieldtime.js.map +1 -1
- package/dist/components/nv-icon.js +1 -1
- package/dist/components/nv-iconbutton.js +1 -1
- package/dist/components/nv-loader.js +1 -1
- package/dist/components/nv-menu.js +5 -5
- package/dist/components/nv-menuitem.js +1 -1
- package/dist/components/nv-popover.js +1 -1
- package/dist/components/nv-row.js +2 -2
- package/dist/components/nv-stack.js +2 -2
- package/dist/components/nv-table.js +3 -3
- package/dist/components/nv-tablecolumn.js +1 -1
- package/dist/components/nv-toggle.js +3 -3
- package/dist/components/nv-tooltip.js +1 -1
- package/dist/components/{p-eb632278.js → p-2ae214d2.js} +3 -3
- package/dist/components/{p-eb632278.js.map → p-2ae214d2.js.map} +1 -1
- package/dist/components/{p-f76bb0c3.js → p-3e32b5a1.js} +5 -5
- package/dist/components/p-3e32b5a1.js.map +1 -0
- package/dist/components/{p-854c32dc.js → p-5e90b9b8.js} +389 -199
- package/dist/components/p-5e90b9b8.js.map +1 -0
- package/dist/components/{p-a2527411.js → p-5ee4015d.js} +3 -3
- package/dist/components/{p-a2527411.js.map → p-5ee4015d.js.map} +1 -1
- package/dist/components/{p-02752770.js → p-6277f746.js} +2 -2
- package/dist/components/{p-02752770.js.map → p-6277f746.js.map} +1 -1
- package/dist/components/p-7935c1cb.js +167 -0
- package/dist/components/p-7935c1cb.js.map +1 -0
- package/dist/components/{p-b48d5a94.js → p-8d92f0e1.js} +4 -4
- package/dist/components/{p-b48d5a94.js.map → p-8d92f0e1.js.map} +1 -1
- package/dist/components/{p-41c56ddc.js → p-95a7581c.js} +5 -5
- package/dist/components/{p-41c56ddc.js.map → p-95a7581c.js.map} +1 -1
- package/dist/components/{p-e00cbb8a.js → p-9e6e26cb.js} +2 -2
- package/dist/components/{p-e00cbb8a.js.map → p-9e6e26cb.js.map} +1 -1
- package/dist/components/p-9fa0de38.js +88 -0
- package/dist/components/p-9fa0de38.js.map +1 -0
- package/dist/components/{p-1c45c0f2.js → p-aff3ed68.js} +24 -177
- package/dist/components/p-aff3ed68.js.map +1 -0
- package/dist/components/{p-608eb9da.js → p-b6d858b2.js} +2 -2
- package/dist/components/{p-608eb9da.js.map → p-b6d858b2.js.map} +1 -1
- package/dist/components/{p-f5cb0a63.js → p-bb6d1e4e.js} +3 -3
- package/dist/components/{p-f5cb0a63.js.map → p-bb6d1e4e.js.map} +1 -1
- package/dist/components/{p-35a70c5e.js → p-c07c32d2.js} +3 -3
- package/dist/components/{p-35a70c5e.js.map → p-c07c32d2.js.map} +1 -1
- package/dist/components/{p-10faa938.js → p-c9006520.js} +5 -5
- package/dist/components/{p-10faa938.js.map → p-c9006520.js.map} +1 -1
- package/dist/components/{p-0a0f6daf.js → p-e28c4707.js} +3 -3
- package/dist/components/{p-0a0f6daf.js.map → p-e28c4707.js.map} +1 -1
- package/dist/components/{p-10b37876.js → p-eabbc885.js} +3 -3
- package/dist/components/{p-10b37876.js.map → p-eabbc885.js.map} +1 -1
- package/dist/esm/{constants-b97e736d.js → constants-4faa1fae.js} +2 -2
- package/dist/esm/{constants-b97e736d.js.map → constants-4faa1fae.js.map} +1 -1
- package/dist/esm/{index-1fb7a9a6.js → index-a1936cd0.js} +35 -186
- package/dist/esm/index-a1936cd0.js.map +1 -0
- package/dist/esm/index.js +2 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/native.js +3 -24
- package/dist/esm/native.js.map +1 -1
- package/dist/esm/nv-alert.entry.js +2 -2
- package/dist/esm/nv-avatar.entry.js +2 -2
- 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 +2 -2
- package/dist/esm/nv-calendar.entry.js +385 -173
- 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 +96 -104
- package/dist/esm/nv-datagrid.entry.js.map +1 -1
- package/dist/esm/nv-datagridcolumn.entry.js +2 -2
- package/dist/esm/nv-datagridcolumn.entry.js.map +1 -1
- package/dist/esm/nv-dialog.entry.js +2 -2
- package/dist/esm/nv-dialogfooter_2.entry.js +2 -2
- package/dist/esm/nv-fieldcheckbox.entry.js +1 -1
- package/dist/esm/nv-fielddate.entry.js +45 -11
- package/dist/esm/nv-fielddate.entry.js.map +1 -1
- package/dist/esm/nv-fielddaterange.entry.js +128 -42
- package/dist/esm/nv-fielddaterange.entry.js.map +1 -1
- package/dist/esm/nv-fielddropdown.entry.js +84 -60
- 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 +116 -104
- package/dist/esm/nv-fieldmultiselect.entry.js.map +1 -1
- package/dist/esm/nv-fieldnumber.entry.js +2 -2
- package/dist/esm/nv-fieldnumber.entry.js.map +1 -1
- package/dist/esm/nv-fieldpassword.entry.js +2 -2
- package/dist/esm/nv-fieldpassword.entry.js.map +1 -1
- package/dist/esm/nv-fieldradio.entry.js +1 -1
- package/dist/esm/nv-fieldselect.entry.js +2 -2
- package/dist/esm/nv-fieldselect.entry.js.map +1 -1
- package/dist/esm/nv-fieldslider.entry.js +664 -0
- package/dist/esm/nv-fieldslider.entry.js.map +1 -0
- package/dist/esm/nv-fieldtext.entry.js +5 -5
- package/dist/esm/nv-fieldtext.entry.js.map +1 -1
- package/dist/esm/nv-fieldtextarea.entry.js +5 -5
- package/dist/esm/nv-fieldtextarea.entry.js.map +1 -1
- package/dist/esm/nv-fieldtime.entry.js +12 -12
- package/dist/esm/nv-fieldtime.entry.js.map +1 -1
- package/dist/esm/nv-icon.entry.js +4 -4
- package/dist/esm/nv-icon.entry.js.map +1 -1
- package/dist/esm/nv-iconbutton_2.entry.js +3 -3
- package/dist/esm/nv-menu.entry.js +2 -2
- package/dist/esm/nv-menuitem.entry.js +2 -2
- package/dist/esm/nv-popover.entry.js +2 -2
- package/dist/esm/nv-row.entry.js +2 -2
- package/dist/esm/nv-stack.entry.js +2 -2
- package/dist/esm/nv-table.entry.js +3 -3
- package/dist/esm/nv-tablecolumn.entry.js +1 -1
- package/dist/esm/nv-toggle.entry.js +3 -3
- package/dist/esm/nv-tooltip.entry.js +3 -3
- package/dist/esm/nv-tooltip.entry.js.map +1 -1
- package/dist/native/index.esm.js +1 -1
- package/dist/native/index.esm.js.map +1 -1
- package/dist/native/native.css +1 -1
- package/dist/native/native.esm.js +1 -1
- package/dist/native/native.esm.js.map +1 -1
- package/dist/native/p-050d6c6c.entry.js +2 -0
- package/dist/native/{p-4d164ed6.entry.js.map → p-050d6c6c.entry.js.map} +1 -1
- package/dist/native/{p-615947e7.entry.js → p-08ca678c.entry.js} +2 -2
- package/dist/native/p-1a5d3b87.entry.js +2 -0
- package/dist/native/{p-efe6a46c.entry.js.map → p-1a5d3b87.entry.js.map} +1 -1
- package/dist/native/{p-7fd4d13d.entry.js → p-1c1ecd38.entry.js} +2 -2
- package/dist/native/{p-c7b201cd.entry.js → p-1d98477d.entry.js} +2 -2
- package/dist/native/{p-1da72182.entry.js → p-2006f5d4.entry.js} +2 -2
- package/dist/native/p-26cf4938.entry.js +2 -0
- package/dist/native/p-26cf4938.entry.js.map +1 -0
- package/dist/native/p-3817efb2.entry.js +2 -0
- package/dist/native/{p-fc97f071.entry.js.map → p-3817efb2.entry.js.map} +1 -1
- package/dist/native/p-45459dbb.entry.js +2 -0
- package/dist/native/{p-7042ba8a.entry.js.map → p-45459dbb.entry.js.map} +1 -1
- package/dist/native/p-45cbe6e4.entry.js +2 -0
- package/dist/native/{p-9135fdf5.entry.js.map → p-45cbe6e4.entry.js.map} +1 -1
- package/dist/native/p-46428304.entry.js +2 -0
- package/dist/native/p-46428304.entry.js.map +1 -0
- package/dist/native/p-4f9cdf0b.entry.js +2 -0
- package/dist/native/{p-3b7ef609.entry.js → p-58bb90ad.entry.js} +2 -2
- package/dist/native/p-59b07b36.entry.js +2 -0
- package/dist/native/p-59b07b36.entry.js.map +1 -0
- package/dist/native/{p-3cd77d82.entry.js → p-5b6c59e0.entry.js} +2 -2
- package/dist/native/p-6029e51b.entry.js +2 -0
- package/dist/native/{p-244f56ac.entry.js.map → p-6029e51b.entry.js.map} +1 -1
- package/dist/native/{p-08a75cfa.entry.js → p-60c64f2b.entry.js} +2 -2
- package/dist/native/p-64a76565.entry.js +2 -0
- package/dist/native/p-64a76565.entry.js.map +1 -0
- package/dist/native/{p-c67186f8.entry.js → p-83288db0.entry.js} +2 -2
- package/dist/native/p-838f7842.entry.js +2 -0
- package/dist/native/p-838f7842.entry.js.map +1 -0
- package/dist/native/{p-0245863d.entry.js → p-86ab23ea.entry.js} +2 -2
- package/dist/native/p-87784622.entry.js +2 -0
- package/dist/native/p-8fb4e5c0.entry.js +2 -0
- package/dist/native/{p-b94d9f0b.entry.js.map → p-8fb4e5c0.entry.js.map} +1 -1
- package/dist/native/{p-14c07207.entry.js → p-914da1e1.entry.js} +2 -2
- package/dist/native/p-abbe5d69.entry.js +2 -0
- package/dist/native/p-abbe5d69.entry.js.map +1 -0
- package/dist/native/p-abc251aa.entry.js +2 -0
- package/dist/native/p-abc251aa.entry.js.map +1 -0
- package/dist/native/{p-c0f79bac.entry.js → p-ad128108.entry.js} +2 -2
- package/dist/native/{p-e5de64d5.entry.js → p-b5b9190a.entry.js} +2 -2
- package/dist/native/{p-470588c2.entry.js → p-b8f2c1e7.entry.js} +3 -3
- package/dist/native/p-b8f2c1e7.entry.js.map +1 -0
- package/dist/native/{p-b8b6875d.entry.js → p-d040bd61.entry.js} +2 -2
- package/dist/native/p-d0a33e64.js +3 -0
- package/dist/native/p-d0a33e64.js.map +1 -0
- package/dist/native/{p-3953464e.entry.js → p-d21b2da2.entry.js} +3 -3
- package/dist/native/{p-90e6d9dd.entry.js → p-d53e8795.entry.js} +2 -2
- package/dist/native/p-dc7dd7f3.entry.js +2 -0
- package/dist/native/{p-ae7ab110.entry.js.map → p-dc7dd7f3.entry.js.map} +1 -1
- package/dist/native/p-e2c1992e.entry.js +2 -0
- package/dist/native/{p-656c56f0.entry.js.map → p-e2c1992e.entry.js.map} +1 -1
- package/dist/native/{p-f85c08f1.js → p-e2d0a77d.js} +2 -2
- package/dist/native/p-ed6019fe.entry.js +2 -0
- package/dist/native/p-ed6019fe.entry.js.map +1 -0
- package/dist/native/p-f94d7054.entry.js +2 -0
- package/dist/native/{p-49cac014.entry.js.map → p-f94d7054.entry.js.map} +1 -1
- package/dist/native/p-fdea17ce.entry.js +2 -0
- package/dist/native/p-fdea17ce.entry.js.map +1 -0
- package/dist/types/components/nv-calendar/nv-calendar.d.ts +26 -50
- package/dist/types/components/nv-calendar/partials/calendar-actions.d.ts +19 -0
- package/dist/types/components/nv-calendar/partials/calendar-grid.d.ts +46 -0
- package/dist/types/components/nv-calendar/partials/calendar-header.d.ts +38 -0
- package/dist/types/components/nv-calendar/partials/calendar-shortcuts.d.ts +35 -0
- package/dist/types/components/nv-calendar/partials/day-cell.d.ts +35 -0
- package/dist/types/components/nv-calendar/partials/index.d.ts +6 -0
- package/dist/types/components/nv-calendar/partials/week-numbers.d.ts +30 -0
- package/dist/types/components/nv-calendar/test/partials/calendar-actions.logic.test.d.ts +1 -0
- package/dist/types/components/nv-calendar/test/partials/calendar-grid.logic.test.d.ts +1 -0
- package/dist/types/components/nv-calendar/test/partials/calendar-header.logic.test.d.ts +1 -0
- package/dist/types/components/nv-calendar/test/partials/calendar-shortcuts.logic.test.d.ts +1 -0
- package/dist/types/components/nv-calendar/test/partials/day-cell.logic.test.d.ts +1 -0
- package/dist/types/components/nv-calendar/test/partials/week-numbers.logic.test.d.ts +1 -0
- package/dist/types/components/nv-datagrid/nv-datagrid.d.ts +0 -16
- package/dist/types/components/nv-datagridcolumn/nv-datagridcolumn.d.ts +4 -0
- package/dist/types/components/nv-fielddate/nv-fielddate.d.ts +21 -9
- package/dist/types/components/nv-fielddate/test/nv-fielddate.logic.test.d.ts +1 -0
- package/dist/types/components/nv-fielddaterange/nv-fielddaterange.d.ts +24 -3
- package/dist/types/components/nv-fielddaterange/test/nv-fielddaterange.logic.test.d.ts +1 -0
- package/dist/types/components/nv-fielddropdown/nv-fielddropdown.d.ts +47 -26
- package/dist/types/components/nv-fieldmultiselect/nv-fieldmultiselect.d.ts +61 -55
- package/dist/types/components/nv-fieldslider/nv-fieldslider.d.ts +229 -0
- package/dist/types/components/nv-fieldslider/nv-fieldslider.docs.d.ts +4 -0
- package/dist/types/components/nv-fieldslider/nv-fieldslider.utils.d.ts +46 -0
- package/dist/types/components/nv-fieldslider/partials/field-input.d.ts +45 -0
- package/dist/types/components/nv-fieldslider/partials/range-thumb.d.ts +37 -0
- package/dist/types/components/nv-fieldslider/partials/single-thumb.d.ts +35 -0
- package/dist/types/components/nv-fieldslider/partials/tick-marks.d.ts +28 -0
- package/dist/types/components/nv-fieldslider/test/nv-fieldslider.utils.test.d.ts +1 -0
- package/dist/types/components/nv-fieldtext/nv-fieldtext.d.ts +1 -0
- package/dist/types/components/nv-icon/nv-icons.d.ts +1 -1
- package/dist/types/components.d.ts +402 -54
- package/dist/types/interfaces/Column.d.ts +5 -1
- package/dist/vscode-data.json +121 -9
- package/hydrate/index.js +1664 -584
- package/hydrate/index.mjs +1664 -584
- package/package.json +6 -2
- package/dist/cjs/index-9bda5507.js.map +0 -1
- package/dist/components/p-1c45c0f2.js.map +0 -1
- package/dist/components/p-76646ce9.js +0 -88
- package/dist/components/p-76646ce9.js.map +0 -1
- package/dist/components/p-854c32dc.js.map +0 -1
- package/dist/components/p-9decffb6.js +0 -167
- package/dist/components/p-9decffb6.js.map +0 -1
- package/dist/components/p-f76bb0c3.js.map +0 -1
- package/dist/esm/index-1fb7a9a6.js.map +0 -1
- package/dist/native/p-244f56ac.entry.js +0 -2
- package/dist/native/p-2523eead.entry.js +0 -2
- package/dist/native/p-2523eead.entry.js.map +0 -1
- package/dist/native/p-470588c2.entry.js.map +0 -1
- package/dist/native/p-49cac014.entry.js +0 -2
- package/dist/native/p-4d164ed6.entry.js +0 -2
- package/dist/native/p-4dc1d036.entry.js +0 -2
- package/dist/native/p-4e635fa7.entry.js +0 -2
- package/dist/native/p-4e635fa7.entry.js.map +0 -1
- package/dist/native/p-5d21532a.entry.js +0 -2
- package/dist/native/p-5d21532a.entry.js.map +0 -1
- package/dist/native/p-656c56f0.entry.js +0 -2
- package/dist/native/p-7042ba8a.entry.js +0 -2
- package/dist/native/p-7e154bfd.entry.js +0 -2
- package/dist/native/p-7e154bfd.entry.js.map +0 -1
- package/dist/native/p-7eba904e.entry.js +0 -2
- package/dist/native/p-7eba904e.entry.js.map +0 -1
- package/dist/native/p-9135fdf5.entry.js +0 -2
- package/dist/native/p-ab002252.js +0 -3
- package/dist/native/p-ab002252.js.map +0 -1
- package/dist/native/p-ae7ab110.entry.js +0 -2
- package/dist/native/p-b94d9f0b.entry.js +0 -2
- package/dist/native/p-c71c6f23.entry.js +0 -2
- package/dist/native/p-c71c6f23.entry.js.map +0 -1
- package/dist/native/p-d9a52884.entry.js +0 -2
- package/dist/native/p-d9a52884.entry.js.map +0 -1
- package/dist/native/p-efe6a46c.entry.js +0 -2
- package/dist/native/p-f2ef6771.entry.js +0 -2
- package/dist/native/p-f5f68992.entry.js +0 -2
- package/dist/native/p-f5f68992.entry.js.map +0 -1
- package/dist/native/p-fc97f071.entry.js +0 -2
- /package/dist/native/{p-615947e7.entry.js.map → p-08ca678c.entry.js.map} +0 -0
- /package/dist/native/{p-7fd4d13d.entry.js.map → p-1c1ecd38.entry.js.map} +0 -0
- /package/dist/native/{p-c7b201cd.entry.js.map → p-1d98477d.entry.js.map} +0 -0
- /package/dist/native/{p-1da72182.entry.js.map → p-2006f5d4.entry.js.map} +0 -0
- /package/dist/native/{p-f2ef6771.entry.js.map → p-4f9cdf0b.entry.js.map} +0 -0
- /package/dist/native/{p-3b7ef609.entry.js.map → p-58bb90ad.entry.js.map} +0 -0
- /package/dist/native/{p-3cd77d82.entry.js.map → p-5b6c59e0.entry.js.map} +0 -0
- /package/dist/native/{p-08a75cfa.entry.js.map → p-60c64f2b.entry.js.map} +0 -0
- /package/dist/native/{p-c67186f8.entry.js.map → p-83288db0.entry.js.map} +0 -0
- /package/dist/native/{p-0245863d.entry.js.map → p-86ab23ea.entry.js.map} +0 -0
- /package/dist/native/{p-4dc1d036.entry.js.map → p-87784622.entry.js.map} +0 -0
- /package/dist/native/{p-14c07207.entry.js.map → p-914da1e1.entry.js.map} +0 -0
- /package/dist/native/{p-c0f79bac.entry.js.map → p-ad128108.entry.js.map} +0 -0
- /package/dist/native/{p-e5de64d5.entry.js.map → p-b5b9190a.entry.js.map} +0 -0
- /package/dist/native/{p-b8b6875d.entry.js.map → p-d040bd61.entry.js.map} +0 -0
- /package/dist/native/{p-3953464e.entry.js.map → p-d21b2da2.entry.js.map} +0 -0
- /package/dist/native/{p-90e6d9dd.entry.js.map → p-d53e8795.entry.js.map} +0 -0
- /package/dist/native/{p-f85c08f1.js.map → p-e2d0a77d.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"day-cell.logic.test.js","sourceRoot":"","sources":["../../../../../src/components/nv-calendar/test/partials/day-cell.logic.test.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable jsdoc/require-jsdoc */\nimport { describe, it, expect, vi } from 'vitest';\n\n/**\n * Logic tests for the DayCell partial\n *\n * These tests validate business logic without directly testing JSX.\n * They focus on testable aspects: class generation,\n * conditional logic, and event handling.\n */\n\n/**\n * Utility function that replicates the class generation logic\n * of the DayCell partial to allow unit testing\n * @param {object} props - DayCell state configuration\n * @param {boolean} props.isSelected - If the day is selected\n * @param {boolean} props.isStart - If the day is the start of a range\n * @param {boolean} props.isEnd - If the day is the end of a range\n * @param {boolean} props.isInRange - If the day is in a selected range\n * @param {boolean} props.isDisabled - If the day is disabled\n * @param {boolean} props.isCurrentMonth - If the day belongs to the current month\n * @param {boolean} props.isToday - If the day is today\n * @returns {string} String containing generated CSS classes\n */\nfunction generateDayCellClasses(props: {\n isSelected: boolean;\n isStart: boolean;\n isEnd: boolean;\n isInRange: boolean;\n isDisabled: boolean;\n isCurrentMonth: boolean;\n isToday: boolean;\n}) {\n const {\n isSelected,\n isStart,\n isEnd,\n isInRange,\n isDisabled,\n isCurrentMonth,\n isToday,\n } = props;\n\n return [\n 'day',\n isSelected ? 'selected' : '',\n isStart ? 'range-start' : '',\n isEnd ? 'range-end' : '',\n isInRange ? 'in-range' : '',\n isDisabled ? 'disabled' : '',\n !isCurrentMonth ? 'outside-month' : '',\n isToday ? 'is-today' : '',\n ]\n .filter(Boolean)\n .join(' ');\n}\n\n/**\n * Utility function that replicates the click handling logic\n * of the DayCell partial\n * @param {boolean} isDisabled - If the day is disabled\n * @param {((date: Date) => void) | undefined} onClick - Callback function to call on click\n * @param {Date} date - Date to pass to the callback\n */\nfunction simulateHandleClick(\n isDisabled: boolean,\n onClick: ((date: Date) => void) | undefined,\n date: Date,\n) {\n if (!isDisabled && onClick) {\n onClick(date);\n }\n}\n\ndescribe('DayCell - Logic Tests', () => {\n describe('CSS Classes Generation Logic', () => {\n it('should generate basic day class', () => {\n const classes = generateDayCellClasses({\n isSelected: false,\n isStart: false,\n isEnd: false,\n isInRange: false,\n isDisabled: false,\n isCurrentMonth: true,\n isToday: false,\n });\n\n expect(classes).toBe('day');\n });\n\n it('should include selected class when isSelected is true', () => {\n const classes = generateDayCellClasses({\n isSelected: true,\n isStart: false,\n isEnd: false,\n isInRange: false,\n isDisabled: false,\n isCurrentMonth: true,\n isToday: false,\n });\n\n expect(classes).toContain('selected');\n expect(classes).toContain('day');\n });\n\n it('should include range classes for range selection', () => {\n const startClasses = generateDayCellClasses({\n isSelected: false,\n isStart: true,\n isEnd: false,\n isInRange: true,\n isDisabled: false,\n isCurrentMonth: true,\n isToday: false,\n });\n\n expect(startClasses).toContain('range-start');\n expect(startClasses).toContain('in-range');\n expect(startClasses).not.toContain('range-end');\n\n const endClasses = generateDayCellClasses({\n isSelected: false,\n isStart: false,\n isEnd: true,\n isInRange: true,\n isDisabled: false,\n isCurrentMonth: true,\n isToday: false,\n });\n\n expect(endClasses).toContain('range-end');\n expect(endClasses).toContain('in-range');\n expect(endClasses).not.toContain('range-start');\n });\n\n it('should include disabled class when isDisabled is true', () => {\n const classes = generateDayCellClasses({\n isSelected: false,\n isStart: false,\n isEnd: false,\n isInRange: false,\n isDisabled: true,\n isCurrentMonth: true,\n isToday: false,\n });\n\n expect(classes).toContain('disabled');\n });\n\n it('should include outside-month class when not current month', () => {\n const classes = generateDayCellClasses({\n isSelected: false,\n isStart: false,\n isEnd: false,\n isInRange: false,\n isDisabled: false,\n isCurrentMonth: false,\n isToday: false,\n });\n\n expect(classes).toContain('outside-month');\n });\n\n it('should include is-today class when isToday is true', () => {\n const classes = generateDayCellClasses({\n isSelected: false,\n isStart: false,\n isEnd: false,\n isInRange: false,\n isDisabled: false,\n isCurrentMonth: true,\n isToday: true,\n });\n\n expect(classes).toContain('is-today');\n });\n\n it('should combine multiple classes correctly', () => {\n const classes = generateDayCellClasses({\n isSelected: true,\n isStart: false,\n isEnd: false,\n isInRange: false,\n isDisabled: false,\n isCurrentMonth: true,\n isToday: true,\n });\n\n const classList = classes.split(' ');\n expect(classList).toContain('day');\n expect(classList).toContain('selected');\n expect(classList).toContain('is-today');\n expect(classList).not.toContain('disabled');\n expect(classList).not.toContain('outside-month');\n });\n\n it('should handle all states enabled simultaneously', () => {\n const classes = generateDayCellClasses({\n isSelected: true,\n isStart: true,\n isEnd: true,\n isInRange: true,\n isDisabled: true,\n isCurrentMonth: false,\n isToday: true,\n });\n\n const classList = classes.split(' ');\n expect(classList).toContain('day');\n expect(classList).toContain('selected');\n expect(classList).toContain('range-start');\n expect(classList).toContain('range-end');\n expect(classList).toContain('in-range');\n expect(classList).toContain('disabled');\n expect(classList).toContain('outside-month');\n expect(classList).toContain('is-today');\n });\n });\n\n describe('Click Handler Logic', () => {\n it('should call onClick when not disabled and onClick is provided', () => {\n const mockOnClick = vi.fn();\n const testDate = new Date('2024-01-15');\n\n simulateHandleClick(false, mockOnClick, testDate);\n\n expect(mockOnClick).toHaveBeenCalledWith(testDate);\n expect(mockOnClick).toHaveBeenCalledTimes(1);\n });\n\n it('should not call onClick when disabled', () => {\n const mockOnClick = vi.fn();\n const testDate = new Date('2024-01-15');\n\n simulateHandleClick(true, mockOnClick, testDate);\n\n expect(mockOnClick).not.toHaveBeenCalled();\n });\n\n it('should not call onClick when onClick is undefined', () => {\n const testDate = new Date('2024-01-15');\n\n // Should not throw error\n expect(() => {\n simulateHandleClick(false, undefined, testDate);\n }).not.toThrow();\n });\n\n it('should handle multiple clicks correctly', () => {\n const mockOnClick = vi.fn();\n const testDate = new Date('2024-01-15');\n\n simulateHandleClick(false, mockOnClick, testDate);\n simulateHandleClick(false, mockOnClick, testDate);\n simulateHandleClick(false, mockOnClick, testDate);\n\n expect(mockOnClick).toHaveBeenCalledTimes(3);\n expect(mockOnClick).toHaveBeenCalledWith(testDate);\n });\n });\n\n describe('Edge Cases and Validation', () => {\n it('should handle all boolean combinations without errors', () => {\n // Test all possible combinations of boolean flags\n const booleanCombinations = [\n [false, false, false, false, false, false, false],\n [true, false, false, false, false, false, false],\n [false, true, false, false, false, false, false],\n [false, false, true, false, false, false, false],\n [false, false, false, true, false, false, false],\n [false, false, false, false, true, false, false],\n [false, false, false, false, false, true, false],\n [false, false, false, false, false, false, true],\n [true, true, true, true, true, true, true],\n ];\n\n booleanCombinations.forEach(\n ([\n isSelected,\n isStart,\n isEnd,\n isInRange,\n isDisabled,\n isCurrentMonth,\n isToday,\n ]) => {\n expect(() => {\n generateDayCellClasses({\n isSelected,\n isStart,\n isEnd,\n isInRange,\n isDisabled,\n isCurrentMonth,\n isToday,\n });\n }).not.toThrow();\n },\n );\n });\n\n it('should always include base day class', () => {\n // Test with different combinations that the 'day' class is always present\n const testCases = [\n { isSelected: true, isToday: true, isDisabled: false },\n { isSelected: false, isToday: false, isDisabled: true },\n { isInRange: true, isStart: true, isCurrentMonth: false },\n ];\n\n testCases.forEach(testCase => {\n const classes = generateDayCellClasses({\n isSelected: false,\n isStart: false,\n isEnd: false,\n isInRange: false,\n isDisabled: false,\n isCurrentMonth: true,\n isToday: false,\n ...testCase,\n });\n\n expect(classes).toContain('day');\n });\n });\n });\n});\n"]}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
/* eslint-disable jsdoc/require-jsdoc */
|
|
2
|
+
import { describe, it, expect } from "vitest";
|
|
3
|
+
/**
|
|
4
|
+
* Logic tests for the WeekNumbers partial
|
|
5
|
+
*
|
|
6
|
+
* These tests validate the week numbers logic:
|
|
7
|
+
* - ISO 8601 week number calculation
|
|
8
|
+
* - Year transition handling
|
|
9
|
+
* - Consistency with calendar grid
|
|
10
|
+
*/
|
|
11
|
+
function getWeekNumber(date) {
|
|
12
|
+
// Create a copy of the date to avoid modifying the original
|
|
13
|
+
const d = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));
|
|
14
|
+
// Adjust to the same week Thursday (ISO 8601)
|
|
15
|
+
d.setUTCDate(d.getUTCDate() + 3 - ((d.getUTCDay() + 6) % 7));
|
|
16
|
+
// Calculate the first Thursday of the year
|
|
17
|
+
const week1 = new Date(Date.UTC(d.getUTCFullYear(), 0, 4));
|
|
18
|
+
// Calculate the week number
|
|
19
|
+
return (1 +
|
|
20
|
+
Math.round(((d.getTime() - week1.getTime()) / 86400000 -
|
|
21
|
+
3 +
|
|
22
|
+
((week1.getUTCDay() + 6) % 7)) /
|
|
23
|
+
7));
|
|
24
|
+
}
|
|
25
|
+
function generateWeekNumbers(year, month) {
|
|
26
|
+
const firstDay = new Date(year, month, 1);
|
|
27
|
+
const weekNumbers = [];
|
|
28
|
+
// Calculate the first displayed day (may be from previous month)
|
|
29
|
+
const startDate = new Date(firstDay);
|
|
30
|
+
const dayOfWeek = firstDay.getDay();
|
|
31
|
+
const daysToSubtract = dayOfWeek === 0 ? 6 : dayOfWeek - 1;
|
|
32
|
+
startDate.setDate(startDate.getDate() - daysToSubtract);
|
|
33
|
+
// Generate 6 weeks of numbers
|
|
34
|
+
for (let week = 0; week < 6; week++) {
|
|
35
|
+
const weekDate = new Date(startDate);
|
|
36
|
+
weekDate.setDate(startDate.getDate() + week * 7);
|
|
37
|
+
weekNumbers.push(getWeekNumber(weekDate));
|
|
38
|
+
}
|
|
39
|
+
return weekNumbers;
|
|
40
|
+
}
|
|
41
|
+
function isValidWeekNumber(weekNumber) {
|
|
42
|
+
return weekNumber >= 1 && weekNumber <= 53;
|
|
43
|
+
}
|
|
44
|
+
function getWeekYear(date) {
|
|
45
|
+
const d = new Date(date);
|
|
46
|
+
d.setDate(d.getDate() + 3 - ((d.getDay() + 6) % 7));
|
|
47
|
+
return d.getFullYear();
|
|
48
|
+
}
|
|
49
|
+
function shouldShowWeekNumbers(showWeekNumbers) {
|
|
50
|
+
return showWeekNumbers;
|
|
51
|
+
}
|
|
52
|
+
describe('WeekNumbers - Logic Tests', () => {
|
|
53
|
+
describe('ISO 8601 Week Number Calculation', () => {
|
|
54
|
+
it('should calculate correct week numbers for known dates', () => {
|
|
55
|
+
// January 1, 2024 (Monday) = week 1
|
|
56
|
+
expect(getWeekNumber(new Date(2024, 0, 1))).toBe(1);
|
|
57
|
+
// January 1, 2023 (Sunday) = week 52 of 2022
|
|
58
|
+
expect(getWeekNumber(new Date(2023, 0, 1))).toBe(52);
|
|
59
|
+
// January 1, 2022 (Saturday) = week 52 of 2021
|
|
60
|
+
expect(getWeekNumber(new Date(2022, 0, 1))).toBe(52);
|
|
61
|
+
// Mid-year - June 15, 2024 est dans la semaine 24 selon ISO 8601
|
|
62
|
+
expect(getWeekNumber(new Date(2024, 5, 15))).toBe(24);
|
|
63
|
+
});
|
|
64
|
+
it('should handle year transitions correctly', () => {
|
|
65
|
+
// December 31, 2023 (Sunday) = week 52
|
|
66
|
+
expect(getWeekNumber(new Date(2023, 11, 31))).toBe(52);
|
|
67
|
+
// January 1, 2024 (Monday) = week 1
|
|
68
|
+
expect(getWeekNumber(new Date(2024, 0, 1))).toBe(1);
|
|
69
|
+
// January 2, 2024 (Tuesday) = week 1
|
|
70
|
+
expect(getWeekNumber(new Date(2024, 0, 2))).toBe(1);
|
|
71
|
+
});
|
|
72
|
+
it('should handle leap years correctly', () => {
|
|
73
|
+
// Leap year 2024
|
|
74
|
+
expect(getWeekNumber(new Date(2024, 1, 29))).toBe(9); // February 29, 2024
|
|
75
|
+
// Non-leap year 2023
|
|
76
|
+
expect(getWeekNumber(new Date(2023, 1, 28))).toBe(9); // February 28, 2023
|
|
77
|
+
});
|
|
78
|
+
it('should calculate week year correctly', () => {
|
|
79
|
+
// January 1, 2023 belongs to week 52 of 2022
|
|
80
|
+
expect(getWeekYear(new Date(2023, 0, 1))).toBe(2022);
|
|
81
|
+
// January 1, 2024 belongs to week 1 of 2024
|
|
82
|
+
expect(getWeekYear(new Date(2024, 0, 1))).toBe(2024);
|
|
83
|
+
// December 30, 2024 (Monday) belongs to week 1 of 2025
|
|
84
|
+
expect(getWeekYear(new Date(2024, 11, 30))).toBe(2025);
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
describe('Week Numbers Generation for Calendar', () => {
|
|
88
|
+
it('should generate 6 week numbers for any month', () => {
|
|
89
|
+
const weekNumbers = generateWeekNumbers(2024, 5); // June 2024
|
|
90
|
+
expect(weekNumbers.length).toBe(6);
|
|
91
|
+
});
|
|
92
|
+
it('should generate valid week numbers', () => {
|
|
93
|
+
const weekNumbers = generateWeekNumbers(2024, 5);
|
|
94
|
+
weekNumbers.forEach(weekNum => {
|
|
95
|
+
expect(isValidWeekNumber(weekNum)).toBe(true);
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
it('should handle month with different starting days', () => {
|
|
99
|
+
// January 2024 starts on a Monday
|
|
100
|
+
const januaryWeeks = generateWeekNumbers(2024, 0);
|
|
101
|
+
expect(januaryWeeks[0]).toBe(1);
|
|
102
|
+
// February 2024 starts on a Thursday
|
|
103
|
+
const februaryWeeks = generateWeekNumbers(2024, 1);
|
|
104
|
+
expect(februaryWeeks[0]).toBe(5);
|
|
105
|
+
// March 2024 starts on a Friday
|
|
106
|
+
const marchWeeks = generateWeekNumbers(2024, 2);
|
|
107
|
+
expect(marchWeeks[0]).toBe(9);
|
|
108
|
+
});
|
|
109
|
+
it('should handle year boundaries in week generation', () => {
|
|
110
|
+
// December 2024
|
|
111
|
+
const decemberWeeks = generateWeekNumbers(2024, 11);
|
|
112
|
+
expect(decemberWeeks.length).toBe(6);
|
|
113
|
+
// January 2025
|
|
114
|
+
const januaryWeeks = generateWeekNumbers(2025, 0);
|
|
115
|
+
expect(januaryWeeks.length).toBe(6);
|
|
116
|
+
});
|
|
117
|
+
it('should generate consecutive week numbers within month', () => {
|
|
118
|
+
const weekNumbers = generateWeekNumbers(2024, 5); // June 2024
|
|
119
|
+
for (let i = 1; i < weekNumbers.length; i++) {
|
|
120
|
+
const currentWeek = weekNumbers[i];
|
|
121
|
+
const previousWeek = weekNumbers[i - 1];
|
|
122
|
+
// Week numbers must be consecutive or handle year transition
|
|
123
|
+
const isConsecutive = currentWeek === previousWeek + 1;
|
|
124
|
+
const isYearTransition = previousWeek >= 52 && currentWeek === 1; // Transition to new year
|
|
125
|
+
expect(isConsecutive || isYearTransition).toBe(true);
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
describe('Week Number Validation', () => {
|
|
130
|
+
it('should validate correct week number range', () => {
|
|
131
|
+
expect(isValidWeekNumber(1)).toBe(true);
|
|
132
|
+
expect(isValidWeekNumber(26)).toBe(true);
|
|
133
|
+
expect(isValidWeekNumber(52)).toBe(true);
|
|
134
|
+
expect(isValidWeekNumber(53)).toBe(true);
|
|
135
|
+
});
|
|
136
|
+
it('should reject invalid week numbers', () => {
|
|
137
|
+
expect(isValidWeekNumber(0)).toBe(false);
|
|
138
|
+
expect(isValidWeekNumber(-1)).toBe(false);
|
|
139
|
+
expect(isValidWeekNumber(54)).toBe(false);
|
|
140
|
+
expect(isValidWeekNumber(100)).toBe(false);
|
|
141
|
+
});
|
|
142
|
+
});
|
|
143
|
+
describe('Visibility Logic', () => {
|
|
144
|
+
it('should show week numbers when enabled', () => {
|
|
145
|
+
expect(shouldShowWeekNumbers(true)).toBe(true);
|
|
146
|
+
});
|
|
147
|
+
it('should hide week numbers when disabled', () => {
|
|
148
|
+
expect(shouldShowWeekNumbers(false)).toBe(false);
|
|
149
|
+
});
|
|
150
|
+
});
|
|
151
|
+
describe('Edge Cases and Special Scenarios', () => {
|
|
152
|
+
it('should handle week 53 years correctly', () => {
|
|
153
|
+
// 2020 had 53 weeks
|
|
154
|
+
const week53Date = new Date(2020, 11, 28); // December 28, 2020
|
|
155
|
+
expect(getWeekNumber(week53Date)).toBe(53);
|
|
156
|
+
// 2021 started with week 53 of 2020
|
|
157
|
+
const jan1_2021 = new Date(2021, 0, 1); // January 1, 2021
|
|
158
|
+
expect(getWeekNumber(jan1_2021)).toBe(53);
|
|
159
|
+
expect(getWeekYear(jan1_2021)).toBe(2020);
|
|
160
|
+
});
|
|
161
|
+
it('should handle February in leap and non-leap years', () => {
|
|
162
|
+
// February 2024 (leap year)
|
|
163
|
+
const leapFebWeeks = generateWeekNumbers(2024, 1);
|
|
164
|
+
expect(leapFebWeeks.length).toBe(6);
|
|
165
|
+
// February 2023 (normal year)
|
|
166
|
+
const normalFebWeeks = generateWeekNumbers(2023, 1);
|
|
167
|
+
expect(normalFebWeeks.length).toBe(6);
|
|
168
|
+
});
|
|
169
|
+
it('should handle different calendar systems edge cases', () => {
|
|
170
|
+
// Test with dates near week boundaries
|
|
171
|
+
const sundayDate = new Date(2024, 5, 16); // Sunday
|
|
172
|
+
const mondayDate = new Date(2024, 5, 17); // Monday
|
|
173
|
+
const sundayWeek = getWeekNumber(sundayDate);
|
|
174
|
+
const mondayWeek = getWeekNumber(mondayDate);
|
|
175
|
+
expect(mondayWeek).toBe(sundayWeek + 1);
|
|
176
|
+
});
|
|
177
|
+
it('should maintain consistency across month boundaries', () => {
|
|
178
|
+
// End of May / beginning of June 2024
|
|
179
|
+
const endMayWeeks = generateWeekNumbers(2024, 4); // May
|
|
180
|
+
const startJuneWeeks = generateWeekNumbers(2024, 5); // June
|
|
181
|
+
// Last week of May should be consistent with June
|
|
182
|
+
const lastMayWeek = endMayWeeks[endMayWeeks.length - 1];
|
|
183
|
+
const firstJuneWeek = startJuneWeeks[0];
|
|
184
|
+
// Not necessarily equal, but within logical range
|
|
185
|
+
expect(Math.abs(lastMayWeek - firstJuneWeek)).toBeLessThanOrEqual(6);
|
|
186
|
+
});
|
|
187
|
+
});
|
|
188
|
+
describe('Integration with Calendar Grid', () => {
|
|
189
|
+
it('should generate week numbers that align with 6-week calendar grid', () => {
|
|
190
|
+
const months = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
|
|
191
|
+
months.forEach(month => {
|
|
192
|
+
const weekNumbers = generateWeekNumbers(2024, month);
|
|
193
|
+
expect(weekNumbers.length).toBe(6);
|
|
194
|
+
weekNumbers.forEach(weekNum => {
|
|
195
|
+
expect(isValidWeekNumber(weekNum)).toBe(true);
|
|
196
|
+
});
|
|
197
|
+
});
|
|
198
|
+
});
|
|
199
|
+
it('should handle special calendar scenarios', () => {
|
|
200
|
+
// Months where the first week is incomplete
|
|
201
|
+
const specialMonths = [
|
|
202
|
+
{ year: 2024, month: 0 }, // January 2024
|
|
203
|
+
{ year: 2024, month: 8 }, // September 2024
|
|
204
|
+
{ year: 2023, month: 0 }, // January 2023
|
|
205
|
+
];
|
|
206
|
+
specialMonths.forEach(({ year, month }) => {
|
|
207
|
+
const weekNumbers = generateWeekNumbers(year, month);
|
|
208
|
+
expect(weekNumbers.length).toBe(6);
|
|
209
|
+
// All numbers must be valid
|
|
210
|
+
weekNumbers.forEach(weekNum => {
|
|
211
|
+
expect(isValidWeekNumber(weekNum)).toBe(true);
|
|
212
|
+
});
|
|
213
|
+
});
|
|
214
|
+
});
|
|
215
|
+
});
|
|
216
|
+
});
|
|
217
|
+
//# sourceMappingURL=week-numbers.logic.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"week-numbers.logic.test.js","sourceRoot":"","sources":["../../../../../src/components/nv-calendar/test/partials/week-numbers.logic.test.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable jsdoc/require-jsdoc */\nimport { describe, it, expect } from 'vitest';\n\n/**\n * Logic tests for the WeekNumbers partial\n *\n * These tests validate the week numbers logic:\n * - ISO 8601 week number calculation\n * - Year transition handling\n * - Consistency with calendar grid\n */\n\nfunction getWeekNumber(date: Date): number {\n // Create a copy of the date to avoid modifying the original\n const d = new Date(\n Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()),\n );\n\n // Adjust to the same week Thursday (ISO 8601)\n d.setUTCDate(d.getUTCDate() + 3 - ((d.getUTCDay() + 6) % 7));\n\n // Calculate the first Thursday of the year\n const week1 = new Date(Date.UTC(d.getUTCFullYear(), 0, 4));\n\n // Calculate the week number\n return (\n 1 +\n Math.round(\n ((d.getTime() - week1.getTime()) / 86400000 -\n 3 +\n ((week1.getUTCDay() + 6) % 7)) /\n 7,\n )\n );\n}\n\nfunction generateWeekNumbers(year: number, month: number): number[] {\n const firstDay = new Date(year, month, 1);\n const weekNumbers: number[] = [];\n\n // Calculate the first displayed day (may be from previous month)\n const startDate = new Date(firstDay);\n const dayOfWeek = firstDay.getDay();\n const daysToSubtract = dayOfWeek === 0 ? 6 : dayOfWeek - 1;\n startDate.setDate(startDate.getDate() - daysToSubtract);\n\n // Generate 6 weeks of numbers\n for (let week = 0; week < 6; week++) {\n const weekDate = new Date(startDate);\n weekDate.setDate(startDate.getDate() + week * 7);\n weekNumbers.push(getWeekNumber(weekDate));\n }\n\n return weekNumbers;\n}\n\nfunction isValidWeekNumber(weekNumber: number): boolean {\n return weekNumber >= 1 && weekNumber <= 53;\n}\n\nfunction getWeekYear(date: Date): number {\n const d = new Date(date);\n d.setDate(d.getDate() + 3 - ((d.getDay() + 6) % 7));\n return d.getFullYear();\n}\n\nfunction shouldShowWeekNumbers(showWeekNumbers: boolean): boolean {\n return showWeekNumbers;\n}\n\ndescribe('WeekNumbers - Logic Tests', () => {\n describe('ISO 8601 Week Number Calculation', () => {\n it('should calculate correct week numbers for known dates', () => {\n // January 1, 2024 (Monday) = week 1\n expect(getWeekNumber(new Date(2024, 0, 1))).toBe(1);\n\n // January 1, 2023 (Sunday) = week 52 of 2022\n expect(getWeekNumber(new Date(2023, 0, 1))).toBe(52);\n\n // January 1, 2022 (Saturday) = week 52 of 2021\n expect(getWeekNumber(new Date(2022, 0, 1))).toBe(52);\n\n // Mid-year - June 15, 2024 est dans la semaine 24 selon ISO 8601\n expect(getWeekNumber(new Date(2024, 5, 15))).toBe(24);\n });\n\n it('should handle year transitions correctly', () => {\n // December 31, 2023 (Sunday) = week 52\n expect(getWeekNumber(new Date(2023, 11, 31))).toBe(52);\n\n // January 1, 2024 (Monday) = week 1\n expect(getWeekNumber(new Date(2024, 0, 1))).toBe(1);\n\n // January 2, 2024 (Tuesday) = week 1\n expect(getWeekNumber(new Date(2024, 0, 2))).toBe(1);\n });\n\n it('should handle leap years correctly', () => {\n // Leap year 2024\n expect(getWeekNumber(new Date(2024, 1, 29))).toBe(9); // February 29, 2024\n\n // Non-leap year 2023\n expect(getWeekNumber(new Date(2023, 1, 28))).toBe(9); // February 28, 2023\n });\n\n it('should calculate week year correctly', () => {\n // January 1, 2023 belongs to week 52 of 2022\n expect(getWeekYear(new Date(2023, 0, 1))).toBe(2022);\n\n // January 1, 2024 belongs to week 1 of 2024\n expect(getWeekYear(new Date(2024, 0, 1))).toBe(2024);\n\n // December 30, 2024 (Monday) belongs to week 1 of 2025\n expect(getWeekYear(new Date(2024, 11, 30))).toBe(2025);\n });\n });\n\n describe('Week Numbers Generation for Calendar', () => {\n it('should generate 6 week numbers for any month', () => {\n const weekNumbers = generateWeekNumbers(2024, 5); // June 2024\n expect(weekNumbers.length).toBe(6);\n });\n\n it('should generate valid week numbers', () => {\n const weekNumbers = generateWeekNumbers(2024, 5);\n weekNumbers.forEach(weekNum => {\n expect(isValidWeekNumber(weekNum)).toBe(true);\n });\n });\n\n it('should handle month with different starting days', () => {\n // January 2024 starts on a Monday\n const januaryWeeks = generateWeekNumbers(2024, 0);\n expect(januaryWeeks[0]).toBe(1);\n\n // February 2024 starts on a Thursday\n const februaryWeeks = generateWeekNumbers(2024, 1);\n expect(februaryWeeks[0]).toBe(5);\n\n // March 2024 starts on a Friday\n const marchWeeks = generateWeekNumbers(2024, 2);\n expect(marchWeeks[0]).toBe(9);\n });\n\n it('should handle year boundaries in week generation', () => {\n // December 2024\n const decemberWeeks = generateWeekNumbers(2024, 11);\n expect(decemberWeeks.length).toBe(6);\n\n // January 2025\n const januaryWeeks = generateWeekNumbers(2025, 0);\n expect(januaryWeeks.length).toBe(6);\n });\n\n it('should generate consecutive week numbers within month', () => {\n const weekNumbers = generateWeekNumbers(2024, 5); // June 2024\n\n for (let i = 1; i < weekNumbers.length; i++) {\n const currentWeek = weekNumbers[i];\n const previousWeek = weekNumbers[i - 1];\n\n // Week numbers must be consecutive or handle year transition\n const isConsecutive = currentWeek === previousWeek + 1;\n const isYearTransition = previousWeek >= 52 && currentWeek === 1; // Transition to new year\n\n expect(isConsecutive || isYearTransition).toBe(true);\n }\n });\n });\n\n describe('Week Number Validation', () => {\n it('should validate correct week number range', () => {\n expect(isValidWeekNumber(1)).toBe(true);\n expect(isValidWeekNumber(26)).toBe(true);\n expect(isValidWeekNumber(52)).toBe(true);\n expect(isValidWeekNumber(53)).toBe(true);\n });\n\n it('should reject invalid week numbers', () => {\n expect(isValidWeekNumber(0)).toBe(false);\n expect(isValidWeekNumber(-1)).toBe(false);\n expect(isValidWeekNumber(54)).toBe(false);\n expect(isValidWeekNumber(100)).toBe(false);\n });\n });\n\n describe('Visibility Logic', () => {\n it('should show week numbers when enabled', () => {\n expect(shouldShowWeekNumbers(true)).toBe(true);\n });\n\n it('should hide week numbers when disabled', () => {\n expect(shouldShowWeekNumbers(false)).toBe(false);\n });\n });\n\n describe('Edge Cases and Special Scenarios', () => {\n it('should handle week 53 years correctly', () => {\n // 2020 had 53 weeks\n const week53Date = new Date(2020, 11, 28); // December 28, 2020\n expect(getWeekNumber(week53Date)).toBe(53);\n\n // 2021 started with week 53 of 2020\n const jan1_2021 = new Date(2021, 0, 1); // January 1, 2021\n expect(getWeekNumber(jan1_2021)).toBe(53);\n expect(getWeekYear(jan1_2021)).toBe(2020);\n });\n\n it('should handle February in leap and non-leap years', () => {\n // February 2024 (leap year)\n const leapFebWeeks = generateWeekNumbers(2024, 1);\n expect(leapFebWeeks.length).toBe(6);\n\n // February 2023 (normal year)\n const normalFebWeeks = generateWeekNumbers(2023, 1);\n expect(normalFebWeeks.length).toBe(6);\n });\n\n it('should handle different calendar systems edge cases', () => {\n // Test with dates near week boundaries\n const sundayDate = new Date(2024, 5, 16); // Sunday\n const mondayDate = new Date(2024, 5, 17); // Monday\n\n const sundayWeek = getWeekNumber(sundayDate);\n const mondayWeek = getWeekNumber(mondayDate);\n\n expect(mondayWeek).toBe(sundayWeek + 1);\n });\n\n it('should maintain consistency across month boundaries', () => {\n // End of May / beginning of June 2024\n const endMayWeeks = generateWeekNumbers(2024, 4); // May\n const startJuneWeeks = generateWeekNumbers(2024, 5); // June\n\n // Last week of May should be consistent with June\n const lastMayWeek = endMayWeeks[endMayWeeks.length - 1];\n const firstJuneWeek = startJuneWeeks[0];\n\n // Not necessarily equal, but within logical range\n expect(Math.abs(lastMayWeek - firstJuneWeek)).toBeLessThanOrEqual(6);\n });\n });\n\n describe('Integration with Calendar Grid', () => {\n it('should generate week numbers that align with 6-week calendar grid', () => {\n const months = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n\n months.forEach(month => {\n const weekNumbers = generateWeekNumbers(2024, month);\n expect(weekNumbers.length).toBe(6);\n\n weekNumbers.forEach(weekNum => {\n expect(isValidWeekNumber(weekNum)).toBe(true);\n });\n });\n });\n\n it('should handle special calendar scenarios', () => {\n // Months where the first week is incomplete\n const specialMonths = [\n { year: 2024, month: 0 }, // January 2024\n { year: 2024, month: 8 }, // September 2024\n { year: 2023, month: 0 }, // January 2023\n ];\n\n specialMonths.forEach(({ year, month }) => {\n const weekNumbers = generateWeekNumbers(year, month);\n expect(weekNumbers.length).toBe(6);\n\n // All numbers must be valid\n weekNumbers.forEach(weekNum => {\n expect(isValidWeekNumber(weekNum)).toBe(true);\n });\n });\n });\n });\n});\n"]}
|
|
@@ -22,18 +22,9 @@ const NvDatagridDocs = {
|
|
|
22
22
|
args: {
|
|
23
23
|
noDataMessage: 'No element available to display.',
|
|
24
24
|
columns: [
|
|
25
|
-
{
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
header: 'Age',
|
|
31
|
-
accessor: 'age',
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
header: 'Email',
|
|
35
|
-
accessor: 'email',
|
|
36
|
-
},
|
|
25
|
+
{ header: 'Name', accessor: 'name' },
|
|
26
|
+
{ header: 'Age', accessor: 'age' },
|
|
27
|
+
{ header: 'Email', accessor: 'email' },
|
|
37
28
|
],
|
|
38
29
|
},
|
|
39
30
|
template: h("nv-datagrid", { "data-storybook-args": true }),
|
|
@@ -50,13 +41,18 @@ const NvDatagridDocs = {
|
|
|
50
41
|
template: h("nv-datagrid", { "data-storybook-args": true }),
|
|
51
42
|
},
|
|
52
43
|
{
|
|
53
|
-
name:
|
|
44
|
+
name: 'ColumnGroup',
|
|
54
45
|
args: {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
46
|
+
columns: [
|
|
47
|
+
{ header: 'FirstName', accessor: 'firstName', group: 'Name' },
|
|
48
|
+
{ header: 'LastName', accessor: 'lastName', group: 'Name' },
|
|
49
|
+
{ header: 'Age', accessor: 'age' },
|
|
50
|
+
{ header: 'Email', accessor: 'email' },
|
|
51
|
+
{ header: 'Street', accessor: 'street', group: 'Address' },
|
|
52
|
+
{ header: 'StreetNr', accessor: 'streetNr', group: 'Address' },
|
|
53
|
+
{ header: 'ZipCode', accessor: 'zipCode', group: 'Address' },
|
|
54
|
+
{ header: 'City', accessor: 'city', group: 'Address' },
|
|
55
|
+
],
|
|
60
56
|
},
|
|
61
57
|
template: h("nv-datagrid", { "data-storybook-args": true }),
|
|
62
58
|
},
|
|
@@ -70,16 +66,6 @@ const NvDatagridDocs = {
|
|
|
70
66
|
},
|
|
71
67
|
template: h("nv-datagrid", { "data-storybook-args": true }),
|
|
72
68
|
},
|
|
73
|
-
{
|
|
74
|
-
name: nameof(x => x.dataJson),
|
|
75
|
-
args: {
|
|
76
|
-
dataJson: `[
|
|
77
|
-
{ "name": "Alice", "age": "25", "email": "alice@mail.com" },
|
|
78
|
-
{ "name": "Bob", "age": "30", "email": "bob@mail.com" }
|
|
79
|
-
]`,
|
|
80
|
-
},
|
|
81
|
-
template: h("nv-datagrid", { "data-storybook-args": true }),
|
|
82
|
-
},
|
|
83
69
|
{
|
|
84
70
|
name: nameof(x => x.autoGenerateColumns),
|
|
85
71
|
args: {
|
|
@@ -100,7 +86,7 @@ const NvDatagridDocs = {
|
|
|
100
86
|
template: h("nv-datagrid", { "data-storybook-args": true }),
|
|
101
87
|
},
|
|
102
88
|
{
|
|
103
|
-
name: '
|
|
89
|
+
name: 'ColumnsAndData',
|
|
104
90
|
args: {
|
|
105
91
|
columns: [
|
|
106
92
|
{ header: 'Name', accessor: 'name' },
|
|
@@ -115,17 +101,40 @@ const NvDatagridDocs = {
|
|
|
115
101
|
template: h("nv-datagrid", { "data-storybook-args": true }),
|
|
116
102
|
},
|
|
117
103
|
{
|
|
118
|
-
name: '
|
|
104
|
+
name: 'ColumnGroupAndData',
|
|
119
105
|
args: {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
106
|
+
columns: [
|
|
107
|
+
{ header: 'FirstName', accessor: 'firstName', group: 'Name' },
|
|
108
|
+
{ header: 'LastName', accessor: 'lastName', group: 'Name' },
|
|
109
|
+
{ header: 'Age', accessor: 'age' },
|
|
110
|
+
{ header: 'Email', accessor: 'email' },
|
|
111
|
+
{ header: 'Street', accessor: 'street', group: 'Address' },
|
|
112
|
+
{ header: 'StreetNr', accessor: 'streetNr', group: 'Address' },
|
|
113
|
+
{ header: 'ZipCode', accessor: 'zipCode', group: 'Address' },
|
|
114
|
+
{ header: 'City', accessor: 'city', group: 'Address' },
|
|
115
|
+
],
|
|
116
|
+
data: [
|
|
117
|
+
{
|
|
118
|
+
firstName: 'Alice',
|
|
119
|
+
lastName: 'Dupont',
|
|
120
|
+
age: '25',
|
|
121
|
+
email: 'alice@mail.com',
|
|
122
|
+
street: 'SomeStreet',
|
|
123
|
+
streetNr: '1',
|
|
124
|
+
zipCode: '1000',
|
|
125
|
+
city: 'Bruxelles',
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
firstName: 'Bob',
|
|
129
|
+
lastName: 'Debouwer',
|
|
130
|
+
age: '30',
|
|
131
|
+
email: 'bob@mail.com',
|
|
132
|
+
street: 'AnyStreet',
|
|
133
|
+
streetNr: '203',
|
|
134
|
+
zipCode: '1000',
|
|
135
|
+
city: 'Bruxelles',
|
|
136
|
+
},
|
|
137
|
+
],
|
|
129
138
|
},
|
|
130
139
|
template: h("nv-datagrid", { "data-storybook-args": true }),
|
|
131
140
|
},
|
|
@@ -139,6 +148,36 @@ const NvDatagridDocs = {
|
|
|
139
148
|
},
|
|
140
149
|
template: (h("nv-datagrid", { "data-storybook-args": true }, h("nv-datagridcolumn", { accessor: "name", header: "Name" }, h("div", { slot: "header" }, h("strong", null, "Name")), h("div", { slot: "cell" }, h("strong", null, "__name__"))), h("nv-datagridcolumn", { accessor: "age", header: "Age" }, h("div", { slot: "header" }, h("em", null, "Age")), h("div", { slot: "cell" }, h("span", null, "__age__ years old"))), h("nv-datagridcolumn", { accessor: "email", header: "Mail Address" }, h("div", { slot: "cell" }, h("a", { href: "mailto:__email__" }, "__email__"))), h("nv-datagridcolumn", { accessor: "actions" }, h("div", { slot: "header" }), h("div", { slot: "cell" }, h("nv-iconbutton", { size: "xs", name: "pencil", "data-bind-event": "click:edit:id" }), h("nv-iconbutton", { size: "xs", name: "trash", "data-bind-event": "click:delete:id" }), h("nv-iconbutton", { size: "xs", name: "mail", "data-bind-event": "click:sendEmail:id,email" }))))),
|
|
141
150
|
},
|
|
151
|
+
{
|
|
152
|
+
name: 'WithDataAndTemplateAndColumnGroup',
|
|
153
|
+
args: {
|
|
154
|
+
data: [
|
|
155
|
+
{
|
|
156
|
+
id: 1,
|
|
157
|
+
firstName: 'Alice',
|
|
158
|
+
lastName: 'Dupont',
|
|
159
|
+
age: '25',
|
|
160
|
+
email: 'alice@mail.com',
|
|
161
|
+
street: 'SomeStreet',
|
|
162
|
+
streetNr: '1',
|
|
163
|
+
zipCode: '1000',
|
|
164
|
+
city: 'Bruxelles',
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
id: 2,
|
|
168
|
+
firstName: 'Bob',
|
|
169
|
+
lastName: 'Debouwer',
|
|
170
|
+
age: '30',
|
|
171
|
+
email: 'bob@mail.com',
|
|
172
|
+
street: 'AnyStreet',
|
|
173
|
+
streetNr: '203',
|
|
174
|
+
zipCode: '1000',
|
|
175
|
+
city: 'Bruxelles',
|
|
176
|
+
},
|
|
177
|
+
],
|
|
178
|
+
},
|
|
179
|
+
template: (h("nv-datagrid", { "data-storybook-args": true }, h("nv-datagridcolumn", { accessor: "firstName", header: "FirstName", group: "Name" }, h("div", { slot: "header" }, h("strong", null, "FirstName")), h("div", { slot: "cell" }, h("strong", null, "__firstName__"))), h("nv-datagridcolumn", { accessor: "lastName", header: "LastName", group: "Name" }, h("div", { slot: "header" }, h("strong", null, "LastName")), h("div", { slot: "cell" }, h("strong", null, "__lastName__"))), h("nv-datagridcolumn", { accessor: "age", header: "Age" }, h("div", { slot: "header" }, h("em", null, "Age")), h("div", { slot: "cell" }, h("span", null, "__age__ years old"))), h("nv-datagridcolumn", { accessor: "email", header: "Mail Address" }, h("div", { slot: "cell" }, h("a", { href: "mailto:__email__" }, "__email__"))), h("nv-datagridcolumn", { accessor: "street", header: "Street", group: "Address" }), h("nv-datagridcolumn", { accessor: "streetNr", header: "Street Number", group: "Address" }), h("nv-datagridcolumn", { accessor: "zipCode", header: "Zip Code", group: "Address" }), h("nv-datagridcolumn", { accessor: "city", header: "City", group: "Address" }), h("nv-datagridcolumn", { accessor: "actions" }, h("div", { slot: "header" }), h("div", { slot: "cell" }, h("nv-iconbutton", { size: "xs", name: "pencil", "data-bind-event": "click:edit:id" }), h("nv-iconbutton", { size: "xs", name: "trash", "data-bind-event": "click:delete:id" }), h("nv-iconbutton", { size: "xs", name: "mail", "data-bind-event": "click:sendEmail:id,email" }))))),
|
|
180
|
+
},
|
|
142
181
|
{
|
|
143
182
|
name: 'WithDataAndTemplateComplexData',
|
|
144
183
|
args: {
|
|
@@ -179,6 +218,50 @@ const NvDatagridDocs = {
|
|
|
179
218
|
},
|
|
180
219
|
template: (h("nv-datagrid", { "data-storybook-args": true }, h("nv-datagridcolumn", { accessor: "name", header: "Name" }, h("div", { slot: "header" }, h("strong", null, "Name")), h("div", { slot: "cell" }, h("strong", null, "__name__"))), h("nv-datagridcolumn", { accessor: "age", header: "Age" }, h("div", { slot: "header" }, h("em", null, "Age")), h("div", { slot: "cell" }, h("span", null, "__age__ years old"))), h("nv-datagridcolumn", { accessor: "email", header: "Mail Address" }, h("div", { slot: "cell" }, h("a", { href: "mailto:__email__" }, "__email__"))), h("nv-datagridcolumn", { accessor: "address", header: "Address" }, h("div", { slot: "cell" }, h("span", null, "__address.city__, __address.country__"))), h("nv-datagridcolumn", { accessor: "status", header: "Status" }, h("div", { slot: "header" }, h("span", { class: "text-md font-bold text-low" }, "Status")), h("div", { slot: "cell" }, h("nv-badge", { color: "__status.color__", "lead-icon": "__status.icon__" }, "__status.label__"))), h("nv-datagridcolumn", { accessor: "actions" }, h("div", { slot: "header" }), h("div", { slot: "cell" }, h("nv-iconbutton", { size: "xs", name: "pencil", "data-bind-event": "click:edit:id" }), h("nv-iconbutton", { size: "xs", name: "trash", "data-bind-event": "click:delete:id" }), h("nv-iconbutton", { size: "xs", name: "mail", "data-bind-event": "click:sendEmail:id,email" }))))),
|
|
181
220
|
},
|
|
221
|
+
{
|
|
222
|
+
name: 'WithDataAndTemplateComplexDataAndColumnGroup',
|
|
223
|
+
args: {
|
|
224
|
+
data: [
|
|
225
|
+
{
|
|
226
|
+
id: 1,
|
|
227
|
+
firstName: 'John',
|
|
228
|
+
lastName: 'Doe',
|
|
229
|
+
age: 25,
|
|
230
|
+
email: 'john.doe@mail.com',
|
|
231
|
+
address: { city: 'New York', country: 'USA' },
|
|
232
|
+
status: { label: 'success', color: '1', icon: 'check' },
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
id: 2,
|
|
236
|
+
firstName: 'Jane',
|
|
237
|
+
lastName: 'Doe',
|
|
238
|
+
age: 30,
|
|
239
|
+
email: 'jane.doe@mail.com',
|
|
240
|
+
address: { city: 'Los Angeles', country: 'USA' },
|
|
241
|
+
status: { label: 'warning', color: '2', icon: 'alert-circle' },
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
id: 3,
|
|
245
|
+
firstName: 'John',
|
|
246
|
+
lastName: 'Smith',
|
|
247
|
+
age: 35,
|
|
248
|
+
email: 'john.smith@mail.com',
|
|
249
|
+
address: { city: 'London', country: 'UK' },
|
|
250
|
+
status: { label: 'error', color: '3', icon: 'loader' },
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
id: 4,
|
|
254
|
+
firstName: 'Jane',
|
|
255
|
+
lastName: 'Smith',
|
|
256
|
+
age: 40,
|
|
257
|
+
email: 'jane.smith@mail.com',
|
|
258
|
+
address: { city: 'Paris', country: 'France' },
|
|
259
|
+
status: { label: 'info', color: '5', icon: 'info-circle' },
|
|
260
|
+
},
|
|
261
|
+
],
|
|
262
|
+
},
|
|
263
|
+
template: (h("nv-datagrid", { "data-storybook-args": true }, h("nv-datagridcolumn", { accessor: "firstName", header: "FirstName", group: "Name" }, h("div", { slot: "header" }, h("strong", null, "FirstName")), h("div", { slot: "cell" }, h("strong", null, "__firstName__"))), h("nv-datagridcolumn", { accessor: "lastName", header: "LastName", group: "Name" }, h("div", { slot: "header" }, h("strong", null, "LastName")), h("div", { slot: "cell" }, h("strong", null, "__lastName__"))), h("nv-datagridcolumn", { accessor: "age", header: "Age" }, h("div", { slot: "header" }, h("em", null, "Age")), h("div", { slot: "cell" }, h("span", null, "__age__ years old"))), h("nv-datagridcolumn", { accessor: "email", header: "Mail Address", group: "Contact" }, h("div", { slot: "cell" }, h("a", { href: "mailto:__email__" }, "__email__"))), h("nv-datagridcolumn", { accessor: "address", header: "Address", group: "Contact" }, h("div", { slot: "cell" }, h("span", null, "__address.city__, __address.country__"))), h("nv-datagridcolumn", { accessor: "status", header: "Status" }, h("div", { slot: "header" }, h("span", { class: "text-md font-bold text-low" }, "Status")), h("div", { slot: "cell" }, h("nv-badge", { color: "__status.color__", "lead-icon": "__status.icon__" }, "__status.label__"))), h("nv-datagridcolumn", { accessor: "actions" }, h("div", { slot: "header" }), h("div", { slot: "cell" }, h("nv-iconbutton", { size: "xs", name: "pencil", "data-bind-event": "click:edit:id" }), h("nv-iconbutton", { size: "xs", name: "trash", "data-bind-event": "click:delete:id" }), h("nv-iconbutton", { size: "xs", name: "mail", "data-bind-event": "click:sendEmail:id,email" }))))),
|
|
264
|
+
},
|
|
182
265
|
{
|
|
183
266
|
name: nameof(x => x.enableGlobalFilter),
|
|
184
267
|
args: {
|
|
@@ -685,9 +768,9 @@ const NvDatagridDocs = {
|
|
|
685
768
|
name: 'SlotBefore',
|
|
686
769
|
args: {
|
|
687
770
|
columns: [
|
|
688
|
-
{ header: 'Name', accessor: 'name' },
|
|
689
|
-
{ header: 'Age', accessor: 'age' },
|
|
690
|
-
{ header: 'Email', accessor: 'email' },
|
|
771
|
+
{ header: 'Name', accessor: 'name', group: '' },
|
|
772
|
+
{ header: 'Age', accessor: 'age', group: '' },
|
|
773
|
+
{ header: 'Email', accessor: 'email', group: '' },
|
|
691
774
|
],
|
|
692
775
|
data: [
|
|
693
776
|
{ name: 'Alice', age: '25', email: 'alice@mail.com' },
|
|
@@ -700,9 +783,9 @@ const NvDatagridDocs = {
|
|
|
700
783
|
name: 'SlotAfter',
|
|
701
784
|
args: {
|
|
702
785
|
columns: [
|
|
703
|
-
{ header: 'Name', accessor: 'name' },
|
|
704
|
-
{ header: 'Age', accessor: 'age' },
|
|
705
|
-
{ header: 'Email', accessor: 'email' },
|
|
786
|
+
{ header: 'Name', accessor: 'name', group: '' },
|
|
787
|
+
{ header: 'Age', accessor: 'age', group: '' },
|
|
788
|
+
{ header: 'Email', accessor: 'email', group: '' },
|
|
706
789
|
],
|
|
707
790
|
data: [
|
|
708
791
|
{ name: 'Alice', age: '25', email: 'alice@mail.com' },
|
|
@@ -715,9 +798,9 @@ const NvDatagridDocs = {
|
|
|
715
798
|
name: 'SlotBeforeAndAfter',
|
|
716
799
|
args: {
|
|
717
800
|
columns: [
|
|
718
|
-
{ header: 'Name', accessor: 'name' },
|
|
719
|
-
{ header: 'Age', accessor: 'age' },
|
|
720
|
-
{ header: 'Email', accessor: 'email' },
|
|
801
|
+
{ header: 'Name', accessor: 'name', group: '' },
|
|
802
|
+
{ header: 'Age', accessor: 'age', group: '' },
|
|
803
|
+
{ header: 'Email', accessor: 'email', group: '' },
|
|
721
804
|
],
|
|
722
805
|
data: [
|
|
723
806
|
{ name: 'Alice', age: '25', email: 'alice@mail.com' },
|