@epa-wg/custom-element-dist 0.0.24 → 0.0.26
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/.storybook/main.ts +19 -21
- package/.storybook/preview-head.html +8 -0
- package/.storybook/preview.ts +13 -5
- package/README.md +4 -4
- package/bin/postinstall.sh +3 -2
- package/bin/vitest/vitest-browser-importmaps.mjs +20 -0
- package/coverage/coverage-final.json +13 -8
- package/coverage/index.html +51 -36
- package/coverage/src/custom-element/coverage.svg +1 -1
- package/coverage/src/custom-element/custom-element.js/coverage.svg +1 -1
- package/coverage/src/custom-element/custom-element.js.html +493 -406
- package/coverage/src/custom-element/demo/coverage.svg +10 -0
- package/coverage/src/custom-element/demo/index.html +116 -0
- package/coverage/src/custom-element/demo/z.js/coverage.svg +10 -0
- package/coverage/src/custom-element/demo/z.js.html +112 -0
- package/coverage/src/custom-element/http-request.js.html +12 -12
- package/coverage/src/custom-element/index.html +37 -22
- package/coverage/src/custom-element/local-storage.js.html +1 -1
- package/coverage/src/custom-element/location-element.js/coverage.svg +1 -1
- package/coverage/src/custom-element/location-element.js.html +116 -47
- package/coverage/src/custom-element/module-url.js/coverage.svg +10 -0
- package/coverage/src/custom-element/module-url.js.html +181 -0
- package/coverage/src/index.html +1 -1
- package/coverage/src/mocks/coverage.svg +1 -1
- package/coverage/src/mocks/handlers.ts/coverage.svg +1 -1
- package/coverage/src/mocks/handlers.ts.html +36 -12
- package/coverage/src/mocks/index.html +19 -19
- package/coverage/src/stories/attributes.test.stories.ts.html +6 -9
- package/coverage/src/stories/coverage.svg +1 -1
- package/coverage/src/stories/css.test.stories.ts.html +1 -1
- package/coverage/src/stories/dom-merge.test.stories.ts.html +1 -1
- package/coverage/src/stories/external-template.test.stories.ts.html +22 -10
- package/coverage/src/stories/form.test.stories.ts.html +1 -1
- package/coverage/src/stories/http-request.stories.ts.html +1 -1
- package/coverage/src/stories/index.html +58 -13
- package/coverage/src/stories/local-storage.test.stories.ts.html +1 -1
- package/coverage/src/stories/location-element.test.stories.ts.html +1 -1
- package/coverage/src/stories/module-url.test.stories.ts/coverage.svg +10 -0
- package/coverage/src/stories/module-url.test.stories.ts.html +634 -0
- package/coverage/src/stories/set-url.test.stories.ts/coverage.svg +10 -0
- package/coverage/src/stories/set-url.test.stories.ts.html +427 -0
- package/coverage/src/stories/slice-events.test.stories.ts.html +1 -1
- package/coverage/src/stories/slots.test.stories.ts.html +1 -1
- package/coverage/src/stories/testStoryBook.ts.html +12 -12
- package/coverage/src/stories/version-select.test.stories.ts/coverage.svg +10 -0
- package/coverage/src/stories/version-select.test.stories.ts.html +391 -0
- package/coverage/src/sum.ts.html +1 -1
- package/dist/confused.svg +1 -0
- package/dist/custom-element-CckoVsvO.cjs +53 -0
- package/dist/custom-element-b7c_7Kz4.js +485 -0
- package/dist/custom-element-bundle.cjs +1 -1
- package/dist/custom-element-bundle.js +3 -3
- package/dist/demo/a.html +60 -0
- package/dist/demo/b.html +13 -0
- package/dist/demo/confused.svg +38 -0
- package/dist/demo/data-slices.html +216 -0
- package/dist/demo/dce-social-preview.png +0 -0
- package/dist/demo/demo.css +26 -0
- package/dist/demo/dom-merge.html +123 -0
- package/dist/demo/embed-1.html +2 -0
- package/dist/demo/external-template.html +239 -0
- package/dist/demo/form.html +239 -0
- package/dist/demo/hex-grid-dce.html +183 -0
- package/dist/demo/hex-grid-transform.png +0 -0
- package/dist/demo/hex-grid.html +66 -0
- package/dist/demo/html-template.html +126 -0
- package/dist/demo/html-template.xhtml +45 -0
- package/dist/demo/html-template.xml +45 -0
- package/dist/demo/http-request.html +143 -0
- package/dist/demo/lib-dir/Smiley.svg +24 -0
- package/dist/demo/lib-dir/embed-lib.html +34 -0
- package/dist/demo/local-storage.html +218 -0
- package/dist/demo/location-element.html +168 -0
- package/dist/demo/logo.png +0 -0
- package/dist/demo/module-url.html +215 -0
- package/dist/demo/npm-versions-demo.html +105 -0
- package/dist/demo/npm-versions.html +65 -0
- package/dist/demo/parameters.html +70 -0
- package/dist/demo/s.xml +28 -0
- package/dist/demo/s.xslt +97 -0
- package/dist/demo/s1.xslt +60 -0
- package/dist/demo/scoped-css.html +169 -0
- package/dist/demo/set-url.html +141 -0
- package/dist/demo/ss.html +57 -0
- package/dist/demo/table.xml +25 -0
- package/dist/demo/table.xsl +293 -0
- package/dist/demo/template.xsl +46 -0
- package/dist/demo/tree.xml +25 -0
- package/dist/demo/tree.xsl +33 -0
- package/dist/demo/wc-square.svg +1 -0
- package/dist/demo/xhtml-template.xhtml +45 -0
- package/dist/demo/z.html +62 -0
- package/dist/demo/z.js +9 -0
- package/dist/demo/z.xml +60 -0
- package/dist/embed-1.html +1 -2
- package/dist/location-element-DRB7hCwA.cjs +1 -0
- package/dist/location-element-FJlONi2n.js +65 -0
- package/dist/mockServiceWorker.js +1 -1
- package/package.json +93 -93
- package/public/confused.svg +1 -0
- package/public/demo/a.html +60 -0
- package/public/demo/b.html +13 -0
- package/public/demo/confused.svg +38 -0
- package/public/demo/data-slices.html +216 -0
- package/public/demo/dce-social-preview.png +0 -0
- package/public/demo/demo.css +26 -0
- package/public/demo/dom-merge.html +123 -0
- package/public/demo/embed-1.html +2 -0
- package/public/demo/external-template.html +239 -0
- package/public/demo/form.html +239 -0
- package/public/demo/hex-grid-dce.html +183 -0
- package/public/demo/hex-grid-transform.png +0 -0
- package/public/demo/hex-grid.html +66 -0
- package/public/demo/html-template.html +126 -0
- package/public/demo/html-template.xhtml +45 -0
- package/public/demo/html-template.xml +45 -0
- package/public/demo/http-request.html +143 -0
- package/public/demo/lib-dir/Smiley.svg +24 -0
- package/public/demo/lib-dir/embed-lib.html +34 -0
- package/public/demo/local-storage.html +218 -0
- package/public/demo/location-element.html +168 -0
- package/public/demo/logo.png +0 -0
- package/public/demo/module-url.html +215 -0
- package/public/demo/npm-versions-demo.html +105 -0
- package/public/demo/npm-versions.html +65 -0
- package/public/demo/parameters.html +70 -0
- package/public/demo/s.xml +28 -0
- package/public/demo/s.xslt +97 -0
- package/public/demo/s1.xslt +60 -0
- package/public/demo/scoped-css.html +169 -0
- package/public/demo/set-url.html +141 -0
- package/public/demo/ss.html +57 -0
- package/public/demo/table.xml +25 -0
- package/public/demo/table.xsl +293 -0
- package/public/demo/template.xsl +46 -0
- package/public/demo/tree.xml +25 -0
- package/public/demo/tree.xsl +33 -0
- package/public/demo/wc-square.svg +1 -0
- package/public/demo/xhtml-template.xhtml +45 -0
- package/public/demo/z.html +62 -0
- package/public/demo/z.js +9 -0
- package/public/demo/z.xml +60 -0
- package/public/embed-1.html +1 -2
- package/public/mockServiceWorker.js +1 -1
- package/src/custom-element/custom-element.js +52 -23
- package/src/custom-element/demo/confused.svg +1 -0
- package/src/custom-element/demo/demo.css +5 -1
- package/src/custom-element/demo/embed-1.html +1 -2
- package/src/custom-element/demo/external-template.html +122 -62
- package/src/custom-element/demo/lib-dir/Smiley.svg +24 -0
- package/src/custom-element/demo/lib-dir/embed-lib.html +34 -0
- package/src/custom-element/demo/location-element.html +17 -4
- package/src/custom-element/demo/module-url.html +215 -0
- package/src/custom-element/demo/npm-versions-demo.html +105 -0
- package/src/custom-element/demo/npm-versions.html +65 -0
- package/src/custom-element/demo/s.xml +27 -10
- package/src/custom-element/demo/s.xslt +96 -59
- package/src/custom-element/demo/set-url.html +141 -0
- package/src/custom-element/demo/z.js +9 -0
- package/src/custom-element/ide/customData-dce.json +215 -125
- package/src/custom-element/ide/web-types-dce.json +184 -116
- package/src/custom-element/ide/web-types-xsl.json +1 -1
- package/src/custom-element/index.html +3 -1
- package/src/custom-element/location-element.js +25 -2
- package/src/custom-element/module-url.js +33 -0
- package/src/custom-element.test.ts +26 -26
- package/src/mocks/handlers.ts +10 -1
- package/src/mocks/versions.mock.ts +786 -0
- package/src/stories/attributes.test.stories.ts +0 -1
- package/src/stories/external-template.test.stories.ts +11 -7
- package/src/stories/module-url.test.stories.ts +183 -0
- package/src/stories/set-url.test.stories.ts +114 -0
- package/src/stories/version-select.test.stories.ts +102 -0
- package/storybook-static/assets/Color-KGDBMAHA-CH-YyWYq.js +1 -0
- package/storybook-static/assets/{Configure-CyLVkwlf.js → Configure-DFL_bm2M.js} +2 -2
- package/storybook-static/assets/DocsRenderer-PKQXORMH-Bz-_1hmS.js +2 -0
- package/storybook-static/assets/{attributes.test.stories-BckCcyrF.js → attributes.test.stories-DIQXccHc.js} +2 -3
- package/storybook-static/assets/{css.test.stories-B-QcObCF.js → css.test.stories-BV2hi4CY.js} +1 -1
- package/storybook-static/assets/custom-element-wn23PUwN.js +231 -0
- package/storybook-static/assets/{dom-merge.test.stories-CjXhjTQY.js → dom-merge.test.stories-Dws0C2-g.js} +1 -1
- package/storybook-static/assets/{entry-preview-DrgzXgwT.js → entry-preview-BKQ8UCxI.js} +1 -1
- package/storybook-static/assets/{entry-preview-docs-Bxv0qQWs.js → entry-preview-docs-BMKNVQXA.js} +2 -2
- package/storybook-static/assets/{external-template.test.stories-BBqyi0az.js → external-template.test.stories-BHO48b0j.js} +19 -16
- package/storybook-static/assets/{form.test.stories-DsIo1B4n.js → form.test.stories-dv9mwp24.js} +1 -1
- package/storybook-static/assets/handlers-CaCq2ZPF.js +467 -0
- package/storybook-static/assets/http-request-DNq59pnj.js +1 -0
- package/storybook-static/assets/http-request.stories-B2ke7LtS.js +281 -0
- package/storybook-static/assets/iframe-D4Sos1HO.js +2 -0
- package/storybook-static/assets/index-BnXBQqj9.js +605 -0
- package/storybook-static/assets/index-C8k3Z-3Y.js +28 -0
- package/storybook-static/assets/index-Cpxqn5iQ.js +1 -0
- package/storybook-static/assets/{index-DXimoRZY.js → index-D-8MO0q_.js} +1 -1
- package/storybook-static/assets/index-DGdNYaqV.js +8 -0
- package/storybook-static/assets/index-Dz4OaB2k.js +1 -0
- package/storybook-static/assets/index-sm7QlJZE.js +1 -0
- package/storybook-static/assets/lit-element-DzhCn-8W.js +19 -0
- package/storybook-static/assets/{local-storage.test.stories-Cs2v3QTS.js → local-storage.test.stories-BpogLNq-.js} +1 -1
- package/storybook-static/assets/location-element-hKpcXCdn.js +1 -0
- package/storybook-static/assets/{location-element.test.stories-WkrQDzJJ.js → location-element.test.stories-BiFvBop7.js} +9 -9
- package/storybook-static/assets/module-url.test.stories-BXoM34tX.js +208 -0
- package/storybook-static/assets/{preview-BKCN0mOr.js → preview-0Jj89qip.js} +1 -1
- package/storybook-static/assets/{preview-TCN6m6T-.js → preview-BJPLiuSt.js} +1 -1
- package/storybook-static/assets/{preview-BDY5ThwJ.js → preview-BMWqy4Bi.js} +1 -1
- package/storybook-static/assets/preview-BnWGZYux.js +1 -0
- package/storybook-static/assets/preview-Cg7hXPRq.js +2 -0
- package/storybook-static/assets/{preview-BAz7FMXc.js → preview-DB9FwMii.js} +1 -1
- package/storybook-static/assets/preview-Djh1_Tal.js +20 -0
- package/storybook-static/assets/{preview-DRnyIGXK.js → preview-oHxXRSIu.js} +15 -15
- package/storybook-static/assets/set-url.test.stories-Cg5Z0r7x.js +81 -0
- package/storybook-static/assets/{slice-events.test.stories-BRBBc0JT.js → slice-events.test.stories-D_ttGp3g.js} +1 -1
- package/storybook-static/assets/{slots.test.stories-r-i91k3y.js → slots.test.stories-DBNXOm0T.js} +1 -1
- package/storybook-static/assets/version-select.test.stories-CgV3UCim.js +109 -0
- package/storybook-static/confused.svg +1 -0
- package/storybook-static/demo/a.html +60 -0
- package/storybook-static/demo/b.html +13 -0
- package/storybook-static/demo/confused.svg +38 -0
- package/storybook-static/demo/data-slices.html +216 -0
- package/storybook-static/demo/dce-social-preview.png +0 -0
- package/storybook-static/demo/demo.css +26 -0
- package/storybook-static/demo/dom-merge.html +123 -0
- package/storybook-static/demo/embed-1.html +2 -0
- package/storybook-static/demo/external-template.html +239 -0
- package/storybook-static/demo/form.html +239 -0
- package/storybook-static/demo/hex-grid-dce.html +183 -0
- package/storybook-static/demo/hex-grid-transform.png +0 -0
- package/storybook-static/demo/hex-grid.html +66 -0
- package/storybook-static/demo/html-template.html +126 -0
- package/storybook-static/demo/html-template.xhtml +45 -0
- package/storybook-static/demo/html-template.xml +45 -0
- package/storybook-static/demo/http-request.html +143 -0
- package/storybook-static/demo/lib-dir/Smiley.svg +24 -0
- package/storybook-static/demo/lib-dir/embed-lib.html +34 -0
- package/storybook-static/demo/local-storage.html +218 -0
- package/storybook-static/demo/location-element.html +168 -0
- package/storybook-static/demo/logo.png +0 -0
- package/storybook-static/demo/module-url.html +215 -0
- package/storybook-static/demo/npm-versions-demo.html +105 -0
- package/storybook-static/demo/npm-versions.html +65 -0
- package/storybook-static/demo/parameters.html +70 -0
- package/storybook-static/demo/s.xml +28 -0
- package/storybook-static/demo/s.xslt +97 -0
- package/storybook-static/demo/s1.xslt +60 -0
- package/storybook-static/demo/scoped-css.html +169 -0
- package/storybook-static/demo/set-url.html +141 -0
- package/storybook-static/demo/ss.html +57 -0
- package/storybook-static/demo/table.xml +25 -0
- package/storybook-static/demo/table.xsl +293 -0
- package/storybook-static/demo/template.xsl +46 -0
- package/storybook-static/demo/tree.xml +25 -0
- package/storybook-static/demo/tree.xsl +33 -0
- package/storybook-static/demo/wc-square.svg +1 -0
- package/storybook-static/demo/xhtml-template.xhtml +45 -0
- package/storybook-static/demo/z.html +62 -0
- package/storybook-static/demo/z.js +9 -0
- package/storybook-static/demo/z.xml +60 -0
- package/storybook-static/embed-1.html +1 -2
- package/storybook-static/favicon.svg +1 -7
- package/storybook-static/iframe.html +42 -30
- package/storybook-static/index.html +36 -18
- package/storybook-static/index.json +1 -1
- package/storybook-static/mockServiceWorker.js +1 -1
- package/storybook-static/nunito-sans-bold-italic.woff2 +0 -0
- package/storybook-static/nunito-sans-bold.woff2 +0 -0
- package/storybook-static/nunito-sans-italic.woff2 +0 -0
- package/storybook-static/nunito-sans-regular.woff2 +0 -0
- package/storybook-static/project.json +1 -1
- package/storybook-static/sb-addons/chromatic-com-storybook-9/manager-bundle.js +32 -32
- package/storybook-static/sb-addons/chromatic-com-storybook-9/manager-bundle.js.LEGAL.txt +1 -1
- package/storybook-static/sb-addons/essentials-actions-3/manager-bundle.js +1 -1
- package/storybook-static/sb-addons/essentials-controls-2/manager-bundle.js +395 -43
- package/storybook-static/sb-addons/essentials-controls-2/manager-bundle.js.LEGAL.txt +0 -18
- package/storybook-static/sb-addons/essentials-viewport-5/manager-bundle.js +1 -1
- package/storybook-static/sb-addons/interactions-10/manager-bundle.js +221 -22
- package/storybook-static/sb-addons/storybook-core-core-server-presets-0/common-manager-bundle.js +3 -0
- package/storybook-static/sb-common-assets/favicon.svg +1 -0
- package/storybook-static/sb-manager/globals-module-info.js +995 -1
- package/storybook-static/sb-manager/globals-runtime.js +53525 -1
- package/storybook-static/sb-manager/globals.js +48 -1
- package/storybook-static/sb-manager/runtime.js +11884 -1
- package/storybook-static/sb-preview/globals.js +33 -1
- package/storybook-static/sb-preview/runtime.js +9437 -108
- package/vite.config.js +2 -1
- package/dist/custom-element-BDK7dcJN.cjs +0 -53
- package/dist/custom-element-DqtzLkTG.js +0 -471
- package/dist/location-element-2m0gWq_d.cjs +0 -1
- package/dist/location-element-nA_wsqBt.js +0 -49
- package/storybook-static/assets/Color-PRSJMWNM-y4ZsI1hY.js +0 -1
- package/storybook-static/assets/DocsRenderer-K4EAMTCU-VRGUwRrq.js +0 -2
- package/storybook-static/assets/WithTooltip-KJL26V4Q-xdXH9Ztt.js +0 -1
- package/storybook-static/assets/custom-element-BIxkVg7K.js +0 -219
- package/storybook-static/assets/formatter-2WMMO6ZP-CThVcQxM.js +0 -58
- package/storybook-static/assets/http-request.stories-sXA_Y-VM.js +0 -300
- package/storybook-static/assets/iframe-DcDTQOmA.js +0 -2
- package/storybook-static/assets/index-CUFHd5VD.js +0 -1
- package/storybook-static/assets/index-CVRyq5ci.js +0 -27
- package/storybook-static/assets/index-Cc7K62zD.js +0 -3
- package/storybook-static/assets/index-DPPi9iZu.js +0 -548
- package/storybook-static/assets/index-DuIEV_9C.js +0 -13
- package/storybook-static/assets/index-VWixWKZ7.js +0 -1
- package/storybook-static/assets/lit-element-CenEXOuS.js +0 -19
- package/storybook-static/assets/preview-B4GcaC1c.js +0 -1
- package/storybook-static/assets/preview-B63p-W8V.js +0 -20
- package/storybook-static/assets/preview-p-Bwze-K.js +0 -2
- package/storybook-static/assets/syntaxhighlighter-BP7B2CQK-OnioRcs9.js +0 -1
- package/storybook-static/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +0 -3
- package/storybook-static/sb-common-assets/fonts.css +0 -31
- package/storybook-static/sb-manager/WithTooltip-KJL26V4Q-5LS5AN27.js +0 -1
- package/storybook-static/sb-manager/chunk-B3YDJJJH.js +0 -347
- package/storybook-static/sb-manager/chunk-BLWCBWKL.js +0 -9
- package/storybook-static/sb-manager/chunk-GUVK2GTO.js +0 -6
- package/storybook-static/sb-manager/chunk-LFRML3ZV.js +0 -186
- package/storybook-static/sb-manager/chunk-MC7RAF2B.js +0 -274
- package/storybook-static/sb-manager/chunk-ZR5JZWHI.js +0 -1
- package/storybook-static/sb-manager/formatter-2WMMO6ZP-JI7RHVTW.js +0 -58
- package/storybook-static/sb-manager/index.js +0 -1
- package/storybook-static/sb-manager/syntaxhighlighter-BP7B2CQK-WOJYHKQR.js +0 -1
- /package/storybook-static/sb-addons/{storybook-core-server-presets-0 → storybook-core-core-server-presets-0}/common-manager-bundle.js.LEGAL.txt +0 -0
|
@@ -30,7 +30,9 @@
|
|
|
30
30
|
<a href="./demo/local-storage.html" >local-storage </a> |
|
|
31
31
|
<a href="./demo/http-request.html" >http-request </a> |
|
|
32
32
|
<a href="./demo/location-element.html" >location-element </a> |
|
|
33
|
-
<a href="./demo/
|
|
33
|
+
<a href="./demo/set-url.html" >set-url </a> |
|
|
34
|
+
<a href="./demo/external-template.html" >external template </a> |
|
|
35
|
+
<a href="./demo/module-url.html" >importmap </a> <br/>
|
|
34
36
|
<a href="./demo/hex-grid.html" >hex grid lib </a> |
|
|
35
37
|
<a href="./demo/scoped-css.html" >scoped CSS </a> |
|
|
36
38
|
<a href="./demo/parameters.html" >attributes </a> |
|
|
@@ -16,6 +16,15 @@ function ensureTrackLocationChange()
|
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
|
+
const methods =
|
|
20
|
+
{ 'location.href' : src => window.location.href = src
|
|
21
|
+
, 'location.hash' : src => window.location.hash = src
|
|
22
|
+
, 'location.assign' : src => window.location.assign( src )
|
|
23
|
+
, 'location.replace' : src => window.location.replace( src )
|
|
24
|
+
, 'history.pushState' : src => window.history.pushState( {}, "", src )
|
|
25
|
+
, 'history.replaceState' : src => window.history.replaceState( {}, "", src )
|
|
26
|
+
};
|
|
27
|
+
|
|
19
28
|
|
|
20
29
|
export class LocationElement extends HTMLElement
|
|
21
30
|
{
|
|
@@ -25,6 +34,8 @@ export class LocationElement extends HTMLElement
|
|
|
25
34
|
, 'href' // url to be parsed. When omitted window.location is used.
|
|
26
35
|
, 'type' // `text|json`, defaults to text, other types are compatible with INPUT field
|
|
27
36
|
, 'live' // monitors history change, applicable only when href is omitted.
|
|
37
|
+
, 'src' // sets the URL
|
|
38
|
+
, 'method' // when defined, changes URL by one of predefined methods.
|
|
28
39
|
];
|
|
29
40
|
|
|
30
41
|
constructor()
|
|
@@ -53,6 +64,17 @@ export class LocationElement extends HTMLElement
|
|
|
53
64
|
};
|
|
54
65
|
this.sliceInit = s =>
|
|
55
66
|
{
|
|
67
|
+
if( this.hasAttribute('method') )
|
|
68
|
+
{
|
|
69
|
+
const method = this.getAttribute('method');
|
|
70
|
+
const src = this.getAttribute('src');
|
|
71
|
+
if( method && src )
|
|
72
|
+
if( method === 'location.hash' )
|
|
73
|
+
{ if( src !== window.location.hash )
|
|
74
|
+
methods[ method ]?.( src );
|
|
75
|
+
}else if( window.location.href !== new URL(src, window.location).href )
|
|
76
|
+
methods[method]?.(src);
|
|
77
|
+
}
|
|
56
78
|
if( !state.listener && this.hasAttribute('live') )
|
|
57
79
|
{ state.listener = 1;
|
|
58
80
|
window.navigation?.addEventListener("navigate", listener );
|
|
@@ -74,8 +96,9 @@ export class LocationElement extends HTMLElement
|
|
|
74
96
|
}
|
|
75
97
|
attributeChangedCallback(name, oldValue, newValue)
|
|
76
98
|
{
|
|
77
|
-
if('href'!== name)
|
|
78
|
-
|
|
99
|
+
if('href'!== name && 'method' !== name && 'src' )
|
|
100
|
+
if( !['method','src','href'].includes(name) )
|
|
101
|
+
return;
|
|
79
102
|
this.sliceInit && this.sliceInit();
|
|
80
103
|
}
|
|
81
104
|
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
const attr = ( el, attr )=> el.getAttribute( attr );
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
export class ModuleUrl extends HTMLElement
|
|
5
|
+
{
|
|
6
|
+
static observedAttributes=
|
|
7
|
+
[ 'slice'
|
|
8
|
+
, 'src' // module path, relative or absolute URL
|
|
9
|
+
];
|
|
10
|
+
|
|
11
|
+
sliceInit()
|
|
12
|
+
{ let path = attr(this,'src');
|
|
13
|
+
try
|
|
14
|
+
{ const url = '.' === path.charAt(0)
|
|
15
|
+
? new URL(path, this.closest('[base]')?.getAttribute('base') ).href
|
|
16
|
+
: import.meta.resolve(path);
|
|
17
|
+
this.setAttribute('value',this.value = url );
|
|
18
|
+
}catch( er )
|
|
19
|
+
{ this.setAttribute('error', er.message);
|
|
20
|
+
this.setAttribute('value', path);
|
|
21
|
+
console.error(er.message ?? er, path);
|
|
22
|
+
}
|
|
23
|
+
this.dispatchEvent( new Event('change') );
|
|
24
|
+
}
|
|
25
|
+
attributeChangedCallback( name, oldValue, newValue )
|
|
26
|
+
{
|
|
27
|
+
if( 'src'=== name )
|
|
28
|
+
this.sliceInit();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
window.customElements.define( 'module-url', ModuleUrl );
|
|
33
|
+
export default ModuleUrl;
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import {expect, test} from 'vitest'
|
|
2
|
-
import {deepEqual, xml2dom, xmlString, obj2node } from './custom-element/custom-element.js'
|
|
3
|
-
|
|
4
|
-
test('deepEqual', () =>
|
|
5
|
-
{
|
|
6
|
-
expect(deepEqual(1, 1)).toBe(true);
|
|
7
|
-
expect(deepEqual({}, null)).toBe(false);
|
|
8
|
-
expect(deepEqual({a: 1}, {a: 1, b: 2})).toBe(false);
|
|
9
|
-
expect(deepEqual({a: 1}, {a: 2})).toBe(false);
|
|
10
|
-
expect(deepEqual({a: 1}, {a: 1})).toBe(true);
|
|
11
|
-
})
|
|
12
|
-
test('xml2dom', () =>
|
|
13
|
-
{
|
|
14
|
-
const dom = xml2dom('<a/>');
|
|
15
|
-
expect(dom.documentElement.localName).to.equal('a');
|
|
16
|
-
expect(dom.documentElement.childNodes.length).to.equal(0);
|
|
17
|
-
const xStr = xmlString(dom);
|
|
18
|
-
expect(xStr).to.include('<a');
|
|
19
|
-
})
|
|
20
|
-
test('obj2node', () =>
|
|
21
|
-
{
|
|
22
|
-
expect(obj2node(()=>{} , 'f',document).outerHTML).to.equal('<f></f>' );
|
|
23
|
-
expect(obj2node(9 , 'a',document).outerHTML).to.equal('<a>9</a>' );
|
|
24
|
-
expect(obj2node('abc' , 's',document).outerHTML).to.equal('<s>abc</s>' );
|
|
25
|
-
expect(obj2node({a:1,b:{c:'abc'}} , 's',document).outerHTML).to.equal('<s a="1"><b c="abc"></b></s>');
|
|
26
|
-
})
|
|
1
|
+
import {expect, test} from 'vitest'
|
|
2
|
+
import {deepEqual, xml2dom, xmlString, obj2node } from './custom-element/custom-element.js'
|
|
3
|
+
|
|
4
|
+
test('deepEqual', () =>
|
|
5
|
+
{
|
|
6
|
+
expect(deepEqual(1, 1)).toBe(true);
|
|
7
|
+
expect(deepEqual({}, null)).toBe(false);
|
|
8
|
+
expect(deepEqual({a: 1}, {a: 1, b: 2})).toBe(false);
|
|
9
|
+
expect(deepEqual({a: 1}, {a: 2})).toBe(false);
|
|
10
|
+
expect(deepEqual({a: 1}, {a: 1})).toBe(true);
|
|
11
|
+
})
|
|
12
|
+
test('xml2dom', () =>
|
|
13
|
+
{
|
|
14
|
+
const dom = xml2dom('<a/>');
|
|
15
|
+
expect(dom.documentElement.localName).to.equal('a');
|
|
16
|
+
expect(dom.documentElement.childNodes.length).to.equal(0);
|
|
17
|
+
const xStr = xmlString(dom);
|
|
18
|
+
expect(xStr).to.include('<a');
|
|
19
|
+
})
|
|
20
|
+
test('obj2node', () =>
|
|
21
|
+
{
|
|
22
|
+
expect(obj2node(()=>{} , 'f',document).outerHTML).to.equal('<f></f>' );
|
|
23
|
+
expect(obj2node(9 , 'a',document).outerHTML).to.equal('<a>9</a>' );
|
|
24
|
+
expect(obj2node('abc' , 's',document).outerHTML).to.equal('<s>abc</s>' );
|
|
25
|
+
expect(obj2node({a:1,b:{c:'abc'}} , 's',document).outerHTML).to.equal('<s a="1"><b c="abc"></b></s>');
|
|
26
|
+
})
|
package/src/mocks/handlers.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import {delay, http, HttpResponse} from 'msw'
|
|
2
2
|
|
|
3
3
|
import pokemonsMock from './pokemons.mock.ts';
|
|
4
|
+
import versions from './versions.mock.ts';
|
|
4
5
|
|
|
5
6
|
export const handlers =
|
|
6
7
|
[ http.get('/pokemon', ({ request }) =>
|
|
@@ -25,5 +26,13 @@ export const handlers =
|
|
|
25
26
|
})
|
|
26
27
|
, http.get('/404', () =>
|
|
27
28
|
{
|
|
28
|
-
return new HttpResponse(null, {status: 404, statusText: 'not found'})
|
|
29
|
+
return new HttpResponse(null, {status: 404, statusText: 'not found'})
|
|
30
|
+
})
|
|
31
|
+
,
|
|
29
32
|
];
|
|
33
|
+
// only for local
|
|
34
|
+
if( !window.location.pathname.startsWith('@epa-wg/custom-element-dist'))
|
|
35
|
+
handlers.push(http.get('https://registry.npmjs.org/@epa-wg/custom-element-dist', async () =>
|
|
36
|
+
{
|
|
37
|
+
return HttpResponse.json(versions);
|
|
38
|
+
}))
|