@nova-design-system/nova-webcomponents 3.0.0-beta.44 → 3.0.0-beta.45
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/loader.cjs.js +1 -1
- package/dist/cjs/native.cjs.js +1 -1
- package/dist/cjs/nv-badge_2.cjs.entry.js +5 -4
- package/dist/cjs/nv-badge_2.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-base.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 +5 -3
- package/dist/cjs/nv-button.cjs.entry.js.map +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 +30 -3
- 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 +16 -12
- package/dist/cjs/nv-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-dialogfooter_2.cjs.entry.js +2 -2
- package/dist/cjs/nv-fieldcheckbox.cjs.entry.js +5 -5
- package/dist/cjs/nv-fieldcheckbox.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fielddate.cjs.entry.js +5 -5
- package/dist/cjs/nv-fielddaterange.cjs.entry.js +4 -4
- package/dist/cjs/nv-fielddropdown.cjs.entry.js +3 -3
- package/dist/cjs/nv-fielddropdownitem.cjs.entry.js +1 -1
- package/dist/cjs/nv-fieldmultiselect.cjs.entry.js +6 -48
- package/dist/cjs/nv-fieldmultiselect.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-fieldnumber.cjs.entry.js +3 -3
- package/dist/cjs/nv-fieldpassword.cjs.entry.js +3 -3
- package/dist/cjs/nv-fieldradio.cjs.entry.js +3 -3
- package/dist/cjs/nv-fieldselect.cjs.entry.js +5 -5
- package/dist/cjs/nv-fieldtext.cjs.entry.js +3 -3
- package/dist/cjs/nv-fieldtextarea.cjs.entry.js +3 -3
- package/dist/cjs/nv-fieldtime.cjs.entry.js +9 -9
- package/dist/cjs/nv-icon.cjs.entry.js +1 -1
- package/dist/cjs/nv-iconbutton_2.cjs.entry.js +2 -2
- package/dist/cjs/nv-menu.cjs.entry.js +1 -1
- package/dist/cjs/nv-menuitem.cjs.entry.js +1 -1
- package/dist/cjs/nv-popover.cjs.entry.js +11 -9
- package/dist/cjs/nv-popover.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-row.cjs.entry.js +1 -1
- package/dist/cjs/nv-stack.cjs.entry.js +1 -1
- package/dist/cjs/nv-table.cjs.entry.js +2 -2
- package/dist/cjs/nv-toggle.cjs.entry.js +3 -3
- package/dist/cjs/nv-toggle.cjs.entry.js.map +1 -1
- package/dist/cjs/nv-tooltip.cjs.entry.js +1 -1
- package/dist/collection/components/nv-badge/nv-badge.css +11 -0
- package/dist/collection/components/nv-badge/nv-badge.js +3 -3
- package/dist/collection/components/nv-badge/nv-badge.js.map +1 -1
- package/dist/collection/components/nv-base/nv-base.js +1 -1
- package/dist/collection/components/nv-breadcrumb/nv-breadcrumb.css +11 -0
- package/dist/collection/components/nv-breadcrumb/nv-breadcrumb.js +1 -1
- package/dist/collection/components/nv-breadcrumbs/nv-breadcrumbs.js +1 -1
- package/dist/collection/components/nv-button/nv-button.js +5 -3
- package/dist/collection/components/nv-button/nv-button.js.map +1 -1
- package/dist/collection/components/nv-calendar/nv-calendar.js +1 -1
- package/dist/collection/components/nv-col/nv-col.js +1 -1
- package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js +13 -2
- package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js.map +1 -1
- package/dist/collection/components/nv-datagrid/nv-datagrid.js +53 -3
- package/dist/collection/components/nv-datagrid/nv-datagrid.js.map +1 -1
- package/dist/collection/components/nv-datagridcolumn/nv-datagridcolumn.js +1 -1
- package/dist/collection/components/nv-dialog/nv-dialog.js +24 -17
- package/dist/collection/components/nv-dialog/nv-dialog.js.map +1 -1
- package/dist/collection/components/nv-dialogfooter/nv-dialogfooter.js +1 -1
- package/dist/collection/components/nv-dialogheader/nv-dialogheader.js +1 -1
- package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.css +11 -0
- package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.js +4 -4
- package/dist/collection/components/nv-fielddate/nv-fielddate.js +5 -5
- package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js +4 -4
- package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js +4 -4
- package/dist/collection/components/nv-fielddropdownitem/nv-fielddropdownitem.js +1 -1
- package/dist/collection/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.js +1 -1
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js +6 -48
- package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js.map +1 -1
- package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js +3 -3
- package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.js +3 -3
- package/dist/collection/components/nv-fieldradio/nv-fieldradio.js +3 -3
- package/dist/collection/components/nv-fieldselect/nv-fieldselect.js +5 -5
- package/dist/collection/components/nv-fieldtext/nv-fieldtext.js +3 -3
- package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.js +3 -3
- package/dist/collection/components/nv-fieldtime/nv-fieldtime.js +9 -9
- package/dist/collection/components/nv-icon/nv-icon.docs.js +1 -0
- package/dist/collection/components/nv-icon/nv-icon.docs.js.map +1 -1
- package/dist/collection/components/nv-icon/nv-icon.js +1 -1
- package/dist/collection/components/nv-iconbutton/nv-iconbutton.js +1 -1
- package/dist/collection/components/nv-loader/nv-loader.js +1 -1
- package/dist/collection/components/nv-menu/nv-menu.js +2 -2
- package/dist/collection/components/nv-menuitem/nv-menuitem.js +2 -2
- package/dist/collection/components/nv-popover/nv-popover.js +11 -9
- 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.js +2 -2
- package/dist/collection/components/nv-toggle/nv-toggle.css +11 -0
- package/dist/collection/components/nv-toggle/nv-toggle.js +2 -2
- package/dist/collection/components/nv-tooltip/nv-tooltip.js +1 -1
- package/dist/components/nv-alert.js +1 -1
- package/dist/components/nv-avatar.js +1 -1
- package/dist/components/nv-badge.js +1 -1
- package/dist/components/nv-base.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-calendar.js +1 -1
- package/dist/components/nv-col.js +1 -1
- package/dist/components/nv-datagrid.js +31 -3
- package/dist/components/nv-datagrid.js.map +1 -1
- package/dist/components/nv-datagridcolumn.js +1 -1
- package/dist/components/nv-dialog.js +22 -18
- 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 +12 -12
- package/dist/components/nv-fielddaterange.js +11 -11
- package/dist/components/nv-fielddropdown.js +8 -8
- package/dist/components/nv-fielddropdownitem.js +1 -1
- package/dist/components/nv-fielddropdownitemcheck.js +1 -1
- package/dist/components/nv-fieldmultiselect.js +13 -55
- package/dist/components/nv-fieldmultiselect.js.map +1 -1
- package/dist/components/nv-fieldnumber.js +6 -6
- package/dist/components/nv-fieldpassword.js +6 -6
- package/dist/components/nv-fieldradio.js +3 -3
- package/dist/components/nv-fieldselect.js +8 -8
- package/dist/components/nv-fieldtext.js +4 -4
- package/dist/components/nv-fieldtextarea.js +3 -3
- package/dist/components/nv-fieldtime.js +13 -13
- package/dist/components/nv-icon.js +1 -1
- package/dist/components/nv-iconbutton.js +1 -1
- package/dist/components/nv-loader.js +1 -1
- package/dist/components/nv-menu.js +4 -4
- package/dist/components/nv-menuitem.js +1 -1
- package/dist/components/nv-popover.js +1 -1
- package/dist/components/nv-row.js +1 -1
- package/dist/components/nv-stack.js +1 -1
- package/dist/components/nv-table.js +2 -2
- package/dist/components/nv-toggle.js +3 -3
- package/dist/components/nv-toggle.js.map +1 -1
- package/dist/components/nv-tooltip.js +1 -1
- package/dist/components/{p-cd083aba.js → p-0f59f38e.js} +6 -5
- package/dist/components/p-0f59f38e.js.map +1 -0
- package/dist/components/{p-0631d152.js → p-103756d6.js} +7 -5
- package/dist/components/p-103756d6.js.map +1 -0
- package/dist/components/{p-293e1a5c.js → p-3561c093.js} +3 -3
- package/dist/components/{p-293e1a5c.js.map → p-3561c093.js.map} +1 -1
- package/dist/components/{p-6726f512.js → p-3a3ba5b1.js} +2 -2
- package/dist/components/{p-6726f512.js.map → p-3a3ba5b1.js.map} +1 -1
- package/dist/components/{p-3a74719c.js → p-3b096098.js} +4 -4
- package/dist/components/{p-3a74719c.js.map → p-3b096098.js.map} +1 -1
- package/dist/components/{p-543082ff.js → p-4c6d8df7.js} +2 -2
- package/dist/components/{p-543082ff.js.map → p-4c6d8df7.js.map} +1 -1
- package/dist/components/{p-23b6b33b.js → p-78b00756.js} +2 -2
- package/dist/components/{p-23b6b33b.js.map → p-78b00756.js.map} +1 -1
- package/dist/components/{p-016dbae8.js → p-78e0e7b0.js} +6 -6
- package/dist/components/{p-016dbae8.js.map → p-78e0e7b0.js.map} +1 -1
- package/dist/components/{p-e66d6274.js → p-863974b2.js} +3 -3
- package/dist/components/{p-e66d6274.js.map → p-863974b2.js.map} +1 -1
- package/dist/components/{p-e7f21fe7.js → p-8ea5e3c0.js} +3 -3
- package/dist/components/{p-e7f21fe7.js.map → p-8ea5e3c0.js.map} +1 -1
- package/dist/components/{p-d552352b.js → p-933d4d06.js} +6 -6
- package/dist/components/p-933d4d06.js.map +1 -0
- package/dist/components/{p-e40363fd.js → p-aeeb5b1c.js} +2 -2
- package/dist/components/{p-e40363fd.js.map → p-aeeb5b1c.js.map} +1 -1
- package/dist/components/{p-3a990da7.js → p-b5821dbb.js} +5 -5
- package/dist/components/{p-3a990da7.js.map → p-b5821dbb.js.map} +1 -1
- package/dist/components/{p-62f6da8a.js → p-e46c2e31.js} +12 -10
- package/dist/components/p-e46c2e31.js.map +1 -0
- package/dist/components/{p-b2d2fd35.js → p-ef255589.js} +3 -3
- package/dist/components/{p-b2d2fd35.js.map → p-ef255589.js.map} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/native.js +1 -1
- package/dist/esm/nv-badge_2.entry.js +5 -4
- package/dist/esm/nv-badge_2.entry.js.map +1 -1
- package/dist/esm/nv-base.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 +5 -3
- package/dist/esm/nv-button.entry.js.map +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 +30 -3
- 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 +16 -12
- package/dist/esm/nv-dialog.entry.js.map +1 -1
- package/dist/esm/nv-dialogfooter_2.entry.js +2 -2
- package/dist/esm/nv-fieldcheckbox.entry.js +5 -5
- package/dist/esm/nv-fieldcheckbox.entry.js.map +1 -1
- package/dist/esm/nv-fielddate.entry.js +5 -5
- package/dist/esm/nv-fielddaterange.entry.js +4 -4
- package/dist/esm/nv-fielddropdown.entry.js +3 -3
- package/dist/esm/nv-fielddropdownitem.entry.js +1 -1
- package/dist/esm/nv-fieldmultiselect.entry.js +6 -48
- package/dist/esm/nv-fieldmultiselect.entry.js.map +1 -1
- package/dist/esm/nv-fieldnumber.entry.js +3 -3
- package/dist/esm/nv-fieldpassword.entry.js +3 -3
- package/dist/esm/nv-fieldradio.entry.js +3 -3
- package/dist/esm/nv-fieldselect.entry.js +5 -5
- package/dist/esm/nv-fieldtext.entry.js +3 -3
- package/dist/esm/nv-fieldtextarea.entry.js +3 -3
- package/dist/esm/nv-fieldtime.entry.js +9 -9
- package/dist/esm/nv-icon.entry.js +1 -1
- package/dist/esm/nv-iconbutton_2.entry.js +2 -2
- package/dist/esm/nv-menu.entry.js +1 -1
- package/dist/esm/nv-menuitem.entry.js +1 -1
- package/dist/esm/nv-popover.entry.js +11 -9
- package/dist/esm/nv-popover.entry.js.map +1 -1
- package/dist/esm/nv-row.entry.js +1 -1
- package/dist/esm/nv-stack.entry.js +1 -1
- package/dist/esm/nv-table.entry.js +2 -2
- package/dist/esm/nv-toggle.entry.js +3 -3
- package/dist/esm/nv-toggle.entry.js.map +1 -1
- package/dist/esm/nv-tooltip.entry.js +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-0172095c.entry.js +2 -0
- package/dist/native/p-0172095c.entry.js.map +1 -0
- package/dist/native/{p-ddb4fcc3.entry.js → p-162f4840.entry.js} +2 -2
- package/dist/native/p-162f4840.entry.js.map +1 -0
- package/dist/native/{p-ede0c391.entry.js → p-17bf1233.entry.js} +2 -2
- package/dist/native/p-17bf1233.entry.js.map +1 -0
- package/dist/native/p-19fd6594.entry.js +2 -0
- package/dist/native/p-19fd6594.entry.js.map +1 -0
- package/dist/native/p-1a46cb52.entry.js +2 -0
- package/dist/native/{p-4d2adf8c.entry.js → p-2281d5ef.entry.js} +2 -2
- package/dist/native/{p-4c88e8be.entry.js → p-31184fdd.entry.js} +2 -2
- package/dist/native/{p-d987271c.entry.js → p-314d2b34.entry.js} +2 -2
- package/dist/native/p-331da074.entry.js +2 -0
- package/dist/native/{p-a3ea7b59.entry.js → p-332c5d6c.entry.js} +2 -2
- package/dist/native/{p-dcfef507.entry.js → p-3af5bcc1.entry.js} +2 -2
- package/dist/native/{p-9fe6a9b7.entry.js → p-40f4a6e7.entry.js} +2 -2
- package/dist/native/p-42d020a7.entry.js +2 -0
- package/dist/native/p-42d020a7.entry.js.map +1 -0
- package/dist/native/{p-adf0f628.entry.js → p-4403e3af.entry.js} +2 -2
- package/dist/native/{p-ac72abfc.entry.js → p-442f04f9.entry.js} +2 -2
- package/dist/native/p-45577c7f.entry.js +2 -0
- package/dist/native/{p-4b6d3739.entry.js.map → p-45577c7f.entry.js.map} +1 -1
- package/dist/native/{p-794b7820.entry.js → p-464ef88f.entry.js} +2 -2
- package/dist/native/p-46aa1136.entry.js +2 -0
- package/dist/native/{p-39fd54e3.entry.js → p-514101d6.entry.js} +2 -2
- package/dist/native/{p-ca1eff59.entry.js → p-54b6ce07.entry.js} +2 -2
- package/dist/native/{p-a6834c17.entry.js → p-603a99ed.entry.js} +2 -2
- package/dist/native/{p-a6834c17.entry.js.map → p-603a99ed.entry.js.map} +1 -1
- package/dist/native/p-665db087.entry.js +2 -0
- package/dist/native/{p-16b38dc2.entry.js → p-725e0abd.entry.js} +2 -2
- package/dist/native/{p-2b584e35.entry.js → p-7fade532.entry.js} +2 -2
- package/dist/native/{p-4eb132d3.entry.js → p-942f8e92.entry.js} +2 -2
- package/dist/native/p-abeda2cf.entry.js +7 -0
- package/dist/native/p-abeda2cf.entry.js.map +1 -0
- package/dist/native/{p-552ca13e.entry.js → p-c10e5113.entry.js} +2 -2
- package/dist/native/{p-ffcf8271.entry.js → p-d9624254.entry.js} +2 -2
- package/dist/native/p-d9624254.entry.js.map +1 -0
- package/dist/native/{p-5e04b50f.entry.js → p-e197d90b.entry.js} +2 -2
- package/dist/native/{p-569e9663.entry.js → p-e6904ae4.entry.js} +2 -2
- package/dist/native/{p-657a0b8a.entry.js → p-ecc28398.entry.js} +2 -2
- package/dist/native/p-f01a34c5.entry.js +2 -0
- package/dist/native/p-f01a34c5.entry.js.map +1 -0
- package/dist/native/{p-870d5a5c.entry.js → p-f5e0d5c5.entry.js} +2 -2
- package/dist/native/p-f89b7d06.entry.js +2 -0
- package/dist/types/components/nv-badge/nv-badge.d.ts +0 -1
- package/dist/types/components/nv-base/nv-base.docs.d.ts +1 -1
- package/dist/types/components/nv-datagrid/nv-datagrid.d.ts +6 -0
- package/dist/types/components/nv-dialog/nv-dialog.d.ts +4 -3
- package/dist/types/components/nv-fieldmultiselect/nv-fieldmultiselect.d.ts +1 -1
- package/dist/types/components.d.ts +25 -6
- package/dist/types/nova-docs.d.ts +6 -0
- package/dist/vscode-data.json +34 -30
- package/hydrate/index.js +145 -151
- package/hydrate/index.mjs +145 -151
- package/package.json +10 -10
- package/dist/blazor-docs.json +0 -18738
- package/dist/components/p-0631d152.js.map +0 -1
- package/dist/components/p-62f6da8a.js.map +0 -1
- package/dist/components/p-cd083aba.js.map +0 -1
- package/dist/components/p-d552352b.js.map +0 -1
- package/dist/docs.d.ts +0 -443
- package/dist/docs.json +0 -18538
- package/dist/native/p-1d5b6c6d.entry.js +0 -2
- package/dist/native/p-3a47035f.entry.js +0 -2
- package/dist/native/p-4b6d3739.entry.js +0 -2
- package/dist/native/p-4c96b614.entry.js +0 -2
- package/dist/native/p-8ae27c0a.entry.js +0 -2
- package/dist/native/p-8ae27c0a.entry.js.map +0 -1
- package/dist/native/p-c84eb11f.entry.js +0 -7
- package/dist/native/p-c84eb11f.entry.js.map +0 -1
- package/dist/native/p-cce90f27.entry.js +0 -2
- package/dist/native/p-cce90f27.entry.js.map +0 -1
- package/dist/native/p-d3d664c7.entry.js +0 -2
- package/dist/native/p-d7b5ab6e.entry.js +0 -2
- package/dist/native/p-d7b5ab6e.entry.js.map +0 -1
- package/dist/native/p-ddb4fcc3.entry.js.map +0 -1
- package/dist/native/p-ed595c96.entry.js +0 -2
- package/dist/native/p-ed595c96.entry.js.map +0 -1
- package/dist/native/p-ede0c391.entry.js.map +0 -1
- package/dist/native/p-efb52057.entry.js +0 -2
- package/dist/native/p-ffcf8271.entry.js.map +0 -1
- /package/dist/native/{p-efb52057.entry.js.map → p-1a46cb52.entry.js.map} +0 -0
- /package/dist/native/{p-4d2adf8c.entry.js.map → p-2281d5ef.entry.js.map} +0 -0
- /package/dist/native/{p-4c88e8be.entry.js.map → p-31184fdd.entry.js.map} +0 -0
- /package/dist/native/{p-d987271c.entry.js.map → p-314d2b34.entry.js.map} +0 -0
- /package/dist/native/{p-3a47035f.entry.js.map → p-331da074.entry.js.map} +0 -0
- /package/dist/native/{p-a3ea7b59.entry.js.map → p-332c5d6c.entry.js.map} +0 -0
- /package/dist/native/{p-dcfef507.entry.js.map → p-3af5bcc1.entry.js.map} +0 -0
- /package/dist/native/{p-9fe6a9b7.entry.js.map → p-40f4a6e7.entry.js.map} +0 -0
- /package/dist/native/{p-adf0f628.entry.js.map → p-4403e3af.entry.js.map} +0 -0
- /package/dist/native/{p-ac72abfc.entry.js.map → p-442f04f9.entry.js.map} +0 -0
- /package/dist/native/{p-794b7820.entry.js.map → p-464ef88f.entry.js.map} +0 -0
- /package/dist/native/{p-4c96b614.entry.js.map → p-46aa1136.entry.js.map} +0 -0
- /package/dist/native/{p-39fd54e3.entry.js.map → p-514101d6.entry.js.map} +0 -0
- /package/dist/native/{p-ca1eff59.entry.js.map → p-54b6ce07.entry.js.map} +0 -0
- /package/dist/native/{p-1d5b6c6d.entry.js.map → p-665db087.entry.js.map} +0 -0
- /package/dist/native/{p-16b38dc2.entry.js.map → p-725e0abd.entry.js.map} +0 -0
- /package/dist/native/{p-2b584e35.entry.js.map → p-7fade532.entry.js.map} +0 -0
- /package/dist/native/{p-4eb132d3.entry.js.map → p-942f8e92.entry.js.map} +0 -0
- /package/dist/native/{p-552ca13e.entry.js.map → p-c10e5113.entry.js.map} +0 -0
- /package/dist/native/{p-5e04b50f.entry.js.map → p-e197d90b.entry.js.map} +0 -0
- /package/dist/native/{p-569e9663.entry.js.map → p-e6904ae4.entry.js.map} +0 -0
- /package/dist/native/{p-657a0b8a.entry.js.map → p-ecc28398.entry.js.map} +0 -0
- /package/dist/native/{p-870d5a5c.entry.js.map → p-f5e0d5c5.entry.js.map} +0 -0
- /package/dist/native/{p-d3d664c7.entry.js.map → p-f89b7d06.entry.js.map} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as n,c as e,h as r,a as i,g as o}from"./p-ab002252.js";import{v as t}from"./p-f5ff676c.js";const a='nv-fieldnumber {\n --nv-field-border-default: var(--components-form-field-border-default);\n --nv-field-border-hover: var(--components-form-field-border-hover);\n --nv-field-border-focus: var(--components-form-field-border-focus);\n --nv-field-border-disabled: var(--components-form-field-border-default);\n --nv-field-border-readonly: var(--components-form-field-border-default);\n --nv-field-focus-box-shadow: var(--color-focus-brand);\n --nv-field-background: var(--components-form-field-background-default);\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--form-gap-y);\n box-sizing: border-box;\n}\nnv-fieldnumber[readonly]:not([readonly=false]) {\n --nv-field-border-default: var(--components-form-field-border-readonly);\n --nv-field-border-hover: var(--nv-field-border-default);\n --nv-field-border-focus: var(--components-form-field-border-focus);\n --nv-field-border-disabled: var(--nv-field-border-default);\n --nv-field-border-readonly: var(--nv-field-border-default);\n --nv-field-background: var(--components-form-field-background-readonly);\n}\nnv-fieldnumber[error]:not([error=false]) {\n --nv-field-border-default: var(--components-form-field-border-error);\n --nv-field-border-hover: var(--nv-field-border-default);\n --nv-field-border-focus: var(--nv-field-border-default);\n --nv-field-border-disabled: var(--nv-field-border-default);\n --nv-field-border-readonly: var(--nv-field-border-default);\n --nv-field-focus-box-shadow: var(--color-focus-destructive);\n}\nnv-fieldnumber[success]:not([success=false]) {\n --nv-field-border-default: var(--components-form-field-border-success);\n --nv-field-border-hover: var(--nv-field-border-default);\n --nv-field-border-focus: var(--nv-field-border-default);\n --nv-field-border-disabled: var(--nv-field-border-default);\n --nv-field-border-readonly: var(--nv-field-border-default);\n --nv-field-focus-box-shadow: var(--color-focus-success);\n}\nnv-fieldnumber[required]:not([required=false]) label::after {\n content: "*";\n color: var(--components-form-text-required);\n font-weight: 700;\n}\nnv-fieldnumber label {\n display: flex;\n align-items: center;\n gap: var(--form-label-gap);\n align-self: stretch;\n color: var(--components-form-text-label-default);\n font-family: "TT Norms Pro", sans-serif;\n font-size: var(--form-label-font-size);\n font-style: normal;\n font-weight: 500;\n line-height: var(--form-label-line-height);\n}\nnv-fieldnumber .input-wrapper {\n display: flex;\n flex-wrap: wrap;\n gap: var(--form-gap-x);\n align-items: stretch;\n align-self: stretch;\n}\nnv-fieldnumber .input-wrapper .input-container {\n display: flex;\n flex-grow: 1;\n justify-content: center;\n align-items: center;\n align-self: stretch;\n border-radius: var(--form-field-radius);\n border-width: 1px;\n border-style: solid;\n border-color: var(--nv-field-border-default);\n opacity: var(--components-form-opacity-default, 1);\n background: var(--nv-field-background);\n transition: all 150ms ease-out;\n container-type: inline-size;\n container-name: field-number-input-container;\n overflow: hidden;\n position: relative;\n}\nnv-fieldnumber .input-wrapper .input-container:hover {\n border-color: var(--nv-field-border-hover);\n}\nnv-fieldnumber .input-wrapper .input-container:focus-within, nv-fieldnumber .input-wrapper .input-container:focus-within:hover, nv-fieldnumber .input-wrapper .input-container:focus, nv-fieldnumber .input-wrapper .input-container:focus:hover {\n border-color: var(--nv-field-border-focus);\n box-shadow: 0px 0px 0px var(--focus-field-stroke) var(--nv-field-focus-box-shadow);\n}\nnv-fieldnumber .input-wrapper .input-container:has(input:read-only) {\n opacity: 0.5;\n background-color: var(--components-form-field-background-readonly);\n border-color: var(--nv-field-border-readonly);\n}\nnv-fieldnumber .input-wrapper .input-container:has(input:disabled) {\n opacity: 0.5;\n background-color: var(--components-form-field-background-disabled);\n border-color: var(--nv-field-border-disabled);\n}\nnv-fieldnumber .input-wrapper .input-container input {\n display: flex;\n align-items: center;\n flex: 1 0 0;\n overflow: hidden;\n background-color: transparent;\n color: var(--components-form-field-content-text);\n padding: var(--form-field-padding-y) var(--form-field-padding-x);\n font-size: var(--form-field-font-size);\n font-style: normal;\n font-weight: 500;\n line-height: var(--form-field-line-height);\n width: 100%;\n appearance: textfield;\n}\nnv-fieldnumber .input-wrapper .input-container input:focus {\n outline: none;\n}\nnv-fieldnumber .input-wrapper .input-container input::placeholder {\n overflow: hidden;\n color: var(--components-form-field-content-placeholder);\n text-overflow: ellipsis;\n font-family: "TT Norms Pro", sans-serif;\n font-size: var(--form-field-font-size);\n font-style: normal;\n font-weight: 400;\n line-height: var(--form-field-line-height);\n}\nnv-fieldnumber .input-wrapper .input-container input::-webkit-inner-spin-button, nv-fieldnumber .input-wrapper .input-container input::-webkit-outer-spin-button {\n appearance: none;\n margin: 0;\n}\nnv-fieldnumber .input-wrapper .input-container nv-icon.validation {\n color: var(--nv-field-border-default);\n margin-right: var(--form-field-gap);\n}\nnv-fieldnumber .input-wrapper .input-container > nv-iconbutton {\n border: 0px;\n border-radius: 0px;\n}\nnv-fieldnumber .input-wrapper .input-container > nv-iconbutton:focus-visible {\n border-radius: var(--button-md-border-radius);\n outline-offset: -3px;\n}\nnv-fieldnumber .input-wrapper .input-container .stepper {\n display: flex;\n border-left: var(--notification-border-width-low-emphasis) solid var(--components-form-field-border-readonly);\n}\nnv-fieldnumber .input-wrapper .input-container .stepper > nv-iconbutton {\n border: 0px;\n border-radius: 0px;\n border-radius: 0px;\n}\nnv-fieldnumber .input-wrapper .input-container .stepper > nv-iconbutton:focus-visible {\n border-radius: var(--button-md-border-radius);\n outline-offset: -3px;\n}\n@container field-number-input-container (width < 150px) {\n nv-fieldnumber .input-wrapper .input-container .stepper-spacer {\n display: none;\n }\n nv-fieldnumber .input-wrapper .input-container .stepper {\n display: none;\n }\n}\nnv-fieldnumber .description {\n align-self: stretch;\n color: var(--components-form-text-description-default);\n font-family: "TT Norms Pro", sans-serif;\n font-size: var(--form-description-font-size);\n font-style: normal;\n line-height: var(--form-description-line-height);\n}\nnv-fieldnumber .error-description {\n align-self: stretch;\n color: var(--components-form-text-description-default);\n font-family: "TT Norms Pro", sans-serif;\n font-size: var(--form-description-font-size);\n font-style: normal;\n line-height: var(--form-description-line-height);\n color: var(--components-form-text-description-error);\n}';const d=a;const l=class{constructor(r){n(this,r);this.valueChanged=e(this,"valueChanged",7);this.inputId=t();this.disabled=false;this.readonly=false;this.required=false;this.error=false;this.success=false;this.step=1;this.autofocus=false;this.handleInput=n=>{const e=n.target;this.value=Number(e.value)};this.handleInputContainerClick=()=>{this.inputElement.focus()};this.handlePlus=()=>{this.inputElement.stepUp();this.value=Number(this.inputElement.value)};this.handleMinus=()=>{this.inputElement.stepDown();this.value=Number(this.inputElement.value)};this.preventSelection=n=>{n.preventDefault()};this.isMinValueReached=()=>this.min!==undefined&&this.value<=this.min;this.isMaxValueReached=()=>this.max!==undefined&&this.value>=this.max}watchValueHandler(n){this.valueChanged.emit(n)}componentWillRender(){if(this.message){this.description=this.message}if(this.validation){this.errorDescription=this.validation;this.error=true}}render(){return r(i,{key:"d4a702bbb94585da82e6c40ac83d0f3508564a7b"},(this.label||this.el.querySelector('[slot="label"]'))&&r("label",{key:"11cfc66c6796aae236796fb5a637aa72ef6c2340",htmlFor:this.inputId},r("slot",{key:"bce23d0b1a283ec2d1c1ce0cc6d2c61a6d2cf6e9",name:"label"},this.label)),r("div",{key:"c62aa0a4d69fd0235912ef16c89a4d511348aa48",class:"input-wrapper"},r("slot",{key:"2f7a66f50f7256b7ef5dcc90d112da47a4cac511",name:"before-input"}),r("div",{key:"b00c8348136289513a1c3d5ef68a08a581fa4d9c",class:"input-container",onClick:this.handleInputContainerClick},r("slot",{key:"9d4cce93ff07c710db6cafb3d5c644fad480a397",name:"leading-input"}),r("input",{key:"44ef9c168f0e6e1ce9166cc896127f79d0794392",id:this.inputId,ref:n=>this.inputElement=n,placeholder:this.placeholder,name:this.name,type:"number",autofocus:this.autofocus,required:this.required,max:this.max,min:this.min,step:this.step,value:this.value,disabled:this.disabled,readOnly:this.readonly,onInput:this.handleInput}),this.error&&r("nv-icon",{key:"b2335c490f6ff69c3019731e309d450c94f0a881",name:"alert-circle",class:"validation",size:"md"}),this.success&&r("nv-icon",{key:"5b259e0b4fce9444d6bd4019a5a9c01b66cb8b67",name:"circle-check",class:"validation",size:"md"}),r("div",{key:"a22e29f5af849084331ddda2d63339b3517cb0cf",class:"stepper"},r("nv-iconbutton",{key:"97b7a1646b20fb0804daa5c830c70be05bc6673f",size:"md",name:"minus",emphasis:"lower",onClick:this.handleMinus,disabled:this.isMinValueReached(),onMouseDown:this.preventSelection,tabIndex:-1}),r("nv-iconbutton",{key:"2a9cfde9dfa60a3a565a4673a3696f2907e67845",size:"md",name:"plus",emphasis:"lower",onClick:this.handlePlus,disabled:this.isMaxValueReached(),onMouseDown:this.preventSelection,tabIndex:-1}))),r("slot",{key:"85b9df5f03f45486dec27961d9c98eafa90e008a",name:"after-input"})),(this.description||this.el.querySelector('[slot="description"]'))&&r("div",{key:"1bab44c8766935832acf883732f059333426bd61",class:"description"},r("slot",{key:"f148c139053ce336f342a93e6bc9b8ac11872909",name:"description"},this.description)),(this.errorDescription||this.el.querySelector('[slot="error-description"]'))&&r("div",{key:"a47082dd9ae82156fde1dd4948e31dcfec804a64",hidden:!this.error,class:"error-description"},r("slot",{key:"9537d8157e4acd4a2c502e271b9b2640c0cc71a6",name:"error-description"},this.errorDescription)))}static get formAssociated(){return true}get el(){return o(this)}static get watchers(){return{value:["watchValueHandler"]}}};l.style=d;export{l as nv_fieldnumber};
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as e,c as n,h as r,a as i,g as o}from"./p-ab002252.js";import{v as t}from"./p-f5ff676c.js";const d='nv-fieldnumber {\n --nv-field-border-default: var(--components-form-field-border-default);\n --nv-field-border-hover: var(--components-form-field-border-hover);\n --nv-field-border-focus: var(--components-form-field-border-focus);\n --nv-field-border-disabled: var(--components-form-field-border-default);\n --nv-field-border-readonly: var(--components-form-field-border-default);\n --nv-field-focus-box-shadow: var(--color-focus-brand);\n --nv-field-background: var(--components-form-field-background-default);\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--form-gap-y);\n box-sizing: border-box;\n}\nnv-fieldnumber[readonly]:not([readonly=false]) {\n --nv-field-border-default: var(--components-form-field-border-readonly);\n --nv-field-border-hover: var(--nv-field-border-default);\n --nv-field-border-focus: var(--components-form-field-border-focus);\n --nv-field-border-disabled: var(--nv-field-border-default);\n --nv-field-border-readonly: var(--nv-field-border-default);\n --nv-field-background: var(--components-form-field-background-readonly);\n}\nnv-fieldnumber[error]:not([error=false]) {\n --nv-field-border-default: var(--components-form-field-border-error);\n --nv-field-border-hover: var(--nv-field-border-default);\n --nv-field-border-focus: var(--nv-field-border-default);\n --nv-field-border-disabled: var(--nv-field-border-default);\n --nv-field-border-readonly: var(--nv-field-border-default);\n --nv-field-focus-box-shadow: var(--color-focus-destructive);\n}\nnv-fieldnumber[success]:not([success=false]) {\n --nv-field-border-default: var(--components-form-field-border-success);\n --nv-field-border-hover: var(--nv-field-border-default);\n --nv-field-border-focus: var(--nv-field-border-default);\n --nv-field-border-disabled: var(--nv-field-border-default);\n --nv-field-border-readonly: var(--nv-field-border-default);\n --nv-field-focus-box-shadow: var(--color-focus-success);\n}\nnv-fieldnumber[required]:not([required=false]) label::after {\n content: "*";\n color: var(--components-form-text-required);\n font-weight: 700;\n}\nnv-fieldnumber label {\n display: flex;\n align-items: center;\n gap: var(--form-label-gap);\n align-self: stretch;\n color: var(--components-form-text-label-default);\n font-family: "TT Norms Pro", sans-serif;\n font-size: var(--form-label-font-size);\n font-style: normal;\n font-weight: 500;\n line-height: var(--form-label-line-height);\n}\nnv-fieldnumber .input-wrapper {\n display: flex;\n flex-wrap: wrap;\n gap: var(--form-gap-x);\n align-items: stretch;\n align-self: stretch;\n}\nnv-fieldnumber .input-wrapper .input-container {\n display: flex;\n flex-grow: 1;\n justify-content: center;\n align-items: center;\n align-self: stretch;\n border-radius: var(--form-field-radius);\n border-width: 1px;\n border-style: solid;\n border-color: var(--nv-field-border-default);\n opacity: var(--components-form-opacity-default, 1);\n background: var(--nv-field-background);\n transition: all 150ms ease-out;\n container-type: inline-size;\n container-name: field-number-input-container;\n overflow: hidden;\n position: relative;\n}\nnv-fieldnumber .input-wrapper .input-container:hover {\n border-color: var(--nv-field-border-hover);\n}\nnv-fieldnumber .input-wrapper .input-container:focus-within, nv-fieldnumber .input-wrapper .input-container:focus-within:hover, nv-fieldnumber .input-wrapper .input-container:focus, nv-fieldnumber .input-wrapper .input-container:focus:hover {\n border-color: var(--nv-field-border-focus);\n box-shadow: 0px 0px 0px var(--focus-field-stroke) var(--nv-field-focus-box-shadow);\n}\nnv-fieldnumber .input-wrapper .input-container:has(input:read-only) {\n opacity: 0.5;\n background-color: var(--components-form-field-background-readonly);\n border-color: var(--nv-field-border-readonly);\n}\nnv-fieldnumber .input-wrapper .input-container:has(input:disabled) {\n opacity: 0.5;\n background-color: var(--components-form-field-background-disabled);\n border-color: var(--nv-field-border-disabled);\n}\nnv-fieldnumber .input-wrapper .input-container input {\n display: flex;\n align-items: center;\n flex: 1 0 0;\n overflow: hidden;\n background-color: transparent;\n color: var(--components-form-field-content-text);\n padding: var(--form-field-padding-y) var(--form-field-padding-x);\n font-size: var(--form-field-font-size);\n font-style: normal;\n font-weight: 500;\n line-height: var(--form-field-line-height);\n width: 100%;\n appearance: textfield;\n}\nnv-fieldnumber .input-wrapper .input-container input:focus {\n outline: none;\n}\nnv-fieldnumber .input-wrapper .input-container input::placeholder {\n overflow: hidden;\n color: var(--components-form-field-content-placeholder);\n text-overflow: ellipsis;\n font-family: "TT Norms Pro", sans-serif;\n font-size: var(--form-field-font-size);\n font-style: normal;\n font-weight: 400;\n line-height: var(--form-field-line-height);\n}\nnv-fieldnumber .input-wrapper .input-container input::-webkit-inner-spin-button, nv-fieldnumber .input-wrapper .input-container input::-webkit-outer-spin-button {\n appearance: none;\n margin: 0;\n}\nnv-fieldnumber .input-wrapper .input-container nv-icon.validation {\n color: var(--nv-field-border-default);\n margin-right: var(--form-field-gap);\n}\nnv-fieldnumber .input-wrapper .input-container > nv-iconbutton {\n border: 0px;\n border-radius: 0px;\n}\nnv-fieldnumber .input-wrapper .input-container > nv-iconbutton:focus-visible {\n border-radius: var(--button-md-border-radius);\n outline-offset: -3px;\n}\nnv-fieldnumber .input-wrapper .input-container .stepper {\n display: flex;\n border-left: var(--notification-border-width-low-emphasis) solid var(--components-form-field-border-readonly);\n}\nnv-fieldnumber .input-wrapper .input-container .stepper > nv-iconbutton {\n border: 0px;\n border-radius: 0px;\n border-radius: 0px;\n}\nnv-fieldnumber .input-wrapper .input-container .stepper > nv-iconbutton:focus-visible {\n border-radius: var(--button-md-border-radius);\n outline-offset: -3px;\n}\n@container field-number-input-container (width < 150px) {\n nv-fieldnumber .input-wrapper .input-container .stepper-spacer {\n display: none;\n }\n nv-fieldnumber .input-wrapper .input-container .stepper {\n display: none;\n }\n}\nnv-fieldnumber .description {\n align-self: stretch;\n color: var(--components-form-text-description-default);\n font-family: "TT Norms Pro", sans-serif;\n font-size: var(--form-description-font-size);\n font-style: normal;\n line-height: var(--form-description-line-height);\n}\nnv-fieldnumber .error-description {\n align-self: stretch;\n color: var(--components-form-text-description-default);\n font-family: "TT Norms Pro", sans-serif;\n font-size: var(--form-description-font-size);\n font-style: normal;\n line-height: var(--form-description-line-height);\n color: var(--components-form-text-description-error);\n}';const a=d;const l=class{constructor(r){e(this,r);this.valueChanged=n(this,"valueChanged",7);this.inputId=t();this.disabled=false;this.readonly=false;this.required=false;this.error=false;this.success=false;this.step=1;this.autofocus=false;this.handleInput=e=>{const n=e.target;this.value=Number(n.value)};this.handleInputContainerClick=()=>{this.inputElement.focus()};this.handlePlus=()=>{this.inputElement.stepUp();this.value=Number(this.inputElement.value)};this.handleMinus=()=>{this.inputElement.stepDown();this.value=Number(this.inputElement.value)};this.preventSelection=e=>{e.preventDefault()};this.isMinValueReached=()=>this.min!==undefined&&this.value<=this.min;this.isMaxValueReached=()=>this.max!==undefined&&this.value>=this.max}watchValueHandler(e){this.valueChanged.emit(e)}componentWillRender(){if(this.message){this.description=this.message}if(this.validation){this.errorDescription=this.validation;this.error=true}}render(){return r(i,{key:"14de76d6ddda9977fa3ad28d6e9d2acf613565fa"},(this.label||this.el.querySelector('[slot="label"]'))&&r("label",{key:"22131a183df8f9612d7d1fc4c7904f7e9e3fba71",htmlFor:this.inputId},r("slot",{key:"48cca38b15579499662018d593bd9e73129565da",name:"label"},this.label)),r("div",{key:"9a0a40a370f879f0685a62fb7360419db1245738",class:"input-wrapper"},r("slot",{key:"05bcbc8bd7311f3e6ae467b40af269e373e7ef26",name:"before-input"}),r("div",{key:"81861b40c527dde0b7629914e70f7ee1b3389f06",class:"input-container",onClick:this.handleInputContainerClick},r("slot",{key:"dc64fe00dd75120daedfdc51fc2d5d955f3e3348",name:"leading-input"}),r("input",{key:"01593dfe3c0331acec3ec765cb1673d6a0536f1f",id:this.inputId,ref:e=>this.inputElement=e,placeholder:this.placeholder,name:this.name,type:"number",autofocus:this.autofocus,required:this.required,max:this.max,min:this.min,step:this.step,value:this.value,disabled:this.disabled,readOnly:this.readonly,onInput:this.handleInput}),this.error&&r("nv-icon",{key:"f253f726e6ad61e0b49389f38d1b6c519bd7ade6",name:"alert-circle",class:"validation",size:"md"}),this.success&&r("nv-icon",{key:"11968ad93087be6813e99e2b781fa8d3d7f7b772",name:"circle-check",class:"validation",size:"md"}),r("div",{key:"900d860455ced0a97dbdad044c83578f680e2d1c",class:"stepper"},r("nv-iconbutton",{key:"1c6f95596b862dad92ca2006e983fbf4b45fa9ee",size:"md",name:"minus",emphasis:"lower",onClick:this.handleMinus,disabled:this.isMinValueReached(),onMouseDown:this.preventSelection,tabIndex:-1}),r("nv-iconbutton",{key:"2f08e682805b4c9cf6f09b71c885460ca697de5f",size:"md",name:"plus",emphasis:"lower",onClick:this.handlePlus,disabled:this.isMaxValueReached(),onMouseDown:this.preventSelection,tabIndex:-1}))),r("slot",{key:"b63dbbaeb358b73105f552de15a0226906f5e547",name:"after-input"})),(this.description||this.el.querySelector('[slot="description"]'))&&r("div",{key:"43c3f1bd58a36095e69283151ac4d7edcd0eef4a",class:"description"},r("slot",{key:"0c91c8198be73d7285065d86c1ca1340d3517e0d",name:"description"},this.description)),(this.errorDescription||this.el.querySelector('[slot="error-description"]'))&&r("div",{key:"ecb9e02f67241294215ee3e570006dcf98539537",hidden:!this.error,class:"error-description"},r("slot",{key:"763ddc2a238b85022d72e046d9665fbb433f8476",name:"error-description"},this.errorDescription)))}static get formAssociated(){return true}get el(){return o(this)}static get watchers(){return{value:["watchValueHandler"]}}};l.style=a;export{l as nv_fieldnumber};
|
|
2
|
+
//# sourceMappingURL=p-314d2b34.entry.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as t,c as e,h as s,a,g as i}from"./p-ab002252.js";import{d as n,e as o}from"./p-cb34aa4f.js";const r="nv-table{display:block}nv-table .hidden{display:none}nv-table table{border-collapse:collapse;border-color:inherit;text-indent:0;width:100%}nv-table th{text-align:left;border-bottom:1px solid var(--components-datagrid-header-border);height:var(--spacing-12);padding:var(--spacing-3) var(--spacing-4);font-size:var(--font-size-md);font-weight:700;color:var(--components-datagrid-header-text)}nv-table td{border-bottom:1px solid var(--components-datagrid-body-border);height:var(--spacing-12);max-height:var(--spacing-14);padding:var(--spacing-2) var(--spacing-4);font-size:var(--font-size-md);font-weight:400;color:var(--components-datagrid-body-text);white-space:nowrap;text-overflow:ellipsis}nv-table tbody>tr:hover{background:var(--color-interaction-container-neutral-background-hover)}";const l=r;const h=class{constructor(s){t(this,s);this.action=e(this,"action",7);this.templateCache=new Map;this.headerTemplateCache=new Map;this.parsedColumns=[];this.parsedData=[];this.table=null;this.data=[];this.columnsConfig=[];this.fallbackValue="N/A";this.noDataMessage="No data available";this.noColumnsNoDataMessage="No data or columns available to display."}cacheTemplates(){const t=Array.from(this.el.querySelectorAll("nv-tablecolumn"));t.forEach((t=>{const e=t.name;const s=t.querySelector('[slot="cell"]');if(s){const t=n(s);this.templateCache.set(e,t)}const a=t.querySelector('[slot="header"]');if(a){const t=n(a);this.headerTemplateCache.set(e,t)}else{const s=t.header;if(s){const t=document.createElement("div");t.textContent=s;this.headerTemplateCache.set(e,t)}}}))}parseDataAndColumns(){if(this.dataJson){this.parseJsonData(this.dataJson)}else if(this.data&&this.data.length>0){this.parseDataArray(this.data,this.parsedData)}if(this.columnsConfigJson){this.parseJsonColumns(this.columnsConfigJson,this.parsedColumns)}else if(this.columnsConfig&&this.columnsConfig.length>0){this.parseColumnsArray(this.columnsConfig,this.parsedColumns)}else if(this.headerTemplateCache.size>0){const t=Array.from(this.headerTemplateCache.keys());const e=t.map((t=>Object.assign({},{name:t,header:t?t.charAt(0).toUpperCase()+t.slice(1):""})));this.parseColumnsArray(e,this.parsedColumns)}else if(this.parsedData.length>0){const t=this.parsedData[0];const e=Object.keys(t).map((t=>({name:t,header:t.charAt(0).toUpperCase()+t.slice(1)})));this.parseColumnsArray(e,this.parsedColumns)}}deepEqual(t,e){return JSON.stringify(t)===JSON.stringify(e)}parseDataArray(t,e){const s=Array.isArray(t)?t:[];const a=Array.isArray(e)?e:[];if(this.deepEqual(s,a)){return}this.parsedData=Array.isArray(t)?t:[]}parseColumnsArray(t,e){const s=Array.isArray(t)?t:[];const a=Array.isArray(e)?e:[];if(this.deepEqual(s,a)){return}this.parsedColumns=s}initializeTable(){this.table=null;if(this.parsedColumns.length>0){this.table={columns:this.parsedColumns,data:this.getTableData()}}else{this.table=null}}getTableData(){if(this.parsedData&&Array.isArray(this.parsedData)&&this.parsedData.length>0){return[...this.parsedData]}else{return[]}}replaceKeyWithValue(t,e){var s;return(s=e.split(".").reduce(((t,e)=>t&&t[e]!==undefined?t[e]:undefined),t))!==null&&s!==void 0?s:this.fallbackValue}renderTemplate(t,e){if(!t){return null}const a=t instanceof HTMLTemplateElement?t.content:t;const i=n(a);i.querySelectorAll("*").forEach((t=>{this.replacePlaceholdersTextContent(t,e);this.replacePlaceholdersAttributes(t,e);this.replacePlaceholdersProperties(t,e)}));i.querySelectorAll("[data-bind-event]").forEach((t=>{const s=t.getAttribute("data-bind-event")||"";const a=s.split(":");if(!s.includes(":")||a.length<2){console.warn("Invalid data-bind-event format:",s);return}const i=a[0];const n=a[1];const o=a.length>2?a[2]:null;t.addEventListener(i,(()=>{var t;const s=(t=o===null||o===void 0?void 0:o.split(","))!==null&&t!==void 0?t:[];const a=s.reduce(((t,s)=>{t[s]=e===null||e===void 0?void 0:e[s];return t}),{});const i={keyAction:n,details:a};this.action.emit(i)}))}));setTimeout((()=>{i.querySelectorAll("*").forEach((t=>{if(typeof t.connectedCallback==="function"){t.connectedCallback()}}))}),0);return s("div",{ref:t=>{if(t){t.innerHTML="";t.appendChild(i)}}})}replacePlaceholdersTextContent(t,e){t.childNodes.forEach((t=>{if(t.nodeType===Node.TEXT_NODE){t.textContent=t.textContent.replace(/__([\w.]+)__/g,((t,s)=>this.replaceKeyWithValue(e,s)))}}))}replacePlaceholdersAttributes(t,e){Array.from(t.attributes).forEach((t=>{if(t.value.includes("__")){t.value=t.value.replace(/__([\w.]+)__/g,((t,s)=>this.replaceKeyWithValue(e,s)))}}))}replacePlaceholdersProperties(t,e){const s=new Set;Object.keys(t).forEach((t=>s.add(t)));let a=Object.getPrototypeOf(t);while(a&&a!==HTMLElement.prototype){Object.keys(a).forEach((t=>s.add(t)));a=Object.getPrototypeOf(a)}s.forEach((s=>{if(typeof t[s]!=="function"&&!s.startsWith("on")&&!o.has(s)){try{const a=t[s];if(typeof a==="string"&&a.includes("__")){t[s]=a.replace(/__([\w.]+)__/g,((t,s)=>this.replaceKeyWithValue(e,s)))}}catch(t){console.warn(`Could not assign property ${s}:`,t.message)}}}))}parseColumns(t,e){this.parseColumnsArray(t,e)}parseJsonColumns(t,e){try{const s=t?JSON.parse(t):[];this.parseColumnsArray(s,e)}catch(t){console.error("Invalid JSON format for columnsConfigJson:",t.message);this.parsedColumns=[]}}parseData(t,e){this.parseDataArray(t,e)}parseJsonData(t){try{const e=t?JSON.parse(t):[];this.parseDataArray(e,this.parsedData)}catch(t){console.error("Invalid JSON format for dataJson:",t.message);this.parsedData=[]}}handleParsedChange(){this.initializeTable()}componentWillLoad(){this.cacheTemplates();this.parseDataAndColumns()}render(){const t=!this.table||this.table===undefined||this.parsedColumns.length===0?[]:this.table.columns;const e=!this.table||this.table===undefined||this.parsedData.length===0?[]:this.table.data;return s(a,{key:"bf96a7c40a0960fc68778c33ec63a1d574993408"},s("div",{key:"77e4ace0a9925ef6f5f7e1f51a2abc0c381d8ba5",class:"hidden"},s("slot",{key:"cdeb4abdd65d0e5de7064af63b1a39e661d4b49b"})),s("slot",{key:"4322aeb2858716be200a8d6851ef1d47ee0c44bb",name:"before"}),this.parsedColumns.length===0&&this.parsedData.length===0?s("div",{class:"no-data"},this.noColumnsNoDataMessage):s("table",{class:"table"},this.parsedColumns.length>0&&t.length>0&&s("thead",{class:"table-header"},s("tr",null,t&&t.map((t=>s("th",{key:t.name},this.renderTemplate(this.headerTemplateCache.get(t.name),{})||t.header))))),s("tbody",{class:"table-body"},!e||e.length===0?s("tr",null,s("td",{colSpan:t.length||12,class:"no-data"},this.noDataMessage)):e.map((e=>s("tr",{key:JSON.stringify(e)},t.map((t=>{var a;return s("td",null,this.renderTemplate(this.templateCache.get(t.name),e)||((a=e[t.name])!==null&&a!==void 0?a:this.fallbackValue))}))))))),s("slot",{key:"e5e490de2ff568c962368f39dbcd5c119e814b0d",name:"after"}))}get el(){return i(this)}static get watchers(){return{columnsConfig:["parseColumns"],columnsConfigJson:["parseJsonColumns"],data:["parseData"],dataJson:["parseJsonData"],parsedColumns:["handleParsedChange"],parsedData:["handleParsedChange"]}}};h.style=l;export{h as nv_table};
|
|
2
|
+
//# sourceMappingURL=p-331da074.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e,c as r,h as t,a as i,g as o}from"./p-ab002252.js";import{I as n}from"./p-53aa81dd.js";import{v as d}from"./p-f5ff676c.js";import"./p-0462f723.js";const a='nv-fielddate{--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}nv-fielddate[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-fielddate[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)}nv-fielddate[success]:not([success=false]){--nv-field-border-default:var(--components-form-field-border-success);--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-success)}nv-fielddate[required]:not([required=false]) label::after{content:"*";color:var(--components-form-text-required);font-weight:700}nv-fielddate 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-fielddate nv-popover{width:100%;display:block}nv-fielddate nv-popover [data-scope=popover]{padding:0;background-color:var(--components-list-dropdown-background);border:1px solid var(--components-list-dropdown-border);width:auto}nv-fielddate nv-popover [slot=content]{display:block;width:100%}nv-fielddate .input-wrapper{display:flex;flex-wrap:wrap;gap:var(--form-gap-x);align-items:stretch;align-self:stretch;display:flex;align-items:center;gap:8px}nv-fielddate .input-wrapper .input-container{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}nv-fielddate .input-wrapper .input-container:hover{border-color:var(--nv-field-border-hover)}nv-fielddate .input-wrapper .input-container:focus-within,nv-fielddate .input-wrapper .input-container:focus-within:hover,nv-fielddate .input-wrapper .input-container:focus,nv-fielddate .input-wrapper .input-container: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-fielddate .input-wrapper .input-container:has(input:read-only){opacity:0.5;background-color:var(--components-form-field-background-readonly);border-color:var(--nv-field-border-readonly)}nv-fielddate .input-wrapper .input-container:has(input:disabled){opacity:0.5;background-color:var(--components-form-field-background-disabled);border-color:var(--nv-field-border-disabled)}nv-fielddate .input-wrapper .input-container input{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%}nv-fielddate .input-wrapper .input-container input:focus{outline:none}nv-fielddate .input-wrapper .input-container input::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-fielddate .input-wrapper .input-container>nv-iconbutton{border:0px;border-radius:0px}nv-fielddate .input-wrapper .input-container>nv-iconbutton:focus-visible{border-radius:var(--button-md-border-radius);outline-offset:-3px}nv-fielddate .input-wrapper .input-container nv-icon.validation{color:var(--nv-field-border-default)}nv-fielddate .description{align-self:stretch;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-fielddate .error-description{align-self:stretch;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)}';const s=a;const l=class{constructor(t){e(this,t);this.dateChange=r(this,"dateChange",7);this.popoverId=d();this.inputId=d();this.disabled=false;this.readonly=false;this.required=false;this.error=false;this.success=false;this.autofocus=false;this.value="";this.singleValue="";this.open=false;this.firstDayOfWeek=1;this.numberOfCalendars=1;this.min="";this.max="";this.locale="en-BE";this.dateFormat="YYYY-MM-DD";this.shortcutsPlacement="bottom";this.showActions=false;this.shortcuts="[]";this.disabledDates="[]";this.handleClickOutside=e=>{if(this.open&&this.el&&!this.el.contains(e.target)){this.open=false}};this.handleInputContainerClick=e=>{if(this.readonly||this.disabled){e.preventDefault();e.stopPropagation();return}this.inputElement.focus();const r=this.dateFormat;if(r.startsWith("DD")){this.inputElement.setSelectionRange(0,2)}else if(r.startsWith("MM")){this.inputElement.setSelectionRange(0,2)}else if(r.startsWith("YYYY")){this.inputElement.setSelectionRange(0,4)}};this.handleInput=e=>{if(this.readonly||this.disabled){e.preventDefault();return}const r=e.target;this.singleValue=r.value;this.dateChange.emit({value:r.value})};this.toggleCalendar=()=>{if(this.readonly||this.disabled){return}this.open=!this.open};this.handleFocus=e=>{if(this.readonly||this.disabled){e.preventDefault();e.target.blur();return}}}convertToInputmaskFormat(e){switch(e){case"DD/MM/YYYY":return"dd/mm/yyyy";case"MM/DD/YYYY":return"mm/dd/yyyy";case"YYYY-MM-DD":return"yyyy-mm-dd";case"DD.MM.YYYY":return"dd.mm.yyyy";case"YYYYMMDD":return"yyyymmdd";default:return e}}connectedCallback(){document.addEventListener("click",this.handleClickOutside)}componentWillLoad(){if(this.value){this.singleValue=this.value}}componentDidLoad(){const e=this.el.querySelectorAll(".input-wrapper input");e.forEach((e=>{n({alias:"datetime",inputFormat:this.convertToInputmaskFormat(this.dateFormat),placeholder:"_".repeat(this.dateFormat.length)}).mask(e)}))}disconnectedCallback(){document.removeEventListener("click",this.handleClickOutside)}handleSingleDateChange(e){const r=e.detail;this.singleValue=r;this.dateChange.emit({value:r});if(!this.showActions){this.open=false}}handleClosePopover(){this.open=false}handleKeyDown(e){if(!this.open){if(e.key==="ArrowDown"){this.open=true;e.preventDefault();return}return}if(!this.popoverElement){console.warn("nv-fielddate -> Popover element is not defined");return}}handleValueChange(e){this.singleValue=e}render(){return t(i,{key:"f4ac8fc14fa8e152377801da2ad06db00a780632"},(this.label&&this.label.length>0||this.el.querySelector('[slot="label"]'))&&t("label",{key:"29ad17b261aeb6013b72b03e2f2e960a7395c4ff",htmlFor:this.inputId},t("slot",{key:"e478022257fe1b4c8667f9a7813c270664e51fb1",name:"label"},this.label)),t("nv-popover",{key:"fb6e74859034ea4a918901794dc50569327246f3",ref:e=>this.popoverElement=e,id:this.popoverId,triggerMode:"controlled",placement:"bottom-start",open:this.open},t("div",{key:"8144b07f3310cfd684fc5eff8e2f4b195afa0a85",slot:"trigger",class:"input-wrapper"},t("slot",{key:"13719fa680565927f1d4d49c9b8b18fbd8724895",name:"before-input"}),t("div",{key:"7483c3a0f194f1c433a378dbf8def6c644062520",class:"input-container",onClick:this.handleInputContainerClick},t("slot",{key:"def0c8bd58dc65d121d6a5259d0ff71cd32df6d0",name:"leading-input"}),t("input",{key:"e3a9c13f3da9437a7eebd849c89b59f9014312dd",id:this.inputId,ref:e=>this.inputElement=e,placeholder:this.placeholder,name:this.name,disabled:this.disabled,readOnly:this.readonly,required:this.required,autofocus:this.autofocus,value:this.singleValue,onInput:this.handleInput,onFocus:this.handleFocus}),t("nv-iconbutton",{key:"c82ab5489ec156ed6d83f249e69a19230e990bda",class:"toggle-calendar-icon",name:"calendar",size:"md",emphasis:"lower","aria-label":this.open?"Hide calendar":"Show calendar","aria-pressed":this.open.toString(),onClick:this.toggleCalendar,tabIndex:this.disabled?-1:0})),t("slot",{key:"dce118ee3c305e63d9ee35ea2862ca6a0d461329",name:"after-input"})),t("div",{key:"5f6ec80b1552401b386e9d18cc77ba6238ded537",slot:"content"},t("nv-calendar",{key:"100f2ddb0f3f5393143aeaaebc16ced4c84ba8fe",dateFormat:this.dateFormat,singleValue:this.singleValue,firstDayOfWeek:this.firstDayOfWeek,numberOfCalendars:this.numberOfCalendars,min:this.min,max:this.max,locale:this.locale,shortcutsPlacement:this.shortcutsPlacement,showActions:this.showActions,shortcuts:this.shortcuts,showWeekNumbers:this.showWeekNumbers,disabledDates:this.disabledDates}))),(this.description&&this.description.length>0||this.el.querySelector('[slot="description"]'))&&t("div",{key:"2e04bba3f1578f4cb4e9d9fdff3f969f06965231",class:"description"},t("slot",{key:"9b5d6314cd11e146cc03febfe0d588b7671371c5",name:"description"},this.description)),(this.errorDescription||this.el.querySelector('[slot="error-description"]'))&&t("div",{key:"be836494c6ee4972b6830069517c8402946244bd",hidden:!this.error,class:"error-description"},this.el.querySelector('[slot="error-description"]')?t("slot",{name:"error-description"}):this.errorDescription),t("slot",{key:"6483eb88eabdda1f3feb3cf63dfabc66fad4ca2f"}))}get el(){return o(this)}static get watchers(){return{value:["handleValueChange"]}}};l.style=s;export{l as nv_fielddate};
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as e,c as r,h as t,a as i,g as o}from"./p-ab002252.js";import{I as n}from"./p-53aa81dd.js";import{v as d}from"./p-f5ff676c.js";import"./p-0462f723.js";const a='nv-fielddate{--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}nv-fielddate[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-fielddate[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)}nv-fielddate[success]:not([success=false]){--nv-field-border-default:var(--components-form-field-border-success);--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-success)}nv-fielddate[required]:not([required=false]) label::after{content:"*";color:var(--components-form-text-required);font-weight:700}nv-fielddate 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-fielddate nv-popover{width:100%;display:block}nv-fielddate nv-popover [data-scope=popover]{padding:0;background-color:var(--components-list-dropdown-background);border:1px solid var(--components-list-dropdown-border);width:auto}nv-fielddate nv-popover [slot=content]{display:block;width:100%}nv-fielddate .input-wrapper{display:flex;flex-wrap:wrap;gap:var(--form-gap-x);align-items:stretch;align-self:stretch;display:flex;align-items:center;gap:8px}nv-fielddate .input-wrapper .input-container{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}nv-fielddate .input-wrapper .input-container:hover{border-color:var(--nv-field-border-hover)}nv-fielddate .input-wrapper .input-container:focus-within,nv-fielddate .input-wrapper .input-container:focus-within:hover,nv-fielddate .input-wrapper .input-container:focus,nv-fielddate .input-wrapper .input-container: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-fielddate .input-wrapper .input-container:has(input:read-only){opacity:0.5;background-color:var(--components-form-field-background-readonly);border-color:var(--nv-field-border-readonly)}nv-fielddate .input-wrapper .input-container:has(input:disabled){opacity:0.5;background-color:var(--components-form-field-background-disabled);border-color:var(--nv-field-border-disabled)}nv-fielddate .input-wrapper .input-container input{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%}nv-fielddate .input-wrapper .input-container input:focus{outline:none}nv-fielddate .input-wrapper .input-container input::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-fielddate .input-wrapper .input-container>nv-iconbutton{border:0px;border-radius:0px}nv-fielddate .input-wrapper .input-container>nv-iconbutton:focus-visible{border-radius:var(--button-md-border-radius);outline-offset:-3px}nv-fielddate .input-wrapper .input-container nv-icon.validation{color:var(--nv-field-border-default)}nv-fielddate .description{align-self:stretch;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-fielddate .error-description{align-self:stretch;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)}';const s=a;const l=class{constructor(t){e(this,t);this.dateChange=r(this,"dateChange",7);this.popoverId=d();this.inputId=d();this.disabled=false;this.readonly=false;this.required=false;this.error=false;this.success=false;this.autofocus=false;this.value="";this.singleValue="";this.open=false;this.firstDayOfWeek=1;this.numberOfCalendars=1;this.min="";this.max="";this.locale="en-BE";this.dateFormat="YYYY-MM-DD";this.shortcutsPlacement="bottom";this.showActions=false;this.shortcuts="[]";this.disabledDates="[]";this.handleClickOutside=e=>{if(this.open&&this.el&&!this.el.contains(e.target)){this.open=false}};this.handleInputContainerClick=e=>{if(this.readonly||this.disabled){e.preventDefault();e.stopPropagation();return}this.inputElement.focus();const r=this.dateFormat;if(r.startsWith("DD")){this.inputElement.setSelectionRange(0,2)}else if(r.startsWith("MM")){this.inputElement.setSelectionRange(0,2)}else if(r.startsWith("YYYY")){this.inputElement.setSelectionRange(0,4)}};this.handleInput=e=>{if(this.readonly||this.disabled){e.preventDefault();return}const r=e.target;this.singleValue=r.value;this.dateChange.emit({value:r.value})};this.toggleCalendar=()=>{if(this.readonly||this.disabled){return}this.open=!this.open};this.handleFocus=e=>{if(this.readonly||this.disabled){e.preventDefault();e.target.blur();return}}}convertToInputmaskFormat(e){switch(e){case"DD/MM/YYYY":return"dd/mm/yyyy";case"MM/DD/YYYY":return"mm/dd/yyyy";case"YYYY-MM-DD":return"yyyy-mm-dd";case"DD.MM.YYYY":return"dd.mm.yyyy";case"YYYYMMDD":return"yyyymmdd";default:return e}}connectedCallback(){document.addEventListener("click",this.handleClickOutside)}componentWillLoad(){if(this.value){this.singleValue=this.value}}componentDidLoad(){const e=this.el.querySelectorAll(".input-wrapper input");e.forEach((e=>{n({alias:"datetime",inputFormat:this.convertToInputmaskFormat(this.dateFormat),placeholder:"_".repeat(this.dateFormat.length)}).mask(e)}))}disconnectedCallback(){document.removeEventListener("click",this.handleClickOutside)}handleSingleDateChange(e){const r=e.detail;this.singleValue=r;this.dateChange.emit({value:r});if(!this.showActions){this.open=false}}handleClosePopover(){this.open=false}handleKeyDown(e){if(!this.open){if(e.key==="ArrowDown"){this.open=true;e.preventDefault();return}return}if(!this.popoverElement){console.warn("nv-fielddate -> Popover element is not defined");return}}handleValueChange(e){this.singleValue=e}render(){return t(i,{key:"df11f4f395a48f6288b20a242cccdacc9d7b397c"},(this.label&&this.label.length>0||this.el.querySelector('[slot="label"]'))&&t("label",{key:"bebb3787dcef1ea73bada36586bdd678f0ce0556",htmlFor:this.inputId},t("slot",{key:"52be6fb452bcd9471708376e708e9a8126af73c2",name:"label"},this.label)),t("nv-popover",{key:"6e1cc0a602641ec43be99ca990d64f175ff7bac8",ref:e=>this.popoverElement=e,id:this.popoverId,triggerMode:"controlled",placement:"bottom-start",open:this.open},t("div",{key:"7cc0bcc9df49252d209caa22b61358c230d2f0dd",slot:"trigger",class:"input-wrapper"},t("slot",{key:"13037bdfe258561afd35c23fd1cb94ed96bbba9d",name:"before-input"}),t("div",{key:"5a0c1bce690feb834f6183c57772d7b2eed0a8a6",class:"input-container",onClick:this.handleInputContainerClick},t("slot",{key:"73842b222ba5059f1f09a4ce57b662710a1e341a",name:"leading-input"}),t("input",{key:"2e4de521b0d1d735fd4170eefacfe4e8f5bbcf33",id:this.inputId,ref:e=>this.inputElement=e,placeholder:this.placeholder,name:this.name,disabled:this.disabled,readOnly:this.readonly,required:this.required,autofocus:this.autofocus,value:this.singleValue,onInput:this.handleInput,onFocus:this.handleFocus}),t("nv-iconbutton",{key:"dff7fe7f4a49a3da8ed44235ef719e726a40db87",class:"toggle-calendar-icon",name:"calendar",size:"md",emphasis:"lower","aria-label":this.open?"Hide calendar":"Show calendar","aria-pressed":this.open.toString(),onClick:this.toggleCalendar,tabIndex:this.disabled?-1:0})),t("slot",{key:"aafa39739ae3f907cef45d95094ef643833d50ad",name:"after-input"})),t("div",{key:"38cbef48ee7b053ad7c277e8125fcbf6d11c636c",slot:"content"},t("nv-calendar",{key:"dd5f1b3f1d7fcb17a47d90be58949fffe89e3ad4",dateFormat:this.dateFormat,singleValue:this.singleValue,firstDayOfWeek:this.firstDayOfWeek,numberOfCalendars:this.numberOfCalendars,min:this.min,max:this.max,locale:this.locale,shortcutsPlacement:this.shortcutsPlacement,showActions:this.showActions,shortcuts:this.shortcuts,showWeekNumbers:this.showWeekNumbers,disabledDates:this.disabledDates}))),(this.description&&this.description.length>0||this.el.querySelector('[slot="description"]'))&&t("div",{key:"92526d3d8ed3bce713a5b30097df182b0ea22d4f",class:"description"},t("slot",{key:"d2a3a35577c08e3dd21c1c48eb6c6e3959abb7da",name:"description"},this.description)),(this.errorDescription||this.el.querySelector('[slot="error-description"]'))&&t("div",{key:"d4ba884604a01e2376691d382fb530576c02f029",hidden:!this.error,class:"error-description"},this.el.querySelector('[slot="error-description"]')?t("slot",{name:"error-description"}):this.errorDescription),t("slot",{key:"443c990302fa9aaef0e6fe732738d4f8e4570717"}))}get el(){return o(this)}static get watchers(){return{value:["handleValueChange"]}}};l.style=s;export{l as nv_fielddate};
|
|
2
|
+
//# sourceMappingURL=p-332c5d6c.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as o,h as t,a as e,g as n}from"./p-ab002252.js";import{c as r}from"./p-8a1a6e56.js";const i='nv-iconbutton.root{display:inline-flex;justify-content:center;align-items:center;font-style:normal;font-weight:500;font-family:"TT Norms Pro", sans-serif;transition:background-color 150ms ease-out;height:fit-content;width:fit-content}nv-iconbutton.size-xs{padding:var(--button-xs-icon-button-padding);gap:var(--button-xs-gap);border-radius:var(--button-xs-border-radius);line-height:var(--button-xs-line-height);font-size:var(--button-xs-font-size)}nv-iconbutton.size-sm{padding:var(--button-sm-icon-button-padding);gap:var(--button-sm-gap);border-radius:var(--button-sm-border-radius);line-height:var(--button-sm-line-height);font-size:var(--button-sm-font-size)}nv-iconbutton.size-md{padding:var(--button-md-icon-button-padding);gap:var(--button-md-gap);border-radius:var(--button-md-border-radius);line-height:var(--button-md-line-height);font-size:var(--button-md-font-size)}nv-iconbutton.size-lg{padding:var(--button-lg-icon-button-padding);gap:var(--button-lg-gap);border-radius:var(--button-lg-border-radius);line-height:var(--button-lg-line-height);font-size:var(--button-lg-font-size)}nv-iconbutton.emphasis-high{background:var(--components-button-high-background);border:1px solid var(--components-button-high-border);color:var(--components-button-high-text)}nv-iconbutton.emphasis-high:hover{background:var(--components-button-high-background-hover);color:var(--components-button-high-text-hover)}nv-iconbutton.emphasis-high:focus,nv-iconbutton.emphasis-high:focus-within{outline:none}nv-iconbutton.emphasis-high:focus-visible,nv-iconbutton.emphasis-high:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-iconbutton.emphasis-high:disabled{background:var(--components-button-high-background);color:var(--components-button-high-text);opacity:0.5;cursor:not-allowed;box-shadow:none}nv-iconbutton.emphasis-high nv-icon>svg{color:var(--components-button-high-icon)}nv-iconbutton.emphasis-medium{background:var(--components-button-medium-background);border:1px solid var(--components-button-medium-border);color:var(--components-button-medium-text)}nv-iconbutton.emphasis-medium:hover{background:var(--components-button-medium-background-hover);color:var(--components-button-medium-text-hover)}nv-iconbutton.emphasis-medium:focus,nv-iconbutton.emphasis-medium:focus-within{outline:none}nv-iconbutton.emphasis-medium:focus-visible,nv-iconbutton.emphasis-medium:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-iconbutton.emphasis-medium:disabled{background:var(--components-button-medium-background);color:var(--components-button-medium-text);opacity:0.5;cursor:not-allowed;box-shadow:none}nv-iconbutton.emphasis-medium nv-icon>svg{color:var(--components-button-medium-icon)}nv-iconbutton.emphasis-low{background:var(--components-button-low-background);border:1px solid var(--components-button-low-border);color:var(--components-button-low-text)}nv-iconbutton.emphasis-low:hover{background:var(--components-button-low-background-hover);color:var(--components-button-low-text-hover)}nv-iconbutton.emphasis-low:focus,nv-iconbutton.emphasis-low:focus-within{outline:none}nv-iconbutton.emphasis-low:focus-visible,nv-iconbutton.emphasis-low:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-iconbutton.emphasis-low:disabled{background:var(--components-button-low-background);color:var(--components-button-low-text);opacity:0.5;cursor:not-allowed;box-shadow:none}nv-iconbutton.emphasis-low nv-icon>svg{color:var(--components-button-low-icon)}nv-iconbutton.emphasis-lower{background:var(--components-button-lower-background);border:1px solid var(--components-button-lower-border);color:var(--components-button-lower-text)}nv-iconbutton.emphasis-lower:hover{background:var(--components-button-lower-background-hover);color:var(--components-button-lower-text-hover)}nv-iconbutton.emphasis-lower:focus,nv-iconbutton.emphasis-lower:focus-within{outline:none}nv-iconbutton.emphasis-lower:focus-visible,nv-iconbutton.emphasis-lower:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-iconbutton.emphasis-lower:disabled{background:var(--components-button-lower-background);color:var(--components-button-lower-text);opacity:0.5;cursor:not-allowed;box-shadow:none}nv-iconbutton.emphasis-lower nv-icon>svg{color:var(--components-button-lower-icon)}nv-iconbutton.loading [slot=leading-icon]{display:none}nv-iconbutton.shape-rounded{border-radius:var(--radius-rounded-full)}';const a=i;const s=class{constructor(t){o(this,t);if(t.$hostElement$["s-ei"]){this.internals=t.$hostElement$["s-ei"]}else{this.internals=t.$hostElement$.attachInternals();t.$hostElement$["s-ei"]=this.internals}this.size="md";this.emphasis="high";this.loading=false;this.disabled=false;this.active=false;this.type="button";this.shape="square";this.handleClick=o=>{var t,e,n,r;if(this.disabled){o.preventDefault();return}if(this.type==="submit"){(e=(t=this.internals)===null||t===void 0?void 0:t.form)===null||e===void 0?void 0:e.requestSubmit()}if(this.type==="reset"){(r=(n=this.internals)===null||n===void 0?void 0:n.form)===null||r===void 0?void 0:r.reset()}}}handleLoadingChange(o){this.loading=o;this.disabled=o}handleDisabledChange(o){if(this.loading){this.disabled=this.loading}else{this.disabled=o}}handleKeyDown(o){if(o.key==="Enter"||o.key===" "){o.preventDefault();this.el.click()}}handleTouchStart(o){if(o.touches.length>1)return;o.preventDefault();this.el.click()}componentWillLoad(){if(this.loading){this.disabled=this.loading}}render(){return t(e,{key:"87a2f7fcf90b0fbc331d35cfc47b7b994b92de4b",role:"button",type:this.type,tabindex:"0",disabled:this.disabled?true:undefined,class:r("root",`size-${this.size}`,`emphasis-${this.emphasis}`,this.loading&&"loading",`shape-${this.shape}`),onClick:this.handleClick},this.loading&&t("nv-loader",{key:"0b22f0bb31b62300da99367d7db8979964f7a9d3",size:this.size}),!this.loading&&t("nv-icon",{key:"878aaefbdae6da207cfc433c0d2a3110ef3d269f",name:this.name,size:this.size}),t("slot",{key:"b3c802b3498683cccc511941ead4254c6de22466"}))}static get formAssociated(){return true}get el(){return n(this)}static get watchers(){return{loading:["handleLoadingChange"],disabled:["handleDisabledChange"]}}};s.style=a;const l='@keyframes rotation{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}nv-loader{display:inline-block;position:relative;aspect-ratio:1/1;border-radius:9999px;color:inherit}nv-loader.size-xs{width:var(--loader-size-xs);height:var(--loader-size-xs)}nv-loader.size-xs::before,nv-loader.size-xs::after{content:" ";position:absolute;top:0;left:0;border-radius:inherit;width:100%;height:100%}nv-loader.size-xs::before{content:" ";border:calc(var(--loader-size-xs) / 10) solid;opacity:0.3}nv-loader.size-xs::after{content:" ";border-top:calc(var(--loader-size-xs) / 10) solid transparent;border-left:calc(var(--loader-size-xs) / 10) solid transparent;border-right:calc(var(--loader-size-xs) / 10) solid transparent;border-bottom:calc(var(--loader-size-xs) / 10) solid;animation:rotation 1s linear infinite}nv-loader.size-sm{width:var(--loader-size-sm);height:var(--loader-size-sm)}nv-loader.size-sm::before,nv-loader.size-sm::after{content:" ";position:absolute;top:0;left:0;border-radius:inherit;width:100%;height:100%}nv-loader.size-sm::before{content:" ";border:calc(var(--loader-size-sm) / 10) solid;opacity:0.3}nv-loader.size-sm::after{content:" ";border-top:calc(var(--loader-size-sm) / 10) solid transparent;border-left:calc(var(--loader-size-sm) / 10) solid transparent;border-right:calc(var(--loader-size-sm) / 10) solid transparent;border-bottom:calc(var(--loader-size-sm) / 10) solid;animation:rotation 1s linear infinite}nv-loader.size-md{width:var(--loader-size-md);height:var(--loader-size-md)}nv-loader.size-md::before,nv-loader.size-md::after{content:" ";position:absolute;top:0;left:0;border-radius:inherit;width:100%;height:100%}nv-loader.size-md::before{content:" ";border:calc(var(--loader-size-md) / 10) solid;opacity:0.3}nv-loader.size-md::after{content:" ";border-top:calc(var(--loader-size-md) / 10) solid transparent;border-left:calc(var(--loader-size-md) / 10) solid transparent;border-right:calc(var(--loader-size-md) / 10) solid transparent;border-bottom:calc(var(--loader-size-md) / 10) solid;animation:rotation 1s linear infinite}nv-loader.size-lg{width:var(--loader-size-lg);height:var(--loader-size-lg)}nv-loader.size-lg::before,nv-loader.size-lg::after{content:" ";position:absolute;top:0;left:0;border-radius:inherit;width:100%;height:100%}nv-loader.size-lg::before{content:" ";border:calc(var(--loader-size-lg) / 10) solid;opacity:0.3}nv-loader.size-lg::after{content:" ";border-top:calc(var(--loader-size-lg) / 10) solid transparent;border-left:calc(var(--loader-size-lg) / 10) solid transparent;border-right:calc(var(--loader-size-lg) / 10) solid transparent;border-bottom:calc(var(--loader-size-lg) / 10) solid;animation:rotation 1s linear infinite}nv-loader.size-xl{width:var(--loader-size-xl);height:var(--loader-size-xl)}nv-loader.size-xl::before,nv-loader.size-xl::after{content:" ";position:absolute;top:0;left:0;border-radius:inherit;width:100%;height:100%}nv-loader.size-xl::before{content:" ";border:calc(var(--loader-size-xl) / 10) solid;opacity:0.3}nv-loader.size-xl::after{content:" ";border-top:calc(var(--loader-size-xl) / 10) solid transparent;border-left:calc(var(--loader-size-xl) / 10) solid transparent;border-right:calc(var(--loader-size-xl) / 10) solid transparent;border-bottom:calc(var(--loader-size-xl) / 10) solid;animation:rotation 1s linear infinite}nv-loader.color-brand::before{border-color:var(--components-loader-brand-background);opacity:1}nv-loader.color-brand::after{border-bottom-color:var(--components-loader-brand-foreground)}nv-loader.color-white::before{border-color:var(--components-loader-white-background);opacity:1}nv-loader.color-white::after{border-bottom-color:var(--components-loader-white-foreground)}';const d=l;const c=class{constructor(t){o(this,t);this.size="md"}render(){return t(e,{key:"e52bc6752a57515a595064e2ebc284c88aca52d3",class:r(this.size&&`size-${this.size}`,this.color&&`color-${this.color}`)})}};c.style=d;export{s as nv_iconbutton,c as nv_loader};
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as o,h as t,a as e,g as n}from"./p-ab002252.js";import{c as r}from"./p-8a1a6e56.js";const i='nv-iconbutton.root{display:inline-flex;justify-content:center;align-items:center;font-style:normal;font-weight:500;font-family:"TT Norms Pro", sans-serif;transition:background-color 150ms ease-out;height:fit-content;width:fit-content}nv-iconbutton.size-xs{padding:var(--button-xs-icon-button-padding);gap:var(--button-xs-gap);border-radius:var(--button-xs-border-radius);line-height:var(--button-xs-line-height);font-size:var(--button-xs-font-size)}nv-iconbutton.size-sm{padding:var(--button-sm-icon-button-padding);gap:var(--button-sm-gap);border-radius:var(--button-sm-border-radius);line-height:var(--button-sm-line-height);font-size:var(--button-sm-font-size)}nv-iconbutton.size-md{padding:var(--button-md-icon-button-padding);gap:var(--button-md-gap);border-radius:var(--button-md-border-radius);line-height:var(--button-md-line-height);font-size:var(--button-md-font-size)}nv-iconbutton.size-lg{padding:var(--button-lg-icon-button-padding);gap:var(--button-lg-gap);border-radius:var(--button-lg-border-radius);line-height:var(--button-lg-line-height);font-size:var(--button-lg-font-size)}nv-iconbutton.emphasis-high{background:var(--components-button-high-background);border:1px solid var(--components-button-high-border);color:var(--components-button-high-text)}nv-iconbutton.emphasis-high:hover{background:var(--components-button-high-background-hover);color:var(--components-button-high-text-hover)}nv-iconbutton.emphasis-high:focus,nv-iconbutton.emphasis-high:focus-within{outline:none}nv-iconbutton.emphasis-high:focus-visible,nv-iconbutton.emphasis-high:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-iconbutton.emphasis-high:disabled{background:var(--components-button-high-background);color:var(--components-button-high-text);opacity:0.5;cursor:not-allowed;box-shadow:none}nv-iconbutton.emphasis-high nv-icon>svg{color:var(--components-button-high-icon)}nv-iconbutton.emphasis-medium{background:var(--components-button-medium-background);border:1px solid var(--components-button-medium-border);color:var(--components-button-medium-text)}nv-iconbutton.emphasis-medium:hover{background:var(--components-button-medium-background-hover);color:var(--components-button-medium-text-hover)}nv-iconbutton.emphasis-medium:focus,nv-iconbutton.emphasis-medium:focus-within{outline:none}nv-iconbutton.emphasis-medium:focus-visible,nv-iconbutton.emphasis-medium:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-iconbutton.emphasis-medium:disabled{background:var(--components-button-medium-background);color:var(--components-button-medium-text);opacity:0.5;cursor:not-allowed;box-shadow:none}nv-iconbutton.emphasis-medium nv-icon>svg{color:var(--components-button-medium-icon)}nv-iconbutton.emphasis-low{background:var(--components-button-low-background);border:1px solid var(--components-button-low-border);color:var(--components-button-low-text)}nv-iconbutton.emphasis-low:hover{background:var(--components-button-low-background-hover);color:var(--components-button-low-text-hover)}nv-iconbutton.emphasis-low:focus,nv-iconbutton.emphasis-low:focus-within{outline:none}nv-iconbutton.emphasis-low:focus-visible,nv-iconbutton.emphasis-low:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-iconbutton.emphasis-low:disabled{background:var(--components-button-low-background);color:var(--components-button-low-text);opacity:0.5;cursor:not-allowed;box-shadow:none}nv-iconbutton.emphasis-low nv-icon>svg{color:var(--components-button-low-icon)}nv-iconbutton.emphasis-lower{background:var(--components-button-lower-background);border:1px solid var(--components-button-lower-border);color:var(--components-button-lower-text)}nv-iconbutton.emphasis-lower:hover{background:var(--components-button-lower-background-hover);color:var(--components-button-lower-text-hover)}nv-iconbutton.emphasis-lower:focus,nv-iconbutton.emphasis-lower:focus-within{outline:none}nv-iconbutton.emphasis-lower:focus-visible,nv-iconbutton.emphasis-lower:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-iconbutton.emphasis-lower:disabled{background:var(--components-button-lower-background);color:var(--components-button-lower-text);opacity:0.5;cursor:not-allowed;box-shadow:none}nv-iconbutton.emphasis-lower nv-icon>svg{color:var(--components-button-lower-icon)}nv-iconbutton.loading [slot=leading-icon]{display:none}nv-iconbutton.shape-rounded{border-radius:var(--radius-rounded-full)}';const a=i;const s=class{constructor(t){o(this,t);if(t.$hostElement$["s-ei"]){this.internals=t.$hostElement$["s-ei"]}else{this.internals=t.$hostElement$.attachInternals();t.$hostElement$["s-ei"]=this.internals}this.size="md";this.emphasis="high";this.loading=false;this.disabled=false;this.active=false;this.type="button";this.shape="square";this.handleClick=o=>{var t,e,n,r;if(this.disabled){o.preventDefault();return}if(this.type==="submit"){(e=(t=this.internals)===null||t===void 0?void 0:t.form)===null||e===void 0?void 0:e.requestSubmit()}if(this.type==="reset"){(r=(n=this.internals)===null||n===void 0?void 0:n.form)===null||r===void 0?void 0:r.reset()}}}handleLoadingChange(o){this.loading=o;this.disabled=o}handleDisabledChange(o){if(this.loading){this.disabled=this.loading}else{this.disabled=o}}handleKeyDown(o){if(o.key==="Enter"||o.key===" "){o.preventDefault();this.el.click()}}handleTouchStart(o){if(o.touches.length>1)return;o.preventDefault();this.el.click()}componentWillLoad(){if(this.loading){this.disabled=this.loading}}render(){return t(e,{key:"4c8d155b8feb2c43c71075facd4aba91187859e0",role:"button",type:this.type,tabindex:"0",disabled:this.disabled?true:undefined,class:r("root",`size-${this.size}`,`emphasis-${this.emphasis}`,this.loading&&"loading",`shape-${this.shape}`),onClick:this.handleClick},this.loading&&t("nv-loader",{key:"98e022b368e278aed21335cf593aeea19dba29ee",size:this.size}),!this.loading&&t("nv-icon",{key:"5298a3d0a85e97826693e47e04ed9eddcb4f9cd3",name:this.name,size:this.size}),t("slot",{key:"7e239aacae35715d4dc309919a21f0def9c0fa5d"}))}static get formAssociated(){return true}get el(){return n(this)}static get watchers(){return{loading:["handleLoadingChange"],disabled:["handleDisabledChange"]}}};s.style=a;const l='@keyframes rotation{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}nv-loader{display:inline-block;position:relative;aspect-ratio:1/1;border-radius:9999px;color:inherit}nv-loader.size-xs{width:var(--loader-size-xs);height:var(--loader-size-xs)}nv-loader.size-xs::before,nv-loader.size-xs::after{content:" ";position:absolute;top:0;left:0;border-radius:inherit;width:100%;height:100%}nv-loader.size-xs::before{content:" ";border:calc(var(--loader-size-xs) / 10) solid;opacity:0.3}nv-loader.size-xs::after{content:" ";border-top:calc(var(--loader-size-xs) / 10) solid transparent;border-left:calc(var(--loader-size-xs) / 10) solid transparent;border-right:calc(var(--loader-size-xs) / 10) solid transparent;border-bottom:calc(var(--loader-size-xs) / 10) solid;animation:rotation 1s linear infinite}nv-loader.size-sm{width:var(--loader-size-sm);height:var(--loader-size-sm)}nv-loader.size-sm::before,nv-loader.size-sm::after{content:" ";position:absolute;top:0;left:0;border-radius:inherit;width:100%;height:100%}nv-loader.size-sm::before{content:" ";border:calc(var(--loader-size-sm) / 10) solid;opacity:0.3}nv-loader.size-sm::after{content:" ";border-top:calc(var(--loader-size-sm) / 10) solid transparent;border-left:calc(var(--loader-size-sm) / 10) solid transparent;border-right:calc(var(--loader-size-sm) / 10) solid transparent;border-bottom:calc(var(--loader-size-sm) / 10) solid;animation:rotation 1s linear infinite}nv-loader.size-md{width:var(--loader-size-md);height:var(--loader-size-md)}nv-loader.size-md::before,nv-loader.size-md::after{content:" ";position:absolute;top:0;left:0;border-radius:inherit;width:100%;height:100%}nv-loader.size-md::before{content:" ";border:calc(var(--loader-size-md) / 10) solid;opacity:0.3}nv-loader.size-md::after{content:" ";border-top:calc(var(--loader-size-md) / 10) solid transparent;border-left:calc(var(--loader-size-md) / 10) solid transparent;border-right:calc(var(--loader-size-md) / 10) solid transparent;border-bottom:calc(var(--loader-size-md) / 10) solid;animation:rotation 1s linear infinite}nv-loader.size-lg{width:var(--loader-size-lg);height:var(--loader-size-lg)}nv-loader.size-lg::before,nv-loader.size-lg::after{content:" ";position:absolute;top:0;left:0;border-radius:inherit;width:100%;height:100%}nv-loader.size-lg::before{content:" ";border:calc(var(--loader-size-lg) / 10) solid;opacity:0.3}nv-loader.size-lg::after{content:" ";border-top:calc(var(--loader-size-lg) / 10) solid transparent;border-left:calc(var(--loader-size-lg) / 10) solid transparent;border-right:calc(var(--loader-size-lg) / 10) solid transparent;border-bottom:calc(var(--loader-size-lg) / 10) solid;animation:rotation 1s linear infinite}nv-loader.size-xl{width:var(--loader-size-xl);height:var(--loader-size-xl)}nv-loader.size-xl::before,nv-loader.size-xl::after{content:" ";position:absolute;top:0;left:0;border-radius:inherit;width:100%;height:100%}nv-loader.size-xl::before{content:" ";border:calc(var(--loader-size-xl) / 10) solid;opacity:0.3}nv-loader.size-xl::after{content:" ";border-top:calc(var(--loader-size-xl) / 10) solid transparent;border-left:calc(var(--loader-size-xl) / 10) solid transparent;border-right:calc(var(--loader-size-xl) / 10) solid transparent;border-bottom:calc(var(--loader-size-xl) / 10) solid;animation:rotation 1s linear infinite}nv-loader.color-brand::before{border-color:var(--components-loader-brand-background);opacity:1}nv-loader.color-brand::after{border-bottom-color:var(--components-loader-brand-foreground)}nv-loader.color-white::before{border-color:var(--components-loader-white-background);opacity:1}nv-loader.color-white::after{border-bottom-color:var(--components-loader-white-foreground)}';const d=l;const c=class{constructor(t){o(this,t);this.size="md"}render(){return t(e,{key:"b6b029b8231c2d4a1a6a7f074f42a27b85dff71b",class:r(this.size&&`size-${this.size}`,this.color&&`color-${this.color}`)})}};c.style=d;export{s as nv_iconbutton,c as nv_loader};
|
|
2
|
+
//# sourceMappingURL=p-3af5bcc1.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e,c as t,h as o,a as i,g as
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as e,c as t,h as o,a as i,g as n}from"./p-ab002252.js";const d="nv-fielddropdownitem{display:flex;gap:var(--spacing-2);flex-wrap:wrap;align-items:center;width:100%;padding:var(--list-dropdown-item-padding-y) var(--list-dropdown-item-padding-x);font-weight:var(--menu-contextual-item-font-weight);font-size:var(--list-dropdown-font-size);line-height:var(--list-dropdown-line-height);color:var(--components-list-dropdown-item-label-default);border-radius:var(--list-dropdown-item-radius);transition:background-color 150ms ease-out, color 150ms ease-out;cursor:pointer}nv-fielddropdownitem:hover,nv-fielddropdownitem:focus,nv-fielddropdownitem:focus-within{background-color:var(--components-list-dropdown-item-background-hover);color:var(--components-menu-contextual-item-content-hover)}nv-fielddropdownitem[disabled]:not([disabled=false]){cursor:not-allowed;background-color:unset;color:var(--components-menu-contextual-item-content-disabled)}nv-fielddropdownitem .text-wrapper{display:flex;flex-grow:1;align-items:center;justify-content:space-between}nv-fielddropdownitem [data-scope=text]{flex-grow:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}nv-fielddropdownitem nv-icon[data-scope=selected]{color:var(--components-list-dropdown-item-label-default);align-self:center;margin-left:auto}";const s=d;const a=class{constructor(o){e(this,o);this.dropdownItemSelected=t(this,"dropdownItemSelected",7);this.composed=false;this.disabled=false;this.selected=false;this.handleSelected=()=>{if(this.disabled)return;this.dropdownItemSelected.emit({label:this.label,value:this.value})}}handleKeyDown(e){var t,o;if(e.target!==this.el)return;if(e.key==="Enter"||e.key===" "){e.preventDefault();this.handleSelected();(o=(t=this.el.closest("nv-fielddropdown"))===null||t===void 0?void 0:t.querySelector("[data-scope='focusable']"))===null||o===void 0?void 0:o.focus()}}componentWillLoad(){var e;this.composed=Boolean(this.el.children.length);if(!this.value){const t=(e=this.label)!==null&&e!==void 0?e:this.el.textContent;this.value=t.replace(/\W+/g,"")}}render(){return o(i,{key:"8f867e8c456eae541561024d5194e1582504e85b",role:"menuitem",tabindex:"-1",onClick:this.handleSelected},o("slot",{key:"2f26847b783458cde7a99d69269b0e15f381cdb8"}),!this.composed&&o("div",{key:"22229450f3e1492d1f71cbd9e89c6e0204cee201",class:"text-wrapper"},o("span",{key:"a5c691f3addf577acd848b6fe72c23388d116584","data-scope":"text"},this.label)),this.selected&&o("nv-icon",{key:"02232856ec60e9b741ced372a9d05def5d822cc6",name:"check","aria-hidden":"true","data-scope":"selected"}))}get el(){return n(this)}};a.style=s;export{a as nv_fielddropdownitem};
|
|
2
|
+
//# sourceMappingURL=p-40f4a6e7.entry.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as t,c as e,h as i,a as s,g as o}from"./p-ab002252.js";import{v as n}from"./p-f5ff676c.js";const r='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}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)}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 .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%;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>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-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{align-self:stretch;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{align-self:stretch;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{text-align:center;padding:10px;color:var(--components-form-text-description-error)}.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}';const l=r;const a=class{constructor(o){t(this,o);this.valueChanged=e(this,"valueChanged",7);this.multiselectChange=e(this,"multiselectChange",7);this.inputId=n();this.maxHeight="200px";this.badgeLabel="";this.emptyResult="No results found";this.required=false;this.error=false;this.readonly=false;this.disabled=false;this.autocomplete="off";this.filterable=false;this.open=false;this.parsedOptions=[];this.selectedValues=[];this.sortedOptions=[];this.filterText="";this.isFilterable=this.filterable;this.debounceDelay=300;this.modeState="options";this.isHandlingEscape=false;this.autofocus=false;this.handleBadgeCloseOptions=()=>{this.selectedValues=[];this.multiselectChange.emit(this.selectedValues);const t=Array.from(this.el.querySelectorAll("nv-fielddropdownitemcheck"));t.forEach((t=>{t.checked=false;t.style.display=""}));this.parsedOptions=this.parsedOptions.filter((t=>!t.isDivider));this.reorderOptionsContent()};this.handleBadgeCloseSlots=()=>{this.selectedValues=[];this.multiselectChange.emit(this.selectedValues);const t=Array.from(this.el.querySelectorAll("nv-fielddropdownitemcheck"));t.forEach((t=>{t.checked=false;t.style.display=""}));this.reorderSlotContent()};this.handlePopoverClose=()=>{if(this.isHandlingEscape){return}this.filterText="";if(this.modeState==="options"){this.reorderOptionsContent()}else{this.reorderSlotContent()}if(this.filterable){this.resetFilter()}};this.handleInputBlurOptions=()=>{setTimeout((()=>{if(!this.el.contains(document.activeElement)){this.open=false;if(this.filterable){this.filterText="";this.resetFilter()}}}),150)};this.handleInputContainerClickOptions=t=>{if(this.disabled||this.readonly){return}const e=t.target;if(e.tagName==="P"||e.tagName==="SPAN"){this.open=true;const t=this.el.querySelector(".input-container");if(t){t.classList.add("focus-within");const e=()=>{t.classList.remove("focus-within")};this.popoverElement.addEventListener("hide",e)}}};this.handleInputContainerClickSlots=t=>{if(this.disabled||this.readonly){return}const e=t.target;if(e.tagName==="P"||e.tagName==="SPAN"){this.open=true;const t=this.el.querySelector(".input-container");if(t){t.classList.add("focus-within");const e=()=>{t.classList.remove("focus-within")};this.popoverElement.addEventListener("hide",e)}}};this.handleInputOptions=t=>{if(!this.filterable)return;if(this.disabled||this.readonly){return}const e=t.target;this.value=e.value;this.valueChanged.emit(this.value);if(this.debounceTimer){window.clearTimeout(this.debounceTimer)}this.debounceTimer=window.setTimeout((()=>{this.filterText=e.value.toLowerCase();this.filterItemsOption()}),this.debounceDelay)};this.handleInputSlots=t=>{if(!this.filterable)return;if(this.disabled||this.readonly)return;const e=t.target;this.value=e.value;this.valueChanged.emit(this.value);if(this.debounceTimer){window.clearTimeout(this.debounceTimer)}this.debounceTimer=window.setTimeout((()=>{this.filterText=e.value.toLowerCase();this.filterSlotsItems()}),this.debounceDelay)};this.handleInputFocusOptions=()=>{if(this.disabled||this.readonly){return}this.open=true};this.handleInputFocusSlots=()=>{if(this.disabled||this.readonly){return}this.open=true};this.handleInputBlurSlots=()=>{setTimeout((()=>{if(!this.el.contains(document.activeElement)){this.open=false;if(this.filterable){this.filterText="";this.resetFilter()}}}),150)};this.togglePopoverOptions=()=>{if(this.disabled||this.readonly){return}this.open=!this.open};this.togglePopoverSlots=()=>{if(this.disabled||this.readonly){return}this.open=!this.open};this.renderOptionsMode=()=>i(s,null,(this.label||this.el.querySelector('[slot="label"]'))&&i("label",{htmlFor:this.inputId},i("slot",{name:"label"},this.label)),i("nv-popover",{ref:t=>this.popoverElement=t,triggerMode:"controlled",placement:"bottom-start",open:this.open},i("div",{class:"input-wrapper-multiselect",slot:"trigger"},i("slot",{name:"before-input"}),i("div",{class:"input-container-multiselect"},i("slot",{name:"leading-input"}),i("nv-badge",{slot:"leading-input","prevent-auto-close":true,color:"10",dismissible:this.selectedValues.length>0,hidden:this.selectedValues.length<=0,label:`${this.selectedValues.length} ${this.badgeLabel}`,"aria-label":`Clear all ${this.selectedValues.length} ${this.badgeLabel} items`,onCloseClicked:this.handleBadgeCloseOptions}),this.isFilterable||this.disabled||this.readonly?i("input",{type:"text",id:this.inputId,ref:t=>this.inputElement=t,autofocus:this.autofocus,autocomplete:this.autocomplete,placeholder:this.placeholder,name:this.name,value:this.value,required:this.required,disabled:this.disabled,readOnly:this.readonly,onInput:this.handleInputOptions,onFocus:this.handleInputFocusOptions,onBlur:this.handleInputBlurOptions,onKeyDown:this.handleKeyDown}):i("p",{id:this.inputId,class:"non-filterable-text",onClick:this.handleInputContainerClickOptions,tabIndex:0,onKeyDown:this.handleKeyDown,onFocus:this.handleInputFocusOptions,role:"combobox","aria-expanded":this.open},i("span",null,this.value||this.placeholder)),this.error&&i("nv-icon",{name:"alert-circle",class:"validation",size:"md"}),i("nv-iconbutton",{"data-scope":"toggle-dropdown",name:this.open?"chevron-top":"chevron-down",size:"md",emphasis:"lower","aria-label":this.open?"Hide dropdown":"Show dropdown","aria-pressed":this.open.toString(),onClick:this.togglePopoverOptions})),i("slot",{name:"after-input"})),i("div",{slot:"content",role:"listbox","aria-multiselectable":"true",style:{"max-height":this.maxHeight,"overflow-y":"auto"}},i("ul",{role:"content"},this.parsedOptions.map((t=>i("nv-fielddropdownitemcheck",{label:t.label,description:t.description,value:t.value,checked:this.selectedValues.includes(t.value),disabled:t.disabled}))),i("hr",{class:"multiselect-divider",style:{display:"none"}})))),this.renderDescriptions());this.renderSlotsMode=()=>i(s,null,(this.label||this.el.querySelector('[slot="label"]'))&&i("label",{htmlFor:this.inputId},i("slot",{name:"label"},this.label)),i("nv-popover",{ref:t=>this.popoverElement=t,triggerMode:"controlled",placement:"bottom-start",open:this.open},i("div",{class:"input-wrapper-multiselect",slot:"trigger"},i("slot",{name:"before-input"}),i("div",{class:"input-container-multiselect",onClick:this.handleInputContainerClickSlots},i("slot",{name:"leading-input"}),i("nv-badge",{slot:"leading-input","prevent-auto-close":true,color:"10",dismissible:this.selectedValues.length>0,hidden:this.selectedValues.length<=0,label:`${this.selectedValues.length} ${this.badgeLabel}`,"aria-label":`Clear all ${this.selectedValues.length} ${this.badgeLabel} items`,onCloseClicked:this.handleBadgeCloseSlots}),this.isFilterable||this.disabled||this.readonly?i("input",{id:this.inputId,ref:t=>this.inputElement=t,autocomplete:this.autocomplete,placeholder:this.placeholder,name:this.name,value:this.value,required:this.required,disabled:this.disabled,readOnly:this.readonly,onInput:this.handleInputSlots,onFocus:this.handleInputFocusSlots,onBlur:this.handleInputBlurSlots,onKeyDown:this.handleKeyDown}):i("p",{id:this.inputId,class:"non-filterable-text",onClick:this.handleInputContainerClickSlots,tabIndex:0,onKeyDown:this.handleKeyDown,onFocus:this.handleInputFocusSlots,role:"combobox","aria-expanded":this.open},i("span",null,this.value||this.placeholder)),this.error&&i("nv-icon",{name:"alert-circle",class:"validation",size:"md"}),i("nv-iconbutton",{"data-scope":"toggle-dropdown",name:this.open?"chevron-top":"chevron-down",size:"md",emphasis:"lower","aria-label":this.open?"Hide dropdown":"Show dropdown","aria-pressed":this.open.toString(),onClick:this.togglePopoverSlots})),i("slot",{name:"after-input"})),i("div",{slot:"content",role:"listbox","aria-multiselectable":"true",style:{"max-height":this.maxHeight,"overflow-y":"auto"}},i("slot",{name:"content"}))),this.renderDescriptions())}connectedCallback(){document.addEventListener("click",this.handleClickOutside.bind(this))}componentWillLoad(){this.modeState=this.options?"options":"slots";if(this.modeState==="options"){this.handleOptionsChange(this.options)}if(this.modeState==="slots"){Promise.resolve().then((()=>{const t=Array.from(this.el.querySelectorAll("nv-fielddropdownitemcheck"));this.selectedValues=t.filter((t=>t.hasAttribute("checked"))).map((t=>t.getAttribute("value")||""));requestAnimationFrame((()=>{this.reorderSlotContent()}))}))}if(this.modeState==="options"){this.sortedOptions=[...this.parsedOptions]}if(this.filterable&&this.value){this.filterText=String(this.value).toLocaleLowerCase();this.filterItems()}else{this.resetFilter()}}componentDidLoad(){if(this.modeState==="options"){requestAnimationFrame((()=>{this.reorderOptionsContent()}))}}disconnectedCallback(){document.removeEventListener("click",this.handleClickOutside.bind(this))}handleOpenChanged(t){this.open=t.detail;if(this.open){if(this.filterText){this.filterItems()}}else{this.handlePopoverClose()}}handleItemChecked(t){if(this.disabled||this.readonly){return}const{value:e,checked:i}=t.detail;if(e!==undefined&&e!==null){const t=[...this.selectedValues];const s=t.indexOf(e);if(i&&s===-1){t.push(e)}else if(!i&&s>-1){t.splice(s,1)}if(JSON.stringify(this.selectedValues)!==JSON.stringify(t)){this.selectedValues=t;requestAnimationFrame((()=>{this.multiselectChange.emit(this.selectedValues)}))}}else{console.warn("Received itemChecked event with undefined or null value")}}handleOptionsChange(t){if(typeof t==="string"){try{const e=JSON.parse(t);this.selectedValues=e.filter((t=>t.checked)).map((t=>t.value));this.parsedOptions=[...e]}catch(t){console.error("Error parsing options:",t);this.parsedOptions=[]}}else if(Array.isArray(t)){this.selectedValues=t.filter((t=>t.checked)).map((t=>t.value));this.parsedOptions=[...t]}else{this.parsedOptions=[]}Promise.resolve().then((()=>{requestAnimationFrame((()=>{if(this.modeState==="options"){this.reorderOptionsContent()}}))}))}watchValueHandler(){this.setInitialSelection()}watchFilterableHandler(t){this.isFilterable=t;this.filterable=t}handleSlotChange(t){const e=t.target;if(e&&e.name==="content"){requestAnimationFrame((()=>{this.reorderSlotContent()}))}}async getFilterText(){return this.filterText}setInitialSelection(){var t;const e=Array.from(this.el.querySelectorAll("nv-fielddropdownitem"));const i=e.find((t=>{var e;return t.getAttribute("label")===this.value||t.getAttribute("value")===this.value||((e=t.textContent)===null||e===void 0?void 0:e.trim())===this.value}));e.forEach((t=>{t.removeAttribute("selected");t.classList.remove("selected")}));if(i){i.setAttribute("selected","true");i.classList.add("selected");this.value=i.getAttribute("label")||i.getAttribute("value")||((t=i.textContent)===null||t===void 0?void 0:t.trim())||"";if(this.inputElement){this.inputElement.value=this.value}}}async resetFilter(){const t=Array.from(this.el.querySelectorAll("nv-fielddropdownitemcheck"));t.forEach((t=>{t.style.display=""}));const e=this.el.querySelector("ul");if(e){const i=e.querySelector("[data-empty]");if(i)i.remove();const s=t.filter((t=>this.selectedValues.includes(t.getAttribute("value")||"")));const o=t.filter((t=>!this.selectedValues.includes(t.getAttribute("value")||"")));if(s.length>0){this.manageDivider(e,s,o)}}}async getSelectedValues(){return this.selectedValues}reorderSlotContent(){if(this.modeState==="options")return;const t=this.el.querySelector("ul");if(!t)return;t.querySelectorAll("hr.multiselect-divider").forEach((t=>t.remove()));const e=Array.from(this.el.querySelectorAll("nv-fielddropdownitemcheck")).filter((t=>t.style.display!=="none"));const i=t.querySelector("[data-empty]");if(i){return}const s=e.filter((t=>this.selectedValues.includes(t.getAttribute("value")||"")));const o=e.filter((t=>!this.selectedValues.includes(t.getAttribute("value")||"")));s.forEach((e=>{t.appendChild(e)}));if(s.length>0&&o.length>0){const e=document.createElement("hr");e.className="multiselect-divider";t.appendChild(e)}o.forEach((e=>{t.appendChild(e)}))}reorderOptionsContent(){const t=this.el.querySelector('ul[role="content"]');if(!t)return;const e=Array.from(t.querySelectorAll("nv-fielddropdownitemcheck")).filter((t=>t.style.display!=="none"));const i=e.filter((t=>this.selectedValues.includes(t.getAttribute("value")||"")));const s=e.filter((t=>!this.selectedValues.includes(t.getAttribute("value")||"")));i.forEach((e=>t.appendChild(e)));s.forEach((e=>t.appendChild(e)));this.manageDivider(t,i,s)}filterItems(){const t=this.el.querySelector("ul");if(!t)return;const e=t.querySelector("[data-empty]");if(e){e.remove()}if(!this.filterText.trim()){if(this.parsedOptions&&this.parsedOptions.length>0){const e=Array.from(t.querySelectorAll("nv-fielddropdownitemcheck"));e.forEach((t=>{t.style.display=""}))}else{const t=Array.from(this.el.querySelectorAll("nv-fielddropdownitemcheck"));t.forEach((t=>{t.style.display=""}))}const e=Array.from(t.querySelectorAll("nv-fielddropdownitemcheck"));const i=e.filter((t=>this.selectedValues.includes(t.getAttribute("value")||"")));const s=e.filter((t=>!this.selectedValues.includes(t.getAttribute("value")||"")));this.manageDivider(t,i,s);return}const i=this.normalizeText(this.filterText);let s=false;if(this.parsedOptions&&this.parsedOptions.length>0){const e=Array.from(t.querySelectorAll("nv-fielddropdownitemcheck"));e.forEach((t=>{const e=this.parsedOptions.find((e=>e.value===t.getAttribute("value")));if(e&&!e.isDivider){const o=this.normalizeText(e.label).includes(i)||this.normalizeText(e.value).includes(i);t.style.display=o?"":"none";if(o)s=true}}));const o=e.filter((t=>t.style.display!=="none"));const n=o.filter((t=>this.selectedValues.includes(t.getAttribute("value")||"")));const r=o.filter((t=>!this.selectedValues.includes(t.getAttribute("value")||"")));this.manageDivider(t,n,r)}else{const t=Array.from(this.el.querySelectorAll("nv-fielddropdownitemcheck"));t.forEach((t=>{const e=t.getAttribute("label")||"";const o=t.getAttribute("value")||"";const n=t.textContent||"";const r=this.normalizeText(e).includes(i)||this.normalizeText(o).includes(i)||this.normalizeText(n).includes(i);t.style.display=r?"":"none";if(r)s=true}))}if(!s){const e=document.createElement("li");e.setAttribute("data-empty","true");e.textContent=this.emptyResult;e.classList.add("no-results-message");t.appendChild(e)}this.reorderSlotContent()}filterItemsOption(){const t=this.el.querySelector("ul");if(!t)return;const e=this.normalizeText(this.filterText);let i=false;const s=Array.from(t.querySelectorAll("nv-fielddropdownitemcheck"));if(!this.filterText.trim()){this.removeEmptyMessageOption(t);s.forEach((t=>t.style.display=""));this.reorderOptionsContent();return}s.forEach((t=>{const s=t.getAttribute("label")||"";const o=t.getAttribute("value")||"";const n=this.normalizeText(s).includes(e)||this.normalizeText(o).includes(e);t.style.display=n?"":"none";if(n)i=true}));const o=s.filter((t=>t.style.display!=="none"));const n=o.filter((t=>this.selectedValues.includes(t.getAttribute("value")||"")));const r=o.filter((t=>!this.selectedValues.includes(t.getAttribute("value")||"")));this.manageDivider(t,n,r);if(!i){this.addEmptyMessageOption(t)}else{this.removeEmptyMessageOption(t)}}filterSlotsItems(){if(this.modeState==="options")return;const t=this.el.querySelector("ul");if(!t)return;const e=t.querySelector("[data-empty]");if(e){e.remove()}if(!this.filterText.trim()){this.resetFilter();return}const i=this.normalizeText(this.filterText);let s=false;const o=Array.from(this.el.querySelectorAll("nv-fielddropdownitemcheck"));o.forEach((t=>{var e;const o=t.getAttribute("label")||"";const n=t.getAttribute("value")||"";const r=((e=t.textContent)===null||e===void 0?void 0:e.trim())||"";const l=this.normalizeText(o).includes(i)||this.normalizeText(n).includes(i)||this.normalizeText(r).includes(i);t.style.display=l?"":"none";if(l)s=true}));const n=o.filter((t=>t.style.display!=="none"));const r=n.filter((t=>this.selectedValues.includes(t.getAttribute("value")||"")));this.manageDivider(t,r,n.filter((t=>!this.selectedValues.includes(t.getAttribute("value")||""))));if(!s){const e=document.createElement("li");e.setAttribute("data-empty","true");e.textContent=this.emptyResult;e.classList.add("no-results-message");t.appendChild(e)}}normalizeText(t){return t.normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().trim()}handleClickOutside(t){if(this.el.contains(t.target)||this.inputElement&&this.inputElement.contains(t.target)){return}this.open=false}async handleKeyDown(t){if(!this.open){if(t.key==="ArrowDown"){this.open=true;if(!this.filterable){requestAnimationFrame((()=>{this.focusFirstItem()}))}t.preventDefault();return}return}const e=Array.from(this.el.querySelectorAll('nv-fielddropdownitemcheck:not([style*="display: none"])'));if(e.length===0){console.warn("No visible items found to navigate");return}let i=e.findIndex((t=>t.classList.contains("highlighted")));if(t.key==="ArrowDown"){t.preventDefault();i=i===-1?0:(i+1)%e.length;this.updateHighlightedItem(e,i)}else if(t.key==="ArrowUp"){t.preventDefault();i=i===-1?e.length-1:(i-1+e.length)%e.length;this.updateHighlightedItem(e,i)}else if(t.key==="Enter"&&i>=0){t.preventDefault();const s=e[i];const o=s.hasAttribute("checked");s.checked=!o;s.dispatchEvent(new MouseEvent("click",{view:window,bubbles:true,cancelable:true}))}else if(t.key==="Escape"){t.preventDefault();t.stopPropagation();const e=async()=>{this.isHandlingEscape=true;if(this.modeState==="options"){this.reorderOptionsContent()}else{this.reorderSlotContent()}await new Promise((t=>setTimeout(t,100)));setTimeout((()=>{this.isHandlingEscape=false;this.open=false}),150);if(this.inputElement){this.inputElement.blur()}};await e()}}updateHighlightedItem(t,e){t.forEach(((t,i)=>{if(i===e){t.classList.add("highlighted");t.setAttribute("tabindex","0");t.scrollIntoView({block:"nearest"});const e=t.querySelector("nv-fieldcheckbox");if(e){e.focus()}}else{t.classList.remove("highlighted");t.setAttribute("tabindex","-1")}}))}focusFirstItem(){const t=this.el.querySelector('nv-fielddropdownitemcheck:not([style*="display: none"])');if(t){t.setAttribute("tabindex","0");t.classList.add("highlighted");t.scrollIntoView({block:"nearest"});const e=t.querySelector("nv-fieldcheckbox");if(e){e.focus()}}else{console.warn("No visible first item found to focus")}}addEmptyMessageOption(t){const e=t.querySelector("[data-empty]");if(e)return;const i=document.createElement("li");i.setAttribute("data-empty","true");i.textContent=this.emptyResult;i.classList.add("no-results-message");t.appendChild(i)}removeEmptyMessageOption(t){const e=t.querySelector("[data-empty]");if(e)e.remove()}manageDivider(t,e,i){let s=t.querySelector("hr.multiselect-divider");if(!s){s=document.createElement("hr");s.className="multiselect-divider";t.appendChild(s)}const o=e.length>0&&i.length>0;if(o){const t=e[e.length-1];t.after(s);s.style.display=""}else{s.style.display="none"}}renderDescriptions(){return[(this.description||this.el.querySelector('[slot="description"]'))&&i("div",{class:"description"},i("slot",{name:"description"},this.description)),(this.errorDescription||this.el.querySelector('[slot="error-description"]'))&&i("div",{hidden:!this.error,class:"error-description"},i("slot",{name:"error-description"},this.errorDescription))]}render(){return this.modeState==="options"?this.renderOptionsMode():this.renderSlotsMode()}static get formAssociated(){return true}get el(){return o(this)}static get watchers(){return{options:["handleOptionsChange"],value:["watchValueHandler"],filterable:["watchFilterableHandler"]}}};a.style=l;export{a as nv_fieldmultiselect};
|
|
2
|
+
//# sourceMappingURL=p-42d020a7.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["nvFieldmultiselectCss","NvFieldmultiselectStyle0","NvFieldmultiselect","constructor","hostRef","this","inputId","uuidv4","maxHeight","badgeLabel","emptyResult","required","error","readonly","disabled","autocomplete","filterable","open","parsedOptions","selectedValues","sortedOptions","filterText","isFilterable","debounceDelay","modeState","isHandlingEscape","autofocus","handleBadgeCloseOptions","multiselectChange","emit","items","Array","from","el","querySelectorAll","forEach","item","checked","style","display","filter","option","isDivider","reorderOptionsContent","handleBadgeCloseSlots","reorderSlotContent","handlePopoverClose","resetFilter","handleInputBlurOptions","setTimeout","contains","document","activeElement","handleInputContainerClickOptions","event","target","tagName","inputContainer","querySelector","classList","add","removeFocusWithin","remove","popoverElement","addEventListener","handleInputContainerClickSlots","handleInputOptions","input","value","valueChanged","debounceTimer","window","clearTimeout","toLowerCase","filterItemsOption","handleInputSlots","filterSlotsItems","handleInputFocusOptions","handleInputFocusSlots","handleInputBlurSlots","togglePopoverOptions","togglePopoverSlots","renderOptionsMode","h","Host","label","htmlFor","name","ref","triggerMode","placement","class","slot","color","dismissible","length","hidden","onCloseClicked","type","id","e","inputElement","placeholder","readOnly","onInput","onFocus","onBlur","onKeyDown","handleKeyDown","onClick","tabIndex","role","size","emphasis","toString","map","description","includes","renderDescriptions","renderSlotsMode","connectedCallback","handleClickOutside","bind","componentWillLoad","options","handleOptionsChange","Promise","resolve","then","hasAttribute","getAttribute","requestAnimationFrame","String","toLocaleLowerCase","filterItems","componentDidLoad","disconnectedCallback","removeEventListener","handleOpenChanged","detail","handleItemChecked","undefined","newSelectedValues","valueIndex","indexOf","push","splice","JSON","stringify","console","warn","newValue","parsedOpts","parse","isArray","watchValueHandler","setInitialSelection","watchFilterableHandler","handleSlotChange","getFilterText","selectedItem","find","_a","textContent","trim","removeAttribute","setAttribute","ul","emptyMessage","selectedItems","unselectedItems","manageDivider","getSelectedValues","divider","hasEmptyMessage","appendChild","createElement","className","existingEmptyMessage","normalizedFilter","normalizeText","hasVisibleItems","opt","matchesFilter","visibleItems","visibleSelected","visibleUnselected","removeEmptyMessageOption","addEmptyMessageOption","visibleSelectedItems","text","normalize","replace","key","focusFirstItem","preventDefault","currentIndex","findIndex","updateHighlightedItem","isCurrentlyChecked","dispatchEvent","MouseEvent","view","bubbles","cancelable","stopPropagation","handleEscape","async","blur","index","i","scrollIntoView","block","checkbox","focus","firstItem","existingMessage","shouldShowDivider","lastSelectedItem","after","errorDescription","render"],"sources":["src/components/nv-fieldmultiselect/nv-fieldmultiselect.scss?tag=nv-fieldmultiselect","src/components/nv-fieldmultiselect/nv-fieldmultiselect.tsx"],"sourcesContent":["@import '../../styles/form-field';\n\nnv-fieldmultiselect {\n @include form-field-variables();\n @include form-field-root();\n\n &[readonly]:not([readonly='false']) {\n @include form-field-readonly-variables();\n }\n\n &[error]:not([error='false']) {\n @include form-field-error-variables();\n }\n\n &[required]:not([required='false']) {\n > label {\n @include form-field-label-required();\n }\n }\n\n label {\n @include form-field-label();\n }\n\n nv-popover {\n @include form-field-popover();\n }\n\n .input-wrapper-multiselect {\n @include form-field-input-wrapper();\n width: 100%;\n }\n\n .input-container-multiselect {\n @include form-field-input-container();\n position: relative;\n width: 100%;\n min-height: 40px;\n\n > nv-badge {\n margin-left: var(--form-field-padding-x);\n }\n\n input,\n p.non-filterable-text {\n @include form-field-input();\n width: 100%;\n flex-grow: 1;\n margin: 0;\n min-height: 100%;\n box-sizing: border-box;\n }\n\n > nv-iconbutton {\n @include form-field-action();\n }\n\n nv-icon.validation {\n @include form-field-icon();\n }\n\n /* &:hover{\n border-color: var(--components-form-field-border-hover);\n }\n\n &:focus-visible,\n &:focus-within,\n &:focus,\n &.focus-within {\n border-color: var(--components-form-field-border-focus);\n box-shadow: 0px 0px 0px var(--focus-field-stroke)\n var(--nv-field-focus-box-shadow);\n } */\n }\n\n .non-filterable-text {\n display: block;\n border-radius: var(--form-field-radius);\n background-color: var(--nv-field-background);\n color: var(--components-form-field-content-text);\n font-size: var(--form-field-font-size);\n font-weight: 500;\n line-height: var(--form-field-line-height);\n box-sizing: border-box;\n cursor: pointer;\n height: 100%;\n min-height: 40px;\n\n span {\n display: inline-block;\n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n .description {\n @include form-field-description();\n }\n\n .error-description {\n @include form-field-error-description();\n }\n}\n\n.no-results-message {\n text-align: center;\n padding: 10px;\n color: var(--components-form-text-description-error);\n}\n\n.multiselect-divider {\n display: block;\n width: 100%;\n height: 1px;\n background-color: var(--components-list-dropdown-separator);\n margin: var(--list-dropdown-item-padding-y) 0;\n border: 0;\n}\n","import {\n Component,\n Host,\n h,\n Element,\n Prop,\n State,\n Listen,\n Event,\n EventEmitter,\n Watch,\n Method,\n} from '@stencil/core';\n\nimport { v4 as uuidv4 } from 'uuid';\nimport { TextInputAutocomplete } from '../../utils/constants';\n\n/**\n * @slot content - The content of the list.\n * @slot leading-input - Content to be placed before the input text, within the input container.\n * @slot before-input - Content to be placed before the input text, outside the input container.\n * @slot after-input - Content to be placed after the input text, outside the input container.\n * @slot label - Content to be placed as the label, will override the label prop.\n * @slot description - Content to be placed as the description, will override the description prop.\n * @slot error-description - Content to be placed as the error description, will override the errorDescription prop.\n */\n@Component({\n tag: 'nv-fieldmultiselect',\n styleUrl: 'nv-fieldmultiselect.scss',\n formAssociated: true,\n shadow: false,\n})\nexport class NvFieldmultiselect {\n @Element() el: HTMLNvFieldmultiselectElement;\n private inputElement!: HTMLInputElement;\n private popoverElement!: HTMLNvPopoverElement;\n /**\n * Timer for debouncing input events.\n * Private property preferred over @State as it:\n * - Doesn't need to trigger re-renders\n * - Is purely for internal logic\n * - Improves performance by avoiding Stencil's reactivity system\n */\n private debounceTimer: number;\n\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Sets the ID for the input element and the for attribute of the associated\n * label. If no ID is provided, a random one will be automatically generated\n * to ensure unique identification, facilitating proper label association and\n * accessibility.\n */\n @Prop({ reflect: true })\n readonly inputId: string = uuidv4();\n\n /**\n * Defines the name attribute of the input field, which is crucial for form\n * submission. This value is used as the key in the key-value pair sent to\n * the server, representing the input's data in form submissions. It should be\n * unique within the form to avoid conflicts.\n */\n @Prop({ reflect: true })\n readonly name: string;\n\n /**\n * Lets you define the text that explains what users should enter in the text\n * input field. It's a crucial element for making forms clear and user-friendly.\n */\n @Prop({ reflect: true })\n readonly label: string;\n\n /**\n * Add helpful hints or extra information under the text input field.\n */\n @Prop({ reflect: true })\n readonly description: string;\n\n /**\n * Display temporary text inside the input field.\n */\n @Prop({ reflect: true })\n readonly placeholder: string;\n\n /**\n * Defines the maximum height of the multiselect list when open.\n */\n @Prop({ reflect: true })\n readonly maxHeight: string = '200px';\n\n /**\n * Text for the badge showing the number of selected items.\n */\n @Prop({ reflect: true })\n readonly badgeLabel: string = '';\n\n /**\n * The text to display when no items match the filter.\n */\n @Prop({ reflect: true })\n readonly emptyResult: string = 'No results found';\n\n /**\n * Marks the input field as required.\n */\n @Prop({ reflect: true })\n readonly required: boolean = false;\n\n /**\n * Alters the input field's appearance to indicate an error, helping users\n * identify fields that need correction.\n * @validator error\n */\n @Prop({ reflect: true })\n readonly error: boolean = false;\n\n /**\n * A description that appears when there is an error related to the multiselect\n * field.\n * @validator message\n */\n @Prop({ reflect: true })\n readonly errorDescription: string;\n\n /**\n * Display the input field's content without allowing users to change it.\n */\n @Prop({ reflect: true })\n readonly readonly: boolean = false;\n\n /**\n * Disables the input field.\n */\n @Prop({ reflect: true })\n readonly disabled: boolean = false;\n\n /**\n * The autocomplete prop for faster input filling.\n */\n @Prop({ reflect: true })\n readonly autocomplete: `${TextInputAutocomplete}` = 'off';\n\n /**\n * Enables or disables the filtering feature for the multiselect items.\n */\n @Prop({ reflect: true, mutable: true })\n filterable: boolean = false;\n\n /**\n * Specifies the value of the input field.\n */\n @Prop({ reflect: true, mutable: true })\n value: string;\n\n /**\n * State of the multiselect popover.\n */\n @Prop({ reflect: true, mutable: true })\n open: boolean = false;\n\n /**\n * List of options available in the multiselect.\n * @description The options are passed as a JSON string.\n * @example options='[{\"label\": \"Option 1\", \"value\": \"option1\"}, {\"label\": \"Option 2\", \"value\": \"option2\"}]'\n */\n @Prop({ reflect: true })\n readonly options?: string;\n\n /**\n * Options configuration for the multiselect items.\n */\n @State()\n parsedOptions: Array<{\n /** Label to display for the option */\n label: string;\n /** Value associated with the option */\n value: string;\n /** Whether this option is a divider */\n isDivider?: boolean;\n /** Whether this option is disabled */\n disabled?: boolean;\n /** Additional description for the option */\n description?: string;\n /** Whether this option is pre-checked */\n checked?: boolean;\n }> = [];\n\n /**\n * List of selected values in the multiselect.\n */\n @State()\n selectedValues: string[] = [];\n\n /**\n * Sorted options for display.\n */\n @State()\n sortedOptions: Array<{\n /** Label to display for the option */\n label: string;\n /** Value associated with the option */\n value: string;\n /** Whether this option is a divider */\n isDivider?: boolean;\n }> = [];\n\n /**\n * The text entered by the user for filtering multiselect items.\n */\n @State()\n filterText: string = '';\n\n /**\n * Determines whether the multiselect is filterable.\n */\n @State()\n isFilterable: boolean = this.filterable;\n\n /**\n * Delay in milliseconds before the search is triggered when typing in the filter input.\n * @default 300\n */\n @Prop({ reflect: true })\n readonly debounceDelay: number = 300;\n\n /**\n * State for the mode of the multiselect.\n * @type {'options' | 'slots'}\n * @default 'options'\n */\n @State()\n modeState: 'options' | 'slots' = 'options'; // Default value\n\n @State()\n private isHandlingEscape: boolean = false;\n\n /**\n * Applies focus to the input field as soon as the component is mounted. This\n * is equivalent to setting the native autofocus attribute on an <input>\n * element.\n */\n @Prop({ reflect: true })\n // eslint-disable-next-line @stencil-community/reserved-member-names\n readonly autofocus: boolean = false;\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region LIFECYCLE\n\n /**\n * Subscribe to click outside event.\n */\n connectedCallback() {\n document.addEventListener('click', this.handleClickOutside.bind(this));\n }\n\n /**\n * Set the mode state and handle options change.\n */\n componentWillLoad() {\n this.modeState = this.options ? 'options' : 'slots';\n\n // Don't call handleOptionsChange if we are in slots mode\n if (this.modeState === 'options') {\n this.handleOptionsChange(this.options);\n }\n\n // Specific initialization for slots mode\n if (this.modeState === 'slots') {\n Promise.resolve().then(() => {\n const items = Array.from(\n this.el.querySelectorAll('nv-fielddropdownitemcheck'),\n );\n\n // Initialize selectedValues with checked items\n this.selectedValues = items\n .filter(item => item.hasAttribute('checked'))\n .map(item => item.getAttribute('value') || '');\n\n // Force a reorder after initialization\n requestAnimationFrame(() => {\n this.reorderSlotContent();\n });\n });\n }\n\n // Initialize the sorted options array with the parsed options for initial rendering\n if (this.modeState === 'options') {\n this.sortedOptions = [...this.parsedOptions];\n }\n\n // Apply filtering if the multiselect is filterable and there is a value\n if (this.filterable && this.value) {\n this.filterText = String(this.value).toLocaleLowerCase();\n this.filterItems();\n } else {\n // Reset visibility state of all dropdown items\n this.resetFilter();\n }\n }\n\n /**\n * Force reorder if options mode in componentDidLoad because of the initial render not trigger @watch\n */\n componentDidLoad() {\n if (this.modeState === 'options') {\n requestAnimationFrame(() => {\n this.reorderOptionsContent();\n });\n }\n }\n\n /**\n * Unsubscribe from click outside event.\n */\n disconnectedCallback() {\n document.removeEventListener('click', this.handleClickOutside.bind(this));\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emitted when the input value changes.\n * @bind value\n */\n @Event()\n valueChanged: EventEmitter<string>;\n\n /**\n * Event emitted when the selection changes in the multiselect.\n * Emits the current list of selected values.\n */\n @Event()\n multiselectChange: EventEmitter<string[]>;\n\n /**\n * Emitted when the input loses focus.\n * @param {CustomEvent<boolean>} event - The event object containing the focus state.\n */\n @Listen('openChanged')\n handleOpenChanged(event: CustomEvent<boolean>) {\n // Update the open state of popover\n this.open = event.detail;\n\n if (this.open) {\n // Filter items only if there is filter text\n if (this.filterText) {\n this.filterItems();\n }\n } else {\n this.handlePopoverClose();\n }\n }\n\n /**\n * Listen for the `itemChecked` event emitted by child items.\n * @param {CustomEvent} event - The event object containing the selected value and its checked state.\n */\n @Listen('itemChecked')\n handleItemChecked(\n event: CustomEvent<{\n /** Value associated with the option */\n value: string;\n /** Whether this option is checked */\n checked: boolean;\n }>,\n ) {\n if (this.disabled || this.readonly) {\n return;\n }\n\n const { value, checked } = event.detail;\n\n if (value !== undefined && value !== null) {\n const newSelectedValues = [...this.selectedValues];\n const valueIndex = newSelectedValues.indexOf(value);\n\n if (checked && valueIndex === -1) {\n newSelectedValues.push(value);\n } else if (!checked && valueIndex > -1) {\n newSelectedValues.splice(valueIndex, 1);\n }\n\n // Update the state and emit the event only if the selection has changed\n if (\n JSON.stringify(this.selectedValues) !==\n JSON.stringify(newSelectedValues)\n ) {\n this.selectedValues = newSelectedValues;\n\n // Use requestAnimationFrame to ensure the state is updated before emitting the event\n requestAnimationFrame(() => {\n this.multiselectChange.emit(this.selectedValues);\n });\n }\n } else {\n console.warn('Received itemChecked event with undefined or null value'); // Warning log\n }\n }\n\n /**\n * Emitted when the options change.\n * @param {string | Array<{label: string, value: string, isDivider?: boolean, disabled?: boolean, description?: string, checked?: boolean}>} newValue - The new value of the options.\n */\n @Watch('options')\n handleOptionsChange(\n newValue:\n | string\n | Array<{\n /** Label to display for the option */\n label: string;\n /** Value associated with the option */\n value: string;\n /** Whether this option is a divider */\n isDivider?: boolean;\n /** Whether this option is disabled */\n disabled?: boolean;\n /** Additional description for the option */\n description?: string;\n /** Whether this option is pre-checked */\n checked?: boolean;\n }>,\n ) {\n if (typeof newValue === 'string') {\n try {\n const parsedOpts = JSON.parse(newValue);\n this.selectedValues = parsedOpts\n .filter(option => option.checked)\n .map(option => option.value);\n this.parsedOptions = [...parsedOpts];\n } catch (error) {\n console.error('Error parsing options:', error);\n this.parsedOptions = [];\n }\n } else if (Array.isArray(newValue)) {\n this.selectedValues = newValue\n .filter(option => option.checked)\n .map(option => option.value);\n this.parsedOptions = [...newValue];\n } else {\n this.parsedOptions = [];\n }\n\n // Wait for the options to be fully loaded\n Promise.resolve().then(() => {\n requestAnimationFrame(() => {\n if (this.modeState === 'options') {\n this.reorderOptionsContent();\n }\n });\n });\n }\n\n /**\n * Emitted when the value changes.\n */\n @Watch('value')\n watchValueHandler() {\n // Handle value change and update the corresponding multiselect item if it exists\n this.setInitialSelection();\n }\n\n /**\n * Emitted when the filterable property changes.\n * @param {boolean} newValue - The new value of the filterable property.\n */\n @Watch('filterable')\n watchFilterableHandler(newValue: boolean) {\n this.isFilterable = newValue;\n this.filterable = newValue;\n }\n\n // Add a listener for the slot content\n @Listen('slotchange')\n handleSlotChange(event: Event) {\n // Check: we only want to reorder if it's the \"content\" slot\n const slot = event.target as HTMLSlotElement;\n if (slot && slot.name === 'content') {\n // To give other platforms (VueJS, React, etc.) time to insert all their items,\n // we place the reorder in a requestAnimationFrame\n requestAnimationFrame(() => {\n this.reorderSlotContent();\n });\n }\n }\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region METHODS\n\n /**\n * Retrieves the current filter text entered by the user.\n * @returns {string} The filter text.\n */\n @Method()\n async getFilterText(): Promise<string> {\n return this.filterText;\n }\n\n /**\n * Set the initial selection based on the current value and update the inputElement value.\n */\n private setInitialSelection() {\n const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitem'));\n\n const selectedItem = items.find(\n item =>\n item.getAttribute('label') === this.value ||\n item.getAttribute('value') === this.value ||\n item.textContent?.trim() === this.value,\n );\n\n // Remove 'selected' from all items first to reset the state\n items.forEach(item => {\n item.removeAttribute('selected');\n item.classList.remove('selected');\n });\n\n if (selectedItem) {\n // Add the `selected` attribute and `selected` class for visual styling\n selectedItem.setAttribute('selected', 'true');\n selectedItem.classList.add('selected');\n\n // Update the value and inputElement value to reflect the pre-selected item\n this.value =\n selectedItem.getAttribute('label') ||\n selectedItem.getAttribute('value') ||\n selectedItem.textContent?.trim() ||\n '';\n if (this.inputElement) {\n this.inputElement.value = this.value;\n }\n }\n }\n\n /**\n * Reset the filter and make all items visible.\n */\n @Method()\n async resetFilter(): Promise<void> {\n const items = Array.from(\n this.el.querySelectorAll('nv-fielddropdownitemcheck'),\n );\n\n // Reset visibility state of all dropdown items\n items.forEach(item => {\n item.style.display = '';\n });\n\n // Clean up filter-related UI elements\n const ul = this.el.querySelector('ul');\n if (ul) {\n const emptyMessage = ul.querySelector('[data-empty]');\n if (emptyMessage) emptyMessage.remove();\n\n // Reorder with divider if needed\n const selectedItems = items.filter(item =>\n this.selectedValues.includes(item.getAttribute('value') || ''),\n );\n const unselectedItems = items.filter(\n item => !this.selectedValues.includes(item.getAttribute('value') || ''),\n );\n\n if (selectedItems.length > 0) {\n this.manageDivider(ul as HTMLElement, selectedItems, unselectedItems);\n }\n }\n }\n\n /**\n * Returns the list of selected values.\n * @returns {string[]} The selected values.\n */\n @Method()\n async getSelectedValues(): Promise<string[]> {\n return this.selectedValues;\n }\n\n /**\n * Reorder the content of the slot.\n */\n private reorderSlotContent() {\n if (this.modeState === 'options') return;\n\n const ul = this.el.querySelector('ul');\n if (!ul) return;\n\n // Remove all existing <hr class=\"multiselect-divider\">\n ul.querySelectorAll('hr.multiselect-divider').forEach(divider =>\n divider.remove(),\n );\n\n // Retrieve all items (not hidden)\n const items = Array.from(\n this.el.querySelectorAll('nv-fielddropdownitemcheck'),\n ).filter(item => item.style.display !== 'none');\n\n // If you possibly have a \"No results\" message:\n const hasEmptyMessage = ul.querySelector('[data-empty]');\n if (hasEmptyMessage) {\n // if there is a \"No results found\" message, do not reorder\n return;\n }\n\n // Separate checked vs unchecked\n const selectedItems = items.filter(item =>\n this.selectedValues.includes(item.getAttribute('value') || ''),\n );\n const unselectedItems = items.filter(\n item => !this.selectedValues.includes(item.getAttribute('value') || ''),\n );\n\n // Reinsert CHECKED items FIRST\n // appendChild() moves the element without recreating it\n // this is not trigger a re-rendering of the component in the platforms\n selectedItems.forEach(item => {\n ul.appendChild(item); // <-- The <li> (or <nv-fielddropdownitemcheck>) is just \"moved\" to the end of the list\n });\n\n // Add a divider if needed\n if (selectedItems.length > 0 && unselectedItems.length > 0) {\n const divider = document.createElement('hr');\n divider.className = 'multiselect-divider';\n ul.appendChild(divider);\n }\n\n // Reinsert UNCHECKED items at the end\n unselectedItems.forEach(item => {\n ul.appendChild(item);\n });\n }\n\n /**\n * Reorder the content for options mode with async handling\n */\n private reorderOptionsContent() {\n const ul = this.el.querySelector('ul[role=\"content\"]') as HTMLElement;\n if (!ul) return;\n\n const items = Array.from(\n ul.querySelectorAll('nv-fielddropdownitemcheck'),\n ).filter(item => item.style.display !== 'none');\n\n const selectedItems = items.filter(item =>\n this.selectedValues.includes(item.getAttribute('value') || ''),\n );\n const unselectedItems = items.filter(\n item => !this.selectedValues.includes(item.getAttribute('value') || ''),\n );\n\n // Reorder the elements\n selectedItems.forEach(item => ul.appendChild(item));\n unselectedItems.forEach(item => ul.appendChild(item));\n\n // Manage the divider after the reordering\n this.manageDivider(ul, selectedItems, unselectedItems);\n }\n\n /**\n * Filter multiselect items based on the text entered by the user.\n */\n private filterItems() {\n const ul = this.el.querySelector('ul');\n if (!ul) return;\n\n // Remove existing empty message if any\n const existingEmptyMessage = ul.querySelector('[data-empty]');\n if (existingEmptyMessage) {\n existingEmptyMessage.remove();\n }\n\n if (!this.filterText.trim()) {\n if (this.parsedOptions && this.parsedOptions.length > 0) {\n // Reset options display\n const items = Array.from(\n ul.querySelectorAll('nv-fielddropdownitemcheck'),\n );\n items.forEach(item => {\n item.style.display = '';\n });\n } else {\n // Reset slot items display\n const items = Array.from(\n this.el.querySelectorAll('nv-fielddropdownitemcheck'),\n );\n items.forEach(item => {\n item.style.display = '';\n });\n }\n\n // Reorder with divider\n const items = Array.from(\n ul.querySelectorAll('nv-fielddropdownitemcheck'),\n );\n const selectedItems = items.filter(item =>\n this.selectedValues.includes(item.getAttribute('value') || ''),\n );\n const unselectedItems = items.filter(\n item => !this.selectedValues.includes(item.getAttribute('value') || ''),\n );\n this.manageDivider(ul, selectedItems, unselectedItems);\n return;\n }\n\n const normalizedFilter = this.normalizeText(this.filterText);\n let hasVisibleItems = false;\n\n if (this.parsedOptions && this.parsedOptions.length > 0) {\n // Filter options mode\n const items = Array.from(\n ul.querySelectorAll('nv-fielddropdownitemcheck'),\n );\n\n items.forEach(item => {\n const option = this.parsedOptions.find(\n opt => opt.value === item.getAttribute('value'),\n );\n if (option && !option.isDivider) {\n const matchesFilter =\n this.normalizeText(option.label).includes(normalizedFilter) ||\n this.normalizeText(option.value).includes(normalizedFilter);\n\n item.style.display = matchesFilter ? '' : 'none';\n if (matchesFilter) hasVisibleItems = true;\n }\n });\n\n // Manage the divider with the visible items\n const visibleItems = items.filter(item => item.style.display !== 'none');\n const visibleSelected = visibleItems.filter(item =>\n this.selectedValues.includes(item.getAttribute('value') || ''),\n );\n const visibleUnselected = visibleItems.filter(\n item => !this.selectedValues.includes(item.getAttribute('value') || ''),\n );\n this.manageDivider(ul, visibleSelected, visibleUnselected);\n } else {\n // Filter slot items mode\n const items = Array.from(\n this.el.querySelectorAll('nv-fielddropdownitemcheck'),\n );\n\n items.forEach(item => {\n const label = item.getAttribute('label') || '';\n const value = item.getAttribute('value') || '';\n const textContent = item.textContent || '';\n\n const matchesFilter =\n this.normalizeText(label).includes(normalizedFilter) ||\n this.normalizeText(value).includes(normalizedFilter) ||\n this.normalizeText(textContent).includes(normalizedFilter);\n\n item.style.display = matchesFilter ? '' : 'none';\n if (matchesFilter) hasVisibleItems = true;\n });\n }\n\n // Add empty message if no items match the filter\n if (!hasVisibleItems) {\n const emptyMessage = document.createElement('li');\n emptyMessage.setAttribute('data-empty', 'true');\n emptyMessage.textContent = this.emptyResult;\n emptyMessage.classList.add('no-results-message');\n ul.appendChild(emptyMessage);\n }\n\n this.reorderSlotContent();\n }\n\n /**\n * Filter multiselect items in options mode.\n */\n private filterItemsOption() {\n const ul = this.el.querySelector('ul');\n if (!ul) return;\n\n const normalizedFilter = this.normalizeText(this.filterText);\n let hasVisibleItems = false;\n\n const items = Array.from(ul.querySelectorAll('nv-fielddropdownitemcheck'));\n\n // Reset items if the filter text is empty\n if (!this.filterText.trim()) {\n // Remove the empty message if it exists\n this.removeEmptyMessageOption(ul);\n items.forEach(item => (item.style.display = ''));\n this.reorderOptionsContent(); // Reorder after reset\n return;\n }\n\n // Filter the items\n items.forEach(item => {\n const label = item.getAttribute('label') || '';\n const value = item.getAttribute('value') || '';\n\n const matchesFilter =\n this.normalizeText(label).includes(normalizedFilter) ||\n this.normalizeText(value).includes(normalizedFilter);\n\n item.style.display = matchesFilter ? '' : 'none';\n if (matchesFilter) hasVisibleItems = true;\n });\n\n // Manage the divider with the visible items\n const visibleItems = items.filter(item => item.style.display !== 'none');\n const visibleSelected = visibleItems.filter(item =>\n this.selectedValues.includes(item.getAttribute('value') || ''),\n );\n const visibleUnselected = visibleItems.filter(\n item => !this.selectedValues.includes(item.getAttribute('value') || ''),\n );\n\n this.manageDivider(ul, visibleSelected, visibleUnselected);\n\n // Add or remove the empty message based on the case\n if (!hasVisibleItems) {\n this.addEmptyMessageOption(ul);\n } else {\n this.removeEmptyMessageOption(ul);\n }\n }\n\n /**\n * Filter multiselect items in slots mode\n */\n private filterSlotsItems() {\n if (this.modeState === 'options') return;\n\n const ul = this.el.querySelector('ul');\n if (!ul) return;\n\n // Remove existing empty message if any\n const existingEmptyMessage = ul.querySelector('[data-empty]');\n if (existingEmptyMessage) {\n existingEmptyMessage.remove();\n }\n\n // If filter text is empty, reset all items visibility\n if (!this.filterText.trim()) {\n this.resetFilter();\n return;\n }\n\n const normalizedFilter = this.normalizeText(this.filterText);\n let hasVisibleItems = false;\n\n // Get all items and preserve them in the DOM\n const items = Array.from(\n this.el.querySelectorAll('nv-fielddropdownitemcheck'),\n );\n\n // Instead of removing/reordering, just hide/show items\n items.forEach(item => {\n const label = item.getAttribute('label') || '';\n const value = item.getAttribute('value') || '';\n const textContent = item.textContent?.trim() || '';\n\n const matchesFilter =\n this.normalizeText(label).includes(normalizedFilter) ||\n this.normalizeText(value).includes(normalizedFilter) ||\n this.normalizeText(textContent).includes(normalizedFilter);\n\n item.style.display = matchesFilter ? '' : 'none';\n if (matchesFilter) hasVisibleItems = true;\n });\n\n // Get visible items after filtering\n const visibleItems = items.filter(item => item.style.display !== 'none');\n const visibleSelectedItems = visibleItems.filter(item =>\n this.selectedValues.includes(item.getAttribute('value') || ''),\n );\n\n this.manageDivider(\n ul,\n visibleSelectedItems,\n visibleItems.filter(\n item => !this.selectedValues.includes(item.getAttribute('value') || ''),\n ),\n );\n\n // Add empty message if no items match the filter\n if (!hasVisibleItems) {\n const emptyMessage = document.createElement('li');\n emptyMessage.setAttribute('data-empty', 'true');\n emptyMessage.textContent = this.emptyResult;\n emptyMessage.classList.add('no-results-message');\n ul.appendChild(emptyMessage);\n }\n }\n\n /**\n * Handle badge close for options mode.\n */\n private handleBadgeCloseOptions = (): void => {\n this.selectedValues = [];\n this.multiselectChange.emit(this.selectedValues);\n\n // Uncheck all elements\n const items = Array.from(\n this.el.querySelectorAll('nv-fielddropdownitemcheck'),\n );\n\n items.forEach(item => {\n item.checked = false;\n item.style.display = '';\n });\n\n // Reorder options without the divider since there are no selected elements\n this.parsedOptions = this.parsedOptions.filter(option => !option.isDivider);\n\n // Reorder options without the divider since there are no selected elements\n this.reorderOptionsContent();\n };\n\n /**\n * Handle badge close for slots mode.\n */\n private handleBadgeCloseSlots = (): void => {\n this.selectedValues = [];\n this.multiselectChange.emit(this.selectedValues);\n\n // Uncheck all elements\n const items = Array.from(\n this.el.querySelectorAll('nv-fielddropdownitemcheck'),\n );\n\n items.forEach(item => {\n item.checked = false;\n item.style.display = '';\n });\n\n // Reorder slot content\n this.reorderSlotContent();\n };\n\n /**\n * Normalizes text by removing accents and converting to lowercase\n * @param {string} text - The text to normalize\n * @returns {string} The normalized text\n *\n * @example\n * normalizeText(\"Café Latte\") => \"cafe latte\"\n *\n * @description\n * This function performs text normalization in three steps:\n * 1. Decomposes characters into their base form and combining characters (NFD)\n * 2. Removes all diacritical marks (accents, umlauts, etc.)\n * 3. Converts to lowercase and trims whitespace\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize} - MDN documentation on String.normalize()\n * @see {@link https://en.wikipedia.org/wiki/Unicode_equivalence#Normal_forms} - More info about Unicode normalization forms\n */\n private normalizeText(text: string): string {\n return text\n .normalize('NFD') // Decompose characters into base + combining characters (e.g., é => e + ´)\n .replace(/[\\u0300-\\u036f]/g, '') // Remove all diacritical marks (Unicode range for combining characters)\n .toLowerCase() // Convert to lowercase\n .trim(); // Remove leading and trailing whitespace\n }\n\n private handleClickOutside(event: MouseEvent) {\n if (\n this.el.contains(event.target as Node) ||\n (this.inputElement && this.inputElement.contains(event.target as Node))\n ) {\n return;\n }\n this.open = false;\n }\n\n /**\n * Handle popover close\n */\n private handlePopoverClose = () => {\n // If we are handling Escape, ignore this event\n if (this.isHandlingEscape) {\n return;\n }\n\n this.filterText = '';\n\n // Only reorder based on the mode\n if (this.modeState === 'options') {\n this.reorderOptionsContent();\n } else {\n this.reorderSlotContent();\n }\n\n // Reset filter if needed\n if (this.filterable) {\n this.resetFilter();\n }\n };\n\n /**\n * Handle input blur for options mode.\n */\n private handleInputBlurOptions = () => {\n setTimeout(() => {\n if (!this.el.contains(document.activeElement)) {\n // Close the popover without affecting the divider\n this.open = false;\n\n // Reset filter if needed\n if (this.filterable) {\n this.filterText = '';\n this.resetFilter();\n }\n }\n }, 150);\n };\n\n /**\n * Handle keyboard events & arrow key navigation.\n * If the multiselect is not open, opens it and focuses on the first item if the list is not filterable.\n * If the multiselect is open, handles arrow key navigation and closes it if the focus is outside the component.\n * @param {KeyboardEvent} event - The keyboard event.\n */\n @Listen('keydown', { passive: false })\n async handleKeyDown(event: KeyboardEvent) {\n if (!this.open) {\n if (event.key === 'ArrowDown') {\n this.open = true;\n\n // Focus on the first item if the list is not filterable\n if (!this.filterable) {\n requestAnimationFrame(() => {\n this.focusFirstItem();\n });\n }\n\n event.preventDefault();\n return;\n }\n return;\n }\n\n const items = Array.from(\n this.el.querySelectorAll(\n 'nv-fielddropdownitemcheck:not([style*=\"display: none\"])',\n ),\n ) as HTMLNvFielddropdownitemcheckElement[];\n\n if (items.length === 0) {\n console.warn('No visible items found to navigate');\n return;\n }\n\n let currentIndex = items.findIndex(item =>\n item.classList.contains('highlighted'),\n );\n\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n currentIndex =\n currentIndex === -1 ? 0 : (currentIndex + 1) % items.length;\n this.updateHighlightedItem(items, currentIndex);\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n currentIndex =\n currentIndex === -1\n ? items.length - 1\n : (currentIndex - 1 + items.length) % items.length;\n this.updateHighlightedItem(items, currentIndex);\n } else if (event.key === 'Enter' && currentIndex >= 0) {\n event.preventDefault();\n const selectedItem = items[currentIndex];\n\n // Toggle the checked state\n const isCurrentlyChecked = selectedItem.hasAttribute('checked');\n selectedItem.checked = !isCurrentlyChecked;\n\n // Trigger a click event to ensure proper event handling\n selectedItem.dispatchEvent(\n new MouseEvent('click', {\n view: window,\n bubbles: true,\n cancelable: true,\n }),\n );\n } else if (event.key === 'Escape') {\n event.preventDefault();\n event.stopPropagation(); // Prevent the event from propagating to the popover\n\n // Do the reorder and wait a bit before closing\n const handleEscape = async () => {\n this.isHandlingEscape = true; // Disable the hide listener\n\n if (this.modeState === 'options') {\n this.reorderOptionsContent();\n } else {\n this.reorderSlotContent();\n }\n\n // Wait for the reorder to be applied\n await new Promise(resolve => setTimeout(resolve, 100));\n\n // Reactivate the hide listener after a short delay\n setTimeout(() => {\n this.isHandlingEscape = false;\n this.open = false;\n }, 150);\n\n if (this.inputElement) {\n this.inputElement.blur();\n }\n };\n\n await handleEscape();\n }\n }\n\n /**\n * Updates the highlighted item in the dropdown list.\n *\n * @param {(HTMLNvFielddropdownitemElement | HTMLNvFielddropdownitemcheckElement)[]} items - The items to update.\n * @param {number} index - The index of the item to highlight.\n */\n private updateHighlightedItem(\n items: (\n | HTMLNvFielddropdownitemElement\n | HTMLNvFielddropdownitemcheckElement\n )[],\n index: number,\n ) {\n items.forEach((item, i) => {\n if (i === index) {\n item.classList.add('highlighted');\n item.setAttribute('tabindex', '0');\n item.scrollIntoView({ block: 'nearest' });\n // Focus on the nv-fieldcheckbox inside\n const checkbox = item.querySelector('nv-fieldcheckbox');\n if (checkbox) {\n (checkbox as HTMLElement).focus();\n }\n } else {\n item.classList.remove('highlighted');\n item.setAttribute('tabindex', '-1');\n }\n });\n }\n\n /**\n * Focus on the first item in the dropdown list.\n */\n private focusFirstItem() {\n const firstItem = this.el.querySelector(\n 'nv-fielddropdownitemcheck:not([style*=\"display: none\"])',\n ) as HTMLNvFielddropdownitemcheckElement;\n\n if (firstItem) {\n firstItem.setAttribute('tabindex', '0');\n firstItem.classList.add('highlighted');\n firstItem.scrollIntoView({ block: 'nearest' });\n // Focus on the nv-fieldcheckbox inside\n const checkbox = firstItem.querySelector('nv-fieldcheckbox');\n if (checkbox) {\n (checkbox as HTMLElement).focus();\n }\n } else {\n console.warn('No visible first item found to focus');\n }\n }\n\n /**\n * Handle click on the input container for options mode.\n * @param {MouseEvent} event - The click event.\n */\n private handleInputContainerClickOptions = (event: MouseEvent) => {\n if (this.disabled || this.readonly) {\n return;\n }\n\n const target = event.target as HTMLElement;\n\n if (target.tagName === 'P' || target.tagName === 'SPAN') {\n this.open = true;\n\n const inputContainer = this.el.querySelector(\n '.input-container',\n ) as HTMLElement;\n if (inputContainer) {\n inputContainer.classList.add('focus-within');\n\n const removeFocusWithin = () => {\n inputContainer.classList.remove('focus-within');\n };\n\n this.popoverElement.addEventListener('hide', removeFocusWithin);\n }\n }\n };\n\n /**\n * Handle click on the input container for slots mode.\n * @param {MouseEvent} event - The click event.\n */\n private handleInputContainerClickSlots = (event: MouseEvent) => {\n if (this.disabled || this.readonly) {\n return;\n }\n\n const target = event.target as HTMLElement;\n\n if (target.tagName === 'P' || target.tagName === 'SPAN') {\n this.open = true;\n\n const inputContainer = this.el.querySelector(\n '.input-container',\n ) as HTMLElement;\n if (inputContainer) {\n inputContainer.classList.add('focus-within');\n\n const removeFocusWithin = () => {\n inputContainer.classList.remove('focus-within');\n };\n\n this.popoverElement.addEventListener('hide', removeFocusWithin);\n }\n }\n };\n\n /**\n * Handle input change for options mode.\n * @param {Event} event - The input event.\n */\n private readonly handleInputOptions = (event: Event) => {\n if (!this.filterable) return;\n if (this.disabled || this.readonly) {\n return;\n }\n\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n this.valueChanged.emit(this.value);\n\n // Clear any existing timer\n if (this.debounceTimer) {\n window.clearTimeout(this.debounceTimer);\n }\n\n // Set a new timer for filtering\n this.debounceTimer = window.setTimeout(() => {\n this.filterText = input.value.toLowerCase();\n this.filterItemsOption();\n }, this.debounceDelay);\n };\n\n private addEmptyMessageOption(ul: HTMLElement) {\n const existingMessage = ul.querySelector('[data-empty]');\n if (existingMessage) return;\n\n const emptyMessage = document.createElement('li');\n emptyMessage.setAttribute('data-empty', 'true');\n emptyMessage.textContent = this.emptyResult;\n emptyMessage.classList.add('no-results-message');\n ul.appendChild(emptyMessage);\n }\n\n private removeEmptyMessageOption(ul: HTMLElement) {\n const existingMessage = ul.querySelector('[data-empty]');\n if (existingMessage) existingMessage.remove();\n }\n\n /**\n * Handle input change for slots mode\n * @param {Event} event - The input event.\n */\n private readonly handleInputSlots = (event: Event) => {\n if (!this.filterable) return;\n if (this.disabled || this.readonly) return;\n\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n this.valueChanged.emit(this.value);\n\n // Clear any existing timer\n if (this.debounceTimer) {\n window.clearTimeout(this.debounceTimer);\n }\n\n // Set a new timer for filtering\n this.debounceTimer = window.setTimeout(() => {\n this.filterText = input.value.toLowerCase();\n this.filterSlotsItems();\n }, this.debounceDelay);\n };\n\n /**\n * Handle input focus for options mode.\n */\n private handleInputFocusOptions = () => {\n if (this.disabled || this.readonly) {\n return;\n }\n this.open = true;\n };\n\n /**\n * Handle input focus for slots mode.\n */\n private handleInputFocusSlots = () => {\n if (this.disabled || this.readonly) {\n return;\n }\n this.open = true;\n };\n\n /**\n * Handle input blur for slots mode.\n */\n private handleInputBlurSlots = () => {\n setTimeout(() => {\n if (!this.el.contains(document.activeElement)) {\n // Close the popover without affecting the divider\n this.open = false;\n\n // Reset filter if needed\n if (this.filterable) {\n this.filterText = '';\n this.resetFilter();\n }\n }\n }, 150);\n };\n\n /**\n * Toggle the multiselect popover for options mode.\n */\n private togglePopoverOptions = (): void => {\n if (this.disabled || this.readonly) {\n return;\n }\n\n this.open = !this.open;\n };\n\n /**\n * Toggle the multiselect popover for slots mode.\n */\n private togglePopoverSlots = (): void => {\n if (this.disabled || this.readonly) {\n return;\n }\n\n this.open = !this.open;\n };\n\n private manageDivider(\n ul: HTMLElement,\n selectedItems: Element[],\n unselectedItems: Element[],\n ) {\n let divider = ul.querySelector('hr.multiselect-divider') as HTMLElement;\n if (!divider) {\n divider = document.createElement('hr');\n divider.className = 'multiselect-divider';\n ul.appendChild(divider);\n }\n\n const shouldShowDivider =\n selectedItems.length > 0 && unselectedItems.length > 0;\n\n if (shouldShowDivider) {\n // Place the divider after the last selected item\n const lastSelectedItem = selectedItems[selectedItems.length - 1];\n lastSelectedItem.after(divider);\n divider.style.display = '';\n } else {\n divider.style.display = 'none';\n }\n }\n\n //#endregion METHODS\n /****************************************************************************/\n //#region RENDER\n\n /**\n * Renders the component in options mode\n * @returns {any} The JSX for options mode\n */\n private renderOptionsMode = () => {\n return (\n <Host>\n {(this.label || this.el.querySelector('[slot=\"label\"]')) && (\n <label htmlFor={this.inputId}>\n <slot name=\"label\">{this.label}</slot>\n </label>\n )}\n\n <nv-popover\n ref={el => (this.popoverElement = el)}\n triggerMode=\"controlled\"\n placement=\"bottom-start\"\n open={this.open}\n >\n <div class=\"input-wrapper-multiselect\" slot=\"trigger\">\n <slot name=\"before-input\"></slot>\n\n <div class=\"input-container-multiselect\">\n <slot name=\"leading-input\"></slot>\n\n <nv-badge\n slot=\"leading-input\"\n prevent-auto-close\n color=\"10\"\n dismissible={this.selectedValues.length > 0}\n hidden={this.selectedValues.length <= 0}\n label={`${this.selectedValues.length} ${this.badgeLabel}`}\n aria-label={`Clear all ${this.selectedValues.length} ${this.badgeLabel} items`}\n onCloseClicked={this.handleBadgeCloseOptions}\n ></nv-badge>\n\n {this.isFilterable || this.disabled || this.readonly ? (\n <input\n type=\"text\"\n id={this.inputId}\n ref={e => (this.inputElement = e)}\n autofocus={this.autofocus}\n autocomplete={this.autocomplete}\n placeholder={this.placeholder}\n name={this.name}\n value={this.value}\n required={this.required}\n disabled={this.disabled}\n readOnly={this.readonly}\n onInput={this.handleInputOptions}\n onFocus={this.handleInputFocusOptions}\n onBlur={this.handleInputBlurOptions}\n onKeyDown={this.handleKeyDown}\n />\n ) : (\n <p\n id={this.inputId}\n class=\"non-filterable-text\"\n onClick={this.handleInputContainerClickOptions}\n tabIndex={0}\n onKeyDown={this.handleKeyDown}\n onFocus={this.handleInputFocusOptions}\n role=\"combobox\"\n aria-expanded={this.open}\n >\n <span>{this.value || this.placeholder}</span>\n </p>\n )}\n\n {this.error && (\n <nv-icon name=\"alert-circle\" class=\"validation\" size=\"md\" />\n )}\n\n <nv-iconbutton\n data-scope=\"toggle-dropdown\"\n name={this.open ? 'chevron-top' : 'chevron-down'}\n size=\"md\"\n emphasis=\"lower\"\n aria-label={this.open ? 'Hide dropdown' : 'Show dropdown'}\n aria-pressed={this.open.toString()}\n onClick={this.togglePopoverOptions}\n />\n </div>\n\n <slot name=\"after-input\"></slot>\n </div>\n\n <div\n slot=\"content\"\n role=\"listbox\"\n aria-multiselectable=\"true\"\n style={{ 'max-height': this.maxHeight, 'overflow-y': 'auto' }}\n >\n <ul role=\"content\">\n {this.parsedOptions.map(option => (\n <nv-fielddropdownitemcheck\n label={option.label}\n description={option.description}\n value={option.value}\n checked={this.selectedValues.includes(option.value)}\n disabled={option.disabled}\n ></nv-fielddropdownitemcheck>\n ))}\n <hr class=\"multiselect-divider\" style={{ display: 'none' }} />\n </ul>\n </div>\n </nv-popover>\n\n {this.renderDescriptions()}\n </Host>\n );\n };\n\n /**\n * Renders the component in slots mode\n * @returns {any} The JSX for slots mode\n */\n private renderSlotsMode = () => {\n return (\n <Host>\n {(this.label || this.el.querySelector('[slot=\"label\"]')) && (\n <label htmlFor={this.inputId}>\n <slot name=\"label\">{this.label}</slot>\n </label>\n )}\n\n <nv-popover\n ref={el => (this.popoverElement = el)}\n triggerMode=\"controlled\"\n placement=\"bottom-start\"\n open={this.open}\n >\n <div class=\"input-wrapper-multiselect\" slot=\"trigger\">\n <slot name=\"before-input\"></slot>\n\n <div\n class=\"input-container-multiselect\"\n onClick={this.handleInputContainerClickSlots}\n >\n <slot name=\"leading-input\"></slot>\n\n <nv-badge\n slot=\"leading-input\"\n prevent-auto-close\n color=\"10\"\n dismissible={this.selectedValues.length > 0}\n hidden={this.selectedValues.length <= 0}\n label={`${this.selectedValues.length} ${this.badgeLabel}`}\n aria-label={`Clear all ${this.selectedValues.length} ${this.badgeLabel} items`}\n onCloseClicked={this.handleBadgeCloseSlots}\n ></nv-badge>\n\n {this.isFilterable || this.disabled || this.readonly ? (\n <input\n id={this.inputId}\n ref={e => (this.inputElement = e)}\n autocomplete={this.autocomplete}\n placeholder={this.placeholder}\n name={this.name}\n value={this.value}\n required={this.required}\n disabled={this.disabled}\n readOnly={this.readonly}\n onInput={this.handleInputSlots}\n onFocus={this.handleInputFocusSlots}\n onBlur={this.handleInputBlurSlots}\n onKeyDown={this.handleKeyDown}\n />\n ) : (\n <p\n id={this.inputId}\n class=\"non-filterable-text\"\n onClick={this.handleInputContainerClickSlots}\n tabIndex={0}\n onKeyDown={this.handleKeyDown}\n onFocus={this.handleInputFocusSlots}\n role=\"combobox\"\n aria-expanded={this.open}\n >\n <span>{this.value || this.placeholder}</span>\n </p>\n )}\n\n {this.error && (\n <nv-icon name=\"alert-circle\" class=\"validation\" size=\"md\" />\n )}\n\n <nv-iconbutton\n data-scope=\"toggle-dropdown\"\n name={this.open ? 'chevron-top' : 'chevron-down'}\n size=\"md\"\n emphasis=\"lower\"\n aria-label={this.open ? 'Hide dropdown' : 'Show dropdown'}\n aria-pressed={this.open.toString()}\n onClick={this.togglePopoverSlots}\n />\n </div>\n\n <slot name=\"after-input\"></slot>\n </div>\n\n <div\n slot=\"content\"\n role=\"listbox\"\n aria-multiselectable=\"true\"\n style={{ 'max-height': this.maxHeight, 'overflow-y': 'auto' }}\n >\n <slot name=\"content\"></slot>\n </div>\n </nv-popover>\n\n {this.renderDescriptions()}\n </Host>\n );\n };\n\n /**\n * Renders description and error description sections\n * @returns {any} The JSX for descriptions\n */\n private renderDescriptions() {\n return [\n (this.description || this.el.querySelector('[slot=\"description\"]')) && (\n <div class=\"description\">\n <slot name=\"description\">{this.description}</slot>\n </div>\n ),\n (this.errorDescription ||\n this.el.querySelector('[slot=\"error-description\"]')) && (\n <div hidden={!this.error} class=\"error-description\">\n <slot name=\"error-description\">{this.errorDescription}</slot>\n </div>\n ),\n ];\n }\n\n /**\n * Main render method that decides which mode to render\n * @returns {any} The JSX for the component\n */\n render() {\n return this.modeState === 'options'\n ? this.renderOptionsMode()\n : this.renderSlotsMode();\n }\n\n //#endregion RENDER\n /****************************************************************************/\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e,c as o,h as i,a as t,g as r}from"./p-ab002252.js";import{v as n}from"./p-f5ff676c.js";const d='nv-fielddropdown{--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}nv-fielddropdown[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-fielddropdown[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)}nv-fielddropdown[required]:not([required=false]) label::after{content:"*";color:var(--components-form-text-required);font-weight:700}nv-fielddropdown[hidden]:not([hidden=false]) label{display:none}nv-fielddropdown 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-fielddropdown nv-popover{width:100%;display:block}nv-fielddropdown 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-fielddropdown nv-popover [slot=content]{gap:var(--list-dropdown-gap-y);display:flex;flex-direction:column}nv-fielddropdown nv-popover hr{color:var(--components-list-dropdown-separator)}nv-fielddropdown .input-wrapper{display:flex;flex-wrap:wrap;gap:var(--form-gap-x);align-items:stretch;align-self:stretch;width:100%}nv-fielddropdown .input-container{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-fielddropdown .input-container:hover{border-color:var(--nv-field-border-hover)}nv-fielddropdown .input-container:focus-within,nv-fielddropdown .input-container:focus-within:hover,nv-fielddropdown .input-container:focus,nv-fielddropdown .input-container: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-fielddropdown .input-container:has(input:read-only){opacity:0.5;background-color:var(--components-form-field-background-readonly);border-color:var(--nv-field-border-readonly)}nv-fielddropdown .input-container:has(input:disabled){opacity:0.5;background-color:var(--components-form-field-background-disabled);border-color:var(--nv-field-border-disabled)}nv-fielddropdown .input-container input[type=search]::-webkit-search-decoration,nv-fielddropdown .input-container input[type=search]::-webkit-search-cancel-button,nv-fielddropdown .input-container input[type=search]::-webkit-search-results-button,nv-fielddropdown .input-container input[type=search]::-webkit-search-results-decoration{-webkit-appearance:none}nv-fielddropdown .input-container input,nv-fielddropdown .input-container 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)}nv-fielddropdown .input-container input:focus,nv-fielddropdown .input-container p.non-filterable-text:focus{outline:none}nv-fielddropdown .input-container input::placeholder,nv-fielddropdown .input-container 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-fielddropdown .input-container>nv-iconbutton{border:0px;border-radius:0px}nv-fielddropdown .input-container>nv-iconbutton:focus-visible{border-radius:var(--button-md-border-radius);outline-offset:-3px}nv-fielddropdown .input-container nv-icon.validation{color:var(--nv-field-border-default)}nv-fielddropdown .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-fielddropdown .non-filterable-text span{display:inline-block;width:100%;overflow:hidden;text-overflow:ellipsis}nv-fielddropdown .description{align-self:stretch;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-fielddropdown .error-description{align-self:stretch;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)}';const s=d;const l=class{constructor(i){e(this,i);this.valueChanged=o(this,"valueChanged",7);this.dropdownItemSelected=o(this,"dropdownItemSelected",7);this.inputId=n();this.open=false;this.autocomplete="off";this.required=false;this.error=false;this.readonly=false;this.disabled=false;this.emptyResult="No results found";this.filterable=false;this.autofocus=false;this.filterText="";this.isFilterable=this.filterable;this.selectedValues=new Set;this.parsedOptions=[];this.handleInputContainerClick=e=>{if(this.disabled||this.readonly){return}const o=e.target;if(o.tagName==="P"||o.tagName==="SPAN"){this.open=true;const e=this.el.querySelector(".input-container");if(e){e.classList.add("focus-within");const o=()=>{e.classList.remove("focus-within")};this.popoverElement.addEventListener("hide",o)}}};this.handleInput=e=>{if(!this.filterable)return;if(this.disabled||this.readonly){return}const o=e.target;this.open=true;this.filterText=o.value.toLowerCase();this.filterItems()};this.handleInputFocus=()=>{if(this.disabled||this.readonly)return;this.open=true};this.togglePopover=()=>{if(this.disabled||this.readonly)return;this.open=!this.open};this.getSelectedLabel=()=>{var e,o,i,t,r;if(!this.value)return"";if(this.parsedOptions.length>1){const i=this.parsedOptions.find((e=>e.value===this.value));return(o=(e=i===null||i===void 0?void 0:i.label)!==null&&e!==void 0?e:i===null||i===void 0?void 0:i.value)!==null&&o!==void 0?o:this.value}const n=Array.from(this.el.querySelectorAll("nv-fielddropdownitem"));const d=n.find((e=>e.value===this.value));const s=d?(r=(i=d.label)!==null&&i!==void 0?i:(t=d.textContent)===null||t===void 0?void 0:t.trim())!==null&&r!==void 0?r:d.value:"";return s};this.clearFilter=()=>{if(!this.filterable)return;this.filterText="";this.inputElement.value=this.getSelectedLabel();this.inputElement.focus();this.filterItems()}}handleDropdownItemSelected(e){if(this.disabled||this.readonly)return;const o=Array.from(this.el.querySelectorAll("nv-fielddropdownitem"));o.forEach((o=>{if(o!==e.target){o.removeAttribute("selected")}else{o.setAttribute("selected","true")}}));this.clearFilter();this.value=e.detail.value;this.open=false}handleOpenChanged(e){this.open=e.detail}watchFilterableHandler(e){this.isFilterable=e;this.filterable=e}watchValueHandler(e){this.valueChanged.emit(e)}handleOptionsChange(e){var o;if(e){try{const i=JSON.parse(e);this.parsedOptions=[...i];if(!this.value){const e=i.find((e=>e.selected));this.value=(o=e===null||e===void 0?void 0:e.value)!==null&&o!==void 0?o:"";this.updateSelectedItem(this.value)}}catch(e){console.error("nv-fielddropdown: error parsing options:",e);this.parsedOptions=[]}}else{this.parsedOptions=[]}}handleBlur(e){const o=e.relatedTarget;if(!(o instanceof Node)||!this.el.contains(o)){this.open=false;if(this.inputElement){this.filterText="";this.inputElement.value=this.getSelectedLabel();setTimeout((()=>{this.filterItems()}),200)}}}handleKeyDown(e){if(!this.el)return;if(!this.open){if(e.key==="ArrowDown"){this.open=true;e.preventDefault();return}return}const o=Array.from(this.el.querySelectorAll("nv-fielddropdownitem:not([disabled]):not([hidden])"));let i=o.findIndex((e=>e.classList.contains("highlighted")));if(e.key==="ArrowDown"){e.preventDefault();i=(i+1)%o.length;this.updateHighlightedItem(o,i)}else if(e.key==="ArrowUp"){e.preventDefault();i=(i-1+o.length)%o.length;this.updateHighlightedItem(o,i)}else if(e.key==="Escape"){e.preventDefault();this.open=false}}async getFilterText(){return this.filterText}filterItems(){var e;const o=Array.from(this.el.querySelectorAll("nv-fielddropdownitem"));const i=this.el.querySelector("nv-fielddropdownitem[data-empty]");if(i){i.remove()}let t=false;o.forEach((e=>{var o,i;const r=((o=e.textContent)===null||o===void 0?void 0:o.toLowerCase())||"";const n=((i=e.value)===null||i===void 0?void 0:i.toLowerCase())||"";const d=n.includes(this.filterText)||r.includes(this.filterText);if(d)e.removeAttribute("hidden");else e.setAttribute("hidden","");if(d){t=true}}));if(!t){const o=document.createElement("nv-fielddropdownitem");o.setAttribute("data-empty","true");o.setAttribute("disabled","true");o.textContent=this.emptyResult;(e=this.el.querySelector('ul[slot="content"]'))===null||e===void 0?void 0:e.appendChild(o)}}resetFilter(){const e=Array.from(this.el.querySelectorAll("nv-fielddropdownitem"));e.forEach((e=>{e.style.display=""}))}updateHighlightedItem(e,o){e.forEach(((e,i)=>{if(i===o){e.classList.add("highlighted");e.focus();e.scrollIntoView({block:"nearest"})}else{e.classList.remove("highlighted")}}))}updateSelectedItem(e){if(!e)return;const o=Array.from(this.el.querySelectorAll("nv-fielddropdownitem"));const i=o.find((o=>{var i;const t=o.getAttribute("label");const r=o.getAttribute("value");const n=(i=o.textContent)===null||i===void 0?void 0:i.trim();return t===e||r===e||n===e}));o.forEach((e=>{if(e===i){e.setAttribute("selected","")}else{e.removeAttribute("selected")}}))}componentWillLoad(){this.resetFilter();if(this.filterable&&this.filterText){this.filterItems()}if(this.options){this.handleOptionsChange(this.options)}}componentDidLoad(){if(this.value){this.updateSelectedItem(this.value)}if(this.inputElement){this.inputElement.value=this.getSelectedLabel()}}render(){return i(t,{key:"fd9c415beb138bf85bdd914c6143b50a2f2330bf",role:"combobox","aria-expanded":this.open.toString(),"aria-haspopup":"listbox","aria-label":this.label},(this.label||this.el.querySelector('[slot="label"]'))&&i("label",{key:"3bd9ea3ac7f1202882511ab6bf0d187975eaaaf6",htmlFor:this.inputId},i("slot",{key:"0e33a34af113e622401e5d23843fc67afce8c7a0",name:"label"},this.label)),i("nv-popover",{key:"cf41abb986f71b746f7b83828eb69244e502626a",ref:e=>this.popoverElement=e,triggerMode:"controlled",placement:"bottom-start",open:this.open},i("div",{key:"c030054877c24d5091bc9ea91f8b90182a5150b9",class:"input-wrapper",slot:"trigger"},i("slot",{key:"974aa8736caa3112d2e17a6e6fc33d0271315303",name:"before-input"}),i("div",{key:"7b657cf2dd489e8e22ecd52403a9eba8193c1728",class:"input-container",onClick:this.handleInputContainerClick},i("slot",{key:"26d55cabf26329cde6f7ac93464def081533dd7d",name:"leading-input"}),this.isFilterable||this.disabled||this.readonly?i("input",{"data-scope":"focusable",id:this.inputId,type:"search",ref:e=>this.inputElement=e,autofocus:this.autofocus,autocomplete:this.autocomplete,placeholder:this.placeholder,name:this.name,value:this.getSelectedLabel(),required:this.required,disabled:this.disabled,readOnly:this.readonly,onInput:this.handleInput,onFocus:this.handleInputFocus,onClick:this.handleInputFocus,onKeyDown:this.handleKeyDown}):i("p",{"data-scope":"focusable",id:this.inputId,class:"non-filterable-text",onClick:this.handleInputContainerClick,tabIndex:this.disabled?-1:0,onKeyDown:this.handleKeyDown,onFocus:this.handleInputFocus},this.getSelectedLabel()||this.value||this.placeholder),this.isFilterable&&this.filterText&&this.open&&i("nv-iconbutton",{key:"4dab0dd29d016a68b94681893bd0367c2f2bbccb",name:"x",size:"md",emphasis:"lower",class:"clear-button",onClick:this.clearFilter,"aria-label":"Clear input"}),this.error&&i("nv-icon",{key:"94555a8f663a45ce5e744a2c4f42442ee725556f",name:"alert-circle",class:"validation",size:"md"}),i("nv-iconbutton",{key:"c52dcc16864b6093cc7c1417d98506c9b4739f4b","data-scope":"toggle-dropdown",name:this.open?"chevron-top":"chevron-down",size:"md",emphasis:"lower","aria-label":this.open?"Hide dropdown":"Show dropdown","aria-pressed":this.open.toString(),onClick:this.togglePopover,tabIndex:this.disabled?-1:0})),i("slot",{key:"a78197668881b8fc5fd7522a3b2ebcb4e4d6c1cc",name:"after-input"})),i("div",{key:"161678718ea939874d27b800052f3ff2df94a07d",slot:"content"},this.parsedOptions.length>0?i("ul",null,this.parsedOptions.map((e=>i("nv-fielddropdownitem",{label:e.label,value:e.value,disabled:e.disabled,selected:e.value===this.value})))):i("slot",{name:"content"}))),(this.description||this.el.querySelector('[slot="description"]'))&&i("div",{key:"b4ea5b9e6d12307201847c8b9979e7c77442c0a9",class:"description"},i("slot",{key:"7162553aadfbeae787683a1fcf4ac7a1ca4788da",name:"description"},this.description)),(this.errorDescription||this.el.querySelector('[slot="error-description"]'))&&i("div",{key:"c96506582bd9c604490ce0d9c4a398ff70b7e814",hidden:!this.error,class:"error-description"},i("slot",{key:"9069e068a0e1624344b248d68799ecf07f10c649",name:"error-description"},this.errorDescription)))}static get formAssociated(){return true}get el(){return r(this)}static get watchers(){return{filterable:["watchFilterableHandler"],value:["watchValueHandler"],options:["handleOptionsChange"]}}};l.style=s;export{l as nv_fielddropdown};
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as e,c as o,h as i,a as t,g as r}from"./p-ab002252.js";import{v as n}from"./p-f5ff676c.js";const d='nv-fielddropdown{--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}nv-fielddropdown[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-fielddropdown[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)}nv-fielddropdown[required]:not([required=false]) label::after{content:"*";color:var(--components-form-text-required);font-weight:700}nv-fielddropdown[hidden]:not([hidden=false]) label{display:none}nv-fielddropdown 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-fielddropdown nv-popover{width:100%;display:block}nv-fielddropdown 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-fielddropdown nv-popover [slot=content]{gap:var(--list-dropdown-gap-y);display:flex;flex-direction:column}nv-fielddropdown nv-popover hr{color:var(--components-list-dropdown-separator)}nv-fielddropdown .input-wrapper{display:flex;flex-wrap:wrap;gap:var(--form-gap-x);align-items:stretch;align-self:stretch;width:100%}nv-fielddropdown .input-container{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-fielddropdown .input-container:hover{border-color:var(--nv-field-border-hover)}nv-fielddropdown .input-container:focus-within,nv-fielddropdown .input-container:focus-within:hover,nv-fielddropdown .input-container:focus,nv-fielddropdown .input-container: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-fielddropdown .input-container:has(input:read-only){opacity:0.5;background-color:var(--components-form-field-background-readonly);border-color:var(--nv-field-border-readonly)}nv-fielddropdown .input-container:has(input:disabled){opacity:0.5;background-color:var(--components-form-field-background-disabled);border-color:var(--nv-field-border-disabled)}nv-fielddropdown .input-container input[type=search]::-webkit-search-decoration,nv-fielddropdown .input-container input[type=search]::-webkit-search-cancel-button,nv-fielddropdown .input-container input[type=search]::-webkit-search-results-button,nv-fielddropdown .input-container input[type=search]::-webkit-search-results-decoration{-webkit-appearance:none}nv-fielddropdown .input-container input,nv-fielddropdown .input-container 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)}nv-fielddropdown .input-container input:focus,nv-fielddropdown .input-container p.non-filterable-text:focus{outline:none}nv-fielddropdown .input-container input::placeholder,nv-fielddropdown .input-container 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-fielddropdown .input-container>nv-iconbutton{border:0px;border-radius:0px}nv-fielddropdown .input-container>nv-iconbutton:focus-visible{border-radius:var(--button-md-border-radius);outline-offset:-3px}nv-fielddropdown .input-container nv-icon.validation{color:var(--nv-field-border-default)}nv-fielddropdown .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-fielddropdown .non-filterable-text span{display:inline-block;width:100%;overflow:hidden;text-overflow:ellipsis}nv-fielddropdown .description{align-self:stretch;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-fielddropdown .error-description{align-self:stretch;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)}';const s=d;const l=class{constructor(i){e(this,i);this.valueChanged=o(this,"valueChanged",7);this.dropdownItemSelected=o(this,"dropdownItemSelected",7);this.inputId=n();this.open=false;this.autocomplete="off";this.required=false;this.error=false;this.readonly=false;this.disabled=false;this.emptyResult="No results found";this.filterable=false;this.autofocus=false;this.filterText="";this.isFilterable=this.filterable;this.selectedValues=new Set;this.parsedOptions=[];this.handleInputContainerClick=e=>{if(this.disabled||this.readonly){return}const o=e.target;if(o.tagName==="P"||o.tagName==="SPAN"){this.open=true;const e=this.el.querySelector(".input-container");if(e){e.classList.add("focus-within");const o=()=>{e.classList.remove("focus-within")};this.popoverElement.addEventListener("hide",o)}}};this.handleInput=e=>{if(!this.filterable)return;if(this.disabled||this.readonly){return}const o=e.target;this.open=true;this.filterText=o.value.toLowerCase();this.filterItems()};this.handleInputFocus=()=>{if(this.disabled||this.readonly)return;this.open=true};this.togglePopover=()=>{if(this.disabled||this.readonly)return;this.open=!this.open};this.getSelectedLabel=()=>{var e,o,i,t,r;if(!this.value)return"";if(this.parsedOptions.length>1){const i=this.parsedOptions.find((e=>e.value===this.value));return(o=(e=i===null||i===void 0?void 0:i.label)!==null&&e!==void 0?e:i===null||i===void 0?void 0:i.value)!==null&&o!==void 0?o:this.value}const n=Array.from(this.el.querySelectorAll("nv-fielddropdownitem"));const d=n.find((e=>e.value===this.value));const s=d?(r=(i=d.label)!==null&&i!==void 0?i:(t=d.textContent)===null||t===void 0?void 0:t.trim())!==null&&r!==void 0?r:d.value:"";return s};this.clearFilter=()=>{if(!this.filterable)return;this.filterText="";this.inputElement.value=this.getSelectedLabel();this.inputElement.focus();this.filterItems()}}handleDropdownItemSelected(e){if(this.disabled||this.readonly)return;const o=Array.from(this.el.querySelectorAll("nv-fielddropdownitem"));o.forEach((o=>{if(o!==e.target){o.removeAttribute("selected")}else{o.setAttribute("selected","true")}}));this.clearFilter();this.value=e.detail.value;this.open=false}handleOpenChanged(e){this.open=e.detail}watchFilterableHandler(e){this.isFilterable=e;this.filterable=e}watchValueHandler(e){this.valueChanged.emit(e)}handleOptionsChange(e){var o;if(e){try{const i=JSON.parse(e);this.parsedOptions=[...i];if(!this.value){const e=i.find((e=>e.selected));this.value=(o=e===null||e===void 0?void 0:e.value)!==null&&o!==void 0?o:"";this.updateSelectedItem(this.value)}}catch(e){console.error("nv-fielddropdown: error parsing options:",e);this.parsedOptions=[]}}else{this.parsedOptions=[]}}handleBlur(e){const o=e.relatedTarget;if(!(o instanceof Node)||!this.el.contains(o)){this.open=false;if(this.inputElement){this.filterText="";this.inputElement.value=this.getSelectedLabel();setTimeout((()=>{this.filterItems()}),200)}}}handleKeyDown(e){if(!this.el)return;if(!this.open){if(e.key==="ArrowDown"){this.open=true;e.preventDefault();return}return}const o=Array.from(this.el.querySelectorAll("nv-fielddropdownitem:not([disabled]):not([hidden])"));let i=o.findIndex((e=>e.classList.contains("highlighted")));if(e.key==="ArrowDown"){e.preventDefault();i=(i+1)%o.length;this.updateHighlightedItem(o,i)}else if(e.key==="ArrowUp"){e.preventDefault();i=(i-1+o.length)%o.length;this.updateHighlightedItem(o,i)}else if(e.key==="Escape"){e.preventDefault();this.open=false}}async getFilterText(){return this.filterText}filterItems(){var e;const o=Array.from(this.el.querySelectorAll("nv-fielddropdownitem"));const i=this.el.querySelector("nv-fielddropdownitem[data-empty]");if(i){i.remove()}let t=false;o.forEach((e=>{var o,i;const r=((o=e.textContent)===null||o===void 0?void 0:o.toLowerCase())||"";const n=((i=e.value)===null||i===void 0?void 0:i.toLowerCase())||"";const d=n.includes(this.filterText)||r.includes(this.filterText);if(d)e.removeAttribute("hidden");else e.setAttribute("hidden","");if(d){t=true}}));if(!t){const o=document.createElement("nv-fielddropdownitem");o.setAttribute("data-empty","true");o.setAttribute("disabled","true");o.textContent=this.emptyResult;(e=this.el.querySelector('ul[slot="content"]'))===null||e===void 0?void 0:e.appendChild(o)}}resetFilter(){const e=Array.from(this.el.querySelectorAll("nv-fielddropdownitem"));e.forEach((e=>{e.style.display=""}))}updateHighlightedItem(e,o){e.forEach(((e,i)=>{if(i===o){e.classList.add("highlighted");e.focus();e.scrollIntoView({block:"nearest"})}else{e.classList.remove("highlighted")}}))}updateSelectedItem(e){if(!e)return;const o=Array.from(this.el.querySelectorAll("nv-fielddropdownitem"));const i=o.find((o=>{var i;const t=o.getAttribute("label");const r=o.getAttribute("value");const n=(i=o.textContent)===null||i===void 0?void 0:i.trim();return t===e||r===e||n===e}));o.forEach((e=>{if(e===i){e.setAttribute("selected","")}else{e.removeAttribute("selected")}}))}componentWillLoad(){this.resetFilter();if(this.filterable&&this.filterText){this.filterItems()}if(this.options){this.handleOptionsChange(this.options)}}componentDidLoad(){if(this.value){this.updateSelectedItem(this.value)}if(this.inputElement){this.inputElement.value=this.getSelectedLabel()}}render(){return i(t,{key:"0fb1d2326cefd85ffd337307a0a0dd74acda8a14",role:"combobox","aria-expanded":this.open.toString(),"aria-haspopup":"listbox","aria-label":this.label},(this.label||this.el.querySelector('[slot="label"]'))&&i("label",{key:"bf6f4116b86cca549e7f9b65a17e1cb35b06ef60",htmlFor:this.inputId},i("slot",{key:"a81ad465e6a08e1bc9463c9d91c5d2cd05805e39",name:"label"},this.label)),i("nv-popover",{key:"8c90cf3f3f08455b41b31681c4377d5404dd4b31",ref:e=>this.popoverElement=e,triggerMode:"controlled",placement:"bottom-start",open:this.open},i("div",{key:"756eb9ff31134ece738ea9748a88837ec4979ddf",class:"input-wrapper",slot:"trigger"},i("slot",{key:"1853a781eedfeea6aae57ed94c452524e4e69e83",name:"before-input"}),i("div",{key:"26c839ffc62cb1747de5099725695de6c213a220",class:"input-container",onClick:this.handleInputContainerClick},i("slot",{key:"8685a92ee488f99dda4cbfe6bdd59e347e3ce0ce",name:"leading-input"}),this.isFilterable||this.disabled||this.readonly?i("input",{"data-scope":"focusable",id:this.inputId,type:"search",ref:e=>this.inputElement=e,autofocus:this.autofocus,autocomplete:this.autocomplete,placeholder:this.placeholder,name:this.name,value:this.getSelectedLabel(),required:this.required,disabled:this.disabled,readOnly:this.readonly,onInput:this.handleInput,onFocus:this.handleInputFocus,onClick:this.handleInputFocus,onKeyDown:this.handleKeyDown}):i("p",{"data-scope":"focusable",id:this.inputId,class:"non-filterable-text",onClick:this.handleInputContainerClick,tabIndex:this.disabled?-1:0,onKeyDown:this.handleKeyDown,onFocus:this.handleInputFocus},this.getSelectedLabel()||this.value||this.placeholder),this.isFilterable&&this.filterText&&this.open&&i("nv-iconbutton",{key:"1fa4ea0ef878980847d667431c9e52b18de1a4b1",name:"x",size:"md",emphasis:"lower",class:"clear-button",onClick:this.clearFilter,"aria-label":"Clear input"}),this.error&&i("nv-icon",{key:"77aa0f468d8c6488595ffc2305480174c18d3069",name:"alert-circle",class:"validation",size:"md"}),i("nv-iconbutton",{key:"9954a5b1910693b0be417d27da8f9005467d99f3","data-scope":"toggle-dropdown",name:this.open?"chevron-top":"chevron-down",size:"md",emphasis:"lower","aria-label":this.open?"Hide dropdown":"Show dropdown","aria-pressed":this.open.toString(),onClick:this.togglePopover,tabIndex:this.disabled?-1:0})),i("slot",{key:"0e258c9b03e4dbcfe94b577ffaf77f2379a9c9a3",name:"after-input"})),i("div",{key:"b697df1d8c64c9d2eaf09e427cd49c9d5ec0a323",slot:"content"},this.parsedOptions.length>0?i("ul",null,this.parsedOptions.map((e=>i("nv-fielddropdownitem",{label:e.label,value:e.value,disabled:e.disabled,selected:e.value===this.value})))):i("slot",{name:"content"}))),(this.description||this.el.querySelector('[slot="description"]'))&&i("div",{key:"7a783fcd4da5623ad478e4a03fb454e093e7fc8e",class:"description"},i("slot",{key:"93c4c95ca8e8e4bf50086fb861b126aa7f5f828a",name:"description"},this.description)),(this.errorDescription||this.el.querySelector('[slot="error-description"]'))&&i("div",{key:"8a0de0edb2a7855d478a40059e19f2f26f2ed681",hidden:!this.error,class:"error-description"},i("slot",{key:"93b87131ac4e8371815e7c82ef6e15ebcff2bc88",name:"error-description"},this.errorDescription)))}static get formAssociated(){return true}get el(){return r(this)}static get watchers(){return{filterable:["watchFilterableHandler"],value:["watchValueHandler"],options:["handleOptionsChange"]}}};l.style=s;export{l as nv_fielddropdown};
|
|
2
|
+
//# sourceMappingURL=p-4403e3af.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as t,h as a,a as s}from"./p-ab002252.js";import{c as n}from"./p-8a1a6e56.js";const
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as t,h as a,a as s}from"./p-ab002252.js";import{c as n}from"./p-8a1a6e56.js";const e="nv-stack{display:flex;align-items:center;justify-content:flex-start;flex-direction:row}nv-stack nv-col{display:flex}nv-stack:not(nv-row){flex-wrap:nowrap}nv-stack>.nv-stack-item-flex{flex-shrink:1;flex-grow:1}nv-stack>.nv-stack-item-lead{margin-right:auto}nv-stack>.nv-stack-item-lead+*{margin-left:0}nv-stack>.nv-stack-item-center{margin-right:auto;margin-left:auto}nv-stack>.nv-stack-item-tail{margin-left:auto}nv-stack>.nv-stack-nowrap{white-space:nowrap}nv-stack.nv-stack-vertical{align-items:stretch;flex-direction:column}nv-stack.nv-stack-vertical>.nv-stack-item-lead{margin-right:0;margin-bottom:auto}nv-stack.nv-stack-vertical>.nv-stack-item-lead+*{margin-top:0}nv-stack.nv-stack-vertical>.nv-stack-item-tail{margin-left:0;margin-top:auto}nv-stack.nv-stack-vertical>.nv-stack-item-center{margin:auto 0}nv-stack.nv-stack-flex>*{flex-shrink:1;flex-grow:1}nv-stack.nv-stack-fill>*{height:100%}nv-stack.nv-stack-fill.nv-stack-vertical>*{height:auto;width:100%}";const c=e;const i=class{constructor(a){t(this,a);this.gutter=2}render(){return a(s,{key:"aef0e6f873f68880d20b5ae9f4f56ece40e8a0ee",class:n(this.fill&&"nv-stack-fill",this.flex&&"nv-stack-flex",this.full&&"w-full",this.gutter&&!this.vertical&&`gutter-x-${this.gutter}`,this.gutter&&this.vertical&&`gutter-y-${this.gutter}`,this.vertical&&"nv-stack-vertical")},a("slot",{key:"d003e23ec3c9b4a5c4496bc9f4c170af467b311e"}))}};i.style=c;export{i as nv_stack};
|
|
2
|
+
//# sourceMappingURL=p-442f04f9.entry.js.map
|