q2-tecton-elements 1.67.2 → 1.68.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 (807) hide show
  1. package/dist/bundle-report.json +22598 -10670
  2. package/dist/cjs/click-elsewhere.q2-option-list.q2-popover.entry.cjs.js.map +1 -1
  3. package/dist/cjs/click-elsewhere_3.cjs.entry.js +46 -32
  4. package/dist/cjs/click-elsewhere_3.cjs.entry.js.map +1 -1
  5. package/dist/cjs/{component-DRAntnCA.js → component-iASoq6gx.js} +9 -3
  6. package/dist/cjs/component-iASoq6gx.js.map +1 -0
  7. package/dist/cjs/{index-YvKoRT-t.js → index-DmGkqdX2.js} +3 -3
  8. package/dist/cjs/index-DmGkqdX2.js.map +1 -0
  9. package/dist/cjs/loader.cjs.js +1 -1
  10. package/dist/cjs/q2-action-group.q2-resize-observer.entry.cjs.js.map +1 -1
  11. package/dist/cjs/q2-action-group_2.cjs.entry.js +2 -2
  12. package/dist/cjs/q2-action-group_2.cjs.entry.js.map +1 -1
  13. package/dist/cjs/q2-action-sheet.cjs.entry.js +109 -4
  14. package/dist/cjs/q2-action-sheet.cjs.entry.js.map +1 -1
  15. package/dist/cjs/q2-action-sheet.entry.cjs.js.map +1 -1
  16. package/dist/cjs/q2-avatar.cjs.entry.js.map +1 -1
  17. package/dist/cjs/q2-avatar.entry.cjs.js.map +1 -1
  18. package/dist/cjs/q2-badge.cjs.entry.js +1 -1
  19. package/dist/cjs/q2-badge.cjs.entry.js.map +1 -1
  20. package/dist/cjs/q2-badge.entry.cjs.js.map +1 -1
  21. package/dist/cjs/q2-btn.q2-loading.entry.cjs.js.map +1 -1
  22. package/dist/cjs/q2-btn_2.cjs.entry.js +1 -1
  23. package/dist/cjs/q2-btn_2.cjs.entry.js.map +1 -1
  24. package/dist/cjs/q2-calendar.cjs.entry.js +6 -3
  25. package/dist/cjs/q2-calendar.cjs.entry.js.map +1 -1
  26. package/dist/cjs/q2-calendar.entry.cjs.js.map +1 -1
  27. package/dist/cjs/q2-card-image.cjs.entry.js +2 -2
  28. package/dist/cjs/q2-card-image.cjs.entry.js.map +1 -1
  29. package/dist/cjs/q2-card-image.entry.cjs.js.map +1 -1
  30. package/dist/cjs/q2-card.cjs.entry.js +1 -1
  31. package/dist/cjs/q2-card.cjs.entry.js.map +1 -1
  32. package/dist/cjs/q2-card.entry.cjs.js.map +1 -1
  33. package/dist/cjs/q2-carousel-pane.cjs.entry.js +3 -3
  34. package/dist/cjs/q2-carousel-pane.cjs.entry.js.map +1 -1
  35. package/dist/cjs/q2-carousel-pane.entry.cjs.js.map +1 -1
  36. package/dist/cjs/q2-carousel.cjs.entry.js +162 -29
  37. package/dist/cjs/q2-carousel.cjs.entry.js.map +1 -1
  38. package/dist/cjs/q2-carousel.entry.cjs.js.map +1 -1
  39. package/dist/cjs/q2-chart-area.cjs.entry.js +1 -1
  40. package/dist/cjs/q2-chart-bar.cjs.entry.js +1 -1
  41. package/dist/cjs/q2-chart-donut.cjs.entry.js +3 -2
  42. package/dist/cjs/q2-chart-donut.cjs.entry.js.map +1 -1
  43. package/dist/cjs/q2-chart-donut.entry.cjs.js.map +1 -1
  44. package/dist/cjs/q2-checkbox-group.cjs.entry.js +2 -2
  45. package/dist/cjs/q2-checkbox-group.cjs.entry.js.map +1 -1
  46. package/dist/cjs/q2-checkbox-group.entry.cjs.js.map +1 -1
  47. package/dist/cjs/q2-checkbox.q2-tag.entry.cjs.js.map +1 -1
  48. package/dist/cjs/q2-checkbox_2.cjs.entry.js +3 -3
  49. package/dist/cjs/q2-checkbox_2.cjs.entry.js.map +1 -1
  50. package/dist/cjs/q2-context.cjs.entry.js +2 -2
  51. package/dist/cjs/q2-context.cjs.entry.js.map +1 -1
  52. package/dist/cjs/q2-context.entry.cjs.js.map +1 -1
  53. package/dist/cjs/q2-currency.cjs.entry.js +2 -3
  54. package/dist/cjs/q2-currency.cjs.entry.js.map +1 -1
  55. package/dist/cjs/q2-currency.entry.cjs.js.map +1 -1
  56. package/dist/cjs/q2-data-table.cjs.entry.js +2 -2
  57. package/dist/cjs/q2-data-table.cjs.entry.js.map +1 -1
  58. package/dist/cjs/q2-data-table.entry.cjs.js.map +1 -1
  59. package/dist/cjs/q2-detail.cjs.entry.js +2 -2
  60. package/dist/cjs/q2-detail.cjs.entry.js.map +1 -1
  61. package/dist/cjs/q2-detail.entry.cjs.js.map +1 -1
  62. package/dist/cjs/q2-dropdown-item.cjs.entry.js +2 -2
  63. package/dist/cjs/q2-dropdown-item.cjs.entry.js.map +1 -1
  64. package/dist/cjs/q2-dropdown-item.entry.cjs.js.map +1 -1
  65. package/dist/cjs/q2-dropdown.cjs.entry.js +3 -5
  66. package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
  67. package/dist/cjs/q2-dropdown.entry.cjs.js.map +1 -1
  68. package/dist/cjs/q2-editable-field.cjs.entry.js +1 -1
  69. package/dist/cjs/q2-editable-field.cjs.entry.js.map +1 -1
  70. package/dist/cjs/q2-editable-field.entry.cjs.js.map +1 -1
  71. package/dist/cjs/q2-example.cjs.entry.js +1 -1
  72. package/dist/cjs/q2-file-picker.cjs.entry.js +1 -1
  73. package/dist/cjs/q2-file-picker.cjs.entry.js.map +1 -1
  74. package/dist/cjs/q2-file-picker.entry.cjs.js.map +1 -1
  75. package/dist/cjs/q2-form.cjs.entry.js +2 -2
  76. package/dist/cjs/q2-form.cjs.entry.js.map +1 -1
  77. package/dist/cjs/q2-form.entry.cjs.js.map +1 -1
  78. package/dist/cjs/q2-formatted-text.cjs.entry.js +1 -1
  79. package/dist/cjs/q2-formatted-text.cjs.entry.js.map +1 -1
  80. package/dist/cjs/q2-formatted-text.entry.cjs.js.map +1 -1
  81. package/dist/cjs/q2-grid-area.cjs.entry.js +1 -1
  82. package/dist/cjs/q2-grid.cjs.entry.js +32 -8
  83. package/dist/cjs/q2-grid.cjs.entry.js.map +1 -1
  84. package/dist/cjs/q2-grid.entry.cjs.js.map +1 -1
  85. package/dist/cjs/q2-icon.cjs.entry.js +1 -1
  86. package/dist/cjs/q2-icon.cjs.entry.js.map +1 -1
  87. package/dist/cjs/q2-icon.entry.cjs.js.map +1 -1
  88. package/dist/cjs/q2-input.cjs.entry.js +8 -5
  89. package/dist/cjs/q2-input.cjs.entry.js.map +1 -1
  90. package/dist/cjs/q2-input.entry.cjs.js.map +1 -1
  91. package/dist/cjs/q2-item.cjs.entry.js +2 -2
  92. package/dist/cjs/q2-item.cjs.entry.js.map +1 -1
  93. package/dist/cjs/q2-item.entry.cjs.js.map +1 -1
  94. package/dist/cjs/q2-legend.cjs.entry.js +2 -3
  95. package/dist/cjs/q2-legend.cjs.entry.js.map +1 -1
  96. package/dist/cjs/q2-legend.entry.cjs.js.map +1 -1
  97. package/dist/cjs/q2-link.q2-list.entry.cjs.js.map +1 -1
  98. package/dist/cjs/q2-link_2.cjs.entry.js +2 -2
  99. package/dist/cjs/q2-link_2.cjs.entry.js.map +1 -1
  100. package/dist/cjs/q2-loc.cjs.entry.js +1 -1
  101. package/dist/cjs/q2-message.cjs.entry.js +3 -3
  102. package/dist/cjs/q2-message.cjs.entry.js.map +1 -1
  103. package/dist/cjs/q2-message.entry.cjs.js.map +1 -1
  104. package/dist/cjs/q2-meter.cjs.entry.js +2 -2
  105. package/dist/cjs/q2-meter.cjs.entry.js.map +1 -1
  106. package/dist/cjs/q2-meter.entry.cjs.js.map +1 -1
  107. package/dist/cjs/q2-modal.cjs.entry.js +3 -3
  108. package/dist/cjs/q2-modal.cjs.entry.js.map +1 -1
  109. package/dist/cjs/q2-modal.entry.cjs.js.map +1 -1
  110. package/dist/cjs/q2-month-picker.cjs.entry.js +1 -1
  111. package/dist/cjs/q2-mutation-observer.cjs.entry.js +1 -1
  112. package/dist/cjs/q2-optgroup.cjs.entry.js +3 -3
  113. package/dist/cjs/q2-optgroup.cjs.entry.js.map +1 -1
  114. package/dist/cjs/q2-optgroup.entry.cjs.js.map +1 -1
  115. package/dist/cjs/q2-option.cjs.entry.js +3 -3
  116. package/dist/cjs/q2-option.cjs.entry.js.map +1 -1
  117. package/dist/cjs/q2-option.entry.cjs.js.map +1 -1
  118. package/dist/cjs/q2-otp.cjs.entry.js +373 -0
  119. package/dist/cjs/q2-otp.cjs.entry.js.map +1 -0
  120. package/dist/cjs/q2-otp.entry.cjs.js.map +1 -0
  121. package/dist/cjs/q2-pagination.cjs.entry.js +4 -4
  122. package/dist/cjs/q2-pagination.cjs.entry.js.map +1 -1
  123. package/dist/cjs/q2-pagination.entry.cjs.js.map +1 -1
  124. package/dist/cjs/q2-pill.cjs.entry.js +24 -15
  125. package/dist/cjs/q2-pill.cjs.entry.js.map +1 -1
  126. package/dist/cjs/q2-pill.entry.cjs.js.map +1 -1
  127. package/dist/cjs/q2-radio-group.cjs.entry.js +1 -1
  128. package/dist/cjs/q2-radio-group.cjs.entry.js.map +1 -1
  129. package/dist/cjs/q2-radio-group.entry.cjs.js.map +1 -1
  130. package/dist/cjs/q2-radio.cjs.entry.js +3 -3
  131. package/dist/cjs/q2-radio.cjs.entry.js.map +1 -1
  132. package/dist/cjs/q2-radio.entry.cjs.js.map +1 -1
  133. package/dist/cjs/q2-relative-time.cjs.entry.js +2 -2
  134. package/dist/cjs/q2-section-container.cjs.entry.js +1 -1
  135. package/dist/cjs/q2-section.cjs.entry.js +3 -3
  136. package/dist/cjs/q2-section.cjs.entry.js.map +1 -1
  137. package/dist/cjs/q2-section.entry.cjs.js.map +1 -1
  138. package/dist/cjs/q2-select.cjs.entry.js +1 -1
  139. package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
  140. package/dist/cjs/q2-select.entry.cjs.js.map +1 -1
  141. package/dist/cjs/q2-stepper-pane.cjs.entry.js +3 -3
  142. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +2 -2
  143. package/dist/cjs/q2-stepper-vertical.cjs.entry.js.map +1 -1
  144. package/dist/cjs/q2-stepper-vertical.entry.cjs.js.map +1 -1
  145. package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
  146. package/dist/cjs/q2-stepper.cjs.entry.js.map +1 -1
  147. package/dist/cjs/q2-stepper.entry.cjs.js.map +1 -1
  148. package/dist/cjs/q2-tab-container.cjs.entry.js +3 -3
  149. package/dist/cjs/q2-tab-container.cjs.entry.js.map +1 -1
  150. package/dist/cjs/q2-tab-container.entry.cjs.js.map +1 -1
  151. package/dist/cjs/q2-tab-pane.cjs.entry.js +2 -2
  152. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  153. package/dist/cjs/q2-textarea.cjs.entry.js +1 -1
  154. package/dist/cjs/q2-textarea.cjs.entry.js.map +1 -1
  155. package/dist/cjs/q2-textarea.entry.cjs.js.map +1 -1
  156. package/dist/cjs/q2-toast.cjs.entry.js +1 -1
  157. package/dist/cjs/q2-toast.cjs.entry.js.map +1 -1
  158. package/dist/cjs/q2-toast.entry.cjs.js.map +1 -1
  159. package/dist/cjs/q2-tooltip.cjs.entry.js +124 -5
  160. package/dist/cjs/q2-tooltip.cjs.entry.js.map +1 -1
  161. package/dist/cjs/q2-tooltip.entry.cjs.js.map +1 -1
  162. package/dist/cjs/{sanitize-html-string-CW6y5624.js → sanitize-html-string-D17Pr7-c.js} +21 -4
  163. package/dist/cjs/{sanitize-html-string-CW6y5624.js.map → sanitize-html-string-D17Pr7-c.js.map} +1 -1
  164. package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
  165. package/dist/collection/collection-manifest.json +1 -0
  166. package/dist/collection/components/click-elsewhere/click-elsewhere.js +2 -0
  167. package/dist/collection/components/click-elsewhere/click-elsewhere.js.map +1 -1
  168. package/dist/collection/components/q2-action-group/q2-action-group.css +14 -0
  169. package/dist/collection/components/q2-action-sheet/q2-action-sheet.css +16 -0
  170. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +107 -2
  171. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js.map +1 -1
  172. package/dist/collection/components/q2-avatar/q2-avatar.css +24 -0
  173. package/dist/collection/components/q2-avatar/test/q2-avatar-test.vr.js +61 -0
  174. package/dist/collection/components/q2-avatar/test/q2-avatar-test.vr.js.map +1 -0
  175. package/dist/collection/components/q2-badge/q2-badge.css +30 -0
  176. package/dist/collection/components/q2-badge/test/q2-badge-test.vr.js +34 -0
  177. package/dist/collection/components/q2-badge/test/q2-badge-test.vr.js.map +1 -0
  178. package/dist/collection/components/q2-btn/q2-btn.css +279 -0
  179. package/dist/collection/components/q2-btn/test/q2-btn-test.vr.js +80 -0
  180. package/dist/collection/components/q2-btn/test/q2-btn-test.vr.js.map +1 -0
  181. package/dist/collection/components/q2-calendar/q2-calendar.css +36 -0
  182. package/dist/collection/components/q2-calendar/q2-calendar.js +5 -2
  183. package/dist/collection/components/q2-calendar/q2-calendar.js.map +1 -1
  184. package/dist/collection/components/q2-calendar/test/q2-calendar-test.vr.js +170 -0
  185. package/dist/collection/components/q2-calendar/test/q2-calendar-test.vr.js.map +1 -0
  186. package/dist/collection/components/q2-card/q2-card.css +62 -0
  187. package/dist/collection/components/q2-card/test/q2-card-test.vr.js +72 -0
  188. package/dist/collection/components/q2-card/test/q2-card-test.vr.js.map +1 -0
  189. package/dist/collection/components/q2-card-image/q2-card-image.css +74 -13
  190. package/dist/collection/components/q2-card-image/test/q2-card-image-test.vr.js +152 -0
  191. package/dist/collection/components/q2-card-image/test/q2-card-image-test.vr.js.map +1 -0
  192. package/dist/collection/components/q2-carousel/q2-carousel.css +78 -13
  193. package/dist/collection/components/q2-carousel/q2-carousel.js +241 -27
  194. package/dist/collection/components/q2-carousel/q2-carousel.js.map +1 -1
  195. package/dist/collection/components/q2-carousel/test/q2-carousel-test.vr.js +104 -0
  196. package/dist/collection/components/q2-carousel/test/q2-carousel-test.vr.js.map +1 -0
  197. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.css +26 -1
  198. package/dist/collection/components/q2-chart-area/test/q2-chart-area-test.vr.js +126 -0
  199. package/dist/collection/components/q2-chart-area/test/q2-chart-area-test.vr.js.map +1 -0
  200. package/dist/collection/components/q2-chart-bar/test/q2-chart-bar-test.vr.js +105 -0
  201. package/dist/collection/components/q2-chart-bar/test/q2-chart-bar-test.vr.js.map +1 -0
  202. package/dist/collection/components/q2-chart-donut/q2-chart-donut.css +29 -0
  203. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +21 -1
  204. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js.map +1 -1
  205. package/dist/collection/components/q2-chart-donut/test/q2-chart-donut-test.vr.js +151 -0
  206. package/dist/collection/components/q2-chart-donut/test/q2-chart-donut-test.vr.js.map +1 -0
  207. package/dist/collection/components/q2-checkbox/q2-checkbox.css +128 -0
  208. package/dist/collection/components/q2-checkbox/test/q2-checkbox-test.vr.js +69 -0
  209. package/dist/collection/components/q2-checkbox/test/q2-checkbox-test.vr.js.map +1 -0
  210. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.css +21 -0
  211. package/dist/collection/components/q2-checkbox-group/test/q2-checkbox-group-test.vr.js +61 -0
  212. package/dist/collection/components/q2-checkbox-group/test/q2-checkbox-group-test.vr.js.map +1 -0
  213. package/dist/collection/components/q2-context/q2-context.css +16 -0
  214. package/dist/collection/components/q2-context/test/q2-context-test.vr.js +95 -0
  215. package/dist/collection/components/q2-context/test/q2-context-test.vr.js.map +1 -0
  216. package/dist/collection/components/q2-currency/q2-currency.css +31 -0
  217. package/dist/collection/components/q2-currency/q2-currency.js +3 -4
  218. package/dist/collection/components/q2-currency/q2-currency.js.map +1 -1
  219. package/dist/collection/components/q2-currency/test/q2-currency-test.vr.js +79 -0
  220. package/dist/collection/components/q2-currency/test/q2-currency-test.vr.js.map +1 -0
  221. package/dist/collection/components/q2-data-table/q2-data-table.css +51 -0
  222. package/dist/collection/components/q2-data-table/q2-data-table.js +1 -1
  223. package/dist/collection/components/q2-data-table/test/q2-data-table-test.vr.js +79 -0
  224. package/dist/collection/components/q2-data-table/test/q2-data-table-test.vr.js.map +1 -0
  225. package/dist/collection/components/q2-detail/q2-detail.css +42 -0
  226. package/dist/collection/components/q2-detail/q2-detail.js +1 -1
  227. package/dist/collection/components/q2-dropdown/q2-dropdown.css +8 -0
  228. package/dist/collection/components/q2-dropdown/q2-dropdown.js +2 -4
  229. package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
  230. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.css +11 -0
  231. package/dist/collection/components/q2-editable-field/q2-editable-field.css +5 -0
  232. package/dist/collection/components/q2-editable-field/test/q2-editable-field-test.vr.js +89 -0
  233. package/dist/collection/components/q2-editable-field/test/q2-editable-field-test.vr.js.map +1 -0
  234. package/dist/collection/components/q2-example/q2-example.js +1 -1
  235. package/dist/collection/components/q2-file-picker/q2-file-picker.css +64 -0
  236. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.vr.js +92 -0
  237. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.vr.js.map +1 -0
  238. package/dist/collection/components/q2-form/q2-form.css +34 -20
  239. package/dist/collection/components/q2-form/q2-form.js +1 -1
  240. package/dist/collection/components/q2-formatted-text/q2-formatted-text.css +14 -0
  241. package/dist/collection/components/q2-formatted-text/q2-formatted-text.js +1 -1
  242. package/dist/collection/components/q2-formatted-text/test/q2-formatted-text-test.vr.js +55 -0
  243. package/dist/collection/components/q2-formatted-text/test/q2-formatted-text-test.vr.js.map +1 -0
  244. package/dist/collection/components/q2-grid/q2-grid.css +13 -0
  245. package/dist/collection/components/q2-grid/q2-grid.js +31 -7
  246. package/dist/collection/components/q2-grid/q2-grid.js.map +1 -1
  247. package/dist/collection/components/q2-icon/assets/standard.symbol.svg +1 -1
  248. package/dist/collection/components/q2-icon/q2-icon.css +15 -0
  249. package/dist/collection/components/q2-icon/test/q2-icon-test.vr.js +55 -0
  250. package/dist/collection/components/q2-icon/test/q2-icon-test.vr.js.map +1 -0
  251. package/dist/collection/components/q2-input/q2-input.css +104 -0
  252. package/dist/collection/components/q2-input/q2-input.js +6 -3
  253. package/dist/collection/components/q2-input/q2-input.js.map +1 -1
  254. package/dist/collection/components/q2-input/test/q2-input-test.vr.js +97 -0
  255. package/dist/collection/components/q2-input/test/q2-input-test.vr.js.map +1 -0
  256. package/dist/collection/components/q2-item/q2-item.css +28 -0
  257. package/dist/collection/components/q2-item/q2-item.js +1 -1
  258. package/dist/collection/components/q2-legend/q2-legend.css +16 -0
  259. package/dist/collection/components/q2-legend/q2-legend.js +21 -3
  260. package/dist/collection/components/q2-legend/q2-legend.js.map +1 -1
  261. package/dist/collection/components/q2-link/q2-link.css +20 -0
  262. package/dist/collection/components/q2-link/test/q2-link-test.vr.js +70 -0
  263. package/dist/collection/components/q2-link/test/q2-link-test.vr.js.map +1 -0
  264. package/dist/collection/components/q2-list/q2-list.css +14 -0
  265. package/dist/collection/components/q2-list/q2-list.js +1 -1
  266. package/dist/collection/components/q2-list/test/q2-list-test.vr.js +58 -0
  267. package/dist/collection/components/q2-list/test/q2-list-test.vr.js.map +1 -0
  268. package/dist/collection/components/q2-loading/q2-loading.css +9 -0
  269. package/dist/collection/components/q2-message/q2-message.css +29 -1
  270. package/dist/collection/components/q2-message/q2-message.js +1 -1
  271. package/dist/collection/components/q2-message/test/q2-message-test.vr.js +57 -0
  272. package/dist/collection/components/q2-message/test/q2-message-test.vr.js.map +1 -0
  273. package/dist/collection/components/q2-meter/q2-meter.css +40 -0
  274. package/dist/collection/components/q2-meter/q2-meter.js +1 -1
  275. package/dist/collection/components/q2-meter/test/q2-meter-test.vr.js +78 -0
  276. package/dist/collection/components/q2-meter/test/q2-meter-test.vr.js.map +1 -0
  277. package/dist/collection/components/q2-modal/q2-modal.css +21 -0
  278. package/dist/collection/components/q2-modal/q2-modal.js +1 -1
  279. package/dist/collection/components/q2-modal/test/q2-modal-test.vr.js +107 -0
  280. package/dist/collection/components/q2-modal/test/q2-modal-test.vr.js.map +1 -0
  281. package/dist/collection/components/q2-mutation-observer/q2-mutation-observer.js +1 -1
  282. package/dist/collection/components/q2-optgroup/q2-optgroup.css +11 -0
  283. package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
  284. package/dist/collection/components/q2-option/q2-option.css +9 -0
  285. package/dist/collection/components/q2-option/q2-option.js +1 -1
  286. package/dist/collection/components/q2-option/q2-option.js.map +1 -1
  287. package/dist/collection/components/q2-option-list/q2-option-list.css +3 -0
  288. package/dist/collection/components/q2-option-list/q2-option-list.js +37 -28
  289. package/dist/collection/components/q2-option-list/q2-option-list.js.map +1 -1
  290. package/dist/collection/components/q2-otp/q2-otp.css +312 -0
  291. package/dist/collection/components/q2-otp/q2-otp.js +873 -0
  292. package/dist/collection/components/q2-otp/q2-otp.js.map +1 -0
  293. package/dist/collection/components/q2-pagination/q2-pagination.css +22 -0
  294. package/dist/collection/components/q2-pagination/q2-pagination.js +3 -3
  295. package/dist/collection/components/q2-pagination/test/q2-pagination-test.vr.js +145 -0
  296. package/dist/collection/components/q2-pagination/test/q2-pagination-test.vr.js.map +1 -0
  297. package/dist/collection/components/q2-pill/q2-pill.css +53 -0
  298. package/dist/collection/components/q2-pill/q2-pill.js +23 -14
  299. package/dist/collection/components/q2-pill/q2-pill.js.map +1 -1
  300. package/dist/collection/components/q2-pill/test/q2-pill-test.vr.js +110 -0
  301. package/dist/collection/components/q2-pill/test/q2-pill-test.vr.js.map +1 -0
  302. package/dist/collection/components/q2-popover/q2-popover.css +20 -0
  303. package/dist/collection/components/q2-popover/q2-popover.js +5 -2
  304. package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
  305. package/dist/collection/components/q2-radio/q2-radio.css +52 -1
  306. package/dist/collection/components/q2-radio/q2-radio.js +2 -2
  307. package/dist/collection/components/q2-radio/q2-radio.js.map +1 -1
  308. package/dist/collection/components/q2-radio/test/q2-radio-test.vr.js +73 -0
  309. package/dist/collection/components/q2-radio/test/q2-radio-test.vr.js.map +1 -0
  310. package/dist/collection/components/q2-radio-group/q2-radio-group.css +22 -0
  311. package/dist/collection/components/q2-radio-group/test/q2-radio-group-test.vr.js +99 -0
  312. package/dist/collection/components/q2-radio-group/test/q2-radio-group-test.vr.js.map +1 -0
  313. package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
  314. package/dist/collection/components/q2-resize-observer/q2-resize-observer.js +1 -1
  315. package/dist/collection/components/q2-section/q2-section.css +26 -0
  316. package/dist/collection/components/q2-section/q2-section.js +2 -2
  317. package/dist/collection/components/q2-section/test/q2-section-test.vr.js +68 -0
  318. package/dist/collection/components/q2-section/test/q2-section-test.vr.js.map +1 -0
  319. package/dist/collection/components/q2-select/q2-select.css +17 -0
  320. package/dist/collection/components/q2-select/test/q2-select-test.vr.js +107 -0
  321. package/dist/collection/components/q2-select/test/q2-select-test.vr.js.map +1 -0
  322. package/dist/collection/components/q2-stepper/q2-stepper.css +36 -0
  323. package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
  324. package/dist/collection/components/q2-stepper/test/q2-stepper-test.vr.js +86 -0
  325. package/dist/collection/components/q2-stepper/test/q2-stepper-test.vr.js.map +1 -0
  326. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +1 -1
  327. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.css +31 -0
  328. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
  329. package/dist/collection/components/q2-stepper-vertical/test/q2-stepper-vertical-test.vr.js +97 -0
  330. package/dist/collection/components/q2-stepper-vertical/test/q2-stepper-vertical-test.vr.js.map +1 -0
  331. package/dist/collection/components/q2-tab-container/q2-tab-container.css +38 -0
  332. package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
  333. package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.vr.js +78 -0
  334. package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.vr.js.map +1 -0
  335. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
  336. package/dist/collection/components/q2-tag/q2-tag.css +30 -1
  337. package/dist/collection/components/q2-tag/q2-tag.js +1 -1
  338. package/dist/collection/components/q2-tag/test/q2-tag-test.vr.js +83 -0
  339. package/dist/collection/components/q2-tag/test/q2-tag-test.vr.js.map +1 -0
  340. package/dist/collection/components/q2-textarea/q2-textarea.css +80 -0
  341. package/dist/collection/components/q2-textarea/test/q2-textarea-test.vr.js +102 -0
  342. package/dist/collection/components/q2-textarea/test/q2-textarea-test.vr.js.map +1 -0
  343. package/dist/collection/components/q2-toast/q2-toast.css +15 -0
  344. package/dist/collection/components/q2-tooltip/q2-tooltip.css +31 -0
  345. package/dist/collection/components/q2-tooltip/q2-tooltip.js +135 -4
  346. package/dist/collection/components/q2-tooltip/q2-tooltip.js.map +1 -1
  347. package/dist/collection/components/q2-tooltip/test/q2-tooltip-test.vr.js +76 -0
  348. package/dist/collection/components/q2-tooltip/test/q2-tooltip-test.vr.js.map +1 -0
  349. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
  350. package/dist/collection/utils/component.js +7 -1
  351. package/dist/collection/utils/component.js.map +1 -1
  352. package/dist/collection/utils/index.js +1 -1
  353. package/dist/collection/utils/index.js.map +1 -1
  354. package/dist/collection/utils/sanitize-html-string.js +19 -2
  355. package/dist/collection/utils/sanitize-html-string.js.map +1 -1
  356. package/dist/collection/utils/test/vr-helpers.js +98 -0
  357. package/dist/collection/utils/test/vr-helpers.js.map +1 -0
  358. package/dist/components/click-elsewhere2.js +2 -0
  359. package/dist/components/click-elsewhere2.js.map +1 -1
  360. package/dist/components/component.js +7 -1
  361. package/dist/components/component.js.map +1 -1
  362. package/dist/components/index.js +2 -0
  363. package/dist/components/index.js.map +1 -1
  364. package/dist/components/index2.js +1 -1
  365. package/dist/components/index2.js.map +1 -1
  366. package/dist/components/q2-action-group2.js.map +1 -1
  367. package/dist/components/q2-action-sheet.js +107 -2
  368. package/dist/components/q2-action-sheet.js.map +1 -1
  369. package/dist/components/q2-avatar2.js.map +1 -1
  370. package/dist/components/q2-badge2.js.map +1 -1
  371. package/dist/components/q2-btn2.js.map +1 -1
  372. package/dist/components/q2-calendar.js +5 -2
  373. package/dist/components/q2-calendar.js.map +1 -1
  374. package/dist/components/q2-card-image.js +1 -1
  375. package/dist/components/q2-card-image.js.map +1 -1
  376. package/dist/components/q2-card.js.map +1 -1
  377. package/dist/components/q2-carousel-pane.js +1 -135
  378. package/dist/components/q2-carousel-pane.js.map +1 -1
  379. package/dist/components/q2-carousel-pane2.js +140 -0
  380. package/dist/components/q2-carousel-pane2.js.map +1 -0
  381. package/dist/components/q2-carousel.js +173 -29
  382. package/dist/components/q2-carousel.js.map +1 -1
  383. package/dist/components/q2-chart-donut.js +3 -1
  384. package/dist/components/q2-chart-donut.js.map +1 -1
  385. package/dist/components/q2-checkbox-group.js.map +1 -1
  386. package/dist/components/q2-checkbox2.js.map +1 -1
  387. package/dist/components/q2-context.js +1 -1
  388. package/dist/components/q2-context.js.map +1 -1
  389. package/dist/components/q2-currency.js +3 -4
  390. package/dist/components/q2-currency.js.map +1 -1
  391. package/dist/components/q2-data-table.js +1 -1
  392. package/dist/components/q2-data-table.js.map +1 -1
  393. package/dist/components/q2-detail.js +1 -1
  394. package/dist/components/q2-detail.js.map +1 -1
  395. package/dist/components/q2-dropdown-item2.js.map +1 -1
  396. package/dist/components/q2-dropdown.js +2 -4
  397. package/dist/components/q2-dropdown.js.map +1 -1
  398. package/dist/components/q2-editable-field.js.map +1 -1
  399. package/dist/components/q2-example.js +1 -1
  400. package/dist/components/q2-file-picker.js.map +1 -1
  401. package/dist/components/q2-form.js +2 -2
  402. package/dist/components/q2-form.js.map +1 -1
  403. package/dist/components/q2-formatted-text.js +1 -1
  404. package/dist/components/q2-formatted-text.js.map +1 -1
  405. package/dist/components/q2-grid.js +32 -8
  406. package/dist/components/q2-grid.js.map +1 -1
  407. package/dist/components/q2-icon2.js.map +1 -1
  408. package/dist/components/q2-input2.js +7 -4
  409. package/dist/components/q2-input2.js.map +1 -1
  410. package/dist/components/q2-item2.js +1 -1
  411. package/dist/components/q2-item2.js.map +1 -1
  412. package/dist/components/q2-legend2.js +3 -3
  413. package/dist/components/q2-legend2.js.map +1 -1
  414. package/dist/components/q2-link2.js.map +1 -1
  415. package/dist/components/q2-list2.js +1 -1
  416. package/dist/components/q2-list2.js.map +1 -1
  417. package/dist/components/q2-loading2.js.map +1 -1
  418. package/dist/components/q2-message2.js +2 -2
  419. package/dist/components/q2-message2.js.map +1 -1
  420. package/dist/components/q2-meter.js +1 -1
  421. package/dist/components/q2-meter.js.map +1 -1
  422. package/dist/components/q2-modal.js +1 -1
  423. package/dist/components/q2-modal.js.map +1 -1
  424. package/dist/components/q2-mutation-observer.js +1 -1
  425. package/dist/components/q2-optgroup2.js +1 -1
  426. package/dist/components/q2-optgroup2.js.map +1 -1
  427. package/dist/components/q2-option-list2.js +37 -28
  428. package/dist/components/q2-option-list2.js.map +1 -1
  429. package/dist/components/q2-option2.js +1 -1
  430. package/dist/components/q2-option2.js.map +1 -1
  431. package/dist/components/q2-otp.d.ts +11 -0
  432. package/dist/components/q2-otp.js +439 -0
  433. package/dist/components/q2-otp.js.map +1 -0
  434. package/dist/components/q2-pagination.js +3 -3
  435. package/dist/components/q2-pagination.js.map +1 -1
  436. package/dist/components/q2-pill.js +23 -14
  437. package/dist/components/q2-pill.js.map +1 -1
  438. package/dist/components/q2-popover2.js +5 -2
  439. package/dist/components/q2-popover2.js.map +1 -1
  440. package/dist/components/q2-radio-group.js.map +1 -1
  441. package/dist/components/q2-radio.js +2 -2
  442. package/dist/components/q2-radio.js.map +1 -1
  443. package/dist/components/q2-relative-time.js +1 -1
  444. package/dist/components/q2-resize-observer2.js +1 -1
  445. package/dist/components/q2-section.js +2 -2
  446. package/dist/components/q2-section.js.map +1 -1
  447. package/dist/components/q2-select2.js.map +1 -1
  448. package/dist/components/q2-stepper-pane.js +1 -1
  449. package/dist/components/q2-stepper-vertical.js +1 -1
  450. package/dist/components/q2-stepper-vertical.js.map +1 -1
  451. package/dist/components/q2-stepper.js +1 -1
  452. package/dist/components/q2-stepper.js.map +1 -1
  453. package/dist/components/q2-tab-container.js +1 -1
  454. package/dist/components/q2-tab-container.js.map +1 -1
  455. package/dist/components/q2-tab-pane.js +1 -1
  456. package/dist/components/q2-tag2.js +2 -2
  457. package/dist/components/q2-tag2.js.map +1 -1
  458. package/dist/components/q2-textarea.js.map +1 -1
  459. package/dist/components/q2-toast.js.map +1 -1
  460. package/dist/components/q2-tooltip2.js +124 -5
  461. package/dist/components/q2-tooltip2.js.map +1 -1
  462. package/dist/components/sanitize-html-string.js +19 -2
  463. package/dist/components/sanitize-html-string.js.map +1 -1
  464. package/dist/components/tecton-tab-pane.js +2 -2
  465. package/dist/esm/click-elsewhere.q2-option-list.q2-popover.entry.js.map +1 -1
  466. package/dist/esm/click-elsewhere_3.entry.js +46 -32
  467. package/dist/esm/click-elsewhere_3.entry.js.map +1 -1
  468. package/dist/esm/{component-DVxzK3WH.js → component-DaQM9u3s.js} +9 -3
  469. package/dist/esm/component-DaQM9u3s.js.map +1 -0
  470. package/dist/esm/{index-C4PILj1_.js → index-C5gj0T_3.js} +4 -4
  471. package/dist/esm/index-C5gj0T_3.js.map +1 -0
  472. package/dist/esm/loader.js +1 -1
  473. package/dist/esm/q2-action-group.q2-resize-observer.entry.js.map +1 -1
  474. package/dist/esm/q2-action-group_2.entry.js +2 -2
  475. package/dist/esm/q2-action-group_2.entry.js.map +1 -1
  476. package/dist/esm/q2-action-sheet.entry.js +109 -4
  477. package/dist/esm/q2-action-sheet.entry.js.map +1 -1
  478. package/dist/esm/q2-avatar.entry.js.map +1 -1
  479. package/dist/esm/q2-badge.entry.js +1 -1
  480. package/dist/esm/q2-badge.entry.js.map +1 -1
  481. package/dist/esm/q2-btn.q2-loading.entry.js.map +1 -1
  482. package/dist/esm/q2-btn_2.entry.js +1 -1
  483. package/dist/esm/q2-btn_2.entry.js.map +1 -1
  484. package/dist/esm/q2-calendar.entry.js +6 -3
  485. package/dist/esm/q2-calendar.entry.js.map +1 -1
  486. package/dist/esm/q2-card-image.entry.js +2 -2
  487. package/dist/esm/q2-card-image.entry.js.map +1 -1
  488. package/dist/esm/q2-card.entry.js +1 -1
  489. package/dist/esm/q2-card.entry.js.map +1 -1
  490. package/dist/esm/q2-carousel-pane.entry.js +3 -3
  491. package/dist/esm/q2-carousel-pane.entry.js.map +1 -1
  492. package/dist/esm/q2-carousel.entry.js +162 -29
  493. package/dist/esm/q2-carousel.entry.js.map +1 -1
  494. package/dist/esm/q2-chart-area.entry.js +1 -1
  495. package/dist/esm/q2-chart-bar.entry.js +1 -1
  496. package/dist/esm/q2-chart-donut.entry.js +3 -2
  497. package/dist/esm/q2-chart-donut.entry.js.map +1 -1
  498. package/dist/esm/q2-checkbox-group.entry.js +2 -2
  499. package/dist/esm/q2-checkbox-group.entry.js.map +1 -1
  500. package/dist/esm/q2-checkbox.q2-tag.entry.js.map +1 -1
  501. package/dist/esm/q2-checkbox_2.entry.js +3 -3
  502. package/dist/esm/q2-checkbox_2.entry.js.map +1 -1
  503. package/dist/esm/q2-context.entry.js +2 -2
  504. package/dist/esm/q2-context.entry.js.map +1 -1
  505. package/dist/esm/q2-currency.entry.js +3 -4
  506. package/dist/esm/q2-currency.entry.js.map +1 -1
  507. package/dist/esm/q2-data-table.entry.js +2 -2
  508. package/dist/esm/q2-data-table.entry.js.map +1 -1
  509. package/dist/esm/q2-detail.entry.js +2 -2
  510. package/dist/esm/q2-detail.entry.js.map +1 -1
  511. package/dist/esm/q2-dropdown-item.entry.js +2 -2
  512. package/dist/esm/q2-dropdown-item.entry.js.map +1 -1
  513. package/dist/esm/q2-dropdown.entry.js +3 -5
  514. package/dist/esm/q2-dropdown.entry.js.map +1 -1
  515. package/dist/esm/q2-editable-field.entry.js +1 -1
  516. package/dist/esm/q2-editable-field.entry.js.map +1 -1
  517. package/dist/esm/q2-example.entry.js +1 -1
  518. package/dist/esm/q2-file-picker.entry.js +1 -1
  519. package/dist/esm/q2-file-picker.entry.js.map +1 -1
  520. package/dist/esm/q2-form.entry.js +2 -2
  521. package/dist/esm/q2-form.entry.js.map +1 -1
  522. package/dist/esm/q2-formatted-text.entry.js +1 -1
  523. package/dist/esm/q2-formatted-text.entry.js.map +1 -1
  524. package/dist/esm/q2-grid-area.entry.js +1 -1
  525. package/dist/esm/q2-grid.entry.js +33 -9
  526. package/dist/esm/q2-grid.entry.js.map +1 -1
  527. package/dist/esm/q2-icon.entry.js +1 -1
  528. package/dist/esm/q2-icon.entry.js.map +1 -1
  529. package/dist/esm/q2-input.entry.js +8 -5
  530. package/dist/esm/q2-input.entry.js.map +1 -1
  531. package/dist/esm/q2-item.entry.js +2 -2
  532. package/dist/esm/q2-item.entry.js.map +1 -1
  533. package/dist/esm/q2-legend.entry.js +2 -3
  534. package/dist/esm/q2-legend.entry.js.map +1 -1
  535. package/dist/esm/q2-link.q2-list.entry.js.map +1 -1
  536. package/dist/esm/q2-link_2.entry.js +2 -2
  537. package/dist/esm/q2-link_2.entry.js.map +1 -1
  538. package/dist/esm/q2-loc.entry.js +1 -1
  539. package/dist/esm/q2-message.entry.js +3 -3
  540. package/dist/esm/q2-message.entry.js.map +1 -1
  541. package/dist/esm/q2-meter.entry.js +2 -2
  542. package/dist/esm/q2-meter.entry.js.map +1 -1
  543. package/dist/esm/q2-modal.entry.js +3 -3
  544. package/dist/esm/q2-modal.entry.js.map +1 -1
  545. package/dist/esm/q2-month-picker.entry.js +1 -1
  546. package/dist/esm/q2-mutation-observer.entry.js +1 -1
  547. package/dist/esm/q2-optgroup.entry.js +3 -3
  548. package/dist/esm/q2-optgroup.entry.js.map +1 -1
  549. package/dist/esm/q2-option.entry.js +3 -3
  550. package/dist/esm/q2-option.entry.js.map +1 -1
  551. package/dist/esm/q2-otp.entry.js +371 -0
  552. package/dist/esm/q2-otp.entry.js.map +1 -0
  553. package/dist/esm/q2-pagination.entry.js +4 -4
  554. package/dist/esm/q2-pagination.entry.js.map +1 -1
  555. package/dist/esm/q2-pill.entry.js +24 -15
  556. package/dist/esm/q2-pill.entry.js.map +1 -1
  557. package/dist/esm/q2-radio-group.entry.js +1 -1
  558. package/dist/esm/q2-radio-group.entry.js.map +1 -1
  559. package/dist/esm/q2-radio.entry.js +3 -3
  560. package/dist/esm/q2-radio.entry.js.map +1 -1
  561. package/dist/esm/q2-relative-time.entry.js +2 -2
  562. package/dist/esm/q2-section-container.entry.js +1 -1
  563. package/dist/esm/q2-section.entry.js +3 -3
  564. package/dist/esm/q2-section.entry.js.map +1 -1
  565. package/dist/esm/q2-select.entry.js +1 -1
  566. package/dist/esm/q2-select.entry.js.map +1 -1
  567. package/dist/esm/q2-stepper-pane.entry.js +3 -3
  568. package/dist/esm/q2-stepper-vertical.entry.js +2 -2
  569. package/dist/esm/q2-stepper-vertical.entry.js.map +1 -1
  570. package/dist/esm/q2-stepper.entry.js +2 -2
  571. package/dist/esm/q2-stepper.entry.js.map +1 -1
  572. package/dist/esm/q2-tab-container.entry.js +3 -3
  573. package/dist/esm/q2-tab-container.entry.js.map +1 -1
  574. package/dist/esm/q2-tab-pane.entry.js +2 -2
  575. package/dist/esm/q2-tecton-elements.js +1 -1
  576. package/dist/esm/q2-textarea.entry.js +1 -1
  577. package/dist/esm/q2-textarea.entry.js.map +1 -1
  578. package/dist/esm/q2-toast.entry.js +1 -1
  579. package/dist/esm/q2-toast.entry.js.map +1 -1
  580. package/dist/esm/q2-tooltip.entry.js +124 -5
  581. package/dist/esm/q2-tooltip.entry.js.map +1 -1
  582. package/dist/esm/{sanitize-html-string-B35VmRc9.js → sanitize-html-string-DPHNpMWE.js} +21 -4
  583. package/dist/{q2-tecton-elements/sanitize-html-string-B35VmRc9.js.map → esm/sanitize-html-string-DPHNpMWE.js.map} +1 -1
  584. package/dist/esm/tecton-tab-pane.entry.js +2 -2
  585. package/dist/playwright.config.js +12 -0
  586. package/dist/playwright.config.js.map +1 -0
  587. package/dist/q2-tecton-elements/assets/standard.symbol.svg +1 -1
  588. package/dist/q2-tecton-elements/click-elsewhere.q2-option-list.q2-popover.entry.esm.js.map +1 -1
  589. package/dist/q2-tecton-elements/click-elsewhere_3.entry.js +44 -35
  590. package/dist/q2-tecton-elements/click-elsewhere_3.entry.js.map +1 -1
  591. package/dist/q2-tecton-elements/component-DaQM9u3s.js +46 -0
  592. package/dist/q2-tecton-elements/component-DaQM9u3s.js.map +1 -0
  593. package/dist/q2-tecton-elements/{index-C4PILj1_.js → index-C5gj0T_3.js} +4 -4
  594. package/dist/q2-tecton-elements/index-C5gj0T_3.js.map +1 -0
  595. package/dist/q2-tecton-elements/q2-action-group.q2-resize-observer.entry.esm.js.map +1 -1
  596. package/dist/q2-tecton-elements/q2-action-group_2.entry.js +2 -2
  597. package/dist/q2-tecton-elements/q2-action-group_2.entry.js.map +1 -1
  598. package/dist/q2-tecton-elements/q2-action-sheet.entry.esm.js.map +1 -1
  599. package/dist/q2-tecton-elements/q2-action-sheet.entry.js +166 -70
  600. package/dist/q2-tecton-elements/q2-action-sheet.entry.js.map +1 -1
  601. package/dist/q2-tecton-elements/q2-avatar.entry.esm.js.map +1 -1
  602. package/dist/q2-tecton-elements/q2-avatar.entry.js.map +1 -1
  603. package/dist/q2-tecton-elements/q2-badge.entry.esm.js.map +1 -1
  604. package/dist/q2-tecton-elements/q2-badge.entry.js +1 -1
  605. package/dist/q2-tecton-elements/q2-badge.entry.js.map +1 -1
  606. package/dist/q2-tecton-elements/q2-btn.q2-loading.entry.esm.js.map +1 -1
  607. package/dist/q2-tecton-elements/q2-btn_2.entry.js +1 -1
  608. package/dist/q2-tecton-elements/q2-btn_2.entry.js.map +1 -1
  609. package/dist/q2-tecton-elements/q2-calendar.entry.esm.js.map +1 -1
  610. package/dist/q2-tecton-elements/q2-calendar.entry.js +4 -4
  611. package/dist/q2-tecton-elements/q2-calendar.entry.js.map +1 -1
  612. package/dist/q2-tecton-elements/q2-card-image.entry.esm.js.map +1 -1
  613. package/dist/q2-tecton-elements/q2-card-image.entry.js +2 -2
  614. package/dist/q2-tecton-elements/q2-card-image.entry.js.map +1 -1
  615. package/dist/q2-tecton-elements/q2-card.entry.esm.js.map +1 -1
  616. package/dist/q2-tecton-elements/q2-card.entry.js +1 -1
  617. package/dist/q2-tecton-elements/q2-card.entry.js.map +1 -1
  618. package/dist/q2-tecton-elements/q2-carousel-pane.entry.esm.js.map +1 -1
  619. package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +6 -6
  620. package/dist/q2-tecton-elements/q2-carousel-pane.entry.js.map +1 -1
  621. package/dist/q2-tecton-elements/q2-carousel.entry.esm.js.map +1 -1
  622. package/dist/q2-tecton-elements/q2-carousel.entry.js +402 -271
  623. package/dist/q2-tecton-elements/q2-carousel.entry.js.map +1 -1
  624. package/dist/q2-tecton-elements/q2-chart-area.entry.js +1 -1
  625. package/dist/q2-tecton-elements/q2-chart-bar.entry.js +1 -1
  626. package/dist/q2-tecton-elements/q2-chart-donut.entry.esm.js.map +1 -1
  627. package/dist/q2-tecton-elements/q2-chart-donut.entry.js +18 -16
  628. package/dist/q2-tecton-elements/q2-chart-donut.entry.js.map +1 -1
  629. package/dist/q2-tecton-elements/q2-checkbox-group.entry.esm.js.map +1 -1
  630. package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +2 -2
  631. package/dist/q2-tecton-elements/q2-checkbox-group.entry.js.map +1 -1
  632. package/dist/q2-tecton-elements/q2-checkbox.q2-tag.entry.esm.js.map +1 -1
  633. package/dist/q2-tecton-elements/q2-checkbox_2.entry.js +7 -7
  634. package/dist/q2-tecton-elements/q2-checkbox_2.entry.js.map +1 -1
  635. package/dist/q2-tecton-elements/q2-context.entry.esm.js.map +1 -1
  636. package/dist/q2-tecton-elements/q2-context.entry.js +2 -2
  637. package/dist/q2-tecton-elements/q2-context.entry.js.map +1 -1
  638. package/dist/q2-tecton-elements/q2-currency.entry.esm.js.map +1 -1
  639. package/dist/q2-tecton-elements/q2-currency.entry.js +34 -33
  640. package/dist/q2-tecton-elements/q2-currency.entry.js.map +1 -1
  641. package/dist/q2-tecton-elements/q2-data-table.entry.esm.js.map +1 -1
  642. package/dist/q2-tecton-elements/q2-data-table.entry.js +4 -4
  643. package/dist/q2-tecton-elements/q2-data-table.entry.js.map +1 -1
  644. package/dist/q2-tecton-elements/q2-detail.entry.esm.js.map +1 -1
  645. package/dist/q2-tecton-elements/q2-detail.entry.js +4 -4
  646. package/dist/q2-tecton-elements/q2-detail.entry.js.map +1 -1
  647. package/dist/q2-tecton-elements/q2-dropdown-item.entry.esm.js.map +1 -1
  648. package/dist/q2-tecton-elements/q2-dropdown-item.entry.js +2 -2
  649. package/dist/q2-tecton-elements/q2-dropdown-item.entry.js.map +1 -1
  650. package/dist/q2-tecton-elements/q2-dropdown.entry.esm.js.map +1 -1
  651. package/dist/q2-tecton-elements/q2-dropdown.entry.js +18 -19
  652. package/dist/q2-tecton-elements/q2-dropdown.entry.js.map +1 -1
  653. package/dist/q2-tecton-elements/q2-editable-field.entry.esm.js.map +1 -1
  654. package/dist/q2-tecton-elements/q2-editable-field.entry.js +1 -1
  655. package/dist/q2-tecton-elements/q2-editable-field.entry.js.map +1 -1
  656. package/dist/q2-tecton-elements/q2-example.entry.js +1 -1
  657. package/dist/q2-tecton-elements/q2-file-picker.entry.esm.js.map +1 -1
  658. package/dist/q2-tecton-elements/q2-file-picker.entry.js +1 -1
  659. package/dist/q2-tecton-elements/q2-file-picker.entry.js.map +1 -1
  660. package/dist/q2-tecton-elements/q2-form.entry.esm.js.map +1 -1
  661. package/dist/q2-tecton-elements/q2-form.entry.js +9 -9
  662. package/dist/q2-tecton-elements/q2-form.entry.js.map +1 -1
  663. package/dist/q2-tecton-elements/q2-formatted-text.entry.esm.js.map +1 -1
  664. package/dist/q2-tecton-elements/q2-formatted-text.entry.js +2 -2
  665. package/dist/q2-tecton-elements/q2-formatted-text.entry.js.map +1 -1
  666. package/dist/q2-tecton-elements/q2-grid-area.entry.js +1 -1
  667. package/dist/q2-tecton-elements/q2-grid.entry.esm.js.map +1 -1
  668. package/dist/q2-tecton-elements/q2-grid.entry.js +39 -14
  669. package/dist/q2-tecton-elements/q2-grid.entry.js.map +1 -1
  670. package/dist/q2-tecton-elements/q2-icon.entry.esm.js.map +1 -1
  671. package/dist/q2-tecton-elements/q2-icon.entry.js +52 -52
  672. package/dist/q2-tecton-elements/q2-icon.entry.js.map +1 -1
  673. package/dist/q2-tecton-elements/q2-input.entry.esm.js.map +1 -1
  674. package/dist/q2-tecton-elements/q2-input.entry.js +10 -6
  675. package/dist/q2-tecton-elements/q2-input.entry.js.map +1 -1
  676. package/dist/q2-tecton-elements/q2-item.entry.esm.js.map +1 -1
  677. package/dist/q2-tecton-elements/q2-item.entry.js +14 -14
  678. package/dist/q2-tecton-elements/q2-item.entry.js.map +1 -1
  679. package/dist/q2-tecton-elements/q2-legend.entry.esm.js.map +1 -1
  680. package/dist/q2-tecton-elements/q2-legend.entry.js +4 -5
  681. package/dist/q2-tecton-elements/q2-legend.entry.js.map +1 -1
  682. package/dist/q2-tecton-elements/q2-link.q2-list.entry.esm.js.map +1 -1
  683. package/dist/q2-tecton-elements/q2-link_2.entry.js +7 -7
  684. package/dist/q2-tecton-elements/q2-link_2.entry.js.map +1 -1
  685. package/dist/q2-tecton-elements/q2-loc.entry.js +1 -1
  686. package/dist/q2-tecton-elements/q2-message.entry.esm.js.map +1 -1
  687. package/dist/q2-tecton-elements/q2-message.entry.js +28 -28
  688. package/dist/q2-tecton-elements/q2-message.entry.js.map +1 -1
  689. package/dist/q2-tecton-elements/q2-meter.entry.esm.js.map +1 -1
  690. package/dist/q2-tecton-elements/q2-meter.entry.js +8 -8
  691. package/dist/q2-tecton-elements/q2-meter.entry.js.map +1 -1
  692. package/dist/q2-tecton-elements/q2-modal.entry.esm.js.map +1 -1
  693. package/dist/q2-tecton-elements/q2-modal.entry.js +53 -53
  694. package/dist/q2-tecton-elements/q2-modal.entry.js.map +1 -1
  695. package/dist/q2-tecton-elements/q2-month-picker.entry.js +1 -1
  696. package/dist/q2-tecton-elements/q2-mutation-observer.entry.js +1 -1
  697. package/dist/q2-tecton-elements/q2-optgroup.entry.esm.js.map +1 -1
  698. package/dist/q2-tecton-elements/q2-optgroup.entry.js +6 -6
  699. package/dist/q2-tecton-elements/q2-optgroup.entry.js.map +1 -1
  700. package/dist/q2-tecton-elements/q2-option.entry.esm.js.map +1 -1
  701. package/dist/q2-tecton-elements/q2-option.entry.js +3 -3
  702. package/dist/q2-tecton-elements/q2-option.entry.js.map +1 -1
  703. package/dist/q2-tecton-elements/q2-otp.entry.esm.js.map +1 -0
  704. package/dist/q2-tecton-elements/q2-otp.entry.js +453 -0
  705. package/dist/q2-tecton-elements/q2-otp.entry.js.map +1 -0
  706. package/dist/q2-tecton-elements/q2-pagination.entry.esm.js.map +1 -1
  707. package/dist/q2-tecton-elements/q2-pagination.entry.js +29 -29
  708. package/dist/q2-tecton-elements/q2-pagination.entry.js.map +1 -1
  709. package/dist/q2-tecton-elements/q2-pill.entry.esm.js.map +1 -1
  710. package/dist/q2-tecton-elements/q2-pill.entry.js +43 -28
  711. package/dist/q2-tecton-elements/q2-pill.entry.js.map +1 -1
  712. package/dist/q2-tecton-elements/q2-radio-group.entry.esm.js.map +1 -1
  713. package/dist/q2-tecton-elements/q2-radio-group.entry.js +1 -1
  714. package/dist/q2-tecton-elements/q2-radio-group.entry.js.map +1 -1
  715. package/dist/q2-tecton-elements/q2-radio.entry.esm.js.map +1 -1
  716. package/dist/q2-tecton-elements/q2-radio.entry.js +10 -10
  717. package/dist/q2-tecton-elements/q2-radio.entry.js.map +1 -1
  718. package/dist/q2-tecton-elements/q2-relative-time.entry.js +2 -2
  719. package/dist/q2-tecton-elements/q2-section-container.entry.js +1 -1
  720. package/dist/q2-tecton-elements/q2-section.entry.esm.js.map +1 -1
  721. package/dist/q2-tecton-elements/q2-section.entry.js +21 -21
  722. package/dist/q2-tecton-elements/q2-section.entry.js.map +1 -1
  723. package/dist/q2-tecton-elements/q2-select.entry.esm.js.map +1 -1
  724. package/dist/q2-tecton-elements/q2-select.entry.js +1 -1
  725. package/dist/q2-tecton-elements/q2-select.entry.js.map +1 -1
  726. package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +10 -10
  727. package/dist/q2-tecton-elements/q2-stepper-vertical.entry.esm.js.map +1 -1
  728. package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +5 -5
  729. package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js.map +1 -1
  730. package/dist/q2-tecton-elements/q2-stepper.entry.esm.js.map +1 -1
  731. package/dist/q2-tecton-elements/q2-stepper.entry.js +33 -33
  732. package/dist/q2-tecton-elements/q2-stepper.entry.js.map +1 -1
  733. package/dist/q2-tecton-elements/q2-tab-container.entry.esm.js.map +1 -1
  734. package/dist/q2-tecton-elements/q2-tab-container.entry.js +14 -14
  735. package/dist/q2-tecton-elements/q2-tab-container.entry.js.map +1 -1
  736. package/dist/q2-tecton-elements/q2-tab-pane.entry.js +6 -6
  737. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  738. package/dist/q2-tecton-elements/q2-textarea.entry.esm.js.map +1 -1
  739. package/dist/q2-tecton-elements/q2-textarea.entry.js +1 -1
  740. package/dist/q2-tecton-elements/q2-textarea.entry.js.map +1 -1
  741. package/dist/q2-tecton-elements/q2-toast.entry.esm.js.map +1 -1
  742. package/dist/q2-tecton-elements/q2-toast.entry.js +1 -1
  743. package/dist/q2-tecton-elements/q2-toast.entry.js.map +1 -1
  744. package/dist/q2-tecton-elements/q2-tooltip.entry.esm.js.map +1 -1
  745. package/dist/q2-tecton-elements/q2-tooltip.entry.js +136 -20
  746. package/dist/q2-tecton-elements/q2-tooltip.entry.js.map +1 -1
  747. package/dist/q2-tecton-elements/{sanitize-html-string-B35VmRc9.js → sanitize-html-string-DPHNpMWE.js} +147 -142
  748. package/dist/{esm/sanitize-html-string-B35VmRc9.js.map → q2-tecton-elements/sanitize-html-string-DPHNpMWE.js.map} +1 -1
  749. package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +6 -6
  750. package/dist/types/builds/q2e/development/tecton/tecton/packages/q2-tecton-elements/.stencil/playwright.config.d.ts +2 -0
  751. package/dist/types/components/q2-action-sheet/q2-action-sheet.d.ts +22 -0
  752. package/dist/types/components/q2-avatar/test/q2-avatar-test.vr.d.ts +1 -0
  753. package/dist/types/components/q2-badge/test/q2-badge-test.vr.d.ts +1 -0
  754. package/dist/types/components/q2-btn/test/q2-btn-test.vr.d.ts +1 -0
  755. package/dist/types/components/q2-calendar/test/q2-calendar-test.vr.d.ts +1 -0
  756. package/dist/types/components/q2-card/test/q2-card-test.vr.d.ts +1 -0
  757. package/dist/types/components/q2-card-image/test/q2-card-image-test.vr.d.ts +1 -0
  758. package/dist/types/components/q2-carousel/q2-carousel.d.ts +29 -0
  759. package/dist/types/components/q2-carousel/test/q2-carousel-test.vr.d.ts +1 -0
  760. package/dist/types/components/q2-chart-area/test/q2-chart-area-test.vr.d.ts +1 -0
  761. package/dist/types/components/q2-chart-bar/test/q2-chart-bar-test.vr.d.ts +1 -0
  762. package/dist/types/components/q2-chart-donut/q2-chart-donut.d.ts +2 -0
  763. package/dist/types/components/q2-chart-donut/test/q2-chart-donut-test.vr.d.ts +1 -0
  764. package/dist/types/components/q2-checkbox/test/q2-checkbox-test.vr.d.ts +1 -0
  765. package/dist/types/components/q2-checkbox-group/test/q2-checkbox-group-test.vr.d.ts +1 -0
  766. package/dist/types/components/q2-context/test/q2-context-test.vr.d.ts +1 -0
  767. package/dist/types/components/q2-currency/test/q2-currency-test.vr.d.ts +1 -0
  768. package/dist/types/components/q2-data-table/test/q2-data-table-test.vr.d.ts +1 -0
  769. package/dist/types/components/q2-editable-field/test/q2-editable-field-test.vr.d.ts +1 -0
  770. package/dist/types/components/q2-file-picker/test/q2-file-picker-test.vr.d.ts +1 -0
  771. package/dist/types/components/q2-formatted-text/test/q2-formatted-text-test.vr.d.ts +1 -0
  772. package/dist/types/components/q2-grid/q2-grid.d.ts +10 -0
  773. package/dist/types/components/q2-icon/test/q2-icon-test.vr.d.ts +1 -0
  774. package/dist/types/components/q2-input/test/q2-input-test.vr.d.ts +1 -0
  775. package/dist/types/components/q2-legend/q2-legend.d.ts +2 -0
  776. package/dist/types/components/q2-link/test/q2-link-test.vr.d.ts +1 -0
  777. package/dist/types/components/q2-list/test/q2-list-test.vr.d.ts +1 -0
  778. package/dist/types/components/q2-message/test/q2-message-test.vr.d.ts +1 -0
  779. package/dist/types/components/q2-meter/test/q2-meter-test.vr.d.ts +1 -0
  780. package/dist/types/components/q2-modal/test/q2-modal-test.vr.d.ts +1 -0
  781. package/dist/types/components/q2-otp/q2-otp.d.ts +159 -0
  782. package/dist/types/components/q2-pagination/test/q2-pagination-test.vr.d.ts +1 -0
  783. package/dist/types/components/q2-pill/q2-pill.d.ts +5 -2
  784. package/dist/types/components/q2-pill/test/q2-pill-test.vr.d.ts +1 -0
  785. package/dist/types/components/q2-radio/q2-radio.d.ts +1 -1
  786. package/dist/types/components/q2-radio/test/q2-radio-test.vr.d.ts +1 -0
  787. package/dist/types/components/q2-radio-group/test/q2-radio-group-test.vr.d.ts +1 -0
  788. package/dist/types/components/q2-section/test/q2-section-test.vr.d.ts +1 -0
  789. package/dist/types/components/q2-select/test/q2-select-test.vr.d.ts +1 -0
  790. package/dist/types/components/q2-stepper/test/q2-stepper-test.vr.d.ts +1 -0
  791. package/dist/types/components/q2-stepper-vertical/test/q2-stepper-vertical-test.vr.d.ts +1 -0
  792. package/dist/types/components/q2-tab-container/test/q2-tab-container-test.vr.d.ts +1 -0
  793. package/dist/types/components/q2-tag/test/q2-tag-test.vr.d.ts +1 -0
  794. package/dist/types/components/q2-textarea/test/q2-textarea-test.vr.d.ts +1 -0
  795. package/dist/types/components/q2-tooltip/q2-tooltip.d.ts +4 -0
  796. package/dist/types/components/q2-tooltip/test/q2-tooltip-test.vr.d.ts +1 -0
  797. package/dist/types/components.d.ts +306 -2
  798. package/dist/types/utils/component.d.ts +1 -1
  799. package/dist/types/utils/test/vr-helpers.d.ts +14 -0
  800. package/package.json +12 -3
  801. package/dist/cjs/component-DRAntnCA.js.map +0 -1
  802. package/dist/cjs/index-YvKoRT-t.js.map +0 -1
  803. package/dist/esm/component-DVxzK3WH.js.map +0 -1
  804. package/dist/esm/index-C4PILj1_.js.map +0 -1
  805. package/dist/q2-tecton-elements/component-DVxzK3WH.js +0 -40
  806. package/dist/q2-tecton-elements/component-DVxzK3WH.js.map +0 -1
  807. package/dist/q2-tecton-elements/index-C4PILj1_.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"q2-pagination.entry.esm.js","sources":["src/components/q2-pagination/q2-pagination.scss?tag=q2-pagination&encapsulation=shadow","src/components/q2-pagination/q2-pagination.tsx"],"sourcesContent":["@import '../../styles/host';\n@import '../../styles/functions';\n\n:host {\n display: flex;\n width: 100%;\n}\n\n:host([alignment='right']) {\n justify-content: flex-end;\n}\n\n:host([alignment='center']) {\n justify-content: center;\n}\n\n:host([alignment='left']) {\n justify-content: flex-start;\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 color: var(--tct-pagination-color, inherit);\n font-size: var(--tct-pagination-font-size, inherit);\n font-weight: var(--tct-pagination-font-weight, inherit);\n\n &.stacked {\n flex-direction: column;\n column-gap: 0;\n row-gap: var-list(--tct-pagination-row-gap, --app-scale-2x, 10px);\n height: auto;\n align-items: stretch;\n\n .description {\n text-align: center;\n }\n\n .controls {\n justify-content: center;\n }\n\n .per-page {\n display: flex;\n justify-content: center;\n }\n\n q2-select {\n --tct-select-margin: 0;\n width: var(--tct-pagination-perpage-width, 60%);\n }\n }\n}\n\n.controls {\n display: flex;\n}\n\n.btn-group {\n display: flex;\n gap: var-list(var-prefixer(pagination-btn-gap), 0);\n}\n\n.description,\n.input-display {\n white-space: nowrap;\n}\n\n.input-display {\n display: grid;\n grid-template-columns: auto var(--tct-pagination-input-width, 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 --tct-btn-icon-hover-background: #{var-list(--tct-pagination-btn-hover-background, --app-gray-l3, #f2f2f2)};\n --tct-icon-stroke-primary: #{var-list(--tct-pagination-btn-icon-stroke-primary, --app-gray, #747474)};\n --tct-icon-stroke-secondary: #{var-list(--tct-pagination-btn-icon-stroke-secondary, --app-gray, #747474)};\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\nq2-select {\n --tct-select-input-min-height: #{var-list(var-prefixer(pagination-select-height), 30px)};\n --tct-select-input-max-height: #{var-list(var-prefixer(pagination-select-height), 30px)};\n width: #{var-list(var-prefixer(pagination-perpage-width), 100%)};\n min-width: #{var-list(var-prefixer(pagination-perpage-min-width), 110px)};\n}\n","import {\n Component,\n State,\n Prop,\n h,\n ComponentInterface,\n Watch,\n Listen,\n Element,\n Method,\n Event,\n EventEmitter,\n} from '@stencil/core';\nimport { isEventFromElement, loc, nextPaint, overrideFocus } from 'src/utils';\nimport mirrorEmit from '@/utils/mirror-emit';\n\n/**\n * @name Pagination\n * @category Display\n * @summary Use for navigating between pages of content like search results or tables.\n */\n@Component({ tag: 'q2-pagination', shadow: true, styleUrl: 'q2-pagination.scss' })\nexport class Q2Pagination implements ComponentInterface {\n // #region Own Properties\n\n containerElement: HTMLElement;\n containerWidth: number;\n firstPageBtn: HTMLQ2BtnElement;\n inputField: HTMLQ2InputElement;\n lastPageBtn: HTMLQ2BtnElement;\n nextPageBtn: HTMLQ2BtnElement;\n perPageSelect: HTMLQ2SelectElement;\n prevPageBtn: HTMLQ2BtnElement;\n resizeObserver: ResizeObserver;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n isSmall: boolean;\n\n // #endregion\n // #region Public Property API\n\n /**\n * Indicates the horizontal alignment of pagination elements\n * @info\n * When using the 'stacked' version, the default alignment is 'center'. When using the unstacked version, the default alignment is 'right'.\n */\n @Prop({ reflect: true, mutable: true })\n alignment?: 'left' | 'center' | 'right';\n\n /** Determines whether the component uses dynamic resizing behavior. This is disabled when `pagesOnly`, `recordsOnly`, or `stacked` is true. */\n @Prop({ reflect: true, mutable: true })\n autoSize: boolean = true;\n\n /** Allows the component to be disabled should the state of the page require this */\n @Prop({ reflect: true, mutable: true })\n disabled: boolean = false;\n\n /** The current page that is being displayed. */\n @Prop({ reflect: true, mutable: true })\n page: number;\n\n /**\n * The number of pages that can be displayed.\n * @info\n * Only referenced when `pagesOnly` is true.\n */\n @Prop({ reflect: true, mutable: true })\n pages: number;\n\n /** Indicates to display only the current and total pages. This disables the `autoSize` feature. */\n @Prop({ reflect: true, mutable: true })\n pagesOnly: boolean;\n\n /** The total number of records displayed on each page. This disables the `autoSize` feature. */\n @Prop({ reflect: true, mutable: true })\n perPage: number;\n\n /**\n * A list of perPage values.\n * This generates a [Select](https://tecton.q2developer.com/design-system/q2-select/) element that allows the user to modify the `perPage` value.\n * @info\n * `pagesOnly` or `recordsOnly` being true disables this feature.\n *\n * **Example:**\n * @snippet\n * this.perPageIncrements = [10, 25, 50];\n */\n @Prop({ reflect: true, mutable: true })\n perPageIncrements: number[] | string[] | string | undefined;\n\n /** Indicates to display only the current and total records. */\n @Prop({ reflect: true, mutable: true })\n recordsOnly: boolean;\n\n /** Description of the record type to be displayed alongside the record count. */\n @Prop()\n recordType: string;\n\n /**\n * Allows the component to be displayed in a stacked layout. This disables the `autoSize` feature.\n * @info\n * When set to true, the default alignment will be 'center'. When false, the default alignment is 'right'.\n */\n @Prop({ reflect: true })\n stacked: boolean;\n\n /** The total number of records to paginate. */\n @Prop({ reflect: true })\n total: number;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the page is changed.\n * @legacyEvent\n * @deprecated Use 'tctChange' instead\n */\n @Event()\n change: EventEmitter<{ page: number; perPage: number }>;\n\n /**\n * Emitted when the page is changed.\n * @legacyEvent\n */\n @Event()\n tctChange: EventEmitter<{ page: number; perPage: number }>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n this.removeResizeObserver();\n }\n\n componentWillLoad(): void {\n this.checkDisplayTypes();\n this.manageResizeObserver();\n if (!this.alignment) {\n this.alignment = this.stacked ? 'center' : 'right';\n }\n }\n\n componentDidLoad(): void {\n this.containerWidth = this.containerElement.clientWidth;\n\n overrideFocus(this.hostElement);\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('focus')\n onHostElementFocus(event) {\n if (this.disabled) return;\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 // #endregion\n // #region Public Methods API\n\n /**\n * Emulates clicking the button that controls moving to the first page, and emitting a change event with the updated page number.\n *\n * If the `<button>` is disabled, this method does nothing.\n * @testOnly\n */\n @Method()\n async clickFirstPage() {\n if (this.disabled) return;\n const button = this.firstPageBtn;\n if (button?.disabled) return;\n button.click();\n }\n\n /**\n * Emulates clicking the button that controls moving to the last page, and emitting a change event with the updated page number.\n *\n * If the `<button>` is disabled, this method does nothing.\n * @testOnly\n */\n @Method()\n async clickLastPage() {\n if (this.disabled) return;\n const button = this.lastPageBtn;\n if (button?.disabled) return;\n button.click();\n }\n\n /**\n * Emulates clicking the button that controls moving to the next page, and emitting a change event with the updated page number.\n *\n * If the `<button>` is disabled, this method does nothing.\n * @testOnly\n */\n @Method()\n async clickNextPage() {\n if (this.disabled) return;\n const button = this.nextPageBtn;\n if (button?.disabled) return;\n button.click();\n }\n\n /**\n * Emulates clicking the button that controls moving to the previous page, and emitting a change event with the updated page number.\n *\n * If the `<button>` is disabled, this method does nothing.\n * @testOnly\n */\n @Method()\n async clickPreviousPage() {\n if (this.disabled) return;\n const button = this.prevPageBtn;\n if (button?.disabled) return;\n button.click();\n }\n\n /**\n * Emulates selecting a `perPage` value from the `perPageIncrements` dropdown,\n * and updates the value of the `perPage` property.\n *\n * If `value` is not in the `perPageIncrements` array, this method does nothing.\n * @testOnly\n */\n @Method()\n async selectPerPageIncrementValue(value: number) {\n if (this.disabled) return;\n if (isNaN(value) || !this.showPerPageSelect || !this.perPageIncrementsArray.includes(value)) return;\n this.perPageSelect.focus();\n this.perPageSelect.click();\n const options = Array.from(this.perPageSelect.querySelectorAll('q2-option'));\n options.find(option => option.value === `${value}`)?.click();\n }\n\n /**\n * Emulates setting the page value in the `<input>` field,\n * and emitting a change event with the updated page number.\n *\n * If `value` is invalid, this method does nothing.\n * @testOnly\n */\n @Method()\n async setPageValue(value: number) {\n if (this.disabled) return;\n if (!this.inputField || isNaN(value) || value < 1 || value > this.totalPages) return;\n this.inputField?.focus();\n this.inputField.value = `${value}`;\n this.inputField?.blur();\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('autoSize')\n manageResizeObserver() {\n if (this.autoSize) {\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 @Watch('recordsOnly')\n @Watch('pagesOnly')\n @Watch('stacked')\n checkDisplayTypes() {\n if (this.pagesOnly || this.recordsOnly || this.stacked) this.autoSize = false;\n }\n\n // #endregion\n // #region Local Methods\n\n get containerClasses() {\n const classes = ['container'];\n if (this.stacked) classes.push('stacked');\n return classes;\n }\n\n get currentRange() {\n const { perPageWithDefault: perPage, totalWithDefault: total, pageWithDefault: page } = this;\n const start = total > 0 ? (page - 1) * perPage + 1 : 0;\n const end = Math.min(page * perPage, total);\n return `${start} - ${end}`;\n }\n\n get isFullViewHidden() {\n return this.isSmall || this.recordsOnly || this.pagesOnly;\n }\n\n get nextRange() {\n const { perPageWithDefault: perPage, totalWithDefault: total, pageWithDefault: page } = this;\n const start = page * perPage + 1;\n const end = Math.min((page + 1) * perPage, total);\n return `${start} - ${end}`;\n }\n\n get pageWithDefault() {\n return this.total > 0 ? this.page || 1 : 0;\n }\n\n get perPageIncrementsArray() {\n if (Array.isArray(this.perPageIncrements)) {\n return this.perPageIncrements.map(num => Number(num));\n } else if (typeof this.perPageIncrements === 'string') {\n return this.perPageIncrements\n .trim()\n .replace(/[\\[\\]\\\"\\']/g, '')\n .split(',')\n .map(num => Number(num));\n } else {\n return [];\n }\n }\n\n get perPageWithDefault() {\n return this.perPage || 10;\n }\n\n get prevRange() {\n const { perPageWithDefault: perPage, pageWithDefault: page } = this;\n const start = Math.max(1, (page - 2) * perPage + 1);\n const end = (page - 1) * perPage;\n return `${start} - ${end}`;\n }\n\n get recordTypeWithDefault() {\n return this.recordType || loc('tecton.element.pagination.defaultRecordType');\n }\n\n get showPerPageSelect() {\n return this.perPageIncrements?.length > 1;\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 get totalWithDefault() {\n return this.total || 0;\n }\n\n checkSize = () => {\n const { hostElement, containerElement } = this;\n const isOverflowing = this.containerWidth > hostElement.clientWidth;\n this.isSmall = isOverflowing;\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 handlePageChange = (page: number | string) => {\n if (this.disabled) return;\n const { totalPages, inputField } = this;\n page = parseInt(`${page}`);\n if (isNaN(page) || 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 mirrorEmit(this, ['change', 'tctChange'], { page, perPage: this.perPageWithDefault });\n };\n\n handlePerPageChange = (event: CustomEvent) => {\n if (this.disabled) return;\n const perPage = (event.detail?.value || this.perPage) * 1;\n this.perPage = perPage;\n mirrorEmit(this, ['change', 'tctChange'], { page: this.pageWithDefault, perPage });\n };\n\n removeResizeObserver() {\n if (this.resizeObserver) {\n this.resizeObserver?.disconnect();\n this.resizeObserver = null;\n window.removeEventListener('resize', this.checkSize);\n }\n }\n\n // #endregion\n // #region Render Methods\n\n renderPerPage() {\n const increments = this.perPageIncrementsArray.sort((a, b) => a - b);\n if (this.perPage === undefined || isNaN(this.perPage)) this.perPage = increments[0];\n this.perPageIncrements = `[${increments.join(',')}]`;\n return (\n <q2-select\n ref={el => (this.perPageSelect = el)}\n onChange={e => e.stopImmediatePropagation()}\n onTctChange={event => {\n event.stopPropagation();\n this.handlePerPageChange(event);\n }}\n value={this.perPageIncrementsArray.includes(this.perPage) ? `${this.perPage}` : undefined}\n disabled={this.disabled}\n >\n {increments.map(perPage => (\n <q2-option\n value={`${perPage}`}\n display={`${loc('tecton.element.pagination.view')} ${perPage}`}\n >{`${loc('tecton.element.pagination.view')} ${perPage}`}</q2-option>\n ))}\n </q2-select>\n );\n }\n\n render() {\n const {\n pagesOnly,\n recordsOnly,\n isFullViewHidden,\n recordTypeWithDefault: recordType,\n totalPages,\n totalWithDefault: total,\n pageWithDefault: page,\n currentRange,\n nextRange,\n prevRange,\n showPerPageSelect,\n disabled,\n } = this;\n const onFirstPage = page < 2;\n const onLastPage = page === totalPages;\n\n let nextButtonLabel: string = loc('tecton.element.pagination.goToNext');\n let prevButtonLabel: string = loc('tecton.element.pagination.goToPrevious');\n if (pagesOnly) {\n prevButtonLabel = loc('tecton.element.pagination.goToPages', { next: page - 1, total: totalPages });\n nextButtonLabel = loc('tecton.element.pagination.goToPages', { next: page + 1, total: totalPages });\n } else if (recordsOnly) {\n prevButtonLabel = loc('tecton.element.pagination.goToRecords', {\n range: prevRange,\n recordType: recordType.toLowerCase(),\n total,\n });\n nextButtonLabel = loc('tecton.element.pagination.goToRecords', {\n range: nextRange,\n recordType: recordType.toLowerCase(),\n total,\n });\n }\n\n return (\n <nav\n class={this.containerClasses.join(' ')}\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=\"controls\">\n <div class=\"btn-group\">\n <q2-btn\n ref={el => (this.firstPageBtn = el)}\n label={loc('tecton.element.pagination.goToFirstPage')}\n disabled={disabled || onFirstPage}\n hidden={isFullViewHidden}\n onTctClick={() => 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 ref={el => (this.prevPageBtn = el)}\n label={prevButtonLabel}\n disabled={disabled || onFirstPage}\n onTctClick={() => 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=\"input-display\"\n hidden={isFullViewHidden}\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 ref={el => (this.inputField = el)}\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 => event.stopImmediatePropagation()}\n onTctChange={event => {\n event.stopPropagation();\n this.handlePageChange(event.detail.value);\n }}\n test-id=\"pageInput\"\n current=\"page\"\n disabled={disabled}\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 ref={el => (this.nextPageBtn = el)}\n label={nextButtonLabel}\n disabled={disabled || onLastPage}\n onTctClick={() => 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 ref={el => (this.lastPageBtn = el)}\n label=\"tecton.element.pagination.goToLastPage\"\n disabled={disabled || onLastPage}\n hidden={isFullViewHidden}\n onTctClick={() => this.handlePageChange(totalPages)}\n test-id=\"lastPageBtn\"\n hide-label\n >\n <q2-icon type=\"chevron-double-right\" />\n </q2-btn>\n </div>\n </div>\n <div\n class=\"per-page\"\n hidden={isFullViewHidden || !this.perPageIncrements?.length}\n >\n {showPerPageSelect && this.renderPerPage()}\n </div>\n </nav>\n );\n }\n\n // #endregion\n}\n"],"names":[],"mappings":";;;;AAAA,MAAM,eAAe,GAAG,47GAA47G;;MCsBv8G,YAAY,GAAA,MAAA;AADzB,IAAA,WAAA,CAAA,OAAA,EAAA;;;;;AAuCI,QAAA,IAAQ,CAAA,QAAA,GAAY,IAAI;;AAIxB,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AA4SzB,QAAA,IAAS,CAAA,SAAA,GAAG,MAAK;AACb,YAAA,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,GAAG,IAAI;YAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,WAAW;AACnE,YAAA,IAAI,CAAC,OAAO,GAAG,aAAa;YAE5B,SAAS,CAAC,MAAK;gBACX,MAAM,2BAA2B,GAAG,IAAI,CAAC,cAAc,KAAK,gBAAgB,CAAC,WAAW;AACxF,gBAAA,IAAI,2BAA2B;oBAAE;AACjC,gBAAA,IAAI,CAAC,cAAc,GAAG,gBAAgB,CAAC,WAAW;gBAClD,IAAI,CAAC,SAAS,EAAE;AACpB,aAAC,CAAC;AACN,SAAC;AAED,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,IAAqB,KAAI;YACzC,IAAI,IAAI,CAAC,QAAQ;gBAAE;AACnB,YAAA,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,IAAI;AACvC,YAAA,IAAI,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAA,CAAE,CAAC;YAC1B,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE;gBACzB,IAAI,GAAG,CAAC;;AACL,iBAAA,IAAI,IAAI,GAAG,UAAU,EAAE;gBAC1B,IAAI,GAAG,UAAU;;AAGrB,YAAA,IAAI,UAAU,CAAC,KAAK,KAAK,CAAA,EAAG,IAAI,CAAE,CAAA;AAAE,gBAAA,UAAU,CAAC,KAAK,GAAG,CAAG,EAAA,IAAI,EAAE;AAEhE,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;AAC5B,gBAAA,IAAI,CAAC,IAAI,GAAG,IAAI;;AAGpB,YAAA,UAAU,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC;AACzF,SAAC;AAED,QAAA,IAAA,CAAA,mBAAmB,GAAG,CAAC,KAAkB,KAAI;;YACzC,IAAI,IAAI,CAAC,QAAQ;gBAAE;AACnB,YAAA,MAAM,OAAO,GAAG,CAAC,CAAA,CAAA,EAAA,GAAA,KAAK,CAAC,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,KAAK,KAAI,IAAI,CAAC,OAAO,IAAI,CAAC;AACzD,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,YAAA,UAAU,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC;AACtF,SAAC;AA6LJ;;;IAlcG,oBAAoB,GAAA;QAChB,IAAI,CAAC,oBAAoB,EAAE;;IAG/B,iBAAiB,GAAA;QACb,IAAI,CAAC,iBAAiB,EAAE;QACxB,IAAI,CAAC,oBAAoB,EAAE;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACjB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,GAAG,OAAO;;;IAI1D,gBAAgB,GAAA;QACZ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW;AAEvD,QAAA,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;;;;AAOnC,IAAA,kBAAkB,CAAC,KAAK,EAAA;;QACpB,IAAI,IAAI,CAAC,QAAQ;YAAE;QACnB,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC;YAAE;QAClD,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,EAAE,GAAG,IAAI;QAC/D,IAAI,gBAAgB,EAAE;AAClB,YAAA,CAAA,EAAA,GAAA,gBAAgB,CAAC,aAAa,CAAc,wBAAwB,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,KAAK,EAAE;;aAC3E;YACH,UAAU,CAAC,KAAK,EAAE;;;;;AAO1B;;;;;AAKG;AAEH,IAAA,MAAM,cAAc,GAAA;QAChB,IAAI,IAAI,CAAC,QAAQ;YAAE;AACnB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY;AAChC,QAAA,IAAI,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,MAAA,GAAA,MAAA,GAAA,MAAM,CAAE,QAAQ;YAAE;QACtB,MAAM,CAAC,KAAK,EAAE;;AAGlB;;;;;AAKG;AAEH,IAAA,MAAM,aAAa,GAAA;QACf,IAAI,IAAI,CAAC,QAAQ;YAAE;AACnB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW;AAC/B,QAAA,IAAI,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,MAAA,GAAA,MAAA,GAAA,MAAM,CAAE,QAAQ;YAAE;QACtB,MAAM,CAAC,KAAK,EAAE;;AAGlB;;;;;AAKG;AAEH,IAAA,MAAM,aAAa,GAAA;QACf,IAAI,IAAI,CAAC,QAAQ;YAAE;AACnB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW;AAC/B,QAAA,IAAI,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,MAAA,GAAA,MAAA,GAAA,MAAM,CAAE,QAAQ;YAAE;QACtB,MAAM,CAAC,KAAK,EAAE;;AAGlB;;;;;AAKG;AAEH,IAAA,MAAM,iBAAiB,GAAA;QACnB,IAAI,IAAI,CAAC,QAAQ;YAAE;AACnB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW;AAC/B,QAAA,IAAI,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,MAAA,GAAA,MAAA,GAAA,MAAM,CAAE,QAAQ;YAAE;QACtB,MAAM,CAAC,KAAK,EAAE;;AAGlB;;;;;;AAMG;IAEH,MAAM,2BAA2B,CAAC,KAAa,EAAA;;QAC3C,IAAI,IAAI,CAAC,QAAQ;YAAE;AACnB,QAAA,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE;AAC7F,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;AAC1B,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;AAC5E,QAAA,CAAA,EAAA,GAAA,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,KAAK,CAAG,EAAA,KAAK,EAAE,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,KAAK,EAAE;;AAGhE;;;;;;AAMG;IAEH,MAAM,YAAY,CAAC,KAAa,EAAA;;QAC5B,IAAI,IAAI,CAAC,QAAQ;YAAE;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU;YAAE;QAC9E,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,KAAK,EAAE;QACxB,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,CAAG,EAAA,KAAK,EAAE;QAClC,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAI,EAAE;;;;IAO3B,oBAAoB,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,IAAI,CAAC,cAAc;gBAAE;AACzB,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YAChE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;YAC7C,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC;;aAC9C;AACH,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK;YACpB,IAAI,CAAC,oBAAoB,EAAE;;;IAOnC,iBAAiB,GAAA;QACb,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;;;;AAMjF,IAAA,IAAI,gBAAgB,GAAA;AAChB,QAAA,MAAM,OAAO,GAAG,CAAC,WAAW,CAAC;QAC7B,IAAI,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,QAAA,OAAO,OAAO;;AAGlB,IAAA,IAAI,YAAY,GAAA;AACZ,QAAA,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,IAAI;QAC5F,MAAM,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC;AACtD,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,OAAO,EAAE,KAAK,CAAC;AAC3C,QAAA,OAAO,CAAG,EAAA,KAAK,CAAM,GAAA,EAAA,GAAG,EAAE;;AAG9B,IAAA,IAAI,gBAAgB,GAAA;QAChB,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS;;AAG7D,IAAA,IAAI,SAAS,GAAA;AACT,QAAA,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,IAAI;AAC5F,QAAA,MAAM,KAAK,GAAG,IAAI,GAAG,OAAO,GAAG,CAAC;AAChC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,OAAO,EAAE,KAAK,CAAC;AACjD,QAAA,OAAO,CAAG,EAAA,KAAK,CAAM,GAAA,EAAA,GAAG,EAAE;;AAG9B,IAAA,IAAI,eAAe,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC;;AAG9C,IAAA,IAAI,sBAAsB,GAAA;QACtB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE;AACvC,YAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;;AAClD,aAAA,IAAI,OAAO,IAAI,CAAC,iBAAiB,KAAK,QAAQ,EAAE;YACnD,OAAO,IAAI,CAAC;AACP,iBAAA,IAAI;AACJ,iBAAA,OAAO,CAAC,aAAa,EAAE,EAAE;iBACzB,KAAK,CAAC,GAAG;iBACT,GAAG,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;;aACzB;AACH,YAAA,OAAO,EAAE;;;AAIjB,IAAA,IAAI,kBAAkB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,OAAO,IAAI,EAAE;;AAG7B,IAAA,IAAI,SAAS,GAAA;QACT,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,IAAI;AACnE,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC;QACnD,MAAM,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,OAAO;AAChC,QAAA,OAAO,CAAG,EAAA,KAAK,CAAM,GAAA,EAAA,GAAG,EAAE;;AAG9B,IAAA,IAAI,qBAAqB,GAAA;QACrB,OAAO,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC,6CAA6C,CAAC;;AAGhF,IAAA,IAAI,iBAAiB,GAAA;;AACjB,QAAA,OAAO,CAAA,MAAA,IAAI,CAAC,iBAAiB,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,MAAM,IAAG,CAAC;;AAG7C,IAAA,IAAI,UAAU,GAAA;AACV,QAAA,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI;AAEvF,QAAA,IAAI,SAAS,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA,EAAG,KAAK,CAAA,CAAE,CAAC,CAAC;AAAE,YAAA,OAAO,KAAK;QAEpE,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;;AAGrC,IAAA,IAAI,gBAAgB,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC;;IA0C1B,oBAAoB,GAAA;;AAChB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,CAAA,EAAA,GAAA,IAAI,CAAC,cAAc,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,UAAU,EAAE;AACjC,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI;YAC1B,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC;;;;;IAO5D,aAAa,GAAA;AACT,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpE,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC;QACnF,IAAI,CAAC,iBAAiB,GAAG,CAAI,CAAA,EAAA,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA,CAAG;AACpD,QAAA,QACI,CAAA,CAAA,WAAA,EAAA,EACI,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC,EACpC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,wBAAwB,EAAE,EAC3C,WAAW,EAAE,KAAK,IAAG;gBACjB,KAAK,CAAC,eAAe,EAAE;AACvB,gBAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AACnC,aAAC,EACD,KAAK,EAAE,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAG,EAAA,IAAI,CAAC,OAAO,EAAE,GAAG,SAAS,EACzF,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAEtB,EAAA,UAAU,CAAC,GAAG,CAAC,OAAO,KACnB,CAAA,CAAA,WAAA,EAAA,EACI,KAAK,EAAE,CAAG,EAAA,OAAO,EAAE,EACnB,OAAO,EAAE,CAAA,EAAG,GAAG,CAAC,gCAAgC,CAAC,CAAA,CAAA,EAAI,OAAO,CAAE,CAAA,EAAA,EAChE,CAAA,EAAG,GAAG,CAAC,gCAAgC,CAAC,CAAA,CAAA,EAAI,OAAO,CAAE,CAAA,CAAa,CACvE,CAAC,CACM;;IAIpB,MAAM,GAAA;;AACF,QAAA,MAAM,EACF,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EAAE,UAAU,EACjC,UAAU,EACV,gBAAgB,EAAE,KAAK,EACvB,eAAe,EAAE,IAAI,EACrB,YAAY,EACZ,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,QAAQ,GACX,GAAG,IAAI;AACR,QAAA,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;AAC5B,QAAA,MAAM,UAAU,GAAG,IAAI,KAAK,UAAU;AAEtC,QAAA,IAAI,eAAe,GAAW,GAAG,CAAC,oCAAoC,CAAC;AACvE,QAAA,IAAI,eAAe,GAAW,GAAG,CAAC,wCAAwC,CAAC;QAC3E,IAAI,SAAS,EAAE;AACX,YAAA,eAAe,GAAG,GAAG,CAAC,qCAAqC,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AACnG,YAAA,eAAe,GAAG,GAAG,CAAC,qCAAqC,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;;aAChG,IAAI,WAAW,EAAE;AACpB,YAAA,eAAe,GAAG,GAAG,CAAC,uCAAuC,EAAE;AAC3D,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,UAAU,EAAE,UAAU,CAAC,WAAW,EAAE;gBACpC,KAAK;AACR,aAAA,CAAC;AACF,YAAA,eAAe,GAAG,GAAG,CAAC,uCAAuC,EAAE;AAC3D,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,UAAU,EAAE,UAAU,CAAC,WAAW,EAAE;gBACpC,KAAK;AACR,aAAA,CAAC;;AAGN,QAAA,QACI,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACI,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EACtC,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC,EAAA,YAAA,EAC3B,GAAG,CAAC,iCAAiC,CAAC,EAAA,EAElD,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACI,KAAK,EAAC,aAAa,EACX,SAAA,EAAA,aAAa,IAEpB;AACG,cAAE,GAAG,CAAC,iCAAiC,EAAE;AACnC,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,KAAK,EAAE,UAAU;aACpB;AACH,cAAE,GAAG,CAAC,uCAAuC,EAAE;AACzC,gBAAA,KAAK,EAAE,YAAY;AACnB,gBAAA,UAAU,EAAE,UAAU,CAAC,WAAW,EAAE;AACpC,gBAAA,KAAK,EAAE,KAAK,CAAC,cAAc,EAAE;AAChC,aAAA,CAAC,CACN,EACN,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,UAAU,EAAA,EACjB,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,WAAW,EAAA,EAClB,CAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACI,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,EACnC,KAAK,EAAE,GAAG,CAAC,yCAAyC,CAAC,EACrD,QAAQ,EAAE,QAAQ,IAAI,WAAW,EACjC,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAClC,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,EAGtB,CAAA,CAAA,SAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAS,IAAI,EAAC,qBAAqB,EAAA,CAAG,CACjC,EACT,CAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACI,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,EAClC,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,QAAQ,IAAI,WAAW,EACjC,UAAU,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,CAAC,aACzC,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,EAGrB,CAAA,CAAA,SAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAS,IAAI,EAAC,cAAc,EAAA,CAAG,CAC1B,CACP,EACN,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACI,KAAK,EAAC,eAAe,EACrB,MAAM,EAAE,gBAAgB,EAAA,EAExB,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,aAAA,EAAkB,MAAM,EAAE,EAAA,GAAG,CAAC,gCAAgC,CAAC,CAAQ,EACvE,CACI,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,eAAe,EACrB,OAAO,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,EAAA,EAErE,CAAA,CAAA,UAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACI,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,EACjC,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,GAAG,IAAI,CAAA,CAAE,EAChB,GAAG,EAAE,CAAC,EACN,GAAG,EAAE,IAAI,CAAC,UAAU,EACpB,SAAS,EACT,IAAA,EAAA,QAAQ,EACR,IAAA,EAAA,KAAK,EAAE,GAAG,GAAG,CAAC,gCAAgC,CAAC,KAAK,GAAG,CACnD,mCAAmC,EACnC,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAChC,CAAG,CAAA,CAAA,EACJ,QAAQ,EAAE,KAAK,IAAI,KAAK,CAAC,wBAAwB,EAAE,EACnD,WAAW,EAAE,KAAK,IAAG;gBACjB,KAAK,CAAC,eAAe,EAAE;gBACvB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AAC7C,aAAC,EAAA,SAAA,EACO,WAAW,EACnB,OAAO,EAAC,MAAM,EACd,QAAQ,EAAE,QAAQ,EAAA,CACV,CACV,EACN,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,aAAA,EAAkB,MAAM,EAAA,EACnB,GAAG,CAAC,mCAAmC,EAAE,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC,CACrE,CACL,EACN,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,WAAW,EAAA,EAClB,CAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACI,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,EAClC,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,QAAQ,IAAI,UAAU,EAChC,UAAU,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,CAAC,aACzC,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,EAGrB,CAAA,CAAA,SAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAS,IAAI,EAAC,eAAe,EAAA,CAAG,CAC3B,EACT,CAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACI,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,EAClC,KAAK,EAAC,wCAAwC,EAC9C,QAAQ,EAAE,QAAQ,IAAI,UAAU,EAChC,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,aAC3C,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,EAGrB,CAAA,CAAA,SAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAS,IAAI,EAAC,sBAAsB,EAAG,CAAA,CAClC,CACP,CACJ,EACN,CACI,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,UAAU,EAChB,MAAM,EAAE,gBAAgB,IAAI,EAAC,CAAA,EAAA,GAAA,IAAI,CAAC,iBAAiB,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,MAAM,CAAA,EAE1D,EAAA,iBAAiB,IAAI,IAAI,CAAC,aAAa,EAAE,CACxC,CACJ;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"q2-pagination.entry.esm.js","sources":["src/components/q2-pagination/q2-pagination.scss?tag=q2-pagination&encapsulation=shadow","src/components/q2-pagination/q2-pagination.tsx"],"sourcesContent":["@import '../../styles/host';\n@import '../../styles/functions';\n@import './variables';\n\n:host {\n display: flex;\n width: 100%;\n}\n\n:host([alignment='right']) {\n justify-content: flex-end;\n}\n\n:host([alignment='center']) {\n justify-content: center;\n}\n\n:host([alignment='left']) {\n justify-content: flex-start;\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 color: var(--tct-pagination-color, inherit);\n font-size: var(--tct-pagination-font-size, inherit);\n font-weight: var(--tct-pagination-font-weight, inherit);\n\n &.stacked {\n flex-direction: column;\n column-gap: 0;\n row-gap: var-list(--tct-pagination-row-gap, --app-scale-2x, 10px);\n height: auto;\n align-items: stretch;\n\n .description {\n text-align: center;\n }\n\n .controls {\n justify-content: center;\n }\n\n .per-page {\n display: flex;\n justify-content: center;\n }\n\n q2-select {\n --tct-select-margin: 0;\n width: var(--tct-pagination-perpage-width, 60%);\n }\n }\n}\n\n.controls {\n display: flex;\n}\n\n.btn-group {\n display: flex;\n gap: var-list(var-prefixer(pagination-btn-gap), 0);\n}\n\n.description,\n.input-display {\n white-space: nowrap;\n}\n\n.input-display {\n display: grid;\n grid-template-columns: auto var(--tct-pagination-input-width, 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 --tct-btn-icon-hover-background: #{var-list(--tct-pagination-btn-hover-background, --app-gray-l3, #f2f2f2)};\n --tct-icon-stroke-primary: #{var-list(--tct-pagination-btn-icon-stroke-primary, --app-gray, #747474)};\n --tct-icon-stroke-secondary: #{var-list(--tct-pagination-btn-icon-stroke-secondary, --app-gray, #747474)};\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\nq2-select {\n --tct-select-input-min-height: #{var-list(var-prefixer(pagination-select-height), 30px)};\n --tct-select-input-max-height: #{var-list(var-prefixer(pagination-select-height), 30px)};\n width: #{var-list(var-prefixer(pagination-perpage-width), 100%)};\n min-width: #{var-list(var-prefixer(pagination-perpage-min-width), 110px)};\n}\n","import {\n Component,\n State,\n Prop,\n h,\n ComponentInterface,\n Watch,\n Listen,\n Element,\n Method,\n Event,\n EventEmitter,\n} from '@stencil/core';\nimport { isEventFromElement, loc, nextPaint, overrideFocus } from 'src/utils';\nimport mirrorEmit from '@/utils/mirror-emit';\n\n/**\n * @name Pagination\n * @category Display\n * @summary Use for navigating between pages of content like search results or tables.\n */\n@Component({ tag: 'q2-pagination', shadow: true, styleUrl: 'q2-pagination.scss' })\nexport class Q2Pagination implements ComponentInterface {\n // #region Own Properties\n\n containerElement: HTMLElement;\n containerWidth: number;\n firstPageBtn: HTMLQ2BtnElement;\n inputField: HTMLQ2InputElement;\n lastPageBtn: HTMLQ2BtnElement;\n nextPageBtn: HTMLQ2BtnElement;\n perPageSelect: HTMLQ2SelectElement;\n prevPageBtn: HTMLQ2BtnElement;\n resizeObserver: ResizeObserver;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n isSmall: boolean;\n\n // #endregion\n // #region Public Property API\n\n /**\n * Indicates the horizontal alignment of pagination elements\n * @info\n * When using the 'stacked' version, the default alignment is 'center'. When using the unstacked version, the default alignment is 'right'.\n */\n @Prop({ reflect: true, mutable: true })\n alignment?: 'left' | 'center' | 'right';\n\n /** Determines whether the component uses dynamic resizing behavior. This is disabled when `pagesOnly`, `recordsOnly`, or `stacked` is true. */\n @Prop({ reflect: true, mutable: true })\n autoSize: boolean = true;\n\n /** Allows the component to be disabled should the state of the page require this */\n @Prop({ reflect: true, mutable: true })\n disabled: boolean = false;\n\n /** The current page that is being displayed. */\n @Prop({ reflect: true, mutable: true })\n page: number;\n\n /**\n * The number of pages that can be displayed.\n * @info\n * Only referenced when `pagesOnly` is true.\n */\n @Prop({ reflect: true, mutable: true })\n pages: number;\n\n /** Indicates to display only the current and total pages. This disables the `autoSize` feature. */\n @Prop({ reflect: true, mutable: true })\n pagesOnly: boolean;\n\n /** The total number of records displayed on each page. This disables the `autoSize` feature. */\n @Prop({ reflect: true, mutable: true })\n perPage: number;\n\n /**\n * A list of perPage values.\n * This generates a [Select](https://tecton.q2developer.com/design-system/q2-select/) element that allows the user to modify the `perPage` value.\n * @info\n * `pagesOnly` or `recordsOnly` being true disables this feature.\n *\n * **Example:**\n * @snippet\n * this.perPageIncrements = [10, 25, 50];\n */\n @Prop({ reflect: true, mutable: true })\n perPageIncrements: number[] | string[] | string | undefined;\n\n /** Indicates to display only the current and total records. */\n @Prop({ reflect: true, mutable: true })\n recordsOnly: boolean;\n\n /** Description of the record type to be displayed alongside the record count. */\n @Prop()\n recordType: string;\n\n /**\n * Allows the component to be displayed in a stacked layout. This disables the `autoSize` feature.\n * @info\n * When set to true, the default alignment will be 'center'. When false, the default alignment is 'right'.\n */\n @Prop({ reflect: true })\n stacked: boolean;\n\n /** The total number of records to paginate. */\n @Prop({ reflect: true })\n total: number;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the page is changed.\n * @legacyEvent\n * @deprecated Use 'tctChange' instead\n */\n @Event()\n change: EventEmitter<{ page: number; perPage: number }>;\n\n /**\n * Emitted when the page is changed.\n * @legacyEvent\n */\n @Event()\n tctChange: EventEmitter<{ page: number; perPage: number }>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n this.removeResizeObserver();\n }\n\n componentWillLoad(): void {\n this.checkDisplayTypes();\n this.manageResizeObserver();\n if (!this.alignment) {\n this.alignment = this.stacked ? 'center' : 'right';\n }\n }\n\n componentDidLoad(): void {\n this.containerWidth = this.containerElement.clientWidth;\n\n overrideFocus(this.hostElement);\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('focus')\n onHostElementFocus(event) {\n if (this.disabled) return;\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 // #endregion\n // #region Public Methods API\n\n /**\n * Emulates clicking the button that controls moving to the first page, and emitting a change event with the updated page number.\n *\n * If the `<button>` is disabled, this method does nothing.\n * @testOnly\n */\n @Method()\n async clickFirstPage() {\n if (this.disabled) return;\n const button = this.firstPageBtn;\n if (button?.disabled) return;\n button.click();\n }\n\n /**\n * Emulates clicking the button that controls moving to the last page, and emitting a change event with the updated page number.\n *\n * If the `<button>` is disabled, this method does nothing.\n * @testOnly\n */\n @Method()\n async clickLastPage() {\n if (this.disabled) return;\n const button = this.lastPageBtn;\n if (button?.disabled) return;\n button.click();\n }\n\n /**\n * Emulates clicking the button that controls moving to the next page, and emitting a change event with the updated page number.\n *\n * If the `<button>` is disabled, this method does nothing.\n * @testOnly\n */\n @Method()\n async clickNextPage() {\n if (this.disabled) return;\n const button = this.nextPageBtn;\n if (button?.disabled) return;\n button.click();\n }\n\n /**\n * Emulates clicking the button that controls moving to the previous page, and emitting a change event with the updated page number.\n *\n * If the `<button>` is disabled, this method does nothing.\n * @testOnly\n */\n @Method()\n async clickPreviousPage() {\n if (this.disabled) return;\n const button = this.prevPageBtn;\n if (button?.disabled) return;\n button.click();\n }\n\n /**\n * Emulates selecting a `perPage` value from the `perPageIncrements` dropdown,\n * and updates the value of the `perPage` property.\n *\n * If `value` is not in the `perPageIncrements` array, this method does nothing.\n * @testOnly\n */\n @Method()\n async selectPerPageIncrementValue(value: number) {\n if (this.disabled) return;\n if (isNaN(value) || !this.showPerPageSelect || !this.perPageIncrementsArray.includes(value)) return;\n this.perPageSelect.focus();\n this.perPageSelect.click();\n const options = Array.from(this.perPageSelect.querySelectorAll('q2-option'));\n options.find(option => option.value === `${value}`)?.click();\n }\n\n /**\n * Emulates setting the page value in the `<input>` field,\n * and emitting a change event with the updated page number.\n *\n * If `value` is invalid, this method does nothing.\n * @testOnly\n */\n @Method()\n async setPageValue(value: number) {\n if (this.disabled) return;\n if (!this.inputField || isNaN(value) || value < 1 || value > this.totalPages) return;\n this.inputField?.focus();\n this.inputField.value = `${value}`;\n this.inputField?.blur();\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('autoSize')\n manageResizeObserver() {\n if (this.autoSize) {\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 @Watch('recordsOnly')\n @Watch('pagesOnly')\n @Watch('stacked')\n checkDisplayTypes() {\n if (this.pagesOnly || this.recordsOnly || this.stacked) this.autoSize = false;\n }\n\n // #endregion\n // #region Local Methods\n\n get containerClasses() {\n const classes = ['container'];\n if (this.stacked) classes.push('stacked');\n return classes;\n }\n\n get currentRange() {\n const { perPageWithDefault: perPage, totalWithDefault: total, pageWithDefault: page } = this;\n const start = total > 0 ? (page - 1) * perPage + 1 : 0;\n const end = Math.min(page * perPage, total);\n return `${start} - ${end}`;\n }\n\n get isFullViewHidden() {\n return this.isSmall || this.recordsOnly || this.pagesOnly;\n }\n\n get nextRange() {\n const { perPageWithDefault: perPage, totalWithDefault: total, pageWithDefault: page } = this;\n const start = page * perPage + 1;\n const end = Math.min((page + 1) * perPage, total);\n return `${start} - ${end}`;\n }\n\n get pageWithDefault() {\n return this.total > 0 ? this.page || 1 : 0;\n }\n\n get perPageIncrementsArray() {\n if (Array.isArray(this.perPageIncrements)) {\n return this.perPageIncrements.map(num => Number(num));\n } else if (typeof this.perPageIncrements === 'string') {\n return this.perPageIncrements\n .trim()\n .replace(/[\\[\\]\\\"\\']/g, '')\n .split(',')\n .map(num => Number(num));\n } else {\n return [];\n }\n }\n\n get perPageWithDefault() {\n return this.perPage || 10;\n }\n\n get prevRange() {\n const { perPageWithDefault: perPage, pageWithDefault: page } = this;\n const start = Math.max(1, (page - 2) * perPage + 1);\n const end = (page - 1) * perPage;\n return `${start} - ${end}`;\n }\n\n get recordTypeWithDefault() {\n return this.recordType || loc('tecton.element.pagination.defaultRecordType');\n }\n\n get showPerPageSelect() {\n return this.perPageIncrements?.length > 1;\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 get totalWithDefault() {\n return this.total || 0;\n }\n\n checkSize = () => {\n const { hostElement, containerElement } = this;\n const isOverflowing = this.containerWidth > hostElement.clientWidth;\n this.isSmall = isOverflowing;\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 handlePageChange = (page: number | string) => {\n if (this.disabled) return;\n const { totalPages, inputField } = this;\n page = parseInt(`${page}`);\n if (isNaN(page) || 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 mirrorEmit(this, ['change', 'tctChange'], { page, perPage: this.perPageWithDefault });\n };\n\n handlePerPageChange = (event: CustomEvent) => {\n if (this.disabled) return;\n const perPage = (event.detail?.value || this.perPage) * 1;\n this.perPage = perPage;\n mirrorEmit(this, ['change', 'tctChange'], { page: this.pageWithDefault, perPage });\n };\n\n removeResizeObserver() {\n if (this.resizeObserver) {\n this.resizeObserver?.disconnect();\n this.resizeObserver = null;\n window.removeEventListener('resize', this.checkSize);\n }\n }\n\n // #endregion\n // #region Render Methods\n\n renderPerPage() {\n const increments = this.perPageIncrementsArray.sort((a, b) => a - b);\n if (this.perPage === undefined || isNaN(this.perPage)) this.perPage = increments[0];\n this.perPageIncrements = `[${increments.join(',')}]`;\n return (\n <q2-select\n ref={el => (this.perPageSelect = el)}\n onChange={e => e.stopImmediatePropagation()}\n onTctChange={event => {\n event.stopPropagation();\n this.handlePerPageChange(event);\n }}\n value={this.perPageIncrementsArray.includes(this.perPage) ? `${this.perPage}` : undefined}\n disabled={this.disabled}\n >\n {increments.map(perPage => (\n <q2-option\n value={`${perPage}`}\n display={`${loc('tecton.element.pagination.view')} ${perPage}`}\n >{`${loc('tecton.element.pagination.view')} ${perPage}`}</q2-option>\n ))}\n </q2-select>\n );\n }\n\n render() {\n const {\n pagesOnly,\n recordsOnly,\n isFullViewHidden,\n recordTypeWithDefault: recordType,\n totalPages,\n totalWithDefault: total,\n pageWithDefault: page,\n currentRange,\n nextRange,\n prevRange,\n showPerPageSelect,\n disabled,\n } = this;\n const onFirstPage = page < 2;\n const onLastPage = page === totalPages;\n\n let nextButtonLabel: string = loc('tecton.element.pagination.goToNext');\n let prevButtonLabel: string = loc('tecton.element.pagination.goToPrevious');\n if (pagesOnly) {\n prevButtonLabel = loc('tecton.element.pagination.goToPages', { next: page - 1, total: totalPages });\n nextButtonLabel = loc('tecton.element.pagination.goToPages', { next: page + 1, total: totalPages });\n } else if (recordsOnly) {\n prevButtonLabel = loc('tecton.element.pagination.goToRecords', {\n range: prevRange,\n recordType: recordType.toLowerCase(),\n total,\n });\n nextButtonLabel = loc('tecton.element.pagination.goToRecords', {\n range: nextRange,\n recordType: recordType.toLowerCase(),\n total,\n });\n }\n\n return (\n <nav\n class={this.containerClasses.join(' ')}\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=\"controls\">\n <div class=\"btn-group\">\n <q2-btn\n ref={el => (this.firstPageBtn = el)}\n label={loc('tecton.element.pagination.goToFirstPage')}\n disabled={disabled || onFirstPage}\n hidden={isFullViewHidden}\n onTctClick={() => 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 ref={el => (this.prevPageBtn = el)}\n label={prevButtonLabel}\n disabled={disabled || onFirstPage}\n onTctClick={() => 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=\"input-display\"\n hidden={isFullViewHidden}\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 ref={el => (this.inputField = el)}\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 => event.stopImmediatePropagation()}\n onTctChange={event => {\n event.stopPropagation();\n this.handlePageChange(event.detail.value);\n }}\n test-id=\"pageInput\"\n current=\"page\"\n disabled={disabled}\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 ref={el => (this.nextPageBtn = el)}\n label={nextButtonLabel}\n disabled={disabled || onLastPage}\n onTctClick={() => 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 ref={el => (this.lastPageBtn = el)}\n label=\"tecton.element.pagination.goToLastPage\"\n disabled={disabled || onLastPage}\n hidden={isFullViewHidden}\n onTctClick={() => this.handlePageChange(totalPages)}\n test-id=\"lastPageBtn\"\n hide-label\n >\n <q2-icon type=\"chevron-double-right\" />\n </q2-btn>\n </div>\n </div>\n <div\n class=\"per-page\"\n hidden={isFullViewHidden || !this.perPageIncrements?.length}\n >\n {showPerPageSelect && this.renderPerPage()}\n </div>\n </nav>\n );\n }\n\n // #endregion\n}\n"],"names":[],"mappings":";;;;AAAA,MAAM,eAAe,GAAG,47GAA47G;;MCsBv8G,YAAY,GAAA,MAAA;AADzB,IAAA,WAAA,CAAA,OAAA,EAAA;;;;;AAuCI,QAAA,IAAQ,CAAA,QAAA,GAAY,IAAI;;AAIxB,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AA4SzB,QAAA,IAAS,CAAA,SAAA,GAAG,MAAK;AACb,YAAA,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,GAAG,IAAI;YAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,WAAW;AACnE,YAAA,IAAI,CAAC,OAAO,GAAG,aAAa;YAE5B,SAAS,CAAC,MAAK;gBACX,MAAM,2BAA2B,GAAG,IAAI,CAAC,cAAc,KAAK,gBAAgB,CAAC,WAAW;AACxF,gBAAA,IAAI,2BAA2B;oBAAE;AACjC,gBAAA,IAAI,CAAC,cAAc,GAAG,gBAAgB,CAAC,WAAW;gBAClD,IAAI,CAAC,SAAS,EAAE;AACpB,aAAC,CAAC;AACN,SAAC;AAED,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,IAAqB,KAAI;YACzC,IAAI,IAAI,CAAC,QAAQ;gBAAE;AACnB,YAAA,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,IAAI;AACvC,YAAA,IAAI,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAA,CAAE,CAAC;YAC1B,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE;gBACzB,IAAI,GAAG,CAAC;;AACL,iBAAA,IAAI,IAAI,GAAG,UAAU,EAAE;gBAC1B,IAAI,GAAG,UAAU;;AAGrB,YAAA,IAAI,UAAU,CAAC,KAAK,KAAK,CAAA,EAAG,IAAI,CAAE,CAAA;AAAE,gBAAA,UAAU,CAAC,KAAK,GAAG,CAAG,EAAA,IAAI,EAAE;AAEhE,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;AAC5B,gBAAA,IAAI,CAAC,IAAI,GAAG,IAAI;;AAGpB,YAAA,UAAU,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC;AACzF,SAAC;AAED,QAAA,IAAA,CAAA,mBAAmB,GAAG,CAAC,KAAkB,KAAI;;YACzC,IAAI,IAAI,CAAC,QAAQ;gBAAE;AACnB,YAAA,MAAM,OAAO,GAAG,CAAC,CAAA,CAAA,EAAA,GAAA,KAAK,CAAC,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,KAAK,KAAI,IAAI,CAAC,OAAO,IAAI,CAAC;AACzD,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,YAAA,UAAU,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC;AACtF,SAAC;AA6LJ;;;IAlcG,oBAAoB,GAAA;QAChB,IAAI,CAAC,oBAAoB,EAAE;;IAG/B,iBAAiB,GAAA;QACb,IAAI,CAAC,iBAAiB,EAAE;QACxB,IAAI,CAAC,oBAAoB,EAAE;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACjB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,GAAG,OAAO;;;IAI1D,gBAAgB,GAAA;QACZ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW;AAEvD,QAAA,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;;;;AAOnC,IAAA,kBAAkB,CAAC,KAAK,EAAA;;QACpB,IAAI,IAAI,CAAC,QAAQ;YAAE;QACnB,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC;YAAE;QAClD,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,EAAE,GAAG,IAAI;QAC/D,IAAI,gBAAgB,EAAE;AAClB,YAAA,CAAA,EAAA,GAAA,gBAAgB,CAAC,aAAa,CAAc,wBAAwB,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,KAAK,EAAE;;aAC3E;YACH,UAAU,CAAC,KAAK,EAAE;;;;;AAO1B;;;;;AAKG;AAEH,IAAA,MAAM,cAAc,GAAA;QAChB,IAAI,IAAI,CAAC,QAAQ;YAAE;AACnB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY;AAChC,QAAA,IAAI,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,MAAA,GAAA,MAAA,GAAA,MAAM,CAAE,QAAQ;YAAE;QACtB,MAAM,CAAC,KAAK,EAAE;;AAGlB;;;;;AAKG;AAEH,IAAA,MAAM,aAAa,GAAA;QACf,IAAI,IAAI,CAAC,QAAQ;YAAE;AACnB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW;AAC/B,QAAA,IAAI,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,MAAA,GAAA,MAAA,GAAA,MAAM,CAAE,QAAQ;YAAE;QACtB,MAAM,CAAC,KAAK,EAAE;;AAGlB;;;;;AAKG;AAEH,IAAA,MAAM,aAAa,GAAA;QACf,IAAI,IAAI,CAAC,QAAQ;YAAE;AACnB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW;AAC/B,QAAA,IAAI,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,MAAA,GAAA,MAAA,GAAA,MAAM,CAAE,QAAQ;YAAE;QACtB,MAAM,CAAC,KAAK,EAAE;;AAGlB;;;;;AAKG;AAEH,IAAA,MAAM,iBAAiB,GAAA;QACnB,IAAI,IAAI,CAAC,QAAQ;YAAE;AACnB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW;AAC/B,QAAA,IAAI,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,MAAA,GAAA,MAAA,GAAA,MAAM,CAAE,QAAQ;YAAE;QACtB,MAAM,CAAC,KAAK,EAAE;;AAGlB;;;;;;AAMG;IAEH,MAAM,2BAA2B,CAAC,KAAa,EAAA;;QAC3C,IAAI,IAAI,CAAC,QAAQ;YAAE;AACnB,QAAA,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE;AAC7F,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;AAC1B,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;AAC5E,QAAA,CAAA,EAAA,GAAA,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,KAAK,CAAG,EAAA,KAAK,EAAE,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,KAAK,EAAE;;AAGhE;;;;;;AAMG;IAEH,MAAM,YAAY,CAAC,KAAa,EAAA;;QAC5B,IAAI,IAAI,CAAC,QAAQ;YAAE;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU;YAAE;QAC9E,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,KAAK,EAAE;QACxB,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,CAAG,EAAA,KAAK,EAAE;QAClC,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAI,EAAE;;;;IAO3B,oBAAoB,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,IAAI,CAAC,cAAc;gBAAE;AACzB,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YAChE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;YAC7C,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC;;aAC9C;AACH,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK;YACpB,IAAI,CAAC,oBAAoB,EAAE;;;IAOnC,iBAAiB,GAAA;QACb,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;;;;AAMjF,IAAA,IAAI,gBAAgB,GAAA;AAChB,QAAA,MAAM,OAAO,GAAG,CAAC,WAAW,CAAC;QAC7B,IAAI,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,QAAA,OAAO,OAAO;;AAGlB,IAAA,IAAI,YAAY,GAAA;AACZ,QAAA,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,IAAI;QAC5F,MAAM,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC;AACtD,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,OAAO,EAAE,KAAK,CAAC;AAC3C,QAAA,OAAO,CAAG,EAAA,KAAK,CAAM,GAAA,EAAA,GAAG,EAAE;;AAG9B,IAAA,IAAI,gBAAgB,GAAA;QAChB,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS;;AAG7D,IAAA,IAAI,SAAS,GAAA;AACT,QAAA,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,IAAI;AAC5F,QAAA,MAAM,KAAK,GAAG,IAAI,GAAG,OAAO,GAAG,CAAC;AAChC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,OAAO,EAAE,KAAK,CAAC;AACjD,QAAA,OAAO,CAAG,EAAA,KAAK,CAAM,GAAA,EAAA,GAAG,EAAE;;AAG9B,IAAA,IAAI,eAAe,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC;;AAG9C,IAAA,IAAI,sBAAsB,GAAA;QACtB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE;AACvC,YAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;;AAClD,aAAA,IAAI,OAAO,IAAI,CAAC,iBAAiB,KAAK,QAAQ,EAAE;YACnD,OAAO,IAAI,CAAC;AACP,iBAAA,IAAI;AACJ,iBAAA,OAAO,CAAC,aAAa,EAAE,EAAE;iBACzB,KAAK,CAAC,GAAG;iBACT,GAAG,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;;aACzB;AACH,YAAA,OAAO,EAAE;;;AAIjB,IAAA,IAAI,kBAAkB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,OAAO,IAAI,EAAE;;AAG7B,IAAA,IAAI,SAAS,GAAA;QACT,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,IAAI;AACnE,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC;QACnD,MAAM,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,OAAO;AAChC,QAAA,OAAO,CAAG,EAAA,KAAK,CAAM,GAAA,EAAA,GAAG,EAAE;;AAG9B,IAAA,IAAI,qBAAqB,GAAA;QACrB,OAAO,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC,6CAA6C,CAAC;;AAGhF,IAAA,IAAI,iBAAiB,GAAA;;AACjB,QAAA,OAAO,CAAA,MAAA,IAAI,CAAC,iBAAiB,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,MAAM,IAAG,CAAC;;AAG7C,IAAA,IAAI,UAAU,GAAA;AACV,QAAA,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI;AAEvF,QAAA,IAAI,SAAS,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA,EAAG,KAAK,CAAA,CAAE,CAAC,CAAC;AAAE,YAAA,OAAO,KAAK;QAEpE,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;;AAGrC,IAAA,IAAI,gBAAgB,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC;;IA0C1B,oBAAoB,GAAA;;AAChB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,CAAA,EAAA,GAAA,IAAI,CAAC,cAAc,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,UAAU,EAAE;AACjC,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI;YAC1B,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC;;;;;IAO5D,aAAa,GAAA;AACT,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpE,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC;QACnF,IAAI,CAAC,iBAAiB,GAAG,CAAI,CAAA,EAAA,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA,CAAG;AACpD,QAAA,QACI,CAAA,CAAA,WAAA,EAAA,EACI,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC,EACpC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,wBAAwB,EAAE,EAC3C,WAAW,EAAE,KAAK,IAAG;gBACjB,KAAK,CAAC,eAAe,EAAE;AACvB,gBAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AACnC,aAAC,EACD,KAAK,EAAE,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAG,EAAA,IAAI,CAAC,OAAO,EAAE,GAAG,SAAS,EACzF,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAEtB,EAAA,UAAU,CAAC,GAAG,CAAC,OAAO,KACnB,CAAA,CAAA,WAAA,EAAA,EACI,KAAK,EAAE,CAAG,EAAA,OAAO,EAAE,EACnB,OAAO,EAAE,CAAA,EAAG,GAAG,CAAC,gCAAgC,CAAC,CAAA,CAAA,EAAI,OAAO,CAAE,CAAA,EAAA,EAChE,CAAA,EAAG,GAAG,CAAC,gCAAgC,CAAC,CAAA,CAAA,EAAI,OAAO,CAAE,CAAA,CAAa,CACvE,CAAC,CACM;;IAIpB,MAAM,GAAA;;AACF,QAAA,MAAM,EACF,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EAAE,UAAU,EACjC,UAAU,EACV,gBAAgB,EAAE,KAAK,EACvB,eAAe,EAAE,IAAI,EACrB,YAAY,EACZ,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,QAAQ,GACX,GAAG,IAAI;AACR,QAAA,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;AAC5B,QAAA,MAAM,UAAU,GAAG,IAAI,KAAK,UAAU;AAEtC,QAAA,IAAI,eAAe,GAAW,GAAG,CAAC,oCAAoC,CAAC;AACvE,QAAA,IAAI,eAAe,GAAW,GAAG,CAAC,wCAAwC,CAAC;QAC3E,IAAI,SAAS,EAAE;AACX,YAAA,eAAe,GAAG,GAAG,CAAC,qCAAqC,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AACnG,YAAA,eAAe,GAAG,GAAG,CAAC,qCAAqC,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;;aAChG,IAAI,WAAW,EAAE;AACpB,YAAA,eAAe,GAAG,GAAG,CAAC,uCAAuC,EAAE;AAC3D,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,UAAU,EAAE,UAAU,CAAC,WAAW,EAAE;gBACpC,KAAK;AACR,aAAA,CAAC;AACF,YAAA,eAAe,GAAG,GAAG,CAAC,uCAAuC,EAAE;AAC3D,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,UAAU,EAAE,UAAU,CAAC,WAAW,EAAE;gBACpC,KAAK;AACR,aAAA,CAAC;;AAGN,QAAA,QACI,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACI,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EACtC,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC,EAAA,YAAA,EAC3B,GAAG,CAAC,iCAAiC,CAAC,EAAA,EAElD,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACI,KAAK,EAAC,aAAa,EACX,SAAA,EAAA,aAAa,IAEpB;AACG,cAAE,GAAG,CAAC,iCAAiC,EAAE;AACnC,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,KAAK,EAAE,UAAU;aACpB;AACH,cAAE,GAAG,CAAC,uCAAuC,EAAE;AACzC,gBAAA,KAAK,EAAE,YAAY;AACnB,gBAAA,UAAU,EAAE,UAAU,CAAC,WAAW,EAAE;AACpC,gBAAA,KAAK,EAAE,KAAK,CAAC,cAAc,EAAE;AAChC,aAAA,CAAC,CACN,EACN,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,UAAU,EAAA,EACjB,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,WAAW,EAAA,EAClB,CAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACI,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,EACnC,KAAK,EAAE,GAAG,CAAC,yCAAyC,CAAC,EACrD,QAAQ,EAAE,QAAQ,IAAI,WAAW,EACjC,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAClC,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,EAGtB,CAAA,CAAA,SAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAS,IAAI,EAAC,qBAAqB,EAAA,CAAG,CACjC,EACT,CAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACI,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,EAClC,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,QAAQ,IAAI,WAAW,EACjC,UAAU,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,CAAC,aACzC,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,EAGrB,CAAA,CAAA,SAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAS,IAAI,EAAC,cAAc,EAAA,CAAG,CAC1B,CACP,EACN,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACI,KAAK,EAAC,eAAe,EACrB,MAAM,EAAE,gBAAgB,EAAA,EAExB,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,aAAA,EAAkB,MAAM,EAAE,EAAA,GAAG,CAAC,gCAAgC,CAAC,CAAQ,EACvE,CACI,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,eAAe,EACrB,OAAO,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,EAAA,EAErE,CAAA,CAAA,UAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACI,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,EACjC,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,GAAG,IAAI,CAAA,CAAE,EAChB,GAAG,EAAE,CAAC,EACN,GAAG,EAAE,IAAI,CAAC,UAAU,EACpB,SAAS,EACT,IAAA,EAAA,QAAQ,EACR,IAAA,EAAA,KAAK,EAAE,GAAG,GAAG,CAAC,gCAAgC,CAAC,KAAK,GAAG,CACnD,mCAAmC,EACnC,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAChC,CAAG,CAAA,CAAA,EACJ,QAAQ,EAAE,KAAK,IAAI,KAAK,CAAC,wBAAwB,EAAE,EACnD,WAAW,EAAE,KAAK,IAAG;gBACjB,KAAK,CAAC,eAAe,EAAE;gBACvB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AAC7C,aAAC,EAAA,SAAA,EACO,WAAW,EACnB,OAAO,EAAC,MAAM,EACd,QAAQ,EAAE,QAAQ,EAAA,CACV,CACV,EACN,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,aAAA,EAAkB,MAAM,EAAA,EACnB,GAAG,CAAC,mCAAmC,EAAE,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC,CACrE,CACL,EACN,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,WAAW,EAAA,EAClB,CAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACI,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,EAClC,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,QAAQ,IAAI,UAAU,EAChC,UAAU,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,CAAC,aACzC,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,EAGrB,CAAA,CAAA,SAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAS,IAAI,EAAC,eAAe,EAAA,CAAG,CAC3B,EACT,CAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACI,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,EAClC,KAAK,EAAC,wCAAwC,EAC9C,QAAQ,EAAE,QAAQ,IAAI,UAAU,EAChC,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,aAC3C,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,EAGrB,CAAA,CAAA,SAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAS,IAAI,EAAC,sBAAsB,EAAG,CAAA,CAClC,CACP,CACJ,EACN,CACI,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,UAAU,EAChB,MAAM,EAAE,gBAAgB,IAAI,EAAC,CAAA,EAAA,GAAA,IAAI,CAAC,iBAAiB,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,MAAM,CAAA,EAE1D,EAAA,iBAAiB,IAAI,IAAI,CAAC,aAAa,EAAE,CACxC,CACJ;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { r as t, c as e, h as i, g as n } from "./index-CGkHOjh1.js";
2
2
 
3
- import { n as a, o as s, i as o, l as r } from "./index-C4PILj1_.js";
3
+ import { n as a, o as s, i as o, l as r } from "./index-C5gj0T_3.js";
4
4
 
5
5
  import { m as c } from "./mirror-emit-DUjY_ucm.js";
6
6
 
@@ -262,8 +262,8 @@ const l = class {
262
262
  }
263
263
  render() {
264
264
  var t;
265
- const {pagesOnly: e, recordsOnly: n, isFullViewHidden: a, recordTypeWithDefault: s, totalPages: o, totalWithDefault: c, pageWithDefault: h, currentRange: l, nextRange: p, prevRange: d, showPerPageSelect: g, disabled: u} = this;
266
- const f = h < 2;
265
+ const {pagesOnly: e, recordsOnly: n, isFullViewHidden: a, recordTypeWithDefault: s, totalPages: o, totalWithDefault: c, pageWithDefault: h, currentRange: l, nextRange: d, prevRange: p, showPerPageSelect: g, disabled: f} = this;
266
+ const u = h < 2;
267
267
  const b = h === o;
268
268
  let v = r("tecton.element.pagination.goToNext");
269
269
  let y = r("tecton.element.pagination.goToPrevious");
@@ -278,23 +278,23 @@ const l = class {
278
278
  });
279
279
  } else if (n) {
280
280
  y = r("tecton.element.pagination.goToRecords", {
281
- range: d,
281
+ range: p,
282
282
  recordType: s.toLowerCase(),
283
283
  total: c
284
284
  });
285
285
  v = r("tecton.element.pagination.goToRecords", {
286
- range: p,
286
+ range: d,
287
287
  recordType: s.toLowerCase(),
288
288
  total: c
289
289
  });
290
290
  }
291
291
  return i("nav", {
292
- key: "0947c1d04f042cb5f096d74146cc700e7993f277",
292
+ key: "8763672430fe7db0f31881ddb56ae2e145db2e1d",
293
293
  class: this.containerClasses.join(" "),
294
294
  ref: t => this.containerElement = t,
295
295
  "aria-label": r("tecton.element.pagination.title")
296
296
  }, i("div", {
297
- key: "6da46e6c76dffa66026057e53c7515bcf00576e0",
297
+ key: "ed956602d3b7d8aef4265f98e9c83224e3d9ddfb",
298
298
  class: "description",
299
299
  "test-id": "description"
300
300
  }, e ? r("tecton.element.pagination.pages", {
@@ -305,47 +305,47 @@ const l = class {
305
305
  recordType: s.toLowerCase(),
306
306
  total: c.toLocaleString()
307
307
  })), i("div", {
308
- key: "35963f235d6b549eedb8c9a443ecde053ecd8682",
308
+ key: "97e385cf0f32b0f4aff62c501010eda743f731d4",
309
309
  class: "controls"
310
310
  }, i("div", {
311
- key: "7016ffd2c95a76d34fd7ca112472a2a1067d7012",
311
+ key: "5a21d4a3cd3d20fb7e533001537ba6533a135b7e",
312
312
  class: "btn-group"
313
313
  }, i("q2-btn", {
314
- key: "a2a826b5ed84cedf548eaaf8aa2a8f95ad5085e6",
314
+ key: "fab99b68ddede211b84ea09ec2c0aa908b20c84f",
315
315
  ref: t => this.firstPageBtn = t,
316
316
  label: r("tecton.element.pagination.goToFirstPage"),
317
- disabled: u || f,
317
+ disabled: f || u,
318
318
  hidden: a,
319
319
  onTctClick: () => this.handlePageChange(1),
320
320
  "test-id": "firstPageBtn",
321
321
  "hide-label": true
322
322
  }, i("q2-icon", {
323
- key: "7ebc8f748c55786954292287b4f593841a367e28",
323
+ key: "78ddca1e5e40f1006ccc76d37a2acbef3a9b367e",
324
324
  type: "chevron-double-left"
325
325
  })), i("q2-btn", {
326
- key: "dfd853b3bee34fe837dc9c621829fa59c44bc81c",
326
+ key: "ee99beff9982742339575be746768f0e0ba4b7dd",
327
327
  ref: t => this.prevPageBtn = t,
328
328
  label: y,
329
- disabled: u || f,
329
+ disabled: f || u,
330
330
  onTctClick: () => this.handlePageChange(h - 1),
331
331
  "test-id": "prevPageBtn",
332
332
  "hide-label": true
333
333
  }, i("q2-icon", {
334
- key: "519ef8ea441d04291b4393ba1ab03cd2198e88b3",
334
+ key: "2217e33508d661f4633aae1fc2a7606239c5cca3",
335
335
  type: "chevron-left"
336
336
  }))), i("div", {
337
- key: "fd9d2f84689b857d134babd6d7d38de5f347488d",
337
+ key: "0ef2e367f04e294dc5d55155d9cd1dd438b5d1e9",
338
338
  class: "input-display",
339
339
  hidden: a
340
340
  }, i("span", {
341
- key: "c8a48d708096badc6796a9caef840c807aa06db7",
341
+ key: "94e65818ce517fe5b3039dc28321cf02f9bdd62a",
342
342
  "aria-hidden": "true"
343
343
  }, r("tecton.element.pagination.page")), i("div", {
344
- key: "1e9965fa782cdf724e261294ad22eb34305c1c69",
344
+ key: "77b516a12af1e9473713088085481b41e7378dc6",
345
345
  class: "input-wrapper",
346
346
  onClick: () => this.inputField.dispatchEvent(new FocusEvent("focus"))
347
347
  }, i("q2-input", {
348
- key: "e61dc0d32f806ffbee54736755f8c2c8fb3dc2a4",
348
+ key: "f994ddf1fd6cbfe66bd7551f3d08d752177d079b",
349
349
  ref: t => this.inputField = t,
350
350
  type: "number",
351
351
  value: `${h}`,
@@ -361,38 +361,38 @@ const l = class {
361
361
  },
362
362
  "test-id": "pageInput",
363
363
  current: "page",
364
- disabled: u
364
+ disabled: f
365
365
  })), i("span", {
366
- key: "ea7d626698765518e2e5dcd2118b20106413134d",
366
+ key: "5e2e425ef6f23d54014d1ac55cfc70dc637b8ac6",
367
367
  "aria-hidden": "true"
368
368
  }, r("tecton.element.pagination.ofPages", [ o.toLocaleString() ]))), i("div", {
369
- key: "eb93f6858f18c382d5ebe97007c7de6a3313e6cf",
369
+ key: "0c786061e114793b5ea6a99dac53e3419a48867c",
370
370
  class: "btn-group"
371
371
  }, i("q2-btn", {
372
- key: "0ab9275fbfbc3514571f2fb308b1a15345816cf5",
372
+ key: "57bd0ac272a6d80000795511615ed198d0baf6ee",
373
373
  ref: t => this.nextPageBtn = t,
374
374
  label: v,
375
- disabled: u || b,
375
+ disabled: f || b,
376
376
  onTctClick: () => this.handlePageChange(h + 1),
377
377
  "test-id": "nextPageBtn",
378
378
  "hide-label": true
379
379
  }, i("q2-icon", {
380
- key: "9968130c79eaaa564f1ca47ccc9e09a0d9ec564b",
380
+ key: "939f705dee78a26c664c82f783481316f5ff0813",
381
381
  type: "chevron-right"
382
382
  })), i("q2-btn", {
383
- key: "08c3ebf15360ba2f1ccf56d2b12c458a2ebdb71e",
383
+ key: "5e3c35772a15c571bad68f57f53494fe83af0959",
384
384
  ref: t => this.lastPageBtn = t,
385
385
  label: "tecton.element.pagination.goToLastPage",
386
- disabled: u || b,
386
+ disabled: f || b,
387
387
  hidden: a,
388
388
  onTctClick: () => this.handlePageChange(o),
389
389
  "test-id": "lastPageBtn",
390
390
  "hide-label": true
391
391
  }, i("q2-icon", {
392
- key: "83351e90f2645f9c2e8854ff46a684a9f43f339b",
392
+ key: "f9d2eb19cc20b1b2e68e8f0dfd0825a3a6f83263",
393
393
  type: "chevron-double-right"
394
394
  })))), i("div", {
395
- key: "dcdb653d221e0a92910a6ece5e234126e66c8410",
395
+ key: "983fb48580f634ff33f5ba6bec3af9304c67c99d",
396
396
  class: "per-page",
397
397
  hidden: a || !((t = this.perPageIncrements) === null || t === void 0 ? void 0 : t.length)
398
398
  }, g && this.renderPerPage()));
@@ -1 +1 @@
1
- {"version":3,"names":["q2PaginationCss","Q2Pagination","constructor","hostRef","this","autoSize","disabled","checkSize","hostElement","containerElement","isOverflowing","containerWidth","clientWidth","isSmall","nextPaint","containerWidthHasNotChanged","handlePageChange","page","totalPages","inputField","parseInt","isNaN","value","onchange","mirrorEmit","perPage","perPageWithDefault","handlePerPageChange","event","_a","detail","pageWithDefault","disconnectedCallback","removeResizeObserver","componentWillLoad","checkDisplayTypes","manageResizeObserver","alignment","stacked","componentDidLoad","overrideFocus","onHostElementFocus","isEventFromElement","isFullViewHidden","querySelector","focus","clickFirstPage","button","firstPageBtn","click","clickLastPage","lastPageBtn","clickNextPage","nextPageBtn","clickPreviousPage","prevPageBtn","selectPerPageIncrementValue","showPerPageSelect","perPageIncrementsArray","includes","perPageSelect","options","Array","from","querySelectorAll","find","option","setPageValue","_b","blur","resizeObserver","ResizeObserver","observe","window","addEventListener","pagesOnly","recordsOnly","containerClasses","classes","push","currentRange","totalWithDefault","total","start","end","Math","min","nextRange","isArray","perPageIncrements","map","num","Number","trim","replace","split","prevRange","max","recordTypeWithDefault","recordType","loc","length","pages","ceil","disconnect","removeEventListener","renderPerPage","increments","sort","a","b","undefined","join","h","ref","el","onChange","e","stopImmediatePropagation","onTctChange","stopPropagation","display","render","onFirstPage","onLastPage","nextButtonLabel","prevButtonLabel","next","range","toLowerCase","key","class","current","toLocaleString","label","hidden","onTctClick","type","onClick","dispatchEvent","FocusEvent","hideLabel","optional"],"sources":["src/components/q2-pagination/q2-pagination.scss?tag=q2-pagination&encapsulation=shadow","src/components/q2-pagination/q2-pagination.tsx"],"sourcesContent":["@import '../../styles/host';\n@import '../../styles/functions';\n\n:host {\n display: flex;\n width: 100%;\n}\n\n:host([alignment='right']) {\n justify-content: flex-end;\n}\n\n:host([alignment='center']) {\n justify-content: center;\n}\n\n:host([alignment='left']) {\n justify-content: flex-start;\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 color: var(--tct-pagination-color, inherit);\n font-size: var(--tct-pagination-font-size, inherit);\n font-weight: var(--tct-pagination-font-weight, inherit);\n\n &.stacked {\n flex-direction: column;\n column-gap: 0;\n row-gap: var-list(--tct-pagination-row-gap, --app-scale-2x, 10px);\n height: auto;\n align-items: stretch;\n\n .description {\n text-align: center;\n }\n\n .controls {\n justify-content: center;\n }\n\n .per-page {\n display: flex;\n justify-content: center;\n }\n\n q2-select {\n --tct-select-margin: 0;\n width: var(--tct-pagination-perpage-width, 60%);\n }\n }\n}\n\n.controls {\n display: flex;\n}\n\n.btn-group {\n display: flex;\n gap: var-list(var-prefixer(pagination-btn-gap), 0);\n}\n\n.description,\n.input-display {\n white-space: nowrap;\n}\n\n.input-display {\n display: grid;\n grid-template-columns: auto var(--tct-pagination-input-width, 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 --tct-btn-icon-hover-background: #{var-list(--tct-pagination-btn-hover-background, --app-gray-l3, #f2f2f2)};\n --tct-icon-stroke-primary: #{var-list(--tct-pagination-btn-icon-stroke-primary, --app-gray, #747474)};\n --tct-icon-stroke-secondary: #{var-list(--tct-pagination-btn-icon-stroke-secondary, --app-gray, #747474)};\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\nq2-select {\n --tct-select-input-min-height: #{var-list(var-prefixer(pagination-select-height), 30px)};\n --tct-select-input-max-height: #{var-list(var-prefixer(pagination-select-height), 30px)};\n width: #{var-list(var-prefixer(pagination-perpage-width), 100%)};\n min-width: #{var-list(var-prefixer(pagination-perpage-min-width), 110px)};\n}\n","import {\n Component,\n State,\n Prop,\n h,\n ComponentInterface,\n Watch,\n Listen,\n Element,\n Method,\n Event,\n EventEmitter,\n} from '@stencil/core';\nimport { isEventFromElement, loc, nextPaint, overrideFocus } from 'src/utils';\nimport mirrorEmit from '@/utils/mirror-emit';\n\n/**\n * @name Pagination\n * @category Display\n * @summary Use for navigating between pages of content like search results or tables.\n */\n@Component({ tag: 'q2-pagination', shadow: true, styleUrl: 'q2-pagination.scss' })\nexport class Q2Pagination implements ComponentInterface {\n // #region Own Properties\n\n containerElement: HTMLElement;\n containerWidth: number;\n firstPageBtn: HTMLQ2BtnElement;\n inputField: HTMLQ2InputElement;\n lastPageBtn: HTMLQ2BtnElement;\n nextPageBtn: HTMLQ2BtnElement;\n perPageSelect: HTMLQ2SelectElement;\n prevPageBtn: HTMLQ2BtnElement;\n resizeObserver: ResizeObserver;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n isSmall: boolean;\n\n // #endregion\n // #region Public Property API\n\n /**\n * Indicates the horizontal alignment of pagination elements\n * @info\n * When using the 'stacked' version, the default alignment is 'center'. When using the unstacked version, the default alignment is 'right'.\n */\n @Prop({ reflect: true, mutable: true })\n alignment?: 'left' | 'center' | 'right';\n\n /** Determines whether the component uses dynamic resizing behavior. This is disabled when `pagesOnly`, `recordsOnly`, or `stacked` is true. */\n @Prop({ reflect: true, mutable: true })\n autoSize: boolean = true;\n\n /** Allows the component to be disabled should the state of the page require this */\n @Prop({ reflect: true, mutable: true })\n disabled: boolean = false;\n\n /** The current page that is being displayed. */\n @Prop({ reflect: true, mutable: true })\n page: number;\n\n /**\n * The number of pages that can be displayed.\n * @info\n * Only referenced when `pagesOnly` is true.\n */\n @Prop({ reflect: true, mutable: true })\n pages: number;\n\n /** Indicates to display only the current and total pages. This disables the `autoSize` feature. */\n @Prop({ reflect: true, mutable: true })\n pagesOnly: boolean;\n\n /** The total number of records displayed on each page. This disables the `autoSize` feature. */\n @Prop({ reflect: true, mutable: true })\n perPage: number;\n\n /**\n * A list of perPage values.\n * This generates a [Select](https://tecton.q2developer.com/design-system/q2-select/) element that allows the user to modify the `perPage` value.\n * @info\n * `pagesOnly` or `recordsOnly` being true disables this feature.\n *\n * **Example:**\n * @snippet\n * this.perPageIncrements = [10, 25, 50];\n */\n @Prop({ reflect: true, mutable: true })\n perPageIncrements: number[] | string[] | string | undefined;\n\n /** Indicates to display only the current and total records. */\n @Prop({ reflect: true, mutable: true })\n recordsOnly: boolean;\n\n /** Description of the record type to be displayed alongside the record count. */\n @Prop()\n recordType: string;\n\n /**\n * Allows the component to be displayed in a stacked layout. This disables the `autoSize` feature.\n * @info\n * When set to true, the default alignment will be 'center'. When false, the default alignment is 'right'.\n */\n @Prop({ reflect: true })\n stacked: boolean;\n\n /** The total number of records to paginate. */\n @Prop({ reflect: true })\n total: number;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the page is changed.\n * @legacyEvent\n * @deprecated Use 'tctChange' instead\n */\n @Event()\n change: EventEmitter<{ page: number; perPage: number }>;\n\n /**\n * Emitted when the page is changed.\n * @legacyEvent\n */\n @Event()\n tctChange: EventEmitter<{ page: number; perPage: number }>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n this.removeResizeObserver();\n }\n\n componentWillLoad(): void {\n this.checkDisplayTypes();\n this.manageResizeObserver();\n if (!this.alignment) {\n this.alignment = this.stacked ? 'center' : 'right';\n }\n }\n\n componentDidLoad(): void {\n this.containerWidth = this.containerElement.clientWidth;\n\n overrideFocus(this.hostElement);\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('focus')\n onHostElementFocus(event) {\n if (this.disabled) return;\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 // #endregion\n // #region Public Methods API\n\n /**\n * Emulates clicking the button that controls moving to the first page, and emitting a change event with the updated page number.\n *\n * If the `<button>` is disabled, this method does nothing.\n * @testOnly\n */\n @Method()\n async clickFirstPage() {\n if (this.disabled) return;\n const button = this.firstPageBtn;\n if (button?.disabled) return;\n button.click();\n }\n\n /**\n * Emulates clicking the button that controls moving to the last page, and emitting a change event with the updated page number.\n *\n * If the `<button>` is disabled, this method does nothing.\n * @testOnly\n */\n @Method()\n async clickLastPage() {\n if (this.disabled) return;\n const button = this.lastPageBtn;\n if (button?.disabled) return;\n button.click();\n }\n\n /**\n * Emulates clicking the button that controls moving to the next page, and emitting a change event with the updated page number.\n *\n * If the `<button>` is disabled, this method does nothing.\n * @testOnly\n */\n @Method()\n async clickNextPage() {\n if (this.disabled) return;\n const button = this.nextPageBtn;\n if (button?.disabled) return;\n button.click();\n }\n\n /**\n * Emulates clicking the button that controls moving to the previous page, and emitting a change event with the updated page number.\n *\n * If the `<button>` is disabled, this method does nothing.\n * @testOnly\n */\n @Method()\n async clickPreviousPage() {\n if (this.disabled) return;\n const button = this.prevPageBtn;\n if (button?.disabled) return;\n button.click();\n }\n\n /**\n * Emulates selecting a `perPage` value from the `perPageIncrements` dropdown,\n * and updates the value of the `perPage` property.\n *\n * If `value` is not in the `perPageIncrements` array, this method does nothing.\n * @testOnly\n */\n @Method()\n async selectPerPageIncrementValue(value: number) {\n if (this.disabled) return;\n if (isNaN(value) || !this.showPerPageSelect || !this.perPageIncrementsArray.includes(value)) return;\n this.perPageSelect.focus();\n this.perPageSelect.click();\n const options = Array.from(this.perPageSelect.querySelectorAll('q2-option'));\n options.find(option => option.value === `${value}`)?.click();\n }\n\n /**\n * Emulates setting the page value in the `<input>` field,\n * and emitting a change event with the updated page number.\n *\n * If `value` is invalid, this method does nothing.\n * @testOnly\n */\n @Method()\n async setPageValue(value: number) {\n if (this.disabled) return;\n if (!this.inputField || isNaN(value) || value < 1 || value > this.totalPages) return;\n this.inputField?.focus();\n this.inputField.value = `${value}`;\n this.inputField?.blur();\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('autoSize')\n manageResizeObserver() {\n if (this.autoSize) {\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 @Watch('recordsOnly')\n @Watch('pagesOnly')\n @Watch('stacked')\n checkDisplayTypes() {\n if (this.pagesOnly || this.recordsOnly || this.stacked) this.autoSize = false;\n }\n\n // #endregion\n // #region Local Methods\n\n get containerClasses() {\n const classes = ['container'];\n if (this.stacked) classes.push('stacked');\n return classes;\n }\n\n get currentRange() {\n const { perPageWithDefault: perPage, totalWithDefault: total, pageWithDefault: page } = this;\n const start = total > 0 ? (page - 1) * perPage + 1 : 0;\n const end = Math.min(page * perPage, total);\n return `${start} - ${end}`;\n }\n\n get isFullViewHidden() {\n return this.isSmall || this.recordsOnly || this.pagesOnly;\n }\n\n get nextRange() {\n const { perPageWithDefault: perPage, totalWithDefault: total, pageWithDefault: page } = this;\n const start = page * perPage + 1;\n const end = Math.min((page + 1) * perPage, total);\n return `${start} - ${end}`;\n }\n\n get pageWithDefault() {\n return this.total > 0 ? this.page || 1 : 0;\n }\n\n get perPageIncrementsArray() {\n if (Array.isArray(this.perPageIncrements)) {\n return this.perPageIncrements.map(num => Number(num));\n } else if (typeof this.perPageIncrements === 'string') {\n return this.perPageIncrements\n .trim()\n .replace(/[\\[\\]\\\"\\']/g, '')\n .split(',')\n .map(num => Number(num));\n } else {\n return [];\n }\n }\n\n get perPageWithDefault() {\n return this.perPage || 10;\n }\n\n get prevRange() {\n const { perPageWithDefault: perPage, pageWithDefault: page } = this;\n const start = Math.max(1, (page - 2) * perPage + 1);\n const end = (page - 1) * perPage;\n return `${start} - ${end}`;\n }\n\n get recordTypeWithDefault() {\n return this.recordType || loc('tecton.element.pagination.defaultRecordType');\n }\n\n get showPerPageSelect() {\n return this.perPageIncrements?.length > 1;\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 get totalWithDefault() {\n return this.total || 0;\n }\n\n checkSize = () => {\n const { hostElement, containerElement } = this;\n const isOverflowing = this.containerWidth > hostElement.clientWidth;\n this.isSmall = isOverflowing;\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 handlePageChange = (page: number | string) => {\n if (this.disabled) return;\n const { totalPages, inputField } = this;\n page = parseInt(`${page}`);\n if (isNaN(page) || 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 mirrorEmit(this, ['change', 'tctChange'], { page, perPage: this.perPageWithDefault });\n };\n\n handlePerPageChange = (event: CustomEvent) => {\n if (this.disabled) return;\n const perPage = (event.detail?.value || this.perPage) * 1;\n this.perPage = perPage;\n mirrorEmit(this, ['change', 'tctChange'], { page: this.pageWithDefault, perPage });\n };\n\n removeResizeObserver() {\n if (this.resizeObserver) {\n this.resizeObserver?.disconnect();\n this.resizeObserver = null;\n window.removeEventListener('resize', this.checkSize);\n }\n }\n\n // #endregion\n // #region Render Methods\n\n renderPerPage() {\n const increments = this.perPageIncrementsArray.sort((a, b) => a - b);\n if (this.perPage === undefined || isNaN(this.perPage)) this.perPage = increments[0];\n this.perPageIncrements = `[${increments.join(',')}]`;\n return (\n <q2-select\n ref={el => (this.perPageSelect = el)}\n onChange={e => e.stopImmediatePropagation()}\n onTctChange={event => {\n event.stopPropagation();\n this.handlePerPageChange(event);\n }}\n value={this.perPageIncrementsArray.includes(this.perPage) ? `${this.perPage}` : undefined}\n disabled={this.disabled}\n >\n {increments.map(perPage => (\n <q2-option\n value={`${perPage}`}\n display={`${loc('tecton.element.pagination.view')} ${perPage}`}\n >{`${loc('tecton.element.pagination.view')} ${perPage}`}</q2-option>\n ))}\n </q2-select>\n );\n }\n\n render() {\n const {\n pagesOnly,\n recordsOnly,\n isFullViewHidden,\n recordTypeWithDefault: recordType,\n totalPages,\n totalWithDefault: total,\n pageWithDefault: page,\n currentRange,\n nextRange,\n prevRange,\n showPerPageSelect,\n disabled,\n } = this;\n const onFirstPage = page < 2;\n const onLastPage = page === totalPages;\n\n let nextButtonLabel: string = loc('tecton.element.pagination.goToNext');\n let prevButtonLabel: string = loc('tecton.element.pagination.goToPrevious');\n if (pagesOnly) {\n prevButtonLabel = loc('tecton.element.pagination.goToPages', { next: page - 1, total: totalPages });\n nextButtonLabel = loc('tecton.element.pagination.goToPages', { next: page + 1, total: totalPages });\n } else if (recordsOnly) {\n prevButtonLabel = loc('tecton.element.pagination.goToRecords', {\n range: prevRange,\n recordType: recordType.toLowerCase(),\n total,\n });\n nextButtonLabel = loc('tecton.element.pagination.goToRecords', {\n range: nextRange,\n recordType: recordType.toLowerCase(),\n total,\n });\n }\n\n return (\n <nav\n class={this.containerClasses.join(' ')}\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=\"controls\">\n <div class=\"btn-group\">\n <q2-btn\n ref={el => (this.firstPageBtn = el)}\n label={loc('tecton.element.pagination.goToFirstPage')}\n disabled={disabled || onFirstPage}\n hidden={isFullViewHidden}\n onTctClick={() => 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 ref={el => (this.prevPageBtn = el)}\n label={prevButtonLabel}\n disabled={disabled || onFirstPage}\n onTctClick={() => 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=\"input-display\"\n hidden={isFullViewHidden}\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 ref={el => (this.inputField = el)}\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 => event.stopImmediatePropagation()}\n onTctChange={event => {\n event.stopPropagation();\n this.handlePageChange(event.detail.value);\n }}\n test-id=\"pageInput\"\n current=\"page\"\n disabled={disabled}\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 ref={el => (this.nextPageBtn = el)}\n label={nextButtonLabel}\n disabled={disabled || onLastPage}\n onTctClick={() => 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 ref={el => (this.lastPageBtn = el)}\n label=\"tecton.element.pagination.goToLastPage\"\n disabled={disabled || onLastPage}\n hidden={isFullViewHidden}\n onTctClick={() => this.handlePageChange(totalPages)}\n test-id=\"lastPageBtn\"\n hide-label\n >\n <q2-icon type=\"chevron-double-right\" />\n </q2-btn>\n </div>\n </div>\n <div\n class=\"per-page\"\n hidden={isFullViewHidden || !this.perPageIncrements?.length}\n >\n {showPerPageSelect && this.renderPerPage()}\n </div>\n </nav>\n );\n }\n\n // #endregion\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["q2PaginationCss","Q2Pagination","constructor","hostRef","this","autoSize","disabled","checkSize","hostElement","containerElement","isOverflowing","containerWidth","clientWidth","isSmall","nextPaint","containerWidthHasNotChanged","handlePageChange","page","totalPages","inputField","parseInt","isNaN","value","onchange","mirrorEmit","perPage","perPageWithDefault","handlePerPageChange","event","_a","detail","pageWithDefault","disconnectedCallback","removeResizeObserver","componentWillLoad","checkDisplayTypes","manageResizeObserver","alignment","stacked","componentDidLoad","overrideFocus","onHostElementFocus","isEventFromElement","isFullViewHidden","querySelector","focus","clickFirstPage","button","firstPageBtn","click","clickLastPage","lastPageBtn","clickNextPage","nextPageBtn","clickPreviousPage","prevPageBtn","selectPerPageIncrementValue","showPerPageSelect","perPageIncrementsArray","includes","perPageSelect","options","Array","from","querySelectorAll","find","option","setPageValue","_b","blur","resizeObserver","ResizeObserver","observe","window","addEventListener","pagesOnly","recordsOnly","containerClasses","classes","push","currentRange","totalWithDefault","total","start","end","Math","min","nextRange","isArray","perPageIncrements","map","num","Number","trim","replace","split","prevRange","max","recordTypeWithDefault","recordType","loc","length","pages","ceil","disconnect","removeEventListener","renderPerPage","increments","sort","a","b","undefined","join","h","ref","el","onChange","e","stopImmediatePropagation","onTctChange","stopPropagation","display","render","onFirstPage","onLastPage","nextButtonLabel","prevButtonLabel","next","range","toLowerCase","key","class","current","toLocaleString","label","hidden","onTctClick","type","onClick","dispatchEvent","FocusEvent","hideLabel","optional"],"sources":["src/components/q2-pagination/q2-pagination.scss?tag=q2-pagination&encapsulation=shadow","src/components/q2-pagination/q2-pagination.tsx"],"sourcesContent":["@import '../../styles/host';\n@import '../../styles/functions';\n@import './variables';\n\n:host {\n display: flex;\n width: 100%;\n}\n\n:host([alignment='right']) {\n justify-content: flex-end;\n}\n\n:host([alignment='center']) {\n justify-content: center;\n}\n\n:host([alignment='left']) {\n justify-content: flex-start;\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 color: var(--tct-pagination-color, inherit);\n font-size: var(--tct-pagination-font-size, inherit);\n font-weight: var(--tct-pagination-font-weight, inherit);\n\n &.stacked {\n flex-direction: column;\n column-gap: 0;\n row-gap: var-list(--tct-pagination-row-gap, --app-scale-2x, 10px);\n height: auto;\n align-items: stretch;\n\n .description {\n text-align: center;\n }\n\n .controls {\n justify-content: center;\n }\n\n .per-page {\n display: flex;\n justify-content: center;\n }\n\n q2-select {\n --tct-select-margin: 0;\n width: var(--tct-pagination-perpage-width, 60%);\n }\n }\n}\n\n.controls {\n display: flex;\n}\n\n.btn-group {\n display: flex;\n gap: var-list(var-prefixer(pagination-btn-gap), 0);\n}\n\n.description,\n.input-display {\n white-space: nowrap;\n}\n\n.input-display {\n display: grid;\n grid-template-columns: auto var(--tct-pagination-input-width, 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 --tct-btn-icon-hover-background: #{var-list(--tct-pagination-btn-hover-background, --app-gray-l3, #f2f2f2)};\n --tct-icon-stroke-primary: #{var-list(--tct-pagination-btn-icon-stroke-primary, --app-gray, #747474)};\n --tct-icon-stroke-secondary: #{var-list(--tct-pagination-btn-icon-stroke-secondary, --app-gray, #747474)};\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\nq2-select {\n --tct-select-input-min-height: #{var-list(var-prefixer(pagination-select-height), 30px)};\n --tct-select-input-max-height: #{var-list(var-prefixer(pagination-select-height), 30px)};\n width: #{var-list(var-prefixer(pagination-perpage-width), 100%)};\n min-width: #{var-list(var-prefixer(pagination-perpage-min-width), 110px)};\n}\n","import {\n Component,\n State,\n Prop,\n h,\n ComponentInterface,\n Watch,\n Listen,\n Element,\n Method,\n Event,\n EventEmitter,\n} from '@stencil/core';\nimport { isEventFromElement, loc, nextPaint, overrideFocus } from 'src/utils';\nimport mirrorEmit from '@/utils/mirror-emit';\n\n/**\n * @name Pagination\n * @category Display\n * @summary Use for navigating between pages of content like search results or tables.\n */\n@Component({ tag: 'q2-pagination', shadow: true, styleUrl: 'q2-pagination.scss' })\nexport class Q2Pagination implements ComponentInterface {\n // #region Own Properties\n\n containerElement: HTMLElement;\n containerWidth: number;\n firstPageBtn: HTMLQ2BtnElement;\n inputField: HTMLQ2InputElement;\n lastPageBtn: HTMLQ2BtnElement;\n nextPageBtn: HTMLQ2BtnElement;\n perPageSelect: HTMLQ2SelectElement;\n prevPageBtn: HTMLQ2BtnElement;\n resizeObserver: ResizeObserver;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n isSmall: boolean;\n\n // #endregion\n // #region Public Property API\n\n /**\n * Indicates the horizontal alignment of pagination elements\n * @info\n * When using the 'stacked' version, the default alignment is 'center'. When using the unstacked version, the default alignment is 'right'.\n */\n @Prop({ reflect: true, mutable: true })\n alignment?: 'left' | 'center' | 'right';\n\n /** Determines whether the component uses dynamic resizing behavior. This is disabled when `pagesOnly`, `recordsOnly`, or `stacked` is true. */\n @Prop({ reflect: true, mutable: true })\n autoSize: boolean = true;\n\n /** Allows the component to be disabled should the state of the page require this */\n @Prop({ reflect: true, mutable: true })\n disabled: boolean = false;\n\n /** The current page that is being displayed. */\n @Prop({ reflect: true, mutable: true })\n page: number;\n\n /**\n * The number of pages that can be displayed.\n * @info\n * Only referenced when `pagesOnly` is true.\n */\n @Prop({ reflect: true, mutable: true })\n pages: number;\n\n /** Indicates to display only the current and total pages. This disables the `autoSize` feature. */\n @Prop({ reflect: true, mutable: true })\n pagesOnly: boolean;\n\n /** The total number of records displayed on each page. This disables the `autoSize` feature. */\n @Prop({ reflect: true, mutable: true })\n perPage: number;\n\n /**\n * A list of perPage values.\n * This generates a [Select](https://tecton.q2developer.com/design-system/q2-select/) element that allows the user to modify the `perPage` value.\n * @info\n * `pagesOnly` or `recordsOnly` being true disables this feature.\n *\n * **Example:**\n * @snippet\n * this.perPageIncrements = [10, 25, 50];\n */\n @Prop({ reflect: true, mutable: true })\n perPageIncrements: number[] | string[] | string | undefined;\n\n /** Indicates to display only the current and total records. */\n @Prop({ reflect: true, mutable: true })\n recordsOnly: boolean;\n\n /** Description of the record type to be displayed alongside the record count. */\n @Prop()\n recordType: string;\n\n /**\n * Allows the component to be displayed in a stacked layout. This disables the `autoSize` feature.\n * @info\n * When set to true, the default alignment will be 'center'. When false, the default alignment is 'right'.\n */\n @Prop({ reflect: true })\n stacked: boolean;\n\n /** The total number of records to paginate. */\n @Prop({ reflect: true })\n total: number;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the page is changed.\n * @legacyEvent\n * @deprecated Use 'tctChange' instead\n */\n @Event()\n change: EventEmitter<{ page: number; perPage: number }>;\n\n /**\n * Emitted when the page is changed.\n * @legacyEvent\n */\n @Event()\n tctChange: EventEmitter<{ page: number; perPage: number }>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n this.removeResizeObserver();\n }\n\n componentWillLoad(): void {\n this.checkDisplayTypes();\n this.manageResizeObserver();\n if (!this.alignment) {\n this.alignment = this.stacked ? 'center' : 'right';\n }\n }\n\n componentDidLoad(): void {\n this.containerWidth = this.containerElement.clientWidth;\n\n overrideFocus(this.hostElement);\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('focus')\n onHostElementFocus(event) {\n if (this.disabled) return;\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 // #endregion\n // #region Public Methods API\n\n /**\n * Emulates clicking the button that controls moving to the first page, and emitting a change event with the updated page number.\n *\n * If the `<button>` is disabled, this method does nothing.\n * @testOnly\n */\n @Method()\n async clickFirstPage() {\n if (this.disabled) return;\n const button = this.firstPageBtn;\n if (button?.disabled) return;\n button.click();\n }\n\n /**\n * Emulates clicking the button that controls moving to the last page, and emitting a change event with the updated page number.\n *\n * If the `<button>` is disabled, this method does nothing.\n * @testOnly\n */\n @Method()\n async clickLastPage() {\n if (this.disabled) return;\n const button = this.lastPageBtn;\n if (button?.disabled) return;\n button.click();\n }\n\n /**\n * Emulates clicking the button that controls moving to the next page, and emitting a change event with the updated page number.\n *\n * If the `<button>` is disabled, this method does nothing.\n * @testOnly\n */\n @Method()\n async clickNextPage() {\n if (this.disabled) return;\n const button = this.nextPageBtn;\n if (button?.disabled) return;\n button.click();\n }\n\n /**\n * Emulates clicking the button that controls moving to the previous page, and emitting a change event with the updated page number.\n *\n * If the `<button>` is disabled, this method does nothing.\n * @testOnly\n */\n @Method()\n async clickPreviousPage() {\n if (this.disabled) return;\n const button = this.prevPageBtn;\n if (button?.disabled) return;\n button.click();\n }\n\n /**\n * Emulates selecting a `perPage` value from the `perPageIncrements` dropdown,\n * and updates the value of the `perPage` property.\n *\n * If `value` is not in the `perPageIncrements` array, this method does nothing.\n * @testOnly\n */\n @Method()\n async selectPerPageIncrementValue(value: number) {\n if (this.disabled) return;\n if (isNaN(value) || !this.showPerPageSelect || !this.perPageIncrementsArray.includes(value)) return;\n this.perPageSelect.focus();\n this.perPageSelect.click();\n const options = Array.from(this.perPageSelect.querySelectorAll('q2-option'));\n options.find(option => option.value === `${value}`)?.click();\n }\n\n /**\n * Emulates setting the page value in the `<input>` field,\n * and emitting a change event with the updated page number.\n *\n * If `value` is invalid, this method does nothing.\n * @testOnly\n */\n @Method()\n async setPageValue(value: number) {\n if (this.disabled) return;\n if (!this.inputField || isNaN(value) || value < 1 || value > this.totalPages) return;\n this.inputField?.focus();\n this.inputField.value = `${value}`;\n this.inputField?.blur();\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('autoSize')\n manageResizeObserver() {\n if (this.autoSize) {\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 @Watch('recordsOnly')\n @Watch('pagesOnly')\n @Watch('stacked')\n checkDisplayTypes() {\n if (this.pagesOnly || this.recordsOnly || this.stacked) this.autoSize = false;\n }\n\n // #endregion\n // #region Local Methods\n\n get containerClasses() {\n const classes = ['container'];\n if (this.stacked) classes.push('stacked');\n return classes;\n }\n\n get currentRange() {\n const { perPageWithDefault: perPage, totalWithDefault: total, pageWithDefault: page } = this;\n const start = total > 0 ? (page - 1) * perPage + 1 : 0;\n const end = Math.min(page * perPage, total);\n return `${start} - ${end}`;\n }\n\n get isFullViewHidden() {\n return this.isSmall || this.recordsOnly || this.pagesOnly;\n }\n\n get nextRange() {\n const { perPageWithDefault: perPage, totalWithDefault: total, pageWithDefault: page } = this;\n const start = page * perPage + 1;\n const end = Math.min((page + 1) * perPage, total);\n return `${start} - ${end}`;\n }\n\n get pageWithDefault() {\n return this.total > 0 ? this.page || 1 : 0;\n }\n\n get perPageIncrementsArray() {\n if (Array.isArray(this.perPageIncrements)) {\n return this.perPageIncrements.map(num => Number(num));\n } else if (typeof this.perPageIncrements === 'string') {\n return this.perPageIncrements\n .trim()\n .replace(/[\\[\\]\\\"\\']/g, '')\n .split(',')\n .map(num => Number(num));\n } else {\n return [];\n }\n }\n\n get perPageWithDefault() {\n return this.perPage || 10;\n }\n\n get prevRange() {\n const { perPageWithDefault: perPage, pageWithDefault: page } = this;\n const start = Math.max(1, (page - 2) * perPage + 1);\n const end = (page - 1) * perPage;\n return `${start} - ${end}`;\n }\n\n get recordTypeWithDefault() {\n return this.recordType || loc('tecton.element.pagination.defaultRecordType');\n }\n\n get showPerPageSelect() {\n return this.perPageIncrements?.length > 1;\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 get totalWithDefault() {\n return this.total || 0;\n }\n\n checkSize = () => {\n const { hostElement, containerElement } = this;\n const isOverflowing = this.containerWidth > hostElement.clientWidth;\n this.isSmall = isOverflowing;\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 handlePageChange = (page: number | string) => {\n if (this.disabled) return;\n const { totalPages, inputField } = this;\n page = parseInt(`${page}`);\n if (isNaN(page) || 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 mirrorEmit(this, ['change', 'tctChange'], { page, perPage: this.perPageWithDefault });\n };\n\n handlePerPageChange = (event: CustomEvent) => {\n if (this.disabled) return;\n const perPage = (event.detail?.value || this.perPage) * 1;\n this.perPage = perPage;\n mirrorEmit(this, ['change', 'tctChange'], { page: this.pageWithDefault, perPage });\n };\n\n removeResizeObserver() {\n if (this.resizeObserver) {\n this.resizeObserver?.disconnect();\n this.resizeObserver = null;\n window.removeEventListener('resize', this.checkSize);\n }\n }\n\n // #endregion\n // #region Render Methods\n\n renderPerPage() {\n const increments = this.perPageIncrementsArray.sort((a, b) => a - b);\n if (this.perPage === undefined || isNaN(this.perPage)) this.perPage = increments[0];\n this.perPageIncrements = `[${increments.join(',')}]`;\n return (\n <q2-select\n ref={el => (this.perPageSelect = el)}\n onChange={e => e.stopImmediatePropagation()}\n onTctChange={event => {\n event.stopPropagation();\n this.handlePerPageChange(event);\n }}\n value={this.perPageIncrementsArray.includes(this.perPage) ? `${this.perPage}` : undefined}\n disabled={this.disabled}\n >\n {increments.map(perPage => (\n <q2-option\n value={`${perPage}`}\n display={`${loc('tecton.element.pagination.view')} ${perPage}`}\n >{`${loc('tecton.element.pagination.view')} ${perPage}`}</q2-option>\n ))}\n </q2-select>\n );\n }\n\n render() {\n const {\n pagesOnly,\n recordsOnly,\n isFullViewHidden,\n recordTypeWithDefault: recordType,\n totalPages,\n totalWithDefault: total,\n pageWithDefault: page,\n currentRange,\n nextRange,\n prevRange,\n showPerPageSelect,\n disabled,\n } = this;\n const onFirstPage = page < 2;\n const onLastPage = page === totalPages;\n\n let nextButtonLabel: string = loc('tecton.element.pagination.goToNext');\n let prevButtonLabel: string = loc('tecton.element.pagination.goToPrevious');\n if (pagesOnly) {\n prevButtonLabel = loc('tecton.element.pagination.goToPages', { next: page - 1, total: totalPages });\n nextButtonLabel = loc('tecton.element.pagination.goToPages', { next: page + 1, total: totalPages });\n } else if (recordsOnly) {\n prevButtonLabel = loc('tecton.element.pagination.goToRecords', {\n range: prevRange,\n recordType: recordType.toLowerCase(),\n total,\n });\n nextButtonLabel = loc('tecton.element.pagination.goToRecords', {\n range: nextRange,\n recordType: recordType.toLowerCase(),\n total,\n });\n }\n\n return (\n <nav\n class={this.containerClasses.join(' ')}\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=\"controls\">\n <div class=\"btn-group\">\n <q2-btn\n ref={el => (this.firstPageBtn = el)}\n label={loc('tecton.element.pagination.goToFirstPage')}\n disabled={disabled || onFirstPage}\n hidden={isFullViewHidden}\n onTctClick={() => 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 ref={el => (this.prevPageBtn = el)}\n label={prevButtonLabel}\n disabled={disabled || onFirstPage}\n onTctClick={() => 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=\"input-display\"\n hidden={isFullViewHidden}\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 ref={el => (this.inputField = el)}\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 => event.stopImmediatePropagation()}\n onTctChange={event => {\n event.stopPropagation();\n this.handlePageChange(event.detail.value);\n }}\n test-id=\"pageInput\"\n current=\"page\"\n disabled={disabled}\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 ref={el => (this.nextPageBtn = el)}\n label={nextButtonLabel}\n disabled={disabled || onLastPage}\n onTctClick={() => 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 ref={el => (this.lastPageBtn = el)}\n label=\"tecton.element.pagination.goToLastPage\"\n disabled={disabled || onLastPage}\n hidden={isFullViewHidden}\n onTctClick={() => this.handlePageChange(totalPages)}\n test-id=\"lastPageBtn\"\n hide-label\n >\n <q2-icon type=\"chevron-double-right\" />\n </q2-btn>\n </div>\n </div>\n <div\n class=\"per-page\"\n hidden={isFullViewHidden || !this.perPageIncrements?.length}\n >\n {showPerPageSelect && this.renderPerPage()}\n </div>\n </nav>\n );\n }\n\n // #endregion\n}\n"],"mappings":"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","ignoreList":[]}