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
@@ -1,7 +1,6 @@
1
1
  import { evaluateA11y, getListOfStyleCompilationIssues, setup } from "../../../utils/helpers";
2
2
  describe('q2-option', () => {
3
3
  let page;
4
- let option;
5
4
  describe('Initialization', () => {
6
5
  it('properly compiles CSS vars and functions', async () => {
7
6
  const page = await setup({ html: '<q2-option></q2-option>' });
@@ -14,7 +13,7 @@ describe('q2-option', () => {
14
13
  page = await setup({
15
14
  html: `<q2-option value="2">My Option</q2-option>`,
16
15
  });
17
- option = await page.find('q2-option');
16
+ const option = await page.find('q2-option');
18
17
  const clickSpy = await option.spyOnEvent('tctClick');
19
18
  await option.click();
20
19
  await page.waitForChanges();
@@ -28,7 +27,7 @@ describe('q2-option', () => {
28
27
  describe('Accessibility', () => {
29
28
  describe('aXe DevTools', () => {
30
29
  it('does not have accessibility violations', async () => {
31
- page = await setup({
30
+ const page = await setup({
32
31
  html: `<q2-select label="Test" value="option-1">
33
32
  <q2-option value="option-1" display="Option Text">Option Text</q2-option>
34
33
  <q2-option value="option-2" display="Option Text">Option Text</q2-option>
@@ -55,7 +54,7 @@ describe('q2-option', () => {
55
54
  page = await setup({
56
55
  html: `<q2-option value="2">My Option</q2-option>`,
57
56
  });
58
- option = await page.find('q2-option');
57
+ const option = await page.find('q2-option');
59
58
  const clickSpy = await option.spyOnEvent('tctClick');
60
59
  await option.press('Space');
61
60
  await page.waitForChanges();
@@ -68,7 +67,7 @@ describe('q2-option', () => {
68
67
  page = await setup({
69
68
  html: `<q2-option value="2">My Option</q2-option>`,
70
69
  });
71
- option = await page.find('q2-option');
70
+ const option = await page.find('q2-option');
72
71
  const clickSpy = await option.spyOnEvent('tctClick');
73
72
  await option.press('Enter');
74
73
  await page.waitForChanges();
@@ -80,5 +79,33 @@ describe('q2-option', () => {
80
79
  });
81
80
  describe('Other', () => { });
82
81
  });
82
+ describe('Accessibility', () => {
83
+ describe('aXe DevTools', () => {
84
+ it('does not have accessibility violations', async () => {
85
+ const page = await setup({
86
+ html: `<q2-select label="Test" value="option-1">
87
+ <q2-option value="option-1" display="Option Text">Option Text</q2-option>
88
+ <q2-option value="option-2" display="Option Text">Option Text</q2-option>
89
+ </q2-select>`,
90
+ });
91
+ const hasViolations = await evaluateA11y(page);
92
+ expect(hasViolations).toBe(false);
93
+ });
94
+ });
95
+ describe('Accessibility Tree', () => {
96
+ it('is correctly represented in the accessibility tree', async () => {
97
+ page = await setup({
98
+ html: `<q2-option>My Option</q2-option>`,
99
+ });
100
+ const accessibilitySnapshot = await page.accessibility.snapshot({
101
+ root: await page.$('q2-option'),
102
+ });
103
+ expect(accessibilitySnapshot.role).toBe('option');
104
+ expect(accessibilitySnapshot.name).toBe('My Option');
105
+ });
106
+ });
107
+ describe('Keyboard Controls', () => { });
108
+ describe('Other', () => { });
109
+ });
83
110
  });
84
111
  //# sourceMappingURL=q2-option-test.e2e.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"q2-option-test.e2e.js","sourceRoot":"","sources":["../../../../src/components/q2-option/test/q2-option-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage } from '@stencil/core/testing';\nimport { evaluateA11y, getListOfStyleCompilationIssues, setup } from '@/utils/helpers';\n\ndescribe('q2-option', () => {\n let page: E2EPage;\n let option: E2EElement;\n\n describe('Initialization', () => {\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-option></q2-option>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-option')).toHaveLength(0);\n });\n });\n\n describe('Events', () => {\n describe('tctClick', () => {\n it('is emitted when the option is clicked', async () => {\n page = await setup({\n html: `<q2-option value=\"2\">My Option</q2-option>`,\n });\n option = await page.find('q2-option');\n const clickSpy = await option.spyOnEvent('tctClick');\n\n await option.click();\n await page.waitForChanges();\n\n expect(clickSpy).toHaveReceivedEventDetail({\n type: 'select',\n value: '2',\n });\n });\n });\n });\n\n describe('Accessibility', () => {\n describe('aXe DevTools', () => {\n it('does not have accessibility violations', async () => {\n page = await setup({\n html: `<q2-select label=\"Test\" value=\"option-1\">\n <q2-option value=\"option-1\" display=\"Option Text\">Option Text</q2-option>\n <q2-option value=\"option-2\" display=\"Option Text\">Option Text</q2-option>\n </q2-select>`,\n });\n const hasViolations = await evaluateA11y(page);\n expect(hasViolations).toBe(false);\n });\n });\n describe('Accessibility Tree', () => {\n it('is correctly represented in the accessibility tree', async () => {\n page = await setup({\n html: `<q2-option>My Option</q2-option>`,\n });\n const accessibilitySnapshot = await page.accessibility.snapshot({\n root: await page.$('q2-option'),\n });\n expect(accessibilitySnapshot.role).toBe('option');\n expect(accessibilitySnapshot.name).toBe('My Option');\n });\n });\n describe('Keyboard Controls', () => {\n it(\"emits a click event when the 'Space' key is pressed\", async () => {\n page = await setup({\n html: `<q2-option value=\"2\">My Option</q2-option>`,\n });\n option = await page.find('q2-option');\n const clickSpy = await option.spyOnEvent('tctClick');\n\n await option.press('Space');\n await page.waitForChanges();\n\n expect(clickSpy).toHaveReceivedEventDetail({\n type: 'select',\n value: '2',\n });\n });\n\n it(\"emits a click event when the 'Enter' key is pressed\", async () => {\n page = await setup({\n html: `<q2-option value=\"2\">My Option</q2-option>`,\n });\n option = await page.find('q2-option');\n const clickSpy = await option.spyOnEvent('tctClick');\n\n await option.press('Enter');\n await page.waitForChanges();\n\n expect(clickSpy).toHaveReceivedEventDetail({\n type: 'select',\n value: '2',\n });\n });\n });\n describe('Other', () => {});\n });\n});\n"]}
1
+ {"version":3,"file":"q2-option-test.e2e.js","sourceRoot":"","sources":["../../../../../src/components/q2-option/test/q2-option-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EPage } from '@stencil/core/testing';\nimport { evaluateA11y, getListOfStyleCompilationIssues, setup } from '@/utils/helpers';\n\ndescribe('q2-option', () => {\n let page: E2EPage;\n\n describe('Initialization', () => {\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-option></q2-option>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-option')).toHaveLength(0);\n });\n });\n\n describe('Events', () => {\n describe('tctClick', () => {\n it('is emitted when the option is clicked', async () => {\n page = await setup({\n html: `<q2-option value=\"2\">My Option</q2-option>`,\n });\n const option = await page.find('q2-option');\n const clickSpy = await option.spyOnEvent('tctClick');\n\n await option.click();\n await page.waitForChanges();\n\n expect(clickSpy).toHaveReceivedEventDetail({\n type: 'select',\n value: '2',\n });\n });\n });\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-select label=\"Test\" value=\"option-1\">\n <q2-option value=\"option-1\" display=\"Option Text\">Option Text</q2-option>\n <q2-option value=\"option-2\" display=\"Option Text\">Option Text</q2-option>\n </q2-select>`,\n });\n const hasViolations = await evaluateA11y(page);\n expect(hasViolations).toBe(false);\n });\n });\n describe('Accessibility Tree', () => {\n it('is correctly represented in the accessibility tree', async () => {\n page = await setup({\n html: `<q2-option>My Option</q2-option>`,\n });\n const accessibilitySnapshot = await page.accessibility.snapshot({\n root: await page.$('q2-option'),\n });\n expect(accessibilitySnapshot.role).toBe('option');\n expect(accessibilitySnapshot.name).toBe('My Option');\n });\n });\n describe('Keyboard Controls', () => {\n it(\"emits a click event when the 'Space' key is pressed\", async () => {\n page = await setup({\n html: `<q2-option value=\"2\">My Option</q2-option>`,\n });\n const option = await page.find('q2-option');\n const clickSpy = await option.spyOnEvent('tctClick');\n\n await option.press('Space');\n await page.waitForChanges();\n\n expect(clickSpy).toHaveReceivedEventDetail({\n type: 'select',\n value: '2',\n });\n });\n\n it(\"emits a click event when the 'Enter' key is pressed\", async () => {\n page = await setup({\n html: `<q2-option value=\"2\">My Option</q2-option>`,\n });\n const option = await page.find('q2-option');\n const clickSpy = await option.spyOnEvent('tctClick');\n\n await option.press('Enter');\n await page.waitForChanges();\n\n expect(clickSpy).toHaveReceivedEventDetail({\n type: 'select',\n value: '2',\n });\n });\n });\n describe('Other', () => {});\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-select label=\"Test\" value=\"option-1\">\n <q2-option value=\"option-1\" display=\"Option Text\">Option Text</q2-option>\n <q2-option value=\"option-2\" display=\"Option Text\">Option Text</q2-option>\n </q2-select>`,\n });\n const hasViolations = await evaluateA11y(page);\n expect(hasViolations).toBe(false);\n });\n });\n describe('Accessibility Tree', () => {\n it('is correctly represented in the accessibility tree', async () => {\n page = await setup({\n html: `<q2-option>My Option</q2-option>`,\n });\n const accessibilitySnapshot = await page.accessibility.snapshot({\n root: await page.$('q2-option'),\n });\n expect(accessibilitySnapshot.role).toBe('option');\n expect(accessibilitySnapshot.name).toBe('My Option');\n });\n });\n describe('Keyboard Controls', () => {});\n describe('Other', () => {});\n });\n});\n"]}
@@ -1,5 +1,6 @@
1
1
  import { setupSpecPageWithLoc } from "../../../utils/helpers";
2
2
  import { Q2Option } from "../q2-option";
3
+ import { Q2Loc } from "../../q2-loc/q2-loc";
3
4
  describe('q2-option', () => {
4
5
  let specPage;
5
6
  let optionClass;
@@ -219,7 +220,7 @@ describe('q2-option', () => {
219
220
  optionElement = specPage.root;
220
221
  expect(optionElement.display).toBeUndefined();
221
222
  });
222
- it('prevents handleTextContent() from setting textContent to display', async () => {
223
+ it('prevents setTextContent() from setting textContent to display', async () => {
223
224
  specPage = await setupSpecPageWithLoc({
224
225
  components: [Q2Option],
225
226
  html: '<q2-option multiline display="Option Text"></q2-option>',
@@ -237,7 +238,7 @@ describe('q2-option', () => {
237
238
  optionElement = specPage.root;
238
239
  expect(optionElement.display).toBe('Option Text');
239
240
  });
240
- it('does not short circuit the handleTextContent() local method', async () => {
241
+ it('does not short circuit the setTextContent() local method', async () => {
241
242
  specPage = await setupSpecPageWithLoc({
242
243
  components: [Q2Option],
243
244
  html: '<q2-option display="Option Text"></q2-option>',
@@ -406,11 +407,46 @@ describe('q2-option', () => {
406
407
  const displayChangedSpy = jest.spyOn(optionClass.displayChanged, 'emit');
407
408
  optionElement.textContent = 'Option Text Changed';
408
409
  optionClass.mutationHandler();
409
- await specPage.waitForChanges();
410
410
  expect(displayChangedSpy).not.toHaveBeenCalled();
411
411
  });
412
412
  });
413
413
  });
414
+ describe('Lifecycle Methods', () => {
415
+ describe('componentWillLoad', () => {
416
+ it('calls separatorChangedHandler() with value of separator', async () => {
417
+ specPage = await setupSpecPageWithLoc({
418
+ components: [Q2Option],
419
+ html: '<q2-option></q2-option>',
420
+ });
421
+ optionClass = specPage.rootInstance;
422
+ const separatorChangedHandlerSpy = jest.spyOn(optionClass, 'separatorChangedHandler');
423
+ optionClass.componentWillLoad();
424
+ expect(separatorChangedHandlerSpy).toHaveBeenCalledWith(optionClass.separator);
425
+ });
426
+ it('calls initDisplay()', async () => {
427
+ specPage = await setupSpecPageWithLoc({
428
+ components: [Q2Option],
429
+ html: '<q2-option></q2-option>',
430
+ });
431
+ optionClass = specPage.rootInstance;
432
+ const initDisplaySpy = jest.spyOn(optionClass, 'initDisplay');
433
+ optionClass.componentWillLoad();
434
+ expect(initDisplaySpy).toHaveBeenCalled();
435
+ });
436
+ });
437
+ describe('componentDidLoad', () => {
438
+ it('calls initMutationObserver()', async () => {
439
+ specPage = await setupSpecPageWithLoc({
440
+ components: [Q2Option],
441
+ html: '<q2-option></q2-option>',
442
+ });
443
+ optionClass = specPage.rootInstance;
444
+ const initMutationObserverSpy = jest.spyOn(optionClass, 'initMutationObserver');
445
+ optionClass.componentDidLoad();
446
+ expect(initMutationObserverSpy).toHaveBeenCalled();
447
+ });
448
+ });
449
+ });
414
450
  describe('Watchers', () => {
415
451
  describe('display', () => {
416
452
  it('translates the new display value', async () => {
@@ -424,16 +460,16 @@ describe('q2-option', () => {
424
460
  optionClass.display = 'tecton.element.option.changed';
425
461
  expect(optionElement.display).toBe('Option Changed');
426
462
  });
427
- it('triggers handleTextContent() local method', async () => {
463
+ it('triggers setTextContent() local method', async () => {
428
464
  specPage = await setupSpecPageWithLoc({
429
465
  components: [Q2Option],
430
466
  html: '<q2-option display="Option Text"></q2-option>',
431
467
  });
432
468
  optionClass = specPage.rootInstance;
433
- const handleTextContentSpy = jest.spyOn(optionClass, 'handleTextContent');
469
+ const setTextContentSpy = jest.spyOn(optionClass, 'setTextContent');
434
470
  optionClass.display = 'New Display Text';
435
471
  await specPage.waitForChanges();
436
- expect(handleTextContentSpy).toHaveBeenCalled();
472
+ expect(setTextContentSpy).toHaveBeenCalled();
437
473
  });
438
474
  it('emits the displayChanged event with the a translated display value', async () => {
439
475
  specPage = await setupSpecPageWithLoc({
@@ -452,17 +488,45 @@ describe('q2-option', () => {
452
488
  });
453
489
  });
454
490
  describe('Local Methods', () => {
455
- describe('handleTextContent', () => {
456
- it('sets the hostElement textContent if none exists and display is provided', async () => {
457
- specPage = await setupSpecPageWithLoc({
458
- components: [Q2Option],
459
- html: '<q2-option display="Option Text"></q2-option>',
491
+ describe('setTextContent', () => {
492
+ describe('when mulitline is falsy and NOT using q2-loc element', () => {
493
+ it('sets the hostElement textContent to the translated display prop', async () => {
494
+ specPage = await setupSpecPageWithLoc({
495
+ components: [Q2Option],
496
+ html: '<q2-option display="Option Text"></q2-option>',
497
+ });
498
+ optionClass = specPage.rootInstance;
499
+ optionElement = specPage.root;
500
+ optionClass.setTextContent();
501
+ await specPage.waitForChanges();
502
+ expect(optionElement.textContent).toBe('Option Text');
503
+ });
504
+ });
505
+ describe('when used with mulitiline', () => {
506
+ it('does not set the hostElement textContent to the translated display prop', async () => {
507
+ specPage = await setupSpecPageWithLoc({
508
+ components: [Q2Option],
509
+ html: '<q2-option display="Option Text" multiline></q2-option>',
510
+ });
511
+ optionClass = specPage.rootInstance;
512
+ optionElement = specPage.root;
513
+ optionClass.setTextContent();
514
+ await specPage.waitForChanges();
515
+ expect(optionElement.textContent).toBe('');
516
+ });
517
+ });
518
+ describe('when used with a q2-loc element', () => {
519
+ it('does not set the hostElement textContent to the translated display prop', async () => {
520
+ specPage = await setupSpecPageWithLoc({
521
+ components: [Q2Option],
522
+ html: '<q2-option display="Option Text"><q2-loc>My Loc Text</q2-loc></q2-option>',
523
+ });
524
+ optionClass = specPage.rootInstance;
525
+ optionElement = specPage.root;
526
+ optionClass.setTextContent();
527
+ await specPage.waitForChanges();
528
+ expect(optionElement.textContent).toBe('My Loc Text');
460
529
  });
461
- optionClass = specPage.rootInstance;
462
- optionElement = specPage.root;
463
- optionClass.handleTextContent();
464
- await specPage.waitForChanges();
465
- expect(optionElement.textContent).toBe('Option Text');
466
530
  });
467
531
  });
468
532
  describe('initDisplay', () => {
@@ -510,16 +574,16 @@ describe('q2-option', () => {
510
574
  expect(optionClass.display).toBe('Option Text');
511
575
  });
512
576
  });
513
- it('fires handleTextContent() when multiline is not provided', async () => {
577
+ it('fires setTextContent() when multiline is not provided', async () => {
514
578
  specPage = await setupSpecPageWithLoc({
515
579
  components: [Q2Option],
516
580
  html: '<q2-option display="Option Text"></q2-option>',
517
581
  });
518
582
  optionClass = specPage.rootInstance;
519
- const handleTextContentSpy = jest.spyOn(optionClass, 'handleTextContent');
583
+ const setTextContentSpy = jest.spyOn(optionClass, 'setTextContent');
520
584
  optionClass.initDisplay();
521
585
  await specPage.waitForChanges();
522
- expect(handleTextContentSpy).toHaveBeenCalled();
586
+ expect(setTextContentSpy).toHaveBeenCalled();
523
587
  });
524
588
  });
525
589
  describe('mutationHandler', () => {
@@ -550,5 +614,59 @@ describe('q2-option', () => {
550
614
  });
551
615
  });
552
616
  });
617
+ describe('Regression', () => {
618
+ describe('q2-loc compatibility', () => {
619
+ it('sets the display attribute to the textContent of the option element', async () => {
620
+ specPage = await setupSpecPageWithLoc({
621
+ components: [Q2Option, Q2Loc],
622
+ html: '<q2-option>My Option <q2-loc>Loc Text</q2-loc></q2-option>',
623
+ });
624
+ optionClass = specPage.rootInstance;
625
+ optionElement = specPage.root;
626
+ expect(optionClass.display).toBe(optionElement.textContent);
627
+ });
628
+ it('renders the combined texts as textContent', async () => {
629
+ specPage = await setupSpecPageWithLoc({
630
+ components: [Q2Option, Q2Loc],
631
+ html: '<q2-option>My Option <q2-loc>Loc Text</q2-loc></q2-option>',
632
+ });
633
+ optionClass = specPage.rootInstance;
634
+ optionElement = specPage.root;
635
+ expect(optionElement.textContent).toBe('My Option Loc Text');
636
+ });
637
+ it('sets the display attribute to the translated q2-loc', async () => {
638
+ specPage = await setupSpecPageWithLoc({
639
+ components: [Q2Option, Q2Loc],
640
+ html: '<q2-option><q2-loc>tecton.element.loc.test</q2-loc></q2-option>',
641
+ }, testStringsDict);
642
+ optionClass = specPage.rootInstance;
643
+ expect(optionClass.display).toBe('Loc Text');
644
+ });
645
+ it('sets the textContent to the translated q2-loc', async () => {
646
+ specPage = await setupSpecPageWithLoc({
647
+ components: [Q2Option, Q2Loc],
648
+ html: '<q2-option><q2-loc>tecton.element.loc.test</q2-loc></q2-option>',
649
+ }, testStringsDict);
650
+ optionElement = specPage.root;
651
+ expect(optionElement.textContent).toBe('Loc Text');
652
+ });
653
+ it('sets the display attribute to the translated q2-loc value attribute', async () => {
654
+ specPage = await setupSpecPageWithLoc({
655
+ components: [Q2Option, Q2Loc],
656
+ html: '<q2-option><q2-loc value="tecton.element.loc.test"></q2-loc></q2-option>',
657
+ }, testStringsDict);
658
+ optionClass = specPage.rootInstance;
659
+ expect(optionClass.display).toBe('Loc Text');
660
+ });
661
+ it('sets the textContent to the translated q2-loc value attribute', async () => {
662
+ specPage = await setupSpecPageWithLoc({
663
+ components: [Q2Option, Q2Loc],
664
+ html: '<q2-option><q2-loc value="tecton.element.loc.test"></q2-loc></q2-option>',
665
+ }, testStringsDict);
666
+ optionElement = specPage.root;
667
+ expect(optionElement.textContent).toBe('Loc Text');
668
+ });
669
+ });
670
+ });
553
671
  });
554
672
  //# sourceMappingURL=q2-option-test.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"q2-option-test.spec.js","sourceRoot":"","sources":["../../../../src/components/q2-option/test/q2-option-test.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { SpecPage } from '@stencil/core/testing';\nimport { setupSpecPageWithLoc } from '@/utils/helpers';\nimport { Q2Option } from '../q2-option';\n\ndescribe('q2-option', () => {\n let specPage: SpecPage;\n let optionClass;\n let optionElement;\n const testStringsDict = {\n 'tecton.element.option.test': 'Option Text',\n 'tecton.element.option.changed': 'Option Changed',\n 'tecton.element.loc.test': 'Loc Text',\n };\n\n describe('Initialization', () => {\n it('renders with default attributes', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option></q2-option>',\n });\n optionClass = specPage.rootInstance;\n optionElement = specPage.root;\n\n expect(optionClass).toBeTruthy();\n expect(optionClass._multiSelectHidden).toBeFalsy();\n expect(optionClass.active).toBeFalsy();\n expect(optionClass.disabled).toBeFalsy();\n expect(optionClass.disabledGroup).toBeFalsy();\n expect(optionClass.display).toBe('');\n expect(optionClass.multiline).toBeFalsy();\n expect(optionClass.role).toBe('option');\n expect(optionClass.selected).toBeFalsy();\n expect(optionClass.value).toBeFalsy();\n expect(optionElement).toBeTruthy();\n expect(optionElement.getAttribute('tabindex')).toBe('-1');\n expect(optionElement.getAttribute('aria-disabled')).toBeFalsy();\n expect(optionElement.getAttribute('aria-selected')).toBe('false');\n expect(optionElement.getAttribute('aria-hidden')).toBeFalsy();\n });\n });\n\n describe('Props', () => {\n describe('_multiSelectHidden', () => {\n describe('when provided', () => {\n it('sets aria-hidden to true', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option _multiSelectHidden></q2-option>',\n });\n optionElement = specPage.root;\n expect(optionElement.getAttribute('aria-hidden')).toBe('true');\n });\n });\n describe('when not provided', () => {\n it('sets aria-hidden to false', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option></q2-option>',\n });\n optionElement = specPage.root;\n expect(optionElement.getAttribute('aria-hidden')).toBeFalsy();\n });\n });\n });\n describe('active', () => {\n describe('when provided', () => {\n it('sets the property to true', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option active></q2-option>',\n });\n optionClass = specPage.rootInstance;\n expect(optionClass.active).toBe(true);\n });\n it('sets the property to false', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option active=\"false\"></q2-option>',\n });\n optionClass = specPage.rootInstance;\n expect(optionClass.active).toBe(false);\n });\n });\n describe('when not provided', () => {\n it('sets the property to undefined', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option></q2-option>',\n });\n optionClass = specPage.rootInstance;\n expect(optionClass.active).toBeUndefined();\n });\n });\n });\n describe('disabled', () => {\n describe('when provided', () => {\n describe('when true', () => {\n it('sets aria-disabled to true', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option disabled></q2-option>',\n });\n optionElement = specPage.root;\n expect(optionElement.getAttribute('aria-disabled')).toBe('true');\n });\n });\n describe('when false', () => {\n it('does not set the aria-disabled attribute', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option disabled=\"false\"></q2-option>',\n });\n optionElement = specPage.root;\n expect(optionElement.getAttribute('aria-disabled')).toBeNull();\n });\n });\n });\n describe('when not provided', () => {\n it('does not set the aria-disabled attribute', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option></q2-option>',\n });\n optionElement = specPage.root;\n expect(optionElement.getAttribute('aria-disabled')).toBeNull();\n });\n });\n });\n describe('disabledGroup', () => {\n describe('when provided', () => {\n describe('when true', () => {\n it('sets aria-disabled to true', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option disabled-group></q2-option>',\n });\n optionElement = specPage.root;\n expect(optionElement.getAttribute('aria-disabled')).toBe('true');\n });\n });\n describe('when false', () => {\n it('does not set the aria-disabled attribute', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option disabled-group=\"false\"></q2-option>',\n });\n optionElement = specPage.root;\n expect(optionElement.getAttribute('aria-disabled')).toBeNull();\n });\n });\n });\n describe('when not provided', () => {\n it('does not set the aria-disabled attribute', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option></q2-option>',\n });\n optionElement = specPage.root;\n expect(optionElement.getAttribute('aria-disabled')).toBeNull();\n });\n });\n });\n describe('display', () => {\n describe('when provided', () => {\n it('sets the value of the display property', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option display=\"My Display\"></q2-option>',\n });\n optionClass = specPage.rootInstance;\n optionElement = specPage.root;\n expect(optionClass.display).toBe('My Display');\n expect(optionElement.display).toBe('My Display');\n });\n it('translates the provided value', async () => {\n specPage = await setupSpecPageWithLoc(\n {\n components: [Q2Option],\n html: '<q2-option display=\"tecton.element.option.test\"></q2-option>',\n },\n testStringsDict\n );\n optionClass = specPage.rootInstance;\n optionElement = specPage.root;\n expect(optionClass.display).toBe('Option Text');\n expect(optionElement.display).toBe('Option Text');\n });\n it('stays the source of truth if textContent changes', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option display=\"My Display\">Option Text</q2-option>',\n });\n optionClass = specPage.rootInstance;\n optionElement = specPage.root;\n optionElement.textContent = 'Option Text Changed';\n await specPage.waitForChanges();\n expect(optionClass.display).toBe('My Display');\n expect(optionElement.display).toBe('My Display');\n });\n });\n describe('when not provided', () => {\n it('sets display to an empty string', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option></q2-option>',\n });\n optionElement = specPage.root;\n expect(optionElement.display).toBe('');\n });\n it('it sets display to the textContent of the element', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option>Option Text</q2-option>',\n });\n optionElement = specPage.root;\n expect(optionElement.display).toBe('Option Text');\n });\n });\n });\n describe('multiline', () => {\n describe('when provided', () => {\n it('prevents initDisplay() from setting display to textContent', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option multiline>Option Text</q2-option>',\n });\n optionElement = specPage.root;\n expect(optionElement.display).toBeUndefined();\n });\n it('prevents handleTextContent() from setting textContent to display', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option multiline display=\"Option Text\"></q2-option>',\n });\n optionElement = specPage.root;\n expect(optionElement.textContent).toBe('');\n });\n });\n describe('when not provided', () => {\n it('does not short circuit the initDisplay() local method', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option>Option Text</q2-option>',\n });\n optionElement = specPage.root;\n expect(optionElement.display).toBe('Option Text');\n });\n it('does not short circuit the handleTextContent() local method', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option display=\"Option Text\"></q2-option>',\n });\n optionElement = specPage.root;\n expect(optionElement.textContent).toBe('Option Text');\n });\n });\n });\n describe('role', () => {\n describe('when provided', () => {\n it('sets the role property to the provided value', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option role=\"listitem\"></q2-option>',\n });\n optionClass = specPage.rootInstance;\n expect(optionClass.role).toBe('listitem');\n });\n });\n describe('when not provided', () => {\n it('defaults to \"option\"', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option></q2-option>',\n });\n optionClass = specPage.rootInstance;\n expect(optionClass.role).toBe('option');\n });\n });\n });\n describe('selected', () => {\n describe('when provided', () => {\n it('sets aria-selected to true', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option selected></q2-option>',\n });\n optionElement = specPage.root;\n const iconElement = optionElement.shadowRoot.querySelector('q2-icon[type=\"checkmark\"]');\n expect(optionElement.getAttribute('aria-selected')).toBe('true');\n expect(iconElement).toBeTruthy();\n });\n });\n describe('when not provided', () => {\n it('sets aria-selected to false', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option></q2-option>',\n });\n optionElement = specPage.root;\n const iconElement = optionElement.shadowRoot.querySelector('q2-icon[type=\"checkmark\"]');\n expect(optionElement.getAttribute('aria-selected')).toBe('false');\n expect(iconElement).toBeNull();\n });\n });\n });\n describe('separator', () => {\n describe('when provided', () => {\n it('renders an element with a class of separator', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option separator></q2-option>',\n });\n expect(specPage.root.shadowRoot.querySelector('.separator')).toBeTruthy();\n expect(specPage.root.role).toBe('separator');\n });\n });\n describe('when not provided', () => {\n it('does not render an element with a class of separator', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option></q2-option>',\n });\n expect(specPage.root.shadowRoot.querySelector('.separator')).toBeNull();\n expect(specPage.root.role).toBe('option');\n });\n });\n });\n describe('value', () => {\n describe('when provided', () => {\n it('sets the value property to the provided value', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option value=\"My Value\"></q2-option>',\n });\n optionClass = specPage.rootInstance;\n expect(optionClass.value).toBe('My Value');\n });\n });\n describe('when not provided', () => {\n it('defaults to undefined', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option></q2-option>',\n });\n optionClass = specPage.rootInstance;\n expect(optionClass.value).toBeUndefined();\n });\n });\n });\n });\n\n describe('Events', () => {\n describe('displayChanged', () => {\n it('emits the event when invoked', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option></q2-option>',\n });\n optionClass = specPage.rootInstance;\n optionElement = specPage.root;\n const displayChangedSpy = jest.spyOn(optionClass.displayChanged, 'emit');\n optionClass.displayChanged.emit();\n await specPage.waitForChanges();\n expect(displayChangedSpy).toHaveBeenCalled();\n });\n it('emits the event when display is changed', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option></q2-option>',\n });\n optionClass = specPage.rootInstance;\n optionElement = specPage.root;\n const displayChangedSpy = jest.spyOn(optionClass.displayChanged, 'emit');\n optionClass.display = 'Option Changed';\n await specPage.waitForChanges();\n expect(displayChangedSpy).toHaveBeenCalled();\n });\n it('event detail contains the display and value props', async () => {\n specPage = await setupSpecPageWithLoc(\n { components: [Q2Option], html: '<q2-option value=\"My Value\" display=\"Option Text\"></q2-option>' },\n testStringsDict\n );\n optionClass = specPage.rootInstance;\n optionElement = specPage.root;\n const displayChangedSpy = jest.spyOn(optionClass.displayChanged, 'emit');\n optionClass.display = 'Option Changed';\n await specPage.waitForChanges();\n expect(displayChangedSpy).toHaveBeenCalled();\n expect(displayChangedSpy).toHaveBeenCalledWith({\n display: 'Option Changed',\n value: 'My Value',\n });\n });\n it('emits when no display provided and textContent changes', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option></q2-option>',\n });\n optionClass = specPage.rootInstance;\n optionElement = specPage.root;\n const displayChangedSpy = jest.spyOn(optionClass.displayChanged, 'emit');\n optionElement.textContent = 'Option Text Changed';\n await specPage.waitForChanges();\n optionClass.mutationHandler();\n await specPage.waitForChanges();\n expect(displayChangedSpy).toHaveBeenCalledWith({\n display: 'Option Text Changed',\n value: undefined,\n });\n });\n it('does not emit if textContent changes and display was already provided', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option display=\"Option Text\"></q2-option>',\n });\n optionClass = specPage.rootInstance;\n optionElement = specPage.root;\n const displayChangedSpy = jest.spyOn(optionClass.displayChanged, 'emit');\n optionElement.textContent = 'Option Text Changed';\n optionClass.mutationHandler();\n await specPage.waitForChanges();\n expect(displayChangedSpy).not.toHaveBeenCalled();\n });\n });\n });\n\n describe('Watchers', () => {\n describe('display', () => {\n it('translates the new display value', async () => {\n specPage = await setupSpecPageWithLoc(\n {\n components: [Q2Option],\n html: '<q2-option display=\"tecton.element.option.test\"></q2-option>',\n },\n testStringsDict\n );\n optionClass = specPage.rootInstance;\n optionElement = specPage.root;\n expect(optionElement.display).toBe('Option Text');\n optionClass.display = 'tecton.element.option.changed';\n expect(optionElement.display).toBe('Option Changed');\n });\n it('triggers handleTextContent() local method', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option display=\"Option Text\"></q2-option>',\n });\n optionClass = specPage.rootInstance;\n const handleTextContentSpy = jest.spyOn(optionClass, 'handleTextContent');\n optionClass.display = 'New Display Text';\n await specPage.waitForChanges();\n expect(handleTextContentSpy).toHaveBeenCalled();\n });\n it('emits the displayChanged event with the a translated display value', async () => {\n specPage = await setupSpecPageWithLoc(\n {\n components: [Q2Option],\n html: '<q2-option value=\"My Value\" display=\"Option Text\"></q2-option>',\n },\n testStringsDict\n );\n optionClass = specPage.rootInstance;\n const displayChangedSpy = jest.spyOn(optionClass.displayChanged, 'emit');\n optionClass.display = 'tecton.element.option.changed';\n await specPage.waitForChanges();\n expect(displayChangedSpy).toHaveBeenCalledWith({\n display: 'Option Changed',\n value: 'My Value',\n });\n });\n });\n });\n\n describe('Local Methods', () => {\n describe('handleTextContent', () => {\n it('sets the hostElement textContent if none exists and display is provided', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option display=\"Option Text\"></q2-option>',\n });\n optionClass = specPage.rootInstance;\n optionElement = specPage.root;\n optionClass.handleTextContent();\n await specPage.waitForChanges();\n expect(optionElement.textContent).toBe('Option Text');\n });\n });\n describe('initDisplay', () => {\n describe('when display is provided', () => {\n it('sets displayProvidedAtInit to true', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option display=\"Option Text\"></q2-option>',\n });\n optionClass = specPage.rootInstance;\n expect(optionClass.displayProvidedAtInit).toBe(true);\n });\n it('sets display to the provided value', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option display=\"Option Text\"></q2-option>',\n });\n optionClass = specPage.rootInstance;\n expect(optionClass.display).toBe('Option Text');\n });\n it('sets display to the translated value', async () => {\n specPage = await setupSpecPageWithLoc(\n {\n components: [Q2Option],\n html: '<q2-option display=\"tecton.element.option.test\"></q2-option>',\n },\n testStringsDict\n );\n optionClass = specPage.rootInstance;\n expect(optionClass.display).toBe('Option Text');\n });\n });\n describe('when display is not provided', () => {\n it('sets display to the textContent of the hostElement', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option>Option Text</q2-option>',\n });\n optionClass = specPage.rootInstance;\n expect(optionClass.display).toBe('Option Text');\n });\n it('sets display to the translated textContent of the hostElement', async () => {\n specPage = await setupSpecPageWithLoc(\n {\n components: [Q2Option],\n html: '<q2-option>tecton.element.option.test</q2-option>',\n },\n testStringsDict\n );\n optionClass = specPage.rootInstance;\n expect(optionClass.display).toBe('Option Text');\n });\n });\n it('fires handleTextContent() when multiline is not provided', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option display=\"Option Text\"></q2-option>',\n });\n optionClass = specPage.rootInstance;\n const handleTextContentSpy = jest.spyOn(optionClass, 'handleTextContent');\n optionClass.initDisplay();\n await specPage.waitForChanges();\n expect(handleTextContentSpy).toHaveBeenCalled();\n });\n });\n describe('mutationHandler', () => {\n it('if display matches textContent it does not change display value', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option display=\"Option Text\"></q2-option>',\n });\n optionClass = specPage.rootInstance;\n optionElement = specPage.root;\n const displayChangedSpy = jest.spyOn(optionClass.displayChanged, 'emit');\n optionElement.textContent = 'Option Text';\n await specPage.waitForChanges();\n expect(optionClass.display).toBe('Option Text');\n expect(displayChangedSpy).not.toHaveBeenCalled();\n });\n it('sets the value of display if it was not provided at init', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option></q2-option>',\n });\n optionClass = specPage.rootInstance;\n optionElement = specPage.root;\n optionElement.textContent = 'Option Text';\n optionClass.mutationHandler();\n await specPage.waitForChanges();\n expect(optionClass.display).toBe('Option Text');\n });\n });\n });\n});\n"]}
1
+ {"version":3,"file":"q2-option-test.spec.js","sourceRoot":"","sources":["../../../../../src/components/q2-option/test/q2-option-test.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { SpecPage } from '@stencil/core/testing';\nimport { setupSpecPageWithLoc } from '@/utils/helpers';\nimport { Q2Option } from '../q2-option';\nimport { Q2Loc } from '@/components/q2-loc/q2-loc';\n\ndescribe('q2-option', () => {\n let specPage: SpecPage;\n let optionClass;\n let optionElement;\n const testStringsDict = {\n 'tecton.element.option.test': 'Option Text',\n 'tecton.element.option.changed': 'Option Changed',\n 'tecton.element.loc.test': 'Loc Text',\n };\n\n describe('Initialization', () => {\n it('renders with default attributes', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option></q2-option>',\n });\n optionClass = specPage.rootInstance;\n optionElement = specPage.root;\n\n expect(optionClass).toBeTruthy();\n expect(optionClass._multiSelectHidden).toBeFalsy();\n expect(optionClass.active).toBeFalsy();\n expect(optionClass.disabled).toBeFalsy();\n expect(optionClass.disabledGroup).toBeFalsy();\n expect(optionClass.display).toBe('');\n expect(optionClass.multiline).toBeFalsy();\n expect(optionClass.role).toBe('option');\n expect(optionClass.selected).toBeFalsy();\n expect(optionClass.value).toBeFalsy();\n expect(optionElement).toBeTruthy();\n expect(optionElement.getAttribute('tabindex')).toBe('-1');\n expect(optionElement.getAttribute('aria-disabled')).toBeFalsy();\n expect(optionElement.getAttribute('aria-selected')).toBe('false');\n expect(optionElement.getAttribute('aria-hidden')).toBeFalsy();\n });\n });\n\n describe('Props', () => {\n describe('_multiSelectHidden', () => {\n describe('when provided', () => {\n it('sets aria-hidden to true', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option _multiSelectHidden></q2-option>',\n });\n optionElement = specPage.root;\n expect(optionElement.getAttribute('aria-hidden')).toBe('true');\n });\n });\n describe('when not provided', () => {\n it('sets aria-hidden to false', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option></q2-option>',\n });\n optionElement = specPage.root;\n expect(optionElement.getAttribute('aria-hidden')).toBeFalsy();\n });\n });\n });\n describe('active', () => {\n describe('when provided', () => {\n it('sets the property to true', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option active></q2-option>',\n });\n optionClass = specPage.rootInstance;\n expect(optionClass.active).toBe(true);\n });\n it('sets the property to false', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option active=\"false\"></q2-option>',\n });\n optionClass = specPage.rootInstance;\n expect(optionClass.active).toBe(false);\n });\n });\n describe('when not provided', () => {\n it('sets the property to undefined', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option></q2-option>',\n });\n optionClass = specPage.rootInstance;\n expect(optionClass.active).toBeUndefined();\n });\n });\n });\n describe('disabled', () => {\n describe('when provided', () => {\n describe('when true', () => {\n it('sets aria-disabled to true', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option disabled></q2-option>',\n });\n optionElement = specPage.root;\n expect(optionElement.getAttribute('aria-disabled')).toBe('true');\n });\n });\n describe('when false', () => {\n it('does not set the aria-disabled attribute', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option disabled=\"false\"></q2-option>',\n });\n optionElement = specPage.root;\n expect(optionElement.getAttribute('aria-disabled')).toBeNull();\n });\n });\n });\n describe('when not provided', () => {\n it('does not set the aria-disabled attribute', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option></q2-option>',\n });\n optionElement = specPage.root;\n expect(optionElement.getAttribute('aria-disabled')).toBeNull();\n });\n });\n });\n describe('disabledGroup', () => {\n describe('when provided', () => {\n describe('when true', () => {\n it('sets aria-disabled to true', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option disabled-group></q2-option>',\n });\n optionElement = specPage.root;\n expect(optionElement.getAttribute('aria-disabled')).toBe('true');\n });\n });\n describe('when false', () => {\n it('does not set the aria-disabled attribute', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option disabled-group=\"false\"></q2-option>',\n });\n optionElement = specPage.root;\n expect(optionElement.getAttribute('aria-disabled')).toBeNull();\n });\n });\n });\n describe('when not provided', () => {\n it('does not set the aria-disabled attribute', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option></q2-option>',\n });\n optionElement = specPage.root;\n expect(optionElement.getAttribute('aria-disabled')).toBeNull();\n });\n });\n });\n describe('display', () => {\n describe('when provided', () => {\n it('sets the value of the display property', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option display=\"My Display\"></q2-option>',\n });\n optionClass = specPage.rootInstance;\n optionElement = specPage.root;\n expect(optionClass.display).toBe('My Display');\n expect(optionElement.display).toBe('My Display');\n });\n it('translates the provided value', async () => {\n specPage = await setupSpecPageWithLoc(\n {\n components: [Q2Option],\n html: '<q2-option display=\"tecton.element.option.test\"></q2-option>',\n },\n testStringsDict\n );\n optionClass = specPage.rootInstance;\n optionElement = specPage.root;\n expect(optionClass.display).toBe('Option Text');\n expect(optionElement.display).toBe('Option Text');\n });\n it('stays the source of truth if textContent changes', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option display=\"My Display\">Option Text</q2-option>',\n });\n optionClass = specPage.rootInstance;\n optionElement = specPage.root;\n optionElement.textContent = 'Option Text Changed';\n await specPage.waitForChanges();\n expect(optionClass.display).toBe('My Display');\n expect(optionElement.display).toBe('My Display');\n });\n });\n describe('when not provided', () => {\n it('sets display to an empty string', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option></q2-option>',\n });\n optionElement = specPage.root;\n expect(optionElement.display).toBe('');\n });\n it('it sets display to the textContent of the element', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option>Option Text</q2-option>',\n });\n optionElement = specPage.root;\n expect(optionElement.display).toBe('Option Text');\n });\n });\n });\n describe('multiline', () => {\n describe('when provided', () => {\n it('prevents initDisplay() from setting display to textContent', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option multiline>Option Text</q2-option>',\n });\n optionElement = specPage.root;\n expect(optionElement.display).toBeUndefined();\n });\n it('prevents setTextContent() from setting textContent to display', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option multiline display=\"Option Text\"></q2-option>',\n });\n optionElement = specPage.root;\n expect(optionElement.textContent).toBe('');\n });\n });\n describe('when not provided', () => {\n it('does not short circuit the initDisplay() local method', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option>Option Text</q2-option>',\n });\n optionElement = specPage.root;\n expect(optionElement.display).toBe('Option Text');\n });\n it('does not short circuit the setTextContent() local method', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option display=\"Option Text\"></q2-option>',\n });\n optionElement = specPage.root;\n expect(optionElement.textContent).toBe('Option Text');\n });\n });\n });\n describe('role', () => {\n describe('when provided', () => {\n it('sets the role property to the provided value', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option role=\"listitem\"></q2-option>',\n });\n optionClass = specPage.rootInstance;\n expect(optionClass.role).toBe('listitem');\n });\n });\n describe('when not provided', () => {\n it('defaults to \"option\"', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option></q2-option>',\n });\n optionClass = specPage.rootInstance;\n expect(optionClass.role).toBe('option');\n });\n });\n });\n describe('selected', () => {\n describe('when provided', () => {\n it('sets aria-selected to true', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option selected></q2-option>',\n });\n optionElement = specPage.root;\n const iconElement = optionElement.shadowRoot.querySelector('q2-icon[type=\"checkmark\"]');\n expect(optionElement.getAttribute('aria-selected')).toBe('true');\n expect(iconElement).toBeTruthy();\n });\n });\n describe('when not provided', () => {\n it('sets aria-selected to false', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option></q2-option>',\n });\n optionElement = specPage.root;\n const iconElement = optionElement.shadowRoot.querySelector('q2-icon[type=\"checkmark\"]');\n expect(optionElement.getAttribute('aria-selected')).toBe('false');\n expect(iconElement).toBeNull();\n });\n });\n });\n describe('separator', () => {\n describe('when provided', () => {\n it('renders an element with a class of separator', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option separator></q2-option>',\n });\n expect(specPage.root.shadowRoot.querySelector('.separator')).toBeTruthy();\n expect(specPage.root.role).toBe('separator');\n });\n });\n describe('when not provided', () => {\n it('does not render an element with a class of separator', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option></q2-option>',\n });\n expect(specPage.root.shadowRoot.querySelector('.separator')).toBeNull();\n expect(specPage.root.role).toBe('option');\n });\n });\n });\n describe('value', () => {\n describe('when provided', () => {\n it('sets the value property to the provided value', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option value=\"My Value\"></q2-option>',\n });\n optionClass = specPage.rootInstance;\n expect(optionClass.value).toBe('My Value');\n });\n });\n describe('when not provided', () => {\n it('defaults to undefined', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option></q2-option>',\n });\n optionClass = specPage.rootInstance;\n expect(optionClass.value).toBeUndefined();\n });\n });\n });\n });\n\n describe('Events', () => {\n describe('displayChanged', () => {\n it('emits the event when invoked', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option></q2-option>',\n });\n optionClass = specPage.rootInstance;\n optionElement = specPage.root;\n const displayChangedSpy = jest.spyOn(optionClass.displayChanged, 'emit');\n optionClass.displayChanged.emit();\n await specPage.waitForChanges();\n expect(displayChangedSpy).toHaveBeenCalled();\n });\n it('emits the event when display is changed', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option></q2-option>',\n });\n optionClass = specPage.rootInstance;\n optionElement = specPage.root;\n const displayChangedSpy = jest.spyOn(optionClass.displayChanged, 'emit');\n optionClass.display = 'Option Changed';\n await specPage.waitForChanges();\n expect(displayChangedSpy).toHaveBeenCalled();\n });\n it('event detail contains the display and value props', async () => {\n specPage = await setupSpecPageWithLoc(\n { components: [Q2Option], html: '<q2-option value=\"My Value\" display=\"Option Text\"></q2-option>' },\n testStringsDict\n );\n optionClass = specPage.rootInstance;\n optionElement = specPage.root;\n const displayChangedSpy = jest.spyOn(optionClass.displayChanged, 'emit');\n optionClass.display = 'Option Changed';\n await specPage.waitForChanges();\n expect(displayChangedSpy).toHaveBeenCalled();\n expect(displayChangedSpy).toHaveBeenCalledWith({\n display: 'Option Changed',\n value: 'My Value',\n });\n });\n it('emits when no display provided and textContent changes', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option></q2-option>',\n });\n optionClass = specPage.rootInstance;\n optionElement = specPage.root;\n const displayChangedSpy = jest.spyOn(optionClass.displayChanged, 'emit');\n optionElement.textContent = 'Option Text Changed';\n await specPage.waitForChanges();\n optionClass.mutationHandler();\n await specPage.waitForChanges();\n expect(displayChangedSpy).toHaveBeenCalledWith({\n display: 'Option Text Changed',\n value: undefined,\n });\n });\n it('does not emit if textContent changes and display was already provided', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option display=\"Option Text\"></q2-option>',\n });\n optionClass = specPage.rootInstance;\n optionElement = specPage.root;\n const displayChangedSpy = jest.spyOn(optionClass.displayChanged, 'emit');\n optionElement.textContent = 'Option Text Changed';\n optionClass.mutationHandler();\n expect(displayChangedSpy).not.toHaveBeenCalled();\n });\n });\n });\n\n describe('Lifecycle Methods', () => {\n describe('componentWillLoad', () => {\n it('calls separatorChangedHandler() with value of separator', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option></q2-option>',\n });\n optionClass = specPage.rootInstance;\n const separatorChangedHandlerSpy = jest.spyOn(optionClass, 'separatorChangedHandler');\n optionClass.componentWillLoad();\n expect(separatorChangedHandlerSpy).toHaveBeenCalledWith(optionClass.separator);\n });\n it('calls initDisplay()', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option></q2-option>',\n });\n optionClass = specPage.rootInstance;\n const initDisplaySpy = jest.spyOn(optionClass, 'initDisplay');\n optionClass.componentWillLoad();\n expect(initDisplaySpy).toHaveBeenCalled();\n });\n });\n describe('componentDidLoad', () => {\n it('calls initMutationObserver()', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option></q2-option>',\n });\n optionClass = specPage.rootInstance;\n const initMutationObserverSpy = jest.spyOn(optionClass, 'initMutationObserver');\n optionClass.componentDidLoad();\n expect(initMutationObserverSpy).toHaveBeenCalled();\n });\n });\n });\n\n describe('Watchers', () => {\n describe('display', () => {\n it('translates the new display value', async () => {\n specPage = await setupSpecPageWithLoc(\n {\n components: [Q2Option],\n html: '<q2-option display=\"tecton.element.option.test\"></q2-option>',\n },\n testStringsDict\n );\n optionClass = specPage.rootInstance;\n optionElement = specPage.root;\n expect(optionElement.display).toBe('Option Text');\n optionClass.display = 'tecton.element.option.changed';\n expect(optionElement.display).toBe('Option Changed');\n });\n it('triggers setTextContent() local method', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option display=\"Option Text\"></q2-option>',\n });\n optionClass = specPage.rootInstance;\n const setTextContentSpy = jest.spyOn(optionClass, 'setTextContent');\n optionClass.display = 'New Display Text';\n await specPage.waitForChanges();\n expect(setTextContentSpy).toHaveBeenCalled();\n });\n it('emits the displayChanged event with the a translated display value', async () => {\n specPage = await setupSpecPageWithLoc(\n {\n components: [Q2Option],\n html: '<q2-option value=\"My Value\" display=\"Option Text\"></q2-option>',\n },\n testStringsDict\n );\n optionClass = specPage.rootInstance;\n const displayChangedSpy = jest.spyOn(optionClass.displayChanged, 'emit');\n optionClass.display = 'tecton.element.option.changed';\n await specPage.waitForChanges();\n expect(displayChangedSpy).toHaveBeenCalledWith({\n display: 'Option Changed',\n value: 'My Value',\n });\n });\n });\n });\n\n describe('Local Methods', () => {\n describe('setTextContent', () => {\n describe('when mulitline is falsy and NOT using q2-loc element', () => {\n it('sets the hostElement textContent to the translated display prop', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option display=\"Option Text\"></q2-option>',\n });\n optionClass = specPage.rootInstance;\n optionElement = specPage.root;\n optionClass.setTextContent();\n await specPage.waitForChanges();\n expect(optionElement.textContent).toBe('Option Text');\n });\n });\n describe('when used with mulitiline', () => {\n it('does not set the hostElement textContent to the translated display prop', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option display=\"Option Text\" multiline></q2-option>',\n });\n optionClass = specPage.rootInstance;\n optionElement = specPage.root;\n optionClass.setTextContent();\n await specPage.waitForChanges();\n expect(optionElement.textContent).toBe('');\n });\n });\n describe('when used with a q2-loc element', () => {\n it('does not set the hostElement textContent to the translated display prop', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option display=\"Option Text\"><q2-loc>My Loc Text</q2-loc></q2-option>',\n });\n optionClass = specPage.rootInstance;\n optionElement = specPage.root;\n optionClass.setTextContent();\n await specPage.waitForChanges();\n expect(optionElement.textContent).toBe('My Loc Text');\n });\n });\n });\n describe('initDisplay', () => {\n describe('when display is provided', () => {\n it('sets displayProvidedAtInit to true', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option display=\"Option Text\"></q2-option>',\n });\n optionClass = specPage.rootInstance;\n expect(optionClass.displayProvidedAtInit).toBe(true);\n });\n it('sets display to the provided value', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option display=\"Option Text\"></q2-option>',\n });\n optionClass = specPage.rootInstance;\n expect(optionClass.display).toBe('Option Text');\n });\n it('sets display to the translated value', async () => {\n specPage = await setupSpecPageWithLoc(\n {\n components: [Q2Option],\n html: '<q2-option display=\"tecton.element.option.test\"></q2-option>',\n },\n testStringsDict\n );\n optionClass = specPage.rootInstance;\n expect(optionClass.display).toBe('Option Text');\n });\n });\n describe('when display is not provided', () => {\n it('sets display to the textContent of the hostElement', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option>Option Text</q2-option>',\n });\n optionClass = specPage.rootInstance;\n expect(optionClass.display).toBe('Option Text');\n });\n it('sets display to the translated textContent of the hostElement', async () => {\n specPage = await setupSpecPageWithLoc(\n {\n components: [Q2Option],\n html: '<q2-option>tecton.element.option.test</q2-option>',\n },\n testStringsDict\n );\n optionClass = specPage.rootInstance;\n expect(optionClass.display).toBe('Option Text');\n });\n });\n it('fires setTextContent() when multiline is not provided', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option display=\"Option Text\"></q2-option>',\n });\n optionClass = specPage.rootInstance;\n const setTextContentSpy = jest.spyOn(optionClass, 'setTextContent');\n optionClass.initDisplay();\n await specPage.waitForChanges();\n expect(setTextContentSpy).toHaveBeenCalled();\n });\n });\n describe('mutationHandler', () => {\n it('if display matches textContent it does not change display value', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option display=\"Option Text\"></q2-option>',\n });\n optionClass = specPage.rootInstance;\n optionElement = specPage.root;\n const displayChangedSpy = jest.spyOn(optionClass.displayChanged, 'emit');\n optionElement.textContent = 'Option Text';\n await specPage.waitForChanges();\n expect(optionClass.display).toBe('Option Text');\n expect(displayChangedSpy).not.toHaveBeenCalled();\n });\n it('sets the value of display if it was not provided at init', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option],\n html: '<q2-option></q2-option>',\n });\n optionClass = specPage.rootInstance;\n optionElement = specPage.root;\n optionElement.textContent = 'Option Text';\n optionClass.mutationHandler();\n await specPage.waitForChanges();\n expect(optionClass.display).toBe('Option Text');\n });\n });\n });\n\n describe('Regression', () => {\n describe('q2-loc compatibility', () => {\n it('sets the display attribute to the textContent of the option element', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option, Q2Loc],\n html: '<q2-option>My Option <q2-loc>Loc Text</q2-loc></q2-option>',\n });\n optionClass = specPage.rootInstance;\n optionElement = specPage.root;\n expect(optionClass.display).toBe(optionElement.textContent);\n });\n it('renders the combined texts as textContent', async () => {\n specPage = await setupSpecPageWithLoc({\n components: [Q2Option, Q2Loc],\n html: '<q2-option>My Option <q2-loc>Loc Text</q2-loc></q2-option>',\n });\n optionClass = specPage.rootInstance;\n optionElement = specPage.root;\n expect(optionElement.textContent).toBe('My Option Loc Text');\n });\n it('sets the display attribute to the translated q2-loc', async () => {\n specPage = await setupSpecPageWithLoc(\n {\n components: [Q2Option, Q2Loc],\n html: '<q2-option><q2-loc>tecton.element.loc.test</q2-loc></q2-option>',\n },\n testStringsDict\n );\n optionClass = specPage.rootInstance;\n expect(optionClass.display).toBe('Loc Text');\n });\n it('sets the textContent to the translated q2-loc', async () => {\n specPage = await setupSpecPageWithLoc(\n {\n components: [Q2Option, Q2Loc],\n html: '<q2-option><q2-loc>tecton.element.loc.test</q2-loc></q2-option>',\n },\n testStringsDict\n );\n optionElement = specPage.root;\n expect(optionElement.textContent).toBe('Loc Text');\n });\n it('sets the display attribute to the translated q2-loc value attribute', async () => {\n specPage = await setupSpecPageWithLoc(\n {\n components: [Q2Option, Q2Loc],\n html: '<q2-option><q2-loc value=\"tecton.element.loc.test\"></q2-loc></q2-option>',\n },\n testStringsDict\n );\n optionClass = specPage.rootInstance;\n expect(optionClass.display).toBe('Loc Text');\n });\n it('sets the textContent to the translated q2-loc value attribute', async () => {\n specPage = await setupSpecPageWithLoc(\n {\n components: [Q2Option, Q2Loc],\n html: '<q2-option><q2-loc value=\"tecton.element.loc.test\"></q2-loc></q2-option>',\n },\n testStringsDict\n );\n optionElement = specPage.root;\n expect(optionElement.textContent).toBe('Loc Text');\n });\n });\n });\n});\n"]}