@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
|
@@ -27,6 +27,11 @@ export class NvFieldmultiselect {
|
|
|
27
27
|
* always type in fresh data.
|
|
28
28
|
*/
|
|
29
29
|
this.autocomplete = 'off';
|
|
30
|
+
/**
|
|
31
|
+
* Specifies the selected values of the multiselect field.
|
|
32
|
+
* This is the canonical value for the component and is used for form submission.
|
|
33
|
+
*/
|
|
34
|
+
this.value = [];
|
|
30
35
|
/**
|
|
31
36
|
* Marks the input field as required.
|
|
32
37
|
*/
|
|
@@ -80,17 +85,13 @@ export class NvFieldmultiselect {
|
|
|
80
85
|
* Text for the badge showing the number of selected items.
|
|
81
86
|
*/
|
|
82
87
|
this.badgeLabel = '';
|
|
83
|
-
//#endregion PROPERTIES
|
|
84
|
-
/****************************************************************************/
|
|
85
|
-
//#region STATE
|
|
86
88
|
/**
|
|
87
89
|
* The text entered by the user for filtering multiselect items.
|
|
88
90
|
*/
|
|
89
91
|
this.filterText = '';
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
this.selectedValues = [];
|
|
92
|
+
//#endregion PROPERTIES
|
|
93
|
+
/****************************************************************************/
|
|
94
|
+
//#region STATE
|
|
94
95
|
/**
|
|
95
96
|
* Sorted options for display.
|
|
96
97
|
*/
|
|
@@ -100,8 +101,8 @@ export class NvFieldmultiselect {
|
|
|
100
101
|
* Handle badge close for options mode.
|
|
101
102
|
*/
|
|
102
103
|
this.handleBadgeCloseOptions = () => {
|
|
103
|
-
this.
|
|
104
|
-
this.
|
|
104
|
+
this.value = [];
|
|
105
|
+
this.valueChanged.emit(this.value);
|
|
105
106
|
// Uncheck all elements
|
|
106
107
|
const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitemcheck'));
|
|
107
108
|
items.forEach(item => {
|
|
@@ -117,8 +118,8 @@ export class NvFieldmultiselect {
|
|
|
117
118
|
* Handle badge close for slots mode.
|
|
118
119
|
*/
|
|
119
120
|
this.handleBadgeCloseSlots = () => {
|
|
120
|
-
this.
|
|
121
|
-
this.
|
|
121
|
+
this.value = [];
|
|
122
|
+
this.valueChanged.emit(this.value);
|
|
122
123
|
// Uncheck all elements
|
|
123
124
|
const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitemcheck'));
|
|
124
125
|
items.forEach(item => {
|
|
@@ -136,12 +137,19 @@ export class NvFieldmultiselect {
|
|
|
136
137
|
if (this.isHandlingEscape) {
|
|
137
138
|
return;
|
|
138
139
|
}
|
|
139
|
-
|
|
140
|
-
// Reset filter if needed
|
|
140
|
+
// Reset filter if needed, but preserve the filter text
|
|
141
141
|
if (this.filterable) {
|
|
142
142
|
this.resetFilter();
|
|
143
143
|
}
|
|
144
144
|
};
|
|
145
|
+
/**
|
|
146
|
+
* Clear the filter text
|
|
147
|
+
*/
|
|
148
|
+
this.clearFilterText = () => {
|
|
149
|
+
this.filterText = '';
|
|
150
|
+
this.filterTextChanged.emit('');
|
|
151
|
+
this.resetFilter();
|
|
152
|
+
};
|
|
145
153
|
/**
|
|
146
154
|
* Handle input blur for options mode.
|
|
147
155
|
*/
|
|
@@ -150,10 +158,9 @@ export class NvFieldmultiselect {
|
|
|
150
158
|
if (!this.el.contains(document.activeElement)) {
|
|
151
159
|
// Close the popover without affecting the divider
|
|
152
160
|
this.open = false;
|
|
153
|
-
//
|
|
161
|
+
// Clear filter text when focus is lost
|
|
154
162
|
if (this.filterable) {
|
|
155
|
-
this.
|
|
156
|
-
this.resetFilter();
|
|
163
|
+
this.clearFilterText();
|
|
157
164
|
}
|
|
158
165
|
}
|
|
159
166
|
}, 150);
|
|
@@ -211,15 +218,14 @@ export class NvFieldmultiselect {
|
|
|
211
218
|
return;
|
|
212
219
|
}
|
|
213
220
|
const input = event.target;
|
|
214
|
-
this.
|
|
215
|
-
this.
|
|
221
|
+
this.filterText = input.value;
|
|
222
|
+
this.filterTextChanged.emit(this.filterText);
|
|
216
223
|
// Clear any existing timer
|
|
217
224
|
if (this.debounceTimer) {
|
|
218
225
|
window.clearTimeout(this.debounceTimer);
|
|
219
226
|
}
|
|
220
227
|
// Set a new timer for filtering
|
|
221
228
|
this.debounceTimer = window.setTimeout(() => {
|
|
222
|
-
this.filterText = input.value.toLowerCase();
|
|
223
229
|
this.filterItemsOption();
|
|
224
230
|
}, this.debounceDelay);
|
|
225
231
|
};
|
|
@@ -233,15 +239,14 @@ export class NvFieldmultiselect {
|
|
|
233
239
|
if (this.disabled || this.readonly)
|
|
234
240
|
return;
|
|
235
241
|
const input = event.target;
|
|
236
|
-
this.
|
|
237
|
-
this.
|
|
242
|
+
this.filterText = input.value;
|
|
243
|
+
this.filterTextChanged.emit(this.filterText);
|
|
238
244
|
// Clear any existing timer
|
|
239
245
|
if (this.debounceTimer) {
|
|
240
246
|
window.clearTimeout(this.debounceTimer);
|
|
241
247
|
}
|
|
242
248
|
// Set a new timer for filtering
|
|
243
249
|
this.debounceTimer = window.setTimeout(() => {
|
|
244
|
-
this.filterText = input.value.toLowerCase();
|
|
245
250
|
this.filterSlotsItems();
|
|
246
251
|
}, this.debounceDelay);
|
|
247
252
|
};
|
|
@@ -271,10 +276,9 @@ export class NvFieldmultiselect {
|
|
|
271
276
|
if (!this.el.contains(document.activeElement)) {
|
|
272
277
|
// Close the popover without affecting the divider
|
|
273
278
|
this.open = false;
|
|
274
|
-
//
|
|
279
|
+
// Clear filter text when focus is lost
|
|
275
280
|
if (this.filterable) {
|
|
276
|
-
this.
|
|
277
|
-
this.resetFilter();
|
|
281
|
+
this.clearFilterText();
|
|
278
282
|
}
|
|
279
283
|
}
|
|
280
284
|
}, 150);
|
|
@@ -305,14 +309,14 @@ export class NvFieldmultiselect {
|
|
|
305
309
|
* @returns {any} The JSX for options mode
|
|
306
310
|
*/
|
|
307
311
|
this.renderOptionsMode = () => {
|
|
308
|
-
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.
|
|
312
|
+
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()));
|
|
309
313
|
};
|
|
310
314
|
/**
|
|
311
315
|
* Renders the component in slots mode
|
|
312
316
|
* @returns {any} The JSX for slots mode
|
|
313
317
|
*/
|
|
314
318
|
this.renderSlotsMode = () => {
|
|
315
|
-
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.
|
|
319
|
+
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()));
|
|
316
320
|
};
|
|
317
321
|
}
|
|
318
322
|
//#endregion EVENTS
|
|
@@ -321,7 +325,7 @@ export class NvFieldmultiselect {
|
|
|
321
325
|
handleOptionsChange(newValue) {
|
|
322
326
|
if (!newValue)
|
|
323
327
|
return;
|
|
324
|
-
this.
|
|
328
|
+
this.value = newValue
|
|
325
329
|
.filter(option => option.checked)
|
|
326
330
|
.map(option => option.value);
|
|
327
331
|
this.reorderOptionsContent();
|
|
@@ -330,8 +334,10 @@ export class NvFieldmultiselect {
|
|
|
330
334
|
* Emitted when the value changes.
|
|
331
335
|
*/
|
|
332
336
|
watchValueHandler() {
|
|
333
|
-
//
|
|
334
|
-
this.
|
|
337
|
+
// Synchronize child components when value changes programmatically
|
|
338
|
+
if (this.el && this.el.isConnected) {
|
|
339
|
+
this.syncChildComponents();
|
|
340
|
+
}
|
|
335
341
|
}
|
|
336
342
|
//#endregion WATCHERS
|
|
337
343
|
/****************************************************************************/
|
|
@@ -371,22 +377,23 @@ export class NvFieldmultiselect {
|
|
|
371
377
|
}
|
|
372
378
|
const { value, checked } = event.detail;
|
|
373
379
|
if (value !== undefined && value !== null) {
|
|
374
|
-
const
|
|
375
|
-
const valueIndex =
|
|
380
|
+
const newValue = [...this.value];
|
|
381
|
+
const valueIndex = newValue.indexOf(value);
|
|
376
382
|
if (checked && valueIndex === -1) {
|
|
377
|
-
|
|
383
|
+
newValue.push(value);
|
|
378
384
|
}
|
|
379
385
|
else if (!checked && valueIndex > -1) {
|
|
380
|
-
|
|
386
|
+
newValue.splice(valueIndex, 1);
|
|
381
387
|
}
|
|
382
|
-
//
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
388
|
+
// Always update the state and emit the event when an item is checked/unchecked
|
|
389
|
+
this.value = newValue;
|
|
390
|
+
this.valueChanged.emit(this.value);
|
|
391
|
+
// Update the checked state of all items to ensure consistency
|
|
392
|
+
this.syncChildComponents();
|
|
393
|
+
// Preserve the filter text in the input
|
|
394
|
+
if (this.filterable && this.inputElement) {
|
|
395
|
+
// Keep the current filter text in the input
|
|
396
|
+
this.inputElement.value = this.filterText;
|
|
390
397
|
}
|
|
391
398
|
}
|
|
392
399
|
else {
|
|
@@ -425,12 +432,10 @@ export class NvFieldmultiselect {
|
|
|
425
432
|
}
|
|
426
433
|
// Specific initialization for slots mode
|
|
427
434
|
if (!this.options) {
|
|
435
|
+
// Use a microtask to ensure DOM is ready
|
|
428
436
|
Promise.resolve().then(() => {
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
this.selectedValues = items
|
|
432
|
-
.filter(item => item.hasAttribute('checked'))
|
|
433
|
-
.map(item => item.getAttribute('value') || '');
|
|
437
|
+
// Synchronize child components
|
|
438
|
+
this.syncChildComponents();
|
|
434
439
|
// Force a reorder after initialization
|
|
435
440
|
requestAnimationFrame(() => {
|
|
436
441
|
this.reorderSlotContent();
|
|
@@ -441,13 +446,8 @@ export class NvFieldmultiselect {
|
|
|
441
446
|
if (this.options) {
|
|
442
447
|
this.sortedOptions = [...((_a = this.options) !== null && _a !== void 0 ? _a : [])];
|
|
443
448
|
}
|
|
444
|
-
//
|
|
445
|
-
if (this.
|
|
446
|
-
this.filterText = String(this.value).toLocaleLowerCase();
|
|
447
|
-
this.filterItems();
|
|
448
|
-
}
|
|
449
|
-
else {
|
|
450
|
-
// Reset visibility state of all dropdown items
|
|
449
|
+
// Reset filter if needed
|
|
450
|
+
if (!this.filterText) {
|
|
451
451
|
this.resetFilter();
|
|
452
452
|
}
|
|
453
453
|
}
|
|
@@ -458,6 +458,8 @@ export class NvFieldmultiselect {
|
|
|
458
458
|
if (this.options) {
|
|
459
459
|
this.handleOptionsChange(this.options);
|
|
460
460
|
}
|
|
461
|
+
// Final synchronization of child components after everything is loaded
|
|
462
|
+
this.syncChildComponents();
|
|
461
463
|
}
|
|
462
464
|
/**
|
|
463
465
|
* Unsubscribe from click outside event.
|
|
@@ -475,38 +477,6 @@ export class NvFieldmultiselect {
|
|
|
475
477
|
async getFilterText() {
|
|
476
478
|
return this.filterText;
|
|
477
479
|
}
|
|
478
|
-
/**
|
|
479
|
-
* Set the initial selection based on the current value and update the inputElement value.
|
|
480
|
-
*/
|
|
481
|
-
setInitialSelection() {
|
|
482
|
-
var _a;
|
|
483
|
-
const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitem'));
|
|
484
|
-
const selectedItem = items.find(item => {
|
|
485
|
-
var _a;
|
|
486
|
-
return item.getAttribute('label') === this.value ||
|
|
487
|
-
item.getAttribute('value') === this.value ||
|
|
488
|
-
((_a = item.textContent) === null || _a === void 0 ? void 0 : _a.trim()) === this.value;
|
|
489
|
-
});
|
|
490
|
-
// Remove 'selected' from all items first to reset the state
|
|
491
|
-
items.forEach(item => {
|
|
492
|
-
item.removeAttribute('selected');
|
|
493
|
-
item.classList.remove('selected');
|
|
494
|
-
});
|
|
495
|
-
if (selectedItem) {
|
|
496
|
-
// Add the `selected` attribute and `selected` class for visual styling
|
|
497
|
-
selectedItem.setAttribute('selected', 'true');
|
|
498
|
-
selectedItem.classList.add('selected');
|
|
499
|
-
// Update the value and inputElement value to reflect the pre-selected item
|
|
500
|
-
this.value =
|
|
501
|
-
selectedItem.getAttribute('label') ||
|
|
502
|
-
selectedItem.getAttribute('value') ||
|
|
503
|
-
((_a = selectedItem.textContent) === null || _a === void 0 ? void 0 : _a.trim()) ||
|
|
504
|
-
'';
|
|
505
|
-
if (this.inputElement) {
|
|
506
|
-
this.inputElement.value = this.value;
|
|
507
|
-
}
|
|
508
|
-
}
|
|
509
|
-
}
|
|
510
480
|
/**
|
|
511
481
|
* Reset the filter and make all items visible.
|
|
512
482
|
*/
|
|
@@ -523,8 +493,8 @@ export class NvFieldmultiselect {
|
|
|
523
493
|
if (emptyMessage)
|
|
524
494
|
emptyMessage.remove();
|
|
525
495
|
// Reorder with divider if needed
|
|
526
|
-
const selectedItems = items.filter(item => this.
|
|
527
|
-
const unselectedItems = items.filter(item => !this.
|
|
496
|
+
const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
497
|
+
const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
|
|
528
498
|
if (selectedItems.length > 0) {
|
|
529
499
|
this.manageDivider(ul, selectedItems, unselectedItems);
|
|
530
500
|
}
|
|
@@ -535,7 +505,7 @@ export class NvFieldmultiselect {
|
|
|
535
505
|
* @returns {string[]} The selected values.
|
|
536
506
|
*/
|
|
537
507
|
async getSelectedValues() {
|
|
538
|
-
return this.
|
|
508
|
+
return this.value;
|
|
539
509
|
}
|
|
540
510
|
/**
|
|
541
511
|
* Reorder the content of the slot.
|
|
@@ -557,8 +527,8 @@ export class NvFieldmultiselect {
|
|
|
557
527
|
return;
|
|
558
528
|
}
|
|
559
529
|
// Separate checked vs unchecked
|
|
560
|
-
const selectedItems = items.filter(item => this.
|
|
561
|
-
const unselectedItems = items.filter(item => !this.
|
|
530
|
+
const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
531
|
+
const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
|
|
562
532
|
// Reinsert CHECKED items FIRST
|
|
563
533
|
// appendChild() moves the element without recreating it
|
|
564
534
|
// this is not trigger a re-rendering of the component in the platforms
|
|
@@ -584,8 +554,8 @@ export class NvFieldmultiselect {
|
|
|
584
554
|
if (!ul)
|
|
585
555
|
return;
|
|
586
556
|
const items = Array.from(ul.querySelectorAll('nv-fielddropdownitemcheck')).filter(item => item.style.display !== 'none');
|
|
587
|
-
const selectedItems = items.filter(item => this.
|
|
588
|
-
const unselectedItems = items.filter(item => !this.
|
|
557
|
+
const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
558
|
+
const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
|
|
589
559
|
// Reorder the elements
|
|
590
560
|
selectedItems.forEach(item => ul.appendChild(item));
|
|
591
561
|
unselectedItems.forEach(item => ul.appendChild(item));
|
|
@@ -621,8 +591,8 @@ export class NvFieldmultiselect {
|
|
|
621
591
|
}
|
|
622
592
|
// Reorder with divider
|
|
623
593
|
const items = Array.from(ul.querySelectorAll('nv-fielddropdownitemcheck'));
|
|
624
|
-
const selectedItems = items.filter(item => this.
|
|
625
|
-
const unselectedItems = items.filter(item => !this.
|
|
594
|
+
const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
595
|
+
const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
|
|
626
596
|
this.manageDivider(ul, selectedItems, unselectedItems);
|
|
627
597
|
return;
|
|
628
598
|
}
|
|
@@ -643,8 +613,8 @@ export class NvFieldmultiselect {
|
|
|
643
613
|
});
|
|
644
614
|
// Manage the divider with the visible items
|
|
645
615
|
const visibleItems = items.filter(item => item.style.display !== 'none');
|
|
646
|
-
const visibleSelected = visibleItems.filter(item => this.
|
|
647
|
-
const visibleUnselected = visibleItems.filter(item => !this.
|
|
616
|
+
const visibleSelected = visibleItems.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
617
|
+
const visibleUnselected = visibleItems.filter(item => !this.value.includes(item.getAttribute('value') || ''));
|
|
648
618
|
this.manageDivider(ul, visibleSelected, visibleUnselected);
|
|
649
619
|
}
|
|
650
620
|
else {
|
|
@@ -702,8 +672,8 @@ export class NvFieldmultiselect {
|
|
|
702
672
|
});
|
|
703
673
|
// Manage the divider with the visible items
|
|
704
674
|
const visibleItems = items.filter(item => item.style.display !== 'none');
|
|
705
|
-
const visibleSelected = visibleItems.filter(item => this.
|
|
706
|
-
const visibleUnselected = visibleItems.filter(item => !this.
|
|
675
|
+
const visibleSelected = visibleItems.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
676
|
+
const visibleUnselected = visibleItems.filter(item => !this.value.includes(item.getAttribute('value') || ''));
|
|
707
677
|
this.manageDivider(ul, visibleSelected, visibleUnselected);
|
|
708
678
|
// Add or remove the empty message based on the case
|
|
709
679
|
if (!hasVisibleItems) {
|
|
@@ -751,8 +721,8 @@ export class NvFieldmultiselect {
|
|
|
751
721
|
});
|
|
752
722
|
// Get visible items after filtering
|
|
753
723
|
const visibleItems = items.filter(item => item.style.display !== 'none');
|
|
754
|
-
const visibleSelectedItems = visibleItems.filter(item => this.
|
|
755
|
-
this.manageDivider(ul, visibleSelectedItems, visibleItems.filter(item => !this.
|
|
724
|
+
const visibleSelectedItems = visibleItems.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
725
|
+
this.manageDivider(ul, visibleSelectedItems, visibleItems.filter(item => !this.value.includes(item.getAttribute('value') || '')));
|
|
756
726
|
// Add empty message if no items match the filter
|
|
757
727
|
if (!hasVisibleItems) {
|
|
758
728
|
const emptyMessage = document.createElement('li');
|
|
@@ -949,6 +919,29 @@ export class NvFieldmultiselect {
|
|
|
949
919
|
divider.style.display = 'none';
|
|
950
920
|
}
|
|
951
921
|
}
|
|
922
|
+
/**
|
|
923
|
+
* Synchronizes the checked state of all child nv-fielddropdownitemcheck components
|
|
924
|
+
* with the current selectedValues state.
|
|
925
|
+
*/
|
|
926
|
+
syncChildComponents() {
|
|
927
|
+
// Early return if element is not ready
|
|
928
|
+
if (!this.el || !this.el.isConnected) {
|
|
929
|
+
return;
|
|
930
|
+
}
|
|
931
|
+
const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitemcheck'));
|
|
932
|
+
items.forEach(item => {
|
|
933
|
+
// Get the effective value: use explicit value if present, otherwise use label
|
|
934
|
+
const itemValue = item.getAttribute('value') || item.getAttribute('label') || '';
|
|
935
|
+
if (this.value.includes(itemValue)) {
|
|
936
|
+
item.setAttribute('checked', '');
|
|
937
|
+
item.checked = true;
|
|
938
|
+
}
|
|
939
|
+
else {
|
|
940
|
+
item.removeAttribute('checked');
|
|
941
|
+
item.checked = false;
|
|
942
|
+
}
|
|
943
|
+
});
|
|
944
|
+
}
|
|
952
945
|
/**
|
|
953
946
|
* Renders description and error description sections
|
|
954
947
|
* @returns {any} The JSX for descriptions
|
|
@@ -1104,23 +1097,22 @@ export class NvFieldmultiselect {
|
|
|
1104
1097
|
"defaultValue": "'off'"
|
|
1105
1098
|
},
|
|
1106
1099
|
"value": {
|
|
1107
|
-
"type": "
|
|
1100
|
+
"type": "unknown",
|
|
1108
1101
|
"mutable": true,
|
|
1109
1102
|
"complexType": {
|
|
1110
|
-
"original": "string",
|
|
1111
|
-
"resolved": "string",
|
|
1103
|
+
"original": "string[]",
|
|
1104
|
+
"resolved": "string[]",
|
|
1112
1105
|
"references": {}
|
|
1113
1106
|
},
|
|
1114
1107
|
"required": false,
|
|
1115
1108
|
"optional": false,
|
|
1116
1109
|
"docs": {
|
|
1117
1110
|
"tags": [],
|
|
1118
|
-
"text": "Specifies the
|
|
1111
|
+
"text": "Specifies the selected values of the multiselect field.\nThis is the canonical value for the component and is used for form submission."
|
|
1119
1112
|
},
|
|
1120
1113
|
"getter": false,
|
|
1121
1114
|
"setter": false,
|
|
1122
|
-
"
|
|
1123
|
-
"reflect": true
|
|
1115
|
+
"defaultValue": "[]"
|
|
1124
1116
|
},
|
|
1125
1117
|
"required": {
|
|
1126
1118
|
"type": "boolean",
|
|
@@ -1409,13 +1401,31 @@ export class NvFieldmultiselect {
|
|
|
1409
1401
|
"attribute": "badge-label",
|
|
1410
1402
|
"reflect": true,
|
|
1411
1403
|
"defaultValue": "''"
|
|
1404
|
+
},
|
|
1405
|
+
"filterText": {
|
|
1406
|
+
"type": "string",
|
|
1407
|
+
"mutable": true,
|
|
1408
|
+
"complexType": {
|
|
1409
|
+
"original": "string",
|
|
1410
|
+
"resolved": "string",
|
|
1411
|
+
"references": {}
|
|
1412
|
+
},
|
|
1413
|
+
"required": false,
|
|
1414
|
+
"optional": false,
|
|
1415
|
+
"docs": {
|
|
1416
|
+
"tags": [],
|
|
1417
|
+
"text": "The text entered by the user for filtering multiselect items."
|
|
1418
|
+
},
|
|
1419
|
+
"getter": false,
|
|
1420
|
+
"setter": false,
|
|
1421
|
+
"attribute": "filter-text",
|
|
1422
|
+
"reflect": true,
|
|
1423
|
+
"defaultValue": "''"
|
|
1412
1424
|
}
|
|
1413
1425
|
};
|
|
1414
1426
|
}
|
|
1415
1427
|
static get states() {
|
|
1416
1428
|
return {
|
|
1417
|
-
"filterText": {},
|
|
1418
|
-
"selectedValues": {},
|
|
1419
1429
|
"sortedOptions": {},
|
|
1420
1430
|
"isHandlingEscape": {}
|
|
1421
1431
|
};
|
|
@@ -1432,26 +1442,26 @@ export class NvFieldmultiselect {
|
|
|
1432
1442
|
"name": "bind",
|
|
1433
1443
|
"text": "value"
|
|
1434
1444
|
}],
|
|
1435
|
-
"text": "Emitted when the
|
|
1445
|
+
"text": "Emitted when the selected values change."
|
|
1436
1446
|
},
|
|
1437
1447
|
"complexType": {
|
|
1438
|
-
"original": "string",
|
|
1439
|
-
"resolved": "string",
|
|
1448
|
+
"original": "string[]",
|
|
1449
|
+
"resolved": "string[]",
|
|
1440
1450
|
"references": {}
|
|
1441
1451
|
}
|
|
1442
1452
|
}, {
|
|
1443
|
-
"method": "
|
|
1444
|
-
"name": "
|
|
1453
|
+
"method": "filterTextChanged",
|
|
1454
|
+
"name": "filterTextChanged",
|
|
1445
1455
|
"bubbles": true,
|
|
1446
1456
|
"cancelable": true,
|
|
1447
1457
|
"composed": true,
|
|
1448
1458
|
"docs": {
|
|
1449
1459
|
"tags": [],
|
|
1450
|
-
"text": "
|
|
1460
|
+
"text": "Emitted when the filter text changes."
|
|
1451
1461
|
},
|
|
1452
1462
|
"complexType": {
|
|
1453
|
-
"original": "string
|
|
1454
|
-
"resolved": "string
|
|
1463
|
+
"original": "string",
|
|
1464
|
+
"resolved": "string",
|
|
1455
1465
|
"references": {}
|
|
1456
1466
|
}
|
|
1457
1467
|
}];
|