q2-tecton-elements 1.35.2 → 1.37.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 (352) hide show
  1. package/dist/cjs/charting-d02cba1f.js.map +1 -1
  2. package/dist/cjs/click-elsewhere_2.cjs.entry.js +1 -1
  3. package/dist/cjs/{index-f6545293.js → index-6f9f259c.js} +12 -9
  4. package/dist/cjs/index-6f9f259c.js.map +1 -0
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/q2-action-sheet.cjs.entry.js +2 -2
  7. package/dist/cjs/q2-action-sheet.cjs.entry.js.map +1 -1
  8. package/dist/cjs/q2-btn_2.cjs.entry.js +1 -1
  9. package/dist/cjs/q2-calendar.cjs.entry.js +46 -3
  10. package/dist/cjs/q2-calendar.cjs.entry.js.map +1 -1
  11. package/dist/cjs/q2-card.cjs.entry.js +1 -1
  12. package/dist/cjs/q2-carousel-pane.cjs.entry.js +1 -1
  13. package/dist/cjs/q2-carousel.cjs.entry.js +1 -1
  14. package/dist/cjs/q2-chart-area.cjs.entry.js +2 -2
  15. package/dist/cjs/q2-chart-area.cjs.entry.js.map +1 -1
  16. package/dist/cjs/q2-chart-bar.cjs.entry.js +2 -2
  17. package/dist/cjs/q2-chart-bar.cjs.entry.js.map +1 -1
  18. package/dist/cjs/q2-chart-donut.cjs.entry.js +12 -8
  19. package/dist/cjs/q2-chart-donut.cjs.entry.js.map +1 -1
  20. package/dist/cjs/q2-checkbox-group.cjs.entry.js +25 -6
  21. package/dist/cjs/q2-checkbox-group.cjs.entry.js.map +1 -1
  22. package/dist/cjs/q2-checkbox.cjs.entry.js +1 -1
  23. package/dist/cjs/q2-data-table.cjs.entry.js +2 -2
  24. package/dist/cjs/q2-data-table.cjs.entry.js.map +1 -1
  25. package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
  26. package/dist/cjs/q2-dropdown.cjs.entry.js +3 -3
  27. package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
  28. package/dist/cjs/q2-editable-field.cjs.entry.js +34 -6
  29. package/dist/cjs/q2-editable-field.cjs.entry.js.map +1 -1
  30. package/dist/cjs/q2-icon.cjs.entry.js +1 -1
  31. package/dist/cjs/q2-input.cjs.entry.js +17 -10
  32. package/dist/cjs/q2-input.cjs.entry.js.map +1 -1
  33. package/dist/cjs/q2-loc.cjs.entry.js +1 -1
  34. package/dist/cjs/q2-message.cjs.entry.js +14 -13
  35. package/dist/cjs/q2-message.cjs.entry.js.map +1 -1
  36. package/dist/cjs/q2-month-picker.cjs.entry.js +1 -1
  37. package/dist/cjs/q2-optgroup_2.cjs.entry.js +1 -1
  38. package/dist/cjs/q2-option-list.cjs.entry.js +1 -1
  39. package/dist/cjs/q2-pagination.cjs.entry.js +37 -11
  40. package/dist/cjs/q2-pagination.cjs.entry.js.map +1 -1
  41. package/dist/cjs/q2-pill.cjs.entry.js +3 -3
  42. package/dist/cjs/q2-pill.cjs.entry.js.map +1 -1
  43. package/dist/cjs/q2-radio-group.cjs.entry.js +9 -1
  44. package/dist/cjs/q2-radio-group.cjs.entry.js.map +1 -1
  45. package/dist/cjs/q2-radio.cjs.entry.js +12 -3
  46. package/dist/cjs/q2-radio.cjs.entry.js.map +1 -1
  47. package/dist/cjs/q2-section.cjs.entry.js +1 -1
  48. package/dist/cjs/q2-select.cjs.entry.js +54 -5
  49. package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
  50. package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
  51. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +1 -1
  52. package/dist/cjs/q2-stepper.cjs.entry.js +1 -1
  53. package/dist/cjs/q2-tab-container.cjs.entry.js +2 -2
  54. package/dist/cjs/q2-tab-container.cjs.entry.js.map +1 -1
  55. package/dist/cjs/q2-tag.cjs.entry.js +1 -1
  56. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  57. package/dist/cjs/q2-textarea.cjs.entry.js +13 -1
  58. package/dist/cjs/q2-textarea.cjs.entry.js.map +1 -1
  59. package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
  60. package/dist/collection/collection-manifest.json +1 -1
  61. package/dist/collection/components/q2-action-sheet/styles.css +0 -8
  62. package/dist/collection/components/q2-calendar/index.js +120 -2
  63. package/dist/collection/components/q2-calendar/index.js.map +1 -1
  64. package/dist/collection/components/q2-chart-area/index.js +2 -2
  65. package/dist/collection/components/q2-chart-area/index.js.map +1 -1
  66. package/dist/collection/components/q2-chart-bar/index.js +2 -2
  67. package/dist/collection/components/q2-chart-bar/index.js.map +1 -1
  68. package/dist/collection/components/q2-chart-donut/index.js +13 -9
  69. package/dist/collection/components/q2-chart-donut/index.js.map +1 -1
  70. package/dist/collection/components/q2-checkbox-group/index.js +45 -5
  71. package/dist/collection/components/q2-checkbox-group/index.js.map +1 -1
  72. package/dist/collection/components/q2-data-table/index.js +6 -6
  73. package/dist/collection/components/q2-data-table/styles.css +37 -36
  74. package/dist/collection/components/q2-dropdown/index.js +1 -1
  75. package/dist/collection/components/q2-dropdown/index.js.map +1 -1
  76. package/dist/collection/components/q2-dropdown/styles.css +4 -0
  77. package/dist/collection/components/q2-editable-field/index.js +96 -6
  78. package/dist/collection/components/q2-editable-field/index.js.map +1 -1
  79. package/dist/collection/components/q2-input/index.js +49 -11
  80. package/dist/collection/components/q2-input/index.js.map +1 -1
  81. package/dist/collection/components/q2-message/index.js +14 -13
  82. package/dist/collection/components/q2-message/index.js.map +1 -1
  83. package/dist/collection/components/q2-option-list/index.js +2 -2
  84. package/dist/collection/components/q2-pagination/index.js +60 -9
  85. package/dist/collection/components/q2-pagination/index.js.map +1 -1
  86. package/dist/collection/components/q2-pagination/styles.css +1 -0
  87. package/dist/collection/components/q2-pill/index.js +2 -2
  88. package/dist/collection/components/q2-pill/index.js.map +1 -1
  89. package/dist/collection/components/q2-radio/index.js +29 -3
  90. package/dist/collection/components/q2-radio/index.js.map +1 -1
  91. package/dist/collection/components/q2-radio-group/index.js +27 -0
  92. package/dist/collection/components/q2-radio-group/index.js.map +1 -1
  93. package/dist/collection/components/q2-select/index.js +127 -5
  94. package/dist/collection/components/q2-select/index.js.map +1 -1
  95. package/dist/collection/components/q2-stepper-pane/index.js +2 -2
  96. package/dist/collection/components/q2-tab-container/index.js +1 -1
  97. package/dist/collection/components/q2-tab-container/index.js.map +1 -1
  98. package/dist/collection/components/q2-textarea/index.js +37 -0
  99. package/dist/collection/components/q2-textarea/index.js.map +1 -1
  100. package/dist/collection/utils/charting.js.map +1 -1
  101. package/dist/collection/utils/index.js +8 -6
  102. package/dist/collection/utils/index.js.map +1 -1
  103. package/dist/components/charting.js.map +1 -1
  104. package/dist/components/index11.js +14 -13
  105. package/dist/components/index11.js.map +1 -1
  106. package/dist/components/index16.js +11 -8
  107. package/dist/components/index16.js.map +1 -1
  108. package/dist/components/index9.js +19 -10
  109. package/dist/components/index9.js.map +1 -1
  110. package/dist/components/q2-action-sheet.js +1 -1
  111. package/dist/components/q2-action-sheet.js.map +1 -1
  112. package/dist/components/q2-calendar.js +51 -4
  113. package/dist/components/q2-calendar.js.map +1 -1
  114. package/dist/components/q2-chart-area.js +1 -1
  115. package/dist/components/q2-chart-area.js.map +1 -1
  116. package/dist/components/q2-chart-bar.js +1 -1
  117. package/dist/components/q2-chart-bar.js.map +1 -1
  118. package/dist/components/q2-chart-donut.js +11 -7
  119. package/dist/components/q2-chart-donut.js.map +1 -1
  120. package/dist/components/q2-checkbox-group.js +26 -6
  121. package/dist/components/q2-checkbox-group.js.map +1 -1
  122. package/dist/components/q2-data-table.js +1 -1
  123. package/dist/components/q2-data-table.js.map +1 -1
  124. package/dist/components/q2-dropdown.js +2 -2
  125. package/dist/components/q2-dropdown.js.map +1 -1
  126. package/dist/components/q2-editable-field.js +39 -7
  127. package/dist/components/q2-editable-field.js.map +1 -1
  128. package/dist/components/q2-pagination.js +37 -10
  129. package/dist/components/q2-pagination.js.map +1 -1
  130. package/dist/components/q2-pill.js +2 -2
  131. package/dist/components/q2-pill.js.map +1 -1
  132. package/dist/components/q2-radio-group.js +10 -1
  133. package/dist/components/q2-radio-group.js.map +1 -1
  134. package/dist/components/q2-radio.js +13 -3
  135. package/dist/components/q2-radio.js.map +1 -1
  136. package/dist/components/q2-select.js +59 -6
  137. package/dist/components/q2-select.js.map +1 -1
  138. package/dist/components/q2-tab-container.js +1 -1
  139. package/dist/components/q2-tab-container.js.map +1 -1
  140. package/dist/components/q2-textarea.js +15 -2
  141. package/dist/components/q2-textarea.js.map +1 -1
  142. package/dist/docs.json +241 -9
  143. package/dist/esm/charting-2a73ba8e.js.map +1 -1
  144. package/dist/esm/click-elsewhere_2.entry.js +1 -1
  145. package/dist/esm/{index-35ff2881.js → index-74a659a5.js} +12 -9
  146. package/dist/esm/index-74a659a5.js.map +1 -0
  147. package/dist/esm/loader.js +1 -1
  148. package/dist/esm/q2-action-sheet.entry.js +2 -2
  149. package/dist/esm/q2-action-sheet.entry.js.map +1 -1
  150. package/dist/esm/q2-btn_2.entry.js +1 -1
  151. package/dist/esm/q2-calendar.entry.js +46 -3
  152. package/dist/esm/q2-calendar.entry.js.map +1 -1
  153. package/dist/esm/q2-card.entry.js +1 -1
  154. package/dist/esm/q2-carousel-pane.entry.js +1 -1
  155. package/dist/esm/q2-carousel.entry.js +1 -1
  156. package/dist/esm/q2-chart-area.entry.js +2 -2
  157. package/dist/esm/q2-chart-area.entry.js.map +1 -1
  158. package/dist/esm/q2-chart-bar.entry.js +2 -2
  159. package/dist/esm/q2-chart-bar.entry.js.map +1 -1
  160. package/dist/esm/q2-chart-donut.entry.js +12 -8
  161. package/dist/esm/q2-chart-donut.entry.js.map +1 -1
  162. package/dist/esm/q2-checkbox-group.entry.js +25 -6
  163. package/dist/esm/q2-checkbox-group.entry.js.map +1 -1
  164. package/dist/esm/q2-checkbox.entry.js +1 -1
  165. package/dist/esm/q2-data-table.entry.js +2 -2
  166. package/dist/esm/q2-data-table.entry.js.map +1 -1
  167. package/dist/esm/q2-dropdown-item.entry.js +1 -1
  168. package/dist/esm/q2-dropdown.entry.js +3 -3
  169. package/dist/esm/q2-dropdown.entry.js.map +1 -1
  170. package/dist/esm/q2-editable-field.entry.js +34 -6
  171. package/dist/esm/q2-editable-field.entry.js.map +1 -1
  172. package/dist/esm/q2-icon.entry.js +1 -1
  173. package/dist/esm/q2-input.entry.js +17 -10
  174. package/dist/esm/q2-input.entry.js.map +1 -1
  175. package/dist/esm/q2-loc.entry.js +1 -1
  176. package/dist/esm/q2-message.entry.js +14 -13
  177. package/dist/esm/q2-message.entry.js.map +1 -1
  178. package/dist/esm/q2-month-picker.entry.js +1 -1
  179. package/dist/esm/q2-optgroup_2.entry.js +1 -1
  180. package/dist/esm/q2-option-list.entry.js +1 -1
  181. package/dist/esm/q2-pagination.entry.js +37 -11
  182. package/dist/esm/q2-pagination.entry.js.map +1 -1
  183. package/dist/esm/q2-pill.entry.js +3 -3
  184. package/dist/esm/q2-pill.entry.js.map +1 -1
  185. package/dist/esm/q2-radio-group.entry.js +9 -1
  186. package/dist/esm/q2-radio-group.entry.js.map +1 -1
  187. package/dist/esm/q2-radio.entry.js +12 -3
  188. package/dist/esm/q2-radio.entry.js.map +1 -1
  189. package/dist/esm/q2-section.entry.js +1 -1
  190. package/dist/esm/q2-select.entry.js +54 -5
  191. package/dist/esm/q2-select.entry.js.map +1 -1
  192. package/dist/esm/q2-stepper-pane.entry.js +1 -1
  193. package/dist/esm/q2-stepper-vertical.entry.js +1 -1
  194. package/dist/esm/q2-stepper.entry.js +1 -1
  195. package/dist/esm/q2-tab-container.entry.js +2 -2
  196. package/dist/esm/q2-tab-container.entry.js.map +1 -1
  197. package/dist/esm/q2-tag.entry.js +1 -1
  198. package/dist/esm/q2-tecton-elements.js +1 -1
  199. package/dist/esm/q2-textarea.entry.js +13 -1
  200. package/dist/esm/q2-textarea.entry.js.map +1 -1
  201. package/dist/esm/q2-tooltip.entry.js +1 -1
  202. package/dist/q2-tecton-elements/{p-2b91b34e.entry.js → p-077107c1.entry.js} +2 -2
  203. package/dist/q2-tecton-elements/p-09d4b3d3.entry.js +2 -0
  204. package/dist/q2-tecton-elements/p-09d4b3d3.entry.js.map +1 -0
  205. package/dist/q2-tecton-elements/{p-b73e7870.entry.js → p-0d4aec6e.entry.js} +2 -2
  206. package/dist/q2-tecton-elements/p-1c993698.entry.js +2 -0
  207. package/dist/q2-tecton-elements/p-1c993698.entry.js.map +1 -0
  208. package/dist/q2-tecton-elements/{p-0c1b74e9.entry.js → p-252889b7.entry.js} +2 -2
  209. package/dist/q2-tecton-elements/p-252889b7.entry.js.map +1 -0
  210. package/dist/q2-tecton-elements/{p-d4da72f0.entry.js → p-25bd1b18.entry.js} +2 -2
  211. package/dist/q2-tecton-elements/p-25bd1b18.entry.js.map +1 -0
  212. package/dist/q2-tecton-elements/p-2a975246.entry.js +2 -0
  213. package/dist/q2-tecton-elements/p-2a975246.entry.js.map +1 -0
  214. package/dist/q2-tecton-elements/{p-55deaceb.entry.js → p-30facf35.entry.js} +2 -2
  215. package/dist/q2-tecton-elements/p-3798ad96.entry.js +2 -0
  216. package/dist/q2-tecton-elements/p-3798ad96.entry.js.map +1 -0
  217. package/dist/q2-tecton-elements/p-458b1987.js.map +1 -1
  218. package/dist/q2-tecton-elements/{p-2325975a.entry.js → p-46287c02.entry.js} +2 -2
  219. package/dist/q2-tecton-elements/{p-2bf5a3bc.entry.js → p-47c60d4a.entry.js} +2 -2
  220. package/dist/q2-tecton-elements/{p-6cc730db.entry.js → p-4abbd0b1.entry.js} +2 -2
  221. package/dist/q2-tecton-elements/{p-dafdb018.entry.js → p-570c1d3d.entry.js} +2 -2
  222. package/dist/q2-tecton-elements/p-570c1d3d.entry.js.map +1 -0
  223. package/dist/q2-tecton-elements/{p-4fb81d03.entry.js → p-578e3f98.entry.js} +2 -2
  224. package/dist/q2-tecton-elements/p-58cdb9c7.entry.js +2 -0
  225. package/dist/q2-tecton-elements/p-58cdb9c7.entry.js.map +1 -0
  226. package/dist/q2-tecton-elements/p-597f8656.entry.js +2 -0
  227. package/dist/q2-tecton-elements/p-597f8656.entry.js.map +1 -0
  228. package/dist/q2-tecton-elements/{p-ce27270b.entry.js → p-59d34a17.entry.js} +2 -2
  229. package/dist/q2-tecton-elements/{p-3c0d391b.entry.js → p-5bc4d94c.entry.js} +2 -2
  230. package/dist/q2-tecton-elements/{p-70a59bf1.entry.js → p-67f33354.entry.js} +2 -2
  231. package/dist/q2-tecton-elements/p-67f33354.entry.js.map +1 -0
  232. package/dist/q2-tecton-elements/{p-c9f32e51.entry.js → p-6cacc879.entry.js} +2 -2
  233. package/dist/q2-tecton-elements/{p-f637136f.entry.js → p-7366d36d.entry.js} +2 -2
  234. package/dist/q2-tecton-elements/{p-e5a8f7ff.entry.js → p-75fd6df5.entry.js} +2 -2
  235. package/dist/q2-tecton-elements/{p-e5a8f7ff.entry.js.map → p-75fd6df5.entry.js.map} +1 -1
  236. package/dist/q2-tecton-elements/{p-68371e6d.entry.js → p-8e7b762a.entry.js} +2 -2
  237. package/dist/q2-tecton-elements/{p-ece07c0d.entry.js → p-9a28b93a.entry.js} +2 -2
  238. package/dist/q2-tecton-elements/{p-d3827468.entry.js → p-9c9a2550.entry.js} +2 -2
  239. package/dist/q2-tecton-elements/p-9d743327.entry.js +2 -0
  240. package/dist/q2-tecton-elements/p-9d743327.entry.js.map +1 -0
  241. package/dist/q2-tecton-elements/{p-8c6f8d06.entry.js → p-9ef2829e.entry.js} +2 -2
  242. package/dist/q2-tecton-elements/{p-8c6f8d06.entry.js.map → p-9ef2829e.entry.js.map} +1 -1
  243. package/dist/q2-tecton-elements/{p-3fd4f83d.entry.js → p-a52371cf.entry.js} +2 -2
  244. package/dist/q2-tecton-elements/{p-f11326c2.entry.js → p-a53e9f1e.entry.js} +2 -2
  245. package/dist/q2-tecton-elements/{p-586c8654.entry.js → p-a60f82c0.entry.js} +2 -2
  246. package/dist/q2-tecton-elements/p-a60f82c0.entry.js.map +1 -0
  247. package/dist/q2-tecton-elements/{p-f6be73b7.entry.js → p-ac82ea35.entry.js} +2 -2
  248. package/dist/q2-tecton-elements/{p-f6be73b7.entry.js.map → p-ac82ea35.entry.js.map} +1 -1
  249. package/dist/q2-tecton-elements/{p-8e8a40ca.entry.js → p-bfd69d42.entry.js} +2 -2
  250. package/dist/q2-tecton-elements/{p-82bda2ff.entry.js → p-db6921fb.entry.js} +2 -2
  251. package/dist/q2-tecton-elements/{p-cfbd2cb1.entry.js → p-e45856f7.entry.js} +2 -2
  252. package/dist/q2-tecton-elements/p-e45856f7.entry.js.map +1 -0
  253. package/dist/q2-tecton-elements/{p-654987bf.entry.js → p-e8858d0d.entry.js} +2 -2
  254. package/dist/q2-tecton-elements/p-e8858d0d.entry.js.map +1 -0
  255. package/dist/q2-tecton-elements/{p-99ab3236.js → p-ef856249.js} +2 -2
  256. package/dist/q2-tecton-elements/p-ef856249.js.map +1 -0
  257. package/dist/q2-tecton-elements/{p-073df9e2.entry.js → p-efbe6c17.entry.js} +2 -2
  258. package/dist/q2-tecton-elements/p-efbe6c17.entry.js.map +1 -0
  259. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  260. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
  261. package/dist/test/elements/q2-calendar-test.e2e.js +177 -0
  262. package/dist/test/elements/q2-calendar-test.e2e.js.map +1 -1
  263. package/dist/test/elements/q2-chart-area-test.e2e.js +30 -1
  264. package/dist/test/elements/q2-chart-area-test.e2e.js.map +1 -1
  265. package/dist/test/elements/q2-chart-bar-test.e2e.js +30 -1
  266. package/dist/test/elements/q2-chart-bar-test.e2e.js.map +1 -1
  267. package/dist/test/elements/q2-chart-donut-test.e2e.js +21 -18
  268. package/dist/test/elements/q2-chart-donut-test.e2e.js.map +1 -1
  269. package/dist/test/elements/q2-checkbox-group-test.e2e.js +138 -18
  270. package/dist/test/elements/q2-checkbox-group-test.e2e.js.map +1 -1
  271. package/dist/test/elements/q2-checkbox-test.e2e.js +143 -115
  272. package/dist/test/elements/q2-checkbox-test.e2e.js.map +1 -1
  273. package/dist/test/elements/q2-dropdown-test.e2e.js +28 -0
  274. package/dist/test/elements/q2-dropdown-test.e2e.js.map +1 -1
  275. package/dist/test/elements/q2-editable-field-test.e2e.js +149 -28
  276. package/dist/test/elements/q2-editable-field-test.e2e.js.map +1 -1
  277. package/dist/test/elements/q2-input-test.e2e.js +150 -9
  278. package/dist/test/elements/q2-input-test.e2e.js.map +1 -1
  279. package/dist/test/elements/q2-message-test.e2e.js +38 -1
  280. package/dist/test/elements/q2-message-test.e2e.js.map +1 -1
  281. package/dist/test/elements/q2-pill-test.e2e.js +37 -1
  282. package/dist/test/elements/q2-pill-test.e2e.js.map +1 -1
  283. package/dist/test/elements/q2-radio-group-test.e2e.js +148 -186
  284. package/dist/test/elements/q2-radio-group-test.e2e.js.map +1 -1
  285. package/dist/test/elements/q2-radio-test.e2e.js +100 -15
  286. package/dist/test/elements/q2-radio-test.e2e.js.map +1 -1
  287. package/dist/test/elements/q2-select-test.e2e.js +203 -0
  288. package/dist/test/elements/q2-select-test.e2e.js.map +1 -1
  289. package/dist/test/elements/q2-tag-test.e2e.js +5 -0
  290. package/dist/test/elements/q2-tag-test.e2e.js.map +1 -1
  291. package/dist/test/elements/q2-textarea-test.e2e.js +33 -1
  292. package/dist/test/elements/q2-textarea-test.e2e.js.map +1 -1
  293. package/dist/types/components/q2-calendar/index.d.ts +8 -1
  294. package/dist/types/components/q2-chart-area/index.d.ts +1 -1
  295. package/dist/types/components/q2-chart-bar/index.d.ts +1 -1
  296. package/dist/types/components/q2-chart-donut/index.d.ts +2 -5
  297. package/dist/types/components/q2-checkbox-group/index.d.ts +3 -0
  298. package/dist/types/components/q2-editable-field/index.d.ts +10 -2
  299. package/dist/types/components/q2-input/index.d.ts +2 -0
  300. package/dist/types/components/q2-message/index.d.ts +1 -0
  301. package/dist/types/components/q2-pagination/index.d.ts +4 -0
  302. package/dist/types/components/q2-radio/index.d.ts +1 -0
  303. package/dist/types/components/q2-radio-group/index.d.ts +1 -0
  304. package/dist/types/components/q2-select/index.d.ts +9 -1
  305. package/dist/types/components/q2-textarea/index.d.ts +2 -0
  306. package/dist/types/components.d.ts +23 -4
  307. package/dist/types/utils/charting.d.ts +0 -6
  308. package/package.json +3 -3
  309. package/dist/cjs/index-f6545293.js.map +0 -1
  310. package/dist/esm/index-35ff2881.js.map +0 -1
  311. package/dist/q2-tecton-elements/p-073df9e2.entry.js.map +0 -1
  312. package/dist/q2-tecton-elements/p-0c1b74e9.entry.js.map +0 -1
  313. package/dist/q2-tecton-elements/p-215d5ab4.entry.js +0 -2
  314. package/dist/q2-tecton-elements/p-215d5ab4.entry.js.map +0 -1
  315. package/dist/q2-tecton-elements/p-2987498c.entry.js +0 -2
  316. package/dist/q2-tecton-elements/p-2987498c.entry.js.map +0 -1
  317. package/dist/q2-tecton-elements/p-57838409.entry.js +0 -2
  318. package/dist/q2-tecton-elements/p-57838409.entry.js.map +0 -1
  319. package/dist/q2-tecton-elements/p-586c8654.entry.js.map +0 -1
  320. package/dist/q2-tecton-elements/p-654987bf.entry.js.map +0 -1
  321. package/dist/q2-tecton-elements/p-70a59bf1.entry.js.map +0 -1
  322. package/dist/q2-tecton-elements/p-7a6e33d4.entry.js +0 -2
  323. package/dist/q2-tecton-elements/p-7a6e33d4.entry.js.map +0 -1
  324. package/dist/q2-tecton-elements/p-99ab3236.js.map +0 -1
  325. package/dist/q2-tecton-elements/p-ae2fa966.entry.js +0 -2
  326. package/dist/q2-tecton-elements/p-ae2fa966.entry.js.map +0 -1
  327. package/dist/q2-tecton-elements/p-b8d1c16f.entry.js +0 -2
  328. package/dist/q2-tecton-elements/p-b8d1c16f.entry.js.map +0 -1
  329. package/dist/q2-tecton-elements/p-cfbd2cb1.entry.js.map +0 -1
  330. package/dist/q2-tecton-elements/p-d4da72f0.entry.js.map +0 -1
  331. package/dist/q2-tecton-elements/p-dafdb018.entry.js.map +0 -1
  332. package/dist/q2-tecton-elements/p-deb1e1c8.entry.js +0 -2
  333. package/dist/q2-tecton-elements/p-deb1e1c8.entry.js.map +0 -1
  334. /package/dist/q2-tecton-elements/{p-2b91b34e.entry.js.map → p-077107c1.entry.js.map} +0 -0
  335. /package/dist/q2-tecton-elements/{p-b73e7870.entry.js.map → p-0d4aec6e.entry.js.map} +0 -0
  336. /package/dist/q2-tecton-elements/{p-55deaceb.entry.js.map → p-30facf35.entry.js.map} +0 -0
  337. /package/dist/q2-tecton-elements/{p-2325975a.entry.js.map → p-46287c02.entry.js.map} +0 -0
  338. /package/dist/q2-tecton-elements/{p-2bf5a3bc.entry.js.map → p-47c60d4a.entry.js.map} +0 -0
  339. /package/dist/q2-tecton-elements/{p-6cc730db.entry.js.map → p-4abbd0b1.entry.js.map} +0 -0
  340. /package/dist/q2-tecton-elements/{p-4fb81d03.entry.js.map → p-578e3f98.entry.js.map} +0 -0
  341. /package/dist/q2-tecton-elements/{p-ce27270b.entry.js.map → p-59d34a17.entry.js.map} +0 -0
  342. /package/dist/q2-tecton-elements/{p-3c0d391b.entry.js.map → p-5bc4d94c.entry.js.map} +0 -0
  343. /package/dist/q2-tecton-elements/{p-c9f32e51.entry.js.map → p-6cacc879.entry.js.map} +0 -0
  344. /package/dist/q2-tecton-elements/{p-f637136f.entry.js.map → p-7366d36d.entry.js.map} +0 -0
  345. /package/dist/q2-tecton-elements/{p-68371e6d.entry.js.map → p-8e7b762a.entry.js.map} +0 -0
  346. /package/dist/q2-tecton-elements/{p-ece07c0d.entry.js.map → p-9a28b93a.entry.js.map} +0 -0
  347. /package/dist/q2-tecton-elements/{p-d3827468.entry.js.map → p-9c9a2550.entry.js.map} +0 -0
  348. /package/dist/q2-tecton-elements/{p-3fd4f83d.entry.js.map → p-a52371cf.entry.js.map} +0 -0
  349. /package/dist/q2-tecton-elements/{p-f11326c2.entry.js.map → p-a53e9f1e.entry.js.map} +0 -0
  350. /package/dist/q2-tecton-elements/{p-8e8a40ca.entry.js.map → p-bfd69d42.entry.js.map} +0 -0
  351. /package/dist/q2-tecton-elements/{p-82bda2ff.entry.js.map → p-db6921fb.entry.js.map} +0 -0
  352. /package/dist/types/workspace/workspace/{tecton-production_release_1.35.x → _Gitlab_tecton-production_master}/packages/q2-tecton-elements/.stencil/test/helpers.d.ts +0 -0
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, h } from './index-ebc7f269.js';
2
- import { l as loc } from './index-35ff2881.js';
2
+ import { l as loc } from './index-74a659a5.js';
3
3
 
4
4
  const stylesCss = "*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #33b4ff #06C)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{display:inline}";
5
5
 
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, h, g as getElement } from './index-ebc7f269.js';
2
- import { j as isFirefox, o as overrideFocus, n as nextPaint, i as isEventFromElement } from './index-35ff2881.js';
2
+ import { j as isFirefox, o as overrideFocus, n as nextPaint, i as isEventFromElement, l as loc } from './index-74a659a5.js';
3
3
 
4
4
  const stylesCss = "*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #33b4ff #06C)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{display:block}:host([hidden]){display:none}.message{border-left-width:var(--tct-message-bar-width, var(--t-message-bar-width, var(--app-scale-1x, 5px)));border-left-style:solid;--comp-line-height:var(--tct-message-line-height, var(--t-message-line-height, var(--app-line-height, 1.428571429em)));display:grid;gap:var(--tct-scale-1, var(--app-scale-1x, 5px));align-items:flex-start;background:var(--tct-message-background, var(--tct-message-bg, var(--t-message-bg, var(--tct-gray-14, var(--t-gray-14, var(--tct-gray-l3, var(--app-gray-l3, #f2f2f2)))))));color:var(--tct-message-font-color, var(--t-message-font-color, inherit));box-shadow:var(--tct-message-box-shadow, var(--t-message-box-shadow, inherit));border-radius:var(--tct-message-border-radius, var(--t-message-border-radius, inherit))}.message:focus{box-shadow:var(--const-global-focus)}.message-icon{--comp-top-offset:calc(calc(var(--comp-line-height) - var(--comp-icon-size)) / 2);--tct-icon-size:var(--comp-icon-size);top:var(--comp-top-offset);margin-bottom:calc(var(--comp-top-offset) * -1)}.message-content{flex:1;line-height:var(--comp-line-height)}::slotted(ul){padding-left:var(--tct-scale-l3, var(--app-scale-3x, 15px))}:host(:not([appearance])),:host([appearance=standard]){margin:var(--tct-scale-l3, var(--app-scale-3x, 15px)) 0}:host(:not([appearance])) .message,:host([appearance=standard]) .message{--comp-icon-size:var(--tct-message-icon-size, var(--t-message-icon-size, 24px));--comp-padding:var(--tct-message-padding, var(--t-message-padding, var(--app-scale-3x, 15px)));grid-template-columns:var(--comp-icon-size) 1fr;padding:var(--comp-padding);padding-left:calc(var(--comp-padding) - var(--tct-scale-2, var(--app-scale-2x, 10px)));padding-bottom:calc(var(--comp-padding) - var(--tct-scale-1, var(--app-scale-1x, 5px)))}:host(:not([appearance])) ::slotted(ul),:host([appearance=standard]) ::slotted(ul){margin:var(--tct-scale-l3, var(--app-scale-3x, 15px)) 0}:host([appearance=minimal]){margin:0}:host([appearance=minimal]) .message{padding:var(--tct-message-minimal-padding, var(--t-message-minimal-padding, var(--app-scale-2x, 10px)));grid-template-columns:1fr}:host([appearance=minimal]) ::slotted(ul){margin:var(--tct-scale-1, var(--app-scale-1x, 5px)) 0}:host(:not([type])) .message,:host([type=info]) .message{border-left-color:var(--tct-stoplight-info, var(--const-stoplight-info, #0079c1))}:host(:not([type])) .message-icon,:host([type=info]) .message-icon{--tct-icon-stroke-primary:var(--tct-stoplight-info, var(--const-stoplight-info, #0079c1));--tct-icon-stroke-secondary:var(--tct-stoplight-info, var(--const-stoplight-info, #0079c1))}:host([type=success]) .message{border-left-color:var(--tct-stoplight-success, var(--const-stoplight-success, #0e8a00))}:host([type=success]) .message-icon{--tct-icon-stroke-primary:var(--tct-stoplight-success, var(--const-stoplight-success, #0e8a00));--tct-icon-stroke-secondary:var(--tct-stoplight-success, var(--const-stoplight-success, #0e8a00))}:host([type=warning]) .message{border-left-color:var(--tct-stoplight-warning, var(--const-stoplight-warning, #C35500))}:host([type=warning]) .message-icon{--tct-icon-stroke-primary:var(--tct-stoplight-warning, var(--const-stoplight-warning, #C35500));--tct-icon-stroke-secondary:var(--tct-stoplight-warning, var(--const-stoplight-warning, #C35500))}:host([type=error]) .message,:host([type=danger]) .message{border-left-color:var(--tct-stoplight-error, var(--const-stoplight-alert, #c30000))}:host([type=error]) .message-icon,:host([type=danger]) .message-icon{--tct-icon-stroke-primary:var(--tct-stoplight-error, var(--const-stoplight-alert, #c30000));--tct-icon-stroke-secondary:var(--tct-stoplight-error, var(--const-stoplight-alert, #c30000))}";
5
5
 
@@ -36,21 +36,22 @@ const Q2Message = class {
36
36
  const addAriaHiddenForAriaLive = isFirefox && this.presentToggle;
37
37
  const addDivForAriaLive = !isFirefox && this.presentToggle;
38
38
  const { description } = this;
39
- return (h("div", { tabindex: "-1", class: "message", role: description ? undefined : 'alert', "aria-live": description ? undefined : 'assertive', "aria-atomic": description ? undefined : 'true', "aria-relevant": description ? undefined : 'all', "test-id": "messageContainer" }, this.appearance === 'standard' ? generateIcon(this.type) : '', addDivForAriaLive && h("div", { class: "sr" }), h("div", { class: "message-content", "aria-hidden": addAriaHiddenForAriaLive ? 'true' : undefined }, h("slot", null))));
39
+ const messageLabel = loc(`tecton.element.message.type.${this.type ? this.type : 'info'}`);
40
+ return (h("div", { tabindex: "-1", class: "message", role: description ? undefined : 'alert', "aria-live": description ? undefined : 'assertive', "aria-atomic": description ? undefined : 'true', "aria-relevant": description ? undefined : 'all', "test-id": "messageContainer" }, this.appearance === 'standard' ? this.messageIcon(this.type) : '', addDivForAriaLive && h("div", { class: "sr" }), h("div", { class: "sr message-label" }, messageLabel), h("div", { class: "message-content", "aria-hidden": addAriaHiddenForAriaLive ? 'true' : undefined }, h("slot", null))));
41
+ }
42
+ messageIcon(type) {
43
+ const iconMap = {
44
+ success: 'success',
45
+ warning: 'warning',
46
+ danger: 'error',
47
+ error: 'error',
48
+ info: 'info',
49
+ };
50
+ const iconType = iconMap[type] || iconMap.info;
51
+ return (h("q2-icon", { type: iconType, class: "message-icon" }));
40
52
  }
41
53
  get hostElement() { return getElement(this); }
42
54
  };
43
- function generateIcon(type) {
44
- const iconMap = {
45
- success: 'success',
46
- warning: 'warning',
47
- danger: 'error',
48
- error: 'error',
49
- info: 'info',
50
- };
51
- const icon = iconMap[type] || iconMap.info;
52
- return (h("q2-icon", { type: icon, class: "message-icon" }));
53
- }
54
55
  Q2Message.style = stylesCss;
55
56
 
56
57
  export { Q2Message as q2_message };
@@ -1 +1 @@
1
- {"file":"q2-message.entry.js","mappings":";;;AAAA,MAAM,SAAS,GAAG,8yIAA8yI;;MCQnzI,SAAS;;;gBACmE,MAAM;sBAC7B,UAAU;uBACxB,KAAK;;;EAMrD,IAAI,SAAS;IACT,OAAOA,SAAc,EAAE,CAAC;GAC3B;EAED,gBAAgB;IACZ,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;GACnC;EAGD,MAAM,OAAO;IACT,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAC3B,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC;IACzC,IAAI,CAAC,SAAS;MAAE,OAAO;IACvB,SAAS,CAAC;MACN,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;KAC9B,CAAC,CAAC;GACN;EAGD,aAAa,CAAC,KAAiB;IAC3B,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC;MAAE,OAAO;IACzD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,CAAc,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;GAC9E;EAED,MAAM;IACF,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAC3B,MAAM,wBAAwB,GAAG,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC;IACjE,MAAM,iBAAiB,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC;IAC3D,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAC7B,QACI,WACI,QAAQ,EAAC,IAAI,EACb,KAAK,EAAC,SAAS,EACf,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,OAAO,eAC5B,WAAW,GAAG,SAAS,GAAG,WAAW,iBACnC,WAAW,GAAG,SAAS,GAAG,MAAM,mBAC9B,WAAW,GAAG,SAAS,GAAG,KAAK,aACtC,kBAAkB,IAEzB,IAAI,CAAC,UAAU,KAAK,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAC7D,iBAAiB,IAAI,WAAK,KAAK,EAAC,IAAI,GAAO,EAC5C,WACI,KAAK,EAAC,iBAAiB,iBACV,wBAAwB,GAAG,MAAM,GAAG,SAAS,IAE1D,eAAQ,CACN,CACJ,EACR;GACL;;;AAGL,SAAS,YAAY,CAAC,IAAY;EAC9B,MAAM,OAAO,GAAG;IACZ,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,OAAO;IACf,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;GACf,CAAC;EAEF,MAAM,IAAI,GAAW,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;EAEnD,QACI,eACI,IAAI,EAAE,IAAI,EACV,KAAK,EAAC,cAAc,GACtB,EACJ;AACN,CAAC;;;;;","names":["checkIfFirefox"],"sources":["./src/components/q2-message/styles.scss?tag=q2-message&encapsulation=shadow","./src/components/q2-message/index.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n display: block;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.message {\n border-left-width: #{var-list(var-prefixer(message-bar-width), --app-scale-1x, 5px)};\n border-left-style: solid;\n --comp-line-height: #{var-list(var-prefixer(message-line-height), --app-line-height, 1.428571429em)};\n display: grid;\n gap: var-list(--tct-scale-1, --app-scale-1x, 5px);\n align-items: flex-start;\n background: var-list(\n --tct-message-background,\n var-prefixer(message-bg),\n --tct-gray-14,\n --t-gray-14,\n --tct-gray-l3,\n --app-gray-l3,\n #f2f2f2\n );\n color: #{var-list(var-prefixer(message-font-color), inherit)};\n box-shadow: #{var-list(var-prefixer(message-box-shadow), inherit)};\n border-radius: #{var-list(var-prefixer(message-border-radius), inherit)};\n\n &:focus {\n box-shadow: var(--const-global-focus);\n }\n}\n\n.message-icon {\n --comp-top-offset: calc(calc(var(--comp-line-height) - var(--comp-icon-size)) / 2);\n --tct-icon-size: var(--comp-icon-size);\n top: var(--comp-top-offset);\n margin-bottom: calc(var(--comp-top-offset) * -1);\n}\n\n.message-content {\n flex: 1;\n line-height: var(--comp-line-height);\n}\n\n::slotted(ul) {\n padding-left: var-list(--tct-scale-l3, --app-scale-3x, 15px);\n}\n\n:host(:not([appearance])),\n:host([appearance='standard']) {\n margin: var-list(--tct-scale-l3, --app-scale-3x, 15px) 0;\n\n .message {\n --comp-icon-size: #{var-list(var-prefixer(message-icon-size), 24px)};\n --comp-padding: #{var-list(var-prefixer(message-padding), --app-scale-3x, 15px)};\n grid-template-columns: var(--comp-icon-size) 1fr;\n padding: var(--comp-padding);\n padding-left: calc(var(--comp-padding) - #{var-list(--tct-scale-2, --app-scale-2x, 10px)});\n padding-bottom: calc(var(--comp-padding) - #{var-list(--tct-scale-1, --app-scale-1x, 5px)});\n }\n\n ::slotted(ul) {\n margin: var-list(--tct-scale-l3, --app-scale-3x, 15px) 0;\n }\n}\n\n:host([appearance='minimal']) {\n margin: 0;\n\n .message {\n padding: var-list(var-prefixer(message-minimal-padding), --app-scale-2x, 10px);\n grid-template-columns: 1fr;\n }\n\n ::slotted(ul) {\n margin: var-list(--tct-scale-1, --app-scale-1x, 5px) 0;\n }\n}\n\n:host(:not([type])),\n:host([type='info']) {\n .message {\n border-left-color: var-list(--tct-stoplight-info, --const-stoplight-info, #0079c1);\n }\n\n .message-icon,\n .message-icon {\n --tct-icon-stroke-primary: #{var-list(--tct-stoplight-info, --const-stoplight-info, #0079c1)};\n --tct-icon-stroke-secondary: #{var-list(--tct-stoplight-info, --const-stoplight-info, #0079c1)};\n }\n}\n\n:host([type='success']) {\n .message {\n border-left-color: var-list(--tct-stoplight-success, --const-stoplight-success, #0e8a00);\n }\n\n .message-icon {\n --tct-icon-stroke-primary: #{var-list(--tct-stoplight-success, --const-stoplight-success, #0e8a00)};\n --tct-icon-stroke-secondary: #{var-list(--tct-stoplight-success, --const-stoplight-success, #0e8a00)};\n }\n}\n\n:host([type='warning']) {\n .message {\n border-left-color: var-list(--tct-stoplight-warning, --const-stoplight-warning, #C35500);\n }\n\n .message-icon {\n --tct-icon-stroke-primary: #{var-list(--tct-stoplight-warning, --const-stoplight-warning, #C35500)};\n --tct-icon-stroke-secondary: #{var-list(--tct-stoplight-warning, --const-stoplight-warning, #C35500)};\n }\n}\n\n:host([type='error']),\n:host([type='danger']) {\n .message {\n border-left-color: var-list(--tct-stoplight-error, --const-stoplight-alert, #c30000);\n }\n\n .message-icon,\n .message-icon {\n --tct-icon-stroke-primary: #{var-list(--tct-stoplight-error, --const-stoplight-alert, #c30000)};\n --tct-icon-stroke-secondary: #{var-list(--tct-stoplight-error, --const-stoplight-alert, #c30000)};\n }\n}\n","import { Component, Prop, h, Method, State, Element, Listen } from '@stencil/core';\nimport { isEventFromElement, isFirefox as checkIfFirefox, nextPaint, overrideFocus } from 'src/utils';\n\n@Component({\n tag: 'q2-message',\n shadow: true,\n styleUrl: 'styles.scss',\n})\nexport class Q2Message {\n @Prop({ reflect: true }) type: 'info' | 'error' | 'danger' | 'warning' | 'success' = 'info';\n @Prop({ reflect: true }) appearance: 'minimal' | 'standard' = 'standard';\n @Prop({ reflect: true }) description: boolean = false;\n\n @Element() hostElement: HTMLElement;\n\n @State() presentToggle: boolean;\n\n get isFirefox() {\n return checkIfFirefox();\n }\n\n componentDidLoad(): void {\n overrideFocus(this.hostElement);\n }\n\n @Method()\n async present() {\n const { isFirefox } = this;\n this.presentToggle = !this.presentToggle;\n if (!isFirefox) return;\n nextPaint(() => {\n this.presentToggle = false;\n });\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.hostElement.shadowRoot.querySelector<HTMLElement>('.message').focus();\n }\n\n render() {\n const { isFirefox } = this;\n const addAriaHiddenForAriaLive = isFirefox && this.presentToggle;\n const addDivForAriaLive = !isFirefox && this.presentToggle;\n const { description } = this;\n return (\n <div\n tabindex=\"-1\"\n class=\"message\"\n role={description ? undefined : 'alert'}\n aria-live={description ? undefined : 'assertive'}\n aria-atomic={description ? undefined : 'true'}\n aria-relevant={description ? undefined : 'all'}\n test-id=\"messageContainer\"\n >\n {this.appearance === 'standard' ? generateIcon(this.type) : ''}\n {addDivForAriaLive && <div class=\"sr\"></div>}\n <div\n class=\"message-content\"\n aria-hidden={addAriaHiddenForAriaLive ? 'true' : undefined}\n >\n <slot />\n </div>\n </div>\n );\n }\n}\n\nfunction generateIcon(type: string) {\n const iconMap = {\n success: 'success',\n warning: 'warning',\n danger: 'error',\n error: 'error',\n info: 'info',\n };\n\n const icon: string = iconMap[type] || iconMap.info;\n\n return (\n <q2-icon\n type={icon}\n class=\"message-icon\"\n />\n );\n}\n"],"version":3}
1
+ {"file":"q2-message.entry.js","mappings":";;;AAAA,MAAM,SAAS,GAAG,8yIAA8yI;;MCQnzI,SAAS;;;gBACmE,MAAM;sBAC7B,UAAU;uBACxB,KAAK;;;EAMrD,IAAI,SAAS;IACT,OAAOA,SAAc,EAAE,CAAC;GAC3B;EAED,gBAAgB;IACZ,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;GACnC;EAGD,MAAM,OAAO;IACT,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAC3B,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC;IACzC,IAAI,CAAC,SAAS;MAAE,OAAO;IACvB,SAAS,CAAC;MACN,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;KAC9B,CAAC,CAAC;GACN;EAGD,aAAa,CAAC,KAAiB;IAC3B,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC;MAAE,OAAO;IACzD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,CAAc,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;GAC9E;EAED,MAAM;IACF,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAC3B,MAAM,wBAAwB,GAAG,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC;IACjE,MAAM,iBAAiB,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC;IAC3D,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAC7B,MAAM,YAAY,GAAW,GAAG,CAAC,+BAA+B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,MAAM,EAAE,CAAC,CAAC;IAElG,QACI,WACI,QAAQ,EAAC,IAAI,EACb,KAAK,EAAC,SAAS,EACf,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,OAAO,eAC5B,WAAW,GAAG,SAAS,GAAG,WAAW,iBACnC,WAAW,GAAG,SAAS,GAAG,MAAM,mBAC9B,WAAW,GAAG,SAAS,GAAG,KAAK,aACtC,kBAAkB,IAEzB,IAAI,CAAC,UAAU,KAAK,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EACjE,iBAAiB,IAAI,WAAK,KAAK,EAAC,IAAI,GAAO,EAC5C,WAAK,KAAK,EAAC,kBAAkB,IAAE,YAAY,CAAO,EAClD,WACI,KAAK,EAAC,iBAAiB,iBACV,wBAAwB,GAAG,MAAM,GAAG,SAAS,IAE1D,eAAQ,CACN,CACJ,EACR;GACL;EAED,WAAW,CAAC,IAAY;IACpB,MAAM,OAAO,GAAG;MACZ,OAAO,EAAE,SAAS;MAClB,OAAO,EAAE,SAAS;MAClB,MAAM,EAAE,OAAO;MACf,KAAK,EAAE,OAAO;MACd,IAAI,EAAE,MAAM;KACf,CAAC;IAEF,MAAM,QAAQ,GAAW,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;IAEvD,QACI,eACI,IAAI,EAAE,QAAQ,EACd,KAAK,EAAC,cAAc,GACtB,EACJ;GACL;;;;;;;","names":["checkIfFirefox"],"sources":["./src/components/q2-message/styles.scss?tag=q2-message&encapsulation=shadow","./src/components/q2-message/index.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n display: block;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.message {\n border-left-width: #{var-list(var-prefixer(message-bar-width), --app-scale-1x, 5px)};\n border-left-style: solid;\n --comp-line-height: #{var-list(var-prefixer(message-line-height), --app-line-height, 1.428571429em)};\n display: grid;\n gap: var-list(--tct-scale-1, --app-scale-1x, 5px);\n align-items: flex-start;\n background: var-list(\n --tct-message-background,\n var-prefixer(message-bg),\n --tct-gray-14,\n --t-gray-14,\n --tct-gray-l3,\n --app-gray-l3,\n #f2f2f2\n );\n color: #{var-list(var-prefixer(message-font-color), inherit)};\n box-shadow: #{var-list(var-prefixer(message-box-shadow), inherit)};\n border-radius: #{var-list(var-prefixer(message-border-radius), inherit)};\n\n &:focus {\n box-shadow: var(--const-global-focus);\n }\n}\n\n.message-icon {\n --comp-top-offset: calc(calc(var(--comp-line-height) - var(--comp-icon-size)) / 2);\n --tct-icon-size: var(--comp-icon-size);\n top: var(--comp-top-offset);\n margin-bottom: calc(var(--comp-top-offset) * -1);\n}\n\n.message-content {\n flex: 1;\n line-height: var(--comp-line-height);\n}\n\n::slotted(ul) {\n padding-left: var-list(--tct-scale-l3, --app-scale-3x, 15px);\n}\n\n:host(:not([appearance])),\n:host([appearance='standard']) {\n margin: var-list(--tct-scale-l3, --app-scale-3x, 15px) 0;\n\n .message {\n --comp-icon-size: #{var-list(var-prefixer(message-icon-size), 24px)};\n --comp-padding: #{var-list(var-prefixer(message-padding), --app-scale-3x, 15px)};\n grid-template-columns: var(--comp-icon-size) 1fr;\n padding: var(--comp-padding);\n padding-left: calc(var(--comp-padding) - #{var-list(--tct-scale-2, --app-scale-2x, 10px)});\n padding-bottom: calc(var(--comp-padding) - #{var-list(--tct-scale-1, --app-scale-1x, 5px)});\n }\n\n ::slotted(ul) {\n margin: var-list(--tct-scale-l3, --app-scale-3x, 15px) 0;\n }\n}\n\n:host([appearance='minimal']) {\n margin: 0;\n\n .message {\n padding: var-list(var-prefixer(message-minimal-padding), --app-scale-2x, 10px);\n grid-template-columns: 1fr;\n }\n\n ::slotted(ul) {\n margin: var-list(--tct-scale-1, --app-scale-1x, 5px) 0;\n }\n}\n\n:host(:not([type])),\n:host([type='info']) {\n .message {\n border-left-color: var-list(--tct-stoplight-info, --const-stoplight-info, #0079c1);\n }\n\n .message-icon,\n .message-icon {\n --tct-icon-stroke-primary: #{var-list(--tct-stoplight-info, --const-stoplight-info, #0079c1)};\n --tct-icon-stroke-secondary: #{var-list(--tct-stoplight-info, --const-stoplight-info, #0079c1)};\n }\n}\n\n:host([type='success']) {\n .message {\n border-left-color: var-list(--tct-stoplight-success, --const-stoplight-success, #0e8a00);\n }\n\n .message-icon {\n --tct-icon-stroke-primary: #{var-list(--tct-stoplight-success, --const-stoplight-success, #0e8a00)};\n --tct-icon-stroke-secondary: #{var-list(--tct-stoplight-success, --const-stoplight-success, #0e8a00)};\n }\n}\n\n:host([type='warning']) {\n .message {\n border-left-color: var-list(--tct-stoplight-warning, --const-stoplight-warning, #C35500);\n }\n\n .message-icon {\n --tct-icon-stroke-primary: #{var-list(--tct-stoplight-warning, --const-stoplight-warning, #C35500)};\n --tct-icon-stroke-secondary: #{var-list(--tct-stoplight-warning, --const-stoplight-warning, #C35500)};\n }\n}\n\n:host([type='error']),\n:host([type='danger']) {\n .message {\n border-left-color: var-list(--tct-stoplight-error, --const-stoplight-alert, #c30000);\n }\n\n .message-icon,\n .message-icon {\n --tct-icon-stroke-primary: #{var-list(--tct-stoplight-error, --const-stoplight-alert, #c30000)};\n --tct-icon-stroke-secondary: #{var-list(--tct-stoplight-error, --const-stoplight-alert, #c30000)};\n }\n}\n","import { Component, Prop, h, Method, State, Element, Listen } from '@stencil/core';\nimport { isEventFromElement, isFirefox as checkIfFirefox, loc, nextPaint, overrideFocus } from 'src/utils';\n\n@Component({\n tag: 'q2-message',\n shadow: true,\n styleUrl: 'styles.scss',\n})\nexport class Q2Message {\n @Prop({ reflect: true }) type: 'info' | 'error' | 'danger' | 'warning' | 'success' = 'info';\n @Prop({ reflect: true }) appearance: 'minimal' | 'standard' = 'standard';\n @Prop({ reflect: true }) description: boolean = false;\n\n @Element() hostElement: HTMLElement;\n\n @State() presentToggle: boolean;\n\n get isFirefox() {\n return checkIfFirefox();\n }\n\n componentDidLoad(): void {\n overrideFocus(this.hostElement);\n }\n\n @Method()\n async present() {\n const { isFirefox } = this;\n this.presentToggle = !this.presentToggle;\n if (!isFirefox) return;\n nextPaint(() => {\n this.presentToggle = false;\n });\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.hostElement.shadowRoot.querySelector<HTMLElement>('.message').focus();\n }\n\n render() {\n const { isFirefox } = this;\n const addAriaHiddenForAriaLive = isFirefox && this.presentToggle;\n const addDivForAriaLive = !isFirefox && this.presentToggle;\n const { description } = this;\n const messageLabel: string = loc(`tecton.element.message.type.${this.type ? this.type : 'info'}`);\n\n return (\n <div\n tabindex=\"-1\"\n class=\"message\"\n role={description ? undefined : 'alert'}\n aria-live={description ? undefined : 'assertive'}\n aria-atomic={description ? undefined : 'true'}\n aria-relevant={description ? undefined : 'all'}\n test-id=\"messageContainer\"\n >\n {this.appearance === 'standard' ? this.messageIcon(this.type) : ''}\n {addDivForAriaLive && <div class=\"sr\"></div>}\n <div class=\"sr message-label\">{messageLabel}</div>\n <div\n class=\"message-content\"\n aria-hidden={addAriaHiddenForAriaLive ? 'true' : undefined}\n >\n <slot />\n </div>\n </div>\n );\n }\n\n messageIcon(type: string) {\n const iconMap = {\n success: 'success',\n warning: 'warning',\n danger: 'error',\n error: 'error',\n info: 'info',\n };\n\n const iconType: string = iconMap[type] || iconMap.info;\n\n return (\n <q2-icon\n type={iconType}\n class=\"message-icon\"\n />\n );\n }\n}\n"],"version":3}
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, c as createEvent, h, g as getElement } from './index-ebc7f269.js';
2
- import { l as loc, o as overrideFocus } from './index-35ff2881.js';
2
+ import { l as loc, o as overrideFocus } from './index-74a659a5.js';
3
3
 
4
4
  const q2MonthPickerCss = "*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #33b4ff #06C)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}.month-container{--comp-month-primary-background:var(--tct-btn-primary-background, var(--tct-btn-primary-bg, var(--t-btn-primary-bg, #2e2e2e)));--comp-month-primary-font-color:var(--tct-btn-primary-font-color, var(--t-btn-primary-font-color, var(--tct-white, var(--app-white, #ffffff))));--comp-month-primary-background:var(--tct-btn-secondary-background, var(--tct-btn-secondary-bg, var(--t-button-default-bg, #cccccc)));--comp-month-secondary-font-color:var(--tct-btn-secondary-font-color, var(--t-btn-secondary-font-color, var(--t-button-default-font-color, #2e2e2e)))}.month-container .navigation{display:flex;justify-content:space-between;flex-direction:row}.month-container .navigation .year-btn{padding:0 1rem;display:flex;align-items:center}.month-container .navigation .year-btn .year{margin-right:0.2rem}.month-container .navigation .year-btn .year-icon{--t-icon-stroke-width:2px;width:16px;height:16px;transition:all 0.3s ease-in-out}.month-container .navigation .year-btn .year-icon.on{transform:rotate(-180deg)}.month-container .navigation .month-controller{display:flex;align-items:center}.month-container .month-list{display:grid;grid-template-columns:auto auto auto}.month-container .month-list .month{display:flex;justify-content:center;align-items:center;padding:0.5rem 0}.month-container .month-list .month .month-button{border-radius:50%;aspect-ratio:1;width:50px;display:flex;justify-content:center;align-items:center}.month-container .month-list .month .month-button:hover{background:var(--comp-month-primary-background);color:var(--comp-month-secondary-font-color);cursor:pointer}.month-container .month-list .month .month-button:active,.month-container .month-list .month .month-button.active{background:var(--comp-month-primary-background);color:var(--comp-month-primary-font-color)}.month-container .today-label{padding:0.5rem 0;color:var(--tct-calendar-day-selected-outline-color, var(--t-calendar-day-selected-outline-color, var(--tct-stoplight-info, var(--const-stoplight-info, #0079c1))))}";
5
5
 
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, h, g as getElement, c as createEvent, H as Host } from './index-ebc7f269.js';
2
- import { c as createGuid, l as loc } from './index-35ff2881.js';
2
+ import { c as createGuid, l as loc } from './index-74a659a5.js';
3
3
 
4
4
  const stylesCss$1 = "*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #33b4ff #06C)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{display:block}.q2-optgroup-header{--comp-header-padding:var(--tct-scale-1, var(--app-scale-1x, 5px)) var(--tct-scale-2, var(--app-scale-2x, 10px));background:var(--tct-optgroup-header-background, var(--tct-optgroup-header-bg, var(--t-optgroup-header-bg, var(--tct-gray-13, var(--t-gray-13, var(--tct-gray-l2, var(--app-gray-l2, #e6e6e6)))))));color:var(--tct-optgroup-header-color, inherit);padding:var(--tct-optgroup-header-padding, var(--t-optgroup-header-padding, var(--comp-header-padding)));font-weight:var(--tct-optgroup-header-font-weight, var(--t-optgroup-header-font-weight, 600));text-transform:var(--tct-optgroup-header-text-transform, var(--t-optgroup-header-text-transform, uppercase));position:sticky;top:calc(var(--comp-multi-select-header-height, 0px) + var(--tct-optgroup-top, var(--t-optgroup-top, 0px)));z-index:5}";
5
5
 
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-ebc7f269.js';
2
- import { n as nextPaint, l as loc, o as overrideFocus, w as waitForNextPaint, i as isEventFromElement } from './index-35ff2881.js';
2
+ import { n as nextPaint, l as loc, o as overrideFocus, w as waitForNextPaint, i as isEventFromElement } from './index-74a659a5.js';
3
3
 
4
4
  const stylesCss = "*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #33b4ff #06C)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{position:relative;width:100%;display:block;line-height:var(--tct-option-list-line-height, var(--t-option-list-line-height, var(--app-line-height, 1.428571429em)))}.content{text-align:start}:host([is-sizeable]) .content{display:block;height:auto}";
5
5
 
@@ -1,7 +1,7 @@
1
1
  import { r as registerInstance, c as createEvent, h, g as getElement } from './index-ebc7f269.js';
2
- import { n as nextPaint, o as overrideFocus, i as isEventFromElement, l as loc } from './index-35ff2881.js';
2
+ import { n as nextPaint, o as overrideFocus, i as isEventFromElement, l as loc } from './index-74a659a5.js';
3
3
 
4
- const stylesCss = "*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #33b4ff #06C)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{text-align:right;display:block}:host([hidden]){display:none}.container{display:inline-flex;column-gap:var(--tct-pagination-column-gap, var(--t-pagination-column-gap, var(--app-scale-2x, 10px)));align-items:center;height:var(--tct-pagination-height, var(--t-pagination-height, 44px))}.btn-group{display:flex;gap:var(--tct-pagination-btn-gap, var(--t-pagination-btn-gap, 0))}.description,.controls{white-space:nowrap}.controls{display:grid;grid-template-columns:auto 50px auto;align-items:center;gap:var(--tct-pagination-controls-gap, var(--t-pagination-controls-gap, var(--app-scale-1x, 5px)))}.controls[hidden]{display:none}.input-wrapper{height:var(--tct-pagination-height, var(--t-pagination-height, 44px));display:flex;align-items:center}q2-btn{--tct-btn-border-radius:var(--tct-pagination-btn-border-radius, var(--t-pagination-btn-border-radius));--tct-btn-border:var(--tct-pagination-btn-border, var(--t-pagination-btn-border))}q2-icon{--tct-icon-size:var(--tct-pagination-icon-size, var(--t-pagination-icon-size, 12px));color:var(--tct-pagination-icon-color, var(--t-pagination-icon-color, var(--t-text, #4d4d4d)))}q2-input{--tct-input-margin-top:0;--tct-input-margin-bottom:0;--tct-input-height:var(--tct-pagination-input-height, var(--t-pagination-input-height, 30px));--tct-input-min-height:var(--tct-input-height);--tct-input-align:center}";
4
+ const stylesCss = "*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #33b4ff #06C)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{text-align:right;display:block;width:100%}:host([hidden]){display:none}.container{display:inline-flex;column-gap:var(--tct-pagination-column-gap, var(--t-pagination-column-gap, var(--app-scale-2x, 10px)));align-items:center;height:var(--tct-pagination-height, var(--t-pagination-height, 44px))}.btn-group{display:flex;gap:var(--tct-pagination-btn-gap, var(--t-pagination-btn-gap, 0))}.description,.controls{white-space:nowrap}.controls{display:grid;grid-template-columns:auto 50px auto;align-items:center;gap:var(--tct-pagination-controls-gap, var(--t-pagination-controls-gap, var(--app-scale-1x, 5px)))}.controls[hidden]{display:none}.input-wrapper{height:var(--tct-pagination-height, var(--t-pagination-height, 44px));display:flex;align-items:center}q2-btn{--tct-btn-border-radius:var(--tct-pagination-btn-border-radius, var(--t-pagination-btn-border-radius));--tct-btn-border:var(--tct-pagination-btn-border, var(--t-pagination-btn-border))}q2-icon{--tct-icon-size:var(--tct-pagination-icon-size, var(--t-pagination-icon-size, 12px));color:var(--tct-pagination-icon-color, var(--t-pagination-icon-color, var(--t-text, #4d4d4d)))}q2-input{--tct-input-margin-top:0;--tct-input-margin-bottom:0;--tct-input-height:var(--tct-pagination-input-height, var(--t-pagination-input-height, 30px));--tct-input-min-height:var(--tct-input-height);--tct-input-align:center}";
5
5
 
6
6
  const Q2Pagination = class {
7
7
  constructor(hostRef) {
@@ -43,23 +43,35 @@ const Q2Pagination = class {
43
43
  this.pages = undefined;
44
44
  this.recordsOnly = undefined;
45
45
  this.pagesOnly = undefined;
46
+ this.autoSize = true;
46
47
  this.isSmall = undefined;
47
48
  }
48
49
  ////////// LIFECYCLE HOOKS ////////
50
+ componentWillLoad() {
51
+ this.manageResizeObserver();
52
+ }
49
53
  componentDidLoad() {
50
- if (this.recordsOnly || this.pagesOnly)
51
- return;
52
54
  this.containerWidth = this.containerElement.clientWidth;
53
- this.resizeObserver = new ResizeObserver(() => this.checkSize());
54
- window.addEventListener('resize', this.checkSize);
55
- this.resizeObserver.observe(this.hostElement);
56
55
  overrideFocus(this.hostElement);
57
56
  }
58
57
  disconnectedCallback() {
59
- var _a;
60
- (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
61
- window.removeEventListener('resize', this.checkSize);
58
+ this.removeResizeObserver();
62
59
  }
60
+ ///////// OBSERVERS /////////
61
+ manageResizeObserver() {
62
+ if (this.autoSize && !this.recordsOnly && !this.pagesOnly) {
63
+ if (this.resizeObserver)
64
+ return;
65
+ this.resizeObserver = new ResizeObserver(() => this.checkSize());
66
+ this.resizeObserver.observe(this.hostElement);
67
+ window.addEventListener('resize', this.checkSize);
68
+ }
69
+ else {
70
+ this.isSmall = false;
71
+ this.removeResizeObserver();
72
+ }
73
+ }
74
+ ///////// HOST ELEMENT EVENTS /////////
63
75
  onHostElementFocus(event) {
64
76
  var _a;
65
77
  if (!isEventFromElement(event, this.hostElement))
@@ -72,6 +84,7 @@ const Q2Pagination = class {
72
84
  inputField.focus();
73
85
  }
74
86
  }
87
+ ///////// GETTERS /////////
75
88
  get isFullViewHidden() {
76
89
  return this.isSmall || this.recordsOnly || this.pagesOnly;
77
90
  }
@@ -99,7 +112,15 @@ const Q2Pagination = class {
99
112
  return pages;
100
113
  return Math.ceil(total / perPage);
101
114
  }
102
- ////////// OBSERVERS //////////
115
+ ///////// HELPERS /////////
116
+ removeResizeObserver() {
117
+ var _a;
118
+ if (this.resizeObserver) {
119
+ (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.unobserve(this.hostElement);
120
+ this.resizeObserver = null;
121
+ window.removeEventListener('resize', this.checkSize);
122
+ }
123
+ }
103
124
  render() {
104
125
  const { pagesOnly, isFullViewHidden, recordTypeWithDefault: recordType, totalPages, totalWithDefault: total, pageWithDefault: page, currentRange, } = this;
105
126
  const onFirstPage = page === 1;
@@ -122,6 +143,11 @@ const Q2Pagination = class {
122
143
  }), disabled: onLastPage, onClick: () => this.handlePageChange(page + 1), "test-id": "nextPageBtn", "hide-label": true }, h("q2-icon", { type: "chevron-right" })), h("q2-btn", { label: "tecton.element.pagination.goToLastPage", disabled: onLastPage, hidden: isFullViewHidden, onClick: () => this.handlePageChange(totalPages), "test-id": "lastPageBtn", "hide-label": true }, h("q2-icon", { type: "chevron-double-right" })))));
123
144
  }
124
145
  get hostElement() { return getElement(this); }
146
+ static get watchers() { return {
147
+ "recordsOnly": ["manageResizeObserver"],
148
+ "pagesOnly": ["manageResizeObserver"],
149
+ "autoSize": ["manageResizeObserver"]
150
+ }; }
125
151
  };
126
152
  Q2Pagination.style = stylesCss;
127
153
 
@@ -1 +1 @@
1
- {"file":"q2-pagination.entry.js","mappings":";;;AAAA,MAAM,SAAS,GAAG,y+DAAy+D;;MCQ9+D,YAAY;;;;IAoFrB,qBAAgB,GAAG,CAAC,IAAY;MAC5B,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;MACxC,IAAI,IAAI,GAAG,CAAC,EAAE;QACV,IAAI,GAAG,CAAC,CAAC;OACZ;WAAM,IAAI,IAAI,GAAG,UAAU,EAAE;QAC1B,IAAI,GAAG,UAAU,CAAC;OACrB;MAED,IAAI,UAAU,CAAC,KAAK,KAAK,GAAG,IAAI,EAAE;QAAE,UAAU,CAAC,KAAK,GAAG,GAAG,IAAI,EAAE,CAAC;MAEjE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;OACpB;MAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;KAC9B,CAAC;IAEF,cAAS,GAAG;MACR,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;MAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,WAAW,CAAC;MACpE,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC;MAC7B,IAAI,aAAa;QAAE,OAAO;MAE1B,SAAS,CAAC;QACN,MAAM,2BAA2B,GAAG,IAAI,CAAC,cAAc,KAAK,gBAAgB,CAAC,WAAW,CAAC;QACzF,IAAI,2BAA2B;UAAE,OAAO;QACxC,IAAI,CAAC,cAAc,GAAG,gBAAgB,CAAC,WAAW,CAAC;QACnD,IAAI,CAAC,SAAS,EAAE,CAAC;OACpB,CAAC,CAAC;KACN,CAAC;;;;;;;;;;;EA3FF,gBAAgB;IACZ,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS;MAAE,OAAO;IAE/C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC;IACxD,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACjE,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAClD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE9C,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;GACnC;EAED,oBAAoB;;IAChB,MAAA,IAAI,CAAC,cAAc,0CAAE,UAAU,EAAE,CAAC;IAClC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;GACxD;EAGD,kBAAkB,CAAC,KAAK;;IACpB,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC;MAAE,OAAO;IACzD,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAChE,IAAI,gBAAgB,EAAE;MAClB,MAAA,gBAAgB,CAAC,aAAa,CAAc,wBAAwB,CAAC,0CAAE,KAAK,EAAE,CAAC;KAClF;SAAM;MACH,UAAU,CAAC,KAAK,EAAE,CAAC;KACtB;GACJ;EAED,IAAI,gBAAgB;IAChB,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC;GAC7D;EAED,IAAI,eAAe;IACf,OAAO,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;GACzB;EAED,IAAI,kBAAkB;IAClB,OAAO,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;GAC7B;EAED,IAAI,gBAAgB;IAChB,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;GAC1B;EAED,IAAI,qBAAqB;IACrB,OAAO,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC,6CAA6C,CAAC,CAAC;GAChF;EAED,IAAI,YAAY;IACZ,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAC7F,MAAM,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5C,OAAO,GAAG,KAAK,MAAM,GAAG,EAAE,CAAC;GAC9B;EAED,IAAI,UAAU;IACV,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAExF,IAAI,SAAS,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;MAAE,OAAO,KAAK,CAAC;IAErE,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC;GACrC;;EAmCD,MAAM;IACF,MAAM,EACF,SAAS,EACT,gBAAgB,EAChB,qBAAqB,EAAE,UAAU,EACjC,UAAU,EACV,gBAAgB,EAAE,KAAK,EACvB,eAAe,EAAE,IAAI,EACrB,YAAY,GACf,GAAG,IAAI,CAAC;IACT,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,CAAC;IAC/B,MAAM,UAAU,GAAG,IAAI,KAAK,UAAU,CAAC;IAEvC,QACI,WACI,KAAK,EAAC,WAAW,EACjB,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC,gBAC3B,GAAG,CAAC,iCAAiC,CAAC,IAElD,WACI,KAAK,EAAC,aAAa,aACX,aAAa,IAEpB,SAAS;QACJ,GAAG,CAAC,iCAAiC,EAAE;QACnC,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,UAAU;OACpB,CAAC;QACF,GAAG,CAAC,uCAAuC,EAAE;QACzC,KAAK,EAAE,YAAY;QACnB,UAAU,EAAE,UAAU,CAAC,WAAW,EAAE;QACpC,KAAK,EAAE,KAAK,CAAC,cAAc,EAAE;OAChC,CAAC,CACN,EACN,WAAK,KAAK,EAAC,WAAW,IAClB,cACI,KAAK,EAAE,GAAG,CAAC,yCAAyC,CAAC,EACrD,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAC/B,cAAc,wBAGtB,eAAS,IAAI,EAAC,qBAAqB,GAAG,CACjC,EACT,cACI,KAAK,EAAE,GAAG,CAAC,qCAAqC,EAAE;QAC9C,IAAI,EAAE,IAAI,GAAG,CAAC;QACd,KAAK,EAAE,UAAU;OACpB,CAAC,EACF,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,CAAC,aACtC,aAAa,wBAGrB,eAAS,IAAI,EAAC,cAAc,GAAG,CAC1B,CACP,EACN,WACI,KAAK,EAAC,UAAU,EAChB,MAAM,EAAE,gBAAgB,aAChB,UAAU,IAElB,2BAAkB,MAAM,IAAE,GAAG,CAAC,gCAAgC,CAAC,CAAQ,EACvE,WACI,KAAK,EAAC,eAAe,EACrB,OAAO,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,IAErE,gBACI,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,GAAG,IAAI,EAAE,EAChB,GAAG,EAAE,CAAC,EACN,GAAG,EAAE,IAAI,CAAC,UAAU,EACpB,SAAS,QACT,QAAQ,QACR,KAAK,EAAE,GAAG,GAAG,CAAC,gCAAgC,CAAC,KAAK,GAAG,CACnD,mCAAmC,EACnC,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAChC,GAAG,EACJ,QAAQ,EAAE,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,aACpD,WAAW,EACnB,OAAO,EAAC,MAAM,EACd,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,GACzB,CACV,EACN,2BAAkB,MAAM,IACnB,GAAG,CAAC,mCAAmC,EAAE,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC,CACrE,CACL,EACN,WAAK,KAAK,EAAC,WAAW,IAClB,cACI,KAAK,EAAE,GAAG,CAAC,qCAAqC,EAAE;QAC9C,IAAI,EAAE,IAAI,GAAG,CAAC;QACd,KAAK,EAAE,UAAU;OACpB,CAAC,EACF,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,CAAC,aACtC,aAAa,wBAGrB,eAAS,IAAI,EAAC,eAAe,GAAG,CAC3B,EACT,cACI,KAAK,EAAC,wCAAwC,EAC9C,QAAQ,EAAE,UAAU,EACpB,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,aACxC,aAAa,wBAGrB,eAAS,IAAI,EAAC,sBAAsB,GAAG,CAClC,CACP,CACJ,EACR;GACL;;;;;;;","names":[],"sources":["./src/components/q2-pagination/styles.scss?tag=q2-pagination&encapsulation=shadow","./src/components/q2-pagination/index.tsx"],"sourcesContent":["@import '../../styles/host';\n@import '../../styles/functions';\n\n:host {\n text-align: right;\n display: block;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.container {\n display: inline-flex;\n column-gap: var-list(var-prefixer(pagination-column-gap), --app-scale-2x, 10px);\n align-items: center;\n height: var-list(var-prefixer(pagination-height), 44px);\n}\n\n.btn-group {\n display: flex;\n gap: var-list(var-prefixer(pagination-btn-gap), 0);\n}\n\n.description,\n.controls {\n white-space: nowrap;\n}\n\n.controls {\n display: grid;\n grid-template-columns: auto 50px auto;\n align-items: center;\n gap: var-list(var-prefixer(pagination-controls-gap), --app-scale-1x, 5px);\n\n &[hidden] {\n display: none;\n }\n}\n\n.input-wrapper {\n height: var-list(var-prefixer(pagination-height), 44px);\n display: flex;\n align-items: center;\n}\n\nq2-btn {\n --tct-btn-border-radius: #{var-list(var-prefixer(pagination-btn-border-radius))};\n --tct-btn-border: #{var-list(var-prefixer(pagination-btn-border))};\n}\n\nq2-icon {\n --tct-icon-size: #{var-list(var-prefixer(pagination-icon-size), 12px)};\n color: var-list(var-prefixer(pagination-icon-color), --t-text, #4d4d4d);\n}\n\nq2-input {\n --tct-input-margin-top: 0;\n --tct-input-margin-bottom: 0;\n --tct-input-height: #{var-list(var-prefixer(pagination-input-height), 30px)};\n --tct-input-min-height: var(--tct-input-height);\n --tct-input-align: center;\n}\n","import { Component, State, Prop, h, ComponentInterface, 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\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\n componentDidLoad(): void {\n if (this.recordsOnly || this.pagesOnly) return;\n\n this.containerWidth = this.containerElement.clientWidth;\n this.resizeObserver = new ResizeObserver(() => this.checkSize());\n window.addEventListener('resize', this.checkSize);\n this.resizeObserver.observe(this.hostElement);\n\n overrideFocus(this.hostElement);\n }\n\n disconnectedCallback() {\n this.resizeObserver?.disconnect();\n window.removeEventListener('resize', this.checkSize);\n }\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 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 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 ////////// OBSERVERS //////////\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"],"version":3}
1
+ {"file":"q2-pagination.entry.js","mappings":"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","names":[],"sources":["./src/components/q2-pagination/styles.scss?tag=q2-pagination&encapsulation=shadow","./src/components/q2-pagination/index.tsx"],"sourcesContent":["@import '../../styles/host';\n@import '../../styles/functions';\n\n:host {\n text-align: right;\n display: block;\n width: 100%;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.container {\n display: inline-flex;\n column-gap: var-list(var-prefixer(pagination-column-gap), --app-scale-2x, 10px);\n align-items: center;\n height: var-list(var-prefixer(pagination-height), 44px);\n}\n\n.btn-group {\n display: flex;\n gap: var-list(var-prefixer(pagination-btn-gap), 0);\n}\n\n.description,\n.controls {\n white-space: nowrap;\n}\n\n.controls {\n display: grid;\n grid-template-columns: auto 50px auto;\n align-items: center;\n gap: var-list(var-prefixer(pagination-controls-gap), --app-scale-1x, 5px);\n\n &[hidden] {\n display: none;\n }\n}\n\n.input-wrapper {\n height: var-list(var-prefixer(pagination-height), 44px);\n display: flex;\n align-items: center;\n}\n\nq2-btn {\n --tct-btn-border-radius: #{var-list(var-prefixer(pagination-btn-border-radius))};\n --tct-btn-border: #{var-list(var-prefixer(pagination-btn-border))};\n}\n\nq2-icon {\n --tct-icon-size: #{var-list(var-prefixer(pagination-icon-size), 12px)};\n color: var-list(var-prefixer(pagination-icon-color), --t-text, #4d4d4d);\n}\n\nq2-input {\n --tct-input-margin-top: 0;\n --tct-input-margin-bottom: 0;\n --tct-input-height: #{var-list(var-prefixer(pagination-input-height), 30px)};\n --tct-input-min-height: var(--tct-input-height);\n --tct-input-align: center;\n}\n","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"],"version":3}
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, c as createEvent, h, g as getElement } from './index-ebc7f269.js';
2
- import { r as resizeIframe, o as overrideFocus, l as loc, i as isEventFromElement } from './index-35ff2881.js';
2
+ import { r as resizeIframe, o as overrideFocus, l as loc, i as isEventFromElement } from './index-74a659a5.js';
3
3
  import { s as shouldShowActionSheet, a as showActionSheetList } from './action-sheet-bfcbe154.js';
4
4
 
5
5
  const stylesCss = "*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #33b4ff #06C)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{display:inline-block;position:relative;line-height:0}:host(:not(:last-child)){margin-inline-end:var(--tct-pill-margin, var(--t-pill-margin, var(--app-scale-2x, 10px)))}q2-popover,.btn-wrapper{--comp-pill-min-height:var(--tct-pill-min-height, var(--t-pill-min-height, 44px));--comp-pill-btn-height:var(--tct-pill-btn-height, var(--t-pill-btn-height, 30px))}.btn-wrapper{--comp-pill-btn-border-width:var(--tct-pill-btn-border-width, var(--t-pill-btn-border-width, 2px));--comp-close-size:0px;--comp-btn-background:var(--tct-pill-btn-background, var(--t-pill-btn-background, var(--t-base, #ffffff)));--comp-hover-btn-background:var(--tct-pill-hover-btn-background, var(--t-pill-hover-btn-background, var(--t-gray-13, #e6e6e6)));--comp-btn-padding:var(--tct-pill-btn-padding-inline, var(--t-pill-btn-padding-inline, var(--app-scale-3x, 15px)));--comp-btn-color:var(--tct-pill-btn-color, var(--t-pill-btn-color, var(--t-gray-3, #262626)));--comp-active-btn-color:var(--comp-btn-background);--comp-active-btn-background:var(--tct-pill-active-btn-background, var(--t-pill-active-btn-background, var(--t-gray-7, #666666)));--comp-active-btn-border-color:var(--tct-pill-active-btn-border-color, var(--t-pill-active-btn-border-color, var(--t-gray-7, #666666)));--comp-hover-active-btn-background:var(--tct-pill-active-btn-background, var(--t-pill-active-btn-background, var(--t-gray-6, #4d4d4d)));--comp-hover-active-btn-border-color:var(--tct-pill-active-btn-background, var(--t-pill-active-btn-background, var(--t-gray-6, #4d4d4d)));position:relative}:host(:not(:empty)) .btn-wrapper,.btn-wrapper.has-icon{--comp-close-size:var(--comp-pill-btn-height)}:host([active]) .btn-wrapper{--comp-btn-color:var(--tct-pill-active-btn-color, var(--t-pill-active-btn-color, var(--t-base, #ffffff)))}:host([theme=primary]) .btn-wrapper{--comp-active-btn-background:var(--tct-pill-primary-active-background, var(--t-primary-l5, #61c4ff));--comp-active-btn-color:var(--tct-pill-primary-active-font-color, var(--t-primary-text, #ffffff));--comp-active-btn-border-color:var(--tct-pill-primary-active-border-color, var(--t-primary-l5, #61c4ff));--comp-hover-active-btn-background:var(--tct-pill-primary-active-hover-background, var(--t-primary-l3, #21acff));--comp-hover-active-btn-border-color:var(--tct-pill-primary-active-hover-border-color, var(--t-primary-l3, #21acff))}:host([theme=secondary]) .btn-wrapper{--comp-active-btn-background:var(--tct-pill-secondary-active-background, var(--t-secondary-l5, #d9e1e6));--comp-active-btn-color:var(--tct-pill-secondary-active-font-color, var(--t-secondary-text, #141414));--comp-active-btn-border-color:var(--tct-pill-secondary-active-border-color, var(--t-secondary-l5, #d9e1e6));--comp-hover-active-btn-background:var(--tct-pill-secondary-active-hover-background, var(--t-secondary-l3, #c9d5db));--comp-hover-active-btn-border-color:var(--tct-pill-secondary-active-hover-border-color, var(--t-secondary-l3, #c9d5db))}:host([theme=tertiary]) .btn-wrapper{--comp-active-btn-background:var(--tct-pill-tertiary-active-background, var(--t-tertiary-l5, #f4fafe));--comp-active-btn-color:var(--tct-pill-tertiary-active-font-color, var(--t-tertiary-text, #141414));--comp-active-btn-border-color:var(--tct-pill-tertiary-active-border-color, var(--t-tertiary-l5, #f4fafe));--comp-hover-active-btn-background:var(--tct-pill-tertiary-active-hover-background, var(--t-tertiary-l3, #eff8fd));--comp-hover-active-btn-border-color:var(--tct-pill-tertiary-active-hover-border-color, var(--t-tertiary-l3, #eff8fd))}.btn-height-wrapper{height:var(--comp-pill-min-height);display:flex;align-items:center;cursor:pointer}.btn-height-wrapper:focus{box-shadow:none}:host([disabled]) .btn-height-wrapper{cursor:not-allowed}.btn-close,.btn-primary{cursor:pointer;height:var(--comp-pill-btn-height);border-style:solid;border-radius:var(--tct-pill-btn-border-radius, var(--t-pill-btn-border-radius, 30px));transition-property:background, color, padding, width, opacity;transition:var(--tct-pill-btn-tween, var(--t-pill-btn-tween, var(--app-tween-1, 0.2s ease)))}:host([disabled]) .btn-close,:host([disabled]) .btn-primary,:host([disabled]) q2-icon{opacity:var(--tct-pill-disabled-opacity, var(--t-pill-disabled-opacity, var(--tct-disabled-opacity, var(--app-disabled-opacity, 0.4))));cursor:not-allowed}.btn-primary{background:var(--comp-btn-background);border-width:var(--comp-pill-btn-border-width);border-color:var(--tct-pill-btn-border-color, var(--t-pill-btn-border-color, var(--t-a11y-gray-color-AA, #949494)));padding-inline:var(--comp-btn-padding);padding-right:calc(var(--comp-btn-padding) + var(--comp-close-size));font-size:var(--tct-pill-btn-font-size, var(--t-pill-btn-font-size, var(--app-font-size, 14px)));color:var(--comp-btn-color);display:block;width:100%;text-align:start}.btn-primary:focus,.btn-primary:hover{background:var(--comp-hover-btn-background)}:host(:not(:empty)) .btn-primary,.has-icon .btn-primary{padding-right:calc(var(--tct-pill-icon-gap, var(--t-pill-icon-gap, var(--app-scale-1x, 5px))) + var(--comp-close-size))}.has-options .btn-primary{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:var(--tct-pill-max-width, var(--t-pill-max-width, 200px))}:host([active]) .btn-primary{background:var(--comp-active-btn-background);border-color:var(--comp-active-btn-border-color);color:var(--comp-active-btn-color)}:host([active]) .btn-primary:focus,:host([active]) .btn-primary:hover{background:var(--comp-hover-active-btn-background);border-color:var(--comp-hover-active-btn-border-color)}.btn-close{background:transparent;border-color:transparent;border-width:var(--comp-pill-btn-border-width);width:var(--comp-close-size);height:var(--comp-close-size);padding:0;border:0;display:inline-flex;justify-content:center;align-items:center;position:absolute;right:0;top:50%;transform:translateY(-50%);opacity:0}:host([active]) .btn-close{color:var(--comp-active-btn-color)}:host(:not(:empty)) .btn-close,.has-icon .btn-close{opacity:1}q2-icon{--t-icon-stroke-primary:currentColor;width:var(--tct-pill-icon-size, var(--t-pill-icon-size, 14px));height:var(--tct-pill-icon-size, var(--t-pill-icon-size, 14px));transition-property:transform;transition:var(--tct-pill-btn-tween, var(--t-pill-btn-tween, var(--app-tween-1, 0.2s ease)))}div.btn-close{pointer-events:none}:host([open]) div.btn-close q2-icon{transform:rotate(180deg)}:host([active]) button.btn-close:focus,:host([active]) button.btn-close:hover{background:var(--tct-pill-hover-close-btn-background, var(--t-pill-hover-close-btn-background, var(--t-top-a1, rgba(13, 13, 13, 0.35))));border-color:var(--tct-pill-hover-close-btn-border-color, var(--t-pill-hover-close-btn-border-color, var(--t-top-a1, rgba(13, 13, 13, 0.35))))}q2-popover{top:calc(var(--comp-pill-min-height) - (var(--comp-pill-min-height) - var(--comp-pill-btn-height)) / 2)}";
@@ -152,9 +152,9 @@ const Q2Pill = class {
152
152
  get buttonContent() {
153
153
  const { label, selectedOptions, selectedOptionElements, optionCount } = this;
154
154
  if (!optionCount || selectedOptionElements.length === 0)
155
- return label;
155
+ return loc(label);
156
156
  else if (selectedOptionElements.length === 1)
157
- return selectedOptionElements[0].display;
157
+ return loc(selectedOptionElements[0].display);
158
158
  return loc('tecton.element.pill.activeCount', { count: selectedOptions.length });
159
159
  }
160
160
  get truncatedButtonContent() {
@@ -1 +1 @@
1
- {"file":"q2-pill.entry.js","mappings":"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","names":[],"sources":["./src/components/q2-pill/styles.scss?tag=q2-pill&encapsulation=shadow","./src/components/q2-pill/index.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n display: inline-block;\n position: relative;\n line-height: 0;\n}\n\n:host(:not(:last-child)) {\n margin-inline-end: var-list(var-prefixer(pill-margin), --app-scale-2x, 10px);\n}\n\nq2-popover,\n.btn-wrapper {\n --comp-pill-min-height: #{var-list(var-prefixer(pill-min-height), 44px)};\n --comp-pill-btn-height: #{var-list(var-prefixer(pill-btn-height), 30px)};\n}\n\n.btn-wrapper {\n --comp-pill-btn-border-width: #{var-list(var-prefixer(pill-btn-border-width), 2px)};\n --comp-close-size: 0px;\n --comp-btn-background: #{var-list(var-prefixer(pill-btn-background), --t-base, #ffffff)};\n --comp-hover-btn-background: #{var-list(var-prefixer(pill-hover-btn-background), --t-gray-13, #e6e6e6)};\n --comp-btn-padding: #{var-list(var-prefixer(pill-btn-padding-inline), --app-scale-3x, 15px)};\n --comp-btn-color: #{var-list(var-prefixer(pill-btn-color), --t-gray-3, #262626)};\n --comp-active-btn-color: var(--comp-btn-background);\n --comp-active-btn-background: #{var-list(var-prefixer(pill-active-btn-background), --t-gray-7, #666666)};\n --comp-active-btn-border-color: #{var-list(var-prefixer(pill-active-btn-border-color), --t-gray-7, #666666)};\n --comp-hover-active-btn-background: #{var-list(var-prefixer(pill-active-btn-background), --t-gray-6, #4d4d4d)};\n --comp-hover-active-btn-border-color: #{var-list(var-prefixer(pill-active-btn-background), --t-gray-6, #4d4d4d)};\n\n position: relative;\n\n :host(:not(:empty)) &,\n &.has-icon {\n --comp-close-size: var(--comp-pill-btn-height);\n }\n\n :host([active]) & {\n --comp-btn-color: #{var-list(var-prefixer(pill-active-btn-color), --t-base, #ffffff)};\n }\n\n :host([theme='primary']) & {\n --comp-active-btn-background: #{var-list(--tct-pill-primary-active-background, --t-primary-l5, #61c4ff)};\n --comp-active-btn-color: #{var-list(--tct-pill-primary-active-font-color, --t-primary-text, #ffffff)};\n --comp-active-btn-border-color: #{var-list(--tct-pill-primary-active-border-color, --t-primary-l5, #61c4ff)};\n --comp-hover-active-btn-background: #{var-list(\n --tct-pill-primary-active-hover-background,\n --t-primary-l3,\n #21acff\n )};\n --comp-hover-active-btn-border-color: #{var-list(\n --tct-pill-primary-active-hover-border-color,\n --t-primary-l3,\n #21acff\n )};\n }\n\n :host([theme='secondary']) & {\n --comp-active-btn-background: #{var-list(--tct-pill-secondary-active-background, --t-secondary-l5, #d9e1e6)};\n --comp-active-btn-color: #{var-list(--tct-pill-secondary-active-font-color, --t-secondary-text, #141414)};\n --comp-active-btn-border-color: #{var-list(--tct-pill-secondary-active-border-color, --t-secondary-l5, #d9e1e6)};\n --comp-hover-active-btn-background: #{var-list(\n --tct-pill-secondary-active-hover-background,\n --t-secondary-l3,\n #c9d5db\n )};\n --comp-hover-active-btn-border-color: #{var-list(\n --tct-pill-secondary-active-hover-border-color,\n --t-secondary-l3,\n #c9d5db\n )};\n }\n\n :host([theme='tertiary']) & {\n --comp-active-btn-background: #{var-list(--tct-pill-tertiary-active-background, --t-tertiary-l5, #f4fafe)};\n --comp-active-btn-color: #{var-list(--tct-pill-tertiary-active-font-color, --t-tertiary-text, #141414)};\n --comp-active-btn-border-color: #{var-list(--tct-pill-tertiary-active-border-color, --t-tertiary-l5, #f4fafe)};\n --comp-hover-active-btn-background: #{var-list(\n --tct-pill-tertiary-active-hover-background,\n --t-tertiary-l3,\n #eff8fd\n )};\n --comp-hover-active-btn-border-color: #{var-list(\n --tct-pill-tertiary-active-hover-border-color,\n --t-tertiary-l3,\n #eff8fd\n )};\n }\n}\n\n.btn-height-wrapper {\n height: var(--comp-pill-min-height);\n display: flex;\n align-items: center;\n cursor: pointer;\n &:focus {\n box-shadow: none;\n }\n\n :host([disabled]) & {\n cursor: not-allowed;\n }\n}\n\n.btn-close,\n.btn-primary {\n cursor: pointer;\n height: var(--comp-pill-btn-height);\n border-style: solid;\n border-radius: var-list(var-prefixer(pill-btn-border-radius), 30px);\n transition-property: background, color, padding, width, opacity;\n transition: var-list(var-prefixer(pill-btn-tween), --app-tween-1, unquote('0.2s ease'));\n}\n\n.btn-close,\n.btn-primary,\nq2-icon {\n :host([disabled]) & {\n opacity: var-list(var-prefixer(pill-disabled-opacity), --tct-disabled-opacity, --app-disabled-opacity, 0.4);\n cursor: not-allowed;\n }\n}\n\n.btn-primary {\n background: var(--comp-btn-background);\n border-width: var-list(--comp-pill-btn-border-width);\n border-color: var-list(var-prefixer(pill-btn-border-color), --t-a11y-gray-color-AA, #949494);\n padding-inline: var(--comp-btn-padding);\n padding-right: calc(var(--comp-btn-padding) + var(--comp-close-size));\n font-size: var-list(var-prefixer(pill-btn-font-size), --app-font-size, 14px);\n color: var(--comp-btn-color);\n display: block;\n width: 100%;\n text-align: start;\n\n &:focus,\n &:hover {\n background: var(--comp-hover-btn-background);\n }\n\n :host(:not(:empty)) &,\n .has-icon & {\n padding-right: calc(#{var-list(var-prefixer(pill-icon-gap), --app-scale-1x, 5px)} + var(--comp-close-size));\n }\n\n .has-options & {\n @include line-clamp(1);\n max-width: var-list(var-prefixer(pill-max-width), 200px);\n }\n\n :host([active]) & {\n background: var(--comp-active-btn-background);\n border-color: var(--comp-active-btn-border-color);\n color: var(--comp-active-btn-color);\n\n &:focus,\n &:hover {\n background: var(--comp-hover-active-btn-background);\n border-color: var(--comp-hover-active-btn-border-color);\n }\n }\n}\n\n.btn-close {\n background: transparent;\n border-color: transparent;\n border-width: var(--comp-pill-btn-border-width);\n width: var(--comp-close-size);\n height: var(--comp-close-size);\n padding: 0;\n border: 0;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n position: absolute;\n right: 0;\n top: 50%;\n transform: translateY(-50%);\n opacity: 0;\n :host([active]) & {\n color: var(--comp-active-btn-color);\n }\n\n :host(:not(:empty)) &,\n .has-icon & {\n opacity: 1;\n }\n}\n\nq2-icon {\n --t-icon-stroke-primary: currentColor;\n width: var-list(var-prefixer(pill-icon-size), 14px);\n height: var-list(var-prefixer(pill-icon-size), 14px);\n transition-property: transform;\n transition: var-list(var-prefixer(pill-btn-tween), --app-tween-1, unquote('0.2s ease'));\n}\n\ndiv.btn-close {\n pointer-events: none;\n\n :host([open]) & q2-icon {\n transform: rotate(180deg);\n }\n}\n\nbutton.btn-close {\n :host([active]) & {\n &:focus,\n &:hover {\n background: var-list(var-prefixer(pill-hover-close-btn-background), --t-top-a1, rgba(13, 13, 13, 0.35));\n border-color: var-list(var-prefixer(pill-hover-close-btn-border-color), --t-top-a1, rgba(13, 13, 13, 0.35));\n }\n }\n}\n\nq2-popover {\n top: calc(var(--comp-pill-min-height) - calc(calc(var(--comp-pill-min-height) - var(--comp-pill-btn-height)) / 2));\n}\n","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 label;\n else if (selectedOptionElements.length === 1) return 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"],"version":3}
1
+ {"file":"q2-pill.entry.js","mappings":"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","names":[],"sources":["./src/components/q2-pill/styles.scss?tag=q2-pill&encapsulation=shadow","./src/components/q2-pill/index.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n display: inline-block;\n position: relative;\n line-height: 0;\n}\n\n:host(:not(:last-child)) {\n margin-inline-end: var-list(var-prefixer(pill-margin), --app-scale-2x, 10px);\n}\n\nq2-popover,\n.btn-wrapper {\n --comp-pill-min-height: #{var-list(var-prefixer(pill-min-height), 44px)};\n --comp-pill-btn-height: #{var-list(var-prefixer(pill-btn-height), 30px)};\n}\n\n.btn-wrapper {\n --comp-pill-btn-border-width: #{var-list(var-prefixer(pill-btn-border-width), 2px)};\n --comp-close-size: 0px;\n --comp-btn-background: #{var-list(var-prefixer(pill-btn-background), --t-base, #ffffff)};\n --comp-hover-btn-background: #{var-list(var-prefixer(pill-hover-btn-background), --t-gray-13, #e6e6e6)};\n --comp-btn-padding: #{var-list(var-prefixer(pill-btn-padding-inline), --app-scale-3x, 15px)};\n --comp-btn-color: #{var-list(var-prefixer(pill-btn-color), --t-gray-3, #262626)};\n --comp-active-btn-color: var(--comp-btn-background);\n --comp-active-btn-background: #{var-list(var-prefixer(pill-active-btn-background), --t-gray-7, #666666)};\n --comp-active-btn-border-color: #{var-list(var-prefixer(pill-active-btn-border-color), --t-gray-7, #666666)};\n --comp-hover-active-btn-background: #{var-list(var-prefixer(pill-active-btn-background), --t-gray-6, #4d4d4d)};\n --comp-hover-active-btn-border-color: #{var-list(var-prefixer(pill-active-btn-background), --t-gray-6, #4d4d4d)};\n\n position: relative;\n\n :host(:not(:empty)) &,\n &.has-icon {\n --comp-close-size: var(--comp-pill-btn-height);\n }\n\n :host([active]) & {\n --comp-btn-color: #{var-list(var-prefixer(pill-active-btn-color), --t-base, #ffffff)};\n }\n\n :host([theme='primary']) & {\n --comp-active-btn-background: #{var-list(--tct-pill-primary-active-background, --t-primary-l5, #61c4ff)};\n --comp-active-btn-color: #{var-list(--tct-pill-primary-active-font-color, --t-primary-text, #ffffff)};\n --comp-active-btn-border-color: #{var-list(--tct-pill-primary-active-border-color, --t-primary-l5, #61c4ff)};\n --comp-hover-active-btn-background: #{var-list(\n --tct-pill-primary-active-hover-background,\n --t-primary-l3,\n #21acff\n )};\n --comp-hover-active-btn-border-color: #{var-list(\n --tct-pill-primary-active-hover-border-color,\n --t-primary-l3,\n #21acff\n )};\n }\n\n :host([theme='secondary']) & {\n --comp-active-btn-background: #{var-list(--tct-pill-secondary-active-background, --t-secondary-l5, #d9e1e6)};\n --comp-active-btn-color: #{var-list(--tct-pill-secondary-active-font-color, --t-secondary-text, #141414)};\n --comp-active-btn-border-color: #{var-list(--tct-pill-secondary-active-border-color, --t-secondary-l5, #d9e1e6)};\n --comp-hover-active-btn-background: #{var-list(\n --tct-pill-secondary-active-hover-background,\n --t-secondary-l3,\n #c9d5db\n )};\n --comp-hover-active-btn-border-color: #{var-list(\n --tct-pill-secondary-active-hover-border-color,\n --t-secondary-l3,\n #c9d5db\n )};\n }\n\n :host([theme='tertiary']) & {\n --comp-active-btn-background: #{var-list(--tct-pill-tertiary-active-background, --t-tertiary-l5, #f4fafe)};\n --comp-active-btn-color: #{var-list(--tct-pill-tertiary-active-font-color, --t-tertiary-text, #141414)};\n --comp-active-btn-border-color: #{var-list(--tct-pill-tertiary-active-border-color, --t-tertiary-l5, #f4fafe)};\n --comp-hover-active-btn-background: #{var-list(\n --tct-pill-tertiary-active-hover-background,\n --t-tertiary-l3,\n #eff8fd\n )};\n --comp-hover-active-btn-border-color: #{var-list(\n --tct-pill-tertiary-active-hover-border-color,\n --t-tertiary-l3,\n #eff8fd\n )};\n }\n}\n\n.btn-height-wrapper {\n height: var(--comp-pill-min-height);\n display: flex;\n align-items: center;\n cursor: pointer;\n &:focus {\n box-shadow: none;\n }\n\n :host([disabled]) & {\n cursor: not-allowed;\n }\n}\n\n.btn-close,\n.btn-primary {\n cursor: pointer;\n height: var(--comp-pill-btn-height);\n border-style: solid;\n border-radius: var-list(var-prefixer(pill-btn-border-radius), 30px);\n transition-property: background, color, padding, width, opacity;\n transition: var-list(var-prefixer(pill-btn-tween), --app-tween-1, unquote('0.2s ease'));\n}\n\n.btn-close,\n.btn-primary,\nq2-icon {\n :host([disabled]) & {\n opacity: var-list(var-prefixer(pill-disabled-opacity), --tct-disabled-opacity, --app-disabled-opacity, 0.4);\n cursor: not-allowed;\n }\n}\n\n.btn-primary {\n background: var(--comp-btn-background);\n border-width: var-list(--comp-pill-btn-border-width);\n border-color: var-list(var-prefixer(pill-btn-border-color), --t-a11y-gray-color-AA, #949494);\n padding-inline: var(--comp-btn-padding);\n padding-right: calc(var(--comp-btn-padding) + var(--comp-close-size));\n font-size: var-list(var-prefixer(pill-btn-font-size), --app-font-size, 14px);\n color: var(--comp-btn-color);\n display: block;\n width: 100%;\n text-align: start;\n\n &:focus,\n &:hover {\n background: var(--comp-hover-btn-background);\n }\n\n :host(:not(:empty)) &,\n .has-icon & {\n padding-right: calc(#{var-list(var-prefixer(pill-icon-gap), --app-scale-1x, 5px)} + var(--comp-close-size));\n }\n\n .has-options & {\n @include line-clamp(1);\n max-width: var-list(var-prefixer(pill-max-width), 200px);\n }\n\n :host([active]) & {\n background: var(--comp-active-btn-background);\n border-color: var(--comp-active-btn-border-color);\n color: var(--comp-active-btn-color);\n\n &:focus,\n &:hover {\n background: var(--comp-hover-active-btn-background);\n border-color: var(--comp-hover-active-btn-border-color);\n }\n }\n}\n\n.btn-close {\n background: transparent;\n border-color: transparent;\n border-width: var(--comp-pill-btn-border-width);\n width: var(--comp-close-size);\n height: var(--comp-close-size);\n padding: 0;\n border: 0;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n position: absolute;\n right: 0;\n top: 50%;\n transform: translateY(-50%);\n opacity: 0;\n :host([active]) & {\n color: var(--comp-active-btn-color);\n }\n\n :host(:not(:empty)) &,\n .has-icon & {\n opacity: 1;\n }\n}\n\nq2-icon {\n --t-icon-stroke-primary: currentColor;\n width: var-list(var-prefixer(pill-icon-size), 14px);\n height: var-list(var-prefixer(pill-icon-size), 14px);\n transition-property: transform;\n transition: var-list(var-prefixer(pill-btn-tween), --app-tween-1, unquote('0.2s ease'));\n}\n\ndiv.btn-close {\n pointer-events: none;\n\n :host([open]) & q2-icon {\n transform: rotate(180deg);\n }\n}\n\nbutton.btn-close {\n :host([active]) & {\n &:focus,\n &:hover {\n background: var-list(var-prefixer(pill-hover-close-btn-background), --t-top-a1, rgba(13, 13, 13, 0.35));\n border-color: var-list(var-prefixer(pill-hover-close-btn-border-color), --t-top-a1, rgba(13, 13, 13, 0.35));\n }\n }\n}\n\nq2-popover {\n top: calc(var(--comp-pill-min-height) - calc(calc(var(--comp-pill-min-height) - var(--comp-pill-btn-height)) / 2));\n}\n","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"],"version":3}
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, c as createEvent, h, F as Fragment, g as getElement } from './index-ebc7f269.js';
2
- import { c as createGuid, o as overrideFocus, i as isEventFromElement, l as loc } from './index-35ff2881.js';
2
+ import { c as createGuid, o as overrideFocus, i as isEventFromElement, l as loc } from './index-74a659a5.js';
3
3
 
4
4
  const stylesCss = "*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #33b4ff #06C)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{margin-top:var(--tct-scale-2, var(--app-scale-2x, 10px))}fieldset{padding:0;margin:0;border:0;position:relative}.label-row{display:grid;grid-template-columns:1fr 24px;grid-template-areas:\"label icon\";gap:var(--app-scale-1x, 5px)}.label-row q2-icon{grid-area:icon;margin-top:-2px;margin-bottom:-2px}.group-legend{font-weight:600}.optional-tag{margin-left:var(--tct-input-label-optional-margin-left, var(--t-input-label-optional-margin-left, var(--tct-scale-1, var(--app-scale-1x, 5px))));color:var(--tct-input-label-optional-font-color, var(--t-input-label-optional-font-color, var(--t-textA, var(--t-a11y-gray-color, rgba(77, 77, 77, 0.77)))));font-size:var(--tct-input-label-optional-font-size, var(--t-input-label-optional-font-size, 12px));font-weight:var(--tct-input-label-optional-font-weight, var(--t-input-label-optional-font-weight, 400))}.tile-container,.tile-container .options-container{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;flex-grow:1}.options-container{--comp-default-margin:var(--app-scale-1x, 5px) 0;--comp-options-margin:var(--tct-radio-group-options-margin, var(--t-radio-group-options-margin, var(--comp-default-margin, 5px 0)));margin:var(--comp-options-margin);padding:var(--tct-radio-group-options-padding, var(--t-radio-group-options-padding, var(--app-scale-1x, 5px)));border-width:1px;border-color:transparent;border-style:solid;border-radius:var(--tct-border-radius-1, var(--app-border-radius-1, 2px))}:host([has-error]) .options-container{border-color:var(--tct-input-error-border-color, var(--const-stoplight-alert, #c30000))}:host([has-error=false]) .options-container{border-color:transparent}.tile-container.left{justify-content:start}.tile-container.right{justify-content:end}.tile-container .options-container{gap:var(--tct-radio-group-tile-gap, var(--t-radio-group-tile-gap, var(--app-scale-2x, 10px)));justify-content:inherit}";
5
5
 
@@ -100,6 +100,14 @@ const Q2RadioGroup = class {
100
100
  radio.groupTileLayout = tileLayout;
101
101
  });
102
102
  }
103
+ /// Methods ///
104
+ setValue(value) {
105
+ this.radioElements.forEach(radio => {
106
+ if (value !== radio.value)
107
+ return;
108
+ radio.click();
109
+ });
110
+ }
103
111
  onHostElementChange(event) {
104
112
  if (event.target === this.hostElement) {
105
113
  if (!this.hostElement.onchange) {