@nova-design-system/nova-webcomponents 3.2.0 → 3.4.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-108ddff0.js → index-c56424e5.js} +18 -186
- package/dist/cjs/index-c56424e5.js.map +1 -0
- 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 +391 -142
- 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 +45 -12
- package/dist/cjs/nv-datagrid.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-datagridcolumn.cjs.entry.js +1 -1
- package/dist/cjs/nv-dialog.cjs.entry.js +1 -1
- package/dist/cjs/nv-dialogfooter_2.cjs.entry.js +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 +98 -44
- package/dist/cjs/nv-fielddaterange.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fielddropdown.cjs.entry.js +2 -2
- 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 +2 -2
- package/dist/cjs/nv-fieldmultiselect.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldnumber.cjs.entry.js +5 -5
- package/dist/cjs/nv-fieldnumber.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldpassword.cjs.entry.js +5 -5
- package/dist/cjs/nv-fieldpassword.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldradio.cjs.entry.js +4 -4
- package/dist/cjs/nv-fieldselect.cjs.entry.js +7 -7
- package/dist/cjs/nv-fieldselect.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldslider.cjs.entry.js +28 -23
- package/dist/cjs/nv-fieldslider.cjs.entry.js.map +1 -1
- 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 +2 -2
- 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 +3 -3
- package/dist/cjs/nv-popover.cjs.entry.js.map +1 -1
- 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 +2 -2
- package/dist/collection/components/nv-calendar/nv-calendar.js +235 -136
- package/dist/collection/components/nv-calendar/nv-calendar.js.map +1 -1
- package/dist/collection/components/nv-calendar/nv-calendar.utils.js +32 -7
- 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 +88 -2
- package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js.map +1 -1
- package/dist/collection/components/nv-datagrid/nv-datagrid.js +89 -10
- package/dist/collection/components/nv-datagrid/nv-datagrid.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 +44 -0
- 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.docs.js +0 -1
- package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.docs.js.map +1 -1
- package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js +125 -42
- package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js.map +1 -1
- package/dist/collection/components/nv-fielddaterange/styles/nv-fielddaterange.css +44 -0
- 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/styles/nv-fielddropdown.css +46 -0
- package/dist/collection/components/nv-fieldmultiselect/styles/nv-fieldmultiselect.css +46 -0
- package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.css +44 -0
- package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.docs.js +8 -0
- package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js +4 -3
- package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js.map +1 -1
- package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.css +44 -0
- 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.css +44 -0
- package/dist/collection/components/nv-fieldselect/nv-fieldselect.js +5 -5
- package/dist/collection/components/nv-fieldslider/nv-fieldslider.docs.js +22 -22
- package/dist/collection/components/nv-fieldslider/nv-fieldslider.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldslider/nv-fieldslider.js +30 -29
- package/dist/collection/components/nv-fieldslider/nv-fieldslider.js.map +1 -1
- package/dist/collection/components/nv-fieldslider/partials/field-input.js +1 -1
- package/dist/collection/components/nv-fieldslider/partials/field-input.js.map +1 -1
- package/dist/collection/components/nv-fieldslider/styles/nv-fieldslider.css +99 -20
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.css +44 -0
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.js +3 -3
- package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.css +38 -0
- 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 +44 -0
- package/dist/collection/components/nv-icon/nv-icon.js +1 -1
- package/dist/collection/components/nv-iconbutton/nv-iconbutton.js +1 -1
- package/dist/collection/components/nv-loader/nv-loader.js +1 -1
- package/dist/collection/components/nv-menu/nv-menu.js +1 -1
- package/dist/collection/components/nv-menuitem/nv-menuitem.js +1 -1
- package/dist/collection/components/nv-popover/nv-popover.js +3 -3
- package/dist/collection/components/nv-popover/nv-popover.js.map +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.js +1 -1
- package/dist/collection/templates/navigation.docs.js +1 -1
- package/dist/collection/templates/navigation.docs.js.map +1 -1
- package/dist/components/index.js +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 +54 -19
- package/dist/components/nv-datagrid.js.map +1 -1
- package/dist/components/nv-datagridcolumn.js +1 -1
- package/dist/components/nv-dialog.js +6 -6
- package/dist/components/nv-dialogfooter.js +1 -1
- package/dist/components/nv-dialogheader.js +1 -1
- package/dist/components/nv-fieldcheckbox.js +1 -1
- package/dist/components/nv-fielddate.js +53 -25
- package/dist/components/nv-fielddate.js.map +1 -1
- package/dist/components/nv-fielddaterange.js +110 -62
- package/dist/components/nv-fielddaterange.js.map +1 -1
- package/dist/components/nv-fielddropdown.js +7 -7
- 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 +9 -9
- package/dist/components/nv-fieldmultiselect.js.map +1 -1
- package/dist/components/nv-fieldnumber.js +1 -180
- package/dist/components/nv-fieldnumber.js.map +1 -1
- package/dist/components/nv-fieldpassword.js +8 -8
- package/dist/components/nv-fieldpassword.js.map +1 -1
- package/dist/components/nv-fieldradio.js +4 -4
- package/dist/components/nv-fieldselect.js +10 -10
- package/dist/components/nv-fieldselect.js.map +1 -1
- package/dist/components/nv-fieldslider.js +49 -26
- package/dist/components/nv-fieldslider.js.map +1 -1
- 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-0ab80d95.js → p-131e5140.js} +4 -4
- package/dist/components/{p-0ab80d95.js.map → p-131e5140.js.map} +1 -1
- package/dist/components/{p-cbdc2c8b.js → p-3f567fde.js} +5 -5
- package/dist/components/{p-cbdc2c8b.js.map → p-3f567fde.js.map} +1 -1
- package/dist/components/p-3f58525b.js +167 -0
- package/dist/components/{p-f0a5e7e4.js.map → p-3f58525b.js.map} +1 -1
- package/dist/components/{p-33e231f4.js → p-6277f746.js} +2 -2
- package/dist/components/{p-33e231f4.js.map → p-6277f746.js.map} +1 -1
- package/dist/components/{p-07a89754.js → p-953d8b4d.js} +3 -3
- package/dist/components/{p-07a89754.js.map → p-953d8b4d.js.map} +1 -1
- package/dist/components/{p-dd2273a3.js → p-9e6e26cb.js} +2 -2
- package/dist/components/{p-dd2273a3.js.map → p-9e6e26cb.js.map} +1 -1
- package/dist/components/{p-d19b41d2.js → p-9f1e8ef3.js} +2 -2
- package/dist/components/{p-d19b41d2.js.map → p-9f1e8ef3.js.map} +1 -1
- package/dist/components/{p-4656efae.js → p-a0d7e0cd.js} +396 -169
- package/dist/components/p-a0d7e0cd.js.map +1 -0
- package/dist/components/{p-f1859ddc.js → p-a1438b39.js} +4 -4
- package/dist/components/{p-f1859ddc.js.map → p-a1438b39.js.map} +1 -1
- package/dist/components/{p-04cb3a6f.js → p-a189d074.js} +5 -5
- package/dist/components/{p-04cb3a6f.js.map → p-a189d074.js.map} +1 -1
- package/dist/components/p-a29a9396.js +184 -0
- package/dist/components/p-a29a9396.js.map +1 -0
- package/dist/components/{p-679e0fa9.js → p-aff3ed68.js} +10 -175
- package/dist/components/p-aff3ed68.js.map +1 -0
- package/dist/components/{p-76a30bf1.js → p-b207be02.js} +3 -3
- package/dist/components/{p-76a30bf1.js.map → p-b207be02.js.map} +1 -1
- package/dist/components/{p-581e67cc.js → p-c07c32d2.js} +3 -3
- package/dist/components/{p-581e67cc.js.map → p-c07c32d2.js.map} +1 -1
- package/dist/components/{p-cbe9521f.js → p-dcaf9010.js} +3 -3
- package/dist/components/{p-cbe9521f.js.map → p-dcaf9010.js.map} +1 -1
- package/dist/components/{p-83c8873a.js → p-dec6fc68.js} +3 -3
- package/dist/components/{p-83c8873a.js.map → p-dec6fc68.js.map} +1 -1
- package/dist/components/{p-d63f1cbe.js → p-df465ef2.js} +3 -3
- package/dist/components/{p-d63f1cbe.js.map → p-df465ef2.js.map} +1 -1
- package/dist/components/{p-c0a91091.js → p-f7c7a406.js} +4 -4
- package/dist/components/{p-c0a91091.js.map → p-f7c7a406.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-8f0e5f19.js → index-a1936cd0.js} +19 -186
- package/dist/esm/index-a1936cd0.js.map +1 -0
- package/dist/esm/index.js +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 +392 -143
- 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 +46 -13
- package/dist/esm/nv-datagrid.entry.js.map +1 -1
- package/dist/esm/nv-datagridcolumn.entry.js +1 -1
- package/dist/esm/nv-dialog.entry.js +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 +98 -44
- package/dist/esm/nv-fielddaterange.entry.js.map +1 -1
- package/dist/esm/nv-fielddropdown.entry.js +2 -2
- 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 +2 -2
- package/dist/esm/nv-fieldmultiselect.entry.js.map +1 -1
- package/dist/esm/nv-fieldnumber.entry.js +5 -5
- package/dist/esm/nv-fieldnumber.entry.js.map +1 -1
- package/dist/esm/nv-fieldpassword.entry.js +5 -5
- package/dist/esm/nv-fieldpassword.entry.js.map +1 -1
- package/dist/esm/nv-fieldradio.entry.js +4 -4
- package/dist/esm/nv-fieldselect.entry.js +7 -7
- package/dist/esm/nv-fieldselect.entry.js.map +1 -1
- package/dist/esm/nv-fieldslider.entry.js +28 -23
- package/dist/esm/nv-fieldslider.entry.js.map +1 -1
- 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 +3 -3
- 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 +3 -3
- package/dist/esm/nv-popover.entry.js.map +1 -1
- 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 +2 -2
- 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-01164e86.entry.js +2 -0
- package/dist/native/{p-5382eab2.entry.js.map → p-01164e86.entry.js.map} +1 -1
- package/dist/native/p-0410facd.entry.js +2 -0
- package/dist/native/p-0410facd.entry.js.map +1 -0
- package/dist/native/{p-519b4819.entry.js → p-08ca678c.entry.js} +2 -2
- package/dist/native/{p-cfe0a6c6.entry.js → p-0ec2d430.entry.js} +2 -2
- package/dist/native/{p-cfe0a6c6.entry.js.map → p-0ec2d430.entry.js.map} +1 -1
- package/dist/native/p-14895e84.entry.js +2 -0
- package/dist/native/p-14895e84.entry.js.map +1 -0
- package/dist/native/p-1a5d3b87.entry.js +2 -0
- package/dist/native/{p-7c676f2c.entry.js.map → p-1a5d3b87.entry.js.map} +1 -1
- package/dist/native/{p-0323daf6.entry.js → p-1c1ecd38.entry.js} +2 -2
- package/dist/native/{p-16a4cdf3.entry.js → p-1d98477d.entry.js} +2 -2
- package/dist/native/{p-19fb0fd0.entry.js → p-2006f5d4.entry.js} +2 -2
- package/dist/native/p-24659a85.entry.js +2 -0
- package/dist/native/{p-ef76178b.entry.js.map → p-24659a85.entry.js.map} +1 -1
- package/dist/native/p-2b1e7675.entry.js +2 -0
- package/dist/native/{p-b0fc08e7.entry.js.map → p-2b1e7675.entry.js.map} +1 -1
- package/dist/native/{p-9fba8663.entry.js → p-2bc7d66a.entry.js} +2 -2
- package/dist/native/p-2c3fb8cc.entry.js +2 -0
- package/dist/native/p-2c3fb8cc.entry.js.map +1 -0
- package/dist/native/p-45cbe6e4.entry.js +2 -0
- package/dist/native/p-46428304.entry.js +2 -0
- package/dist/native/p-46428304.entry.js.map +1 -0
- package/dist/native/{p-c930adb7.entry.js → p-55df8bf9.entry.js} +2 -2
- package/dist/native/p-59b07b36.entry.js +2 -0
- package/dist/native/{p-987c79d8.entry.js.map → p-59b07b36.entry.js.map} +1 -1
- package/dist/native/p-6029e51b.entry.js +2 -0
- package/dist/native/{p-fc3bea07.entry.js.map → p-6029e51b.entry.js.map} +1 -1
- package/dist/native/{p-4c0d81b0.entry.js → p-7ba03c5d.entry.js} +2 -2
- package/dist/native/p-82c4bf56.entry.js +2 -0
- package/dist/native/p-82c4bf56.entry.js.map +1 -0
- package/dist/native/{p-407fc32d.entry.js → p-86ab23ea.entry.js} +2 -2
- package/dist/native/p-87784622.entry.js +2 -0
- package/dist/native/{p-05d95d4d.entry.js → p-914da1e1.entry.js} +2 -2
- package/dist/native/p-9850c1d7.entry.js +2 -0
- package/dist/native/{p-5ba3fc3c.entry.js.map → p-9850c1d7.entry.js.map} +1 -1
- package/dist/native/{p-de2c07a6.entry.js → p-a0505695.entry.js} +3 -3
- package/dist/native/p-a0505695.entry.js.map +1 -0
- package/dist/native/p-a30206c1.entry.js +2 -0
- package/dist/native/{p-aa86af25.entry.js.map → p-a30206c1.entry.js.map} +1 -1
- package/dist/native/p-abbe5d69.entry.js +2 -0
- package/dist/native/{p-7c6edd1c.entry.js.map → p-abbe5d69.entry.js.map} +1 -1
- package/dist/native/{p-221b8f72.entry.js → p-ad128108.entry.js} +2 -2
- package/dist/native/{p-f0ddf60b.entry.js → p-b5b9190a.entry.js} +2 -2
- package/dist/native/p-c7b8b7ba.entry.js +2 -0
- package/dist/native/{p-fb897f7d.entry.js.map → p-c7b8b7ba.entry.js.map} +1 -1
- package/dist/native/p-c92d55f9.entry.js +2 -0
- package/dist/native/{p-3f2b6a22.entry.js → p-c9d3de9c.entry.js} +2 -2
- package/dist/native/p-cbca9326.entry.js +2 -0
- package/dist/native/{p-60b204ac.entry.js.map → p-cbca9326.entry.js.map} +1 -1
- package/dist/native/p-d0a33e64.js +3 -0
- package/dist/native/p-d0a33e64.js.map +1 -0
- package/dist/native/{p-ed488498.entry.js → p-d21b2da2.entry.js} +3 -3
- package/dist/native/{p-f85c08f1.js → p-e2d0a77d.js} +2 -2
- package/dist/native/{p-a2c0f1a7.entry.js → p-ec87200a.entry.js} +2 -2
- package/dist/native/{p-0ec1e2e3.entry.js → p-f377b285.entry.js} +2 -2
- package/dist/native/p-ff0f3794.entry.js +2 -0
- package/dist/native/{p-adc96c3a.entry.js.map → p-ff0f3794.entry.js.map} +1 -1
- package/dist/types/components/nv-calendar/nv-calendar.d.ts +25 -45
- 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 +106 -2
- 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 +19 -6
- package/dist/types/components/nv-fielddaterange/test/nv-fielddaterange.logic.test.d.ts +1 -0
- package/dist/types/components/nv-fieldnumber/nv-fieldnumber.d.ts +1 -0
- package/dist/types/components/nv-fieldslider/nv-fieldslider.d.ts +5 -6
- package/dist/types/components.d.ts +175 -38
- package/dist/vscode-data.json +4 -4
- package/hydrate/index.js +666 -291
- package/hydrate/index.mjs +666 -291
- package/package.json +10 -2
- package/dist/cjs/index-108ddff0.js.map +0 -1
- package/dist/components/p-4656efae.js.map +0 -1
- package/dist/components/p-679e0fa9.js.map +0 -1
- package/dist/components/p-f0a5e7e4.js +0 -167
- package/dist/esm/index-8f0e5f19.js.map +0 -1
- package/dist/native/p-1e3d3374.entry.js +0 -2
- package/dist/native/p-21e7132f.entry.js +0 -2
- package/dist/native/p-21e7132f.entry.js.map +0 -1
- package/dist/native/p-2805f9f2.entry.js +0 -2
- package/dist/native/p-2805f9f2.entry.js.map +0 -1
- package/dist/native/p-5382eab2.entry.js +0 -2
- package/dist/native/p-5ba3fc3c.entry.js +0 -2
- package/dist/native/p-60b204ac.entry.js +0 -2
- package/dist/native/p-7092a675.entry.js +0 -2
- package/dist/native/p-711a7778.js +0 -3
- package/dist/native/p-711a7778.js.map +0 -1
- package/dist/native/p-759c9ce4.entry.js +0 -2
- package/dist/native/p-759c9ce4.entry.js.map +0 -1
- package/dist/native/p-7c676f2c.entry.js +0 -2
- package/dist/native/p-7c6edd1c.entry.js +0 -2
- package/dist/native/p-987c79d8.entry.js +0 -2
- package/dist/native/p-aa86af25.entry.js +0 -2
- package/dist/native/p-adc96c3a.entry.js +0 -2
- package/dist/native/p-b0fc08e7.entry.js +0 -2
- package/dist/native/p-d07ab618.entry.js +0 -2
- package/dist/native/p-dac0089b.entry.js +0 -2
- package/dist/native/p-dac0089b.entry.js.map +0 -1
- package/dist/native/p-de2c07a6.entry.js.map +0 -1
- package/dist/native/p-ef76178b.entry.js +0 -2
- package/dist/native/p-f39803d9.entry.js +0 -2
- package/dist/native/p-f39803d9.entry.js.map +0 -1
- package/dist/native/p-fb897f7d.entry.js +0 -2
- package/dist/native/p-fc3bea07.entry.js +0 -2
- /package/dist/native/{p-519b4819.entry.js.map → p-08ca678c.entry.js.map} +0 -0
- /package/dist/native/{p-0323daf6.entry.js.map → p-1c1ecd38.entry.js.map} +0 -0
- /package/dist/native/{p-16a4cdf3.entry.js.map → p-1d98477d.entry.js.map} +0 -0
- /package/dist/native/{p-19fb0fd0.entry.js.map → p-2006f5d4.entry.js.map} +0 -0
- /package/dist/native/{p-9fba8663.entry.js.map → p-2bc7d66a.entry.js.map} +0 -0
- /package/dist/native/{p-1e3d3374.entry.js.map → p-45cbe6e4.entry.js.map} +0 -0
- /package/dist/native/{p-c930adb7.entry.js.map → p-55df8bf9.entry.js.map} +0 -0
- /package/dist/native/{p-4c0d81b0.entry.js.map → p-7ba03c5d.entry.js.map} +0 -0
- /package/dist/native/{p-407fc32d.entry.js.map → p-86ab23ea.entry.js.map} +0 -0
- /package/dist/native/{p-d07ab618.entry.js.map → p-87784622.entry.js.map} +0 -0
- /package/dist/native/{p-05d95d4d.entry.js.map → p-914da1e1.entry.js.map} +0 -0
- /package/dist/native/{p-221b8f72.entry.js.map → p-ad128108.entry.js.map} +0 -0
- /package/dist/native/{p-f0ddf60b.entry.js.map → p-b5b9190a.entry.js.map} +0 -0
- /package/dist/native/{p-7092a675.entry.js.map → p-c92d55f9.entry.js.map} +0 -0
- /package/dist/native/{p-3f2b6a22.entry.js.map → p-c9d3de9c.entry.js.map} +0 -0
- /package/dist/native/{p-ed488498.entry.js.map → p-d21b2da2.entry.js.map} +0 -0
- /package/dist/native/{p-f85c08f1.js.map → p-e2d0a77d.js.map} +0 -0
- /package/dist/native/{p-a2c0f1a7.entry.js.map → p-ec87200a.entry.js.map} +0 -0
- /package/dist/native/{p-0ec1e2e3.entry.js.map → p-f377b285.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nv-fielddate.js","sourceRoot":"","sources":["../../../src/components/nv-fielddate/nv-fielddate.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n h,\n Prop,\n State,\n Element,\n Event,\n EventEmitter,\n Listen,\n Host,\n Watch,\n} from '@stencil/core';\nimport Inputmask from 'inputmask';\nimport { v4 as uuidv4 } from 'uuid';\n\n/**\n * @slot default - Child content of the component.\n * @slot leading-input - Content to be placed before the input text, within the input container.\n * @slot before-input - Content to be placed before the input text, outside the input container.\n * @slot after-input - Content to be placed after the input text, outside the input container.\n * @slot label - Content to be placed as the label, will override the label prop.\n * @slot description - Content to be placed as the description, will override the description prop.\n * @slot error-description - Content to be placed as the error description, will override the errorDescription prop.\n */\n@Component({\n tag: 'nv-fielddate',\n styleUrl: 'styles/nv-fielddate.scss',\n shadow: false,\n})\nexport class NvFielddate {\n @Element() el: HTMLNvFielddateElement;\n private inputElement!: HTMLInputElement;\n\n private popoverElement!: HTMLNvPopoverElement;\n private popoverId: string = uuidv4();\n\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Sets the ID for the input element and the for attribute of the associated\n * label. If no ID is provided, a random one will be automatically generated.\n */\n @Prop({ reflect: true })\n readonly inputId: string = uuidv4();\n\n /**\n * Text displayed as label. A slot label can override this prop.\n */\n @Prop({ reflect: true })\n readonly label: string;\n\n /**\n * Description displayed below the input. A slot description can override this prop.\n */\n @Prop({ reflect: true })\n readonly description: string;\n\n /**\n * Placeholder for the input field.\n */\n @Prop({ reflect: true })\n readonly placeholder: string;\n\n /**\n * Name attribute for the input.\n */\n @Prop({ reflect: true })\n readonly name: string;\n\n /**\n * Disables the input field.\n */\n @Prop({ reflect: true })\n readonly disabled: boolean = false;\n\n /**\n * Sets the input field as read-only.\n */\n @Prop({ reflect: true })\n readonly readonly: boolean = false;\n\n /**\n * Marks the input field as required.\n */\n @Prop({ reflect: true })\n readonly required: boolean = false;\n\n /**\n * Indicates an error state.\n */\n @Prop({ reflect: true })\n readonly error: boolean = false;\n\n /**\n * Error description. A slot error-description can override this prop.\n */\n @Prop({ reflect: true })\n readonly errorDescription?: string;\n\n /**\n * Indicates a success state.\n */\n @Prop({ reflect: true })\n readonly success: boolean = false;\n\n /**\n * Autofocus the input when the component is mounted.\n */\n @Prop({ reflect: true })\n // eslint-disable-next-line @stencil-community/reserved-member-names\n readonly autofocus: boolean = false;\n\n /**\n * The initial value of the input (date in string format).\n */\n @Prop({ reflect: true })\n readonly value: string = '';\n\n /**\n * The current value of the input date in string format.\n */\n @State()\n singleValue: string = '';\n\n /**\n * Controls the opening of the popover.\n */\n @State()\n open: boolean = false;\n\n /**\n * First day of the week 0 = Sunday, 1 = Monday, etc.\n * @default 1\n */\n @Prop({ reflect: true })\n readonly firstDayOfWeek: number = 1;\n\n /**\n * Number of calendars to display\n * @default 1\n */\n @Prop({ reflect: true })\n readonly numberOfCalendars: number = 1;\n\n /**\n * Minimum date for selection ISO string format, ex: 2025-01-01\n */\n @Prop({ reflect: true })\n readonly min?: string = '';\n\n /**\n * Maximum date for selection ISO string format, ex: 2025-12-31\n */\n @Prop({ reflect: true })\n readonly max?: string = '';\n\n /** Locale for date formatting\n * @default 'en-BE'\n */\n @Prop({ reflect: true })\n readonly locale: string = 'en-BE';\n\n /** Date format ex: YYYY-MM-DD, DD-MM-YYYY, etc.\n * @default 'YYYY-MM-DD'\n * @note If the date format is in UTC mode, the date will be displayed in UTC time.\n * @note If the date format is not in UTC mode, the date will be displayed in the local time.\n */\n @Prop({ reflect: true })\n readonly dateFormat: string = 'YYYY-MM-DD';\n\n /**\n * Footer placement\n * @default 'bottom'\n */\n @Prop({ reflect: true })\n readonly shortcutsPlacement: 'bottom' | 'left' | 'right' = 'bottom';\n\n /**\n * Show action buttons\n * @default false\n */\n @Prop({ reflect: true })\n readonly showActions: boolean = false;\n\n /**\n * Custom actions to display in the footer\n */\n @Prop({ reflect: true })\n readonly shortcuts: HTMLNvCalendarElement['shortcuts'];\n\n /**\n * Show week numbers\n * @default true\n */\n @Prop({ reflect: true })\n readonly showWeekNumbers: boolean;\n\n /**\n * Disabled dates ISO string array\n */\n @Prop({ reflect: true })\n readonly disabledDates: Array<string>;\n\n /**\n * Allows the field to stretch and fill the entire width of its container.\n */\n @Prop({ reflect: true })\n readonly fluid: boolean = false;\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region METHODS\n\n /**\n * Converts the nv-calendar date format to the format expected by Inputmask.\n * @param {string} format - The date format.\n * @returns {string} Format adapted for Inputmask.\n */\n private convertToInputmaskFormat(format: string): string {\n switch (format) {\n case 'DD/MM/YYYY':\n return 'dd/mm/yyyy';\n case 'MM/DD/YYYY':\n return 'mm/dd/yyyy';\n case 'YYYY-MM-DD':\n return 'yyyy-mm-dd';\n case 'DD.MM.YYYY':\n return 'dd.mm.yyyy';\n case 'YYYYMMDD':\n return 'yyyymmdd';\n default:\n return format;\n }\n }\n\n /**\n * Closes the popover when a click is detected outside the component.\n * @param {MouseEvent} event - The click event.\n */\n private handleClickOutside = (event: MouseEvent) => {\n if (this.open && this.el && !this.el.contains(event.target as Node)) {\n this.open = false;\n }\n };\n\n /**\n * Focuses the input when the input container is clicked.\n * @param {MouseEvent} event - The click event.\n */\n private handleInputContainerClick = (event: MouseEvent) => {\n if (this.readonly || this.disabled) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n this.inputElement.focus();\n // Select the first characters based on the date format\n const format = this.dateFormat;\n if (format.startsWith('DD')) {\n this.inputElement.setSelectionRange(0, 2);\n } else if (format.startsWith('MM')) {\n this.inputElement.setSelectionRange(0, 2);\n } else if (format.startsWith('YYYY')) {\n this.inputElement.setSelectionRange(0, 4);\n }\n };\n\n /**\n * Handles the input event on the input element.\n * Updates the singleValue and emits the dateChange event.\n * @param {Event} event - The input event.\n */\n private handleInput = (event: Event) => {\n if (this.readonly || this.disabled) {\n event.preventDefault();\n return;\n }\n const input = event.target as HTMLInputElement;\n this.singleValue = input.value;\n this.dateChange.emit({ value: input.value });\n };\n\n /**\n * Toggles the opening/closing of the popover.\n */\n private toggleCalendar = () => {\n if (this.readonly || this.disabled) {\n return;\n }\n this.open = !this.open;\n };\n\n /**\n * Handles focus events on the input element.\n * @param {FocusEvent} event - The focus event.\n */\n private handleFocus = (event: FocusEvent) => {\n if (this.readonly || this.disabled) {\n event.preventDefault();\n (event.target as HTMLElement).blur();\n return;\n }\n };\n\n //#endregion METHODS\n /****************************************************************************/\n //#region LIFECYCLE\n\n connectedCallback() {\n document.addEventListener('click', this.handleClickOutside);\n }\n\n componentWillLoad() {\n if (this.value) {\n this.singleValue = this.value;\n }\n }\n\n componentDidLoad() {\n const inputs = this.el.querySelectorAll('.input-wrapper input');\n inputs.forEach((input: HTMLInputElement) => {\n Inputmask({\n alias: 'datetime',\n inputFormat: this.convertToInputmaskFormat(this.dateFormat),\n placeholder: '_'.repeat(this.dateFormat.length),\n }).mask(input);\n });\n }\n\n disconnectedCallback() {\n document.removeEventListener('click', this.handleClickOutside);\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emits an event when the date changes.\n */\n @Event()\n dateChange: EventEmitter<{\n /**\n * The date value.\n */\n value: string;\n }>;\n\n /**\n * Handles the single date selection event from nv-calendar.\n * Updates the input value and closes the popover.\n * @param {CustomEvent} event - The event from nv-calendar.\n */\n @Listen('singleDateChange')\n handleSingleDateChange(event: CustomEvent) {\n const value: string = event.detail;\n this.singleValue = value;\n this.dateChange.emit({ value });\n if (!this.showActions) {\n this.open = false;\n }\n }\n\n @Listen('closePopover')\n handleClosePopover() {\n this.open = false;\n }\n\n @Listen('keydown', { passive: false })\n handleKeyDown(event: KeyboardEvent) {\n if (!this.open) {\n if (event.key === 'ArrowDown') {\n this.open = true;\n\n event.preventDefault();\n return;\n }\n return;\n }\n\n // Verify if the popover element is defined\n if (!this.popoverElement) {\n console.warn('nv-fielddate -> Popover element is not defined');\n return;\n }\n }\n\n @Watch('value')\n handleValueChange(newValue: string) {\n this.singleValue = newValue;\n }\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region RENDER\n render() {\n return (\n <Host>\n {((this.label && this.label.length > 0) ||\n this.el.querySelector('[slot=\"label\"]')) && (\n <label htmlFor={this.inputId}>\n <slot name=\"label\">{this.label}</slot>\n </label>\n )}\n\n <nv-popover\n ref={el => (this.popoverElement = el as HTMLNvPopoverElement)}\n id={this.popoverId}\n triggerMode=\"controlled\"\n placement=\"bottom-start\"\n open={this.open}\n >\n <div slot=\"trigger\" class=\"input-wrapper\">\n <slot name=\"before-input\"></slot>\n\n <div\n class=\"input-container\"\n onClick={this.handleInputContainerClick}\n >\n <slot name=\"leading-input\"></slot>\n\n <input\n id={this.inputId}\n ref={e => (this.inputElement = e)}\n placeholder={this.placeholder}\n name={this.name}\n disabled={this.disabled}\n readOnly={this.readonly}\n required={this.required}\n autofocus={this.autofocus}\n value={this.singleValue}\n onInput={this.handleInput}\n onFocus={this.handleFocus}\n data-scope=\"date\"\n />\n\n {this.error && (\n <nv-icon name=\"alert-circle\" class=\"validation\" size=\"md\" />\n )}\n {this.success && (\n <nv-icon name=\"circle-check\" class=\"validation\" size=\"md\" />\n )}\n\n <nv-iconbutton\n class=\"toggle-calendar-icon\"\n name=\"calendar\" //{this.open ? 'chevron-top' : 'chevron-down'}\n size=\"md\"\n emphasis=\"lower\"\n aria-label={this.open ? 'Hide calendar' : 'Show calendar'}\n aria-pressed={this.open.toString()}\n onClick={this.toggleCalendar}\n tabIndex={this.disabled ? -1 : 0}\n />\n </div>\n\n <slot name=\"after-input\"></slot>\n </div>\n\n <div slot=\"content\">\n <nv-calendar\n dateFormat={this.dateFormat}\n singleValue={this.singleValue}\n firstDayOfWeek={this.firstDayOfWeek}\n numberOfCalendars={this.numberOfCalendars}\n min={this.min}\n max={this.max}\n locale={this.locale}\n shortcutsPlacement={this.shortcutsPlacement}\n showActions={this.showActions}\n shortcuts={this.shortcuts}\n showWeekNumbers={this.showWeekNumbers}\n disabledDates={this.disabledDates}\n ></nv-calendar>\n </div>\n </nv-popover>\n\n {((this.description && this.description.length > 0) ||\n this.el.querySelector('[slot=\"description\"]')) && (\n <div class=\"description\">\n <slot name=\"description\">{this.description}</slot>\n </div>\n )}\n\n {(this.errorDescription ||\n this.el.querySelector('[slot=\"error-description\"]')) && (\n <div hidden={!this.error} class=\"error-description\">\n {this.el.querySelector('[slot=\"error-description\"]') ? (\n <slot name=\"error-description\"></slot>\n ) : (\n this.errorDescription\n )}\n </div>\n )}\n\n <slot></slot>\n </Host>\n );\n }\n //#endregion RENDER\n}\n"]}
|
|
1
|
+
{"version":3,"file":"nv-fielddate.js","sourceRoot":"","sources":["../../../src/components/nv-fielddate/nv-fielddate.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n h,\n Prop,\n State,\n Element,\n Event,\n EventEmitter,\n Listen,\n Host,\n Watch,\n} from '@stencil/core';\nimport Inputmask from 'inputmask';\nimport { v4 as uuidv4 } from 'uuid';\n\n/**\n * @slot default - Child content of the component.\n * @slot leading-input - Content to be placed before the input text, within the input container.\n * @slot before-input - Content to be placed before the input text, outside the input container.\n * @slot after-input - Content to be placed after the input text, outside the input container.\n * @slot label - Content to be placed as the label, will override the label prop.\n * @slot description - Content to be placed as the description, will override the description prop.\n * @slot error-description - Content to be placed as the error description, will override the errorDescription prop.\n */\n@Component({\n tag: 'nv-fielddate',\n styleUrl: 'styles/nv-fielddate.scss',\n shadow: false,\n})\nexport class NvFielddate {\n @Element() el: HTMLNvFielddateElement;\n private inputElement!: HTMLInputElement;\n\n private popoverElement!: HTMLNvPopoverElement;\n private popoverId: string = uuidv4();\n\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Sets the ID for the input element and the for attribute of the associated\n * label. If no ID is provided, a random one will be automatically generated.\n */\n @Prop({ reflect: true })\n readonly inputId: string = uuidv4();\n\n /**\n * Text displayed as label. A slot label can override this prop.\n */\n @Prop({ reflect: true })\n readonly label: string;\n\n /**\n * Description displayed below the input. A slot description can override this prop.\n */\n @Prop({ reflect: true })\n readonly description: string;\n\n /**\n * Placeholder for the input field.\n */\n @Prop({ reflect: true })\n readonly placeholder: string;\n\n /**\n * Name attribute for the input.\n */\n @Prop({ reflect: true })\n readonly name: string;\n\n /**\n * Disables the input field.\n */\n @Prop({ reflect: true })\n readonly disabled: boolean = false;\n\n /**\n * Sets the input field as read-only.\n */\n @Prop({ reflect: true })\n readonly readonly: boolean = false;\n\n /**\n * Marks the input field as required.\n */\n @Prop({ reflect: true })\n readonly required: boolean = false;\n\n /**\n * Indicates an error state.\n */\n @Prop({ reflect: true })\n readonly error: boolean = false;\n\n /**\n * Error description. A slot error-description can override this prop.\n */\n @Prop({ reflect: true })\n readonly errorDescription?: string;\n\n /**\n * Indicates a success state.\n */\n @Prop({ reflect: true })\n readonly success: boolean = false;\n\n /**\n * Autofocus the input when the component is mounted.\n */\n @Prop({ reflect: true })\n // eslint-disable-next-line @stencil-community/reserved-member-names\n readonly autofocus: boolean = false;\n\n /**\n * The initial value of the input (date in string format).\n * @bind value\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n // eslint-disable-next-line @stencil-community/strict-mutable\n @Prop({ reflect: true, mutable: true })\n value: string = '';\n\n /**\n * The current value of the input date in string format.\n */\n @State()\n singleValue: string = '';\n\n /**\n * Controls the opening of the popover.\n */\n @State()\n open: boolean = false;\n\n /**\n * First day of the week 0 = Sunday, 1 = Monday, etc.\n * @default 1\n */\n @Prop({ reflect: true })\n readonly firstDayOfWeek: number = 1;\n\n /**\n * Number of calendars to display\n * @default 1\n */\n @Prop({ reflect: true })\n readonly numberOfCalendars: number = 1;\n\n /**\n * Minimum date for selection ISO string format, ex: 2025-01-01\n */\n @Prop({ reflect: true })\n readonly min?: string = '';\n\n /**\n * Maximum date for selection ISO string format, ex: 2025-12-31\n */\n @Prop({ reflect: true })\n readonly max?: string = '';\n\n /** Locale for date formatting\n * @default 'en-BE'\n */\n @Prop({ reflect: true })\n readonly locale: string = 'en-BE';\n\n /** Date format ex: YYYY-MM-DD, DD-MM-YYYY, etc.\n * @default 'YYYY-MM-DD'\n * @note If the date format is in UTC mode, the date will be displayed in UTC time.\n * @note If the date format is not in UTC mode, the date will be displayed in the local time.\n */\n @Prop({ reflect: true })\n readonly dateFormat: string = 'YYYY-MM-DD';\n\n /**\n * Footer placement\n * @default 'bottom'\n */\n @Prop({ reflect: true })\n readonly shortcutsPlacement: 'bottom' | 'left' | 'right' = 'bottom';\n\n /**\n * Show action buttons\n * @default false\n */\n @Prop({ reflect: true })\n readonly showActions: boolean = false;\n\n /**\n * Custom actions to display in the footer\n */\n @Prop({ reflect: true })\n readonly shortcuts: HTMLNvCalendarElement['shortcuts'];\n\n /**\n * Show week numbers\n * @default true\n */\n @Prop({ reflect: true })\n readonly showWeekNumbers: boolean;\n\n /**\n * Disabled dates ISO string array\n */\n @Prop({ reflect: true })\n readonly disabledDates: Array<string>;\n\n /**\n * Allows the field to stretch and fill the entire width of its container.\n */\n @Prop({ reflect: true })\n readonly fluid: boolean = false;\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region METHODS\n\n /**\n * Converts the nv-calendar date format to the format expected by Inputmask.\n * @param {string} format - The date format.\n * @returns {string} Format adapted for Inputmask.\n */\n private convertToInputmaskFormat(format: string): string {\n switch (format) {\n case 'DD/MM/YYYY':\n return 'dd/mm/yyyy';\n case 'MM/DD/YYYY':\n return 'mm/dd/yyyy';\n case 'YYYY-MM-DD':\n return 'yyyy-mm-dd';\n case 'DD.MM.YYYY':\n return 'dd.mm.yyyy';\n case 'YYYYMMDD':\n return 'yyyymmdd';\n default:\n return format;\n }\n }\n\n /**\n * Closes the popover when a click is detected outside the component.\n * @param {MouseEvent} event - The click event.\n */\n private handleClickOutside = (event: MouseEvent) => {\n if (this.open && this.el && !this.el.contains(event.target as Node)) {\n this.open = false;\n }\n };\n\n /**\n * Focuses the input when the input container is clicked.\n * @param {MouseEvent} event - The click event.\n */\n private handleInputContainerClick = (event: MouseEvent) => {\n if (this.readonly || this.disabled) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n this.inputElement.focus();\n // Select the first characters based on the date format\n const format = this.dateFormat;\n if (format.startsWith('DD')) {\n this.inputElement.setSelectionRange(0, 2);\n } else if (format.startsWith('MM')) {\n this.inputElement.setSelectionRange(0, 2);\n } else if (format.startsWith('YYYY')) {\n this.inputElement.setSelectionRange(0, 4);\n }\n };\n\n /**\n * Handles the input event on the input element.\n * Updates the singleValue and emits the valueChanged event.\n * @param {Event} event - The input event.\n */\n private handleInput = (event: Event) => {\n if (this.readonly || this.disabled) {\n event.preventDefault();\n return;\n }\n const input = event.target as HTMLInputElement;\n const previousValue = this.value;\n this.singleValue = input.value;\n this.value = input.value;\n // Only emit valueChanged if the value actually changed\n if (previousValue !== input.value) {\n this.valueChanged.emit(input.value);\n }\n };\n\n /**\n * Toggles the opening/closing of the popover.\n */\n private toggleCalendar = () => {\n if (this.readonly || this.disabled) {\n return;\n }\n this.open = !this.open;\n };\n\n /**\n * Handles focus events on the input element.\n * @param {FocusEvent} event - The focus event.\n */\n private handleFocus = (event: FocusEvent) => {\n if (this.readonly || this.disabled) {\n event.preventDefault();\n (event.target as HTMLElement).blur();\n return;\n }\n };\n\n /**\n * Prevents the valueChanged event from the calendar from propagating up.\n * @param {CustomEvent} event - The valueChanged event from nv-calendar.\n */\n private handleCalendarValueChanged = (event: CustomEvent) => {\n event.stopPropagation();\n };\n\n /**\n * Sets the reference to the popover element.\n * @param {HTMLNvPopoverElement} el - The popover element.\n */\n private setPopoverRef = (el: HTMLNvPopoverElement) => {\n this.popoverElement = el;\n };\n\n /**\n * Sets the reference to the input element.\n * @param {HTMLInputElement} el - The input element.\n */\n private setInputRef = (el: HTMLInputElement) => {\n this.inputElement = el;\n };\n\n //#endregion METHODS\n /****************************************************************************/\n //#region LIFECYCLE\n\n connectedCallback() {\n document.addEventListener('click', this.handleClickOutside);\n }\n\n componentWillLoad() {\n if (this.value) {\n this.singleValue = this.value;\n }\n }\n\n componentDidLoad() {\n const inputs = this.el.querySelectorAll('.input-wrapper input');\n inputs.forEach((input: HTMLInputElement) => {\n Inputmask({\n alias: 'datetime',\n inputFormat: this.convertToInputmaskFormat(this.dateFormat),\n placeholder: '_'.repeat(this.dateFormat.length),\n }).mask(input);\n });\n }\n\n disconnectedCallback() {\n document.removeEventListener('click', this.handleClickOutside);\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emitted when the value changes (unified value binding).\n * @bind value\n */\n @Event()\n valueChanged: EventEmitter<string>;\n\n /**\n * Handles the single date selection event from nv-calendar.\n * Updates the input value and closes the popover.\n * @param {CustomEvent} event - The event from nv-calendar.\n */\n @Listen('singleDateChange')\n handleSingleDateChange(event: CustomEvent) {\n const value: string = event.detail;\n const previousValue = this.value;\n this.singleValue = value;\n this.value = value;\n // Only emit valueChanged if the value actually changed\n if (previousValue !== value) {\n this.valueChanged.emit(value);\n }\n if (!this.showActions) {\n this.open = false;\n }\n }\n\n @Listen('closePopover')\n handleClosePopover() {\n this.open = false;\n }\n\n @Listen('keydown', { passive: false })\n handleKeyDown(event: KeyboardEvent) {\n if (!this.open) {\n if (event.key === 'ArrowDown') {\n this.open = true;\n\n event.preventDefault();\n return;\n }\n return;\n }\n\n // Verify if the popover element is defined\n if (!this.popoverElement) {\n console.warn('nv-fielddate -> Popover element is not defined');\n return;\n }\n }\n\n @Watch('value')\n handleValueChange(newValue: string) {\n this.singleValue = newValue;\n }\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region RENDER\n render() {\n return (\n <Host>\n {((this.label && this.label.length > 0) ||\n this.el.querySelector('[slot=\"label\"]')) && (\n <label htmlFor={this.inputId}>\n <slot name=\"label\">{this.label}</slot>\n </label>\n )}\n\n <nv-popover\n ref={this.setPopoverRef}\n id={this.popoverId}\n triggerMode=\"controlled\"\n placement=\"bottom-start\"\n open={this.open}\n >\n <div slot=\"trigger\" class=\"input-wrapper\">\n <slot name=\"before-input\"></slot>\n\n <div\n class=\"input-container\"\n onClick={this.handleInputContainerClick}\n >\n <slot name=\"leading-input\"></slot>\n\n <input\n id={this.inputId}\n ref={this.setInputRef}\n placeholder={this.placeholder}\n name={this.name}\n disabled={this.disabled}\n readOnly={this.readonly}\n required={this.required}\n autofocus={this.autofocus}\n value={this.singleValue}\n onInput={this.handleInput}\n onFocus={this.handleFocus}\n data-scope=\"date\"\n />\n\n {this.error && (\n <nv-icon name=\"alert-circle\" class=\"validation\" size=\"md\" />\n )}\n {this.success && (\n <nv-icon name=\"circle-check\" class=\"validation\" size=\"md\" />\n )}\n\n <nv-iconbutton\n class=\"toggle-calendar-icon\"\n name=\"calendar\" //{this.open ? 'chevron-top' : 'chevron-down'}\n size=\"md\"\n emphasis=\"lower\"\n aria-label={this.open ? 'Hide calendar' : 'Show calendar'}\n aria-pressed={this.open.toString()}\n onClick={this.toggleCalendar}\n tabIndex={this.disabled ? -1 : 0}\n />\n </div>\n\n <slot name=\"after-input\"></slot>\n </div>\n\n <div slot=\"content\">\n <nv-calendar\n dateFormat={this.dateFormat}\n singleValue={this.singleValue}\n firstDayOfWeek={this.firstDayOfWeek}\n numberOfCalendars={this.numberOfCalendars}\n min={this.min}\n max={this.max}\n locale={this.locale}\n shortcutsPlacement={this.shortcutsPlacement}\n showActions={this.showActions}\n shortcuts={this.shortcuts}\n showWeekNumbers={this.showWeekNumbers}\n disabledDates={this.disabledDates}\n onValueChanged={this.handleCalendarValueChanged}\n ></nv-calendar>\n </div>\n </nv-popover>\n\n {((this.description && this.description.length > 0) ||\n this.el.querySelector('[slot=\"description\"]')) && (\n <div class=\"description\">\n <slot name=\"description\">{this.description}</slot>\n </div>\n )}\n\n {(this.errorDescription ||\n this.el.querySelector('[slot=\"error-description\"]')) && (\n <div hidden={!this.error} class=\"error-description\">\n {this.el.querySelector('[slot=\"error-description\"]') ? (\n <slot name=\"error-description\"></slot>\n ) : (\n this.errorDescription\n )}\n </div>\n )}\n\n <slot></slot>\n </Host>\n );\n }\n //#endregion RENDER\n}\n"]}
|
|
@@ -1,3 +1,41 @@
|
|
|
1
|
+
/* TODO: integrate this logic in the proper structure */
|
|
2
|
+
nv-fieldslider .slider-container .track-container:has(.thumb:hover) .track-range {
|
|
3
|
+
background: var(--components-slider-track-filled-hover);
|
|
4
|
+
}
|
|
5
|
+
nv-fieldslider .slider-container .track-container:has(.thumb:hover) .thumb {
|
|
6
|
+
border-color: var(--components-slider-track-filled-hover);
|
|
7
|
+
}
|
|
8
|
+
nv-fieldslider .slider-container .track-container:has(.thumb:focus) .track-range {
|
|
9
|
+
background: var(--components-slider-track-filled-focus);
|
|
10
|
+
}
|
|
11
|
+
nv-fieldslider .slider-container .track-container:has(.thumb:focus) .thumb {
|
|
12
|
+
border-color: var(--components-slider-track-filled-focus);
|
|
13
|
+
}
|
|
14
|
+
nv-fieldslider[error] .slider-container .track-container .track .track-range {
|
|
15
|
+
background: var(--components-slider-track-filled-error);
|
|
16
|
+
}
|
|
17
|
+
nv-fieldslider[error] .slider-container .track-container .track .thumb {
|
|
18
|
+
border-color: var(--components-slider-track-filled-error);
|
|
19
|
+
}
|
|
20
|
+
nv-fieldslider[error] .slider-container .track-container .track .thumb:hover {
|
|
21
|
+
border-color: var(--components-slider-track-filled-error);
|
|
22
|
+
outline: calc(var(--focus-outline-stroke) * 1) solid var(--components-slider-track-filled-error);
|
|
23
|
+
outline-offset: calc(var(--focus-outline-offset) * 1);
|
|
24
|
+
background-color: var(--components-slider-handler-background-error);
|
|
25
|
+
}
|
|
26
|
+
nv-fieldslider[error] .slider-container .track-container .track .thumb:focus {
|
|
27
|
+
border-color: var(--components-slider-track-filled-error);
|
|
28
|
+
outline: calc(var(--focus-outline-stroke) * 1) solid var(--components-slider-track-filled-error);
|
|
29
|
+
outline-offset: calc(var(--focus-outline-offset) * 1);
|
|
30
|
+
background-color: var(--components-slider-track-filled-error);
|
|
31
|
+
}
|
|
32
|
+
nv-fieldslider[error] .slider-container .track-container:has(.thumb:hover) .track-range {
|
|
33
|
+
background: var(--components-slider-track-filled-error);
|
|
34
|
+
}
|
|
35
|
+
nv-fieldslider[error] .slider-container .track-container:has(.thumb:hover) .thumb {
|
|
36
|
+
border-color: var(--components-slider-track-filled-error);
|
|
37
|
+
}
|
|
38
|
+
|
|
1
39
|
nv-fielddate {
|
|
2
40
|
--nv-field-border-default: var(--components-form-field-border-default);
|
|
3
41
|
--nv-field-border-hover: var(--components-form-field-border-hover);
|
|
@@ -128,6 +166,7 @@ nv-fielddate .input-wrapper .input-container input {
|
|
|
128
166
|
font-weight: 500;
|
|
129
167
|
line-height: var(--form-field-line-height);
|
|
130
168
|
width: 100%;
|
|
169
|
+
/* Hide Edge built-in password reveal and clear icons */
|
|
131
170
|
}
|
|
132
171
|
nv-fielddate .input-wrapper .input-container input:focus {
|
|
133
172
|
outline: none;
|
|
@@ -142,6 +181,11 @@ nv-fielddate .input-wrapper .input-container input::placeholder {
|
|
|
142
181
|
font-weight: 400;
|
|
143
182
|
line-height: var(--form-field-line-height);
|
|
144
183
|
}
|
|
184
|
+
nv-fielddate .input-wrapper .input-container input[type=password]::-ms-clear, nv-fielddate .input-wrapper .input-container input[type=password]::-ms-reveal {
|
|
185
|
+
display: none;
|
|
186
|
+
width: 0;
|
|
187
|
+
height: 0;
|
|
188
|
+
}
|
|
145
189
|
nv-fielddate .input-wrapper .input-container > nv-iconbutton {
|
|
146
190
|
border: 0px;
|
|
147
191
|
border-radius: 0px;
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
/* eslint-disable jsdoc/require-jsdoc */
|
|
2
|
+
import { describe, it, expect } from "vitest";
|
|
3
|
+
/**
|
|
4
|
+
* Logic tests for nv-fielddate basic functionality
|
|
5
|
+
*
|
|
6
|
+
* These tests validate basic utility functions and logic
|
|
7
|
+
* without testing the full component implementation.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Utility function to convert date format to inputmask format
|
|
11
|
+
* @param {string} format - The date format
|
|
12
|
+
* @returns {string} Format adapted for Inputmask
|
|
13
|
+
*/
|
|
14
|
+
function convertToInputmaskFormat(format) {
|
|
15
|
+
switch (format) {
|
|
16
|
+
case 'DD/MM/YYYY':
|
|
17
|
+
return 'dd/mm/yyyy';
|
|
18
|
+
case 'MM/DD/YYYY':
|
|
19
|
+
return 'mm/dd/yyyy';
|
|
20
|
+
case 'YYYY-MM-DD':
|
|
21
|
+
return 'yyyy-mm-dd';
|
|
22
|
+
case 'DD.MM.YYYY':
|
|
23
|
+
return 'dd.mm.yyyy';
|
|
24
|
+
case 'YYYYMMDD':
|
|
25
|
+
return 'yyyymmdd';
|
|
26
|
+
default:
|
|
27
|
+
return format;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Utility function to validate date format
|
|
32
|
+
* @param {string} dateString - Date string to validate
|
|
33
|
+
* @param {string} format - Expected format
|
|
34
|
+
* @returns {boolean} Whether the date matches the format
|
|
35
|
+
*/
|
|
36
|
+
function isValidDateFormat(dateString, format) {
|
|
37
|
+
if (!dateString || !format)
|
|
38
|
+
return false;
|
|
39
|
+
const formatMap = {
|
|
40
|
+
'DD/MM/YYYY': /^\d{2}\/\d{2}\/\d{4}$/,
|
|
41
|
+
'MM/DD/YYYY': /^\d{2}\/\d{2}\/\d{4}$/,
|
|
42
|
+
'YYYY-MM-DD': /^\d{4}-\d{2}-\d{2}$/,
|
|
43
|
+
'DD.MM.YYYY': /^\d{2}\.\d{2}\.\d{4}$/,
|
|
44
|
+
'YYYYMMDD': /^\d{8}$/,
|
|
45
|
+
};
|
|
46
|
+
const regex = formatMap[format];
|
|
47
|
+
return regex ? regex.test(dateString) : false;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Utility function to check if a value has changed
|
|
51
|
+
* @param {string} oldValue - Previous value
|
|
52
|
+
* @param {string} newValue - New value
|
|
53
|
+
* @returns {boolean} Whether the value has changed
|
|
54
|
+
*/
|
|
55
|
+
function hasValueChanged(oldValue, newValue) {
|
|
56
|
+
return oldValue !== newValue;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Utility function to normalize empty values
|
|
60
|
+
* @param {string | null | undefined} value - Value to normalize
|
|
61
|
+
* @returns {string} Normalized value
|
|
62
|
+
*/
|
|
63
|
+
function normalizeValue(value) {
|
|
64
|
+
return value || '';
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Utility function to determine selection range based on date format
|
|
68
|
+
* @param {string} format - Date format
|
|
69
|
+
* @returns {object} Selection range with start and end
|
|
70
|
+
*/
|
|
71
|
+
function getSelectionRange(format) {
|
|
72
|
+
if (format.startsWith('DD') || format.startsWith('MM')) {
|
|
73
|
+
return { start: 0, end: 2 };
|
|
74
|
+
}
|
|
75
|
+
else if (format.startsWith('YYYY')) {
|
|
76
|
+
return { start: 0, end: 4 };
|
|
77
|
+
}
|
|
78
|
+
return { start: 0, end: 0 };
|
|
79
|
+
}
|
|
80
|
+
describe('nv-fielddate - Logic Tests', () => {
|
|
81
|
+
describe('Input Mask Format Conversion', () => {
|
|
82
|
+
it('should convert DD/MM/YYYY format correctly', () => {
|
|
83
|
+
expect(convertToInputmaskFormat('DD/MM/YYYY')).toBe('dd/mm/yyyy');
|
|
84
|
+
});
|
|
85
|
+
it('should convert MM/DD/YYYY format correctly', () => {
|
|
86
|
+
expect(convertToInputmaskFormat('MM/DD/YYYY')).toBe('mm/dd/yyyy');
|
|
87
|
+
});
|
|
88
|
+
it('should convert YYYY-MM-DD format correctly', () => {
|
|
89
|
+
expect(convertToInputmaskFormat('YYYY-MM-DD')).toBe('yyyy-mm-dd');
|
|
90
|
+
});
|
|
91
|
+
it('should convert DD.MM.YYYY format correctly', () => {
|
|
92
|
+
expect(convertToInputmaskFormat('DD.MM.YYYY')).toBe('dd.mm.yyyy');
|
|
93
|
+
});
|
|
94
|
+
it('should convert YYYYMMDD format correctly', () => {
|
|
95
|
+
expect(convertToInputmaskFormat('YYYYMMDD')).toBe('yyyymmdd');
|
|
96
|
+
});
|
|
97
|
+
it('should return original format for unknown formats', () => {
|
|
98
|
+
const unknownFormat = 'CUSTOM-FORMAT';
|
|
99
|
+
expect(convertToInputmaskFormat(unknownFormat)).toBe(unknownFormat);
|
|
100
|
+
});
|
|
101
|
+
it('should handle empty string', () => {
|
|
102
|
+
expect(convertToInputmaskFormat('')).toBe('');
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
describe('Date Format Validation', () => {
|
|
106
|
+
it('should validate DD/MM/YYYY format correctly', () => {
|
|
107
|
+
expect(isValidDateFormat('15/03/2024', 'DD/MM/YYYY')).toBe(true);
|
|
108
|
+
expect(isValidDateFormat('1/3/2024', 'DD/MM/YYYY')).toBe(false);
|
|
109
|
+
expect(isValidDateFormat('15-03-2024', 'DD/MM/YYYY')).toBe(false);
|
|
110
|
+
expect(isValidDateFormat('', 'DD/MM/YYYY')).toBe(false);
|
|
111
|
+
});
|
|
112
|
+
it('should validate MM/DD/YYYY format correctly', () => {
|
|
113
|
+
expect(isValidDateFormat('03/15/2024', 'MM/DD/YYYY')).toBe(true);
|
|
114
|
+
expect(isValidDateFormat('3/15/2024', 'MM/DD/YYYY')).toBe(false);
|
|
115
|
+
expect(isValidDateFormat('03-15-2024', 'MM/DD/YYYY')).toBe(false);
|
|
116
|
+
});
|
|
117
|
+
it('should validate YYYY-MM-DD format correctly', () => {
|
|
118
|
+
expect(isValidDateFormat('2024-03-15', 'YYYY-MM-DD')).toBe(true);
|
|
119
|
+
expect(isValidDateFormat('24-3-15', 'YYYY-MM-DD')).toBe(false);
|
|
120
|
+
expect(isValidDateFormat('2024/03/15', 'YYYY-MM-DD')).toBe(false);
|
|
121
|
+
});
|
|
122
|
+
it('should validate DD.MM.YYYY format correctly', () => {
|
|
123
|
+
expect(isValidDateFormat('15.03.2024', 'DD.MM.YYYY')).toBe(true);
|
|
124
|
+
expect(isValidDateFormat('15/03/2024', 'DD.MM.YYYY')).toBe(false);
|
|
125
|
+
});
|
|
126
|
+
it('should validate YYYYMMDD format correctly', () => {
|
|
127
|
+
expect(isValidDateFormat('20240315', 'YYYYMMDD')).toBe(true);
|
|
128
|
+
expect(isValidDateFormat('2024-03-15', 'YYYYMMDD')).toBe(false);
|
|
129
|
+
});
|
|
130
|
+
it('should handle invalid inputs gracefully', () => {
|
|
131
|
+
expect(isValidDateFormat('invalid', 'DD/MM/YYYY')).toBe(false);
|
|
132
|
+
expect(isValidDateFormat('15/03/2024', 'UNKNOWN_FORMAT')).toBe(false);
|
|
133
|
+
expect(isValidDateFormat('', '')).toBe(false);
|
|
134
|
+
});
|
|
135
|
+
});
|
|
136
|
+
describe('Value Change Detection', () => {
|
|
137
|
+
it('should detect when value changes', () => {
|
|
138
|
+
expect(hasValueChanged('', '2024-03-15')).toBe(true);
|
|
139
|
+
expect(hasValueChanged('2024-03-15', '2024-03-16')).toBe(true);
|
|
140
|
+
expect(hasValueChanged('2024-03-15', '2024-03-15')).toBe(false);
|
|
141
|
+
});
|
|
142
|
+
it('should handle empty values correctly', () => {
|
|
143
|
+
expect(hasValueChanged('', '')).toBe(false);
|
|
144
|
+
expect(hasValueChanged('value', '')).toBe(true);
|
|
145
|
+
expect(hasValueChanged('', 'value')).toBe(true);
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
describe('Value Normalization', () => {
|
|
149
|
+
it('should normalize empty values correctly', () => {
|
|
150
|
+
expect(normalizeValue('')).toBe('');
|
|
151
|
+
expect(normalizeValue('2024-03-15')).toBe('2024-03-15');
|
|
152
|
+
expect(normalizeValue(null)).toBe('');
|
|
153
|
+
expect(normalizeValue(undefined)).toBe('');
|
|
154
|
+
});
|
|
155
|
+
it('should preserve valid values', () => {
|
|
156
|
+
const validValue = '15/03/2024';
|
|
157
|
+
expect(normalizeValue(validValue)).toBe(validValue);
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
describe('Selection Range Logic', () => {
|
|
161
|
+
it('should return correct range for DD format', () => {
|
|
162
|
+
expect(getSelectionRange('DD/MM/YYYY')).toEqual({ start: 0, end: 2 });
|
|
163
|
+
expect(getSelectionRange('DD.MM.YYYY')).toEqual({ start: 0, end: 2 });
|
|
164
|
+
});
|
|
165
|
+
it('should return correct range for MM format', () => {
|
|
166
|
+
expect(getSelectionRange('MM/DD/YYYY')).toEqual({ start: 0, end: 2 });
|
|
167
|
+
});
|
|
168
|
+
it('should return correct range for YYYY format', () => {
|
|
169
|
+
expect(getSelectionRange('YYYY-MM-DD')).toEqual({ start: 0, end: 4 });
|
|
170
|
+
expect(getSelectionRange('YYYYMMDD')).toEqual({ start: 0, end: 4 });
|
|
171
|
+
});
|
|
172
|
+
it('should handle unknown formats', () => {
|
|
173
|
+
expect(getSelectionRange('UNKNOWN')).toEqual({ start: 0, end: 0 });
|
|
174
|
+
expect(getSelectionRange('')).toEqual({ start: 0, end: 0 });
|
|
175
|
+
});
|
|
176
|
+
});
|
|
177
|
+
describe('Edge Cases', () => {
|
|
178
|
+
it('should handle leap year dates in validation', () => {
|
|
179
|
+
expect(isValidDateFormat('29/02/2024', 'DD/MM/YYYY')).toBe(true);
|
|
180
|
+
expect(isValidDateFormat('2024-02-29', 'YYYY-MM-DD')).toBe(true);
|
|
181
|
+
});
|
|
182
|
+
it('should handle year boundaries', () => {
|
|
183
|
+
expect(isValidDateFormat('31/12/2024', 'DD/MM/YYYY')).toBe(true);
|
|
184
|
+
expect(isValidDateFormat('01/01/2025', 'DD/MM/YYYY')).toBe(true);
|
|
185
|
+
});
|
|
186
|
+
it('should handle format conversion edge cases', () => {
|
|
187
|
+
expect(convertToInputmaskFormat(null)).toBe(null);
|
|
188
|
+
expect(convertToInputmaskFormat(undefined)).toBe(undefined);
|
|
189
|
+
});
|
|
190
|
+
it('should handle value change detection with special characters', () => {
|
|
191
|
+
expect(hasValueChanged('15/03/2024', '15/03/2024')).toBe(false);
|
|
192
|
+
expect(hasValueChanged('15/03/2024', '15-03-2024')).toBe(true);
|
|
193
|
+
});
|
|
194
|
+
});
|
|
195
|
+
});
|
|
196
|
+
//# sourceMappingURL=nv-fielddate.logic.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nv-fielddate.logic.test.js","sourceRoot":"","sources":["../../../../src/components/nv-fielddate/test/nv-fielddate.logic.test.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE9C;;;;;GAKG;AAEH;;;;GAIG;AACH,SAAS,wBAAwB,CAAC,MAAc;IAC9C,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,YAAY;YACf,OAAO,YAAY,CAAC;QACtB,KAAK,YAAY;YACf,OAAO,YAAY,CAAC;QACtB,KAAK,YAAY;YACf,OAAO,YAAY,CAAC;QACtB,KAAK,YAAY;YACf,OAAO,YAAY,CAAC;QACtB,KAAK,UAAU;YACb,OAAO,UAAU,CAAC;QACpB;YACE,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,UAAkB,EAAE,MAAc;IAC3D,IAAI,CAAC,UAAU,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAEzC,MAAM,SAAS,GAAG;QAChB,YAAY,EAAE,uBAAuB;QACrC,YAAY,EAAE,uBAAuB;QACrC,YAAY,EAAE,qBAAqB;QACnC,YAAY,EAAE,uBAAuB;QACrC,UAAU,EAAE,SAAS;KACtB,CAAC;IAEF,MAAM,KAAK,GAAG,SAAS,CAAC,MAAgC,CAAC,CAAC;IAC1D,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAChD,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,QAAgB,EAAE,QAAgB;IACzD,OAAO,QAAQ,KAAK,QAAQ,CAAC;AAC/B,CAAC;AAED;;;;GAIG;AACH,SAAS,cAAc,CAAC,KAAgC;IACtD,OAAO,KAAK,IAAI,EAAE,CAAC;AACrB,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,MAAc;IACvC,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACvD,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;IAC9B,CAAC;SAAM,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACrC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;IAC9B,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AAC9B,CAAC;AAED,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;QAC5C,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,MAAM,aAAa,GAAG,eAAe,CAAC;YACtC,MAAM,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,MAAM,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACtC,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,CAAC,iBAAiB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjE,MAAM,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChE,MAAM,CAAC,iBAAiB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClE,MAAM,CAAC,iBAAiB,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,CAAC,iBAAiB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjE,MAAM,CAAC,iBAAiB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjE,MAAM,CAAC,iBAAiB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,CAAC,iBAAiB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjE,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/D,MAAM,CAAC,iBAAiB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,CAAC,iBAAiB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjE,MAAM,CAAC,iBAAiB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,CAAC,iBAAiB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7D,MAAM,CAAC,iBAAiB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/D,MAAM,CAAC,iBAAiB,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtE,MAAM,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACtC,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrD,MAAM,CAAC,eAAe,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/D,MAAM,CAAC,eAAe,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5C,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpC,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACxD,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,UAAU,GAAG,YAAY,CAAC;YAChC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACtE,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACtE,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACnE,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,CAAC,iBAAiB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjE,MAAM,CAAC,iBAAiB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,MAAM,CAAC,iBAAiB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjE,MAAM,CAAC,iBAAiB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,CAAC,wBAAwB,CAAC,IAAyB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvE,MAAM,CAAC,wBAAwB,CAAC,SAA8B,CAAC,CAAC,CAAC,IAAI,CACnE,SAAS,CACV,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;YACtE,MAAM,CAAC,eAAe,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChE,MAAM,CAAC,eAAe,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["/* eslint-disable jsdoc/require-jsdoc */\nimport { describe, it, expect } from 'vitest';\n\n/**\n * Logic tests for nv-fielddate basic functionality\n *\n * These tests validate basic utility functions and logic\n * without testing the full component implementation.\n */\n\n/**\n * Utility function to convert date format to inputmask format\n * @param {string} format - The date format\n * @returns {string} Format adapted for Inputmask\n */\nfunction convertToInputmaskFormat(format: string): string {\n switch (format) {\n case 'DD/MM/YYYY':\n return 'dd/mm/yyyy';\n case 'MM/DD/YYYY':\n return 'mm/dd/yyyy';\n case 'YYYY-MM-DD':\n return 'yyyy-mm-dd';\n case 'DD.MM.YYYY':\n return 'dd.mm.yyyy';\n case 'YYYYMMDD':\n return 'yyyymmdd';\n default:\n return format;\n }\n}\n\n/**\n * Utility function to validate date format\n * @param {string} dateString - Date string to validate\n * @param {string} format - Expected format\n * @returns {boolean} Whether the date matches the format\n */\nfunction isValidDateFormat(dateString: string, format: string): boolean {\n if (!dateString || !format) return false;\n\n const formatMap = {\n 'DD/MM/YYYY': /^\\d{2}\\/\\d{2}\\/\\d{4}$/,\n 'MM/DD/YYYY': /^\\d{2}\\/\\d{2}\\/\\d{4}$/,\n 'YYYY-MM-DD': /^\\d{4}-\\d{2}-\\d{2}$/,\n 'DD.MM.YYYY': /^\\d{2}\\.\\d{2}\\.\\d{4}$/,\n 'YYYYMMDD': /^\\d{8}$/,\n };\n\n const regex = formatMap[format as keyof typeof formatMap];\n return regex ? regex.test(dateString) : false;\n}\n\n/**\n * Utility function to check if a value has changed\n * @param {string} oldValue - Previous value\n * @param {string} newValue - New value\n * @returns {boolean} Whether the value has changed\n */\nfunction hasValueChanged(oldValue: string, newValue: string): boolean {\n return oldValue !== newValue;\n}\n\n/**\n * Utility function to normalize empty values\n * @param {string | null | undefined} value - Value to normalize\n * @returns {string} Normalized value\n */\nfunction normalizeValue(value: string | null | undefined): string {\n return value || '';\n}\n\n/**\n * Utility function to determine selection range based on date format\n * @param {string} format - Date format\n * @returns {object} Selection range with start and end\n */\nfunction getSelectionRange(format: string): { start: number; end: number } {\n if (format.startsWith('DD') || format.startsWith('MM')) {\n return { start: 0, end: 2 };\n } else if (format.startsWith('YYYY')) {\n return { start: 0, end: 4 };\n }\n return { start: 0, end: 0 };\n}\n\ndescribe('nv-fielddate - Logic Tests', () => {\n describe('Input Mask Format Conversion', () => {\n it('should convert DD/MM/YYYY format correctly', () => {\n expect(convertToInputmaskFormat('DD/MM/YYYY')).toBe('dd/mm/yyyy');\n });\n\n it('should convert MM/DD/YYYY format correctly', () => {\n expect(convertToInputmaskFormat('MM/DD/YYYY')).toBe('mm/dd/yyyy');\n });\n\n it('should convert YYYY-MM-DD format correctly', () => {\n expect(convertToInputmaskFormat('YYYY-MM-DD')).toBe('yyyy-mm-dd');\n });\n\n it('should convert DD.MM.YYYY format correctly', () => {\n expect(convertToInputmaskFormat('DD.MM.YYYY')).toBe('dd.mm.yyyy');\n });\n\n it('should convert YYYYMMDD format correctly', () => {\n expect(convertToInputmaskFormat('YYYYMMDD')).toBe('yyyymmdd');\n });\n\n it('should return original format for unknown formats', () => {\n const unknownFormat = 'CUSTOM-FORMAT';\n expect(convertToInputmaskFormat(unknownFormat)).toBe(unknownFormat);\n });\n\n it('should handle empty string', () => {\n expect(convertToInputmaskFormat('')).toBe('');\n });\n });\n\n describe('Date Format Validation', () => {\n it('should validate DD/MM/YYYY format correctly', () => {\n expect(isValidDateFormat('15/03/2024', 'DD/MM/YYYY')).toBe(true);\n expect(isValidDateFormat('1/3/2024', 'DD/MM/YYYY')).toBe(false);\n expect(isValidDateFormat('15-03-2024', 'DD/MM/YYYY')).toBe(false);\n expect(isValidDateFormat('', 'DD/MM/YYYY')).toBe(false);\n });\n\n it('should validate MM/DD/YYYY format correctly', () => {\n expect(isValidDateFormat('03/15/2024', 'MM/DD/YYYY')).toBe(true);\n expect(isValidDateFormat('3/15/2024', 'MM/DD/YYYY')).toBe(false);\n expect(isValidDateFormat('03-15-2024', 'MM/DD/YYYY')).toBe(false);\n });\n\n it('should validate YYYY-MM-DD format correctly', () => {\n expect(isValidDateFormat('2024-03-15', 'YYYY-MM-DD')).toBe(true);\n expect(isValidDateFormat('24-3-15', 'YYYY-MM-DD')).toBe(false);\n expect(isValidDateFormat('2024/03/15', 'YYYY-MM-DD')).toBe(false);\n });\n\n it('should validate DD.MM.YYYY format correctly', () => {\n expect(isValidDateFormat('15.03.2024', 'DD.MM.YYYY')).toBe(true);\n expect(isValidDateFormat('15/03/2024', 'DD.MM.YYYY')).toBe(false);\n });\n\n it('should validate YYYYMMDD format correctly', () => {\n expect(isValidDateFormat('20240315', 'YYYYMMDD')).toBe(true);\n expect(isValidDateFormat('2024-03-15', 'YYYYMMDD')).toBe(false);\n });\n\n it('should handle invalid inputs gracefully', () => {\n expect(isValidDateFormat('invalid', 'DD/MM/YYYY')).toBe(false);\n expect(isValidDateFormat('15/03/2024', 'UNKNOWN_FORMAT')).toBe(false);\n expect(isValidDateFormat('', '')).toBe(false);\n });\n });\n\n describe('Value Change Detection', () => {\n it('should detect when value changes', () => {\n expect(hasValueChanged('', '2024-03-15')).toBe(true);\n expect(hasValueChanged('2024-03-15', '2024-03-16')).toBe(true);\n expect(hasValueChanged('2024-03-15', '2024-03-15')).toBe(false);\n });\n\n it('should handle empty values correctly', () => {\n expect(hasValueChanged('', '')).toBe(false);\n expect(hasValueChanged('value', '')).toBe(true);\n expect(hasValueChanged('', 'value')).toBe(true);\n });\n });\n\n describe('Value Normalization', () => {\n it('should normalize empty values correctly', () => {\n expect(normalizeValue('')).toBe('');\n expect(normalizeValue('2024-03-15')).toBe('2024-03-15');\n expect(normalizeValue(null)).toBe('');\n expect(normalizeValue(undefined)).toBe('');\n });\n\n it('should preserve valid values', () => {\n const validValue = '15/03/2024';\n expect(normalizeValue(validValue)).toBe(validValue);\n });\n });\n\n describe('Selection Range Logic', () => {\n it('should return correct range for DD format', () => {\n expect(getSelectionRange('DD/MM/YYYY')).toEqual({ start: 0, end: 2 });\n expect(getSelectionRange('DD.MM.YYYY')).toEqual({ start: 0, end: 2 });\n });\n\n it('should return correct range for MM format', () => {\n expect(getSelectionRange('MM/DD/YYYY')).toEqual({ start: 0, end: 2 });\n });\n\n it('should return correct range for YYYY format', () => {\n expect(getSelectionRange('YYYY-MM-DD')).toEqual({ start: 0, end: 4 });\n expect(getSelectionRange('YYYYMMDD')).toEqual({ start: 0, end: 4 });\n });\n\n it('should handle unknown formats', () => {\n expect(getSelectionRange('UNKNOWN')).toEqual({ start: 0, end: 0 });\n expect(getSelectionRange('')).toEqual({ start: 0, end: 0 });\n });\n });\n\n describe('Edge Cases', () => {\n it('should handle leap year dates in validation', () => {\n expect(isValidDateFormat('29/02/2024', 'DD/MM/YYYY')).toBe(true);\n expect(isValidDateFormat('2024-02-29', 'YYYY-MM-DD')).toBe(true);\n });\n\n it('should handle year boundaries', () => {\n expect(isValidDateFormat('31/12/2024', 'DD/MM/YYYY')).toBe(true);\n expect(isValidDateFormat('01/01/2025', 'DD/MM/YYYY')).toBe(true);\n });\n\n it('should handle format conversion edge cases', () => {\n expect(convertToInputmaskFormat(null as unknown as string)).toBe(null);\n expect(convertToInputmaskFormat(undefined as unknown as string)).toBe(\n undefined,\n );\n });\n\n it('should handle value change detection with special characters', () => {\n expect(hasValueChanged('15/03/2024', '15/03/2024')).toBe(false);\n expect(hasValueChanged('15/03/2024', '15-03-2024')).toBe(true);\n });\n });\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nv-fielddaterange.docs.js","sourceRoot":"","sources":["../../../src/components/nv-fielddaterange/nv-fielddaterange.docs.tsx"],"names":[],"mappings":"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","sourcesContent":["import { h } from '@stencil/core';\nimport type { NovaDocs } from '../../nova-docs';\nimport { Components } from '../../components';\nimport dayjs from 'dayjs';\n\nconst toKebabCase = (str: string): string =>\n str\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, '')\n .replace(/^-+|-+$/g, '');\n\nconst formats = [\n {\n name: 'ISO 8601',\n dateFormat: 'YYYY-MM-DD[T]HH:mm:ss[Z]',\n value: {\n start: '2025-03-15T00:00:00Z',\n end: '2025-03-20T00:00:00Z',\n },\n },\n {\n name: 'YYYY-MM-DD',\n dateFormat: 'YYYY-MM-DD',\n value: {\n start: '2025-03-15',\n end: '2025-03-20',\n },\n },\n {\n name: 'DD/MM/YYYY',\n dateFormat: 'DD/MM/YYYY',\n value: {\n start: '15/03/2025',\n end: '20/03/2025',\n },\n },\n {\n name: 'MM/DD/YYYY',\n dateFormat: 'MM/DD/YYYY',\n value: {\n start: '03/15/2025',\n end: '03/20/2025',\n },\n },\n {\n name: 'Compact YYYYMMDD',\n dateFormat: 'YYYYMMDD',\n value: {\n start: '20250315',\n end: '20250320',\n },\n },\n {\n name: 'German DD.MM.YYYY',\n dateFormat: 'DD.MM.YYYY',\n value: {\n start: '15.03.2025',\n end: '20.03.2025',\n },\n },\n];\n\nconst formatStories = formats.map(format => ({\n name: `Format${toKebabCase(format.name)}`,\n args: {\n label: `Date Range (${format.name})`,\n description: `Using format: ${format.dateFormat}`,\n startPlaceholder: format.value.start,\n endPlaceholder: format.value.end,\n dateFormat: format.dateFormat,\n locale: format.name === 'German DD.MM.YYYY' ? 'de-DE' : 'en-US',\n value: JSON.stringify(format.value),\n },\n template: <nv-fielddaterange data-storybook-args></nv-fielddaterange>,\n}));\n\nconst getThisQuarter = () => {\n const currentMonth = dayjs().month();\n const startMonth = currentMonth - (currentMonth % 3);\n return {\n start: dayjs().month(startMonth).startOf('month').format('DD/MM/YYYY'),\n end: dayjs()\n .month(startMonth + 2)\n .endOf('month')\n .format('DD/MM/YYYY'),\n };\n};\n\nconst getLastQuarter = () => {\n const currentMonth = dayjs().month();\n const startMonth = currentMonth - (currentMonth % 3) - 3;\n return {\n start: dayjs().month(startMonth).startOf('month').format('DD/MM/YYYY'),\n end: dayjs()\n .month(startMonth + 2)\n .endOf('month')\n .format('DD/MM/YYYY'),\n };\n};\n\nconst getDateRangeShortcuts = () => [\n {\n label: 'Last 7 Days',\n rangeValue: {\n start: dayjs().subtract(7, 'days').format('YYYY-MM-DD'),\n end: dayjs().format('YYYY-MM-DD'),\n },\n },\n {\n label: 'Last Month',\n rangeValue: {\n start: dayjs().subtract(1, 'month').startOf('month').format('YYYY-MM-DD'),\n end: dayjs().subtract(1, 'month').endOf('month').format('YYYY-MM-DD'),\n },\n },\n {\n label: 'Next Month',\n rangeValue: {\n start: dayjs().add(1, 'month').startOf('month').format('YYYY-MM-DD'),\n end: dayjs().add(1, 'month').endOf('month').format('YYYY-MM-DD'),\n },\n },\n {\n label: 'Next Year',\n rangeValue: {\n start: dayjs().add(1, 'year').startOf('year').format('YYYY-MM-DD'),\n end: dayjs().add(1, 'year').endOf('year').format('YYYY-MM-DD'),\n },\n },\n];\n\nconst NvFielddaterangeDocs: NovaDocs<Components.NvFielddaterange> = {\n component: 'nv-fielddaterange',\n subcomponents: ['nv-button', 'nv-iconbutton', 'nv-calendar'],\n badge: 'beta',\n stories: [\n {\n name: 'Default',\n args: {\n startPlaceholder: 'Start date',\n endPlaceholder: 'End date',\n disabledDates: [],\n showWeekNumbers: true,\n showActions: true,\n dateFormat: 'YYYY-MM-DD',\n shortcuts: getDateRangeShortcuts(),\n shortcutsPlacement: 'bottom',\n locale: 'en-BE',\n },\n template: <nv-fielddaterange data-storybook-args></nv-fielddaterange>,\n },\n {\n name: 'WithCalendarOptions',\n args: {\n label: 'Date Range with Calendar Options',\n description: 'Calendar with additional options',\n dateFormat: 'DD/MM/YYYY',\n firstDayOfWeek: 1,\n numberOfCalendars: 2,\n showWeekNumbers: true,\n showActions: true,\n shortcuts: [\n {\n label: 'This Week',\n rangeValue: {\n start: dayjs().startOf('week').format('DD/MM/YYYY'),\n end: dayjs().endOf('week').format('DD/MM/YYYY'),\n },\n },\n {\n label: 'Last Week',\n rangeValue: {\n start: dayjs()\n .subtract(1, 'week')\n .startOf('week')\n .format('DD/MM/YYYY'),\n end: dayjs()\n .subtract(1, 'week')\n .endOf('week')\n .format('DD/MM/YYYY'),\n },\n },\n ],\n shortcutsPlacement: 'bottom',\n },\n template: <nv-fielddaterange data-storybook-args></nv-fielddaterange>,\n },\n {\n name: 'WithShortcutsBottom',\n args: {\n label: 'Date Range with Bottom Shortcuts',\n description: 'Calendar with shortcuts at the bottom',\n dateFormat: 'DD/MM/YYYY',\n showActions: true,\n shortcuts: [\n {\n label: 'This Month',\n rangeValue: {\n start: dayjs().startOf('month').format('DD/MM/YYYY'),\n end: dayjs().endOf('month').format('DD/MM/YYYY'),\n },\n },\n {\n label: 'Last Month',\n rangeValue: {\n start: dayjs()\n .subtract(1, 'month')\n .startOf('month')\n .format('DD/MM/YYYY'),\n end: dayjs()\n .subtract(1, 'month')\n .endOf('month')\n .format('DD/MM/YYYY'),\n },\n },\n ],\n shortcutsPlacement: 'bottom',\n },\n template: <nv-fielddaterange data-storybook-args></nv-fielddaterange>,\n },\n {\n name: 'WithShortcutsRight',\n args: {\n label: 'Date Range with Right Shortcuts',\n description: 'Calendar with shortcuts on the right',\n dateFormat: 'DD/MM/YYYY',\n showActions: true,\n shortcuts: [\n {\n label: 'This Quarter',\n rangeValue: getThisQuarter(),\n },\n {\n label: 'Last Quarter',\n rangeValue: getLastQuarter(),\n },\n ],\n shortcutsPlacement: 'right',\n },\n template: <nv-fielddaterange data-storybook-args></nv-fielddaterange>,\n },\n {\n name: 'WithDisabledDates',\n args: {\n label: 'Date Range with Disabled Dates',\n description: 'Calendar with specific dates disabled',\n dateFormat: 'DD/MM/YYYY',\n disabledDates: [\n dayjs().add(1, 'day').format('DD/MM/YYYY'),\n dayjs().add(3, 'day').format('DD/MM/YYYY'),\n dayjs().add(5, 'day').format('DD/MM/YYYY'),\n ],\n },\n template: <nv-fielddaterange data-storybook-args></nv-fielddaterange>,\n },\n {\n name: 'MultipleCalendars',\n args: {\n label: 'Multiple Calendars',\n description: 'Display multiple calendars side by side',\n dateFormat: 'DD/MM/YYYY',\n numberOfCalendars: 3,\n showWeekNumbers: true,\n },\n template: <nv-fielddaterange data-storybook-args></nv-fielddaterange>,\n },\n {\n name: 'WithMinMax',\n args: {\n label: 'Date Range with Min/Max',\n description: 'Select dates within range',\n dateFormat: 'YYYY-MM-DD',\n min: '2025-02-05',\n max: '2025-02-20',\n },\n template: <nv-fielddaterange data-storybook-args></nv-fielddaterange>,\n },\n {\n name: 'CulturalVariants',\n args: {\n numberOfCalendars: 2,\n firstDayOfWeek: 1,\n showWeekNumbers: true,\n },\n template: (\n <div class=\"flex flex-wrap gap-4\">\n <nv-fielddaterange\n label=\"Date Range (en-BE)\"\n locale=\"en-BE\"\n dateFormat=\"YYYY-MM-DD\"\n data-storybook-args\n />\n <nv-fielddaterange\n label=\"Date Range (fr-BE)\"\n locale=\"fr-BE\"\n dateFormat=\"DD/MM/YYYY\"\n data-storybook-args\n />\n <nv-fielddaterange\n label=\"Date Range (de-DE)\"\n locale=\"de-DE\"\n dateFormat=\"DD.MM.YYYY\"\n data-storybook-args\n />\n </div>\n ),\n },\n ...formatStories,\n ],\n};\n\nexport default NvFielddaterangeDocs;\n"]}
|
|
1
|
+
{"version":3,"file":"nv-fielddaterange.docs.js","sourceRoot":"","sources":["../../../src/components/nv-fielddaterange/nv-fielddaterange.docs.tsx"],"names":[],"mappings":"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","sourcesContent":["import { h } from '@stencil/core';\nimport type { NovaDocs } from '../../nova-docs';\nimport { Components } from '../../components';\nimport dayjs from 'dayjs';\n\nconst toKebabCase = (str: string): string =>\n str\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, '')\n .replace(/^-+|-+$/g, '');\n\nconst formats = [\n {\n name: 'ISO 8601',\n dateFormat: 'YYYY-MM-DD[T]HH:mm:ss[Z]',\n value: {\n start: '2025-03-15T00:00:00Z',\n end: '2025-03-20T00:00:00Z',\n },\n },\n {\n name: 'YYYY-MM-DD',\n dateFormat: 'YYYY-MM-DD',\n value: {\n start: '2025-03-15',\n end: '2025-03-20',\n },\n },\n {\n name: 'DD/MM/YYYY',\n dateFormat: 'DD/MM/YYYY',\n value: {\n start: '15/03/2025',\n end: '20/03/2025',\n },\n },\n {\n name: 'MM/DD/YYYY',\n dateFormat: 'MM/DD/YYYY',\n value: {\n start: '03/15/2025',\n end: '03/20/2025',\n },\n },\n {\n name: 'Compact YYYYMMDD',\n dateFormat: 'YYYYMMDD',\n value: {\n start: '20250315',\n end: '20250320',\n },\n },\n {\n name: 'German DD.MM.YYYY',\n dateFormat: 'DD.MM.YYYY',\n value: {\n start: '15.03.2025',\n end: '20.03.2025',\n },\n },\n];\n\nconst formatStories = formats.map(format => ({\n name: `Format${toKebabCase(format.name)}`,\n args: {\n label: `Date Range (${format.name})`,\n description: `Using format: ${format.dateFormat}`,\n startPlaceholder: format.value.start,\n endPlaceholder: format.value.end,\n dateFormat: format.dateFormat,\n locale: format.name === 'German DD.MM.YYYY' ? 'de-DE' : 'en-US',\n value: JSON.stringify(format.value),\n },\n template: <nv-fielddaterange data-storybook-args></nv-fielddaterange>,\n}));\n\nconst getThisQuarter = () => {\n const currentMonth = dayjs().month();\n const startMonth = currentMonth - (currentMonth % 3);\n return {\n start: dayjs().month(startMonth).startOf('month').format('DD/MM/YYYY'),\n end: dayjs()\n .month(startMonth + 2)\n .endOf('month')\n .format('DD/MM/YYYY'),\n };\n};\n\nconst getLastQuarter = () => {\n const currentMonth = dayjs().month();\n const startMonth = currentMonth - (currentMonth % 3) - 3;\n return {\n start: dayjs().month(startMonth).startOf('month').format('DD/MM/YYYY'),\n end: dayjs()\n .month(startMonth + 2)\n .endOf('month')\n .format('DD/MM/YYYY'),\n };\n};\n\nconst getDateRangeShortcuts = () => [\n {\n label: 'Last 7 Days',\n rangeValue: {\n start: dayjs().subtract(7, 'days').format('YYYY-MM-DD'),\n end: dayjs().format('YYYY-MM-DD'),\n },\n },\n {\n label: 'Last Month',\n rangeValue: {\n start: dayjs().subtract(1, 'month').startOf('month').format('YYYY-MM-DD'),\n end: dayjs().subtract(1, 'month').endOf('month').format('YYYY-MM-DD'),\n },\n },\n {\n label: 'Next Month',\n rangeValue: {\n start: dayjs().add(1, 'month').startOf('month').format('YYYY-MM-DD'),\n end: dayjs().add(1, 'month').endOf('month').format('YYYY-MM-DD'),\n },\n },\n {\n label: 'Next Year',\n rangeValue: {\n start: dayjs().add(1, 'year').startOf('year').format('YYYY-MM-DD'),\n end: dayjs().add(1, 'year').endOf('year').format('YYYY-MM-DD'),\n },\n },\n];\n\nconst NvFielddaterangeDocs: NovaDocs<Components.NvFielddaterange> = {\n component: 'nv-fielddaterange',\n subcomponents: ['nv-button', 'nv-iconbutton', 'nv-calendar'],\n badge: 'beta',\n stories: [\n {\n name: 'Default',\n args: {\n startPlaceholder: 'Start date',\n endPlaceholder: 'End date',\n showWeekNumbers: true,\n showActions: true,\n dateFormat: 'YYYY-MM-DD',\n shortcuts: getDateRangeShortcuts(),\n shortcutsPlacement: 'bottom',\n locale: 'en-BE',\n },\n template: <nv-fielddaterange data-storybook-args></nv-fielddaterange>,\n },\n {\n name: 'WithCalendarOptions',\n args: {\n label: 'Date Range with Calendar Options',\n description: 'Calendar with additional options',\n dateFormat: 'DD/MM/YYYY',\n firstDayOfWeek: 1,\n numberOfCalendars: 2,\n showWeekNumbers: true,\n showActions: true,\n shortcuts: [\n {\n label: 'This Week',\n rangeValue: {\n start: dayjs().startOf('week').format('DD/MM/YYYY'),\n end: dayjs().endOf('week').format('DD/MM/YYYY'),\n },\n },\n {\n label: 'Last Week',\n rangeValue: {\n start: dayjs()\n .subtract(1, 'week')\n .startOf('week')\n .format('DD/MM/YYYY'),\n end: dayjs()\n .subtract(1, 'week')\n .endOf('week')\n .format('DD/MM/YYYY'),\n },\n },\n ],\n shortcutsPlacement: 'bottom',\n },\n template: <nv-fielddaterange data-storybook-args></nv-fielddaterange>,\n },\n {\n name: 'WithShortcutsBottom',\n args: {\n label: 'Date Range with Bottom Shortcuts',\n description: 'Calendar with shortcuts at the bottom',\n dateFormat: 'DD/MM/YYYY',\n showActions: true,\n shortcuts: [\n {\n label: 'This Month',\n rangeValue: {\n start: dayjs().startOf('month').format('DD/MM/YYYY'),\n end: dayjs().endOf('month').format('DD/MM/YYYY'),\n },\n },\n {\n label: 'Last Month',\n rangeValue: {\n start: dayjs()\n .subtract(1, 'month')\n .startOf('month')\n .format('DD/MM/YYYY'),\n end: dayjs()\n .subtract(1, 'month')\n .endOf('month')\n .format('DD/MM/YYYY'),\n },\n },\n ],\n shortcutsPlacement: 'bottom',\n },\n template: <nv-fielddaterange data-storybook-args></nv-fielddaterange>,\n },\n {\n name: 'WithShortcutsRight',\n args: {\n label: 'Date Range with Right Shortcuts',\n description: 'Calendar with shortcuts on the right',\n dateFormat: 'DD/MM/YYYY',\n showActions: true,\n shortcuts: [\n {\n label: 'This Quarter',\n rangeValue: getThisQuarter(),\n },\n {\n label: 'Last Quarter',\n rangeValue: getLastQuarter(),\n },\n ],\n shortcutsPlacement: 'right',\n },\n template: <nv-fielddaterange data-storybook-args></nv-fielddaterange>,\n },\n {\n name: 'WithDisabledDates',\n args: {\n label: 'Date Range with Disabled Dates',\n description: 'Calendar with specific dates disabled',\n dateFormat: 'DD/MM/YYYY',\n disabledDates: [\n dayjs().add(1, 'day').format('DD/MM/YYYY'),\n dayjs().add(3, 'day').format('DD/MM/YYYY'),\n dayjs().add(5, 'day').format('DD/MM/YYYY'),\n ],\n },\n template: <nv-fielddaterange data-storybook-args></nv-fielddaterange>,\n },\n {\n name: 'MultipleCalendars',\n args: {\n label: 'Multiple Calendars',\n description: 'Display multiple calendars side by side',\n dateFormat: 'DD/MM/YYYY',\n numberOfCalendars: 3,\n showWeekNumbers: true,\n },\n template: <nv-fielddaterange data-storybook-args></nv-fielddaterange>,\n },\n {\n name: 'WithMinMax',\n args: {\n label: 'Date Range with Min/Max',\n description: 'Select dates within range',\n dateFormat: 'YYYY-MM-DD',\n min: '2025-02-05',\n max: '2025-02-20',\n },\n template: <nv-fielddaterange data-storybook-args></nv-fielddaterange>,\n },\n {\n name: 'CulturalVariants',\n args: {\n numberOfCalendars: 2,\n firstDayOfWeek: 1,\n showWeekNumbers: true,\n },\n template: (\n <div class=\"flex flex-wrap gap-4\">\n <nv-fielddaterange\n label=\"Date Range (en-BE)\"\n locale=\"en-BE\"\n dateFormat=\"YYYY-MM-DD\"\n data-storybook-args\n />\n <nv-fielddaterange\n label=\"Date Range (fr-BE)\"\n locale=\"fr-BE\"\n dateFormat=\"DD/MM/YYYY\"\n data-storybook-args\n />\n <nv-fielddaterange\n label=\"Date Range (de-DE)\"\n locale=\"de-DE\"\n dateFormat=\"DD.MM.YYYY\"\n data-storybook-args\n />\n </div>\n ),\n },\n ...formatStories,\n ],\n};\n\nexport default NvFielddaterangeDocs;\n"]}
|