@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
@@ -0,0 +1,685 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/stories/slice-events.test.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.test.stories.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">17.94% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>14/78</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'>3/3</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">15.38% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>2/13</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">17.8% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>13/73</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 low'></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>
184
+ <a name='L119'></a><a href='#L119'>119</a>
185
+ <a name='L120'></a><a href='#L120'>120</a>
186
+ <a name='L121'></a><a href='#L121'>121</a>
187
+ <a name='L122'></a><a href='#L122'>122</a>
188
+ <a name='L123'></a><a href='#L123'>123</a>
189
+ <a name='L124'></a><a href='#L124'>124</a>
190
+ <a name='L125'></a><a href='#L125'>125</a>
191
+ <a name='L126'></a><a href='#L126'>126</a>
192
+ <a name='L127'></a><a href='#L127'>127</a>
193
+ <a name='L128'></a><a href='#L128'>128</a>
194
+ <a name='L129'></a><a href='#L129'>129</a>
195
+ <a name='L130'></a><a href='#L130'>130</a>
196
+ <a name='L131'></a><a href='#L131'>131</a>
197
+ <a name='L132'></a><a href='#L132'>132</a>
198
+ <a name='L133'></a><a href='#L133'>133</a>
199
+ <a name='L134'></a><a href='#L134'>134</a>
200
+ <a name='L135'></a><a href='#L135'>135</a>
201
+ <a name='L136'></a><a href='#L136'>136</a>
202
+ <a name='L137'></a><a href='#L137'>137</a>
203
+ <a name='L138'></a><a href='#L138'>138</a>
204
+ <a name='L139'></a><a href='#L139'>139</a>
205
+ <a name='L140'></a><a href='#L140'>140</a>
206
+ <a name='L141'></a><a href='#L141'>141</a>
207
+ <a name='L142'></a><a href='#L142'>142</a>
208
+ <a name='L143'></a><a href='#L143'>143</a>
209
+ <a name='L144'></a><a href='#L144'>144</a>
210
+ <a name='L145'></a><a href='#L145'>145</a>
211
+ <a name='L146'></a><a href='#L146'>146</a>
212
+ <a name='L147'></a><a href='#L147'>147</a>
213
+ <a name='L148'></a><a href='#L148'>148</a>
214
+ <a name='L149'></a><a href='#L149'>149</a>
215
+ <a name='L150'></a><a href='#L150'>150</a>
216
+ <a name='L151'></a><a href='#L151'>151</a>
217
+ <a name='L152'></a><a href='#L152'>152</a>
218
+ <a name='L153'></a><a href='#L153'>153</a>
219
+ <a name='L154'></a><a href='#L154'>154</a>
220
+ <a name='L155'></a><a href='#L155'>155</a>
221
+ <a name='L156'></a><a href='#L156'>156</a>
222
+ <a name='L157'></a><a href='#L157'>157</a>
223
+ <a name='L158'></a><a href='#L158'>158</a>
224
+ <a name='L159'></a><a href='#L159'>159</a>
225
+ <a name='L160'></a><a href='#L160'>160</a>
226
+ <a name='L161'></a><a href='#L161'>161</a>
227
+ <a name='L162'></a><a href='#L162'>162</a>
228
+ <a name='L163'></a><a href='#L163'>163</a>
229
+ <a name='L164'></a><a href='#L164'>164</a>
230
+ <a name='L165'></a><a href='#L165'>165</a>
231
+ <a name='L166'></a><a href='#L166'>166</a>
232
+ <a name='L167'></a><a href='#L167'>167</a>
233
+ <a name='L168'></a><a href='#L168'>168</a>
234
+ <a name='L169'></a><a href='#L169'>169</a>
235
+ <a name='L170'></a><a href='#L170'>170</a>
236
+ <a name='L171'></a><a href='#L171'>171</a>
237
+ <a name='L172'></a><a href='#L172'>172</a>
238
+ <a name='L173'></a><a href='#L173'>173</a>
239
+ <a name='L174'></a><a href='#L174'>174</a>
240
+ <a name='L175'></a><a href='#L175'>175</a>
241
+ <a name='L176'></a><a href='#L176'>176</a>
242
+ <a name='L177'></a><a href='#L177'>177</a>
243
+ <a name='L178'></a><a href='#L178'>178</a>
244
+ <a name='L179'></a><a href='#L179'>179</a>
245
+ <a name='L180'></a><a href='#L180'>180</a>
246
+ <a name='L181'></a><a href='#L181'>181</a>
247
+ <a name='L182'></a><a href='#L182'>182</a>
248
+ <a name='L183'></a><a href='#L183'>183</a>
249
+ <a name='L184'></a><a href='#L184'>184</a>
250
+ <a name='L185'></a><a href='#L185'>185</a>
251
+ <a name='L186'></a><a href='#L186'>186</a>
252
+ <a name='L187'></a><a href='#L187'>187</a>
253
+ <a name='L188'></a><a href='#L188'>188</a>
254
+ <a name='L189'></a><a href='#L189'>189</a>
255
+ <a name='L190'></a><a href='#L190'>190</a>
256
+ <a name='L191'></a><a href='#L191'>191</a>
257
+ <a name='L192'></a><a href='#L192'>192</a>
258
+ <a name='L193'></a><a href='#L193'>193</a>
259
+ <a name='L194'></a><a href='#L194'>194</a>
260
+ <a name='L195'></a><a href='#L195'>195</a>
261
+ <a name='L196'></a><a href='#L196'>196</a>
262
+ <a name='L197'></a><a href='#L197'>197</a>
263
+ <a name='L198'></a><a href='#L198'>198</a>
264
+ <a name='L199'></a><a href='#L199'>199</a>
265
+ <a name='L200'></a><a href='#L200'>200</a>
266
+ <a name='L201'></a><a href='#L201'>201</a></td><td class="line-coverage quiet"><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-neutral">&nbsp;</span>
270
+ <span class="cline-any cline-neutral">&nbsp;</span>
271
+ <span class="cline-any cline-neutral">&nbsp;</span>
272
+ <span class="cline-any cline-neutral">&nbsp;</span>
273
+ <span class="cline-any cline-neutral">&nbsp;</span>
274
+ <span class="cline-any cline-neutral">&nbsp;</span>
275
+ <span class="cline-any cline-neutral">&nbsp;</span>
276
+ <span class="cline-any cline-no">&nbsp;</span>
277
+ <span class="cline-any cline-neutral">&nbsp;</span>
278
+ <span class="cline-any cline-neutral">&nbsp;</span>
279
+ <span class="cline-any cline-neutral">&nbsp;</span>
280
+ <span class="cline-any cline-yes">5x</span>
281
+ <span class="cline-any cline-yes">5x</span>
282
+ <span class="cline-any cline-neutral">&nbsp;</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-yes">1x</span>
290
+ <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
294
+ <span class="cline-any cline-neutral">&nbsp;</span>
295
+ <span class="cline-any cline-neutral">&nbsp;</span>
296
+ <span class="cline-any cline-yes">1x</span>
297
+ <span class="cline-any cline-neutral">&nbsp;</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>
301
+ <span class="cline-any cline-neutral">&nbsp;</span>
302
+ <span class="cline-any cline-neutral">&nbsp;</span>
303
+ <span class="cline-any cline-neutral">&nbsp;</span>
304
+ <span class="cline-any cline-neutral">&nbsp;</span>
305
+ <span class="cline-any cline-neutral">&nbsp;</span>
306
+ <span class="cline-any cline-neutral">&nbsp;</span>
307
+ <span class="cline-any cline-neutral">&nbsp;</span>
308
+ <span class="cline-any cline-neutral">&nbsp;</span>
309
+ <span class="cline-any cline-no">&nbsp;</span>
310
+ <span class="cline-any cline-no">&nbsp;</span>
311
+ <span class="cline-any cline-no">&nbsp;</span>
312
+ <span class="cline-any cline-no">&nbsp;</span>
313
+ <span class="cline-any cline-no">&nbsp;</span>
314
+ <span class="cline-any cline-no">&nbsp;</span>
315
+ <span class="cline-any cline-no">&nbsp;</span>
316
+ <span class="cline-any cline-no">&nbsp;</span>
317
+ <span class="cline-any cline-neutral">&nbsp;</span>
318
+ <span class="cline-any cline-no">&nbsp;</span>
319
+ <span class="cline-any cline-no">&nbsp;</span>
320
+ <span class="cline-any cline-no">&nbsp;</span>
321
+ <span class="cline-any cline-no">&nbsp;</span>
322
+ <span class="cline-any cline-neutral">&nbsp;</span>
323
+ <span class="cline-any cline-no">&nbsp;</span>
324
+ <span class="cline-any cline-no">&nbsp;</span>
325
+ <span class="cline-any cline-no">&nbsp;</span>
326
+ <span class="cline-any cline-no">&nbsp;</span>
327
+ <span class="cline-any cline-no">&nbsp;</span>
328
+ <span class="cline-any cline-no">&nbsp;</span>
329
+ <span class="cline-any cline-neutral">&nbsp;</span>
330
+ <span class="cline-any cline-no">&nbsp;</span>
331
+ <span class="cline-any cline-no">&nbsp;</span>
332
+ <span class="cline-any cline-no">&nbsp;</span>
333
+ <span class="cline-any cline-no">&nbsp;</span>
334
+ <span class="cline-any cline-neutral">&nbsp;</span>
335
+ <span class="cline-any cline-neutral">&nbsp;</span>
336
+ <span class="cline-any cline-neutral">&nbsp;</span>
337
+ <span class="cline-any cline-neutral">&nbsp;</span>
338
+ <span class="cline-any cline-yes">1x</span>
339
+ <span class="cline-any cline-neutral">&nbsp;</span>
340
+ <span class="cline-any cline-neutral">&nbsp;</span>
341
+ <span class="cline-any cline-neutral">&nbsp;</span>
342
+ <span class="cline-any cline-neutral">&nbsp;</span>
343
+ <span class="cline-any cline-neutral">&nbsp;</span>
344
+ <span class="cline-any cline-neutral">&nbsp;</span>
345
+ <span class="cline-any cline-neutral">&nbsp;</span>
346
+ <span class="cline-any cline-neutral">&nbsp;</span>
347
+ <span class="cline-any cline-neutral">&nbsp;</span>
348
+ <span class="cline-any cline-neutral">&nbsp;</span>
349
+ <span class="cline-any cline-neutral">&nbsp;</span>
350
+ <span class="cline-any cline-neutral">&nbsp;</span>
351
+ <span class="cline-any cline-neutral">&nbsp;</span>
352
+ <span class="cline-any cline-no">&nbsp;</span>
353
+ <span class="cline-any cline-no">&nbsp;</span>
354
+ <span class="cline-any cline-no">&nbsp;</span>
355
+ <span class="cline-any cline-no">&nbsp;</span>
356
+ <span class="cline-any cline-no">&nbsp;</span>
357
+ <span class="cline-any cline-no">&nbsp;</span>
358
+ <span class="cline-any cline-neutral">&nbsp;</span>
359
+ <span class="cline-any cline-no">&nbsp;</span>
360
+ <span class="cline-any cline-neutral">&nbsp;</span>
361
+ <span class="cline-any cline-no">&nbsp;</span>
362
+ <span class="cline-any cline-no">&nbsp;</span>
363
+ <span class="cline-any cline-no">&nbsp;</span>
364
+ <span class="cline-any cline-no">&nbsp;</span>
365
+ <span class="cline-any cline-no">&nbsp;</span>
366
+ <span class="cline-any cline-neutral">&nbsp;</span>
367
+ <span class="cline-any cline-neutral">&nbsp;</span>
368
+ <span class="cline-any cline-neutral">&nbsp;</span>
369
+ <span class="cline-any cline-neutral">&nbsp;</span>
370
+ <span class="cline-any cline-neutral">&nbsp;</span>
371
+ <span class="cline-any cline-neutral">&nbsp;</span>
372
+ <span class="cline-any cline-neutral">&nbsp;</span>
373
+ <span class="cline-any cline-no">&nbsp;</span>
374
+ <span class="cline-any cline-neutral">&nbsp;</span>
375
+ <span class="cline-any cline-neutral">&nbsp;</span>
376
+ <span class="cline-any cline-no">&nbsp;</span>
377
+ <span class="cline-any cline-no">&nbsp;</span>
378
+ <span class="cline-any cline-no">&nbsp;</span>
379
+ <span class="cline-any cline-no">&nbsp;</span>
380
+ <span class="cline-any cline-no">&nbsp;</span>
381
+ <span class="cline-any cline-neutral">&nbsp;</span>
382
+ <span class="cline-any cline-neutral">&nbsp;</span>
383
+ <span class="cline-any cline-neutral">&nbsp;</span>
384
+ <span class="cline-any cline-neutral">&nbsp;</span>
385
+ <span class="cline-any cline-yes">1x</span>
386
+ <span class="cline-any cline-neutral">&nbsp;</span>
387
+ <span class="cline-any cline-neutral">&nbsp;</span>
388
+ <span class="cline-any cline-neutral">&nbsp;</span>
389
+ <span class="cline-any cline-neutral">&nbsp;</span>
390
+ <span class="cline-any cline-neutral">&nbsp;</span>
391
+ <span class="cline-any cline-neutral">&nbsp;</span>
392
+ <span class="cline-any cline-neutral">&nbsp;</span>
393
+ <span class="cline-any cline-neutral">&nbsp;</span>
394
+ <span class="cline-any cline-neutral">&nbsp;</span>
395
+ <span class="cline-any cline-neutral">&nbsp;</span>
396
+ <span class="cline-any cline-neutral">&nbsp;</span>
397
+ <span class="cline-any cline-neutral">&nbsp;</span>
398
+ <span class="cline-any cline-neutral">&nbsp;</span>
399
+ <span class="cline-any cline-no">&nbsp;</span>
400
+ <span class="cline-any cline-no">&nbsp;</span>
401
+ <span class="cline-any cline-no">&nbsp;</span>
402
+ <span class="cline-any cline-no">&nbsp;</span>
403
+ <span class="cline-any cline-no">&nbsp;</span>
404
+ <span class="cline-any cline-no">&nbsp;</span>
405
+ <span class="cline-any cline-no">&nbsp;</span>
406
+ <span class="cline-any cline-no">&nbsp;</span>
407
+ <span class="cline-any cline-neutral">&nbsp;</span>
408
+ <span class="cline-any cline-neutral">&nbsp;</span>
409
+ <span class="cline-any cline-neutral">&nbsp;</span>
410
+ <span class="cline-any cline-yes">1x</span>
411
+ <span class="cline-any cline-neutral">&nbsp;</span>
412
+ <span class="cline-any cline-neutral">&nbsp;</span>
413
+ <span class="cline-any cline-neutral">&nbsp;</span>
414
+ <span class="cline-any cline-neutral">&nbsp;</span>
415
+ <span class="cline-any cline-neutral">&nbsp;</span>
416
+ <span class="cline-any cline-neutral">&nbsp;</span>
417
+ <span class="cline-any cline-neutral">&nbsp;</span>
418
+ <span class="cline-any cline-neutral">&nbsp;</span>
419
+ <span class="cline-any cline-neutral">&nbsp;</span>
420
+ <span class="cline-any cline-neutral">&nbsp;</span>
421
+ <span class="cline-any cline-neutral">&nbsp;</span>
422
+ <span class="cline-any cline-neutral">&nbsp;</span>
423
+ <span class="cline-any cline-neutral">&nbsp;</span>
424
+ <span class="cline-any cline-neutral">&nbsp;</span>
425
+ <span class="cline-any cline-neutral">&nbsp;</span>
426
+ <span class="cline-any cline-no">&nbsp;</span>
427
+ <span class="cline-any cline-no">&nbsp;</span>
428
+ <span class="cline-any cline-no">&nbsp;</span>
429
+ <span class="cline-any cline-no">&nbsp;</span>
430
+ <span class="cline-any cline-no">&nbsp;</span>
431
+ <span class="cline-any cline-no">&nbsp;</span>
432
+ <span class="cline-any cline-neutral">&nbsp;</span>
433
+ <span class="cline-any cline-neutral">&nbsp;</span>
434
+ <span class="cline-any cline-neutral">&nbsp;</span>
435
+ <span class="cline-any cline-yes">1x</span>
436
+ <span class="cline-any cline-neutral">&nbsp;</span>
437
+ <span class="cline-any cline-neutral">&nbsp;</span>
438
+ <span class="cline-any cline-neutral">&nbsp;</span>
439
+ <span class="cline-any cline-neutral">&nbsp;</span>
440
+ <span class="cline-any cline-neutral">&nbsp;</span>
441
+ <span class="cline-any cline-neutral">&nbsp;</span>
442
+ <span class="cline-any cline-neutral">&nbsp;</span>
443
+ <span class="cline-any cline-neutral">&nbsp;</span>
444
+ <span class="cline-any cline-neutral">&nbsp;</span>
445
+ <span class="cline-any cline-neutral">&nbsp;</span>
446
+ <span class="cline-any cline-neutral">&nbsp;</span>
447
+ <span class="cline-any cline-neutral">&nbsp;</span>
448
+ <span class="cline-any cline-neutral">&nbsp;</span>
449
+ <span class="cline-any cline-no">&nbsp;</span>
450
+ <span class="cline-any cline-no">&nbsp;</span>
451
+ <span class="cline-any cline-no">&nbsp;</span>
452
+ <span class="cline-any cline-no">&nbsp;</span>
453
+ <span class="cline-any cline-no">&nbsp;</span>
454
+ <span class="cline-any cline-neutral">&nbsp;</span>
455
+ <span class="cline-any cline-neutral">&nbsp;</span>
456
+ <span class="cline-any cline-neutral">&nbsp;</span>
457
+ <span class="cline-any cline-neutral">&nbsp;</span>
458
+ <span class="cline-any cline-yes">1x</span>
459
+ <span class="cline-any cline-neutral">&nbsp;</span>
460
+ <span class="cline-any cline-neutral">&nbsp;</span>
461
+ <span class="cline-any cline-yes">1x</span>
462
+ <span class="cline-any cline-yes">1x</span>
463
+ <span class="cline-any cline-yes">1x</span>
464
+ <span class="cline-any cline-yes">1x</span>
465
+ <span class="cline-any cline-neutral">&nbsp;</span>
466
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">// noinspection DuplicatedCode
467
+ &nbsp;
468
+ import type { StoryObj } from '@storybook/web-components';
469
+ import {expect, userEvent, within, spyOn} from '@storybook/test';
470
+ &nbsp;
471
+ import '../custom-element/custom-element.js';
472
+ &nbsp;
473
+ type TProps = { title: string; body:string};
474
+ &nbsp;
475
+ type Story = StoryObj&lt;TProps&gt;;
476
+ function <span class="fstat-no" title="function not covered" >sleep(m</span>s: number) { <span class="cstat-no" title="statement not covered" >return new Promise(<span class="fstat-no" title="function not covered" >(r</span>esolve) =&gt; <span class="cstat-no" title="statement not covered" >setTimeout(resolve, ms))</span>; }</span>
477
+ &nbsp;
478
+ function render(args: TProps)
479
+ {
480
+ const {title, body} = args;
481
+ return `
482
+ &lt;fieldset&gt;
483
+ &lt;legend&gt;${ title }&lt;/legend&gt;
484
+ ${ body }
485
+ &lt;/fieldset&gt;
486
+ `;
487
+ }
488
+ const meta =
489
+ { title: 'slice-events'
490
+ , render
491
+ };
492
+ &nbsp;
493
+ export default meta;
494
+ &nbsp;
495
+ export const SliceInitChangeEvent:Story =
496
+ { args : {title: 'Slice initialization, change on event', body:`
497
+ &lt;p&gt;initial value should be 0; + and - should change the number in input field&lt;/p&gt;
498
+ &lt;custom-element&gt;
499
+ &lt;template&gt;
500
+ &lt;button slice="clickcount" slice-event="click" slice-value="//clickcount + 1"&gt;+&lt;/button&gt;
501
+ &lt;button slice="clickcount" slice-event="click" slice-value="//clickcount - 1"&gt;-&lt;/button&gt;
502
+ &lt;input slice="clickcount" type="number" value="{//clickcount ?? 0}"&gt;
503
+ &lt;code data-testid="slice-value"&gt;{ //clickcount }&lt;/code&gt;
504
+ &lt;/template&gt;
505
+ &lt;/custom-element&gt;
506
+ `}
507
+ , play: <span class="fstat-no" title="function not covered" >async ({</span>canvasElement}) =&gt;
508
+ {
509
+ const titleText = <span class="cstat-no" title="statement not covered" >SliceInitChangeEvent.args!.title as string;</span>
510
+ const canvas = <span class="cstat-no" title="statement not covered" >within(canvasElement);</span>
511
+ <span class="cstat-no" title="statement not covered" > await canvas.findByText(titleText);</span>
512
+ const code = <span class="cstat-no" title="statement not covered" >await canvas.findByTestId('slice-value');</span>
513
+ const input = <span class="cstat-no" title="statement not covered" >await canvasElement.querySelector('[type="number"]') as HTMLInputElement;</span>
514
+ <span class="cstat-no" title="statement not covered" > await expect(code).toBeInTheDocument();</span>
515
+ <span class="cstat-no" title="statement not covered" > expect(code.textContent).to.equal('0', 'initial slot value 0');</span>
516
+ <span class="cstat-no" title="statement not covered" > expect(input.value).to.equal('0', 'initial input value 0');</span>
517
+ &nbsp;
518
+ <span class="cstat-no" title="statement not covered" > canvasElement.querySelector('[slice-value="//clickcount + 1"]').click()</span>
519
+ <span class="cstat-no" title="statement not covered" > await sleep(10);</span>
520
+ <span class="cstat-no" title="statement not covered" > expect(code.textContent).to.equal('1', 'increment to 1');</span>
521
+ <span class="cstat-no" title="statement not covered" > expect(input.value).to.equal('1', 'increment input 1');</span>
522
+ &nbsp;
523
+ <span class="cstat-no" title="statement not covered" > canvasElement.querySelector('[slice-value="//clickcount + 1"]').click();</span>
524
+ <span class="cstat-no" title="statement not covered" > await sleep(10);</span>
525
+ <span class="cstat-no" title="statement not covered" > canvasElement.querySelector('[slice-value="//clickcount + 1"]').click();</span>
526
+ <span class="cstat-no" title="statement not covered" > await sleep(10);</span>
527
+ <span class="cstat-no" title="statement not covered" > expect(code.textContent).to.equal('3', 'double increment to 3');</span>
528
+ <span class="cstat-no" title="statement not covered" > expect(input.value).to.equal('3', 'double increment input to 3');</span>
529
+ &nbsp;
530
+ <span class="cstat-no" title="statement not covered" > canvasElement.querySelector('[slice-value="//clickcount - 1"]').click();</span>
531
+ <span class="cstat-no" title="statement not covered" > await sleep(10);</span>
532
+ <span class="cstat-no" title="statement not covered" > expect(code.textContent).to.equal('2', 'decrement to 2');</span>
533
+ <span class="cstat-no" title="statement not covered" > expect(input.value).to.equal('2', 'decrement input to 2');</span>
534
+ },
535
+ };
536
+ &nbsp;
537
+ export const RealtimeEventInSlice:Story =
538
+ { args : {title: 'Realtime Slice data on event', body:`
539
+ &lt;p&gt;move the mouse over TEXTAREA and click to see slice and slice event changed&lt;/p&gt;
540
+ &lt;custom-element&gt;
541
+ &lt;template&gt;
542
+ &lt;textarea slice="s" slice-value="concat('x:', //@pageX)" slice-event="mousemove click"
543
+ style="width:16rem;height:16rem;box-shadow: inset {//@offsetX}px {//@offsetY}px gold;"&gt;&lt;/textarea&gt;&lt;br/&gt;
544
+ //slice/s : &lt;code data-testid="//slice/s" &gt;{ //slice/s }&lt;/code&gt; &lt;br/&gt;
545
+ //slice/s/event/@offsetY : &lt;code data-testid="//slice/s/event/@offsetY" &gt;{ //slice/s/event/@offsetY }&lt;/code&gt; &lt;br/&gt;
546
+ event type : &lt;code data-testid="//slice/s/event/@type" &gt;{ //slice/s/event/@type }&lt;/code&gt;
547
+ &lt;/template&gt;
548
+ &lt;/custom-element&gt;
549
+ `}
550
+ , play: <span class="fstat-no" title="function not covered" >async ({</span>canvasElement}) =&gt;
551
+ {
552
+ const titleText = <span class="cstat-no" title="statement not covered" >RealtimeEventInSlice.args!.title as string;</span>
553
+ const canvas = <span class="cstat-no" title="statement not covered" >within(canvasElement);</span>
554
+ <span class="cstat-no" title="statement not covered" > await canvas.findByText(titleText);</span>
555
+ const sliceText = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >()=&gt; <span class="cstat-no" title="statement not covered" >c</span>anvas.getByTestId('//slice/s').textContent</span></span>
556
+ , offsetY = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >()=&gt; <span class="cstat-no" title="statement not covered" >c</span>anvas.getByTestId('//slice/s/event/@offsetY').textContent</span></span>
557
+ , eventType = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >()=&gt; <span class="cstat-no" title="statement not covered" >c</span>anvas.getByTestId('//slice/s/event/@type').textContent;</span></span>
558
+ &nbsp;
559
+ const input = <span class="cstat-no" title="statement not covered" >await canvasElement.querySelector('textarea');</span>
560
+ // expect(input).toBeInTheDocument();
561
+ <span class="cstat-no" title="statement not covered" > expect( sliceText() ).to.equal('', 'initial slot value blank');</span>
562
+ <span class="cstat-no" title="statement not covered" > expect( offsetY() ).to.equal('', 'initial slot offsetY blank');</span>
563
+ <span class="cstat-no" title="statement not covered" > expect( eventType() ).to.equal('', 'initial slot event blank');</span>
564
+ const emitXy = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >( x</span>, y, eventName ) =&gt;</span>
565
+ { const ev = <span class="cstat-no" title="statement not covered" >new MouseEvent(eventName,</span>
566
+ { screenX: x,
567
+ screenY: y,
568
+ clientX: x,
569
+ clientY: y,
570
+ offsetX: x,
571
+ offsetY: y,
572
+ });
573
+ <span class="cstat-no" title="statement not covered" > input.dispatchEvent( ev );</span>
574
+ };
575
+ &nbsp;
576
+ <span class="cstat-no" title="statement not covered" > emitXy(20,20,'click');</span>
577
+ <span class="cstat-no" title="statement not covered" > await sleep(10);</span>
578
+ <span class="cstat-no" title="statement not covered" > expect( sliceText() ).to.equal('x:20', 'click slot value 20');</span>
579
+ <span class="cstat-no" title="statement not covered" > expect( Number(offsetY()) ).to.be.lessThan(0, 'offsetY click');</span>
580
+ <span class="cstat-no" title="statement not covered" > expect( eventType() ).to.equal('click', 'click event type');</span>
581
+ },
582
+ };
583
+ &nbsp;
584
+ export const DoubleEventInSlice:Story =
585
+ { args : {title: 'slice-event="change submit change submit" ', body:`
586
+ &lt;p&gt; double same event should be treated as one.&lt;/p&gt;
587
+ &lt;custom-element&gt;
588
+ &lt;template&gt;
589
+ &lt;form slice-event="submit submit change change" slice="form-1"&gt;
590
+ &lt;input slice-event="change change" required slice="field-1" data-testid="f1" name="f1"/&gt;
591
+ &lt;input name="f2" value="populated in form-data"/&gt;
592
+ &lt;button&gt;next&lt;/button&gt; &lt;code&gt;slices count {count(/datadom/slice/*)}&lt;/code&gt;
593
+ &lt;/form&gt;
594
+ &lt;/template&gt;
595
+ &lt;/custom-element&gt;
596
+ `}
597
+ , play: <span class="fstat-no" title="function not covered" >async ({</span>canvasElement}) =&gt;
598
+ {
599
+ const canvas = <span class="cstat-no" title="statement not covered" >within(canvasElement);</span>
600
+ const input = <span class="cstat-no" title="statement not covered" >await canvas.findByTestId('f1');</span>
601
+ <span class="cstat-no" title="statement not covered" > input.focus();</span>
602
+ <span class="cstat-no" title="statement not covered" > await userEvent.type ( input, 'AB');</span>
603
+ <span class="cstat-no" title="statement not covered" > canvas.getByRole('button').focus()</span>
604
+ <span class="cstat-no" title="statement not covered" > await userEvent.clear( input );</span>
605
+ <span class="cstat-no" title="statement not covered" > await userEvent.click( canvas.getByRole('button'));</span>
606
+ <span class="cstat-no" title="statement not covered" > expect( await canvas.findByText('slices count 2')).toBeInTheDocument();</span>
607
+ },
608
+ };
609
+ export const MultipleSlices:Story =
610
+ { args : {title: 'slice="/datadom/attributes/emotion | s1" ', body:`
611
+ &lt;p&gt; double same event should be treated as one.&lt;/p&gt;
612
+ &lt;custom-element&gt;
613
+ &lt;template&gt;
614
+ &lt;input slice="s1|s2"
615
+ slice-event="input"
616
+ data-testid="f1"
617
+ /&gt;&lt;br/&gt;
618
+ Type to update s1 and s2 slices &lt;br/&gt;
619
+ slice &lt;code&gt;s1: {//slice/s1}&lt;/code&gt;&lt;br/&gt;
620
+ slice &lt;code&gt;s2: {//slice/s2}&lt;/code&gt;&lt;br/&gt;
621
+ &lt;/template&gt;
622
+ &lt;/custom-element&gt;
623
+ `}
624
+ , play: <span class="fstat-no" title="function not covered" >async ({</span>canvasElement}) =&gt;
625
+ {
626
+ const canvas = <span class="cstat-no" title="statement not covered" >within(canvasElement);</span>
627
+ const input = <span class="cstat-no" title="statement not covered" >await canvas.findByTestId('f1');</span>
628
+ <span class="cstat-no" title="statement not covered" > input.focus();</span>
629
+ <span class="cstat-no" title="statement not covered" > await userEvent.type ( input, 'AB');</span>
630
+ <span class="cstat-no" title="statement not covered" > await expect( await canvas.findByText('s1: AB')).toBeInTheDocument();</span>
631
+ <span class="cstat-no" title="statement not covered" > await expect( await canvas.findByText('s2: AB')).toBeInTheDocument();</span>
632
+ },
633
+ };
634
+ export const SlicesInAttrAndName:Story =
635
+ { args : {title: 'slice="/datadom/attributes/emotion | s1" ', body:`
636
+ &lt;p&gt; double same event should be treated as one.&lt;/p&gt;
637
+ &lt;custom-element&gt;
638
+ &lt;template&gt;
639
+ &lt;attribute name="emotion"&gt;😃&lt;/attribute&gt;
640
+ &lt;input slice-event="input" slice="/datadom/attributes/emotion | s1" data-testid="f1"/&gt;
641
+ &lt;p&gt;Type to update &lt;/p&gt;
642
+ &lt;p&gt;emotion attribute: {emotion}&lt;/p&gt;
643
+ &lt;p&gt;slice: {//slice/s1}&lt;/p&gt;
644
+ &lt;/template&gt;
645
+ &lt;/custom-element&gt;
646
+ `}
647
+ , play: <span class="fstat-no" title="function not covered" >async ({</span>canvasElement}) =&gt;
648
+ {
649
+ const canvas = <span class="cstat-no" title="statement not covered" >within(canvasElement);</span>
650
+ const input = <span class="cstat-no" title="statement not covered" >await canvas.findByTestId('f1');</span>
651
+ <span class="cstat-no" title="statement not covered" > input.focus();</span>
652
+ <span class="cstat-no" title="statement not covered" > await userEvent.type ( input, 'AB');</span>
653
+ <span class="cstat-no" title="statement not covered" > await expect( await canvas.findByText( 'emotion attribute: AB')).toBeInTheDocument();</span>
654
+ },
655
+ };
656
+ &nbsp;
657
+ /* istanbul ignore else -- @preserve */
658
+ if( 'test' === import.meta.env.MODE &amp;&amp;
659
+ !import.meta.url.includes('skiptest') )
660
+ {
661
+ const mod = await import('./slice-events.test.stories.ts?skiptest');
662
+ const { testStoryBook } = await import('./testStoryBook')
663
+ const { describe } = await import('vitest')
664
+ describe(meta.title, () =&gt; testStoryBook( mod, meta ) );
665
+ }
666
+ &nbsp;</pre></td></tr></table></pre>
667
+
668
+ <div class='push'></div><!-- for sticky footer -->
669
+ </div><!-- /wrapper -->
670
+ <div class='footer quiet pad2 space-top1 center small'>
671
+ Code coverage generated by
672
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
673
+ at 2024-06-27T03:24:38.495Z
674
+ </div>
675
+ <script src="../../prettify.js"></script>
676
+ <script>
677
+ window.onload = function () {
678
+ prettyPrint();
679
+ };
680
+ </script>
681
+ <script src="../../sorter.js"></script>
682
+ <script src="../../block-navigation.js"></script>
683
+ </body>
684
+ </html>
685
+