@gov-design-system-ce/components 4.6.4 → 4.6.5-b
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/gov-flex_3.cjs.entry.js +1 -1
- package/dist/cjs/gov-form-file.cjs.entry.js +35 -11
- package/dist/cjs/gov-form-file.cjs.entry.js.map +1 -1
- package/dist/cjs/gov-form-file.entry.cjs.js.map +1 -1
- package/dist/collection/components/gov-form/file/gov-form-file.js +7 -2
- package/dist/collection/components/gov-form/file/gov-form-file.js.map +1 -1
- package/dist/collection/utils/file.utils.js +28 -9
- package/dist/collection/utils/file.utils.js.map +1 -1
- package/dist/components/gov-accordion-item.js +1 -1
- package/dist/components/gov-attachments-item.js +1 -1
- package/dist/components/gov-blockquote.js +1 -1
- package/dist/components/gov-breadcrumbs.js +1 -1
- package/dist/components/gov-breadcrumbs.js.map +1 -1
- package/dist/components/gov-button.js +1 -1
- package/dist/components/gov-card.js +1 -1
- package/dist/components/gov-chip.js +1 -1
- package/dist/components/gov-collapsible.js +1 -1
- package/dist/components/gov-dialog.js +1 -1
- package/dist/components/gov-form-autocomplete.js +1 -1
- package/dist/components/gov-form-checkbox.js +1 -1
- package/dist/components/gov-form-file.js +1 -1
- package/dist/components/gov-form-file.js.map +1 -1
- package/dist/components/gov-form-input.js +1 -1
- package/dist/components/gov-form-multi-select.js +1 -1
- package/dist/components/gov-form-range.js +1 -1
- package/dist/components/gov-form-select.js +1 -1
- package/dist/components/gov-form-switch.js +1 -1
- package/dist/components/gov-icon.js +1 -1
- package/dist/components/gov-infobar.js +1 -1
- package/dist/components/gov-link.js +1 -1
- package/dist/components/gov-loading.js +1 -1
- package/dist/components/gov-pagination.js +1 -1
- package/dist/components/gov-tabs.js +1 -1
- package/dist/components/gov-tag.js +1 -1
- package/dist/components/gov-theme-switch.js +1 -1
- package/dist/components/gov-tile.js +1 -1
- package/dist/components/gov-toast.js +1 -1
- package/dist/components/gov-tooltip-content.js +1 -1
- package/dist/components/gov-wizard-item.js +1 -1
- package/dist/components/{p-ibUK7mfI.js → p-BGK46VRO.js} +2 -2
- package/dist/components/{p-iTwUkISB.js → p-BICk4EuO.js} +2 -2
- package/dist/components/{p-DN5pb9xA.js → p-BNoNH6m-.js} +2 -2
- package/dist/components/{p-C_URF9Su.js → p-ClDhNt_H.js} +2 -2
- package/dist/components/p-DRXiDAHW.js +2 -0
- package/dist/components/{p-CXPP9vec.js.map → p-DRXiDAHW.js.map} +1 -1
- package/dist/components/{p-pJ_vPAO0.js → p-DjGO_trZ.js} +2 -2
- package/dist/components/{p-yIpIIG5A.js → p-DmK9qaKH.js} +2 -2
- package/dist/components/{p-DEthsMuE.js → p-isPjiQbr.js} +2 -2
- package/dist/core/core.esm.js +1 -1
- package/dist/core/core.esm.js.map +1 -1
- package/dist/core/{p-3314505d.entry.js → p-00ab0454.entry.js} +2 -2
- package/dist/core/{p-3314505d.entry.js.map → p-00ab0454.entry.js.map} +1 -1
- package/dist/core/{p-9d9e9401.entry.js → p-05bb35e1.entry.js} +2 -2
- package/dist/core/{p-9d9e9401.entry.js.map → p-05bb35e1.entry.js.map} +1 -1
- package/dist/core/{p-e30968b3.entry.js → p-06497d64.entry.js} +2 -2
- package/dist/core/{p-e30968b3.entry.js.map → p-06497d64.entry.js.map} +1 -1
- package/dist/core/p-0675617d.entry.js +2 -0
- package/dist/core/{p-fca7a0d6.entry.js.map → p-0675617d.entry.js.map} +1 -1
- package/dist/core/{p-4d36cd18.entry.js → p-2493a7f3.entry.js} +2 -2
- package/dist/core/{p-4d36cd18.entry.js.map → p-2493a7f3.entry.js.map} +1 -1
- package/dist/core/p-2e15a654.entry.js +2 -0
- package/dist/core/{p-bd2df430.entry.js.map → p-2e15a654.entry.js.map} +1 -1
- package/dist/core/{p-1626cc67.entry.js → p-30ad7514.entry.js} +2 -2
- package/dist/core/{p-1626cc67.entry.js.map → p-30ad7514.entry.js.map} +1 -1
- package/dist/core/{p-558e75a6.entry.js → p-378cf8de.entry.js} +2 -2
- package/dist/core/{p-558e75a6.entry.js.map → p-378cf8de.entry.js.map} +1 -1
- package/dist/core/{p-be9af807.entry.js → p-3a4799b3.entry.js} +2 -2
- package/dist/core/{p-be9af807.entry.js.map → p-3a4799b3.entry.js.map} +1 -1
- package/dist/core/{p-f7bdb44a.entry.js → p-3ebbe75a.entry.js} +2 -2
- package/dist/core/{p-f7bdb44a.entry.js.map → p-3ebbe75a.entry.js.map} +1 -1
- package/dist/core/p-41bef63a.entry.js +2 -0
- package/dist/core/{p-bec959c4.entry.js.map → p-41bef63a.entry.js.map} +1 -1
- package/dist/core/{p-4e2faea7.entry.js → p-4342c252.entry.js} +2 -2
- package/dist/core/{p-4e2faea7.entry.js.map → p-4342c252.entry.js.map} +1 -1
- package/dist/core/{p-c1b9f1ab.entry.js → p-473afd7d.entry.js} +2 -2
- package/dist/core/{p-c1b9f1ab.entry.js.map → p-473afd7d.entry.js.map} +1 -1
- package/dist/core/{p-5721cf9b.entry.js → p-48b74272.entry.js} +2 -2
- package/dist/core/{p-5721cf9b.entry.js.map → p-48b74272.entry.js.map} +1 -1
- package/dist/core/{p-04ec45ab.entry.js → p-49b67f59.entry.js} +2 -2
- package/dist/core/{p-04ec45ab.entry.js.map → p-49b67f59.entry.js.map} +1 -1
- package/dist/core/{p-6b44890d.entry.js → p-4bd3f101.entry.js} +2 -2
- package/dist/core/{p-6b44890d.entry.js.map → p-4bd3f101.entry.js.map} +1 -1
- package/dist/core/{p-157a1636.entry.js → p-4e534d68.entry.js} +2 -2
- package/dist/core/{p-157a1636.entry.js.map → p-4e534d68.entry.js.map} +1 -1
- package/dist/core/p-6638d034.entry.js +2 -0
- package/dist/core/{p-73bd93f9.entry.js.map → p-6638d034.entry.js.map} +1 -1
- package/dist/core/{p-46824842.entry.js → p-68a5d225.entry.js} +2 -2
- package/dist/core/{p-46824842.entry.js.map → p-68a5d225.entry.js.map} +1 -1
- package/dist/core/{p-8d47e346.entry.js → p-6ac9b0f2.entry.js} +2 -2
- package/dist/core/{p-8d47e346.entry.js.map → p-6ac9b0f2.entry.js.map} +1 -1
- package/dist/core/{p-0af96cc0.entry.js → p-6b0625ee.entry.js} +2 -2
- package/dist/core/{p-0af96cc0.entry.js.map → p-6b0625ee.entry.js.map} +1 -1
- package/dist/core/{p-f75ad657.entry.js → p-78202a44.entry.js} +2 -2
- package/dist/core/{p-f75ad657.entry.js.map → p-78202a44.entry.js.map} +1 -1
- package/dist/core/{p-eb766437.entry.js → p-80052953.entry.js} +2 -2
- package/dist/core/{p-eb766437.entry.js.map → p-80052953.entry.js.map} +1 -1
- package/dist/core/{p-d43959a0.entry.js → p-8ddb6dc6.entry.js} +2 -2
- package/dist/core/{p-d43959a0.entry.js.map → p-8ddb6dc6.entry.js.map} +1 -1
- package/dist/core/{p-d9c574f0.entry.js → p-90cc2ddb.entry.js} +2 -2
- package/dist/core/{p-d9c574f0.entry.js.map → p-90cc2ddb.entry.js.map} +1 -1
- package/dist/core/{p-f3887d6d.entry.js → p-91d5df66.entry.js} +2 -2
- package/dist/core/{p-f3887d6d.entry.js.map → p-91d5df66.entry.js.map} +1 -1
- package/dist/core/{p-187c0eda.entry.js → p-9321fb9d.entry.js} +2 -2
- package/dist/core/{p-187c0eda.entry.js.map → p-9321fb9d.entry.js.map} +1 -1
- package/dist/core/p-943a58b2.entry.js +2 -0
- package/dist/core/{p-33209782.entry.js.map → p-943a58b2.entry.js.map} +1 -1
- package/dist/core/p-B6CqPcY_.js.map +1 -1
- package/dist/core/p-B8TR1oqt.js +3 -0
- package/dist/core/p-B8TR1oqt.js.map +1 -0
- package/dist/core/p-BUmDydor.js.map +1 -1
- package/dist/core/p-BcQO4NH2.js.map +1 -1
- package/dist/core/p-BjcqOprh.js.map +1 -1
- package/dist/core/p-Bo1ROm5Q.js.map +1 -1
- package/dist/core/p-Bz_RzYFb.js.map +1 -1
- package/dist/core/p-C3R1T_pg.js.map +1 -1
- package/dist/core/p-C6JN9gdb.js.map +1 -1
- package/dist/core/p-CDIRBJsi.js.map +1 -1
- package/dist/core/p-CQvUntGY.js.map +1 -1
- package/dist/core/p-Ccwpa1ck.js.map +1 -1
- package/dist/core/p-CgDnDrq5.js.map +1 -1
- package/dist/core/p-Cjg0wpDG.js.map +1 -1
- package/dist/core/p-CoD1xawt.js.map +1 -1
- package/dist/core/p-Cx3bEC5v.js.map +1 -1
- package/dist/core/p-D4TGB274.js.map +1 -1
- package/dist/core/p-DBXGhafv.js.map +1 -1
- package/dist/core/p-DNztiAH0.js.map +1 -1
- package/dist/core/p-DQuL1Twl.js.map +1 -1
- package/dist/core/p-DYcNEwSZ.js.map +1 -1
- package/dist/core/p-EeKNA85D.js.map +1 -1
- package/dist/core/p-GYov8gU1.js.map +1 -1
- package/dist/core/p-NOJjz9dT.js.map +1 -1
- package/dist/core/p-Q99QrOoi.js.map +1 -1
- package/dist/core/p-U40vKHrs.js.map +1 -1
- package/dist/core/p-a4fa2ffc.entry.js +2 -0
- package/dist/core/{p-c4734357.entry.js.map → p-a4fa2ffc.entry.js.map} +1 -1
- package/dist/core/{p-511eed88.entry.js → p-a6f27583.entry.js} +2 -2
- package/dist/core/{p-511eed88.entry.js.map → p-a6f27583.entry.js.map} +1 -1
- package/dist/core/p-a7c322a7.entry.js +2 -0
- package/dist/core/{p-abb7780e.entry.js.map → p-a7c322a7.entry.js.map} +1 -1
- package/dist/core/{p-6d2ce4c7.entry.js → p-ab367b0c.entry.js} +2 -2
- package/dist/core/{p-6d2ce4c7.entry.js.map → p-ab367b0c.entry.js.map} +1 -1
- package/dist/core/{p-c6b55c0a.entry.js → p-ac81cdf6.entry.js} +2 -2
- package/dist/core/{p-c6b55c0a.entry.js.map → p-ac81cdf6.entry.js.map} +1 -1
- package/dist/core/{p-a2c61d50.entry.js → p-ad9227b3.entry.js} +2 -2
- package/dist/core/{p-a2c61d50.entry.js.map → p-ad9227b3.entry.js.map} +1 -1
- package/dist/core/{p-d9d29f50.entry.js → p-af2bd9d3.entry.js} +2 -2
- package/dist/core/{p-d9d29f50.entry.js.map → p-af2bd9d3.entry.js.map} +1 -1
- package/dist/core/{p-70b5555f.entry.js → p-b0d4d6bd.entry.js} +2 -2
- package/dist/core/{p-70b5555f.entry.js.map → p-b0d4d6bd.entry.js.map} +1 -1
- package/dist/core/p-b181f85f.entry.js +2 -0
- package/dist/core/{p-57ca8ac7.entry.js.map → p-b181f85f.entry.js.map} +1 -1
- package/dist/core/{p-5305e82e.entry.js → p-b2648255.entry.js} +2 -2
- package/dist/core/{p-5305e82e.entry.js.map → p-b2648255.entry.js.map} +1 -1
- package/dist/core/{p-65a09763.entry.js → p-b37bd421.entry.js} +2 -2
- package/dist/core/{p-65a09763.entry.js.map → p-b37bd421.entry.js.map} +1 -1
- package/dist/core/{p-91cbee1b.entry.js → p-b5e40f40.entry.js} +2 -2
- package/dist/core/{p-91cbee1b.entry.js.map → p-b5e40f40.entry.js.map} +1 -1
- package/dist/core/{p-19300834.entry.js → p-b77c283e.entry.js} +2 -2
- package/dist/core/{p-19300834.entry.js.map → p-b77c283e.entry.js.map} +1 -1
- package/dist/core/{p-7f513718.entry.js → p-bb5b9ccd.entry.js} +2 -2
- package/dist/core/{p-7f513718.entry.js.map → p-bb5b9ccd.entry.js.map} +1 -1
- package/dist/core/{p-4c02094d.entry.js → p-c9b2f97c.entry.js} +2 -2
- package/dist/core/{p-4c02094d.entry.js.map → p-c9b2f97c.entry.js.map} +1 -1
- package/dist/core/{p-eb3f6808.entry.js → p-caf817d4.entry.js} +2 -2
- package/dist/core/{p-eb3f6808.entry.js.map → p-caf817d4.entry.js.map} +1 -1
- package/dist/core/p-dc0bd1e5.entry.js +2 -0
- package/dist/core/{p-3e07bf07.entry.js.map → p-dc0bd1e5.entry.js.map} +1 -1
- package/dist/core/{p-db860031.entry.js → p-dd390459.entry.js} +2 -2
- package/dist/core/{p-db860031.entry.js.map → p-dd390459.entry.js.map} +1 -1
- package/dist/core/{p-10991f00.entry.js → p-de5dfd70.entry.js} +2 -2
- package/dist/core/{p-10991f00.entry.js.map → p-de5dfd70.entry.js.map} +1 -1
- package/dist/core/p-dfb76a14.entry.js +2 -0
- package/dist/core/p-dfb76a14.entry.js.map +1 -0
- package/dist/core/{p-cd163299.entry.js → p-e17def2b.entry.js} +2 -2
- package/dist/core/{p-cd163299.entry.js.map → p-e17def2b.entry.js.map} +1 -1
- package/dist/core/{p-e39e5dc7.entry.js → p-e1d58751.entry.js} +2 -2
- package/dist/core/{p-e39e5dc7.entry.js.map → p-e1d58751.entry.js.map} +1 -1
- package/dist/core/{p-3e07bf07.entry.js → p-e913cfc8.entry.js} +2 -2
- package/dist/core/{p-90ab65b4.entry.js.map → p-e913cfc8.entry.js.map} +1 -1
- package/dist/core/{p-da997fb3.entry.js → p-ea299832.entry.js} +2 -2
- package/dist/core/{p-da997fb3.entry.js.map → p-ea299832.entry.js.map} +1 -1
- package/dist/core/{p-852310d9.entry.js → p-eff8ffff.entry.js} +2 -2
- package/dist/core/{p-852310d9.entry.js.map → p-eff8ffff.entry.js.map} +1 -1
- package/dist/core/{p-4d902f20.entry.js → p-f2d24551.entry.js} +2 -2
- package/dist/core/{p-4d902f20.entry.js.map → p-f2d24551.entry.js.map} +1 -1
- package/dist/core/{p-5c872d64.entry.js → p-f515d912.entry.js} +2 -2
- package/dist/core/{p-bf573a56.entry.js → p-febff4d1.entry.js} +2 -2
- package/dist/core/{p-bf573a56.entry.js.map → p-febff4d1.entry.js.map} +1 -1
- package/dist/core/p-vN03FcXN.js.map +1 -1
- package/dist/esm/gov-flex_3.entry.js +1 -1
- package/dist/esm/gov-form-file.entry.js +35 -11
- package/dist/esm/gov-form-file.entry.js.map +1 -1
- package/dist/hydrate/index.js +36 -12
- package/dist/hydrate/index.mjs +36 -12
- package/dist/types/components.d.ts +592 -119
- package/dist/types/stencil-public-runtime.d.ts +170 -11
- package/package.json +32 -28
- package/readme.md +1 -2
- package/dist/components/p-CXPP9vec.js +0 -2
- package/dist/core/core.css +0 -14776
- package/dist/core/gov-accordion-item.entry.esm.js.map +0 -1
- package/dist/core/gov-accordion.entry.esm.js.map +0 -1
- package/dist/core/gov-attachments.gov-attachments-item.gov-form-message.entry.esm.js.map +0 -1
- package/dist/core/gov-backdrop.entry.esm.js.map +0 -1
- package/dist/core/gov-banner.entry.esm.js.map +0 -1
- package/dist/core/gov-blockquote.entry.esm.js.map +0 -1
- package/dist/core/gov-breadcrumbs.entry.esm.js.map +0 -1
- package/dist/core/gov-button.entry.esm.js.map +0 -1
- package/dist/core/gov-card.entry.esm.js.map +0 -1
- package/dist/core/gov-chip.entry.esm.js.map +0 -1
- package/dist/core/gov-collapsible.entry.esm.js.map +0 -1
- package/dist/core/gov-container.entry.esm.js.map +0 -1
- package/dist/core/gov-control-group.entry.esm.js.map +0 -1
- package/dist/core/gov-cookiebar.entry.esm.js.map +0 -1
- package/dist/core/gov-dialog.entry.esm.js.map +0 -1
- package/dist/core/gov-dropdown.entry.esm.js.map +0 -1
- package/dist/core/gov-empty.entry.esm.js.map +0 -1
- package/dist/core/gov-error-code.entry.esm.js.map +0 -1
- package/dist/core/gov-flex.gov-icon.gov-theme-switch.entry.esm.js.map +0 -1
- package/dist/core/gov-form-autocomplete.entry.esm.js.map +0 -1
- package/dist/core/gov-form-checkbox-group.entry.esm.js.map +0 -1
- package/dist/core/gov-form-checkbox.entry.esm.js.map +0 -1
- package/dist/core/gov-form-control.entry.esm.js.map +0 -1
- package/dist/core/gov-form-file.entry.esm.js.map +0 -1
- package/dist/core/gov-form-group.entry.esm.js.map +0 -1
- package/dist/core/gov-form-input.gov-skeleton.entry.esm.js.map +0 -1
- package/dist/core/gov-form-label.entry.esm.js.map +0 -1
- package/dist/core/gov-form-multi-select.entry.esm.js.map +0 -1
- package/dist/core/gov-form-password-power.entry.esm.js.map +0 -1
- package/dist/core/gov-form-radio-group.entry.esm.js.map +0 -1
- package/dist/core/gov-form-radio.entry.esm.js.map +0 -1
- package/dist/core/gov-form-range.entry.esm.js.map +0 -1
- package/dist/core/gov-form-search.entry.esm.js.map +0 -1
- package/dist/core/gov-form-select.entry.esm.js.map +0 -1
- package/dist/core/gov-form-switch.entry.esm.js.map +0 -1
- package/dist/core/gov-grid-item.entry.esm.js.map +0 -1
- package/dist/core/gov-grid.entry.esm.js.map +0 -1
- package/dist/core/gov-infobar.entry.esm.js.map +0 -1
- package/dist/core/gov-layout-column.entry.esm.js.map +0 -1
- package/dist/core/gov-layout.entry.esm.js.map +0 -1
- package/dist/core/gov-lifecycle.entry.esm.js.map +0 -1
- package/dist/core/gov-link.entry.esm.js.map +0 -1
- package/dist/core/gov-loading.entry.esm.js.map +0 -1
- package/dist/core/gov-message.entry.esm.js.map +0 -1
- package/dist/core/gov-pagination.entry.esm.js.map +0 -1
- package/dist/core/gov-spacer.entry.esm.js.map +0 -1
- package/dist/core/gov-stepper-item.entry.esm.js.map +0 -1
- package/dist/core/gov-stepper.entry.esm.js.map +0 -1
- package/dist/core/gov-tabs-item.entry.esm.js.map +0 -1
- package/dist/core/gov-tabs.entry.esm.js.map +0 -1
- package/dist/core/gov-tag.entry.esm.js.map +0 -1
- package/dist/core/gov-tile.entry.esm.js.map +0 -1
- package/dist/core/gov-toast.entry.esm.js.map +0 -1
- package/dist/core/gov-tooltip.gov-tooltip-content.entry.esm.js.map +0 -1
- package/dist/core/gov-wizard-item.entry.esm.js.map +0 -1
- package/dist/core/gov-wizard.entry.esm.js.map +0 -1
- package/dist/core/loader.esm.js.map +0 -1
- package/dist/core/p-33209782.entry.js +0 -2
- package/dist/core/p-57ca8ac7.entry.js +0 -2
- package/dist/core/p-73bd93f9.entry.js +0 -2
- package/dist/core/p-90ab65b4.entry.js +0 -2
- package/dist/core/p-ClISz4NF.js +0 -3
- package/dist/core/p-ClISz4NF.js.map +0 -1
- package/dist/core/p-abb7780e.entry.js +0 -2
- package/dist/core/p-afe254cb.entry.js +0 -2
- package/dist/core/p-afe254cb.entry.js.map +0 -1
- package/dist/core/p-bd2df430.entry.js +0 -2
- package/dist/core/p-bec959c4.entry.js +0 -2
- package/dist/core/p-c4734357.entry.js +0 -2
- package/dist/core/p-fca7a0d6.entry.js +0 -2
- /package/dist/components/{p-ibUK7mfI.js.map → p-BGK46VRO.js.map} +0 -0
- /package/dist/components/{p-iTwUkISB.js.map → p-BICk4EuO.js.map} +0 -0
- /package/dist/components/{p-DN5pb9xA.js.map → p-BNoNH6m-.js.map} +0 -0
- /package/dist/components/{p-C_URF9Su.js.map → p-ClDhNt_H.js.map} +0 -0
- /package/dist/components/{p-pJ_vPAO0.js.map → p-DjGO_trZ.js.map} +0 -0
- /package/dist/components/{p-yIpIIG5A.js.map → p-DmK9qaKH.js.map} +0 -0
- /package/dist/components/{p-DEthsMuE.js.map → p-isPjiQbr.js.map} +0 -0
- /package/dist/core/{p-5c872d64.entry.js.map → p-f515d912.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["normalize","value","removeDiacritics","toLowerCase","filterAutocompleteOptions","options","query","nameKey","maxOptions","source","Array","isArray","normalizedQuery","matches","length","filter","item","text","includes","Number","isInteger","slice","GovFormAutocomplete","constructor","hostRef","this","fullOptions","templateResolver","size","required","disabled","minlength","throttleTime","messageEmpty","processing","arrowCounter","list","inheritedAttributes","emitAndSearch","e","govInput","emit","originalEvent","component","FormAutocompleteClass","root","selected","doSearch","onInputHandler","stopPropagation","detail","debouncedSearch","listBoxId","createID","validateSize","newValue","validateProp","FormAutocompleteSizes","watchOptions","propsValueToArray","searchCallback","setOptions","catch","onArrowUp","moveToView","finally","onArrowDown","delay","heightOfList","listRef","offsetHeight","querySelector","offsetTop","scrollTo","top","behavior","isValueAccepted","then","response","clearList","componentDidLoad","attributeObserver","AttributeObserver","host","attributeName","onAriaAttributeChange","startObserving","ariaAttributes","componentWillLoad","inheritAriaAttributes","throttle","watchThrottleTime","disconnectedCallback","_a","stopObserving","removeAttribute","Object","assign","render","h","Host","key","class","placeholder","name","readonly","autocomplete","invalid","success","role","maxlength","onKeyUpHandler","bind","onKeyDownHandler","onFocusHandler","onBlurHandler","join","booleanString","focused","ref","el","inputRef","toBoolAttr","hidden","id","empty","loading","map","index","isSelected","innerHTML","tabindex","onTouchStart","onSelectHandler","onMouseDown","govFocus","govBlur","has","govSelect","event","keyCode","preventDefault","setFocus","focus","setBlur","blur","clearValue","setProcessing","status","setSearchCallback","callback","setTemplateResolver"],"sources":["../../../packages/core/src/components/gov-form/autocomplete/autocomplete.utils.ts","../../../packages/core/src/components/gov-form/autocomplete/gov-form-autocomplete.tsx"],"sourcesContent":["import { removeDiacritics } from '../../../utils/string.utils'\nimport { GovFormAutocompleteItem } from './gov-form-autocomplete.types'\n\nconst normalize = (value: unknown): string =>\n\ttypeof value === 'string' ? removeDiacritics(value).toLowerCase() : ''\n\nexport const filterAutocompleteOptions = (\n\toptions: GovFormAutocompleteItem[],\n\tquery: string,\n\tnameKey: string,\n\tmaxOptions: number,\n): GovFormAutocompleteItem[] => {\n\tconst source = Array.isArray(options) ? options : []\n\tconst normalizedQuery = normalize(query)\n\tconst matches =\n\t\tnormalizedQuery.length === 0\n\t\t\t? source\n\t\t\t: source.filter(item => {\n\t\t\t\t\tconst text = item?.[nameKey]\n\t\t\t\t\treturn typeof text === 'string' && normalize(text).includes(normalizedQuery)\n\t\t\t\t})\n\treturn Number.isInteger(maxOptions) && maxOptions > 0 ? matches.slice(0, maxOptions) : matches\n}\n","import {Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch} from '@stencil/core'\nimport {booleanString, toBoolAttr} from '../../../helpers/Dom/template'\nimport {validateProp} from '../../../helpers/Validate/props'\nimport {Nullable} from '../../../types/interfaces'\nimport {createID} from '../../../utils/string.utils'\nimport {delay, has, throttle} from '../../../utils/utils'\nimport {FormInputEvent} from '../input/gov-form-input.types'\nimport {FormAutocompleteClass, FormAutocompleteSizes, SizesType,} from './constants'\nimport {FormAutocompleteEvent, GovFormAutocompleteItem} from './gov-form-autocomplete.types'\nimport {propsValueToArray} from \"../../../utils/array.utils\";\nimport { filterAutocompleteOptions } from './autocomplete.utils'\nimport {AttributeObserver, Attributes} from \"../../../helpers/Dom/attribute\";\nimport {ariaAttributes} from \"../../../helpers/Accessibility/attributes\";\nimport {inheritAriaAttributes} from \"../../../helpers/Accessibility/accessibility\";\n\n@Component({\n\ttag: 'gov-form-autocomplete',\n})\nexport class GovFormAutocomplete {\n\tprivate inputRef?: HTMLGovFormInputElement\n\tprivate listRef?: HTMLUListElement\n\tprivate readonly listBoxId: string\n\tprivate searchCallback: (value: string) => Promise<GovFormAutocompleteItem[]>\n\tprivate fullOptions: GovFormAutocompleteItem[] = []\n\tprivate templateResolver: (item: GovFormAutocompleteItem, selected: boolean) => string = item => item[this.nameKey]\n\tprivate attributeObserver: AttributeObserver\n\tprivate debouncedSearch: (e: CustomEvent<FormInputEvent>) => void\n\n\tconstructor() {\n\t\tthis.listBoxId = createID('GovListBox')\n\t}\n\n\t@Element() host: HTMLGovFormInputElement\n\t/**\n\t * Value of input\n\t */\n\t@Prop({reflect: true, mutable: true}) value = ''\n\t/**\n\t * Options of autocomplete\n\t */\n\t@Prop({reflect: true, mutable: true}) options?: string | GovFormAutocompleteItem[]\n\t/**\n\t * Custom input identifier.\n\t */\n\t@Prop({attribute: 'identifier'}) readonly identifier: string\n\t/**\n\t * Indicates the entered value of child form element does conform to the format expected by the application.\n\t */\n\t@Prop() readonly success: boolean\n\t/**\n\t * Input’s size.\n\t */\n\t@Prop() readonly size?: SizesType = 'm'\n\t/**\n\t * Main key name in the object\n\t */\n\t@Prop({attribute: 'name-key'}) readonly nameKey: string = 'name'\n\t/**\n\t * Name of the input.\n\t */\n\t@Prop() readonly name: string\n\t/**\n\t * Set whether the input is required or not. Please note that this is necessary for accessible inputs when the user is required to fill them.\n\t * When using this property you need to also set “novalidate” attribute to your form element to prevent browser from displaying its own validation errors.\n\t */\n\t@Prop() readonly required: boolean = false\n\t/**\n\t * Makes the input component disabled.\n\t * This prevents users from being able to interact with the select, and conveys its inactive state to assistive technologies.\n\t */\n\t@Prop({reflect: true}) readonly disabled: boolean = false\n\t/**\n\t * Text that appears in the form control when it has no value set\n\t */\n\t@Prop() readonly placeholder: string\n\t/**\n\t * The value is not editable\n\t */\n\t@Prop() readonly readonly: boolean\n\t/**\n\t * Indicates the entered value does not conform to the format expected by the application.\n\t */\n\t@Prop() readonly invalid: boolean\n\t/**\n\t * Minimum length (number of characters) of value\n\t */\n\t@Prop() readonly minlength: number = 3\n\t/**\n\t * Maximum length (number of characters) of value\n\t */\n\t@Prop() readonly maxlength: number\n\t/**\n\t * Maximum number of items shown from a static `options` list (0 = unlimited).\n\t * Applies only when no async search callback is set.\n\t */\n\t@Prop({attribute: 'max-options'}) readonly maxOptions: number = 10\n\t/**\n\t * Input throttle in milliseconds\n\t */\n\t@Prop() readonly throttleTime: number = 200\n\t/**\n\t * Custom message for when there is a blank sheet\n\t */\n\t@Prop({attribute: 'message-empty'}) readonly messageEmpty: string = 'Nebyly nalezeny žádné výsledky'\n\t/**\n\t * Emitted when the input has focus.\n\t */\n\t@Event({eventName: 'gov-focus'}) govFocus: EventEmitter<FormAutocompleteEvent>\n\t/**\n\t * Emitted when the input loses focus.\n\t */\n\t@Event({eventName: 'gov-blur'}) govBlur: EventEmitter<FormAutocompleteEvent>\n\t/**\n\t * Emitted when the input change value.\n\t */\n\t@Event({eventName: 'gov-input'}) govInput: EventEmitter<FormAutocompleteEvent>\n\t/**\n\t * Emitted when the input change value.\n\t */\n\t@Event({eventName: 'gov-select'}) govSelect: EventEmitter<FormAutocompleteEvent>\n\n\t@State() focused: boolean\n\t@State() processing = false\n\t@State() arrowCounter = -1\n\t@State() list: GovFormAutocompleteItem[] = []\n\t@State() inheritedAttributes: Attributes = {}\n\n\t@Watch('size')\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(FormAutocompleteSizes, newValue, FormAutocompleteClass.root)\n\t}\n\n\t@Watch('options')\n\twatchOptions(newValue: string | GovFormAutocompleteItem[]): void {\n\t\tthis.fullOptions = propsValueToArray<GovFormAutocompleteItem[]>(newValue)\n\t\tif (this.searchCallback) {\n\t\t\tthis.setOptions(this.fullOptions).catch()\n\t\t} else {\n\t\t\tthis.list = filterAutocompleteOptions(this.fullOptions, this.value, this.nameKey, this.maxOptions)\n\t\t}\n\t}\n\n\tprivate onArrowUp() {\n\t\tif (this.arrowCounter > 0) {\n\t\t\tthis.arrowCounter = this.arrowCounter - 1\n\t\t\tthis.moveToView().finally()\n\t\t}\n\t}\n\n\tprivate onArrowDown() {\n\t\tif (this.arrowCounter < this.list.length - 1) {\n\t\t\tthis.arrowCounter = this.arrowCounter + 1\n\t\t\tthis.moveToView().finally()\n\t\t}\n\t}\n\n\tprivate async moveToView() {\n\t\tawait delay(200)\n\t\tconst heightOfList = this.listRef.offsetHeight\n\t\tconst selected = this.listRef.querySelector('li[aria-selected=\"true\"]') as HTMLUListElement\n\t\tif (selected && heightOfList) {\n\t\t\tconst offsetTop = selected.offsetTop\n\t\t\tthis.listRef.scrollTo({top: offsetTop, behavior: 'smooth'})\n\t\t}\n\t}\n\n\tprivate doSearch() {\n\t\tif (this.searchCallback) {\n\t\t\tif (Number.isInteger(this.minlength) && this.isValueAccepted === false && this.minlength) {\n\t\t\t\tthis.list = []\n\t\t\t\tthis.arrowCounter = -1\n\t\t\t\tthis.processing = false\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.processing = true\n\t\t\tthis.searchCallback(this.value)\n\t\t\t\t.then(response => (this.list = response))\n\t\t\t\t.catch(() => (this.list = []))\n\t\t\t\t.finally(() => {\n\t\t\t\t\tthis.arrowCounter = -1\n\t\t\t\t\tthis.processing = false\n\t\t\t\t})\n\t\t\treturn\n\t\t}\n\t\tthis.list = filterAutocompleteOptions(this.fullOptions, this.value, this.nameKey, this.maxOptions)\n\t\tthis.arrowCounter = -1\n\t}\n\n\tprivate clearList() {\n\t\tif (this.fullOptions.length === 0) {\n\t\t\tthis.list = []\n\t\t}\n\t}\n\n\tget isValueAccepted() {\n\t\tif (typeof this.value === 'string') {\n\t\t\treturn this.value.length >= this.minlength\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tcomponentDidLoad() {\n\t\tthis.attributeObserver = new AttributeObserver(this.host, (attributeName, newValue) => {\n\t\t\tthis.onAriaAttributeChange(attributeName, newValue);\n\t\t});\n\n\t\tthis.attributeObserver.startObserving(ariaAttributes);\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.validateSize(this.size)\n\t\tthis.inheritedAttributes = inheritAriaAttributes(this.host);\n\t\tthis.debouncedSearch = throttle(this.emitAndSearch, this.throttleTime)\n\t\tthis.fullOptions = propsValueToArray<GovFormAutocompleteItem[]>(this.options)\n\t\tif (!this.searchCallback) {\n\t\t\tthis.list = filterAutocompleteOptions(this.fullOptions, this.value, this.nameKey, this.maxOptions)\n\t\t}\n\t}\n\n\t@Watch('throttleTime')\n\twatchThrottleTime() {\n\t\tthis.debouncedSearch = throttle(this.emitAndSearch, this.throttleTime)\n\t}\n\n\tprivate emitAndSearch = (e: CustomEvent<FormInputEvent>) => {\n\t\tthis.govInput.emit({\n\t\t\toriginalEvent: e,\n\t\t\tcomponent: FormAutocompleteClass.root,\n\t\t\tvalue: this.value,\n\t\t\tselected: null,\n\t\t})\n\t\tthis.doSearch()\n\t}\n\n\tdisconnectedCallback() {\n\t\tthis.attributeObserver?.stopObserving();\n\t}\n\n\tonAriaAttributeChange(attributeName: string, newValue: string) {\n\t\tthis.host.removeAttribute(attributeName)\n\t\tthis.inheritedAttributes = {...this.inheritedAttributes, [attributeName]: newValue};\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={FormAutocompleteClass.root} size={this.size}>\n\t\t\t\t<gov-form-input\n\t\t\t\t\tplaceholder={this.placeholder}\n\t\t\t\t\tname={this.name}\n\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\treadonly={this.readonly}\n\t\t\t\t\tautocomplete={false}\n\t\t\t\t\tsize={this.size}\n\t\t\t\t\trequired={this.required}\n\t\t\t\t\tinvalid={this.invalid}\n\t\t\t\t\tsuccess={this.success}\n\t\t\t\t\trole={'searchbox'}\n\t\t\t\t\tvalue={this.value}\n\t\t\t\t\tminlength={this.minlength}\n\t\t\t\t\tmaxlength={this.maxlength}\n\t\t\t\t\ton-gov-input={this.onInputHandler}\n\t\t\t\t\ton-gov-keyup={this.onKeyUpHandler.bind(this)}\n\t\t\t\t\ton-gov-keydown={this.onKeyDownHandler.bind(this)}\n\t\t\t\t\ton-gov-focus={this.onFocusHandler.bind(this)}\n\t\t\t\t\ton-gov-blur={this.onBlurHandler.bind(this)}\n\t\t\t\t\t{...this.inheritedAttributes}\n\t\t\t\t\taria-autocomplete={'list'}\n\t\t\t\t\taria-owns={[this.listBoxId, this.inheritedAttributes['aria-owns']].join(' ')}\n\t\t\t\t\taria-expanded={booleanString(this.list.length && this.focused ? true : false)}\n\t\t\t\t\tref={el => (this.inputRef = el as HTMLGovFormInputElement)}\n\t\t\t\t>\n\t\t\t\t\t<slot name=\"validation-icon\" />\n\t\t\t\t\t<slot name=\"icon-end\" />\n\t\t\t\t</gov-form-input>\n\t\t\t\t<ul class={FormAutocompleteClass.list}\n\t\t\t\t\trole={'listbox'}\n\t\t\t\t\taria-hidden={toBoolAttr(!this.focused)}\n\t\t\t\t\thidden={!this.focused}\n\t\t\t\t\tid={this.listBoxId}\n\t\t\t\t\tref={el => (this.listRef = el as HTMLUListElement)}>\n\t\t\t\t\t{this.focused && this.list.length === 0 && this.processing === false && (this.isValueAccepted || (!this.searchCallback && this.fullOptions.length > 0)) && this.messageEmpty ? (\n\t\t\t\t\t\t<li class={FormAutocompleteClass.empty}>{this.messageEmpty}</li>\n\t\t\t\t\t) : null}\n\t\t\t\t\t{this.focused && this.processing === true && this.isValueAccepted ? (\n\t\t\t\t\t\t<li class={FormAutocompleteClass.loading}>\n\t\t\t\t\t\t\t<gov-skeleton size=\"m\"></gov-skeleton>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t) : null}\n\t\t\t\t\t{this.focused ? this.list.map((item, index) => {\n\t\t\t\t\t\tconst isSelected = this.arrowCounter === index\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\tclass={FormAutocompleteClass.item}\n\t\t\t\t\t\t\t\tinnerHTML={this.templateResolver(item, isSelected)}\n\t\t\t\t\t\t\t\trole={'option'}\n\t\t\t\t\t\t\t\taria-posinset={index}\n\t\t\t\t\t\t\t\ttabindex={isSelected ? 0 : -1}\n\t\t\t\t\t\t\t\taria-setsize={this.list.length}\n\t\t\t\t\t\t\t\tonTouchStart={(e: TouchEvent) => this.onSelectHandler(e, index)}\n\t\t\t\t\t\t\t\tonMouseDown={(e: PointerEvent) => this.onSelectHandler(e, index)}\n\t\t\t\t\t\t\t\taria-selected={toBoolAttr(isSelected)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<slot name=\"list-item-left\"/>\n\t\t\t\t\t\t\t\t<slot name=\"list-item-right\"/>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t)\n\t\t\t\t\t}) : null}\n\t\t\t\t</ul>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onFocusHandler(e: FocusEvent) {\n\t\tthis.focused = true\n\t\tthis.arrowCounter = -1\n\t\tif (this.searchCallback) {\n\t\t\tif (this.isValueAccepted) {\n\t\t\t\tthis.doSearch()\n\t\t\t}\n\t\t} else {\n\t\t\tthis.doSearch()\n\t\t}\n\t\te.stopPropagation()\n\t\tthis.govFocus.emit({\n\t\t\toriginalEvent: e,\n\t\t\tcomponent: FormAutocompleteClass.root,\n\t\t\tvalue: this.value,\n\t\t\tselected: null,\n\t\t})\n\t}\n\n\tprivate onBlurHandler(e: FocusEvent) {\n\t\tthis.focused = false\n\t\tthis.clearList();\n\t\tthis.arrowCounter = -1\n\t\te.stopPropagation()\n\t\tthis.govBlur.emit({\n\t\t\toriginalEvent: e,\n\t\t\tcomponent: FormAutocompleteClass.root,\n\t\t\tvalue: this.value,\n\t\t\tselected: null,\n\t\t})\n\t}\n\n\tprivate onInputHandler = (e: CustomEvent<FormInputEvent>) => {\n\t\te.stopPropagation()\n\t\tthis.value = e.detail.value\n\t\tthis.debouncedSearch(e)\n\t}\n\n\tprivate onSelectHandler(e: PointerEvent | CustomEvent | TouchEvent, index = -1) {\n\t\tlet selected: Nullable<GovFormAutocompleteItem> = null\n\t\tif (index > -1) {\n\t\t\tselected = this.list[index]\n\t\t} else if (has(this.arrowCounter, this.list)) {\n\t\t\tselected = this.list[this.arrowCounter]\n\t\t}\n\t\tif (selected) {\n\t\t\tthis.govSelect.emit({\n\t\t\t\tcomponent: FormAutocompleteClass.root,\n\t\t\t\tvalue: this.value,\n\t\t\t\tselected: selected,\n\t\t\t\toriginalEvent: e,\n\t\t\t})\n\t\t\tthis.clearList();\n\t\t\tif (has(this.nameKey, selected) && typeof selected[this.nameKey] === 'string') {\n\t\t\t\tthis.value = selected[this.nameKey]\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate onKeyUpHandler(e: CustomEvent) {\n\t\tconst event = (e.detail as FormInputEvent).originalEvent as KeyboardEvent\n\t\te.stopPropagation()\n\t\tevent.stopPropagation()\n\t\tif (event.keyCode === 38) this.onArrowUp()\n\t\telse if (event.keyCode === 40) this.onArrowDown()\n\t\telse if (event.keyCode === 13) {\n\t\t\te.preventDefault()\n\t\t\tevent.preventDefault()\n\t\t\tthis.onSelectHandler(e)\n\t\t}\n\t}\n\n\tprivate onKeyDownHandler(e: CustomEvent) {\n\t\tconst event = (e.detail as FormInputEvent).originalEvent as KeyboardEvent\n\t\te.stopPropagation()\n\t\tevent.stopPropagation()\n\t\tif (event.keyCode === 13) {\n\t\t\te.preventDefault()\n\t\t\tevent.preventDefault()\n\t\t}\n\t}\n\n\t/**\n\t * Focus main input element\n\t */\n\t@Method()\n\tasync setFocus(options?: FocusOptions): Promise<void> {\n\t\treturn this.inputRef.focus(options)\n\t}\n\n\t/**\n\t * Blur main input element\n\t */\n\t@Method()\n\tasync setBlur(): Promise<void> {\n\t\treturn this.inputRef.blur()\n\t}\n\n\t/**\n\t * Set options for list\n\t */\n\t@Method()\n\tasync setOptions(options: GovFormAutocompleteItem[]): Promise<void> {\n\t\tthis.list = Array.isArray(options) ? options : []\n\t\tthis.arrowCounter = -1\n\t}\n\n\t/**\n\t * Clears whisperer value\n\t */\n\t@Method()\n\tasync clearValue(): Promise<void> {\n\t\tthis.value = ''\n\t\tthis.inputRef.value = ''\n\n\t\tawait this.inputRef.clearValue()\n\t}\n\n\t/**\n\t * Clears whisperer value\n\t */\n\t@Method()\n\tasync setProcessing(status: boolean): Promise<void> {\n\t\tthis.processing = status\n\t}\n\n\t/**\n\t * Set a custom asynchronous function for the whisperer\n\t */\n\t@Method()\n\tasync setSearchCallback(callback: (value: string) => Promise<any>) {\n\t\tthis.searchCallback = callback\n\t}\n\n\t/**\n\t * Setting a custom whisper result template\n\t * @param callback\n\t */\n\t@Method()\n\tasync setTemplateResolver(callback: (item: GovFormAutocompleteItem) => string) {\n\t\tthis.templateResolver = callback\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["normalize","value","removeDiacritics","toLowerCase","filterAutocompleteOptions","options","query","nameKey","maxOptions","source","Array","isArray","normalizedQuery","matches","length","filter","item","text","includes","Number","isInteger","slice","GovFormAutocomplete","constructor","hostRef","this","fullOptions","templateResolver","size","required","disabled","minlength","throttleTime","messageEmpty","processing","arrowCounter","list","inheritedAttributes","emitAndSearch","e","govInput","emit","originalEvent","component","FormAutocompleteClass","root","selected","doSearch","onInputHandler","stopPropagation","detail","debouncedSearch","listBoxId","createID","validateSize","newValue","validateProp","FormAutocompleteSizes","watchOptions","propsValueToArray","searchCallback","setOptions","catch","onArrowUp","moveToView","finally","onArrowDown","delay","heightOfList","listRef","offsetHeight","querySelector","offsetTop","scrollTo","top","behavior","isValueAccepted","then","response","clearList","componentDidLoad","attributeObserver","AttributeObserver","host","attributeName","onAriaAttributeChange","startObserving","ariaAttributes","componentWillLoad","inheritAriaAttributes","throttle","watchThrottleTime","disconnectedCallback","_a","stopObserving","removeAttribute","Object","assign","render","h","Host","key","class","placeholder","name","readonly","autocomplete","invalid","success","role","maxlength","onKeyUpHandler","bind","onKeyDownHandler","onFocusHandler","onBlurHandler","join","booleanString","focused","ref","el","inputRef","toBoolAttr","hidden","id","empty","loading","map","index","isSelected","innerHTML","tabindex","onTouchStart","onSelectHandler","onMouseDown","govFocus","govBlur","has","govSelect","event","keyCode","preventDefault","setFocus","focus","setBlur","blur","clearValue","setProcessing","status","setSearchCallback","callback","setTemplateResolver"],"sources":["../../../packages/core/src/components/gov-form/autocomplete/autocomplete.utils.ts","../../../packages/core/src/components/gov-form/autocomplete/gov-form-autocomplete.tsx"],"sourcesContent":["import { removeDiacritics } from '../../../utils/string.utils'\nimport { GovFormAutocompleteItem } from './gov-form-autocomplete.types'\n\nconst normalize = (value: unknown): string =>\n\ttypeof value === 'string' ? removeDiacritics(value).toLowerCase() : ''\n\nexport const filterAutocompleteOptions = (\n\toptions: GovFormAutocompleteItem[],\n\tquery: string,\n\tnameKey: string,\n\tmaxOptions: number,\n): GovFormAutocompleteItem[] => {\n\tconst source = Array.isArray(options) ? options : []\n\tconst normalizedQuery = normalize(query)\n\tconst matches =\n\t\tnormalizedQuery.length === 0\n\t\t\t? source\n\t\t\t: source.filter(item => {\n\t\t\t\t\tconst text = item?.[nameKey]\n\t\t\t\t\treturn typeof text === 'string' && normalize(text).includes(normalizedQuery)\n\t\t\t\t})\n\treturn Number.isInteger(maxOptions) && maxOptions > 0 ? matches.slice(0, maxOptions) : matches\n}\n","import {Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch} from '@stencil/core'\nimport {booleanString, toBoolAttr} from '../../../helpers/Dom/template'\nimport {validateProp} from '../../../helpers/Validate/props'\nimport {Nullable} from '../../../types/interfaces'\nimport {createID} from '../../../utils/string.utils'\nimport {delay, has, throttle} from '../../../utils/utils'\nimport {FormInputEvent} from '../input/gov-form-input.types'\nimport {FormAutocompleteClass, FormAutocompleteSizes, SizesType,} from './constants'\nimport {FormAutocompleteEvent, GovFormAutocompleteItem} from './gov-form-autocomplete.types'\nimport {propsValueToArray} from \"../../../utils/array.utils\";\nimport { filterAutocompleteOptions } from './autocomplete.utils'\nimport {AttributeObserver, Attributes} from \"../../../helpers/Dom/attribute\";\nimport {ariaAttributes} from \"../../../helpers/Accessibility/attributes\";\nimport {inheritAriaAttributes} from \"../../../helpers/Accessibility/accessibility\";\n\n@Component({\n\ttag: 'gov-form-autocomplete',\n})\nexport class GovFormAutocomplete {\n\tprivate inputRef?: HTMLGovFormInputElement\n\tprivate listRef?: HTMLUListElement\n\tprivate readonly listBoxId: string\n\tprivate searchCallback: (value: string) => Promise<GovFormAutocompleteItem[]>\n\tprivate fullOptions: GovFormAutocompleteItem[] = []\n\tprivate templateResolver: (item: GovFormAutocompleteItem, selected: boolean) => string = item => item[this.nameKey]\n\tprivate attributeObserver: AttributeObserver\n\tprivate debouncedSearch: (e: CustomEvent<FormInputEvent>) => void\n\n\tconstructor() {\n\t\tthis.listBoxId = createID('GovListBox')\n\t}\n\n\t@Element() host: HTMLGovFormInputElement\n\t/**\n\t * Value of input\n\t */\n\t@Prop({reflect: true, mutable: true}) value = ''\n\t/**\n\t * Options of autocomplete\n\t */\n\t@Prop({reflect: true, mutable: true}) options?: string | GovFormAutocompleteItem[]\n\t/**\n\t * Custom input identifier.\n\t */\n\t@Prop({attribute: 'identifier'}) readonly identifier: string\n\t/**\n\t * Indicates the entered value of child form element does conform to the format expected by the application.\n\t */\n\t@Prop() readonly success: boolean\n\t/**\n\t * Input’s size.\n\t */\n\t@Prop() readonly size?: SizesType = 'm'\n\t/**\n\t * Main key name in the object\n\t */\n\t@Prop({attribute: 'name-key'}) readonly nameKey: string = 'name'\n\t/**\n\t * Name of the input.\n\t */\n\t@Prop() readonly name: string\n\t/**\n\t * Set whether the input is required or not. Please note that this is necessary for accessible inputs when the user is required to fill them.\n\t * When using this property you need to also set “novalidate” attribute to your form element to prevent browser from displaying its own validation errors.\n\t */\n\t@Prop() readonly required: boolean = false\n\t/**\n\t * Makes the input component disabled.\n\t * This prevents users from being able to interact with the select, and conveys its inactive state to assistive technologies.\n\t */\n\t@Prop({reflect: true}) readonly disabled: boolean = false\n\t/**\n\t * Text that appears in the form control when it has no value set\n\t */\n\t@Prop() readonly placeholder: string\n\t/**\n\t * The value is not editable\n\t */\n\t@Prop() readonly readonly: boolean\n\t/**\n\t * Indicates the entered value does not conform to the format expected by the application.\n\t */\n\t@Prop() readonly invalid: boolean\n\t/**\n\t * Minimum length (number of characters) of value\n\t */\n\t@Prop() readonly minlength: number = 3\n\t/**\n\t * Maximum length (number of characters) of value\n\t */\n\t@Prop() readonly maxlength: number\n\t/**\n\t * Maximum number of items shown from a static `options` list (0 = unlimited).\n\t * Applies only when no async search callback is set.\n\t */\n\t@Prop({attribute: 'max-options'}) readonly maxOptions: number = 10\n\t/**\n\t * Input throttle in milliseconds\n\t */\n\t@Prop() readonly throttleTime: number = 200\n\t/**\n\t * Custom message for when there is a blank sheet\n\t */\n\t@Prop({attribute: 'message-empty'}) readonly messageEmpty: string = 'Nebyly nalezeny žádné výsledky'\n\t/**\n\t * Emitted when the input has focus.\n\t */\n\t@Event({eventName: 'gov-focus'}) govFocus: EventEmitter<FormAutocompleteEvent>\n\t/**\n\t * Emitted when the input loses focus.\n\t */\n\t@Event({eventName: 'gov-blur'}) govBlur: EventEmitter<FormAutocompleteEvent>\n\t/**\n\t * Emitted when the input change value.\n\t */\n\t@Event({eventName: 'gov-input'}) govInput: EventEmitter<FormAutocompleteEvent>\n\t/**\n\t * Emitted when the input change value.\n\t */\n\t@Event({eventName: 'gov-select'}) govSelect: EventEmitter<FormAutocompleteEvent>\n\n\t@State() focused: boolean\n\t@State() processing = false\n\t@State() arrowCounter = -1\n\t@State() list: GovFormAutocompleteItem[] = []\n\t@State() inheritedAttributes: Attributes = {}\n\n\t@Watch('size')\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(FormAutocompleteSizes, newValue, FormAutocompleteClass.root)\n\t}\n\n\t@Watch('options')\n\twatchOptions(newValue: string | GovFormAutocompleteItem[]): void {\n\t\tthis.fullOptions = propsValueToArray<GovFormAutocompleteItem[]>(newValue)\n\t\tif (this.searchCallback) {\n\t\t\tthis.setOptions(this.fullOptions).catch()\n\t\t} else {\n\t\t\tthis.list = filterAutocompleteOptions(this.fullOptions, this.value, this.nameKey, this.maxOptions)\n\t\t}\n\t}\n\n\tprivate onArrowUp() {\n\t\tif (this.arrowCounter > 0) {\n\t\t\tthis.arrowCounter = this.arrowCounter - 1\n\t\t\tthis.moveToView().finally()\n\t\t}\n\t}\n\n\tprivate onArrowDown() {\n\t\tif (this.arrowCounter < this.list.length - 1) {\n\t\t\tthis.arrowCounter = this.arrowCounter + 1\n\t\t\tthis.moveToView().finally()\n\t\t}\n\t}\n\n\tprivate async moveToView() {\n\t\tawait delay(200)\n\t\tconst heightOfList = this.listRef.offsetHeight\n\t\tconst selected = this.listRef.querySelector('li[aria-selected=\"true\"]') as HTMLUListElement\n\t\tif (selected && heightOfList) {\n\t\t\tconst offsetTop = selected.offsetTop\n\t\t\tthis.listRef.scrollTo({top: offsetTop, behavior: 'smooth'})\n\t\t}\n\t}\n\n\tprivate doSearch() {\n\t\tif (this.searchCallback) {\n\t\t\tif (Number.isInteger(this.minlength) && this.isValueAccepted === false && this.minlength) {\n\t\t\t\tthis.list = []\n\t\t\t\tthis.arrowCounter = -1\n\t\t\t\tthis.processing = false\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.processing = true\n\t\t\tthis.searchCallback(this.value)\n\t\t\t\t.then(response => (this.list = response))\n\t\t\t\t.catch(() => (this.list = []))\n\t\t\t\t.finally(() => {\n\t\t\t\t\tthis.arrowCounter = -1\n\t\t\t\t\tthis.processing = false\n\t\t\t\t})\n\t\t\treturn\n\t\t}\n\t\tthis.list = filterAutocompleteOptions(this.fullOptions, this.value, this.nameKey, this.maxOptions)\n\t\tthis.arrowCounter = -1\n\t}\n\n\tprivate clearList() {\n\t\tif (this.fullOptions.length === 0) {\n\t\t\tthis.list = []\n\t\t}\n\t}\n\n\tget isValueAccepted() {\n\t\tif (typeof this.value === 'string') {\n\t\t\treturn this.value.length >= this.minlength\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tcomponentDidLoad() {\n\t\tthis.attributeObserver = new AttributeObserver(this.host, (attributeName, newValue) => {\n\t\t\tthis.onAriaAttributeChange(attributeName, newValue);\n\t\t});\n\n\t\tthis.attributeObserver.startObserving(ariaAttributes);\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.validateSize(this.size)\n\t\tthis.inheritedAttributes = inheritAriaAttributes(this.host);\n\t\tthis.debouncedSearch = throttle(this.emitAndSearch, this.throttleTime)\n\t\tthis.fullOptions = propsValueToArray<GovFormAutocompleteItem[]>(this.options)\n\t\tif (!this.searchCallback) {\n\t\t\tthis.list = filterAutocompleteOptions(this.fullOptions, this.value, this.nameKey, this.maxOptions)\n\t\t}\n\t}\n\n\t@Watch('throttleTime')\n\twatchThrottleTime() {\n\t\tthis.debouncedSearch = throttle(this.emitAndSearch, this.throttleTime)\n\t}\n\n\tprivate emitAndSearch = (e: CustomEvent<FormInputEvent>) => {\n\t\tthis.govInput.emit({\n\t\t\toriginalEvent: e,\n\t\t\tcomponent: FormAutocompleteClass.root,\n\t\t\tvalue: this.value,\n\t\t\tselected: null,\n\t\t})\n\t\tthis.doSearch()\n\t}\n\n\tdisconnectedCallback() {\n\t\tthis.attributeObserver?.stopObserving();\n\t}\n\n\tonAriaAttributeChange(attributeName: string, newValue: string) {\n\t\tthis.host.removeAttribute(attributeName)\n\t\tthis.inheritedAttributes = {...this.inheritedAttributes, [attributeName]: newValue};\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={FormAutocompleteClass.root} size={this.size}>\n\t\t\t\t<gov-form-input\n\t\t\t\t\tplaceholder={this.placeholder}\n\t\t\t\t\tname={this.name}\n\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\treadonly={this.readonly}\n\t\t\t\t\tautocomplete={false}\n\t\t\t\t\tsize={this.size}\n\t\t\t\t\trequired={this.required}\n\t\t\t\t\tinvalid={this.invalid}\n\t\t\t\t\tsuccess={this.success}\n\t\t\t\t\trole={'searchbox'}\n\t\t\t\t\tvalue={this.value}\n\t\t\t\t\tminlength={this.minlength}\n\t\t\t\t\tmaxlength={this.maxlength}\n\t\t\t\t\ton-gov-input={this.onInputHandler}\n\t\t\t\t\ton-gov-keyup={this.onKeyUpHandler.bind(this)}\n\t\t\t\t\ton-gov-keydown={this.onKeyDownHandler.bind(this)}\n\t\t\t\t\ton-gov-focus={this.onFocusHandler.bind(this)}\n\t\t\t\t\ton-gov-blur={this.onBlurHandler.bind(this)}\n\t\t\t\t\t{...this.inheritedAttributes}\n\t\t\t\t\taria-autocomplete={'list'}\n\t\t\t\t\taria-owns={[this.listBoxId, this.inheritedAttributes['aria-owns']].join(' ')}\n\t\t\t\t\taria-expanded={booleanString(this.list.length && this.focused ? true : false)}\n\t\t\t\t\tref={el => (this.inputRef = el as HTMLGovFormInputElement)}\n\t\t\t\t>\n\t\t\t\t\t<slot name=\"validation-icon\" />\n\t\t\t\t\t<slot name=\"icon-end\" />\n\t\t\t\t</gov-form-input>\n\t\t\t\t<ul class={FormAutocompleteClass.list}\n\t\t\t\t\trole={'listbox'}\n\t\t\t\t\taria-hidden={toBoolAttr(!this.focused)}\n\t\t\t\t\thidden={!this.focused}\n\t\t\t\t\tid={this.listBoxId}\n\t\t\t\t\tref={el => (this.listRef = el as HTMLUListElement)}>\n\t\t\t\t\t{this.focused && this.list.length === 0 && this.processing === false && (this.isValueAccepted || (!this.searchCallback && this.fullOptions.length > 0)) && this.messageEmpty ? (\n\t\t\t\t\t\t<li class={FormAutocompleteClass.empty}>{this.messageEmpty}</li>\n\t\t\t\t\t) : null}\n\t\t\t\t\t{this.focused && this.processing === true && this.isValueAccepted ? (\n\t\t\t\t\t\t<li class={FormAutocompleteClass.loading}>\n\t\t\t\t\t\t\t<gov-skeleton size=\"m\"></gov-skeleton>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t) : null}\n\t\t\t\t\t{this.focused ? this.list.map((item, index) => {\n\t\t\t\t\t\tconst isSelected = this.arrowCounter === index\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\tclass={FormAutocompleteClass.item}\n\t\t\t\t\t\t\t\tinnerHTML={this.templateResolver(item, isSelected)}\n\t\t\t\t\t\t\t\trole={'option'}\n\t\t\t\t\t\t\t\taria-posinset={index}\n\t\t\t\t\t\t\t\ttabindex={isSelected ? 0 : -1}\n\t\t\t\t\t\t\t\taria-setsize={this.list.length}\n\t\t\t\t\t\t\t\tonTouchStart={(e: TouchEvent) => this.onSelectHandler(e, index)}\n\t\t\t\t\t\t\t\tonMouseDown={(e: PointerEvent) => this.onSelectHandler(e, index)}\n\t\t\t\t\t\t\t\taria-selected={toBoolAttr(isSelected)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<slot name=\"list-item-left\"/>\n\t\t\t\t\t\t\t\t<slot name=\"list-item-right\"/>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t)\n\t\t\t\t\t}) : null}\n\t\t\t\t</ul>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onFocusHandler(e: FocusEvent) {\n\t\tthis.focused = true\n\t\tthis.arrowCounter = -1\n\t\tif (this.searchCallback) {\n\t\t\tif (this.isValueAccepted) {\n\t\t\t\tthis.doSearch()\n\t\t\t}\n\t\t} else {\n\t\t\tthis.doSearch()\n\t\t}\n\t\te.stopPropagation()\n\t\tthis.govFocus.emit({\n\t\t\toriginalEvent: e,\n\t\t\tcomponent: FormAutocompleteClass.root,\n\t\t\tvalue: this.value,\n\t\t\tselected: null,\n\t\t})\n\t}\n\n\tprivate onBlurHandler(e: FocusEvent) {\n\t\tthis.focused = false\n\t\tthis.clearList();\n\t\tthis.arrowCounter = -1\n\t\te.stopPropagation()\n\t\tthis.govBlur.emit({\n\t\t\toriginalEvent: e,\n\t\t\tcomponent: FormAutocompleteClass.root,\n\t\t\tvalue: this.value,\n\t\t\tselected: null,\n\t\t})\n\t}\n\n\tprivate onInputHandler = (e: CustomEvent<FormInputEvent>) => {\n\t\te.stopPropagation()\n\t\tthis.value = e.detail.value\n\t\tthis.debouncedSearch(e)\n\t}\n\n\tprivate onSelectHandler(e: PointerEvent | CustomEvent | TouchEvent, index = -1) {\n\t\tlet selected: Nullable<GovFormAutocompleteItem> = null\n\t\tif (index > -1) {\n\t\t\tselected = this.list[index]\n\t\t} else if (has(this.arrowCounter, this.list)) {\n\t\t\tselected = this.list[this.arrowCounter]\n\t\t}\n\t\tif (selected) {\n\t\t\tthis.govSelect.emit({\n\t\t\t\tcomponent: FormAutocompleteClass.root,\n\t\t\t\tvalue: this.value,\n\t\t\t\tselected: selected,\n\t\t\t\toriginalEvent: e,\n\t\t\t})\n\t\t\tthis.clearList();\n\t\t\tif (has(this.nameKey, selected) && typeof selected[this.nameKey] === 'string') {\n\t\t\t\tthis.value = selected[this.nameKey]\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate onKeyUpHandler(e: CustomEvent) {\n\t\tconst event = (e.detail as FormInputEvent).originalEvent as KeyboardEvent\n\t\te.stopPropagation()\n\t\tevent.stopPropagation()\n\t\tif (event.keyCode === 38) this.onArrowUp()\n\t\telse if (event.keyCode === 40) this.onArrowDown()\n\t\telse if (event.keyCode === 13) {\n\t\t\te.preventDefault()\n\t\t\tevent.preventDefault()\n\t\t\tthis.onSelectHandler(e)\n\t\t}\n\t}\n\n\tprivate onKeyDownHandler(e: CustomEvent) {\n\t\tconst event = (e.detail as FormInputEvent).originalEvent as KeyboardEvent\n\t\te.stopPropagation()\n\t\tevent.stopPropagation()\n\t\tif (event.keyCode === 13) {\n\t\t\te.preventDefault()\n\t\t\tevent.preventDefault()\n\t\t}\n\t}\n\n\t/**\n\t * Focus main input element\n\t */\n\t@Method()\n\tasync setFocus(options?: FocusOptions): Promise<void> {\n\t\treturn this.inputRef.focus(options)\n\t}\n\n\t/**\n\t * Blur main input element\n\t */\n\t@Method()\n\tasync setBlur(): Promise<void> {\n\t\treturn this.inputRef.blur()\n\t}\n\n\t/**\n\t * Set options for list\n\t */\n\t@Method()\n\tasync setOptions(options: GovFormAutocompleteItem[]): Promise<void> {\n\t\tthis.list = Array.isArray(options) ? options : []\n\t\tthis.arrowCounter = -1\n\t}\n\n\t/**\n\t * Clears whisperer value\n\t */\n\t@Method()\n\tasync clearValue(): Promise<void> {\n\t\tthis.value = ''\n\t\tthis.inputRef.value = ''\n\n\t\tawait this.inputRef.clearValue()\n\t}\n\n\t/**\n\t * Clears whisperer value\n\t */\n\t@Method()\n\tasync setProcessing(status: boolean): Promise<void> {\n\t\tthis.processing = status\n\t}\n\n\t/**\n\t * Set a custom asynchronous function for the whisperer\n\t */\n\t@Method()\n\tasync setSearchCallback(callback: (value: string) => Promise<any>) {\n\t\tthis.searchCallback = callback\n\t}\n\n\t/**\n\t * Setting a custom whisper result template\n\t * @param callback\n\t */\n\t@Method()\n\tasync setTemplateResolver(callback: (item: GovFormAutocompleteItem) => string) {\n\t\tthis.templateResolver = callback\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as t,c as i,h as s,H as e,g as o}from"./p-
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as t,c as i,h as s,H as e,g as o}from"./p-B8TR1oqt.js";import{g as a,c as n,d as h}from"./p-B6CqPcY_.js";import{g as r,a as l,t as c}from"./p-CoD1xawt.js";import{v as d}from"./p-NOJjz9dT.js";import{c as u,r as v}from"./p-vN03FcXN.js";import{p as f}from"./p-Ccwpa1ck.js";import{t as p}from"./p-Cjg0wpDG.js";import{A as m,a as g}from"./p-Bz_RzYFb.js";import"./p-BcQO4NH2.js";import"./p-CQvUntGY.js";import"./p-EeKNA85D.js";import"./p-U40vKHrs.js";import"./p-DYcNEwSZ.js";import"./p-DBXGhafv.js";import"./p-CgDnDrq5.js";import"./p-DNztiAH0.js";const b=class{constructor(s){t(this,s);this.govFocus=i(this,"gov-focus");this.govBlur=i(this,"gov-blur");this.govChange=i(this,"gov-change");this.govSelect=i(this,"gov-select");this.govRemove=i(this,"gov-remove");this.size="m";this.hideSelectedList=false;this.required=false;this.disabled=false;this.messageEmpty="Nebyly nalezeny žádné výsledky";this.messageLoading="Načítám...";this.selectedOptionsState=[];this.optionsState=[];this.inheritedAttributes={};this.selectId=u("GovSelect");this.listId=u("GovMultiList");this.h=r(this.host);this.f=a(this.h)}validateSize(t){d(h,t,n.root)}watchOptions(t){this.optionsState=f(t)}watchValue(t){this.selectedOptionsState=f(t)}componentDidLoad(){this.attributeObserver=new m(this.host,((t,i)=>{this.onAriaAttributeChange(t,i)}));this.attributeObserver.startObserving(g);this.initAutocomplete()}componentWillLoad(){this.validateSize(this.size);this.optionsState=f(this.options);this.selectedOptionsState=f(this.value)}disconnectedCallback(){var t;(t=this.attributeObserver)===null||t===void 0?void 0:t.stopObserving()}onAriaAttributeChange(t,i){this.host.removeAttribute(t);this.inheritedAttributes=Object.assign(Object.assign({},this.inheritedAttributes),{[t]:i})}getAvailableOptions(t=false){if(Array.isArray(this.optionsState)&&this.optionsState.length){if(t){return this.optionsState}return this.optionsState.filter((t=>{const i=this.selectedValueIndex(t.value);return i!==-1||(t===null||t===void 0?void 0:t.disabled)?false:true})).map((t=>{var i;return{name:(i=t.label)!==null&&i!==void 0?i:t.value,value:t.value}}))}return Array.from(this.selectRef.querySelectorAll("option")).filter((i=>{if(t){return true}const s=this.selectedValueIndex(i.value);return!(i.disabled||i.selected||s>-1)})).map((t=>({name:t.textContent,value:t.value})))}initAutocomplete(){var t,i,s,e,o;(t=this.autocompleteRef)===null||t===void 0?void 0:t.addEventListener("gov-select",this.onSelectHandler.bind(this));(i=this.autocompleteRef)===null||i===void 0?void 0:i.addEventListener("gov-input",this.onInputHandler.bind(this));(s=this.autocompleteRef)===null||s===void 0?void 0:s.addEventListener("gov-focus",this.onFocusHandler.bind(this));(e=this.autocompleteRef)===null||e===void 0?void 0:e.addEventListener("gov-blur",this.onBlurHandler.bind(this));(o=this.autocompleteRef)===null||o===void 0?void 0:o.setSearchCallback((t=>new Promise((i=>{const s=this.getAvailableOptions();if(String(t).length===0){return i(s)}i(s.filter((({label:i,value:s})=>{if(!i)i=s;return v(i).toLowerCase().indexOf(v(t).toLowerCase())>-1})))})))).finally()}selectedValueIndex(t){return this.selectedOptionsState.findIndex((i=>i===t))}getOptionElement(t){return this.selectRef.querySelector('option[value="'+t+'"]')}getOption(t){var i;return(i=this.getAvailableOptions(true).find((i=>i.value===t)))!==null&&i!==void 0?i:null}selectOption(t,i=true){const s=this.selectedValueIndex(t);if(s===-1){this.selectedOptionsState=[...this.selectedOptionsState,t];this.value=this.selectedOptionsState;if(i){this.govChange.emit({component:n.root,value:this.selectedOptionsState});this.govSelect.emit({component:n.root,value:this.selectedOptionsState})}const s=this.getOptionElement(t);if(s){s.selected=true}}}removeOption(t,i=true){const s=this.selectedValueIndex(t);if(s!==-1){this.selectedOptionsState.splice(s,1);this.selectedOptionsState=[...this.selectedOptionsState];this.value=this.selectedOptionsState;if(i){this.govChange.emit({component:n.root,value:this.selectedOptionsState});this.govRemove.emit({component:n.root,value:this.selectedOptionsState})}const e=this.getOptionElement(t);if(e){e.selected=false}}}async componentDidRender(){this.f.passAttrToLabel("required",String(this.required));p((()=>{this.selectRef.querySelectorAll("option").forEach((t=>{if(t.selected){this.selectOption(t.value,false)}}))}))}render(){return s(e,{key:"00de4cfbb82c004cae37353e271f8535fe46775e",class:n.root,size:this.size},s("div",{key:"7e35ab7e890edf08ae084fc65812755645e32771",class:n.wrap},this.h.hasSlot("prefix")&&s("slot",{key:"9b95a1b803f3eba9470b0dffd2cacd16462b1dfe",name:"prefix"}),s("gov-form-autocomplete",{key:"a5e6f7740ff1ea946e2efcbb122ee3c350f3d79c",value:this.valueState,disabled:this.disabled,identifier:this.identifier||this.selectId,required:false,invalid:this.invalid,success:this.success,size:this.size,placeholder:this.placeholder,"message-empty":this.messageEmpty,"message-loading":this.messageLoading,ref:t=>this.autocompleteRef=t,minlength:0,"aria-owns":this.listId},this.success&&s("gov-icon",{key:"56520f21509ed79d828848f713af383fafe8e47a",slot:"validation-icon",class:"validation-icon",name:"check-lg",type:"components"}),this.invalid&&s("gov-icon",{key:"1f8f2e059a5c8c30ae0644435f591f7cb70e0930",slot:"validation-icon",class:"validation-icon",name:"exclamation-lg",type:"components"}),s("gov-icon",{key:"e6996c534d4c8bda09f365336160dfe552f8a4a0",slot:"icon-end",class:"arrow-icon",name:"chevron-down",type:"components"})),s("select",Object.assign({key:"69a0ec03bc00ee1b7e85f1655a7033f587ea553f",hidden:true,class:"hidden-select-list","aria-hidden":l(true),multiple:true,required:this.required,name:this.name,disabled:this.disabled,ref:t=>this.selectRef=t},this.inheritedAttributes,{"aria-disabled":c(this.disabled),"aria-required":c(this.required),"aria-invalid":c(this.invalid)}),s("slot",{key:"95ccf066ef3585b5c3dc58441e74d70152c0fffb"}),Array.isArray(this.optionsState)&&this.optionsState.map((t=>{var i;const e=this.selectedValueIndex(t.value);return s("option",{value:t.value,selected:e>-1,disabled:t===null||t===void 0?void 0:t.disabled},(i=t.label)!==null&&i!==void 0?i:t.value)}))),this.h.hasSlot("sufix")&&s("slot",{key:"e07e4cd61da18737a4373fd4badc72c9ae3dab30",name:"sufix"})),this.hideSelectedList===false?s("ul",{role:"listbox",id:this.listId,class:n.list},Array.isArray(this.selectedOptionsState)&&this.selectedOptionsState.map((t=>{var i;const e=this.getOption(t);if(!e)return null;return s("li",{class:n.item,role:"option"},(i=e.label)!==null&&i!==void 0?i:e.value,s("gov-button",{"aria-label":`Odebrat vybranou položku ${e.label}`,color:"primary",type:"base",size:this.size,"on-gov-click":()=>this.onTagRemove(t)},s("gov-icon",{name:"x-lg",type:"components"})))}))):null)}onFocusHandler(t){t.stopPropagation();this.focused=true;this.govFocus.emit({component:n.root,originalEvent:t,value:this.selectedOptionsState})}onBlurHandler(t){t.stopPropagation();t.stopPropagation();this.focused=false;this.govBlur.emit({component:n.root,originalEvent:t,value:this.selectedOptionsState})}onInputHandler(t){this.valueState=t.detail.value;t.stopPropagation()}onSelectHandler(t){t.stopPropagation();const i=t.detail.selected;this.selectOption(i.value);this.valueState="";this.autocompleteRef.clearValue().finally();this.autocompleteRef.focus()}onTagRemove(t){this.removeOption(t)}async setFocus(t){return this.selectRef.focus(t)}async setValue(t){this.valueState=t}async getRef(){return this.selectRef}get host(){return o(this)}static get watchers(){return{size:[{validateSize:0}],options:[{watchOptions:0}],value:[{watchValue:0}]}}};export{b as gov_form_multi_select};
|
|
2
|
+
//# sourceMappingURL=p-6b0625ee.entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["GovFormMultiSelect","constructor","hostRef","this","size","hideSelectedList","required","disabled","messageEmpty","messageLoading","selectedOptionsState","optionsState","inheritedAttributes","selectId","createID","listId","h","govHost","host","f","govForm","validateSize","newValue","validateProp","FormMultiselectSizes","FormMultiSelectClass","root","watchOptions","propsValueToArray","watchValue","componentDidLoad","attributeObserver","AttributeObserver","attributeName","onAriaAttributeChange","startObserving","ariaAttributes","initAutocomplete","componentWillLoad","options","value","disconnectedCallback","_a","stopObserving","removeAttribute","Object","assign","getAvailableOptions","ignoreFilter","Array","isArray","length","filter","option","selectedIndex","selectedValueIndex","map","name","label","from","selectRef","querySelectorAll","selected","textContent","autocompleteRef","addEventListener","onSelectHandler","bind","_b","onInputHandler","_c","onFocusHandler","_d","onBlurHandler","_e","setSearchCallback","searchString","Promise","resolve","data","String","removeDiacritics","toLowerCase","indexOf","finally","findIndex","getOptionElement","querySelector","getOption","find","selectOption","newOption","notify","index","govChange","emit","component","govSelect","removeOption","splice","govRemove","componentDidRender","passAttrToLabel","tick","forEach","render","Host","key","class","wrap","hasSlot","valueState","identifier","invalid","success","placeholder","ref","el","minlength","slot","type","hidden","toBoolAttr","multiple","toBoolAttrIfDefined","selectedOption","role","id","list","item","color","onTagRemove","e","stopPropagation","focused","govFocus","originalEvent","govBlur","detail","clearValue","focus","setFocus","setValue","getRef"],"sources":["../../../packages/core/src/components/gov-form/multiselect/gov-form-multi-select.tsx"],"sourcesContent":["import {Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch} from '@stencil/core'\nimport {govForm} from '../../../helpers/Dom/form'\nimport {GovForm} from '../../../helpers/Dom/form.types'\nimport {govHost, toBoolAttr, toBoolAttrIfDefined} from '../../../helpers/Dom/template'\nimport {GovHost} from '../../../helpers/Dom/template.types'\nimport {validateProp} from '../../../helpers/Validate/props'\nimport {Nullable} from '../../../types/interfaces'\nimport {createID, removeDiacritics} from '../../../utils/string.utils'\nimport {FormAutocompleteEvent} from '../autocomplete/gov-form-autocomplete.types'\nimport {FormMultiSelectClass, FormMultiselectSizes, FormMultiselectSizesType} from './constants'\nimport {\n\tFormMultiselectEvent,\n\tGovFormMultiSelectItem,\n\tGovFormMultiSelectSelectedItem\n} from './gov-form-multi-select.types'\nimport {propsValueToArray} from \"../../../utils/array.utils\";\nimport {tick} from \"../../../utils/stencil.utils\";\nimport {AttributeObserver, Attributes} from \"../../../helpers/Dom/attribute\";\nimport {ariaAttributes} from \"../../../helpers/Accessibility/attributes\";\n\n@Component({\n\ttag: 'gov-form-multi-select',\n})\nexport class GovFormMultiSelect {\n\tprivate f: GovForm\n\tprivate readonly h: GovHost\n\n\tprivate selectRef?: HTMLSelectElement\n\tprivate autocompleteRef?: HTMLGovFormAutocompleteElement\n\tprivate attributeObserver: AttributeObserver\n\n\tprivate readonly selectId: string\n\tprivate readonly listId: string\n\n\tconstructor() {\n\t\tthis.selectId = createID('GovSelect')\n\t\tthis.listId = createID('GovMultiList')\n\n\t\tthis.h = govHost(this.host)\n\t\tthis.f = govForm(this.h)\n\t}\n\n\t@Element() host: HTMLGovFormSelectElement\n\t/**\n\t * Value of multi-select\n\t */\n\t@Prop({reflect: true, mutable: true}) value: string | GovFormMultiSelectSelectedItem[]\n\t/**\n\t * Options of multi-select\n\t */\n\t@Prop({reflect: true, mutable: true}) options?: string | GovFormMultiSelectItem[]\n\t/**\n\t * Custom select identifier.\n\t */\n\t@Prop({attribute: 'identifier'}) readonly identifier: string\n\t/**\n\t * Custom select placeholder.\n\t */\n\t@Prop({attribute: 'placeholder'}) readonly placeholder: string\n\t/**\n\t * Select’s size.\n\t */\n\t@Prop() readonly size?: FormMultiselectSizesType = 'm'\n\t/**\n\t * Name of the select.\n\t */\n\t@Prop() readonly name: string\n\t/**\n\t * Option to hide the list of selected items\n\t */\n\t@Prop({attribute: 'hide-selected-list'}) readonly hideSelectedList: boolean = false\n\t/**\n\t * Set whether the input is required or not. Please note that this is necessary for accessible inputs when the user is required to fill them.\n\t * When using this property you need to also set “novalidate” attribute to your form element to prevent browser from displaying its own validation errors.\n\t */\n\t@Prop() readonly required: boolean = false\n\t/**\n\t * Makes the select component disabled.\n\t * This prevents users from being able to interact with the select, and conveys its inactive state to assistive technologies.\n\t */\n\t@Prop({reflect: true}) readonly disabled: boolean = false\n\t/**\n\t * Indicates the entered value does not conform to the format expected by the application.\n\t */\n\t@Prop({reflect:true}) readonly invalid: boolean\n\t/**\n\t * Indicates the entered value of child form element does conform to the format expected by the application.\n\t */\n\t@Prop() readonly success: boolean\n\t/**\n\t * Custom message for when there is a blank sheet\n\t */\n\t@Prop({attribute: 'message-empty'}) readonly messageEmpty: string = 'Nebyly nalezeny žádné výsledky'\n\t/**\n\t * Custom message for when data is loaded\n\t */\n\t@Prop({attribute: 'message-loading'}) readonly messageLoading: string = 'Načítám...'\n\t/**\n\t * Emitted when the select has focus.\n\t */\n\t@Event({eventName: 'gov-focus'}) govFocus: EventEmitter<FormMultiselectEvent>\n\t/**\n\t * Emitted when the select loses focus.\n\t */\n\t@Event({eventName: 'gov-blur'}) govBlur: EventEmitter<FormMultiselectEvent>\n\t/**\n\t * Emitted when the select change value.\n\t */\n\t@Event({eventName: 'gov-change'}) govChange: EventEmitter<FormMultiselectEvent>\n\t/**\n\t * Emitted when an item is selected\n\t */\n\t@Event({eventName: 'gov-select'}) govSelect: EventEmitter<FormMultiselectEvent>\n\t/**\n\t * Emitted when an item is removed\n\t */\n\t@Event({eventName: 'gov-remove'}) govRemove: EventEmitter<FormMultiselectEvent>\n\n\t@State() focused: boolean\n\t@State() valueState: string\n\t@State() selectedOptionsState: GovFormMultiSelectSelectedItem[] = []\n\t@State() optionsState: GovFormMultiSelectItem[] = []\n\n\t@Watch('size')\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(FormMultiselectSizes, newValue, FormMultiSelectClass.root)\n\t}\n\n\t@Watch('options')\n\twatchOptions(newValue: string | GovFormMultiSelectItem[]): void {\n\t\tthis.optionsState = propsValueToArray(newValue)\n\t}\n\n\t@Watch('value')\n\twatchValue(newValue: string | GovFormMultiSelectItem[]): void {\n\t\tthis.selectedOptionsState = propsValueToArray(newValue)\n\t}\n\n\t@State() inheritedAttributes: Attributes = {}\n\n\tcomponentDidLoad() {\n\t\tthis.attributeObserver = new AttributeObserver(this.host, (attributeName, newValue) => {\n\t\t\tthis.onAriaAttributeChange(attributeName, newValue);\n\t\t});\n\n\t\tthis.attributeObserver.startObserving(ariaAttributes);\n\t\tthis.initAutocomplete()\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.validateSize(this.size)\n\t\tthis.optionsState = propsValueToArray(this.options)\n\t\tthis.selectedOptionsState = propsValueToArray(this.value)\n\t}\n\n\tdisconnectedCallback() {\n\t\tthis.attributeObserver?.stopObserving();\n\t}\n\n\tonAriaAttributeChange(attributeName: string, newValue: string) {\n\t\tthis.host.removeAttribute(attributeName)\n\t\tthis.inheritedAttributes = {...this.inheritedAttributes, [attributeName]: newValue};\n\t}\n\n\tprivate getAvailableOptions(ignoreFilter = false): GovFormMultiSelectItem[] {\n\t\tif (Array.isArray(this.optionsState) && this.optionsState.length) {\n\t\t\tif (ignoreFilter) {\n\t\t\t\treturn this.optionsState;\n\t\t\t}\n\t\t\treturn this.optionsState.filter((option) => {\n\t\t\t\tconst selectedIndex = this.selectedValueIndex(option.value)\n\t\t\t\treturn (selectedIndex !== -1 || option?.disabled) ? false : true\n\t\t\t}).map((option) => ({name: option.label ?? option.value, value: option.value}))\n\t\t}\n\t\treturn Array.from(this.selectRef.querySelectorAll('option'))\n\t\t\t.filter((option: HTMLOptionElement) => {\n\t\t\t\tif (ignoreFilter) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\tconst selectedIndex = this.selectedValueIndex(option.value)\n\t\t\t\treturn !(option.disabled || option.selected || selectedIndex > -1)\n\t\t\t})\n\t\t\t.map((option: HTMLOptionElement) => ({name: option.textContent, value: option.value}))\n\t}\n\n\tprivate initAutocomplete() {\n\t\tthis.autocompleteRef?.addEventListener('gov-select', this.onSelectHandler.bind(this))\n\t\tthis.autocompleteRef?.addEventListener('gov-input', this.onInputHandler.bind(this))\n\t\tthis.autocompleteRef?.addEventListener('gov-focus', this.onFocusHandler.bind(this))\n\t\tthis.autocompleteRef?.addEventListener('gov-blur', this.onBlurHandler.bind(this))\n\t\tthis.autocompleteRef\n\t\t\t?.setSearchCallback(searchString => {\n\t\t\t\treturn new Promise(resolve => {\n\t\t\t\t\tconst data = this.getAvailableOptions()\n\t\t\t\t\tif (String(searchString).length === 0) {\n\t\t\t\t\t\treturn resolve(data)\n\t\t\t\t\t}\n\t\t\t\t\tresolve(\n\t\t\t\t\t\tdata.filter(({label, value}) => {\n\t\t\t\t\t\t\tif (!label) label = value;\n\t\t\t\t\t\t\treturn removeDiacritics(label).toLowerCase().indexOf(removeDiacritics(searchString).toLowerCase()) > -1\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t})\n\t\t\t})\n\t\t\t.finally()\n\t}\n\n\tprivate selectedValueIndex(value: GovFormMultiSelectSelectedItem) {\n\t\treturn this.selectedOptionsState.findIndex((selected) => selected === value)\n\t}\n\n\tprivate getOptionElement(value: GovFormMultiSelectSelectedItem): Nullable<HTMLOptionElement> {\n\t\treturn this.selectRef.querySelector('option[value=\"' + value + '\"]') as HTMLOptionElement\n\t}\n\n\tprivate getOption(value: GovFormMultiSelectSelectedItem): GovFormMultiSelectItem | null {\n\t\treturn this.getAvailableOptions(true).find((option) => option.value === value) ?? null;\n\t}\n\n\tprivate selectOption(newOption: GovFormMultiSelectSelectedItem, notify = true) {\n\t\tconst index = this.selectedValueIndex(newOption)\n\t\tif (index === -1) {\n\t\t\tthis.selectedOptionsState = [...this.selectedOptionsState, newOption]\n\t\t\tthis.value = this.selectedOptionsState;\n\t\t\tif (notify) {\n\t\t\t\tthis.govChange.emit({\n\t\t\t\t\tcomponent: FormMultiSelectClass.root,\n\t\t\t\t\tvalue: this.selectedOptionsState,\n\t\t\t\t})\n\t\t\t\tthis.govSelect.emit({\n\t\t\t\t\tcomponent: FormMultiSelectClass.root,\n\t\t\t\t\tvalue: this.selectedOptionsState,\n\t\t\t\t})\n\t\t\t}\n\t\t\tconst option = this.getOptionElement(newOption)\n\t\t\tif (option) {\n\t\t\t\toption.selected = true\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate removeOption(removeOption: GovFormMultiSelectSelectedItem, notify = true) {\n\t\tconst index = this.selectedValueIndex(removeOption)\n\t\tif (index !== -1) {\n\t\t\tthis.selectedOptionsState.splice(index, 1)\n\t\t\tthis.selectedOptionsState = [...this.selectedOptionsState]\n\t\t\tthis.value = this.selectedOptionsState;\n\t\t\tif (notify) {\n\t\t\t\tthis.govChange.emit({\n\t\t\t\t\tcomponent: FormMultiSelectClass.root,\n\t\t\t\t\tvalue: this.selectedOptionsState,\n\t\t\t\t})\n\t\t\t\tthis.govRemove.emit({\n\t\t\t\t\tcomponent: FormMultiSelectClass.root,\n\t\t\t\t\tvalue: this.selectedOptionsState,\n\t\t\t\t})\n\t\t\t}\n\t\t\tconst option = this.getOptionElement(removeOption)\n\t\t\tif (option) {\n\t\t\t\toption.selected = false\n\t\t\t}\n\t\t}\n\t}\n\n\tasync componentDidRender() {\n\t\tthis.f.passAttrToLabel('required', String(this.required))\n\n\t\ttick(() => {\n\t\t\tthis.selectRef.querySelectorAll('option').forEach((option: HTMLOptionElement) => {\n\t\t\t\tif (option.selected) {\n\t\t\t\t\tthis.selectOption(option.value, false)\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={FormMultiSelectClass.root} size={this.size}>\n\t\t\t\t<div class={FormMultiSelectClass.wrap}>\n\t\t\t\t\t{this.h.hasSlot('prefix') && <slot name=\"prefix\"></slot>}\n\t\t\t\t\t<gov-form-autocomplete\n\t\t\t\t\t\tvalue={this.valueState}\n\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\tidentifier={this.identifier || this.selectId}\n\t\t\t\t\t\trequired={false}\n\t\t\t\t\t\tinvalid={this.invalid}\n\t\t\t\t\t\tsuccess={this.success}\n\t\t\t\t\t\tsize={this.size}\n\t\t\t\t\t\tplaceholder={this.placeholder}\n\t\t\t\t\t\tmessage-empty={this.messageEmpty}\n\t\t\t\t\t\tmessage-loading={this.messageLoading}\n\t\t\t\t\t\tref={el => (this.autocompleteRef = el as HTMLGovFormAutocompleteElement)}\n\t\t\t\t\t\tminlength={0}\n\t\t\t\t\t\taria-owns={this.listId}\n\t\t\t\t\t>\n\t\t\t\t\t\t{this.success && <gov-icon slot=\"validation-icon\" class=\"validation-icon\" name=\"check-lg\" type=\"components\"></gov-icon>}\n\t\t\t\t\t\t{this.invalid && <gov-icon slot=\"validation-icon\" class=\"validation-icon\" name=\"exclamation-lg\" type=\"components\"></gov-icon>}\n\t\t\t\t\t\t<gov-icon slot=\"icon-end\" class=\"arrow-icon\" name=\"chevron-down\" type=\"components\"></gov-icon>\n\t\t\t\t\t</gov-form-autocomplete>\n\t\t\t\t\t<select\n\t\t\t\t\t\thidden\n\t\t\t\t\t\tclass={'hidden-select-list'}\n\t\t\t\t\t\taria-hidden={toBoolAttr(true)}\n\t\t\t\t\t\tmultiple\n\t\t\t\t\t\trequired={this.required}\n\t\t\t\t\t\tname={this.name}\n\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\tref={el => (this.selectRef = el as HTMLSelectElement)}\n\t\t\t\t\t\t{...this.inheritedAttributes}\n\t\t\t\t\t\taria-disabled={toBoolAttrIfDefined(this.disabled)}\n\t\t\t\t\t\taria-required={toBoolAttrIfDefined(this.required)}\n\t\t\t\t\t\taria-invalid={toBoolAttrIfDefined(this.invalid)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t\t{Array.isArray(this.optionsState) && this.optionsState.map((option) => {\n\t\t\t\t\t\t\tconst selectedOption = this.selectedValueIndex(option.value);\n\t\t\t\t\t\t\treturn (<option value={option.value} selected={selectedOption > -1}\n\t\t\t\t\t\t\t\t\t\t\tdisabled={option?.disabled}>{option.label ?? option.value}</option>)\n\t\t\t\t\t\t})}\n\t\t\t\t\t</select>\n\t\t\t\t\t{this.h.hasSlot('sufix') && <slot name=\"sufix\"></slot>}\n\t\t\t\t</div>\n\t\t\t\t{this.hideSelectedList === false ? (\n\t\t\t\t\t<ul role=\"listbox\" id={this.listId} class={FormMultiSelectClass.list}>\n\t\t\t\t\t\t{Array.isArray(this.selectedOptionsState) && this.selectedOptionsState.map(selected => {\n\t\t\t\t\t\t\tconst option = this.getOption(selected);\n\t\t\t\t\t\t\tif (!option) return null\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<li class={FormMultiSelectClass.item} role=\"option\">\n\t\t\t\t\t\t\t\t\t{option.label ?? option.value}\n\t\t\t\t\t\t\t\t\t<gov-button\n\t\t\t\t\t\t\t\t\t\taria-label={`Odebrat vybranou položku ${option.label}`}\n\t\t\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\t\t\ttype=\"base\"\n\t\t\t\t\t\t\t\t\t\tsize={this.size}\n\t\t\t\t\t\t\t\t\t\ton-gov-click={() => this.onTagRemove(selected)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<gov-icon name=\"x-lg\" type=\"components\"></gov-icon>\n\t\t\t\t\t\t\t\t\t</gov-button>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t})}\n\t\t\t\t\t</ul>\n\t\t\t\t) : null}\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onFocusHandler(e: FocusEvent) {\n\t\te.stopPropagation()\n\t\tthis.focused = true\n\t\tthis.govFocus.emit({\n\t\t\tcomponent: FormMultiSelectClass.root,\n\t\t\toriginalEvent: e,\n\t\t\tvalue: this.selectedOptionsState,\n\t\t})\n\t}\n\n\tprivate onBlurHandler(e: FocusEvent) {\n\t\te.stopPropagation()\n\t\te.stopPropagation()\n\t\tthis.focused = false\n\t\tthis.govBlur.emit({\n\t\t\tcomponent: FormMultiSelectClass.root,\n\t\t\toriginalEvent: e,\n\t\t\tvalue: this.selectedOptionsState,\n\t\t})\n\t}\n\n\tprivate onInputHandler(e: CustomEvent<FormAutocompleteEvent>) {\n\t\tthis.valueState = e.detail.value\n\t\te.stopPropagation()\n\t}\n\n\tprivate onSelectHandler(e: CustomEvent<FormAutocompleteEvent>) {\n\t\te.stopPropagation()\n\t\tconst value = e.detail.selected\n\t\tthis.selectOption(value.value)\n\t\tthis.valueState = ''\n\t\tthis.autocompleteRef.clearValue().finally()\n\t\tthis.autocompleteRef.focus()\n\t}\n\n\tprivate onTagRemove(removeOption: GovFormMultiSelectSelectedItem) {\n\t\tthis.removeOption(removeOption)\n\t}\n\n\t/**\n\t * Returns the current state of the component\n\t */\n\t@Method()\n\tasync setFocus(options?: FocusOptions): Promise<void> {\n\t\treturn this.selectRef.focus(options)\n\t}\n\n\t/**\n\t * Sets the ordered value of the element\n\t */\n\t@Method()\n\tasync setValue(value: string): Promise<void> {\n\t\tthis.valueState = value\n\t}\n\n\t/**\n\t * Returns an instance of the native html select element\n\t */\n\t@Method()\n\tasync getRef(): Promise<HTMLSelectElement> {\n\t\treturn this.selectRef\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["GovFormMultiSelect","constructor","hostRef","this","size","hideSelectedList","required","disabled","messageEmpty","messageLoading","selectedOptionsState","optionsState","inheritedAttributes","selectId","createID","listId","h","govHost","host","f","govForm","validateSize","newValue","validateProp","FormMultiselectSizes","FormMultiSelectClass","root","watchOptions","propsValueToArray","watchValue","componentDidLoad","attributeObserver","AttributeObserver","attributeName","onAriaAttributeChange","startObserving","ariaAttributes","initAutocomplete","componentWillLoad","options","value","disconnectedCallback","_a","stopObserving","removeAttribute","Object","assign","getAvailableOptions","ignoreFilter","Array","isArray","length","filter","option","selectedIndex","selectedValueIndex","map","name","label","from","selectRef","querySelectorAll","selected","textContent","autocompleteRef","addEventListener","onSelectHandler","bind","_b","onInputHandler","_c","onFocusHandler","_d","onBlurHandler","_e","setSearchCallback","searchString","Promise","resolve","data","String","removeDiacritics","toLowerCase","indexOf","finally","findIndex","getOptionElement","querySelector","getOption","find","selectOption","newOption","notify","index","govChange","emit","component","govSelect","removeOption","splice","govRemove","componentDidRender","passAttrToLabel","tick","forEach","render","Host","key","class","wrap","hasSlot","valueState","identifier","invalid","success","placeholder","ref","el","minlength","slot","type","hidden","toBoolAttr","multiple","toBoolAttrIfDefined","selectedOption","role","id","list","item","color","onTagRemove","e","stopPropagation","focused","govFocus","originalEvent","govBlur","detail","clearValue","focus","setFocus","setValue","getRef"],"sources":["../../../packages/core/src/components/gov-form/multiselect/gov-form-multi-select.tsx"],"sourcesContent":["import {Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch} from '@stencil/core'\nimport {govForm} from '../../../helpers/Dom/form'\nimport {GovForm} from '../../../helpers/Dom/form.types'\nimport {govHost, toBoolAttr, toBoolAttrIfDefined} from '../../../helpers/Dom/template'\nimport {GovHost} from '../../../helpers/Dom/template.types'\nimport {validateProp} from '../../../helpers/Validate/props'\nimport {Nullable} from '../../../types/interfaces'\nimport {createID, removeDiacritics} from '../../../utils/string.utils'\nimport {FormAutocompleteEvent} from '../autocomplete/gov-form-autocomplete.types'\nimport {FormMultiSelectClass, FormMultiselectSizes, FormMultiselectSizesType} from './constants'\nimport {\n\tFormMultiselectEvent,\n\tGovFormMultiSelectItem,\n\tGovFormMultiSelectSelectedItem\n} from './gov-form-multi-select.types'\nimport {propsValueToArray} from \"../../../utils/array.utils\";\nimport {tick} from \"../../../utils/stencil.utils\";\nimport {AttributeObserver, Attributes} from \"../../../helpers/Dom/attribute\";\nimport {ariaAttributes} from \"../../../helpers/Accessibility/attributes\";\n\n@Component({\n\ttag: 'gov-form-multi-select',\n})\nexport class GovFormMultiSelect {\n\tprivate f: GovForm\n\tprivate readonly h: GovHost\n\n\tprivate selectRef?: HTMLSelectElement\n\tprivate autocompleteRef?: HTMLGovFormAutocompleteElement\n\tprivate attributeObserver: AttributeObserver\n\n\tprivate readonly selectId: string\n\tprivate readonly listId: string\n\n\tconstructor() {\n\t\tthis.selectId = createID('GovSelect')\n\t\tthis.listId = createID('GovMultiList')\n\n\t\tthis.h = govHost(this.host)\n\t\tthis.f = govForm(this.h)\n\t}\n\n\t@Element() host: HTMLGovFormSelectElement\n\t/**\n\t * Value of multi-select\n\t */\n\t@Prop({reflect: true, mutable: true}) value: string | GovFormMultiSelectSelectedItem[]\n\t/**\n\t * Options of multi-select\n\t */\n\t@Prop({reflect: true, mutable: true}) options?: string | GovFormMultiSelectItem[]\n\t/**\n\t * Custom select identifier.\n\t */\n\t@Prop({attribute: 'identifier'}) readonly identifier: string\n\t/**\n\t * Custom select placeholder.\n\t */\n\t@Prop({attribute: 'placeholder'}) readonly placeholder: string\n\t/**\n\t * Select’s size.\n\t */\n\t@Prop() readonly size?: FormMultiselectSizesType = 'm'\n\t/**\n\t * Name of the select.\n\t */\n\t@Prop() readonly name: string\n\t/**\n\t * Option to hide the list of selected items\n\t */\n\t@Prop({attribute: 'hide-selected-list'}) readonly hideSelectedList: boolean = false\n\t/**\n\t * Set whether the input is required or not. Please note that this is necessary for accessible inputs when the user is required to fill them.\n\t * When using this property you need to also set “novalidate” attribute to your form element to prevent browser from displaying its own validation errors.\n\t */\n\t@Prop() readonly required: boolean = false\n\t/**\n\t * Makes the select component disabled.\n\t * This prevents users from being able to interact with the select, and conveys its inactive state to assistive technologies.\n\t */\n\t@Prop({reflect: true}) readonly disabled: boolean = false\n\t/**\n\t * Indicates the entered value does not conform to the format expected by the application.\n\t */\n\t@Prop({reflect:true}) readonly invalid: boolean\n\t/**\n\t * Indicates the entered value of child form element does conform to the format expected by the application.\n\t */\n\t@Prop() readonly success: boolean\n\t/**\n\t * Custom message for when there is a blank sheet\n\t */\n\t@Prop({attribute: 'message-empty'}) readonly messageEmpty: string = 'Nebyly nalezeny žádné výsledky'\n\t/**\n\t * Custom message for when data is loaded\n\t */\n\t@Prop({attribute: 'message-loading'}) readonly messageLoading: string = 'Načítám...'\n\t/**\n\t * Emitted when the select has focus.\n\t */\n\t@Event({eventName: 'gov-focus'}) govFocus: EventEmitter<FormMultiselectEvent>\n\t/**\n\t * Emitted when the select loses focus.\n\t */\n\t@Event({eventName: 'gov-blur'}) govBlur: EventEmitter<FormMultiselectEvent>\n\t/**\n\t * Emitted when the select change value.\n\t */\n\t@Event({eventName: 'gov-change'}) govChange: EventEmitter<FormMultiselectEvent>\n\t/**\n\t * Emitted when an item is selected\n\t */\n\t@Event({eventName: 'gov-select'}) govSelect: EventEmitter<FormMultiselectEvent>\n\t/**\n\t * Emitted when an item is removed\n\t */\n\t@Event({eventName: 'gov-remove'}) govRemove: EventEmitter<FormMultiselectEvent>\n\n\t@State() focused: boolean\n\t@State() valueState: string\n\t@State() selectedOptionsState: GovFormMultiSelectSelectedItem[] = []\n\t@State() optionsState: GovFormMultiSelectItem[] = []\n\n\t@Watch('size')\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(FormMultiselectSizes, newValue, FormMultiSelectClass.root)\n\t}\n\n\t@Watch('options')\n\twatchOptions(newValue: string | GovFormMultiSelectItem[]): void {\n\t\tthis.optionsState = propsValueToArray(newValue)\n\t}\n\n\t@Watch('value')\n\twatchValue(newValue: string | GovFormMultiSelectItem[]): void {\n\t\tthis.selectedOptionsState = propsValueToArray(newValue)\n\t}\n\n\t@State() inheritedAttributes: Attributes = {}\n\n\tcomponentDidLoad() {\n\t\tthis.attributeObserver = new AttributeObserver(this.host, (attributeName, newValue) => {\n\t\t\tthis.onAriaAttributeChange(attributeName, newValue);\n\t\t});\n\n\t\tthis.attributeObserver.startObserving(ariaAttributes);\n\t\tthis.initAutocomplete()\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.validateSize(this.size)\n\t\tthis.optionsState = propsValueToArray(this.options)\n\t\tthis.selectedOptionsState = propsValueToArray(this.value)\n\t}\n\n\tdisconnectedCallback() {\n\t\tthis.attributeObserver?.stopObserving();\n\t}\n\n\tonAriaAttributeChange(attributeName: string, newValue: string) {\n\t\tthis.host.removeAttribute(attributeName)\n\t\tthis.inheritedAttributes = {...this.inheritedAttributes, [attributeName]: newValue};\n\t}\n\n\tprivate getAvailableOptions(ignoreFilter = false): GovFormMultiSelectItem[] {\n\t\tif (Array.isArray(this.optionsState) && this.optionsState.length) {\n\t\t\tif (ignoreFilter) {\n\t\t\t\treturn this.optionsState;\n\t\t\t}\n\t\t\treturn this.optionsState.filter((option) => {\n\t\t\t\tconst selectedIndex = this.selectedValueIndex(option.value)\n\t\t\t\treturn (selectedIndex !== -1 || option?.disabled) ? false : true\n\t\t\t}).map((option) => ({name: option.label ?? option.value, value: option.value}))\n\t\t}\n\t\treturn Array.from(this.selectRef.querySelectorAll('option'))\n\t\t\t.filter((option: HTMLOptionElement) => {\n\t\t\t\tif (ignoreFilter) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\tconst selectedIndex = this.selectedValueIndex(option.value)\n\t\t\t\treturn !(option.disabled || option.selected || selectedIndex > -1)\n\t\t\t})\n\t\t\t.map((option: HTMLOptionElement) => ({name: option.textContent, value: option.value}))\n\t}\n\n\tprivate initAutocomplete() {\n\t\tthis.autocompleteRef?.addEventListener('gov-select', this.onSelectHandler.bind(this))\n\t\tthis.autocompleteRef?.addEventListener('gov-input', this.onInputHandler.bind(this))\n\t\tthis.autocompleteRef?.addEventListener('gov-focus', this.onFocusHandler.bind(this))\n\t\tthis.autocompleteRef?.addEventListener('gov-blur', this.onBlurHandler.bind(this))\n\t\tthis.autocompleteRef\n\t\t\t?.setSearchCallback(searchString => {\n\t\t\t\treturn new Promise(resolve => {\n\t\t\t\t\tconst data = this.getAvailableOptions()\n\t\t\t\t\tif (String(searchString).length === 0) {\n\t\t\t\t\t\treturn resolve(data)\n\t\t\t\t\t}\n\t\t\t\t\tresolve(\n\t\t\t\t\t\tdata.filter(({label, value}) => {\n\t\t\t\t\t\t\tif (!label) label = value;\n\t\t\t\t\t\t\treturn removeDiacritics(label).toLowerCase().indexOf(removeDiacritics(searchString).toLowerCase()) > -1\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t})\n\t\t\t})\n\t\t\t.finally()\n\t}\n\n\tprivate selectedValueIndex(value: GovFormMultiSelectSelectedItem) {\n\t\treturn this.selectedOptionsState.findIndex((selected) => selected === value)\n\t}\n\n\tprivate getOptionElement(value: GovFormMultiSelectSelectedItem): Nullable<HTMLOptionElement> {\n\t\treturn this.selectRef.querySelector('option[value=\"' + value + '\"]') as HTMLOptionElement\n\t}\n\n\tprivate getOption(value: GovFormMultiSelectSelectedItem): GovFormMultiSelectItem | null {\n\t\treturn this.getAvailableOptions(true).find((option) => option.value === value) ?? null;\n\t}\n\n\tprivate selectOption(newOption: GovFormMultiSelectSelectedItem, notify = true) {\n\t\tconst index = this.selectedValueIndex(newOption)\n\t\tif (index === -1) {\n\t\t\tthis.selectedOptionsState = [...this.selectedOptionsState, newOption]\n\t\t\tthis.value = this.selectedOptionsState;\n\t\t\tif (notify) {\n\t\t\t\tthis.govChange.emit({\n\t\t\t\t\tcomponent: FormMultiSelectClass.root,\n\t\t\t\t\tvalue: this.selectedOptionsState,\n\t\t\t\t})\n\t\t\t\tthis.govSelect.emit({\n\t\t\t\t\tcomponent: FormMultiSelectClass.root,\n\t\t\t\t\tvalue: this.selectedOptionsState,\n\t\t\t\t})\n\t\t\t}\n\t\t\tconst option = this.getOptionElement(newOption)\n\t\t\tif (option) {\n\t\t\t\toption.selected = true\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate removeOption(removeOption: GovFormMultiSelectSelectedItem, notify = true) {\n\t\tconst index = this.selectedValueIndex(removeOption)\n\t\tif (index !== -1) {\n\t\t\tthis.selectedOptionsState.splice(index, 1)\n\t\t\tthis.selectedOptionsState = [...this.selectedOptionsState]\n\t\t\tthis.value = this.selectedOptionsState;\n\t\t\tif (notify) {\n\t\t\t\tthis.govChange.emit({\n\t\t\t\t\tcomponent: FormMultiSelectClass.root,\n\t\t\t\t\tvalue: this.selectedOptionsState,\n\t\t\t\t})\n\t\t\t\tthis.govRemove.emit({\n\t\t\t\t\tcomponent: FormMultiSelectClass.root,\n\t\t\t\t\tvalue: this.selectedOptionsState,\n\t\t\t\t})\n\t\t\t}\n\t\t\tconst option = this.getOptionElement(removeOption)\n\t\t\tif (option) {\n\t\t\t\toption.selected = false\n\t\t\t}\n\t\t}\n\t}\n\n\tasync componentDidRender() {\n\t\tthis.f.passAttrToLabel('required', String(this.required))\n\n\t\ttick(() => {\n\t\t\tthis.selectRef.querySelectorAll('option').forEach((option: HTMLOptionElement) => {\n\t\t\t\tif (option.selected) {\n\t\t\t\t\tthis.selectOption(option.value, false)\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={FormMultiSelectClass.root} size={this.size}>\n\t\t\t\t<div class={FormMultiSelectClass.wrap}>\n\t\t\t\t\t{this.h.hasSlot('prefix') && <slot name=\"prefix\"></slot>}\n\t\t\t\t\t<gov-form-autocomplete\n\t\t\t\t\t\tvalue={this.valueState}\n\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\tidentifier={this.identifier || this.selectId}\n\t\t\t\t\t\trequired={false}\n\t\t\t\t\t\tinvalid={this.invalid}\n\t\t\t\t\t\tsuccess={this.success}\n\t\t\t\t\t\tsize={this.size}\n\t\t\t\t\t\tplaceholder={this.placeholder}\n\t\t\t\t\t\tmessage-empty={this.messageEmpty}\n\t\t\t\t\t\tmessage-loading={this.messageLoading}\n\t\t\t\t\t\tref={el => (this.autocompleteRef = el as HTMLGovFormAutocompleteElement)}\n\t\t\t\t\t\tminlength={0}\n\t\t\t\t\t\taria-owns={this.listId}\n\t\t\t\t\t>\n\t\t\t\t\t\t{this.success && <gov-icon slot=\"validation-icon\" class=\"validation-icon\" name=\"check-lg\" type=\"components\"></gov-icon>}\n\t\t\t\t\t\t{this.invalid && <gov-icon slot=\"validation-icon\" class=\"validation-icon\" name=\"exclamation-lg\" type=\"components\"></gov-icon>}\n\t\t\t\t\t\t<gov-icon slot=\"icon-end\" class=\"arrow-icon\" name=\"chevron-down\" type=\"components\"></gov-icon>\n\t\t\t\t\t</gov-form-autocomplete>\n\t\t\t\t\t<select\n\t\t\t\t\t\thidden\n\t\t\t\t\t\tclass={'hidden-select-list'}\n\t\t\t\t\t\taria-hidden={toBoolAttr(true)}\n\t\t\t\t\t\tmultiple\n\t\t\t\t\t\trequired={this.required}\n\t\t\t\t\t\tname={this.name}\n\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\tref={el => (this.selectRef = el as HTMLSelectElement)}\n\t\t\t\t\t\t{...this.inheritedAttributes}\n\t\t\t\t\t\taria-disabled={toBoolAttrIfDefined(this.disabled)}\n\t\t\t\t\t\taria-required={toBoolAttrIfDefined(this.required)}\n\t\t\t\t\t\taria-invalid={toBoolAttrIfDefined(this.invalid)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t\t{Array.isArray(this.optionsState) && this.optionsState.map((option) => {\n\t\t\t\t\t\t\tconst selectedOption = this.selectedValueIndex(option.value);\n\t\t\t\t\t\t\treturn (<option value={option.value} selected={selectedOption > -1}\n\t\t\t\t\t\t\t\t\t\t\tdisabled={option?.disabled}>{option.label ?? option.value}</option>)\n\t\t\t\t\t\t})}\n\t\t\t\t\t</select>\n\t\t\t\t\t{this.h.hasSlot('sufix') && <slot name=\"sufix\"></slot>}\n\t\t\t\t</div>\n\t\t\t\t{this.hideSelectedList === false ? (\n\t\t\t\t\t<ul role=\"listbox\" id={this.listId} class={FormMultiSelectClass.list}>\n\t\t\t\t\t\t{Array.isArray(this.selectedOptionsState) && this.selectedOptionsState.map(selected => {\n\t\t\t\t\t\t\tconst option = this.getOption(selected);\n\t\t\t\t\t\t\tif (!option) return null\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<li class={FormMultiSelectClass.item} role=\"option\">\n\t\t\t\t\t\t\t\t\t{option.label ?? option.value}\n\t\t\t\t\t\t\t\t\t<gov-button\n\t\t\t\t\t\t\t\t\t\taria-label={`Odebrat vybranou položku ${option.label}`}\n\t\t\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\t\t\ttype=\"base\"\n\t\t\t\t\t\t\t\t\t\tsize={this.size}\n\t\t\t\t\t\t\t\t\t\ton-gov-click={() => this.onTagRemove(selected)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<gov-icon name=\"x-lg\" type=\"components\"></gov-icon>\n\t\t\t\t\t\t\t\t\t</gov-button>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t})}\n\t\t\t\t\t</ul>\n\t\t\t\t) : null}\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onFocusHandler(e: FocusEvent) {\n\t\te.stopPropagation()\n\t\tthis.focused = true\n\t\tthis.govFocus.emit({\n\t\t\tcomponent: FormMultiSelectClass.root,\n\t\t\toriginalEvent: e,\n\t\t\tvalue: this.selectedOptionsState,\n\t\t})\n\t}\n\n\tprivate onBlurHandler(e: FocusEvent) {\n\t\te.stopPropagation()\n\t\te.stopPropagation()\n\t\tthis.focused = false\n\t\tthis.govBlur.emit({\n\t\t\tcomponent: FormMultiSelectClass.root,\n\t\t\toriginalEvent: e,\n\t\t\tvalue: this.selectedOptionsState,\n\t\t})\n\t}\n\n\tprivate onInputHandler(e: CustomEvent<FormAutocompleteEvent>) {\n\t\tthis.valueState = e.detail.value\n\t\te.stopPropagation()\n\t}\n\n\tprivate onSelectHandler(e: CustomEvent<FormAutocompleteEvent>) {\n\t\te.stopPropagation()\n\t\tconst value = e.detail.selected\n\t\tthis.selectOption(value.value)\n\t\tthis.valueState = ''\n\t\tthis.autocompleteRef.clearValue().finally()\n\t\tthis.autocompleteRef.focus()\n\t}\n\n\tprivate onTagRemove(removeOption: GovFormMultiSelectSelectedItem) {\n\t\tthis.removeOption(removeOption)\n\t}\n\n\t/**\n\t * Returns the current state of the component\n\t */\n\t@Method()\n\tasync setFocus(options?: FocusOptions): Promise<void> {\n\t\treturn this.selectRef.focus(options)\n\t}\n\n\t/**\n\t * Sets the ordered value of the element\n\t */\n\t@Method()\n\tasync setValue(value: string): Promise<void> {\n\t\tthis.valueState = value\n\t}\n\n\t/**\n\t * Returns an instance of the native html select element\n\t */\n\t@Method()\n\tasync getRef(): Promise<HTMLSelectElement> {\n\t\treturn this.selectRef\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as s,c as t,h as i,H as a,g as e}from"./p-
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as s,c as t,h as i,H as a,g as e}from"./p-B8TR1oqt.js";import{v as o}from"./p-NOJjz9dT.js";import{W as n,c as h}from"./p-BjcqOprh.js";import{c}from"./p-vN03FcXN.js";import{g as r,b as l,t as d}from"./p-CoD1xawt.js";import"./p-CgDnDrq5.js";import"./p-CQvUntGY.js";import"./p-U40vKHrs.js";import"./p-BcQO4NH2.js";var p;(function(s){s["DIV"]="div";s["BUTTON"]="button"})(p||(p={}));const m=class{constructor(i){s(this,i);this.govChange=t(this,"gov-change");this.hydrated=false;this.color="primary";this.size="m";this.collapsible=false;this.disabled=false;this.isExpanded=false;this.h=r(this.host);this.triggerId=c("GovWizardItem");this.contentId=c("GovWizardContent")}validateColor(s){o(h,s,n.root)}emmitChange(){this.govChange.emit({expanded:this.isExpanded,component:n.root})}componentWillLoad(){this.validateColor(this.color)}connectedCallback(){this.hydrated=true}render(){const s=this.identifier||this.triggerId;const t=this.collapsible?p.BUTTON:p.DIV;const e=this.h.hasSlot("prefix")&&i("span",{key:"3f00516020337fc142713c6edb468d0007eba3c5",class:n.prefix},i("slot",{key:"05aa42bc8241f53bb3664dc3d06798cb0344f92f",name:"prefix"}));return i(a,{key:"863700f5087e86d1f8d4e22b40108dfbc0cb96f5",class:this.h.classes(n.root),"is-expanded":this.isExpanded,color:this.color,size:this.size,role:"listitem",collapsible:this.collapsible,hydrated:this.hydrated},i("div",{key:"6d93a5bb12dbe2fc2e308059ffd5d63ed915f16d",class:n.header},e,this.collapsible?i(t,{id:s,class:this.h.classes(n.label),"aria-expanded":l(this.isExpanded),"aria-controls":this.contentId,disabled:this.disabled,"aria-disabled":d(this.disabled),onClick:s=>{s.preventDefault();s.stopPropagation();this.toggle()}},i("span",{class:n.headline},i("slot",{name:"headline"}),this.collapsible&&i("gov-icon",{class:n.chevron,name:"chevron-down",type:"components"})),i("slot",{name:"annotation"})):i(t,{class:this.h.classes(n.label)},i("span",{class:n.headline},i("slot",{name:"headline"}),this.collapsible&&i("gov-icon",{class:n.chevron,name:"chevron-down",type:"components"})),i("slot",{name:"annotation"}))),this.collapsible?i("div",{class:n.content,id:this.contentId,"aria-hidden":l(!this.isExpanded),hidden:!this.isExpanded,"aria-labelledby":s},i("slot",null)):i("div",{class:n.content,"aria-hidden":l(!this.isExpanded),hidden:!this.isExpanded},i("slot",null)))}async open(){this.isExpanded=true;this.emmitChange()}async close(){this.isExpanded=false;this.emmitChange()}async toggle(){this.isExpanded=!this.isExpanded;this.emmitChange()}async currentState(){return this.isExpanded}get host(){return e(this)}static get watchers(){return{color:[{validateColor:0}]}}};export{m as gov_wizard_item};
|
|
2
|
+
//# sourceMappingURL=p-78202a44.entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Tags","GovWizardItem","constructor","hostRef","this","hydrated","color","size","collapsible","disabled","isExpanded","h","govHost","host","triggerId","createID","contentId","validateColor","newValue","validateProp","WizardColors","WizardItemClass","root","emmitChange","govChange","emit","expanded","component","componentWillLoad","connectedCallback","render","identifier","Tag","BUTTON","DIV","prefixSlot","hasSlot","key","class","prefix","name","Host","classes","role","header","id","label","booleanString","toBoolAttrIfDefined","onClick","e","preventDefault","stopPropagation","toggle","headline","chevron","type","content","hidden","open","close","currentState"],"sources":["../../../packages/core/src/components/gov-wizard/gov-wizard-item.tsx"],"sourcesContent":["import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, Watch } from \"@stencil/core\"\nimport { validateProp } from \"../../helpers/Validate/props\"\nimport { WizardSizesType, WizardColors, WizardColorType, WizardItemClass } from \"./constants\"\nimport { createID } from \"../../utils/string.utils\"\nimport { booleanString, govHost, toBoolAttrIfDefined } from \"../../helpers/Dom/template\"\nimport { GovHost } from \"../../helpers/Dom/template.types\"\nimport { WizardItemEvent } from \"./gov-wizard-item.types\"\n\nenum Tags {\n\tDIV = \"div\",\n\tBUTTON = \"button\",\n}\n\n@Component({\n\ttag: \"gov-wizard-item\",\n})\nexport class GovWizardItem {\n\tprivate h: GovHost\n\tprivate readonly triggerId: string\n\tprivate readonly contentId: string\n\tprivate hydrated = false\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.triggerId = createID(\"GovWizardItem\")\n\t\tthis.contentId = createID(\"GovWizardContent\")\n\t}\n\n\t@Element() readonly host: HTMLGovWizardItemElement\n\t/**\n\t * Style variation of the button.\n\t */\n\t@Prop() readonly color?: WizardColorType = \"primary\"\n\t/**\n\t * Size of wizard\n\t */\n\t@Prop() readonly size?: WizardSizesType = \"m\"\n\t/**\n\t * Custom wizard item identifier. Otherwise, it will be generated\n\t */\n\t@Prop() readonly identifier: string\n\t/**\n\t * Defines weather the wizard item can be collapsible\n\t */\n\t@Prop() readonly collapsible: boolean = false\n\t/**\n\t * Makes the wizard component disabled.\n\t */\n\t@Prop() readonly disabled: boolean = false\n\t/**\n\t * Defines whether the accordion is open or closed by button\n\t */\n\t@Prop({ attribute: \"is-expanded\", mutable: true }) isExpanded = false\n\t/**\n\t * Called when the accordion state changes\n\t */\n\t@Event({ eventName: \"gov-change\" }) govChange: EventEmitter<WizardItemEvent>\n\n\t@Watch(\"color\")\n\tprivate validateColor(newValue: string): void {\n\t\tvalidateProp(WizardColors, newValue, WizardItemClass.root)\n\t}\n\n\tprivate emmitChange(): void {\n\t\tthis.govChange.emit({ expanded: this.isExpanded, component: WizardItemClass.root })\n\t}\n\n\tcomponentWillLoad(): void {\n\t\tthis.validateColor(this.color)\n\t}\n\n\tconnectedCallback() {\n\t\tthis.hydrated = true\n\t}\n\n\trender() {\n\t\tconst triggerId = this.identifier || this.triggerId\n\t\tconst Tag = this.collapsible ? Tags.BUTTON : Tags.DIV\n\t\tconst prefixSlot = this.h.hasSlot(\"prefix\") && (<span class={WizardItemClass.prefix}><slot name=\"prefix\" /></span>)\n\n\t\treturn (\n\t\t\t<Host class={this.h.classes(WizardItemClass.root)}\n\t\t\t\t is-expanded={this.isExpanded}\n\t\t\t\t color={this.color}\n\t\t\t\t size={this.size}\n\t\t\t\t role=\"listitem\"\n\t\t\t\t collapsible={this.collapsible}\n\t\t\t\t hydrated={this.hydrated}>\n\t\t\t\t<div class={WizardItemClass.header}>\n\t\t\t\t\t{prefixSlot}\n\t\t\t\t\t{this.collapsible ? (\n\t\t\t\t\t\t<Tag\n\t\t\t\t\t\t\tid={triggerId}\n\t\t\t\t\t\t\tclass={this.h.classes(WizardItemClass.label)}\n\t\t\t\t\t\t\taria-expanded={booleanString(this.isExpanded)}\n\t\t\t\t\t\t\taria-controls={this.contentId}\n\t\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\t\taria-disabled={toBoolAttrIfDefined(this.disabled)}\n\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\tthis.toggle()\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class={WizardItemClass.headline}>\n\t\t\t\t\t\t\t\t<slot name=\"headline\" />\n\t\t\t\t\t\t\t\t{this.collapsible && <gov-icon class={WizardItemClass.chevron} name=\"chevron-down\" type=\"components\"></gov-icon>}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<slot name=\"annotation\"/>\n\t\t\t\t\t\t</Tag>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<Tag class={this.h.classes(WizardItemClass.label)}>\n\t\t\t\t\t\t\t<span class={WizardItemClass.headline}>\n\t\t\t\t\t\t\t\t<slot name=\"headline\" />\n\t\t\t\t\t\t\t\t{this.collapsible && <gov-icon class={WizardItemClass.chevron} name=\"chevron-down\" type=\"components\"></gov-icon>}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<slot name=\"annotation\"/>\n\t\t\t\t\t\t</Tag>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t{this.collapsible ? (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclass={WizardItemClass.content}\n\t\t\t\t\t\tid={this.contentId}\n\t\t\t\t\t\taria-hidden={booleanString(!this.isExpanded)}\n\t\t\t\t\t\thidden={!this.isExpanded}\n\t\t\t\t\t\taria-labelledby={triggerId}\n\t\t\t\t\t>\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</div>\n\t\t\t\t) : (\n\t\t\t\t\t<div class={WizardItemClass.content}\n\t\t\t\t\t\t aria-hidden={booleanString(!this.isExpanded)}\n\t\t\t\t\t\t hidden={!this.isExpanded}\n\t\t\t\t\t>\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</Host>\n\t\t)\n\t}\n\n\t/**\n\t * Opening the Wizard\n\t */\n\t@Method()\n\tasync open(): Promise<void> {\n\t\tthis.isExpanded = true\n\t\tthis.emmitChange()\n\t}\n\n\t/**\n\t * Closing the Wizard\n\t */\n\t@Method()\n\tpublic async close(): Promise<void> {\n\t\tthis.isExpanded = false\n\t\tthis.emmitChange()\n\t}\n\n\t/**\n\t * Wizard switch\n\t */\n\t@Method()\n\tpublic async toggle(): Promise<void> {\n\t\tthis.isExpanded = !this.isExpanded\n\t\tthis.emmitChange()\n\t}\n\n\t/**\n\t * Returns the current state of the component\n\t */\n\t@Method()\n\tpublic async currentState(): Promise<boolean> {\n\t\treturn this.isExpanded\n\t}\n}\n"],"mappings":"gUAQA,IAAKA,GAAL,SAAKA,GACJA,EAAA,aACAA,EAAA,kBACA,EAHD,CAAKA,
|
|
1
|
+
{"version":3,"names":["Tags","GovWizardItem","constructor","hostRef","this","hydrated","color","size","collapsible","disabled","isExpanded","h","govHost","host","triggerId","createID","contentId","validateColor","newValue","validateProp","WizardColors","WizardItemClass","root","emmitChange","govChange","emit","expanded","component","componentWillLoad","connectedCallback","render","identifier","Tag","BUTTON","DIV","prefixSlot","hasSlot","key","class","prefix","name","Host","classes","role","header","id","label","booleanString","toBoolAttrIfDefined","onClick","e","preventDefault","stopPropagation","toggle","headline","chevron","type","content","hidden","open","close","currentState"],"sources":["../../../packages/core/src/components/gov-wizard/gov-wizard-item.tsx"],"sourcesContent":["import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, Watch } from \"@stencil/core\"\nimport { validateProp } from \"../../helpers/Validate/props\"\nimport { WizardSizesType, WizardColors, WizardColorType, WizardItemClass } from \"./constants\"\nimport { createID } from \"../../utils/string.utils\"\nimport { booleanString, govHost, toBoolAttrIfDefined } from \"../../helpers/Dom/template\"\nimport { GovHost } from \"../../helpers/Dom/template.types\"\nimport { WizardItemEvent } from \"./gov-wizard-item.types\"\n\nenum Tags {\n\tDIV = \"div\",\n\tBUTTON = \"button\",\n}\n\n@Component({\n\ttag: \"gov-wizard-item\",\n})\nexport class GovWizardItem {\n\tprivate h: GovHost\n\tprivate readonly triggerId: string\n\tprivate readonly contentId: string\n\tprivate hydrated = false\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.triggerId = createID(\"GovWizardItem\")\n\t\tthis.contentId = createID(\"GovWizardContent\")\n\t}\n\n\t@Element() readonly host: HTMLGovWizardItemElement\n\t/**\n\t * Style variation of the button.\n\t */\n\t@Prop() readonly color?: WizardColorType = \"primary\"\n\t/**\n\t * Size of wizard\n\t */\n\t@Prop() readonly size?: WizardSizesType = \"m\"\n\t/**\n\t * Custom wizard item identifier. Otherwise, it will be generated\n\t */\n\t@Prop() readonly identifier: string\n\t/**\n\t * Defines weather the wizard item can be collapsible\n\t */\n\t@Prop() readonly collapsible: boolean = false\n\t/**\n\t * Makes the wizard component disabled.\n\t */\n\t@Prop() readonly disabled: boolean = false\n\t/**\n\t * Defines whether the accordion is open or closed by button\n\t */\n\t@Prop({ attribute: \"is-expanded\", mutable: true }) isExpanded = false\n\t/**\n\t * Called when the accordion state changes\n\t */\n\t@Event({ eventName: \"gov-change\" }) govChange: EventEmitter<WizardItemEvent>\n\n\t@Watch(\"color\")\n\tprivate validateColor(newValue: string): void {\n\t\tvalidateProp(WizardColors, newValue, WizardItemClass.root)\n\t}\n\n\tprivate emmitChange(): void {\n\t\tthis.govChange.emit({ expanded: this.isExpanded, component: WizardItemClass.root })\n\t}\n\n\tcomponentWillLoad(): void {\n\t\tthis.validateColor(this.color)\n\t}\n\n\tconnectedCallback() {\n\t\tthis.hydrated = true\n\t}\n\n\trender() {\n\t\tconst triggerId = this.identifier || this.triggerId\n\t\tconst Tag = this.collapsible ? Tags.BUTTON : Tags.DIV\n\t\tconst prefixSlot = this.h.hasSlot(\"prefix\") && (<span class={WizardItemClass.prefix}><slot name=\"prefix\" /></span>)\n\n\t\treturn (\n\t\t\t<Host class={this.h.classes(WizardItemClass.root)}\n\t\t\t\t is-expanded={this.isExpanded}\n\t\t\t\t color={this.color}\n\t\t\t\t size={this.size}\n\t\t\t\t role=\"listitem\"\n\t\t\t\t collapsible={this.collapsible}\n\t\t\t\t hydrated={this.hydrated}>\n\t\t\t\t<div class={WizardItemClass.header}>\n\t\t\t\t\t{prefixSlot}\n\t\t\t\t\t{this.collapsible ? (\n\t\t\t\t\t\t<Tag\n\t\t\t\t\t\t\tid={triggerId}\n\t\t\t\t\t\t\tclass={this.h.classes(WizardItemClass.label)}\n\t\t\t\t\t\t\taria-expanded={booleanString(this.isExpanded)}\n\t\t\t\t\t\t\taria-controls={this.contentId}\n\t\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\t\taria-disabled={toBoolAttrIfDefined(this.disabled)}\n\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\tthis.toggle()\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class={WizardItemClass.headline}>\n\t\t\t\t\t\t\t\t<slot name=\"headline\" />\n\t\t\t\t\t\t\t\t{this.collapsible && <gov-icon class={WizardItemClass.chevron} name=\"chevron-down\" type=\"components\"></gov-icon>}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<slot name=\"annotation\"/>\n\t\t\t\t\t\t</Tag>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<Tag class={this.h.classes(WizardItemClass.label)}>\n\t\t\t\t\t\t\t<span class={WizardItemClass.headline}>\n\t\t\t\t\t\t\t\t<slot name=\"headline\" />\n\t\t\t\t\t\t\t\t{this.collapsible && <gov-icon class={WizardItemClass.chevron} name=\"chevron-down\" type=\"components\"></gov-icon>}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<slot name=\"annotation\"/>\n\t\t\t\t\t\t</Tag>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t{this.collapsible ? (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclass={WizardItemClass.content}\n\t\t\t\t\t\tid={this.contentId}\n\t\t\t\t\t\taria-hidden={booleanString(!this.isExpanded)}\n\t\t\t\t\t\thidden={!this.isExpanded}\n\t\t\t\t\t\taria-labelledby={triggerId}\n\t\t\t\t\t>\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</div>\n\t\t\t\t) : (\n\t\t\t\t\t<div class={WizardItemClass.content}\n\t\t\t\t\t\t aria-hidden={booleanString(!this.isExpanded)}\n\t\t\t\t\t\t hidden={!this.isExpanded}\n\t\t\t\t\t>\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</Host>\n\t\t)\n\t}\n\n\t/**\n\t * Opening the Wizard\n\t */\n\t@Method()\n\tasync open(): Promise<void> {\n\t\tthis.isExpanded = true\n\t\tthis.emmitChange()\n\t}\n\n\t/**\n\t * Closing the Wizard\n\t */\n\t@Method()\n\tpublic async close(): Promise<void> {\n\t\tthis.isExpanded = false\n\t\tthis.emmitChange()\n\t}\n\n\t/**\n\t * Wizard switch\n\t */\n\t@Method()\n\tpublic async toggle(): Promise<void> {\n\t\tthis.isExpanded = !this.isExpanded\n\t\tthis.emmitChange()\n\t}\n\n\t/**\n\t * Returns the current state of the component\n\t */\n\t@Method()\n\tpublic async currentState(): Promise<boolean> {\n\t\treturn this.isExpanded\n\t}\n}\n"],"mappings":"gUAQA,IAAKA,GAAL,SAAKA,GACJA,EAAA,aACAA,EAAA,kBACA,EAHD,CAAKA,MAAI,K,MAQIC,EAAa,MAMzB,WAAAC,CAAAC,G,8CAFQC,KAAAC,SAAW,MAYFD,KAAAE,MAA0B,UAI1BF,KAAAG,KAAyB,IAQzBH,KAAAI,YAAuB,MAIvBJ,KAAAK,SAAoB,MAIcL,KAAAM,WAAa,MA7B/DN,KAAKO,EAAIC,EAAQR,KAAKS,MACtBT,KAAKU,UAAYC,EAAS,iBAC1BX,KAAKY,UAAYD,EAAS,mBAC1B,CAiCO,aAAAE,CAAcC,GACrBC,EAAaC,EAAcF,EAAUG,EAAgBC,K,CAG9C,WAAAC,GACPnB,KAAKoB,UAAUC,KAAK,CAAEC,SAAUtB,KAAKM,WAAYiB,UAAWN,EAAgBC,M,CAG7E,iBAAAM,GACCxB,KAAKa,cAAcb,KAAKE,M,CAGzB,iBAAAuB,GACCzB,KAAKC,SAAW,I,CAGjB,MAAAyB,GACC,MAAMhB,EAAYV,KAAK2B,YAAc3B,KAAKU,UAC1C,MAAMkB,EAAM5B,KAAKI,YAAcR,EAAKiC,OAASjC,EAAKkC,IAClD,MAAMC,EAAa/B,KAAKO,EAAEyB,QAAQ,WAAczB,EAAA,QAAA0B,IAAA,2CAAMC,MAAOjB,EAAgBkB,QAAQ5B,EAAA,QAAA0B,IAAA,2CAAMG,KAAK,YAEhG,OACC7B,EAAC8B,EAAI,CAAAJ,IAAA,2CAACC,MAAOlC,KAAKO,EAAE+B,QAAQrB,EAAgBC,MAAK,cACjClB,KAAKM,WAClBJ,MAAOF,KAAKE,MACZC,KAAMH,KAAKG,KACXoC,KAAK,WACLnC,YAAaJ,KAAKI,YAClBH,SAAUD,KAAKC,UACjBM,EAAA,OAAA0B,IAAA,2CAAKC,MAAOjB,EAAgBuB,QAC1BT,EACA/B,KAAKI,YACLG,EAACqB,EAAG,CACHa,GAAI/B,EACJwB,MAAOlC,KAAKO,EAAE+B,QAAQrB,EAAgByB,OAAM,gBAC7BC,EAAc3C,KAAKM,YAAW,gBAC9BN,KAAKY,UACpBP,SAAUL,KAAKK,SAAQ,gBACRuC,EAAoB5C,KAAKK,UACxCwC,QAAUC,IACTA,EAAEC,iBACFD,EAAEE,kBACFhD,KAAKiD,QAAQ,GAGd1C,EAAA,QAAM2B,MAAOjB,EAAgBiC,UAC5B3C,EAAA,QAAM6B,KAAK,aACVpC,KAAKI,aAAeG,EAAA,YAAU2B,MAAOjB,EAAgBkC,QAASf,KAAK,eAAegB,KAAK,gBAEzF7C,EAAA,QAAM6B,KAAK,gBAGZ7B,EAACqB,EAAG,CAACM,MAAOlC,KAAKO,EAAE+B,QAAQrB,EAAgByB,QAC1CnC,EAAA,QAAM2B,MAAOjB,EAAgBiC,UAC5B3C,EAAA,QAAM6B,KAAK,aACVpC,KAAKI,aAAeG,EAAA,YAAU2B,MAAOjB,EAAgBkC,QAASf,KAAK,eAAegB,KAAK,gBAEzF7C,EAAA,QAAM6B,KAAK,iBAIbpC,KAAKI,YACLG,EAAA,OACC2B,MAAOjB,EAAgBoC,QACvBZ,GAAIzC,KAAKY,UAAS,cACL+B,GAAe3C,KAAKM,YACjCgD,QAAStD,KAAKM,WAAU,kBACPI,GAEjBH,EAAA,cAGDA,EAAA,OAAK2B,MAAOjB,EAAgBoC,QAAO,cACpBV,GAAe3C,KAAKM,YACjCgD,QAAStD,KAAKM,YAEfC,EAAA,c,CAWL,UAAMgD,GACLvD,KAAKM,WAAa,KAClBN,KAAKmB,a,CAOC,WAAMqC,GACZxD,KAAKM,WAAa,MAClBN,KAAKmB,a,CAOC,YAAM8B,GACZjD,KAAKM,YAAcN,KAAKM,WACxBN,KAAKmB,a,CAOC,kBAAMsC,GACZ,OAAOzD,KAAKM,U","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as t,c as i,h as s,H as e,g as a}from"./p-
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as t,c as i,h as s,H as e,g as a}from"./p-B8TR1oqt.js";import{v as o}from"./p-NOJjz9dT.js";import{b as n,B as h,c as r,N as c}from"./p-Bo1ROm5Q.js";import{g as l,t as d}from"./p-CoD1xawt.js";import{S as f}from"./p-BcQO4NH2.js";import{v as p}from"./p-CDIRBJsi.js";import{c as b}from"./p-CgDnDrq5.js";import{d as m}from"./p-CQvUntGY.js";import{i as v}from"./p-CzXeijOj.js";import{A as u,a as y}from"./p-Bz_RzYFb.js";import"./p-U40vKHrs.js";import"./p-vN03FcXN.js";import"./p-DNztiAH0.js";function g(t){if(typeof t==="string"){return["true","True","TRUE","1"].indexOf(t)!==-1}else if(typeof t==="number"){return t>0}else if(typeof t==="boolean"){return t}else{return t?true:false}}var j;(function(t){t["A"]="a";t["BUTTON"]="button"})(j||(j={}));const k=class{constructor(s){t(this,s);this.govClick=i(this,"gov-click");this.govFocus=i(this,"gov-focus");this.govBlur=i(this,"gov-blur");this.hydrated=false;this.size="m";this.expanded=false;this.expandedMobile=false;this.disabled=false;this.nativeType="button";this.tab=0;this.focusable=true;this.inheritedAttributes={};this.h=l(this.host)}validateColor(t){o(h,t,n.root)}validateType(t){o(r,t,n.root)}validateSize(t){o(f,t,n.root)}validateNativeType(t){o(c,t,n.root)}componentDidLoad(){this.attributeObserver=new u(this.host,((t,i)=>{this.onAriaAttributeChange(t,i)}));this.attributeObserver.startObserving(y)}onAriaAttributeChange(t,i){this.host.removeAttribute(t);this.inheritedAttributes=Object.assign(Object.assign({},this.inheritedAttributes),{[t]:i})}disconnectedCallback(){var t;(t=this.attributeObserver)===null||t===void 0?void 0:t.stopObserving()}componentWillLoad(){this.validateColor(this.color);this.validateType(this.type);this.validateSize(this.size);this.validateNativeType(this.nativeType);this.inheritedAttributes=v(this.host)}async componentDidRender(){if(b()){await m(500);await this.validateAccessibility()}}connectedCallback(){this.hydrated=true}render(){const t=this.href?j.A:j.BUTTON;const i=t===j.A?undefined:this.nativeType;return s(e,{key:"be41c5da0a82fa7c16239527bc720510de8ecbd5",size:this.size,hydrated:this.hydrated,color:this.color,class:this.h.classes(n.root),type:this.type},s(t,Object.assign({key:"c46f9288bccd35208999be6e0b3fbdc53097e9eb",class:"element",ref:t=>this.triggerRef=t,onClick:this.onClickHandler.bind(this),onFocus:this.onFocusHandler.bind(this),onBlur:this.onBlurHandler.bind(this),disabled:this.disabled,id:this.identifier,href:this.href,target:this.target,download:this.download,hreflang:this.hreflang,rel:this.rel,name:this.name,type:i,tabindex:this.disabled?"-1":this.tab},this.inheritedAttributes,{"aria-disabled":d(this.disabled)}),g(this.loading)&&!this.h.hasSlot("icon-end")&&s("gov-icon",{key:"051f379ac0f6095662027cb21aa97167d641aeb9",name:"loader",class:"gov-spin-animation",type:"components"}),this.h.hasSlot("icon-start")&&s("slot",{key:"f727f494903fa51f278cf7bbd4045dff83bf735d",name:"icon-start"}),s("slot",{key:"dfb09a744c1ef48ef8fd5af7e833b28cf4138d89"}),this.h.hasSlot("icon-end")&&s("slot",{key:"1d81872f18bf2c66af51eb327b45cd102dec9ec9",name:"icon-end"}),g(this.loading)&&this.h.hasSlot("icon-end")&&s("gov-icon",{key:"288d436dbc423b0a02701a0c7764b46f2957d7f4",name:"loader",class:"gov-spin-animation",type:"components"})))}onClickHandler(t){t.stopPropagation();if(this.disabled===false){this.govClick.emit({component:n.root,originalEvent:t,ref:this.host})}}onFocusHandler(t){t.stopPropagation();this.govFocus.emit({component:n.root,originalEvent:t,ref:this.host})}onBlurHandler(t){t.stopPropagation();this.govBlur.emit({component:n.root,originalEvent:t,ref:this.host})}async setFocus(){this.triggerRef.focus()}async getRef(){return this.triggerRef}async validateAccessibility(){if(this.focusable){p(this.triggerRef.getAttribute("aria-label"),this.triggerRef.getAttribute("aria-labelledby"),n.root,this.host)}}get host(){return a(this)}static get watchers(){return{color:[{validateColor:0}],type:[{validateType:0}],size:[{validateSize:0}],nativeType:[{validateNativeType:0}]}}};export{k as gov_button};
|
|
2
|
+
//# sourceMappingURL=p-80052953.entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["toBool","value","indexOf","Tags","GovButton","constructor","hostRef","this","hydrated","size","expanded","expandedMobile","disabled","nativeType","tab","focusable","inheritedAttributes","h","govHost","host","validateColor","newValue","validateProp","ButtonColors","ButtonClass","root","validateType","ButtonType","validateSize","Sizes","validateNativeType","NativeType","componentDidLoad","attributeObserver","AttributeObserver","attributeName","onAriaAttributeChange","startObserving","ariaAttributes","removeAttribute","Object","assign","disconnectedCallback","_a","stopObserving","componentWillLoad","color","type","inheritAriaAttributes","componentDidRender","canValidateWcagOnRender","delay","validateAccessibility","connectedCallback","render","Tag","href","A","BUTTON","undefined","Host","key","class","classes","ref","el","triggerRef","onClick","onClickHandler","bind","onFocus","onFocusHandler","onBlur","onBlurHandler","id","identifier","target","download","hreflang","rel","name","tabindex","toBoolAttrIfDefined","loading","hasSlot","e","stopPropagation","govClick","emit","component","originalEvent","govFocus","govBlur","setFocus","focus","getRef","validateAccessibleLabel","getAttribute"],"sources":["../../../packages/core/src/utils/bool.utils.ts","../../../packages/core/src/components/gov-button/button/gov-button.tsx"],"sourcesContent":["export function toBool(value: any): boolean {\n\tif (typeof value === 'string') {\n\t\treturn ['true', 'True', 'TRUE', '1'].indexOf(value) !== -1\n\t} else if (typeof value === 'number') {\n\t\treturn value > 0\n\t} else if (typeof value === 'boolean') {\n\t\treturn value\n\t} else {\n\t\treturn value ? true : false\n\t}\n}\n","import {Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch} from \"@stencil/core\"\nimport {validateProp} from \"../../../helpers/Validate/props\"\nimport {\n\tButtonClass,\n\tButtonColors,\n\tButtonColorType,\n\tButtonSizesType,\n\tButtonTargetType,\n\tButtonType,\n\tButtonTypesType,\n\tNativeType,\n\tNativeTypesType,\n} from \"./constants\"\nimport {govHost, toBoolAttrIfDefined} from \"../../../helpers/Dom/template\"\nimport {GovHost} from \"../../../helpers/Dom/template.types\"\nimport {toBool} from \"../../../utils/bool.utils\"\nimport {Sizes} from \"../../../core/constants/sizes\"\nimport {validateAccessibleLabel} from \"../../../helpers/Validate/wcag\"\nimport {canValidateWcagOnRender} from \"../../../helpers/Dom/win\"\nimport {delay} from \"../../../utils/utils\"\nimport {ButtonEvent} from \"./gov-button.types\"\nimport {inheritAriaAttributes} from \"../../../helpers/Accessibility/accessibility\";\nimport {ariaAttributes} from \"../../../helpers/Accessibility/attributes\";\nimport {AttributeObserver, Attributes} from \"../../../helpers/Dom/attribute\";\n\nenum Tags {\n\tA = \"a\",\n\tBUTTON = \"button\",\n}\n\n@Component({\n\ttag: \"gov-button\",\n})\nexport class GovButton {\n\tprivate h: GovHost\n\tprivate triggerRef?: HTMLButtonElement | HTMLLinkElement\n\tprivate attributeObserver: AttributeObserver\n\tprivate hydrated = false\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() host: HTMLGovButtonElement\n\n\t/**\n\t * Style variation of the button\n\t */\n\t@Prop({reflect: true}) readonly color: ButtonColorType\n\t/**\n\t * Button’s size\n\t */\n\t@Prop({reflect: true}) readonly size?: ButtonSizesType = \"m\"\n\t/**\n\t * Button's type\n\t */\n\t@Prop({reflect: true}) readonly type: ButtonTypesType\n\t/**\n\t * Expands the button to fill 100% of the container width\n\t */\n\t@Prop({reflect: true}) readonly expanded: boolean = false\n\t/**\n\t * Expands the button to fill 100% of the container width only on mobile\n\t */\n\t@Prop({reflect: true, attribute: \"expanded-mobile\"}) readonly expandedMobile: boolean = false\n\t/**\n\t * The name of the button, which gets paired with the button's value when submitted as part of a form. Corresponds with the native HTML name attribute\n\t */\n\t@Prop() readonly name: string\n\t/**\n\t * Makes the button component disabled.\n\t * This prevents users from being able to interact with the button, and conveys its inactive state to assistive technologies\n\t */\n\t@Prop({reflect: true}) readonly disabled: boolean = false\n\t/**\n\t * Same as original parameter\n\t * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-type\n\t */\n\t@Prop() readonly nativeType?: NativeTypesType = \"button\"\n\t/**\n\t * Same as original parameter\n\t * @link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-href\n\t */\n\t@Prop() readonly href: string\n\t/**\n\t * Same as original parameter\n\t * @link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-target\n\t */\n\t@Prop() readonly target?: ButtonTargetType\n\t/**\n\t * Same as original parameter\n\t * @link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-download\n\t */\n\t@Prop() readonly download: boolean\n\t/**\n\t * Same as original parameter\n\t * @link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-download\n\t */\n\t@Prop() readonly tab: number = 0\n\t/**\n\t * Same as original parameter\n\t * @link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-hreflang\n\t */\n\t@Prop() readonly hreflang: string\n\t/**\n\t * Same as original parameter\n\t * @link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-referrerpolicy\n\t */\n\t@Prop() readonly referrerpolicy: string\n\t/**\n\t * Same as original parameter\n\t * @link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-rel\n\t */\n\t@Prop() readonly rel: string\n\t/**\n\t * Indicates whether an asynchronous process is running\n\t */\n\t@Prop() readonly loading: string\n\t/**\n\t * Same as original parameter\n\t * @link https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/focusable\n\t */\n\t@Prop() readonly focusable: boolean = true\n\t/**\n\t * Custom button identifier\n\t */\n\t@Prop({attribute: \"identifier\"}) readonly identifier: string\n\t/**\n\t * Emitted when the button click\n\t */\n\t@Event({eventName: \"gov-click\"}) govClick: EventEmitter<ButtonEvent>\n\t/**\n\t * Emitted when the button has focus\n\t */\n\t@Event({eventName: \"gov-focus\"}) govFocus: EventEmitter<ButtonEvent>\n\t/**\n\t * Emitted when the button loses focus\n\t */\n\t@Event({eventName: \"gov-blur\"}) govBlur: EventEmitter<ButtonEvent>\n\n\t@Watch(\"color\")\n\tvalidateColor(newValue: string): void {\n\t\tvalidateProp(ButtonColors, newValue, ButtonClass.root)\n\t}\n\n\t@Watch(\"type\")\n\tvalidateType(newValue: string): void {\n\t\tvalidateProp(ButtonType, newValue, ButtonClass.root)\n\t}\n\n\t@Watch(\"size\")\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(Sizes, newValue, ButtonClass.root)\n\t}\n\n\t@Watch(\"nativeType\")\n\tvalidateNativeType(newValue: string): void {\n\t\tvalidateProp(NativeType, newValue, ButtonClass.root)\n\t}\n\n\t@State() inheritedAttributes: Attributes = {}\n\n\tcomponentDidLoad() {\n\t\tthis.attributeObserver = new AttributeObserver(this.host, (attributeName, newValue) => {\n\t\t\tthis.onAriaAttributeChange(attributeName, newValue);\n\t\t});\n\n\t\tthis.attributeObserver.startObserving(ariaAttributes);\n\t}\n\n\tonAriaAttributeChange(attributeName: string, newValue: string) {\n\t\tthis.host.removeAttribute(attributeName)\n\t\tthis.inheritedAttributes = {...this.inheritedAttributes, [attributeName]: newValue};\n\t}\n\n\tdisconnectedCallback() {\n\t\tthis.attributeObserver?.stopObserving();\n\t}\n\n\tcomponentWillLoad(): void {\n\t\tthis.validateColor(this.color)\n\t\tthis.validateType(this.type)\n\t\tthis.validateSize(this.size)\n\t\tthis.validateNativeType(this.nativeType)\n\t\tthis.inheritedAttributes = inheritAriaAttributes(this.host);\n\t}\n\n\tasync componentDidRender() {\n\t\tif (canValidateWcagOnRender()) {\n\t\t\tawait delay(500)\n\t\t\tawait this.validateAccessibility()\n\t\t}\n\t}\n\n\tconnectedCallback() {\n\t\tthis.hydrated = true\n\t}\n\n\trender() {\n\t\tconst Tag = this.href ? Tags.A : Tags.BUTTON\n\t\tconst nativeType = Tag === Tags.A ? undefined : this.nativeType\n\n\t\treturn (\n\t\t\t<Host size={this.size}\n\t\t\t\t hydrated={this.hydrated}\n\t\t\t\t color={this.color}\n\t\t\t\t class={this.h.classes(ButtonClass.root)}\n\t\t\t\t type={this.type}>\n\t\t\t\t<Tag\n\t\t\t\t\tclass=\"element\"\n\t\t\t\t\tref={el => (this.triggerRef = el as HTMLButtonElement | HTMLLinkElement)}\n\t\t\t\t\tonClick={this.onClickHandler.bind(this)}\n\t\t\t\t\tonFocus={this.onFocusHandler.bind(this)}\n\t\t\t\t\tonBlur={this.onBlurHandler.bind(this)}\n\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\tid={this.identifier}\n\t\t\t\t\thref={this.href}\n\t\t\t\t\ttarget={this.target}\n\t\t\t\t\tdownload={this.download}\n\t\t\t\t\threflang={this.hreflang}\n\t\t\t\t\trel={this.rel}\n\t\t\t\t\tname={this.name}\n\t\t\t\t\ttype={nativeType}\n\t\t\t\t\ttabindex={this.disabled ? \"-1\" : this.tab}\n\t\t\t\t\t{...this.inheritedAttributes}\n\t\t\t\t\taria-disabled={toBoolAttrIfDefined(this.disabled)}\n\t\t\t\t>\n\t\t\t\t\t{toBool(this.loading) && !this.h.hasSlot(\"icon-end\") &&\n\t\t\t\t\t\t<gov-icon name=\"loader\" class=\"gov-spin-animation\" type=\"components\"></gov-icon>}\n\t\t\t\t\t{this.h.hasSlot(\"icon-start\") && <slot name=\"icon-start\"></slot>}\n\t\t\t\t\t<slot/>\n\t\t\t\t\t{this.h.hasSlot(\"icon-end\") && <slot name=\"icon-end\"></slot>}\n\t\t\t\t\t{toBool(this.loading) && this.h.hasSlot(\"icon-end\") &&\n\t\t\t\t\t\t<gov-icon name=\"loader\" class=\"gov-spin-animation\" type=\"components\"></gov-icon>}\n\t\t\t\t</Tag>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onClickHandler(e: PointerEvent): void {\n\t\te.stopPropagation()\n\t\tif (this.disabled === false) {\n\t\t\tthis.govClick.emit({\n\t\t\t\tcomponent: ButtonClass.root,\n\t\t\t\toriginalEvent: e,\n\t\t\t\tref: this.host,\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate onFocusHandler(e: FocusEvent) {\n\t\te.stopPropagation()\n\t\tthis.govFocus.emit({\n\t\t\tcomponent: ButtonClass.root,\n\t\t\toriginalEvent: e,\n\t\t\tref: this.host,\n\t\t})\n\t}\n\n\tprivate onBlurHandler(e: FocusEvent) {\n\t\te.stopPropagation()\n\t\tthis.govBlur.emit({\n\t\t\tcomponent: ButtonClass.root,\n\t\t\toriginalEvent: e,\n\t\t\tref: this.host,\n\t\t})\n\t}\n\n\t/**\n\t * Focus button element\n\t */\n\t@Method()\n\tasync setFocus(): Promise<void> {\n\t\tthis.triggerRef.focus()\n\t}\n\n\t/**\n\t * Returns a clickable element instance\n\t */\n\t@Method()\n\tasync getRef() {\n\t\treturn this.triggerRef\n\t}\n\n\t/**\n\t * Validate the Accessibility attributes of the component\n\t */\n\t@Method()\n\tasync validateAccessibility(): Promise<void> {\n\t\tif (this.focusable) {\n\t\t\tvalidateAccessibleLabel(this.triggerRef.getAttribute('aria-label'), this.triggerRef.getAttribute('aria-labelledby'), ButtonClass.root, this.host)\n\t\t}\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["toBool","value","indexOf","Tags","GovButton","constructor","hostRef","this","hydrated","size","expanded","expandedMobile","disabled","nativeType","tab","focusable","inheritedAttributes","h","govHost","host","validateColor","newValue","validateProp","ButtonColors","ButtonClass","root","validateType","ButtonType","validateSize","Sizes","validateNativeType","NativeType","componentDidLoad","attributeObserver","AttributeObserver","attributeName","onAriaAttributeChange","startObserving","ariaAttributes","removeAttribute","Object","assign","disconnectedCallback","_a","stopObserving","componentWillLoad","color","type","inheritAriaAttributes","componentDidRender","canValidateWcagOnRender","delay","validateAccessibility","connectedCallback","render","Tag","href","A","BUTTON","undefined","Host","key","class","classes","ref","el","triggerRef","onClick","onClickHandler","bind","onFocus","onFocusHandler","onBlur","onBlurHandler","id","identifier","target","download","hreflang","rel","name","tabindex","toBoolAttrIfDefined","loading","hasSlot","e","stopPropagation","govClick","emit","component","originalEvent","govFocus","govBlur","setFocus","focus","getRef","validateAccessibleLabel","getAttribute"],"sources":["../../../packages/core/src/utils/bool.utils.ts","../../../packages/core/src/components/gov-button/button/gov-button.tsx"],"sourcesContent":["export function toBool(value: any): boolean {\n\tif (typeof value === 'string') {\n\t\treturn ['true', 'True', 'TRUE', '1'].indexOf(value) !== -1\n\t} else if (typeof value === 'number') {\n\t\treturn value > 0\n\t} else if (typeof value === 'boolean') {\n\t\treturn value\n\t} else {\n\t\treturn value ? true : false\n\t}\n}\n","import {Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch} from \"@stencil/core\"\nimport {validateProp} from \"../../../helpers/Validate/props\"\nimport {\n\tButtonClass,\n\tButtonColors,\n\tButtonColorType,\n\tButtonSizesType,\n\tButtonTargetType,\n\tButtonType,\n\tButtonTypesType,\n\tNativeType,\n\tNativeTypesType,\n} from \"./constants\"\nimport {govHost, toBoolAttrIfDefined} from \"../../../helpers/Dom/template\"\nimport {GovHost} from \"../../../helpers/Dom/template.types\"\nimport {toBool} from \"../../../utils/bool.utils\"\nimport {Sizes} from \"../../../core/constants/sizes\"\nimport {validateAccessibleLabel} from \"../../../helpers/Validate/wcag\"\nimport {canValidateWcagOnRender} from \"../../../helpers/Dom/win\"\nimport {delay} from \"../../../utils/utils\"\nimport {ButtonEvent} from \"./gov-button.types\"\nimport {inheritAriaAttributes} from \"../../../helpers/Accessibility/accessibility\";\nimport {ariaAttributes} from \"../../../helpers/Accessibility/attributes\";\nimport {AttributeObserver, Attributes} from \"../../../helpers/Dom/attribute\";\n\nenum Tags {\n\tA = \"a\",\n\tBUTTON = \"button\",\n}\n\n@Component({\n\ttag: \"gov-button\",\n})\nexport class GovButton {\n\tprivate h: GovHost\n\tprivate triggerRef?: HTMLButtonElement | HTMLLinkElement\n\tprivate attributeObserver: AttributeObserver\n\tprivate hydrated = false\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() host: HTMLGovButtonElement\n\n\t/**\n\t * Style variation of the button\n\t */\n\t@Prop({reflect: true}) readonly color: ButtonColorType\n\t/**\n\t * Button’s size\n\t */\n\t@Prop({reflect: true}) readonly size?: ButtonSizesType = \"m\"\n\t/**\n\t * Button's type\n\t */\n\t@Prop({reflect: true}) readonly type: ButtonTypesType\n\t/**\n\t * Expands the button to fill 100% of the container width\n\t */\n\t@Prop({reflect: true}) readonly expanded: boolean = false\n\t/**\n\t * Expands the button to fill 100% of the container width only on mobile\n\t */\n\t@Prop({reflect: true, attribute: \"expanded-mobile\"}) readonly expandedMobile: boolean = false\n\t/**\n\t * The name of the button, which gets paired with the button's value when submitted as part of a form. Corresponds with the native HTML name attribute\n\t */\n\t@Prop() readonly name: string\n\t/**\n\t * Makes the button component disabled.\n\t * This prevents users from being able to interact with the button, and conveys its inactive state to assistive technologies\n\t */\n\t@Prop({reflect: true}) readonly disabled: boolean = false\n\t/**\n\t * Same as original parameter\n\t * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-type\n\t */\n\t@Prop() readonly nativeType?: NativeTypesType = \"button\"\n\t/**\n\t * Same as original parameter\n\t * @link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-href\n\t */\n\t@Prop() readonly href: string\n\t/**\n\t * Same as original parameter\n\t * @link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-target\n\t */\n\t@Prop() readonly target?: ButtonTargetType\n\t/**\n\t * Same as original parameter\n\t * @link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-download\n\t */\n\t@Prop() readonly download: boolean\n\t/**\n\t * Same as original parameter\n\t * @link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-download\n\t */\n\t@Prop() readonly tab: number = 0\n\t/**\n\t * Same as original parameter\n\t * @link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-hreflang\n\t */\n\t@Prop() readonly hreflang: string\n\t/**\n\t * Same as original parameter\n\t * @link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-referrerpolicy\n\t */\n\t@Prop() readonly referrerpolicy: string\n\t/**\n\t * Same as original parameter\n\t * @link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-rel\n\t */\n\t@Prop() readonly rel: string\n\t/**\n\t * Indicates whether an asynchronous process is running\n\t */\n\t@Prop() readonly loading: string\n\t/**\n\t * Same as original parameter\n\t * @link https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/focusable\n\t */\n\t@Prop() readonly focusable: boolean = true\n\t/**\n\t * Custom button identifier\n\t */\n\t@Prop({attribute: \"identifier\"}) readonly identifier: string\n\t/**\n\t * Emitted when the button click\n\t */\n\t@Event({eventName: \"gov-click\"}) govClick: EventEmitter<ButtonEvent>\n\t/**\n\t * Emitted when the button has focus\n\t */\n\t@Event({eventName: \"gov-focus\"}) govFocus: EventEmitter<ButtonEvent>\n\t/**\n\t * Emitted when the button loses focus\n\t */\n\t@Event({eventName: \"gov-blur\"}) govBlur: EventEmitter<ButtonEvent>\n\n\t@Watch(\"color\")\n\tvalidateColor(newValue: string): void {\n\t\tvalidateProp(ButtonColors, newValue, ButtonClass.root)\n\t}\n\n\t@Watch(\"type\")\n\tvalidateType(newValue: string): void {\n\t\tvalidateProp(ButtonType, newValue, ButtonClass.root)\n\t}\n\n\t@Watch(\"size\")\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(Sizes, newValue, ButtonClass.root)\n\t}\n\n\t@Watch(\"nativeType\")\n\tvalidateNativeType(newValue: string): void {\n\t\tvalidateProp(NativeType, newValue, ButtonClass.root)\n\t}\n\n\t@State() inheritedAttributes: Attributes = {}\n\n\tcomponentDidLoad() {\n\t\tthis.attributeObserver = new AttributeObserver(this.host, (attributeName, newValue) => {\n\t\t\tthis.onAriaAttributeChange(attributeName, newValue);\n\t\t});\n\n\t\tthis.attributeObserver.startObserving(ariaAttributes);\n\t}\n\n\tonAriaAttributeChange(attributeName: string, newValue: string) {\n\t\tthis.host.removeAttribute(attributeName)\n\t\tthis.inheritedAttributes = {...this.inheritedAttributes, [attributeName]: newValue};\n\t}\n\n\tdisconnectedCallback() {\n\t\tthis.attributeObserver?.stopObserving();\n\t}\n\n\tcomponentWillLoad(): void {\n\t\tthis.validateColor(this.color)\n\t\tthis.validateType(this.type)\n\t\tthis.validateSize(this.size)\n\t\tthis.validateNativeType(this.nativeType)\n\t\tthis.inheritedAttributes = inheritAriaAttributes(this.host);\n\t}\n\n\tasync componentDidRender() {\n\t\tif (canValidateWcagOnRender()) {\n\t\t\tawait delay(500)\n\t\t\tawait this.validateAccessibility()\n\t\t}\n\t}\n\n\tconnectedCallback() {\n\t\tthis.hydrated = true\n\t}\n\n\trender() {\n\t\tconst Tag = this.href ? Tags.A : Tags.BUTTON\n\t\tconst nativeType = Tag === Tags.A ? undefined : this.nativeType\n\n\t\treturn (\n\t\t\t<Host size={this.size}\n\t\t\t\t hydrated={this.hydrated}\n\t\t\t\t color={this.color}\n\t\t\t\t class={this.h.classes(ButtonClass.root)}\n\t\t\t\t type={this.type}>\n\t\t\t\t<Tag\n\t\t\t\t\tclass=\"element\"\n\t\t\t\t\tref={el => (this.triggerRef = el as HTMLButtonElement | HTMLLinkElement)}\n\t\t\t\t\tonClick={this.onClickHandler.bind(this)}\n\t\t\t\t\tonFocus={this.onFocusHandler.bind(this)}\n\t\t\t\t\tonBlur={this.onBlurHandler.bind(this)}\n\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\tid={this.identifier}\n\t\t\t\t\thref={this.href}\n\t\t\t\t\ttarget={this.target}\n\t\t\t\t\tdownload={this.download}\n\t\t\t\t\threflang={this.hreflang}\n\t\t\t\t\trel={this.rel}\n\t\t\t\t\tname={this.name}\n\t\t\t\t\ttype={nativeType}\n\t\t\t\t\ttabindex={this.disabled ? \"-1\" : this.tab}\n\t\t\t\t\t{...this.inheritedAttributes}\n\t\t\t\t\taria-disabled={toBoolAttrIfDefined(this.disabled)}\n\t\t\t\t>\n\t\t\t\t\t{toBool(this.loading) && !this.h.hasSlot(\"icon-end\") &&\n\t\t\t\t\t\t<gov-icon name=\"loader\" class=\"gov-spin-animation\" type=\"components\"></gov-icon>}\n\t\t\t\t\t{this.h.hasSlot(\"icon-start\") && <slot name=\"icon-start\"></slot>}\n\t\t\t\t\t<slot/>\n\t\t\t\t\t{this.h.hasSlot(\"icon-end\") && <slot name=\"icon-end\"></slot>}\n\t\t\t\t\t{toBool(this.loading) && this.h.hasSlot(\"icon-end\") &&\n\t\t\t\t\t\t<gov-icon name=\"loader\" class=\"gov-spin-animation\" type=\"components\"></gov-icon>}\n\t\t\t\t</Tag>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onClickHandler(e: PointerEvent): void {\n\t\te.stopPropagation()\n\t\tif (this.disabled === false) {\n\t\t\tthis.govClick.emit({\n\t\t\t\tcomponent: ButtonClass.root,\n\t\t\t\toriginalEvent: e,\n\t\t\t\tref: this.host,\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate onFocusHandler(e: FocusEvent) {\n\t\te.stopPropagation()\n\t\tthis.govFocus.emit({\n\t\t\tcomponent: ButtonClass.root,\n\t\t\toriginalEvent: e,\n\t\t\tref: this.host,\n\t\t})\n\t}\n\n\tprivate onBlurHandler(e: FocusEvent) {\n\t\te.stopPropagation()\n\t\tthis.govBlur.emit({\n\t\t\tcomponent: ButtonClass.root,\n\t\t\toriginalEvent: e,\n\t\t\tref: this.host,\n\t\t})\n\t}\n\n\t/**\n\t * Focus button element\n\t */\n\t@Method()\n\tasync setFocus(): Promise<void> {\n\t\tthis.triggerRef.focus()\n\t}\n\n\t/**\n\t * Returns a clickable element instance\n\t */\n\t@Method()\n\tasync getRef() {\n\t\treturn this.triggerRef\n\t}\n\n\t/**\n\t * Validate the Accessibility attributes of the component\n\t */\n\t@Method()\n\tasync validateAccessibility(): Promise<void> {\n\t\tif (this.focusable) {\n\t\t\tvalidateAccessibleLabel(this.triggerRef.getAttribute('aria-label'), this.triggerRef.getAttribute('aria-labelledby'), ButtonClass.root, this.host)\n\t\t}\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as t,h as s,H as a,g as e}from"./p-
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as t,h as s,H as a,g as e}from"./p-B8TR1oqt.js";import{p as i}from"./p-CQvUntGY.js";import{S as o}from"./p-BcQO4NH2.js";import{g as r}from"./p-CoD1xawt.js";import{v as c}from"./p-NOJjz9dT.js";import{a as d,b as n}from"./p-Cx3bEC5v.js";import"./p-CgDnDrq5.js";i(o,["_S","_M","_L"]);var m;(function(t){t["HORIZONTAL"]="horizontal";t["VERTICAL"]="vertical"})(m||(m={}));var p;(function(t){t["LEFT"]="left";t["CENTER"]="center";t["RIGHT"]="right"})(p||(p={}));const h={root:"gov-empty",content:"gov-empty__content"};const f=class{constructor(s){t(this,s);this.size="m";this.direction="vertical";this.align="left";this.h=r(this.host)}validateSize(t){c(n,t,d.root)}componentWillLoad(){this.validateSize(this.size)}render(){return s(a,{key:"2c08dd933beb17aa5695fd3c31f1a2981d553c6b",class:this.h.classes(h.root),size:this.size,direction:this.direction,align:this.align},this.h.hasSlot("icon")&&s("slot",{key:"dae092adf1a711edea387d531ecdd4f1afda0ba1",name:"icon"}),s("div",{key:"2487457ad864261648a488b513118785485ae23d",class:h.content},s("slot",{key:"0cb9198b589954b652c41cde4cf46e82d069d856",name:"headline"}),s("slot",{key:"d8935cc514b223f0ab536d8d9b7c5d8a23c2126a"})))}get host(){return e(this)}static get watchers(){return{size:[{validateSize:0}]}}};export{f as gov_empty};
|
|
2
|
+
//# sourceMappingURL=p-8ddb6dc6.entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["pick","Sizes","EmptyDirection","EmptyAlign","EmptyClass","root","content","GovEmpty","constructor","hostRef","this","size","direction","align","h","govHost","host","validateSize","newValue","validateProp","AccordionSizes","AccordionClass","componentWillLoad","render","Host","key","class","classes","hasSlot","name"],"sources":["../../../packages/core/src/components/gov-empty/constants.ts","../../../packages/core/src/components/gov-empty/gov-empty.tsx"],"sourcesContent":["import {pick} from \"../../utils/utils\";\nimport {Sizes} from \"../../core/constants/sizes\";\nimport {ValueOf} from \"../../types/interfaces\";\n\nexport const EmptySizes = pick(Sizes, ['_S', '_M', '_L'])\nexport type EmptySizesType = `${ValueOf<typeof EmptySizes>}`\n\nexport enum EmptyDirection {\n\tHORIZONTAL = 'horizontal',\n\tVERTICAL = 'vertical',\n}\nexport type EmptyDirectionType = `${ValueOf<typeof EmptyDirection>}`\n\nexport enum EmptyAlign {\n\tLEFT = 'left',\n\tCENTER = 'center',\n\tRIGHT = 'right',\n}\nexport type EmptyAlignType = `${ValueOf<typeof EmptyAlign>}`\n\nexport const EmptyClass = {\n\troot: 'gov-empty',\n\tcontent: 'gov-empty__content',\n}\n","import {Component, Element, Host, h, Prop, Watch} from '@stencil/core'\nimport {EmptyAlignType, EmptyClass, EmptyDirectionType, EmptySizesType} from './constants'\nimport { govHost } from '../../helpers/Dom/template'\nimport { GovHost } from '../../helpers/Dom/template.types'\nimport {validateProp} from \"../../helpers/Validate/props\";\nimport {AccordionClass, AccordionSizes} from \"../gov-accordion/constants\";\n\n@Component({\n\ttag: 'gov-empty',\n})\nexport class GovEmpty {\n\tprivate h: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() host: HTMLGovEmptyElement\n\t/**\n\t * Element size.\n\t */\n\t@Prop() readonly size?: EmptySizesType = 'm'\n\t/**\n\t * Element direction\n\t */\n\t@Prop() readonly direction: EmptyDirectionType = \"vertical\"\n\t/**\n\t * Element alignment.\n\t */\n\t@Prop() readonly align?: EmptyAlignType = \"left\"\n\n\t@Watch('size')\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(AccordionSizes, newValue, AccordionClass.root)\n\t}\n\n\tcomponentWillLoad(): void {\n\t\tthis.validateSize(this.size)\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={this.h.classes(EmptyClass.root)}\n\t\t\t\t size={this.size}\n\t\t\t\t direction={this.direction}\n\t\t\t\t align={this.align}>\n\t\t\t\t{this.h.hasSlot('icon') && (\n\t\t\t\t\t<slot name=\"icon\" />\n\t\t\t\t)}\n\t\t\t\t<div class={EmptyClass.content}>\n\t\t\t\t\t<slot name=\"headline\" />\n\t\t\t\t\t<slot />\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n"],"mappings":"4QAI0BA,EAAKC,EAAO,CAAC,KAAM,KAAM,OAGnD,IAAYC,GAAZ,SAAYA,GACXA,EAAA,2BACAA,EAAA,sBACA,EAHD,CAAYA,
|
|
1
|
+
{"version":3,"names":["pick","Sizes","EmptyDirection","EmptyAlign","EmptyClass","root","content","GovEmpty","constructor","hostRef","this","size","direction","align","h","govHost","host","validateSize","newValue","validateProp","AccordionSizes","AccordionClass","componentWillLoad","render","Host","key","class","classes","hasSlot","name"],"sources":["../../../packages/core/src/components/gov-empty/constants.ts","../../../packages/core/src/components/gov-empty/gov-empty.tsx"],"sourcesContent":["import {pick} from \"../../utils/utils\";\nimport {Sizes} from \"../../core/constants/sizes\";\nimport {ValueOf} from \"../../types/interfaces\";\n\nexport const EmptySizes = pick(Sizes, ['_S', '_M', '_L'])\nexport type EmptySizesType = `${ValueOf<typeof EmptySizes>}`\n\nexport enum EmptyDirection {\n\tHORIZONTAL = 'horizontal',\n\tVERTICAL = 'vertical',\n}\nexport type EmptyDirectionType = `${ValueOf<typeof EmptyDirection>}`\n\nexport enum EmptyAlign {\n\tLEFT = 'left',\n\tCENTER = 'center',\n\tRIGHT = 'right',\n}\nexport type EmptyAlignType = `${ValueOf<typeof EmptyAlign>}`\n\nexport const EmptyClass = {\n\troot: 'gov-empty',\n\tcontent: 'gov-empty__content',\n}\n","import {Component, Element, Host, h, Prop, Watch} from '@stencil/core'\nimport {EmptyAlignType, EmptyClass, EmptyDirectionType, EmptySizesType} from './constants'\nimport { govHost } from '../../helpers/Dom/template'\nimport { GovHost } from '../../helpers/Dom/template.types'\nimport {validateProp} from \"../../helpers/Validate/props\";\nimport {AccordionClass, AccordionSizes} from \"../gov-accordion/constants\";\n\n@Component({\n\ttag: 'gov-empty',\n})\nexport class GovEmpty {\n\tprivate h: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() host: HTMLGovEmptyElement\n\t/**\n\t * Element size.\n\t */\n\t@Prop() readonly size?: EmptySizesType = 'm'\n\t/**\n\t * Element direction\n\t */\n\t@Prop() readonly direction: EmptyDirectionType = \"vertical\"\n\t/**\n\t * Element alignment.\n\t */\n\t@Prop() readonly align?: EmptyAlignType = \"left\"\n\n\t@Watch('size')\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(AccordionSizes, newValue, AccordionClass.root)\n\t}\n\n\tcomponentWillLoad(): void {\n\t\tthis.validateSize(this.size)\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={this.h.classes(EmptyClass.root)}\n\t\t\t\t size={this.size}\n\t\t\t\t direction={this.direction}\n\t\t\t\t align={this.align}>\n\t\t\t\t{this.h.hasSlot('icon') && (\n\t\t\t\t\t<slot name=\"icon\" />\n\t\t\t\t)}\n\t\t\t\t<div class={EmptyClass.content}>\n\t\t\t\t\t<slot name=\"headline\" />\n\t\t\t\t\t<slot />\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n"],"mappings":"4QAI0BA,EAAKC,EAAO,CAAC,KAAM,KAAM,OAGnD,IAAYC,GAAZ,SAAYA,GACXA,EAAA,2BACAA,EAAA,sBACA,EAHD,CAAYA,MAAc,KAM1B,IAAYC,GAAZ,SAAYA,GACXA,EAAA,eACAA,EAAA,mBACAA,EAAA,gBACA,EAJD,CAAYA,MAAU,KAOf,MAAMC,EAAa,CACzBC,KAAM,YACNC,QAAS,sB,MCZGC,EAAQ,MAGpB,WAAAC,CAAAC,G,UAQiBC,KAAAC,KAAwB,IAIxBD,KAAAE,UAAgC,WAIhCF,KAAAG,MAAyB,OAfzCH,KAAKI,EAAIC,EAAQL,KAAKM,KACtB,CAiBD,YAAAC,CAAaC,GACZC,EAAaC,EAAgBF,EAAUG,EAAehB,K,CAGvD,iBAAAiB,GACCZ,KAAKO,aAAaP,KAAKC,K,CAGxB,MAAAY,GACC,OACCT,EAACU,EAAI,CAAAC,IAAA,2CAACC,MAAOhB,KAAKI,EAAEa,QAAQvB,EAAWC,MACpCM,KAAMD,KAAKC,KACXC,UAAWF,KAAKE,UAChBC,MAAOH,KAAKG,OACbH,KAAKI,EAAEc,QAAQ,SACfd,EAAA,QAAAW,IAAA,2CAAMI,KAAK,SAEZf,EAAA,OAAAW,IAAA,2CAAKC,MAAOtB,EAAWE,SACtBQ,EAAA,QAAAW,IAAA,2CAAMI,KAAK,aACXf,EAAA,QAAAW,IAAA,8C","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as t,c as i,h as s,H as e,g as a}from"./p-
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as t,c as i,h as s,H as e,g as a}from"./p-B8TR1oqt.js";import{g as o,a as c,c as d}from"./p-CoD1xawt.js";import{c as l}from"./p-CgDnDrq5.js";import{a as h}from"./p-CDIRBJsi.js";import{c as f}from"./p-vN03FcXN.js";import{t as n}from"./p-Cjg0wpDG.js";import"./p-CQvUntGY.js";import"./p-DNztiAH0.js";const b={root:"gov-dialog",dialog:"gov-dialog__dialog",inner:"gov-dialog__inner",header:"gov-dialog__header",title:"gov-dialog__title",content:"gov-dialog__content",close:"gov-dialog__close",footer:"gov-dialog__footer",bodyFix:"body-fixed"};function r(t){if(!t)return[];return Array.from(t.querySelectorAll('a[href], button:not([disabled]), textarea, input:not([type="hidden"]), select, [tabindex]:not([tabindex="-1"])'))}const g=class{constructor(s){t(this,s);this.govClose=i(this,"gov-close");this.hydrated=false;this.open=false;this.blockClose=false;this.blockBackdropClose=false;this.role="dialog";this.labelTag="h2";this.accessibleCloseLabel="Zavřít okno";this.h=o(this.host);this.labelId=f("GovDialogLabel");this.contentId=f("GovDialogContent")}watchOpen(t){var i;this.open=t;this.setFocus().finally();if(!t){(i=this.lastActiveElementRef)===null||i===void 0?void 0:i.focus()}else{this.focusTrap()}}showDialog(){this.open=true;document.body.classList.add(b.bodyFix)}hideDialog(){this.open=false;document.body.classList.remove(b.bodyFix)}async componentDidRender(){if(l()){n((()=>this.validateAccessibility()))}if(this.open){this.showDialog()}else{this.hideDialog()}}focusTrap(){var t;if(open&&this.dialogRef){this.lastActiveElementRef=document.activeElement;const t=r(this.dialogRef);if(t.length){t[0].focus()}const i=t=>{if(t.key==="Tab"&&this.dialogRef){const i=r(this.dialogRef);const s=i[0];const e=i[i.length-1];if(!t.shiftKey&&document.activeElement===e){t.preventDefault();s.focus()}if(t.shiftKey&&document.activeElement===s){t.preventDefault();e.focus()}}if(t.key==="Escape"){if(this.blockClose===false){this.hideDialog();this.govClose.emit()}}};document.addEventListener("keydown",i)}else{(t=this.lastActiveElementRef)===null||t===void 0?void 0:t.focus()}}connectedCallback(){this.hydrated=true}disconnectedCallback(){document.body.classList.remove(b.bodyFix)}render(){return s(e,{key:"1b4a7fbbf75675be26754a29aeadf8943af6e372",class:this.h.classes(b.root),open:this.open,hydrated:this.hydrated},s("dialog",{key:"75df8bc2428485b6bc5a2ed21f334ff897a26f19",ref:t=>this.dialogRef=t,class:b.dialog,hidden:!this.open,tabindex:d(this.open),open:this.open,"aria-modal":"true","aria-hidden":c(!this.open),"aria-labelledby":this.accessibleLabelledBy||this.labelId,"aria-describedby":this.accessibleDescribedBy||this.contentId,role:this.role},s("div",{key:"7a8c1ff8172fcb3e2e6ed342baf38018b7603b4c",class:b.inner},s("div",{key:"b84fec4ad89efe420beede090a20bfdff6f47457",class:b.header},this.h.hasSlot("icon")&&s("span",{key:"931cc48c446af90837a58bd83bfc30e9c54ad787"},s("slot",{key:"088523bcc3debf0144195c21faa89f9f5ab8dd31",name:"icon"})),this.h.hasSlot("title")&&s("span",{key:"d38ca38a8b269f5a4f18ea2c8b0d833ac1614f43",class:b.title,id:this.labelId},s("slot",{key:"7bdc841090ba66fb9dab50d3ae1af8308fd4dddb",name:"title"})),s("gov-button",{key:"89dddfec62b770915b1e841b65a3727a399ac454",ref:t=>this.closeCtaRef=t,disabled:this.blockClose,class:b.close,color:"primary","aria-label":this.accessibleCloseLabel,"aria-labelledby":this.accessibleCloseLabelledBy,type:"base",size:"m","on-gov-click":this.onCloseHandler.bind(this)},s("gov-icon",{key:"b4446a4fb10351aa2c263c1e09c7f821096e780f",slot:"icon-start",name:"x-lg",type:"components"}))),s("div",{key:"5c2a71245e7cd6e5ffebc317b79c16b299de1674",class:b.content,id:this.contentId},s("slot",{key:"d2bb335499547d7799316f2c9016569375eed7f4"})),this.h.hasSlot("footer")&&s("div",{key:"154d7917e898162f0fdaad2fa4007fccdec820c6",class:b.footer},s("slot",{key:"45272652b42b67f1f1bc88f256c20eba35fe1f69",name:"footer"})))),this.open?s("gov-backdrop",{disabled:this.blockBackdropClose,"aria-label":this.accessibleCloseLabel,"aria-labelled-by":this.accessibleCloseLabelledBy,"on-gov-click":this.onCloseHandler.bind(this)}):null)}onCloseHandler(t){t.stopPropagation();t.preventDefault();if(this.blockClose===false){this.hideDialog();this.govClose.emit(t)}}async setFocus(){if(this.open&&this.closeCtaRef){this.closeCtaRef.setFocus().catch()}}async validateAccessibility(){h(this.accessibleLabelledBy,"accessible-labelled-by",b.root);h(this.accessibleDescribedBy,"accessible-described-by",b.root)}get host(){return a(this)}static get watchers(){return{open:[{watchOpen:0}]}}};export{g as gov_dialog};
|
|
2
|
+
//# sourceMappingURL=p-90cc2ddb.entry.js.map
|