q2-tecton-elements 1.45.2 → 1.45.4

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 (300) hide show
  1. package/dist/cjs/click-elsewhere_2.cjs.entry.js +100 -31
  2. package/dist/cjs/click-elsewhere_2.cjs.entry.js.map +1 -1
  3. package/dist/cjs/{index-0430339e.js → index-f69742cf.js} +1 -1
  4. package/dist/cjs/{index-0430339e.js.map → index-f69742cf.js.map} +1 -1
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/q2-action-sheet.cjs.entry.js +1 -1
  7. package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
  8. package/dist/cjs/q2-calendar.cjs.entry.js +3 -2
  9. package/dist/cjs/q2-calendar.cjs.entry.js.map +1 -1
  10. package/dist/cjs/q2-carousel-pane.cjs.entry.js +2 -2
  11. package/dist/cjs/q2-carousel.cjs.entry.js +1 -1
  12. package/dist/cjs/q2-chart-area.cjs.entry.js +1 -1
  13. package/dist/cjs/q2-chart-bar.cjs.entry.js +1 -1
  14. package/dist/cjs/q2-chart-donut.cjs.entry.js +1 -1
  15. package/dist/cjs/q2-checkbox-group.cjs.entry.js +1 -1
  16. package/dist/cjs/q2-checkbox.cjs.entry.js +1 -1
  17. package/dist/cjs/q2-currency.cjs.entry.js +1 -1
  18. package/dist/cjs/q2-data-table.cjs.entry.js +1 -1
  19. package/dist/cjs/q2-detail.cjs.entry.js +1 -1
  20. package/dist/cjs/q2-dropdown.cjs.entry.js +2 -1
  21. package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
  22. package/dist/cjs/q2-editable-field.cjs.entry.js +1 -1
  23. package/dist/cjs/q2-icon.cjs.entry.js +5 -3
  24. package/dist/cjs/q2-icon.cjs.entry.js.map +1 -1
  25. package/dist/cjs/q2-input.cjs.entry.js +1 -1
  26. package/dist/cjs/q2-item.cjs.entry.js +1 -1
  27. package/dist/cjs/q2-list.cjs.entry.js +1 -1
  28. package/dist/cjs/q2-loc.cjs.entry.js +1 -1
  29. package/dist/cjs/q2-message.cjs.entry.js +1 -1
  30. package/dist/cjs/q2-month-picker.cjs.entry.js +2 -2
  31. package/dist/cjs/q2-optgroup_2.cjs.entry.js +2 -2
  32. package/dist/cjs/q2-option-list.cjs.entry.js +1 -1
  33. package/dist/cjs/q2-pagination.cjs.entry.js +2 -2
  34. package/dist/cjs/q2-pill.cjs.entry.js +1 -1
  35. package/dist/cjs/q2-radio-group.cjs.entry.js +1 -1
  36. package/dist/cjs/q2-radio.cjs.entry.js +1 -1
  37. package/dist/cjs/q2-relative-time.cjs.entry.js +2 -2
  38. package/dist/cjs/q2-section.cjs.entry.js +2 -2
  39. package/dist/cjs/q2-select.cjs.entry.js +57 -8
  40. package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
  41. package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
  42. package/dist/cjs/q2-stepper.cjs.entry.js +1 -1
  43. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  44. package/dist/cjs/q2-textarea.cjs.entry.js +1 -1
  45. package/dist/collection/collection-manifest.json +5 -5
  46. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +1 -1
  47. package/dist/collection/components/q2-avatar/q2-avatar.js +1 -1
  48. package/dist/collection/components/q2-calendar/q2-calendar.js +23 -1
  49. package/dist/collection/components/q2-calendar/q2-calendar.js.map +1 -1
  50. package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
  51. package/dist/collection/components/q2-carousel/q2-carousel.js +1 -1
  52. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +2 -2
  53. package/dist/collection/components/q2-chart-area/q2-chart-area.js +1 -1
  54. package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +1 -1
  55. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +1 -1
  56. package/dist/collection/components/q2-checkbox/q2-checkbox.js +1 -1
  57. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js +1 -1
  58. package/dist/collection/components/q2-currency/q2-currency.js +1 -1
  59. package/dist/collection/components/q2-data-table/q2-data-table.js +7 -7
  60. package/dist/collection/components/q2-detail/q2-detail.js +1 -1
  61. package/dist/collection/components/q2-dropdown/q2-dropdown.js +23 -1
  62. package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
  63. package/dist/collection/components/q2-editable-field/q2-editable-field.js +2 -2
  64. package/dist/collection/components/q2-icon/q2-icon.js +6 -4
  65. package/dist/collection/components/q2-icon/q2-icon.js.map +1 -1
  66. package/dist/collection/components/q2-input/q2-input.js +2 -2
  67. package/dist/collection/components/q2-item/q2-item.js +1 -1
  68. package/dist/collection/components/q2-list/q2-list.js +1 -1
  69. package/dist/collection/components/q2-loc/q2-loc.js +1 -1
  70. package/dist/collection/components/q2-message/q2-message.js +1 -1
  71. package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
  72. package/dist/collection/components/q2-option/q2-option.js +1 -1
  73. package/dist/collection/components/q2-option-list/q2-option-list.js +4 -4
  74. package/dist/collection/components/q2-pagination/q2-pagination.js +2 -2
  75. package/dist/collection/components/q2-pill/q2-pill.js +1 -1
  76. package/dist/collection/components/q2-popover/q2-popover.css +19 -8
  77. package/dist/collection/components/q2-popover/q2-popover.js +119 -31
  78. package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
  79. package/dist/collection/components/q2-radio/q2-radio.js +1 -1
  80. package/dist/collection/components/q2-radio-group/q2-radio-group.js +1 -1
  81. package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
  82. package/dist/collection/components/q2-section/q2-section.js +2 -2
  83. package/dist/collection/components/q2-select/q2-select.js +87 -10
  84. package/dist/collection/components/q2-select/q2-select.js.map +1 -1
  85. package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
  86. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +3 -3
  87. package/dist/collection/components/q2-textarea/q2-textarea.js +1 -1
  88. package/dist/components/q2-action-sheet.js +1 -1
  89. package/dist/components/q2-avatar2.js +1 -1
  90. package/dist/components/q2-calendar.js +3 -1
  91. package/dist/components/q2-calendar.js.map +1 -1
  92. package/dist/components/q2-carousel-pane.js +2 -2
  93. package/dist/components/q2-carousel.js +1 -1
  94. package/dist/components/q2-chart-area.js +1 -1
  95. package/dist/components/q2-chart-bar.js +1 -1
  96. package/dist/components/q2-chart-donut.js +1 -1
  97. package/dist/components/q2-checkbox-group.js +1 -1
  98. package/dist/components/q2-checkbox2.js +1 -1
  99. package/dist/components/q2-currency.js +1 -1
  100. package/dist/components/q2-data-table.js +1 -1
  101. package/dist/components/q2-detail.js +1 -1
  102. package/dist/components/q2-dropdown.js +3 -1
  103. package/dist/components/q2-dropdown.js.map +1 -1
  104. package/dist/components/q2-editable-field.js +1 -1
  105. package/dist/components/q2-icon2.js +6 -4
  106. package/dist/components/q2-icon2.js.map +1 -1
  107. package/dist/components/q2-input2.js +1 -1
  108. package/dist/components/q2-item.js +1 -1
  109. package/dist/components/q2-list.js +1 -1
  110. package/dist/components/q2-loc.js +1 -1
  111. package/dist/components/q2-message2.js +1 -1
  112. package/dist/components/q2-month-picker.js +2 -2
  113. package/dist/components/q2-optgroup2.js +1 -1
  114. package/dist/components/q2-option-list2.js +1 -1
  115. package/dist/components/q2-option2.js +1 -1
  116. package/dist/components/q2-pagination.js +2 -2
  117. package/dist/components/q2-pill.js +1 -1
  118. package/dist/components/q2-popover2.js +101 -31
  119. package/dist/components/q2-popover2.js.map +1 -1
  120. package/dist/components/q2-radio-group.js +1 -1
  121. package/dist/components/q2-radio.js +1 -1
  122. package/dist/components/q2-relative-time.js +1 -1
  123. package/dist/components/q2-section.js +2 -2
  124. package/dist/components/q2-select.js +60 -10
  125. package/dist/components/q2-select.js.map +1 -1
  126. package/dist/components/q2-stepper-pane.js +1 -1
  127. package/dist/components/q2-stepper.js +1 -1
  128. package/dist/components/q2-textarea.js +1 -1
  129. package/dist/esm/click-elsewhere_2.entry.js +100 -31
  130. package/dist/esm/click-elsewhere_2.entry.js.map +1 -1
  131. package/dist/esm/{index-e940b40e.js → index-3184c760.js} +1 -1
  132. package/dist/esm/{index-e940b40e.js.map → index-3184c760.js.map} +1 -1
  133. package/dist/esm/loader.js +1 -1
  134. package/dist/esm/q2-action-sheet.entry.js +1 -1
  135. package/dist/esm/q2-avatar.entry.js +1 -1
  136. package/dist/esm/q2-calendar.entry.js +3 -2
  137. package/dist/esm/q2-calendar.entry.js.map +1 -1
  138. package/dist/esm/q2-carousel-pane.entry.js +2 -2
  139. package/dist/esm/q2-carousel.entry.js +1 -1
  140. package/dist/esm/q2-chart-area.entry.js +1 -1
  141. package/dist/esm/q2-chart-bar.entry.js +1 -1
  142. package/dist/esm/q2-chart-donut.entry.js +1 -1
  143. package/dist/esm/q2-checkbox-group.entry.js +1 -1
  144. package/dist/esm/q2-checkbox.entry.js +1 -1
  145. package/dist/esm/q2-currency.entry.js +1 -1
  146. package/dist/esm/q2-data-table.entry.js +1 -1
  147. package/dist/esm/q2-detail.entry.js +1 -1
  148. package/dist/esm/q2-dropdown.entry.js +2 -1
  149. package/dist/esm/q2-dropdown.entry.js.map +1 -1
  150. package/dist/esm/q2-editable-field.entry.js +1 -1
  151. package/dist/esm/q2-icon.entry.js +6 -4
  152. package/dist/esm/q2-icon.entry.js.map +1 -1
  153. package/dist/esm/q2-input.entry.js +1 -1
  154. package/dist/esm/q2-item.entry.js +1 -1
  155. package/dist/esm/q2-list.entry.js +1 -1
  156. package/dist/esm/q2-loc.entry.js +1 -1
  157. package/dist/esm/q2-message.entry.js +1 -1
  158. package/dist/esm/q2-month-picker.entry.js +2 -2
  159. package/dist/esm/q2-optgroup_2.entry.js +2 -2
  160. package/dist/esm/q2-option-list.entry.js +1 -1
  161. package/dist/esm/q2-pagination.entry.js +2 -2
  162. package/dist/esm/q2-pill.entry.js +1 -1
  163. package/dist/esm/q2-radio-group.entry.js +1 -1
  164. package/dist/esm/q2-radio.entry.js +1 -1
  165. package/dist/esm/q2-relative-time.entry.js +2 -2
  166. package/dist/esm/q2-section.entry.js +2 -2
  167. package/dist/esm/q2-select.entry.js +58 -9
  168. package/dist/esm/q2-select.entry.js.map +1 -1
  169. package/dist/esm/q2-stepper-pane.entry.js +1 -1
  170. package/dist/esm/q2-stepper.entry.js +1 -1
  171. package/dist/esm/q2-tecton-elements.js +1 -1
  172. package/dist/esm/q2-textarea.entry.js +1 -1
  173. package/dist/jest.setup.js +22 -0
  174. package/dist/jest.setup.js.map +1 -0
  175. package/dist/q2-tecton-elements/{p-47868d6d.entry.js → p-115634cd.entry.js} +2 -2
  176. package/dist/q2-tecton-elements/{p-4b81a121.entry.js → p-163e6dd2.entry.js} +2 -2
  177. package/dist/q2-tecton-elements/{p-7c12ba02.entry.js → p-19d06f9f.entry.js} +2 -2
  178. package/dist/q2-tecton-elements/{p-2436c843.entry.js → p-1dd2fd85.entry.js} +2 -2
  179. package/dist/q2-tecton-elements/{p-3b1ea100.entry.js → p-204ae112.entry.js} +2 -2
  180. package/dist/q2-tecton-elements/{p-c016bd18.entry.js → p-25da2750.entry.js} +2 -2
  181. package/dist/q2-tecton-elements/{p-d9e19f70.entry.js → p-2e146575.entry.js} +2 -2
  182. package/dist/q2-tecton-elements/{p-f1281e3f.entry.js → p-30c0a241.entry.js} +2 -2
  183. package/dist/q2-tecton-elements/p-30c0a241.entry.js.map +1 -0
  184. package/dist/q2-tecton-elements/{p-5dc5c4e2.entry.js → p-5219c018.entry.js} +2 -2
  185. package/dist/q2-tecton-elements/{p-b376c111.entry.js → p-5af4926e.entry.js} +2 -2
  186. package/dist/q2-tecton-elements/p-5e66bf17.entry.js +2 -0
  187. package/dist/q2-tecton-elements/p-5e66bf17.entry.js.map +1 -0
  188. package/dist/q2-tecton-elements/{p-aec64fcb.entry.js → p-62b7dbcc.entry.js} +2 -2
  189. package/dist/q2-tecton-elements/{p-63192fac.entry.js → p-63063fe4.entry.js} +2 -2
  190. package/dist/q2-tecton-elements/{p-f1265647.entry.js → p-66835c7b.entry.js} +2 -2
  191. package/dist/q2-tecton-elements/{p-05b015a8.entry.js → p-73e26b41.entry.js} +2 -2
  192. package/dist/q2-tecton-elements/{p-df297a77.entry.js → p-74e456ab.entry.js} +2 -2
  193. package/dist/q2-tecton-elements/{p-dc057a9c.entry.js → p-7b7128c2.entry.js} +2 -2
  194. package/dist/q2-tecton-elements/p-82f21785.entry.js +2 -0
  195. package/dist/q2-tecton-elements/p-82f21785.entry.js.map +1 -0
  196. package/dist/q2-tecton-elements/{p-50bd4437.entry.js → p-868a3856.entry.js} +2 -2
  197. package/dist/q2-tecton-elements/{p-4bbe563f.entry.js → p-8690aadf.entry.js} +2 -2
  198. package/dist/q2-tecton-elements/{p-1c17d118.entry.js → p-9659f63b.entry.js} +2 -2
  199. package/dist/q2-tecton-elements/{p-445990a8.entry.js → p-9b373584.entry.js} +2 -2
  200. package/dist/q2-tecton-elements/p-a7055670.entry.js +2 -0
  201. package/dist/q2-tecton-elements/p-a7055670.entry.js.map +1 -0
  202. package/dist/q2-tecton-elements/{p-71180fcd.entry.js → p-b0f91944.entry.js} +2 -2
  203. package/dist/q2-tecton-elements/{p-515d424b.entry.js → p-b79bd45f.entry.js} +2 -2
  204. package/dist/q2-tecton-elements/{p-b7d5fd12.entry.js → p-bb3ae49a.entry.js} +2 -2
  205. package/dist/q2-tecton-elements/{p-d1a9ed3d.entry.js → p-c60679f5.entry.js} +2 -2
  206. package/dist/q2-tecton-elements/{p-57bf9342.entry.js → p-dca6104e.entry.js} +2 -2
  207. package/dist/q2-tecton-elements/{p-aed969d4.entry.js → p-e77d1a92.entry.js} +2 -2
  208. package/dist/q2-tecton-elements/{p-7523305d.entry.js → p-e7c3d6db.entry.js} +2 -2
  209. package/dist/q2-tecton-elements/{p-e762526f.entry.js → p-ed974a59.entry.js} +2 -2
  210. package/dist/q2-tecton-elements/p-f0813fb4.entry.js +2 -0
  211. package/dist/q2-tecton-elements/p-f0813fb4.entry.js.map +1 -0
  212. package/dist/q2-tecton-elements/{p-4570ff06.entry.js → p-f0e5a9ab.entry.js} +2 -2
  213. package/dist/q2-tecton-elements/{p-7ce6e587.js → p-f1e887f5.js} +1 -1
  214. package/dist/q2-tecton-elements/{p-b3d10d52.entry.js → p-f1fe0e73.entry.js} +2 -2
  215. package/dist/q2-tecton-elements/{p-22661533.entry.js → p-f44d51ef.entry.js} +2 -2
  216. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  217. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
  218. package/dist/test/elements/q2-calendar-test.e2e.js +23 -3
  219. package/dist/test/elements/q2-calendar-test.e2e.js.map +1 -1
  220. package/dist/test/elements/q2-dropdown-test.e2e.js +20 -2
  221. package/dist/test/elements/q2-dropdown-test.e2e.js.map +1 -1
  222. package/dist/test/elements/q2-icon-test.e2e.js +17 -0
  223. package/dist/test/elements/q2-icon-test.e2e.js.map +1 -1
  224. package/dist/test/elements/q2-pill-test.e2e.js +1 -1
  225. package/dist/test/elements/q2-pill-test.e2e.js.map +1 -1
  226. package/dist/test/elements/q2-popover-test.e2e.js +1 -34
  227. package/dist/test/elements/q2-popover-test.e2e.js.map +1 -1
  228. package/dist/test/elements/q2-popover-test.spec.js +755 -226
  229. package/dist/test/elements/q2-popover-test.spec.js.map +1 -1
  230. package/dist/test/elements/q2-select-test.e2e.js +25 -1
  231. package/dist/test/elements/q2-select-test.e2e.js.map +1 -1
  232. package/dist/test/elements/q2-select-test.spec.js +412 -0
  233. package/dist/test/elements/q2-select-test.spec.js.map +1 -0
  234. package/dist/test/elements/q2-tag-test.e2e.js +1 -1
  235. package/dist/test/elements/q2-tag-test.e2e.js.map +1 -1
  236. package/dist/types/builds/q2e/development/tecton/tecton/packages/q2-tecton-elements/.stencil/jest.setup.d.ts +1 -0
  237. package/dist/types/components/q2-action-sheet/q2-action-sheet.d.ts +60 -0
  238. package/dist/types/components/q2-calendar/q2-calendar.d.ts +324 -0
  239. package/dist/types/components/q2-carousel/q2-carousel.d.ts +2 -2
  240. package/dist/types/components/q2-data-table/q2-data-table.d.ts +221 -0
  241. package/dist/types/components/q2-dropdown/q2-dropdown.d.ts +130 -0
  242. package/dist/types/components/q2-dropdown-item/q2-dropdown-item.d.ts +45 -0
  243. package/dist/types/components/q2-editable-field/q2-editable-field.d.ts +136 -0
  244. package/dist/types/components/q2-icon/q2-icon.d.ts +1 -0
  245. package/dist/types/components/q2-loading/skeleton/shapes.d.ts +1 -0
  246. package/dist/types/components/q2-optgroup/q2-optgroup.d.ts +1 -1
  247. package/dist/types/components/q2-option-list/q2-option-list.d.ts +99 -0
  248. package/dist/types/components/q2-pagination/q2-pagination.d.ts +54 -0
  249. package/dist/types/components/q2-pill/q2-pill.d.ts +102 -0
  250. package/dist/types/components/q2-popover/q2-popover.d.ts +7 -3
  251. package/dist/types/components/q2-select/q2-select.d.ts +236 -0
  252. package/dist/types/components/q2-stepper/q2-stepper.d.ts +52 -0
  253. package/dist/types/components/q2-stepper-vertical/q2-stepper-vertical.d.ts +62 -0
  254. package/dist/types/components/q2-tab-container/q2-tab-container.d.ts +2 -2
  255. package/dist/types/components/q2-tag/q2-tag.d.ts +59 -0
  256. package/dist/types/components.d.ts +32 -0
  257. package/dist/types/utils/action-sheet.d.ts +12 -0
  258. package/package.json +3 -3
  259. package/dist/q2-tecton-elements/p-4a332c2a.entry.js +0 -2
  260. package/dist/q2-tecton-elements/p-4a332c2a.entry.js.map +0 -1
  261. package/dist/q2-tecton-elements/p-7f663376.entry.js +0 -2
  262. package/dist/q2-tecton-elements/p-7f663376.entry.js.map +0 -1
  263. package/dist/q2-tecton-elements/p-c4c458b7.entry.js +0 -2
  264. package/dist/q2-tecton-elements/p-c4c458b7.entry.js.map +0 -1
  265. package/dist/q2-tecton-elements/p-f1281e3f.entry.js.map +0 -1
  266. package/dist/q2-tecton-elements/p-f162c670.entry.js +0 -2
  267. package/dist/q2-tecton-elements/p-f162c670.entry.js.map +0 -1
  268. /package/dist/q2-tecton-elements/{p-47868d6d.entry.js.map → p-115634cd.entry.js.map} +0 -0
  269. /package/dist/q2-tecton-elements/{p-4b81a121.entry.js.map → p-163e6dd2.entry.js.map} +0 -0
  270. /package/dist/q2-tecton-elements/{p-7c12ba02.entry.js.map → p-19d06f9f.entry.js.map} +0 -0
  271. /package/dist/q2-tecton-elements/{p-2436c843.entry.js.map → p-1dd2fd85.entry.js.map} +0 -0
  272. /package/dist/q2-tecton-elements/{p-3b1ea100.entry.js.map → p-204ae112.entry.js.map} +0 -0
  273. /package/dist/q2-tecton-elements/{p-c016bd18.entry.js.map → p-25da2750.entry.js.map} +0 -0
  274. /package/dist/q2-tecton-elements/{p-d9e19f70.entry.js.map → p-2e146575.entry.js.map} +0 -0
  275. /package/dist/q2-tecton-elements/{p-5dc5c4e2.entry.js.map → p-5219c018.entry.js.map} +0 -0
  276. /package/dist/q2-tecton-elements/{p-b376c111.entry.js.map → p-5af4926e.entry.js.map} +0 -0
  277. /package/dist/q2-tecton-elements/{p-aec64fcb.entry.js.map → p-62b7dbcc.entry.js.map} +0 -0
  278. /package/dist/q2-tecton-elements/{p-63192fac.entry.js.map → p-63063fe4.entry.js.map} +0 -0
  279. /package/dist/q2-tecton-elements/{p-f1265647.entry.js.map → p-66835c7b.entry.js.map} +0 -0
  280. /package/dist/q2-tecton-elements/{p-05b015a8.entry.js.map → p-73e26b41.entry.js.map} +0 -0
  281. /package/dist/q2-tecton-elements/{p-df297a77.entry.js.map → p-74e456ab.entry.js.map} +0 -0
  282. /package/dist/q2-tecton-elements/{p-dc057a9c.entry.js.map → p-7b7128c2.entry.js.map} +0 -0
  283. /package/dist/q2-tecton-elements/{p-50bd4437.entry.js.map → p-868a3856.entry.js.map} +0 -0
  284. /package/dist/q2-tecton-elements/{p-4bbe563f.entry.js.map → p-8690aadf.entry.js.map} +0 -0
  285. /package/dist/q2-tecton-elements/{p-1c17d118.entry.js.map → p-9659f63b.entry.js.map} +0 -0
  286. /package/dist/q2-tecton-elements/{p-445990a8.entry.js.map → p-9b373584.entry.js.map} +0 -0
  287. /package/dist/q2-tecton-elements/{p-71180fcd.entry.js.map → p-b0f91944.entry.js.map} +0 -0
  288. /package/dist/q2-tecton-elements/{p-515d424b.entry.js.map → p-b79bd45f.entry.js.map} +0 -0
  289. /package/dist/q2-tecton-elements/{p-b7d5fd12.entry.js.map → p-bb3ae49a.entry.js.map} +0 -0
  290. /package/dist/q2-tecton-elements/{p-d1a9ed3d.entry.js.map → p-c60679f5.entry.js.map} +0 -0
  291. /package/dist/q2-tecton-elements/{p-57bf9342.entry.js.map → p-dca6104e.entry.js.map} +0 -0
  292. /package/dist/q2-tecton-elements/{p-aed969d4.entry.js.map → p-e77d1a92.entry.js.map} +0 -0
  293. /package/dist/q2-tecton-elements/{p-7523305d.entry.js.map → p-e7c3d6db.entry.js.map} +0 -0
  294. /package/dist/q2-tecton-elements/{p-e762526f.entry.js.map → p-ed974a59.entry.js.map} +0 -0
  295. /package/dist/q2-tecton-elements/{p-4570ff06.entry.js.map → p-f0e5a9ab.entry.js.map} +0 -0
  296. /package/dist/q2-tecton-elements/{p-7ce6e587.js.map → p-f1e887f5.js.map} +0 -0
  297. /package/dist/q2-tecton-elements/{p-b3d10d52.entry.js.map → p-f1fe0e73.entry.js.map} +0 -0
  298. /package/dist/q2-tecton-elements/{p-22661533.entry.js.map → p-f44d51ef.entry.js.map} +0 -0
  299. /package/dist/types/{workspace/workspace/tecton-production_release_1.45.x → builds/q2e/development/tecton/tecton}/packages/q2-tecton-elements/.stencil/test/elements/q2-detail/slot-component.d.ts +0 -0
  300. /package/dist/types/{workspace/workspace/tecton-production_release_1.45.x → builds/q2e/development/tecton/tecton}/packages/q2-tecton-elements/.stencil/test/helpers.d.ts +0 -0
@@ -271,6 +271,11 @@ export namespace Components {
271
271
  * @deprecated
272
272
  */
273
273
  "popoverMinHeight": number;
274
+ /**
275
+ * Determines the display mode of the popover. Providing a value of `legacy` instructs the popover to use absolute positioning instead of fixed positioning.
276
+ * @info This is a temporary solution to work around styling issues related to using fixed positioning for the popover when nested inside of elements with transform properties. This will be removed once the popover API is available for use.
277
+ */
278
+ "popoverMode": 'legacy';
274
279
  /**
275
280
  * The field's content is not editable, but the field remains focusable. Appends "(readonly)" to the field label. Supersedes `optional` if both are `true`.
276
281
  */
@@ -932,6 +937,11 @@ export namespace Components {
932
937
  * @deprecated
933
938
  */
934
939
  "popoverMinHeight": number;
940
+ /**
941
+ * Determines the display mode of the popover. Providing a value of `legacy` instructs the popover to use absolute positioning instead of fixed positioning.
942
+ * @info This is a temporary solution to work around styling issues related to using fixed positioning for the popover when nested inside of elements with transform properties. This will be removed once the popover API is available for use.
943
+ */
944
+ "popoverMode": 'legacy';
935
945
  /**
936
946
  * Use with `context` to tell the outlet where it appears. It will be matched with the appropriately configured module for that context.
937
947
  * @info Only applicable when using `<q2-dropdown>` for outlets.
@@ -1523,6 +1533,7 @@ export namespace Components {
1523
1533
  * @deprecated
1524
1534
  */
1525
1535
  "minHeight": number;
1536
+ "mode": 'legacy';
1526
1537
  /**
1527
1538
  * Controls whether the popover is open or closed.
1528
1539
  */
@@ -1768,6 +1779,11 @@ export namespace Components {
1768
1779
  * @deprecated
1769
1780
  */
1770
1781
  "popDirection": 'up' | 'down';
1782
+ /**
1783
+ * Determines the display mode of the popover. Providing a value of `legacy` instructs the popover to use absolute positioning instead of fixed positioning.
1784
+ * @info This is a temporary solution to work around styling issues related to using fixed positioning for the popover when nested inside of elements with transform properties. This will be removed once the popover API is available for use.
1785
+ */
1786
+ "popoverMode": 'legacy';
1771
1787
  /**
1772
1788
  * Appends "(read only)" to the field label, and field becomes unusable, but remains focusable. Takes priority over `optional` if both are `true`.
1773
1789
  */
@@ -3201,6 +3217,11 @@ declare namespace LocalJSX {
3201
3217
  * @deprecated
3202
3218
  */
3203
3219
  "popoverMinHeight"?: number;
3220
+ /**
3221
+ * Determines the display mode of the popover. Providing a value of `legacy` instructs the popover to use absolute positioning instead of fixed positioning.
3222
+ * @info This is a temporary solution to work around styling issues related to using fixed positioning for the popover when nested inside of elements with transform properties. This will be removed once the popover API is available for use.
3223
+ */
3224
+ "popoverMode"?: 'legacy';
3204
3225
  /**
3205
3226
  * The field's content is not editable, but the field remains focusable. Appends "(readonly)" to the field label. Supersedes `optional` if both are `true`.
3206
3227
  */
@@ -3886,6 +3907,11 @@ declare namespace LocalJSX {
3886
3907
  * @deprecated
3887
3908
  */
3888
3909
  "popoverMinHeight"?: number;
3910
+ /**
3911
+ * Determines the display mode of the popover. Providing a value of `legacy` instructs the popover to use absolute positioning instead of fixed positioning.
3912
+ * @info This is a temporary solution to work around styling issues related to using fixed positioning for the popover when nested inside of elements with transform properties. This will be removed once the popover API is available for use.
3913
+ */
3914
+ "popoverMode"?: 'legacy';
3889
3915
  /**
3890
3916
  * Use with `context` to tell the outlet where it appears. It will be matched with the appropriately configured module for that context.
3891
3917
  * @info Only applicable when using `<q2-dropdown>` for outlets.
@@ -4499,6 +4525,7 @@ declare namespace LocalJSX {
4499
4525
  * @deprecated
4500
4526
  */
4501
4527
  "minHeight"?: number;
4528
+ "mode"?: 'legacy';
4502
4529
  /**
4503
4530
  * Emitted when the popover is opened or closed.
4504
4531
  */
@@ -4750,6 +4777,11 @@ declare namespace LocalJSX {
4750
4777
  * @deprecated
4751
4778
  */
4752
4779
  "popDirection"?: 'up' | 'down';
4780
+ /**
4781
+ * Determines the display mode of the popover. Providing a value of `legacy` instructs the popover to use absolute positioning instead of fixed positioning.
4782
+ * @info This is a temporary solution to work around styling issues related to using fixed positioning for the popover when nested inside of elements with transform properties. This will be removed once the popover API is available for use.
4783
+ */
4784
+ "popoverMode"?: 'legacy';
4753
4785
  /**
4754
4786
  * Appends "(read only)" to the field label, and field becomes unusable, but remains focusable. Takes priority over `optional` if both are `true`.
4755
4787
  */
@@ -0,0 +1,12 @@
1
+ import { ActionSheetListCloseData, ActionSheetListData } from 'q2-tecton-common/lib/utility/action-sheet';
2
+ interface IActionSheetComponent {
3
+ hoist: boolean;
4
+ }
5
+ export declare const shouldShowActionSheet: (component: IActionSheetComponent, event?: KeyboardEvent | MouseEvent) => boolean;
6
+ export declare const buildListData: (component: IActionSheetListComponent, event?: MouseEvent | KeyboardEvent) => Promise<ActionSheetListData>;
7
+ interface IActionSheetListComponent {
8
+ optionList: HTMLQ2OptionListElement;
9
+ label: string;
10
+ }
11
+ export declare const showActionSheetList: (component: IActionSheetListComponent, event?: MouseEvent | KeyboardEvent) => Promise<ActionSheetListCloseData>;
12
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "q2-tecton-elements",
3
- "version": "1.45.2",
3
+ "version": "1.45.4",
4
4
  "description": "Q2 Tecton Custom Elements",
5
5
  "license": "MIT",
6
6
  "author": "Q2 Tecton Team",
@@ -33,7 +33,7 @@
33
33
  },
34
34
  "dependencies": {
35
35
  "@stencil/core": "4.18.0",
36
- "q2-tecton-common": "1.45.2",
36
+ "q2-tecton-common": "1.45.4",
37
37
  "swiper": "8.4.4"
38
38
  },
39
39
  "devDependencies": {
@@ -54,5 +54,5 @@
54
54
  "typescript": "5.4.5",
55
55
  "typescript-eslint": "^7.11.0"
56
56
  },
57
- "gitHead": "d3153217887a51a415c5f2f22d5e8c198d870f2f"
57
+ "gitHead": "fbb79f22606d321e2b0590800203e9bb950bfcb4"
58
58
  }
@@ -1,2 +0,0 @@
1
- import{r as t,c as o,g as i,h as r}from"./p-a5f18e27.js";import{t as e,w as s}from"./p-42302f6f.js";const n=class{constructor(i){t(this,i);this.change=o(this,"change",7);this.mouseEventList=["mousedown","dragstart","touchstart"];this.isCurrentlyFocused=false;this.mouseHandler=t=>{const o=this.shadowContains(this.findActiveElement());const i=this.shadowContains(this.shadowEventTarget(t))||this.originatesInSlots(t.target);if(!i&&(this.isCurrentlyFocused||o)){this.isCurrentlyFocused=false;this.change.emit();return}this.isCurrentlyFocused=i||o};this.windowBlurHandler=()=>{const t=this.findActiveElement();if(t===document.body&&this.isCurrentlyFocused||t!==document.body&&(t===null||t===void 0?void 0:t.tagName)==="IFRAME"){this.isCurrentlyFocused=false;this.change.emit();return}}}componentWillLoad(){}connectedCallback(){this.mouseEventList.forEach((t=>{document.addEventListener(t,this.mouseHandler)}));window.addEventListener("blur",this.windowBlurHandler)}disconnectedCallback(){this.mouseEventList.forEach((t=>{document.removeEventListener(t,this.mouseHandler)}));window.removeEventListener("blur",this.windowBlurHandler)}findActiveElement(){let t=document.activeElement;while(true){if(!t||!t.shadowRoot){return t}t=t.shadowRoot.activeElement}}shadowEventTarget(t){return t.composedPath()[0]||t.target}shadowContains(t){while(true){if(t===this.hostElement){return true}if(!t){return false}t=t.parentNode||t.host}}originatesInSlots(t){const o=this.hostElement.querySelectorAll("slot");for(const i of Array.from(o)){const o=i&&i.assignedNodes&&i.assignedNodes()||this.hostElement.childNodes;for(const i of Array.from(o)){if(i.contains(t)){return true}}}return false}get hostElement(){return i(this)}};const a="*{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}.container{display:none}.show{display:block;position:fixed;z-index:var(--tct-popover-z-index, 50);margin:0;padding:0;overflow:auto;background:var(--tct-popover-background, var(--app-white, #ffffff));color:var(--tct-popover-font-color, var(--t-text, #4d4d4d));min-width:var(--tct-popover-min-width, 135px);margin-block:var(--tct-popover-margin-block, 0);box-shadow:var(--tct-popover-box-shadow, var(--app-shadow-1, 0 2px 4px rgba(0, 0, 0, 0.3)));border-width:var(--tct-popover-border-width, 0);border-style:solid;border-color:var(--tct-popover-border-color, transparent);border-radius:var(--tct-popover-border-radius, 0);max-height:var(--comp-pop-max-height);left:var(--comp-pop-left);opacity:var(--comp-pop-opacity, 0);--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}:host([block]) .show{right:unset;width:var(--comp-pop-width);min-width:var(--tct-popover-min-width, unset)}:host([align=left]) .show{left:var(--comp-pop-left);right:unset}:host([align=right]) .show{right:var(--comp-pop-right);left:unset}.show.down{top:var(--tct-popover-top, var(--comp-pop-top));bottom:unset}.show.up{top:unset;bottom:var(--comp-pop-bottom)}.show::-webkit-scrollbar{width:var(--comp-scrollbar-size);height:var(--comp-scrollbar-size);margin:5px}.show::-webkit-scrollbar-thumb{background:var(--comp-scrollbar-color);border-radius:var(--comp-scrollbar-border-radius)}.show::-webkit-scrollbar-track{background:transparent;border-radius:var(--comp-scrollbar-border-radius)}click-elsewhere{position:relative;display:block}";const c=a;const h=class{constructor(i){t(this,i);this.popoverStateChanged=o(this,"popoverStateChanged",7);this.displayBuffer=10;this.orientationChanged=false;this.handleMinHeight=()=>{if(this.minHeight){e(this,"minHeight","prop")}};this.viewPortChanged=()=>{if(!this.open)return;this.determinePopDirection()};this.viewPortOrientationChanged=()=>{this.orientationChanged=true;this.viewPortChanged()};this.setCSSProperties=async()=>{var t,o;const{controlElement:i,containerElement:r,currentDirection:e}=this;const{top:n,bottom:a,left:c,right:h}=(o=(t=i===null||i===void 0?void 0:i.getBoundingClientRect)===null||t===void 0?void 0:t.call(i))!==null&&o!==void 0?o:{top:0,bottom:0,left:0,right:0};const p=c;const d=window.visualViewport.width-h;if(this.block)r.style.setProperty("--comp-pop-width",`${i.offsetWidth||0}px`);r.style.setProperty("--comp-pop-left",`${p}px`);r.style.setProperty("--comp-pop-right",`${d}px`);if(e==="up"){r.style.setProperty("--comp-pop-bottom",`${window.visualViewport.height-n}px`)}if(e==="down"){r.style.setProperty("--comp-pop-top",`${a}px`)}await s();r.style.setProperty("--comp-pop-opacity","1")};this.direction=undefined;this.align=undefined;this.open=undefined;this.block=undefined;this.controlElement=undefined;this.minHeight=undefined;this.currentDirection=undefined;this.show=false}componentDidLoad(){this.handleMinHeight();if(this.open)this.determinePopDirection()}disconnectedCallback(){this.removeViewportListeners()}async toggle(){this.open=!this.open}async scrollContainerTo(t){this.containerElement.scrollTo(t)}async openChanged(t){this.popoverStateChanged.emit({open:t});if(t){this.addViewportListeners();this.determinePopDirection()}else{this.removeViewportListeners();this.currentDirection=undefined;this.show=false;await s();this.clearCSSProperties()}}minHeightProvided(){this.handleMinHeight()}popoverStateHandler(t){const{detail:{open:o}}=t;if(o===this.open)return;this.open=o;t.stopPropagation()}get actualDirection(){const{direction:t}=this;switch(t){case"up":case"down":return t;default:return undefined}}get isModule(){var t,o;const i=window!==window.top;const r=Object.keys((o=(t=window.Tecton)===null||t===void 0?void 0:t.platformDimensions)!==null&&o!==void 0?o:{}).length>0;return i&&r}addViewportListeners(){var t;window.addEventListener("resize",this.viewPortOrientationChanged);window.addEventListener("scroll",this.viewPortChanged,{passive:true,capture:true});(t=screen===null||screen===void 0?void 0:screen.orientation)===null||t===void 0?void 0:t.addEventListener("change",this.viewPortOrientationChanged);window.addEventListener("orientationchange",this.viewPortOrientationChanged)}removeViewportListeners(){var t;window.removeEventListener("resize",this.viewPortOrientationChanged);window.removeEventListener("scroll",this.viewPortChanged);(t=screen===null||screen===void 0?void 0:screen.orientation)===null||t===void 0?void 0:t.removeEventListener("orientationchange",this.viewPortOrientationChanged);window.removeEventListener("orientationchange",this.viewPortOrientationChanged)}clearCSSProperties(){this.containerElement.style.removeProperty("--comp-pop-max-height");this.containerElement.style.removeProperty("--comp-pop-top");this.containerElement.style.removeProperty("--comp-pop-bottom");this.containerElement.style.removeProperty("--comp-pop-left");this.containerElement.style.removeProperty("--comp-pop-right");this.containerElement.style.removeProperty("--comp-pop-width");this.containerElement.style.removeProperty("--comp-pop-opacity")}setDirectionAndShow(t){const o=this.open;if(!o)return;this.currentDirection=t;this.show=true;this.setCSSProperties()}async determinePopDirection(){var t,o,i;const{containerElement:r,controlElement:e,actualDirection:n,displayBuffer:a}=this;if(r)r.style.maxHeight=null;await s();const{isModule:c}=this;const{top:h,bottom:p}=(o=(t=e===null||e===void 0?void 0:e.getBoundingClientRect)===null||t===void 0?void 0:t.call(e))!==null&&o!==void 0?o:{top:0,bottom:0};let d;let l;let u;if(c){const t=(i=window.Tecton)===null||i===void 0?void 0:i.platformDimensions;const o=window.visualViewport.height-p;const r=t.innerHeight-(t.outletOffset+p);const e=o<r;d=t.innerHeight;l=(t.outletOffset>0?h:h+t.outletOffset)-a;u=e?o-a:r-a}else{d=window.visualViewport.height;l=h-a;u=d-p-a}const v=l>u?"up":"down";const f=!r.style.getPropertyValue("--comp-pop-max-height")||this.orientationChanged;this.orientationChanged=false;const w=this.currentDirection||n||v;switch(w){case"up":if(f){r.style.setProperty("--comp-pop-max-height",`${l}px`)}this.setDirectionAndShow("up");break;case"down":if(f){r.style.setProperty("--comp-pop-max-height",`${u}px`)}this.setDirectionAndShow("down");break}}render(){const t=["container",this.currentDirection];if(this.show)t.push("show");return r("div",{key:"a1cf82457aa65ddc1d51ae0fb62a9985d0956852",ref:t=>this.containerElement=t,class:t.join(" "),"test-id":"outerContainer"},r("div",{key:"d85db61212993787938f9fc404f9473d26246e15",ref:t=>this.contentElement=t,class:"content"},r("slot",{key:"ca70454f8fcf378c0535b799810e5e69e7f67c5d"})))}get hostElement(){return i(this)}static get watchers(){return{open:["openChanged"],minHeight:["minHeightProvided"]}}};h.style=c;export{n as click_elsewhere,h as q2_popover};
2
- //# sourceMappingURL=p-4a332c2a.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["ClickElsewhere","constructor","hostRef","this","mouseEventList","isCurrentlyFocused","mouseHandler","event","shadowContains","findActiveElement","aboutToBeFocused","shadowEventTarget","originatesInSlots","target","change","emit","windowBlurHandler","activeElement","document","body","tagName","componentWillLoad","connectedCallback","forEach","eventName","addEventListener","window","disconnectedCallback","removeEventListener","workingElement","shadowRoot","composedPath","child","hostElement","parentNode","host","slots","querySelectorAll","currentSlot","Array","from","lightNodes","assignedNodes","childNodes","currentNode","contains","q2PopoverCss","Q2PopoverStyle0","Q2Popover","displayBuffer","orientationChanged","handleMinHeight","minHeight","handleDeprecationWarning","viewPortChanged","open","determinePopDirection","viewPortOrientationChanged","setCSSProperties","async","controlElement","containerElement","currentDirection","top","controlTop","bottom","controlBottom","left","controlLeft","right","controlRight","_b","_a","getBoundingClientRect","call","popoverLeft","popoverRight","visualViewport","width","block","style","setProperty","offsetWidth","height","waitForNextPaint","undefined","componentDidLoad","removeViewportListeners","toggle","scrollContainerTo","options","scrollTo","openChanged","popoverStateChanged","addViewportListeners","show","clearCSSProperties","minHeightProvided","popoverStateHandler","detail","stopPropagation","actualDirection","direction","isModule","isIframe","hasPlatformDimensions","Object","keys","Tecton","platformDimensions","length","passive","capture","screen","orientation","removeProperty","setDirectionAndShow","isOpen","maxHeight","windowHeight","maxSpaceAbove","maxSpaceBelow","_c","distanceToIframeBottom","viewableSpaceBelow","innerHeight","outletOffset","isIframeShorterThanWindow","directionWithMostSpace","shouldUpdateMaxHeight","getPropertyValue","currentOrDetermineDirection","render","containerClasses","push","h","key","ref","el","class","join","contentElement"],"sources":["src/components/click-elsewhere/click-elsewhere.tsx","src/components/q2-popover/q2-popover.scss?tag=q2-popover&encapsulation=shadow","src/components/q2-popover/q2-popover.tsx"],"sourcesContent":["import { Component, ComponentInterface, Element, Event, EventEmitter } from '@stencil/core';\n\n@Component({\n tag: 'click-elsewhere',\n shadow: false,\n})\nexport class ClickElsewhere implements ComponentInterface {\n /**\n * Listens for mouse and window events that happen outside this click-elsewhere element so we can close popovers when users click outside them\n */\n mouseEventList: string[] = ['mousedown', 'dragstart', 'touchstart'];\n isCurrentlyFocused: boolean = false;\n\n @Element() hostElement: HTMLElement;\n\n /**\n * Emitted when the user clicks outside the element\n */\n @Event() change: EventEmitter;\n\n /* TODO: Stencil/Rollup is having issues compiling without this here. Will try to remove in future Stencil upgrade. */\n /* tslint:disable:no-empty */\n componentWillLoad() {}\n /* tslint:enable:no-empty */\n\n connectedCallback() {\n this.mouseEventList.forEach((eventName: string) => {\n document.addEventListener(eventName, this.mouseHandler);\n });\n window.addEventListener('blur', this.windowBlurHandler);\n }\n\n disconnectedCallback() {\n this.mouseEventList.forEach((eventName: string) => {\n document.removeEventListener(eventName, this.mouseHandler);\n });\n window.removeEventListener('blur', this.windowBlurHandler);\n }\n\n findActiveElement(): Element | null {\n let workingElement = document.activeElement!;\n while (true) {\n if (!workingElement || !workingElement.shadowRoot) {\n return workingElement;\n }\n workingElement = workingElement.shadowRoot.activeElement;\n }\n }\n\n shadowEventTarget(event: any): Element {\n return event.composedPath()[0] || event.target;\n }\n\n shadowContains(child: any): boolean {\n /**\n * shadow-dom enabled version of Node.contains()\n */\n\n while (true) {\n if (child === this.hostElement) {\n return true;\n }\n if (!child) {\n return false;\n }\n\n child = child.parentNode || child.host;\n }\n }\n\n originatesInSlots(target: Element): boolean {\n const slots = this.hostElement.querySelectorAll('slot');\n\n for (const currentSlot of Array.from(slots)) {\n const lightNodes =\n (currentSlot && currentSlot.assignedNodes && currentSlot.assignedNodes()) ||\n this.hostElement.childNodes;\n\n for (const currentNode of Array.from(lightNodes)) {\n if (currentNode.contains(target)) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n mouseHandler = (event: Event): void => {\n const isCurrentlyFocused = this.shadowContains(this.findActiveElement());\n const aboutToBeFocused =\n this.shadowContains(this.shadowEventTarget(event)) || this.originatesInSlots(event.target as Element);\n\n if (!aboutToBeFocused && (this.isCurrentlyFocused || isCurrentlyFocused)) {\n this.isCurrentlyFocused = false;\n this.change.emit();\n return;\n }\n this.isCurrentlyFocused = aboutToBeFocused || isCurrentlyFocused;\n };\n\n windowBlurHandler = (): void => {\n const activeElement = this.findActiveElement();\n if (\n (activeElement === document.body && this.isCurrentlyFocused) || // clicked parent frame\n (activeElement !== document.body && activeElement?.tagName === 'IFRAME') // clicked child frame\n ) {\n this.isCurrentlyFocused = false;\n this.change.emit();\n return;\n }\n };\n}\n","@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n.container {\n display: none;\n}\n\n.show {\n display: block;\n position: fixed;\n z-index: var-list(--tct-popover-z-index, 50);\n margin: 0;\n padding: 0;\n overflow: auto;\n background: var-list(--tct-popover-background, --app-white, #ffffff);\n color: var-list(--tct-popover-font-color, --t-text, #4d4d4d);\n min-width: var-list(--tct-popover-min-width, 135px);\n margin-block: var-list(--tct-popover-margin-block, 0);\n box-shadow: var-list(--tct-popover-box-shadow, --app-shadow-1, unquote('0 2px 4px rgba(0, 0, 0, 0.3)'));\n border-width: var-list(--tct-popover-border-width, 0);\n border-style: solid;\n border-color: var-list(--tct-popover-border-color, transparent);\n border-radius: var-list(--tct-popover-border-radius, 0);\n // the following --comp variables are set via JS\n max-height: var(--comp-pop-max-height);\n left: var(--comp-pop-left);\n opacity: var(--comp-pop-opacity, 0);\n\n :host([block]) & {\n right: unset;\n width: var(--comp-pop-width);\n min-width: var-list(--tct-popover-min-width, unset);\n }\n\n :host([align='left']) & {\n left: var(--comp-pop-left);\n right: unset;\n }\n\n :host([align='right']) & {\n right: var(--comp-pop-right);\n left: unset;\n }\n\n &.down {\n top: var-list(--tct-popover-top, --comp-pop-top);\n bottom: unset;\n }\n\n &.up {\n top: unset;\n bottom: var(--comp-pop-bottom);\n }\n\n @include tiny-scrollbar();\n}\n\nclick-elsewhere {\n position: relative;\n display: block;\n}\n","import {\n Component,\n Prop,\n h,\n ComponentInterface,\n Element,\n Watch,\n Method,\n Listen,\n EventEmitter,\n Event,\n State,\n} from '@stencil/core';\nimport { handleDeprecationWarning, waitForNextPaint } from '../../utils';\n\n@Component({ tag: 'q2-popover', shadow: true, styleUrl: 'q2-popover.scss' })\nexport class Q2Popover implements ComponentInterface {\n /**\n * Force the direction of the popover when it opens.\n * If no value is passed, the component will auto-detect the direction based on available space.\n */\n @Prop({ reflect: true }) direction: 'up' | 'down';\n\n /** Aligns the popover to the left or right side of the control element. */\n @Prop({ reflect: true }) align: 'left' | 'right';\n\n /** Controls whether the popover is open or closed. */\n @Prop({ reflect: true, mutable: true }) open: boolean;\n\n /** Indicates the popover will match the width of its parent element. */\n @Prop({ reflect: true }) block: boolean;\n\n /** The element that controls the popover's behavior. */\n @Prop() controlElement: HTMLElement;\n\n /** @deprecated */\n @Prop() minHeight: number;\n\n @Element() hostElement: HTMLElement;\n\n /**\n * Emitted when the popover is opened or closed.\n */\n @Event() popoverStateChanged: EventEmitter<{ open: boolean }>;\n\n @State() currentDirection: 'down' | 'up' = undefined;\n // remove `show` when Popover API is supported in iOS\n @State() show: boolean = false;\n\n containerElement: HTMLDivElement;\n contentElement: HTMLDivElement;\n\n /**\n * The number of pixels to leave between the popover and the edge of the viewport\n */\n displayBuffer = 10;\n\n /** remove when Popover API is supported in iOS */\n orientationChanged: boolean = false;\n\n /// Lifecycle hooks ///\n componentDidLoad() {\n this.handleMinHeight();\n if (this.open) this.determinePopDirection();\n }\n\n disconnectedCallback() {\n this.removeViewportListeners();\n }\n\n /// Methods ///\n @Method()\n async toggle() {\n this.open = !this.open;\n }\n\n @Method()\n async scrollContainerTo(options: ScrollToOptions) {\n this.containerElement.scrollTo(options);\n }\n\n /// Watchers ///\n @Watch('open')\n async openChanged(open: boolean) {\n this.popoverStateChanged.emit({ open });\n\n if (open) {\n this.addViewportListeners();\n this.determinePopDirection();\n } else {\n this.removeViewportListeners();\n this.currentDirection = undefined;\n this.show = false;\n await waitForNextPaint();\n this.clearCSSProperties();\n }\n }\n\n @Watch('minHeight')\n minHeightProvided() {\n this.handleMinHeight();\n }\n\n /// Listeners ///\n @Listen('popoverState')\n popoverStateHandler(event: CustomEvent<{ open: boolean }>) {\n const {\n detail: { open },\n } = event;\n if (open === this.open) return;\n\n this.open = open;\n event.stopPropagation();\n }\n\n /// Getters ///\n get actualDirection(): 'up' | 'down' | undefined {\n const { direction } = this;\n switch (direction) {\n case 'up':\n case 'down':\n return direction;\n default:\n return undefined;\n }\n }\n\n get isModule() {\n const isIframe = window !== window.top;\n const hasPlatformDimensions = Object.keys(window.Tecton?.platformDimensions ?? {}).length > 0;\n return isIframe && hasPlatformDimensions;\n }\n\n /// Helpers ///\n handleMinHeight = () => {\n if (this.minHeight) {\n handleDeprecationWarning(this, 'minHeight', 'prop');\n }\n };\n\n viewPortChanged = () => {\n if (!this.open) return;\n this.determinePopDirection();\n };\n\n viewPortOrientationChanged = () => {\n this.orientationChanged = true;\n this.viewPortChanged();\n };\n\n addViewportListeners() {\n window.addEventListener('resize', this.viewPortOrientationChanged);\n // #region remove when Popover API is supported in iOS\n window.addEventListener('scroll', this.viewPortChanged, { passive: true, capture: true });\n screen?.orientation?.addEventListener('change', this.viewPortOrientationChanged);\n window.addEventListener('orientationchange', this.viewPortOrientationChanged);\n // #endregion\n }\n\n removeViewportListeners() {\n window.removeEventListener('resize', this.viewPortOrientationChanged);\n // #region remove when Popover API is supported in iOS\n window.removeEventListener('scroll', this.viewPortChanged);\n screen?.orientation?.removeEventListener('orientationchange', this.viewPortOrientationChanged);\n window.removeEventListener('orientationchange', this.viewPortOrientationChanged);\n // #endregion\n }\n\n setCSSProperties = async () => {\n const { controlElement, containerElement, currentDirection } = this;\n const {\n top: controlTop,\n bottom: controlBottom,\n left: controlLeft,\n right: controlRight,\n } = controlElement?.getBoundingClientRect?.() ?? {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n };\n const popoverLeft: number = controlLeft;\n const popoverRight: number = window.visualViewport.width - controlRight;\n\n if (this.block) containerElement.style.setProperty('--comp-pop-width', `${controlElement.offsetWidth || 0}px`);\n containerElement.style.setProperty('--comp-pop-left', `${popoverLeft}px`);\n containerElement.style.setProperty('--comp-pop-right', `${popoverRight}px`);\n\n if (currentDirection === 'up') {\n containerElement.style.setProperty('--comp-pop-bottom', `${window.visualViewport.height - controlTop}px`);\n }\n if (currentDirection === 'down') {\n containerElement.style.setProperty('--comp-pop-top', `${controlBottom}px`);\n }\n\n // Wait for one paint to prevent layout thrashing\n await waitForNextPaint();\n containerElement.style.setProperty('--comp-pop-opacity', '1');\n };\n\n clearCSSProperties() {\n this.containerElement.style.removeProperty('--comp-pop-max-height');\n this.containerElement.style.removeProperty('--comp-pop-top');\n this.containerElement.style.removeProperty('--comp-pop-bottom');\n this.containerElement.style.removeProperty('--comp-pop-left');\n this.containerElement.style.removeProperty('--comp-pop-right');\n this.containerElement.style.removeProperty('--comp-pop-width');\n this.containerElement.style.removeProperty('--comp-pop-opacity');\n }\n\n setDirectionAndShow(direction: 'up' | 'down') {\n // Due to some runtime inconsistency across devices/browsers we need to add one more check here because the\n // popover can be closed between the time the popover is opened and the time the direction is determined\n const isOpen = this.open;\n if (!isOpen) return;\n\n this.currentDirection = direction;\n this.show = true;\n this.setCSSProperties();\n }\n\n async determinePopDirection() {\n const { containerElement, controlElement, actualDirection, displayBuffer } = this;\n if (containerElement) containerElement.style.maxHeight = null;\n\n await waitForNextPaint();\n\n const { isModule } = this;\n const { top: controlTop, bottom: controlBottom } = controlElement?.getBoundingClientRect?.() ?? {\n top: 0,\n bottom: 0,\n };\n\n let windowHeight: number;\n let maxSpaceAbove: number;\n let maxSpaceBelow: number;\n\n if (isModule) {\n const platformDimensions = window.Tecton?.platformDimensions;\n const distanceToIframeBottom = window.visualViewport.height - controlBottom;\n const viewableSpaceBelow =\n platformDimensions.innerHeight - (platformDimensions.outletOffset + controlBottom);\n const isIframeShorterThanWindow = distanceToIframeBottom < viewableSpaceBelow;\n windowHeight = platformDimensions.innerHeight;\n // If the top of the module is below the top of the window we just use the controlTop\n // Otherwise we need to add the outletOffset to the controlTop\n maxSpaceAbove =\n (platformDimensions.outletOffset > 0 ? controlTop : controlTop + platformDimensions.outletOffset) -\n displayBuffer;\n maxSpaceBelow = isIframeShorterThanWindow\n ? distanceToIframeBottom - displayBuffer\n : viewableSpaceBelow - displayBuffer;\n } else {\n windowHeight = window.visualViewport.height;\n maxSpaceAbove = controlTop - displayBuffer;\n maxSpaceBelow = windowHeight - controlBottom - displayBuffer;\n }\n\n const directionWithMostSpace: 'up' | 'down' = maxSpaceAbove > maxSpaceBelow ? 'up' : 'down';\n\n // We do not want to update the max height once the popover is open unless the page orientation shifts (resize or mobile use cases)\n const shouldUpdateMaxHeight =\n !containerElement.style.getPropertyValue('--comp-pop-max-height') || this.orientationChanged;\n // we do not want to constantly update the max-height after an orientation change, so we switch this back to false\n this.orientationChanged = false;\n const currentOrDetermineDirection = this.currentDirection || actualDirection || directionWithMostSpace;\n\n switch (currentOrDetermineDirection) {\n case 'up':\n if (shouldUpdateMaxHeight) {\n containerElement.style.setProperty('--comp-pop-max-height', `${maxSpaceAbove}px`);\n }\n this.setDirectionAndShow('up');\n break;\n case 'down':\n if (shouldUpdateMaxHeight) {\n containerElement.style.setProperty('--comp-pop-max-height', `${maxSpaceBelow}px`);\n }\n this.setDirectionAndShow('down');\n break;\n default:\n break;\n }\n }\n\n /// DOM ///\n render() {\n const containerClasses = ['container', this.currentDirection];\n if (this.show) containerClasses.push('show');\n\n return (\n <div\n ref={el => (this.containerElement = el)}\n class={containerClasses.join(' ')}\n test-id=\"outerContainer\"\n >\n <div\n ref={el => (this.contentElement = el)}\n class=\"content\"\n >\n <slot />\n </div>\n </div>\n );\n }\n}\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as t,h as e,F as i,g as n}from"./p-a5f18e27.js";import{w as s,a as o,h as r,i as d,o as h,l as a}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:inline-flex}:host([block]){display:block}click-elsewhere{position:relative;display:block}q2-popover{--tct-popover-min-width:var(--tct-dropdown-width, var(--t-dropdown-width))}";const c=l;const u=class{constructor(e){t(this,e);this.dropdownItemSelector="q2-dropdown-item:not([disabled]):not([separator])";this.focusToggle=()=>{this.controlElement.shadowRoot.querySelector("button").focus()};this.openDropdown=()=>{if(this.open)return;this.open=true};this.closeDropdown=()=>{if(!this.open)return;this.open=false};this.onClickElsewhere=t=>{const e=t.target;if(e.localName==="click-elsewhere"){t.stopPropagation();const{popoverElement:e}=this;if(!e)return;e.open=false}};this.onToggleClick=()=>{if(this.open){this.closeDropdown()}else{this.openDropdown()}};this.onToggleKeydown=t=>{if(["ArrowUp","Up"].includes(t.key)){t.preventDefault();this.openDropdown();this.focusLastItem();return}if(["ArrowDown","Down"].includes(t.key)){t.preventDefault();this.openDropdown();this.focusFirstItem();return}if(["Escape","Esc"].includes(t.key)){t.preventDefault();this.focusToggle();this.closeDropdown();return}};this.onDropdownMenuClick=async t=>{if(t.target.localName!=="q2-dropdown-item"){return}const e=t.target;if(!e.disabled&&!e.separator){this.closeDropdown();await s();this.focusToggle()}};this.onDropdownMenuKeydown=t=>{if(["Escape","Esc"].includes(t.key)){this.closeDropdown();this.focusToggle();return}if(t.target.localName!=="q2-dropdown-item"){return}const e=t.target;if(["ArrowUp","Up"].includes(t.key)){t.preventDefault();this.focusAdjacentItem(e,"prev");return}if(["ArrowDown","Down"].includes(t.key)){t.preventDefault();this.focusAdjacentItem(e,"next");return}if(t.key==="Tab"){t.preventDefault()}};this.additionalContext=undefined;this.block=undefined;this.context=undefined;this.contextValue=undefined;this.disabled=undefined;this.hideLabel=undefined;this.icon=undefined;this.label=undefined;this.name=undefined;this.open=undefined;this.popoverDirection=undefined;this.popoverAlignment="left";this.popoverMinHeight=150;this.resolvedType=undefined;this.type="icon";this.alignment=undefined;this.popDirection=undefined;this.ariaLabel=undefined}resolveMenu(){return this.name&&window.TectonElements&&window.TectonElements.resolveMenu(this.name,this.contextValue,this.resolvedType,this.additionalContext)}orchestrateResolvedMenuItems(){if(!this.name||!this.context){this.removeResolvedElements();return}this.resolveMenuItemElements().then((t=>{this.removeResolvedElements();t.forEach((t=>{this.hostElement.appendChild(t)}))})).catch((t=>{this.removeResolvedElements();throw t}))}removeResolvedElements(){const t=this.hostElement.querySelectorAll("q2-dropdown-item.resolved-menu-item");t.forEach((t=>this.hostElement.removeChild(t)))}resolveMenuItemElements(){return this.resolveMenu().then((t=>t.map((t=>{let e;let i;if(t["tct-ctxid"]){i={};i[t.contextIdParamName]=t["tct-ctxid"]}switch(t.action){case"navigateTo":e=()=>this.navigateTo(t.featureName,t.moduleName,i);break;case"showOverpanel":e=()=>this.showOverpanel(`${t.featureName}.${t.moduleName}`,i);break}const n=document.createElement("q2-dropdown-item");n.setAttribute("value",t.itemLabel);n.classList.add("resolved-menu-item");n.innerHTML=t.itemLabel;n.onclick=e;return n}))))}navigateTo(t,e,i){var n,s;return(s=(n=window.TectonElements)===null||n===void 0?void 0:n.navigateTo)===null||s===void 0?void 0:s.call(n,t,e,i)}showOverpanel(t,e){var i,n;return(n=(i=window.TectonElements)===null||i===void 0?void 0:i.showOverpanel)===null||n===void 0?void 0:n.call(i,t,e,undefined,true)}get hasCustomButton(){return!!this.hostElement.querySelector("[slot=custom-dropdown-button]")}get determineDropdownItemCount(){return this.hostElement.querySelectorAll(this.dropdownItemSelector).length}get toggleButtonProps(){const t=["primary","secondary","neutral"];const e=["icon","fab","custom",...t];const i=e.includes(this.type)?this.type:"";const n=i==="icon";const s=i==="fab";const o=i==="custom";let r;if(t.includes(i)){r=i==="neutral"?i:`workflow-${i}`}const d=this.open;const h=!!this.disabled;const a=this.open;const l=!n&&!s&&!r?"unstyled":"";return{icon:n,fab:s,intent:r,active:d,disabled:h,ariaExpanded:a,className:l,custom:o}}popDirectionHandler(){o(this,"popDirection","popoverDirection")}alignmentHandler(){o(this,"alignment","popoverAlignment")}ariaLabelHandler(){r(this)}nameHandler(){this.orchestrateResolvedMenuItems()}contextHandler(){this.orchestrateResolvedMenuItems()}contextValueHandler(){this.orchestrateResolvedMenuItems()}resolvedTypeHandler(){this.orchestrateResolvedMenuItems()}additionalContextHandler(){this.orchestrateResolvedMenuItems()}delegateFocus(t){if(!d(t,this.hostElement))return;this.focusToggle()}popoverStateHandler({detail:{open:t}}){var e;if(this.open!==t)this.open=t;(e=this.popoverElement)===null||e===void 0?void 0:e.scrollContainerTo({top:0})}componentWillLoad(){this.popDirectionHandler();this.alignmentHandler();this.ariaLabelHandler()}componentDidLoad(){this.orchestrateResolvedMenuItems();h(this.hostElement)}focusFirstItem(){const t=this.hostElement.querySelector(`${this.dropdownItemSelector}:first-child`);t===null||t===void 0?void 0:t.dispatchEvent(new FocusEvent("focus"))}focusLastItem(){const t=this.hostElement.querySelector(`${this.dropdownItemSelector}:last-child`);t===null||t===void 0?void 0:t.dispatchEvent(new FocusEvent("focus"))}focusAdjacentItem(t,e){const i=Array.from(this.hostElement.querySelectorAll(this.dropdownItemSelector));const n=i.indexOf(t);if(n===-1){return}let s=0;if(e==="next"){s=n<i.length-1?n+1:0}else if(e==="prev"){if(n>0){s=n-1}else{s=i.length-1}}const o=i[s];o&&o.dispatchEvent(new Event("focus"))}render(){const t=this.toggleButtonProps;return e("click-elsewhere",{key:"0c11f21a4a10e67045909c02074b1bdf647f82e4",class:this.open?"dropdown-open":"",onChange:this.onClickElsewhere,"test-id":"dropdownContainer"},e("q2-btn",{key:"2849dbdeb3d50ad1f76a16134c0528f27591ff2a",ref:t=>this.controlElement=t,class:t.className,onClick:this.onToggleClick,onKeyDown:this.onToggleKeydown,fab:t.fab,intent:t.intent,active:t.active,disabled:t.disabled,ariaExpanded:`${!!t.ariaExpanded}`,label:this.hideLabel&&this.label?a(this.label):undefined,hideLabel:this.hideLabel,ariaHasPopup:"menu","test-id":"dropdownButton",block:this.block,description:a("tecton.element.dropdown.itemCount",[this.determineDropdownItemCount])},this.hasCustomButton?e("div",{"test-id":"dropdownCustom",class:t.custom?"":"hidden"},e("slot",{name:"custom-dropdown-button"})):e(i,null,this.icon?e("q2-icon",{type:this.icon}):" ",this.label&&!this.hideLabel&&e("span",{class:"dropdown-button-text"},a(this.label)))),e("q2-popover",{key:"445eb5a0221757d40b28cd33ff365d07462c2fcd",ref:t=>this.popoverElement=t,controlElement:this.controlElement,open:this.open,minHeight:this.popoverMinHeight,direction:this.popoverDirection,align:this.popoverAlignment,block:this.block},e("div",{key:"129f4938bdbe29fc6165fb79e6d419b82c8bc388",onClick:this.onDropdownMenuClick,onKeyDown:this.onDropdownMenuKeydown},e("slot",{key:"d39e2a0ee1f3f1c9cfc1d36f4473bbf0be153834"}),this.open&&e("q2-btn",{key:"0fd75e7ff87fc18b802a1fd406625b16221e25e1",class:"sr close-dropdown",onFocus:this.closeDropdown}))))}get hostElement(){return n(this)}static get watchers(){return{popDirection:["popDirectionHandler"],alignment:["alignmentHandler"],ariaLabel:["ariaLabelHandler"],name:["nameHandler"],context:["contextHandler"],contextValue:["contextValueHandler"],resolvedType:["resolvedTypeHandler"],additionalContext:["additionalContextHandler"]}}};u.style=c;export{u as q2_dropdown};
2
- //# sourceMappingURL=p-7f663376.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["q2DropdownCss","Q2DropdownStyle0","Q2Dropdown","this","dropdownItemSelector","focusToggle","controlElement","shadowRoot","querySelector","focus","openDropdown","open","closeDropdown","onClickElsewhere","event","target","localName","stopPropagation","popoverElement","onToggleClick","onToggleKeydown","includes","key","preventDefault","focusLastItem","focusFirstItem","onDropdownMenuClick","async","item","disabled","separator","waitForNextPaint","onDropdownMenuKeydown","focusAdjacentItem","resolveMenu","name","window","TectonElements","contextValue","resolvedType","additionalContext","orchestrateResolvedMenuItems","context","removeResolvedElements","resolveMenuItemElements","then","data","forEach","element","hostElement","appendChild","catch","err","resolvedElements","querySelectorAll","removeChild","datas","map","menuItemData","onClickFn","queryParams","contextIdParamName","action","navigateTo","featureName","moduleName","showOverpanel","newDropdownItem","document","createElement","setAttribute","itemLabel","classList","add","innerHTML","onclick","_b","_a","call","overpanelPath","params","undefined","hasCustomButton","determineDropdownItemCount","length","toggleButtonProps","allowedIntents","allowedTypes","type","icon","fab","custom","intent","active","ariaExpanded","className","popDirectionHandler","handleRenamedProp","alignmentHandler","ariaLabelHandler","handleAriaLabel","nameHandler","contextHandler","contextValueHandler","resolvedTypeHandler","additionalContextHandler","delegateFocus","isEventFromElement","popoverStateHandler","detail","scrollContainerTo","top","componentWillLoad","componentDidLoad","overrideFocus","firstItem","dispatchEvent","FocusEvent","lastItem","activeItem","direction","dropdownItems","Array","from","activeIndex","indexOf","targetIndex","targetItem","Event","render","btnProps","h","class","onChange","ref","el","onClick","onKeyDown","label","hideLabel","loc","ariaHasPopup","block","description","Fragment","minHeight","popoverMinHeight","popoverDirection","align","popoverAlignment","onFocus"],"sources":["src/components/q2-dropdown/q2-dropdown.scss?tag=q2-dropdown&encapsulation=shadow","src/components/q2-dropdown/q2-dropdown.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n display: inline-flex;\n}\n\n:host([block]) {\n display: block;\n}\n\nclick-elsewhere {\n position: relative;\n display: block;\n}\n\nq2-popover {\n --tct-popover-min-width: #{var-list(var-prefixer(dropdown-width))};\n}\n","import { Component, ComponentInterface, Prop, Element, Watch, h, Fragment, Listen } from '@stencil/core';\nimport { IDict } from 'src/util';\nimport {\n handleAriaLabel,\n handleRenamedProp,\n isEventFromElement,\n loc,\n overrideFocus,\n waitForNextPaint,\n} from 'src/utils';\n\n@Component({ tag: 'q2-dropdown', shadow: true, styleUrl: 'q2-dropdown.scss' })\nexport class Q2Dropdown implements ComponentInterface {\n @Prop({ reflect: true }) additionalContext: string;\n\n /** If `true`, component expands to fill the width of its parent element. */\n @Prop({ reflect: true }) block: boolean;\n\n /**\n * Tells the outlet what the type of object being passed in as contextValue.\n * This will allow for the hierarchy resolution logic to work to determine if an option should or should not be shown.\n *\n * @info\n * Only applicable when using `<q2-dropdown>` for outlets.\n */\n @Prop({ reflect: true }) context: string;\n\n /**\n * Passes important information to the outlet (e.g., pass an account id that your platform can use to look up what module to show for that account type).\n *\n * @info\n * Only applicable when using `<q2-dropdown>` for outlets.\n */\n @Prop({ reflect: true }) contextValue: string;\n\n /** Indicates the menu cannot be focused or interacted with. */\n @Prop({ reflect: true }) disabled: boolean;\n\n /**\n * Hide's the field's `<label>` element from view.\n * @warning\n * Only use when a visible label is impractical.\n */\n @Prop({ reflect: true, mutable: true }) hideLabel: boolean;\n\n /** The icon that will render within the toggle button. You may use any of the `q2-icon` types. */\n @Prop({ reflect: true }) icon: string;\n\n /**\n * The text that appears within the button.\n * @warning\n * This property should not be used if the `type` is `icon`.\n * @localizable\n */\n @Prop({ reflect: true, mutable: true }) label: string;\n\n /**\n * Identifies this menu as an outlet. Used in conjunction with context and, optionally, `contextValue`.\n * @info\n * Only applicable when using `<q2-dropdown>` for outlets.\n */\n @Prop({ reflect: true }) name: string;\n\n /** Determine whether the popover is open or closed. */\n @Prop({ reflect: true, mutable: true }) open: boolean;\n\n /**\n * Force the direction of the popover dropdown when it opens.\n * If no value is passed, the component will auto-detect the direction based on available space.\n */\n @Prop({ mutable: true }) popoverDirection: 'up' | 'down';\n\n /** Aligns the popover dropdown to the left or right side of the input field. */\n @Prop({ mutable: true }) popoverAlignment: 'left' | 'right' = 'left'; // being used in dropdown.scss\n\n /** @deprecated */\n @Prop() popoverMinHeight: number = 150;\n\n /**\n * Use with `context` to tell the outlet where it appears. It will be matched with the appropriately configured module for that context.\n * @info\n * Only applicable when using `<q2-dropdown>` for outlets.\n */\n @Prop({ reflect: true }) resolvedType: string;\n\n /** The type of button used as the menu toggle. */\n @Prop({ reflect: true }) type: 'icon' | 'fab' | 'custom' | 'primary' | 'secondary' | 'neutral' = 'icon';\n\n /** @deprecated */\n @Prop({ reflect: true }) alignment: 'left' | 'right';\n\n /** @deprecated */\n @Prop({ reflect: true }) popDirection: 'up' | 'down';\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true }) ariaLabel: string;\n\n @Element() hostElement: HTMLElement;\n privatePopDirection: 'down' | 'up';\n controlElement?: HTMLQ2BtnElement;\n popoverElement?: HTMLQ2PopoverElement;\n dropdownItemSelector: string = 'q2-dropdown-item:not([disabled]):not([separator])';\n\n resolveMenu() {\n return (\n this.name &&\n window.TectonElements &&\n window.TectonElements.resolveMenu(this.name, this.contextValue, this.resolvedType, this.additionalContext)\n );\n }\n\n orchestrateResolvedMenuItems() {\n if (!this.name || !this.context) {\n // this is only for contextual menu outlets\n this.removeResolvedElements();\n return;\n }\n\n this.resolveMenuItemElements()\n .then(data => {\n this.removeResolvedElements();\n data.forEach(element => {\n this.hostElement.appendChild(element);\n });\n })\n .catch(err => {\n this.removeResolvedElements();\n throw err;\n });\n }\n\n removeResolvedElements() {\n const resolvedElements = this.hostElement.querySelectorAll('q2-dropdown-item.resolved-menu-item');\n resolvedElements.forEach(element => this.hostElement.removeChild(element));\n }\n\n resolveMenuItemElements() {\n return this.resolveMenu().then(datas => {\n return datas.map(menuItemData => {\n let onClickFn;\n let queryParams;\n if (menuItemData['tct-ctxid']) {\n queryParams = {};\n queryParams[menuItemData.contextIdParamName] = menuItemData['tct-ctxid'];\n }\n\n switch (menuItemData.action) {\n case 'navigateTo':\n onClickFn = () =>\n this.navigateTo(menuItemData.featureName, menuItemData.moduleName, queryParams);\n break;\n case 'showOverpanel':\n onClickFn = () =>\n this.showOverpanel(`${menuItemData.featureName}.${menuItemData.moduleName}`, queryParams);\n break;\n }\n\n const newDropdownItem = document.createElement('q2-dropdown-item');\n newDropdownItem.setAttribute('value', menuItemData.itemLabel);\n newDropdownItem.classList.add('resolved-menu-item');\n newDropdownItem.innerHTML = menuItemData.itemLabel;\n newDropdownItem.onclick = onClickFn;\n\n return newDropdownItem;\n });\n });\n }\n\n navigateTo(featureName: string, moduleName?: string, queryParams?: IDict<string>) {\n return window.TectonElements?.navigateTo?.(featureName, moduleName, queryParams);\n }\n\n showOverpanel(overpanelPath: string, params: IDict<string>) {\n return window.TectonElements?.showOverpanel?.(overpanelPath, params, undefined, true);\n }\n\n get hasCustomButton() {\n return !!this.hostElement.querySelector('[slot=custom-dropdown-button]');\n }\n\n get determineDropdownItemCount() {\n return this.hostElement.querySelectorAll(this.dropdownItemSelector).length;\n }\n\n get toggleButtonProps() {\n const allowedIntents = ['primary', 'secondary', 'neutral'];\n const allowedTypes = ['icon', 'fab', 'custom', ...allowedIntents];\n const type = allowedTypes.includes(this.type) ? this.type : '';\n const icon = type === 'icon';\n const fab = type === 'fab';\n const custom = type === 'custom';\n let intent;\n if (allowedIntents.includes(type)) {\n intent = type === 'neutral' ? type : `workflow-${type}`;\n }\n const active = this.open;\n const disabled = !!this.disabled;\n const ariaExpanded = this.open;\n const className = !icon && !fab && !intent ? 'unstyled' : '';\n\n return {\n icon,\n fab,\n intent,\n active,\n disabled,\n ariaExpanded,\n className,\n custom,\n };\n }\n\n //////// Observers //////////\n @Watch('popDirection')\n popDirectionHandler() {\n handleRenamedProp(this, 'popDirection', 'popoverDirection');\n }\n\n @Watch('alignment')\n alignmentHandler() {\n handleRenamedProp(this, 'alignment', 'popoverAlignment');\n }\n\n @Watch('ariaLabel')\n ariaLabelHandler() {\n handleAriaLabel(this);\n }\n\n @Watch('name')\n nameHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n @Watch('context')\n contextHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n @Watch('contextValue')\n contextValueHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n @Watch('resolvedType')\n resolvedTypeHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n @Watch('additionalContext')\n additionalContextHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.focusToggle();\n }\n\n @Listen('popoverStateChanged')\n popoverStateHandler({ detail: { open } }: CustomEvent<{ open: boolean }>) {\n if (this.open !== open) this.open = open;\n this.popoverElement?.scrollContainerTo({ top: 0 });\n }\n\n ///// Lifecycle Hooks ////////\n componentWillLoad() {\n this.popDirectionHandler();\n this.alignmentHandler();\n this.ariaLabelHandler();\n }\n\n componentDidLoad() {\n this.orchestrateResolvedMenuItems();\n overrideFocus(this.hostElement);\n }\n\n ///// Actions ////////\n focusToggle = () => {\n this.controlElement.shadowRoot.querySelector<HTMLButtonElement>('button').focus();\n };\n\n openDropdown = () => {\n if (this.open) return;\n this.open = true;\n };\n\n closeDropdown = () => {\n if (!this.open) return;\n this.open = false;\n };\n\n onClickElsewhere = (event: CustomEvent) => {\n const target = event.target as HTMLClickElsewhereElement;\n if (target.localName === 'click-elsewhere') {\n event.stopPropagation();\n const { popoverElement } = this;\n if (!popoverElement) return;\n popoverElement.open = false;\n }\n };\n\n onToggleClick = () => {\n if (this.open) {\n this.closeDropdown();\n } else {\n this.openDropdown();\n }\n };\n\n onToggleKeydown = (event: KeyboardEvent) => {\n if (['ArrowUp', 'Up'].includes(event.key)) {\n event.preventDefault();\n this.openDropdown();\n this.focusLastItem();\n return;\n }\n\n if (['ArrowDown', 'Down'].includes(event.key)) {\n event.preventDefault();\n this.openDropdown();\n this.focusFirstItem();\n return;\n }\n\n if (['Escape', 'Esc'].includes(event.key)) {\n event.preventDefault();\n this.focusToggle();\n this.closeDropdown();\n return;\n }\n };\n\n onDropdownMenuClick = async (event: MouseEvent | CustomEvent) => {\n if ((event.target as HTMLElement).localName !== 'q2-dropdown-item') {\n return;\n }\n const item = event.target as HTMLQ2DropdownItemElement;\n if (!item.disabled && !item.separator) {\n this.closeDropdown();\n await waitForNextPaint();\n this.focusToggle();\n }\n };\n\n focusFirstItem() {\n const firstItem = this.hostElement.querySelector<HTMLQ2DropdownItemElement>(\n `${this.dropdownItemSelector}:first-child`\n );\n\n firstItem?.dispatchEvent(new FocusEvent('focus'));\n }\n\n focusLastItem() {\n const lastItem = this.hostElement.querySelector<HTMLQ2DropdownItemElement>(\n `${this.dropdownItemSelector}:last-child`\n );\n lastItem?.dispatchEvent(new FocusEvent('focus'));\n }\n\n focusAdjacentItem(activeItem: HTMLQ2DropdownItemElement, direction: 'next' | 'prev') {\n const dropdownItems: HTMLQ2DropdownItemElement[] = Array.from(\n this.hostElement.querySelectorAll(this.dropdownItemSelector)\n );\n\n const activeIndex = dropdownItems.indexOf(activeItem);\n\n if (activeIndex === -1) {\n return;\n }\n\n let targetIndex: number = 0;\n if (direction === 'next') {\n targetIndex = activeIndex < dropdownItems.length - 1 ? activeIndex + 1 : 0;\n } else if (direction === 'prev') {\n if (activeIndex > 0) {\n targetIndex = activeIndex - 1;\n } else {\n targetIndex = dropdownItems.length - 1;\n }\n }\n const targetItem = dropdownItems[targetIndex];\n targetItem && targetItem.dispatchEvent(new Event('focus'));\n }\n\n onDropdownMenuKeydown = (event: KeyboardEvent) => {\n if (['Escape', 'Esc'].includes(event.key)) {\n this.closeDropdown();\n this.focusToggle();\n return;\n }\n\n if ((event.target as HTMLElement).localName !== 'q2-dropdown-item') {\n return;\n }\n\n const item = event.target as HTMLQ2DropdownItemElement;\n if (['ArrowUp', 'Up'].includes(event.key)) {\n event.preventDefault();\n this.focusAdjacentItem(item, 'prev');\n return;\n }\n\n if (['ArrowDown', 'Down'].includes(event.key)) {\n event.preventDefault();\n this.focusAdjacentItem(item, 'next');\n return;\n }\n if (event.key === 'Tab') {\n event.preventDefault();\n }\n };\n\n /// DOM ///\n\n render() {\n const btnProps = this.toggleButtonProps;\n\n return (\n <click-elsewhere\n class={this.open ? 'dropdown-open' : ''}\n onChange={this.onClickElsewhere}\n test-id=\"dropdownContainer\"\n >\n <q2-btn\n ref={el => (this.controlElement = el)}\n class={btnProps.className}\n onClick={this.onToggleClick}\n onKeyDown={this.onToggleKeydown}\n fab={btnProps.fab}\n intent={btnProps.intent}\n active={btnProps.active}\n disabled={btnProps.disabled}\n ariaExpanded={`${!!btnProps.ariaExpanded}`}\n label={this.hideLabel && this.label ? loc(this.label) : undefined}\n hideLabel={this.hideLabel}\n ariaHasPopup=\"menu\"\n test-id=\"dropdownButton\"\n block={this.block}\n description={loc('tecton.element.dropdown.itemCount', [this.determineDropdownItemCount])}\n >\n {this.hasCustomButton ? (\n <div\n test-id=\"dropdownCustom\"\n class={btnProps.custom ? '' : 'hidden'}\n >\n <slot name=\"custom-dropdown-button\" />\n </div>\n ) : (\n <Fragment>\n {this.icon ? <q2-icon type={this.icon} /> : ' '}\n {this.label && !this.hideLabel && (\n <span class=\"dropdown-button-text\">{loc(this.label)}</span>\n )}\n </Fragment>\n )}\n </q2-btn>\n <q2-popover\n ref={el => (this.popoverElement = el)}\n controlElement={this.controlElement}\n open={this.open}\n minHeight={this.popoverMinHeight}\n direction={this.popoverDirection}\n align={this.popoverAlignment}\n block={this.block}\n >\n <div\n onClick={this.onDropdownMenuClick}\n onKeyDown={this.onDropdownMenuKeydown}\n >\n <slot />\n {this.open && (\n <q2-btn\n class=\"sr close-dropdown\"\n onFocus={this.closeDropdown}\n />\n )}\n </div>\n </q2-popover>\n </click-elsewhere>\n );\n }\n}\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as t,a,h as r,F as s,g as e}from"./p-a5f18e27.js";import{c as n}from"./p-42302f6f.js";const d="standard";const o="standard";const c="standard";const i="standard";const l="legacy";const p="standard";const g="standard";const h="standard";const u="standard";const y="standard";const f="standard";const m="standard";const b="standard";const v="standard";const w="standard";const k="standard";const x="standard";const z="standard";const $="standard";const N="standard";const j="standard";const E="standard";const C="standard";const F="cards";const I="standard";const S="standard";const q="standard";const B="communication";const V="standard";const D="standard";const G="standard";const A="standard";const L="standard";const O="standard";const R="standard";const W="standard";const _="standard";const H="standard";const J="system";const K="standard";const M="standard";const P="standard";const Q="standard";const T="standard";const U="standard";const X="status";const Y="standard";const Z="standard";const tt="standard";const at="standard";const rt="standard";const st="standard";const et="standard";const nt="standard";const dt="standard";const ot="standard";const ct="standard";const it="standard";const lt="standard";const pt="standard";const gt="standard";const ht="standard";const ut="standard";const yt="status";const ft="legacy";const mt="standard";const bt="system";const vt="standard";const wt="standard";const kt="standard";const xt="standard";const zt="standard";const $t="standard";const Nt="standard";const jt="standard";const Et="standard";const Ct="standard";const Ft="standard";const It="standard";const St="standard";const qt="standard";const Bt="standard";const Vt="standard";const Dt="standard";const Gt="standard";const At="standard";const Lt="standard";const Ot="standard";const Rt="standard";const Wt="standard";const _t="standard";const Ht="standard";const Jt="standard";const Kt="standard";const Mt="standard";const Pt="standard";const Qt="standard";const Tt="mobile";const Ut="standard";const Xt="standard";const Yt="standard";const Zt="standard";const ta="standard";const aa="standard";const ra="standard";const sa="standard";const ea="standard";const na="standard";const da="legacy";const oa="standard";const ca="standard";const ia="standard";const la="standard";const pa="standard";const ga="standard";const ha="standard";const ua="standard";const ya="standard";const fa="standard";const ma="standard";const ba="standard";const va="standard";const wa="standard";const ka="standard";const xa="standard";const za="standard";const $a="standard";const Na="status";const ja="mobile";const Ea="standard";const Ca="standard";const Fa="standard";const Ia="standard";const Sa="standard";const qa="standard";const Ba="standard";const Va="standard";const Da="standard";const Ga="standard";const Aa="standard";const La="standard";const Oa="standard";const Ra="standard";const Wa="status";const _a="standard";const Ha="standard";const Ja={a11y:d,add:o,airplane:c,"alarm-clock":"standard",ambulance:i,android:l,apple:p,"arrow-down":"standard","arrow-left":"standard","arrow-right":"standard","arrow-up":"standard",arts:g,atv:h,backpack:u,bank:y,barchart:f,"barchart-trend":"standard",bed:m,bell:b,bicycle:v,boat:w,box:k,"brand-autobooks-color":"legacy","brand-autobooks-filled":"legacy","brand-facebook-color":"legacy","brand-facebook-filled":"legacy","brand-instagram-color":"legacy","brand-instagram-filled":"legacy","brand-linkedin-color":"legacy","brand-linkedin-filled":"legacy","brand-messenger-color":"legacy","brand-messenger-filled":"legacy","brand-payrecs-color":"legacy","brand-payrecs-filled":"legacy","brand-snapchat-color":"legacy","brand-snapchat-filled":"legacy","brand-twitter-color":"legacy","brand-twitter-filled":"legacy","brand-vimeo-color":"legacy","brand-vimeo-filled":"legacy","brand-x-color":"legacy","brand-x-filled":"legacy","brand-youtube-color":"legacy","brand-youtube-filled":"legacy","brand-zelle-color":"legacy","brand-zelle-filled":"legacy",briefcase:x,"browser-chrome":"legacy","browser-chrome-color":"legacy","browser-chrome-filled":"legacy","browser-edge":"legacy","browser-edge-color":"legacy","browser-edge-filled":"legacy","browser-firefox":"legacy","browser-firefox-color":"legacy","browser-firefox-filled":"legacy","browser-ie":"legacy","browser-ie-color":"legacy","browser-ie-filled":"legacy","browser-opera":"legacy","browser-opera-color":"legacy","browser-opera-filled":"legacy","browser-safari":"legacy","browser-safari-color":"legacy","browser-safari-filled":"legacy","bubble-graph":"standard",bug:z,buildings:$,"buildings-2":"standard",calculator:N,calendar:j,"calendar-confirm":"legacy","calendar-create":"standard","calendar-pay":"standard","calendar-remove":"standard","calendar-repeat":"standard","calendar-skip":"standard","calendar-time":"standard","call-color":"legacy","call-filled":"legacy",camera:E,car:C,"car-front":"standard",card:F,"card-add":"cards","card-amazon":"cards","card-amazon-color":"legacy","card-amex":"cards","card-amex-color":"legacy","card-applepay":"cards","card-applepay-color":"legacy","card-bitcoin":"cards","card-bitcoin-color":"legacy","card-dinersclub":"cards","card-dinersclub-color":"legacy","card-discover":"cards","card-discover-color":"legacy","card-edit":"cards","card-gift":"cards","card-googlepay":"cards","card-googlepay-color":"legacy","card-heart":"cards","card-in-hand":"cards","card-insert":"cards","card-jcb":"cards","card-jcb-color":"legacy","card-join":"cards","card-locked":"cards","card-maestro":"cards","card-maestro-color":"legacy","card-mastercard":"cards","card-mastercard-color":"legacy","card-more":"cards","card-paypal":"cards","card-paypal-color":"legacy","card-prohibited":"cards","card-remove":"cards","card-scissors":"cards","card-star":"cards","card-stripe":"cards","card-stripe-color":"legacy","card-success":"cards","card-unknown":"cards","card-update":"cards","card-visa":"cards","card-visa-color":"legacy",cart:I,"cart-moving":"standard",cash:S,"cash-bills":"standard","cash-coins":"standard","cash-in-hand":"standard","cash-register":"standard",certificate:q,chat:B,"chat-bubbles":"communication","chat-question":"communication","chat-round":"communication",check:V,"check-add":"standard","check-dollar":"standard","check-edit":"standard","check-remove":"standard","check-shield":"standard",checkmark:D,"checkmark-outline":"standard","chevron-double-left":"standard","chevron-double-right":"standard","chevron-down":"standard","chevron-left":"standard","chevron-right":"standard","chevron-up":"standard",clipboard:G,close:A,coins:L,compass:O,conversation:R,copy:W,coupon:_,"credit-score":"standard","currency-dollar":"currencies","currency-dollar-circle":"currencies","currency-euro":"currencies","currency-pound":"currencies","currency-yen":"currencies",dashboard:H,"delivery-truck":"standard",desktop:J,diploma:K,divider:M,document:P,"document-add":"standard","document-checklist":"standard","document-remove":"standard",download:Q,"drag-handle":"standard",edit:T,ellipsis:U,error:X,"error-filled":"status","external-link":"standard","eye-hide":"standard","eye-show":"standard","face-id":"standard",factory:Y,failed:Z,filebox:tt,"filetype-csv":"filetypes","filetype-doc":"filetypes","filetype-docx":"filetypes","filetype-generic":"filetypes","filetype-gif":"filetypes","filetype-iso":"filetypes","filetype-jpg":"filetypes","filetype-otf":"filetypes","filetype-pdf":"filetypes","filetype-png":"filetypes","filetype-ppt":"filetypes","filetype-svg":"filetypes","filetype-txt":"filetypes","filetype-xls":"filetypes","filetype-xlsx":"filetypes","filetype-xml":"filetypes",filter:at,fingerprint:rt,flag:st,gear:et,"gesture-hand":"gestures","gesture-scroll-horizontal":"gestures","gesture-scroll-vertical":"gestures","gesture-stretch":"gestures","gesture-swipe-down":"gestures","gesture-swipe-left":"gestures","gesture-swipe-right":"gestures","gesture-swipe-up":"gestures","gesture-tap":"gestures",gift:nt,"gold-bars":"standard",government:dt,gps:ot,"graduation-cap":"standard","grid-x2":"standard","grid-x3":"standard","hamburger-menu":"standard",hand:ct,"hand-with-coins":"standard","hand-with-key":"standard",handshake:it,headset:lt,health:pt,heart:gt,"heart-add":"standard","heart-remove":"standard",home:ht,"home-chimney":"standard","home-gear":"standard","id-badge":"standard",inbox:ut,"inbox-checked":"standard","inbox-full":"standard",info:yt,"info-filled":"status",ios:ft,key:mt,laptop:bt,law:vt,leaf:wt,lightbulb:kt,linechart:xt,"linechart-trend":"standard",link:zt,list:$t,location:Nt,"location-base":"standard","location-prohibited":"standard",lock:jt,logout:Et,loop:Ct,mail:Ft,math:It,medal:St,megaphone:qt,"message-forward":"standard","message-reply":"standard","message-response":"standard",microscope:Bt,"mobile-button":"mobile","mobile-edit":"mobile","mobile-fast-dollar":"standard","mobile-heart":"mobile","mobile-location":"mobile","mobile-lock":"mobile","mobile-remove":"mobile","mobile-rotate":"mobile","mobile-search":"mobile","mobile-settings":"mobile","mobile-time":"mobile","money-time":"standard",mortgage:Vt,motorcycle:Dt,motorhome:Gt,mountains:At,movie:Lt,music:Ot,"nest-egg":"standard",newspaper:Rt,options:Wt,"os-android":"legacy","os-android-color":"legacy","os-android-filled":"legacy","os-apple":"legacy","os-apple-color":"legacy","os-apple-filled":"legacy","os-windows":"legacy","os-windows-color":"legacy","os-windows-filled":"legacy",palette:_t,"paper-plane":"standard",paperclip:Ht,pause:Jt,paw:Kt,people:Mt,"people-group":"standard",percent:Pt,person:Qt,"person-add":"standard","person-lock":"standard","person-remove":"standard","person-settings":"standard","person-to-person":"standard","personal-care":"standard",phone:Tt,piechart:Ut,"piechart-expanded":"standard","piggy-bank":"standard",play:Xt,pricetag:Yt,"pricetag-blank":"standard","pricetag-time":"standard",print:Zt,prohibited:ta,question:aa,receipt:ra,"receipt-list":"standard","receipt-list-top":"standard","receipt-top":"standard",refresh:sa,remove:ea,repeat:na,"repeat-time":"standard",revert:da,ribbon:oa,ring:ca,roadblock:ia,"rss-color":"legacy","rss-filled":"legacy",save:la,school:pa,search:ga,section:ha,service:ua,shield:ya,sign:fa,"sign-closed":"standard","sign-open":"standard","sign-sale":"standard","sign-sold":"standard",silverware:ma,skip:ba,"sms-color":"legacy","sms-filled":"legacy",sort:va,speedometer:wa,split:ka,star:xa,"star-add":"standard","star-remove":"standard",statements:za,"steering-wheel":"standard","stop-payment":"standard",storefront:$a,"storefront-add":"standard","storefront-prohibited":"standard","storefront-remove":"standard","storefront-settings":"standard",success:Na,"success-filled":"status",tablet:ja,target:Ea,taxi:Ca,time:Fa,todo:Ia,tools:Sa,tractor:qa,transfer:Ba,"transfer-receive":"standard","transfer-send":"standard",trash:Va,tree:Da,"truck-with-lock":"standard",umbrella:Ga,unlink:Aa,upload:La,"venmo-colored":"legacy","venmo-filled":"legacy",virus:Oa,wallet:Ra,warning:Wa,"warning-filled":"status",watch:_a,world:Ha,"zoom-in":"standard","zoom-out":"standard"};const Ka="*{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:inline-block;height:var(--tct-icon-size, 24px);width:var(--tct-icon-size, 24px);position:relative;fill:none}:host([inline]){height:1em;width:1em}svg{display:block;position:absolute;top:0;left:0;stroke-width:var(--tct-icon-stroke-width, var(--t-icon-stroke-width, 1.5));stroke-linecap:var(--tct-icon-cap, var(--t-icon-cap, round));stroke-linejoin:var(--tct-icon-cap, var(--t-icon-cap, round));transition:var(--tct-icon-transition, none)}.stroke-primary{stroke:var(--tct-icon-stroke-primary, var(--t-icon-stroke-primary, var(--t-text, currentcolor)));transition:var(--tct-icon-stroke-primary-transition, none)}.stroke-secondary{stroke:var(--tct-icon-stroke-secondary, var(--t-icon-stroke-secondary, var(--t-text, currentcolor)));transition:var(--tct-icon-stroke-secondary-transition, none)}.fill-primary{fill:var(--tct-icon-stroke-primary, var(--t-icon-stroke-primary, var(--t-text, currentcolor)));transition:var(--tct-icon-stroke-primary-transition, none)}.fill-secondary{fill:var(--tct-icon-stroke-secondary, var(--t-icon-stroke-secondary, var(--t-text, currentcolor)));transition:var(--tct-icon-stroke-secondary-transition, none)}.filled{fill:var(--tct-icon-fill, var(--comp-icon-fill, var(--t-icon-fill, none)));transition:var(--tct-icon-fill-transition, none)}.uniform{fill:var(--tct-icon-stroke-primary, var(--t-icon-stroke-primary, currentcolor));transition:var(--tct-icon-stroke-primary-transition, none)}:host([type=info]),:host([type=info-filled]){--tct-icon-stroke-primary:transparent;--comp-status-color:var(--tct-stoplight-info, var(--const-stoplight-info, #0079c1))}:host([type=success]),:host([type=success-filled]){--tct-icon-stroke-primary:transparent;--comp-status-color:var(--tct-stoplight-success, var(--const-stoplight-success, #0e8a00))}:host([type=warning]),:host([type=warning-filled]){--tct-icon-stroke-primary:transparent;--comp-status-color:var(--tct-stoplight-warning, var(--const-stoplight-warning, #c35500))}:host([type=error]),:host([type=error-filled]){--tct-icon-stroke-primary:transparent;--comp-status-color:var(--tct-stoplight-alert, var(--const-stoplight-alert, #d20a0a))}";const Ma=Ka;const Pa=class{constructor(a){t(this,a);this.inline=undefined;this.label=undefined;this.type=undefined;this.iconClone=undefined}componentWillLoad(){this.handleIcon()}componentDidRender(){var t,a,r;if(!this.iconClone)return;(a=(t=this.spriteGroup)===null||t===void 0?void 0:t.firstElementChild)===null||a===void 0?void 0:a.remove();(r=this.spriteGroup)===null||r===void 0?void 0:r.appendChild(this.iconClone)}handleIcon(){var t,a;if(this.isCustom){this.setCustomSVGAttrs()}else if(this.type){this.fetchSprite()}else{this.iconClone=null;(a=(t=this.spriteGroup)===null||t===void 0?void 0:t.firstElementChild)===null||a===void 0?void 0:a.remove()}}get isCustom(){return this.type==="custom"}get spriteFileName(){if(this.isCustom)return;return Ja[this.type]}get spriteId(){const{spriteFileName:t}=this;if(!t)return;return`tecton-sprite-${t}`}get spriteElement(){const{spriteId:t}=this;if(!t)return;return document.querySelector(`#${t}`)}get spriteEventName(){const{spriteFileName:t}=this;if(!t)return;return`tct-loaded-${t}`}get iconCloneViewBox(){var t,a;return(a=(t=this.iconClone)===null||t===void 0?void 0:t.getAttribute("viewBox"))!==null&&a!==void 0?a:"0 0 24 24"}getOrCreateSpriteContainer(){const t="tecton-sprites";let a=document.querySelector(`#${t}`);if(a)return a;a=document.createElement("div");a.id=t;a.style.display="none";document.body.appendChild(a);return a}checkForSprite(){var t;const{spriteId:a,spriteEventName:r}=this;const s=this.getOrCreateSpriteContainer();let e=document.querySelector(`#${a}`);if((t=e===null||e===void 0?void 0:e.hasAttribute("data-loaded"))!==null&&t!==void 0?t:false){this.cloneSpriteNode();return true}s.addEventListener(r,(()=>{this.cloneSpriteNode()}),{once:true});if(e)return true;e=document.createElement("div");e.id=a;s.appendChild(e);return false}async fetchSprite(){const{spriteFileName:t,spriteId:r,spriteEventName:s}=this;const e=this.checkForSprite();if(e)return;if(!t)return;const n=a(`assets/${t}.symbol.svg`);const d=await fetch(n);const o=await d.text();const c=document.createElement("div");c.innerHTML=o;const i=c.querySelector("svg");i.id=r;i.setAttribute("data-loaded","");let{spriteElement:l}=this;if((l===null||l===void 0?void 0:l.tagName)==="SVG")return;if(typeof l.replaceWith==="function"){l.replaceWith(i)}else{l.parentNode.replaceChild(i,l)}l=document.querySelector(`#${r}`);l.dispatchEvent(new CustomEvent(s,{bubbles:true}))}cloneSpriteNode(){const t=this.getOrCreateSpriteContainer();const a=t.querySelector(`#tct-${this.type}`);this.iconClone=a?a.cloneNode(true):undefined}setCustomSVGAttrs(){const t=this.hostElement.querySelector("svg");if(!t)return;t.setAttribute("role","img");t.setAttribute("xmlns","http://www.w3.org/2000/svg");const{label:a}=this;if(a){const r=document.createElement("title");const s=`label-${n()}`;r.id=s;r.textContent=a;t.appendChild(r);t.setAttribute("aria-labelledby",s)}else{t.setAttribute("aria-hidden","true")}}render(){const{label:t,type:a}=this;return this.isCustom?r("slot",null):r("svg",{"aria-hidden":t?undefined:"true",role:"img","aria-labelledby":t?"label":undefined,viewBox:this.iconCloneViewBox,xmlns:"http://www.w3.org/2000/svg"},t&&r("title",{id:"label"},t),r(s,null,!!a&&r("use",{href:`#tct-${a}`}),r("g",{ref:t=>this.spriteGroup=t})))}static get assetsDirs(){return["assets"]}get hostElement(){return e(this)}static get watchers(){return{type:["handleIcon"]}}};Pa.style=Ma;export{Pa as q2_icon};
2
- //# sourceMappingURL=p-c4c458b7.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["q2IconCss","Q2IconStyle0","Q2Icon","componentWillLoad","this","handleIcon","componentDidRender","iconClone","_b","_a","spriteGroup","firstElementChild","remove","_c","appendChild","isCustom","setCustomSVGAttrs","type","fetchSprite","spriteFileName","iconMap","spriteId","spriteElement","document","querySelector","spriteEventName","iconCloneViewBox","getAttribute","getOrCreateSpriteContainer","spriteContainerId","spriteContainer","createElement","id","style","display","body","checkForSprite","hasAttribute","cloneSpriteNode","addEventListener","once","spriteExists","spritePath","getAssetPath","response","fetch","data","text","wrappingDiv","innerHTML","svg","setAttribute","tagName","replaceWith","parentNode","replaceChild","dispatchEvent","CustomEvent","bubbles","spriteNode","cloneNode","undefined","innerSVG","hostElement","label","title","labelId","createGuid","textContent","render","h","role","viewBox","xmlns","Fragment","href","ref","el"],"sources":["src/components/q2-icon/q2-icon.scss?tag=q2-icon&encapsulation=shadow","src/components/q2-icon/q2-icon.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n display: inline-block;\n height: var(--tct-icon-size, 24px);\n width: var(--tct-icon-size, 24px);\n position: relative;\n fill: none;\n}\n\n:host([inline]) {\n height: 1em;\n width: 1em;\n}\n\nsvg {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n stroke-width: var-list(--tct-icon-stroke-width, --t-icon-stroke-width, 1.5);\n stroke-linecap: var-list(--tct-icon-cap, --t-icon-cap, round);\n stroke-linejoin: var-list(--tct-icon-cap, --t-icon-cap, round);\n transition: var(--tct-icon-transition, none);\n}\n\n.stroke-primary {\n stroke: var-list(--tct-icon-stroke-primary, --t-icon-stroke-primary, --t-text, currentcolor);\n transition: var(--tct-icon-stroke-primary-transition, none);\n}\n\n.stroke-secondary {\n stroke: var-list(--tct-icon-stroke-secondary, --t-icon-stroke-secondary, --t-text, currentcolor);\n transition: var(--tct-icon-stroke-secondary-transition, none);\n}\n\n.fill-primary {\n fill: var-list(--tct-icon-stroke-primary, --t-icon-stroke-primary, --t-text, currentcolor);\n transition: var(--tct-icon-stroke-primary-transition, none);\n}\n\n.fill-secondary {\n fill: var-list(--tct-icon-stroke-secondary, --t-icon-stroke-secondary, --t-text, currentcolor);\n transition: var(--tct-icon-stroke-secondary-transition, none);\n}\n\n.filled {\n fill: var-list(--tct-icon-fill, --comp-icon-fill, --t-icon-fill, none);\n transition: var(--tct-icon-fill-transition, none);\n}\n\n.uniform {\n fill: var-list(--tct-icon-stroke-primary, --t-icon-stroke-primary, currentcolor);\n transition: var(--tct-icon-stroke-primary-transition, none);\n}\n\n:host([type='info']),\n:host([type='info-filled']) {\n --tct-icon-stroke-primary: transparent;\n --comp-status-color: #{var-list(--tct-stoplight-info, --const-stoplight-info, #0079c1)};\n}\n\n:host([type='success']),\n:host([type='success-filled']) {\n --tct-icon-stroke-primary: transparent;\n --comp-status-color: #{var-list(--tct-stoplight-success, --const-stoplight-success, #0e8a00)};\n}\n\n:host([type='warning']),\n:host([type='warning-filled']) {\n --tct-icon-stroke-primary: transparent;\n --comp-status-color: #{var-list(--tct-stoplight-warning, --const-stoplight-warning, #c35500)};\n}\n\n:host([type='error']),\n:host([type='error-filled']) {\n --tct-icon-stroke-primary: transparent;\n --comp-status-color: #{var-list(--tct-stoplight-alert, --const-stoplight-alert, #d20a0a)};\n}\n","import { Component, ComponentInterface, Prop, h, Element, Watch, getAssetPath, State, Fragment } from '@stencil/core';\nimport { createGuid } from 'src/utils';\nimport iconMap from './assets/icon-map.json';\n\n@Component({ tag: 'q2-icon', shadow: true, styleUrl: 'q2-icon.scss', assetsDirs: ['assets'] })\nexport class Q2Icon implements ComponentInterface {\n /** Styles the component to have a `height` and `width` of `1em`, making it easy to place alongside text. */\n @Prop({ reflect: true }) inline: boolean;\n\n /** The text that is presented by screen-readers when they encounter the icon. */\n @Prop({ reflect: true }) label: string;\n\n /** The name of the icon to be displayed. */\n @Prop({ reflect: true }) type: string;\n\n @Element() hostElement: HTMLElement;\n\n @State() iconClone: SVGSymbolElement;\n\n spriteGroup: SVGElement;\n\n componentWillLoad() {\n this.handleIcon();\n }\n\n componentDidRender(): void {\n if (!this.iconClone) return;\n this.spriteGroup?.firstElementChild?.remove();\n this.spriteGroup?.appendChild(this.iconClone);\n }\n\n @Watch('type')\n handleIcon() {\n if (this.isCustom) {\n this.setCustomSVGAttrs();\n } else if (this.type) {\n this.fetchSprite();\n } else {\n this.iconClone = null;\n this.spriteGroup?.firstElementChild?.remove();\n }\n }\n\n get isCustom() {\n return this.type === 'custom';\n }\n\n get spriteFileName() {\n if (this.isCustom) return;\n return iconMap[this.type];\n }\n\n get spriteId() {\n const { spriteFileName } = this;\n if (!spriteFileName) return;\n return `tecton-sprite-${spriteFileName}`;\n }\n\n get spriteElement() {\n const { spriteId } = this;\n if (!spriteId) return;\n return document.querySelector<HTMLElement>(`#${spriteId}`);\n }\n\n get spriteEventName() {\n const { spriteFileName } = this;\n if (!spriteFileName) return;\n return `tct-loaded-${spriteFileName}`;\n }\n\n get iconCloneViewBox() {\n return this.iconClone?.getAttribute('viewBox') ?? '0 0 24 24';\n }\n\n /**\n * Checks for the sprite container element in the global DOM\n * If it does not exist, it creates and appends it to the body\n */\n getOrCreateSpriteContainer() {\n const spriteContainerId = 'tecton-sprites';\n let spriteContainer: HTMLDivElement = document.querySelector(`#${spriteContainerId}`);\n\n if (spriteContainer) return spriteContainer;\n spriteContainer = document.createElement('div');\n spriteContainer.id = spriteContainerId;\n spriteContainer.style.display = 'none';\n document.body.appendChild(spriteContainer);\n return spriteContainer;\n }\n\n checkForSprite() {\n const { spriteId, spriteEventName } = this;\n const spriteContainer = this.getOrCreateSpriteContainer();\n let spriteElement: HTMLElement = document.querySelector(`#${spriteId}`);\n\n // If the sprite element exists and has the `data-loaded` attribute, we know we have everything we need\n if (spriteElement?.hasAttribute('data-loaded') ?? false) {\n this.cloneSpriteNode();\n return true;\n }\n\n // If the sprite element exists but does not have the `data-loaded` attribute, we know it's being loaded\n // We'll listen for the event that will be dispatched when the sprite is loaded\n spriteContainer.addEventListener(\n spriteEventName,\n () => {\n this.cloneSpriteNode();\n },\n { once: true }\n );\n\n // If the sprite element exists, we know it's being loaded and will be handled by the event listener\n if (spriteElement) return true;\n\n // If sprite element does not exist, create a placeholder\n // This will let other icons know the sprite is being loaded\n spriteElement = document.createElement('div');\n spriteElement.id = spriteId;\n spriteContainer.appendChild(spriteElement);\n return false;\n }\n\n async fetchSprite() {\n const { spriteFileName, spriteId, spriteEventName } = this;\n\n const spriteExists = this.checkForSprite();\n if (spriteExists) return;\n\n if (!spriteFileName) return;\n const spritePath = getAssetPath(`assets/${spriteFileName}.symbol.svg`);\n const response = await fetch(spritePath);\n const data = await response.text();\n const wrappingDiv = document.createElement('div');\n wrappingDiv.innerHTML = data;\n const svg = wrappingDiv.querySelector('svg');\n\n svg.id = spriteId;\n svg.setAttribute('data-loaded', '');\n\n let { spriteElement } = this;\n if (spriteElement?.tagName === 'SVG') return;\n\n if (typeof spriteElement.replaceWith === 'function') {\n spriteElement.replaceWith(svg);\n } else {\n spriteElement.parentNode.replaceChild(svg, spriteElement);\n }\n\n spriteElement = document.querySelector(`#${spriteId}`);\n spriteElement.dispatchEvent(new CustomEvent(spriteEventName, { bubbles: true }));\n }\n\n cloneSpriteNode() {\n const spriteContainer = this.getOrCreateSpriteContainer();\n const spriteNode = spriteContainer.querySelector<HTMLElement>(`#tct-${this.type}`);\n this.iconClone = spriteNode ? (spriteNode.cloneNode(true) as SVGSymbolElement) : undefined;\n }\n\n setCustomSVGAttrs() {\n const innerSVG = this.hostElement.querySelector('svg');\n\n if (!innerSVG) return;\n\n innerSVG.setAttribute('role', 'img');\n innerSVG.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n\n const { label } = this;\n if (label) {\n const title = document.createElement('title');\n const labelId = `label-${createGuid()}`;\n title.id = labelId;\n title.textContent = label;\n innerSVG.appendChild(title);\n innerSVG.setAttribute('aria-labelledby', labelId);\n } else {\n innerSVG.setAttribute('aria-hidden', 'true');\n }\n }\n\n render() {\n const { label, type } = this;\n return this.isCustom ? (\n <slot />\n ) : (\n <svg\n aria-hidden={label ? undefined : 'true'}\n role=\"img\"\n aria-labelledby={label ? 'label' : undefined}\n viewBox={this.iconCloneViewBox}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n {label && <title id=\"label\">{label}</title>}\n <Fragment>\n {!!type && <use href={`#tct-${type}`} />}\n <g ref={el => (this.spriteGroup = el)}></g>\n </Fragment>\n </svg>\n );\n }\n}\n"],"mappings":"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"}