@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
|
@@ -12,7 +12,7 @@ const NvFieldmultiselect = class {
|
|
|
12
12
|
constructor(hostRef) {
|
|
13
13
|
index.registerInstance(this, hostRef);
|
|
14
14
|
this.valueChanged = index.createEvent(this, "valueChanged", 7);
|
|
15
|
-
this.
|
|
15
|
+
this.filterTextChanged = index.createEvent(this, "filterTextChanged", 7);
|
|
16
16
|
/****************************************************************************/
|
|
17
17
|
//#region PROPERTIES
|
|
18
18
|
/**
|
|
@@ -29,6 +29,11 @@ const NvFieldmultiselect = class {
|
|
|
29
29
|
* always type in fresh data.
|
|
30
30
|
*/
|
|
31
31
|
this.autocomplete = 'off';
|
|
32
|
+
/**
|
|
33
|
+
* Specifies the selected values of the multiselect field.
|
|
34
|
+
* This is the canonical value for the component and is used for form submission.
|
|
35
|
+
*/
|
|
36
|
+
this.value = [];
|
|
32
37
|
/**
|
|
33
38
|
* Marks the input field as required.
|
|
34
39
|
*/
|
|
@@ -82,17 +87,13 @@ const NvFieldmultiselect = class {
|
|
|
82
87
|
* Text for the badge showing the number of selected items.
|
|
83
88
|
*/
|
|
84
89
|
this.badgeLabel = '';
|
|
85
|
-
//#endregion PROPERTIES
|
|
86
|
-
/****************************************************************************/
|
|
87
|
-
//#region STATE
|
|
88
90
|
/**
|
|
89
91
|
* The text entered by the user for filtering multiselect items.
|
|
90
92
|
*/
|
|
91
93
|
this.filterText = '';
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
this.selectedValues = [];
|
|
94
|
+
//#endregion PROPERTIES
|
|
95
|
+
/****************************************************************************/
|
|
96
|
+
//#region STATE
|
|
96
97
|
/**
|
|
97
98
|
* Sorted options for display.
|
|
98
99
|
*/
|
|
@@ -102,8 +103,8 @@ const NvFieldmultiselect = class {
|
|
|
102
103
|
* Handle badge close for options mode.
|
|
103
104
|
*/
|
|
104
105
|
this.handleBadgeCloseOptions = () => {
|
|
105
|
-
this.
|
|
106
|
-
this.
|
|
106
|
+
this.value = [];
|
|
107
|
+
this.valueChanged.emit(this.value);
|
|
107
108
|
// Uncheck all elements
|
|
108
109
|
const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitemcheck'));
|
|
109
110
|
items.forEach(item => {
|
|
@@ -119,8 +120,8 @@ const NvFieldmultiselect = class {
|
|
|
119
120
|
* Handle badge close for slots mode.
|
|
120
121
|
*/
|
|
121
122
|
this.handleBadgeCloseSlots = () => {
|
|
122
|
-
this.
|
|
123
|
-
this.
|
|
123
|
+
this.value = [];
|
|
124
|
+
this.valueChanged.emit(this.value);
|
|
124
125
|
// Uncheck all elements
|
|
125
126
|
const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitemcheck'));
|
|
126
127
|
items.forEach(item => {
|
|
@@ -138,12 +139,19 @@ const NvFieldmultiselect = class {
|
|
|
138
139
|
if (this.isHandlingEscape) {
|
|
139
140
|
return;
|
|
140
141
|
}
|
|
141
|
-
|
|
142
|
-
// Reset filter if needed
|
|
142
|
+
// Reset filter if needed, but preserve the filter text
|
|
143
143
|
if (this.filterable) {
|
|
144
144
|
this.resetFilter();
|
|
145
145
|
}
|
|
146
146
|
};
|
|
147
|
+
/**
|
|
148
|
+
* Clear the filter text
|
|
149
|
+
*/
|
|
150
|
+
this.clearFilterText = () => {
|
|
151
|
+
this.filterText = '';
|
|
152
|
+
this.filterTextChanged.emit('');
|
|
153
|
+
this.resetFilter();
|
|
154
|
+
};
|
|
147
155
|
/**
|
|
148
156
|
* Handle input blur for options mode.
|
|
149
157
|
*/
|
|
@@ -152,10 +160,9 @@ const NvFieldmultiselect = class {
|
|
|
152
160
|
if (!this.el.contains(document.activeElement)) {
|
|
153
161
|
// Close the popover without affecting the divider
|
|
154
162
|
this.open = false;
|
|
155
|
-
//
|
|
163
|
+
// Clear filter text when focus is lost
|
|
156
164
|
if (this.filterable) {
|
|
157
|
-
this.
|
|
158
|
-
this.resetFilter();
|
|
165
|
+
this.clearFilterText();
|
|
159
166
|
}
|
|
160
167
|
}
|
|
161
168
|
}, 150);
|
|
@@ -213,15 +220,14 @@ const NvFieldmultiselect = class {
|
|
|
213
220
|
return;
|
|
214
221
|
}
|
|
215
222
|
const input = event.target;
|
|
216
|
-
this.
|
|
217
|
-
this.
|
|
223
|
+
this.filterText = input.value;
|
|
224
|
+
this.filterTextChanged.emit(this.filterText);
|
|
218
225
|
// Clear any existing timer
|
|
219
226
|
if (this.debounceTimer) {
|
|
220
227
|
window.clearTimeout(this.debounceTimer);
|
|
221
228
|
}
|
|
222
229
|
// Set a new timer for filtering
|
|
223
230
|
this.debounceTimer = window.setTimeout(() => {
|
|
224
|
-
this.filterText = input.value.toLowerCase();
|
|
225
231
|
this.filterItemsOption();
|
|
226
232
|
}, this.debounceDelay);
|
|
227
233
|
};
|
|
@@ -235,15 +241,14 @@ const NvFieldmultiselect = class {
|
|
|
235
241
|
if (this.disabled || this.readonly)
|
|
236
242
|
return;
|
|
237
243
|
const input = event.target;
|
|
238
|
-
this.
|
|
239
|
-
this.
|
|
244
|
+
this.filterText = input.value;
|
|
245
|
+
this.filterTextChanged.emit(this.filterText);
|
|
240
246
|
// Clear any existing timer
|
|
241
247
|
if (this.debounceTimer) {
|
|
242
248
|
window.clearTimeout(this.debounceTimer);
|
|
243
249
|
}
|
|
244
250
|
// Set a new timer for filtering
|
|
245
251
|
this.debounceTimer = window.setTimeout(() => {
|
|
246
|
-
this.filterText = input.value.toLowerCase();
|
|
247
252
|
this.filterSlotsItems();
|
|
248
253
|
}, this.debounceDelay);
|
|
249
254
|
};
|
|
@@ -273,10 +278,9 @@ const NvFieldmultiselect = class {
|
|
|
273
278
|
if (!this.el.contains(document.activeElement)) {
|
|
274
279
|
// Close the popover without affecting the divider
|
|
275
280
|
this.open = false;
|
|
276
|
-
//
|
|
281
|
+
// Clear filter text when focus is lost
|
|
277
282
|
if (this.filterable) {
|
|
278
|
-
this.
|
|
279
|
-
this.resetFilter();
|
|
283
|
+
this.clearFilterText();
|
|
280
284
|
}
|
|
281
285
|
}
|
|
282
286
|
}, 150);
|
|
@@ -307,14 +311,14 @@ const NvFieldmultiselect = class {
|
|
|
307
311
|
* @returns {any} The JSX for options mode
|
|
308
312
|
*/
|
|
309
313
|
this.renderOptionsMode = () => {
|
|
310
|
-
return (index.h(index.Host, { "aria-label": this.label, "aria-expanded": this.open.toString() }, (this.label || this.el.querySelector('[slot="label"]')) && (index.h("label", { htmlFor: this.inputId }, index.h("slot", { name: "label" }, this.label))), index.h("nv-popover", { ref: el => (this.popoverElement = el), triggerMode: "controlled", placement: "bottom-start", open: this.open }, index.h("div", { class: "input-wrapper-multiselect", slot: "trigger" }, index.h("slot", { name: "before-input" }), index.h("div", { class: "input-container-multiselect" }, index.h("slot", { name: "leading-input" }), this.
|
|
314
|
+
return (index.h(index.Host, { "aria-label": this.label, "aria-expanded": this.open.toString() }, (this.label || this.el.querySelector('[slot="label"]')) && (index.h("label", { htmlFor: this.inputId }, index.h("slot", { name: "label" }, this.label))), index.h("nv-popover", { ref: el => (this.popoverElement = el), triggerMode: "controlled", placement: "bottom-start", open: this.open }, index.h("div", { class: "input-wrapper-multiselect", slot: "trigger" }, index.h("slot", { name: "before-input" }), index.h("div", { class: "input-container-multiselect" }, index.h("slot", { name: "leading-input" }), this.value.length > 0 && (index.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 ? (index.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" })) : (index.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" }, index.h("span", null, this.placeholder))), this.error && (index.h("nv-icon", { name: "alert-circle", class: "validation", size: "md" })), this.filterable && this.filterText.length > 0 && (index.h("nv-iconbutton", { "data-scope": "clear-filter", name: "x", size: "md", emphasis: "lower", tabindex: "-1", onClick: this.clearFilterText, "aria-label": "Clear filter text" })), index.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 })), index.h("slot", { name: "after-input" })), index.h("div", { slot: "content", role: "listbox", "aria-multiselectable": "true", style: this.maxHeight ? { maxHeight: this.maxHeight } : {} }, index.h("ul", { role: "content" }, this.options.map(option => (index.h("nv-fielddropdownitemcheck", { label: option.label, description: option.description, value: option.value, checked: this.value.includes(option.value), disabled: option.disabled }))), index.h("hr", { class: "multiselect-divider", style: { display: 'none' } })))), this.renderDescriptions()));
|
|
311
315
|
};
|
|
312
316
|
/**
|
|
313
317
|
* Renders the component in slots mode
|
|
314
318
|
* @returns {any} The JSX for slots mode
|
|
315
319
|
*/
|
|
316
320
|
this.renderSlotsMode = () => {
|
|
317
|
-
return (index.h(index.Host, { "aria-label": this.label, "aria-expanded": this.open.toString() }, (this.label || this.el.querySelector('[slot="label"]')) && (index.h("label", { htmlFor: this.inputId }, index.h("slot", { name: "label" }, this.label))), index.h("nv-popover", { ref: el => (this.popoverElement = el), triggerMode: "controlled", placement: "bottom-start", open: this.open }, index.h("div", { class: "input-wrapper-multiselect", slot: "trigger" }, index.h("slot", { name: "before-input" }), index.h("div", { class: "input-container-multiselect", onClick: this.handleInputContainerClickSlots }, index.h("slot", { name: "leading-input" }), this.
|
|
321
|
+
return (index.h(index.Host, { "aria-label": this.label, "aria-expanded": this.open.toString() }, (this.label || this.el.querySelector('[slot="label"]')) && (index.h("label", { htmlFor: this.inputId }, index.h("slot", { name: "label" }, this.label))), index.h("nv-popover", { ref: el => (this.popoverElement = el), triggerMode: "controlled", placement: "bottom-start", open: this.open }, index.h("div", { class: "input-wrapper-multiselect", slot: "trigger" }, index.h("slot", { name: "before-input" }), index.h("div", { class: "input-container-multiselect", onClick: this.handleInputContainerClickSlots }, index.h("slot", { name: "leading-input" }), this.value.length > 0 && (index.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 ? (index.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" })) : (index.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" }, index.h("span", null, this.placeholder))), this.error && (index.h("nv-icon", { name: "alert-circle", class: "validation", size: "md" })), this.filterable && this.filterText.length > 0 && (index.h("nv-iconbutton", { name: "x", size: "md", emphasis: "lower", tabindex: "-1", onClick: this.clearFilterText, "aria-label": "Clear filter text" })), index.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 })), index.h("slot", { name: "after-input" })), index.h("div", { slot: "content", role: "listbox", "aria-multiselectable": "true", style: this.maxHeight ? { maxHeight: this.maxHeight } : {} }, index.h("slot", { name: "content" }))), this.renderDescriptions()));
|
|
318
322
|
};
|
|
319
323
|
}
|
|
320
324
|
//#endregion EVENTS
|
|
@@ -323,7 +327,7 @@ const NvFieldmultiselect = class {
|
|
|
323
327
|
handleOptionsChange(newValue) {
|
|
324
328
|
if (!newValue)
|
|
325
329
|
return;
|
|
326
|
-
this.
|
|
330
|
+
this.value = newValue
|
|
327
331
|
.filter(option => option.checked)
|
|
328
332
|
.map(option => option.value);
|
|
329
333
|
this.reorderOptionsContent();
|
|
@@ -332,8 +336,10 @@ const NvFieldmultiselect = class {
|
|
|
332
336
|
* Emitted when the value changes.
|
|
333
337
|
*/
|
|
334
338
|
watchValueHandler() {
|
|
335
|
-
//
|
|
336
|
-
this.
|
|
339
|
+
// Synchronize child components when value changes programmatically
|
|
340
|
+
if (this.el && this.el.isConnected) {
|
|
341
|
+
this.syncChildComponents();
|
|
342
|
+
}
|
|
337
343
|
}
|
|
338
344
|
//#endregion WATCHERS
|
|
339
345
|
/****************************************************************************/
|
|
@@ -373,22 +379,23 @@ const NvFieldmultiselect = class {
|
|
|
373
379
|
}
|
|
374
380
|
const { value, checked } = event.detail;
|
|
375
381
|
if (value !== undefined && value !== null) {
|
|
376
|
-
const
|
|
377
|
-
const valueIndex =
|
|
382
|
+
const newValue = [...this.value];
|
|
383
|
+
const valueIndex = newValue.indexOf(value);
|
|
378
384
|
if (checked && valueIndex === -1) {
|
|
379
|
-
|
|
385
|
+
newValue.push(value);
|
|
380
386
|
}
|
|
381
387
|
else if (!checked && valueIndex > -1) {
|
|
382
|
-
|
|
388
|
+
newValue.splice(valueIndex, 1);
|
|
383
389
|
}
|
|
384
|
-
//
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
390
|
+
// Always update the state and emit the event when an item is checked/unchecked
|
|
391
|
+
this.value = newValue;
|
|
392
|
+
this.valueChanged.emit(this.value);
|
|
393
|
+
// Update the checked state of all items to ensure consistency
|
|
394
|
+
this.syncChildComponents();
|
|
395
|
+
// Preserve the filter text in the input
|
|
396
|
+
if (this.filterable && this.inputElement) {
|
|
397
|
+
// Keep the current filter text in the input
|
|
398
|
+
this.inputElement.value = this.filterText;
|
|
392
399
|
}
|
|
393
400
|
}
|
|
394
401
|
else {
|
|
@@ -427,12 +434,10 @@ const NvFieldmultiselect = class {
|
|
|
427
434
|
}
|
|
428
435
|
// Specific initialization for slots mode
|
|
429
436
|
if (!this.options) {
|
|
437
|
+
// Use a microtask to ensure DOM is ready
|
|
430
438
|
Promise.resolve().then(() => {
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
this.selectedValues = items
|
|
434
|
-
.filter(item => item.hasAttribute('checked'))
|
|
435
|
-
.map(item => item.getAttribute('value') || '');
|
|
439
|
+
// Synchronize child components
|
|
440
|
+
this.syncChildComponents();
|
|
436
441
|
// Force a reorder after initialization
|
|
437
442
|
requestAnimationFrame(() => {
|
|
438
443
|
this.reorderSlotContent();
|
|
@@ -443,13 +448,8 @@ const NvFieldmultiselect = class {
|
|
|
443
448
|
if (this.options) {
|
|
444
449
|
this.sortedOptions = [...((_a = this.options) !== null && _a !== void 0 ? _a : [])];
|
|
445
450
|
}
|
|
446
|
-
//
|
|
447
|
-
if (this.
|
|
448
|
-
this.filterText = String(this.value).toLocaleLowerCase();
|
|
449
|
-
this.filterItems();
|
|
450
|
-
}
|
|
451
|
-
else {
|
|
452
|
-
// Reset visibility state of all dropdown items
|
|
451
|
+
// Reset filter if needed
|
|
452
|
+
if (!this.filterText) {
|
|
453
453
|
this.resetFilter();
|
|
454
454
|
}
|
|
455
455
|
}
|
|
@@ -460,6 +460,8 @@ const NvFieldmultiselect = class {
|
|
|
460
460
|
if (this.options) {
|
|
461
461
|
this.handleOptionsChange(this.options);
|
|
462
462
|
}
|
|
463
|
+
// Final synchronization of child components after everything is loaded
|
|
464
|
+
this.syncChildComponents();
|
|
463
465
|
}
|
|
464
466
|
/**
|
|
465
467
|
* Unsubscribe from click outside event.
|
|
@@ -477,38 +479,6 @@ const NvFieldmultiselect = class {
|
|
|
477
479
|
async getFilterText() {
|
|
478
480
|
return this.filterText;
|
|
479
481
|
}
|
|
480
|
-
/**
|
|
481
|
-
* Set the initial selection based on the current value and update the inputElement value.
|
|
482
|
-
*/
|
|
483
|
-
setInitialSelection() {
|
|
484
|
-
var _a;
|
|
485
|
-
const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitem'));
|
|
486
|
-
const selectedItem = items.find(item => {
|
|
487
|
-
var _a;
|
|
488
|
-
return item.getAttribute('label') === this.value ||
|
|
489
|
-
item.getAttribute('value') === this.value ||
|
|
490
|
-
((_a = item.textContent) === null || _a === void 0 ? void 0 : _a.trim()) === this.value;
|
|
491
|
-
});
|
|
492
|
-
// Remove 'selected' from all items first to reset the state
|
|
493
|
-
items.forEach(item => {
|
|
494
|
-
item.removeAttribute('selected');
|
|
495
|
-
item.classList.remove('selected');
|
|
496
|
-
});
|
|
497
|
-
if (selectedItem) {
|
|
498
|
-
// Add the `selected` attribute and `selected` class for visual styling
|
|
499
|
-
selectedItem.setAttribute('selected', 'true');
|
|
500
|
-
selectedItem.classList.add('selected');
|
|
501
|
-
// Update the value and inputElement value to reflect the pre-selected item
|
|
502
|
-
this.value =
|
|
503
|
-
selectedItem.getAttribute('label') ||
|
|
504
|
-
selectedItem.getAttribute('value') ||
|
|
505
|
-
((_a = selectedItem.textContent) === null || _a === void 0 ? void 0 : _a.trim()) ||
|
|
506
|
-
'';
|
|
507
|
-
if (this.inputElement) {
|
|
508
|
-
this.inputElement.value = this.value;
|
|
509
|
-
}
|
|
510
|
-
}
|
|
511
|
-
}
|
|
512
482
|
/**
|
|
513
483
|
* Reset the filter and make all items visible.
|
|
514
484
|
*/
|
|
@@ -525,8 +495,8 @@ const NvFieldmultiselect = class {
|
|
|
525
495
|
if (emptyMessage)
|
|
526
496
|
emptyMessage.remove();
|
|
527
497
|
// Reorder with divider if needed
|
|
528
|
-
const selectedItems = items.filter(item => this.
|
|
529
|
-
const unselectedItems = items.filter(item => !this.
|
|
498
|
+
const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
499
|
+
const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
|
|
530
500
|
if (selectedItems.length > 0) {
|
|
531
501
|
this.manageDivider(ul, selectedItems, unselectedItems);
|
|
532
502
|
}
|
|
@@ -537,7 +507,7 @@ const NvFieldmultiselect = class {
|
|
|
537
507
|
* @returns {string[]} The selected values.
|
|
538
508
|
*/
|
|
539
509
|
async getSelectedValues() {
|
|
540
|
-
return this.
|
|
510
|
+
return this.value;
|
|
541
511
|
}
|
|
542
512
|
/**
|
|
543
513
|
* Reorder the content of the slot.
|
|
@@ -559,8 +529,8 @@ const NvFieldmultiselect = class {
|
|
|
559
529
|
return;
|
|
560
530
|
}
|
|
561
531
|
// Separate checked vs unchecked
|
|
562
|
-
const selectedItems = items.filter(item => this.
|
|
563
|
-
const unselectedItems = items.filter(item => !this.
|
|
532
|
+
const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
533
|
+
const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
|
|
564
534
|
// Reinsert CHECKED items FIRST
|
|
565
535
|
// appendChild() moves the element without recreating it
|
|
566
536
|
// this is not trigger a re-rendering of the component in the platforms
|
|
@@ -586,8 +556,8 @@ const NvFieldmultiselect = class {
|
|
|
586
556
|
if (!ul)
|
|
587
557
|
return;
|
|
588
558
|
const items = Array.from(ul.querySelectorAll('nv-fielddropdownitemcheck')).filter(item => item.style.display !== 'none');
|
|
589
|
-
const selectedItems = items.filter(item => this.
|
|
590
|
-
const unselectedItems = items.filter(item => !this.
|
|
559
|
+
const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
560
|
+
const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
|
|
591
561
|
// Reorder the elements
|
|
592
562
|
selectedItems.forEach(item => ul.appendChild(item));
|
|
593
563
|
unselectedItems.forEach(item => ul.appendChild(item));
|
|
@@ -623,8 +593,8 @@ const NvFieldmultiselect = class {
|
|
|
623
593
|
}
|
|
624
594
|
// Reorder with divider
|
|
625
595
|
const items = Array.from(ul.querySelectorAll('nv-fielddropdownitemcheck'));
|
|
626
|
-
const selectedItems = items.filter(item => this.
|
|
627
|
-
const unselectedItems = items.filter(item => !this.
|
|
596
|
+
const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
597
|
+
const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
|
|
628
598
|
this.manageDivider(ul, selectedItems, unselectedItems);
|
|
629
599
|
return;
|
|
630
600
|
}
|
|
@@ -645,8 +615,8 @@ const NvFieldmultiselect = class {
|
|
|
645
615
|
});
|
|
646
616
|
// Manage the divider with the visible items
|
|
647
617
|
const visibleItems = items.filter(item => item.style.display !== 'none');
|
|
648
|
-
const visibleSelected = visibleItems.filter(item => this.
|
|
649
|
-
const visibleUnselected = visibleItems.filter(item => !this.
|
|
618
|
+
const visibleSelected = visibleItems.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
619
|
+
const visibleUnselected = visibleItems.filter(item => !this.value.includes(item.getAttribute('value') || ''));
|
|
650
620
|
this.manageDivider(ul, visibleSelected, visibleUnselected);
|
|
651
621
|
}
|
|
652
622
|
else {
|
|
@@ -704,8 +674,8 @@ const NvFieldmultiselect = class {
|
|
|
704
674
|
});
|
|
705
675
|
// Manage the divider with the visible items
|
|
706
676
|
const visibleItems = items.filter(item => item.style.display !== 'none');
|
|
707
|
-
const visibleSelected = visibleItems.filter(item => this.
|
|
708
|
-
const visibleUnselected = visibleItems.filter(item => !this.
|
|
677
|
+
const visibleSelected = visibleItems.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
678
|
+
const visibleUnselected = visibleItems.filter(item => !this.value.includes(item.getAttribute('value') || ''));
|
|
709
679
|
this.manageDivider(ul, visibleSelected, visibleUnselected);
|
|
710
680
|
// Add or remove the empty message based on the case
|
|
711
681
|
if (!hasVisibleItems) {
|
|
@@ -753,8 +723,8 @@ const NvFieldmultiselect = class {
|
|
|
753
723
|
});
|
|
754
724
|
// Get visible items after filtering
|
|
755
725
|
const visibleItems = items.filter(item => item.style.display !== 'none');
|
|
756
|
-
const visibleSelectedItems = visibleItems.filter(item => this.
|
|
757
|
-
this.manageDivider(ul, visibleSelectedItems, visibleItems.filter(item => !this.
|
|
726
|
+
const visibleSelectedItems = visibleItems.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
727
|
+
this.manageDivider(ul, visibleSelectedItems, visibleItems.filter(item => !this.value.includes(item.getAttribute('value') || '')));
|
|
758
728
|
// Add empty message if no items match the filter
|
|
759
729
|
if (!hasVisibleItems) {
|
|
760
730
|
const emptyMessage = document.createElement('li');
|
|
@@ -951,6 +921,29 @@ const NvFieldmultiselect = class {
|
|
|
951
921
|
divider.style.display = 'none';
|
|
952
922
|
}
|
|
953
923
|
}
|
|
924
|
+
/**
|
|
925
|
+
* Synchronizes the checked state of all child nv-fielddropdownitemcheck components
|
|
926
|
+
* with the current selectedValues state.
|
|
927
|
+
*/
|
|
928
|
+
syncChildComponents() {
|
|
929
|
+
// Early return if element is not ready
|
|
930
|
+
if (!this.el || !this.el.isConnected) {
|
|
931
|
+
return;
|
|
932
|
+
}
|
|
933
|
+
const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitemcheck'));
|
|
934
|
+
items.forEach(item => {
|
|
935
|
+
// Get the effective value: use explicit value if present, otherwise use label
|
|
936
|
+
const itemValue = item.getAttribute('value') || item.getAttribute('label') || '';
|
|
937
|
+
if (this.value.includes(itemValue)) {
|
|
938
|
+
item.setAttribute('checked', '');
|
|
939
|
+
item.checked = true;
|
|
940
|
+
}
|
|
941
|
+
else {
|
|
942
|
+
item.removeAttribute('checked');
|
|
943
|
+
item.checked = false;
|
|
944
|
+
}
|
|
945
|
+
});
|
|
946
|
+
}
|
|
954
947
|
/**
|
|
955
948
|
* Renders description and error description sections
|
|
956
949
|
* @returns {any} The JSX for descriptions
|