@nova-design-system/nova-webcomponents 3.5.0 → 3.6.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 +194 -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 +59 -50
- 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-fielddate.cjs.entry.js +100 -35
- package/dist/cjs/nv-fielddate.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fielddaterange.cjs.entry.js +4 -4
- 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 +85 -100
- 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 +9 -9
- 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 +146 -0
- package/dist/collection/components/nv-accordion/nv-accordion.docs.js.map +1 -0
- package/dist/collection/components/nv-accordion/nv-accordion.js +342 -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 +5 -0
- package/dist/collection/components/nv-calendar/nv-calendar.js +55 -27
- 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 +3 -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 +4 -4
- package/dist/collection/components/nv-fielddate/nv-fielddate.js +102 -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 +4 -4
- 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 +1 -1
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.docs.js +36 -26
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js +117 -115
- 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-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 +242 -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 +107 -41
- package/dist/components/nv-fielddate.js.map +1 -1
- package/dist/components/nv-fielddaterange.js +10 -10
- 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 +94 -110
- 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 +13 -13
- 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-1daca48a.js → p-09cdd71f.js} +2 -65
- package/dist/components/p-09cdd71f.js.map +1 -0
- package/dist/components/p-15aeab4d.js +23 -0
- package/dist/components/p-15aeab4d.js.map +1 -0
- package/dist/components/{p-44f0039b.js → p-190c8f60.js} +3 -3
- package/dist/components/{p-44f0039b.js.map → p-190c8f60.js.map} +1 -1
- package/dist/components/p-1cbacdba.js +68 -0
- package/dist/components/p-1cbacdba.js.map +1 -0
- package/dist/components/p-230ad6c5.js +223 -0
- package/dist/components/p-230ad6c5.js.map +1 -0
- package/dist/components/{p-05c19c9a.js → p-316ae8e3.js} +4 -4
- package/dist/components/{p-05c19c9a.js.map → p-316ae8e3.js.map} +1 -1
- package/dist/components/{p-00ac701f.js → p-4069966e.js} +8 -6
- package/dist/components/p-4069966e.js.map +1 -0
- package/dist/components/{p-5bee0141.js → p-436a0f99.js} +6 -5
- package/dist/components/p-436a0f99.js.map +1 -0
- package/dist/components/{p-918bb719.js → p-4864a690.js} +2 -2
- package/dist/components/{p-918bb719.js.map → p-4864a690.js.map} +1 -1
- package/dist/components/{p-4badc1d2.js → p-5e89eb9d.js} +7 -7
- package/dist/components/{p-4badc1d2.js.map → p-5e89eb9d.js.map} +1 -1
- package/dist/components/{p-001c888b.js → p-618ae85a.js} +5 -4
- package/dist/components/p-618ae85a.js.map +1 -0
- package/dist/components/{p-d56b30ab.js → p-79b38dfb.js} +3 -3
- package/dist/components/{p-d56b30ab.js.map → p-79b38dfb.js.map} +1 -1
- package/dist/components/{p-a0d7e0cd.js → p-840858ed.js} +60 -51
- package/dist/components/p-840858ed.js.map +1 -0
- package/dist/components/{p-cebdbb40.js → p-8a5b0f74.js} +3 -3
- package/dist/components/{p-cebdbb40.js.map → p-8a5b0f74.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-42301d8f.js → p-9a263d0e.js} +3 -23
- package/dist/components/p-9a263d0e.js.map +1 -0
- package/dist/components/{p-9f1e8ef3.js → p-9cff2fd1.js} +2 -2
- package/dist/components/{p-9f1e8ef3.js.map → p-9cff2fd1.js.map} +1 -1
- package/dist/components/{p-9e6e26cb.js → p-9ed7a440.js} +5 -5
- package/dist/components/{p-9e6e26cb.js.map → p-9ed7a440.js.map} +1 -1
- package/dist/components/{p-970cd9b1.js → p-ac76a11c.js} +5 -5
- package/dist/components/{p-970cd9b1.js.map → p-ac76a11c.js.map} +1 -1
- 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-e8c083e3.js → p-d2b4441a.js} +3 -3
- package/dist/components/{p-e8c083e3.js.map → p-d2b4441a.js.map} +1 -1
- package/dist/components/{p-e072f051.js → p-f1bbb9e8.js} +2 -2
- package/dist/components/{p-e072f051.js.map → p-f1bbb9e8.js.map} +1 -1
- package/dist/components/{p-919b5237.js → p-f266b533.js} +5 -5
- package/dist/components/{p-919b5237.js.map → p-f266b533.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 +190 -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 +59 -50
- 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-fielddate.entry.js +100 -35
- package/dist/esm/nv-fielddate.entry.js.map +1 -1
- package/dist/esm/nv-fielddaterange.entry.js +4 -4
- 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 +85 -100
- 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 +9 -9
- 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.esm.js +1 -1
- package/dist/native/native.esm.js.map +1 -1
- 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-0ac03708.entry.js +2 -0
- package/dist/native/p-0ac03708.entry.js.map +1 -0
- package/dist/native/p-0ada0382.entry.js +2 -0
- package/dist/native/p-0ada0382.entry.js.map +1 -0
- package/dist/native/p-1235c007.entry.js +2 -0
- package/dist/native/p-12963ae4.entry.js +2 -0
- package/dist/native/p-12963ae4.entry.js.map +1 -0
- package/dist/native/p-15aeab4d.js +2 -0
- package/dist/native/p-15aeab4d.js.map +1 -0
- package/dist/native/{p-b5b9190a.entry.js → p-18831490.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-1cce9b24.entry.js +2 -0
- package/dist/native/p-1cce9b24.entry.js.map +1 -0
- package/dist/native/{p-914da1e1.entry.js → p-1f932a4b.entry.js} +2 -2
- package/dist/native/{p-6ea1c78b.entry.js → p-2576c1a0.entry.js} +2 -2
- package/dist/native/{p-19f484a0.entry.js → p-2d23fcea.entry.js} +2 -2
- package/dist/native/{p-e9962dac.entry.js → p-31e72603.entry.js} +2 -2
- package/dist/native/p-33e5037d.entry.js +2 -0
- package/dist/native/{p-b9c7b644.entry.js → p-4cf00884.entry.js} +2 -2
- package/dist/native/p-5172f17a.entry.js +2 -0
- package/dist/native/{p-08ca678c.entry.js → p-51a57a3a.entry.js} +2 -2
- package/dist/native/p-5eca22c7.entry.js +2 -0
- package/dist/native/{p-82568ec7.entry.js.map → p-5eca22c7.entry.js.map} +1 -1
- package/dist/native/{p-dd6b1d79.entry.js → p-609b3822.entry.js} +2 -2
- package/dist/native/{p-e293b3fe.entry.js → p-625be06b.entry.js} +2 -2
- package/dist/native/{p-a983e6a0.entry.js → p-8030c16b.entry.js} +2 -2
- 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-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-a6dc9b59.entry.js +2 -0
- package/dist/native/p-a6dc9b59.entry.js.map +1 -0
- package/dist/native/{p-003b6377.entry.js → p-b829383a.entry.js} +2 -2
- package/dist/native/{p-af1e6035.entry.js → p-bab6d0a5.entry.js} +2 -2
- package/dist/native/p-baddee4c.entry.js +7 -0
- package/dist/native/p-baddee4c.entry.js.map +1 -0
- package/dist/native/p-be67545e.entry.js +2 -0
- package/dist/native/p-be67545e.entry.js.map +1 -0
- package/dist/native/{p-dd256ea3.entry.js → p-c2826f22.entry.js} +2 -2
- package/dist/native/p-c9cde996.entry.js +2 -0
- package/dist/native/{p-d4bf2587.entry.js.map → p-c9cde996.entry.js.map} +1 -1
- package/dist/native/{p-54198779.entry.js → p-cf468c67.entry.js} +2 -2
- package/dist/native/{p-a5c72bd3.entry.js → p-ddb0b9f6.entry.js} +2 -2
- package/dist/native/{p-2d98d4f0.entry.js → p-e19a8885.entry.js} +2 -2
- package/dist/native/{p-1e0df2d3.entry.js → p-e802fbb8.entry.js} +2 -2
- package/dist/native/p-ec92ee7a.entry.js +2 -0
- package/dist/native/{p-5b06f4b5.entry.js → p-f9aa4900.entry.js} +2 -2
- package/dist/native/{p-be9aeed4.entry.js → p-fca3e27d.entry.js} +2 -2
- package/dist/native/p-fe4e516b.entry.js +2 -0
- package/dist/native/p-fe4e516b.entry.js.map +1 -0
- package/dist/types/components/nv-accordion/nv-accordion.d.ts +115 -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/partials/calendar-grid.d.ts +4 -2
- package/dist/types/components/nv-dialog/nv-dialog.d.ts +7 -0
- package/dist/types/components/nv-fielddate/nv-fielddate.d.ts +22 -2
- package/dist/types/components/nv-fieldmultiselect/nv-fieldmultiselect.d.ts +13 -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 +241 -10
- package/dist/vscode-data.json +75 -5
- package/hydrate/index.js +1113 -592
- package/hydrate/index.mjs +1113 -592
- package/package.json +1 -1
- 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-5bee0141.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-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-86ab23ea.entry.js.map → p-1235c007.entry.js.map} +0 -0
- /package/dist/native/{p-b5b9190a.entry.js.map → p-18831490.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-6ea1c78b.entry.js.map → p-2576c1a0.entry.js.map} +0 -0
- /package/dist/native/{p-19f484a0.entry.js.map → p-2d23fcea.entry.js.map} +0 -0
- /package/dist/native/{p-e9962dac.entry.js.map → p-31e72603.entry.js.map} +0 -0
- /package/dist/native/{p-0493c51a.entry.js.map → p-33e5037d.entry.js.map} +0 -0
- /package/dist/native/{p-b9c7b644.entry.js.map → p-4cf00884.entry.js.map} +0 -0
- /package/dist/native/{p-bee972c7.entry.js.map → p-5172f17a.entry.js.map} +0 -0
- /package/dist/native/{p-08ca678c.entry.js.map → p-51a57a3a.entry.js.map} +0 -0
- /package/dist/native/{p-dd6b1d79.entry.js.map → p-609b3822.entry.js.map} +0 -0
- /package/dist/native/{p-e293b3fe.entry.js.map → p-625be06b.entry.js.map} +0 -0
- /package/dist/native/{p-a983e6a0.entry.js.map → p-8030c16b.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-003b6377.entry.js.map → p-b829383a.entry.js.map} +0 -0
- /package/dist/native/{p-af1e6035.entry.js.map → p-bab6d0a5.entry.js.map} +0 -0
- /package/dist/native/{p-dd256ea3.entry.js.map → p-c2826f22.entry.js.map} +0 -0
- /package/dist/native/{p-54198779.entry.js.map → p-cf468c67.entry.js.map} +0 -0
- /package/dist/native/{p-a5c72bd3.entry.js.map → p-ddb0b9f6.entry.js.map} +0 -0
- /package/dist/native/{p-2d98d4f0.entry.js.map → p-e19a8885.entry.js.map} +0 -0
- /package/dist/native/{p-1e0df2d3.entry.js.map → p-e802fbb8.entry.js.map} +0 -0
- /package/dist/native/{p-45cbe6e4.entry.js.map → p-ec92ee7a.entry.js.map} +0 -0
- /package/dist/native/{p-5b06f4b5.entry.js.map → p-f9aa4900.entry.js.map} +0 -0
- /package/dist/native/{p-be9aeed4.entry.js.map → p-fca3e27d.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,8 +139,7 @@ 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
|
}
|
|
@@ -152,9 +152,8 @@ const NvFieldmultiselect = class {
|
|
|
152
152
|
if (!this.el.contains(document.activeElement)) {
|
|
153
153
|
// Close the popover without affecting the divider
|
|
154
154
|
this.open = false;
|
|
155
|
-
// Reset filter if needed
|
|
155
|
+
// Reset filter if needed, but preserve the filter text
|
|
156
156
|
if (this.filterable) {
|
|
157
|
-
this.filterText = '';
|
|
158
157
|
this.resetFilter();
|
|
159
158
|
}
|
|
160
159
|
}
|
|
@@ -213,15 +212,14 @@ const NvFieldmultiselect = class {
|
|
|
213
212
|
return;
|
|
214
213
|
}
|
|
215
214
|
const input = event.target;
|
|
216
|
-
this.
|
|
217
|
-
this.
|
|
215
|
+
this.filterText = input.value;
|
|
216
|
+
this.filterTextChanged.emit(this.filterText);
|
|
218
217
|
// Clear any existing timer
|
|
219
218
|
if (this.debounceTimer) {
|
|
220
219
|
window.clearTimeout(this.debounceTimer);
|
|
221
220
|
}
|
|
222
221
|
// Set a new timer for filtering
|
|
223
222
|
this.debounceTimer = window.setTimeout(() => {
|
|
224
|
-
this.filterText = input.value.toLowerCase();
|
|
225
223
|
this.filterItemsOption();
|
|
226
224
|
}, this.debounceDelay);
|
|
227
225
|
};
|
|
@@ -235,15 +233,14 @@ const NvFieldmultiselect = class {
|
|
|
235
233
|
if (this.disabled || this.readonly)
|
|
236
234
|
return;
|
|
237
235
|
const input = event.target;
|
|
238
|
-
this.
|
|
239
|
-
this.
|
|
236
|
+
this.filterText = input.value;
|
|
237
|
+
this.filterTextChanged.emit(this.filterText);
|
|
240
238
|
// Clear any existing timer
|
|
241
239
|
if (this.debounceTimer) {
|
|
242
240
|
window.clearTimeout(this.debounceTimer);
|
|
243
241
|
}
|
|
244
242
|
// Set a new timer for filtering
|
|
245
243
|
this.debounceTimer = window.setTimeout(() => {
|
|
246
|
-
this.filterText = input.value.toLowerCase();
|
|
247
244
|
this.filterSlotsItems();
|
|
248
245
|
}, this.debounceDelay);
|
|
249
246
|
};
|
|
@@ -273,9 +270,8 @@ const NvFieldmultiselect = class {
|
|
|
273
270
|
if (!this.el.contains(document.activeElement)) {
|
|
274
271
|
// Close the popover without affecting the divider
|
|
275
272
|
this.open = false;
|
|
276
|
-
// Reset filter if needed
|
|
273
|
+
// Reset filter if needed, but preserve the filter text
|
|
277
274
|
if (this.filterable) {
|
|
278
|
-
this.filterText = '';
|
|
279
275
|
this.resetFilter();
|
|
280
276
|
}
|
|
281
277
|
}
|
|
@@ -307,14 +303,14 @@ const NvFieldmultiselect = class {
|
|
|
307
303
|
* @returns {any} The JSX for options mode
|
|
308
304
|
*/
|
|
309
305
|
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.
|
|
306
|
+
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" })), 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
307
|
};
|
|
312
308
|
/**
|
|
313
309
|
* Renders the component in slots mode
|
|
314
310
|
* @returns {any} The JSX for slots mode
|
|
315
311
|
*/
|
|
316
312
|
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.
|
|
313
|
+
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" })), 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
314
|
};
|
|
319
315
|
}
|
|
320
316
|
//#endregion EVENTS
|
|
@@ -323,7 +319,7 @@ const NvFieldmultiselect = class {
|
|
|
323
319
|
handleOptionsChange(newValue) {
|
|
324
320
|
if (!newValue)
|
|
325
321
|
return;
|
|
326
|
-
this.
|
|
322
|
+
this.value = newValue
|
|
327
323
|
.filter(option => option.checked)
|
|
328
324
|
.map(option => option.value);
|
|
329
325
|
this.reorderOptionsContent();
|
|
@@ -332,8 +328,10 @@ const NvFieldmultiselect = class {
|
|
|
332
328
|
* Emitted when the value changes.
|
|
333
329
|
*/
|
|
334
330
|
watchValueHandler() {
|
|
335
|
-
//
|
|
336
|
-
this.
|
|
331
|
+
// Synchronize child components when value changes programmatically
|
|
332
|
+
if (this.el && this.el.isConnected) {
|
|
333
|
+
this.syncChildComponents();
|
|
334
|
+
}
|
|
337
335
|
}
|
|
338
336
|
//#endregion WATCHERS
|
|
339
337
|
/****************************************************************************/
|
|
@@ -373,22 +371,23 @@ const NvFieldmultiselect = class {
|
|
|
373
371
|
}
|
|
374
372
|
const { value, checked } = event.detail;
|
|
375
373
|
if (value !== undefined && value !== null) {
|
|
376
|
-
const
|
|
377
|
-
const valueIndex =
|
|
374
|
+
const newValue = [...this.value];
|
|
375
|
+
const valueIndex = newValue.indexOf(value);
|
|
378
376
|
if (checked && valueIndex === -1) {
|
|
379
|
-
|
|
377
|
+
newValue.push(value);
|
|
380
378
|
}
|
|
381
379
|
else if (!checked && valueIndex > -1) {
|
|
382
|
-
|
|
380
|
+
newValue.splice(valueIndex, 1);
|
|
383
381
|
}
|
|
384
|
-
//
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
382
|
+
// Always update the state and emit the event when an item is checked/unchecked
|
|
383
|
+
this.value = newValue;
|
|
384
|
+
this.valueChanged.emit(this.value);
|
|
385
|
+
// Update the checked state of all items to ensure consistency
|
|
386
|
+
this.syncChildComponents();
|
|
387
|
+
// Preserve the filter text in the input
|
|
388
|
+
if (this.filterable && this.inputElement) {
|
|
389
|
+
// Keep the current filter text in the input
|
|
390
|
+
this.inputElement.value = this.filterText;
|
|
392
391
|
}
|
|
393
392
|
}
|
|
394
393
|
else {
|
|
@@ -427,12 +426,10 @@ const NvFieldmultiselect = class {
|
|
|
427
426
|
}
|
|
428
427
|
// Specific initialization for slots mode
|
|
429
428
|
if (!this.options) {
|
|
429
|
+
// Use a microtask to ensure DOM is ready
|
|
430
430
|
Promise.resolve().then(() => {
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
this.selectedValues = items
|
|
434
|
-
.filter(item => item.hasAttribute('checked'))
|
|
435
|
-
.map(item => item.getAttribute('value') || '');
|
|
431
|
+
// Synchronize child components
|
|
432
|
+
this.syncChildComponents();
|
|
436
433
|
// Force a reorder after initialization
|
|
437
434
|
requestAnimationFrame(() => {
|
|
438
435
|
this.reorderSlotContent();
|
|
@@ -443,13 +440,8 @@ const NvFieldmultiselect = class {
|
|
|
443
440
|
if (this.options) {
|
|
444
441
|
this.sortedOptions = [...((_a = this.options) !== null && _a !== void 0 ? _a : [])];
|
|
445
442
|
}
|
|
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
|
|
443
|
+
// Reset filter if needed
|
|
444
|
+
if (!this.filterText) {
|
|
453
445
|
this.resetFilter();
|
|
454
446
|
}
|
|
455
447
|
}
|
|
@@ -460,6 +452,8 @@ const NvFieldmultiselect = class {
|
|
|
460
452
|
if (this.options) {
|
|
461
453
|
this.handleOptionsChange(this.options);
|
|
462
454
|
}
|
|
455
|
+
// Final synchronization of child components after everything is loaded
|
|
456
|
+
this.syncChildComponents();
|
|
463
457
|
}
|
|
464
458
|
/**
|
|
465
459
|
* Unsubscribe from click outside event.
|
|
@@ -477,38 +471,6 @@ const NvFieldmultiselect = class {
|
|
|
477
471
|
async getFilterText() {
|
|
478
472
|
return this.filterText;
|
|
479
473
|
}
|
|
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
474
|
/**
|
|
513
475
|
* Reset the filter and make all items visible.
|
|
514
476
|
*/
|
|
@@ -525,8 +487,8 @@ const NvFieldmultiselect = class {
|
|
|
525
487
|
if (emptyMessage)
|
|
526
488
|
emptyMessage.remove();
|
|
527
489
|
// Reorder with divider if needed
|
|
528
|
-
const selectedItems = items.filter(item => this.
|
|
529
|
-
const unselectedItems = items.filter(item => !this.
|
|
490
|
+
const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
491
|
+
const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
|
|
530
492
|
if (selectedItems.length > 0) {
|
|
531
493
|
this.manageDivider(ul, selectedItems, unselectedItems);
|
|
532
494
|
}
|
|
@@ -537,7 +499,7 @@ const NvFieldmultiselect = class {
|
|
|
537
499
|
* @returns {string[]} The selected values.
|
|
538
500
|
*/
|
|
539
501
|
async getSelectedValues() {
|
|
540
|
-
return this.
|
|
502
|
+
return this.value;
|
|
541
503
|
}
|
|
542
504
|
/**
|
|
543
505
|
* Reorder the content of the slot.
|
|
@@ -559,8 +521,8 @@ const NvFieldmultiselect = class {
|
|
|
559
521
|
return;
|
|
560
522
|
}
|
|
561
523
|
// Separate checked vs unchecked
|
|
562
|
-
const selectedItems = items.filter(item => this.
|
|
563
|
-
const unselectedItems = items.filter(item => !this.
|
|
524
|
+
const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
525
|
+
const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
|
|
564
526
|
// Reinsert CHECKED items FIRST
|
|
565
527
|
// appendChild() moves the element without recreating it
|
|
566
528
|
// this is not trigger a re-rendering of the component in the platforms
|
|
@@ -586,8 +548,8 @@ const NvFieldmultiselect = class {
|
|
|
586
548
|
if (!ul)
|
|
587
549
|
return;
|
|
588
550
|
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.
|
|
551
|
+
const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
552
|
+
const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
|
|
591
553
|
// Reorder the elements
|
|
592
554
|
selectedItems.forEach(item => ul.appendChild(item));
|
|
593
555
|
unselectedItems.forEach(item => ul.appendChild(item));
|
|
@@ -623,8 +585,8 @@ const NvFieldmultiselect = class {
|
|
|
623
585
|
}
|
|
624
586
|
// Reorder with divider
|
|
625
587
|
const items = Array.from(ul.querySelectorAll('nv-fielddropdownitemcheck'));
|
|
626
|
-
const selectedItems = items.filter(item => this.
|
|
627
|
-
const unselectedItems = items.filter(item => !this.
|
|
588
|
+
const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
589
|
+
const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
|
|
628
590
|
this.manageDivider(ul, selectedItems, unselectedItems);
|
|
629
591
|
return;
|
|
630
592
|
}
|
|
@@ -645,8 +607,8 @@ const NvFieldmultiselect = class {
|
|
|
645
607
|
});
|
|
646
608
|
// Manage the divider with the visible items
|
|
647
609
|
const visibleItems = items.filter(item => item.style.display !== 'none');
|
|
648
|
-
const visibleSelected = visibleItems.filter(item => this.
|
|
649
|
-
const visibleUnselected = visibleItems.filter(item => !this.
|
|
610
|
+
const visibleSelected = visibleItems.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
611
|
+
const visibleUnselected = visibleItems.filter(item => !this.value.includes(item.getAttribute('value') || ''));
|
|
650
612
|
this.manageDivider(ul, visibleSelected, visibleUnselected);
|
|
651
613
|
}
|
|
652
614
|
else {
|
|
@@ -704,8 +666,8 @@ const NvFieldmultiselect = class {
|
|
|
704
666
|
});
|
|
705
667
|
// Manage the divider with the visible items
|
|
706
668
|
const visibleItems = items.filter(item => item.style.display !== 'none');
|
|
707
|
-
const visibleSelected = visibleItems.filter(item => this.
|
|
708
|
-
const visibleUnselected = visibleItems.filter(item => !this.
|
|
669
|
+
const visibleSelected = visibleItems.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
670
|
+
const visibleUnselected = visibleItems.filter(item => !this.value.includes(item.getAttribute('value') || ''));
|
|
709
671
|
this.manageDivider(ul, visibleSelected, visibleUnselected);
|
|
710
672
|
// Add or remove the empty message based on the case
|
|
711
673
|
if (!hasVisibleItems) {
|
|
@@ -753,8 +715,8 @@ const NvFieldmultiselect = class {
|
|
|
753
715
|
});
|
|
754
716
|
// Get visible items after filtering
|
|
755
717
|
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.
|
|
718
|
+
const visibleSelectedItems = visibleItems.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
719
|
+
this.manageDivider(ul, visibleSelectedItems, visibleItems.filter(item => !this.value.includes(item.getAttribute('value') || '')));
|
|
758
720
|
// Add empty message if no items match the filter
|
|
759
721
|
if (!hasVisibleItems) {
|
|
760
722
|
const emptyMessage = document.createElement('li');
|
|
@@ -951,6 +913,29 @@ const NvFieldmultiselect = class {
|
|
|
951
913
|
divider.style.display = 'none';
|
|
952
914
|
}
|
|
953
915
|
}
|
|
916
|
+
/**
|
|
917
|
+
* Synchronizes the checked state of all child nv-fielddropdownitemcheck components
|
|
918
|
+
* with the current selectedValues state.
|
|
919
|
+
*/
|
|
920
|
+
syncChildComponents() {
|
|
921
|
+
// Early return if element is not ready
|
|
922
|
+
if (!this.el || !this.el.isConnected) {
|
|
923
|
+
return;
|
|
924
|
+
}
|
|
925
|
+
const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitemcheck'));
|
|
926
|
+
items.forEach(item => {
|
|
927
|
+
// Get the effective value: use explicit value if present, otherwise use label
|
|
928
|
+
const itemValue = item.getAttribute('value') || item.getAttribute('label') || '';
|
|
929
|
+
if (this.value.includes(itemValue)) {
|
|
930
|
+
item.setAttribute('checked', '');
|
|
931
|
+
item.checked = true;
|
|
932
|
+
}
|
|
933
|
+
else {
|
|
934
|
+
item.removeAttribute('checked');
|
|
935
|
+
item.checked = false;
|
|
936
|
+
}
|
|
937
|
+
});
|
|
938
|
+
}
|
|
954
939
|
/**
|
|
955
940
|
* Renders description and error description sections
|
|
956
941
|
* @returns {any} The JSX for descriptions
|