q2-tecton-elements 1.54.5 → 1.55.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (559) hide show
  1. package/dist/bundle-report.json +2047 -769
  2. package/dist/cjs/{index-76f63767.js → index-905f4c87.js} +3 -2
  3. package/dist/cjs/index-905f4c87.js.map +1 -0
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/q2-action-group.cjs.entry.js +45 -14
  6. package/dist/cjs/q2-action-group.cjs.entry.js.map +1 -1
  7. package/dist/cjs/q2-action-sheet.cjs.entry.js +4 -1364
  8. package/dist/cjs/q2-action-sheet.cjs.entry.js.map +1 -1
  9. package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
  10. package/dist/cjs/q2-badge_7.cjs.entry.js +59 -22
  11. package/dist/cjs/q2-badge_7.cjs.entry.js.map +1 -1
  12. package/dist/cjs/q2-calendar.cjs.entry.js +2 -2
  13. package/dist/cjs/q2-calendar.cjs.entry.js.map +1 -1
  14. package/dist/cjs/q2-card.cjs.entry.js +1 -1
  15. package/dist/cjs/q2-carousel-pane.cjs.entry.js +3 -3
  16. package/dist/cjs/q2-carousel.cjs.entry.js +1 -1
  17. package/dist/cjs/q2-chart-area.cjs.entry.js +2 -2
  18. package/dist/cjs/q2-chart-bar.cjs.entry.js +2 -2
  19. package/dist/cjs/q2-chart-donut.cjs.entry.js +2 -2
  20. package/dist/cjs/q2-checkbox-group.cjs.entry.js +2 -2
  21. package/dist/cjs/q2-checkbox-group.cjs.entry.js.map +1 -1
  22. package/dist/cjs/q2-checkbox.cjs.entry.js +21 -21
  23. package/dist/cjs/q2-checkbox.cjs.entry.js.map +1 -1
  24. package/dist/cjs/q2-currency.cjs.entry.js +1 -1
  25. package/dist/cjs/q2-data-table.cjs.entry.js +1 -1
  26. package/dist/cjs/q2-detail.cjs.entry.js +2 -2
  27. package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
  28. package/dist/cjs/q2-dropdown.cjs.entry.js +1 -1
  29. package/dist/cjs/q2-editable-field.cjs.entry.js +1 -1
  30. package/dist/cjs/q2-file-picker.cjs.entry.js +2 -2
  31. package/dist/cjs/q2-file-picker.cjs.entry.js.map +1 -1
  32. package/dist/cjs/q2-form.cjs.entry.js +23 -0
  33. package/dist/cjs/q2-form.cjs.entry.js.map +1 -0
  34. package/dist/cjs/q2-formatted-text.cjs.entry.js +1 -1
  35. package/dist/cjs/q2-item_3.cjs.entry.js +3 -3
  36. package/dist/cjs/q2-legend.cjs.entry.js +2 -2
  37. package/dist/cjs/q2-legend.cjs.entry.js.map +1 -1
  38. package/dist/cjs/q2-loc.cjs.entry.js +20 -26
  39. package/dist/cjs/q2-loc.cjs.entry.js.map +1 -1
  40. package/dist/cjs/q2-message.cjs.entry.js +2 -2
  41. package/dist/cjs/q2-modal.cjs.entry.js +172 -0
  42. package/dist/cjs/q2-modal.cjs.entry.js.map +1 -0
  43. package/dist/cjs/q2-month-picker.cjs.entry.js +3 -3
  44. package/dist/cjs/q2-optgroup.cjs.entry.js +2 -2
  45. package/dist/cjs/q2-option-list_2.cjs.entry.js +2 -2
  46. package/dist/cjs/q2-option.cjs.entry.js +22 -24
  47. package/dist/cjs/q2-option.cjs.entry.js.map +1 -1
  48. package/dist/cjs/q2-pagination.cjs.entry.js +4 -4
  49. package/dist/cjs/q2-pill.cjs.entry.js +2 -2
  50. package/dist/cjs/q2-radio-group.cjs.entry.js +2 -2
  51. package/dist/cjs/q2-radio-group.cjs.entry.js.map +1 -1
  52. package/dist/cjs/q2-radio.cjs.entry.js +1 -1
  53. package/dist/cjs/q2-relative-time.cjs.entry.js +2 -2
  54. package/dist/cjs/q2-resize-observer.cjs.entry.js +2 -2
  55. package/dist/cjs/q2-resize-observer.cjs.entry.js.map +1 -1
  56. package/dist/cjs/q2-section.cjs.entry.js +3 -3
  57. package/dist/cjs/q2-select.cjs.entry.js +10 -6
  58. package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
  59. package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
  60. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +2 -2
  61. package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
  62. package/dist/cjs/q2-tag.cjs.entry.js +51 -9
  63. package/dist/cjs/q2-tag.cjs.entry.js.map +1 -1
  64. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  65. package/dist/cjs/q2-textarea.cjs.entry.js +3 -3
  66. package/dist/cjs/q2-textarea.cjs.entry.js.map +1 -1
  67. package/dist/cjs/q2-tooltip.cjs.entry.js +2 -2
  68. package/dist/cjs/q2-tooltip.cjs.entry.js.map +1 -1
  69. package/dist/cjs/sanitize-html-string-b8e3b24b.js +1366 -0
  70. package/dist/cjs/sanitize-html-string-b8e3b24b.js.map +1 -0
  71. package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
  72. package/dist/collection/collection-manifest.json +3 -1
  73. package/dist/collection/components/click-elsewhere/click-elsewhere.js.map +1 -1
  74. package/dist/collection/components/click-elsewhere/test/click-elsewhere-test.e2e.js.map +1 -1
  75. package/dist/collection/components/q2-action-group/q2-action-group.css +11 -4
  76. package/dist/collection/components/q2-action-group/q2-action-group.js +47 -13
  77. package/dist/collection/components/q2-action-group/q2-action-group.js.map +1 -1
  78. package/dist/collection/components/q2-action-group/test/q2-action-group-test.e2e.js +365 -0
  79. package/dist/collection/components/q2-action-group/test/q2-action-group-test.e2e.js.map +1 -0
  80. package/dist/collection/components/q2-action-group/test/{q2-action-group.spec.js → q2-action-group-test.spec.js} +67 -26
  81. package/dist/collection/components/q2-action-group/test/q2-action-group-test.spec.js.map +1 -0
  82. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +1 -1
  83. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js.map +1 -1
  84. package/dist/collection/components/q2-action-sheet/test/q2-action-sheet-test.e2e.js.map +1 -1
  85. package/dist/collection/components/q2-avatar/q2-avatar.js +1 -1
  86. package/dist/collection/components/q2-avatar/q2-avatar.js.map +1 -1
  87. package/dist/collection/components/q2-avatar/test/q2-avatar-test.e2e.js.map +1 -1
  88. package/dist/collection/components/q2-badge/q2-badge.css +52 -41
  89. package/dist/collection/components/q2-badge/q2-badge.js +88 -22
  90. package/dist/collection/components/q2-badge/q2-badge.js.map +1 -1
  91. package/dist/collection/components/q2-badge/test/q2-badge-test.e2e.js +35 -126
  92. package/dist/collection/components/q2-badge/test/q2-badge-test.e2e.js.map +1 -1
  93. package/dist/collection/components/q2-badge/test/q2-badge-test.spec.js +415 -0
  94. package/dist/collection/components/q2-badge/test/q2-badge-test.spec.js.map +1 -0
  95. package/dist/collection/components/q2-btn/q2-btn.css +12 -10
  96. package/dist/collection/components/q2-btn/q2-btn.js.map +1 -1
  97. package/dist/collection/components/q2-btn/test/q2-btn-test.e2e.js.map +1 -1
  98. package/dist/collection/components/q2-calendar/q2-calendar-helpers.js.map +1 -1
  99. package/dist/collection/components/q2-calendar/q2-calendar-types.js.map +1 -1
  100. package/dist/collection/components/q2-calendar/q2-calendar-validation.js.map +1 -1
  101. package/dist/collection/components/q2-calendar/q2-calendar.css +2 -0
  102. package/dist/collection/components/q2-calendar/q2-calendar.js.map +1 -1
  103. package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
  104. package/dist/collection/components/q2-calendar/q2-month-picker.js.map +1 -1
  105. package/dist/collection/components/q2-calendar/test/helpers-test.e2e.js.map +1 -1
  106. package/dist/collection/components/q2-calendar/test/q2-calendar-month-picker-test.e2e.js.map +1 -1
  107. package/dist/collection/components/q2-calendar/test/q2-calendar-test.e2e.js.map +1 -1
  108. package/dist/collection/components/q2-calendar/test/validation-test.e2e.js.map +1 -1
  109. package/dist/collection/components/q2-card/q2-card.js.map +1 -1
  110. package/dist/collection/components/q2-card/test/q2-card-test.e2e.js.map +1 -1
  111. package/dist/collection/components/q2-carousel/q2-carousel.js.map +1 -1
  112. package/dist/collection/components/q2-carousel/test/q2-carousel-test.e2e.js.map +1 -1
  113. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +2 -2
  114. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js.map +1 -1
  115. package/dist/collection/components/q2-carousel-pane/test/q2-carousel-pane-test.e2e.js.map +1 -1
  116. package/dist/collection/components/q2-carousel-pane/test/q2-carousel-pane-test.spec.js.map +1 -1
  117. package/dist/collection/components/q2-chart-area/q2-chart-area.js +1 -1
  118. package/dist/collection/components/q2-chart-area/q2-chart-area.js.map +1 -1
  119. package/dist/collection/components/q2-chart-area/test/q2-chart-area-test.e2e.js.map +1 -1
  120. package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +1 -1
  121. package/dist/collection/components/q2-chart-bar/q2-chart-bar.js.map +1 -1
  122. package/dist/collection/components/q2-chart-bar/test/q2-chart-bar-test.e2e.js.map +1 -1
  123. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +1 -1
  124. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js.map +1 -1
  125. package/dist/collection/components/q2-chart-donut/test/q2-chart-donut-test.e2e.js.map +1 -1
  126. package/dist/collection/components/q2-checkbox/q2-checkbox.css +99 -62
  127. package/dist/collection/components/q2-checkbox/q2-checkbox.js +19 -19
  128. package/dist/collection/components/q2-checkbox/q2-checkbox.js.map +1 -1
  129. package/dist/collection/components/q2-checkbox/test/q2-checkbox-test.e2e.js +227 -208
  130. package/dist/collection/components/q2-checkbox/test/q2-checkbox-test.e2e.js.map +1 -1
  131. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.css +8 -1
  132. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js.map +1 -1
  133. package/dist/collection/components/q2-checkbox-group/test/q2-checkbox-group-test.e2e.js.map +1 -1
  134. package/dist/collection/components/q2-currency/q2-currency.js +1 -1
  135. package/dist/collection/components/q2-currency/q2-currency.js.map +1 -1
  136. package/dist/collection/components/q2-currency/test/q2-currency-test.e2e.js.map +1 -1
  137. package/dist/collection/components/q2-data-table/q2-data-table.js.map +1 -1
  138. package/dist/collection/components/q2-data-table/test/q2-data-table-test.e2e.js.map +1 -1
  139. package/dist/collection/components/q2-detail/q2-detail.js +1 -1
  140. package/dist/collection/components/q2-detail/q2-detail.js.map +1 -1
  141. package/dist/collection/components/q2-detail/test/q2-detail-test.e2e.js.map +1 -1
  142. package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
  143. package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js.map +1 -1
  144. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js.map +1 -1
  145. package/dist/collection/components/q2-dropdown-item/test/q2-dropdown-item-test.e2e.js.map +1 -1
  146. package/dist/collection/components/q2-editable-field/q2-editable-field.js.map +1 -1
  147. package/dist/collection/components/q2-editable-field/test/q2-editable-field-test.e2e.js.map +1 -1
  148. package/dist/collection/components/q2-example/q2-example.js.map +1 -1
  149. package/dist/collection/components/q2-example/test/q2-example.e2e.js.map +1 -1
  150. package/dist/collection/components/q2-example/test/q2-example.spec.js.map +1 -1
  151. package/dist/collection/components/q2-file-picker/q2-file-picker.css +2 -0
  152. package/dist/collection/components/q2-file-picker/q2-file-picker.js.map +1 -1
  153. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.e2e.js.map +1 -1
  154. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.spec.js.map +1 -1
  155. package/dist/collection/components/q2-form/q2-form.css +93 -0
  156. package/dist/collection/components/q2-form/q2-form.js +44 -0
  157. package/dist/collection/components/q2-form/q2-form.js.map +1 -0
  158. package/dist/collection/components/q2-form/test/q2-form-test.e2e.js +93 -0
  159. package/dist/collection/components/q2-form/test/q2-form-test.e2e.js.map +1 -0
  160. package/dist/collection/components/q2-formatted-text/q2-formatted-text.js +1 -1
  161. package/dist/collection/components/q2-formatted-text/q2-formatted-text.js.map +1 -1
  162. package/dist/collection/components/q2-formatted-text/test/q2-formatted-text-test.e2e.js.map +1 -1
  163. package/dist/collection/components/q2-icon/q2-icon-types.js.map +1 -1
  164. package/dist/collection/components/q2-icon/q2-icon.js.map +1 -1
  165. package/dist/collection/components/q2-icon/test/q2-icon-test.e2e.js +1 -352
  166. package/dist/collection/components/q2-icon/test/q2-icon-test.e2e.js.map +1 -1
  167. package/dist/collection/components/q2-icon/test/q2-icon-test.spec.js +464 -0
  168. package/dist/collection/components/q2-icon/test/q2-icon-test.spec.js.map +1 -0
  169. package/dist/collection/components/q2-input/formatting/alpha.js.map +1 -1
  170. package/dist/collection/components/q2-input/formatting/alpha.spec.js.map +1 -1
  171. package/dist/collection/components/q2-input/formatting/alphanumeric.js.map +1 -1
  172. package/dist/collection/components/q2-input/formatting/alphanumeric.spec.js.map +1 -1
  173. package/dist/collection/components/q2-input/formatting/credit-card.js.map +1 -1
  174. package/dist/collection/components/q2-input/formatting/credit-card.spec.js.map +1 -1
  175. package/dist/collection/components/q2-input/formatting/currency.js.map +1 -1
  176. package/dist/collection/components/q2-input/formatting/currency.spec.js.map +1 -1
  177. package/dist/collection/components/q2-input/formatting/date.js.map +1 -1
  178. package/dist/collection/components/q2-input/formatting/date.spec.js.map +1 -1
  179. package/dist/collection/components/q2-input/formatting/generic.js.map +1 -1
  180. package/dist/collection/components/q2-input/formatting/number.js.map +1 -1
  181. package/dist/collection/components/q2-input/formatting/numeric.js.map +1 -1
  182. package/dist/collection/components/q2-input/formatting/numeric.spec.js.map +1 -1
  183. package/dist/collection/components/q2-input/formatting/phone.js.map +1 -1
  184. package/dist/collection/components/q2-input/formatting/phone.spec.js.map +1 -1
  185. package/dist/collection/components/q2-input/formatting/postal.js.map +1 -1
  186. package/dist/collection/components/q2-input/formatting/postal.spec.js.map +1 -1
  187. package/dist/collection/components/q2-input/formatting/ssn.js.map +1 -1
  188. package/dist/collection/components/q2-input/formatting/ssn.spec.js.map +1 -1
  189. package/dist/collection/components/q2-input/formatting/tin.js.map +1 -1
  190. package/dist/collection/components/q2-input/formatting/tin.spec.js.map +1 -1
  191. package/dist/collection/components/q2-input/q2-input-types.js.map +1 -1
  192. package/dist/collection/components/q2-input/q2-input.css +3 -2
  193. package/dist/collection/components/q2-input/q2-input.js +4 -3
  194. package/dist/collection/components/q2-input/q2-input.js.map +1 -1
  195. package/dist/collection/components/q2-input/test/q2-input-credit-card-test.e2e.js.map +1 -1
  196. package/dist/collection/components/q2-input/test/q2-input-test.e2e.js.map +1 -1
  197. package/dist/collection/components/q2-input/test/q2-input-test.spec.js +10 -0
  198. package/dist/collection/components/q2-input/test/q2-input-test.spec.js.map +1 -1
  199. package/dist/collection/components/q2-item/q2-item.js +1 -1
  200. package/dist/collection/components/q2-item/q2-item.js.map +1 -1
  201. package/dist/collection/components/q2-item/test/q2-item-test.e2e.js.map +1 -1
  202. package/dist/collection/components/q2-item/test/q2-item-test.spec.js.map +1 -1
  203. package/dist/collection/components/q2-legend/q2-legend.css +1 -1
  204. package/dist/collection/components/q2-legend/q2-legend.js +1 -1
  205. package/dist/collection/components/q2-legend/q2-legend.js.map +1 -1
  206. package/dist/collection/components/q2-legend/test/q2-legend-test.e2e.js.map +1 -1
  207. package/dist/collection/components/q2-legend/test/q2-legend-test.spec.js.map +1 -1
  208. package/dist/collection/components/q2-link/q2-link.js.map +1 -1
  209. package/dist/collection/components/q2-link/test/q2-link-test.e2e.js.map +1 -1
  210. package/dist/collection/components/q2-link/test/q2-link-test.spec.js.map +1 -1
  211. package/dist/collection/components/q2-list/q2-list.js +1 -1
  212. package/dist/collection/components/q2-list/q2-list.js.map +1 -1
  213. package/dist/collection/components/q2-list/test/q2-list-test.e2e.js.map +1 -1
  214. package/dist/collection/components/q2-loading/q2-loading.js.map +1 -1
  215. package/dist/collection/components/q2-loading/skeleton/q2-loading-element/index.js.map +1 -1
  216. package/dist/collection/components/q2-loading/skeleton/shapes.js.map +1 -1
  217. package/dist/collection/components/q2-loading/test/q2-loading-element-test.e2e.js.map +1 -1
  218. package/dist/collection/components/q2-loading/test/q2-loading-test.e2e.js.map +1 -1
  219. package/dist/collection/components/q2-loc/q2-loc.js +19 -37
  220. package/dist/collection/components/q2-loc/q2-loc.js.map +1 -1
  221. package/dist/collection/components/q2-loc/test/q2-loc-test.e2e.js +1 -7
  222. package/dist/collection/components/q2-loc/test/q2-loc-test.e2e.js.map +1 -1
  223. package/dist/collection/components/q2-loc/test/q2-loc-test.spec.js +140 -82
  224. package/dist/collection/components/q2-loc/test/q2-loc-test.spec.js.map +1 -1
  225. package/dist/collection/components/q2-message/q2-message.js +1 -1
  226. package/dist/collection/components/q2-message/q2-message.js.map +1 -1
  227. package/dist/collection/components/q2-message/test/q2-message-test.e2e.js.map +1 -1
  228. package/dist/collection/components/q2-modal/q2-modal.css +223 -0
  229. package/dist/collection/components/q2-modal/q2-modal.js +470 -0
  230. package/dist/collection/components/q2-modal/q2-modal.js.map +1 -0
  231. package/dist/collection/components/q2-modal/test/q2-modal-test.e2e.js +102 -0
  232. package/dist/collection/components/q2-modal/test/q2-modal-test.e2e.js.map +1 -0
  233. package/dist/collection/components/q2-modal/test/q2-modal-test.spec.js +127 -0
  234. package/dist/collection/components/q2-modal/test/q2-modal-test.spec.js.map +1 -0
  235. package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
  236. package/dist/collection/components/q2-optgroup/q2-optgroup.js.map +1 -1
  237. package/dist/collection/components/q2-optgroup/test/q2-optgroup-test.e2e.js.map +1 -1
  238. package/dist/collection/components/q2-option/q2-option.js +22 -24
  239. package/dist/collection/components/q2-option/q2-option.js.map +1 -1
  240. package/dist/collection/components/q2-option/test/q2-option-test.e2e.js +32 -5
  241. package/dist/collection/components/q2-option/test/q2-option-test.e2e.js.map +1 -1
  242. package/dist/collection/components/q2-option/test/q2-option-test.spec.js +137 -19
  243. package/dist/collection/components/q2-option/test/q2-option-test.spec.js.map +1 -1
  244. package/dist/collection/components/q2-option-list/q2-option-list.js.map +1 -1
  245. package/dist/collection/components/q2-option-list/test/q2-option-list-test.e2e.js.map +1 -1
  246. package/dist/collection/components/q2-option-list/test/q2-option-list.spec.js.map +1 -1
  247. package/dist/collection/components/q2-pagination/q2-pagination.js +3 -3
  248. package/dist/collection/components/q2-pagination/q2-pagination.js.map +1 -1
  249. package/dist/collection/components/q2-pagination/test/q2-pagination-test.e2e.js.map +1 -1
  250. package/dist/collection/components/q2-pill/q2-pill.js +1 -1
  251. package/dist/collection/components/q2-pill/q2-pill.js.map +1 -1
  252. package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js.map +1 -1
  253. package/dist/collection/components/q2-popover/q2-popover.js +1 -1
  254. package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
  255. package/dist/collection/components/q2-popover/test/q2-popover-test.e2e.js.map +1 -1
  256. package/dist/collection/components/q2-popover/test/q2-popover-test.spec.js.map +1 -1
  257. package/dist/collection/components/q2-radio/q2-radio.js.map +1 -1
  258. package/dist/collection/components/q2-radio/test/q2-radio-test.e2e.js.map +1 -1
  259. package/dist/collection/components/q2-radio-group/q2-radio-group.css +4 -2
  260. package/dist/collection/components/q2-radio-group/q2-radio-group.js.map +1 -1
  261. package/dist/collection/components/q2-radio-group/test/q2-radio-group-test.e2e.js.map +1 -1
  262. package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
  263. package/dist/collection/components/q2-relative-time/q2-relative-time.js.map +1 -1
  264. package/dist/collection/components/q2-relative-time/test/q2-relative-time-test.e2e.js.map +1 -1
  265. package/dist/collection/components/q2-resize-observer/q2-resize-observer.js +2 -2
  266. package/dist/collection/components/q2-resize-observer/q2-resize-observer.js.map +1 -1
  267. package/dist/collection/components/q2-resize-observer/test/q2-resize-observer.e2e.js.map +1 -1
  268. package/dist/collection/components/q2-resize-observer/test/q2-resize-observer.spec.js.map +1 -1
  269. package/dist/collection/components/q2-section/q2-section.js +2 -2
  270. package/dist/collection/components/q2-section/q2-section.js.map +1 -1
  271. package/dist/collection/components/q2-section/test/q2-section-test.e2e.js.map +1 -1
  272. package/dist/collection/components/q2-select/q2-select.css +2 -2
  273. package/dist/collection/components/q2-select/q2-select.js +15 -4
  274. package/dist/collection/components/q2-select/q2-select.js.map +1 -1
  275. package/dist/collection/components/q2-select/test/q2-select-test.e2e.js +5 -1
  276. package/dist/collection/components/q2-select/test/q2-select-test.e2e.js.map +1 -1
  277. package/dist/collection/components/q2-select/test/q2-select-test.spec.js +85 -0
  278. package/dist/collection/components/q2-select/test/q2-select-test.spec.js.map +1 -0
  279. package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
  280. package/dist/collection/components/q2-stepper/q2-stepper.js.map +1 -1
  281. package/dist/collection/components/q2-stepper/test/q2-stepper-test.e2e.js.map +1 -1
  282. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js.map +1 -1
  283. package/dist/collection/components/q2-stepper-pane/test/q2-stepper-pane-test.e2e.js.map +1 -1
  284. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
  285. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js.map +1 -1
  286. package/dist/collection/components/q2-stepper-vertical/test/q2-stepper-vertical-test.e2e.js.map +1 -1
  287. package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
  288. package/dist/collection/components/q2-tab-container/q2-tab-container.js.map +1 -1
  289. package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.e2e.js.map +1 -1
  290. package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.spec.js.map +1 -1
  291. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
  292. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js.map +1 -1
  293. package/dist/collection/components/q2-tab-pane/test/q2-tab-pane-test.e2e.js.map +1 -1
  294. package/dist/collection/components/q2-tag/q2-tag.css +9 -0
  295. package/dist/collection/components/q2-tag/q2-tag.js +65 -15
  296. package/dist/collection/components/q2-tag/q2-tag.js.map +1 -1
  297. package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js +131 -341
  298. package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js.map +1 -1
  299. package/dist/collection/components/q2-tag/test/q2-tag-test.spec.js +719 -0
  300. package/dist/collection/components/q2-tag/test/q2-tag-test.spec.js.map +1 -0
  301. package/dist/collection/components/q2-textarea/q2-textarea.css +2 -2
  302. package/dist/collection/components/q2-textarea/q2-textarea.js +1 -1
  303. package/dist/collection/components/q2-textarea/q2-textarea.js.map +1 -1
  304. package/dist/collection/components/q2-textarea/test/q2-textarea-test.e2e.js.map +1 -1
  305. package/dist/collection/components/q2-tooltip/q2-tooltip.css +0 -1
  306. package/dist/collection/components/q2-tooltip/q2-tooltip.js.map +1 -1
  307. package/dist/collection/components/q2-tooltip/test/q2-tooltip-test.e2e.js.map +1 -1
  308. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane-types.js.map +1 -1
  309. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
  310. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js.map +1 -1
  311. package/dist/collection/components/tecton-tab-pane/test/tecton-tab-pane-test.e2e.js.map +1 -1
  312. package/dist/collection/index.js.map +1 -1
  313. package/dist/collection/utils/action-sheet.js.map +1 -1
  314. package/dist/collection/utils/charting.js.map +1 -1
  315. package/dist/collection/utils/helpers.js +1 -25
  316. package/dist/collection/utils/helpers.js.map +1 -1
  317. package/dist/collection/utils/index.js +2 -1
  318. package/dist/collection/utils/index.js.map +1 -1
  319. package/dist/collection/utils/mirror-emit.js.map +1 -1
  320. package/dist/collection/utils/sanitize-html-string.js.map +1 -1
  321. package/dist/collection/utils/sanitize-regex-string.js.map +1 -1
  322. package/dist/collection/utils/test/action-sheet-test.e2e.js.map +1 -1
  323. package/dist/collection/utils/test/index.spec.js.map +1 -1
  324. package/dist/components/index.js +4 -0
  325. package/dist/components/index.js.map +1 -1
  326. package/dist/components/index2.js +2 -1
  327. package/dist/components/index2.js.map +1 -1
  328. package/dist/components/q2-action-group.js +1 -116
  329. package/dist/components/q2-action-group.js.map +1 -1
  330. package/dist/components/q2-action-group2.js +151 -0
  331. package/dist/components/q2-action-group2.js.map +1 -0
  332. package/dist/components/q2-action-sheet.js +2 -1362
  333. package/dist/components/q2-action-sheet.js.map +1 -1
  334. package/dist/components/q2-avatar2.js +1 -1
  335. package/dist/components/q2-badge2.js +54 -16
  336. package/dist/components/q2-badge2.js.map +1 -1
  337. package/dist/components/q2-btn2.js +1 -1
  338. package/dist/components/q2-btn2.js.map +1 -1
  339. package/dist/components/q2-calendar.js +1 -1
  340. package/dist/components/q2-calendar.js.map +1 -1
  341. package/dist/components/q2-carousel-pane.js +2 -2
  342. package/dist/components/q2-chart-area.js +1 -1
  343. package/dist/components/q2-chart-bar.js +1 -1
  344. package/dist/components/q2-chart-donut.js +1 -1
  345. package/dist/components/q2-checkbox-group.js +1 -1
  346. package/dist/components/q2-checkbox-group.js.map +1 -1
  347. package/dist/components/q2-checkbox2.js +20 -20
  348. package/dist/components/q2-checkbox2.js.map +1 -1
  349. package/dist/components/q2-currency.js +1 -1
  350. package/dist/components/q2-detail.js +1 -1
  351. package/dist/components/q2-file-picker.js +1 -1
  352. package/dist/components/q2-file-picker.js.map +1 -1
  353. package/dist/components/q2-form.d.ts +11 -0
  354. package/dist/components/q2-form.js +39 -0
  355. package/dist/components/q2-form.js.map +1 -0
  356. package/dist/components/q2-formatted-text.js +1 -1
  357. package/dist/components/q2-input2.js +5 -4
  358. package/dist/components/q2-input2.js.map +1 -1
  359. package/dist/components/q2-item2.js +1 -1
  360. package/dist/components/q2-legend2.js +2 -2
  361. package/dist/components/q2-legend2.js.map +1 -1
  362. package/dist/components/q2-list2.js +1 -1
  363. package/dist/components/q2-loc.js +22 -33
  364. package/dist/components/q2-loc.js.map +1 -1
  365. package/dist/components/q2-message2.js +1 -1
  366. package/dist/components/q2-modal.d.ts +11 -0
  367. package/dist/components/q2-modal.js +231 -0
  368. package/dist/components/q2-modal.js.map +1 -0
  369. package/dist/components/q2-month-picker.js +2 -2
  370. package/dist/components/q2-optgroup2.js +1 -1
  371. package/dist/components/q2-option2.js +23 -25
  372. package/dist/components/q2-option2.js.map +1 -1
  373. package/dist/components/q2-pagination.js +3 -3
  374. package/dist/components/q2-pill.js +1 -1
  375. package/dist/components/q2-popover2.js +1 -1
  376. package/dist/components/q2-radio-group.js +1 -1
  377. package/dist/components/q2-radio-group.js.map +1 -1
  378. package/dist/components/q2-relative-time.js +1 -1
  379. package/dist/components/q2-resize-observer2.js +2 -2
  380. package/dist/components/q2-resize-observer2.js.map +1 -1
  381. package/dist/components/q2-section.js +2 -2
  382. package/dist/components/q2-select2.js +9 -5
  383. package/dist/components/q2-select2.js.map +1 -1
  384. package/dist/components/q2-stepper-vertical.js +1 -1
  385. package/dist/components/q2-stepper.js +1 -1
  386. package/dist/components/q2-tab-container.js +1 -1
  387. package/dist/components/q2-tab-pane.js +1 -1
  388. package/dist/components/q2-tag.js +50 -8
  389. package/dist/components/q2-tag.js.map +1 -1
  390. package/dist/components/q2-textarea.js +2 -2
  391. package/dist/components/q2-textarea.js.map +1 -1
  392. package/dist/components/q2-tooltip.js +1 -1
  393. package/dist/components/q2-tooltip.js.map +1 -1
  394. package/dist/components/sanitize-html-string.js +1364 -0
  395. package/dist/components/sanitize-html-string.js.map +1 -0
  396. package/dist/components/tecton-tab-pane.js +2 -2
  397. package/dist/esm/{index-504f1a9e.js → index-f2a66217.js} +3 -2
  398. package/dist/esm/index-f2a66217.js.map +1 -0
  399. package/dist/esm/loader.js +1 -1
  400. package/dist/esm/q2-action-group.entry.js +45 -14
  401. package/dist/esm/q2-action-group.entry.js.map +1 -1
  402. package/dist/esm/q2-action-sheet.entry.js +3 -1363
  403. package/dist/esm/q2-action-sheet.entry.js.map +1 -1
  404. package/dist/esm/q2-avatar.entry.js +1 -1
  405. package/dist/esm/q2-badge_7.entry.js +59 -22
  406. package/dist/esm/q2-badge_7.entry.js.map +1 -1
  407. package/dist/esm/q2-calendar.entry.js +2 -2
  408. package/dist/esm/q2-calendar.entry.js.map +1 -1
  409. package/dist/esm/q2-card.entry.js +1 -1
  410. package/dist/esm/q2-carousel-pane.entry.js +3 -3
  411. package/dist/esm/q2-carousel.entry.js +1 -1
  412. package/dist/esm/q2-chart-area.entry.js +2 -2
  413. package/dist/esm/q2-chart-bar.entry.js +2 -2
  414. package/dist/esm/q2-chart-donut.entry.js +2 -2
  415. package/dist/esm/q2-checkbox-group.entry.js +2 -2
  416. package/dist/esm/q2-checkbox-group.entry.js.map +1 -1
  417. package/dist/esm/q2-checkbox.entry.js +21 -21
  418. package/dist/esm/q2-checkbox.entry.js.map +1 -1
  419. package/dist/esm/q2-currency.entry.js +1 -1
  420. package/dist/esm/q2-data-table.entry.js +1 -1
  421. package/dist/esm/q2-detail.entry.js +2 -2
  422. package/dist/esm/q2-dropdown-item.entry.js +1 -1
  423. package/dist/esm/q2-dropdown.entry.js +1 -1
  424. package/dist/esm/q2-editable-field.entry.js +1 -1
  425. package/dist/esm/q2-file-picker.entry.js +2 -2
  426. package/dist/esm/q2-file-picker.entry.js.map +1 -1
  427. package/dist/esm/q2-form.entry.js +19 -0
  428. package/dist/esm/q2-form.entry.js.map +1 -0
  429. package/dist/esm/q2-formatted-text.entry.js +1 -1
  430. package/dist/esm/q2-item_3.entry.js +3 -3
  431. package/dist/esm/q2-legend.entry.js +2 -2
  432. package/dist/esm/q2-legend.entry.js.map +1 -1
  433. package/dist/esm/q2-loc.entry.js +21 -27
  434. package/dist/esm/q2-loc.entry.js.map +1 -1
  435. package/dist/esm/q2-message.entry.js +2 -2
  436. package/dist/esm/q2-modal.entry.js +168 -0
  437. package/dist/esm/q2-modal.entry.js.map +1 -0
  438. package/dist/esm/q2-month-picker.entry.js +3 -3
  439. package/dist/esm/q2-optgroup.entry.js +2 -2
  440. package/dist/esm/q2-option-list_2.entry.js +2 -2
  441. package/dist/esm/q2-option.entry.js +22 -24
  442. package/dist/esm/q2-option.entry.js.map +1 -1
  443. package/dist/esm/q2-pagination.entry.js +4 -4
  444. package/dist/esm/q2-pill.entry.js +2 -2
  445. package/dist/esm/q2-radio-group.entry.js +2 -2
  446. package/dist/esm/q2-radio-group.entry.js.map +1 -1
  447. package/dist/esm/q2-radio.entry.js +1 -1
  448. package/dist/esm/q2-relative-time.entry.js +2 -2
  449. package/dist/esm/q2-resize-observer.entry.js +2 -2
  450. package/dist/esm/q2-resize-observer.entry.js.map +1 -1
  451. package/dist/esm/q2-section.entry.js +3 -3
  452. package/dist/esm/q2-select.entry.js +10 -6
  453. package/dist/esm/q2-select.entry.js.map +1 -1
  454. package/dist/esm/q2-stepper-pane.entry.js +1 -1
  455. package/dist/esm/q2-stepper-vertical.entry.js +2 -2
  456. package/dist/esm/q2-stepper.entry.js +2 -2
  457. package/dist/esm/q2-tag.entry.js +51 -9
  458. package/dist/esm/q2-tag.entry.js.map +1 -1
  459. package/dist/esm/q2-tecton-elements.js +1 -1
  460. package/dist/esm/q2-textarea.entry.js +3 -3
  461. package/dist/esm/q2-textarea.entry.js.map +1 -1
  462. package/dist/esm/q2-tooltip.entry.js +2 -2
  463. package/dist/esm/q2-tooltip.entry.js.map +1 -1
  464. package/dist/esm/sanitize-html-string-735c19f5.js +1364 -0
  465. package/dist/esm/sanitize-html-string-735c19f5.js.map +1 -0
  466. package/dist/esm/tecton-tab-pane.entry.js +2 -2
  467. package/dist/jest.setup.js +22 -0
  468. package/dist/jest.setup.js.map +1 -0
  469. package/dist/q2-tecton-elements/{index-504f1a9e.js → index-f2a66217.js} +9 -8
  470. package/dist/q2-tecton-elements/index-f2a66217.js.map +1 -0
  471. package/dist/q2-tecton-elements/q2-action-group.entry.js +49 -17
  472. package/dist/q2-tecton-elements/q2-action-group.entry.js.map +1 -1
  473. package/dist/q2-tecton-elements/q2-action-sheet.entry.js +121 -1331
  474. package/dist/q2-tecton-elements/q2-action-sheet.entry.js.map +1 -1
  475. package/dist/q2-tecton-elements/q2-avatar.entry.js +6 -6
  476. package/dist/q2-tecton-elements/q2-badge_7.entry.js +199 -164
  477. package/dist/q2-tecton-elements/q2-badge_7.entry.js.map +1 -1
  478. package/dist/q2-tecton-elements/q2-calendar.entry.js +180 -180
  479. package/dist/q2-tecton-elements/q2-calendar.entry.js.map +1 -1
  480. package/dist/q2-tecton-elements/q2-card.entry.js +1 -1
  481. package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +21 -21
  482. package/dist/q2-tecton-elements/q2-carousel.entry.js +1 -1
  483. package/dist/q2-tecton-elements/q2-chart-area.entry.js +3 -3
  484. package/dist/q2-tecton-elements/q2-chart-bar.entry.js +3 -3
  485. package/dist/q2-tecton-elements/q2-chart-donut.entry.js +7 -7
  486. package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +5 -5
  487. package/dist/q2-tecton-elements/q2-checkbox-group.entry.js.map +1 -1
  488. package/dist/q2-tecton-elements/q2-checkbox.entry.js +92 -88
  489. package/dist/q2-tecton-elements/q2-checkbox.entry.js.map +1 -1
  490. package/dist/q2-tecton-elements/q2-currency.entry.js +6 -6
  491. package/dist/q2-tecton-elements/q2-data-table.entry.js +1 -1
  492. package/dist/q2-tecton-elements/q2-detail.entry.js +39 -39
  493. package/dist/q2-tecton-elements/q2-dropdown-item.entry.js +1 -1
  494. package/dist/q2-tecton-elements/q2-dropdown.entry.js +1 -1
  495. package/dist/q2-tecton-elements/q2-editable-field.entry.js +1 -1
  496. package/dist/q2-tecton-elements/q2-file-picker.entry.js +2 -2
  497. package/dist/q2-tecton-elements/q2-file-picker.entry.js.map +1 -1
  498. package/dist/q2-tecton-elements/q2-form.entry.js +25 -0
  499. package/dist/q2-tecton-elements/q2-form.entry.js.map +1 -0
  500. package/dist/q2-tecton-elements/q2-formatted-text.entry.js +2 -2
  501. package/dist/q2-tecton-elements/q2-item_3.entry.js +22 -22
  502. package/dist/q2-tecton-elements/q2-legend.entry.js +6 -6
  503. package/dist/q2-tecton-elements/q2-legend.entry.js.map +1 -1
  504. package/dist/q2-tecton-elements/q2-loc.entry.js +23 -32
  505. package/dist/q2-tecton-elements/q2-loc.entry.js.map +1 -1
  506. package/dist/q2-tecton-elements/q2-message.entry.js +21 -21
  507. package/dist/q2-tecton-elements/q2-modal.entry.js +226 -0
  508. package/dist/q2-tecton-elements/q2-modal.entry.js.map +1 -0
  509. package/dist/q2-tecton-elements/q2-month-picker.entry.js +14 -14
  510. package/dist/q2-tecton-elements/q2-optgroup.entry.js +8 -8
  511. package/dist/q2-tecton-elements/q2-option-list_2.entry.js +4 -4
  512. package/dist/q2-tecton-elements/q2-option.entry.js +38 -38
  513. package/dist/q2-tecton-elements/q2-option.entry.js.map +1 -1
  514. package/dist/q2-tecton-elements/q2-pagination.entry.js +38 -38
  515. package/dist/q2-tecton-elements/q2-pill.entry.js +14 -14
  516. package/dist/q2-tecton-elements/q2-radio-group.entry.js +28 -28
  517. package/dist/q2-tecton-elements/q2-radio-group.entry.js.map +1 -1
  518. package/dist/q2-tecton-elements/q2-radio.entry.js +1 -1
  519. package/dist/q2-tecton-elements/q2-relative-time.entry.js +5 -5
  520. package/dist/q2-tecton-elements/q2-resize-observer.entry.js +5 -2
  521. package/dist/q2-tecton-elements/q2-resize-observer.entry.js.map +1 -1
  522. package/dist/q2-tecton-elements/q2-section.entry.js +19 -19
  523. package/dist/q2-tecton-elements/q2-select.entry.js +13 -9
  524. package/dist/q2-tecton-elements/q2-select.entry.js.map +1 -1
  525. package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +1 -1
  526. package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +5 -5
  527. package/dist/q2-tecton-elements/q2-stepper.entry.js +22 -22
  528. package/dist/q2-tecton-elements/q2-tag.entry.js +84 -45
  529. package/dist/q2-tecton-elements/q2-tag.entry.js.map +1 -1
  530. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  531. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
  532. package/dist/q2-tecton-elements/q2-textarea.entry.js +4 -4
  533. package/dist/q2-tecton-elements/q2-textarea.entry.js.map +1 -1
  534. package/dist/q2-tecton-elements/q2-tooltip.entry.js +2 -2
  535. package/dist/q2-tecton-elements/q2-tooltip.entry.js.map +1 -1
  536. package/dist/q2-tecton-elements/sanitize-html-string-735c19f5.js +1214 -0
  537. package/dist/q2-tecton-elements/sanitize-html-string-735c19f5.js.map +1 -0
  538. package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +9 -9
  539. package/dist/types/builds/q2e/development/tecton/tecton/packages/q2-tecton-elements/.stencil/jest.setup.d.ts +1 -0
  540. package/dist/types/components/q2-action-group/q2-action-group.d.ts +5 -2
  541. package/dist/types/components/q2-badge/q2-badge.d.ts +17 -3
  542. package/dist/types/components/q2-checkbox/q2-checkbox.d.ts +3 -3
  543. package/dist/types/components/q2-form/q2-form.d.ts +6 -0
  544. package/dist/types/components/q2-loc/q2-loc.d.ts +5 -5
  545. package/dist/types/components/q2-modal/q2-modal.d.ts +80 -0
  546. package/dist/types/components/q2-option/q2-option.d.ts +4 -4
  547. package/dist/types/components/q2-select/q2-select.d.ts +1 -0
  548. package/dist/types/components/q2-tag/q2-tag.d.ts +19 -0
  549. package/dist/types/components.d.ts +182 -6
  550. package/dist/types/util.d.ts +1 -8
  551. package/dist/types/utils/helpers.d.ts +1 -13
  552. package/dist/types/utils/index.d.ts +3 -2
  553. package/package.json +3 -3
  554. package/dist/cjs/index-76f63767.js.map +0 -1
  555. package/dist/collection/components/q2-action-group/test/q2-action-group.e2e.js +0 -166
  556. package/dist/collection/components/q2-action-group/test/q2-action-group.e2e.js.map +0 -1
  557. package/dist/collection/components/q2-action-group/test/q2-action-group.spec.js.map +0 -1
  558. package/dist/esm/index-504f1a9e.js.map +0 -1
  559. package/dist/q2-tecton-elements/index-504f1a9e.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"q2-action-group-test.spec.js","sourceRoot":"","sources":["../../../../../src/components/q2-action-group/test/q2-action-group-test.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { SpecPage, newSpecPage } from '@stencil/core/testing';\nimport { Q2ActionGroup } from '../q2-action-group';\n\ndescribe('q2-action-group', () => {\n let specPage: SpecPage;\n let groupClass;\n\n const generateResizeEvent = (width: number) => {\n return new CustomEvent('tctResize', {\n detail: {\n entries: [{ contentRect: { width } }],\n },\n });\n };\n\n describe('State', () => {\n describe('autoOrientation', () => {\n it('defaults to \"vertical\"', async () => {\n specPage = await newSpecPage({\n components: [Q2ActionGroup],\n html: `<q2-action-group></q2-action-group>`,\n });\n\n expect(specPage.rootInstance.autoOrientation).toEqual('vertical');\n });\n });\n describe('slottedTagName', () => {\n it('defaults to \"null\"', async () => {\n specPage = await newSpecPage({\n components: [Q2ActionGroup],\n html: `<q2-action-group></q2-action-group>`,\n });\n\n expect(specPage.rootInstance.slottedTagName).toBeUndefined();\n });\n });\n });\n\n describe('Props', () => {\n describe('orientationThreshold', () => {\n beforeEach(async () => {\n specPage = await newSpecPage({\n components: [Q2ActionGroup],\n html: `<q2-action-group></q2-action-group>`,\n });\n await specPage.waitForChanges();\n });\n\n describe('when using the default value (440)', () => {\n it('sets autoOrientation to \"horizontal\" when a resize event reports a width of 441', async () => {\n specPage.rootInstance.handleResize(generateResizeEvent(441));\n await specPage.waitForChanges();\n expect(specPage.rootInstance.autoOrientation).toEqual('horizontal');\n expect(specPage.root.shadowRoot.querySelector('.container')).toHaveClass('horizontal');\n });\n\n it('sets autoOrientation to \"vertical\" when a resize event reports a width of 439', async () => {\n specPage.rootInstance.handleResize(generateResizeEvent(439));\n await specPage.waitForChanges();\n expect(specPage.rootInstance.autoOrientation).toEqual('vertical');\n expect(specPage.root.shadowRoot.querySelector('.container')).toHaveClass('vertical');\n });\n });\n\n describe('when using a custom value (400)', () => {\n beforeEach(async () => {\n specPage.rootInstance.orientationThreshold = 400;\n await specPage.waitForChanges();\n });\n\n it('sets autoOrientation to \"horizontal\" when a resize event reports a width of 401', async () => {\n specPage.rootInstance.handleResize(generateResizeEvent(401));\n await specPage.waitForChanges();\n expect(specPage.rootInstance.autoOrientation).toEqual('horizontal');\n expect(specPage.root.shadowRoot.querySelector('.container')).toHaveClass('horizontal');\n });\n\n it('sets autoOrientation to \"vertical\" when a resize event reports a width of 399', async () => {\n specPage.rootInstance.handleResize(generateResizeEvent(399));\n await specPage.waitForChanges();\n expect(specPage.rootInstance.autoOrientation).toEqual('vertical');\n expect(specPage.root.shadowRoot.querySelector('.container')).toHaveClass('vertical');\n });\n });\n });\n\n describe('orientation', () => {\n it('is set to \"vertical\" when the prop is passed in', async () => {\n specPage = await newSpecPage({\n components: [Q2ActionGroup],\n html: `<q2-action-group orientation=\"vertical\"></q2-action-group>`,\n });\n\n expect(specPage.root.shadowRoot.querySelector('.container')).toHaveClass('vertical');\n });\n\n it('is set to \"horizontal\" when the prop is passed in', async () => {\n specPage = await newSpecPage({\n components: [Q2ActionGroup],\n html: `<q2-action-group orientation=\"horizontal\"></q2-action-group>`,\n });\n\n expect(specPage.root.shadowRoot.querySelector('.container')).toHaveClass('horizontal');\n });\n\n it('takes priority over the autoOrientation', async () => {\n specPage = await newSpecPage({\n components: [Q2ActionGroup],\n html: `<q2-action-group orientation=\"horizontal\"></q2-action-group>`,\n });\n\n expect(specPage.rootInstance.autoOrientation).toEqual('vertical');\n expect(specPage.root.shadowRoot.querySelector('.container')).toHaveClass('horizontal');\n });\n\n it(\"uses 'auto' when null\", async () => {\n specPage = await newSpecPage({\n components: [Q2ActionGroup],\n html: `<q2-action-group></q2-action-group>`,\n });\n\n specPage.rootInstance.orientation = null;\n\n expect(specPage.root.shadowRoot.querySelector('.container')).toHaveClass('vertical');\n });\n\n it(\"uses 'auto' when undefined\", async () => {\n specPage = await newSpecPage({\n components: [Q2ActionGroup],\n html: `<q2-action-group></q2-action-group>`,\n });\n\n specPage.rootInstance.orientation = undefined;\n\n expect(specPage.root.shadowRoot.querySelector('.container')).toHaveClass('vertical');\n });\n });\n\n describe('fullWidth', () => {\n it('does not add the full-width class to the container when false (Default)', async () => {\n specPage = await newSpecPage({\n components: [Q2ActionGroup],\n html: `<q2-action-group></q2-action-group>`,\n });\n\n expect(specPage.root.shadowRoot.querySelector('.container')).not.toHaveClass('full-width');\n });\n\n it('renders with full width styles when true', async () => {\n specPage = await newSpecPage({\n components: [Q2ActionGroup],\n html: `<q2-action-group full-width orientation=\"horizontal\"></q2-action-group>`,\n });\n\n expect(specPage.root.shadowRoot.querySelector('.container')).toHaveClasses([\n 'full-width',\n 'horizontal',\n ]);\n });\n });\n });\n\n describe('Lifecycle Methods', () => {\n describe('componentDidLoad', () => {\n it('calls filterSlottedElements', async () => {\n specPage = await newSpecPage({\n components: [Q2ActionGroup],\n html: `<q2-action-group></q2-action-group>`,\n });\n groupClass = specPage.rootInstance;\n const filterSlottedElementsSpy = jest.spyOn(groupClass, 'filterSlottedElements');\n groupClass.componentDidLoad();\n expect(filterSlottedElementsSpy).toHaveBeenCalled();\n });\n\n it('calls initMutationObserver', async () => {\n specPage = await newSpecPage({\n components: [Q2ActionGroup],\n html: `<q2-action-group></q2-action-group>`,\n });\n groupClass = specPage.rootInstance;\n const initMutationObserverSpy = jest.spyOn(groupClass, 'initMutationObserver');\n groupClass.componentDidLoad();\n expect(initMutationObserverSpy).toHaveBeenCalled();\n });\n });\n });\n\n describe('Watchers', () => {\n describe('toggleHiddenForOneFrame', () => {\n it('is triggered by changes to \"orientation\"', async () => {\n specPage = await newSpecPage({\n components: [Q2ActionGroup],\n html: `<q2-action-group></q2-action-group>`,\n });\n groupClass = specPage.rootInstance;\n const toggleHiddenSpy = jest.spyOn(groupClass, 'toggleHiddenForOneFrame');\n groupClass.orientation = 'horizontal';\n expect(toggleHiddenSpy).toHaveBeenCalled();\n });\n it('sets the container display to none', async () => {\n specPage = await newSpecPage({\n components: [Q2ActionGroup],\n html: `<q2-action-group></q2-action-group>`,\n });\n groupClass = specPage.rootInstance;\n groupClass.toggleHiddenForOneFrame();\n expect(groupClass.container.style.display).toBe('none');\n });\n });\n });\n\n describe('Local Methods', () => {\n describe('Getters', () => {\n describe('computedOrientation', () => {\n it(\"returns 'vertical' when orientation is 'auto' and autoOrientation is 'vertical'\", async () => {\n specPage = await newSpecPage({\n components: [Q2ActionGroup],\n html: `<q2-action-group></q2-action-group>`,\n });\n await specPage.waitForChanges();\n\n specPage.rootInstance.autoOrientation = 'vertical';\n expect(specPage.rootInstance.orientation).toEqual('auto');\n expect(specPage.rootInstance.computedOrientation).toEqual('vertical');\n });\n\n it(\"returns 'vertical' when orientation is 'null' and autoOrientation is 'vertical'\", async () => {\n specPage = await newSpecPage({\n components: [Q2ActionGroup],\n html: `<q2-action-group></q2-action-group>`,\n });\n await specPage.waitForChanges();\n\n specPage.rootInstance.orientation = null;\n await specPage.waitForChanges();\n\n specPage.rootInstance.autoOrientation = 'vertical';\n expect(specPage.rootInstance.orientation).toEqual(null);\n expect(specPage.rootInstance.computedOrientation).toEqual('vertical');\n });\n\n it(\"returns 'horizontal' when orientation is 'horizontal'\", async () => {\n specPage = await newSpecPage({\n components: [Q2ActionGroup],\n html: `<q2-action-group orientation=\"horizontal\"></q2-action-group>`,\n });\n await specPage.waitForChanges();\n\n expect(specPage.rootInstance.computedOrientation).toEqual('horizontal');\n });\n });\n\n describe('shouldDisableResizeObserver', () => {\n it('returns false when orientation is \"auto\"', async () => {\n specPage = await newSpecPage({\n components: [Q2ActionGroup],\n html: `<q2-action-group></q2-action-group>`,\n });\n await specPage.waitForChanges();\n\n expect(specPage.rootInstance.orientation).toEqual('auto');\n expect(specPage.rootInstance.shouldDisableResizeObserver).toEqual(false);\n });\n\n it('returns false when orientation is \"null\"', async () => {\n specPage = await newSpecPage({\n components: [Q2ActionGroup],\n html: `<q2-action-group></q2-action-group>`,\n });\n await specPage.waitForChanges();\n\n specPage.rootInstance.orientation = null;\n await specPage.waitForChanges();\n\n expect(specPage.rootInstance.shouldDisableResizeObserver).toEqual(false);\n });\n\n it('returns false when orientation is \"vertical\"', async () => {\n specPage = await newSpecPage({\n components: [Q2ActionGroup],\n html: `<q2-action-group orientation=\"vertical\"></q2-action-group>`,\n });\n await specPage.waitForChanges();\n\n expect(specPage.rootInstance.orientation).toEqual('vertical');\n expect(specPage.rootInstance.shouldDisableResizeObserver).toEqual(true);\n });\n\n it('returns true when the slottedTagName is \"q2-btn-coin\"', async () => {\n specPage = await newSpecPage({\n components: [Q2ActionGroup],\n html: `<q2-action-group></q2-action-group>`,\n });\n\n specPage.rootInstance.slottedTagName = 'q2-btn-coin';\n expect(specPage.rootInstance.shouldDisableResizeObserver).toEqual(true);\n });\n\n it('returns true when the slottedTagName is \"q2-link\"', async () => {\n specPage = await newSpecPage({\n components: [Q2ActionGroup],\n html: `<q2-action-group></q2-action-group>`,\n });\n\n specPage.rootInstance.slottedTagName = 'q2-link';\n expect(specPage.rootInstance.shouldDisableResizeObserver).toEqual(true);\n });\n });\n });\n\n describe('Methods', () => {\n describe('handleResize', () => {\n beforeEach(async () => {\n specPage = await newSpecPage({\n components: [Q2ActionGroup],\n html: `<q2-action-group></q2-action-group>`,\n });\n groupClass = specPage.rootInstance;\n });\n\n it('sets autoOrientation to \"horizontal\" when a resize event reports a width greater than 440', async () => {\n groupClass.handleResize(generateResizeEvent(441));\n await specPage.waitForChanges();\n expect(groupClass.autoOrientation).toEqual('horizontal');\n });\n\n it('sets autoOrientation to \"vertical\" when a resize event reports a width less than 440', async () => {\n groupClass.handleResize(generateResizeEvent(439));\n await specPage.waitForChanges();\n expect(groupClass.autoOrientation).toEqual('vertical');\n });\n });\n\n describe('onMutationObserved', () => {\n it('calls filterSlottedElements', async () => {\n const filterSlottedElementsMock = jest.spyOn(groupClass, 'filterSlottedElements');\n groupClass.onMutationObserved();\n expect(filterSlottedElementsMock).toHaveBeenCalled();\n });\n });\n });\n });\n});\n"]}
@@ -208,7 +208,7 @@ export class Q2ActionSheet {
208
208
  }
209
209
  const appearance = (data === null || data === void 0 ? void 0 : data.appearance) || 'slot';
210
210
  const interiorClasses = `interior is-${appearance}`;
211
- return (h("dialog", { key: '89438ac3af7a795d3b83a4171c74e0b1255ccb95', ref: el => (this.dialogElement = el), class: renderStatus, onClick: this.onClick }, h("div", { key: 'a17e57ba2693ee5dbd70ae888fde0d5df2837ccb', class: interiorClasses }, showHeader && (h("header", { key: '7da7a414195ed0e3e3f8dbc1692adeabd4dee09b' }, h("div", { key: 'f83976916359a1c9318086c486ab59e7f001e9ca', class: "title" }, (data === null || data === void 0 ? void 0 : data.title) || this.title), !this.hideClose && (h("q2-btn", { key: '873a7f92f6103bb671594640c56786d3dcb389d8', class: "btn-close", "test-id": "btnClose", onClick: this.onCancel, label: "tecton.element.actionSheet.close", "hide-label": true }, h("q2-icon", { key: 'bb5d5f0d92186171564b2fe74d7b95e98962ed9c', type: "close" }))))), ((_a = this.data) === null || _a === void 0 ? void 0 : _a.description) && h("p", { key: '2620549f6ca4b669011a4dbd2be0a470d65ee857' }, data.description), RenderContent && h(RenderContent, { key: 'bf22c21f56b4551f4bf6ddbcc6385669ed02b66b', data: this.data }))));
211
+ return (h("dialog", { key: 'd0af72ad1b1c131bef4f6661ff4226ca78c87a2a', ref: el => (this.dialogElement = el), class: renderStatus, onClick: this.onClick }, h("div", { key: 'ac49c7e7ef0c085a792779488f22b5919fe46cbc', class: interiorClasses }, showHeader && (h("header", { key: '2d558b392b3005d6e54a525263b703926499bd9c' }, h("div", { key: 'a1d06ac6d939eef0675920e7be4c80cc74e6411f', class: "title" }, (data === null || data === void 0 ? void 0 : data.title) || this.title), !this.hideClose && (h("q2-btn", { key: '4e0de7d287daef9f7b804f0f0dcdaed087931ca3', class: "btn-close", "test-id": "btnClose", onClick: this.onCancel, label: "tecton.element.actionSheet.close", "hide-label": true }, h("q2-icon", { key: 'bf9a5f21a3d90997ad556db316f3e9be074ce32d', type: "close" }))))), ((_a = this.data) === null || _a === void 0 ? void 0 : _a.description) && h("p", { key: '554055dc7db18192dae5278b0db1e73013a9f44e' }, data.description), RenderContent && h(RenderContent, { key: '466462435bbfcd7fea7aa15fea8a014d1cd8370e', data: this.data }))));
212
212
  }
213
213
  static get is() { return "q2-action-sheet"; }
214
214
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"q2-action-sheet.js","sourceRoot":"","sources":["../../../src/components/q2-action-sheet/q2-action-sheet.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n ComponentInterface,\n Prop,\n Method,\n h,\n State,\n Event,\n EventEmitter,\n Fragment,\n Element,\n} from '@stencil/core';\nimport { Q2OptionListCustomEvent } from 'src/components';\nimport {\n ActionSheetListCloseData,\n ActionSheetData,\n ActionSheetListData,\n ActionSheetMessageData,\n ActionSheetSelectedOption,\n ActionSheetListOption,\n ActionSheetListOptgroup,\n} from 'q2-tecton-common/lib/utility/action-sheet';\nimport { loc, waitForNextPaint } from 'src/utils';\nimport sanitizeHTMLString from 'src/utils/sanitize-html-string';\n\n@Component({ tag: 'q2-action-sheet', shadow: true, styleUrl: 'q2-action-sheet.scss' })\nexport class Q2ActionSheet implements ComponentInterface {\n // #region Own Properties\n\n contentElement: HTMLDivElement;\n dialogElement: HTMLDialogElement;\n initialSelectedOptions: ActionSheetSelectedOption[] = [];\n maxHeight: number = 0.75;\n minHeight: number = 0.2;\n optionListElement: HTMLQ2OptionListElement;\n selectedOptions: { values: ActionSheetSelectedOption[]; value: string } = { values: [], value: '' };\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n isScrollable: boolean = false;\n\n @State()\n renderStatus: 'is-open' | 'is-closing' | 'is-opening' = 'is-closing';\n\n // #endregion\n // #region Public Property API\n\n @Prop({ mutable: true })\n data: ActionSheetData;\n\n @Prop()\n hideClose: boolean;\n\n @Prop()\n title: string;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the action sheet is closed.\n */\n @Event()\n close: EventEmitter<ActionSheetListCloseData>;\n\n /**\n * Emitted when the component has finished rendering.\n * @private\n */\n @Event({ bubbles: false })\n ready: EventEmitter;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n this.dialogElement.removeEventListener('cancel', this.onCancel);\n }\n\n componentDidLoad() {\n this.dialogElement.addEventListener('cancel', this.onCancel);\n this.ready.emit();\n }\n\n // #endregion\n // #region Public Methods API\n\n @Method()\n async hide(data: ActionSheetListCloseData = { value: '', values: [], type: 'confirm' }) {\n this.close.emit(data);\n this.renderStatus = 'is-closing';\n this.dialogElement.addEventListener(\n 'transitionend',\n () => {\n if (this.renderStatus !== 'is-closing') return;\n this.dialogElement.close();\n this.renderStatus = null;\n this.data = undefined;\n this.initialSelectedOptions = [];\n this.selectedOptions = { values: [], value: '' };\n this.hidePostHook();\n },\n { once: true }\n );\n }\n\n @Method()\n async show() {\n this.showPreHook();\n await waitForNextPaint();\n this.updateDialogMinMaxHeight();\n this.storeInitialValues();\n\n if (this.dialogElement.open) return;\n\n this.dialogElement.showModal();\n this.renderStatus = 'is-opening';\n this.dialogElement.addEventListener(\n 'transitionend',\n () => {\n if (this.renderStatus !== 'is-opening') return;\n this.renderStatus = 'is-open';\n this.focusContent();\n },\n { once: true }\n );\n }\n\n // #endregion\n // #region Local Methods\n\n focusContent() {\n const { data } = this;\n if (!data) return;\n if (data.appearance === 'list') {\n const { event } = data;\n if (event instanceof KeyboardEvent) {\n this.optionListElement.handleExternalKeydown(event);\n } else {\n this.optionListElement.focus();\n }\n }\n }\n\n generateOptgroup = (option: ActionSheetListOptgroup) => {\n const optgroupElement = document.createElement('q2-optgroup');\n if (option.label) optgroupElement.setAttribute('label', option.label);\n if (option.disabled) optgroupElement.setAttribute('disabled', '');\n if (!!option.options.length)\n option.options.forEach(opt => optgroupElement.appendChild(this.generateOption(opt)));\n return optgroupElement;\n };\n\n generateOption = (option: ActionSheetListOption) => {\n const optionElement = document.createElement('q2-option');\n const { innerHTML, ...attributes } = option;\n if (innerHTML) optionElement.innerHTML = sanitizeHTMLString(innerHTML);\n Object.entries(attributes).forEach(([key, value]) => {\n if (value === undefined) return;\n if (typeof value === 'boolean') {\n if (value) optionElement.setAttribute(key, '');\n } else {\n optionElement.setAttribute(key, value);\n }\n });\n return optionElement;\n };\n\n hidePostHook() {\n const { data } = this;\n if (!data) return;\n if (data.appearance === 'list') {\n this.hostElement.innerHTML = null;\n }\n }\n\n onCancel = (event: Event) => {\n event.preventDefault();\n const { initialSelectedOptions } = this;\n this.hide({\n value: initialSelectedOptions?.[0]?.value ?? '',\n values: initialSelectedOptions,\n type: 'cancel',\n });\n };\n\n onClick = (event: MouseEvent) => {\n const eventTarget = event.target as HTMLElement;\n if (!(eventTarget instanceof HTMLElement)) return;\n\n const isInContent = !!eventTarget.closest('.interior, q2-action-sheet');\n if (isInContent) return;\n this.onCancel(event);\n };\n\n onListChange = (event: Q2OptionListCustomEvent<{ value: string; values: ActionSheetSelectedOption[] }>) => {\n this.selectedOptions = event.detail;\n };\n\n onListDone = () => {\n this.hide({\n ...this.selectedOptions,\n type: 'confirm',\n });\n };\n\n onListPopoverStateChange = (\n event: Q2OptionListCustomEvent<{ open: boolean; action: 'close' | 'select' | 'open' }>\n ) => {\n if (event.detail.open) return;\n\n if (event.detail.action === 'close') {\n this.onCancel(event);\n } else {\n this.onListDone();\n }\n };\n\n showPreHook() {\n const { data } = this;\n if (!data) return;\n if (data.appearance === 'list') {\n this.hostElement.innerHTML = null;\n data.options.forEach(option => {\n this.hostElement.appendChild(\n 'options' in option ? this.generateOptgroup(option) : this.generateOption(option)\n );\n });\n }\n }\n\n storeInitialValues() {\n const { data } = this;\n if (!data) return;\n if (data.appearance === 'list') {\n this.initialSelectedOptions = data.listProps.selectedOptions;\n }\n }\n\n updateDialogMinMaxHeight() {\n const windowHeight = window.innerHeight;\n this.dialogElement.style.setProperty(\n '--comp-action-sheet-computed-min-height',\n `${Math.floor(windowHeight * this.minHeight)}px`\n );\n this.dialogElement.style.setProperty(\n '--comp-action-sheet-computed-max-height',\n `${Math.floor(windowHeight * this.maxHeight)}px`\n );\n }\n\n // #endregion\n // #region Render Methods\n\n renderList = ({ data }: { data: ActionSheetListData }) => {\n const { listProps } = data;\n\n return (\n <Fragment>\n <div\n class=\"content\"\n ref={el => (this.contentElement = el)}\n >\n <q2-option-list\n ref={el => (this.optionListElement = el)}\n multiple={listProps.multiple}\n noSelect={listProps.noSelect}\n onChange={this.onListChange}\n onPopoverState={this.onListPopoverStateChange}\n selectedOptions={listProps.selectedOptions}\n >\n <slot />\n </q2-option-list>\n </div>\n <footer>\n {listProps.multiple && (\n <q2-btn\n test-id=\"btnDone\"\n intent=\"workflow-primary\"\n onClick={this.onListDone}\n >\n {loc('tecton.element.actionSheet.done')}\n </q2-btn>\n )}\n </footer>\n </Fragment>\n );\n };\n\n renderMessage = ({ data }: { data: ActionSheetMessageData }) => {\n return (\n <q2-message type={data.type}>\n {data.title && <h2>{data.title}</h2>}\n {data.description && <p>{data.description}</p>}\n </q2-message>\n );\n };\n\n renderSlot = () => {\n return (\n <div\n class=\"content\"\n ref={el => (this.contentElement = el)}\n >\n <slot />\n </div>\n );\n };\n\n render() {\n const { data } = this;\n const showHeader = data?.title || this.title || !this.hideClose;\n const renderStatus = this.renderStatus || '';\n\n let RenderContent = null;\n switch (data?.appearance) {\n case 'message':\n RenderContent = this.renderMessage;\n break;\n\n case 'list':\n RenderContent = this.renderList;\n break;\n\n default:\n RenderContent = this.renderSlot;\n break;\n }\n const appearance = data?.appearance || 'slot';\n const interiorClasses = `interior is-${appearance}`;\n\n return (\n <dialog\n ref={el => (this.dialogElement = el)}\n class={renderStatus}\n onClick={this.onClick}\n >\n <div class={interiorClasses}>\n {showHeader && (\n <header>\n <div class=\"title\">{data?.title || this.title}</div>\n {!this.hideClose && (\n <q2-btn\n class=\"btn-close\"\n test-id=\"btnClose\"\n onClick={this.onCancel}\n label=\"tecton.element.actionSheet.close\"\n hide-label\n >\n <q2-icon type=\"close\" />\n </q2-btn>\n )}\n </header>\n )}\n {this.data?.description && <p>{data.description}</p>}\n {RenderContent && <RenderContent data={this.data} />}\n </div>\n </dialog>\n );\n }\n\n // #endregion\n}\n"]}
1
+ {"version":3,"file":"q2-action-sheet.js","sourceRoot":"","sources":["../../../../src/components/q2-action-sheet/q2-action-sheet.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n ComponentInterface,\n Prop,\n Method,\n h,\n State,\n Event,\n EventEmitter,\n Fragment,\n Element,\n} from '@stencil/core';\nimport { Q2OptionListCustomEvent } from 'src/components';\nimport {\n ActionSheetListCloseData,\n ActionSheetData,\n ActionSheetListData,\n ActionSheetMessageData,\n ActionSheetSelectedOption,\n ActionSheetListOption,\n ActionSheetListOptgroup,\n} from 'q2-tecton-common/lib/utility/action-sheet';\nimport { loc, waitForNextPaint } from 'src/utils';\nimport sanitizeHTMLString from 'src/utils/sanitize-html-string';\n\n@Component({ tag: 'q2-action-sheet', shadow: true, styleUrl: 'q2-action-sheet.scss' })\nexport class Q2ActionSheet implements ComponentInterface {\n // #region Own Properties\n\n contentElement: HTMLDivElement;\n dialogElement: HTMLDialogElement;\n initialSelectedOptions: ActionSheetSelectedOption[] = [];\n maxHeight: number = 0.75;\n minHeight: number = 0.2;\n optionListElement: HTMLQ2OptionListElement;\n selectedOptions: { values: ActionSheetSelectedOption[]; value: string } = { values: [], value: '' };\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n isScrollable: boolean = false;\n\n @State()\n renderStatus: 'is-open' | 'is-closing' | 'is-opening' = 'is-closing';\n\n // #endregion\n // #region Public Property API\n\n @Prop({ mutable: true })\n data: ActionSheetData;\n\n @Prop()\n hideClose: boolean;\n\n @Prop()\n title: string;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the action sheet is closed.\n */\n @Event()\n close: EventEmitter<ActionSheetListCloseData>;\n\n /**\n * Emitted when the component has finished rendering.\n * @private\n */\n @Event({ bubbles: false })\n ready: EventEmitter;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n this.dialogElement.removeEventListener('cancel', this.onCancel);\n }\n\n componentDidLoad() {\n this.dialogElement.addEventListener('cancel', this.onCancel);\n this.ready.emit();\n }\n\n // #endregion\n // #region Public Methods API\n\n @Method()\n async hide(data: ActionSheetListCloseData = { value: '', values: [], type: 'confirm' }) {\n this.close.emit(data);\n this.renderStatus = 'is-closing';\n this.dialogElement.addEventListener(\n 'transitionend',\n () => {\n if (this.renderStatus !== 'is-closing') return;\n this.dialogElement.close();\n this.renderStatus = null;\n this.data = undefined;\n this.initialSelectedOptions = [];\n this.selectedOptions = { values: [], value: '' };\n this.hidePostHook();\n },\n { once: true }\n );\n }\n\n @Method()\n async show() {\n this.showPreHook();\n await waitForNextPaint();\n this.updateDialogMinMaxHeight();\n this.storeInitialValues();\n\n if (this.dialogElement.open) return;\n\n this.dialogElement.showModal();\n this.renderStatus = 'is-opening';\n this.dialogElement.addEventListener(\n 'transitionend',\n () => {\n if (this.renderStatus !== 'is-opening') return;\n this.renderStatus = 'is-open';\n this.focusContent();\n },\n { once: true }\n );\n }\n\n // #endregion\n // #region Local Methods\n\n focusContent() {\n const { data } = this;\n if (!data) return;\n if (data.appearance === 'list') {\n const { event } = data;\n if (event instanceof KeyboardEvent) {\n this.optionListElement.handleExternalKeydown(event);\n } else {\n this.optionListElement.focus();\n }\n }\n }\n\n generateOptgroup = (option: ActionSheetListOptgroup) => {\n const optgroupElement = document.createElement('q2-optgroup');\n if (option.label) optgroupElement.setAttribute('label', option.label);\n if (option.disabled) optgroupElement.setAttribute('disabled', '');\n if (!!option.options.length)\n option.options.forEach(opt => optgroupElement.appendChild(this.generateOption(opt)));\n return optgroupElement;\n };\n\n generateOption = (option: ActionSheetListOption) => {\n const optionElement = document.createElement('q2-option');\n const { innerHTML, ...attributes } = option;\n if (innerHTML) optionElement.innerHTML = sanitizeHTMLString(innerHTML);\n Object.entries(attributes).forEach(([key, value]) => {\n if (value === undefined) return;\n if (typeof value === 'boolean') {\n if (value) optionElement.setAttribute(key, '');\n } else {\n optionElement.setAttribute(key, value);\n }\n });\n return optionElement;\n };\n\n hidePostHook() {\n const { data } = this;\n if (!data) return;\n if (data.appearance === 'list') {\n this.hostElement.innerHTML = null;\n }\n }\n\n onCancel = (event: Event) => {\n event.preventDefault();\n const { initialSelectedOptions } = this;\n this.hide({\n value: initialSelectedOptions?.[0]?.value ?? '',\n values: initialSelectedOptions,\n type: 'cancel',\n });\n };\n\n onClick = (event: MouseEvent) => {\n const eventTarget = event.target as HTMLElement;\n if (!(eventTarget instanceof HTMLElement)) return;\n\n const isInContent = !!eventTarget.closest('.interior, q2-action-sheet');\n if (isInContent) return;\n this.onCancel(event);\n };\n\n onListChange = (event: Q2OptionListCustomEvent<{ value: string; values: ActionSheetSelectedOption[] }>) => {\n this.selectedOptions = event.detail;\n };\n\n onListDone = () => {\n this.hide({\n ...this.selectedOptions,\n type: 'confirm',\n });\n };\n\n onListPopoverStateChange = (\n event: Q2OptionListCustomEvent<{ open: boolean; action: 'close' | 'select' | 'open' }>\n ) => {\n if (event.detail.open) return;\n\n if (event.detail.action === 'close') {\n this.onCancel(event);\n } else {\n this.onListDone();\n }\n };\n\n showPreHook() {\n const { data } = this;\n if (!data) return;\n if (data.appearance === 'list') {\n this.hostElement.innerHTML = null;\n data.options.forEach(option => {\n this.hostElement.appendChild(\n 'options' in option ? this.generateOptgroup(option) : this.generateOption(option)\n );\n });\n }\n }\n\n storeInitialValues() {\n const { data } = this;\n if (!data) return;\n if (data.appearance === 'list') {\n this.initialSelectedOptions = data.listProps.selectedOptions;\n }\n }\n\n updateDialogMinMaxHeight() {\n const windowHeight = window.innerHeight;\n this.dialogElement.style.setProperty(\n '--comp-action-sheet-computed-min-height',\n `${Math.floor(windowHeight * this.minHeight)}px`\n );\n this.dialogElement.style.setProperty(\n '--comp-action-sheet-computed-max-height',\n `${Math.floor(windowHeight * this.maxHeight)}px`\n );\n }\n\n // #endregion\n // #region Render Methods\n\n renderList = ({ data }: { data: ActionSheetListData }) => {\n const { listProps } = data;\n\n return (\n <Fragment>\n <div\n class=\"content\"\n ref={el => (this.contentElement = el)}\n >\n <q2-option-list\n ref={el => (this.optionListElement = el)}\n multiple={listProps.multiple}\n noSelect={listProps.noSelect}\n onChange={this.onListChange}\n onPopoverState={this.onListPopoverStateChange}\n selectedOptions={listProps.selectedOptions}\n >\n <slot />\n </q2-option-list>\n </div>\n <footer>\n {listProps.multiple && (\n <q2-btn\n test-id=\"btnDone\"\n intent=\"workflow-primary\"\n onClick={this.onListDone}\n >\n {loc('tecton.element.actionSheet.done')}\n </q2-btn>\n )}\n </footer>\n </Fragment>\n );\n };\n\n renderMessage = ({ data }: { data: ActionSheetMessageData }) => {\n return (\n <q2-message type={data.type}>\n {data.title && <h2>{data.title}</h2>}\n {data.description && <p>{data.description}</p>}\n </q2-message>\n );\n };\n\n renderSlot = () => {\n return (\n <div\n class=\"content\"\n ref={el => (this.contentElement = el)}\n >\n <slot />\n </div>\n );\n };\n\n render() {\n const { data } = this;\n const showHeader = data?.title || this.title || !this.hideClose;\n const renderStatus = this.renderStatus || '';\n\n let RenderContent = null;\n switch (data?.appearance) {\n case 'message':\n RenderContent = this.renderMessage;\n break;\n\n case 'list':\n RenderContent = this.renderList;\n break;\n\n default:\n RenderContent = this.renderSlot;\n break;\n }\n const appearance = data?.appearance || 'slot';\n const interiorClasses = `interior is-${appearance}`;\n\n return (\n <dialog\n ref={el => (this.dialogElement = el)}\n class={renderStatus}\n onClick={this.onClick}\n >\n <div class={interiorClasses}>\n {showHeader && (\n <header>\n <div class=\"title\">{data?.title || this.title}</div>\n {!this.hideClose && (\n <q2-btn\n class=\"btn-close\"\n test-id=\"btnClose\"\n onClick={this.onCancel}\n label=\"tecton.element.actionSheet.close\"\n hide-label\n >\n <q2-icon type=\"close\" />\n </q2-btn>\n )}\n </header>\n )}\n {this.data?.description && <p>{data.description}</p>}\n {RenderContent && <RenderContent data={this.data} />}\n </div>\n </dialog>\n );\n }\n\n // #endregion\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"q2-action-sheet-test.e2e.js","sourceRoot":"","sources":["../../../../src/components/q2-action-sheet/test/q2-action-sheet-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage } from '@stencil/core/testing';\nimport { ActionSheetListOption } from 'q2-tecton-common/lib/utility/action-sheet';\nimport { setup, dispatchEvent, getListOfStyleCompilationIssues } from '@/utils/helpers';\n\ndescribe('q2-action-sheet', () => {\n let page: E2EPage;\n let actionSheet: E2EElement;\n let dialog: E2EElement;\n let interior: E2EElement;\n let btnDone: E2EElement;\n let options: E2EElement[];\n let optionList: E2EElement;\n let message: E2EElement;\n let title: E2EElement;\n let btnClose: E2EElement;\n\n const createOption = (option: Record<string, string | boolean>): ActionSheetListOption => ({\n disabled: false,\n display: 'Red',\n hidden: false,\n multiline: false,\n separator: false,\n value: 'red',\n innerHTML: 'Red',\n ...option,\n });\n const demoOptions = ['Red', 'Orange', 'Yellow', 'Green', 'Blue', 'Purple'].map(color =>\n createOption({ value: color.toLowerCase(), display: color, innerHTML: color })\n );\n\n const showDialog = async (page: E2EPage): Promise<void> => {\n const dialog = await page.find('q2-action-sheet >>> dialog');\n const actionSheet = await page.find('q2-action-sheet');\n expect(await dialog.getProperty('open')).toBe(false);\n await actionSheet.callMethod('show');\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(dialog).toHaveClass('is-open');\n expect(await dialog.getProperty('open')).toBe(true);\n };\n\n const hideDialog = async (page: E2EPage): Promise<void> => {\n const dialog = await page.find('q2-action-sheet >>> dialog');\n const actionSheet = await page.find('q2-action-sheet');\n expect(await dialog.getProperty('open')).toBe(true);\n expect(dialog).toHaveClass('is-open');\n await actionSheet.callMethod('hide');\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n };\n\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-action-sheet></q2-action-sheet>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-action-sheet')).toHaveLength(0);\n });\n\n describe('Events', () => {\n describe('ready', () => {\n it('fires when the component is ready', async () => {\n page = await setup({ html: `` });\n await page.setContent(`<q2-action-sheet></q2-action-sheet>`);\n actionSheet = await page.find('q2-action-sheet');\n await actionSheet.waitForEvent('ready');\n const dialog = await page.find('q2-action-sheet >>> dialog');\n expect(dialog).toBeTruthy();\n });\n });\n });\n\n describe('Props', () => {\n describe('title', () => {\n it('renders the title block', async () => {\n page = await setup({\n html: `<q2-action-sheet title=\"Test\"></q2-action-sheet>`,\n });\n\n title = await page.find('q2-action-sheet >>> .title');\n expect(title).toBeTruthy();\n expect(title.textContent).toContain('Test');\n });\n\n it('renders the title block when hide-close is provided', async () => {\n page = await setup({\n html: `<q2-action-sheet title=\"Test\" hide-close></q2-action-sheet>`,\n });\n\n title = await page.find('q2-action-sheet >>> .title');\n expect(title).toBeTruthy();\n expect(title.textContent).toContain('Test');\n });\n });\n describe('hideClose', () => {\n describe('when false (default)', () => {\n it('shows the close button', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n\n await showDialog(page);\n\n btnClose = await page.find('q2-action-sheet >>> [test-id=btnClose]');\n expect(btnClose).toBeTruthy();\n });\n });\n describe('when true', () => {\n it('hides the close button', async () => {\n page = await setup({\n html: `<q2-action-sheet hide-close></q2-action-sheet>`,\n });\n\n await showDialog(page);\n\n btnClose = await page.find('q2-action-sheet >>> [test-id=btnClose]');\n expect(btnClose).toBeNull();\n });\n });\n });\n\n describe('data', () => {\n describe('when null (default)', () => {\n it('renders the <slot> slot', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n\n await showDialog(page);\n const slot = await page.find('q2-action-sheet >>> .content > slot');\n expect(slot).toBeTruthy();\n interior = await page.find('q2-action-sheet >>> .interior');\n expect(interior).toHaveClass('is-slot');\n });\n });\n\n describe('when list content is provided', () => {\n it('strips out harmful HTML from options', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n\n actionSheet = await page.find('q2-action-sheet');\n await actionSheet.setProperty('data', {\n appearance: 'list',\n title: 'Favorite color',\n description: 'Select your favorite color',\n listProps: {\n multiple: false,\n selectedOptions: [],\n noSelect: false,\n },\n options: demoOptions.map(option => ({\n ...option,\n multiline: true,\n innerHTML: `\n <div>${option.display}</div>\n <script>alert('Hello')</script>\n <style>html{display:none;}</style>\n <foo-input></foo-input>\n <q2-input></q2-input>\n `.trim(),\n })),\n });\n await page.waitForChanges();\n\n await showDialog(page);\n\n options = await page.findAll('q2-option');\n\n const firstOption = options[0];\n expect(firstOption.innerHTML).toEqual(\n '<div>Red</div> <q2-input type=\"text\" stencil-hydrated=\"\"></q2-input>'\n );\n });\n\n describe('when multiline options are provided', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n\n actionSheet = await page.find('q2-action-sheet');\n await actionSheet.setProperty('data', {\n appearance: 'list',\n title: 'Favorite color',\n description: 'Select your favorite color',\n listProps: {\n multiple: false,\n selectedOptions: [],\n noSelect: false,\n },\n options: demoOptions.map(option => ({\n ...option,\n multiline: true,\n innerHTML: `<div>${option.display}</div><div>Secondary text</div>`,\n })),\n });\n await page.waitForChanges();\n\n await showDialog(page);\n });\n\n it('renders single-select list', async () => {\n actionSheet = await page.find('q2-action-sheet');\n const closeSpy = await actionSheet.spyOnEvent('close');\n optionList = await page.find('q2-action-sheet >>> q2-option-list');\n dialog = await page.find('q2-action-sheet >>> dialog');\n btnDone = await page.find('q2-action-sheet >>> [test-id=btnDone]');\n options = await page.findAll('q2-option');\n interior = await page.find('q2-action-sheet >>> .interior');\n\n expect(interior).toHaveClass('is-list');\n expect(optionList).toBeTruthy();\n expect(await optionList.getProperty('multiple')).toBe(false);\n expect(await optionList.getProperty('noSelect')).toBe(false);\n expect(await optionList.getProperty('selectedOptions')).toEqual([]);\n expect(btnDone).toBeNull();\n expect(options).toHaveLength(6);\n\n const firstOption = options[0];\n expect(await firstOption.getProperty('disabled')).toBeUndefined();\n expect(await firstOption.getProperty('hidden')).toBe(false);\n expect(await firstOption.getProperty('multiline')).toBeTruthy();\n expect(await firstOption.getProperty('value')).toEqual('red');\n expect(await firstOption.getProperty('display')).toEqual('Red');\n expect(firstOption.innerHTML).toEqual('<div>Red</div><div>Secondary text</div>');\n\n await firstOption.click();\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n expect(closeSpy).toHaveReceivedEventDetail({\n type: 'confirm',\n value: 'red',\n values: [{ display: 'Red', value: 'red' }],\n });\n expect(await actionSheet.getProperty('data')).toBeUndefined();\n });\n });\n\n describe('when multiselect is false', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n\n actionSheet = await page.find('q2-action-sheet');\n await actionSheet.setProperty('data', {\n appearance: 'list',\n title: 'Favorite color',\n description: 'Select your favorite color',\n listProps: {\n multiple: false,\n selectedOptions: [],\n noSelect: false,\n },\n options: demoOptions,\n });\n await page.waitForChanges();\n\n await showDialog(page);\n });\n\n it('renders single-select list', async () => {\n actionSheet = await page.find('q2-action-sheet');\n const closeSpy = await actionSheet.spyOnEvent('close');\n optionList = await page.find('q2-action-sheet >>> q2-option-list');\n dialog = await page.find('q2-action-sheet >>> dialog');\n btnDone = await page.find('q2-action-sheet >>> [test-id=btnDone]');\n options = await page.findAll('q2-option');\n interior = await page.find('q2-action-sheet >>> .interior');\n\n expect(interior).toHaveClass('is-list');\n expect(optionList).toBeTruthy();\n expect(await optionList.getProperty('multiple')).toBe(false);\n expect(await optionList.getProperty('noSelect')).toBe(false);\n expect(await optionList.getProperty('selectedOptions')).toEqual([]);\n expect(btnDone).toBeNull();\n expect(options).toHaveLength(6);\n\n const firstOption = options[0];\n expect(await firstOption.getProperty('disabled')).toBeUndefined();\n expect(await firstOption.getProperty('hidden')).toBe(false);\n expect(await firstOption.getProperty('multiline')).toBeUndefined();\n expect(await firstOption.getProperty('value')).toEqual('red');\n expect(await firstOption.getProperty('display')).toEqual('Red');\n expect(firstOption.innerHTML).toEqual('Red');\n\n await firstOption.click();\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n expect(closeSpy).toHaveReceivedEventDetail({\n type: 'confirm',\n value: 'red',\n values: [{ display: 'Red', value: 'red' }],\n });\n expect(await actionSheet.getProperty('data')).toBeUndefined();\n });\n });\n\n describe('when multiselect is true', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n\n actionSheet = await page.find('q2-action-sheet');\n await actionSheet.setProperty('data', {\n appearance: 'list',\n title: 'Favorite color',\n description: 'Select your favorite color',\n listProps: {\n multiple: true,\n selectedOptions: [],\n noSelect: false,\n },\n options: demoOptions,\n });\n await page.waitForChanges();\n\n await showDialog(page);\n });\n\n it('renders a multiselect list that emits the selected items on close', async () => {\n actionSheet = await page.find('q2-action-sheet');\n const closeSpy = await actionSheet.spyOnEvent('close');\n optionList = await page.find('q2-action-sheet >>> q2-option-list');\n dialog = await page.find('q2-action-sheet >>> dialog');\n btnDone = await page.find('q2-action-sheet >>> [test-id=btnDone]');\n options = await page.findAll('q2-option');\n interior = await page.find('q2-action-sheet >>> .interior');\n\n expect(interior).toHaveClass('is-list');\n expect(optionList).toBeTruthy();\n expect(await optionList.getProperty('multiple')).toBe(true);\n expect(await optionList.getProperty('noSelect')).toBe(false);\n expect(await optionList.getProperty('selectedOptions')).toEqual([]);\n expect(btnDone).toBeTruthy();\n expect(options).toHaveLength(6);\n\n await options[0].click();\n await page.waitForChanges();\n\n expect(options[0]).toHaveAttribute('selected');\n\n await options[3].click();\n await page.waitForChanges();\n\n expect(options[3]).toHaveAttribute('selected');\n\n btnDone = await page.find('q2-action-sheet >>> [test-id=btnDone]');\n await btnDone.click();\n await page.waitForChanges();\n\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n expect(closeSpy).toHaveReceivedEventDetail({\n type: 'confirm',\n value: 'green',\n values: [\n { display: 'Red', value: 'red' },\n { display: 'Green', value: 'green' },\n ],\n });\n expect(await actionSheet.getProperty('data')).toBeUndefined();\n });\n\n it('renders a multiselect list that does not emit selections on cancel', async () => {\n actionSheet = await page.find('q2-action-sheet');\n const closeSpy = await actionSheet.spyOnEvent('close');\n optionList = await page.find('q2-action-sheet >>> q2-option-list');\n dialog = await page.find('q2-action-sheet >>> dialog');\n btnDone = await page.find('q2-action-sheet >>> [test-id=btnDone]');\n options = await page.findAll('q2-option');\n interior = await page.find('q2-action-sheet >>> .interior');\n\n expect(interior).toHaveClass('is-list');\n expect(optionList).toBeTruthy();\n expect(await optionList.getProperty('multiple')).toBe(true);\n expect(await optionList.getProperty('noSelect')).toBe(false);\n expect(await optionList.getProperty('selectedOptions')).toEqual([]);\n expect(btnDone).toBeTruthy();\n expect(options).toHaveLength(6);\n\n await options[0].click();\n await page.waitForChanges();\n\n expect(options[0]).toHaveAttribute('selected');\n\n await options[3].click();\n await page.waitForChanges();\n\n expect(options[3]).toHaveAttribute('selected');\n\n btnClose = await page.find('q2-action-sheet >>> [test-id=btnClose]');\n await btnClose.click();\n await page.waitForChanges();\n\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n expect(closeSpy).toHaveReceivedEventDetail({\n type: 'cancel',\n value: '',\n values: [],\n });\n expect(await actionSheet.getProperty('data')).toBeUndefined();\n });\n });\n });\n\n describe('when message content is provided', () => {\n it('renders a message', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n\n actionSheet = await page.find('q2-action-sheet');\n const closeSpy = await actionSheet.spyOnEvent('close');\n await actionSheet.setProperty('data', {\n appearance: 'message',\n title: 'My title',\n description: 'My description',\n type: 'warning',\n });\n await page.waitForChanges();\n\n await showDialog(page);\n message = await page.find('q2-action-sheet >>> q2-message');\n expect(message).toBeTruthy();\n\n const title = await page.find('q2-action-sheet >>> q2-message h2');\n const description = await page.find('q2-action-sheet >>> q2-message p');\n interior = await page.find('q2-action-sheet >>> .interior');\n\n expect(interior).toHaveClass('is-message');\n expect(message).toEqualAttribute('type', 'warning');\n expect(title).toEqualText('My title');\n expect(description).toEqualText('My description');\n\n dialog = await page.find('q2-action-sheet >>> dialog');\n btnClose = await page.find('q2-action-sheet >>> [test-id=btnClose]');\n await btnClose.click();\n await page.waitForChanges();\n\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n expect(closeSpy).toHaveReceivedEventDetail({\n type: 'cancel',\n value: '',\n values: [],\n });\n });\n });\n });\n });\n\n describe('Methods', () => {\n describe('show', () => {\n it('should show the dialog', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n dialog = await page.find('q2-action-sheet >>> dialog');\n\n expect(await dialog.getProperty('open')).toBe(false);\n await showDialog(page);\n expect(await dialog.getProperty('open')).toBe(true);\n const minHeight = await page.$eval('q2-action-sheet', el =>\n el.shadowRoot\n .querySelector<HTMLDialogElement>('dialog')\n .style.getPropertyValue('--comp-action-sheet-computed-min-height')\n );\n const maxHeight = await page.$eval('q2-action-sheet', el =>\n el.shadowRoot\n .querySelector<HTMLDialogElement>('dialog')\n .style.getPropertyValue('--comp-action-sheet-computed-max-height')\n );\n expect(minHeight).toBe('120px');\n expect(maxHeight).toBe('450px');\n });\n });\n describe('hide', () => {\n it('should hide the dialog', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n dialog = await page.find('q2-action-sheet >>> dialog');\n\n expect(await dialog.getProperty('open')).toBe(false);\n await showDialog(page);\n expect(await dialog.getProperty('open')).toBe(true);\n await hideDialog(page);\n expect(await dialog.getProperty('open')).toBe(false);\n });\n });\n });\n\n it('closes the dialog when the close button is clicked', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n await showDialog(page);\n\n btnClose = await page.find('q2-action-sheet >>> [test-id=btnClose]');\n dialog = await page.find('q2-action-sheet >>> dialog');\n await btnClose.click();\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n });\n\n it('closes the dialog when the escape key is pressed', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n await showDialog(page);\n\n btnClose = await page.find('q2-action-sheet >>> [test-id=btnClose]');\n dialog = await page.find('q2-action-sheet >>> dialog');\n await btnClose.press('Escape');\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n });\n\n it('closes the dialog when the backdrop is clicked', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n await showDialog(page);\n\n dialog = await page.find('q2-action-sheet >>> dialog');\n await page.mouse.click(10, 10);\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n });\n\n it('does not close the dialog when the dialog content is clicked', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n await showDialog(page);\n\n dialog = await page.find('q2-action-sheet >>> dialog');\n const title = await page.find('q2-action-sheet >>> .title');\n await title.click();\n await page.waitForChanges();\n expect(dialog).not.toHaveClass('is-closing');\n });\n});\n"]}
1
+ {"version":3,"file":"q2-action-sheet-test.e2e.js","sourceRoot":"","sources":["../../../../../src/components/q2-action-sheet/test/q2-action-sheet-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage } from '@stencil/core/testing';\nimport { ActionSheetListOption } from 'q2-tecton-common/lib/utility/action-sheet';\nimport { setup, dispatchEvent, getListOfStyleCompilationIssues } from '@/utils/helpers';\n\ndescribe('q2-action-sheet', () => {\n let page: E2EPage;\n let actionSheet: E2EElement;\n let dialog: E2EElement;\n let interior: E2EElement;\n let btnDone: E2EElement;\n let options: E2EElement[];\n let optionList: E2EElement;\n let message: E2EElement;\n let title: E2EElement;\n let btnClose: E2EElement;\n\n const createOption = (option: Record<string, string | boolean>): ActionSheetListOption => ({\n disabled: false,\n display: 'Red',\n hidden: false,\n multiline: false,\n separator: false,\n value: 'red',\n innerHTML: 'Red',\n ...option,\n });\n const demoOptions = ['Red', 'Orange', 'Yellow', 'Green', 'Blue', 'Purple'].map(color =>\n createOption({ value: color.toLowerCase(), display: color, innerHTML: color })\n );\n\n const showDialog = async (page: E2EPage): Promise<void> => {\n const dialog = await page.find('q2-action-sheet >>> dialog');\n const actionSheet = await page.find('q2-action-sheet');\n expect(await dialog.getProperty('open')).toBe(false);\n await actionSheet.callMethod('show');\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(dialog).toHaveClass('is-open');\n expect(await dialog.getProperty('open')).toBe(true);\n };\n\n const hideDialog = async (page: E2EPage): Promise<void> => {\n const dialog = await page.find('q2-action-sheet >>> dialog');\n const actionSheet = await page.find('q2-action-sheet');\n expect(await dialog.getProperty('open')).toBe(true);\n expect(dialog).toHaveClass('is-open');\n await actionSheet.callMethod('hide');\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n };\n\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-action-sheet></q2-action-sheet>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-action-sheet')).toHaveLength(0);\n });\n\n describe('Events', () => {\n describe('ready', () => {\n it('fires when the component is ready', async () => {\n page = await setup({ html: `` });\n await page.setContent(`<q2-action-sheet></q2-action-sheet>`);\n actionSheet = await page.find('q2-action-sheet');\n await actionSheet.waitForEvent('ready');\n const dialog = await page.find('q2-action-sheet >>> dialog');\n expect(dialog).toBeTruthy();\n });\n });\n });\n\n describe('Props', () => {\n describe('title', () => {\n it('renders the title block', async () => {\n page = await setup({\n html: `<q2-action-sheet title=\"Test\"></q2-action-sheet>`,\n });\n\n title = await page.find('q2-action-sheet >>> .title');\n expect(title).toBeTruthy();\n expect(title.textContent).toContain('Test');\n });\n\n it('renders the title block when hide-close is provided', async () => {\n page = await setup({\n html: `<q2-action-sheet title=\"Test\" hide-close></q2-action-sheet>`,\n });\n\n title = await page.find('q2-action-sheet >>> .title');\n expect(title).toBeTruthy();\n expect(title.textContent).toContain('Test');\n });\n });\n describe('hideClose', () => {\n describe('when false (default)', () => {\n it('shows the close button', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n\n await showDialog(page);\n\n btnClose = await page.find('q2-action-sheet >>> [test-id=btnClose]');\n expect(btnClose).toBeTruthy();\n });\n });\n describe('when true', () => {\n it('hides the close button', async () => {\n page = await setup({\n html: `<q2-action-sheet hide-close></q2-action-sheet>`,\n });\n\n await showDialog(page);\n\n btnClose = await page.find('q2-action-sheet >>> [test-id=btnClose]');\n expect(btnClose).toBeNull();\n });\n });\n });\n\n describe('data', () => {\n describe('when null (default)', () => {\n it('renders the <slot> slot', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n\n await showDialog(page);\n const slot = await page.find('q2-action-sheet >>> .content > slot');\n expect(slot).toBeTruthy();\n interior = await page.find('q2-action-sheet >>> .interior');\n expect(interior).toHaveClass('is-slot');\n });\n });\n\n describe('when list content is provided', () => {\n it('strips out harmful HTML from options', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n\n actionSheet = await page.find('q2-action-sheet');\n await actionSheet.setProperty('data', {\n appearance: 'list',\n title: 'Favorite color',\n description: 'Select your favorite color',\n listProps: {\n multiple: false,\n selectedOptions: [],\n noSelect: false,\n },\n options: demoOptions.map(option => ({\n ...option,\n multiline: true,\n innerHTML: `\n <div>${option.display}</div>\n <script>alert('Hello')</script>\n <style>html{display:none;}</style>\n <foo-input></foo-input>\n <q2-input></q2-input>\n `.trim(),\n })),\n });\n await page.waitForChanges();\n\n await showDialog(page);\n\n options = await page.findAll('q2-option');\n\n const firstOption = options[0];\n expect(firstOption.innerHTML).toEqual(\n '<div>Red</div> <q2-input type=\"text\" stencil-hydrated=\"\"></q2-input>'\n );\n });\n\n describe('when multiline options are provided', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n\n actionSheet = await page.find('q2-action-sheet');\n await actionSheet.setProperty('data', {\n appearance: 'list',\n title: 'Favorite color',\n description: 'Select your favorite color',\n listProps: {\n multiple: false,\n selectedOptions: [],\n noSelect: false,\n },\n options: demoOptions.map(option => ({\n ...option,\n multiline: true,\n innerHTML: `<div>${option.display}</div><div>Secondary text</div>`,\n })),\n });\n await page.waitForChanges();\n\n await showDialog(page);\n });\n\n it('renders single-select list', async () => {\n actionSheet = await page.find('q2-action-sheet');\n const closeSpy = await actionSheet.spyOnEvent('close');\n optionList = await page.find('q2-action-sheet >>> q2-option-list');\n dialog = await page.find('q2-action-sheet >>> dialog');\n btnDone = await page.find('q2-action-sheet >>> [test-id=btnDone]');\n options = await page.findAll('q2-option');\n interior = await page.find('q2-action-sheet >>> .interior');\n\n expect(interior).toHaveClass('is-list');\n expect(optionList).toBeTruthy();\n expect(await optionList.getProperty('multiple')).toBe(false);\n expect(await optionList.getProperty('noSelect')).toBe(false);\n expect(await optionList.getProperty('selectedOptions')).toEqual([]);\n expect(btnDone).toBeNull();\n expect(options).toHaveLength(6);\n\n const firstOption = options[0];\n expect(await firstOption.getProperty('disabled')).toBeUndefined();\n expect(await firstOption.getProperty('hidden')).toBe(false);\n expect(await firstOption.getProperty('multiline')).toBeTruthy();\n expect(await firstOption.getProperty('value')).toEqual('red');\n expect(await firstOption.getProperty('display')).toEqual('Red');\n expect(firstOption.innerHTML).toEqual('<div>Red</div><div>Secondary text</div>');\n\n await firstOption.click();\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n expect(closeSpy).toHaveReceivedEventDetail({\n type: 'confirm',\n value: 'red',\n values: [{ display: 'Red', value: 'red' }],\n });\n expect(await actionSheet.getProperty('data')).toBeUndefined();\n });\n });\n\n describe('when multiselect is false', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n\n actionSheet = await page.find('q2-action-sheet');\n await actionSheet.setProperty('data', {\n appearance: 'list',\n title: 'Favorite color',\n description: 'Select your favorite color',\n listProps: {\n multiple: false,\n selectedOptions: [],\n noSelect: false,\n },\n options: demoOptions,\n });\n await page.waitForChanges();\n\n await showDialog(page);\n });\n\n it('renders single-select list', async () => {\n actionSheet = await page.find('q2-action-sheet');\n const closeSpy = await actionSheet.spyOnEvent('close');\n optionList = await page.find('q2-action-sheet >>> q2-option-list');\n dialog = await page.find('q2-action-sheet >>> dialog');\n btnDone = await page.find('q2-action-sheet >>> [test-id=btnDone]');\n options = await page.findAll('q2-option');\n interior = await page.find('q2-action-sheet >>> .interior');\n\n expect(interior).toHaveClass('is-list');\n expect(optionList).toBeTruthy();\n expect(await optionList.getProperty('multiple')).toBe(false);\n expect(await optionList.getProperty('noSelect')).toBe(false);\n expect(await optionList.getProperty('selectedOptions')).toEqual([]);\n expect(btnDone).toBeNull();\n expect(options).toHaveLength(6);\n\n const firstOption = options[0];\n expect(await firstOption.getProperty('disabled')).toBeUndefined();\n expect(await firstOption.getProperty('hidden')).toBe(false);\n expect(await firstOption.getProperty('multiline')).toBeUndefined();\n expect(await firstOption.getProperty('value')).toEqual('red');\n expect(await firstOption.getProperty('display')).toEqual('Red');\n expect(firstOption.innerHTML).toEqual('Red');\n\n await firstOption.click();\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n expect(closeSpy).toHaveReceivedEventDetail({\n type: 'confirm',\n value: 'red',\n values: [{ display: 'Red', value: 'red' }],\n });\n expect(await actionSheet.getProperty('data')).toBeUndefined();\n });\n });\n\n describe('when multiselect is true', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n\n actionSheet = await page.find('q2-action-sheet');\n await actionSheet.setProperty('data', {\n appearance: 'list',\n title: 'Favorite color',\n description: 'Select your favorite color',\n listProps: {\n multiple: true,\n selectedOptions: [],\n noSelect: false,\n },\n options: demoOptions,\n });\n await page.waitForChanges();\n\n await showDialog(page);\n });\n\n it('renders a multiselect list that emits the selected items on close', async () => {\n actionSheet = await page.find('q2-action-sheet');\n const closeSpy = await actionSheet.spyOnEvent('close');\n optionList = await page.find('q2-action-sheet >>> q2-option-list');\n dialog = await page.find('q2-action-sheet >>> dialog');\n btnDone = await page.find('q2-action-sheet >>> [test-id=btnDone]');\n options = await page.findAll('q2-option');\n interior = await page.find('q2-action-sheet >>> .interior');\n\n expect(interior).toHaveClass('is-list');\n expect(optionList).toBeTruthy();\n expect(await optionList.getProperty('multiple')).toBe(true);\n expect(await optionList.getProperty('noSelect')).toBe(false);\n expect(await optionList.getProperty('selectedOptions')).toEqual([]);\n expect(btnDone).toBeTruthy();\n expect(options).toHaveLength(6);\n\n await options[0].click();\n await page.waitForChanges();\n\n expect(options[0]).toHaveAttribute('selected');\n\n await options[3].click();\n await page.waitForChanges();\n\n expect(options[3]).toHaveAttribute('selected');\n\n btnDone = await page.find('q2-action-sheet >>> [test-id=btnDone]');\n await btnDone.click();\n await page.waitForChanges();\n\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n expect(closeSpy).toHaveReceivedEventDetail({\n type: 'confirm',\n value: 'green',\n values: [\n { display: 'Red', value: 'red' },\n { display: 'Green', value: 'green' },\n ],\n });\n expect(await actionSheet.getProperty('data')).toBeUndefined();\n });\n\n it('renders a multiselect list that does not emit selections on cancel', async () => {\n actionSheet = await page.find('q2-action-sheet');\n const closeSpy = await actionSheet.spyOnEvent('close');\n optionList = await page.find('q2-action-sheet >>> q2-option-list');\n dialog = await page.find('q2-action-sheet >>> dialog');\n btnDone = await page.find('q2-action-sheet >>> [test-id=btnDone]');\n options = await page.findAll('q2-option');\n interior = await page.find('q2-action-sheet >>> .interior');\n\n expect(interior).toHaveClass('is-list');\n expect(optionList).toBeTruthy();\n expect(await optionList.getProperty('multiple')).toBe(true);\n expect(await optionList.getProperty('noSelect')).toBe(false);\n expect(await optionList.getProperty('selectedOptions')).toEqual([]);\n expect(btnDone).toBeTruthy();\n expect(options).toHaveLength(6);\n\n await options[0].click();\n await page.waitForChanges();\n\n expect(options[0]).toHaveAttribute('selected');\n\n await options[3].click();\n await page.waitForChanges();\n\n expect(options[3]).toHaveAttribute('selected');\n\n btnClose = await page.find('q2-action-sheet >>> [test-id=btnClose]');\n await btnClose.click();\n await page.waitForChanges();\n\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n expect(closeSpy).toHaveReceivedEventDetail({\n type: 'cancel',\n value: '',\n values: [],\n });\n expect(await actionSheet.getProperty('data')).toBeUndefined();\n });\n });\n });\n\n describe('when message content is provided', () => {\n it('renders a message', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n\n actionSheet = await page.find('q2-action-sheet');\n const closeSpy = await actionSheet.spyOnEvent('close');\n await actionSheet.setProperty('data', {\n appearance: 'message',\n title: 'My title',\n description: 'My description',\n type: 'warning',\n });\n await page.waitForChanges();\n\n await showDialog(page);\n message = await page.find('q2-action-sheet >>> q2-message');\n expect(message).toBeTruthy();\n\n const title = await page.find('q2-action-sheet >>> q2-message h2');\n const description = await page.find('q2-action-sheet >>> q2-message p');\n interior = await page.find('q2-action-sheet >>> .interior');\n\n expect(interior).toHaveClass('is-message');\n expect(message).toEqualAttribute('type', 'warning');\n expect(title).toEqualText('My title');\n expect(description).toEqualText('My description');\n\n dialog = await page.find('q2-action-sheet >>> dialog');\n btnClose = await page.find('q2-action-sheet >>> [test-id=btnClose]');\n await btnClose.click();\n await page.waitForChanges();\n\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n expect(closeSpy).toHaveReceivedEventDetail({\n type: 'cancel',\n value: '',\n values: [],\n });\n });\n });\n });\n });\n\n describe('Methods', () => {\n describe('show', () => {\n it('should show the dialog', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n dialog = await page.find('q2-action-sheet >>> dialog');\n\n expect(await dialog.getProperty('open')).toBe(false);\n await showDialog(page);\n expect(await dialog.getProperty('open')).toBe(true);\n const minHeight = await page.$eval('q2-action-sheet', el =>\n el.shadowRoot\n .querySelector<HTMLDialogElement>('dialog')\n .style.getPropertyValue('--comp-action-sheet-computed-min-height')\n );\n const maxHeight = await page.$eval('q2-action-sheet', el =>\n el.shadowRoot\n .querySelector<HTMLDialogElement>('dialog')\n .style.getPropertyValue('--comp-action-sheet-computed-max-height')\n );\n expect(minHeight).toBe('120px');\n expect(maxHeight).toBe('450px');\n });\n });\n describe('hide', () => {\n it('should hide the dialog', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n dialog = await page.find('q2-action-sheet >>> dialog');\n\n expect(await dialog.getProperty('open')).toBe(false);\n await showDialog(page);\n expect(await dialog.getProperty('open')).toBe(true);\n await hideDialog(page);\n expect(await dialog.getProperty('open')).toBe(false);\n });\n });\n });\n\n it('closes the dialog when the close button is clicked', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n await showDialog(page);\n\n btnClose = await page.find('q2-action-sheet >>> [test-id=btnClose]');\n dialog = await page.find('q2-action-sheet >>> dialog');\n await btnClose.click();\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n });\n\n it('closes the dialog when the escape key is pressed', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n await showDialog(page);\n\n btnClose = await page.find('q2-action-sheet >>> [test-id=btnClose]');\n dialog = await page.find('q2-action-sheet >>> dialog');\n await btnClose.press('Escape');\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n });\n\n it('closes the dialog when the backdrop is clicked', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n await showDialog(page);\n\n dialog = await page.find('q2-action-sheet >>> dialog');\n await page.mouse.click(10, 10);\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n });\n\n it('does not close the dialog when the dialog content is clicked', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n await showDialog(page);\n\n dialog = await page.find('q2-action-sheet >>> dialog');\n const title = await page.find('q2-action-sheet >>> .title');\n await title.click();\n await page.waitForChanges();\n expect(dialog).not.toHaveClass('is-closing');\n });\n});\n"]}
@@ -48,7 +48,7 @@ export class Q2Avatar {
48
48
  const isLoaded = this.isLoaded;
49
49
  const showInitials = (this.name || this.initials) && (!this.src || this.badSrc);
50
50
  const showFallback = !this.name && !this.initials && (!this.src || this.badSrc);
51
- return (h("div", { key: '2377fb1226c542252d8c1826aa762cc0267bb8a2' }, showImg && (h("img", { key: 'baa5c36dd4be833bd017daa75b57dc0cf9ea01bf', class: isLoaded ? 'avatar-img' : 'avatar-img-default', "test-id": "userImage", src: this.src, onError: this.onError, onLoad: this.onLoad, alt: this.name || '' })), showInitials && (h("svg", { key: 'd4977d3adf04544ed9f13b079abfa2a2e1ce3a56', viewBox: "0 0 100 100", preserveAspectRatio: "xMidYMid meet", "test-id": "userInitials", class: `avatar-initials size-${computedInitials.length}`, "aria-label": this.name, "aria-hidden": !this.name && 'true' }, h("text", { key: '8de6490d4949b8f20beef384ba78c371edf1d81a', x: "50", y: "50", "dominant-baseline": "central", "text-anchor": "middle", "aria-hidden": "true" }, computedInitials))), showFallback && (h("div", { key: '9946f0f312626acb2693ef058b98480a5c4011ed', "test-id": "fallbackIcon", class: "fallback" }, h("q2-icon", { key: 'd6c99a8f8b12216c7a00d936f22ec7ac49aec151', type: this.icon })))));
51
+ return (h("div", { key: 'e7fc18664e3c2dab8d49f02fca71af397542ec33' }, showImg && (h("img", { key: '34275fafae8eb89ab239322a991cacdec7c7c3f0', class: isLoaded ? 'avatar-img' : 'avatar-img-default', "test-id": "userImage", src: this.src, onError: this.onError, onLoad: this.onLoad, alt: this.name || '' })), showInitials && (h("svg", { key: '74286d05347fa35df27b25c3096d1e1c9f7be604', viewBox: "0 0 100 100", preserveAspectRatio: "xMidYMid meet", "test-id": "userInitials", class: `avatar-initials size-${computedInitials.length}`, "aria-label": this.name, "aria-hidden": !this.name && 'true' }, h("text", { key: '4862379daa82e61f0e1e907b6070210b79246490', x: "50", y: "50", "dominant-baseline": "central", "text-anchor": "middle", "aria-hidden": "true" }, computedInitials))), showFallback && (h("div", { key: '757d739f831a81811c72920c6994db4fb1838dfb', "test-id": "fallbackIcon", class: "fallback" }, h("q2-icon", { key: '6888b2c395a5e85dfedbf348c1183c5de941d091', type: this.icon })))));
52
52
  }
53
53
  static get is() { return "q2-avatar"; }
54
54
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"q2-avatar.js","sourceRoot":"","sources":["../../../src/components/q2-avatar/q2-avatar.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, ComponentInterface, Prop, Element, h, State, Watch } from '@stencil/core';\n\n@Component({ tag: 'q2-avatar', shadow: true, styleUrl: 'q2-avatar.scss' })\nexport class Q2Avatar implements ComponentInterface {\n // #region Host HTML Element\n\n @Element()\n el: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n badSrc: boolean = false;\n\n @State()\n isLoaded: boolean = false;\n\n // #endregion\n // #region Public Property API\n\n /** A [q2-icon](https://tecton.q2developer.com/design-system/q2-icon/) to display as the fallback. */\n @Prop()\n icon: string = 'person';\n\n /** A set of up to four initials to display as capitalized text. Takes priority over `name`. */\n @Prop({ reflect: true })\n initials: string;\n\n /**\n * The name associated with the avatar.\n * The initials of the first and last words provided will display as capital letters.\n *\n * @info\n * We recommend always providing a name when you want the avatar to be presented to screen readers.\n */\n @Prop({ reflect: true })\n name: string;\n\n /** Displays the image provided by the user. */\n @Prop({ reflect: true })\n src: string;\n\n // #endregion\n // #region Watchers\n\n @Watch('src')\n srcDidUpdate() {\n this.badSrc = false;\n }\n\n // #endregion\n // #region Local Methods\n\n get computedInitials() {\n const { initials, name } = this;\n if (!initials && !name) return;\n\n let result = '';\n if (initials) {\n result = initials.substr(0, 4);\n } else if (name) {\n const parts = name.split(' ');\n const firstCharacter = parts[0][0];\n const lastCharacter = parts.length > 1 ? parts[parts.length - 1][0] : undefined;\n result += firstCharacter;\n if (lastCharacter) result += lastCharacter;\n }\n\n result = result?.toUpperCase();\n\n return result;\n }\n\n onError = () => {\n this.badSrc = true;\n };\n\n onLoad = () => {\n this.isLoaded = true;\n };\n\n // #endregion\n // #region Render Methods\n\n render() {\n const { computedInitials } = this;\n const showImg = this.src && !this.badSrc;\n const isLoaded = this.isLoaded;\n const showInitials = (this.name || this.initials) && (!this.src || this.badSrc);\n const showFallback = !this.name && !this.initials && (!this.src || this.badSrc);\n\n return (\n <div>\n {showImg && (\n <img\n class={isLoaded ? 'avatar-img' : 'avatar-img-default'}\n test-id=\"userImage\"\n src={this.src}\n onError={this.onError}\n onLoad={this.onLoad}\n alt={this.name || ''}\n />\n )}\n {showInitials && (\n <svg\n viewBox=\"0 0 100 100\"\n preserveAspectRatio=\"xMidYMid meet\"\n test-id=\"userInitials\"\n class={`avatar-initials size-${computedInitials.length}`}\n aria-label={this.name}\n aria-hidden={!this.name && 'true'}\n >\n <text\n x=\"50\"\n y=\"50\"\n dominant-baseline=\"central\"\n text-anchor=\"middle\"\n aria-hidden=\"true\"\n >\n {computedInitials}\n </text>\n </svg>\n )}\n {showFallback && (\n <div\n test-id=\"fallbackIcon\"\n class=\"fallback\"\n >\n <q2-icon type={this.icon}></q2-icon>\n </div>\n )}\n </div>\n );\n }\n\n // #endregion\n}\n"]}
1
+ {"version":3,"file":"q2-avatar.js","sourceRoot":"","sources":["../../../../src/components/q2-avatar/q2-avatar.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, ComponentInterface, Prop, Element, h, State, Watch } from '@stencil/core';\n\n@Component({ tag: 'q2-avatar', shadow: true, styleUrl: 'q2-avatar.scss' })\nexport class Q2Avatar implements ComponentInterface {\n // #region Host HTML Element\n\n @Element()\n el: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n badSrc: boolean = false;\n\n @State()\n isLoaded: boolean = false;\n\n // #endregion\n // #region Public Property API\n\n /** A [q2-icon](https://tecton.q2developer.com/design-system/q2-icon/) to display as the fallback. */\n @Prop()\n icon: string = 'person';\n\n /** A set of up to four initials to display as capitalized text. Takes priority over `name`. */\n @Prop({ reflect: true })\n initials: string;\n\n /**\n * The name associated with the avatar.\n * The initials of the first and last words provided will display as capital letters.\n *\n * @info\n * We recommend always providing a name when you want the avatar to be presented to screen readers.\n */\n @Prop({ reflect: true })\n name: string;\n\n /** Displays the image provided by the user. */\n @Prop({ reflect: true })\n src: string;\n\n // #endregion\n // #region Watchers\n\n @Watch('src')\n srcDidUpdate() {\n this.badSrc = false;\n }\n\n // #endregion\n // #region Local Methods\n\n get computedInitials() {\n const { initials, name } = this;\n if (!initials && !name) return;\n\n let result = '';\n if (initials) {\n result = initials.substr(0, 4);\n } else if (name) {\n const parts = name.split(' ');\n const firstCharacter = parts[0][0];\n const lastCharacter = parts.length > 1 ? parts[parts.length - 1][0] : undefined;\n result += firstCharacter;\n if (lastCharacter) result += lastCharacter;\n }\n\n result = result?.toUpperCase();\n\n return result;\n }\n\n onError = () => {\n this.badSrc = true;\n };\n\n onLoad = () => {\n this.isLoaded = true;\n };\n\n // #endregion\n // #region Render Methods\n\n render() {\n const { computedInitials } = this;\n const showImg = this.src && !this.badSrc;\n const isLoaded = this.isLoaded;\n const showInitials = (this.name || this.initials) && (!this.src || this.badSrc);\n const showFallback = !this.name && !this.initials && (!this.src || this.badSrc);\n\n return (\n <div>\n {showImg && (\n <img\n class={isLoaded ? 'avatar-img' : 'avatar-img-default'}\n test-id=\"userImage\"\n src={this.src}\n onError={this.onError}\n onLoad={this.onLoad}\n alt={this.name || ''}\n />\n )}\n {showInitials && (\n <svg\n viewBox=\"0 0 100 100\"\n preserveAspectRatio=\"xMidYMid meet\"\n test-id=\"userInitials\"\n class={`avatar-initials size-${computedInitials.length}`}\n aria-label={this.name}\n aria-hidden={!this.name && 'true'}\n >\n <text\n x=\"50\"\n y=\"50\"\n dominant-baseline=\"central\"\n text-anchor=\"middle\"\n aria-hidden=\"true\"\n >\n {computedInitials}\n </text>\n </svg>\n )}\n {showFallback && (\n <div\n test-id=\"fallbackIcon\"\n class=\"fallback\"\n >\n <q2-icon type={this.icon}></q2-icon>\n </div>\n )}\n </div>\n );\n }\n\n // #endregion\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"q2-avatar-test.e2e.js","sourceRoot":"","sources":["../../../../src/components/q2-avatar/test/q2-avatar-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { evaluateA11y, getListOfStyleCompilationIssues, setup } from '@/utils/helpers';\n\nconst base64Image =\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII=';\ndescribe('q2-avatar', () => {\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: `<q2-avatar></q2-avatar>` });\n expect(await getListOfStyleCompilationIssues(page, 'q2-avatar')).toHaveLength(0);\n });\n\n describe('@Props', () => {\n describe('src', () => {\n describe('when provided', () => {\n it('loads image', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-avatar src=\"${base64Image}\"></q2-avatar>`,\n });\n\n const avatar = await page.find('q2-avatar');\n const image = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n const imageSrc = image.getAttribute('src');\n const avatarCss = await avatar.getComputedStyle();\n const imageCss = await image.getComputedStyle();\n\n expect(imageSrc).toEqual(base64Image);\n expect(avatarCss.backgroundColor).toEqual('rgba(0, 0, 0, 0)');\n expect(imageCss.borderRadius).toEqual('50%');\n expect(image).toHaveClass('avatar-img');\n });\n\n it('updates image', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-avatar src=\"${base64Image}\"></q2-avatar>`,\n });\n\n let userImage = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n\n expect(userImage.getAttribute('src')).toEqual(base64Image);\n\n const image = await page.find('q2-avatar');\n\n image.setProperty(\n 'src',\n 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRKaiKiPcLJj7ufrj6M2KaPwyCT4lDSFA5oog&usqp=CAU'\n );\n\n await page.waitForChanges();\n\n userImage = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n\n expect(userImage.getAttribute('src')).toEqual(\n 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRKaiKiPcLJj7ufrj6M2KaPwyCT4lDSFA5oog&usqp=CAU'\n );\n });\n\n it('updates img tag to a non-error state', async function (): Promise<void> {\n const page = await setup({\n html: '<q2-avatar name=\"sara marshall src=\"badUrl\" ></q2-avatar>',\n });\n await page.waitForChanges();\n\n const badImage = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n expect(badImage).toBeFalsy();\n\n const avatar = await page.find('q2-avatar');\n avatar.setProperty(\n 'src',\n 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRKaiKiPcLJj7ufrj6M2KaPwyCT4lDSFA5oog&usqp=CAU'\n );\n await page.waitForChanges();\n\n const goodImage = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n expect(goodImage.getAttribute('src')).toEqual(\n 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRKaiKiPcLJj7ufrj6M2KaPwyCT4lDSFA5oog&usqp=CAU'\n );\n });\n });\n });\n\n describe('name', () => {\n describe('when provided', () => {\n it('calculates initials from name attribute', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-avatar name=\"john peter robinson\"></q2-avatar>`,\n });\n\n const initialsSvg = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n const initialsSvgCss = await initialsSvg.getComputedStyle();\n\n expect(initialsSvgCss.borderRadius).toEqual('50%');\n expect(initialsSvg.innerText).toEqual('JR');\n expect(initialsSvg).toEqualAttribute('aria-label', 'john peter robinson');\n expect(initialsSvg).not.toHaveAttribute('aria-hidden');\n });\n\n it('recalculates if changed', async function (): Promise<void> {\n const page = await setup({\n html: '<q2-avatar name=\"john peter robinson\"></q2-avatar>',\n });\n\n let userInitials = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n\n expect(userInitials.innerText).toEqual('JR');\n\n const avatar = await page.find('q2-avatar');\n\n avatar.setProperty('name', 'sarah marshall');\n\n await page.waitForChanges();\n\n userInitials = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n\n expect(userInitials.innerText).toEqual('SM');\n });\n\n it('adds aria-label to initials SVG', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-avatar name=\"john peter robinson\"></q2-avatar>`,\n });\n const initialsSvg = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n\n expect(initialsSvg).toEqualAttribute('aria-label', 'john peter robinson');\n expect(initialsSvg).not.toHaveAttribute('aria-hidden');\n });\n\n it('adds name as an alt tag to img', async () => {\n const page = await setup({\n html: `<q2-avatar src=\"${base64Image}\" name=\"john peter robinson\"></q2-avatar>`,\n });\n\n const image = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n expect(image).toEqualAttribute('alt', 'john peter robinson');\n });\n });\n\n describe('when not provided', () => {\n it('adds aria-hidden to initials SVG', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-avatar initials=\"JCVD\"></q2-avatar>`,\n });\n\n const initialsSvg = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n\n expect(initialsSvg).not.toHaveAttribute('aria-label');\n expect(initialsSvg).toEqualAttribute('aria-hidden', 'true');\n });\n\n it('adds empty alt tag to image', async () => {\n const page = await setup({\n html: `<q2-avatar src=\"${base64Image}\"></q2-avatar>`,\n });\n\n const image = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n expect(image).toEqualAttribute('alt', '');\n });\n });\n });\n\n describe('initials', () => {\n describe('when provided', () => {\n it('prioritizes initials over name attribute', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-avatar initials=\"JKVD\" name=\"john peter robinson\"></q2-avatar>`,\n });\n\n const initialsSvg = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n const initialsSvgCss = await initialsSvg.getComputedStyle();\n\n expect(initialsSvgCss.borderRadius).toEqual('50%');\n expect(initialsSvg.innerText).toEqual('JKVD');\n });\n\n it('limits the initials to four characters', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-avatar initials=\"ABCDEFG\"></q2-avatar>`,\n });\n\n const el = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n\n expect(el.innerText).toEqual('ABCD');\n });\n });\n });\n describe('icon', () => {\n describe('when provided', () => {\n it('renders custom fallback icon', async function () {\n const page = await setup({ html: '<q2-avatar icon=\"info\"></q2-avatar>' });\n\n const fallbackIcon = await page.find('q2-avatar >>> [test-id=\"fallbackIcon\"] q2-icon');\n const fallbackIconContainer = await page.find('q2-avatar >>> [test-id=\"fallbackIcon\"]');\n const fallbackIconContainerCss = await fallbackIconContainer.getComputedStyle();\n\n expect(fallbackIconContainerCss.borderRadius).toEqual('50%');\n expect(fallbackIcon).toEqualAttribute('type', 'info');\n });\n });\n\n describe('when not provided', () => {\n it('renders default fallback icon', async function () {\n const page = await setup({ html: '<q2-avatar></q2-avatar>' });\n\n const fallbackIcon = await page.find('q2-avatar >>> [test-id=\"fallbackIcon\"] q2-icon');\n\n expect(fallbackIcon).toEqualAttribute('type', 'person');\n });\n });\n });\n });\n\n it.skip('img should be removed if url does not work', async function (): Promise<void> {\n const page = await setup({\n html: '<q2-avatar name=\"sara marshall\" src=\"badUrl\" ></q2-avatar>',\n });\n\n const badImage = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n\n expect(badImage).toEqual(badImage);\n\n page.waitForChanges();\n\n expect(badImage).toBeFalsy();\n\n const userInitials = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n\n expect(userInitials.innerText).toEqual('SM');\n });\n\n describe('Accessibility', () => {\n describe('aXe DevTools', () => {\n it('does not have accessibility violations', async () => {\n const page = await setup({\n html: `<q2-avatar src=\"${base64Image}\"></q2-avatar>`,\n });\n const hasViolations = await evaluateA11y(page);\n expect(hasViolations).toBe(false);\n });\n });\n describe('Accessibility Tree', () => {});\n describe('Keyboard Controls', () => {});\n describe('Other', () => {});\n });\n});\n"]}
1
+ {"version":3,"file":"q2-avatar-test.e2e.js","sourceRoot":"","sources":["../../../../../src/components/q2-avatar/test/q2-avatar-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { evaluateA11y, getListOfStyleCompilationIssues, setup } from '@/utils/helpers';\n\nconst base64Image =\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII=';\ndescribe('q2-avatar', () => {\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: `<q2-avatar></q2-avatar>` });\n expect(await getListOfStyleCompilationIssues(page, 'q2-avatar')).toHaveLength(0);\n });\n\n describe('@Props', () => {\n describe('src', () => {\n describe('when provided', () => {\n it('loads image', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-avatar src=\"${base64Image}\"></q2-avatar>`,\n });\n\n const avatar = await page.find('q2-avatar');\n const image = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n const imageSrc = image.getAttribute('src');\n const avatarCss = await avatar.getComputedStyle();\n const imageCss = await image.getComputedStyle();\n\n expect(imageSrc).toEqual(base64Image);\n expect(avatarCss.backgroundColor).toEqual('rgba(0, 0, 0, 0)');\n expect(imageCss.borderRadius).toEqual('50%');\n expect(image).toHaveClass('avatar-img');\n });\n\n it('updates image', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-avatar src=\"${base64Image}\"></q2-avatar>`,\n });\n\n let userImage = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n\n expect(userImage.getAttribute('src')).toEqual(base64Image);\n\n const image = await page.find('q2-avatar');\n\n image.setProperty(\n 'src',\n 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRKaiKiPcLJj7ufrj6M2KaPwyCT4lDSFA5oog&usqp=CAU'\n );\n\n await page.waitForChanges();\n\n userImage = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n\n expect(userImage.getAttribute('src')).toEqual(\n 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRKaiKiPcLJj7ufrj6M2KaPwyCT4lDSFA5oog&usqp=CAU'\n );\n });\n\n it('updates img tag to a non-error state', async function (): Promise<void> {\n const page = await setup({\n html: '<q2-avatar name=\"sara marshall src=\"badUrl\" ></q2-avatar>',\n });\n await page.waitForChanges();\n\n const badImage = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n expect(badImage).toBeFalsy();\n\n const avatar = await page.find('q2-avatar');\n avatar.setProperty(\n 'src',\n 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRKaiKiPcLJj7ufrj6M2KaPwyCT4lDSFA5oog&usqp=CAU'\n );\n await page.waitForChanges();\n\n const goodImage = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n expect(goodImage.getAttribute('src')).toEqual(\n 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRKaiKiPcLJj7ufrj6M2KaPwyCT4lDSFA5oog&usqp=CAU'\n );\n });\n });\n });\n\n describe('name', () => {\n describe('when provided', () => {\n it('calculates initials from name attribute', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-avatar name=\"john peter robinson\"></q2-avatar>`,\n });\n\n const initialsSvg = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n const initialsSvgCss = await initialsSvg.getComputedStyle();\n\n expect(initialsSvgCss.borderRadius).toEqual('50%');\n expect(initialsSvg.innerText).toEqual('JR');\n expect(initialsSvg).toEqualAttribute('aria-label', 'john peter robinson');\n expect(initialsSvg).not.toHaveAttribute('aria-hidden');\n });\n\n it('recalculates if changed', async function (): Promise<void> {\n const page = await setup({\n html: '<q2-avatar name=\"john peter robinson\"></q2-avatar>',\n });\n\n let userInitials = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n\n expect(userInitials.innerText).toEqual('JR');\n\n const avatar = await page.find('q2-avatar');\n\n avatar.setProperty('name', 'sarah marshall');\n\n await page.waitForChanges();\n\n userInitials = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n\n expect(userInitials.innerText).toEqual('SM');\n });\n\n it('adds aria-label to initials SVG', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-avatar name=\"john peter robinson\"></q2-avatar>`,\n });\n const initialsSvg = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n\n expect(initialsSvg).toEqualAttribute('aria-label', 'john peter robinson');\n expect(initialsSvg).not.toHaveAttribute('aria-hidden');\n });\n\n it('adds name as an alt tag to img', async () => {\n const page = await setup({\n html: `<q2-avatar src=\"${base64Image}\" name=\"john peter robinson\"></q2-avatar>`,\n });\n\n const image = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n expect(image).toEqualAttribute('alt', 'john peter robinson');\n });\n });\n\n describe('when not provided', () => {\n it('adds aria-hidden to initials SVG', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-avatar initials=\"JCVD\"></q2-avatar>`,\n });\n\n const initialsSvg = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n\n expect(initialsSvg).not.toHaveAttribute('aria-label');\n expect(initialsSvg).toEqualAttribute('aria-hidden', 'true');\n });\n\n it('adds empty alt tag to image', async () => {\n const page = await setup({\n html: `<q2-avatar src=\"${base64Image}\"></q2-avatar>`,\n });\n\n const image = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n expect(image).toEqualAttribute('alt', '');\n });\n });\n });\n\n describe('initials', () => {\n describe('when provided', () => {\n it('prioritizes initials over name attribute', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-avatar initials=\"JKVD\" name=\"john peter robinson\"></q2-avatar>`,\n });\n\n const initialsSvg = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n const initialsSvgCss = await initialsSvg.getComputedStyle();\n\n expect(initialsSvgCss.borderRadius).toEqual('50%');\n expect(initialsSvg.innerText).toEqual('JKVD');\n });\n\n it('limits the initials to four characters', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-avatar initials=\"ABCDEFG\"></q2-avatar>`,\n });\n\n const el = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n\n expect(el.innerText).toEqual('ABCD');\n });\n });\n });\n describe('icon', () => {\n describe('when provided', () => {\n it('renders custom fallback icon', async function () {\n const page = await setup({ html: '<q2-avatar icon=\"info\"></q2-avatar>' });\n\n const fallbackIcon = await page.find('q2-avatar >>> [test-id=\"fallbackIcon\"] q2-icon');\n const fallbackIconContainer = await page.find('q2-avatar >>> [test-id=\"fallbackIcon\"]');\n const fallbackIconContainerCss = await fallbackIconContainer.getComputedStyle();\n\n expect(fallbackIconContainerCss.borderRadius).toEqual('50%');\n expect(fallbackIcon).toEqualAttribute('type', 'info');\n });\n });\n\n describe('when not provided', () => {\n it('renders default fallback icon', async function () {\n const page = await setup({ html: '<q2-avatar></q2-avatar>' });\n\n const fallbackIcon = await page.find('q2-avatar >>> [test-id=\"fallbackIcon\"] q2-icon');\n\n expect(fallbackIcon).toEqualAttribute('type', 'person');\n });\n });\n });\n });\n\n it.skip('img should be removed if url does not work', async function (): Promise<void> {\n const page = await setup({\n html: '<q2-avatar name=\"sara marshall\" src=\"badUrl\" ></q2-avatar>',\n });\n\n const badImage = await page.find('q2-avatar >>> [test-id=\"userImage\"]');\n\n expect(badImage).toEqual(badImage);\n\n page.waitForChanges();\n\n expect(badImage).toBeFalsy();\n\n const userInitials = await page.find('q2-avatar >>> [test-id=\"userInitials\"]');\n\n expect(userInitials.innerText).toEqual('SM');\n });\n\n describe('Accessibility', () => {\n describe('aXe DevTools', () => {\n it('does not have accessibility violations', async () => {\n const page = await setup({\n html: `<q2-avatar src=\"${base64Image}\"></q2-avatar>`,\n });\n const hasViolations = await evaluateA11y(page);\n expect(hasViolations).toBe(false);\n });\n });\n describe('Accessibility Tree', () => {});\n describe('Keyboard Controls', () => {});\n describe('Other', () => {});\n });\n});\n"]}