@nova-design-system/nova-webcomponents 3.5.0 → 3.7.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/{timeline.animation-dbb9c5ea.js → collapse.animation-a129dc3f.js} +5 -26
- package/dist/cjs/collapse.animation-a129dc3f.js.map +1 -0
- package/dist/cjs/fade.animation-644b5c4d.js +70 -0
- package/dist/cjs/fade.animation-644b5c4d.js.map +1 -0
- package/dist/cjs/{grow.animation-a1f0bc22.js → grow.animation-6d003803.js} +5 -5
- package/dist/cjs/{grow.animation-a1f0bc22.js.map → grow.animation-6d003803.js.map} +1 -1
- package/dist/cjs/index-c56424e5.js +8 -0
- package/dist/cjs/index.cjs.js +6 -4
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/native.cjs.js +1 -1
- package/dist/cjs/nv-accordion-item.cjs.entry.js +181 -0
- package/dist/cjs/nv-accordion-item.cjs.entry.js.map +1 -0
- package/dist/cjs/nv-accordion.cjs.entry.js +167 -0
- package/dist/cjs/nv-accordion.cjs.entry.js.map +1 -0
- package/dist/cjs/nv-alert.cjs.entry.js +6 -4
- package/dist/cjs/nv-alert.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-avatar.cjs.entry.js +1 -1
- package/dist/cjs/nv-badge_2.cjs.entry.js +9 -7
- package/dist/cjs/nv-badge_2.cjs.entry.js.map +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 +96 -66
- 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 +2 -2
- package/dist/cjs/nv-datagridcolumn.cjs.entry.js +1 -1
- package/dist/cjs/nv-dialog.cjs.entry.js +19 -6
- package/dist/cjs/nv-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-dialogfooter_2.cjs.entry.js +2 -2
- package/dist/cjs/nv-fieldcheckbox.cjs.entry.js +4 -4
- package/dist/cjs/nv-fieldcheckbox.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fielddate.cjs.entry.js +121 -35
- package/dist/cjs/nv-fielddate.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fielddaterange.cjs.entry.js +32 -4
- package/dist/cjs/nv-fielddaterange.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fielddropdown.cjs.entry.js +3 -3
- package/dist/cjs/nv-fielddropdownitem.cjs.entry.js +1 -1
- package/dist/cjs/nv-fieldmultiselect.cjs.entry.js +95 -102
- package/dist/cjs/nv-fieldmultiselect.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldnumber.cjs.entry.js +3 -3
- package/dist/cjs/nv-fieldpassword.cjs.entry.js +3 -3
- package/dist/cjs/nv-fieldradio.cjs.entry.js +3 -3
- package/dist/cjs/nv-fieldselect.cjs.entry.js +5 -5
- package/dist/cjs/nv-fieldslider.cjs.entry.js +53 -9
- package/dist/cjs/nv-fieldslider.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldtext.cjs.entry.js +3 -3
- package/dist/cjs/nv-fieldtextarea.cjs.entry.js +3 -3
- package/dist/cjs/nv-fieldtime.cjs.entry.js +10 -10
- package/dist/cjs/nv-fieldtime.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-icon.cjs.entry.js +1 -1
- package/dist/cjs/nv-iconbutton_2.cjs.entry.js +2 -2
- package/dist/cjs/nv-menu.cjs.entry.js +1 -1
- package/dist/cjs/nv-menuitem.cjs.entry.js +1 -1
- package/dist/cjs/nv-popover.cjs.entry.js +4 -3
- package/dist/cjs/nv-popover.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-row.cjs.entry.js +1 -1
- package/dist/cjs/nv-stack.cjs.entry.js +1 -1
- package/dist/cjs/nv-table.cjs.entry.js +2 -2
- package/dist/cjs/nv-toggle.cjs.entry.js +2 -2
- package/dist/cjs/nv-tooltip.cjs.entry.js +3 -2
- package/dist/cjs/nv-tooltip.cjs.entry.js.map +1 -1
- package/dist/cjs/{fade.animation-0d33d198.js → stylefire.es-717e022a.js} +1 -65
- package/dist/cjs/stylefire.es-717e022a.js.map +1 -0
- package/dist/cjs/timeline.animation-155e8839.js +25 -0
- package/dist/cjs/timeline.animation-155e8839.js.map +1 -0
- package/dist/collection/collection-manifest.json +2 -0
- package/dist/collection/components/nv-accordion/nv-accordion.docs.js +153 -0
- package/dist/collection/components/nv-accordion/nv-accordion.docs.js.map +1 -0
- package/dist/collection/components/nv-accordion/nv-accordion.js +310 -0
- package/dist/collection/components/nv-accordion/nv-accordion.js.map +1 -0
- package/dist/collection/components/nv-accordion/styles/nv-accordion.css +15 -0
- package/dist/collection/components/nv-accordion-item/nv-accordion-item.docs.js +6 -0
- package/dist/collection/components/nv-accordion-item/nv-accordion-item.docs.js.map +1 -0
- package/dist/collection/components/nv-accordion-item/nv-accordion-item.js +353 -0
- package/dist/collection/components/nv-accordion-item/nv-accordion-item.js.map +1 -0
- package/dist/collection/components/nv-accordion-item/styles/nv-accordion-item.css +66 -0
- package/dist/collection/components/nv-alert/nv-alert.js +1 -1
- package/dist/collection/components/nv-avatar/nv-avatar.js +1 -1
- package/dist/collection/components/nv-badge/nv-badge.js +2 -2
- package/dist/collection/components/nv-breadcrumb/nv-breadcrumb.js +1 -1
- package/dist/collection/components/nv-breadcrumbs/nv-breadcrumbs.js +1 -1
- package/dist/collection/components/nv-button/nv-button.js +1 -1
- package/dist/collection/components/nv-calendar/nv-calendar.css +10 -0
- package/dist/collection/components/nv-calendar/nv-calendar.js +110 -43
- package/dist/collection/components/nv-calendar/nv-calendar.js.map +1 -1
- package/dist/collection/components/nv-calendar/nv-calendar.utils.js +0 -20
- package/dist/collection/components/nv-calendar/nv-calendar.utils.js.map +1 -1
- package/dist/collection/components/nv-calendar/partials/calendar-grid.js +6 -2
- package/dist/collection/components/nv-calendar/partials/calendar-grid.js.map +1 -1
- package/dist/collection/components/nv-calendar/test/nv-calendar.utils.test.js +5 -31
- package/dist/collection/components/nv-calendar/test/nv-calendar.utils.test.js.map +1 -1
- package/dist/collection/components/nv-col/nv-col.js +1 -1
- package/dist/collection/components/nv-datagrid/nv-datagrid.js +2 -2
- package/dist/collection/components/nv-datagridcolumn/nv-datagridcolumn.js +1 -1
- package/dist/collection/components/nv-dialog/nv-dialog.css +1 -1
- package/dist/collection/components/nv-dialog/nv-dialog.js +38 -5
- package/dist/collection/components/nv-dialog/nv-dialog.js.map +1 -1
- package/dist/collection/components/nv-dialogfooter/nv-dialogfooter.js +1 -1
- package/dist/collection/components/nv-dialogheader/nv-dialogheader.js +1 -1
- package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.js +6 -4
- package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.js.map +1 -1
- package/dist/collection/components/nv-fielddate/nv-fielddate.js +148 -34
- package/dist/collection/components/nv-fielddate/nv-fielddate.js.map +1 -1
- package/dist/collection/components/nv-fielddate/styles/nv-fielddate.css +2 -0
- package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js +61 -4
- package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js.map +1 -1
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js +3 -3
- package/dist/collection/components/nv-fielddropdownitem/nv-fielddropdownitem.js +1 -1
- package/dist/collection/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.js +7 -1
- package/dist/collection/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.js.map +1 -1
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.docs.js +44 -34
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js +127 -117
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js.map +1 -1
- package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js +3 -3
- package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.js +3 -3
- package/dist/collection/components/nv-fieldradio/nv-fieldradio.js +3 -3
- package/dist/collection/components/nv-fieldselect/nv-fieldselect.js +5 -5
- package/dist/collection/components/nv-fieldslider/nv-fieldslider.js +3 -3
- package/dist/collection/components/nv-fieldslider/nv-fieldslider.js.map +1 -1
- package/dist/collection/components/nv-fieldslider/nv-fieldslider.utils.js +45 -1
- package/dist/collection/components/nv-fieldslider/nv-fieldslider.utils.js.map +1 -1
- package/dist/collection/components/nv-fieldslider/partials/range-thumb.js +4 -4
- package/dist/collection/components/nv-fieldslider/partials/range-thumb.js.map +1 -1
- package/dist/collection/components/nv-fieldslider/partials/single-thumb.js +3 -3
- package/dist/collection/components/nv-fieldslider/partials/single-thumb.js.map +1 -1
- package/dist/collection/components/nv-fieldslider/test/nv-fieldslider.utils.test.js +42 -1
- package/dist/collection/components/nv-fieldslider/test/nv-fieldslider.utils.test.js.map +1 -1
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.js +3 -3
- package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.js +3 -3
- package/dist/collection/components/nv-fieldtime/nv-fieldtime.js +9 -9
- package/dist/collection/components/nv-fieldtime/nv-fieldtime.js.map +1 -1
- package/dist/collection/components/nv-fieldtime/styles/nv-fieldtime.css +11 -13
- 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 +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 +21 -3
- package/dist/collection/components/nv-tooltip/nv-tooltip.js.map +1 -1
- package/dist/components/index.js +4 -3
- package/dist/components/index.js.map +1 -1
- package/dist/components/nv-accordion-item.d.ts +11 -0
- package/dist/components/nv-accordion-item.js +8 -0
- package/dist/components/nv-accordion-item.js.map +1 -0
- package/dist/components/nv-accordion.d.ts +11 -0
- package/dist/components/nv-accordion.js +212 -0
- package/dist/components/nv-accordion.js.map +1 -0
- package/dist/components/nv-alert.js +6 -4
- package/dist/components/nv-alert.js.map +1 -1
- 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 +4 -4
- package/dist/components/nv-datagridcolumn.js +1 -1
- package/dist/components/nv-dialog.js +25 -11
- package/dist/components/nv-dialog.js.map +1 -1
- package/dist/components/nv-dialogfooter.js +1 -1
- package/dist/components/nv-dialogheader.js +1 -1
- package/dist/components/nv-fieldcheckbox.js +1 -1
- package/dist/components/nv-fielddate.js +130 -42
- package/dist/components/nv-fielddate.js.map +1 -1
- package/dist/components/nv-fielddaterange.js +40 -11
- package/dist/components/nv-fielddaterange.js.map +1 -1
- package/dist/components/nv-fielddropdown.js +8 -8
- package/dist/components/nv-fielddropdownitem.js +1 -1
- package/dist/components/nv-fielddropdownitemcheck.js +1 -1
- package/dist/components/nv-fieldmultiselect.js +104 -112
- package/dist/components/nv-fieldmultiselect.js.map +1 -1
- package/dist/components/nv-fieldnumber.js +1 -1
- package/dist/components/nv-fieldpassword.js +6 -6
- package/dist/components/nv-fieldradio.js +3 -3
- package/dist/components/nv-fieldselect.js +8 -8
- package/dist/components/nv-fieldslider.js +57 -13
- package/dist/components/nv-fieldslider.js.map +1 -1
- package/dist/components/nv-fieldtext.js +1 -1
- package/dist/components/nv-fieldtextarea.js +3 -3
- package/dist/components/nv-fieldtime.js +14 -14
- 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 +4 -4
- package/dist/components/nv-menuitem.js +1 -1
- package/dist/components/nv-popover.js +1 -1
- package/dist/components/nv-row.js +1 -1
- package/dist/components/nv-stack.js +1 -1
- package/dist/components/nv-table.js +2 -2
- package/dist/components/nv-toggle.js +2 -2
- package/dist/components/nv-tooltip.js +1 -1
- package/dist/components/{p-9e6e26cb.js → p-0143cee0.js} +5 -5
- package/dist/components/p-0143cee0.js.map +1 -0
- package/dist/components/{p-e8c083e3.js → p-07550eac.js} +3 -3
- package/dist/components/{p-e8c083e3.js.map → p-07550eac.js.map} +1 -1
- package/dist/components/{p-1daca48a.js → p-09cdd71f.js} +2 -65
- package/dist/components/p-09cdd71f.js.map +1 -0
- package/dist/components/{p-919b5237.js → p-12258eef.js} +5 -5
- package/dist/components/{p-919b5237.js.map → p-12258eef.js.map} +1 -1
- package/dist/components/{p-05c19c9a.js → p-144e80f0.js} +4 -4
- package/dist/components/{p-05c19c9a.js.map → p-144e80f0.js.map} +1 -1
- package/dist/components/p-15aeab4d.js +23 -0
- package/dist/components/p-15aeab4d.js.map +1 -0
- package/dist/components/p-1cbacdba.js +68 -0
- package/dist/components/p-1cbacdba.js.map +1 -0
- package/dist/components/p-44df0d22.js +223 -0
- package/dist/components/p-44df0d22.js.map +1 -0
- package/dist/components/{p-cebdbb40.js → p-5d5668f0.js} +3 -3
- package/dist/components/{p-cebdbb40.js.map → p-5d5668f0.js.map} +1 -1
- package/dist/components/{p-001c888b.js → p-8067d283.js} +5 -4
- package/dist/components/p-8067d283.js.map +1 -0
- package/dist/components/{p-4badc1d2.js → p-8b82a6f4.js} +7 -7
- package/dist/components/{p-4badc1d2.js.map → p-8b82a6f4.js.map} +1 -1
- package/dist/components/{p-c1765831.js → p-8d45dbfe.js} +2 -2
- package/dist/components/{p-c1765831.js.map → p-8d45dbfe.js.map} +1 -1
- package/dist/components/{p-9f1e8ef3.js → p-91a558eb.js} +2 -2
- package/dist/components/{p-9f1e8ef3.js.map → p-91a558eb.js.map} +1 -1
- package/dist/components/{p-42301d8f.js → p-9a263d0e.js} +3 -23
- package/dist/components/p-9a263d0e.js.map +1 -0
- package/dist/components/{p-5bee0141.js → p-ba87d9d5.js} +6 -5
- package/dist/components/p-ba87d9d5.js.map +1 -0
- package/dist/components/{p-6277f746.js → p-ca130ad2.js} +2 -2
- package/dist/components/{p-6277f746.js.map → p-ca130ad2.js.map} +1 -1
- package/dist/components/{p-a0d7e0cd.js → p-d32b75ac.js} +99 -68
- package/dist/components/p-d32b75ac.js.map +1 -0
- package/dist/components/{p-970cd9b1.js → p-d576d64f.js} +5 -5
- package/dist/components/{p-970cd9b1.js.map → p-d576d64f.js.map} +1 -1
- package/dist/components/{p-e072f051.js → p-dd7ff995.js} +2 -2
- package/dist/components/{p-e072f051.js.map → p-dd7ff995.js.map} +1 -1
- package/dist/components/{p-918bb719.js → p-dfd2d4f0.js} +2 -2
- package/dist/components/{p-918bb719.js.map → p-dfd2d4f0.js.map} +1 -1
- package/dist/components/{p-44f0039b.js → p-e104c58a.js} +4 -4
- package/dist/components/p-e104c58a.js.map +1 -0
- package/dist/components/{p-00ac701f.js → p-e8e6f88a.js} +8 -6
- package/dist/components/p-e8e6f88a.js.map +1 -0
- package/dist/components/{p-d56b30ab.js → p-f97d1cb1.js} +3 -3
- package/dist/components/{p-d56b30ab.js.map → p-f97d1cb1.js.map} +1 -1
- package/dist/esm/{timeline.animation-1b88f052.js → collapse.animation-16e3af45.js} +3 -23
- package/dist/esm/collapse.animation-16e3af45.js.map +1 -0
- package/dist/esm/fade.animation-71e8e34c.js +68 -0
- package/dist/esm/fade.animation-71e8e34c.js.map +1 -0
- package/dist/esm/{grow.animation-cac164da.js → grow.animation-f7b26024.js} +2 -2
- package/dist/esm/{grow.animation-cac164da.js.map → grow.animation-f7b26024.js.map} +1 -1
- package/dist/esm/index-a1936cd0.js +8 -0
- package/dist/esm/index.js +5 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/native.js +1 -1
- package/dist/esm/nv-accordion-item.entry.js +177 -0
- package/dist/esm/nv-accordion-item.entry.js.map +1 -0
- package/dist/esm/nv-accordion.entry.js +163 -0
- package/dist/esm/nv-accordion.entry.js.map +1 -0
- package/dist/esm/nv-alert.entry.js +5 -3
- package/dist/esm/nv-alert.entry.js.map +1 -1
- package/dist/esm/nv-avatar.entry.js +1 -1
- package/dist/esm/nv-badge_2.entry.js +7 -5
- package/dist/esm/nv-badge_2.entry.js.map +1 -1
- package/dist/esm/nv-breadcrumb.entry.js +1 -1
- package/dist/esm/nv-breadcrumbs.entry.js +1 -1
- package/dist/esm/nv-button.entry.js +1 -1
- package/dist/esm/nv-calendar.entry.js +96 -66
- 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 +2 -2
- package/dist/esm/nv-datagridcolumn.entry.js +1 -1
- package/dist/esm/nv-dialog.entry.js +19 -6
- package/dist/esm/nv-dialog.entry.js.map +1 -1
- package/dist/esm/nv-dialogfooter_2.entry.js +2 -2
- package/dist/esm/nv-fieldcheckbox.entry.js +4 -4
- package/dist/esm/nv-fieldcheckbox.entry.js.map +1 -1
- package/dist/esm/nv-fielddate.entry.js +121 -35
- package/dist/esm/nv-fielddate.entry.js.map +1 -1
- package/dist/esm/nv-fielddaterange.entry.js +32 -4
- package/dist/esm/nv-fielddaterange.entry.js.map +1 -1
- package/dist/esm/nv-fielddropdown.entry.js +3 -3
- package/dist/esm/nv-fielddropdownitem.entry.js +1 -1
- package/dist/esm/nv-fieldmultiselect.entry.js +95 -102
- package/dist/esm/nv-fieldmultiselect.entry.js.map +1 -1
- package/dist/esm/nv-fieldnumber.entry.js +3 -3
- package/dist/esm/nv-fieldpassword.entry.js +3 -3
- package/dist/esm/nv-fieldradio.entry.js +3 -3
- package/dist/esm/nv-fieldselect.entry.js +5 -5
- package/dist/esm/nv-fieldslider.entry.js +53 -9
- package/dist/esm/nv-fieldslider.entry.js.map +1 -1
- package/dist/esm/nv-fieldtext.entry.js +3 -3
- package/dist/esm/nv-fieldtextarea.entry.js +3 -3
- package/dist/esm/nv-fieldtime.entry.js +10 -10
- package/dist/esm/nv-fieldtime.entry.js.map +1 -1
- package/dist/esm/nv-icon.entry.js +1 -1
- package/dist/esm/nv-iconbutton_2.entry.js +2 -2
- package/dist/esm/nv-menu.entry.js +1 -1
- package/dist/esm/nv-menuitem.entry.js +1 -1
- package/dist/esm/nv-popover.entry.js +4 -3
- package/dist/esm/nv-popover.entry.js.map +1 -1
- package/dist/esm/nv-row.entry.js +1 -1
- package/dist/esm/nv-stack.entry.js +1 -1
- package/dist/esm/nv-table.entry.js +2 -2
- package/dist/esm/nv-toggle.entry.js +2 -2
- package/dist/esm/nv-tooltip.entry.js +4 -3
- package/dist/esm/nv-tooltip.entry.js.map +1 -1
- package/dist/esm/{fade.animation-2a077983.js → stylefire.es-74da334a.js} +2 -65
- package/dist/esm/stylefire.es-74da334a.js.map +1 -0
- package/dist/esm/timeline.animation-adf35ecb.js +23 -0
- package/dist/esm/timeline.animation-adf35ecb.js.map +1 -0
- package/dist/native/index.esm.js +1 -1
- package/dist/native/index.esm.js.map +1 -1
- package/dist/native/native.css +1 -1
- package/dist/native/native.esm.js +1 -1
- package/dist/native/native.esm.js.map +1 -1
- package/dist/native/p-051db87c.entry.js +2 -0
- package/dist/native/p-051db87c.entry.js.map +1 -0
- package/dist/native/{p-a0505695.entry.js → p-08452012.entry.js} +2 -2
- package/dist/native/p-09cdd71f.js +16 -0
- package/dist/native/p-09cdd71f.js.map +1 -0
- package/dist/native/p-0e005d95.entry.js +2 -0
- package/dist/native/{p-d4bf2587.entry.js.map → p-0e005d95.entry.js.map} +1 -1
- package/dist/native/p-10ce53ea.entry.js +2 -0
- package/dist/native/{p-54198779.entry.js → p-12039da4.entry.js} +2 -2
- package/dist/native/p-1235c007.entry.js +2 -0
- package/dist/native/p-15aeab4d.js +2 -0
- package/dist/native/p-15aeab4d.js.map +1 -0
- package/dist/native/{p-003b6377.entry.js → p-16ef7dd4.entry.js} +2 -2
- package/dist/native/{p-1d98477d.entry.js → p-1ad1bff9.entry.js} +2 -2
- package/dist/native/p-1cbacdba.js +2 -0
- package/dist/native/p-1cbacdba.js.map +1 -0
- package/dist/native/{p-914da1e1.entry.js → p-1f932a4b.entry.js} +2 -2
- package/dist/native/p-2a6783ca.entry.js +2 -0
- package/dist/native/p-2a6783ca.entry.js.map +1 -0
- package/dist/native/{p-a5c72bd3.entry.js → p-34bf336f.entry.js} +2 -2
- package/dist/native/{p-e293b3fe.entry.js → p-3f139780.entry.js} +2 -2
- package/dist/native/{p-dd256ea3.entry.js → p-40fa3328.entry.js} +2 -2
- package/dist/native/{p-a983e6a0.entry.js → p-4b15cff3.entry.js} +2 -2
- package/dist/native/p-516da423.entry.js +2 -0
- package/dist/native/p-516da423.entry.js.map +1 -0
- package/dist/native/{p-08ca678c.entry.js → p-51a57a3a.entry.js} +2 -2
- package/dist/native/{p-5b06f4b5.entry.js → p-64cb38e6.entry.js} +2 -2
- package/dist/native/{p-af1e6035.entry.js → p-67c34b8c.entry.js} +2 -2
- package/dist/native/{p-e9962dac.entry.js → p-68edb2e8.entry.js} +2 -2
- package/dist/native/p-73c08f3b.entry.js +2 -0
- package/dist/native/p-73c08f3b.entry.js.map +1 -0
- package/dist/native/p-7703c736.entry.js +2 -0
- package/dist/native/p-7703c736.entry.js.map +1 -0
- package/dist/native/{p-6029e51b.entry.js → p-85a54ef2.entry.js} +2 -2
- package/dist/native/p-8d45dbfe.js +2 -0
- package/dist/native/p-916acbd3.entry.js +2 -0
- package/dist/native/p-916acbd3.entry.js.map +1 -0
- package/dist/native/p-9a263d0e.js +2 -0
- package/dist/native/p-9a263d0e.js.map +1 -0
- package/dist/native/{p-1a5d3b87.entry.js → p-9dc1c3e7.entry.js} +2 -2
- package/dist/native/p-a36dc25a.entry.js +2 -0
- package/dist/native/{p-ad128108.entry.js.map → p-a36dc25a.entry.js.map} +1 -1
- package/dist/native/p-a50f3850.entry.js +2 -0
- package/dist/native/{p-19f484a0.entry.js → p-a73fa60a.entry.js} +2 -2
- package/dist/native/p-b3f9db23.entry.js +2 -0
- package/dist/native/{p-82568ec7.entry.js.map → p-b3f9db23.entry.js.map} +1 -1
- package/dist/native/p-baddee4c.entry.js +7 -0
- package/dist/native/p-baddee4c.entry.js.map +1 -0
- package/dist/native/p-bba5cc9b.entry.js +2 -0
- package/dist/native/p-bba5cc9b.entry.js.map +1 -0
- package/dist/native/{p-1e0df2d3.entry.js → p-bee62b2b.entry.js} +2 -2
- package/dist/native/p-dc34da69.entry.js +2 -0
- package/dist/native/p-dc34da69.entry.js.map +1 -0
- package/dist/native/p-ec92ee7a.entry.js +2 -0
- package/dist/native/{p-6ea1c78b.entry.js → p-f00a4552.entry.js} +2 -2
- package/dist/native/{p-dd6b1d79.entry.js → p-f540db71.entry.js} +2 -2
- package/dist/native/{p-be9aeed4.entry.js → p-f687e05c.entry.js} +2 -2
- package/dist/native/p-f687e05c.entry.js.map +1 -0
- package/dist/native/{p-b5b9190a.entry.js → p-fa81b77f.entry.js} +2 -2
- package/dist/native/p-fa81b77f.entry.js.map +1 -0
- package/dist/native/{p-2d98d4f0.entry.js → p-fcd52432.entry.js} +2 -2
- package/dist/types/components/nv-accordion/nv-accordion.d.ts +82 -0
- package/dist/types/components/nv-accordion/nv-accordion.docs.d.ts +4 -0
- package/dist/types/components/nv-accordion-item/nv-accordion-item.d.ts +79 -0
- package/dist/types/components/nv-accordion-item/nv-accordion-item.docs.d.ts +4 -0
- package/dist/types/components/nv-calendar/nv-calendar.d.ts +7 -1
- package/dist/types/components/nv-calendar/partials/calendar-grid.d.ts +6 -2
- package/dist/types/components/nv-dialog/nv-dialog.d.ts +7 -0
- package/dist/types/components/nv-fieldcheckbox/nv-fieldcheckbox.d.ts +2 -0
- package/dist/types/components/nv-fielddate/nv-fielddate.d.ts +27 -2
- package/dist/types/components/nv-fielddaterange/nv-fielddaterange.d.ts +5 -0
- package/dist/types/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.d.ts +6 -0
- package/dist/types/components/nv-fieldmultiselect/nv-fieldmultiselect.d.ts +17 -16
- package/dist/types/components/nv-fieldslider/nv-fieldslider.utils.d.ts +13 -0
- package/dist/types/components/nv-fieldslider/partials/range-thumb.d.ts +2 -0
- package/dist/types/components/nv-fieldslider/partials/single-thumb.d.ts +2 -0
- package/dist/types/components/nv-tooltip/nv-tooltip.d.ts +7 -0
- package/dist/types/components.d.ts +287 -10
- package/dist/vscode-data.json +71 -5
- package/hydrate/index.js +1461 -879
- package/hydrate/index.mjs +1461 -879
- package/package.json +1 -1
- package/readme.md +6 -0
- package/dist/cjs/fade.animation-0d33d198.js.map +0 -1
- package/dist/cjs/timeline.animation-dbb9c5ea.js.map +0 -1
- package/dist/components/p-001c888b.js.map +0 -1
- package/dist/components/p-00ac701f.js.map +0 -1
- package/dist/components/p-1daca48a.js.map +0 -1
- package/dist/components/p-42301d8f.js.map +0 -1
- package/dist/components/p-44f0039b.js.map +0 -1
- package/dist/components/p-5bee0141.js.map +0 -1
- package/dist/components/p-9e6e26cb.js.map +0 -1
- package/dist/components/p-a0d7e0cd.js.map +0 -1
- package/dist/esm/fade.animation-2a077983.js.map +0 -1
- package/dist/esm/timeline.animation-1b88f052.js.map +0 -1
- package/dist/native/p-0493c51a.entry.js +0 -2
- package/dist/native/p-1daca48a.js +0 -16
- package/dist/native/p-1daca48a.js.map +0 -1
- package/dist/native/p-42301d8f.js +0 -2
- package/dist/native/p-42301d8f.js.map +0 -1
- package/dist/native/p-45cbe6e4.entry.js +0 -2
- package/dist/native/p-46428304.entry.js +0 -2
- package/dist/native/p-46428304.entry.js.map +0 -1
- package/dist/native/p-58f4dc0e.entry.js +0 -2
- package/dist/native/p-58f4dc0e.entry.js.map +0 -1
- package/dist/native/p-59b07b36.entry.js +0 -2
- package/dist/native/p-59b07b36.entry.js.map +0 -1
- package/dist/native/p-82568ec7.entry.js +0 -2
- package/dist/native/p-82c4bf56.entry.js +0 -2
- package/dist/native/p-82c4bf56.entry.js.map +0 -1
- package/dist/native/p-86ab23ea.entry.js +0 -2
- package/dist/native/p-ad128108.entry.js +0 -2
- package/dist/native/p-b5b9190a.entry.js.map +0 -1
- package/dist/native/p-b9c7b644.entry.js +0 -2
- package/dist/native/p-b9c7b644.entry.js.map +0 -1
- package/dist/native/p-be9aeed4.entry.js.map +0 -1
- package/dist/native/p-bee972c7.entry.js +0 -2
- package/dist/native/p-c1765831.js +0 -2
- package/dist/native/p-d21b2da2.entry.js +0 -7
- package/dist/native/p-d21b2da2.entry.js.map +0 -1
- package/dist/native/p-d4bf2587.entry.js +0 -2
- package/dist/native/p-eaf51f2c.entry.js +0 -2
- package/dist/native/p-eaf51f2c.entry.js.map +0 -1
- /package/dist/native/{p-a0505695.entry.js.map → p-08452012.entry.js.map} +0 -0
- /package/dist/native/{p-0493c51a.entry.js.map → p-10ce53ea.entry.js.map} +0 -0
- /package/dist/native/{p-54198779.entry.js.map → p-12039da4.entry.js.map} +0 -0
- /package/dist/native/{p-86ab23ea.entry.js.map → p-1235c007.entry.js.map} +0 -0
- /package/dist/native/{p-003b6377.entry.js.map → p-16ef7dd4.entry.js.map} +0 -0
- /package/dist/native/{p-1d98477d.entry.js.map → p-1ad1bff9.entry.js.map} +0 -0
- /package/dist/native/{p-914da1e1.entry.js.map → p-1f932a4b.entry.js.map} +0 -0
- /package/dist/native/{p-a5c72bd3.entry.js.map → p-34bf336f.entry.js.map} +0 -0
- /package/dist/native/{p-e293b3fe.entry.js.map → p-3f139780.entry.js.map} +0 -0
- /package/dist/native/{p-dd256ea3.entry.js.map → p-40fa3328.entry.js.map} +0 -0
- /package/dist/native/{p-a983e6a0.entry.js.map → p-4b15cff3.entry.js.map} +0 -0
- /package/dist/native/{p-08ca678c.entry.js.map → p-51a57a3a.entry.js.map} +0 -0
- /package/dist/native/{p-5b06f4b5.entry.js.map → p-64cb38e6.entry.js.map} +0 -0
- /package/dist/native/{p-af1e6035.entry.js.map → p-67c34b8c.entry.js.map} +0 -0
- /package/dist/native/{p-e9962dac.entry.js.map → p-68edb2e8.entry.js.map} +0 -0
- /package/dist/native/{p-6029e51b.entry.js.map → p-85a54ef2.entry.js.map} +0 -0
- /package/dist/native/{p-c1765831.js.map → p-8d45dbfe.js.map} +0 -0
- /package/dist/native/{p-1a5d3b87.entry.js.map → p-9dc1c3e7.entry.js.map} +0 -0
- /package/dist/native/{p-bee972c7.entry.js.map → p-a50f3850.entry.js.map} +0 -0
- /package/dist/native/{p-19f484a0.entry.js.map → p-a73fa60a.entry.js.map} +0 -0
- /package/dist/native/{p-1e0df2d3.entry.js.map → p-bee62b2b.entry.js.map} +0 -0
- /package/dist/native/{p-45cbe6e4.entry.js.map → p-ec92ee7a.entry.js.map} +0 -0
- /package/dist/native/{p-6ea1c78b.entry.js.map → p-f00a4552.entry.js.map} +0 -0
- /package/dist/native/{p-dd6b1d79.entry.js.map → p-f540db71.entry.js.map} +0 -0
- /package/dist/native/{p-2d98d4f0.entry.js.map → p-fcd52432.entry.js.map} +0 -0
|
@@ -8,7 +8,7 @@ const NvFieldmultiselect = class {
|
|
|
8
8
|
constructor(hostRef) {
|
|
9
9
|
registerInstance(this, hostRef);
|
|
10
10
|
this.valueChanged = createEvent(this, "valueChanged", 7);
|
|
11
|
-
this.
|
|
11
|
+
this.filterTextChanged = createEvent(this, "filterTextChanged", 7);
|
|
12
12
|
/****************************************************************************/
|
|
13
13
|
//#region PROPERTIES
|
|
14
14
|
/**
|
|
@@ -25,6 +25,11 @@ const NvFieldmultiselect = class {
|
|
|
25
25
|
* always type in fresh data.
|
|
26
26
|
*/
|
|
27
27
|
this.autocomplete = 'off';
|
|
28
|
+
/**
|
|
29
|
+
* Specifies the selected values of the multiselect field.
|
|
30
|
+
* This is the canonical value for the component and is used for form submission.
|
|
31
|
+
*/
|
|
32
|
+
this.value = [];
|
|
28
33
|
/**
|
|
29
34
|
* Marks the input field as required.
|
|
30
35
|
*/
|
|
@@ -78,17 +83,13 @@ const NvFieldmultiselect = class {
|
|
|
78
83
|
* Text for the badge showing the number of selected items.
|
|
79
84
|
*/
|
|
80
85
|
this.badgeLabel = '';
|
|
81
|
-
//#endregion PROPERTIES
|
|
82
|
-
/****************************************************************************/
|
|
83
|
-
//#region STATE
|
|
84
86
|
/**
|
|
85
87
|
* The text entered by the user for filtering multiselect items.
|
|
86
88
|
*/
|
|
87
89
|
this.filterText = '';
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
this.selectedValues = [];
|
|
90
|
+
//#endregion PROPERTIES
|
|
91
|
+
/****************************************************************************/
|
|
92
|
+
//#region STATE
|
|
92
93
|
/**
|
|
93
94
|
* Sorted options for display.
|
|
94
95
|
*/
|
|
@@ -98,8 +99,8 @@ const NvFieldmultiselect = class {
|
|
|
98
99
|
* Handle badge close for options mode.
|
|
99
100
|
*/
|
|
100
101
|
this.handleBadgeCloseOptions = () => {
|
|
101
|
-
this.
|
|
102
|
-
this.
|
|
102
|
+
this.value = [];
|
|
103
|
+
this.valueChanged.emit(this.value);
|
|
103
104
|
// Uncheck all elements
|
|
104
105
|
const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitemcheck'));
|
|
105
106
|
items.forEach(item => {
|
|
@@ -115,8 +116,8 @@ const NvFieldmultiselect = class {
|
|
|
115
116
|
* Handle badge close for slots mode.
|
|
116
117
|
*/
|
|
117
118
|
this.handleBadgeCloseSlots = () => {
|
|
118
|
-
this.
|
|
119
|
-
this.
|
|
119
|
+
this.value = [];
|
|
120
|
+
this.valueChanged.emit(this.value);
|
|
120
121
|
// Uncheck all elements
|
|
121
122
|
const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitemcheck'));
|
|
122
123
|
items.forEach(item => {
|
|
@@ -134,12 +135,19 @@ const NvFieldmultiselect = class {
|
|
|
134
135
|
if (this.isHandlingEscape) {
|
|
135
136
|
return;
|
|
136
137
|
}
|
|
137
|
-
|
|
138
|
-
// Reset filter if needed
|
|
138
|
+
// Reset filter if needed, but preserve the filter text
|
|
139
139
|
if (this.filterable) {
|
|
140
140
|
this.resetFilter();
|
|
141
141
|
}
|
|
142
142
|
};
|
|
143
|
+
/**
|
|
144
|
+
* Clear the filter text
|
|
145
|
+
*/
|
|
146
|
+
this.clearFilterText = () => {
|
|
147
|
+
this.filterText = '';
|
|
148
|
+
this.filterTextChanged.emit('');
|
|
149
|
+
this.resetFilter();
|
|
150
|
+
};
|
|
143
151
|
/**
|
|
144
152
|
* Handle input blur for options mode.
|
|
145
153
|
*/
|
|
@@ -148,10 +156,9 @@ const NvFieldmultiselect = class {
|
|
|
148
156
|
if (!this.el.contains(document.activeElement)) {
|
|
149
157
|
// Close the popover without affecting the divider
|
|
150
158
|
this.open = false;
|
|
151
|
-
//
|
|
159
|
+
// Clear filter text when focus is lost
|
|
152
160
|
if (this.filterable) {
|
|
153
|
-
this.
|
|
154
|
-
this.resetFilter();
|
|
161
|
+
this.clearFilterText();
|
|
155
162
|
}
|
|
156
163
|
}
|
|
157
164
|
}, 150);
|
|
@@ -209,15 +216,14 @@ const NvFieldmultiselect = class {
|
|
|
209
216
|
return;
|
|
210
217
|
}
|
|
211
218
|
const input = event.target;
|
|
212
|
-
this.
|
|
213
|
-
this.
|
|
219
|
+
this.filterText = input.value;
|
|
220
|
+
this.filterTextChanged.emit(this.filterText);
|
|
214
221
|
// Clear any existing timer
|
|
215
222
|
if (this.debounceTimer) {
|
|
216
223
|
window.clearTimeout(this.debounceTimer);
|
|
217
224
|
}
|
|
218
225
|
// Set a new timer for filtering
|
|
219
226
|
this.debounceTimer = window.setTimeout(() => {
|
|
220
|
-
this.filterText = input.value.toLowerCase();
|
|
221
227
|
this.filterItemsOption();
|
|
222
228
|
}, this.debounceDelay);
|
|
223
229
|
};
|
|
@@ -231,15 +237,14 @@ const NvFieldmultiselect = class {
|
|
|
231
237
|
if (this.disabled || this.readonly)
|
|
232
238
|
return;
|
|
233
239
|
const input = event.target;
|
|
234
|
-
this.
|
|
235
|
-
this.
|
|
240
|
+
this.filterText = input.value;
|
|
241
|
+
this.filterTextChanged.emit(this.filterText);
|
|
236
242
|
// Clear any existing timer
|
|
237
243
|
if (this.debounceTimer) {
|
|
238
244
|
window.clearTimeout(this.debounceTimer);
|
|
239
245
|
}
|
|
240
246
|
// Set a new timer for filtering
|
|
241
247
|
this.debounceTimer = window.setTimeout(() => {
|
|
242
|
-
this.filterText = input.value.toLowerCase();
|
|
243
248
|
this.filterSlotsItems();
|
|
244
249
|
}, this.debounceDelay);
|
|
245
250
|
};
|
|
@@ -269,10 +274,9 @@ const NvFieldmultiselect = class {
|
|
|
269
274
|
if (!this.el.contains(document.activeElement)) {
|
|
270
275
|
// Close the popover without affecting the divider
|
|
271
276
|
this.open = false;
|
|
272
|
-
//
|
|
277
|
+
// Clear filter text when focus is lost
|
|
273
278
|
if (this.filterable) {
|
|
274
|
-
this.
|
|
275
|
-
this.resetFilter();
|
|
279
|
+
this.clearFilterText();
|
|
276
280
|
}
|
|
277
281
|
}
|
|
278
282
|
}, 150);
|
|
@@ -303,14 +307,14 @@ const NvFieldmultiselect = class {
|
|
|
303
307
|
* @returns {any} The JSX for options mode
|
|
304
308
|
*/
|
|
305
309
|
this.renderOptionsMode = () => {
|
|
306
|
-
return (h(Host, { "aria-label": this.label, "aria-expanded": this.open.toString() }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { htmlFor: this.inputId }, h("slot", { name: "label" }, this.label))), h("nv-popover", { ref: el => (this.popoverElement = el), triggerMode: "controlled", placement: "bottom-start", open: this.open }, h("div", { class: "input-wrapper-multiselect", slot: "trigger" }, h("slot", { name: "before-input" }), h("div", { class: "input-container-multiselect" }, h("slot", { name: "leading-input" }), this.
|
|
310
|
+
return (h(Host, { "aria-label": this.label, "aria-expanded": this.open.toString() }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { htmlFor: this.inputId }, h("slot", { name: "label" }, this.label))), h("nv-popover", { ref: el => (this.popoverElement = el), triggerMode: "controlled", placement: "bottom-start", open: this.open }, h("div", { class: "input-wrapper-multiselect", slot: "trigger" }, h("slot", { name: "before-input" }), h("div", { class: "input-container-multiselect" }, h("slot", { name: "leading-input" }), this.value.length > 0 && (h("nv-badge", { slot: "leading-input", "prevent-auto-close": true, color: "10", dismissible: this.value.length > 0, label: `${this.value.length} ${this.badgeLabel}`, "aria-label": `Clear all ${this.value.length} ${this.badgeLabel} items`, onCloseClicked: this.handleBadgeCloseOptions })), this.filterable || this.disabled || this.readonly ? (h("input", { type: "text", id: this.inputId, ref: e => (this.inputElement = e), autofocus: this.autofocus, autocomplete: this.autocomplete, placeholder: this.placeholder, name: this.name, value: this.filterText, required: this.required, disabled: this.disabled, readOnly: this.readonly, onInput: this.handleInputOptions, onFocus: this.handleInputFocusOptions, onBlur: this.handleInputBlurOptions, onKeyDown: this.handleKeyDown, "data-scope": "focusable" })) : (h("p", { id: this.inputId, class: "non-filterable-text", onClick: this.handleInputContainerClickOptions, tabIndex: 0, onKeyDown: this.handleKeyDown, onFocus: this.handleInputFocusOptions, role: "combobox", "aria-expanded": this.open, "data-scope": "focusable" }, h("span", null, this.placeholder))), this.error && (h("nv-icon", { name: "alert-circle", class: "validation", size: "md" })), this.filterable && this.filterText.length > 0 && (h("nv-iconbutton", { "data-scope": "clear-filter", name: "x", size: "md", emphasis: "lower", tabindex: "-1", onClick: this.clearFilterText, "aria-label": "Clear filter text" })), h("nv-iconbutton", { "data-scope": "toggle-dropdown", name: this.open ? 'chevron-top' : 'chevron-down', size: "md", emphasis: "lower", "aria-label": this.open ? 'Hide dropdown' : 'Show dropdown', "aria-pressed": this.open.toString(), onClick: this.togglePopoverOptions })), h("slot", { name: "after-input" })), h("div", { slot: "content", role: "listbox", "aria-multiselectable": "true", style: this.maxHeight ? { maxHeight: this.maxHeight } : {} }, h("ul", { role: "content" }, this.options.map(option => (h("nv-fielddropdownitemcheck", { label: option.label, description: option.description, value: option.value, checked: this.value.includes(option.value), disabled: option.disabled }))), h("hr", { class: "multiselect-divider", style: { display: 'none' } })))), this.renderDescriptions()));
|
|
307
311
|
};
|
|
308
312
|
/**
|
|
309
313
|
* Renders the component in slots mode
|
|
310
314
|
* @returns {any} The JSX for slots mode
|
|
311
315
|
*/
|
|
312
316
|
this.renderSlotsMode = () => {
|
|
313
|
-
return (h(Host, { "aria-label": this.label, "aria-expanded": this.open.toString() }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { htmlFor: this.inputId }, h("slot", { name: "label" }, this.label))), h("nv-popover", { ref: el => (this.popoverElement = el), triggerMode: "controlled", placement: "bottom-start", open: this.open }, h("div", { class: "input-wrapper-multiselect", slot: "trigger" }, h("slot", { name: "before-input" }), h("div", { class: "input-container-multiselect", onClick: this.handleInputContainerClickSlots }, h("slot", { name: "leading-input" }), this.
|
|
317
|
+
return (h(Host, { "aria-label": this.label, "aria-expanded": this.open.toString() }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { htmlFor: this.inputId }, h("slot", { name: "label" }, this.label))), h("nv-popover", { ref: el => (this.popoverElement = el), triggerMode: "controlled", placement: "bottom-start", open: this.open }, h("div", { class: "input-wrapper-multiselect", slot: "trigger" }, h("slot", { name: "before-input" }), h("div", { class: "input-container-multiselect", onClick: this.handleInputContainerClickSlots }, h("slot", { name: "leading-input" }), this.value.length > 0 && (h("nv-badge", { slot: "leading-input", "prevent-auto-close": true, color: "10", dismissible: this.value.length > 0, label: `${this.value.length} ${this.badgeLabel}`, "aria-label": `Clear all ${this.value.length} ${this.badgeLabel} items`, onCloseClicked: this.handleBadgeCloseSlots })), this.filterable || this.disabled || this.readonly ? (h("input", { id: this.inputId, ref: e => (this.inputElement = e), autocomplete: this.autocomplete, placeholder: this.placeholder, name: this.name, value: this.filterText, required: this.required, disabled: this.disabled, readOnly: this.readonly, onInput: this.handleInputSlots, onFocus: this.handleInputFocusSlots, onBlur: this.handleInputBlurSlots, onKeyDown: this.handleKeyDown, "data-scope": "focusable" })) : (h("p", { id: this.inputId, class: "non-filterable-text", onClick: this.handleInputContainerClickSlots, tabIndex: 0, onKeyDown: this.handleKeyDown, onFocus: this.handleInputFocusSlots, role: "combobox", "aria-expanded": this.open, "data-scope": "focusable" }, h("span", null, this.placeholder))), this.error && (h("nv-icon", { name: "alert-circle", class: "validation", size: "md" })), this.filterable && this.filterText.length > 0 && (h("nv-iconbutton", { name: "x", size: "md", emphasis: "lower", tabindex: "-1", onClick: this.clearFilterText, "aria-label": "Clear filter text" })), h("nv-iconbutton", { "data-scope": "toggle-dropdown", name: this.open ? 'chevron-top' : 'chevron-down', size: "md", emphasis: "lower", "aria-label": this.open ? 'Hide dropdown' : 'Show dropdown', "aria-pressed": this.open.toString(), onClick: this.togglePopoverSlots })), h("slot", { name: "after-input" })), h("div", { slot: "content", role: "listbox", "aria-multiselectable": "true", style: this.maxHeight ? { maxHeight: this.maxHeight } : {} }, h("slot", { name: "content" }))), this.renderDescriptions()));
|
|
314
318
|
};
|
|
315
319
|
}
|
|
316
320
|
//#endregion EVENTS
|
|
@@ -319,7 +323,7 @@ const NvFieldmultiselect = class {
|
|
|
319
323
|
handleOptionsChange(newValue) {
|
|
320
324
|
if (!newValue)
|
|
321
325
|
return;
|
|
322
|
-
this.
|
|
326
|
+
this.value = newValue
|
|
323
327
|
.filter(option => option.checked)
|
|
324
328
|
.map(option => option.value);
|
|
325
329
|
this.reorderOptionsContent();
|
|
@@ -328,8 +332,10 @@ const NvFieldmultiselect = class {
|
|
|
328
332
|
* Emitted when the value changes.
|
|
329
333
|
*/
|
|
330
334
|
watchValueHandler() {
|
|
331
|
-
//
|
|
332
|
-
this.
|
|
335
|
+
// Synchronize child components when value changes programmatically
|
|
336
|
+
if (this.el && this.el.isConnected) {
|
|
337
|
+
this.syncChildComponents();
|
|
338
|
+
}
|
|
333
339
|
}
|
|
334
340
|
//#endregion WATCHERS
|
|
335
341
|
/****************************************************************************/
|
|
@@ -369,22 +375,23 @@ const NvFieldmultiselect = class {
|
|
|
369
375
|
}
|
|
370
376
|
const { value, checked } = event.detail;
|
|
371
377
|
if (value !== undefined && value !== null) {
|
|
372
|
-
const
|
|
373
|
-
const valueIndex =
|
|
378
|
+
const newValue = [...this.value];
|
|
379
|
+
const valueIndex = newValue.indexOf(value);
|
|
374
380
|
if (checked && valueIndex === -1) {
|
|
375
|
-
|
|
381
|
+
newValue.push(value);
|
|
376
382
|
}
|
|
377
383
|
else if (!checked && valueIndex > -1) {
|
|
378
|
-
|
|
384
|
+
newValue.splice(valueIndex, 1);
|
|
379
385
|
}
|
|
380
|
-
//
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
386
|
+
// Always update the state and emit the event when an item is checked/unchecked
|
|
387
|
+
this.value = newValue;
|
|
388
|
+
this.valueChanged.emit(this.value);
|
|
389
|
+
// Update the checked state of all items to ensure consistency
|
|
390
|
+
this.syncChildComponents();
|
|
391
|
+
// Preserve the filter text in the input
|
|
392
|
+
if (this.filterable && this.inputElement) {
|
|
393
|
+
// Keep the current filter text in the input
|
|
394
|
+
this.inputElement.value = this.filterText;
|
|
388
395
|
}
|
|
389
396
|
}
|
|
390
397
|
else {
|
|
@@ -423,12 +430,10 @@ const NvFieldmultiselect = class {
|
|
|
423
430
|
}
|
|
424
431
|
// Specific initialization for slots mode
|
|
425
432
|
if (!this.options) {
|
|
433
|
+
// Use a microtask to ensure DOM is ready
|
|
426
434
|
Promise.resolve().then(() => {
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
this.selectedValues = items
|
|
430
|
-
.filter(item => item.hasAttribute('checked'))
|
|
431
|
-
.map(item => item.getAttribute('value') || '');
|
|
435
|
+
// Synchronize child components
|
|
436
|
+
this.syncChildComponents();
|
|
432
437
|
// Force a reorder after initialization
|
|
433
438
|
requestAnimationFrame(() => {
|
|
434
439
|
this.reorderSlotContent();
|
|
@@ -439,13 +444,8 @@ const NvFieldmultiselect = class {
|
|
|
439
444
|
if (this.options) {
|
|
440
445
|
this.sortedOptions = [...((_a = this.options) !== null && _a !== void 0 ? _a : [])];
|
|
441
446
|
}
|
|
442
|
-
//
|
|
443
|
-
if (this.
|
|
444
|
-
this.filterText = String(this.value).toLocaleLowerCase();
|
|
445
|
-
this.filterItems();
|
|
446
|
-
}
|
|
447
|
-
else {
|
|
448
|
-
// Reset visibility state of all dropdown items
|
|
447
|
+
// Reset filter if needed
|
|
448
|
+
if (!this.filterText) {
|
|
449
449
|
this.resetFilter();
|
|
450
450
|
}
|
|
451
451
|
}
|
|
@@ -456,6 +456,8 @@ const NvFieldmultiselect = class {
|
|
|
456
456
|
if (this.options) {
|
|
457
457
|
this.handleOptionsChange(this.options);
|
|
458
458
|
}
|
|
459
|
+
// Final synchronization of child components after everything is loaded
|
|
460
|
+
this.syncChildComponents();
|
|
459
461
|
}
|
|
460
462
|
/**
|
|
461
463
|
* Unsubscribe from click outside event.
|
|
@@ -473,38 +475,6 @@ const NvFieldmultiselect = class {
|
|
|
473
475
|
async getFilterText() {
|
|
474
476
|
return this.filterText;
|
|
475
477
|
}
|
|
476
|
-
/**
|
|
477
|
-
* Set the initial selection based on the current value and update the inputElement value.
|
|
478
|
-
*/
|
|
479
|
-
setInitialSelection() {
|
|
480
|
-
var _a;
|
|
481
|
-
const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitem'));
|
|
482
|
-
const selectedItem = items.find(item => {
|
|
483
|
-
var _a;
|
|
484
|
-
return item.getAttribute('label') === this.value ||
|
|
485
|
-
item.getAttribute('value') === this.value ||
|
|
486
|
-
((_a = item.textContent) === null || _a === void 0 ? void 0 : _a.trim()) === this.value;
|
|
487
|
-
});
|
|
488
|
-
// Remove 'selected' from all items first to reset the state
|
|
489
|
-
items.forEach(item => {
|
|
490
|
-
item.removeAttribute('selected');
|
|
491
|
-
item.classList.remove('selected');
|
|
492
|
-
});
|
|
493
|
-
if (selectedItem) {
|
|
494
|
-
// Add the `selected` attribute and `selected` class for visual styling
|
|
495
|
-
selectedItem.setAttribute('selected', 'true');
|
|
496
|
-
selectedItem.classList.add('selected');
|
|
497
|
-
// Update the value and inputElement value to reflect the pre-selected item
|
|
498
|
-
this.value =
|
|
499
|
-
selectedItem.getAttribute('label') ||
|
|
500
|
-
selectedItem.getAttribute('value') ||
|
|
501
|
-
((_a = selectedItem.textContent) === null || _a === void 0 ? void 0 : _a.trim()) ||
|
|
502
|
-
'';
|
|
503
|
-
if (this.inputElement) {
|
|
504
|
-
this.inputElement.value = this.value;
|
|
505
|
-
}
|
|
506
|
-
}
|
|
507
|
-
}
|
|
508
478
|
/**
|
|
509
479
|
* Reset the filter and make all items visible.
|
|
510
480
|
*/
|
|
@@ -521,8 +491,8 @@ const NvFieldmultiselect = class {
|
|
|
521
491
|
if (emptyMessage)
|
|
522
492
|
emptyMessage.remove();
|
|
523
493
|
// Reorder with divider if needed
|
|
524
|
-
const selectedItems = items.filter(item => this.
|
|
525
|
-
const unselectedItems = items.filter(item => !this.
|
|
494
|
+
const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
495
|
+
const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
|
|
526
496
|
if (selectedItems.length > 0) {
|
|
527
497
|
this.manageDivider(ul, selectedItems, unselectedItems);
|
|
528
498
|
}
|
|
@@ -533,7 +503,7 @@ const NvFieldmultiselect = class {
|
|
|
533
503
|
* @returns {string[]} The selected values.
|
|
534
504
|
*/
|
|
535
505
|
async getSelectedValues() {
|
|
536
|
-
return this.
|
|
506
|
+
return this.value;
|
|
537
507
|
}
|
|
538
508
|
/**
|
|
539
509
|
* Reorder the content of the slot.
|
|
@@ -555,8 +525,8 @@ const NvFieldmultiselect = class {
|
|
|
555
525
|
return;
|
|
556
526
|
}
|
|
557
527
|
// Separate checked vs unchecked
|
|
558
|
-
const selectedItems = items.filter(item => this.
|
|
559
|
-
const unselectedItems = items.filter(item => !this.
|
|
528
|
+
const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
529
|
+
const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
|
|
560
530
|
// Reinsert CHECKED items FIRST
|
|
561
531
|
// appendChild() moves the element without recreating it
|
|
562
532
|
// this is not trigger a re-rendering of the component in the platforms
|
|
@@ -582,8 +552,8 @@ const NvFieldmultiselect = class {
|
|
|
582
552
|
if (!ul)
|
|
583
553
|
return;
|
|
584
554
|
const items = Array.from(ul.querySelectorAll('nv-fielddropdownitemcheck')).filter(item => item.style.display !== 'none');
|
|
585
|
-
const selectedItems = items.filter(item => this.
|
|
586
|
-
const unselectedItems = items.filter(item => !this.
|
|
555
|
+
const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
556
|
+
const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
|
|
587
557
|
// Reorder the elements
|
|
588
558
|
selectedItems.forEach(item => ul.appendChild(item));
|
|
589
559
|
unselectedItems.forEach(item => ul.appendChild(item));
|
|
@@ -619,8 +589,8 @@ const NvFieldmultiselect = class {
|
|
|
619
589
|
}
|
|
620
590
|
// Reorder with divider
|
|
621
591
|
const items = Array.from(ul.querySelectorAll('nv-fielddropdownitemcheck'));
|
|
622
|
-
const selectedItems = items.filter(item => this.
|
|
623
|
-
const unselectedItems = items.filter(item => !this.
|
|
592
|
+
const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
593
|
+
const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
|
|
624
594
|
this.manageDivider(ul, selectedItems, unselectedItems);
|
|
625
595
|
return;
|
|
626
596
|
}
|
|
@@ -641,8 +611,8 @@ const NvFieldmultiselect = class {
|
|
|
641
611
|
});
|
|
642
612
|
// Manage the divider with the visible items
|
|
643
613
|
const visibleItems = items.filter(item => item.style.display !== 'none');
|
|
644
|
-
const visibleSelected = visibleItems.filter(item => this.
|
|
645
|
-
const visibleUnselected = visibleItems.filter(item => !this.
|
|
614
|
+
const visibleSelected = visibleItems.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
615
|
+
const visibleUnselected = visibleItems.filter(item => !this.value.includes(item.getAttribute('value') || ''));
|
|
646
616
|
this.manageDivider(ul, visibleSelected, visibleUnselected);
|
|
647
617
|
}
|
|
648
618
|
else {
|
|
@@ -700,8 +670,8 @@ const NvFieldmultiselect = class {
|
|
|
700
670
|
});
|
|
701
671
|
// Manage the divider with the visible items
|
|
702
672
|
const visibleItems = items.filter(item => item.style.display !== 'none');
|
|
703
|
-
const visibleSelected = visibleItems.filter(item => this.
|
|
704
|
-
const visibleUnselected = visibleItems.filter(item => !this.
|
|
673
|
+
const visibleSelected = visibleItems.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
674
|
+
const visibleUnselected = visibleItems.filter(item => !this.value.includes(item.getAttribute('value') || ''));
|
|
705
675
|
this.manageDivider(ul, visibleSelected, visibleUnselected);
|
|
706
676
|
// Add or remove the empty message based on the case
|
|
707
677
|
if (!hasVisibleItems) {
|
|
@@ -749,8 +719,8 @@ const NvFieldmultiselect = class {
|
|
|
749
719
|
});
|
|
750
720
|
// Get visible items after filtering
|
|
751
721
|
const visibleItems = items.filter(item => item.style.display !== 'none');
|
|
752
|
-
const visibleSelectedItems = visibleItems.filter(item => this.
|
|
753
|
-
this.manageDivider(ul, visibleSelectedItems, visibleItems.filter(item => !this.
|
|
722
|
+
const visibleSelectedItems = visibleItems.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
723
|
+
this.manageDivider(ul, visibleSelectedItems, visibleItems.filter(item => !this.value.includes(item.getAttribute('value') || '')));
|
|
754
724
|
// Add empty message if no items match the filter
|
|
755
725
|
if (!hasVisibleItems) {
|
|
756
726
|
const emptyMessage = document.createElement('li');
|
|
@@ -947,6 +917,29 @@ const NvFieldmultiselect = class {
|
|
|
947
917
|
divider.style.display = 'none';
|
|
948
918
|
}
|
|
949
919
|
}
|
|
920
|
+
/**
|
|
921
|
+
* Synchronizes the checked state of all child nv-fielddropdownitemcheck components
|
|
922
|
+
* with the current selectedValues state.
|
|
923
|
+
*/
|
|
924
|
+
syncChildComponents() {
|
|
925
|
+
// Early return if element is not ready
|
|
926
|
+
if (!this.el || !this.el.isConnected) {
|
|
927
|
+
return;
|
|
928
|
+
}
|
|
929
|
+
const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitemcheck'));
|
|
930
|
+
items.forEach(item => {
|
|
931
|
+
// Get the effective value: use explicit value if present, otherwise use label
|
|
932
|
+
const itemValue = item.getAttribute('value') || item.getAttribute('label') || '';
|
|
933
|
+
if (this.value.includes(itemValue)) {
|
|
934
|
+
item.setAttribute('checked', '');
|
|
935
|
+
item.checked = true;
|
|
936
|
+
}
|
|
937
|
+
else {
|
|
938
|
+
item.removeAttribute('checked');
|
|
939
|
+
item.checked = false;
|
|
940
|
+
}
|
|
941
|
+
});
|
|
942
|
+
}
|
|
950
943
|
/**
|
|
951
944
|
* Renders description and error description sections
|
|
952
945
|
* @returns {any} The JSX for descriptions
|