q2-tecton-elements 1.38.2 → 1.39.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (399) hide show
  1. package/dist/cjs/click-elsewhere_2.cjs.entry.js +1 -1
  2. package/dist/cjs/click-elsewhere_2.cjs.entry.js.map +1 -1
  3. package/dist/cjs/{index-09c712ea.js → index-9113a9da.js} +2 -2
  4. package/dist/cjs/{index-09c712ea.js.map → index-9113a9da.js.map} +1 -1
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/q2-action-sheet.cjs.entry.js +1 -1
  7. package/dist/cjs/q2-action-sheet.cjs.entry.js.map +1 -1
  8. package/dist/cjs/q2-btn_2.cjs.entry.js +2 -2
  9. package/dist/cjs/q2-btn_2.cjs.entry.js.map +1 -1
  10. package/dist/cjs/q2-calendar.cjs.entry.js +11 -2
  11. package/dist/cjs/q2-calendar.cjs.entry.js.map +1 -1
  12. package/dist/cjs/q2-card.cjs.entry.js +20 -23
  13. package/dist/cjs/q2-card.cjs.entry.js.map +1 -1
  14. package/dist/cjs/q2-carousel-pane.cjs.entry.js +1 -1
  15. package/dist/cjs/q2-carousel-pane.cjs.entry.js.map +1 -1
  16. package/dist/cjs/q2-carousel.cjs.entry.js +30 -4
  17. package/dist/cjs/q2-carousel.cjs.entry.js.map +1 -1
  18. package/dist/cjs/q2-chart-area.cjs.entry.js +1 -1
  19. package/dist/cjs/q2-chart-area.cjs.entry.js.map +1 -1
  20. package/dist/cjs/q2-chart-bar.cjs.entry.js +1 -1
  21. package/dist/cjs/q2-chart-donut.cjs.entry.js +14 -14
  22. package/dist/cjs/q2-chart-donut.cjs.entry.js.map +1 -1
  23. package/dist/cjs/q2-checkbox-group.cjs.entry.js +1 -1
  24. package/dist/cjs/q2-checkbox-group.cjs.entry.js.map +1 -1
  25. package/dist/cjs/q2-checkbox.cjs.entry.js +1 -1
  26. package/dist/cjs/q2-checkbox.cjs.entry.js.map +1 -1
  27. package/dist/cjs/q2-data-table.cjs.entry.js +43 -21
  28. package/dist/cjs/q2-data-table.cjs.entry.js.map +1 -1
  29. package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
  30. package/dist/cjs/q2-dropdown.cjs.entry.js +1 -1
  31. package/dist/cjs/q2-editable-field.cjs.entry.js +1 -1
  32. package/dist/cjs/q2-editable-field.cjs.entry.js.map +1 -1
  33. package/dist/cjs/q2-icon.cjs.entry.js +1 -1
  34. package/dist/cjs/q2-input.cjs.entry.js +6 -3
  35. package/dist/cjs/q2-input.cjs.entry.js.map +1 -1
  36. package/dist/cjs/q2-loc.cjs.entry.js +1 -1
  37. package/dist/cjs/q2-message.cjs.entry.js +1 -1
  38. package/dist/cjs/q2-month-picker.cjs.entry.js +1 -1
  39. package/dist/cjs/q2-optgroup_2.cjs.entry.js +1 -1
  40. package/dist/cjs/q2-optgroup_2.cjs.entry.js.map +1 -1
  41. package/dist/cjs/q2-option-list.cjs.entry.js +1 -1
  42. package/dist/cjs/q2-option-list.cjs.entry.js.map +1 -1
  43. package/dist/cjs/q2-pagination.cjs.entry.js +1 -1
  44. package/dist/cjs/q2-pagination.cjs.entry.js.map +1 -1
  45. package/dist/cjs/q2-pill.cjs.entry.js +1 -1
  46. package/dist/cjs/q2-pill.cjs.entry.js.map +1 -1
  47. package/dist/cjs/q2-radio-group.cjs.entry.js +1 -1
  48. package/dist/cjs/q2-radio-group.cjs.entry.js.map +1 -1
  49. package/dist/cjs/q2-radio.cjs.entry.js +1 -1
  50. package/dist/cjs/q2-radio.cjs.entry.js.map +1 -1
  51. package/dist/cjs/q2-section.cjs.entry.js +2 -2
  52. package/dist/cjs/q2-section.cjs.entry.js.map +1 -1
  53. package/dist/cjs/q2-select.cjs.entry.js +1 -1
  54. package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
  55. package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
  56. package/dist/cjs/q2-stepper-pane.cjs.entry.js.map +1 -1
  57. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +4 -4
  58. package/dist/cjs/q2-stepper-vertical.cjs.entry.js.map +1 -1
  59. package/dist/cjs/q2-stepper.cjs.entry.js +1 -1
  60. package/dist/cjs/q2-stepper.cjs.entry.js.map +1 -1
  61. package/dist/cjs/q2-tab-container.cjs.entry.js +1 -1
  62. package/dist/cjs/q2-tab-container.cjs.entry.js.map +1 -1
  63. package/dist/cjs/q2-tab-pane.cjs.entry.js.map +1 -1
  64. package/dist/cjs/q2-tag.cjs.entry.js +1 -1
  65. package/dist/cjs/q2-tag.cjs.entry.js.map +1 -1
  66. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  67. package/dist/cjs/q2-textarea.cjs.entry.js +1 -1
  68. package/dist/cjs/q2-textarea.cjs.entry.js.map +1 -1
  69. package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
  70. package/dist/cjs/tecton-tab-pane.cjs.entry.js.map +1 -1
  71. package/dist/collection/components/click-elsewhere/index.js +1 -1
  72. package/dist/collection/components/click-elsewhere/index.js.map +1 -1
  73. package/dist/collection/components/q2-action-sheet/index.js +6 -3
  74. package/dist/collection/components/q2-action-sheet/index.js.map +1 -1
  75. package/dist/collection/components/q2-btn/styles.css +11 -11
  76. package/dist/collection/components/q2-calendar/index.js +23 -11
  77. package/dist/collection/components/q2-calendar/index.js.map +1 -1
  78. package/dist/collection/components/q2-card/index.js +21 -27
  79. package/dist/collection/components/q2-card/index.js.map +1 -1
  80. package/dist/collection/components/q2-card/styles.css +57 -0
  81. package/dist/collection/components/q2-carousel/index.js +33 -5
  82. package/dist/collection/components/q2-carousel/index.js.map +1 -1
  83. package/dist/collection/components/q2-carousel-pane/index.js +8 -4
  84. package/dist/collection/components/q2-carousel-pane/index.js.map +1 -1
  85. package/dist/collection/components/q2-chart-area/index.js +9 -4
  86. package/dist/collection/components/q2-chart-area/index.js.map +1 -1
  87. package/dist/collection/components/q2-chart-donut/index.js +58 -22
  88. package/dist/collection/components/q2-chart-donut/index.js.map +1 -1
  89. package/dist/collection/components/q2-checkbox/index.js +5 -2
  90. package/dist/collection/components/q2-checkbox/index.js.map +1 -1
  91. package/dist/collection/components/q2-checkbox-group/index.js +12 -5
  92. package/dist/collection/components/q2-checkbox-group/index.js.map +1 -1
  93. package/dist/collection/components/q2-data-table/index.js +73 -29
  94. package/dist/collection/components/q2-data-table/index.js.map +1 -1
  95. package/dist/collection/components/q2-editable-field/index.js +6 -6
  96. package/dist/collection/components/q2-editable-field/index.js.map +1 -1
  97. package/dist/collection/components/q2-input/formatting/phone.js +1 -1
  98. package/dist/collection/components/q2-input/formatting/phone.js.map +1 -1
  99. package/dist/collection/components/q2-input/index.js +23 -19
  100. package/dist/collection/components/q2-input/index.js.map +1 -1
  101. package/dist/collection/components/q2-input/types.js.map +1 -1
  102. package/dist/collection/components/q2-option/index.js +5 -2
  103. package/dist/collection/components/q2-option/index.js.map +1 -1
  104. package/dist/collection/components/q2-option-list/index.js +15 -9
  105. package/dist/collection/components/q2-option-list/index.js.map +1 -1
  106. package/dist/collection/components/q2-pagination/index.js +8 -5
  107. package/dist/collection/components/q2-pagination/index.js.map +1 -1
  108. package/dist/collection/components/q2-pill/index.js +5 -2
  109. package/dist/collection/components/q2-pill/index.js.map +1 -1
  110. package/dist/collection/components/q2-popover/index.js +1 -1
  111. package/dist/collection/components/q2-popover/index.js.map +1 -1
  112. package/dist/collection/components/q2-radio/index.js +3 -3
  113. package/dist/collection/components/q2-radio/index.js.map +1 -1
  114. package/dist/collection/components/q2-radio-group/index.js +7 -4
  115. package/dist/collection/components/q2-radio-group/index.js.map +1 -1
  116. package/dist/collection/components/q2-section/index.js +7 -4
  117. package/dist/collection/components/q2-section/index.js.map +1 -1
  118. package/dist/collection/components/q2-section/styles.css +8 -6
  119. package/dist/collection/components/q2-select/index.js +8 -5
  120. package/dist/collection/components/q2-select/index.js.map +1 -1
  121. package/dist/collection/components/q2-stepper/index.js +5 -2
  122. package/dist/collection/components/q2-stepper/index.js.map +1 -1
  123. package/dist/collection/components/q2-stepper-pane/index.js +11 -8
  124. package/dist/collection/components/q2-stepper-pane/index.js.map +1 -1
  125. package/dist/collection/components/q2-stepper-vertical/index.js +13 -6
  126. package/dist/collection/components/q2-stepper-vertical/index.js.map +1 -1
  127. package/dist/collection/components/q2-tab-container/index.js +14 -8
  128. package/dist/collection/components/q2-tab-container/index.js.map +1 -1
  129. package/dist/collection/components/q2-tab-pane/index.js +5 -2
  130. package/dist/collection/components/q2-tab-pane/index.js.map +1 -1
  131. package/dist/collection/components/q2-tag/index.js +1 -1
  132. package/dist/collection/components/q2-tag/index.js.map +1 -1
  133. package/dist/collection/components/q2-textarea/index.js +14 -8
  134. package/dist/collection/components/q2-textarea/index.js.map +1 -1
  135. package/dist/collection/components/tecton-tab-pane/index.js +5 -2
  136. package/dist/collection/components/tecton-tab-pane/index.js.map +1 -1
  137. package/dist/collection/utils/index.js +1 -1
  138. package/dist/collection/utils/index.js.map +1 -1
  139. package/dist/components/index13.js.map +1 -1
  140. package/dist/components/index14.js.map +1 -1
  141. package/dist/components/index15.js.map +1 -1
  142. package/dist/components/index16.js +1 -1
  143. package/dist/components/index16.js.map +1 -1
  144. package/dist/components/index2.js.map +1 -1
  145. package/dist/components/index5.js +1 -1
  146. package/dist/components/index5.js.map +1 -1
  147. package/dist/components/index6.js.map +1 -1
  148. package/dist/components/index9.js +5 -2
  149. package/dist/components/index9.js.map +1 -1
  150. package/dist/components/q2-action-sheet.js.map +1 -1
  151. package/dist/components/q2-calendar.js +10 -1
  152. package/dist/components/q2-calendar.js.map +1 -1
  153. package/dist/components/q2-card.js +19 -22
  154. package/dist/components/q2-card.js.map +1 -1
  155. package/dist/components/q2-carousel-pane.js.map +1 -1
  156. package/dist/components/q2-carousel.js +32 -4
  157. package/dist/components/q2-carousel.js.map +1 -1
  158. package/dist/components/q2-chart-area.js.map +1 -1
  159. package/dist/components/q2-chart-donut.js +16 -15
  160. package/dist/components/q2-chart-donut.js.map +1 -1
  161. package/dist/components/q2-checkbox-group.js.map +1 -1
  162. package/dist/components/q2-data-table.js +43 -21
  163. package/dist/components/q2-data-table.js.map +1 -1
  164. package/dist/components/q2-editable-field.js.map +1 -1
  165. package/dist/components/q2-pagination.js.map +1 -1
  166. package/dist/components/q2-pill.js.map +1 -1
  167. package/dist/components/q2-radio-group.js.map +1 -1
  168. package/dist/components/q2-radio.js.map +1 -1
  169. package/dist/components/q2-section.js +1 -1
  170. package/dist/components/q2-section.js.map +1 -1
  171. package/dist/components/q2-select.js.map +1 -1
  172. package/dist/components/q2-stepper-pane.js.map +1 -1
  173. package/dist/components/q2-stepper-vertical.js +3 -3
  174. package/dist/components/q2-stepper-vertical.js.map +1 -1
  175. package/dist/components/q2-stepper.js.map +1 -1
  176. package/dist/components/q2-tab-container.js.map +1 -1
  177. package/dist/components/q2-tab-pane.js.map +1 -1
  178. package/dist/components/q2-tag.js.map +1 -1
  179. package/dist/components/q2-textarea.js.map +1 -1
  180. package/dist/components/tecton-tab-pane.js.map +1 -1
  181. package/dist/esm/click-elsewhere_2.entry.js +1 -1
  182. package/dist/esm/click-elsewhere_2.entry.js.map +1 -1
  183. package/dist/esm/{index-84f1034e.js → index-fbe28822.js} +2 -2
  184. package/dist/esm/{index-84f1034e.js.map → index-fbe28822.js.map} +1 -1
  185. package/dist/esm/loader.js +1 -1
  186. package/dist/esm/q2-action-sheet.entry.js +1 -1
  187. package/dist/esm/q2-action-sheet.entry.js.map +1 -1
  188. package/dist/esm/q2-btn_2.entry.js +2 -2
  189. package/dist/esm/q2-btn_2.entry.js.map +1 -1
  190. package/dist/esm/q2-calendar.entry.js +11 -2
  191. package/dist/esm/q2-calendar.entry.js.map +1 -1
  192. package/dist/esm/q2-card.entry.js +20 -23
  193. package/dist/esm/q2-card.entry.js.map +1 -1
  194. package/dist/esm/q2-carousel-pane.entry.js +1 -1
  195. package/dist/esm/q2-carousel-pane.entry.js.map +1 -1
  196. package/dist/esm/q2-carousel.entry.js +30 -4
  197. package/dist/esm/q2-carousel.entry.js.map +1 -1
  198. package/dist/esm/q2-chart-area.entry.js +1 -1
  199. package/dist/esm/q2-chart-area.entry.js.map +1 -1
  200. package/dist/esm/q2-chart-bar.entry.js +1 -1
  201. package/dist/esm/q2-chart-donut.entry.js +14 -14
  202. package/dist/esm/q2-chart-donut.entry.js.map +1 -1
  203. package/dist/esm/q2-checkbox-group.entry.js +1 -1
  204. package/dist/esm/q2-checkbox-group.entry.js.map +1 -1
  205. package/dist/esm/q2-checkbox.entry.js +1 -1
  206. package/dist/esm/q2-checkbox.entry.js.map +1 -1
  207. package/dist/esm/q2-data-table.entry.js +43 -21
  208. package/dist/esm/q2-data-table.entry.js.map +1 -1
  209. package/dist/esm/q2-dropdown-item.entry.js +1 -1
  210. package/dist/esm/q2-dropdown.entry.js +1 -1
  211. package/dist/esm/q2-editable-field.entry.js +1 -1
  212. package/dist/esm/q2-editable-field.entry.js.map +1 -1
  213. package/dist/esm/q2-icon.entry.js +1 -1
  214. package/dist/esm/q2-input.entry.js +6 -3
  215. package/dist/esm/q2-input.entry.js.map +1 -1
  216. package/dist/esm/q2-loc.entry.js +1 -1
  217. package/dist/esm/q2-message.entry.js +1 -1
  218. package/dist/esm/q2-month-picker.entry.js +1 -1
  219. package/dist/esm/q2-optgroup_2.entry.js +1 -1
  220. package/dist/esm/q2-optgroup_2.entry.js.map +1 -1
  221. package/dist/esm/q2-option-list.entry.js +1 -1
  222. package/dist/esm/q2-option-list.entry.js.map +1 -1
  223. package/dist/esm/q2-pagination.entry.js +1 -1
  224. package/dist/esm/q2-pagination.entry.js.map +1 -1
  225. package/dist/esm/q2-pill.entry.js +1 -1
  226. package/dist/esm/q2-pill.entry.js.map +1 -1
  227. package/dist/esm/q2-radio-group.entry.js +1 -1
  228. package/dist/esm/q2-radio-group.entry.js.map +1 -1
  229. package/dist/esm/q2-radio.entry.js +1 -1
  230. package/dist/esm/q2-radio.entry.js.map +1 -1
  231. package/dist/esm/q2-section.entry.js +2 -2
  232. package/dist/esm/q2-section.entry.js.map +1 -1
  233. package/dist/esm/q2-select.entry.js +1 -1
  234. package/dist/esm/q2-select.entry.js.map +1 -1
  235. package/dist/esm/q2-stepper-pane.entry.js +1 -1
  236. package/dist/esm/q2-stepper-pane.entry.js.map +1 -1
  237. package/dist/esm/q2-stepper-vertical.entry.js +4 -4
  238. package/dist/esm/q2-stepper-vertical.entry.js.map +1 -1
  239. package/dist/esm/q2-stepper.entry.js +1 -1
  240. package/dist/esm/q2-stepper.entry.js.map +1 -1
  241. package/dist/esm/q2-tab-container.entry.js +1 -1
  242. package/dist/esm/q2-tab-container.entry.js.map +1 -1
  243. package/dist/esm/q2-tab-pane.entry.js.map +1 -1
  244. package/dist/esm/q2-tag.entry.js +1 -1
  245. package/dist/esm/q2-tag.entry.js.map +1 -1
  246. package/dist/esm/q2-tecton-elements.js +1 -1
  247. package/dist/esm/q2-textarea.entry.js +1 -1
  248. package/dist/esm/q2-textarea.entry.js.map +1 -1
  249. package/dist/esm/q2-tooltip.entry.js +1 -1
  250. package/dist/esm/tecton-tab-pane.entry.js.map +1 -1
  251. package/dist/q2-tecton-elements/p-0253a00b.entry.js +2 -0
  252. package/dist/q2-tecton-elements/p-0253a00b.entry.js.map +1 -0
  253. package/dist/q2-tecton-elements/{p-72b4ecc6.entry.js → p-07229496.entry.js} +2 -2
  254. package/dist/q2-tecton-elements/p-07229496.entry.js.map +1 -0
  255. package/dist/q2-tecton-elements/{p-a6b03db1.entry.js → p-0ecff52c.entry.js} +2 -2
  256. package/dist/q2-tecton-elements/{p-a6b03db1.entry.js.map → p-0ecff52c.entry.js.map} +1 -1
  257. package/dist/q2-tecton-elements/{p-f198f77b.entry.js → p-1179b32c.entry.js} +2 -2
  258. package/dist/q2-tecton-elements/p-1179b32c.entry.js.map +1 -0
  259. package/dist/q2-tecton-elements/{p-311f37e2.entry.js → p-15c69543.entry.js} +2 -2
  260. package/dist/q2-tecton-elements/{p-9220365b.entry.js → p-212c6301.entry.js} +2 -2
  261. package/dist/q2-tecton-elements/p-212c6301.entry.js.map +1 -0
  262. package/dist/q2-tecton-elements/p-3090b655.entry.js +2 -0
  263. package/dist/q2-tecton-elements/p-3090b655.entry.js.map +1 -0
  264. package/dist/q2-tecton-elements/{p-8f8d5362.entry.js → p-3569e648.entry.js} +2 -2
  265. package/dist/q2-tecton-elements/p-3569e648.entry.js.map +1 -0
  266. package/dist/q2-tecton-elements/{p-0cade28b.entry.js → p-36bff57a.entry.js} +2 -2
  267. package/dist/q2-tecton-elements/{p-57e81863.entry.js → p-39e94e12.entry.js} +2 -2
  268. package/dist/q2-tecton-elements/{p-57e81863.entry.js.map → p-39e94e12.entry.js.map} +1 -1
  269. package/dist/q2-tecton-elements/p-3f20d610.entry.js +2 -0
  270. package/dist/q2-tecton-elements/p-3f20d610.entry.js.map +1 -0
  271. package/dist/q2-tecton-elements/{p-29a7ca63.entry.js → p-44c2d7a2.entry.js} +2 -2
  272. package/dist/q2-tecton-elements/{p-29a7ca63.entry.js.map → p-44c2d7a2.entry.js.map} +1 -1
  273. package/dist/q2-tecton-elements/{p-deb773a5.entry.js → p-461dca3d.entry.js} +2 -2
  274. package/dist/q2-tecton-elements/{p-deb773a5.entry.js.map → p-461dca3d.entry.js.map} +1 -1
  275. package/dist/q2-tecton-elements/{p-3d82d94f.entry.js → p-5964fd50.entry.js} +2 -2
  276. package/dist/q2-tecton-elements/{p-3d82d94f.entry.js.map → p-5964fd50.entry.js.map} +1 -1
  277. package/dist/q2-tecton-elements/{p-e98d9cf2.entry.js → p-5b4c30b8.entry.js} +2 -2
  278. package/dist/q2-tecton-elements/p-5b4c30b8.entry.js.map +1 -0
  279. package/dist/q2-tecton-elements/{p-69dcf12e.entry.js → p-5d6c2534.entry.js} +2 -2
  280. package/dist/q2-tecton-elements/p-5d6c2534.entry.js.map +1 -0
  281. package/dist/q2-tecton-elements/{p-a09c90c1.entry.js → p-66bc9475.entry.js} +2 -2
  282. package/dist/q2-tecton-elements/{p-a09c90c1.entry.js.map → p-66bc9475.entry.js.map} +1 -1
  283. package/dist/q2-tecton-elements/{p-e4dadcd7.entry.js → p-6ba6d83e.entry.js} +2 -2
  284. package/dist/q2-tecton-elements/p-6ba6d83e.entry.js.map +1 -0
  285. package/dist/q2-tecton-elements/{p-5843f6c8.entry.js → p-78d5707b.entry.js} +2 -2
  286. package/dist/q2-tecton-elements/p-78d5707b.entry.js.map +1 -0
  287. package/dist/q2-tecton-elements/{p-85dc889e.entry.js → p-7e276297.entry.js} +2 -2
  288. package/dist/q2-tecton-elements/p-7e276297.entry.js.map +1 -0
  289. package/dist/q2-tecton-elements/{p-059ea7c9.entry.js → p-81e36fcd.entry.js} +2 -2
  290. package/dist/q2-tecton-elements/{p-8f273db2.entry.js → p-88b303a7.entry.js} +2 -2
  291. package/dist/q2-tecton-elements/{p-8f273db2.entry.js.map → p-88b303a7.entry.js.map} +1 -1
  292. package/dist/q2-tecton-elements/p-9889692d.entry.js +2 -0
  293. package/dist/q2-tecton-elements/p-9889692d.entry.js.map +1 -0
  294. package/dist/q2-tecton-elements/p-9da0db14.entry.js.map +1 -1
  295. package/dist/q2-tecton-elements/{p-c057134f.entry.js → p-9dff6592.entry.js} +2 -2
  296. package/dist/q2-tecton-elements/p-9dff6592.entry.js.map +1 -0
  297. package/dist/q2-tecton-elements/{p-145849d0.entry.js → p-a5a23edc.entry.js} +2 -2
  298. package/dist/q2-tecton-elements/p-a5a23edc.entry.js.map +1 -0
  299. package/dist/q2-tecton-elements/{p-db3bbfb8.entry.js → p-a9c40d3b.entry.js} +2 -2
  300. package/dist/q2-tecton-elements/p-a9c40d3b.entry.js.map +1 -0
  301. package/dist/q2-tecton-elements/{p-15179d55.entry.js → p-aa96f160.entry.js} +2 -2
  302. package/dist/q2-tecton-elements/{p-5c033ed9.entry.js → p-b3a32a46.entry.js} +2 -2
  303. package/dist/q2-tecton-elements/{p-5c033ed9.entry.js.map → p-b3a32a46.entry.js.map} +1 -1
  304. package/dist/q2-tecton-elements/{p-f3868a77.entry.js → p-b6ed1342.entry.js} +2 -2
  305. package/dist/q2-tecton-elements/{p-f3868a77.entry.js.map → p-b6ed1342.entry.js.map} +1 -1
  306. package/dist/q2-tecton-elements/{p-52132d80.entry.js → p-ba19d09f.entry.js} +2 -2
  307. package/dist/q2-tecton-elements/p-ba19d09f.entry.js.map +1 -0
  308. package/dist/q2-tecton-elements/{p-81b917a5.entry.js → p-cc7ba0cb.entry.js} +2 -2
  309. package/dist/q2-tecton-elements/{p-107f07f2.entry.js → p-ce009987.entry.js} +2 -2
  310. package/dist/q2-tecton-elements/p-d7fb3534.entry.js.map +1 -1
  311. package/dist/q2-tecton-elements/{p-959f47ef.entry.js → p-de7352f5.entry.js} +2 -2
  312. package/dist/q2-tecton-elements/{p-6ae87415.entry.js → p-ef2e2991.entry.js} +2 -2
  313. package/dist/q2-tecton-elements/{p-b83568e7.entry.js → p-f1479052.entry.js} +2 -2
  314. package/dist/q2-tecton-elements/p-f1479052.entry.js.map +1 -0
  315. package/dist/q2-tecton-elements/{p-f34521a4.js → p-fb903495.js} +2 -2
  316. package/dist/q2-tecton-elements/{p-f34521a4.js.map → p-fb903495.js.map} +1 -1
  317. package/dist/q2-tecton-elements/{p-2812f9d2.entry.js → p-ff137358.entry.js} +2 -2
  318. package/dist/q2-tecton-elements/p-ff137358.entry.js.map +1 -0
  319. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  320. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
  321. package/dist/test/elements/q2-btn-test.e2e.js +31 -0
  322. package/dist/test/elements/q2-btn-test.e2e.js.map +1 -1
  323. package/dist/test/elements/q2-card-test.e2e.js +69 -11
  324. package/dist/test/elements/q2-card-test.e2e.js.map +1 -1
  325. package/dist/test/elements/q2-carousel-test.e2e.js +41 -3
  326. package/dist/test/elements/q2-carousel-test.e2e.js.map +1 -1
  327. package/dist/test/elements/q2-chart-donut-test.e2e.js +64 -9
  328. package/dist/test/elements/q2-chart-donut-test.e2e.js.map +1 -1
  329. package/dist/test/elements/q2-data-table-test.e2e.js +91 -2
  330. package/dist/test/elements/q2-data-table-test.e2e.js.map +1 -1
  331. package/dist/test/elements/q2-input-test.e2e.js +151 -67
  332. package/dist/test/elements/q2-input-test.e2e.js.map +1 -1
  333. package/dist/test/helpers.js +48 -0
  334. package/dist/test/helpers.js.map +1 -1
  335. package/dist/types/components/click-elsewhere/index.d.ts +3 -0
  336. package/dist/types/components/q2-action-sheet/index.d.ts +7 -0
  337. package/dist/types/components/q2-calendar/index.d.ts +23 -3
  338. package/dist/types/components/q2-card/index.d.ts +14 -4
  339. package/dist/types/components/q2-carousel/index.d.ts +8 -0
  340. package/dist/types/components/q2-carousel-pane/index.d.ts +7 -1
  341. package/dist/types/components/q2-chart-area/index.d.ts +7 -1
  342. package/dist/types/components/q2-chart-donut/index.d.ts +18 -3
  343. package/dist/types/components/q2-checkbox/index.d.ts +4 -0
  344. package/dist/types/components/q2-checkbox-group/index.d.ts +8 -1
  345. package/dist/types/components/q2-data-table/index.d.ts +43 -3
  346. package/dist/types/components/q2-editable-field/index.d.ts +18 -2
  347. package/dist/types/components/q2-input/index.d.ts +19 -2
  348. package/dist/types/components/q2-input/types.d.ts +1 -0
  349. package/dist/types/components/q2-option/index.d.ts +4 -0
  350. package/dist/types/components/q2-option-list/index.d.ts +15 -1
  351. package/dist/types/components/q2-pagination/index.d.ts +8 -2
  352. package/dist/types/components/q2-pill/index.d.ts +4 -0
  353. package/dist/types/components/q2-popover/index.d.ts +3 -0
  354. package/dist/types/components/q2-radio/index.d.ts +6 -1
  355. package/dist/types/components/q2-radio-group/index.d.ts +7 -1
  356. package/dist/types/components/q2-section/index.d.ts +7 -1
  357. package/dist/types/components/q2-select/index.d.ts +16 -1
  358. package/dist/types/components/q2-stepper/index.d.ts +4 -0
  359. package/dist/types/components/q2-stepper-pane/index.d.ts +11 -1
  360. package/dist/types/components/q2-stepper-vertical/index.d.ts +10 -2
  361. package/dist/types/components/q2-tab-container/index.d.ts +12 -2
  362. package/dist/types/components/q2-tab-pane/index.d.ts +4 -0
  363. package/dist/types/components/q2-tag/index.d.ts +5 -0
  364. package/dist/types/components/q2-textarea/index.d.ts +14 -2
  365. package/dist/types/components/tecton-tab-pane/index.d.ts +4 -0
  366. package/dist/types/components.d.ts +223 -27
  367. package/dist/types/workspace/workspace/{tecton-production_release_1.38.x → _Gitlab_tecton-production_master}/packages/q2-tecton-elements/.stencil/test/helpers.d.ts +1 -0
  368. package/package.json +4 -3
  369. package/dist/q2-tecton-elements/p-072bda73.entry.js +0 -2
  370. package/dist/q2-tecton-elements/p-072bda73.entry.js.map +0 -1
  371. package/dist/q2-tecton-elements/p-145849d0.entry.js.map +0 -1
  372. package/dist/q2-tecton-elements/p-2812f9d2.entry.js.map +0 -1
  373. package/dist/q2-tecton-elements/p-52132d80.entry.js.map +0 -1
  374. package/dist/q2-tecton-elements/p-5843f6c8.entry.js.map +0 -1
  375. package/dist/q2-tecton-elements/p-69dcf12e.entry.js.map +0 -1
  376. package/dist/q2-tecton-elements/p-72b4ecc6.entry.js.map +0 -1
  377. package/dist/q2-tecton-elements/p-85dc889e.entry.js.map +0 -1
  378. package/dist/q2-tecton-elements/p-8f8d5362.entry.js.map +0 -1
  379. package/dist/q2-tecton-elements/p-9220365b.entry.js.map +0 -1
  380. package/dist/q2-tecton-elements/p-a4017e55.entry.js +0 -2
  381. package/dist/q2-tecton-elements/p-a4017e55.entry.js.map +0 -1
  382. package/dist/q2-tecton-elements/p-af98db79.entry.js +0 -2
  383. package/dist/q2-tecton-elements/p-af98db79.entry.js.map +0 -1
  384. package/dist/q2-tecton-elements/p-b83568e7.entry.js.map +0 -1
  385. package/dist/q2-tecton-elements/p-c0334e63.entry.js +0 -2
  386. package/dist/q2-tecton-elements/p-c0334e63.entry.js.map +0 -1
  387. package/dist/q2-tecton-elements/p-c057134f.entry.js.map +0 -1
  388. package/dist/q2-tecton-elements/p-db3bbfb8.entry.js.map +0 -1
  389. package/dist/q2-tecton-elements/p-e4dadcd7.entry.js.map +0 -1
  390. package/dist/q2-tecton-elements/p-e98d9cf2.entry.js.map +0 -1
  391. package/dist/q2-tecton-elements/p-f198f77b.entry.js.map +0 -1
  392. /package/dist/q2-tecton-elements/{p-311f37e2.entry.js.map → p-15c69543.entry.js.map} +0 -0
  393. /package/dist/q2-tecton-elements/{p-0cade28b.entry.js.map → p-36bff57a.entry.js.map} +0 -0
  394. /package/dist/q2-tecton-elements/{p-059ea7c9.entry.js.map → p-81e36fcd.entry.js.map} +0 -0
  395. /package/dist/q2-tecton-elements/{p-15179d55.entry.js.map → p-aa96f160.entry.js.map} +0 -0
  396. /package/dist/q2-tecton-elements/{p-81b917a5.entry.js.map → p-cc7ba0cb.entry.js.map} +0 -0
  397. /package/dist/q2-tecton-elements/{p-107f07f2.entry.js.map → p-ce009987.entry.js.map} +0 -0
  398. /package/dist/q2-tecton-elements/{p-959f47ef.entry.js.map → p-de7352f5.entry.js.map} +0 -0
  399. /package/dist/q2-tecton-elements/{p-6ae87415.entry.js.map → p-ef2e2991.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/q2-option-list/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Prop,\n h,\n Event,\n State,\n Element,\n ComponentInterface,\n Host,\n EventEmitter,\n Method,\n Watch,\n Listen,\n} from '@stencil/core';\nimport { isEventFromElement, loc, nextPaint, overrideFocus, waitForNextPaint } from 'src/utils';\n\nexport interface IOptionValue {\n value: string;\n display?: string;\n}\n\n@Component({\n tag: 'q2-option-list',\n shadow: true,\n styleUrl: 'styles.scss',\n})\nexport class Q2OptionList implements ComponentInterface {\n @Prop({ reflect: true }) customSearch: boolean;\n @Prop({ reflect: true }) noSelect: boolean;\n @Prop({ reflect: true }) align: 'left' | 'right';\n @Prop({ mutable: true }) selectedOptions: IOptionValue[] = [];\n @Prop({ reflect: true }) multiple: boolean;\n @Prop({ reflect: true }) disabled: boolean;\n @Prop({ reflect: true, mutable: true }) showSelected: boolean;\n /**\n * Translates to the role of the option list\n * @type {('menu' | 'listbox')}\n */\n @Prop() type: 'menu' | 'listbox' = 'listbox';\n @Prop() label: string = loc('tecton.element.optionList.label');\n\n @Event() change: EventEmitter<{ value: string; values: IOptionValue[] }>;\n @Event() popoverState: EventEmitter<{ open: boolean; action: 'close' | 'select' | 'open' }>;\n @Event({ bubbles: false }) ready: EventEmitter;\n @State() hasOptions: boolean;\n contentElement: HTMLElement;\n activeIndex: number;\n pivotIndex: number;\n scheduledAfterRender: (() => void)[] = [];\n searchString: string;\n searchStringTimer: number;\n keyStore: {\n queue: string[];\n lastPressedAt: Date;\n } = {\n queue: [],\n lastPressedAt: new Date(),\n };\n\n @Element() hostElement: HTMLElement;\n\n /// LifeCycle Hooks ///\n componentWillLoad() {\n this.hasOptions = !!this.hostElement.querySelectorAll('q2-option').length;\n }\n\n componentDidLoad(): void {\n overrideFocus(this.hostElement);\n this.checkOptions();\n this.selectedOptionsUpdated();\n this.ready.emit();\n }\n\n componentDidRender() {\n this.scheduledAfterRender.forEach(fn => fn());\n this.scheduledAfterRender = [];\n }\n\n /// Getters ///\n get allContents(): (HTMLQ2OptgroupElement | HTMLQ2OptionElement)[] {\n const rootSlot = this.getRootSlot(this.hostElement);\n const acceptedTags = ['Q2-OPTGROUP', 'Q2-OPTION'];\n return rootSlot.filter(element => acceptedTags.includes(element.tagName)) as (\n | HTMLQ2OptgroupElement\n | HTMLQ2OptionElement\n )[];\n }\n\n get allOptions(): HTMLQ2OptionElement[] {\n const contents = this.allContents;\n\n const extractOptions = (\n elements: (HTMLQ2OptgroupElement | HTMLQ2OptionElement | Element)[]\n ): HTMLQ2OptionElement[] => {\n return elements.reduce((acc, element) => {\n if (element.tagName === 'Q2-OPTGROUP') {\n return [...acc, ...extractOptions(Array.from(element.children))];\n } else if (element.tagName === 'Q2-OPTION') {\n return [...acc, element];\n } else {\n return acc;\n }\n }, []);\n };\n\n return extractOptions(contents);\n }\n\n get allVisibleOptions(): HTMLQ2OptionElement[] {\n return this.allOptions.filter(\n option => !option.hidden && !option._multiSelectHidden && !option.disabled && !option.disabledGroup\n );\n }\n\n /// Helpers ///\n async checkOptions() {\n const { type } = this;\n const options = await this.getOptions();\n if (!type) return;\n const optionRole = type === 'menu' ? 'menuitem' : 'option';\n options.forEach(option => {\n option.role = optionRole;\n });\n }\n\n getRootSlot(element: Element): Element[] {\n const slot = element.querySelector('slot');\n const assignedElements = slot?.assignedElements() ?? Array.from(element.children);\n const hasAnotherSlot = !!assignedElements.length && assignedElements[0].tagName === 'SLOT';\n if (hasAnotherSlot) {\n return this.getRootSlot(assignedElements[0]);\n } else {\n return assignedElements;\n }\n }\n\n scrollToActiveOption() {\n const activeOption = this.allOptions[this.activeIndex];\n activeOption?.scrollIntoView({ block: 'nearest' });\n }\n\n async openDropdownWithActiveElement(activeIndex: number) {\n if (this.disabled) return;\n this.activeIndex = activeIndex;\n this.popoverState.emit({ open: true, action: 'open' });\n await waitForNextPaint();\n this.setActiveOption();\n await waitForNextPaint();\n this.setFocusedOption();\n this.scrollToActiveOption();\n }\n\n getDefaultActiveIndex() {\n const { allOptions } = this;\n const firstSelected = allOptions.findIndex(element => element.selected);\n if (firstSelected > -1) return firstSelected;\n\n const firstEnabled = allOptions.findIndex(element => !element.hidden);\n if (firstEnabled > -1) return firstEnabled;\n\n return 0;\n }\n\n updateSingleOptionAttrs() {\n const { allOptions, selectedOptions } = this;\n const selectedValue = selectedOptions[0]?.value || undefined;\n allOptions.forEach(element => {\n element.selected = element.value === selectedValue;\n });\n }\n\n updateMultipleOptionAttrs() {\n const { allOptions, selectedOptions } = this;\n const selectedValues = selectedOptions.map(({ value }) => value);\n allOptions.forEach(element => {\n element.selected = selectedValues.includes(element.value);\n });\n }\n\n setActiveOption() {\n const activeIndex = this.activeIndex;\n\n this.allOptions.forEach((element, elementIndex) => {\n element.active = activeIndex === elementIndex;\n });\n }\n\n setFocusedOption() {\n const option = this.allOptions[this.activeIndex];\n if (!option) return;\n\n const isHostElementVisible = !!this.hostElement.offsetParent;\n if (isHostElementVisible) option.focus();\n else nextPaint(() => option.focus());\n }\n\n getNextVisibleIndex(direction) {\n const { allVisibleOptions, allOptions, activeIndex } = this;\n const activeOption = allOptions[activeIndex];\n const visibleActiveOptionIndex = allVisibleOptions.indexOf(activeOption);\n let nextVisibleOptionIndex = visibleActiveOptionIndex + direction;\n\n if (nextVisibleOptionIndex < 0) {\n nextVisibleOptionIndex = allVisibleOptions.length - 1;\n } else if (nextVisibleOptionIndex > allVisibleOptions.length - 1) {\n nextVisibleOptionIndex = 0;\n }\n\n const nextVisibleOption = allVisibleOptions[nextVisibleOptionIndex];\n return allOptions.indexOf(nextVisibleOption);\n }\n\n focusSelectedSibling(option: HTMLQ2OptionElement) {\n const { allVisibleOptions, allOptions } = this;\n const hasNoSiblings = allVisibleOptions.length < 2;\n if (hasNoSiblings) {\n this.showSelected = false;\n return;\n }\n\n const selectedOptionVisibleIndex = allVisibleOptions.indexOf(option);\n const nextVisibleSiblingIndex = selectedOptionVisibleIndex\n ? selectedOptionVisibleIndex - 1\n : selectedOptionVisibleIndex + 1;\n const nextVisibleSibling = allVisibleOptions[nextVisibleSiblingIndex];\n const nextSiblingIndex = allOptions.indexOf(nextVisibleSibling);\n\n this.activeIndex = nextSiblingIndex;\n this.setFocusedOption();\n this.scheduledAfterRender.push(() => {\n option._multiSelectHidden = !option.selected;\n });\n }\n\n selectOption(selectedOption: HTMLQ2OptionElement) {\n const { multiple, noSelect, showSelected } = this;\n if (!selectedOption || selectedOption.disabled || selectedOption.disabledGroup) return;\n const selectedValue = selectedOption.value;\n const valueObject = {\n value: selectedValue,\n display: selectedOption.display || selectedOption.innerText.trim(),\n };\n\n let values: IOptionValue[] = [];\n if (multiple) {\n const { selectedOptions } = this;\n const isAlreadySelected = selectedOptions.find(option => option.value === selectedValue);\n\n if (isAlreadySelected) {\n values = selectedOptions.filter(({ value }) => value !== selectedValue);\n } else {\n values = [...selectedOptions, valueObject];\n }\n\n if (showSelected) this.focusSelectedSibling(selectedOption);\n } else {\n values = [valueObject];\n }\n\n if (noSelect) this.setActiveElement(null);\n else this.selectedOptions = values;\n\n this.change.emit({ value: selectedValue, values });\n }\n\n adjustActiveOptionAndScroll(numToAdd: number) {\n this.activeIndex += numToAdd;\n this.setActiveOption();\n this.setFocusedOption();\n this.scrollToActiveOption();\n }\n\n resetTimer() {\n if (this.searchStringTimer) {\n clearTimeout(this.searchStringTimer);\n }\n\n this.searchStringTimer = window.setTimeout(() => {\n this.searchString = null;\n }, 2000);\n }\n\n searchAndFocus = (keyValue: string, shouldSelect: boolean) => {\n // pseudo search in non-searchable select\n const reorder = () => {\n this.pivotIndex = this.pivotIndex === undefined ? 0 : (this.activeIndex || 0) + 1;\n const list = this.allOptions.map((element, index) => ({ element, index }));\n return [...list.slice(this.pivotIndex), ...list.slice(0, this.pivotIndex)];\n };\n\n const buildQueue = () => {\n const now = new Date();\n if (now.getTime() - this.keyStore.lastPressedAt.getTime() > 1000) {\n // empty stored keys if delay > 1s\n this.keyStore.queue.length = 0;\n }\n if (this.keyStore.queue.length !== 1 || this.keyStore.queue[0] !== keyValue) {\n this.keyStore.queue.push(keyValue);\n }\n this.keyStore.lastPressedAt = now;\n };\n\n const searchIndex = (list: any[]) => {\n const keyStr = this.keyStore.queue.join('');\n return list.find(v => {\n return (\n !v.element.disabled &&\n v.element.display &&\n (v.element.display.match(new RegExp(`^${keyStr}`, 'i')) ||\n v.element.display.replace(/\\s/g, '').match(new RegExp(`^${keyStr}`, 'i')))\n );\n });\n };\n\n const setFocus = ({ index }) => {\n if (this.multiple) {\n // multiple: should open to make sure that which options are selected\n this.openDropdownWithActiveElement(index);\n } else {\n this.activeIndex = index;\n if (shouldSelect) {\n this.selectOption(this.allOptions[index]);\n this.popoverState.emit({ open: false, action: 'select' });\n } else this.setActiveElement(index);\n }\n };\n\n buildQueue();\n const matched = searchIndex(reorder());\n if (matched) {\n setFocus(matched);\n }\n };\n\n searchOptions(key: string, shouldSelect?: boolean) {\n this.searchString = key;\n this.searchAndFocus(key, shouldSelect);\n }\n\n /// Watchers ///\n @Watch('showSelected')\n showSelectedUpdated(showSelected: boolean) {\n if (showSelected && this.selectedOptions.length === 0) {\n this.showSelected = false;\n return;\n }\n this.allOptions.forEach(option => (option._multiSelectHidden = showSelected ? !option.selected : false));\n }\n\n @Watch('selectedOptions')\n selectedOptionsUpdated() {\n if (this.multiple) {\n this.updateMultipleOptionAttrs();\n } else {\n this.updateSingleOptionAttrs();\n }\n }\n\n /// Listeners ///\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.popoverState.emit({ open: true, action: 'open' });\n const { activeIndex } = this;\n if (typeof activeIndex === 'number' && activeIndex > -1) {\n this.setActiveOption();\n this.setFocusedOption();\n } else {\n this.setDefaultActiveElement();\n }\n }\n\n @Listen('click')\n handleClick(event: MouseEvent) {\n event.stopPropagation();\n }\n\n /// Public Methods ///\n @Method()\n async setDefaultActiveElement() {\n this.activeIndex = this.getDefaultActiveIndex();\n this.setActiveOption();\n this.setFocusedOption();\n }\n\n @Method()\n async setActiveElement(index: number) {\n this.activeIndex = index;\n this.setActiveOption();\n this.setFocusedOption();\n }\n\n @Method()\n async handleExternalKeydown(event: KeyboardEvent) {\n this.externalKeydownHandler(event);\n }\n\n @Method()\n async getContents(): Promise<(HTMLQ2OptgroupElement | HTMLQ2OptionElement)[]> {\n return this.allContents;\n }\n\n @Method()\n async getOptions(): Promise<HTMLQ2OptionElement[]> {\n return this.allOptions;\n }\n\n /// Event Handlers ///\n /* tslint:disable:cyclomatic-complexity */\n externalKeydownHandler = (event: KeyboardEvent) => {\n event.stopPropagation();\n const { activeIndex, customSearch, allOptions } = this;\n const { key } = event;\n\n let nextIndex;\n switch (key) {\n case ' ':\n if (this.searchString) {\n if (customSearch) break;\n\n this.searchOptions(key, true);\n break;\n } else if (this.type === 'menu') {\n this.activeIndex = 0;\n this.openDropdownWithActiveElement(0);\n } else {\n this.setDefaultActiveElement();\n nextPaint(() => this.popoverState.emit({ open: true, action: 'open' }));\n }\n break;\n\n case 'Enter':\n if (this.type === 'menu') {\n this.activeIndex = 0;\n this.openDropdownWithActiveElement(0);\n } else {\n this.setDefaultActiveElement();\n nextPaint(() => this.popoverState.emit({ open: true, action: 'open' }));\n }\n break;\n\n case 'ArrowUp':\n event.preventDefault();\n this.activeIndex = 0;\n nextIndex = !!this.selectedOptions.length ? this.getDefaultActiveIndex() : this.getNextVisibleIndex(-1);\n if (nextIndex === -1) break;\n this.openDropdownWithActiveElement(nextIndex);\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n this.activeIndex = 0;\n nextIndex = !!this.selectedOptions.length ? this.getDefaultActiveIndex() : this.getNextVisibleIndex(0);\n if (nextIndex === -1) break;\n this.openDropdownWithActiveElement(nextIndex);\n break;\n\n case 'Home':\n event.preventDefault();\n this.openDropdownWithActiveElement(0);\n break;\n\n case 'End':\n event.preventDefault();\n this.openDropdownWithActiveElement(allOptions.length - 1);\n break;\n\n case 'PageUp':\n event.preventDefault();\n this.openDropdownWithActiveElement(Math.max((activeIndex || 0) - 10, 0));\n break;\n\n case 'PageDown':\n event.preventDefault();\n this.openDropdownWithActiveElement(Math.min((activeIndex || 0) + 10, allOptions.length - 1));\n break;\n\n case 'Tab':\n this.popoverState.emit({ open: false, action: 'close' });\n break;\n\n case 'Esc':\n case 'Escape':\n if (this.noSelect) this.setActiveElement(null);\n this.popoverState.emit({ open: false, action: 'close' });\n break;\n\n default:\n if (customSearch) break;\n if (!key.match(/^[\\w]$/)) break;\n\n this.searchOptions(key, true);\n break;\n }\n };\n\n internalKeydownHandler = (event: KeyboardEvent) => {\n event.stopPropagation();\n const { activeIndex, customSearch, allOptions, multiple } = this;\n const { key, shiftKey } = event;\n\n let newOption;\n switch (key) {\n case ' ':\n if (this.searchString && !this.multiple) {\n if (customSearch) break;\n\n this.searchOptions(key, false);\n break;\n }\n\n event.preventDefault();\n newOption = allOptions.find(element => element.active);\n if (!newOption || newOption.disabled) break;\n this.selectOption(newOption);\n if (multiple) break;\n this.popoverState.emit({ open: false, action: 'select' });\n break;\n\n case 'Enter':\n event.preventDefault();\n newOption = allOptions.find(element => element.active);\n if (!newOption || newOption.disabled) break;\n this.selectOption(newOption);\n if (multiple) break;\n this.popoverState.emit({ open: false, action: 'select' });\n break;\n\n case 'ArrowUp':\n event.preventDefault();\n const isFirstOptionActive = activeIndex === 0;\n if (isFirstOptionActive) break;\n if (activeIndex === undefined) {\n this.setDefaultActiveElement();\n break;\n } else {\n const nextIndex = this.getNextVisibleIndex(-1);\n if (nextIndex === -1) break;\n this.adjustActiveOptionAndScroll(nextIndex - activeIndex);\n break;\n }\n\n case 'ArrowDown':\n event.preventDefault();\n const isLastOptionActive = activeIndex === allOptions.length - 1;\n if (isLastOptionActive) break;\n if (activeIndex === undefined) {\n this.setDefaultActiveElement();\n break;\n } else {\n const nextIndex = this.getNextVisibleIndex(1);\n if (nextIndex === -1) break;\n this.adjustActiveOptionAndScroll(nextIndex - activeIndex);\n break;\n }\n\n case 'Home':\n event.preventDefault();\n this.openDropdownWithActiveElement(0);\n break;\n\n case 'End':\n event.preventDefault();\n this.openDropdownWithActiveElement(allOptions.length - 1);\n break;\n\n case 'PageUp':\n event.preventDefault();\n this.openDropdownWithActiveElement(Math.max(activeIndex - 10, 0));\n break;\n\n case 'PageDown':\n event.preventDefault();\n this.openDropdownWithActiveElement(Math.min(activeIndex + 10, allOptions.length - 1));\n break;\n\n case 'Tab':\n if (shiftKey) break;\n if (this.multiple && this.type === 'listbox') break;\n newOption = allOptions.find(element => element.active);\n if (!newOption || newOption.disabled) return;\n this.selectOption(newOption);\n break;\n\n case 'Esc':\n case 'Escape':\n if (this.noSelect) this.setActiveElement(null);\n this.popoverState.emit({ open: false, action: 'close' });\n break;\n\n default:\n if (customSearch) break;\n if (!key.match(/^[\\w]$/)) break;\n\n this.searchOptions(key, false);\n break;\n }\n };\n /* tslint:enable:cyclomatic-complexity */\n\n focusoutHandler = (event: FocusEvent) => {\n const { relatedTarget } = event as unknown as { relatedTarget: HTMLQ2OptionElement };\n const isInQ2OptionList = this.allOptions.includes(relatedTarget);\n const isInLightDom = !isInQ2OptionList && this.hostElement.contains(relatedTarget);\n if (isInQ2OptionList || isInLightDom) {\n event.stopPropagation();\n }\n };\n\n clickHandler = (event: Event) => {\n const target = event.target as HTMLQ2OptionElement;\n const option = target.closest('q2-option');\n this.selectOption(option);\n if (this.multiple) return;\n this.popoverState.emit({ open: false, action: 'select' });\n };\n\n /// DOM ///\n render() {\n return (\n <Host>\n <div\n class=\"content\"\n ref={el => (this.contentElement = el)}\n onFocusout={this.focusoutHandler}\n >\n <div\n class=\"options\"\n aria-label={loc('tecton.element.optionList.label', [this.label])}\n aria-multiselectable={`${!!this.multiple}`}\n role={this.type || 'listbox'}\n onKeyDown={this.internalKeydownHandler}\n onClick={this.clickHandler}\n >\n <slot />\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/q2-option-list/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Prop,\n h,\n Event,\n State,\n Element,\n ComponentInterface,\n Host,\n EventEmitter,\n Method,\n Watch,\n Listen,\n} from '@stencil/core';\nimport { isEventFromElement, loc, nextPaint, overrideFocus, waitForNextPaint } from 'src/utils';\n\nexport interface IOptionValue {\n value: string;\n display?: string;\n}\n\n@Component({\n tag: 'q2-option-list',\n shadow: true,\n styleUrl: 'styles.scss',\n})\nexport class Q2OptionList implements ComponentInterface {\n @Prop({ reflect: true }) customSearch: boolean;\n @Prop({ reflect: true }) noSelect: boolean;\n @Prop({ reflect: true }) align: 'left' | 'right';\n @Prop({ mutable: true }) selectedOptions: IOptionValue[] = [];\n @Prop({ reflect: true }) multiple: boolean;\n @Prop({ reflect: true }) disabled: boolean;\n @Prop({ reflect: true, mutable: true }) showSelected: boolean;\n /**\n * Translates to the role of the option list\n * @type {('menu' | 'listbox')}\n */\n @Prop() type: 'menu' | 'listbox' = 'listbox';\n @Prop() label: string = loc('tecton.element.optionList.label');\n\n /**\n * Emitted when an option is selected or deselected.\n *\n * When the multi-select is enabled, the `value` property will be `undefined` and the `selectedOptions` property\n * will contain the selected option values.\n */\n @Event() change: EventEmitter<{ value: string; values: IOptionValue[] }>;\n\n /**\n * Emitted to indicate the intended state of the popover.\n * @private\n */\n @Event() popoverState: EventEmitter<{ open: boolean; action: 'close' | 'select' | 'open' }>;\n\n /**\n * Emitted when the component has finished rendering.\n * @private\n */\n @Event({ bubbles: false }) ready: EventEmitter<undefined>;\n @State() hasOptions: boolean;\n contentElement: HTMLElement;\n activeIndex: number;\n pivotIndex: number;\n scheduledAfterRender: (() => void)[] = [];\n searchString: string;\n searchStringTimer: number;\n keyStore: {\n queue: string[];\n lastPressedAt: Date;\n } = {\n queue: [],\n lastPressedAt: new Date(),\n };\n\n @Element() hostElement: HTMLElement;\n\n /// LifeCycle Hooks ///\n componentWillLoad() {\n this.hasOptions = !!this.hostElement.querySelectorAll('q2-option').length;\n }\n\n componentDidLoad(): void {\n overrideFocus(this.hostElement);\n this.checkOptions();\n this.selectedOptionsUpdated();\n this.ready.emit();\n }\n\n componentDidRender() {\n this.scheduledAfterRender.forEach(fn => fn());\n this.scheduledAfterRender = [];\n }\n\n /// Getters ///\n get allContents(): (HTMLQ2OptgroupElement | HTMLQ2OptionElement)[] {\n const rootSlot = this.getRootSlot(this.hostElement);\n const acceptedTags = ['Q2-OPTGROUP', 'Q2-OPTION'];\n return rootSlot.filter(element => acceptedTags.includes(element.tagName)) as (\n | HTMLQ2OptgroupElement\n | HTMLQ2OptionElement\n )[];\n }\n\n get allOptions(): HTMLQ2OptionElement[] {\n const contents = this.allContents;\n\n const extractOptions = (\n elements: (HTMLQ2OptgroupElement | HTMLQ2OptionElement | Element)[]\n ): HTMLQ2OptionElement[] => {\n return elements.reduce((acc, element) => {\n if (element.tagName === 'Q2-OPTGROUP') {\n return [...acc, ...extractOptions(Array.from(element.children))];\n } else if (element.tagName === 'Q2-OPTION') {\n return [...acc, element];\n } else {\n return acc;\n }\n }, []);\n };\n\n return extractOptions(contents);\n }\n\n get allVisibleOptions(): HTMLQ2OptionElement[] {\n return this.allOptions.filter(\n option => !option.hidden && !option._multiSelectHidden && !option.disabled && !option.disabledGroup\n );\n }\n\n /// Helpers ///\n async checkOptions() {\n const { type } = this;\n const options = await this.getOptions();\n if (!type) return;\n const optionRole = type === 'menu' ? 'menuitem' : 'option';\n options.forEach(option => {\n option.role = optionRole;\n });\n }\n\n getRootSlot(element: Element): Element[] {\n const slot = element.querySelector('slot');\n const assignedElements = slot?.assignedElements() ?? Array.from(element.children);\n const hasAnotherSlot = !!assignedElements.length && assignedElements[0].tagName === 'SLOT';\n if (hasAnotherSlot) {\n return this.getRootSlot(assignedElements[0]);\n } else {\n return assignedElements;\n }\n }\n\n scrollToActiveOption() {\n const activeOption = this.allOptions[this.activeIndex];\n activeOption?.scrollIntoView({ block: 'nearest' });\n }\n\n async openDropdownWithActiveElement(activeIndex: number) {\n if (this.disabled) return;\n this.activeIndex = activeIndex;\n this.popoverState.emit({ open: true, action: 'open' });\n await waitForNextPaint();\n this.setActiveOption();\n await waitForNextPaint();\n this.setFocusedOption();\n this.scrollToActiveOption();\n }\n\n getDefaultActiveIndex() {\n const { allOptions } = this;\n const firstSelected = allOptions.findIndex(element => element.selected);\n if (firstSelected > -1) return firstSelected;\n\n const firstEnabled = allOptions.findIndex(element => !element.hidden);\n if (firstEnabled > -1) return firstEnabled;\n\n return 0;\n }\n\n updateSingleOptionAttrs() {\n const { allOptions, selectedOptions } = this;\n const selectedValue = selectedOptions[0]?.value || undefined;\n allOptions.forEach(element => {\n element.selected = element.value === selectedValue;\n });\n }\n\n updateMultipleOptionAttrs() {\n const { allOptions, selectedOptions } = this;\n const selectedValues = selectedOptions.map(({ value }) => value);\n allOptions.forEach(element => {\n element.selected = selectedValues.includes(element.value);\n });\n }\n\n setActiveOption() {\n const activeIndex = this.activeIndex;\n\n this.allOptions.forEach((element, elementIndex) => {\n element.active = activeIndex === elementIndex;\n });\n }\n\n setFocusedOption() {\n const option = this.allOptions[this.activeIndex];\n if (!option) return;\n\n const isHostElementVisible = !!this.hostElement.offsetParent;\n if (isHostElementVisible) option.focus();\n else nextPaint(() => option.focus());\n }\n\n getNextVisibleIndex(direction) {\n const { allVisibleOptions, allOptions, activeIndex } = this;\n const activeOption = allOptions[activeIndex];\n const visibleActiveOptionIndex = allVisibleOptions.indexOf(activeOption);\n let nextVisibleOptionIndex = visibleActiveOptionIndex + direction;\n\n if (nextVisibleOptionIndex < 0) {\n nextVisibleOptionIndex = allVisibleOptions.length - 1;\n } else if (nextVisibleOptionIndex > allVisibleOptions.length - 1) {\n nextVisibleOptionIndex = 0;\n }\n\n const nextVisibleOption = allVisibleOptions[nextVisibleOptionIndex];\n return allOptions.indexOf(nextVisibleOption);\n }\n\n focusSelectedSibling(option: HTMLQ2OptionElement) {\n const { allVisibleOptions, allOptions } = this;\n const hasNoSiblings = allVisibleOptions.length < 2;\n if (hasNoSiblings) {\n this.showSelected = false;\n return;\n }\n\n const selectedOptionVisibleIndex = allVisibleOptions.indexOf(option);\n const nextVisibleSiblingIndex = selectedOptionVisibleIndex\n ? selectedOptionVisibleIndex - 1\n : selectedOptionVisibleIndex + 1;\n const nextVisibleSibling = allVisibleOptions[nextVisibleSiblingIndex];\n const nextSiblingIndex = allOptions.indexOf(nextVisibleSibling);\n\n this.activeIndex = nextSiblingIndex;\n this.setFocusedOption();\n this.scheduledAfterRender.push(() => {\n option._multiSelectHidden = !option.selected;\n });\n }\n\n selectOption(selectedOption: HTMLQ2OptionElement) {\n const { multiple, noSelect, showSelected } = this;\n if (!selectedOption || selectedOption.disabled || selectedOption.disabledGroup) return;\n const selectedValue = selectedOption.value;\n const valueObject = {\n value: selectedValue,\n display: selectedOption.display || selectedOption.innerText.trim(),\n };\n\n let values: IOptionValue[] = [];\n if (multiple) {\n const { selectedOptions } = this;\n const isAlreadySelected = selectedOptions.find(option => option.value === selectedValue);\n\n if (isAlreadySelected) {\n values = selectedOptions.filter(({ value }) => value !== selectedValue);\n } else {\n values = [...selectedOptions, valueObject];\n }\n\n if (showSelected) this.focusSelectedSibling(selectedOption);\n } else {\n values = [valueObject];\n }\n\n if (noSelect) this.setActiveElement(null);\n else this.selectedOptions = values;\n\n this.change.emit({ value: selectedValue, values });\n }\n\n adjustActiveOptionAndScroll(numToAdd: number) {\n this.activeIndex += numToAdd;\n this.setActiveOption();\n this.setFocusedOption();\n this.scrollToActiveOption();\n }\n\n resetTimer() {\n if (this.searchStringTimer) {\n clearTimeout(this.searchStringTimer);\n }\n\n this.searchStringTimer = window.setTimeout(() => {\n this.searchString = null;\n }, 2000);\n }\n\n searchAndFocus = (keyValue: string, shouldSelect: boolean) => {\n // pseudo search in non-searchable select\n const reorder = () => {\n this.pivotIndex = this.pivotIndex === undefined ? 0 : (this.activeIndex || 0) + 1;\n const list = this.allOptions.map((element, index) => ({ element, index }));\n return [...list.slice(this.pivotIndex), ...list.slice(0, this.pivotIndex)];\n };\n\n const buildQueue = () => {\n const now = new Date();\n if (now.getTime() - this.keyStore.lastPressedAt.getTime() > 1000) {\n // empty stored keys if delay > 1s\n this.keyStore.queue.length = 0;\n }\n if (this.keyStore.queue.length !== 1 || this.keyStore.queue[0] !== keyValue) {\n this.keyStore.queue.push(keyValue);\n }\n this.keyStore.lastPressedAt = now;\n };\n\n const searchIndex = (list: any[]) => {\n const keyStr = this.keyStore.queue.join('');\n return list.find(v => {\n return (\n !v.element.disabled &&\n v.element.display &&\n (v.element.display.match(new RegExp(`^${keyStr}`, 'i')) ||\n v.element.display.replace(/\\s/g, '').match(new RegExp(`^${keyStr}`, 'i')))\n );\n });\n };\n\n const setFocus = ({ index }) => {\n if (this.multiple) {\n // multiple: should open to make sure that which options are selected\n this.openDropdownWithActiveElement(index);\n } else {\n this.activeIndex = index;\n if (shouldSelect) {\n this.selectOption(this.allOptions[index]);\n this.popoverState.emit({ open: false, action: 'select' });\n } else this.setActiveElement(index);\n }\n };\n\n buildQueue();\n const matched = searchIndex(reorder());\n if (matched) {\n setFocus(matched);\n }\n };\n\n searchOptions(key: string, shouldSelect?: boolean) {\n this.searchString = key;\n this.searchAndFocus(key, shouldSelect);\n }\n\n /// Watchers ///\n @Watch('showSelected')\n showSelectedUpdated(showSelected: boolean) {\n if (showSelected && this.selectedOptions.length === 0) {\n this.showSelected = false;\n return;\n }\n this.allOptions.forEach(option => (option._multiSelectHidden = showSelected ? !option.selected : false));\n }\n\n @Watch('selectedOptions')\n selectedOptionsUpdated() {\n if (this.multiple) {\n this.updateMultipleOptionAttrs();\n } else {\n this.updateSingleOptionAttrs();\n }\n }\n\n /// Listeners ///\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.popoverState.emit({ open: true, action: 'open' });\n const { activeIndex } = this;\n if (typeof activeIndex === 'number' && activeIndex > -1) {\n this.setActiveOption();\n this.setFocusedOption();\n } else {\n this.setDefaultActiveElement();\n }\n }\n\n @Listen('click')\n handleClick(event: MouseEvent) {\n event.stopPropagation();\n }\n\n /// Public Methods ///\n @Method()\n async setDefaultActiveElement() {\n this.activeIndex = this.getDefaultActiveIndex();\n this.setActiveOption();\n this.setFocusedOption();\n }\n\n @Method()\n async setActiveElement(index: number) {\n this.activeIndex = index;\n this.setActiveOption();\n this.setFocusedOption();\n }\n\n @Method()\n async handleExternalKeydown(event: KeyboardEvent) {\n this.externalKeydownHandler(event);\n }\n\n @Method()\n async getContents(): Promise<(HTMLQ2OptgroupElement | HTMLQ2OptionElement)[]> {\n return this.allContents;\n }\n\n @Method()\n async getOptions(): Promise<HTMLQ2OptionElement[]> {\n return this.allOptions;\n }\n\n /// Event Handlers ///\n /* tslint:disable:cyclomatic-complexity */\n externalKeydownHandler = (event: KeyboardEvent) => {\n event.stopPropagation();\n const { activeIndex, customSearch, allOptions } = this;\n const { key } = event;\n\n let nextIndex;\n switch (key) {\n case ' ':\n if (this.searchString) {\n if (customSearch) break;\n\n this.searchOptions(key, true);\n break;\n } else if (this.type === 'menu') {\n this.activeIndex = 0;\n this.openDropdownWithActiveElement(0);\n } else {\n this.setDefaultActiveElement();\n nextPaint(() => this.popoverState.emit({ open: true, action: 'open' }));\n }\n break;\n\n case 'Enter':\n if (this.type === 'menu') {\n this.activeIndex = 0;\n this.openDropdownWithActiveElement(0);\n } else {\n this.setDefaultActiveElement();\n nextPaint(() => this.popoverState.emit({ open: true, action: 'open' }));\n }\n break;\n\n case 'ArrowUp':\n event.preventDefault();\n this.activeIndex = 0;\n nextIndex = !!this.selectedOptions.length ? this.getDefaultActiveIndex() : this.getNextVisibleIndex(-1);\n if (nextIndex === -1) break;\n this.openDropdownWithActiveElement(nextIndex);\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n this.activeIndex = 0;\n nextIndex = !!this.selectedOptions.length ? this.getDefaultActiveIndex() : this.getNextVisibleIndex(0);\n if (nextIndex === -1) break;\n this.openDropdownWithActiveElement(nextIndex);\n break;\n\n case 'Home':\n event.preventDefault();\n this.openDropdownWithActiveElement(0);\n break;\n\n case 'End':\n event.preventDefault();\n this.openDropdownWithActiveElement(allOptions.length - 1);\n break;\n\n case 'PageUp':\n event.preventDefault();\n this.openDropdownWithActiveElement(Math.max((activeIndex || 0) - 10, 0));\n break;\n\n case 'PageDown':\n event.preventDefault();\n this.openDropdownWithActiveElement(Math.min((activeIndex || 0) + 10, allOptions.length - 1));\n break;\n\n case 'Tab':\n this.popoverState.emit({ open: false, action: 'close' });\n break;\n\n case 'Esc':\n case 'Escape':\n if (this.noSelect) this.setActiveElement(null);\n this.popoverState.emit({ open: false, action: 'close' });\n break;\n\n default:\n if (customSearch) break;\n if (!key.match(/^[\\w]$/)) break;\n\n this.searchOptions(key, true);\n break;\n }\n };\n\n internalKeydownHandler = (event: KeyboardEvent) => {\n event.stopPropagation();\n const { activeIndex, customSearch, allOptions, multiple } = this;\n const { key, shiftKey } = event;\n\n let newOption;\n switch (key) {\n case ' ':\n if (this.searchString && !this.multiple) {\n if (customSearch) break;\n\n this.searchOptions(key, false);\n break;\n }\n\n event.preventDefault();\n newOption = allOptions.find(element => element.active);\n if (!newOption || newOption.disabled) break;\n this.selectOption(newOption);\n if (multiple) break;\n this.popoverState.emit({ open: false, action: 'select' });\n break;\n\n case 'Enter':\n event.preventDefault();\n newOption = allOptions.find(element => element.active);\n if (!newOption || newOption.disabled) break;\n this.selectOption(newOption);\n if (multiple) break;\n this.popoverState.emit({ open: false, action: 'select' });\n break;\n\n case 'ArrowUp':\n event.preventDefault();\n const isFirstOptionActive = activeIndex === 0;\n if (isFirstOptionActive) break;\n if (activeIndex === undefined) {\n this.setDefaultActiveElement();\n break;\n } else {\n const nextIndex = this.getNextVisibleIndex(-1);\n if (nextIndex === -1) break;\n this.adjustActiveOptionAndScroll(nextIndex - activeIndex);\n break;\n }\n\n case 'ArrowDown':\n event.preventDefault();\n const isLastOptionActive = activeIndex === allOptions.length - 1;\n if (isLastOptionActive) break;\n if (activeIndex === undefined) {\n this.setDefaultActiveElement();\n break;\n } else {\n const nextIndex = this.getNextVisibleIndex(1);\n if (nextIndex === -1) break;\n this.adjustActiveOptionAndScroll(nextIndex - activeIndex);\n break;\n }\n\n case 'Home':\n event.preventDefault();\n this.openDropdownWithActiveElement(0);\n break;\n\n case 'End':\n event.preventDefault();\n this.openDropdownWithActiveElement(allOptions.length - 1);\n break;\n\n case 'PageUp':\n event.preventDefault();\n this.openDropdownWithActiveElement(Math.max(activeIndex - 10, 0));\n break;\n\n case 'PageDown':\n event.preventDefault();\n this.openDropdownWithActiveElement(Math.min(activeIndex + 10, allOptions.length - 1));\n break;\n\n case 'Tab':\n if (shiftKey) break;\n if (this.multiple && this.type === 'listbox') break;\n newOption = allOptions.find(element => element.active);\n if (!newOption || newOption.disabled) return;\n this.selectOption(newOption);\n break;\n\n case 'Esc':\n case 'Escape':\n if (this.noSelect) this.setActiveElement(null);\n this.popoverState.emit({ open: false, action: 'close' });\n break;\n\n default:\n if (customSearch) break;\n if (!key.match(/^[\\w]$/)) break;\n\n this.searchOptions(key, false);\n break;\n }\n };\n /* tslint:enable:cyclomatic-complexity */\n\n focusoutHandler = (event: FocusEvent) => {\n const { relatedTarget } = event as unknown as { relatedTarget: HTMLQ2OptionElement };\n const isInQ2OptionList = this.allOptions.includes(relatedTarget);\n const isInLightDom = !isInQ2OptionList && this.hostElement.contains(relatedTarget);\n if (isInQ2OptionList || isInLightDom) {\n event.stopPropagation();\n }\n };\n\n clickHandler = (event: Event) => {\n const target = event.target as HTMLQ2OptionElement;\n const option = target.closest('q2-option');\n this.selectOption(option);\n if (this.multiple) return;\n this.popoverState.emit({ open: false, action: 'select' });\n };\n\n /// DOM ///\n render() {\n return (\n <Host>\n <div\n class=\"content\"\n ref={el => (this.contentElement = el)}\n onFocusout={this.focusoutHandler}\n >\n <div\n class=\"options\"\n aria-label={loc('tecton.element.optionList.label', [this.label])}\n aria-multiselectable={`${!!this.multiple}`}\n role={this.type || 'listbox'}\n onKeyDown={this.internalKeydownHandler}\n onClick={this.clickHandler}\n >\n <slot />\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { h } from '@stencil/core';
1
+ import { h, } from '@stencil/core';
2
2
  import { isEventFromElement, loc, nextPaint, overrideFocus } from 'src/utils';
3
3
  export class Q2Pagination {
4
4
  constructor() {
@@ -303,12 +303,15 @@ export class Q2Pagination {
303
303
  "cancelable": true,
304
304
  "composed": true,
305
305
  "docs": {
306
- "tags": [],
307
- "text": ""
306
+ "tags": [{
307
+ "name": "legacyEvent",
308
+ "text": undefined
309
+ }],
310
+ "text": "Emitted when the page is changed."
308
311
  },
309
312
  "complexType": {
310
- "original": "any",
311
- "resolved": "any",
313
+ "original": "{ page: number }",
314
+ "resolved": "{ page: number; }",
312
315
  "references": {}
313
316
  }
314
317
  }];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/q2-pagination/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, State, Prop, h, ComponentInterface, Watch, Listen, Element, Event } from '@stencil/core';\nimport { isEventFromElement, loc, nextPaint, overrideFocus } from 'src/utils';\n\n@Component({\n tag: 'q2-pagination',\n shadow: true,\n styleUrl: 'styles.scss',\n})\nexport class Q2Pagination implements ComponentInterface {\n @Prop() recordType: string;\n @Prop() perPage: number;\n @Prop({ reflect: true }) total: number;\n @Prop({ reflect: true, mutable: true }) page: number;\n @Prop({ reflect: true, mutable: true }) pages: number;\n @Prop({ reflect: true, mutable: true }) recordsOnly: boolean;\n @Prop({ reflect: true, mutable: true }) pagesOnly: boolean;\n @Prop({ reflect: true, mutable: true }) autoSize: boolean = true;\n\n @Element() hostElement: HTMLElement;\n\n @Event() change;\n\n @State() isSmall: boolean;\n\n inputField: HTMLQ2InputElement;\n containerElement: HTMLElement;\n containerWidth: number;\n resizeObserver: ResizeObserver;\n\n ////////// LIFECYCLE HOOKS ////////\n componentWillLoad(): void {\n this.manageResizeObserver();\n }\n\n componentDidLoad(): void {\n this.containerWidth = this.containerElement.clientWidth;\n\n overrideFocus(this.hostElement);\n }\n\n disconnectedCallback() {\n this.removeResizeObserver();\n }\n\n ///////// OBSERVERS /////////\n\n @Watch('recordsOnly')\n @Watch('pagesOnly')\n @Watch('autoSize')\n manageResizeObserver() {\n if (this.autoSize && !this.recordsOnly && !this.pagesOnly) {\n if (this.resizeObserver) return;\n this.resizeObserver = new ResizeObserver(() => this.checkSize());\n this.resizeObserver.observe(this.hostElement);\n window.addEventListener('resize', this.checkSize);\n } else {\n this.isSmall = false;\n this.removeResizeObserver();\n }\n }\n\n ///////// HOST ELEMENT EVENTS /////////\n\n @Listen('focus')\n onHostElementFocus(event) {\n if (!isEventFromElement(event, this.hostElement)) return;\n const { isFullViewHidden, containerElement, inputField } = this;\n if (isFullViewHidden) {\n containerElement.querySelector<HTMLElement>('q2-btn:not([disabled])')?.focus();\n } else {\n inputField.focus();\n }\n }\n\n ///////// GETTERS /////////\n\n get isFullViewHidden() {\n return this.isSmall || this.recordsOnly || this.pagesOnly;\n }\n\n get pageWithDefault() {\n return this.page || 1;\n }\n\n get perPageWithDefault() {\n return this.perPage || 10;\n }\n\n get totalWithDefault() {\n return this.total || 0;\n }\n\n get recordTypeWithDefault() {\n return this.recordType || loc('tecton.element.pagination.defaultRecordType');\n }\n\n get currentRange() {\n const { perPageWithDefault: perPage, totalWithDefault: total, pageWithDefault: page } = this;\n const start = (page - 1) * perPage + 1;\n const end = Math.min(page * perPage, total);\n return `${start} - ${end}`;\n }\n\n get totalPages() {\n const { pagesOnly, totalWithDefault: total, perPageWithDefault: perPage, pages } = this;\n\n if (pagesOnly && pages && !isNaN(parseInt(`${pages}`))) return pages;\n\n return Math.ceil(total / perPage);\n }\n\n ///////// HELPERS /////////\n\n removeResizeObserver() {\n if (this.resizeObserver) {\n this.resizeObserver?.unobserve(this.hostElement);\n this.resizeObserver = null;\n window.removeEventListener('resize', this.checkSize);\n }\n }\n\n handlePageChange = (page: number) => {\n const { totalPages, inputField } = this;\n if (page < 1) {\n page = 1;\n } else if (page > totalPages) {\n page = totalPages;\n }\n\n if (inputField.value !== `${page}`) inputField.value = `${page}`;\n\n if (!this.hostElement.onchange) {\n this.page = page;\n }\n\n this.change.emit({ page });\n };\n\n checkSize = () => {\n const { hostElement, containerElement } = this;\n const isOverflowing = this.containerWidth > hostElement.clientWidth;\n this.isSmall = isOverflowing;\n if (isOverflowing) return;\n\n nextPaint(() => {\n const containerWidthHasNotChanged = this.containerWidth === containerElement.clientWidth;\n if (containerWidthHasNotChanged) return;\n this.containerWidth = containerElement.clientWidth;\n this.checkSize();\n });\n };\n\n render() {\n const {\n pagesOnly,\n isFullViewHidden,\n recordTypeWithDefault: recordType,\n totalPages,\n totalWithDefault: total,\n pageWithDefault: page,\n currentRange,\n } = this;\n const onFirstPage = page === 1;\n const onLastPage = page === totalPages;\n\n return (\n <nav\n class=\"container\"\n ref={el => (this.containerElement = el)}\n aria-label={loc('tecton.element.pagination.title')}\n >\n <div\n class=\"description\"\n test-id=\"description\"\n >\n {pagesOnly\n ? loc('tecton.element.pagination.pages', {\n current: page,\n total: totalPages,\n })\n : loc('tecton.element.pagination.description', {\n range: currentRange,\n recordType: recordType.toLowerCase(),\n total: total.toLocaleString(),\n })}\n </div>\n <div class=\"btn-group\">\n <q2-btn\n label={loc('tecton.element.pagination.goToFirstPage')}\n disabled={onFirstPage}\n hidden={isFullViewHidden}\n onClick={() => this.handlePageChange(1)}\n test-id=\"firstPageBtn\"\n hide-label\n >\n <q2-icon type=\"chevron-double-left\" />\n </q2-btn>\n <q2-btn\n label={loc('tecton.element.pagination.goToPages', {\n next: page - 1,\n total: totalPages,\n })}\n disabled={onFirstPage}\n onClick={() => this.handlePageChange(page - 1)}\n test-id=\"prevPageBtn\"\n hide-label\n >\n <q2-icon type=\"chevron-left\" />\n </q2-btn>\n </div>\n <div\n class=\"controls\"\n hidden={isFullViewHidden}\n test-id=\"controls\"\n >\n <span aria-hidden=\"true\">{loc('tecton.element.pagination.page')}</span>\n <div\n class=\"input-wrapper\"\n onClick={() => this.inputField.dispatchEvent(new FocusEvent('focus'))}\n >\n <q2-input\n type=\"number\"\n value={`${page}`}\n min={1}\n max={this.totalPages}\n hideLabel\n optional\n label={`${loc('tecton.element.pagination.page')} (${loc(\n 'tecton.element.pagination.ofPages',\n [totalPages.toLocaleString()]\n )})`}\n onChange={event => this.handlePageChange(event.detail.value)}\n test-id=\"pageInput\"\n current=\"page\"\n ref={el => (this.inputField = el)}\n ></q2-input>\n </div>\n <span aria-hidden=\"true\">\n {loc('tecton.element.pagination.ofPages', [totalPages.toLocaleString()])}\n </span>\n </div>\n <div class=\"btn-group\">\n <q2-btn\n label={loc('tecton.element.pagination.goToPages', {\n next: page + 1,\n total: totalPages,\n })}\n disabled={onLastPage}\n onClick={() => this.handlePageChange(page + 1)}\n test-id=\"nextPageBtn\"\n hide-label\n >\n <q2-icon type=\"chevron-right\" />\n </q2-btn>\n <q2-btn\n label=\"tecton.element.pagination.goToLastPage\"\n disabled={onLastPage}\n hidden={isFullViewHidden}\n onClick={() => this.handlePageChange(totalPages)}\n test-id=\"lastPageBtn\"\n hide-label\n >\n <q2-icon type=\"chevron-double-right\" />\n </q2-btn>\n </div>\n </nav>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/q2-pagination/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n State,\n Prop,\n h,\n ComponentInterface,\n Watch,\n Listen,\n Element,\n Event,\n EventEmitter,\n} from '@stencil/core';\nimport { isEventFromElement, loc, nextPaint, overrideFocus } from 'src/utils';\n\n@Component({\n tag: 'q2-pagination',\n shadow: true,\n styleUrl: 'styles.scss',\n})\nexport class Q2Pagination implements ComponentInterface {\n @Prop() recordType: string;\n @Prop() perPage: number;\n @Prop({ reflect: true }) total: number;\n @Prop({ reflect: true, mutable: true }) page: number;\n @Prop({ reflect: true, mutable: true }) pages: number;\n @Prop({ reflect: true, mutable: true }) recordsOnly: boolean;\n @Prop({ reflect: true, mutable: true }) pagesOnly: boolean;\n @Prop({ reflect: true, mutable: true }) autoSize: boolean = true;\n\n @Element() hostElement: HTMLElement;\n\n /**\n * Emitted when the page is changed.\n * @legacyEvent\n */\n @Event() change: EventEmitter<{ page: number }>;\n\n @State() isSmall: boolean;\n\n inputField: HTMLQ2InputElement;\n containerElement: HTMLElement;\n containerWidth: number;\n resizeObserver: ResizeObserver;\n\n ////////// LIFECYCLE HOOKS ////////\n componentWillLoad(): void {\n this.manageResizeObserver();\n }\n\n componentDidLoad(): void {\n this.containerWidth = this.containerElement.clientWidth;\n\n overrideFocus(this.hostElement);\n }\n\n disconnectedCallback() {\n this.removeResizeObserver();\n }\n\n ///////// OBSERVERS /////////\n\n @Watch('recordsOnly')\n @Watch('pagesOnly')\n @Watch('autoSize')\n manageResizeObserver() {\n if (this.autoSize && !this.recordsOnly && !this.pagesOnly) {\n if (this.resizeObserver) return;\n this.resizeObserver = new ResizeObserver(() => this.checkSize());\n this.resizeObserver.observe(this.hostElement);\n window.addEventListener('resize', this.checkSize);\n } else {\n this.isSmall = false;\n this.removeResizeObserver();\n }\n }\n\n ///////// HOST ELEMENT EVENTS /////////\n\n @Listen('focus')\n onHostElementFocus(event) {\n if (!isEventFromElement(event, this.hostElement)) return;\n const { isFullViewHidden, containerElement, inputField } = this;\n if (isFullViewHidden) {\n containerElement.querySelector<HTMLElement>('q2-btn:not([disabled])')?.focus();\n } else {\n inputField.focus();\n }\n }\n\n ///////// GETTERS /////////\n\n get isFullViewHidden() {\n return this.isSmall || this.recordsOnly || this.pagesOnly;\n }\n\n get pageWithDefault() {\n return this.page || 1;\n }\n\n get perPageWithDefault() {\n return this.perPage || 10;\n }\n\n get totalWithDefault() {\n return this.total || 0;\n }\n\n get recordTypeWithDefault() {\n return this.recordType || loc('tecton.element.pagination.defaultRecordType');\n }\n\n get currentRange() {\n const { perPageWithDefault: perPage, totalWithDefault: total, pageWithDefault: page } = this;\n const start = (page - 1) * perPage + 1;\n const end = Math.min(page * perPage, total);\n return `${start} - ${end}`;\n }\n\n get totalPages() {\n const { pagesOnly, totalWithDefault: total, perPageWithDefault: perPage, pages } = this;\n\n if (pagesOnly && pages && !isNaN(parseInt(`${pages}`))) return pages;\n\n return Math.ceil(total / perPage);\n }\n\n ///////// HELPERS /////////\n\n removeResizeObserver() {\n if (this.resizeObserver) {\n this.resizeObserver?.unobserve(this.hostElement);\n this.resizeObserver = null;\n window.removeEventListener('resize', this.checkSize);\n }\n }\n\n handlePageChange = (page: number) => {\n const { totalPages, inputField } = this;\n if (page < 1) {\n page = 1;\n } else if (page > totalPages) {\n page = totalPages;\n }\n\n if (inputField.value !== `${page}`) inputField.value = `${page}`;\n\n if (!this.hostElement.onchange) {\n this.page = page;\n }\n\n this.change.emit({ page });\n };\n\n checkSize = () => {\n const { hostElement, containerElement } = this;\n const isOverflowing = this.containerWidth > hostElement.clientWidth;\n this.isSmall = isOverflowing;\n if (isOverflowing) return;\n\n nextPaint(() => {\n const containerWidthHasNotChanged = this.containerWidth === containerElement.clientWidth;\n if (containerWidthHasNotChanged) return;\n this.containerWidth = containerElement.clientWidth;\n this.checkSize();\n });\n };\n\n render() {\n const {\n pagesOnly,\n isFullViewHidden,\n recordTypeWithDefault: recordType,\n totalPages,\n totalWithDefault: total,\n pageWithDefault: page,\n currentRange,\n } = this;\n const onFirstPage = page === 1;\n const onLastPage = page === totalPages;\n\n return (\n <nav\n class=\"container\"\n ref={el => (this.containerElement = el)}\n aria-label={loc('tecton.element.pagination.title')}\n >\n <div\n class=\"description\"\n test-id=\"description\"\n >\n {pagesOnly\n ? loc('tecton.element.pagination.pages', {\n current: page,\n total: totalPages,\n })\n : loc('tecton.element.pagination.description', {\n range: currentRange,\n recordType: recordType.toLowerCase(),\n total: total.toLocaleString(),\n })}\n </div>\n <div class=\"btn-group\">\n <q2-btn\n label={loc('tecton.element.pagination.goToFirstPage')}\n disabled={onFirstPage}\n hidden={isFullViewHidden}\n onClick={() => this.handlePageChange(1)}\n test-id=\"firstPageBtn\"\n hide-label\n >\n <q2-icon type=\"chevron-double-left\" />\n </q2-btn>\n <q2-btn\n label={loc('tecton.element.pagination.goToPages', {\n next: page - 1,\n total: totalPages,\n })}\n disabled={onFirstPage}\n onClick={() => this.handlePageChange(page - 1)}\n test-id=\"prevPageBtn\"\n hide-label\n >\n <q2-icon type=\"chevron-left\" />\n </q2-btn>\n </div>\n <div\n class=\"controls\"\n hidden={isFullViewHidden}\n test-id=\"controls\"\n >\n <span aria-hidden=\"true\">{loc('tecton.element.pagination.page')}</span>\n <div\n class=\"input-wrapper\"\n onClick={() => this.inputField.dispatchEvent(new FocusEvent('focus'))}\n >\n <q2-input\n type=\"number\"\n value={`${page}`}\n min={1}\n max={this.totalPages}\n hideLabel\n optional\n label={`${loc('tecton.element.pagination.page')} (${loc(\n 'tecton.element.pagination.ofPages',\n [totalPages.toLocaleString()]\n )})`}\n onChange={event => this.handlePageChange(event.detail.value)}\n test-id=\"pageInput\"\n current=\"page\"\n ref={el => (this.inputField = el)}\n ></q2-input>\n </div>\n <span aria-hidden=\"true\">\n {loc('tecton.element.pagination.ofPages', [totalPages.toLocaleString()])}\n </span>\n </div>\n <div class=\"btn-group\">\n <q2-btn\n label={loc('tecton.element.pagination.goToPages', {\n next: page + 1,\n total: totalPages,\n })}\n disabled={onLastPage}\n onClick={() => this.handlePageChange(page + 1)}\n test-id=\"nextPageBtn\"\n hide-label\n >\n <q2-icon type=\"chevron-right\" />\n </q2-btn>\n <q2-btn\n label=\"tecton.element.pagination.goToLastPage\"\n disabled={onLastPage}\n hidden={isFullViewHidden}\n onClick={() => this.handlePageChange(totalPages)}\n test-id=\"lastPageBtn\"\n hide-label\n >\n <q2-icon type=\"chevron-double-right\" />\n </q2-btn>\n </div>\n </nav>\n );\n }\n}\n"]}
@@ -530,8 +530,11 @@ export class Q2Pill {
530
530
  "cancelable": true,
531
531
  "composed": true,
532
532
  "docs": {
533
- "tags": [],
534
- "text": ""
533
+ "tags": [{
534
+ "name": "legacyEvent",
535
+ "text": undefined
536
+ }],
537
+ "text": "Emitted when the pill is clicked or the selected options change."
535
538
  },
536
539
  "complexType": {
537
540
  "original": "{ value: string; values: IOptionValue[]; active: boolean }",
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/q2-pill/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n State,\n Prop,\n h,\n ComponentInterface,\n Listen,\n Watch,\n Element,\n EventEmitter,\n Event,\n} from '@stencil/core';\nimport { isEventFromElement, loc, overrideFocus, resizeIframe } from 'src/utils';\nimport { shouldShowActionSheet, showActionSheetList } from 'src/utils/action-sheet';\nimport { IOptionValue } from '../q2-option-list';\n\n@Component({\n tag: 'q2-pill',\n shadow: true,\n styleUrl: 'styles.scss',\n})\nexport class Q2Pill implements ComponentInterface {\n @Prop() hoist: boolean = !!window.Tecton?.useActionSheets;\n @Prop({ reflect: true }) disabled: boolean;\n @Prop({ reflect: true, mutable: true }) active: boolean;\n @Prop({ reflect: true, mutable: true }) open: boolean;\n @Prop({ reflect: true }) multiple: boolean;\n @Prop({ reflect: true }) maxLength: number;\n @Prop({ reflect: true }) label: string;\n @Prop({ reflect: true, mutable: true }) value: string;\n @Prop({ reflect: true }) theme: 'primary' | 'secondary' | 'tertiary';\n @Prop({ mutable: true }) selectedOptions: IOptionValue[] = [];\n @Prop() popoverMinHeight: number = 150;\n @Prop() popoverDirection: 'up' | 'down';\n @Prop({ mutable: true }) popoverAlignment: 'left' | 'right' = 'right';\n @Prop() optionListLabel: string;\n\n @State() optionCount: number;\n @State() selectedOptionElements: HTMLQ2OptionElement[] = [];\n\n @Element() hostElement: HTMLElement;\n @Event() change: EventEmitter<{ value: string; values: IOptionValue[]; active: boolean }>;\n scheduledAfterRender: (() => void)[] = [];\n primaryBtn: HTMLButtonElement;\n primaryBtnWrapper: HTMLElement;\n optionList: HTMLQ2OptionListElement;\n mutationObserver: MutationObserver;\n popoverElement: HTMLQ2PopoverElement;\n\n /// LifeCycle Hooks ///\n componentWillLoad() {\n const observer = new MutationObserver(this.determineOptionCount);\n observer.observe(this.hostElement, { childList: true, attributes: true });\n this.mutationObserver = observer;\n }\n\n componentDidLoad() {\n overrideFocus(this.hostElement);\n this.syncValueProperties();\n }\n\n componentDidRender() {\n this.scheduledAfterRender.forEach(fn => fn());\n this.scheduledAfterRender = [];\n }\n\n disconnectedCallback() {\n this.mutationObserver.disconnect();\n this.mutationObserver = null;\n }\n\n /// Getters ///\n get buttonContent() {\n const { label, selectedOptions, selectedOptionElements, optionCount } = this;\n\n if (!optionCount || selectedOptionElements.length === 0) return loc(label);\n else if (selectedOptionElements.length === 1) return loc(selectedOptionElements[0].display);\n\n return loc('tecton.element.pill.activeCount', { count: selectedOptions.length });\n }\n\n get truncatedButtonContent() {\n const { maxLength, buttonContent } = this;\n if (maxLength)\n return buttonContent.length > maxLength ? `${buttonContent.substring(0, maxLength)}…` : buttonContent;\n else return buttonContent;\n }\n\n /// Helpers ///\n syncValueProperties = () => {\n const { value, selectedOptions } = this;\n if (!!selectedOptions?.length) this.selectedOptionsChanged(selectedOptions);\n else if (value) this.valueChanged(value);\n };\n\n getOption = async (value: string) => {\n if (this.optionList) {\n const options = await this.optionList.getOptions();\n return options.find(option => option.value === value);\n } else {\n return this.hostElement.querySelector<HTMLQ2OptionElement>(`q2-option[value=\"${value}\"]`);\n }\n };\n\n updateSelectedOptionElements = async () => {\n const { selectedOptions = [] } = this;\n const selectedValues = selectedOptions.map(option => option.value);\n const options = await this.optionList?.getOptions();\n if (this.optionCount) this.active = !!selectedValues.length;\n this.selectedOptionElements = options?.filter(option => selectedValues.includes(option.value)) || [];\n };\n\n determineOptionCount = () => {\n const numberOfOptions = this.hostElement.querySelectorAll('q2-option').length;\n this.optionCount = numberOfOptions;\n };\n\n async executeActionSheet(event: MouseEvent | KeyboardEvent) {\n const result = await showActionSheetList(this, event);\n this.handleSelectionChanges(result);\n }\n\n async handleSelectionChanges(changeDetails: { value?: string; values?: IOptionValue[] }) {\n const { multiple } = this;\n const { value = '', values = [] } = changeDetails;\n const isActive = multiple ? !!values.length : !!value;\n if (!this.hostElement.onchange) {\n if (multiple) {\n this.selectedOptions = values;\n this.value = undefined;\n } else {\n const selectedOption = await this.getOption(value);\n this.selectedOptions = selectedOption\n ? [{ value: selectedOption.value, display: selectedOption.display }]\n : [];\n this.value = selectedOption?.value || undefined;\n }\n }\n\n this.change.emit({\n value,\n values,\n active: isActive,\n });\n }\n\n clearSelectedOptions = () => {\n this.selectedOptions = [];\n this.value = null;\n this.active = false;\n this.open = false;\n this.primaryBtn.focus();\n this.change.emit({ value: null, values: [], active: false });\n this.scheduledAfterRender.push(resizeIframe);\n };\n\n /// Watchers ///\n @Watch('value')\n async valueChanged(newValue) {\n const { multiple, selectedOptions } = this;\n const firstValue = selectedOptions?.[0]?.value ?? null;\n if (multiple) return;\n if (newValue === firstValue) this.updateSelectedOptionElements();\n else {\n const selectedOption = await this.getOption(newValue);\n const { value, display } = selectedOption || { value: newValue, display: null };\n this.selectedOptions = value ? [{ value, display }] : [];\n }\n }\n\n @Watch('selectedOptions')\n selectedOptionsChanged(newValue) {\n const { multiple } = this;\n const firstValue = newValue?.[0]?.value ?? null;\n if (multiple) {\n if (this.value) this.value = null;\n this.updateSelectedOptionElements();\n } else if (this.value === firstValue) {\n this.updateSelectedOptionElements();\n } else {\n this.value = firstValue;\n }\n }\n\n /// Listeners ///\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.primaryBtn.focus();\n }\n\n @Listen('popoverStateChanged')\n popoverStateHandler({ detail: { open } }: CustomEvent<{ open: boolean }>) {\n if (this.open !== open) this.open = open;\n if (open) return;\n this.optionList.setActiveElement(null);\n }\n\n @Listen('displayChanged')\n handleSelectedDisplay() {\n if (this.multiple) return;\n this.updateSelectedOptionElements();\n }\n /// Event Handlers ///\n\n handleClick = async (event: MouseEvent) => {\n event.stopPropagation();\n if (this.disabled) return;\n if (this.optionCount) {\n if (shouldShowActionSheet(this)) {\n this.executeActionSheet(event);\n } else {\n await this.popoverElement.toggle();\n }\n } else {\n const { value, label } = this;\n const isActive = (this.active = !this.active);\n const values = isActive ? [{ value, display: label }] : [];\n this.selectedOptions = values;\n this.change.emit({\n value,\n values,\n active: isActive,\n });\n }\n };\n\n handleKeydown = async (event: KeyboardEvent) => {\n const isTabMetaOrCtrl = event.metaKey || event.ctrlKey || event.key === 'Tab';\n if (!this.optionCount || this.disabled || isTabMetaOrCtrl) return;\n\n event.preventDefault();\n if (shouldShowActionSheet(this, event)) {\n this.executeActionSheet(event);\n } else {\n this.optionList.handleExternalKeydown(event);\n }\n };\n\n handleButtonFocusout = async (event: FocusEvent) => {\n const relatedTarget = event.relatedTarget as unknown as HTMLElement;\n if (relatedTarget?.tagName === 'Q2-OPTION' ?? false) return;\n this.open = false;\n };\n\n handleChange = event => {\n event.stopPropagation();\n if (!this.optionCount) return;\n this.handleSelectionChanges(event.detail);\n };\n\n handleWrapperClick = () => {\n this.primaryBtn.focus();\n this.primaryBtn.click();\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 /// DOM ///\n generateIcon() {\n const { optionCount, active } = this;\n const isButton = optionCount && active;\n const TagName = isButton ? 'button' : 'div';\n const iconName = isButton || !optionCount ? 'close' : 'chevron-down';\n\n return (\n <TagName\n class=\"btn-close\"\n onClick={isButton && this.clearSelectedOptions}\n disabled={isButton && this.disabled}\n aria-label={isButton && loc('tecton.element.pill.clearSelection')}\n type={isButton && 'button'}\n >\n <q2-icon type={iconName}></q2-icon>\n </TagName>\n );\n }\n\n generateHiddenElement() {\n return (\n <div\n id=\"option-description\"\n class=\"sr\"\n aria-hidden=\"true\"\n >\n {loc('tecton.element.optionList.optionCount', [this.optionCount])}\n </div>\n );\n }\n\n render() {\n const { optionCount, active, open } = this;\n const wrapperClassNames = ['btn-wrapper'];\n if (optionCount || active) wrapperClassNames.push('has-icon');\n if (optionCount) wrapperClassNames.push('has-options');\n\n return (\n <click-elsewhere onChange={this.onClickElsewhere}>\n <div class={wrapperClassNames.join(' ')}>\n <div\n class=\"btn-height-wrapper\"\n ref={el => (this.primaryBtnWrapper = el)}\n onClick={this.handleWrapperClick}\n tabIndex={-1}\n >\n <button\n class=\"btn-primary\"\n test-id=\"btn-control\"\n type=\"button\"\n role=\"combobox\"\n ref={el => (this.primaryBtn = el)}\n onClick={this.handleClick}\n onKeyDown={this.handleKeydown}\n onFocusout={this.handleButtonFocusout}\n disabled={this.disabled}\n aria-roledescription={!optionCount && 'filter'}\n aria-controls={optionCount && 'option-list'}\n aria-expanded={(optionCount && `${!!open}`) || undefined}\n aria-label={this.maxLength && this.buttonContent}\n aria-describedby={(optionCount && 'option-description') || undefined}\n >\n {this.truncatedButtonContent}\n {!optionCount && active && <span class=\"sr\">({loc('tecton.element.pill.active')})</span>}\n </button>\n </div>\n {this.generateIcon()}\n {this.generateHiddenElement()}\n </div>\n {this.optionCount > 0 && (\n <q2-popover\n ref={el => (this.popoverElement = el)}\n controlElement={this.primaryBtn}\n open={this.open}\n minHeight={this.popoverMinHeight}\n direction={this.popoverDirection}\n align={this.popoverAlignment}\n >\n <q2-option-list\n type=\"listbox\"\n ref={el => (this.optionList = el)}\n id=\"option-list\"\n onChange={this.handleChange}\n multiple={this.multiple}\n selectedOptions={this.selectedOptions}\n onReady={() => this.updateSelectedOptionElements()}\n label={loc('tecton.element.optionList.label', [this.optionListLabel])}\n >\n <slot />\n </q2-option-list>\n </q2-popover>\n )}\n </click-elsewhere>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/q2-pill/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n State,\n Prop,\n h,\n ComponentInterface,\n Listen,\n Watch,\n Element,\n EventEmitter,\n Event,\n} from '@stencil/core';\nimport { isEventFromElement, loc, overrideFocus, resizeIframe } from 'src/utils';\nimport { shouldShowActionSheet, showActionSheetList } from 'src/utils/action-sheet';\nimport { IOptionValue } from '../q2-option-list';\n\n@Component({\n tag: 'q2-pill',\n shadow: true,\n styleUrl: 'styles.scss',\n})\nexport class Q2Pill implements ComponentInterface {\n @Prop() hoist: boolean = !!window.Tecton?.useActionSheets;\n @Prop({ reflect: true }) disabled: boolean;\n @Prop({ reflect: true, mutable: true }) active: boolean;\n @Prop({ reflect: true, mutable: true }) open: boolean;\n @Prop({ reflect: true }) multiple: boolean;\n @Prop({ reflect: true }) maxLength: number;\n @Prop({ reflect: true }) label: string;\n @Prop({ reflect: true, mutable: true }) value: string;\n @Prop({ reflect: true }) theme: 'primary' | 'secondary' | 'tertiary';\n @Prop({ mutable: true }) selectedOptions: IOptionValue[] = [];\n @Prop() popoverMinHeight: number = 150;\n @Prop() popoverDirection: 'up' | 'down';\n @Prop({ mutable: true }) popoverAlignment: 'left' | 'right' = 'right';\n @Prop() optionListLabel: string;\n\n @State() optionCount: number;\n @State() selectedOptionElements: HTMLQ2OptionElement[] = [];\n\n @Element() hostElement: HTMLElement;\n\n /**\n * Emitted when the pill is clicked or the selected options change.\n * @legacyEvent\n */\n @Event() change: EventEmitter<{ value: string; values: IOptionValue[]; active: boolean }>;\n scheduledAfterRender: (() => void)[] = [];\n primaryBtn: HTMLButtonElement;\n primaryBtnWrapper: HTMLElement;\n optionList: HTMLQ2OptionListElement;\n mutationObserver: MutationObserver;\n popoverElement: HTMLQ2PopoverElement;\n\n /// LifeCycle Hooks ///\n componentWillLoad() {\n const observer = new MutationObserver(this.determineOptionCount);\n observer.observe(this.hostElement, { childList: true, attributes: true });\n this.mutationObserver = observer;\n }\n\n componentDidLoad() {\n overrideFocus(this.hostElement);\n this.syncValueProperties();\n }\n\n componentDidRender() {\n this.scheduledAfterRender.forEach(fn => fn());\n this.scheduledAfterRender = [];\n }\n\n disconnectedCallback() {\n this.mutationObserver.disconnect();\n this.mutationObserver = null;\n }\n\n /// Getters ///\n get buttonContent() {\n const { label, selectedOptions, selectedOptionElements, optionCount } = this;\n\n if (!optionCount || selectedOptionElements.length === 0) return loc(label);\n else if (selectedOptionElements.length === 1) return loc(selectedOptionElements[0].display);\n\n return loc('tecton.element.pill.activeCount', { count: selectedOptions.length });\n }\n\n get truncatedButtonContent() {\n const { maxLength, buttonContent } = this;\n if (maxLength)\n return buttonContent.length > maxLength ? `${buttonContent.substring(0, maxLength)}…` : buttonContent;\n else return buttonContent;\n }\n\n /// Helpers ///\n syncValueProperties = () => {\n const { value, selectedOptions } = this;\n if (!!selectedOptions?.length) this.selectedOptionsChanged(selectedOptions);\n else if (value) this.valueChanged(value);\n };\n\n getOption = async (value: string) => {\n if (this.optionList) {\n const options = await this.optionList.getOptions();\n return options.find(option => option.value === value);\n } else {\n return this.hostElement.querySelector<HTMLQ2OptionElement>(`q2-option[value=\"${value}\"]`);\n }\n };\n\n updateSelectedOptionElements = async () => {\n const { selectedOptions = [] } = this;\n const selectedValues = selectedOptions.map(option => option.value);\n const options = await this.optionList?.getOptions();\n if (this.optionCount) this.active = !!selectedValues.length;\n this.selectedOptionElements = options?.filter(option => selectedValues.includes(option.value)) || [];\n };\n\n determineOptionCount = () => {\n const numberOfOptions = this.hostElement.querySelectorAll('q2-option').length;\n this.optionCount = numberOfOptions;\n };\n\n async executeActionSheet(event: MouseEvent | KeyboardEvent) {\n const result = await showActionSheetList(this, event);\n this.handleSelectionChanges(result);\n }\n\n async handleSelectionChanges(changeDetails: { value?: string; values?: IOptionValue[] }) {\n const { multiple } = this;\n const { value = '', values = [] } = changeDetails;\n const isActive = multiple ? !!values.length : !!value;\n if (!this.hostElement.onchange) {\n if (multiple) {\n this.selectedOptions = values;\n this.value = undefined;\n } else {\n const selectedOption = await this.getOption(value);\n this.selectedOptions = selectedOption\n ? [{ value: selectedOption.value, display: selectedOption.display }]\n : [];\n this.value = selectedOption?.value || undefined;\n }\n }\n\n this.change.emit({\n value,\n values,\n active: isActive,\n });\n }\n\n clearSelectedOptions = () => {\n this.selectedOptions = [];\n this.value = null;\n this.active = false;\n this.open = false;\n this.primaryBtn.focus();\n this.change.emit({ value: null, values: [], active: false });\n this.scheduledAfterRender.push(resizeIframe);\n };\n\n /// Watchers ///\n @Watch('value')\n async valueChanged(newValue) {\n const { multiple, selectedOptions } = this;\n const firstValue = selectedOptions?.[0]?.value ?? null;\n if (multiple) return;\n if (newValue === firstValue) this.updateSelectedOptionElements();\n else {\n const selectedOption = await this.getOption(newValue);\n const { value, display } = selectedOption || { value: newValue, display: null };\n this.selectedOptions = value ? [{ value, display }] : [];\n }\n }\n\n @Watch('selectedOptions')\n selectedOptionsChanged(newValue) {\n const { multiple } = this;\n const firstValue = newValue?.[0]?.value ?? null;\n if (multiple) {\n if (this.value) this.value = null;\n this.updateSelectedOptionElements();\n } else if (this.value === firstValue) {\n this.updateSelectedOptionElements();\n } else {\n this.value = firstValue;\n }\n }\n\n /// Listeners ///\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.primaryBtn.focus();\n }\n\n @Listen('popoverStateChanged')\n popoverStateHandler({ detail: { open } }: CustomEvent<{ open: boolean }>) {\n if (this.open !== open) this.open = open;\n if (open) return;\n this.optionList.setActiveElement(null);\n }\n\n @Listen('displayChanged')\n handleSelectedDisplay() {\n if (this.multiple) return;\n this.updateSelectedOptionElements();\n }\n /// Event Handlers ///\n\n handleClick = async (event: MouseEvent) => {\n event.stopPropagation();\n if (this.disabled) return;\n if (this.optionCount) {\n if (shouldShowActionSheet(this)) {\n this.executeActionSheet(event);\n } else {\n await this.popoverElement.toggle();\n }\n } else {\n const { value, label } = this;\n const isActive = (this.active = !this.active);\n const values = isActive ? [{ value, display: label }] : [];\n this.selectedOptions = values;\n this.change.emit({\n value,\n values,\n active: isActive,\n });\n }\n };\n\n handleKeydown = async (event: KeyboardEvent) => {\n const isTabMetaOrCtrl = event.metaKey || event.ctrlKey || event.key === 'Tab';\n if (!this.optionCount || this.disabled || isTabMetaOrCtrl) return;\n\n event.preventDefault();\n if (shouldShowActionSheet(this, event)) {\n this.executeActionSheet(event);\n } else {\n this.optionList.handleExternalKeydown(event);\n }\n };\n\n handleButtonFocusout = async (event: FocusEvent) => {\n const relatedTarget = event.relatedTarget as unknown as HTMLElement;\n if (relatedTarget?.tagName === 'Q2-OPTION' ?? false) return;\n this.open = false;\n };\n\n handleChange = event => {\n event.stopPropagation();\n if (!this.optionCount) return;\n this.handleSelectionChanges(event.detail);\n };\n\n handleWrapperClick = () => {\n this.primaryBtn.focus();\n this.primaryBtn.click();\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 /// DOM ///\n generateIcon() {\n const { optionCount, active } = this;\n const isButton = optionCount && active;\n const TagName = isButton ? 'button' : 'div';\n const iconName = isButton || !optionCount ? 'close' : 'chevron-down';\n\n return (\n <TagName\n class=\"btn-close\"\n onClick={isButton && this.clearSelectedOptions}\n disabled={isButton && this.disabled}\n aria-label={isButton && loc('tecton.element.pill.clearSelection')}\n type={isButton && 'button'}\n >\n <q2-icon type={iconName}></q2-icon>\n </TagName>\n );\n }\n\n generateHiddenElement() {\n return (\n <div\n id=\"option-description\"\n class=\"sr\"\n aria-hidden=\"true\"\n >\n {loc('tecton.element.optionList.optionCount', [this.optionCount])}\n </div>\n );\n }\n\n render() {\n const { optionCount, active, open } = this;\n const wrapperClassNames = ['btn-wrapper'];\n if (optionCount || active) wrapperClassNames.push('has-icon');\n if (optionCount) wrapperClassNames.push('has-options');\n\n return (\n <click-elsewhere onChange={this.onClickElsewhere}>\n <div class={wrapperClassNames.join(' ')}>\n <div\n class=\"btn-height-wrapper\"\n ref={el => (this.primaryBtnWrapper = el)}\n onClick={this.handleWrapperClick}\n tabIndex={-1}\n >\n <button\n class=\"btn-primary\"\n test-id=\"btn-control\"\n type=\"button\"\n role=\"combobox\"\n ref={el => (this.primaryBtn = el)}\n onClick={this.handleClick}\n onKeyDown={this.handleKeydown}\n onFocusout={this.handleButtonFocusout}\n disabled={this.disabled}\n aria-roledescription={!optionCount && 'filter'}\n aria-controls={optionCount && 'option-list'}\n aria-expanded={(optionCount && `${!!open}`) || undefined}\n aria-label={this.maxLength && this.buttonContent}\n aria-describedby={(optionCount && 'option-description') || undefined}\n >\n {this.truncatedButtonContent}\n {!optionCount && active && <span class=\"sr\">({loc('tecton.element.pill.active')})</span>}\n </button>\n </div>\n {this.generateIcon()}\n {this.generateHiddenElement()}\n </div>\n {this.optionCount > 0 && (\n <q2-popover\n ref={el => (this.popoverElement = el)}\n controlElement={this.primaryBtn}\n open={this.open}\n minHeight={this.popoverMinHeight}\n direction={this.popoverDirection}\n align={this.popoverAlignment}\n >\n <q2-option-list\n type=\"listbox\"\n ref={el => (this.optionList = el)}\n id=\"option-list\"\n onChange={this.handleChange}\n multiple={this.multiple}\n selectedOptions={this.selectedOptions}\n onReady={() => this.updateSelectedOptionElements()}\n label={loc('tecton.element.optionList.label', [this.optionListLabel])}\n >\n <slot />\n </q2-option-list>\n </q2-popover>\n )}\n </click-elsewhere>\n );\n }\n}\n"]}
@@ -300,7 +300,7 @@ export class Q2Popover {
300
300
  "composed": true,
301
301
  "docs": {
302
302
  "tags": [],
303
- "text": ""
303
+ "text": "Emitted when the popover is opened or closed."
304
304
  },
305
305
  "complexType": {
306
306
  "original": "{ open: boolean }",
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/q2-popover/index.tsx"],"names":[],"mappings":"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","sourcesContent":["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 { nextPaint, resizeIframe, waitForNextPaint, handleDeprecationWarning } from '../../utils';\n\n@Component({\n tag: 'q2-popover',\n shadow: true,\n styleUrl: 'styles.scss',\n})\nexport class Q2Popover implements ComponentInterface {\n @Prop({ reflect: true }) direction: 'up' | 'down';\n @Prop({ reflect: true }) align: 'left' | 'right';\n @Prop({ reflect: true, mutable: true }) open: boolean;\n @Prop({ reflect: true }) block: boolean;\n @Prop() controlElement: HTMLElement;\n\n /** @deprecated */\n @Prop() minHeight: number;\n\n @Element() hostElement: HTMLElement;\n @Event() popoverStateChanged: EventEmitter<{ open: boolean }>;\n\n @State() currentDirection: 'down' | 'up' = undefined;\n @State() show: boolean = false;\n containerElement: HTMLDivElement;\n contentElement: HTMLDivElement;\n scheduledAfterRender: (() => void)[] = [];\n\n /**\n * The number of pixels to leave between the popover and the edge of the viewport\n */\n displayBuffer = 10;\n\n /// Lifecycle hooks ///\n componentDidLoad() {\n this.handleMinHeight();\n if (this.open) this.determinePopDirection();\n }\n\n componentDidRender() {\n setTimeout(() => {\n this.scheduledAfterRender.forEach(fn => fn());\n this.scheduledAfterRender = [];\n }, 25);\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 openChanged(open) {\n this.popoverStateChanged.emit({ open });\n this.scheduledAfterRender.push(resizeIframe);\n if (open) {\n this.addViewportListeners();\n this.determinePopDirection();\n } else {\n this.removeViewportListeners();\n this.currentDirection = undefined;\n this.show = false;\n nextPaint(() => {\n this.containerElement.style.removeProperty('--comp-pop-max-height');\n this.containerElement.style.removeProperty('display');\n });\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 /// 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 addViewportListeners() {\n // window.visualViewport.addEventListener('scroll', this.viewPortChanged);\n window.visualViewport.addEventListener('resize', this.viewPortChanged);\n }\n\n removeViewportListeners() {\n // window.visualViewport.removeEventListener('scroll', this.viewPortChanged);\n window.visualViewport.removeEventListener('resize', this.viewPortChanged);\n }\n\n async setDirectionAndShow(direction: 'up' | 'down') {\n if (direction === 'up') {\n this.determinePopOffset();\n }\n\n this.currentDirection = direction;\n this.show = true;\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 async determinePopDirection() {\n const { containerElement, direction, controlElement, displayBuffer } = this;\n if (containerElement) containerElement.style.maxHeight = null;\n\n // Show the container so we can get the height\n containerElement.style.setProperty('display', 'block');\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 switch (direction ?? directionWithMostSpace) {\n case 'up':\n containerElement.style.setProperty('--comp-pop-max-height', `${maxSpaceAbove}px`);\n return this.setDirectionAndShow('up');\n case 'down':\n containerElement.style.setProperty('--comp-pop-max-height', `${maxSpaceBelow}px`);\n return this.setDirectionAndShow('down');\n default:\n break;\n }\n }\n\n determinePopOffset() {\n const { controlElement, containerElement } = this;\n const controlStyle = getComputedStyle(controlElement);\n const controlSize =\n parseInt(controlStyle.height) +\n parseInt(controlStyle.borderTopWidth) +\n parseInt(controlStyle.borderBottomWidth);\n\n containerElement.style.setProperty('--comp-pop-offset', `${controlSize}px`);\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"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/q2-popover/index.tsx"],"names":[],"mappings":"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","sourcesContent":["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 { nextPaint, resizeIframe, waitForNextPaint, handleDeprecationWarning } from '../../utils';\n\n@Component({\n tag: 'q2-popover',\n shadow: true,\n styleUrl: 'styles.scss',\n})\nexport class Q2Popover implements ComponentInterface {\n @Prop({ reflect: true }) direction: 'up' | 'down';\n @Prop({ reflect: true }) align: 'left' | 'right';\n @Prop({ reflect: true, mutable: true }) open: boolean;\n @Prop({ reflect: true }) block: boolean;\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 @State() show: boolean = false;\n containerElement: HTMLDivElement;\n contentElement: HTMLDivElement;\n scheduledAfterRender: (() => void)[] = [];\n\n /**\n * The number of pixels to leave between the popover and the edge of the viewport\n */\n displayBuffer = 10;\n\n /// Lifecycle hooks ///\n componentDidLoad() {\n this.handleMinHeight();\n if (this.open) this.determinePopDirection();\n }\n\n componentDidRender() {\n setTimeout(() => {\n this.scheduledAfterRender.forEach(fn => fn());\n this.scheduledAfterRender = [];\n }, 25);\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 openChanged(open) {\n this.popoverStateChanged.emit({ open });\n this.scheduledAfterRender.push(resizeIframe);\n if (open) {\n this.addViewportListeners();\n this.determinePopDirection();\n } else {\n this.removeViewportListeners();\n this.currentDirection = undefined;\n this.show = false;\n nextPaint(() => {\n this.containerElement.style.removeProperty('--comp-pop-max-height');\n this.containerElement.style.removeProperty('display');\n });\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 /// 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 addViewportListeners() {\n // window.visualViewport.addEventListener('scroll', this.viewPortChanged);\n window.visualViewport.addEventListener('resize', this.viewPortChanged);\n }\n\n removeViewportListeners() {\n // window.visualViewport.removeEventListener('scroll', this.viewPortChanged);\n window.visualViewport.removeEventListener('resize', this.viewPortChanged);\n }\n\n async setDirectionAndShow(direction: 'up' | 'down') {\n if (direction === 'up') {\n this.determinePopOffset();\n }\n\n this.currentDirection = direction;\n this.show = true;\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 async determinePopDirection() {\n const { containerElement, direction, controlElement, displayBuffer } = this;\n if (containerElement) containerElement.style.maxHeight = null;\n\n // Show the container so we can get the height\n containerElement.style.setProperty('display', 'block');\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 switch (direction ?? directionWithMostSpace) {\n case 'up':\n containerElement.style.setProperty('--comp-pop-max-height', `${maxSpaceAbove}px`);\n return this.setDirectionAndShow('up');\n case 'down':\n containerElement.style.setProperty('--comp-pop-max-height', `${maxSpaceBelow}px`);\n return this.setDirectionAndShow('down');\n default:\n break;\n }\n }\n\n determinePopOffset() {\n const { controlElement, containerElement } = this;\n const controlStyle = getComputedStyle(controlElement);\n const controlSize =\n parseInt(controlStyle.height) +\n parseInt(controlStyle.borderTopWidth) +\n parseInt(controlStyle.borderBottomWidth);\n\n containerElement.style.setProperty('--comp-pop-offset', `${controlSize}px`);\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"]}
@@ -319,11 +319,11 @@ export class Q2Radio {
319
319
  "composed": true,
320
320
  "docs": {
321
321
  "tags": [],
322
- "text": ""
322
+ "text": "Emitted when the radio is checked."
323
323
  },
324
324
  "complexType": {
325
- "original": "any",
326
- "resolved": "any",
325
+ "original": "{ value: string }",
326
+ "resolved": "{ value: string; }",
327
327
  "references": {}
328
328
  }
329
329
  }];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/q2-radio/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, h, Element, ComponentInterface, Listen, Watch, Event, EventEmitter } from '@stencil/core';\nimport { createGuid, handleAriaLabel, loc, overrideFocus } from 'src/utils';\n\n@Component({\n tag: 'q2-radio',\n shadow: true,\n styleUrl: 'styles.scss',\n})\nexport class Q2Radio implements ComponentInterface {\n @Prop({ reflect: true, mutable: true }) label: string;\n @Prop({ reflect: true, mutable: true }) hideLabel: boolean;\n @Prop({ reflect: true }) value: string;\n @Prop({ reflect: true }) disabled: boolean = false;\n @Prop({ reflect: true, mutable: true }) checked: boolean = false;\n @Prop({ reflect: true }) readonly: boolean;\n @Prop() tabIndex: number = 0;\n /**\n * Used by q2-radio-group to apply a name to all options in the group\n * @private\n */\n @Prop({ reflect: true }) name: string;\n /**\n * Used by q2-radio-group to disable all options in the group\n * @private\n */\n @Prop({ reflect: false }) groupDisabled: boolean = false;\n /**\n * Used by q2-radio-group to make all options in the group readonly\n * @private\n */\n @Prop({ reflect: false }) groupReadonly: boolean = false;\n /**\n * Used by q2-radio-group to make the options display as tiles\n * @private\n */\n @Prop({ reflect: false }) groupTileLayout: boolean = false;\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true }) ariaLabel: string;\n\n @Element() hostElement: HTMLElement;\n _id: string = `radio-${createGuid()}`;\n inputField: HTMLInputElement;\n isLoaded: boolean = false;\n\n @Event() change: EventEmitter;\n\n ////////// LIFECYCLE HOOKS ////////\n\n componentWillLoad() {\n handleAriaLabel(this);\n }\n\n componentDidLoad(): void {\n this.isLoaded = true;\n overrideFocus(this.hostElement);\n this.hostElement.click = () => {\n this.inputField.focus();\n this.inputField.click();\n };\n }\n\n ////////// OBSERVERS //////////\n\n @Watch('ariaLabel')\n ariaLabelObserver() {\n handleAriaLabel(this);\n }\n\n @Watch('checked')\n checkedObserver() {\n if (!this.isLoaded) return;\n if (!this.checked) return;\n this.change.emit({ value: this.value });\n }\n\n /////// HOST ELEMENT EVENTS ///////\n @Listen('click')\n onHostClick(event: Event) {\n if (this.disabled) {\n event.stopImmediatePropagation();\n } else if (this.groupReadonly) {\n event.preventDefault();\n event.stopImmediatePropagation();\n this.inputField.focus();\n }\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (event.target === this.hostElement) {\n this.inputField.focus();\n }\n }\n\n inputChange = (event: Event) => {\n event.stopPropagation();\n if (this.disabled || this.readonly || this.groupReadonly || this.groupDisabled) {\n event.preventDefault();\n return false;\n }\n\n if (event.target instanceof HTMLInputElement) {\n this.checked = event.target.checked;\n }\n };\n\n render() {\n return (\n <div class={this.groupTileLayout ? 'radio-tile' : 'radio-container'}>\n <input\n ref={el => (this.inputField = el)}\n class=\"sr\"\n id={this._id}\n type=\"radio\"\n name={this.name}\n value={this.value}\n disabled={this.disabled || this.groupDisabled}\n checked={this.checked}\n aria-label={this.label && this.hideLabel ? loc(this.label) : undefined}\n onChange={this.inputChange}\n test-id=\"q2RadioInnerRadioBox\"\n ></input>\n\n <label\n htmlFor={this._id}\n test-id=\"radioButton\"\n >\n {!this.groupTileLayout && (\n <svg viewBox=\"0 0 18 18\">\n <circle\n stroke=\"none\"\n fill=\"none\"\n cx=\"9\"\n cy=\"9\"\n r=\"8\"\n />\n <circle\n stroke=\"none\"\n fill=\"none\"\n cx=\"9\"\n cy=\"9\"\n r=\"4\"\n />\n </svg>\n )}\n {!this.hideLabel && (\n <div class=\"label-content\">\n {(this.label && loc(this.label)) || ''}\n <slot></slot>\n </div>\n )}\n </label>\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/q2-radio/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, h, Element, ComponentInterface, Listen, Watch, Event, EventEmitter } from '@stencil/core';\nimport { createGuid, handleAriaLabel, loc, overrideFocus } from 'src/utils';\n\n@Component({\n tag: 'q2-radio',\n shadow: true,\n styleUrl: 'styles.scss',\n})\nexport class Q2Radio implements ComponentInterface {\n @Prop({ reflect: true, mutable: true }) label: string;\n @Prop({ reflect: true, mutable: true }) hideLabel: boolean;\n @Prop({ reflect: true }) value: string;\n @Prop({ reflect: true }) disabled: boolean = false;\n @Prop({ reflect: true, mutable: true }) checked: boolean = false;\n @Prop({ reflect: true }) readonly: boolean;\n @Prop() tabIndex: number = 0;\n /**\n * Used by q2-radio-group to apply a name to all options in the group\n * @private\n */\n @Prop({ reflect: true }) name: string;\n /**\n * Used by q2-radio-group to disable all options in the group\n * @private\n */\n @Prop({ reflect: false }) groupDisabled: boolean = false;\n /**\n * Used by q2-radio-group to make all options in the group readonly\n * @private\n */\n @Prop({ reflect: false }) groupReadonly: boolean = false;\n /**\n * Used by q2-radio-group to make the options display as tiles\n * @private\n */\n @Prop({ reflect: false }) groupTileLayout: boolean = false;\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true }) ariaLabel: string;\n\n @Element() hostElement: HTMLElement;\n _id: string = `radio-${createGuid()}`;\n inputField: HTMLInputElement;\n isLoaded: boolean = false;\n\n /**\n * Emitted when the radio is checked.\n */\n @Event() change: EventEmitter<{ value: string }>;\n\n ////////// LIFECYCLE HOOKS ////////\n\n componentWillLoad() {\n handleAriaLabel(this);\n }\n\n componentDidLoad(): void {\n this.isLoaded = true;\n overrideFocus(this.hostElement);\n this.hostElement.click = () => {\n this.inputField.focus();\n this.inputField.click();\n };\n }\n\n ////////// OBSERVERS //////////\n\n @Watch('ariaLabel')\n ariaLabelObserver() {\n handleAriaLabel(this);\n }\n\n @Watch('checked')\n checkedObserver() {\n if (!this.isLoaded) return;\n if (!this.checked) return;\n this.change.emit({ value: this.value });\n }\n\n /////// HOST ELEMENT EVENTS ///////\n @Listen('click')\n onHostClick(event: Event) {\n if (this.disabled) {\n event.stopImmediatePropagation();\n } else if (this.groupReadonly) {\n event.preventDefault();\n event.stopImmediatePropagation();\n this.inputField.focus();\n }\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (event.target === this.hostElement) {\n this.inputField.focus();\n }\n }\n\n inputChange = (event: Event) => {\n event.stopPropagation();\n if (this.disabled || this.readonly || this.groupReadonly || this.groupDisabled) {\n event.preventDefault();\n return false;\n }\n\n if (event.target instanceof HTMLInputElement) {\n this.checked = event.target.checked;\n }\n };\n\n render() {\n return (\n <div class={this.groupTileLayout ? 'radio-tile' : 'radio-container'}>\n <input\n ref={el => (this.inputField = el)}\n class=\"sr\"\n id={this._id}\n type=\"radio\"\n name={this.name}\n value={this.value}\n disabled={this.disabled || this.groupDisabled}\n checked={this.checked}\n aria-label={this.label && this.hideLabel ? loc(this.label) : undefined}\n onChange={this.inputChange}\n test-id=\"q2RadioInnerRadioBox\"\n ></input>\n\n <label\n htmlFor={this._id}\n test-id=\"radioButton\"\n >\n {!this.groupTileLayout && (\n <svg viewBox=\"0 0 18 18\">\n <circle\n stroke=\"none\"\n fill=\"none\"\n cx=\"9\"\n cy=\"9\"\n r=\"8\"\n />\n <circle\n stroke=\"none\"\n fill=\"none\"\n cx=\"9\"\n cy=\"9\"\n r=\"4\"\n />\n </svg>\n )}\n {!this.hideLabel && (\n <div class=\"label-content\">\n {(this.label && loc(this.label)) || ''}\n <slot></slot>\n </div>\n )}\n </label>\n </div>\n );\n }\n}\n"]}