@nova-design-system/nova-webcomponents 3.15.0 → 3.17.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/{index-c56424e5.js → index-93d3b2f8.js} +9 -6
- package/dist/cjs/index-93d3b2f8.js.map +1 -0
- package/dist/cjs/index.cjs.js +6 -1
- 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 +2 -2
- 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 +2 -2
- package/dist/cjs/nv-alert.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-avatar.cjs.entry.js +2 -2
- package/dist/cjs/nv-avatar.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-badge_2.cjs.entry.js +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 -9
- 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 +1 -1
- package/dist/cjs/nv-col.cjs.entry.js +1 -1
- package/dist/cjs/nv-datagrid.cjs.entry.js +177 -10
- 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 +32 -29
- package/dist/cjs/nv-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-dialogfooter_2.cjs.entry.js +2 -2
- package/dist/cjs/nv-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 +25 -12
- package/dist/cjs/nv-fieldtime.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-icon.cjs.entry.js +2 -2
- 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 +2 -2
- package/dist/cjs/nv-notification.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-notificationcontainer.cjs.entry.js +1 -1
- package/dist/cjs/nv-popover.cjs.entry.js +67 -61
- package/dist/cjs/nv-popover.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-row.cjs.entry.js +1 -1
- package/dist/cjs/nv-split.cjs.entry.js +339 -0
- package/dist/cjs/nv-split.cjs.entry.js.map +1 -0
- 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 +2 -2
- package/dist/cjs/nv-toggle.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-togglebutton.cjs.entry.js +1 -1
- 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 +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-breadcrumb/nv-breadcrumb.css +1 -1
- package/dist/collection/components/nv-button/nv-button.js +1 -13
- package/dist/collection/components/nv-button/nv-button.js.map +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 +3 -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 +6 -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/styles/nv-notification.css +2 -2
- 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-split/nv-split.docs.js +41 -0
- package/dist/collection/components/nv-split/nv-split.docs.js.map +1 -0
- package/dist/collection/components/nv-split/nv-split.js +549 -0
- package/dist/collection/components/nv-split/nv-split.js.map +1 -0
- package/dist/collection/components/nv-split/styles/nv-split.css +96 -0
- 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-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/components/index.js +7 -2
- 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 +3 -3
- package/dist/components/nv-alert.js.map +1 -1
- package/dist/components/nv-avatar.js +3 -3
- 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 +174 -7
- package/dist/components/nv-datagrid.js.map +1 -1
- package/dist/components/nv-datagridcolumn.js +1 -1
- package/dist/components/nv-dialog.js +37 -34
- 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 +31 -17
- 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 +3 -3
- package/dist/components/nv-notification.js.map +1 -1
- package/dist/components/nv-notificationcontainer.js +1 -1
- package/dist/components/nv-popover.js +1 -1
- package/dist/components/nv-row.js +1 -1
- package/dist/components/{nv-tablecolumn.d.ts → nv-split.d.ts} +4 -4
- package/dist/components/nv-split.js +366 -0
- package/dist/components/nv-split.js.map +1 -0
- 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 +2 -2
- package/dist/components/nv-toggle.js.map +1 -1
- package/dist/components/nv-togglebutton.js +1 -1
- 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-00cbf2a1.js → p-0d5ed1d7.js} +3 -3
- package/dist/components/p-0d5ed1d7.js.map +1 -0
- package/dist/components/{p-54161bad.js → p-0e6f41c7.js} +2 -2
- package/dist/components/{p-54161bad.js.map → p-0e6f41c7.js.map} +1 -1
- package/dist/components/{p-0c42fafb.js → p-0fd23531.js} +6 -6
- package/dist/components/{p-0c42fafb.js.map → p-0fd23531.js.map} +1 -1
- package/dist/components/{p-a823b8e9.js → p-1639703f.js} +2 -2
- package/dist/components/{p-a823b8e9.js.map → p-1639703f.js.map} +1 -1
- package/dist/components/{p-e5c62ea8.js → p-2cc83e0c.js} +3 -3
- package/dist/components/{p-e5c62ea8.js.map → p-2cc83e0c.js.map} +1 -1
- package/dist/components/{p-3763c9c4.js → p-31478080.js} +3 -3
- package/dist/components/{p-3763c9c4.js.map → p-31478080.js.map} +1 -1
- package/dist/components/{p-178fa27e.js → p-378e3127.js} +6 -6
- package/dist/components/{p-178fa27e.js.map → p-378e3127.js.map} +1 -1
- package/dist/components/{p-51876ca1.js → p-429e01f3.js} +3 -3
- package/dist/components/p-429e01f3.js.map +1 -0
- package/dist/components/p-47d499b4.js +88 -0
- package/dist/components/p-47d499b4.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-ee8944f3.js → p-63595ea1.js} +68 -62
- package/dist/components/p-63595ea1.js.map +1 -0
- package/dist/components/{p-1af3591a.js → p-6f2b257e.js} +3 -3
- package/dist/components/{p-1af3591a.js.map → p-6f2b257e.js.map} +1 -1
- package/dist/components/{p-4fc01a78.js → p-7112612c.js} +5 -5
- package/dist/components/p-7112612c.js.map +1 -0
- package/dist/components/{p-7426b20f.js → p-715e5235.js} +3 -3
- package/dist/components/{p-7426b20f.js.map → p-715e5235.js.map} +1 -1
- package/dist/components/{p-31e262bd.js → p-7b5102c8.js} +5 -5
- package/dist/components/{p-31e262bd.js.map → p-7b5102c8.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-9e7468e3.js +185 -0
- package/dist/components/p-9e7468e3.js.map +1 -0
- package/dist/components/{p-75200cc0.js → p-df5d76a5.js} +3 -3
- package/dist/components/{p-75200cc0.js.map → p-df5d76a5.js.map} +1 -1
- package/dist/components/{p-51459a44.js → p-f2bac2aa.js} +4 -4
- package/dist/components/{p-51459a44.js.map → p-f2bac2aa.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 +6 -1
- 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 +2 -2
- 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 +2 -2
- package/dist/esm/nv-alert.entry.js.map +1 -1
- package/dist/esm/nv-avatar.entry.js +2 -2
- package/dist/esm/nv-avatar.entry.js.map +1 -1
- package/dist/esm/nv-badge_2.entry.js +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 -9
- 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 +1 -1
- package/dist/esm/nv-col.entry.js +1 -1
- package/dist/esm/nv-datagrid.entry.js +172 -5
- 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 +32 -29
- package/dist/esm/nv-dialog.entry.js.map +1 -1
- package/dist/esm/nv-dialogfooter_2.entry.js +2 -2
- 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 +25 -12
- package/dist/esm/nv-fieldtime.entry.js.map +1 -1
- package/dist/esm/nv-icon.entry.js +2 -2
- 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 +2 -2
- package/dist/esm/nv-notification.entry.js.map +1 -1
- package/dist/esm/nv-notificationcontainer.entry.js +1 -1
- package/dist/esm/nv-popover.entry.js +67 -61
- package/dist/esm/nv-popover.entry.js.map +1 -1
- package/dist/esm/nv-row.entry.js +1 -1
- package/dist/esm/nv-split.entry.js +335 -0
- package/dist/esm/nv-split.entry.js.map +1 -0
- 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 +2 -2
- package/dist/esm/nv-toggle.entry.js.map +1 -1
- package/dist/esm/nv-togglebutton.entry.js +1 -1
- 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 +1 -1
- 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-107e80c6.entry.js +2 -0
- package/dist/native/p-107e80c6.entry.js.map +1 -0
- package/dist/native/{p-5c697133.entry.js → p-112d096c.entry.js} +2 -2
- package/dist/native/p-14e622e1.entry.js +2 -0
- package/dist/native/p-14e622e1.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-2364aefa.entry.js +2 -0
- package/dist/native/p-2364aefa.entry.js.map +1 -0
- 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-6cb6679b.entry.js.map → p-278613a3.entry.js.map} +1 -1
- package/dist/native/p-2dfd786f.entry.js +2 -0
- package/dist/native/{p-29df974e.entry.js.map → p-2dfd786f.entry.js.map} +1 -1
- package/dist/native/{p-d0a33e64.js → p-3060df80.js} +3 -3
- package/dist/native/p-3060df80.js.map +1 -0
- package/dist/native/p-4dc7483d.entry.js +2 -0
- package/dist/native/{p-c7b7ffaf.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-08322093.entry.js → p-52d2c0ae.entry.js} +2 -2
- package/dist/native/p-638967bf.entry.js +2 -0
- package/dist/native/p-638967bf.entry.js.map +1 -0
- package/dist/native/{p-19090193.entry.js → p-647a0765.entry.js} +2 -2
- 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-1504e28b.entry.js → p-701b48a4.entry.js} +2 -2
- 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-d2c9247b.entry.js → p-8e423742.entry.js} +3 -3
- package/dist/native/{p-d2c9247b.entry.js.map → p-8e423742.entry.js.map} +1 -1
- package/dist/native/{p-d882f417.entry.js → p-91fab6c2.entry.js} +2 -2
- package/dist/native/p-91fab6c2.entry.js.map +1 -0
- 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-a6fc987a.entry.js +2 -0
- package/dist/native/p-a6fc987a.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-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-74b129e9.entry.js → p-bcf41cd0.entry.js} +2 -2
- package/dist/native/{p-c66565f8.entry.js → p-cb0293ec.entry.js} +2 -2
- 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-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-e2c99ce2.entry.js → p-d94bf052.entry.js} +2 -2
- package/dist/native/p-ddc41f1f.entry.js +2 -0
- package/dist/native/p-ddc41f1f.entry.js.map +1 -0
- 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-b32d0a5a.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/components/nv-accordion/nv-accordion.d.ts +2 -4
- package/dist/types/components/nv-button/nv-button.d.ts +0 -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-popover/nv-popover.d.ts +10 -8
- package/dist/types/components/nv-split/nv-split.d.ts +128 -0
- package/dist/types/components/nv-split/nv-split.docs.d.ts +4 -0
- 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 +102 -200
- package/dist/vscode-data.json +43 -41
- package/hydrate/index.js +1148 -783
- package/hydrate/index.mjs +1148 -783
- package/package.json +10 -10
- package/dist/cjs/dom.utils-4d43f69a.js +0 -170
- package/dist/cjs/dom.utils-4d43f69a.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/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.js +0 -38
- package/dist/components/nv-tablecolumn.js.map +0 -1
- package/dist/components/p-00cbf2a1.js.map +0 -1
- package/dist/components/p-4fc01a78.js.map +0 -1
- package/dist/components/p-51876ca1.js.map +0 -1
- package/dist/components/p-5d14ba3f.js +0 -88
- package/dist/components/p-5d14ba3f.js.map +0 -1
- package/dist/components/p-95857e4f.js +0 -191
- package/dist/components/p-95857e4f.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-ee8944f3.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/native/p-0a99c6fb.entry.js +0 -2
- package/dist/native/p-0a99c6fb.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-1c83f540.entry.js +0 -2
- package/dist/native/p-1c83f540.entry.js.map +0 -1
- package/dist/native/p-224b1a01.entry.js +0 -2
- package/dist/native/p-224b1a01.entry.js.map +0 -1
- package/dist/native/p-234cfa2e.entry.js +0 -2
- package/dist/native/p-2781637d.entry.js +0 -2
- package/dist/native/p-29df974e.entry.js +0 -2
- package/dist/native/p-29f68e07.entry.js +0 -2
- package/dist/native/p-45506c37.entry.js +0 -2
- package/dist/native/p-45506c37.entry.js.map +0 -1
- package/dist/native/p-48774d0c.entry.js +0 -13
- package/dist/native/p-48774d0c.entry.js.map +0 -1
- package/dist/native/p-4ec61dec.entry.js +0 -2
- package/dist/native/p-4ec61dec.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-6c7a9a21.entry.js +0 -2
- package/dist/native/p-6c7a9a21.entry.js.map +0 -1
- package/dist/native/p-6cb6679b.entry.js +0 -2
- package/dist/native/p-6d13a851.entry.js +0 -2
- package/dist/native/p-6d13a851.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-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-a69dbcef.entry.js +0 -2
- package/dist/native/p-a69dbcef.entry.js.map +0 -1
- package/dist/native/p-b32d0a5a.entry.js +0 -2
- package/dist/native/p-bc01787b.entry.js +0 -2
- package/dist/native/p-bc01787b.entry.js.map +0 -1
- package/dist/native/p-c7b7ffaf.entry.js +0 -2
- 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-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-d882f417.entry.js.map +0 -1
- 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-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-fa177c39.entry.js +0 -2
- package/dist/native/p-fa177c39.entry.js.map +0 -1
- 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-5c697133.entry.js.map → p-112d096c.entry.js.map} +0 -0
- /package/dist/native/{p-85f8f11a.entry.js.map → p-230af58a.entry.js.map} +0 -0
- /package/dist/native/{p-08322093.entry.js.map → p-52d2c0ae.entry.js.map} +0 -0
- /package/dist/native/{p-19090193.entry.js.map → p-647a0765.entry.js.map} +0 -0
- /package/dist/native/{p-1504e28b.entry.js.map → p-701b48a4.entry.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-74b129e9.entry.js.map → p-bcf41cd0.entry.js.map} +0 -0
- /package/dist/native/{p-c66565f8.entry.js.map → p-cb0293ec.entry.js.map} +0 -0
- /package/dist/native/{p-e2c99ce2.entry.js.map → p-d94bf052.entry.js.map} +0 -0
- /package/dist/native/{p-9c5d6827.entry.js.map → p-fa78d8eb.entry.js.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { r as registerInstance, c as createEvent, h, F as Fragment, H as Host, g as getElement } from './index-
|
|
1
|
+
import { r as registerInstance, c as createEvent, h, F as Fragment, H as Host, g as getElement } from './index-dc2723f3.js';
|
|
2
2
|
import { v as v4 } from './v4-a79185f4.js';
|
|
3
3
|
|
|
4
|
-
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}";
|
|
4
|
+
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}";
|
|
5
5
|
const NvFieldmultiselectStyle0 = nvFieldmultiselectCss;
|
|
6
6
|
|
|
7
7
|
const NvFieldmultiselect = class {
|
|
@@ -10,6 +10,8 @@ const NvFieldmultiselect = class {
|
|
|
10
10
|
this.valueChanged = createEvent(this, "valueChanged", 7);
|
|
11
11
|
this.filterTextChanged = createEvent(this, "filterTextChanged", 7);
|
|
12
12
|
this.isBulkOperation = false;
|
|
13
|
+
// Add the flag to the class
|
|
14
|
+
this.preventBlurClose = false;
|
|
13
15
|
/**
|
|
14
16
|
* Sets the ID for the input element and the for attribute of the associated
|
|
15
17
|
* label. If no ID is provided, a random one will be automatically generated
|
|
@@ -115,11 +117,6 @@ const NvFieldmultiselect = class {
|
|
|
115
117
|
* Controls the visibility of the select all section.
|
|
116
118
|
*/
|
|
117
119
|
this.isSelectAllSectionVisible = true;
|
|
118
|
-
// Add the flag to the class
|
|
119
|
-
this.preventBlurClose = false;
|
|
120
|
-
this.handleMouseDownPreventBlur = () => {
|
|
121
|
-
this.preventBlurClose = true;
|
|
122
|
-
};
|
|
123
120
|
/**
|
|
124
121
|
* Handle badge close for options mode.
|
|
125
122
|
*/
|
|
@@ -163,17 +160,16 @@ const NvFieldmultiselect = class {
|
|
|
163
160
|
if (this.isHandlingEscape) {
|
|
164
161
|
return;
|
|
165
162
|
}
|
|
166
|
-
//
|
|
167
|
-
if (this.filterable) {
|
|
168
|
-
this.resetFilter();
|
|
169
|
-
}
|
|
163
|
+
// Filter reset is handled in handleOpenChanged; no need to repeat
|
|
170
164
|
};
|
|
171
165
|
/**
|
|
172
166
|
* Clear the filter text
|
|
173
167
|
*/
|
|
174
168
|
this.clearFilterText = () => {
|
|
175
|
-
this.filterText
|
|
176
|
-
|
|
169
|
+
if (this.filterText !== '') {
|
|
170
|
+
this.filterText = '';
|
|
171
|
+
this.filterTextChanged.emit('');
|
|
172
|
+
}
|
|
177
173
|
this.resetFilter();
|
|
178
174
|
this.hasFilterResults = true;
|
|
179
175
|
};
|
|
@@ -187,11 +183,9 @@ const NvFieldmultiselect = class {
|
|
|
187
183
|
return; // Don't close the popover
|
|
188
184
|
}
|
|
189
185
|
if (!this.el.contains(document.activeElement)) {
|
|
190
|
-
// Close the popover
|
|
191
|
-
this.open = false;
|
|
192
|
-
// Clear filter text when focus is lost
|
|
186
|
+
this.open = false; // Close the popover on blur
|
|
193
187
|
if (this.filterable) {
|
|
194
|
-
this.clearFilterText();
|
|
188
|
+
this.clearFilterText(); // Clear filter text on blur
|
|
195
189
|
}
|
|
196
190
|
}
|
|
197
191
|
}, 150);
|
|
@@ -304,17 +298,14 @@ const NvFieldmultiselect = class {
|
|
|
304
298
|
*/
|
|
305
299
|
this.handleInputBlurSlots = () => {
|
|
306
300
|
setTimeout(() => {
|
|
307
|
-
// Honor preventBlurClose to avoid closing when interacting inside the popover
|
|
308
301
|
if (this.preventBlurClose) {
|
|
309
302
|
this.preventBlurClose = false;
|
|
310
303
|
return; // Don't close the popover
|
|
311
304
|
}
|
|
312
305
|
if (!this.el.contains(document.activeElement)) {
|
|
313
|
-
// Close the popover
|
|
314
|
-
this.open = false;
|
|
315
|
-
// Clear filter text when focus is lost
|
|
306
|
+
this.open = false; // Close the popover on blur
|
|
316
307
|
if (this.filterable) {
|
|
317
|
-
this.clearFilterText();
|
|
308
|
+
this.clearFilterText(); // Clear filter text on blur
|
|
318
309
|
}
|
|
319
310
|
}
|
|
320
311
|
}, 150);
|
|
@@ -441,6 +432,9 @@ const NvFieldmultiselect = class {
|
|
|
441
432
|
const shouldSelectAll = currentState === 'unchecked' || currentState === 'indeterminate';
|
|
442
433
|
this.toggleSelectAllSlots(shouldSelectAll);
|
|
443
434
|
};
|
|
435
|
+
this.handleMouseDownPreventBlur = () => {
|
|
436
|
+
this.preventBlurClose = true;
|
|
437
|
+
};
|
|
444
438
|
//#endregion METHODS
|
|
445
439
|
/****************************************************************************/
|
|
446
440
|
//#region RENDER
|
|
@@ -449,7 +443,8 @@ const NvFieldmultiselect = class {
|
|
|
449
443
|
* @returns {any} The JSX for options mode
|
|
450
444
|
*/
|
|
451
445
|
this.renderOptionsMode = () => {
|
|
452
|
-
|
|
446
|
+
var _a, _b, _c, _d;
|
|
447
|
+
return (h(Host, { "aria-label": this.label }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { htmlFor: this.inputId }, h("slot", { name: "label" }, this.label))), h("nv-popover", { ref: el => (this.popoverElement = el), triggerMode: "controlled", placement: "bottom-start", open: this.open }, h("div", { class: "input-wrapper-multiselect", slot: "trigger" }, h("slot", { name: "before-input" }), h("div", { class: "input-container-multiselect" }, h("slot", { name: "leading-input" }), (((_a = this.value) === null || _a === void 0 ? void 0 : _a.length) || 0) > 0 && (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 ? (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` })) : (h(Fragment, null, h("input", { id: this.inputId, type: "text", style: {
|
|
453
448
|
position: 'absolute',
|
|
454
449
|
opacity: '0',
|
|
455
450
|
width: '0',
|
|
@@ -458,14 +453,15 @@ const NvFieldmultiselect = class {
|
|
|
458
453
|
}, tabIndex: -1, "aria-hidden": "true", autoComplete: this.autocomplete, name: this.name, onFocus: this.handleInputFocusOptions }), 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" }, h("span", null, this.placeholder)))), this.error && (h("nv-icon", { name: "alert-circle", class: "validation", size: "md" })), this.filterable && this.filterText.length > 0 && (h("nv-iconbutton", { "data-scope": "clear-filter", name: "x", size: "md", emphasis: "lower", "aria-label": "Clear filter text", tabindex: "-1", title: "Clear filter text", onMouseDown: this.handleMouseDownPreventBlur, onClick: this.clearFilterText })), 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 })), h("slot", { name: "after-input" })), h("div", { id: `${this.inputId}-listbox`, slot: "content", style: this.maxHeight ? { maxHeight: this.maxHeight } : {}, onMouseDown: this.handleMouseDownPreventBlur }, this.shouldShowToggleAllOptionsButton() && (h("div", { class: "select-all-container" }, h("div", { class: "select-all-header" }, this.isSelectAllSectionVisible && (h("nv-fieldcheckbox", { checked: this.getSelectAllCheckboxStateOptions() === 'checked', indeterminate: this.getSelectAllCheckboxStateOptions() ===
|
|
459
454
|
'indeterminate', label: this.getSelectAllCheckboxStateOptions() === 'unchecked'
|
|
460
455
|
? this.selectAllLabel
|
|
461
|
-
: this.deselectAllLabel, onMouseDown: this.handleMouseDownPreventBlur, onClick: this.handleSelectAllCheckboxOptionsClick }))))), h("ul", { role: "listbox", "aria-multiselectable": "true" }, this.options.map(option => (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()));
|
|
456
|
+
: this.deselectAllLabel, onMouseDown: this.handleMouseDownPreventBlur, onClick: this.handleSelectAllCheckboxOptionsClick }))))), h("ul", { role: "listbox", "aria-multiselectable": "true" }, this.options.map(option => (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()));
|
|
462
457
|
};
|
|
463
458
|
/**
|
|
464
459
|
* Renders the component in slots mode
|
|
465
460
|
* @returns {any} The JSX for slots mode
|
|
466
461
|
*/
|
|
467
462
|
this.renderSlotsMode = () => {
|
|
468
|
-
|
|
463
|
+
var _a, _b, _c, _d;
|
|
464
|
+
return (h(Host, { "aria-label": this.label }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { htmlFor: this.inputId }, h("slot", { name: "label" }, this.label))), h("nv-popover", { ref: el => (this.popoverElement = el), triggerMode: "controlled", placement: "bottom-start", open: this.open }, h("div", { class: "input-wrapper-multiselect", slot: "trigger" }, h("slot", { name: "before-input" }), h("div", { class: "input-container-multiselect", onClick: this.handleInputContainerClickSlots }, h("slot", { name: "leading-input" }), (((_a = this.value) === null || _a === void 0 ? void 0 : _a.length) || 0) > 0 && (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 ? (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` })) : (h(Fragment, null, h("input", { id: this.inputId, type: "text", style: {
|
|
469
465
|
position: 'absolute',
|
|
470
466
|
opacity: '0',
|
|
471
467
|
width: '0',
|
|
@@ -485,7 +481,7 @@ const NvFieldmultiselect = class {
|
|
|
485
481
|
return;
|
|
486
482
|
// If the parent has set a value prop, use it. Otherwise, derive from checked options.
|
|
487
483
|
// (Assume: if value is undefined, it's not set by parent; if it's an array, it's set.)
|
|
488
|
-
if (this.value
|
|
484
|
+
if (!this.value || this.value.length === 0) {
|
|
489
485
|
this.value = newValue
|
|
490
486
|
.filter(option => option.checked)
|
|
491
487
|
.map(option => option.value);
|
|
@@ -493,7 +489,7 @@ const NvFieldmultiselect = class {
|
|
|
493
489
|
else {
|
|
494
490
|
// If value is set, ensure checked states in options match value
|
|
495
491
|
newValue.forEach(option => {
|
|
496
|
-
option.checked = this.value.includes(option.value);
|
|
492
|
+
option.checked = (this.value || []).includes(option.value);
|
|
497
493
|
});
|
|
498
494
|
}
|
|
499
495
|
this.reorderOptionsContent();
|
|
@@ -510,10 +506,24 @@ const NvFieldmultiselect = class {
|
|
|
510
506
|
// Also, update options checked state if options exist
|
|
511
507
|
if (this.options) {
|
|
512
508
|
this.options.forEach(option => {
|
|
513
|
-
option.checked = this.value.includes(option.value);
|
|
509
|
+
option.checked = (this.value || []).includes(option.value);
|
|
514
510
|
});
|
|
515
511
|
}
|
|
516
512
|
}
|
|
513
|
+
handleOpenChange(newOpen) {
|
|
514
|
+
// React to external changes, e.g., reorder or filter
|
|
515
|
+
if (newOpen) {
|
|
516
|
+
if (this.options) {
|
|
517
|
+
this.reorderOptionsContent();
|
|
518
|
+
}
|
|
519
|
+
else {
|
|
520
|
+
this.reorderSlotContent();
|
|
521
|
+
}
|
|
522
|
+
if (this.filterText) {
|
|
523
|
+
this.filterItems();
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
}
|
|
517
527
|
//#endregion WATCHERS
|
|
518
528
|
/****************************************************************************/
|
|
519
529
|
//#region LISTENERS
|
|
@@ -524,23 +534,33 @@ const NvFieldmultiselect = class {
|
|
|
524
534
|
handleOpenChanged(event) {
|
|
525
535
|
// Stop propagation to prevent the event from affecting parent components like dialogs
|
|
526
536
|
event.stopPropagation();
|
|
527
|
-
//
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
this.
|
|
537
|
+
// Only update if the event comes from our popover
|
|
538
|
+
if (event.target === this.popoverElement) {
|
|
539
|
+
// Only update if open state differs to avoid redundant actions
|
|
540
|
+
if (this.open !== event.detail) {
|
|
541
|
+
this.open = event.detail;
|
|
542
|
+
if (this.open) {
|
|
543
|
+
// Filter items only if there is filter text
|
|
544
|
+
if (this.filterText) {
|
|
545
|
+
this.filterItems();
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
else {
|
|
549
|
+
// Clear filter text on close if filterable
|
|
550
|
+
if (this.filterable) {
|
|
551
|
+
this.clearFilterText();
|
|
552
|
+
}
|
|
553
|
+
this.handlePopoverClose();
|
|
554
|
+
}
|
|
555
|
+
// Reorder content as needed
|
|
556
|
+
if (this.options) {
|
|
557
|
+
this.reorderOptionsContent();
|
|
558
|
+
}
|
|
559
|
+
else {
|
|
560
|
+
this.reorderSlotContent();
|
|
561
|
+
}
|
|
533
562
|
}
|
|
534
563
|
}
|
|
535
|
-
else {
|
|
536
|
-
this.handlePopoverClose();
|
|
537
|
-
}
|
|
538
|
-
if (this.options) {
|
|
539
|
-
this.reorderOptionsContent();
|
|
540
|
-
}
|
|
541
|
-
else {
|
|
542
|
-
this.reorderSlotContent();
|
|
543
|
-
}
|
|
544
564
|
}
|
|
545
565
|
/**
|
|
546
566
|
* Listen for the `itemChecked` event emitted by child items.
|
|
@@ -553,7 +573,7 @@ const NvFieldmultiselect = class {
|
|
|
553
573
|
}
|
|
554
574
|
const { value, checked } = event.detail;
|
|
555
575
|
if (value !== undefined && value !== null) {
|
|
556
|
-
const newValue = [...this.value];
|
|
576
|
+
const newValue = [...(this.value || [])];
|
|
557
577
|
const valueIndex = newValue.indexOf(value);
|
|
558
578
|
let hasChanged = false;
|
|
559
579
|
if (checked && valueIndex === -1) {
|
|
@@ -590,6 +610,86 @@ const NvFieldmultiselect = class {
|
|
|
590
610
|
});
|
|
591
611
|
}
|
|
592
612
|
}
|
|
613
|
+
/**
|
|
614
|
+
* Handle keyboard events & arrow key navigation.
|
|
615
|
+
* If the multiselect is not open, opens it and focuses on the first item if the list is not filterable.
|
|
616
|
+
* If the multiselect is open, handles arrow key navigation and closes it if the focus is outside the component.
|
|
617
|
+
* @param {KeyboardEvent} event - The keyboard event.
|
|
618
|
+
*/
|
|
619
|
+
async handleKeyDown(event) {
|
|
620
|
+
if (!this.open) {
|
|
621
|
+
if (event.key === 'ArrowDown') {
|
|
622
|
+
this.open = true;
|
|
623
|
+
// Focus on the first item if the list is not filterable
|
|
624
|
+
if (!this.filterable) {
|
|
625
|
+
requestAnimationFrame(() => {
|
|
626
|
+
this.focusFirstItem();
|
|
627
|
+
});
|
|
628
|
+
}
|
|
629
|
+
event.preventDefault();
|
|
630
|
+
return;
|
|
631
|
+
}
|
|
632
|
+
return;
|
|
633
|
+
}
|
|
634
|
+
const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitemcheck:not([style*="display: none"])'));
|
|
635
|
+
if (items.length === 0) {
|
|
636
|
+
console.warn('No visible items found to navigate');
|
|
637
|
+
return;
|
|
638
|
+
}
|
|
639
|
+
let currentIndex = items.findIndex(item => item.classList.contains('highlighted'));
|
|
640
|
+
if (event.key === 'ArrowDown') {
|
|
641
|
+
event.preventDefault();
|
|
642
|
+
currentIndex =
|
|
643
|
+
currentIndex === -1 ? 0 : (currentIndex + 1) % items.length;
|
|
644
|
+
this.updateHighlightedItem(items, currentIndex);
|
|
645
|
+
}
|
|
646
|
+
else if (event.key === 'ArrowUp') {
|
|
647
|
+
event.preventDefault();
|
|
648
|
+
currentIndex =
|
|
649
|
+
currentIndex === -1
|
|
650
|
+
? items.length - 1
|
|
651
|
+
: (currentIndex - 1 + items.length) % items.length;
|
|
652
|
+
this.updateHighlightedItem(items, currentIndex);
|
|
653
|
+
}
|
|
654
|
+
else if (event.key === 'Enter' && currentIndex >= 0) {
|
|
655
|
+
event.preventDefault();
|
|
656
|
+
const selectedItem = items[currentIndex];
|
|
657
|
+
// Toggle the checked state
|
|
658
|
+
const isCurrentlyChecked = selectedItem.hasAttribute('checked');
|
|
659
|
+
selectedItem.checked = !isCurrentlyChecked;
|
|
660
|
+
// Trigger a click event to ensure proper event handling
|
|
661
|
+
selectedItem.dispatchEvent(new MouseEvent('click', {
|
|
662
|
+
view: window,
|
|
663
|
+
bubbles: true,
|
|
664
|
+
cancelable: true,
|
|
665
|
+
}));
|
|
666
|
+
}
|
|
667
|
+
else if (event.key === 'Escape') {
|
|
668
|
+
event.preventDefault();
|
|
669
|
+
event.stopPropagation(); // Prevent the event from propagating to the popover
|
|
670
|
+
// Do the reorder and wait a bit before closing
|
|
671
|
+
const handleEscape = async () => {
|
|
672
|
+
this.isHandlingEscape = true; // Disable the hide listener
|
|
673
|
+
if (this.options) {
|
|
674
|
+
this.reorderOptionsContent();
|
|
675
|
+
}
|
|
676
|
+
else {
|
|
677
|
+
this.reorderSlotContent();
|
|
678
|
+
}
|
|
679
|
+
// Wait for the reorder to be applied
|
|
680
|
+
await new Promise(resolve => setTimeout(resolve, 100));
|
|
681
|
+
// Reactivate the hide listener after a short delay
|
|
682
|
+
setTimeout(() => {
|
|
683
|
+
this.isHandlingEscape = false;
|
|
684
|
+
this.open = false;
|
|
685
|
+
}, 150);
|
|
686
|
+
if (this.inputElement) {
|
|
687
|
+
this.inputElement.blur();
|
|
688
|
+
}
|
|
689
|
+
};
|
|
690
|
+
await handleEscape();
|
|
691
|
+
}
|
|
692
|
+
}
|
|
593
693
|
//#endregion LISTENERS
|
|
594
694
|
/****************************************************************************/
|
|
595
695
|
//#region LIFECYCLE
|
|
@@ -686,8 +786,8 @@ const NvFieldmultiselect = class {
|
|
|
686
786
|
if (emptyMessage)
|
|
687
787
|
emptyMessage.remove();
|
|
688
788
|
// Reorder with divider if needed
|
|
689
|
-
const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
690
|
-
const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
|
|
789
|
+
const selectedItems = items.filter(item => (this.value || []).includes(item.getAttribute('value') || ''));
|
|
790
|
+
const unselectedItems = items.filter(item => !(this.value || []).includes(item.getAttribute('value') || ''));
|
|
691
791
|
if (selectedItems.length > 0) {
|
|
692
792
|
this.manageDivider(ul, selectedItems, unselectedItems);
|
|
693
793
|
}
|
|
@@ -772,8 +872,8 @@ const NvFieldmultiselect = class {
|
|
|
772
872
|
return;
|
|
773
873
|
}
|
|
774
874
|
// Separate checked vs unchecked
|
|
775
|
-
const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
776
|
-
const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
|
|
875
|
+
const selectedItems = items.filter(item => (this.value || []).includes(item.getAttribute('value') || ''));
|
|
876
|
+
const unselectedItems = items.filter(item => !(this.value || []).includes(item.getAttribute('value') || ''));
|
|
777
877
|
// Reinsert CHECKED items FIRST
|
|
778
878
|
// appendChild() moves the element without recreating it
|
|
779
879
|
// this is not trigger a re-rendering of the component in the platforms
|
|
@@ -799,8 +899,8 @@ const NvFieldmultiselect = class {
|
|
|
799
899
|
if (!ul)
|
|
800
900
|
return;
|
|
801
901
|
const items = Array.from(ul.querySelectorAll('nv-fielddropdownitemcheck')).filter(item => item.style.display !== 'none');
|
|
802
|
-
const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
803
|
-
const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
|
|
902
|
+
const selectedItems = items.filter(item => (this.value || []).includes(item.getAttribute('value') || ''));
|
|
903
|
+
const unselectedItems = items.filter(item => !(this.value || []).includes(item.getAttribute('value') || ''));
|
|
804
904
|
// Reorder the elements
|
|
805
905
|
selectedItems.forEach(item => ul.appendChild(item));
|
|
806
906
|
unselectedItems.forEach(item => ul.appendChild(item));
|
|
@@ -836,8 +936,8 @@ const NvFieldmultiselect = class {
|
|
|
836
936
|
}
|
|
837
937
|
// Reorder with divider
|
|
838
938
|
const items = Array.from(ul.querySelectorAll('nv-fielddropdownitemcheck'));
|
|
839
|
-
const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
840
|
-
const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
|
|
939
|
+
const selectedItems = items.filter(item => (this.value || []).includes(item.getAttribute('value') || ''));
|
|
940
|
+
const unselectedItems = items.filter(item => !(this.value || []).includes(item.getAttribute('value') || ''));
|
|
841
941
|
this.manageDivider(ul, selectedItems, unselectedItems);
|
|
842
942
|
return;
|
|
843
943
|
}
|
|
@@ -858,8 +958,8 @@ const NvFieldmultiselect = class {
|
|
|
858
958
|
});
|
|
859
959
|
// Manage the divider with the visible items
|
|
860
960
|
const visibleItems = items.filter(item => item.style.display !== 'none');
|
|
861
|
-
const visibleSelected = visibleItems.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
862
|
-
const visibleUnselected = visibleItems.filter(item => !this.value.includes(item.getAttribute('value') || ''));
|
|
961
|
+
const visibleSelected = visibleItems.filter(item => (this.value || []).includes(item.getAttribute('value') || ''));
|
|
962
|
+
const visibleUnselected = visibleItems.filter(item => !(this.value || []).includes(item.getAttribute('value') || ''));
|
|
863
963
|
this.manageDivider(ul, visibleSelected, visibleUnselected);
|
|
864
964
|
}
|
|
865
965
|
else {
|
|
@@ -899,31 +999,39 @@ const NvFieldmultiselect = class {
|
|
|
899
999
|
const items = Array.from(ul.querySelectorAll('nv-fielddropdownitemcheck'));
|
|
900
1000
|
// Reset items if the filter text is empty
|
|
901
1001
|
if (!this.filterText.trim()) {
|
|
902
|
-
// Remove the empty message if it exists
|
|
903
1002
|
this.removeEmptyMessageOption(ul);
|
|
904
|
-
items.forEach(item =>
|
|
905
|
-
|
|
906
|
-
|
|
1003
|
+
items.forEach(item => {
|
|
1004
|
+
item.style.display = '';
|
|
1005
|
+
item.removeAttribute('aria-hidden'); // Ensure accessibility
|
|
1006
|
+
});
|
|
1007
|
+
this.reorderOptionsContent();
|
|
1008
|
+
this.hasFilterResults = true;
|
|
907
1009
|
return;
|
|
908
1010
|
}
|
|
909
1011
|
// Filter the items
|
|
910
1012
|
items.forEach(item => {
|
|
911
|
-
const
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
1013
|
+
const option = this.options.find(opt => opt.value === item.getAttribute('value'));
|
|
1014
|
+
if (option && !option.isDivider) {
|
|
1015
|
+
const matchesFilter = this.normalizeText(option.label).includes(normalizedFilter) ||
|
|
1016
|
+
this.normalizeText(option.value).includes(normalizedFilter);
|
|
1017
|
+
item.style.display = matchesFilter ? '' : 'none';
|
|
1018
|
+
item.setAttribute('aria-hidden', matchesFilter ? 'false' : 'true'); // Update accessibility
|
|
1019
|
+
if (matchesFilter)
|
|
1020
|
+
hasVisibleItems = true;
|
|
1021
|
+
}
|
|
1022
|
+
else {
|
|
1023
|
+
item.style.display = 'none'; // Hide dividers during filtering
|
|
1024
|
+
item.setAttribute('aria-hidden', 'true');
|
|
1025
|
+
}
|
|
918
1026
|
});
|
|
919
1027
|
// Update the filter results state
|
|
920
1028
|
this.hasFilterResults = hasVisibleItems;
|
|
921
1029
|
// Manage the divider with the visible items
|
|
922
1030
|
const visibleItems = items.filter(item => item.style.display !== 'none');
|
|
923
|
-
const visibleSelected = visibleItems.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
924
|
-
const visibleUnselected = visibleItems.filter(item => !this.value.includes(item.getAttribute('value') || ''));
|
|
1031
|
+
const visibleSelected = visibleItems.filter(item => (this.value || []).includes(item.getAttribute('value') || ''));
|
|
1032
|
+
const visibleUnselected = visibleItems.filter(item => !(this.value || []).includes(item.getAttribute('value') || ''));
|
|
925
1033
|
this.manageDivider(ul, visibleSelected, visibleUnselected);
|
|
926
|
-
// Add or remove the empty message
|
|
1034
|
+
// Add or remove the empty message
|
|
927
1035
|
if (!hasVisibleItems) {
|
|
928
1036
|
this.addEmptyMessageOption(ul);
|
|
929
1037
|
}
|
|
@@ -972,8 +1080,8 @@ const NvFieldmultiselect = class {
|
|
|
972
1080
|
this.hasFilterResults = hasVisibleItems;
|
|
973
1081
|
// Get visible items after filtering
|
|
974
1082
|
const visibleItems = items.filter(item => item.style.display !== 'none');
|
|
975
|
-
const visibleSelectedItems = visibleItems.filter(item => this.value.includes(item.getAttribute('value') || ''));
|
|
976
|
-
this.manageDivider(ul, visibleSelectedItems, visibleItems.filter(item => !this.value.includes(item.getAttribute('value') || '')));
|
|
1083
|
+
const visibleSelectedItems = visibleItems.filter(item => (this.value || []).includes(item.getAttribute('value') || ''));
|
|
1084
|
+
this.manageDivider(ul, visibleSelectedItems, visibleItems.filter(item => !(this.value || []).includes(item.getAttribute('value') || '')));
|
|
977
1085
|
// Add empty message if no items match the filter
|
|
978
1086
|
if (!hasVisibleItems) {
|
|
979
1087
|
const emptyMessage = document.createElement('li');
|
|
@@ -1014,86 +1122,6 @@ const NvFieldmultiselect = class {
|
|
|
1014
1122
|
}
|
|
1015
1123
|
this.open = false;
|
|
1016
1124
|
}
|
|
1017
|
-
/**
|
|
1018
|
-
* Handle keyboard events & arrow key navigation.
|
|
1019
|
-
* If the multiselect is not open, opens it and focuses on the first item if the list is not filterable.
|
|
1020
|
-
* If the multiselect is open, handles arrow key navigation and closes it if the focus is outside the component.
|
|
1021
|
-
* @param {KeyboardEvent} event - The keyboard event.
|
|
1022
|
-
*/
|
|
1023
|
-
async handleKeyDown(event) {
|
|
1024
|
-
if (!this.open) {
|
|
1025
|
-
if (event.key === 'ArrowDown') {
|
|
1026
|
-
this.open = true;
|
|
1027
|
-
// Focus on the first item if the list is not filterable
|
|
1028
|
-
if (!this.filterable) {
|
|
1029
|
-
requestAnimationFrame(() => {
|
|
1030
|
-
this.focusFirstItem();
|
|
1031
|
-
});
|
|
1032
|
-
}
|
|
1033
|
-
event.preventDefault();
|
|
1034
|
-
return;
|
|
1035
|
-
}
|
|
1036
|
-
return;
|
|
1037
|
-
}
|
|
1038
|
-
const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitemcheck:not([style*="display: none"])'));
|
|
1039
|
-
if (items.length === 0) {
|
|
1040
|
-
console.warn('No visible items found to navigate');
|
|
1041
|
-
return;
|
|
1042
|
-
}
|
|
1043
|
-
let currentIndex = items.findIndex(item => item.classList.contains('highlighted'));
|
|
1044
|
-
if (event.key === 'ArrowDown') {
|
|
1045
|
-
event.preventDefault();
|
|
1046
|
-
currentIndex =
|
|
1047
|
-
currentIndex === -1 ? 0 : (currentIndex + 1) % items.length;
|
|
1048
|
-
this.updateHighlightedItem(items, currentIndex);
|
|
1049
|
-
}
|
|
1050
|
-
else if (event.key === 'ArrowUp') {
|
|
1051
|
-
event.preventDefault();
|
|
1052
|
-
currentIndex =
|
|
1053
|
-
currentIndex === -1
|
|
1054
|
-
? items.length - 1
|
|
1055
|
-
: (currentIndex - 1 + items.length) % items.length;
|
|
1056
|
-
this.updateHighlightedItem(items, currentIndex);
|
|
1057
|
-
}
|
|
1058
|
-
else if (event.key === 'Enter' && currentIndex >= 0) {
|
|
1059
|
-
event.preventDefault();
|
|
1060
|
-
const selectedItem = items[currentIndex];
|
|
1061
|
-
// Toggle the checked state
|
|
1062
|
-
const isCurrentlyChecked = selectedItem.hasAttribute('checked');
|
|
1063
|
-
selectedItem.checked = !isCurrentlyChecked;
|
|
1064
|
-
// Trigger a click event to ensure proper event handling
|
|
1065
|
-
selectedItem.dispatchEvent(new MouseEvent('click', {
|
|
1066
|
-
view: window,
|
|
1067
|
-
bubbles: true,
|
|
1068
|
-
cancelable: true,
|
|
1069
|
-
}));
|
|
1070
|
-
}
|
|
1071
|
-
else if (event.key === 'Escape') {
|
|
1072
|
-
event.preventDefault();
|
|
1073
|
-
event.stopPropagation(); // Prevent the event from propagating to the popover
|
|
1074
|
-
// Do the reorder and wait a bit before closing
|
|
1075
|
-
const handleEscape = async () => {
|
|
1076
|
-
this.isHandlingEscape = true; // Disable the hide listener
|
|
1077
|
-
if (this.options) {
|
|
1078
|
-
this.reorderOptionsContent();
|
|
1079
|
-
}
|
|
1080
|
-
else {
|
|
1081
|
-
this.reorderSlotContent();
|
|
1082
|
-
}
|
|
1083
|
-
// Wait for the reorder to be applied
|
|
1084
|
-
await new Promise(resolve => setTimeout(resolve, 100));
|
|
1085
|
-
// Reactivate the hide listener after a short delay
|
|
1086
|
-
setTimeout(() => {
|
|
1087
|
-
this.isHandlingEscape = false;
|
|
1088
|
-
this.open = false;
|
|
1089
|
-
}, 150);
|
|
1090
|
-
if (this.inputElement) {
|
|
1091
|
-
this.inputElement.blur();
|
|
1092
|
-
}
|
|
1093
|
-
};
|
|
1094
|
-
await handleEscape();
|
|
1095
|
-
}
|
|
1096
|
-
}
|
|
1097
1125
|
/**
|
|
1098
1126
|
* Updates the highlighted item in the dropdown list.
|
|
1099
1127
|
*
|
|
@@ -1183,7 +1211,7 @@ const NvFieldmultiselect = class {
|
|
|
1183
1211
|
items.forEach(item => {
|
|
1184
1212
|
// Get the effective value: use explicit value if present, otherwise use label
|
|
1185
1213
|
const itemValue = item.getAttribute('value') || item.getAttribute('label') || '';
|
|
1186
|
-
const shouldBeChecked = this.value.includes(itemValue);
|
|
1214
|
+
const shouldBeChecked = (this.value || []).includes(itemValue);
|
|
1187
1215
|
// Only update if the checked state differs to avoid triggering unnecessary events
|
|
1188
1216
|
if (item.checked !== shouldBeChecked) {
|
|
1189
1217
|
// Set attribute and property, but avoid triggering itemChecked during bulk
|
|
@@ -1223,8 +1251,10 @@ const NvFieldmultiselect = class {
|
|
|
1223
1251
|
getVisibleEnabledOptionItems() {
|
|
1224
1252
|
const allItems = Array.from(this.el.querySelectorAll('nv-fielddropdownitemcheck'));
|
|
1225
1253
|
const visibleItems = allItems.filter(item => {
|
|
1226
|
-
const isHidden = item.style.display === 'none'
|
|
1227
|
-
|
|
1254
|
+
const isHidden = item.style.display === 'none' ||
|
|
1255
|
+
item.getAttribute('aria-hidden') === 'true';
|
|
1256
|
+
const isDisabled = item.hasAttribute('disabled') ||
|
|
1257
|
+
item.getAttribute('disabled') === 'true';
|
|
1228
1258
|
return !isHidden && !isDisabled;
|
|
1229
1259
|
});
|
|
1230
1260
|
return visibleItems
|
|
@@ -1251,7 +1281,7 @@ const NvFieldmultiselect = class {
|
|
|
1251
1281
|
const visibleOptionValues = this.getVisibleEnabledOptionItems();
|
|
1252
1282
|
if (visibleOptionValues.length === 0)
|
|
1253
1283
|
return 'unchecked';
|
|
1254
|
-
const selectedVisibleOptions = visibleOptionValues.filter(value => this.value.includes(value));
|
|
1284
|
+
const selectedVisibleOptions = visibleOptionValues.filter(value => (this.value || []).includes(value));
|
|
1255
1285
|
if (selectedVisibleOptions.length === 0)
|
|
1256
1286
|
return 'unchecked';
|
|
1257
1287
|
if (selectedVisibleOptions.length === visibleOptionValues.length)
|
|
@@ -1271,7 +1301,7 @@ const NvFieldmultiselect = class {
|
|
|
1271
1301
|
return 'unchecked';
|
|
1272
1302
|
const selectedItems = items.filter(item => {
|
|
1273
1303
|
const itemValue = item.getAttribute('value') || item.getAttribute('label') || '';
|
|
1274
|
-
return itemValue !== '' && this.value.includes(itemValue);
|
|
1304
|
+
return itemValue !== '' && (this.value || []).includes(itemValue);
|
|
1275
1305
|
});
|
|
1276
1306
|
if (selectedItems.length === 0)
|
|
1277
1307
|
return 'unchecked';
|
|
@@ -1322,7 +1352,8 @@ const NvFieldmultiselect = class {
|
|
|
1322
1352
|
get el() { return getElement(this); }
|
|
1323
1353
|
static get watchers() { return {
|
|
1324
1354
|
"options": ["handleOptionsChange"],
|
|
1325
|
-
"value": ["watchValueHandler"]
|
|
1355
|
+
"value": ["watchValueHandler"],
|
|
1356
|
+
"open": ["handleOpenChange"]
|
|
1326
1357
|
}; }
|
|
1327
1358
|
};
|
|
1328
1359
|
NvFieldmultiselect.style = NvFieldmultiselectStyle0;
|