q2-tecton-elements 1.53.0 → 1.54.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (328) hide show
  1. package/dist/bundle-report.json +43422 -0
  2. package/dist/cjs/{action-sheet-d32c41ae.js → action-sheet-8254c0fd.js} +6 -3
  3. package/dist/cjs/action-sheet-8254c0fd.js.map +1 -0
  4. package/dist/cjs/click-elsewhere.cjs.entry.js +96 -0
  5. package/dist/cjs/click-elsewhere.cjs.entry.js.map +1 -0
  6. package/dist/cjs/{index-07285783.js → index-76f63767.js} +1 -21
  7. package/dist/cjs/index-76f63767.js.map +1 -0
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/cjs/q2-action-group.cjs.entry.js +38 -17
  10. package/dist/cjs/q2-action-group.cjs.entry.js.map +1 -1
  11. package/dist/cjs/q2-action-sheet.cjs.entry.js +1 -1
  12. package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
  13. package/dist/cjs/q2-avatar.cjs.entry.js.map +1 -1
  14. package/dist/cjs/q2-badge_7.cjs.entry.js +52 -18
  15. package/dist/cjs/q2-badge_7.cjs.entry.js.map +1 -1
  16. package/dist/cjs/q2-calendar.cjs.entry.js +1 -1
  17. package/dist/cjs/q2-card.cjs.entry.js +1 -1
  18. package/dist/cjs/q2-carousel-pane.cjs.entry.js +1 -1
  19. package/dist/cjs/q2-carousel.cjs.entry.js +1 -1
  20. package/dist/cjs/q2-chart-area.cjs.entry.js +1 -1
  21. package/dist/cjs/q2-chart-bar.cjs.entry.js +1 -1
  22. package/dist/cjs/q2-chart-donut.cjs.entry.js +1 -1
  23. package/dist/cjs/q2-checkbox-group.cjs.entry.js +1 -1
  24. package/dist/cjs/q2-checkbox.cjs.entry.js +1 -1
  25. package/dist/cjs/q2-data-table.cjs.entry.js +1 -1
  26. package/dist/cjs/q2-detail.cjs.entry.js +1 -1
  27. package/dist/cjs/q2-dropdown-item.cjs.entry.js +17 -16
  28. package/dist/cjs/q2-dropdown-item.cjs.entry.js.map +1 -1
  29. package/dist/cjs/q2-dropdown.cjs.entry.js +48 -99
  30. package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
  31. package/dist/cjs/q2-editable-field.cjs.entry.js +1 -1
  32. package/dist/cjs/q2-file-picker.cjs.entry.js +4 -4
  33. package/dist/cjs/q2-file-picker.cjs.entry.js.map +1 -1
  34. package/dist/cjs/q2-item_3.cjs.entry.js +3 -2
  35. package/dist/cjs/q2-item_3.cjs.entry.js.map +1 -1
  36. package/dist/cjs/q2-loc.cjs.entry.js +1 -1
  37. package/dist/cjs/q2-message.cjs.entry.js +1 -1
  38. package/dist/cjs/q2-month-picker.cjs.entry.js +1 -1
  39. package/dist/cjs/q2-optgroup.cjs.entry.js +1 -1
  40. package/dist/cjs/{q2-option-list.cjs.entry.js → q2-option-list_2.cjs.entry.js} +355 -21
  41. package/dist/cjs/q2-option-list_2.cjs.entry.js.map +1 -0
  42. package/dist/cjs/q2-option.cjs.entry.js +18 -4
  43. package/dist/cjs/q2-option.cjs.entry.js.map +1 -1
  44. package/dist/cjs/q2-pagination.cjs.entry.js +4 -4
  45. package/dist/cjs/q2-pill.cjs.entry.js +8 -7
  46. package/dist/cjs/q2-pill.cjs.entry.js.map +1 -1
  47. package/dist/cjs/q2-radio-group.cjs.entry.js +1 -1
  48. package/dist/cjs/q2-radio.cjs.entry.js +1 -1
  49. package/dist/cjs/q2-relative-time.cjs.entry.js +2 -2
  50. package/dist/cjs/q2-resize-observer.cjs.entry.js +1 -1
  51. package/dist/cjs/q2-section.cjs.entry.js +3 -3
  52. package/dist/cjs/q2-select.cjs.entry.js +10 -8
  53. package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
  54. package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
  55. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +2 -2
  56. package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
  57. package/dist/cjs/q2-tag.cjs.entry.js +7 -4
  58. package/dist/cjs/q2-tag.cjs.entry.js.map +1 -1
  59. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  60. package/dist/cjs/q2-textarea.cjs.entry.js +1 -1
  61. package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
  62. package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
  63. package/dist/collection/components/q2-action-group/q2-action-group.css +25 -8
  64. package/dist/collection/components/q2-action-group/q2-action-group.js +55 -33
  65. package/dist/collection/components/q2-action-group/q2-action-group.js.map +1 -1
  66. package/dist/collection/components/q2-action-group/test/q2-action-group.e2e.js +142 -6
  67. package/dist/collection/components/q2-action-group/test/q2-action-group.e2e.js.map +1 -1
  68. package/dist/collection/components/q2-action-group/test/q2-action-group.spec.js +126 -62
  69. package/dist/collection/components/q2-action-group/test/q2-action-group.spec.js.map +1 -1
  70. package/dist/collection/components/q2-action-sheet/test/q2-action-sheet-test.e2e.js +1 -1
  71. package/dist/collection/components/q2-action-sheet/test/q2-action-sheet-test.e2e.js.map +1 -1
  72. package/dist/collection/components/q2-avatar/q2-avatar.css +5 -0
  73. package/dist/collection/components/q2-btn/q2-btn.css +103 -3
  74. package/dist/collection/components/q2-btn/q2-btn.js +50 -16
  75. package/dist/collection/components/q2-btn/q2-btn.js.map +1 -1
  76. package/dist/collection/components/q2-btn/test/q2-btn-test.e2e.js +101 -4
  77. package/dist/collection/components/q2-btn/test/q2-btn-test.e2e.js.map +1 -1
  78. package/dist/collection/components/q2-dropdown/q2-dropdown.js +83 -103
  79. package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
  80. package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js +188 -24
  81. package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js.map +1 -1
  82. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.css +1 -1
  83. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js +54 -16
  84. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js.map +1 -1
  85. package/dist/collection/components/q2-file-picker/q2-file-picker.css +29 -10
  86. package/dist/collection/components/q2-file-picker/q2-file-picker.js +3 -3
  87. package/dist/collection/components/q2-file-picker/q2-file-picker.js.map +1 -1
  88. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.spec.js +34 -0
  89. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.spec.js.map +1 -1
  90. package/dist/collection/components/q2-link/q2-link.js +26 -7
  91. package/dist/collection/components/q2-link/q2-link.js.map +1 -1
  92. package/dist/collection/components/q2-link/test/q2-link-test.e2e.js +20 -118
  93. package/dist/collection/components/q2-link/test/q2-link-test.e2e.js.map +1 -1
  94. package/dist/collection/components/q2-link/test/q2-link-test.spec.js +193 -0
  95. package/dist/collection/components/q2-link/test/q2-link-test.spec.js.map +1 -0
  96. package/dist/collection/components/q2-loading/q2-loading.js +1 -1
  97. package/dist/collection/components/q2-loading/q2-loading.js.map +1 -1
  98. package/dist/collection/components/q2-option/q2-option.css +9 -3
  99. package/dist/collection/components/q2-option/q2-option.js +37 -4
  100. package/dist/collection/components/q2-option/q2-option.js.map +1 -1
  101. package/dist/collection/components/q2-option/test/q2-option-test.spec.js +22 -0
  102. package/dist/collection/components/q2-option/test/q2-option-test.spec.js.map +1 -1
  103. package/dist/collection/components/q2-option-list/q2-option-list.js +56 -29
  104. package/dist/collection/components/q2-option-list/q2-option-list.js.map +1 -1
  105. package/dist/collection/components/q2-option-list/test/q2-option-list.spec.js +489 -0
  106. package/dist/collection/components/q2-option-list/test/q2-option-list.spec.js.map +1 -0
  107. package/dist/collection/components/q2-pagination/q2-pagination.js +3 -3
  108. package/dist/collection/components/q2-pill/q2-pill.js +6 -5
  109. package/dist/collection/components/q2-pill/q2-pill.js.map +1 -1
  110. package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js +1 -1
  111. package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js.map +1 -1
  112. package/dist/collection/components/q2-popover/q2-popover.js +1 -1
  113. package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
  114. package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
  115. package/dist/collection/components/q2-resize-observer/q2-resize-observer.js +1 -1
  116. package/dist/collection/components/q2-section/q2-section.js +2 -2
  117. package/dist/collection/components/q2-select/q2-select.js +9 -7
  118. package/dist/collection/components/q2-select/q2-select.js.map +1 -1
  119. package/dist/collection/components/q2-select/test/q2-select-test.e2e.js +1 -14
  120. package/dist/collection/components/q2-select/test/q2-select-test.e2e.js.map +1 -1
  121. package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
  122. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
  123. package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
  124. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
  125. package/dist/collection/components/q2-tag/q2-tag.js +5 -2
  126. package/dist/collection/components/q2-tag/q2-tag.js.map +1 -1
  127. package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js +1 -1
  128. package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js.map +1 -1
  129. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
  130. package/dist/collection/utils/action-sheet.js +5 -2
  131. package/dist/collection/utils/action-sheet.js.map +1 -1
  132. package/dist/collection/utils/helpers.js +29 -3
  133. package/dist/collection/utils/helpers.js.map +1 -1
  134. package/dist/collection/utils/test/action-sheet-test.e2e.js +34 -6
  135. package/dist/collection/utils/test/action-sheet-test.e2e.js.map +1 -1
  136. package/dist/components/action-sheet.js +6 -3
  137. package/dist/components/action-sheet.js.map +1 -1
  138. package/dist/components/index2.js +1 -20
  139. package/dist/components/index2.js.map +1 -1
  140. package/dist/components/q2-action-group.js +41 -19
  141. package/dist/components/q2-action-group.js.map +1 -1
  142. package/dist/components/q2-avatar2.js +1 -1
  143. package/dist/components/q2-avatar2.js.map +1 -1
  144. package/dist/components/q2-btn2.js +50 -16
  145. package/dist/components/q2-btn2.js.map +1 -1
  146. package/dist/components/q2-dropdown-item2.js +19 -17
  147. package/dist/components/q2-dropdown-item2.js.map +1 -1
  148. package/dist/components/q2-dropdown.js +67 -110
  149. package/dist/components/q2-dropdown.js.map +1 -1
  150. package/dist/components/q2-file-picker.js +3 -3
  151. package/dist/components/q2-file-picker.js.map +1 -1
  152. package/dist/components/q2-link2.js +3 -1
  153. package/dist/components/q2-link2.js.map +1 -1
  154. package/dist/components/q2-loading2.js.map +1 -1
  155. package/dist/components/q2-option-list2.js +44 -19
  156. package/dist/components/q2-option-list2.js.map +1 -1
  157. package/dist/components/q2-option2.js +20 -4
  158. package/dist/components/q2-option2.js.map +1 -1
  159. package/dist/components/q2-pagination.js +3 -3
  160. package/dist/components/q2-pill.js +7 -6
  161. package/dist/components/q2-pill.js.map +1 -1
  162. package/dist/components/q2-popover2.js +1 -1
  163. package/dist/components/q2-popover2.js.map +1 -1
  164. package/dist/components/q2-relative-time.js +1 -1
  165. package/dist/components/q2-resize-observer2.js +1 -1
  166. package/dist/components/q2-section.js +2 -2
  167. package/dist/components/q2-select2.js +10 -8
  168. package/dist/components/q2-select2.js.map +1 -1
  169. package/dist/components/q2-stepper-vertical.js +1 -1
  170. package/dist/components/q2-stepper.js +1 -1
  171. package/dist/components/q2-tab-container.js +1 -1
  172. package/dist/components/q2-tab-pane.js +1 -1
  173. package/dist/components/q2-tag.js +6 -3
  174. package/dist/components/q2-tag.js.map +1 -1
  175. package/dist/components/tecton-tab-pane.js +2 -2
  176. package/dist/esm/{action-sheet-e64cb6f7.js → action-sheet-1e24cb38.js} +7 -4
  177. package/dist/esm/action-sheet-1e24cb38.js.map +1 -0
  178. package/dist/esm/click-elsewhere.entry.js +92 -0
  179. package/dist/esm/click-elsewhere.entry.js.map +1 -0
  180. package/dist/esm/{index-d18e2a20.js → index-504f1a9e.js} +2 -21
  181. package/dist/esm/index-504f1a9e.js.map +1 -0
  182. package/dist/esm/loader.js +1 -1
  183. package/dist/esm/q2-action-group.entry.js +39 -18
  184. package/dist/esm/q2-action-group.entry.js.map +1 -1
  185. package/dist/esm/q2-action-sheet.entry.js +1 -1
  186. package/dist/esm/q2-avatar.entry.js +1 -1
  187. package/dist/esm/q2-avatar.entry.js.map +1 -1
  188. package/dist/esm/q2-badge_7.entry.js +52 -18
  189. package/dist/esm/q2-badge_7.entry.js.map +1 -1
  190. package/dist/esm/q2-calendar.entry.js +1 -1
  191. package/dist/esm/q2-card.entry.js +1 -1
  192. package/dist/esm/q2-carousel-pane.entry.js +1 -1
  193. package/dist/esm/q2-carousel.entry.js +1 -1
  194. package/dist/esm/q2-chart-area.entry.js +1 -1
  195. package/dist/esm/q2-chart-bar.entry.js +1 -1
  196. package/dist/esm/q2-chart-donut.entry.js +1 -1
  197. package/dist/esm/q2-checkbox-group.entry.js +1 -1
  198. package/dist/esm/q2-checkbox.entry.js +1 -1
  199. package/dist/esm/q2-data-table.entry.js +1 -1
  200. package/dist/esm/q2-detail.entry.js +1 -1
  201. package/dist/esm/q2-dropdown-item.entry.js +18 -17
  202. package/dist/esm/q2-dropdown-item.entry.js.map +1 -1
  203. package/dist/esm/q2-dropdown.entry.js +48 -99
  204. package/dist/esm/q2-dropdown.entry.js.map +1 -1
  205. package/dist/esm/q2-editable-field.entry.js +1 -1
  206. package/dist/esm/q2-file-picker.entry.js +4 -4
  207. package/dist/esm/q2-file-picker.entry.js.map +1 -1
  208. package/dist/esm/q2-item_3.entry.js +3 -2
  209. package/dist/esm/q2-item_3.entry.js.map +1 -1
  210. package/dist/esm/q2-loc.entry.js +1 -1
  211. package/dist/esm/q2-message.entry.js +1 -1
  212. package/dist/esm/q2-month-picker.entry.js +1 -1
  213. package/dist/esm/q2-optgroup.entry.js +1 -1
  214. package/dist/esm/{q2-option-list.entry.js → q2-option-list_2.entry.js} +355 -22
  215. package/dist/esm/q2-option-list_2.entry.js.map +1 -0
  216. package/dist/esm/q2-option.entry.js +18 -4
  217. package/dist/esm/q2-option.entry.js.map +1 -1
  218. package/dist/esm/q2-pagination.entry.js +4 -4
  219. package/dist/esm/q2-pill.entry.js +8 -7
  220. package/dist/esm/q2-pill.entry.js.map +1 -1
  221. package/dist/esm/q2-radio-group.entry.js +1 -1
  222. package/dist/esm/q2-radio.entry.js +1 -1
  223. package/dist/esm/q2-relative-time.entry.js +2 -2
  224. package/dist/esm/q2-resize-observer.entry.js +1 -1
  225. package/dist/esm/q2-section.entry.js +3 -3
  226. package/dist/esm/q2-select.entry.js +10 -8
  227. package/dist/esm/q2-select.entry.js.map +1 -1
  228. package/dist/esm/q2-stepper-pane.entry.js +1 -1
  229. package/dist/esm/q2-stepper-vertical.entry.js +2 -2
  230. package/dist/esm/q2-stepper.entry.js +2 -2
  231. package/dist/esm/q2-tag.entry.js +7 -4
  232. package/dist/esm/q2-tag.entry.js.map +1 -1
  233. package/dist/esm/q2-tecton-elements.js +1 -1
  234. package/dist/esm/q2-textarea.entry.js +1 -1
  235. package/dist/esm/q2-tooltip.entry.js +1 -1
  236. package/dist/esm/tecton-tab-pane.entry.js +2 -2
  237. package/dist/q2-tecton-elements/action-sheet-1e24cb38.js +80 -0
  238. package/dist/q2-tecton-elements/action-sheet-1e24cb38.js.map +1 -0
  239. package/dist/q2-tecton-elements/click-elsewhere.entry.js +90 -0
  240. package/dist/q2-tecton-elements/click-elsewhere.entry.js.map +1 -0
  241. package/dist/q2-tecton-elements/{index-d18e2a20.js → index-504f1a9e.js} +51 -69
  242. package/dist/q2-tecton-elements/index-504f1a9e.js.map +1 -0
  243. package/dist/q2-tecton-elements/q2-action-group.entry.js +57 -33
  244. package/dist/q2-tecton-elements/q2-action-group.entry.js.map +1 -1
  245. package/dist/q2-tecton-elements/q2-action-sheet.entry.js +1 -1
  246. package/dist/q2-tecton-elements/q2-avatar.entry.js +1 -1
  247. package/dist/q2-tecton-elements/q2-avatar.entry.js.map +1 -1
  248. package/dist/q2-tecton-elements/q2-badge_7.entry.js +256 -213
  249. package/dist/q2-tecton-elements/q2-badge_7.entry.js.map +1 -1
  250. package/dist/q2-tecton-elements/q2-calendar.entry.js +1 -1
  251. package/dist/q2-tecton-elements/q2-card.entry.js +1 -1
  252. package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +1 -1
  253. package/dist/q2-tecton-elements/q2-carousel.entry.js +1 -1
  254. package/dist/q2-tecton-elements/q2-chart-area.entry.js +1 -1
  255. package/dist/q2-tecton-elements/q2-chart-bar.entry.js +1 -1
  256. package/dist/q2-tecton-elements/q2-chart-donut.entry.js +1 -1
  257. package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +1 -1
  258. package/dist/q2-tecton-elements/q2-checkbox.entry.js +1 -1
  259. package/dist/q2-tecton-elements/q2-data-table.entry.js +1 -1
  260. package/dist/q2-tecton-elements/q2-detail.entry.js +1 -1
  261. package/dist/q2-tecton-elements/q2-dropdown-item.entry.js +34 -34
  262. package/dist/q2-tecton-elements/q2-dropdown-item.entry.js.map +1 -1
  263. package/dist/q2-tecton-elements/q2-dropdown.entry.js +86 -137
  264. package/dist/q2-tecton-elements/q2-dropdown.entry.js.map +1 -1
  265. package/dist/q2-tecton-elements/q2-editable-field.entry.js +1 -1
  266. package/dist/q2-tecton-elements/q2-file-picker.entry.js +138 -137
  267. package/dist/q2-tecton-elements/q2-file-picker.entry.js.map +1 -1
  268. package/dist/q2-tecton-elements/q2-item_3.entry.js +3 -2
  269. package/dist/q2-tecton-elements/q2-item_3.entry.js.map +1 -1
  270. package/dist/q2-tecton-elements/q2-loc.entry.js +1 -1
  271. package/dist/q2-tecton-elements/q2-message.entry.js +1 -1
  272. package/dist/q2-tecton-elements/q2-month-picker.entry.js +1 -1
  273. package/dist/q2-tecton-elements/q2-optgroup.entry.js +1 -1
  274. package/dist/q2-tecton-elements/q2-option-list_2.entry.js +902 -0
  275. package/dist/q2-tecton-elements/q2-option-list_2.entry.js.map +1 -0
  276. package/dist/q2-tecton-elements/q2-option.entry.js +31 -21
  277. package/dist/q2-tecton-elements/q2-option.entry.js.map +1 -1
  278. package/dist/q2-tecton-elements/q2-pagination.entry.js +34 -34
  279. package/dist/q2-tecton-elements/q2-pill.entry.js +15 -15
  280. package/dist/q2-tecton-elements/q2-pill.entry.js.map +1 -1
  281. package/dist/q2-tecton-elements/q2-radio-group.entry.js +1 -1
  282. package/dist/q2-tecton-elements/q2-radio.entry.js +1 -1
  283. package/dist/q2-tecton-elements/q2-relative-time.entry.js +2 -2
  284. package/dist/q2-tecton-elements/q2-resize-observer.entry.js +1 -1
  285. package/dist/q2-tecton-elements/q2-section.entry.js +19 -19
  286. package/dist/q2-tecton-elements/q2-select.entry.js +23 -20
  287. package/dist/q2-tecton-elements/q2-select.entry.js.map +1 -1
  288. package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +1 -1
  289. package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +37 -37
  290. package/dist/q2-tecton-elements/q2-stepper.entry.js +29 -29
  291. package/dist/q2-tecton-elements/q2-tag.entry.js +36 -34
  292. package/dist/q2-tecton-elements/q2-tag.entry.js.map +1 -1
  293. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  294. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
  295. package/dist/q2-tecton-elements/q2-textarea.entry.js +1 -1
  296. package/dist/q2-tecton-elements/q2-tooltip.entry.js +1 -1
  297. package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +6 -6
  298. package/dist/types/components/q2-action-group/q2-action-group.d.ts +19 -11
  299. package/dist/types/components/q2-btn/q2-btn.d.ts +8 -3
  300. package/dist/types/components/q2-dropdown/q2-dropdown.d.ts +18 -9
  301. package/dist/types/components/q2-dropdown-item/q2-dropdown-item.d.ts +14 -1
  302. package/dist/types/components/q2-file-picker/q2-file-picker.d.ts +4 -2
  303. package/dist/types/components/q2-link/q2-link.d.ts +8 -6
  304. package/dist/types/components/q2-loading/q2-loading.d.ts +2 -2
  305. package/dist/types/components/q2-option/q2-option.d.ts +10 -1
  306. package/dist/types/components/q2-option-list/q2-option-list.d.ts +9 -8
  307. package/dist/types/components/q2-pill/q2-pill.d.ts +1 -1
  308. package/dist/types/components.d.ts +93 -30
  309. package/dist/types/util.d.ts +1 -0
  310. package/dist/types/utils/helpers.d.ts +1 -1
  311. package/package.json +4 -3
  312. package/dist/cjs/action-sheet-d32c41ae.js.map +0 -1
  313. package/dist/cjs/click-elsewhere_2.cjs.entry.js +0 -406
  314. package/dist/cjs/click-elsewhere_2.cjs.entry.js.map +0 -1
  315. package/dist/cjs/index-07285783.js.map +0 -1
  316. package/dist/cjs/q2-option-list.cjs.entry.js.map +0 -1
  317. package/dist/esm/action-sheet-e64cb6f7.js.map +0 -1
  318. package/dist/esm/click-elsewhere_2.entry.js +0 -401
  319. package/dist/esm/click-elsewhere_2.entry.js.map +0 -1
  320. package/dist/esm/index-d18e2a20.js.map +0 -1
  321. package/dist/esm/q2-option-list.entry.js.map +0 -1
  322. package/dist/q2-tecton-elements/action-sheet-e64cb6f7.js +0 -77
  323. package/dist/q2-tecton-elements/action-sheet-e64cb6f7.js.map +0 -1
  324. package/dist/q2-tecton-elements/click-elsewhere_2.entry.js +0 -398
  325. package/dist/q2-tecton-elements/click-elsewhere_2.entry.js.map +0 -1
  326. package/dist/q2-tecton-elements/index-d18e2a20.js.map +0 -1
  327. package/dist/q2-tecton-elements/q2-option-list.entry.js +0 -585
  328. package/dist/q2-tecton-elements/q2-option-list.entry.js.map +0 -1
@@ -0,0 +1,489 @@
1
+ import { newSpecPage } from "@stencil/core/testing";
2
+ import { Q2OptionList } from "../q2-option-list";
3
+ import { Q2Option } from "../../q2-option/q2-option";
4
+ import { Q2DropdownItem } from "../../q2-dropdown-item/q2-dropdown-item";
5
+ describe('q2-option-list', () => {
6
+ let specPage;
7
+ describe('Props', () => { });
8
+ describe('Events', () => { });
9
+ describe('Listeners', () => { });
10
+ describe('Methods', () => { });
11
+ describe('Watchers', () => {
12
+ describe('selectedOptionsUpdated', () => {
13
+ it('executes updateSingleOptionAttrs when multple is false', async () => {
14
+ specPage = await newSpecPage({
15
+ components: [Q2OptionList, Q2Option],
16
+ html: `
17
+ <q2-option-list>
18
+ <q2-option value="1">Option 1</q2-option>
19
+ <q2-option value="2">Option 2</q2-option>
20
+ <q2-option value="3">Option 3</q2-option>
21
+ </q2-option-list>
22
+ `,
23
+ });
24
+ specPage.rootInstance.updateMultipleOptionAttrs = jest.fn();
25
+ specPage.rootInstance.updateSingleOptionAttrs = jest.fn();
26
+ specPage.rootInstance.selectedOptions = [{ value: '2' }];
27
+ await specPage.waitForChanges();
28
+ expect(await specPage.rootInstance.updateMultipleOptionAttrs).not.toHaveBeenCalled();
29
+ expect(await specPage.rootInstance.updateSingleOptionAttrs).toHaveBeenCalled();
30
+ });
31
+ it('executes updateMultipleOptionAttrs when multple is true', async () => {
32
+ specPage = await newSpecPage({
33
+ components: [Q2OptionList, Q2Option],
34
+ html: `
35
+ <q2-option-list multiple>
36
+ <q2-option value="1">Option 1</q2-option>
37
+ <q2-option value="2">Option 2</q2-option>
38
+ <q2-option value="3">Option 3</q2-option>
39
+ </q2-option-list>
40
+ `,
41
+ });
42
+ specPage.rootInstance.updateMultipleOptionAttrs = jest.fn();
43
+ specPage.rootInstance.updateSingleOptionAttrs = jest.fn();
44
+ specPage.rootInstance.selectedOptions = [{ value: '2' }];
45
+ await specPage.waitForChanges();
46
+ expect(await specPage.rootInstance.updateMultipleOptionAttrs).toHaveBeenCalled();
47
+ expect(await specPage.rootInstance.updateSingleOptionAttrs).not.toHaveBeenCalled();
48
+ });
49
+ });
50
+ describe('showSelected', () => {
51
+ it('re-sets showSelected to false if there are no selected options', async () => {
52
+ specPage = await newSpecPage({
53
+ components: [Q2OptionList, Q2Option],
54
+ html: `
55
+ <q2-option-list>
56
+ <q2-option value="1">Option 1</q2-option>
57
+ <q2-option value="2">Option 2</q2-option>
58
+ <q2-option value="3">Option 3</q2-option>
59
+ </q2-option-list>
60
+ `,
61
+ });
62
+ specPage.rootInstance.selectedOptions = [];
63
+ specPage.rootInstance.showSelected = true;
64
+ await specPage.waitForChanges();
65
+ expect(specPage.rootInstance.showSelected).toBe(false);
66
+ });
67
+ it('sets _multiSelectHidden on all unselected options when selectedOptions are present', async () => {
68
+ var _a;
69
+ specPage = await newSpecPage({
70
+ components: [Q2OptionList, Q2Option],
71
+ html: `
72
+ <q2-option-list multiple>
73
+ <q2-option value="1">Option 1</q2-option>
74
+ <q2-option value="2">Option 2</q2-option>
75
+ <q2-option value="3">Option 3</q2-option>
76
+ </q2-option-list>
77
+ `,
78
+ });
79
+ const options = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('q2-option');
80
+ expect(Array.from(options).every(option => !option._multiSelectHidden)).toBe(true);
81
+ specPage.rootInstance.selectedOptions = [{ value: '2' }];
82
+ specPage.rootInstance.showSelected = true;
83
+ await specPage.waitForChanges();
84
+ expect(options[0]._multiSelectHidden).toBe(true);
85
+ expect(options[1]._multiSelectHidden).toBe(false);
86
+ expect(options[2]._multiSelectHidden).toBe(true);
87
+ expect(specPage.rootInstance.showSelected).toBe(true);
88
+ });
89
+ });
90
+ });
91
+ describe('Local methods', () => {
92
+ describe('allContents', () => {
93
+ it('return empty array when no options are present', async () => {
94
+ specPage = await newSpecPage({
95
+ components: [Q2OptionList],
96
+ html: `<q2-option-list></q2-option-list>`,
97
+ });
98
+ expect(await specPage.rootInstance.allContents).toEqual([]);
99
+ });
100
+ it('return options', async () => {
101
+ var _a;
102
+ specPage = await newSpecPage({
103
+ components: [Q2OptionList],
104
+ html: `
105
+ <q2-option-list>
106
+ <q2-option value="option-1">Option 1</q2-option>
107
+ <q2-option value="option-2">Option 2</q2-option>
108
+ <q2-option value="option-3">Option 3</q2-option>
109
+ </q2-option-list>
110
+ `,
111
+ });
112
+ const options = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('q2-option');
113
+ expect(await specPage.rootInstance.allContents).toEqual(options);
114
+ });
115
+ it('return option groups', async () => {
116
+ var _a;
117
+ specPage = await newSpecPage({
118
+ components: [Q2OptionList],
119
+ html: `
120
+ <q2-option-list>
121
+ <q2-optgroup label="Group 1">
122
+ <q2-option value="grouped-option-1">Grouped Option 1</q2-option>
123
+ <q2-option value="grouped-option-2">Grouped Option 2</q2-option>
124
+ </q2-optgroup>
125
+ </q2-option-list>
126
+ `,
127
+ });
128
+ const optGroups = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('q2-optgroup');
129
+ expect(await specPage.rootInstance.allContents).toEqual(optGroups);
130
+ });
131
+ it('return dropdown items', async () => {
132
+ var _a;
133
+ specPage = await newSpecPage({
134
+ components: [Q2OptionList],
135
+ html: `
136
+ <q2-option-list>
137
+ <q2-dropdown-item value="dropdown-item-1">Dropdown Item 1</q2-dropdown-item>
138
+ <q2-dropdown-item value="dropdown-item-2">Dropdown Item 2</q2-dropdown-item>
139
+ <q2-dropdown-item value="dropdown-item-3">Dropdown Item 3</q2-dropdown-item>
140
+ </q2-option-list>
141
+ `,
142
+ });
143
+ const dropdownItems = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('q2-dropdown-item');
144
+ expect(await specPage.rootInstance.allContents).toEqual(dropdownItems);
145
+ });
146
+ });
147
+ describe('allOptions', () => {
148
+ it('returns an empty array when no options are present', async () => {
149
+ specPage = await newSpecPage({
150
+ components: [Q2OptionList, Q2Option, Q2DropdownItem],
151
+ html: `<q2-option-list></q2-option-list>`,
152
+ });
153
+ expect(specPage.rootInstance.allOptions).toEqual([]);
154
+ });
155
+ it('returns options', async () => {
156
+ var _a;
157
+ specPage = await newSpecPage({
158
+ components: [Q2OptionList, Q2Option, Q2DropdownItem],
159
+ html: `
160
+ <q2-option-list>
161
+ <q2-option value="option-1">Option 1</q2-option>
162
+ <q2-option value="option-2">Option 2</q2-option>
163
+ <q2-option value="option-3">Option 3</q2-option>
164
+ </q2-option-list>
165
+ `,
166
+ });
167
+ const options = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('q2-option');
168
+ const allOptions = specPage.rootInstance.allOptions;
169
+ expect(allOptions).toHaveLength(3);
170
+ expect(allOptions).toEqual(options);
171
+ });
172
+ it('returns options nested in groups', async () => {
173
+ var _a;
174
+ specPage = await newSpecPage({
175
+ components: [Q2OptionList, Q2Option, Q2DropdownItem],
176
+ html: `
177
+ <q2-option-list>
178
+ <q2-option value="option-1">Option 1</q2-option>
179
+ <q2-option value="option-2">Option 2</q2-option>
180
+ <q2-option value="option-3">Option 3</q2-option>
181
+ <q2-optgroup label="Group 1">
182
+ <q2-option value="grouped-option-1">Grouped Option 1</q2-option>
183
+ <q2-option value="grouped-option-2">Grouped Option 2</q2-option>
184
+ </q2-optgroup>
185
+ </q2-option-list>
186
+ `,
187
+ });
188
+ const options = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('q2-option');
189
+ const allOptions = specPage.rootInstance.allOptions;
190
+ expect(allOptions).toHaveLength(5);
191
+ expect(allOptions).toEqual(options);
192
+ });
193
+ it('returns dropdown items', async () => {
194
+ var _a;
195
+ specPage = await newSpecPage({
196
+ components: [Q2OptionList, Q2Option, Q2DropdownItem],
197
+ html: `
198
+ <q2-option-list>
199
+ <q2-dropdown-item value="dropdown-item-1">Dropdown Item 1</q2-dropdown-item>
200
+ <q2-dropdown-item value="dropdown-item-2">Dropdown Item 2</q2-dropdown-item>
201
+ <q2-dropdown-item value="dropdown-item-3">Dropdown Item 3</q2-dropdown-item>
202
+ </q2-option-list>
203
+ `,
204
+ });
205
+ const dropdownItems = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('q2-dropdown-item');
206
+ const allOptions = specPage.rootInstance.allOptions;
207
+ expect(allOptions).toHaveLength(3);
208
+ expect(allOptions).toEqual(dropdownItems);
209
+ });
210
+ it('does not return options that have the separator attribute', async () => {
211
+ var _a;
212
+ specPage = await newSpecPage({
213
+ components: [Q2OptionList, Q2Option, Q2DropdownItem],
214
+ html: `
215
+ <q2-option-list>
216
+ <q2-option value="option-1">Option 1</q2-option>
217
+ <q2-option value="option-2" separator>Option 2</q2-option>
218
+ <q2-option value="option-3">Option 3</q2-option>
219
+ </q2-option-list>
220
+ `,
221
+ });
222
+ const options = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('q2-option:not([separator])');
223
+ const allOptions = specPage.rootInstance.allOptions;
224
+ expect(allOptions).toHaveLength(2);
225
+ expect(allOptions).toEqual(options);
226
+ });
227
+ it('does not return dropdown items that ahve the separator attribute', async () => {
228
+ var _a;
229
+ specPage = await newSpecPage({
230
+ components: [Q2OptionList, Q2Option, Q2DropdownItem],
231
+ html: `
232
+ <q2-option-list>
233
+ <q2-dropdown-item value="dropdown-item-1">Dropdown Item 1</q2-dropdown-item>
234
+ <q2-dropdown-item value="dropdown-item-2" separator>Dropdown Item 2</q2-dropdown-item>
235
+ <q2-dropdown-item value="dropdown-item-3">Dropdown Item 3</q2-dropdown-item>
236
+ </q2-option-list>
237
+ `,
238
+ });
239
+ const dropdownItems = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('q2-dropdown-item:not([separator])');
240
+ const allOptions = specPage.rootInstance.allOptions;
241
+ expect(allOptions).toHaveLength(2);
242
+ expect(allOptions).toEqual(dropdownItems);
243
+ });
244
+ });
245
+ describe('allVisibleOptions', () => {
246
+ it('returns an empty array when no options are present', async () => {
247
+ specPage = await newSpecPage({
248
+ components: [Q2OptionList, Q2Option, Q2DropdownItem],
249
+ html: `<q2-option-list></q2-option-list>`,
250
+ });
251
+ expect(specPage.rootInstance.allVisibleOptions).toEqual([]);
252
+ });
253
+ it('does not return options with the hidden attribute', async () => {
254
+ var _a;
255
+ specPage = await newSpecPage({
256
+ components: [Q2OptionList, Q2Option, Q2DropdownItem],
257
+ html: `
258
+ <q2-option-list>
259
+ <q2-option value="option-1">Option 1</q2-option>
260
+ <q2-option value="option-2" hidden>Option 2</q2-option>
261
+ <q2-option value="option-3">Option 3</q2-option>
262
+ </q2-option-list>
263
+ `,
264
+ });
265
+ const options = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('q2-option:not([hidden])');
266
+ const allVisibleOptions = specPage.rootInstance.allVisibleOptions;
267
+ expect(allVisibleOptions).toHaveLength(2);
268
+ expect(allVisibleOptions).toEqual(options);
269
+ });
270
+ it('does not return options with the _multiSelectHidden attribute', async () => {
271
+ var _a;
272
+ specPage = await newSpecPage({
273
+ components: [Q2OptionList, Q2Option, Q2DropdownItem],
274
+ html: `
275
+ <q2-option-list>
276
+ <q2-option value="option-1">Option 1</q2-option>
277
+ <q2-option value="option-2" _multiSelectHidden>Option 2</q2-option>
278
+ <q2-option value="option-3">Option 3</q2-option>
279
+ </q2-option-list>
280
+ `,
281
+ });
282
+ const options = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('q2-option:not([_multiSelectHidden])');
283
+ const allVisibleOptions = specPage.rootInstance.allVisibleOptions;
284
+ expect(allVisibleOptions).toHaveLength(2);
285
+ expect(allVisibleOptions).toEqual(options);
286
+ });
287
+ it('does not return options with the disabled attribute', async () => {
288
+ var _a;
289
+ specPage = await newSpecPage({
290
+ components: [Q2OptionList, Q2Option, Q2DropdownItem],
291
+ html: `
292
+ <q2-option-list>
293
+ <q2-option value="option-1">Option 1</q2-option>
294
+ <q2-option value="option-2" disabled>Option 2</q2-option>
295
+ <q2-option value="option-3">Option 3</q2-option>
296
+ </q2-option-list>
297
+ `,
298
+ });
299
+ const options = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('q2-option:not([disabled])');
300
+ const allVisibleOptions = specPage.rootInstance.allVisibleOptions;
301
+ expect(allVisibleOptions).toHaveLength(2);
302
+ expect(allVisibleOptions).toEqual(options);
303
+ });
304
+ it('does not return options with the disabled-group attribute', async () => {
305
+ var _a;
306
+ specPage = await newSpecPage({
307
+ components: [Q2OptionList, Q2Option, Q2DropdownItem],
308
+ html: `
309
+ <q2-option-list>
310
+ <q2-option value="option-1">Option 1</q2-option>
311
+ <q2-option value="option-2" disabled-group>Option 2</q2-option>
312
+ <q2-option value="option-3">Option 3</q2-option>
313
+ </q2-option-list>
314
+ `,
315
+ });
316
+ const options = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('q2-option:not([disabled-group])');
317
+ const allVisibleOptions = specPage.rootInstance.allVisibleOptions;
318
+ expect(allVisibleOptions).toHaveLength(2);
319
+ expect(allVisibleOptions).toEqual(options);
320
+ });
321
+ });
322
+ describe('checkOptions', () => {
323
+ it('sets the option roles to option when type is listbox', async () => {
324
+ var _a;
325
+ specPage = await newSpecPage({
326
+ components: [Q2OptionList, Q2Option],
327
+ html: `
328
+ <q2-option-list type="listbox">
329
+ <q2-option value="1">Option 1</q2-option>
330
+ <q2-option value="2">Option 2</q2-option>
331
+ <q2-option value="3">Option 3</q2-option>
332
+ </q2-option-list>
333
+ `,
334
+ });
335
+ const options = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('q2-option');
336
+ expect(Array.from(options).every(option => option.role === 'option')).toBe(true);
337
+ });
338
+ it('sets the option roles to menuitem when type is menu', async () => {
339
+ var _a;
340
+ specPage = await newSpecPage({
341
+ components: [Q2OptionList, Q2Option],
342
+ html: `
343
+ <q2-option-list type="menu">
344
+ <q2-option value="1">Option 1</q2-option>
345
+ <q2-option value="2">Option 2</q2-option>
346
+ <q2-option value="3">Option 3</q2-option>
347
+ </q2-option-list>
348
+ `,
349
+ });
350
+ const options = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('q2-option');
351
+ expect(Array.from(options).every(option => option.role === 'menuitem')).toBe(true);
352
+ });
353
+ });
354
+ describe('clickHandler', () => {
355
+ it('calls selectOption with provided option and emits a popoverState event when multiple is false', async () => {
356
+ var _a;
357
+ specPage = await newSpecPage({
358
+ components: [Q2OptionList, Q2Option],
359
+ html: `
360
+ <q2-option-list>
361
+ <q2-option value="1">Option 1</q2-option>
362
+ <q2-option value="2">Option 2</q2-option>
363
+ <q2-option value="3">Option 3</q2-option>
364
+ </q2-option-list>
365
+ `,
366
+ });
367
+ const option = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelector('q2-option[value=2]');
368
+ const selectSpy = jest.spyOn(specPage.rootInstance, 'selectOption');
369
+ const popoverStateSpy = jest.spyOn(specPage.rootInstance.popoverState, 'emit');
370
+ specPage.rootInstance.clickHandler({ target: option });
371
+ await specPage.waitForChanges();
372
+ expect(selectSpy).toHaveBeenCalledWith(option);
373
+ expect(popoverStateSpy).toHaveBeenCalledWith({ open: false, action: 'select' });
374
+ });
375
+ it('calls selectOption with provided option and does not emit a popoverState event when multiple is true', async () => {
376
+ var _a;
377
+ specPage = await newSpecPage({
378
+ components: [Q2OptionList, Q2Option],
379
+ html: `
380
+ <q2-option-list multiple>
381
+ <q2-option value="1">Option 1</q2-option>
382
+ <q2-option value="2">Option 2</q2-option>
383
+ <q2-option value="3">Option 3</q2-option>
384
+ </q2-option-list>
385
+ `,
386
+ });
387
+ const option = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelector('q2-option[value=2]');
388
+ const selectSpy = jest.spyOn(specPage.rootInstance, 'selectOption');
389
+ const popoverStateSpy = jest.spyOn(specPage.rootInstance.popoverState, 'emit');
390
+ specPage.rootInstance.clickHandler({ target: option });
391
+ await specPage.waitForChanges();
392
+ expect(selectSpy).toHaveBeenCalledWith(option);
393
+ expect(popoverStateSpy).not.toHaveBeenCalled();
394
+ });
395
+ });
396
+ describe('getDefaultActiveIndex', () => {
397
+ describe('when populated with options', () => {
398
+ it('returns first option when no options are selected', async () => {
399
+ specPage = await newSpecPage({
400
+ components: [Q2OptionList, Q2Option],
401
+ html: `
402
+ <q2-option-list>
403
+ <q2-option value="1">Option 1</q2-option>
404
+ <q2-option value="2">Option 2</q2-option>
405
+ <q2-option value="3">Option 3</q2-option>
406
+ </q2-option-list>
407
+ `,
408
+ });
409
+ expect(await specPage.rootInstance.getDefaultActiveIndex()).toBe(0);
410
+ });
411
+ it('returns second option when the first option is hidden', async () => {
412
+ specPage = await newSpecPage({
413
+ components: [Q2OptionList, Q2Option],
414
+ html: `
415
+ <q2-option-list>
416
+ <q2-option value="1" hidden>Option 1</q2-option>
417
+ <q2-option value="2">Option 2</q2-option>
418
+ <q2-option value="3">Option 3</q2-option>
419
+ </q2-option-list>
420
+ `,
421
+ });
422
+ expect(await specPage.rootInstance.getDefaultActiveIndex()).toBe(1);
423
+ });
424
+ it('returns third option when is it marked selected', async () => {
425
+ var _a;
426
+ specPage = await newSpecPage({
427
+ components: [Q2OptionList, Q2Option],
428
+ html: `
429
+ <q2-option-list>
430
+ <q2-option value="1">Option 1</q2-option>
431
+ <q2-option value="2">Option 2</q2-option>
432
+ <q2-option value="3">Option 3</q2-option>
433
+ </q2-option-list>
434
+ `,
435
+ });
436
+ const lastOption = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('q2-option')[2];
437
+ lastOption.selected = true;
438
+ await specPage.waitForChanges();
439
+ expect(await specPage.rootInstance.getDefaultActiveIndex()).toBe(2);
440
+ });
441
+ });
442
+ });
443
+ describe('updateMultipleOptionAttrs', () => {
444
+ it('updates the attributes of multiple options', async () => {
445
+ var _a;
446
+ specPage = await newSpecPage({
447
+ components: [Q2OptionList, Q2Option],
448
+ html: `
449
+ <q2-option-list multiple>
450
+ <q2-option value="1">Option 1</q2-option>
451
+ <q2-option value="2">Option 2</q2-option>
452
+ <q2-option value="3">Option 3</q2-option>
453
+ </q2-option-list>
454
+ `,
455
+ });
456
+ const options = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('q2-option');
457
+ expect(Array.from(options).every(option => !option.selected)).toBe(true);
458
+ specPage.rootInstance.selectedOptions = [{ value: '1' }, { value: '3' }];
459
+ await specPage.waitForChanges();
460
+ expect(options[0].selected).toBe(true);
461
+ expect(options[1].selected).toBe(false);
462
+ expect(options[2].selected).toBe(true);
463
+ });
464
+ });
465
+ describe('updateSingleOptionAttrs', () => {
466
+ it('updates the attributes of a single option', async () => {
467
+ var _a;
468
+ specPage = await newSpecPage({
469
+ components: [Q2OptionList, Q2Option],
470
+ html: `
471
+ <q2-option-list>
472
+ <q2-option value="1">Option 1</q2-option>
473
+ <q2-option value="2">Option 2</q2-option>
474
+ <q2-option value="3">Option 3</q2-option>
475
+ </q2-option-list>
476
+ `,
477
+ });
478
+ const options = (_a = specPage.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('q2-option');
479
+ expect(Array.from(options).every(option => !option.selected)).toBe(true);
480
+ specPage.rootInstance.selectedOptions = [{ value: '2' }];
481
+ await specPage.waitForChanges();
482
+ expect(options[0].selected).toBe(false);
483
+ expect(options[1].selected).toBe(true);
484
+ expect(options[2].selected).toBe(false);
485
+ });
486
+ });
487
+ });
488
+ });
489
+ //# sourceMappingURL=q2-option-list.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"q2-option-list.spec.js","sourceRoot":"","sources":["../../../../src/components/q2-option-list/test/q2-option-list.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { SpecPage, newSpecPage } from '@stencil/core/testing';\nimport { Q2OptionList } from '@/components/q2-option-list/q2-option-list';\nimport { Q2Option } from '@/components/q2-option/q2-option';\nimport { Q2DropdownItem } from '@/components/q2-dropdown-item/q2-dropdown-item';\n\ndescribe('q2-option-list', () => {\n let specPage: SpecPage;\n\n describe('Props', () => {});\n\n describe('Events', () => {});\n\n describe('Listeners', () => {});\n\n describe('Methods', () => {});\n\n describe('Watchers', () => {\n describe('selectedOptionsUpdated', () => {\n it('executes updateSingleOptionAttrs when multple is false', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option],\n html: `\n <q2-option-list>\n <q2-option value=\"1\">Option 1</q2-option>\n <q2-option value=\"2\">Option 2</q2-option>\n <q2-option value=\"3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n specPage.rootInstance.updateMultipleOptionAttrs = jest.fn();\n specPage.rootInstance.updateSingleOptionAttrs = jest.fn();\n specPage.rootInstance.selectedOptions = [{ value: '2' }];\n await specPage.waitForChanges();\n expect(await specPage.rootInstance.updateMultipleOptionAttrs).not.toHaveBeenCalled();\n expect(await specPage.rootInstance.updateSingleOptionAttrs).toHaveBeenCalled();\n });\n\n it('executes updateMultipleOptionAttrs when multple is true', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option],\n html: `\n <q2-option-list multiple>\n <q2-option value=\"1\">Option 1</q2-option>\n <q2-option value=\"2\">Option 2</q2-option>\n <q2-option value=\"3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n specPage.rootInstance.updateMultipleOptionAttrs = jest.fn();\n specPage.rootInstance.updateSingleOptionAttrs = jest.fn();\n specPage.rootInstance.selectedOptions = [{ value: '2' }];\n await specPage.waitForChanges();\n expect(await specPage.rootInstance.updateMultipleOptionAttrs).toHaveBeenCalled();\n expect(await specPage.rootInstance.updateSingleOptionAttrs).not.toHaveBeenCalled();\n });\n });\n\n describe('showSelected', () => {\n it('re-sets showSelected to false if there are no selected options', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option],\n html: `\n <q2-option-list>\n <q2-option value=\"1\">Option 1</q2-option>\n <q2-option value=\"2\">Option 2</q2-option>\n <q2-option value=\"3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n specPage.rootInstance.selectedOptions = [];\n specPage.rootInstance.showSelected = true;\n await specPage.waitForChanges();\n expect(specPage.rootInstance.showSelected).toBe(false);\n });\n\n it('sets _multiSelectHidden on all unselected options when selectedOptions are present', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option],\n html: `\n <q2-option-list multiple>\n <q2-option value=\"1\">Option 1</q2-option>\n <q2-option value=\"2\">Option 2</q2-option>\n <q2-option value=\"3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n const options = specPage.root?.querySelectorAll('q2-option');\n expect(Array.from(options).every(option => !option._multiSelectHidden)).toBe(true);\n specPage.rootInstance.selectedOptions = [{ value: '2' }];\n specPage.rootInstance.showSelected = true;\n await specPage.waitForChanges();\n\n expect(options[0]._multiSelectHidden).toBe(true);\n expect(options[1]._multiSelectHidden).toBe(false);\n expect(options[2]._multiSelectHidden).toBe(true);\n expect(specPage.rootInstance.showSelected).toBe(true);\n });\n });\n });\n\n describe('Local methods', () => {\n describe('allContents', () => {\n it('return empty array when no options are present', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList],\n html: `<q2-option-list></q2-option-list>`,\n });\n\n expect(await specPage.rootInstance.allContents).toEqual([]);\n });\n\n it('return options', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList],\n html: `\n <q2-option-list>\n <q2-option value=\"option-1\">Option 1</q2-option>\n <q2-option value=\"option-2\">Option 2</q2-option>\n <q2-option value=\"option-3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n\n const options = specPage.root?.querySelectorAll('q2-option');\n expect(await specPage.rootInstance.allContents).toEqual(options);\n });\n\n it('return option groups', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList],\n html: `\n <q2-option-list>\n <q2-optgroup label=\"Group 1\">\n <q2-option value=\"grouped-option-1\">Grouped Option 1</q2-option>\n <q2-option value=\"grouped-option-2\">Grouped Option 2</q2-option>\n </q2-optgroup>\n </q2-option-list>\n `,\n });\n\n const optGroups = specPage.root?.querySelectorAll('q2-optgroup');\n expect(await specPage.rootInstance.allContents).toEqual(optGroups);\n });\n\n it('return dropdown items', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList],\n html: `\n <q2-option-list>\n <q2-dropdown-item value=\"dropdown-item-1\">Dropdown Item 1</q2-dropdown-item>\n <q2-dropdown-item value=\"dropdown-item-2\">Dropdown Item 2</q2-dropdown-item>\n <q2-dropdown-item value=\"dropdown-item-3\">Dropdown Item 3</q2-dropdown-item>\n </q2-option-list>\n `,\n });\n\n const dropdownItems = specPage.root?.querySelectorAll('q2-dropdown-item');\n expect(await specPage.rootInstance.allContents).toEqual(dropdownItems);\n });\n });\n\n describe('allOptions', () => {\n it('returns an empty array when no options are present', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option, Q2DropdownItem],\n html: `<q2-option-list></q2-option-list>`,\n });\n\n expect(specPage.rootInstance.allOptions).toEqual([]);\n });\n\n it('returns options', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option, Q2DropdownItem],\n html: `\n <q2-option-list>\n <q2-option value=\"option-1\">Option 1</q2-option>\n <q2-option value=\"option-2\">Option 2</q2-option>\n <q2-option value=\"option-3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n\n const options = specPage.root?.querySelectorAll('q2-option');\n const allOptions = specPage.rootInstance.allOptions;\n expect(allOptions).toHaveLength(3);\n expect(allOptions).toEqual(options);\n });\n\n it('returns options nested in groups', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option, Q2DropdownItem],\n html: `\n <q2-option-list>\n <q2-option value=\"option-1\">Option 1</q2-option>\n <q2-option value=\"option-2\">Option 2</q2-option>\n <q2-option value=\"option-3\">Option 3</q2-option>\n <q2-optgroup label=\"Group 1\">\n <q2-option value=\"grouped-option-1\">Grouped Option 1</q2-option>\n <q2-option value=\"grouped-option-2\">Grouped Option 2</q2-option>\n </q2-optgroup>\n </q2-option-list>\n `,\n });\n\n const options = specPage.root?.querySelectorAll('q2-option');\n const allOptions = specPage.rootInstance.allOptions;\n expect(allOptions).toHaveLength(5);\n expect(allOptions).toEqual(options);\n });\n\n it('returns dropdown items', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option, Q2DropdownItem],\n html: `\n <q2-option-list>\n <q2-dropdown-item value=\"dropdown-item-1\">Dropdown Item 1</q2-dropdown-item>\n <q2-dropdown-item value=\"dropdown-item-2\">Dropdown Item 2</q2-dropdown-item>\n <q2-dropdown-item value=\"dropdown-item-3\">Dropdown Item 3</q2-dropdown-item>\n </q2-option-list>\n `,\n });\n\n const dropdownItems = specPage.root?.querySelectorAll('q2-dropdown-item');\n const allOptions = specPage.rootInstance.allOptions;\n expect(allOptions).toHaveLength(3);\n expect(allOptions).toEqual(dropdownItems);\n });\n\n it('does not return options that have the separator attribute', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option, Q2DropdownItem],\n html: `\n <q2-option-list>\n <q2-option value=\"option-1\">Option 1</q2-option>\n <q2-option value=\"option-2\" separator>Option 2</q2-option>\n <q2-option value=\"option-3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n\n const options = specPage.root?.querySelectorAll('q2-option:not([separator])');\n const allOptions = specPage.rootInstance.allOptions;\n expect(allOptions).toHaveLength(2);\n expect(allOptions).toEqual(options);\n });\n\n it('does not return dropdown items that ahve the separator attribute', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option, Q2DropdownItem],\n html: `\n <q2-option-list>\n <q2-dropdown-item value=\"dropdown-item-1\">Dropdown Item 1</q2-dropdown-item>\n <q2-dropdown-item value=\"dropdown-item-2\" separator>Dropdown Item 2</q2-dropdown-item>\n <q2-dropdown-item value=\"dropdown-item-3\">Dropdown Item 3</q2-dropdown-item>\n </q2-option-list>\n `,\n });\n\n const dropdownItems = specPage.root?.querySelectorAll('q2-dropdown-item:not([separator])');\n const allOptions = specPage.rootInstance.allOptions;\n expect(allOptions).toHaveLength(2);\n expect(allOptions).toEqual(dropdownItems);\n });\n });\n\n describe('allVisibleOptions', () => {\n it('returns an empty array when no options are present', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option, Q2DropdownItem],\n html: `<q2-option-list></q2-option-list>`,\n });\n\n expect(specPage.rootInstance.allVisibleOptions).toEqual([]);\n });\n\n it('does not return options with the hidden attribute', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option, Q2DropdownItem],\n html: `\n <q2-option-list>\n <q2-option value=\"option-1\">Option 1</q2-option>\n <q2-option value=\"option-2\" hidden>Option 2</q2-option>\n <q2-option value=\"option-3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n\n const options = specPage.root?.querySelectorAll('q2-option:not([hidden])');\n const allVisibleOptions = specPage.rootInstance.allVisibleOptions;\n expect(allVisibleOptions).toHaveLength(2);\n expect(allVisibleOptions).toEqual(options);\n });\n\n it('does not return options with the _multiSelectHidden attribute', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option, Q2DropdownItem],\n html: `\n <q2-option-list>\n <q2-option value=\"option-1\">Option 1</q2-option>\n <q2-option value=\"option-2\" _multiSelectHidden>Option 2</q2-option>\n <q2-option value=\"option-3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n\n const options = specPage.root?.querySelectorAll('q2-option:not([_multiSelectHidden])');\n const allVisibleOptions = specPage.rootInstance.allVisibleOptions;\n expect(allVisibleOptions).toHaveLength(2);\n expect(allVisibleOptions).toEqual(options);\n });\n\n it('does not return options with the disabled attribute', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option, Q2DropdownItem],\n html: `\n <q2-option-list>\n <q2-option value=\"option-1\">Option 1</q2-option>\n <q2-option value=\"option-2\" disabled>Option 2</q2-option>\n <q2-option value=\"option-3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n\n const options = specPage.root?.querySelectorAll('q2-option:not([disabled])');\n const allVisibleOptions = specPage.rootInstance.allVisibleOptions;\n expect(allVisibleOptions).toHaveLength(2);\n expect(allVisibleOptions).toEqual(options);\n });\n\n it('does not return options with the disabled-group attribute', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option, Q2DropdownItem],\n html: `\n <q2-option-list>\n <q2-option value=\"option-1\">Option 1</q2-option>\n <q2-option value=\"option-2\" disabled-group>Option 2</q2-option>\n <q2-option value=\"option-3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n\n const options = specPage.root?.querySelectorAll('q2-option:not([disabled-group])');\n const allVisibleOptions = specPage.rootInstance.allVisibleOptions;\n expect(allVisibleOptions).toHaveLength(2);\n expect(allVisibleOptions).toEqual(options);\n });\n });\n\n describe('checkOptions', () => {\n it('sets the option roles to option when type is listbox', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option],\n html: `\n <q2-option-list type=\"listbox\">\n <q2-option value=\"1\">Option 1</q2-option>\n <q2-option value=\"2\">Option 2</q2-option>\n <q2-option value=\"3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n\n const options = specPage.root?.querySelectorAll('q2-option');\n expect(Array.from(options).every(option => option.role === 'option')).toBe(true);\n });\n\n it('sets the option roles to menuitem when type is menu', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option],\n html: `\n <q2-option-list type=\"menu\">\n <q2-option value=\"1\">Option 1</q2-option>\n <q2-option value=\"2\">Option 2</q2-option>\n <q2-option value=\"3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n\n const options = specPage.root?.querySelectorAll('q2-option');\n expect(Array.from(options).every(option => option.role === 'menuitem')).toBe(true);\n });\n });\n\n describe('clickHandler', () => {\n it('calls selectOption with provided option and emits a popoverState event when multiple is false', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option],\n html: `\n <q2-option-list>\n <q2-option value=\"1\">Option 1</q2-option>\n <q2-option value=\"2\">Option 2</q2-option>\n <q2-option value=\"3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n\n const option = specPage.root?.querySelector('q2-option[value=2]');\n const selectSpy = jest.spyOn(specPage.rootInstance, 'selectOption');\n const popoverStateSpy = jest.spyOn(specPage.rootInstance.popoverState, 'emit');\n specPage.rootInstance.clickHandler({ target: option });\n await specPage.waitForChanges();\n expect(selectSpy).toHaveBeenCalledWith(option);\n expect(popoverStateSpy).toHaveBeenCalledWith({ open: false, action: 'select' });\n });\n\n it('calls selectOption with provided option and does not emit a popoverState event when multiple is true', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option],\n html: `\n <q2-option-list multiple>\n <q2-option value=\"1\">Option 1</q2-option>\n <q2-option value=\"2\">Option 2</q2-option>\n <q2-option value=\"3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n\n const option = specPage.root?.querySelector('q2-option[value=2]');\n const selectSpy = jest.spyOn(specPage.rootInstance, 'selectOption');\n const popoverStateSpy = jest.spyOn(specPage.rootInstance.popoverState, 'emit');\n specPage.rootInstance.clickHandler({ target: option });\n await specPage.waitForChanges();\n expect(selectSpy).toHaveBeenCalledWith(option);\n expect(popoverStateSpy).not.toHaveBeenCalled();\n });\n });\n\n describe('getDefaultActiveIndex', () => {\n describe('when populated with options', () => {\n it('returns first option when no options are selected', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option],\n html: `\n <q2-option-list>\n <q2-option value=\"1\">Option 1</q2-option>\n <q2-option value=\"2\">Option 2</q2-option>\n <q2-option value=\"3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n\n expect(await specPage.rootInstance.getDefaultActiveIndex()).toBe(0);\n });\n\n it('returns second option when the first option is hidden', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option],\n html: `\n <q2-option-list>\n <q2-option value=\"1\" hidden>Option 1</q2-option>\n <q2-option value=\"2\">Option 2</q2-option>\n <q2-option value=\"3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n\n expect(await specPage.rootInstance.getDefaultActiveIndex()).toBe(1);\n });\n\n it('returns third option when is it marked selected', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option],\n html: `\n <q2-option-list>\n <q2-option value=\"1\">Option 1</q2-option>\n <q2-option value=\"2\">Option 2</q2-option>\n <q2-option value=\"3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n\n const lastOption = specPage.root?.querySelectorAll('q2-option')[2];\n lastOption.selected = true;\n await specPage.waitForChanges();\n\n expect(await specPage.rootInstance.getDefaultActiveIndex()).toBe(2);\n });\n });\n });\n\n describe('updateMultipleOptionAttrs', () => {\n it('updates the attributes of multiple options', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option],\n html: `\n <q2-option-list multiple>\n <q2-option value=\"1\">Option 1</q2-option>\n <q2-option value=\"2\">Option 2</q2-option>\n <q2-option value=\"3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n\n const options = specPage.root?.querySelectorAll('q2-option');\n expect(Array.from(options).every(option => !option.selected)).toBe(true);\n\n specPage.rootInstance.selectedOptions = [{ value: '1' }, { value: '3' }];\n await specPage.waitForChanges();\n\n expect(options[0].selected).toBe(true);\n expect(options[1].selected).toBe(false);\n expect(options[2].selected).toBe(true);\n });\n });\n\n describe('updateSingleOptionAttrs', () => {\n it('updates the attributes of a single option', async () => {\n specPage = await newSpecPage({\n components: [Q2OptionList, Q2Option],\n html: `\n <q2-option-list>\n <q2-option value=\"1\">Option 1</q2-option>\n <q2-option value=\"2\">Option 2</q2-option>\n <q2-option value=\"3\">Option 3</q2-option>\n </q2-option-list>\n `,\n });\n\n const options = specPage.root?.querySelectorAll('q2-option');\n expect(Array.from(options).every(option => !option.selected)).toBe(true);\n\n specPage.rootInstance.selectedOptions = [{ value: '2' }];\n await specPage.waitForChanges();\n\n expect(options[0].selected).toBe(false);\n expect(options[1].selected).toBe(true);\n expect(options[2].selected).toBe(false);\n });\n });\n });\n});\n"]}
@@ -256,7 +256,7 @@ export class Q2Pagination {
256
256
  total,
257
257
  });
258
258
  }
259
- return (h("nav", { key: '8a2e727916a9f0c54fc640102cde35c60db473a3', class: "container", ref: el => (this.containerElement = el), "aria-label": loc('tecton.element.pagination.title') }, h("div", { key: '55ec9b43e1e2a79b941832fdfb3d6bb210406517', class: "description", "test-id": "description" }, pagesOnly
259
+ return (h("nav", { key: 'd91e1f0ba5a239c95fd16bda94ef1e614e3c49be', class: "container", ref: el => (this.containerElement = el), "aria-label": loc('tecton.element.pagination.title') }, h("div", { key: 'aeb52cf10ec37a0ed9459660b9dad1df86e06ca1', class: "description", "test-id": "description" }, pagesOnly
260
260
  ? loc('tecton.element.pagination.pages', {
261
261
  current: page,
262
262
  total: totalPages,
@@ -265,10 +265,10 @@ export class Q2Pagination {
265
265
  range: currentRange,
266
266
  recordType: recordType.toLowerCase(),
267
267
  total: total.toLocaleString(),
268
- })), h("div", { key: 'ad29852acbfbfae252360365c02f9923479a7c86', class: "btn-group" }, h("q2-btn", { key: '12b4ab1d5b571b5b1e9245ef2d1c5d44f710e02f', ref: el => (this.firstPageBtn = el), label: loc('tecton.element.pagination.goToFirstPage'), disabled: onFirstPage, hidden: isFullViewHidden, onClick: () => this.handlePageChange(1), "test-id": "firstPageBtn", "hide-label": true }, h("q2-icon", { key: '296af593f598921c4e56fd7be4b8b8b1135e3536', type: "chevron-double-left" })), h("q2-btn", { key: '40eab0d80b0b2bdc1f8c5bd7d99b04b9dcb735e0', ref: el => (this.prevPageBtn = el), label: prevButtonLabel, disabled: onFirstPage, onClick: () => this.handlePageChange(page - 1), "test-id": "prevPageBtn", "hide-label": true }, h("q2-icon", { key: '6b8e035c7cc586402d994c63ad51491bc7e19772', type: "chevron-left" }))), h("div", { key: '62beac888b094f0b37ee48e7e4ee4781bc050bd5', class: "controls", hidden: isFullViewHidden, "test-id": "controls" }, h("span", { key: '6e225fad678da3ecf42ed7ae8aa76e4ca979b65e', "aria-hidden": "true" }, loc('tecton.element.pagination.page')), h("div", { key: '84290986cf2c3f9a143024a90e874c5c07ad4e6c', class: "input-wrapper", onClick: () => this.inputField.dispatchEvent(new FocusEvent('focus')) }, h("q2-input", { key: '967423114bf9a5854114c125d942f5273fde5af4', ref: el => (this.inputField = el), type: "number", value: `${page}`, min: 1, max: this.totalPages, hideLabel: true, optional: true, label: `${loc('tecton.element.pagination.page')} (${loc('tecton.element.pagination.ofPages', [totalPages.toLocaleString()])})`, onChange: event => {
268
+ })), h("div", { key: '24c8e8166dc90238960ae3afad0ff36eac4af66c', class: "btn-group" }, h("q2-btn", { key: '7be7b963cba6c9dd5b45bced73085ff495fd4130', ref: el => (this.firstPageBtn = el), label: loc('tecton.element.pagination.goToFirstPage'), disabled: onFirstPage, hidden: isFullViewHidden, onClick: () => this.handlePageChange(1), "test-id": "firstPageBtn", "hide-label": true }, h("q2-icon", { key: '7d58766f3d7307bcfb193d981c95895b58c2bbfb', type: "chevron-double-left" })), h("q2-btn", { key: 'b016eda2499b36b7fd82b84d39357dfa8c9f8719', ref: el => (this.prevPageBtn = el), label: prevButtonLabel, disabled: onFirstPage, onClick: () => this.handlePageChange(page - 1), "test-id": "prevPageBtn", "hide-label": true }, h("q2-icon", { key: 'd1bed177625bf672d109fbc8a127961818dd3364', type: "chevron-left" }))), h("div", { key: '62e7fb1e7379d54ace49f4f09f591cae2884479d', class: "controls", hidden: isFullViewHidden, "test-id": "controls" }, h("span", { key: 'ff7ee6d921a0fe08ab4705714af8a1106eb1e174', "aria-hidden": "true" }, loc('tecton.element.pagination.page')), h("div", { key: 'e59bb32e696dfe162099f3efe19f95e7c76cad7b', class: "input-wrapper", onClick: () => this.inputField.dispatchEvent(new FocusEvent('focus')) }, h("q2-input", { key: 'ecc4215e2beefd4e099f57a421d0a732cb4e14dc', ref: el => (this.inputField = el), type: "number", value: `${page}`, min: 1, max: this.totalPages, hideLabel: true, optional: true, label: `${loc('tecton.element.pagination.page')} (${loc('tecton.element.pagination.ofPages', [totalPages.toLocaleString()])})`, onChange: event => {
269
269
  event.stopPropagation();
270
270
  this.handlePageChange(event.detail.value);
271
- }, "test-id": "pageInput", current: "page" })), h("span", { key: '52467f0a14e0a507bda83ba1b72b3bd4497cadfd', "aria-hidden": "true" }, loc('tecton.element.pagination.ofPages', [totalPages.toLocaleString()]))), h("div", { key: '8b021224f60e3592a79b563eda8ad98cdb249656', class: "btn-group" }, h("q2-btn", { key: '82e8053bf38f73809a596fc1b210891b655c1196', ref: el => (this.nextPageBtn = el), label: nextButtonLabel, disabled: onLastPage, onClick: () => this.handlePageChange(page + 1), "test-id": "nextPageBtn", "hide-label": true }, h("q2-icon", { key: 'df57f2118875655de3cb982efb599b69e7055262', type: "chevron-right" })), h("q2-btn", { key: '079c89d787894f7ee0df567c4353f8128a262ffe', ref: el => (this.lastPageBtn = el), label: "tecton.element.pagination.goToLastPage", disabled: onLastPage, hidden: isFullViewHidden, onClick: () => this.handlePageChange(totalPages), "test-id": "lastPageBtn", "hide-label": true }, h("q2-icon", { key: '471978bc526011e24176b82b04bee53608b06994', type: "chevron-double-right" }))), h("div", { key: '2a990aa01103daf8d47cdf35a506596a3d1f4453', class: "per-page", hidden: isFullViewHidden || !((_a = this.perPageIncrements) === null || _a === void 0 ? void 0 : _a.length) }, showPerPageSelect && this.renderPerPage())));
271
+ }, "test-id": "pageInput", current: "page" })), h("span", { key: 'cd543116816cfe374b02fa366d64cade2887b51a', "aria-hidden": "true" }, loc('tecton.element.pagination.ofPages', [totalPages.toLocaleString()]))), h("div", { key: '98826e8fbbe89ea9c34208ec8066ab47a8a17550', class: "btn-group" }, h("q2-btn", { key: '5066ad089677456d90b660299b0260cc819c3e60', ref: el => (this.nextPageBtn = el), label: nextButtonLabel, disabled: onLastPage, onClick: () => this.handlePageChange(page + 1), "test-id": "nextPageBtn", "hide-label": true }, h("q2-icon", { key: 'e3364523c842d9a345fd34c05cbcba87ae14da80', type: "chevron-right" })), h("q2-btn", { key: 'a920ed7346c5fcadbac7c244dc1cabddd8e22b36', ref: el => (this.lastPageBtn = el), label: "tecton.element.pagination.goToLastPage", disabled: onLastPage, hidden: isFullViewHidden, onClick: () => this.handlePageChange(totalPages), "test-id": "lastPageBtn", "hide-label": true }, h("q2-icon", { key: '49e610ac8459a60eac6ec771fbb3208a4a25ac34', type: "chevron-double-right" }))), h("div", { key: '07bbdd2c0ddef20d8a14152c5977376389246c15', class: "per-page", hidden: isFullViewHidden || !((_a = this.perPageIncrements) === null || _a === void 0 ? void 0 : _a.length) }, showPerPageSelect && this.renderPerPage())));
272
272
  }
273
273
  static get is() { return "q2-pagination"; }
274
274
  static get encapsulation() { return "shadow"; }