q2-tecton-elements 1.44.1 → 1.45.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (482) hide show
  1. package/dist/cjs/click-elsewhere_2.cjs.entry.js +2 -2
  2. package/dist/cjs/{index-9272f57a.js → index-0430339e.js} +1 -1
  3. package/dist/cjs/{index-9272f57a.js.map → index-0430339e.js.map} +1 -1
  4. package/dist/cjs/{index-1deac3ee.js → index-0e15dc8d.js} +14 -1
  5. package/dist/cjs/index-0e15dc8d.js.map +1 -0
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/cjs/q2-action-sheet.cjs.entry.js +1 -1
  8. package/dist/cjs/q2-avatar.cjs.entry.js +1 -5
  9. package/dist/cjs/q2-avatar.cjs.entry.js.map +1 -1
  10. package/dist/cjs/q2-badge.cjs.entry.js +4 -4
  11. package/dist/cjs/q2-badge.cjs.entry.js.map +1 -1
  12. package/dist/cjs/q2-btn_2.cjs.entry.js +20 -9
  13. package/dist/cjs/q2-btn_2.cjs.entry.js.map +1 -1
  14. package/dist/cjs/q2-calendar.cjs.entry.js +52 -20
  15. package/dist/cjs/q2-calendar.cjs.entry.js.map +1 -1
  16. package/dist/cjs/q2-card.cjs.entry.js +1 -1
  17. package/dist/cjs/q2-carousel-pane.cjs.entry.js +7 -6
  18. package/dist/cjs/q2-carousel-pane.cjs.entry.js.map +1 -1
  19. package/dist/cjs/q2-carousel.cjs.entry.js +25 -11
  20. package/dist/cjs/q2-carousel.cjs.entry.js.map +1 -1
  21. package/dist/cjs/q2-chart-area.cjs.entry.js +1 -1
  22. package/dist/cjs/q2-chart-bar.cjs.entry.js +1 -1
  23. package/dist/cjs/q2-chart-donut.cjs.entry.js +18 -10
  24. package/dist/cjs/q2-chart-donut.cjs.entry.js.map +1 -1
  25. package/dist/cjs/q2-checkbox-group.cjs.entry.js +1 -1
  26. package/dist/cjs/q2-checkbox.cjs.entry.js +1 -1
  27. package/dist/cjs/q2-data-table.cjs.entry.js +3 -3
  28. package/dist/cjs/q2-data-table.cjs.entry.js.map +1 -1
  29. package/dist/cjs/q2-detail.cjs.entry.js +2 -2
  30. package/dist/cjs/q2-detail.cjs.entry.js.map +1 -1
  31. package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
  32. package/dist/cjs/q2-dropdown-item.cjs.entry.js.map +1 -1
  33. package/dist/cjs/q2-dropdown.cjs.entry.js +1 -1
  34. package/dist/cjs/q2-editable-field.cjs.entry.js +1 -1
  35. package/dist/cjs/q2-icon.cjs.entry.js +204 -213
  36. package/dist/cjs/q2-icon.cjs.entry.js.map +1 -1
  37. package/dist/cjs/q2-input.cjs.entry.js +31 -6
  38. package/dist/cjs/q2-input.cjs.entry.js.map +1 -1
  39. package/dist/cjs/q2-item.cjs.entry.js +120 -0
  40. package/dist/cjs/q2-item.cjs.entry.js.map +1 -0
  41. package/dist/cjs/q2-list.cjs.entry.js +84 -0
  42. package/dist/cjs/q2-list.cjs.entry.js.map +1 -0
  43. package/dist/cjs/q2-loc.cjs.entry.js +2 -2
  44. package/dist/cjs/q2-message.cjs.entry.js +3 -3
  45. package/dist/cjs/q2-message.cjs.entry.js.map +1 -1
  46. package/dist/cjs/q2-month-picker.cjs.entry.js +1 -1
  47. package/dist/cjs/q2-optgroup_2.cjs.entry.js +4 -4
  48. package/dist/cjs/q2-optgroup_2.cjs.entry.js.map +1 -1
  49. package/dist/cjs/q2-option-list.cjs.entry.js +1 -1
  50. package/dist/cjs/q2-pagination.cjs.entry.js +3 -3
  51. package/dist/cjs/q2-pagination.cjs.entry.js.map +1 -1
  52. package/dist/cjs/q2-pill.cjs.entry.js +4 -3
  53. package/dist/cjs/q2-pill.cjs.entry.js.map +1 -1
  54. package/dist/cjs/q2-radio-group.cjs.entry.js +1 -1
  55. package/dist/cjs/q2-radio.cjs.entry.js +3 -3
  56. package/dist/cjs/q2-radio.cjs.entry.js.map +1 -1
  57. package/dist/cjs/q2-relative-time.cjs.entry.js +2 -2
  58. package/dist/cjs/q2-section.cjs.entry.js +3 -3
  59. package/dist/cjs/q2-select.cjs.entry.js +1 -1
  60. package/dist/cjs/q2-stepper-pane.cjs.entry.js +2 -2
  61. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +3 -3
  62. package/dist/cjs/q2-stepper-vertical.cjs.entry.js.map +1 -1
  63. package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
  64. package/dist/cjs/q2-tab-container.cjs.entry.js +3 -3
  65. package/dist/cjs/q2-tab-container.cjs.entry.js.map +1 -1
  66. package/dist/cjs/q2-tab-pane.cjs.entry.js +1 -1
  67. package/dist/cjs/q2-tag.cjs.entry.js +3 -3
  68. package/dist/cjs/q2-tag.cjs.entry.js.map +1 -1
  69. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  70. package/dist/cjs/q2-textarea.cjs.entry.js +2 -2
  71. package/dist/cjs/q2-textarea.cjs.entry.js.map +1 -1
  72. package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
  73. package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
  74. package/dist/collection/collection-manifest.json +2 -0
  75. package/dist/collection/components/q2-avatar/q2-avatar.js +1 -5
  76. package/dist/collection/components/q2-avatar/q2-avatar.js.map +1 -1
  77. package/dist/collection/components/q2-badge/q2-badge.js +5 -4
  78. package/dist/collection/components/q2-badge/q2-badge.js.map +1 -1
  79. package/dist/collection/components/q2-btn/q2-btn.css +1 -1
  80. package/dist/collection/components/q2-btn/q2-btn.js +25 -8
  81. package/dist/collection/components/q2-btn/q2-btn.js.map +1 -1
  82. package/dist/collection/components/q2-calendar/q2-calendar-helpers.js +1 -1
  83. package/dist/collection/components/q2-calendar/q2-calendar-helpers.js.map +1 -1
  84. package/dist/collection/components/q2-calendar/q2-calendar.js +49 -17
  85. package/dist/collection/components/q2-calendar/q2-calendar.js.map +1 -1
  86. package/dist/collection/components/q2-carousel/q2-carousel.css +3 -1
  87. package/dist/collection/components/q2-carousel/q2-carousel.js +47 -10
  88. package/dist/collection/components/q2-carousel/q2-carousel.js.map +1 -1
  89. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.css +6 -0
  90. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +25 -4
  91. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js.map +1 -1
  92. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +17 -12
  93. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js.map +1 -1
  94. package/dist/collection/components/q2-data-table/q2-data-table.css +1 -1
  95. package/dist/collection/components/q2-data-table/q2-data-table.js +8 -8
  96. package/dist/collection/components/q2-data-table/q2-data-table.js.map +1 -1
  97. package/dist/collection/components/q2-detail/q2-detail.css +24 -21
  98. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js +1 -1
  99. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js.map +1 -1
  100. package/dist/collection/components/q2-icon/assets/cards.symbol.svg +1 -1
  101. package/dist/collection/components/q2-icon/assets/icon-list.json +1 -1
  102. package/dist/collection/components/q2-icon/assets/icon-map.json +1 -1
  103. package/dist/collection/components/q2-icon/assets/standard.symbol.svg +1 -1
  104. package/dist/collection/components/q2-icon/assets/status.symbol.svg +1 -1
  105. package/dist/collection/components/q2-icon/q2-icon.css +4 -4
  106. package/dist/collection/components/q2-icon/q2-icon.js +4 -36
  107. package/dist/collection/components/q2-icon/q2-icon.js.map +1 -1
  108. package/dist/collection/components/q2-input/q2-input.css +3 -5
  109. package/dist/collection/components/q2-input/q2-input.js +31 -6
  110. package/dist/collection/components/q2-input/q2-input.js.map +1 -1
  111. package/dist/collection/components/q2-item/q2-item.css +261 -0
  112. package/dist/collection/components/q2-item/q2-item.js +145 -0
  113. package/dist/collection/components/q2-item/q2-item.js.map +1 -0
  114. package/dist/collection/components/q2-list/q2-list.css +173 -0
  115. package/dist/collection/components/q2-list/q2-list.js +126 -0
  116. package/dist/collection/components/q2-list/q2-list.js.map +1 -0
  117. package/dist/collection/components/q2-loc/q2-loc.js +1 -1
  118. package/dist/collection/components/q2-message/q2-message.css +6 -3
  119. package/dist/collection/components/q2-message/q2-message.js +1 -1
  120. package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
  121. package/dist/collection/components/q2-option/q2-option.css +1 -1
  122. package/dist/collection/components/q2-option/q2-option.js +1 -1
  123. package/dist/collection/components/q2-option-list/q2-option-list.js +2 -2
  124. package/dist/collection/components/q2-pagination/q2-pagination.js +3 -3
  125. package/dist/collection/components/q2-pagination/q2-pagination.js.map +1 -1
  126. package/dist/collection/components/q2-pill/q2-pill.css +13 -9
  127. package/dist/collection/components/q2-pill/q2-pill.js +19 -1
  128. package/dist/collection/components/q2-pill/q2-pill.js.map +1 -1
  129. package/dist/collection/components/q2-popover/q2-popover.js +1 -1
  130. package/dist/collection/components/q2-radio/q2-radio.css +9 -6
  131. package/dist/collection/components/q2-radio/q2-radio.js +1 -1
  132. package/dist/collection/components/q2-radio/q2-radio.js.map +1 -1
  133. package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
  134. package/dist/collection/components/q2-section/q2-section.js +2 -2
  135. package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
  136. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +3 -3
  137. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.css +6 -2
  138. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
  139. package/dist/collection/components/q2-tab-container/q2-tab-container.css +2 -2
  140. package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
  141. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
  142. package/dist/collection/components/q2-tag/q2-tag.css +6 -6
  143. package/dist/collection/components/q2-tag/q2-tag.js +1 -1
  144. package/dist/collection/components/q2-textarea/q2-textarea.css +4 -24
  145. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
  146. package/dist/collection/utils/index.js +12 -0
  147. package/dist/collection/utils/index.js.map +1 -1
  148. package/dist/components/index.js +4 -0
  149. package/dist/components/index.js.map +1 -1
  150. package/dist/components/index2.js +13 -1
  151. package/dist/components/index2.js.map +1 -1
  152. package/dist/components/q2-avatar2.js +2 -5
  153. package/dist/components/q2-avatar2.js.map +1 -1
  154. package/dist/components/q2-badge2.js +4 -4
  155. package/dist/components/q2-badge2.js.map +1 -1
  156. package/dist/components/q2-btn2.js +21 -10
  157. package/dist/components/q2-btn2.js.map +1 -1
  158. package/dist/components/q2-calendar.js +50 -18
  159. package/dist/components/q2-calendar.js.map +1 -1
  160. package/dist/components/q2-carousel-pane.js +8 -6
  161. package/dist/components/q2-carousel-pane.js.map +1 -1
  162. package/dist/components/q2-carousel.js +26 -10
  163. package/dist/components/q2-carousel.js.map +1 -1
  164. package/dist/components/q2-chart-donut.js +19 -11
  165. package/dist/components/q2-chart-donut.js.map +1 -1
  166. package/dist/components/q2-checkbox-group.js +1 -1
  167. package/dist/components/q2-data-table.js +2 -2
  168. package/dist/components/q2-data-table.js.map +1 -1
  169. package/dist/components/q2-detail.js +2 -2
  170. package/dist/components/q2-detail.js.map +1 -1
  171. package/dist/components/q2-dropdown-item2.js.map +1 -1
  172. package/dist/components/q2-icon2.js +205 -3108
  173. package/dist/components/q2-icon2.js.map +1 -1
  174. package/dist/components/q2-input2.js +31 -6
  175. package/dist/components/q2-input2.js.map +1 -1
  176. package/dist/components/q2-item.d.ts +11 -0
  177. package/dist/components/q2-item.js +137 -0
  178. package/dist/components/q2-item.js.map +1 -0
  179. package/dist/components/q2-list.d.ts +11 -0
  180. package/dist/components/q2-list.js +102 -0
  181. package/dist/components/q2-list.js.map +1 -0
  182. package/dist/components/q2-loc.js +1 -1
  183. package/dist/components/q2-message2.js +3 -3
  184. package/dist/components/q2-message2.js.map +1 -1
  185. package/dist/components/q2-optgroup2.js +1 -1
  186. package/dist/components/q2-option-list2.js +1 -1
  187. package/dist/components/q2-option2.js +2 -2
  188. package/dist/components/q2-option2.js.map +1 -1
  189. package/dist/components/q2-pagination.js +2 -2
  190. package/dist/components/q2-pagination.js.map +1 -1
  191. package/dist/components/q2-pill.js +4 -2
  192. package/dist/components/q2-pill.js.map +1 -1
  193. package/dist/components/q2-popover2.js +2 -2
  194. package/dist/components/q2-radio-group.js +1 -1
  195. package/dist/components/q2-radio.js +2 -2
  196. package/dist/components/q2-radio.js.map +1 -1
  197. package/dist/components/q2-relative-time.js +1 -1
  198. package/dist/components/q2-section.js +2 -2
  199. package/dist/components/q2-select.js +1 -1
  200. package/dist/components/q2-stepper-pane.js +1 -1
  201. package/dist/components/q2-stepper-vertical.js +2 -2
  202. package/dist/components/q2-stepper-vertical.js.map +1 -1
  203. package/dist/components/q2-stepper.js +1 -1
  204. package/dist/components/q2-tab-container.js +2 -2
  205. package/dist/components/q2-tab-container.js.map +1 -1
  206. package/dist/components/q2-tab-pane.js +1 -1
  207. package/dist/components/q2-tag.js +2 -2
  208. package/dist/components/q2-tag.js.map +1 -1
  209. package/dist/components/q2-textarea.js +2 -2
  210. package/dist/components/q2-textarea.js.map +1 -1
  211. package/dist/components/tecton-tab-pane.js +2 -2
  212. package/dist/esm/click-elsewhere_2.entry.js +2 -2
  213. package/dist/esm/{index-12c2a320.js → index-0a702dd6.js} +14 -2
  214. package/dist/esm/index-0a702dd6.js.map +1 -0
  215. package/dist/esm/{index-113a38d1.js → index-e940b40e.js} +1 -1
  216. package/dist/esm/{index-113a38d1.js.map → index-e940b40e.js.map} +1 -1
  217. package/dist/esm/loader.js +1 -1
  218. package/dist/esm/q2-action-sheet.entry.js +1 -1
  219. package/dist/esm/q2-avatar.entry.js +1 -5
  220. package/dist/esm/q2-avatar.entry.js.map +1 -1
  221. package/dist/esm/q2-badge.entry.js +4 -4
  222. package/dist/esm/q2-badge.entry.js.map +1 -1
  223. package/dist/esm/q2-btn_2.entry.js +20 -9
  224. package/dist/esm/q2-btn_2.entry.js.map +1 -1
  225. package/dist/esm/q2-calendar.entry.js +52 -20
  226. package/dist/esm/q2-calendar.entry.js.map +1 -1
  227. package/dist/esm/q2-card.entry.js +1 -1
  228. package/dist/esm/q2-carousel-pane.entry.js +7 -6
  229. package/dist/esm/q2-carousel-pane.entry.js.map +1 -1
  230. package/dist/esm/q2-carousel.entry.js +25 -11
  231. package/dist/esm/q2-carousel.entry.js.map +1 -1
  232. package/dist/esm/q2-chart-area.entry.js +1 -1
  233. package/dist/esm/q2-chart-bar.entry.js +1 -1
  234. package/dist/esm/q2-chart-donut.entry.js +18 -10
  235. package/dist/esm/q2-chart-donut.entry.js.map +1 -1
  236. package/dist/esm/q2-checkbox-group.entry.js +1 -1
  237. package/dist/esm/q2-checkbox.entry.js +1 -1
  238. package/dist/esm/q2-data-table.entry.js +3 -3
  239. package/dist/esm/q2-data-table.entry.js.map +1 -1
  240. package/dist/esm/q2-detail.entry.js +2 -2
  241. package/dist/esm/q2-detail.entry.js.map +1 -1
  242. package/dist/esm/q2-dropdown-item.entry.js +1 -1
  243. package/dist/esm/q2-dropdown-item.entry.js.map +1 -1
  244. package/dist/esm/q2-dropdown.entry.js +1 -1
  245. package/dist/esm/q2-editable-field.entry.js +1 -1
  246. package/dist/esm/q2-icon.entry.js +204 -213
  247. package/dist/esm/q2-icon.entry.js.map +1 -1
  248. package/dist/esm/q2-input.entry.js +31 -6
  249. package/dist/esm/q2-input.entry.js.map +1 -1
  250. package/dist/esm/q2-item.entry.js +116 -0
  251. package/dist/esm/q2-item.entry.js.map +1 -0
  252. package/dist/esm/q2-list.entry.js +80 -0
  253. package/dist/esm/q2-list.entry.js.map +1 -0
  254. package/dist/esm/q2-loc.entry.js +2 -2
  255. package/dist/esm/q2-message.entry.js +3 -3
  256. package/dist/esm/q2-message.entry.js.map +1 -1
  257. package/dist/esm/q2-month-picker.entry.js +1 -1
  258. package/dist/esm/q2-optgroup_2.entry.js +4 -4
  259. package/dist/esm/q2-optgroup_2.entry.js.map +1 -1
  260. package/dist/esm/q2-option-list.entry.js +1 -1
  261. package/dist/esm/q2-pagination.entry.js +3 -3
  262. package/dist/esm/q2-pagination.entry.js.map +1 -1
  263. package/dist/esm/q2-pill.entry.js +4 -3
  264. package/dist/esm/q2-pill.entry.js.map +1 -1
  265. package/dist/esm/q2-radio-group.entry.js +1 -1
  266. package/dist/esm/q2-radio.entry.js +3 -3
  267. package/dist/esm/q2-radio.entry.js.map +1 -1
  268. package/dist/esm/q2-relative-time.entry.js +2 -2
  269. package/dist/esm/q2-section.entry.js +3 -3
  270. package/dist/esm/q2-select.entry.js +1 -1
  271. package/dist/esm/q2-stepper-pane.entry.js +2 -2
  272. package/dist/esm/q2-stepper-vertical.entry.js +3 -3
  273. package/dist/esm/q2-stepper-vertical.entry.js.map +1 -1
  274. package/dist/esm/q2-stepper.entry.js +2 -2
  275. package/dist/esm/q2-tab-container.entry.js +3 -3
  276. package/dist/esm/q2-tab-container.entry.js.map +1 -1
  277. package/dist/esm/q2-tab-pane.entry.js +1 -1
  278. package/dist/esm/q2-tag.entry.js +3 -3
  279. package/dist/esm/q2-tag.entry.js.map +1 -1
  280. package/dist/esm/q2-tecton-elements.js +1 -1
  281. package/dist/esm/q2-textarea.entry.js +2 -2
  282. package/dist/esm/q2-textarea.entry.js.map +1 -1
  283. package/dist/esm/q2-tooltip.entry.js +1 -1
  284. package/dist/esm/tecton-tab-pane.entry.js +2 -2
  285. package/dist/q2-tecton-elements/assets/cards.symbol.svg +1 -1
  286. package/dist/q2-tecton-elements/assets/icon-list.json +1 -1
  287. package/dist/q2-tecton-elements/assets/icon-map.json +1 -1
  288. package/dist/q2-tecton-elements/assets/standard.symbol.svg +1 -1
  289. package/dist/q2-tecton-elements/assets/status.symbol.svg +1 -1
  290. package/dist/q2-tecton-elements/p-05b015a8.entry.js +2 -0
  291. package/dist/q2-tecton-elements/p-05b015a8.entry.js.map +1 -0
  292. package/dist/q2-tecton-elements/{p-cbbc7659.entry.js → p-1c17d118.entry.js} +2 -2
  293. package/dist/q2-tecton-elements/p-1c17d118.entry.js.map +1 -0
  294. package/dist/q2-tecton-elements/{p-86cf292d.entry.js → p-2132da06.entry.js} +2 -2
  295. package/dist/q2-tecton-elements/{p-1fac9c85.entry.js → p-22661533.entry.js} +2 -2
  296. package/dist/q2-tecton-elements/p-2436c843.entry.js +2 -0
  297. package/dist/q2-tecton-elements/p-2436c843.entry.js.map +1 -0
  298. package/dist/q2-tecton-elements/{p-5ebb80b6.entry.js → p-391acc00.entry.js} +2 -2
  299. package/dist/q2-tecton-elements/{p-5ebb80b6.entry.js.map → p-391acc00.entry.js.map} +1 -1
  300. package/dist/q2-tecton-elements/p-3b1ea100.entry.js +2 -0
  301. package/dist/q2-tecton-elements/p-3b1ea100.entry.js.map +1 -0
  302. package/dist/q2-tecton-elements/p-42302f6f.js +2 -0
  303. package/dist/q2-tecton-elements/p-42302f6f.js.map +1 -0
  304. package/dist/q2-tecton-elements/{p-92955258.entry.js → p-4570ff06.entry.js} +2 -2
  305. package/dist/q2-tecton-elements/p-47868d6d.entry.js +2 -0
  306. package/dist/q2-tecton-elements/p-47868d6d.entry.js.map +1 -0
  307. package/dist/q2-tecton-elements/{p-c1e03092.entry.js → p-4a332c2a.entry.js} +2 -2
  308. package/dist/q2-tecton-elements/{p-0a705412.entry.js → p-4b81a121.entry.js} +2 -2
  309. package/dist/q2-tecton-elements/p-4bbe563f.entry.js +2 -0
  310. package/dist/q2-tecton-elements/p-4bbe563f.entry.js.map +1 -0
  311. package/dist/q2-tecton-elements/p-4f7e2c8a.entry.js +2 -0
  312. package/dist/q2-tecton-elements/p-4f7e2c8a.entry.js.map +1 -0
  313. package/dist/q2-tecton-elements/p-50bd4437.entry.js +2 -0
  314. package/dist/q2-tecton-elements/p-50bd4437.entry.js.map +1 -0
  315. package/dist/q2-tecton-elements/p-515d424b.entry.js +2 -0
  316. package/dist/q2-tecton-elements/{p-913a23f5.entry.js.map → p-515d424b.entry.js.map} +1 -1
  317. package/dist/q2-tecton-elements/{p-bb6e6290.entry.js → p-57bf9342.entry.js} +2 -2
  318. package/dist/q2-tecton-elements/{p-0fccdca2.entry.js → p-5dc5c4e2.entry.js} +2 -2
  319. package/dist/q2-tecton-elements/p-5dc5c4e2.entry.js.map +1 -0
  320. package/dist/q2-tecton-elements/{p-5b9ee831.entry.js → p-63192fac.entry.js} +2 -2
  321. package/dist/q2-tecton-elements/{p-281e7ce7.entry.js → p-685b821c.entry.js} +2 -2
  322. package/dist/q2-tecton-elements/{p-bd5e5864.entry.js → p-71180fcd.entry.js} +2 -2
  323. package/dist/q2-tecton-elements/{p-db615608.entry.js → p-7523305d.entry.js} +2 -2
  324. package/dist/q2-tecton-elements/{p-be430cd5.js → p-7ce6e587.js} +1 -1
  325. package/dist/q2-tecton-elements/{p-ca8dd86f.entry.js → p-7f663376.entry.js} +2 -2
  326. package/dist/q2-tecton-elements/p-a214077c.entry.js +2 -0
  327. package/dist/q2-tecton-elements/p-a214077c.entry.js.map +1 -0
  328. package/dist/q2-tecton-elements/{p-3bc27513.entry.js → p-aec64fcb.entry.js} +2 -2
  329. package/dist/q2-tecton-elements/p-aed969d4.entry.js +2 -0
  330. package/dist/q2-tecton-elements/p-aed969d4.entry.js.map +1 -0
  331. package/dist/q2-tecton-elements/{p-1954ab7d.entry.js → p-b3322f94.entry.js} +2 -2
  332. package/dist/q2-tecton-elements/p-b3322f94.entry.js.map +1 -0
  333. package/dist/q2-tecton-elements/{p-79cd6ab5.entry.js → p-b376c111.entry.js} +2 -2
  334. package/dist/q2-tecton-elements/{p-25eccf38.entry.js → p-b3d10d52.entry.js} +2 -2
  335. package/dist/q2-tecton-elements/{p-25eccf38.entry.js.map → p-b3d10d52.entry.js.map} +1 -1
  336. package/dist/q2-tecton-elements/{p-5b3f885f.entry.js → p-b7d5fd12.entry.js} +2 -2
  337. package/dist/q2-tecton-elements/p-b7d5fd12.entry.js.map +1 -0
  338. package/dist/q2-tecton-elements/{p-cb30f949.entry.js → p-bf125cdf.entry.js} +2 -2
  339. package/dist/q2-tecton-elements/p-c4c458b7.entry.js +2 -0
  340. package/dist/q2-tecton-elements/p-c4c458b7.entry.js.map +1 -0
  341. package/dist/q2-tecton-elements/p-d1a9ed3d.entry.js +2 -0
  342. package/dist/q2-tecton-elements/p-d1a9ed3d.entry.js.map +1 -0
  343. package/dist/q2-tecton-elements/{p-73a3c437.entry.js → p-d635e39f.entry.js} +2 -2
  344. package/dist/q2-tecton-elements/{p-a5b16c01.entry.js → p-d9e19f70.entry.js} +2 -2
  345. package/dist/q2-tecton-elements/p-d9e19f70.entry.js.map +1 -0
  346. package/dist/q2-tecton-elements/{p-a89814b8.entry.js → p-dc057a9c.entry.js} +2 -2
  347. package/dist/q2-tecton-elements/p-debd5249.entry.js +2 -0
  348. package/dist/q2-tecton-elements/p-debd5249.entry.js.map +1 -0
  349. package/dist/q2-tecton-elements/p-df297a77.entry.js +2 -0
  350. package/dist/q2-tecton-elements/p-df297a77.entry.js.map +1 -0
  351. package/dist/q2-tecton-elements/{p-6afb4d46.entry.js → p-e762526f.entry.js} +2 -2
  352. package/dist/q2-tecton-elements/{p-698f82c5.entry.js → p-f1265647.entry.js} +2 -2
  353. package/dist/q2-tecton-elements/p-f1281e3f.entry.js +2 -0
  354. package/dist/q2-tecton-elements/p-f1281e3f.entry.js.map +1 -0
  355. package/dist/q2-tecton-elements/{p-954d49de.entry.js → p-f162c670.entry.js} +2 -2
  356. package/dist/q2-tecton-elements/p-f418967b.entry.js +2 -0
  357. package/dist/q2-tecton-elements/p-f418967b.entry.js.map +1 -0
  358. package/dist/q2-tecton-elements/{p-fddebc47.entry.js → p-f4d77672.entry.js} +2 -2
  359. package/dist/q2-tecton-elements/p-fcc84527.entry.js +2 -0
  360. package/dist/q2-tecton-elements/p-fcc84527.entry.js.map +1 -0
  361. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  362. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
  363. package/dist/test/elements/q2-badge-test.e2e.js +11 -3
  364. package/dist/test/elements/q2-badge-test.e2e.js.map +1 -1
  365. package/dist/test/elements/q2-btn-test.e2e.js +25 -25
  366. package/dist/test/elements/q2-btn-test.e2e.js.map +1 -1
  367. package/dist/test/elements/q2-calendar-test.e2e.js +38 -3
  368. package/dist/test/elements/q2-calendar-test.e2e.js.map +1 -1
  369. package/dist/test/elements/q2-carousel-pane-test.e2e.js +16 -86
  370. package/dist/test/elements/q2-carousel-pane-test.e2e.js.map +1 -1
  371. package/dist/test/elements/q2-carousel-pane-test.spec.js +113 -0
  372. package/dist/test/elements/q2-carousel-pane-test.spec.js.map +1 -0
  373. package/dist/test/elements/q2-carousel-test.e2e.js +27 -1
  374. package/dist/test/elements/q2-carousel-test.e2e.js.map +1 -1
  375. package/dist/test/elements/q2-chart-donut-test.e2e.js +64 -30
  376. package/dist/test/elements/q2-chart-donut-test.e2e.js.map +1 -1
  377. package/dist/test/elements/q2-currency-test.e2e.js +7 -7
  378. package/dist/test/elements/q2-currency-test.e2e.js.map +1 -1
  379. package/dist/test/elements/q2-detail/q2-detail-test.e2e.js +1 -1
  380. package/dist/test/elements/q2-detail/q2-detail-test.e2e.js.map +1 -1
  381. package/dist/test/elements/q2-detail/q2-item-test.e2e.js +223 -0
  382. package/dist/test/elements/q2-detail/q2-item-test.e2e.js.map +1 -0
  383. package/dist/test/elements/q2-detail/q2-list-test.e2e.js +92 -0
  384. package/dist/test/elements/q2-detail/q2-list-test.e2e.js.map +1 -0
  385. package/dist/test/elements/q2-icon-test.e2e.js +19 -97
  386. package/dist/test/elements/q2-icon-test.e2e.js.map +1 -1
  387. package/dist/test/elements/q2-input-test.e2e.js +140 -7
  388. package/dist/test/elements/q2-input-test.e2e.js.map +1 -1
  389. package/dist/test/elements/q2-pill-test.e2e.js +23 -0
  390. package/dist/test/elements/q2-pill-test.e2e.js.map +1 -1
  391. package/dist/test/elements/q2-relative-time-test.e2e.js +50 -48
  392. package/dist/test/elements/q2-relative-time-test.e2e.js.map +1 -1
  393. package/dist/test/elements/q2-textarea-test.e2e.js +4 -8
  394. package/dist/test/elements/q2-textarea-test.e2e.js.map +1 -1
  395. package/dist/test/helpers.js +18 -16
  396. package/dist/test/helpers.js.map +1 -1
  397. package/dist/test/utils/index.spec.js +18 -0
  398. package/dist/test/utils/index.spec.js.map +1 -0
  399. package/dist/types/components/q2-avatar/q2-avatar.d.ts +0 -1
  400. package/dist/types/components/q2-badge/q2-badge.d.ts +1 -0
  401. package/dist/types/components/q2-btn/q2-btn.d.ts +1 -0
  402. package/dist/types/components/q2-carousel/q2-carousel.d.ts +3 -0
  403. package/dist/types/components/q2-carousel-pane/q2-carousel-pane.d.ts +5 -0
  404. package/dist/types/components/q2-chart-donut/q2-chart-donut.d.ts +13 -12
  405. package/dist/types/components/q2-icon/q2-icon.d.ts +0 -5
  406. package/dist/types/components/q2-input/q2-input.d.ts +8 -0
  407. package/dist/types/components/q2-item/q2-item.d.ts +21 -0
  408. package/dist/types/components/q2-list/q2-list.d.ts +20 -0
  409. package/dist/types/components.d.ts +82 -14
  410. package/dist/types/global.d.ts +1 -1
  411. package/dist/types/utils/index.d.ts +6 -0
  412. package/dist/types/workspace/workspace/{tecton-production_release_1.44.x → tecton-production_release_1.45.x}/packages/q2-tecton-elements/.stencil/test/helpers.d.ts +1 -1
  413. package/package.json +3 -3
  414. package/dist/cjs/icons-04e4f595.js +0 -2900
  415. package/dist/cjs/icons-04e4f595.js.map +0 -1
  416. package/dist/cjs/index-1deac3ee.js.map +0 -1
  417. package/dist/collection/components/q2-icon/icons.js +0 -1184
  418. package/dist/collection/components/q2-icon/icons.js.map +0 -1
  419. package/dist/esm/icons-8f4c3b69.js +0 -2898
  420. package/dist/esm/icons-8f4c3b69.js.map +0 -1
  421. package/dist/esm/index-12c2a320.js.map +0 -1
  422. package/dist/q2-tecton-elements/p-043bb5c0.entry.js +0 -2
  423. package/dist/q2-tecton-elements/p-043bb5c0.entry.js.map +0 -1
  424. package/dist/q2-tecton-elements/p-081b779e.entry.js +0 -2
  425. package/dist/q2-tecton-elements/p-081b779e.entry.js.map +0 -1
  426. package/dist/q2-tecton-elements/p-0e2e7b2d.entry.js +0 -2
  427. package/dist/q2-tecton-elements/p-0e2e7b2d.entry.js.map +0 -1
  428. package/dist/q2-tecton-elements/p-0fccdca2.entry.js.map +0 -1
  429. package/dist/q2-tecton-elements/p-1954ab7d.entry.js.map +0 -1
  430. package/dist/q2-tecton-elements/p-55bc5c9b.entry.js +0 -2
  431. package/dist/q2-tecton-elements/p-55bc5c9b.entry.js.map +0 -1
  432. package/dist/q2-tecton-elements/p-5b3f885f.entry.js.map +0 -1
  433. package/dist/q2-tecton-elements/p-5c46acb8.js +0 -2
  434. package/dist/q2-tecton-elements/p-5c46acb8.js.map +0 -1
  435. package/dist/q2-tecton-elements/p-5dd0eede.entry.js +0 -2
  436. package/dist/q2-tecton-elements/p-5dd0eede.entry.js.map +0 -1
  437. package/dist/q2-tecton-elements/p-6479c450.entry.js +0 -2
  438. package/dist/q2-tecton-elements/p-6479c450.entry.js.map +0 -1
  439. package/dist/q2-tecton-elements/p-7c5d43cf.entry.js +0 -2
  440. package/dist/q2-tecton-elements/p-7c5d43cf.entry.js.map +0 -1
  441. package/dist/q2-tecton-elements/p-7ff4c446.entry.js +0 -2
  442. package/dist/q2-tecton-elements/p-7ff4c446.entry.js.map +0 -1
  443. package/dist/q2-tecton-elements/p-87d72e3e.entry.js +0 -2
  444. package/dist/q2-tecton-elements/p-87d72e3e.entry.js.map +0 -1
  445. package/dist/q2-tecton-elements/p-8dc573f5.entry.js +0 -2
  446. package/dist/q2-tecton-elements/p-8dc573f5.entry.js.map +0 -1
  447. package/dist/q2-tecton-elements/p-913a23f5.entry.js +0 -2
  448. package/dist/q2-tecton-elements/p-a5b16c01.entry.js.map +0 -1
  449. package/dist/q2-tecton-elements/p-cbbc7659.entry.js.map +0 -1
  450. package/dist/q2-tecton-elements/p-d7e608f7.entry.js +0 -2
  451. package/dist/q2-tecton-elements/p-d7e608f7.entry.js.map +0 -1
  452. package/dist/q2-tecton-elements/p-dce084f9.entry.js +0 -2
  453. package/dist/q2-tecton-elements/p-dce084f9.entry.js.map +0 -1
  454. package/dist/q2-tecton-elements/p-ecce27a0.entry.js +0 -2
  455. package/dist/q2-tecton-elements/p-ecce27a0.entry.js.map +0 -1
  456. package/dist/q2-tecton-elements/p-f6c1f69b.js +0 -2
  457. package/dist/q2-tecton-elements/p-f6c1f69b.js.map +0 -1
  458. package/dist/q2-tecton-elements/p-f8c7cad7.entry.js +0 -2
  459. package/dist/q2-tecton-elements/p-f8c7cad7.entry.js.map +0 -1
  460. package/dist/types/components/q2-icon/icons.d.ts +0 -3
  461. /package/dist/q2-tecton-elements/{p-86cf292d.entry.js.map → p-2132da06.entry.js.map} +0 -0
  462. /package/dist/q2-tecton-elements/{p-1fac9c85.entry.js.map → p-22661533.entry.js.map} +0 -0
  463. /package/dist/q2-tecton-elements/{p-92955258.entry.js.map → p-4570ff06.entry.js.map} +0 -0
  464. /package/dist/q2-tecton-elements/{p-c1e03092.entry.js.map → p-4a332c2a.entry.js.map} +0 -0
  465. /package/dist/q2-tecton-elements/{p-0a705412.entry.js.map → p-4b81a121.entry.js.map} +0 -0
  466. /package/dist/q2-tecton-elements/{p-bb6e6290.entry.js.map → p-57bf9342.entry.js.map} +0 -0
  467. /package/dist/q2-tecton-elements/{p-5b9ee831.entry.js.map → p-63192fac.entry.js.map} +0 -0
  468. /package/dist/q2-tecton-elements/{p-281e7ce7.entry.js.map → p-685b821c.entry.js.map} +0 -0
  469. /package/dist/q2-tecton-elements/{p-bd5e5864.entry.js.map → p-71180fcd.entry.js.map} +0 -0
  470. /package/dist/q2-tecton-elements/{p-db615608.entry.js.map → p-7523305d.entry.js.map} +0 -0
  471. /package/dist/q2-tecton-elements/{p-be430cd5.js.map → p-7ce6e587.js.map} +0 -0
  472. /package/dist/q2-tecton-elements/{p-ca8dd86f.entry.js.map → p-7f663376.entry.js.map} +0 -0
  473. /package/dist/q2-tecton-elements/{p-3bc27513.entry.js.map → p-aec64fcb.entry.js.map} +0 -0
  474. /package/dist/q2-tecton-elements/{p-79cd6ab5.entry.js.map → p-b376c111.entry.js.map} +0 -0
  475. /package/dist/q2-tecton-elements/{p-cb30f949.entry.js.map → p-bf125cdf.entry.js.map} +0 -0
  476. /package/dist/q2-tecton-elements/{p-73a3c437.entry.js.map → p-d635e39f.entry.js.map} +0 -0
  477. /package/dist/q2-tecton-elements/{p-a89814b8.entry.js.map → p-dc057a9c.entry.js.map} +0 -0
  478. /package/dist/q2-tecton-elements/{p-6afb4d46.entry.js.map → p-e762526f.entry.js.map} +0 -0
  479. /package/dist/q2-tecton-elements/{p-698f82c5.entry.js.map → p-f1265647.entry.js.map} +0 -0
  480. /package/dist/q2-tecton-elements/{p-954d49de.entry.js.map → p-f162c670.entry.js.map} +0 -0
  481. /package/dist/q2-tecton-elements/{p-fddebc47.entry.js.map → p-f4d77672.entry.js.map} +0 -0
  482. /package/dist/types/workspace/workspace/{tecton-production_release_1.44.x → tecton-production_release_1.45.x}/packages/q2-tecton-elements/.stencil/test/elements/q2-detail/slot-component.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["q2ListCss","Q2ListStyle0","Q2List","this","scheduledAfterRender","onMutationObserved","renderTrigger","push","Array","from","hostElement","children","forEach","child","tagName","role","componentDidLoad","MutationObserver","observer","observe","childList","subtree","attributes","mutationObserver","componentDidRender","fn","disconnectedCallback","disconnect","hasLabelContent","label","hasFilterSlot","querySelector","hasSlotContent","headerClasses","classes","join","listClasses","render","h","key","class","ref","el","listElement","name"],"sources":["src/components/q2-list/q2-list.scss?tag=q2-list&encapsulation=shadow","src/components/q2-list/q2-list.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n@import '../q2-btn/q2-btn-mixins';\n\n:host([bordered]:not([bordered ='false'])) {\n ::slotted(q2-item:not(:last-child)), .header {\n border-bottom: var(--tct-list-item-separator, 1px solid #949494);\n }\n}\n\n.header {\n --comp-default-header-padding: var(--app-scale-2x, 8px) var(--app-scale-4x, 16px);\n display: flex;\n gap: var(--app-scale-3x, 12px);\n padding: var-list(\n --tct-list-header-padding,\n --tct-item-padding,\n --comp-default-header-padding\n );\n min-height: var-list(var-prefixer(list-header-min-height), 44px);\n &-spacebetween {\n justify-content: space-between;\n }\n &-start {\n justify-content: flex-start;\n }\n &-end {\n justify-content: flex-end;\n }\n .label {\n width: 100%;\n height: var(--tct-list-label-height, 44px);\n line-height: var(--tct-list-label-line-height, 44px);\n font-size: var-list(--tct-list-label-font-size, 16px);\n font-weight: var(--tct-list-label-font-weight, 600);\n color: var-list(--tct-list-label-font-color, --t-text, #4d4d4d);\n }\n}\n\n.main {\n grid-column: 2;\n grid-row: 1;\n\n &-no-action-nor-bullet {\n grid-column: 1;\n }\n\n &-no-bullet {\n grid-column: 1;\n }\n}\n\n","import { Component, Element, h, State, Prop } from '@stencil/core';\nimport { hasSlotContent } from 'src/utils';\n\n@Component({\n tag: 'q2-list',\n styleUrl: 'q2-list.scss',\n shadow: true,\n})\nexport class Q2List {\n // #region Own Properties\n\n @Element() hostElement: HTMLElement;\n mutationObserver: MutationObserver;\n listElement: HTMLDivElement;\n scheduledAfterRender: (() => void)[] = [];\n\n /** label text on header area */\n @Prop({ reflect: true }) label: string;\n\n // #endregion\n // #region State() Variables\n\n @State() renderTrigger: number = 0;\n\n // #endregion\n // #region Public Property API\n\n /** Adds a border between each items */\n @Prop({ mutable: true, reflect: true }) bordered: boolean;\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentDidLoad() {\n if (typeof MutationObserver !== 'undefined') {\n const observer = new MutationObserver(this.onMutationObserved);\n observer.observe(this.hostElement, { childList: true, subtree: true, attributes: true });\n this.mutationObserver = observer;\n this.onMutationObserved();\n }\n }\n\n componentDidRender() {\n this.scheduledAfterRender.forEach(fn => fn());\n this.scheduledAfterRender = [];\n }\n\n disconnectedCallback() {\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n this.mutationObserver = null;\n }\n }\n\n // #endregion\n // #region Local methods\n\n onMutationObserved = () => {\n this.renderTrigger += 1;\n this.scheduledAfterRender.push(() => {\n Array.from(this.hostElement.children).forEach(child => {\n if (child.tagName === 'Q2-ITEM') child.role = 'listitem';\n });\n });\n };\n\n get hasLabelContent() {\n return !!this.label;\n }\n\n get hasFilterSlot() {\n return !!this.hostElement.querySelector('q2-pill') || hasSlotContent(this.hostElement, 'pill');\n }\n\n get headerClasses() {\n const classes = ['header'];\n if (this.hasLabelContent && this.hasFilterSlot) {\n classes.push('header-spacebetween');\n } else if (this.hasLabelContent && !this.hasFilterSlot) {\n classes.push('header-start');\n } else if (!this.hasLabelContent && this.hasFilterSlot) {\n classes.push('header-end');\n }\n return classes.join(' ');\n }\n\n get listClasses() {\n const classes = ['list'];\n return classes.join(' ');\n }\n\n // #endregion\n // #region Render methods\n\n render() {\n return (\n <div\n class={this.listClasses}\n ref={el => (this.listElement = el)}\n >\n {(this.hasFilterSlot || this.hasLabelContent) && (\n <div class={this.headerClasses}>\n <div class=\"label\">{this.label}</div>\n {this.hasFilterSlot && <slot name=\"filter\" />}\n </div>\n )}\n <div role=\"list\">\n <slot />\n </div>\n </div>\n );\n }\n // #endregion\n}\n"],"mappings":"sFAAA,MAAMA,EAAY,0yEAClB,MAAAC,EAAeD,E,MCOFE,EAAM,M,yBAMfC,KAAAC,qBAAuC,GA2CvCD,KAAAE,mBAAqB,KACjBF,KAAKG,eAAiB,EACtBH,KAAKC,qBAAqBG,MAAK,KAC3BC,MAAMC,KAAKN,KAAKO,YAAYC,UAAUC,SAAQC,IAC1C,GAAIA,EAAMC,UAAY,UAAWD,EAAME,KAAO,UAAU,GAC1D,GACJ,E,wCAzC2B,E,wBAWjC,gBAAAC,GACI,UAAWC,mBAAqB,YAAa,CACzC,MAAMC,EAAW,IAAID,iBAAiBd,KAAKE,oBAC3Ca,EAASC,QAAQhB,KAAKO,YAAa,CAAEU,UAAW,KAAMC,QAAS,KAAMC,WAAY,OACjFnB,KAAKoB,iBAAmBL,EACxBf,KAAKE,oB,EAIb,kBAAAmB,GACIrB,KAAKC,qBAAqBQ,SAAQa,GAAMA,MACxCtB,KAAKC,qBAAuB,E,CAGhC,oBAAAsB,GACI,GAAIvB,KAAKoB,iBAAkB,CACvBpB,KAAKoB,iBAAiBI,aACtBxB,KAAKoB,iBAAmB,I,EAgBhC,mBAAIK,GACA,QAASzB,KAAK0B,K,CAGlB,iBAAIC,GACA,QAAS3B,KAAKO,YAAYqB,cAAc,YAAcC,EAAe7B,KAAKO,YAAa,O,CAG3F,iBAAIuB,GACA,MAAMC,EAAU,CAAC,UACjB,GAAI/B,KAAKyB,iBAAmBzB,KAAK2B,cAAe,CAC5CI,EAAQ3B,KAAK,sB,MACV,GAAIJ,KAAKyB,kBAAoBzB,KAAK2B,cAAe,CACpDI,EAAQ3B,KAAK,e,MACV,IAAKJ,KAAKyB,iBAAmBzB,KAAK2B,cAAe,CACpDI,EAAQ3B,KAAK,a,CAEjB,OAAO2B,EAAQC,KAAK,I,CAGxB,eAAIC,GACA,MAAMF,EAAU,CAAC,QACjB,OAAOA,EAAQC,KAAK,I,CAMxB,MAAAE,GACI,OACIC,EAAA,OAAAC,IAAA,2CACIC,MAAOrC,KAAKiC,YACZK,IAAKC,GAAOvC,KAAKwC,YAAcD,IAE7BvC,KAAK2B,eAAiB3B,KAAKyB,kBACzBU,EAAA,OAAAC,IAAA,2CAAKC,MAAOrC,KAAK8B,eACbK,EAAA,OAAAC,IAAA,2CAAKC,MAAM,SAASrC,KAAK0B,OACxB1B,KAAK2B,eAAiBQ,EAAA,QAAAC,IAAA,2CAAMK,KAAK,YAG1CN,EAAA,OAAAC,IAAA,2CAAKxB,KAAK,QACNuB,EAAA,QAAAC,IAAA,8C"}
@@ -1,2 +1,2 @@
1
- import{r as t,c as a,h as r,F as c,g as o}from"./p-a5f18e27.js";import{b as e,o as i,i as s}from"./p-5c46acb8.js";const n="*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{display:block}.container{position:relative;width:100%;text-align:start;height:100%;display:grid;gap:var(--tct-card-gap, var(--t-card-gap, var(--app-scale-3x, 15px)));margin:0;color:var(--tct-card-color, var(--t-card-color, var(--t-text, #4d4d4d)));--comp-avatar-size:var(--tct-card-avatar-size, var(--t-card-avatar-size, 44px));--comp-chevron-size:0;--comp-bar-width:var(--tct-card-bar-width, var(--t-card-bar-width, var(--app-scale-2x, 10px)));--comp-card-padding:var(--tct-card-padding, var(--t-card-padding, var(--app-scale-4x, 20px)))}.container.is-small{--comp-avatar-size:var(--tct-card-avatar-size, var(--t-card-avatar-size, 26px))}.container.has-avatar{grid-template-columns:var(--comp-avatar-size) 1fr;--tct-avatar-width:var(--comp-avatar-size);--tct-avatar-height:var(--comp-avatar-size);--tct-icon-size:var(--comp-avatar-size)}:host([bar][is-static]) .container{padding-left:var(--comp-card-padding)}:host(:not([is-static])) .container{--comp-border-radius:var(--tct-card-border-radius, var(--t-card-border-radius, var(--app-border-radius-1, 3px)));--comp-border-width:var(--tct-card-border-width, var(--t-card-border-width, 0px));border:none;background:var(--tct-card-background, var(--t-card-background, var(--t-base, #ffffff)));padding:var(--comp-card-padding);text-decoration:none;border-width:var(--comp-border-width);border-color:var(--tct-card-border-color, var(--t-card-border-color, transparent));border-style:var(--tct-card-border-style, solid);border-radius:var(--comp-border-radius);transition:box-shadow var(--tct-tween-1, var(--app-tween-1, 0.2s ease));box-shadow:var(--tct-card-box-shadow, var(--t-card-box-shadow, var(--app-shadow-2, 0 3px 6px rgba(0, 0, 0, 0.3))))}:host(:not([is-static])) .container.clickable{cursor:pointer}@media (hover: hover){:host(:not([is-static])) .container.clickable{--comp-card-hover-box-shadow:var(--tct-card-hover-box-shadow, var(--t-card-hover-box-shadow, var(--app-shadow-3, 0 4px 12px rgba(0, 0, 0, 0.3))))}:host(:not([is-static])) .container.clickable:hover,:host(:not([is-static])) .container.clickable:active,:host(:not([is-static])) .container.clickable:focus{color:var(--tct-card-color, var(--t-card-color, var(--t-text, #4d4d4d)));box-shadow:var(--const-double-focus-ring)}:host(:not([is-static])) .container.clickable:hover{box-shadow:var(--comp-card-hover-box-shadow)}:host(:not([is-static])) .container.clickable:focus:hover{box-shadow:var(--const-double-focus-ring), var(--comp-card-hover-box-shadow)}:host(:not([is-static])) .container.clickable:active{box-shadow:var(--tct-card-active-box-shadow, var(--t-card-active-box-shadow, var(--app-shadow-1, 0 2px 4px rgba(0, 0, 0, 0.3))))}}:host(:not([is-static])) .container.is-touch{--comp-chevron-size:var(--tct-card-chevron-size, var(--t-card-chevron-size, 26px));grid-template-columns:1fr var(--comp-chevron-size)}:host(:not([is-static])) .container.has-avatar.is-touch{grid-template-columns:var(--comp-avatar-size) 1fr var(--comp-chevron-size)}.content{overflow:hidden;display:grid;gap:var(--tct-card-content-gap, var(--t-card-content-gap, var(--app-scale-1x, 5px)));align-content:start}h3,p{margin:0;padding:0;line-height:var(--tct-card-font-height, var(--t-card-font-height, 20px))}h3{font-weight:var(--tct-card-font-weight, var(--t-card-font-weight, 600));font-size:var(--tct-card-font-size, var(--t-card-font-size, 17px));text-overflow:ellipsis;overflow:hidden;white-space:nowrap}p{text-overflow:ellipsis;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.bar{--comp-bar-border-radius:calc(var(--comp-border-radius) - var(--comp-border-width));border-radius:var(--comp-bar-border-radius) 0 0 var(--comp-bar-border-radius);position:absolute;inset:0 auto auto 0;width:var(--comp-bar-width);background:var(--comp-bar-color);height:100%}.bar.color-primary{--comp-bar-color:var(--tct-card-bar-color-primary, var(--t-primary, #5446a4))}.bar.color-secondary{--comp-bar-color:var(--tct-card-bar-color-secondary, var(--t-secondary, #b6b3cc))}.bar.color-tertiary{--comp-bar-color:var(--tct-card-bar-color-tertiary, var(--t-tertiary, #ebe8fc))}.bar.color-info{--comp-bar-color:var(--tct-card-bar-color-info, var(--const-stoplight-info, #0079c1))}.bar.color-success{--comp-bar-color:var(--tct-card-bar-color-success, var(--const-stoplight-success, #0e8a00))}.bar.color-warning{--comp-bar-color:var(--tct-card-bar-color-warning, var(--const-stoplight-warning, #c35500))}.bar.color-alert{--comp-bar-color:var(--tct-card-bar-color-alert, var(--const-stoplight-alert, #c35500))}.bar.color-accent-1{--comp-bar-color:var(--tct-card-bar-color-accent-1, var(--t-accent-1, #e05252))}.bar.color-accent-2{--comp-bar-color:var(--tct-card-bar-color-accent-2, var(--t-accent-2, #e09952))}.bar.color-accent-3{--comp-bar-color:var(--tct-card-bar-color-accent-3, var(--t-accent-3, #e0e052))}.bar.color-accent-4{--comp-bar-color:var(--tct-card-bar-color-accent-4, var(--t-accent-4, #99e052))}.bar.color-accent-5{--comp-bar-color:var(--tct-card-bar-color-accent-5, var(--t-accent-5, #52e052))}.bar.color-accent-6{--comp-bar-color:var(--tct-card-bar-color-accent-6, var(--t-accent-6, #52e099))}.bar.color-accent-7{--comp-bar-color:var(--tct-card-bar-color-accent-7, var(--t-accent-7, #52e0e0))}.bar.color-accent-8{--comp-bar-color:var(--tct-card-bar-color-accent-8, var(--t-accent-8, #5299e0))}.bar.color-accent-9{--comp-bar-color:var(--tct-card-bar-color-accent-9, var(--t-accent-9, #5252e0))}.bar.color-accent-10{--comp-bar-color:var(--tct-card-bar-color-accent-10, var(--t-accent-10, #9952e0))}.bar.color-accent-11{--comp-bar-color:var(--tct-card-bar-color-accent-11, var(--t-accent-11, #e052e0))}.bar.color-accent-12{--comp-bar-color:var(--tct-card-bar-color-accent-12, var(--t-accent-12, #e05299))}.touch-indicator{align-self:center;--tct-icon-size:var(--comp-chevron-size)}";const d=n;const l=["primary","secondary","tertiary","info","success","warning","alert","accent-1","accent-2","accent-3","accent-4","accent-5","accent-6","accent-7","accent-8","accent-9","accent-10","accent-11","accent-12"];const h=class{constructor(r){t(this,r);this.click=a(this,"click",7);this.handleClick=t=>{if(this.url)return true;t.preventDefault();t.stopPropagation();this.click.emit()};this.avatarIcon=undefined;this.avatarInitials=undefined;this.avatarName=undefined;this.avatarSrc=undefined;this.bar=undefined;this.description=undefined;this.isSmall=undefined;this.isStatic=undefined;this.isTouch=e();this.target=undefined;this.title=undefined;this.type="clickable";this.url=undefined;this.isAutoTouch=false;this.isAutoSmall=false}componentDidLoad(){const{hostElement:t,clickableElement:a}=this;t.click=()=>a.click();i(this.hostElement);this.resizeObserver=new ResizeObserver((()=>this.determineAutoSmall()));this.resizeObserver.observe(this.hostElement)}disconnectedCallback(){this.resizeObserver=null}onHostElementFocus(t){if(!s(t,this.hostElement))return;this.clickableElement.focus()}getBarClasses(){const{bar:t}=this;return{bar:true,[`color-${t}`]:this.isBarColorPredefined()}}getBarStyles(){const{bar:t}=this;return this.isBarColorPredefined()?{}:{"--comp-bar-color":t}}isBarColorPredefined(){return l.includes(this.bar)}determineAutoTouch(){if(this.hostElement.hasAttribute("is-touch"))return;this.isAutoTouch=e()}determineAutoSmall(){var t,a;if(this.isStatic)return;if(this.hostElement.hasAttribute("is-small"))return;const{containerElement:r,avatarElement:c}=this;const o=(t=c===null||c===void 0?void 0:c.offsetWidth)!==null&&t!==void 0?t:0;const e=(a=r===null||r===void 0?void 0:r.offsetWidth)!==null&&a!==void 0?a:0;const i=o+e;this.isAutoSmall=i<350}generateAvatar(){const{avatarName:t,avatarInitials:a,avatarSrc:c,avatarIcon:o}=this;if(o){return r("q2-icon",{type:o,ref:t=>this.avatarElement=t,"test-id":"avatar"})}else if(t||a||c){return r("q2-avatar",{name:t,initials:a,src:c,ref:t=>this.avatarElement=t,"test-id":"avatar"})}}generateContent(){return r(c,null,this.bar&&r("div",{class:this.getBarClasses(),"test-id":"bar",style:this.getBarStyles()}),this.generateAvatar(),r("div",{class:"content","test-id":"contentContainer",ref:t=>this.containerElement=t},this.title&&r("h3",{"test-id":"title"},this.title),this.description&&r("p",{"test-id":"description"},this.description),r("slot",null)),this.isTouch&&!this.isStatic&&r("q2-icon",{"test-id":"touchIndicator",type:"chevron-right",class:"touch-indicator"}))}generateContainerClasses(){const{isSmall:t,isAutoSmall:a,avatarName:r,avatarInitials:c,avatarSrc:o,avatarIcon:e,isTouch:i,isAutoTouch:s,isStatic:n,type:d}=this;const l=["container",d];const h=t||a;const v=i||s;const b=r||c||o||e;if(h)l.push("is-small");if(v&&!n)l.push("is-touch");if(b)l.push("has-avatar");if(n)l.push("is-static");return l.join(" ")}render(){const{url:t,isStatic:a,type:c}=this;if(a||c==="non-clickable")return r("div",{ref:t=>this.clickableElement=t,class:this.generateContainerClasses(),"test-id":"clickableElement"},this.generateContent());else if(!!t)return r("a",{ref:t=>this.clickableElement=t,href:this.url,class:this.generateContainerClasses(),target:this.target,rel:"noopener noreferrer","test-id":"clickableElement",onClick:this.handleClick},this.generateContent());else return r("button",{ref:t=>this.clickableElement=t,class:this.generateContainerClasses(),"test-id":"clickableElement",type:"button",onClick:this.handleClick},this.generateContent())}get hostElement(){return o(this)}};h.style=d;export{h as q2_card};
2
- //# sourceMappingURL=p-73a3c437.entry.js.map
1
+ import{r as t,c as a,h as r,F as c,g as o}from"./p-a5f18e27.js";import{b as e,o as i,i as s}from"./p-42302f6f.js";const n="*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{display:block}.container{position:relative;width:100%;text-align:start;height:100%;display:grid;gap:var(--tct-card-gap, var(--t-card-gap, var(--app-scale-3x, 15px)));margin:0;color:var(--tct-card-color, var(--t-card-color, var(--t-text, #4d4d4d)));--comp-avatar-size:var(--tct-card-avatar-size, var(--t-card-avatar-size, 44px));--comp-chevron-size:0;--comp-bar-width:var(--tct-card-bar-width, var(--t-card-bar-width, var(--app-scale-2x, 10px)));--comp-card-padding:var(--tct-card-padding, var(--t-card-padding, var(--app-scale-4x, 20px)))}.container.is-small{--comp-avatar-size:var(--tct-card-avatar-size, var(--t-card-avatar-size, 26px))}.container.has-avatar{grid-template-columns:var(--comp-avatar-size) 1fr;--tct-avatar-width:var(--comp-avatar-size);--tct-avatar-height:var(--comp-avatar-size);--tct-icon-size:var(--comp-avatar-size)}:host([bar][is-static]) .container{padding-left:var(--comp-card-padding)}:host(:not([is-static])) .container{--comp-border-radius:var(--tct-card-border-radius, var(--t-card-border-radius, var(--app-border-radius-1, 3px)));--comp-border-width:var(--tct-card-border-width, var(--t-card-border-width, 0px));border:none;background:var(--tct-card-background, var(--t-card-background, var(--t-base, #ffffff)));padding:var(--comp-card-padding);text-decoration:none;border-width:var(--comp-border-width);border-color:var(--tct-card-border-color, var(--t-card-border-color, transparent));border-style:var(--tct-card-border-style, solid);border-radius:var(--comp-border-radius);transition:box-shadow var(--tct-tween-1, var(--app-tween-1, 0.2s ease));box-shadow:var(--tct-card-box-shadow, var(--t-card-box-shadow, var(--app-shadow-2, 0 3px 6px rgba(0, 0, 0, 0.3))))}:host(:not([is-static])) .container.clickable{cursor:pointer}@media (hover: hover){:host(:not([is-static])) .container.clickable{--comp-card-hover-box-shadow:var(--tct-card-hover-box-shadow, var(--t-card-hover-box-shadow, var(--app-shadow-3, 0 4px 12px rgba(0, 0, 0, 0.3))))}:host(:not([is-static])) .container.clickable:hover,:host(:not([is-static])) .container.clickable:active,:host(:not([is-static])) .container.clickable:focus{color:var(--tct-card-color, var(--t-card-color, var(--t-text, #4d4d4d)));box-shadow:var(--const-double-focus-ring)}:host(:not([is-static])) .container.clickable:hover{box-shadow:var(--comp-card-hover-box-shadow)}:host(:not([is-static])) .container.clickable:focus:hover{box-shadow:var(--const-double-focus-ring), var(--comp-card-hover-box-shadow)}:host(:not([is-static])) .container.clickable:active{box-shadow:var(--tct-card-active-box-shadow, var(--t-card-active-box-shadow, var(--app-shadow-1, 0 2px 4px rgba(0, 0, 0, 0.3))))}}:host(:not([is-static])) .container.is-touch{--comp-chevron-size:var(--tct-card-chevron-size, var(--t-card-chevron-size, 26px));grid-template-columns:1fr var(--comp-chevron-size)}:host(:not([is-static])) .container.has-avatar.is-touch{grid-template-columns:var(--comp-avatar-size) 1fr var(--comp-chevron-size)}.content{overflow:hidden;display:grid;gap:var(--tct-card-content-gap, var(--t-card-content-gap, var(--app-scale-1x, 5px)));align-content:start}h3,p{margin:0;padding:0;line-height:var(--tct-card-font-height, var(--t-card-font-height, 20px))}h3{font-weight:var(--tct-card-font-weight, var(--t-card-font-weight, 600));font-size:var(--tct-card-font-size, var(--t-card-font-size, 17px));text-overflow:ellipsis;overflow:hidden;white-space:nowrap}p{text-overflow:ellipsis;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.bar{--comp-bar-border-radius:calc(var(--comp-border-radius) - var(--comp-border-width));border-radius:var(--comp-bar-border-radius) 0 0 var(--comp-bar-border-radius);position:absolute;inset:0 auto auto 0;width:var(--comp-bar-width);background:var(--comp-bar-color);height:100%}.bar.color-primary{--comp-bar-color:var(--tct-card-bar-color-primary, var(--t-primary, #5446a4))}.bar.color-secondary{--comp-bar-color:var(--tct-card-bar-color-secondary, var(--t-secondary, #b6b3cc))}.bar.color-tertiary{--comp-bar-color:var(--tct-card-bar-color-tertiary, var(--t-tertiary, #ebe8fc))}.bar.color-info{--comp-bar-color:var(--tct-card-bar-color-info, var(--const-stoplight-info, #0079c1))}.bar.color-success{--comp-bar-color:var(--tct-card-bar-color-success, var(--const-stoplight-success, #0e8a00))}.bar.color-warning{--comp-bar-color:var(--tct-card-bar-color-warning, var(--const-stoplight-warning, #c35500))}.bar.color-alert{--comp-bar-color:var(--tct-card-bar-color-alert, var(--const-stoplight-alert, #c35500))}.bar.color-accent-1{--comp-bar-color:var(--tct-card-bar-color-accent-1, var(--t-accent-1, #e05252))}.bar.color-accent-2{--comp-bar-color:var(--tct-card-bar-color-accent-2, var(--t-accent-2, #e09952))}.bar.color-accent-3{--comp-bar-color:var(--tct-card-bar-color-accent-3, var(--t-accent-3, #e0e052))}.bar.color-accent-4{--comp-bar-color:var(--tct-card-bar-color-accent-4, var(--t-accent-4, #99e052))}.bar.color-accent-5{--comp-bar-color:var(--tct-card-bar-color-accent-5, var(--t-accent-5, #52e052))}.bar.color-accent-6{--comp-bar-color:var(--tct-card-bar-color-accent-6, var(--t-accent-6, #52e099))}.bar.color-accent-7{--comp-bar-color:var(--tct-card-bar-color-accent-7, var(--t-accent-7, #52e0e0))}.bar.color-accent-8{--comp-bar-color:var(--tct-card-bar-color-accent-8, var(--t-accent-8, #5299e0))}.bar.color-accent-9{--comp-bar-color:var(--tct-card-bar-color-accent-9, var(--t-accent-9, #5252e0))}.bar.color-accent-10{--comp-bar-color:var(--tct-card-bar-color-accent-10, var(--t-accent-10, #9952e0))}.bar.color-accent-11{--comp-bar-color:var(--tct-card-bar-color-accent-11, var(--t-accent-11, #e052e0))}.bar.color-accent-12{--comp-bar-color:var(--tct-card-bar-color-accent-12, var(--t-accent-12, #e05299))}.touch-indicator{align-self:center;--tct-icon-size:var(--comp-chevron-size)}";const d=n;const l=["primary","secondary","tertiary","info","success","warning","alert","accent-1","accent-2","accent-3","accent-4","accent-5","accent-6","accent-7","accent-8","accent-9","accent-10","accent-11","accent-12"];const h=class{constructor(r){t(this,r);this.click=a(this,"click",7);this.handleClick=t=>{if(this.url)return true;t.preventDefault();t.stopPropagation();this.click.emit()};this.avatarIcon=undefined;this.avatarInitials=undefined;this.avatarName=undefined;this.avatarSrc=undefined;this.bar=undefined;this.description=undefined;this.isSmall=undefined;this.isStatic=undefined;this.isTouch=e();this.target=undefined;this.title=undefined;this.type="clickable";this.url=undefined;this.isAutoTouch=false;this.isAutoSmall=false}componentDidLoad(){const{hostElement:t,clickableElement:a}=this;t.click=()=>a.click();i(this.hostElement);this.resizeObserver=new ResizeObserver((()=>this.determineAutoSmall()));this.resizeObserver.observe(this.hostElement)}disconnectedCallback(){this.resizeObserver=null}onHostElementFocus(t){if(!s(t,this.hostElement))return;this.clickableElement.focus()}getBarClasses(){const{bar:t}=this;return{bar:true,[`color-${t}`]:this.isBarColorPredefined()}}getBarStyles(){const{bar:t}=this;return this.isBarColorPredefined()?{}:{"--comp-bar-color":t}}isBarColorPredefined(){return l.includes(this.bar)}determineAutoTouch(){if(this.hostElement.hasAttribute("is-touch"))return;this.isAutoTouch=e()}determineAutoSmall(){var t,a;if(this.isStatic)return;if(this.hostElement.hasAttribute("is-small"))return;const{containerElement:r,avatarElement:c}=this;const o=(t=c===null||c===void 0?void 0:c.offsetWidth)!==null&&t!==void 0?t:0;const e=(a=r===null||r===void 0?void 0:r.offsetWidth)!==null&&a!==void 0?a:0;const i=o+e;this.isAutoSmall=i<350}generateAvatar(){const{avatarName:t,avatarInitials:a,avatarSrc:c,avatarIcon:o}=this;if(o){return r("q2-icon",{type:o,ref:t=>this.avatarElement=t,"test-id":"avatar"})}else if(t||a||c){return r("q2-avatar",{name:t,initials:a,src:c,ref:t=>this.avatarElement=t,"test-id":"avatar"})}}generateContent(){return r(c,null,this.bar&&r("div",{class:this.getBarClasses(),"test-id":"bar",style:this.getBarStyles()}),this.generateAvatar(),r("div",{class:"content","test-id":"contentContainer",ref:t=>this.containerElement=t},this.title&&r("h3",{"test-id":"title"},this.title),this.description&&r("p",{"test-id":"description"},this.description),r("slot",null)),this.isTouch&&!this.isStatic&&r("q2-icon",{"test-id":"touchIndicator",type:"chevron-right",class:"touch-indicator"}))}generateContainerClasses(){const{isSmall:t,isAutoSmall:a,avatarName:r,avatarInitials:c,avatarSrc:o,avatarIcon:e,isTouch:i,isAutoTouch:s,isStatic:n,type:d}=this;const l=["container",d];const h=t||a;const v=i||s;const b=r||c||o||e;if(h)l.push("is-small");if(v&&!n)l.push("is-touch");if(b)l.push("has-avatar");if(n)l.push("is-static");return l.join(" ")}render(){const{url:t,isStatic:a,type:c}=this;if(a||c==="non-clickable")return r("div",{ref:t=>this.clickableElement=t,class:this.generateContainerClasses(),"test-id":"clickableElement"},this.generateContent());else if(!!t)return r("a",{ref:t=>this.clickableElement=t,href:this.url,class:this.generateContainerClasses(),target:this.target,rel:"noopener noreferrer","test-id":"clickableElement",onClick:this.handleClick},this.generateContent());else return r("button",{ref:t=>this.clickableElement=t,class:this.generateContainerClasses(),"test-id":"clickableElement",type:"button",onClick:this.handleClick},this.generateContent())}get hostElement(){return o(this)}};h.style=d;export{h as q2_card};
2
+ //# sourceMappingURL=p-d635e39f.entry.js.map
@@ -1,2 +1,2 @@
1
- import{r as t,c as e,h as a,F as r,g as o}from"./p-a5f18e27.js";import{r as l,l as n}from"./p-5c46acb8.js";const c="*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{display:block}.container{--comp-cell-padding:var(--tct-data-table-cell-padding, var(--tct-table-cell-padding, var(--app-scale-3x, 15px)));--comp-select-column-width:var(--tct-data-table-select-column-width, var(--tct-table-select-column-width, var(--tct-checkbox-size, 20px)));--comp-dropdown-column-width:var(--tct-data-table-dropdown-column-width, var(--tct-table-dropdown-column-width, var(--tct-btn-icon-width, 44px)));--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)));overflow:auto;--comp-scrollbar-size:var(--tct-scrollbar-size, var(--t-scrollbar-size, var(--app-scale-1x, 5px)));--comp-scrollbar-border-radius:var(--tct-scrollbar-border-radius, var(--t-scrollbar-border-radius, var(--app-border-radius-1, 3px)));--comp-scrollbar-color:var(--tct-scrollbar-color, var(--t-scrollbar-color, var(--t-a11y-gray-color, #747474)));scrollbar-width:thin;scrollbar-color:var(--comp-scrollbar-color) transparent}.container::-webkit-scrollbar{width:var(--comp-scrollbar-size);height:var(--comp-scrollbar-size);margin:5px}.container::-webkit-scrollbar-thumb{background:var(--comp-scrollbar-color);border-radius:var(--comp-scrollbar-border-radius)}.container::-webkit-scrollbar-track{background:transparent;border-radius:var(--comp-scrollbar-border-radius)}:host([shadowed]:not([shadowed=false])) .container{box-shadow:var(--tct-data-table-shadow, var(--tct-table-shadow, var(--app-shadow-1, 0 2px 4px rgba(0, 0, 0, 0.3))))}:host([density=compact]) .container{--comp-cell-padding:var(--tct-data-table-cell-padding-compact, var(--tct-table-cell-padding-compact, var(--app-scale-1x, 5px)))}:host([density=comfortable]) .container{--comp-cell-padding:var(--tct-data-table-cell-padding-comfortable, var(--tct-table-cell-padding-comfortable, var(--app-scale-5x, 25px)))}table{table-layout:var(--tct-data-table-layout, var(--tct-table-layout, auto));border-collapse:collapse;border-spacing:0;width:var(--tct-data-table-width, var(--tct-table-width));min-width:100%;background:var(--tct-data-table-background, var(--tct-table-background, var(--t-base, #ffffff)));caption-side:var(--tct-data-table-caption-side, var(--tct-table-caption-side, bottom))}thead{border-width:var(--tct-data-table-header-border-width, var(--tct-table-header-border-width, 0 0 2px 0));border-style:var(--tct-data-table-header-border-style, var(--tct-table-header-border-style, solid));border-color:var(--tct-data-table-header-border-color, var(--tct-table-header-border-color, var(--t-gray-9, #999999)));background:var(--tct-data-table-header-background, var(--tct-table-header-background))}col.select-column{width:var(--comp-select-column-width)}col.expandable-row-control-column{width:var(--comp-expandable-row-control-column-width)}col.dropdown-column{width:var(--comp-dropdown-column-width)}td,th{padding:var(--comp-cell-padding);text-align:start;vertical-align:middle}td.align-end,th.align-end{text-align:end}td.align-center,th.align-center{text-align:center}td.vertical-align-top,th.vertical-align-top{vertical-align:top}td.vertical-align-bottom,th.vertical-align-bottom{vertical-align:bottom}th .header-content{font-weight:var(--tct-data-table-header-font-weight, var(--tct-table-header-font-weight, 400));font-size:var(--tct-data-table-header-font-size, var(--app-font-size, 14px))}th.sorted .header-content{font-weight:var(--tct-data-table-header-sorted-font-weight, var(--tct-table-header-sorted-font-weight, 600))}th .sorted-indicator{--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)));--tct-icon-stroke-width:2;width:var(--comp-header-sortable-icon-size);height:var(--comp-header-sortable-icon-size)}th .sorted-indicator.direction-ASC{transform:rotate(180deg)}th q2-btn .header-content{display:flex;align-items:center;gap:var(--tct-data-table-header-content-gap, var(--tct-table-header-content-gap, var(--app-scale-2x, 10px)))}tr.expandable,tr.clickable{cursor:pointer}tr.expandable:focus,tr.clickable:focus{outline:none;box-shadow:none}tr.expandable:hover{background:var(--tct-data-table-expandable-row-hover-background, var(--tct-table-expandable-row-hover-background, var(--t-gray-14, #f2f2f2)))}tr.clickable:hover{background:var(--tct-data-table-clickable-row-hover-background, var(--tct-table-clickable-row-hover-background, var(--t-gray-14, #f2f2f2)))}tr.selected{background:var(--tct-data-table-selected-row-background, var(--tct-table-selected-row-background, var(--t-gray-14, #f2f2f2)))}tr.expanded{background:var(--tct-data-table-expanded-row-background, var(--tct-table-expanded-row-background, var(--t-gray-14, #f2f2f2)))}tr.expanded .toggle-expandable-row{transform:rotate(180deg)}:host([bordered]:not([bordered=false])) tbody tr{border-width:var(--tct-data-table-row-border-width, var(--tct-table-row-border-width, 0 0 1px 0));border-style:var(--tct-data-table-row-border-style, var(--tct-table-row-border-style, solid));border-color:var(--tct-data-table-row-border-color, var(--tct-table-row-border-color, var(--t-gray-9, #999999)))}tr.loading-row{background:var(--tct-data-table-loading-row-background, var(--tct-table-loading-row-background, var(--t-base, #ffffff)))}tr.loading-row td{text-align:center}tr.loading-row q2-loading{font-size:4em}tr.empty-state{background:var(--tct-data-table-loading-row-background, var(--t-base, #ffffff))}tr.empty-state td{text-align:center}tr.empty-state .empty-state-content{display:flex;flex-direction:column;align-items:center;padding-top:var(--app-scale-10x, 50px);padding-bottom:var(--app-scale-10x, 50px);gap:var(--app-scale-4x, 20px);--tct-icon-size:var(--app-scale-6x, 30px)}tr.expandable-row{background:var(--tct-data-table-expanded-row-background, var(--tct-table-expanded-row-background, var(--t-gray-14, #f2f2f2)))}td.clamped div{text-overflow:ellipsis;overflow:hidden;display:-webkit-box;-webkit-line-clamp:var(--comp-line-clamp-count, 1);-webkit-box-orient:vertical}td.expandable-row-control-column{--tct-btn-icon-hover-bg:transparent;padding:var(--tct-data-table-expandable-row-control-column-padding, var(--tct-table-expandable-row-control-column-padding, 0 5px));text-align:center}td.dropdown-column{padding:var(--tct-data-table-dropdown-column-padding, var(--tct-table-dropdown-column-padding, 0 5px));text-align:center}td.click-column:not(.sr){padding:var(--tct-data-table-clickable-column-padding, var(--tct-table-clickable-column-padding, 0 5px));text-align:center}caption{padding:var(--tct-data-table-caption-padding, var(--tct-table-caption-padding, var(--app-scale-2x, 10px)));font-size:var(--tct-data-table-caption-font-size, var(--tct-table-caption-font-size, inherit));font-weight:var(--tct-data-table-caption-font-weight, var(--tct-table-caption-font-weight, 600));text-align:var(--tct-data-table-caption-text-align, var(--tct-table-caption-text-align, center));color:var(--tct-data-table-caption-color, var(--tct-table-caption-color, inherit))}q2-checkbox{padding:0}";const i=c;const d=class{constructor(a){t(this,a);this.select=e(this,"select",7);this.click=e(this,"click",7);this.toggle=e(this,"toggle",7);this.sort=e(this,"sort",7);this.selectAllRows=e(this,"selectAllRows",7);this.checkSlots=()=>{var t,e,a,r;this.hasExpandableRows=!!((e=(t=this.hostElement)===null||t===void 0?void 0:t.querySelector(`[slot$="-expandable-content"]`))!==null&&e!==void 0?e:false);this.hasDropdowns=!!((r=(a=this.hostElement)===null||a===void 0?void 0:a.querySelector(`[slot$="-dropdown"]`))!==null&&r!==void 0?r:false);this.checkSlotCount+=1};this.onSort=t=>{const e=t.sorted==="ASC"?"DESC":"ASC";const a=t.key;const r=this.sort.emit({header:t,direction:e});if(r.defaultPrevented)return;this.serializedHeaders=this.serializedHeaders.map((t=>{const r=a===t.key?e:undefined;return Object.assign(Object.assign({},t),{sorted:r})}));this.serializedRows=this.sortRows(this.serializedRows,Object.assign(Object.assign({},t),{sorted:e}))};this.onSelectRow=(t,e)=>{t.stopPropagation();const{selectMode:a,serializedRows:r,selectedRows:o}=this;const{checked:l}=t.detail;const n=Object.assign(Object.assign({},e),{selected:l});let c;if(a==="single"){c=l?[n]:[]}else{c=l?[...o,n]:o.filter((t=>t.id!==n.id))}const i=c.length===r.length;const d=!i&&c.length>0;const s=this.select.emit({row:n,rows:c,allSelected:i});if(s.defaultPrevented)return;this.serializedRows=this.serializedRows.map((t=>t.id===n.id?n:t));this.allRowsSelected=i;this.someRowsSelected=d};this.onClickTableRow=(t,e)=>{if(this.clickable){this.onClickRow(t,e)}else if(this.hasExpandableRows){this.onToggleRow(t,e)}};this.onClickRow=(t,e)=>{t.stopPropagation();this.click.emit({row:e})};this.onToggleRow=(t,e)=>{t.stopPropagation();const a=Object.assign(Object.assign({},e),{expanded:!e.expanded});const r=this.toggle.emit({row:a});if(r.defaultPrevented)return;this.serializedRows=this.serializedRows.map((t=>{if(t.id===a.id)return a;else return Object.assign({},t)}))};this.onControlContainerClick=t=>{t.stopPropagation()};this.bordered=undefined;this.clickable=undefined;this.caption=undefined;this.density=undefined;this.emptyIcon="inbox";this.emptyMessage="tecton.element.dataTable.emptyMessage";this.headers=undefined;this.hideCaption=undefined;this.hideClickable=undefined;this.loading=undefined;this.rows=undefined;this.selectable=undefined;this.selectMode="multiple";this.shadowed=undefined;this.serializedHeaders=[];this.serializedRows=[];this.hasExpandableRows=false;this.hasDropdowns=false;this.allRowsSelected=false;this.someRowsSelected=false;this.hasRowData=false;this.checkSlotCount=0}componentWillLoad(){this.headersHandler(this.headers);this.rowsHandler(this.rows)}componentDidLoad(){if(typeof MutationObserver!=="undefined"){const t=new MutationObserver((()=>this.checkSlots()));t.observe(this.hostElement,{childList:true,subtree:true,attributes:true});this.mutationObserver=t}if(typeof ResizeObserver!=="undefined"){this.resizeObserver=new ResizeObserver((()=>l()));this.resizeObserver.observe(this.hostElement)}}disconnectedCallback(){if(this.mutationObserver){this.mutationObserver.disconnect();this.mutationObserver=null}if(this.resizeObserver){this.resizeObserver.disconnect();this.resizeObserver=null}}get selectedRows(){return this.serializedRows.filter((({selected:t})=>t))}get selectedRow(){return this.selectedRows.find((({selected:t})=>!!t))}get numberOfColumns(){var t,e;return((e=(t=this.serializedHeaders)===null||t===void 0?void 0:t.length)!==null&&e!==void 0?e:0)+(this.selectable?1:0)+(this.clickable?1:0)+(this.hasExpandableRows?1:0)+(this.hasDropdowns?1:0)}get mappedHeaders(){return this.serializedHeaders.reduce(((t,e)=>{t[e.key]=e;return t}),{})}sortRows(t,e){const{key:a,sorted:r}=e;const o=r||"ASC";const l=[...t].sort(((t,e)=>{const r=t.cells[a].value;const l=e.cells[a].value;if(r<l)return o==="ASC"?-1:1;if(r>l)return o==="ASC"?1:-1;return 0}));return l}headersHandler(t=[]){this.serializedHeaders=t.map((t=>{const{title:e}=t;let{key:a}=t;if(!a)a=e.toLowerCase().replace(/\s/g,"-");return Object.assign({key:a},t)}))}rowsHandler(t=[]){const{serializedHeaders:e,mappedHeaders:a}=this;const r={id:null,cells:{},selected:false,expanded:false,disabled:false};let o=true;let l=false;const n=t.map((({id:t,cells:e,selected:n,expanded:c,disabled:i})=>{const d=Object.entries(e).reduce(((t,[e,r])=>{const o=a[e]||{};const{align:l,type:n="text",lineClamp:c,verticalAlign:i}=o;const d="type"in o&&o.type==="badge";const s={value:"",ariaLabel:undefined,type:n,align:l,lineClamp:c,verticalAlign:i,badgeStatus:d?o.badgeStatus:undefined,badgeTheme:d?o.badgeTheme:undefined};const b=typeof r==="object"?Object.assign(Object.assign({},s),r):Object.assign(Object.assign({},s),{value:r});t[e]=b;return t}),{});if(o&&!n)o=false;if(!o&&n)l=true;return Object.assign(Object.assign({},r),{id:t,selected:!!n,expanded:!!c,disabled:!!i,cells:d})}));const c=e.find((({sorted:t})=>t));this.hasRowData=!!t.length;this.allRowsSelected=this.hasRowData&&o;this.someRowsSelected=this.hasRowData&&l;this.serializedRows=!!c?this.sortRows(n,c):n;this.checkSlots()}selectableHandler(){if(this.selectable===false){this.selectAllRows.emit({checked:false})}}onClickListener(t){if(t instanceof PointerEvent)t.stopImmediatePropagation()}onSelectAllRows(t){t.stopPropagation();const{checked:e}=t.detail;const a=e?this.serializedRows.map((t=>{if(t.disabled){return t}else{return Object.assign(Object.assign({},t),{selected:e})}})):[];const r=this.select.emit({row:undefined,rows:a,allSelected:e});if(r.defaultPrevented)return;this.serializedRows=this.serializedRows.map((t=>{if(t.disabled)return t;t.selected=e;return t}));this.allRowsSelected=e;this.someRowsSelected=false}render(){const{caption:t}=this;return a("div",{key:"cb59e9cad671af8785e238f54f8ad48ca22edd27",class:"container"},a("table",{key:"34d7f5fad98c735725a8ab2e6b1132d0e195e16f"},t&&a("caption",{key:"35b496b1f60ebe4da86d280a7b7afae4674ec9e8",class:this.hideCaption?"sr":undefined},t),this.renderTableColGroup(),this.renderTableHeader(),this.renderEmptyState(),this.renderTableRows()))}renderTableColGroup(){const{serializedHeaders:t,selectable:e,clickable:r,hasExpandableRows:o,hasDropdowns:l}=this;if(!t.length)return null;return a("colgroup",null,e&&a("col",{class:"select-column"}),t.map((({width:t,backgroundColor:e})=>a("col",{style:{width:t,backgroundColor:e}}))),r&&a("col",{class:"click-column"}),o&&a("col",{class:"expandable-row-control-column"}),l&&a("col",{class:"dropdown-column"}))}renderTableHeader(){const{serializedHeaders:t,selectable:e,clickable:r,hideClickable:o,selectMode:l,hasExpandableRows:c,hasDropdowns:i,allRowsSelected:d,someRowsSelected:s,hasRowData:b,loading:h}=this;if(!t.length)return null;return a("thead",null,a("tr",null,e&&a("th",null,l==="multiple"&&a("q2-checkbox",{label:n("tecton.element.dataTable.selectAllRows"),"hide-label":true,onChange:()=>this.selectAllRows.emit({checked:!d}),checked:b&&d&&!s,indeterminate:b&&s&&!d,disabled:h||!b,"test-id":"select-all-rows-control"})),t.map((t=>{const{align:e,sorted:r,verticalAlign:o}=t;const l=[];if(e)l.push(`align-${e}`);if(o)l.push(`vertical-align-${o}`);if(!!r)l.push("sorted");return a("th",{class:l.join(" "),id:`header-${t.key}`},t.sortable?a("q2-btn",{onClick:()=>this.onSort(t),"test-id":"sort-control",disabled:this.loading},a("div",{class:"header-content","aria-label":t.ariaLabel||undefined},t.title,!!r?a("q2-icon",{class:`sorted-indicator direction-${r}`,type:"arrow-down",label:r==="ASC"?n("tecton.element.dataTable.sortedAscending"):n("tecton.element.dataTable.sortedDescending"),"test-id":"sorted-indicator"}):a("q2-icon",{class:`sorted-indicator`,type:"sort",label:n("tecton.element.dataTable.clickToSort"),"test-id":"sorted-indicator"}))):a("div",{class:"header-content","aria-label":t.ariaLabel||undefined},t.title))})),r&&a("th",{id:"click",class:o?"sr":undefined},a("span",{class:"sr"},n("tecton.element.dataTable.clickRow"))),c&&a("th",{id:"toggle"},a("span",{class:"sr"},n("tecton.element.dataTable.toggleRow"))),i&&a("th",null,a("span",{class:"sr"},n("tecton.element.dataTable.dropdown")))))}renderEmptyState(){const{hasRowData:t,numberOfColumns:e,emptyIcon:r,emptyMessage:o,loading:l}=this;if(t||l)return null;return a("slot",{name:"empty-table"},a("tbody",null,a("tr",{class:"empty-state"},a("td",{colSpan:e},a("div",{class:"empty-state-content"},a("q2-icon",{type:r}),a("p",null,n(o)))))))}renderTableRows(){const{serializedHeaders:t,serializedRows:e,selectable:o,clickable:l,hideClickable:c,selectMode:i,hasExpandableRows:d,hasDropdowns:s,numberOfColumns:b,loading:h}=this;if(h){return a("tbody",null,a("tr",{class:"loading-row"},a("td",{colSpan:b},a("q2-loading",{inline:true}))))}let p=false;let u;if(i==="single"){u=this.selectedRow;p=!!u}const v=[];if(l)v.push("click-column");if(c)v.push("sr");const f=v.join(" ");return a("tbody",null,e.map((e=>{const c=`row-${e.id}-cell`;const i=`row-${e.id}-expandable-content`;const h=`row-${e.id}-dropdown`;const v=d&&!!this.hostElement.querySelector(`[slot="${i}"]`);const g=s&&!!this.hostElement.querySelector(`[slot="${h}"]`);const w=[];if(v)w.push("expandable");if(l)w.push("clickable");if(e.expanded)w.push("expanded");if(e.selected)w.push("selected");const m=l||v;return a(r,null,a("tr",{id:`row-${e.id}`,class:w.join(" "),onClick:m&&(t=>this.onClickTableRow(t,e)),tabIndex:m?-1:undefined},o&&a("td",{class:"select-column",onClick:this.onControlContainerClick},a("q2-checkbox",{label:n("tecton.element.dataTable.selectRow"),"hide-label":true,checked:e.selected,disabled:p&&e!==u||e.disabled,onChange:t=>this.onSelectRow(t,e),"test-id":"select-row-control"})),t.map((({key:t})=>{const r=e.cells[t];const o=r===null||r===void 0?void 0:r.lineClamp;const l=r===null||r===void 0?void 0:r.align;const n=r===null||r===void 0?void 0:r.verticalAlign;const i=[];if(l)i.push(`align-${l}`);if(n)i.push(`vertical-align-${n}`);if(o)i.push("clamped");const d=o?{"--comp-line-clamp-count":`${o}`}:undefined;return a("td",{class:i.join(" "),style:d},a("slot",{name:`${c}-${t}`},this.renderCellContent(r)))})),l&&a("td",{class:f},a("q2-btn",{intent:"neutral",size:"small",onClick:t=>this.onClickRow(t,e),"test-id":"clickable-row-control"},n("tecton.element.dataTable.clickRow"))),d&&a("td",{class:"expandable-row-control-column",onClick:this.onControlContainerClick},v&&a("q2-btn",{onClick:t=>this.onToggleRow(t,e),ariaExpanded:`${e.expanded}`,ariaControls:i,ariaLabel:n("tecton.element.dataTable.toggleRow"),"test-id":"expandable-row-control"},a("q2-icon",{type:"chevron-down",class:"toggle-expandable-row"}))),s&&a("td",{class:"dropdown-column",onClick:this.onControlContainerClick},g&&a("slot",{name:h}))),v&&a("tr",{id:i,class:"expandable-row",hidden:!e.expanded,"aria-hidden":!e.expanded},a("td",{colSpan:b,headers:"toggle"},a("div",{class:"expandable-content"},a("slot",{name:i})))))})))}renderCellContent(t){if(!t)return;const{type:e,ariaLabel:r,value:o}=t;if([undefined,null].includes(o))return;switch(e){case"badge":let e;switch(typeof o){case"string":e=parseFloat(o);break;case"boolean":e=o?1:0;break;default:e=o;break}return a("q2-badge",{"aria-label":r,value:e,theme:t.badgeTheme,status:t.badgeStatus,size:"large"});case"icon":const l=typeof o==="string"?o:`${o}`;return a("q2-icon",{label:r,type:l});case"boolean":return!!o?a("q2-icon",{label:n("tecton.element.dataTable.booleanTrue"),type:"checkmark"}):a("div",{"aria-label":n("tecton.element.dataTable.booleanFalse")});case"code":return a("code",{"aria-label":r},o);default:return a("div",{"aria-label":r},o)}}get hostElement(){return o(this)}static get watchers(){return{headers:["headersHandler"],rows:["rowsHandler"],selectable:["selectableHandler"]}}};d.style=i;export{d as q2_data_table};
2
- //# sourceMappingURL=p-a5b16c01.entry.js.map
1
+ import{r as t,c as e,h as a,F as r,g as o}from"./p-a5f18e27.js";import{r as l,l as n}from"./p-42302f6f.js";const c="*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{display:block}.container{--comp-cell-padding:var(--tct-data-table-cell-padding, var(--tct-table-cell-padding, var(--app-scale-3x, 15px)));--comp-select-column-width:var(--tct-data-table-select-column-width, var(--tct-table-select-column-width, var(--tct-checkbox-size, 20px)));--comp-dropdown-column-width:var(--tct-data-table-dropdown-column-width, var(--tct-table-dropdown-column-width, var(--tct-btn-icon-width, 44px)));--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)));overflow:auto;--comp-scrollbar-size:var(--tct-scrollbar-size, var(--t-scrollbar-size, var(--app-scale-1x, 5px)));--comp-scrollbar-border-radius:var(--tct-scrollbar-border-radius, var(--t-scrollbar-border-radius, var(--app-border-radius-1, 3px)));--comp-scrollbar-color:var(--tct-scrollbar-color, var(--t-scrollbar-color, var(--t-a11y-gray-color, #747474)));scrollbar-width:thin;scrollbar-color:var(--comp-scrollbar-color) transparent}.container::-webkit-scrollbar{width:var(--comp-scrollbar-size);height:var(--comp-scrollbar-size);margin:5px}.container::-webkit-scrollbar-thumb{background:var(--comp-scrollbar-color);border-radius:var(--comp-scrollbar-border-radius)}.container::-webkit-scrollbar-track{background:transparent;border-radius:var(--comp-scrollbar-border-radius)}:host([shadowed]:not([shadowed=false])) .container{box-shadow:var(--tct-data-table-shadow, var(--tct-table-shadow, var(--app-shadow-1, 0 2px 4px rgba(0, 0, 0, 0.3))))}:host([density=compact]) .container{--comp-cell-padding:var(--tct-data-table-cell-padding-compact, var(--tct-table-cell-padding-compact, var(--app-scale-1x, 5px)))}:host([density=comfortable]) .container{--comp-cell-padding:var(--tct-data-table-cell-padding-comfortable, var(--tct-table-cell-padding-comfortable, var(--app-scale-5x, 25px)))}table{table-layout:var(--tct-data-table-layout, var(--tct-table-layout, auto));border-collapse:collapse;border-spacing:0;width:var(--tct-data-table-width, var(--tct-table-width));min-width:100%;background:var(--tct-data-table-background, var(--tct-table-background, var(--t-base, #ffffff)));caption-side:var(--tct-data-table-caption-side, var(--tct-table-caption-side, bottom))}thead{border-width:var(--tct-data-table-header-border-width, var(--tct-table-header-border-width, 0 0 2px 0));border-style:var(--tct-data-table-header-border-style, var(--tct-table-header-border-style, solid));border-color:var(--tct-data-table-header-border-color, var(--tct-table-header-border-color, var(--t-gray-9, #999999)));background:var(--tct-data-table-header-background, var(--tct-table-header-background))}col.select-column{width:var(--comp-select-column-width)}col.expandable-row-control-column{width:var(--comp-expandable-row-control-column-width)}col.dropdown-column{width:var(--comp-dropdown-column-width)}td,th{padding:var(--comp-cell-padding);text-align:start;vertical-align:middle}td.align-end,th.align-end{text-align:end}td.align-center,th.align-center{text-align:center}td.vertical-align-top,th.vertical-align-top{vertical-align:top}td.vertical-align-bottom,th.vertical-align-bottom{vertical-align:bottom}th .header-content{font-weight:var(--tct-data-table-header-font-weight, var(--tct-table-header-font-weight, 600));font-size:var(--tct-data-table-header-font-size, var(--app-font-size, 14px))}th.sorted .header-content{font-weight:var(--tct-data-table-header-sorted-font-weight, var(--tct-table-header-sorted-font-weight, 600))}th .sorted-indicator{--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)));--tct-icon-stroke-width:2;width:var(--comp-header-sortable-icon-size);height:var(--comp-header-sortable-icon-size)}th .sorted-indicator.direction-ASC{transform:rotate(180deg)}th q2-btn .header-content{display:flex;align-items:center;gap:var(--tct-data-table-header-content-gap, var(--tct-table-header-content-gap, var(--app-scale-2x, 10px)))}tr.expandable,tr.clickable{cursor:pointer}tr.expandable:focus,tr.clickable:focus{outline:none;box-shadow:none}tr.expandable:hover{background:var(--tct-data-table-expandable-row-hover-background, var(--tct-table-expandable-row-hover-background, var(--t-gray-14, #f2f2f2)))}tr.clickable:hover{background:var(--tct-data-table-clickable-row-hover-background, var(--tct-table-clickable-row-hover-background, var(--t-gray-14, #f2f2f2)))}tr.selected{background:var(--tct-data-table-selected-row-background, var(--tct-table-selected-row-background, var(--t-gray-14, #f2f2f2)))}tr.expanded{background:var(--tct-data-table-expanded-row-background, var(--tct-table-expanded-row-background, var(--t-gray-14, #f2f2f2)))}tr.expanded .toggle-expandable-row{transform:rotate(180deg)}:host([bordered]:not([bordered=false])) tbody tr{border-width:var(--tct-data-table-row-border-width, var(--tct-table-row-border-width, 0 0 1px 0));border-style:var(--tct-data-table-row-border-style, var(--tct-table-row-border-style, solid));border-color:var(--tct-data-table-row-border-color, var(--tct-table-row-border-color, var(--t-gray-9, #999999)))}tr.loading-row{background:var(--tct-data-table-loading-row-background, var(--tct-table-loading-row-background, var(--t-base, #ffffff)))}tr.loading-row td{text-align:center}tr.loading-row q2-loading{font-size:4em}tr.empty-state{background:var(--tct-data-table-loading-row-background, var(--t-base, #ffffff))}tr.empty-state td{text-align:center}tr.empty-state .empty-state-content{display:flex;flex-direction:column;align-items:center;padding-top:var(--app-scale-10x, 50px);padding-bottom:var(--app-scale-10x, 50px);gap:var(--app-scale-4x, 20px);--tct-icon-size:var(--app-scale-6x, 30px)}tr.expandable-row{background:var(--tct-data-table-expanded-row-background, var(--tct-table-expanded-row-background, var(--t-gray-14, #f2f2f2)))}td.clamped div{text-overflow:ellipsis;overflow:hidden;display:-webkit-box;-webkit-line-clamp:var(--comp-line-clamp-count, 1);-webkit-box-orient:vertical}td.expandable-row-control-column{--tct-btn-icon-hover-bg:transparent;padding:var(--tct-data-table-expandable-row-control-column-padding, var(--tct-table-expandable-row-control-column-padding, 0 5px));text-align:center}td.dropdown-column{padding:var(--tct-data-table-dropdown-column-padding, var(--tct-table-dropdown-column-padding, 0 5px));text-align:center}td.click-column:not(.sr){padding:var(--tct-data-table-clickable-column-padding, var(--tct-table-clickable-column-padding, 0 5px));text-align:center}caption{padding:var(--tct-data-table-caption-padding, var(--tct-table-caption-padding, var(--app-scale-2x, 10px)));font-size:var(--tct-data-table-caption-font-size, var(--tct-table-caption-font-size, inherit));font-weight:var(--tct-data-table-caption-font-weight, var(--tct-table-caption-font-weight, 600));text-align:var(--tct-data-table-caption-text-align, var(--tct-table-caption-text-align, center));color:var(--tct-data-table-caption-color, var(--tct-table-caption-color, inherit))}q2-checkbox{padding:0}";const i=c;const d=class{constructor(a){t(this,a);this.select=e(this,"select",7);this.click=e(this,"click",7);this.toggle=e(this,"toggle",7);this.sort=e(this,"sort",7);this.selectAllRows=e(this,"selectAllRows",7);this.checkSlots=()=>{var t,e,a,r;this.hasExpandableRows=!!((e=(t=this.hostElement)===null||t===void 0?void 0:t.querySelector(`[slot$="-expandable-content"]`))!==null&&e!==void 0?e:false);this.hasDropdowns=!!((r=(a=this.hostElement)===null||a===void 0?void 0:a.querySelector(`[slot$="-dropdown"]`))!==null&&r!==void 0?r:false);this.checkSlotCount+=1};this.onSort=t=>{const e=t.sorted==="ASC"?"DESC":"ASC";const a=t.key;const r=this.sort.emit({header:t,direction:e});if(r.defaultPrevented)return;this.serializedHeaders=this.serializedHeaders.map((t=>{const r=a===t.key?e:undefined;return Object.assign(Object.assign({},t),{sorted:r})}));this.serializedRows=this.sortRows(this.serializedRows,Object.assign(Object.assign({},t),{sorted:e}))};this.onSelectRow=(t,e)=>{t.stopPropagation();const{selectMode:a,serializedRows:r,selectedRows:o}=this;const{checked:l}=t.detail;const n=Object.assign(Object.assign({},e),{selected:l});let c;if(a==="single"){c=l?[n]:[]}else{c=l?[...o,n]:o.filter((t=>t.id!==n.id))}const i=c.length===r.length;const d=!i&&c.length>0;const s=this.select.emit({row:n,rows:c,allSelected:i});if(s.defaultPrevented)return;this.serializedRows=this.serializedRows.map((t=>t.id===n.id?n:t));this.allRowsSelected=i;this.someRowsSelected=d};this.onClickTableRow=(t,e)=>{if(this.clickable){this.onClickRow(t,e)}else if(this.hasExpandableRows){this.onToggleRow(t,e)}};this.onClickRow=(t,e)=>{t.stopPropagation();this.click.emit({row:e})};this.onToggleRow=(t,e)=>{t.stopPropagation();const a=Object.assign(Object.assign({},e),{expanded:!e.expanded});const r=this.toggle.emit({row:a});if(r.defaultPrevented)return;this.serializedRows=this.serializedRows.map((t=>{if(t.id===a.id)return a;else return Object.assign({},t)}))};this.onControlContainerClick=t=>{t.stopPropagation()};this.bordered=undefined;this.clickable=undefined;this.caption=undefined;this.density=undefined;this.emptyIcon="inbox";this.emptyMessage="tecton.element.dataTable.emptyMessage";this.headers=undefined;this.hideCaption=undefined;this.hideClickable=undefined;this.loading=undefined;this.rows=undefined;this.selectable=undefined;this.selectMode="multiple";this.shadowed=undefined;this.serializedHeaders=[];this.serializedRows=[];this.hasExpandableRows=false;this.hasDropdowns=false;this.allRowsSelected=false;this.someRowsSelected=false;this.hasRowData=false;this.checkSlotCount=0}componentWillLoad(){this.headersHandler(this.headers);this.rowsHandler(this.rows)}componentDidLoad(){if(typeof MutationObserver!=="undefined"){const t=new MutationObserver((()=>this.checkSlots()));t.observe(this.hostElement,{childList:true,subtree:true,attributes:true});this.mutationObserver=t}if(typeof ResizeObserver!=="undefined"){this.resizeObserver=new ResizeObserver((()=>l()));this.resizeObserver.observe(this.hostElement)}}disconnectedCallback(){if(this.mutationObserver){this.mutationObserver.disconnect();this.mutationObserver=null}if(this.resizeObserver){this.resizeObserver.disconnect();this.resizeObserver=null}}get selectedRows(){return this.serializedRows.filter((({selected:t})=>t))}get selectedRow(){return this.selectedRows.find((({selected:t})=>!!t))}get numberOfColumns(){var t,e;return((e=(t=this.serializedHeaders)===null||t===void 0?void 0:t.length)!==null&&e!==void 0?e:0)+(this.selectable?1:0)+(this.clickable?1:0)+(this.hasExpandableRows?1:0)+(this.hasDropdowns?1:0)}get mappedHeaders(){return this.serializedHeaders.reduce(((t,e)=>{t[e.key]=e;return t}),{})}sortRows(t,e){const{key:a,sorted:r}=e;const o=r||"ASC";const l=[...t].sort(((t,e)=>{const r=t.cells[a].value;const l=e.cells[a].value;if(r<l)return o==="ASC"?-1:1;if(r>l)return o==="ASC"?1:-1;return 0}));return l}headersHandler(t=[]){this.serializedHeaders=t.map((t=>{const{title:e}=t;let{key:a}=t;if(!a)a=e.toLowerCase().replace(/\s/g,"-");return Object.assign({key:a},t)}))}rowsHandler(t=[]){const{serializedHeaders:e,mappedHeaders:a}=this;const r={id:null,cells:{},selected:false,expanded:false,disabled:false};let o=true;let l=false;const n=t.map((({id:t,cells:e,selected:n,expanded:c,disabled:i})=>{const d=Object.entries(e).reduce(((t,[e,r])=>{const o=a[e]||{};const{align:l,type:n="text",lineClamp:c,verticalAlign:i}=o;const d="type"in o&&o.type==="badge";const s={value:"",ariaLabel:undefined,type:n,align:l,lineClamp:c,verticalAlign:i,badgeStatus:d?o.badgeStatus:undefined,badgeTheme:d?o.badgeTheme:undefined};const b=typeof r==="object"?Object.assign(Object.assign({},s),r):Object.assign(Object.assign({},s),{value:r});t[e]=b;return t}),{});if(o&&!n)o=false;if(!o&&n)l=true;return Object.assign(Object.assign({},r),{id:t,selected:!!n,expanded:!!c,disabled:!!i,cells:d})}));const c=e.find((({sorted:t})=>t));this.hasRowData=!!t.length;this.allRowsSelected=this.hasRowData&&o;this.someRowsSelected=this.hasRowData&&l;this.serializedRows=!!c?this.sortRows(n,c):n;this.checkSlots()}selectableHandler(){if(this.selectable===false){this.selectAllRows.emit({checked:false})}}onClickListener(t){if(t instanceof PointerEvent)t.stopImmediatePropagation()}onSelectAllRows(t){t.stopPropagation();const{checked:e}=t.detail;const a=e?this.serializedRows.map((t=>{if(t.disabled){return t}else{return Object.assign(Object.assign({},t),{selected:e})}})):[];const r=this.select.emit({row:undefined,rows:a,allSelected:e});if(r.defaultPrevented)return;this.serializedRows=this.serializedRows.map((t=>{if(t.disabled)return t;t.selected=e;return t}));this.allRowsSelected=e;this.someRowsSelected=false}render(){const{caption:t}=this;return a("div",{key:"80254b3be363aec5becf47304fd9b317744bd17c",class:"container"},a("table",{key:"d70888844091f555b18ebed88ed788cd8e1b8cd5"},t&&a("caption",{key:"df58d2ac5af6c24ef2415eb894bd89f2d631607f",class:this.hideCaption?"sr":undefined},t),this.renderTableColGroup(),this.renderTableHeader(),this.renderEmptyState(),this.renderTableRows()))}renderTableColGroup(){const{serializedHeaders:t,selectable:e,clickable:r,hasExpandableRows:o,hasDropdowns:l}=this;if(!t.length)return null;return a("colgroup",null,e&&a("col",{class:"select-column"}),t.map((({width:t,backgroundColor:e})=>a("col",{style:{width:t,backgroundColor:e}}))),r&&a("col",{class:"click-column"}),o&&a("col",{class:"expandable-row-control-column"}),l&&a("col",{class:"dropdown-column"}))}renderTableHeader(){const{serializedHeaders:t,selectable:e,clickable:r,hideClickable:o,selectMode:l,hasExpandableRows:c,hasDropdowns:i,allRowsSelected:d,someRowsSelected:s,hasRowData:b,loading:h}=this;if(!t.length)return null;return a("thead",null,a("tr",null,e&&a("th",null,l==="multiple"&&a("q2-checkbox",{label:n("tecton.element.dataTable.selectAllRows"),"hide-label":true,onChange:()=>this.selectAllRows.emit({checked:!d}),checked:b&&d&&!s,indeterminate:b&&s&&!d,disabled:h||!b,"test-id":"select-all-rows-control"})),t.map((t=>{const{align:e,sorted:r,verticalAlign:o}=t;const l=[];if(e)l.push(`align-${e}`);if(o)l.push(`vertical-align-${o}`);if(!!r)l.push("sorted");return a("th",{class:l.join(" "),id:`header-${t.key}`},t.sortable?a("q2-btn",{onClick:()=>this.onSort(t),"test-id":"sort-control",disabled:this.loading},a("div",{class:"header-content","aria-label":t.ariaLabel||undefined},t.title,!!r?a("q2-icon",{class:`sorted-indicator direction-${r}`,type:"arrow-down",label:r==="ASC"?n("tecton.element.dataTable.sortedAscending"):n("tecton.element.dataTable.sortedDescending"),"test-id":"sorted-indicator"}):a("q2-icon",{class:`sorted-indicator`,type:"sort",label:n("tecton.element.dataTable.clickToSort"),"test-id":"sorted-indicator"}))):a("div",{class:"header-content","aria-label":t.ariaLabel||undefined},t.title))})),r&&a("th",{id:"click",class:o?"sr":undefined},a("span",{class:"sr"},n("tecton.element.dataTable.clickRow"))),c&&a("th",{id:"toggle"},a("span",{class:"sr"},n("tecton.element.dataTable.toggleRow"))),i&&a("th",null,a("span",{class:"sr"},n("tecton.element.dataTable.dropdown")))))}renderEmptyState(){const{hasRowData:t,numberOfColumns:e,emptyIcon:r,emptyMessage:o,loading:l}=this;if(t||l)return null;return a("slot",{name:"empty-table"},a("tbody",null,a("tr",{class:"empty-state"},a("td",{colSpan:e},a("div",{class:"empty-state-content"},a("q2-icon",{type:r}),a("p",null,n(o)))))))}renderTableRows(){const{serializedHeaders:t,serializedRows:e,selectable:o,clickable:l,hideClickable:c,selectMode:i,hasExpandableRows:d,hasDropdowns:s,numberOfColumns:b,loading:h}=this;if(h){return a("tbody",null,a("tr",{class:"loading-row"},a("td",{colSpan:b},a("q2-loading",{inline:true}))))}let p=false;let u;if(i==="single"){u=this.selectedRow;p=!!u}const v=[];if(l)v.push("click-column");if(c)v.push("sr");const f=v.join(" ");return a("tbody",null,e.map((e=>{const c=`row-${e.id}-cell`;const i=`row-${e.id}-expandable-content`;const h=`row-${e.id}-dropdown`;const v=d&&!!this.hostElement.querySelector(`[slot="${i}"]`);const g=s&&!!this.hostElement.querySelector(`[slot="${h}"]`);const w=[];if(v)w.push("expandable");if(l)w.push("clickable");if(e.expanded)w.push("expanded");if(e.selected)w.push("selected");const m=l||v;return a(r,null,a("tr",{id:`row-${e.id}`,class:w.join(" "),onClick:m&&(t=>this.onClickTableRow(t,e)),tabIndex:m?-1:undefined},o&&a("td",{class:"select-column",onClick:this.onControlContainerClick},a("q2-checkbox",{label:n("tecton.element.dataTable.selectRow"),"hide-label":true,checked:e.selected,disabled:p&&e!==u||e.disabled,onChange:t=>this.onSelectRow(t,e),"test-id":"select-row-control"})),t.map((({key:t})=>{const r=e.cells[t];const o=r===null||r===void 0?void 0:r.lineClamp;const l=r===null||r===void 0?void 0:r.align;const n=r===null||r===void 0?void 0:r.verticalAlign;const i=[];if(l)i.push(`align-${l}`);if(n)i.push(`vertical-align-${n}`);if(o)i.push("clamped");const d=o?{"--comp-line-clamp-count":`${o}`}:undefined;return a("td",{class:i.join(" "),style:d},a("slot",{name:`${c}-${t}`},this.renderCellContent(r)))})),l&&a("td",{class:f},a("q2-btn",{intent:"neutral",size:"small",onClick:t=>this.onClickRow(t,e),"test-id":"clickable-row-control"},n("tecton.element.dataTable.clickRow"))),d&&a("td",{class:"expandable-row-control-column",onClick:this.onControlContainerClick},v&&a("q2-btn",{onClick:t=>this.onToggleRow(t,e),ariaExpanded:`${e.expanded}`,ariaControls:i,ariaLabel:n("tecton.element.dataTable.toggleRow"),"test-id":"expandable-row-control"},a("q2-icon",{type:"chevron-down",class:"toggle-expandable-row"}))),s&&a("td",{class:"dropdown-column",onClick:this.onControlContainerClick},g&&a("slot",{name:h}))),v&&a("tr",{id:i,class:"expandable-row",hidden:!e.expanded,"aria-hidden":!e.expanded},a("td",{colSpan:b,headers:"toggle"},a("div",{class:"expandable-content"},a("slot",{name:i})))))})))}renderCellContent(t){if(!t)return;const{type:e,ariaLabel:r,value:o}=t;if([undefined,null].includes(o))return;switch(e){case"badge":let e;switch(typeof o){case"string":e=parseFloat(o);break;case"boolean":e=o?1:0;break;default:e=o;break}return a("q2-badge",{"aria-label":r,value:e,theme:t.badgeTheme,status:t.badgeStatus,size:"large"});case"icon":const l=typeof o==="string"?o:`${o}`;return a("q2-icon",{label:r,type:l});case"boolean":return!!o?a("q2-icon",{label:n("tecton.element.dataTable.booleanTrue"),type:"checkmark"}):a("div",{"aria-label":n("tecton.element.dataTable.booleanFalse")});case"code":return a("code",{"aria-label":r},o);default:return a("div",{"aria-label":r},o)}}get hostElement(){return o(this)}static get watchers(){return{headers:["headersHandler"],rows:["rowsHandler"],selectable:["selectableHandler"]}}};d.style=i;export{d as q2_data_table};
2
+ //# sourceMappingURL=p-d9e19f70.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["q2DataTableCss","Q2DataTableStyle0","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","onSelectRow","event","row","stopPropagation","selectMode","selectedRows","currentlySelectedRows","checked","detail","selectedRow","selected","filter","id","allRowsSelected","length","isIndeterminate","selectEvent","select","rows","allSelected","someRowsSelected","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","disabled","isAllSelected","serializedCells","entries","cellKey","cellData","align","type","lineClamp","verticalAlign","isBadge","defaultCell","ariaLabel","badgeStatus","badgeTheme","result","sortedHeader","hasRowData","selectableHandler","selectAllRows","onClickListener","PointerEvent","stopImmediatePropagation","onSelectAllRows","render","caption","h","class","hideCaption","renderTableColGroup","renderTableHeader","renderEmptyState","renderTableRows","width","backgroundColor","style","hideClickable","loading","label","loc","onChange","indeterminate","headerClasses","push","join","sortable","onClick","emptyIcon","emptyMessage","name","colSpan","inline","isSelectDisabled","clickableClasses","clickableClassString","cellSlotPrefix","expandableRowName","dropdownCellName","rowHasExpandableSlot","rowHasDropdownSlot","rowClasses","rowIsClickable","Fragment","e","tabIndex","cell","cellAlign","cellVerticalAlign","cellClasses","cellStyles","renderCellContent","intent","size","ariaExpanded","ariaControls","hidden","includes","valueAsInt","parseFloat","theme","status","valueAsString"],"sources":["src/components/q2-data-table/q2-data-table.scss?tag=q2-data-table&encapsulation=shadow","src/components/q2-data-table/q2-data-table.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(\n --tct-data-table-select-column-width,\n --tct-table-select-column-width,\n --tct-checkbox-size,\n 20px\n )};\n --comp-dropdown-column-width: #{var-list(\n --tct-data-table-dropdown-column-width,\n --tct-table-dropdown-column-width,\n --tct-btn-icon-width,\n 44px\n )};\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(\n --tct-data-table-shadow,\n --tct-table-shadow,\n --app-shadow-1,\n unquote('0 2px 4px rgba(0, 0, 0, 0.3)')\n );\n }\n\n :host([density='compact']) & {\n --comp-cell-padding: #{var-list(\n --tct-data-table-cell-padding-compact,\n --tct-table-cell-padding-compact,\n --app-scale-1x,\n 5px\n )};\n }\n\n :host([density='comfortable']) & {\n --comp-cell-padding: #{var-list(\n --tct-data-table-cell-padding-comfortable,\n --tct-table-cell-padding-comfortable,\n --app-scale-5x,\n 25px\n )};\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 vertical-align: middle;\n\n &.align-end {\n text-align: end;\n }\n &.align-center {\n text-align: center;\n }\n &.vertical-align-top {\n vertical-align: top;\n }\n &.vertical-align-bottom {\n vertical-align: bottom;\n }\n}\n\nth {\n .header-content {\n font-weight: var-list(--tct-data-table-header-font-weight, --tct-table-header-font-weight, 600);\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(\n --tct-data-table-header-sorted-font-weight,\n --tct-table-header-sorted-font-weight,\n 600\n );\n }\n }\n\n .sorted-indicator {\n --comp-header-sortable-icon-size: #{var-list(\n --tct-data-table-header-sortable-icon-size,\n --tct-table-header-sortable-icon-size,\n --app-scale-3x,\n 15px\n )};\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(\n --tct-data-table-expandable-row-hover-background,\n --tct-table-expandable-row-hover-background,\n --t-gray-14,\n #f2f2f2\n );\n }\n }\n\n &.clickable {\n &:hover {\n background: var-list(\n --tct-data-table-clickable-row-hover-background,\n --tct-table-clickable-row-hover-background,\n --t-gray-14,\n #f2f2f2\n );\n }\n }\n\n &.selected {\n background: var-list(\n --tct-data-table-selected-row-background,\n --tct-table-selected-row-background,\n --t-gray-14,\n #f2f2f2\n );\n }\n\n &.expanded {\n background: var-list(\n --tct-data-table-expanded-row-background,\n --tct-table-expanded-row-background,\n --t-gray-14,\n #f2f2f2\n );\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(\n --tct-data-table-loading-row-background,\n --tct-table-loading-row-background,\n --t-base,\n #ffffff\n );\n td {\n text-align: center;\n }\n\n q2-loading {\n font-size: 4em;\n }\n }\n\n &.empty-state {\n background: var-list(--tct-data-table-loading-row-background, --t-base, #ffffff);\n td {\n text-align: center;\n }\n .empty-state-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n padding-top: var(--app-scale-10x, 50px);\n padding-bottom: var(--app-scale-10x, 50px);\n gap: var(--app-scale-4x, 20px);\n --tct-icon-size: var(--app-scale-6x, 30px);\n }\n }\n\n &.expandable-row {\n background: var-list(\n --tct-data-table-expanded-row-background,\n --tct-table-expanded-row-background,\n --t-gray-14,\n #f2f2f2\n );\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(\n --tct-data-table-expandable-row-control-column-padding,\n --tct-table-expandable-row-control-column-padding,\n unquote('0 5px')\n );\n text-align: center;\n }\n\n &.dropdown-column {\n padding: var-list(\n --tct-data-table-dropdown-column-padding,\n --tct-table-dropdown-column-padding,\n unquote('0 5px')\n );\n text-align: center;\n }\n\n &.click-column:not(.sr) {\n padding: var-list(\n --tct-data-table-clickable-column-padding,\n --tct-table-clickable-column-padding,\n unquote('0 5px')\n );\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';\n\nexport type Q2DataTableCellType =\n | {\n // defines the type of cell\n type?: 'text' | 'number' | 'icon' | 'boolean' | 'code';\n }\n | {\n // when type='badge'\n type?: 'badge';\n badgeStatus?: HTMLQ2BadgeElement['status'];\n badgeTheme?: HTMLQ2BadgeElement['theme'];\n };\n\nexport type Q2DataTableHeader = {\n title: string;\n align?: Q2DataTableCellAlignOptions;\n // Will be autogenerated from the title if not provided\n // The key is used to grab the data from the row data\n key?: string;\n // Enables sorting for this column when true\n sortable?: boolean;\n width?: string;\n // defines background for the column\n backgroundColor?: string;\n sorted?: 'ASC' | 'DESC';\n ariaLabel?: string;\n lineClamp?: number;\n verticalAlign?: 'top' | 'bottom';\n} & Partial<Q2DataTableCellType>;\n\nexport type Q2DataTableCell = {\n value: string | number | boolean;\n align?: Q2DataTableCellAlignOptions;\n ariaLabel?: string;\n lineClamp?: number;\n verticalAlign?: 'top' | 'bottom';\n} & Q2DataTableCellType;\n\nexport type Q2DataTableBaseRow = {\n id: string | number;\n selected?: boolean;\n expanded?: boolean;\n disabled?: 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({ tag: 'q2-data-table', shadow: true, styleUrl: 'q2-data-table.scss' })\nexport class Q2DataTable implements ComponentInterface {\n /** Adds a border between each row for the table. */\n @Prop({ mutable: true, reflect: true }) bordered: boolean;\n\n /** Adds the ability to click a row and have the table emit an event with the selected row's data. */\n @Prop({ mutable: true, reflect: true }) clickable: boolean;\n\n /** Provides a caption for the data table. */\n @Prop({ mutable: true }) caption: string;\n\n /** Determines the amount of padding for each of the cells in the table. */\n @Prop({ mutable: true, reflect: true }) density: 'compact' | 'normal' | 'comfortable';\n\n /** Determines the `q2-icon` that will display when `rows` has no value. */\n @Prop({ reflect: true }) emptyIcon: string = 'inbox';\n\n /** Determines the message that will display when `rows` has no value.\n * @localizable\n */\n @Prop({ reflect: true }) emptyMessage: string = 'tecton.element.dataTable.emptyMessage';\n\n /**\n * Defines the headers of the table.\n *\n * @snippet\n * element.headers = [\n * {\n * title: 'Day of the Week',\n * key: 'day',\n * },\n * {\n * title: 'Sales',\n * key: 'sales',\n * align: 'end',\n * }\n * ]\n *\n */\n @Prop({ mutable: true }) headers: Q2DataTableHeader[];\n\n /** Hides the caption from view, but still makes it available to screen readers for accessibility purposes. */\n @Prop({ mutable: true, reflect: true }) hideCaption: boolean;\n\n /**\n * Visually hides the `Select` button that displays when `clickable=true`. It will still be discoverable by assistive technologies.\n *\n * @info\n * Use of this property requires `clickable` to be set to `true`.\n */\n @Prop({ mutable: true }) hideClickable: boolean;\n\n /** Displays a loading state on the table to indicate background activity. */\n @Prop({ mutable: true, reflect: true }) loading: boolean;\n\n /**\n * Defines the rows of the table.\n *\n * @snippet\n * element.rows = [\n * {\n * id: 1,\n * cells: {\n * day: 'Monday',\n * sales: 93\n * }\n * },\n * {\n * id: 2,\n * cells: {\n * day: 'Tuesday',\n * sales: 127\n * }\n * },\n * {\n * id: 3,\n * cells: {\n * day: 'Wednesday',\n * sales: 121\n * }\n * ]\n */\n @Prop({ mutable: true }) rows: Q2DataTableRow[];\n\n /** Adds a checkbox to each row of the table making it selectable. */\n @Prop({ mutable: true, reflect: true }) selectable: boolean;\n\n /**\n * Determines if the selectable checkboxes allow for multi-select or not. If set to \"single\", once a row is selected, all other rows will be disabled.\n * See the documentation on the `select` event for how to handle selections.\n *\n * @warning\n * Use of this property requires `selectable` to be set to `true`.\n */\n @Prop({ mutable: true }) selectMode: 'multiple' | 'single' = 'multiple';\n\n /** Adds a shadow to the table */\n @Prop({ mutable: true, reflect: true }) shadowed: boolean;\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() someRowsSelected: boolean = false;\n @State() hasRowData: boolean = false;\n @State() checkSlotCount: number = 0;\n\n /**\n * Emitted when a row is selected.\n *\n * Requires the `selectable` prop to be set to `true`.\n *\n * Call `event.preventDefault()` to prevent the default selection behavior.\n */\n @Event() select: EventEmitter<{\n row: Q2DataTableSerializedRow;\n rows: Q2DataTableSerializedRow[];\n allSelected: boolean;\n }>;\n\n /**\n * Emitted when a row is clicked.\n *\n * Requires the `clickable` prop to be set to `true`.\n *\n * Call `event.preventDefault()` to prevent the default click behavior.\n */\n @Event() click: EventEmitter<{ row: Q2DataTableSerializedRow }>;\n\n /**\n * Emitted when an expandable row is toggled.\n *\n * Requires content in the `row-{id}-expandable-content` slot.\n *\n * Call `event.preventDefault()` to prevent the default toggling behavior.\n */\n @Event() toggle: EventEmitter<{ row: Q2DataTableSerializedRow }>;\n\n /**\n * Emitted when a column is sorted.\n *\n * Requires the `sortable` prop to be set to `true` on the column.\n *\n * Call `event.preventDefault()` to prevent the default sorting behavior.\n */\n @Event() sort: EventEmitter<{ header: Q2DataTableHeader; direction: 'ASC' | 'DESC' }>;\n\n /**\n * Emitted when the select-all checkbox is toggled.\n *\n * Requires the `selectable` prop to be set to `true` and the `selectMode` prop to be set to `multiple`.\n *\n * Call `event.preventDefault()` to prevent the default behavior.\n */\n @Event() selectAllRows: EventEmitter<{ checked: boolean }>;\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, even if the slot has 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 disabled: false,\n };\n\n // tracks if the select-all checkbox should be visually updated as the `rows` are built\n let isAllSelected = true;\n let isIndeterminate = false;\n\n const serializedRows = rows.map(({ id, cells, selected, expanded, disabled }) => {\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, verticalAlign } = 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 verticalAlign,\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\n if (isAllSelected && !selected) isAllSelected = false;\n if (!isAllSelected && selected) isIndeterminate = true;\n return {\n ...defaultRow,\n id,\n selected: !!selected,\n expanded: !!expanded,\n disabled: !!disabled,\n cells: serializedCells,\n };\n });\n\n const sortedHeader = serializedHeaders.find(({ sorted }) => sorted);\n\n this.hasRowData = !!rows.length;\n this.allRowsSelected = this.hasRowData && isAllSelected;\n this.someRowsSelected = this.hasRowData && isIndeterminate;\n\n this.serializedRows = !!sortedHeader ? this.sortRows(serializedRows, sortedHeader) : serializedRows;\n this.checkSlots();\n }\n\n @Watch('selectable')\n selectableHandler() {\n if (this.selectable === false) {\n this.selectAllRows.emit({ checked: false });\n }\n }\n\n /// Listeners ///\n @Listen('click')\n onClickListener(event: MouseEvent) {\n if (event instanceof PointerEvent) event.stopImmediatePropagation();\n }\n\n @Listen('selectAllRows')\n onSelectAllRows(event: CustomEvent<{ checked: boolean }>) {\n event.stopPropagation();\n const { checked } = event.detail;\n const selectedRows = checked\n ? this.serializedRows.map(row => {\n if (row.disabled) {\n return row;\n } else {\n return {\n ...row,\n selected: checked,\n };\n }\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 if (row.disabled) return row;\n row.selected = checked;\n return row;\n });\n this.allRowsSelected = checked;\n this.someRowsSelected = false;\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 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 isIndeterminate = !allRowsSelected && selectedRows.length > 0;\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 this.someRowsSelected = isIndeterminate;\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.renderEmptyState()}\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 allRowsSelected,\n someRowsSelected,\n hasRowData,\n loading,\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.selectAllRows.emit({ checked: !allRowsSelected })}\n checked={hasRowData && allRowsSelected && !someRowsSelected}\n indeterminate={hasRowData && someRowsSelected && !allRowsSelected}\n disabled={loading || !hasRowData}\n test-id=\"select-all-rows-control\"\n ></q2-checkbox>\n )}\n </th>\n )}\n {headers.map(header => {\n const { align, sorted, verticalAlign } = header;\n const headerClasses = [];\n if (align) headerClasses.push(`align-${align}`);\n if (verticalAlign) headerClasses.push(`vertical-align-${verticalAlign}`);\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 renderEmptyState() {\n const { hasRowData, numberOfColumns, emptyIcon, emptyMessage, loading } = this;\n if (hasRowData || loading) return null;\n\n return (\n <slot name=\"empty-table\">\n <tbody>\n <tr class=\"empty-state\">\n <td colSpan={numberOfColumns}>\n <div class=\"empty-state-content\">\n <q2-icon type={emptyIcon}></q2-icon>\n <p>{loc(emptyMessage)}</p>\n </div>\n </td>\n </tr>\n </tbody>\n </slot>\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 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) || row.disabled}\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 cellVerticalAlign = cell?.verticalAlign;\n const cellClasses = [];\n if (cellAlign) cellClasses.push(`align-${cellAlign}`);\n if (cellVerticalAlign) cellClasses.push(`vertical-align-${cellVerticalAlign}`);\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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"}
@@ -1,2 +1,2 @@
1
- import{r as t,c as e,h as i,F as o,g as a}from"./p-a5f18e27.js";import{l as s,w as r}from"./p-5c46acb8.js";const n='*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}@keyframes showBackdrop{from{opacity:0}}@keyframes hideBackdrop{to{opacity:0}}dialog{--comp-border-radius-default:var(--app-scale-3x, 15px) var(--app-scale-3x, 15px) 0 0;--comp-border-radius:var(--tct-action-sheet-border-radius, var(--comp-border-radius-default));--comp-desktop-border-radius:var(--tct-action-sheet-border-radius, var(--app-scale-3x, 15px));--comp-close-button-size:var(--tct-action-sheet-close-button-size, var(--t-a11y-min-size, 44px));--comp-header-height:var(--tct-action-sheet-header-height, var(--t-a11y-min-size, 44px));--comp-dialog-background:var(--tct-action-sheet-background, var(--t-base, #ffffff));--comp-dialog-color:var(--tct-action-sheet-color, var(--t-text, #4d4d4d));--comp-dialog-padding:var(--tct-action-sheet-padding, var(--app-scale-3x, 15px));--comp-content-gradient-height:var(--tct-action-sheet-content-gradient-height, var(--app-scale-2x, 10px));--comp-dialog-gap:var(--tct-action-sheet-gap, var(--app-scale-2x, 10px));--comp-dialog-max-width:var(--tct-action-sheet-max-width, 400px);--comp-dialog-max-height:var(--tct-action-sheet-max-height, var(--comp-action-sheet-computed-max-height, 75vh));--comp-dialog-min-height:var(--tct-action-sheet-min-height, var(--comp-action-sheet-computed-min-height, 20vh));--comp-dialog-box-shadow:var(--tct-action-sheet-box-shadow, var(--app-shadow-2, 0 3px 6px rgba(0, 0, 0, 0.3)));position:fixed;top:100%;bottom:unset;color:var(--comp-dialog-color);background:var(--comp-dialog-background);transition:transform var(--tct-action-sheet-tween, var(--app-tween-2, 0.4s ease)), opacity var(--tct-action-sheet-tween, var(--app-tween-2, 0.4s ease));width:100%;max-width:var(--comp-dialog-max-width);border:0;border-radius:var(--comp-border-radius);box-shadow:var(--comp-dialog-box-shadow);padding:0;height:auto;overflow:hidden;min-height:var(--comp-dialog-min-height);max-height:var(--comp-dialog-max-height)}dialog::backdrop{opacity:0;background:var(--tct-action-sheet-backdrop-background, var(--t-top-a2, rgba(13, 13, 13, 0.6)))}dialog[open].is-opening,dialog[open].is-open{transform:translateY(-100%)}@media screen and (min-width: 1200px){dialog[open].is-opening,dialog[open].is-open{opacity:1;transform:translateY(0)}}dialog[open].is-opening::backdrop,dialog[open].is-open::backdrop{opacity:1;animation:showBackdrop var(--tct-action-sheet-tween, var(--app-tween-2, 0.4s ease))}dialog[open].is-closing{transform:translateY(10%)}dialog[open].is-closing::backdrop{animation:hideBackdrop var(--tct-action-sheet-tween, var(--app-tween-2, 0.4s ease))}@media screen and (min-width: 1200px){dialog{border-radius:var(--comp-desktop-border-radius);top:0px;bottom:0px;height:fit-content;transform:translateY(10%);opacity:0}}.content{overflow-y:auto;--comp-scrollbar-size:var(--tct-scrollbar-size, var(--t-scrollbar-size, var(--app-scale-1x, 5px)));--comp-scrollbar-border-radius:var(--tct-scrollbar-border-radius, var(--t-scrollbar-border-radius, var(--app-border-radius-1, 3px)));--comp-scrollbar-color:var(--tct-scrollbar-color, var(--t-scrollbar-color, var(--t-a11y-gray-color, #747474)));scrollbar-width:thin;scrollbar-color:var(--comp-scrollbar-color) transparent}.content::-webkit-scrollbar{width:var(--comp-scrollbar-size);height:var(--comp-scrollbar-size);margin:5px}.content::-webkit-scrollbar-thumb{background:var(--comp-scrollbar-color);border-radius:var(--comp-scrollbar-border-radius)}.content::-webkit-scrollbar-track{background:transparent;border-radius:var(--comp-scrollbar-border-radius)}.interior{display:grid;grid-template-rows:44px 1fr auto;gap:var(--comp-dialog-gap);max-height:calc(var(--comp-dialog-max-height) - var(--comp-dialog-padding));padding:var(--comp-dialog-padding)}.interior.is-list header,.interior.is-list footer{position:relative}.interior.is-list header:before,.interior.is-list footer:before{content:"";display:block;position:absolute;left:0;height:var(--comp-content-gradient-height);width:100%;z-index:1}header{display:grid;grid-template-columns:var(--comp-close-button-size) 1fr var(--comp-close-button-size);grid-template-areas:". title close";gap:var(--comp-dialog-gap)}header .title{grid-area:title;text-align:center;line-height:var(--comp-header-height)}header .btn-close{grid-area:close;width:var(--comp-close-button-size);height:var(--comp-close-button-size)}footer{display:flex;justify-content:end}';const c=n;var d=undefined&&undefined.__rest||function(t,e){var i={};for(var o in t)if(Object.prototype.hasOwnProperty.call(t,o)&&e.indexOf(o)<0)i[o]=t[o];if(t!=null&&typeof Object.getOwnPropertySymbols==="function")for(var a=0,o=Object.getOwnPropertySymbols(t);a<o.length;a++){if(e.indexOf(o[a])<0&&Object.prototype.propertyIsEnumerable.call(t,o[a]))i[o[a]]=t[o[a]]}return i};const l=class{constructor(a){t(this,a);this.close=e(this,"close",7);this.ready=e(this,"ready",3);this.initialSelectedOptions=[];this.selectedOptions={values:[],value:""};this.minHeight=.2;this.maxHeight=.75;this.generateOption=t=>{const e=document.createElement("q2-option");const i=d(t,[]);if(t.innerHTML)e.innerHTML=t.innerHTML;Object.entries(i).forEach((([t,i])=>{if(i===undefined)return;if(typeof i==="boolean"){if(i)e.setAttribute(t,"")}else{e.setAttribute(t,i)}}));return e};this.generateOptgroup=t=>{const e=document.createElement("q2-optgroup");if(t.label)e.setAttribute("label",t.label);if(t.disabled)e.setAttribute("disabled","");if(!!t.options.length)t.options.forEach((t=>e.appendChild(this.generateOption(t))));return e};this.onClick=t=>{const e=t.target;if(!(e instanceof HTMLElement))return;const i=!!e.closest(".interior, q2-action-sheet");if(i)return;this.onCancel(t)};this.onCancel=t=>{var e,i;t.preventDefault();const{initialSelectedOptions:o}=this;this.hide({value:(i=(e=o===null||o===void 0?void 0:o[0])===null||e===void 0?void 0:e.value)!==null&&i!==void 0?i:"",values:o,type:"cancel"})};this.onListChange=t=>{this.selectedOptions=t.detail};this.onListPopoverStateChange=t=>{if(t.detail.open)return;if(t.detail.action==="close"){this.onCancel(t)}else{this.onListDone()}};this.onListDone=()=>{this.hide(Object.assign(Object.assign({},this.selectedOptions),{type:"confirm"}))};this.renderSlot=()=>i("div",{class:"content",ref:t=>this.contentElement=t},i("slot",null));this.renderMessage=({data:t})=>i("q2-message",{type:t.type},t.title&&i("h2",null,t.title),t.description&&i("p",null,t.description));this.renderList=({data:t})=>{const{listProps:e}=t;return i(o,null,i("div",{class:"content",ref:t=>this.contentElement=t},i("q2-option-list",{ref:t=>this.optionListElement=t,multiple:e.multiple,noSelect:e.noSelect,onChange:this.onListChange,onPopoverState:this.onListPopoverStateChange,selectedOptions:e.selectedOptions},i("slot",null))),i("footer",null,e.multiple&&i("q2-btn",{"test-id":"btnDone",intent:"workflow-primary",onClick:this.onListDone},s("tecton.element.actionSheet.done"))))};this.data=undefined;this.title=undefined;this.hideClose=undefined;this.isScrollable=false;this.renderStatus="is-closing"}componentDidLoad(){this.dialogElement.addEventListener("cancel",this.onCancel);this.ready.emit()}disconnectedCallback(){this.dialogElement.removeEventListener("cancel",this.onCancel)}storeInitialValues(){const{data:t}=this;if(!t)return;if(t.appearance==="list"){this.initialSelectedOptions=t.listProps.selectedOptions}}focusContent(){const{data:t}=this;if(!t)return;if(t.appearance==="list"){const{event:e}=t;if(e instanceof KeyboardEvent){this.optionListElement.handleExternalKeydown(e)}else{this.optionListElement.focus()}}}hidePostHook(){const{data:t}=this;if(!t)return;if(t.appearance==="list"){this.hostElement.innerHTML=null}}showPreHook(){const{data:t}=this;if(!t)return;if(t.appearance==="list"){this.hostElement.innerHTML=null;t.options.forEach((t=>{this.hostElement.appendChild("options"in t?this.generateOptgroup(t):this.generateOption(t))}))}}updateDialogMinMaxHeight(){const t=window.innerHeight;this.dialogElement.style.setProperty("--comp-action-sheet-computed-min-height",`${Math.floor(t*this.minHeight)}px`);this.dialogElement.style.setProperty("--comp-action-sheet-computed-max-height",`${Math.floor(t*this.maxHeight)}px`)}async hide(t={value:"",values:[],type:"confirm"}){this.close.emit(t);this.renderStatus="is-closing";this.dialogElement.addEventListener("transitionend",(()=>{if(this.renderStatus!=="is-closing")return;this.dialogElement.close();this.renderStatus=null;this.data=undefined;this.initialSelectedOptions=[];this.selectedOptions={values:[],value:""};this.hidePostHook()}),{once:true})}async show(){this.showPreHook();await r();this.updateDialogMinMaxHeight();this.storeInitialValues();if(this.dialogElement.open)return;this.dialogElement.showModal();this.renderStatus="is-opening";this.dialogElement.addEventListener("transitionend",(()=>{if(this.renderStatus!=="is-opening")return;this.renderStatus="is-open";this.focusContent()}),{once:true})}render(){var t;const{data:e}=this;const o=(e===null||e===void 0?void 0:e.title)||this.title||!this.hideClose;const a=this.renderStatus||"";let s=null;switch(e===null||e===void 0?void 0:e.appearance){case"message":s=this.renderMessage;break;case"list":s=this.renderList;break;default:s=this.renderSlot;break}const r=(e===null||e===void 0?void 0:e.appearance)||"slot";const n=`interior is-${r}`;return i("dialog",{key:"855ab825dc1d644380373978e961daa9e22819a0",ref:t=>this.dialogElement=t,class:a,onClick:this.onClick},i("div",{key:"0a8baa3293caa899c44c18cdd6d0f4107a88a295",class:n},o&&i("header",{key:"77513ad47abf116453813507063656e595d19e9a"},i("div",{key:"4255f7e721ef6f57dd071c69c056e5d57eb738c6",class:"title"},(e===null||e===void 0?void 0:e.title)||this.title),!this.hideClose&&i("q2-btn",{key:"5ca82d4ec436f83b8e1b1e4746d548afa297d6bb",class:"btn-close","test-id":"btnClose",onClick:this.onCancel,label:"tecton.element.actionSheet.close","hide-label":true},i("q2-icon",{key:"cda9fc64454ca9f8f0d581f1a55f2c99c352df94",type:"close"}))),((t=this.data)===null||t===void 0?void 0:t.description)&&i("p",{key:"b728462ce7f9b80fe7b6a5bbe952c8d6d9a95198"},e.description),s&&i(s,{key:"4a779c3418a2b378b0fee80b2261157b5b4263c3",data:this.data})))}get hostElement(){return a(this)}};l.style=c;export{l as q2_action_sheet};
2
- //# sourceMappingURL=p-a89814b8.entry.js.map
1
+ import{r as t,c as e,h as i,F as o,g as a}from"./p-a5f18e27.js";import{l as s,w as r}from"./p-42302f6f.js";const n='*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}@keyframes showBackdrop{from{opacity:0}}@keyframes hideBackdrop{to{opacity:0}}dialog{--comp-border-radius-default:var(--app-scale-3x, 15px) var(--app-scale-3x, 15px) 0 0;--comp-border-radius:var(--tct-action-sheet-border-radius, var(--comp-border-radius-default));--comp-desktop-border-radius:var(--tct-action-sheet-border-radius, var(--app-scale-3x, 15px));--comp-close-button-size:var(--tct-action-sheet-close-button-size, var(--t-a11y-min-size, 44px));--comp-header-height:var(--tct-action-sheet-header-height, var(--t-a11y-min-size, 44px));--comp-dialog-background:var(--tct-action-sheet-background, var(--t-base, #ffffff));--comp-dialog-color:var(--tct-action-sheet-color, var(--t-text, #4d4d4d));--comp-dialog-padding:var(--tct-action-sheet-padding, var(--app-scale-3x, 15px));--comp-content-gradient-height:var(--tct-action-sheet-content-gradient-height, var(--app-scale-2x, 10px));--comp-dialog-gap:var(--tct-action-sheet-gap, var(--app-scale-2x, 10px));--comp-dialog-max-width:var(--tct-action-sheet-max-width, 400px);--comp-dialog-max-height:var(--tct-action-sheet-max-height, var(--comp-action-sheet-computed-max-height, 75vh));--comp-dialog-min-height:var(--tct-action-sheet-min-height, var(--comp-action-sheet-computed-min-height, 20vh));--comp-dialog-box-shadow:var(--tct-action-sheet-box-shadow, var(--app-shadow-2, 0 3px 6px rgba(0, 0, 0, 0.3)));position:fixed;top:100%;bottom:unset;color:var(--comp-dialog-color);background:var(--comp-dialog-background);transition:transform var(--tct-action-sheet-tween, var(--app-tween-2, 0.4s ease)), opacity var(--tct-action-sheet-tween, var(--app-tween-2, 0.4s ease));width:100%;max-width:var(--comp-dialog-max-width);border:0;border-radius:var(--comp-border-radius);box-shadow:var(--comp-dialog-box-shadow);padding:0;height:auto;overflow:hidden;min-height:var(--comp-dialog-min-height);max-height:var(--comp-dialog-max-height)}dialog::backdrop{opacity:0;background:var(--tct-action-sheet-backdrop-background, var(--t-top-a2, rgba(13, 13, 13, 0.6)))}dialog[open].is-opening,dialog[open].is-open{transform:translateY(-100%)}@media screen and (min-width: 1200px){dialog[open].is-opening,dialog[open].is-open{opacity:1;transform:translateY(0)}}dialog[open].is-opening::backdrop,dialog[open].is-open::backdrop{opacity:1;animation:showBackdrop var(--tct-action-sheet-tween, var(--app-tween-2, 0.4s ease))}dialog[open].is-closing{transform:translateY(10%)}dialog[open].is-closing::backdrop{animation:hideBackdrop var(--tct-action-sheet-tween, var(--app-tween-2, 0.4s ease))}@media screen and (min-width: 1200px){dialog{border-radius:var(--comp-desktop-border-radius);top:0px;bottom:0px;height:fit-content;transform:translateY(10%);opacity:0}}.content{overflow-y:auto;--comp-scrollbar-size:var(--tct-scrollbar-size, var(--t-scrollbar-size, var(--app-scale-1x, 5px)));--comp-scrollbar-border-radius:var(--tct-scrollbar-border-radius, var(--t-scrollbar-border-radius, var(--app-border-radius-1, 3px)));--comp-scrollbar-color:var(--tct-scrollbar-color, var(--t-scrollbar-color, var(--t-a11y-gray-color, #747474)));scrollbar-width:thin;scrollbar-color:var(--comp-scrollbar-color) transparent}.content::-webkit-scrollbar{width:var(--comp-scrollbar-size);height:var(--comp-scrollbar-size);margin:5px}.content::-webkit-scrollbar-thumb{background:var(--comp-scrollbar-color);border-radius:var(--comp-scrollbar-border-radius)}.content::-webkit-scrollbar-track{background:transparent;border-radius:var(--comp-scrollbar-border-radius)}.interior{display:grid;grid-template-rows:44px 1fr auto;gap:var(--comp-dialog-gap);max-height:calc(var(--comp-dialog-max-height) - var(--comp-dialog-padding));padding:var(--comp-dialog-padding)}.interior.is-list header,.interior.is-list footer{position:relative}.interior.is-list header:before,.interior.is-list footer:before{content:"";display:block;position:absolute;left:0;height:var(--comp-content-gradient-height);width:100%;z-index:1}header{display:grid;grid-template-columns:var(--comp-close-button-size) 1fr var(--comp-close-button-size);grid-template-areas:". title close";gap:var(--comp-dialog-gap)}header .title{grid-area:title;text-align:center;line-height:var(--comp-header-height)}header .btn-close{grid-area:close;width:var(--comp-close-button-size);height:var(--comp-close-button-size)}footer{display:flex;justify-content:end}';const c=n;var d=undefined&&undefined.__rest||function(t,e){var i={};for(var o in t)if(Object.prototype.hasOwnProperty.call(t,o)&&e.indexOf(o)<0)i[o]=t[o];if(t!=null&&typeof Object.getOwnPropertySymbols==="function")for(var a=0,o=Object.getOwnPropertySymbols(t);a<o.length;a++){if(e.indexOf(o[a])<0&&Object.prototype.propertyIsEnumerable.call(t,o[a]))i[o[a]]=t[o[a]]}return i};const l=class{constructor(a){t(this,a);this.close=e(this,"close",7);this.ready=e(this,"ready",3);this.initialSelectedOptions=[];this.selectedOptions={values:[],value:""};this.minHeight=.2;this.maxHeight=.75;this.generateOption=t=>{const e=document.createElement("q2-option");const i=d(t,[]);if(t.innerHTML)e.innerHTML=t.innerHTML;Object.entries(i).forEach((([t,i])=>{if(i===undefined)return;if(typeof i==="boolean"){if(i)e.setAttribute(t,"")}else{e.setAttribute(t,i)}}));return e};this.generateOptgroup=t=>{const e=document.createElement("q2-optgroup");if(t.label)e.setAttribute("label",t.label);if(t.disabled)e.setAttribute("disabled","");if(!!t.options.length)t.options.forEach((t=>e.appendChild(this.generateOption(t))));return e};this.onClick=t=>{const e=t.target;if(!(e instanceof HTMLElement))return;const i=!!e.closest(".interior, q2-action-sheet");if(i)return;this.onCancel(t)};this.onCancel=t=>{var e,i;t.preventDefault();const{initialSelectedOptions:o}=this;this.hide({value:(i=(e=o===null||o===void 0?void 0:o[0])===null||e===void 0?void 0:e.value)!==null&&i!==void 0?i:"",values:o,type:"cancel"})};this.onListChange=t=>{this.selectedOptions=t.detail};this.onListPopoverStateChange=t=>{if(t.detail.open)return;if(t.detail.action==="close"){this.onCancel(t)}else{this.onListDone()}};this.onListDone=()=>{this.hide(Object.assign(Object.assign({},this.selectedOptions),{type:"confirm"}))};this.renderSlot=()=>i("div",{class:"content",ref:t=>this.contentElement=t},i("slot",null));this.renderMessage=({data:t})=>i("q2-message",{type:t.type},t.title&&i("h2",null,t.title),t.description&&i("p",null,t.description));this.renderList=({data:t})=>{const{listProps:e}=t;return i(o,null,i("div",{class:"content",ref:t=>this.contentElement=t},i("q2-option-list",{ref:t=>this.optionListElement=t,multiple:e.multiple,noSelect:e.noSelect,onChange:this.onListChange,onPopoverState:this.onListPopoverStateChange,selectedOptions:e.selectedOptions},i("slot",null))),i("footer",null,e.multiple&&i("q2-btn",{"test-id":"btnDone",intent:"workflow-primary",onClick:this.onListDone},s("tecton.element.actionSheet.done"))))};this.data=undefined;this.title=undefined;this.hideClose=undefined;this.isScrollable=false;this.renderStatus="is-closing"}componentDidLoad(){this.dialogElement.addEventListener("cancel",this.onCancel);this.ready.emit()}disconnectedCallback(){this.dialogElement.removeEventListener("cancel",this.onCancel)}storeInitialValues(){const{data:t}=this;if(!t)return;if(t.appearance==="list"){this.initialSelectedOptions=t.listProps.selectedOptions}}focusContent(){const{data:t}=this;if(!t)return;if(t.appearance==="list"){const{event:e}=t;if(e instanceof KeyboardEvent){this.optionListElement.handleExternalKeydown(e)}else{this.optionListElement.focus()}}}hidePostHook(){const{data:t}=this;if(!t)return;if(t.appearance==="list"){this.hostElement.innerHTML=null}}showPreHook(){const{data:t}=this;if(!t)return;if(t.appearance==="list"){this.hostElement.innerHTML=null;t.options.forEach((t=>{this.hostElement.appendChild("options"in t?this.generateOptgroup(t):this.generateOption(t))}))}}updateDialogMinMaxHeight(){const t=window.innerHeight;this.dialogElement.style.setProperty("--comp-action-sheet-computed-min-height",`${Math.floor(t*this.minHeight)}px`);this.dialogElement.style.setProperty("--comp-action-sheet-computed-max-height",`${Math.floor(t*this.maxHeight)}px`)}async hide(t={value:"",values:[],type:"confirm"}){this.close.emit(t);this.renderStatus="is-closing";this.dialogElement.addEventListener("transitionend",(()=>{if(this.renderStatus!=="is-closing")return;this.dialogElement.close();this.renderStatus=null;this.data=undefined;this.initialSelectedOptions=[];this.selectedOptions={values:[],value:""};this.hidePostHook()}),{once:true})}async show(){this.showPreHook();await r();this.updateDialogMinMaxHeight();this.storeInitialValues();if(this.dialogElement.open)return;this.dialogElement.showModal();this.renderStatus="is-opening";this.dialogElement.addEventListener("transitionend",(()=>{if(this.renderStatus!=="is-opening")return;this.renderStatus="is-open";this.focusContent()}),{once:true})}render(){var t;const{data:e}=this;const o=(e===null||e===void 0?void 0:e.title)||this.title||!this.hideClose;const a=this.renderStatus||"";let s=null;switch(e===null||e===void 0?void 0:e.appearance){case"message":s=this.renderMessage;break;case"list":s=this.renderList;break;default:s=this.renderSlot;break}const r=(e===null||e===void 0?void 0:e.appearance)||"slot";const n=`interior is-${r}`;return i("dialog",{key:"855ab825dc1d644380373978e961daa9e22819a0",ref:t=>this.dialogElement=t,class:a,onClick:this.onClick},i("div",{key:"0a8baa3293caa899c44c18cdd6d0f4107a88a295",class:n},o&&i("header",{key:"77513ad47abf116453813507063656e595d19e9a"},i("div",{key:"4255f7e721ef6f57dd071c69c056e5d57eb738c6",class:"title"},(e===null||e===void 0?void 0:e.title)||this.title),!this.hideClose&&i("q2-btn",{key:"5ca82d4ec436f83b8e1b1e4746d548afa297d6bb",class:"btn-close","test-id":"btnClose",onClick:this.onCancel,label:"tecton.element.actionSheet.close","hide-label":true},i("q2-icon",{key:"cda9fc64454ca9f8f0d581f1a55f2c99c352df94",type:"close"}))),((t=this.data)===null||t===void 0?void 0:t.description)&&i("p",{key:"b728462ce7f9b80fe7b6a5bbe952c8d6d9a95198"},e.description),s&&i(s,{key:"4a779c3418a2b378b0fee80b2261157b5b4263c3",data:this.data})))}get hostElement(){return a(this)}};l.style=c;export{l as q2_action_sheet};
2
+ //# sourceMappingURL=p-dc057a9c.entry.js.map
@@ -0,0 +1,2 @@
1
+ import{r as t,c as a,h as e,F as i,g as r}from"./p-a5f18e27.js";import{c as o,l as n,i as s,o as c}from"./p-42302f6f.js";const l="*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{display:block;position:relative}button{cursor:pointer;margin:0}.tab-container{position:relative}ul{--comp-container-padding:var(--tct-scale-1, var(--app-scale-1x, 5px)) var(--tct-scale-1, var(--app-scale-1x, 5px)) 0;padding:var(--tct-tab-container-padding, var(--t-tab-container-padding, var(--comp-container-padding)));margin:var(--tct-tab-container-margin, var(--t-tab-container-margin, 0));display:flex;gap:var(--tct-tab-gap, var(--t-tab-gap, var(--tct-scale-1, var(--app-scale-1x, 5px))));list-style:none;border-bottom:1px solid var(--tct-tab-container-border-color, var(--t-tab-container-border-color, var(--tct-gray-11, var(--t-gray-11, var(--tct-gray-l1, var(--app-gray-l1, #cccccc))))));overflow-x:auto;align-items:center;scrollbar-width:none;scrollbar-color:transparent}ul::-webkit-scrollbar{width:0;height:0}ul::-webkit-scrollbar-thumb{background:transparent}ul::-webkit-scrollbar-track{background:transparent}@media print{ul.no-print{display:none}}li{flex:0 0 auto}li button{background:var(--tct-tab-inactive-background, var(--tct-tab-inactive-bg-color, var(--t-tab-inactive-bg-color, transparent)));border-width:var(--tct-tab-inactive-border-width, var(--t-tab-inactive-border-width, 0 0 3px 0));border-color:var(--tct-tab-inactive-border-color, var(--t-tab-inactive-border-color, transparent));border-style:var(--tct-tab-inactive-border-style, var(--t-tab-inactive-border-style, solid));border-radius:var(--tct-tab-border-radius, var(--t-tab-border-radius, 0));width:var(--tct-tab-width, var(--t-tab-width, 100%));text-align:var(--tct-tab-text-align, var(--t-tab-text-align, center));text-decoration:var(--tct-tab-text-decoration, var(--t-tab-text-decoration, none));padding:var(--tct-tab-padding, var(--t-tab-padding, var(--tct-scale-2, var(--app-scale-2x, 10px))));color:var(--tct-tab-inactive-color, var(--t-tab-inactive-color, inherit));font-size:var(--tct-tab-font-size, var(--t-tab-font-size, 17px));display:block;transition:color var(--tct-tween-2, var(--app-tween-2, 0.4s ease)), border-color var(--tct-tween-1, var(--app-tween-1, 0.2s ease))}:host([type=section]) li button{--comp-tab-section-padding:var(--tct-scale-2, var(--app-scale-2x, 10px)) var(--tct-scale-1, var(--app-scale-1x, 5px));font-size:var(--tct-tab-section-font-size, inherit);padding:var(--tct-tab-section-padding, var(--t-tab-section-padding, var(--comp-tab-section-padding)))}li button:hover{color:var(--tct-tab-hover-color, var(--t-tab-hover-color, var(--tct-tab-active-color, var(--t-tab-active-color, #2e2e2e))));background:var(--tct-tab-hover-background, var(--tct-tab-hover-bg-color, var(--t-tab-hover-bg-color, inherit)));width:var(--tct-tab-hover-width, var(--t-tab-hover-width, 100%))}li button[aria-selected=true]{color:var(--tct-tab-active-color, var(--t-tab-active-color, #2e2e2e));border-color:var(--tct-tab-active-border-color, var(--t-tab-active-border-color, currentcolor));border-style:var(--tct-tab-active-border-style, var(--t-tab-active-border-style, solid));width:var(--tct-tab-active-width, var(--t-tab-active-width, 100%));background:var(--tct-tab-active-background, var(--tct-tab-active-bg-color, var(--t-tab-active-bg-color, inherit)))}:host([color=alt]) li button{color:var(--tct-tab-alt-inactive-color, var(--t-tab-alt-inactive-color, inherit))}:host([color=alt]) li button:hover,:host([color=alt]) li button[aria-selected=true]{color:var(--tct-tab-alt-active-color, var(--t-tab-alt-active-color, inherit))}@media screen and (max-width: 767px){li button{--comp-tab-padding:var(--tct-scale-2, var(--app-scale-2x, 10px)) var(--tct-scale-1, var(--app-scale-1x, 5px));font-size:inherit;padding:var(--tct-tab-padding, var(--t-tab-padding, var(--comp-tab-padding)))}}.tab-content{--comp-tab-content-padding:var(--tct-scale-2, var(--app-scale-2x, 10px)) 0;padding:var(--tct-tab-content-padding, var(--t-tab-content-padding, var(--comp-tab-content-padding)))}.tab-content:focus{outline:none;box-shadow:none}.gradient-left,.gradient-right{z-index:1;position:absolute;top:0;height:100%;width:44px}.gradient-left{background-image:linear-gradient(to left, var(--t-base-a0), var(--t-base-a2) 10%, var(--t-base) 100%);left:0}.gradient-right{background-image:linear-gradient(to right, var(--t-base-a0), var(--t-base-a2) 10%, var(--t-base) 100%);right:0}.btn-left,.btn-right{--tct-icon-size:18px;--tct-btn-icon-hover-background:transparent;--tct-btn-icon-width:22px;--tct-icon-stroke-primary:var(--tct-stepper-scroll-arrow-color, var(--t-stepper-scroll-arrow-color, var(--t-text, #4d4d4d)));position:absolute;top:calc(50% - 22px);z-index:2}.btn-left q2-icon,.btn-right q2-icon{--tct-icon-stroke-width:3}.btn-left{left:0}.btn-right{right:0}.tab-pane-badge{display:flex;justify-content:space-between;align-items:center}.tab-pane-badge q2-badge{margin-left:5px;margin-right:5px}";const b=l;const d=class{constructor(e){t(this,e);this.change=a(this,"change",7);this.settled=a(this,"settled",7);this.guid=o();this.scheduledAfterRender=[];this.lastScrolled=new Date(null).getTime();this.updateTabData=()=>{this.updateTabPaneProps();this.setTabs()};this.updateTabPaneProps=()=>{this.tabPanes.forEach(((t,a)=>{t.selected=t.value===this.selectedTabValue;t.guid=this.guid;t.index=a}))};this.setTabs=()=>{this.tabs=this.tabPanes.map((({label:t,value:a,badgeCount:e,badgeDescription:i,badgeTheme:r,badgeStatus:o})=>({label:t&&n(t)||"",value:a,badgeCount:e,badgeDescription:i,badgeTheme:r,badgeStatus:o})))};this.onTabClick=t=>{const a=t.target.closest('button[role="tab"]').dataset.value;const e=this.value===a;if(e)return;this.change.emit({value:a})};this.onTabKeyDown=t=>{const a=t.target.dataset.value;switch(t.key){case"ArrowRight":t.preventDefault();this.moveToAdjacentTab(a,"next");break;case"ArrowLeft":t.preventDefault();this.moveToAdjacentTab(a,"prev");break;case"Home":t.preventDefault();this.moveToAdjacentTab(a,"first");break;case"End":t.preventDefault();this.moveToAdjacentTab(a,"last");break;case"Space":case"Enter":t.preventDefault();this.change.emit({value:a});break}};this.moveToAdjacentTab=(t,a)=>{const e=this.tabs.map((({value:t})=>t)).indexOf(t);let i;switch(a){case"next":i=Math.min(e+1,this.tabs.length-1);break;case"prev":i=Math.max(e-1,0);break;case"first":i=0;break;case"last":i=this.tabs.length-1;break}if(e===i)return;this.moveFocus(i,false)};this.moveFocus=(t,a=true)=>{const e=this.tabs[t].value;const i=this.listElement.querySelector(`[data-value="${e}"]`);i.focus({preventScroll:a});const r=i.offsetLeft-this.listElement.clientWidth/2;this.listElement.scrollTo({left:r,behavior:"smooth"});return i};this.checkScrollState=()=>{if(!this.listElement)return;const{scrollLeft:t,scrollWidth:a,clientWidth:e}=this.listElement;this.scrollEnabled=a>e;this.showScrollLeft=t>0;this.showScrollRight=a>Math.ceil(t)+e};this.onScrollBtnClick=t=>{const{scrollLeft:a,scrollWidth:e,clientWidth:i}=this.listElement;const r=Math.floor(i/2);let o=0;if(t==="left"){o=-Math.min(r,Math.abs(a))}else{o=Math.min(r,Math.abs(e-a-i))}this.listElement.scrollBy({left:o,behavior:"smooth"})};this.onSlotChange=()=>{this.checkScrollState()};this.color=undefined;this.name=undefined;this.noPrint=false;this.type=undefined;this.value=undefined;this.hasLeft=false;this.hasRight=false;this.scrollEnabled=false;this.showScrollLeft=false;this.showScrollRight=false;this.tabs=undefined}resizeIframe(){var t,a;return(a=(t=window.TectonElements)===null||t===void 0?void 0:t.resizeIframe)===null||a===void 0?void 0:a.call(t)}get tabPanes(){const t=this.hostElement.querySelectorAll("q2-tab-pane, tecton-tab-pane");if(t.length===0){return[]}return Array.from(t).filter((t=>t.name===this.name))}get selectedTabValue(){return this.value||this.tabPanes[0].value||""}get tabList(){return this.hostElement.shadowRoot.querySelector(".tab-list")}defaultChangeHandler(t){if(t.target===this.hostElement&&!this.hostElement.onchange){this.value=t.detail.value}}onResize(){this.checkScrollState()}onFocus(t){if(!s(t,this.hostElement))return;const a=this.tabs.findIndex((t=>t.value===this.selectedTabValue));this.moveFocus(a)}onBadge(){this.setTabs()}componentWillLoad(){const t=new MutationObserver(this.updateTabData);t.observe(this.hostElement,{childList:true,attributes:true});this.mutationObserver=t;this.resizeObserver=new ResizeObserver((()=>this.checkScrollState()));this.updateTabData()}componentDidRender(){this.scheduledAfterRender.forEach((t=>t()));this.scheduledAfterRender=[];this.settled.emit()}componentDidLoad(){var t;(t=this.resizeObserver)===null||t===void 0?void 0:t.observe(this.listElement);this.checkScrollState();c(this.hostElement);const a=this.tabs.findIndex((t=>t.value===this.value));this.scheduledAfterRender.push((()=>{const t=this.tabs.length>0;if(!t)return;const e=this.moveFocus(Math.max(a,0));this.value=e.dataset.value;e.blur()}))}disconnectedCallback(){this.resizeObserver.disconnect();this.mutationObserver.disconnect();this.resizeObserver=null;this.mutationObserver=null}valueObserver(){this.updateTabData();this.scheduledAfterRender.push(this.resizeIframe);const t=this.tabs.findIndex((t=>t.value===this.value));if(t>-1){this.scheduledAfterRender.push((()=>this.moveFocus(t,false)))}}nameObserver(){this.updateTabData()}render(){return e(i,{key:"1d47fe831e541ada6eef63809436a6dfe99c8ba6"},e("div",{key:"b9b35b33f9c9043544d134223ad6fad27ff80c05",class:"tab-container"},this.scrollEnabled&&e(i,{key:"f7148ae6605303f29efc81c8888abeefe5783127"},e("div",{key:"7121a3544b0be5e8a4820350bd81a43da4ed0c0d",class:"gradient-left",hidden:!this.showScrollLeft}),e("div",{key:"576fb473a9a07d817ff44452bc4c80097fa775cd",class:"gradient-right",hidden:!this.showScrollRight}),e("q2-btn",{key:"d0e7b29902d00749640bd1788276c22a2f84c5c0",class:"btn-left",hidden:!this.showScrollLeft,onClick:()=>this.onScrollBtnClick("left")},e("q2-icon",{key:"a44d0b2652139edd4a58825d325092bfb1115015",type:"chevron-left",label:"scroll left"})),e("q2-btn",{key:"d37c47ef7d89e086e8fd5190a4565da80f7f4cc0",class:"btn-right",hidden:!this.showScrollRight,onClick:()=>this.onScrollBtnClick("right")},e("q2-icon",{key:"a6d2c83b5e8c7dcdd3fe9e745ae4f0a9c44ec027",type:"chevron-right",label:"scroll right"}))),e("ul",{key:"98fa557d17f6bb32ec360c11b742880bd8c14c6c",onScroll:this.checkScrollState,ref:t=>this.listElement=t,class:this.noPrint?"no-print":null,role:"tablist"},this.tabs.map(((t,a)=>this.generateTab(t,a))))),e("div",{key:"a37e19900b2430147b7cbf482225d4a2a8854a6a",class:"tab-content"},e("slot",{key:"0eb4151d2ea58a629952e0076162305c78b1f9a9",onSlotchange:()=>this.onSlotChange()})))}generateTab(t,a){const{label:i,value:r}=t;const o=this.selectedTabValue===r;return e("li",{role:"presentation"},e("button",{id:`tab-${this.guid}-${a}`,"data-value":r,"test-id":"tabLink",tabIndex:o?0:-1,role:"tab","aria-selected":o?"true":"false","aria-controls":`tab-pane-${this.guid}-${a}`,onClick:this.onTabClick,onKeyDown:this.onTabKeyDown},t.badgeCount===undefined?i:this.generateTabWithBadge(t,o)))}generateTabWithBadge(t,a){let i;if(!t.badgeStatus&&a)i=t.badgeTheme||"primary";let r;if(t.badgeDescription)r=n(t.badgeDescription);else if(t.badgeStatus)r=n(`tecton.element.tab.pane.${t.badgeStatus}`,[t.badgeCount]);else r=n("tecton.element.tab.pane.new");return e("div",{class:"tab-pane-badge","aria-label":`${t.label}, ${t.badgeCount} ${r}`},t.label,e("q2-badge",{value:t.badgeCount,theme:i,status:t.badgeStatus}))}get hostElement(){return r(this)}static get watchers(){return{value:["valueObserver"],name:["nameObserver"]}}};d.style=b;export{d as q2_tab_container};
2
+ //# sourceMappingURL=p-debd5249.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["q2TabContainerCss","Q2TabContainerStyle0","Q2TabContainer","this","guid","createGuid","scheduledAfterRender","lastScrolled","Date","getTime","updateTabData","updateTabPaneProps","setTabs","tabPanes","forEach","tab","index","selected","value","selectedTabValue","tabs","map","label","badgeCount","badgeDescription","badgeTheme","badgeStatus","loc","onTabClick","event","targetValue","target","closest","dataset","isAlreadySelected","change","emit","onTabKeyDown","key","preventDefault","moveToAdjacentTab","direction","indexOf","newIndex","Math","min","length","max","moveFocus","preventScroll","focusedValue","focusedTab","listElement","querySelector","focus","left","offsetLeft","clientWidth","scrollTo","behavior","checkScrollState","scrollLeft","scrollWidth","scrollEnabled","showScrollLeft","showScrollRight","ceil","onScrollBtnClick","halfWidth","floor","scrollAmount","abs","scrollBy","onSlotChange","resizeIframe","_b","_a","window","TectonElements","call","hostElement","querySelectorAll","Array","from","filter","pane","name","tabList","shadowRoot","defaultChangeHandler","onchange","detail","onResize","onFocus","isEventFromElement","findIndex","el","onBadge","componentWillLoad","observer","MutationObserver","observe","childList","attributes","mutationObserver","resizeObserver","ResizeObserver","componentDidRender","fn","settled","componentDidLoad","overrideFocus","push","hasTabs","blur","disconnectedCallback","disconnect","valueObserver","nameObserver","render","h","Fragment","class","hidden","onClick","type","onScroll","ref","noPrint","role","generateTab","onSlotchange","isSelected","id","tabIndex","onKeyDown","undefined","generateTabWithBadge","theme","description","status"],"sources":["src/components/q2-tab-container/q2-tab-container.scss?tag=q2-tab-container&encapsulation=shadow","src/components/q2-tab-container/q2-tab-container.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n display: block;\n position: relative;\n}\n\nbutton {\n cursor: pointer;\n margin: 0;\n}\n\n.tab-container {\n position: relative;\n}\n\nul {\n --comp-container-padding: #{var-list(--tct-scale-1, --app-scale-1x, 5px)\n var-list(--tct-scale-1, --app-scale-1x, 5px) 0};\n padding: var-list(var-prefixer(tab-container-padding), --comp-container-padding);\n margin: var-list(var-prefixer(tab-container-margin), 0);\n display: flex;\n gap: var-list(var-prefixer(tab-gap), --tct-scale-1, --app-scale-1x, 5px);\n list-style: none;\n border-bottom: 1px solid\n var-list(\n var-prefixer(tab-container-border-color),\n --tct-gray-11,\n --t-gray-11,\n --tct-gray-l1,\n --app-gray-l1,\n #cccccc\n );\n overflow-x: auto;\n align-items: center;\n @include hidden-scrollbar();\n\n @media print {\n &.no-print {\n display: none;\n }\n }\n}\n\nli {\n flex: 0 0 auto;\n\n button {\n background: var-list(--tct-tab-inactive-background, var-prefixer(tab-inactive-bg-color), transparent);\n border-width: var-list(var-prefixer(tab-inactive-border-width), unquote('0 0 3px 0'));\n border-color: var-list(var-prefixer(tab-inactive-border-color), transparent);\n border-style: var-list(var-prefixer(tab-inactive-border-style), solid);\n border-radius: var-list(var-prefixer(tab-border-radius), 0);\n width: var-list(var-prefixer(tab-width), 100%);\n text-align: var-list(var-prefixer(tab-text-align), center);\n text-decoration: var-list(var-prefixer(tab-text-decoration), none);\n padding: var-list(var-prefixer(tab-padding), --tct-scale-2, --app-scale-2x, 10px);\n color: var-list(var-prefixer(tab-inactive-color), inherit);\n font-size: var-list(var-prefixer(tab-font-size), 17px);\n display: block;\n transition:\n color var-list(--tct-tween-2, --app-tween-2, unquote('0.4s ease')),\n border-color var-list(--tct-tween-1, --app-tween-1, unquote('0.2s ease'));\n\n :host([type='section']) & {\n --comp-tab-section-padding: #{var-list(--tct-scale-2, --app-scale-2x, 10px)\n var-list(--tct-scale-1, --app-scale-1x, 5px)};\n font-size: var-list(--tct-tab-section-font-size, inherit);\n padding: var-list(var-prefixer(tab-section-padding), --comp-tab-section-padding);\n }\n\n &:hover {\n color: var-list(var-prefixer(tab-hover-color), var-prefixer(tab-active-color), #2e2e2e);\n background: var-list(--tct-tab-hover-background, var-prefixer(tab-hover-bg-color), inherit);\n width: var-list(var-prefixer(tab-hover-width), 100%);\n }\n\n &[aria-selected='true'] {\n color: var-list(var-prefixer(tab-active-color), #2e2e2e);\n border-color: var-list(var-prefixer(tab-active-border-color), currentcolor);\n border-style: var-list(var-prefixer(tab-active-border-style), solid);\n width: var-list(var-prefixer(tab-active-width), 100%);\n background: var-list(--tct-tab-active-background, var-prefixer(tab-active-bg-color), inherit);\n }\n\n :host([color='alt']) & {\n color: var-list(var-prefixer(tab-alt-inactive-color), inherit);\n\n &:hover,\n &[aria-selected='true'] {\n color: var-list(var-prefixer(tab-alt-active-color), inherit);\n }\n }\n\n @media screen and (max-width: 767px) {\n --comp-tab-padding: #{var-list(--tct-scale-2, --app-scale-2x, 10px)\n var-list(--tct-scale-1, --app-scale-1x, 5px)};\n font-size: inherit;\n padding: var-list(var-prefixer(tab-padding), --comp-tab-padding);\n }\n }\n}\n\n.tab-content {\n --comp-tab-content-padding: #{var-list(--tct-scale-2, --app-scale-2x, 10px) 0};\n padding: var-list(var-prefixer(tab-content-padding), --comp-tab-content-padding);\n\n &:focus {\n outline: none;\n box-shadow: none;\n }\n}\n\n.gradient-left,\n.gradient-right {\n z-index: 1;\n position: absolute;\n top: 0;\n height: 100%;\n width: 44px;\n}\n\n.gradient-left {\n background-image: linear-gradient(to left, var(--t-base-a0), var(--t-base-a2) 10%, var(--t-base) 100%);\n left: 0;\n}\n\n.gradient-right {\n background-image: linear-gradient(to right, var(--t-base-a0), var(--t-base-a2) 10%, var(--t-base) 100%);\n right: 0;\n}\n\n.btn-left,\n.btn-right {\n --tct-icon-size: 18px;\n --tct-btn-icon-hover-background: transparent;\n --tct-btn-icon-width: 22px;\n --tct-icon-stroke-primary: #{var-list(var-prefixer(stepper-scroll-arrow-color), --t-text, #4d4d4d)};\n\n position: absolute;\n top: calc(50% - 22px);\n z-index: 2;\n q2-icon {\n --tct-icon-stroke-width: 3;\n }\n}\n\n.btn-left {\n left: 0;\n}\n\n.btn-right {\n right: 0;\n}\n\n.tab-pane-badge {\n display: flex;\n justify-content: space-between;\n align-items: center;\n q2-badge {\n margin-left: 5px;\n margin-right: 5px;\n }\n}\n","import {\n Component,\n ComponentInterface,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n Listen,\n Watch,\n h,\n Fragment,\n} from '@stencil/core';\nimport { createGuid, loc, overrideFocus, isEventFromElement } from 'src/utils';\nimport { JSX } from '../../components';\nimport { Q2Badge } from '../q2-badge/q2-badge';\n\ntype TabPane = {\n label: string;\n value: string;\n badgeCount: number;\n badgeDescription: string;\n badgeTheme: Q2Badge['theme'];\n badgeStatus: Q2Badge['status'];\n};\n\n@Component({ tag: 'q2-tab-container', shadow: true, styleUrl: 'q2-tab-container.scss' })\nexport class Q2TabContainer implements ComponentInterface {\n /**\n * Controls which variables are used to color the tab controls.\n *\n * - `undefined` (default)\n * - Uses `--t-tab-active` and `--t-tab-inactive`.\n * - `alt`\n * - Uses `--t-tab-alt-active` and `--t-tab-alt-inactive`.\n * - The default fallback for these variables is `inherit`.\n */\n @Prop({ reflect: true }) color: 'alt' | undefined;\n\n /**\n * Used to establish a relationship between `q2-tab-container` and its associated tab panes.\n * @warning\n * The element can fail if this property is not set. Nested tab containers without the `name` property will not render correctly.\n */\n @Prop({ reflect: true }) name: string;\n\n /** Controls visibility of tab list in a print view. Tab content will still be visible even if `noPrint` is true. */\n @Prop({ reflect: true }) noPrint: boolean = false;\n\n /** Determines the font size of the tab controls. */\n @Prop({ reflect: true }) type: 'main' | 'section';\n\n /** Corresponds to the value of the selected tab pane. */\n @Prop({ reflect: true, mutable: true }) value: string;\n\n @Element() hostElement: HTMLElement;\n\n /**\n * Emitted when the selected tab changes.\n * @legacyEvent\n */\n @Event() change: EventEmitter<{ value: string }>;\n\n /**\n * Emitted when the component has finished rendering.\n * @private\n */\n @Event() settled: EventEmitter<undefined>;\n\n guid: number = createGuid();\n scheduledAfterRender: (() => void)[] = [];\n listElement: HTMLUListElement;\n mutationObserver: MutationObserver;\n resizeObserver: ResizeObserver;\n lastScrolled: number = new Date(null).getTime();\n @State() hasLeft: boolean = false;\n @State() hasRight: boolean = false;\n @State() scrollEnabled: boolean = false;\n @State() showScrollLeft: boolean = false;\n @State() showScrollRight: boolean = false;\n @State() tabs: TabPane[];\n\n resizeIframe() {\n return window.TectonElements?.resizeIframe?.();\n }\n\n get tabPanes() {\n const tabPanes = this.hostElement.querySelectorAll<HTMLQ2TabPaneElement | HTMLTectonTabPaneElement>(\n 'q2-tab-pane, tecton-tab-pane'\n );\n\n if (tabPanes.length === 0) {\n return [];\n }\n\n return Array.from(tabPanes).filter(pane => pane.name === this.name);\n }\n\n get selectedTabValue() {\n return this.value || this.tabPanes[0].value || '';\n }\n\n get tabList() {\n return this.hostElement.shadowRoot.querySelector('.tab-list');\n }\n\n ///////// Default Handler /////////\n @Listen('change')\n defaultChangeHandler(event: CustomEvent) {\n if (event.target === this.hostElement && !this.hostElement.onchange) {\n this.value = event.detail.value;\n }\n }\n\n @Listen('resize', { target: 'window' })\n onResize() {\n this.checkScrollState();\n }\n\n @Listen('focus')\n onFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n const index = this.tabs.findIndex(el => el.value === this.selectedTabValue);\n this.moveFocus(index);\n }\n\n @Listen('badge')\n onBadge() {\n this.setTabs();\n }\n\n ///////// Lifecycle Hooks /////////\n componentWillLoad() {\n const observer = new MutationObserver(this.updateTabData);\n observer.observe(this.hostElement, { childList: true, attributes: true });\n this.mutationObserver = observer;\n this.resizeObserver = new ResizeObserver(() => this.checkScrollState());\n this.updateTabData();\n }\n\n componentDidRender() {\n this.scheduledAfterRender.forEach(fn => fn());\n this.scheduledAfterRender = [];\n this.settled.emit();\n }\n\n componentDidLoad() {\n this.resizeObserver?.observe(this.listElement);\n this.checkScrollState();\n overrideFocus(this.hostElement);\n const index = this.tabs.findIndex(el => el.value === this.value);\n this.scheduledAfterRender.push(() => {\n const hasTabs = this.tabs.length > 0;\n if (!hasTabs) return;\n const tab = this.moveFocus(Math.max(index, 0));\n this.value = tab.dataset.value;\n tab.blur();\n });\n }\n\n disconnectedCallback() {\n this.resizeObserver.disconnect();\n this.mutationObserver.disconnect();\n this.resizeObserver = null;\n this.mutationObserver = null;\n }\n\n ///////// Observers /////////\n @Watch('value')\n valueObserver() {\n this.updateTabData();\n this.scheduledAfterRender.push(this.resizeIframe);\n const index = this.tabs.findIndex(el => el.value === this.value);\n if (index > -1) {\n this.scheduledAfterRender.push(() => this.moveFocus(index, false));\n }\n }\n\n @Watch('name')\n nameObserver() {\n this.updateTabData();\n }\n\n ///////// Actions /////////\n updateTabData = () => {\n this.updateTabPaneProps();\n this.setTabs();\n };\n\n updateTabPaneProps = () => {\n this.tabPanes.forEach((tab, index) => {\n tab.selected = tab.value === this.selectedTabValue;\n tab.guid = this.guid;\n tab.index = index;\n });\n };\n\n setTabs = () => {\n this.tabs = this.tabPanes.map(({ label, value, badgeCount, badgeDescription, badgeTheme, badgeStatus }) => ({\n label: (label && loc(label)) || '',\n value,\n badgeCount,\n badgeDescription,\n badgeTheme,\n badgeStatus,\n }));\n };\n\n onTabClick = (event: MouseEvent) => {\n const targetValue = ((event.target as HTMLButtonElement).closest('button[role=\"tab\"]') as HTMLButtonElement)\n .dataset.value;\n const isAlreadySelected = this.value === targetValue;\n if (isAlreadySelected) return;\n\n this.change.emit({\n value: targetValue,\n });\n };\n\n onTabKeyDown = (event: KeyboardEvent) => {\n const value = (event.target as HTMLElement).dataset.value;\n switch (event.key) {\n case 'ArrowRight':\n event.preventDefault();\n this.moveToAdjacentTab(value, 'next');\n break;\n\n case 'ArrowLeft':\n event.preventDefault();\n this.moveToAdjacentTab(value, 'prev');\n break;\n\n case 'Home':\n event.preventDefault();\n this.moveToAdjacentTab(value, 'first');\n break;\n\n case 'End':\n event.preventDefault();\n this.moveToAdjacentTab(value, 'last');\n break;\n\n case 'Space':\n case 'Enter':\n event.preventDefault();\n this.change.emit({ value });\n break;\n }\n };\n\n moveToAdjacentTab = (value: string, direction: 'next' | 'prev' | 'first' | 'last') => {\n const index = this.tabs.map(({ value }) => value).indexOf(value);\n\n let newIndex;\n switch (direction) {\n case 'next':\n newIndex = Math.min(index + 1, this.tabs.length - 1);\n break;\n\n case 'prev':\n newIndex = Math.max(index - 1, 0);\n break;\n\n case 'first':\n newIndex = 0;\n break;\n\n case 'last':\n newIndex = this.tabs.length - 1;\n break;\n }\n\n if (index === newIndex) return;\n\n this.moveFocus(newIndex, false);\n };\n\n moveFocus = (index: number, preventScroll: boolean = true) => {\n const focusedValue = this.tabs[index].value;\n const focusedTab = this.listElement.querySelector<HTMLButtonElement>(`[data-value=\"${focusedValue}\"]`);\n focusedTab.focus({ preventScroll });\n\n const left = focusedTab.offsetLeft - this.listElement.clientWidth / 2;\n this.listElement.scrollTo({\n left,\n behavior: 'smooth',\n });\n\n return focusedTab;\n };\n\n checkScrollState = () => {\n if (!this.listElement) return;\n const { scrollLeft, scrollWidth, clientWidth } = this.listElement;\n this.scrollEnabled = scrollWidth > clientWidth;\n this.showScrollLeft = scrollLeft > 0;\n this.showScrollRight = scrollWidth > Math.ceil(scrollLeft) + clientWidth;\n };\n\n onScrollBtnClick = (direction?: 'left' | 'right') => {\n const { scrollLeft, scrollWidth, clientWidth } = this.listElement;\n const halfWidth = Math.floor(clientWidth / 2);\n let scrollAmount: number = 0;\n if (direction === 'left') {\n scrollAmount = -Math.min(halfWidth, Math.abs(scrollLeft));\n } else {\n scrollAmount = Math.min(halfWidth, Math.abs(scrollWidth - scrollLeft - clientWidth));\n }\n this.listElement.scrollBy({ left: scrollAmount, behavior: 'smooth' });\n };\n\n onSlotChange = () => {\n this.checkScrollState();\n };\n\n ///////// View Methods /////////\n render() {\n return (\n <Fragment>\n <div class=\"tab-container\">\n {this.scrollEnabled && (\n <Fragment>\n <div\n class=\"gradient-left\"\n hidden={!this.showScrollLeft}\n ></div>\n <div\n class=\"gradient-right\"\n hidden={!this.showScrollRight}\n ></div>\n\n <q2-btn\n class=\"btn-left\"\n hidden={!this.showScrollLeft}\n onClick={() => this.onScrollBtnClick('left')}\n >\n <q2-icon\n type=\"chevron-left\"\n label=\"scroll left\"\n ></q2-icon>\n </q2-btn>\n\n <q2-btn\n class=\"btn-right\"\n hidden={!this.showScrollRight}\n onClick={() => this.onScrollBtnClick('right')}\n >\n <q2-icon\n type=\"chevron-right\"\n label=\"scroll right\"\n ></q2-icon>\n </q2-btn>\n </Fragment>\n )}\n\n <ul\n onScroll={this.checkScrollState}\n ref={el => (this.listElement = el)}\n class={this.noPrint ? 'no-print' : null}\n role=\"tablist\"\n >\n {this.tabs.map((tab, index) => this.generateTab(tab, index))}\n </ul>\n </div>\n <div class=\"tab-content\">\n <slot onSlotchange={() => this.onSlotChange()} />\n </div>\n </Fragment>\n );\n }\n\n generateTab(tab: TabPane, index: number): JSX.IntrinsicElements {\n const { label, value } = tab;\n const isSelected = this.selectedTabValue === value;\n return (\n <li role=\"presentation\">\n <button\n id={`tab-${this.guid}-${index}`}\n data-value={value}\n test-id=\"tabLink\"\n tabIndex={isSelected ? 0 : -1}\n role=\"tab\"\n aria-selected={isSelected ? 'true' : 'false'}\n aria-controls={`tab-pane-${this.guid}-${index}`}\n onClick={this.onTabClick}\n onKeyDown={this.onTabKeyDown}\n >\n {tab.badgeCount === undefined ? label : this.generateTabWithBadge(tab, isSelected)}\n </button>\n </li>\n );\n }\n\n generateTabWithBadge(tab: TabPane, isSelected: boolean): JSX.IntrinsicElements {\n let theme;\n if (!tab.badgeStatus && isSelected) theme = tab.badgeTheme || 'primary';\n let description;\n if (tab.badgeDescription) description = loc(tab.badgeDescription);\n else if (tab.badgeStatus) description = loc(`tecton.element.tab.pane.${tab.badgeStatus}`, [tab.badgeCount]);\n else description = loc('tecton.element.tab.pane.new');\n\n return (\n <div\n class=\"tab-pane-badge\"\n aria-label={`${tab.label}, ${tab.badgeCount} ${description}`}\n >\n {tab.label}\n <q2-badge\n value={tab.badgeCount}\n theme={theme}\n status={tab.badgeStatus}\n />\n </div>\n );\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{r as t,h as e,g as i}from"./p-a5f18e27.js";import{f as l,l as s}from"./p-42302f6f.js";const o="*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{display:block}::slotted([slot]){display:flex;align-items:center;--tct-icon-size:var(--tct-detail-label-icon-size, 16px)}.detail{column-gap:var(--tct-detail-gap-column, var(--app-scale-1x, 5px));row-gap:var(--tct-detail-gap-row, 0px)}.detail-block{display:flex;width:100%}.detail-inline{display:flex}.detail-horizontal{align-items:var(--tct-detail-vertical-alignment, baseline);flex-direction:row}.detail-stacked{flex-direction:column}.detail-stacked-alignment-left{align-items:flex-start}.detail-stacked-alignment-right{align-items:flex-end}.label{flex:1;text-align:left;line-height:1.5;color:var(--tct-detail-label-font-color, #141430)}.label-size-xsmall{color:var(--tct-detail-label-xsmall-font-color, #6f6f82);font-size:var(--tct-detail-label-xsmall-font-size, 14px)}.label-size-small{color:var(--tct-detail-label-small-font-color);font-size:var(--tct-detail-label-small-font-size, 14px)}.label-size-medium{color:var(--tct-detail-label-medium-font-color);font-size:var(--tct-detail-label-medium-font-size, 14px)}.label-size-large{color:var(--tct-detail-label-large-font-color);font-size:var(--tct-detail-label-large-font-size, 16px)}.label-size-xlarge{color:var(--tct-detail-label-xlarge-font-color);font-size:var(--tct-detail-label-xlarge-font-size, 18px)}.label-size-inline{font-size:var(--tct-detail-label-inline-font-size, 1em);color:inherit}.description{flex:1;display:flex;align-items:center;line-height:1.5;color:var(--tct-detail-description-font-color, #141430);column-gap:var(--tct-detail-description-gap-column, var(--app-scale-1x, 5px))}.description-alignment-right{justify-content:flex-end}.description-size-xsmall{color:var(--tct-detail-description-xsmall-font-color, #6f6f82);font-size:var(--tct-detail-description-xsmall-font-size, 14px)}.description-size-small{color:var(--tct-detail-description-small-font-color);font-size:var(--tct-detail-description-small-font-size, 14px)}.description-size-medium{color:var(--tct-detail-description-medium-font-color);font-size:var(--tct-detail-description-medium-font-size, 24px)}.description-size-large{color:var(--tct-detail-description-large-font-color);font-size:var(--tct-detail-description-large-font-size, 28px)}.description-size-xlarge{color:var(--tct-detail-description-xlarge-font-color);font-size:var(--tct-detail-description-xlarge-font-size, 32px)}.description-size-inline{font-size:var(--tct-detail-description-inline-font-size, 1em);color:inherit}";const a=o;const n=class{constructor(e){t(this,e);this.alignment="left";this.description=undefined;this.label=undefined;this.size=undefined;this.stacked=false}componentWillLoad(){this.setSlotSizeProps()}get detailClasses(){const t=["detail"];if(this.size){t.push(`detail-block`)}else{t.push(`detail-inline`)}if(this.stacked||this.onlyHasDescripiton||this.onlyHasLabel){t.push("detail-stacked",`detail-stacked-alignment-${this.alignment}`)}else{t.push("detail-horizontal")}return t.join(" ")}get descriptionClasses(){const t=["description"];if(this.size){t.push(`description-size-${this.size}`)}else{t.push(`description-size-inline`)}if(!this.stacked){t.push(`description-alignment-right`)}return t.join(" ")}get hasDescripiton(){return!!this.description||this.hasDefaultSlotContent}get hasLabel(){return!!this.label||this.hasLabelSlotContent}get hasDefaultSlotContent(){const t=!!this.hostElement.innerHTML.trim();const e=this.hostElement.querySelectorAll(":scope > [slot]").length;const i=this.hostElement.childNodes.length;return t&&i>e}get hasLabelSlotContent(){return l(this.hostElement,"label")}get labelClasses(){const t=["label"];if(this.size){t.push(`label-size-${this.size}`)}else{t.push(`label-size-inline`)}if(!this.stacked){t.push(`label-align-left`)}return t.join(" ")}get onlyHasDescripiton(){return this.hasDescripiton&&!this.hasLabel}get onlyHasLabel(){return this.hasLabel&&!this.hasDescripiton}setSlotSizeProps(){const t=Array.from(this.hostElement.querySelectorAll(':scope > *:not([slot]), :scope > [slot="label"] > *'));t.forEach((t=>{t.slotSize=this.size}))}render(){return e("div",{key:"ff464dcdf7be8800fcc4498da0dd5fe6ccfed319",class:this.detailClasses},this.hasLabel&&e("div",{key:"bda6274a4ef7c0c5538bd7b4eedd462eb5281cb7",class:this.labelClasses,"aria-describedby":!!this.description?"label-description":undefined},!!this.label?s(this.label):this.hasLabelSlotContent?e("slot",{name:"label"}):""),this.hasDescripiton&&e("div",{key:"c09e67c7baa5cfbca603aece0de20e403fa805a5",id:"label-description",class:this.descriptionClasses},!!this.description?s(this.description):this.hasDefaultSlotContent?e("slot",null):""))}get hostElement(){return i(this)}};n.style=a;export{n as q2_detail};
2
+ //# sourceMappingURL=p-df297a77.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["q2DetailCss","Q2DetailStyle0","Q2Detail","componentWillLoad","this","setSlotSizeProps","detailClasses","classes","size","push","stacked","onlyHasDescripiton","onlyHasLabel","alignment","join","descriptionClasses","hasDescripiton","description","hasDefaultSlotContent","hasLabel","label","hasLabelSlotContent","hasInnerHtml","hostElement","innerHTML","trim","namedSlotCount","querySelectorAll","length","hostChildNodeCount","childNodes","hasSlotContent","labelClasses","slotElements","Array","from","forEach","element","slotSize","render","h","key","class","undefined","loc","name","id"],"sources":["src/components/q2-detail/q2-detail.scss?tag=q2-detail&encapsulation=shadow","src/components/q2-detail/q2-detail.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n display: block;\n}\n\n::slotted([slot]) {\n display: flex;\n align-items: center;\n --tct-icon-size: var(--tct-detail-label-icon-size, 16px);\n}\n\n.detail {\n column-gap: var-list(--tct-detail-gap-column, --app-scale-1x, 5px);\n row-gap: var-list(--tct-detail-gap-row, 0px);\n\n &-block {\n display: flex;\n width: 100%;\n }\n\n &-inline {\n display: flex;\n }\n\n &-horizontal {\n align-items: var(--tct-detail-vertical-alignment, baseline);\n flex-direction: row;\n }\n\n &-stacked {\n flex-direction: column;\n\n &-alignment-left {\n align-items: flex-start;\n }\n\n &-alignment-right {\n align-items: flex-end;\n }\n }\n}\n\n.label {\n flex: 1;\n text-align: left;\n line-height: 1.5;\n color: var(--tct-detail-label-font-color, #141430);\n\n &-size {\n &-xsmall {\n color: var(--tct-detail-label-xsmall-font-color, #6f6f82);\n font-size: var(--tct-detail-label-xsmall-font-size, 14px);\n }\n &-small {\n color: var(--tct-detail-label-small-font-color);\n font-size: var(--tct-detail-label-small-font-size, 14px);\n }\n &-medium {\n color: var(--tct-detail-label-medium-font-color);\n font-size: var(--tct-detail-label-medium-font-size, 14px);\n }\n &-large {\n color: var(--tct-detail-label-large-font-color);\n font-size: var(--tct-detail-label-large-font-size, 16px);\n }\n &-xlarge {\n color: var(--tct-detail-label-xlarge-font-color);\n font-size: var(--tct-detail-label-xlarge-font-size, 18px);\n }\n &-inline {\n font-size: var(--tct-detail-label-inline-font-size, 1em);\n color: inherit;\n }\n }\n}\n\n.description {\n flex: 1;\n display: flex;\n align-items: center;\n line-height: 1.5;\n color: var(--tct-detail-description-font-color, #141430);\n column-gap: var-list(--tct-detail-description-gap-column, --app-scale-1x, 5px);\n\n &-alignment-right {\n justify-content: flex-end;\n }\n\n &-size {\n &-xsmall {\n color: var(--tct-detail-description-xsmall-font-color, #6f6f82);\n font-size: var(--tct-detail-description-xsmall-font-size, 14px);\n }\n &-small {\n color: var(--tct-detail-description-small-font-color);\n font-size: var(--tct-detail-description-small-font-size, 14px);\n }\n &-medium {\n color: var(--tct-detail-description-medium-font-color);\n font-size: var(--tct-detail-description-medium-font-size, 24px);\n }\n &-large {\n color: var(--tct-detail-description-large-font-color);\n font-size: var(--tct-detail-description-large-font-size, 28px);\n }\n &-xlarge {\n color: var(--tct-detail-description-xlarge-font-color);\n font-size: var(--tct-detail-description-xlarge-font-size, 32px);\n }\n &-inline {\n font-size: var(--tct-detail-description-inline-font-size, 1em);\n color: inherit;\n }\n }\n}\n","import { Component, Element, Prop, h } from '@stencil/core';\nimport { hasSlotContent, loc } from 'src/utils';\n\n@Component({\n tag: 'q2-detail',\n styleUrl: 'q2-detail.scss',\n shadow: true,\n})\nexport class Q2Detail {\n // #region Own Properties\n\n @Element() hostElement: HTMLElement;\n\n // #endregion\n // #region Public Property API\n\n /** Defines the alignment of the label and description when stacked, or when only the label or description is present. */\n @Prop({ reflect: true })\n alignment: 'left' | 'right' = 'left';\n\n /**\n * Defines the text content of the description.\n *\n * @localizable\n */\n @Prop({ reflect: true })\n description: string;\n\n /**\n * Defines the text content of the label.\n *\n * @localizable\n */\n @Prop({ reflect: true })\n label: string;\n\n /**\n * Defines the text size of the label and description.\n *\n * If not specified, the detail will display as inline text.\n */\n @Prop({ reflect: true })\n size: null | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge';\n\n /** Determines if the description should appear beneath the label. */\n @Prop({ reflect: true })\n stacked: boolean = false;\n\n // #endregion\n // #region Component lifecycle events\n\n componentWillLoad() {\n this.setSlotSizeProps();\n }\n\n // #endregion\n // #region Local methods\n\n get detailClasses() {\n const classes = ['detail'];\n if (this.size) {\n classes.push(`detail-block`);\n } else {\n classes.push(`detail-inline`);\n }\n if (this.stacked || this.onlyHasDescripiton || this.onlyHasLabel) {\n classes.push('detail-stacked', `detail-stacked-alignment-${this.alignment}`);\n } else {\n classes.push('detail-horizontal');\n }\n\n return classes.join(' ');\n }\n\n get descriptionClasses() {\n const classes = ['description'];\n if (this.size) {\n classes.push(`description-size-${this.size}`);\n } else {\n classes.push(`description-size-inline`);\n }\n if (!this.stacked) {\n classes.push(`description-alignment-right`);\n }\n\n return classes.join(' ');\n }\n\n get hasDescripiton() {\n return !!this.description || this.hasDefaultSlotContent;\n }\n\n get hasLabel() {\n return !!this.label || this.hasLabelSlotContent;\n }\n\n get hasDefaultSlotContent() {\n const hasInnerHtml = !!this.hostElement.innerHTML.trim();\n const namedSlotCount = this.hostElement.querySelectorAll(':scope > [slot]').length;\n const hostChildNodeCount = this.hostElement.childNodes.length;\n\n return hasInnerHtml && hostChildNodeCount > namedSlotCount;\n }\n\n get hasLabelSlotContent() {\n return hasSlotContent(this.hostElement, 'label');\n }\n\n get labelClasses() {\n const classes = ['label'];\n if (this.size) {\n classes.push(`label-size-${this.size}`);\n } else {\n classes.push(`label-size-inline`);\n }\n if (!this.stacked) {\n classes.push(`label-align-left`);\n }\n\n return classes.join(' ');\n }\n\n get onlyHasDescripiton() {\n return this.hasDescripiton && !this.hasLabel;\n }\n\n get onlyHasLabel() {\n return this.hasLabel && !this.hasDescripiton;\n }\n\n setSlotSizeProps() {\n const slotElements = Array.from(\n this.hostElement.querySelectorAll(':scope > *:not([slot]), :scope > [slot=\"label\"] > *')\n ) as { slotSize?: string }[];\n slotElements.forEach(element => {\n element.slotSize = this.size;\n });\n }\n\n // #endregion\n // #region Render methods\n\n render() {\n return (\n <div class={this.detailClasses}>\n {this.hasLabel && (\n <div\n class={this.labelClasses}\n aria-describedby={!!this.description ? 'label-description' : undefined}\n >\n {!!this.label ? loc(this.label) : this.hasLabelSlotContent ? <slot name=\"label\" /> : ''}\n </div>\n )}\n {this.hasDescripiton && (\n <div\n id=\"label-description\"\n class={this.descriptionClasses}\n >\n {!!this.description ? loc(this.description) : this.hasDefaultSlotContent ? <slot /> : ''}\n </div>\n )}\n </div>\n );\n }\n\n // #endregion\n}\n"],"mappings":"6FAAA,MAAMA,EAAc,mhGACpB,MAAAC,EAAeD,E,MCOFE,EAAQ,M,wCAUa,O,iFA4BX,K,CAKnB,iBAAAC,GACIC,KAAKC,kB,CAMT,iBAAIC,GACA,MAAMC,EAAU,CAAC,UACjB,GAAIH,KAAKI,KAAM,CACXD,EAAQE,KAAK,e,KACV,CACHF,EAAQE,KAAK,gB,CAEjB,GAAIL,KAAKM,SAAWN,KAAKO,oBAAsBP,KAAKQ,aAAc,CAC9DL,EAAQE,KAAK,iBAAkB,4BAA4BL,KAAKS,Y,KAC7D,CACHN,EAAQE,KAAK,oB,CAGjB,OAAOF,EAAQO,KAAK,I,CAGxB,sBAAIC,GACA,MAAMR,EAAU,CAAC,eACjB,GAAIH,KAAKI,KAAM,CACXD,EAAQE,KAAK,oBAAoBL,KAAKI,O,KACnC,CACHD,EAAQE,KAAK,0B,CAEjB,IAAKL,KAAKM,QAAS,CACfH,EAAQE,KAAK,8B,CAGjB,OAAOF,EAAQO,KAAK,I,CAGxB,kBAAIE,GACA,QAASZ,KAAKa,aAAeb,KAAKc,qB,CAGtC,YAAIC,GACA,QAASf,KAAKgB,OAAShB,KAAKiB,mB,CAGhC,yBAAIH,GACA,MAAMI,IAAiBlB,KAAKmB,YAAYC,UAAUC,OAClD,MAAMC,EAAiBtB,KAAKmB,YAAYI,iBAAiB,mBAAmBC,OAC5E,MAAMC,EAAqBzB,KAAKmB,YAAYO,WAAWF,OAEvD,OAAON,GAAgBO,EAAqBH,C,CAGhD,uBAAIL,GACA,OAAOU,EAAe3B,KAAKmB,YAAa,Q,CAG5C,gBAAIS,GACA,MAAMzB,EAAU,CAAC,SACjB,GAAIH,KAAKI,KAAM,CACXD,EAAQE,KAAK,cAAcL,KAAKI,O,KAC7B,CACHD,EAAQE,KAAK,oB,CAEjB,IAAKL,KAAKM,QAAS,CACfH,EAAQE,KAAK,mB,CAGjB,OAAOF,EAAQO,KAAK,I,CAGxB,sBAAIH,GACA,OAAOP,KAAKY,iBAAmBZ,KAAKe,Q,CAGxC,gBAAIP,GACA,OAAOR,KAAKe,WAAaf,KAAKY,c,CAGlC,gBAAAX,GACI,MAAM4B,EAAeC,MAAMC,KACvB/B,KAAKmB,YAAYI,iBAAiB,wDAEtCM,EAAaG,SAAQC,IACjBA,EAAQC,SAAWlC,KAAKI,IAAI,G,CAOpC,MAAA+B,GACI,OACIC,EAAA,OAAAC,IAAA,2CAAKC,MAAOtC,KAAKE,eACZF,KAAKe,UACFqB,EAAA,OAAAC,IAAA,2CACIC,MAAOtC,KAAK4B,aAAY,qBACJ5B,KAAKa,YAAc,oBAAsB0B,aAE1DvC,KAAKgB,MAAQwB,EAAIxC,KAAKgB,OAAShB,KAAKiB,oBAAsBmB,EAAA,QAAMK,KAAK,UAAa,IAG5FzC,KAAKY,gBACFwB,EAAA,OAAAC,IAAA,2CACIK,GAAG,oBACHJ,MAAOtC,KAAKW,sBAETX,KAAKa,YAAc2B,EAAIxC,KAAKa,aAAeb,KAAKc,sBAAwBsB,EAAA,aAAW,I"}