q2-tecton-elements 1.35.2 → 1.37.0

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 (352) hide show
  1. package/dist/cjs/charting-d02cba1f.js.map +1 -1
  2. package/dist/cjs/click-elsewhere_2.cjs.entry.js +1 -1
  3. package/dist/cjs/{index-f6545293.js → index-6f9f259c.js} +12 -9
  4. package/dist/cjs/index-6f9f259c.js.map +1 -0
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/q2-action-sheet.cjs.entry.js +2 -2
  7. package/dist/cjs/q2-action-sheet.cjs.entry.js.map +1 -1
  8. package/dist/cjs/q2-btn_2.cjs.entry.js +1 -1
  9. package/dist/cjs/q2-calendar.cjs.entry.js +46 -3
  10. package/dist/cjs/q2-calendar.cjs.entry.js.map +1 -1
  11. package/dist/cjs/q2-card.cjs.entry.js +1 -1
  12. package/dist/cjs/q2-carousel-pane.cjs.entry.js +1 -1
  13. package/dist/cjs/q2-carousel.cjs.entry.js +1 -1
  14. package/dist/cjs/q2-chart-area.cjs.entry.js +2 -2
  15. package/dist/cjs/q2-chart-area.cjs.entry.js.map +1 -1
  16. package/dist/cjs/q2-chart-bar.cjs.entry.js +2 -2
  17. package/dist/cjs/q2-chart-bar.cjs.entry.js.map +1 -1
  18. package/dist/cjs/q2-chart-donut.cjs.entry.js +12 -8
  19. package/dist/cjs/q2-chart-donut.cjs.entry.js.map +1 -1
  20. package/dist/cjs/q2-checkbox-group.cjs.entry.js +25 -6
  21. package/dist/cjs/q2-checkbox-group.cjs.entry.js.map +1 -1
  22. package/dist/cjs/q2-checkbox.cjs.entry.js +1 -1
  23. package/dist/cjs/q2-data-table.cjs.entry.js +2 -2
  24. package/dist/cjs/q2-data-table.cjs.entry.js.map +1 -1
  25. package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
  26. package/dist/cjs/q2-dropdown.cjs.entry.js +3 -3
  27. package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
  28. package/dist/cjs/q2-editable-field.cjs.entry.js +34 -6
  29. package/dist/cjs/q2-editable-field.cjs.entry.js.map +1 -1
  30. package/dist/cjs/q2-icon.cjs.entry.js +1 -1
  31. package/dist/cjs/q2-input.cjs.entry.js +17 -10
  32. package/dist/cjs/q2-input.cjs.entry.js.map +1 -1
  33. package/dist/cjs/q2-loc.cjs.entry.js +1 -1
  34. package/dist/cjs/q2-message.cjs.entry.js +14 -13
  35. package/dist/cjs/q2-message.cjs.entry.js.map +1 -1
  36. package/dist/cjs/q2-month-picker.cjs.entry.js +1 -1
  37. package/dist/cjs/q2-optgroup_2.cjs.entry.js +1 -1
  38. package/dist/cjs/q2-option-list.cjs.entry.js +1 -1
  39. package/dist/cjs/q2-pagination.cjs.entry.js +37 -11
  40. package/dist/cjs/q2-pagination.cjs.entry.js.map +1 -1
  41. package/dist/cjs/q2-pill.cjs.entry.js +3 -3
  42. package/dist/cjs/q2-pill.cjs.entry.js.map +1 -1
  43. package/dist/cjs/q2-radio-group.cjs.entry.js +9 -1
  44. package/dist/cjs/q2-radio-group.cjs.entry.js.map +1 -1
  45. package/dist/cjs/q2-radio.cjs.entry.js +12 -3
  46. package/dist/cjs/q2-radio.cjs.entry.js.map +1 -1
  47. package/dist/cjs/q2-section.cjs.entry.js +1 -1
  48. package/dist/cjs/q2-select.cjs.entry.js +54 -5
  49. package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
  50. package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
  51. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +1 -1
  52. package/dist/cjs/q2-stepper.cjs.entry.js +1 -1
  53. package/dist/cjs/q2-tab-container.cjs.entry.js +2 -2
  54. package/dist/cjs/q2-tab-container.cjs.entry.js.map +1 -1
  55. package/dist/cjs/q2-tag.cjs.entry.js +1 -1
  56. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  57. package/dist/cjs/q2-textarea.cjs.entry.js +13 -1
  58. package/dist/cjs/q2-textarea.cjs.entry.js.map +1 -1
  59. package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
  60. package/dist/collection/collection-manifest.json +1 -1
  61. package/dist/collection/components/q2-action-sheet/styles.css +0 -8
  62. package/dist/collection/components/q2-calendar/index.js +120 -2
  63. package/dist/collection/components/q2-calendar/index.js.map +1 -1
  64. package/dist/collection/components/q2-chart-area/index.js +2 -2
  65. package/dist/collection/components/q2-chart-area/index.js.map +1 -1
  66. package/dist/collection/components/q2-chart-bar/index.js +2 -2
  67. package/dist/collection/components/q2-chart-bar/index.js.map +1 -1
  68. package/dist/collection/components/q2-chart-donut/index.js +13 -9
  69. package/dist/collection/components/q2-chart-donut/index.js.map +1 -1
  70. package/dist/collection/components/q2-checkbox-group/index.js +45 -5
  71. package/dist/collection/components/q2-checkbox-group/index.js.map +1 -1
  72. package/dist/collection/components/q2-data-table/index.js +6 -6
  73. package/dist/collection/components/q2-data-table/styles.css +37 -36
  74. package/dist/collection/components/q2-dropdown/index.js +1 -1
  75. package/dist/collection/components/q2-dropdown/index.js.map +1 -1
  76. package/dist/collection/components/q2-dropdown/styles.css +4 -0
  77. package/dist/collection/components/q2-editable-field/index.js +96 -6
  78. package/dist/collection/components/q2-editable-field/index.js.map +1 -1
  79. package/dist/collection/components/q2-input/index.js +49 -11
  80. package/dist/collection/components/q2-input/index.js.map +1 -1
  81. package/dist/collection/components/q2-message/index.js +14 -13
  82. package/dist/collection/components/q2-message/index.js.map +1 -1
  83. package/dist/collection/components/q2-option-list/index.js +2 -2
  84. package/dist/collection/components/q2-pagination/index.js +60 -9
  85. package/dist/collection/components/q2-pagination/index.js.map +1 -1
  86. package/dist/collection/components/q2-pagination/styles.css +1 -0
  87. package/dist/collection/components/q2-pill/index.js +2 -2
  88. package/dist/collection/components/q2-pill/index.js.map +1 -1
  89. package/dist/collection/components/q2-radio/index.js +29 -3
  90. package/dist/collection/components/q2-radio/index.js.map +1 -1
  91. package/dist/collection/components/q2-radio-group/index.js +27 -0
  92. package/dist/collection/components/q2-radio-group/index.js.map +1 -1
  93. package/dist/collection/components/q2-select/index.js +127 -5
  94. package/dist/collection/components/q2-select/index.js.map +1 -1
  95. package/dist/collection/components/q2-stepper-pane/index.js +2 -2
  96. package/dist/collection/components/q2-tab-container/index.js +1 -1
  97. package/dist/collection/components/q2-tab-container/index.js.map +1 -1
  98. package/dist/collection/components/q2-textarea/index.js +37 -0
  99. package/dist/collection/components/q2-textarea/index.js.map +1 -1
  100. package/dist/collection/utils/charting.js.map +1 -1
  101. package/dist/collection/utils/index.js +8 -6
  102. package/dist/collection/utils/index.js.map +1 -1
  103. package/dist/components/charting.js.map +1 -1
  104. package/dist/components/index11.js +14 -13
  105. package/dist/components/index11.js.map +1 -1
  106. package/dist/components/index16.js +11 -8
  107. package/dist/components/index16.js.map +1 -1
  108. package/dist/components/index9.js +19 -10
  109. package/dist/components/index9.js.map +1 -1
  110. package/dist/components/q2-action-sheet.js +1 -1
  111. package/dist/components/q2-action-sheet.js.map +1 -1
  112. package/dist/components/q2-calendar.js +51 -4
  113. package/dist/components/q2-calendar.js.map +1 -1
  114. package/dist/components/q2-chart-area.js +1 -1
  115. package/dist/components/q2-chart-area.js.map +1 -1
  116. package/dist/components/q2-chart-bar.js +1 -1
  117. package/dist/components/q2-chart-bar.js.map +1 -1
  118. package/dist/components/q2-chart-donut.js +11 -7
  119. package/dist/components/q2-chart-donut.js.map +1 -1
  120. package/dist/components/q2-checkbox-group.js +26 -6
  121. package/dist/components/q2-checkbox-group.js.map +1 -1
  122. package/dist/components/q2-data-table.js +1 -1
  123. package/dist/components/q2-data-table.js.map +1 -1
  124. package/dist/components/q2-dropdown.js +2 -2
  125. package/dist/components/q2-dropdown.js.map +1 -1
  126. package/dist/components/q2-editable-field.js +39 -7
  127. package/dist/components/q2-editable-field.js.map +1 -1
  128. package/dist/components/q2-pagination.js +37 -10
  129. package/dist/components/q2-pagination.js.map +1 -1
  130. package/dist/components/q2-pill.js +2 -2
  131. package/dist/components/q2-pill.js.map +1 -1
  132. package/dist/components/q2-radio-group.js +10 -1
  133. package/dist/components/q2-radio-group.js.map +1 -1
  134. package/dist/components/q2-radio.js +13 -3
  135. package/dist/components/q2-radio.js.map +1 -1
  136. package/dist/components/q2-select.js +59 -6
  137. package/dist/components/q2-select.js.map +1 -1
  138. package/dist/components/q2-tab-container.js +1 -1
  139. package/dist/components/q2-tab-container.js.map +1 -1
  140. package/dist/components/q2-textarea.js +15 -2
  141. package/dist/components/q2-textarea.js.map +1 -1
  142. package/dist/docs.json +241 -9
  143. package/dist/esm/charting-2a73ba8e.js.map +1 -1
  144. package/dist/esm/click-elsewhere_2.entry.js +1 -1
  145. package/dist/esm/{index-35ff2881.js → index-74a659a5.js} +12 -9
  146. package/dist/esm/index-74a659a5.js.map +1 -0
  147. package/dist/esm/loader.js +1 -1
  148. package/dist/esm/q2-action-sheet.entry.js +2 -2
  149. package/dist/esm/q2-action-sheet.entry.js.map +1 -1
  150. package/dist/esm/q2-btn_2.entry.js +1 -1
  151. package/dist/esm/q2-calendar.entry.js +46 -3
  152. package/dist/esm/q2-calendar.entry.js.map +1 -1
  153. package/dist/esm/q2-card.entry.js +1 -1
  154. package/dist/esm/q2-carousel-pane.entry.js +1 -1
  155. package/dist/esm/q2-carousel.entry.js +1 -1
  156. package/dist/esm/q2-chart-area.entry.js +2 -2
  157. package/dist/esm/q2-chart-area.entry.js.map +1 -1
  158. package/dist/esm/q2-chart-bar.entry.js +2 -2
  159. package/dist/esm/q2-chart-bar.entry.js.map +1 -1
  160. package/dist/esm/q2-chart-donut.entry.js +12 -8
  161. package/dist/esm/q2-chart-donut.entry.js.map +1 -1
  162. package/dist/esm/q2-checkbox-group.entry.js +25 -6
  163. package/dist/esm/q2-checkbox-group.entry.js.map +1 -1
  164. package/dist/esm/q2-checkbox.entry.js +1 -1
  165. package/dist/esm/q2-data-table.entry.js +2 -2
  166. package/dist/esm/q2-data-table.entry.js.map +1 -1
  167. package/dist/esm/q2-dropdown-item.entry.js +1 -1
  168. package/dist/esm/q2-dropdown.entry.js +3 -3
  169. package/dist/esm/q2-dropdown.entry.js.map +1 -1
  170. package/dist/esm/q2-editable-field.entry.js +34 -6
  171. package/dist/esm/q2-editable-field.entry.js.map +1 -1
  172. package/dist/esm/q2-icon.entry.js +1 -1
  173. package/dist/esm/q2-input.entry.js +17 -10
  174. package/dist/esm/q2-input.entry.js.map +1 -1
  175. package/dist/esm/q2-loc.entry.js +1 -1
  176. package/dist/esm/q2-message.entry.js +14 -13
  177. package/dist/esm/q2-message.entry.js.map +1 -1
  178. package/dist/esm/q2-month-picker.entry.js +1 -1
  179. package/dist/esm/q2-optgroup_2.entry.js +1 -1
  180. package/dist/esm/q2-option-list.entry.js +1 -1
  181. package/dist/esm/q2-pagination.entry.js +37 -11
  182. package/dist/esm/q2-pagination.entry.js.map +1 -1
  183. package/dist/esm/q2-pill.entry.js +3 -3
  184. package/dist/esm/q2-pill.entry.js.map +1 -1
  185. package/dist/esm/q2-radio-group.entry.js +9 -1
  186. package/dist/esm/q2-radio-group.entry.js.map +1 -1
  187. package/dist/esm/q2-radio.entry.js +12 -3
  188. package/dist/esm/q2-radio.entry.js.map +1 -1
  189. package/dist/esm/q2-section.entry.js +1 -1
  190. package/dist/esm/q2-select.entry.js +54 -5
  191. package/dist/esm/q2-select.entry.js.map +1 -1
  192. package/dist/esm/q2-stepper-pane.entry.js +1 -1
  193. package/dist/esm/q2-stepper-vertical.entry.js +1 -1
  194. package/dist/esm/q2-stepper.entry.js +1 -1
  195. package/dist/esm/q2-tab-container.entry.js +2 -2
  196. package/dist/esm/q2-tab-container.entry.js.map +1 -1
  197. package/dist/esm/q2-tag.entry.js +1 -1
  198. package/dist/esm/q2-tecton-elements.js +1 -1
  199. package/dist/esm/q2-textarea.entry.js +13 -1
  200. package/dist/esm/q2-textarea.entry.js.map +1 -1
  201. package/dist/esm/q2-tooltip.entry.js +1 -1
  202. package/dist/q2-tecton-elements/{p-2b91b34e.entry.js → p-077107c1.entry.js} +2 -2
  203. package/dist/q2-tecton-elements/p-09d4b3d3.entry.js +2 -0
  204. package/dist/q2-tecton-elements/p-09d4b3d3.entry.js.map +1 -0
  205. package/dist/q2-tecton-elements/{p-b73e7870.entry.js → p-0d4aec6e.entry.js} +2 -2
  206. package/dist/q2-tecton-elements/p-1c993698.entry.js +2 -0
  207. package/dist/q2-tecton-elements/p-1c993698.entry.js.map +1 -0
  208. package/dist/q2-tecton-elements/{p-0c1b74e9.entry.js → p-252889b7.entry.js} +2 -2
  209. package/dist/q2-tecton-elements/p-252889b7.entry.js.map +1 -0
  210. package/dist/q2-tecton-elements/{p-d4da72f0.entry.js → p-25bd1b18.entry.js} +2 -2
  211. package/dist/q2-tecton-elements/p-25bd1b18.entry.js.map +1 -0
  212. package/dist/q2-tecton-elements/p-2a975246.entry.js +2 -0
  213. package/dist/q2-tecton-elements/p-2a975246.entry.js.map +1 -0
  214. package/dist/q2-tecton-elements/{p-55deaceb.entry.js → p-30facf35.entry.js} +2 -2
  215. package/dist/q2-tecton-elements/p-3798ad96.entry.js +2 -0
  216. package/dist/q2-tecton-elements/p-3798ad96.entry.js.map +1 -0
  217. package/dist/q2-tecton-elements/p-458b1987.js.map +1 -1
  218. package/dist/q2-tecton-elements/{p-2325975a.entry.js → p-46287c02.entry.js} +2 -2
  219. package/dist/q2-tecton-elements/{p-2bf5a3bc.entry.js → p-47c60d4a.entry.js} +2 -2
  220. package/dist/q2-tecton-elements/{p-6cc730db.entry.js → p-4abbd0b1.entry.js} +2 -2
  221. package/dist/q2-tecton-elements/{p-dafdb018.entry.js → p-570c1d3d.entry.js} +2 -2
  222. package/dist/q2-tecton-elements/p-570c1d3d.entry.js.map +1 -0
  223. package/dist/q2-tecton-elements/{p-4fb81d03.entry.js → p-578e3f98.entry.js} +2 -2
  224. package/dist/q2-tecton-elements/p-58cdb9c7.entry.js +2 -0
  225. package/dist/q2-tecton-elements/p-58cdb9c7.entry.js.map +1 -0
  226. package/dist/q2-tecton-elements/p-597f8656.entry.js +2 -0
  227. package/dist/q2-tecton-elements/p-597f8656.entry.js.map +1 -0
  228. package/dist/q2-tecton-elements/{p-ce27270b.entry.js → p-59d34a17.entry.js} +2 -2
  229. package/dist/q2-tecton-elements/{p-3c0d391b.entry.js → p-5bc4d94c.entry.js} +2 -2
  230. package/dist/q2-tecton-elements/{p-70a59bf1.entry.js → p-67f33354.entry.js} +2 -2
  231. package/dist/q2-tecton-elements/p-67f33354.entry.js.map +1 -0
  232. package/dist/q2-tecton-elements/{p-c9f32e51.entry.js → p-6cacc879.entry.js} +2 -2
  233. package/dist/q2-tecton-elements/{p-f637136f.entry.js → p-7366d36d.entry.js} +2 -2
  234. package/dist/q2-tecton-elements/{p-e5a8f7ff.entry.js → p-75fd6df5.entry.js} +2 -2
  235. package/dist/q2-tecton-elements/{p-e5a8f7ff.entry.js.map → p-75fd6df5.entry.js.map} +1 -1
  236. package/dist/q2-tecton-elements/{p-68371e6d.entry.js → p-8e7b762a.entry.js} +2 -2
  237. package/dist/q2-tecton-elements/{p-ece07c0d.entry.js → p-9a28b93a.entry.js} +2 -2
  238. package/dist/q2-tecton-elements/{p-d3827468.entry.js → p-9c9a2550.entry.js} +2 -2
  239. package/dist/q2-tecton-elements/p-9d743327.entry.js +2 -0
  240. package/dist/q2-tecton-elements/p-9d743327.entry.js.map +1 -0
  241. package/dist/q2-tecton-elements/{p-8c6f8d06.entry.js → p-9ef2829e.entry.js} +2 -2
  242. package/dist/q2-tecton-elements/{p-8c6f8d06.entry.js.map → p-9ef2829e.entry.js.map} +1 -1
  243. package/dist/q2-tecton-elements/{p-3fd4f83d.entry.js → p-a52371cf.entry.js} +2 -2
  244. package/dist/q2-tecton-elements/{p-f11326c2.entry.js → p-a53e9f1e.entry.js} +2 -2
  245. package/dist/q2-tecton-elements/{p-586c8654.entry.js → p-a60f82c0.entry.js} +2 -2
  246. package/dist/q2-tecton-elements/p-a60f82c0.entry.js.map +1 -0
  247. package/dist/q2-tecton-elements/{p-f6be73b7.entry.js → p-ac82ea35.entry.js} +2 -2
  248. package/dist/q2-tecton-elements/{p-f6be73b7.entry.js.map → p-ac82ea35.entry.js.map} +1 -1
  249. package/dist/q2-tecton-elements/{p-8e8a40ca.entry.js → p-bfd69d42.entry.js} +2 -2
  250. package/dist/q2-tecton-elements/{p-82bda2ff.entry.js → p-db6921fb.entry.js} +2 -2
  251. package/dist/q2-tecton-elements/{p-cfbd2cb1.entry.js → p-e45856f7.entry.js} +2 -2
  252. package/dist/q2-tecton-elements/p-e45856f7.entry.js.map +1 -0
  253. package/dist/q2-tecton-elements/{p-654987bf.entry.js → p-e8858d0d.entry.js} +2 -2
  254. package/dist/q2-tecton-elements/p-e8858d0d.entry.js.map +1 -0
  255. package/dist/q2-tecton-elements/{p-99ab3236.js → p-ef856249.js} +2 -2
  256. package/dist/q2-tecton-elements/p-ef856249.js.map +1 -0
  257. package/dist/q2-tecton-elements/{p-073df9e2.entry.js → p-efbe6c17.entry.js} +2 -2
  258. package/dist/q2-tecton-elements/p-efbe6c17.entry.js.map +1 -0
  259. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  260. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
  261. package/dist/test/elements/q2-calendar-test.e2e.js +177 -0
  262. package/dist/test/elements/q2-calendar-test.e2e.js.map +1 -1
  263. package/dist/test/elements/q2-chart-area-test.e2e.js +30 -1
  264. package/dist/test/elements/q2-chart-area-test.e2e.js.map +1 -1
  265. package/dist/test/elements/q2-chart-bar-test.e2e.js +30 -1
  266. package/dist/test/elements/q2-chart-bar-test.e2e.js.map +1 -1
  267. package/dist/test/elements/q2-chart-donut-test.e2e.js +21 -18
  268. package/dist/test/elements/q2-chart-donut-test.e2e.js.map +1 -1
  269. package/dist/test/elements/q2-checkbox-group-test.e2e.js +138 -18
  270. package/dist/test/elements/q2-checkbox-group-test.e2e.js.map +1 -1
  271. package/dist/test/elements/q2-checkbox-test.e2e.js +143 -115
  272. package/dist/test/elements/q2-checkbox-test.e2e.js.map +1 -1
  273. package/dist/test/elements/q2-dropdown-test.e2e.js +28 -0
  274. package/dist/test/elements/q2-dropdown-test.e2e.js.map +1 -1
  275. package/dist/test/elements/q2-editable-field-test.e2e.js +149 -28
  276. package/dist/test/elements/q2-editable-field-test.e2e.js.map +1 -1
  277. package/dist/test/elements/q2-input-test.e2e.js +150 -9
  278. package/dist/test/elements/q2-input-test.e2e.js.map +1 -1
  279. package/dist/test/elements/q2-message-test.e2e.js +38 -1
  280. package/dist/test/elements/q2-message-test.e2e.js.map +1 -1
  281. package/dist/test/elements/q2-pill-test.e2e.js +37 -1
  282. package/dist/test/elements/q2-pill-test.e2e.js.map +1 -1
  283. package/dist/test/elements/q2-radio-group-test.e2e.js +148 -186
  284. package/dist/test/elements/q2-radio-group-test.e2e.js.map +1 -1
  285. package/dist/test/elements/q2-radio-test.e2e.js +100 -15
  286. package/dist/test/elements/q2-radio-test.e2e.js.map +1 -1
  287. package/dist/test/elements/q2-select-test.e2e.js +203 -0
  288. package/dist/test/elements/q2-select-test.e2e.js.map +1 -1
  289. package/dist/test/elements/q2-tag-test.e2e.js +5 -0
  290. package/dist/test/elements/q2-tag-test.e2e.js.map +1 -1
  291. package/dist/test/elements/q2-textarea-test.e2e.js +33 -1
  292. package/dist/test/elements/q2-textarea-test.e2e.js.map +1 -1
  293. package/dist/types/components/q2-calendar/index.d.ts +8 -1
  294. package/dist/types/components/q2-chart-area/index.d.ts +1 -1
  295. package/dist/types/components/q2-chart-bar/index.d.ts +1 -1
  296. package/dist/types/components/q2-chart-donut/index.d.ts +2 -5
  297. package/dist/types/components/q2-checkbox-group/index.d.ts +3 -0
  298. package/dist/types/components/q2-editable-field/index.d.ts +10 -2
  299. package/dist/types/components/q2-input/index.d.ts +2 -0
  300. package/dist/types/components/q2-message/index.d.ts +1 -0
  301. package/dist/types/components/q2-pagination/index.d.ts +4 -0
  302. package/dist/types/components/q2-radio/index.d.ts +1 -0
  303. package/dist/types/components/q2-radio-group/index.d.ts +1 -0
  304. package/dist/types/components/q2-select/index.d.ts +9 -1
  305. package/dist/types/components/q2-textarea/index.d.ts +2 -0
  306. package/dist/types/components.d.ts +23 -4
  307. package/dist/types/utils/charting.d.ts +0 -6
  308. package/package.json +3 -3
  309. package/dist/cjs/index-f6545293.js.map +0 -1
  310. package/dist/esm/index-35ff2881.js.map +0 -1
  311. package/dist/q2-tecton-elements/p-073df9e2.entry.js.map +0 -1
  312. package/dist/q2-tecton-elements/p-0c1b74e9.entry.js.map +0 -1
  313. package/dist/q2-tecton-elements/p-215d5ab4.entry.js +0 -2
  314. package/dist/q2-tecton-elements/p-215d5ab4.entry.js.map +0 -1
  315. package/dist/q2-tecton-elements/p-2987498c.entry.js +0 -2
  316. package/dist/q2-tecton-elements/p-2987498c.entry.js.map +0 -1
  317. package/dist/q2-tecton-elements/p-57838409.entry.js +0 -2
  318. package/dist/q2-tecton-elements/p-57838409.entry.js.map +0 -1
  319. package/dist/q2-tecton-elements/p-586c8654.entry.js.map +0 -1
  320. package/dist/q2-tecton-elements/p-654987bf.entry.js.map +0 -1
  321. package/dist/q2-tecton-elements/p-70a59bf1.entry.js.map +0 -1
  322. package/dist/q2-tecton-elements/p-7a6e33d4.entry.js +0 -2
  323. package/dist/q2-tecton-elements/p-7a6e33d4.entry.js.map +0 -1
  324. package/dist/q2-tecton-elements/p-99ab3236.js.map +0 -1
  325. package/dist/q2-tecton-elements/p-ae2fa966.entry.js +0 -2
  326. package/dist/q2-tecton-elements/p-ae2fa966.entry.js.map +0 -1
  327. package/dist/q2-tecton-elements/p-b8d1c16f.entry.js +0 -2
  328. package/dist/q2-tecton-elements/p-b8d1c16f.entry.js.map +0 -1
  329. package/dist/q2-tecton-elements/p-cfbd2cb1.entry.js.map +0 -1
  330. package/dist/q2-tecton-elements/p-d4da72f0.entry.js.map +0 -1
  331. package/dist/q2-tecton-elements/p-dafdb018.entry.js.map +0 -1
  332. package/dist/q2-tecton-elements/p-deb1e1c8.entry.js +0 -2
  333. package/dist/q2-tecton-elements/p-deb1e1c8.entry.js.map +0 -1
  334. /package/dist/q2-tecton-elements/{p-2b91b34e.entry.js.map → p-077107c1.entry.js.map} +0 -0
  335. /package/dist/q2-tecton-elements/{p-b73e7870.entry.js.map → p-0d4aec6e.entry.js.map} +0 -0
  336. /package/dist/q2-tecton-elements/{p-55deaceb.entry.js.map → p-30facf35.entry.js.map} +0 -0
  337. /package/dist/q2-tecton-elements/{p-2325975a.entry.js.map → p-46287c02.entry.js.map} +0 -0
  338. /package/dist/q2-tecton-elements/{p-2bf5a3bc.entry.js.map → p-47c60d4a.entry.js.map} +0 -0
  339. /package/dist/q2-tecton-elements/{p-6cc730db.entry.js.map → p-4abbd0b1.entry.js.map} +0 -0
  340. /package/dist/q2-tecton-elements/{p-4fb81d03.entry.js.map → p-578e3f98.entry.js.map} +0 -0
  341. /package/dist/q2-tecton-elements/{p-ce27270b.entry.js.map → p-59d34a17.entry.js.map} +0 -0
  342. /package/dist/q2-tecton-elements/{p-3c0d391b.entry.js.map → p-5bc4d94c.entry.js.map} +0 -0
  343. /package/dist/q2-tecton-elements/{p-c9f32e51.entry.js.map → p-6cacc879.entry.js.map} +0 -0
  344. /package/dist/q2-tecton-elements/{p-f637136f.entry.js.map → p-7366d36d.entry.js.map} +0 -0
  345. /package/dist/q2-tecton-elements/{p-68371e6d.entry.js.map → p-8e7b762a.entry.js.map} +0 -0
  346. /package/dist/q2-tecton-elements/{p-ece07c0d.entry.js.map → p-9a28b93a.entry.js.map} +0 -0
  347. /package/dist/q2-tecton-elements/{p-d3827468.entry.js.map → p-9c9a2550.entry.js.map} +0 -0
  348. /package/dist/q2-tecton-elements/{p-3fd4f83d.entry.js.map → p-a52371cf.entry.js.map} +0 -0
  349. /package/dist/q2-tecton-elements/{p-f11326c2.entry.js.map → p-a53e9f1e.entry.js.map} +0 -0
  350. /package/dist/q2-tecton-elements/{p-8e8a40ca.entry.js.map → p-bfd69d42.entry.js.map} +0 -0
  351. /package/dist/q2-tecton-elements/{p-82bda2ff.entry.js.map → p-db6921fb.entry.js.map} +0 -0
  352. /package/dist/types/workspace/workspace/{tecton-production_release_1.35.x → _Gitlab_tecton-production_master}/packages/q2-tecton-elements/.stencil/test/helpers.d.ts +0 -0
@@ -1,4 +1,4 @@
1
- import { setup } from '../helpers';
1
+ import { setup, setTestStrings } from '../helpers';
2
2
  describe('q2-chart-area', () => {
3
3
  let page;
4
4
  let chart;
@@ -34,5 +34,34 @@ describe('q2-chart-area', () => {
34
34
  expect(ariaLabelText).toContain('the data for Fri is 5, 122');
35
35
  expect(ariaLabelText).toContain('the data for Sat is 6, 215');
36
36
  });
37
+ describe('chartName', () => {
38
+ describe('when provided', () => {
39
+ it('renders with provided chartName', async () => {
40
+ page = await setup({ html: `` });
41
+ await page.setContent('<q2-chart-area></q2-chart-area>');
42
+ chart = await page.find('q2-chart-area');
43
+ chart.setProperty('chartName', 'Weekly spending');
44
+ await page.waitForChanges();
45
+ expect(await chart.getProperty('chartName')).toEqualText('Weekly spending');
46
+ });
47
+ });
48
+ describe('when provided a custom name translation', () => {
49
+ it('renders the translated value', async () => {
50
+ page = await setup({
51
+ html: ``,
52
+ });
53
+ await setTestStrings(page, {
54
+ 'q2ChartArea.customName': 'Custom Chart Name',
55
+ });
56
+ page.setContent(`<q2-chart-area chart-name="q2ChartArea.customName"></q2-chart-area>`);
57
+ await page.waitForChanges();
58
+ chart = await page.find('q2-chart-area');
59
+ const chartContainer = await page.find('q2-chart-area >>> .chart-container');
60
+ const ariaLabelText = chartContainer.getAttribute('aria-label');
61
+ expect(await chart.getProperty('chartName')).toEqualText('q2ChartArea.customName');
62
+ expect(ariaLabelText).toContain('This is a chart about "Custom Chart Name" with type Line chart');
63
+ });
64
+ });
65
+ });
37
66
  });
38
67
  //# sourceMappingURL=q2-chart-area-test.e2e.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"q2-chart-area-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-chart-area-test.e2e.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;EAC3B,IAAI,IAAa,CAAC;EAClB,IAAI,KAAiB,CAAC;EAEtB,UAAU,CAAC,KAAK,IAAI,EAAE;IAClB,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACjC,MAAM,IAAI,CAAC,UAAU,CAAC,iCAAiC,CAAC,CAAC;IACzD,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACzC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;IAClD,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE;MACtB,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE;MACxC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE;MACxC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE;MACzC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE;MAC3C,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE;MAC3C,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE;MACzC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE;KAC9C,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;EAChC,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;IACtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;EAChC,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;IAC5D,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IAC7E,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IACtE,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,8DAA8D,CAAC,CAAC;IAChG,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;IAC7D,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;IAC7D,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;IAC7D,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;IAC7D,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;IAC9D,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;IAC9D,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;EAClE,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["import { E2EElement, E2EPage } from '@stencil/core/testing';\nimport { setup } from '../helpers';\n\ndescribe('q2-chart-area', () => {\n let page: E2EPage;\n let chart: E2EElement;\n\n beforeEach(async () => {\n page = await setup({ html: '' });\n await page.setContent('<q2-chart-area></q2-chart-area>');\n chart = await page.find('q2-chart-area');\n chart.setProperty('chartName', 'Weekly spending');\n chart.setProperty('data', [\n { value: 45, name: 'Sun', id: 'sunday' },\n { value: 36, name: 'Mon', id: 'monday' },\n { value: 62, name: 'Tue', id: 'tuesday' },\n { value: 51, name: 'Wed', id: 'wednesday' },\n { value: 104, name: 'Thu', id: 'thursday' },\n { value: 122, name: 'Fri', id: 'friday' },\n { value: 215, name: 'Sat', id: 'saturday' },\n ]);\n await page.waitForChanges();\n });\n\n it('renders a canvas element', async () => {\n const canvas = await page.find('q2-chart-area >>> canvas');\n expect(canvas).toBeTruthy();\n });\n\n it('renders a descriptive aria-label for the chart', async () => {\n const chartContainer = await page.find('q2-chart-area >>> .chart-container');\n const ariaLabelText = await chartContainer.getAttribute('aria-label');\n expect(ariaLabelText).toContain('This is a chart about \"Weekly spending\" with type Line chart');\n expect(ariaLabelText).toContain('the data for Sun is 0, 45');\n expect(ariaLabelText).toContain('the data for Mon is 1, 36');\n expect(ariaLabelText).toContain('the data for Tue is 2, 62');\n expect(ariaLabelText).toContain('the data for Wed is 3, 51');\n expect(ariaLabelText).toContain('the data for Thu is 4, 104');\n expect(ariaLabelText).toContain('the data for Fri is 5, 122');\n expect(ariaLabelText).toContain('the data for Sat is 6, 215');\n });\n});\n"]}
1
+ {"version":3,"file":"q2-chart-area-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-chart-area-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage } from '@stencil/core/testing';\nimport { setup, setTestStrings } from '../helpers';\n\ndescribe('q2-chart-area', () => {\n let page: E2EPage;\n let chart: E2EElement;\n\n beforeEach(async () => {\n page = await setup({ html: '' });\n await page.setContent('<q2-chart-area></q2-chart-area>');\n chart = await page.find('q2-chart-area');\n chart.setProperty('chartName', 'Weekly spending');\n chart.setProperty('data', [\n { value: 45, name: 'Sun', id: 'sunday' },\n { value: 36, name: 'Mon', id: 'monday' },\n { value: 62, name: 'Tue', id: 'tuesday' },\n { value: 51, name: 'Wed', id: 'wednesday' },\n { value: 104, name: 'Thu', id: 'thursday' },\n { value: 122, name: 'Fri', id: 'friday' },\n { value: 215, name: 'Sat', id: 'saturday' },\n ]);\n await page.waitForChanges();\n });\n\n it('renders a canvas element', async () => {\n const canvas = await page.find('q2-chart-area >>> canvas');\n expect(canvas).toBeTruthy();\n });\n\n it('renders a descriptive aria-label for the chart', async () => {\n const chartContainer = await page.find('q2-chart-area >>> .chart-container');\n const ariaLabelText = await chartContainer.getAttribute('aria-label');\n expect(ariaLabelText).toContain('This is a chart about \"Weekly spending\" with type Line chart');\n expect(ariaLabelText).toContain('the data for Sun is 0, 45');\n expect(ariaLabelText).toContain('the data for Mon is 1, 36');\n expect(ariaLabelText).toContain('the data for Tue is 2, 62');\n expect(ariaLabelText).toContain('the data for Wed is 3, 51');\n expect(ariaLabelText).toContain('the data for Thu is 4, 104');\n expect(ariaLabelText).toContain('the data for Fri is 5, 122');\n expect(ariaLabelText).toContain('the data for Sat is 6, 215');\n });\n describe('chartName', () => {\n describe('when provided', () => {\n it('renders with provided chartName', async () => {\n page = await setup({ html: `` });\n await page.setContent('<q2-chart-area></q2-chart-area>');\n chart = await page.find('q2-chart-area');\n chart.setProperty('chartName', 'Weekly spending');\n await page.waitForChanges();\n\n expect(await chart.getProperty('chartName')).toEqualText('Weekly spending');\n });\n });\n describe('when provided a custom name translation', () => {\n it('renders the translated value', async () => {\n page = await setup({\n html: ``,\n });\n await setTestStrings(page, {\n 'q2ChartArea.customName': 'Custom Chart Name',\n });\n page.setContent(`<q2-chart-area chart-name=\"q2ChartArea.customName\"></q2-chart-area>`);\n await page.waitForChanges();\n chart = await page.find('q2-chart-area');\n const chartContainer = await page.find('q2-chart-area >>> .chart-container');\n const ariaLabelText = chartContainer.getAttribute('aria-label');\n\n expect(await chart.getProperty('chartName')).toEqualText('q2ChartArea.customName');\n expect(ariaLabelText).toContain('This is a chart about \"Custom Chart Name\" with type Line chart');\n });\n });\n });\n});\n"]}
@@ -1,4 +1,4 @@
1
- import { setup } from '../helpers';
1
+ import { setup, setTestStrings } from '../helpers';
2
2
  describe('q2-chart-bar', () => {
3
3
  let page;
4
4
  let chart;
@@ -30,5 +30,34 @@ describe('q2-chart-bar', () => {
30
30
  expect(ariaLabelText).toContain('the data for June is 3, 465');
31
31
  expect(ariaLabelText).toContain('the data for July is 4, 927');
32
32
  });
33
+ describe('chartName', () => {
34
+ describe('when provided', () => {
35
+ it('renders with provided chartName', async () => {
36
+ page = await setup({ html: `` });
37
+ await page.setContent('<q2-chart-bar></q2-chart-bar>');
38
+ chart = await page.find('q2-chart-bar');
39
+ chart.setProperty('chartName', 'Month-to-month spending');
40
+ await page.waitForChanges();
41
+ expect(await chart.getProperty('chartName')).toEqualText('Month-to-month spending');
42
+ });
43
+ });
44
+ describe('when provided a custom name translation', () => {
45
+ it('renders the translated value', async () => {
46
+ page = await setup({
47
+ html: ``,
48
+ });
49
+ await setTestStrings(page, {
50
+ 'q2ChartBar.customName': 'Custom Chart Name',
51
+ });
52
+ page.setContent(`<q2-chart-bar chart-name="q2ChartBar.customName"></q2-chart-bar>`);
53
+ await page.waitForChanges();
54
+ chart = await page.find('q2-chart-bar');
55
+ const chartContainer = await page.find('q2-chart-bar >>> .chart-container');
56
+ const ariaLabelText = chartContainer.getAttribute('aria-label');
57
+ expect(await chart.getProperty('chartName')).toEqual('q2ChartBar.customName');
58
+ expect(ariaLabelText).toContain('This is a chart about "Custom Chart Name" with type Bar chart');
59
+ });
60
+ });
61
+ });
33
62
  });
34
63
  //# sourceMappingURL=q2-chart-bar-test.e2e.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"q2-chart-bar-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-chart-bar-test.e2e.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;EAC1B,IAAI,IAAa,CAAC;EAClB,IAAI,KAAiB,CAAC;EAEtB,UAAU,CAAC,KAAK,IAAI,EAAE;IAClB,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACjC,MAAM,IAAI,CAAC,UAAU,CAAC,+BAA+B,CAAC,CAAC;IACvD,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACxC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAC;IAC1D,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE;MACtB,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;MAC3D,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE;MAC1C,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE;MACtC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,gCAAgC,EAAE;MACjF,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE;KAC3C,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;EAChC,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;IACtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAC1D,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;EAChC,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;IAC5D,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAC5E,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IACtE,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,qEAAqE,CAAC,CAAC;IACvG,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;IACjE,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;IAChE,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;IAC9D,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;IAC/D,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;EACnE,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["import { E2EElement, E2EPage } from '@stencil/core/testing';\nimport { setup } from '../helpers';\n\ndescribe('q2-chart-bar', () => {\n let page: E2EPage;\n let chart: E2EElement;\n\n beforeEach(async () => {\n page = await setup({ html: '' });\n await page.setContent('<q2-chart-bar></q2-chart-bar>');\n chart = await page.find('q2-chart-bar');\n chart.setProperty('chartName', 'Month-to-month spending');\n chart.setProperty('data', [\n { value: 1048, name: 'March', id: 'march', color: 'green' },\n { value: 580, name: 'April', id: 'april' },\n { value: 735, name: 'May', id: 'may' },\n { value: 465, name: 'June', id: 'june', color: 'var(--const-stoplight-warning)' },\n { value: 927, name: 'July', id: 'july' },\n ]);\n await page.waitForChanges();\n });\n\n it('renders a canvas element', async () => {\n const canvas = await page.find('q2-chart-bar >>> canvas');\n expect(canvas).toBeTruthy();\n });\n\n it('renders a descriptive aria-label for the chart', async () => {\n const chartContainer = await page.find('q2-chart-bar >>> .chart-container');\n const ariaLabelText = await chartContainer.getAttribute('aria-label');\n expect(ariaLabelText).toContain('This is a chart about \"Month-to-month spending\" with type Bar chart');\n expect(ariaLabelText).toContain('the data for March is 0, 1048');\n expect(ariaLabelText).toContain('the data for April is 1, 580');\n expect(ariaLabelText).toContain('the data for May is 2, 735');\n expect(ariaLabelText).toContain('the data for June is 3, 465');\n expect(ariaLabelText).toContain('the data for July is 4, 927');\n });\n});\n"]}
1
+ {"version":3,"file":"q2-chart-bar-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-chart-bar-test.e2e.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEnD,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;EAC1B,IAAI,IAAa,CAAC;EAClB,IAAI,KAAiB,CAAC;EAEtB,UAAU,CAAC,KAAK,IAAI,EAAE;IAClB,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACjC,MAAM,IAAI,CAAC,UAAU,CAAC,+BAA+B,CAAC,CAAC;IACvD,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACxC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAC;IAC1D,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE;MACtB,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;MAC3D,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE;MAC1C,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE;MACtC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,gCAAgC,EAAE;MACjF,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE;KAC3C,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;EAChC,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;IACtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAC1D,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;EAChC,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;IAC5D,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAC5E,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IACtE,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,qEAAqE,CAAC,CAAC;IACvG,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;IACjE,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;IAChE,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;IAC9D,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;IAC/D,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;EACnE,CAAC,CAAC,CAAC;EACH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACvB,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;MAC3B,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC7C,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACjC,MAAM,IAAI,CAAC,UAAU,CAAC,+BAA+B,CAAC,CAAC;QACvD,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,MAAM,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC;MACxF,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,yCAAyC,EAAE,GAAG,EAAE;MACrD,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC1C,IAAI,GAAG,MAAM,KAAK,CAAC;UACf,IAAI,EAAE,EAAE;SACX,CAAC,CAAC;QACH,MAAM,cAAc,CAAC,IAAI,EAAE;UACvB,uBAAuB,EAAE,mBAAmB;SAC/C,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,kEAAkE,CAAC,CAAC;QACpF,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QAC5E,MAAM,aAAa,GAAG,cAAc,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAEhE,MAAM,CAAC,MAAM,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAC9E,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,+DAA+D,CAAC,CAAC;MACrG,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;EACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["import { E2EElement, E2EPage } from '@stencil/core/testing';\nimport { setup, setTestStrings } from '../helpers';\n\ndescribe('q2-chart-bar', () => {\n let page: E2EPage;\n let chart: E2EElement;\n\n beforeEach(async () => {\n page = await setup({ html: '' });\n await page.setContent('<q2-chart-bar></q2-chart-bar>');\n chart = await page.find('q2-chart-bar');\n chart.setProperty('chartName', 'Month-to-month spending');\n chart.setProperty('data', [\n { value: 1048, name: 'March', id: 'march', color: 'green' },\n { value: 580, name: 'April', id: 'april' },\n { value: 735, name: 'May', id: 'may' },\n { value: 465, name: 'June', id: 'june', color: 'var(--const-stoplight-warning)' },\n { value: 927, name: 'July', id: 'july' },\n ]);\n await page.waitForChanges();\n });\n\n it('renders a canvas element', async () => {\n const canvas = await page.find('q2-chart-bar >>> canvas');\n expect(canvas).toBeTruthy();\n });\n\n it('renders a descriptive aria-label for the chart', async () => {\n const chartContainer = await page.find('q2-chart-bar >>> .chart-container');\n const ariaLabelText = await chartContainer.getAttribute('aria-label');\n expect(ariaLabelText).toContain('This is a chart about \"Month-to-month spending\" with type Bar chart');\n expect(ariaLabelText).toContain('the data for March is 0, 1048');\n expect(ariaLabelText).toContain('the data for April is 1, 580');\n expect(ariaLabelText).toContain('the data for May is 2, 735');\n expect(ariaLabelText).toContain('the data for June is 3, 465');\n expect(ariaLabelText).toContain('the data for July is 4, 927');\n });\n describe('chartName', () => {\n describe('when provided', () => {\n it('renders with provided chartName', async () => {\n page = await setup({ html: `` });\n await page.setContent('<q2-chart-bar></q2-chart-bar>');\n chart = await page.find('q2-chart-bar');\n chart.setProperty('chartName', 'Month-to-month spending');\n await page.waitForChanges();\n\n expect(await chart.getProperty('chartName')).toEqualText('Month-to-month spending');\n });\n });\n describe('when provided a custom name translation', () => {\n it('renders the translated value', async () => {\n page = await setup({\n html: ``,\n });\n await setTestStrings(page, {\n 'q2ChartBar.customName': 'Custom Chart Name',\n });\n page.setContent(`<q2-chart-bar chart-name=\"q2ChartBar.customName\"></q2-chart-bar>`);\n await page.waitForChanges();\n chart = await page.find('q2-chart-bar');\n const chartContainer = await page.find('q2-chart-bar >>> .chart-container');\n const ariaLabelText = chartContainer.getAttribute('aria-label');\n\n expect(await chart.getProperty('chartName')).toEqual('q2ChartBar.customName');\n expect(ariaLabelText).toContain('This is a chart about \"Custom Chart Name\" with type Bar chart');\n });\n });\n });\n});\n"]}
@@ -59,7 +59,7 @@ describe('q2-chart-donut', () => {
59
59
  });
60
60
  describe('when provided', () => {
61
61
  it('renders with provided value', async () => {
62
- await chart.setProperty('summaryName', 'All The Things');
62
+ chart.setProperty('summaryName', 'All The Things');
63
63
  await page.waitForChanges();
64
64
  name = await page.find('q2-chart-donut >>> .name');
65
65
  expect(name).toEqualText('All The Things');
@@ -75,7 +75,7 @@ describe('q2-chart-donut', () => {
75
75
  });
76
76
  describe('when provided', () => {
77
77
  it('renders with provided value', async () => {
78
- await chart.setProperty('summaryIcon', 'coins');
78
+ chart.setProperty('summaryIcon', 'coins');
79
79
  await page.waitForChanges();
80
80
  icon = await page.find('q2-chart-donut >>> q2-icon');
81
81
  expect(icon).toEqualAttribute('type', 'coins');
@@ -91,7 +91,7 @@ describe('q2-chart-donut', () => {
91
91
  });
92
92
  describe('when provided', () => {
93
93
  it('renders as currency', async () => {
94
- await chart.setProperty('format', 'currency');
94
+ chart.setProperty('format', 'currency');
95
95
  await page.waitForChanges();
96
96
  value = await page.find('q2-chart-donut >>> .value');
97
97
  expect(value).toEqualText('$3,147.00');
@@ -109,12 +109,12 @@ describe('q2-chart-donut', () => {
109
109
  });
110
110
  describe('when provided', () => {
111
111
  it('renders center content in a button', async () => {
112
- await chart.setProperty('isClickable', true);
112
+ chart.setProperty('isClickable', true);
113
113
  await page.waitForChanges();
114
114
  centerCard = await page.find('q2-chart-donut >>> .center-card');
115
115
  expect(centerCard.tagName).toEqualText('BUTTON');
116
- expect(centerCard).toEqualAttribute('aria-description', 'Use the left and right arrow keys to navigate between slices of the chart. The escape key will reset the chart to its original state.');
117
116
  expect(centerCard).toEqualAttribute('aria-roledescription', 'Chart button');
117
+ expect(centerCard).toEqualAttribute('aria-describedby', 'center-card-description');
118
118
  });
119
119
  });
120
120
  });
@@ -125,7 +125,7 @@ describe('q2-chart-donut', () => {
125
125
  it('reverts the value to be 15% less than the outerRadius', async () => {
126
126
  expect(await chart.getProperty('innerRadius')).toEqual('70%');
127
127
  expect(await chart.getProperty('outerRadius')).toEqual('85%');
128
- await chart.setProperty('innerRadius', '90%');
128
+ chart.setProperty('innerRadius', '90%');
129
129
  await page.waitForChanges();
130
130
  expect(await chart.getProperty('innerRadius')).toEqual('70%');
131
131
  });
@@ -136,7 +136,7 @@ describe('q2-chart-donut', () => {
136
136
  it('reverts the value to be 15% more than the innerRadius', async () => {
137
137
  expect(await chart.getProperty('innerRadius')).toEqual('70%');
138
138
  expect(await chart.getProperty('outerRadius')).toEqual('85%');
139
- await chart.setProperty('outerRadius', '65%');
139
+ chart.setProperty('outerRadius', '65%');
140
140
  await page.waitForChanges();
141
141
  expect(await chart.getProperty('outerRadius')).toEqual('85%');
142
142
  });
@@ -231,7 +231,7 @@ describe('q2-chart-donut', () => {
231
231
  });
232
232
  describe('when element is clickable', () => {
233
233
  beforeEach(async () => {
234
- await chart.setProperty('isClickable', true);
234
+ chart.setProperty('isClickable', true);
235
235
  await page.waitForChanges();
236
236
  centerCard = await page.find('q2-chart-donut >>> .center-card');
237
237
  clickSpy = await chart.spyOnEvent('click');
@@ -293,21 +293,24 @@ describe('q2-chart-donut', () => {
293
293
  });
294
294
  describe('Accessibility', () => {
295
295
  it('renders a descriptive aria-label for the chart', async () => {
296
- await chart.setProperty('chartName', 'Spending');
296
+ chart.setProperty('chartName', 'Recent Spending');
297
297
  await page.waitForChanges();
298
298
  const chartContainer = await page.find('q2-chart-donut >>> .chart-container');
299
299
  const ariaLabelText = await chartContainer.getAttribute('aria-label');
300
- expect(ariaLabelText).toContain('This is a chart with type Pie chart named Spending');
301
- expect(ariaLabelText).toContain('the data for Groceries is 1048');
302
- expect(ariaLabelText).toContain('the data for Pets is 735');
303
- expect(ariaLabelText).toContain('the data for Rent is 580');
304
- expect(ariaLabelText).toContain('the data for Automobile is 484');
305
- expect(ariaLabelText).toContain('the data for Gifts is 300');
300
+ // this text is provided through the built-in accessibility feature from the Apache Echarts library when 'aria: true' is set in the chart options
301
+ expect(ariaLabelText).toContain('This is a chart with type Pie chart named Recent Spending.The data is as follows: the data for Groceries is 1048, the data for Pets is 735, the data for Rent is 580, the data for Automobile is 484, the data for Gifts is 300.');
302
+ });
303
+ it('renders a descriptive aria-describedby element for the chart', async () => {
304
+ chart.setProperty('chartName', 'Recent Spending');
305
+ chart.setProperty('isClickable', true);
306
+ await page.waitForChanges();
307
+ const descriptionDiv = await page.find('q2-chart-donut >>> [id=center-card-description]');
308
+ expect(descriptionDiv.innerText).toEqual('Use the left and right arrow keys to navigate between slices of the chart. The escape key will reset the chart to its original state.');
306
309
  });
307
310
  });
308
311
  describe('focus', () => {
309
312
  it('does not focus anything when focus event is dispatched', async function () {
310
- await chart.triggerEvent('focus');
313
+ chart.triggerEvent('focus');
311
314
  await page.waitForChanges();
312
315
  expect(await getFocusedAttribute(page, 'test-id')).toBeNull();
313
316
  });
@@ -318,11 +321,11 @@ describe('q2-chart-donut', () => {
318
321
  });
319
322
  describe('when element is clickable', () => {
320
323
  beforeEach(async () => {
321
- await chart.setProperty('isClickable', true);
324
+ chart.setProperty('isClickable', true);
322
325
  await page.waitForChanges();
323
326
  });
324
327
  it('focuses center button when focus event is dispatched', async function () {
325
- await chart.triggerEvent('focus');
328
+ chart.triggerEvent('focus');
326
329
  await page.waitForChanges();
327
330
  expect(await getFocusedAttribute(page, 'test-id')).toEqual('centerCard');
328
331
  });
@@ -1 +1 @@
1
- {"version":3,"file":"q2-chart-donut-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-chart-donut-test.e2e.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAExE,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;EAC5B,IAAI,IAAa,CAAC;EAClB,IAAI,KAAiB,CAAC;EACtB,IAAI,UAAsB,CAAC;EAC3B,IAAI,IAAgB,CAAC;EACrB,IAAI,IAAgB,CAAC;EACrB,IAAI,KAAiB,CAAC;EACtB,IAAI,QAAkB,CAAC;EACvB,IAAI,SAAmB,CAAC;EAExB,MAAM,UAAU,GAAG,KAAK,EAAE,IAAa,EAAE,EAAU,EAAE,EAAE;IACnD,OAAO,IAAI,CAAC,KAAK,CACb,gBAAgB,EAChB,CAAC,OAAgC,EAAE,EAAU,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EACxE,EAAE,CACL,CAAC;EACN,CAAC,CAAC;EAEF,MAAM,aAAa,GAAG,KAAK,EAAE,IAAa,EAAE,KAAa,EAAE,EAAE;IACzD,OAAO,IAAI,CAAC,KAAK,CACb,gBAAgB,EAChB,CAAC,OAAgC,EAAE,KAAa,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,EACjF,KAAK,CACR,CAAC;EACN,CAAC,CAAC;EAEF,MAAM,cAAc,GAAG,KAAK,EAAE,IAAa,EAAE,EAAE;IAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,OAAgC,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;EACxG,CAAC,CAAC;EAEF,UAAU,CAAC,KAAK,IAAI,EAAE;IAClB,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACjC,MAAM,cAAc,CAAC,IAAI,EAAE;MACvB,8CAA8C,EAAE,OAAO;MACvD,8CAA8C,EAC1C,uIAAuI;MAC3I,kDAAkD,EAAE,cAAc;KACrE,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,UAAU,CAAC,mCAAmC,CAAC,CAAC;IAC3D,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC1C,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE;MACtB,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE;MACjE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;MACrD,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,6BAA6B,EAAE;MAC5F,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE;MAClE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE;KACnF,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;EAChC,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;IACtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAE5D,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;EAChC,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;IAC9C,MAAM,gBAAgB,GAAG,KAAK,EAAE,IAAa,EAAE,IAAY,EAAE,EAAE,CAC3D,IAAI,CAAC,KAAK,CACN,gBAAgB,EAChB,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE;MAChB,OAAO,OAAO,CAAC,UAAU,CAAC,aAAa,CAAc,SAAS,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACjG,CAAC,EACD,CAAC,IAAI,CAAC,CACT,CAAC;IACN,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,CAAC,MAAM,gBAAgB,CAAC,IAAI,EAAE,2BAA2B,CAAC,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IACtG,MAAM,CAAC,MAAM,gBAAgB,CAAC,IAAI,EAAE,6BAA6B,CAAC,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IACxG,MAAM,CAAC,MAAM,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;EACtF,CAAC,CAAC,CAAC;EAEH,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACnB,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;MACzB,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;UACxC,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;UACnD,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;MACP,CAAC,CAAC,CAAC;MAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;UACzC,MAAM,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;UACzD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;UAC5B,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;UACnD,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;MACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;MACzB,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;UAC7B,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;UACnD,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;MACP,CAAC,CAAC,CAAC;MAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;UACzC,MAAM,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;UAChD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;UAC5B,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;UACrD,MAAM,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;MACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;MACpB,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;UACpC,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;UACrD,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;MACP,CAAC,CAAC,CAAC;MAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;UACjC,MAAM,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;UAC9C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;UAC5B,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;UACrD,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;MACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;MACzB,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;UAC7C,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;UAChE,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;UAC9C,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;UAC3D,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;MACP,CAAC,CAAC,CAAC;MAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;UAChD,MAAM,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;UAC7C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;UAC5B,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;UAChE,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;UACjD,MAAM,CAAC,UAAU,CAAC,CAAC,gBAAgB,CAC/B,kBAAkB,EAClB,uIAAuI,CAC1I,CAAC;UACF,MAAM,CAAC,UAAU,CAAC,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,cAAc,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;MACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;EACP,CAAC,CAAC,CAAC;EAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACtB,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;MACzB,QAAQ,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC9D,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;UACnE,MAAM,CAAC,MAAM,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;UAC9D,MAAM,CAAC,MAAM,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;UAE9D,MAAM,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;UAC9C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;UAE5B,MAAM,CAAC,MAAM,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;MACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;MACzB,QAAQ,CAAC,+CAA+C,EAAE,GAAG,EAAE;QAC3D,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;UACnE,MAAM,CAAC,MAAM,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;UAC9D,MAAM,CAAC,MAAM,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;UAE9D,MAAM,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;UAC9C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;UAE5B,MAAM,CAAC,MAAM,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;MACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;EACP,CAAC,CAAC,CAAC;EAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACrB,UAAU,CAAC,KAAK,IAAI,EAAE;MAClB,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;MAChE,SAAS,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;MACxB,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QACrD,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACnD,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAErD,MAAM,CAAC,SAAS,CAAC,CAAC,yBAAyB,CAAC;UACxC,EAAE,EAAE,MAAM;UACV,IAAI,EAAE,MAAM;UACZ,KAAK,EAAE,GAAG;UACV,IAAI,EAAE,MAAM;UACZ,KAAK,EAAE,6BAA6B;SACvC,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;MACrC,CAAC,CAAC,CAAC;MAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACnC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QACrD,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACnD,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAErD,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;MACvC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;MAC3B,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QACrD,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACnD,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAErD,MAAM,CAAC,SAAS,CAAC,CAAC,yBAAyB,CAAC;UACxC,EAAE,EAAE,MAAM;UACV,IAAI,EAAE,MAAM;UACZ,KAAK,EAAE,GAAG;UACV,IAAI,EAAE,KAAK;SACd,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;MACrC,CAAC,CAAC,CAAC;MAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC9B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QACrD,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACnD,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAErD,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;MACvC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;MAC5B,UAAU,CAAC,KAAK,IAAI,EAAE;QAClB,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;MAChC,CAAC,CAAC,CAAC;MAEH,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;QAC3B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QACrD,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACnD,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAErD,MAAM,CAAC,SAAS,CAAC,CAAC,yBAAyB,CAAC;UACxC,EAAE,EAAE,IAAI;UACR,IAAI,EAAE,IAAI;UACV,KAAK,EAAE,IAAI;SACd,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;MACvC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;EACP,CAAC,CAAC,CAAC;EAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACvC,UAAU,CAAC,KAAK,IAAI,EAAE;MAClB,MAAM,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;MAC7C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;MAC5B,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;MAChE,QAAQ,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;MAC3C,SAAS,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;MAC9C,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;MACzB,MAAM,CAAC,QAAQ,CAAC,CAAC,yBAAyB,CAAC;QACvC,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,IAAI;OACd,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;MAC9C,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;MAC/B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;MAE5B,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;MACzB,MAAM,CAAC,QAAQ,CAAC,CAAC,yBAAyB,CAAC;QACvC,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,6BAA6B;OACvC,CAAC,CAAC;MACH,MAAM,CAAC,SAAS,CAAC,CAAC,yBAAyB,CAAC;QACxC,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,6BAA6B;OACvC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;MAC9D,MAAM,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;MACpC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;MAE5B,MAAM,CAAC,SAAS,CAAC,CAAC,yBAAyB,CAAC;QACxC,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,eAAe;OACzB,CAAC,CAAC;MAEH,MAAM,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;MACrC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;MAC5B,MAAM,CAAC,SAAS,CAAC,CAAC,yBAAyB,CAAC;QACxC,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,MAAM;OACf,CAAC,CAAC;MAEH,MAAM,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;MACjC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;MAC5B,MAAM,CAAC,SAAS,CAAC,CAAC,yBAAyB,CAAC;QACxC,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,IAAI;OACd,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;EACP,CAAC,CAAC,CAAC;EAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;MAC5D,MAAM,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;MACjD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;MAE5B,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;MAE9E,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;MACtE,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,oDAAoD,CAAC,CAAC;MACtF,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,gCAAgC,CAAC,CAAC;MAClE,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;MAC5D,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;MAC5D,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,gCAAgC,CAAC,CAAC;MAClE,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;EACP,CAAC,CAAC,CAAC;EAEH,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACnB,EAAE,CAAC,wDAAwD,EAAE,KAAK;MAC9D,MAAM,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;MAClC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;MAE5B,MAAM,CAAC,MAAM,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK;MAC9D,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;MACpB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;MAE5B,MAAM,CAAC,MAAM,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;MACvC,UAAU,CAAC,KAAK,IAAI,EAAE;QAClB,MAAM,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAC7C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;MAChC,CAAC,CAAC,CAAC;MAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK;QAC5D,MAAM,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,MAAM,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;MAC7E,CAAC,CAAC,CAAC;MAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK;QAC5D,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,MAAM,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;MAC7E,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;EACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["import { E2EElement, E2EPage, EventSpy } from '@stencil/core/testing';\nimport { setup, getFocusedAttribute, setTestStrings } from '../helpers';\n\ndescribe('q2-chart-donut', () => {\n let page: E2EPage;\n let chart: E2EElement;\n let centerCard: E2EElement;\n let name: E2EElement;\n let icon: E2EElement;\n let value: E2EElement;\n let clickSpy: EventSpy;\n let changeSpy: EventSpy;\n\n const selectById = async (page: E2EPage, id: string) => {\n return page.$eval(\n 'q2-chart-donut',\n (element: HTMLQ2ChartDonutElement, id: string) => element.selectById(id),\n id\n );\n };\n\n const selectByIndex = async (page: E2EPage, index: number) => {\n return page.$eval(\n 'q2-chart-donut',\n (element: HTMLQ2ChartDonutElement, index: number) => element.selectByIndex(index),\n index\n );\n };\n\n const clearSelection = async (page: E2EPage) => {\n return page.$eval('q2-chart-donut', (element: HTMLQ2ChartDonutElement) => element.clearSelection());\n };\n\n beforeEach(async () => {\n page = await setup({ html: '' });\n await setTestStrings(page, {\n 'tecton.element.chartDonut.button.summaryName': 'Total',\n 'tecton.element.chartDonut.button.description':\n 'Use the left and right arrow keys to navigate between slices of the chart. The escape key will reset the chart to its original state.',\n 'tecton.element.chartDonut.button.roleDescription': 'Chart button',\n });\n await page.setContent('<q2-chart-donut></q2-chart-donut>');\n chart = await page.find('q2-chart-donut');\n chart.setProperty('data', [\n { value: 1048, name: 'Groceries', id: 'groceries', icon: 'cart' },\n { value: 735, name: 'Pets', id: 'pets', icon: 'paw' },\n { value: 580, name: 'Rent', id: 'rent', icon: 'home', color: 'var(--const-stoplight-info)' },\n { value: 484, name: 'Automobile', id: 'automobiles', icon: 'car' },\n { value: 300, name: 'Gifts', id: 'gifts', icon: 'gift', color: 'rebeccapurple' },\n ]);\n await page.waitForChanges();\n });\n\n it('renders a canvas element', async () => {\n const canvas = await page.find('q2-chart-donut >>> canvas');\n\n expect(canvas).toBeTruthy();\n });\n\n it('adds color properties to q2-icon', async () => {\n const getIconStyleProp = async (page: E2EPage, prop: string) =>\n page.$eval(\n 'q2-chart-donut',\n (element, [prop]) => {\n return element.shadowRoot.querySelector<HTMLElement>('q2-icon').style.getPropertyValue(prop);\n },\n [prop]\n );\n await selectById(page, 'rent');\n await page.waitForChanges();\n expect(await getIconStyleProp(page, '--tct-icon-stroke-primary')).toBe('var(--const-stoplight-info)');\n expect(await getIconStyleProp(page, '--tct-icon-stroke-secondary')).toBe('var(--const-stoplight-info)');\n expect(await getIconStyleProp(page, 'color')).toBe('var(--const-stoplight-info)');\n });\n\n describe('Props', () => {\n describe('summaryName', () => {\n describe('when not provided', () => {\n it('renders with default value', async () => {\n name = await page.find('q2-chart-donut >>> .name');\n expect(name).toEqualText('Total');\n });\n });\n\n describe('when provided', () => {\n it('renders with provided value', async () => {\n await chart.setProperty('summaryName', 'All The Things');\n await page.waitForChanges();\n name = await page.find('q2-chart-donut >>> .name');\n expect(name).toEqualText('All The Things');\n });\n });\n });\n\n describe('summaryIcon', () => {\n describe('when not provided', () => {\n it('does not render', async () => {\n icon = await page.find('q2-chart-donut >>> .icon');\n expect(icon).toBeNull();\n });\n });\n\n describe('when provided', () => {\n it('renders with provided value', async () => {\n await chart.setProperty('summaryIcon', 'coins');\n await page.waitForChanges();\n icon = await page.find('q2-chart-donut >>> q2-icon');\n expect(icon).toEqualAttribute('type', 'coins');\n });\n });\n });\n\n describe('format', () => {\n describe('when not provided', () => {\n it('renders default format', async () => {\n value = await page.find('q2-chart-donut >>> .value');\n expect(value).toEqualText('3,147');\n });\n });\n\n describe('when provided', () => {\n it('renders as currency', async () => {\n await chart.setProperty('format', 'currency');\n await page.waitForChanges();\n value = await page.find('q2-chart-donut >>> .value');\n expect(value).toEqualText('$3,147.00');\n });\n });\n });\n\n describe('isClickable', () => {\n describe('when not provided', () => {\n it('renders center content in a div', async () => {\n centerCard = await page.find('q2-chart-donut >>> .center-card');\n expect(centerCard.tagName).toEqualText('DIV');\n expect(centerCard).not.toHaveAttribute('aria-description');\n expect(centerCard).not.toHaveAttribute('aria-roledescription');\n });\n });\n\n describe('when provided', () => {\n it('renders center content in a button', async () => {\n await chart.setProperty('isClickable', true);\n await page.waitForChanges();\n centerCard = await page.find('q2-chart-donut >>> .center-card');\n expect(centerCard.tagName).toEqualText('BUTTON');\n expect(centerCard).toEqualAttribute(\n 'aria-description',\n 'Use the left and right arrow keys to navigate between slices of the chart. The escape key will reset the chart to its original state.'\n );\n expect(centerCard).toEqualAttribute('aria-roledescription', 'Chart button');\n });\n });\n });\n });\n\n describe('Watchers', () => {\n describe('innerRadius', () => {\n describe('when changed to a value greater than outerRadius', () => {\n it('reverts the value to be 15% less than the outerRadius', async () => {\n expect(await chart.getProperty('innerRadius')).toEqual('70%');\n expect(await chart.getProperty('outerRadius')).toEqual('85%');\n\n await chart.setProperty('innerRadius', '90%');\n await page.waitForChanges();\n\n expect(await chart.getProperty('innerRadius')).toEqual('70%');\n });\n });\n });\n\n describe('outerRadius', () => {\n describe('when changed to a value less than innerRadius', () => {\n it('reverts the value to be 15% more than the innerRadius', async () => {\n expect(await chart.getProperty('innerRadius')).toEqual('70%');\n expect(await chart.getProperty('outerRadius')).toEqual('85%');\n\n await chart.setProperty('outerRadius', '65%');\n await page.waitForChanges();\n\n expect(await chart.getProperty('outerRadius')).toEqual('85%');\n });\n });\n });\n });\n\n describe('Methods', () => {\n beforeEach(async () => {\n centerCard = await page.find('q2-chart-donut >>> .center-card');\n changeSpy = await chart.spyOnEvent('change');\n });\n\n describe('selectById', () => {\n it('selects the correct slice by id', async () => {\n await selectById(page, 'rent');\n await page.waitForChanges();\n\n icon = await page.find('q2-chart-donut >>> q2-icon');\n name = await page.find('q2-chart-donut >>> .name');\n value = await page.find('q2-chart-donut >>> .value');\n\n expect(changeSpy).toHaveReceivedEventDetail({\n id: 'rent',\n name: 'Rent',\n value: 580,\n icon: 'home',\n color: 'var(--const-stoplight-info)',\n });\n expect(icon).toEqualAttribute('type', 'home');\n expect(name).toEqualText('Rent');\n expect(value).toEqualText('580');\n });\n\n it('does not emit event when invalid id is passed', async () => {\n await selectById(page, 'iron-man');\n await page.waitForChanges();\n\n icon = await page.find('q2-chart-donut >>> q2-icon');\n name = await page.find('q2-chart-donut >>> .name');\n value = await page.find('q2-chart-donut >>> .value');\n\n expect(changeSpy).not.toHaveReceivedEvent();\n expect(icon).toBeNull();\n expect(name).toEqualText('Total');\n expect(value).toEqualText('3,147');\n });\n });\n\n describe('selectByIndex', () => {\n it('selects the correct slice by index', async () => {\n await selectByIndex(page, 1);\n await page.waitForChanges();\n\n icon = await page.find('q2-chart-donut >>> q2-icon');\n name = await page.find('q2-chart-donut >>> .name');\n value = await page.find('q2-chart-donut >>> .value');\n\n expect(changeSpy).toHaveReceivedEventDetail({\n id: 'pets',\n name: 'Pets',\n value: 735,\n icon: 'paw',\n });\n expect(icon).toEqualAttribute('type', 'paw');\n expect(name).toEqualText('Pets');\n expect(value).toEqualText('735');\n });\n\n it('does not emit event when invalid index is passed', async () => {\n await selectByIndex(page, 10);\n await page.waitForChanges();\n\n icon = await page.find('q2-chart-donut >>> q2-icon');\n name = await page.find('q2-chart-donut >>> .name');\n value = await page.find('q2-chart-donut >>> .value');\n\n expect(changeSpy).not.toHaveReceivedEvent();\n expect(icon).toBeNull();\n expect(name).toEqualText('Total');\n expect(value).toEqualText('3,147');\n });\n });\n\n describe('clearSelection', () => {\n beforeEach(async () => {\n await selectById(page, 'rent');\n await page.waitForChanges();\n });\n\n it('clears the selected slice', async () => {\n await clearSelection(page);\n await page.waitForChanges();\n\n icon = await page.find('q2-chart-donut >>> q2-icon');\n name = await page.find('q2-chart-donut >>> .name');\n value = await page.find('q2-chart-donut >>> .value');\n\n expect(changeSpy).toHaveReceivedEventDetail({\n id: null,\n name: null,\n value: null,\n });\n expect(icon).toBeNull();\n expect(name).toEqualText('Total');\n expect(value).toEqualText('3,147');\n });\n });\n });\n\n describe('when element is clickable', () => {\n beforeEach(async () => {\n await chart.setProperty('isClickable', true);\n await page.waitForChanges();\n centerCard = await page.find('q2-chart-donut >>> .center-card');\n clickSpy = await chart.spyOnEvent('click');\n changeSpy = await chart.spyOnEvent('change');\n });\n\n it('emits a click event when clicked', async () => {\n await centerCard.click();\n expect(clickSpy).toHaveReceivedEventDetail({\n id: null,\n name: null,\n value: null,\n });\n });\n\n it('emits a click event when clicked', async () => {\n await selectById(page, 'rent');\n await page.waitForChanges();\n\n await centerCard.click();\n expect(clickSpy).toHaveReceivedEventDetail({\n id: 'rent',\n name: 'Rent',\n value: 580,\n icon: 'home',\n color: 'var(--const-stoplight-info)',\n });\n expect(changeSpy).toHaveReceivedEventDetail({\n id: 'rent',\n name: 'Rent',\n value: 580,\n icon: 'home',\n color: 'var(--const-stoplight-info)',\n });\n });\n\n it('emits a change event when arrow keys are pressed', async () => {\n await centerCard.press('ArrowLeft');\n await page.waitForChanges();\n\n expect(changeSpy).toHaveReceivedEventDetail({\n id: 'gifts',\n name: 'Gifts',\n value: 300,\n icon: 'gift',\n color: 'rebeccapurple',\n });\n\n await centerCard.press('ArrowRight');\n await page.waitForChanges();\n expect(changeSpy).toHaveReceivedEventDetail({\n id: 'groceries',\n name: 'Groceries',\n value: 1048,\n icon: 'cart',\n });\n\n await centerCard.press('Escape');\n await page.waitForChanges();\n expect(changeSpy).toHaveReceivedEventDetail({\n id: null,\n name: null,\n value: null,\n });\n });\n });\n\n describe('Accessibility', () => {\n it('renders a descriptive aria-label for the chart', async () => {\n await chart.setProperty('chartName', 'Spending');\n await page.waitForChanges();\n\n const chartContainer = await page.find('q2-chart-donut >>> .chart-container');\n\n const ariaLabelText = await chartContainer.getAttribute('aria-label');\n expect(ariaLabelText).toContain('This is a chart with type Pie chart named Spending');\n expect(ariaLabelText).toContain('the data for Groceries is 1048');\n expect(ariaLabelText).toContain('the data for Pets is 735');\n expect(ariaLabelText).toContain('the data for Rent is 580');\n expect(ariaLabelText).toContain('the data for Automobile is 484');\n expect(ariaLabelText).toContain('the data for Gifts is 300');\n });\n });\n\n describe('focus', () => {\n it('does not focus anything when focus event is dispatched', async function (): Promise<void> {\n await chart.triggerEvent('focus');\n await page.waitForChanges();\n\n expect(await getFocusedAttribute(page, 'test-id')).toBeNull();\n });\n\n it('does not focus anything when element.focus() is called', async function (): Promise<void> {\n await chart.focus();\n await page.waitForChanges();\n\n expect(await getFocusedAttribute(page, 'test-id')).toBeNull();\n });\n\n describe('when element is clickable', () => {\n beforeEach(async () => {\n await chart.setProperty('isClickable', true);\n await page.waitForChanges();\n });\n\n it('focuses center button when focus event is dispatched', async function (): Promise<void> {\n await chart.triggerEvent('focus');\n await page.waitForChanges();\n\n expect(await getFocusedAttribute(page, 'test-id')).toEqual('centerCard');\n });\n\n it('focuses center button when element.focus() is called', async function (): Promise<void> {\n await chart.focus();\n await page.waitForChanges();\n\n expect(await getFocusedAttribute(page, 'test-id')).toEqual('centerCard');\n });\n });\n });\n});\n"]}
1
+ {"version":3,"file":"q2-chart-donut-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-chart-donut-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage, EventSpy } from '@stencil/core/testing';\nimport { setup, getFocusedAttribute, setTestStrings } from '../helpers';\n\ndescribe('q2-chart-donut', () => {\n let page: E2EPage;\n let chart: E2EElement;\n let centerCard: E2EElement;\n let name: E2EElement;\n let icon: E2EElement;\n let value: E2EElement;\n let clickSpy: EventSpy;\n let changeSpy: EventSpy;\n\n const selectById = async (page: E2EPage, id: string) => {\n return page.$eval(\n 'q2-chart-donut',\n (element: HTMLQ2ChartDonutElement, id: string) => element.selectById(id),\n id\n );\n };\n\n const selectByIndex = async (page: E2EPage, index: number) => {\n return page.$eval(\n 'q2-chart-donut',\n (element: HTMLQ2ChartDonutElement, index: number) => element.selectByIndex(index),\n index\n );\n };\n\n const clearSelection = async (page: E2EPage) => {\n return page.$eval('q2-chart-donut', (element: HTMLQ2ChartDonutElement) => element.clearSelection());\n };\n\n beforeEach(async () => {\n page = await setup({ html: '' });\n await setTestStrings(page, {\n 'tecton.element.chartDonut.button.summaryName': 'Total',\n 'tecton.element.chartDonut.button.description':\n 'Use the left and right arrow keys to navigate between slices of the chart. The escape key will reset the chart to its original state.',\n 'tecton.element.chartDonut.button.roleDescription': 'Chart button',\n });\n await page.setContent('<q2-chart-donut></q2-chart-donut>');\n chart = await page.find('q2-chart-donut');\n chart.setProperty('data', [\n { value: 1048, name: 'Groceries', id: 'groceries', icon: 'cart' },\n { value: 735, name: 'Pets', id: 'pets', icon: 'paw' },\n { value: 580, name: 'Rent', id: 'rent', icon: 'home', color: 'var(--const-stoplight-info)' },\n { value: 484, name: 'Automobile', id: 'automobiles', icon: 'car' },\n { value: 300, name: 'Gifts', id: 'gifts', icon: 'gift', color: 'rebeccapurple' },\n ]);\n await page.waitForChanges();\n });\n\n it('renders a canvas element', async () => {\n const canvas = await page.find('q2-chart-donut >>> canvas');\n\n expect(canvas).toBeTruthy();\n });\n\n it('adds color properties to q2-icon', async () => {\n const getIconStyleProp = async (page: E2EPage, prop: string) =>\n page.$eval(\n 'q2-chart-donut',\n (element, [prop]) => {\n return element.shadowRoot.querySelector<HTMLElement>('q2-icon').style.getPropertyValue(prop);\n },\n [prop]\n );\n await selectById(page, 'rent');\n await page.waitForChanges();\n expect(await getIconStyleProp(page, '--tct-icon-stroke-primary')).toBe('var(--const-stoplight-info)');\n expect(await getIconStyleProp(page, '--tct-icon-stroke-secondary')).toBe('var(--const-stoplight-info)');\n expect(await getIconStyleProp(page, 'color')).toBe('var(--const-stoplight-info)');\n });\n\n describe('Props', () => {\n describe('summaryName', () => {\n describe('when not provided', () => {\n it('renders with default value', async () => {\n name = await page.find('q2-chart-donut >>> .name');\n expect(name).toEqualText('Total');\n });\n });\n\n describe('when provided', () => {\n it('renders with provided value', async () => {\n chart.setProperty('summaryName', 'All The Things');\n await page.waitForChanges();\n name = await page.find('q2-chart-donut >>> .name');\n expect(name).toEqualText('All The Things');\n });\n });\n });\n\n describe('summaryIcon', () => {\n describe('when not provided', () => {\n it('does not render', async () => {\n icon = await page.find('q2-chart-donut >>> .icon');\n expect(icon).toBeNull();\n });\n });\n\n describe('when provided', () => {\n it('renders with provided value', async () => {\n chart.setProperty('summaryIcon', 'coins');\n await page.waitForChanges();\n icon = await page.find('q2-chart-donut >>> q2-icon');\n expect(icon).toEqualAttribute('type', 'coins');\n });\n });\n });\n\n describe('format', () => {\n describe('when not provided', () => {\n it('renders default format', async () => {\n value = await page.find('q2-chart-donut >>> .value');\n expect(value).toEqualText('3,147');\n });\n });\n\n describe('when provided', () => {\n it('renders as currency', async () => {\n chart.setProperty('format', 'currency');\n await page.waitForChanges();\n value = await page.find('q2-chart-donut >>> .value');\n expect(value).toEqualText('$3,147.00');\n });\n });\n });\n\n describe('isClickable', () => {\n describe('when not provided', () => {\n it('renders center content in a div', async () => {\n centerCard = await page.find('q2-chart-donut >>> .center-card');\n expect(centerCard.tagName).toEqualText('DIV');\n expect(centerCard).not.toHaveAttribute('aria-description');\n expect(centerCard).not.toHaveAttribute('aria-roledescription');\n });\n });\n\n describe('when provided', () => {\n it('renders center content in a button', async () => {\n chart.setProperty('isClickable', true);\n await page.waitForChanges();\n centerCard = await page.find('q2-chart-donut >>> .center-card');\n expect(centerCard.tagName).toEqualText('BUTTON');\n expect(centerCard).toEqualAttribute('aria-roledescription', 'Chart button');\n expect(centerCard).toEqualAttribute('aria-describedby', 'center-card-description');\n });\n });\n });\n });\n\n describe('Watchers', () => {\n describe('innerRadius', () => {\n describe('when changed to a value greater than outerRadius', () => {\n it('reverts the value to be 15% less than the outerRadius', async () => {\n expect(await chart.getProperty('innerRadius')).toEqual('70%');\n expect(await chart.getProperty('outerRadius')).toEqual('85%');\n\n chart.setProperty('innerRadius', '90%');\n await page.waitForChanges();\n\n expect(await chart.getProperty('innerRadius')).toEqual('70%');\n });\n });\n });\n\n describe('outerRadius', () => {\n describe('when changed to a value less than innerRadius', () => {\n it('reverts the value to be 15% more than the innerRadius', async () => {\n expect(await chart.getProperty('innerRadius')).toEqual('70%');\n expect(await chart.getProperty('outerRadius')).toEqual('85%');\n\n chart.setProperty('outerRadius', '65%');\n await page.waitForChanges();\n\n expect(await chart.getProperty('outerRadius')).toEqual('85%');\n });\n });\n });\n });\n\n describe('Methods', () => {\n beforeEach(async () => {\n centerCard = await page.find('q2-chart-donut >>> .center-card');\n changeSpy = await chart.spyOnEvent('change');\n });\n\n describe('selectById', () => {\n it('selects the correct slice by id', async () => {\n await selectById(page, 'rent');\n await page.waitForChanges();\n\n icon = await page.find('q2-chart-donut >>> q2-icon');\n name = await page.find('q2-chart-donut >>> .name');\n value = await page.find('q2-chart-donut >>> .value');\n\n expect(changeSpy).toHaveReceivedEventDetail({\n id: 'rent',\n name: 'Rent',\n value: 580,\n icon: 'home',\n color: 'var(--const-stoplight-info)',\n });\n expect(icon).toEqualAttribute('type', 'home');\n expect(name).toEqualText('Rent');\n expect(value).toEqualText('580');\n });\n\n it('does not emit event when invalid id is passed', async () => {\n await selectById(page, 'iron-man');\n await page.waitForChanges();\n\n icon = await page.find('q2-chart-donut >>> q2-icon');\n name = await page.find('q2-chart-donut >>> .name');\n value = await page.find('q2-chart-donut >>> .value');\n\n expect(changeSpy).not.toHaveReceivedEvent();\n expect(icon).toBeNull();\n expect(name).toEqualText('Total');\n expect(value).toEqualText('3,147');\n });\n });\n\n describe('selectByIndex', () => {\n it('selects the correct slice by index', async () => {\n await selectByIndex(page, 1);\n await page.waitForChanges();\n\n icon = await page.find('q2-chart-donut >>> q2-icon');\n name = await page.find('q2-chart-donut >>> .name');\n value = await page.find('q2-chart-donut >>> .value');\n\n expect(changeSpy).toHaveReceivedEventDetail({\n id: 'pets',\n name: 'Pets',\n value: 735,\n icon: 'paw',\n });\n expect(icon).toEqualAttribute('type', 'paw');\n expect(name).toEqualText('Pets');\n expect(value).toEqualText('735');\n });\n\n it('does not emit event when invalid index is passed', async () => {\n await selectByIndex(page, 10);\n await page.waitForChanges();\n\n icon = await page.find('q2-chart-donut >>> q2-icon');\n name = await page.find('q2-chart-donut >>> .name');\n value = await page.find('q2-chart-donut >>> .value');\n\n expect(changeSpy).not.toHaveReceivedEvent();\n expect(icon).toBeNull();\n expect(name).toEqualText('Total');\n expect(value).toEqualText('3,147');\n });\n });\n\n describe('clearSelection', () => {\n beforeEach(async () => {\n await selectById(page, 'rent');\n await page.waitForChanges();\n });\n\n it('clears the selected slice', async () => {\n await clearSelection(page);\n await page.waitForChanges();\n\n icon = await page.find('q2-chart-donut >>> q2-icon');\n name = await page.find('q2-chart-donut >>> .name');\n value = await page.find('q2-chart-donut >>> .value');\n\n expect(changeSpy).toHaveReceivedEventDetail({\n id: null,\n name: null,\n value: null,\n });\n expect(icon).toBeNull();\n expect(name).toEqualText('Total');\n expect(value).toEqualText('3,147');\n });\n });\n });\n\n describe('when element is clickable', () => {\n beforeEach(async () => {\n chart.setProperty('isClickable', true);\n await page.waitForChanges();\n centerCard = await page.find('q2-chart-donut >>> .center-card');\n clickSpy = await chart.spyOnEvent('click');\n changeSpy = await chart.spyOnEvent('change');\n });\n\n it('emits a click event when clicked', async () => {\n await centerCard.click();\n expect(clickSpy).toHaveReceivedEventDetail({\n id: null,\n name: null,\n value: null,\n });\n });\n\n it('emits a click event when clicked', async () => {\n await selectById(page, 'rent');\n await page.waitForChanges();\n\n await centerCard.click();\n expect(clickSpy).toHaveReceivedEventDetail({\n id: 'rent',\n name: 'Rent',\n value: 580,\n icon: 'home',\n color: 'var(--const-stoplight-info)',\n });\n expect(changeSpy).toHaveReceivedEventDetail({\n id: 'rent',\n name: 'Rent',\n value: 580,\n icon: 'home',\n color: 'var(--const-stoplight-info)',\n });\n });\n\n it('emits a change event when arrow keys are pressed', async () => {\n await centerCard.press('ArrowLeft');\n await page.waitForChanges();\n\n expect(changeSpy).toHaveReceivedEventDetail({\n id: 'gifts',\n name: 'Gifts',\n value: 300,\n icon: 'gift',\n color: 'rebeccapurple',\n });\n\n await centerCard.press('ArrowRight');\n await page.waitForChanges();\n expect(changeSpy).toHaveReceivedEventDetail({\n id: 'groceries',\n name: 'Groceries',\n value: 1048,\n icon: 'cart',\n });\n\n await centerCard.press('Escape');\n await page.waitForChanges();\n expect(changeSpy).toHaveReceivedEventDetail({\n id: null,\n name: null,\n value: null,\n });\n });\n });\n\n describe('Accessibility', () => {\n it('renders a descriptive aria-label for the chart', async () => {\n chart.setProperty('chartName', 'Recent Spending');\n await page.waitForChanges();\n\n const chartContainer = await page.find('q2-chart-donut >>> .chart-container');\n const ariaLabelText = await chartContainer.getAttribute('aria-label');\n // this text is provided through the built-in accessibility feature from the Apache Echarts library when 'aria: true' is set in the chart options\n expect(ariaLabelText).toContain(\n 'This is a chart with type Pie chart named Recent Spending.The data is as follows: the data for Groceries is 1048, the data for Pets is 735, the data for Rent is 580, the data for Automobile is 484, the data for Gifts is 300.'\n );\n });\n it('renders a descriptive aria-describedby element for the chart', async () => {\n chart.setProperty('chartName', 'Recent Spending');\n chart.setProperty('isClickable', true);\n await page.waitForChanges();\n const descriptionDiv = await page.find('q2-chart-donut >>> [id=center-card-description]');\n expect(descriptionDiv.innerText).toEqual(\n 'Use the left and right arrow keys to navigate between slices of the chart. The escape key will reset the chart to its original state.'\n );\n });\n });\n\n describe('focus', () => {\n it('does not focus anything when focus event is dispatched', async function (): Promise<void> {\n chart.triggerEvent('focus');\n await page.waitForChanges();\n\n expect(await getFocusedAttribute(page, 'test-id')).toBeNull();\n });\n\n it('does not focus anything when element.focus() is called', async function (): Promise<void> {\n await chart.focus();\n await page.waitForChanges();\n\n expect(await getFocusedAttribute(page, 'test-id')).toBeNull();\n });\n\n describe('when element is clickable', () => {\n beforeEach(async () => {\n chart.setProperty('isClickable', true);\n await page.waitForChanges();\n });\n\n it('focuses center button when focus event is dispatched', async function (): Promise<void> {\n chart.triggerEvent('focus');\n await page.waitForChanges();\n\n expect(await getFocusedAttribute(page, 'test-id')).toEqual('centerCard');\n });\n\n it('focuses center button when element.focus() is called', async function (): Promise<void> {\n await chart.focus();\n await page.waitForChanges();\n\n expect(await getFocusedAttribute(page, 'test-id')).toEqual('centerCard');\n });\n });\n });\n});\n"]}
@@ -1,21 +1,26 @@
1
- import { setup } from '../helpers';
1
+ import { getFocusedAttribute, setup } from '../helpers';
2
2
  describe('q2-checkbox-group', () => {
3
3
  let page;
4
4
  describe('Props', () => {
5
+ async function setupPage(props = '') {
6
+ props = props ? ` ${props}` : '';
7
+ const page = await setup({
8
+ html: `
9
+ <q2-checkbox-group label="My Checkbox group"${props}>
10
+ <q2-checkbox value="value-1" label="Checkbox 1"></q2-checkbox>
11
+ <q2-checkbox value="value-2" label="Checkbox 2"></q2-checkbox>
12
+ <q2-checkbox value="value-3" label="Checkbox 3"></q2-checkbox>
13
+ <q2-checkbox value="value-4" label="Checkbox 4"></q2-checkbox>
14
+ <q2-checkbox value="value-5" label="Checkbox 5"></q2-checkbox>
15
+ </q2-checkbox-group>
16
+ `,
17
+ });
18
+ await page.waitForChanges();
19
+ return page;
20
+ }
5
21
  describe('disabled', () => {
6
22
  it('does not add the group-disabled attribute to the checkboxes by default', async () => {
7
- page = await setup({
8
- html: `
9
- <q2-checkbox-group label="My Checkbox group">
10
- <q2-checkbox value="value-1" label="Checkbox 1"></q2-checkbox>
11
- <q2-checkbox value="value-2" label="Checkbox 2"></q2-checkbox>
12
- <q2-checkbox value="value-3" label="Checkbox 3"></q2-checkbox>
13
- <q2-checkbox value="value-4" label="Checkbox 4"></q2-checkbox>
14
- <q2-checkbox value="value-5" label="Checkbox 5"></q2-checkbox>
15
- </q2-checkbox-group>
16
- `,
17
- });
18
- await page.waitForChanges();
23
+ page = await setupPage();
19
24
  const checkboxes = await page.findAll('q2-checkbox');
20
25
  expect(checkboxes).toHaveLength(5);
21
26
  checkboxes.forEach(checkbox => {
@@ -23,9 +28,67 @@ describe('q2-checkbox-group', () => {
23
28
  });
24
29
  });
25
30
  it('adds the group-disabled attribute to the checkboxes when present', async () => {
31
+ page = await setupPage('disabled');
32
+ const checkboxes = await page.findAll('q2-checkbox');
33
+ expect(checkboxes).toHaveLength(5);
34
+ checkboxes.forEach(checkbox => {
35
+ expect(checkbox).toHaveAttribute('group-disabled');
36
+ });
37
+ });
38
+ });
39
+ describe('readonly', () => {
40
+ describe('set to true', () => {
41
+ it('on load child q2-checkbox components are readonly', async () => {
42
+ page = await setupPage('readonly');
43
+ const checkboxes = await page.findAll('q2-checkbox');
44
+ checkboxes.forEach(checkbox => {
45
+ expect(checkbox).toHaveAttribute('readonly');
46
+ });
47
+ });
48
+ it('after load child q2-checkbox components are readonly', async () => {
49
+ page = await setupPage();
50
+ const checkboxGroup = await page.find('q2-checkbox-group');
51
+ const checkboxes = await page.findAll('q2-checkbox');
52
+ checkboxes.forEach(checkbox => {
53
+ expect(checkbox).not.toHaveAttribute('readonly');
54
+ });
55
+ checkboxGroup.setAttribute('readonly', 'true');
56
+ await page.waitForChanges();
57
+ checkboxes.forEach(checkbox => {
58
+ expect(checkbox).toHaveAttribute('readonly');
59
+ });
60
+ });
61
+ });
62
+ describe('set to false', () => {
63
+ it('on load child q2-checkbox components are NOT readonly', async () => {
64
+ page = await setupPage();
65
+ const checkboxes = await page.findAll('q2-checkbox');
66
+ checkboxes.forEach(checkbox => {
67
+ expect(checkbox).not.toHaveAttribute('readonly');
68
+ });
69
+ });
70
+ it('after load child q2-checkbox components are NOT readonly', async () => {
71
+ page = await setupPage('readonly');
72
+ const checkboxGroup = await page.find('q2-checkbox-group');
73
+ const checkboxes = await page.findAll('q2-checkbox');
74
+ checkboxes.forEach(checkbox => {
75
+ expect(checkbox).toHaveAttribute('readonly');
76
+ });
77
+ checkboxGroup.setAttribute('readonly', 'false');
78
+ await page.waitForChanges();
79
+ checkboxes.forEach(checkbox => {
80
+ expect(checkbox).not.toHaveAttribute('readonly');
81
+ });
82
+ });
83
+ });
84
+ });
85
+ });
86
+ describe('Methods', () => {
87
+ describe('setValue', () => {
88
+ beforeEach(async () => {
26
89
  page = await setup({
27
90
  html: `
28
- <q2-checkbox-group label="My Checkbox group" disabled>
91
+ <q2-checkbox-group label="My Checkbox group">
29
92
  <q2-checkbox value="value-1" label="Checkbox 1"></q2-checkbox>
30
93
  <q2-checkbox value="value-2" label="Checkbox 2"></q2-checkbox>
31
94
  <q2-checkbox value="value-3" label="Checkbox 3"></q2-checkbox>
@@ -35,11 +98,68 @@ describe('q2-checkbox-group', () => {
35
98
  `,
36
99
  });
37
100
  await page.waitForChanges();
38
- const checkboxes = await page.findAll('q2-checkbox');
39
- expect(checkboxes).toHaveLength(5);
40
- checkboxes.forEach(checkbox => {
41
- expect(checkbox).toHaveAttribute('group-disabled');
101
+ });
102
+ it('selects every checkbox provided in an array of strings', async () => {
103
+ const checkboxGroup = await page.find('q2-checkbox-group');
104
+ const checkboxGroupChangeSpy = await checkboxGroup.spyOnEvent('change');
105
+ expect(checkboxGroupChangeSpy).toHaveReceivedEventTimes(0);
106
+ expect(await getFocusedAttribute(page, 'value')).toBeNull();
107
+ await checkboxGroup.callMethod('setValue', ['value-1', 'value-3', 'value-5']);
108
+ await page.waitForChanges();
109
+ expect(checkboxGroupChangeSpy).toHaveReceivedEventTimes(3);
110
+ expect(checkboxGroupChangeSpy).toHaveReceivedEventDetail({
111
+ 'value-1': true,
112
+ 'value-2': false,
113
+ 'value-3': true,
114
+ 'value-4': false,
115
+ 'value-5': true,
42
116
  });
117
+ const allCheckboxes = await page.findAll('q2-checkbox');
118
+ expect(allCheckboxes[0]).toHaveAttribute('checked');
119
+ expect(allCheckboxes[1]).not.toHaveAttribute('checked');
120
+ expect(allCheckboxes[2]).toHaveAttribute('checked');
121
+ expect(allCheckboxes[3]).not.toHaveAttribute('checked');
122
+ expect(allCheckboxes[4]).toHaveAttribute('checked');
123
+ expect(await getFocusedAttribute(page, 'value')).toEqual('value-5');
124
+ });
125
+ it('selects the checkbox for the provided value', async () => {
126
+ const checkboxGroup = await page.find('q2-checkbox-group');
127
+ const checkboxGroupChangeSpy = await checkboxGroup.spyOnEvent('change');
128
+ expect(checkboxGroupChangeSpy).toHaveReceivedEventTimes(0);
129
+ expect(await getFocusedAttribute(page, 'value')).toBeNull();
130
+ await checkboxGroup.callMethod('setValue', 'value-3');
131
+ await page.waitForChanges();
132
+ expect(checkboxGroupChangeSpy).toHaveReceivedEventTimes(1);
133
+ expect(checkboxGroupChangeSpy).toHaveReceivedEventDetail({
134
+ 'value-1': false,
135
+ 'value-2': false,
136
+ 'value-3': true,
137
+ 'value-4': false,
138
+ 'value-5': false,
139
+ });
140
+ const allCheckboxes = await page.findAll('q2-checkbox');
141
+ expect(allCheckboxes[0]).not.toHaveAttribute('checked');
142
+ expect(allCheckboxes[1]).not.toHaveAttribute('checked');
143
+ expect(allCheckboxes[2]).toHaveAttribute('checked');
144
+ expect(allCheckboxes[3]).not.toHaveAttribute('checked');
145
+ expect(allCheckboxes[4]).not.toHaveAttribute('checked');
146
+ expect(await getFocusedAttribute(page, 'value')).toEqual('value-3');
147
+ });
148
+ it('does not select any checkbox when the provided value is not found', async () => {
149
+ const checkboxGroup = await page.find('q2-checkbox-group');
150
+ const checkboxGroupChangeSpy = await checkboxGroup.spyOnEvent('change');
151
+ expect(checkboxGroupChangeSpy).toHaveReceivedEventTimes(0);
152
+ expect(await getFocusedAttribute(page, 'value')).toBeNull();
153
+ await checkboxGroup.callMethod('setValue', 'value-10');
154
+ await page.waitForChanges();
155
+ expect(checkboxGroupChangeSpy).toHaveReceivedEventTimes(0);
156
+ const allCheckboxes = await page.findAll('q2-checkbox');
157
+ expect(allCheckboxes[0]).not.toHaveAttribute('checked');
158
+ expect(allCheckboxes[1]).not.toHaveAttribute('checked');
159
+ expect(allCheckboxes[2]).not.toHaveAttribute('checked');
160
+ expect(allCheckboxes[3]).not.toHaveAttribute('checked');
161
+ expect(allCheckboxes[4]).not.toHaveAttribute('checked');
162
+ expect(await getFocusedAttribute(page, 'value')).toBeNull();
43
163
  });
44
164
  });
45
165
  });