@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,2 +1,2 @@
|
|
|
1
|
-
import{r as t,c as s,h as i,H as e,g as a}from"./p-
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as t,c as s,h as i,H as e,g as a}from"./p-B8TR1oqt.js";import{F as o}from"./p-5itQzbON.js";import{v as n}from"./p-NOJjz9dT.js";import{S as r}from"./p-BcQO4NH2.js";import{C as h}from"./p-U40vKHrs.js";import{p as l}from"./p-CQvUntGY.js";import{g as c,p,t as g}from"./p-CoD1xawt.js";import{c as m}from"./p-vN03FcXN.js";import{c as d}from"./p-Ccwpa1ck.js";import{A as u,a as v}from"./p-Bz_RzYFb.js";import{i as f}from"./p-CzXeijOj.js";import"./p-CgDnDrq5.js";import"./p-DNztiAH0.js";const j=l(r,["_S","_M"]);const b=l(h,["PRIMARY","NEUTRAL"]);var _;(function(t){t["BUTTON"]="button";t["SELECT"]="select"})(_||(_={}));const z={root:"gov-pagination",list:"gov-pagination__list",item:"gov-pagination__item",itemArrow:"gov-pagination__item--arrow",itemMore:"gov-pagination__item--more",itemSelect:"gov-pagination__item--select",inner:"gov-pagination__inner",arrow:"gov-pagination__arrow"};function y(t,s=1,i=10,e=10){const a=Math.ceil(t/i);if(s<1){s=1}else if(s>a){s=a}let o,n;if(a<=e){o=1;n=a}else{const t=Math.floor(e/2);const i=Math.ceil(e/2)-1;if(s<=t){o=1;n=e}else if(s+i>=a){o=a-e+1;n=a}else{o=s-t;n=s+i}}const r=(s-1)*i;const h=Math.min(r+i-1,t-1);const l=Array.from(Array(n+1-o).keys()).map((t=>o+t));return{totalItems:t,currentPage:s,pageSize:i,totalPages:a,startPage:o,endPage:n,startIndex:r,endIndex:h,pages:l}}const P=class{constructor(i){t(this,i);this.govPage=s(this,"gov-page");this.type="button";this.current=1;this.total=0;this.size="m";this.color="primary";this.pageSize=10;this.maxPages=5;this.accessibleSelectLabel="Vybrat stranu";this.accessiblePageLabel="Strana";this.labelPrev="Přejít o stranu zpět";this.labelStart="Přejít na začátek";this.labelNext="Přejít na další stranu";this.labelEnd="Přejít na konec";this.inheritedAttributes={};this.h=c(this.host);this.pageSelectId=m("GovPageSelect");this.selectId=m("GovSelect")}validateType(t){n(_,t,z.root)}validateSize(t){n(j,t,z.root)}validateColor(t){n(b,t,z.root)}recalculate(){this.recalculatePagination(this.current)}componentDidLoad(){this.attributeObserver=new u(this.host,((t,s)=>{this.onAriaAttributeChange(t,s)}));this.attributeObserver.startObserving(v)}componentWillLoad(){this.recalculatePagination(this.current);this.validateSize(this.size);this.validateColor(this.color);this.inheritedAttributes=f(this.host)}disconnectedCallback(){var t;(t=this.attributeObserver)===null||t===void 0?void 0:t.stopObserving()}onAriaAttributeChange(t,s){this.host.removeAttribute(t);this.inheritedAttributes=Object.assign(Object.assign({},this.inheritedAttributes),{[t]:s})}recalculatePagination(t){this.pagination=y(this.total,t,this.pageSize,this.maxPages)}isActivePageClass(t,s){if(this.pagination.currentPage===s){return t+" is-active"}else{return t}}prepareLinkUrl(t){if(this.link){return String(this.link).replace("{PAGE}",String(t))}return undefined}resetSelectValue(){if(this.spreadSelectRef){this.spreadSelectRef.getRef().then((t=>{t.value="..."}))}}render(){const t=(t,s,e)=>{const a=t===-1;const o=g(this.pagination.currentPage===t?true:undefined);return i("gov-button",{href:this.prepareLinkUrl(t),color:this.color,size:this.size,type:"base",disabled:a,"on-gov-click":s=>this.onClickHandler(s,t),"aria-label":e?e:t>-1?`${this.accessiblePageLabel} ${t}`:undefined,"aria-current":o,class:z.inner,focusable:true},s)};return i(e,{class:this.h.classes(z.root),type:this.type,color:this.color,size:this.size},i("nav",Object.assign({},this.inheritedAttributes),i("ul",{class:z.list},i("li",{class:p([z.item,z.itemArrow])},t(this.pagination.currentPage>1?1:-1,i("gov-icon",{class:z.arrow,name:"chevron-double-left",type:"components"}),this.labelStart)),i("li",{class:p([z.item,z.itemArrow])},t(this.pagination.startPage<this.pagination.currentPage?this.pagination.currentPage-1:-1,i("gov-icon",{class:z.arrow,name:"chevron-left",type:"components"}),this.labelPrev)),this.type=="select"?i("li",{class:p([z.item,z.itemSelect])},i("span",{class:z.inner},i("span",{id:this.pageSelectId,hidden:true},this.accessibleSelectLabel),i("gov-form-select",{size:this.size,color:this.color,identifier:this.selectIdentifier||this.selectId,"aria-labelledby":this.pageSelectId,"on-gov-change":this.onSelectHandler.bind(this)},d(1,this.pagination.totalPages).map((t=>i("option",{value:t,selected:this.pagination.currentPage===t},t)))))):i(o,null,this.pagination.pages.map((s=>i("li",{class:this.isActivePageClass(z.item,s)},t(s,s,"")))),this.pagination.totalPages?i("li",{class:p([z.item,z.itemMore])},i("span",{class:z.inner},i("span",{id:this.pageSelectId,hidden:true},this.accessibleSelectLabel),i("gov-form-select",{size:this.size,color:this.color,identifier:this.selectIdentifier||this.selectId,"aria-labelledby":this.pageSelectId,ref:t=>this.spreadSelectRef=t,"on-gov-change":this.onSelectHandler.bind(this)},i("option",{selected:true,hidden:true},"..."),d(1,this.pagination.totalPages).map((t=>i("option",{value:t,selected:false},t)))))):null),i("li",{class:p([z.item,z.itemArrow])},t(this.pagination.totalPages>this.pagination.currentPage?this.pagination.currentPage+1:-1,i("gov-icon",{class:z.arrow,name:"chevron-right",type:"components"}),this.labelNext)),i("li",{class:p([z.item,z.itemArrow])},t(this.pagination.totalPages>this.pagination.currentPage?this.pagination.totalPages:-1,i("gov-icon",{class:z.arrow,name:"chevron-double-right",type:"components"}),this.labelEnd)))))}onClickHandler(t,s){t.stopPropagation();this.recalculatePagination(s);this.govPage.emit({component:z.root,pagination:this.pagination})}onSelectHandler(t){t.stopPropagation();const s=t.detail.value;const i=parseInt(s);this.resetSelectValue();if(isNaN(i)===false){this.recalculatePagination(i);if(this.link){window.location.href=this.prepareLinkUrl(i)}else{this.govPage.emit({component:z.root,pagination:this.pagination})}}}get host(){return a(this)}static get watchers(){return{type:[{validateType:0}],size:[{validateSize:0}],color:[{validateColor:0}],current:[{recalculate:0}],total:[{recalculate:0}],pageSize:[{recalculate:0}],maxPages:[{recalculate:0}]}}};export{P as gov_pagination};
|
|
2
|
+
//# sourceMappingURL=p-3ebbe75a.entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PaginationSizes","pick","Sizes","PaginationColors","Colors","PaginationTypes","PaginationClass","root","list","item","itemArrow","itemMore","itemSelect","inner","arrow","paginate","totalItems","currentPage","pageSize","maxPages","totalPages","Math","ceil","startPage","endPage","maxPagesBeforeCurrentPage","floor","maxPagesAfterCurrentPage","startIndex","endIndex","min","pages","Array","from","keys","map","i","GovPagination","constructor","hostRef","this","type","current","total","size","color","accessibleSelectLabel","accessiblePageLabel","labelPrev","labelStart","labelNext","labelEnd","inheritedAttributes","h","govHost","host","pageSelectId","createID","selectId","validateType","newValue","validateProp","validateSize","validateColor","recalculate","recalculatePagination","componentDidLoad","attributeObserver","AttributeObserver","attributeName","onAriaAttributeChange","startObserving","ariaAttributes","componentWillLoad","inheritAriaAttributes","disconnectedCallback","_a","stopObserving","removeAttribute","Object","assign","pagination","isActivePageClass","originalClass","page","prepareLinkUrl","link","String","replace","undefined","resetSelectValue","spreadSelectRef","getRef","then","el","value","render","pageResolver","content","description","isDisabled","ariaCurrent","toBoolAttrIfDefined","href","disabled","e","onClickHandler","class","focusable","Host","classes","prepareClasses","name","id","hidden","identifier","selectIdentifier","onSelectHandler","bind","createArrayRange","selected","Fragment","ref","stopPropagation","govPage","emit","component","detail","parseInt","isNaN","window","location"],"sources":["../../../packages/core/src/components/gov-pagination/constants.ts","../../../packages/core/src/components/gov-pagination/pagination.ts","../../../packages/core/src/components/gov-pagination/gov-pagination.tsx"],"sourcesContent":["import { Sizes } from '../../core/constants/sizes'\nimport { Colors } from '../../core/constants/colors'\nimport { pick } from '../../utils/utils'\nimport { ValueOf } from '../../types/interfaces'\n\nexport const PaginationSizes = pick(Sizes, ['_S', '_M'])\nexport type PaginationSizeType = `${ValueOf<typeof PaginationSizes>}`\n\nexport const PaginationColors = pick(Colors, ['PRIMARY', 'NEUTRAL'])\nexport type PaginationColorType = `${ValueOf<typeof PaginationColors>}`\n\nexport enum PaginationTypes {\n\tBUTTON = 'button',\n\tSELECT = 'select',\n}\nexport type PaginationType = `${ValueOf<typeof PaginationTypes>}`\n\nexport const PaginationClass = {\n\troot: 'gov-pagination',\n\tlist: 'gov-pagination__list',\n\titem: 'gov-pagination__item',\n\titemArrow: 'gov-pagination__item--arrow',\n\titemMore: 'gov-pagination__item--more',\n\titemSelect: 'gov-pagination__item--select',\n\tinner: 'gov-pagination__inner',\n\tarrow: 'gov-pagination__arrow',\n}\n","export interface Pagination {\n\ttotalItems: number\n\tcurrentPage: number\n\tpageSize: number\n\ttotalPages: number\n\tstartPage: number\n\tendPage: number\n\tstartIndex: number\n\tendIndex: number\n\tpages: number[]\n}\n\nexport function paginate(totalItems: number, currentPage = 1, pageSize = 10, maxPages = 10): Pagination {\n\t// calculate total pages\n\tconst totalPages = Math.ceil(totalItems / pageSize)\n\n\t// ensure current page isn't out of range\n\tif (currentPage < 1) {\n\t\tcurrentPage = 1\n\t} else if (currentPage > totalPages) {\n\t\tcurrentPage = totalPages\n\t}\n\n\tlet startPage: number, endPage: number\n\tif (totalPages <= maxPages) {\n\t\t// total pages less than max so show all pages\n\t\tstartPage = 1\n\t\tendPage = totalPages\n\t} else {\n\t\t// total pages more than max so calculate start and end pages\n\t\tconst maxPagesBeforeCurrentPage = Math.floor(maxPages / 2)\n\t\tconst maxPagesAfterCurrentPage = Math.ceil(maxPages / 2) - 1\n\t\tif (currentPage <= maxPagesBeforeCurrentPage) {\n\t\t\t// current page near the start\n\t\t\tstartPage = 1\n\t\t\tendPage = maxPages\n\t\t} else if (currentPage + maxPagesAfterCurrentPage >= totalPages) {\n\t\t\t// current page near the end\n\t\t\tstartPage = totalPages - maxPages + 1\n\t\t\tendPage = totalPages\n\t\t} else {\n\t\t\t// current page somewhere in the middle\n\t\t\tstartPage = currentPage - maxPagesBeforeCurrentPage\n\t\t\tendPage = currentPage + maxPagesAfterCurrentPage\n\t\t}\n\t}\n\n\t// calculate start and end item indexes\n\tconst startIndex = (currentPage - 1) * pageSize\n\tconst endIndex = Math.min(startIndex + pageSize - 1, totalItems - 1)\n\n\t// create an array of pages to ng-repeat in the pager control\n\tconst pages = Array.from(Array(endPage + 1 - startPage).keys()).map(i => startPage + i)\n\n\t// return object with all pager properties required by the view\n\treturn {\n\t\ttotalItems: totalItems,\n\t\tcurrentPage: currentPage,\n\t\tpageSize: pageSize,\n\t\ttotalPages: totalPages,\n\t\tstartPage: startPage,\n\t\tendPage: endPage,\n\t\tstartIndex: startIndex,\n\t\tendIndex: endIndex,\n\t\tpages: pages,\n\t}\n}\n","import Fragment from \"../../helpers/Fragment\"\nimport {Component, Element, Event, EventEmitter, h, Host, Prop, State, Watch} from \"@stencil/core\"\nimport {validateProp} from \"../../helpers/Validate/props\"\nimport {\n\tPaginationClass,\n\tPaginationColors,\n\tPaginationColorType,\n\tPaginationSizes,\n\tPaginationSizeType,\n\tPaginationType,\n\tPaginationTypes,\n} from \"./constants\"\nimport {govHost, prepareClasses, toBoolAttrIfDefined} from \"../../helpers/Dom/template\"\nimport {paginate, Pagination} from \"./pagination\"\nimport {createID} from \"../../utils/string.utils\"\nimport {GovHost} from \"../../helpers/Dom/template.types\"\nimport {createArrayRange} from \"../../utils/array.utils\"\nimport {FormSelectEvent} from \"../gov-form/select/gov-form-select.types\"\nimport {PaginationEvent} from \"./gov-pagination.types\"\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-pagination\",\n})\nexport class GovPagination {\n\tprivate h: GovHost\n\tprivate readonly pageSelectId: string\n\tprivate readonly selectId: string\n\n\tprivate spreadSelectRef?: HTMLGovFormSelectElement\n\tprivate attributeObserver: AttributeObserver\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.pageSelectId = createID(\"GovPageSelect\")\n\t\tthis.selectId = createID(\"GovSelect\")\n\t}\n\n\t@Element() readonly host: HTMLGovPaginationElement\n\t/**\n\t * Pagination type\n\t */\n\t@Prop() readonly type: PaginationType = \"button\"\n\t/**\n\t * Currently displayed page\n\t */\n\t@Prop() readonly current: number = 1\n\t/**\n\t * Total count of entries\n\t */\n\t@Prop() readonly total: number = 0\n\t/**\n\t * Custom select identifier.\n\t */\n\t@Prop({attribute: 'select-identifier'}) readonly selectIdentifier: string\n\t/**\n\t * Pagination's size\n\t */\n\t@Prop() readonly size?: PaginationSizeType = \"m\"\n\t/**\n\t * Style variation of the pagination.\n\t */\n\t@Prop() readonly color?: PaginationColorType = \"primary\"\n\t/**\n\t * Maximum number of entries per page\n\t */\n\t@Prop({attribute: \"page-size\"}) readonly pageSize: number = 10\n\t/**\n\t * Maximum pages displayed for selection\n\t */\n\t@Prop({attribute: \"max-pages\"}) readonly maxPages: number = 5\n\t/**\n\t * Setting a link to redirect to a given page.\n\t * The {PAGE} wildcard can be used in the link to replace the page number.\n\t * Note that in the case of paging through a link, it is always necessary to send to the component the current page where the user is.\n\t */\n\t@Prop() readonly link: string\n\t/**\n\t * Adds accessible label for the page select\n\t */\n\t@Prop({attribute: \"accessible-select-label\"}) readonly accessibleSelectLabel: string = \"Vybrat stranu\"\n\t/**\n\t * Adds accessible label for the page item\n\t */\n\t@Prop({attribute: \"accessible-page-label\"}) readonly accessiblePageLabel: string = \"Strana\"\n\t/**\n\t * Description of the possibility to go back one page\n\t */\n\t@Prop({attribute: \"label-prev\"}) readonly labelPrev = 'Přejít o stranu zpět'\n\t/**\n\t * Description of the option to go to the top of paging\n\t */\n\t@Prop({attribute: \"label-start\"}) readonly labelStart = 'Přejít na začátek'\n\t/**\n\t * Description of the option to go to the end of paging\n\t */\n\t@Prop({attribute: \"label-next\"}) readonly labelNext = 'Přejít na další stranu'\n\t/**\n\t * Description of the option to move one page forward\n\t */\n\t@Prop({attribute: \"label-end\"}) readonly labelEnd = 'Přejít na konec'\n\t/**\n\t * Event called when changing the page with the current setting of the whole paging\n\t */\n\t@Event({eventName: \"gov-page\"}) govPage: EventEmitter<PaginationEvent>\n\n\t@State() pagination: Pagination\n\t@State() inheritedAttributes: Attributes = {}\n\n\t@Watch(\"type\")\n\tvalidateType(newValue: string): void {\n\t\tvalidateProp(PaginationTypes, newValue, PaginationClass.root)\n\t}\n\n\t@Watch(\"size\")\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(PaginationSizes, newValue, PaginationClass.root)\n\t}\n\n\t@Watch(\"color\")\n\tvalidateColor(newValue: string): void {\n\t\tvalidateProp(PaginationColors, newValue, PaginationClass.root)\n\t}\n\n\t@Watch(\"current\")\n\t@Watch(\"total\")\n\t@Watch(\"pageSize\")\n\t@Watch(\"maxPages\")\n\trecalculate(): void {\n\t\tthis.recalculatePagination(this.current)\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.recalculatePagination(this.current)\n\t\tthis.validateSize(this.size)\n\t\tthis.validateColor(this.color)\n\t\tthis.inheritedAttributes = inheritAriaAttributes(this.host);\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 recalculatePagination(currentPage: number) {\n\t\tthis.pagination = paginate(this.total, currentPage, this.pageSize, this.maxPages)\n\t}\n\n\tprivate isActivePageClass(originalClass: string, page: number) {\n\t\tif (this.pagination.currentPage === page) {\n\t\t\treturn originalClass + \" is-active\"\n\t\t} else {\n\t\t\treturn originalClass\n\t\t}\n\t}\n\n\tprivate prepareLinkUrl(page: number) {\n\t\tif (this.link) {\n\t\t\treturn String(this.link).replace(\"{PAGE}\", String(page))\n\t\t}\n\t\treturn undefined\n\t}\n\n\tprivate resetSelectValue() {\n\t\tif (this.spreadSelectRef) {\n\t\t\tthis.spreadSelectRef.getRef()\n\t\t\t\t.then((el: HTMLSelectElement) => {\n\t\t\t\t\tel.value = '...'\n\t\t\t\t})\n\t\t}\n\t}\n\n\trender() {\n\t\tconst pageResolver = (page: number, content: any, description: string) => {\n\t\t\tconst isDisabled = page === -1\n\t\t\tconst ariaCurrent = toBoolAttrIfDefined(this.pagination.currentPage === page ? true : undefined)\n\t\t\treturn (\n\t\t\t\t<gov-button\n\t\t\t\t\thref={this.prepareLinkUrl(page)}\n\t\t\t\t\tcolor={this.color}\n\t\t\t\t\tsize={this.size}\n\t\t\t\t\ttype=\"base\"\n\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\ton-gov-click={(e) => this.onClickHandler(e, page)}\n\t\t\t\t\taria-label={description ? description : page > -1 ? `${this.accessiblePageLabel} ${page}` : undefined}\n\t\t\t\t\taria-current={ariaCurrent}\n\t\t\t\t\tclass={PaginationClass.inner}\n\t\t\t\t\tfocusable={true}>\n\t\t\t\t\t{content}\n\t\t\t\t</gov-button>\n\t\t\t)\n\t\t}\n\t\treturn (\n\t\t\t<Host class={this.h.classes(PaginationClass.root)} type={this.type} color={this.color} size={this.size}>\n\t\t\t\t<nav {...this.inheritedAttributes}>\n\t\t\t\t\t<ul class={PaginationClass.list}>\n\t\t\t\t\t\t<li class={prepareClasses([PaginationClass.item, PaginationClass.itemArrow])}>\n\t\t\t\t\t\t\t{pageResolver(\n\t\t\t\t\t\t\t\tthis.pagination.currentPage > 1 ? 1 : -1,\n\t\t\t\t\t\t\t\t<gov-icon class={PaginationClass.arrow} name=\"chevron-double-left\" type=\"components\"></gov-icon>,\n\t\t\t\t\t\t\t\tthis.labelStart\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</li>\n\n\t\t\t\t\t\t<li class={prepareClasses([PaginationClass.item, PaginationClass.itemArrow])}>\n\t\t\t\t\t\t\t{pageResolver(\n\t\t\t\t\t\t\t\tthis.pagination.startPage < this.pagination.currentPage ? this.pagination.currentPage - 1 : -1,\n\t\t\t\t\t\t\t\t<gov-icon class={PaginationClass.arrow} name=\"chevron-left\" type=\"components\"></gov-icon>,\n\t\t\t\t\t\t\t\tthis.labelPrev\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</li>\n\n\t\t\t\t\t\t{this.type == \"select\" ? (\n\t\t\t\t\t\t\t<li class={prepareClasses([PaginationClass.item, PaginationClass.itemSelect])}>\n\t\t\t\t\t\t\t\t<span class={PaginationClass.inner}>\n\t\t\t\t\t\t\t\t\t<span id={this.pageSelectId} hidden>\n\t\t\t\t\t\t\t\t\t\t{this.accessibleSelectLabel}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t<gov-form-select\n\t\t\t\t\t\t\t\t\t\tsize={this.size}\n\t\t\t\t\t\t\t\t\t\tcolor={this.color}\n\t\t\t\t\t\t\t\t\t\tidentifier={this.selectIdentifier || this.selectId}\n\t\t\t\t\t\t\t\t\t\taria-labelledby={this.pageSelectId}\n\t\t\t\t\t\t\t\t\t\ton-gov-change={this.onSelectHandler.bind(this)}>\n\t\t\t\t\t\t\t\t\t\t{createArrayRange(1, this.pagination.totalPages).map(page => (\n\t\t\t\t\t\t\t\t\t\t\t<option value={page} selected={this.pagination.currentPage === page}>\n\t\t\t\t\t\t\t\t\t\t\t\t{page}\n\t\t\t\t\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t</gov-form-select>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t{this.pagination.pages.map(page => (\n\t\t\t\t\t\t\t\t\t<li class={this.isActivePageClass(PaginationClass.item, page)}>{pageResolver(page, page, '')}</li>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t{this.pagination.totalPages ? (\n\t\t\t\t\t\t\t\t\t<li class={prepareClasses([PaginationClass.item, PaginationClass.itemMore])}>\n\t\t\t\t\t\t\t\t\t<span class={PaginationClass.inner}>\n\t\t\t\t\t\t\t\t\t\t<span id={this.pageSelectId} hidden>\n\t\t\t\t\t\t\t\t\t\t\t{this.accessibleSelectLabel}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t<gov-form-select\n\t\t\t\t\t\t\t\t\t\t\tsize={this.size}\n\t\t\t\t\t\t\t\t\t\t\tcolor={this.color}\n\t\t\t\t\t\t\t\t\t\t\tidentifier={this.selectIdentifier || this.selectId}\n\t\t\t\t\t\t\t\t\t\t\taria-labelledby={this.pageSelectId}\n\t\t\t\t\t\t\t\t\t\t\tref={el => (this.spreadSelectRef = el as HTMLGovFormSelectElement)}\n\t\t\t\t\t\t\t\t\t\t\ton-gov-change={this.onSelectHandler.bind(this)}>\n\t\t\t\t\t\t\t\t\t\t\t<option selected hidden>...</option>\n\t\t\t\t\t\t\t\t\t\t\t{createArrayRange(1, this.pagination.totalPages).map(page => (\n\t\t\t\t\t\t\t\t\t\t\t\t<option value={page} selected={false}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{page}\n\t\t\t\t\t\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t</gov-form-select>\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t<li class={prepareClasses([PaginationClass.item, PaginationClass.itemArrow])}>\n\t\t\t\t\t\t\t{pageResolver(\n\t\t\t\t\t\t\t\tthis.pagination.totalPages > this.pagination.currentPage ? this.pagination.currentPage + 1 : -1,\n\t\t\t\t\t\t\t\t<gov-icon class={PaginationClass.arrow} name=\"chevron-right\" type=\"components\"></gov-icon>,\n\t\t\t\t\t\t\t\tthis.labelNext\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</li>\n\n\t\t\t\t\t\t<li class={prepareClasses([PaginationClass.item, PaginationClass.itemArrow])}>\n\t\t\t\t\t\t\t{pageResolver(\n\t\t\t\t\t\t\t\tthis.pagination.totalPages > this.pagination.currentPage ? this.pagination.totalPages : -1,\n\t\t\t\t\t\t\t\t<gov-icon class={PaginationClass.arrow} name=\"chevron-double-right\" type=\"components\"></gov-icon>,\n\t\t\t\t\t\t\t\tthis.labelEnd\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</nav>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onClickHandler(e: CustomEvent, page: number): void {\n\t\te.stopPropagation()\n\t\tthis.recalculatePagination(page)\n\t\tthis.govPage.emit({\n\t\t\tcomponent: PaginationClass.root,\n\t\t\tpagination: this.pagination\n\t\t})\n\t}\n\n\tprivate onSelectHandler(e: CustomEvent<FormSelectEvent>): void {\n\t\te.stopPropagation()\n\t\tconst value = e.detail.value\n\t\tconst page = parseInt(value)\n\t\tthis.resetSelectValue()\n\t\tif (isNaN(page) === false) {\n\t\t\tthis.recalculatePagination(page)\n\t\t\tif (this.link) {\n\t\t\t\twindow.location.href = this.prepareLinkUrl(page)\n\t\t\t} else {\n\t\t\t\tthis.govPage.emit({\n\t\t\t\t\tcomponent: PaginationClass.root,\n\t\t\t\t\tpagination: this.pagination\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["PaginationSizes","pick","Sizes","PaginationColors","Colors","PaginationTypes","PaginationClass","root","list","item","itemArrow","itemMore","itemSelect","inner","arrow","paginate","totalItems","currentPage","pageSize","maxPages","totalPages","Math","ceil","startPage","endPage","maxPagesBeforeCurrentPage","floor","maxPagesAfterCurrentPage","startIndex","endIndex","min","pages","Array","from","keys","map","i","GovPagination","constructor","hostRef","this","type","current","total","size","color","accessibleSelectLabel","accessiblePageLabel","labelPrev","labelStart","labelNext","labelEnd","inheritedAttributes","h","govHost","host","pageSelectId","createID","selectId","validateType","newValue","validateProp","validateSize","validateColor","recalculate","recalculatePagination","componentDidLoad","attributeObserver","AttributeObserver","attributeName","onAriaAttributeChange","startObserving","ariaAttributes","componentWillLoad","inheritAriaAttributes","disconnectedCallback","_a","stopObserving","removeAttribute","Object","assign","pagination","isActivePageClass","originalClass","page","prepareLinkUrl","link","String","replace","undefined","resetSelectValue","spreadSelectRef","getRef","then","el","value","render","pageResolver","content","description","isDisabled","ariaCurrent","toBoolAttrIfDefined","href","disabled","e","onClickHandler","class","focusable","Host","classes","prepareClasses","name","id","hidden","identifier","selectIdentifier","onSelectHandler","bind","createArrayRange","selected","Fragment","ref","stopPropagation","govPage","emit","component","detail","parseInt","isNaN","window","location"],"sources":["../../../packages/core/src/components/gov-pagination/constants.ts","../../../packages/core/src/components/gov-pagination/pagination.ts","../../../packages/core/src/components/gov-pagination/gov-pagination.tsx"],"sourcesContent":["import { Sizes } from '../../core/constants/sizes'\nimport { Colors } from '../../core/constants/colors'\nimport { pick } from '../../utils/utils'\nimport { ValueOf } from '../../types/interfaces'\n\nexport const PaginationSizes = pick(Sizes, ['_S', '_M'])\nexport type PaginationSizeType = `${ValueOf<typeof PaginationSizes>}`\n\nexport const PaginationColors = pick(Colors, ['PRIMARY', 'NEUTRAL'])\nexport type PaginationColorType = `${ValueOf<typeof PaginationColors>}`\n\nexport enum PaginationTypes {\n\tBUTTON = 'button',\n\tSELECT = 'select',\n}\nexport type PaginationType = `${ValueOf<typeof PaginationTypes>}`\n\nexport const PaginationClass = {\n\troot: 'gov-pagination',\n\tlist: 'gov-pagination__list',\n\titem: 'gov-pagination__item',\n\titemArrow: 'gov-pagination__item--arrow',\n\titemMore: 'gov-pagination__item--more',\n\titemSelect: 'gov-pagination__item--select',\n\tinner: 'gov-pagination__inner',\n\tarrow: 'gov-pagination__arrow',\n}\n","export interface Pagination {\n\ttotalItems: number\n\tcurrentPage: number\n\tpageSize: number\n\ttotalPages: number\n\tstartPage: number\n\tendPage: number\n\tstartIndex: number\n\tendIndex: number\n\tpages: number[]\n}\n\nexport function paginate(totalItems: number, currentPage = 1, pageSize = 10, maxPages = 10): Pagination {\n\t// calculate total pages\n\tconst totalPages = Math.ceil(totalItems / pageSize)\n\n\t// ensure current page isn't out of range\n\tif (currentPage < 1) {\n\t\tcurrentPage = 1\n\t} else if (currentPage > totalPages) {\n\t\tcurrentPage = totalPages\n\t}\n\n\tlet startPage: number, endPage: number\n\tif (totalPages <= maxPages) {\n\t\t// total pages less than max so show all pages\n\t\tstartPage = 1\n\t\tendPage = totalPages\n\t} else {\n\t\t// total pages more than max so calculate start and end pages\n\t\tconst maxPagesBeforeCurrentPage = Math.floor(maxPages / 2)\n\t\tconst maxPagesAfterCurrentPage = Math.ceil(maxPages / 2) - 1\n\t\tif (currentPage <= maxPagesBeforeCurrentPage) {\n\t\t\t// current page near the start\n\t\t\tstartPage = 1\n\t\t\tendPage = maxPages\n\t\t} else if (currentPage + maxPagesAfterCurrentPage >= totalPages) {\n\t\t\t// current page near the end\n\t\t\tstartPage = totalPages - maxPages + 1\n\t\t\tendPage = totalPages\n\t\t} else {\n\t\t\t// current page somewhere in the middle\n\t\t\tstartPage = currentPage - maxPagesBeforeCurrentPage\n\t\t\tendPage = currentPage + maxPagesAfterCurrentPage\n\t\t}\n\t}\n\n\t// calculate start and end item indexes\n\tconst startIndex = (currentPage - 1) * pageSize\n\tconst endIndex = Math.min(startIndex + pageSize - 1, totalItems - 1)\n\n\t// create an array of pages to ng-repeat in the pager control\n\tconst pages = Array.from(Array(endPage + 1 - startPage).keys()).map(i => startPage + i)\n\n\t// return object with all pager properties required by the view\n\treturn {\n\t\ttotalItems: totalItems,\n\t\tcurrentPage: currentPage,\n\t\tpageSize: pageSize,\n\t\ttotalPages: totalPages,\n\t\tstartPage: startPage,\n\t\tendPage: endPage,\n\t\tstartIndex: startIndex,\n\t\tendIndex: endIndex,\n\t\tpages: pages,\n\t}\n}\n","import Fragment from \"../../helpers/Fragment\"\nimport {Component, Element, Event, EventEmitter, h, Host, Prop, State, Watch} from \"@stencil/core\"\nimport {validateProp} from \"../../helpers/Validate/props\"\nimport {\n\tPaginationClass,\n\tPaginationColors,\n\tPaginationColorType,\n\tPaginationSizes,\n\tPaginationSizeType,\n\tPaginationType,\n\tPaginationTypes,\n} from \"./constants\"\nimport {govHost, prepareClasses, toBoolAttrIfDefined} from \"../../helpers/Dom/template\"\nimport {paginate, Pagination} from \"./pagination\"\nimport {createID} from \"../../utils/string.utils\"\nimport {GovHost} from \"../../helpers/Dom/template.types\"\nimport {createArrayRange} from \"../../utils/array.utils\"\nimport {FormSelectEvent} from \"../gov-form/select/gov-form-select.types\"\nimport {PaginationEvent} from \"./gov-pagination.types\"\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-pagination\",\n})\nexport class GovPagination {\n\tprivate h: GovHost\n\tprivate readonly pageSelectId: string\n\tprivate readonly selectId: string\n\n\tprivate spreadSelectRef?: HTMLGovFormSelectElement\n\tprivate attributeObserver: AttributeObserver\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.pageSelectId = createID(\"GovPageSelect\")\n\t\tthis.selectId = createID(\"GovSelect\")\n\t}\n\n\t@Element() readonly host: HTMLGovPaginationElement\n\t/**\n\t * Pagination type\n\t */\n\t@Prop() readonly type: PaginationType = \"button\"\n\t/**\n\t * Currently displayed page\n\t */\n\t@Prop() readonly current: number = 1\n\t/**\n\t * Total count of entries\n\t */\n\t@Prop() readonly total: number = 0\n\t/**\n\t * Custom select identifier.\n\t */\n\t@Prop({attribute: 'select-identifier'}) readonly selectIdentifier: string\n\t/**\n\t * Pagination's size\n\t */\n\t@Prop() readonly size?: PaginationSizeType = \"m\"\n\t/**\n\t * Style variation of the pagination.\n\t */\n\t@Prop() readonly color?: PaginationColorType = \"primary\"\n\t/**\n\t * Maximum number of entries per page\n\t */\n\t@Prop({attribute: \"page-size\"}) readonly pageSize: number = 10\n\t/**\n\t * Maximum pages displayed for selection\n\t */\n\t@Prop({attribute: \"max-pages\"}) readonly maxPages: number = 5\n\t/**\n\t * Setting a link to redirect to a given page.\n\t * The {PAGE} wildcard can be used in the link to replace the page number.\n\t * Note that in the case of paging through a link, it is always necessary to send to the component the current page where the user is.\n\t */\n\t@Prop() readonly link: string\n\t/**\n\t * Adds accessible label for the page select\n\t */\n\t@Prop({attribute: \"accessible-select-label\"}) readonly accessibleSelectLabel: string = \"Vybrat stranu\"\n\t/**\n\t * Adds accessible label for the page item\n\t */\n\t@Prop({attribute: \"accessible-page-label\"}) readonly accessiblePageLabel: string = \"Strana\"\n\t/**\n\t * Description of the possibility to go back one page\n\t */\n\t@Prop({attribute: \"label-prev\"}) readonly labelPrev = 'Přejít o stranu zpět'\n\t/**\n\t * Description of the option to go to the top of paging\n\t */\n\t@Prop({attribute: \"label-start\"}) readonly labelStart = 'Přejít na začátek'\n\t/**\n\t * Description of the option to go to the end of paging\n\t */\n\t@Prop({attribute: \"label-next\"}) readonly labelNext = 'Přejít na další stranu'\n\t/**\n\t * Description of the option to move one page forward\n\t */\n\t@Prop({attribute: \"label-end\"}) readonly labelEnd = 'Přejít na konec'\n\t/**\n\t * Event called when changing the page with the current setting of the whole paging\n\t */\n\t@Event({eventName: \"gov-page\"}) govPage: EventEmitter<PaginationEvent>\n\n\t@State() pagination: Pagination\n\t@State() inheritedAttributes: Attributes = {}\n\n\t@Watch(\"type\")\n\tvalidateType(newValue: string): void {\n\t\tvalidateProp(PaginationTypes, newValue, PaginationClass.root)\n\t}\n\n\t@Watch(\"size\")\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(PaginationSizes, newValue, PaginationClass.root)\n\t}\n\n\t@Watch(\"color\")\n\tvalidateColor(newValue: string): void {\n\t\tvalidateProp(PaginationColors, newValue, PaginationClass.root)\n\t}\n\n\t@Watch(\"current\")\n\t@Watch(\"total\")\n\t@Watch(\"pageSize\")\n\t@Watch(\"maxPages\")\n\trecalculate(): void {\n\t\tthis.recalculatePagination(this.current)\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.recalculatePagination(this.current)\n\t\tthis.validateSize(this.size)\n\t\tthis.validateColor(this.color)\n\t\tthis.inheritedAttributes = inheritAriaAttributes(this.host);\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 recalculatePagination(currentPage: number) {\n\t\tthis.pagination = paginate(this.total, currentPage, this.pageSize, this.maxPages)\n\t}\n\n\tprivate isActivePageClass(originalClass: string, page: number) {\n\t\tif (this.pagination.currentPage === page) {\n\t\t\treturn originalClass + \" is-active\"\n\t\t} else {\n\t\t\treturn originalClass\n\t\t}\n\t}\n\n\tprivate prepareLinkUrl(page: number) {\n\t\tif (this.link) {\n\t\t\treturn String(this.link).replace(\"{PAGE}\", String(page))\n\t\t}\n\t\treturn undefined\n\t}\n\n\tprivate resetSelectValue() {\n\t\tif (this.spreadSelectRef) {\n\t\t\tthis.spreadSelectRef.getRef()\n\t\t\t\t.then((el: HTMLSelectElement) => {\n\t\t\t\t\tel.value = '...'\n\t\t\t\t})\n\t\t}\n\t}\n\n\trender() {\n\t\tconst pageResolver = (page: number, content: any, description: string) => {\n\t\t\tconst isDisabled = page === -1\n\t\t\tconst ariaCurrent = toBoolAttrIfDefined(this.pagination.currentPage === page ? true : undefined)\n\t\t\treturn (\n\t\t\t\t<gov-button\n\t\t\t\t\thref={this.prepareLinkUrl(page)}\n\t\t\t\t\tcolor={this.color}\n\t\t\t\t\tsize={this.size}\n\t\t\t\t\ttype=\"base\"\n\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\ton-gov-click={(e) => this.onClickHandler(e, page)}\n\t\t\t\t\taria-label={description ? description : page > -1 ? `${this.accessiblePageLabel} ${page}` : undefined}\n\t\t\t\t\taria-current={ariaCurrent}\n\t\t\t\t\tclass={PaginationClass.inner}\n\t\t\t\t\tfocusable={true}>\n\t\t\t\t\t{content}\n\t\t\t\t</gov-button>\n\t\t\t)\n\t\t}\n\t\treturn (\n\t\t\t<Host class={this.h.classes(PaginationClass.root)} type={this.type} color={this.color} size={this.size}>\n\t\t\t\t<nav {...this.inheritedAttributes}>\n\t\t\t\t\t<ul class={PaginationClass.list}>\n\t\t\t\t\t\t<li class={prepareClasses([PaginationClass.item, PaginationClass.itemArrow])}>\n\t\t\t\t\t\t\t{pageResolver(\n\t\t\t\t\t\t\t\tthis.pagination.currentPage > 1 ? 1 : -1,\n\t\t\t\t\t\t\t\t<gov-icon class={PaginationClass.arrow} name=\"chevron-double-left\" type=\"components\"></gov-icon>,\n\t\t\t\t\t\t\t\tthis.labelStart\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</li>\n\n\t\t\t\t\t\t<li class={prepareClasses([PaginationClass.item, PaginationClass.itemArrow])}>\n\t\t\t\t\t\t\t{pageResolver(\n\t\t\t\t\t\t\t\tthis.pagination.startPage < this.pagination.currentPage ? this.pagination.currentPage - 1 : -1,\n\t\t\t\t\t\t\t\t<gov-icon class={PaginationClass.arrow} name=\"chevron-left\" type=\"components\"></gov-icon>,\n\t\t\t\t\t\t\t\tthis.labelPrev\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</li>\n\n\t\t\t\t\t\t{this.type == \"select\" ? (\n\t\t\t\t\t\t\t<li class={prepareClasses([PaginationClass.item, PaginationClass.itemSelect])}>\n\t\t\t\t\t\t\t\t<span class={PaginationClass.inner}>\n\t\t\t\t\t\t\t\t\t<span id={this.pageSelectId} hidden>\n\t\t\t\t\t\t\t\t\t\t{this.accessibleSelectLabel}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t<gov-form-select\n\t\t\t\t\t\t\t\t\t\tsize={this.size}\n\t\t\t\t\t\t\t\t\t\tcolor={this.color}\n\t\t\t\t\t\t\t\t\t\tidentifier={this.selectIdentifier || this.selectId}\n\t\t\t\t\t\t\t\t\t\taria-labelledby={this.pageSelectId}\n\t\t\t\t\t\t\t\t\t\ton-gov-change={this.onSelectHandler.bind(this)}>\n\t\t\t\t\t\t\t\t\t\t{createArrayRange(1, this.pagination.totalPages).map(page => (\n\t\t\t\t\t\t\t\t\t\t\t<option value={page} selected={this.pagination.currentPage === page}>\n\t\t\t\t\t\t\t\t\t\t\t\t{page}\n\t\t\t\t\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t</gov-form-select>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t{this.pagination.pages.map(page => (\n\t\t\t\t\t\t\t\t\t<li class={this.isActivePageClass(PaginationClass.item, page)}>{pageResolver(page, page, '')}</li>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t{this.pagination.totalPages ? (\n\t\t\t\t\t\t\t\t\t<li class={prepareClasses([PaginationClass.item, PaginationClass.itemMore])}>\n\t\t\t\t\t\t\t\t\t<span class={PaginationClass.inner}>\n\t\t\t\t\t\t\t\t\t\t<span id={this.pageSelectId} hidden>\n\t\t\t\t\t\t\t\t\t\t\t{this.accessibleSelectLabel}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t<gov-form-select\n\t\t\t\t\t\t\t\t\t\t\tsize={this.size}\n\t\t\t\t\t\t\t\t\t\t\tcolor={this.color}\n\t\t\t\t\t\t\t\t\t\t\tidentifier={this.selectIdentifier || this.selectId}\n\t\t\t\t\t\t\t\t\t\t\taria-labelledby={this.pageSelectId}\n\t\t\t\t\t\t\t\t\t\t\tref={el => (this.spreadSelectRef = el as HTMLGovFormSelectElement)}\n\t\t\t\t\t\t\t\t\t\t\ton-gov-change={this.onSelectHandler.bind(this)}>\n\t\t\t\t\t\t\t\t\t\t\t<option selected hidden>...</option>\n\t\t\t\t\t\t\t\t\t\t\t{createArrayRange(1, this.pagination.totalPages).map(page => (\n\t\t\t\t\t\t\t\t\t\t\t\t<option value={page} selected={false}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{page}\n\t\t\t\t\t\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t</gov-form-select>\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t<li class={prepareClasses([PaginationClass.item, PaginationClass.itemArrow])}>\n\t\t\t\t\t\t\t{pageResolver(\n\t\t\t\t\t\t\t\tthis.pagination.totalPages > this.pagination.currentPage ? this.pagination.currentPage + 1 : -1,\n\t\t\t\t\t\t\t\t<gov-icon class={PaginationClass.arrow} name=\"chevron-right\" type=\"components\"></gov-icon>,\n\t\t\t\t\t\t\t\tthis.labelNext\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</li>\n\n\t\t\t\t\t\t<li class={prepareClasses([PaginationClass.item, PaginationClass.itemArrow])}>\n\t\t\t\t\t\t\t{pageResolver(\n\t\t\t\t\t\t\t\tthis.pagination.totalPages > this.pagination.currentPage ? this.pagination.totalPages : -1,\n\t\t\t\t\t\t\t\t<gov-icon class={PaginationClass.arrow} name=\"chevron-double-right\" type=\"components\"></gov-icon>,\n\t\t\t\t\t\t\t\tthis.labelEnd\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</nav>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onClickHandler(e: CustomEvent, page: number): void {\n\t\te.stopPropagation()\n\t\tthis.recalculatePagination(page)\n\t\tthis.govPage.emit({\n\t\t\tcomponent: PaginationClass.root,\n\t\t\tpagination: this.pagination\n\t\t})\n\t}\n\n\tprivate onSelectHandler(e: CustomEvent<FormSelectEvent>): void {\n\t\te.stopPropagation()\n\t\tconst value = e.detail.value\n\t\tconst page = parseInt(value)\n\t\tthis.resetSelectValue()\n\t\tif (isNaN(page) === false) {\n\t\t\tthis.recalculatePagination(page)\n\t\t\tif (this.link) {\n\t\t\t\twindow.location.href = this.prepareLinkUrl(page)\n\t\t\t} else {\n\t\t\t\tthis.govPage.emit({\n\t\t\t\t\tcomponent: PaginationClass.root,\n\t\t\t\t\tpagination: this.pagination\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as t,h as s,H as e,g as i,c as n}from"./p-B8TR1oqt.js";import{S as o}from"./p-BcQO4NH2.js";import{g as a}from"./p-CoD1xawt.js";import{p as r}from"./p-CQvUntGY.js";import{C as c}from"./p-U40vKHrs.js";import{i as h,a as l,b as f}from"./p-CgDnDrq5.js";import{v as d}from"./p-NOJjz9dT.js";const u={root:"gov-flex"};const m=class{constructor(s){t(this,s);this.direction="row";this.responsive="true";this.h=a(this.host)}render(){return s(e,{key:"a6d1aed0cf8fd8c94ef83821d142756943bc55f3",class:this.h.classes(u.root)},s("slot",{key:"34551ed862ff8384c3eade0d12762847772a0331"}))}get host(){return i(this)}};r(o,["_XS","_S","_M","_L","_XL","_2XL","_3XL","_4XL","_5XL"]);const p=r(c,["DEFAULT","PRIMARY","SECONDARY","NEUTRAL","ERROR","SUCCESS","WARNING","DISABLED","WHITE","BLACK"]);var v;(function(t){t["BASIC"]="basic";t["COMPLEX"]="complex";t["COLORED"]="colored"})(v||(v={}));const g={root:"gov-icon"};const w="4.6.5-b";const b=()=>w;const _={};const y={};const S=t=>t.startsWith("http://")||t.startsWith("https://");const k=(t,s,e)=>{if(S(t)){return`${t}/${e}/${s}.svg?v=${b()}`}return`${t}/${e}/${s}.svg`+`?v=${b()}`};async function C({name:t,type:s}){const e=s+"-"+t;if(_[e]){return _[e]}if(!y[e]){y[e]=fetch(k(h(),t,s)).then((t=>{if(t.status===200){return t.text()}else{throw new Error("Gov Icon doesn't exists")}}))}const i=await y[e];_[e]=i;return i}const L=(t,s,e)=>{if(!l){return}let i="";document.cookie=`${t}=${encodeURIComponent(s)}${i}; path=/`};const D=t=>{if(!l){return null}const s=t+"=";const e=document.cookie.split(";");for(let t=0;t<e.length;t++){let i=e[t].trim();if(i.startsWith(s)){return decodeURIComponent(i.substring(s.length))}}return null};const I=t=>{try{const s=new DOMParser;const e=s.parseFromString(t,"image/svg+xml");const i=e.querySelector("parsererror");if(i){return false}const n=e.documentElement;if(n.tagName.toLowerCase()!=="svg"){return false}return true}catch(t){return false}};const R=class{constructor(s){t(this,s);this.name=null;this.type="components";this.visible=false;this.error=false;this.h=a(this.host)}validateSize(t){d(o,t,g.root)}validateColor(t){d(p,t,g.root)}async loadIconPathData(){const{name:t,visible:s}=this;if(!t||!s){return}await this.loadIcon()}connectedCallback(){if(f()){this.visible=true;this.loadIconPathData().finally()}else{this.waitUntilVisible((async()=>{this.visible=true;await this.loadIconPathData()}))}}disconnectedCallback(){if(this.intersectionObserver){this.intersectionObserver.disconnect();this.intersectionObserver=null}}async componentWillLoad(){this.validateSize(this.size);this.validateColor(this.color);await this.loadIconPathData()}waitUntilVisible(t){if(typeof window==="undefined"||!window.IntersectionObserver){t();return}this.intersectionObserver=new IntersectionObserver((s=>{s.forEach((s=>{if(s.isIntersecting){if(this.intersectionObserver){this.intersectionObserver.disconnect();this.intersectionObserver=null}t()}}))}),{rootMargin:"50px"});this.intersectionObserver.observe(this.host)}async loadIcon(){try{const{name:t,type:s}=this;const e=await C({name:t,type:s});const i=I(e);this.host.innerHTML=i?e:null}catch(t){this.host.innerHTML="";this.error=true}}render(){if(this.error){return null}return s(e,{class:this.h.classes(g.root),size:this.size,color:this.color})}static get assetsDirs(){return["assets"]}get host(){return i(this)}static get watchers(){return{size:[{validateSize:0}],color:[{validateColor:0}],name:[{loadIconPathData:0}]}}};const $=r(o,["_XS","_S","_M","_L","_XL"]);const j={root:"gov-theme-switch",indicator:"gov-theme-switch__indicator",label:"gov-theme-switch__label",iconLight:"gov-theme-switch__icon-light",iconDark:"gov-theme-switch__icon-dark"};const z="data-theme";var E;(function(t){t["auto"]="auto";t["light"]="light";t["dark"]="dark"})(E||(E={}));const x=class{constructor(s){t(this,s);this.govChange=n(this,"gov-change");this.size="m";this.displayLabel=false;this.ariaLabelLight="Přepnout na tmavý mód";this.ariaLabelDark="Přepnout na světlý mód";this.labelLight="Světlý mód";this.labelDark="Tmavý mód";this.theme=E.auto;this.setThemeState=t=>{this.theme=t;this.govChange.emit({component:j.root,state:this.theme,ref:this.host})};this.h=a(this.host)}validateSize(t){d($,t,j.root)}watchTheme(t){this.htmlElement.setAttribute(z,t);this.htmlElement.classList.remove(...Object.keys(E));this.htmlElement.classList.add(t);L(z,t)}get storageValue(){return D(z)}get htmlElement(){return document.documentElement}get isSystemPrefersColorDark(){return l&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}componentWillLoad(){this.initDefaultState();this.validateSize(this.size)}initDefaultState(){const t=Object.keys(E);let s=this.storageValue;const e=this.htmlElement.getAttribute(z);if(s&&t.includes(s)){this.theme=s}else if(e&&t.includes(e)){this.theme=e}else{this.theme=E.auto}}render(){let t=this.theme===E.dark;if(this.theme===E.auto){t=this.isSystemPrefersColorDark}return s(e,{key:"3015dd1049b1c9a2b5902d1d56c8b3872a275c10",class:this.h.classes(j.root),theme:t?E.dark:E.light,size:this.size},s("button",{key:"ca4b331189fca45f66c4eef138db66482add2834",onClick:()=>this.setThemeState(t?E.light:E.dark),"aria-current":this.theme,"aria-label":t?this.ariaLabelDark:this.ariaLabelLight},s("span",{key:"ed2a779f1e9fe1a0e722439598c9a413e9b39071"},s("span",{key:"f58e164a6b1b389ecfe93f7d2673ea5749a8fd96",class:j.indicator},E.light&&s("gov-icon",{key:"24663f2d33ea2bead59df37fef9932e549070ce4",name:"sun",class:j.iconLight,type:"components"}),E.dark&&s("gov-icon",{key:"a4482c64c35b9c70122a687aca4bb90bfa1000f3",name:"moon",class:j.iconDark,type:"components"})),this.displayLabel?s("span",{class:j.label},t?this.labelDark:this.labelLight):null)))}get host(){return i(this)}static get watchers(){return{size:[{validateSize:0}],theme:[{watchTheme:0}]}}};export{m as gov_flex,R as gov_icon,x as gov_theme_switch};
|
|
2
|
+
//# sourceMappingURL=p-41bef63a.entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["FlexClass","root","GovFlex","constructor","hostRef","this","direction","responsive","h","govHost","host","render","Host","key","class","classes","pick","Sizes","IconColors","Colors","Types","IconClass","dsVersion","version","iconCache","requestCache","isExternalUrl","path","startsWith","iconUrl","name","type","async","fetchIcon","cacheKey","fetch","iconsPath","then","resp","status","text","Error","setCookie","value","days","isWindow","expires","document","cookie","encodeURIComponent","getCookie","nameEQ","cookies","split","i","length","trim","decodeURIComponent","substring","isValidSVG","svgContent","parser","DOMParser","doc","parseFromString","parseError","querySelector","svgElement","documentElement","tagName","toLowerCase","error","GovIcon","visible","validateSize","newValue","validateProp","validateColor","loadIconPathData","loadIcon","connectedCallback","iconsLazyLoad","finally","waitUntilVisible","disconnectedCallback","intersectionObserver","disconnect","componentWillLoad","size","color","callback","window","IntersectionObserver","entries","forEach","entry","isIntersecting","rootMargin","observe","data","isValid","innerHTML","e","ThemeSwitchSizes","ThemeSwitchClass","indicator","label","iconLight","iconDark","ATTRIBUTE_THEME_NAME","ThemeList","GovThemeSwitch","displayLabel","ariaLabelLight","ariaLabelDark","labelLight","labelDark","theme","auto","setThemeState","state","govChange","emit","component","ref","watchTheme","htmlElement","setAttribute","classList","remove","Object","keys","add","storageValue","isSystemPrefersColorDark","matchMedia","matches","initDefaultState","options","currentState","htmlState","getAttribute","includes","isDark","dark","light","onClick"],"sources":["../../../packages/core/src/components/gov-flex/constants.ts","../../../packages/core/src/components/gov-flex/gov-flex.tsx","../../../packages/core/src/components/gov-icon/constants.ts","../../../packages/core/src/utils/ds.utils.ts","../../../packages/core/src/utils/icon.utils.ts","../../../packages/core/src/helpers/Dom/document.ts","../../../packages/core/src/components/gov-icon/gov-icon.tsx","../../../packages/core/src/components/gov-theme-switch/constants.ts","../../../packages/core/src/components/gov-theme-switch/gov-theme-switch.types.ts","../../../packages/core/src/components/gov-theme-switch/gov-theme-switch.tsx"],"sourcesContent":["import {Sizes} from \"../../core/constants/sizes\";\nimport {ValueOf} from \"../../types/interfaces\";\n\nexport const FlexSizes = Sizes\nexport type FlexSizesType = `${ValueOf<typeof FlexSizes>}`\n\nexport const FlexClass = {\n\troot: 'gov-flex',\n}\n\n","import {Component, Element, h, Host, Prop} from '@stencil/core'\nimport {FlexClass, FlexSizesType} from './constants'\nimport {govHost} from '../../helpers/Dom/template'\nimport {GovHost} from '../../helpers/Dom/template.types'\n\n@Component({\n\ttag: 'gov-flex',\n})\nexport class GovFlex {\n\tprivate h: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() host: HTMLGovGridElement\n\n\t/**\n\t * Controls the flex direction of the container.\n\t */\n\t@Prop({reflect: true}) direction?: 'row' | 'row-reverse' | 'column' | 'column-reverse' = 'row';\n\n\t/**\n\t * Defines how the browser distributes space between and around content items along the main axis.\n\t */\n\t@Prop({\n\t\tattribute: 'justify-content',\n\t\treflect: true\n\t}) justifyContent?: 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly';\n\n\t/**\n\t * Aligns flex items along the cross axis.\n\t */\n\t@Prop({\n\t\tattribute: 'align-items',\n\t\treflect: true\n\t}) alignItems?: 'stretch' | 'flex-start' | 'flex-end' | 'center' | 'baseline';\n\n\t/**\n\t * Controls whether the flex container is a single-line or multi-line flex container.\n\t */\n\t@Prop({reflect: true}) wrap?: 'nowrap' | 'wrap' | 'wrap-reverse';\n\n\t/**\n\t * Aligns the flex container's lines within when there is extra space in the cross-axis.\n\t */\n\t@Prop({\n\t\tattribute: 'align-content',\n\t\treflect: true\n\t}) alignContent?: 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'stretch';\n\n\t/**\n\t * Sets the alignment of the flex container’s children along the flex container’s cross axis, overriding the `align-items` property for individual flex items.\n\t */\n\t@Prop({\n\t\tattribute: 'align-self',\n\t\treflect: true\n\t}) alignSelf?: 'auto' | 'normal' | 'self-start' | 'self-end' | 'flex-start' | 'flex-end' | 'center' | 'baseline' | 'stretch' | 'anchor-center';\n\n\t/**\n\t * The gap property creates consistent spacing between flex items in the container.\n\t */\n\t@Prop({\n\t\tattribute: 'gap',\n\t\treflect: true\n\t}) gap?: FlexSizesType;\n\n\t/**\n\t * Option to turn off responsive\n\t */\n\t@Prop({reflect: true}) readonly responsive: string = \"true\"\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={this.h.classes(FlexClass.root)}>\n\t\t\t\t<slot></slot>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","import { ValueOf } from '../../types/interfaces'\nimport { pick } from '../../utils/utils';\nimport { Colors } from '../../core/constants/colors';\nimport {Sizes} from \"../../core/constants/sizes\";\n\nexport const IconSizes = pick(Sizes, ['_XS', '_S', '_M', '_L', '_XL', '_2XL', '_3XL', '_4XL', '_5XL'])\nexport type IconSizesType = `${ValueOf<typeof IconSizes>}`\n\nexport const IconColors = pick(Colors, [\n\t'DEFAULT',\n\t'PRIMARY',\n\t'SECONDARY',\n\t'NEUTRAL',\n\t'ERROR',\n\t'SUCCESS',\n\t'WARNING',\n\t'DISABLED',\n\t'WHITE',\n\t'BLACK',\n])\nexport type IconColorType = `${ValueOf<typeof IconColors>}`\n\nenum Types {\n\tBASIC = 'basic',\n\tCOMPLEX = 'complex',\n\tCOLORED = 'colored',\n}\nexport type Type = `${ValueOf<typeof Types>}`\n\nexport const IconClass = {\n\troot: 'gov-icon',\n\tholder: 'gov-icon__holder',\n}\n","import { version } from '../../package.json'\n\nexport const dsVersion = (): string => {\n\treturn version\n}\n","import {dsVersion} from \"./ds.utils\"\nimport {iconsPath} from \"../helpers/Dom/win\"\n\nconst iconCache: { [key: string]: string } = {}\nconst requestCache: { [key: string]: Promise<string> } = {}\n\nconst isExternalUrl = (path: string) => path.startsWith(\"http://\") || path.startsWith(\"https://\")\nconst iconUrl = (path: string, name: string, type: string) => {\n if (isExternalUrl(path)) {\n return `${path}/${type}/${name}.svg?v=${dsVersion()}`\n }\n return `${path}/${type}/${name}.svg` + `?v=${dsVersion()}`\n}\n\nexport async function fetchIcon({name, type}: { name: string; type: string }): Promise<string> {\n const cacheKey = type + \"-\" + name\n if (iconCache[cacheKey]) {\n return iconCache[cacheKey]\n }\n\n if (!requestCache[cacheKey]) {\n requestCache[cacheKey] = fetch(iconUrl(iconsPath(), name, type)).then(resp => {\n if (resp.status === 200) {\n return resp.text()\n } else {\n throw new Error(\"Gov Icon doesn't exists\")\n }\n })\n }\n const path = await requestCache[cacheKey]\n iconCache[cacheKey] = path\n return path\n}\n","import {Nullable} from \"../../utils/helpers.types\";\nimport {isWindow} from \"./win\";\n\nexport const setCookie = (name: string, value: string, days?: number) => {\n\tif (!isWindow) {\n\t\treturn\n\t}\n\tlet expires = \"\";\n\tif (days) {\n\t\tconst date = new Date();\n\t\tdate.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\n\t\texpires = \"; expires=\" + date.toUTCString();\n\t}\n\tdocument.cookie = `${name}=${encodeURIComponent(value)}${expires}; path=/`;\n}\n\nexport const getCookie = (name: string): Nullable<string> => {\n\tif (!isWindow) {\n\t\treturn null\n\t}\n\tconst nameEQ = name + \"=\";\n\tconst cookies = document.cookie.split(';');\n\tfor (let i = 0; i < cookies.length; i++) {\n\t\tlet cookie = cookies[i].trim();\n\t\tif (cookie.startsWith(nameEQ)) {\n\t\t\treturn decodeURIComponent(cookie.substring(nameEQ.length));\n\t\t}\n\t}\n\treturn null;\n}\n\nexport const isValidSVG = (svgContent: string): boolean => {\n\ttry {\n\t\tconst parser = new DOMParser();\n\t\tconst doc = parser.parseFromString(svgContent, \"image/svg+xml\");\n\t\tconst parseError = doc.querySelector(\"parsererror\");\n\t\tif (parseError) {\n\t\t\treturn false;\n\t\t}\n\t\tconst svgElement = doc.documentElement;\n\t\tif (svgElement.tagName.toLowerCase() !== \"svg\") {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t} catch (error) {\n\t\treturn false;\n\t}\n}\n","import {Build, Component, Element, h, Host, Prop, State, Watch} from \"@stencil/core\"\nimport {IconClass, IconColors, type IconColorType, IconSizesType} from \"./constants\"\nimport {fetchIcon} from \"../../utils/icon.utils\"\nimport {govHost} from \"../../helpers/Dom/template\"\nimport {GovHost} from \"../../helpers/Dom/template.types\"\nimport {iconsLazyLoad} from \"../../helpers/Dom/win\"\nimport {validateProp} from \"../../helpers/Validate/props\";\nimport {Sizes} from \"../../core/constants/sizes\";\nimport {isValidSVG} from \"../../helpers/Dom/document\";\n\n@Component({\n\tassetsDirs: [\"assets\"],\n\ttag: \"gov-icon\",\n})\nexport class GovIcon {\n\tprivate h: GovHost\n\tprivate intersectionObserver: IntersectionObserver\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() host: HTMLGovIconElement\n\t/**\n\t * Icon size\n\t */\n\t@Prop({reflect: true}) readonly size?: IconSizesType\n\t/**\n\t * Icon color\n\t */\n\t@Prop({reflect: true}) readonly color?: IconColorType\n\t/**\n\t * Name of icon in folder\n\t */\n\t@Prop({reflect: true}) name: string = null\n\t/**\n\t * Type (folder) of icon\n\t */\n\t@Prop({reflect: true}) type = \"components\"\n\n\t@State() private visible = false\n\t@State() private error = false\n\n\t@Watch(\"size\")\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(Sizes, newValue, IconClass.root)\n\t}\n\n\t@Watch(\"color\")\n\tvalidateColor(newValue: string): void {\n\t\tvalidateProp(IconColors, newValue, IconClass.root)\n\t}\n\n\t@Watch(\"name\")\n\tprivate async loadIconPathData(): Promise<void> {\n\t\tconst {name, visible} = this\n\t\tif (!Build.isBrowser || !name || !visible) {\n\t\t\treturn\n\t\t}\n\t\tawait this.loadIcon()\n\t}\n\n\tconnectedCallback(): void {\n\t\tif (iconsLazyLoad()) {\n\t\t\tthis.visible = true\n\t\t\tthis.loadIconPathData().finally()\n\t\t} else {\n\t\t\tthis.waitUntilVisible(async () => {\n\t\t\t\tthis.visible = true\n\t\t\t\tawait this.loadIconPathData()\n\t\t\t})\n\t\t}\n\t}\n\n\tdisconnectedCallback(): void {\n\t\tif (this.intersectionObserver) {\n\t\t\tthis.intersectionObserver.disconnect()\n\t\t\tthis.intersectionObserver = null\n\t\t}\n\t}\n\n\tasync componentWillLoad(): Promise<void> {\n\t\tthis.validateSize(this.size)\n\t\tthis.validateColor(this.color)\n\t\tawait this.loadIconPathData()\n\t}\n\n\tprivate waitUntilVisible(callback: () => void): void {\n\t\tif (!Build.isBrowser || typeof window === \"undefined\" || !(window as any).IntersectionObserver) {\n\t\t\tcallback()\n\t\t\treturn\n\t\t}\n\t\tthis.intersectionObserver = new IntersectionObserver(\n\t\t\tentries => {\n\t\t\t\tentries.forEach(entry => {\n\t\t\t\t\tif (entry.isIntersecting) {\n\t\t\t\t\t\tif (this.intersectionObserver) {\n\t\t\t\t\t\t\tthis.intersectionObserver.disconnect()\n\t\t\t\t\t\t\tthis.intersectionObserver = null\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcallback()\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t},\n\t\t\t{rootMargin: \"50px\"},\n\t\t)\n\t\tthis.intersectionObserver.observe(this.host)\n\t}\n\n\tprivate async loadIcon() {\n\t\ttry {\n\t\t\tconst {name, type} = this\n\t\t\tconst data = await fetchIcon({name, type})\n\t\t\tconst isValid = isValidSVG(data)\n\t\t\tthis.host.innerHTML = isValid ? data : null;\n\t\t} catch (e) {\n\t\t\tthis.host.innerHTML = ''\n\t\t\tthis.error = true\n\t\t}\n\t}\n\n\trender() {\n\t\tif (this.error) {\n\t\t\treturn null\n\t\t}\n\t\treturn (\n\t\t\t<Host class={this.h.classes(IconClass.root)} size={this.size} color={this.color}/>\n\t\t)\n\t}\n}\n","import {pick} from \"../../utils/utils\";\nimport {Sizes} from \"../../core/constants/sizes\";\nimport {ValueOf} from \"../../types/interfaces\";\n\nexport const ThemeSwitchSizes = pick(Sizes, ['_XS', '_S', '_M', '_L', '_XL'])\nexport type ThemeSwitchSizesType = `${ValueOf<typeof ThemeSwitchSizes>}`\n\nexport const ThemeSwitchClass = {\n\troot: 'gov-theme-switch',\n\tindicator: 'gov-theme-switch__indicator',\n\tlabel: 'gov-theme-switch__label',\n\ticonLight: 'gov-theme-switch__icon-light',\n\ticonDark: 'gov-theme-switch__icon-dark',\n}\n\nexport const ATTRIBUTE_THEME_NAME = 'data-theme'\n","import {GovBaseEvent} from \"../../types/event.types\";\n\nexport enum ThemeList {\n\tauto = 'auto',\n\tlight = 'light',\n\tdark = 'dark'\n}\n\nexport interface ThemeSwitchEvent extends GovBaseEvent {\n\tref: HTMLGovThemeSwitchElement;\n\tstate: ThemeList\n}\n\n","import {Component, Element, Event, EventEmitter, h, Host, Prop, State, Watch} from \"@stencil/core\"\nimport {GovHost} from \"../../helpers/Dom/template.types\";\nimport {govHost} from \"../../helpers/Dom/template\";\nimport {ATTRIBUTE_THEME_NAME, ThemeSwitchClass, ThemeSwitchSizes, ThemeSwitchSizesType} from \"./constants\";\nimport {isWindow} from \"../../helpers/Dom/win\";\nimport {ThemeList, ThemeSwitchEvent} from \"./gov-theme-switch.types\";\nimport {validateProp} from \"../../helpers/Validate/props\";\nimport {getCookie, setCookie} from \"../../helpers/Dom/document\";\n\n@Component({\n\ttag: \"gov-theme-switch\",\n})\nexport class GovThemeSwitch {\n\tprivate h: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() host: HTMLGovThemeSwitchElement\n\n\t/**\n\t * Switch's size.\n\t */\n\t@Prop() readonly size?: ThemeSwitchSizesType = \"m\"\n\t/**\n\t * Display switch label\n\t */\n\t@Prop({attribute: \"display-label\"}) readonly displayLabel? = false\n\t/**\n\t * Label in light mode\n\t */\n\t@Prop({attribute: \"aria-label-light\"}) readonly ariaLabelLight? = \"Přepnout na tmavý mód\"\n\t/**\n\t * Label in dark mode\n\t */\n\t@Prop({attribute: \"aria-label-dark\"}) readonly ariaLabelDark? = \"Přepnout na světlý mód\"\n\t/**\n\t * Label in light mode\n\t */\n\t@Prop({attribute: \"label-light\"}) readonly labelLight? = \"Světlý mód\"\n\t/**\n\t * Label in dark mode\n\t */\n\t@Prop({attribute: \"label-dark\"}) readonly labelDark? = \"Tmavý mód\"\n\t/**\n\t * Called when the theme is changed by the user\n\t */\n\t@Event({eventName: \"gov-change\"}) govChange: EventEmitter<ThemeSwitchEvent>\n\n\t@Watch(\"size\")\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(ThemeSwitchSizes, newValue, ThemeSwitchClass.root)\n\t}\n\n\t@Watch(\"theme\")\n\twatchTheme(newValue: ThemeList): void {\n\t\tthis.htmlElement.setAttribute(ATTRIBUTE_THEME_NAME, newValue);\n\t\tthis.htmlElement.classList.remove(...Object.keys(ThemeList));\n\t\tthis.htmlElement.classList.add(newValue);\n\t\tsetCookie(ATTRIBUTE_THEME_NAME, newValue);\n\t}\n\n\t@State() theme: ThemeList = ThemeList.auto\n\n\tprivate get storageValue() {\n\t\treturn getCookie(ATTRIBUTE_THEME_NAME)\n\t}\n\n\tprivate get htmlElement(): HTMLElement {\n\t\treturn document.documentElement\n\t}\n\n\tprivate get isSystemPrefersColorDark(): boolean {\n\t\treturn isWindow && window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.initDefaultState()\n\t\tthis.validateSize(this.size)\n\t}\n\n\tprivate initDefaultState() {\n\t\tconst options = Object.keys(ThemeList);\n\t\tlet currentState = this.storageValue;\n\t\tconst htmlState = this.htmlElement.getAttribute(ATTRIBUTE_THEME_NAME)\n\n\t\tif (currentState && options.includes(currentState)) {\n\t\t\tthis.theme = currentState as ThemeList;\n\t\t} else if (htmlState && options.includes(htmlState)) {\n\t\t\tthis.theme = htmlState as ThemeList;\n\t\t} else {\n\t\t\tthis.theme = ThemeList.auto;\n\t\t}\n\t}\n\n\tprivate setThemeState = (state: ThemeList) => {\n\t\tthis.theme = state;\n\n\t\tthis.govChange.emit({\n\t\t\tcomponent: ThemeSwitchClass.root,\n\t\t\tstate: this.theme,\n\t\t\tref: this.host\n\t\t})\n\t}\n\n\trender() {\n\t\tlet isDark = this.theme === ThemeList.dark;\n\t\tif (this.theme === ThemeList.auto) {\n\t\t\tisDark = this.isSystemPrefersColorDark;\n\t\t}\n\t\treturn (\n\t\t\t<Host class={this.h.classes(ThemeSwitchClass.root)}\n\t\t\t\t theme={isDark ? ThemeList.dark : ThemeList.light}\n\t\t\t\t size={this.size}>\n\t\t\t\t<button onClick={() => this.setThemeState(isDark ? ThemeList.light : ThemeList.dark)}\n\t\t\t\t\t\taria-current={this.theme}\n\t\t\t\t\t\taria-label={isDark ? this.ariaLabelDark : this.ariaLabelLight}>\n\t\t\t\t\t<span>\n\t\t\t\t\t\t<span class={ThemeSwitchClass.indicator}>\n\t\t\t\t\t\t\t{ThemeList.light && <gov-icon name=\"sun\" class={ThemeSwitchClass.iconLight} type=\"components\"></gov-icon>}\n\t\t\t\t\t\t\t{ThemeList.dark && <gov-icon name=\"moon\" class={ThemeSwitchClass.iconDark} type=\"components\"></gov-icon>}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t{this.displayLabel ? (\n\t\t\t\t\t\t\t<span class={ThemeSwitchClass.label}>\n\t\t\t\t\t\t\t\t{isDark ? this.labelDark : this.labelLight}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t) : null\n\t\t\t\t\t\t}\n\t\t\t\t\t</span>\n\t\t\t\t</button>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n"],"mappings":"sSAMO,MAAMA,EAAY,CACxBC,KAAM,Y,MCCMC,EAAO,MAGnB,WAAAC,CAAAC,G,UASuBC,KAASC,UAAyD,MAkDzDD,KAAUE,WAAW,OA1DpDF,KAAKG,EAAIC,EAAQJ,KAAKK,KACtB,CA2DD,MAAAC,GACC,OACCH,EAACI,EAAI,CAAAC,IAAA,2CAACC,MAAOT,KAAKG,EAAEO,QAAQf,EAAUC,OACrCO,EAAa,QAAAK,IAAA,6C,6BCtEQG,EAAKC,EAAO,CAAC,MAAO,KAAM,KAAM,KAAM,MAAO,OAAQ,OAAQ,OAAQ,SAGvF,MAAMC,EAAaF,EAAKG,EAAQ,CACtC,UACA,UACA,YACA,UACA,QACA,UACA,UACA,WACA,QACA,UAID,IAAKC,GAAL,SAAKA,GACJA,EAAA,iBACAA,EAAA,qBACAA,EAAA,oBACA,EAJD,CAAKA,MAIJ,KAGM,MAAMC,EAAY,CACxBpB,KAAM,Y,gBC5BA,MAAMqB,EAAY,IACjBC,ECAR,MAAMC,EAAuC,GAC7C,MAAMC,EAAmD,GAEzD,MAAMC,EAAiBC,GAAiBA,EAAKC,WAAW,YAAcD,EAAKC,WAAW,YACtF,MAAMC,EAAU,CAACF,EAAcG,EAAcC,KACzC,GAAIL,EAAcC,GAAO,CACrB,MAAO,GAAGA,KAAQI,KAAQD,WAAcR,K,CAE5C,MAAO,GAAGK,KAAQI,KAAQD,QAAa,MAAMR,KAAa,EAGvDU,eAAeC,GAAUH,KAACA,EAAIC,KAAEA,IACnC,MAAMG,EAAWH,EAAO,IAAMD,EAC9B,GAAIN,EAAUU,GAAW,CACrB,OAAOV,EAAUU,E,CAGrB,IAAKT,EAAaS,GAAW,CACzBT,EAAaS,GAAYC,MAAMN,EAAQO,IAAaN,EAAMC,IAAOM,MAAKC,IAClE,GAAIA,EAAKC,SAAW,IAAK,CACrB,OAAOD,EAAKE,M,KACT,CACH,MAAM,IAAIC,MAAM,0B,KAI5B,MAAMd,QAAaF,EAAaS,GAChCV,EAAUU,GAAYP,EACtB,OAAOA,CACX,CC7BO,MAAMe,EAAY,CAACZ,EAAca,EAAeC,KACtD,IAAKC,EAAU,CACd,M,CAED,IAAIC,EAAU,GAMdC,SAASC,OAAS,GAAGlB,KAAQmB,mBAAmBN,KAASG,WAAiB,EAGpE,MAAMI,EAAapB,IACzB,IAAKe,EAAU,CACd,OAAO,I,CAER,MAAMM,EAASrB,EAAO,IACtB,MAAMsB,EAAUL,SAASC,OAAOK,MAAM,KACtC,IAAK,IAAIC,EAAI,EAAGA,EAAIF,EAAQG,OAAQD,IAAK,CACxC,IAAIN,EAASI,EAAQE,GAAGE,OACxB,GAAIR,EAAOpB,WAAWuB,GAAS,CAC9B,OAAOM,mBAAmBT,EAAOU,UAAUP,EAAOI,Q,EAGpD,OAAO,IAAI,EAGL,MAAMI,EAAcC,IAC1B,IACC,MAAMC,EAAS,IAAIC,UACnB,MAAMC,EAAMF,EAAOG,gBAAgBJ,EAAY,iBAC/C,MAAMK,EAAaF,EAAIG,cAAc,eACrC,GAAID,EAAY,CACf,OAAO,K,CAER,MAAME,EAAaJ,EAAIK,gBACvB,GAAID,EAAWE,QAAQC,gBAAkB,MAAO,CAC/C,OAAO,K,CAER,OAAO,I,CACN,MAAOC,GACR,OAAO,K,SC/BIC,EAAO,MAInB,WAAArE,CAAAC,G,UAgBuBC,KAAIyB,KAAW,KAIfzB,KAAI0B,KAAG,aAEb1B,KAAOoE,QAAG,MACVpE,KAAKkE,MAAG,MAtBxBlE,KAAKG,EAAIC,EAAQJ,KAAKK,KACtB,CAwBD,YAAAgE,CAAaC,GACZC,EAAa3D,EAAO0D,EAAUtD,EAAUpB,K,CAIzC,aAAA4E,CAAcF,GACbC,EAAa1D,EAAYyD,EAAUtD,EAAUpB,K,CAItC,sBAAM6E,GACb,MAAMhD,KAACA,EAAI2C,QAAEA,GAAWpE,KACxB,IAAyByB,IAAS2C,EAAS,CAC1C,M,OAEKpE,KAAK0E,U,CAGZ,iBAAAC,GACC,GAAIC,IAAiB,CACpB5E,KAAKoE,QAAU,KACfpE,KAAKyE,mBAAmBI,S,KAClB,CACN7E,KAAK8E,kBAAiBnD,UACrB3B,KAAKoE,QAAU,WACTpE,KAAKyE,kBAAkB,G,EAKhC,oBAAAM,GACC,GAAI/E,KAAKgF,qBAAsB,CAC9BhF,KAAKgF,qBAAqBC,aAC1BjF,KAAKgF,qBAAuB,I,EAI9B,uBAAME,GACLlF,KAAKqE,aAAarE,KAAKmF,MACvBnF,KAAKwE,cAAcxE,KAAKoF,aAClBpF,KAAKyE,kB,CAGJ,gBAAAK,CAAiBO,GACxB,UAA+BC,SAAW,cAAiBA,OAAeC,qBAAsB,CAC/FF,IACA,M,CAEDrF,KAAKgF,qBAAuB,IAAIO,sBAC/BC,IACCA,EAAQC,SAAQC,IACf,GAAIA,EAAMC,eAAgB,CACzB,GAAI3F,KAAKgF,qBAAsB,CAC9BhF,KAAKgF,qBAAqBC,aAC1BjF,KAAKgF,qBAAuB,I,CAE7BK,G,IAEA,GAEH,CAACO,WAAY,SAEd5F,KAAKgF,qBAAqBa,QAAQ7F,KAAKK,K,CAGhC,cAAMqE,GACb,IACC,MAAMjD,KAACA,EAAIC,KAAEA,GAAQ1B,KACrB,MAAM8F,QAAalE,EAAU,CAACH,OAAMC,SACpC,MAAMqE,EAAUzC,EAAWwC,GAC3B9F,KAAKK,KAAK2F,UAAYD,EAAUD,EAAO,I,CACtC,MAAOG,GACRjG,KAAKK,KAAK2F,UAAY,GACtBhG,KAAKkE,MAAQ,I,EAIf,MAAA5D,GACC,GAAIN,KAAKkE,MAAO,CACf,OAAO,I,CAER,OACC/D,EAACI,EAAI,CAACE,MAAOT,KAAKG,EAAEO,QAAQM,EAAUpB,MAAOuF,KAAMnF,KAAKmF,KAAMC,MAAOpF,KAAKoF,O,4KC1HtE,MAAMc,EAAmBvF,EAAKC,EAAO,CAAC,MAAO,KAAM,KAAM,KAAM,QAG/D,MAAMuF,EAAmB,CAC/BvG,KAAM,mBACNwG,UAAW,8BACXC,MAAO,0BACPC,UAAW,+BACXC,SAAU,+BAGJ,MAAMC,EAAuB,aCbpC,IAAYC,GAAZ,SAAYA,GACXA,EAAA,eACAA,EAAA,iBACAA,EAAA,cACA,EAJD,CAAYA,MAIX,K,MCMYC,EAAc,MAG1B,WAAA5G,CAAAC,G,8CASiBC,KAAImF,KAA0B,IAIFnF,KAAY2G,aAAI,MAIb3G,KAAc4G,eAAI,wBAInB5G,KAAa6G,cAAI,yBAIrB7G,KAAU8G,WAAK,aAIhB9G,KAAS+G,UAAI,YAmB9C/G,KAAAgH,MAAmBP,EAAUQ,KAiC9BjH,KAAAkH,cAAiBC,IACxBnH,KAAKgH,MAAQG,EAEbnH,KAAKoH,UAAUC,KAAK,CACnBC,UAAWnB,EAAiBvG,KAC5BuH,MAAOnH,KAAKgH,MACZO,IAAKvH,KAAKK,MACT,EAvFFL,KAAKG,EAAIC,EAAQJ,KAAKK,KACtB,CAkCD,YAAAgE,CAAaC,GACZC,EAAa2B,EAAkB5B,EAAU6B,EAAiBvG,K,CAI3D,UAAA4H,CAAWlD,GACVtE,KAAKyH,YAAYC,aAAalB,EAAsBlC,GACpDtE,KAAKyH,YAAYE,UAAUC,UAAUC,OAAOC,KAAKrB,IACjDzG,KAAKyH,YAAYE,UAAUI,IAAIzD,GAC/BjC,EAAUmE,EAAsBlC,E,CAKjC,gBAAY0D,GACX,OAAOnF,EAAU2D,E,CAGlB,eAAYiB,GACX,OAAO/E,SAASqB,e,CAGjB,4BAAYkE,GACX,OAAOzF,GAAY8C,OAAO4C,YAAc5C,OAAO4C,WAAW,gCAAgCC,O,CAG3F,iBAAAjD,GACClF,KAAKoI,mBACLpI,KAAKqE,aAAarE,KAAKmF,K,CAGhB,gBAAAiD,GACP,MAAMC,EAAUR,OAAOC,KAAKrB,GAC5B,IAAI6B,EAAetI,KAAKgI,aACxB,MAAMO,EAAYvI,KAAKyH,YAAYe,aAAahC,GAEhD,GAAI8B,GAAgBD,EAAQI,SAASH,GAAe,CACnDtI,KAAKgH,MAAQsB,C,MACP,GAAIC,GAAaF,EAAQI,SAASF,GAAY,CACpDvI,KAAKgH,MAAQuB,C,KACP,CACNvI,KAAKgH,MAAQP,EAAUQ,I,EAczB,MAAA3G,GACC,IAAIoI,EAAS1I,KAAKgH,QAAUP,EAAUkC,KACtC,GAAI3I,KAAKgH,QAAUP,EAAUQ,KAAM,CAClCyB,EAAS1I,KAAKiI,wB,CAEf,OACC9H,EAACI,EAAK,CAAAC,IAAA,2CAAAC,MAAOT,KAAKG,EAAEO,QAAQyF,EAAiBvG,MAC1CoH,MAAO0B,EAASjC,EAAUkC,KAAOlC,EAAUmC,MAC3CzD,KAAMnF,KAAKmF,MACbhF,EAAA,UAAAK,IAAA,2CAAQqI,QAAS,IAAM7I,KAAKkH,cAAcwB,EAASjC,EAAUmC,MAAQnC,EAAUkC,MAC/D,eAAA3I,KAAKgH,MAAK,aACZ0B,EAAS1I,KAAK6G,cAAgB7G,KAAK4G,gBAChDzG,EAAA,QAAAK,IAAA,4CACCL,EAAA,QAAAK,IAAA,2CAAMC,MAAO0F,EAAiBC,WAC5BK,EAAUmC,OAASzI,EAAU,YAAAK,IAAA,2CAAAiB,KAAK,MAAMhB,MAAO0F,EAAiBG,UAAW5E,KAAK,eAChF+E,EAAUkC,MAAQxI,EAAA,YAAAK,IAAA,2CAAUiB,KAAK,OAAOhB,MAAO0F,EAAiBI,SAAU7E,KAAK,gBAEhF1B,KAAK2G,aACLxG,EAAM,QAAAM,MAAO0F,EAAiBE,OAC5BqC,EAAS1I,KAAK+G,UAAY/G,KAAK8G,YAE7B,O","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["FlexClass","root","GovFlex","constructor","hostRef","this","direction","responsive","h","govHost","host","render","Host","key","class","classes","pick","Sizes","IconColors","Colors","Types","IconClass","dsVersion","version","iconCache","requestCache","isExternalUrl","path","startsWith","iconUrl","name","type","async","fetchIcon","cacheKey","fetch","iconsPath","then","resp","status","text","Error","setCookie","value","days","isWindow","expires","document","cookie","encodeURIComponent","getCookie","nameEQ","cookies","split","i","length","trim","decodeURIComponent","substring","isValidSVG","svgContent","parser","DOMParser","doc","parseFromString","parseError","querySelector","svgElement","documentElement","tagName","toLowerCase","error","GovIcon","visible","validateSize","newValue","validateProp","validateColor","loadIconPathData","loadIcon","connectedCallback","iconsLazyLoad","finally","waitUntilVisible","disconnectedCallback","intersectionObserver","disconnect","componentWillLoad","size","color","callback","window","IntersectionObserver","entries","forEach","entry","isIntersecting","rootMargin","observe","data","isValid","innerHTML","e","ThemeSwitchSizes","ThemeSwitchClass","indicator","label","iconLight","iconDark","ATTRIBUTE_THEME_NAME","ThemeList","GovThemeSwitch","displayLabel","ariaLabelLight","ariaLabelDark","labelLight","labelDark","theme","auto","setThemeState","state","govChange","emit","component","ref","watchTheme","htmlElement","setAttribute","classList","remove","Object","keys","add","storageValue","isSystemPrefersColorDark","matchMedia","matches","initDefaultState","options","currentState","htmlState","getAttribute","includes","isDark","dark","light","onClick"],"sources":["../../../packages/core/src/components/gov-flex/constants.ts","../../../packages/core/src/components/gov-flex/gov-flex.tsx","../../../packages/core/src/components/gov-icon/constants.ts","../../../packages/core/src/utils/ds.utils.ts","../../../packages/core/src/utils/icon.utils.ts","../../../packages/core/src/helpers/Dom/document.ts","../../../packages/core/src/components/gov-icon/gov-icon.tsx","../../../packages/core/src/components/gov-theme-switch/constants.ts","../../../packages/core/src/components/gov-theme-switch/gov-theme-switch.types.ts","../../../packages/core/src/components/gov-theme-switch/gov-theme-switch.tsx"],"sourcesContent":["import {Sizes} from \"../../core/constants/sizes\";\nimport {ValueOf} from \"../../types/interfaces\";\n\nexport const FlexSizes = Sizes\nexport type FlexSizesType = `${ValueOf<typeof FlexSizes>}`\n\nexport const FlexClass = {\n\troot: 'gov-flex',\n}\n\n","import {Component, Element, h, Host, Prop} from '@stencil/core'\nimport {FlexClass, FlexSizesType} from './constants'\nimport {govHost} from '../../helpers/Dom/template'\nimport {GovHost} from '../../helpers/Dom/template.types'\n\n@Component({\n\ttag: 'gov-flex',\n})\nexport class GovFlex {\n\tprivate h: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() host: HTMLGovGridElement\n\n\t/**\n\t * Controls the flex direction of the container.\n\t */\n\t@Prop({reflect: true}) direction?: 'row' | 'row-reverse' | 'column' | 'column-reverse' = 'row';\n\n\t/**\n\t * Defines how the browser distributes space between and around content items along the main axis.\n\t */\n\t@Prop({\n\t\tattribute: 'justify-content',\n\t\treflect: true\n\t}) justifyContent?: 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly';\n\n\t/**\n\t * Aligns flex items along the cross axis.\n\t */\n\t@Prop({\n\t\tattribute: 'align-items',\n\t\treflect: true\n\t}) alignItems?: 'stretch' | 'flex-start' | 'flex-end' | 'center' | 'baseline';\n\n\t/**\n\t * Controls whether the flex container is a single-line or multi-line flex container.\n\t */\n\t@Prop({reflect: true}) wrap?: 'nowrap' | 'wrap' | 'wrap-reverse';\n\n\t/**\n\t * Aligns the flex container's lines within when there is extra space in the cross-axis.\n\t */\n\t@Prop({\n\t\tattribute: 'align-content',\n\t\treflect: true\n\t}) alignContent?: 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'stretch';\n\n\t/**\n\t * Sets the alignment of the flex container’s children along the flex container’s cross axis, overriding the `align-items` property for individual flex items.\n\t */\n\t@Prop({\n\t\tattribute: 'align-self',\n\t\treflect: true\n\t}) alignSelf?: 'auto' | 'normal' | 'self-start' | 'self-end' | 'flex-start' | 'flex-end' | 'center' | 'baseline' | 'stretch' | 'anchor-center';\n\n\t/**\n\t * The gap property creates consistent spacing between flex items in the container.\n\t */\n\t@Prop({\n\t\tattribute: 'gap',\n\t\treflect: true\n\t}) gap?: FlexSizesType;\n\n\t/**\n\t * Option to turn off responsive\n\t */\n\t@Prop({reflect: true}) readonly responsive: string = \"true\"\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={this.h.classes(FlexClass.root)}>\n\t\t\t\t<slot></slot>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","import { ValueOf } from '../../types/interfaces'\nimport { pick } from '../../utils/utils';\nimport { Colors } from '../../core/constants/colors';\nimport {Sizes} from \"../../core/constants/sizes\";\n\nexport const IconSizes = pick(Sizes, ['_XS', '_S', '_M', '_L', '_XL', '_2XL', '_3XL', '_4XL', '_5XL'])\nexport type IconSizesType = `${ValueOf<typeof IconSizes>}`\n\nexport const IconColors = pick(Colors, [\n\t'DEFAULT',\n\t'PRIMARY',\n\t'SECONDARY',\n\t'NEUTRAL',\n\t'ERROR',\n\t'SUCCESS',\n\t'WARNING',\n\t'DISABLED',\n\t'WHITE',\n\t'BLACK',\n])\nexport type IconColorType = `${ValueOf<typeof IconColors>}`\n\nenum Types {\n\tBASIC = 'basic',\n\tCOMPLEX = 'complex',\n\tCOLORED = 'colored',\n}\nexport type Type = `${ValueOf<typeof Types>}`\n\nexport const IconClass = {\n\troot: 'gov-icon',\n\tholder: 'gov-icon__holder',\n}\n","import { version } from '../../package.json'\n\nexport const dsVersion = (): string => {\n\treturn version\n}\n","import {dsVersion} from \"./ds.utils\"\nimport {iconsPath} from \"../helpers/Dom/win\"\n\nconst iconCache: { [key: string]: string } = {}\nconst requestCache: { [key: string]: Promise<string> } = {}\n\nconst isExternalUrl = (path: string) => path.startsWith(\"http://\") || path.startsWith(\"https://\")\nconst iconUrl = (path: string, name: string, type: string) => {\n if (isExternalUrl(path)) {\n return `${path}/${type}/${name}.svg?v=${dsVersion()}`\n }\n return `${path}/${type}/${name}.svg` + `?v=${dsVersion()}`\n}\n\nexport async function fetchIcon({name, type}: { name: string; type: string }): Promise<string> {\n const cacheKey = type + \"-\" + name\n if (iconCache[cacheKey]) {\n return iconCache[cacheKey]\n }\n\n if (!requestCache[cacheKey]) {\n requestCache[cacheKey] = fetch(iconUrl(iconsPath(), name, type)).then(resp => {\n if (resp.status === 200) {\n return resp.text()\n } else {\n throw new Error(\"Gov Icon doesn't exists\")\n }\n })\n }\n const path = await requestCache[cacheKey]\n iconCache[cacheKey] = path\n return path\n}\n","import {Nullable} from \"../../utils/helpers.types\";\nimport {isWindow} from \"./win\";\n\nexport const setCookie = (name: string, value: string, days?: number) => {\n\tif (!isWindow) {\n\t\treturn\n\t}\n\tlet expires = \"\";\n\tif (days) {\n\t\tconst date = new Date();\n\t\tdate.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\n\t\texpires = \"; expires=\" + date.toUTCString();\n\t}\n\tdocument.cookie = `${name}=${encodeURIComponent(value)}${expires}; path=/`;\n}\n\nexport const getCookie = (name: string): Nullable<string> => {\n\tif (!isWindow) {\n\t\treturn null\n\t}\n\tconst nameEQ = name + \"=\";\n\tconst cookies = document.cookie.split(';');\n\tfor (let i = 0; i < cookies.length; i++) {\n\t\tlet cookie = cookies[i].trim();\n\t\tif (cookie.startsWith(nameEQ)) {\n\t\t\treturn decodeURIComponent(cookie.substring(nameEQ.length));\n\t\t}\n\t}\n\treturn null;\n}\n\nexport const isValidSVG = (svgContent: string): boolean => {\n\ttry {\n\t\tconst parser = new DOMParser();\n\t\tconst doc = parser.parseFromString(svgContent, \"image/svg+xml\");\n\t\tconst parseError = doc.querySelector(\"parsererror\");\n\t\tif (parseError) {\n\t\t\treturn false;\n\t\t}\n\t\tconst svgElement = doc.documentElement;\n\t\tif (svgElement.tagName.toLowerCase() !== \"svg\") {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t} catch (error) {\n\t\treturn false;\n\t}\n}\n","import {Build, Component, Element, h, Host, Prop, State, Watch} from \"@stencil/core\"\nimport {IconClass, IconColors, type IconColorType, IconSizesType} from \"./constants\"\nimport {fetchIcon} from \"../../utils/icon.utils\"\nimport {govHost} from \"../../helpers/Dom/template\"\nimport {GovHost} from \"../../helpers/Dom/template.types\"\nimport {iconsLazyLoad} from \"../../helpers/Dom/win\"\nimport {validateProp} from \"../../helpers/Validate/props\";\nimport {Sizes} from \"../../core/constants/sizes\";\nimport {isValidSVG} from \"../../helpers/Dom/document\";\n\n@Component({\n\tassetsDirs: [\"assets\"],\n\ttag: \"gov-icon\",\n})\nexport class GovIcon {\n\tprivate h: GovHost\n\tprivate intersectionObserver: IntersectionObserver\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() host: HTMLGovIconElement\n\t/**\n\t * Icon size\n\t */\n\t@Prop({reflect: true}) readonly size?: IconSizesType\n\t/**\n\t * Icon color\n\t */\n\t@Prop({reflect: true}) readonly color?: IconColorType\n\t/**\n\t * Name of icon in folder\n\t */\n\t@Prop({reflect: true}) name: string = null\n\t/**\n\t * Type (folder) of icon\n\t */\n\t@Prop({reflect: true}) type = \"components\"\n\n\t@State() private visible = false\n\t@State() private error = false\n\n\t@Watch(\"size\")\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(Sizes, newValue, IconClass.root)\n\t}\n\n\t@Watch(\"color\")\n\tvalidateColor(newValue: string): void {\n\t\tvalidateProp(IconColors, newValue, IconClass.root)\n\t}\n\n\t@Watch(\"name\")\n\tprivate async loadIconPathData(): Promise<void> {\n\t\tconst {name, visible} = this\n\t\tif (!Build.isBrowser || !name || !visible) {\n\t\t\treturn\n\t\t}\n\t\tawait this.loadIcon()\n\t}\n\n\tconnectedCallback(): void {\n\t\tif (iconsLazyLoad()) {\n\t\t\tthis.visible = true\n\t\t\tthis.loadIconPathData().finally()\n\t\t} else {\n\t\t\tthis.waitUntilVisible(async () => {\n\t\t\t\tthis.visible = true\n\t\t\t\tawait this.loadIconPathData()\n\t\t\t})\n\t\t}\n\t}\n\n\tdisconnectedCallback(): void {\n\t\tif (this.intersectionObserver) {\n\t\t\tthis.intersectionObserver.disconnect()\n\t\t\tthis.intersectionObserver = null\n\t\t}\n\t}\n\n\tasync componentWillLoad(): Promise<void> {\n\t\tthis.validateSize(this.size)\n\t\tthis.validateColor(this.color)\n\t\tawait this.loadIconPathData()\n\t}\n\n\tprivate waitUntilVisible(callback: () => void): void {\n\t\tif (!Build.isBrowser || typeof window === \"undefined\" || !(window as any).IntersectionObserver) {\n\t\t\tcallback()\n\t\t\treturn\n\t\t}\n\t\tthis.intersectionObserver = new IntersectionObserver(\n\t\t\tentries => {\n\t\t\t\tentries.forEach(entry => {\n\t\t\t\t\tif (entry.isIntersecting) {\n\t\t\t\t\t\tif (this.intersectionObserver) {\n\t\t\t\t\t\t\tthis.intersectionObserver.disconnect()\n\t\t\t\t\t\t\tthis.intersectionObserver = null\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcallback()\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t},\n\t\t\t{rootMargin: \"50px\"},\n\t\t)\n\t\tthis.intersectionObserver.observe(this.host)\n\t}\n\n\tprivate async loadIcon() {\n\t\ttry {\n\t\t\tconst {name, type} = this\n\t\t\tconst data = await fetchIcon({name, type})\n\t\t\tconst isValid = isValidSVG(data)\n\t\t\tthis.host.innerHTML = isValid ? data : null;\n\t\t} catch (e) {\n\t\t\tthis.host.innerHTML = ''\n\t\t\tthis.error = true\n\t\t}\n\t}\n\n\trender() {\n\t\tif (this.error) {\n\t\t\treturn null\n\t\t}\n\t\treturn (\n\t\t\t<Host class={this.h.classes(IconClass.root)} size={this.size} color={this.color}/>\n\t\t)\n\t}\n}\n","import {pick} from \"../../utils/utils\";\nimport {Sizes} from \"../../core/constants/sizes\";\nimport {ValueOf} from \"../../types/interfaces\";\n\nexport const ThemeSwitchSizes = pick(Sizes, ['_XS', '_S', '_M', '_L', '_XL'])\nexport type ThemeSwitchSizesType = `${ValueOf<typeof ThemeSwitchSizes>}`\n\nexport const ThemeSwitchClass = {\n\troot: 'gov-theme-switch',\n\tindicator: 'gov-theme-switch__indicator',\n\tlabel: 'gov-theme-switch__label',\n\ticonLight: 'gov-theme-switch__icon-light',\n\ticonDark: 'gov-theme-switch__icon-dark',\n}\n\nexport const ATTRIBUTE_THEME_NAME = 'data-theme'\n","import {GovBaseEvent} from \"../../types/event.types\";\n\nexport enum ThemeList {\n\tauto = 'auto',\n\tlight = 'light',\n\tdark = 'dark'\n}\n\nexport interface ThemeSwitchEvent extends GovBaseEvent {\n\tref: HTMLGovThemeSwitchElement;\n\tstate: ThemeList\n}\n\n","import {Component, Element, Event, EventEmitter, h, Host, Prop, State, Watch} from \"@stencil/core\"\nimport {GovHost} from \"../../helpers/Dom/template.types\";\nimport {govHost} from \"../../helpers/Dom/template\";\nimport {ATTRIBUTE_THEME_NAME, ThemeSwitchClass, ThemeSwitchSizes, ThemeSwitchSizesType} from \"./constants\";\nimport {isWindow} from \"../../helpers/Dom/win\";\nimport {ThemeList, ThemeSwitchEvent} from \"./gov-theme-switch.types\";\nimport {validateProp} from \"../../helpers/Validate/props\";\nimport {getCookie, setCookie} from \"../../helpers/Dom/document\";\n\n@Component({\n\ttag: \"gov-theme-switch\",\n})\nexport class GovThemeSwitch {\n\tprivate h: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() host: HTMLGovThemeSwitchElement\n\n\t/**\n\t * Switch's size.\n\t */\n\t@Prop() readonly size?: ThemeSwitchSizesType = \"m\"\n\t/**\n\t * Display switch label\n\t */\n\t@Prop({attribute: \"display-label\"}) readonly displayLabel? = false\n\t/**\n\t * Label in light mode\n\t */\n\t@Prop({attribute: \"aria-label-light\"}) readonly ariaLabelLight? = \"Přepnout na tmavý mód\"\n\t/**\n\t * Label in dark mode\n\t */\n\t@Prop({attribute: \"aria-label-dark\"}) readonly ariaLabelDark? = \"Přepnout na světlý mód\"\n\t/**\n\t * Label in light mode\n\t */\n\t@Prop({attribute: \"label-light\"}) readonly labelLight? = \"Světlý mód\"\n\t/**\n\t * Label in dark mode\n\t */\n\t@Prop({attribute: \"label-dark\"}) readonly labelDark? = \"Tmavý mód\"\n\t/**\n\t * Called when the theme is changed by the user\n\t */\n\t@Event({eventName: \"gov-change\"}) govChange: EventEmitter<ThemeSwitchEvent>\n\n\t@Watch(\"size\")\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(ThemeSwitchSizes, newValue, ThemeSwitchClass.root)\n\t}\n\n\t@Watch(\"theme\")\n\twatchTheme(newValue: ThemeList): void {\n\t\tthis.htmlElement.setAttribute(ATTRIBUTE_THEME_NAME, newValue);\n\t\tthis.htmlElement.classList.remove(...Object.keys(ThemeList));\n\t\tthis.htmlElement.classList.add(newValue);\n\t\tsetCookie(ATTRIBUTE_THEME_NAME, newValue);\n\t}\n\n\t@State() theme: ThemeList = ThemeList.auto\n\n\tprivate get storageValue() {\n\t\treturn getCookie(ATTRIBUTE_THEME_NAME)\n\t}\n\n\tprivate get htmlElement(): HTMLElement {\n\t\treturn document.documentElement\n\t}\n\n\tprivate get isSystemPrefersColorDark(): boolean {\n\t\treturn isWindow && window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.initDefaultState()\n\t\tthis.validateSize(this.size)\n\t}\n\n\tprivate initDefaultState() {\n\t\tconst options = Object.keys(ThemeList);\n\t\tlet currentState = this.storageValue;\n\t\tconst htmlState = this.htmlElement.getAttribute(ATTRIBUTE_THEME_NAME)\n\n\t\tif (currentState && options.includes(currentState)) {\n\t\t\tthis.theme = currentState as ThemeList;\n\t\t} else if (htmlState && options.includes(htmlState)) {\n\t\t\tthis.theme = htmlState as ThemeList;\n\t\t} else {\n\t\t\tthis.theme = ThemeList.auto;\n\t\t}\n\t}\n\n\tprivate setThemeState = (state: ThemeList) => {\n\t\tthis.theme = state;\n\n\t\tthis.govChange.emit({\n\t\t\tcomponent: ThemeSwitchClass.root,\n\t\t\tstate: this.theme,\n\t\t\tref: this.host\n\t\t})\n\t}\n\n\trender() {\n\t\tlet isDark = this.theme === ThemeList.dark;\n\t\tif (this.theme === ThemeList.auto) {\n\t\t\tisDark = this.isSystemPrefersColorDark;\n\t\t}\n\t\treturn (\n\t\t\t<Host class={this.h.classes(ThemeSwitchClass.root)}\n\t\t\t\t theme={isDark ? ThemeList.dark : ThemeList.light}\n\t\t\t\t size={this.size}>\n\t\t\t\t<button onClick={() => this.setThemeState(isDark ? ThemeList.light : ThemeList.dark)}\n\t\t\t\t\t\taria-current={this.theme}\n\t\t\t\t\t\taria-label={isDark ? this.ariaLabelDark : this.ariaLabelLight}>\n\t\t\t\t\t<span>\n\t\t\t\t\t\t<span class={ThemeSwitchClass.indicator}>\n\t\t\t\t\t\t\t{ThemeList.light && <gov-icon name=\"sun\" class={ThemeSwitchClass.iconLight} type=\"components\"></gov-icon>}\n\t\t\t\t\t\t\t{ThemeList.dark && <gov-icon name=\"moon\" class={ThemeSwitchClass.iconDark} type=\"components\"></gov-icon>}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t{this.displayLabel ? (\n\t\t\t\t\t\t\t<span class={ThemeSwitchClass.label}>\n\t\t\t\t\t\t\t\t{isDark ? this.labelDark : this.labelLight}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t) : null\n\t\t\t\t\t\t}\n\t\t\t\t\t</span>\n\t\t\t\t</button>\n\t\t\t</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 i,g as e}from"./p-
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as t,h as s,H as i,g as e}from"./p-B8TR1oqt.js";import{v as o}from"./p-NOJjz9dT.js";import{C as h}from"./p-U40vKHrs.js";import{S as n}from"./p-BcQO4NH2.js";import{p as r}from"./p-CQvUntGY.js";import{c as a}from"./p-vN03FcXN.js";import{g as l,a as c}from"./p-CoD1xawt.js";import{d as f}from"./p-CgDnDrq5.js";import{t as d}from"./p-Cjg0wpDG.js";const p=r(h,["PRIMARY","NEUTRAL"]);const u=r(n,["_S","_M","_L"]);var v;(function(t){t["TOP"]="top";t["RIGHT"]="right";t["BOTTOM"]="bottom";t["LEFT"]="left"})(v||(v={}));const m={root:"gov-tooltip"};const g={root:"gov-tooltip-content"};const b=class{constructor(s){t(this,s);this.tooltipContentId=undefined;this.tooltipId=undefined;this.color=p.PRIMARY;this.size=u._M;this.position="right";this.message=undefined;this.icon=undefined;this.persist=false;this.repositionListenersAttached=false;this.reposition=()=>{if(this.tooltipContent){this.verifyPositionSpace()}};this.h=l(this.host);this.tooltipId=a("GovTooltip");this.tooltipContentId=a("GovContentTooltip")}validateColor(t){o(p,t,m.root)}validateSize(t){o(u,t,m.root)}validatePosition(t){o(v,t,m.root)}rerenderMessage(){this.createContentWrapper()}connectedCallback(){this.createContentWrapper();this.registerListeners()}componentWillLoad(){this.validateColor(this.color);this.validateSize(this.size);this.validatePosition(this.position)}componentDidUpdate(){this.createContentWrapper()}disconnectedCallback(){var t;(t=this.resizeObserver)===null||t===void 0?void 0:t.disconnect();this.resizeObserver=undefined;window.removeEventListener("resize",this.reposition);this.repositionListenersAttached=false;this.removeContent()}createContentWrapper(){var t;if(this.tooltipContent){if(this.message!=null){this.tooltipContent.setAttribute("message",this.message)}return}let s;if(this.insideContent){s=this.insideContent}else{s=f().createElement(g.root);if(this.message!=null){s.setAttribute("message",this.message)}}s.setAttribute("id",(t=this.identifier)!==null&&t!==void 0?t:this.tooltipContentId);s.setAttribute("parent-id",this.tooltipId);s.setAttribute("color",this.color);s.setAttribute("size",this.size);f().body.appendChild(s)}get tooltipContent(){var t;return f().body.querySelector(`#${(t=this.identifier)!==null&&t!==void 0?t:this.tooltipContentId}`)}get insideContent(){return this.host.querySelector(g.root)}registerListeners(){this.host.addEventListener("click",(t=>{t.preventDefault();this.persist=true;if(this.tooltipContent){this.tooltipContent.setAttribute("persist","true")}this.showTooltip()}));this.host.addEventListener("mouseenter",(t=>{t.preventDefault();this.showTooltip()}));this.host.addEventListener("mouseleave",(t=>{t.preventDefault();if(this.persist===false){this.hideTooltip()}}))}verifyPositionSpace(){const t=12;const s=window.innerWidth-(window.innerWidth-document.documentElement.clientWidth);const i=this.host.getBoundingClientRect();const e=this.host.offsetWidth;const o=this.host.offsetHeight;const h=this.tooltipContent.offsetWidth;const n=this.tooltipContent.offsetHeight;const r={left:i.left+document.documentElement.scrollLeft,top:i.top+document.documentElement.scrollTop};const a=r.left+t+i.width+h<=s;const l=r.left>h;if(this.position===v.LEFT||this.position===v.RIGHT){this.tooltipContent.style.top=r.top-(n-o)/2+"px";if(a===false&&l===false){this.position=v.TOP;this.tooltipContent.setAttribute("position",v.TOP)}if(l&&a===false&&this.position===v.RIGHT){this.position=v.LEFT}if(a&&l===false&&this.position===v.LEFT){this.position=v.RIGHT}}if(this.position===v.RIGHT){this.tooltipContent.setAttribute("position",v.RIGHT);this.tooltipContent.style.left=r.left+t+i.width+"px"}if(this.position===v.LEFT){this.tooltipContent.setAttribute("position",v.LEFT);this.tooltipContent.style.left=r.left-(h+t)+"px"}if(this.position===v.TOP||this.position===v.BOTTOM){if(h>e){let i=r.left-(h-e)/2;const o=i<0;const n=i+h>s;if(o&&n){this.tooltipContent.style.width="auto";this.tooltipContent.style.left=t+"px";this.tooltipContent.style.right=t+"px"}else{if(o){i=t}if(n){i=i-(s-(i+h+t))*-1}this.tooltipContent.style.left=i+"px"}}else{const t=r.left+(e-h)/2;this.tooltipContent.style.left=t+"px"}}if(this.position===v.TOP){this.tooltipContent.setAttribute("position",v.TOP);this.tooltipContent.style.top=r.top-(n+t)+"px"}if(this.position===v.BOTTOM){this.tooltipContent.setAttribute("position",v.BOTTOM);this.tooltipContent.style.top=r.top+(o+t)+"px"}this.tooltipContent.style.opacity="1"}showTooltip(){if(this.tooltipContent){this.tooltipContent.style.opacity="0";this.tooltipContent.hidden=false;this.tooltipContent.setAttribute("is-visible","true");d((()=>{this.verifyPositionSpace()}));if(!this.repositionListenersAttached){this.repositionListenersAttached=true;if(typeof ResizeObserver!=="undefined"){this.resizeObserver=new ResizeObserver(this.reposition);this.resizeObserver.observe(this.tooltipContent)}window.addEventListener("resize",this.reposition)}}}hideTooltip(){var t;if(this.tooltipContent){this.tooltipContent.setAttribute("is-visible","false");this.tooltipContent.setAttribute("persist","false");this.tooltipContent.removeAttribute("style")}(t=this.resizeObserver)===null||t===void 0?void 0:t.disconnect();this.resizeObserver=undefined;window.removeEventListener("resize",this.reposition);this.repositionListenersAttached=false}removeContent(){const t=document.getElementById(this.tooltipContentId);if(t){t.remove()}}render(){var t;return s(i,{key:"20ebe5eea59967e8681fd0e35fc7aff53b5915dd",id:this.tooltipId,class:this.h.classes(m.root),position:this.position},s("span",{key:"847b78886907d683425013227eb78bbf9261b709",role:"button",tabindex:0,onKeyPress:()=>this.showTooltip(),onBlur:()=>{if(this.persist===false){this.hideTooltip()}},"aria-describedby":(t=this.identifier)!==null&&t!==void 0?t:this.tooltipContentId},s("slot",{key:"84c4c02ee11e05166fca208b82ef54298dcaa6ee"})))}async show(){this.showTooltip()}async hide(){this.persist=false;this.hideTooltip()}get host(){return e(this)}static get watchers(){return{color:[{validateColor:0}],size:[{validateSize:0}],position:[{validatePosition:0}],message:[{rerenderMessage:0}]}}};const w=class{constructor(s){t(this,s);this.color=p.PRIMARY;this.size=u._M;this.persist=false;this.isVisible=false;this.parentId=null}visibleContent(t){clearTimeout(this.timeout);if(t===false){this.timeout=setTimeout((()=>{this.host.style.visibility="hidden"}),250)}else{this.host.style.visibility="visible"}}hideContent(){this.isVisible=false;this.persist=false;const t=document.getElementById(this.parentId);if(t){t.hide().catch()}}render(){return s(i,{key:"121b5cd3878956618a7a917511e6d8d76edf6672",class:g.root,role:"tooltip",hidden:!this.isVisible,"aria-hidden":!c(this.isVisible),"is-visible":this.isVisible},this.message?s("span",{class:"gov-tooltip-content__message",innerHTML:this.message}):s("slot",null),this.persist?s("gov-button",{"on-gov-click":this.hideContent.bind(this),color:this.color,size:this.size,type:"base"},s("gov-icon",{slot:"icon-start",name:"x-lg",type:"components"})):null)}get host(){return e(this)}static get watchers(){return{isVisible:[{visibleContent:0}]}}};export{b as gov_tooltip,w as gov_tooltip_content};
|
|
2
|
+
//# sourceMappingURL=p-4342c252.entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TooltipColors","pick","Colors","TooltipSize","Sizes","TooltipPosition","TooltipClass","root","TooltipContentClass","GovTooltip","constructor","hostRef","this","tooltipContentId","undefined","tooltipId","color","PRIMARY","size","_M","position","message","icon","persist","repositionListenersAttached","reposition","tooltipContent","verifyPositionSpace","h","govHost","host","createID","validateColor","newValue","validateProp","validateSize","validatePosition","rerenderMessage","createContentWrapper","connectedCallback","registerListeners","componentWillLoad","componentDidUpdate","disconnectedCallback","_a","resizeObserver","disconnect","window","removeEventListener","removeContent","setAttribute","content","insideContent","documentNode","createElement","identifier","body","appendChild","querySelector","addEventListener","e","preventDefault","showTooltip","hideTooltip","offset","windowWidth","innerWidth","document","documentElement","clientWidth","trigger","getBoundingClientRect","trgWidth","offsetWidth","trgHeight","offsetHeight","contentWidth","contentHeight","triggerPos","left","scrollLeft","top","scrollTop","isRightSpace","width","isLeftSpace","LEFT","RIGHT","style","TOP","BOTTOM","leftPosition","isNotLeftSpace","isNotRightSpace","right","opacity","hidden","tick","ResizeObserver","observe","removeAttribute","contentEl","getElementById","remove","render","Host","key","id","class","classes","role","tabindex","onKeyPress","onBlur","show","hide","GovTooltipContent","isVisible","parentId","visibleContent","clearTimeout","timeout","setTimeout","visibility","hideContent","parentEl","catch","toBoolAttr","innerHTML","bind","type","slot","name"],"sources":["../../../packages/core/src/components/gov-tooltip/constants.tsx","../../../packages/core/src/components/gov-tooltip/gov-tooltip.tsx","../../../packages/core/src/components/gov-tooltip/gov-tooltip-content.tsx"],"sourcesContent":["import { Colors } from '../../core/constants/colors'\nimport { Sizes } from '../../core/constants/sizes'\nimport { ValueOf } from '../../types/interfaces'\nimport { pick } from '../../utils/utils'\n\nexport const TooltipColors = pick(Colors, ['PRIMARY', 'NEUTRAL'])\nexport type TooltipColorType = `${ValueOf<typeof TooltipColors>}`\n\nexport const TooltipSize = pick(Sizes, ['_S', '_M', '_L'])\nexport type TooltipSizeType = `${ValueOf<typeof TooltipSize>}`\n\nexport enum TooltipPosition {\n\tTOP = 'top',\n\tRIGHT = 'right',\n\tBOTTOM = 'bottom',\n\tLEFT = 'left',\n}\nexport type TooltipPositionType = `${ValueOf<typeof TooltipPosition>}`\n\nexport const TooltipClass = {\n\troot: 'gov-tooltip',\n}\n\nexport const TooltipContentClass = {\n\troot: 'gov-tooltip-content',\n}\n","import {Component, Element, h, Host, Method, Prop, State, Watch} from \"@stencil/core\"\nimport {validateProp} from \"../../helpers/Validate/props\"\nimport {\n\tTooltipClass,\n\tTooltipContentClass,\n\tTooltipPosition,\n\tTooltipPositionType,\n\tTooltipSize,\n\tTooltipSizeType,\n\tTooltipColors,\n\tTooltipColorType,\n} from \"./constants\"\nimport {createID} from \"../../utils/string.utils\"\nimport {govHost} from \"../../helpers/Dom/template\"\nimport {GovHost} from \"../../helpers/Dom/template.types\"\nimport {documentNode} from \"../../helpers/Dom/win\";\nimport {Nullable} from \"../../utils/helpers.types\";\nimport {tick} from \"../../utils/stencil.utils\";\n\n@Component({\n\ttag: \"gov-tooltip\",\n})\nexport class GovTooltip {\n\tprivate h: GovHost\n\tprivate readonly tooltipContentId = undefined\n\tprivate readonly tooltipId = undefined\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.tooltipId = createID(\"GovTooltip\")\n\t\tthis.tooltipContentId = createID(\"GovContentTooltip\")\n\t}\n\n\t@Element() host: HTMLGovTooltipElement\n\t/**\n\t * Style variation of the tooltip\n\t */\n\t@Prop() readonly color?: TooltipColorType = TooltipColors.PRIMARY\n\t/**\n\t * Tooltip’s size.\n\t */\n\t@Prop() readonly size?: TooltipSizeType = TooltipSize._M\n\t/**\n\t * Tooltip display position\n\t */\n\t@Prop({mutable: true}) position: TooltipPositionType = \"right\"\n\t/**\n\t * Information contained in the tooltip\n\t */\n\t@Prop() readonly message: string = undefined\n\t/**\n\t * Custom tooltip identifier.\n\t */\n\t@Prop({attribute: \"identifier\"}) readonly identifier: string\n\t/**\n\t * Trigger is just an icon\n\t */\n\t@Prop({reflect: true}) readonly icon: boolean = undefined\n\n\t@State() persist = false\n\n\t@Watch(\"color\")\n\tvalidateColor(newValue: string): void {\n\t\tvalidateProp(TooltipColors, newValue, TooltipClass.root)\n\t}\n\n\t@Watch(\"size\")\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(TooltipSize, newValue, TooltipClass.root)\n\t}\n\n\t@Watch(\"position\")\n\tvalidatePosition(newValue: string): void {\n\t\tvalidateProp(TooltipPosition, newValue, TooltipClass.root)\n\t}\n\n\t@Watch(\"message\")\n\trerenderMessage(): void {\n\t\tthis.createContentWrapper();\n\t}\n\n\tconnectedCallback() {\n\t\tthis.createContentWrapper()\n\t\tthis.registerListeners()\n\t}\n\n\tcomponentWillLoad(): void {\n\t\tthis.validateColor(this.color)\n\t\tthis.validateSize(this.size)\n\t\tthis.validatePosition(this.position)\n\t}\n\n\tcomponentDidUpdate() {\n\t\tthis.createContentWrapper()\n\t}\n\n\tdisconnectedCallback() {\n\t\tthis.resizeObserver?.disconnect()\n\t\tthis.resizeObserver = undefined\n\t\twindow.removeEventListener(\"resize\", this.reposition)\n\t\tthis.repositionListenersAttached = false\n\t\tthis.removeContent()\n\t}\n\n\tprivate createContentWrapper() {\n\t\tif (this.tooltipContent) {\n\t\t\tif (this.message != null) {\n\t\t\t\tthis.tooltipContent.setAttribute(\"message\", this.message)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\tlet content: HTMLGovTooltipContentElement;\n\t\tif (this.insideContent) {\n\t\t\tcontent = this.insideContent\n\t\t} else {\n\t\t\tcontent = documentNode().createElement(TooltipContentClass.root) as HTMLGovTooltipContentElement\n\t\t\tif (this.message != null) {\n\t\t\t\tcontent.setAttribute(\"message\", this.message)\n\t\t\t}\n\t\t}\n\n\t\tcontent.setAttribute(\"id\", this.identifier ?? this.tooltipContentId)\n\t\tcontent.setAttribute(\"parent-id\", this.tooltipId)\n\t\tcontent.setAttribute(\"color\", this.color)\n\t\tcontent.setAttribute(\"size\", this.size)\n\t\tdocumentNode().body.appendChild(content)\n\t}\n\n\tprivate get tooltipContent(): Nullable<HTMLGovTooltipContentElement> {\n\t\treturn documentNode().body.querySelector(`#${this.identifier ?? this.tooltipContentId}`);\n\t}\n\n\tprivate get insideContent(): Nullable<HTMLGovTooltipContentElement> {\n\t\treturn this.host.querySelector(TooltipContentClass.root)\n\t}\n\n\tprivate registerListeners() {\n\t\tthis.host.addEventListener(\"click\", e => {\n\t\t\te.preventDefault()\n\t\t\tthis.persist = true\n\t\t\tif (this.tooltipContent) {\n\t\t\t\tthis.tooltipContent.setAttribute(\"persist\", \"true\")\n\t\t\t}\n\t\t\tthis.showTooltip()\n\t\t})\n\t\tthis.host.addEventListener(\"mouseenter\", e => {\n\t\t\te.preventDefault()\n\t\t\tthis.showTooltip()\n\t\t})\n\t\tthis.host.addEventListener(\"mouseleave\", e => {\n\t\t\te.preventDefault()\n\t\t\tif (this.persist === false) {\n\t\t\t\tthis.hideTooltip()\n\t\t\t}\n\t\t})\n\t}\n\n\tprivate verifyPositionSpace() {\n\t\tconst offset = 12\n\t\tconst windowWidth = window.innerWidth - (window.innerWidth - document.documentElement.clientWidth);\n\t\tconst trigger = this.host.getBoundingClientRect()\n\t\tconst trgWidth = this.host.offsetWidth\n\t\tconst trgHeight = this.host.offsetHeight\n\t\tconst contentWidth = this.tooltipContent.offsetWidth\n\t\tconst contentHeight = this.tooltipContent.offsetHeight\n\t\tconst triggerPos = {\n\t\t\tleft: trigger.left + document.documentElement.scrollLeft,\n\t\t\ttop: trigger.top + document.documentElement.scrollTop,\n\t\t}\n\n\t\tconst isRightSpace = ((triggerPos.left + offset + trigger.width) + contentWidth) <= windowWidth;\n\t\tconst isLeftSpace = triggerPos.left > contentWidth;\n\n\t\t// LEFT/RIGHT\n\t\tif (this.position === TooltipPosition.LEFT || this.position === TooltipPosition.RIGHT) {\n\t\t\tthis.tooltipContent.style.top = (triggerPos.top - ((contentHeight - trgHeight) / 2)) + \"px\";\n\t\t\tif (isRightSpace === false && isLeftSpace === false) {\n\t\t\t\tthis.position = TooltipPosition.TOP\n\t\t\t\tthis.tooltipContent.setAttribute(\"position\", TooltipPosition.TOP)\n\t\t\t}\n\t\t\tif (isLeftSpace && isRightSpace === false && this.position === TooltipPosition.RIGHT) {\n\t\t\t\tthis.position = TooltipPosition.LEFT\n\t\t\t}\n\t\t\tif (isRightSpace && isLeftSpace === false && this.position === TooltipPosition.LEFT) {\n\t\t\t\tthis.position = TooltipPosition.RIGHT\n\t\t\t}\n\t\t}\n\t\tif (this.position === TooltipPosition.RIGHT) {\n\t\t\tthis.tooltipContent.setAttribute(\"position\", TooltipPosition.RIGHT)\n\t\t\tthis.tooltipContent.style.left = (triggerPos.left + offset + trigger.width) + \"px\"\n\t\t}\n\t\tif (this.position === TooltipPosition.LEFT) {\n\t\t\tthis.tooltipContent.setAttribute(\"position\", TooltipPosition.LEFT)\n\t\t\tthis.tooltipContent.style.left = (triggerPos.left - (contentWidth + offset)) + \"px\"\n\t\t}\n\n\t\t// LEFT/RIGHT FOR TOP/BOTTOM\n\t\tif (this.position === TooltipPosition.TOP || this.position === TooltipPosition.BOTTOM) {\n\t\t\tif (contentWidth > trgWidth) {\n\t\t\t\tlet leftPosition = (triggerPos.left - ((contentWidth - trgWidth) / 2));\n\t\t\t\tconst isNotLeftSpace = leftPosition < 0;\n\t\t\t\tconst isNotRightSpace = (leftPosition + contentWidth) > windowWidth;\n\t\t\t\tif (isNotLeftSpace && isNotRightSpace) {\n\t\t\t\t\tthis.tooltipContent.style.width = \"auto\";\n\t\t\t\t\tthis.tooltipContent.style.left = offset + \"px\";\n\t\t\t\t\tthis.tooltipContent.style.right = offset + \"px\";\n\t\t\t\t} else {\n\t\t\t\t\tif (isNotLeftSpace) {\n\t\t\t\t\t\tleftPosition = offset\n\t\t\t\t\t}\n\t\t\t\t\tif (isNotRightSpace) {\n\t\t\t\t\t\tleftPosition = leftPosition - ((windowWidth - (leftPosition + contentWidth + offset)) * -1)\n\t\t\t\t\t}\n\t\t\t\t\tthis.tooltipContent.style.left = leftPosition + \"px\"\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst leftPosition = (triggerPos.left + ((trgWidth - contentWidth) / 2))\n\n\t\t\t\tthis.tooltipContent.style.left = leftPosition + \"px\"\n\t\t\t}\n\t\t}\n\t\tif (this.position === TooltipPosition.TOP) {\n\t\t\tthis.tooltipContent.setAttribute(\"position\", TooltipPosition.TOP)\n\t\t\tthis.tooltipContent.style.top = (triggerPos.top - (contentHeight + offset)) + \"px\"\n\t\t}\n\t\tif (this.position === TooltipPosition.BOTTOM) {\n\t\t\tthis.tooltipContent.setAttribute(\"position\", TooltipPosition.BOTTOM)\n\t\t\tthis.tooltipContent.style.top = (triggerPos.top + (trgHeight + offset)) + \"px\"\n\t\t}\n\n\t\tthis.tooltipContent.style.opacity = '1'\n\n\t}\n\n\tprivate resizeObserver?: ResizeObserver\n\tprivate repositionListenersAttached = false\n\tprivate readonly reposition = () => {\n\t\tif (this.tooltipContent) {\n\t\t\tthis.verifyPositionSpace()\n\t\t}\n\t}\n\n\tprivate showTooltip() {\n\t\tif (this.tooltipContent) {\n\t\t\tthis.tooltipContent.style.opacity = '0'\n\t\t\tthis.tooltipContent.hidden = false\n\t\t\tthis.tooltipContent.setAttribute(\"is-visible\", \"true\")\n\t\t\ttick(() => {\n\t\t\t\tthis.verifyPositionSpace()\n\t\t\t})\n\t\t\tif (!this.repositionListenersAttached) {\n\t\t\t\tthis.repositionListenersAttached = true\n\t\t\t\tif (typeof ResizeObserver !== \"undefined\") {\n\t\t\t\t\tthis.resizeObserver = new ResizeObserver(this.reposition)\n\t\t\t\t\tthis.resizeObserver.observe(this.tooltipContent)\n\t\t\t\t}\n\t\t\t\twindow.addEventListener(\"resize\", this.reposition)\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate hideTooltip() {\n\t\tif (this.tooltipContent) {\n\t\t\tthis.tooltipContent.setAttribute(\"is-visible\", \"false\")\n\t\t\tthis.tooltipContent.setAttribute(\"persist\", \"false\")\n\t\t\tthis.tooltipContent.removeAttribute('style')\n\t\t}\n\t\tthis.resizeObserver?.disconnect()\n\t\tthis.resizeObserver = undefined\n\t\twindow.removeEventListener(\"resize\", this.reposition)\n\t\tthis.repositionListenersAttached = false\n\t}\n\n\tprivate removeContent() {\n\t\tconst contentEl = document.getElementById(this.tooltipContentId)\n\t\tif (contentEl) {\n\t\t\tcontentEl.remove()\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tid={this.tooltipId}\n\t\t\t\tclass={this.h.classes(TooltipClass.root)}\n\t\t\t\tposition={this.position}>\n\t\t\t\t<span role={'button'}\n\t\t\t\t\t\t\ttabindex={0}\n\t\t\t\t\t\t\tonKeyPress={() => this.showTooltip()}\n\t\t\t\t\t\t\tonBlur={() => {\n\t\t\t\t\t\t\t\tif (this.persist === false) {\n\t\t\t\t\t\t\t\t\tthis.hideTooltip()\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\taria-describedby={this.identifier ?? this.tooltipContentId}><slot/></span>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\t/**\n\t * Showing the modal\n\t */\n\t@Method()\n\tasync show(): Promise<void> {\n\t\tthis.showTooltip()\n\t}\n\n\t/**\n\t * Hiding the modal\n\t */\n\t@Method()\n\tasync hide(): Promise<void> {\n\t\tthis.persist = false\n\t\tthis.hideTooltip()\n\t}\n}\n","import { Component, Element, h, Host, Prop, Watch } from \"@stencil/core\"\nimport { TooltipContentClass, TooltipSize, TooltipSizeType, TooltipColors, TooltipColorType } from \"./constants\"\nimport { toBoolAttr } from \"../../helpers/Dom/template\"\n\n@Component({\n\ttag: \"gov-tooltip-content\",\n})\nexport class GovTooltipContent {\n\tprivate timeout\n\n\t@Element() host: HTMLGovTooltipContentElement\n\t/**\n\t * Style variation of the tooltip\n\t */\n\t@Prop() readonly color?: TooltipColorType = TooltipColors.PRIMARY\n\t/**\n\t * Tooltip’s size.\n\t */\n\t@Prop() readonly size?: TooltipSizeType = TooltipSize._M\n\t/**\n\t * Tooltip is still visible.\n\t */\n\t@Prop() persist?: boolean = false\n\t/**\n\t * Indicates display of tooltip content\n\t */\n\t@Prop({ attribute: \"is-visible\", mutable: true }) isVisible = false\n\t/**\n\t * Indicates display of tooltip content\n\t */\n\t@Prop({ attribute: \"parent-id\" }) parentId: string = null\n\t/**\n\t * Tooltip text. When set, renders the HTML message; otherwise the default `<slot/>` is used.\n\t */\n\t@Prop({ attribute: \"message\", mutable: true }) message?: string\n\n\t@Watch(\"isVisible\")\n\tvisibleContent(newValue: boolean): void {\n\t\tclearTimeout(this.timeout)\n\t\tif (newValue === false) {\n\t\t\tthis.timeout = setTimeout(() => {\n\t\t\t\tthis.host.style.visibility = \"hidden\"\n\t\t\t}, 250)\n\t\t} else {\n\t\t\tthis.host.style.visibility = \"visible\"\n\t\t}\n\t}\n\n\thideContent() {\n\t\tthis.isVisible = false\n\t\tthis.persist = false\n\t\tconst parentEl = document.getElementById(this.parentId) as HTMLGovTooltipElement\n\t\tif (parentEl) {\n\t\t\tparentEl.hide().catch()\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tclass={TooltipContentClass.root}\n\t\t\t\trole={\"tooltip\"}\n\t\t\t\thidden={!this.isVisible}\n\t\t\t\taria-hidden={!toBoolAttr(this.isVisible)}\n\t\t\t\tis-visible={this.isVisible}>\n\t\t\t\t{this.message\n\t\t\t\t\t? <span class=\"gov-tooltip-content__message\" innerHTML={this.message}></span>\n\t\t\t\t\t: <slot></slot>}\n\t\t\t\t{this.persist ? (\n\t\t\t\t\t<gov-button\n\t\t\t\t\t\ton-gov-click={this.hideContent.bind(this)}\n\t\t\t\t\t\tcolor={this.color}\n\t\t\t\t\t\tsize={this.size}\n\t\t\t\t\t\ttype={\"base\"}>\n\t\t\t\t\t\t<gov-icon slot={\"icon-start\"} name={\"x-lg\"} type={\"components\"}></gov-icon>\n\t\t\t\t\t</gov-button>\n\t\t\t\t) : null}\n\t\t\t</Host>\n\t\t)\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["TooltipColors","pick","Colors","TooltipSize","Sizes","TooltipPosition","TooltipClass","root","TooltipContentClass","GovTooltip","constructor","hostRef","this","tooltipContentId","undefined","tooltipId","color","PRIMARY","size","_M","position","message","icon","persist","repositionListenersAttached","reposition","tooltipContent","verifyPositionSpace","h","govHost","host","createID","validateColor","newValue","validateProp","validateSize","validatePosition","rerenderMessage","createContentWrapper","connectedCallback","registerListeners","componentWillLoad","componentDidUpdate","disconnectedCallback","_a","resizeObserver","disconnect","window","removeEventListener","removeContent","setAttribute","content","insideContent","documentNode","createElement","identifier","body","appendChild","querySelector","addEventListener","e","preventDefault","showTooltip","hideTooltip","offset","windowWidth","innerWidth","document","documentElement","clientWidth","trigger","getBoundingClientRect","trgWidth","offsetWidth","trgHeight","offsetHeight","contentWidth","contentHeight","triggerPos","left","scrollLeft","top","scrollTop","isRightSpace","width","isLeftSpace","LEFT","RIGHT","style","TOP","BOTTOM","leftPosition","isNotLeftSpace","isNotRightSpace","right","opacity","hidden","tick","ResizeObserver","observe","removeAttribute","contentEl","getElementById","remove","render","Host","key","id","class","classes","role","tabindex","onKeyPress","onBlur","show","hide","GovTooltipContent","isVisible","parentId","visibleContent","clearTimeout","timeout","setTimeout","visibility","hideContent","parentEl","catch","toBoolAttr","innerHTML","bind","type","slot","name"],"sources":["../../../packages/core/src/components/gov-tooltip/constants.tsx","../../../packages/core/src/components/gov-tooltip/gov-tooltip.tsx","../../../packages/core/src/components/gov-tooltip/gov-tooltip-content.tsx"],"sourcesContent":["import { Colors } from '../../core/constants/colors'\nimport { Sizes } from '../../core/constants/sizes'\nimport { ValueOf } from '../../types/interfaces'\nimport { pick } from '../../utils/utils'\n\nexport const TooltipColors = pick(Colors, ['PRIMARY', 'NEUTRAL'])\nexport type TooltipColorType = `${ValueOf<typeof TooltipColors>}`\n\nexport const TooltipSize = pick(Sizes, ['_S', '_M', '_L'])\nexport type TooltipSizeType = `${ValueOf<typeof TooltipSize>}`\n\nexport enum TooltipPosition {\n\tTOP = 'top',\n\tRIGHT = 'right',\n\tBOTTOM = 'bottom',\n\tLEFT = 'left',\n}\nexport type TooltipPositionType = `${ValueOf<typeof TooltipPosition>}`\n\nexport const TooltipClass = {\n\troot: 'gov-tooltip',\n}\n\nexport const TooltipContentClass = {\n\troot: 'gov-tooltip-content',\n}\n","import {Component, Element, h, Host, Method, Prop, State, Watch} from \"@stencil/core\"\nimport {validateProp} from \"../../helpers/Validate/props\"\nimport {\n\tTooltipClass,\n\tTooltipContentClass,\n\tTooltipPosition,\n\tTooltipPositionType,\n\tTooltipSize,\n\tTooltipSizeType,\n\tTooltipColors,\n\tTooltipColorType,\n} from \"./constants\"\nimport {createID} from \"../../utils/string.utils\"\nimport {govHost} from \"../../helpers/Dom/template\"\nimport {GovHost} from \"../../helpers/Dom/template.types\"\nimport {documentNode} from \"../../helpers/Dom/win\";\nimport {Nullable} from \"../../utils/helpers.types\";\nimport {tick} from \"../../utils/stencil.utils\";\n\n@Component({\n\ttag: \"gov-tooltip\",\n})\nexport class GovTooltip {\n\tprivate h: GovHost\n\tprivate readonly tooltipContentId = undefined\n\tprivate readonly tooltipId = undefined\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.tooltipId = createID(\"GovTooltip\")\n\t\tthis.tooltipContentId = createID(\"GovContentTooltip\")\n\t}\n\n\t@Element() host: HTMLGovTooltipElement\n\t/**\n\t * Style variation of the tooltip\n\t */\n\t@Prop() readonly color?: TooltipColorType = TooltipColors.PRIMARY\n\t/**\n\t * Tooltip’s size.\n\t */\n\t@Prop() readonly size?: TooltipSizeType = TooltipSize._M\n\t/**\n\t * Tooltip display position\n\t */\n\t@Prop({mutable: true}) position: TooltipPositionType = \"right\"\n\t/**\n\t * Information contained in the tooltip\n\t */\n\t@Prop() readonly message: string = undefined\n\t/**\n\t * Custom tooltip identifier.\n\t */\n\t@Prop({attribute: \"identifier\"}) readonly identifier: string\n\t/**\n\t * Trigger is just an icon\n\t */\n\t@Prop({reflect: true}) readonly icon: boolean = undefined\n\n\t@State() persist = false\n\n\t@Watch(\"color\")\n\tvalidateColor(newValue: string): void {\n\t\tvalidateProp(TooltipColors, newValue, TooltipClass.root)\n\t}\n\n\t@Watch(\"size\")\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(TooltipSize, newValue, TooltipClass.root)\n\t}\n\n\t@Watch(\"position\")\n\tvalidatePosition(newValue: string): void {\n\t\tvalidateProp(TooltipPosition, newValue, TooltipClass.root)\n\t}\n\n\t@Watch(\"message\")\n\trerenderMessage(): void {\n\t\tthis.createContentWrapper();\n\t}\n\n\tconnectedCallback() {\n\t\tthis.createContentWrapper()\n\t\tthis.registerListeners()\n\t}\n\n\tcomponentWillLoad(): void {\n\t\tthis.validateColor(this.color)\n\t\tthis.validateSize(this.size)\n\t\tthis.validatePosition(this.position)\n\t}\n\n\tcomponentDidUpdate() {\n\t\tthis.createContentWrapper()\n\t}\n\n\tdisconnectedCallback() {\n\t\tthis.resizeObserver?.disconnect()\n\t\tthis.resizeObserver = undefined\n\t\twindow.removeEventListener(\"resize\", this.reposition)\n\t\tthis.repositionListenersAttached = false\n\t\tthis.removeContent()\n\t}\n\n\tprivate createContentWrapper() {\n\t\tif (this.tooltipContent) {\n\t\t\tif (this.message != null) {\n\t\t\t\tthis.tooltipContent.setAttribute(\"message\", this.message)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\tlet content: HTMLGovTooltipContentElement;\n\t\tif (this.insideContent) {\n\t\t\tcontent = this.insideContent\n\t\t} else {\n\t\t\tcontent = documentNode().createElement(TooltipContentClass.root) as HTMLGovTooltipContentElement\n\t\t\tif (this.message != null) {\n\t\t\t\tcontent.setAttribute(\"message\", this.message)\n\t\t\t}\n\t\t}\n\n\t\tcontent.setAttribute(\"id\", this.identifier ?? this.tooltipContentId)\n\t\tcontent.setAttribute(\"parent-id\", this.tooltipId)\n\t\tcontent.setAttribute(\"color\", this.color)\n\t\tcontent.setAttribute(\"size\", this.size)\n\t\tdocumentNode().body.appendChild(content)\n\t}\n\n\tprivate get tooltipContent(): Nullable<HTMLGovTooltipContentElement> {\n\t\treturn documentNode().body.querySelector(`#${this.identifier ?? this.tooltipContentId}`);\n\t}\n\n\tprivate get insideContent(): Nullable<HTMLGovTooltipContentElement> {\n\t\treturn this.host.querySelector(TooltipContentClass.root)\n\t}\n\n\tprivate registerListeners() {\n\t\tthis.host.addEventListener(\"click\", e => {\n\t\t\te.preventDefault()\n\t\t\tthis.persist = true\n\t\t\tif (this.tooltipContent) {\n\t\t\t\tthis.tooltipContent.setAttribute(\"persist\", \"true\")\n\t\t\t}\n\t\t\tthis.showTooltip()\n\t\t})\n\t\tthis.host.addEventListener(\"mouseenter\", e => {\n\t\t\te.preventDefault()\n\t\t\tthis.showTooltip()\n\t\t})\n\t\tthis.host.addEventListener(\"mouseleave\", e => {\n\t\t\te.preventDefault()\n\t\t\tif (this.persist === false) {\n\t\t\t\tthis.hideTooltip()\n\t\t\t}\n\t\t})\n\t}\n\n\tprivate verifyPositionSpace() {\n\t\tconst offset = 12\n\t\tconst windowWidth = window.innerWidth - (window.innerWidth - document.documentElement.clientWidth);\n\t\tconst trigger = this.host.getBoundingClientRect()\n\t\tconst trgWidth = this.host.offsetWidth\n\t\tconst trgHeight = this.host.offsetHeight\n\t\tconst contentWidth = this.tooltipContent.offsetWidth\n\t\tconst contentHeight = this.tooltipContent.offsetHeight\n\t\tconst triggerPos = {\n\t\t\tleft: trigger.left + document.documentElement.scrollLeft,\n\t\t\ttop: trigger.top + document.documentElement.scrollTop,\n\t\t}\n\n\t\tconst isRightSpace = ((triggerPos.left + offset + trigger.width) + contentWidth) <= windowWidth;\n\t\tconst isLeftSpace = triggerPos.left > contentWidth;\n\n\t\t// LEFT/RIGHT\n\t\tif (this.position === TooltipPosition.LEFT || this.position === TooltipPosition.RIGHT) {\n\t\t\tthis.tooltipContent.style.top = (triggerPos.top - ((contentHeight - trgHeight) / 2)) + \"px\";\n\t\t\tif (isRightSpace === false && isLeftSpace === false) {\n\t\t\t\tthis.position = TooltipPosition.TOP\n\t\t\t\tthis.tooltipContent.setAttribute(\"position\", TooltipPosition.TOP)\n\t\t\t}\n\t\t\tif (isLeftSpace && isRightSpace === false && this.position === TooltipPosition.RIGHT) {\n\t\t\t\tthis.position = TooltipPosition.LEFT\n\t\t\t}\n\t\t\tif (isRightSpace && isLeftSpace === false && this.position === TooltipPosition.LEFT) {\n\t\t\t\tthis.position = TooltipPosition.RIGHT\n\t\t\t}\n\t\t}\n\t\tif (this.position === TooltipPosition.RIGHT) {\n\t\t\tthis.tooltipContent.setAttribute(\"position\", TooltipPosition.RIGHT)\n\t\t\tthis.tooltipContent.style.left = (triggerPos.left + offset + trigger.width) + \"px\"\n\t\t}\n\t\tif (this.position === TooltipPosition.LEFT) {\n\t\t\tthis.tooltipContent.setAttribute(\"position\", TooltipPosition.LEFT)\n\t\t\tthis.tooltipContent.style.left = (triggerPos.left - (contentWidth + offset)) + \"px\"\n\t\t}\n\n\t\t// LEFT/RIGHT FOR TOP/BOTTOM\n\t\tif (this.position === TooltipPosition.TOP || this.position === TooltipPosition.BOTTOM) {\n\t\t\tif (contentWidth > trgWidth) {\n\t\t\t\tlet leftPosition = (triggerPos.left - ((contentWidth - trgWidth) / 2));\n\t\t\t\tconst isNotLeftSpace = leftPosition < 0;\n\t\t\t\tconst isNotRightSpace = (leftPosition + contentWidth) > windowWidth;\n\t\t\t\tif (isNotLeftSpace && isNotRightSpace) {\n\t\t\t\t\tthis.tooltipContent.style.width = \"auto\";\n\t\t\t\t\tthis.tooltipContent.style.left = offset + \"px\";\n\t\t\t\t\tthis.tooltipContent.style.right = offset + \"px\";\n\t\t\t\t} else {\n\t\t\t\t\tif (isNotLeftSpace) {\n\t\t\t\t\t\tleftPosition = offset\n\t\t\t\t\t}\n\t\t\t\t\tif (isNotRightSpace) {\n\t\t\t\t\t\tleftPosition = leftPosition - ((windowWidth - (leftPosition + contentWidth + offset)) * -1)\n\t\t\t\t\t}\n\t\t\t\t\tthis.tooltipContent.style.left = leftPosition + \"px\"\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst leftPosition = (triggerPos.left + ((trgWidth - contentWidth) / 2))\n\n\t\t\t\tthis.tooltipContent.style.left = leftPosition + \"px\"\n\t\t\t}\n\t\t}\n\t\tif (this.position === TooltipPosition.TOP) {\n\t\t\tthis.tooltipContent.setAttribute(\"position\", TooltipPosition.TOP)\n\t\t\tthis.tooltipContent.style.top = (triggerPos.top - (contentHeight + offset)) + \"px\"\n\t\t}\n\t\tif (this.position === TooltipPosition.BOTTOM) {\n\t\t\tthis.tooltipContent.setAttribute(\"position\", TooltipPosition.BOTTOM)\n\t\t\tthis.tooltipContent.style.top = (triggerPos.top + (trgHeight + offset)) + \"px\"\n\t\t}\n\n\t\tthis.tooltipContent.style.opacity = '1'\n\n\t}\n\n\tprivate resizeObserver?: ResizeObserver\n\tprivate repositionListenersAttached = false\n\tprivate readonly reposition = () => {\n\t\tif (this.tooltipContent) {\n\t\t\tthis.verifyPositionSpace()\n\t\t}\n\t}\n\n\tprivate showTooltip() {\n\t\tif (this.tooltipContent) {\n\t\t\tthis.tooltipContent.style.opacity = '0'\n\t\t\tthis.tooltipContent.hidden = false\n\t\t\tthis.tooltipContent.setAttribute(\"is-visible\", \"true\")\n\t\t\ttick(() => {\n\t\t\t\tthis.verifyPositionSpace()\n\t\t\t})\n\t\t\tif (!this.repositionListenersAttached) {\n\t\t\t\tthis.repositionListenersAttached = true\n\t\t\t\tif (typeof ResizeObserver !== \"undefined\") {\n\t\t\t\t\tthis.resizeObserver = new ResizeObserver(this.reposition)\n\t\t\t\t\tthis.resizeObserver.observe(this.tooltipContent)\n\t\t\t\t}\n\t\t\t\twindow.addEventListener(\"resize\", this.reposition)\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate hideTooltip() {\n\t\tif (this.tooltipContent) {\n\t\t\tthis.tooltipContent.setAttribute(\"is-visible\", \"false\")\n\t\t\tthis.tooltipContent.setAttribute(\"persist\", \"false\")\n\t\t\tthis.tooltipContent.removeAttribute('style')\n\t\t}\n\t\tthis.resizeObserver?.disconnect()\n\t\tthis.resizeObserver = undefined\n\t\twindow.removeEventListener(\"resize\", this.reposition)\n\t\tthis.repositionListenersAttached = false\n\t}\n\n\tprivate removeContent() {\n\t\tconst contentEl = document.getElementById(this.tooltipContentId)\n\t\tif (contentEl) {\n\t\t\tcontentEl.remove()\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tid={this.tooltipId}\n\t\t\t\tclass={this.h.classes(TooltipClass.root)}\n\t\t\t\tposition={this.position}>\n\t\t\t\t<span role={'button'}\n\t\t\t\t\t\t\ttabindex={0}\n\t\t\t\t\t\t\tonKeyPress={() => this.showTooltip()}\n\t\t\t\t\t\t\tonBlur={() => {\n\t\t\t\t\t\t\t\tif (this.persist === false) {\n\t\t\t\t\t\t\t\t\tthis.hideTooltip()\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\taria-describedby={this.identifier ?? this.tooltipContentId}><slot/></span>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\t/**\n\t * Showing the modal\n\t */\n\t@Method()\n\tasync show(): Promise<void> {\n\t\tthis.showTooltip()\n\t}\n\n\t/**\n\t * Hiding the modal\n\t */\n\t@Method()\n\tasync hide(): Promise<void> {\n\t\tthis.persist = false\n\t\tthis.hideTooltip()\n\t}\n}\n","import { Component, Element, h, Host, Prop, Watch } from \"@stencil/core\"\nimport { TooltipContentClass, TooltipSize, TooltipSizeType, TooltipColors, TooltipColorType } from \"./constants\"\nimport { toBoolAttr } from \"../../helpers/Dom/template\"\n\n@Component({\n\ttag: \"gov-tooltip-content\",\n})\nexport class GovTooltipContent {\n\tprivate timeout\n\n\t@Element() host: HTMLGovTooltipContentElement\n\t/**\n\t * Style variation of the tooltip\n\t */\n\t@Prop() readonly color?: TooltipColorType = TooltipColors.PRIMARY\n\t/**\n\t * Tooltip’s size.\n\t */\n\t@Prop() readonly size?: TooltipSizeType = TooltipSize._M\n\t/**\n\t * Tooltip is still visible.\n\t */\n\t@Prop() persist?: boolean = false\n\t/**\n\t * Indicates display of tooltip content\n\t */\n\t@Prop({ attribute: \"is-visible\", mutable: true }) isVisible = false\n\t/**\n\t * Indicates display of tooltip content\n\t */\n\t@Prop({ attribute: \"parent-id\" }) parentId: string = null\n\t/**\n\t * Tooltip text. When set, renders the HTML message; otherwise the default `<slot/>` is used.\n\t */\n\t@Prop({ attribute: \"message\", mutable: true }) message?: string\n\n\t@Watch(\"isVisible\")\n\tvisibleContent(newValue: boolean): void {\n\t\tclearTimeout(this.timeout)\n\t\tif (newValue === false) {\n\t\t\tthis.timeout = setTimeout(() => {\n\t\t\t\tthis.host.style.visibility = \"hidden\"\n\t\t\t}, 250)\n\t\t} else {\n\t\t\tthis.host.style.visibility = \"visible\"\n\t\t}\n\t}\n\n\thideContent() {\n\t\tthis.isVisible = false\n\t\tthis.persist = false\n\t\tconst parentEl = document.getElementById(this.parentId) as HTMLGovTooltipElement\n\t\tif (parentEl) {\n\t\t\tparentEl.hide().catch()\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tclass={TooltipContentClass.root}\n\t\t\t\trole={\"tooltip\"}\n\t\t\t\thidden={!this.isVisible}\n\t\t\t\taria-hidden={!toBoolAttr(this.isVisible)}\n\t\t\t\tis-visible={this.isVisible}>\n\t\t\t\t{this.message\n\t\t\t\t\t? <span class=\"gov-tooltip-content__message\" innerHTML={this.message}></span>\n\t\t\t\t\t: <slot></slot>}\n\t\t\t\t{this.persist ? (\n\t\t\t\t\t<gov-button\n\t\t\t\t\t\ton-gov-click={this.hideContent.bind(this)}\n\t\t\t\t\t\tcolor={this.color}\n\t\t\t\t\t\tsize={this.size}\n\t\t\t\t\t\ttype={\"base\"}>\n\t\t\t\t\t\t<gov-icon slot={\"icon-start\"} name={\"x-lg\"} type={\"components\"}></gov-icon>\n\t\t\t\t\t</gov-button>\n\t\t\t\t) : null}\n\t\t\t</Host>\n\t\t)\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as s,h as t,H as o,g as a}from"./p-
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as s,h as t,H as o,g as a}from"./p-B8TR1oqt.js";import{v as e}from"./p-NOJjz9dT.js";import{C as r}from"./p-U40vKHrs.js";import{p as c}from"./p-CQvUntGY.js";import{g as f}from"./p-CoD1xawt.js";import"./p-CgDnDrq5.js";c(r,["PRIMARY","NEUTRAL","ERROR","SUCCESS","WARNING"]);var i;(function(s){s["BOLD"]="bold";s["SUBTLE"]="subtle"})(i||(i={}));const d={root:"gov-message",content:"gov-message__content"};const b=class{constructor(t){s(this,t);this.color=r.PRIMARY;this.type="subtle";this.h=f(this.host)}validateColor(s){e(r,s,d.root)}render(){return t(o,{key:"dcd1094c7dec5bf304d39a4de8bc85dc12cb92b7",class:this.h.classes(d.root),color:this.color,type:this.type,role:"status"},this.h.hasSlot("icon")&&t("span",{key:"d51f207d78f918b14dc4edb22706595d7bc439c3"},t("slot",{key:"890ffc0ff4a6c6abbfef4e2b2a0ab1ba40a11695",name:"icon"})),t("div",{key:"ef3b1797d3bc063592d21c4013a35cf310ef0fb3",class:d.content},t("slot",{key:"6ff8a2cd2f06006fa6a0182b196cd8a38b1d1e87"})))}get host(){return a(this)}static get watchers(){return{color:[{validateColor:0}]}}};export{b as gov_message};
|
|
2
|
+
//# sourceMappingURL=p-473afd7d.entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["pick","Colors","MessageType","MessageClass","root","content","GovMessage","constructor","hostRef","this","color","PRIMARY","type","h","govHost","host","validateColor","newValue","validateProp","render","Host","key","class","classes","role","hasSlot","name"],"sources":["../../../packages/core/src/components/gov-message/constants.ts","../../../packages/core/src/components/gov-message/gov-message.tsx"],"sourcesContent":["import { Colors } from '../../core/constants/colors'\nimport { pick } from '../../utils/utils'\nimport { ValueOf } from '../../types/interfaces'\n\nexport const MessageColors = pick(Colors, ['PRIMARY', 'NEUTRAL', 'ERROR', 'SUCCESS', 'WARNING'])\nexport type MessageColorType = `${ValueOf<typeof MessageColors>}`\n\nexport enum MessageType {\n\tBOLD = 'bold',\n\tSUBTLE = 'subtle',\n}\nexport type MessageTypesType = `${ValueOf<typeof MessageType>}`\n\nexport const MessageClass = {\n\troot: 'gov-message',\n\tcontent: 'gov-message__content',\n}\n","import { Component, Element, h, Host, Prop, Watch } from \"@stencil/core\"\nimport { validateProp } from \"../../helpers/Validate/props\"\nimport { MessageTypesType, MessageClass, MessageColorType} from \"./constants\"\nimport { govHost } from \"../../helpers/Dom/template\"\nimport { GovHost } from \"../../helpers/Dom/template.types\"\nimport { Colors } from \"../../core/constants/colors\"\n\n@Component({\n\ttag: \"gov-message\",\n})\nexport class GovMessage {\n\tprivate h: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() host: HTMLGovMessageElement\n\n\t/**\n\t * Style variation of the content message.\n\t */\n\t@Prop() readonly color: MessageColorType = Colors.PRIMARY\n\t/**\n\t * Message type\n\t */\n\t@Prop() readonly type?: MessageTypesType = \"subtle\"\n\n\t@Watch(\"color\")\n\tvalidateColor(newValue: string): void {\n\t\tvalidateProp(Colors, newValue, MessageClass.root)\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={this.h.classes(MessageClass.root)} color={this.color} type={this.type} role=\"status\">\n\t\t\t\t{this.h.hasSlot(\"icon\") && (\n\t\t\t\t\t<span>\n\t\t\t\t\t\t<slot name=\"icon\" />\n\t\t\t\t\t</span>\n\t\t\t\t)}\n\n\t\t\t\t<div class={MessageClass.content}>\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":"iOAI6BA,EAAKC,EAAQ,CAAC,UAAW,UAAW,QAAS,UAAW,YAGrF,IAAYC,GAAZ,SAAYA,GACXA,EAAA,eACAA,EAAA,kBACA,EAHD,CAAYA,
|
|
1
|
+
{"version":3,"names":["pick","Colors","MessageType","MessageClass","root","content","GovMessage","constructor","hostRef","this","color","PRIMARY","type","h","govHost","host","validateColor","newValue","validateProp","render","Host","key","class","classes","role","hasSlot","name"],"sources":["../../../packages/core/src/components/gov-message/constants.ts","../../../packages/core/src/components/gov-message/gov-message.tsx"],"sourcesContent":["import { Colors } from '../../core/constants/colors'\nimport { pick } from '../../utils/utils'\nimport { ValueOf } from '../../types/interfaces'\n\nexport const MessageColors = pick(Colors, ['PRIMARY', 'NEUTRAL', 'ERROR', 'SUCCESS', 'WARNING'])\nexport type MessageColorType = `${ValueOf<typeof MessageColors>}`\n\nexport enum MessageType {\n\tBOLD = 'bold',\n\tSUBTLE = 'subtle',\n}\nexport type MessageTypesType = `${ValueOf<typeof MessageType>}`\n\nexport const MessageClass = {\n\troot: 'gov-message',\n\tcontent: 'gov-message__content',\n}\n","import { Component, Element, h, Host, Prop, Watch } from \"@stencil/core\"\nimport { validateProp } from \"../../helpers/Validate/props\"\nimport { MessageTypesType, MessageClass, MessageColorType} from \"./constants\"\nimport { govHost } from \"../../helpers/Dom/template\"\nimport { GovHost } from \"../../helpers/Dom/template.types\"\nimport { Colors } from \"../../core/constants/colors\"\n\n@Component({\n\ttag: \"gov-message\",\n})\nexport class GovMessage {\n\tprivate h: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() host: HTMLGovMessageElement\n\n\t/**\n\t * Style variation of the content message.\n\t */\n\t@Prop() readonly color: MessageColorType = Colors.PRIMARY\n\t/**\n\t * Message type\n\t */\n\t@Prop() readonly type?: MessageTypesType = \"subtle\"\n\n\t@Watch(\"color\")\n\tvalidateColor(newValue: string): void {\n\t\tvalidateProp(Colors, newValue, MessageClass.root)\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={this.h.classes(MessageClass.root)} color={this.color} type={this.type} role=\"status\">\n\t\t\t\t{this.h.hasSlot(\"icon\") && (\n\t\t\t\t\t<span>\n\t\t\t\t\t\t<slot name=\"icon\" />\n\t\t\t\t\t</span>\n\t\t\t\t)}\n\n\t\t\t\t<div class={MessageClass.content}>\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":"iOAI6BA,EAAKC,EAAQ,CAAC,UAAW,UAAW,QAAS,UAAW,YAGrF,IAAYC,GAAZ,SAAYA,GACXA,EAAA,eACAA,EAAA,kBACA,EAHD,CAAYA,MAAW,KAMhB,MAAMC,EAAe,CAC3BC,KAAM,cACNC,QAAS,wB,MCLGC,EAAU,MAGtB,WAAAC,CAAAC,G,UASiBC,KAAAC,MAA0BT,EAAOU,QAIjCF,KAAAG,KAA0B,SAZ1CH,KAAKI,EAAIC,EAAQL,KAAKM,KACtB,CAcD,aAAAC,CAAcC,GACbC,EAAajB,EAAQgB,EAAUd,EAAaC,K,CAG7C,MAAAe,GACC,OACCN,EAACO,EAAI,CAAAC,IAAA,2CAACC,MAAOb,KAAKI,EAAEU,QAAQpB,EAAaC,MAAOM,MAAOD,KAAKC,MAAOE,KAAMH,KAAKG,KAAMY,KAAK,UACvFf,KAAKI,EAAEY,QAAQ,SACfZ,EAAA,QAAAQ,IAAA,4CACCR,EAAA,QAAAQ,IAAA,2CAAMK,KAAK,UAIbb,EAAA,OAAAQ,IAAA,2CAAKC,MAAOnB,EAAaE,SACxBQ,EAAA,QAAAQ,IAAA,8C","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as t,c as s,h as i,H as h,g as e}from"./p-
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as t,c as s,h as i,H as h,g as e}from"./p-B8TR1oqt.js";import{c as a}from"./p-vN03FcXN.js";import{v as o}from"./p-NOJjz9dT.js";import{g as r,F as n,a as c}from"./p-B6CqPcY_.js";import{g as l,a as p,t as d}from"./p-CoD1xawt.js";import{F as m}from"./p-5itQzbON.js";import{A as v,a as u}from"./p-Bz_RzYFb.js";import{i as g}from"./p-CzXeijOj.js";import"./p-CgDnDrq5.js";import"./p-CQvUntGY.js";import"./p-BcQO4NH2.js";import"./p-EeKNA85D.js";import"./p-U40vKHrs.js";import"./p-DYcNEwSZ.js";import"./p-DBXGhafv.js";const f=class{constructor(i){t(this,i);this.govFocus=s(this,"gov-focus");this.govBlur=s(this,"gov-blur");this.govChange=s(this,"gov-change");this.hydrated=false;this.checked=false;this.required=false;this.disabled=false;this.indeterminate=false;this.size="m";this.noLabel=false;this.inheritedAttributes={};this.checkboxId=a("GovCheckbox");this.h=l(this.host);this.f=r(this.h)}validateSize(t){o(c,t,n.root)}watchControlAttrs(){this.passControlAttrs()}passControlAttrs(){this.f.passAttrToControl("size",this.size);this.f.passAttrToControl("disabled",p(this.disabled));this.f.passAttrToControl("invalid",p(this.invalid));this.f.passAttrToControl("type","checkbox")}componentWillLoad(){this.passControlAttrs();this.inheritedAttributes=g(this.host)}componentDidLoad(){this.attributeObserver=new v(this.host,((t,s)=>{this.onAriaAttributeChange(t,s)}));this.attributeObserver.startObserving(u)}async componentDidRender(){this.f.passAttrToLabel("identifier",this.identifier||this.checkboxId);this.f.passAttrToLabel("required",String(this.required));this.passControlAttrs()}connectedCallback(){this.hydrated=true}disconnectedCallback(){var t;(t=this.attributeObserver)===null||t===void 0?void 0:t.stopObserving()}onAriaAttributeChange(t,s){this.host.removeAttribute(t);this.inheritedAttributes=Object.assign(Object.assign({},this.inheritedAttributes),{[t]:s})}render(){const t=t=>{if(this.noLabel){return i("label",{class:n.label},t)}return t};return i(h,{class:n.root,hydrated:this.hydrated,checked:this.checked,size:this.size,invalid:d(this.invalid)},t(i(m,null,i("input",Object.assign({id:this.identifier||this.checkboxId,type:"checkbox",value:this.value,name:this.name,checked:this.checked,onClick:this.onClickHandler.bind(this),onChange:this.onChangeHandler.bind(this),onFocus:this.onFocusHandler.bind(this),onBlur:this.onBlurHandler.bind(this),required:this.required,disabled:this.disabled,indeterminate:this.indeterminate,ref:t=>this.inputRef=t},this.inheritedAttributes,{"aria-checked":p(this.checked),"aria-required":d(this.required),"aria-invalid":d(this.invalid),"aria-disabled":d(this.disabled)})),i("span",null,i("slot",{name:"label"}),i("gov-icon",{class:n.check,name:"check-lg",type:"components"}),i("gov-icon",{class:n.indeterminate,name:"dash-lg",type:"components"})))))}onFocusHandler(t){t.stopPropagation();this.govFocus.emit({component:n.root,value:this.value,checked:this.checked,originalEvent:t})}onBlurHandler(t){t.stopPropagation();this.govBlur.emit({component:n.root,value:this.value,checked:this.checked,originalEvent:t})}onClickHandler(t){t.stopPropagation()}onChangeHandler(t){this.checked=t.target.checked;t.stopPropagation();this.govChange.emit({component:n.root,value:this.value,checked:this.checked,originalEvent:t})}async getRef(){return this.inputRef}get host(){return e(this)}static get watchers(){return{size:[{validateSize:0},{watchControlAttrs:0}],disabled:[{watchControlAttrs:0}],invalid:[{watchControlAttrs:0}]}}};export{f as gov_form_checkbox};
|
|
2
|
+
//# sourceMappingURL=p-48b74272.entry.js.map
|