q2-tecton-elements 1.38.1 → 1.39.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 (400) hide show
  1. package/dist/cjs/click-elsewhere_2.cjs.entry.js +1 -1
  2. package/dist/cjs/click-elsewhere_2.cjs.entry.js.map +1 -1
  3. package/dist/cjs/{index-09c712ea.js → index-9113a9da.js} +2 -2
  4. package/dist/cjs/{index-09c712ea.js.map → index-9113a9da.js.map} +1 -1
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/q2-action-sheet.cjs.entry.js +1 -1
  7. package/dist/cjs/q2-action-sheet.cjs.entry.js.map +1 -1
  8. package/dist/cjs/q2-btn_2.cjs.entry.js +2 -2
  9. package/dist/cjs/q2-btn_2.cjs.entry.js.map +1 -1
  10. package/dist/cjs/q2-calendar.cjs.entry.js +11 -2
  11. package/dist/cjs/q2-calendar.cjs.entry.js.map +1 -1
  12. package/dist/cjs/q2-card.cjs.entry.js +20 -23
  13. package/dist/cjs/q2-card.cjs.entry.js.map +1 -1
  14. package/dist/cjs/q2-carousel-pane.cjs.entry.js +1 -1
  15. package/dist/cjs/q2-carousel-pane.cjs.entry.js.map +1 -1
  16. package/dist/cjs/q2-carousel.cjs.entry.js +30 -4
  17. package/dist/cjs/q2-carousel.cjs.entry.js.map +1 -1
  18. package/dist/cjs/q2-chart-area.cjs.entry.js +1 -1
  19. package/dist/cjs/q2-chart-area.cjs.entry.js.map +1 -1
  20. package/dist/cjs/q2-chart-bar.cjs.entry.js +1 -1
  21. package/dist/cjs/q2-chart-donut.cjs.entry.js +14 -14
  22. package/dist/cjs/q2-chart-donut.cjs.entry.js.map +1 -1
  23. package/dist/cjs/q2-checkbox-group.cjs.entry.js +1 -1
  24. package/dist/cjs/q2-checkbox-group.cjs.entry.js.map +1 -1
  25. package/dist/cjs/q2-checkbox.cjs.entry.js +1 -1
  26. package/dist/cjs/q2-checkbox.cjs.entry.js.map +1 -1
  27. package/dist/cjs/q2-data-table.cjs.entry.js +43 -21
  28. package/dist/cjs/q2-data-table.cjs.entry.js.map +1 -1
  29. package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
  30. package/dist/cjs/q2-dropdown.cjs.entry.js +1 -1
  31. package/dist/cjs/q2-editable-field.cjs.entry.js +1 -1
  32. package/dist/cjs/q2-editable-field.cjs.entry.js.map +1 -1
  33. package/dist/cjs/q2-icon.cjs.entry.js +1 -1
  34. package/dist/cjs/q2-input.cjs.entry.js +7 -4
  35. package/dist/cjs/q2-input.cjs.entry.js.map +1 -1
  36. package/dist/cjs/q2-loc.cjs.entry.js +1 -1
  37. package/dist/cjs/q2-message.cjs.entry.js +1 -1
  38. package/dist/cjs/q2-month-picker.cjs.entry.js +1 -1
  39. package/dist/cjs/q2-optgroup_2.cjs.entry.js +1 -1
  40. package/dist/cjs/q2-optgroup_2.cjs.entry.js.map +1 -1
  41. package/dist/cjs/q2-option-list.cjs.entry.js +1 -1
  42. package/dist/cjs/q2-option-list.cjs.entry.js.map +1 -1
  43. package/dist/cjs/q2-pagination.cjs.entry.js +1 -1
  44. package/dist/cjs/q2-pagination.cjs.entry.js.map +1 -1
  45. package/dist/cjs/q2-pill.cjs.entry.js +1 -1
  46. package/dist/cjs/q2-pill.cjs.entry.js.map +1 -1
  47. package/dist/cjs/q2-radio-group.cjs.entry.js +1 -1
  48. package/dist/cjs/q2-radio-group.cjs.entry.js.map +1 -1
  49. package/dist/cjs/q2-radio.cjs.entry.js +1 -1
  50. package/dist/cjs/q2-radio.cjs.entry.js.map +1 -1
  51. package/dist/cjs/q2-section.cjs.entry.js +2 -2
  52. package/dist/cjs/q2-section.cjs.entry.js.map +1 -1
  53. package/dist/cjs/q2-select.cjs.entry.js +1 -1
  54. package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
  55. package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
  56. package/dist/cjs/q2-stepper-pane.cjs.entry.js.map +1 -1
  57. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +4 -4
  58. package/dist/cjs/q2-stepper-vertical.cjs.entry.js.map +1 -1
  59. package/dist/cjs/q2-stepper.cjs.entry.js +1 -1
  60. package/dist/cjs/q2-stepper.cjs.entry.js.map +1 -1
  61. package/dist/cjs/q2-tab-container.cjs.entry.js +1 -1
  62. package/dist/cjs/q2-tab-container.cjs.entry.js.map +1 -1
  63. package/dist/cjs/q2-tab-pane.cjs.entry.js.map +1 -1
  64. package/dist/cjs/q2-tag.cjs.entry.js +1 -1
  65. package/dist/cjs/q2-tag.cjs.entry.js.map +1 -1
  66. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  67. package/dist/cjs/q2-textarea.cjs.entry.js +1 -1
  68. package/dist/cjs/q2-textarea.cjs.entry.js.map +1 -1
  69. package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
  70. package/dist/cjs/tecton-tab-pane.cjs.entry.js.map +1 -1
  71. package/dist/collection/components/click-elsewhere/index.js +1 -1
  72. package/dist/collection/components/click-elsewhere/index.js.map +1 -1
  73. package/dist/collection/components/q2-action-sheet/index.js +6 -3
  74. package/dist/collection/components/q2-action-sheet/index.js.map +1 -1
  75. package/dist/collection/components/q2-btn/styles.css +11 -11
  76. package/dist/collection/components/q2-calendar/index.js +23 -11
  77. package/dist/collection/components/q2-calendar/index.js.map +1 -1
  78. package/dist/collection/components/q2-card/index.js +21 -27
  79. package/dist/collection/components/q2-card/index.js.map +1 -1
  80. package/dist/collection/components/q2-card/styles.css +57 -0
  81. package/dist/collection/components/q2-carousel/index.js +33 -5
  82. package/dist/collection/components/q2-carousel/index.js.map +1 -1
  83. package/dist/collection/components/q2-carousel-pane/index.js +8 -4
  84. package/dist/collection/components/q2-carousel-pane/index.js.map +1 -1
  85. package/dist/collection/components/q2-chart-area/index.js +9 -4
  86. package/dist/collection/components/q2-chart-area/index.js.map +1 -1
  87. package/dist/collection/components/q2-chart-donut/index.js +58 -22
  88. package/dist/collection/components/q2-chart-donut/index.js.map +1 -1
  89. package/dist/collection/components/q2-checkbox/index.js +5 -2
  90. package/dist/collection/components/q2-checkbox/index.js.map +1 -1
  91. package/dist/collection/components/q2-checkbox-group/index.js +12 -5
  92. package/dist/collection/components/q2-checkbox-group/index.js.map +1 -1
  93. package/dist/collection/components/q2-data-table/index.js +73 -29
  94. package/dist/collection/components/q2-data-table/index.js.map +1 -1
  95. package/dist/collection/components/q2-editable-field/index.js +6 -6
  96. package/dist/collection/components/q2-editable-field/index.js.map +1 -1
  97. package/dist/collection/components/q2-input/formatting/phone.js +1 -1
  98. package/dist/collection/components/q2-input/formatting/phone.js.map +1 -1
  99. package/dist/collection/components/q2-input/index.js +23 -19
  100. package/dist/collection/components/q2-input/index.js.map +1 -1
  101. package/dist/collection/components/q2-input/styles.css +3 -0
  102. package/dist/collection/components/q2-input/types.js.map +1 -1
  103. package/dist/collection/components/q2-option/index.js +5 -2
  104. package/dist/collection/components/q2-option/index.js.map +1 -1
  105. package/dist/collection/components/q2-option-list/index.js +15 -9
  106. package/dist/collection/components/q2-option-list/index.js.map +1 -1
  107. package/dist/collection/components/q2-pagination/index.js +8 -5
  108. package/dist/collection/components/q2-pagination/index.js.map +1 -1
  109. package/dist/collection/components/q2-pill/index.js +5 -2
  110. package/dist/collection/components/q2-pill/index.js.map +1 -1
  111. package/dist/collection/components/q2-popover/index.js +1 -1
  112. package/dist/collection/components/q2-popover/index.js.map +1 -1
  113. package/dist/collection/components/q2-radio/index.js +3 -3
  114. package/dist/collection/components/q2-radio/index.js.map +1 -1
  115. package/dist/collection/components/q2-radio-group/index.js +7 -4
  116. package/dist/collection/components/q2-radio-group/index.js.map +1 -1
  117. package/dist/collection/components/q2-section/index.js +7 -4
  118. package/dist/collection/components/q2-section/index.js.map +1 -1
  119. package/dist/collection/components/q2-section/styles.css +8 -6
  120. package/dist/collection/components/q2-select/index.js +8 -5
  121. package/dist/collection/components/q2-select/index.js.map +1 -1
  122. package/dist/collection/components/q2-stepper/index.js +5 -2
  123. package/dist/collection/components/q2-stepper/index.js.map +1 -1
  124. package/dist/collection/components/q2-stepper-pane/index.js +11 -8
  125. package/dist/collection/components/q2-stepper-pane/index.js.map +1 -1
  126. package/dist/collection/components/q2-stepper-vertical/index.js +13 -6
  127. package/dist/collection/components/q2-stepper-vertical/index.js.map +1 -1
  128. package/dist/collection/components/q2-tab-container/index.js +14 -8
  129. package/dist/collection/components/q2-tab-container/index.js.map +1 -1
  130. package/dist/collection/components/q2-tab-pane/index.js +5 -2
  131. package/dist/collection/components/q2-tab-pane/index.js.map +1 -1
  132. package/dist/collection/components/q2-tag/index.js +1 -1
  133. package/dist/collection/components/q2-tag/index.js.map +1 -1
  134. package/dist/collection/components/q2-textarea/index.js +14 -8
  135. package/dist/collection/components/q2-textarea/index.js.map +1 -1
  136. package/dist/collection/components/tecton-tab-pane/index.js +5 -2
  137. package/dist/collection/components/tecton-tab-pane/index.js.map +1 -1
  138. package/dist/collection/utils/index.js +1 -1
  139. package/dist/collection/utils/index.js.map +1 -1
  140. package/dist/components/index13.js.map +1 -1
  141. package/dist/components/index14.js.map +1 -1
  142. package/dist/components/index15.js.map +1 -1
  143. package/dist/components/index16.js +1 -1
  144. package/dist/components/index16.js.map +1 -1
  145. package/dist/components/index2.js.map +1 -1
  146. package/dist/components/index5.js +1 -1
  147. package/dist/components/index5.js.map +1 -1
  148. package/dist/components/index6.js.map +1 -1
  149. package/dist/components/index9.js +6 -3
  150. package/dist/components/index9.js.map +1 -1
  151. package/dist/components/q2-action-sheet.js.map +1 -1
  152. package/dist/components/q2-calendar.js +10 -1
  153. package/dist/components/q2-calendar.js.map +1 -1
  154. package/dist/components/q2-card.js +19 -22
  155. package/dist/components/q2-card.js.map +1 -1
  156. package/dist/components/q2-carousel-pane.js.map +1 -1
  157. package/dist/components/q2-carousel.js +32 -4
  158. package/dist/components/q2-carousel.js.map +1 -1
  159. package/dist/components/q2-chart-area.js.map +1 -1
  160. package/dist/components/q2-chart-donut.js +16 -15
  161. package/dist/components/q2-chart-donut.js.map +1 -1
  162. package/dist/components/q2-checkbox-group.js.map +1 -1
  163. package/dist/components/q2-data-table.js +43 -21
  164. package/dist/components/q2-data-table.js.map +1 -1
  165. package/dist/components/q2-editable-field.js.map +1 -1
  166. package/dist/components/q2-pagination.js.map +1 -1
  167. package/dist/components/q2-pill.js.map +1 -1
  168. package/dist/components/q2-radio-group.js.map +1 -1
  169. package/dist/components/q2-radio.js.map +1 -1
  170. package/dist/components/q2-section.js +1 -1
  171. package/dist/components/q2-section.js.map +1 -1
  172. package/dist/components/q2-select.js.map +1 -1
  173. package/dist/components/q2-stepper-pane.js.map +1 -1
  174. package/dist/components/q2-stepper-vertical.js +3 -3
  175. package/dist/components/q2-stepper-vertical.js.map +1 -1
  176. package/dist/components/q2-stepper.js.map +1 -1
  177. package/dist/components/q2-tab-container.js.map +1 -1
  178. package/dist/components/q2-tab-pane.js.map +1 -1
  179. package/dist/components/q2-tag.js.map +1 -1
  180. package/dist/components/q2-textarea.js.map +1 -1
  181. package/dist/components/tecton-tab-pane.js.map +1 -1
  182. package/dist/esm/click-elsewhere_2.entry.js +1 -1
  183. package/dist/esm/click-elsewhere_2.entry.js.map +1 -1
  184. package/dist/esm/{index-84f1034e.js → index-fbe28822.js} +2 -2
  185. package/dist/esm/{index-84f1034e.js.map → index-fbe28822.js.map} +1 -1
  186. package/dist/esm/loader.js +1 -1
  187. package/dist/esm/q2-action-sheet.entry.js +1 -1
  188. package/dist/esm/q2-action-sheet.entry.js.map +1 -1
  189. package/dist/esm/q2-btn_2.entry.js +2 -2
  190. package/dist/esm/q2-btn_2.entry.js.map +1 -1
  191. package/dist/esm/q2-calendar.entry.js +11 -2
  192. package/dist/esm/q2-calendar.entry.js.map +1 -1
  193. package/dist/esm/q2-card.entry.js +20 -23
  194. package/dist/esm/q2-card.entry.js.map +1 -1
  195. package/dist/esm/q2-carousel-pane.entry.js +1 -1
  196. package/dist/esm/q2-carousel-pane.entry.js.map +1 -1
  197. package/dist/esm/q2-carousel.entry.js +30 -4
  198. package/dist/esm/q2-carousel.entry.js.map +1 -1
  199. package/dist/esm/q2-chart-area.entry.js +1 -1
  200. package/dist/esm/q2-chart-area.entry.js.map +1 -1
  201. package/dist/esm/q2-chart-bar.entry.js +1 -1
  202. package/dist/esm/q2-chart-donut.entry.js +14 -14
  203. package/dist/esm/q2-chart-donut.entry.js.map +1 -1
  204. package/dist/esm/q2-checkbox-group.entry.js +1 -1
  205. package/dist/esm/q2-checkbox-group.entry.js.map +1 -1
  206. package/dist/esm/q2-checkbox.entry.js +1 -1
  207. package/dist/esm/q2-checkbox.entry.js.map +1 -1
  208. package/dist/esm/q2-data-table.entry.js +43 -21
  209. package/dist/esm/q2-data-table.entry.js.map +1 -1
  210. package/dist/esm/q2-dropdown-item.entry.js +1 -1
  211. package/dist/esm/q2-dropdown.entry.js +1 -1
  212. package/dist/esm/q2-editable-field.entry.js +1 -1
  213. package/dist/esm/q2-editable-field.entry.js.map +1 -1
  214. package/dist/esm/q2-icon.entry.js +1 -1
  215. package/dist/esm/q2-input.entry.js +7 -4
  216. package/dist/esm/q2-input.entry.js.map +1 -1
  217. package/dist/esm/q2-loc.entry.js +1 -1
  218. package/dist/esm/q2-message.entry.js +1 -1
  219. package/dist/esm/q2-month-picker.entry.js +1 -1
  220. package/dist/esm/q2-optgroup_2.entry.js +1 -1
  221. package/dist/esm/q2-optgroup_2.entry.js.map +1 -1
  222. package/dist/esm/q2-option-list.entry.js +1 -1
  223. package/dist/esm/q2-option-list.entry.js.map +1 -1
  224. package/dist/esm/q2-pagination.entry.js +1 -1
  225. package/dist/esm/q2-pagination.entry.js.map +1 -1
  226. package/dist/esm/q2-pill.entry.js +1 -1
  227. package/dist/esm/q2-pill.entry.js.map +1 -1
  228. package/dist/esm/q2-radio-group.entry.js +1 -1
  229. package/dist/esm/q2-radio-group.entry.js.map +1 -1
  230. package/dist/esm/q2-radio.entry.js +1 -1
  231. package/dist/esm/q2-radio.entry.js.map +1 -1
  232. package/dist/esm/q2-section.entry.js +2 -2
  233. package/dist/esm/q2-section.entry.js.map +1 -1
  234. package/dist/esm/q2-select.entry.js +1 -1
  235. package/dist/esm/q2-select.entry.js.map +1 -1
  236. package/dist/esm/q2-stepper-pane.entry.js +1 -1
  237. package/dist/esm/q2-stepper-pane.entry.js.map +1 -1
  238. package/dist/esm/q2-stepper-vertical.entry.js +4 -4
  239. package/dist/esm/q2-stepper-vertical.entry.js.map +1 -1
  240. package/dist/esm/q2-stepper.entry.js +1 -1
  241. package/dist/esm/q2-stepper.entry.js.map +1 -1
  242. package/dist/esm/q2-tab-container.entry.js +1 -1
  243. package/dist/esm/q2-tab-container.entry.js.map +1 -1
  244. package/dist/esm/q2-tab-pane.entry.js.map +1 -1
  245. package/dist/esm/q2-tag.entry.js +1 -1
  246. package/dist/esm/q2-tag.entry.js.map +1 -1
  247. package/dist/esm/q2-tecton-elements.js +1 -1
  248. package/dist/esm/q2-textarea.entry.js +1 -1
  249. package/dist/esm/q2-textarea.entry.js.map +1 -1
  250. package/dist/esm/q2-tooltip.entry.js +1 -1
  251. package/dist/esm/tecton-tab-pane.entry.js.map +1 -1
  252. package/dist/q2-tecton-elements/p-0253a00b.entry.js +2 -0
  253. package/dist/q2-tecton-elements/p-0253a00b.entry.js.map +1 -0
  254. package/dist/q2-tecton-elements/{p-72b4ecc6.entry.js → p-07229496.entry.js} +2 -2
  255. package/dist/q2-tecton-elements/p-07229496.entry.js.map +1 -0
  256. package/dist/q2-tecton-elements/{p-a6b03db1.entry.js → p-0ecff52c.entry.js} +2 -2
  257. package/dist/q2-tecton-elements/{p-a6b03db1.entry.js.map → p-0ecff52c.entry.js.map} +1 -1
  258. package/dist/q2-tecton-elements/{p-f198f77b.entry.js → p-1179b32c.entry.js} +2 -2
  259. package/dist/q2-tecton-elements/p-1179b32c.entry.js.map +1 -0
  260. package/dist/q2-tecton-elements/{p-311f37e2.entry.js → p-15c69543.entry.js} +2 -2
  261. package/dist/q2-tecton-elements/{p-9220365b.entry.js → p-212c6301.entry.js} +2 -2
  262. package/dist/q2-tecton-elements/p-212c6301.entry.js.map +1 -0
  263. package/dist/q2-tecton-elements/p-3090b655.entry.js +2 -0
  264. package/dist/q2-tecton-elements/p-3090b655.entry.js.map +1 -0
  265. package/dist/q2-tecton-elements/{p-8f8d5362.entry.js → p-3569e648.entry.js} +2 -2
  266. package/dist/q2-tecton-elements/p-3569e648.entry.js.map +1 -0
  267. package/dist/q2-tecton-elements/{p-0cade28b.entry.js → p-36bff57a.entry.js} +2 -2
  268. package/dist/q2-tecton-elements/{p-57e81863.entry.js → p-39e94e12.entry.js} +2 -2
  269. package/dist/q2-tecton-elements/{p-57e81863.entry.js.map → p-39e94e12.entry.js.map} +1 -1
  270. package/dist/q2-tecton-elements/p-3f20d610.entry.js +2 -0
  271. package/dist/q2-tecton-elements/p-3f20d610.entry.js.map +1 -0
  272. package/dist/q2-tecton-elements/{p-29a7ca63.entry.js → p-44c2d7a2.entry.js} +2 -2
  273. package/dist/q2-tecton-elements/{p-29a7ca63.entry.js.map → p-44c2d7a2.entry.js.map} +1 -1
  274. package/dist/q2-tecton-elements/{p-deb773a5.entry.js → p-461dca3d.entry.js} +2 -2
  275. package/dist/q2-tecton-elements/{p-deb773a5.entry.js.map → p-461dca3d.entry.js.map} +1 -1
  276. package/dist/q2-tecton-elements/{p-3d82d94f.entry.js → p-5964fd50.entry.js} +2 -2
  277. package/dist/q2-tecton-elements/{p-3d82d94f.entry.js.map → p-5964fd50.entry.js.map} +1 -1
  278. package/dist/q2-tecton-elements/{p-e98d9cf2.entry.js → p-5b4c30b8.entry.js} +2 -2
  279. package/dist/q2-tecton-elements/p-5b4c30b8.entry.js.map +1 -0
  280. package/dist/q2-tecton-elements/{p-69dcf12e.entry.js → p-5d6c2534.entry.js} +2 -2
  281. package/dist/q2-tecton-elements/p-5d6c2534.entry.js.map +1 -0
  282. package/dist/q2-tecton-elements/{p-a09c90c1.entry.js → p-66bc9475.entry.js} +2 -2
  283. package/dist/q2-tecton-elements/{p-a09c90c1.entry.js.map → p-66bc9475.entry.js.map} +1 -1
  284. package/dist/q2-tecton-elements/{p-e4dadcd7.entry.js → p-6ba6d83e.entry.js} +2 -2
  285. package/dist/q2-tecton-elements/p-6ba6d83e.entry.js.map +1 -0
  286. package/dist/q2-tecton-elements/{p-5843f6c8.entry.js → p-78d5707b.entry.js} +2 -2
  287. package/dist/q2-tecton-elements/p-78d5707b.entry.js.map +1 -0
  288. package/dist/q2-tecton-elements/{p-85dc889e.entry.js → p-7e276297.entry.js} +2 -2
  289. package/dist/q2-tecton-elements/p-7e276297.entry.js.map +1 -0
  290. package/dist/q2-tecton-elements/{p-059ea7c9.entry.js → p-81e36fcd.entry.js} +2 -2
  291. package/dist/q2-tecton-elements/{p-8f273db2.entry.js → p-88b303a7.entry.js} +2 -2
  292. package/dist/q2-tecton-elements/{p-8f273db2.entry.js.map → p-88b303a7.entry.js.map} +1 -1
  293. package/dist/q2-tecton-elements/p-9889692d.entry.js +2 -0
  294. package/dist/q2-tecton-elements/p-9889692d.entry.js.map +1 -0
  295. package/dist/q2-tecton-elements/p-9da0db14.entry.js.map +1 -1
  296. package/dist/q2-tecton-elements/{p-c057134f.entry.js → p-9dff6592.entry.js} +2 -2
  297. package/dist/q2-tecton-elements/p-9dff6592.entry.js.map +1 -0
  298. package/dist/q2-tecton-elements/{p-145849d0.entry.js → p-a5a23edc.entry.js} +2 -2
  299. package/dist/q2-tecton-elements/p-a5a23edc.entry.js.map +1 -0
  300. package/dist/q2-tecton-elements/{p-db3bbfb8.entry.js → p-a9c40d3b.entry.js} +2 -2
  301. package/dist/q2-tecton-elements/p-a9c40d3b.entry.js.map +1 -0
  302. package/dist/q2-tecton-elements/{p-15179d55.entry.js → p-aa96f160.entry.js} +2 -2
  303. package/dist/q2-tecton-elements/{p-5c033ed9.entry.js → p-b3a32a46.entry.js} +2 -2
  304. package/dist/q2-tecton-elements/{p-5c033ed9.entry.js.map → p-b3a32a46.entry.js.map} +1 -1
  305. package/dist/q2-tecton-elements/{p-f3868a77.entry.js → p-b6ed1342.entry.js} +2 -2
  306. package/dist/q2-tecton-elements/{p-f3868a77.entry.js.map → p-b6ed1342.entry.js.map} +1 -1
  307. package/dist/q2-tecton-elements/{p-52132d80.entry.js → p-ba19d09f.entry.js} +2 -2
  308. package/dist/q2-tecton-elements/p-ba19d09f.entry.js.map +1 -0
  309. package/dist/q2-tecton-elements/{p-81b917a5.entry.js → p-cc7ba0cb.entry.js} +2 -2
  310. package/dist/q2-tecton-elements/{p-107f07f2.entry.js → p-ce009987.entry.js} +2 -2
  311. package/dist/q2-tecton-elements/p-d7fb3534.entry.js.map +1 -1
  312. package/dist/q2-tecton-elements/{p-959f47ef.entry.js → p-de7352f5.entry.js} +2 -2
  313. package/dist/q2-tecton-elements/{p-6ae87415.entry.js → p-ef2e2991.entry.js} +2 -2
  314. package/dist/q2-tecton-elements/{p-b83568e7.entry.js → p-f1479052.entry.js} +2 -2
  315. package/dist/q2-tecton-elements/p-f1479052.entry.js.map +1 -0
  316. package/dist/q2-tecton-elements/{p-f34521a4.js → p-fb903495.js} +2 -2
  317. package/dist/q2-tecton-elements/{p-f34521a4.js.map → p-fb903495.js.map} +1 -1
  318. package/dist/q2-tecton-elements/{p-2812f9d2.entry.js → p-ff137358.entry.js} +2 -2
  319. package/dist/q2-tecton-elements/p-ff137358.entry.js.map +1 -0
  320. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  321. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
  322. package/dist/test/elements/q2-btn-test.e2e.js +31 -0
  323. package/dist/test/elements/q2-btn-test.e2e.js.map +1 -1
  324. package/dist/test/elements/q2-card-test.e2e.js +69 -11
  325. package/dist/test/elements/q2-card-test.e2e.js.map +1 -1
  326. package/dist/test/elements/q2-carousel-test.e2e.js +41 -3
  327. package/dist/test/elements/q2-carousel-test.e2e.js.map +1 -1
  328. package/dist/test/elements/q2-chart-donut-test.e2e.js +64 -9
  329. package/dist/test/elements/q2-chart-donut-test.e2e.js.map +1 -1
  330. package/dist/test/elements/q2-data-table-test.e2e.js +91 -2
  331. package/dist/test/elements/q2-data-table-test.e2e.js.map +1 -1
  332. package/dist/test/elements/q2-input-test.e2e.js +165 -67
  333. package/dist/test/elements/q2-input-test.e2e.js.map +1 -1
  334. package/dist/test/helpers.js +48 -0
  335. package/dist/test/helpers.js.map +1 -1
  336. package/dist/types/components/click-elsewhere/index.d.ts +3 -0
  337. package/dist/types/components/q2-action-sheet/index.d.ts +7 -0
  338. package/dist/types/components/q2-calendar/index.d.ts +23 -3
  339. package/dist/types/components/q2-card/index.d.ts +14 -4
  340. package/dist/types/components/q2-carousel/index.d.ts +8 -0
  341. package/dist/types/components/q2-carousel-pane/index.d.ts +7 -1
  342. package/dist/types/components/q2-chart-area/index.d.ts +7 -1
  343. package/dist/types/components/q2-chart-donut/index.d.ts +18 -3
  344. package/dist/types/components/q2-checkbox/index.d.ts +4 -0
  345. package/dist/types/components/q2-checkbox-group/index.d.ts +8 -1
  346. package/dist/types/components/q2-data-table/index.d.ts +43 -3
  347. package/dist/types/components/q2-editable-field/index.d.ts +18 -2
  348. package/dist/types/components/q2-input/index.d.ts +19 -2
  349. package/dist/types/components/q2-input/types.d.ts +1 -0
  350. package/dist/types/components/q2-option/index.d.ts +4 -0
  351. package/dist/types/components/q2-option-list/index.d.ts +15 -1
  352. package/dist/types/components/q2-pagination/index.d.ts +8 -2
  353. package/dist/types/components/q2-pill/index.d.ts +4 -0
  354. package/dist/types/components/q2-popover/index.d.ts +3 -0
  355. package/dist/types/components/q2-radio/index.d.ts +6 -1
  356. package/dist/types/components/q2-radio-group/index.d.ts +7 -1
  357. package/dist/types/components/q2-section/index.d.ts +7 -1
  358. package/dist/types/components/q2-select/index.d.ts +16 -1
  359. package/dist/types/components/q2-stepper/index.d.ts +4 -0
  360. package/dist/types/components/q2-stepper-pane/index.d.ts +11 -1
  361. package/dist/types/components/q2-stepper-vertical/index.d.ts +10 -2
  362. package/dist/types/components/q2-tab-container/index.d.ts +12 -2
  363. package/dist/types/components/q2-tab-pane/index.d.ts +4 -0
  364. package/dist/types/components/q2-tag/index.d.ts +5 -0
  365. package/dist/types/components/q2-textarea/index.d.ts +14 -2
  366. package/dist/types/components/tecton-tab-pane/index.d.ts +4 -0
  367. package/dist/types/components.d.ts +223 -27
  368. package/dist/types/workspace/workspace/{tecton-production_release_1.38.x → _Gitlab_tecton-production_master}/packages/q2-tecton-elements/.stencil/test/helpers.d.ts +1 -0
  369. package/package.json +4 -3
  370. package/dist/q2-tecton-elements/p-072bda73.entry.js +0 -2
  371. package/dist/q2-tecton-elements/p-072bda73.entry.js.map +0 -1
  372. package/dist/q2-tecton-elements/p-145849d0.entry.js.map +0 -1
  373. package/dist/q2-tecton-elements/p-14e3c48f.entry.js +0 -2
  374. package/dist/q2-tecton-elements/p-14e3c48f.entry.js.map +0 -1
  375. package/dist/q2-tecton-elements/p-2812f9d2.entry.js.map +0 -1
  376. package/dist/q2-tecton-elements/p-52132d80.entry.js.map +0 -1
  377. package/dist/q2-tecton-elements/p-5843f6c8.entry.js.map +0 -1
  378. package/dist/q2-tecton-elements/p-69dcf12e.entry.js.map +0 -1
  379. package/dist/q2-tecton-elements/p-72b4ecc6.entry.js.map +0 -1
  380. package/dist/q2-tecton-elements/p-85dc889e.entry.js.map +0 -1
  381. package/dist/q2-tecton-elements/p-8f8d5362.entry.js.map +0 -1
  382. package/dist/q2-tecton-elements/p-9220365b.entry.js.map +0 -1
  383. package/dist/q2-tecton-elements/p-a4017e55.entry.js +0 -2
  384. package/dist/q2-tecton-elements/p-a4017e55.entry.js.map +0 -1
  385. package/dist/q2-tecton-elements/p-af98db79.entry.js +0 -2
  386. package/dist/q2-tecton-elements/p-af98db79.entry.js.map +0 -1
  387. package/dist/q2-tecton-elements/p-b83568e7.entry.js.map +0 -1
  388. package/dist/q2-tecton-elements/p-c057134f.entry.js.map +0 -1
  389. package/dist/q2-tecton-elements/p-db3bbfb8.entry.js.map +0 -1
  390. package/dist/q2-tecton-elements/p-e4dadcd7.entry.js.map +0 -1
  391. package/dist/q2-tecton-elements/p-e98d9cf2.entry.js.map +0 -1
  392. package/dist/q2-tecton-elements/p-f198f77b.entry.js.map +0 -1
  393. /package/dist/q2-tecton-elements/{p-311f37e2.entry.js.map → p-15c69543.entry.js.map} +0 -0
  394. /package/dist/q2-tecton-elements/{p-0cade28b.entry.js.map → p-36bff57a.entry.js.map} +0 -0
  395. /package/dist/q2-tecton-elements/{p-059ea7c9.entry.js.map → p-81e36fcd.entry.js.map} +0 -0
  396. /package/dist/q2-tecton-elements/{p-15179d55.entry.js.map → p-aa96f160.entry.js.map} +0 -0
  397. /package/dist/q2-tecton-elements/{p-81b917a5.entry.js.map → p-cc7ba0cb.entry.js.map} +0 -0
  398. /package/dist/q2-tecton-elements/{p-107f07f2.entry.js.map → p-ce009987.entry.js.map} +0 -0
  399. /package/dist/q2-tecton-elements/{p-959f47ef.entry.js.map → p-de7352f5.entry.js.map} +0 -0
  400. /package/dist/q2-tecton-elements/{p-6ae87415.entry.js.map → p-ef2e2991.entry.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"names":["stylesCss","Q2DataTable","this","checkSlots","hasExpandableRows","_b","_a","hostElement","querySelector","hasDropdowns","_d","_c","checkSlotCount","onSort","header","direction","sorted","sortKey","key","sortEvent","sort","emit","defaultPrevented","serializedHeaders","map","serializedHeader","undefined","Object","assign","serializedRows","sortRows","onSelectAllRows","event","stopPropagation","checked","detail","selectedRows","row","selected","selectEvent","select","rows","allSelected","allRowsSelected","onSelectRow","selectMode","currentlySelectedRows","selectedRow","filter","id","length","onClickTableRow","clickable","onClickRow","onToggleRow","click","expanded","toggleEvent","toggle","onControlContainerClick","componentWillLoad","headersHandler","headers","rowsHandler","componentDidLoad","MutationObserver","observer","observe","childList","subtree","attributes","mutationObserver","ResizeObserver","resizeObserver","resizeIframe","disconnectedCallback","disconnect","find","numberOfColumns","selectable","mappedHeaders","reduce","accum","sortedRows","a","b","aValue","cells","value","bValue","title","toLowerCase","replace","defaultRow","serializedCells","entries","cellKey","cellData","align","type","lineClamp","isBadge","defaultCell","ariaLabel","badgeStatus","badgeTheme","result","sortedHeader","onClickListener","PointerEvent","stopImmediatePropagation","render","caption","h","class","hideCaption","renderTableColGroup","renderTableHeader","renderTableRows","width","backgroundColor","style","hideClickable","label","loc","onChange","disabled","loading","headerClasses","push","join","sortable","onClick","colSpan","inline","isSelectDisabled","clickableClasses","clickableClassString","cellSlotPrefix","expandableRowName","dropdownCellName","rowHasExpandableSlot","rowHasDropdownSlot","rowClasses","rowIsClickable","Fragment","e","tabIndex","cell","cellAlign","cellClasses","cellStyles","name","renderCellContent","intent","size","ariaExpanded","ariaControls","hidden","includes","valueAsInt","parseFloat","theme","status","valueAsString"],"sources":["./src/components/q2-data-table/styles.scss?tag=q2-data-table&encapsulation=shadow","./src/components/q2-data-table/index.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n display: block;\n}\n\n.container {\n --comp-cell-padding: #{var-list(--tct-data-table-cell-padding, --tct-table-cell-padding, --app-scale-3x, 15px)};\n --comp-select-column-width: #{var-list(--tct-data-table-select-column-width, --tct-table-select-column-width, --tct-checkbox-size, 20px)};\n --comp-dropdown-column-width: #{var-list(--tct-data-table-dropdown-column-width, --tct-table-dropdown-column-width, --tct-btn-icon-width, 44px)};\n --comp-expandable-row-control-column-width: #{var-list(\n --tct-data-table-expandable-row-control-column-width,\n --tct-table-expandable-row-control-column-width,\n --tct-btn-icon-width,\n 44px\n )};\n\n overflow: auto;\n @include tiny-scrollbar();\n\n :host([shadowed]:not([shadowed='false'])) & {\n box-shadow: var-list(--tct-data-table-shadow, --tct-table-shadow, --app-shadow-1, unquote('0 2px 4px rgba(0, 0, 0, 0.3)'));\n }\n\n :host([density='compact']) & {\n --comp-cell-padding: #{var-list(--tct-data-table-cell-padding-compact, --tct-table-cell-padding-compact, --app-scale-1x, 5px)};\n }\n\n :host([density='comfortable']) & {\n --comp-cell-padding: #{var-list(--tct-data-table-cell-padding-comfortable, --tct-table-cell-padding-comfortable, --app-scale-5x, 25px)};\n }\n}\n\ntable {\n table-layout: var-list(--tct-data-table-layout, --tct-table-layout, auto);\n border-collapse: collapse;\n border-spacing: 0;\n width: var-list(--tct-data-table-width, --tct-table-width);\n min-width: 100%;\n background: var-list(--tct-data-table-background, --tct-table-background, --t-base, #ffffff);\n caption-side: var-list(--tct-data-table-caption-side, --tct-table-caption-side, bottom);\n}\n\nthead {\n border-width: var-list(--tct-data-table-header-border-width, --tct-table-header-border-width, unquote('0 0 2px 0'));\n border-style: var-list(--tct-data-table-header-border-style, --tct-table-header-border-style, solid);\n border-color: var-list(--tct-data-table-header-border-color, --tct-table-header-border-color, --t-gray-9, #999999);\n background: var-list(--tct-data-table-header-background, --tct-table-header-background);\n}\n\ncol {\n &.select-column {\n width: var(--comp-select-column-width);\n }\n\n &.expandable-row-control-column {\n width: var(--comp-expandable-row-control-column-width);\n }\n\n &.dropdown-column {\n width: var(--comp-dropdown-column-width);\n }\n}\n\ntd,\nth {\n padding: var(--comp-cell-padding);\n text-align: start;\n\n &.align-end {\n text-align: end;\n }\n &.align-center {\n text-align: center;\n }\n}\n\nth {\n .header-content {\n font-weight: var-list(--tct-data-table-header-font-weight, --tct-table-header-font-weight, 400);\n font-size: var-list(--tct-data-table-header-font-size, --app-font-size, 14px);\n }\n\n &.sorted {\n .header-content {\n font-weight: var-list(--tct-data-table-header-sorted-font-weight, --tct-table-header-sorted-font-weight, 600);\n }\n }\n\n .sorted-indicator {\n --comp-header-sortable-icon-size: #{var-list(--tct-data-table-header-sortable-icon-size, --tct-table-header-sortable-icon-size, --app-scale-3x, 15px)};\n --tct-icon-stroke-width: 2;\n\n width: var(--comp-header-sortable-icon-size);\n height: var(--comp-header-sortable-icon-size);\n\n &.direction-ASC {\n transform: rotate(180deg);\n }\n }\n\n q2-btn {\n .header-content {\n display: flex;\n align-items: center;\n gap: var-list(--tct-data-table-header-content-gap, --tct-table-header-content-gap, --app-scale-2x, 10px);\n }\n }\n}\n\ntr {\n &.expandable,\n &.clickable {\n cursor: pointer;\n\n &:focus {\n outline: none;\n box-shadow: none;\n }\n }\n\n &.expandable {\n &:hover {\n background: var-list(--tct-data-table-expandable-row-hover-background, --tct-table-expandable-row-hover-background, --t-gray-14, #f2f2f2);\n }\n }\n\n &.clickable {\n &:hover {\n background: var-list(--tct-data-table-clickable-row-hover-background, --tct-table-clickable-row-hover-background, --t-gray-14, #f2f2f2);\n }\n }\n\n &.selected {\n background: var-list(--tct-data-table-selected-row-background, --tct-table-selected-row-background, --t-gray-14, #f2f2f2);\n }\n\n &.expanded {\n background: var-list(--tct-data-table-expanded-row-background, --tct-table-expanded-row-background, --t-gray-14, #f2f2f2);\n\n .toggle-expandable-row {\n transform: rotate(180deg);\n }\n }\n\n :host([bordered]:not([bordered='false'])) tbody & {\n border-width: var-list(--tct-data-table-row-border-width, --tct-table-row-border-width, unquote('0 0 1px 0'));\n border-style: var-list(--tct-data-table-row-border-style, --tct-table-row-border-style, solid);\n border-color: var-list(--tct-data-table-row-border-color, --tct-table-row-border-color, --t-gray-9, #999999);\n }\n\n &.loading-row {\n background: var-list(--tct-data-table-loading-row-background, --tct-table-loading-row-background, --t-base, #ffffff);\n td {\n text-align: center;\n }\n\n q2-loading {\n font-size: 4em;\n }\n }\n\n &.expandable-row {\n background: var-list(--tct-data-table-expanded-row-background, --tct-table-expanded-row-background, --t-gray-14, #f2f2f2);\n }\n}\n\ntd {\n &.clamped {\n div {\n text-overflow: ellipsis;\n overflow: hidden;\n display: -webkit-box;\n -webkit-line-clamp: var(--comp-line-clamp-count, 1);\n -webkit-box-orient: vertical;\n }\n }\n\n &.expandable-row-control-column {\n --tct-btn-icon-hover-bg: transparent;\n padding: var-list(--tct-data-table-expandable-row-control-column-padding, --tct-table-expandable-row-control-column-padding, unquote('0 var(--app-scale-1x, 5px)'));\n text-align: center;\n }\n\n &.dropdown-column {\n padding: var-list(--tct-data-table-dropdown-column-padding, --tct-table-dropdown-column-padding, unquote('0 var(--app-scale-1x, 5px)'));\n text-align: center;\n }\n\n &.click-column:not(.sr) {\n padding: var-list(--tct-data-table-clickable-column-padding, --tct-table-clickable-column-padding, unquote('0 var(--app-scale-1x, 5px)'));\n text-align: center;\n }\n}\n\ncaption {\n padding: var-list(--tct-data-table-caption-padding, --tct-table-caption-padding, --app-scale-2x, 10px);\n font-size: var-list(--tct-data-table-caption-font-size, --tct-table-caption-font-size, inherit);\n font-weight: var-list(--tct-data-table-caption-font-weight, --tct-table-caption-font-weight, 600);\n text-align: var-list(--tct-data-table-caption-text-align, --tct-table-caption-text-align, center);\n color: var-list(--tct-data-table-caption-color, --tct-table-caption-color, inherit);\n}\n\nq2-checkbox {\n padding: 0;\n}\n","import {\n Component,\n State,\n Prop,\n h,\n ComponentInterface,\n Watch,\n Event,\n Element,\n EventEmitter,\n Fragment,\n Listen,\n} from '@stencil/core';\nimport { loc, resizeIframe } from '../../utils';\n\nexport type Q2DataTableCellAlignOptions = 'start' | 'center' | 'end';\nexport type Q2DataTableCellType =\n | {\n type?: 'text' | 'number' | 'icon' | 'boolean' | 'code';\n }\n | {\n type?: 'badge';\n badgeStatus?: HTMLQ2BadgeElement['status'];\n badgeTheme?: HTMLQ2BadgeElement['theme'];\n };\n\nexport type Q2DataTableHeader = {\n title: string;\n align?: Q2DataTableCellAlignOptions;\n key?: string;\n sortable?: boolean;\n width?: string;\n backgroundColor?: string;\n sorted?: 'ASC' | 'DESC';\n ariaLabel?: string;\n lineClamp?: number;\n} & Partial<Q2DataTableCellType>;\n\nexport type Q2DataTableCell = {\n value: string | number | boolean;\n align?: Q2DataTableCellAlignOptions;\n ariaLabel?: string;\n lineClamp?: number;\n} & Q2DataTableCellType;\n\nexport type Q2DataTableBaseRow = {\n id: string | number;\n selected?: boolean;\n expanded?: boolean;\n};\n\nexport type Q2DataTableCells = Record<string, string | number | Q2DataTableCell>;\nexport type Q2DataTableSerializedCells = Record<string, Q2DataTableCell>;\n\nexport type Q2DataTableRow = Q2DataTableBaseRow & {\n cells: Q2DataTableCells;\n};\nexport type Q2DataTableSerializedRow = Q2DataTableBaseRow & {\n cells: Q2DataTableSerializedCells;\n};\n\n@Component({\n tag: 'q2-data-table',\n shadow: true,\n styleUrl: 'styles.scss',\n})\nexport class Q2DataTable implements ComponentInterface {\n @Prop({ mutable: true, reflect: true }) density: 'compact' | 'normal' | 'comfortable';\n @Prop({ mutable: true, reflect: true }) bordered: boolean;\n @Prop({ mutable: true, reflect: true }) shadowed: boolean;\n @Prop({ mutable: true, reflect: true }) selectable: boolean;\n @Prop({ mutable: true, reflect: true }) clickable: boolean;\n @Prop({ mutable: true, reflect: true }) loading: boolean;\n @Prop({ mutable: true, reflect: true }) hideCaption: boolean;\n @Prop({ mutable: true }) caption: string;\n @Prop({ mutable: true }) selectMode: 'multiple' | 'single' = 'multiple';\n @Prop({ mutable: true }) hideClickable: boolean;\n\n @Prop({ mutable: true }) headers: Q2DataTableHeader[];\n @Prop({ mutable: true }) rows: Q2DataTableRow[];\n\n @Element() hostElement: HTMLElement;\n\n @State() serializedHeaders: Q2DataTableHeader[] = [];\n @State() serializedRows: Q2DataTableSerializedRow[] = [];\n @State() hasExpandableRows: boolean = false;\n @State() hasDropdowns: boolean = false;\n @State() allRowsSelected: boolean = false;\n @State() checkSlotCount: number = 0;\n\n @Event() select: EventEmitter<{\n row: Q2DataTableSerializedRow;\n rows: Q2DataTableSerializedRow[];\n allSelected: boolean;\n }>;\n @Event() click: EventEmitter<{ row: Q2DataTableSerializedRow }>;\n @Event() toggle: EventEmitter<{ row: Q2DataTableSerializedRow }>;\n @Event() sort: EventEmitter<{ header: Q2DataTableHeader; direction: 'ASC' | 'DESC' }>;\n\n mutationObserver: MutationObserver;\n resizeObserver: ResizeObserver;\n\n /// LifeCycle Hooks ///\n componentWillLoad() {\n this.headersHandler(this.headers);\n this.rowsHandler(this.rows);\n }\n\n componentDidLoad(): void {\n if (typeof MutationObserver !== 'undefined') {\n const observer = new MutationObserver(() => this.checkSlots());\n observer.observe(this.hostElement, { childList: true, subtree: true, attributes: true });\n this.mutationObserver = observer;\n }\n if (typeof ResizeObserver !== 'undefined') {\n this.resizeObserver = new ResizeObserver(() => resizeIframe());\n this.resizeObserver.observe(this.hostElement);\n }\n }\n\n disconnectedCallback() {\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n this.mutationObserver = null;\n }\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n }\n\n /// Getters ///\n get selectedRows() {\n return this.serializedRows.filter(({ selected }) => selected);\n }\n\n get selectedRow() {\n return this.selectedRows.find(({ selected }) => !!selected);\n }\n\n get numberOfColumns() {\n return (\n (this.serializedHeaders?.length ?? 0) +\n (this.selectable ? 1 : 0) +\n (this.clickable ? 1 : 0) +\n (this.hasExpandableRows ? 1 : 0) +\n (this.hasDropdowns ? 1 : 0)\n );\n }\n\n get mappedHeaders() {\n return this.serializedHeaders.reduce<Record<string, Q2DataTableHeader>>((accum, header) => {\n accum[header.key] = header;\n return accum;\n }, {});\n }\n\n /// Helpers ///\n sortRows(rows: Q2DataTableSerializedRow[], header: Q2DataTableHeader) {\n const { key, sorted } = header;\n const direction = sorted || 'ASC';\n\n const sortedRows = [...rows].sort((a, b) => {\n const aValue = a.cells[key].value;\n const bValue = b.cells[key].value;\n\n if (aValue < bValue) return direction === 'ASC' ? -1 : 1;\n if (aValue > bValue) return direction === 'ASC' ? 1 : -1;\n return 0;\n });\n\n return sortedRows;\n }\n\n checkSlots = () => {\n this.hasExpandableRows = !!(this.hostElement?.querySelector(`[slot$=\"-expandable-content\"]`) ?? false);\n this.hasDropdowns = !!(this.hostElement?.querySelector(`[slot$=\"-dropdown\"]`) ?? false);\n\n // The booleans above may not change, event if the slot content\n // So we increment this property to force a re-render and ensure proper rendering\n this.checkSlotCount += 1;\n };\n\n /// Watchers ///\n @Watch('headers')\n headersHandler(headers: Q2DataTableHeader[] = []) {\n this.serializedHeaders = headers.map<Q2DataTableHeader>(header => {\n const { title } = header;\n let { key } = header;\n\n // If no key is provided, generate one from the title\n if (!key) key = title.toLowerCase().replace(/\\s/g, '-');\n\n return {\n key,\n ...header,\n };\n });\n }\n\n @Watch('rows')\n rowsHandler(rows: Q2DataTableRow[] = []) {\n const { serializedHeaders, mappedHeaders } = this;\n const defaultRow = {\n id: null,\n cells: {},\n selected: false,\n expanded: false,\n };\n\n const serializedRows = rows.map(({ id, cells, selected, expanded }) => {\n const serializedCells = Object.entries(cells).reduce<Q2DataTableSerializedCells>(\n (accum, [cellKey, cellData]) => {\n const header = mappedHeaders[cellKey] || ({} as Q2DataTableHeader);\n const { align, type = 'text', lineClamp } = header;\n\n const isBadge = 'type' in header && header.type === 'badge';\n const defaultCell: Q2DataTableCell = {\n value: '',\n ariaLabel: undefined,\n type,\n align,\n lineClamp,\n badgeStatus: isBadge ? header.badgeStatus : undefined,\n badgeTheme: isBadge ? header.badgeTheme : undefined,\n };\n\n const result: Q2DataTableCell =\n typeof cellData === 'object'\n ? { ...defaultCell, ...cellData }\n : { ...defaultCell, value: cellData };\n\n accum[cellKey] = result;\n return accum;\n },\n {}\n );\n return { ...defaultRow, id, selected: !!selected, expanded: !!expanded, cells: serializedCells };\n });\n\n const sortedHeader = serializedHeaders.find(({ sorted }) => sorted);\n\n this.serializedRows = !!sortedHeader ? this.sortRows(serializedRows, sortedHeader) : serializedRows;\n this.checkSlots();\n }\n\n /// Listeners ///\n @Listen('click')\n onClickListener(event: MouseEvent) {\n if (event instanceof PointerEvent) event.stopImmediatePropagation();\n }\n\n /// Event Handlers ///\n onSort = (header: Q2DataTableHeader) => {\n const direction = header.sorted === 'ASC' ? 'DESC' : 'ASC';\n const sortKey = header.key;\n const sortEvent = this.sort.emit({ header, direction });\n if (sortEvent.defaultPrevented) return;\n\n this.serializedHeaders = this.serializedHeaders.map<Q2DataTableHeader>(serializedHeader => {\n const sorted = sortKey === serializedHeader.key ? direction : undefined;\n return { ...serializedHeader, sorted };\n });\n this.serializedRows = this.sortRows(this.serializedRows, { ...header, sorted: direction });\n };\n\n onSelectAllRows = (event: CustomEvent<{ checked: boolean }>) => {\n event.stopPropagation();\n const { checked } = event.detail;\n const selectedRows = checked\n ? this.serializedRows.map(row => ({\n ...row,\n selected: checked,\n }))\n : [];\n const selectEvent = this.select.emit({ row: undefined, rows: selectedRows, allSelected: checked });\n if (selectEvent.defaultPrevented) return;\n\n this.serializedRows = this.serializedRows.map(row => {\n row.selected = checked;\n return row;\n });\n this.allRowsSelected = checked;\n };\n\n onSelectRow = (event: CustomEvent<{ checked: boolean }>, row: Q2DataTableSerializedRow) => {\n event.stopPropagation();\n const { selectMode, serializedRows, selectedRows: currentlySelectedRows } = this;\n const { checked } = event.detail;\n\n const selectedRow = { ...row, selected: checked };\n let selectedRows;\n if (selectMode === 'single') {\n selectedRows = checked ? [selectedRow] : [];\n } else {\n selectedRows = checked\n ? [...currentlySelectedRows, selectedRow]\n : currentlySelectedRows.filter(row => row.id !== selectedRow.id);\n }\n\n const allRowsSelected = selectedRows.length === serializedRows.length;\n const selectEvent = this.select.emit({ row: selectedRow, rows: selectedRows, allSelected: allRowsSelected });\n if (selectEvent.defaultPrevented) return;\n\n this.serializedRows = this.serializedRows.map(row => (row.id === selectedRow.id ? selectedRow : row));\n this.allRowsSelected = allRowsSelected;\n };\n\n onClickTableRow = (event: MouseEvent, row: Q2DataTableSerializedRow) => {\n if (this.clickable) {\n this.onClickRow(event, row);\n } else if (this.hasExpandableRows) {\n this.onToggleRow(event, row);\n }\n };\n\n onClickRow = (event: MouseEvent, row: Q2DataTableSerializedRow) => {\n event.stopPropagation();\n this.click.emit({ row });\n };\n\n onToggleRow = (event: MouseEvent, row: Q2DataTableSerializedRow) => {\n event.stopPropagation();\n const selectedRow = { ...row, expanded: !row.expanded };\n const toggleEvent = this.toggle.emit({ row: selectedRow });\n if (toggleEvent.defaultPrevented) return;\n\n this.serializedRows = this.serializedRows.map(row => {\n if (row.id === selectedRow.id) return selectedRow;\n else return { ...row };\n });\n };\n\n onControlContainerClick = (event: MouseEvent) => {\n event.stopPropagation();\n };\n\n /// DOM ///\n\n render() {\n const { caption } = this;\n return (\n <div class=\"container\">\n <table>\n {caption && <caption class={this.hideCaption ? 'sr' : undefined}>{caption}</caption>}\n {this.renderTableColGroup()}\n {this.renderTableHeader()}\n {this.renderTableRows()}\n </table>\n </div>\n );\n }\n\n renderTableColGroup() {\n const { serializedHeaders: headers, selectable, clickable, hasExpandableRows, hasDropdowns } = this;\n\n if (!headers.length) return null;\n\n return (\n <colgroup>\n {selectable && <col class=\"select-column\" />}\n {headers.map(({ width, backgroundColor }) => (\n <col style={{ width, backgroundColor }} />\n ))}\n {clickable && <col class=\"click-column\" />}\n {hasExpandableRows && <col class=\"expandable-row-control-column\" />}\n {hasDropdowns && <col class=\"dropdown-column\" />}\n </colgroup>\n );\n }\n\n renderTableHeader() {\n const {\n serializedHeaders: headers,\n selectable,\n clickable,\n hideClickable,\n selectMode,\n hasExpandableRows,\n hasDropdowns,\n } = this;\n\n if (!headers.length) return null;\n\n return (\n <thead>\n <tr>\n {selectable && (\n <th>\n {selectMode === 'multiple' && (\n <q2-checkbox\n label={loc('tecton.element.dataTable.selectAllRows')}\n hide-label\n onChange={this.onSelectAllRows}\n checked={this.allRowsSelected}\n disabled={this.loading}\n test-id=\"select-all-rows-control\"\n ></q2-checkbox>\n )}\n </th>\n )}\n {headers.map(header => {\n const { align, sorted } = header;\n const headerClasses = [];\n if (align) headerClasses.push(`align-${align}`);\n if (!!sorted) headerClasses.push('sorted');\n return (\n <th\n class={headerClasses.join(' ')}\n id={`header-${header.key}`}\n >\n {header.sortable ? (\n <q2-btn\n onClick={() => this.onSort(header)}\n test-id=\"sort-control\"\n disabled={this.loading}\n >\n <div\n class=\"header-content\"\n aria-label={header.ariaLabel || undefined}\n >\n {header.title}\n\n {!!sorted ? (\n <q2-icon\n class={`sorted-indicator direction-${sorted}`}\n type=\"arrow-down\"\n label={\n sorted === 'ASC'\n ? loc('tecton.element.dataTable.sortedAscending')\n : loc('tecton.element.dataTable.sortedDescending')\n }\n test-id=\"sorted-indicator\"\n ></q2-icon>\n ) : (\n <q2-icon\n class={`sorted-indicator`}\n type=\"sort\"\n label={loc('tecton.element.dataTable.clickToSort')}\n test-id=\"sorted-indicator\"\n ></q2-icon>\n )}\n </div>\n </q2-btn>\n ) : (\n <div\n class=\"header-content\"\n aria-label={header.ariaLabel || undefined}\n >\n {header.title}\n </div>\n )}\n </th>\n );\n })}\n {clickable && (\n <th\n id=\"click\"\n class={hideClickable ? 'sr' : undefined}\n >\n <span class=\"sr\">{loc('tecton.element.dataTable.clickRow')}</span>\n </th>\n )}\n {hasExpandableRows && (\n <th id=\"toggle\">\n <span class=\"sr\">{loc('tecton.element.dataTable.toggleRow')}</span>\n </th>\n )}\n {hasDropdowns && (\n <th>\n <span class=\"sr\">{loc('tecton.element.dataTable.dropdown')}</span>\n </th>\n )}\n </tr>\n </thead>\n );\n }\n\n renderTableRows() {\n const {\n serializedHeaders: headers,\n serializedRows: rows,\n selectable,\n clickable,\n hideClickable,\n selectMode,\n hasExpandableRows,\n hasDropdowns,\n numberOfColumns,\n loading,\n } = this;\n\n if (loading) {\n return (\n <tbody>\n <tr class=\"loading-row\">\n <td colSpan={numberOfColumns}>\n <q2-loading inline></q2-loading>\n </td>\n </tr>\n </tbody>\n );\n }\n\n if (!rows.length) return;\n\n let isSelectDisabled = false;\n let selectedRow;\n if (selectMode === 'single') {\n selectedRow = this.selectedRow;\n isSelectDisabled = !!selectedRow;\n }\n const clickableClasses = [];\n if (clickable) clickableClasses.push('click-column');\n if (hideClickable) clickableClasses.push('sr');\n const clickableClassString = clickableClasses.join(' ');\n\n return (\n <tbody>\n {rows.map(row => {\n const cellSlotPrefix = `row-${row.id}-cell`;\n const expandableRowName = `row-${row.id}-expandable-content`;\n const dropdownCellName = `row-${row.id}-dropdown`;\n const rowHasExpandableSlot =\n hasExpandableRows && !!this.hostElement.querySelector(`[slot=\"${expandableRowName}\"]`);\n const rowHasDropdownSlot =\n hasDropdowns && !!this.hostElement.querySelector(`[slot=\"${dropdownCellName}\"]`);\n const rowClasses = [];\n if (rowHasExpandableSlot) rowClasses.push('expandable');\n if (clickable) rowClasses.push('clickable');\n if (row.expanded) rowClasses.push('expanded');\n if (row.selected) rowClasses.push('selected');\n const rowIsClickable = clickable || rowHasExpandableSlot;\n\n return (\n <Fragment>\n <tr\n id={`row-${row.id}`}\n class={rowClasses.join(' ')}\n onClick={rowIsClickable && (e => this.onClickTableRow(e, row))}\n tabIndex={rowIsClickable ? -1 : undefined}\n >\n {selectable && (\n <td\n class=\"select-column\"\n onClick={this.onControlContainerClick}\n >\n <q2-checkbox\n label={loc('tecton.element.dataTable.selectRow')}\n hide-label\n checked={row.selected}\n disabled={isSelectDisabled && row !== selectedRow}\n onChange={e => this.onSelectRow(e, row)}\n test-id=\"select-row-control\"\n ></q2-checkbox>\n </td>\n )}\n {headers.map(({ key }) => {\n const cell = row.cells[key];\n const lineClamp = cell?.lineClamp;\n const cellAlign = cell?.align;\n const cellClasses = [];\n if (cellAlign) cellClasses.push(`align-${cellAlign}`);\n if (lineClamp) cellClasses.push('clamped');\n const cellStyles = lineClamp\n ? { '--comp-line-clamp-count': `${lineClamp}` }\n : undefined;\n\n return (\n <td\n class={cellClasses.join(' ')}\n style={cellStyles}\n >\n <slot name={`${cellSlotPrefix}-${key}`}>\n {this.renderCellContent(cell)}\n </slot>\n </td>\n );\n })}\n {clickable && (\n <td class={clickableClassString}>\n <q2-btn\n intent=\"neutral\"\n size=\"small\"\n onClick={e => this.onClickRow(e, row)}\n test-id=\"clickable-row-control\"\n >\n {loc('tecton.element.dataTable.clickRow')}\n </q2-btn>\n </td>\n )}\n {hasExpandableRows && (\n <td\n class=\"expandable-row-control-column\"\n onClick={this.onControlContainerClick}\n >\n {rowHasExpandableSlot && (\n <q2-btn\n onClick={e => this.onToggleRow(e, row)}\n ariaExpanded={`${row.expanded}`}\n ariaControls={expandableRowName}\n ariaLabel={loc('tecton.element.dataTable.toggleRow')}\n test-id=\"expandable-row-control\"\n >\n <q2-icon\n type=\"chevron-down\"\n class=\"toggle-expandable-row\"\n ></q2-icon>\n </q2-btn>\n )}\n </td>\n )}\n {hasDropdowns && (\n <td\n class=\"dropdown-column\"\n onClick={this.onControlContainerClick}\n >\n {rowHasDropdownSlot && <slot name={dropdownCellName}></slot>}\n </td>\n )}\n </tr>\n {rowHasExpandableSlot && (\n <tr\n id={expandableRowName}\n class=\"expandable-row\"\n hidden={!row.expanded}\n aria-hidden={!row.expanded}\n >\n <td\n colSpan={numberOfColumns}\n headers=\"toggle\"\n >\n <div class=\"expandable-content\">\n <slot name={expandableRowName}></slot>\n </div>\n </td>\n </tr>\n )}\n </Fragment>\n );\n })}\n </tbody>\n );\n }\n\n renderCellContent(cell: Q2DataTableCell) {\n if (!cell) return;\n\n const { type, ariaLabel, value } = cell;\n\n if ([undefined, null].includes(value)) return;\n\n switch (type) {\n case 'badge':\n let valueAsInt;\n switch (typeof value) {\n case 'string':\n valueAsInt = parseFloat(value);\n break;\n\n case 'boolean':\n valueAsInt = value ? 1 : 0;\n break;\n\n default:\n valueAsInt = value;\n break;\n }\n\n return (\n <q2-badge\n aria-label={ariaLabel}\n value={valueAsInt}\n theme={cell.badgeTheme}\n status={cell.badgeStatus}\n size=\"large\"\n ></q2-badge>\n );\n\n case 'icon':\n const valueAsString = typeof value === 'string' ? value : `${value}`;\n return (\n <q2-icon\n label={ariaLabel}\n type={valueAsString}\n ></q2-icon>\n );\n\n case 'boolean':\n return !!value ? (\n <q2-icon\n label={loc('tecton.element.dataTable.booleanTrue')}\n type=\"checkmark\"\n ></q2-icon>\n ) : (\n <div aria-label={loc('tecton.element.dataTable.booleanFalse')}></div>\n );\n\n case 'code':\n return <code aria-label={ariaLabel}>{value}</code>;\n\n default:\n return <div aria-label={ariaLabel}>{value}</div>;\n }\n }\n}\n"],"mappings":"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"}