@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.
Files changed (174) hide show
  1. package/.idea/.gitignore +8 -0
  2. package/README.md +4 -4
  3. package/coverage/coverage-final.json +13 -11
  4. package/coverage/index.html +30 -30
  5. package/coverage/src/custom-element/coverage.svg +1 -1
  6. package/coverage/src/custom-element/custom-element.js/coverage.svg +1 -1
  7. package/coverage/src/custom-element/custom-element.js.html +603 -420
  8. package/coverage/src/custom-element/http-request.js.html +10 -10
  9. package/coverage/src/custom-element/index.html +18 -18
  10. package/coverage/src/custom-element/local-storage.js.html +2 -2
  11. package/coverage/src/custom-element/location-element.js.html +1 -1
  12. package/coverage/src/index.html +1 -1
  13. package/coverage/src/mocks/handlers.ts.html +1 -1
  14. package/coverage/src/mocks/index.html +1 -1
  15. package/coverage/src/stories/{css.stories.ts → attributes.test.stories.ts}/coverage.svg +1 -1
  16. package/coverage/src/stories/{attributes.stories.ts.html → attributes.test.stories.ts.html} +113 -83
  17. package/coverage/src/stories/coverage.svg +1 -1
  18. package/coverage/src/stories/css.test.stories.ts/coverage.svg +10 -0
  19. package/coverage/src/stories/{css.stories.ts.html → css.test.stories.ts.html} +122 -65
  20. package/coverage/src/stories/dom-merge.test.stories.ts/coverage.svg +10 -0
  21. package/coverage/src/stories/{dom-merge.stories.ts.html → dom-merge.test.stories.ts.html} +118 -70
  22. package/coverage/src/stories/external-template.test.stories.ts/coverage.svg +10 -0
  23. package/coverage/src/stories/{external-template.stories.ts.html → external-template.test.stories.ts.html} +180 -150
  24. package/coverage/src/stories/form.test.stories.ts/coverage.svg +10 -0
  25. package/coverage/src/stories/form.test.stories.ts.html +655 -0
  26. package/coverage/src/stories/http-request.stories.ts.html +7 -7
  27. package/coverage/src/stories/index.html +118 -88
  28. package/coverage/src/stories/{dom-merge.stories.ts → local-storage.test.stories.ts}/coverage.svg +1 -1
  29. package/coverage/src/stories/{local-storage.stories.ts.html → local-storage.test.stories.ts.html} +475 -439
  30. package/coverage/src/stories/{external-template.stories.ts → location-element.test.stories.ts}/coverage.svg +1 -1
  31. package/coverage/src/stories/{location-element.stories.ts.html → location-element.test.stories.ts.html} +134 -98
  32. package/coverage/src/stories/slice-events.test.stories.ts/coverage.svg +10 -0
  33. package/coverage/src/stories/slice-events.test.stories.ts.html +685 -0
  34. package/coverage/src/stories/slots.test.stories.ts/coverage.svg +10 -0
  35. package/coverage/src/stories/slots.test.stories.ts.html +736 -0
  36. package/coverage/src/stories/{renderPlay.ts.html → testStoryBook.ts.html} +44 -26
  37. package/coverage/src/sum.ts.html +1 -1
  38. package/dist/custom-element-BISbI4SU.js +463 -0
  39. package/dist/custom-element-N-sWiqGK.cjs +53 -0
  40. package/dist/custom-element-bundle.cjs +1 -1
  41. package/dist/custom-element-bundle.js +2 -2
  42. package/dist/mockServiceWorker.js +1 -1
  43. package/package.json +4 -4
  44. package/public/mockServiceWorker.js +1 -1
  45. package/src/custom-element/custom-element.d.ts +4 -0
  46. package/src/custom-element/custom-element.js +103 -42
  47. package/src/custom-element/demo/a.html +38 -41
  48. package/src/custom-element/demo/b.html +13 -0
  49. package/src/custom-element/demo/data-slices.html +32 -0
  50. package/src/custom-element/demo/form.html +240 -0
  51. package/src/custom-element/demo/s.xml +11 -14
  52. package/src/custom-element/demo/s.xslt +22 -38
  53. package/src/custom-element/demo/s1.xslt +60 -0
  54. package/src/custom-element/ide/customData-dce.json +14 -1
  55. package/src/custom-element/ide/web-types-dce.json +6 -1
  56. package/src/custom-element/ide/web-types-xsl.json +1 -1
  57. package/src/custom-element/index.html +1 -0
  58. package/src/custom-element.test.ts +24 -8
  59. package/src/stories/{attributes.stories.ts → attributes.test.stories.ts} +19 -9
  60. package/src/stories/{css.stories.ts → css.test.stories.ts} +28 -9
  61. package/src/stories/{dom-merge.stories.ts → dom-merge.test.stories.ts} +19 -3
  62. package/src/stories/{external-template.stories.ts → external-template.test.stories.ts} +13 -3
  63. package/src/stories/form.test.stories.ts +190 -0
  64. package/src/stories/http-request.stories.ts +6 -6
  65. package/src/stories/http-request.test.ts +0 -9
  66. package/src/stories/{local-storage.stories.ts → local-storage.test.stories.ts} +24 -12
  67. package/src/stories/{location-element.stories.ts → location-element.test.stories.ts} +21 -9
  68. package/src/stories/{slice-events.stories.ts → slice-events.test.stories.ts} +88 -5
  69. package/src/stories/slots.test.stories.ts +217 -0
  70. package/src/stories/testStoryBook.ts +28 -0
  71. package/storybook-static/assets/{Color-RQJUDNI5-C4yZhNbM.js → Color-PRSJMWNM-BD_Ds9NW.js} +1 -1
  72. package/storybook-static/assets/{Configure-C7d36rng.js → Configure-70I_VApa.js} +1 -1
  73. package/storybook-static/assets/DocsRenderer-K4EAMTCU-9dn0-HCP.js +2 -0
  74. package/storybook-static/assets/WithTooltip-KJL26V4Q-C6g5GOU9.js +1 -0
  75. package/storybook-static/assets/{attributes.stories-ZB0RTY1d.js → attributes.test.stories-BEOraI4E.js} +22 -21
  76. package/storybook-static/assets/css.test.stories-D9WaxrEv.js +96 -0
  77. package/storybook-static/assets/custom-element-BV8-hRQS.js +219 -0
  78. package/storybook-static/assets/{dom-merge.stories-CgHZUABU.js → dom-merge.test.stories-BhbNeum_.js} +5 -6
  79. package/storybook-static/assets/{entry-preview-CQqNFx4W.js → entry-preview-DrgzXgwT.js} +1 -1
  80. package/storybook-static/assets/{entry-preview-docs-CWgqLfd3.js → entry-preview-docs-Bxv0qQWs.js} +1 -1
  81. package/storybook-static/assets/{external-template.stories-DtSLMxvg.js → external-template.test.stories-Bpr_wxBo.js} +23 -24
  82. package/storybook-static/assets/form.test.stories-3tURbEdv.js +250 -0
  83. package/storybook-static/assets/{formatter-B5HCVTEV-tKeEfJA9.js → formatter-2WMMO6ZP-6IvBq34u.js} +5 -5
  84. package/storybook-static/assets/http-request.stories-8K_qSs8C.js +300 -0
  85. package/storybook-static/assets/iframe-zdt9kuj6.js +2 -0
  86. package/storybook-static/assets/index-B3oZkK3F.js +1 -0
  87. package/storybook-static/assets/index-C30JwJMK.js +548 -0
  88. package/storybook-static/assets/index-CVRyq5ci.js +27 -0
  89. package/storybook-static/assets/index-DXimoRZY.js +1 -0
  90. package/storybook-static/assets/{index-DnEJ_bKa.js → index-DhXZyjEd.js} +1 -1
  91. package/storybook-static/assets/index-DuIEV_9C.js +13 -0
  92. package/storybook-static/assets/{lit-element-B4_0akdT.js → lit-element-CenEXOuS.js} +2 -2
  93. package/storybook-static/assets/{local-storage.stories-BkO6djDz.js → local-storage.test.stories-CtisAQBB.js} +28 -24
  94. package/storybook-static/assets/{location-element.stories-DCIOUd0D.js → location-element.test.stories-5O_t_m4Y.js} +11 -11
  95. package/storybook-static/assets/preview-4Up_z4Em.js +7 -0
  96. package/storybook-static/assets/preview-BKCN0mOr.js +1 -0
  97. package/storybook-static/assets/{preview-CkgAD_DE.js → preview-D0eCfQft.js} +2 -2
  98. package/storybook-static/assets/preview-DRnyIGXK.js +48 -0
  99. package/storybook-static/assets/preview-FpHGYA1q.js +1 -0
  100. package/storybook-static/assets/{preview-PxUn-cIn.js → preview-TCN6m6T-.js} +1 -1
  101. package/storybook-static/assets/slice-events.test.stories-BSXCLIA5.js +231 -0
  102. package/storybook-static/assets/slots.test.stories-B1vqfHmN.js +214 -0
  103. package/storybook-static/assets/syntaxhighlighter-BP7B2CQK-DpPBKyTO.js +1 -0
  104. package/storybook-static/iframe.html +153 -10
  105. package/storybook-static/index.html +1 -1
  106. package/storybook-static/index.json +1 -1
  107. package/storybook-static/mockServiceWorker.js +1 -1
  108. package/storybook-static/project.json +1 -1
  109. package/storybook-static/sb-addons/chromatic-com-storybook-9/manager-bundle.js +35 -29
  110. package/storybook-static/sb-addons/chromatic-com-storybook-9/manager-bundle.js.LEGAL.txt +1 -1
  111. package/storybook-static/sb-addons/essentials-actions-3/manager-bundle.js +1 -1
  112. package/storybook-static/sb-addons/essentials-backgrounds-4/manager-bundle.js +5 -5
  113. package/storybook-static/sb-addons/essentials-controls-2/manager-bundle.js +35 -35
  114. package/storybook-static/sb-addons/essentials-measure-7/manager-bundle.js +1 -1
  115. package/storybook-static/sb-addons/essentials-outline-8/manager-bundle.js +1 -1
  116. package/storybook-static/sb-addons/essentials-toolbars-6/manager-bundle.js +1 -1
  117. package/storybook-static/sb-addons/essentials-viewport-5/manager-bundle.js +1 -1
  118. package/storybook-static/sb-addons/interactions-10/manager-bundle.js +18 -16
  119. package/storybook-static/sb-addons/links-1/manager-bundle.js +1 -1
  120. package/storybook-static/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +1 -1
  121. package/storybook-static/sb-manager/WithTooltip-KJL26V4Q-5LS5AN27.js +1 -0
  122. package/storybook-static/sb-manager/{chunk-S4VOIVUE.js → chunk-B3YDJJJH.js} +9 -9
  123. package/storybook-static/sb-manager/{chunk-FEE35O7J.js → chunk-BLWCBWKL.js} +3 -3
  124. package/storybook-static/sb-manager/{chunk-XCO5HRLK.js → chunk-GUVK2GTO.js} +3 -3
  125. package/storybook-static/sb-manager/chunk-LFRML3ZV.js +186 -0
  126. package/storybook-static/sb-manager/chunk-MC7RAF2B.js +274 -0
  127. package/storybook-static/sb-manager/{chunk-XP3HGWTR.js → chunk-ZR5JZWHI.js} +1 -1
  128. package/storybook-static/sb-manager/{formatter-B5HCVTEV-7DCBOGO6.js → formatter-2WMMO6ZP-JI7RHVTW.js} +1 -1
  129. package/storybook-static/sb-manager/globals-module-info.js +1 -1
  130. package/storybook-static/sb-manager/globals-runtime.js +1 -1
  131. package/storybook-static/sb-manager/index.js +1 -1
  132. package/storybook-static/sb-manager/runtime.js +1 -1
  133. package/storybook-static/sb-manager/{syntaxhighlighter-JOJW2KGS-VF6EEVPI.js → syntaxhighlighter-BP7B2CQK-WOJYHKQR.js} +1 -1
  134. package/storybook-static/sb-preview/runtime.js +28 -11
  135. package/tsconfig.json +31 -21
  136. package/vite.config.js +5 -5
  137. package/yarn.lock +10242 -0
  138. package/.vscode/settings.json +0 -24
  139. package/coverage/src/stories/local-storage.stories.ts/coverage.svg +0 -10
  140. package/coverage/src/stories/location-element.stories.ts/coverage.svg +0 -10
  141. package/coverage/src/stories/renderPlay.ts/coverage.svg +0 -10
  142. package/coverage/src/stories/slice-events.stories.ts/coverage.svg +0 -10
  143. package/coverage/src/stories/slice-events.stories.ts.html +0 -436
  144. package/dist/custom-element-B4v-KaIh.cjs +0 -53
  145. package/dist/custom-element-_g0GTup2.js +0 -436
  146. package/src/stories/attributes.test.ts +0 -14
  147. package/src/stories/css.test.ts +0 -12
  148. package/src/stories/dom-merge.test.ts +0 -12
  149. package/src/stories/external-template.test.ts +0 -12
  150. package/src/stories/local-storage.test.ts +0 -12
  151. package/src/stories/location-element.test.ts +0 -14
  152. package/src/stories/renderPlay.ts +0 -22
  153. package/src/stories/slice-events.test.ts +0 -12
  154. package/storybook-static/assets/DocsRenderer-K4EAMTCU-BLMupvSb.js +0 -2
  155. package/storybook-static/assets/WithTooltip-Y7J54OF7-BAQSPSFk.js +0 -1
  156. package/storybook-static/assets/css.stories-CLSX-Xxd.js +0 -86
  157. package/storybook-static/assets/custom-element-BLZZ00dz.js +0 -53
  158. package/storybook-static/assets/http-request.stories-CUzlXO89.js +0 -300
  159. package/storybook-static/assets/iframe-gCvlWuoC.js +0 -2
  160. package/storybook-static/assets/index-CBQwM6ST.js +0 -508
  161. package/storybook-static/assets/index-CDavW7r9.js +0 -193
  162. package/storybook-static/assets/index-CQA5dlr6.js +0 -13
  163. package/storybook-static/assets/index-DgaNIR0t.js +0 -1
  164. package/storybook-static/assets/index-Dkj0J1ds.js +0 -1
  165. package/storybook-static/assets/preview-C6t8KBFr.js +0 -1
  166. package/storybook-static/assets/preview-CYD85dwb.js +0 -7
  167. package/storybook-static/assets/preview-D8LadFCz.js +0 -48
  168. package/storybook-static/assets/preview-DNpCpRPf.js +0 -1
  169. package/storybook-static/assets/slice-events.stories-DXKjXI37.js +0 -115
  170. package/storybook-static/assets/syntaxhighlighter-JOJW2KGS-C04pIVD3.js +0 -1
  171. package/storybook-static/sb-manager/WithTooltip-Y7J54OF7-CEHQ77YF.js +0 -1
  172. package/storybook-static/sb-manager/chunk-E3WK6ZOZ.js +0 -234
  173. package/storybook-static/sb-manager/chunk-E6ABNH5R.js +0 -183
  174. /package/coverage/src/stories/{attributes.stories.ts → testStoryBook.ts}/coverage.svg +0 -0
@@ -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">&nbsp;</span>
184
- <span class="cline-any cline-neutral">&nbsp;</span>
185
- <span class="cline-any cline-neutral">&nbsp;</span>
186
- <span class="cline-any cline-neutral">&nbsp;</span>
187
- <span class="cline-any cline-neutral">&nbsp;</span>
188
- <span class="cline-any cline-neutral">&nbsp;</span>
189
- <span class="cline-any cline-neutral">&nbsp;</span>
190
- <span class="cline-any cline-neutral">&nbsp;</span>
191
- <span class="cline-any cline-neutral">&nbsp;</span>
192
- <span class="cline-any cline-neutral">&nbsp;</span>
193
- <span class="cline-any cline-yes">5x</span>
194
- <span class="cline-any cline-neutral">&nbsp;</span>
195
- <span class="cline-any cline-neutral">&nbsp;</span>
196
- <span class="cline-any cline-neutral">&nbsp;</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">&nbsp;</span>
200
- <span class="cline-any cline-neutral">&nbsp;</span>
201
- <span class="cline-any cline-neutral">&nbsp;</span>
202
- <span class="cline-any cline-neutral">&nbsp;</span>
203
- <span class="cline-any cline-neutral">&nbsp;</span>
204
- <span class="cline-any cline-neutral">&nbsp;</span>
205
- <span class="cline-any cline-neutral">&nbsp;</span>
206
- <span class="cline-any cline-yes">1x</span>
207
- <span class="cline-any cline-neutral">&nbsp;</span>
208
- <span class="cline-any cline-neutral">&nbsp;</span>
209
- <span class="cline-any cline-neutral">&nbsp;</span>
210
- <span class="cline-any cline-neutral">&nbsp;</span>
211
- <span class="cline-any cline-neutral">&nbsp;</span>
212
- <span class="cline-any cline-neutral">&nbsp;</span>
213
- <span class="cline-any cline-yes">1x</span>
214
- <span class="cline-any cline-neutral">&nbsp;</span>
215
- <span class="cline-any cline-neutral">&nbsp;</span>
216
- <span class="cline-any cline-neutral">&nbsp;</span>
217
- <span class="cline-any cline-neutral">&nbsp;</span>
218
- <span class="cline-any cline-neutral">&nbsp;</span>
219
- <span class="cline-any cline-neutral">&nbsp;</span>
220
- <span class="cline-any cline-neutral">&nbsp;</span>
221
- <span class="cline-any cline-neutral">&nbsp;</span>
222
- <span class="cline-any cline-neutral">&nbsp;</span>
223
- <span class="cline-any cline-neutral">&nbsp;</span>
224
- <span class="cline-any cline-neutral">&nbsp;</span>
225
- <span class="cline-any cline-neutral">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</span>
252
- <span class="cline-any cline-neutral">&nbsp;</span>
253
- <span class="cline-any cline-neutral">&nbsp;</span>
254
- <span class="cline-any cline-neutral">&nbsp;</span>
255
- <span class="cline-any cline-yes">1x</span>
256
- <span class="cline-any cline-neutral">&nbsp;</span>
257
- <span class="cline-any cline-neutral">&nbsp;</span>
258
- <span class="cline-any cline-neutral">&nbsp;</span>
259
- <span class="cline-any cline-neutral">&nbsp;</span>
260
- <span class="cline-any cline-neutral">&nbsp;</span>
261
- <span class="cline-any cline-neutral">&nbsp;</span>
262
- <span class="cline-any cline-neutral">&nbsp;</span>
263
- <span class="cline-any cline-neutral">&nbsp;</span>
264
- <span class="cline-any cline-neutral">&nbsp;</span>
265
- <span class="cline-any cline-neutral">&nbsp;</span>
266
- <span class="cline-any cline-neutral">&nbsp;</span>
267
- <span class="cline-any cline-neutral">&nbsp;</span>
268
- <span class="cline-any cline-neutral">&nbsp;</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">&nbsp;</span>
276
- <span class="cline-any cline-yes">1x</span>
277
- <span class="cline-any cline-neutral">&nbsp;</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">&nbsp;</span>
284
- <span class="cline-any cline-neutral">&nbsp;</span>
285
- <span class="cline-any cline-neutral">&nbsp;</span>
286
- <span class="cline-any cline-neutral">&nbsp;</span>
287
- <span class="cline-any cline-neutral">&nbsp;</span>
288
- <span class="cline-any cline-neutral">&nbsp;</span>
289
- <span class="cline-any cline-neutral">&nbsp;</span>
290
- <span class="cline-any cline-yes">1x</span>
291
- <span class="cline-any cline-neutral">&nbsp;</span>
292
- <span class="cline-any cline-neutral">&nbsp;</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">&nbsp;</span>
299
- <span class="cline-any cline-neutral">&nbsp;</span>
300
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">// noinspection DuplicatedCode
301
- &nbsp;
302
- import type { StoryObj } from '@storybook/web-components';
303
- import { expect, within } from '@storybook/test';
304
- &nbsp;
305
- import '../custom-element/custom-element.js';
306
- &nbsp;
307
- type TProps = { title: string; body:string};
308
- &nbsp;
309
- type Story = StoryObj&lt;TProps&gt;;
310
- function sleep(ms: number) { return new Promise((resolve) =&gt; setTimeout(resolve, ms)); }
311
- &nbsp;
312
- function render(args: TProps)
313
- {
314
- const {title, body} = args;
315
- return `
316
- &lt;fieldset&gt;
317
- &lt;legend&gt;${ title }&lt;/legend&gt;
318
- ${ body }
319
- &lt;/fieldset&gt;
320
- `;
321
- }
322
- const meta =
323
- { title: 'slice-events'
324
- , render
325
- };
326
- &nbsp;
327
- export default meta;
328
- &nbsp;
329
- export const SliceInitChangeEvent:Story =
330
- { args : {title: 'Slice initialization, change on event', body:`
331
- &lt;p&gt;initial value should be 0; + and - should change the number in input field&lt;/p&gt;
332
- &lt;custom-element&gt;
333
- &lt;template&gt;
334
- &lt;button slice="clickcount" slice-event="click" slice-value="//clickcount + 1"&gt;+&lt;/button&gt;
335
- &lt;button slice="clickcount" slice-event="click" slice-value="//clickcount - 1"&gt;-&lt;/button&gt;
336
- &lt;input slice="clickcount" type="number" value="{//clickcount ?? 0}"&gt;
337
- &lt;code data-testid="slice-value"&gt;{ //clickcount }&lt;/code&gt;
338
- &lt;/template&gt;
339
- &lt;/custom-element&gt;
340
- `}
341
- , play: async ({canvasElement}) =&gt;
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
- &nbsp;
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
- &nbsp;
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
- &nbsp;
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
- &nbsp;
371
- export const RealtimeEventInSlice:Story =
372
- { args : {title: 'Realtime Slice data on event', body:`
373
- &lt;p&gt;move the mouse over TEXTAREA and click to see slice and slice event changed&lt;/p&gt;
374
- &lt;custom-element&gt;
375
- &lt;template&gt;
376
- &lt;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;"&gt;&lt;/textarea&gt;&lt;br/&gt;
378
- //slice/s : &lt;code data-testid="//slice/s" &gt;{ //slice/s }&lt;/code&gt; &lt;br/&gt;
379
- //slice/s/event/@offsetY : &lt;code data-testid="//slice/s/event/@offsetY" &gt;{ //slice/s/event/@offsetY }&lt;/code&gt; &lt;br/&gt;
380
- event type : &lt;code data-testid="//slice/s/event/@type" &gt;{ //slice/s/event/@type }&lt;/code&gt;
381
- &lt;/template&gt;
382
- &lt;/custom-element&gt;
383
- `}
384
- , play: async ({canvasElement}) =&gt;
385
- {
386
- const titleText = RealtimeEventInSlice.args!.title as string;
387
- const canvas = within(canvasElement);
388
- await canvas.findByText(titleText);
389
- const sliceText = ()=&gt; canvas.getByTestId('//slice/s').textContent
390
- , offsetY = ()=&gt; canvas.getByTestId('//slice/s/event/@offsetY').textContent
391
- , eventType = ()=&gt; canvas.getByTestId('//slice/s/event/@type').textContent;
392
- &nbsp;
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 ) =&gt;
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
- &nbsp;
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
- &nbsp;</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;