q2-tecton-elements 1.53.0 → 1.53.2

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 (442) hide show
  1. package/dist/cjs/click-elsewhere_2.cjs.entry.js +64 -61
  2. package/dist/cjs/click-elsewhere_2.cjs.entry.js.map +1 -1
  3. package/dist/cjs/{index-07285783.js → index-76f63767.js} +1 -21
  4. package/dist/cjs/index-76f63767.js.map +1 -0
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/q2-action-group.cjs.entry.js +2 -2
  7. package/dist/cjs/q2-action-sheet.cjs.entry.js +2 -2
  8. package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
  9. package/dist/cjs/q2-badge_7.cjs.entry.js +12 -4
  10. package/dist/cjs/q2-badge_7.cjs.entry.js.map +1 -1
  11. package/dist/cjs/q2-calendar.cjs.entry.js +1 -1
  12. package/dist/cjs/q2-card.cjs.entry.js +1 -1
  13. package/dist/cjs/q2-carousel-pane.cjs.entry.js +3 -3
  14. package/dist/cjs/q2-carousel.cjs.entry.js +1 -1
  15. package/dist/cjs/q2-chart-area.cjs.entry.js +2 -2
  16. package/dist/cjs/q2-chart-bar.cjs.entry.js +2 -2
  17. package/dist/cjs/q2-chart-donut.cjs.entry.js +2 -2
  18. package/dist/cjs/q2-checkbox-group.cjs.entry.js +1 -1
  19. package/dist/cjs/q2-checkbox.cjs.entry.js +1 -1
  20. package/dist/cjs/q2-currency.cjs.entry.js +1 -1
  21. package/dist/cjs/q2-data-table.cjs.entry.js +1 -1
  22. package/dist/cjs/q2-detail.cjs.entry.js +2 -2
  23. package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
  24. package/dist/cjs/q2-dropdown.cjs.entry.js +10 -12
  25. package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
  26. package/dist/cjs/q2-editable-field.cjs.entry.js +7 -8
  27. package/dist/cjs/q2-editable-field.cjs.entry.js.map +1 -1
  28. package/dist/cjs/q2-example.cjs.entry.js +1 -1
  29. package/dist/cjs/q2-file-picker.cjs.entry.js +1 -1
  30. package/dist/cjs/q2-formatted-text.cjs.entry.js +1 -1
  31. package/dist/cjs/q2-item_3.cjs.entry.js +3 -3
  32. package/dist/cjs/q2-legend.cjs.entry.js +1 -1
  33. package/dist/cjs/q2-loc.cjs.entry.js +2 -2
  34. package/dist/cjs/q2-message.cjs.entry.js +2 -2
  35. package/dist/cjs/q2-month-picker.cjs.entry.js +3 -3
  36. package/dist/cjs/q2-optgroup.cjs.entry.js +2 -2
  37. package/dist/cjs/q2-option-list.cjs.entry.js +1 -1
  38. package/dist/cjs/q2-option.cjs.entry.js +2 -2
  39. package/dist/cjs/q2-pagination.cjs.entry.js +4 -4
  40. package/dist/cjs/q2-pill.cjs.entry.js +2 -2
  41. package/dist/cjs/q2-radio-group.cjs.entry.js +1 -1
  42. package/dist/cjs/q2-radio.cjs.entry.js +1 -1
  43. package/dist/cjs/q2-relative-time.cjs.entry.js +2 -2
  44. package/dist/cjs/q2-resize-observer.cjs.entry.js +1 -1
  45. package/dist/cjs/q2-section.cjs.entry.js +3 -3
  46. package/dist/cjs/q2-select.cjs.entry.js +89 -13
  47. package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
  48. package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
  49. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +2 -2
  50. package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
  51. package/dist/cjs/q2-tag.cjs.entry.js +2 -2
  52. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  53. package/dist/cjs/q2-textarea.cjs.entry.js +3 -2
  54. package/dist/cjs/q2-textarea.cjs.entry.js.map +1 -1
  55. package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
  56. package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
  57. package/dist/collection/components/click-elsewhere/click-elsewhere.js.map +1 -1
  58. package/dist/collection/components/click-elsewhere/test/click-elsewhere-test.e2e.js.map +1 -1
  59. package/dist/collection/components/q2-action-group/q2-action-group.js +1 -1
  60. package/dist/collection/components/q2-action-group/q2-action-group.js.map +1 -1
  61. package/dist/collection/components/q2-action-group/test/q2-action-group.e2e.js.map +1 -1
  62. package/dist/collection/components/q2-action-group/test/q2-action-group.spec.js.map +1 -1
  63. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +1 -1
  64. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js.map +1 -1
  65. package/dist/collection/components/q2-action-sheet/test/q2-action-sheet-test.e2e.js.map +1 -1
  66. package/dist/collection/components/q2-avatar/q2-avatar.js +1 -1
  67. package/dist/collection/components/q2-avatar/q2-avatar.js.map +1 -1
  68. package/dist/collection/components/q2-avatar/test/q2-avatar-test.e2e.js.map +1 -1
  69. package/dist/collection/components/q2-badge/q2-badge.js.map +1 -1
  70. package/dist/collection/components/q2-badge/test/q2-badge-test.e2e.js.map +1 -1
  71. package/dist/collection/components/q2-btn/q2-btn.js +4 -0
  72. package/dist/collection/components/q2-btn/q2-btn.js.map +1 -1
  73. package/dist/collection/components/q2-btn/test/q2-btn-test.e2e.js.map +1 -1
  74. package/dist/collection/components/q2-calendar/q2-calendar-helpers.js.map +1 -1
  75. package/dist/collection/components/q2-calendar/q2-calendar-types.js.map +1 -1
  76. package/dist/collection/components/q2-calendar/q2-calendar-validation.js.map +1 -1
  77. package/dist/collection/components/q2-calendar/q2-calendar.js.map +1 -1
  78. package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
  79. package/dist/collection/components/q2-calendar/q2-month-picker.js.map +1 -1
  80. package/dist/collection/components/q2-calendar/test/helpers-test.e2e.js.map +1 -1
  81. package/dist/collection/components/q2-calendar/test/q2-calendar-month-picker-test.e2e.js.map +1 -1
  82. package/dist/collection/components/q2-calendar/test/q2-calendar-test.e2e.js +2 -2
  83. package/dist/collection/components/q2-calendar/test/q2-calendar-test.e2e.js.map +1 -1
  84. package/dist/collection/components/q2-calendar/test/validation-test.e2e.js.map +1 -1
  85. package/dist/collection/components/q2-card/q2-card.js.map +1 -1
  86. package/dist/collection/components/q2-card/test/q2-card-test.e2e.js.map +1 -1
  87. package/dist/collection/components/q2-carousel/q2-carousel.js.map +1 -1
  88. package/dist/collection/components/q2-carousel/test/q2-carousel-test.e2e.js.map +1 -1
  89. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +2 -2
  90. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js.map +1 -1
  91. package/dist/collection/components/q2-carousel-pane/test/q2-carousel-pane-test.e2e.js.map +1 -1
  92. package/dist/collection/components/q2-carousel-pane/test/q2-carousel-pane-test.spec.js.map +1 -1
  93. package/dist/collection/components/q2-chart-area/q2-chart-area.js +1 -1
  94. package/dist/collection/components/q2-chart-area/q2-chart-area.js.map +1 -1
  95. package/dist/collection/components/q2-chart-area/test/q2-chart-area-test.e2e.js.map +1 -1
  96. package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +1 -1
  97. package/dist/collection/components/q2-chart-bar/q2-chart-bar.js.map +1 -1
  98. package/dist/collection/components/q2-chart-bar/test/q2-chart-bar-test.e2e.js.map +1 -1
  99. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +1 -1
  100. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js.map +1 -1
  101. package/dist/collection/components/q2-chart-donut/test/q2-chart-donut-test.e2e.js.map +1 -1
  102. package/dist/collection/components/q2-checkbox/q2-checkbox.js.map +1 -1
  103. package/dist/collection/components/q2-checkbox/test/q2-checkbox-test.e2e.js.map +1 -1
  104. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js.map +1 -1
  105. package/dist/collection/components/q2-checkbox-group/test/q2-checkbox-group-test.e2e.js.map +1 -1
  106. package/dist/collection/components/q2-currency/q2-currency.js +1 -1
  107. package/dist/collection/components/q2-currency/q2-currency.js.map +1 -1
  108. package/dist/collection/components/q2-currency/test/q2-currency-test.e2e.js.map +1 -1
  109. package/dist/collection/components/q2-data-table/q2-data-table.js.map +1 -1
  110. package/dist/collection/components/q2-data-table/test/q2-data-table-test.e2e.js.map +1 -1
  111. package/dist/collection/components/q2-detail/q2-detail.js +1 -1
  112. package/dist/collection/components/q2-detail/q2-detail.js.map +1 -1
  113. package/dist/collection/components/q2-detail/test/q2-detail-test.e2e.js.map +1 -1
  114. package/dist/collection/components/q2-dropdown/q2-dropdown.js +9 -11
  115. package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
  116. package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js +5 -17
  117. package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js.map +1 -1
  118. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js.map +1 -1
  119. package/dist/collection/components/q2-dropdown-item/test/q2-dropdown-item-test.e2e.js.map +1 -1
  120. package/dist/collection/components/q2-editable-field/q2-editable-field.js +12 -7
  121. package/dist/collection/components/q2-editable-field/q2-editable-field.js.map +1 -1
  122. package/dist/collection/components/q2-editable-field/test/q2-editable-field-test.e2e.js.map +1 -1
  123. package/dist/collection/components/q2-example/q2-example.js +1 -1
  124. package/dist/collection/components/q2-example/q2-example.js.map +1 -1
  125. package/dist/collection/components/q2-example/test/q2-example.e2e.js.map +1 -1
  126. package/dist/collection/components/q2-example/test/q2-example.spec.js.map +1 -1
  127. package/dist/collection/components/q2-file-picker/q2-file-picker.js.map +1 -1
  128. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.e2e.js.map +1 -1
  129. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.spec.js.map +1 -1
  130. package/dist/collection/components/q2-formatted-text/q2-formatted-text.js +1 -1
  131. package/dist/collection/components/q2-formatted-text/q2-formatted-text.js.map +1 -1
  132. package/dist/collection/components/q2-formatted-text/test/q2-formatted-text-test.e2e.js.map +1 -1
  133. package/dist/collection/components/q2-icon/q2-icon-types.js.map +1 -1
  134. package/dist/collection/components/q2-icon/q2-icon.js +4 -0
  135. package/dist/collection/components/q2-icon/q2-icon.js.map +1 -1
  136. package/dist/collection/components/q2-icon/test/q2-icon-test.e2e.js.map +1 -1
  137. package/dist/collection/components/q2-input/formatting/alpha.js.map +1 -1
  138. package/dist/collection/components/q2-input/formatting/alpha.spec.js.map +1 -1
  139. package/dist/collection/components/q2-input/formatting/alphanumeric.js.map +1 -1
  140. package/dist/collection/components/q2-input/formatting/alphanumeric.spec.js.map +1 -1
  141. package/dist/collection/components/q2-input/formatting/credit-card.js.map +1 -1
  142. package/dist/collection/components/q2-input/formatting/credit-card.spec.js.map +1 -1
  143. package/dist/collection/components/q2-input/formatting/currency.js.map +1 -1
  144. package/dist/collection/components/q2-input/formatting/currency.spec.js.map +1 -1
  145. package/dist/collection/components/q2-input/formatting/date.js.map +1 -1
  146. package/dist/collection/components/q2-input/formatting/date.spec.js.map +1 -1
  147. package/dist/collection/components/q2-input/formatting/generic.js.map +1 -1
  148. package/dist/collection/components/q2-input/formatting/number.js.map +1 -1
  149. package/dist/collection/components/q2-input/formatting/numeric.js.map +1 -1
  150. package/dist/collection/components/q2-input/formatting/numeric.spec.js.map +1 -1
  151. package/dist/collection/components/q2-input/formatting/phone.js.map +1 -1
  152. package/dist/collection/components/q2-input/formatting/phone.spec.js.map +1 -1
  153. package/dist/collection/components/q2-input/formatting/postal.js.map +1 -1
  154. package/dist/collection/components/q2-input/formatting/postal.spec.js.map +1 -1
  155. package/dist/collection/components/q2-input/formatting/ssn.js.map +1 -1
  156. package/dist/collection/components/q2-input/formatting/ssn.spec.js.map +1 -1
  157. package/dist/collection/components/q2-input/formatting/tin.js.map +1 -1
  158. package/dist/collection/components/q2-input/formatting/tin.spec.js.map +1 -1
  159. package/dist/collection/components/q2-input/q2-input-types.js.map +1 -1
  160. package/dist/collection/components/q2-input/q2-input.js +1 -1
  161. package/dist/collection/components/q2-input/q2-input.js.map +1 -1
  162. package/dist/collection/components/q2-input/test/q2-input-credit-card-test.e2e.js.map +1 -1
  163. package/dist/collection/components/q2-input/test/q2-input-test.e2e.js.map +1 -1
  164. package/dist/collection/components/q2-input/test/q2-input-test.spec.js.map +1 -1
  165. package/dist/collection/components/q2-item/q2-item.js +1 -1
  166. package/dist/collection/components/q2-item/q2-item.js.map +1 -1
  167. package/dist/collection/components/q2-item/test/q2-item-test.e2e.js.map +1 -1
  168. package/dist/collection/components/q2-item/test/q2-item-test.spec.js.map +1 -1
  169. package/dist/collection/components/q2-legend/q2-legend.js +1 -1
  170. package/dist/collection/components/q2-legend/q2-legend.js.map +1 -1
  171. package/dist/collection/components/q2-legend/test/q2-legend-test.e2e.js.map +1 -1
  172. package/dist/collection/components/q2-legend/test/q2-legend-test.spec.js.map +1 -1
  173. package/dist/collection/components/q2-link/q2-link.js.map +1 -1
  174. package/dist/collection/components/q2-link/test/q2-link-test.e2e.js.map +1 -1
  175. package/dist/collection/components/q2-list/q2-list.js +1 -1
  176. package/dist/collection/components/q2-list/q2-list.js.map +1 -1
  177. package/dist/collection/components/q2-list/test/q2-list-test.e2e.js.map +1 -1
  178. package/dist/collection/components/q2-loading/q2-loading.js.map +1 -1
  179. package/dist/collection/components/q2-loading/skeleton/q2-loading-element/index.js.map +1 -1
  180. package/dist/collection/components/q2-loading/skeleton/shapes.js.map +1 -1
  181. package/dist/collection/components/q2-loading/test/q2-loading-element-test.e2e.js.map +1 -1
  182. package/dist/collection/components/q2-loading/test/q2-loading-test.e2e.js.map +1 -1
  183. package/dist/collection/components/q2-loc/q2-loc.js +1 -1
  184. package/dist/collection/components/q2-loc/q2-loc.js.map +1 -1
  185. package/dist/collection/components/q2-loc/test/q2-loc-test.e2e.js.map +1 -1
  186. package/dist/collection/components/q2-loc/test/q2-loc-test.spec.js.map +1 -1
  187. package/dist/collection/components/q2-message/q2-message.js +1 -1
  188. package/dist/collection/components/q2-message/q2-message.js.map +1 -1
  189. package/dist/collection/components/q2-message/test/q2-message-test.e2e.js.map +1 -1
  190. package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
  191. package/dist/collection/components/q2-optgroup/q2-optgroup.js.map +1 -1
  192. package/dist/collection/components/q2-optgroup/test/q2-optgroup-test.e2e.js.map +1 -1
  193. package/dist/collection/components/q2-option/q2-option.js +1 -1
  194. package/dist/collection/components/q2-option/q2-option.js.map +1 -1
  195. package/dist/collection/components/q2-option/test/q2-option-test.e2e.js.map +1 -1
  196. package/dist/collection/components/q2-option/test/q2-option-test.spec.js.map +1 -1
  197. package/dist/collection/components/q2-option-list/q2-option-list.js.map +1 -1
  198. package/dist/collection/components/q2-option-list/test/q2-option-list-test.e2e.js.map +1 -1
  199. package/dist/collection/components/q2-pagination/q2-pagination.js +3 -3
  200. package/dist/collection/components/q2-pagination/q2-pagination.js.map +1 -1
  201. package/dist/collection/components/q2-pagination/test/q2-pagination-test.e2e.js +1 -0
  202. package/dist/collection/components/q2-pagination/test/q2-pagination-test.e2e.js.map +1 -1
  203. package/dist/collection/components/q2-pill/q2-pill.js +1 -1
  204. package/dist/collection/components/q2-pill/q2-pill.js.map +1 -1
  205. package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js +1 -1
  206. package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js.map +1 -1
  207. package/dist/collection/components/q2-popover/q2-popover.css +18 -10
  208. package/dist/collection/components/q2-popover/q2-popover.js +64 -60
  209. package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
  210. package/dist/collection/components/q2-popover/test/q2-popover-test.e2e.js +1 -34
  211. package/dist/collection/components/q2-popover/test/q2-popover-test.e2e.js.map +1 -1
  212. package/dist/collection/components/q2-popover/test/q2-popover-test.spec.js +743 -435
  213. package/dist/collection/components/q2-popover/test/q2-popover-test.spec.js.map +1 -1
  214. package/dist/collection/components/q2-radio/q2-radio.js.map +1 -1
  215. package/dist/collection/components/q2-radio/test/q2-radio-test.e2e.js.map +1 -1
  216. package/dist/collection/components/q2-radio-group/q2-radio-group.js.map +1 -1
  217. package/dist/collection/components/q2-radio-group/test/q2-radio-group-test.e2e.js.map +1 -1
  218. package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
  219. package/dist/collection/components/q2-relative-time/q2-relative-time.js.map +1 -1
  220. package/dist/collection/components/q2-relative-time/test/q2-relative-time-test.e2e.js.map +1 -1
  221. package/dist/collection/components/q2-resize-observer/q2-resize-observer.js +1 -1
  222. package/dist/collection/components/q2-resize-observer/q2-resize-observer.js.map +1 -1
  223. package/dist/collection/components/q2-resize-observer/test/q2-resize-observer.e2e.js.map +1 -1
  224. package/dist/collection/components/q2-resize-observer/test/q2-resize-observer.spec.js.map +1 -1
  225. package/dist/collection/components/q2-section/q2-section.js +2 -2
  226. package/dist/collection/components/q2-section/q2-section.js.map +1 -1
  227. package/dist/collection/components/q2-section/test/q2-section-test.e2e.js.map +1 -1
  228. package/dist/collection/components/q2-select/q2-select.js +110 -15
  229. package/dist/collection/components/q2-select/q2-select.js.map +1 -1
  230. package/dist/collection/components/q2-select/test/q2-select-test.e2e.js +1 -1
  231. package/dist/collection/components/q2-select/test/q2-select-test.e2e.js.map +1 -1
  232. package/dist/collection/components/q2-select/test/q2-select-test.spec.js +412 -0
  233. package/dist/collection/components/q2-select/test/q2-select-test.spec.js.map +1 -0
  234. package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
  235. package/dist/collection/components/q2-stepper/q2-stepper.js.map +1 -1
  236. package/dist/collection/components/q2-stepper/test/q2-stepper-test.e2e.js.map +1 -1
  237. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js.map +1 -1
  238. package/dist/collection/components/q2-stepper-pane/test/q2-stepper-pane-test.e2e.js.map +1 -1
  239. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
  240. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js.map +1 -1
  241. package/dist/collection/components/q2-stepper-vertical/test/q2-stepper-vertical-test.e2e.js.map +1 -1
  242. package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
  243. package/dist/collection/components/q2-tab-container/q2-tab-container.js.map +1 -1
  244. package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.e2e.js.map +1 -1
  245. package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.spec.js.map +1 -1
  246. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
  247. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js.map +1 -1
  248. package/dist/collection/components/q2-tab-pane/test/q2-tab-pane-test.e2e.js.map +1 -1
  249. package/dist/collection/components/q2-tag/q2-tag.js +1 -1
  250. package/dist/collection/components/q2-tag/q2-tag.js.map +1 -1
  251. package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js +6 -1
  252. package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js.map +1 -1
  253. package/dist/collection/components/q2-textarea/q2-textarea.js +2 -1
  254. package/dist/collection/components/q2-textarea/q2-textarea.js.map +1 -1
  255. package/dist/collection/components/q2-textarea/test/q2-textarea-test.e2e.js.map +1 -1
  256. package/dist/collection/components/q2-tooltip/q2-tooltip.js.map +1 -1
  257. package/dist/collection/components/q2-tooltip/test/q2-tooltip-test.e2e.js.map +1 -1
  258. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane-types.js.map +1 -1
  259. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
  260. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js.map +1 -1
  261. package/dist/collection/components/tecton-tab-pane/test/tecton-tab-pane-test.e2e.js.map +1 -1
  262. package/dist/collection/index.js.map +1 -1
  263. package/dist/collection/utils/action-sheet.js.map +1 -1
  264. package/dist/collection/utils/charting.js.map +1 -1
  265. package/dist/collection/utils/helpers.js.map +1 -1
  266. package/dist/collection/utils/index.js.map +1 -1
  267. package/dist/collection/utils/sanitize-html-string.js.map +1 -1
  268. package/dist/collection/utils/sanitize-regex-string.js.map +1 -1
  269. package/dist/collection/utils/test/action-sheet-test.e2e.js.map +1 -1
  270. package/dist/collection/utils/test/index.spec.js.map +1 -1
  271. package/dist/components/index2.js +1 -20
  272. package/dist/components/index2.js.map +1 -1
  273. package/dist/components/q2-action-group.js +1 -1
  274. package/dist/components/q2-action-sheet.js +1 -1
  275. package/dist/components/q2-avatar2.js +1 -1
  276. package/dist/components/q2-btn2.js +4 -0
  277. package/dist/components/q2-btn2.js.map +1 -1
  278. package/dist/components/q2-carousel-pane.js +2 -2
  279. package/dist/components/q2-chart-area.js +1 -1
  280. package/dist/components/q2-chart-bar.js +1 -1
  281. package/dist/components/q2-chart-donut.js +1 -1
  282. package/dist/components/q2-currency.js +1 -1
  283. package/dist/components/q2-detail.js +1 -1
  284. package/dist/components/q2-dropdown.js +9 -11
  285. package/dist/components/q2-dropdown.js.map +1 -1
  286. package/dist/components/q2-editable-field.js +7 -8
  287. package/dist/components/q2-editable-field.js.map +1 -1
  288. package/dist/components/q2-example.js +1 -1
  289. package/dist/components/q2-formatted-text.js +1 -1
  290. package/dist/components/q2-icon2.js +4 -0
  291. package/dist/components/q2-icon2.js.map +1 -1
  292. package/dist/components/q2-input2.js +1 -1
  293. package/dist/components/q2-item2.js +1 -1
  294. package/dist/components/q2-legend2.js +1 -1
  295. package/dist/components/q2-list2.js +1 -1
  296. package/dist/components/q2-loc.js +1 -1
  297. package/dist/components/q2-message2.js +1 -1
  298. package/dist/components/q2-month-picker.js +2 -2
  299. package/dist/components/q2-optgroup2.js +1 -1
  300. package/dist/components/q2-option2.js +1 -1
  301. package/dist/components/q2-pagination.js +3 -3
  302. package/dist/components/q2-pill.js +1 -1
  303. package/dist/components/q2-popover2.js +63 -60
  304. package/dist/components/q2-popover2.js.map +1 -1
  305. package/dist/components/q2-relative-time.js +1 -1
  306. package/dist/components/q2-resize-observer2.js +1 -1
  307. package/dist/components/q2-section.js +2 -2
  308. package/dist/components/q2-select2.js +92 -16
  309. package/dist/components/q2-select2.js.map +1 -1
  310. package/dist/components/q2-stepper-vertical.js +1 -1
  311. package/dist/components/q2-stepper.js +1 -1
  312. package/dist/components/q2-tab-container.js +1 -1
  313. package/dist/components/q2-tab-pane.js +1 -1
  314. package/dist/components/q2-tag.js +1 -1
  315. package/dist/components/q2-textarea.js +2 -1
  316. package/dist/components/q2-textarea.js.map +1 -1
  317. package/dist/components/tecton-tab-pane.js +2 -2
  318. package/dist/esm/click-elsewhere_2.entry.js +64 -61
  319. package/dist/esm/click-elsewhere_2.entry.js.map +1 -1
  320. package/dist/esm/{index-d18e2a20.js → index-504f1a9e.js} +2 -21
  321. package/dist/esm/index-504f1a9e.js.map +1 -0
  322. package/dist/esm/loader.js +1 -1
  323. package/dist/esm/q2-action-group.entry.js +2 -2
  324. package/dist/esm/q2-action-sheet.entry.js +2 -2
  325. package/dist/esm/q2-avatar.entry.js +1 -1
  326. package/dist/esm/q2-badge_7.entry.js +12 -4
  327. package/dist/esm/q2-badge_7.entry.js.map +1 -1
  328. package/dist/esm/q2-calendar.entry.js +1 -1
  329. package/dist/esm/q2-card.entry.js +1 -1
  330. package/dist/esm/q2-carousel-pane.entry.js +3 -3
  331. package/dist/esm/q2-carousel.entry.js +1 -1
  332. package/dist/esm/q2-chart-area.entry.js +2 -2
  333. package/dist/esm/q2-chart-bar.entry.js +2 -2
  334. package/dist/esm/q2-chart-donut.entry.js +2 -2
  335. package/dist/esm/q2-checkbox-group.entry.js +1 -1
  336. package/dist/esm/q2-checkbox.entry.js +1 -1
  337. package/dist/esm/q2-currency.entry.js +1 -1
  338. package/dist/esm/q2-data-table.entry.js +1 -1
  339. package/dist/esm/q2-detail.entry.js +2 -2
  340. package/dist/esm/q2-dropdown-item.entry.js +1 -1
  341. package/dist/esm/q2-dropdown.entry.js +10 -12
  342. package/dist/esm/q2-dropdown.entry.js.map +1 -1
  343. package/dist/esm/q2-editable-field.entry.js +7 -8
  344. package/dist/esm/q2-editable-field.entry.js.map +1 -1
  345. package/dist/esm/q2-example.entry.js +1 -1
  346. package/dist/esm/q2-file-picker.entry.js +1 -1
  347. package/dist/esm/q2-formatted-text.entry.js +1 -1
  348. package/dist/esm/q2-item_3.entry.js +3 -3
  349. package/dist/esm/q2-legend.entry.js +1 -1
  350. package/dist/esm/q2-loc.entry.js +2 -2
  351. package/dist/esm/q2-message.entry.js +2 -2
  352. package/dist/esm/q2-month-picker.entry.js +3 -3
  353. package/dist/esm/q2-optgroup.entry.js +2 -2
  354. package/dist/esm/q2-option-list.entry.js +1 -1
  355. package/dist/esm/q2-option.entry.js +2 -2
  356. package/dist/esm/q2-pagination.entry.js +4 -4
  357. package/dist/esm/q2-pill.entry.js +2 -2
  358. package/dist/esm/q2-radio-group.entry.js +1 -1
  359. package/dist/esm/q2-radio.entry.js +1 -1
  360. package/dist/esm/q2-relative-time.entry.js +2 -2
  361. package/dist/esm/q2-resize-observer.entry.js +1 -1
  362. package/dist/esm/q2-section.entry.js +3 -3
  363. package/dist/esm/q2-select.entry.js +90 -14
  364. package/dist/esm/q2-select.entry.js.map +1 -1
  365. package/dist/esm/q2-stepper-pane.entry.js +1 -1
  366. package/dist/esm/q2-stepper-vertical.entry.js +2 -2
  367. package/dist/esm/q2-stepper.entry.js +2 -2
  368. package/dist/esm/q2-tag.entry.js +2 -2
  369. package/dist/esm/q2-tecton-elements.js +1 -1
  370. package/dist/esm/q2-textarea.entry.js +3 -2
  371. package/dist/esm/q2-textarea.entry.js.map +1 -1
  372. package/dist/esm/q2-tooltip.entry.js +1 -1
  373. package/dist/esm/tecton-tab-pane.entry.js +2 -2
  374. package/dist/jest.setup.js +22 -0
  375. package/dist/jest.setup.js.map +1 -0
  376. package/dist/q2-tecton-elements/click-elsewhere_2.entry.js +175 -163
  377. package/dist/q2-tecton-elements/click-elsewhere_2.entry.js.map +1 -1
  378. package/dist/q2-tecton-elements/{index-d18e2a20.js → index-504f1a9e.js} +51 -69
  379. package/dist/q2-tecton-elements/index-504f1a9e.js.map +1 -0
  380. package/dist/q2-tecton-elements/q2-action-group.entry.js +4 -4
  381. package/dist/q2-tecton-elements/q2-action-sheet.entry.js +34 -34
  382. package/dist/q2-tecton-elements/q2-avatar.entry.js +6 -6
  383. package/dist/q2-tecton-elements/q2-badge_7.entry.js +25 -17
  384. package/dist/q2-tecton-elements/q2-badge_7.entry.js.map +1 -1
  385. package/dist/q2-tecton-elements/q2-calendar.entry.js +1 -1
  386. package/dist/q2-tecton-elements/q2-card.entry.js +1 -1
  387. package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +21 -21
  388. package/dist/q2-tecton-elements/q2-carousel.entry.js +1 -1
  389. package/dist/q2-tecton-elements/q2-chart-area.entry.js +3 -3
  390. package/dist/q2-tecton-elements/q2-chart-bar.entry.js +3 -3
  391. package/dist/q2-tecton-elements/q2-chart-donut.entry.js +101 -101
  392. package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +1 -1
  393. package/dist/q2-tecton-elements/q2-checkbox.entry.js +1 -1
  394. package/dist/q2-tecton-elements/q2-currency.entry.js +6 -6
  395. package/dist/q2-tecton-elements/q2-data-table.entry.js +1 -1
  396. package/dist/q2-tecton-elements/q2-detail.entry.js +39 -39
  397. package/dist/q2-tecton-elements/q2-dropdown-item.entry.js +1 -1
  398. package/dist/q2-tecton-elements/q2-dropdown.entry.js +14 -16
  399. package/dist/q2-tecton-elements/q2-dropdown.entry.js.map +1 -1
  400. package/dist/q2-tecton-elements/q2-editable-field.entry.js +27 -18
  401. package/dist/q2-tecton-elements/q2-editable-field.entry.js.map +1 -1
  402. package/dist/q2-tecton-elements/q2-example.entry.js +1 -1
  403. package/dist/q2-tecton-elements/q2-file-picker.entry.js +1 -1
  404. package/dist/q2-tecton-elements/q2-formatted-text.entry.js +2 -2
  405. package/dist/q2-tecton-elements/q2-item_3.entry.js +19 -19
  406. package/dist/q2-tecton-elements/q2-legend.entry.js +2 -2
  407. package/dist/q2-tecton-elements/q2-loc.entry.js +5 -5
  408. package/dist/q2-tecton-elements/q2-message.entry.js +21 -21
  409. package/dist/q2-tecton-elements/q2-month-picker.entry.js +14 -14
  410. package/dist/q2-tecton-elements/q2-optgroup.entry.js +8 -8
  411. package/dist/q2-tecton-elements/q2-option-list.entry.js +1 -1
  412. package/dist/q2-tecton-elements/q2-option.entry.js +14 -14
  413. package/dist/q2-tecton-elements/q2-pagination.entry.js +34 -34
  414. package/dist/q2-tecton-elements/q2-pill.entry.js +14 -14
  415. package/dist/q2-tecton-elements/q2-radio-group.entry.js +1 -1
  416. package/dist/q2-tecton-elements/q2-radio.entry.js +1 -1
  417. package/dist/q2-tecton-elements/q2-relative-time.entry.js +2 -2
  418. package/dist/q2-tecton-elements/q2-resize-observer.entry.js +1 -1
  419. package/dist/q2-tecton-elements/q2-section.entry.js +19 -19
  420. package/dist/q2-tecton-elements/q2-select.entry.js +156 -92
  421. package/dist/q2-tecton-elements/q2-select.entry.js.map +1 -1
  422. package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +1 -1
  423. package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +37 -37
  424. package/dist/q2-tecton-elements/q2-stepper.entry.js +29 -29
  425. package/dist/q2-tecton-elements/q2-tag.entry.js +25 -25
  426. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  427. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
  428. package/dist/q2-tecton-elements/q2-textarea.entry.js +4 -3
  429. package/dist/q2-tecton-elements/q2-textarea.entry.js.map +1 -1
  430. package/dist/q2-tecton-elements/q2-tooltip.entry.js +1 -1
  431. package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +6 -6
  432. package/dist/types/builds/q2e/development/tecton/tecton/packages/q2-tecton-elements/.stencil/jest.setup.d.ts +1 -0
  433. package/dist/types/components/q2-btn/q2-btn.d.ts +1 -0
  434. package/dist/types/components/q2-dropdown/q2-dropdown.d.ts +1 -4
  435. package/dist/types/components/q2-editable-field/q2-editable-field.d.ts +2 -1
  436. package/dist/types/components/q2-icon/q2-icon.d.ts +1 -0
  437. package/dist/types/components/q2-popover/q2-popover.d.ts +4 -4
  438. package/dist/types/components/q2-select/q2-select.d.ts +19 -0
  439. package/package.json +3 -3
  440. package/dist/cjs/index-07285783.js.map +0 -1
  441. package/dist/esm/index-d18e2a20.js.map +0 -1
  442. package/dist/q2-tecton-elements/index-d18e2a20.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"q2-chart-donut.js","sourceRoot":"","sources":["../../../src/components/q2-chart-donut/q2-chart-donut.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n State,\n Prop,\n h,\n ComponentInterface,\n Element,\n EventEmitter,\n Event,\n Method,\n Watch,\n Listen,\n} from '@stencil/core';\nimport * as echarts from 'echarts/core';\nimport { EChartsCoreOption } from 'echarts/types/dist/core';\nimport {\n TooltipComponent,\n TooltipComponentOption,\n LegendComponent,\n AriaComponent,\n AriaComponentOption,\n LegendComponentOption,\n} from 'echarts/components';\nimport { PieChart, PieSeriesOption } from 'echarts/charts';\nimport { LabelLayout } from 'echarts/features';\nimport { CanvasRenderer } from 'echarts/renderers';\nimport { isEventFromElement, isMobile, loc, overrideFocus } from 'src/utils';\nimport { IDonutChartData } from 'q2-tecton-common/lib/types/element-types';\nimport { getCSSProperty } from 'src/utils/charting';\n\necharts.use([TooltipComponent, LegendComponent, PieChart, CanvasRenderer, AriaComponent, LabelLayout]);\ntype EChartsOption = echarts.ComposeOption<\n TooltipComponentOption | LegendComponentOption | AriaComponentOption | PieSeriesOption\n>;\n@Component({ tag: 'q2-chart-donut', shadow: true, styleUrl: 'q2-chart-donut.scss' })\nexport class Q2ChartDonut implements ComponentInterface {\n // #region Own Properties\n\n btnElement: HTMLDivElement;\n centerButtonElement: HTMLButtonElement;\n chart: echarts.ECharts;\n chartContainer: HTMLDivElement;\n chartContainerStyles: CSSStyleDeclaration;\n colors: string[];\n defaultRecord = { id: null, value: null, name: null };\n hostElementStyles: CSSStyleDeclaration;\n isInChangeEvent: boolean;\n resizeObserver: ResizeObserver;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n hoveredId: string;\n\n @State()\n legendData: IDonutChartData[];\n\n // #endregion\n // #region Public Property API\n\n /**\n * The title of the chart. We recommend always including this for accessibility purposes.\n *\n * It is hidden by default, but can be made visible with the `showChartName` variable.\n * @localizable\n */\n @Prop({ reflect: true })\n chartName: string;\n\n /** An array of objects that contain the data to be displayed. */\n @Prop()\n data: IDonutChartData[] = [];\n\n /** Controls whether values on the value axis are shown as numbers or as currency. */\n @Prop({ reflect: true })\n format: 'currency' | 'default';\n\n /** The amount which the slice will scale when hovered. */\n @Prop()\n hoverScaleSize: number = 5;\n\n /**\n * The inner radius of the chart slices which is represeted by a percentage of the radius.\n *\n * @warning\n * If you update this property to be greater than or equal to the `outerRadius`,\n * we automatically set it to be 15% less than the current `outerRadius` to prevent display issues.\n */\n @Prop({ mutable: true })\n innerRadius: string = '70%';\n\n /**\n * Determine whether the data in the center renders inside a button element.\n *\n * @info\n * This also enables extra keyboard controls when the button is focused.\n */\n @Prop({ reflect: true })\n isClickable: boolean;\n\n /** The minimum size of the chart slizes which is represented as a percentage of the circumferences. */\n @Prop()\n minSliceSize: string = '2.5%';\n\n /**\n * The outer radius of the chart slices which is represented by a percentage of the radius.\n *\n * @warning\n * If you update this property to be less than or equal to the `innerRadius`,\n * we automatically set it to be 15% greater than the current `innerRadius` to prevent display issues.\n */\n @Prop({ mutable: true })\n outerRadius: string = '85%';\n\n /** The id of the data point that is currently selected in the chart. You may set this to pre-select a data point on render, or force a selection change. */\n @Prop({ mutable: true })\n selectedId: string;\n\n /** The amount which the slice will separate from the chart when selected. */\n @Prop()\n selectedOffset: number = 10;\n\n /**\n * Determines whether the legend is displayed.\n *\n * @info\n * The legend is a list of the data points in the chart and their colors.\n */\n @Prop({ reflect: true })\n showLegend: boolean = false;\n\n /** The icon that displays by default when no slices are selected. */\n @Prop({ reflect: true })\n summaryIcon: string;\n\n /**\n * The name that displays by default when no slices are selected.\n * @localizable\n */\n @Prop({ reflect: true })\n summaryName: string;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when a slice is selected.\n */\n @Event()\n change: EventEmitter<IDonutChartData>;\n\n /**\n * Emitted when the center button is clicked.\n *\n * Requires the `isClickable` prop to be set to `true`.\n */\n @Event()\n click: EventEmitter<IDonutChartData>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n this.resizeObserver?.disconnect();\n this.resizeObserver = null;\n }\n\n componentDidLoad(): void {\n const chart = echarts.init(this.chartContainer);\n\n this.cacheComputedStyles();\n this.colors = this.getColors();\n\n this.resizeObserver = new ResizeObserver(() => this.resizeChart());\n this.resizeObserver.observe(this.hostElement);\n\n this.updateChart(chart);\n this.setupChartEvents(chart);\n this.checkSelectedId();\n\n this.chart = chart;\n this.setLegendData();\n this.selectById(this.selectedId);\n overrideFocus(this.hostElement);\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n if (!this.isClickable) return;\n this.centerButtonElement?.focus();\n }\n\n // #endregion\n // #region Public Methods API\n\n /**\n * Clears any selected slice.\n */\n @Method()\n async clearSelection() {\n const { selectedId } = this;\n if (!selectedId) return;\n\n this.chart.dispatchAction({\n type: 'unselect',\n seriesId: 'pie',\n dataIndex: this.getIndexById(selectedId),\n });\n }\n\n /**\n * Returns the chart instance for e2e testing.\n *\n * @testOnly\n */\n @Method()\n async getChartOptions(): Promise<EChartsCoreOption> {\n return this.chart.getOption();\n }\n\n /**\n * Selects a slice by its provided `id` in the provided `data`.\n */\n @Method()\n async selectById(id: string) {\n const dataIndex = this.getIndexById(id);\n if (dataIndex === -1) return;\n this.chart.dispatchAction({\n type: 'select',\n seriesId: 'pie',\n dataIndex,\n });\n }\n\n /**\n * Selects a slice by its index in the provided `data`.\n */\n @Method()\n async selectByIndex(index: number) {\n const dataIndex = this.data[index] ? index : null;\n if (!dataIndex) return;\n this.chart.dispatchAction({\n type: 'select',\n seriesId: 'pie',\n dataIndex,\n });\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('chartName')\n @Watch('innerRadius')\n @Watch('outerRadius')\n @Watch('minSliceSize')\n @Watch('hoverScaleSize')\n @Watch('selectedOffset')\n propsUpdates() {\n this.updateChart(this.chart);\n }\n\n @Watch('data')\n dataUpdated() {\n this.colors = this.getColors();\n this.updateChart(this.chart);\n this.setLegendData();\n }\n\n @Watch('innerRadius')\n innerRadiusUpdated() {\n const { innerRadius, outerRadius } = this;\n const innerRadiusInt = parseFloat(innerRadius);\n const outerRadiusInt = parseFloat(outerRadius);\n if (innerRadiusInt >= outerRadiusInt) {\n this.innerRadius = `${outerRadiusInt - 15}%`;\n }\n }\n\n @Watch('outerRadius')\n outerRadiusUpdated() {\n const { innerRadius, outerRadius } = this;\n const innerRadiusInt = parseFloat(innerRadius);\n const outerRadiusInt = parseFloat(outerRadius);\n if (outerRadiusInt <= innerRadiusInt) {\n this.outerRadius = `${innerRadiusInt + 15}%`;\n }\n }\n\n /**\n * Function to detect and set a data range (category) as selected\n * Logic for when legends are present, and can set selectedId when ledgend category is clicked\n * Also can be used by dev to preset\n */\n @Watch('selectedId')\n checkSelectedId() {\n if (!!this.selectedId) {\n this.hoveredId = this.selectedId;\n // Dispatch action only to be fired when chart is rendered\n if (this.chart) {\n this.selectById(this.selectedId);\n }\n } else {\n // Dispatch action only to be fired when chart is rendered\n if (this.chart) {\n this.chart.dispatchAction({\n type: 'unselect',\n seriesId: 'pie',\n dataIndex: this.getIndexById(this.hoveredId),\n });\n }\n this.hoveredId = null;\n }\n }\n\n // #endregion\n // #region Local Methods\n\n get centerData() {\n const { hoveredId, data } = this;\n const idToDisplay = hoveredId;\n const index = this.getIndexById(idToDisplay);\n\n return idToDisplay\n ? { ...this.getDataById(idToDisplay), color: this.colors[index] }\n : {\n name: loc(this.summaryName || 'tecton.element.chartDonut.button.summaryName'),\n icon: this.summaryIcon,\n value: data.reduce((acc, cur) => acc + cur.value, 0),\n color: null,\n };\n }\n\n get isMobile(): boolean {\n return isMobile();\n }\n\n get legendHoveredId() {\n return this.hoveredId === this.selectedId ? null : this.hoveredId;\n }\n\n cacheComputedStyles() {\n this.chartContainerStyles = getComputedStyle(this.chartContainer);\n this.hostElementStyles = getComputedStyle(this.hostElement);\n }\n\n displayValue(value: string | number) {\n const valueAsFloat = parseFloat(value.toString());\n if (isNaN(valueAsFloat)) return;\n\n if (this.format === 'currency') {\n return Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n }).format(valueAsFloat);\n } else {\n return Intl.NumberFormat('en-US').format(valueAsFloat);\n }\n }\n\n getColors() {\n const defaultColors = [1, 3, 8, 4, 2, 10, 7, 11, 6, 9, 12, 5].map(e => `--comp-color-${e}`);\n return this.data.reduce((acc, cur, idx) => {\n let color = defaultColors[idx % defaultColors.length];\n if (cur.color) color = cur.color;\n\n acc.push(getCSSProperty(color, this.chartContainerStyles, this.hostElementStyles) || color);\n return acc;\n }, []);\n }\n\n getCSSProperty(name: string) {\n let fallback;\n if (name.startsWith('var(') && name.endsWith(')')) {\n const regExp = /var\\((.*)\\)/g;\n const result = regExp.exec(name);\n const split = result.length >= 2 ? result[1].split(',') : [];\n name = split[0];\n fallback = split[1];\n }\n let result = this.chartContainerStyles.getPropertyValue(name).trim();\n if (!result) result = this.hostElementStyles.getPropertyValue(name).trim();\n return result || fallback;\n }\n\n getDataById(id: string) {\n if (!id) return;\n return this.data.find(item => item.id === id);\n }\n\n getDataByIndex(index: number) {\n if (typeof index !== 'number') return;\n return this.data[index];\n }\n\n getDataIndexForId(id: string) {\n return this.data.findIndex(item => item.id === id);\n }\n\n getIndexById(id: string) {\n return this.data.findIndex(item => item.id === id);\n }\n\n getMinSliceSizeAsAngle() {\n return (parseFloat(this.minSliceSize) / 100) * 360;\n }\n\n onButtonClick = (event: MouseEvent) => {\n event.stopPropagation();\n\n const { selectedId } = this;\n const data = selectedId ? this.getDataById(selectedId) : { ...this.defaultRecord };\n this.click.emit(data);\n };\n\n onButtonKeyDown = (event: KeyboardEvent) => {\n const { selectedId, data } = this;\n let selectedIndex = this.getIndexById(selectedId) || 0;\n switch (event.key) {\n case 'ArrowUp':\n case 'ArrowDown':\n event.preventDefault();\n break;\n\n case 'ArrowLeft':\n event.preventDefault();\n selectedIndex--;\n if (selectedIndex < 0) selectedIndex = data.length - 1;\n this.chart.dispatchAction({\n type: 'select',\n seriesId: 'pie',\n dataIndex: selectedIndex,\n });\n break;\n\n case 'ArrowRight':\n event.preventDefault();\n selectedIndex++;\n if (selectedIndex > data.length - 1) selectedIndex = 0;\n this.chart.dispatchAction({\n type: 'select',\n seriesId: 'pie',\n dataIndex: selectedIndex,\n });\n break;\n\n case 'Escape':\n this.clearSelection();\n break;\n\n case ' ':\n event.preventDefault();\n break;\n\n default:\n return;\n }\n };\n\n onClickElsewhere = (event: Event) => {\n event.stopPropagation();\n this.clearSelection();\n };\n\n onContainerClick = (event: Event) => {\n if (this.isInChangeEvent) return;\n if (!(event.target instanceof HTMLElement)) return;\n this.clearSelection();\n event.stopPropagation();\n };\n\n onLegendClick = event => {\n event.stopPropagation();\n if (event.detail) {\n const dataIndex = this.getDataIndexForId(event.detail.id);\n this.selectedId = event.detail.id;\n this.chart.dispatchAction({\n type: 'select',\n seriesIndex: 0,\n dataIndex,\n });\n } else {\n const dataIndex = this.getDataIndexForId(this.selectedId);\n this.hoveredId = this.selectedId;\n this.selectedId = null;\n this.chart.dispatchAction({\n type: 'unselect',\n seriesIndex: 0,\n dataIndex,\n });\n }\n };\n\n onLegendMouseenter = event => {\n const dataIndex = this.getDataIndexForId(event.detail.id);\n this.hoveredId = event.detail.id;\n this.chart.dispatchAction({\n type: 'highlight',\n seriesIndex: 0,\n dataIndex,\n });\n };\n\n onLegendMouseleave = event => {\n const dataIndex = this.getDataIndexForId(event.detail.id);\n this.hoveredId = this.selectedId;\n this.chart.dispatchAction({\n type: 'downplay',\n seriesIndex: 0,\n dataIndex,\n });\n };\n\n resizeChart() {\n this.chart.resize();\n }\n\n setLegendData() {\n const chartColors = this.chart.getOption().series[0].color;\n this.legendData = this.data.map((item, index) => {\n const newItem = { ...item };\n if (!newItem.color) newItem.color = chartColors[index];\n\n return newItem;\n });\n }\n\n // Edit with caution. Echarts does not interpret events the same on mobile.\n setupChartEvents(chart: echarts.ECharts) {\n if (!this.isMobile) {\n chart.on('mouseover', (params: any) => {\n this.hoveredId = params.data.id;\n });\n chart.on('mouseout', () => {\n this.hoveredId = this.selectedId;\n });\n }\n chart.on('click', params => {\n params.event.stop();\n });\n chart.on('selectchanged', (params: any) => {\n const selectedIndex = params.selected?.[0]?.dataIndex?.[0] ?? null;\n const data =\n typeof selectedIndex === 'number' ? this.getDataByIndex(selectedIndex) : { ...this.defaultRecord };\n this.selectedId = data.id;\n this.isInChangeEvent = true;\n this.change.emit(data);\n setTimeout(() => {\n this.isInChangeEvent = false;\n }, 0);\n });\n chart.on('finished', () => {\n const canvas = chart.getDom().querySelector('canvas');\n if (canvas?.hasAttribute('aria-hidden') ?? false) return;\n canvas.setAttribute('aria-hidden', 'true');\n });\n }\n\n validateColor() {\n // check if there is name duplicated, then custom style using `itemStyle` object will be used.\n if (\n this.data.length >\n Object.keys(\n this.data.reduce((acc, cur) => {\n acc[cur.name] = cur.name;\n return acc;\n }, {})\n ).length\n ) {\n this.data.forEach((el, i) => {\n el.itemStyle = { ...el.itemStyle, color: el.color || this.colors[i] };\n });\n }\n }\n\n updateChart(chart: echarts.ECharts) {\n this.validateColor();\n return chart.setOption<EChartsOption>({\n tooltip: {\n show: false,\n },\n legend: {\n show: false,\n },\n aria: {\n enabled: true,\n },\n series: [\n {\n name: this.chartName,\n animationType: 'scale',\n color: this.colors,\n id: 'pie',\n type: 'pie',\n selectedOffset: this.selectedOffset,\n selectedMode: 'single',\n radius: [this.innerRadius, this.outerRadius],\n label: {\n show: false,\n },\n labelLine: {\n show: false,\n },\n itemStyle: {\n borderWidth: 5,\n borderColor: getCSSProperty(\n '--comp-background-color',\n this.chartContainerStyles,\n this.hostElementStyles\n ),\n },\n emphasis: {\n disabled: this.isMobile,\n scaleSize: this.hoverScaleSize,\n itemStyle: {\n color: 'inherit',\n },\n },\n minAngle: this.getMinSliceSizeAsAngle(),\n data: this.data,\n },\n ],\n });\n }\n\n // #endregion\n // #region Test Methods API\n\n /**\n * A method to select a slice with index.\n *\n * @testOnly\n */\n @Method()\n async selectDataPoint(index: number) {\n this.chart.dispatchAction({\n type: 'select',\n seriesId: 'pie',\n dataIndex: index,\n });\n }\n // #endregion\n // #region Render Methods\n\n renderCenterBlock() {\n const { icon, name, value, color } = this.centerData;\n const { isClickable } = this;\n const TagName = isClickable ? 'button' : 'div';\n const displayValue = this.displayValue(value);\n\n const props = isClickable\n ? {\n onKeyDown: this.onButtonKeyDown,\n onClick: this.onButtonClick,\n ref: el => (this.centerButtonElement = el),\n 'aria-describedby': 'center-card-description',\n 'aria-roledescription': loc('tecton.element.chartDonut.button.roleDescription'),\n }\n : null;\n\n return (\n <div\n class=\"center-card-container\"\n style={{ width: `calc(${this.innerRadius} - 10%)` }}\n >\n <div\n id=\"center-card-description\"\n class=\"sr\"\n >\n {loc('tecton.element.chartDonut.button.description')}\n </div>\n <TagName\n class=\"center-card\"\n test-id=\"centerCard\"\n {...props}\n >\n {!!icon && (\n <q2-icon\n type={icon}\n style={\n color && {\n '--tct-icon-stroke-primary': color,\n '--tct-icon-stroke-secondary': color,\n color,\n }\n }\n ></q2-icon>\n )}\n {!!name && <div class=\"name\">{name}</div>}\n {!isNaN(value) && <div class=\"value\">{displayValue}</div>}\n </TagName>\n </div>\n );\n }\n\n render() {\n return (\n <click-elsewhere onChange={this.onClickElsewhere}>\n <figure>\n <div class=\"container\">\n <div\n ref={el => (this.chartContainer = el)}\n aria-describedby={!this.isClickable ? 'center-card-description' : undefined}\n class=\"chart-container\"\n role=\"img\"\n test-id=\"chartContainer\"\n onClick={this.onContainerClick}\n tabIndex={!this.isClickable ? 0 : undefined}\n onKeyDown={!this.isClickable ? this.onButtonKeyDown : undefined}\n ></div>\n {this.renderCenterBlock()}\n </div>\n {this.showLegend && (\n <figcaption>\n <q2-legend\n class=\"legend\"\n data={this.legendData}\n format={this.format}\n hoveredItemId={this.legendHoveredId}\n onClick={this.onLegendClick}\n onMouseleave={this.onLegendMouseleave}\n onMouseenter={this.onLegendMouseenter}\n selectedItemId={this.selectedId}\n />\n </figcaption>\n )}\n </figure>\n </click-elsewhere>\n );\n }\n\n // #endregion\n}\n"]}
1
+ {"version":3,"file":"q2-chart-donut.js","sourceRoot":"","sources":["../../../../src/components/q2-chart-donut/q2-chart-donut.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n State,\n Prop,\n h,\n ComponentInterface,\n Element,\n EventEmitter,\n Event,\n Method,\n Watch,\n Listen,\n} from '@stencil/core';\nimport * as echarts from 'echarts/core';\nimport { EChartsCoreOption } from 'echarts/types/dist/core';\nimport {\n TooltipComponent,\n TooltipComponentOption,\n LegendComponent,\n AriaComponent,\n AriaComponentOption,\n LegendComponentOption,\n} from 'echarts/components';\nimport { PieChart, PieSeriesOption } from 'echarts/charts';\nimport { LabelLayout } from 'echarts/features';\nimport { CanvasRenderer } from 'echarts/renderers';\nimport { isEventFromElement, isMobile, loc, overrideFocus } from 'src/utils';\nimport { IDonutChartData } from 'q2-tecton-common/lib/types/element-types';\nimport { getCSSProperty } from 'src/utils/charting';\n\necharts.use([TooltipComponent, LegendComponent, PieChart, CanvasRenderer, AriaComponent, LabelLayout]);\ntype EChartsOption = echarts.ComposeOption<\n TooltipComponentOption | LegendComponentOption | AriaComponentOption | PieSeriesOption\n>;\n@Component({ tag: 'q2-chart-donut', shadow: true, styleUrl: 'q2-chart-donut.scss' })\nexport class Q2ChartDonut implements ComponentInterface {\n // #region Own Properties\n\n btnElement: HTMLDivElement;\n centerButtonElement: HTMLButtonElement;\n chart: echarts.ECharts;\n chartContainer: HTMLDivElement;\n chartContainerStyles: CSSStyleDeclaration;\n colors: string[];\n defaultRecord = { id: null, value: null, name: null };\n hostElementStyles: CSSStyleDeclaration;\n isInChangeEvent: boolean;\n resizeObserver: ResizeObserver;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n hoveredId: string;\n\n @State()\n legendData: IDonutChartData[];\n\n // #endregion\n // #region Public Property API\n\n /**\n * The title of the chart. We recommend always including this for accessibility purposes.\n *\n * It is hidden by default, but can be made visible with the `showChartName` variable.\n * @localizable\n */\n @Prop({ reflect: true })\n chartName: string;\n\n /** An array of objects that contain the data to be displayed. */\n @Prop()\n data: IDonutChartData[] = [];\n\n /** Controls whether values on the value axis are shown as numbers or as currency. */\n @Prop({ reflect: true })\n format: 'currency' | 'default';\n\n /** The amount which the slice will scale when hovered. */\n @Prop()\n hoverScaleSize: number = 5;\n\n /**\n * The inner radius of the chart slices which is represeted by a percentage of the radius.\n *\n * @warning\n * If you update this property to be greater than or equal to the `outerRadius`,\n * we automatically set it to be 15% less than the current `outerRadius` to prevent display issues.\n */\n @Prop({ mutable: true })\n innerRadius: string = '70%';\n\n /**\n * Determine whether the data in the center renders inside a button element.\n *\n * @info\n * This also enables extra keyboard controls when the button is focused.\n */\n @Prop({ reflect: true })\n isClickable: boolean;\n\n /** The minimum size of the chart slizes which is represented as a percentage of the circumferences. */\n @Prop()\n minSliceSize: string = '2.5%';\n\n /**\n * The outer radius of the chart slices which is represented by a percentage of the radius.\n *\n * @warning\n * If you update this property to be less than or equal to the `innerRadius`,\n * we automatically set it to be 15% greater than the current `innerRadius` to prevent display issues.\n */\n @Prop({ mutable: true })\n outerRadius: string = '85%';\n\n /** The id of the data point that is currently selected in the chart. You may set this to pre-select a data point on render, or force a selection change. */\n @Prop({ mutable: true })\n selectedId: string;\n\n /** The amount which the slice will separate from the chart when selected. */\n @Prop()\n selectedOffset: number = 10;\n\n /**\n * Determines whether the legend is displayed.\n *\n * @info\n * The legend is a list of the data points in the chart and their colors.\n */\n @Prop({ reflect: true })\n showLegend: boolean = false;\n\n /** The icon that displays by default when no slices are selected. */\n @Prop({ reflect: true })\n summaryIcon: string;\n\n /**\n * The name that displays by default when no slices are selected.\n * @localizable\n */\n @Prop({ reflect: true })\n summaryName: string;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when a slice is selected.\n */\n @Event()\n change: EventEmitter<IDonutChartData>;\n\n /**\n * Emitted when the center button is clicked.\n *\n * Requires the `isClickable` prop to be set to `true`.\n */\n @Event()\n click: EventEmitter<IDonutChartData>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n this.resizeObserver?.disconnect();\n this.resizeObserver = null;\n }\n\n componentDidLoad(): void {\n const chart = echarts.init(this.chartContainer);\n\n this.cacheComputedStyles();\n this.colors = this.getColors();\n\n this.resizeObserver = new ResizeObserver(() => this.resizeChart());\n this.resizeObserver.observe(this.hostElement);\n\n this.updateChart(chart);\n this.setupChartEvents(chart);\n this.checkSelectedId();\n\n this.chart = chart;\n this.setLegendData();\n this.selectById(this.selectedId);\n overrideFocus(this.hostElement);\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n if (!this.isClickable) return;\n this.centerButtonElement?.focus();\n }\n\n // #endregion\n // #region Public Methods API\n\n /**\n * Clears any selected slice.\n */\n @Method()\n async clearSelection() {\n const { selectedId } = this;\n if (!selectedId) return;\n\n this.chart.dispatchAction({\n type: 'unselect',\n seriesId: 'pie',\n dataIndex: this.getIndexById(selectedId),\n });\n }\n\n /**\n * Returns the chart instance for e2e testing.\n *\n * @testOnly\n */\n @Method()\n async getChartOptions(): Promise<EChartsCoreOption> {\n return this.chart.getOption();\n }\n\n /**\n * Selects a slice by its provided `id` in the provided `data`.\n */\n @Method()\n async selectById(id: string) {\n const dataIndex = this.getIndexById(id);\n if (dataIndex === -1) return;\n this.chart.dispatchAction({\n type: 'select',\n seriesId: 'pie',\n dataIndex,\n });\n }\n\n /**\n * Selects a slice by its index in the provided `data`.\n */\n @Method()\n async selectByIndex(index: number) {\n const dataIndex = this.data[index] ? index : null;\n if (!dataIndex) return;\n this.chart.dispatchAction({\n type: 'select',\n seriesId: 'pie',\n dataIndex,\n });\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('chartName')\n @Watch('innerRadius')\n @Watch('outerRadius')\n @Watch('minSliceSize')\n @Watch('hoverScaleSize')\n @Watch('selectedOffset')\n propsUpdates() {\n this.updateChart(this.chart);\n }\n\n @Watch('data')\n dataUpdated() {\n this.colors = this.getColors();\n this.updateChart(this.chart);\n this.setLegendData();\n }\n\n @Watch('innerRadius')\n innerRadiusUpdated() {\n const { innerRadius, outerRadius } = this;\n const innerRadiusInt = parseFloat(innerRadius);\n const outerRadiusInt = parseFloat(outerRadius);\n if (innerRadiusInt >= outerRadiusInt) {\n this.innerRadius = `${outerRadiusInt - 15}%`;\n }\n }\n\n @Watch('outerRadius')\n outerRadiusUpdated() {\n const { innerRadius, outerRadius } = this;\n const innerRadiusInt = parseFloat(innerRadius);\n const outerRadiusInt = parseFloat(outerRadius);\n if (outerRadiusInt <= innerRadiusInt) {\n this.outerRadius = `${innerRadiusInt + 15}%`;\n }\n }\n\n /**\n * Function to detect and set a data range (category) as selected\n * Logic for when legends are present, and can set selectedId when ledgend category is clicked\n * Also can be used by dev to preset\n */\n @Watch('selectedId')\n checkSelectedId() {\n if (!!this.selectedId) {\n this.hoveredId = this.selectedId;\n // Dispatch action only to be fired when chart is rendered\n if (this.chart) {\n this.selectById(this.selectedId);\n }\n } else {\n // Dispatch action only to be fired when chart is rendered\n if (this.chart) {\n this.chart.dispatchAction({\n type: 'unselect',\n seriesId: 'pie',\n dataIndex: this.getIndexById(this.hoveredId),\n });\n }\n this.hoveredId = null;\n }\n }\n\n // #endregion\n // #region Local Methods\n\n get centerData() {\n const { hoveredId, data } = this;\n const idToDisplay = hoveredId;\n const index = this.getIndexById(idToDisplay);\n\n return idToDisplay\n ? { ...this.getDataById(idToDisplay), color: this.colors[index] }\n : {\n name: loc(this.summaryName || 'tecton.element.chartDonut.button.summaryName'),\n icon: this.summaryIcon,\n value: data.reduce((acc, cur) => acc + cur.value, 0),\n color: null,\n };\n }\n\n get isMobile(): boolean {\n return isMobile();\n }\n\n get legendHoveredId() {\n return this.hoveredId === this.selectedId ? null : this.hoveredId;\n }\n\n cacheComputedStyles() {\n this.chartContainerStyles = getComputedStyle(this.chartContainer);\n this.hostElementStyles = getComputedStyle(this.hostElement);\n }\n\n displayValue(value: string | number) {\n const valueAsFloat = parseFloat(value.toString());\n if (isNaN(valueAsFloat)) return;\n\n if (this.format === 'currency') {\n return Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n }).format(valueAsFloat);\n } else {\n return Intl.NumberFormat('en-US').format(valueAsFloat);\n }\n }\n\n getColors() {\n const defaultColors = [1, 3, 8, 4, 2, 10, 7, 11, 6, 9, 12, 5].map(e => `--comp-color-${e}`);\n return this.data.reduce((acc, cur, idx) => {\n let color = defaultColors[idx % defaultColors.length];\n if (cur.color) color = cur.color;\n\n acc.push(getCSSProperty(color, this.chartContainerStyles, this.hostElementStyles) || color);\n return acc;\n }, []);\n }\n\n getCSSProperty(name: string) {\n let fallback;\n if (name.startsWith('var(') && name.endsWith(')')) {\n const regExp = /var\\((.*)\\)/g;\n const result = regExp.exec(name);\n const split = result.length >= 2 ? result[1].split(',') : [];\n name = split[0];\n fallback = split[1];\n }\n let result = this.chartContainerStyles.getPropertyValue(name).trim();\n if (!result) result = this.hostElementStyles.getPropertyValue(name).trim();\n return result || fallback;\n }\n\n getDataById(id: string) {\n if (!id) return;\n return this.data.find(item => item.id === id);\n }\n\n getDataByIndex(index: number) {\n if (typeof index !== 'number') return;\n return this.data[index];\n }\n\n getDataIndexForId(id: string) {\n return this.data.findIndex(item => item.id === id);\n }\n\n getIndexById(id: string) {\n return this.data.findIndex(item => item.id === id);\n }\n\n getMinSliceSizeAsAngle() {\n return (parseFloat(this.minSliceSize) / 100) * 360;\n }\n\n onButtonClick = (event: MouseEvent) => {\n event.stopPropagation();\n\n const { selectedId } = this;\n const data = selectedId ? this.getDataById(selectedId) : { ...this.defaultRecord };\n this.click.emit(data);\n };\n\n onButtonKeyDown = (event: KeyboardEvent) => {\n const { selectedId, data } = this;\n let selectedIndex = this.getIndexById(selectedId) || 0;\n switch (event.key) {\n case 'ArrowUp':\n case 'ArrowDown':\n event.preventDefault();\n break;\n\n case 'ArrowLeft':\n event.preventDefault();\n selectedIndex--;\n if (selectedIndex < 0) selectedIndex = data.length - 1;\n this.chart.dispatchAction({\n type: 'select',\n seriesId: 'pie',\n dataIndex: selectedIndex,\n });\n break;\n\n case 'ArrowRight':\n event.preventDefault();\n selectedIndex++;\n if (selectedIndex > data.length - 1) selectedIndex = 0;\n this.chart.dispatchAction({\n type: 'select',\n seriesId: 'pie',\n dataIndex: selectedIndex,\n });\n break;\n\n case 'Escape':\n this.clearSelection();\n break;\n\n case ' ':\n event.preventDefault();\n break;\n\n default:\n return;\n }\n };\n\n onClickElsewhere = (event: Event) => {\n event.stopPropagation();\n this.clearSelection();\n };\n\n onContainerClick = (event: Event) => {\n if (this.isInChangeEvent) return;\n if (!(event.target instanceof HTMLElement)) return;\n this.clearSelection();\n event.stopPropagation();\n };\n\n onLegendClick = event => {\n event.stopPropagation();\n if (event.detail) {\n const dataIndex = this.getDataIndexForId(event.detail.id);\n this.selectedId = event.detail.id;\n this.chart.dispatchAction({\n type: 'select',\n seriesIndex: 0,\n dataIndex,\n });\n } else {\n const dataIndex = this.getDataIndexForId(this.selectedId);\n this.hoveredId = this.selectedId;\n this.selectedId = null;\n this.chart.dispatchAction({\n type: 'unselect',\n seriesIndex: 0,\n dataIndex,\n });\n }\n };\n\n onLegendMouseenter = event => {\n const dataIndex = this.getDataIndexForId(event.detail.id);\n this.hoveredId = event.detail.id;\n this.chart.dispatchAction({\n type: 'highlight',\n seriesIndex: 0,\n dataIndex,\n });\n };\n\n onLegendMouseleave = event => {\n const dataIndex = this.getDataIndexForId(event.detail.id);\n this.hoveredId = this.selectedId;\n this.chart.dispatchAction({\n type: 'downplay',\n seriesIndex: 0,\n dataIndex,\n });\n };\n\n resizeChart() {\n this.chart.resize();\n }\n\n setLegendData() {\n const chartColors = this.chart.getOption().series[0].color;\n this.legendData = this.data.map((item, index) => {\n const newItem = { ...item };\n if (!newItem.color) newItem.color = chartColors[index];\n\n return newItem;\n });\n }\n\n // Edit with caution. Echarts does not interpret events the same on mobile.\n setupChartEvents(chart: echarts.ECharts) {\n if (!this.isMobile) {\n chart.on('mouseover', (params: any) => {\n this.hoveredId = params.data.id;\n });\n chart.on('mouseout', () => {\n this.hoveredId = this.selectedId;\n });\n }\n chart.on('click', params => {\n params.event.stop();\n });\n chart.on('selectchanged', (params: any) => {\n const selectedIndex = params.selected?.[0]?.dataIndex?.[0] ?? null;\n const data =\n typeof selectedIndex === 'number' ? this.getDataByIndex(selectedIndex) : { ...this.defaultRecord };\n this.selectedId = data.id;\n this.isInChangeEvent = true;\n this.change.emit(data);\n setTimeout(() => {\n this.isInChangeEvent = false;\n }, 0);\n });\n chart.on('finished', () => {\n const canvas = chart.getDom().querySelector('canvas');\n if (canvas?.hasAttribute('aria-hidden') ?? false) return;\n canvas.setAttribute('aria-hidden', 'true');\n });\n }\n\n validateColor() {\n // check if there is name duplicated, then custom style using `itemStyle` object will be used.\n if (\n this.data.length >\n Object.keys(\n this.data.reduce((acc, cur) => {\n acc[cur.name] = cur.name;\n return acc;\n }, {})\n ).length\n ) {\n this.data.forEach((el, i) => {\n el.itemStyle = { ...el.itemStyle, color: el.color || this.colors[i] };\n });\n }\n }\n\n updateChart(chart: echarts.ECharts) {\n this.validateColor();\n return chart.setOption<EChartsOption>({\n tooltip: {\n show: false,\n },\n legend: {\n show: false,\n },\n aria: {\n enabled: true,\n },\n series: [\n {\n name: this.chartName,\n animationType: 'scale',\n color: this.colors,\n id: 'pie',\n type: 'pie',\n selectedOffset: this.selectedOffset,\n selectedMode: 'single',\n radius: [this.innerRadius, this.outerRadius],\n label: {\n show: false,\n },\n labelLine: {\n show: false,\n },\n itemStyle: {\n borderWidth: 5,\n borderColor: getCSSProperty(\n '--comp-background-color',\n this.chartContainerStyles,\n this.hostElementStyles\n ),\n },\n emphasis: {\n disabled: this.isMobile,\n scaleSize: this.hoverScaleSize,\n itemStyle: {\n color: 'inherit',\n },\n },\n minAngle: this.getMinSliceSizeAsAngle(),\n data: this.data,\n },\n ],\n });\n }\n\n // #endregion\n // #region Test Methods API\n\n /**\n * A method to select a slice with index.\n *\n * @testOnly\n */\n @Method()\n async selectDataPoint(index: number) {\n this.chart.dispatchAction({\n type: 'select',\n seriesId: 'pie',\n dataIndex: index,\n });\n }\n // #endregion\n // #region Render Methods\n\n renderCenterBlock() {\n const { icon, name, value, color } = this.centerData;\n const { isClickable } = this;\n const TagName = isClickable ? 'button' : 'div';\n const displayValue = this.displayValue(value);\n\n const props = isClickable\n ? {\n onKeyDown: this.onButtonKeyDown,\n onClick: this.onButtonClick,\n ref: el => (this.centerButtonElement = el),\n 'aria-describedby': 'center-card-description',\n 'aria-roledescription': loc('tecton.element.chartDonut.button.roleDescription'),\n }\n : null;\n\n return (\n <div\n class=\"center-card-container\"\n style={{ width: `calc(${this.innerRadius} - 10%)` }}\n >\n <div\n id=\"center-card-description\"\n class=\"sr\"\n >\n {loc('tecton.element.chartDonut.button.description')}\n </div>\n <TagName\n class=\"center-card\"\n test-id=\"centerCard\"\n {...props}\n >\n {!!icon && (\n <q2-icon\n type={icon}\n style={\n color && {\n '--tct-icon-stroke-primary': color,\n '--tct-icon-stroke-secondary': color,\n color,\n }\n }\n ></q2-icon>\n )}\n {!!name && <div class=\"name\">{name}</div>}\n {!isNaN(value) && <div class=\"value\">{displayValue}</div>}\n </TagName>\n </div>\n );\n }\n\n render() {\n return (\n <click-elsewhere onChange={this.onClickElsewhere}>\n <figure>\n <div class=\"container\">\n <div\n ref={el => (this.chartContainer = el)}\n aria-describedby={!this.isClickable ? 'center-card-description' : undefined}\n class=\"chart-container\"\n role=\"img\"\n test-id=\"chartContainer\"\n onClick={this.onContainerClick}\n tabIndex={!this.isClickable ? 0 : undefined}\n onKeyDown={!this.isClickable ? this.onButtonKeyDown : undefined}\n ></div>\n {this.renderCenterBlock()}\n </div>\n {this.showLegend && (\n <figcaption>\n <q2-legend\n class=\"legend\"\n data={this.legendData}\n format={this.format}\n hoveredItemId={this.legendHoveredId}\n onClick={this.onLegendClick}\n onMouseleave={this.onLegendMouseleave}\n onMouseenter={this.onLegendMouseenter}\n selectedItemId={this.selectedId}\n />\n </figcaption>\n )}\n </figure>\n </click-elsewhere>\n );\n }\n\n // #endregion\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"q2-chart-donut-test.e2e.js","sourceRoot":"","sources":["../../../../src/components/q2-chart-donut/test/q2-chart-donut-test.e2e.ts"],"names":[],"mappings":"AACA,OAAO,EACH,KAAK,EACL,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,+BAA+B,GAClC,MAAM,iBAAiB,CAAC;AAEzB,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC5B,IAAI,IAAa,CAAC;IAClB,IAAI,KAAiB,CAAC;IACtB,IAAI,UAAsB,CAAC;IAC3B,IAAI,IAAgB,CAAC;IACrB,IAAI,IAAgB,CAAC;IACrB,IAAI,KAAiB,CAAC;IACtB,IAAI,QAAkB,CAAC;IACvB,IAAI,SAAmB,CAAC;IAExB,MAAM,UAAU,GAAG,KAAK,EAAE,IAAa,EAAE,EAAU,EAAE,EAAE;QACnD,OAAO,IAAI,CAAC,KAAK,CACb,gBAAgB,EAChB,CAAC,OAAgC,EAAE,EAAU,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EACxE,EAAE,CACL,CAAC;IACN,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,KAAK,EAAE,IAAa,EAAE,KAAa,EAAE,EAAE;QACzD,OAAO,IAAI,CAAC,KAAK,CACb,gBAAgB,EAChB,CAAC,OAAgC,EAAE,KAAa,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,EACjF,KAAK,CACR,CAAC;IACN,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,KAAK,EAAE,IAAa,EAAE,EAAE;QAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,OAAgC,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IACxG,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,KAAK,EAAE,IAAa,EAAE,EAAE;QACvC,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC5B,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;YAC9D,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAC;YAC3D,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,KAAK,EAAE,IAAa,EAAE,QAAgB,EAAE,EAAE,EAAE;QAC3D,MAAM,IAAI,CAAC,UAAU,CAAC,mBAAmB,KAAK,oBAAoB,CAAC,CAAC;QACpE,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC1C,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE;YACtB,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE;YACjE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;YACrD,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,6BAA6B,EAAE;YAC5F,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE;YAClE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE;YACnE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE;SACnF,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAChC,CAAC,CAAC;IAEF,UAAU,CAAC,KAAK,IAAI,EAAE;QAClB,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACjC,MAAM,cAAc,CAAC,IAAI,EAAE;YACvB,8CAA8C,EAAE,OAAO;YACvD,8CAA8C,EAC1C,uIAAuI;YAC3I,kDAAkD,EAAE,cAAc;SACrE,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,mCAAmC,EAAE,CAAC,CAAC;QACxE,MAAM,CAAC,MAAM,+BAA+B,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC1F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAE5D,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;QAE5B,MAAM,CAAC,MAAM,CAAC,CAAC,gBAAgB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,gBAAgB,GAAG,KAAK,EAAE,IAAa,EAAE,IAAY,EAAE,EAAE,CAC3D,IAAI,CAAC,KAAK,CACN,gBAAgB,EAChB,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE;YAChB,OAAO,OAAO,CAAC,UAAU,CAAC,aAAa,CAAc,SAAS,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACjG,CAAC,EACD,CAAC,IAAI,CAAC,CACT,CAAC;QACN,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,MAAM,gBAAgB,CAAC,IAAI,EAAE,2BAA2B,CAAC,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QACtG,MAAM,CAAC,MAAM,gBAAgB,CAAC,IAAI,EAAE,6BAA6B,CAAC,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QACxG,MAAM,CAAC,MAAM,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QAClC,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,MAAM,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACpC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAErD,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;QACnB,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;YACxB,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;gBAC1C,MAAM,UAAU,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;gBAC7C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;gBAE/D,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAClC,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;gBAC5C,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;gBACvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;gBAE/D,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC9B,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;YACzB,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;gBAC/B,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;oBACxC,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;oBACvB,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;oBAEnD,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBACtC,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;gBAC3B,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;oBACzC,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;oBACvB,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;oBACnD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;oBAC5B,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;oBAEnD,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;gBAC/C,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;YACzB,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;gBAC/B,EAAE,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;oBAC7B,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;oBACvB,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;oBAEnD,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAC5B,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;gBAC3B,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;oBACzC,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;oBACvB,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;oBAC1C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;oBAC5B,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;oBAErD,MAAM,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACnD,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;YACpB,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;gBAC/B,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;oBACpC,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;oBACvB,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;oBAErD,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBACvC,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;gBAC3B,EAAE,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;oBACjC,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;oBACvB,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;oBACxC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;oBAC5B,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;oBAErD,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;gBAC3C,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;YACzB,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;gBAC/B,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;oBAC7C,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;oBACvB,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;oBAEhE,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;oBAC9C,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;oBAC3D,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAAC;gBACnE,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;gBAC3B,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;oBAChD,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;oBACvB,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;oBACvC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;oBAC5B,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;oBAEhE,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;oBACjD,MAAM,CAAC,UAAU,CAAC,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,cAAc,CAAC,CAAC;oBAC5E,MAAM,CAAC,UAAU,CAAC,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,yBAAyB,CAAC,CAAC;gBACvF,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;YAC1B,MAAM,uBAAuB,GAAG,CAAC,SAAiB,EAAE,EAAE;gBAClD,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;YAC/C,CAAC,CAAC;YACF,MAAM,WAAW,GAAG,KAAK,EAAE,IAAa,EAAE,EAAE;gBACxC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;gBACvC,OAAO,OAAO,CAAC,QAAQ,CAAC;YAC5B,CAAC,CAAC;YACF,MAAM,SAAS,GAAG,MAAM,CAAC;YAEzB,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;gBAC/B,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;oBACxC,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;oBACvB,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;oBAEzC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC9D,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;gBAC3B,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;oBACjD,MAAM,UAAU,CAAC,IAAI,EAAE,mBAAmB,SAAS,GAAG,CAAC,CAAC;oBACxD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;oBAEzC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC,CAAC;gBACjE,CAAC,CAAC,CAAC;gBACH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;oBACpD,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;oBACvB,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;oBAC7C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;oBAC5B,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;oBAEzC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC,CAAC;gBACjE,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACtB,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;YACzB,QAAQ,CAAC,kDAAkD,EAAE,GAAG,EAAE;gBAC9D,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;oBACnE,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;oBAEvB,MAAM,CAAC,MAAM,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBAC9D,MAAM,CAAC,MAAM,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBAE9D,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;oBACxC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;oBAE5B,MAAM,CAAC,MAAM,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAClE,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;YACzB,QAAQ,CAAC,+CAA+C,EAAE,GAAG,EAAE;gBAC3D,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;oBACnE,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;oBAEvB,MAAM,CAAC,MAAM,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBAC9D,MAAM,CAAC,MAAM,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBAE9D,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;oBACxC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;oBAE5B,MAAM,CAAC,MAAM,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAClE,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACrB,UAAU,CAAC,KAAK,IAAI,EAAE;YAClB,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;YACvB,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YAChE,SAAS,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;YACxB,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;gBAC7C,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBAC/B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;gBACrD,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;gBACnD,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;gBAErD,MAAM,CAAC,SAAS,CAAC,CAAC,yBAAyB,CAAC;oBACxC,EAAE,EAAE,MAAM;oBACV,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,GAAG;oBACV,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,6BAA6B;iBACvC,CAAC,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC9C,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBACjC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;gBAC3D,MAAM,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;gBACnC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;gBACrD,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;gBACnD,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;gBAErD,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;gBAC5C,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAClC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;YAC3B,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;gBAChD,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC7B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;gBACrD,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;gBACnD,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;gBAErD,MAAM,CAAC,SAAS,CAAC,CAAC,yBAAyB,CAAC;oBACxC,EAAE,EAAE,MAAM;oBACV,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,GAAG;oBACV,IAAI,EAAE,KAAK;iBACd,CAAC,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBAC7C,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBACjC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;gBAC9D,MAAM,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC9B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;gBACrD,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;gBACnD,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;gBAErD,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;gBAC5C,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAClC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;YAC5B,UAAU,CAAC,KAAK,IAAI,EAAE;gBAClB,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBAC/B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAChC,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;gBACvC,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;gBAC3B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;gBACrD,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;gBACnD,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;gBAErD,MAAM,CAAC,SAAS,CAAC,CAAC,yBAAyB,CAAC;oBACxC,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,IAAI;oBACV,KAAK,EAAE,IAAI;iBACd,CAAC,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAClC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACvC,UAAU,CAAC,KAAK,IAAI,EAAE;YAClB,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;YACvB,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YACvC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAC5B,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YAChE,QAAQ,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC3C,SAAS,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;YAC9C,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;YAEzB,MAAM,CAAC,QAAQ,CAAC,CAAC,yBAAyB,CAAC;gBACvC,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,IAAI;aACd,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;YACtE,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC/B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAC5B,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;YAEzB,MAAM,CAAC,QAAQ,CAAC,CAAC,yBAAyB,CAAC;gBACvC,EAAE,EAAE,MAAM;gBACV,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,GAAG;gBACV,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,6BAA6B;aACvC,CAAC,CAAC;YACH,MAAM,CAAC,SAAS,CAAC,CAAC,yBAAyB,CAAC;gBACxC,EAAE,EAAE,MAAM;gBACV,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,GAAG;gBACV,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,6BAA6B;aACvC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YAC9D,MAAM,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACpC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,MAAM,CAAC,SAAS,CAAC,CAAC,yBAAyB,CAAC;gBACxC,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,GAAG;gBACV,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,eAAe;aACzB,CAAC,CAAC;YAEH,MAAM,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACrC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,MAAM,CAAC,SAAS,CAAC,CAAC,yBAAyB,CAAC;gBACxC,EAAE,EAAE,WAAW;gBACf,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,MAAM;aACf,CAAC,CAAC;YAEH,MAAM,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACjC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,MAAM,CAAC,SAAS,CAAC,CAAC,yBAAyB,CAAC;gBACxC,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,IAAI;aACd,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;YACxF,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YACtC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YAC/F,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;YAC1E,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YAErB,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;QAC/C,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;QAC3C,IAAI,cAA0B,CAAC;QAC/B,UAAU,CAAC,KAAK,IAAI,EAAE;YAClB,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;YACvB,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;YACxC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAC5B,cAAc,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;YACxE,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YAChE,QAAQ,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC3C,SAAS,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;YAEzB,MAAM,CAAC,QAAQ,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YAC9D,MAAM,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACxC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,MAAM,CAAC,SAAS,CAAC,CAAC,yBAAyB,CAAC;gBACxC,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,GAAG;gBACV,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,eAAe;aACzB,CAAC,CAAC;YAEH,MAAM,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACzC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,MAAM,CAAC,SAAS,CAAC,CAAC,yBAAyB,CAAC;gBACxC,EAAE,EAAE,WAAW;gBACf,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,MAAM;aACf,CAAC,CAAC;YAEH,MAAM,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACrC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,MAAM,CAAC,SAAS,CAAC,CAAC,yBAAyB,CAAC;gBACxC,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,IAAI;aACd,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;QACnB,EAAE,CAAC,wDAAwD,EAAE,KAAK;YAC9D,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;YACvB,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAC5B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,MAAM,CAAC,MAAM,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK;YAC9D,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;YACvB,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,MAAM,CAAC,MAAM,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACvC,UAAU,CAAC,KAAK,IAAI,EAAE;gBAClB,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;gBACvB,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;gBACvC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAChC,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK;gBAC5D,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBAC5B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,MAAM,CAAC,MAAM,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAC7E,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK;gBAC5D,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;gBACpB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,MAAM,CAAC,MAAM,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAC7E,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACnC,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;YAC/C,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;YACvB,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACnD,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;YAC/C,MAAM,IAAI,CAAC,WAAW,CAAC;gBACnB,KAAK,EAAE,GAAG;gBACV,MAAM,EAAE,GAAG;gBACX,iBAAiB,EAAE,CAAC;gBACpB,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,KAAK;aACrB,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,YAAY,CACnB,2IAA2I,CAC9I,CAAC;YACF,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;YACvB,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACnD,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC3B,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;YAC1B,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;gBACpD,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;gBACvB,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;gBAClD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC5B,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;gBAC/C,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACzC,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACxC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;YACnB,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;gBAC5D,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;gBACvB,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;gBAClD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;gBAC9E,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;gBAEtE,iJAAiJ;gBACjJ,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAC3B,+PAA+P,CAClQ,CAAC;YACN,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;gBAC1E,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;gBACvB,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;gBAClD,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;gBACvC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC5B,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;gBAE1F,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,OAAO,CACpC,uIAAuI,CAC1I,CAAC;YACN,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;YAClC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,mCAAmC,EAAE,CAAC,CAAC;YACxE,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;YACvB,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;YAClD,MAAM,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,MAAM,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAChE,MAAM,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,MAAM,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["import { E2EElement, E2EPage, EventSpy } from '@stencil/core/testing';\nimport {\n setup,\n getFocusedAttribute,\n setTestStrings,\n evaluateA11y,\n getListOfStyleCompilationIssues,\n} from '@/utils/helpers';\n\ndescribe('q2-chart-donut', () => {\n let page: E2EPage;\n let chart: E2EElement;\n let centerCard: E2EElement;\n let name: E2EElement;\n let icon: E2EElement;\n let value: E2EElement;\n let clickSpy: EventSpy;\n let changeSpy: EventSpy;\n\n const selectById = async (page: E2EPage, id: string) => {\n return page.$eval(\n 'q2-chart-donut',\n (element: HTMLQ2ChartDonutElement, id: string) => element.selectById(id),\n id\n );\n };\n\n const selectByIndex = async (page: E2EPage, index: number) => {\n return page.$eval(\n 'q2-chart-donut',\n (element: HTMLQ2ChartDonutElement, index: number) => element.selectByIndex(index),\n index\n );\n };\n\n const clearSelection = async (page: E2EPage) => {\n return page.$eval('q2-chart-donut', (element: HTMLQ2ChartDonutElement) => element.clearSelection());\n };\n\n const getOptions = async (page: E2EPage) => {\n return page.evaluate(async () => {\n const chartElement = document.querySelector('q2-chart-donut');\n const chartInstance = await chartElement.getChartOptions();\n return chartInstance.series[0];\n });\n };\n\n const setupChart = async (page: E2EPage, props: string = '') => {\n await page.setContent(`<q2-chart-donut ${props}></q2-chart-donut>`);\n chart = await page.find('q2-chart-donut');\n chart.setProperty('data', [\n { value: 1048, name: 'Groceries', id: 'groceries', icon: 'cart' },\n { value: 735, name: 'Pets', id: 'pets', icon: 'paw' },\n { value: 580, name: 'Rent', id: 'rent', icon: 'home', color: 'var(--const-stoplight-info)' },\n { value: 484, name: 'Automobile', id: 'automobiles', icon: 'car' },\n { value: 0, name: 'Utilities', id: 'utilities', icon: 'lightbulb' },\n { value: 300, name: 'Gifts', id: 'gifts', icon: 'gift', color: 'rebeccapurple' },\n ]);\n await page.waitForChanges();\n };\n\n beforeEach(async () => {\n page = await setup({ html: '' });\n await setTestStrings(page, {\n 'tecton.element.chartDonut.button.summaryName': 'Total',\n 'tecton.element.chartDonut.button.description':\n 'Use the left and right arrow keys to navigate between slices of the chart. The escape key will reset the chart to its original state.',\n 'tecton.element.chartDonut.button.roleDescription': 'Chart button',\n });\n });\n\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-chart-donut></q2-chart-donut>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-chart-donut')).toHaveLength(0);\n });\n\n it('renders a canvas element', async () => {\n await setupChart(page);\n const canvas = await page.find('q2-chart-donut >>> canvas');\n\n expect(canvas).toBeTruthy();\n\n expect(canvas).toEqualAttribute('aria-hidden', 'true');\n });\n\n it('adds color properties to q2-icon', async () => {\n await setupChart(page);\n const getIconStyleProp = async (page: E2EPage, prop: string) =>\n page.$eval(\n 'q2-chart-donut',\n (element, [prop]) => {\n return element.shadowRoot.querySelector<HTMLElement>('q2-icon').style.getPropertyValue(prop);\n },\n [prop]\n );\n await selectById(page, 'rent');\n await page.waitForChanges();\n\n expect(await getIconStyleProp(page, '--tct-icon-stroke-primary')).toBe('var(--const-stoplight-info)');\n expect(await getIconStyleProp(page, '--tct-icon-stroke-secondary')).toBe('var(--const-stoplight-info)');\n expect(await getIconStyleProp(page, 'color')).toBe('var(--const-stoplight-info)');\n });\n\n it('displays zero values', async () => {\n await setupChart(page);\n await page.waitForChanges();\n await selectById(page, 'utilities');\n await page.waitForChanges();\n value = await page.find('q2-chart-donut >>> .value');\n\n expect(value).toEqualText('0');\n });\n\n describe('Props', () => {\n describe('showLegend', () => {\n it('when true renders the legend', async () => {\n await setupChart(page, 'show-legend=\"true\"');\n await page.waitForChanges();\n const legend = await page.find('q2-chart-donut >>> q2-legend');\n\n expect(legend).not.toBeNull();\n });\n it('when false legend not rendered', async () => {\n await setupChart(page);\n const legend = await page.find('q2-chart-donut >>> q2-legend');\n\n expect(legend).toBeNull();\n });\n });\n describe('summaryName', () => {\n describe('when not provided', () => {\n it('renders with default value', async () => {\n await setupChart(page);\n name = await page.find('q2-chart-donut >>> .name');\n\n expect(name).toEqualText('Total');\n });\n });\n\n describe('when provided', () => {\n it('renders with provided value', async () => {\n await setupChart(page);\n chart.setProperty('summaryName', 'All The Things');\n await page.waitForChanges();\n name = await page.find('q2-chart-donut >>> .name');\n\n expect(name).toEqualText('All The Things');\n });\n });\n });\n\n describe('summaryIcon', () => {\n describe('when not provided', () => {\n it('does not render', async () => {\n await setupChart(page);\n icon = await page.find('q2-chart-donut >>> .icon');\n\n expect(icon).toBeNull();\n });\n });\n\n describe('when provided', () => {\n it('renders with provided value', async () => {\n await setupChart(page);\n chart.setProperty('summaryIcon', 'coins');\n await page.waitForChanges();\n icon = await page.find('q2-chart-donut >>> q2-icon');\n\n expect(icon).toEqualAttribute('type', 'coins');\n });\n });\n });\n\n describe('format', () => {\n describe('when not provided', () => {\n it('renders default format', async () => {\n await setupChart(page);\n value = await page.find('q2-chart-donut >>> .value');\n\n expect(value).toEqualText('3,147');\n });\n });\n\n describe('when provided', () => {\n it('renders as currency', async () => {\n await setupChart(page);\n chart.setProperty('format', 'currency');\n await page.waitForChanges();\n value = await page.find('q2-chart-donut >>> .value');\n\n expect(value).toEqualText('$3,147.00');\n });\n });\n });\n\n describe('isClickable', () => {\n describe('when not provided', () => {\n it('renders center content in a div', async () => {\n await setupChart(page);\n centerCard = await page.find('q2-chart-donut >>> .center-card');\n\n expect(centerCard.tagName).toEqualText('DIV');\n expect(centerCard).not.toHaveAttribute('aria-description');\n expect(centerCard).not.toHaveAttribute('aria-roledescription');\n });\n });\n\n describe('when provided', () => {\n it('renders center content in a button', async () => {\n await setupChart(page);\n chart.setProperty('isClickable', true);\n await page.waitForChanges();\n centerCard = await page.find('q2-chart-donut >>> .center-card');\n\n expect(centerCard.tagName).toEqualText('BUTTON');\n expect(centerCard).toEqualAttribute('aria-roledescription', 'Chart button');\n expect(centerCard).toEqualAttribute('aria-describedby', 'center-card-description');\n });\n });\n });\n\n describe('minSliceSize', () => {\n const convertSliceSizeToAngle = (sliceSize: string) => {\n return (parseFloat(sliceSize) / 100) * 360;\n };\n const getMinAngle = async (page: E2EPage) => {\n const options = await getOptions(page);\n return options.minAngle;\n };\n const sliceSize = '9.5%';\n\n describe('when not provided', () => {\n it('renders with default value', async () => {\n await setupChart(page);\n const minAngle = await getMinAngle(page);\n\n expect(minAngle).toEqual(convertSliceSizeToAngle('2.5%'));\n });\n });\n\n describe('when provided', () => {\n it('on load renders with provided value', async () => {\n await setupChart(page, `min-slice-size=\"${sliceSize}\"`);\n const minAngle = await getMinAngle(page);\n\n expect(minAngle).toEqual(convertSliceSizeToAngle(sliceSize));\n });\n it('after load renders with provided value', async () => {\n await setupChart(page);\n chart.setProperty('minSliceSize', sliceSize);\n await page.waitForChanges();\n const minAngle = await getMinAngle(page);\n\n expect(minAngle).toEqual(convertSliceSizeToAngle(sliceSize));\n });\n });\n });\n });\n\n describe('Watchers', () => {\n describe('innerRadius', () => {\n describe('when changed to a value greater than outerRadius', () => {\n it('reverts the value to be 15% less than the outerRadius', async () => {\n await setupChart(page);\n\n expect(await chart.getProperty('innerRadius')).toEqual('70%');\n expect(await chart.getProperty('outerRadius')).toEqual('85%');\n\n chart.setProperty('innerRadius', '90%');\n await page.waitForChanges();\n\n expect(await chart.getProperty('innerRadius')).toEqual('70%');\n });\n });\n });\n\n describe('outerRadius', () => {\n describe('when changed to a value less than innerRadius', () => {\n it('reverts the value to be 15% more than the innerRadius', async () => {\n await setupChart(page);\n\n expect(await chart.getProperty('innerRadius')).toEqual('70%');\n expect(await chart.getProperty('outerRadius')).toEqual('85%');\n\n chart.setProperty('outerRadius', '65%');\n await page.waitForChanges();\n\n expect(await chart.getProperty('outerRadius')).toEqual('85%');\n });\n });\n });\n });\n\n describe('Methods', () => {\n beforeEach(async () => {\n await setupChart(page);\n centerCard = await page.find('q2-chart-donut >>> .center-card');\n changeSpy = await chart.spyOnEvent('change');\n });\n\n describe('selectById', () => {\n it('selects the correct slice by id', async () => {\n await selectById(page, 'rent');\n await page.waitForChanges();\n\n icon = await page.find('q2-chart-donut >>> q2-icon');\n name = await page.find('q2-chart-donut >>> .name');\n value = await page.find('q2-chart-donut >>> .value');\n\n expect(changeSpy).toHaveReceivedEventDetail({\n id: 'rent',\n name: 'Rent',\n value: 580,\n icon: 'home',\n color: 'var(--const-stoplight-info)',\n });\n expect(icon).toEqualAttribute('type', 'home');\n expect(name).toEqualText('Rent');\n expect(value).toEqualText('580');\n });\n\n it('does not emit event when invalid id is passed', async () => {\n await selectById(page, 'iron-man');\n await page.waitForChanges();\n\n icon = await page.find('q2-chart-donut >>> q2-icon');\n name = await page.find('q2-chart-donut >>> .name');\n value = await page.find('q2-chart-donut >>> .value');\n\n expect(changeSpy).not.toHaveReceivedEvent();\n expect(icon).toBeNull();\n expect(name).toEqualText('Total');\n expect(value).toEqualText('3,147');\n });\n });\n\n describe('selectByIndex', () => {\n it('selects the correct slice by index', async () => {\n await selectByIndex(page, 1);\n await page.waitForChanges();\n\n icon = await page.find('q2-chart-donut >>> q2-icon');\n name = await page.find('q2-chart-donut >>> .name');\n value = await page.find('q2-chart-donut >>> .value');\n\n expect(changeSpy).toHaveReceivedEventDetail({\n id: 'pets',\n name: 'Pets',\n value: 735,\n icon: 'paw',\n });\n expect(icon).toEqualAttribute('type', 'paw');\n expect(name).toEqualText('Pets');\n expect(value).toEqualText('735');\n });\n\n it('does not emit event when invalid index is passed', async () => {\n await selectByIndex(page, 10);\n await page.waitForChanges();\n\n icon = await page.find('q2-chart-donut >>> q2-icon');\n name = await page.find('q2-chart-donut >>> .name');\n value = await page.find('q2-chart-donut >>> .value');\n\n expect(changeSpy).not.toHaveReceivedEvent();\n expect(icon).toBeNull();\n expect(name).toEqualText('Total');\n expect(value).toEqualText('3,147');\n });\n });\n\n describe('clearSelection', () => {\n beforeEach(async () => {\n await selectById(page, 'rent');\n await page.waitForChanges();\n });\n\n it('clears the selected slice', async () => {\n await clearSelection(page);\n await page.waitForChanges();\n\n icon = await page.find('q2-chart-donut >>> q2-icon');\n name = await page.find('q2-chart-donut >>> .name');\n value = await page.find('q2-chart-donut >>> .value');\n\n expect(changeSpy).toHaveReceivedEventDetail({\n id: null,\n name: null,\n value: null,\n });\n expect(icon).toBeNull();\n expect(name).toEqualText('Total');\n expect(value).toEqualText('3,147');\n });\n });\n });\n\n describe('when element is clickable', () => {\n beforeEach(async () => {\n await setupChart(page);\n chart.setProperty('isClickable', true);\n await page.waitForChanges();\n centerCard = await page.find('q2-chart-donut >>> .center-card');\n clickSpy = await chart.spyOnEvent('click');\n changeSpy = await chart.spyOnEvent('change');\n });\n\n it('emits a click event when clicked', async () => {\n await centerCard.click();\n\n expect(clickSpy).toHaveReceivedEventDetail({\n id: null,\n name: null,\n value: null,\n });\n });\n\n it('and a slice is selected emits a click event when clicked', async () => {\n await selectById(page, 'rent');\n await page.waitForChanges();\n await centerCard.click();\n\n expect(clickSpy).toHaveReceivedEventDetail({\n id: 'rent',\n name: 'Rent',\n value: 580,\n icon: 'home',\n color: 'var(--const-stoplight-info)',\n });\n expect(changeSpy).toHaveReceivedEventDetail({\n id: 'rent',\n name: 'Rent',\n value: 580,\n icon: 'home',\n color: 'var(--const-stoplight-info)',\n });\n });\n\n it('emits a change event when arrow keys are pressed', async () => {\n await centerCard.press('ArrowLeft');\n await page.waitForChanges();\n\n expect(changeSpy).toHaveReceivedEventDetail({\n id: 'gifts',\n name: 'Gifts',\n value: 300,\n icon: 'gift',\n color: 'rebeccapurple',\n });\n\n await centerCard.press('ArrowRight');\n await page.waitForChanges();\n\n expect(changeSpy).toHaveReceivedEventDetail({\n id: 'groceries',\n name: 'Groceries',\n value: 1048,\n icon: 'cart',\n });\n\n await centerCard.press('Escape');\n await page.waitForChanges();\n\n expect(changeSpy).toHaveReceivedEventDetail({\n id: null,\n name: null,\n value: null,\n });\n });\n\n it('and has a legend does not emit a click event when a legend item is clicked', async () => {\n chart.setProperty('showLegend', true);\n chart.setProperty('data', [{ value: 1048, name: 'Groceries', id: 'groceries', icon: 'cart' }]);\n await page.waitForChanges();\n const legend = await page.find('q2-chart-donut >>> q2-legend >>> button');\n await legend.click();\n\n expect(clickSpy).not.toHaveReceivedEvent();\n });\n });\n\n describe('when element is not clickable', () => {\n let chartContainer: E2EElement;\n beforeEach(async () => {\n await setupChart(page);\n chart.setProperty('isClickable', false);\n await page.waitForChanges();\n chartContainer = await page.find('q2-chart-donut >>> .chart-container');\n centerCard = await page.find('q2-chart-donut >>> .center-card');\n clickSpy = await chart.spyOnEvent('click');\n changeSpy = await chart.spyOnEvent('change');\n });\n\n it('does not emit click event when clicked', async () => {\n await centerCard.click();\n\n expect(clickSpy).toHaveReceivedEventDetail(1);\n });\n\n it('emits a change event when arrow keys are pressed', async () => {\n await chartContainer.press('ArrowLeft');\n await page.waitForChanges();\n\n expect(changeSpy).toHaveReceivedEventDetail({\n id: 'gifts',\n name: 'Gifts',\n value: 300,\n icon: 'gift',\n color: 'rebeccapurple',\n });\n\n await chartContainer.press('ArrowRight');\n await page.waitForChanges();\n\n expect(changeSpy).toHaveReceivedEventDetail({\n id: 'groceries',\n name: 'Groceries',\n value: 1048,\n icon: 'cart',\n });\n\n await chartContainer.press('Escape');\n await page.waitForChanges();\n\n expect(changeSpy).toHaveReceivedEventDetail({\n id: null,\n name: null,\n value: null,\n });\n });\n });\n\n describe('focus', () => {\n it('does not focus anything when focus event is dispatched', async function (): Promise<void> {\n await setupChart(page);\n chart.triggerEvent('focus');\n await page.waitForChanges();\n\n expect(await getFocusedAttribute(page, 'test-id')).toBeNull();\n });\n\n it('does not focus anything when element.focus() is called', async function (): Promise<void> {\n await setupChart(page);\n await chart.focus();\n await page.waitForChanges();\n\n expect(await getFocusedAttribute(page, 'test-id')).toBeNull();\n });\n\n describe('when element is clickable', () => {\n beforeEach(async () => {\n await setupChart(page);\n chart.setProperty('isClickable', true);\n await page.waitForChanges();\n });\n\n it('focuses center button when focus event is dispatched', async function (): Promise<void> {\n chart.triggerEvent('focus');\n await page.waitForChanges();\n\n expect(await getFocusedAttribute(page, 'test-id')).toEqual('centerCard');\n });\n\n it('focuses center button when element.focus() is called', async function (): Promise<void> {\n await chart.focus();\n await page.waitForChanges();\n\n expect(await getFocusedAttribute(page, 'test-id')).toEqual('centerCard');\n });\n });\n });\n\n describe('emphasis chart option', () => {\n it('is enabled in desktop environment', async () => {\n await setupChart(page);\n const options = await getOptions(page);\n const emphasisDisabled = options.emphasis.disabled;\n expect(emphasisDisabled).toBe(false);\n });\n\n it('is disabled in mobile environment', async () => {\n await page.setViewport({\n width: 375,\n height: 812,\n deviceScaleFactor: 3,\n isMobile: true,\n hasTouch: true,\n isLandscape: false,\n });\n await page.setUserAgent(\n 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Mobile/15E148 Safari/604.1'\n );\n await setupChart(page);\n const options = await getOptions(page);\n const emphasisDisabled = options.emphasis.disabled;\n expect(emphasisDisabled).toBe(true);\n });\n });\n\n describe('Accessibility', () => {\n describe('aXe DevTools', () => {\n it('does not have accessibility violations', async () => {\n await setupChart(page);\n chart.setProperty('chartName', 'Recent Spending');\n await page.waitForChanges();\n const hasViolations = await evaluateA11y(page);\n expect(hasViolations).toBe(false);\n });\n });\n describe('Accessibility Tree', () => {});\n describe('Keyboard Controls', () => {});\n describe('Other', () => {\n it('renders a descriptive aria-label for the chart', async () => {\n await setupChart(page);\n chart.setProperty('chartName', 'Recent Spending');\n await page.waitForChanges();\n\n const chartContainer = await page.find('q2-chart-donut >>> .chart-container');\n const ariaLabelText = await chartContainer.getAttribute('aria-label');\n\n // this text is provided through the built-in accessibility feature from the Apache Echarts library when 'aria: true' is set in the chart options\n expect(ariaLabelText).toContain(\n 'This is a chart with type Pie chart named Recent Spending.The data is as follows: the data for Groceries is 1048, the data for Pets is 735, the data for Rent is 580, the data for Automobile is 484, the data for Utilities is 0, the data for Gifts is 300.'\n );\n });\n\n it('renders a descriptive aria-describedby element for the chart', async () => {\n await setupChart(page);\n chart.setProperty('chartName', 'Recent Spending');\n chart.setProperty('isClickable', true);\n await page.waitForChanges();\n const descriptionDiv = await page.find('q2-chart-donut >>> [id=center-card-description]');\n\n expect(descriptionDiv.innerText).toEqual(\n 'Use the left and right arrow keys to navigate between slices of the chart. The escape key will reset the chart to its original state.'\n );\n });\n });\n });\n\n describe('Test methods', () => {\n it('call selectDataPoint', async () => {\n const page = await setup({ html: '<q2-chart-donut></q2-chart-donut>' });\n await setupChart(page);\n chart.setProperty('chartName', 'Recent Spending');\n await chart.callMethod('selectDataPoint', 0);\n expect(await chart.getProperty('selectedId')).toBe('groceries');\n await chart.callMethod('selectDataPoint', 2);\n expect(await chart.getProperty('selectedId')).toBe('rent');\n });\n });\n});\n"]}
1
+ {"version":3,"file":"q2-chart-donut-test.e2e.js","sourceRoot":"","sources":["../../../../../src/components/q2-chart-donut/test/q2-chart-donut-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage, EventSpy } from '@stencil/core/testing';\nimport {\n setup,\n getFocusedAttribute,\n setTestStrings,\n evaluateA11y,\n getListOfStyleCompilationIssues,\n} from '@/utils/helpers';\n\ndescribe('q2-chart-donut', () => {\n let page: E2EPage;\n let chart: E2EElement;\n let centerCard: E2EElement;\n let name: E2EElement;\n let icon: E2EElement;\n let value: E2EElement;\n let clickSpy: EventSpy;\n let changeSpy: EventSpy;\n\n const selectById = async (page: E2EPage, id: string) => {\n return page.$eval(\n 'q2-chart-donut',\n (element: HTMLQ2ChartDonutElement, id: string) => element.selectById(id),\n id\n );\n };\n\n const selectByIndex = async (page: E2EPage, index: number) => {\n return page.$eval(\n 'q2-chart-donut',\n (element: HTMLQ2ChartDonutElement, index: number) => element.selectByIndex(index),\n index\n );\n };\n\n const clearSelection = async (page: E2EPage) => {\n return page.$eval('q2-chart-donut', (element: HTMLQ2ChartDonutElement) => element.clearSelection());\n };\n\n const getOptions = async (page: E2EPage) => {\n return page.evaluate(async () => {\n const chartElement = document.querySelector('q2-chart-donut');\n const chartInstance = await chartElement.getChartOptions();\n return chartInstance.series[0];\n });\n };\n\n const setupChart = async (page: E2EPage, props: string = '') => {\n await page.setContent(`<q2-chart-donut ${props}></q2-chart-donut>`);\n chart = await page.find('q2-chart-donut');\n chart.setProperty('data', [\n { value: 1048, name: 'Groceries', id: 'groceries', icon: 'cart' },\n { value: 735, name: 'Pets', id: 'pets', icon: 'paw' },\n { value: 580, name: 'Rent', id: 'rent', icon: 'home', color: 'var(--const-stoplight-info)' },\n { value: 484, name: 'Automobile', id: 'automobiles', icon: 'car' },\n { value: 0, name: 'Utilities', id: 'utilities', icon: 'lightbulb' },\n { value: 300, name: 'Gifts', id: 'gifts', icon: 'gift', color: 'rebeccapurple' },\n ]);\n await page.waitForChanges();\n };\n\n beforeEach(async () => {\n page = await setup({ html: '' });\n await setTestStrings(page, {\n 'tecton.element.chartDonut.button.summaryName': 'Total',\n 'tecton.element.chartDonut.button.description':\n 'Use the left and right arrow keys to navigate between slices of the chart. The escape key will reset the chart to its original state.',\n 'tecton.element.chartDonut.button.roleDescription': 'Chart button',\n });\n });\n\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-chart-donut></q2-chart-donut>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-chart-donut')).toHaveLength(0);\n });\n\n it('renders a canvas element', async () => {\n await setupChart(page);\n const canvas = await page.find('q2-chart-donut >>> canvas');\n\n expect(canvas).toBeTruthy();\n\n expect(canvas).toEqualAttribute('aria-hidden', 'true');\n });\n\n it('adds color properties to q2-icon', async () => {\n await setupChart(page);\n const getIconStyleProp = async (page: E2EPage, prop: string) =>\n page.$eval(\n 'q2-chart-donut',\n (element, [prop]) => {\n return element.shadowRoot.querySelector<HTMLElement>('q2-icon').style.getPropertyValue(prop);\n },\n [prop]\n );\n await selectById(page, 'rent');\n await page.waitForChanges();\n\n expect(await getIconStyleProp(page, '--tct-icon-stroke-primary')).toBe('var(--const-stoplight-info)');\n expect(await getIconStyleProp(page, '--tct-icon-stroke-secondary')).toBe('var(--const-stoplight-info)');\n expect(await getIconStyleProp(page, 'color')).toBe('var(--const-stoplight-info)');\n });\n\n it('displays zero values', async () => {\n await setupChart(page);\n await page.waitForChanges();\n await selectById(page, 'utilities');\n await page.waitForChanges();\n value = await page.find('q2-chart-donut >>> .value');\n\n expect(value).toEqualText('0');\n });\n\n describe('Props', () => {\n describe('showLegend', () => {\n it('when true renders the legend', async () => {\n await setupChart(page, 'show-legend=\"true\"');\n await page.waitForChanges();\n const legend = await page.find('q2-chart-donut >>> q2-legend');\n\n expect(legend).not.toBeNull();\n });\n it('when false legend not rendered', async () => {\n await setupChart(page);\n const legend = await page.find('q2-chart-donut >>> q2-legend');\n\n expect(legend).toBeNull();\n });\n });\n describe('summaryName', () => {\n describe('when not provided', () => {\n it('renders with default value', async () => {\n await setupChart(page);\n name = await page.find('q2-chart-donut >>> .name');\n\n expect(name).toEqualText('Total');\n });\n });\n\n describe('when provided', () => {\n it('renders with provided value', async () => {\n await setupChart(page);\n chart.setProperty('summaryName', 'All The Things');\n await page.waitForChanges();\n name = await page.find('q2-chart-donut >>> .name');\n\n expect(name).toEqualText('All The Things');\n });\n });\n });\n\n describe('summaryIcon', () => {\n describe('when not provided', () => {\n it('does not render', async () => {\n await setupChart(page);\n icon = await page.find('q2-chart-donut >>> .icon');\n\n expect(icon).toBeNull();\n });\n });\n\n describe('when provided', () => {\n it('renders with provided value', async () => {\n await setupChart(page);\n chart.setProperty('summaryIcon', 'coins');\n await page.waitForChanges();\n icon = await page.find('q2-chart-donut >>> q2-icon');\n\n expect(icon).toEqualAttribute('type', 'coins');\n });\n });\n });\n\n describe('format', () => {\n describe('when not provided', () => {\n it('renders default format', async () => {\n await setupChart(page);\n value = await page.find('q2-chart-donut >>> .value');\n\n expect(value).toEqualText('3,147');\n });\n });\n\n describe('when provided', () => {\n it('renders as currency', async () => {\n await setupChart(page);\n chart.setProperty('format', 'currency');\n await page.waitForChanges();\n value = await page.find('q2-chart-donut >>> .value');\n\n expect(value).toEqualText('$3,147.00');\n });\n });\n });\n\n describe('isClickable', () => {\n describe('when not provided', () => {\n it('renders center content in a div', async () => {\n await setupChart(page);\n centerCard = await page.find('q2-chart-donut >>> .center-card');\n\n expect(centerCard.tagName).toEqualText('DIV');\n expect(centerCard).not.toHaveAttribute('aria-description');\n expect(centerCard).not.toHaveAttribute('aria-roledescription');\n });\n });\n\n describe('when provided', () => {\n it('renders center content in a button', async () => {\n await setupChart(page);\n chart.setProperty('isClickable', true);\n await page.waitForChanges();\n centerCard = await page.find('q2-chart-donut >>> .center-card');\n\n expect(centerCard.tagName).toEqualText('BUTTON');\n expect(centerCard).toEqualAttribute('aria-roledescription', 'Chart button');\n expect(centerCard).toEqualAttribute('aria-describedby', 'center-card-description');\n });\n });\n });\n\n describe('minSliceSize', () => {\n const convertSliceSizeToAngle = (sliceSize: string) => {\n return (parseFloat(sliceSize) / 100) * 360;\n };\n const getMinAngle = async (page: E2EPage) => {\n const options = await getOptions(page);\n return options.minAngle;\n };\n const sliceSize = '9.5%';\n\n describe('when not provided', () => {\n it('renders with default value', async () => {\n await setupChart(page);\n const minAngle = await getMinAngle(page);\n\n expect(minAngle).toEqual(convertSliceSizeToAngle('2.5%'));\n });\n });\n\n describe('when provided', () => {\n it('on load renders with provided value', async () => {\n await setupChart(page, `min-slice-size=\"${sliceSize}\"`);\n const minAngle = await getMinAngle(page);\n\n expect(minAngle).toEqual(convertSliceSizeToAngle(sliceSize));\n });\n it('after load renders with provided value', async () => {\n await setupChart(page);\n chart.setProperty('minSliceSize', sliceSize);\n await page.waitForChanges();\n const minAngle = await getMinAngle(page);\n\n expect(minAngle).toEqual(convertSliceSizeToAngle(sliceSize));\n });\n });\n });\n });\n\n describe('Watchers', () => {\n describe('innerRadius', () => {\n describe('when changed to a value greater than outerRadius', () => {\n it('reverts the value to be 15% less than the outerRadius', async () => {\n await setupChart(page);\n\n expect(await chart.getProperty('innerRadius')).toEqual('70%');\n expect(await chart.getProperty('outerRadius')).toEqual('85%');\n\n chart.setProperty('innerRadius', '90%');\n await page.waitForChanges();\n\n expect(await chart.getProperty('innerRadius')).toEqual('70%');\n });\n });\n });\n\n describe('outerRadius', () => {\n describe('when changed to a value less than innerRadius', () => {\n it('reverts the value to be 15% more than the innerRadius', async () => {\n await setupChart(page);\n\n expect(await chart.getProperty('innerRadius')).toEqual('70%');\n expect(await chart.getProperty('outerRadius')).toEqual('85%');\n\n chart.setProperty('outerRadius', '65%');\n await page.waitForChanges();\n\n expect(await chart.getProperty('outerRadius')).toEqual('85%');\n });\n });\n });\n });\n\n describe('Methods', () => {\n beforeEach(async () => {\n await setupChart(page);\n centerCard = await page.find('q2-chart-donut >>> .center-card');\n changeSpy = await chart.spyOnEvent('change');\n });\n\n describe('selectById', () => {\n it('selects the correct slice by id', async () => {\n await selectById(page, 'rent');\n await page.waitForChanges();\n\n icon = await page.find('q2-chart-donut >>> q2-icon');\n name = await page.find('q2-chart-donut >>> .name');\n value = await page.find('q2-chart-donut >>> .value');\n\n expect(changeSpy).toHaveReceivedEventDetail({\n id: 'rent',\n name: 'Rent',\n value: 580,\n icon: 'home',\n color: 'var(--const-stoplight-info)',\n });\n expect(icon).toEqualAttribute('type', 'home');\n expect(name).toEqualText('Rent');\n expect(value).toEqualText('580');\n });\n\n it('does not emit event when invalid id is passed', async () => {\n await selectById(page, 'iron-man');\n await page.waitForChanges();\n\n icon = await page.find('q2-chart-donut >>> q2-icon');\n name = await page.find('q2-chart-donut >>> .name');\n value = await page.find('q2-chart-donut >>> .value');\n\n expect(changeSpy).not.toHaveReceivedEvent();\n expect(icon).toBeNull();\n expect(name).toEqualText('Total');\n expect(value).toEqualText('3,147');\n });\n });\n\n describe('selectByIndex', () => {\n it('selects the correct slice by index', async () => {\n await selectByIndex(page, 1);\n await page.waitForChanges();\n\n icon = await page.find('q2-chart-donut >>> q2-icon');\n name = await page.find('q2-chart-donut >>> .name');\n value = await page.find('q2-chart-donut >>> .value');\n\n expect(changeSpy).toHaveReceivedEventDetail({\n id: 'pets',\n name: 'Pets',\n value: 735,\n icon: 'paw',\n });\n expect(icon).toEqualAttribute('type', 'paw');\n expect(name).toEqualText('Pets');\n expect(value).toEqualText('735');\n });\n\n it('does not emit event when invalid index is passed', async () => {\n await selectByIndex(page, 10);\n await page.waitForChanges();\n\n icon = await page.find('q2-chart-donut >>> q2-icon');\n name = await page.find('q2-chart-donut >>> .name');\n value = await page.find('q2-chart-donut >>> .value');\n\n expect(changeSpy).not.toHaveReceivedEvent();\n expect(icon).toBeNull();\n expect(name).toEqualText('Total');\n expect(value).toEqualText('3,147');\n });\n });\n\n describe('clearSelection', () => {\n beforeEach(async () => {\n await selectById(page, 'rent');\n await page.waitForChanges();\n });\n\n it('clears the selected slice', async () => {\n await clearSelection(page);\n await page.waitForChanges();\n\n icon = await page.find('q2-chart-donut >>> q2-icon');\n name = await page.find('q2-chart-donut >>> .name');\n value = await page.find('q2-chart-donut >>> .value');\n\n expect(changeSpy).toHaveReceivedEventDetail({\n id: null,\n name: null,\n value: null,\n });\n expect(icon).toBeNull();\n expect(name).toEqualText('Total');\n expect(value).toEqualText('3,147');\n });\n });\n });\n\n describe('when element is clickable', () => {\n beforeEach(async () => {\n await setupChart(page);\n chart.setProperty('isClickable', true);\n await page.waitForChanges();\n centerCard = await page.find('q2-chart-donut >>> .center-card');\n clickSpy = await chart.spyOnEvent('click');\n changeSpy = await chart.spyOnEvent('change');\n });\n\n it('emits a click event when clicked', async () => {\n await centerCard.click();\n\n expect(clickSpy).toHaveReceivedEventDetail({\n id: null,\n name: null,\n value: null,\n });\n });\n\n it('and a slice is selected emits a click event when clicked', async () => {\n await selectById(page, 'rent');\n await page.waitForChanges();\n await centerCard.click();\n\n expect(clickSpy).toHaveReceivedEventDetail({\n id: 'rent',\n name: 'Rent',\n value: 580,\n icon: 'home',\n color: 'var(--const-stoplight-info)',\n });\n expect(changeSpy).toHaveReceivedEventDetail({\n id: 'rent',\n name: 'Rent',\n value: 580,\n icon: 'home',\n color: 'var(--const-stoplight-info)',\n });\n });\n\n it('emits a change event when arrow keys are pressed', async () => {\n await centerCard.press('ArrowLeft');\n await page.waitForChanges();\n\n expect(changeSpy).toHaveReceivedEventDetail({\n id: 'gifts',\n name: 'Gifts',\n value: 300,\n icon: 'gift',\n color: 'rebeccapurple',\n });\n\n await centerCard.press('ArrowRight');\n await page.waitForChanges();\n\n expect(changeSpy).toHaveReceivedEventDetail({\n id: 'groceries',\n name: 'Groceries',\n value: 1048,\n icon: 'cart',\n });\n\n await centerCard.press('Escape');\n await page.waitForChanges();\n\n expect(changeSpy).toHaveReceivedEventDetail({\n id: null,\n name: null,\n value: null,\n });\n });\n\n it('and has a legend does not emit a click event when a legend item is clicked', async () => {\n chart.setProperty('showLegend', true);\n chart.setProperty('data', [{ value: 1048, name: 'Groceries', id: 'groceries', icon: 'cart' }]);\n await page.waitForChanges();\n const legend = await page.find('q2-chart-donut >>> q2-legend >>> button');\n await legend.click();\n\n expect(clickSpy).not.toHaveReceivedEvent();\n });\n });\n\n describe('when element is not clickable', () => {\n let chartContainer: E2EElement;\n beforeEach(async () => {\n await setupChart(page);\n chart.setProperty('isClickable', false);\n await page.waitForChanges();\n chartContainer = await page.find('q2-chart-donut >>> .chart-container');\n centerCard = await page.find('q2-chart-donut >>> .center-card');\n clickSpy = await chart.spyOnEvent('click');\n changeSpy = await chart.spyOnEvent('change');\n });\n\n it('does not emit click event when clicked', async () => {\n await centerCard.click();\n\n expect(clickSpy).toHaveReceivedEventDetail(1);\n });\n\n it('emits a change event when arrow keys are pressed', async () => {\n await chartContainer.press('ArrowLeft');\n await page.waitForChanges();\n\n expect(changeSpy).toHaveReceivedEventDetail({\n id: 'gifts',\n name: 'Gifts',\n value: 300,\n icon: 'gift',\n color: 'rebeccapurple',\n });\n\n await chartContainer.press('ArrowRight');\n await page.waitForChanges();\n\n expect(changeSpy).toHaveReceivedEventDetail({\n id: 'groceries',\n name: 'Groceries',\n value: 1048,\n icon: 'cart',\n });\n\n await chartContainer.press('Escape');\n await page.waitForChanges();\n\n expect(changeSpy).toHaveReceivedEventDetail({\n id: null,\n name: null,\n value: null,\n });\n });\n });\n\n describe('focus', () => {\n it('does not focus anything when focus event is dispatched', async function (): Promise<void> {\n await setupChart(page);\n chart.triggerEvent('focus');\n await page.waitForChanges();\n\n expect(await getFocusedAttribute(page, 'test-id')).toBeNull();\n });\n\n it('does not focus anything when element.focus() is called', async function (): Promise<void> {\n await setupChart(page);\n await chart.focus();\n await page.waitForChanges();\n\n expect(await getFocusedAttribute(page, 'test-id')).toBeNull();\n });\n\n describe('when element is clickable', () => {\n beforeEach(async () => {\n await setupChart(page);\n chart.setProperty('isClickable', true);\n await page.waitForChanges();\n });\n\n it('focuses center button when focus event is dispatched', async function (): Promise<void> {\n chart.triggerEvent('focus');\n await page.waitForChanges();\n\n expect(await getFocusedAttribute(page, 'test-id')).toEqual('centerCard');\n });\n\n it('focuses center button when element.focus() is called', async function (): Promise<void> {\n await chart.focus();\n await page.waitForChanges();\n\n expect(await getFocusedAttribute(page, 'test-id')).toEqual('centerCard');\n });\n });\n });\n\n describe('emphasis chart option', () => {\n it('is enabled in desktop environment', async () => {\n await setupChart(page);\n const options = await getOptions(page);\n const emphasisDisabled = options.emphasis.disabled;\n expect(emphasisDisabled).toBe(false);\n });\n\n it('is disabled in mobile environment', async () => {\n await page.setViewport({\n width: 375,\n height: 812,\n deviceScaleFactor: 3,\n isMobile: true,\n hasTouch: true,\n isLandscape: false,\n });\n await page.setUserAgent(\n 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Mobile/15E148 Safari/604.1'\n );\n await setupChart(page);\n const options = await getOptions(page);\n const emphasisDisabled = options.emphasis.disabled;\n expect(emphasisDisabled).toBe(true);\n });\n });\n\n describe('Accessibility', () => {\n describe('aXe DevTools', () => {\n it('does not have accessibility violations', async () => {\n await setupChart(page);\n chart.setProperty('chartName', 'Recent Spending');\n await page.waitForChanges();\n const hasViolations = await evaluateA11y(page);\n expect(hasViolations).toBe(false);\n });\n });\n describe('Accessibility Tree', () => {});\n describe('Keyboard Controls', () => {});\n describe('Other', () => {\n it('renders a descriptive aria-label for the chart', async () => {\n await setupChart(page);\n chart.setProperty('chartName', 'Recent Spending');\n await page.waitForChanges();\n\n const chartContainer = await page.find('q2-chart-donut >>> .chart-container');\n const ariaLabelText = await chartContainer.getAttribute('aria-label');\n\n // this text is provided through the built-in accessibility feature from the Apache Echarts library when 'aria: true' is set in the chart options\n expect(ariaLabelText).toContain(\n 'This is a chart with type Pie chart named Recent Spending.The data is as follows: the data for Groceries is 1048, the data for Pets is 735, the data for Rent is 580, the data for Automobile is 484, the data for Utilities is 0, the data for Gifts is 300.'\n );\n });\n\n it('renders a descriptive aria-describedby element for the chart', async () => {\n await setupChart(page);\n chart.setProperty('chartName', 'Recent Spending');\n chart.setProperty('isClickable', true);\n await page.waitForChanges();\n const descriptionDiv = await page.find('q2-chart-donut >>> [id=center-card-description]');\n\n expect(descriptionDiv.innerText).toEqual(\n 'Use the left and right arrow keys to navigate between slices of the chart. The escape key will reset the chart to its original state.'\n );\n });\n });\n });\n\n describe('Test methods', () => {\n it('call selectDataPoint', async () => {\n const page = await setup({ html: '<q2-chart-donut></q2-chart-donut>' });\n await setupChart(page);\n chart.setProperty('chartName', 'Recent Spending');\n await chart.callMethod('selectDataPoint', 0);\n expect(await chart.getProperty('selectedId')).toBe('groceries');\n await chart.callMethod('selectDataPoint', 2);\n expect(await chart.getProperty('selectedId')).toBe('rent');\n });\n });\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"q2-checkbox.js","sourceRoot":"","sources":["../../../src/components/q2-checkbox/q2-checkbox.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, ComponentInterface, Prop, Element, Listen, Watch, Event, EventEmitter, h } from '@stencil/core';\nimport { createGuid, handleAriaLabel, isEventFromElement, loc, overrideFocus } from 'src/utils';\n\n@Component({ tag: 'q2-checkbox', shadow: true, styleUrl: 'q2-checkbox.scss' })\nexport class Q2Checkbox implements ComponentInterface {\n // #region Own Properties\n\n _id: string = `checkbox-${createGuid()}`;\n inputElement: HTMLInputElement;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region Public Property API\n\n /** Determine which side of the label the checkbox will render on. */\n @Prop({ reflect: true })\n alignment: string;\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n ariaLabel: string;\n\n /** The state of the checkbox. This modifies the visual appearance of the element. */\n @Prop({ reflect: true, mutable: true })\n checked: boolean = false;\n\n /**\n * Populates a description that is displayed beneath the label.\n * @localizable\n */\n @Prop({ reflect: true })\n description: string;\n\n /** Disables the checkbox and prevents interaction. */\n @Prop({ reflect: true })\n disabled: boolean;\n\n /**\n * Used by q2-checkbox-group to disable all checkboxes in the group\n * @private\n */\n @Prop({ reflect: true })\n groupDisabled: boolean;\n\n /** Determines if the component should display in an errant state. */\n @Prop({ reflect: true })\n hasError: boolean = false;\n\n /**\n * Hide's the field's `<label>` element from view.\n *\n * @warning\n * Only use when a visible label is impractical.\n */\n @Prop({ reflect: true, mutable: true })\n hideLabel: boolean;\n\n /**\n * Used on a parent checkbox in a checkbox group (e.g. \"Select All\") to indicate that some, but not all, checkboxes in a group are checked.\n *\n * When `true`, the \"indeterminate\" selection style is applied.\n * To apply the standard \"checked\" selection style, `checked` must be true, and `indeterminate` must be `false`.\n */\n @Prop({ reflect: true })\n indeterminate: boolean;\n\n /**\n * The visible label text for the checkbox. Appears to the right of the box for 'default' and 'favorite' checkboxes, and to the left for 'toggle' checkboxes.\n * Yielded content will be adjacent to this text.\n * @localizable\n */\n @Prop({ reflect: true, mutable: true })\n label: string;\n\n /** A static string used to establish a symbolic relationship between checkboxes. */\n @Prop({ reflect: true })\n name: string;\n\n /** The field is not interactive, but remains focusable. */\n @Prop({ reflect: true })\n readonly: boolean;\n\n /** The field is not interactive, but remains focusable. */\n @Prop({ reflect: true })\n slotReadonly: boolean;\n\n /** The visual style of the checkbox. This does not need to be defined for a standard checkbox. */\n @Prop({ reflect: true })\n type: 'favorite' | 'toggle';\n\n /** A static reference value for the checkbox. */\n @Prop({ reflect: true })\n value: string;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the checkbox is toggled.\n * @legacyEvent\n */\n @Event()\n change: EventEmitter<{ value: string; checked: boolean }>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentWillLoad() {\n handleAriaLabel(this);\n }\n\n componentDidLoad(): void {\n overrideFocus(this.hostElement);\n this.hostElement.click = () => this.inputElement.click();\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('change')\n defaultChangeHandler(event: CustomEvent) {\n // We use setTimeout to give an opportunity to call preventDefault\n setTimeout(() => this.handleChangeEvent(event), 0);\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.hostElement.shadowRoot.querySelector('input').focus();\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('ariaLabel')\n ariaLabelObserver() {\n handleAriaLabel(this);\n }\n\n // #endregion\n // #region Local Methods\n\n generateCheckboxSVG() {\n if (this.type === 'favorite') {\n return (\n <q2-icon\n type=\"star\"\n class=\"checkbox-icon\"\n />\n );\n }\n\n if (this.type === 'toggle') {\n return this.generateToggleSVG();\n }\n\n return (\n <svg\n aria-hidden=\"true\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n class=\"checkbox-icon\"\n focusable=\"false\"\n >\n <rect\n x=\"1\"\n y=\"1\"\n width=\"18\"\n height=\"18\"\n rx=\"3\"\n />\n {(this.checked || this.indeterminate) && this.generateCheckBoxSVGFill()}\n </svg>\n );\n }\n\n generateCheckBoxSVGFill() {\n if (this.indeterminate) {\n return (\n <line\n class=\"checkbox-fill indeterminate-fill\"\n x1=\"4\"\n y1=\"10\"\n x2=\"16\"\n y2=\"10\"\n />\n );\n }\n return (\n <polyline\n class=\"checkbox-fill checked-fill\"\n points=\"5 11 8.5 14.5 15 6\"\n />\n );\n }\n\n generateToggleSVG() {\n return (\n <div class=\"toggle-svg\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n viewBox=\"0 0 46 14\"\n class=\"toggle-track\"\n test-id=\"toggleTrack\"\n >\n <rect\n width=\"36\"\n height=\"14\"\n rx=\"7\"\n x=\"5\"\n />\n </svg>\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n viewBox=\"0 0 30 30\"\n class=\"toggle-indicator\"\n test-id=\"toggleIndicator\"\n >\n <circle\n class=\"toggle-hover-circle\"\n width=\"20\"\n height=\"20\"\n cx=\"15\"\n cy=\"15\"\n r=\"10\"\n />\n <circle\n class=\"toggle-circle\"\n width=\"20\"\n height=\"20\"\n cx=\"15\"\n cy=\"15\"\n r=\"10\"\n />\n <line\n class=\"off checked-fill\"\n x1=\"12\"\n y1=\"18\"\n x2=\"18\"\n y2=\"12\"\n />\n <line\n class=\"off checked-fill\"\n x1=\"12\"\n y1=\"12\"\n x2=\"18\"\n y2=\"18\"\n />\n <polyline\n class=\"on checked-fill\"\n points=\"11,16 14,19 18,12 14,19\"\n />\n </svg>\n </div>\n );\n }\n\n handleChangeEvent(event: CustomEvent<{ checked: boolean; value: string }>) {\n if (\n this.readonly ||\n this.disabled ||\n this.hostElement.onchange ||\n event.defaultPrevented ||\n event.target !== this.hostElement ||\n !event.detail\n ) {\n return;\n }\n this.checked = event.detail.checked;\n }\n\n onInputClick = (event: Event) => {\n event.stopPropagation();\n event.preventDefault();\n\n const isNotInteractive = this.disabled || this.readonly || this.slotReadonly;\n if (isNotInteractive) return;\n if (!(event.target instanceof HTMLInputElement)) return;\n const { value, checked } = event.target;\n\n this.change.emit({\n value,\n checked,\n });\n this.inputElement.focus();\n };\n\n // #endregion\n // #region Render Methods\n\n render() {\n const textLabelClasses = ['label-text'];\n if (this.hideLabel) textLabelClasses.push('sr');\n return (\n <div class=\"container\">\n <input\n ref={el => (this.inputElement = el)}\n aria-describedby={this.description ? 'description' : undefined}\n aria-invalid={this.hasError === undefined ? undefined : `${this.hasError}`}\n checked={this.indeterminate || this.checked || false}\n class=\"sr\"\n disabled={!!this.disabled || !!this.groupDisabled}\n id={this._id}\n name={this.name || this._id}\n onClick={this.onInputClick}\n test-id=\"q2CheckboxInnerCheckBox\"\n type=\"checkbox\"\n value={this.value}\n />\n <label\n htmlFor={this._id}\n class=\"label-control\"\n test-id=\"checkboxButton\"\n >\n {this.generateCheckboxSVG()}\n </label>\n <div class={textLabelClasses.join(' ')}>\n <label\n test-id=\"checkboxLabel\"\n htmlFor={this._id}\n >\n {loc(this.label)}\n <slot />\n </label>\n </div>\n {this.description && (\n <div\n class=\"description-text\"\n test-id=\"checkboxDescription\"\n id=\"description\"\n >\n {loc(this.description)}\n </div>\n )}\n </div>\n );\n }\n\n // #endregion\n}\n"]}
1
+ {"version":3,"file":"q2-checkbox.js","sourceRoot":"","sources":["../../../../src/components/q2-checkbox/q2-checkbox.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, ComponentInterface, Prop, Element, Listen, Watch, Event, EventEmitter, h } from '@stencil/core';\nimport { createGuid, handleAriaLabel, isEventFromElement, loc, overrideFocus } from 'src/utils';\n\n@Component({ tag: 'q2-checkbox', shadow: true, styleUrl: 'q2-checkbox.scss' })\nexport class Q2Checkbox implements ComponentInterface {\n // #region Own Properties\n\n _id: string = `checkbox-${createGuid()}`;\n inputElement: HTMLInputElement;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region Public Property API\n\n /** Determine which side of the label the checkbox will render on. */\n @Prop({ reflect: true })\n alignment: string;\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n ariaLabel: string;\n\n /** The state of the checkbox. This modifies the visual appearance of the element. */\n @Prop({ reflect: true, mutable: true })\n checked: boolean = false;\n\n /**\n * Populates a description that is displayed beneath the label.\n * @localizable\n */\n @Prop({ reflect: true })\n description: string;\n\n /** Disables the checkbox and prevents interaction. */\n @Prop({ reflect: true })\n disabled: boolean;\n\n /**\n * Used by q2-checkbox-group to disable all checkboxes in the group\n * @private\n */\n @Prop({ reflect: true })\n groupDisabled: boolean;\n\n /** Determines if the component should display in an errant state. */\n @Prop({ reflect: true })\n hasError: boolean = false;\n\n /**\n * Hide's the field's `<label>` element from view.\n *\n * @warning\n * Only use when a visible label is impractical.\n */\n @Prop({ reflect: true, mutable: true })\n hideLabel: boolean;\n\n /**\n * Used on a parent checkbox in a checkbox group (e.g. \"Select All\") to indicate that some, but not all, checkboxes in a group are checked.\n *\n * When `true`, the \"indeterminate\" selection style is applied.\n * To apply the standard \"checked\" selection style, `checked` must be true, and `indeterminate` must be `false`.\n */\n @Prop({ reflect: true })\n indeterminate: boolean;\n\n /**\n * The visible label text for the checkbox. Appears to the right of the box for 'default' and 'favorite' checkboxes, and to the left for 'toggle' checkboxes.\n * Yielded content will be adjacent to this text.\n * @localizable\n */\n @Prop({ reflect: true, mutable: true })\n label: string;\n\n /** A static string used to establish a symbolic relationship between checkboxes. */\n @Prop({ reflect: true })\n name: string;\n\n /** The field is not interactive, but remains focusable. */\n @Prop({ reflect: true })\n readonly: boolean;\n\n /** The field is not interactive, but remains focusable. */\n @Prop({ reflect: true })\n slotReadonly: boolean;\n\n /** The visual style of the checkbox. This does not need to be defined for a standard checkbox. */\n @Prop({ reflect: true })\n type: 'favorite' | 'toggle';\n\n /** A static reference value for the checkbox. */\n @Prop({ reflect: true })\n value: string;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the checkbox is toggled.\n * @legacyEvent\n */\n @Event()\n change: EventEmitter<{ value: string; checked: boolean }>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentWillLoad() {\n handleAriaLabel(this);\n }\n\n componentDidLoad(): void {\n overrideFocus(this.hostElement);\n this.hostElement.click = () => this.inputElement.click();\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('change')\n defaultChangeHandler(event: CustomEvent) {\n // We use setTimeout to give an opportunity to call preventDefault\n setTimeout(() => this.handleChangeEvent(event), 0);\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.hostElement.shadowRoot.querySelector('input').focus();\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('ariaLabel')\n ariaLabelObserver() {\n handleAriaLabel(this);\n }\n\n // #endregion\n // #region Local Methods\n\n generateCheckboxSVG() {\n if (this.type === 'favorite') {\n return (\n <q2-icon\n type=\"star\"\n class=\"checkbox-icon\"\n />\n );\n }\n\n if (this.type === 'toggle') {\n return this.generateToggleSVG();\n }\n\n return (\n <svg\n aria-hidden=\"true\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n class=\"checkbox-icon\"\n focusable=\"false\"\n >\n <rect\n x=\"1\"\n y=\"1\"\n width=\"18\"\n height=\"18\"\n rx=\"3\"\n />\n {(this.checked || this.indeterminate) && this.generateCheckBoxSVGFill()}\n </svg>\n );\n }\n\n generateCheckBoxSVGFill() {\n if (this.indeterminate) {\n return (\n <line\n class=\"checkbox-fill indeterminate-fill\"\n x1=\"4\"\n y1=\"10\"\n x2=\"16\"\n y2=\"10\"\n />\n );\n }\n return (\n <polyline\n class=\"checkbox-fill checked-fill\"\n points=\"5 11 8.5 14.5 15 6\"\n />\n );\n }\n\n generateToggleSVG() {\n return (\n <div class=\"toggle-svg\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n viewBox=\"0 0 46 14\"\n class=\"toggle-track\"\n test-id=\"toggleTrack\"\n >\n <rect\n width=\"36\"\n height=\"14\"\n rx=\"7\"\n x=\"5\"\n />\n </svg>\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n viewBox=\"0 0 30 30\"\n class=\"toggle-indicator\"\n test-id=\"toggleIndicator\"\n >\n <circle\n class=\"toggle-hover-circle\"\n width=\"20\"\n height=\"20\"\n cx=\"15\"\n cy=\"15\"\n r=\"10\"\n />\n <circle\n class=\"toggle-circle\"\n width=\"20\"\n height=\"20\"\n cx=\"15\"\n cy=\"15\"\n r=\"10\"\n />\n <line\n class=\"off checked-fill\"\n x1=\"12\"\n y1=\"18\"\n x2=\"18\"\n y2=\"12\"\n />\n <line\n class=\"off checked-fill\"\n x1=\"12\"\n y1=\"12\"\n x2=\"18\"\n y2=\"18\"\n />\n <polyline\n class=\"on checked-fill\"\n points=\"11,16 14,19 18,12 14,19\"\n />\n </svg>\n </div>\n );\n }\n\n handleChangeEvent(event: CustomEvent<{ checked: boolean; value: string }>) {\n if (\n this.readonly ||\n this.disabled ||\n this.hostElement.onchange ||\n event.defaultPrevented ||\n event.target !== this.hostElement ||\n !event.detail\n ) {\n return;\n }\n this.checked = event.detail.checked;\n }\n\n onInputClick = (event: Event) => {\n event.stopPropagation();\n event.preventDefault();\n\n const isNotInteractive = this.disabled || this.readonly || this.slotReadonly;\n if (isNotInteractive) return;\n if (!(event.target instanceof HTMLInputElement)) return;\n const { value, checked } = event.target;\n\n this.change.emit({\n value,\n checked,\n });\n this.inputElement.focus();\n };\n\n // #endregion\n // #region Render Methods\n\n render() {\n const textLabelClasses = ['label-text'];\n if (this.hideLabel) textLabelClasses.push('sr');\n return (\n <div class=\"container\">\n <input\n ref={el => (this.inputElement = el)}\n aria-describedby={this.description ? 'description' : undefined}\n aria-invalid={this.hasError === undefined ? undefined : `${this.hasError}`}\n checked={this.indeterminate || this.checked || false}\n class=\"sr\"\n disabled={!!this.disabled || !!this.groupDisabled}\n id={this._id}\n name={this.name || this._id}\n onClick={this.onInputClick}\n test-id=\"q2CheckboxInnerCheckBox\"\n type=\"checkbox\"\n value={this.value}\n />\n <label\n htmlFor={this._id}\n class=\"label-control\"\n test-id=\"checkboxButton\"\n >\n {this.generateCheckboxSVG()}\n </label>\n <div class={textLabelClasses.join(' ')}>\n <label\n test-id=\"checkboxLabel\"\n htmlFor={this._id}\n >\n {loc(this.label)}\n <slot />\n </label>\n </div>\n {this.description && (\n <div\n class=\"description-text\"\n test-id=\"checkboxDescription\"\n id=\"description\"\n >\n {loc(this.description)}\n </div>\n )}\n </div>\n );\n }\n\n // #endregion\n}\n"]}