@nova-design-system/nova-webcomponents 3.14.0 → 3.16.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/{collapse.animation-47397763.js → collapse.animation-23b7d61b.js} +5 -2
- package/dist/cjs/collapse.animation-23b7d61b.js.map +1 -0
- package/dist/cjs/{constants-52f6f8e9.js → constants-f5633903.js} +10 -1
- package/dist/cjs/constants-f5633903.js.map +1 -0
- package/dist/cjs/{fade.animation-cf6eba0d.js → fade.animation-9294e9ee.js} +3 -3
- package/dist/cjs/fade.animation-9294e9ee.js.map +1 -0
- package/dist/cjs/{grow.animation-9258ba63.js → grow.animation-f1cef0ad.js} +2 -2
- package/dist/cjs/{grow.animation-9258ba63.js.map → grow.animation-f1cef0ad.js.map} +1 -1
- package/dist/cjs/{index-c56424e5.js → index-93d3b2f8.js} +9 -6
- package/dist/cjs/index-93d3b2f8.js.map +1 -0
- package/dist/cjs/index.cjs.js +27 -6
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/native.cjs.js +2 -2
- package/dist/cjs/nv-accordion-item.cjs.entry.js +3 -3
- package/dist/cjs/nv-accordion-item.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-accordion.cjs.entry.js +6 -6
- package/dist/cjs/nv-accordion.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-alert.cjs.entry.js +5 -5
- package/dist/cjs/nv-alert.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-avatar.cjs.entry.js +3 -3
- package/dist/cjs/nv-avatar.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-badge_2.cjs.entry.js +10 -10
- package/dist/cjs/nv-badge_2.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-breadcrumb.cjs.entry.js +2 -2
- package/dist/cjs/nv-breadcrumb.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-breadcrumbs.cjs.entry.js +1 -1
- package/dist/cjs/nv-button.cjs.entry.js +3 -3
- package/dist/cjs/nv-button.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-buttongroup.cjs.entry.js +1 -1
- package/dist/cjs/nv-calendar.cjs.entry.js +2 -2
- package/dist/cjs/nv-col.cjs.entry.js +1 -1
- package/dist/cjs/nv-datagrid.cjs.entry.js +178 -11
- package/dist/cjs/nv-datagrid.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-datagridcolumn.cjs.entry.js +1 -1
- package/dist/cjs/nv-dialog.cjs.entry.js +33 -30
- package/dist/cjs/nv-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-dialogfooter_2.cjs.entry.js +3 -3
- package/dist/cjs/nv-dialogfooter_2.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldcheckbox.cjs.entry.js +2 -2
- package/dist/cjs/nv-fieldcheckbox.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fielddate.cjs.entry.js +51 -26
- package/dist/cjs/nv-fielddate.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fielddaterange.cjs.entry.js +68 -42
- package/dist/cjs/nv-fielddaterange.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fielddropdown.cjs.entry.js +33 -7
- package/dist/cjs/nv-fielddropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fielddropdownitem.cjs.entry.js +1 -1
- package/dist/cjs/nv-fieldmultiselect.cjs.entry.js +187 -156
- package/dist/cjs/nv-fieldmultiselect.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldnumber.cjs.entry.js +2 -2
- package/dist/cjs/nv-fieldnumber.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldpassword.cjs.entry.js +2 -2
- package/dist/cjs/nv-fieldpassword.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldradio.cjs.entry.js +2 -2
- package/dist/cjs/nv-fieldradio.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldselect.cjs.entry.js +2 -2
- package/dist/cjs/nv-fieldselect.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldslider.cjs.entry.js +2 -2
- package/dist/cjs/nv-fieldslider.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldtext.cjs.entry.js +2 -2
- package/dist/cjs/nv-fieldtext.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldtextarea.cjs.entry.js +2 -2
- package/dist/cjs/nv-fieldtextarea.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldtime.cjs.entry.js +26 -13
- package/dist/cjs/nv-fieldtime.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-icon.cjs.entry.js +3 -3
- package/dist/cjs/nv-icon.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-iconbutton_2.cjs.entry.js +2 -2
- package/dist/cjs/nv-iconbutton_2.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-menu.cjs.entry.js +24 -9
- package/dist/cjs/nv-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-menuitem.cjs.entry.js +1 -1
- package/dist/cjs/nv-notification.cjs.entry.js +71 -10
- package/dist/cjs/nv-notification.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-notificationcontainer.cjs.entry.js +43 -0
- package/dist/cjs/nv-notificationcontainer.cjs.entry.js.map +1 -0
- package/dist/cjs/nv-popover.cjs.entry.js +69 -63
- package/dist/cjs/nv-popover.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-row.cjs.entry.js +2 -2
- package/dist/cjs/nv-stack.cjs.entry.js +2 -2
- package/dist/cjs/nv-table.cjs.entry.js +216 -310
- package/dist/cjs/nv-table.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-toggle.cjs.entry.js +4 -4
- package/dist/cjs/nv-toggle.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-togglebutton.cjs.entry.js +2 -2
- package/dist/cjs/nv-togglebuttongroup.cjs.entry.js +2 -2
- package/dist/cjs/nv-togglebuttongroup.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-tooltip.cjs.entry.js +2 -2
- package/dist/cjs/slide.animation-8bc27ed6.js +92 -0
- package/dist/cjs/slide.animation-8bc27ed6.js.map +1 -0
- package/dist/collection/animations/collapse.animation.js +4 -1
- package/dist/collection/animations/collapse.animation.js.map +1 -1
- package/dist/collection/animations/fade.animation.js +2 -2
- package/dist/collection/animations/fade.animation.js.map +1 -1
- package/dist/collection/animations/slide.animation.js +51 -29
- package/dist/collection/animations/slide.animation.js.map +1 -1
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/nv-accordion/nv-accordion.js +12 -9
- package/dist/collection/components/nv-accordion/nv-accordion.js.map +1 -1
- package/dist/collection/components/nv-accordion-item/nv-accordion-item.js.map +1 -1
- package/dist/collection/components/nv-accordion-item/styles/nv-accordion-item.css +1 -1
- package/dist/collection/components/nv-alert/nv-alert.css +1 -1
- package/dist/collection/components/nv-avatar/nv-avatar.css +1 -1
- package/dist/collection/components/nv-badge/nv-badge.js +7 -7
- package/dist/collection/components/nv-badge/nv-badge.js.map +1 -1
- package/dist/collection/components/nv-breadcrumb/nv-breadcrumb.css +1 -1
- package/dist/collection/components/nv-button/styles/nv-button.css +1 -1
- package/dist/collection/components/nv-datagrid/nv-datagrid.css +2 -2
- package/dist/collection/components/nv-dialog/nv-dialog.css +2 -2
- package/dist/collection/components/nv-dialog/nv-dialog.docs.js +13 -0
- package/dist/collection/components/nv-dialog/nv-dialog.docs.js.map +1 -1
- package/dist/collection/components/nv-dialog/nv-dialog.js +30 -27
- package/dist/collection/components/nv-dialog/nv-dialog.js.map +1 -1
- package/dist/collection/components/nv-dialogheader/nv-dialogheader.css +4 -4
- package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.css +4 -3
- package/dist/collection/components/nv-fielddate/nv-fielddate.js +49 -24
- package/dist/collection/components/nv-fielddate/nv-fielddate.js.map +1 -1
- package/dist/collection/components/nv-fielddate/styles/nv-fielddate.css +8 -8
- package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js +66 -43
- package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js.map +1 -1
- package/dist/collection/components/nv-fielddaterange/styles/nv-fielddaterange.css +8 -8
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.docs.js +26 -4
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.docs.js.map +1 -1
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js +32 -4
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js.map +1 -1
- package/dist/collection/components/nv-fielddropdown/styles/nv-fielddropdown.css +9 -9
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js +186 -153
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js.map +1 -1
- package/dist/collection/components/nv-fieldmultiselect/styles/nv-fieldmultiselect.css +9 -9
- package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.css +8 -8
- package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.css +8 -8
- package/dist/collection/components/nv-fieldradio/nv-fieldradio.css +3 -3
- package/dist/collection/components/nv-fieldselect/nv-fieldselect.css +12 -12
- package/dist/collection/components/nv-fieldslider/styles/nv-fieldslider.css +7 -7
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.css +8 -8
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.docs.js +9 -1
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.css +8 -8
- package/dist/collection/components/nv-fieldtime/nv-fieldtime.docs.js +22 -0
- package/dist/collection/components/nv-fieldtime/nv-fieldtime.docs.js.map +1 -1
- package/dist/collection/components/nv-fieldtime/nv-fieldtime.js +24 -9
- package/dist/collection/components/nv-fieldtime/nv-fieldtime.js.map +1 -1
- package/dist/collection/components/nv-fieldtime/styles/nv-fieldtime.css +8 -8
- package/dist/collection/components/nv-icon/nv-icons.js +16 -1
- package/dist/collection/components/nv-icon/nv-icons.js.map +1 -1
- package/dist/collection/components/nv-iconbutton/nv-iconbutton.css +2 -2
- package/dist/collection/components/nv-menu/nv-menu.docs.js +7 -0
- package/dist/collection/components/nv-menu/nv-menu.docs.js.map +1 -1
- package/dist/collection/components/nv-menu/nv-menu.js +26 -8
- package/dist/collection/components/nv-menu/nv-menu.js.map +1 -1
- package/dist/collection/components/nv-menuitem/nv-menuitem.js +1 -1
- package/dist/collection/components/nv-notification/nv-notification.js +104 -6
- package/dist/collection/components/nv-notification/nv-notification.js.map +1 -1
- package/dist/collection/components/nv-notification/styles/nv-notification.css +8 -8
- package/dist/collection/components/nv-notificationcontainer/nv-notificationcontainer.css +61 -0
- package/dist/collection/components/nv-notificationcontainer/nv-notificationcontainer.docs.js +7 -0
- package/dist/collection/components/nv-notificationcontainer/nv-notificationcontainer.docs.js.map +1 -0
- package/dist/collection/components/nv-notificationcontainer/nv-notificationcontainer.js +76 -0
- package/dist/collection/components/nv-notificationcontainer/nv-notificationcontainer.js.map +1 -0
- package/dist/collection/components/nv-popover/nv-popover.docs.js +11 -0
- package/dist/collection/components/nv-popover/nv-popover.docs.js.map +1 -1
- package/dist/collection/components/nv-popover/nv-popover.js +66 -60
- package/dist/collection/components/nv-popover/nv-popover.js.map +1 -1
- package/dist/collection/components/nv-row/nv-row.js +1 -1
- package/dist/collection/components/nv-stack/nv-stack.js +1 -1
- package/dist/collection/components/nv-table/nv-table.docs.js +16 -155
- package/dist/collection/components/nv-table/nv-table.docs.js.map +1 -1
- package/dist/collection/components/nv-table/nv-table.js +68 -496
- package/dist/collection/components/nv-table/nv-table.js.map +1 -1
- package/dist/collection/components/nv-table/nv-table.utils.js +175 -0
- package/dist/collection/components/nv-table/nv-table.utils.js.map +1 -0
- package/dist/collection/components/nv-table/styles/nv-table.css +84 -0
- package/dist/collection/components/nv-table/test/nv-table.utils.test.js +604 -0
- package/dist/collection/components/nv-table/test/nv-table.utils.test.js.map +1 -0
- package/dist/collection/components/nv-toggle/nv-toggle.css +3 -3
- package/dist/collection/components/nv-toggle/nv-toggle.js +2 -2
- package/dist/collection/components/nv-togglebutton/nv-togglebutton.js +1 -1
- package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.docs.js +1 -0
- package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.docs.js.map +1 -1
- package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.js +1 -3
- package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.js.map +1 -1
- package/dist/collection/components/nv-tooltip/nv-tooltip.js +1 -1
- package/dist/collection/utils/constants.js +9 -0
- package/dist/collection/utils/constants.js.map +1 -1
- package/dist/components/index.js +22 -7
- package/dist/components/index.js.map +1 -1
- package/dist/components/nv-accordion-item.js +1 -1
- package/dist/components/nv-accordion.js +10 -10
- package/dist/components/nv-accordion.js.map +1 -1
- package/dist/components/nv-alert.js +6 -6
- package/dist/components/nv-alert.js.map +1 -1
- package/dist/components/nv-avatar.js +4 -4
- package/dist/components/nv-avatar.js.map +1 -1
- package/dist/components/nv-badge.js +1 -1
- package/dist/components/nv-breadcrumb.js +4 -4
- package/dist/components/nv-breadcrumb.js.map +1 -1
- package/dist/components/nv-breadcrumbs.js +1 -1
- package/dist/components/nv-button.js +1 -1
- package/dist/components/nv-buttongroup.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 +175 -8
- package/dist/components/nv-datagrid.js.map +1 -1
- package/dist/components/nv-datagridcolumn.js +1 -1
- package/dist/components/nv-dialog.js +38 -35
- 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 +57 -32
- package/dist/components/nv-fielddate.js.map +1 -1
- package/dist/components/nv-fielddaterange.js +74 -48
- package/dist/components/nv-fielddaterange.js.map +1 -1
- package/dist/components/nv-fielddropdown.js +40 -13
- package/dist/components/nv-fielddropdown.js.map +1 -1
- package/dist/components/nv-fielddropdownitem.js +1 -1
- package/dist/components/nv-fielddropdownitemcheck.js +1 -1
- package/dist/components/nv-fieldmultiselect.js +196 -164
- package/dist/components/nv-fieldmultiselect.js.map +1 -1
- package/dist/components/nv-fieldnumber.js +1 -1
- package/dist/components/nv-fieldpassword.js +5 -5
- package/dist/components/nv-fieldpassword.js.map +1 -1
- package/dist/components/nv-fieldradio.js +2 -2
- package/dist/components/nv-fieldradio.js.map +1 -1
- package/dist/components/nv-fieldselect.js +5 -5
- package/dist/components/nv-fieldselect.js.map +1 -1
- package/dist/components/nv-fieldslider.js +6 -6
- package/dist/components/nv-fieldslider.js.map +1 -1
- package/dist/components/nv-fieldtext.js +1 -1
- package/dist/components/nv-fieldtextarea.js +2 -2
- package/dist/components/nv-fieldtextarea.js.map +1 -1
- package/dist/components/nv-fieldtime.js +32 -18
- 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 +30 -13
- package/dist/components/nv-menu.js.map +1 -1
- package/dist/components/nv-menuitem.js +1 -1
- package/dist/components/nv-notification.js +75 -12
- package/dist/components/nv-notification.js.map +1 -1
- package/dist/components/nv-notificationcontainer.d.ts +11 -0
- package/dist/components/nv-notificationcontainer.js +59 -0
- package/dist/components/nv-notificationcontainer.js.map +1 -0
- package/dist/components/nv-popover.js +1 -1
- package/dist/components/nv-row.js +2 -2
- package/dist/components/nv-stack.js +2 -2
- package/dist/components/nv-table.js +216 -328
- package/dist/components/nv-table.js.map +1 -1
- package/dist/components/nv-toggle.js +4 -4
- package/dist/components/nv-toggle.js.map +1 -1
- package/dist/components/nv-togglebutton.js +2 -2
- package/dist/components/nv-togglebuttongroup.js +2 -2
- package/dist/components/nv-togglebuttongroup.js.map +1 -1
- package/dist/components/nv-tooltip.js +1 -1
- package/dist/components/{p-1172e9bb.js → p-0d5ed1d7.js} +3 -3
- package/dist/components/p-0d5ed1d7.js.map +1 -0
- package/dist/components/{p-68fa3890.js → p-0e6f41c7.js} +3 -3
- package/dist/components/{p-68fa3890.js.map → p-0e6f41c7.js.map} +1 -1
- package/dist/components/{p-c59eccf1.js → p-0fd23531.js} +6 -6
- package/dist/components/{p-c59eccf1.js.map → p-0fd23531.js.map} +1 -1
- package/dist/components/{p-e6c04562.js → p-1639703f.js} +2 -2
- package/dist/components/{p-e6c04562.js.map → p-1639703f.js.map} +1 -1
- package/dist/components/{p-d4d310dd.js → p-2cc83e0c.js} +3 -3
- package/dist/components/{p-d4d310dd.js.map → p-2cc83e0c.js.map} +1 -1
- package/dist/components/p-2d64749f.js +191 -0
- package/dist/components/{p-2de17259.js.map → p-2d64749f.js.map} +1 -1
- package/dist/components/{p-e5dff125.js → p-31478080.js} +12 -12
- package/dist/components/{p-e5dff125.js.map → p-31478080.js.map} +1 -1
- package/dist/components/{p-85825688.js → p-378e3127.js} +7 -7
- package/dist/components/{p-85825688.js.map → p-378e3127.js.map} +1 -1
- package/dist/components/{p-31591941.js → p-3cd7a66f.js} +5 -2
- package/dist/components/p-3cd7a66f.js.map +1 -0
- package/dist/components/{p-51876ca1.js → p-429e01f3.js} +3 -3
- package/dist/components/p-429e01f3.js.map +1 -0
- package/dist/components/{p-fb560fa3.js → p-4697bd56.js} +2 -2
- package/dist/components/{p-fb560fa3.js.map → p-4697bd56.js.map} +1 -1
- package/dist/components/p-47d499b4.js +88 -0
- package/dist/components/p-47d499b4.js.map +1 -0
- package/dist/{esm/constants-d0f19e7b.js → components/p-51602221.js} +11 -2
- package/dist/components/p-51602221.js.map +1 -0
- package/dist/components/{p-aff3ed68.js → p-5829b9f7.js} +5 -2
- package/dist/components/p-5829b9f7.js.map +1 -0
- package/dist/components/{p-60244646.js → p-63595ea1.js} +70 -64
- package/dist/components/p-63595ea1.js.map +1 -0
- package/dist/components/{p-8439219d.js → p-7112612c.js} +5 -5
- package/dist/components/p-7112612c.js.map +1 -0
- package/dist/components/{p-ac91582e.js → p-715e5235.js} +3 -3
- package/dist/components/{p-ac91582e.js.map → p-715e5235.js.map} +1 -1
- package/dist/components/{p-eb443b26.js → p-9707528d.js} +4 -4
- package/dist/components/{p-eb443b26.js.map → p-9707528d.js.map} +1 -1
- package/dist/components/{p-fda58a76.js → p-98429fd7.js} +2 -2
- package/dist/components/{p-fda58a76.js.map → p-98429fd7.js.map} +1 -1
- package/dist/components/{p-930caa42.js → p-a1ef5e37.js} +6 -6
- package/dist/components/{p-930caa42.js.map → p-a1ef5e37.js.map} +1 -1
- package/dist/components/{p-ee0df37f.js → p-a271e3be.js} +3 -3
- package/dist/components/p-a271e3be.js.map +1 -0
- package/dist/components/p-c7401a7d.js +90 -0
- package/dist/components/p-c7401a7d.js.map +1 -0
- package/dist/components/{p-942f6619.js → p-df5d76a5.js} +3 -3
- package/dist/components/{p-942f6619.js.map → p-df5d76a5.js.map} +1 -1
- package/dist/components/{p-6ffba98c.js → p-f2bac2aa.js} +4 -4
- package/dist/components/{p-6ffba98c.js.map → p-f2bac2aa.js.map} +1 -1
- package/dist/esm/{collapse.animation-acda1bf5.js → collapse.animation-6e0b08df.js} +5 -2
- package/dist/esm/collapse.animation-6e0b08df.js.map +1 -0
- package/dist/{components/p-2277cfc8.js → esm/constants-69bafca2.js} +11 -2
- package/dist/esm/constants-69bafca2.js.map +1 -0
- package/dist/esm/{fade.animation-eb454088.js → fade.animation-9b939939.js} +3 -3
- package/dist/esm/{fade.animation-eb454088.js.map → fade.animation-9b939939.js.map} +1 -1
- package/dist/esm/{grow.animation-5b2abb3a.js → grow.animation-03fa5c19.js} +2 -2
- package/dist/esm/{grow.animation-5b2abb3a.js.map → grow.animation-03fa5c19.js.map} +1 -1
- package/dist/esm/{index-a1936cd0.js → index-dc2723f3.js} +9 -6
- package/dist/esm/index-dc2723f3.js.map +1 -0
- package/dist/esm/index.js +21 -6
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/native.js +3 -3
- package/dist/esm/nv-accordion-item.entry.js +3 -3
- package/dist/esm/nv-accordion-item.entry.js.map +1 -1
- package/dist/esm/nv-accordion.entry.js +6 -6
- package/dist/esm/nv-accordion.entry.js.map +1 -1
- package/dist/esm/nv-alert.entry.js +5 -5
- package/dist/esm/nv-alert.entry.js.map +1 -1
- package/dist/esm/nv-avatar.entry.js +3 -3
- package/dist/esm/nv-avatar.entry.js.map +1 -1
- package/dist/esm/nv-badge_2.entry.js +10 -10
- package/dist/esm/nv-badge_2.entry.js.map +1 -1
- package/dist/esm/nv-breadcrumb.entry.js +2 -2
- package/dist/esm/nv-breadcrumb.entry.js.map +1 -1
- package/dist/esm/nv-breadcrumbs.entry.js +1 -1
- package/dist/esm/nv-button.entry.js +3 -3
- package/dist/esm/nv-button.entry.js.map +1 -1
- package/dist/esm/nv-buttongroup.entry.js +1 -1
- package/dist/esm/nv-calendar.entry.js +2 -2
- package/dist/esm/nv-col.entry.js +1 -1
- package/dist/esm/nv-datagrid.entry.js +173 -6
- package/dist/esm/nv-datagrid.entry.js.map +1 -1
- package/dist/esm/nv-datagridcolumn.entry.js +1 -1
- package/dist/esm/nv-dialog.entry.js +33 -30
- package/dist/esm/nv-dialog.entry.js.map +1 -1
- package/dist/esm/nv-dialogfooter_2.entry.js +3 -3
- package/dist/esm/nv-dialogfooter_2.entry.js.map +1 -1
- package/dist/esm/nv-fieldcheckbox.entry.js +2 -2
- package/dist/esm/nv-fieldcheckbox.entry.js.map +1 -1
- package/dist/esm/nv-fielddate.entry.js +51 -26
- package/dist/esm/nv-fielddate.entry.js.map +1 -1
- package/dist/esm/nv-fielddaterange.entry.js +68 -42
- package/dist/esm/nv-fielddaterange.entry.js.map +1 -1
- package/dist/esm/nv-fielddropdown.entry.js +33 -7
- package/dist/esm/nv-fielddropdown.entry.js.map +1 -1
- package/dist/esm/nv-fielddropdownitem.entry.js +1 -1
- package/dist/esm/nv-fieldmultiselect.entry.js +187 -156
- package/dist/esm/nv-fieldmultiselect.entry.js.map +1 -1
- package/dist/esm/nv-fieldnumber.entry.js +2 -2
- package/dist/esm/nv-fieldnumber.entry.js.map +1 -1
- package/dist/esm/nv-fieldpassword.entry.js +2 -2
- package/dist/esm/nv-fieldpassword.entry.js.map +1 -1
- package/dist/esm/nv-fieldradio.entry.js +2 -2
- package/dist/esm/nv-fieldradio.entry.js.map +1 -1
- package/dist/esm/nv-fieldselect.entry.js +2 -2
- package/dist/esm/nv-fieldselect.entry.js.map +1 -1
- package/dist/esm/nv-fieldslider.entry.js +2 -2
- package/dist/esm/nv-fieldslider.entry.js.map +1 -1
- package/dist/esm/nv-fieldtext.entry.js +2 -2
- package/dist/esm/nv-fieldtext.entry.js.map +1 -1
- package/dist/esm/nv-fieldtextarea.entry.js +2 -2
- package/dist/esm/nv-fieldtextarea.entry.js.map +1 -1
- package/dist/esm/nv-fieldtime.entry.js +26 -13
- package/dist/esm/nv-fieldtime.entry.js.map +1 -1
- package/dist/esm/nv-icon.entry.js +3 -3
- package/dist/esm/nv-icon.entry.js.map +1 -1
- package/dist/esm/nv-iconbutton_2.entry.js +2 -2
- package/dist/esm/nv-iconbutton_2.entry.js.map +1 -1
- package/dist/esm/nv-menu.entry.js +24 -9
- package/dist/esm/nv-menu.entry.js.map +1 -1
- package/dist/esm/nv-menuitem.entry.js +1 -1
- package/dist/esm/nv-notification.entry.js +71 -10
- package/dist/esm/nv-notification.entry.js.map +1 -1
- package/dist/esm/nv-notificationcontainer.entry.js +39 -0
- package/dist/esm/nv-notificationcontainer.entry.js.map +1 -0
- package/dist/esm/nv-popover.entry.js +69 -63
- package/dist/esm/nv-popover.entry.js.map +1 -1
- package/dist/esm/nv-row.entry.js +2 -2
- package/dist/esm/nv-stack.entry.js +2 -2
- package/dist/esm/nv-table.entry.js +216 -310
- package/dist/esm/nv-table.entry.js.map +1 -1
- package/dist/esm/nv-toggle.entry.js +4 -4
- package/dist/esm/nv-toggle.entry.js.map +1 -1
- package/dist/esm/nv-togglebutton.entry.js +2 -2
- package/dist/esm/nv-togglebuttongroup.entry.js +2 -2
- package/dist/esm/nv-togglebuttongroup.entry.js.map +1 -1
- package/dist/esm/nv-tooltip.entry.js +2 -2
- package/dist/esm/slide.animation-f761030b.js +90 -0
- package/dist/esm/slide.animation-f761030b.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-7bbcf477.entry.js → p-075d231e.entry.js} +2 -2
- package/dist/native/p-075d231e.entry.js.map +1 -0
- package/dist/native/p-107e80c6.entry.js +2 -0
- package/dist/native/p-107e80c6.entry.js.map +1 -0
- package/dist/native/{p-40c4a221.entry.js → p-112d096c.entry.js} +2 -2
- package/dist/native/p-112d096c.entry.js.map +1 -0
- package/dist/native/p-217de553.entry.js +2 -0
- package/dist/native/p-217de553.entry.js.map +1 -0
- package/dist/native/{p-85f8f11a.entry.js → p-230af58a.entry.js} +2 -2
- package/dist/native/p-23ee0384.entry.js +2 -0
- package/dist/native/{p-29f68e07.entry.js.map → p-23ee0384.entry.js.map} +1 -1
- package/dist/native/p-26513cbd.entry.js +2 -0
- package/dist/native/p-26513cbd.entry.js.map +1 -0
- package/dist/native/p-278613a3.entry.js +2 -0
- package/dist/native/{p-8c823928.entry.js.map → p-278613a3.entry.js.map} +1 -1
- package/dist/native/p-2dfd786f.entry.js +2 -0
- package/dist/native/p-2dfd786f.entry.js.map +1 -0
- package/dist/native/{p-d0a33e64.js → p-3060df80.js} +3 -3
- package/dist/native/p-3060df80.js.map +1 -0
- package/dist/native/p-3cd7a66f.js +2 -0
- package/dist/native/p-3cd7a66f.js.map +1 -0
- package/dist/native/p-445221dc.entry.js +2 -0
- package/dist/native/p-445221dc.entry.js.map +1 -0
- package/dist/native/{p-3f861ddc.entry.js → p-44a78545.entry.js} +2 -2
- package/dist/native/p-4697bd56.js +2 -0
- package/dist/native/p-4dc7483d.entry.js +2 -0
- package/dist/native/{p-cfd5785e.entry.js.map → p-4dc7483d.entry.js.map} +1 -1
- package/dist/native/p-4eaf417d.entry.js +13 -0
- package/dist/native/p-4eaf417d.entry.js.map +1 -0
- package/dist/native/p-5039ceb8.entry.js +2 -0
- package/dist/native/p-5039ceb8.entry.js.map +1 -0
- package/dist/native/p-51602221.js +2 -0
- package/dist/{cjs/constants-52f6f8e9.js.map → native/p-51602221.js.map} +1 -1
- package/dist/native/p-647a0765.entry.js +2 -0
- package/dist/native/p-647a0765.entry.js.map +1 -0
- package/dist/native/p-68dc02be.entry.js +2 -0
- package/dist/native/p-68dc02be.entry.js.map +1 -0
- package/dist/native/p-6d427897.entry.js +2 -0
- package/dist/native/{p-92931ab8.entry.js.map → p-6d427897.entry.js.map} +1 -1
- package/dist/native/p-701b48a4.entry.js +2 -0
- package/dist/native/{p-da2c7d3c.entry.js.map → p-701b48a4.entry.js.map} +1 -1
- package/dist/native/p-7c9bf981.entry.js +2 -0
- package/dist/native/p-835abdb9.entry.js +2 -0
- package/dist/native/{p-f5120223.entry.js.map → p-835abdb9.entry.js.map} +1 -1
- package/dist/native/{p-464bb197.entry.js → p-83765537.entry.js} +2 -2
- package/dist/native/p-88f9fca5.entry.js +2 -0
- package/dist/native/p-88f9fca5.entry.js.map +1 -0
- package/dist/native/{p-788e9ee5.entry.js → p-8e423742.entry.js} +3 -3
- package/dist/native/{p-788e9ee5.entry.js.map → p-8e423742.entry.js.map} +1 -1
- package/dist/native/p-95184ea2.entry.js +2 -0
- package/dist/native/p-95184ea2.entry.js.map +1 -0
- package/dist/native/p-9613087c.entry.js +2 -0
- package/dist/native/{p-2781637d.entry.js.map → p-9613087c.entry.js.map} +1 -1
- package/dist/native/{p-94dc9c41.entry.js → p-9d7e099f.entry.js} +2 -2
- package/dist/native/{p-ee0df37f.js → p-a271e3be.js} +2 -2
- package/dist/native/{p-ee0df37f.js.map → p-a271e3be.js.map} +1 -1
- package/dist/native/p-a2f58133.entry.js +2 -0
- package/dist/native/p-a2f58133.entry.js.map +1 -0
- package/dist/native/{p-1235c007.entry.js → p-acabac31.entry.js} +2 -2
- package/dist/native/p-acada158.entry.js +2 -0
- package/dist/native/p-acada158.entry.js.map +1 -0
- package/dist/native/{p-f5eb047e.entry.js → p-b02c896a.entry.js} +2 -2
- package/dist/native/p-b06f0e61.entry.js +2 -0
- package/dist/native/p-b06f0e61.entry.js.map +1 -0
- package/dist/native/p-b4c15f25.entry.js +2 -0
- package/dist/native/p-b4c15f25.entry.js.map +1 -0
- package/dist/native/p-bcf41cd0.entry.js +2 -0
- package/dist/native/p-c7401a7d.js +2 -0
- package/dist/native/p-c7401a7d.js.map +1 -0
- package/dist/native/p-ce97ce24.entry.js +2 -0
- package/dist/native/p-ce97ce24.entry.js.map +1 -0
- package/dist/native/p-d0db5e72.entry.js +2 -0
- package/dist/native/p-d0db5e72.entry.js.map +1 -0
- package/dist/native/p-d45ee8e5.entry.js +2 -0
- package/dist/native/{p-52b8c872.entry.js.map → p-d45ee8e5.entry.js.map} +1 -1
- package/dist/native/p-d7f444fb.entry.js +2 -0
- package/dist/native/p-d7f444fb.entry.js.map +1 -0
- package/dist/native/p-d878e90a.entry.js +2 -0
- package/dist/native/p-d878e90a.entry.js.map +1 -0
- package/dist/native/p-ddc41f1f.entry.js +2 -0
- package/dist/native/p-ddc41f1f.entry.js.map +1 -0
- package/dist/native/{p-d95ee31e.entry.js → p-dfb6b65e.entry.js} +2 -2
- package/dist/native/p-f30e0be6.entry.js +2 -0
- package/dist/native/p-f30e0be6.entry.js.map +1 -0
- package/dist/native/p-f3c73492.entry.js +2 -0
- package/dist/native/{p-ee516944.entry.js.map → p-f3c73492.entry.js.map} +1 -1
- package/dist/native/{p-9c5d6827.entry.js → p-fa78d8eb.entry.js} +2 -2
- package/dist/types/animations/slide.animation.d.ts +15 -4
- package/dist/types/components/nv-accordion/nv-accordion.d.ts +2 -4
- package/dist/types/components/nv-badge/nv-badge.d.ts +1 -1
- package/dist/types/components/nv-dialog/nv-dialog.d.ts +9 -8
- package/dist/types/components/nv-fielddate/nv-fielddate.d.ts +6 -3
- package/dist/types/components/nv-fielddaterange/nv-fielddaterange.d.ts +5 -4
- package/dist/types/components/nv-fielddropdown/nv-fielddropdown.d.ts +3 -1
- package/dist/types/components/nv-fieldmultiselect/nv-fieldmultiselect.d.ts +12 -11
- package/dist/types/components/nv-fieldtime/nv-fieldtime.d.ts +1 -0
- package/dist/types/components/nv-icon/nv-icons.d.ts +1 -1
- package/dist/types/components/nv-menu/nv-menu.d.ts +4 -1
- package/dist/types/components/nv-notification/nv-notification.d.ts +18 -0
- package/dist/types/components/nv-notificationcontainer/nv-notificationcontainer.d.ts +19 -0
- package/dist/types/components/nv-notificationcontainer/nv-notificationcontainer.docs.d.ts +4 -0
- package/dist/types/components/nv-popover/nv-popover.d.ts +10 -8
- package/dist/types/components/nv-table/nv-table.d.ts +6 -87
- package/dist/types/components/nv-table/nv-table.utils.d.ts +129 -0
- package/dist/types/components/nv-table/test/nv-table.utils.test.d.ts +1 -0
- package/dist/types/components/nv-togglebuttongroup/nv-togglebuttongroup.d.ts +0 -2
- package/dist/types/components.d.ts +63 -211
- package/dist/types/utils/constants.d.ts +8 -0
- package/dist/vscode-data.json +87 -43
- package/hydrate/index.js +973 -809
- package/hydrate/index.mjs +973 -809
- package/package.json +10 -10
- package/dist/cjs/collapse.animation-47397763.js.map +0 -1
- package/dist/cjs/dom.utils-4d43f69a.js +0 -170
- package/dist/cjs/dom.utils-4d43f69a.js.map +0 -1
- package/dist/cjs/fade.animation-cf6eba0d.js.map +0 -1
- package/dist/cjs/index-c56424e5.js.map +0 -1
- package/dist/cjs/nv-tablecolumn.cjs.entry.js +0 -21
- package/dist/cjs/nv-tablecolumn.cjs.entry.js.map +0 -1
- package/dist/cjs/slide.animation-bedfc827.js +0 -70
- package/dist/cjs/slide.animation-bedfc827.js.map +0 -1
- package/dist/collection/components/nv-table/nv-table.css +0 -35
- package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.docs.js +0 -6
- package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.docs.js.map +0 -1
- package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.js +0 -52
- package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.js.map +0 -1
- package/dist/components/nv-tablecolumn.d.ts +0 -11
- package/dist/components/nv-tablecolumn.js +0 -38
- package/dist/components/nv-tablecolumn.js.map +0 -1
- package/dist/components/p-1172e9bb.js.map +0 -1
- package/dist/components/p-2277cfc8.js.map +0 -1
- package/dist/components/p-2de17259.js +0 -191
- package/dist/components/p-31591941.js.map +0 -1
- package/dist/components/p-51876ca1.js.map +0 -1
- package/dist/components/p-60244646.js.map +0 -1
- package/dist/components/p-8439219d.js.map +0 -1
- package/dist/components/p-aff3ed68.js.map +0 -1
- package/dist/components/p-cb34aa4f.js +0 -167
- package/dist/components/p-cb34aa4f.js.map +0 -1
- package/dist/components/p-e0cd7e3a.js +0 -88
- package/dist/components/p-e0cd7e3a.js.map +0 -1
- package/dist/components/p-eda2f9f3.js +0 -68
- package/dist/components/p-eda2f9f3.js.map +0 -1
- package/dist/components/p-ee0df37f.js.map +0 -1
- package/dist/esm/collapse.animation-acda1bf5.js.map +0 -1
- package/dist/esm/constants-d0f19e7b.js.map +0 -1
- package/dist/esm/dom.utils-ac71e0ef.js +0 -167
- package/dist/esm/dom.utils-ac71e0ef.js.map +0 -1
- package/dist/esm/index-a1936cd0.js.map +0 -1
- package/dist/esm/nv-tablecolumn.entry.js +0 -17
- package/dist/esm/nv-tablecolumn.entry.js.map +0 -1
- package/dist/esm/slide.animation-f444aa0b.js +0 -68
- package/dist/esm/slide.animation-f444aa0b.js.map +0 -1
- package/dist/native/p-08582c21.entry.js +0 -2
- package/dist/native/p-08582c21.entry.js.map +0 -1
- package/dist/native/p-0a99c6fb.entry.js +0 -2
- package/dist/native/p-0a99c6fb.entry.js.map +0 -1
- package/dist/native/p-0e488b3d.entry.js +0 -2
- package/dist/native/p-0e488b3d.entry.js.map +0 -1
- package/dist/native/p-1ad1bff9.entry.js +0 -2
- package/dist/native/p-1ad1bff9.entry.js.map +0 -1
- package/dist/native/p-1f01fb64.entry.js +0 -2
- package/dist/native/p-1f01fb64.entry.js.map +0 -1
- package/dist/native/p-225a05bf.entry.js +0 -2
- package/dist/native/p-225a05bf.entry.js.map +0 -1
- package/dist/native/p-2277cfc8.js +0 -2
- package/dist/native/p-2277cfc8.js.map +0 -1
- package/dist/native/p-234cfa2e.entry.js +0 -2
- package/dist/native/p-25f2ce81.entry.js +0 -2
- package/dist/native/p-2781637d.entry.js +0 -2
- package/dist/native/p-29f68e07.entry.js +0 -2
- package/dist/native/p-31591941.js +0 -2
- package/dist/native/p-31591941.js.map +0 -1
- package/dist/native/p-3784efdc.entry.js +0 -2
- package/dist/native/p-3784efdc.entry.js.map +0 -1
- package/dist/native/p-40c4a221.entry.js.map +0 -1
- package/dist/native/p-52b8c872.entry.js +0 -2
- package/dist/native/p-5a43fe48.entry.js +0 -13
- package/dist/native/p-5a43fe48.entry.js.map +0 -1
- package/dist/native/p-5f0776cb.entry.js +0 -2
- package/dist/native/p-5f0776cb.entry.js.map +0 -1
- package/dist/native/p-6290951d.entry.js +0 -2
- package/dist/native/p-6290951d.entry.js.map +0 -1
- package/dist/native/p-7bbcf477.entry.js.map +0 -1
- package/dist/native/p-81952a3c.entry.js +0 -2
- package/dist/native/p-81952a3c.entry.js.map +0 -1
- package/dist/native/p-87784622.entry.js +0 -2
- package/dist/native/p-87784622.entry.js.map +0 -1
- package/dist/native/p-8c823928.entry.js +0 -2
- package/dist/native/p-92931ab8.entry.js +0 -2
- package/dist/native/p-9a46baa9.entry.js +0 -2
- package/dist/native/p-9a46baa9.entry.js.map +0 -1
- package/dist/native/p-a34beedf.entry.js +0 -2
- package/dist/native/p-a34beedf.entry.js.map +0 -1
- package/dist/native/p-bc01787b.entry.js +0 -2
- package/dist/native/p-bc01787b.entry.js.map +0 -1
- package/dist/native/p-cb34aa4f.js +0 -2
- package/dist/native/p-cb34aa4f.js.map +0 -1
- package/dist/native/p-cea942b9.entry.js +0 -2
- package/dist/native/p-cea942b9.entry.js.map +0 -1
- package/dist/native/p-cfd5785e.entry.js +0 -2
- package/dist/native/p-d0a33e64.js.map +0 -1
- package/dist/native/p-d0ef1bbb.entry.js +0 -2
- package/dist/native/p-d0ef1bbb.entry.js.map +0 -1
- package/dist/native/p-d88c416f.entry.js +0 -2
- package/dist/native/p-d88c416f.entry.js.map +0 -1
- package/dist/native/p-da2c7d3c.entry.js +0 -2
- package/dist/native/p-dd023fd6.entry.js +0 -2
- package/dist/native/p-dd023fd6.entry.js.map +0 -1
- package/dist/native/p-e765a624.entry.js +0 -2
- package/dist/native/p-e765a624.entry.js.map +0 -1
- package/dist/native/p-eda2f9f3.js +0 -2
- package/dist/native/p-eda2f9f3.js.map +0 -1
- package/dist/native/p-ee516944.entry.js +0 -2
- package/dist/native/p-f0cbfb3d.entry.js +0 -2
- package/dist/native/p-f0cbfb3d.entry.js.map +0 -1
- package/dist/native/p-f5120223.entry.js +0 -2
- package/dist/native/p-fb560fa3.js +0 -2
- package/dist/types/components/nv-tablecolumn/nv-tablecolumn.d.ts +0 -13
- package/dist/types/components/nv-tablecolumn/nv-tablecolumn.docs.d.ts +0 -4
- /package/dist/native/{p-85f8f11a.entry.js.map → p-230af58a.entry.js.map} +0 -0
- /package/dist/native/{p-3f861ddc.entry.js.map → p-44a78545.entry.js.map} +0 -0
- /package/dist/native/{p-fb560fa3.js.map → p-4697bd56.js.map} +0 -0
- /package/dist/native/{p-234cfa2e.entry.js.map → p-7c9bf981.entry.js.map} +0 -0
- /package/dist/native/{p-464bb197.entry.js.map → p-83765537.entry.js.map} +0 -0
- /package/dist/native/{p-94dc9c41.entry.js.map → p-9d7e099f.entry.js.map} +0 -0
- /package/dist/native/{p-1235c007.entry.js.map → p-acabac31.entry.js.map} +0 -0
- /package/dist/native/{p-f5eb047e.entry.js.map → p-b02c896a.entry.js.map} +0 -0
- /package/dist/native/{p-25f2ce81.entry.js.map → p-bcf41cd0.entry.js.map} +0 -0
- /package/dist/native/{p-d95ee31e.entry.js.map → p-dfb6b65e.entry.js.map} +0 -0
- /package/dist/native/{p-9c5d6827.entry.js.map → p-fa78d8eb.entry.js.map} +0 -0
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
const index = require('./index-
|
|
5
|
+
const index = require('./index-93d3b2f8.js');
|
|
6
6
|
const v4 = require('./v4-7014b8b0.js');
|
|
7
7
|
|
|
8
|
-
const nvFieldmultiselectCss = "nv-fieldslider .slider-container .track-container:has(.thumb:hover) .track-range{background:var(--components-slider-track-filled-hover)}nv-fieldslider .slider-container .track-container:has(.thumb:hover) .thumb{border-color:var(--components-slider-track-filled-hover)}nv-fieldslider .slider-container .track-container:has(.thumb:focus) .track-range{background:var(--components-slider-track-filled-focus)}nv-fieldslider .slider-container .track-container:has(.thumb:focus) .thumb{border-color:var(--components-slider-track-filled-focus)}nv-fieldslider[error] .slider-container .track-container .track .track-range{background:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb{border-color:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb:hover{border-color:var(--components-slider-track-filled-error);outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-slider-track-filled-error);outline-offset:calc(var(--focus-outline-offset) * 1);background-color:var(--components-slider-handler-background-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb:focus{border-color:var(--components-slider-track-filled-error);outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-slider-track-filled-error);outline-offset:calc(var(--focus-outline-offset) * 1);background-color:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container:has(.thumb:hover) .track-range{background:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container:has(.thumb:hover) .thumb{border-color:var(--components-slider-track-filled-error)}nv-fieldslider .slider-container .track-container:has(.thumb:hover) .track-range{background:var(--components-slider-track-filled-hover)}nv-fieldslider .slider-container .track-container:has(.thumb:hover) .thumb{border-color:var(--components-slider-track-filled-hover)}nv-fieldslider .slider-container .track-container:has(.thumb:focus) .track-range{background:var(--components-slider-track-filled-focus)}nv-fieldslider .slider-container .track-container:has(.thumb:focus) .thumb{border-color:var(--components-slider-track-filled-focus)}nv-fieldslider[error] .slider-container .track-container .track .track-range{background:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb{border-color:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb:hover{border-color:var(--components-slider-track-filled-error);outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-slider-track-filled-error);outline-offset:calc(var(--focus-outline-offset) * 1);background-color:var(--components-slider-handler-background-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb:focus{border-color:var(--components-slider-track-filled-error);outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-slider-track-filled-error);outline-offset:calc(var(--focus-outline-offset) * 1);background-color:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container:has(.thumb:hover) .track-range{background:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container:has(.thumb:hover) .thumb{border-color:var(--components-slider-track-filled-error)}nv-fieldmultiselect{--nv-field-border-default:var(--components-form-field-border-default);--nv-field-border-hover:var(--components-form-field-border-hover);--nv-field-border-focus:var(--components-form-field-border-focus);--nv-field-border-disabled:var(--components-form-field-border-default);--nv-field-border-readonly:var(--components-form-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-brand);--nv-field-background:var(--components-form-field-background-default);display:flex;flex-direction:column;align-items:flex-start;gap:var(--form-gap-y);box-sizing:border-box;max-width:480px}nv-fieldmultiselect[fluid]:not([fluid=false]){max-width:unset}nv-fieldmultiselect[readonly]:not([readonly=false]){--nv-field-border-default:var(--components-form-field-border-readonly);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--components-form-field-border-focus);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-background:var(--components-form-field-background-readonly)}nv-fieldmultiselect[error]:not([error=false]){--nv-field-border-default:var(--components-form-field-border-error);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--nv-field-border-default);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-destructive-in-field)}nv-fieldmultiselect[required]:not([required=false]) label::after{content:\"*\";color:var(--components-form-text-required);font-weight:700}nv-fieldmultiselect label{display:flex;align-items:center;gap:var(--form-label-gap);align-self:stretch;color:var(--components-form-text-label-default);font-family:\"TT Norms Pro\", sans-serif;font-size:var(--form-label-font-size);font-style:normal;font-weight:500;line-height:var(--form-label-line-height)}nv-fieldmultiselect nv-popover{width:100%;display:block}nv-fieldmultiselect nv-popover [data-scope=popover]{width:100%;padding:var(--list-dropdown-padding);border-radius:var(--list-dropdown-radius);background-color:var(--components-list-dropdown-background);border:1px solid var(--components-list-dropdown-border)}nv-fieldmultiselect nv-popover [slot=content]{gap:var(--list-dropdown-gap-y);display:flex;flex-direction:column}nv-fieldmultiselect nv-popover hr{color:var(--components-list-dropdown-separator)}nv-fieldmultiselect nv-popover div[slot=content]{max-height:calc(90vh - var(--list-dropdown-padding) * 2);overflow-y:auto;position:relative}nv-fieldmultiselect nv-popover div[slot=content]::-webkit-scrollbar{width:6px;height:6px}nv-fieldmultiselect nv-popover div[slot=content]::-webkit-scrollbar-track{background-color:var(--color-level-10-background);border-radius:9999px}nv-fieldmultiselect nv-popover div[slot=content]::-webkit-scrollbar-thumb{background-color:var(--color-gray-200);border-radius:9999px}nv-fieldmultiselect .input-wrapper-multiselect{display:flex;flex-wrap:wrap;gap:var(--form-gap-x);align-items:stretch;align-self:stretch;width:100%}nv-fieldmultiselect .input-container-multiselect{display:flex;flex-grow:1;justify-content:center;align-items:center;align-self:stretch;border-radius:var(--form-field-radius);border-width:1px;border-style:solid;border-color:var(--nv-field-border-default);opacity:var(--components-form-opacity-default, 1);background:var(--nv-field-background);transition:all 150ms ease-out;position:relative;width:100%;min-height:40px}nv-fieldmultiselect .input-container-multiselect:hover{border-color:var(--nv-field-border-hover)}nv-fieldmultiselect .input-container-multiselect:focus-within,nv-fieldmultiselect .input-container-multiselect:focus-within:hover,nv-fieldmultiselect .input-container-multiselect:focus,nv-fieldmultiselect .input-container-multiselect:focus:hover{border-color:var(--nv-field-border-focus);box-shadow:0px 0px 0px var(--focus-field-stroke) var(--nv-field-focus-box-shadow)}nv-fieldmultiselect .input-container-multiselect:has(input:read-only){opacity:0.5;background-color:var(--components-form-field-background-readonly);border-color:var(--nv-field-border-readonly)}nv-fieldmultiselect .input-container-multiselect:has(input:disabled){opacity:0.5;background-color:var(--components-form-field-background-disabled);border-color:var(--nv-field-border-disabled)}nv-fieldmultiselect .input-container-multiselect>nv-badge{margin-left:var(--form-field-padding-x)}nv-fieldmultiselect .input-container-multiselect input,nv-fieldmultiselect .input-container-multiselect p.non-filterable-text{display:flex;align-items:center;flex:1 0 0;overflow:hidden;background-color:transparent;color:var(--components-form-field-content-text);padding:var(--form-field-padding-y) var(--form-field-padding-x);font-size:var(--form-field-font-size);font-style:normal;font-weight:500;line-height:var(--form-field-line-height);width:100%;width:100%;flex-grow:1;margin:0;min-height:100%;box-sizing:border-box}nv-fieldmultiselect .input-container-multiselect input:focus,nv-fieldmultiselect .input-container-multiselect p.non-filterable-text:focus{outline:none}nv-fieldmultiselect .input-container-multiselect input::placeholder,nv-fieldmultiselect .input-container-multiselect p.non-filterable-text::placeholder{overflow:hidden;color:var(--components-form-field-content-placeholder);text-overflow:ellipsis;font-family:\"TT Norms Pro\", sans-serif;font-size:var(--form-field-font-size);font-style:normal;font-weight:400;line-height:var(--form-field-line-height)}nv-fieldmultiselect .input-container-multiselect input[type=password]::-ms-clear,nv-fieldmultiselect .input-container-multiselect input[type=password]::-ms-reveal,nv-fieldmultiselect .input-container-multiselect p.non-filterable-text[type=password]::-ms-clear,nv-fieldmultiselect .input-container-multiselect p.non-filterable-text[type=password]::-ms-reveal{display:none;width:0;height:0}nv-fieldmultiselect .input-container-multiselect>nv-iconbutton{border:0px;border-radius:0px}nv-fieldmultiselect .input-container-multiselect>nv-iconbutton:focus-visible{border-radius:var(--button-md-border-radius);outline-offset:-3px}nv-fieldmultiselect .input-container-multiselect>nv-iconbutton:last-of-type{border-top-right-radius:var(--form-field-radius);border-bottom-right-radius:var(--form-field-radius)}nv-fieldmultiselect .input-container-multiselect nv-icon.validation{color:var(--nv-field-border-default)}nv-fieldmultiselect .non-filterable-text{display:block;border-radius:var(--form-field-radius);background-color:var(--nv-field-background);color:var(--components-form-field-content-text);font-size:var(--form-field-font-size);font-weight:500;line-height:var(--form-field-line-height);box-sizing:border-box;cursor:pointer;height:100%;min-height:40px}nv-fieldmultiselect .non-filterable-text span{display:inline-block;width:100%;overflow:hidden;text-overflow:ellipsis}nv-fieldmultiselect .description{display:flex;align-items:center;align-self:stretch;gap:var(--spacing-1);color:var(--components-form-text-description-default);font-family:\"TT Norms Pro\", sans-serif;font-size:var(--form-description-font-size);font-style:normal;line-height:var(--form-description-line-height)}nv-fieldmultiselect .error-description{display:flex;align-items:center;align-self:stretch;gap:var(--spacing-1);color:var(--components-form-text-description-default);font-family:\"TT Norms Pro\", sans-serif;font-size:var(--form-description-font-size);font-style:normal;line-height:var(--form-description-line-height);color:var(--components-form-text-description-error)}.no-results-message{cursor:not-allowed;background-color:unset;color:var(--components-menu-contextual-item-content-disabled);padding:var(--list-dropdown-item-padding-y) var(--list-dropdown-item-padding-x)}.multiselect-divider{display:block;width:100%;height:1px;background-color:var(--components-list-dropdown-separator);margin:var(--list-dropdown-item-padding-y) 0;border:0}.select-all-container{position:sticky;top:0;background-color:var(--components-list-dropdown-background);border-bottom:1px solid var(--components-list-dropdown-separator);padding:var(--list-dropdown-item-padding-y) var(--list-dropdown-item-padding-x);z-index:10;margin-bottom:0}.select-all-container .select-all-header{display:flex;align-items:center;gap:var(--form-field-gap)}.select-all-container .select-all-header nv-fieldcheckbox{flex:1;margin:0}.select-all-container .select-all-header nv-iconbutton,.select-all-container .select-all-header nv-button{flex-shrink:0;margin-left:auto}.select-all-container .select-all-header nv-button{justify-content:center}";
|
|
8
|
+
const nvFieldmultiselectCss = "nv-fieldslider .slider-container .track-container:has(.thumb:hover) .track-range{background:var(--components-slider-track-filled-hover)}nv-fieldslider .slider-container .track-container:has(.thumb:hover) .thumb{border-color:var(--components-slider-track-filled-hover)}nv-fieldslider .slider-container .track-container:has(.thumb:focus) .track-range{background:var(--components-slider-track-filled-focus)}nv-fieldslider .slider-container .track-container:has(.thumb:focus) .thumb{border-color:var(--components-slider-track-filled-focus)}nv-fieldslider[error] .slider-container .track-container .track .track-range{background:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb{border-color:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb:hover{border-color:var(--components-slider-track-filled-error);outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-slider-track-filled-error);outline-offset:calc(var(--focus-outline-offset) * 1);background-color:var(--components-slider-handler-background-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb:focus{border-color:var(--components-slider-track-filled-error);outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-slider-track-filled-error);outline-offset:calc(var(--focus-outline-offset) * 1);background-color:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container:has(.thumb:hover) .track-range{background:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container:has(.thumb:hover) .thumb{border-color:var(--components-slider-track-filled-error)}nv-fieldslider .slider-container .track-container:has(.thumb:hover) .track-range{background:var(--components-slider-track-filled-hover)}nv-fieldslider .slider-container .track-container:has(.thumb:hover) .thumb{border-color:var(--components-slider-track-filled-hover)}nv-fieldslider .slider-container .track-container:has(.thumb:focus) .track-range{background:var(--components-slider-track-filled-focus)}nv-fieldslider .slider-container .track-container:has(.thumb:focus) .thumb{border-color:var(--components-slider-track-filled-focus)}nv-fieldslider[error] .slider-container .track-container .track .track-range{background:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb{border-color:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb:hover{border-color:var(--components-slider-track-filled-error);outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-slider-track-filled-error);outline-offset:calc(var(--focus-outline-offset) * 1);background-color:var(--components-slider-handler-background-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb:focus{border-color:var(--components-slider-track-filled-error);outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-slider-track-filled-error);outline-offset:calc(var(--focus-outline-offset) * 1);background-color:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container:has(.thumb:hover) .track-range{background:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container:has(.thumb:hover) .thumb{border-color:var(--components-slider-track-filled-error)}nv-fieldmultiselect{--nv-field-border-default:var(--components-form-field-border-default);--nv-field-border-hover:var(--components-form-field-border-hover);--nv-field-border-focus:var(--components-form-field-border-focus);--nv-field-border-disabled:var(--components-form-field-border-default);--nv-field-border-readonly:var(--components-form-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-brand);--nv-field-background:var(--components-form-field-background-default);display:flex;flex-direction:column;align-items:flex-start;gap:var(--form-gap-y);box-sizing:border-box;max-width:480px}nv-fieldmultiselect[fluid]:not([fluid=false]){max-width:unset}nv-fieldmultiselect[readonly]:not([readonly=false]){--nv-field-border-default:var(--components-form-field-border-readonly);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--components-form-field-border-focus);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-background:var(--components-form-field-background-readonly)}nv-fieldmultiselect[error]:not([error=false]){--nv-field-border-default:var(--components-form-field-border-error);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--nv-field-border-default);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-destructive-in-field)}nv-fieldmultiselect[required]:not([required=false]) label::after{content:\"*\";color:var(--components-form-text-required);font-weight:var(--font-weight-high-emphasis)}nv-fieldmultiselect label{display:flex;align-items:center;gap:var(--form-label-gap);align-self:stretch;color:var(--components-form-text-label-default);font-family:var(--font-family-default), var(--font-family-fallback), sans-serif;font-size:var(--form-label-font-size);font-style:normal;font-weight:var(--font-weight-medium-emphasis);line-height:var(--form-label-line-height)}nv-fieldmultiselect nv-popover{width:100%;display:block}nv-fieldmultiselect nv-popover [data-scope=popover]{width:100%;padding:var(--list-dropdown-padding);border-radius:var(--list-dropdown-radius);background-color:var(--components-list-dropdown-background);border:1px solid var(--components-list-dropdown-border)}nv-fieldmultiselect nv-popover [slot=content]{gap:var(--list-dropdown-gap-y);display:flex;flex-direction:column}nv-fieldmultiselect nv-popover hr{color:var(--components-list-dropdown-separator)}nv-fieldmultiselect nv-popover div[slot=content]{max-height:calc(90vh - var(--list-dropdown-padding) * 2);overflow-y:auto;position:relative}nv-fieldmultiselect nv-popover div[slot=content]::-webkit-scrollbar{width:6px;height:6px}nv-fieldmultiselect nv-popover div[slot=content]::-webkit-scrollbar-track{background-color:var(--color-level-10-background);border-radius:9999px}nv-fieldmultiselect nv-popover div[slot=content]::-webkit-scrollbar-thumb{background-color:var(--color-gray-200);border-radius:9999px}nv-fieldmultiselect .input-wrapper-multiselect{display:flex;flex-wrap:wrap;gap:var(--form-gap-x);align-items:stretch;align-self:stretch;width:100%}nv-fieldmultiselect .input-container-multiselect{display:flex;flex-grow:1;justify-content:center;align-items:center;align-self:stretch;border-radius:var(--form-field-radius);border-width:1px;border-style:solid;border-color:var(--nv-field-border-default);opacity:var(--components-form-opacity-default, 1);background:var(--nv-field-background);transition:all 150ms ease-out;position:relative;width:100%;min-height:40px}nv-fieldmultiselect .input-container-multiselect:hover{border-color:var(--nv-field-border-hover)}nv-fieldmultiselect .input-container-multiselect:focus-within,nv-fieldmultiselect .input-container-multiselect:focus-within:hover,nv-fieldmultiselect .input-container-multiselect:focus,nv-fieldmultiselect .input-container-multiselect:focus:hover{border-color:var(--nv-field-border-focus);box-shadow:0px 0px 0px var(--focus-field-stroke) var(--nv-field-focus-box-shadow)}nv-fieldmultiselect .input-container-multiselect:has(input:read-only){opacity:0.5;background-color:var(--components-form-field-background-readonly);border-color:var(--nv-field-border-readonly)}nv-fieldmultiselect .input-container-multiselect:has(input:disabled){opacity:0.5;background-color:var(--components-form-field-background-disabled);border-color:var(--nv-field-border-disabled)}nv-fieldmultiselect .input-container-multiselect>nv-badge{margin-left:var(--form-field-padding-x)}nv-fieldmultiselect .input-container-multiselect input,nv-fieldmultiselect .input-container-multiselect p.non-filterable-text{display:flex;align-items:center;flex:1 0 0;overflow:hidden;background-color:transparent;color:var(--components-form-field-content-text);padding:var(--form-field-padding-y) var(--form-field-padding-x);font-size:var(--form-field-font-size);font-style:normal;font-weight:var(--font-weight-medium-emphasis);line-height:var(--form-field-line-height);width:100%;width:100%;flex-grow:1;margin:0;min-height:100%;box-sizing:border-box}nv-fieldmultiselect .input-container-multiselect input:focus,nv-fieldmultiselect .input-container-multiselect p.non-filterable-text:focus{outline:none}nv-fieldmultiselect .input-container-multiselect input::placeholder,nv-fieldmultiselect .input-container-multiselect p.non-filterable-text::placeholder{overflow:hidden;color:var(--components-form-field-content-placeholder);text-overflow:ellipsis;font-family:var(--font-family-default), var(--font-family-fallback), sans-serif;font-size:var(--form-field-font-size);font-style:normal;font-weight:var(--font-weight-low-emphasis);line-height:var(--form-field-line-height)}nv-fieldmultiselect .input-container-multiselect input[type=password]::-ms-clear,nv-fieldmultiselect .input-container-multiselect input[type=password]::-ms-reveal,nv-fieldmultiselect .input-container-multiselect p.non-filterable-text[type=password]::-ms-clear,nv-fieldmultiselect .input-container-multiselect p.non-filterable-text[type=password]::-ms-reveal{display:none;width:0;height:0}nv-fieldmultiselect .input-container-multiselect>nv-iconbutton{border:0px;border-radius:0px}nv-fieldmultiselect .input-container-multiselect>nv-iconbutton:focus-visible{border-radius:var(--button-md-border-radius);outline-offset:-3px}nv-fieldmultiselect .input-container-multiselect>nv-iconbutton:last-of-type{border-top-right-radius:var(--form-field-radius);border-bottom-right-radius:var(--form-field-radius)}nv-fieldmultiselect .input-container-multiselect nv-icon.validation{color:var(--nv-field-border-default)}nv-fieldmultiselect .non-filterable-text{display:block;border-radius:var(--form-field-radius);background-color:var(--nv-field-background);color:var(--components-form-field-content-text);font-size:var(--form-field-font-size);font-weight:var(--font-weight-medium-emphasis);line-height:var(--form-field-line-height);box-sizing:border-box;cursor:pointer;height:100%;min-height:40px}nv-fieldmultiselect .non-filterable-text span{display:inline-block;width:100%;overflow:hidden;text-overflow:ellipsis}nv-fieldmultiselect .description{display:flex;align-items:center;align-self:stretch;gap:var(--spacing-1);color:var(--components-form-text-description-default);font-family:var(--font-family-default), var(--font-family-fallback), sans-serif;font-size:var(--form-description-font-size);font-style:normal;line-height:var(--form-description-line-height)}nv-fieldmultiselect .error-description{display:flex;align-items:center;align-self:stretch;gap:var(--spacing-1);color:var(--components-form-text-description-default);font-family:var(--font-family-default), var(--font-family-fallback), sans-serif;font-size:var(--form-description-font-size);font-style:normal;line-height:var(--form-description-line-height);color:var(--components-form-text-description-error)}.no-results-message{cursor:not-allowed;background-color:unset;color:var(--components-menu-contextual-item-content-disabled);padding:var(--list-dropdown-item-padding-y) var(--list-dropdown-item-padding-x)}.multiselect-divider{display:block;width:100%;height:1px;background-color:var(--components-list-dropdown-separator);margin:var(--list-dropdown-item-padding-y) 0;border:0}.select-all-container{position:sticky;top:0;background-color:var(--components-list-dropdown-background);border-bottom:1px solid var(--components-list-dropdown-separator);padding:var(--list-dropdown-item-padding-y) var(--list-dropdown-item-padding-x);z-index:10;margin-bottom:0}.select-all-container .select-all-header{display:flex;align-items:center;gap:var(--form-field-gap)}.select-all-container .select-all-header nv-fieldcheckbox{flex:1;margin:0}.select-all-container .select-all-header nv-iconbutton,.select-all-container .select-all-header nv-button{flex-shrink:0;margin-left:auto}.select-all-container .select-all-header nv-button{justify-content:center}";
|
|
9
9
|
const NvFieldmultiselectStyle0 = nvFieldmultiselectCss;
|
|
10
10
|
|
|
11
11
|
const NvFieldmultiselect = class {
|
|
@@ -14,6 +14,8 @@ const NvFieldmultiselect = class {
|
|
|
14
14
|
this.valueChanged = index.createEvent(this, "valueChanged", 7);
|
|
15
15
|
this.filterTextChanged = index.createEvent(this, "filterTextChanged", 7);
|
|
16
16
|
this.isBulkOperation = false;
|
|
17
|
+
// Add the flag to the class
|
|
18
|
+
this.preventBlurClose = false;
|
|
17
19
|
/**
|
|
18
20
|
* Sets the ID for the input element and the for attribute of the associated
|
|
19
21
|
* label. If no ID is provided, a random one will be automatically generated
|
|
@@ -119,11 +121,6 @@ const NvFieldmultiselect = class {
|
|
|
119
121
|
* Controls the visibility of the select all section.
|
|
120
122
|
*/
|
|
121
123
|
this.isSelectAllSectionVisible = true;
|
|
122
|
-
// Add the flag to the class
|
|
123
|
-
this.preventBlurClose = false;
|
|
124
|
-
this.handleMouseDownPreventBlur = () => {
|
|
125
|
-
this.preventBlurClose = true;
|
|
126
|
-
};
|
|
127
124
|
/**
|
|
128
125
|
* Handle badge close for options mode.
|
|
129
126
|
*/
|
|
@@ -167,17 +164,16 @@ const NvFieldmultiselect = class {
|
|
|
167
164
|
if (this.isHandlingEscape) {
|
|
168
165
|
return;
|
|
169
166
|
}
|
|
170
|
-
//
|
|
171
|
-
if (this.filterable) {
|
|
172
|
-
this.resetFilter();
|
|
173
|
-
}
|
|
167
|
+
// Filter reset is handled in handleOpenChanged; no need to repeat
|
|
174
168
|
};
|
|
175
169
|
/**
|
|
176
170
|
* Clear the filter text
|
|
177
171
|
*/
|
|
178
172
|
this.clearFilterText = () => {
|
|
179
|
-
this.filterText
|
|
180
|
-
|
|
173
|
+
if (this.filterText !== '') {
|
|
174
|
+
this.filterText = '';
|
|
175
|
+
this.filterTextChanged.emit('');
|
|
176
|
+
}
|
|
181
177
|
this.resetFilter();
|
|
182
178
|
this.hasFilterResults = true;
|
|
183
179
|
};
|
|
@@ -191,11 +187,9 @@ const NvFieldmultiselect = class {
|
|
|
191
187
|
return; // Don't close the popover
|
|
192
188
|
}
|
|
193
189
|
if (!this.el.contains(document.activeElement)) {
|
|
194
|
-
// Close the popover
|
|
195
|
-
this.open = false;
|
|
196
|
-
// Clear filter text when focus is lost
|
|
190
|
+
this.open = false; // Close the popover on blur
|
|
197
191
|
if (this.filterable) {
|
|
198
|
-
this.clearFilterText();
|
|
192
|
+
this.clearFilterText(); // Clear filter text on blur
|
|
199
193
|
}
|
|
200
194
|
}
|
|
201
195
|
}, 150);
|
|
@@ -308,17 +302,14 @@ const NvFieldmultiselect = class {
|
|
|
308
302
|
*/
|
|
309
303
|
this.handleInputBlurSlots = () => {
|
|
310
304
|
setTimeout(() => {
|
|
311
|
-
// Honor preventBlurClose to avoid closing when interacting inside the popover
|
|
312
305
|
if (this.preventBlurClose) {
|
|
313
306
|
this.preventBlurClose = false;
|
|
314
307
|
return; // Don't close the popover
|
|
315
308
|
}
|
|
316
309
|
if (!this.el.contains(document.activeElement)) {
|
|
317
|
-
// Close the popover
|
|
318
|
-
this.open = false;
|
|
319
|
-
// Clear filter text when focus is lost
|
|
310
|
+
this.open = false; // Close the popover on blur
|
|
320
311
|
if (this.filterable) {
|
|
321
|
-
this.clearFilterText();
|
|
312
|
+
this.clearFilterText(); // Clear filter text on blur
|
|
322
313
|
}
|
|
323
314
|
}
|
|
324
315
|
}, 150);
|
|
@@ -445,6 +436,9 @@ const NvFieldmultiselect = class {
|
|
|
445
436
|
const shouldSelectAll = currentState === 'unchecked' || currentState === 'indeterminate';
|
|
446
437
|
this.toggleSelectAllSlots(shouldSelectAll);
|
|
447
438
|
};
|
|
439
|
+
this.handleMouseDownPreventBlur = () => {
|
|
440
|
+
this.preventBlurClose = true;
|
|
441
|
+
};
|
|
448
442
|
//#endregion METHODS
|
|
449
443
|
/****************************************************************************/
|
|
450
444
|
//#region RENDER
|
|
@@ -453,7 +447,8 @@ const NvFieldmultiselect = class {
|
|
|
453
447
|
* @returns {any} The JSX for options mode
|
|
454
448
|
*/
|
|
455
449
|
this.renderOptionsMode = () => {
|
|
456
|
-
|
|
450
|
+
var _a, _b, _c, _d;
|
|
451
|
+
return (index.h(index.Host, { "aria-label": this.label }, (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" }), (((_a = this.value) === null || _a === void 0 ? void 0 : _a.length) || 0) > 0 && (index.h("nv-badge", { slot: "leading-input", "prevent-auto-close": true, color: "10", dismissible: (((_b = this.value) === null || _b === void 0 ? void 0 : _b.length) || 0) > 0, label: `${((_c = this.value) === null || _c === void 0 ? void 0 : _c.length) || 0} ${this.badgeLabel}`, "aria-label": `Clear all ${((_d = this.value) === null || _d === void 0 ? void 0 : _d.length) || 0} ${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", "aria-label": this.label, "aria-controls": `${this.inputId}-listbox` })) : (index.h(index.Fragment, null, index.h("input", { id: this.inputId, type: "text", style: {
|
|
457
452
|
position: 'absolute',
|
|
458
453
|
opacity: '0',
|
|
459
454
|
width: '0',
|
|
@@ -462,14 +457,15 @@ const NvFieldmultiselect = class {
|
|
|
462
457
|
}, tabIndex: -1, "aria-hidden": "true", autoComplete: this.autocomplete, name: this.name, onFocus: this.handleInputFocusOptions }), index.h("p", { id: this.inputId, class: "non-filterable-text", onClick: this.handleInputContainerClickOptions, tabIndex: 0, onKeyDown: this.handleKeyDown, onFocus: this.handleInputFocusOptions, "aria-label": this.label, "aria-controls": `${this.inputId}-listbox`, "data-scope": "focusable", role: "button" }, index.h("span", null, this.placeholder)))), this.error && (index.h("nv-icon", { name: "alert-circle", class: "validation", size: "md" })), this.filterable && this.filterText.length > 0 && (index.h("nv-iconbutton", { "data-scope": "clear-filter", name: "x", size: "md", emphasis: "lower", "aria-label": "Clear filter text", tabindex: "-1", title: "Clear filter text", onMouseDown: this.handleMouseDownPreventBlur, onClick: this.clearFilterText })), 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', title: this.open ? 'Hide dropdown' : 'Show dropdown', onMouseDown: this.handleMouseDownPreventBlur, onClick: this.togglePopoverOptions })), index.h("slot", { name: "after-input" })), index.h("div", { id: `${this.inputId}-listbox`, slot: "content", style: this.maxHeight ? { maxHeight: this.maxHeight } : {}, onMouseDown: this.handleMouseDownPreventBlur }, this.shouldShowToggleAllOptionsButton() && (index.h("div", { class: "select-all-container" }, index.h("div", { class: "select-all-header" }, this.isSelectAllSectionVisible && (index.h("nv-fieldcheckbox", { checked: this.getSelectAllCheckboxStateOptions() === 'checked', indeterminate: this.getSelectAllCheckboxStateOptions() ===
|
|
463
458
|
'indeterminate', label: this.getSelectAllCheckboxStateOptions() === 'unchecked'
|
|
464
459
|
? this.selectAllLabel
|
|
465
|
-
: this.deselectAllLabel, onMouseDown: this.handleMouseDownPreventBlur, onClick: this.handleSelectAllCheckboxOptionsClick }))))), index.h("ul", { role: "listbox", "aria-multiselectable": "true" }, this.options.map(option => (index.h("nv-fielddropdownitemcheck", { role: "option", label: option.label, description: option.description, value: option.value, checked: this.value.includes(option.value), disabled: option.disabled })))))), this.renderDescriptions()));
|
|
460
|
+
: this.deselectAllLabel, onMouseDown: this.handleMouseDownPreventBlur, onClick: this.handleSelectAllCheckboxOptionsClick }))))), index.h("ul", { role: "listbox", "aria-multiselectable": "true" }, this.options.map(option => (index.h("nv-fielddropdownitemcheck", { role: "option", label: option.label, description: option.description, value: option.value, checked: (this.value || []).includes(option.value), disabled: option.disabled })))))), this.renderDescriptions()));
|
|
466
461
|
};
|
|
467
462
|
/**
|
|
468
463
|
* Renders the component in slots mode
|
|
469
464
|
* @returns {any} The JSX for slots mode
|
|
470
465
|
*/
|
|
471
466
|
this.renderSlotsMode = () => {
|
|
472
|
-
|
|
467
|
+
var _a, _b, _c, _d;
|
|
468
|
+
return (index.h(index.Host, { "aria-label": this.label }, (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" }), (((_a = this.value) === null || _a === void 0 ? void 0 : _a.length) || 0) > 0 && (index.h("nv-badge", { slot: "leading-input", "prevent-auto-close": true, color: "10", dismissible: (((_b = this.value) === null || _b === void 0 ? void 0 : _b.length) || 0) > 0, label: `${((_c = this.value) === null || _c === void 0 ? void 0 : _c.length) || 0} ${this.badgeLabel}`, "aria-label": `Clear all ${((_d = this.value) === null || _d === void 0 ? void 0 : _d.length) || 0} ${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", "aria-label": this.label, "aria-controls": `${this.inputId}-listbox` })) : (index.h(index.Fragment, null, index.h("input", { id: this.inputId, type: "text", style: {
|
|
473
469
|
position: 'absolute',
|
|
474
470
|
opacity: '0',
|
|
475
471
|
width: '0',
|
|
@@ -489,7 +485,7 @@ const NvFieldmultiselect = class {
|
|
|
489
485
|
return;
|
|
490
486
|
// If the parent has set a value prop, use it. Otherwise, derive from checked options.
|
|
491
487
|
// (Assume: if value is undefined, it's not set by parent; if it's an array, it's set.)
|
|
492
|
-
if (this.value
|
|
488
|
+
if (!this.value || this.value.length === 0) {
|
|
493
489
|
this.value = newValue
|
|
494
490
|
.filter(option => option.checked)
|
|
495
491
|
.map(option => option.value);
|
|
@@ -497,7 +493,7 @@ const NvFieldmultiselect = class {
|
|
|
497
493
|
else {
|
|
498
494
|
// If value is set, ensure checked states in options match value
|
|
499
495
|
newValue.forEach(option => {
|
|
500
|
-
option.checked = this.value.includes(option.value);
|
|
496
|
+
option.checked = (this.value || []).includes(option.value);
|
|
501
497
|
});
|
|
502
498
|
}
|
|
503
499
|
this.reorderOptionsContent();
|
|
@@ -514,10 +510,24 @@ const NvFieldmultiselect = class {
|
|
|
514
510
|
// Also, update options checked state if options exist
|
|
515
511
|
if (this.options) {
|
|
516
512
|
this.options.forEach(option => {
|
|
517
|
-
option.checked = this.value.includes(option.value);
|
|
513
|
+
option.checked = (this.value || []).includes(option.value);
|
|
518
514
|
});
|
|
519
515
|
}
|
|
520
516
|
}
|
|
517
|
+
handleOpenChange(newOpen) {
|
|
518
|
+
// React to external changes, e.g., reorder or filter
|
|
519
|
+
if (newOpen) {
|
|
520
|
+
if (this.options) {
|
|
521
|
+
this.reorderOptionsContent();
|
|
522
|
+
}
|
|
523
|
+
else {
|
|
524
|
+
this.reorderSlotContent();
|
|
525
|
+
}
|
|
526
|
+
if (this.filterText) {
|
|
527
|
+
this.filterItems();
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
}
|
|
521
531
|
//#endregion WATCHERS
|
|
522
532
|
/****************************************************************************/
|
|
523
533
|
//#region LISTENERS
|
|
@@ -528,23 +538,33 @@ const NvFieldmultiselect = class {
|
|
|
528
538
|
handleOpenChanged(event) {
|
|
529
539
|
// Stop propagation to prevent the event from affecting parent components like dialogs
|
|
530
540
|
event.stopPropagation();
|
|
531
|
-
//
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
this.
|
|
541
|
+
// Only update if the event comes from our popover
|
|
542
|
+
if (event.target === this.popoverElement) {
|
|
543
|
+
// Only update if open state differs to avoid redundant actions
|
|
544
|
+
if (this.open !== event.detail) {
|
|
545
|
+
this.open = event.detail;
|
|
546
|
+
if (this.open) {
|
|
547
|
+
// Filter items only if there is filter text
|
|
548
|
+
if (this.filterText) {
|
|
549
|
+
this.filterItems();
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
else {
|
|
553
|
+
// Clear filter text on close if filterable
|
|
554
|
+
if (this.filterable) {
|
|
555
|
+
this.clearFilterText();
|
|
556
|
+
}
|
|
557
|
+
this.handlePopoverClose();
|
|
558
|
+
}
|
|
559
|
+
// Reorder content as needed
|
|
560
|
+
if (this.options) {
|
|
561
|
+
this.reorderOptionsContent();
|
|
562
|
+
}
|
|
563
|
+
else {
|
|
564
|
+
this.reorderSlotContent();
|
|
565
|
+
}
|
|
537
566
|
}
|
|
538
567
|
}
|
|
539
|
-
else {
|
|
540
|
-
this.handlePopoverClose();
|
|
541
|
-
}
|
|
542
|
-
if (this.options) {
|
|
543
|
-
this.reorderOptionsContent();
|
|
544
|
-
}
|
|
545
|
-
else {
|
|
546
|
-
this.reorderSlotContent();
|
|
547
|
-
}
|
|
548
568
|
}
|
|
549
569
|
/**
|
|
550
570
|
* Listen for the `itemChecked` event emitted by child items.
|
|
@@ -557,7 +577,7 @@ const NvFieldmultiselect = class {
|
|
|
557
577
|
}
|
|
558
578
|
const { value, checked } = event.detail;
|
|
559
579
|
if (value !== undefined && value !== null) {
|
|
560
|
-
const newValue = [...this.value];
|
|
580
|
+
const newValue = [...(this.value || [])];
|
|
561
581
|
const valueIndex = newValue.indexOf(value);
|
|
562
582
|
let hasChanged = false;
|
|
563
583
|
if (checked && valueIndex === -1) {
|
|
@@ -594,6 +614,86 @@ const NvFieldmultiselect = class {
|
|
|
594
614
|
});
|
|
595
615
|
}
|
|
596
616
|
}
|
|
617
|
+
/**
|
|
618
|
+
* Handle keyboard events & arrow key navigation.
|
|
619
|
+
* If the multiselect is not open, opens it and focuses on the first item if the list is not filterable.
|
|
620
|
+
* If the multiselect is open, handles arrow key navigation and closes it if the focus is outside the component.
|
|
621
|
+
* @param {KeyboardEvent} event - The keyboard event.
|
|
622
|
+
*/
|
|
623
|
+
async handleKeyDown(event) {
|
|
624
|
+
if (!this.open) {
|
|
625
|
+
if (event.key === 'ArrowDown') {
|
|
626
|
+
this.open = true;
|
|
627
|
+
// Focus on the first item if the list is not filterable
|
|
628
|
+
if (!this.filterable) {
|
|
629
|
+
requestAnimationFrame(() => {
|
|
630
|
+
this.focusFirstItem();
|
|
631
|
+
});
|
|
632
|
+
}
|
|
633
|
+
event.preventDefault();
|
|
634
|
+
return;
|
|
635
|
+
}
|
|
636
|
+
return;
|
|
637
|
+
}
|
|
638
|
+
const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitemcheck:not([style*="display: none"])'));
|
|
639
|
+
if (items.length === 0) {
|
|
640
|
+
console.warn('No visible items found to navigate');
|
|
641
|
+
return;
|
|
642
|
+
}
|
|
643
|
+
let currentIndex = items.findIndex(item => item.classList.contains('highlighted'));
|
|
644
|
+
if (event.key === 'ArrowDown') {
|
|
645
|
+
event.preventDefault();
|
|
646
|
+
currentIndex =
|
|
647
|
+
currentIndex === -1 ? 0 : (currentIndex + 1) % items.length;
|
|
648
|
+
this.updateHighlightedItem(items, currentIndex);
|
|
649
|
+
}
|
|
650
|
+
else if (event.key === 'ArrowUp') {
|
|
651
|
+
event.preventDefault();
|
|
652
|
+
currentIndex =
|
|
653
|
+
currentIndex === -1
|
|
654
|
+
? items.length - 1
|
|
655
|
+
: (currentIndex - 1 + items.length) % items.length;
|
|
656
|
+
this.updateHighlightedItem(items, currentIndex);
|
|
657
|
+
}
|
|
658
|
+
else if (event.key === 'Enter' && currentIndex >= 0) {
|
|
659
|
+
event.preventDefault();
|
|
660
|
+
const selectedItem = items[currentIndex];
|
|
661
|
+
// Toggle the checked state
|
|
662
|
+
const isCurrentlyChecked = selectedItem.hasAttribute('checked');
|
|
663
|
+
selectedItem.checked = !isCurrentlyChecked;
|
|
664
|
+
// Trigger a click event to ensure proper event handling
|
|
665
|
+
selectedItem.dispatchEvent(new MouseEvent('click', {
|
|
666
|
+
view: window,
|
|
667
|
+
bubbles: true,
|
|
668
|
+
cancelable: true,
|
|
669
|
+
}));
|
|
670
|
+
}
|
|
671
|
+
else if (event.key === 'Escape') {
|
|
672
|
+
event.preventDefault();
|
|
673
|
+
event.stopPropagation(); // Prevent the event from propagating to the popover
|
|
674
|
+
// Do the reorder and wait a bit before closing
|
|
675
|
+
const handleEscape = async () => {
|
|
676
|
+
this.isHandlingEscape = true; // Disable the hide listener
|
|
677
|
+
if (this.options) {
|
|
678
|
+
this.reorderOptionsContent();
|
|
679
|
+
}
|
|
680
|
+
else {
|
|
681
|
+
this.reorderSlotContent();
|
|
682
|
+
}
|
|
683
|
+
// Wait for the reorder to be applied
|
|
684
|
+
await new Promise(resolve => setTimeout(resolve, 100));
|
|
685
|
+
// Reactivate the hide listener after a short delay
|
|
686
|
+
setTimeout(() => {
|
|
687
|
+
this.isHandlingEscape = false;
|
|
688
|
+
this.open = false;
|
|
689
|
+
}, 150);
|
|
690
|
+
if (this.inputElement) {
|
|
691
|
+
this.inputElement.blur();
|
|
692
|
+
}
|
|
693
|
+
};
|
|
694
|
+
await handleEscape();
|
|
695
|
+
}
|
|
696
|
+
}
|
|
597
697
|
//#endregion LISTENERS
|
|
598
698
|
/****************************************************************************/
|
|
599
699
|
//#region LIFECYCLE
|
|
@@ -690,8 +790,8 @@ const NvFieldmultiselect = class {
|
|
|
690
790
|
if (emptyMessage)
|
|
691
791
|
emptyMessage.remove();
|
|
692
792
|
// Reorder with divider if needed
|
|
693
|
-
const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
694
|
-
const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
|
|
793
|
+
const selectedItems = items.filter(item => (this.value || []).includes(item.getAttribute('value') || ''));
|
|
794
|
+
const unselectedItems = items.filter(item => !(this.value || []).includes(item.getAttribute('value') || ''));
|
|
695
795
|
if (selectedItems.length > 0) {
|
|
696
796
|
this.manageDivider(ul, selectedItems, unselectedItems);
|
|
697
797
|
}
|
|
@@ -776,8 +876,8 @@ const NvFieldmultiselect = class {
|
|
|
776
876
|
return;
|
|
777
877
|
}
|
|
778
878
|
// Separate checked vs unchecked
|
|
779
|
-
const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
780
|
-
const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
|
|
879
|
+
const selectedItems = items.filter(item => (this.value || []).includes(item.getAttribute('value') || ''));
|
|
880
|
+
const unselectedItems = items.filter(item => !(this.value || []).includes(item.getAttribute('value') || ''));
|
|
781
881
|
// Reinsert CHECKED items FIRST
|
|
782
882
|
// appendChild() moves the element without recreating it
|
|
783
883
|
// this is not trigger a re-rendering of the component in the platforms
|
|
@@ -803,8 +903,8 @@ const NvFieldmultiselect = class {
|
|
|
803
903
|
if (!ul)
|
|
804
904
|
return;
|
|
805
905
|
const items = Array.from(ul.querySelectorAll('nv-fielddropdownitemcheck')).filter(item => item.style.display !== 'none');
|
|
806
|
-
const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
807
|
-
const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
|
|
906
|
+
const selectedItems = items.filter(item => (this.value || []).includes(item.getAttribute('value') || ''));
|
|
907
|
+
const unselectedItems = items.filter(item => !(this.value || []).includes(item.getAttribute('value') || ''));
|
|
808
908
|
// Reorder the elements
|
|
809
909
|
selectedItems.forEach(item => ul.appendChild(item));
|
|
810
910
|
unselectedItems.forEach(item => ul.appendChild(item));
|
|
@@ -840,8 +940,8 @@ const NvFieldmultiselect = class {
|
|
|
840
940
|
}
|
|
841
941
|
// Reorder with divider
|
|
842
942
|
const items = Array.from(ul.querySelectorAll('nv-fielddropdownitemcheck'));
|
|
843
|
-
const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
844
|
-
const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
|
|
943
|
+
const selectedItems = items.filter(item => (this.value || []).includes(item.getAttribute('value') || ''));
|
|
944
|
+
const unselectedItems = items.filter(item => !(this.value || []).includes(item.getAttribute('value') || ''));
|
|
845
945
|
this.manageDivider(ul, selectedItems, unselectedItems);
|
|
846
946
|
return;
|
|
847
947
|
}
|
|
@@ -862,8 +962,8 @@ const NvFieldmultiselect = class {
|
|
|
862
962
|
});
|
|
863
963
|
// Manage the divider with the visible items
|
|
864
964
|
const visibleItems = items.filter(item => item.style.display !== 'none');
|
|
865
|
-
const visibleSelected = visibleItems.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
866
|
-
const visibleUnselected = visibleItems.filter(item => !this.value.includes(item.getAttribute('value') || ''));
|
|
965
|
+
const visibleSelected = visibleItems.filter(item => (this.value || []).includes(item.getAttribute('value') || ''));
|
|
966
|
+
const visibleUnselected = visibleItems.filter(item => !(this.value || []).includes(item.getAttribute('value') || ''));
|
|
867
967
|
this.manageDivider(ul, visibleSelected, visibleUnselected);
|
|
868
968
|
}
|
|
869
969
|
else {
|
|
@@ -903,31 +1003,39 @@ const NvFieldmultiselect = class {
|
|
|
903
1003
|
const items = Array.from(ul.querySelectorAll('nv-fielddropdownitemcheck'));
|
|
904
1004
|
// Reset items if the filter text is empty
|
|
905
1005
|
if (!this.filterText.trim()) {
|
|
906
|
-
// Remove the empty message if it exists
|
|
907
1006
|
this.removeEmptyMessageOption(ul);
|
|
908
|
-
items.forEach(item =>
|
|
909
|
-
|
|
910
|
-
|
|
1007
|
+
items.forEach(item => {
|
|
1008
|
+
item.style.display = '';
|
|
1009
|
+
item.removeAttribute('aria-hidden'); // Ensure accessibility
|
|
1010
|
+
});
|
|
1011
|
+
this.reorderOptionsContent();
|
|
1012
|
+
this.hasFilterResults = true;
|
|
911
1013
|
return;
|
|
912
1014
|
}
|
|
913
1015
|
// Filter the items
|
|
914
1016
|
items.forEach(item => {
|
|
915
|
-
const
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
1017
|
+
const option = this.options.find(opt => opt.value === item.getAttribute('value'));
|
|
1018
|
+
if (option && !option.isDivider) {
|
|
1019
|
+
const matchesFilter = this.normalizeText(option.label).includes(normalizedFilter) ||
|
|
1020
|
+
this.normalizeText(option.value).includes(normalizedFilter);
|
|
1021
|
+
item.style.display = matchesFilter ? '' : 'none';
|
|
1022
|
+
item.setAttribute('aria-hidden', matchesFilter ? 'false' : 'true'); // Update accessibility
|
|
1023
|
+
if (matchesFilter)
|
|
1024
|
+
hasVisibleItems = true;
|
|
1025
|
+
}
|
|
1026
|
+
else {
|
|
1027
|
+
item.style.display = 'none'; // Hide dividers during filtering
|
|
1028
|
+
item.setAttribute('aria-hidden', 'true');
|
|
1029
|
+
}
|
|
922
1030
|
});
|
|
923
1031
|
// Update the filter results state
|
|
924
1032
|
this.hasFilterResults = hasVisibleItems;
|
|
925
1033
|
// Manage the divider with the visible items
|
|
926
1034
|
const visibleItems = items.filter(item => item.style.display !== 'none');
|
|
927
|
-
const visibleSelected = visibleItems.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
928
|
-
const visibleUnselected = visibleItems.filter(item => !this.value.includes(item.getAttribute('value') || ''));
|
|
1035
|
+
const visibleSelected = visibleItems.filter(item => (this.value || []).includes(item.getAttribute('value') || ''));
|
|
1036
|
+
const visibleUnselected = visibleItems.filter(item => !(this.value || []).includes(item.getAttribute('value') || ''));
|
|
929
1037
|
this.manageDivider(ul, visibleSelected, visibleUnselected);
|
|
930
|
-
// Add or remove the empty message
|
|
1038
|
+
// Add or remove the empty message
|
|
931
1039
|
if (!hasVisibleItems) {
|
|
932
1040
|
this.addEmptyMessageOption(ul);
|
|
933
1041
|
}
|
|
@@ -976,8 +1084,8 @@ const NvFieldmultiselect = class {
|
|
|
976
1084
|
this.hasFilterResults = hasVisibleItems;
|
|
977
1085
|
// Get visible items after filtering
|
|
978
1086
|
const visibleItems = items.filter(item => item.style.display !== 'none');
|
|
979
|
-
const visibleSelectedItems = visibleItems.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
980
|
-
this.manageDivider(ul, visibleSelectedItems, visibleItems.filter(item => !this.value.includes(item.getAttribute('value') || '')));
|
|
1087
|
+
const visibleSelectedItems = visibleItems.filter(item => (this.value || []).includes(item.getAttribute('value') || ''));
|
|
1088
|
+
this.manageDivider(ul, visibleSelectedItems, visibleItems.filter(item => !(this.value || []).includes(item.getAttribute('value') || '')));
|
|
981
1089
|
// Add empty message if no items match the filter
|
|
982
1090
|
if (!hasVisibleItems) {
|
|
983
1091
|
const emptyMessage = document.createElement('li');
|
|
@@ -1018,86 +1126,6 @@ const NvFieldmultiselect = class {
|
|
|
1018
1126
|
}
|
|
1019
1127
|
this.open = false;
|
|
1020
1128
|
}
|
|
1021
|
-
/**
|
|
1022
|
-
* Handle keyboard events & arrow key navigation.
|
|
1023
|
-
* If the multiselect is not open, opens it and focuses on the first item if the list is not filterable.
|
|
1024
|
-
* If the multiselect is open, handles arrow key navigation and closes it if the focus is outside the component.
|
|
1025
|
-
* @param {KeyboardEvent} event - The keyboard event.
|
|
1026
|
-
*/
|
|
1027
|
-
async handleKeyDown(event) {
|
|
1028
|
-
if (!this.open) {
|
|
1029
|
-
if (event.key === 'ArrowDown') {
|
|
1030
|
-
this.open = true;
|
|
1031
|
-
// Focus on the first item if the list is not filterable
|
|
1032
|
-
if (!this.filterable) {
|
|
1033
|
-
requestAnimationFrame(() => {
|
|
1034
|
-
this.focusFirstItem();
|
|
1035
|
-
});
|
|
1036
|
-
}
|
|
1037
|
-
event.preventDefault();
|
|
1038
|
-
return;
|
|
1039
|
-
}
|
|
1040
|
-
return;
|
|
1041
|
-
}
|
|
1042
|
-
const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitemcheck:not([style*="display: none"])'));
|
|
1043
|
-
if (items.length === 0) {
|
|
1044
|
-
console.warn('No visible items found to navigate');
|
|
1045
|
-
return;
|
|
1046
|
-
}
|
|
1047
|
-
let currentIndex = items.findIndex(item => item.classList.contains('highlighted'));
|
|
1048
|
-
if (event.key === 'ArrowDown') {
|
|
1049
|
-
event.preventDefault();
|
|
1050
|
-
currentIndex =
|
|
1051
|
-
currentIndex === -1 ? 0 : (currentIndex + 1) % items.length;
|
|
1052
|
-
this.updateHighlightedItem(items, currentIndex);
|
|
1053
|
-
}
|
|
1054
|
-
else if (event.key === 'ArrowUp') {
|
|
1055
|
-
event.preventDefault();
|
|
1056
|
-
currentIndex =
|
|
1057
|
-
currentIndex === -1
|
|
1058
|
-
? items.length - 1
|
|
1059
|
-
: (currentIndex - 1 + items.length) % items.length;
|
|
1060
|
-
this.updateHighlightedItem(items, currentIndex);
|
|
1061
|
-
}
|
|
1062
|
-
else if (event.key === 'Enter' && currentIndex >= 0) {
|
|
1063
|
-
event.preventDefault();
|
|
1064
|
-
const selectedItem = items[currentIndex];
|
|
1065
|
-
// Toggle the checked state
|
|
1066
|
-
const isCurrentlyChecked = selectedItem.hasAttribute('checked');
|
|
1067
|
-
selectedItem.checked = !isCurrentlyChecked;
|
|
1068
|
-
// Trigger a click event to ensure proper event handling
|
|
1069
|
-
selectedItem.dispatchEvent(new MouseEvent('click', {
|
|
1070
|
-
view: window,
|
|
1071
|
-
bubbles: true,
|
|
1072
|
-
cancelable: true,
|
|
1073
|
-
}));
|
|
1074
|
-
}
|
|
1075
|
-
else if (event.key === 'Escape') {
|
|
1076
|
-
event.preventDefault();
|
|
1077
|
-
event.stopPropagation(); // Prevent the event from propagating to the popover
|
|
1078
|
-
// Do the reorder and wait a bit before closing
|
|
1079
|
-
const handleEscape = async () => {
|
|
1080
|
-
this.isHandlingEscape = true; // Disable the hide listener
|
|
1081
|
-
if (this.options) {
|
|
1082
|
-
this.reorderOptionsContent();
|
|
1083
|
-
}
|
|
1084
|
-
else {
|
|
1085
|
-
this.reorderSlotContent();
|
|
1086
|
-
}
|
|
1087
|
-
// Wait for the reorder to be applied
|
|
1088
|
-
await new Promise(resolve => setTimeout(resolve, 100));
|
|
1089
|
-
// Reactivate the hide listener after a short delay
|
|
1090
|
-
setTimeout(() => {
|
|
1091
|
-
this.isHandlingEscape = false;
|
|
1092
|
-
this.open = false;
|
|
1093
|
-
}, 150);
|
|
1094
|
-
if (this.inputElement) {
|
|
1095
|
-
this.inputElement.blur();
|
|
1096
|
-
}
|
|
1097
|
-
};
|
|
1098
|
-
await handleEscape();
|
|
1099
|
-
}
|
|
1100
|
-
}
|
|
1101
1129
|
/**
|
|
1102
1130
|
* Updates the highlighted item in the dropdown list.
|
|
1103
1131
|
*
|
|
@@ -1187,7 +1215,7 @@ const NvFieldmultiselect = class {
|
|
|
1187
1215
|
items.forEach(item => {
|
|
1188
1216
|
// Get the effective value: use explicit value if present, otherwise use label
|
|
1189
1217
|
const itemValue = item.getAttribute('value') || item.getAttribute('label') || '';
|
|
1190
|
-
const shouldBeChecked = this.value.includes(itemValue);
|
|
1218
|
+
const shouldBeChecked = (this.value || []).includes(itemValue);
|
|
1191
1219
|
// Only update if the checked state differs to avoid triggering unnecessary events
|
|
1192
1220
|
if (item.checked !== shouldBeChecked) {
|
|
1193
1221
|
// Set attribute and property, but avoid triggering itemChecked during bulk
|
|
@@ -1227,8 +1255,10 @@ const NvFieldmultiselect = class {
|
|
|
1227
1255
|
getVisibleEnabledOptionItems() {
|
|
1228
1256
|
const allItems = Array.from(this.el.querySelectorAll('nv-fielddropdownitemcheck'));
|
|
1229
1257
|
const visibleItems = allItems.filter(item => {
|
|
1230
|
-
const isHidden = item.style.display === 'none'
|
|
1231
|
-
|
|
1258
|
+
const isHidden = item.style.display === 'none' ||
|
|
1259
|
+
item.getAttribute('aria-hidden') === 'true';
|
|
1260
|
+
const isDisabled = item.hasAttribute('disabled') ||
|
|
1261
|
+
item.getAttribute('disabled') === 'true';
|
|
1232
1262
|
return !isHidden && !isDisabled;
|
|
1233
1263
|
});
|
|
1234
1264
|
return visibleItems
|
|
@@ -1255,7 +1285,7 @@ const NvFieldmultiselect = class {
|
|
|
1255
1285
|
const visibleOptionValues = this.getVisibleEnabledOptionItems();
|
|
1256
1286
|
if (visibleOptionValues.length === 0)
|
|
1257
1287
|
return 'unchecked';
|
|
1258
|
-
const selectedVisibleOptions = visibleOptionValues.filter(value => this.value.includes(value));
|
|
1288
|
+
const selectedVisibleOptions = visibleOptionValues.filter(value => (this.value || []).includes(value));
|
|
1259
1289
|
if (selectedVisibleOptions.length === 0)
|
|
1260
1290
|
return 'unchecked';
|
|
1261
1291
|
if (selectedVisibleOptions.length === visibleOptionValues.length)
|
|
@@ -1275,7 +1305,7 @@ const NvFieldmultiselect = class {
|
|
|
1275
1305
|
return 'unchecked';
|
|
1276
1306
|
const selectedItems = items.filter(item => {
|
|
1277
1307
|
const itemValue = item.getAttribute('value') || item.getAttribute('label') || '';
|
|
1278
|
-
return itemValue !== '' && this.value.includes(itemValue);
|
|
1308
|
+
return itemValue !== '' && (this.value || []).includes(itemValue);
|
|
1279
1309
|
});
|
|
1280
1310
|
if (selectedItems.length === 0)
|
|
1281
1311
|
return 'unchecked';
|
|
@@ -1326,7 +1356,8 @@ const NvFieldmultiselect = class {
|
|
|
1326
1356
|
get el() { return index.getElement(this); }
|
|
1327
1357
|
static get watchers() { return {
|
|
1328
1358
|
"options": ["handleOptionsChange"],
|
|
1329
|
-
"value": ["watchValueHandler"]
|
|
1359
|
+
"value": ["watchValueHandler"],
|
|
1360
|
+
"open": ["handleOpenChange"]
|
|
1330
1361
|
}; }
|
|
1331
1362
|
};
|
|
1332
1363
|
NvFieldmultiselect.style = NvFieldmultiselectStyle0;
|