@epa-wg/custom-element-dist 0.0.21 → 0.0.23
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/.idea/.gitignore +8 -0
- package/README.md +4 -4
- package/coverage/coverage-final.json +13 -11
- package/coverage/index.html +30 -30
- 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 +603 -420
- package/coverage/src/custom-element/http-request.js.html +10 -10
- package/coverage/src/custom-element/index.html +18 -18
- package/coverage/src/custom-element/local-storage.js.html +2 -2
- package/coverage/src/custom-element/location-element.js.html +1 -1
- package/coverage/src/index.html +1 -1
- package/coverage/src/mocks/handlers.ts.html +1 -1
- package/coverage/src/mocks/index.html +1 -1
- package/coverage/src/stories/{css.stories.ts → attributes.test.stories.ts}/coverage.svg +1 -1
- package/coverage/src/stories/{attributes.stories.ts.html → attributes.test.stories.ts.html} +113 -83
- package/coverage/src/stories/coverage.svg +1 -1
- package/coverage/src/stories/css.test.stories.ts/coverage.svg +10 -0
- package/coverage/src/stories/{css.stories.ts.html → css.test.stories.ts.html} +122 -65
- package/coverage/src/stories/dom-merge.test.stories.ts/coverage.svg +10 -0
- package/coverage/src/stories/{dom-merge.stories.ts.html → dom-merge.test.stories.ts.html} +118 -70
- package/coverage/src/stories/external-template.test.stories.ts/coverage.svg +10 -0
- package/coverage/src/stories/{external-template.stories.ts.html → external-template.test.stories.ts.html} +180 -150
- package/coverage/src/stories/form.test.stories.ts/coverage.svg +10 -0
- package/coverage/src/stories/form.test.stories.ts.html +655 -0
- package/coverage/src/stories/http-request.stories.ts.html +7 -7
- package/coverage/src/stories/index.html +118 -88
- package/coverage/src/stories/{dom-merge.stories.ts → local-storage.test.stories.ts}/coverage.svg +1 -1
- package/coverage/src/stories/{local-storage.stories.ts.html → local-storage.test.stories.ts.html} +475 -439
- package/coverage/src/stories/{external-template.stories.ts → location-element.test.stories.ts}/coverage.svg +1 -1
- package/coverage/src/stories/{location-element.stories.ts.html → location-element.test.stories.ts.html} +134 -98
- package/coverage/src/stories/slice-events.test.stories.ts/coverage.svg +10 -0
- package/coverage/src/stories/slice-events.test.stories.ts.html +685 -0
- package/coverage/src/stories/slots.test.stories.ts/coverage.svg +10 -0
- package/coverage/src/stories/slots.test.stories.ts.html +736 -0
- package/coverage/src/stories/{renderPlay.ts.html → testStoryBook.ts.html} +44 -26
- package/coverage/src/sum.ts.html +1 -1
- package/dist/custom-element-BISbI4SU.js +463 -0
- package/dist/custom-element-N-sWiqGK.cjs +53 -0
- package/dist/custom-element-bundle.cjs +1 -1
- package/dist/custom-element-bundle.js +2 -2
- package/dist/mockServiceWorker.js +1 -1
- package/package.json +4 -4
- package/public/mockServiceWorker.js +1 -1
- package/src/custom-element/custom-element.d.ts +4 -0
- package/src/custom-element/custom-element.js +103 -42
- package/src/custom-element/demo/a.html +38 -41
- package/src/custom-element/demo/b.html +13 -0
- package/src/custom-element/demo/data-slices.html +32 -0
- package/src/custom-element/demo/form.html +240 -0
- package/src/custom-element/demo/s.xml +11 -14
- package/src/custom-element/demo/s.xslt +22 -38
- package/src/custom-element/demo/s1.xslt +60 -0
- package/src/custom-element/ide/customData-dce.json +14 -1
- package/src/custom-element/ide/web-types-dce.json +6 -1
- package/src/custom-element/ide/web-types-xsl.json +1 -1
- package/src/custom-element/index.html +1 -0
- package/src/custom-element.test.ts +24 -8
- package/src/stories/{attributes.stories.ts → attributes.test.stories.ts} +19 -9
- package/src/stories/{css.stories.ts → css.test.stories.ts} +28 -9
- package/src/stories/{dom-merge.stories.ts → dom-merge.test.stories.ts} +19 -3
- package/src/stories/{external-template.stories.ts → external-template.test.stories.ts} +13 -3
- package/src/stories/form.test.stories.ts +190 -0
- package/src/stories/http-request.stories.ts +6 -6
- package/src/stories/http-request.test.ts +0 -9
- package/src/stories/{local-storage.stories.ts → local-storage.test.stories.ts} +24 -12
- package/src/stories/{location-element.stories.ts → location-element.test.stories.ts} +21 -9
- package/src/stories/{slice-events.stories.ts → slice-events.test.stories.ts} +88 -5
- package/src/stories/slots.test.stories.ts +217 -0
- package/src/stories/testStoryBook.ts +28 -0
- package/storybook-static/assets/{Color-RQJUDNI5-C4yZhNbM.js → Color-PRSJMWNM-BD_Ds9NW.js} +1 -1
- package/storybook-static/assets/{Configure-C7d36rng.js → Configure-70I_VApa.js} +1 -1
- package/storybook-static/assets/DocsRenderer-K4EAMTCU-9dn0-HCP.js +2 -0
- package/storybook-static/assets/WithTooltip-KJL26V4Q-C6g5GOU9.js +1 -0
- package/storybook-static/assets/{attributes.stories-ZB0RTY1d.js → attributes.test.stories-BEOraI4E.js} +22 -21
- package/storybook-static/assets/css.test.stories-D9WaxrEv.js +96 -0
- package/storybook-static/assets/custom-element-BV8-hRQS.js +219 -0
- package/storybook-static/assets/{dom-merge.stories-CgHZUABU.js → dom-merge.test.stories-BhbNeum_.js} +5 -6
- package/storybook-static/assets/{entry-preview-CQqNFx4W.js → entry-preview-DrgzXgwT.js} +1 -1
- package/storybook-static/assets/{entry-preview-docs-CWgqLfd3.js → entry-preview-docs-Bxv0qQWs.js} +1 -1
- package/storybook-static/assets/{external-template.stories-DtSLMxvg.js → external-template.test.stories-Bpr_wxBo.js} +23 -24
- package/storybook-static/assets/form.test.stories-3tURbEdv.js +250 -0
- package/storybook-static/assets/{formatter-B5HCVTEV-tKeEfJA9.js → formatter-2WMMO6ZP-6IvBq34u.js} +5 -5
- package/storybook-static/assets/http-request.stories-8K_qSs8C.js +300 -0
- package/storybook-static/assets/iframe-zdt9kuj6.js +2 -0
- package/storybook-static/assets/index-B3oZkK3F.js +1 -0
- package/storybook-static/assets/index-C30JwJMK.js +548 -0
- package/storybook-static/assets/index-CVRyq5ci.js +27 -0
- package/storybook-static/assets/index-DXimoRZY.js +1 -0
- package/storybook-static/assets/{index-DnEJ_bKa.js → index-DhXZyjEd.js} +1 -1
- package/storybook-static/assets/index-DuIEV_9C.js +13 -0
- package/storybook-static/assets/{lit-element-B4_0akdT.js → lit-element-CenEXOuS.js} +2 -2
- package/storybook-static/assets/{local-storage.stories-BkO6djDz.js → local-storage.test.stories-CtisAQBB.js} +28 -24
- package/storybook-static/assets/{location-element.stories-DCIOUd0D.js → location-element.test.stories-5O_t_m4Y.js} +11 -11
- package/storybook-static/assets/preview-4Up_z4Em.js +7 -0
- package/storybook-static/assets/preview-BKCN0mOr.js +1 -0
- package/storybook-static/assets/{preview-CkgAD_DE.js → preview-D0eCfQft.js} +2 -2
- package/storybook-static/assets/preview-DRnyIGXK.js +48 -0
- package/storybook-static/assets/preview-FpHGYA1q.js +1 -0
- package/storybook-static/assets/{preview-PxUn-cIn.js → preview-TCN6m6T-.js} +1 -1
- package/storybook-static/assets/slice-events.test.stories-BSXCLIA5.js +231 -0
- package/storybook-static/assets/slots.test.stories-B1vqfHmN.js +214 -0
- package/storybook-static/assets/syntaxhighlighter-BP7B2CQK-DpPBKyTO.js +1 -0
- package/storybook-static/iframe.html +153 -10
- package/storybook-static/index.html +1 -1
- package/storybook-static/index.json +1 -1
- package/storybook-static/mockServiceWorker.js +1 -1
- package/storybook-static/project.json +1 -1
- package/storybook-static/sb-addons/chromatic-com-storybook-9/manager-bundle.js +35 -29
- 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-backgrounds-4/manager-bundle.js +5 -5
- package/storybook-static/sb-addons/essentials-controls-2/manager-bundle.js +35 -35
- package/storybook-static/sb-addons/essentials-measure-7/manager-bundle.js +1 -1
- package/storybook-static/sb-addons/essentials-outline-8/manager-bundle.js +1 -1
- package/storybook-static/sb-addons/essentials-toolbars-6/manager-bundle.js +1 -1
- package/storybook-static/sb-addons/essentials-viewport-5/manager-bundle.js +1 -1
- package/storybook-static/sb-addons/interactions-10/manager-bundle.js +18 -16
- package/storybook-static/sb-addons/links-1/manager-bundle.js +1 -1
- package/storybook-static/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +1 -1
- package/storybook-static/sb-manager/WithTooltip-KJL26V4Q-5LS5AN27.js +1 -0
- package/storybook-static/sb-manager/{chunk-S4VOIVUE.js → chunk-B3YDJJJH.js} +9 -9
- package/storybook-static/sb-manager/{chunk-FEE35O7J.js → chunk-BLWCBWKL.js} +3 -3
- package/storybook-static/sb-manager/{chunk-XCO5HRLK.js → chunk-GUVK2GTO.js} +3 -3
- package/storybook-static/sb-manager/chunk-LFRML3ZV.js +186 -0
- package/storybook-static/sb-manager/chunk-MC7RAF2B.js +274 -0
- package/storybook-static/sb-manager/{chunk-XP3HGWTR.js → chunk-ZR5JZWHI.js} +1 -1
- package/storybook-static/sb-manager/{formatter-B5HCVTEV-7DCBOGO6.js → formatter-2WMMO6ZP-JI7RHVTW.js} +1 -1
- package/storybook-static/sb-manager/globals-module-info.js +1 -1
- package/storybook-static/sb-manager/globals-runtime.js +1 -1
- package/storybook-static/sb-manager/index.js +1 -1
- package/storybook-static/sb-manager/runtime.js +1 -1
- package/storybook-static/sb-manager/{syntaxhighlighter-JOJW2KGS-VF6EEVPI.js → syntaxhighlighter-BP7B2CQK-WOJYHKQR.js} +1 -1
- package/storybook-static/sb-preview/runtime.js +28 -11
- package/tsconfig.json +31 -21
- package/vite.config.js +5 -5
- package/yarn.lock +10242 -0
- package/.vscode/settings.json +0 -24
- package/coverage/src/stories/local-storage.stories.ts/coverage.svg +0 -10
- package/coverage/src/stories/location-element.stories.ts/coverage.svg +0 -10
- package/coverage/src/stories/renderPlay.ts/coverage.svg +0 -10
- package/coverage/src/stories/slice-events.stories.ts/coverage.svg +0 -10
- package/coverage/src/stories/slice-events.stories.ts.html +0 -436
- package/dist/custom-element-B4v-KaIh.cjs +0 -53
- package/dist/custom-element-_g0GTup2.js +0 -436
- package/src/stories/attributes.test.ts +0 -14
- package/src/stories/css.test.ts +0 -12
- package/src/stories/dom-merge.test.ts +0 -12
- package/src/stories/external-template.test.ts +0 -12
- package/src/stories/local-storage.test.ts +0 -12
- package/src/stories/location-element.test.ts +0 -14
- package/src/stories/renderPlay.ts +0 -22
- package/src/stories/slice-events.test.ts +0 -12
- package/storybook-static/assets/DocsRenderer-K4EAMTCU-BLMupvSb.js +0 -2
- package/storybook-static/assets/WithTooltip-Y7J54OF7-BAQSPSFk.js +0 -1
- package/storybook-static/assets/css.stories-CLSX-Xxd.js +0 -86
- package/storybook-static/assets/custom-element-BLZZ00dz.js +0 -53
- package/storybook-static/assets/http-request.stories-CUzlXO89.js +0 -300
- package/storybook-static/assets/iframe-gCvlWuoC.js +0 -2
- package/storybook-static/assets/index-CBQwM6ST.js +0 -508
- package/storybook-static/assets/index-CDavW7r9.js +0 -193
- package/storybook-static/assets/index-CQA5dlr6.js +0 -13
- package/storybook-static/assets/index-DgaNIR0t.js +0 -1
- package/storybook-static/assets/index-Dkj0J1ds.js +0 -1
- package/storybook-static/assets/preview-C6t8KBFr.js +0 -1
- package/storybook-static/assets/preview-CYD85dwb.js +0 -7
- package/storybook-static/assets/preview-D8LadFCz.js +0 -48
- package/storybook-static/assets/preview-DNpCpRPf.js +0 -1
- package/storybook-static/assets/slice-events.stories-DXKjXI37.js +0 -115
- package/storybook-static/assets/syntaxhighlighter-JOJW2KGS-C04pIVD3.js +0 -1
- package/storybook-static/sb-manager/WithTooltip-Y7J54OF7-CEHQ77YF.js +0 -1
- package/storybook-static/sb-manager/chunk-E3WK6ZOZ.js +0 -234
- package/storybook-static/sb-manager/chunk-E6ABNH5R.js +0 -183
- /package/coverage/src/stories/{attributes.stories.ts → testStoryBook.ts}/coverage.svg +0 -0
package/.vscode/settings.json
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"html.customData": [
|
|
3
|
-
"./src/custom-element/ide/customData-dce.json",
|
|
4
|
-
"./src/custom-element/ide/customData-xsl.json"
|
|
5
|
-
],
|
|
6
|
-
"terminal.integrated.profiles.windows": {
|
|
7
|
-
"PowerShell": {
|
|
8
|
-
"source": "PowerShell",
|
|
9
|
-
"icon": "terminal-powershell"
|
|
10
|
-
},
|
|
11
|
-
"Command Prompt": {
|
|
12
|
-
"path": [
|
|
13
|
-
"${env:windir}\\Sysnative\\cmd.exe",
|
|
14
|
-
"${env:windir}\\System32\\cmd.exe"
|
|
15
|
-
],
|
|
16
|
-
"args": [],
|
|
17
|
-
"icon": "terminal-cmd"
|
|
18
|
-
},
|
|
19
|
-
"Git Bash": {
|
|
20
|
-
"source": "Git Bash"
|
|
21
|
-
}
|
|
22
|
-
},
|
|
23
|
-
"terminal.integrated.defaultProfile.windows": "Git Bash"
|
|
24
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
<svg viewBox="0 0 140 32" height="20px" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<style>
|
|
3
|
-
.heavy { font: bold 16px sans-serif; fill:white; }
|
|
4
|
-
.percent { font: bold 16px monotype; fill: white; }
|
|
5
|
-
</style>
|
|
6
|
-
<rect width="140" height="32" fill="#473" rx="4"/>
|
|
7
|
-
<rect width="88" height="32" fill="#534" rx="4"/>
|
|
8
|
-
<text x="8" y="21" class="heavy">coverage</text>
|
|
9
|
-
<text x="94" y="22" class="percent">100%</text>
|
|
10
|
-
</svg>
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
<svg viewBox="0 0 140 32" height="20px" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<style>
|
|
3
|
-
.heavy { font: bold 16px sans-serif; fill:white; }
|
|
4
|
-
.percent { font: bold 16px monotype; fill: white; }
|
|
5
|
-
</style>
|
|
6
|
-
<rect width="140" height="32" fill="#473" rx="4"/>
|
|
7
|
-
<rect width="88" height="32" fill="#534" rx="4"/>
|
|
8
|
-
<text x="8" y="21" class="heavy">coverage</text>
|
|
9
|
-
<text x="94" y="22" class="percent">100%</text>
|
|
10
|
-
</svg>
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
<svg viewBox="0 0 140 32" height="20px" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<style>
|
|
3
|
-
.heavy { font: bold 16px sans-serif; fill:white; }
|
|
4
|
-
.percent { font: bold 16px monotype; fill: white; }
|
|
5
|
-
</style>
|
|
6
|
-
<rect width="140" height="32" fill="#473" rx="4"/>
|
|
7
|
-
<rect width="88" height="32" fill="#534" rx="4"/>
|
|
8
|
-
<text x="8" y="21" class="heavy">coverage</text>
|
|
9
|
-
<text x="94" y="22" class="percent">100%</text>
|
|
10
|
-
</svg>
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
<svg viewBox="0 0 140 32" height="20px" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<style>
|
|
3
|
-
.heavy { font: bold 16px sans-serif; fill:white; }
|
|
4
|
-
.percent { font: bold 16px monotype; fill: white; }
|
|
5
|
-
</style>
|
|
6
|
-
<rect width="140" height="32" fill="#473" rx="4"/>
|
|
7
|
-
<rect width="88" height="32" fill="#534" rx="4"/>
|
|
8
|
-
<text x="8" y="21" class="heavy">coverage</text>
|
|
9
|
-
<text x="94" y="22" class="percent">100%</text>
|
|
10
|
-
</svg>
|
|
@@ -1,436 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
<!doctype html>
|
|
3
|
-
<html lang="en">
|
|
4
|
-
|
|
5
|
-
<head>
|
|
6
|
-
<title>Code coverage report for src/stories/slice-events.stories.ts</title>
|
|
7
|
-
<meta charset="utf-8" />
|
|
8
|
-
<link rel="stylesheet" href="../../prettify.css" />
|
|
9
|
-
<link rel="stylesheet" href="../../base.css" />
|
|
10
|
-
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
|
11
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
-
<style type='text/css'>
|
|
13
|
-
.coverage-summary .sorter {
|
|
14
|
-
background-image: url(../../sort-arrow-sprite.png);
|
|
15
|
-
}
|
|
16
|
-
</style>
|
|
17
|
-
</head>
|
|
18
|
-
|
|
19
|
-
<body>
|
|
20
|
-
<div class='wrapper'>
|
|
21
|
-
<div class='pad1'>
|
|
22
|
-
<h1><a href="../../index.html">All files</a> / <a href="index.html">src/stories</a> slice-events.stories.ts</h1>
|
|
23
|
-
<div class='clearfix'>
|
|
24
|
-
|
|
25
|
-
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">100% </span>
|
|
27
|
-
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>50/50</span>
|
|
29
|
-
</div>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">100% </span>
|
|
34
|
-
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>0/0</span>
|
|
36
|
-
</div>
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">100% </span>
|
|
41
|
-
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>9/9</span>
|
|
43
|
-
</div>
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">100% </span>
|
|
48
|
-
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>46/46</span>
|
|
50
|
-
</div>
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
</div>
|
|
54
|
-
<p class="quiet">
|
|
55
|
-
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
-
</p>
|
|
57
|
-
<template id="filterTemplate">
|
|
58
|
-
<div class="quiet">
|
|
59
|
-
Filter:
|
|
60
|
-
<input type="search" id="fileSearch">
|
|
61
|
-
</div>
|
|
62
|
-
</template>
|
|
63
|
-
</div>
|
|
64
|
-
<div class='status-line high'></div>
|
|
65
|
-
<pre><table class="coverage">
|
|
66
|
-
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
-
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
-
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
-
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
-
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
-
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
-
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
-
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
-
<a name='L9'></a><a href='#L9'>9</a>
|
|
75
|
-
<a name='L10'></a><a href='#L10'>10</a>
|
|
76
|
-
<a name='L11'></a><a href='#L11'>11</a>
|
|
77
|
-
<a name='L12'></a><a href='#L12'>12</a>
|
|
78
|
-
<a name='L13'></a><a href='#L13'>13</a>
|
|
79
|
-
<a name='L14'></a><a href='#L14'>14</a>
|
|
80
|
-
<a name='L15'></a><a href='#L15'>15</a>
|
|
81
|
-
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
|
-
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
|
-
<a name='L18'></a><a href='#L18'>18</a>
|
|
84
|
-
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
|
-
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
|
-
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
-
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
-
<a name='L23'></a><a href='#L23'>23</a>
|
|
89
|
-
<a name='L24'></a><a href='#L24'>24</a>
|
|
90
|
-
<a name='L25'></a><a href='#L25'>25</a>
|
|
91
|
-
<a name='L26'></a><a href='#L26'>26</a>
|
|
92
|
-
<a name='L27'></a><a href='#L27'>27</a>
|
|
93
|
-
<a name='L28'></a><a href='#L28'>28</a>
|
|
94
|
-
<a name='L29'></a><a href='#L29'>29</a>
|
|
95
|
-
<a name='L30'></a><a href='#L30'>30</a>
|
|
96
|
-
<a name='L31'></a><a href='#L31'>31</a>
|
|
97
|
-
<a name='L32'></a><a href='#L32'>32</a>
|
|
98
|
-
<a name='L33'></a><a href='#L33'>33</a>
|
|
99
|
-
<a name='L34'></a><a href='#L34'>34</a>
|
|
100
|
-
<a name='L35'></a><a href='#L35'>35</a>
|
|
101
|
-
<a name='L36'></a><a href='#L36'>36</a>
|
|
102
|
-
<a name='L37'></a><a href='#L37'>37</a>
|
|
103
|
-
<a name='L38'></a><a href='#L38'>38</a>
|
|
104
|
-
<a name='L39'></a><a href='#L39'>39</a>
|
|
105
|
-
<a name='L40'></a><a href='#L40'>40</a>
|
|
106
|
-
<a name='L41'></a><a href='#L41'>41</a>
|
|
107
|
-
<a name='L42'></a><a href='#L42'>42</a>
|
|
108
|
-
<a name='L43'></a><a href='#L43'>43</a>
|
|
109
|
-
<a name='L44'></a><a href='#L44'>44</a>
|
|
110
|
-
<a name='L45'></a><a href='#L45'>45</a>
|
|
111
|
-
<a name='L46'></a><a href='#L46'>46</a>
|
|
112
|
-
<a name='L47'></a><a href='#L47'>47</a>
|
|
113
|
-
<a name='L48'></a><a href='#L48'>48</a>
|
|
114
|
-
<a name='L49'></a><a href='#L49'>49</a>
|
|
115
|
-
<a name='L50'></a><a href='#L50'>50</a>
|
|
116
|
-
<a name='L51'></a><a href='#L51'>51</a>
|
|
117
|
-
<a name='L52'></a><a href='#L52'>52</a>
|
|
118
|
-
<a name='L53'></a><a href='#L53'>53</a>
|
|
119
|
-
<a name='L54'></a><a href='#L54'>54</a>
|
|
120
|
-
<a name='L55'></a><a href='#L55'>55</a>
|
|
121
|
-
<a name='L56'></a><a href='#L56'>56</a>
|
|
122
|
-
<a name='L57'></a><a href='#L57'>57</a>
|
|
123
|
-
<a name='L58'></a><a href='#L58'>58</a>
|
|
124
|
-
<a name='L59'></a><a href='#L59'>59</a>
|
|
125
|
-
<a name='L60'></a><a href='#L60'>60</a>
|
|
126
|
-
<a name='L61'></a><a href='#L61'>61</a>
|
|
127
|
-
<a name='L62'></a><a href='#L62'>62</a>
|
|
128
|
-
<a name='L63'></a><a href='#L63'>63</a>
|
|
129
|
-
<a name='L64'></a><a href='#L64'>64</a>
|
|
130
|
-
<a name='L65'></a><a href='#L65'>65</a>
|
|
131
|
-
<a name='L66'></a><a href='#L66'>66</a>
|
|
132
|
-
<a name='L67'></a><a href='#L67'>67</a>
|
|
133
|
-
<a name='L68'></a><a href='#L68'>68</a>
|
|
134
|
-
<a name='L69'></a><a href='#L69'>69</a>
|
|
135
|
-
<a name='L70'></a><a href='#L70'>70</a>
|
|
136
|
-
<a name='L71'></a><a href='#L71'>71</a>
|
|
137
|
-
<a name='L72'></a><a href='#L72'>72</a>
|
|
138
|
-
<a name='L73'></a><a href='#L73'>73</a>
|
|
139
|
-
<a name='L74'></a><a href='#L74'>74</a>
|
|
140
|
-
<a name='L75'></a><a href='#L75'>75</a>
|
|
141
|
-
<a name='L76'></a><a href='#L76'>76</a>
|
|
142
|
-
<a name='L77'></a><a href='#L77'>77</a>
|
|
143
|
-
<a name='L78'></a><a href='#L78'>78</a>
|
|
144
|
-
<a name='L79'></a><a href='#L79'>79</a>
|
|
145
|
-
<a name='L80'></a><a href='#L80'>80</a>
|
|
146
|
-
<a name='L81'></a><a href='#L81'>81</a>
|
|
147
|
-
<a name='L82'></a><a href='#L82'>82</a>
|
|
148
|
-
<a name='L83'></a><a href='#L83'>83</a>
|
|
149
|
-
<a name='L84'></a><a href='#L84'>84</a>
|
|
150
|
-
<a name='L85'></a><a href='#L85'>85</a>
|
|
151
|
-
<a name='L86'></a><a href='#L86'>86</a>
|
|
152
|
-
<a name='L87'></a><a href='#L87'>87</a>
|
|
153
|
-
<a name='L88'></a><a href='#L88'>88</a>
|
|
154
|
-
<a name='L89'></a><a href='#L89'>89</a>
|
|
155
|
-
<a name='L90'></a><a href='#L90'>90</a>
|
|
156
|
-
<a name='L91'></a><a href='#L91'>91</a>
|
|
157
|
-
<a name='L92'></a><a href='#L92'>92</a>
|
|
158
|
-
<a name='L93'></a><a href='#L93'>93</a>
|
|
159
|
-
<a name='L94'></a><a href='#L94'>94</a>
|
|
160
|
-
<a name='L95'></a><a href='#L95'>95</a>
|
|
161
|
-
<a name='L96'></a><a href='#L96'>96</a>
|
|
162
|
-
<a name='L97'></a><a href='#L97'>97</a>
|
|
163
|
-
<a name='L98'></a><a href='#L98'>98</a>
|
|
164
|
-
<a name='L99'></a><a href='#L99'>99</a>
|
|
165
|
-
<a name='L100'></a><a href='#L100'>100</a>
|
|
166
|
-
<a name='L101'></a><a href='#L101'>101</a>
|
|
167
|
-
<a name='L102'></a><a href='#L102'>102</a>
|
|
168
|
-
<a name='L103'></a><a href='#L103'>103</a>
|
|
169
|
-
<a name='L104'></a><a href='#L104'>104</a>
|
|
170
|
-
<a name='L105'></a><a href='#L105'>105</a>
|
|
171
|
-
<a name='L106'></a><a href='#L106'>106</a>
|
|
172
|
-
<a name='L107'></a><a href='#L107'>107</a>
|
|
173
|
-
<a name='L108'></a><a href='#L108'>108</a>
|
|
174
|
-
<a name='L109'></a><a href='#L109'>109</a>
|
|
175
|
-
<a name='L110'></a><a href='#L110'>110</a>
|
|
176
|
-
<a name='L111'></a><a href='#L111'>111</a>
|
|
177
|
-
<a name='L112'></a><a href='#L112'>112</a>
|
|
178
|
-
<a name='L113'></a><a href='#L113'>113</a>
|
|
179
|
-
<a name='L114'></a><a href='#L114'>114</a>
|
|
180
|
-
<a name='L115'></a><a href='#L115'>115</a>
|
|
181
|
-
<a name='L116'></a><a href='#L116'>116</a>
|
|
182
|
-
<a name='L117'></a><a href='#L117'>117</a>
|
|
183
|
-
<a name='L118'></a><a href='#L118'>118</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
184
|
-
<span class="cline-any cline-neutral"> </span>
|
|
185
|
-
<span class="cline-any cline-neutral"> </span>
|
|
186
|
-
<span class="cline-any cline-neutral"> </span>
|
|
187
|
-
<span class="cline-any cline-neutral"> </span>
|
|
188
|
-
<span class="cline-any cline-neutral"> </span>
|
|
189
|
-
<span class="cline-any cline-neutral"> </span>
|
|
190
|
-
<span class="cline-any cline-neutral"> </span>
|
|
191
|
-
<span class="cline-any cline-neutral"> </span>
|
|
192
|
-
<span class="cline-any cline-neutral"> </span>
|
|
193
|
-
<span class="cline-any cline-yes">5x</span>
|
|
194
|
-
<span class="cline-any cline-neutral"> </span>
|
|
195
|
-
<span class="cline-any cline-neutral"> </span>
|
|
196
|
-
<span class="cline-any cline-neutral"> </span>
|
|
197
|
-
<span class="cline-any cline-yes">2x</span>
|
|
198
|
-
<span class="cline-any cline-yes">2x</span>
|
|
199
|
-
<span class="cline-any cline-neutral"> </span>
|
|
200
|
-
<span class="cline-any cline-neutral"> </span>
|
|
201
|
-
<span class="cline-any cline-neutral"> </span>
|
|
202
|
-
<span class="cline-any cline-neutral"> </span>
|
|
203
|
-
<span class="cline-any cline-neutral"> </span>
|
|
204
|
-
<span class="cline-any cline-neutral"> </span>
|
|
205
|
-
<span class="cline-any cline-neutral"> </span>
|
|
206
|
-
<span class="cline-any cline-yes">1x</span>
|
|
207
|
-
<span class="cline-any cline-neutral"> </span>
|
|
208
|
-
<span class="cline-any cline-neutral"> </span>
|
|
209
|
-
<span class="cline-any cline-neutral"> </span>
|
|
210
|
-
<span class="cline-any cline-neutral"> </span>
|
|
211
|
-
<span class="cline-any cline-neutral"> </span>
|
|
212
|
-
<span class="cline-any cline-neutral"> </span>
|
|
213
|
-
<span class="cline-any cline-yes">1x</span>
|
|
214
|
-
<span class="cline-any cline-neutral"> </span>
|
|
215
|
-
<span class="cline-any cline-neutral"> </span>
|
|
216
|
-
<span class="cline-any cline-neutral"> </span>
|
|
217
|
-
<span class="cline-any cline-neutral"> </span>
|
|
218
|
-
<span class="cline-any cline-neutral"> </span>
|
|
219
|
-
<span class="cline-any cline-neutral"> </span>
|
|
220
|
-
<span class="cline-any cline-neutral"> </span>
|
|
221
|
-
<span class="cline-any cline-neutral"> </span>
|
|
222
|
-
<span class="cline-any cline-neutral"> </span>
|
|
223
|
-
<span class="cline-any cline-neutral"> </span>
|
|
224
|
-
<span class="cline-any cline-neutral"> </span>
|
|
225
|
-
<span class="cline-any cline-neutral"> </span>
|
|
226
|
-
<span class="cline-any cline-yes">1x</span>
|
|
227
|
-
<span class="cline-any cline-yes">1x</span>
|
|
228
|
-
<span class="cline-any cline-yes">1x</span>
|
|
229
|
-
<span class="cline-any cline-yes">1x</span>
|
|
230
|
-
<span class="cline-any cline-yes">1x</span>
|
|
231
|
-
<span class="cline-any cline-yes">1x</span>
|
|
232
|
-
<span class="cline-any cline-yes">1x</span>
|
|
233
|
-
<span class="cline-any cline-yes">1x</span>
|
|
234
|
-
<span class="cline-any cline-neutral"> </span>
|
|
235
|
-
<span class="cline-any cline-yes">1x</span>
|
|
236
|
-
<span class="cline-any cline-yes">1x</span>
|
|
237
|
-
<span class="cline-any cline-yes">1x</span>
|
|
238
|
-
<span class="cline-any cline-yes">1x</span>
|
|
239
|
-
<span class="cline-any cline-neutral"> </span>
|
|
240
|
-
<span class="cline-any cline-yes">1x</span>
|
|
241
|
-
<span class="cline-any cline-yes">1x</span>
|
|
242
|
-
<span class="cline-any cline-yes">1x</span>
|
|
243
|
-
<span class="cline-any cline-yes">1x</span>
|
|
244
|
-
<span class="cline-any cline-yes">1x</span>
|
|
245
|
-
<span class="cline-any cline-yes">1x</span>
|
|
246
|
-
<span class="cline-any cline-neutral"> </span>
|
|
247
|
-
<span class="cline-any cline-yes">1x</span>
|
|
248
|
-
<span class="cline-any cline-yes">1x</span>
|
|
249
|
-
<span class="cline-any cline-yes">1x</span>
|
|
250
|
-
<span class="cline-any cline-yes">1x</span>
|
|
251
|
-
<span class="cline-any cline-neutral"> </span>
|
|
252
|
-
<span class="cline-any cline-neutral"> </span>
|
|
253
|
-
<span class="cline-any cline-neutral"> </span>
|
|
254
|
-
<span class="cline-any cline-neutral"> </span>
|
|
255
|
-
<span class="cline-any cline-yes">1x</span>
|
|
256
|
-
<span class="cline-any cline-neutral"> </span>
|
|
257
|
-
<span class="cline-any cline-neutral"> </span>
|
|
258
|
-
<span class="cline-any cline-neutral"> </span>
|
|
259
|
-
<span class="cline-any cline-neutral"> </span>
|
|
260
|
-
<span class="cline-any cline-neutral"> </span>
|
|
261
|
-
<span class="cline-any cline-neutral"> </span>
|
|
262
|
-
<span class="cline-any cline-neutral"> </span>
|
|
263
|
-
<span class="cline-any cline-neutral"> </span>
|
|
264
|
-
<span class="cline-any cline-neutral"> </span>
|
|
265
|
-
<span class="cline-any cline-neutral"> </span>
|
|
266
|
-
<span class="cline-any cline-neutral"> </span>
|
|
267
|
-
<span class="cline-any cline-neutral"> </span>
|
|
268
|
-
<span class="cline-any cline-neutral"> </span>
|
|
269
|
-
<span class="cline-any cline-yes">1x</span>
|
|
270
|
-
<span class="cline-any cline-yes">1x</span>
|
|
271
|
-
<span class="cline-any cline-yes">1x</span>
|
|
272
|
-
<span class="cline-any cline-yes">2x</span>
|
|
273
|
-
<span class="cline-any cline-yes">2x</span>
|
|
274
|
-
<span class="cline-any cline-yes">2x</span>
|
|
275
|
-
<span class="cline-any cline-neutral"> </span>
|
|
276
|
-
<span class="cline-any cline-yes">1x</span>
|
|
277
|
-
<span class="cline-any cline-neutral"> </span>
|
|
278
|
-
<span class="cline-any cline-yes">1x</span>
|
|
279
|
-
<span class="cline-any cline-yes">1x</span>
|
|
280
|
-
<span class="cline-any cline-yes">1x</span>
|
|
281
|
-
<span class="cline-any cline-yes">1x</span>
|
|
282
|
-
<span class="cline-any cline-yes">1x</span>
|
|
283
|
-
<span class="cline-any cline-neutral"> </span>
|
|
284
|
-
<span class="cline-any cline-neutral"> </span>
|
|
285
|
-
<span class="cline-any cline-neutral"> </span>
|
|
286
|
-
<span class="cline-any cline-neutral"> </span>
|
|
287
|
-
<span class="cline-any cline-neutral"> </span>
|
|
288
|
-
<span class="cline-any cline-neutral"> </span>
|
|
289
|
-
<span class="cline-any cline-neutral"> </span>
|
|
290
|
-
<span class="cline-any cline-yes">1x</span>
|
|
291
|
-
<span class="cline-any cline-neutral"> </span>
|
|
292
|
-
<span class="cline-any cline-neutral"> </span>
|
|
293
|
-
<span class="cline-any cline-yes">1x</span>
|
|
294
|
-
<span class="cline-any cline-yes">1x</span>
|
|
295
|
-
<span class="cline-any cline-yes">1x</span>
|
|
296
|
-
<span class="cline-any cline-yes">1x</span>
|
|
297
|
-
<span class="cline-any cline-yes">1x</span>
|
|
298
|
-
<span class="cline-any cline-neutral"> </span>
|
|
299
|
-
<span class="cline-any cline-neutral"> </span>
|
|
300
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">// noinspection DuplicatedCode
|
|
301
|
-
|
|
302
|
-
import type { StoryObj } from '@storybook/web-components';
|
|
303
|
-
import { expect, within } from '@storybook/test';
|
|
304
|
-
|
|
305
|
-
import '../custom-element/custom-element.js';
|
|
306
|
-
|
|
307
|
-
type TProps = { title: string; body:string};
|
|
308
|
-
|
|
309
|
-
type Story = StoryObj<TProps>;
|
|
310
|
-
function sleep(ms: number) { return new Promise((resolve) => setTimeout(resolve, ms)); }
|
|
311
|
-
|
|
312
|
-
function render(args: TProps)
|
|
313
|
-
{
|
|
314
|
-
const {title, body} = args;
|
|
315
|
-
return `
|
|
316
|
-
<fieldset>
|
|
317
|
-
<legend>${ title }</legend>
|
|
318
|
-
${ body }
|
|
319
|
-
</fieldset>
|
|
320
|
-
`;
|
|
321
|
-
}
|
|
322
|
-
const meta =
|
|
323
|
-
{ title: 'slice-events'
|
|
324
|
-
, render
|
|
325
|
-
};
|
|
326
|
-
|
|
327
|
-
export default meta;
|
|
328
|
-
|
|
329
|
-
export const SliceInitChangeEvent:Story =
|
|
330
|
-
{ args : {title: 'Slice initialization, change on event', body:`
|
|
331
|
-
<p>initial value should be 0; + and - should change the number in input field</p>
|
|
332
|
-
<custom-element>
|
|
333
|
-
<template>
|
|
334
|
-
<button slice="clickcount" slice-event="click" slice-value="//clickcount + 1">+</button>
|
|
335
|
-
<button slice="clickcount" slice-event="click" slice-value="//clickcount - 1">-</button>
|
|
336
|
-
<input slice="clickcount" type="number" value="{//clickcount ?? 0}">
|
|
337
|
-
<code data-testid="slice-value">{ //clickcount }</code>
|
|
338
|
-
</template>
|
|
339
|
-
</custom-element>
|
|
340
|
-
`}
|
|
341
|
-
, play: async ({canvasElement}) =>
|
|
342
|
-
{
|
|
343
|
-
const titleText = SliceInitChangeEvent.args!.title as string;
|
|
344
|
-
const canvas = within(canvasElement);
|
|
345
|
-
await canvas.findByText(titleText);
|
|
346
|
-
const code = await canvas.findByTestId('slice-value');
|
|
347
|
-
const input = await canvasElement.querySelector('[type="number"]') as HTMLInputElement;
|
|
348
|
-
await expect(code).toBeInTheDocument();
|
|
349
|
-
expect(code.textContent).to.equal('0', 'initial slot value 0');
|
|
350
|
-
expect(input.value).to.equal('0', 'initial input value 0');
|
|
351
|
-
|
|
352
|
-
canvasElement.querySelector('[slice-value="//clickcount + 1"]').click()
|
|
353
|
-
await sleep(10);
|
|
354
|
-
expect(code.textContent).to.equal('1', 'increment to 1');
|
|
355
|
-
expect(input.value).to.equal('1', 'increment input 1');
|
|
356
|
-
|
|
357
|
-
canvasElement.querySelector('[slice-value="//clickcount + 1"]').click();
|
|
358
|
-
await sleep(10);
|
|
359
|
-
canvasElement.querySelector('[slice-value="//clickcount + 1"]').click();
|
|
360
|
-
await sleep(10);
|
|
361
|
-
expect(code.textContent).to.equal('3', 'double increment to 3');
|
|
362
|
-
expect(input.value).to.equal('3', 'double increment input to 3');
|
|
363
|
-
|
|
364
|
-
canvasElement.querySelector('[slice-value="//clickcount - 1"]').click();
|
|
365
|
-
await sleep(10);
|
|
366
|
-
expect(code.textContent).to.equal('2', 'decrement to 2');
|
|
367
|
-
expect(input.value).to.equal('2', 'decrement input to 2');
|
|
368
|
-
},
|
|
369
|
-
};
|
|
370
|
-
|
|
371
|
-
export const RealtimeEventInSlice:Story =
|
|
372
|
-
{ args : {title: 'Realtime Slice data on event', body:`
|
|
373
|
-
<p>move the mouse over TEXTAREA and click to see slice and slice event changed</p>
|
|
374
|
-
<custom-element>
|
|
375
|
-
<template>
|
|
376
|
-
<textarea slice="s" slice-value="concat('x:', //@pageX)" slice-event="mousemove click"
|
|
377
|
-
style="width:16rem;height:16rem;box-shadow: inset {//@offsetX}px {//@offsetY}px gold;"></textarea><br/>
|
|
378
|
-
//slice/s : <code data-testid="//slice/s" >{ //slice/s }</code> <br/>
|
|
379
|
-
//slice/s/event/@offsetY : <code data-testid="//slice/s/event/@offsetY" >{ //slice/s/event/@offsetY }</code> <br/>
|
|
380
|
-
event type : <code data-testid="//slice/s/event/@type" >{ //slice/s/event/@type }</code>
|
|
381
|
-
</template>
|
|
382
|
-
</custom-element>
|
|
383
|
-
`}
|
|
384
|
-
, play: async ({canvasElement}) =>
|
|
385
|
-
{
|
|
386
|
-
const titleText = RealtimeEventInSlice.args!.title as string;
|
|
387
|
-
const canvas = within(canvasElement);
|
|
388
|
-
await canvas.findByText(titleText);
|
|
389
|
-
const sliceText = ()=> canvas.getByTestId('//slice/s').textContent
|
|
390
|
-
, offsetY = ()=> canvas.getByTestId('//slice/s/event/@offsetY').textContent
|
|
391
|
-
, eventType = ()=> canvas.getByTestId('//slice/s/event/@type').textContent;
|
|
392
|
-
|
|
393
|
-
const input = await canvasElement.querySelector('textarea');
|
|
394
|
-
// expect(input).toBeInTheDocument();
|
|
395
|
-
expect( sliceText() ).to.equal('', 'initial slot value blank');
|
|
396
|
-
expect( offsetY() ).to.equal('', 'initial slot offsetY blank');
|
|
397
|
-
expect( eventType() ).to.equal('', 'initial slot event blank');
|
|
398
|
-
const emitXy = ( x, y, eventName ) =>
|
|
399
|
-
{ const ev = new MouseEvent(eventName,
|
|
400
|
-
{ screenX: x,
|
|
401
|
-
screenY: y,
|
|
402
|
-
clientX: x,
|
|
403
|
-
clientY: y,
|
|
404
|
-
offsetX: x,
|
|
405
|
-
offsetY: y,
|
|
406
|
-
});
|
|
407
|
-
input.dispatchEvent( ev );
|
|
408
|
-
};
|
|
409
|
-
|
|
410
|
-
emitXy(10,20,'click');
|
|
411
|
-
await sleep(10);
|
|
412
|
-
expect( sliceText() ).to.equal('x:10', 'click slot value 10');
|
|
413
|
-
expect( Number(offsetY()) ).to.be.lessThan(0, 'offsetY click');
|
|
414
|
-
expect( eventType() ).to.equal('click', 'click event type');
|
|
415
|
-
},
|
|
416
|
-
};
|
|
417
|
-
</pre></td></tr></table></pre>
|
|
418
|
-
|
|
419
|
-
<div class='push'></div><!-- for sticky footer -->
|
|
420
|
-
</div><!-- /wrapper -->
|
|
421
|
-
<div class='footer quiet pad2 space-top1 center small'>
|
|
422
|
-
Code coverage generated by
|
|
423
|
-
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
424
|
-
at 2024-05-13T06:00:45.582Z
|
|
425
|
-
</div>
|
|
426
|
-
<script src="../../prettify.js"></script>
|
|
427
|
-
<script>
|
|
428
|
-
window.onload = function () {
|
|
429
|
-
prettyPrint();
|
|
430
|
-
};
|
|
431
|
-
</script>
|
|
432
|
-
<script src="../../sorter.js"></script>
|
|
433
|
-
<script src="../../block-navigation.js"></script>
|
|
434
|
-
</body>
|
|
435
|
-
</html>
|
|
436
|
-
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"use strict";const P="http://www.w3.org/1999/XSL/Transform",I="http://www.w3.org/1999/xhtml",ne="http://exslt.org/common",h=(e,l)=>e.getAttribute?.(l),X=e=>e.nodeType===3,ae=e=>typeof e=="string",re=e=>e&&typeof e.nodeType=="number",N=(e,l="",t=document)=>(s=>(l&&s.append(w(t.ownerDocument||t,l)),s))((t.ownerDocument||t).createElement(e)),w=(e,l)=>(e.ownerDocument||e).createTextNode(l),F=e=>{for(;e.firstChild;)e.firstChild.remove();return e},R=e=>(e.getAttributeNames().map(l=>e.removeAttribute(l)),F(e)),oe=e=>(e?.setAttribute("xmlns:xsl",P),e),ie=e=>(e?.setAttribute("xmlns:xhtml",I),oe(e)),_=(e,l)=>{const t=e.ownerDocument.createElementNS(e.namespaceURI,l);for(let s of e.attributes)t.setAttribute(s.name,s.value);for(;e.firstChild;)t.append(e.firstChild);return t};function S(e){return new DOMParser().parseFromString(e,"application/xml")}function $(e){return new XMLSerializer().serializeToString(e)}function j(e,l,t,s){const n=p=>e.ownerDocument.createElement(p),f=((p,b,u)=>(b.append(u=n(p)),u))(l,e);return[...t].forEach(p=>f.append(s(p))),f}function ce(e){return e.slot||(e.setAttribute||(e=N("span",e.textContent.replaceAll(`
|
|
2
|
-
`,""))),e.setAttribute("slot","")),e}function D(e,l,t){const s=typeof e;if(s==="function")debugger;if(s==="string")return N(l,e,t);if(s==="number")return N(l,""+e,t);if(e instanceof Array){const r=N("array");return e.map(f=>r.append(D(f,l,t))),r}const n=N(l,"",t);for(let r in e)re(e[r])||typeof e[r]=="function"||e[r]instanceof Window||(typeof e[r]!="object"?n.setAttribute(r,e[r]):n.append(D(e[r],r,t)));return n}function U(e){if(C(e,"*",l=>[...l.childNodes].filter(t=>t.nodeType===3).forEach(t=>{if(t.parentNode.localName==="style")return;const s=t.data.matchAll(/{([^}]*)}/g);if(s){let n=0,r=p=>w(t,p||""),f=[];if([...s].forEach(p=>{p.index>n&&f.push(r(p.input.substring(n,p.index)));const b=e.querySelector("value-of").cloneNode();b.setAttribute("select",p[1]),f.push(b),n=p.index+p[0].length}),n<t.data.length&&f.push(r(t.data.substring(n,t.data.length))),f.length){for(let p of f)l.insertBefore(p,t);l.removeChild(t)}}})),"all"in e){let l=1;for(let t of e.all)t.setAttribute&&!t.tagName.startsWith("xsl:")&&t.setAttribute("data-dce-id",""+l++)}return e}function B(e,l="xsl:stylesheet"){if(e.tagName===l||e.documentElement?.tagName===l)return U(e);const t=S(`<xsl:stylesheet version="1.0" xmlns:xsl="${P}" xmlns:xhtml="${I}" xmlns:exsl="${ne}" exclude-result-prefixes="exsl" >
|
|
3
|
-
<xsl:output method="xml" />
|
|
4
|
-
<xsl:template match="/"><dce-root xmlns="${I}"><xsl:apply-templates select="*"/></dce-root></xsl:template>
|
|
5
|
-
<xsl:template match="*[name()='template']"><xsl:apply-templates mode="sanitize" select="*|text()"/></xsl:template>
|
|
6
|
-
<xsl:template match="*"><xsl:apply-templates mode="sanitize" select="*|text()"/></xsl:template>
|
|
7
|
-
<xsl:template match="*[name()='svg']|*[name()='math']"><xsl:apply-templates mode="sanitize" select="."/></xsl:template>
|
|
8
|
-
<xsl:template mode="sanitize" match="*[count(text())=1 and count(*)=0]"><xsl:copy><xsl:apply-templates mode="sanitize" select="@*"/><xsl:value-of select="text()"></xsl:value-of></xsl:copy></xsl:template>
|
|
9
|
-
<xsl:template mode="sanitize" match="xhtml:*[count(text())=1 and count(*)=0]"><xsl:element name="{local-name()}"><xsl:apply-templates mode="sanitize" select="@*"/><xsl:value-of select="text()"></xsl:value-of></xsl:element></xsl:template>
|
|
10
|
-
<xsl:template mode="sanitize" match="*|@*"><xsl:copy><xsl:apply-templates mode="sanitize" select="*|@*|text()"/></xsl:copy></xsl:template>
|
|
11
|
-
<xsl:template mode="sanitize" match="text()[normalize-space(.) = '']"/>
|
|
12
|
-
<xsl:template mode="sanitize" match="text()"><dce-text><xsl:copy/></dce-text></xsl:template>
|
|
13
|
-
<xsl:template mode="sanitize" match="xsl:value-of|*[name()='slot']"><dce-text><xsl:copy><xsl:apply-templates mode="sanitize" select="*|@*|text()"/></xsl:copy></dce-text></xsl:template>
|
|
14
|
-
<xsl:template mode="sanitize" match="xhtml:*"><xsl:element name="{local-name()}"><xsl:apply-templates mode="sanitize" select="*|@*|text()"/></xsl:element></xsl:template>
|
|
15
|
-
</xsl:stylesheet>`),s=new XSLTProcessor,n=(a=>{C(a,"script",g=>g.remove());const i=a.content??a.firstElementChild?.content??a.body??a;te.forEach(g=>C(i,g,x=>se(x,i)));const E=a.firstElementChild?.content||a.content,v=g=>{const x=S("<xhtml/>"),T=x.importNode(g,!0);return x.replaceChild(T,x.documentElement),ie(T)};if(E){const g=N("div");return[...E.childNodes].map(x=>g.append(x.cloneNode(!0))),v(g)}return v(a.documentElement||a.body||a)})(e),r=S(`<xsl:stylesheet version="1.0"
|
|
16
|
-
xmlns:xsl="${P}"
|
|
17
|
-
xmlns:xhtml="${I}"
|
|
18
|
-
xmlns:dce="urn:schemas-epa-wg:dce"
|
|
19
|
-
xmlns:exsl="http://exslt.org/common"
|
|
20
|
-
exclude-result-prefixes="exsl"
|
|
21
|
-
>
|
|
22
|
-
<xsl:template match="ignore">
|
|
23
|
-
<xsl:choose>
|
|
24
|
-
<xsl:when test="//attr">{//attr}</xsl:when>
|
|
25
|
-
<xsl:otherwise>{def}</xsl:otherwise>
|
|
26
|
-
</xsl:choose><xsl:value-of select="."></xsl:value-of></xsl:template>
|
|
27
|
-
<xsl:template mode="payload" match="attributes"></xsl:template>
|
|
28
|
-
<xsl:template match="/">
|
|
29
|
-
<xsl:apply-templates mode="payload" select="/datadom/attributes"/>
|
|
30
|
-
</xsl:template>
|
|
31
|
-
<xsl:template name="slot" >
|
|
32
|
-
<xsl:param name="slotname" />
|
|
33
|
-
<xsl:param name="defaultvalue" />
|
|
34
|
-
<xsl:choose>
|
|
35
|
-
<xsl:when test="//payload/*[@slot=$slotname]">
|
|
36
|
-
<xsl:copy-of select="//payload/*[@slot=$slotname]"/>
|
|
37
|
-
</xsl:when>
|
|
38
|
-
<xsl:otherwise>
|
|
39
|
-
<xsl:copy-of select="$defaultvalue"/>
|
|
40
|
-
</xsl:otherwise>
|
|
41
|
-
</xsl:choose>
|
|
42
|
-
</xsl:template>
|
|
43
|
-
<xsl:variable name="js-injected-body">
|
|
44
|
-
<xsl:call-template name="slot" >
|
|
45
|
-
<xsl:with-param name="slotname" select="''"/>
|
|
46
|
-
<xsl:with-param name="defaultvalue"/>
|
|
47
|
-
</xsl:call-template>
|
|
48
|
-
</xsl:variable>
|
|
49
|
-
</xsl:stylesheet>`);s.importStylesheet(t);const f=s.transformToFragment(n,document),p=(a,i)=>a.querySelector(i),b=p(r,'template[mode="payload"]');if(!f)return console.error("transformation error",{xml:n.outerHTML,xsl:$(t)});const u=[];[...f.querySelectorAll("dce-root>attribute")].forEach(a=>{const i=_(a,"xsl:param"),E=h(a,"name");b.append(i);let v=h(i,"select")?.split("??");v||(v=["//"+E,`'${i.textContent}'`],R(i),i.setAttribute("name",E));let g;if(v?.length>1){i.removeAttribute("select");const x=p(r,'template[match="ignore"]>choose').cloneNode(!0);R(x.firstElementChild).append(w(x,"{"+v[0]+"}")),R(x.lastElementChild).append(w(x,"{"+v[1]+"}")),x.firstElementChild.setAttribute("test",v[0]),i.append(x),g=x.cloneNode(!0)}else g=_(a,"xsl:value-of");g.removeAttribute("name"),a.append(g),a.removeAttribute("select"),u.push(i)}),[...f.querySelectorAll("[value]")].filter(a=>a.getAttribute("value").match(/\{(.*)\?\?(.*)\}/g)).forEach(a=>{const i=h(a,"value");i&&a.setAttribute("value",ee(i))});for(const a of f.childNodes)b.append(r.importNode(a,!0));[...b.querySelectorAll("template")].forEach(a=>b.ownerDocument.documentElement.append(a));const L=p(r,'call-template[name="slot"]'),d=a=>{const i=L.cloneNode(!0),E=h(a,"name")||"";E&&i.firstElementChild.setAttribute("select",`'${E}'`);for(let v of a.childNodes)i.lastElementChild.append(v);return i};C(b,"slot",a=>a.parentNode.replaceChild(d(a),a));const c=U(r);return c.params=u,c}async function W(e){return await new Promise((t,s)=>{const n=new XMLHttpRequest;n.open("GET",e),n.responseType="document",n.onload=()=>{n.readyState===n.DONE&&n.status===200&&t(n.responseXML||N("div",n.responseText)),s(n.statusText)},n.addEventListener("error",r=>s(r)),n.send()})}function G(e,l,t=!1){if(e===l)return!0;if(typeof e!="object"||e===null||typeof l!="object"||l===null||Object.keys(e).length!==Object.keys(l).length)return t;for(let s in e)if(!(s in l)||!G(e[s],l[s]))return t;return!0}const Y=(e,l)=>l.split("|").map(t=>t.trim()).map(t=>{if(t.includes("/")){const s=[],n=e.ownerDocument.evaluate(t,e);for(let r;r=n.iterateNext();)s.push(r);return s}return[...e.childNodes].find(s=>s.localName===t)||N(t)}).flat();function J(e,l,t,s){Y(e,l).map(n=>{const r=e.ownerDocument,f=t.sliceEventSource,p=t.sliceElement,b=()=>[...n.childNodes].filter(u=>u.nodeType===3||u.localName==="value").map(u=>u.remove());if(f.getAttributeNames().map(u=>n.setAttribute(u,h(f,u))),[...n.childNodes].filter(u=>u.localName==="event").map(u=>u.remove()),t.type==="init"&&b(),n.append(D(t,"event",r)),p.hasAttribute("slice-value")){f.value===void 0?n.removeAttribute("value"):n.setAttribute("value",f.value);const u=k(h(p,"slice-value"),n);b(),n.append(w(r,u))}else{const u=f.value??h(p,"value");b(),u==null?[...n.childNodes].filter(A=>A.localName!=="event").map(A=>A.remove()):ae(u)?n.append(w(r,u)):n.append(D(u,"value",n.ownerDocument))}})}function C(e,l,t){e.querySelectorAll&&[...e.querySelectorAll(l)].forEach(t)}const K=(e,l)=>(t=>e===t?null:t&&(t.querySelector(l)||K(t,l)))(e.getRootNode()),me=async(e,l)=>{if(!e||!e.trim())return[l];if(e.startsWith("#"))return(t=>{if(!t)return[];const s=t.querySelectorAll(e);if(s.length)return[...s];const n=t.getRootNode();return n===t?[]:K(n)})(l.parentElement);try{const t=await W(e),s=new URL(e,location).hash;if(s){const n=t.querySelectorAll(s);return n.length?[...n]:[l]}return[t]}catch{return[l]}};function Q(e,l){if(X(e)){if(!X(l))debugger;return}for(let t of e.attributes)t.namespaceURI?l.setAttributeNS(t.namespaceURI,t.name,t.value):l.setAttribute(t.name,t.value),t.name==="value"&&(l.value=t.value)}function M(e,l=0){const t={};for(const s of e.childNodes){const n=h(s,"data-dce-id")||s.dceId||0;if(!t[n])n?t[n]=1:(t[n]=s.dceId=++l,s.setAttribute&&s.setAttribute("data-dce-id",s.dceId));else{const r=s.dceId=n+"-"+t[n]++;s.setAttribute&&s.setAttribute("data-dce-id",r)}s.childNodes.length&&M(s)}}function H(e,l){if(!l.length)return F(e);const t={};for(let s of e.childNodes)t[s.dceId],X(s)?(s.data.trim(),t[s.dceId||0]=s):t[h(s,"data-dce-id")||0]=s;for(let s of[...l]){const n=h(s,"data-dce-id")||s.dceId,r=t[n];r?(X(s)?r.nodeValue!==s.nodeValue&&(r.nodeValue=s.nodeValue):(Q(s,r),(r.childNodes.length||s.childNodes.length)&&H(r,s.childNodes)),delete t[n]):e.append(s)}for(let s of Object.values(t))s.remove()}function Z(e,l){return e.hasAttribute(l)||e.setAttribute(l,crypto.randomUUID()),e.getAttribute(l)}const ee=e=>[...e?.matchAll(/([^{}]*)(\{)([^}]+)}([^{}]*)/g)].map(t=>`${t[1]}{${q(t[3])}}${t[4]}`).join(""),q=e=>{if(!e.trim())return e;const l=e.split("??"),t=l.shift(),s=q(l.join("??"));return l.length?`concat( ${t} , substring( ${s} , (1+string-length( ${s} )) * string-length( ${t} ) ) )`:e},k=(e,l)=>{e=q(e);const t=l.ownerDocument.evaluate(e,l);switch(t.resultType){case XPathResult.NUMBER_TYPE:return t.numberValue;case XPathResult.STRING_TYPE:return t.stringValue}let s="";for(let n;n=t.iterateNext();)s+=n.textContent;return s},te="stylesheet,transform,import,include,strip-space,preserve-space,output,key,decimal-format,namespace-alias,template,value-of,copy-of,number,apply-templates,apply-imports,for-each,sort,if,choose,when,otherwise,attribute-set,call-template,with-param,variable,param,text,processing-instruction,element,attribute,comment,copy,message,fallback".split(","),se=(e,l)=>{const t=N("xsl:"+e.localName);for(let s of e.attributes)t.setAttribute(s.name,s.value);for(;e.firstChild;)t.append(e.firstChild);if(e.parentElement)e.parentElement.replaceChild(t,e);else{const s=e.parentElement||l,n=[...s.childNodes];n.forEach((r,f)=>{r===e&&(n[f]=t)}),s.replaceChildren(...n)}};class le extends HTMLElement{static observedAttributes=["src","tag","hidden"];async connectedCallback(){const l=await me(h(this,"src"),this),t=h(this,"tag"),s=t||"dce-"+crypto.randomUUID();for(const d of l)C(d.templateNode||d.content||d,"style",c=>{const a=c.closest("slot"),i=a?`slot[name="${a.name}"]`:"";c.innerHTML=`${s} ${i}{${c.innerHTML}}`,this.append(c)});const n=l.map(d=>B(d)),r=n.map((d,c)=>(c=new XSLTProcessor,c.importStylesheet(d),c));Object.defineProperty(this,"xsltString",{get:()=>n.map(d=>$(d)).join(`
|
|
50
|
-
`)});const f=this,p=[...this.templateNode.querySelectorAll("[slice]")],b=p.map(d=>h(d,"slice")).filter(d=>!d.includes("/")).filter((d,c,a)=>a.indexOf(d)===c),u=n.reduce((d,c)=>(c.params&&d.push(...c.params),d),[]);class A extends HTMLElement{static get observedAttributes(){return u.map(c=>h(c,"name"))}#e=0;connectedCallback(){let c=this.childNodes;if(this.firstElementChild?.tagName==="TEMPLATE"){const m=this.firstElementChild;m.remove(),c=m.content.childNodes;for(const o of[...m.content.childNodes])if(o.localName==="style"){const y=Z(this,"data-dce-style");o.innerHTML=`${s}[data-dce-style="${y}"]{${o.innerHTML}}`,m.insertAdjacentElement("beforebegin",o)}else o.nodeType===1?m.insertAdjacentElement("beforebegin",o):o.nodeType===3&&m.insertAdjacentText("beforebegin",o.data)}const a=S("<datadom/>").documentElement,i=(m,o="")=>(y=>(o&&y.append(w(a,o)),y))(a.ownerDocument.createElement(m));j(a,"payload",c,ce),this.innerHTML="",j(a,"attributes",this.attributes,m=>i(m.nodeName,m.value)),j(a,"dataset",Object.keys(this.dataset),m=>i(m,this.dataset[m]));const E=j(a,"slice",b,m=>i(m,"")),v=m=>k(m,E);this.xml=a;const g=[],x=()=>{const m={};for(let o;o=g.pop();){const y=h(o.sliceElement,"slice");m[y]||(J(E,y,o),m[y]=o)}Object.keys(m).length!==0&&O()};let T;this.onSlice=m=>{m.stopPropagation?.(),m.sliceEventSource=m.currentTarget||m.target,g.push(m),T||(T=setTimeout(()=>{x(),T=0},10))};const O=this.transform=()=>{if(this.#e)debugger;this.#e=1,r.map((o,y)=>{const z=o.transformToFragment(a.ownerDocument,document);return z||console.error(`XSLT transformation error. xsl:
|
|
51
|
-
`,$(n[y]),`
|
|
52
|
-
xml:
|
|
53
|
-
`,$(a)),z}).map(o=>{o&&(M(o),H(this,o.childNodes))}),A.observedAttributes.map(o=>{let y=h(this.firstElementChild,o);y!==h(this,o)&&(this.setAttribute(o,y),this.#t(o,y))}),C(this,"[slice]",o=>{if(!o.dceInitialized){o.dceInitialized=1;const y=h(o,"slice-event");(y||"change").split(" ").forEach(z=>(o.localName==="slice"?o.parentElement:o).addEventListener(z,V=>{V.sliceElement=o,this.onSlice(V)})),(!y||y.includes("init"))&&(o.hasAttribute("slice-value")||o.hasAttribute("value")||o.value?this.onSlice({type:"init",target:o,sliceElement:o}):o.value=v(h(o,"slice")))}}),this.#e=0};O(),x()}#t(c,a){let i=this.xml.querySelector(`attributes>${c}`);i?R(i).append(w(i,a)):(i=N(c,a,this.xml),this.xml.querySelector("attributes").append(i))}attributeChangedCallback(c,a,i){!this.xml||this.#e||(this.#t(c,i),this.transform())}get dce(){return f}}const L=d=>{window.customElements.get(d)!==A&&window.customElements.define(d,A)};if(t)L(t);else{const d=s;this.setAttribute("tag",d),L(d);const c=document.createElement(d);this.getAttributeNames().forEach(a=>c.setAttribute(a,this.getAttribute(a))),c.append(...[...this.childNodes].filter(a=>a.localName!=="style")),this.append(c)}}get templateNode(){return this.firstElementChild?.tagName==="TEMPLATE"?this.firstElementChild.content:this}get dce(){return this}get xslt(){return S(this.xsltString)}}window.customElements.define("custom-element",le);exports.CustomElement=le;exports.assureSlices=Y;exports.assureUID=Z;exports.assureUnique=M;exports.createXsltFromDom=B;exports.deepEqual=G;exports.evalCurly=ee;exports.event2slice=J;exports.merge=H;exports.mergeAttr=Q;exports.obj2node=D;exports.tagUid=U;exports.toXsl=se;exports.xPath=k;exports.xPathDefaults=q;exports.xhrTemplate=W;exports.xml2dom=S;exports.xmlString=$;exports.xslTags=te;
|