q2-tecton-elements 1.45.3 → 1.46.1

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 (434) hide show
  1. package/dist/cjs/click-elsewhere_2.cjs.entry.js +3 -9
  2. package/dist/cjs/click-elsewhere_2.cjs.entry.js.map +1 -1
  3. package/dist/cjs/{index-0430339e.js → index-59fb7c74.js} +1 -1
  4. package/dist/cjs/{index-0430339e.js.map → index-59fb7c74.js.map} +1 -1
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/q2-btn_2.cjs.entry.js +2 -1
  7. package/dist/cjs/q2-btn_2.cjs.entry.js.map +1 -1
  8. package/dist/cjs/q2-calendar.cjs.entry.js +3 -3
  9. package/dist/cjs/q2-calendar.cjs.entry.js.map +1 -1
  10. package/dist/cjs/q2-carousel-pane.cjs.entry.js +36 -6
  11. package/dist/cjs/q2-carousel-pane.cjs.entry.js.map +1 -1
  12. package/dist/cjs/q2-carousel.cjs.entry.js +34 -3
  13. package/dist/cjs/q2-carousel.cjs.entry.js.map +1 -1
  14. package/dist/cjs/q2-chart-donut.cjs.entry.js +69 -3
  15. package/dist/cjs/q2-chart-donut.cjs.entry.js.map +1 -1
  16. package/dist/cjs/q2-checkbox-group.cjs.entry.js +3 -2
  17. package/dist/cjs/q2-checkbox-group.cjs.entry.js.map +1 -1
  18. package/dist/cjs/q2-checkbox.cjs.entry.js +3 -2
  19. package/dist/cjs/q2-checkbox.cjs.entry.js.map +1 -1
  20. package/dist/cjs/q2-currency.cjs.entry.js +2 -2
  21. package/dist/cjs/q2-currency.cjs.entry.js.map +1 -1
  22. package/dist/cjs/q2-data-table.cjs.entry.js +1 -1
  23. package/dist/cjs/q2-detail.cjs.entry.js +1 -1
  24. package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
  25. package/dist/cjs/q2-dropdown-item.cjs.entry.js.map +1 -1
  26. package/dist/cjs/q2-dropdown.cjs.entry.js +1 -1
  27. package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
  28. package/dist/cjs/q2-icon.cjs.entry.js +1 -1
  29. package/dist/cjs/q2-icon.cjs.entry.js.map +1 -1
  30. package/dist/cjs/q2-input.cjs.entry.js +17 -10
  31. package/dist/cjs/q2-input.cjs.entry.js.map +1 -1
  32. package/dist/cjs/q2-item.cjs.entry.js +13 -15
  33. package/dist/cjs/q2-item.cjs.entry.js.map +1 -1
  34. package/dist/cjs/q2-legend.cjs.entry.js +118 -0
  35. package/dist/cjs/q2-legend.cjs.entry.js.map +1 -0
  36. package/dist/cjs/q2-list.cjs.entry.js +8 -8
  37. package/dist/cjs/q2-list.cjs.entry.js.map +1 -1
  38. package/dist/cjs/q2-loc.cjs.entry.js +1 -1
  39. package/dist/cjs/q2-message.cjs.entry.js +1 -1
  40. package/dist/cjs/q2-optgroup.cjs.entry.js +59 -0
  41. package/dist/cjs/q2-optgroup.cjs.entry.js.map +1 -0
  42. package/dist/cjs/{q2-optgroup_2.cjs.entry.js → q2-option.cjs.entry.js} +2 -53
  43. package/dist/cjs/q2-option.cjs.entry.js.map +1 -0
  44. package/dist/cjs/q2-pagination.cjs.entry.js +22 -3
  45. package/dist/cjs/q2-pagination.cjs.entry.js.map +1 -1
  46. package/dist/cjs/q2-pill.cjs.entry.js +2 -2
  47. package/dist/cjs/q2-pill.cjs.entry.js.map +1 -1
  48. package/dist/cjs/q2-relative-time.cjs.entry.js +2 -2
  49. package/dist/cjs/q2-section.cjs.entry.js +2 -2
  50. package/dist/cjs/q2-select.cjs.entry.js +4 -5
  51. package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
  52. package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
  53. package/dist/cjs/q2-stepper-pane.cjs.entry.js.map +1 -1
  54. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +6 -6
  55. package/dist/cjs/q2-stepper-vertical.cjs.entry.js.map +1 -1
  56. package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
  57. package/dist/cjs/q2-stepper.cjs.entry.js.map +1 -1
  58. package/dist/cjs/q2-tab-container.cjs.entry.js +2 -2
  59. package/dist/cjs/q2-tab-container.cjs.entry.js.map +1 -1
  60. package/dist/cjs/q2-tab-pane.cjs.entry.js +1 -1
  61. package/dist/cjs/q2-tag.cjs.entry.js +1 -1
  62. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  63. package/dist/cjs/q2-textarea.cjs.entry.js +1 -1
  64. package/dist/cjs/q2-textarea.cjs.entry.js.map +1 -1
  65. package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
  66. package/dist/collection/collection-manifest.json +1 -0
  67. package/dist/collection/components/click-elsewhere/click-elsewhere.js +2 -8
  68. package/dist/collection/components/click-elsewhere/click-elsewhere.js.map +1 -1
  69. package/dist/collection/components/q2-btn/q2-btn.js +29 -5
  70. package/dist/collection/components/q2-btn/q2-btn.js.map +1 -1
  71. package/dist/collection/components/q2-calendar/q2-calendar.css +3 -0
  72. package/dist/collection/components/q2-calendar/q2-calendar.js +1 -1
  73. package/dist/collection/components/q2-calendar/q2-calendar.js.map +1 -1
  74. package/dist/collection/components/q2-carousel/q2-carousel.js +34 -3
  75. package/dist/collection/components/q2-carousel/q2-carousel.js.map +1 -1
  76. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +36 -6
  77. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js.map +1 -1
  78. package/dist/collection/components/q2-chart-donut/q2-chart-donut.css +9 -0
  79. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +91 -3
  80. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js.map +1 -1
  81. package/dist/collection/components/q2-checkbox/q2-checkbox.js +20 -2
  82. package/dist/collection/components/q2-checkbox/q2-checkbox.js.map +1 -1
  83. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js +3 -2
  84. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js.map +1 -1
  85. package/dist/collection/components/q2-currency/q2-currency.css +4 -0
  86. package/dist/collection/components/q2-currency/q2-currency.js +1 -1
  87. package/dist/collection/components/q2-data-table/q2-data-table.js +7 -7
  88. package/dist/collection/components/q2-detail/q2-detail.js +1 -1
  89. package/dist/collection/components/q2-dropdown/q2-dropdown.js +1 -1
  90. package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
  91. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js +1 -1
  92. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js.map +1 -1
  93. package/dist/collection/components/q2-icon/q2-icon.js +1 -1
  94. package/dist/collection/components/q2-icon/q2-icon.js.map +1 -1
  95. package/dist/collection/components/q2-input/q2-input.js +43 -15
  96. package/dist/collection/components/q2-input/q2-input.js.map +1 -1
  97. package/dist/collection/components/q2-item/q2-item.css +11 -11
  98. package/dist/collection/components/q2-item/q2-item.js +23 -16
  99. package/dist/collection/components/q2-item/q2-item.js.map +1 -1
  100. package/dist/collection/components/q2-legend/q2-legend.css +126 -0
  101. package/dist/collection/components/q2-legend/q2-legend.js +271 -0
  102. package/dist/collection/components/q2-legend/q2-legend.js.map +1 -0
  103. package/dist/collection/components/q2-list/q2-list.css +8 -5
  104. package/dist/collection/components/q2-list/q2-list.js +7 -7
  105. package/dist/collection/components/q2-list/q2-list.js.map +1 -1
  106. package/dist/collection/components/q2-loc/q2-loc.js +1 -1
  107. package/dist/collection/components/q2-message/q2-message.js +1 -1
  108. package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
  109. package/dist/collection/components/q2-option/q2-option.js +1 -1
  110. package/dist/collection/components/q2-option-list/q2-option-list.js +2 -2
  111. package/dist/collection/components/q2-pagination/q2-pagination.css +17 -2
  112. package/dist/collection/components/q2-pagination/q2-pagination.js +53 -2
  113. package/dist/collection/components/q2-pagination/q2-pagination.js.map +1 -1
  114. package/dist/collection/components/q2-pill/q2-pill.js +2 -2
  115. package/dist/collection/components/q2-pill/q2-pill.js.map +1 -1
  116. package/dist/collection/components/q2-popover/q2-popover.js +1 -1
  117. package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
  118. package/dist/collection/components/q2-section/q2-section.js +2 -2
  119. package/dist/collection/components/q2-select/q2-select.js +21 -5
  120. package/dist/collection/components/q2-select/q2-select.js.map +1 -1
  121. package/dist/collection/components/q2-stepper/q2-stepper.js +2 -2
  122. package/dist/collection/components/q2-stepper/q2-stepper.js.map +1 -1
  123. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +4 -4
  124. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js.map +1 -1
  125. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +6 -6
  126. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js.map +1 -1
  127. package/dist/collection/components/q2-tab-container/q2-tab-container.js +2 -2
  128. package/dist/collection/components/q2-tab-container/q2-tab-container.js.map +1 -1
  129. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
  130. package/dist/collection/components/q2-tag/q2-tag.js +1 -1
  131. package/dist/collection/components/q2-textarea/q2-textarea.css +2 -2
  132. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
  133. package/dist/components/click-elsewhere2.js +2 -8
  134. package/dist/components/click-elsewhere2.js.map +1 -1
  135. package/dist/components/index.js +2 -0
  136. package/dist/components/index.js.map +1 -1
  137. package/dist/components/index2.js +1 -1
  138. package/dist/components/q2-btn2.js +4 -2
  139. package/dist/components/q2-btn2.js.map +1 -1
  140. package/dist/components/q2-calendar.js +2 -2
  141. package/dist/components/q2-calendar.js.map +1 -1
  142. package/dist/components/q2-carousel-pane.js +36 -6
  143. package/dist/components/q2-carousel-pane.js.map +1 -1
  144. package/dist/components/q2-carousel.js +34 -3
  145. package/dist/components/q2-carousel.js.map +1 -1
  146. package/dist/components/q2-chart-donut.js +81 -7
  147. package/dist/components/q2-chart-donut.js.map +1 -1
  148. package/dist/components/q2-checkbox-group.js +3 -2
  149. package/dist/components/q2-checkbox-group.js.map +1 -1
  150. package/dist/components/q2-checkbox2.js +4 -2
  151. package/dist/components/q2-checkbox2.js.map +1 -1
  152. package/dist/components/q2-currency.js +2 -2
  153. package/dist/components/q2-currency.js.map +1 -1
  154. package/dist/components/q2-data-table.js +1 -1
  155. package/dist/components/q2-detail.js +1 -1
  156. package/dist/components/q2-dropdown-item2.js +1 -1
  157. package/dist/components/q2-dropdown-item2.js.map +1 -1
  158. package/dist/components/q2-dropdown.js +1 -1
  159. package/dist/components/q2-dropdown.js.map +1 -1
  160. package/dist/components/q2-icon2.js +1 -1
  161. package/dist/components/q2-icon2.js.map +1 -1
  162. package/dist/components/q2-input2.js +20 -12
  163. package/dist/components/q2-input2.js.map +1 -1
  164. package/dist/components/q2-item.js +16 -18
  165. package/dist/components/q2-item.js.map +1 -1
  166. package/dist/components/q2-legend.d.ts +11 -0
  167. package/dist/components/q2-legend.js +8 -0
  168. package/dist/components/q2-legend.js.map +1 -0
  169. package/dist/components/q2-legend2.js +145 -0
  170. package/dist/components/q2-legend2.js.map +1 -0
  171. package/dist/components/q2-list.js +8 -8
  172. package/dist/components/q2-list.js.map +1 -1
  173. package/dist/components/q2-loc.js +1 -1
  174. package/dist/components/q2-message2.js +2 -2
  175. package/dist/components/q2-optgroup2.js +1 -1
  176. package/dist/components/q2-option-list2.js +1 -1
  177. package/dist/components/q2-option2.js +1 -1
  178. package/dist/components/q2-pagination.js +64 -13
  179. package/dist/components/q2-pagination.js.map +1 -1
  180. package/dist/components/q2-pill.js +2 -2
  181. package/dist/components/q2-pill.js.map +1 -1
  182. package/dist/components/q2-popover2.js +2 -2
  183. package/dist/components/q2-relative-time.js +1 -1
  184. package/dist/components/q2-section.js +2 -2
  185. package/dist/components/q2-select.js +1 -711
  186. package/dist/components/q2-select.js.map +1 -1
  187. package/dist/components/q2-select2.js +715 -0
  188. package/dist/components/q2-select2.js.map +1 -0
  189. package/dist/components/q2-stepper-pane.js +2 -2
  190. package/dist/components/q2-stepper-pane.js.map +1 -1
  191. package/dist/components/q2-stepper-vertical.js +6 -6
  192. package/dist/components/q2-stepper-vertical.js.map +1 -1
  193. package/dist/components/q2-stepper.js +2 -2
  194. package/dist/components/q2-stepper.js.map +1 -1
  195. package/dist/components/q2-tab-container.js +2 -2
  196. package/dist/components/q2-tab-container.js.map +1 -1
  197. package/dist/components/q2-tab-pane.js +1 -1
  198. package/dist/components/q2-tag.js +1 -1
  199. package/dist/components/q2-textarea.js +1 -1
  200. package/dist/components/q2-textarea.js.map +1 -1
  201. package/dist/components/tecton-tab-pane.js +2 -2
  202. package/dist/esm/click-elsewhere_2.entry.js +3 -9
  203. package/dist/esm/click-elsewhere_2.entry.js.map +1 -1
  204. package/dist/esm/{index-e940b40e.js → index-c99c4cc6.js} +1 -1
  205. package/dist/esm/{index-e940b40e.js.map → index-c99c4cc6.js.map} +1 -1
  206. package/dist/esm/loader.js +1 -1
  207. package/dist/esm/q2-btn_2.entry.js +2 -1
  208. package/dist/esm/q2-btn_2.entry.js.map +1 -1
  209. package/dist/esm/q2-calendar.entry.js +3 -3
  210. package/dist/esm/q2-calendar.entry.js.map +1 -1
  211. package/dist/esm/q2-carousel-pane.entry.js +36 -6
  212. package/dist/esm/q2-carousel-pane.entry.js.map +1 -1
  213. package/dist/esm/q2-carousel.entry.js +34 -3
  214. package/dist/esm/q2-carousel.entry.js.map +1 -1
  215. package/dist/esm/q2-chart-donut.entry.js +69 -3
  216. package/dist/esm/q2-chart-donut.entry.js.map +1 -1
  217. package/dist/esm/q2-checkbox-group.entry.js +3 -2
  218. package/dist/esm/q2-checkbox-group.entry.js.map +1 -1
  219. package/dist/esm/q2-checkbox.entry.js +3 -2
  220. package/dist/esm/q2-checkbox.entry.js.map +1 -1
  221. package/dist/esm/q2-currency.entry.js +2 -2
  222. package/dist/esm/q2-currency.entry.js.map +1 -1
  223. package/dist/esm/q2-data-table.entry.js +1 -1
  224. package/dist/esm/q2-detail.entry.js +1 -1
  225. package/dist/esm/q2-dropdown-item.entry.js +1 -1
  226. package/dist/esm/q2-dropdown-item.entry.js.map +1 -1
  227. package/dist/esm/q2-dropdown.entry.js +1 -1
  228. package/dist/esm/q2-dropdown.entry.js.map +1 -1
  229. package/dist/esm/q2-icon.entry.js +1 -1
  230. package/dist/esm/q2-icon.entry.js.map +1 -1
  231. package/dist/esm/q2-input.entry.js +17 -10
  232. package/dist/esm/q2-input.entry.js.map +1 -1
  233. package/dist/esm/q2-item.entry.js +15 -17
  234. package/dist/esm/q2-item.entry.js.map +1 -1
  235. package/dist/esm/q2-legend.entry.js +114 -0
  236. package/dist/esm/q2-legend.entry.js.map +1 -0
  237. package/dist/esm/q2-list.entry.js +8 -8
  238. package/dist/esm/q2-list.entry.js.map +1 -1
  239. package/dist/esm/q2-loc.entry.js +1 -1
  240. package/dist/esm/q2-message.entry.js +1 -1
  241. package/dist/esm/q2-optgroup.entry.js +55 -0
  242. package/dist/esm/q2-optgroup.entry.js.map +1 -0
  243. package/dist/esm/{q2-optgroup_2.entry.js → q2-option.entry.js} +4 -54
  244. package/dist/esm/q2-option.entry.js.map +1 -0
  245. package/dist/esm/q2-pagination.entry.js +22 -3
  246. package/dist/esm/q2-pagination.entry.js.map +1 -1
  247. package/dist/esm/q2-pill.entry.js +2 -2
  248. package/dist/esm/q2-pill.entry.js.map +1 -1
  249. package/dist/esm/q2-relative-time.entry.js +2 -2
  250. package/dist/esm/q2-section.entry.js +2 -2
  251. package/dist/esm/q2-select.entry.js +4 -5
  252. package/dist/esm/q2-select.entry.js.map +1 -1
  253. package/dist/esm/q2-stepper-pane.entry.js +2 -2
  254. package/dist/esm/q2-stepper-pane.entry.js.map +1 -1
  255. package/dist/esm/q2-stepper-vertical.entry.js +6 -6
  256. package/dist/esm/q2-stepper-vertical.entry.js.map +1 -1
  257. package/dist/esm/q2-stepper.entry.js +2 -2
  258. package/dist/esm/q2-stepper.entry.js.map +1 -1
  259. package/dist/esm/q2-tab-container.entry.js +2 -2
  260. package/dist/esm/q2-tab-container.entry.js.map +1 -1
  261. package/dist/esm/q2-tab-pane.entry.js +1 -1
  262. package/dist/esm/q2-tag.entry.js +1 -1
  263. package/dist/esm/q2-tecton-elements.js +1 -1
  264. package/dist/esm/q2-textarea.entry.js +1 -1
  265. package/dist/esm/q2-textarea.entry.js.map +1 -1
  266. package/dist/esm/tecton-tab-pane.entry.js +2 -2
  267. package/dist/q2-tecton-elements/p-0bc47914.entry.js +2 -0
  268. package/dist/q2-tecton-elements/p-0bc47914.entry.js.map +1 -0
  269. package/dist/q2-tecton-elements/p-0e482a7c.entry.js +2 -0
  270. package/dist/q2-tecton-elements/p-0e482a7c.entry.js.map +1 -0
  271. package/dist/q2-tecton-elements/{p-fcc84527.entry.js → p-12326313.entry.js} +2 -2
  272. package/dist/q2-tecton-elements/p-12326313.entry.js.map +1 -0
  273. package/dist/q2-tecton-elements/{p-df297a77.entry.js → p-16891e51.entry.js} +2 -2
  274. package/dist/q2-tecton-elements/{p-a214077c.entry.js → p-18ec54c0.entry.js} +2 -2
  275. package/dist/q2-tecton-elements/p-245ad08f.entry.js +2 -0
  276. package/dist/q2-tecton-elements/p-245ad08f.entry.js.map +1 -0
  277. package/dist/q2-tecton-elements/p-2a248a3f.entry.js +2 -0
  278. package/dist/q2-tecton-elements/p-2a248a3f.entry.js.map +1 -0
  279. package/dist/q2-tecton-elements/p-2c57a367.entry.js +2 -0
  280. package/dist/q2-tecton-elements/p-2c57a367.entry.js.map +1 -0
  281. package/dist/q2-tecton-elements/p-32e57e9f.entry.js +2 -0
  282. package/dist/q2-tecton-elements/p-32e57e9f.entry.js.map +1 -0
  283. package/dist/q2-tecton-elements/p-36398b59.entry.js +2 -0
  284. package/dist/q2-tecton-elements/p-36398b59.entry.js.map +1 -0
  285. package/dist/q2-tecton-elements/{p-5dc5c4e2.entry.js → p-4194d6ed.entry.js} +2 -2
  286. package/dist/q2-tecton-elements/p-4194d6ed.entry.js.map +1 -0
  287. package/dist/q2-tecton-elements/{p-f0813fb4.entry.js → p-4f2dfb4d.entry.js} +2 -2
  288. package/dist/q2-tecton-elements/p-4f2dfb4d.entry.js.map +1 -0
  289. package/dist/q2-tecton-elements/{p-7ce6e587.js → p-6559c942.js} +1 -1
  290. package/dist/q2-tecton-elements/{p-391acc00.entry.js → p-65ed80a5.entry.js} +2 -2
  291. package/dist/q2-tecton-elements/p-65ed80a5.entry.js.map +1 -0
  292. package/dist/q2-tecton-elements/p-79df783e.entry.js +2 -0
  293. package/dist/q2-tecton-elements/p-79df783e.entry.js.map +1 -0
  294. package/dist/q2-tecton-elements/p-81b76d40.entry.js +2 -0
  295. package/dist/q2-tecton-elements/p-81b76d40.entry.js.map +1 -0
  296. package/dist/q2-tecton-elements/{p-2436c843.entry.js → p-85003c5b.entry.js} +2 -2
  297. package/dist/q2-tecton-elements/p-85003c5b.entry.js.map +1 -0
  298. package/dist/q2-tecton-elements/{p-d9e19f70.entry.js → p-97a98211.entry.js} +2 -2
  299. package/dist/q2-tecton-elements/{p-71180fcd.entry.js → p-ac9414a6.entry.js} +2 -2
  300. package/dist/q2-tecton-elements/p-ac9414a6.entry.js.map +1 -0
  301. package/dist/q2-tecton-elements/{p-7523305d.entry.js → p-bc141c5b.entry.js} +2 -2
  302. package/dist/q2-tecton-elements/p-be101dcf.entry.js +2 -0
  303. package/dist/q2-tecton-elements/p-be101dcf.entry.js.map +1 -0
  304. package/dist/q2-tecton-elements/{p-4bbe563f.entry.js → p-bf32fd9c.entry.js} +2 -2
  305. package/dist/q2-tecton-elements/p-bf32fd9c.entry.js.map +1 -0
  306. package/dist/q2-tecton-elements/{p-b376c111.entry.js → p-ca0d7eb3.entry.js} +2 -2
  307. package/dist/q2-tecton-elements/{p-c016bd18.entry.js → p-ca7ad3c3.entry.js} +2 -2
  308. package/dist/q2-tecton-elements/p-ca7dad64.entry.js +2 -0
  309. package/dist/q2-tecton-elements/p-ca7dad64.entry.js.map +1 -0
  310. package/dist/q2-tecton-elements/p-ced89010.entry.js +2 -0
  311. package/dist/q2-tecton-elements/p-ced89010.entry.js.map +1 -0
  312. package/dist/q2-tecton-elements/{p-f4d77672.entry.js → p-d5776227.entry.js} +2 -2
  313. package/dist/q2-tecton-elements/p-d60ccf2f.entry.js +2 -0
  314. package/dist/q2-tecton-elements/p-d60ccf2f.entry.js.map +1 -0
  315. package/dist/q2-tecton-elements/p-d8fba914.entry.js +2 -0
  316. package/dist/q2-tecton-elements/p-d8fba914.entry.js.map +1 -0
  317. package/dist/q2-tecton-elements/{p-63192fac.entry.js → p-dd670d63.entry.js} +2 -2
  318. package/dist/q2-tecton-elements/{p-05b015a8.entry.js → p-e27a23fc.entry.js} +2 -2
  319. package/dist/q2-tecton-elements/{p-05b015a8.entry.js.map → p-e27a23fc.entry.js.map} +1 -1
  320. package/dist/q2-tecton-elements/{p-bfe9d688.entry.js → p-ef441885.entry.js} +2 -2
  321. package/dist/q2-tecton-elements/p-ef441885.entry.js.map +1 -0
  322. package/dist/q2-tecton-elements/p-f2251261.entry.js +2 -0
  323. package/dist/q2-tecton-elements/p-f2251261.entry.js.map +1 -0
  324. package/dist/q2-tecton-elements/{p-debd5249.entry.js → p-f45b3488.entry.js} +2 -2
  325. package/dist/q2-tecton-elements/{p-debd5249.entry.js.map → p-f45b3488.entry.js.map} +1 -1
  326. package/dist/q2-tecton-elements/{p-22661533.entry.js → p-fe3c62e0.entry.js} +2 -2
  327. package/dist/q2-tecton-elements/p-fe3c62e0.entry.js.map +1 -0
  328. package/dist/q2-tecton-elements/{p-685b821c.entry.js → p-ff39ba49.entry.js} +2 -2
  329. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  330. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
  331. package/dist/test/elements/click-elsewhere-test.e2e.js +0 -18
  332. package/dist/test/elements/click-elsewhere-test.e2e.js.map +1 -1
  333. package/dist/test/elements/q2-btn-test.e2e.js +16 -0
  334. package/dist/test/elements/q2-btn-test.e2e.js.map +1 -1
  335. package/dist/test/elements/q2-calendar-test.e2e.js +1 -1
  336. package/dist/test/elements/q2-calendar-test.e2e.js.map +1 -1
  337. package/dist/test/elements/q2-carousel-pane-test.e2e.js +49 -1
  338. package/dist/test/elements/q2-carousel-pane-test.e2e.js.map +1 -1
  339. package/dist/test/elements/q2-carousel-pane-test.spec.js +4 -1
  340. package/dist/test/elements/q2-carousel-pane-test.spec.js.map +1 -1
  341. package/dist/test/elements/q2-carousel-test.e2e.js +67 -1
  342. package/dist/test/elements/q2-carousel-test.e2e.js.map +1 -1
  343. package/dist/test/elements/q2-chart-donut-test.e2e.js +56 -0
  344. package/dist/test/elements/q2-chart-donut-test.e2e.js.map +1 -1
  345. package/dist/test/elements/q2-checkbox-group-test.e2e.js +13 -10
  346. package/dist/test/elements/q2-checkbox-group-test.e2e.js.map +1 -1
  347. package/dist/test/elements/q2-detail/q2-list-test.e2e.js +1 -1
  348. package/dist/test/elements/q2-detail/q2-list-test.e2e.js.map +1 -1
  349. package/dist/test/elements/q2-dropdown-item-test.e2e.js +16 -3
  350. package/dist/test/elements/q2-dropdown-item-test.e2e.js.map +1 -1
  351. package/dist/test/elements/q2-icon-test.e2e.js +3 -3
  352. package/dist/test/elements/q2-icon-test.e2e.js.map +1 -1
  353. package/dist/test/elements/q2-input-test.e2e.js +93 -56
  354. package/dist/test/elements/q2-input-test.e2e.js.map +1 -1
  355. package/dist/test/elements/{q2-detail/q2-item-test.e2e.js → q2-item-test.e2e.js} +29 -1
  356. package/dist/test/elements/q2-item-test.e2e.js.map +1 -0
  357. package/dist/test/elements/q2-item-test.spec.js +32 -0
  358. package/dist/test/elements/q2-item-test.spec.js.map +1 -0
  359. package/dist/test/elements/q2-legend-test.e2e.js +19 -0
  360. package/dist/test/elements/q2-legend-test.e2e.js.map +1 -0
  361. package/dist/test/elements/q2-legend-test.spec.js +271 -0
  362. package/dist/test/elements/q2-legend-test.spec.js.map +1 -0
  363. package/dist/test/elements/q2-pagination-test.e2e.js +22 -0
  364. package/dist/test/elements/q2-pagination-test.e2e.js.map +1 -1
  365. package/dist/test/elements/q2-pill-test.e2e.js +21 -2
  366. package/dist/test/elements/q2-pill-test.e2e.js.map +1 -1
  367. package/dist/test/elements/q2-select-test.e2e.js +26 -8
  368. package/dist/test/elements/q2-select-test.e2e.js.map +1 -1
  369. package/dist/test/elements/q2-stepper-test.e2e.js +10 -17
  370. package/dist/test/elements/q2-stepper-test.e2e.js.map +1 -1
  371. package/dist/test/elements/q2-stepper-vertical-test.e2e.js +20 -4
  372. package/dist/test/elements/q2-stepper-vertical-test.e2e.js.map +1 -1
  373. package/dist/test/elements/q2-tab-container-test.e2e.js +10 -4
  374. package/dist/test/elements/q2-tab-container-test.e2e.js.map +1 -1
  375. package/dist/types/components/q2-btn/q2-btn.d.ts +14 -3
  376. package/dist/types/components/q2-carousel/q2-carousel.d.ts +2 -0
  377. package/dist/types/components/q2-carousel-pane/q2-carousel-pane.d.ts +7 -0
  378. package/dist/types/components/q2-chart-donut/q2-chart-donut.d.ts +14 -0
  379. package/dist/types/components/q2-checkbox/q2-checkbox.d.ts +2 -0
  380. package/dist/types/components/q2-input/q2-input.d.ts +10 -3
  381. package/dist/types/components/q2-item/q2-item.d.ts +1 -1
  382. package/dist/types/components/q2-legend/q2-legend.d.ts +41 -0
  383. package/dist/types/components.d.ts +133 -4
  384. package/package.json +3 -3
  385. package/dist/cjs/q2-optgroup_2.cjs.entry.js.map +0 -1
  386. package/dist/esm/q2-optgroup_2.entry.js.map +0 -1
  387. package/dist/q2-tecton-elements/p-1c17d118.entry.js +0 -2
  388. package/dist/q2-tecton-elements/p-1c17d118.entry.js.map +0 -1
  389. package/dist/q2-tecton-elements/p-22661533.entry.js.map +0 -1
  390. package/dist/q2-tecton-elements/p-2436c843.entry.js.map +0 -1
  391. package/dist/q2-tecton-elements/p-391acc00.entry.js.map +0 -1
  392. package/dist/q2-tecton-elements/p-3b1ea100.entry.js +0 -2
  393. package/dist/q2-tecton-elements/p-3b1ea100.entry.js.map +0 -1
  394. package/dist/q2-tecton-elements/p-445990a8.entry.js +0 -2
  395. package/dist/q2-tecton-elements/p-445990a8.entry.js.map +0 -1
  396. package/dist/q2-tecton-elements/p-4b81a121.entry.js +0 -2
  397. package/dist/q2-tecton-elements/p-4b81a121.entry.js.map +0 -1
  398. package/dist/q2-tecton-elements/p-4bbe563f.entry.js.map +0 -1
  399. package/dist/q2-tecton-elements/p-50bd4437.entry.js +0 -2
  400. package/dist/q2-tecton-elements/p-50bd4437.entry.js.map +0 -1
  401. package/dist/q2-tecton-elements/p-5dc5c4e2.entry.js.map +0 -1
  402. package/dist/q2-tecton-elements/p-68556733.entry.js +0 -2
  403. package/dist/q2-tecton-elements/p-68556733.entry.js.map +0 -1
  404. package/dist/q2-tecton-elements/p-71180fcd.entry.js.map +0 -1
  405. package/dist/q2-tecton-elements/p-7c12ba02.entry.js +0 -2
  406. package/dist/q2-tecton-elements/p-7c12ba02.entry.js.map +0 -1
  407. package/dist/q2-tecton-elements/p-a977e723.entry.js +0 -2
  408. package/dist/q2-tecton-elements/p-a977e723.entry.js.map +0 -1
  409. package/dist/q2-tecton-elements/p-b3d10d52.entry.js +0 -2
  410. package/dist/q2-tecton-elements/p-b3d10d52.entry.js.map +0 -1
  411. package/dist/q2-tecton-elements/p-b7d5fd12.entry.js +0 -2
  412. package/dist/q2-tecton-elements/p-b7d5fd12.entry.js.map +0 -1
  413. package/dist/q2-tecton-elements/p-bfe9d688.entry.js.map +0 -1
  414. package/dist/q2-tecton-elements/p-bffda54d.entry.js +0 -2
  415. package/dist/q2-tecton-elements/p-bffda54d.entry.js.map +0 -1
  416. package/dist/q2-tecton-elements/p-cadceb00.entry.js +0 -2
  417. package/dist/q2-tecton-elements/p-cadceb00.entry.js.map +0 -1
  418. package/dist/q2-tecton-elements/p-d1a9ed3d.entry.js +0 -2
  419. package/dist/q2-tecton-elements/p-d1a9ed3d.entry.js.map +0 -1
  420. package/dist/q2-tecton-elements/p-f0813fb4.entry.js.map +0 -1
  421. package/dist/q2-tecton-elements/p-fcc84527.entry.js.map +0 -1
  422. package/dist/test/elements/q2-detail/q2-item-test.e2e.js.map +0 -1
  423. /package/dist/q2-tecton-elements/{p-df297a77.entry.js.map → p-16891e51.entry.js.map} +0 -0
  424. /package/dist/q2-tecton-elements/{p-a214077c.entry.js.map → p-18ec54c0.entry.js.map} +0 -0
  425. /package/dist/q2-tecton-elements/{p-7ce6e587.js.map → p-6559c942.js.map} +0 -0
  426. /package/dist/q2-tecton-elements/{p-d9e19f70.entry.js.map → p-97a98211.entry.js.map} +0 -0
  427. /package/dist/q2-tecton-elements/{p-7523305d.entry.js.map → p-bc141c5b.entry.js.map} +0 -0
  428. /package/dist/q2-tecton-elements/{p-b376c111.entry.js.map → p-ca0d7eb3.entry.js.map} +0 -0
  429. /package/dist/q2-tecton-elements/{p-c016bd18.entry.js.map → p-ca7ad3c3.entry.js.map} +0 -0
  430. /package/dist/q2-tecton-elements/{p-f4d77672.entry.js.map → p-d5776227.entry.js.map} +0 -0
  431. /package/dist/q2-tecton-elements/{p-63192fac.entry.js.map → p-dd670d63.entry.js.map} +0 -0
  432. /package/dist/q2-tecton-elements/{p-685b821c.entry.js.map → p-ff39ba49.entry.js.map} +0 -0
  433. /package/dist/types/workspace/workspace/{tecton-production_release_1.45.x → tecton-production_release_1.46.x}/packages/q2-tecton-elements/.stencil/test/elements/q2-detail/slot-component.d.ts +0 -0
  434. /package/dist/types/workspace/workspace/{tecton-production_release_1.45.x → tecton-production_release_1.46.x}/packages/q2-tecton-elements/.stencil/test/helpers.d.ts +0 -0
@@ -1,4 +1,4 @@
1
- import { evaluateA11y, setup } from "../../helpers";
1
+ import { evaluateA11y, setup } from "../helpers";
2
2
  describe('q2-item', () => {
3
3
  describe('[A11y] guideline compliance', () => {
4
4
  it('Does not have accessibility violations', async () => {
@@ -219,5 +219,33 @@ describe('q2-item', () => {
219
219
  });
220
220
  });
221
221
  });
222
+ describe('focus', () => {
223
+ let page;
224
+ let item;
225
+ beforeEach(async () => {
226
+ page = await setup({
227
+ html: `
228
+ <q2-item clickable>
229
+ <div slot="header">Header Text</div>
230
+ </q2-item>
231
+ `,
232
+ });
233
+ item = await page.find('q2-item');
234
+ expect(await innerActiveTestId(page)).toBeUndefined();
235
+ });
236
+ const innerActiveTestId = async (page) => {
237
+ return page.$eval('q2-item', el => { var _a; return (_a = el.shadowRoot.activeElement) === null || _a === void 0 ? void 0 : _a.getAttribute('test-id'); });
238
+ };
239
+ it('focuses inner button when focus event is dispatched', async function () {
240
+ await item.triggerEvent('focus');
241
+ await page.waitForChanges();
242
+ expect(await innerActiveTestId(page)).toEqual('itemContainer');
243
+ });
244
+ it('focuses inner button when element.focus() is called', async function () {
245
+ await item.focus();
246
+ await page.waitForChanges();
247
+ expect(await innerActiveTestId(page)).toEqual('itemContainer');
248
+ });
249
+ });
222
250
  });
223
251
  //# sourceMappingURL=q2-item-test.e2e.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"q2-item-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-item-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage } from '@stencil/core/testing';\nimport { evaluateA11y, setup } from '../helpers';\n\ndescribe('q2-item', () => {\n describe('[A11y] guideline compliance', () => {\n it('Does not have accessibility violations', async () => {\n const page = await setup({ html: `<q2-item />` });\n const hasViolations = await evaluateA11y(page);\n\n expect(hasViolations).toBe(false);\n });\n });\n describe('Props', () => {});\n describe('Slots', () => {\n describe('action', () => {\n it('when set content displayed as action', async () => {\n const page = await setup({\n html: `\n <q2-item>\n <div slot=\"action\">Test Action</div>\n </q2-item>\n `,\n });\n const item = await page.find('q2-item');\n const action = await page.find('q2-item >>> .action');\n\n expect(item).toEqualText('Test Action');\n expect(action).toBeTruthy();\n });\n it('when removed conatiner removed', async () => {\n const page = await setup({\n html: `\n <q2-item>\n <div slot=\"action\">Test Body</div>\n </q2-item>\n `,\n });\n let actionSlot = await page.find('q2-item > [slot=\"action\"]');\n let actionContainer = await page.find('q2-item >>> .action');\n\n expect(actionSlot).toBeTruthy();\n expect(actionContainer).toBeTruthy();\n\n await page.evaluate(() => {\n const actionSlot = document.querySelector('q2-item > [slot=\"action\"]');\n if (actionSlot && actionSlot.parentNode) {\n actionSlot.parentNode.removeChild(actionSlot);\n }\n });\n await page.waitForChanges();\n actionSlot = await page.find('q2-item > [slot=\"action\"]');\n actionContainer = await page.find('q2-item >>> .action');\n\n expect(actionSlot).toBeFalsy();\n expect(actionContainer).toBeFalsy();\n });\n it('when not set action not present', async () => {\n const page = await setup({\n html: `\n <q2-item />\n `,\n });\n const action = await page.find('q2-item >>> .action');\n\n expect(action).toBeFalsy();\n });\n it('when not set CSS grid adjusted', async () => {\n const page = await setup({\n html: `\n <q2-item>\n <div slot=\"body\">Test Body</div>\n <div slot=\"bullet\">Test Bullet</div>\n <div slot=\"footer\">Test Footer</div>\n </q2-item>\n `,\n });\n const itemContainer = await page.find('q2-item >>> .item');\n const footer = await page.find('q2-item >>> .footer');\n\n expect(itemContainer).toHaveClass('item-no-action');\n expect(footer).toHaveClass('footer-no-action');\n });\n });\n describe('body', () => {\n it('when set content displayed as body', async () => {\n const page = await setup({\n html: `\n <q2-item>\n <div slot=\"body\">Test Body</div>\n </q2-item>\n `,\n });\n const item = await page.find('q2-item');\n const body = await page.find('q2-item >>> .body');\n\n expect(item).toEqualText('Test Body');\n expect(body).toBeTruthy();\n });\n it('when not set body not present', async () => {\n const page = await setup({\n html: `\n <q2-item />\n `,\n });\n const body = await page.find('q2-item >>> .body');\n\n expect(body).toBeFalsy();\n });\n });\n describe('bullet', () => {\n it('when set content displayed as bullet', async () => {\n const page = await setup({\n html: `\n <q2-item>\n <div slot=\"bullet\">Test Bullet</div>\n </q2-item>\n `,\n });\n const item = await page.find('q2-item');\n const bullet = await page.find('q2-item >>> .bullet');\n\n expect(item).toEqualText('Test Bullet');\n expect(bullet).toBeTruthy();\n });\n it('when not set bullet not present', async () => {\n const page = await setup({\n html: `\n <q2-item />\n `,\n });\n const bullet = await page.find('q2-item >>> .bullet');\n\n expect(bullet).toBeFalsy();\n });\n it('when not set CSS grid adjusted', async () => {\n const page = await setup({\n html: `\n <q2-item>\n <div slot=\"action\">Test Action</div>\n <div slot=\"body\">Test Body</div>\n <div slot=\"footer\">Test Footer</div>\n </q2-item>\n `,\n });\n const itemContainer = await page.find('q2-item >>> .item');\n const action = await page.find('q2-item >>> .action');\n const main = await page.find('q2-item >>> .main');\n const footer = await page.find('q2-item >>> .footer');\n\n expect(itemContainer).toHaveClass('item-no-bullet');\n expect(action).toHaveClass('action-no-bullet');\n expect(main).toHaveClass('main-no-bullet');\n expect(footer).toHaveClass('footer-no-bullet');\n });\n });\n describe('footer', () => {\n it('when set content displayed as footer', async () => {\n const page = await setup({\n html: `\n <q2-item>\n <div slot=\"footer\">Test Footer</div>\n </q2-item>\n `,\n });\n const item = await page.find('q2-item');\n const footer = await page.find('q2-item >>> .footer');\n\n expect(item).toEqualText('Test Footer');\n expect(footer).toBeTruthy();\n });\n it('when not set footer not present', async () => {\n const page = await setup({\n html: `\n <q2-item />\n `,\n });\n const footer = await page.find('q2-item >>> .footer');\n\n expect(footer).toBeFalsy();\n });\n it('when not set CSS grid adjusted', async () => {\n const page = await setup({\n html: `\n <q2-item>\n <div slot=\"action\">Test Action</div>\n <div slot=\"body\">Test Body</div>\n <div slot=\"bullet\">Test Bullet</div>\n </q2-item>\n `,\n });\n const itemContainer = await page.find('q2-item >>> .item');\n const bullet = await page.find('q2-item >>> .bullet');\n\n expect(itemContainer).toHaveClass('item-no-footer');\n expect(bullet).toHaveClass('bullet-no-footer');\n });\n });\n describe('header/defalult', () => {\n it('when set content displayed as header', async () => {\n const page = await setup({\n html: `\n <q2-item>\n <div slot=\"header\">Test Header</div>\n </q2-item>\n `,\n });\n const item = await page.find('q2-item');\n const header = await page.find('q2-item >>> .header');\n\n expect(item).toEqualText('Test Header');\n expect(header).toBeTruthy();\n });\n it('when not set header not present', async () => {\n const page = await setup({\n html: `\n <q2-item />\n `,\n });\n const header = await page.find('q2-item >>> .header');\n\n expect(header).toBeFalsy();\n });\n it('when action and bullet missing CSS grid adjusted', async () => {\n const page = await setup({\n html: `\n <q2-item>\n <div slot=\"header\">Test Header</div>\n <div slot=\"footer\">Test Footer</div>\n </q2-item>\n `,\n });\n const itemContainer = await page.find('q2-item >>> .item');\n const main = await page.find('q2-item >>> .main');\n const footer = await page.find('q2-item >>> .footer');\n\n expect(itemContainer).toHaveClass('item-no-action-nor-bullet');\n expect(main).toHaveClass('main-no-action-nor-bullet');\n expect(footer).toHaveClass('footer-no-action-nor-bullet');\n });\n });\n });\n\n describe('focus', () => {\n let page: E2EPage;\n let item: E2EElement;\n beforeEach(async () => {\n page = await setup({\n html: `\n <q2-item clickable>\n <div slot=\"header\">Header Text</div>\n </q2-item>\n `,\n });\n item = await page.find('q2-item');\n\n expect(await innerActiveTestId(page)).toBeUndefined();\n });\n\n const innerActiveTestId = async (page: E2EPage) => {\n return page.$eval('q2-item', el => el.shadowRoot.activeElement?.getAttribute('test-id'));\n };\n\n it('focuses inner button when focus event is dispatched', async function (): Promise<void> {\n await item.triggerEvent('focus');\n await page.waitForChanges();\n\n expect(await innerActiveTestId(page)).toEqual('itemContainer');\n });\n\n it('focuses inner button when element.focus() is called', async function (): Promise<void> {\n await item.focus();\n await page.waitForChanges();\n\n expect(await innerActiveTestId(page)).toEqual('itemContainer');\n });\n });\n});\n"]}
@@ -0,0 +1,32 @@
1
+ import { newSpecPage } from "@stencil/core/testing";
2
+ import { Q2Item } from "../../collection/components/q2-item/q2-item";
3
+ describe('q2-item', () => {
4
+ let specPage;
5
+ describe('Props', () => {
6
+ describe('clickable', () => {
7
+ it('does not make the item clickable when not provided (default)', async () => {
8
+ specPage = await newSpecPage({
9
+ components: [Q2Item],
10
+ html: `<q2-item></q2-item>`,
11
+ });
12
+ expect(specPage.root.shadowRoot.querySelector('.item')).toEqualHtml(`
13
+ <div class="item item-no-action-nor-bullet item-no-footer" test-id="itemContainer">
14
+ <div class="main main-no-action-nor-bullet"></div>
15
+ </div>
16
+ `);
17
+ });
18
+ it('makes the item clickable when provided', async () => {
19
+ specPage = await newSpecPage({
20
+ components: [Q2Item],
21
+ html: `<q2-item clickable></q2-item>`,
22
+ });
23
+ expect(specPage.root.shadowRoot.querySelector('.item')).toEqualHtml(`
24
+ <div class="item item-no-action-nor-bullet item-no-footer" role="button" tabindex="0" test-id="itemContainer">
25
+ <div class="main main-no-action-nor-bullet"></div>
26
+ </div>
27
+ `);
28
+ });
29
+ });
30
+ });
31
+ });
32
+ //# sourceMappingURL=q2-item-test.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"q2-item-test.spec.js","sourceRoot":"","sources":["../../../test/elements/q2-item-test.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAExD,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACrB,IAAI,QAAkB,CAAC;IAEvB,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;QACnB,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;YACvB,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;gBAC1E,QAAQ,GAAG,MAAM,WAAW,CAAC;oBACzB,UAAU,EAAE,CAAC,MAAM,CAAC;oBACpB,IAAI,EAAE,qBAAqB;iBAC9B,CAAC,CAAC;gBACH,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;;;;iBAInE,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;gBACpD,QAAQ,GAAG,MAAM,WAAW,CAAC;oBACzB,UAAU,EAAE,CAAC,MAAM,CAAC;oBACpB,IAAI,EAAE,+BAA+B;iBACxC,CAAC,CAAC;gBACH,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;;;;iBAInE,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["import { SpecPage, newSpecPage } from '@stencil/core/testing';\nimport { Q2Item } from 'src/components/q2-item/q2-item';\n\ndescribe('q2-item', () => {\n let specPage: SpecPage;\n\n describe('Props', () => {\n describe('clickable', () => {\n it('does not make the item clickable when not provided (default)', async () => {\n specPage = await newSpecPage({\n components: [Q2Item],\n html: `<q2-item></q2-item>`,\n });\n expect(specPage.root.shadowRoot.querySelector('.item')).toEqualHtml(`\n <div class=\"item item-no-action-nor-bullet item-no-footer\" test-id=\"itemContainer\">\n <div class=\"main main-no-action-nor-bullet\"></div>\n </div>\n `);\n });\n\n it('makes the item clickable when provided', async () => {\n specPage = await newSpecPage({\n components: [Q2Item],\n html: `<q2-item clickable></q2-item>`,\n });\n expect(specPage.root.shadowRoot.querySelector('.item')).toEqualHtml(`\n <div class=\"item item-no-action-nor-bullet item-no-footer\" role=\"button\" tabindex=\"0\" test-id=\"itemContainer\">\n <div class=\"main main-no-action-nor-bullet\"></div>\n </div>\n `);\n });\n });\n });\n});\n"]}
@@ -0,0 +1,19 @@
1
+ import { evaluateA11y, setup } from "../helpers";
2
+ describe('q2-legend', () => {
3
+ const testData = [
4
+ { color: 'red', id: 'item1', name: 'Item 1', value: 1000000 },
5
+ { color: 'blue', id: 'item2', name: 'Item 2', value: 200 },
6
+ { color: 'green', id: 'item3', name: 'Item 3', value: 300 },
7
+ ];
8
+ describe('[A11y] guideline compliance', () => {
9
+ it('Does not have accessibility violations', async () => {
10
+ const page = await setup({ html: `<q2-legend />` });
11
+ const legend = (await page.find('q2-legend'));
12
+ legend.setProperty('data', testData);
13
+ await page.waitForChanges();
14
+ const hasViolations = await evaluateA11y(page);
15
+ expect(hasViolations).toBe(false);
16
+ });
17
+ });
18
+ });
19
+ //# sourceMappingURL=q2-legend-test.e2e.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"q2-legend-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-legend-test.e2e.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjD,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACvB,MAAM,QAAQ,GAAG;QACb,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE;QAC7D,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;QAC1D,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;KAC9D,CAAC;IAEF,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACzC,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAiC,CAAC;YAC9E,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACrC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAC5B,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;YAE/C,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["import { E2EElement } from '@stencil/core/testing';\nimport { evaluateA11y, setup } from '../helpers';\n\ndescribe('q2-legend', () => {\n const testData = [\n { color: 'red', id: 'item1', name: 'Item 1', value: 1000000 },\n { color: 'blue', id: 'item2', name: 'Item 2', value: 200 },\n { color: 'green', id: 'item3', name: 'Item 3', value: 300 },\n ];\n\n describe('[A11y] guideline compliance', () => {\n it('Does not have accessibility violations', async () => {\n const page = await setup({ html: `<q2-legend />` });\n const legend = (await page.find('q2-legend')) as E2EElement & { data: any[] };\n legend.setProperty('data', testData);\n await page.waitForChanges();\n const hasViolations = await evaluateA11y(page);\n\n expect(hasViolations).toBe(false);\n });\n });\n});\n"]}
@@ -0,0 +1,271 @@
1
+ import { h } from "@stencil/core";
2
+ import { newSpecPage } from "@stencil/core/testing";
3
+ import { Q2Legend } from "../../src/components/q2-legend/q2-legend";
4
+ describe('q2-legend', () => {
5
+ const setupSpecPage = async (attributes = {}) => {
6
+ const page = await newSpecPage({
7
+ components: [Q2Legend],
8
+ template: () => (h("q2-legend", Object.assign({ data: testData }, attributes))),
9
+ });
10
+ page.waitForChanges();
11
+ return page;
12
+ };
13
+ const testData = [
14
+ { color: 'red', id: 'item1', name: 'Item 1', value: 1000000 },
15
+ { color: 'blue', id: 'item2', name: 'Item 2', value: 200 },
16
+ { color: 'green', id: 'item3', name: 'Item 3', value: 300 },
17
+ ];
18
+ describe('Props', () => {
19
+ describe('data', () => {
20
+ it('when set set legend items rendered', async () => {
21
+ var _a;
22
+ const page = await setupSpecPage();
23
+ const legendItems = page.root.shadowRoot.querySelectorAll('[test-id="item"]');
24
+ const legendItemColor = (_a = legendItems[0].querySelector('[test-id="itemColor"]')) === null || _a === void 0 ? void 0 : _a.getAttribute('style');
25
+ const legendItemName = legendItems[0].querySelector('[test-id="itemName"]').innerHTML;
26
+ const legendItemValue = legendItems[0].querySelector('[test-id="itemValue"]').innerHTML;
27
+ expect(legendItems).toHaveLength(testData.length);
28
+ expect(legendItemColor).toContain(`background-color: ${testData[0].color}`);
29
+ expect(legendItemName).toEqual(testData[0].name);
30
+ expect(legendItemValue).toEqual(Intl.NumberFormat('en-US').format(testData[0].value));
31
+ });
32
+ });
33
+ describe('format', () => {
34
+ it('when set to "default" should format the value of the legend item', async () => {
35
+ const page = await setupSpecPage({ format: 'default' });
36
+ const legendItemValue = page.root.shadowRoot.querySelector('[test-id="itemValue"]').innerHTML;
37
+ expect(legendItemValue).toEqual(Intl.NumberFormat('en-US').format(testData[0].value));
38
+ });
39
+ it('when set to "currency" should format the value of the legend item', async () => {
40
+ const page = await setupSpecPage({ format: 'currency' });
41
+ const legendItemValue = page.root.shadowRoot.querySelector('[test-id="itemValue"]').innerHTML;
42
+ expect(legendItemValue).toEqual(Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(testData[0].value));
43
+ });
44
+ });
45
+ describe('hoveredItemId', () => {
46
+ it('when set to existing index all items except the corresponding item should be faded', async () => {
47
+ const page = await setupSpecPage({ hoveredItemId: 'item1' });
48
+ const legendItemButtons = page.root.shadowRoot.querySelectorAll('[test-id="item"]');
49
+ legendItemButtons.forEach((item, index) => {
50
+ if (index === 0) {
51
+ expect(item).not.toHaveClass('item-button-faded');
52
+ }
53
+ else {
54
+ expect(item).toHaveClass('item-button-faded');
55
+ }
56
+ });
57
+ });
58
+ it('when changed after render a new item is highlighted', async () => {
59
+ const page = await setupSpecPage({ hoveredItemId: 'item1' });
60
+ const legend = page.root;
61
+ const legendItemButtons = legend.shadowRoot.querySelectorAll('[test-id="item"]');
62
+ legend.hoveredItemId = 'item2';
63
+ await page.waitForChanges();
64
+ legendItemButtons.forEach((item, index) => {
65
+ if (index === 1) {
66
+ expect(item).not.toHaveClass('item-button-faded');
67
+ }
68
+ else {
69
+ expect(item).toHaveClass('item-button-faded');
70
+ }
71
+ });
72
+ });
73
+ });
74
+ describe('selectedItemId', () => {
75
+ it('when set to existing index the corresponding item should be selected and all other items should be faded', async () => {
76
+ const page = await setupSpecPage({ selectedItemId: 'item1' });
77
+ const legendItemButtons = page.root.shadowRoot.querySelectorAll('[test-id="item"]');
78
+ legendItemButtons.forEach((item, index) => {
79
+ if (index === 0) {
80
+ expect(item).toHaveClass('item-button-selected');
81
+ expect(item).not.toHaveClass('item-button-faded');
82
+ }
83
+ else {
84
+ expect(item).toHaveClass('item-button-faded');
85
+ }
86
+ });
87
+ });
88
+ it('when changed after render a new item is selected', async () => {
89
+ const page = await setupSpecPage({ selectedItemId: 'item1' });
90
+ const legend = page.root;
91
+ const legendItemButtons = legend.shadowRoot.querySelectorAll('[test-id="item"]');
92
+ legend.selectedItemId = 'item2';
93
+ await page.waitForChanges();
94
+ legendItemButtons.forEach((item, index) => {
95
+ if (index === 1) {
96
+ expect(item).toHaveClass('item-button-selected');
97
+ expect(item).not.toHaveClass('item-button-faded');
98
+ }
99
+ else {
100
+ expect(item).toHaveClass('item-button-faded');
101
+ }
102
+ });
103
+ });
104
+ });
105
+ });
106
+ describe('Events', () => {
107
+ describe('click', () => {
108
+ it('when a legend item is clicked an event with an item data payload should be emitted', async () => {
109
+ const page = await setupSpecPage();
110
+ const legend = page.root;
111
+ const eventSpy = jest.fn();
112
+ legend.addEventListener('click', eventSpy);
113
+ const legendItemButton = page.root.shadowRoot.querySelector('[test-id="item"]');
114
+ await legendItemButton.click();
115
+ expect(eventSpy).toHaveBeenCalled();
116
+ expect(eventSpy.mock.calls[0][0].detail).toEqual(testData[0]);
117
+ });
118
+ });
119
+ describe('mouseenter', () => {
120
+ it('when a legend item is hovered over an event with an item data payload should be emitted', async () => {
121
+ const page = await setupSpecPage();
122
+ const legend = page.root;
123
+ const eventSpy = jest.fn();
124
+ legend.addEventListener('mouseenter', eventSpy);
125
+ const legendItemButton = page.root.shadowRoot.querySelector('[test-id="item"]');
126
+ const mouseenterEvent = new MouseEvent('mouseenter', {
127
+ view: window,
128
+ bubbles: true,
129
+ cancelable: true,
130
+ });
131
+ await legendItemButton.dispatchEvent(mouseenterEvent);
132
+ page.waitForChanges();
133
+ expect(eventSpy).toHaveBeenCalled();
134
+ expect(eventSpy.mock.calls[0][0].detail).toEqual(testData[0]);
135
+ });
136
+ });
137
+ describe('mouseleave', () => {
138
+ it('when a legend item is hovered over an event with an item data payload should be emitted', async () => {
139
+ const page = await setupSpecPage();
140
+ const legend = page.root;
141
+ const eventSpy = jest.fn();
142
+ legend.addEventListener('mouseleave', eventSpy);
143
+ const legendItemButton = page.root.shadowRoot.querySelector('[test-id="item"]');
144
+ const mouseleaveEvent = new MouseEvent('mouseleave', {
145
+ view: window,
146
+ bubbles: true,
147
+ cancelable: true,
148
+ });
149
+ await legendItemButton.dispatchEvent(mouseleaveEvent);
150
+ page.waitForChanges();
151
+ expect(eventSpy).toHaveBeenCalled();
152
+ expect(eventSpy.mock.calls[0][0].detail).toEqual(testData[0]);
153
+ });
154
+ });
155
+ });
156
+ describe('Behavior', () => {
157
+ it('when a legend item is clicked it should be selected and all other items should be faded', async () => {
158
+ const page = await setupSpecPage();
159
+ const legendItemButtons = page.root.shadowRoot.querySelectorAll('[test-id="item"]');
160
+ await legendItemButtons[0].click();
161
+ await page.waitForChanges();
162
+ legendItemButtons.forEach((item, index) => {
163
+ if (index === 0) {
164
+ expect(item).toHaveClass('item-button-selected');
165
+ expect(item).not.toHaveClass('item-button-faded');
166
+ }
167
+ else {
168
+ expect(item).toHaveClass('item-button-faded');
169
+ }
170
+ });
171
+ });
172
+ it('when a selected legend item is clicked it should be deselected and the other items should remain faded', async () => {
173
+ const page = await setupSpecPage();
174
+ const legendItemButtons = page.root.shadowRoot.querySelectorAll('[test-id="item"]');
175
+ await legendItemButtons[0].click();
176
+ await page.waitForChanges();
177
+ legendItemButtons.forEach((item, index) => {
178
+ if (index === 0) {
179
+ expect(item).toHaveClass('item-button-selected');
180
+ expect(item).not.toHaveClass('item-button-faded');
181
+ }
182
+ else {
183
+ expect(item).toHaveClass('item-button-faded');
184
+ }
185
+ });
186
+ await legendItemButtons[0].click();
187
+ await page.waitForChanges();
188
+ legendItemButtons.forEach((item, index) => {
189
+ if (index === 0) {
190
+ expect(item).not.toHaveClass('item-button-selected');
191
+ expect(item).not.toHaveClass('item-button-faded');
192
+ }
193
+ else {
194
+ expect(item).toHaveClass('item-button-faded');
195
+ }
196
+ });
197
+ });
198
+ it('when a selected legend is deselected via the keyboard no items should be faded', async () => {
199
+ const page = await setupSpecPage();
200
+ const legendItemButtons = page.root.shadowRoot.querySelectorAll('[test-id="item"]');
201
+ const keyboardSelectClickEvent = new MouseEvent('click', { detail: 0 });
202
+ await legendItemButtons[0].dispatchEvent(keyboardSelectClickEvent);
203
+ await page.waitForChanges();
204
+ legendItemButtons.forEach((item, index) => {
205
+ if (index === 0) {
206
+ expect(item).toHaveClass('item-button-selected');
207
+ expect(item).not.toHaveClass('item-button-faded');
208
+ }
209
+ else {
210
+ expect(item).toHaveClass('item-button-faded');
211
+ }
212
+ });
213
+ const keyboardUnselectClickEvent = new MouseEvent('click', { detail: 0 });
214
+ await legendItemButtons[0].dispatchEvent(keyboardUnselectClickEvent);
215
+ await page.waitForChanges();
216
+ legendItemButtons.forEach((item) => {
217
+ expect(item).not.toHaveClass('item-button-selected');
218
+ expect(item).not.toHaveClass('item-button-faded');
219
+ });
220
+ });
221
+ it('when a legend item is hovered over all other items should be faded except for selected items', async () => {
222
+ const page = await setupSpecPage();
223
+ const legendItemButtons = page.root.shadowRoot.querySelectorAll('[test-id="item"]');
224
+ const secondLegendItemButton = legendItemButtons[1];
225
+ await secondLegendItemButton.click();
226
+ await page.waitForChanges();
227
+ const firstLegendItemButton = legendItemButtons[0];
228
+ const mouseenterEvent = new MouseEvent('mouseenter', {
229
+ view: window,
230
+ bubbles: true,
231
+ cancelable: true,
232
+ });
233
+ await firstLegendItemButton.dispatchEvent(mouseenterEvent);
234
+ await page.waitForChanges();
235
+ legendItemButtons.forEach((item, index) => {
236
+ if (index === 0) {
237
+ expect(item).not.toHaveClass('item-button-faded');
238
+ expect(item).not.toHaveClass('item-button-selected');
239
+ }
240
+ else if (index === 1) {
241
+ expect(item).toHaveClass('item-button-selected');
242
+ }
243
+ else {
244
+ expect(item).toHaveClass('item-button-faded');
245
+ }
246
+ });
247
+ });
248
+ it('after clicking outside of the legend all items should not be faded', async () => {
249
+ const page = await setupSpecPage();
250
+ const legendItemButtons = page.root.shadowRoot.querySelectorAll('[test-id="item"]');
251
+ await legendItemButtons[0].click();
252
+ await page.waitForChanges();
253
+ legendItemButtons.forEach((item, index) => {
254
+ if (index === 0) {
255
+ expect(item).not.toHaveClass('item-button-faded');
256
+ }
257
+ else {
258
+ expect(item).toHaveClass('item-button-faded');
259
+ }
260
+ });
261
+ const clickElsewhere = page.root.shadowRoot.querySelector('click-elsewhere');
262
+ const changeEvent = new Event('change');
263
+ await clickElsewhere.dispatchEvent(changeEvent);
264
+ await page.waitForChanges();
265
+ legendItemButtons.forEach((item) => {
266
+ expect(item).not.toHaveClass('item-button-faded');
267
+ });
268
+ });
269
+ });
270
+ });
271
+ //# sourceMappingURL=q2-legend-test.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"q2-legend-test.spec.js","sourceRoot":"","sources":["../../../test/elements/q2-legend-test.spec.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAC;AAEpE,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACvB,MAAM,aAAa,GAAG,KAAK,EAAE,UAAU,GAAG,EAAE,EAAE,EAAE;QAC5C,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC3B,UAAU,EAAE,CAAC,QAAQ,CAAC;YACtB,QAAQ,EAAE,GAAG,EAAE,CAAC,CACZ,+BACI,IAAI,EAAE,QAAQ,IACV,UAAU,EAChB,CACL;SACJ,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG;QACb,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE;QAC7D,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;QAC1D,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;KAC9D,CAAC;IAEF,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;QACnB,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;YAClB,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;;gBAChD,MAAM,IAAI,GAAG,MAAM,aAAa,EAAE,CAAC;gBACnC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;gBAC9E,MAAM,eAAe,GAAG,MAAA,WAAW,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,uBAAuB,CAAC,0CAAE,YAAY,CAAC,OAAO,CAAC,CAAC;gBACrG,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC,SAAS,CAAC;gBACtF,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC,SAAS,CAAC;gBAExF,MAAM,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAClD,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,qBAAqB,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC5E,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACjD,MAAM,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1F,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;YACpB,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;gBAC9E,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;gBACxD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC,SAAS,CAAC;gBAE9F,MAAM,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1F,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;gBAC/E,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;gBACzD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC,SAAS,CAAC;gBAE9F,MAAM,CAAC,eAAe,CAAC,CAAC,OAAO,CAC3B,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAC/F,CAAC;YACN,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;YAC3B,EAAE,CAAC,oFAAoF,EAAE,KAAK,IAAI,EAAE;gBAChG,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC7D,MAAM,iBAAiB,GACnB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;gBAE9D,iBAAiB,CAAC,OAAO,CAAC,CAAC,IAAiB,EAAE,KAAK,EAAE,EAAE;oBACnD,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;wBACd,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;oBACtD,CAAC;yBAAM,CAAC;wBACJ,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;oBAClD,CAAC;gBACL,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;gBACjE,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;gBACzB,MAAM,iBAAiB,GACnB,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;gBAC3D,MAAM,CAAC,aAAa,GAAG,OAAO,CAAC;gBAC/B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,iBAAiB,CAAC,OAAO,CAAC,CAAC,IAAiB,EAAE,KAAK,EAAE,EAAE;oBACnD,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;wBACd,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;oBACtD,CAAC;yBAAM,CAAC;wBACJ,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;oBAClD,CAAC;gBACL,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;YAC5B,EAAE,CAAC,0GAA0G,EAAE,KAAK,IAAI,EAAE;gBACtH,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC9D,MAAM,iBAAiB,GACnB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;gBAE9D,iBAAiB,CAAC,OAAO,CAAC,CAAC,IAAiB,EAAE,KAAK,EAAE,EAAE;oBACnD,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;wBACd,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;wBACjD,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;oBACtD,CAAC;yBAAM,CAAC;wBACJ,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;oBAClD,CAAC;gBACL,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;gBAC9D,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;gBACzB,MAAM,iBAAiB,GACnB,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;gBAC3D,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC;gBAChC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,iBAAiB,CAAC,OAAO,CAAC,CAAC,IAAiB,EAAE,KAAK,EAAE,EAAE;oBACnD,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;wBACd,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;wBACjD,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;oBACtD,CAAC;yBAAM,CAAC;wBACJ,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;oBAClD,CAAC;gBACL,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACpB,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;YACnB,EAAE,CAAC,oFAAoF,EAAE,KAAK,IAAI,EAAE;gBAChG,MAAM,IAAI,GAAG,MAAM,aAAa,EAAE,CAAC;gBACnC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;gBACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;gBAC3B,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAC3C,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,kBAAkB,CAAsB,CAAC;gBACrG,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;gBAE/B,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC;gBACpC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAClE,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;YACxB,EAAE,CAAC,yFAAyF,EAAE,KAAK,IAAI,EAAE;gBACrG,MAAM,IAAI,GAAG,MAAM,aAAa,EAAE,CAAC;gBACnC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;gBACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;gBAC3B,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;gBAChD,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,kBAAkB,CAAsB,CAAC;gBACrG,MAAM,eAAe,GAAG,IAAI,UAAU,CAAC,YAAY,EAAE;oBACjD,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,IAAI;oBACb,UAAU,EAAE,IAAI;iBACnB,CAAC,CAAC;gBACH,MAAM,gBAAgB,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;gBACtD,IAAI,CAAC,cAAc,EAAE,CAAC;gBAEtB,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC;gBACpC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAClE,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;YACxB,EAAE,CAAC,yFAAyF,EAAE,KAAK,IAAI,EAAE;gBACrG,MAAM,IAAI,GAAG,MAAM,aAAa,EAAE,CAAC;gBACnC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;gBACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;gBAC3B,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;gBAChD,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,kBAAkB,CAAsB,CAAC;gBACrG,MAAM,eAAe,GAAG,IAAI,UAAU,CAAC,YAAY,EAAE;oBACjD,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,IAAI;oBACb,UAAU,EAAE,IAAI;iBACnB,CAAC,CAAC;gBACH,MAAM,gBAAgB,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;gBACtD,IAAI,CAAC,cAAc,EAAE,CAAC;gBAEtB,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC;gBACpC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAClE,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACtB,EAAE,CAAC,yFAAyF,EAAE,KAAK,IAAI,EAAE;YACrG,MAAM,IAAI,GAAG,MAAM,aAAa,EAAE,CAAC;YACnC,MAAM,iBAAiB,GACnB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;YAC9D,MAAM,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;YACnC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,iBAAiB,CAAC,OAAO,CAAC,CAAC,IAAiB,EAAE,KAAK,EAAE,EAAE;gBACnD,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;oBACd,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;oBACjD,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;gBACtD,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;gBAClD,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wGAAwG,EAAE,KAAK,IAAI,EAAE;YACpH,MAAM,IAAI,GAAG,MAAM,aAAa,EAAE,CAAC;YACnC,MAAM,iBAAiB,GACnB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;YAC9D,MAAM,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;YACnC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,iBAAiB,CAAC,OAAO,CAAC,CAAC,IAAiB,EAAE,KAAK,EAAE,EAAE;gBACnD,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;oBACd,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;oBACjD,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;gBACtD,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;gBAClD,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,MAAM,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;YACnC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,iBAAiB,CAAC,OAAO,CAAC,CAAC,IAAiB,EAAE,KAAK,EAAE,EAAE;gBACnD,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;oBACd,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;oBACrD,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;gBACtD,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;gBAClD,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,gFAAgF,EAAE,KAAK,IAAI,EAAE;YAC5F,MAAM,IAAI,GAAG,MAAM,aAAa,EAAE,CAAC;YACnC,MAAM,iBAAiB,GACnB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;YAC9D,MAAM,wBAAwB,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;YACxE,MAAM,iBAAiB,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC;YACnE,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,iBAAiB,CAAC,OAAO,CAAC,CAAC,IAAiB,EAAE,KAAK,EAAE,EAAE;gBACnD,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;oBACd,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;oBACjD,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;gBACtD,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;gBAClD,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,MAAM,0BAA0B,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;YAC1E,MAAM,iBAAiB,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC;YACrE,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,iBAAiB,CAAC,OAAO,CAAC,CAAC,IAAiB,EAAE,EAAE;gBAC5C,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;gBACrD,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,8FAA8F,EAAE,KAAK,IAAI,EAAE;YAC1G,MAAM,IAAI,GAAG,MAAM,aAAa,EAAE,CAAC;YACnC,MAAM,iBAAiB,GACnB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;YAC9D,MAAM,sBAAsB,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;YACpD,MAAM,sBAAsB,CAAC,KAAK,EAAE,CAAC;YACrC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAC5B,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;YACnD,MAAM,eAAe,GAAG,IAAI,UAAU,CAAC,YAAY,EAAE;gBACjD,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,IAAI;aACnB,CAAC,CAAC;YACH,MAAM,qBAAqB,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;YAC3D,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,iBAAiB,CAAC,OAAO,CAAC,CAAC,IAAiB,EAAE,KAAK,EAAE,EAAE;gBACnD,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;oBACd,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;oBAClD,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;gBACzD,CAAC;qBAAM,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;oBACrB,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;gBACrD,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;gBAClD,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;YAChF,MAAM,IAAI,GAAG,MAAM,aAAa,EAAE,CAAC;YACnC,MAAM,iBAAiB,GACnB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;YAC9D,MAAM,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;YACnC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,iBAAiB,CAAC,OAAO,CAAC,CAAC,IAAiB,EAAE,KAAK,EAAE,EAAE;gBACnD,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;oBACd,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;gBACtD,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;gBAClD,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;YAC7E,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;YACxC,MAAM,cAAc,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YAChD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,iBAAiB,CAAC,OAAO,CAAC,CAAC,IAAiB,EAAE,EAAE;gBAC5C,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["import { h } from '@stencil/core';\nimport { newSpecPage } from '@stencil/core/testing';\nimport { Q2Legend } from '../../src/components/q2-legend/q2-legend';\n\ndescribe('q2-legend', () => {\n const setupSpecPage = async (attributes = {}) => {\n const page = await newSpecPage({\n components: [Q2Legend],\n template: () => (\n <q2-legend\n data={testData}\n {...attributes}\n />\n ),\n });\n page.waitForChanges();\n\n return page;\n };\n\n const testData = [\n { color: 'red', id: 'item1', name: 'Item 1', value: 1000000 },\n { color: 'blue', id: 'item2', name: 'Item 2', value: 200 },\n { color: 'green', id: 'item3', name: 'Item 3', value: 300 },\n ];\n\n describe('Props', () => {\n describe('data', () => {\n it('when set set legend items rendered', async () => {\n const page = await setupSpecPage();\n const legendItems = page.root.shadowRoot.querySelectorAll('[test-id=\"item\"]');\n const legendItemColor = legendItems[0].querySelector('[test-id=\"itemColor\"]')?.getAttribute('style');\n const legendItemName = legendItems[0].querySelector('[test-id=\"itemName\"]').innerHTML;\n const legendItemValue = legendItems[0].querySelector('[test-id=\"itemValue\"]').innerHTML;\n\n expect(legendItems).toHaveLength(testData.length);\n expect(legendItemColor).toContain(`background-color: ${testData[0].color}`);\n expect(legendItemName).toEqual(testData[0].name);\n expect(legendItemValue).toEqual(Intl.NumberFormat('en-US').format(testData[0].value));\n });\n });\n\n describe('format', () => {\n it('when set to \"default\" should format the value of the legend item', async () => {\n const page = await setupSpecPage({ format: 'default' });\n const legendItemValue = page.root.shadowRoot.querySelector('[test-id=\"itemValue\"]').innerHTML;\n\n expect(legendItemValue).toEqual(Intl.NumberFormat('en-US').format(testData[0].value));\n });\n it('when set to \"currency\" should format the value of the legend item', async () => {\n const page = await setupSpecPage({ format: 'currency' });\n const legendItemValue = page.root.shadowRoot.querySelector('[test-id=\"itemValue\"]').innerHTML;\n\n expect(legendItemValue).toEqual(\n Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(testData[0].value)\n );\n });\n });\n\n describe('hoveredItemId', () => {\n it('when set to existing index all items except the corresponding item should be faded', async () => {\n const page = await setupSpecPage({ hoveredItemId: 'item1' });\n const legendItemButtons: NodeListOf<HTMLButtonElement> =\n page.root.shadowRoot.querySelectorAll('[test-id=\"item\"]');\n\n legendItemButtons.forEach((item: HTMLElement, index) => {\n if (index === 0) {\n expect(item).not.toHaveClass('item-button-faded');\n } else {\n expect(item).toHaveClass('item-button-faded');\n }\n });\n });\n it('when changed after render a new item is highlighted', async () => {\n const page = await setupSpecPage({ hoveredItemId: 'item1' });\n const legend = page.root;\n const legendItemButtons: NodeListOf<HTMLButtonElement> =\n legend.shadowRoot.querySelectorAll('[test-id=\"item\"]');\n legend.hoveredItemId = 'item2';\n await page.waitForChanges();\n\n legendItemButtons.forEach((item: HTMLElement, index) => {\n if (index === 1) {\n expect(item).not.toHaveClass('item-button-faded');\n } else {\n expect(item).toHaveClass('item-button-faded');\n }\n });\n });\n });\n\n describe('selectedItemId', () => {\n it('when set to existing index the corresponding item should be selected and all other items should be faded', async () => {\n const page = await setupSpecPage({ selectedItemId: 'item1' });\n const legendItemButtons: NodeListOf<HTMLButtonElement> =\n page.root.shadowRoot.querySelectorAll('[test-id=\"item\"]');\n\n legendItemButtons.forEach((item: HTMLElement, index) => {\n if (index === 0) {\n expect(item).toHaveClass('item-button-selected');\n expect(item).not.toHaveClass('item-button-faded');\n } else {\n expect(item).toHaveClass('item-button-faded');\n }\n });\n });\n it('when changed after render a new item is selected', async () => {\n const page = await setupSpecPage({ selectedItemId: 'item1' });\n const legend = page.root;\n const legendItemButtons: NodeListOf<HTMLButtonElement> =\n legend.shadowRoot.querySelectorAll('[test-id=\"item\"]');\n legend.selectedItemId = 'item2';\n await page.waitForChanges();\n\n legendItemButtons.forEach((item: HTMLElement, index) => {\n if (index === 1) {\n expect(item).toHaveClass('item-button-selected');\n expect(item).not.toHaveClass('item-button-faded');\n } else {\n expect(item).toHaveClass('item-button-faded');\n }\n });\n });\n });\n });\n\n describe('Events', () => {\n describe('click', () => {\n it('when a legend item is clicked an event with an item data payload should be emitted', async () => {\n const page = await setupSpecPage();\n const legend = page.root;\n const eventSpy = jest.fn();\n legend.addEventListener('click', eventSpy);\n const legendItemButton = page.root.shadowRoot.querySelector('[test-id=\"item\"]') as HTMLButtonElement;\n await legendItemButton.click();\n\n expect(eventSpy).toHaveBeenCalled();\n expect(eventSpy.mock.calls[0][0].detail).toEqual(testData[0]);\n });\n });\n\n describe('mouseenter', () => {\n it('when a legend item is hovered over an event with an item data payload should be emitted', async () => {\n const page = await setupSpecPage();\n const legend = page.root;\n const eventSpy = jest.fn();\n legend.addEventListener('mouseenter', eventSpy);\n const legendItemButton = page.root.shadowRoot.querySelector('[test-id=\"item\"]') as HTMLButtonElement;\n const mouseenterEvent = new MouseEvent('mouseenter', {\n view: window,\n bubbles: true,\n cancelable: true,\n });\n await legendItemButton.dispatchEvent(mouseenterEvent);\n page.waitForChanges();\n\n expect(eventSpy).toHaveBeenCalled();\n expect(eventSpy.mock.calls[0][0].detail).toEqual(testData[0]);\n });\n });\n\n describe('mouseleave', () => {\n it('when a legend item is hovered over an event with an item data payload should be emitted', async () => {\n const page = await setupSpecPage();\n const legend = page.root;\n const eventSpy = jest.fn();\n legend.addEventListener('mouseleave', eventSpy);\n const legendItemButton = page.root.shadowRoot.querySelector('[test-id=\"item\"]') as HTMLButtonElement;\n const mouseleaveEvent = new MouseEvent('mouseleave', {\n view: window,\n bubbles: true,\n cancelable: true,\n });\n await legendItemButton.dispatchEvent(mouseleaveEvent);\n page.waitForChanges();\n\n expect(eventSpy).toHaveBeenCalled();\n expect(eventSpy.mock.calls[0][0].detail).toEqual(testData[0]);\n });\n });\n });\n\n describe('Behavior', () => {\n it('when a legend item is clicked it should be selected and all other items should be faded', async () => {\n const page = await setupSpecPage();\n const legendItemButtons: NodeListOf<HTMLButtonElement> =\n page.root.shadowRoot.querySelectorAll('[test-id=\"item\"]');\n await legendItemButtons[0].click();\n await page.waitForChanges();\n\n legendItemButtons.forEach((item: HTMLElement, index) => {\n if (index === 0) {\n expect(item).toHaveClass('item-button-selected');\n expect(item).not.toHaveClass('item-button-faded');\n } else {\n expect(item).toHaveClass('item-button-faded');\n }\n });\n });\n it('when a selected legend item is clicked it should be deselected and the other items should remain faded', async () => {\n const page = await setupSpecPage();\n const legendItemButtons: NodeListOf<HTMLButtonElement> =\n page.root.shadowRoot.querySelectorAll('[test-id=\"item\"]');\n await legendItemButtons[0].click();\n await page.waitForChanges();\n\n legendItemButtons.forEach((item: HTMLElement, index) => {\n if (index === 0) {\n expect(item).toHaveClass('item-button-selected');\n expect(item).not.toHaveClass('item-button-faded');\n } else {\n expect(item).toHaveClass('item-button-faded');\n }\n });\n\n await legendItemButtons[0].click();\n await page.waitForChanges();\n\n legendItemButtons.forEach((item: HTMLElement, index) => {\n if (index === 0) {\n expect(item).not.toHaveClass('item-button-selected');\n expect(item).not.toHaveClass('item-button-faded');\n } else {\n expect(item).toHaveClass('item-button-faded');\n }\n });\n });\n it('when a selected legend is deselected via the keyboard no items should be faded', async () => {\n const page = await setupSpecPage();\n const legendItemButtons: NodeListOf<HTMLButtonElement> =\n page.root.shadowRoot.querySelectorAll('[test-id=\"item\"]');\n const keyboardSelectClickEvent = new MouseEvent('click', { detail: 0 });\n await legendItemButtons[0].dispatchEvent(keyboardSelectClickEvent);\n await page.waitForChanges();\n\n legendItemButtons.forEach((item: HTMLElement, index) => {\n if (index === 0) {\n expect(item).toHaveClass('item-button-selected');\n expect(item).not.toHaveClass('item-button-faded');\n } else {\n expect(item).toHaveClass('item-button-faded');\n }\n });\n\n const keyboardUnselectClickEvent = new MouseEvent('click', { detail: 0 });\n await legendItemButtons[0].dispatchEvent(keyboardUnselectClickEvent);\n await page.waitForChanges();\n\n legendItemButtons.forEach((item: HTMLElement) => {\n expect(item).not.toHaveClass('item-button-selected');\n expect(item).not.toHaveClass('item-button-faded');\n });\n });\n it('when a legend item is hovered over all other items should be faded except for selected items', async () => {\n const page = await setupSpecPage();\n const legendItemButtons: NodeListOf<HTMLButtonElement> =\n page.root.shadowRoot.querySelectorAll('[test-id=\"item\"]');\n const secondLegendItemButton = legendItemButtons[1];\n await secondLegendItemButton.click();\n await page.waitForChanges();\n const firstLegendItemButton = legendItemButtons[0];\n const mouseenterEvent = new MouseEvent('mouseenter', {\n view: window,\n bubbles: true,\n cancelable: true,\n });\n await firstLegendItemButton.dispatchEvent(mouseenterEvent);\n await page.waitForChanges();\n\n legendItemButtons.forEach((item: HTMLElement, index) => {\n if (index === 0) {\n expect(item).not.toHaveClass('item-button-faded');\n expect(item).not.toHaveClass('item-button-selected');\n } else if (index === 1) {\n expect(item).toHaveClass('item-button-selected');\n } else {\n expect(item).toHaveClass('item-button-faded');\n }\n });\n });\n it('after clicking outside of the legend all items should not be faded', async () => {\n const page = await setupSpecPage();\n const legendItemButtons: NodeListOf<HTMLButtonElement> =\n page.root.shadowRoot.querySelectorAll('[test-id=\"item\"]');\n await legendItemButtons[0].click();\n await page.waitForChanges();\n\n legendItemButtons.forEach((item: HTMLElement, index) => {\n if (index === 0) {\n expect(item).not.toHaveClass('item-button-faded');\n } else {\n expect(item).toHaveClass('item-button-faded');\n }\n });\n\n const clickElsewhere = page.root.shadowRoot.querySelector('click-elsewhere');\n const changeEvent = new Event('change');\n await clickElsewhere.dispatchEvent(changeEvent);\n await page.waitForChanges();\n\n legendItemButtons.forEach((item: HTMLElement) => {\n expect(item).not.toHaveClass('item-button-faded');\n });\n });\n });\n});\n"]}
@@ -447,6 +447,28 @@ describe('q2-pagination', () => {
447
447
  });
448
448
  });
449
449
  });
450
+ describe('perPageIncrements', () => {
451
+ beforeEach(async () => {
452
+ await page.setContent(`<q2-pagination total="500"></q2-pagination>`);
453
+ pagination = await page.find('q2-pagination');
454
+ pagination.setProperty('perPageIncrements', [10, 20, 30]);
455
+ await page.waitForChanges();
456
+ });
457
+ it('show perPage dropdown', async () => {
458
+ const select = await page.find('q2-pagination >>> q2-select');
459
+ expect(select).toBeTruthy();
460
+ const options = await page.findAll('q2-pagination >>> q2-select > q2-option');
461
+ expect(options).toHaveLength(3);
462
+ });
463
+ it('set perPage properly using dropdown', async () => {
464
+ await dispatchEvent(page, ['q2-pagination', 'q2-select', 'q2-input'], 'click');
465
+ const options = await page.findAll('q2-pagination >>> q2-select > q2-option');
466
+ // click 2nd option (perPage 20)
467
+ options[1].click();
468
+ await page.waitForChanges();
469
+ expect(await pagination.getProperty('perPage')).toBe(20);
470
+ });
471
+ });
450
472
  });
451
473
  });
452
474
  //# sourceMappingURL=q2-pagination-test.e2e.js.map