q2-tecton-elements 1.45.3 → 1.46.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 (285) hide show
  1. package/dist/cjs/click-elsewhere_2.cjs.entry.js +1 -1
  2. package/dist/cjs/click-elsewhere_2.cjs.entry.js.map +1 -1
  3. package/dist/cjs/{index-0430339e.js → index-c385e32f.js} +1 -1
  4. package/dist/cjs/{index-0430339e.js.map → index-c385e32f.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.cjs.entry.js +33 -2
  11. package/dist/cjs/q2-carousel.cjs.entry.js.map +1 -1
  12. package/dist/cjs/q2-currency.cjs.entry.js +1 -1
  13. package/dist/cjs/q2-currency.cjs.entry.js.map +1 -1
  14. package/dist/cjs/q2-dropdown.cjs.entry.js +1 -1
  15. package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
  16. package/dist/cjs/q2-input.cjs.entry.js +17 -10
  17. package/dist/cjs/q2-input.cjs.entry.js.map +1 -1
  18. package/dist/cjs/q2-item.cjs.entry.js +1 -1
  19. package/dist/cjs/q2-item.cjs.entry.js.map +1 -1
  20. package/dist/cjs/q2-list.cjs.entry.js +1 -1
  21. package/dist/cjs/q2-list.cjs.entry.js.map +1 -1
  22. package/dist/cjs/q2-optgroup.cjs.entry.js +59 -0
  23. package/dist/cjs/q2-optgroup.cjs.entry.js.map +1 -0
  24. package/dist/cjs/{q2-optgroup_2.cjs.entry.js → q2-option.cjs.entry.js} +1 -52
  25. package/dist/cjs/q2-option.cjs.entry.js.map +1 -0
  26. package/dist/cjs/q2-pagination.cjs.entry.js +22 -3
  27. package/dist/cjs/q2-pagination.cjs.entry.js.map +1 -1
  28. package/dist/cjs/q2-pill.cjs.entry.js +2 -2
  29. package/dist/cjs/q2-pill.cjs.entry.js.map +1 -1
  30. package/dist/cjs/q2-relative-time.cjs.entry.js +2 -2
  31. package/dist/cjs/q2-section.cjs.entry.js +2 -2
  32. package/dist/cjs/q2-select.cjs.entry.js +4 -5
  33. package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
  34. package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
  35. package/dist/cjs/q2-stepper-pane.cjs.entry.js.map +1 -1
  36. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +6 -6
  37. package/dist/cjs/q2-stepper-vertical.cjs.entry.js.map +1 -1
  38. package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
  39. package/dist/cjs/q2-stepper.cjs.entry.js.map +1 -1
  40. package/dist/cjs/q2-tab-container.cjs.entry.js +2 -2
  41. package/dist/cjs/q2-tab-container.cjs.entry.js.map +1 -1
  42. package/dist/cjs/q2-tab-pane.cjs.entry.js +1 -1
  43. package/dist/cjs/q2-tag.cjs.entry.js +1 -1
  44. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  45. package/dist/cjs/q2-textarea.cjs.entry.js +1 -1
  46. package/dist/cjs/q2-textarea.cjs.entry.js.map +1 -1
  47. package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
  48. package/dist/collection/components/click-elsewhere/click-elsewhere.js.map +1 -1
  49. package/dist/collection/components/q2-btn/q2-btn.js +29 -5
  50. package/dist/collection/components/q2-btn/q2-btn.js.map +1 -1
  51. package/dist/collection/components/q2-calendar/q2-calendar.css +3 -0
  52. package/dist/collection/components/q2-calendar/q2-calendar.js +1 -1
  53. package/dist/collection/components/q2-calendar/q2-calendar.js.map +1 -1
  54. package/dist/collection/components/q2-carousel/q2-carousel.js +33 -2
  55. package/dist/collection/components/q2-carousel/q2-carousel.js.map +1 -1
  56. package/dist/collection/components/q2-currency/q2-currency.css +4 -0
  57. package/dist/collection/components/q2-data-table/q2-data-table.js +6 -6
  58. package/dist/collection/components/q2-dropdown/q2-dropdown.js +1 -1
  59. package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
  60. package/dist/collection/components/q2-input/q2-input.js +43 -15
  61. package/dist/collection/components/q2-input/q2-input.js.map +1 -1
  62. package/dist/collection/components/q2-item/q2-item.css +11 -11
  63. package/dist/collection/components/q2-list/q2-list.css +8 -5
  64. package/dist/collection/components/q2-option-list/q2-option-list.js +2 -2
  65. package/dist/collection/components/q2-pagination/q2-pagination.css +17 -2
  66. package/dist/collection/components/q2-pagination/q2-pagination.js +53 -2
  67. package/dist/collection/components/q2-pagination/q2-pagination.js.map +1 -1
  68. package/dist/collection/components/q2-pill/q2-pill.js +2 -2
  69. package/dist/collection/components/q2-pill/q2-pill.js.map +1 -1
  70. package/dist/collection/components/q2-popover/q2-popover.js +1 -1
  71. package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
  72. package/dist/collection/components/q2-section/q2-section.js +2 -2
  73. package/dist/collection/components/q2-select/q2-select.js +21 -5
  74. package/dist/collection/components/q2-select/q2-select.js.map +1 -1
  75. package/dist/collection/components/q2-stepper/q2-stepper.js +2 -2
  76. package/dist/collection/components/q2-stepper/q2-stepper.js.map +1 -1
  77. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +4 -4
  78. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js.map +1 -1
  79. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +6 -6
  80. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js.map +1 -1
  81. package/dist/collection/components/q2-tab-container/q2-tab-container.js +2 -2
  82. package/dist/collection/components/q2-tab-container/q2-tab-container.js.map +1 -1
  83. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
  84. package/dist/collection/components/q2-tag/q2-tag.js +1 -1
  85. package/dist/collection/components/q2-textarea/q2-textarea.css +2 -2
  86. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
  87. package/dist/components/click-elsewhere2.js.map +1 -1
  88. package/dist/components/index2.js +1 -1
  89. package/dist/components/q2-btn2.js +4 -2
  90. package/dist/components/q2-btn2.js.map +1 -1
  91. package/dist/components/q2-calendar.js +2 -2
  92. package/dist/components/q2-calendar.js.map +1 -1
  93. package/dist/components/q2-carousel.js +33 -2
  94. package/dist/components/q2-carousel.js.map +1 -1
  95. package/dist/components/q2-currency.js +1 -1
  96. package/dist/components/q2-currency.js.map +1 -1
  97. package/dist/components/q2-dropdown.js +1 -1
  98. package/dist/components/q2-dropdown.js.map +1 -1
  99. package/dist/components/q2-input2.js +20 -12
  100. package/dist/components/q2-input2.js.map +1 -1
  101. package/dist/components/q2-item.js +1 -1
  102. package/dist/components/q2-item.js.map +1 -1
  103. package/dist/components/q2-list.js +1 -1
  104. package/dist/components/q2-list.js.map +1 -1
  105. package/dist/components/q2-message2.js +1 -1
  106. package/dist/components/q2-option-list2.js +1 -1
  107. package/dist/components/q2-pagination.js +64 -13
  108. package/dist/components/q2-pagination.js.map +1 -1
  109. package/dist/components/q2-pill.js +2 -2
  110. package/dist/components/q2-pill.js.map +1 -1
  111. package/dist/components/q2-popover2.js +2 -2
  112. package/dist/components/q2-relative-time.js +1 -1
  113. package/dist/components/q2-section.js +2 -2
  114. package/dist/components/q2-select.js +1 -711
  115. package/dist/components/q2-select.js.map +1 -1
  116. package/dist/components/q2-select2.js +715 -0
  117. package/dist/components/q2-select2.js.map +1 -0
  118. package/dist/components/q2-stepper-pane.js +2 -2
  119. package/dist/components/q2-stepper-pane.js.map +1 -1
  120. package/dist/components/q2-stepper-vertical.js +6 -6
  121. package/dist/components/q2-stepper-vertical.js.map +1 -1
  122. package/dist/components/q2-stepper.js +2 -2
  123. package/dist/components/q2-stepper.js.map +1 -1
  124. package/dist/components/q2-tab-container.js +2 -2
  125. package/dist/components/q2-tab-container.js.map +1 -1
  126. package/dist/components/q2-tab-pane.js +1 -1
  127. package/dist/components/q2-tag.js +1 -1
  128. package/dist/components/q2-textarea.js +1 -1
  129. package/dist/components/q2-textarea.js.map +1 -1
  130. package/dist/components/tecton-tab-pane.js +2 -2
  131. package/dist/esm/click-elsewhere_2.entry.js +1 -1
  132. package/dist/esm/click-elsewhere_2.entry.js.map +1 -1
  133. package/dist/esm/{index-e940b40e.js → index-f0dfb099.js} +1 -1
  134. package/dist/esm/{index-e940b40e.js.map → index-f0dfb099.js.map} +1 -1
  135. package/dist/esm/loader.js +1 -1
  136. package/dist/esm/q2-btn_2.entry.js +2 -1
  137. package/dist/esm/q2-btn_2.entry.js.map +1 -1
  138. package/dist/esm/q2-calendar.entry.js +3 -3
  139. package/dist/esm/q2-calendar.entry.js.map +1 -1
  140. package/dist/esm/q2-carousel.entry.js +33 -2
  141. package/dist/esm/q2-carousel.entry.js.map +1 -1
  142. package/dist/esm/q2-currency.entry.js +1 -1
  143. package/dist/esm/q2-currency.entry.js.map +1 -1
  144. package/dist/esm/q2-dropdown.entry.js +1 -1
  145. package/dist/esm/q2-dropdown.entry.js.map +1 -1
  146. package/dist/esm/q2-input.entry.js +17 -10
  147. package/dist/esm/q2-input.entry.js.map +1 -1
  148. package/dist/esm/q2-item.entry.js +1 -1
  149. package/dist/esm/q2-item.entry.js.map +1 -1
  150. package/dist/esm/q2-list.entry.js +1 -1
  151. package/dist/esm/q2-list.entry.js.map +1 -1
  152. package/dist/esm/q2-optgroup.entry.js +55 -0
  153. package/dist/esm/q2-optgroup.entry.js.map +1 -0
  154. package/dist/esm/{q2-optgroup_2.entry.js → q2-option.entry.js} +3 -53
  155. package/dist/esm/q2-option.entry.js.map +1 -0
  156. package/dist/esm/q2-pagination.entry.js +22 -3
  157. package/dist/esm/q2-pagination.entry.js.map +1 -1
  158. package/dist/esm/q2-pill.entry.js +2 -2
  159. package/dist/esm/q2-pill.entry.js.map +1 -1
  160. package/dist/esm/q2-relative-time.entry.js +2 -2
  161. package/dist/esm/q2-section.entry.js +2 -2
  162. package/dist/esm/q2-select.entry.js +4 -5
  163. package/dist/esm/q2-select.entry.js.map +1 -1
  164. package/dist/esm/q2-stepper-pane.entry.js +2 -2
  165. package/dist/esm/q2-stepper-pane.entry.js.map +1 -1
  166. package/dist/esm/q2-stepper-vertical.entry.js +6 -6
  167. package/dist/esm/q2-stepper-vertical.entry.js.map +1 -1
  168. package/dist/esm/q2-stepper.entry.js +2 -2
  169. package/dist/esm/q2-stepper.entry.js.map +1 -1
  170. package/dist/esm/q2-tab-container.entry.js +2 -2
  171. package/dist/esm/q2-tab-container.entry.js.map +1 -1
  172. package/dist/esm/q2-tab-pane.entry.js +1 -1
  173. package/dist/esm/q2-tag.entry.js +1 -1
  174. package/dist/esm/q2-tecton-elements.js +1 -1
  175. package/dist/esm/q2-textarea.entry.js +1 -1
  176. package/dist/esm/q2-textarea.entry.js.map +1 -1
  177. package/dist/esm/tecton-tab-pane.entry.js +2 -2
  178. package/dist/q2-tecton-elements/{p-685b821c.entry.js → p-0eff37c6.entry.js} +2 -2
  179. package/dist/q2-tecton-elements/{p-fcc84527.entry.js → p-12326313.entry.js} +2 -2
  180. package/dist/q2-tecton-elements/p-12326313.entry.js.map +1 -0
  181. package/dist/q2-tecton-elements/p-176ad382.entry.js +2 -0
  182. package/dist/q2-tecton-elements/p-176ad382.entry.js.map +1 -0
  183. package/dist/q2-tecton-elements/{p-f4d77672.entry.js → p-195a133c.entry.js} +2 -2
  184. package/dist/q2-tecton-elements/p-1b37b8c6.entry.js +2 -0
  185. package/dist/q2-tecton-elements/p-1b37b8c6.entry.js.map +1 -0
  186. package/dist/q2-tecton-elements/{p-bfe9d688.entry.js → p-1c4aa7e3.entry.js} +2 -2
  187. package/dist/q2-tecton-elements/p-1c4aa7e3.entry.js.map +1 -0
  188. package/dist/q2-tecton-elements/p-1e927478.entry.js +2 -0
  189. package/dist/q2-tecton-elements/p-1e927478.entry.js.map +1 -0
  190. package/dist/q2-tecton-elements/p-36398b59.entry.js +2 -0
  191. package/dist/q2-tecton-elements/p-36398b59.entry.js.map +1 -0
  192. package/dist/q2-tecton-elements/{p-7ce6e587.js → p-3c42c90f.js} +1 -1
  193. package/dist/q2-tecton-elements/p-66af375f.entry.js +2 -0
  194. package/dist/q2-tecton-elements/p-66af375f.entry.js.map +1 -0
  195. package/dist/q2-tecton-elements/p-6ebe37ea.entry.js +2 -0
  196. package/dist/q2-tecton-elements/p-6ebe37ea.entry.js.map +1 -0
  197. package/dist/q2-tecton-elements/p-79df783e.entry.js +2 -0
  198. package/dist/q2-tecton-elements/p-79df783e.entry.js.map +1 -0
  199. package/dist/q2-tecton-elements/p-7e1dc7e8.entry.js +2 -0
  200. package/dist/q2-tecton-elements/p-7e1dc7e8.entry.js.map +1 -0
  201. package/dist/q2-tecton-elements/{p-05b015a8.entry.js → p-87bbeb9c.entry.js} +2 -2
  202. package/dist/q2-tecton-elements/{p-05b015a8.entry.js.map → p-87bbeb9c.entry.js.map} +1 -1
  203. package/dist/q2-tecton-elements/p-89305707.entry.js +2 -0
  204. package/dist/q2-tecton-elements/p-89305707.entry.js.map +1 -0
  205. package/dist/q2-tecton-elements/{p-debd5249.entry.js → p-ad274c67.entry.js} +2 -2
  206. package/dist/q2-tecton-elements/{p-debd5249.entry.js.map → p-ad274c67.entry.js.map} +1 -1
  207. package/dist/q2-tecton-elements/{p-68556733.entry.js → p-c56b58e9.entry.js} +2 -2
  208. package/dist/q2-tecton-elements/p-c56b58e9.entry.js.map +1 -0
  209. package/dist/q2-tecton-elements/{p-2436c843.entry.js → p-cb4f9b33.entry.js} +2 -2
  210. package/dist/q2-tecton-elements/p-cb4f9b33.entry.js.map +1 -0
  211. package/dist/q2-tecton-elements/{p-5dc5c4e2.entry.js → p-d013e05d.entry.js} +2 -2
  212. package/dist/q2-tecton-elements/p-d013e05d.entry.js.map +1 -0
  213. package/dist/q2-tecton-elements/p-d1522382.entry.js +2 -0
  214. package/dist/q2-tecton-elements/p-d1522382.entry.js.map +1 -0
  215. package/dist/q2-tecton-elements/{p-63192fac.entry.js → p-da7fc914.entry.js} +2 -2
  216. package/dist/q2-tecton-elements/p-e3230823.entry.js +2 -0
  217. package/dist/q2-tecton-elements/p-e3230823.entry.js.map +1 -0
  218. package/dist/q2-tecton-elements/{p-b376c111.entry.js → p-e47dbfbe.entry.js} +2 -2
  219. package/dist/q2-tecton-elements/{p-a214077c.entry.js → p-e4a2469f.entry.js} +2 -2
  220. package/dist/q2-tecton-elements/p-fc9f43f8.entry.js +2 -0
  221. package/dist/q2-tecton-elements/p-fc9f43f8.entry.js.map +1 -0
  222. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  223. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
  224. package/dist/test/elements/q2-calendar-test.e2e.js +1 -1
  225. package/dist/test/elements/q2-calendar-test.e2e.js.map +1 -1
  226. package/dist/test/elements/q2-carousel-test.e2e.js +67 -1
  227. package/dist/test/elements/q2-carousel-test.e2e.js.map +1 -1
  228. package/dist/test/elements/q2-detail/q2-list-test.e2e.js +1 -1
  229. package/dist/test/elements/q2-detail/q2-list-test.e2e.js.map +1 -1
  230. package/dist/test/elements/q2-input-test.e2e.js +25 -2
  231. package/dist/test/elements/q2-input-test.e2e.js.map +1 -1
  232. package/dist/test/elements/q2-pagination-test.e2e.js +22 -0
  233. package/dist/test/elements/q2-pagination-test.e2e.js.map +1 -1
  234. package/dist/test/elements/q2-pill-test.e2e.js +21 -2
  235. package/dist/test/elements/q2-pill-test.e2e.js.map +1 -1
  236. package/dist/test/elements/q2-select-test.e2e.js +26 -8
  237. package/dist/test/elements/q2-select-test.e2e.js.map +1 -1
  238. package/dist/test/elements/q2-stepper-test.e2e.js +10 -17
  239. package/dist/test/elements/q2-stepper-test.e2e.js.map +1 -1
  240. package/dist/test/elements/q2-stepper-vertical-test.e2e.js +20 -4
  241. package/dist/test/elements/q2-stepper-vertical-test.e2e.js.map +1 -1
  242. package/dist/test/elements/q2-tab-container-test.e2e.js +10 -4
  243. package/dist/test/elements/q2-tab-container-test.e2e.js.map +1 -1
  244. package/dist/types/components/q2-btn/q2-btn.d.ts +14 -3
  245. package/dist/types/components/q2-carousel/q2-carousel.d.ts +2 -0
  246. package/dist/types/components/q2-input/q2-input.d.ts +10 -3
  247. package/dist/types/components.d.ts +50 -4
  248. package/package.json +3 -3
  249. package/dist/cjs/q2-optgroup_2.cjs.entry.js.map +0 -1
  250. package/dist/esm/q2-optgroup_2.entry.js.map +0 -1
  251. package/dist/q2-tecton-elements/p-1c17d118.entry.js +0 -2
  252. package/dist/q2-tecton-elements/p-1c17d118.entry.js.map +0 -1
  253. package/dist/q2-tecton-elements/p-2436c843.entry.js.map +0 -1
  254. package/dist/q2-tecton-elements/p-3b1ea100.entry.js +0 -2
  255. package/dist/q2-tecton-elements/p-3b1ea100.entry.js.map +0 -1
  256. package/dist/q2-tecton-elements/p-445990a8.entry.js +0 -2
  257. package/dist/q2-tecton-elements/p-445990a8.entry.js.map +0 -1
  258. package/dist/q2-tecton-elements/p-4b81a121.entry.js +0 -2
  259. package/dist/q2-tecton-elements/p-4b81a121.entry.js.map +0 -1
  260. package/dist/q2-tecton-elements/p-50bd4437.entry.js +0 -2
  261. package/dist/q2-tecton-elements/p-50bd4437.entry.js.map +0 -1
  262. package/dist/q2-tecton-elements/p-5dc5c4e2.entry.js.map +0 -1
  263. package/dist/q2-tecton-elements/p-68556733.entry.js.map +0 -1
  264. package/dist/q2-tecton-elements/p-7c12ba02.entry.js +0 -2
  265. package/dist/q2-tecton-elements/p-7c12ba02.entry.js.map +0 -1
  266. package/dist/q2-tecton-elements/p-a977e723.entry.js +0 -2
  267. package/dist/q2-tecton-elements/p-a977e723.entry.js.map +0 -1
  268. package/dist/q2-tecton-elements/p-b3d10d52.entry.js +0 -2
  269. package/dist/q2-tecton-elements/p-b3d10d52.entry.js.map +0 -1
  270. package/dist/q2-tecton-elements/p-bfe9d688.entry.js.map +0 -1
  271. package/dist/q2-tecton-elements/p-bffda54d.entry.js +0 -2
  272. package/dist/q2-tecton-elements/p-bffda54d.entry.js.map +0 -1
  273. package/dist/q2-tecton-elements/p-cadceb00.entry.js +0 -2
  274. package/dist/q2-tecton-elements/p-cadceb00.entry.js.map +0 -1
  275. package/dist/q2-tecton-elements/p-d1a9ed3d.entry.js +0 -2
  276. package/dist/q2-tecton-elements/p-d1a9ed3d.entry.js.map +0 -1
  277. package/dist/q2-tecton-elements/p-fcc84527.entry.js.map +0 -1
  278. /package/dist/q2-tecton-elements/{p-685b821c.entry.js.map → p-0eff37c6.entry.js.map} +0 -0
  279. /package/dist/q2-tecton-elements/{p-f4d77672.entry.js.map → p-195a133c.entry.js.map} +0 -0
  280. /package/dist/q2-tecton-elements/{p-7ce6e587.js.map → p-3c42c90f.js.map} +0 -0
  281. /package/dist/q2-tecton-elements/{p-63192fac.entry.js.map → p-da7fc914.entry.js.map} +0 -0
  282. /package/dist/q2-tecton-elements/{p-b376c111.entry.js.map → p-e47dbfbe.entry.js.map} +0 -0
  283. /package/dist/q2-tecton-elements/{p-a214077c.entry.js.map → p-e4a2469f.entry.js.map} +0 -0
  284. /package/dist/types/workspace/workspace/{tecton-production_release_1.45.x → _Gitlab_tecton-production_master}/packages/q2-tecton-elements/.stencil/test/elements/q2-detail/slot-component.d.ts +0 -0
  285. /package/dist/types/workspace/workspace/{tecton-production_release_1.45.x → _Gitlab_tecton-production_master}/packages/q2-tecton-elements/.stencil/test/helpers.d.ts +0 -0
@@ -1,4 +1,4 @@
1
- import { setup, dispatchEvent, testDeprecatedAriaLabel } from "../helpers";
1
+ import { setup, dispatchEvent, testDeprecatedAriaLabel, getNestedElementStyle, getNestedElementProperty, } from "../helpers";
2
2
  describe('q2-carousel', () => {
3
3
  const renderCarousel = (numberOfPanes, config) => {
4
4
  const { showNavigation, hidePagination, fullWidthPanes, framelessPanes, autoPlay, index } = Object.assign({
@@ -415,6 +415,72 @@ describe('q2-carousel', () => {
415
415
  });
416
416
  expect(activeElementClasses.length).toEqual(0); // shift+tab from a pane should land focus outside of the carousel element
417
417
  });
418
+ describe('when q2-dropdown elements are added to panes', () => {
419
+ let page;
420
+ beforeEach(async () => {
421
+ page = await setup({
422
+ html: `
423
+ <q2-carousel>
424
+ ${[...Array(3).keys()].map(index => `
425
+ <q2-carousel-pane id="pane-${index + 1}">
426
+ <p>Pane ${index + 1}</p>
427
+ <button>Button</button>
428
+ <q2-dropdown
429
+ type="icon"
430
+ label="My dropdown"
431
+ icon="options"
432
+ hide-label
433
+ >
434
+ <q2-dropdown-item value="first">First</q2-dropdown-item>
435
+ <q2-dropdown-item value="second">Second</q2-dropdown-item>
436
+ <q2-dropdown-item value="third">Third</q2-dropdown-item>
437
+ </q2-dropdown>
438
+ </q2-carousel-pane>
439
+ `)}
440
+ </q2-carousel>
441
+ `,
442
+ });
443
+ await page.waitForChanges();
444
+ });
445
+ it('disables carousel, removes transform, and uses "left" coordinates when opened', async () => {
446
+ const popoverSelector = ['#pane-1 q2-dropdown', 'q2-popover'];
447
+ const swiperSelector = '.swiper-wrapper';
448
+ const transformMatrix = 'matrix(1, 0, 0, 1, 193.5, 0)';
449
+ expect(await getNestedElementProperty(page, popoverSelector, 'open')).toBeUndefined();
450
+ expect(await getNestedElementStyle(page, swiperSelector, 'left')).toEqual('0px');
451
+ expect(await getNestedElementStyle(page, swiperSelector, 'transform')).toEqual(transformMatrix);
452
+ await dispatchEvent(page, ['#pane-1 q2-dropdown', 'q2-btn'], 'click');
453
+ await page.waitForChanges();
454
+ expect(await getNestedElementProperty(page, popoverSelector, 'open')).toEqual(true);
455
+ expect(await getNestedElementStyle(page, swiperSelector, 'left')).toEqual('193.5px');
456
+ expect(await getNestedElementStyle(page, swiperSelector, 'transform')).toEqual('none');
457
+ await dispatchEvent(page, ['#pane-1 q2-dropdown', 'q2-btn'], 'click');
458
+ await page.waitForChanges();
459
+ expect(await getNestedElementProperty(page, popoverSelector, 'open')).toEqual(false);
460
+ expect(await getNestedElementStyle(page, swiperSelector, 'left')).toEqual('0px');
461
+ expect(await getNestedElementStyle(page, swiperSelector, 'transform')).toEqual(transformMatrix);
462
+ });
463
+ it('closes the dropdown when a static element is clicked', async () => {
464
+ const popoverSelector = ['#pane-1 q2-dropdown', 'q2-popover'];
465
+ expect(await getNestedElementProperty(page, popoverSelector, 'open')).toBeUndefined();
466
+ await dispatchEvent(page, ['#pane-1 q2-dropdown', 'q2-btn'], 'click');
467
+ await page.waitForChanges();
468
+ expect(await getNestedElementProperty(page, popoverSelector, 'open')).toEqual(true);
469
+ await page.click('#pane-1 p');
470
+ await page.waitForChanges();
471
+ expect(await getNestedElementProperty(page, popoverSelector, 'open')).toEqual(false);
472
+ });
473
+ it('closes the dropdown when another focusable element is clicked', async () => {
474
+ const popoverSelector = ['#pane-1 q2-dropdown', 'q2-popover'];
475
+ expect(await getNestedElementProperty(page, popoverSelector, 'open')).toBeUndefined();
476
+ await dispatchEvent(page, ['#pane-1 q2-dropdown', 'q2-btn'], 'click');
477
+ await page.waitForChanges();
478
+ expect(await getNestedElementProperty(page, popoverSelector, 'open')).toEqual(true);
479
+ await page.click('#pane-1 button');
480
+ await page.waitForChanges();
481
+ expect(await getNestedElementProperty(page, popoverSelector, 'open')).toEqual(false);
482
+ });
483
+ });
418
484
  describe('@Props', () => {
419
485
  describe('framelessPanes', () => {
420
486
  describe('when not provided', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"q2-carousel-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-carousel-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EPage } from '@stencil/core/testing';\nimport { setup, dispatchEvent, testDeprecatedAriaLabel } from '../helpers';\n\ndescribe('q2-carousel', () => {\n const renderCarousel = (\n numberOfPanes: number,\n config?: {\n showNavigation?: boolean;\n hidePagination?: boolean;\n fullWidthPanes?: boolean;\n framelessPanes?: boolean;\n autoPlay?: boolean;\n index?: number;\n }\n ) => {\n const { showNavigation, hidePagination, fullWidthPanes, framelessPanes, autoPlay, index } = {\n ...{\n showNavigation: false,\n hidePagination: false,\n fullWidthPanes: false,\n framelessPanes: false,\n autoPlay: false,\n },\n ...config,\n };\n return `<q2-carousel\n ${showNavigation ? `show-navigation-arrows` : ''}\n ${hidePagination ? `hide-pagination` : ''}\n ${fullWidthPanes ? `full-width-panes` : ''}\n ${framelessPanes ? `frameless-panes` : ''}\n ${autoPlay ? `auto-play` : ''}\n ${index ? `index=\"${index}\"` : ''}\n >\n ${[...Array(numberOfPanes).keys()].map(\n index => `<q2-carousel-pane>Pane ${index + 1}</q2-carousel-pane>`\n )}\n </q2-carousel>`;\n };\n\n it('renders with default properties', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3),\n });\n\n const carousel = await page.find('q2-carousel');\n const carouselContainer = await page.find('q2-carousel .q2-carousel-swiper-container');\n const carouselPanes = await page.findAll('q2-carousel q2-carousel-pane');\n const firstCarouselPane = carouselPanes[0];\n const navPaginationContainer = await page.find('q2-carousel .q2-carousel-pagination-navigation-wrapper');\n const carouselPagination = await page.find('q2-carousel .q2-carousel-pagination');\n const carouselPaginationButtons = await page.findAll('q2-carousel .q2-carousel-page-indicator');\n const firstPaginationButton = carouselPaginationButtons[0];\n const navigationButtons = await page.findAll('q2-carousel .q2-carousel-navigation-button');\n\n expect(carousel).not.toBeNull();\n expect(carousel.getAttribute('id').includes('q2-carousel-')).toEqual(true);\n expect(carousel.classList.contains('q2-carousel-instance')).toEqual(true);\n expect(carouselContainer.classList.contains('content-peek-display')).toEqual(true);\n expect(firstCarouselPane.classList.contains('swiper-slide-active')).toEqual(true);\n expect(carouselContainer.classList.contains('insufficient-panes')).toEqual(false);\n expect(carouselPagination).not.toBeNull();\n expect(carouselPaginationButtons).toHaveLength(3);\n expect(firstPaginationButton.classList.contains('active-page')).toEqual(true);\n expect(navPaginationContainer.classList.contains('evenly-space')).toEqual(false);\n expect(navigationButtons).toEqual([]);\n expect(await carousel.getProperty('swiper')).not.toBeNull();\n expect(await carousel.getProperty('autoPlay')).toEqual(false);\n expect(await carousel.getProperty('fullWidthPanes')).toEqual(false);\n expect(await carousel.getProperty('hidePagination')).toEqual(false);\n expect(await carousel.getProperty('showNavigationArrows')).toEqual(false);\n });\n\n describe('keyboard', () => {\n const isPaneFocused = async (page: E2EPage, paneIndex: number) =>\n page.evaluate(\n paneIndex => document.activeElement === document.querySelectorAll('q2-carousel-pane')[paneIndex],\n paneIndex\n );\n\n it('can advance the carousel using keys', async () => {\n const page = await setup({\n html: renderCarousel(6),\n });\n\n const carouselPanes = await page.findAll('q2-carousel q2-carousel-pane');\n\n await carouselPanes[0].focus();\n expect(carouselPanes.filter(pane => !pane.classList.contains('swiper-slide-active'))).toHaveLength(5);\n expect(carouselPanes[0]).toHaveClass('swiper-slide-active');\n\n await page.keyboard.press('ArrowRight');\n await page.waitForChanges();\n\n expect(carouselPanes.filter(pane => !pane.classList.contains('swiper-slide-active'))).toHaveLength(5);\n expect(carouselPanes[1]).toHaveClass('swiper-slide-active');\n expect(await isPaneFocused(page, 1)).toEqual(true);\n\n await page.keyboard.press('ArrowRight');\n await page.waitForChanges();\n\n expect(carouselPanes.filter(pane => !pane.classList.contains('swiper-slide-active'))).toHaveLength(5);\n expect(carouselPanes[2]).toHaveClass('swiper-slide-active');\n expect(await isPaneFocused(page, 2)).toEqual(true);\n\n await page.keyboard.press('ArrowLeft');\n await page.waitForChanges();\n\n expect(carouselPanes.filter(pane => !pane.classList.contains('swiper-slide-active'))).toHaveLength(5);\n expect(carouselPanes[1]).toHaveClass('swiper-slide-active');\n expect(await isPaneFocused(page, 1)).toEqual(true);\n\n await page.keyboard.press('End');\n await page.waitForChanges();\n\n expect(carouselPanes.filter(pane => !pane.classList.contains('swiper-slide-active'))).toHaveLength(5);\n expect(carouselPanes[5]).toHaveClass('swiper-slide-active');\n expect(await isPaneFocused(page, 5)).toEqual(true);\n\n await page.keyboard.press('Home');\n await page.waitForChanges();\n\n expect(carouselPanes.filter(pane => !pane.classList.contains('swiper-slide-active'))).toHaveLength(5);\n expect(carouselPanes[0]).toHaveClass('swiper-slide-active');\n expect(await isPaneFocused(page, 0)).toEqual(true);\n });\n });\n\n it('pagination dots and navigation arrows can make the carousel advance or go back in order', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3, { showNavigation: true }),\n });\n\n const carousel = await page.find('q2-carousel');\n const carouselPanes = await page.findAll('q2-carousel q2-carousel-pane');\n const firstCarouselPane = carouselPanes[0];\n const secondCarouselPane = carouselPanes[1];\n const thirdCarouselPane = carouselPanes[2];\n const navPaginationContainer = await page.find('q2-carousel .q2-carousel-pagination-navigation-wrapper');\n\n expect(await carousel.getProperty('showNavigationArrows')).toEqual(true);\n expect(firstCarouselPane.classList.contains('swiper-slide-active')).toEqual(true);\n expect(secondCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n expect(thirdCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n expect(navPaginationContainer.classList.contains('evenly-space')).toEqual(true);\n\n // go to second pane\n await dispatchEvent(page, '.q2-carousel-page-indicator-1', 'click');\n expect(firstCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n expect(secondCarouselPane.classList.contains('swiper-slide-active')).toEqual(true);\n expect(thirdCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n\n // back to third pane\n await dispatchEvent(page, '.q2-carousel-page-indicator-2', 'click');\n expect(firstCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n expect(secondCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n expect(thirdCarouselPane.classList.contains('swiper-slide-active')).toEqual(true);\n\n // back to second pane\n await dispatchEvent(page, '.q2-carousel-navigation-button-prev', 'click');\n expect(firstCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n expect(secondCarouselPane.classList.contains('swiper-slide-active')).toEqual(true);\n expect(thirdCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n\n // back to third pane\n await dispatchEvent(page, '.q2-carousel-navigation-button-next', 'click');\n expect(firstCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n expect(secondCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n expect(thirdCarouselPane.classList.contains('swiper-slide-active')).toEqual(true);\n });\n\n describe('when hide-pagination and show-navigation are provided', () => {\n it('still renders accordingly', async () => {\n const page = await setup({\n html: renderCarousel(3, { hidePagination: true, showNavigation: true }),\n });\n\n const carousel = await page.find('q2-carousel');\n const navPaginationContainer = await page.find('q2-carousel .q2-carousel-pagination-navigation-wrapper');\n const navigationButtons = await page.findAll('q2-carousel .q2-carousel-navigation-button');\n\n expect(await carousel.getProperty('showNavigationArrows')).toEqual(true);\n expect(await carousel.getProperty('showNavigationArrows')).toEqual(true);\n expect(navPaginationContainer).toHaveClass('evenly-space');\n expect(navigationButtons).toHaveLength(2);\n });\n });\n\n it('localizes necessary text', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3, { showNavigation: true }),\n });\n const carouselContainer = await page.find('q2-carousel .q2-carousel-swiper-container');\n const firstCarouselPane = await page.find('q2-carousel .q2-carousel-pane-0');\n const firstPaginationButton = await page.find(\n 'q2-carousel .q2-carousel-pagination .q2-carousel-page-indicator-0'\n );\n const nextNavBtn = await page.find('.q2-carousel-navigation-button-next');\n\n expect(carouselContainer).toEqualAttribute('aria-label', 'tecton.element.carousel.ariaLabel');\n expect(firstCarouselPane).toEqualAttribute('aria-label', 'tecton.element.carousel.itemDescription');\n expect(firstPaginationButton).toEqualAttribute('aria-label', 'tecton.element.carousel.itemDescription');\n expect(firstPaginationButton).toEqualAttribute('aria-selected', 'true');\n expect(nextNavBtn).toEqualAttribute('label', 'tecton.element.carousel.nextItemLabel');\n\n const prevNavBtn = await page.find('.q2-carousel-navigation-button-prev');\n expect(prevNavBtn).toEqualAttribute('label', 'tecton.element.carousel.previousItemLabel');\n });\n\n it('displays dynamic pagination indicators if more than five q2-carousel-panes present', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(6),\n });\n\n const carouselPagination = await page.find('.q2-carousel-pagination');\n const carouselPaginationButtons = await page.findAll('q2-carousel .q2-carousel-page-indicator');\n const carouselPaginationNonVisibleButtons = await page.findAll(\n '.q2-carousel-page-indicator:not(.active-page):not(.active-adjacent):not(.active-adjacent-adjacent)'\n );\n expect(carouselPagination.classList.contains('dynamic')).toEqual(true);\n expect(carouselPaginationButtons).toHaveLength(6);\n expect(carouselPaginationNonVisibleButtons).toHaveLength(3);\n });\n\n it('puts itself in compact mode if dimensions are right for it', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3),\n });\n\n const carouselContainer = await page.find('.q2-carousel-swiper-container');\n\n expect(await carouselContainer.classList.contains('compact')).toEqual(false);\n\n await page.setViewport({ width: 500, height: 800 });\n await page.waitForChanges();\n\n expect(await carouselContainer.classList.contains('compact')).toEqual(true);\n });\n\n it('hides pagination/navigation if only one content pane is provided in content peek mode', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(1),\n });\n\n const navPaginationContainer = await page.find('q2-carousel .q2-carousel-pagination-navigation-wrapper');\n expect(navPaginationContainer).toBeNull();\n });\n\n it('hides pagination/navigation if only one content pane is provided in full-width mode', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(1, { fullWidthPanes: true }),\n });\n\n const navPaginationContainer = await page.find('q2-carousel .q2-carousel-pagination-navigation-wrapper');\n expect(navPaginationContainer).toBeNull();\n });\n\n describe('when only one pane is provided', () => {\n it('does not render pagination', async () => {\n const page = await setup({\n html: renderCarousel(1),\n });\n\n const pagination = await page.find('q2-carousel .q2-carousel-pagination');\n expect(pagination).toBeNull();\n });\n });\n\n describe('when no panes are provided', () => {\n it('informs the user that more panes are needed', async () => {\n const page = await setup({\n html: renderCarousel(0),\n });\n\n const userMessage = await page.find('.insufficient-pane-feedback');\n const userMessageHeader = await page.find('.insufficient-pane-feedback .insufficient-panes-header');\n const userMessageBody = await page.find('.insufficient-pane-feedback .insufficient-panes-body');\n\n expect(userMessage).not.toBeNull();\n expect(await userMessageHeader.innerText).toEqual('tecton.element.carousel.insufficientPanesMessageHeader');\n expect(await userMessageBody.innerText).toEqual('tecton.element.carousel.insufficientPanesMessageBody');\n });\n });\n\n describe('Mutation Observer', () => {\n describe('when adding a pane', () => {\n it('it triggers mutation observer and updates the carousel', async () => {\n const page = await setup({\n html: renderCarousel(3),\n });\n let carouselPanes = await page.findAll('q2-carousel-pane');\n let pageIndicators = await page.findAll('q2-carousel .q2-carousel-page-indicator');\n let carousel = await page.find('q2-carousel');\n let activeIndex = carousel.getAttribute('index');\n\n expect(carouselPanes).toHaveLength(3);\n expect(pageIndicators).toHaveLength(3);\n expect(activeIndex).toBe('1');\n\n await page.$eval('q2-carousel', (el: HTMLElement) => {\n const newPane = document.createElement(`q2-carousel-pane`);\n newPane.setAttribute('label', 'New Pane');\n el.appendChild(newPane);\n });\n await page.waitForChanges();\n\n carouselPanes = await page.findAll('q2-carousel-pane');\n pageIndicators = await page.findAll('q2-carousel .q2-carousel-page-indicator');\n carousel = await page.find('q2-carousel');\n activeIndex = carousel.getAttribute('index');\n\n expect(carouselPanes).toHaveLength(4);\n expect(pageIndicators).toHaveLength(4);\n expect(activeIndex).toBe('1');\n });\n });\n describe('when removing a pane', () => {\n it('it triggers mutation observer and updates the carousel', async () => {\n const page = await setup({\n html: renderCarousel(3),\n });\n let carouselPanes = await page.findAll('q2-carousel-pane');\n let pageIndicators = await page.findAll('q2-carousel .q2-carousel-page-indicator');\n let carousel = await page.find('q2-carousel');\n let activeIndex = carousel.getAttribute('index');\n\n expect(carouselPanes).toHaveLength(3);\n expect(pageIndicators).toHaveLength(3);\n expect(activeIndex).toBe('1');\n\n await page.$eval('q2-carousel-pane', (el: HTMLElement) => {\n el.remove();\n });\n await page.waitForChanges();\n\n carouselPanes = await page.findAll('q2-carousel-pane');\n pageIndicators = await page.findAll('q2-carousel .q2-carousel-page-indicator');\n carousel = await page.find('q2-carousel');\n activeIndex = carousel.getAttribute('index');\n\n expect(carouselPanes).toHaveLength(2);\n expect(pageIndicators).toHaveLength(2);\n expect(activeIndex).toBe('1');\n });\n });\n });\n\n describe('focus transferring', () => {\n const html = `<q2-carousel>\n <q2-carousel-pane>\n <h2>Hello</h2>\n <p>World</p>\n </q2-carousel-pane>\n <q2-carousel-pane>\n <h2>Foo</h2>\n <p>Bar</p>\n </q2-carousel-pane>\n <q2-carousel-pane>\n <h2>Fizz</h2>\n <p>Buzz</p>\n <button>Action</button>\n </q2-carousel-pane>\n </q2-carousel>`;\n it('focuses selected pane when focus event dispatched ', async function (): Promise<void> {\n const page = await setup({ html });\n await dispatchEvent(page, ['q2-carousel'], 'focus');\n const innerActiveTestId = async (page: E2EPage) => {\n return page.$eval('q2-carousel', el => {\n return el.querySelector('q2-carousel-pane').isActivePane;\n });\n };\n expect(await innerActiveTestId(page)).toEqual(true);\n });\n\n it('focuses selected pane when focus method called ', async function (): Promise<void> {\n const page = await setup({ html });\n const carousel = await page.find('q2-carousel');\n await carousel.triggerEvent('focus');\n await page.waitForChanges();\n const innerActiveTestId = async (page: E2EPage) => {\n return page.$eval('q2-carousel', el => {\n return el.querySelector('q2-carousel-pane').isActivePane;\n });\n };\n expect(await innerActiveTestId(page)).toEqual(true);\n });\n });\n\n it.skip('manages focus from pagination to carousel panes', async function (): Promise<void> {\n const page = await setup({\n html: `\n <q2-carousel>\n <q2-carousel-pane>\n <h2>Hello</h2>\n <p>World</p>\n </q2-carousel-pane>\n <q2-carousel-pane>\n <h2>Foo</h2>\n <p>Bar</p>\n </q2-carousel-pane>\n <q2-carousel-pane>\n <h2>Fizz</h2>\n <p>Buzz</p>\n <button>Action</button>\n </q2-carousel-pane>\n </q2-carousel>\n `,\n });\n\n let activeElementClasses;\n\n await page.keyboard.press('Tab');\n await page.waitForChanges();\n await page.keyboard.press('Tab');\n await page.waitForChanges();\n\n activeElementClasses = await page.$eval('q2-carousel', () => {\n return document.activeElement.className;\n });\n expect(activeElementClasses.includes('q2-carousel-page-indicator-0')).toEqual(true);\n\n await page.keyboard.down('Shift');\n await page.keyboard.press('Tab');\n await page.keyboard.up('Shift');\n await page.waitForChanges();\n activeElementClasses = await page.$eval('q2-carousel', () => {\n return document.activeElement.className;\n });\n expect(activeElementClasses.includes('q2-carousel-pane-0')).toEqual(true);\n\n await page.keyboard.down('Shift');\n await page.keyboard.press('Tab');\n await page.keyboard.up('Shift');\n await page.waitForChanges();\n activeElementClasses = await page.$eval('q2-carousel', () => {\n return document.activeElement.className;\n });\n expect(activeElementClasses.length).toEqual(0); // shift+tab from a pane should land focus outside of the carousel element\n });\n\n it.skip('manages focus from panes to inner focusable content', async function (): Promise<void> {\n const page = await setup({\n html: `\n <q2-carousel>\n <q2-carousel-pane>\n <h2>Hello</h2>\n <p>World</p>\n <q2-btn color=\"primary\" class=\"button 1\">Nested Focusable Content</q2-btn>\n </q2-carousel-pane>\n <q2-carousel-pane>\n <h2>Foo</h2>\n <p>Bar</p>\n <q2-btn color=\"primary\" class=\"button 2\">Nested Focusable Content</q2-btn>\n </q2-carousel-pane>\n <q2-carousel-pane>\n <h2>Fizz</h2>\n <p>Buzz</p>\n <button>Action</button>\n </q2-carousel-pane>\n </q2-carousel>\n `,\n });\n\n let activeElementClasses;\n\n await page.keyboard.press('Tab');\n await page.waitForChanges();\n await page.keyboard.press('Tab');\n await page.waitForChanges();\n\n activeElementClasses = await page.$eval('q2-carousel', () => {\n return document.activeElement.className;\n });\n expect(activeElementClasses.includes('button 1')).toEqual(true);\n\n await page.keyboard.press('Tab');\n await page.waitForChanges();\n\n activeElementClasses = await page.$eval('q2-carousel', () => {\n return document.activeElement.className;\n });\n expect(activeElementClasses.includes('page-indicator-0')).toEqual(true);\n\n await dispatchEvent(page, '.q2-carousel-page-indicator-1', 'click');\n await page.waitForChanges();\n await page.waitForEvent('transitionend');\n activeElementClasses = await page.$eval('q2-carousel', () => {\n return document.activeElement.className;\n });\n expect(activeElementClasses.includes('q2-carousel-pane-1')).toEqual(true);\n\n await page.keyboard.press('Tab');\n await page.waitForChanges();\n activeElementClasses = await page.$eval('q2-carousel', () => {\n return document.activeElement.className;\n });\n expect(activeElementClasses.includes('button 2')).toEqual(true);\n\n await page.keyboard.down('Shift');\n await page.keyboard.press('Tab');\n await page.keyboard.up('Shift');\n await page.waitForChanges();\n\n activeElementClasses = await page.$eval('q2-carousel', () => {\n return document.activeElement.className;\n });\n expect(activeElementClasses.includes('q2-carousel-pane-1')).toEqual(true);\n\n await page.keyboard.down('Shift');\n await page.keyboard.press('Tab');\n await page.keyboard.up('Shift');\n await page.waitForChanges();\n\n activeElementClasses = await page.$eval('q2-carousel', () => {\n return document.activeElement.className;\n });\n expect(activeElementClasses.length).toEqual(0); // shift+tab from a pane should land focus outside of the carousel element\n });\n\n describe('@Props', () => {\n describe('framelessPanes', () => {\n describe('when not provided', () => {\n it('does not set slot-frameless on panes', async () => {\n const page = await setup({\n html: renderCarousel(3, { framelessPanes: false }),\n });\n\n const swiperContainer = await page.find('.q2-carousel-swiper-container');\n expect(swiperContainer).not.toHaveClass('frameless-display');\n\n const panes = await page.findAll('q2-carousel-pane');\n expect(panes.every(async pane => (await pane.getProperty('slotFrameless')) === false)).toBeTruthy();\n });\n });\n\n describe('when provided', () => {\n it('sets slot-frameless on panes', async () => {\n const page = await setup({\n html: renderCarousel(3, { framelessPanes: true }),\n });\n\n const swiperContainer = await page.find('.q2-carousel-swiper-container');\n expect(swiperContainer).toHaveClass('frameless-display');\n\n const panes = await page.findAll('q2-carousel-pane');\n expect(panes.every(async pane => (await pane.getProperty('slotFrameless')) === true)).toBeTruthy();\n });\n });\n });\n\n describe('autoPlay', () => {\n describe('when not provided', () => {\n it('does not render autoplay button', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3),\n });\n\n const autoPlayBtn = await page.find('.q2-carousel-autoplay-control');\n expect(autoPlayBtn).toBeNull();\n\n const carouselWrapper = await page.find('.q2-carousel-swiper-wrapper');\n expect(carouselWrapper).toEqualAttribute('aria-live', 'polite');\n });\n });\n\n describe('when provided', () => {\n it('renders the autoplay button', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3, { autoPlay: true }),\n });\n\n const autoPlayBtn = await page.find('.q2-carousel-autoplay-control');\n expect(autoPlayBtn).not.toBeNull();\n const autoPlayIcon = await page.find('.q2-carousel-autoplay-control q2-icon');\n expect(autoPlayIcon).toEqualAttribute('type', 'pause');\n\n await autoPlayBtn.click();\n expect(autoPlayIcon).toEqualAttribute('type', 'play');\n });\n\n it('sets aria-live value to off when auto-playing and not focused', async () => {\n const isFocused = async (page: E2EPage, selector: string) =>\n page.evaluate(selector => {\n const element = document.querySelector(selector);\n return element === document.activeElement;\n }, selector);\n\n const page = await setup({\n html: `${renderCarousel(3, { autoPlay: true })} <q2-input></q2-input>`,\n });\n const autoPlayBtn = await page.find('.q2-carousel-autoplay-control');\n const inputField = await page.find('q2-input');\n const carouselWrapper = await page.find('.q2-carousel-swiper-wrapper');\n\n expect(autoPlayBtn).not.toBeNull();\n expect(inputField).not.toBeNull();\n\n await inputField.click();\n await new Promise(r => setTimeout(r, 10000));\n await page.waitForChanges();\n const inputFocused = await isFocused(page, 'q2-input');\n\n expect(inputFocused).toBeTruthy();\n expect(carouselWrapper).toEqualAttribute('aria-live', 'off');\n });\n });\n });\n\n describe('fullWidthPanes', () => {\n describe('when not provided', () => {\n it('adds content-peek-display', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3),\n });\n\n const carouselContainer = await page.find('q2-carousel .q2-carousel-swiper-container');\n\n expect(carouselContainer).toHaveClass('content-peek-display');\n expect(carouselContainer).not.toHaveClass('full-width-display');\n\n const carousel = await page.find('q2-carousel');\n await carousel.setProperty('fullWidthPanes', true);\n await page.waitForChanges();\n\n expect(carouselContainer).not.toHaveClass('content-peek-display');\n expect(carouselContainer).toHaveClass('full-width-display');\n });\n });\n\n describe('when provided', () => {\n it('adds full-width-display class', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3, { fullWidthPanes: true }),\n });\n\n const carouselContainer = await page.find('q2-carousel .q2-carousel-swiper-container');\n\n expect(carouselContainer).not.toHaveClass('content-peek-display');\n expect(carouselContainer).toHaveClass('full-width-display');\n });\n });\n });\n\n describe('hidePagination', () => {\n describe('when not provided', () => {\n it('renders pagination', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3),\n });\n\n const pagination = await page.find('q2-carousel .q2-carousel-pagination');\n const pageIndicators = await page.findAll('q2-carousel .q2-carousel-page-indicator');\n expect(pagination).toBeTruthy();\n expect(pageIndicators).toHaveLength(3);\n });\n });\n\n describe('when provided', () => {\n it('does not render pagination', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3, { hidePagination: true }),\n });\n\n const pagination = await page.find('q2-carousel .q2-carousel-pagination');\n expect(pagination).toBeNull();\n });\n });\n });\n\n describe('showNavigationArrows', () => {\n describe('when not provided', () => {\n it('does not render navigation buttons', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3),\n });\n\n const prevBtn = await page.find('.q2-carousel-navigation-button-prev');\n const nextBtn = await page.find('.q2-carousel-navigation-button-next');\n expect(prevBtn).toBeNull();\n expect(nextBtn).toBeNull();\n });\n });\n\n describe('when provided', () => {\n it('renders navigation buttons', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3, { showNavigation: true }),\n });\n\n const prevBtn = await page.find('.q2-carousel-navigation-button-prev');\n const nextBtn = await page.find('.q2-carousel-navigation-button-next');\n expect(prevBtn).toBeTruthy();\n expect(nextBtn).toBeTruthy();\n });\n });\n });\n\n describe('index', () => {\n describe('when not provided', () => {\n it('starts on the first pane', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3),\n });\n\n const carouselPanes = await page.findAll('q2-carousel q2-carousel-pane');\n\n expect(carouselPanes[0]).toHaveAttribute('is-active-pane');\n expect(carouselPanes[0]).toHaveClass('swiper-slide-active');\n expect(carouselPanes[1]).not.toHaveAttribute('is-active-pane');\n expect(carouselPanes[1]).not.toHaveClass('swiper-slide-active');\n expect(carouselPanes[2]).not.toHaveAttribute('is-active-pane');\n expect(carouselPanes[2]).not.toHaveClass('swiper-slide-active');\n });\n });\n\n describe('when provided', () => {\n it('starts on the specified pane', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3, { index: 2 }),\n });\n\n const carouselPanes = await page.findAll('q2-carousel q2-carousel-pane');\n\n expect(carouselPanes[0]).not.toHaveAttribute('is-active-pane');\n expect(carouselPanes[0]).not.toHaveClass('swiper-slide-active');\n expect(carouselPanes[1]).toHaveAttribute('is-active-pane');\n expect(carouselPanes[1]).toHaveClass('swiper-slide-active');\n expect(carouselPanes[2]).not.toHaveAttribute('is-active-pane');\n expect(carouselPanes[2]).not.toHaveClass('swiper-slide-active');\n });\n });\n });\n });\n\n describe('Deprecations', () => {\n it('handles deprecated `ariaLabel` prop', async () => {\n const label = 'My Label';\n const page = await setup({\n html: `\n <q2-carousel aria-label=\"${label}\">\n <q2-carousel-pane>\n <h2>Foo</h2>\n </q2-carousel-pane>\n </q2-carousel>\n `,\n });\n await page.waitForChanges();\n await testDeprecatedAriaLabel(await page.find('q2-carousel'), label);\n const container = await page.find('q2-carousel .q2-carousel-swiper-container');\n expect(container).toEqualAttribute('aria-label', label);\n });\n });\n});\n"]}
1
+ {"version":3,"file":"q2-carousel-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-carousel-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EPage } from '@stencil/core/testing';\nimport {\n setup,\n dispatchEvent,\n testDeprecatedAriaLabel,\n getNestedElementStyle,\n getNestedElementProperty,\n} from '../helpers';\n\ndescribe('q2-carousel', () => {\n const renderCarousel = (\n numberOfPanes: number,\n config?: {\n showNavigation?: boolean;\n hidePagination?: boolean;\n fullWidthPanes?: boolean;\n framelessPanes?: boolean;\n autoPlay?: boolean;\n index?: number;\n }\n ) => {\n const { showNavigation, hidePagination, fullWidthPanes, framelessPanes, autoPlay, index } = {\n ...{\n showNavigation: false,\n hidePagination: false,\n fullWidthPanes: false,\n framelessPanes: false,\n autoPlay: false,\n },\n ...config,\n };\n return `<q2-carousel\n ${showNavigation ? `show-navigation-arrows` : ''}\n ${hidePagination ? `hide-pagination` : ''}\n ${fullWidthPanes ? `full-width-panes` : ''}\n ${framelessPanes ? `frameless-panes` : ''}\n ${autoPlay ? `auto-play` : ''}\n ${index ? `index=\"${index}\"` : ''}\n >\n ${[...Array(numberOfPanes).keys()].map(\n index => `<q2-carousel-pane>Pane ${index + 1}</q2-carousel-pane>`\n )}\n </q2-carousel>`;\n };\n\n it('renders with default properties', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3),\n });\n\n const carousel = await page.find('q2-carousel');\n const carouselContainer = await page.find('q2-carousel .q2-carousel-swiper-container');\n const carouselPanes = await page.findAll('q2-carousel q2-carousel-pane');\n const firstCarouselPane = carouselPanes[0];\n const navPaginationContainer = await page.find('q2-carousel .q2-carousel-pagination-navigation-wrapper');\n const carouselPagination = await page.find('q2-carousel .q2-carousel-pagination');\n const carouselPaginationButtons = await page.findAll('q2-carousel .q2-carousel-page-indicator');\n const firstPaginationButton = carouselPaginationButtons[0];\n const navigationButtons = await page.findAll('q2-carousel .q2-carousel-navigation-button');\n\n expect(carousel).not.toBeNull();\n expect(carousel.getAttribute('id').includes('q2-carousel-')).toEqual(true);\n expect(carousel.classList.contains('q2-carousel-instance')).toEqual(true);\n expect(carouselContainer.classList.contains('content-peek-display')).toEqual(true);\n expect(firstCarouselPane.classList.contains('swiper-slide-active')).toEqual(true);\n expect(carouselContainer.classList.contains('insufficient-panes')).toEqual(false);\n expect(carouselPagination).not.toBeNull();\n expect(carouselPaginationButtons).toHaveLength(3);\n expect(firstPaginationButton.classList.contains('active-page')).toEqual(true);\n expect(navPaginationContainer.classList.contains('evenly-space')).toEqual(false);\n expect(navigationButtons).toEqual([]);\n expect(await carousel.getProperty('swiper')).not.toBeNull();\n expect(await carousel.getProperty('autoPlay')).toEqual(false);\n expect(await carousel.getProperty('fullWidthPanes')).toEqual(false);\n expect(await carousel.getProperty('hidePagination')).toEqual(false);\n expect(await carousel.getProperty('showNavigationArrows')).toEqual(false);\n });\n\n describe('keyboard', () => {\n const isPaneFocused = async (page: E2EPage, paneIndex: number) =>\n page.evaluate(\n paneIndex => document.activeElement === document.querySelectorAll('q2-carousel-pane')[paneIndex],\n paneIndex\n );\n\n it('can advance the carousel using keys', async () => {\n const page = await setup({\n html: renderCarousel(6),\n });\n\n const carouselPanes = await page.findAll('q2-carousel q2-carousel-pane');\n\n await carouselPanes[0].focus();\n expect(carouselPanes.filter(pane => !pane.classList.contains('swiper-slide-active'))).toHaveLength(5);\n expect(carouselPanes[0]).toHaveClass('swiper-slide-active');\n\n await page.keyboard.press('ArrowRight');\n await page.waitForChanges();\n\n expect(carouselPanes.filter(pane => !pane.classList.contains('swiper-slide-active'))).toHaveLength(5);\n expect(carouselPanes[1]).toHaveClass('swiper-slide-active');\n expect(await isPaneFocused(page, 1)).toEqual(true);\n\n await page.keyboard.press('ArrowRight');\n await page.waitForChanges();\n\n expect(carouselPanes.filter(pane => !pane.classList.contains('swiper-slide-active'))).toHaveLength(5);\n expect(carouselPanes[2]).toHaveClass('swiper-slide-active');\n expect(await isPaneFocused(page, 2)).toEqual(true);\n\n await page.keyboard.press('ArrowLeft');\n await page.waitForChanges();\n\n expect(carouselPanes.filter(pane => !pane.classList.contains('swiper-slide-active'))).toHaveLength(5);\n expect(carouselPanes[1]).toHaveClass('swiper-slide-active');\n expect(await isPaneFocused(page, 1)).toEqual(true);\n\n await page.keyboard.press('End');\n await page.waitForChanges();\n\n expect(carouselPanes.filter(pane => !pane.classList.contains('swiper-slide-active'))).toHaveLength(5);\n expect(carouselPanes[5]).toHaveClass('swiper-slide-active');\n expect(await isPaneFocused(page, 5)).toEqual(true);\n\n await page.keyboard.press('Home');\n await page.waitForChanges();\n\n expect(carouselPanes.filter(pane => !pane.classList.contains('swiper-slide-active'))).toHaveLength(5);\n expect(carouselPanes[0]).toHaveClass('swiper-slide-active');\n expect(await isPaneFocused(page, 0)).toEqual(true);\n });\n });\n\n it('pagination dots and navigation arrows can make the carousel advance or go back in order', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3, { showNavigation: true }),\n });\n\n const carousel = await page.find('q2-carousel');\n const carouselPanes = await page.findAll('q2-carousel q2-carousel-pane');\n const firstCarouselPane = carouselPanes[0];\n const secondCarouselPane = carouselPanes[1];\n const thirdCarouselPane = carouselPanes[2];\n const navPaginationContainer = await page.find('q2-carousel .q2-carousel-pagination-navigation-wrapper');\n\n expect(await carousel.getProperty('showNavigationArrows')).toEqual(true);\n expect(firstCarouselPane.classList.contains('swiper-slide-active')).toEqual(true);\n expect(secondCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n expect(thirdCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n expect(navPaginationContainer.classList.contains('evenly-space')).toEqual(true);\n\n // go to second pane\n await dispatchEvent(page, '.q2-carousel-page-indicator-1', 'click');\n expect(firstCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n expect(secondCarouselPane.classList.contains('swiper-slide-active')).toEqual(true);\n expect(thirdCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n\n // back to third pane\n await dispatchEvent(page, '.q2-carousel-page-indicator-2', 'click');\n expect(firstCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n expect(secondCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n expect(thirdCarouselPane.classList.contains('swiper-slide-active')).toEqual(true);\n\n // back to second pane\n await dispatchEvent(page, '.q2-carousel-navigation-button-prev', 'click');\n expect(firstCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n expect(secondCarouselPane.classList.contains('swiper-slide-active')).toEqual(true);\n expect(thirdCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n\n // back to third pane\n await dispatchEvent(page, '.q2-carousel-navigation-button-next', 'click');\n expect(firstCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n expect(secondCarouselPane.classList.contains('swiper-slide-active')).toEqual(false);\n expect(thirdCarouselPane.classList.contains('swiper-slide-active')).toEqual(true);\n });\n\n describe('when hide-pagination and show-navigation are provided', () => {\n it('still renders accordingly', async () => {\n const page = await setup({\n html: renderCarousel(3, { hidePagination: true, showNavigation: true }),\n });\n\n const carousel = await page.find('q2-carousel');\n const navPaginationContainer = await page.find('q2-carousel .q2-carousel-pagination-navigation-wrapper');\n const navigationButtons = await page.findAll('q2-carousel .q2-carousel-navigation-button');\n\n expect(await carousel.getProperty('showNavigationArrows')).toEqual(true);\n expect(await carousel.getProperty('showNavigationArrows')).toEqual(true);\n expect(navPaginationContainer).toHaveClass('evenly-space');\n expect(navigationButtons).toHaveLength(2);\n });\n });\n\n it('localizes necessary text', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3, { showNavigation: true }),\n });\n const carouselContainer = await page.find('q2-carousel .q2-carousel-swiper-container');\n const firstCarouselPane = await page.find('q2-carousel .q2-carousel-pane-0');\n const firstPaginationButton = await page.find(\n 'q2-carousel .q2-carousel-pagination .q2-carousel-page-indicator-0'\n );\n const nextNavBtn = await page.find('.q2-carousel-navigation-button-next');\n\n expect(carouselContainer).toEqualAttribute('aria-label', 'tecton.element.carousel.ariaLabel');\n expect(firstCarouselPane).toEqualAttribute('aria-label', 'tecton.element.carousel.itemDescription');\n expect(firstPaginationButton).toEqualAttribute('aria-label', 'tecton.element.carousel.itemDescription');\n expect(firstPaginationButton).toEqualAttribute('aria-selected', 'true');\n expect(nextNavBtn).toEqualAttribute('label', 'tecton.element.carousel.nextItemLabel');\n\n const prevNavBtn = await page.find('.q2-carousel-navigation-button-prev');\n expect(prevNavBtn).toEqualAttribute('label', 'tecton.element.carousel.previousItemLabel');\n });\n\n it('displays dynamic pagination indicators if more than five q2-carousel-panes present', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(6),\n });\n\n const carouselPagination = await page.find('.q2-carousel-pagination');\n const carouselPaginationButtons = await page.findAll('q2-carousel .q2-carousel-page-indicator');\n const carouselPaginationNonVisibleButtons = await page.findAll(\n '.q2-carousel-page-indicator:not(.active-page):not(.active-adjacent):not(.active-adjacent-adjacent)'\n );\n expect(carouselPagination.classList.contains('dynamic')).toEqual(true);\n expect(carouselPaginationButtons).toHaveLength(6);\n expect(carouselPaginationNonVisibleButtons).toHaveLength(3);\n });\n\n it('puts itself in compact mode if dimensions are right for it', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3),\n });\n\n const carouselContainer = await page.find('.q2-carousel-swiper-container');\n\n expect(await carouselContainer.classList.contains('compact')).toEqual(false);\n\n await page.setViewport({ width: 500, height: 800 });\n await page.waitForChanges();\n\n expect(await carouselContainer.classList.contains('compact')).toEqual(true);\n });\n\n it('hides pagination/navigation if only one content pane is provided in content peek mode', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(1),\n });\n\n const navPaginationContainer = await page.find('q2-carousel .q2-carousel-pagination-navigation-wrapper');\n expect(navPaginationContainer).toBeNull();\n });\n\n it('hides pagination/navigation if only one content pane is provided in full-width mode', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(1, { fullWidthPanes: true }),\n });\n\n const navPaginationContainer = await page.find('q2-carousel .q2-carousel-pagination-navigation-wrapper');\n expect(navPaginationContainer).toBeNull();\n });\n\n describe('when only one pane is provided', () => {\n it('does not render pagination', async () => {\n const page = await setup({\n html: renderCarousel(1),\n });\n\n const pagination = await page.find('q2-carousel .q2-carousel-pagination');\n expect(pagination).toBeNull();\n });\n });\n\n describe('when no panes are provided', () => {\n it('informs the user that more panes are needed', async () => {\n const page = await setup({\n html: renderCarousel(0),\n });\n\n const userMessage = await page.find('.insufficient-pane-feedback');\n const userMessageHeader = await page.find('.insufficient-pane-feedback .insufficient-panes-header');\n const userMessageBody = await page.find('.insufficient-pane-feedback .insufficient-panes-body');\n\n expect(userMessage).not.toBeNull();\n expect(await userMessageHeader.innerText).toEqual('tecton.element.carousel.insufficientPanesMessageHeader');\n expect(await userMessageBody.innerText).toEqual('tecton.element.carousel.insufficientPanesMessageBody');\n });\n });\n\n describe('Mutation Observer', () => {\n describe('when adding a pane', () => {\n it('it triggers mutation observer and updates the carousel', async () => {\n const page = await setup({\n html: renderCarousel(3),\n });\n let carouselPanes = await page.findAll('q2-carousel-pane');\n let pageIndicators = await page.findAll('q2-carousel .q2-carousel-page-indicator');\n let carousel = await page.find('q2-carousel');\n let activeIndex = carousel.getAttribute('index');\n\n expect(carouselPanes).toHaveLength(3);\n expect(pageIndicators).toHaveLength(3);\n expect(activeIndex).toBe('1');\n\n await page.$eval('q2-carousel', (el: HTMLElement) => {\n const newPane = document.createElement(`q2-carousel-pane`);\n newPane.setAttribute('label', 'New Pane');\n el.appendChild(newPane);\n });\n await page.waitForChanges();\n\n carouselPanes = await page.findAll('q2-carousel-pane');\n pageIndicators = await page.findAll('q2-carousel .q2-carousel-page-indicator');\n carousel = await page.find('q2-carousel');\n activeIndex = carousel.getAttribute('index');\n\n expect(carouselPanes).toHaveLength(4);\n expect(pageIndicators).toHaveLength(4);\n expect(activeIndex).toBe('1');\n });\n });\n describe('when removing a pane', () => {\n it('it triggers mutation observer and updates the carousel', async () => {\n const page = await setup({\n html: renderCarousel(3),\n });\n let carouselPanes = await page.findAll('q2-carousel-pane');\n let pageIndicators = await page.findAll('q2-carousel .q2-carousel-page-indicator');\n let carousel = await page.find('q2-carousel');\n let activeIndex = carousel.getAttribute('index');\n\n expect(carouselPanes).toHaveLength(3);\n expect(pageIndicators).toHaveLength(3);\n expect(activeIndex).toBe('1');\n\n await page.$eval('q2-carousel-pane', (el: HTMLElement) => {\n el.remove();\n });\n await page.waitForChanges();\n\n carouselPanes = await page.findAll('q2-carousel-pane');\n pageIndicators = await page.findAll('q2-carousel .q2-carousel-page-indicator');\n carousel = await page.find('q2-carousel');\n activeIndex = carousel.getAttribute('index');\n\n expect(carouselPanes).toHaveLength(2);\n expect(pageIndicators).toHaveLength(2);\n expect(activeIndex).toBe('1');\n });\n });\n });\n\n describe('focus transferring', () => {\n const html = `<q2-carousel>\n <q2-carousel-pane>\n <h2>Hello</h2>\n <p>World</p>\n </q2-carousel-pane>\n <q2-carousel-pane>\n <h2>Foo</h2>\n <p>Bar</p>\n </q2-carousel-pane>\n <q2-carousel-pane>\n <h2>Fizz</h2>\n <p>Buzz</p>\n <button>Action</button>\n </q2-carousel-pane>\n </q2-carousel>`;\n it('focuses selected pane when focus event dispatched ', async function (): Promise<void> {\n const page = await setup({ html });\n await dispatchEvent(page, ['q2-carousel'], 'focus');\n const innerActiveTestId = async (page: E2EPage) => {\n return page.$eval('q2-carousel', el => {\n return el.querySelector('q2-carousel-pane').isActivePane;\n });\n };\n expect(await innerActiveTestId(page)).toEqual(true);\n });\n\n it('focuses selected pane when focus method called ', async function (): Promise<void> {\n const page = await setup({ html });\n const carousel = await page.find('q2-carousel');\n await carousel.triggerEvent('focus');\n await page.waitForChanges();\n const innerActiveTestId = async (page: E2EPage) => {\n return page.$eval('q2-carousel', el => {\n return el.querySelector('q2-carousel-pane').isActivePane;\n });\n };\n expect(await innerActiveTestId(page)).toEqual(true);\n });\n });\n\n it.skip('manages focus from pagination to carousel panes', async function (): Promise<void> {\n const page = await setup({\n html: `\n <q2-carousel>\n <q2-carousel-pane>\n <h2>Hello</h2>\n <p>World</p>\n </q2-carousel-pane>\n <q2-carousel-pane>\n <h2>Foo</h2>\n <p>Bar</p>\n </q2-carousel-pane>\n <q2-carousel-pane>\n <h2>Fizz</h2>\n <p>Buzz</p>\n <button>Action</button>\n </q2-carousel-pane>\n </q2-carousel>\n `,\n });\n\n let activeElementClasses;\n\n await page.keyboard.press('Tab');\n await page.waitForChanges();\n await page.keyboard.press('Tab');\n await page.waitForChanges();\n\n activeElementClasses = await page.$eval('q2-carousel', () => {\n return document.activeElement.className;\n });\n expect(activeElementClasses.includes('q2-carousel-page-indicator-0')).toEqual(true);\n\n await page.keyboard.down('Shift');\n await page.keyboard.press('Tab');\n await page.keyboard.up('Shift');\n await page.waitForChanges();\n activeElementClasses = await page.$eval('q2-carousel', () => {\n return document.activeElement.className;\n });\n expect(activeElementClasses.includes('q2-carousel-pane-0')).toEqual(true);\n\n await page.keyboard.down('Shift');\n await page.keyboard.press('Tab');\n await page.keyboard.up('Shift');\n await page.waitForChanges();\n activeElementClasses = await page.$eval('q2-carousel', () => {\n return document.activeElement.className;\n });\n expect(activeElementClasses.length).toEqual(0); // shift+tab from a pane should land focus outside of the carousel element\n });\n\n it.skip('manages focus from panes to inner focusable content', async function (): Promise<void> {\n const page = await setup({\n html: `\n <q2-carousel>\n <q2-carousel-pane>\n <h2>Hello</h2>\n <p>World</p>\n <q2-btn color=\"primary\" class=\"button 1\">Nested Focusable Content</q2-btn>\n </q2-carousel-pane>\n <q2-carousel-pane>\n <h2>Foo</h2>\n <p>Bar</p>\n <q2-btn color=\"primary\" class=\"button 2\">Nested Focusable Content</q2-btn>\n </q2-carousel-pane>\n <q2-carousel-pane>\n <h2>Fizz</h2>\n <p>Buzz</p>\n <button>Action</button>\n </q2-carousel-pane>\n </q2-carousel>\n `,\n });\n\n let activeElementClasses;\n\n await page.keyboard.press('Tab');\n await page.waitForChanges();\n await page.keyboard.press('Tab');\n await page.waitForChanges();\n\n activeElementClasses = await page.$eval('q2-carousel', () => {\n return document.activeElement.className;\n });\n expect(activeElementClasses.includes('button 1')).toEqual(true);\n\n await page.keyboard.press('Tab');\n await page.waitForChanges();\n\n activeElementClasses = await page.$eval('q2-carousel', () => {\n return document.activeElement.className;\n });\n expect(activeElementClasses.includes('page-indicator-0')).toEqual(true);\n\n await dispatchEvent(page, '.q2-carousel-page-indicator-1', 'click');\n await page.waitForChanges();\n await page.waitForEvent('transitionend');\n activeElementClasses = await page.$eval('q2-carousel', () => {\n return document.activeElement.className;\n });\n expect(activeElementClasses.includes('q2-carousel-pane-1')).toEqual(true);\n\n await page.keyboard.press('Tab');\n await page.waitForChanges();\n activeElementClasses = await page.$eval('q2-carousel', () => {\n return document.activeElement.className;\n });\n expect(activeElementClasses.includes('button 2')).toEqual(true);\n\n await page.keyboard.down('Shift');\n await page.keyboard.press('Tab');\n await page.keyboard.up('Shift');\n await page.waitForChanges();\n\n activeElementClasses = await page.$eval('q2-carousel', () => {\n return document.activeElement.className;\n });\n expect(activeElementClasses.includes('q2-carousel-pane-1')).toEqual(true);\n\n await page.keyboard.down('Shift');\n await page.keyboard.press('Tab');\n await page.keyboard.up('Shift');\n await page.waitForChanges();\n\n activeElementClasses = await page.$eval('q2-carousel', () => {\n return document.activeElement.className;\n });\n expect(activeElementClasses.length).toEqual(0); // shift+tab from a pane should land focus outside of the carousel element\n });\n\n describe('when q2-dropdown elements are added to panes', () => {\n let page: E2EPage;\n beforeEach(async () => {\n page = await setup({\n html: `\n <q2-carousel>\n ${[...Array(3).keys()].map(\n index => `\n <q2-carousel-pane id=\"pane-${index + 1}\">\n <p>Pane ${index + 1}</p>\n <button>Button</button>\n <q2-dropdown\n type=\"icon\"\n label=\"My dropdown\"\n icon=\"options\"\n hide-label\n >\n <q2-dropdown-item value=\"first\">First</q2-dropdown-item>\n <q2-dropdown-item value=\"second\">Second</q2-dropdown-item>\n <q2-dropdown-item value=\"third\">Third</q2-dropdown-item>\n </q2-dropdown>\n </q2-carousel-pane>\n `\n )}\n </q2-carousel>\n `,\n });\n\n await page.waitForChanges();\n });\n\n it('disables carousel, removes transform, and uses \"left\" coordinates when opened', async () => {\n const popoverSelector = ['#pane-1 q2-dropdown', 'q2-popover'];\n const swiperSelector = '.swiper-wrapper';\n const transformMatrix = 'matrix(1, 0, 0, 1, 193.5, 0)';\n\n expect(await getNestedElementProperty(page, popoverSelector, 'open')).toBeUndefined();\n expect(await getNestedElementStyle(page, swiperSelector, 'left')).toEqual('0px');\n expect(await getNestedElementStyle(page, swiperSelector, 'transform')).toEqual(transformMatrix);\n\n await dispatchEvent(page, ['#pane-1 q2-dropdown', 'q2-btn'], 'click');\n await page.waitForChanges();\n\n expect(await getNestedElementProperty(page, popoverSelector, 'open')).toEqual(true);\n expect(await getNestedElementStyle(page, swiperSelector, 'left')).toEqual('193.5px');\n expect(await getNestedElementStyle(page, swiperSelector, 'transform')).toEqual('none');\n\n await dispatchEvent(page, ['#pane-1 q2-dropdown', 'q2-btn'], 'click');\n await page.waitForChanges();\n\n expect(await getNestedElementProperty(page, popoverSelector, 'open')).toEqual(false);\n expect(await getNestedElementStyle(page, swiperSelector, 'left')).toEqual('0px');\n expect(await getNestedElementStyle(page, swiperSelector, 'transform')).toEqual(transformMatrix);\n });\n\n it('closes the dropdown when a static element is clicked', async () => {\n const popoverSelector = ['#pane-1 q2-dropdown', 'q2-popover'];\n\n expect(await getNestedElementProperty(page, popoverSelector, 'open')).toBeUndefined();\n\n await dispatchEvent(page, ['#pane-1 q2-dropdown', 'q2-btn'], 'click');\n await page.waitForChanges();\n\n expect(await getNestedElementProperty(page, popoverSelector, 'open')).toEqual(true);\n\n await page.click('#pane-1 p');\n await page.waitForChanges();\n\n expect(await getNestedElementProperty(page, popoverSelector, 'open')).toEqual(false);\n });\n\n it('closes the dropdown when another focusable element is clicked', async () => {\n const popoverSelector = ['#pane-1 q2-dropdown', 'q2-popover'];\n\n expect(await getNestedElementProperty(page, popoverSelector, 'open')).toBeUndefined();\n\n await dispatchEvent(page, ['#pane-1 q2-dropdown', 'q2-btn'], 'click');\n await page.waitForChanges();\n\n expect(await getNestedElementProperty(page, popoverSelector, 'open')).toEqual(true);\n\n await page.click('#pane-1 button');\n await page.waitForChanges();\n\n expect(await getNestedElementProperty(page, popoverSelector, 'open')).toEqual(false);\n });\n });\n\n describe('@Props', () => {\n describe('framelessPanes', () => {\n describe('when not provided', () => {\n it('does not set slot-frameless on panes', async () => {\n const page = await setup({\n html: renderCarousel(3, { framelessPanes: false }),\n });\n\n const swiperContainer = await page.find('.q2-carousel-swiper-container');\n expect(swiperContainer).not.toHaveClass('frameless-display');\n\n const panes = await page.findAll('q2-carousel-pane');\n expect(panes.every(async pane => (await pane.getProperty('slotFrameless')) === false)).toBeTruthy();\n });\n });\n\n describe('when provided', () => {\n it('sets slot-frameless on panes', async () => {\n const page = await setup({\n html: renderCarousel(3, { framelessPanes: true }),\n });\n\n const swiperContainer = await page.find('.q2-carousel-swiper-container');\n expect(swiperContainer).toHaveClass('frameless-display');\n\n const panes = await page.findAll('q2-carousel-pane');\n expect(panes.every(async pane => (await pane.getProperty('slotFrameless')) === true)).toBeTruthy();\n });\n });\n });\n\n describe('autoPlay', () => {\n describe('when not provided', () => {\n it('does not render autoplay button', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3),\n });\n\n const autoPlayBtn = await page.find('.q2-carousel-autoplay-control');\n expect(autoPlayBtn).toBeNull();\n\n const carouselWrapper = await page.find('.q2-carousel-swiper-wrapper');\n expect(carouselWrapper).toEqualAttribute('aria-live', 'polite');\n });\n });\n\n describe('when provided', () => {\n it('renders the autoplay button', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3, { autoPlay: true }),\n });\n\n const autoPlayBtn = await page.find('.q2-carousel-autoplay-control');\n expect(autoPlayBtn).not.toBeNull();\n const autoPlayIcon = await page.find('.q2-carousel-autoplay-control q2-icon');\n expect(autoPlayIcon).toEqualAttribute('type', 'pause');\n\n await autoPlayBtn.click();\n expect(autoPlayIcon).toEqualAttribute('type', 'play');\n });\n\n it('sets aria-live value to off when auto-playing and not focused', async () => {\n const isFocused = async (page: E2EPage, selector: string) =>\n page.evaluate(selector => {\n const element = document.querySelector(selector);\n return element === document.activeElement;\n }, selector);\n\n const page = await setup({\n html: `${renderCarousel(3, { autoPlay: true })} <q2-input></q2-input>`,\n });\n const autoPlayBtn = await page.find('.q2-carousel-autoplay-control');\n const inputField = await page.find('q2-input');\n const carouselWrapper = await page.find('.q2-carousel-swiper-wrapper');\n\n expect(autoPlayBtn).not.toBeNull();\n expect(inputField).not.toBeNull();\n\n await inputField.click();\n await new Promise(r => setTimeout(r, 10000));\n await page.waitForChanges();\n const inputFocused = await isFocused(page, 'q2-input');\n\n expect(inputFocused).toBeTruthy();\n expect(carouselWrapper).toEqualAttribute('aria-live', 'off');\n });\n });\n });\n\n describe('fullWidthPanes', () => {\n describe('when not provided', () => {\n it('adds content-peek-display', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3),\n });\n\n const carouselContainer = await page.find('q2-carousel .q2-carousel-swiper-container');\n\n expect(carouselContainer).toHaveClass('content-peek-display');\n expect(carouselContainer).not.toHaveClass('full-width-display');\n\n const carousel = await page.find('q2-carousel');\n await carousel.setProperty('fullWidthPanes', true);\n await page.waitForChanges();\n\n expect(carouselContainer).not.toHaveClass('content-peek-display');\n expect(carouselContainer).toHaveClass('full-width-display');\n });\n });\n\n describe('when provided', () => {\n it('adds full-width-display class', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3, { fullWidthPanes: true }),\n });\n\n const carouselContainer = await page.find('q2-carousel .q2-carousel-swiper-container');\n\n expect(carouselContainer).not.toHaveClass('content-peek-display');\n expect(carouselContainer).toHaveClass('full-width-display');\n });\n });\n });\n\n describe('hidePagination', () => {\n describe('when not provided', () => {\n it('renders pagination', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3),\n });\n\n const pagination = await page.find('q2-carousel .q2-carousel-pagination');\n const pageIndicators = await page.findAll('q2-carousel .q2-carousel-page-indicator');\n expect(pagination).toBeTruthy();\n expect(pageIndicators).toHaveLength(3);\n });\n });\n\n describe('when provided', () => {\n it('does not render pagination', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3, { hidePagination: true }),\n });\n\n const pagination = await page.find('q2-carousel .q2-carousel-pagination');\n expect(pagination).toBeNull();\n });\n });\n });\n\n describe('showNavigationArrows', () => {\n describe('when not provided', () => {\n it('does not render navigation buttons', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3),\n });\n\n const prevBtn = await page.find('.q2-carousel-navigation-button-prev');\n const nextBtn = await page.find('.q2-carousel-navigation-button-next');\n expect(prevBtn).toBeNull();\n expect(nextBtn).toBeNull();\n });\n });\n\n describe('when provided', () => {\n it('renders navigation buttons', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3, { showNavigation: true }),\n });\n\n const prevBtn = await page.find('.q2-carousel-navigation-button-prev');\n const nextBtn = await page.find('.q2-carousel-navigation-button-next');\n expect(prevBtn).toBeTruthy();\n expect(nextBtn).toBeTruthy();\n });\n });\n });\n\n describe('index', () => {\n describe('when not provided', () => {\n it('starts on the first pane', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3),\n });\n\n const carouselPanes = await page.findAll('q2-carousel q2-carousel-pane');\n\n expect(carouselPanes[0]).toHaveAttribute('is-active-pane');\n expect(carouselPanes[0]).toHaveClass('swiper-slide-active');\n expect(carouselPanes[1]).not.toHaveAttribute('is-active-pane');\n expect(carouselPanes[1]).not.toHaveClass('swiper-slide-active');\n expect(carouselPanes[2]).not.toHaveAttribute('is-active-pane');\n expect(carouselPanes[2]).not.toHaveClass('swiper-slide-active');\n });\n });\n\n describe('when provided', () => {\n it('starts on the specified pane', async function (): Promise<void> {\n const page = await setup({\n html: renderCarousel(3, { index: 2 }),\n });\n\n const carouselPanes = await page.findAll('q2-carousel q2-carousel-pane');\n\n expect(carouselPanes[0]).not.toHaveAttribute('is-active-pane');\n expect(carouselPanes[0]).not.toHaveClass('swiper-slide-active');\n expect(carouselPanes[1]).toHaveAttribute('is-active-pane');\n expect(carouselPanes[1]).toHaveClass('swiper-slide-active');\n expect(carouselPanes[2]).not.toHaveAttribute('is-active-pane');\n expect(carouselPanes[2]).not.toHaveClass('swiper-slide-active');\n });\n });\n });\n });\n\n describe('Deprecations', () => {\n it('handles deprecated `ariaLabel` prop', async () => {\n const label = 'My Label';\n const page = await setup({\n html: `\n <q2-carousel aria-label=\"${label}\">\n <q2-carousel-pane>\n <h2>Foo</h2>\n </q2-carousel-pane>\n </q2-carousel>\n `,\n });\n await page.waitForChanges();\n await testDeprecatedAriaLabel(await page.find('q2-carousel'), label);\n const container = await page.find('q2-carousel .q2-carousel-swiper-container');\n expect(container).toEqualAttribute('aria-label', label);\n });\n });\n});\n"]}
@@ -2,7 +2,7 @@ import { evaluateA11y, setup } from "../../helpers";
2
2
  describe('q2-list', () => {
3
3
  describe('[A11y] guideline compliance', () => {
4
4
  it('Does not have accessibility violations', async () => {
5
- const page = await setup({ html: `<q2-list />` });
5
+ const page = await setup({ html: `<q2-list label="A11y Testing Enabled" />` });
6
6
  const hasViolations = await evaluateA11y(page);
7
7
  expect(hasViolations).toBe(false);
8
8
  });
@@ -1 +1 @@
1
- {"version":3,"file":"q2-list-test.e2e.js","sourceRoot":"","sources":["../../../../test/elements/q2-detail/q2-list-test.e2e.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEpD,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACrB,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACzC,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;YAClD,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;IACH,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;QACnB,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC5C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;gBACrB,IAAI,EAAE;;;;;;;;;;;iBAWL;aACJ,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAChE,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC9C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACpD,MAAM,CAAC,UAAU,CAAC,CAAC,UAAU,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;YAC1B,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;YACjC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;gBACrB,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiDL;aACJ,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACpD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["import { evaluateA11y, setup } from '../../helpers';\n\ndescribe('q2-list', () => {\n describe('[A11y] guideline compliance', () => {\n it('Does not have accessibility violations', async () => {\n const page = await setup({ html: `<q2-list />` });\n const hasViolations = await evaluateA11y(page);\n\n expect(hasViolations).toBe(false);\n });\n });\n describe('Props', () => {});\n describe('Slots', () => {\n it('when label and filter presents', async () => {\n const page = await setup({\n html: `\n <q2-list label=\"My list\">\n <div slot=\"filter\">\n <q2-pill label=\"My options\" popover-alignment=\"right\">\n <q2-option value=\"1\" aria-selected=\"false\">Option 1</q2-option>\n <q2-option value=\"2\" aria-selected=\"false\">Option 2</q2-option>\n <q2-option value=\"3\" aria-selected=\"false\">Option 3</q2-option>\n <q2-option value=\"4\" aria-selected=\"false\">Option 4</q2-option>\n </q2-pill>\n </div>\n </q2-list>\n `,\n });\n const filterSlot = await page.find('q2-list > [slot=\"filter\"]');\n const pill = await filterSlot.find('q2-pill');\n const label = await page.find('q2-list >>> .label');\n expect(filterSlot).toBeTruthy();\n expect(pill).toBeTruthy();\n expect(label).toEqualText('My list');\n });\n\n it('when items presents', async () => {\n const page = await setup({\n html: `\n <q2-list label=\"My list\">\n <div slot=\"filter\">\n <q2-pill label=\"My options\" popover-alignment=\"right\">\n <q2-option value=\"1\" aria-selected=\"false\">Option 1</q2-option>\n <q2-option value=\"2\" aria-selected=\"false\">Option 2</q2-option>\n <q2-option value=\"3\" aria-selected=\"false\">Option 3</q2-option>\n <q2-option value=\"4\" aria-selected=\"false\">Option 4</q2-option>\n </q2-pill>\n </div>\n <q2-item>\n <div slot=\"bullet\">\n <q2-avatar icon=\"home\">\n </q2-avatar>\n </div>\n <div slot=\"header\">Header Text</div>\n <div slot=\"body\">Body Text</div>\n <div slot=\"footer\">Footer Text</div>\n <div slot=\"action\">\n <q2-dropdown type=\"icon\" label=\"My dropdown\" icon=\"options\" popover-alignment=\"left\" hide-label=\"\">\n <q2-dropdown-item value=\"first\">First</q2-dropdown-item>\n <q2-dropdown-item value=\"second\">Second</q2-dropdown-item>\n <q2-dropdown-item separator=\"\">\n </q2-dropdown-item>\n <q2-dropdown-item value=\"third\">Third</q2-dropdown-item>\n <q2-dropdown-item value=\"fourth\">Fourth</q2-dropdown-item>\n </q2-dropdown>\n </div>\n </q2-item>\n <q2-item>\n <div slot=\"bullet\">\n <q2-avatar icon=\"home\">\n </q2-avatar>\n </div>\n <div slot=\"header\">Header Text</div>\n <div slot=\"body\">Body Text</div>\n <div slot=\"footer\">Footer Text</div>\n <div slot=\"action\">\n <q2-dropdown type=\"icon\" label=\"My dropdown\" icon=\"options\" popover-alignment=\"left\" hide-label=\"\">\n <q2-dropdown-item value=\"first\">First</q2-dropdown-item>\n <q2-dropdown-item value=\"second\">Second</q2-dropdown-item>\n <q2-dropdown-item separator=\"\">\n </q2-dropdown-item>\n <q2-dropdown-item value=\"third\">Third</q2-dropdown-item>\n <q2-dropdown-item value=\"fourth\">Fourth</q2-dropdown-item>\n </q2-dropdown>\n </div>\n </q2-item>\n </q2-list>\n `,\n });\n const items = await page.findAll('q2-list q2-item');\n expect(items.length).toEqual(2);\n });\n });\n});\n"]}
1
+ {"version":3,"file":"q2-list-test.e2e.js","sourceRoot":"","sources":["../../../../test/elements/q2-detail/q2-list-test.e2e.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEpD,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACrB,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACzC,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,0CAA0C,EAAE,CAAC,CAAC;YAC/E,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;QACnB,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC5C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;gBACrB,IAAI,EAAE;;;;;;;;;;;iBAWL;aACJ,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAChE,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC9C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACpD,MAAM,CAAC,UAAU,CAAC,CAAC,UAAU,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;YAC1B,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;YACjC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;gBACrB,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiDL;aACJ,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACpD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["import { evaluateA11y, setup } from '../../helpers';\n\ndescribe('q2-list', () => {\n describe('[A11y] guideline compliance', () => {\n it('Does not have accessibility violations', async () => {\n const page = await setup({ html: `<q2-list label=\"A11y Testing Enabled\" />` });\n const hasViolations = await evaluateA11y(page);\n expect(hasViolations).toBe(false);\n });\n });\n describe('Props', () => {});\n describe('Slots', () => {\n it('when label and filter presents', async () => {\n const page = await setup({\n html: `\n <q2-list label=\"My list\">\n <div slot=\"filter\">\n <q2-pill label=\"My options\" popover-alignment=\"right\">\n <q2-option value=\"1\" aria-selected=\"false\">Option 1</q2-option>\n <q2-option value=\"2\" aria-selected=\"false\">Option 2</q2-option>\n <q2-option value=\"3\" aria-selected=\"false\">Option 3</q2-option>\n <q2-option value=\"4\" aria-selected=\"false\">Option 4</q2-option>\n </q2-pill>\n </div>\n </q2-list>\n `,\n });\n const filterSlot = await page.find('q2-list > [slot=\"filter\"]');\n const pill = await filterSlot.find('q2-pill');\n const label = await page.find('q2-list >>> .label');\n expect(filterSlot).toBeTruthy();\n expect(pill).toBeTruthy();\n expect(label).toEqualText('My list');\n });\n\n it('when items presents', async () => {\n const page = await setup({\n html: `\n <q2-list label=\"My list\">\n <div slot=\"filter\">\n <q2-pill label=\"My options\" popover-alignment=\"right\">\n <q2-option value=\"1\" aria-selected=\"false\">Option 1</q2-option>\n <q2-option value=\"2\" aria-selected=\"false\">Option 2</q2-option>\n <q2-option value=\"3\" aria-selected=\"false\">Option 3</q2-option>\n <q2-option value=\"4\" aria-selected=\"false\">Option 4</q2-option>\n </q2-pill>\n </div>\n <q2-item>\n <div slot=\"bullet\">\n <q2-avatar icon=\"home\">\n </q2-avatar>\n </div>\n <div slot=\"header\">Header Text</div>\n <div slot=\"body\">Body Text</div>\n <div slot=\"footer\">Footer Text</div>\n <div slot=\"action\">\n <q2-dropdown type=\"icon\" label=\"My dropdown\" icon=\"options\" popover-alignment=\"left\" hide-label=\"\">\n <q2-dropdown-item value=\"first\">First</q2-dropdown-item>\n <q2-dropdown-item value=\"second\">Second</q2-dropdown-item>\n <q2-dropdown-item separator=\"\">\n </q2-dropdown-item>\n <q2-dropdown-item value=\"third\">Third</q2-dropdown-item>\n <q2-dropdown-item value=\"fourth\">Fourth</q2-dropdown-item>\n </q2-dropdown>\n </div>\n </q2-item>\n <q2-item>\n <div slot=\"bullet\">\n <q2-avatar icon=\"home\">\n </q2-avatar>\n </div>\n <div slot=\"header\">Header Text</div>\n <div slot=\"body\">Body Text</div>\n <div slot=\"footer\">Footer Text</div>\n <div slot=\"action\">\n <q2-dropdown type=\"icon\" label=\"My dropdown\" icon=\"options\" popover-alignment=\"left\" hide-label=\"\">\n <q2-dropdown-item value=\"first\">First</q2-dropdown-item>\n <q2-dropdown-item value=\"second\">Second</q2-dropdown-item>\n <q2-dropdown-item separator=\"\">\n </q2-dropdown-item>\n <q2-dropdown-item value=\"third\">Third</q2-dropdown-item>\n <q2-dropdown-item value=\"fourth\">Fourth</q2-dropdown-item>\n </q2-dropdown>\n </div>\n </q2-item>\n </q2-list>\n `,\n });\n const items = await page.findAll('q2-list q2-item');\n expect(items.length).toEqual(2);\n });\n });\n});\n"]}
@@ -5,11 +5,34 @@ describe('q2-input', () => {
5
5
  expect(await getListOfStyleCompilationIssues(page, 'q2-input')).toHaveLength(0);
6
6
  });
7
7
  describe('[A11y] guideline compliance', () => {
8
- it('Does not have accessibility violations', async () => {
8
+ it('Does not have accessibility violations when only label is set', async () => {
9
9
  const page = await setup({ html: `<q2-input label="A11y Testing Enabled" />` });
10
10
  const hasViolations = await evaluateA11y(page);
11
11
  expect(hasViolations).toBe(false);
12
12
  });
13
+ it('Does not have accessibility violations when pseudo input', async () => {
14
+ const page = await setup({ html: `<q2-input label="A11y Testing Enabled" />` });
15
+ const input = await page.find('q2-input');
16
+ await input.setProperty('pseudo', true);
17
+ const hasViolations = await evaluateA11y(page);
18
+ expect(hasViolations).toBe(false);
19
+ });
20
+ it('Does not have accessibility violations when aria-controls is set', async () => {
21
+ const page = await setup({
22
+ html: `<q2-input label="A11y Testing Enabled" aria-controls="test"/><div id="test">test</div>`,
23
+ });
24
+ const hasViolations = await evaluateA11y(page);
25
+ expect(hasViolations).toBe(false);
26
+ });
27
+ it('Does not have accessibility violations when pseudo input and aria-controls is set', async () => {
28
+ const page = await setup({
29
+ html: `<q2-input label="A11y Testing Enabled" aria-controls="test"/><div id="test">test</div>`,
30
+ });
31
+ const input = await page.find('q2-input');
32
+ await input.setProperty('pseudo', true);
33
+ const hasViolations = await evaluateA11y(page);
34
+ expect(hasViolations).toBe(false);
35
+ });
13
36
  });
14
37
  async function getInnerInputDimensions(page) {
15
38
  return page.$eval('body', () => document.querySelector('q2-input').shadowRoot.querySelector('input').getClientRects()[0].toJSON());
@@ -1727,7 +1750,7 @@ describe('q2-input', () => {
1727
1750
  it('does not display the clear icon when not provided (default)', async () => {
1728
1751
  const page = await setup({ html: '<q2-input value="Tony"/>' });
1729
1752
  const clearButton = await page.find('q2-input >>> [test-id="clearButton"]');
1730
- expect(clearButton).toBeFalsy();
1753
+ expect(clearButton).toHaveClass('hidden');
1731
1754
  });
1732
1755
  it('starts observing width when added at runtime', async () => {
1733
1756
  const page = await setup({ html: '<q2-input value="Tony" />' });