q2-tecton-elements 1.36.0 → 1.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (312) hide show
  1. package/dist/cjs/click-elsewhere_2.cjs.entry.js +1 -1
  2. package/dist/cjs/{index-f6545293.js → index-6f9f259c.js} +12 -9
  3. package/dist/cjs/index-6f9f259c.js.map +1 -0
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/q2-action-sheet.cjs.entry.js +2 -2
  6. package/dist/cjs/q2-action-sheet.cjs.entry.js.map +1 -1
  7. package/dist/cjs/q2-btn_2.cjs.entry.js +1 -1
  8. package/dist/cjs/q2-calendar.cjs.entry.js +46 -3
  9. package/dist/cjs/q2-calendar.cjs.entry.js.map +1 -1
  10. package/dist/cjs/q2-card.cjs.entry.js +1 -1
  11. package/dist/cjs/q2-carousel-pane.cjs.entry.js +1 -1
  12. package/dist/cjs/q2-carousel.cjs.entry.js +1 -1
  13. package/dist/cjs/q2-chart-area.cjs.entry.js +2 -2
  14. package/dist/cjs/q2-chart-area.cjs.entry.js.map +1 -1
  15. package/dist/cjs/q2-chart-bar.cjs.entry.js +2 -2
  16. package/dist/cjs/q2-chart-bar.cjs.entry.js.map +1 -1
  17. package/dist/cjs/q2-chart-donut.cjs.entry.js +12 -8
  18. package/dist/cjs/q2-chart-donut.cjs.entry.js.map +1 -1
  19. package/dist/cjs/q2-checkbox-group.cjs.entry.js +25 -6
  20. package/dist/cjs/q2-checkbox-group.cjs.entry.js.map +1 -1
  21. package/dist/cjs/q2-checkbox.cjs.entry.js +1 -1
  22. package/dist/cjs/q2-data-table.cjs.entry.js +2 -2
  23. package/dist/cjs/q2-data-table.cjs.entry.js.map +1 -1
  24. package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
  25. package/dist/cjs/q2-dropdown.cjs.entry.js +1 -1
  26. package/dist/cjs/q2-editable-field.cjs.entry.js +34 -6
  27. package/dist/cjs/q2-editable-field.cjs.entry.js.map +1 -1
  28. package/dist/cjs/q2-icon.cjs.entry.js +1 -1
  29. package/dist/cjs/q2-input.cjs.entry.js +17 -10
  30. package/dist/cjs/q2-input.cjs.entry.js.map +1 -1
  31. package/dist/cjs/q2-loc.cjs.entry.js +1 -1
  32. package/dist/cjs/q2-message.cjs.entry.js +14 -13
  33. package/dist/cjs/q2-message.cjs.entry.js.map +1 -1
  34. package/dist/cjs/q2-month-picker.cjs.entry.js +1 -1
  35. package/dist/cjs/q2-optgroup_2.cjs.entry.js +1 -1
  36. package/dist/cjs/q2-option-list.cjs.entry.js +1 -1
  37. package/dist/cjs/q2-pagination.cjs.entry.js +1 -1
  38. package/dist/cjs/q2-pill.cjs.entry.js +3 -3
  39. package/dist/cjs/q2-pill.cjs.entry.js.map +1 -1
  40. package/dist/cjs/q2-radio-group.cjs.entry.js +9 -1
  41. package/dist/cjs/q2-radio-group.cjs.entry.js.map +1 -1
  42. package/dist/cjs/q2-radio.cjs.entry.js +12 -3
  43. package/dist/cjs/q2-radio.cjs.entry.js.map +1 -1
  44. package/dist/cjs/q2-section.cjs.entry.js +1 -1
  45. package/dist/cjs/q2-select.cjs.entry.js +54 -5
  46. package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
  47. package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
  48. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +1 -1
  49. package/dist/cjs/q2-stepper.cjs.entry.js +1 -1
  50. package/dist/cjs/q2-tab-container.cjs.entry.js +1 -1
  51. package/dist/cjs/q2-tag.cjs.entry.js +1 -1
  52. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  53. package/dist/cjs/q2-textarea.cjs.entry.js +13 -1
  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/collection/components/q2-action-sheet/styles.css +0 -8
  57. package/dist/collection/components/q2-calendar/index.js +120 -2
  58. package/dist/collection/components/q2-calendar/index.js.map +1 -1
  59. package/dist/collection/components/q2-chart-area/index.js +1 -1
  60. package/dist/collection/components/q2-chart-area/index.js.map +1 -1
  61. package/dist/collection/components/q2-chart-bar/index.js +1 -1
  62. package/dist/collection/components/q2-chart-bar/index.js.map +1 -1
  63. package/dist/collection/components/q2-chart-donut/index.js +11 -7
  64. package/dist/collection/components/q2-chart-donut/index.js.map +1 -1
  65. package/dist/collection/components/q2-checkbox-group/index.js +45 -5
  66. package/dist/collection/components/q2-checkbox-group/index.js.map +1 -1
  67. package/dist/collection/components/q2-data-table/styles.css +37 -36
  68. package/dist/collection/components/q2-editable-field/index.js +96 -6
  69. package/dist/collection/components/q2-editable-field/index.js.map +1 -1
  70. package/dist/collection/components/q2-input/index.js +48 -10
  71. package/dist/collection/components/q2-input/index.js.map +1 -1
  72. package/dist/collection/components/q2-message/index.js +14 -13
  73. package/dist/collection/components/q2-message/index.js.map +1 -1
  74. package/dist/collection/components/q2-pill/index.js +2 -2
  75. package/dist/collection/components/q2-pill/index.js.map +1 -1
  76. package/dist/collection/components/q2-radio/index.js +29 -3
  77. package/dist/collection/components/q2-radio/index.js.map +1 -1
  78. package/dist/collection/components/q2-radio-group/index.js +27 -0
  79. package/dist/collection/components/q2-radio-group/index.js.map +1 -1
  80. package/dist/collection/components/q2-select/index.js +127 -5
  81. package/dist/collection/components/q2-select/index.js.map +1 -1
  82. package/dist/collection/components/q2-textarea/index.js +37 -0
  83. package/dist/collection/components/q2-textarea/index.js.map +1 -1
  84. package/dist/collection/utils/index.js +8 -6
  85. package/dist/collection/utils/index.js.map +1 -1
  86. package/dist/components/index11.js +14 -13
  87. package/dist/components/index11.js.map +1 -1
  88. package/dist/components/index16.js +11 -8
  89. package/dist/components/index16.js.map +1 -1
  90. package/dist/components/index9.js +19 -10
  91. package/dist/components/index9.js.map +1 -1
  92. package/dist/components/q2-action-sheet.js +1 -1
  93. package/dist/components/q2-action-sheet.js.map +1 -1
  94. package/dist/components/q2-calendar.js +51 -4
  95. package/dist/components/q2-calendar.js.map +1 -1
  96. package/dist/components/q2-chart-area.js +1 -1
  97. package/dist/components/q2-chart-area.js.map +1 -1
  98. package/dist/components/q2-chart-bar.js +1 -1
  99. package/dist/components/q2-chart-bar.js.map +1 -1
  100. package/dist/components/q2-chart-donut.js +11 -7
  101. package/dist/components/q2-chart-donut.js.map +1 -1
  102. package/dist/components/q2-checkbox-group.js +26 -6
  103. package/dist/components/q2-checkbox-group.js.map +1 -1
  104. package/dist/components/q2-data-table.js +1 -1
  105. package/dist/components/q2-data-table.js.map +1 -1
  106. package/dist/components/q2-editable-field.js +39 -7
  107. package/dist/components/q2-editable-field.js.map +1 -1
  108. package/dist/components/q2-pill.js +2 -2
  109. package/dist/components/q2-pill.js.map +1 -1
  110. package/dist/components/q2-radio-group.js +10 -1
  111. package/dist/components/q2-radio-group.js.map +1 -1
  112. package/dist/components/q2-radio.js +13 -3
  113. package/dist/components/q2-radio.js.map +1 -1
  114. package/dist/components/q2-select.js +59 -6
  115. package/dist/components/q2-select.js.map +1 -1
  116. package/dist/components/q2-textarea.js +15 -2
  117. package/dist/components/q2-textarea.js.map +1 -1
  118. package/dist/docs.json +224 -9
  119. package/dist/esm/click-elsewhere_2.entry.js +1 -1
  120. package/dist/esm/{index-35ff2881.js → index-74a659a5.js} +12 -9
  121. package/dist/esm/index-74a659a5.js.map +1 -0
  122. package/dist/esm/loader.js +1 -1
  123. package/dist/esm/q2-action-sheet.entry.js +2 -2
  124. package/dist/esm/q2-action-sheet.entry.js.map +1 -1
  125. package/dist/esm/q2-btn_2.entry.js +1 -1
  126. package/dist/esm/q2-calendar.entry.js +46 -3
  127. package/dist/esm/q2-calendar.entry.js.map +1 -1
  128. package/dist/esm/q2-card.entry.js +1 -1
  129. package/dist/esm/q2-carousel-pane.entry.js +1 -1
  130. package/dist/esm/q2-carousel.entry.js +1 -1
  131. package/dist/esm/q2-chart-area.entry.js +2 -2
  132. package/dist/esm/q2-chart-area.entry.js.map +1 -1
  133. package/dist/esm/q2-chart-bar.entry.js +2 -2
  134. package/dist/esm/q2-chart-bar.entry.js.map +1 -1
  135. package/dist/esm/q2-chart-donut.entry.js +12 -8
  136. package/dist/esm/q2-chart-donut.entry.js.map +1 -1
  137. package/dist/esm/q2-checkbox-group.entry.js +25 -6
  138. package/dist/esm/q2-checkbox-group.entry.js.map +1 -1
  139. package/dist/esm/q2-checkbox.entry.js +1 -1
  140. package/dist/esm/q2-data-table.entry.js +2 -2
  141. package/dist/esm/q2-data-table.entry.js.map +1 -1
  142. package/dist/esm/q2-dropdown-item.entry.js +1 -1
  143. package/dist/esm/q2-dropdown.entry.js +1 -1
  144. package/dist/esm/q2-editable-field.entry.js +34 -6
  145. package/dist/esm/q2-editable-field.entry.js.map +1 -1
  146. package/dist/esm/q2-icon.entry.js +1 -1
  147. package/dist/esm/q2-input.entry.js +17 -10
  148. package/dist/esm/q2-input.entry.js.map +1 -1
  149. package/dist/esm/q2-loc.entry.js +1 -1
  150. package/dist/esm/q2-message.entry.js +14 -13
  151. package/dist/esm/q2-message.entry.js.map +1 -1
  152. package/dist/esm/q2-month-picker.entry.js +1 -1
  153. package/dist/esm/q2-optgroup_2.entry.js +1 -1
  154. package/dist/esm/q2-option-list.entry.js +1 -1
  155. package/dist/esm/q2-pagination.entry.js +1 -1
  156. package/dist/esm/q2-pill.entry.js +3 -3
  157. package/dist/esm/q2-pill.entry.js.map +1 -1
  158. package/dist/esm/q2-radio-group.entry.js +9 -1
  159. package/dist/esm/q2-radio-group.entry.js.map +1 -1
  160. package/dist/esm/q2-radio.entry.js +12 -3
  161. package/dist/esm/q2-radio.entry.js.map +1 -1
  162. package/dist/esm/q2-section.entry.js +1 -1
  163. package/dist/esm/q2-select.entry.js +54 -5
  164. package/dist/esm/q2-select.entry.js.map +1 -1
  165. package/dist/esm/q2-stepper-pane.entry.js +1 -1
  166. package/dist/esm/q2-stepper-vertical.entry.js +1 -1
  167. package/dist/esm/q2-stepper.entry.js +1 -1
  168. package/dist/esm/q2-tab-container.entry.js +1 -1
  169. package/dist/esm/q2-tag.entry.js +1 -1
  170. package/dist/esm/q2-tecton-elements.js +1 -1
  171. package/dist/esm/q2-textarea.entry.js +13 -1
  172. package/dist/esm/q2-textarea.entry.js.map +1 -1
  173. package/dist/esm/q2-tooltip.entry.js +1 -1
  174. package/dist/q2-tecton-elements/{p-2b91b34e.entry.js → p-077107c1.entry.js} +2 -2
  175. package/dist/q2-tecton-elements/p-09d4b3d3.entry.js +2 -0
  176. package/dist/q2-tecton-elements/p-09d4b3d3.entry.js.map +1 -0
  177. package/dist/q2-tecton-elements/{p-b73e7870.entry.js → p-0d4aec6e.entry.js} +2 -2
  178. package/dist/q2-tecton-elements/p-1c993698.entry.js +2 -0
  179. package/dist/q2-tecton-elements/p-1c993698.entry.js.map +1 -0
  180. package/dist/q2-tecton-elements/{p-0c1b74e9.entry.js → p-252889b7.entry.js} +2 -2
  181. package/dist/q2-tecton-elements/p-252889b7.entry.js.map +1 -0
  182. package/dist/q2-tecton-elements/{p-d4da72f0.entry.js → p-25bd1b18.entry.js} +2 -2
  183. package/dist/q2-tecton-elements/p-25bd1b18.entry.js.map +1 -0
  184. package/dist/q2-tecton-elements/p-2a975246.entry.js +2 -0
  185. package/dist/q2-tecton-elements/p-2a975246.entry.js.map +1 -0
  186. package/dist/q2-tecton-elements/{p-55deaceb.entry.js → p-30facf35.entry.js} +2 -2
  187. package/dist/q2-tecton-elements/p-3798ad96.entry.js +2 -0
  188. package/dist/q2-tecton-elements/p-3798ad96.entry.js.map +1 -0
  189. package/dist/q2-tecton-elements/{p-2325975a.entry.js → p-46287c02.entry.js} +2 -2
  190. package/dist/q2-tecton-elements/{p-2bf5a3bc.entry.js → p-47c60d4a.entry.js} +2 -2
  191. package/dist/q2-tecton-elements/{p-6cc730db.entry.js → p-4abbd0b1.entry.js} +2 -2
  192. package/dist/q2-tecton-elements/{p-dafdb018.entry.js → p-570c1d3d.entry.js} +2 -2
  193. package/dist/q2-tecton-elements/p-570c1d3d.entry.js.map +1 -0
  194. package/dist/q2-tecton-elements/{p-4fb81d03.entry.js → p-578e3f98.entry.js} +2 -2
  195. package/dist/q2-tecton-elements/p-58cdb9c7.entry.js +2 -0
  196. package/dist/q2-tecton-elements/p-58cdb9c7.entry.js.map +1 -0
  197. package/dist/q2-tecton-elements/{p-c3650c2e.entry.js → p-597f8656.entry.js} +2 -2
  198. package/dist/q2-tecton-elements/{p-ce27270b.entry.js → p-59d34a17.entry.js} +2 -2
  199. package/dist/q2-tecton-elements/{p-3c0d391b.entry.js → p-5bc4d94c.entry.js} +2 -2
  200. package/dist/q2-tecton-elements/{p-70a59bf1.entry.js → p-67f33354.entry.js} +2 -2
  201. package/dist/q2-tecton-elements/p-67f33354.entry.js.map +1 -0
  202. package/dist/q2-tecton-elements/{p-c9f32e51.entry.js → p-6cacc879.entry.js} +2 -2
  203. package/dist/q2-tecton-elements/{p-f637136f.entry.js → p-7366d36d.entry.js} +2 -2
  204. package/dist/q2-tecton-elements/{p-e5a8f7ff.entry.js → p-75fd6df5.entry.js} +2 -2
  205. package/dist/q2-tecton-elements/{p-e5a8f7ff.entry.js.map → p-75fd6df5.entry.js.map} +1 -1
  206. package/dist/q2-tecton-elements/{p-68371e6d.entry.js → p-8e7b762a.entry.js} +2 -2
  207. package/dist/q2-tecton-elements/{p-ece07c0d.entry.js → p-9a28b93a.entry.js} +2 -2
  208. package/dist/q2-tecton-elements/{p-d3827468.entry.js → p-9c9a2550.entry.js} +2 -2
  209. package/dist/q2-tecton-elements/{p-15ca5c98.entry.js → p-9d743327.entry.js} +2 -2
  210. package/dist/q2-tecton-elements/{p-8c6f8d06.entry.js → p-9ef2829e.entry.js} +2 -2
  211. package/dist/q2-tecton-elements/{p-8c6f8d06.entry.js.map → p-9ef2829e.entry.js.map} +1 -1
  212. package/dist/q2-tecton-elements/{p-3fd4f83d.entry.js → p-a52371cf.entry.js} +2 -2
  213. package/dist/q2-tecton-elements/{p-f11326c2.entry.js → p-a53e9f1e.entry.js} +2 -2
  214. package/dist/q2-tecton-elements/{p-586c8654.entry.js → p-a60f82c0.entry.js} +2 -2
  215. package/dist/q2-tecton-elements/p-a60f82c0.entry.js.map +1 -0
  216. package/dist/q2-tecton-elements/{p-6e6b160d.entry.js → p-ac82ea35.entry.js} +2 -2
  217. package/dist/q2-tecton-elements/{p-8e8a40ca.entry.js → p-bfd69d42.entry.js} +2 -2
  218. package/dist/q2-tecton-elements/{p-82bda2ff.entry.js → p-db6921fb.entry.js} +2 -2
  219. package/dist/q2-tecton-elements/{p-cfbd2cb1.entry.js → p-e45856f7.entry.js} +2 -2
  220. package/dist/q2-tecton-elements/p-e45856f7.entry.js.map +1 -0
  221. package/dist/q2-tecton-elements/{p-654987bf.entry.js → p-e8858d0d.entry.js} +2 -2
  222. package/dist/q2-tecton-elements/p-e8858d0d.entry.js.map +1 -0
  223. package/dist/q2-tecton-elements/{p-99ab3236.js → p-ef856249.js} +2 -2
  224. package/dist/q2-tecton-elements/p-ef856249.js.map +1 -0
  225. package/dist/q2-tecton-elements/{p-073df9e2.entry.js → p-efbe6c17.entry.js} +2 -2
  226. package/dist/q2-tecton-elements/p-efbe6c17.entry.js.map +1 -0
  227. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  228. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
  229. package/dist/test/elements/q2-calendar-test.e2e.js +177 -0
  230. package/dist/test/elements/q2-calendar-test.e2e.js.map +1 -1
  231. package/dist/test/elements/q2-chart-area-test.e2e.js +30 -1
  232. package/dist/test/elements/q2-chart-area-test.e2e.js.map +1 -1
  233. package/dist/test/elements/q2-chart-bar-test.e2e.js +30 -1
  234. package/dist/test/elements/q2-chart-bar-test.e2e.js.map +1 -1
  235. package/dist/test/elements/q2-chart-donut-test.e2e.js +21 -18
  236. package/dist/test/elements/q2-chart-donut-test.e2e.js.map +1 -1
  237. package/dist/test/elements/q2-checkbox-group-test.e2e.js +138 -18
  238. package/dist/test/elements/q2-checkbox-group-test.e2e.js.map +1 -1
  239. package/dist/test/elements/q2-checkbox-test.e2e.js +143 -115
  240. package/dist/test/elements/q2-checkbox-test.e2e.js.map +1 -1
  241. package/dist/test/elements/q2-editable-field-test.e2e.js +149 -28
  242. package/dist/test/elements/q2-editable-field-test.e2e.js.map +1 -1
  243. package/dist/test/elements/q2-input-test.e2e.js +150 -9
  244. package/dist/test/elements/q2-input-test.e2e.js.map +1 -1
  245. package/dist/test/elements/q2-message-test.e2e.js +38 -1
  246. package/dist/test/elements/q2-message-test.e2e.js.map +1 -1
  247. package/dist/test/elements/q2-pill-test.e2e.js +37 -1
  248. package/dist/test/elements/q2-pill-test.e2e.js.map +1 -1
  249. package/dist/test/elements/q2-radio-group-test.e2e.js +148 -186
  250. package/dist/test/elements/q2-radio-group-test.e2e.js.map +1 -1
  251. package/dist/test/elements/q2-radio-test.e2e.js +100 -15
  252. package/dist/test/elements/q2-radio-test.e2e.js.map +1 -1
  253. package/dist/test/elements/q2-select-test.e2e.js +203 -0
  254. package/dist/test/elements/q2-select-test.e2e.js.map +1 -1
  255. package/dist/test/elements/q2-tag-test.e2e.js +5 -0
  256. package/dist/test/elements/q2-tag-test.e2e.js.map +1 -1
  257. package/dist/test/elements/q2-textarea-test.e2e.js +33 -1
  258. package/dist/test/elements/q2-textarea-test.e2e.js.map +1 -1
  259. package/dist/types/components/q2-calendar/index.d.ts +8 -1
  260. package/dist/types/components/q2-chart-donut/index.d.ts +1 -1
  261. package/dist/types/components/q2-checkbox-group/index.d.ts +3 -0
  262. package/dist/types/components/q2-editable-field/index.d.ts +10 -2
  263. package/dist/types/components/q2-input/index.d.ts +2 -0
  264. package/dist/types/components/q2-message/index.d.ts +1 -0
  265. package/dist/types/components/q2-radio/index.d.ts +1 -0
  266. package/dist/types/components/q2-radio-group/index.d.ts +1 -0
  267. package/dist/types/components/q2-select/index.d.ts +9 -1
  268. package/dist/types/components/q2-textarea/index.d.ts +2 -0
  269. package/dist/types/components.d.ts +19 -0
  270. package/package.json +3 -3
  271. package/dist/cjs/index-f6545293.js.map +0 -1
  272. package/dist/esm/index-35ff2881.js.map +0 -1
  273. package/dist/q2-tecton-elements/p-073df9e2.entry.js.map +0 -1
  274. package/dist/q2-tecton-elements/p-0c1b74e9.entry.js.map +0 -1
  275. package/dist/q2-tecton-elements/p-215d5ab4.entry.js +0 -2
  276. package/dist/q2-tecton-elements/p-215d5ab4.entry.js.map +0 -1
  277. package/dist/q2-tecton-elements/p-2987498c.entry.js +0 -2
  278. package/dist/q2-tecton-elements/p-2987498c.entry.js.map +0 -1
  279. package/dist/q2-tecton-elements/p-586c8654.entry.js.map +0 -1
  280. package/dist/q2-tecton-elements/p-654987bf.entry.js.map +0 -1
  281. package/dist/q2-tecton-elements/p-70a59bf1.entry.js.map +0 -1
  282. package/dist/q2-tecton-elements/p-7a6e33d4.entry.js +0 -2
  283. package/dist/q2-tecton-elements/p-7a6e33d4.entry.js.map +0 -1
  284. package/dist/q2-tecton-elements/p-99ab3236.js.map +0 -1
  285. package/dist/q2-tecton-elements/p-ae2fa966.entry.js +0 -2
  286. package/dist/q2-tecton-elements/p-ae2fa966.entry.js.map +0 -1
  287. package/dist/q2-tecton-elements/p-b8d1c16f.entry.js +0 -2
  288. package/dist/q2-tecton-elements/p-b8d1c16f.entry.js.map +0 -1
  289. package/dist/q2-tecton-elements/p-cfbd2cb1.entry.js.map +0 -1
  290. package/dist/q2-tecton-elements/p-d4da72f0.entry.js.map +0 -1
  291. package/dist/q2-tecton-elements/p-dafdb018.entry.js.map +0 -1
  292. /package/dist/q2-tecton-elements/{p-2b91b34e.entry.js.map → p-077107c1.entry.js.map} +0 -0
  293. /package/dist/q2-tecton-elements/{p-b73e7870.entry.js.map → p-0d4aec6e.entry.js.map} +0 -0
  294. /package/dist/q2-tecton-elements/{p-55deaceb.entry.js.map → p-30facf35.entry.js.map} +0 -0
  295. /package/dist/q2-tecton-elements/{p-2325975a.entry.js.map → p-46287c02.entry.js.map} +0 -0
  296. /package/dist/q2-tecton-elements/{p-2bf5a3bc.entry.js.map → p-47c60d4a.entry.js.map} +0 -0
  297. /package/dist/q2-tecton-elements/{p-6cc730db.entry.js.map → p-4abbd0b1.entry.js.map} +0 -0
  298. /package/dist/q2-tecton-elements/{p-4fb81d03.entry.js.map → p-578e3f98.entry.js.map} +0 -0
  299. /package/dist/q2-tecton-elements/{p-c3650c2e.entry.js.map → p-597f8656.entry.js.map} +0 -0
  300. /package/dist/q2-tecton-elements/{p-ce27270b.entry.js.map → p-59d34a17.entry.js.map} +0 -0
  301. /package/dist/q2-tecton-elements/{p-3c0d391b.entry.js.map → p-5bc4d94c.entry.js.map} +0 -0
  302. /package/dist/q2-tecton-elements/{p-c9f32e51.entry.js.map → p-6cacc879.entry.js.map} +0 -0
  303. /package/dist/q2-tecton-elements/{p-f637136f.entry.js.map → p-7366d36d.entry.js.map} +0 -0
  304. /package/dist/q2-tecton-elements/{p-68371e6d.entry.js.map → p-8e7b762a.entry.js.map} +0 -0
  305. /package/dist/q2-tecton-elements/{p-ece07c0d.entry.js.map → p-9a28b93a.entry.js.map} +0 -0
  306. /package/dist/q2-tecton-elements/{p-d3827468.entry.js.map → p-9c9a2550.entry.js.map} +0 -0
  307. /package/dist/q2-tecton-elements/{p-15ca5c98.entry.js.map → p-9d743327.entry.js.map} +0 -0
  308. /package/dist/q2-tecton-elements/{p-3fd4f83d.entry.js.map → p-a52371cf.entry.js.map} +0 -0
  309. /package/dist/q2-tecton-elements/{p-f11326c2.entry.js.map → p-a53e9f1e.entry.js.map} +0 -0
  310. /package/dist/q2-tecton-elements/{p-6e6b160d.entry.js.map → p-ac82ea35.entry.js.map} +0 -0
  311. /package/dist/q2-tecton-elements/{p-8e8a40ca.entry.js.map → p-bfd69d42.entry.js.map} +0 -0
  312. /package/dist/q2-tecton-elements/{p-82bda2ff.entry.js.map → p-db6921fb.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/q2-chart-donut/index.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 {\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, loc, overrideFocus } from 'src/utils';\nimport { IDonutChartData } from 'q2-tecton-common/lib/types/element-types';\n\necharts.use([TooltipComponent, LegendComponent, PieChart, CanvasRenderer, AriaComponent, LabelLayout]);\ntype EChartsOption = echarts.ComposeOption<\n TooltipComponentOption | LegendComponentOption | AriaComponentOption | PieSeriesOption\n>;\n@Component({\n tag: 'q2-chart-donut',\n shadow: true,\n styleUrl: 'styles.scss',\n})\nexport class Q2ChartDonut implements ComponentInterface {\n @Prop({ reflect: true }) chartName: string;\n @Prop({ reflect: true }) summaryIcon: string;\n @Prop({ reflect: true }) summaryName: string;\n @Prop({ mutable: true }) innerRadius: string = '70%';\n @Prop({ mutable: true }) outerRadius: string = '85%';\n @Prop() minSliceSize: string = '2.5%';\n @Prop() selectedOffset: number = 10;\n @Prop() hoverScaleSize: number = 5;\n @Prop({ reflect: true }) format: 'currency';\n @Prop({ reflect: true }) isClickable: boolean;\n @Prop() data: IDonutChartData[] = [];\n @Prop() selectedId: string;\n\n @Element() hostElement: HTMLElement;\n @Event() change: EventEmitter;\n @Event() click: EventEmitter;\n @State() hoveredId: string;\n isInChangeEvent: boolean;\n chartContainer: HTMLDivElement;\n centerButtonElement: HTMLButtonElement;\n btnElement: HTMLDivElement;\n chartContainerStyles: CSSStyleDeclaration;\n hostElementStyles: CSSStyleDeclaration;\n resizeObserver: ResizeObserver;\n colors: string[];\n chart: echarts.ECharts;\n defaultRecord = { id: null, value: null, name: null };\n\n /// LifeCycle Hooks ///\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.selectById(this.selectedId);\n overrideFocus(this.hostElement);\n }\n\n disconnectedCallback() {\n this.resizeObserver = null;\n }\n\n /// Getters ///\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 /// Helpers\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 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 getIndexById(id: string) {\n return this.data.findIndex(item => item.id === id);\n }\n\n getDataByIndex(index: number) {\n if (typeof index !== 'number') return;\n return this.data[index];\n }\n\n getDataById(id: string) {\n if (!id) return;\n return this.data.find(item => item.id === id);\n }\n\n getColors() {\n const defaultColors = [\n '--comp-color-1',\n '--comp-color-2',\n '--comp-color-3',\n '--comp-color-4',\n '--comp-color-5',\n '--comp-color-6',\n '--comp-color-7',\n '--comp-color-8',\n '--comp-color-9',\n '--comp-color-10',\n '--comp-color-11',\n '--comp-color-12',\n ];\n\n return this.data.reduce((acc, cur) => {\n let color = defaultColors.shift();\n if (cur.color) color = cur.color;\n\n acc.push(this.getCSSProperty(color) || color);\n return acc;\n }, []);\n }\n\n setupChartEvents(chart: echarts.ECharts) {\n chart.on('mouseover', (params: any) => {\n this.hoveredId = params.data.id;\n });\n chart.on('click', params => {\n // Don't emit click event when clicking a chart slice\n params.event.event.stopPropagation();\n });\n chart.on('mouseout', () => {\n this.hoveredId = this.selectedId;\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\n this.selectedId = data.id;\n this.isInChangeEvent = true;\n this.change.emit(data);\n setTimeout(() => {\n this.isInChangeEvent = false;\n }, 0);\n });\n }\n\n cleanData(data: IDonutChartData[]) {\n const { minSliceSize } = this;\n const minSize = parseFloat(minSliceSize || '2.5%') / 100;\n\n const total = data.reduce((acc, cur) => acc + cur.value, 0);\n const minValue = total * minSize;\n const newData = data.map(item => {\n if (item.value < minValue) return { ...item, value: minValue };\n return item;\n });\n\n return newData;\n }\n\n updateChart(chart: echarts.ECharts) {\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: this.getCSSProperty('--comp-background-color'),\n },\n emphasis: {\n scaleSize: this.hoverScaleSize,\n itemStyle: {\n color: 'inherit',\n },\n },\n data: this.cleanData(this.data),\n },\n ],\n });\n }\n\n resizeChart() {\n this.chart.resize();\n }\n\n /// Watchers ///\n @Watch('chartName')\n @Watch('innerRadius')\n @Watch('outerRadius')\n @Watch('minSliceSize')\n @Watch('hoverScaleSize')\n @Watch('selectedOffset')\n @Watch('data')\n propsUpdates() {\n this.updateChart(this.chart);\n }\n\n @Watch('data')\n dataUpdated() {\n this.colors = this.getColors();\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 @Watch('selectedId')\n // Function to detect and set a data range (category) as selected\n // Logc for when ledgends are present, and can set selectedId when ledgend category is clicked\n // Also can be used by dev to preset\n checkSelectedId() {\n if (!!this.selectedId) {\n this.hoveredId = this.selectedId;\n // Dispatch action only to befired when chart is rendered\n if (this.chart) {\n this.selectById(this.selectedId);\n }\n } else {\n // Dispatch action only to befired 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 /// Listeners ///\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 /// Methods ///\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 @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 @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 /// Event Handlers ///\n onClickElsewhere = (event: Event) => {\n event.stopPropagation();\n this.clearSelection();\n };\n\n onButtonKeyUp = (event: KeyboardEvent) => {\n const { selectedId, data } = this;\n let selectedIndex = this.getIndexById(selectedId) || 0;\n switch (event.key) {\n case 'ArrowLeft':\n case 'ArrowUp':\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 case 'ArrowDown':\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 default:\n return;\n }\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 onContainerClick = (event: Event) => {\n if (this.isInChangeEvent) return;\n if (!(event.target instanceof HTMLElement)) return;\n this.clearSelection();\n event.stopPropagation();\n };\n\n /// DOM ///\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 onKeyUp: this.onButtonKeyUp,\n onClick: this.onButtonClick,\n ref: el => (this.centerButtonElement = el),\n 'aria-description': loc('tecton.element.chartDonut.button.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 <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 {value && <div class=\"value\">{displayValue}</div>}\n </TagName>\n </div>\n );\n }\n\n render() {\n return (\n <click-elsewhere onChange={this.onClickElsewhere}>\n <div class=\"container\">\n <div\n ref={el => (this.chartContainer = el)}\n class=\"chart-container\"\n test-id=\"chartContainer\"\n onClick={this.onContainerClick}\n ></div>\n {this.renderCenterBlock()}\n </div>\n </click-elsewhere>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/q2-chart-donut/index.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 {\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, loc, overrideFocus } from 'src/utils';\nimport { IDonutChartData } from 'q2-tecton-common/lib/types/element-types';\n\necharts.use([TooltipComponent, LegendComponent, PieChart, CanvasRenderer, AriaComponent, LabelLayout]);\ntype EChartsOption = echarts.ComposeOption<\n TooltipComponentOption | LegendComponentOption | AriaComponentOption | PieSeriesOption\n>;\n@Component({\n tag: 'q2-chart-donut',\n shadow: true,\n styleUrl: 'styles.scss',\n})\nexport class Q2ChartDonut implements ComponentInterface {\n @Prop({ reflect: true }) chartName: string;\n @Prop({ reflect: true }) summaryIcon: string;\n @Prop({ reflect: true }) summaryName: string;\n @Prop({ mutable: true }) innerRadius: string = '70%';\n @Prop({ mutable: true }) outerRadius: string = '85%';\n @Prop() minSliceSize: string = '2.5%';\n @Prop() selectedOffset: number = 10;\n @Prop() hoverScaleSize: number = 5;\n @Prop({ reflect: true }) format: 'currency';\n @Prop({ reflect: true }) isClickable: boolean;\n @Prop() data: IDonutChartData[] = [];\n @Prop() selectedId: string;\n\n @Element() hostElement: HTMLElement;\n @Event() change: EventEmitter;\n @Event() click: EventEmitter;\n @State() hoveredId: string;\n isInChangeEvent: boolean;\n chartContainer: HTMLDivElement;\n centerButtonElement: HTMLButtonElement;\n btnElement: HTMLDivElement;\n chartContainerStyles: CSSStyleDeclaration;\n hostElementStyles: CSSStyleDeclaration;\n resizeObserver: ResizeObserver;\n colors: string[];\n chart: echarts.ECharts;\n defaultRecord = { id: null, value: null, name: null };\n\n /// LifeCycle Hooks ///\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.selectById(this.selectedId);\n overrideFocus(this.hostElement);\n }\n\n disconnectedCallback() {\n this.resizeObserver = null;\n }\n\n /// Getters ///\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 /// Helpers\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 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 getIndexById(id: string) {\n return this.data.findIndex(item => item.id === id);\n }\n\n getDataByIndex(index: number) {\n if (typeof index !== 'number') return;\n return this.data[index];\n }\n\n getDataById(id: string) {\n if (!id) return;\n return this.data.find(item => item.id === id);\n }\n\n getColors() {\n const defaultColors = [\n '--comp-color-1',\n '--comp-color-2',\n '--comp-color-3',\n '--comp-color-4',\n '--comp-color-5',\n '--comp-color-6',\n '--comp-color-7',\n '--comp-color-8',\n '--comp-color-9',\n '--comp-color-10',\n '--comp-color-11',\n '--comp-color-12',\n ];\n\n return this.data.reduce((acc, cur) => {\n let color = defaultColors.shift();\n if (cur.color) color = cur.color;\n\n acc.push(this.getCSSProperty(color) || color);\n return acc;\n }, []);\n }\n\n setupChartEvents(chart: echarts.ECharts) {\n chart.on('mouseover', (params: any) => {\n this.hoveredId = params.data.id;\n });\n chart.on('click', params => {\n // Don't emit click event when clicking a chart slice\n params.event.event.stopPropagation();\n });\n chart.on('mouseout', () => {\n this.hoveredId = this.selectedId;\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\n this.selectedId = data.id;\n this.isInChangeEvent = true;\n this.change.emit(data);\n setTimeout(() => {\n this.isInChangeEvent = false;\n }, 0);\n });\n }\n\n cleanData(data: IDonutChartData[]) {\n const { minSliceSize } = this;\n const minSize = parseFloat(minSliceSize || '2.5%') / 100;\n\n const total = data.reduce((acc, cur) => acc + cur.value, 0);\n const minValue = total * minSize;\n const newData = data.map(item => {\n if (item.value < minValue) return { ...item, value: minValue };\n return item;\n });\n\n return newData;\n }\n\n updateChart(chart: echarts.ECharts) {\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: this.getCSSProperty('--comp-background-color'),\n },\n emphasis: {\n scaleSize: this.hoverScaleSize,\n itemStyle: {\n color: 'inherit',\n },\n },\n data: this.cleanData(this.data),\n },\n ],\n });\n }\n\n resizeChart() {\n this.chart.resize();\n }\n\n /// Watchers ///\n @Watch('chartName')\n @Watch('innerRadius')\n @Watch('outerRadius')\n @Watch('minSliceSize')\n @Watch('hoverScaleSize')\n @Watch('selectedOffset')\n @Watch('data')\n propsUpdates() {\n this.updateChart(this.chart);\n }\n\n @Watch('data')\n dataUpdated() {\n this.colors = this.getColors();\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 @Watch('selectedId')\n // Function to detect and set a data range (category) as selected\n // Logc for when ledgends are present, and can set selectedId when ledgend category is clicked\n // Also can be used by dev to preset\n checkSelectedId() {\n if (!!this.selectedId) {\n this.hoveredId = this.selectedId;\n // Dispatch action only to befired when chart is rendered\n if (this.chart) {\n this.selectById(this.selectedId);\n }\n } else {\n // Dispatch action only to befired 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 /// Listeners ///\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 /// Methods ///\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 @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 @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 /// Event Handlers ///\n onClickElsewhere = (event: Event) => {\n event.stopPropagation();\n this.clearSelection();\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 default:\n return;\n }\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 onContainerClick = (event: Event) => {\n if (this.isInChangeEvent) return;\n if (!(event.target instanceof HTMLElement)) return;\n this.clearSelection();\n event.stopPropagation();\n };\n\n /// DOM ///\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 {isClickable && (\n <div\n id=\"center-card-description\"\n class=\"sr\"\n >\n {loc('tecton.element.chartDonut.button.description')}\n </div>\n )}\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 {!!value && <div class=\"value\">{displayValue}</div>}\n </TagName>\n </div>\n );\n }\n\n render() {\n return (\n <click-elsewhere onChange={this.onClickElsewhere}>\n <div class=\"container\">\n <div\n ref={el => (this.chartContainer = el)}\n class=\"chart-container\"\n test-id=\"chartContainer\"\n onClick={this.onContainerClick}\n ></div>\n {this.renderCenterBlock()}\n </div>\n </click-elsewhere>\n );\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { h } from '@stencil/core';
1
+ import { h, } from '@stencil/core';
2
2
  import { createGuid, loc } from 'src/utils';
3
3
  export class Q2CheckboxGroup {
4
4
  constructor() {
@@ -10,10 +10,12 @@ export class Q2CheckboxGroup {
10
10
  this.onInnerCheckboxChange = (event) => {
11
11
  event.stopImmediatePropagation();
12
12
  const groupValue = {};
13
- this.checkboxElements.forEach(check => {
14
- groupValue[check.value] = !!check.checked;
15
- });
16
- this.change.emit(groupValue);
13
+ setTimeout(() => {
14
+ this.checkboxElements.forEach(check => {
15
+ groupValue[check.value] = !!check.checked;
16
+ });
17
+ this.change.emit(groupValue);
18
+ }, 0);
17
19
  };
18
20
  this.label = undefined;
19
21
  this.value = undefined;
@@ -29,6 +31,9 @@ export class Q2CheckboxGroup {
29
31
  return this.value || {};
30
32
  }
31
33
  ///// LIFECYCLE HOOK ///////
34
+ componentWillLoad() {
35
+ this.updateReadonly(this.readonly);
36
+ }
32
37
  componentDidLoad() {
33
38
  const observer = new MutationObserver(this.onMutationObserved);
34
39
  observer.observe(this.hostElement, { childList: true });
@@ -56,6 +61,19 @@ export class Q2CheckboxGroup {
56
61
  checkbox.groupDisabled = groupDisabled;
57
62
  });
58
63
  }
64
+ updateReadonly(newReadonly) {
65
+ this.checkboxElements.forEach(checkbox => {
66
+ checkbox.readonly = newReadonly;
67
+ });
68
+ }
69
+ /// Methods ///
70
+ setValue(values) {
71
+ const valuesSet = new Set(Array.isArray(values) ? values : [values]);
72
+ this.checkboxElements.forEach(check => {
73
+ if (valuesSet.has(check.value))
74
+ check.click();
75
+ });
76
+ }
59
77
  onHostElementChange(event) {
60
78
  if (event.target === this.hostElement && !this.hostElement.onchange) {
61
79
  this.value = event.detail;
@@ -205,6 +223,25 @@ export class Q2CheckboxGroup {
205
223
  }
206
224
  }];
207
225
  }
226
+ static get methods() {
227
+ return {
228
+ "setValue": {
229
+ "complexType": {
230
+ "signature": "(values: string | string[]) => Promise<void>",
231
+ "parameters": [{
232
+ "tags": [],
233
+ "text": ""
234
+ }],
235
+ "references": {},
236
+ "return": "Promise<void>"
237
+ },
238
+ "docs": {
239
+ "text": "",
240
+ "tags": []
241
+ }
242
+ }
243
+ };
244
+ }
208
245
  static get elementRef() { return "hostElement"; }
209
246
  static get watchers() {
210
247
  return [{
@@ -213,6 +250,9 @@ export class Q2CheckboxGroup {
213
250
  }, {
214
251
  "propName": "disabled",
215
252
  "methodName": "updateDisabled"
253
+ }, {
254
+ "propName": "readonly",
255
+ "methodName": "updateReadonly"
216
256
  }];
217
257
  }
218
258
  static get listeners() {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/q2-checkbox-group/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, Element, h, Listen, EventEmitter, Event, ComponentInterface, Watch } from '@stencil/core';\nimport { createGuid, loc } from 'src/utils';\n\n@Component({\n tag: 'q2-checkbox-group',\n shadow: true,\n styleUrl: 'styles.scss',\n})\nexport class Q2CheckboxGroup implements ComponentInterface {\n @Prop({ reflect: true }) label: string;\n @Prop({ mutable: true }) value: object;\n @Prop({ reflect: true }) disabled: boolean = false;\n @Prop({ reflect: true }) readonly: boolean = false;\n @Prop({ reflect: true }) optional: boolean = false;\n @Prop({ reflect: true }) hasError: boolean = false;\n\n @Element() hostElement: HTMLElement;\n _id: string = `checkbox-group-${createGuid()}`;\n mutationObserver: MutationObserver;\n\n get checkboxElements() {\n return Array.from(this.hostElement.querySelectorAll('q2-checkbox')) as HTMLQ2CheckboxElement[];\n }\n\n get protectedValue(): object {\n return this.value || {};\n }\n\n onMutationObserved = () => {\n this.valueUpdated();\n this.updateDisabled();\n };\n\n onInnerCheckboxChange = (event: CustomEvent) => {\n event.stopImmediatePropagation();\n const groupValue = {};\n this.checkboxElements.forEach(check => {\n groupValue[check.value] = !!check.checked;\n });\n this.change.emit(groupValue);\n };\n\n ///// LIFECYCLE HOOK ///////\n\n componentDidLoad() {\n const observer = new MutationObserver(this.onMutationObserved);\n observer.observe(this.hostElement, { childList: true });\n this.mutationObserver = observer;\n this.onMutationObserved();\n }\n\n disconnectedCallback() {\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n this.mutationObserver = null;\n }\n }\n\n @Watch('value')\n valueUpdated() {\n if (this.readonly) return;\n this.checkboxElements.forEach(check => {\n if (this.protectedValue.hasOwnProperty(check.value)) {\n check.checked = this.value[check.value];\n }\n });\n }\n\n @Watch('disabled')\n updateDisabled() {\n const groupDisabled = this.disabled;\n this.checkboxElements.forEach(checkbox => {\n checkbox.groupDisabled = groupDisabled;\n });\n }\n\n ///// HOST ELEMENT EVENTS ///////\n\n @Event() change: EventEmitter;\n\n @Listen('change')\n onHostElementChange(event: CustomEvent) {\n if (event.target === this.hostElement && !this.hostElement.onchange) {\n this.value = event.detail;\n }\n }\n\n render() {\n return (\n <div>\n {this.label || this.optional ? (\n <div class=\"group-legend\">\n {this.label && loc(this.label)}\n {this.optional ? <span class=\"optional-tag\">{loc('tecton.element.input.optional')}</span> : ''}\n </div>\n ) : (\n ''\n )}\n <fieldset\n class={`q2-checkbox-fieldset ${this.hasError ? 'has-error' : ''}`}\n onChange={this.onInnerCheckboxChange}\n aria-invalid={`${this.hasError}`}\n >\n {this.label || this.optional ? (\n <legend class=\"sr-only\">\n {this.label && loc(this.label)}\n {this.optional ? (\n <span class=\"optional-tag\">{loc('tecton.element.input.optional')}</span>\n ) : (\n ''\n )}\n </legend>\n ) : (\n ''\n )}\n {this.hasError ? (\n <div class={`error-icon-container ${this.label || this.optional ? '' : 'no-label'}`}>\n <q2-icon\n class=\"h(4) w(4) mrg-b(2)\"\n type=\"error\"\n ></q2-icon>\n </div>\n ) : (\n ''\n )}\n {this.inputDom()}\n </fieldset>\n </div>\n );\n }\n\n inputDom() {\n return <slot />;\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/q2-checkbox-group/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Prop,\n Element,\n h,\n Listen,\n EventEmitter,\n Event,\n ComponentInterface,\n Watch,\n Method,\n} from '@stencil/core';\nimport { createGuid, loc } from 'src/utils';\n\n@Component({\n tag: 'q2-checkbox-group',\n shadow: true,\n styleUrl: 'styles.scss',\n})\nexport class Q2CheckboxGroup implements ComponentInterface {\n @Prop({ reflect: true }) label: string;\n @Prop({ mutable: true }) value: object;\n @Prop({ reflect: true }) disabled: boolean = false;\n @Prop({ reflect: true }) readonly: boolean = false;\n @Prop({ reflect: true }) optional: boolean = false;\n @Prop({ reflect: true }) hasError: boolean = false;\n\n @Element() hostElement: HTMLElement;\n _id: string = `checkbox-group-${createGuid()}`;\n mutationObserver: MutationObserver;\n\n get checkboxElements() {\n return Array.from(this.hostElement.querySelectorAll('q2-checkbox')) as HTMLQ2CheckboxElement[];\n }\n\n get protectedValue(): object {\n return this.value || {};\n }\n\n onMutationObserved = () => {\n this.valueUpdated();\n this.updateDisabled();\n };\n\n onInnerCheckboxChange = (event: CustomEvent) => {\n event.stopImmediatePropagation();\n const groupValue = {};\n setTimeout(() => {\n this.checkboxElements.forEach(check => {\n groupValue[check.value] = !!check.checked;\n });\n this.change.emit(groupValue);\n }, 0);\n };\n\n ///// LIFECYCLE HOOK ///////\n\n componentWillLoad() {\n this.updateReadonly(this.readonly);\n }\n\n componentDidLoad() {\n const observer = new MutationObserver(this.onMutationObserved);\n observer.observe(this.hostElement, { childList: true });\n this.mutationObserver = observer;\n this.onMutationObserved();\n }\n\n disconnectedCallback() {\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n this.mutationObserver = null;\n }\n }\n\n @Watch('value')\n valueUpdated() {\n if (this.readonly) return;\n this.checkboxElements.forEach(check => {\n if (this.protectedValue.hasOwnProperty(check.value)) {\n check.checked = this.value[check.value];\n }\n });\n }\n\n @Watch('disabled')\n updateDisabled() {\n const groupDisabled = this.disabled;\n this.checkboxElements.forEach(checkbox => {\n checkbox.groupDisabled = groupDisabled;\n });\n }\n\n @Watch('readonly')\n updateReadonly(newReadonly: boolean) {\n this.checkboxElements.forEach(checkbox => {\n checkbox.readonly = newReadonly;\n });\n }\n\n /// Methods ///\n @Method()\n setValue(values: string | string[]) {\n const valuesSet = new Set(Array.isArray(values) ? values : [values]);\n this.checkboxElements.forEach(check => {\n if (valuesSet.has(check.value)) check.click();\n });\n }\n\n ///// HOST ELEMENT EVENTS ///////\n\n @Event() change: EventEmitter;\n\n @Listen('change')\n onHostElementChange(event: CustomEvent) {\n if (event.target === this.hostElement && !this.hostElement.onchange) {\n this.value = event.detail;\n }\n }\n\n render() {\n return (\n <div>\n {this.label || this.optional ? (\n <div class=\"group-legend\">\n {this.label && loc(this.label)}\n {this.optional ? <span class=\"optional-tag\">{loc('tecton.element.input.optional')}</span> : ''}\n </div>\n ) : (\n ''\n )}\n <fieldset\n class={`q2-checkbox-fieldset ${this.hasError ? 'has-error' : ''}`}\n onChange={this.onInnerCheckboxChange}\n aria-invalid={`${this.hasError}`}\n >\n {this.label || this.optional ? (\n <legend class=\"sr-only\">\n {this.label && loc(this.label)}\n {this.optional ? (\n <span class=\"optional-tag\">{loc('tecton.element.input.optional')}</span>\n ) : (\n ''\n )}\n </legend>\n ) : (\n ''\n )}\n {this.hasError ? (\n <div class={`error-icon-container ${this.label || this.optional ? '' : 'no-label'}`}>\n <q2-icon\n class=\"h(4) w(4) mrg-b(2)\"\n type=\"error\"\n ></q2-icon>\n </div>\n ) : (\n ''\n )}\n {this.inputDom()}\n </fieldset>\n </div>\n );\n }\n\n inputDom() {\n return <slot />;\n }\n}\n"]}
@@ -70,10 +70,10 @@ button {
70
70
  }
71
71
 
72
72
  .container {
73
- --comp-cell-padding: var(--tct-table-cell-padding, var(--app-scale-3x, 15px));
74
- --comp-select-column-width: var(--tct-table-select-column-width, var(--tct-checkbox-size, 20px));
75
- --comp-dropdown-column-width: var(--tct-table-dropdown-column-width, var(--tct-btn-icon-width, 44px));
76
- --comp-expandable-row-control-column-width: var(--tct-table-expandable-row-control-column-width, var(--tct-btn-icon-width, 44px));
73
+ --comp-cell-padding: var(--tct-data-table-cell-padding, var(--tct-table-cell-padding, var(--app-scale-3x, 15px)));
74
+ --comp-select-column-width: var(--tct-data-table-select-column-width, var(--tct-table-select-column-width, var(--tct-checkbox-size, 20px)));
75
+ --comp-dropdown-column-width: var(--tct-data-table-dropdown-column-width, var(--tct-table-dropdown-column-width, var(--tct-btn-icon-width, 44px)));
76
+ --comp-expandable-row-control-column-width: var(--tct-data-table-expandable-row-control-column-width, var(--tct-table-expandable-row-control-column-width, var(--tct-btn-icon-width, 44px)));
77
77
  overflow: auto;
78
78
  --comp-scrollbar-size: var(--tct-scrollbar-size, var(--t-scrollbar-size, var(--app-scale-1x, 5px)));
79
79
  --comp-scrollbar-border-radius: var(--tct-scrollbar-border-radius, var(--t-scrollbar-border-radius, var(--app-border-radius-1, 3px)));
@@ -95,30 +95,30 @@ button {
95
95
  border-radius: var(--comp-scrollbar-border-radius);
96
96
  }
97
97
  :host([shadowed]:not([shadowed=false])) .container {
98
- box-shadow: var(--tct-table-shadow, var(--app-shadow-1, 0 2px 4px rgba(0, 0, 0, 0.3)));
98
+ box-shadow: var(--tct-data-table-shadow, var(--tct-table-shadow, var(--app-shadow-1, 0 2px 4px rgba(0, 0, 0, 0.3))));
99
99
  }
100
100
  :host([density=compact]) .container {
101
- --comp-cell-padding: var(--tct-table-cell-padding-compact, var(--app-scale-1x, 5px));
101
+ --comp-cell-padding: var(--tct-data-table-cell-padding-compact, var(--tct-table-cell-padding-compact, var(--app-scale-1x, 5px)));
102
102
  }
103
103
  :host([density=comfortable]) .container {
104
- --comp-cell-padding: var(--tct-table-cell-padding-comfortable, var(--app-scale-5x, 25px));
104
+ --comp-cell-padding: var(--tct-data-table-cell-padding-comfortable, var(--tct-table-cell-padding-comfortable, var(--app-scale-5x, 25px)));
105
105
  }
106
106
 
107
107
  table {
108
- table-layout: var(--tct-table-layout, auto);
108
+ table-layout: var(--tct-data-table-layout, var(--tct-table-layout, auto));
109
109
  border-collapse: collapse;
110
110
  border-spacing: 0;
111
- width: var(--tct-table-width);
111
+ width: var(--tct-data-table-width, var(--tct-table-width));
112
112
  min-width: 100%;
113
- background: var(--tct-table-background, var(--t-base, #ffffff));
114
- caption-side: var(--tct-table-caption-side, bottom);
113
+ background: var(--tct-data-table-background, var(--tct-table-background, var(--t-base, #ffffff)));
114
+ caption-side: var(--tct-data-table-caption-side, var(--tct-table-caption-side, bottom));
115
115
  }
116
116
 
117
117
  thead {
118
- border-width: var(--tct-table-header-border-width, 0 0 2px 0);
119
- border-style: var(--tct-table-header-border-style, solid);
120
- border-color: var(--tct-table-header-border-color, var(--t-gray-9, #999999));
121
- background: var(--tct-table-header-background);
118
+ border-width: var(--tct-data-table-header-border-width, var(--tct-table-header-border-width, 0 0 2px 0));
119
+ border-style: var(--tct-data-table-header-border-style, var(--tct-table-header-border-style, solid));
120
+ border-color: var(--tct-data-table-header-border-color, var(--tct-table-header-border-color, var(--t-gray-9, #999999)));
121
+ background: var(--tct-data-table-header-background, var(--tct-table-header-background));
122
122
  }
123
123
 
124
124
  col.select-column {
@@ -146,13 +146,14 @@ th.align-center {
146
146
  }
147
147
 
148
148
  th .header-content {
149
- font-weight: var(--tct-table-header-font-weight, 400);
149
+ font-weight: var(--tct-data-table-header-font-weight, var(--tct-table-header-font-weight, 400));
150
+ font-size: var(--tct-data-table-header-font-size, var(--app-font-size, 14px));
150
151
  }
151
152
  th.sorted .header-content {
152
- font-weight: var(--tct-table-header-sorted-font-weight, 600);
153
+ font-weight: var(--tct-data-table-header-sorted-font-weight, var(--tct-table-header-sorted-font-weight, 600));
153
154
  }
154
155
  th .sorted-indicator {
155
- --comp-header-sortable-icon-size: var(--tct-table-header-sortable-icon-size, var(--app-scale-3x, 15px));
156
+ --comp-header-sortable-icon-size: var(--tct-data-table-header-sortable-icon-size, var(--tct-table-header-sortable-icon-size, var(--app-scale-3x, 15px)));
156
157
  --tct-icon-stroke-width: 2;
157
158
  width: var(--comp-header-sortable-icon-size);
158
159
  height: var(--comp-header-sortable-icon-size);
@@ -163,7 +164,7 @@ th .sorted-indicator.direction-ASC {
163
164
  th q2-btn .header-content {
164
165
  display: flex;
165
166
  align-items: center;
166
- gap: var(--tct-table-header-content-gap, var(--app-scale-2x, 10px));
167
+ gap: var(--tct-data-table-header-content-gap, var(--tct-table-header-content-gap, var(--app-scale-2x, 10px)));
167
168
  }
168
169
 
169
170
  tr.expandable, tr.clickable {
@@ -174,27 +175,27 @@ tr.expandable:focus, tr.clickable:focus {
174
175
  box-shadow: none;
175
176
  }
176
177
  tr.expandable:hover {
177
- background: var(--tct-table-expandable-row-hover-background, var(--t-gray-14, #f2f2f2));
178
+ background: var(--tct-data-table-expandable-row-hover-background, var(--tct-table-expandable-row-hover-background, var(--t-gray-14, #f2f2f2)));
178
179
  }
179
180
  tr.clickable:hover {
180
- background: var(--tct-table-clickable-row-hover-background, var(--t-gray-14, #f2f2f2));
181
+ background: var(--tct-data-table-clickable-row-hover-background, var(--tct-table-clickable-row-hover-background, var(--t-gray-14, #f2f2f2)));
181
182
  }
182
183
  tr.selected {
183
- background: var(--tct-table-selected-row-background, var(--t-gray-14, #f2f2f2));
184
+ background: var(--tct-data-table-selected-row-background, var(--tct-table-selected-row-background, var(--t-gray-14, #f2f2f2)));
184
185
  }
185
186
  tr.expanded {
186
- background: var(--tct-table-expanded-row-background, var(--t-gray-14, #f2f2f2));
187
+ background: var(--tct-data-table-expanded-row-background, var(--tct-table-expanded-row-background, var(--t-gray-14, #f2f2f2)));
187
188
  }
188
189
  tr.expanded .toggle-expandable-row {
189
190
  transform: rotate(180deg);
190
191
  }
191
192
  :host([bordered]:not([bordered=false])) tbody tr {
192
- border-width: var(--tct-table-row-border-width, 0 0 1px 0);
193
- border-style: var(--tct-table-row-border-style, solid);
194
- border-color: var(--tct-table-row-border-color, var(--t-gray-9, #999999));
193
+ border-width: var(--tct-data-table-row-border-width, var(--tct-table-row-border-width, 0 0 1px 0));
194
+ border-style: var(--tct-data-table-row-border-style, var(--tct-table-row-border-style, solid));
195
+ border-color: var(--tct-data-table-row-border-color, var(--tct-table-row-border-color, var(--t-gray-9, #999999)));
195
196
  }
196
197
  tr.loading-row {
197
- background: var(--tct-table-loading-row-background, var(--t-base, #ffffff));
198
+ background: var(--tct-data-table-loading-row-background, var(--tct-table-loading-row-background, var(--t-base, #ffffff)));
198
199
  }
199
200
  tr.loading-row td {
200
201
  text-align: center;
@@ -203,7 +204,7 @@ tr.loading-row q2-loading {
203
204
  font-size: 4em;
204
205
  }
205
206
  tr.expandable-row {
206
- background: var(--tct-table-expanded-row-background, var(--t-gray-14, #f2f2f2));
207
+ background: var(--tct-data-table-expanded-row-background, var(--tct-table-expanded-row-background, var(--t-gray-14, #f2f2f2)));
207
208
  }
208
209
 
209
210
  td.clamped div {
@@ -215,24 +216,24 @@ td.clamped div {
215
216
  }
216
217
  td.expandable-row-control-column {
217
218
  --tct-btn-icon-hover-bg: transparent;
218
- padding: var(--tct-table-expandable-row-control-column-padding, 0 var(--app-scale-1x, 5px));
219
+ padding: var(--tct-data-table-expandable-row-control-column-padding, var(--tct-table-expandable-row-control-column-padding, 0 var(--app-scale-1x, 5px)));
219
220
  text-align: center;
220
221
  }
221
222
  td.dropdown-column {
222
- padding: var(--tct-table-dropdown-column-padding, 0 var(--app-scale-1x, 5px));
223
+ padding: var(--tct-data-table-dropdown-column-padding, var(--tct-table-dropdown-column-padding, 0 var(--app-scale-1x, 5px)));
223
224
  text-align: center;
224
225
  }
225
226
  td.click-column:not(.sr) {
226
- padding: var(--tct-table-clickable-column-padding, 0 var(--app-scale-1x, 5px));
227
+ padding: var(--tct-data-table-clickable-column-padding, var(--tct-table-clickable-column-padding, 0 var(--app-scale-1x, 5px)));
227
228
  text-align: center;
228
229
  }
229
230
 
230
231
  caption {
231
- padding: var(--tct-table-caption-padding, var(--app-scale-2x, 10px));
232
- font-size: var(--tct-table-caption-font-size, inherit);
233
- font-weight: var(--tct-table-caption-font-weight, 600);
234
- text-align: var(--tct-table-caption-text-align, center);
235
- color: var(--tct-table-caption-color, inherit);
232
+ padding: var(--tct-data-table-caption-padding, var(--tct-table-caption-padding, var(--app-scale-2x, 10px)));
233
+ font-size: var(--tct-data-table-caption-font-size, var(--tct-table-caption-font-size, inherit));
234
+ font-weight: var(--tct-data-table-caption-font-weight, var(--tct-table-caption-font-weight, 600));
235
+ text-align: var(--tct-data-table-caption-text-align, var(--tct-table-caption-text-align, center));
236
+ color: var(--tct-data-table-caption-color, var(--tct-table-caption-color, inherit));
236
237
  }
237
238
 
238
239
  q2-checkbox {
@@ -1,5 +1,5 @@
1
1
  import { h } from '@stencil/core';
2
- import { handleAriaLabel, isEventFromElement, loc, overrideFocus } from 'src/utils';
2
+ import { handleAriaLabel, isEventFromElement, loc, overrideFocus, waitForNextPaint } from 'src/utils';
3
3
  export class Q2EditableField {
4
4
  constructor() {
5
5
  this.scheduledAfterRender = [];
@@ -81,7 +81,7 @@ export class Q2EditableField {
81
81
  componentDidRender() {
82
82
  this.scheduledAfterRender.forEach(fn => fn());
83
83
  this.scheduledAfterRender = [];
84
- this.formattedValue = this.q2InputElement.formattedValue;
84
+ this.formattedValue = this.inputElement.formattedValue;
85
85
  }
86
86
  componentDidLoad() {
87
87
  overrideFocus(this.hostElement);
@@ -95,7 +95,7 @@ export class Q2EditableField {
95
95
  const hasErrors = errors.length;
96
96
  if (isInputFocused || !focusedElement || !editing || !hasErrors)
97
97
  return;
98
- this.q2InputElement.focus();
98
+ this.inputElement.focus();
99
99
  }
100
100
  ariaLabelObserver() {
101
101
  handleAriaLabel(this);
@@ -117,7 +117,7 @@ export class Q2EditableField {
117
117
  this.value = event.detail.value;
118
118
  break;
119
119
  case 'cancel':
120
- this.q2InputElement.value = this.value;
120
+ this.inputElement.value = this.value;
121
121
  break;
122
122
  }
123
123
  this.editing = event.detail.editing;
@@ -127,11 +127,39 @@ export class Q2EditableField {
127
127
  return;
128
128
  this.hostElement.shadowRoot.querySelector(this.editing ? 'q2-input' : 'q2-btn.begin-edit').focus();
129
129
  }
130
+ /// Methods ///
131
+ clickEdit() {
132
+ var _a;
133
+ if (this.editing)
134
+ return;
135
+ (_a = this.editBtnElement) === null || _a === void 0 ? void 0 : _a.click();
136
+ }
137
+ clickCancel() {
138
+ var _a;
139
+ if (!this.editing)
140
+ return;
141
+ (_a = this.cancelBtnElement) === null || _a === void 0 ? void 0 : _a.click();
142
+ }
143
+ clickSave() {
144
+ var _a;
145
+ if (!this.editing)
146
+ return;
147
+ (_a = this.saveBtnElement) === null || _a === void 0 ? void 0 : _a.click();
148
+ }
149
+ async setValue(value, options = { clickSave: true }) {
150
+ await this.clickEdit();
151
+ await waitForNextPaint();
152
+ await this.inputElement.setValue(value);
153
+ if (options.clickSave) {
154
+ await this.clickSave();
155
+ await waitForNextPaint();
156
+ }
157
+ }
130
158
  render() {
131
159
  return (h("div", null, this.generateEditStateDOM(), this.generateReadStateDOM()));
132
160
  }
133
161
  generateEditStateDOM() {
134
- return (h("div", { class: this.wrapperClass, hidden: !this.editing }, h("q2-input", { ref: el => (this.q2InputElement = el), label: this.locLabel, hideLabel: this.hideLabel, value: this.value, hints: (Array.isArray(this.hints) && this.hints.map(str => loc(str))) || undefined, errors: (Array.isArray(this.errors) && this.errors.map(str => loc(str))) || undefined, type: this.type, disabled: this.disabled, formatModifier: this.formatModifier, maxlength: this.maxlength, "test-id": "editableInput", onInput: this.inputInput, onChange: this.inputChange, onKeyDown: this.inputKeyDown, onClick: this.inputClick }), h("q2-btn", { class: "cancel-edit", label: `${loc('tecton.element.editableField.cancel')} ${this.locLabel}`, "hide-label": true, "test-id": "cancelButton", onClick: this.cancelClick }, h("q2-icon", { type: "close" })), h("q2-btn", { class: "save-edit", label: `${loc('tecton.element.editableField.save')} ${this.locLabel}`, "hide-label": true, "test-id": "saveButton", onClick: this.saveClick }, h("q2-icon", { type: "checkmark" }))));
162
+ return (h("div", { class: this.wrapperClass, hidden: !this.editing }, h("q2-input", { ref: el => (this.inputElement = el), label: this.locLabel, hideLabel: this.hideLabel, value: this.value, hints: (Array.isArray(this.hints) && this.hints.map(str => loc(str))) || undefined, errors: (Array.isArray(this.errors) && this.errors.map(str => loc(str))) || undefined, type: this.type, disabled: this.disabled, formatModifier: this.formatModifier, maxlength: this.maxlength, "test-id": "editableInput", onInput: this.inputInput, onChange: this.inputChange, onKeyDown: this.inputKeyDown, onClick: this.inputClick }), h("q2-btn", { ref: el => (this.cancelBtnElement = el), class: "cancel-edit", label: `${loc('tecton.element.editableField.cancel')} ${this.locLabel}`, "hide-label": true, "test-id": "cancelButton", onClick: this.cancelClick }, h("q2-icon", { type: "close" })), h("q2-btn", { ref: el => (this.saveBtnElement = el), class: "save-edit", label: `${loc('tecton.element.editableField.save')} ${this.locLabel}`, "hide-label": true, "test-id": "saveButton", onClick: this.saveClick }, h("q2-icon", { type: "checkmark" }))));
135
163
  }
136
164
  generateReadStateDOM() {
137
165
  if (this.persistentLabel && this.locLabel) {
@@ -140,7 +168,7 @@ export class Q2EditableField {
140
168
  return (h("div", { class: this.wrapperClass, hidden: this.editing }, h("div", { class: "text-wrapper" }, this.formattedValue || this.value), this.generateEditBtn()));
141
169
  }
142
170
  generateEditBtn() {
143
- return (h("q2-btn", { ref: el => (this.q2EditBtnElement = el), class: "begin-edit", label: `${loc('tecton.element.editableField.edit')} ${this.locLabel}`, "hide-label": true, disabled: this.disabled, "test-id": "editButton", onClick: this.editClick }, h("q2-icon", { type: "edit" })));
171
+ return (h("q2-btn", { ref: el => (this.editBtnElement = el), class: "begin-edit", label: `${loc('tecton.element.editableField.edit')} ${this.locLabel}`, "hide-label": true, disabled: this.disabled, "test-id": "editButton", onClick: this.editClick }, h("q2-icon", { type: "edit" })));
144
172
  }
145
173
  static get is() { return "q2-editable-field"; }
146
174
  static get encapsulation() { return "shadow"; }
@@ -441,6 +469,68 @@ export class Q2EditableField {
441
469
  }
442
470
  }];
443
471
  }
472
+ static get methods() {
473
+ return {
474
+ "clickEdit": {
475
+ "complexType": {
476
+ "signature": "() => Promise<void>",
477
+ "parameters": [],
478
+ "references": {},
479
+ "return": "Promise<void>"
480
+ },
481
+ "docs": {
482
+ "text": "",
483
+ "tags": []
484
+ }
485
+ },
486
+ "clickCancel": {
487
+ "complexType": {
488
+ "signature": "() => Promise<void>",
489
+ "parameters": [],
490
+ "references": {},
491
+ "return": "Promise<void>"
492
+ },
493
+ "docs": {
494
+ "text": "",
495
+ "tags": []
496
+ }
497
+ },
498
+ "clickSave": {
499
+ "complexType": {
500
+ "signature": "() => Promise<void>",
501
+ "parameters": [],
502
+ "references": {},
503
+ "return": "Promise<void>"
504
+ },
505
+ "docs": {
506
+ "text": "",
507
+ "tags": []
508
+ }
509
+ },
510
+ "setValue": {
511
+ "complexType": {
512
+ "signature": "(value: string, options?: { clickSave?: boolean; }) => Promise<void>",
513
+ "parameters": [{
514
+ "tags": [],
515
+ "text": ""
516
+ }, {
517
+ "tags": [],
518
+ "text": ""
519
+ }],
520
+ "references": {
521
+ "Promise": {
522
+ "location": "global"
523
+ }
524
+ },
525
+ "return": "Promise<void>"
526
+ },
527
+ "docs": {
528
+ "text": "",
529
+ "tags": []
530
+ }
531
+ }
532
+ };
533
+ }
444
534
  static get elementRef() { return "hostElement"; }
445
535
  static get watchers() {
446
536
  return [{