@epa-wg/custom-element-dist 0.0.32 → 0.0.34

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 (300) hide show
  1. package/.claude/settings.local.json +18 -0
  2. package/.github/workflows/deploy.yml +59 -0
  3. package/.idea/copilot.data.migration.agent.xml +6 -0
  4. package/.idea/copilot.data.migration.ask.xml +6 -0
  5. package/.idea/copilot.data.migration.edit.xml +6 -0
  6. package/.idea/custom-element-dist.iml +2 -0
  7. package/.storybook/main.ts +20 -21
  8. package/.storybook/preview.ts +23 -25
  9. package/README.md +6 -4
  10. package/coverage/block-navigation.js +1 -1
  11. package/coverage/coverage-final.json +8 -18
  12. package/coverage/index.html +45 -30
  13. package/coverage/sorter.js +21 -7
  14. package/coverage/src/custom-element/coverage.svg +1 -1
  15. package/coverage/src/custom-element/custom-element.js/coverage.svg +1 -1
  16. package/coverage/src/custom-element/custom-element.js.html +687 -480
  17. package/coverage/src/custom-element/http-request.js/coverage.svg +1 -1
  18. package/coverage/src/custom-element/http-request.js.html +39 -18
  19. package/coverage/src/custom-element/index.html +35 -35
  20. package/coverage/src/custom-element/local-storage.js.html +1 -1
  21. package/coverage/src/custom-element/location-element.js.html +31 -31
  22. package/coverage/src/custom-element/module-url.js/coverage.svg +1 -1
  23. package/coverage/src/custom-element/module-url.js.html +20 -20
  24. package/coverage/src/index.html +1 -1
  25. package/coverage/src/{stories/local-storage.test.stories.ts → material/theme/colors.js}/coverage.svg +1 -1
  26. package/coverage/src/material/theme/colors.js.html +217 -0
  27. package/coverage/src/{stories/location-element.test.stories.ts → material/theme}/coverage.svg +1 -1
  28. package/coverage/src/material/theme/index.html +116 -0
  29. package/coverage/src/mocks/handlers.ts.html +1 -1
  30. package/coverage/src/mocks/index.html +1 -1
  31. package/coverage/src/stories/coverage.svg +1 -1
  32. package/coverage/src/stories/{external-template.test.stories.ts → frame.canvas.ts}/coverage.svg +1 -1
  33. package/coverage/src/stories/frame.canvas.ts.html +175 -0
  34. package/coverage/src/stories/http-request.stories.ts.html +1 -1
  35. package/coverage/src/stories/index.html +14 -179
  36. package/coverage/src/stories/testStoryBook.ts.html +12 -12
  37. package/coverage/src/sum.ts.html +1 -1
  38. package/dist/custom-element-BoYMoUtP.js +619 -0
  39. package/dist/custom-element-BqtjrCRF.cjs +97 -0
  40. package/dist/custom-element-bundle.cjs +1 -1
  41. package/dist/custom-element-bundle.js +3 -3
  42. package/dist/demo/a.html +10 -3
  43. package/dist/demo/a.svg +26 -26
  44. package/dist/demo/attributes.html +153 -0
  45. package/dist/demo/external-templates-sb-6.html +42 -0
  46. package/dist/demo/external-templates-sb-7.html +42 -0
  47. package/dist/demo/html-template.html +5 -4
  48. package/dist/demo/module-url-sb-2.html +46 -0
  49. package/dist/demo/module-url-sb-4.html +48 -0
  50. package/dist/demo/module-url-sb-5.html +53 -0
  51. package/dist/demo/s.xml +3859 -7
  52. package/dist/demo/s.xslt +13 -48
  53. package/dist/demo/s1.xml +3706 -0
  54. package/dist/demo/ss.html +13 -4
  55. package/dist/http-request-DSaowcG1.cjs +1 -0
  56. package/dist/{http-request-BOvP4KTl.js → http-request-DTCzZ1gc.js} +15 -9
  57. package/dist/mockServiceWorker.js +31 -8
  58. package/package.json +25 -26
  59. package/public/demo/a.html +10 -3
  60. package/public/demo/a.svg +26 -26
  61. package/public/demo/attributes.html +153 -0
  62. package/public/demo/external-templates-sb-6.html +42 -0
  63. package/public/demo/external-templates-sb-7.html +42 -0
  64. package/public/demo/html-template.html +5 -4
  65. package/public/demo/module-url-sb-2.html +46 -0
  66. package/public/demo/module-url-sb-4.html +48 -0
  67. package/public/demo/module-url-sb-5.html +53 -0
  68. package/public/demo/s.xml +3859 -7
  69. package/public/demo/s.xslt +13 -48
  70. package/public/demo/s1.xml +3706 -0
  71. package/public/demo/ss.html +13 -4
  72. package/public/mockServiceWorker.js +31 -8
  73. package/src/custom-element/custom-element.d.ts +4 -0
  74. package/src/custom-element/custom-element.js +119 -50
  75. package/src/custom-element/demo/a.html +10 -3
  76. package/src/custom-element/demo/a.svg +26 -26
  77. package/src/custom-element/demo/attributes.html +153 -0
  78. package/src/custom-element/demo/html-template.html +5 -4
  79. package/src/custom-element/demo/s.xml +3859 -7
  80. package/src/custom-element/demo/s.xslt +13 -48
  81. package/src/custom-element/demo/s1.xml +3706 -0
  82. package/src/custom-element/demo/ss.html +13 -4
  83. package/src/custom-element/http-request.js +7 -0
  84. package/src/custom-element/ide/web-types-dce.json +1 -1
  85. package/src/custom-element/ide/web-types-xsl.json +1 -1
  86. package/src/custom-element/index.html +1 -1
  87. package/src/material/angular.css +987 -987
  88. package/src/material/components/action.html +262 -0
  89. package/src/material/components/autocomplete.html +167 -239
  90. package/src/material/components/badge.html +239 -0
  91. package/src/material/components/dropdown.html +7 -13
  92. package/src/material/components/icon-link.html +160 -160
  93. package/src/material/components/icon.html +252 -0
  94. package/src/material/components/input.html +569 -362
  95. package/src/material/components/menu.html +235 -234
  96. package/src/material/components.html +157 -121
  97. package/src/material/demo.css +36 -36
  98. package/src/material/index.html +109 -110
  99. package/src/material/material.css +356 -356
  100. package/src/material/theme/Base-Principles.md +339 -0
  101. package/src/material/theme/README.md +298 -18
  102. package/src/material/theme/UI Domain Model in web applications.svg +1 -0
  103. package/src/material/theme/User Semantic Theme tokens.svg +1 -0
  104. package/src/material/theme/action-pending-poc.html +62 -0
  105. package/src/material/theme/actions-color.html +141 -0
  106. package/src/material/theme/colors-light.html +631 -0
  107. package/src/material/theme/colors-native.html +51 -0
  108. package/src/material/theme/colors-poc.html +66 -0
  109. package/src/material/theme/colors.html +297 -0
  110. package/src/material/theme/colors.js +44 -0
  111. package/src/material/theme/consumer-theme.css +745 -0
  112. package/src/material/theme/semantic.css +132 -113
  113. package/src/material/theme/style-bug.html +123 -0
  114. package/src/material/theme/theme-data.css +43 -0
  115. package/src/material/theme/theme-data.xhtml +2926 -0
  116. package/src/material/theme/todo.md +274 -0
  117. package/src/material/theme/tokens/action-colors.png +0 -0
  118. package/src/material/theme/tokens/cem-article-illustration-4x1-letterbox-2000x500.png +0 -0
  119. package/src/material/theme/tokens/cem-breakpoints.md +519 -0
  120. package/src/material/theme/tokens/cem-colors.md +715 -0
  121. package/src/material/theme/tokens/cem-consumerflow-typography-matrix.svg +198 -0
  122. package/src/material/theme/tokens/cem-coupling.md +372 -0
  123. package/src/material/theme/tokens/cem-data-vs-reading-numerals.svg +164 -0
  124. package/src/material/theme/tokens/cem-dimension.md +625 -0
  125. package/src/material/theme/tokens/cem-layering.md +562 -0
  126. package/src/material/theme/tokens/cem-m3-parity.md +343 -0
  127. package/src/material/theme/tokens/cem-responsive.md +238 -0
  128. package/src/material/theme/tokens/cem-shape.md +691 -0
  129. package/src/material/theme/tokens/cem-stroke-density-illustration-4to1-v3.svg +102 -0
  130. package/src/material/theme/tokens/cem-stroke.md +480 -0
  131. package/src/material/theme/tokens/cem-timing.md +198 -0
  132. package/src/material/theme/tokens/cem-typography-model-stack.svg +64 -0
  133. package/src/material/theme/tokens/cem-voice-fonts-typography.md +718 -0
  134. package/src/material/theme/tokens/cem-voice-ladder.svg +91 -0
  135. package/src/material/theme/tokens/chips.png +0 -0
  136. package/src/material/theme/tokens/columns-page.png +0 -0
  137. package/src/material/theme/tokens/initials.png +0 -0
  138. package/src/material/theme/tokens/nav-buttons.png +0 -0
  139. package/src/material/theme/tokens/script.png +0 -0
  140. package/src/material/theme/tokens/sufler.png +0 -0
  141. package/src/material/theme/tokens/typography-icons.png +0 -0
  142. package/src/mocks/versions.mock.ts +1 -1
  143. package/src/stories/__screenshots__/attributes.test.stories.ts +1 -0
  144. package/src/stories/__screenshots__/dom-merge.test.stories.ts/dom-merge-dom-merge-OrderPreservingOn2ndTransform-1.png +0 -0
  145. package/src/stories/__screenshots__/external-template.test.stories.ts +1 -0
  146. package/src/stories/__screenshots__/module-url.test.stories.ts +1 -0
  147. package/src/stories/__screenshots__/stories.test.ts/attributes-Attributes-definition-1.png +0 -0
  148. package/src/stories/__screenshots__/stories.test.ts/attributes-Attributes-runtime-change-1.png +0 -0
  149. package/src/stories/__screenshots__/stories.test.ts/attributes-Instance-Attributes-1.png +0 -0
  150. package/src/stories/__screenshots__/stories.test.ts/attributes-Instance-Attributes-2.png +0 -0
  151. package/src/stories/__screenshots__/stories.test.ts/attributes-cloneAs-el-newTag--1.png +0 -0
  152. package/src/stories/__screenshots__/stories.test.ts/attributes-mergeAttr--from--to---1.png +0 -0
  153. package/src/stories/__screenshots__/stories.test.ts/attributes-mergeAttr--from--to---2.png +0 -0
  154. package/src/stories/__screenshots__/stories.test.ts/attributes-mergeAttr--from--to---3.png +0 -0
  155. package/src/stories/__screenshots__/stories.test.ts/attributes-mix-to-from--1.png +0 -0
  156. package/src/stories/__screenshots__/stories.test.ts/http-request-Attributes-definition-1.png +0 -0
  157. package/src/stories/__screenshots__/stories.test.ts/http-request-Attributes-runtime-change-1.png +0 -0
  158. package/src/stories/__screenshots__/stories.test.ts/http-request-Instance-Attributes-1.png +0 -0
  159. package/src/stories/__screenshots__/stories.test.ts/http-request-Instance-Attributes-2.png +0 -0
  160. package/src/stories/__screenshots__/stories.test.ts/http-request-cloneAs-el-newTag--1.png +0 -0
  161. package/src/stories/__screenshots__/stories.test.ts/http-request-http-request-headers-and-response-status-and-headers-1.png +0 -0
  162. package/src/stories/__screenshots__/stories.test.ts/http-request-http-request-with-delayed--5-seconds-response-1.png +0 -0
  163. package/src/stories/__screenshots__/stories.test.ts/http-request-http-request-with-error-1.png +0 -0
  164. package/src/stories/__screenshots__/stories.test.ts/http-request-mergeAttr--from--to---1.png +0 -0
  165. package/src/stories/__screenshots__/stories.test.ts/http-request-mergeAttr--from--to---2.png +0 -0
  166. package/src/stories/__screenshots__/stories.test.ts/http-request-mergeAttr--from--to---3.png +0 -0
  167. package/src/stories/__screenshots__/stories.test.ts/http-request-mix-to-from--1.png +0 -0
  168. package/src/stories/__screenshots__/stories.test.ts/http-request-url-and-slice-1.png +0 -0
  169. package/src/stories/__screenshots__/stories.test.ts/http-request-url-change-1.png +0 -0
  170. package/src/stories/__screenshots__/xslt-conditionals.test.stories.ts/xslt-conditionals-xslt-conditionals-MultipleIfOrderingWorkaround-1.png +0 -0
  171. package/src/stories/attributes.test.stories.ts +83 -17
  172. package/src/stories/dom-merge.test.stories.ts +25 -1
  173. package/src/stories/external-template.test.stories.ts +16 -14
  174. package/src/stories/frame.canvas.ts +31 -0
  175. package/src/stories/module-url.test.stories.ts +29 -61
  176. package/src/stories/xslt-conditionals.test.stories.ts +492 -0
  177. package/src/stories/xslt-if.test.stories.ts +89 -0
  178. package/storybook-static/assets/Color-F6OSRLHC-CzTOSlqB.js +1 -0
  179. package/storybook-static/assets/Configure-7GqRsAoJ.js +165 -0
  180. package/storybook-static/assets/DocsRenderer-CFRXHY34-Duc5rSIm.js +2 -0
  181. package/storybook-static/assets/{attributes.test.stories-D1X6EBrd.js → attributes.test.stories-DYuxF8h1.js} +109 -38
  182. package/storybook-static/assets/{css.test.stories-Cp_g2hE1.js → css.test.stories-LOmvINyb.js} +1 -1
  183. package/storybook-static/assets/custom-element-Bwx7otrT.js +97 -0
  184. package/storybook-static/assets/{dom-merge.test.stories-hbpdCka0.js → dom-merge.test.stories-CEKhWjaS.js} +47 -6
  185. package/storybook-static/assets/entry-preview-BNCt9WBs.js +26 -0
  186. package/storybook-static/assets/entry-preview-docs-CbF8-81D.js +2 -0
  187. package/storybook-static/assets/{external-template.test.stories-BK89h6sk.js → external-template.test.stories-jHu0wsJ-.js} +38 -40
  188. package/storybook-static/assets/{form.test.stories-BfoLe_rw.js → form.test.stories-CUyUnmwP.js} +1 -1
  189. package/storybook-static/assets/frame.canvas-E5n9h6j1.js +1 -0
  190. package/storybook-static/assets/{handlers-yVPwH_Nz.js → handlers-F7GUfMqr.js} +17 -14
  191. package/storybook-static/assets/http-request-BWeEEBkP.js +1 -0
  192. package/storybook-static/assets/{http-request.stories-CBFJS2Ws.js → http-request.stories-wyX5-QOv.js} +1 -1
  193. package/storybook-static/assets/iframe-BS_DPWl0.js +199 -0
  194. package/storybook-static/assets/index-CGuyH0k-.js +240 -0
  195. package/storybook-static/assets/index-DB7LLObI.js +1 -0
  196. package/storybook-static/assets/index-DO1nmyvI.js +11 -0
  197. package/storybook-static/assets/index-V1EGs-wm.js +621 -0
  198. package/storybook-static/assets/{local-storage.test.stories-C0Yzy6Am.js → local-storage.test.stories-BxOhsf1k.js} +1 -1
  199. package/storybook-static/assets/{location-element.test.stories-DNFrEu5A.js → location-element.test.stories-DqhvvUoa.js} +1 -1
  200. package/storybook-static/assets/module-url.test.stories-C1gG9G7Y.js +142 -0
  201. package/storybook-static/assets/preview-1xJJ3sKE.js +1 -0
  202. package/storybook-static/assets/preview-Bn8igYMp.js +1 -0
  203. package/storybook-static/assets/preview-CTOeX_lO.js +1 -0
  204. package/storybook-static/assets/preview-Cwy1XFu2.js +2 -0
  205. package/storybook-static/assets/preview-D6sehqkw.js +50 -0
  206. package/storybook-static/assets/preview-DfTudP20.js +1 -0
  207. package/storybook-static/assets/{set-url.test.stories-BBfLxv2u.js → set-url.test.stories-BKQNdknJ.js} +1 -1
  208. package/storybook-static/assets/{slice-events.test.stories-HcXF8XQI.js → slice-events.test.stories-ChqULCeA.js} +1 -1
  209. package/storybook-static/assets/{slots.test.stories-i6mnIFM2.js → slots.test.stories-BlyLoCRe.js} +1 -1
  210. package/storybook-static/assets/{version-select.test.stories-BsUFH6Va.js → version-select.test.stories-CPGSh1tR.js} +1 -1
  211. package/storybook-static/assets/xslt-conditionals.test.stories-YC6QPqWZ.js +633 -0
  212. package/storybook-static/assets/xslt-if.test.stories-BRSWy2-x.js +71 -0
  213. package/storybook-static/demo/a.html +10 -3
  214. package/storybook-static/demo/a.svg +26 -26
  215. package/storybook-static/demo/attributes.html +153 -0
  216. package/storybook-static/demo/external-templates-sb-6.html +42 -0
  217. package/storybook-static/demo/external-templates-sb-7.html +42 -0
  218. package/storybook-static/demo/html-template.html +5 -4
  219. package/storybook-static/demo/module-url-sb-2.html +46 -0
  220. package/storybook-static/demo/module-url-sb-4.html +48 -0
  221. package/storybook-static/demo/module-url-sb-5.html +53 -0
  222. package/storybook-static/demo/s.xml +3859 -7
  223. package/storybook-static/demo/s.xslt +13 -48
  224. package/storybook-static/demo/s1.xml +3706 -0
  225. package/storybook-static/demo/ss.html +13 -4
  226. package/storybook-static/iframe.html +2 -2
  227. package/storybook-static/index.html +6 -10
  228. package/storybook-static/index.json +1 -1
  229. package/storybook-static/mockServiceWorker.js +31 -8
  230. package/storybook-static/project.json +1 -1
  231. package/storybook-static/sb-addons/essentials-actions-2/manager-bundle.js +3 -0
  232. package/storybook-static/sb-addons/essentials-backgrounds-4/manager-bundle.js +8 -8
  233. package/storybook-static/sb-addons/essentials-controls-1/manager-bundle.js +394 -0
  234. package/storybook-static/sb-addons/essentials-docs-3/manager-bundle.js +233 -0
  235. package/storybook-static/sb-addons/essentials-measure-7/manager-bundle.js +1 -1
  236. package/storybook-static/sb-addons/essentials-outline-8/manager-bundle.js +1 -1
  237. package/storybook-static/sb-addons/essentials-toolbars-6/manager-bundle.js +1 -1
  238. package/storybook-static/sb-addons/essentials-viewport-5/manager-bundle.js +1 -1
  239. package/storybook-static/sb-addons/interactions-9/manager-bundle.js +58 -58
  240. package/storybook-static/sb-manager/globals-module-info.js +9 -0
  241. package/storybook-static/sb-manager/globals-runtime.js +10719 -10473
  242. package/storybook-static/sb-manager/runtime.js +4944 -6321
  243. package/coverage/src/stories/attributes.test.stories.ts/coverage.svg +0 -10
  244. package/coverage/src/stories/attributes.test.stories.ts.html +0 -814
  245. package/coverage/src/stories/css.test.stories.ts/coverage.svg +0 -10
  246. package/coverage/src/stories/css.test.stories.ts.html +0 -460
  247. package/coverage/src/stories/dom-merge.test.stories.ts/coverage.svg +0 -10
  248. package/coverage/src/stories/dom-merge.test.stories.ts.html +0 -706
  249. package/coverage/src/stories/external-template.test.stories.ts.html +0 -865
  250. package/coverage/src/stories/form.test.stories.ts/coverage.svg +0 -10
  251. package/coverage/src/stories/form.test.stories.ts.html +0 -661
  252. package/coverage/src/stories/local-storage.test.stories.ts.html +0 -1315
  253. package/coverage/src/stories/location-element.test.stories.ts.html +0 -523
  254. package/coverage/src/stories/module-url.test.stories.ts/coverage.svg +0 -10
  255. package/coverage/src/stories/module-url.test.stories.ts.html +0 -640
  256. package/coverage/src/stories/set-url.test.stories.ts/coverage.svg +0 -10
  257. package/coverage/src/stories/set-url.test.stories.ts.html +0 -433
  258. package/coverage/src/stories/slice-events.test.stories.ts/coverage.svg +0 -10
  259. package/coverage/src/stories/slice-events.test.stories.ts.html +0 -952
  260. package/coverage/src/stories/slots.test.stories.ts/coverage.svg +0 -10
  261. package/coverage/src/stories/slots.test.stories.ts.html +0 -742
  262. package/coverage/src/stories/version-select.test.stories.ts/coverage.svg +0 -10
  263. package/coverage/src/stories/version-select.test.stories.ts.html +0 -397
  264. package/dist/custom-element-D2wf_rqP.js +0 -576
  265. package/dist/custom-element-Dtzhbjkc.cjs +0 -97
  266. package/dist/http-request-DPrY7mGh.cjs +0 -1
  267. package/storybook-static/assets/Color-F6OSRLHC-BU3iy8jH.js +0 -1
  268. package/storybook-static/assets/Configure-DN6ifayP.js +0 -165
  269. package/storybook-static/assets/DocsRenderer-CFRXHY34-BaVEufDj.js +0 -2
  270. package/storybook-static/assets/custom-element-uuAtIYWS.js +0 -97
  271. package/storybook-static/assets/entry-preview-DHVXbf3x.js +0 -26
  272. package/storybook-static/assets/entry-preview-docs-BbcIMweR.js +0 -2
  273. package/storybook-static/assets/http-request-DNq59pnj.js +0 -1
  274. package/storybook-static/assets/iframe-CJEL_4Nu.js +0 -2
  275. package/storybook-static/assets/index-BcZLpTeD.js +0 -8
  276. package/storybook-static/assets/index-CxRwF5Or.js +0 -234
  277. package/storybook-static/assets/index-D-8MO0q_.js +0 -1
  278. package/storybook-static/assets/index-D5fBh-7N.js +0 -1
  279. package/storybook-static/assets/index-DM-KBPdl.js +0 -1
  280. package/storybook-static/assets/index-RSFf30w1.js +0 -1
  281. package/storybook-static/assets/index-SnjB5uV8.js +0 -769
  282. package/storybook-static/assets/module-url.test.stories-CXibF5Ta.js +0 -208
  283. package/storybook-static/assets/preview-BhhEZcNS.js +0 -1
  284. package/storybook-static/assets/preview-Bnd0XhaF.js +0 -52
  285. package/storybook-static/assets/preview-CNKoaWES.js +0 -1
  286. package/storybook-static/assets/preview-DAeyCMnM.js +0 -1
  287. package/storybook-static/assets/preview-DHPc-V4N.js +0 -1
  288. package/storybook-static/assets/preview-DJMlNTk8.js +0 -2
  289. package/storybook-static/assets/preview-DYzi3Z2p.js +0 -1
  290. package/storybook-static/sb-addons/chromatic-com-storybook-10/manager-bundle.js +0 -333
  291. package/storybook-static/sb-addons/chromatic-com-storybook-10/manager-bundle.js.LEGAL.txt +0 -40
  292. package/storybook-static/sb-addons/essentials-actions-3/manager-bundle.js +0 -3
  293. package/storybook-static/sb-addons/essentials-controls-2/manager-bundle.js +0 -391
  294. package/storybook-static/sb-addons/links-1/manager-bundle.js +0 -3
  295. package/storybook-static/sb-preview/globals.js +0 -33
  296. package/storybook-static/sb-preview/runtime.js +0 -7174
  297. package/test-runner-jest.config.js +0 -15
  298. /package/storybook-static/sb-addons/{essentials-actions-3 → essentials-actions-2}/manager-bundle.js.LEGAL.txt +0 -0
  299. /package/storybook-static/sb-addons/{essentials-controls-2 → essentials-controls-1}/manager-bundle.js.LEGAL.txt +0 -0
  300. /package/storybook-static/sb-addons/{links-1 → essentials-docs-3}/manager-bundle.js.LEGAL.txt +0 -0
@@ -1,1315 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for src/stories/local-storage.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> local-storage.test.stories.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">7.23% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>17/235</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'>7/7</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">13.33% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>2/15</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">7.07% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>16/226</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>
267
- <a name='L202'></a><a href='#L202'>202</a>
268
- <a name='L203'></a><a href='#L203'>203</a>
269
- <a name='L204'></a><a href='#L204'>204</a>
270
- <a name='L205'></a><a href='#L205'>205</a>
271
- <a name='L206'></a><a href='#L206'>206</a>
272
- <a name='L207'></a><a href='#L207'>207</a>
273
- <a name='L208'></a><a href='#L208'>208</a>
274
- <a name='L209'></a><a href='#L209'>209</a>
275
- <a name='L210'></a><a href='#L210'>210</a>
276
- <a name='L211'></a><a href='#L211'>211</a>
277
- <a name='L212'></a><a href='#L212'>212</a>
278
- <a name='L213'></a><a href='#L213'>213</a>
279
- <a name='L214'></a><a href='#L214'>214</a>
280
- <a name='L215'></a><a href='#L215'>215</a>
281
- <a name='L216'></a><a href='#L216'>216</a>
282
- <a name='L217'></a><a href='#L217'>217</a>
283
- <a name='L218'></a><a href='#L218'>218</a>
284
- <a name='L219'></a><a href='#L219'>219</a>
285
- <a name='L220'></a><a href='#L220'>220</a>
286
- <a name='L221'></a><a href='#L221'>221</a>
287
- <a name='L222'></a><a href='#L222'>222</a>
288
- <a name='L223'></a><a href='#L223'>223</a>
289
- <a name='L224'></a><a href='#L224'>224</a>
290
- <a name='L225'></a><a href='#L225'>225</a>
291
- <a name='L226'></a><a href='#L226'>226</a>
292
- <a name='L227'></a><a href='#L227'>227</a>
293
- <a name='L228'></a><a href='#L228'>228</a>
294
- <a name='L229'></a><a href='#L229'>229</a>
295
- <a name='L230'></a><a href='#L230'>230</a>
296
- <a name='L231'></a><a href='#L231'>231</a>
297
- <a name='L232'></a><a href='#L232'>232</a>
298
- <a name='L233'></a><a href='#L233'>233</a>
299
- <a name='L234'></a><a href='#L234'>234</a>
300
- <a name='L235'></a><a href='#L235'>235</a>
301
- <a name='L236'></a><a href='#L236'>236</a>
302
- <a name='L237'></a><a href='#L237'>237</a>
303
- <a name='L238'></a><a href='#L238'>238</a>
304
- <a name='L239'></a><a href='#L239'>239</a>
305
- <a name='L240'></a><a href='#L240'>240</a>
306
- <a name='L241'></a><a href='#L241'>241</a>
307
- <a name='L242'></a><a href='#L242'>242</a>
308
- <a name='L243'></a><a href='#L243'>243</a>
309
- <a name='L244'></a><a href='#L244'>244</a>
310
- <a name='L245'></a><a href='#L245'>245</a>
311
- <a name='L246'></a><a href='#L246'>246</a>
312
- <a name='L247'></a><a href='#L247'>247</a>
313
- <a name='L248'></a><a href='#L248'>248</a>
314
- <a name='L249'></a><a href='#L249'>249</a>
315
- <a name='L250'></a><a href='#L250'>250</a>
316
- <a name='L251'></a><a href='#L251'>251</a>
317
- <a name='L252'></a><a href='#L252'>252</a>
318
- <a name='L253'></a><a href='#L253'>253</a>
319
- <a name='L254'></a><a href='#L254'>254</a>
320
- <a name='L255'></a><a href='#L255'>255</a>
321
- <a name='L256'></a><a href='#L256'>256</a>
322
- <a name='L257'></a><a href='#L257'>257</a>
323
- <a name='L258'></a><a href='#L258'>258</a>
324
- <a name='L259'></a><a href='#L259'>259</a>
325
- <a name='L260'></a><a href='#L260'>260</a>
326
- <a name='L261'></a><a href='#L261'>261</a>
327
- <a name='L262'></a><a href='#L262'>262</a>
328
- <a name='L263'></a><a href='#L263'>263</a>
329
- <a name='L264'></a><a href='#L264'>264</a>
330
- <a name='L265'></a><a href='#L265'>265</a>
331
- <a name='L266'></a><a href='#L266'>266</a>
332
- <a name='L267'></a><a href='#L267'>267</a>
333
- <a name='L268'></a><a href='#L268'>268</a>
334
- <a name='L269'></a><a href='#L269'>269</a>
335
- <a name='L270'></a><a href='#L270'>270</a>
336
- <a name='L271'></a><a href='#L271'>271</a>
337
- <a name='L272'></a><a href='#L272'>272</a>
338
- <a name='L273'></a><a href='#L273'>273</a>
339
- <a name='L274'></a><a href='#L274'>274</a>
340
- <a name='L275'></a><a href='#L275'>275</a>
341
- <a name='L276'></a><a href='#L276'>276</a>
342
- <a name='L277'></a><a href='#L277'>277</a>
343
- <a name='L278'></a><a href='#L278'>278</a>
344
- <a name='L279'></a><a href='#L279'>279</a>
345
- <a name='L280'></a><a href='#L280'>280</a>
346
- <a name='L281'></a><a href='#L281'>281</a>
347
- <a name='L282'></a><a href='#L282'>282</a>
348
- <a name='L283'></a><a href='#L283'>283</a>
349
- <a name='L284'></a><a href='#L284'>284</a>
350
- <a name='L285'></a><a href='#L285'>285</a>
351
- <a name='L286'></a><a href='#L286'>286</a>
352
- <a name='L287'></a><a href='#L287'>287</a>
353
- <a name='L288'></a><a href='#L288'>288</a>
354
- <a name='L289'></a><a href='#L289'>289</a>
355
- <a name='L290'></a><a href='#L290'>290</a>
356
- <a name='L291'></a><a href='#L291'>291</a>
357
- <a name='L292'></a><a href='#L292'>292</a>
358
- <a name='L293'></a><a href='#L293'>293</a>
359
- <a name='L294'></a><a href='#L294'>294</a>
360
- <a name='L295'></a><a href='#L295'>295</a>
361
- <a name='L296'></a><a href='#L296'>296</a>
362
- <a name='L297'></a><a href='#L297'>297</a>
363
- <a name='L298'></a><a href='#L298'>298</a>
364
- <a name='L299'></a><a href='#L299'>299</a>
365
- <a name='L300'></a><a href='#L300'>300</a>
366
- <a name='L301'></a><a href='#L301'>301</a>
367
- <a name='L302'></a><a href='#L302'>302</a>
368
- <a name='L303'></a><a href='#L303'>303</a>
369
- <a name='L304'></a><a href='#L304'>304</a>
370
- <a name='L305'></a><a href='#L305'>305</a>
371
- <a name='L306'></a><a href='#L306'>306</a>
372
- <a name='L307'></a><a href='#L307'>307</a>
373
- <a name='L308'></a><a href='#L308'>308</a>
374
- <a name='L309'></a><a href='#L309'>309</a>
375
- <a name='L310'></a><a href='#L310'>310</a>
376
- <a name='L311'></a><a href='#L311'>311</a>
377
- <a name='L312'></a><a href='#L312'>312</a>
378
- <a name='L313'></a><a href='#L313'>313</a>
379
- <a name='L314'></a><a href='#L314'>314</a>
380
- <a name='L315'></a><a href='#L315'>315</a>
381
- <a name='L316'></a><a href='#L316'>316</a>
382
- <a name='L317'></a><a href='#L317'>317</a>
383
- <a name='L318'></a><a href='#L318'>318</a>
384
- <a name='L319'></a><a href='#L319'>319</a>
385
- <a name='L320'></a><a href='#L320'>320</a>
386
- <a name='L321'></a><a href='#L321'>321</a>
387
- <a name='L322'></a><a href='#L322'>322</a>
388
- <a name='L323'></a><a href='#L323'>323</a>
389
- <a name='L324'></a><a href='#L324'>324</a>
390
- <a name='L325'></a><a href='#L325'>325</a>
391
- <a name='L326'></a><a href='#L326'>326</a>
392
- <a name='L327'></a><a href='#L327'>327</a>
393
- <a name='L328'></a><a href='#L328'>328</a>
394
- <a name='L329'></a><a href='#L329'>329</a>
395
- <a name='L330'></a><a href='#L330'>330</a>
396
- <a name='L331'></a><a href='#L331'>331</a>
397
- <a name='L332'></a><a href='#L332'>332</a>
398
- <a name='L333'></a><a href='#L333'>333</a>
399
- <a name='L334'></a><a href='#L334'>334</a>
400
- <a name='L335'></a><a href='#L335'>335</a>
401
- <a name='L336'></a><a href='#L336'>336</a>
402
- <a name='L337'></a><a href='#L337'>337</a>
403
- <a name='L338'></a><a href='#L338'>338</a>
404
- <a name='L339'></a><a href='#L339'>339</a>
405
- <a name='L340'></a><a href='#L340'>340</a>
406
- <a name='L341'></a><a href='#L341'>341</a>
407
- <a name='L342'></a><a href='#L342'>342</a>
408
- <a name='L343'></a><a href='#L343'>343</a>
409
- <a name='L344'></a><a href='#L344'>344</a>
410
- <a name='L345'></a><a href='#L345'>345</a>
411
- <a name='L346'></a><a href='#L346'>346</a>
412
- <a name='L347'></a><a href='#L347'>347</a>
413
- <a name='L348'></a><a href='#L348'>348</a>
414
- <a name='L349'></a><a href='#L349'>349</a>
415
- <a name='L350'></a><a href='#L350'>350</a>
416
- <a name='L351'></a><a href='#L351'>351</a>
417
- <a name='L352'></a><a href='#L352'>352</a>
418
- <a name='L353'></a><a href='#L353'>353</a>
419
- <a name='L354'></a><a href='#L354'>354</a>
420
- <a name='L355'></a><a href='#L355'>355</a>
421
- <a name='L356'></a><a href='#L356'>356</a>
422
- <a name='L357'></a><a href='#L357'>357</a>
423
- <a name='L358'></a><a href='#L358'>358</a>
424
- <a name='L359'></a><a href='#L359'>359</a>
425
- <a name='L360'></a><a href='#L360'>360</a>
426
- <a name='L361'></a><a href='#L361'>361</a>
427
- <a name='L362'></a><a href='#L362'>362</a>
428
- <a name='L363'></a><a href='#L363'>363</a>
429
- <a name='L364'></a><a href='#L364'>364</a>
430
- <a name='L365'></a><a href='#L365'>365</a>
431
- <a name='L366'></a><a href='#L366'>366</a>
432
- <a name='L367'></a><a href='#L367'>367</a>
433
- <a name='L368'></a><a href='#L368'>368</a>
434
- <a name='L369'></a><a href='#L369'>369</a>
435
- <a name='L370'></a><a href='#L370'>370</a>
436
- <a name='L371'></a><a href='#L371'>371</a>
437
- <a name='L372'></a><a href='#L372'>372</a>
438
- <a name='L373'></a><a href='#L373'>373</a>
439
- <a name='L374'></a><a href='#L374'>374</a>
440
- <a name='L375'></a><a href='#L375'>375</a>
441
- <a name='L376'></a><a href='#L376'>376</a>
442
- <a name='L377'></a><a href='#L377'>377</a>
443
- <a name='L378'></a><a href='#L378'>378</a>
444
- <a name='L379'></a><a href='#L379'>379</a>
445
- <a name='L380'></a><a href='#L380'>380</a>
446
- <a name='L381'></a><a href='#L381'>381</a>
447
- <a name='L382'></a><a href='#L382'>382</a>
448
- <a name='L383'></a><a href='#L383'>383</a>
449
- <a name='L384'></a><a href='#L384'>384</a>
450
- <a name='L385'></a><a href='#L385'>385</a>
451
- <a name='L386'></a><a href='#L386'>386</a>
452
- <a name='L387'></a><a href='#L387'>387</a>
453
- <a name='L388'></a><a href='#L388'>388</a>
454
- <a name='L389'></a><a href='#L389'>389</a>
455
- <a name='L390'></a><a href='#L390'>390</a>
456
- <a name='L391'></a><a href='#L391'>391</a>
457
- <a name='L392'></a><a href='#L392'>392</a>
458
- <a name='L393'></a><a href='#L393'>393</a>
459
- <a name='L394'></a><a href='#L394'>394</a>
460
- <a name='L395'></a><a href='#L395'>395</a>
461
- <a name='L396'></a><a href='#L396'>396</a>
462
- <a name='L397'></a><a href='#L397'>397</a>
463
- <a name='L398'></a><a href='#L398'>398</a>
464
- <a name='L399'></a><a href='#L399'>399</a>
465
- <a name='L400'></a><a href='#L400'>400</a>
466
- <a name='L401'></a><a href='#L401'>401</a>
467
- <a name='L402'></a><a href='#L402'>402</a>
468
- <a name='L403'></a><a href='#L403'>403</a>
469
- <a name='L404'></a><a href='#L404'>404</a>
470
- <a name='L405'></a><a href='#L405'>405</a>
471
- <a name='L406'></a><a href='#L406'>406</a>
472
- <a name='L407'></a><a href='#L407'>407</a>
473
- <a name='L408'></a><a href='#L408'>408</a>
474
- <a name='L409'></a><a href='#L409'>409</a>
475
- <a name='L410'></a><a href='#L410'>410</a>
476
- <a name='L411'></a><a href='#L411'>411</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
477
- <span class="cline-any cline-neutral">&nbsp;</span>
478
- <span class="cline-any cline-neutral">&nbsp;</span>
479
- <span class="cline-any cline-neutral">&nbsp;</span>
480
- <span class="cline-any cline-neutral">&nbsp;</span>
481
- <span class="cline-any cline-neutral">&nbsp;</span>
482
- <span class="cline-any cline-neutral">&nbsp;</span>
483
- <span class="cline-any cline-neutral">&nbsp;</span>
484
- <span class="cline-any cline-neutral">&nbsp;</span>
485
- <span class="cline-any cline-neutral">&nbsp;</span>
486
- <span class="cline-any cline-neutral">&nbsp;</span>
487
- <span class="cline-any cline-yes">1x</span>
488
- <span class="cline-any cline-neutral">&nbsp;</span>
489
- <span class="cline-any cline-neutral">&nbsp;</span>
490
- <span class="cline-any cline-neutral">&nbsp;</span>
491
- <span class="cline-any cline-neutral">&nbsp;</span>
492
- <span class="cline-any cline-neutral">&nbsp;</span>
493
- <span class="cline-any cline-neutral">&nbsp;</span>
494
- <span class="cline-any cline-neutral">&nbsp;</span>
495
- <span class="cline-any cline-no">&nbsp;</span>
496
- <span class="cline-any cline-neutral">&nbsp;</span>
497
- <span class="cline-any cline-neutral">&nbsp;</span>
498
- <span class="cline-any cline-neutral">&nbsp;</span>
499
- <span class="cline-any cline-yes">4x</span>
500
- <span class="cline-any cline-yes">4x</span>
501
- <span class="cline-any cline-neutral">&nbsp;</span>
502
- <span class="cline-any cline-neutral">&nbsp;</span>
503
- <span class="cline-any cline-neutral">&nbsp;</span>
504
- <span class="cline-any cline-neutral">&nbsp;</span>
505
- <span class="cline-any cline-neutral">&nbsp;</span>
506
- <span class="cline-any cline-neutral">&nbsp;</span>
507
- <span class="cline-any cline-neutral">&nbsp;</span>
508
- <span class="cline-any cline-neutral">&nbsp;</span>
509
- <span class="cline-any cline-neutral">&nbsp;</span>
510
- <span class="cline-any cline-neutral">&nbsp;</span>
511
- <span class="cline-any cline-neutral">&nbsp;</span>
512
- <span class="cline-any cline-neutral">&nbsp;</span>
513
- <span class="cline-any cline-neutral">&nbsp;</span>
514
- <span class="cline-any cline-neutral">&nbsp;</span>
515
- <span class="cline-any cline-neutral">&nbsp;</span>
516
- <span class="cline-any cline-neutral">&nbsp;</span>
517
- <span class="cline-any cline-neutral">&nbsp;</span>
518
- <span class="cline-any cline-neutral">&nbsp;</span>
519
- <span class="cline-any cline-neutral">&nbsp;</span>
520
- <span class="cline-any cline-neutral">&nbsp;</span>
521
- <span class="cline-any cline-neutral">&nbsp;</span>
522
- <span class="cline-any cline-neutral">&nbsp;</span>
523
- <span class="cline-any cline-yes">1x</span>
524
- <span class="cline-any cline-neutral">&nbsp;</span>
525
- <span class="cline-any cline-neutral">&nbsp;</span>
526
- <span class="cline-any cline-neutral">&nbsp;</span>
527
- <span class="cline-any cline-neutral">&nbsp;</span>
528
- <span class="cline-any cline-neutral">&nbsp;</span>
529
- <span class="cline-any cline-yes">1x</span>
530
- <span class="cline-any cline-yes">1x</span>
531
- <span class="cline-any cline-yes">1x</span>
532
- <span class="cline-any cline-neutral">&nbsp;</span>
533
- <span class="cline-any cline-neutral">&nbsp;</span>
534
- <span class="cline-any cline-yes">1x</span>
535
- <span class="cline-any cline-neutral">&nbsp;</span>
536
- <span class="cline-any cline-neutral">&nbsp;</span>
537
- <span class="cline-any cline-neutral">&nbsp;</span>
538
- <span class="cline-any cline-neutral">&nbsp;</span>
539
- <span class="cline-any cline-neutral">&nbsp;</span>
540
- <span class="cline-any cline-neutral">&nbsp;</span>
541
- <span class="cline-any cline-neutral">&nbsp;</span>
542
- <span class="cline-any cline-neutral">&nbsp;</span>
543
- <span class="cline-any cline-neutral">&nbsp;</span>
544
- <span class="cline-any cline-neutral">&nbsp;</span>
545
- <span class="cline-any cline-no">&nbsp;</span>
546
- <span class="cline-any cline-no">&nbsp;</span>
547
- <span class="cline-any cline-no">&nbsp;</span>
548
- <span class="cline-any cline-no">&nbsp;</span>
549
- <span class="cline-any cline-no">&nbsp;</span>
550
- <span class="cline-any cline-no">&nbsp;</span>
551
- <span class="cline-any cline-no">&nbsp;</span>
552
- <span class="cline-any cline-neutral">&nbsp;</span>
553
- <span class="cline-any cline-no">&nbsp;</span>
554
- <span class="cline-any cline-no">&nbsp;</span>
555
- <span class="cline-any cline-no">&nbsp;</span>
556
- <span class="cline-any cline-no">&nbsp;</span>
557
- <span class="cline-any cline-neutral">&nbsp;</span>
558
- <span class="cline-any cline-no">&nbsp;</span>
559
- <span class="cline-any cline-neutral">&nbsp;</span>
560
- <span class="cline-any cline-no">&nbsp;</span>
561
- <span class="cline-any cline-no">&nbsp;</span>
562
- <span class="cline-any cline-no">&nbsp;</span>
563
- <span class="cline-any cline-neutral">&nbsp;</span>
564
- <span class="cline-any cline-no">&nbsp;</span>
565
- <span class="cline-any cline-no">&nbsp;</span>
566
- <span class="cline-any cline-no">&nbsp;</span>
567
- <span class="cline-any cline-neutral">&nbsp;</span>
568
- <span class="cline-any cline-no">&nbsp;</span>
569
- <span class="cline-any cline-neutral">&nbsp;</span>
570
- <span class="cline-any cline-no">&nbsp;</span>
571
- <span class="cline-any cline-no">&nbsp;</span>
572
- <span class="cline-any cline-neutral">&nbsp;</span>
573
- <span class="cline-any cline-neutral">&nbsp;</span>
574
- <span class="cline-any cline-neutral">&nbsp;</span>
575
- <span class="cline-any cline-neutral">&nbsp;</span>
576
- <span class="cline-any cline-neutral">&nbsp;</span>
577
- <span class="cline-any cline-yes">1x</span>
578
- <span class="cline-any cline-neutral">&nbsp;</span>
579
- <span class="cline-any cline-neutral">&nbsp;</span>
580
- <span class="cline-any cline-neutral">&nbsp;</span>
581
- <span class="cline-any cline-neutral">&nbsp;</span>
582
- <span class="cline-any cline-neutral">&nbsp;</span>
583
- <span class="cline-any cline-neutral">&nbsp;</span>
584
- <span class="cline-any cline-no">&nbsp;</span>
585
- <span class="cline-any cline-no">&nbsp;</span>
586
- <span class="cline-any cline-no">&nbsp;</span>
587
- <span class="cline-any cline-no">&nbsp;</span>
588
- <span class="cline-any cline-no">&nbsp;</span>
589
- <span class="cline-any cline-neutral">&nbsp;</span>
590
- <span class="cline-any cline-no">&nbsp;</span>
591
- <span class="cline-any cline-neutral">&nbsp;</span>
592
- <span class="cline-any cline-no">&nbsp;</span>
593
- <span class="cline-any cline-no">&nbsp;</span>
594
- <span class="cline-any cline-no">&nbsp;</span>
595
- <span class="cline-any cline-no">&nbsp;</span>
596
- <span class="cline-any cline-neutral">&nbsp;</span>
597
- <span class="cline-any cline-no">&nbsp;</span>
598
- <span class="cline-any cline-no">&nbsp;</span>
599
- <span class="cline-any cline-no">&nbsp;</span>
600
- <span class="cline-any cline-no">&nbsp;</span>
601
- <span class="cline-any cline-neutral">&nbsp;</span>
602
- <span class="cline-any cline-no">&nbsp;</span>
603
- <span class="cline-any cline-no">&nbsp;</span>
604
- <span class="cline-any cline-no">&nbsp;</span>
605
- <span class="cline-any cline-neutral">&nbsp;</span>
606
- <span class="cline-any cline-neutral">&nbsp;</span>
607
- <span class="cline-any cline-neutral">&nbsp;</span>
608
- <span class="cline-any cline-neutral">&nbsp;</span>
609
- <span class="cline-any cline-yes">1x</span>
610
- <span class="cline-any cline-neutral">&nbsp;</span>
611
- <span class="cline-any cline-neutral">&nbsp;</span>
612
- <span class="cline-any cline-neutral">&nbsp;</span>
613
- <span class="cline-any cline-neutral">&nbsp;</span>
614
- <span class="cline-any cline-neutral">&nbsp;</span>
615
- <span class="cline-any cline-neutral">&nbsp;</span>
616
- <span class="cline-any cline-neutral">&nbsp;</span>
617
- <span class="cline-any cline-neutral">&nbsp;</span>
618
- <span class="cline-any cline-neutral">&nbsp;</span>
619
- <span class="cline-any cline-neutral">&nbsp;</span>
620
- <span class="cline-any cline-neutral">&nbsp;</span>
621
- <span class="cline-any cline-neutral">&nbsp;</span>
622
- <span class="cline-any cline-neutral">&nbsp;</span>
623
- <span class="cline-any cline-neutral">&nbsp;</span>
624
- <span class="cline-any cline-no">&nbsp;</span>
625
- <span class="cline-any cline-no">&nbsp;</span>
626
- <span class="cline-any cline-no">&nbsp;</span>
627
- <span class="cline-any cline-neutral">&nbsp;</span>
628
- <span class="cline-any cline-no">&nbsp;</span>
629
- <span class="cline-any cline-no">&nbsp;</span>
630
- <span class="cline-any cline-neutral">&nbsp;</span>
631
- <span class="cline-any cline-no">&nbsp;</span>
632
- <span class="cline-any cline-no">&nbsp;</span>
633
- <span class="cline-any cline-no">&nbsp;</span>
634
- <span class="cline-any cline-neutral">&nbsp;</span>
635
- <span class="cline-any cline-no">&nbsp;</span>
636
- <span class="cline-any cline-no">&nbsp;</span>
637
- <span class="cline-any cline-no">&nbsp;</span>
638
- <span class="cline-any cline-no">&nbsp;</span>
639
- <span class="cline-any cline-no">&nbsp;</span>
640
- <span class="cline-any cline-no">&nbsp;</span>
641
- <span class="cline-any cline-neutral">&nbsp;</span>
642
- <span class="cline-any cline-no">&nbsp;</span>
643
- <span class="cline-any cline-no">&nbsp;</span>
644
- <span class="cline-any cline-no">&nbsp;</span>
645
- <span class="cline-any cline-no">&nbsp;</span>
646
- <span class="cline-any cline-no">&nbsp;</span>
647
- <span class="cline-any cline-no">&nbsp;</span>
648
- <span class="cline-any cline-neutral">&nbsp;</span>
649
- <span class="cline-any cline-neutral">&nbsp;</span>
650
- <span class="cline-any cline-neutral">&nbsp;</span>
651
- <span class="cline-any cline-neutral">&nbsp;</span>
652
- <span class="cline-any cline-neutral">&nbsp;</span>
653
- <span class="cline-any cline-yes">1x</span>
654
- <span class="cline-any cline-neutral">&nbsp;</span>
655
- <span class="cline-any cline-neutral">&nbsp;</span>
656
- <span class="cline-any cline-neutral">&nbsp;</span>
657
- <span class="cline-any cline-neutral">&nbsp;</span>
658
- <span class="cline-any cline-neutral">&nbsp;</span>
659
- <span class="cline-any cline-neutral">&nbsp;</span>
660
- <span class="cline-any cline-neutral">&nbsp;</span>
661
- <span class="cline-any cline-neutral">&nbsp;</span>
662
- <span class="cline-any cline-neutral">&nbsp;</span>
663
- <span class="cline-any cline-neutral">&nbsp;</span>
664
- <span class="cline-any cline-neutral">&nbsp;</span>
665
- <span class="cline-any cline-neutral">&nbsp;</span>
666
- <span class="cline-any cline-neutral">&nbsp;</span>
667
- <span class="cline-any cline-neutral">&nbsp;</span>
668
- <span class="cline-any cline-neutral">&nbsp;</span>
669
- <span class="cline-any cline-neutral">&nbsp;</span>
670
- <span class="cline-any cline-neutral">&nbsp;</span>
671
- <span class="cline-any cline-neutral">&nbsp;</span>
672
- <span class="cline-any cline-neutral">&nbsp;</span>
673
- <span class="cline-any cline-neutral">&nbsp;</span>
674
- <span class="cline-any cline-neutral">&nbsp;</span>
675
- <span class="cline-any cline-neutral">&nbsp;</span>
676
- <span class="cline-any cline-neutral">&nbsp;</span>
677
- <span class="cline-any cline-neutral">&nbsp;</span>
678
- <span class="cline-any cline-neutral">&nbsp;</span>
679
- <span class="cline-any cline-neutral">&nbsp;</span>
680
- <span class="cline-any cline-neutral">&nbsp;</span>
681
- <span class="cline-any cline-neutral">&nbsp;</span>
682
- <span class="cline-any cline-neutral">&nbsp;</span>
683
- <span class="cline-any cline-neutral">&nbsp;</span>
684
- <span class="cline-any cline-neutral">&nbsp;</span>
685
- <span class="cline-any cline-neutral">&nbsp;</span>
686
- <span class="cline-any cline-neutral">&nbsp;</span>
687
- <span class="cline-any cline-neutral">&nbsp;</span>
688
- <span class="cline-any cline-neutral">&nbsp;</span>
689
- <span class="cline-any cline-neutral">&nbsp;</span>
690
- <span class="cline-any cline-neutral">&nbsp;</span>
691
- <span class="cline-any cline-neutral">&nbsp;</span>
692
- <span class="cline-any cline-neutral">&nbsp;</span>
693
- <span class="cline-any cline-neutral">&nbsp;</span>
694
- <span class="cline-any cline-neutral">&nbsp;</span>
695
- <span class="cline-any cline-neutral">&nbsp;</span>
696
- <span class="cline-any cline-neutral">&nbsp;</span>
697
- <span class="cline-any cline-neutral">&nbsp;</span>
698
- <span class="cline-any cline-neutral">&nbsp;</span>
699
- <span class="cline-any cline-neutral">&nbsp;</span>
700
- <span class="cline-any cline-neutral">&nbsp;</span>
701
- <span class="cline-any cline-neutral">&nbsp;</span>
702
- <span class="cline-any cline-neutral">&nbsp;</span>
703
- <span class="cline-any cline-neutral">&nbsp;</span>
704
- <span class="cline-any cline-no">&nbsp;</span>
705
- <span class="cline-any cline-neutral">&nbsp;</span>
706
- <span class="cline-any cline-no">&nbsp;</span>
707
- <span class="cline-any cline-no">&nbsp;</span>
708
- <span class="cline-any cline-no">&nbsp;</span>
709
- <span class="cline-any cline-no">&nbsp;</span>
710
- <span class="cline-any cline-no">&nbsp;</span>
711
- <span class="cline-any cline-no">&nbsp;</span>
712
- <span class="cline-any cline-no">&nbsp;</span>
713
- <span class="cline-any cline-neutral">&nbsp;</span>
714
- <span class="cline-any cline-no">&nbsp;</span>
715
- <span class="cline-any cline-no">&nbsp;</span>
716
- <span class="cline-any cline-no">&nbsp;</span>
717
- <span class="cline-any cline-no">&nbsp;</span>
718
- <span class="cline-any cline-no">&nbsp;</span>
719
- <span class="cline-any cline-no">&nbsp;</span>
720
- <span class="cline-any cline-neutral">&nbsp;</span>
721
- <span class="cline-any cline-no">&nbsp;</span>
722
- <span class="cline-any cline-no">&nbsp;</span>
723
- <span class="cline-any cline-no">&nbsp;</span>
724
- <span class="cline-any cline-no">&nbsp;</span>
725
- <span class="cline-any cline-no">&nbsp;</span>
726
- <span class="cline-any cline-no">&nbsp;</span>
727
- <span class="cline-any cline-no">&nbsp;</span>
728
- <span class="cline-any cline-no">&nbsp;</span>
729
- <span class="cline-any cline-no">&nbsp;</span>
730
- <span class="cline-any cline-no">&nbsp;</span>
731
- <span class="cline-any cline-neutral">&nbsp;</span>
732
- <span class="cline-any cline-no">&nbsp;</span>
733
- <span class="cline-any cline-no">&nbsp;</span>
734
- <span class="cline-any cline-no">&nbsp;</span>
735
- <span class="cline-any cline-no">&nbsp;</span>
736
- <span class="cline-any cline-no">&nbsp;</span>
737
- <span class="cline-any cline-no">&nbsp;</span>
738
- <span class="cline-any cline-no">&nbsp;</span>
739
- <span class="cline-any cline-no">&nbsp;</span>
740
- <span class="cline-any cline-no">&nbsp;</span>
741
- <span class="cline-any cline-neutral">&nbsp;</span>
742
- <span class="cline-any cline-no">&nbsp;</span>
743
- <span class="cline-any cline-no">&nbsp;</span>
744
- <span class="cline-any cline-no">&nbsp;</span>
745
- <span class="cline-any cline-no">&nbsp;</span>
746
- <span class="cline-any cline-no">&nbsp;</span>
747
- <span class="cline-any cline-no">&nbsp;</span>
748
- <span class="cline-any cline-no">&nbsp;</span>
749
- <span class="cline-any cline-no">&nbsp;</span>
750
- <span class="cline-any cline-no">&nbsp;</span>
751
- <span class="cline-any cline-neutral">&nbsp;</span>
752
- <span class="cline-any cline-no">&nbsp;</span>
753
- <span class="cline-any cline-no">&nbsp;</span>
754
- <span class="cline-any cline-no">&nbsp;</span>
755
- <span class="cline-any cline-no">&nbsp;</span>
756
- <span class="cline-any cline-no">&nbsp;</span>
757
- <span class="cline-any cline-no">&nbsp;</span>
758
- <span class="cline-any cline-no">&nbsp;</span>
759
- <span class="cline-any cline-no">&nbsp;</span>
760
- <span class="cline-any cline-no">&nbsp;</span>
761
- <span class="cline-any cline-neutral">&nbsp;</span>
762
- <span class="cline-any cline-no">&nbsp;</span>
763
- <span class="cline-any cline-no">&nbsp;</span>
764
- <span class="cline-any cline-no">&nbsp;</span>
765
- <span class="cline-any cline-no">&nbsp;</span>
766
- <span class="cline-any cline-no">&nbsp;</span>
767
- <span class="cline-any cline-no">&nbsp;</span>
768
- <span class="cline-any cline-no">&nbsp;</span>
769
- <span class="cline-any cline-no">&nbsp;</span>
770
- <span class="cline-any cline-no">&nbsp;</span>
771
- <span class="cline-any cline-no">&nbsp;</span>
772
- <span class="cline-any cline-neutral">&nbsp;</span>
773
- <span class="cline-any cline-no">&nbsp;</span>
774
- <span class="cline-any cline-no">&nbsp;</span>
775
- <span class="cline-any cline-no">&nbsp;</span>
776
- <span class="cline-any cline-no">&nbsp;</span>
777
- <span class="cline-any cline-no">&nbsp;</span>
778
- <span class="cline-any cline-no">&nbsp;</span>
779
- <span class="cline-any cline-no">&nbsp;</span>
780
- <span class="cline-any cline-no">&nbsp;</span>
781
- <span class="cline-any cline-no">&nbsp;</span>
782
- <span class="cline-any cline-neutral">&nbsp;</span>
783
- <span class="cline-any cline-no">&nbsp;</span>
784
- <span class="cline-any cline-no">&nbsp;</span>
785
- <span class="cline-any cline-no">&nbsp;</span>
786
- <span class="cline-any cline-no">&nbsp;</span>
787
- <span class="cline-any cline-no">&nbsp;</span>
788
- <span class="cline-any cline-no">&nbsp;</span>
789
- <span class="cline-any cline-no">&nbsp;</span>
790
- <span class="cline-any cline-no">&nbsp;</span>
791
- <span class="cline-any cline-no">&nbsp;</span>
792
- <span class="cline-any cline-neutral">&nbsp;</span>
793
- <span class="cline-any cline-no">&nbsp;</span>
794
- <span class="cline-any cline-no">&nbsp;</span>
795
- <span class="cline-any cline-no">&nbsp;</span>
796
- <span class="cline-any cline-no">&nbsp;</span>
797
- <span class="cline-any cline-no">&nbsp;</span>
798
- <span class="cline-any cline-no">&nbsp;</span>
799
- <span class="cline-any cline-no">&nbsp;</span>
800
- <span class="cline-any cline-no">&nbsp;</span>
801
- <span class="cline-any cline-no">&nbsp;</span>
802
- <span class="cline-any cline-neutral">&nbsp;</span>
803
- <span class="cline-any cline-no">&nbsp;</span>
804
- <span class="cline-any cline-no">&nbsp;</span>
805
- <span class="cline-any cline-no">&nbsp;</span>
806
- <span class="cline-any cline-no">&nbsp;</span>
807
- <span class="cline-any cline-no">&nbsp;</span>
808
- <span class="cline-any cline-no">&nbsp;</span>
809
- <span class="cline-any cline-no">&nbsp;</span>
810
- <span class="cline-any cline-no">&nbsp;</span>
811
- <span class="cline-any cline-no">&nbsp;</span>
812
- <span class="cline-any cline-neutral">&nbsp;</span>
813
- <span class="cline-any cline-no">&nbsp;</span>
814
- <span class="cline-any cline-no">&nbsp;</span>
815
- <span class="cline-any cline-no">&nbsp;</span>
816
- <span class="cline-any cline-no">&nbsp;</span>
817
- <span class="cline-any cline-no">&nbsp;</span>
818
- <span class="cline-any cline-no">&nbsp;</span>
819
- <span class="cline-any cline-no">&nbsp;</span>
820
- <span class="cline-any cline-no">&nbsp;</span>
821
- <span class="cline-any cline-no">&nbsp;</span>
822
- <span class="cline-any cline-neutral">&nbsp;</span>
823
- <span class="cline-any cline-no">&nbsp;</span>
824
- <span class="cline-any cline-no">&nbsp;</span>
825
- <span class="cline-any cline-no">&nbsp;</span>
826
- <span class="cline-any cline-no">&nbsp;</span>
827
- <span class="cline-any cline-no">&nbsp;</span>
828
- <span class="cline-any cline-no">&nbsp;</span>
829
- <span class="cline-any cline-no">&nbsp;</span>
830
- <span class="cline-any cline-no">&nbsp;</span>
831
- <span class="cline-any cline-no">&nbsp;</span>
832
- <span class="cline-any cline-neutral">&nbsp;</span>
833
- <span class="cline-any cline-no">&nbsp;</span>
834
- <span class="cline-any cline-no">&nbsp;</span>
835
- <span class="cline-any cline-no">&nbsp;</span>
836
- <span class="cline-any cline-no">&nbsp;</span>
837
- <span class="cline-any cline-no">&nbsp;</span>
838
- <span class="cline-any cline-no">&nbsp;</span>
839
- <span class="cline-any cline-no">&nbsp;</span>
840
- <span class="cline-any cline-no">&nbsp;</span>
841
- <span class="cline-any cline-no">&nbsp;</span>
842
- <span class="cline-any cline-neutral">&nbsp;</span>
843
- <span class="cline-any cline-no">&nbsp;</span>
844
- <span class="cline-any cline-no">&nbsp;</span>
845
- <span class="cline-any cline-no">&nbsp;</span>
846
- <span class="cline-any cline-no">&nbsp;</span>
847
- <span class="cline-any cline-no">&nbsp;</span>
848
- <span class="cline-any cline-no">&nbsp;</span>
849
- <span class="cline-any cline-no">&nbsp;</span>
850
- <span class="cline-any cline-no">&nbsp;</span>
851
- <span class="cline-any cline-no">&nbsp;</span>
852
- <span class="cline-any cline-neutral">&nbsp;</span>
853
- <span class="cline-any cline-no">&nbsp;</span>
854
- <span class="cline-any cline-no">&nbsp;</span>
855
- <span class="cline-any cline-no">&nbsp;</span>
856
- <span class="cline-any cline-no">&nbsp;</span>
857
- <span class="cline-any cline-no">&nbsp;</span>
858
- <span class="cline-any cline-no">&nbsp;</span>
859
- <span class="cline-any cline-no">&nbsp;</span>
860
- <span class="cline-any cline-no">&nbsp;</span>
861
- <span class="cline-any cline-no">&nbsp;</span>
862
- <span class="cline-any cline-neutral">&nbsp;</span>
863
- <span class="cline-any cline-no">&nbsp;</span>
864
- <span class="cline-any cline-no">&nbsp;</span>
865
- <span class="cline-any cline-no">&nbsp;</span>
866
- <span class="cline-any cline-no">&nbsp;</span>
867
- <span class="cline-any cline-no">&nbsp;</span>
868
- <span class="cline-any cline-no">&nbsp;</span>
869
- <span class="cline-any cline-no">&nbsp;</span>
870
- <span class="cline-any cline-no">&nbsp;</span>
871
- <span class="cline-any cline-no">&nbsp;</span>
872
- <span class="cline-any cline-neutral">&nbsp;</span>
873
- <span class="cline-any cline-neutral">&nbsp;</span>
874
- <span class="cline-any cline-neutral">&nbsp;</span>
875
- <span class="cline-any cline-neutral">&nbsp;</span>
876
- <span class="cline-any cline-neutral">&nbsp;</span>
877
- <span class="cline-any cline-yes">1x</span>
878
- <span class="cline-any cline-neutral">&nbsp;</span>
879
- <span class="cline-any cline-neutral">&nbsp;</span>
880
- <span class="cline-any cline-yes">1x</span>
881
- <span class="cline-any cline-yes">1x</span>
882
- <span class="cline-any cline-yes">1x</span>
883
- <span class="cline-any cline-yes">1x</span>
884
- <span class="cline-any cline-neutral">&nbsp;</span>
885
- <span class="cline-any cline-neutral">&nbsp;</span>
886
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">// noinspection DuplicatedCode
887
- &nbsp;
888
- import type { StoryObj } from '@storybook/web-components';
889
- import {expect, userEvent, within} from '@storybook/test';
890
- &nbsp;
891
- import '../custom-element/custom-element.js';
892
- import '../custom-element/local-storage.js';
893
- import {localStorage_clear, localStorage_removeItem, localStorageSetItem} from "../custom-element";
894
- &nbsp;
895
- type TProps = { title: string; slice: string; key: string; value:string; live:string; body:string};
896
- const defs: TProps =
897
- { title: ''
898
- , slice: 'ls-slice'
899
- , key: 'sb-ls-key'
900
- , value: ''
901
- , live: ''
902
- , body: ``
903
- };
904
- type Story = StoryObj&lt;TProps&gt;;
905
- 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>
906
- &nbsp;
907
- function render(args: TProps)
908
- {
909
- const {title, slice, key, value, live, body} = {...defs, ...args};
910
- return `
911
- &lt;fieldset&gt;
912
- &lt;legend&gt;${ title }&lt;/legend&gt;
913
- &nbsp;
914
- &lt;custom-element&gt;
915
- &lt;template&gt;&lt;!-- wrapping into template to prevent images loading within DCE declaration --&gt;
916
- &lt;local-storage
917
- key="${ key }"
918
- slice="${ slice }"
919
- ${ live ? `live="${live }"`:''}
920
- ${ value ? `value="${value }"`:''}
921
- &gt;&lt;/local-storage&gt;
922
- &nbsp;
923
- &lt;br/&gt;
924
- &lt;var&gt;${key}&lt;/var&gt;:&lt;code data-testid="slice-value"&gt;{ //slice/${slice} }&lt;/code&gt;
925
- &lt;br/&gt;
926
- ${ body }
927
- &lt;/template&gt;
928
- &lt;/custom-element&gt;
929
- &lt;/fieldset&gt;
930
- `;
931
- }
932
- const meta =
933
- { title: 'local-storage'
934
- , render
935
- };
936
- &nbsp;
937
- export default meta;
938
- &nbsp;
939
- window['localStorageSetItem'] = localStorageSetItem;
940
- window['localStorage_clear'] = localStorage_clear;
941
- window['localStorage_removeItem'] = localStorage_removeItem;
942
- &nbsp;
943
- export const Demo:Story =
944
- { args : {title: 'live value', live:'live', body:`
945
- &lt;input placeholder="value for localStorage" id="textinput"
946
- slice="${defs.slice}"
947
- value="{ //${defs.slice} ?? '${ defs.value }' }"/&gt;
948
- &lt;button onclick="localStorageSetItem('${defs.key}',textinput.value )"&gt;set&lt;/button&gt;
949
- &lt;button onclick="localStorageSetItem('${defs.key}','text value' )"&gt;text value&lt;/button&gt;
950
- &lt;button onclick="localStorageSetItem('${defs.key}','another text')"&gt;another text&lt;/button&gt;
951
- &lt;button onclick="localStorage_removeItem('${defs.key}' )"&gt;set blank&lt;/button&gt;
952
- `}
953
- , play: <span class="fstat-no" title="function not covered" >async ({</span>canvasElement}) =&gt;
954
- {
955
- <span class="cstat-no" title="statement not covered" > localStorage_clear();</span>
956
- const canvas = <span class="cstat-no" title="statement not covered" >within(canvasElement);</span>
957
- <span class="cstat-no" title="statement not covered" > await canvas.findByText(Demo.args!.title as string);</span>
958
- const val = <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-value').textContent</span></span>
959
- <span class="cstat-no" title="statement not covered" > await userEvent.click(await canvas.findByText('set blank'));</span>
960
- <span class="cstat-no" title="statement not covered" > await expect(localStorage.getItem(defs.key)).toEqual(null, 'from localStorage');</span>
961
- <span class="cstat-no" title="statement not covered" > await expect( val() ).toEqual('');</span>
962
- &nbsp;
963
- <span class="cstat-no" title="statement not covered" > await userEvent.click(canvas.getByText('text value'));</span>
964
- <span class="cstat-no" title="statement not covered" > await sleep(10);</span>
965
- <span class="cstat-no" title="statement not covered" > await expect(localStorage.getItem(defs.key)).toEqual('text value', 'from localStorage');</span>
966
- <span class="cstat-no" title="statement not covered" > await expect( val() ).toEqual('text value');</span>
967
- &nbsp;
968
- <span class="cstat-no" title="statement not covered" > window['textinput'].value = 'textinput.value';</span>
969
- &nbsp;
970
- <span class="cstat-no" title="statement not covered" > await userEvent.click(canvas.getByText('set'));</span>
971
- <span class="cstat-no" title="statement not covered" > await sleep(10);</span>
972
- <span class="cstat-no" title="statement not covered" > expect( val() ).toEqual('textinput.value');</span>
973
- &nbsp;
974
- <span class="cstat-no" title="statement not covered" > await userEvent.click(canvas.getByText('another text'));</span>
975
- <span class="cstat-no" title="statement not covered" > await sleep(10);</span>
976
- <span class="cstat-no" title="statement not covered" > expect( val() ).toEqual('another text');</span>
977
- &nbsp;
978
- <span class="cstat-no" title="statement not covered" > await userEvent.click(canvas.getByText('set blank'));</span>
979
- &nbsp;
980
- <span class="cstat-no" title="statement not covered" > await sleep(10);</span>
981
- <span class="cstat-no" title="statement not covered" > expect( val() ).toEqual('');</span>
982
- },
983
- };
984
- &nbsp;
985
- &nbsp;
986
- export const AlwaysOverride:Story =
987
- { args : {title: 'AlwaysOverride', live:'', value:'ABC', body:`
988
- buttons are changing the localStorage value, but without 'live' attribute slice ^^ from &lt;i&gt;local-storage&lt;/i&gt; is not updated&lt;br/&gt;
989
- &lt;button onclick="localStorageSetItem('${defs.key}','text value')"&gt;text value&lt;/button&gt;
990
- &lt;button onclick="localStorage_removeItem('${defs.key}')"&gt;set blank&lt;/button&gt;
991
- `}
992
- , play: <span class="fstat-no" title="function not covered" >async ({</span>canvasElement}) =&gt;
993
- {
994
- const canvas = <span class="cstat-no" title="statement not covered" >within(canvasElement);</span>
995
- <span class="cstat-no" title="statement not covered" > await canvas.findByText(AlwaysOverride.args!.title as string);</span>
996
- const val = <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-value').textContent;</span></span>
997
- const click = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >async (t</span>ext)=&gt; <span class="cstat-no" title="statement not covered" >await userEvent.click( await canvas.findByText(text) );</span></span>
998
- <span class="cstat-no" title="statement not covered" > await sleep(10);</span>
999
- &nbsp;
1000
- <span class="cstat-no" title="statement not covered" > await expect( localStorage.getItem(defs.key)).toEqual('ABC');</span>
1001
- &nbsp;
1002
- <span class="cstat-no" title="statement not covered" > await click('set blank')</span>
1003
- <span class="cstat-no" title="statement not covered" > await expect(localStorage.getItem(defs.key)).toEqual(null, 'from localStorage');</span>
1004
- <span class="cstat-no" title="statement not covered" > await sleep(10);</span>
1005
- <span class="cstat-no" title="statement not covered" > await expect( val() ).toEqual('ABC');</span>
1006
- &nbsp;
1007
- <span class="cstat-no" title="statement not covered" > await click('text value');</span>
1008
- <span class="cstat-no" title="statement not covered" > await sleep(10);</span>
1009
- <span class="cstat-no" title="statement not covered" > await expect(localStorage.getItem(defs.key)).toEqual('text value', 'from localStorage');</span>
1010
- <span class="cstat-no" title="statement not covered" > await expect( val() ).toEqual('ABC');</span>
1011
- &nbsp;
1012
- <span class="cstat-no" title="statement not covered" > await click('set blank');</span>
1013
- <span class="cstat-no" title="statement not covered" > await sleep(10);</span>
1014
- <span class="cstat-no" title="statement not covered" > await expect( val() ).toEqual('ABC');</span>
1015
- },
1016
- };
1017
- &nbsp;
1018
- export const FromStorageWithDefault:Story =
1019
- { args : {title: 'live value with defaults', live:'', value:'ABC', body:`
1020
- &nbsp;
1021
- &lt;local-storage key="attr2Key" slice="attr2-key" type="text" live="live" slice-value="@value ?? 'DEF2'"&gt;&lt;/local-storage&gt;
1022
- &lt;button onclick="localStorage_removeItem('attr2Key')"&gt;clear key&lt;/button&gt;
1023
- &lt;button onclick="localStorageSetItem('attr2Key','attr2Key value')"&gt;update attr2-key value&lt;/button&gt;
1024
- //attr2-key: &lt;code data-testid="key2-value"&gt;{//attr2-key}&lt;/code&gt;&lt;br/&gt;
1025
- &nbsp;
1026
- &lt;local-storage key="attr3Key" slice="attr3-key" type="text" live="live" slice-value="@value ?? 'DEF3'"&gt;&lt;/local-storage&gt;
1027
- &lt;button onclick="localStorage_removeItem('attr3Key')"&gt;clear attr3-key key&lt;/button&gt;
1028
- &lt;button onclick="localStorageSetItem('attr3Key','attr3Key value')"&gt;update attr3-key value&lt;/button&gt;
1029
- //attr3-key: &lt;code data-testid="key3-value"&gt;{//attr3-key}&lt;/code&gt;&lt;br/&gt;
1030
- &lt;button onclick="localStorage_clear()"&gt;clear localStorage&lt;/button&gt;
1031
- `}
1032
- , play: <span class="fstat-no" title="function not covered" >async ({</span>canvasElement}) =&gt;
1033
- {
1034
- const canvas = <span class="cstat-no" title="statement not covered" >within(canvasElement);</span>
1035
- <span class="cstat-no" title="statement not covered" > await canvas.findByText(FromStorageWithDefault.args!.title as string);</span>
1036
- const byText = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >txt =&gt; <span class="cstat-no" title="statement not covered" >c</span>anvas.getByText(txt);</span></span>
1037
- &nbsp;
1038
- <span class="cstat-no" title="statement not covered" > expect(localStorage.getItem(defs.key)).toEqual('ABC', 'from localStorage');</span>
1039
- <span class="cstat-no" title="statement not covered" > byText('clear localStorage').click();</span>
1040
- &nbsp;
1041
- <span class="cstat-no" title="statement not covered" > expect( canvas.getByTestId('slice-value').textContent).toEqual('ABC')</span>
1042
- <span class="cstat-no" title="statement not covered" > expect( canvas.getByTestId('key2-value' ).textContent).toEqual('DEF2')</span>
1043
- <span class="cstat-no" title="statement not covered" > expect( canvas.getByTestId('key3-value' ).textContent).toEqual('DEF3')</span>
1044
- &nbsp;
1045
- <span class="cstat-no" title="statement not covered" > byText('update attr2-key value').click();</span>
1046
- <span class="cstat-no" title="statement not covered" > expect(localStorage.getItem('attr2Key')).toEqual('attr2Key value', 'from localStorage');</span>
1047
- <span class="cstat-no" title="statement not covered" > await sleep(10);</span>
1048
- <span class="cstat-no" title="statement not covered" > expect( canvas.getByTestId('slice-value').textContent).toEqual('ABC')</span>
1049
- <span class="cstat-no" title="statement not covered" > expect( canvas.getByTestId('key2-value' ).textContent).toEqual('attr2Key value')</span>
1050
- <span class="cstat-no" title="statement not covered" > expect( canvas.getByTestId('key3-value' ).textContent).toEqual('DEF3')</span>
1051
- &nbsp;
1052
- <span class="cstat-no" title="statement not covered" > byText('update attr3-key value').click();</span>
1053
- <span class="cstat-no" title="statement not covered" > expect(localStorage.getItem('attr3Key')).toEqual('attr3Key value', 'from localStorage');</span>
1054
- <span class="cstat-no" title="statement not covered" > await sleep(10);</span>
1055
- <span class="cstat-no" title="statement not covered" > expect( canvas.getByTestId('slice-value').textContent).toEqual('ABC')</span>
1056
- <span class="cstat-no" title="statement not covered" > expect( canvas.getByTestId('key2-value' ).textContent).toEqual('attr2Key value')</span>
1057
- <span class="cstat-no" title="statement not covered" > expect( canvas.getByTestId('key3-value' ).textContent).toEqual('attr3Key value')</span>
1058
- &nbsp;
1059
- },
1060
- };
1061
- &nbsp;
1062
- export const TypeAttribute:Story =
1063
- { args : {title: 'local-storage type attribute variations', body:`
1064
- &nbsp;
1065
- &lt;local-storage key="textKey" slice="text-key" type="text" live="live"&gt;&lt;/local-storage&gt;
1066
- &lt;local-storage key="dateKey" slice="date-key" type="date" live="live"&gt;&lt;/local-storage&gt;
1067
- &lt;local-storage key="timeKey" slice="time-key" type="time" live="live"&gt;&lt;/local-storage&gt;
1068
- &lt;local-storage key="localDateTimeKey" slice="local-date-time" type="datetime-local" live="live"&gt;&lt;/local-storage&gt;
1069
- &lt;local-storage key="numberKey" slice="number-key" type="number" live="live"&gt;&lt;/local-storage&gt;
1070
- &lt;local-storage key="jsonKey" slice="json-key" type="json" live="live"&gt;&lt;/local-storage&gt;
1071
- &lt;input id="typesinput" placeholder="set value"&gt;&lt;button onclick="
1072
- 'textKey,dateKey,timeKey,localDateTimeKey,numberKey,jsonKey'.split(',')
1073
- .map( k=&gt; localStorageSetItem(k, typesinput.value) )
1074
- "&gt; set to all&lt;/button&gt;&lt;br&gt;
1075
- &lt;hr&gt;
1076
- text-key:
1077
- &lt;button onclick="localStorageSetItem('textKey', 'ABC' )"&gt;ABC&lt;/button&gt;
1078
- &lt;code data-testid="text-key"&gt;{//text-key }&lt;/code&gt;&lt;br&gt;
1079
- date-key:
1080
- &lt;button onclick="localStorageSetItem('dateKey', '2024-04-20T03:58:42.131Z')"&gt;2024-04-21T03:58:42.131Z &lt;/button&gt;
1081
- &lt;button onclick="localStorageSetItem('dateKey', new Date(Date.now()).toISOString())"&gt;now &lt;/button&gt;
1082
- &lt;button onclick="localStorageSetItem('dateKey', 'ABC' )"&gt;date ABC - invalid &lt;/button&gt;
1083
- &lt;code data-testid="date-key"&gt;{//date-key }&lt;/code&gt;&lt;br&gt;
1084
- time-key:
1085
- &lt;button onclick="localStorageSetItem('timeKey', '13:30')"&gt;13:30 &lt;/button&gt;
1086
- &lt;code data-testid="time-key"&gt;{//time-key }&lt;/code&gt;&lt;br&gt;
1087
- local-date-time:
1088
- &lt;button onclick="localStorageSetItem('localDateTimeKey', '1977-04-01T14:00:30')"&gt;1977-04-01T14:00:30 - local &lt;/button&gt;
1089
- &lt;code data-testid="local-date-time"&gt;{//local-date-time}&lt;/code&gt;&lt;br&gt;
1090
- number-key:
1091
- &lt;button onclick="localStorageSetItem('numberKey', '2024' )"&gt;2024 - number &lt;/button&gt;
1092
- &lt;button onclick="localStorageSetItem('numberKey', '24' )"&gt;24 - number &lt;/button&gt;
1093
- &lt;button onclick="localStorageSetItem('numberKey', '1.23456e+5' )"&gt;1.23456e+5 &lt;/button&gt;
1094
- &lt;button onclick="localStorageSetItem('numberKey', '0001' )"&gt;0001 &lt;/button&gt;
1095
- &lt;button onclick="localStorageSetItem('numberKey', '000' )"&gt;000 &lt;/button&gt;
1096
- &lt;button onclick="localStorageSetItem('numberKey', '0' )"&gt;0 &lt;/button&gt;
1097
- &lt;button onclick="localStorageSetItem('numberKey', 'ABC' )"&gt;ABC - invalid, NaN &lt;/button&gt;
1098
- &lt;code data-testid="number-key"&gt;{//number-key }&lt;/code&gt; &lt;br&gt;
1099
- &lt;fieldset&gt;
1100
- &lt;legend&gt;json-key: &lt;/legend&gt;
1101
- &nbsp;
1102
- &lt;button onclick="localStorageSetItem('jsonKey', JSON.stringify('ABC'))"&gt;'ABC' - string &lt;/button&gt;
1103
- &lt;button onclick="localStorageSetItem('jsonKey', JSON.stringify(12.345))"&gt;12.345 - number &lt;/button&gt;
1104
- &lt;button onclick="localStorageSetItem('jsonKey', JSON.stringify(window.JsonSample) )"&gt;a:1,b:'B' -json &lt;/button&gt;
1105
- &lt;button onclick="localStorageSetItem('jsonKey', 'ABC' )"&gt;ABC - invalid &lt;/button&gt;&lt;br&gt;
1106
- json-key:&lt;code data-testid="json-key"&gt;&lt;xsl:apply-templates select="//json-key/value/@*|//json-key/text()|//json-key/value/text()" mode="json"&gt;&lt;/xsl:apply-templates&gt;&lt;/code&gt;
1107
- &lt;/fieldset&gt;
1108
- &lt;xsl:template mode="json" match="*|@*"&gt;
1109
- &lt;div&gt;{name()} : {.}&lt;/div&gt;
1110
- &lt;/xsl:template&gt;
1111
- `}
1112
- , play: <span class="fstat-no" title="function not covered" >async ({</span>canvasElement}) =&gt;
1113
- {
1114
- <span class="cstat-no" title="statement not covered" > window['JsonSample'] = {a:1,b:'B'};</span>
1115
- &nbsp;
1116
- const canvas = <span class="cstat-no" title="statement not covered" >within(canvasElement);</span>
1117
- <span class="cstat-no" title="statement not covered" > await canvas.findByText(TypeAttribute.args!.title as string);</span>
1118
- const byText = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >txt =&gt; <span class="cstat-no" title="statement not covered" >c</span>anvas.getByText(txt)</span></span>
1119
- , val = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >testId =&gt; <span class="cstat-no" title="statement not covered" >c</span>anvas.getByTestId(testId).textContent</span></span>
1120
- , expectVal = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(k</span>ey,value) =&gt; { <span class="cstat-no" title="statement not covered" >expect(val( key ).trim()).toEqual( value, key ) }</span>;</span>
1121
- <span class="cstat-no" title="statement not covered" > localStorage_clear(); // cleanup before test</span>
1122
- <span class="cstat-no" title="statement not covered" > await sleep(10);</span>
1123
- &nbsp;
1124
- <span class="cstat-no" title="statement not covered" > expectVal('text-key' ,'');</span>
1125
- <span class="cstat-no" title="statement not covered" > expectVal('date-key' ,'');</span>
1126
- <span class="cstat-no" title="statement not covered" > expectVal('time-key' ,'');</span>
1127
- <span class="cstat-no" title="statement not covered" > expectVal('local-date-time','');</span>
1128
- <span class="cstat-no" title="statement not covered" > expectVal('number-key' ,'NaN');</span>
1129
- <span class="cstat-no" title="statement not covered" > expectVal('json-key' ,'');</span>
1130
- &nbsp;
1131
- const input = <span class="cstat-no" title="statement not covered" >canvasElement.querySelector('input');</span>
1132
- <span class="cstat-no" title="statement not covered" > input.value='ABC';</span>
1133
- <span class="cstat-no" title="statement not covered" > byText('set to all').click();</span>
1134
- <span class="cstat-no" title="statement not covered" > await sleep(10);</span>
1135
- <span class="cstat-no" title="statement not covered" > expectVal('text-key' ,'ABC');</span>
1136
- <span class="cstat-no" title="statement not covered" > expectVal('date-key' ,'' );</span>
1137
- <span class="cstat-no" title="statement not covered" > expectVal('time-key' ,'' );</span>
1138
- <span class="cstat-no" title="statement not covered" > expectVal('local-date-time','' );</span>
1139
- <span class="cstat-no" title="statement not covered" > expectVal('number-key' ,'NaN');</span>
1140
- <span class="cstat-no" title="statement not covered" > expectVal('json-key' ,'');</span>
1141
- &nbsp;
1142
- <span class="cstat-no" title="statement not covered" > input.value='22';</span>
1143
- <span class="cstat-no" title="statement not covered" > byText('set to all').click();</span>
1144
- <span class="cstat-no" title="statement not covered" > await sleep(10);</span>
1145
- <span class="cstat-no" title="statement not covered" > expectVal('text-key' ,'22');</span>
1146
- <span class="cstat-no" title="statement not covered" > expectVal('date-key' ,'' );</span>
1147
- <span class="cstat-no" title="statement not covered" > expectVal('time-key' ,'' );</span>
1148
- <span class="cstat-no" title="statement not covered" > expectVal('local-date-time','' );</span>
1149
- <span class="cstat-no" title="statement not covered" > expectVal('number-key' ,'22');</span>
1150
- <span class="cstat-no" title="statement not covered" > expectVal('json-key' ,'22');</span>
1151
- &nbsp;
1152
- <span class="cstat-no" title="statement not covered" > input.value='2024';</span>
1153
- <span class="cstat-no" title="statement not covered" > byText('set to all').click();</span>
1154
- <span class="cstat-no" title="statement not covered" > await sleep(10);</span>
1155
- <span class="cstat-no" title="statement not covered" > expectVal('text-key' ,'2024' );</span>
1156
- <span class="cstat-no" title="statement not covered" > expectVal('date-key' ,'2024-01-01' );</span>
1157
- <span class="cstat-no" title="statement not covered" > expectVal('time-key' ,'' );</span>
1158
- <span class="cstat-no" title="statement not covered" > expectVal('local-date-time','' );</span>
1159
- <span class="cstat-no" title="statement not covered" > expectVal('number-key' ,'2024' );</span>
1160
- <span class="cstat-no" title="statement not covered" > expectVal('json-key' ,'2024' );</span>
1161
- &nbsp;
1162
- <span class="cstat-no" title="statement not covered" > input.value='2024-04-20T03:58:42.131Z';</span>
1163
- <span class="cstat-no" title="statement not covered" > byText('set to all').click();</span>
1164
- <span class="cstat-no" title="statement not covered" > await sleep(10);</span>
1165
- <span class="cstat-no" title="statement not covered" > expectVal('text-key' ,'2024-04-20T03:58:42.131Z' );</span>
1166
- <span class="cstat-no" title="statement not covered" > expectVal('date-key' ,'2024-04-20' );</span>
1167
- <span class="cstat-no" title="statement not covered" > expectVal('time-key' ,'' );</span>
1168
- <span class="cstat-no" title="statement not covered" > expectVal('local-date-time','' );</span>
1169
- <span class="cstat-no" title="statement not covered" > expectVal('number-key' ,'NaN' );</span>
1170
- <span class="cstat-no" title="statement not covered" > expectVal('json-key' ,'' );</span>
1171
- &nbsp;
1172
- const nowStr = <span class="cstat-no" title="statement not covered" >new Date(Date.now()).toISOString();</span>
1173
- <span class="cstat-no" title="statement not covered" > input.value=nowStr;</span>
1174
- <span class="cstat-no" title="statement not covered" > byText('set to all').click();</span>
1175
- <span class="cstat-no" title="statement not covered" > await sleep(10);</span>
1176
- <span class="cstat-no" title="statement not covered" > expectVal('text-key' ,nowStr );</span>
1177
- <span class="cstat-no" title="statement not covered" > expectVal('date-key' ,nowStr.substring(0,10) );</span>
1178
- <span class="cstat-no" title="statement not covered" > expectVal('time-key' ,'' );</span>
1179
- <span class="cstat-no" title="statement not covered" > expectVal('local-date-time','' );</span>
1180
- <span class="cstat-no" title="statement not covered" > expectVal('number-key' ,'NaN' );</span>
1181
- <span class="cstat-no" title="statement not covered" > expectVal('json-key' ,'' );</span>
1182
- &nbsp;
1183
- <span class="cstat-no" title="statement not covered" > input.value='23:25';</span>
1184
- <span class="cstat-no" title="statement not covered" > byText('set to all').click();</span>
1185
- <span class="cstat-no" title="statement not covered" > await sleep(10);</span>
1186
- <span class="cstat-no" title="statement not covered" > expectVal('text-key' ,'23:25' );</span>
1187
- <span class="cstat-no" title="statement not covered" > expectVal('date-key' ,'' );</span>
1188
- <span class="cstat-no" title="statement not covered" > expectVal('time-key' ,'23:25' );</span>
1189
- <span class="cstat-no" title="statement not covered" > expectVal('local-date-time','' );</span>
1190
- <span class="cstat-no" title="statement not covered" > expectVal('number-key' ,'NaN' );</span>
1191
- <span class="cstat-no" title="statement not covered" > expectVal('json-key' ,'' );</span>
1192
- &nbsp;
1193
- <span class="cstat-no" title="statement not covered" > input.value='1977-04-01T14:00:30';</span>
1194
- <span class="cstat-no" title="statement not covered" > byText('set to all').click();</span>
1195
- <span class="cstat-no" title="statement not covered" > await sleep(10);</span>
1196
- <span class="cstat-no" title="statement not covered" > expectVal('text-key' ,'1977-04-01T14:00:30' );</span>
1197
- <span class="cstat-no" title="statement not covered" > expectVal('date-key' ,'1977-04-01' );</span>
1198
- <span class="cstat-no" title="statement not covered" > expectVal('time-key' ,'' );</span>
1199
- <span class="cstat-no" title="statement not covered" > expectVal('local-date-time','1977-04-01T14:00:30' );</span>
1200
- <span class="cstat-no" title="statement not covered" > expectVal('number-key' ,'NaN' );</span>
1201
- <span class="cstat-no" title="statement not covered" > expectVal('json-key' ,'' );</span>
1202
- &nbsp;
1203
- <span class="cstat-no" title="statement not covered" > input.value='1.23456e+5';</span>
1204
- <span class="cstat-no" title="statement not covered" > byText('set to all').click();</span>
1205
- <span class="cstat-no" title="statement not covered" > await sleep(10);</span>
1206
- <span class="cstat-no" title="statement not covered" > expectVal('text-key' ,'1.23456e+5');</span>
1207
- <span class="cstat-no" title="statement not covered" > expectVal('date-key' ,'' );</span>
1208
- <span class="cstat-no" title="statement not covered" > expectVal('time-key' ,'' );</span>
1209
- <span class="cstat-no" title="statement not covered" > expectVal('local-date-time','' );</span>
1210
- <span class="cstat-no" title="statement not covered" > expectVal('number-key' ,'123456' );</span>
1211
- <span class="cstat-no" title="statement not covered" > expectVal('json-key' ,'123456' );</span>
1212
- &nbsp;
1213
- <span class="cstat-no" title="statement not covered" > input.value='0001';// as YYYY for year</span>
1214
- <span class="cstat-no" title="statement not covered" > byText('set to all').click();</span>
1215
- <span class="cstat-no" title="statement not covered" > await sleep(10);</span>
1216
- <span class="cstat-no" title="statement not covered" > expectVal('text-key' ,'0001');</span>
1217
- <span class="cstat-no" title="statement not covered" > expectVal('date-key' ,'0001-01-01');</span>
1218
- <span class="cstat-no" title="statement not covered" > expectVal('time-key' ,'' );</span>
1219
- <span class="cstat-no" title="statement not covered" > expectVal('local-date-time','' );</span>
1220
- <span class="cstat-no" title="statement not covered" > expectVal('number-key' ,'1' );</span>
1221
- <span class="cstat-no" title="statement not covered" > expectVal('json-key' ,'' );</span>
1222
- &nbsp;
1223
- <span class="cstat-no" title="statement not covered" > input.value='001'; // as 2001 year</span>
1224
- <span class="cstat-no" title="statement not covered" > byText('set to all').click();</span>
1225
- <span class="cstat-no" title="statement not covered" > await sleep(10);</span>
1226
- <span class="cstat-no" title="statement not covered" > expectVal('text-key' ,'001' );</span>
1227
- <span class="cstat-no" title="statement not covered" > expectVal('date-key' ,'2001-01-01');</span>
1228
- <span class="cstat-no" title="statement not covered" > expectVal('time-key' ,'' );</span>
1229
- <span class="cstat-no" title="statement not covered" > expectVal('local-date-time','' );</span>
1230
- <span class="cstat-no" title="statement not covered" > expectVal('number-key' ,'1' );</span>
1231
- <span class="cstat-no" title="statement not covered" > expectVal('json-key' ,'' );</span>
1232
- &nbsp;
1233
- <span class="cstat-no" title="statement not covered" > input.value='000'; // as 2001 year</span>
1234
- <span class="cstat-no" title="statement not covered" > byText('set to all').click();</span>
1235
- <span class="cstat-no" title="statement not covered" > await sleep(10);</span>
1236
- <span class="cstat-no" title="statement not covered" > expectVal('text-key' ,'000' );</span>
1237
- <span class="cstat-no" title="statement not covered" > expectVal('date-key' ,'2000-01-01');</span>
1238
- <span class="cstat-no" title="statement not covered" > expectVal('time-key' ,'' );</span>
1239
- <span class="cstat-no" title="statement not covered" > expectVal('local-date-time','' );</span>
1240
- <span class="cstat-no" title="statement not covered" > expectVal('number-key' ,'0' );</span>
1241
- <span class="cstat-no" title="statement not covered" > expectVal('json-key' ,'' );</span>
1242
- &nbsp;
1243
- <span class="cstat-no" title="statement not covered" > input.value='0'; // as 2000 year</span>
1244
- <span class="cstat-no" title="statement not covered" > byText('set to all').click();</span>
1245
- <span class="cstat-no" title="statement not covered" > await sleep(10);</span>
1246
- <span class="cstat-no" title="statement not covered" > expectVal('text-key' ,'0' );</span>
1247
- <span class="cstat-no" title="statement not covered" > expectVal('date-key' ,'2000-01-01');</span>
1248
- <span class="cstat-no" title="statement not covered" > expectVal('time-key' ,'' );</span>
1249
- <span class="cstat-no" title="statement not covered" > expectVal('local-date-time','' );</span>
1250
- <span class="cstat-no" title="statement not covered" > expectVal('number-key' ,'0' );</span>
1251
- <span class="cstat-no" title="statement not covered" > expectVal('json-key' ,'0' );</span>
1252
- &nbsp;
1253
- <span class="cstat-no" title="statement not covered" > input.value='"abc"';</span>
1254
- <span class="cstat-no" title="statement not covered" > byText('set to all').click();</span>
1255
- <span class="cstat-no" title="statement not covered" > await sleep(10);</span>
1256
- <span class="cstat-no" title="statement not covered" > expectVal('text-key' ,'"abc"' );</span>
1257
- <span class="cstat-no" title="statement not covered" > expectVal('date-key' ,'' );</span>
1258
- <span class="cstat-no" title="statement not covered" > expectVal('time-key' ,'' );</span>
1259
- <span class="cstat-no" title="statement not covered" > expectVal('local-date-time','' );</span>
1260
- <span class="cstat-no" title="statement not covered" > expectVal('number-key' ,'NaN' );</span>
1261
- <span class="cstat-no" title="statement not covered" > expectVal('json-key' ,'abc' );</span>
1262
- &nbsp;
1263
- <span class="cstat-no" title="statement not covered" > input.value='12.345';</span>
1264
- <span class="cstat-no" title="statement not covered" > byText('set to all').click();</span>
1265
- <span class="cstat-no" title="statement not covered" > await sleep(10);</span>
1266
- <span class="cstat-no" title="statement not covered" > expectVal('text-key' ,'12.345' );</span>
1267
- <span class="cstat-no" title="statement not covered" > expectVal('date-key' ,'' );</span>
1268
- <span class="cstat-no" title="statement not covered" > expectVal('time-key' ,'' );</span>
1269
- <span class="cstat-no" title="statement not covered" > expectVal('local-date-time','' );</span>
1270
- <span class="cstat-no" title="statement not covered" > expectVal('number-key' ,'12.345' );</span>
1271
- <span class="cstat-no" title="statement not covered" > expectVal('json-key' ,'12.345' );</span>
1272
- &nbsp;
1273
- <span class="cstat-no" title="statement not covered" > input.value='{"a":1,"b":"B"}';</span>
1274
- <span class="cstat-no" title="statement not covered" > byText('set to all').click();</span>
1275
- <span class="cstat-no" title="statement not covered" > await sleep(10);</span>
1276
- <span class="cstat-no" title="statement not covered" > expectVal('text-key' ,'{"a":1,"b":"B"}' );</span>
1277
- <span class="cstat-no" title="statement not covered" > expectVal('date-key' ,'' );</span>
1278
- <span class="cstat-no" title="statement not covered" > expectVal('time-key' ,'' );</span>
1279
- <span class="cstat-no" title="statement not covered" > expectVal('local-date-time','' );</span>
1280
- <span class="cstat-no" title="statement not covered" > expectVal('number-key' ,'NaN' );</span>
1281
- <span class="cstat-no" title="statement not covered" > expectVal('json-key' ,'a : 1b : B' );</span>
1282
- },
1283
- };
1284
- &nbsp;
1285
- //#region unit tests
1286
- /* istanbul ignore else -- @preserve */
1287
- if( 'test' === import.meta.env.MODE &amp;&amp;
1288
- !import.meta.url.includes('skiptest') )
1289
- {
1290
- const mod = await import('./local-storage.test.stories.ts?skiptest');
1291
- const { testStoryBook } = await import('./testStoryBook')
1292
- const { describe } = await import('vitest')
1293
- describe(meta.title, () =&gt; testStoryBook( mod, meta ) );
1294
- }
1295
- //#endregion
1296
- &nbsp;</pre></td></tr></table></pre>
1297
-
1298
- <div class='push'></div><!-- for sticky footer -->
1299
- </div><!-- /wrapper -->
1300
- <div class='footer quiet pad2 space-top1 center small'>
1301
- Code coverage generated by
1302
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1303
- at 2024-11-28T15:54:41.264Z
1304
- </div>
1305
- <script src="../../prettify.js"></script>
1306
- <script>
1307
- window.onload = function () {
1308
- prettyPrint();
1309
- };
1310
- </script>
1311
- <script src="../../sorter.js"></script>
1312
- <script src="../../block-navigation.js"></script>
1313
- </body>
1314
- </html>
1315
-