q2-tecton-elements 1.52.2 → 1.54.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (361) hide show
  1. package/dist/bundle-report.json +43422 -0
  2. package/dist/cjs/{action-sheet-d32c41ae.js → action-sheet-8254c0fd.js} +6 -3
  3. package/dist/cjs/action-sheet-8254c0fd.js.map +1 -0
  4. package/dist/cjs/click-elsewhere.cjs.entry.js +96 -0
  5. package/dist/cjs/click-elsewhere.cjs.entry.js.map +1 -0
  6. package/dist/cjs/{index-07285783.js → index-76f63767.js} +1 -21
  7. package/dist/cjs/index-76f63767.js.map +1 -0
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/cjs/q2-action-group.cjs.entry.js +38 -17
  10. package/dist/cjs/q2-action-group.cjs.entry.js.map +1 -1
  11. package/dist/cjs/q2-action-sheet.cjs.entry.js +1 -1
  12. package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
  13. package/dist/cjs/q2-avatar.cjs.entry.js.map +1 -1
  14. package/dist/cjs/q2-badge_7.cjs.entry.js +52 -18
  15. package/dist/cjs/q2-badge_7.cjs.entry.js.map +1 -1
  16. package/dist/cjs/q2-calendar.cjs.entry.js +1 -1
  17. package/dist/cjs/q2-card.cjs.entry.js +1 -1
  18. package/dist/cjs/q2-carousel-pane.cjs.entry.js +1 -1
  19. package/dist/cjs/q2-carousel.cjs.entry.js +1 -1
  20. package/dist/cjs/q2-chart-area.cjs.entry.js +1 -1
  21. package/dist/cjs/q2-chart-bar.cjs.entry.js +1 -1
  22. package/dist/cjs/q2-chart-donut.cjs.entry.js +1 -1
  23. package/dist/cjs/q2-checkbox-group.cjs.entry.js +1 -1
  24. package/dist/cjs/q2-checkbox.cjs.entry.js +1 -1
  25. package/dist/cjs/q2-data-table.cjs.entry.js +1 -1
  26. package/dist/cjs/q2-detail.cjs.entry.js +1 -1
  27. package/dist/cjs/q2-dropdown-item.cjs.entry.js +17 -16
  28. package/dist/cjs/q2-dropdown-item.cjs.entry.js.map +1 -1
  29. package/dist/cjs/q2-dropdown.cjs.entry.js +48 -99
  30. package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
  31. package/dist/cjs/q2-editable-field.cjs.entry.js +1 -1
  32. package/dist/cjs/q2-file-picker.cjs.entry.js +236 -0
  33. package/dist/cjs/q2-file-picker.cjs.entry.js.map +1 -0
  34. package/dist/cjs/q2-item_3.cjs.entry.js +251 -0
  35. package/dist/cjs/q2-item_3.cjs.entry.js.map +1 -0
  36. package/dist/cjs/q2-loc.cjs.entry.js +1 -1
  37. package/dist/cjs/q2-message.cjs.entry.js +1 -1
  38. package/dist/cjs/q2-month-picker.cjs.entry.js +1 -1
  39. package/dist/cjs/q2-optgroup.cjs.entry.js +1 -1
  40. package/dist/cjs/{q2-option-list.cjs.entry.js → q2-option-list_2.cjs.entry.js} +355 -21
  41. package/dist/cjs/q2-option-list_2.cjs.entry.js.map +1 -0
  42. package/dist/cjs/q2-option.cjs.entry.js +18 -4
  43. package/dist/cjs/q2-option.cjs.entry.js.map +1 -1
  44. package/dist/cjs/q2-pagination.cjs.entry.js +4 -4
  45. package/dist/cjs/q2-pill.cjs.entry.js +14 -9
  46. package/dist/cjs/q2-pill.cjs.entry.js.map +1 -1
  47. package/dist/cjs/q2-radio-group.cjs.entry.js +1 -1
  48. package/dist/cjs/q2-radio.cjs.entry.js +1 -1
  49. package/dist/cjs/q2-relative-time.cjs.entry.js +2 -2
  50. package/dist/cjs/q2-resize-observer.cjs.entry.js +1 -1
  51. package/dist/cjs/q2-section.cjs.entry.js +3 -3
  52. package/dist/cjs/q2-select.cjs.entry.js +8 -5
  53. package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
  54. package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
  55. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +2 -2
  56. package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
  57. package/dist/cjs/q2-tag.cjs.entry.js +9 -4
  58. package/dist/cjs/q2-tag.cjs.entry.js.map +1 -1
  59. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  60. package/dist/cjs/q2-textarea.cjs.entry.js +1 -1
  61. package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
  62. package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
  63. package/dist/collection/collection-manifest.json +1 -0
  64. package/dist/collection/components/q2-action-group/q2-action-group.css +25 -8
  65. package/dist/collection/components/q2-action-group/q2-action-group.js +55 -33
  66. package/dist/collection/components/q2-action-group/q2-action-group.js.map +1 -1
  67. package/dist/collection/components/q2-action-group/test/q2-action-group.e2e.js +142 -6
  68. package/dist/collection/components/q2-action-group/test/q2-action-group.e2e.js.map +1 -1
  69. package/dist/collection/components/q2-action-group/test/q2-action-group.spec.js +126 -62
  70. package/dist/collection/components/q2-action-group/test/q2-action-group.spec.js.map +1 -1
  71. package/dist/collection/components/q2-action-sheet/test/q2-action-sheet-test.e2e.js +1 -1
  72. package/dist/collection/components/q2-action-sheet/test/q2-action-sheet-test.e2e.js.map +1 -1
  73. package/dist/collection/components/q2-avatar/q2-avatar.css +5 -0
  74. package/dist/collection/components/q2-btn/q2-btn.css +74 -0
  75. package/dist/collection/components/q2-btn/q2-btn.js +50 -16
  76. package/dist/collection/components/q2-btn/q2-btn.js.map +1 -1
  77. package/dist/collection/components/q2-btn/test/q2-btn-test.e2e.js +29 -0
  78. package/dist/collection/components/q2-btn/test/q2-btn-test.e2e.js.map +1 -1
  79. package/dist/collection/components/q2-dropdown/q2-dropdown.js +83 -103
  80. package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
  81. package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js +188 -24
  82. package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js.map +1 -1
  83. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.css +1 -1
  84. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js +54 -16
  85. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js.map +1 -1
  86. package/dist/collection/components/q2-file-picker/q2-file-picker.css +307 -0
  87. package/dist/collection/components/q2-file-picker/q2-file-picker.js +426 -0
  88. package/dist/collection/components/q2-file-picker/q2-file-picker.js.map +1 -0
  89. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.e2e.js +11 -0
  90. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.e2e.js.map +1 -0
  91. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.spec.js +435 -0
  92. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.spec.js.map +1 -0
  93. package/dist/collection/components/q2-item/q2-item.css +3 -0
  94. package/dist/collection/components/q2-link/q2-link.js +26 -7
  95. package/dist/collection/components/q2-link/q2-link.js.map +1 -1
  96. package/dist/collection/components/q2-link/test/q2-link-test.e2e.js +20 -118
  97. package/dist/collection/components/q2-link/test/q2-link-test.e2e.js.map +1 -1
  98. package/dist/collection/components/q2-link/test/q2-link-test.spec.js +193 -0
  99. package/dist/collection/components/q2-link/test/q2-link-test.spec.js.map +1 -0
  100. package/dist/collection/components/q2-list/q2-list.css +6 -0
  101. package/dist/collection/components/q2-loading/q2-loading.js +1 -1
  102. package/dist/collection/components/q2-loading/q2-loading.js.map +1 -1
  103. package/dist/collection/components/q2-option/q2-option.css +9 -3
  104. package/dist/collection/components/q2-option/q2-option.js +37 -4
  105. package/dist/collection/components/q2-option/q2-option.js.map +1 -1
  106. package/dist/collection/components/q2-option/test/q2-option-test.spec.js +22 -0
  107. package/dist/collection/components/q2-option/test/q2-option-test.spec.js.map +1 -1
  108. package/dist/collection/components/q2-option-list/q2-option-list.js +56 -29
  109. package/dist/collection/components/q2-option-list/q2-option-list.js.map +1 -1
  110. package/dist/collection/components/q2-option-list/test/q2-option-list.spec.js +489 -0
  111. package/dist/collection/components/q2-option-list/test/q2-option-list.spec.js.map +1 -0
  112. package/dist/collection/components/q2-pagination/q2-pagination.js +3 -3
  113. package/dist/collection/components/q2-pill/q2-pill.js +12 -7
  114. package/dist/collection/components/q2-pill/q2-pill.js.map +1 -1
  115. package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js +109 -1
  116. package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js.map +1 -1
  117. package/dist/collection/components/q2-popover/q2-popover.js +1 -1
  118. package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
  119. package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
  120. package/dist/collection/components/q2-resize-observer/q2-resize-observer.js +1 -1
  121. package/dist/collection/components/q2-section/q2-section.js +2 -2
  122. package/dist/collection/components/q2-select/q2-select.js +7 -4
  123. package/dist/collection/components/q2-select/q2-select.js.map +1 -1
  124. package/dist/collection/components/q2-select/test/q2-select-test.e2e.js +1 -14
  125. package/dist/collection/components/q2-select/test/q2-select-test.e2e.js.map +1 -1
  126. package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
  127. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
  128. package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
  129. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
  130. package/dist/collection/components/q2-tag/q2-tag.js +7 -2
  131. package/dist/collection/components/q2-tag/q2-tag.js.map +1 -1
  132. package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js +1 -1
  133. package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js.map +1 -1
  134. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
  135. package/dist/collection/utils/action-sheet.js +5 -2
  136. package/dist/collection/utils/action-sheet.js.map +1 -1
  137. package/dist/collection/utils/helpers.js +29 -3
  138. package/dist/collection/utils/helpers.js.map +1 -1
  139. package/dist/collection/utils/test/action-sheet-test.e2e.js +34 -6
  140. package/dist/collection/utils/test/action-sheet-test.e2e.js.map +1 -1
  141. package/dist/components/action-sheet.js +6 -3
  142. package/dist/components/action-sheet.js.map +1 -1
  143. package/dist/components/index.js +2 -0
  144. package/dist/components/index.js.map +1 -1
  145. package/dist/components/index2.js +1 -20
  146. package/dist/components/index2.js.map +1 -1
  147. package/dist/components/q2-action-group.js +41 -19
  148. package/dist/components/q2-action-group.js.map +1 -1
  149. package/dist/components/q2-avatar2.js +1 -1
  150. package/dist/components/q2-avatar2.js.map +1 -1
  151. package/dist/components/q2-btn2.js +50 -16
  152. package/dist/components/q2-btn2.js.map +1 -1
  153. package/dist/components/q2-dropdown-item2.js +19 -17
  154. package/dist/components/q2-dropdown-item2.js.map +1 -1
  155. package/dist/components/q2-dropdown.js +67 -110
  156. package/dist/components/q2-dropdown.js.map +1 -1
  157. package/dist/components/q2-file-picker.d.ts +11 -0
  158. package/dist/components/q2-file-picker.js +301 -0
  159. package/dist/components/q2-file-picker.js.map +1 -0
  160. package/dist/components/q2-item.js +1 -130
  161. package/dist/components/q2-item.js.map +1 -1
  162. package/dist/{esm/q2-item.entry.js → components/q2-item2.js} +29 -11
  163. package/dist/components/q2-item2.js.map +1 -0
  164. package/dist/components/q2-link.js +1 -86
  165. package/dist/components/q2-link.js.map +1 -1
  166. package/dist/{esm/q2-link.entry.js → components/q2-link2.js} +42 -10
  167. package/dist/components/q2-link2.js.map +1 -0
  168. package/dist/components/q2-list.js +1 -94
  169. package/dist/components/q2-list.js.map +1 -1
  170. package/dist/{esm/q2-list.entry.js → components/q2-list2.js} +30 -11
  171. package/dist/components/q2-list2.js.map +1 -0
  172. package/dist/components/q2-loading2.js.map +1 -1
  173. package/dist/components/q2-option-list2.js +44 -19
  174. package/dist/components/q2-option-list2.js.map +1 -1
  175. package/dist/components/q2-option2.js +20 -4
  176. package/dist/components/q2-option2.js.map +1 -1
  177. package/dist/components/q2-pagination.js +3 -3
  178. package/dist/components/q2-pill.js +13 -8
  179. package/dist/components/q2-pill.js.map +1 -1
  180. package/dist/components/q2-popover2.js +1 -1
  181. package/dist/components/q2-popover2.js.map +1 -1
  182. package/dist/components/q2-relative-time.js +1 -1
  183. package/dist/components/q2-resize-observer2.js +1 -1
  184. package/dist/components/q2-section.js +2 -2
  185. package/dist/components/q2-select2.js +8 -5
  186. package/dist/components/q2-select2.js.map +1 -1
  187. package/dist/components/q2-stepper-vertical.js +1 -1
  188. package/dist/components/q2-stepper.js +1 -1
  189. package/dist/components/q2-tab-container.js +1 -1
  190. package/dist/components/q2-tab-pane.js +1 -1
  191. package/dist/components/q2-tag.js +8 -3
  192. package/dist/components/q2-tag.js.map +1 -1
  193. package/dist/components/tecton-tab-pane.js +2 -2
  194. package/dist/esm/{action-sheet-e64cb6f7.js → action-sheet-1e24cb38.js} +7 -4
  195. package/dist/esm/action-sheet-1e24cb38.js.map +1 -0
  196. package/dist/esm/click-elsewhere.entry.js +92 -0
  197. package/dist/esm/click-elsewhere.entry.js.map +1 -0
  198. package/dist/esm/{index-d18e2a20.js → index-504f1a9e.js} +2 -21
  199. package/dist/esm/index-504f1a9e.js.map +1 -0
  200. package/dist/esm/loader.js +1 -1
  201. package/dist/esm/q2-action-group.entry.js +39 -18
  202. package/dist/esm/q2-action-group.entry.js.map +1 -1
  203. package/dist/esm/q2-action-sheet.entry.js +1 -1
  204. package/dist/esm/q2-avatar.entry.js +1 -1
  205. package/dist/esm/q2-avatar.entry.js.map +1 -1
  206. package/dist/esm/q2-badge_7.entry.js +52 -18
  207. package/dist/esm/q2-badge_7.entry.js.map +1 -1
  208. package/dist/esm/q2-calendar.entry.js +1 -1
  209. package/dist/esm/q2-card.entry.js +1 -1
  210. package/dist/esm/q2-carousel-pane.entry.js +1 -1
  211. package/dist/esm/q2-carousel.entry.js +1 -1
  212. package/dist/esm/q2-chart-area.entry.js +1 -1
  213. package/dist/esm/q2-chart-bar.entry.js +1 -1
  214. package/dist/esm/q2-chart-donut.entry.js +1 -1
  215. package/dist/esm/q2-checkbox-group.entry.js +1 -1
  216. package/dist/esm/q2-checkbox.entry.js +1 -1
  217. package/dist/esm/q2-data-table.entry.js +1 -1
  218. package/dist/esm/q2-detail.entry.js +1 -1
  219. package/dist/esm/q2-dropdown-item.entry.js +18 -17
  220. package/dist/esm/q2-dropdown-item.entry.js.map +1 -1
  221. package/dist/esm/q2-dropdown.entry.js +48 -99
  222. package/dist/esm/q2-dropdown.entry.js.map +1 -1
  223. package/dist/esm/q2-editable-field.entry.js +1 -1
  224. package/dist/esm/q2-file-picker.entry.js +232 -0
  225. package/dist/esm/q2-file-picker.entry.js.map +1 -0
  226. package/dist/esm/q2-item_3.entry.js +245 -0
  227. package/dist/esm/q2-item_3.entry.js.map +1 -0
  228. package/dist/esm/q2-loc.entry.js +1 -1
  229. package/dist/esm/q2-message.entry.js +1 -1
  230. package/dist/esm/q2-month-picker.entry.js +1 -1
  231. package/dist/esm/q2-optgroup.entry.js +1 -1
  232. package/dist/esm/{q2-option-list.entry.js → q2-option-list_2.entry.js} +355 -22
  233. package/dist/esm/q2-option-list_2.entry.js.map +1 -0
  234. package/dist/esm/q2-option.entry.js +18 -4
  235. package/dist/esm/q2-option.entry.js.map +1 -1
  236. package/dist/esm/q2-pagination.entry.js +4 -4
  237. package/dist/esm/q2-pill.entry.js +14 -9
  238. package/dist/esm/q2-pill.entry.js.map +1 -1
  239. package/dist/esm/q2-radio-group.entry.js +1 -1
  240. package/dist/esm/q2-radio.entry.js +1 -1
  241. package/dist/esm/q2-relative-time.entry.js +2 -2
  242. package/dist/esm/q2-resize-observer.entry.js +1 -1
  243. package/dist/esm/q2-section.entry.js +3 -3
  244. package/dist/esm/q2-select.entry.js +8 -5
  245. package/dist/esm/q2-select.entry.js.map +1 -1
  246. package/dist/esm/q2-stepper-pane.entry.js +1 -1
  247. package/dist/esm/q2-stepper-vertical.entry.js +2 -2
  248. package/dist/esm/q2-stepper.entry.js +2 -2
  249. package/dist/esm/q2-tag.entry.js +9 -4
  250. package/dist/esm/q2-tag.entry.js.map +1 -1
  251. package/dist/esm/q2-tecton-elements.js +1 -1
  252. package/dist/esm/q2-textarea.entry.js +1 -1
  253. package/dist/esm/q2-tooltip.entry.js +1 -1
  254. package/dist/esm/tecton-tab-pane.entry.js +2 -2
  255. package/dist/q2-tecton-elements/action-sheet-1e24cb38.js +80 -0
  256. package/dist/q2-tecton-elements/action-sheet-1e24cb38.js.map +1 -0
  257. package/dist/q2-tecton-elements/click-elsewhere.entry.js +90 -0
  258. package/dist/q2-tecton-elements/click-elsewhere.entry.js.map +1 -0
  259. package/dist/q2-tecton-elements/{index-d18e2a20.js → index-504f1a9e.js} +51 -69
  260. package/dist/q2-tecton-elements/index-504f1a9e.js.map +1 -0
  261. package/dist/q2-tecton-elements/q2-action-group.entry.js +57 -33
  262. package/dist/q2-tecton-elements/q2-action-group.entry.js.map +1 -1
  263. package/dist/q2-tecton-elements/q2-action-sheet.entry.js +1 -1
  264. package/dist/q2-tecton-elements/q2-avatar.entry.js +1 -1
  265. package/dist/q2-tecton-elements/q2-avatar.entry.js.map +1 -1
  266. package/dist/q2-tecton-elements/q2-badge_7.entry.js +222 -181
  267. package/dist/q2-tecton-elements/q2-badge_7.entry.js.map +1 -1
  268. package/dist/q2-tecton-elements/q2-calendar.entry.js +1 -1
  269. package/dist/q2-tecton-elements/q2-card.entry.js +1 -1
  270. package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +1 -1
  271. package/dist/q2-tecton-elements/q2-carousel.entry.js +1 -1
  272. package/dist/q2-tecton-elements/q2-chart-area.entry.js +1 -1
  273. package/dist/q2-tecton-elements/q2-chart-bar.entry.js +1 -1
  274. package/dist/q2-tecton-elements/q2-chart-donut.entry.js +1 -1
  275. package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +1 -1
  276. package/dist/q2-tecton-elements/q2-checkbox.entry.js +1 -1
  277. package/dist/q2-tecton-elements/q2-data-table.entry.js +1 -1
  278. package/dist/q2-tecton-elements/q2-detail.entry.js +1 -1
  279. package/dist/q2-tecton-elements/q2-dropdown-item.entry.js +34 -34
  280. package/dist/q2-tecton-elements/q2-dropdown-item.entry.js.map +1 -1
  281. package/dist/q2-tecton-elements/q2-dropdown.entry.js +86 -137
  282. package/dist/q2-tecton-elements/q2-dropdown.entry.js.map +1 -1
  283. package/dist/q2-tecton-elements/q2-editable-field.entry.js +1 -1
  284. package/dist/q2-tecton-elements/q2-file-picker.entry.js +339 -0
  285. package/dist/q2-tecton-elements/q2-file-picker.entry.js.map +1 -0
  286. package/dist/q2-tecton-elements/q2-item_3.entry.js +332 -0
  287. package/dist/q2-tecton-elements/q2-item_3.entry.js.map +1 -0
  288. package/dist/q2-tecton-elements/q2-loc.entry.js +1 -1
  289. package/dist/q2-tecton-elements/q2-message.entry.js +1 -1
  290. package/dist/q2-tecton-elements/q2-month-picker.entry.js +1 -1
  291. package/dist/q2-tecton-elements/q2-optgroup.entry.js +1 -1
  292. package/dist/q2-tecton-elements/q2-option-list_2.entry.js +902 -0
  293. package/dist/q2-tecton-elements/q2-option-list_2.entry.js.map +1 -0
  294. package/dist/q2-tecton-elements/q2-option.entry.js +31 -21
  295. package/dist/q2-tecton-elements/q2-option.entry.js.map +1 -1
  296. package/dist/q2-tecton-elements/q2-pagination.entry.js +34 -34
  297. package/dist/q2-tecton-elements/q2-pill.entry.js +24 -20
  298. package/dist/q2-tecton-elements/q2-pill.entry.js.map +1 -1
  299. package/dist/q2-tecton-elements/q2-radio-group.entry.js +1 -1
  300. package/dist/q2-tecton-elements/q2-radio.entry.js +1 -1
  301. package/dist/q2-tecton-elements/q2-relative-time.entry.js +2 -2
  302. package/dist/q2-tecton-elements/q2-resize-observer.entry.js +1 -1
  303. package/dist/q2-tecton-elements/q2-section.entry.js +19 -19
  304. package/dist/q2-tecton-elements/q2-select.entry.js +21 -18
  305. package/dist/q2-tecton-elements/q2-select.entry.js.map +1 -1
  306. package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +1 -1
  307. package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +37 -37
  308. package/dist/q2-tecton-elements/q2-stepper.entry.js +29 -29
  309. package/dist/q2-tecton-elements/q2-tag.entry.js +15 -11
  310. package/dist/q2-tecton-elements/q2-tag.entry.js.map +1 -1
  311. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  312. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
  313. package/dist/q2-tecton-elements/q2-textarea.entry.js +1 -1
  314. package/dist/q2-tecton-elements/q2-tooltip.entry.js +1 -1
  315. package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +6 -6
  316. package/dist/types/components/q2-action-group/q2-action-group.d.ts +19 -11
  317. package/dist/types/components/q2-btn/q2-btn.d.ts +8 -3
  318. package/dist/types/components/q2-dropdown/q2-dropdown.d.ts +18 -9
  319. package/dist/types/components/q2-dropdown-item/q2-dropdown-item.d.ts +14 -1
  320. package/dist/types/components/q2-file-picker/q2-file-picker.d.ts +98 -0
  321. package/dist/types/components/q2-link/q2-link.d.ts +8 -6
  322. package/dist/types/components/q2-loading/q2-loading.d.ts +2 -2
  323. package/dist/types/components/q2-option/q2-option.d.ts +10 -1
  324. package/dist/types/components/q2-option-list/q2-option-list.d.ts +9 -8
  325. package/dist/types/components/q2-pill/q2-pill.d.ts +2 -2
  326. package/dist/types/components.d.ts +192 -28
  327. package/dist/types/util.d.ts +1 -0
  328. package/dist/types/utils/helpers.d.ts +1 -1
  329. package/package.json +4 -3
  330. package/dist/cjs/action-sheet-d32c41ae.js.map +0 -1
  331. package/dist/cjs/click-elsewhere_2.cjs.entry.js +0 -406
  332. package/dist/cjs/click-elsewhere_2.cjs.entry.js.map +0 -1
  333. package/dist/cjs/index-07285783.js.map +0 -1
  334. package/dist/cjs/q2-item.cjs.entry.js +0 -120
  335. package/dist/cjs/q2-item.cjs.entry.js.map +0 -1
  336. package/dist/cjs/q2-link.cjs.entry.js +0 -64
  337. package/dist/cjs/q2-link.cjs.entry.js.map +0 -1
  338. package/dist/cjs/q2-list.cjs.entry.js +0 -83
  339. package/dist/cjs/q2-list.cjs.entry.js.map +0 -1
  340. package/dist/cjs/q2-option-list.cjs.entry.js.map +0 -1
  341. package/dist/esm/action-sheet-e64cb6f7.js.map +0 -1
  342. package/dist/esm/click-elsewhere_2.entry.js +0 -401
  343. package/dist/esm/click-elsewhere_2.entry.js.map +0 -1
  344. package/dist/esm/index-d18e2a20.js.map +0 -1
  345. package/dist/esm/q2-item.entry.js.map +0 -1
  346. package/dist/esm/q2-link.entry.js.map +0 -1
  347. package/dist/esm/q2-list.entry.js.map +0 -1
  348. package/dist/esm/q2-option-list.entry.js.map +0 -1
  349. package/dist/q2-tecton-elements/action-sheet-e64cb6f7.js +0 -77
  350. package/dist/q2-tecton-elements/action-sheet-e64cb6f7.js.map +0 -1
  351. package/dist/q2-tecton-elements/click-elsewhere_2.entry.js +0 -398
  352. package/dist/q2-tecton-elements/click-elsewhere_2.entry.js.map +0 -1
  353. package/dist/q2-tecton-elements/index-d18e2a20.js.map +0 -1
  354. package/dist/q2-tecton-elements/q2-item.entry.js +0 -158
  355. package/dist/q2-tecton-elements/q2-item.entry.js.map +0 -1
  356. package/dist/q2-tecton-elements/q2-link.entry.js +0 -83
  357. package/dist/q2-tecton-elements/q2-link.entry.js.map +0 -1
  358. package/dist/q2-tecton-elements/q2-list.entry.js +0 -100
  359. package/dist/q2-tecton-elements/q2-list.entry.js.map +0 -1
  360. package/dist/q2-tecton-elements/q2-option-list.entry.js +0 -585
  361. package/dist/q2-tecton-elements/q2-option-list.entry.js.map +0 -1
@@ -0,0 +1,339 @@
1
+ import { r as t, c as e, h as i, F as r, g as o } from "./index-7a5365e2.js";
2
+
3
+ import { l as s, e as a } from "./index-504f1a9e.js";
4
+
5
+ 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}*{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 growFromCenterFadeIn{from{transform:scaleX(0.75) scaleY(0.75);opacity:0}to{transform:scaleX(1) scaleY(1);opacity:1}}@keyframes shrinkToCenterFadeOut{from{transform:scaleX(1) scaleY(1);opacity:1}to{transform:scaleX(0.75) scaleY(0.75);opacity:0}}:host{display:block}.browse{text-align:left}.drop-zone-text{color:var(--tct-file-picker-drop-zone-text-color, var(--t-gray-6, #4D4D4D));font-size:var(--tct-file-picker-drop-zone-font-size, var(--app-font-size-small, 12px));font-weight:var(--tct-file-picker-browse-link-font-weight, 700);margin-bottom:0;margin-top:var(--tct-file-picker-drop-zone-text-margin-top, var(--app-scale-2x, 10px))}.description{color:var(--tct-file-picker-description-text-color, var(--t-gray-1, #0D0D0D));font-size:var(--tct-file-picker-description-font-size, var(--app-font-size-small, 12px));font-weight:var(--tct-file-picker-description-font-weight, 400);text-align:var(--tct-file-picker-description-text-align, left)}.drop-zone{align-items:center;background-color:var(--tct-file-picker-drop-zone-background, var(--t-tertiary, #E8F5FC));border-radius:var(--tct-file-picker-drop-zone-border-radius, var(--app-border-radius-2, 6px));border-width:var(--tct-file-picker-drop-zone-border-width, 2px);border-style:var(--tct-file-picker-drop-zone-border-style, dashed);border-color:var(--tct-file-picker-drop-zone-border-color, var(--t-gray-8, #808080));color:var(--tct-file-picker-drop-zone-color, #747474);display:flex;flex-direction:column;font-size:var(--tct-file-picker-drop-zone-font-size, --app-font-size, 14px);font-weight:var(--tct-file-picker-drop-zone-font-weight, 400);height:var(--tct-file-picker-drop-zone-height, 150px);justify-content:center;padding:var(--tct-file-picker-drop-zone-padding, 20px);text-align:center;width:var(--tct-file-picker-drop-zone-width, 100%)}.drop-zone-highlighted{background-color:var(--tct-file-picker-drop-zone-highlighted-background, var(--tertiary-d-1, #BEE1F6));border-color:var(--tct-file-picker-drop-zone-highlighted-border, var(--t-gray-8, #808080))}.fade-in{animation-fill-mode:both;animation-play-state:running;animation:growFromCenterFadeIn 0.2s ease-in}.fade-out{animation:shrinkToCenterFadeOut 0.1s ease-out;animation-play-state:running;animation-fill-mode:both}.file-item{--tct-btn-icon-border-radius:4px;--tct-btn-neutral-text-active-font-color:var(--tct-file-picker-item-close-btn-active-color, var(--t-gray-1, #0D0D0D));--tct-btn-neutral-text-focus-visible-outer-ring-color:var(--tct-file-picker-item-close-btn-color, var(--t-gray-1, #0D0D0D));--tct-btn-neutral-text-font-color:var(--tct-file-picker-item-close-btn-color, var(--t-gray-1, #0D0D0D));--tct-btn-neutral-text-hover-outer-ring-color:var(--tct-file-picker-item-close-btn-hover-focus-ring-color, var(--t-gray-1, #0D0D0D));--tct-btn-padding:0;--tct-icon-stroke-primary:var(--tct-file-picker-item-close-btn-color, var(--t-gray-1, #0D0D0D));--tct-item-body-font-size:var(--tct-file-picker-item-font-size, var(--app-font-size-small, 12px));--tct-item-body-font-weight:var(--tct-file-picker-item-font-weight, 400);--tct-item-border-radius:var(--tct-file-picker-item-border-radius, var(--app-border-radius-3, 12px));--tct-item-border:var(--tct-file-picker-item-border-width, 1px) solid var(--tct-file-picker-item-border-color, var(--t-gray-8, #808080));--tct-item-header-color:var(--tct-file-picker-item-name-color, var(--t-gray-1, #0D0D0D));--tct-item-header-font-size:var(--tct-file-picker-item-name-font-size, var(--app-font-size-small, 12px));--tct-item-header-font-weight:var(--tct-file-picker-item-name-font-weight, 400);--tct-item-padding:var(--tct-file-picker-item-padding, var(--app-scale-1x, 5px) var(--app-scale-2x, 10px));text-align:left}.file-item-loading{font-size:var(--tct-file-picker-file-item-loading-size, var(--app-scale-6x, 30px));margin-bottom:calc(var(--tct-file-picker-file-item-loading-margin-bottom, var(--app-scale-6x, 30px)) / 8.57);margin-left:calc(var(--tct-file-picker-file-item-loading-margin-bottom, var(--app-scale-1x, 5px)) / 2)}.file-list{--tct-list-item-gap:var(--tct-file-picker-section-gap, var(--app-scale-3x, 15px))}.file-list-container{max-height:var(--tct-file-picker-list-max-height, 190px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--tct-file-picker-scrollbar-color, var(--t-a11y-gray-color, #949494)) transparent}.file-picker{display:flex;flex-direction:column;gap:var(--tct-file-picker-file-item-gap, var(--app-scale-3x, 15px))}.heading{display:flex;flex-direction:column;gap:var(--tct-file-picker-heading-gap, var(--app-scale-1x, 5px));justify-content:space-between}.icon-success,.icon-error{--tct-icon-size:var(--tct-file-picker-file-item-icon-size, var(--app-scale-6x, 30px));--tct-icon-stroke-width:2px}.label{color:var(--tct-file-picker-label-color, var(--t-gray-1, #0D0D0D));display:inline-block;font-size:var(--tct-file-picker-label-font-size, var(--app-font-size, 14px));font-weight:var(--tct-file-picker-label-font-weight, 600);text-align:var(--tct-file-picker-label-text-align, left)}.loading{font-size:var(--tct-file-picker-loading-size, var(--app-scale-6x, 25px))}.loading-file{color:var(--tct-file-picker-loading-file-color, var(--t-gray-1, #0D0D0D));font-size:var(--tct-file-picker-loading-file-font-size, var(--app-font-size-small, 12px));font-weight:var(--tct-file-picker-loading-file-font-weight, 400);margin:0}.loading-message{color:var(--tct-file-picker-loading-message-color, var(--t-gray-1, #0D0D0D));font-size:var(--tct-file-picker-loading-message-font-size, var(--app-font-size-small, 12px));font-weight:var(--tct-file-picker-loading-message-font-weight, 700);margin-bottom:var(--tct-file-picker-loading-message-margin-bottom, var(--app-scale-2x, 10px));margin-top:var(--tct-file-picker-loading-message-margin-top, var(--app-scale-2x, 10px))}.dismiss-button{height:30px;width:30px}.dismiss-button:hover{--tct-icon-stroke-primary:var(--tct-file-picker-item-close-btn-hover-color, var(--t-gray-1, #0D0D0D))}[slot=action]{display:flex;align-items:center}";
6
+
7
+ const l = n;
8
+
9
+ const c = class {
10
+ constructor(o) {
11
+ t(this, o);
12
+ this.tctChange = e(this, "tctChange", 7);
13
+ this.queuedFiles = [];
14
+ this.dimDropZone = t => {
15
+ this.disableEvent(t);
16
+ this.isDropZoneHighlighted = false;
17
+ };
18
+ this.grabDroppedFiles = t => {
19
+ this.disableEvent(t);
20
+ this.isDropZoneHighlighted = false;
21
+ const e = Array.from(t.dataTransfer.files);
22
+ const i = this.buildFilesObject(e);
23
+ this.emitChange(i);
24
+ this.value = i;
25
+ };
26
+ this.grabSelectedFiles = t => {
27
+ const e = Array.from(t.target.files);
28
+ const i = this.buildFilesObject(e);
29
+ this.emitChange(i);
30
+ this.value = i;
31
+ };
32
+ this.highlightDropZone = t => {
33
+ this.disableEvent(t);
34
+ this.isDropZoneHighlighted = true;
35
+ };
36
+ // #endregion
37
+ // #region Render Methods
38
+ this.render = () => i("div", {
39
+ class: "file-picker"
40
+ }, (this.hasLabel || this.hasDescription) && i("div", {
41
+ class: "heading"
42
+ }, this.hasLabel && i("label", {
43
+ class: "label",
44
+ htmlFor: "file-field",
45
+ "test-id": "label"
46
+ }, !!this.label ? s(this.label) : this.hasLabelSlotContent ? i("slot", {
47
+ name: "label"
48
+ }) : ""), this.hasDescription && i("div", {
49
+ class: "description",
50
+ id: "description",
51
+ "test-id": "description"
52
+ }, !!this.description ? s(this.description) : this.hasDescriptionSlotContent ? i("slot", {
53
+ name: "description"
54
+ }) : "")), this.variant === "browse-drop" && i("div", {
55
+ class: this.dropZoneClasses,
56
+ onDragEnter: this.disableEvent,
57
+ onDragLeave: this.dimDropZone,
58
+ onDragOver: this.highlightDropZone,
59
+ onDrop: this.grabDroppedFiles,
60
+ ref: t => this.dropZone = t !== null && t !== void 0 ? t : this.dropZone,
61
+ "test-id": "drop-zone"
62
+ }, this.areFilesUploading && i(r, null, i("q2-loading", {
63
+ class: "loading"
64
+ }), i("p", {
65
+ class: "drop-zone-text"
66
+ }, s("tecton.element.filePicker.uploadingEllipsis"))) || i(r, null, i("q2-icon", {
67
+ type: "upload"
68
+ }), i("p", {
69
+ class: "drop-zone-text"
70
+ }, i("q2-link", {
71
+ label: s("tecton.element.filePicker.browse"),
72
+ onTctClick: () => this.launchFileBrowser(),
73
+ variant: "inline",
74
+ "test-id": "browse-link"
75
+ }), s("tecton.element.filePicker.orDragFilesHere", [ this.maxFiles ])))) || i("div", {
76
+ class: "browse",
77
+ "test-id": "browse"
78
+ }, i("q2-btn", {
79
+ disabled: this.areFilesUploading,
80
+ intent: "workflow-primary",
81
+ loading: this.areFilesUploading,
82
+ onClick: () => this.launchFileBrowser(),
83
+ size: "medium",
84
+ "test-id": "browse-button"
85
+ }, i("q2-icon", {
86
+ type: "paperclip"
87
+ }), i("span", null, s("tecton.element.filePicker.attachFiles", [ this.maxFiles ])))), i("input", {
88
+ "aria-describedby": !!this.description && "description" || undefined,
89
+ class: "sr",
90
+ id: "file-field",
91
+ onChange: this.grabSelectedFiles,
92
+ ref: t => this.browseButtonInput = t !== null && t !== void 0 ? t : this.browseButtonInput,
93
+ type: "file",
94
+ "test-id": "file-input",
95
+ multiple: true
96
+ }), i("div", {
97
+ class: "file-list-container"
98
+ }, i("q2-list", {
99
+ class: "file-list"
100
+ }, this.displayedFiles.map((t => i("q2-item", {
101
+ class: this.getFileItemClasses(t.file.name),
102
+ key: t.file.name,
103
+ onAnimationEnd: this.getAnimationendHandlerToRemoveFileItem(t.file.name)
104
+ }, i("div", {
105
+ slot: "bullet"
106
+ }, t.status === "invalid-type" || t.status === "over-size-limit" || t.status === "failed" || t.status === "over-max-files-limit" ? i("q2-icon", {
107
+ class: "icon-error",
108
+ type: "error"
109
+ }) : t.status === "in-progress" ? i("q2-loading", {
110
+ class: "file-item-loading"
111
+ }) : i("q2-icon", {
112
+ class: "icon-success",
113
+ type: "success"
114
+ })), i("div", {
115
+ slot: "header"
116
+ }, t.file.name), i("div", {
117
+ slot: "body"
118
+ }, this.getFileItemStatusMessage(t.status, t.file.size)), i("div", {
119
+ slot: "action"
120
+ }, i("q2-btn", {
121
+ class: "dismiss-button",
122
+ intent: "neutral-text",
123
+ onClick: this.getClickHandlerToRemoveFileItem(t.file.name)
124
+ }, i("q2-icon", {
125
+ type: "close"
126
+ })))))))));
127
+ this.areFilesUploading = false;
128
+ this.displayedFiles = [];
129
+ this.isDropZoneHighlighted = false;
130
+ this.refreshCounter = 0;
131
+ this.description = undefined;
132
+ this.fileTypes = [];
133
+ this.label = undefined;
134
+ this.maxFiles = Infinity;
135
+ this.maxFileSize = Infinity;
136
+ this.status = [];
137
+ this.value = {
138
+ invalidFiles: [],
139
+ validFiles: []
140
+ };
141
+ this.variant = "browse";
142
+ }
143
+ // #endregion
144
+ // #region Watchers
145
+ updateFileList(t) {
146
+ t.forEach((t => {
147
+ const e = this.queuedFiles.findIndex((e => e.name === t.name));
148
+ if (e > -1) {
149
+ const i = this.queuedFiles.splice(e, 1)[0];
150
+ this.displayedFiles = [ {
151
+ file: i,
152
+ status: t.status
153
+ }, ...this.displayedFiles ];
154
+ } else {
155
+ const e = this.displayedFiles.findIndex((e => e.file.name === t.name));
156
+ if (e > -1) {
157
+ this.displayedFiles[e].status = t.status;
158
+ this.disableLoaderIfAllFilesUploaded();
159
+ }
160
+ }
161
+ }));
162
+ }
163
+ // #endregion
164
+ // #region Local Methods
165
+ get dropZoneClasses() {
166
+ const t = [ "drop-zone" ];
167
+ if (this.isDropZoneHighlighted) {
168
+ t.push("drop-zone-highlighted");
169
+ }
170
+ return t.join(" ");
171
+ }
172
+ get fileTypesArray() {
173
+ return Array.isArray(this.fileTypes) ? this.fileTypes : this.fileTypes.split(",");
174
+ }
175
+ get hasDescription() {
176
+ return !!this.description || this.hasDescriptionSlotContent;
177
+ }
178
+ get hasDescriptionSlotContent() {
179
+ return a(this.el, "description");
180
+ }
181
+ get hasLabel() {
182
+ return !!this.label || this.hasLabelSlotContent;
183
+ }
184
+ get hasLabelSlotContent() {
185
+ return a(this.el, "label");
186
+ }
187
+ buildFilesObject(t) {
188
+ const e = [];
189
+ e.push(...this.extractFilesOfInvalidTypes(t));
190
+ e.push(...this.extractFilesOverSizeLimit(t));
191
+ e.push(...this.extractFilesOverMaxFilesLimit(t));
192
+ this.displayedFiles = [ ...e ];
193
+ if (t.length === 0) {
194
+ this.areFilesUploading = false;
195
+ } else {
196
+ this.queuedFiles = t;
197
+ }
198
+ return {
199
+ invalidFiles: e,
200
+ validFiles: t
201
+ };
202
+ }
203
+ disableEvent(t) {
204
+ t.preventDefault();
205
+ t.stopPropagation();
206
+ }
207
+ disableLoaderIfAllFilesUploaded() {
208
+ if (this.queuedFiles.length === 0 && !this.displayedFiles.some((t => t.status === "in-progress"))) {
209
+ this.areFilesUploading = false;
210
+ }
211
+ }
212
+ emitChange(t) {
213
+ this.areFilesUploading = t.validFiles.length > 0;
214
+ this.tctChange.emit(t);
215
+ }
216
+ extractFilesOfInvalidTypes(t) {
217
+ const e = [];
218
+ if (this.fileTypesArray.length === 0) return e;
219
+ t.forEach((t => {
220
+ const i = t.name.split(".").pop().toLowerCase();
221
+ if (!this.fileTypesArray.includes(i)) {
222
+ e.push({
223
+ file: t,
224
+ status: "invalid-type"
225
+ });
226
+ }
227
+ }));
228
+ // Remove invalid files from the files array
229
+ e.forEach((e => {
230
+ const i = t.indexOf(e.file);
231
+ if (i > -1) {
232
+ t.splice(i, 1);
233
+ }
234
+ }));
235
+ return e;
236
+ }
237
+ extractFilesOverMaxFilesLimit(t) {
238
+ const e = [];
239
+ if (this.maxFiles === Infinity) return e;
240
+ if (t.length > this.maxFiles) {
241
+ const i = t.splice(this.maxFiles);
242
+ i.forEach((t => {
243
+ e.push({
244
+ file: t,
245
+ status: "over-max-files-limit"
246
+ });
247
+ }));
248
+ }
249
+ return e;
250
+ }
251
+ extractFilesOverSizeLimit(t) {
252
+ const e = [];
253
+ if (this.maxFileSize === Infinity) return e;
254
+ t.forEach((t => {
255
+ if (t.size > this.maxFileSize) {
256
+ e.push({
257
+ file: t,
258
+ status: "over-size-limit"
259
+ });
260
+ }
261
+ }));
262
+ // Remove files over size limit from the files array
263
+ e.forEach((e => {
264
+ const i = t.indexOf(e.file);
265
+ if (i > -1) {
266
+ t.splice(i, 1);
267
+ }
268
+ }));
269
+ return e;
270
+ }
271
+ forceRerender() {
272
+ this.refreshCounter += 1;
273
+ // Triggers re-render
274
+ }
275
+ getAnimationendHandlerToRemoveFileItem(t) {
276
+ return e => {
277
+ if (e.animationName === "shrinkToCenterFadeOut") {
278
+ this.displayedFiles = this.displayedFiles.filter((e => e.file.name !== t));
279
+ }
280
+ };
281
+ }
282
+ getClickHandlerToRemoveFileItem(t) {
283
+ return () => {
284
+ const e = this.displayedFiles.find((e => e.file.name === t));
285
+ if (e) {
286
+ e.toBeRemoved = true;
287
+ this.forceRerender();
288
+ }
289
+ };
290
+ }
291
+ getFileItemClasses(t) {
292
+ const e = [ "file-item" ];
293
+ const i = this.displayedFiles.find((e => e.file.name === t));
294
+ if (i === null || i === void 0 ? void 0 : i.toBeRemoved) {
295
+ e.push("fade-out");
296
+ } else {
297
+ e.push("fade-in");
298
+ }
299
+ return e.join(" ");
300
+ }
301
+ getFileItemStatusMessage(t, e) {
302
+ switch (t) {
303
+ case "invalid-type":
304
+ return s("tecton.element.filePicker.unsupportedFileType");
305
+
306
+ case "over-size-limit":
307
+ return s("tecton.element.filePicker.sizeExceedsLimit");
308
+
309
+ case "over-max-files-limit":
310
+ return s("tecton.element.filePicker.overMaxFilesLimit");
311
+
312
+ case "in-progress":
313
+ return s("tecton.element.filePicker.uploadingEllipsis");
314
+
315
+ case "failed":
316
+ return s("tecton.element.filePicker.uploadFailed");
317
+
318
+ case "uploaded":
319
+ default:
320
+ return s("tecton.element.filePicker.fileSize", [ (e / (1e3 * 1e3)).toFixed(2) ]);
321
+ }
322
+ }
323
+ launchFileBrowser() {
324
+ this.browseButtonInput.dispatchEvent(new MouseEvent("click"));
325
+ }
326
+ get el() {
327
+ return o(this);
328
+ }
329
+ static get watchers() {
330
+ return {
331
+ status: [ "updateFileList" ]
332
+ };
333
+ }
334
+ };
335
+
336
+ c.style = l;
337
+
338
+ export { c as q2_file_picker };
339
+ //# sourceMappingURL=q2-file-picker.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["q2FilePickerCss","Q2FilePickerStyle0","Q2FilePicker","this","queuedFiles","dimDropZone","e","disableEvent","isDropZoneHighlighted","grabDroppedFiles","droppedFiles","Array","from","dataTransfer","files","filesObject","buildFilesObject","emitChange","value","grabSelectedFiles","selectedFiles","target","highlightDropZone","render","h","class","hasLabel","hasDescription","htmlFor","label","loc","hasLabelSlotContent","name","id","description","hasDescriptionSlotContent","variant","dropZoneClasses","onDragEnter","onDragLeave","onDragOver","onDrop","ref","el","dropZone","areFilesUploading","Fragment","type","onTctClick","launchFileBrowser","maxFiles","disabled","intent","loading","onClick","size","undefined","onChange","browseButtonInput","multiple","displayedFiles","map","file","getFileItemClasses","key","onAnimationEnd","getAnimationendHandlerToRemoveFileItem","slot","status","getFileItemStatusMessage","getClickHandlerToRemoveFileItem","Infinity","invalidFiles","validFiles","updateFileList","newValue","forEach","statusItem","matchingQueuedFileIndex","findIndex","matchingFile","splice","matchingDisplayedFileIndex","disableLoaderIfAllFilesUploaded","classes","push","join","fileTypesArray","isArray","fileTypes","split","hasSlotContent","filesToUpload","extractFilesOfInvalidTypes","extractFilesOverSizeLimit","extractFilesOverMaxFilesLimit","length","event","preventDefault","stopPropagation","some","tctChange","emit","fileExtension","pop","toLowerCase","includes","invalidFile","index","indexOf","filesOverMaxFilesLimit","excessFiles","filesOverSizeLimit","maxFileSize","overSizeFile","forceRerender","refreshCounter","fileName","animationName","filter","fileToDelete","find","toBeRemoved","toFixed","dispatchEvent","MouseEvent"],"sources":["src/components/q2-file-picker/q2-file-picker.scss?tag=q2-file-picker&encapsulation=shadow","src/components/q2-file-picker/q2-file-picker.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n@import '../q2-btn/q2-btn-mixins';\n\n@keyframes growFromCenterFadeIn {\n from {\n transform: scaleX(.75) scaleY(.75);\n opacity: 0;\n }\n to {\n transform: scaleX(1) scaleY(1);\n opacity: 1;\n }\n}\n\n@keyframes shrinkToCenterFadeOut {\n from {\n transform: scaleX(1) scaleY(1);\n opacity: 1;\n }\n to {\n transform: scaleX(.75) scaleY(.75);\n opacity: 0;\n }\n}\n\n:host {\n display: block;\n}\n\n.browse {\n text-align: left;\n}\n\n.drop-zone-text {\n color: var-list(--tct-file-picker-drop-zone-text-color, --t-gray-6, #4D4D4D);\n font-size: var-list(--tct-file-picker-drop-zone-font-size, --app-font-size-small, 12px);\n font-weight: var(--tct-file-picker-browse-link-font-weight, 700);\n margin-bottom: 0;\n margin-top: var-list(--tct-file-picker-drop-zone-text-margin-top, --app-scale-2x, 10px);\n}\n\n.description {\n color: var-list(--tct-file-picker-description-text-color, --t-gray-1, #0D0D0D);\n font-size: var-list(--tct-file-picker-description-font-size, --app-font-size-small, 12px);\n font-weight: var(--tct-file-picker-description-font-weight, 400);\n text-align: var(--tct-file-picker-description-text-align, left);\n}\n\n.drop-zone {\n align-items: center;\n background-color: var-list(--tct-file-picker-drop-zone-background, --t-tertiary, #E8F5FC);\n border-radius: var-list(--tct-file-picker-drop-zone-border-radius, --app-border-radius-2, 6px);\n border-width: var(--tct-file-picker-drop-zone-border-width, 2px);\n border-style: var(--tct-file-picker-drop-zone-border-style, dashed);\n border-color: var-list(--tct-file-picker-drop-zone-border-color, --t-gray-8, #808080);\n color: var(--tct-file-picker-drop-zone-color, #747474);\n display: flex;\n flex-direction: column;\n font-size: var(--tct-file-picker-drop-zone-font-size, --app-font-size, 14px);\n font-weight: var(--tct-file-picker-drop-zone-font-weight, 400);\n height: var(--tct-file-picker-drop-zone-height, 150px);\n justify-content: center;\n padding: var(--tct-file-picker-drop-zone-padding, 20px);\n text-align: center;\n width: var(--tct-file-picker-drop-zone-width, 100%);\n}\n\n.drop-zone-highlighted {\n background-color: var-list(--tct-file-picker-drop-zone-highlighted-background, --tertiary-d-1, #BEE1F6);\n border-color: var-list(--tct-file-picker-drop-zone-highlighted-border, --t-gray-8, #808080);\n}\n\n.fade-in {\n animation-fill-mode: both;\n animation-play-state: running;\n animation: growFromCenterFadeIn 0.2s ease-in;\n}\n\n.fade-out {\n animation: shrinkToCenterFadeOut 0.1s ease-out;\n animation-play-state: running;\n animation-fill-mode: both;\n}\n\n.file-item {\n --tct-btn-icon-border-radius: 4px;\n --tct-btn-neutral-text-active-font-color: #{var-list(--tct-file-picker-item-close-btn-active-color, --t-gray-1, #0D0D0D)};\n --tct-btn-neutral-text-focus-visible-outer-ring-color: #{var-list(--tct-file-picker-item-close-btn-color, --t-gray-1, #0D0D0D)};\n --tct-btn-neutral-text-font-color: #{var-list(--tct-file-picker-item-close-btn-color, --t-gray-1, #0D0D0D)};\n --tct-btn-neutral-text-hover-outer-ring-color: #{var-list(--tct-file-picker-item-close-btn-hover-focus-ring-color, --t-gray-1, #0D0D0D)};\n --tct-btn-padding: 0;\n --tct-icon-stroke-primary: #{var-list(--tct-file-picker-item-close-btn-color, --t-gray-1, #0D0D0D)};\n --tct-item-body-font-size: #{var-list(--tct-file-picker-item-font-size, --app-font-size-small, 12px)};\n --tct-item-body-font-weight: var(--tct-file-picker-item-font-weight, 400);\n --tct-item-border-radius: #{var-list(--tct-file-picker-item-border-radius, --app-border-radius-3, 12px)};\n --tct-item-border: var(--tct-file-picker-item-border-width, 1px) solid #{var-list(--tct-file-picker-item-border-color, --t-gray-8, #808080)};\n --tct-item-header-color: #{var-list(--tct-file-picker-item-name-color, --t-gray-1, #0D0D0D)};\n --tct-item-header-font-size: #{var-list(--tct-file-picker-item-name-font-size, --app-font-size-small, 12px)};\n --tct-item-header-font-weight: var(--tct-file-picker-item-name-font-weight, 400);\n --tct-item-padding: var(--tct-file-picker-item-padding, var(--app-scale-1x, 5px) var(--app-scale-2x, 10px));\n text-align: left;\n}\n\n.file-item-loading {\n font-size: var-list(--tct-file-picker-file-item-loading-size, --app-scale-6x, 30px);\n // FIXME: This is a temporary fix to match the height of the closing icon which has 3.5px of padding I can't account for\n margin-bottom: calc(var-list(--tct-file-picker-file-item-loading-margin-bottom, --app-scale-6x, 30px) / 8.57);\n margin-left: calc(var-list(--tct-file-picker-file-item-loading-margin-bottom, --app-scale-1x, 5px) / 2);\n}\n\n.file-list {\n --tct-list-item-gap: #{var-list(--tct-file-picker-section-gap, --app-scale-3x, 15px)};\n}\n\n.file-list-container {\n max-height: var(--tct-file-picker-list-max-height, 190px);\n overflow-y: auto;\n scrollbar-width: thin;\n scrollbar-color: #{var-list(--tct-file-picker-scrollbar-color, --t-a11y-gray-color, #949494)} transparent;\n}\n\n.file-picker {\n display: flex;\n flex-direction: column;\n gap: #{var-list(--tct-file-picker-file-item-gap, --app-scale-3x, 15px)};\n}\n\n.heading {\n display: flex;\n flex-direction: column;\n gap: #{var-list(--tct-file-picker-heading-gap, --app-scale-1x, 5px)};\n justify-content: space-between;\n}\n\n.icon-success,\n.icon-error {\n --tct-icon-size: #{var-list(--tct-file-picker-file-item-icon-size, --app-scale-6x, 30px)};\n --tct-icon-stroke-width: 2px;\n}\n\n.label {\n color: var-list(--tct-file-picker-label-color, --t-gray-1, #0D0D0D);\n // cursor: pointer;\n display: inline-block;\n font-size: var-list(--tct-file-picker-label-font-size, --app-font-size, 14px);\n font-weight: var(--tct-file-picker-label-font-weight, 600);\n text-align: var(--tct-file-picker-label-text-align, left);\n}\n\n.loading {\n font-size: var-list(--tct-file-picker-loading-size, --app-scale-6x, 25px);\n}\n\n.loading-file {\n color: var-list(--tct-file-picker-loading-file-color, --t-gray-1, #0D0D0D);\n font-size: var-list(--tct-file-picker-loading-file-font-size, --app-font-size-small, 12px);\n font-weight: var(--tct-file-picker-loading-file-font-weight, 400);\n margin: 0;\n}\n\n.loading-message {\n color: var-list(--tct-file-picker-loading-message-color, --t-gray-1, #0D0D0D);\n font-size: var-list(--tct-file-picker-loading-message-font-size, --app-font-size-small, 12px);\n font-weight: var(--tct-file-picker-loading-message-font-weight, 700);\n margin-bottom: var-list(--tct-file-picker-loading-message-margin-bottom, --app-scale-2x, 10px);\n margin-top: var-list(--tct-file-picker-loading-message-margin-top, --app-scale-2x, 10px);\n}\n\n.dismiss-button {\n height: 30px;\n width: 30px;\n &:hover {\n --tct-icon-stroke-primary: #{var-list(--tct-file-picker-item-close-btn-hover-color, --t-gray-1, #0D0D0D)};\n }\n}\n\n[slot=\"action\"] {\n display: flex;\n align-items: center;\n}\n","import {\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n Fragment,\n h,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { hasSlotContent, loc } from 'src/utils';\n\ntype FileStatus = 'invalid-type' | 'over-size-limit' | 'over-max-files-limit' | 'in-progress' | 'failed' | 'uploaded';\nexport type FilesObject = {\n invalidFiles: {\n file: File;\n status: 'invalid-type' | 'over-size-limit' | 'over-max-files-limit' | 'in-progress' | 'failed' | 'uploaded';\n }[];\n validFiles: File[];\n};\n\n@Component({\n tag: 'q2-file-picker',\n styleUrl: 'q2-file-picker.scss',\n shadow: true,\n})\nexport class Q2FilePicker implements ComponentInterface {\n // #region Own Properties\n\n browseButtonInput: HTMLElement;\n dropZone: HTMLElement;\n fileItemsToBeDeleted;\n queuedFiles: File[] = [];\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n el: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n areFilesUploading: boolean = false;\n\n @State()\n displayedFiles: {\n file: File;\n status: FileStatus;\n toBeRemoved?: boolean;\n }[] = [];\n\n @State()\n isDropZoneHighlighted: boolean = false;\n\n @State()\n refreshCounter = 0;\n\n // #endregion\n // #region Public Property API\n\n /**\n * A description of the field. This is announced by screen readers when the field is focused.\n * @localizable\n */\n @Prop({ reflect: true })\n description: string;\n\n /**\n * An array of strings representing the allowed file types based on file extension.\n * Example: ['jpg', 'png', 'pdf']\n */\n @Prop({ reflect: true })\n fileTypes: string[] | string = [];\n\n /**\n * The label for the field. This is announced by screen readers when the field is focused.\n * @localizable\n */\n @Prop({ reflect: true })\n label: string;\n\n /**\n * The maximum number of files that can be selected.\n */\n @Prop({ reflect: true })\n // maxFiles: number | string = Infinity;\n maxFiles: number = Infinity;\n\n /**\n * The maximum size (in bytes) of any file that can be selected.\n */\n @Prop({ reflect: true })\n maxFileSize: number = Infinity;\n\n /**\n * An array of objects representing the status of the files being uploaded.\n * Each object should have a `name` property (the file name) and a `status`\n * property (the status of the file) that equals either 'in-progress',\n * 'failed' or 'uploaded'.\n */\n @Prop({ reflect: true })\n status: { name: string; status: 'in-progress' | 'failed' | 'uploaded' }[] = [];\n\n /**\n * Returns an array of File objects representing the files selected by the\n * user. If no files are selected, the value is an empty array.\n * @readonly\n */\n @Prop({ mutable: true })\n value: FilesObject = { invalidFiles: [], validFiles: [] }; // Ensure FilesObject is exported or imported correctly\n\n /**\n * Determines if the file picker is a browse button or a drop zone with a\n * browse link.\n */\n @Prop({ reflect: true })\n variant: 'browse' | 'browse-drop' = 'browse';\n\n // #endregion\n // #region Events\n\n @Event()\n tctChange: EventEmitter<FilesObject>;\n\n // #endregion\n // #region Watchers\n\n @Watch('status')\n updateFileList(newValue: { name: string; status: FileStatus }[]) {\n newValue.forEach(statusItem => {\n const matchingQueuedFileIndex = this.queuedFiles.findIndex(file => file.name === statusItem.name);\n if (matchingQueuedFileIndex > -1) {\n const matchingFile = this.queuedFiles.splice(matchingQueuedFileIndex, 1)[0];\n this.displayedFiles = [{ file: matchingFile, status: statusItem.status }, ...this.displayedFiles];\n } else {\n const matchingDisplayedFileIndex = this.displayedFiles.findIndex(\n file => file.file.name === statusItem.name\n );\n if (matchingDisplayedFileIndex > -1) {\n this.displayedFiles[matchingDisplayedFileIndex].status = statusItem.status;\n this.disableLoaderIfAllFilesUploaded();\n }\n }\n });\n }\n\n // #endregion\n // #region Local Methods\n\n get dropZoneClasses() {\n const classes = ['drop-zone'];\n if (this.isDropZoneHighlighted) {\n classes.push('drop-zone-highlighted');\n }\n\n return classes.join(' ');\n }\n\n get fileTypesArray() {\n return Array.isArray(this.fileTypes) ? this.fileTypes : this.fileTypes.split(',');\n }\n\n get hasDescription() {\n return !!this.description || this.hasDescriptionSlotContent;\n }\n\n get hasDescriptionSlotContent() {\n return hasSlotContent(this.el, 'description');\n }\n\n get hasLabel() {\n return !!this.label || this.hasLabelSlotContent;\n }\n\n get hasLabelSlotContent() {\n return hasSlotContent(this.el, 'label');\n }\n\n buildFilesObject(filesToUpload: File[]): FilesObject {\n const invalidFiles = [];\n invalidFiles.push(...this.extractFilesOfInvalidTypes(filesToUpload));\n invalidFiles.push(...this.extractFilesOverSizeLimit(filesToUpload));\n invalidFiles.push(...this.extractFilesOverMaxFilesLimit(filesToUpload));\n this.displayedFiles = [...invalidFiles];\n\n if (filesToUpload.length === 0) {\n this.areFilesUploading = false;\n } else {\n this.queuedFiles = filesToUpload;\n }\n\n return { invalidFiles, validFiles: filesToUpload };\n }\n\n dimDropZone = (e: DragEvent) => {\n this.disableEvent(e);\n this.isDropZoneHighlighted = false;\n };\n\n disableEvent(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n disableLoaderIfAllFilesUploaded() {\n if (this.queuedFiles.length === 0 && !this.displayedFiles.some(file => file.status === 'in-progress')) {\n this.areFilesUploading = false;\n }\n }\n\n emitChange(filesObject: FilesObject) {\n this.areFilesUploading = filesObject.validFiles.length > 0;\n this.tctChange.emit(filesObject);\n }\n\n extractFilesOfInvalidTypes(files: File[]) {\n const invalidFiles = [];\n\n if (this.fileTypesArray.length === 0) return invalidFiles;\n\n files.forEach(file => {\n const fileExtension = file.name.split('.').pop().toLowerCase();\n if (!this.fileTypesArray.includes(fileExtension)) {\n invalidFiles.push({ file, status: 'invalid-type' });\n }\n });\n\n // Remove invalid files from the files array\n invalidFiles.forEach(invalidFile => {\n const index = files.indexOf(invalidFile.file);\n if (index > -1) {\n files.splice(index, 1);\n }\n });\n\n return invalidFiles;\n }\n\n extractFilesOverMaxFilesLimit(files: File[]) {\n const filesOverMaxFilesLimit = [];\n\n if (this.maxFiles === Infinity) return filesOverMaxFilesLimit;\n\n if (files.length > this.maxFiles) {\n const excessFiles = files.splice(this.maxFiles);\n excessFiles.forEach(file => {\n filesOverMaxFilesLimit.push({ file, status: 'over-max-files-limit' });\n });\n }\n\n return filesOverMaxFilesLimit;\n }\n\n extractFilesOverSizeLimit(files: File[]) {\n const filesOverSizeLimit = [];\n\n if (this.maxFileSize === Infinity) return filesOverSizeLimit;\n\n files.forEach(file => {\n if (file.size > this.maxFileSize) {\n filesOverSizeLimit.push({ file, status: 'over-size-limit' });\n }\n });\n\n // Remove files over size limit from the files array\n filesOverSizeLimit.forEach(overSizeFile => {\n const index = files.indexOf(overSizeFile.file);\n if (index > -1) {\n files.splice(index, 1);\n }\n });\n\n return filesOverSizeLimit;\n }\n\n forceRerender() {\n this.refreshCounter += 1; // Triggers re-render\n }\n\n getAnimationendHandlerToRemoveFileItem(fileName: string) {\n return (e: AnimationEvent) => {\n if (e.animationName === 'shrinkToCenterFadeOut') {\n this.displayedFiles = this.displayedFiles.filter(file => file.file.name !== fileName);\n }\n };\n }\n\n getClickHandlerToRemoveFileItem(fileName: string) {\n return () => {\n const fileToDelete = this.displayedFiles.find(file => file.file.name === fileName);\n if (fileToDelete) {\n fileToDelete.toBeRemoved = true;\n this.forceRerender();\n }\n };\n }\n\n getFileItemClasses(fileName: string) {\n const classes = ['file-item'];\n const matchingFile = this.displayedFiles.find(file => file.file.name === fileName);\n if (matchingFile?.toBeRemoved) {\n classes.push('fade-out');\n } else {\n classes.push('fade-in');\n }\n return classes.join(' ');\n }\n\n getFileItemStatusMessage(status: FileStatus, size: number) {\n switch (status) {\n case 'invalid-type':\n return loc('tecton.element.filePicker.unsupportedFileType');\n case 'over-size-limit':\n return loc('tecton.element.filePicker.sizeExceedsLimit');\n case 'over-max-files-limit':\n return loc('tecton.element.filePicker.overMaxFilesLimit');\n case 'in-progress':\n return loc('tecton.element.filePicker.uploadingEllipsis');\n case 'failed':\n return loc('tecton.element.filePicker.uploadFailed');\n case 'uploaded':\n default:\n return loc('tecton.element.filePicker.fileSize', [(size / (1000 * 1000)).toFixed(2)]);\n }\n }\n\n grabDroppedFiles = (e: DragEvent) => {\n this.disableEvent(e);\n this.isDropZoneHighlighted = false;\n const droppedFiles = Array.from(e.dataTransfer.files);\n const filesObject = this.buildFilesObject(droppedFiles);\n\n this.emitChange(filesObject);\n this.value = filesObject;\n };\n\n grabSelectedFiles = (e: Event) => {\n const selectedFiles = Array.from((e.target as HTMLInputElement).files);\n const filesObject = this.buildFilesObject(selectedFiles);\n\n this.emitChange(filesObject);\n this.value = filesObject;\n };\n\n highlightDropZone = (e: DragEvent) => {\n this.disableEvent(e);\n this.isDropZoneHighlighted = true;\n };\n\n launchFileBrowser() {\n this.browseButtonInput.dispatchEvent(new MouseEvent('click'));\n }\n\n // #endregion\n // #region Render Methods\n\n render = () => {\n return (\n <div class=\"file-picker\">\n {(this.hasLabel || this.hasDescription) && (\n <div class=\"heading\">\n {this.hasLabel && (\n <label\n class=\"label\"\n htmlFor=\"file-field\"\n test-id=\"label\"\n >\n {!!this.label ? loc(this.label) : this.hasLabelSlotContent ? <slot name=\"label\" /> : ''}\n </label>\n )}\n {this.hasDescription && (\n <div\n class=\"description\"\n id=\"description\"\n test-id=\"description\"\n >\n {!!this.description ? (\n loc(this.description)\n ) : this.hasDescriptionSlotContent ? (\n <slot name=\"description\" />\n ) : (\n ''\n )}\n </div>\n )}\n </div>\n )}\n\n {(this.variant === 'browse-drop' && (\n <div\n class={this.dropZoneClasses}\n onDragEnter={this.disableEvent}\n onDragLeave={this.dimDropZone}\n onDragOver={this.highlightDropZone}\n onDrop={this.grabDroppedFiles}\n ref={el => (this.dropZone = el ?? this.dropZone)}\n test-id=\"drop-zone\"\n >\n {(this.areFilesUploading && (\n <Fragment>\n <q2-loading class=\"loading\"></q2-loading>\n <p class=\"drop-zone-text\">{loc('tecton.element.filePicker.uploadingEllipsis')}</p>\n </Fragment>\n )) || (\n <Fragment>\n <q2-icon type=\"upload\"></q2-icon>\n <p class=\"drop-zone-text\">\n <q2-link\n label={loc('tecton.element.filePicker.browse')}\n onTctClick={() => this.launchFileBrowser()}\n variant=\"inline\"\n test-id=\"browse-link\"\n />\n {loc('tecton.element.filePicker.orDragFilesHere', [this.maxFiles])}\n </p>\n </Fragment>\n )}\n </div>\n )) || (\n <div\n class=\"browse\"\n test-id=\"browse\"\n >\n <q2-btn\n disabled={this.areFilesUploading}\n intent=\"workflow-primary\"\n loading={this.areFilesUploading}\n onClick={() => this.launchFileBrowser()}\n size=\"medium\"\n test-id=\"browse-button\"\n >\n <q2-icon type=\"paperclip\"></q2-icon>\n <span>{loc('tecton.element.filePicker.attachFiles', [this.maxFiles])}</span>\n </q2-btn>\n </div>\n )}\n <input\n aria-describedby={(!!this.description && 'description') || undefined}\n class=\"sr\"\n id=\"file-field\"\n onChange={this.grabSelectedFiles}\n ref={el => (this.browseButtonInput = el ?? this.browseButtonInput)}\n type=\"file\"\n test-id=\"file-input\"\n multiple\n />\n <div class=\"file-list-container\">\n <q2-list class=\"file-list\">\n {this.displayedFiles.map(file => (\n <q2-item\n class={this.getFileItemClasses(file.file.name)}\n key={file.file.name}\n onAnimationEnd={this.getAnimationendHandlerToRemoveFileItem(file.file.name)}\n >\n <div slot=\"bullet\">\n {file.status === 'invalid-type' ||\n file.status === 'over-size-limit' ||\n file.status === 'failed' ||\n file.status === 'over-max-files-limit' ? (\n <q2-icon\n class=\"icon-error\"\n type=\"error\"\n ></q2-icon>\n ) : file.status === 'in-progress' ? (\n <q2-loading class=\"file-item-loading\"></q2-loading>\n ) : (\n <q2-icon\n class=\"icon-success\"\n type=\"success\"\n ></q2-icon>\n )}\n </div>\n <div slot=\"header\">{file.file.name}</div>\n <div slot=\"body\">{this.getFileItemStatusMessage(file.status, file.file.size)}</div>\n <div slot=\"action\">\n <q2-btn\n class=\"dismiss-button\"\n intent=\"neutral-text\"\n onClick={this.getClickHandlerToRemoveFileItem(file.file.name)}\n >\n <q2-icon type=\"close\"></q2-icon>\n </q2-btn>\n </div>\n </q2-item>\n ))}\n </q2-list>\n </div>\n </div>\n );\n };\n\n // #endregion\n}\n"],"mappings":"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"}