q2-tecton-elements 1.51.0 → 1.52.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 (613) hide show
  1. package/dist/cjs/click-elsewhere_2.cjs.entry.js +16 -5
  2. package/dist/cjs/click-elsewhere_2.cjs.entry.js.map +1 -1
  3. package/dist/cjs/{index-9aa4a776.js → index-07285783.js} +86 -2
  4. package/dist/cjs/index-07285783.js.map +1 -0
  5. package/dist/cjs/{index-14c3693c.js → index-e7e68b1e.js} +40 -5
  6. package/dist/cjs/index-e7e68b1e.js.map +1 -0
  7. package/dist/cjs/loader.cjs.js +2 -2
  8. package/dist/cjs/q2-action-group.cjs.entry.js +2 -2
  9. package/dist/cjs/q2-action-sheet.cjs.entry.js +3 -3
  10. package/dist/cjs/q2-avatar.cjs.entry.js +2 -2
  11. package/dist/cjs/q2-badge_7.cjs.entry.js +49 -44
  12. package/dist/cjs/q2-badge_7.cjs.entry.js.map +1 -1
  13. package/dist/cjs/q2-calendar.cjs.entry.js +17 -20
  14. package/dist/cjs/q2-calendar.cjs.entry.js.map +1 -1
  15. package/dist/cjs/q2-card.cjs.entry.js +4 -2
  16. package/dist/cjs/q2-card.cjs.entry.js.map +1 -1
  17. package/dist/cjs/q2-carousel-pane.cjs.entry.js +4 -4
  18. package/dist/cjs/q2-carousel.cjs.entry.js +2 -2
  19. package/dist/cjs/q2-chart-area.cjs.entry.js +16 -3
  20. package/dist/cjs/q2-chart-area.cjs.entry.js.map +1 -1
  21. package/dist/cjs/q2-chart-bar.cjs.entry.js +3 -3
  22. package/dist/cjs/q2-chart-donut.cjs.entry.js +19 -3
  23. package/dist/cjs/q2-chart-donut.cjs.entry.js.map +1 -1
  24. package/dist/cjs/q2-checkbox-group.cjs.entry.js +6 -5
  25. package/dist/cjs/q2-checkbox-group.cjs.entry.js.map +1 -1
  26. package/dist/cjs/q2-checkbox.cjs.entry.js +2 -2
  27. package/dist/cjs/q2-currency.cjs.entry.js +14 -2
  28. package/dist/cjs/q2-currency.cjs.entry.js.map +1 -1
  29. package/dist/cjs/q2-data-table.cjs.entry.js +3 -3
  30. package/dist/cjs/q2-data-table.cjs.entry.js.map +1 -1
  31. package/dist/cjs/q2-detail.cjs.entry.js +3 -3
  32. package/dist/cjs/q2-dropdown-item.cjs.entry.js +12 -14
  33. package/dist/cjs/q2-dropdown-item.cjs.entry.js.map +1 -1
  34. package/dist/cjs/q2-dropdown.cjs.entry.js +7 -5
  35. package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
  36. package/dist/cjs/q2-editable-field.cjs.entry.js +3 -3
  37. package/dist/cjs/q2-example.cjs.entry.js +145 -0
  38. package/dist/cjs/q2-example.cjs.entry.js.map +1 -0
  39. package/dist/cjs/q2-formatted-text.cjs.entry.js +2 -2
  40. package/dist/cjs/q2-item.cjs.entry.js +3 -3
  41. package/dist/cjs/q2-legend.cjs.entry.js +2 -2
  42. package/dist/cjs/q2-link.cjs.entry.js +4 -4
  43. package/dist/cjs/q2-link.cjs.entry.js.map +1 -1
  44. package/dist/cjs/q2-list.cjs.entry.js +6 -7
  45. package/dist/cjs/q2-list.cjs.entry.js.map +1 -1
  46. package/dist/cjs/q2-loading-element.cjs.entry.js +2 -2
  47. package/dist/cjs/q2-loc.cjs.entry.js +52 -3
  48. package/dist/cjs/q2-loc.cjs.entry.js.map +1 -1
  49. package/dist/cjs/q2-message.cjs.entry.js +3 -3
  50. package/dist/cjs/q2-month-picker.cjs.entry.js +4 -4
  51. package/dist/cjs/q2-optgroup.cjs.entry.js +5 -4
  52. package/dist/cjs/q2-optgroup.cjs.entry.js.map +1 -1
  53. package/dist/cjs/q2-option-list.cjs.entry.js +2 -2
  54. package/dist/cjs/q2-option.cjs.entry.js +50 -33
  55. package/dist/cjs/q2-option.cjs.entry.js.map +1 -1
  56. package/dist/cjs/q2-pagination.cjs.entry.js +11 -7
  57. package/dist/cjs/q2-pagination.cjs.entry.js.map +1 -1
  58. package/dist/cjs/q2-pill.cjs.entry.js +19 -18
  59. package/dist/cjs/q2-pill.cjs.entry.js.map +1 -1
  60. package/dist/cjs/q2-radio-group.cjs.entry.js +5 -5
  61. package/dist/cjs/q2-radio-group.cjs.entry.js.map +1 -1
  62. package/dist/cjs/q2-radio.cjs.entry.js +3 -3
  63. package/dist/cjs/q2-relative-time.cjs.entry.js +3 -3
  64. package/dist/cjs/q2-resize-observer.cjs.entry.js +2 -2
  65. package/dist/cjs/q2-section.cjs.entry.js +8 -6
  66. package/dist/cjs/q2-section.cjs.entry.js.map +1 -1
  67. package/dist/cjs/q2-select.cjs.entry.js +6 -5
  68. package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
  69. package/dist/cjs/q2-stepper-pane.cjs.entry.js +5 -4
  70. package/dist/cjs/q2-stepper-pane.cjs.entry.js.map +1 -1
  71. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +16 -4
  72. package/dist/cjs/q2-stepper-vertical.cjs.entry.js.map +1 -1
  73. package/dist/cjs/q2-stepper.cjs.entry.js +6 -4
  74. package/dist/cjs/q2-stepper.cjs.entry.js.map +1 -1
  75. package/dist/cjs/q2-tag.cjs.entry.js +6 -4
  76. package/dist/cjs/q2-tag.cjs.entry.js.map +1 -1
  77. package/dist/cjs/q2-tecton-elements.cjs.js +2 -2
  78. package/dist/cjs/q2-textarea.cjs.entry.js +3 -3
  79. package/dist/cjs/q2-tooltip.cjs.entry.js +2 -2
  80. package/dist/cjs/{shapes-be198cc0.js → shapes-5d45fc11.js} +2 -2
  81. package/dist/cjs/{shapes-be198cc0.js.map → shapes-5d45fc11.js.map} +1 -1
  82. package/dist/cjs/tecton-tab-pane.cjs.entry.js +3 -3
  83. package/dist/collection/collection-manifest.json +1 -0
  84. package/dist/collection/components/q2-action-group/q2-action-group.js +1 -1
  85. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +1 -1
  86. package/dist/collection/components/q2-avatar/q2-avatar.js +1 -1
  87. package/dist/collection/components/q2-calendar/q2-calendar.js +16 -18
  88. package/dist/collection/components/q2-calendar/q2-calendar.js.map +1 -1
  89. package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
  90. package/dist/collection/components/q2-calendar/test/q2-calendar-test.e2e.js +27 -0
  91. package/dist/collection/components/q2-calendar/test/q2-calendar-test.e2e.js.map +1 -1
  92. package/dist/collection/components/q2-card/q2-card.js +2 -0
  93. package/dist/collection/components/q2-card/q2-card.js.map +1 -1
  94. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +2 -2
  95. package/dist/collection/components/q2-chart-area/q2-chart-area.js +42 -1
  96. package/dist/collection/components/q2-chart-area/q2-chart-area.js.map +1 -1
  97. package/dist/collection/components/q2-chart-area/test/q2-chart-area-test.e2e.js +15 -0
  98. package/dist/collection/components/q2-chart-area/test/q2-chart-area-test.e2e.js.map +1 -1
  99. package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +1 -1
  100. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +41 -1
  101. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js.map +1 -1
  102. package/dist/collection/components/q2-chart-donut/test/q2-chart-donut-test.e2e.js +11 -0
  103. package/dist/collection/components/q2-chart-donut/test/q2-chart-donut-test.e2e.js.map +1 -1
  104. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.css +30 -23
  105. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js +4 -3
  106. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js.map +1 -1
  107. package/dist/collection/components/q2-currency/q2-currency.js +37 -1
  108. package/dist/collection/components/q2-currency/q2-currency.js.map +1 -1
  109. package/dist/collection/components/q2-currency/test/q2-currency-test.e2e.js +34 -23
  110. package/dist/collection/components/q2-currency/test/q2-currency-test.e2e.js.map +1 -1
  111. package/dist/collection/components/q2-data-table/q2-data-table.js +1 -1
  112. package/dist/collection/components/q2-data-table/q2-data-table.js.map +1 -1
  113. package/dist/collection/components/q2-data-table/test/q2-data-table-test.e2e.js +6 -4
  114. package/dist/collection/components/q2-data-table/test/q2-data-table-test.e2e.js.map +1 -1
  115. package/dist/collection/components/q2-detail/q2-detail.js +1 -1
  116. package/dist/collection/components/q2-dropdown/q2-dropdown.css +5 -0
  117. package/dist/collection/components/q2-dropdown/q2-dropdown.js +10 -4
  118. package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
  119. package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js +59 -14
  120. package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js.map +1 -1
  121. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.css +29 -11
  122. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js +9 -11
  123. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js.map +1 -1
  124. package/dist/collection/components/q2-dropdown-item/test/q2-dropdown-item-test.e2e.js +108 -74
  125. package/dist/collection/components/q2-dropdown-item/test/q2-dropdown-item-test.e2e.js.map +1 -1
  126. package/dist/collection/components/q2-editable-field/q2-editable-field.js +1 -1
  127. package/dist/collection/components/q2-example/q2-example.css +66 -0
  128. package/dist/collection/components/q2-example/q2-example.js +312 -0
  129. package/dist/collection/components/q2-example/q2-example.js.map +1 -0
  130. package/dist/collection/components/q2-example/test/q2-example.e2e.js +27 -0
  131. package/dist/collection/components/q2-example/test/q2-example.e2e.js.map +1 -0
  132. package/dist/collection/components/q2-example/test/q2-example.spec.js +126 -0
  133. package/dist/collection/components/q2-example/test/q2-example.spec.js.map +1 -0
  134. package/dist/collection/components/q2-formatted-text/q2-formatted-text.js +1 -1
  135. package/dist/collection/components/q2-input/formatting/alpha.spec.js +10 -0
  136. package/dist/collection/components/q2-input/formatting/alpha.spec.js.map +1 -0
  137. package/dist/collection/components/q2-input/formatting/alphanumeric.spec.js +7 -0
  138. package/dist/collection/components/q2-input/formatting/alphanumeric.spec.js.map +1 -0
  139. package/dist/collection/components/q2-input/formatting/currency.spec.js +20 -0
  140. package/dist/collection/components/q2-input/formatting/currency.spec.js.map +1 -0
  141. package/dist/collection/components/q2-input/formatting/date.js +1 -1
  142. package/dist/collection/components/q2-input/formatting/date.js.map +1 -1
  143. package/dist/collection/components/q2-input/formatting/date.spec.js +17 -0
  144. package/dist/collection/components/q2-input/formatting/date.spec.js.map +1 -0
  145. package/dist/collection/components/q2-input/formatting/numeric.spec.js +32 -0
  146. package/dist/collection/components/q2-input/formatting/numeric.spec.js.map +1 -0
  147. package/dist/collection/components/q2-input/formatting/phone.spec.js +16 -0
  148. package/dist/collection/components/q2-input/formatting/phone.spec.js.map +1 -0
  149. package/dist/collection/components/q2-input/formatting/postal.js +1 -1
  150. package/dist/collection/components/q2-input/formatting/postal.js.map +1 -1
  151. package/dist/collection/components/q2-input/formatting/postal.spec.js +28 -0
  152. package/dist/collection/components/q2-input/formatting/postal.spec.js.map +1 -0
  153. package/dist/collection/components/q2-input/formatting/ssn.spec.js +7 -0
  154. package/dist/collection/components/q2-input/formatting/ssn.spec.js.map +1 -0
  155. package/dist/collection/components/q2-input/formatting/tin.spec.js +7 -0
  156. package/dist/collection/components/q2-input/formatting/tin.spec.js.map +1 -0
  157. package/dist/collection/components/q2-input/q2-input.js +58 -44
  158. package/dist/collection/components/q2-input/q2-input.js.map +1 -1
  159. package/dist/collection/components/q2-input/test/q2-input-test.e2e.js +259 -2106
  160. package/dist/collection/components/q2-input/test/q2-input-test.e2e.js.map +1 -1
  161. package/dist/collection/components/q2-input/test/q2-input-test.spec.js +4035 -0
  162. package/dist/collection/components/q2-input/test/q2-input-test.spec.js.map +1 -0
  163. package/dist/collection/components/q2-item/q2-item.js +1 -1
  164. package/dist/collection/components/q2-legend/q2-legend.js +1 -1
  165. package/dist/collection/components/q2-link/q2-link.css +17 -20
  166. package/dist/collection/components/q2-link/q2-link.js +2 -2
  167. package/dist/collection/components/q2-link/q2-link.js.map +1 -1
  168. package/dist/collection/components/q2-link/test/q2-link-test.e2e.js +6 -6
  169. package/dist/collection/components/q2-link/test/q2-link-test.e2e.js.map +1 -1
  170. package/dist/collection/components/q2-list/q2-list.js +4 -5
  171. package/dist/collection/components/q2-list/q2-list.js.map +1 -1
  172. package/dist/collection/components/q2-loc/q2-loc.js +66 -4
  173. package/dist/collection/components/q2-loc/q2-loc.js.map +1 -1
  174. package/dist/collection/components/q2-loc/test/q2-loc-test.e2e.js +19 -30
  175. package/dist/collection/components/q2-loc/test/q2-loc-test.e2e.js.map +1 -1
  176. package/dist/collection/components/q2-loc/test/q2-loc-test.spec.js +164 -0
  177. package/dist/collection/components/q2-loc/test/q2-loc-test.spec.js.map +1 -0
  178. package/dist/collection/components/q2-message/q2-message.js +1 -1
  179. package/dist/collection/components/q2-optgroup/q2-optgroup.js +3 -2
  180. package/dist/collection/components/q2-optgroup/q2-optgroup.js.map +1 -1
  181. package/dist/collection/components/q2-option/q2-option.css +1 -1
  182. package/dist/collection/components/q2-option/q2-option.js +57 -34
  183. package/dist/collection/components/q2-option/q2-option.js.map +1 -1
  184. package/dist/collection/components/q2-option/test/q2-option-test.e2e.js +110 -106
  185. package/dist/collection/components/q2-option/test/q2-option-test.e2e.js.map +1 -1
  186. package/dist/collection/components/q2-option/test/q2-option-test.spec.js +532 -0
  187. package/dist/collection/components/q2-option/test/q2-option-test.spec.js.map +1 -0
  188. package/dist/collection/components/q2-pagination/q2-pagination.js +9 -5
  189. package/dist/collection/components/q2-pagination/q2-pagination.js.map +1 -1
  190. package/dist/collection/components/q2-pagination/test/q2-pagination-test.e2e.js +18 -1
  191. package/dist/collection/components/q2-pagination/test/q2-pagination-test.e2e.js.map +1 -1
  192. package/dist/collection/components/q2-pill/q2-pill.js +18 -17
  193. package/dist/collection/components/q2-pill/q2-pill.js.map +1 -1
  194. package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js +128 -57
  195. package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js.map +1 -1
  196. package/dist/collection/components/q2-popover/q2-popover.js +17 -4
  197. package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
  198. package/dist/collection/components/q2-radio/q2-radio.js +1 -1
  199. package/dist/collection/components/q2-radio-group/q2-radio-group.css +19 -9
  200. package/dist/collection/components/q2-radio-group/q2-radio-group.js +2 -2
  201. package/dist/collection/components/q2-radio-group/q2-radio-group.js.map +1 -1
  202. package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
  203. package/dist/collection/components/q2-resize-observer/q2-resize-observer.js +1 -1
  204. package/dist/collection/components/q2-section/q2-section.js +6 -4
  205. package/dist/collection/components/q2-section/q2-section.js.map +1 -1
  206. package/dist/collection/components/q2-select/q2-select.js +5 -3
  207. package/dist/collection/components/q2-select/q2-select.js.map +1 -1
  208. package/dist/collection/components/q2-select/test/q2-select-test.e2e.js +123 -62
  209. package/dist/collection/components/q2-select/test/q2-select-test.e2e.js.map +1 -1
  210. package/dist/collection/components/q2-stepper/q2-stepper.js +4 -2
  211. package/dist/collection/components/q2-stepper/q2-stepper.js.map +1 -1
  212. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +3 -2
  213. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js.map +1 -1
  214. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +46 -2
  215. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js.map +1 -1
  216. package/dist/collection/components/q2-stepper-vertical/test/q2-stepper-vertical-test.e2e.js +26 -0
  217. package/dist/collection/components/q2-stepper-vertical/test/q2-stepper-vertical-test.e2e.js.map +1 -1
  218. package/dist/collection/components/q2-tab-container/q2-tab-container.js +4 -3
  219. package/dist/collection/components/q2-tab-container/q2-tab-container.js.map +1 -1
  220. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
  221. package/dist/collection/components/q2-tag/q2-tag.js +5 -2
  222. package/dist/collection/components/q2-tag/q2-tag.js.map +1 -1
  223. package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js +55 -4
  224. package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js.map +1 -1
  225. package/dist/collection/components/q2-textarea/q2-textarea.js +1 -1
  226. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
  227. package/dist/collection/utils/helpers.js +63 -41
  228. package/dist/collection/utils/helpers.js.map +1 -1
  229. package/dist/collection/utils/index.js +83 -0
  230. package/dist/collection/utils/index.js.map +1 -1
  231. package/dist/components/index.js +2 -0
  232. package/dist/components/index.js.map +1 -1
  233. package/dist/components/index2.js +84 -1
  234. package/dist/components/index2.js.map +1 -1
  235. package/dist/components/q2-action-group.js +1 -1
  236. package/dist/components/q2-action-sheet.js +1 -1
  237. package/dist/components/q2-avatar2.js +1 -1
  238. package/dist/components/q2-calendar.js +16 -18
  239. package/dist/components/q2-calendar.js.map +1 -1
  240. package/dist/components/q2-card.js +2 -0
  241. package/dist/components/q2-card.js.map +1 -1
  242. package/dist/components/q2-carousel-pane.js +2 -2
  243. package/dist/components/q2-chart-area.js +16 -2
  244. package/dist/components/q2-chart-area.js.map +1 -1
  245. package/dist/components/q2-chart-bar.js +1 -1
  246. package/dist/components/q2-chart-donut.js +19 -2
  247. package/dist/components/q2-chart-donut.js.map +1 -1
  248. package/dist/components/q2-checkbox-group.js +5 -4
  249. package/dist/components/q2-checkbox-group.js.map +1 -1
  250. package/dist/components/q2-currency.js +15 -2
  251. package/dist/components/q2-currency.js.map +1 -1
  252. package/dist/components/q2-data-table.js +1 -1
  253. package/dist/components/q2-data-table.js.map +1 -1
  254. package/dist/components/q2-detail.js +1 -1
  255. package/dist/components/q2-dropdown-item2.js +12 -26
  256. package/dist/components/q2-dropdown-item2.js.map +1 -1
  257. package/dist/components/q2-dropdown.js +6 -3
  258. package/dist/components/q2-dropdown.js.map +1 -1
  259. package/dist/components/q2-editable-field.js +1 -1
  260. package/dist/components/q2-example.d.ts +11 -0
  261. package/dist/components/q2-example.js +170 -0
  262. package/dist/components/q2-example.js.map +1 -0
  263. package/dist/components/q2-formatted-text.js +1 -1
  264. package/dist/components/q2-input2.js +41 -37
  265. package/dist/components/q2-input2.js.map +1 -1
  266. package/dist/components/q2-item.js +1 -1
  267. package/dist/components/q2-legend2.js +1 -1
  268. package/dist/components/q2-link.js +3 -3
  269. package/dist/components/q2-link.js.map +1 -1
  270. package/dist/components/q2-list.js +4 -5
  271. package/dist/components/q2-list.js.map +1 -1
  272. package/dist/components/q2-loc.js +55 -2
  273. package/dist/components/q2-loc.js.map +1 -1
  274. package/dist/components/q2-message2.js +1 -1
  275. package/dist/components/q2-month-picker.js +2 -2
  276. package/dist/components/q2-optgroup2.js +3 -2
  277. package/dist/components/q2-optgroup2.js.map +1 -1
  278. package/dist/components/q2-option-list2.js +1 -1
  279. package/dist/components/q2-option2.js +52 -33
  280. package/dist/components/q2-option2.js.map +1 -1
  281. package/dist/components/q2-pagination.js +9 -5
  282. package/dist/components/q2-pagination.js.map +1 -1
  283. package/dist/components/q2-pill.js +18 -17
  284. package/dist/components/q2-pill.js.map +1 -1
  285. package/dist/components/q2-popover2.js +16 -4
  286. package/dist/components/q2-popover2.js.map +1 -1
  287. package/dist/components/q2-radio-group.js +3 -3
  288. package/dist/components/q2-radio-group.js.map +1 -1
  289. package/dist/components/q2-radio.js +1 -1
  290. package/dist/components/q2-relative-time.js +1 -1
  291. package/dist/components/q2-resize-observer2.js +1 -1
  292. package/dist/components/q2-section.js +6 -4
  293. package/dist/components/q2-section.js.map +1 -1
  294. package/dist/components/q2-select2.js +6 -4
  295. package/dist/components/q2-select2.js.map +1 -1
  296. package/dist/components/q2-stepper-pane.js +3 -2
  297. package/dist/components/q2-stepper-pane.js.map +1 -1
  298. package/dist/components/q2-stepper-vertical.js +16 -3
  299. package/dist/components/q2-stepper-vertical.js.map +1 -1
  300. package/dist/components/q2-stepper.js +4 -2
  301. package/dist/components/q2-stepper.js.map +1 -1
  302. package/dist/components/q2-tab-container.js +4 -3
  303. package/dist/components/q2-tab-container.js.map +1 -1
  304. package/dist/components/q2-tab-pane.js +1 -1
  305. package/dist/components/q2-tag.js +5 -2
  306. package/dist/components/q2-tag.js.map +1 -1
  307. package/dist/components/q2-textarea.js +1 -1
  308. package/dist/components/tecton-tab-pane.js +2 -2
  309. package/dist/esm/click-elsewhere_2.entry.js +16 -5
  310. package/dist/esm/click-elsewhere_2.entry.js.map +1 -1
  311. package/dist/esm/{index-1e1ce94e.js → index-7a5365e2.js} +40 -5
  312. package/dist/esm/index-7a5365e2.js.map +1 -0
  313. package/dist/esm/{index-844fc010.js → index-d18e2a20.js} +86 -3
  314. package/dist/esm/index-d18e2a20.js.map +1 -0
  315. package/dist/esm/loader.js +3 -3
  316. package/dist/esm/q2-action-group.entry.js +2 -2
  317. package/dist/esm/q2-action-sheet.entry.js +3 -3
  318. package/dist/esm/q2-avatar.entry.js +2 -2
  319. package/dist/esm/q2-badge_7.entry.js +49 -44
  320. package/dist/esm/q2-badge_7.entry.js.map +1 -1
  321. package/dist/esm/q2-calendar.entry.js +17 -20
  322. package/dist/esm/q2-calendar.entry.js.map +1 -1
  323. package/dist/esm/q2-card.entry.js +4 -2
  324. package/dist/esm/q2-card.entry.js.map +1 -1
  325. package/dist/esm/q2-carousel-pane.entry.js +4 -4
  326. package/dist/esm/q2-carousel.entry.js +2 -2
  327. package/dist/esm/q2-chart-area.entry.js +16 -3
  328. package/dist/esm/q2-chart-area.entry.js.map +1 -1
  329. package/dist/esm/q2-chart-bar.entry.js +3 -3
  330. package/dist/esm/q2-chart-donut.entry.js +19 -3
  331. package/dist/esm/q2-chart-donut.entry.js.map +1 -1
  332. package/dist/esm/q2-checkbox-group.entry.js +6 -5
  333. package/dist/esm/q2-checkbox-group.entry.js.map +1 -1
  334. package/dist/esm/q2-checkbox.entry.js +2 -2
  335. package/dist/esm/q2-currency.entry.js +14 -2
  336. package/dist/esm/q2-currency.entry.js.map +1 -1
  337. package/dist/esm/q2-data-table.entry.js +3 -3
  338. package/dist/esm/q2-data-table.entry.js.map +1 -1
  339. package/dist/esm/q2-detail.entry.js +3 -3
  340. package/dist/esm/q2-dropdown-item.entry.js +12 -14
  341. package/dist/esm/q2-dropdown-item.entry.js.map +1 -1
  342. package/dist/esm/q2-dropdown.entry.js +7 -5
  343. package/dist/esm/q2-dropdown.entry.js.map +1 -1
  344. package/dist/esm/q2-editable-field.entry.js +3 -3
  345. package/dist/esm/q2-example.entry.js +141 -0
  346. package/dist/esm/q2-example.entry.js.map +1 -0
  347. package/dist/esm/q2-formatted-text.entry.js +2 -2
  348. package/dist/esm/q2-item.entry.js +3 -3
  349. package/dist/esm/q2-legend.entry.js +2 -2
  350. package/dist/esm/q2-link.entry.js +4 -4
  351. package/dist/esm/q2-link.entry.js.map +1 -1
  352. package/dist/esm/q2-list.entry.js +6 -7
  353. package/dist/esm/q2-list.entry.js.map +1 -1
  354. package/dist/esm/q2-loading-element.entry.js +2 -2
  355. package/dist/esm/q2-loc.entry.js +52 -3
  356. package/dist/esm/q2-loc.entry.js.map +1 -1
  357. package/dist/esm/q2-message.entry.js +3 -3
  358. package/dist/esm/q2-month-picker.entry.js +4 -4
  359. package/dist/esm/q2-optgroup.entry.js +5 -4
  360. package/dist/esm/q2-optgroup.entry.js.map +1 -1
  361. package/dist/esm/q2-option-list.entry.js +2 -2
  362. package/dist/esm/q2-option.entry.js +50 -33
  363. package/dist/esm/q2-option.entry.js.map +1 -1
  364. package/dist/esm/q2-pagination.entry.js +11 -7
  365. package/dist/esm/q2-pagination.entry.js.map +1 -1
  366. package/dist/esm/q2-pill.entry.js +19 -18
  367. package/dist/esm/q2-pill.entry.js.map +1 -1
  368. package/dist/esm/q2-radio-group.entry.js +5 -5
  369. package/dist/esm/q2-radio-group.entry.js.map +1 -1
  370. package/dist/esm/q2-radio.entry.js +3 -3
  371. package/dist/esm/q2-relative-time.entry.js +3 -3
  372. package/dist/esm/q2-resize-observer.entry.js +2 -2
  373. package/dist/esm/q2-section.entry.js +8 -6
  374. package/dist/esm/q2-section.entry.js.map +1 -1
  375. package/dist/esm/q2-select.entry.js +6 -5
  376. package/dist/esm/q2-select.entry.js.map +1 -1
  377. package/dist/esm/q2-stepper-pane.entry.js +5 -4
  378. package/dist/esm/q2-stepper-pane.entry.js.map +1 -1
  379. package/dist/esm/q2-stepper-vertical.entry.js +16 -4
  380. package/dist/esm/q2-stepper-vertical.entry.js.map +1 -1
  381. package/dist/esm/q2-stepper.entry.js +6 -4
  382. package/dist/esm/q2-stepper.entry.js.map +1 -1
  383. package/dist/esm/q2-tag.entry.js +6 -4
  384. package/dist/esm/q2-tag.entry.js.map +1 -1
  385. package/dist/esm/q2-tecton-elements.js +3 -3
  386. package/dist/esm/q2-textarea.entry.js +3 -3
  387. package/dist/esm/q2-tooltip.entry.js +2 -2
  388. package/dist/esm/{shapes-36183b2a.js → shapes-c7e1a3fa.js} +2 -2
  389. package/dist/esm/{shapes-36183b2a.js.map → shapes-c7e1a3fa.js.map} +1 -1
  390. package/dist/esm/tecton-tab-pane.entry.js +3 -3
  391. package/dist/q2-tecton-elements/action-sheet-e64cb6f7.js +77 -0
  392. package/dist/q2-tecton-elements/{p-b7554a79.js.map → action-sheet-e64cb6f7.js.map} +1 -1
  393. package/dist/q2-tecton-elements/app-globals-0f993ce5.js +4 -0
  394. package/dist/q2-tecton-elements/{p-e1255160.js.map → app-globals-0f993ce5.js.map} +1 -1
  395. package/dist/q2-tecton-elements/charting-1abfb877.js +34872 -0
  396. package/dist/q2-tecton-elements/{p-2941aafa.js.map → charting-1abfb877.js.map} +1 -1
  397. package/dist/q2-tecton-elements/click-elsewhere_2.entry.js +410 -0
  398. package/dist/q2-tecton-elements/click-elsewhere_2.entry.js.map +1 -0
  399. package/dist/q2-tecton-elements/dataSample-7b62e101.js +2602 -0
  400. package/dist/q2-tecton-elements/{p-ad80aef0.js.map → dataSample-7b62e101.js.map} +1 -1
  401. package/dist/q2-tecton-elements/index-3184c760.js +18168 -0
  402. package/dist/q2-tecton-elements/{p-f1e887f5.js.map → index-3184c760.js.map} +1 -1
  403. package/dist/q2-tecton-elements/index-7a5365e2.js +1792 -0
  404. package/dist/q2-tecton-elements/index-7a5365e2.js.map +1 -0
  405. package/dist/q2-tecton-elements/index-d18e2a20.js +323 -0
  406. package/dist/q2-tecton-elements/index-d18e2a20.js.map +1 -0
  407. package/dist/q2-tecton-elements/q2-action-group.entry.js +56 -0
  408. package/dist/q2-tecton-elements/{p-5637c486.entry.js.map → q2-action-group.entry.js.map} +1 -1
  409. package/dist/q2-tecton-elements/q2-action-sheet.entry.js +1480 -0
  410. package/dist/q2-tecton-elements/{p-188eb162.entry.js.map → q2-action-sheet.entry.js.map} +1 -1
  411. package/dist/q2-tecton-elements/q2-avatar.entry.js +101 -0
  412. package/dist/q2-tecton-elements/{p-07d1c3ae.entry.js.map → q2-avatar.entry.js.map} +1 -1
  413. package/dist/q2-tecton-elements/q2-badge_7.entry.js +5449 -0
  414. package/dist/q2-tecton-elements/q2-badge_7.entry.js.map +1 -0
  415. package/dist/q2-tecton-elements/q2-calendar.entry.js +1313 -0
  416. package/dist/q2-tecton-elements/q2-calendar.entry.js.map +1 -0
  417. package/dist/q2-tecton-elements/q2-card.entry.js +170 -0
  418. package/dist/q2-tecton-elements/q2-card.entry.js.map +1 -0
  419. package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +130 -0
  420. package/dist/q2-tecton-elements/{p-7aef0c08.entry.js.map → q2-carousel-pane.entry.js.map} +1 -1
  421. package/dist/q2-tecton-elements/q2-carousel.entry.js +4613 -0
  422. package/dist/q2-tecton-elements/{p-e216ef3f.entry.js.map → q2-carousel.entry.js.map} +1 -1
  423. package/dist/q2-tecton-elements/q2-chart-area.entry.js +4330 -0
  424. package/dist/q2-tecton-elements/q2-chart-area.entry.js.map +1 -0
  425. package/dist/q2-tecton-elements/q2-chart-bar.entry.js +1479 -0
  426. package/dist/q2-tecton-elements/{p-7906f49e.entry.js.map → q2-chart-bar.entry.js.map} +1 -1
  427. package/dist/q2-tecton-elements/q2-chart-donut.entry.js +4537 -0
  428. package/dist/q2-tecton-elements/q2-chart-donut.entry.js.map +1 -0
  429. package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +166 -0
  430. package/dist/q2-tecton-elements/q2-checkbox-group.entry.js.map +1 -0
  431. package/dist/q2-tecton-elements/q2-checkbox.entry.js +223 -0
  432. package/dist/q2-tecton-elements/{p-b7de110e.entry.js.map → q2-checkbox.entry.js.map} +1 -1
  433. package/dist/q2-tecton-elements/q2-currency.entry.js +153 -0
  434. package/dist/q2-tecton-elements/q2-currency.entry.js.map +1 -0
  435. package/dist/q2-tecton-elements/q2-data-table.entry.js +622 -0
  436. package/dist/q2-tecton-elements/{p-7903cd15.entry.js.map → q2-data-table.entry.js.map} +1 -1
  437. package/dist/q2-tecton-elements/q2-detail.entry.js +128 -0
  438. package/dist/q2-tecton-elements/{p-f5f23659.entry.js.map → q2-detail.entry.js.map} +1 -1
  439. package/dist/q2-tecton-elements/q2-dropdown-item.entry.js +146 -0
  440. package/dist/q2-tecton-elements/q2-dropdown-item.entry.js.map +1 -0
  441. package/dist/q2-tecton-elements/q2-dropdown.entry.js +432 -0
  442. package/dist/q2-tecton-elements/q2-dropdown.entry.js.map +1 -0
  443. package/dist/q2-tecton-elements/q2-editable-field.entry.js +296 -0
  444. package/dist/q2-tecton-elements/{p-896c7008.entry.js.map → q2-editable-field.entry.js.map} +1 -1
  445. package/dist/q2-tecton-elements/q2-example.entry.js +152 -0
  446. package/dist/q2-tecton-elements/q2-example.entry.js.map +1 -0
  447. package/dist/q2-tecton-elements/q2-formatted-text.entry.js +73 -0
  448. package/dist/q2-tecton-elements/{p-7c9f8b62.entry.js.map → q2-formatted-text.entry.js.map} +1 -1
  449. package/dist/q2-tecton-elements/q2-item.entry.js +158 -0
  450. package/dist/q2-tecton-elements/{p-7c9a0122.entry.js.map → q2-item.entry.js.map} +1 -1
  451. package/dist/q2-tecton-elements/q2-legend.entry.js +146 -0
  452. package/dist/q2-tecton-elements/{p-ff8f1a32.entry.js.map → q2-legend.entry.js.map} +1 -1
  453. package/dist/q2-tecton-elements/q2-link.entry.js +83 -0
  454. package/dist/q2-tecton-elements/q2-link.entry.js.map +1 -0
  455. package/dist/q2-tecton-elements/q2-list.entry.js +100 -0
  456. package/dist/q2-tecton-elements/q2-list.entry.js.map +1 -0
  457. package/dist/q2-tecton-elements/q2-loading-element.entry.js +36 -0
  458. package/dist/q2-tecton-elements/{p-a068c84c.entry.js.map → q2-loading-element.entry.js.map} +1 -1
  459. package/dist/q2-tecton-elements/q2-loc.entry.js +82 -0
  460. package/dist/q2-tecton-elements/q2-loc.entry.js.map +1 -0
  461. package/dist/q2-tecton-elements/q2-message.entry.js +99 -0
  462. package/dist/q2-tecton-elements/{p-8d2b02e1.entry.js.map → q2-message.entry.js.map} +1 -1
  463. package/dist/q2-tecton-elements/q2-month-picker.entry.js +198 -0
  464. package/dist/q2-tecton-elements/{p-8d07cf91.entry.js.map → q2-month-picker.entry.js.map} +1 -1
  465. package/dist/q2-tecton-elements/q2-optgroup.entry.js +88 -0
  466. package/dist/q2-tecton-elements/q2-optgroup.entry.js.map +1 -0
  467. package/dist/q2-tecton-elements/q2-option-list.entry.js +585 -0
  468. package/dist/q2-tecton-elements/{p-a5d0e252.entry.js.map → q2-option-list.entry.js.map} +1 -1
  469. package/dist/q2-tecton-elements/q2-option.entry.js +110 -0
  470. package/dist/q2-tecton-elements/q2-option.entry.js.map +1 -0
  471. package/dist/q2-tecton-elements/q2-pagination.entry.js +377 -0
  472. package/dist/q2-tecton-elements/q2-pagination.entry.js.map +1 -0
  473. package/dist/q2-tecton-elements/q2-pill.entry.js +434 -0
  474. package/dist/q2-tecton-elements/q2-pill.entry.js.map +1 -0
  475. package/dist/q2-tecton-elements/q2-radio-group.entry.js +227 -0
  476. package/dist/q2-tecton-elements/q2-radio-group.entry.js.map +1 -0
  477. package/dist/q2-tecton-elements/q2-radio.entry.js +144 -0
  478. package/dist/q2-tecton-elements/{p-c235ab3f.entry.js.map → q2-radio.entry.js.map} +1 -1
  479. package/dist/q2-tecton-elements/q2-relative-time.entry.js +162 -0
  480. package/dist/q2-tecton-elements/{p-95a7c042.entry.js.map → q2-relative-time.entry.js.map} +1 -1
  481. package/dist/q2-tecton-elements/q2-resize-observer.entry.js +100 -0
  482. package/dist/q2-tecton-elements/{p-e2c800ef.entry.js.map → q2-resize-observer.entry.js.map} +1 -1
  483. package/dist/q2-tecton-elements/q2-section.entry.js +256 -0
  484. package/dist/q2-tecton-elements/q2-section.entry.js.map +1 -0
  485. package/dist/q2-tecton-elements/q2-select.entry.js +684 -0
  486. package/dist/q2-tecton-elements/q2-select.entry.js.map +1 -0
  487. package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +124 -0
  488. package/dist/q2-tecton-elements/q2-stepper-pane.entry.js.map +1 -0
  489. package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +356 -0
  490. package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js.map +1 -0
  491. package/dist/q2-tecton-elements/q2-stepper.entry.js +332 -0
  492. package/dist/q2-tecton-elements/q2-stepper.entry.js.map +1 -0
  493. package/dist/q2-tecton-elements/q2-tag.entry.js +213 -0
  494. package/dist/q2-tecton-elements/q2-tag.entry.js.map +1 -0
  495. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +21 -1
  496. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
  497. package/dist/q2-tecton-elements/q2-textarea.entry.js +364 -0
  498. package/dist/q2-tecton-elements/{p-f135b265.entry.js.map → q2-textarea.entry.js.map} +1 -1
  499. package/dist/q2-tecton-elements/q2-tooltip.entry.js +105 -0
  500. package/dist/q2-tecton-elements/{p-c5667d5d.entry.js.map → q2-tooltip.entry.js.map} +1 -1
  501. package/dist/q2-tecton-elements/sectorHelper-183cedd0.js +949 -0
  502. package/dist/q2-tecton-elements/{p-eea5aa01.js.map → sectorHelper-183cedd0.js.map} +1 -1
  503. package/dist/q2-tecton-elements/shapes-c7e1a3fa.js +132 -0
  504. package/dist/q2-tecton-elements/{p-50b425de.js.map → shapes-c7e1a3fa.js.map} +1 -1
  505. package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +134 -0
  506. package/dist/q2-tecton-elements/{p-96b1406c.entry.js.map → tecton-tab-pane.entry.js.map} +1 -1
  507. package/dist/types/components/q2-calendar/q2-calendar.d.ts +4 -5
  508. package/dist/types/components/q2-chart-area/q2-chart-area.d.ts +6 -0
  509. package/dist/types/components/q2-chart-donut/q2-chart-donut.d.ts +6 -0
  510. package/dist/types/components/q2-currency/q2-currency.d.ts +7 -0
  511. package/dist/types/components/q2-dropdown/q2-dropdown.d.ts +1 -1
  512. package/dist/types/components/q2-dropdown-item/q2-dropdown-item.d.ts +2 -2
  513. package/dist/types/components/q2-example/q2-example.d.ts +119 -0
  514. package/dist/types/components/q2-input/formatting/date.d.ts +22 -0
  515. package/dist/types/components/q2-input/formatting/postal.d.ts +197 -0
  516. package/dist/types/components/q2-input/q2-input.d.ts +15 -12
  517. package/dist/types/components/q2-loc/q2-loc.d.ts +15 -1
  518. package/dist/types/components/q2-option/q2-option.d.ts +11 -3
  519. package/dist/types/components/q2-pill/q2-pill.d.ts +3 -3
  520. package/dist/types/components/q2-popover/q2-popover.d.ts +1 -0
  521. package/dist/types/components/q2-select/q2-select.d.ts +1 -1
  522. package/dist/types/components/q2-stepper-vertical/q2-stepper-vertical.d.ts +6 -0
  523. package/dist/types/components/q2-tag/q2-tag.d.ts +1 -1
  524. package/dist/types/components.d.ts +104 -14
  525. package/dist/types/utils/helpers.d.ts +13 -0
  526. package/dist/types/utils/index.d.ts +11 -0
  527. package/package.json +7 -7
  528. package/dist/cjs/index-14c3693c.js.map +0 -1
  529. package/dist/cjs/index-9aa4a776.js.map +0 -1
  530. package/dist/esm/index-1e1ce94e.js.map +0 -1
  531. package/dist/esm/index-844fc010.js.map +0 -1
  532. package/dist/q2-tecton-elements/p-06701928.entry.js +0 -2
  533. package/dist/q2-tecton-elements/p-06701928.entry.js.map +0 -1
  534. package/dist/q2-tecton-elements/p-07d1c3ae.entry.js +0 -2
  535. package/dist/q2-tecton-elements/p-15ac45d6.js +0 -2
  536. package/dist/q2-tecton-elements/p-15ac45d6.js.map +0 -1
  537. package/dist/q2-tecton-elements/p-16910682.entry.js +0 -2
  538. package/dist/q2-tecton-elements/p-16910682.entry.js.map +0 -1
  539. package/dist/q2-tecton-elements/p-188eb162.entry.js +0 -3
  540. package/dist/q2-tecton-elements/p-1c760a89.entry.js +0 -2
  541. package/dist/q2-tecton-elements/p-1c760a89.entry.js.map +0 -1
  542. package/dist/q2-tecton-elements/p-1c88d057.entry.js +0 -2
  543. package/dist/q2-tecton-elements/p-1c88d057.entry.js.map +0 -1
  544. package/dist/q2-tecton-elements/p-20a3d6ed.entry.js +0 -2
  545. package/dist/q2-tecton-elements/p-20a3d6ed.entry.js.map +0 -1
  546. package/dist/q2-tecton-elements/p-2733583e.entry.js +0 -2
  547. package/dist/q2-tecton-elements/p-2733583e.entry.js.map +0 -1
  548. package/dist/q2-tecton-elements/p-2941aafa.js +0 -39
  549. package/dist/q2-tecton-elements/p-3e428290.entry.js +0 -2
  550. package/dist/q2-tecton-elements/p-3e428290.entry.js.map +0 -1
  551. package/dist/q2-tecton-elements/p-4774e5b3.entry.js +0 -2
  552. package/dist/q2-tecton-elements/p-4774e5b3.entry.js.map +0 -1
  553. package/dist/q2-tecton-elements/p-490ef8e5.entry.js +0 -2
  554. package/dist/q2-tecton-elements/p-490ef8e5.entry.js.map +0 -1
  555. package/dist/q2-tecton-elements/p-4e10550d.entry.js +0 -2
  556. package/dist/q2-tecton-elements/p-4e10550d.entry.js.map +0 -1
  557. package/dist/q2-tecton-elements/p-50b425de.js +0 -2
  558. package/dist/q2-tecton-elements/p-50f7328f.entry.js +0 -2
  559. package/dist/q2-tecton-elements/p-50f7328f.entry.js.map +0 -1
  560. package/dist/q2-tecton-elements/p-5637c486.entry.js +0 -2
  561. package/dist/q2-tecton-elements/p-56df21b0.entry.js +0 -2
  562. package/dist/q2-tecton-elements/p-56df21b0.entry.js.map +0 -1
  563. package/dist/q2-tecton-elements/p-5a834214.entry.js +0 -2
  564. package/dist/q2-tecton-elements/p-5a834214.entry.js.map +0 -1
  565. package/dist/q2-tecton-elements/p-5f99a4a8.entry.js +0 -2
  566. package/dist/q2-tecton-elements/p-5f99a4a8.entry.js.map +0 -1
  567. package/dist/q2-tecton-elements/p-72d948b4.entry.js +0 -2
  568. package/dist/q2-tecton-elements/p-72d948b4.entry.js.map +0 -1
  569. package/dist/q2-tecton-elements/p-7903cd15.entry.js +0 -2
  570. package/dist/q2-tecton-elements/p-7906f49e.entry.js +0 -2
  571. package/dist/q2-tecton-elements/p-7aef0c08.entry.js +0 -2
  572. package/dist/q2-tecton-elements/p-7c9a0122.entry.js +0 -2
  573. package/dist/q2-tecton-elements/p-7c9f8b62.entry.js +0 -2
  574. package/dist/q2-tecton-elements/p-81fbe718.entry.js +0 -2
  575. package/dist/q2-tecton-elements/p-81fbe718.entry.js.map +0 -1
  576. package/dist/q2-tecton-elements/p-896c7008.entry.js +0 -2
  577. package/dist/q2-tecton-elements/p-8d07cf91.entry.js +0 -2
  578. package/dist/q2-tecton-elements/p-8d2b02e1.entry.js +0 -2
  579. package/dist/q2-tecton-elements/p-95a7c042.entry.js +0 -2
  580. package/dist/q2-tecton-elements/p-96b1406c.entry.js +0 -2
  581. package/dist/q2-tecton-elements/p-a068c84c.entry.js +0 -2
  582. package/dist/q2-tecton-elements/p-a47597dd.entry.js +0 -2
  583. package/dist/q2-tecton-elements/p-a47597dd.entry.js.map +0 -1
  584. package/dist/q2-tecton-elements/p-a5d0e252.entry.js +0 -2
  585. package/dist/q2-tecton-elements/p-a5f18e27.js +0 -3
  586. package/dist/q2-tecton-elements/p-a5f18e27.js.map +0 -1
  587. package/dist/q2-tecton-elements/p-ac6aa392.entry.js +0 -2
  588. package/dist/q2-tecton-elements/p-ac6aa392.entry.js.map +0 -1
  589. package/dist/q2-tecton-elements/p-ad057d10.entry.js +0 -2
  590. package/dist/q2-tecton-elements/p-ad057d10.entry.js.map +0 -1
  591. package/dist/q2-tecton-elements/p-ad798287.entry.js +0 -2
  592. package/dist/q2-tecton-elements/p-ad798287.entry.js.map +0 -1
  593. package/dist/q2-tecton-elements/p-ad80aef0.js +0 -2
  594. package/dist/q2-tecton-elements/p-b0e5e9dc.entry.js +0 -2
  595. package/dist/q2-tecton-elements/p-b0e5e9dc.entry.js.map +0 -1
  596. package/dist/q2-tecton-elements/p-b1784be3.entry.js +0 -2
  597. package/dist/q2-tecton-elements/p-b1784be3.entry.js.map +0 -1
  598. package/dist/q2-tecton-elements/p-b7554a79.js +0 -2
  599. package/dist/q2-tecton-elements/p-b7de110e.entry.js +0 -2
  600. package/dist/q2-tecton-elements/p-c235ab3f.entry.js +0 -2
  601. package/dist/q2-tecton-elements/p-c5667d5d.entry.js +0 -2
  602. package/dist/q2-tecton-elements/p-e1255160.js +0 -2
  603. package/dist/q2-tecton-elements/p-e216ef3f.entry.js +0 -2
  604. package/dist/q2-tecton-elements/p-e2c800ef.entry.js +0 -2
  605. package/dist/q2-tecton-elements/p-eea5aa01.js +0 -2
  606. package/dist/q2-tecton-elements/p-f135b265.entry.js +0 -2
  607. package/dist/q2-tecton-elements/p-f1e887f5.js +0 -2
  608. package/dist/q2-tecton-elements/p-f5f23659.entry.js +0 -2
  609. package/dist/q2-tecton-elements/p-f7867f21.entry.js +0 -2
  610. package/dist/q2-tecton-elements/p-f7867f21.entry.js.map +0 -1
  611. package/dist/q2-tecton-elements/p-ff8f1a32.entry.js +0 -2
  612. package/dist/q2-tecton-elements/p-fff01dc1.entry.js +0 -2
  613. package/dist/q2-tecton-elements/p-fff01dc1.entry.js.map +0 -1
@@ -1,2 +0,0 @@
1
- import{r as e,c as t,h as i,g as n}from"./p-a5f18e27.js";import{d as a}from"./p-f1e887f5.js";import{l as s,a as r,o,i as d,w as l,j as c}from"./p-15ac45d6.js";function h(e){const t=new Date(e);if(!a.isValid(t))return;return a.formatISO(t,{representation:"date"})}let u;function f(e){const t=new Date(e);if(!a.isValid(t))return;const i=t.toISOString();if(!u){u=new Intl.DateTimeFormat("en-US",{month:"2-digit",day:"2-digit",year:"numeric",timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone})}return u.format(new Date(i))}let v;function p(e){const t=new Date(e);if(!a.isValid(t))return;if(!v){v=new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",year:"numeric"})}return v.format(t)}let b;function y(e){if(!e)return;const t=new Date(e);if(!a.isValid(t))return;if(!b){b=new Intl.DateTimeFormat("en-US",{month:"long",day:"numeric",year:"numeric",weekday:"long",timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone})}return b.format(t)}function m(e){return e.replace(/[d]/g,"E").replace(/[D]/g,"d").replace(/[Y]/g,"y").replace(/[l]/g,"P").replace(/[W]/g,"I")}function g(e){const t=typeof e==="string";if(!t&&e&&a.isValid(new Date(e||undefined))){e=h(e)}else if(!e||!a.isValid(new Date(e))){return undefined}let i;const n=e.split(/[\/\-]/).map((e=>e.padStart(2,"0")));const s=t&&e.length>=24&&e[10]==="T";const r=n.length===3;const o=n.length<3;if(s){e=e.split("T")[0];i=new Date(e)}else if(r){const t=e.includes("/")&&n[2].length===4;if(t)n.unshift(n.pop());i=new Date(Date.UTC(parseInt(n[0]),parseInt(n[1])-1,parseInt(n[2])))}else if(o){const e=new Date;let t;let a;let s;switch(n.length){case 1:t=e.getFullYear();a=n[0];s="01";break;case 2:t=e.getFullYear();a=n[0];s=n[1];break}i=new Date(`${t}-${a}-${s}`)}if(!a.isValid(i))return undefined;i=w(i);return a.isValid(i)?i:undefined}function w(e){const t=e.getTimezoneOffset();return a.setMinutes(e,t+Math.abs(t%60))}function D(e){if(!Array.isArray(e)||e.length===0){return[]}return e.map((e=>g(e)))}function x(e=new Date){return{monthIndex:e.getMonth(),selectedYear:e.getFullYear()}}function k(e="",t=[],i=[],n=[],r,o,d="mm/dd/yyyy",l){let c=true;let u=false;let f="info";let v=`${s("tecton.element.calendar.hint.format")}: ${d}`;if(!e){return{isValid:c,inputDate:new Date(""),isAvailable:u,messageType:f,message:v}}const b=$(e,l);const y=b.getMonth()+1;const m=b.getDate();const g=b.getFullYear();const w=[y,m,g];if(a.isValid(b)){const a=C()[b.getMonth()];if(e.length===10){c=true;f=null;v=null}u=t.includes(b.getDay());const l=h(b);if(u){const e=i.length&&!i.includes(l);const t=n.length&&n.includes(l);const a=r&&r>l;const s=o&&o<l;if(e||t||a||s){u=false}}if(e.length>=5&&!u){c=false;f="error";const e=!a||!m||!g;v=e?`${s("tecton.element.calendar.hint.invalidDate")}: ${d}`:s("tecton.element.calendar.hint.notAvailableDate",[p(b)])}}else{c=false;f="error";v=`${s("tecton.element.calendar.hint.invalidDate")}: ${d}`}return{isValid:c,messageType:f,message:v,inputDate:b,isAvailable:u,calendarPosition:w}}function $(e,t){const i=new Date;let[n,a,s]=e.split("/");if(n==="0")n="01";if(a==="0")a="01";if(e.length===10){return new Date(e)}else if(n&&a&&Number(a)>0){const e=Number(a)<10?`0${Number(a)}`:a;const i=!s||s.length<4?I(n,a,t):s;return new Date(`${n}/${e}/${i}`)}else if(n){return new Date(`${n}/01/${i.getFullYear()}`)}}function I(e,t,i){const n=`${e}/${t}`;const a=new Date;const s=a.getMonth()<9?`0${a.getMonth()+1}`:`${a.getMonth()+1}`;const r=a.getDate()<10?`0${a.getDate()}`:`${a.getDate()}`;const o=`${s}/${r}/${a.getFullYear()}`;let d=a.getFullYear();if(i==="future"&&o.slice(0,5)>n){d=a.getFullYear()+1}else if(i==="past"&&o.slice(0,5)<n){d=a.getFullYear()-1}return d.toString()}function T(e){if(!e){return""}if(e.match(/^[1-9]\/$/)){return`0${e}/`}else if(e.match(/^[0-9]{2}\/[1-9]{1}\/$/)){const t=e.split("/");return`${t[0]}/0${t[1]}/`}return e}function E(e){const t=(e||"").split("-");if(t.length!==3)return"";return`${t[1]}/${t[2]}/${t[0]}`}function O(e,t){return new Date(t,e,1,1,1,1,1).getDay()}function V(){return[s("tecton.element.calendar.days.short.Sunday"),s("tecton.element.calendar.days.short.Monday"),s("tecton.element.calendar.days.short.Tuesday"),s("tecton.element.calendar.days.short.Wednesday"),s("tecton.element.calendar.days.short.Thursday"),s("tecton.element.calendar.days.short.Friday"),s("tecton.element.calendar.days.short.Saturday")]}function A(){return[s("tecton.element.calendar.days.Sunday"),s("tecton.element.calendar.days.Monday"),s("tecton.element.calendar.days.Tuesday"),s("tecton.element.calendar.days.Wednesday"),s("tecton.element.calendar.days.Thursday"),s("tecton.element.calendar.days.Friday"),s("tecton.element.calendar.days.Saturday")]}function C(){return[s("tecton.element.calendar.months.January"),s("tecton.element.calendar.months.February"),s("tecton.element.calendar.months.March"),s("tecton.element.calendar.months.April"),s("tecton.element.calendar.months.May"),s("tecton.element.calendar.months.June"),s("tecton.element.calendar.months.July"),s("tecton.element.calendar.months.August"),s("tecton.element.calendar.months.September"),s("tecton.element.calendar.months.October"),s("tecton.element.calendar.months.November"),s("tecton.element.calendar.months.December")]}function z(e,t){const i=a.getDaysInMonth(new Date(t,e));return[...Array(i).keys()].reduce(((i,n)=>{i.push(new Date(t,e,n+1));return i}),[])}function q(e=127){const t=e&1;const i=e&2;const n=e&4;const a=e&8;const s=e&16;const r=e&32;const o=e&64;const d=[];if(e<=0)return d;if(t)d.push(0);if(i)d.push(1);if(n)d.push(2);if(a)d.push(3);if(s)d.push(4);if(r)d.push(5);if(o)d.push(6);return d}function S(e,t){return e.includes(t.getDay())}function Y(e,t){return!F(e,t)}function F(e,t){return e.some((e=>a.isSameDay(e,t)))}function M(e,t,i,n,a,s,r){const o=[j.bind(null,s,new Date)];if(t===null||t===void 0?void 0:t.length){o.push(F.bind(null,t))}else{o.push(S.bind(null,e))}o.push(Y.bind(null,i));return L(n,a,s,o,r)}function L({monthIndex:e,selectedYear:t},i,n,s,r){const o=!a.isValid(new Date(r));const d=z(e,t).map(((e,t)=>{const a=s.some((t=>!t(e)));const r=H(e,n,i);const d=P(Object.assign(Object.assign({},r),{isInvalid:a,isIncompleteDate:o}));return Object.assign(Object.assign({},r),{isValid:!a,date:e,integer:t+1,isEmpty:false,isActivity:false,classList:d})}));const l=B(O(e,t));const c=U((l.length+d.length)%7);return[...l,...d,...c]}function j(e,t,i){const n=a.isAfter(e===null||e===void 0?void 0:e.startDate,i);const s=a.isBefore(e===null||e===void 0?void 0:e.endDate,i);const r=a.isSameDay(t,i)&&a.isAfter(t,e===null||e===void 0?void 0:e.cutOffTime);return!(n||r||s)}function H(e,t,i){if(!i)i=new Date;const n=i&&a.isSameDay(i,e);const s=a.isSameDay(e,new Date);const r=a.isSameDay(e,t===null||t===void 0?void 0:t.startDate);const o=a.isSameDay(e,t===null||t===void 0?void 0:t.endDate);return{isSelected:n,isToday:s,isStartDate:r,isEndDate:o}}function P({isInvalid:e,isSelected:t,isEndDate:i,isStartDate:n,isToday:a,isIncompleteDate:s}){const r=[];if(!e)r.push("is-valid");if(t)r.push("is-selected");if(i)r.push("is-end-date");if(n)r.push("is-start-date");if(a)r.push("is-today");if(t&&e&&!s)r.push("is-unavailable");return r.join(" ")}function B(e){return K(0,e)}function U(e){if(e===0)return[];return K(e,7)}const W={date:null,integer:null,isActivity:false,isEmpty:true,isValid:false,isToday:false,isSelected:false,isStartDate:false,isEndDate:false,classList:""};function K(e,t){if(e===7)e=0;return[...Array(t-e).keys()].map((()=>Object.assign({},W)))}const N="*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{display:block}:host[hidden]{display:none}click-elsewhere{position:relative;display:block}q2-input{margin:0;cursor:pointer}q2-popover{--comp-min-tappable-size:44px;--comp-table-border-spacing:2px;--comp-min-tappable-size-and-spacing:calc(var(--comp-min-tappable-size) + var(--comp-table-border-spacing));--comp-popover-padding:var(--tct-calendar-popover-padding, var(--t-calendar-popover-padding, var(--app-scale-1x, 5px)));--comp-min-table-width:calc(var(--comp-min-tappable-size-and-spacing) * 7);--comp-table-container-border-spacing:calc(var(--comp-table-border-spacing) * 2);--comp-popover-total-padding:calc(var(--comp-popover-padding) * 2);--tct-popover-min-width:calc(\n var(--comp-min-table-width) + var(--comp-table-container-border-spacing) + var(--comp-popover-total-padding)\n )}.calendar-field-popup{padding:var(--comp-popover-padding)}.calendar-label{--comp-label-padding:var(--tct-calendar-label-padding, var(--tct-calendar-label-vertical-padding, var(--t-calendar-label-vertical-padding, var(--tct-scale-2, var(--app-scale-2x, 10px)))) 0);font-size:var(--tct-calendar-label-font-size, var(--t-calendar-label-font-size, 16px));flex:1 1;flex-basis:calc(100% - var(--tct-btn-icon-width, 44px));margin:0;padding:var(--comp-label-padding)}.cal-month-heading{padding:0 0 0.75rem;display:flex;justify-content:center;align-items:center;font-size:var(--tct-calendar-month-font-size, var(--t-calendar-month-font-size, 16px));font-weight:var(--tct-calendar-month-font-weight, var(--t-calendar-month-font-weight, 600));text-align:center}.cal-month-text{min-width:82px;display:inline-block}.cal-year-text{min-width:50px;display:inline-block}table{width:100%;margin-bottom:2px;text-align:center;border-spacing:var(--comp-table-border-spacing)}th{font-size:var(--tct-calendar-day-heading-font-size, var(--t-calendar-day-heading-font-size, inherit));font-weight:var(--tct-calendar-day-heading-font-weight, var(--t-calendar-day-heading-font-weight, 600));width:14.285714%}td{height:var(--comp-min-tappable-size);cursor:pointer;border:var(--tct-calendar-day-border, var(--t-calendar-day-border, 0));border-radius:var(--tct-calendar-day-border-radius, var(--t-calendar-day-border-radius))}td.is-unavailable{border:1px solid var(--tct-input-error-border-color, var(--const-stoplight-alert, #d20a0a))}td.is-valid:hover{border:var(--tct-calendar-day-hover-border, var(--t-calendar-day-hover-border, var(--tct-calendar-day-border, var(--t-calendar-day-border, 0))));border-radius:var(--tct-calendar-day-hover-border-radius, var(--t-calendar-day-hover-border-radius, var(--tct-calendar-day-border-radius, var(--t-calendar-day-border-radius))));background:var(--tct-calendar-day-hover-background, var(--tct-calendar-day-hover-bg, var(--t-calendar-day-hover-bg, var(--tct-gray-14, var(--app-gray14, var(--tct-gray-l4, var(--app-gray-l4, #f2f2f2)))))));color:var(--tct-calendar-day-hover-font-color, var(--t-calendar-day-hover-font-color, inherit))}td[aria-hidden],td[aria-disabled]{pointer-events:none;cursor:not-allowed}td[aria-disabled]{opacity:var(--tct-calendar-day-disabled-opacity, var(--t-calendar-day-disabled-opacity, var(--app-disabled-opacity, 0.4)))}td[aria-selected]{border:var(--tct-calendar-day-selected-border, var(--t-calendar-day-selected-border, var(--tct-calendar-day-border, var(--t-calendar-day-border, 0))));border-radius:var(--tct-calendar-day-selected-border-radius, var(--t-calendar-day-selected-border-radius, var(--tct-calendar-day-border-radius, var(--t-calendar-day-border-radius))));background:var(--tct-calendar-day-selected-background, var(--tct-calendar-day-selected-bg, var(--t-calendar-day-selected-bg, var(--tct-calendar-day-hover-background, var(--tct-calendar-day-hover-bg, var(--t-calendar-day-hover-bg, var(--tct-gray-14, var(--t-gray-14, var(--tct-gray-l4, var(--app-gray-l4, #f2f2f2))))))))));color:var(--tct-calendar-day-selected-font-color, var(--t-calendar-day-selected-font-color, var(--tct-calendar-day-hover-font-color, var(--t-calendar-day-hover-font-color, inherit))));box-shadow:0 0 0 2px var(--tct-calendar-day-selected-outline-color, var(--t-calendar-day-selected-outline-color, var(--tct-stoplight-info, var(--const-stoplight-info, #0079c1))))}td[aria-selected]:focus{box-shadow:0 0 0 2px var(--tct-calendar-day-selected-outline-color, var(--t-calendar-day-selected-outline-color, var(--tct-stoplight-info, var(--const-stoplight-info, #0079c1)))), 0 0 0 4px var(--const-focus-color, #0066cc)}.today-decorator{text-transform:uppercase;font-weight:700;font-size:10px;height:12px}.calendar-disclaimer{font-size:var(--tct-calendar-disclaimer-font-size, var(--t-calendar-disclaimer-font-size, var(--tct-font-size-small, var(--app-font-size-small, 12px))));border-style:solid;border-width:var(--tct-calendar-disclaimer-border-width, var(--t-calendar-disclaimer-border-width, 1px 0 0 0));border-color:var(--tct-calendar-disclaimer-border-color, var(--t-calendar-disclaimer-border-color, var(--tct-gray-13, var(--t-gray-13, var(--tct-gray-l3, var(--app-gray-l3, #e6e6e6))))));padding:var(--tct-calendar-disclaimer-padding, var(--tct-scale-2, var(--app-scale-2x, 10px)));text-align:left}";const _=N;const J=class{constructor(i){e(this,i);this.change=t(this,"change",7);this.error=t(this,"error",7);this.success=t(this,"success",7);this.dayAbbrStrings=V();this.dayStrings=A();this.defaultFormatString="mm/dd/yyyy";this.formatModifier="M/D/YYYY";this.internalError="";this.monthStrings=C();this.scheduledAfterRender=[];this.closeCalendar=()=>{if(!this.open)return;this.open=false;this.focusInput()};this.goToMonthYear=(e,t)=>{if(e<0){e=11;t--}else if(e>11){e=0;t++}this.selectedMonthYear={monthIndex:e,selectedYear:t};this.dateList=this.buildDateList(this.selectedMonthYear);this.scheduledAfterRender.push((()=>this.checkActiveCellForBlankness()))};this.onClickElsewhere=e=>{const t=e.target;if(t.localName==="click-elsewhere"){e.stopPropagation();this.closeCalendar()}};this.onDateKeydown=e=>{const{monthIndex:t,selectedYear:i}=this.selectedMonthYear;const n=parseInt(e.target.dataset.day);const s=this.generateDateFromDay(n);switch(e.key){case"ArrowUp":e.preventDefault();this.activateDay(a.addDays(s,-7));break;case"ArrowDown":e.preventDefault();this.activateDay(a.addDays(s,7));break;case"ArrowRight":e.preventDefault();this.activateDay(a.addDays(s,1));break;case"ArrowLeft":e.preventDefault();this.activateDay(a.addDays(s,-1));break;case"PageUp":e.preventDefault();if(e.shiftKey)this.goToMonthYear(t,i-1);else this.goToMonthYear(t-1,i);break;case"PageDown":e.preventDefault();if(e.shiftKey)this.goToMonthYear(t,i+1);else this.goToMonthYear(t+1,i);break;case"Home":e.preventDefault();this.activateDay(a.addDays(s,-s.getDay()));break;case"End":e.preventDefault();this.activateDay(a.addDays(s,6-s.getDay()));break;case"Escape":e.preventDefault();this.closeCalendar();this.focusInput();break;case"Enter":e.preventDefault();if(!this.dateList.find((({date:e})=>a.isSameDay(e,s))).isValid)return;this.selectDate(s);this.closeCalendar();this.focusInput();break;case" ":e.preventDefault();if(!this.dateList.find((({date:e})=>a.isSameDay(e,s))).isValid)return;this.selectDate(s);this.closeCalendar();this.focusInput();break}};this.onDateSelection=e=>{const t=e.target.closest("td:not([aria-hidden])");if(!t)return;const i=w(new Date(t.dataset.date));this.selectDate(i);this.closeCalendar()};this.onHeaderControlKeydown=e=>{var t;const i=this.generateDateFromDay(1);const n=(t=this.calendarBody)===null||t===void 0?void 0:t.querySelector('[aria-selected="true"]');if(e.key==="Tab"&&!n){e.preventDefault();this.activateDay(i)}};this.onInputBlur=()=>{if(!this.isTypeable)return;const e=q(this.daysOfWeekChecksum);const{typedValue:t}=this;const{isValid:i,inputDate:n,isAvailable:s}=k(this.typedValue,e,this.validDates,this.invalidDates,this.startDate,this.endDate,this.defaultFormatString,this.assume);if(!t&&(n===null||n===void 0?void 0:n.toString())==="Invalid Date"){this.setHints({isValid:true,message:this.defaultHintMessage,messageType:"info"})}else if(i||t&&t.length>4&&n&&a.isValid(n)&&s){this.setCompleteInput(n)}else if(this.value){this.valueOnBlur=this.value;this.value=null;this.change.emit({value:null});this.typedValue=t}};this.onInputChange=e=>{e.stopPropagation()};this.onInputClick=()=>{if(this.disabled)return;this.toggleCalendar()};this.onInputFocus=e=>{if(!this.isTypeable)return;if(e.target===this.controlElement){if(this.valueOnBlur&&!this.value){const e=this.typedValue;this.value=this.valueOnBlur;this.typedValue=e;this.valueOnBlur=null}this.closeCalendar()}};this.onInputInput=({detail:{value:e}})=>{this.typedValue=e};this.onInputKeydown=e=>{const{dateValue:t}=this;switch(e.key){case"ArrowDown":e.preventDefault();this.openCalendar();this.activateDay(t||new Date);break;case"Enter":case" ":if(this.typeable)break;e.preventDefault();if(this.open){this.closeCalendar()}else{this.openCalendar();this.activateDay(t||new Date)}break}};this.onInputKeyup=e=>{if(this.disabled){return}switch(e.key){case"Escape":this.onInputBlur();this.closeCalendar();break}if(!this.isTypeable)return;this.typedValue=T(this.typedValue);const{typedValue:t}=this;const i=q(this.daysOfWeekChecksum);const{isValid:n,message:s,messageType:r,inputDate:o,isAvailable:d,calendarPosition:l}=k(t,i,this.validDates,this.invalidDates,this.startDate,this.endDate,this.defaultFormatString,this.assume);if(l){const[e,t,i]=l;const n=new Date(i,e-1,t);if(a.isValid(n)){this.selectedMonthYear=x(n);this.dateList=this.buildDateList(this.selectedMonthYear);this.validateDate()}}if(e.key==="Enter"){if(n||t&&t.length>4&&o&&a.isValid(o)&&d){this.setCompleteInput(o)}else if(this.value){this.value=null;this.change.emit({value:null});this.typedValue=t}if(this.keyboardSelection){this.keyboardSelection=false;this.closeCalendar()}else{this.toggleCalendar()}}else{this.setHints({isValid:n,message:s,messageType:r})}};this.onPopupKeyup=e=>{if(e.key==="Escape"||e.key==="Esc"){this.onInputBlur();this.closeCalendar()}};this.onRefocus=()=>{var e;(e=this.btnPrevMonth)===null||e===void 0?void 0:e.dispatchEvent(new FocusEvent("focus"))};this.openCalendar=()=>{if(this.readonly||this.open)return;this.selectedMonthYear=x(this.dateValue);this.dateList=this.buildDateList(this.selectedMonthYear);this.open=true};this.selectDate=e=>{const{isValid:t}=this.dateList.find((({date:t})=>a.isSameDay(t,e)));if(!t)return;this.change.emit({value:h(e)});this.typedValue=f(e);this.invalid=false;this.success.emit({value:h(e)})};this.toggleCalendar=()=>{if(this.readonly)return;if(this.open){this.closeCalendar()}else{this.openCalendar()}};this.dateList=undefined;this.hintMessage=this.defaultHintMessage;this.hintMessageType="info";this.keyboardSelection=false;this.typedValue="";this.ariaLabel=undefined;this.assume="current";this.buttonLabel=undefined;this.calendarLabel=undefined;this.clearable=undefined;this.cutoffTime=undefined;this.daysOfWeekChecksum=undefined;this.disabled=undefined;this.disabledMsg=undefined;this.disclaimer=undefined;this.displayFormat=undefined;this.endDate=undefined;this.errors=undefined;this.hideLabel=undefined;this.hints=undefined;this.invalid=undefined;this.invalidDates=undefined;this.label=undefined;this.onsuccess=undefined;this.open=undefined;this.optional=undefined;this.placeholder=undefined;this.popDirection=undefined;this.popoverAlignment=undefined;this.popoverDirection=undefined;this.popoverMinHeight=355;this.popoverMode=null;this.readonly=undefined;this.startDate=undefined;this.typeable=undefined;this.validDates=undefined;this.value=undefined}connectedCallback(){this.selectedMonthYear=x(this.dateValue);this.dateList=this.buildDateList(this.selectedMonthYear);if(this.value&&this.isTypeable&&!this.typedValue){this.typedValue=E(this.value)}this.validateDate()}componentWillLoad(){this.popDirectionHandler();r(this)}componentDidLoad(){o(this.hostElement)}componentDidRender(){setTimeout((()=>{this.scheduledAfterRender.forEach((e=>e()));this.scheduledAfterRender=[]}),25)}defaultChangeHandler(e){if(e.target===this.hostElement&&!this.hostElement.onchange&&!!e.detail){this.value=e.detail.value}}handleClear(){this.change.emit({value:null});this.value=null;this.typedValue=""}defaultErrorHandler(e){if(e.target===this.hostElement&&!this.hostElement.onerror){if(this.hintMessageType==="error"&&this.hintMessage){this.internalError=this.hintMessage}else{this.internalError=s("tecton.element.calendar.hint.invalidDate")}}}delegateFocus(e){if(!d(e,this.hostElement))return;this.controlElement.shadowRoot.querySelector(".input-field").focus()}popoverStateHandler({detail:{open:e}}){if(this.open!==e)this.open=e}defaultSuccessHandler(e){if(e.target!==this.hostElement){return}if(typeof this.onsuccess==="function"){this.onsuccess(e)}else{this.internalError="";if(this.hintMessageType==="error"&&this.hintMessage){this.hintMessage=null;this.hintMessageType=null;this.invalid=false}}}async closePopover(){if(!this.open)return;this._togglePopover()}async openPopover(){if(this.open)return;this._togglePopover()}async setValue(e){var t;const i=typeof e==="string"?g(e):e;if(!a.isValid(i))return;await this.openPopover();await l();this.goToMonthYear(i.getMonth(),i.getFullYear());await l();const n=(t=this.calendarTable)===null||t===void 0?void 0:t.querySelector(`td[data-date="${h(i)}"]`);n===null||n===void 0?void 0:n.click()}async typeValue(e){if(!this.typeable)return;const t=typeof e==="string"?g(e):e;const i=f(t);if(!a.isValid(t))return;const{innerInputField:n,controlElement:s}=this;n.focus();n.dispatchEvent(new FocusEvent("focus"));n.value=i;n.dispatchEvent(new InputEvent("input"));s.dispatchEvent(new KeyboardEvent("keyup"))}ariaLabelObserver(){r(this)}cutoffTimeObserver(){this.dateList=this.buildDateList(this.selectedMonthYear);this.validateDate()}daysOfWeekChecksumObserver(){this.dateList=this.buildDateList(this.selectedMonthYear);this.validateDate()}endDateObserver(){this.dateList=this.buildDateList(this.selectedMonthYear);this.validateDate()}invalidDatesObserver(){this.dateList=this.buildDateList(this.selectedMonthYear);this.validateDate()}popDirectionHandler(){c(this,"popDirection","popoverDirection")}startDateObserver(){this.dateList=this.buildDateList(this.selectedMonthYear);this.validateDate()}typeableChanged(){this.valueObserver(this.value)}validDatesObserver(){this.dateList=this.buildDateList(this.selectedMonthYear);this.validateDate()}valueObserver(e){if(e===""){this.value=undefined;this.setHints({isValid:true,message:this.defaultHintMessage,messageType:"info"});return}const t=e&&typeof e!=="string"&&"toDate"in e;const i=t?e.toDate():g(e);const n=f(i);if(this.isTypeable){this.typedValue=n}else{this.controlElement.value=n;this.selectedMonthYear=x(i);this.dateList=this.buildDateList(this.selectedMonthYear);this.validateDate()}if(this.invalid)return;if(n){this.setHints({isValid:true,message:null,messageType:null})}else{this.setHints({isValid:true,message:this.defaultHintMessage,messageType:"info"})}}get canClear(){if(this.isTypeable){return this.clearable&&!!this.typedValue}else{return this.clearable&&!!this.value}}get computedPlaceholder(){if(this.disabled&&this.disabledMsg){return s(this.disabledMsg)}if(this.buttonLabel&&(this.disabled||this.placeholder)){return s(this.buttonLabel)}return this.placeholder&&s(this.placeholder)||""}get currentWeeks(){const e=this.dateList.reduce(((e,t,i)=>{const n=Math.floor(i/7);if(!e[n]){e[n]=[]}e[n].push(t);return e}),[]);return e}get dateValidators(){const e=new Date(this.cutoffTime||"");return{startDate:g(this.startDate),endDate:g(this.endDate),cutOffTime:a.isValid(e)?e:undefined}}get dateValue(){if(this.isTypeable){return g(this.typedValue)}else{let{value:e}=this;const t=e&&typeof e!=="string"&&"toDate"in e;if(t)return e.toDate();const i=typeof e==="string"&&e.split(" ").length===6&&/GMT-\d{4}/g.test(e);if(i){e=h(e)}return g(e)}}get defaultHintMessage(){return this.typeable?s("tecton.element.calendar.hint.format")+": "+this.defaultFormatString:s("tecton.element.calendar.hint.select")}get errorList(){const{errors:e,internalError:t,invalid:i}=this;let n=[];if(t){n=[t]}if(Array.isArray(e)&&e.length){n=e.filter((e=>!!e)).map((e=>s(e))).concat(n)}else if(!t&&i){return["tecton.element.calendar.invalid"]}return n}get formattedValue(){const{typedValue:e,dateValue:t,displayFormat:i,isTypeable:n}=this;if(n)return e;if(t===undefined)return"";if(i)return a.format(t,m(i));return new Intl.DateTimeFormat("en-US",{year:"numeric",month:"2-digit",day:"2-digit",timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone}).format(t)}get hintList(){const{hints:e,hintMessageType:t,hintMessage:i}=this;if(Array.isArray(e)&&e.length)return e.filter((e=>!!e)).map((e=>s(e)));if(t==="info"&&i)return[i];return[]}get innerInputContainer(){var e,t;return(t=(e=this.controlElement)===null||e===void 0?void 0:e.shadowRoot)===null||t===void 0?void 0:t.querySelector(".input-container")}get innerInputField(){var e,t;return(t=(e=this.controlElement)===null||e===void 0?void 0:e.shadowRoot)===null||t===void 0?void 0:t.querySelector(".input-field")}get isTypeable(){return this.typeable}get selectedDate(){var e;const t=(e=this.calendarBody)===null||e===void 0?void 0:e.querySelector('[aria-selected="true"]');return t?w(new Date(t.dataset.date)):null}_togglePopover(){const e=this.typeable?this.btnCalendarToggle:this.innerInputField;e===null||e===void 0?void 0:e.click();e===null||e===void 0?void 0:e.focus();e.dispatchEvent(new FocusEvent("focus"))}activateDay(e){this.goToMonthYear(e.getMonth(),e.getFullYear());this.scheduledAfterRender.push((()=>this.focusDay(e)))}buildDateList(e){const t=D(this.invalidDates);const i=q(this.daysOfWeekChecksum);const n=D(this.validDates);return M(i,n,t,e,this.dateValue,this.dateValidators,this.typedValue)}calendarDays(){return i("table",{role:"grid","aria-labelledby":"table-label",ref:e=>this.calendarTable=e},i("thead",null,i("tr",null,[...Array(7).keys()].map((e=>i("th",{scope:"col","aria-label":this.dayStrings[e]},this.dayAbbrStrings[e]))))),i("tbody",{onClick:this.onDateSelection,onKeyDown:this.onDateKeydown,ref:e=>this.calendarBody=e,"test-id":"calendarTableBody"},this.currentWeeks.map((e=>i("tr",null,e.map((e=>{var t;let n="";if(e.isToday)n=`${s("tecton.element.calendar.today")}, `;n+=y(e.date);if(e.isSelected)n+=` (${s("tecton.element.calendar.selected")})`;return i("td",{class:e.classList,"aria-hidden":e.isEmpty?"true":undefined,tabindex:e.isSelected?0:-1,role:e.isSelected?"gridcell":undefined,"aria-selected":e.isSelected?"true":undefined,"aria-disabled":e.isValid?undefined:"true","data-day":e.integer||undefined,"data-date":e.date?h(e.date):undefined},(e===null||e===void 0?void 0:e.isToday)&&i("div",{class:"today-decorator","aria-hidden":"true"},s("tecton.element.calendar.today")),i("div",{"aria-label":n},(t=e===null||e===void 0?void 0:e.integer)!==null&&t!==void 0?t:""))})))))))}calendarPopover(){const{monthIndex:e,selectedYear:t}=this.selectedMonthYear;return i("div",{class:"calendar-field-popup",onKeyUp:this.onPopupKeyup},this.calendarLabel&&i("p",{class:"calendar-label"},s(this.calendarLabel)),i("div",{class:"cal-month-heading"},i("q2-btn",{label:s("tecton.element.calendar.previousMonth"),"hide-label":true,ref:e=>this.btnPrevMonth=e,class:"cal-nav-btn prev-month","test-id":"previousMonthButton",onClick:()=>this.goToMonthYear(e-1,t)},i("q2-icon",{type:"chevron-left"})),i("span",{class:"cal-month-text"},this.monthStrings[e]),i("q2-btn",{label:s("tecton.element.calendar.nextMonth"),"hide-label":true,class:"cal-nav-btn next-month",ref:e=>this.btnNextMonth=e,"test-id":"nextMonthButton",onClick:()=>this.goToMonthYear(e+1,t)},i("q2-icon",{type:"chevron-right"})),i("q2-btn",{label:s("tecton.element.calendar.previousYear"),"hide-label":true,class:"cal-nav-btn prev-year",ref:e=>this.btnPrevYear=e,"test-id":"previousYearButton",onClick:()=>this.goToMonthYear(e,t-1)},i("q2-icon",{type:"chevron-left"})),i("span",{class:"cal-year-text"},this.selectedMonthYear.selectedYear),i("q2-btn",{label:s("tecton.element.calendar.nextYear"),"hide-label":true,class:"cal-nav-btn next-year",ref:e=>this.btnNextYear=e,"test-id":"nextYearButton",onClick:()=>this.goToMonthYear(e,t+1),onKeyDown:this.onHeaderControlKeydown},i("q2-icon",{type:"chevron-right"}))),i("div",{class:"sr","aria-live":"polite",id:"table-label"},`${this.monthStrings[e]} ${t}`),this.calendarDays(),this.disclaimer&&i("div",{class:"calendar-disclaimer"},s(this.disclaimer)),i("q2-btn",{class:"sr refocus-popup",onFocus:this.onRefocus}))}checkActiveCellForBlankness(){const e=this.hostElement.shadowRoot.activeElement;if(!e||e.tagName!=="TD"||!e.hasAttribute("aria-hidden"))return;const{calendarBody:t}=this;const i=Array.from(t.querySelectorAll("td"));const n=Array.from(i).indexOf(e);const a=n<15?1:i.filter((e=>!e.hasAttribute("aria-hidden"))).length;this.focusDay(this.generateDateFromDay(a))}async focusDay(e){var t;if(!e)return;await l();(t=this.calendarBody.querySelector(`td[data-day="${e.getDate()}"]`))===null||t===void 0?void 0:t.focus()}focusInput(){var e;(e=this.controlElement)===null||e===void 0?void 0:e.focus()}generateDateFromDay(e){const{monthIndex:t,selectedYear:i}=this.selectedMonthYear;return new Date(i,t,e)}hintField(){if(!this.hintMessage)return;return i("q2-message",{class:"calendar-hint sr",ref:e=>this.hintMessageElement=e,type:this.hintMessageType},this.hintMessage)}inputField(){const{isTypeable:e}=this;return i("q2-input",{ref:e=>this.controlElement=e,class:"calendar-input-field",value:this.formattedValue,label:s(this.label),hideLabel:this.hideLabel,disabled:!!this.disabled,readonly:!!this.readonly,clearable:this.canClear,placeholder:this.computedPlaceholder,optional:!!this.optional,ariaExpanded:`${!!this.open}`,hints:this.hintList,errors:this.errorList,onClick:e?undefined:this.onInputClick,onChange:this.onInputChange,onInput:this.onInputInput,onKeyDown:this.onInputKeydown,onKeyUp:this.onInputKeyup,onBlur:this.onInputBlur,onFocus:this.onInputFocus,"icon-right":e?undefined:"calendar","format-modifier":e?this.formatModifier:this.displayFormat||this.formatModifier,type:"date","hide-messages":!e,"test-id":"inputAndCalendarToggle",_role:"combobox",_preventEntry:!e},e&&i("q2-btn",{ref:e=>this.btnCalendarToggle=e,slot:"input-right",onClick:this.onInputClick,"test-id":"calendarToggle",label:"tecton.element.calendar.toggleAriaLabel","hide-label":true},i("q2-icon",{type:"calendar"})))}setCompleteInput(e){const t=f(e);this.change.emit({value:h(e)});this.typedValue=t;this.internalError=null;this.setHints({isValid:true,message:null,messageType:null})}setHints({isValid:e,message:t,messageType:i}){var n;if(t===this.hintMessage)return(n=this.hintMessageElement)===null||n===void 0?void 0:n.present();this.invalid=!e;this.hintMessage=t;this.hintMessageType=i;if(i==="error"&&t){this.internalError=t;this.error.emit({errors:[{message:t,errorCode:"generalInvalid"}]})}}validateDate(){var e,t,i;try{if(!!this.value){const{dateValue:n}=this;const a=(e=n===null||n===void 0?void 0:n.getMonth())!==null&&e!==void 0?e:undefined;const s=(t=n===null||n===void 0?void 0:n.getFullYear())!==null&&t!==void 0?t:undefined;const{monthIndex:r,selectedYear:o}=this.selectedMonthYear;const d=a===r&&s===o;let l=[];if(!n){l=[]}else if(d){l=this.dateList}else{l=this.buildDateList({monthIndex:a,selectedYear:s})}const c=(i=n===null||n===void 0?void 0:n.getDate())!==null&&i!==void 0?i:undefined;const u=c?!l.find((({integer:e})=>e===c)).isValid:true;if(u){this.error.emit({errors:[{message:`Value passed is invalid: The date ${this.value} is not valid`,errorCode:"generalInvalid"}]})}else{this.success.emit({value:h(n)})}}}catch(e){console.warn("Invalid moment value ",this.dateValue)}}render(){return i("click-elsewhere",{key:"e23ea47b755999a0447d11b11185040de8b6cb34",class:this.open?"dropdown-open":undefined,onChange:this.onClickElsewhere},this.inputField(),i("q2-popover",{key:"b1b25c6016f27d75c3e4934fce14049e9becb012",ref:e=>this.popoverElement=e,controlElement:this.innerInputContainer,open:this.open,direction:this.popoverDirection,minHeight:this.popoverMinHeight,align:this.popoverAlignment,mode:this.popoverMode||undefined,block:true},this.hintField(),this.calendarPopover()))}get hostElement(){return n(this)}static get watchers(){return{ariaLabel:["ariaLabelObserver"],cutoffTime:["cutoffTimeObserver"],daysOfWeekChecksum:["daysOfWeekChecksumObserver"],endDate:["endDateObserver"],invalidDates:["invalidDatesObserver"],popDirection:["popDirectionHandler"],startDate:["startDateObserver"],typeable:["typeableChanged"],validDates:["validDatesObserver"],value:["valueObserver"]}}};J.style=_;export{J as q2_calendar};
2
- //# sourceMappingURL=p-ad057d10.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["formatDateISO","value","date","Date","isValidDate","formatISO","representation","memoizedFormatDateShort","formatDateShort","isoDate","toISOString","Intl","DateTimeFormat","month","day","year","timeZone","resolvedOptions","format","memoizedFormatDateLong","formatDateLong","memoizedFormatDateFull","formatDateFull","weekday","convertMomentFormat","stringFormat","replace","stringToDate","isString","undefined","result","dateParts","split","map","part","padStart","isIsoString","length","isCompleteDate","isPartialDate","isStandardSlashDate","includes","unshift","pop","UTC","parseInt","now","yearNumber","monthNumber","dayNumber","getFullYear","removeTimezoneOffset","timeZoneOffset","getTimezoneOffset","setMinutes","Math","abs","stringArrayToDate","dateArray","Array","isArray","setupMonthYear","monthIndex","getMonth","selectedYear","validateInput","input","validDays","validDates","invalidDates","startDate","endDate","formatString","assume","isValid","isAvailable","messageType","message","loc","inputDate","buildInputDate","getDate","calendarPosition","monthName","getMonths","getDay","isoString","isNotValidDate","isInvalidDate","isBeforeStartDate","isAfterEndDate","isInvalid","Number","twoDigitDay","fourDigitYear","assumeYear","monthDay","mm","dd","nowLocal","assumedYear","slice","toString","handleMissingZeros","match","sp","reorderDateString","firstDayOfWeekInMonth","getDays","getDaysOfWeek","generateDatesFromMonthYear","daysInMonth","getDaysInMonth","keys","reduce","acc","stepIndex","push","getValidDaysOfWeek","checksum","sunValid","monValid","tuesValid","wedsValid","thursValid","friValid","satValid","ret","validateAgainstChecksum","validDaysOfWeek","newDate","validateAgainstBlacklist","validateAgainstWhitelist","some","validDate","isSameDay","buildDates","selectedMonthYear","currentSelection","dateValidators","typedValue","validationFns","baseValidation","bind","generateDateList","isIncompleteDate","datesInMonth","dayInMonth","dateIndex","fn","dayState","getDayState","classList","generateClassesForCalDay","Object","assign","integer","isEmpty","isActivity","startOfMonthEmpties","addEmptiesMonthStart","endOfMonthEmpties","addEmptiesMonthEnd","isNewDateBeforeStartDate","isAfter","isNewDateAfterEndDate","isBefore","isNowAfterCutoffTime","cutOffTime","currentDate","isSelected","isToday","isStartDate","isEndDate","classes","join","monthStartDayOfWeek","addEmptyDates","monthEndDayOfWeek","emptyDate","from","to","q2CalendarCss","Q2CalendarStyle0","Q2Calendar","this","dayAbbrStrings","dayStrings","defaultFormatString","formatModifier","internalError","monthStrings","scheduledAfterRender","closeCalendar","open","focusInput","goToMonthYear","dateList","buildDateList","checkActiveCellForBlankness","onClickElsewhere","event","target","localName","stopPropagation","onDateKeydown","currentDay","dataset","generateDateFromDay","key","preventDefault","activateDay","addDays","shiftKey","find","selectDate","onDateSelection","dateCell","closest","clickedDate","onHeaderControlKeydown","hasSelectedCell","_a","calendarBody","querySelector","onInputBlur","isTypeable","daysOfWeekChecksum","setHints","defaultHintMessage","setCompleteInput","valueOnBlur","change","emit","onInputChange","onInputClick","disabled","toggleCalendar","onInputFocus","controlElement","tmpTypedValue","onInputInput","detail","onInputKeydown","dateValue","openCalendar","typeable","onInputKeyup","yyyy","validateDate","keyboardSelection","onPopupKeyup","onRefocus","btnPrevMonth","dispatchEvent","FocusEvent","readonly","invalid","success","connectedCallback","componentWillLoad","popDirectionHandler","handleAriaLabel","componentDidLoad","overrideFocus","hostElement","componentDidRender","setTimeout","forEach","defaultChangeHandler","onchange","handleClear","defaultErrorHandler","onerror","hintMessageType","hintMessage","delegateFocus","isEventFromElement","shadowRoot","focus","popoverStateHandler","defaultSuccessHandler","onsuccess","closePopover","_togglePopover","openPopover","setValue","waitForNextPaint","tableCell","calendarTable","click","typeValue","formattedDate","innerInputField","InputEvent","KeyboardEvent","ariaLabelObserver","cutoffTimeObserver","daysOfWeekChecksumObserver","endDateObserver","invalidDatesObserver","handleRenamedProp","startDateObserver","typeableChanged","valueObserver","validDatesObserver","newValue","isMoment","toDate","shortFormattedValue","canClear","clearable","computedPlaceholder","disabledMsg","buttonLabel","placeholder","currentWeeks","weeks","accum","item","index","chunkIndex","floor","ct","cutoffTime","isMomentString","test","errorList","errors","list","filter","error","concat","formattedValue","displayFormat","hintList","hints","hint","innerInputContainer","_b","selectedDate","selectedCell","toggleElement","btnCalendarToggle","focusDay","monthYear","calendarDays","h","role","ref","scope","onClick","onKeyDown","elm","week","ariaLabel","class","tabindex","calendarPopover","onKeyUp","calendarLabel","label","type","btnNextMonth","btnPrevYear","btnNextYear","id","disclaimer","onFocus","activeElement","tagName","hasAttribute","calendarCells","querySelectorAll","indexOfCell","indexOf","dayToFocus","cell","hintField","el","hintMessageElement","inputField","hideLabel","optional","ariaExpanded","onChange","onInput","onBlur","_role","_preventEntry","slot","present","errorCode","isSelectedMonthAndYear","calculationDateList","dateValueDayOfMonth","_c","isDateValueInvalid","console","warn","render","popoverElement","direction","popoverDirection","minHeight","popoverMinHeight","align","popoverAlignment","mode","popoverMode","block"],"sources":["src/components/q2-calendar/q2-calendar-helpers.ts","src/components/q2-calendar/q2-calendar-validation.ts","src/components/q2-calendar/q2-calendar.scss?tag=q2-calendar&encapsulation=shadow","src/components/q2-calendar/q2-calendar.tsx"],"sourcesContent":["import { isValid as isValidDate, formatISO, setMinutes } from 'date-fns';\nimport { loc } from '../../utils';\nimport { ISelectedMonthYear, InputValidation } from './q2-calendar-types';\n\nexport interface IMomentLikeObject {\n toDate(): Date;\n}\n\nexport function formatDateISO(value: string | Date) {\n const date = new Date(value);\n if (!isValidDate(date)) return;\n\n return formatISO(date, { representation: 'date' });\n}\n\nlet memoizedFormatDateShort: Intl.DateTimeFormat;\nexport function formatDateShort(value: string | Date) {\n const date = new Date(value);\n if (!isValidDate(date)) return;\n\n const isoDate = date.toISOString();\n if (!memoizedFormatDateShort) {\n memoizedFormatDateShort = new Intl.DateTimeFormat('en-US', {\n month: '2-digit',\n day: '2-digit',\n year: 'numeric',\n timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n });\n }\n\n return memoizedFormatDateShort.format(new Date(isoDate));\n}\n\nlet memoizedFormatDateLong: Intl.DateTimeFormat;\nexport function formatDateLong(value: string | Date) {\n const date = new Date(value);\n if (!isValidDate(date)) return;\n if (!memoizedFormatDateLong) {\n memoizedFormatDateLong = new Intl.DateTimeFormat('en-US', {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n });\n }\n\n return memoizedFormatDateLong.format(date);\n}\n\nlet memoizedFormatDateFull: Intl.DateTimeFormat;\nexport function formatDateFull(value: string | Date) {\n if (!value) return;\n const date = new Date(value);\n if (!isValidDate(date)) return;\n if (!memoizedFormatDateFull) {\n memoizedFormatDateFull = new Intl.DateTimeFormat('en-US', {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n weekday: 'long',\n timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n });\n }\n\n return memoizedFormatDateFull.format(date);\n}\n\nexport function convertMomentFormat(stringFormat: string) {\n return stringFormat\n .replace(/[d]/g, 'E')\n .replace(/[D]/g, 'd')\n .replace(/[Y]/g, 'y')\n .replace(/[l]/g, 'P')\n .replace(/[W]/g, 'I');\n}\n\nexport function stringToDate(date: string | null | void): Date | undefined {\n const isString = typeof date === 'string';\n if (!isString && date && isValidDate(new Date(date || undefined))) {\n date = formatDateISO(date);\n } else if (!date || !isValidDate(new Date(date))) {\n return undefined;\n }\n\n let result: Date;\n const dateParts = date.split(/[\\/\\-]/).map(part => part.padStart(2, '0'));\n const isIsoString = isString && date.length >= 24 && date[10] === 'T';\n const isCompleteDate = dateParts.length === 3;\n const isPartialDate = dateParts.length < 3;\n if (isIsoString) {\n date = date.split('T')[0];\n result = new Date(date);\n } else if (isCompleteDate) {\n const isStandardSlashDate = date.includes('/') && dateParts[2].length === 4;\n\n // Reorder mm/dd/yyyy dates for ISO formatting\n // [mm, dd, yyyy] -> [yyyy, mm, dd]\n if (isStandardSlashDate) dateParts.unshift(dateParts.pop());\n\n result = new Date(Date.UTC(parseInt(dateParts[0]), parseInt(dateParts[1]) - 1, parseInt(dateParts[2])));\n } else if (isPartialDate) {\n const now = new Date();\n\n let yearNumber: number;\n let monthNumber: string;\n let dayNumber: string;\n switch (dateParts.length) {\n case 1:\n yearNumber = now.getFullYear();\n monthNumber = dateParts[0];\n dayNumber = '01';\n break;\n\n case 2:\n yearNumber = now.getFullYear();\n monthNumber = dateParts[0];\n dayNumber = dateParts[1];\n break;\n }\n\n result = new Date(`${yearNumber}-${monthNumber}-${dayNumber}`);\n }\n\n if (!isValidDate(result)) return undefined;\n\n // result = setHours(result, 0);\n result = removeTimezoneOffset(result);\n\n return isValidDate(result) ? result : undefined;\n}\n\nexport function removeTimezoneOffset(date: Date) {\n const timeZoneOffset = date.getTimezoneOffset();\n // Minutes compensation for some timezones like India, Central Australia and etc use GMT+5:30, GMT+9:30\n return setMinutes(date, timeZoneOffset + Math.abs(timeZoneOffset % 60));\n}\n\nexport function stringArrayToDate(dateArray: string[]): Date[] {\n if (!Array.isArray(dateArray) || dateArray.length === 0) {\n return [];\n }\n return dateArray.map(date => stringToDate(date));\n}\n\nexport function setupMonthYear(value: Date | undefined = new Date()): ISelectedMonthYear {\n return {\n monthIndex: value.getMonth(),\n selectedYear: value.getFullYear(),\n };\n}\n\nexport function validateInput(\n input: string = '',\n validDays: number[] = [],\n validDates: string[] = [], // white list\n invalidDates: string[] = [], // black list\n startDate: string,\n endDate: string,\n formatString: string = 'mm/dd/yyyy',\n assume: string\n): InputValidation {\n let isValid: boolean = true;\n let isAvailable: boolean = false;\n let messageType: string = 'info';\n let message: string = `${loc('tecton.element.calendar.hint.format')}: ${formatString}`;\n if (!input) {\n return { isValid, inputDate: new Date(''), isAvailable, messageType, message };\n }\n\n const inputDate = buildInputDate(input, assume);\n const month = inputDate.getMonth() + 1;\n const date = inputDate.getDate();\n const year = inputDate.getFullYear();\n const calendarPosition = [month, date, year];\n\n if (isValidDate(inputDate)) {\n const monthName = getMonths()[inputDate.getMonth()];\n\n if (input.length === 10) {\n isValid = true;\n messageType = null;\n message = null;\n }\n\n isAvailable = validDays.includes(inputDate.getDay());\n const isoString = formatDateISO(inputDate);\n\n if (isAvailable) {\n const isNotValidDate = validDates.length && !validDates.includes(isoString);\n const isInvalidDate = invalidDates.length && invalidDates.includes(isoString);\n const isBeforeStartDate = startDate && startDate > isoString;\n const isAfterEndDate = endDate && endDate < isoString;\n\n if (isNotValidDate || isInvalidDate || isBeforeStartDate || isAfterEndDate) {\n isAvailable = false;\n }\n }\n\n if (input.length >= 5 && !isAvailable) {\n isValid = false;\n messageType = 'error';\n const isInvalid = !monthName || !date || !year;\n message = isInvalid\n ? `${loc('tecton.element.calendar.hint.invalidDate')}: ${formatString}`\n : loc('tecton.element.calendar.hint.notAvailableDate', [formatDateLong(inputDate)]);\n }\n } else {\n isValid = false;\n messageType = 'error';\n message = `${loc('tecton.element.calendar.hint.invalidDate')}: ${formatString}`;\n }\n\n return {\n isValid,\n messageType,\n message,\n inputDate,\n isAvailable,\n calendarPosition,\n };\n}\n\nexport function buildInputDate(input: string, assume: string) {\n const now = new Date();\n // eslint-disable-next-line prefer-const\n let [month, day, year] = input.split('/');\n if (month === '0') month = '01';\n if (day === '0') day = '01';\n if (input.length === 10) {\n return new Date(input);\n } else if (month && day && Number(day) > 0) {\n const twoDigitDay = Number(day) < 10 ? `0${Number(day)}` : day;\n const fourDigitYear = !year || year.length < 4 ? assumeYear(month, day, assume) : year;\n return new Date(`${month}/${twoDigitDay}/${fourDigitYear}`);\n } else if (month) {\n return new Date(`${month}/01/${now.getFullYear()}`);\n }\n}\n\nfunction assumeYear(month: string, day: string, assume: string): string {\n const monthDay = `${month}/${day}`;\n const now = new Date();\n const mm: string = now.getMonth() < 9 ? `0${now.getMonth() + 1}` : `${now.getMonth() + 1}`;\n const dd: string = now.getDate() < 10 ? `0${now.getDate()}` : `${now.getDate()}`;\n const nowLocal = `${mm}/${dd}/${now.getFullYear()}`;\n let assumedYear = now.getFullYear();\n if (assume === 'future' && nowLocal.slice(0, 5) > monthDay) {\n assumedYear = now.getFullYear() + 1;\n } else if (assume === 'past' && nowLocal.slice(0, 5) < monthDay) {\n assumedYear = now.getFullYear() - 1;\n }\n return assumedYear.toString();\n}\n\nexport function handleMissingZeros(input): string {\n if (!input) {\n return '';\n }\n if (input.match(/^[1-9]\\/$/)) {\n return `0${input}/`;\n } else if (input.match(/^[0-9]{2}\\/[1-9]{1}\\/$/)) {\n const sp = input.split('/');\n return `${sp[0]}/0${sp[1]}/`;\n }\n return input;\n}\n\nexport function reorderDateString(input: string): string {\n const dateParts = (input || '').split('-');\n if (dateParts.length !== 3) return '';\n return `${dateParts[1]}/${dateParts[2]}/${dateParts[0]}`;\n}\n\nexport function firstDayOfWeekInMonth(month: number, year: number): number {\n return new Date(year, month, 1, 1, 1, 1, 1).getDay();\n}\n\nexport function getDays(): string[] {\n return [\n loc('tecton.element.calendar.days.short.Sunday'),\n loc('tecton.element.calendar.days.short.Monday'),\n loc('tecton.element.calendar.days.short.Tuesday'),\n loc('tecton.element.calendar.days.short.Wednesday'),\n loc('tecton.element.calendar.days.short.Thursday'),\n loc('tecton.element.calendar.days.short.Friday'),\n loc('tecton.element.calendar.days.short.Saturday'),\n ];\n}\n\nexport function getDaysOfWeek(): string[] {\n return [\n loc('tecton.element.calendar.days.Sunday'),\n loc('tecton.element.calendar.days.Monday'),\n loc('tecton.element.calendar.days.Tuesday'),\n loc('tecton.element.calendar.days.Wednesday'),\n loc('tecton.element.calendar.days.Thursday'),\n loc('tecton.element.calendar.days.Friday'),\n loc('tecton.element.calendar.days.Saturday'),\n ];\n}\n\nexport function getMonths(): string[] {\n return [\n loc('tecton.element.calendar.months.January'),\n loc('tecton.element.calendar.months.February'),\n loc('tecton.element.calendar.months.March'),\n loc('tecton.element.calendar.months.April'),\n loc('tecton.element.calendar.months.May'),\n loc('tecton.element.calendar.months.June'),\n loc('tecton.element.calendar.months.July'),\n loc('tecton.element.calendar.months.August'),\n loc('tecton.element.calendar.months.September'),\n loc('tecton.element.calendar.months.October'),\n loc('tecton.element.calendar.months.November'),\n loc('tecton.element.calendar.months.December'),\n ];\n}\n","import { firstDayOfWeekInMonth } from './q2-calendar-helpers';\nimport { getDaysInMonth, isSameDay, isBefore, isAfter, isValid as isValidDate } from 'date-fns';\nimport { CalendarDay, DateEmpty, Year, IDateValidators, ISelectedMonthYear } from './q2-calendar-types';\n\n// Validation Helpers\nexport type DateList = CalendarDay[];\nexport type IsValid = boolean;\nexport type IsActivityDate = boolean;\nexport type DateValidation = (date: Date) => IsValid;\n\nexport function generateDatesFromMonthYear(month: number, year: Year): Date[] {\n const daysInMonth = getDaysInMonth(new Date(year, month));\n\n return [...Array(daysInMonth).keys()].reduce((acc, stepIndex) => {\n acc.push(new Date(year, month, stepIndex + 1));\n return acc;\n }, []);\n}\n\nexport function getValidDaysOfWeek(checksum: number = 127): number[] {\n /* tslint:disable:no-bitwise */\n const sunValid = checksum & 1;\n const monValid = checksum & 2;\n const tuesValid = checksum & 4;\n const wedsValid = checksum & 8;\n const thursValid = checksum & 16;\n const friValid = checksum & 32;\n const satValid = checksum & 64;\n /* tslint:enable:no-bitwise */\n const ret = [];\n\n if (checksum <= 0) return ret;\n if (sunValid) ret.push(0);\n if (monValid) ret.push(1);\n if (tuesValid) ret.push(2);\n if (wedsValid) ret.push(3);\n if (thursValid) ret.push(4);\n if (friValid) ret.push(5);\n if (satValid) ret.push(6);\n\n return ret;\n}\n\nexport function validateAgainstChecksum(validDaysOfWeek: number[], newDate: Date): IsValid {\n return validDaysOfWeek.includes(newDate.getDay());\n}\n\nexport function validateAgainstBlacklist(invalidDates: Date[], newDate: Date): IsValid {\n return !validateAgainstWhitelist(invalidDates, newDate);\n}\n\nexport function validateAgainstWhitelist(validDates: Date[], newDate: Date): IsValid {\n return validDates.some(validDate => isSameDay(validDate, newDate));\n}\n\nexport function buildDates(\n validDaysOfWeek: number[],\n validDates: Date[],\n invalidDates: Date[],\n selectedMonthYear: ISelectedMonthYear,\n currentSelection: Date | undefined,\n dateValidators: IDateValidators,\n typedValue: string\n): DateList {\n const validationFns = [baseValidation.bind(null, dateValidators, new Date())];\n if (validDates?.length) {\n validationFns.push(validateAgainstWhitelist.bind(null, validDates));\n } else {\n validationFns.push(validateAgainstChecksum.bind(null, validDaysOfWeek));\n }\n validationFns.push(validateAgainstBlacklist.bind(null, invalidDates));\n\n return generateDateList(selectedMonthYear, currentSelection, dateValidators, validationFns, typedValue);\n}\n\nexport function generateDateList(\n { monthIndex, selectedYear }: ISelectedMonthYear,\n currentSelection: Date | undefined,\n dateValidators: IDateValidators,\n validationFns: DateValidation[],\n typedValue: string\n): DateList {\n const isIncompleteDate = !isValidDate(new Date(typedValue));\n const datesInMonth = generateDatesFromMonthYear(monthIndex, selectedYear).map((dayInMonth, dateIndex) => {\n const isInvalid = validationFns.some(fn => !fn(dayInMonth));\n const dayState = getDayState(dayInMonth, dateValidators, currentSelection);\n const classList = generateClassesForCalDay({\n ...dayState,\n isInvalid,\n isIncompleteDate,\n });\n\n return {\n ...dayState,\n isValid: !isInvalid,\n date: dayInMonth,\n integer: dateIndex + 1,\n isEmpty: false,\n isActivity: false,\n classList,\n };\n });\n\n const startOfMonthEmpties = addEmptiesMonthStart(firstDayOfWeekInMonth(monthIndex, selectedYear));\n const endOfMonthEmpties = addEmptiesMonthEnd((startOfMonthEmpties.length + datesInMonth.length) % 7);\n\n return [...startOfMonthEmpties, ...datesInMonth, ...endOfMonthEmpties] as CalendarDay[];\n}\n\nexport function baseValidation(dateValidators: IDateValidators, now: Date, newDate: Date): boolean {\n const isNewDateBeforeStartDate = isAfter(dateValidators?.startDate, newDate);\n const isNewDateAfterEndDate = isBefore(dateValidators?.endDate, newDate);\n const isNowAfterCutoffTime = isSameDay(now, newDate) && isAfter(now, dateValidators?.cutOffTime);\n\n return !(isNewDateBeforeStartDate || isNowAfterCutoffTime || isNewDateAfterEndDate);\n}\n\nexport function getDayState(dayInMonth: Date, dateValidators: IDateValidators, currentDate: Date | undefined) {\n if (!currentDate) currentDate = new Date();\n const isSelected = currentDate && isSameDay(currentDate, dayInMonth);\n const isToday = isSameDay(dayInMonth, new Date());\n const isStartDate = isSameDay(dayInMonth, dateValidators?.startDate);\n const isEndDate = isSameDay(dayInMonth, dateValidators?.endDate);\n\n return { isSelected, isToday, isStartDate, isEndDate };\n}\n\nexport function generateClassesForCalDay({\n isInvalid,\n isSelected,\n isEndDate,\n isStartDate,\n isToday,\n isIncompleteDate,\n}: {\n isInvalid: boolean;\n isSelected: boolean;\n isEndDate: boolean;\n isStartDate: boolean;\n isToday: boolean;\n isIncompleteDate: boolean;\n}): string {\n const classes = [];\n if (!isInvalid) classes.push('is-valid');\n if (isSelected) classes.push('is-selected');\n if (isEndDate) classes.push('is-end-date');\n if (isStartDate) classes.push('is-start-date');\n if (isToday) classes.push('is-today');\n if (isSelected && isInvalid && !isIncompleteDate) classes.push('is-unavailable');\n\n return classes.join(' ');\n}\n\nexport function addEmptiesMonthStart(monthStartDayOfWeek: number): DateEmpty[] {\n return addEmptyDates(0, monthStartDayOfWeek);\n}\n\nexport function addEmptiesMonthEnd(monthEndDayOfWeek: number): DateEmpty[] {\n if (monthEndDayOfWeek === 0) return [];\n return addEmptyDates(monthEndDayOfWeek, 7);\n}\n\nexport const emptyDate: DateEmpty = {\n date: null,\n integer: null,\n isActivity: false,\n isEmpty: true,\n isValid: false,\n isToday: false,\n isSelected: false,\n isStartDate: false,\n isEndDate: false,\n classList: '',\n};\n\nexport function addEmptyDates(from: number, to: number): DateEmpty[] {\n if (from === 7) from = 0;\n return [...Array(to - from).keys()].map(() => ({ ...emptyDate }) as DateEmpty);\n}\n","@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n display: block;\n}\n\n:host[hidden] {\n display: none;\n}\n\nclick-elsewhere {\n position: relative;\n display: block;\n}\n\nq2-input {\n margin: 0;\n cursor: pointer;\n}\n\nq2-popover {\n --comp-min-tappable-size: 44px;\n --comp-table-border-spacing: 2px;\n --comp-min-tappable-size-and-spacing: calc(var(--comp-min-tappable-size) + var(--comp-table-border-spacing));\n --comp-popover-padding: #{var-list(var-prefixer(calendar-popover-padding), --app-scale-1x, 5px)};\n --comp-min-table-width: calc(var(--comp-min-tappable-size-and-spacing) * 7);\n --comp-table-container-border-spacing: calc(var(--comp-table-border-spacing) * 2);\n --comp-popover-total-padding: calc(var(--comp-popover-padding) * 2);\n\n --tct-popover-min-width: calc(\n var(--comp-min-table-width) + var(--comp-table-container-border-spacing) + var(--comp-popover-total-padding)\n );\n}\n\n.calendar-field-popup {\n padding: var(--comp-popover-padding);\n}\n\n.calendar-label {\n --comp-label-padding: #{var-list(\n --tct-calendar-label-padding,\n unquote('#{var-list(var-prefixer(calendar-label-vertical-padding), --tct-scale-2, --app-scale-2x, 10px)} 0')\n )};\n font-size: var-list(var-prefixer(calendar-label-font-size), 16px);\n flex: 1 1;\n flex-basis: calc(100% - var-list(--tct-btn-icon-width, 44px));\n margin: 0;\n padding: var(--comp-label-padding);\n}\n\n.cal-month-heading {\n padding: 0 0 0.75rem;\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: var-list(var-prefixer(calendar-month-font-size), 16px);\n font-weight: var-list(var-prefixer(calendar-month-font-weight), 600);\n text-align: center;\n}\n\n.cal-month-text {\n min-width: 82px;\n display: inline-block;\n}\n\n.cal-year-text {\n min-width: 50px;\n display: inline-block;\n}\n\ntable {\n width: 100%;\n margin-bottom: 2px;\n text-align: center;\n border-spacing: var(--comp-table-border-spacing);\n}\n\nth {\n font-size: var-list(var-prefixer(calendar-day-heading-font-size), inherit);\n font-weight: var-list(var-prefixer(calendar-day-heading-font-weight), 600);\n width: 14.285714%;\n}\n\ntd {\n height: var(--comp-min-tappable-size);\n cursor: pointer;\n border: var-list(var-prefixer(calendar-day-border), 0);\n border-radius: var-list(var-prefixer(calendar-day-border-radius));\n\n &.is-unavailable {\n border: 1px solid var-list(--tct-input-error-border-color, --const-stoplight-alert, #d20a0a);\n }\n\n &.is-valid:hover {\n border: var-list(var-prefixer(calendar-day-hover-border), var-prefixer(calendar-day-border) 0);\n border-radius: var-list(\n var-prefixer(calendar-day-hover-border-radius),\n var-prefixer(calendar-day-border-radius)\n );\n\n background: var-list(\n --tct-calendar-day-hover-background,\n var-prefixer(calendar-day-hover-bg),\n --tct-gray-14,\n --app-gray14,\n --tct-gray-l4,\n --app-gray-l4,\n #f2f2f2\n );\n color: var-list(var-prefixer(calendar-day-hover-font-color), inherit);\n }\n\n &[aria-hidden],\n &[aria-disabled] {\n pointer-events: none;\n cursor: not-allowed;\n }\n\n &[aria-disabled] {\n opacity: var-list(var-prefixer(calendar-day-disabled-opacity), --app-disabled-opacity, 0.4);\n }\n\n &[aria-selected] {\n border: var-list(var-prefixer(calendar-day-selected-border), var-prefixer(calendar-day-border) 0);\n border-radius: var-list(\n var-prefixer(calendar-day-selected-border-radius),\n var-prefixer(calendar-day-border-radius)\n );\n background: var-list(\n --tct-calendar-day-selected-background,\n var-prefixer(calendar-day-selected-bg),\n --tct-calendar-day-hover-background, \n var-prefixer(calendar-day-hover-bg),\n var-prefixer(gray-14),\n --tct-gray-l4,\n --app-gray-l4,\n #f2f2f2\n );\n color: var-list(\n var-prefixer(calendar-day-selected-font-color),\n var-prefixer(calendar-day-hover-font-color),\n inherit\n );\n box-shadow: 0 0 0 2px\n var-list(\n var-prefixer(calendar-day-selected-outline-color),\n --tct-stoplight-info,\n --const-stoplight-info,\n #0079c1\n );\n \n }\n &[aria-selected]:focus {\n box-shadow: 0 0 0 2px\n var-list(\n var-prefixer(calendar-day-selected-outline-color),\n --tct-stoplight-info,\n --const-stoplight-info,\n #0079c1\n ),\n 0 0 0 4px var(--const-focus-color, #0066cc)\n }\n}\n\n.today-decorator {\n text-transform: uppercase;\n font-weight: 700;\n font-size: 10px;\n height: 12px;\n}\n\n\n.calendar-disclaimer {\n font-size: var-list(\n var-prefixer(calendar-disclaimer-font-size),\n --tct-font-size-small,\n --app-font-size-small,\n 12px\n );\n border-style: solid;\n border-width: var-list(var-prefixer(calendar-disclaimer-border-width), unquote('1px 0 0 0'));\n border-color: var-list(\n var-prefixer(calendar-disclaimer-border-color),\n var-prefixer(gray-13),\n --tct-gray-l3,\n --app-gray-l3,\n #e6e6e6\n );\n padding: var-list(--tct-calendar-disclaimer-padding, --tct-scale-2, --app-scale-2x, 10px);\n text-align: left;\n}\n","import {\n Component,\n ComponentInterface,\n Prop,\n Element,\n State,\n Event,\n EventEmitter,\n Listen,\n Watch,\n Method,\n h,\n} from '@stencil/core';\nimport { ISelectedMonthYear, CalendarDay, IDateValidators } from './q2-calendar-types';\nimport { addDays, isSameDay, format, isValid as isValidDate } from 'date-fns';\nimport {\n stringToDate,\n setupMonthYear,\n getMonths,\n getDays,\n getDaysOfWeek,\n stringArrayToDate,\n convertMomentFormat,\n validateInput,\n handleMissingZeros,\n formatDateISO,\n formatDateShort,\n IMomentLikeObject,\n removeTimezoneOffset,\n reorderDateString,\n formatDateFull,\n} from './q2-calendar-helpers';\nimport { buildDates, getValidDaysOfWeek, DateList } from './q2-calendar-validation';\nimport {\n handleAriaLabel,\n loc,\n overrideFocus,\n isEventFromElement,\n handleRenamedProp,\n waitForNextPaint,\n} from '../../utils';\nimport { IEventDetail } from '../q2-input/q2-input-types';\nimport { Q2InputCustomEvent } from 'src/components';\n\n@Component({ tag: 'q2-calendar', shadow: true, styleUrl: 'q2-calendar.scss' })\nexport class Q2Calendar implements ComponentInterface {\n // #region Own Properties\n\n btnCalendarToggle: HTMLQ2BtnElement;\n btnNextMonth: HTMLQ2BtnElement;\n btnNextYear: HTMLQ2BtnElement;\n btnPrevMonth: HTMLQ2BtnElement;\n btnPrevYear: HTMLQ2BtnElement;\n calendarBody: HTMLDivElement;\n calendarTable: HTMLTableElement;\n controlElement: HTMLQ2InputElement;\n dayAbbrStrings = getDays();\n dayStrings = getDaysOfWeek();\n defaultFormatString = 'mm/dd/yyyy';\n formatModifier: string = 'M/D/YYYY'; // To allow missing leading zero, 4/3/2021 => converts into 04/03/2021\n hintMessageElement: HTMLQ2MessageElement;\n internalError: string = '';\n monthStrings = getMonths();\n popoverElement?: HTMLQ2PopoverElement;\n scheduledAfterRender: (() => void)[] = [];\n selectedMonthYear: ISelectedMonthYear;\n valueOnBlur: string | { toDate(): Date };\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 dateList: CalendarDay[];\n\n @State()\n hintMessage: string = this.defaultHintMessage;\n\n @State()\n hintMessageType: 'info' | 'error' = 'info';\n\n @State()\n keyboardSelection: boolean = false;\n\n @State()\n typedValue: string = '';\n\n // #endregion\n // #region Public Property API\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n ariaLabel: string;\n\n /**\n * Detects the year automatically based on today's date when the user presses the `Escape` key or the `Blur` mouse event occurs.\n * Setting `future` or `past` as the value will increase or decrease the year by one, respectively.\n */\n @Prop({ reflect: true })\n assume: 'current' | 'future' | 'past' = 'current';\n\n /** @deprecated */\n @Prop({ reflect: true })\n buttonLabel: string;\n\n /** A label shown at the top of the popover date picker. */\n @Prop({ reflect: true })\n calendarLabel: string;\n\n /** Display a button in the input field allowing the user to clear their selection. */\n @Prop({ reflect: true })\n clearable: boolean;\n\n /**\n * Specifies a time of day after which a date is no longer valid.\n *\n * @warning\n * Must be a valid ISO date string.\n */\n @Prop({ reflect: true })\n cutoffTime: string;\n\n /**\n * The most concise way to define valid days of the week for calendar. Each day of the week has a checksum value:\n *\n * - Sunday = 1\n * - Monday = 2\n * - Tuesday = 4\n * - Wednesday = 8\n * - Thursday = 16\n * - Friday = 32\n * - Saturday = 64\n *\n * Add the checksum values of your desired valid days together, and set `daysOfWeekChecksum` to that summed value.\n *\n * **Example:**\n * @snippet\n * element.daysOfWeekChecksum = 127 // All days of the week are valid\n * element.daysOfWeekChecksum = 62; // Only weekdays are valid\n * element.daysOfWeekChecksum = 65; // Only Saturday and Sunday are valid\n *\n */\n @Prop({ reflect: true })\n daysOfWeekChecksum: number;\n\n /** Disable the input field. */\n @Prop({ reflect: true })\n disabled: boolean;\n\n /**\n * Text that displays as the placeholder when the field is marked `disabled`.\n * @localizable\n */\n @Prop({ reflect: true })\n disabledMsg: string;\n\n /** Text that appears at the bottom of the popover date picker. */\n @Prop({ reflect: true })\n disclaimer: string;\n\n /**\n * Determines the display format of the date field value.\n *\n * Must follow the [date-fns](https://date-fns.org/v2.28.0/docs/format) token specification.\n */\n @Prop({ reflect: true })\n displayFormat: string;\n\n /**\n * Defines the last selectable date in the date picker popover.\n *\n * @warning\n * Must be a valid ISO date string.\n */\n @Prop({ reflect: true })\n endDate: string;\n\n /**\n * Each item in the `errors` array will appear below the input field when the field is focused and `typeable` is `true`.\n * @localizable\n */\n @Prop({ mutable: true })\n errors: string[];\n\n /** Hide the input field's ` <label> ` element from view. */\n @Prop({ reflect: true, mutable: true })\n hideLabel: boolean;\n\n /**\n * Each item in the `hints` array will appear below the input field when the field is focused and `typeable` is true.\n * @localizable\n */\n @Prop({ mutable: true })\n hints: string[];\n\n /** Show error styles when the calendar is in an errant state. */\n @Prop({ reflect: true, mutable: true })\n invalid: boolean;\n\n /**\n * Defines an explicit date blacklist.\n *\n * @warning\n * Must be a valid ISO date string.\n *\n * @info\n * When explicit date definitions like `invalidDates` is used, other date validity methods like `daysOfWeekChecksum` are overriden.\n */\n @Prop()\n invalidDates: string[];\n\n /** The visible label for the `q2-calendar` input field. */\n @Prop({ reflect: true, mutable: true })\n label: string;\n\n /** @deprecated */\n @Prop()\n onsuccess: (e: CustomEvent) => void;\n\n /** Determine whether the popover is open or closed. */\n @Prop({ reflect: true, mutable: true })\n open: boolean;\n\n /** Appends \"(optional)\" to the label and sets `aria-required=\"false\"`. */\n @Prop({ reflect: true })\n optional: boolean;\n\n /**\n * Text that appears within the input field when it is blurred and empty.\n * Placeholder text disappears when the user focuses on the field and provides input.\n */\n @Prop({ reflect: true })\n placeholder: string;\n\n /** @deprecated */\n @Prop({ reflect: true })\n popDirection: 'up' | 'down';\n\n /** Aligns the popover date picker to the left or right side of the input field. */\n @Prop()\n popoverAlignment: 'left' | 'right';\n\n /**\n * Force the direction of the popover date picker when it opens.\n * If no value is passed, the component will auto-detect the direction based on available space.\n */\n @Prop({ mutable: true })\n popoverDirection: 'up' | 'down';\n\n /** @deprecated */\n @Prop()\n popoverMinHeight: number = 355;\n\n /**\n * Determines the display mode of the popover.\n *\n * Providing a value of `legacy` instructs the popover to use absolute positioning instead of fixed positioning.\n *\n * @info\n * This is a temporary solution to work around styling issues related to using fixed positioning for the popover\n * when nested inside of elements with transform properties. This will be removed once the popover API is available\n * for use.\n */\n @Prop({ mutable: true })\n popoverMode: 'legacy' = null;\n\n /**\n * The field's content is not editable, but the field remains focusable.\n *\n * Appends \"(readonly)\" to the field label. Supersedes `optional` if both are `true`.\n */\n @Prop({ reflect: true })\n readonly: boolean;\n\n /**\n * Defines the first selectabe date in the date picker popover.\n *\n * @warning\n * Must be a valid ISO date string.\n */\n @Prop({ reflect: true })\n startDate: string;\n\n /** The user can type in the field. Only available in desktop browsers. */\n @Prop({ reflect: true })\n typeable: boolean;\n\n /**\n * Defines an explicit date whitelist.\n *\n * @warning\n * Must be a valid ISO date string.\n *\n * @info\n * When explicit date definitions like `validDates` is used, other date validity methods like `daysOfWeekChecksum` are overriden.\n */\n @Prop()\n validDates: string[];\n\n /**\n * The value of the `q2-calendar` element, e.g. the selected date.\n *\n * **How to change or clear the value with javascript:**\n * @snippet\n * // change date\n * element.value = '2022-12-21';\n * // clear date\n * element.value = null;\n */\n @Prop({ mutable: true, reflect: true })\n value: string | { toDate(): Date };\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when a date is selected or typed in the input field.\n * @legacyEvent\n */\n @Event()\n change: EventEmitter<{\n // ISO formatted date\n value: string | null;\n }>;\n\n /**\n * Emitted when an invalid date is entered into the field.\n */\n @Event()\n error: EventEmitter<{ errors: { message: string; errorCode: string }[] }>;\n\n /**\n * Emitted when a valid date is entered or selected.\n */\n @Event()\n success: EventEmitter<{\n // ISO formatted date\n value: string;\n }>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n connectedCallback() {\n this.selectedMonthYear = setupMonthYear(this.dateValue);\n this.dateList = this.buildDateList(this.selectedMonthYear);\n if (this.value && this.isTypeable && !this.typedValue) {\n this.typedValue = reorderDateString(this.value as string);\n }\n this.validateDate();\n }\n\n componentWillLoad() {\n this.popDirectionHandler();\n handleAriaLabel(this);\n }\n\n componentDidLoad(): void {\n overrideFocus(this.hostElement);\n }\n\n componentDidRender() {\n setTimeout(() => {\n this.scheduledAfterRender.forEach(fn => fn());\n this.scheduledAfterRender = [];\n }, 25);\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('change')\n defaultChangeHandler(event: CustomEvent) {\n if (event.target === this.hostElement && !this.hostElement.onchange && !!event.detail) {\n this.value = event.detail.value;\n }\n }\n\n @Listen('clear')\n handleClear() {\n this.change.emit({ value: null });\n this.value = null;\n this.typedValue = '';\n }\n\n @Listen('error')\n defaultErrorHandler(event: CustomEvent) {\n if (event.target === this.hostElement && !this.hostElement.onerror) {\n if (this.hintMessageType === 'error' && this.hintMessage) {\n this.internalError = this.hintMessage;\n } else {\n this.internalError = loc('tecton.element.calendar.hint.invalidDate');\n }\n }\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.controlElement.shadowRoot.querySelector<HTMLElement>('.input-field').focus();\n }\n\n @Listen('popoverStateChanged')\n popoverStateHandler({ detail: { open } }: CustomEvent<{ open: boolean }>) {\n if (this.open !== open) this.open = open;\n }\n\n @Listen('success')\n defaultSuccessHandler(event: CustomEvent) {\n if (event.target !== this.hostElement) {\n return;\n }\n\n if (typeof this.onsuccess === 'function') {\n this.onsuccess(event);\n } else {\n this.internalError = '';\n if (this.hintMessageType === 'error' && this.hintMessage) {\n this.hintMessage = null;\n this.hintMessageType = null;\n this.invalid = false;\n }\n }\n }\n\n // #endregion\n // #region Public Methods API\n\n /**\n * Emulates clicking the `<input>` to hide the popover if it is visible.\n *\n * @testOnly\n */\n @Method()\n async closePopover() {\n if (!this.open) return;\n this._togglePopover();\n }\n\n /**\n * Emulates clicking the `<input>` to display the popover if it is hidden.\n *\n * @testOnly\n */\n @Method()\n async openPopover() {\n if (this.open) return;\n this._togglePopover();\n }\n\n /**\n * Emulates clicking the `<input>` to display the popover, moving to the correct month and year, and clicking the\n * provided date.\n *\n * While a `string` value can be passed, we recommended passing a `Date` object. If the value is invalid, the method\n * will not select the date.\n *\n * @testOnly\n */\n @Method()\n async setValue(value: string | Date) {\n const date = typeof value === 'string' ? stringToDate(value) : value;\n if (!isValidDate(date)) return;\n\n await this.openPopover();\n await waitForNextPaint();\n\n this.goToMonthYear(date.getMonth(), date.getFullYear());\n await waitForNextPaint();\n const tableCell = this.calendarTable?.querySelector<HTMLTableCellElement>(\n `td[data-date=\"${formatDateISO(date)}\"]`\n );\n tableCell?.click();\n }\n\n /**\n * Emulates focusing the `<input>`, entering the provided value, and emitting an `input` event.\n *\n * While a `string` value can be passed, we recommended passing a `Date` object. If the value is invalid, the method\n * will not select the date.\n *\n * @warning\n * Only applicable when the input is typeable.\n *\n * @testOnly\n */\n @Method()\n async typeValue(value: string | Date) {\n if (!this.typeable) return;\n\n const date = typeof value === 'string' ? stringToDate(value) : value;\n const formattedDate = formatDateShort(date);\n if (!isValidDate(date)) return;\n\n const { innerInputField, controlElement } = this;\n innerInputField.focus();\n innerInputField.dispatchEvent(new FocusEvent('focus'));\n innerInputField.value = formattedDate;\n innerInputField.dispatchEvent(new InputEvent('input'));\n controlElement.dispatchEvent(new KeyboardEvent('keyup'));\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('ariaLabel')\n ariaLabelObserver() {\n handleAriaLabel(this);\n }\n\n @Watch('cutoffTime')\n cutoffTimeObserver() {\n this.dateList = this.buildDateList(this.selectedMonthYear);\n this.validateDate();\n }\n\n @Watch('daysOfWeekChecksum')\n daysOfWeekChecksumObserver() {\n this.dateList = this.buildDateList(this.selectedMonthYear);\n this.validateDate();\n }\n\n @Watch('endDate')\n endDateObserver() {\n this.dateList = this.buildDateList(this.selectedMonthYear);\n this.validateDate();\n }\n\n @Watch('invalidDates')\n invalidDatesObserver() {\n this.dateList = this.buildDateList(this.selectedMonthYear);\n this.validateDate();\n }\n\n @Watch('popDirection')\n popDirectionHandler() {\n handleRenamedProp(this, 'popDirection', 'popoverDirection');\n }\n\n @Watch('startDate')\n startDateObserver() {\n this.dateList = this.buildDateList(this.selectedMonthYear);\n this.validateDate();\n }\n\n @Watch('typeable')\n typeableChanged() {\n this.valueObserver(this.value);\n }\n\n @Watch('validDates')\n validDatesObserver() {\n this.dateList = this.buildDateList(this.selectedMonthYear);\n this.validateDate();\n }\n\n @Watch('value')\n valueObserver(newValue: string | IMomentLikeObject) {\n // resetting by empty string\n if (newValue === '') {\n this.value = undefined;\n this.setHints({ isValid: true, message: this.defaultHintMessage, messageType: 'info' });\n return;\n }\n const isMoment = newValue && typeof newValue !== 'string' && 'toDate' in newValue;\n const newDate = isMoment ? (newValue as IMomentLikeObject).toDate() : stringToDate(newValue as string);\n const shortFormattedValue = formatDateShort(newDate);\n if (this.isTypeable) {\n this.typedValue = shortFormattedValue;\n } else {\n this.controlElement.value = shortFormattedValue;\n this.selectedMonthYear = setupMonthYear(newDate);\n this.dateList = this.buildDateList(this.selectedMonthYear);\n this.validateDate();\n }\n\n // reset hint when value is cleared\n if (this.invalid) return;\n\n if (shortFormattedValue) {\n this.setHints({\n isValid: true,\n message: null,\n messageType: null,\n });\n } else {\n this.setHints({ isValid: true, message: this.defaultHintMessage, messageType: 'info' });\n }\n }\n\n // #endregion\n // #region Local Methods\n\n get canClear() {\n if (this.isTypeable) {\n return this.clearable && !!this.typedValue;\n } else {\n return this.clearable && !!this.value;\n }\n }\n\n get computedPlaceholder(): string {\n if (this.disabled && this.disabledMsg) {\n return loc(this.disabledMsg);\n }\n\n if (this.buttonLabel && (this.disabled || this.placeholder)) {\n return loc(this.buttonLabel);\n }\n\n return (this.placeholder && loc(this.placeholder)) || '';\n }\n\n get currentWeeks() {\n const weeks = this.dateList.reduce<CalendarDay[][]>((accum, item, index) => {\n const chunkIndex = Math.floor(index / 7);\n\n if (!accum[chunkIndex]) {\n accum[chunkIndex] = [];\n }\n\n accum[chunkIndex].push(item);\n\n return accum;\n }, []);\n\n return weeks;\n }\n\n get dateValidators(): IDateValidators {\n const ct = new Date(this.cutoffTime || ''); // should fallback to InvalidDate\n return {\n startDate: stringToDate(this.startDate),\n endDate: stringToDate(this.endDate),\n cutOffTime: isValidDate(ct) ? ct : undefined,\n };\n }\n\n get dateValue(): Date | undefined {\n if (this.isTypeable) {\n return stringToDate(this.typedValue);\n } else {\n let { value } = this;\n const isMoment = value && typeof value !== 'string' && 'toDate' in value;\n if (isMoment) return (value as IMomentLikeObject).toDate();\n\n // stringified moment value assigned in html template e.g.) handlebar\n const isMomentString =\n typeof value === 'string' && value.split(' ').length === 6 && /GMT-\\d{4}/g.test(value);\n if (isMomentString) {\n value = formatDateISO(value as string);\n }\n\n return stringToDate(value as string);\n }\n }\n\n get defaultHintMessage() {\n return this.typeable\n ? loc('tecton.element.calendar.hint.format') + ': ' + this.defaultFormatString\n : loc('tecton.element.calendar.hint.select');\n }\n\n get errorList() {\n const { errors, internalError, invalid } = this;\n let list = [];\n if (internalError) {\n list = [internalError];\n }\n if (Array.isArray(errors) && errors.length) {\n list = errors\n .filter(error => !!error)\n .map(error => loc(error))\n .concat(list);\n } else if (!internalError && invalid) {\n return ['tecton.element.calendar.invalid'];\n }\n return list;\n }\n\n get formattedValue() {\n const { typedValue, dateValue, displayFormat, isTypeable } = this;\n if (isTypeable) return typedValue;\n\n if (dateValue === undefined) return '';\n if (displayFormat) return format(dateValue, convertMomentFormat(displayFormat));\n\n return new Intl.DateTimeFormat('en-US', {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n }).format(dateValue);\n }\n\n get hintList() {\n const { hints, hintMessageType, hintMessage } = this;\n if (Array.isArray(hints) && hints.length) return hints.filter(hint => !!hint).map(hint => loc(hint));\n if (hintMessageType === 'info' && hintMessage) return [hintMessage];\n return [];\n }\n\n get innerInputContainer(): HTMLElement {\n return this.controlElement?.shadowRoot?.querySelector('.input-container');\n }\n\n get innerInputField(): HTMLInputElement | HTMLButtonElement {\n return this.controlElement?.shadowRoot?.querySelector('.input-field');\n }\n\n get isTypeable(): boolean {\n return this.typeable;\n }\n\n get selectedDate() {\n const selectedCell = this.calendarBody?.querySelector<HTMLTableCellElement>('[aria-selected=\"true\"]');\n return selectedCell ? removeTimezoneOffset(new Date(selectedCell.dataset.date)) : null;\n }\n\n _togglePopover() {\n const toggleElement = this.typeable ? this.btnCalendarToggle : this.innerInputField;\n toggleElement?.click();\n toggleElement?.focus();\n toggleElement.dispatchEvent(new FocusEvent('focus'));\n }\n\n activateDay(date: Date) {\n this.goToMonthYear(date.getMonth(), date.getFullYear());\n this.scheduledAfterRender.push(() => this.focusDay(date));\n }\n\n buildDateList(monthYear: ISelectedMonthYear): DateList {\n const invalidDates = stringArrayToDate(this.invalidDates);\n const validDaysOfWeek = getValidDaysOfWeek(this.daysOfWeekChecksum);\n const validDates = stringArrayToDate(this.validDates);\n return buildDates(\n validDaysOfWeek,\n validDates,\n invalidDates,\n monthYear,\n this.dateValue,\n this.dateValidators,\n this.typedValue\n );\n }\n\n calendarDays() {\n return (\n <table\n role=\"grid\"\n aria-labelledby=\"table-label\"\n ref={ref => (this.calendarTable = ref)}\n >\n <thead>\n <tr>\n {[...Array(7).keys()].map(index => (\n <th\n scope=\"col\"\n aria-label={this.dayStrings[index]}\n >\n {this.dayAbbrStrings[index]}\n </th>\n ))}\n </tr>\n </thead>\n <tbody\n onClick={this.onDateSelection}\n onKeyDown={this.onDateKeydown}\n ref={elm => (this.calendarBody = elm)}\n test-id=\"calendarTableBody\"\n >\n {this.currentWeeks.map(week => (\n <tr>\n {week.map(day => {\n let ariaLabel = '';\n if (day.isToday) ariaLabel = `${loc('tecton.element.calendar.today')}, `;\n ariaLabel += formatDateFull(day.date);\n if (day.isSelected) ariaLabel += ` (${loc('tecton.element.calendar.selected')})`;\n return (\n <td\n class={day.classList}\n aria-hidden={day.isEmpty ? 'true' : undefined}\n tabindex={day.isSelected ? 0 : -1}\n role={day.isSelected ? 'gridcell' : undefined}\n aria-selected={day.isSelected ? 'true' : undefined}\n aria-disabled={day.isValid ? undefined : 'true'}\n data-day={day.integer || undefined}\n data-date={day.date ? formatDateISO(day.date) : undefined}\n >\n {day?.isToday && (\n <div\n class=\"today-decorator\"\n aria-hidden=\"true\"\n >\n {loc('tecton.element.calendar.today')}\n </div>\n )}\n <div aria-label={ariaLabel}>{day?.integer ?? ''}</div>\n </td>\n );\n })}\n </tr>\n ))}\n </tbody>\n </table>\n );\n }\n\n calendarPopover() {\n const { monthIndex, selectedYear } = this.selectedMonthYear;\n return (\n <div\n class=\"calendar-field-popup\"\n onKeyUp={this.onPopupKeyup}\n >\n {this.calendarLabel && <p class=\"calendar-label\">{loc(this.calendarLabel)}</p>}\n <div class=\"cal-month-heading\">\n <q2-btn\n label={loc('tecton.element.calendar.previousMonth')}\n hide-label\n ref={elm => (this.btnPrevMonth = elm)}\n class=\"cal-nav-btn prev-month\"\n test-id=\"previousMonthButton\"\n onClick={() => this.goToMonthYear(monthIndex - 1, selectedYear)}\n >\n <q2-icon type=\"chevron-left\" />\n </q2-btn>\n <span class=\"cal-month-text\">{this.monthStrings[monthIndex]}</span>\n <q2-btn\n label={loc('tecton.element.calendar.nextMonth')}\n hide-label\n class=\"cal-nav-btn next-month\"\n ref={elm => (this.btnNextMonth = elm)}\n test-id=\"nextMonthButton\"\n onClick={() => this.goToMonthYear(monthIndex + 1, selectedYear)}\n >\n <q2-icon type=\"chevron-right\" />\n </q2-btn>\n <q2-btn\n label={loc('tecton.element.calendar.previousYear')}\n hide-label\n class=\"cal-nav-btn prev-year\"\n ref={elm => (this.btnPrevYear = elm)}\n test-id=\"previousYearButton\"\n onClick={() => this.goToMonthYear(monthIndex, selectedYear - 1)}\n >\n <q2-icon type=\"chevron-left\" />\n </q2-btn>\n <span class=\"cal-year-text\">{this.selectedMonthYear.selectedYear}</span>\n <q2-btn\n label={loc('tecton.element.calendar.nextYear')}\n hide-label\n class=\"cal-nav-btn next-year\"\n ref={elm => (this.btnNextYear = elm)}\n test-id=\"nextYearButton\"\n onClick={() => this.goToMonthYear(monthIndex, selectedYear + 1)}\n onKeyDown={this.onHeaderControlKeydown}\n >\n <q2-icon type=\"chevron-right\" />\n </q2-btn>\n </div>\n <div\n class=\"sr\"\n aria-live=\"polite\"\n id=\"table-label\"\n >\n {`${this.monthStrings[monthIndex]} ${selectedYear}`}\n </div>\n {this.calendarDays()}\n {this.disclaimer && <div class=\"calendar-disclaimer\">{loc(this.disclaimer)}</div>}\n <q2-btn\n class=\"sr refocus-popup\"\n onFocus={this.onRefocus}\n />\n </div>\n );\n }\n\n checkActiveCellForBlankness() {\n const activeElement = this.hostElement.shadowRoot.activeElement;\n if (!activeElement || activeElement.tagName !== 'TD' || !activeElement.hasAttribute('aria-hidden')) return;\n\n const { calendarBody } = this;\n const calendarCells = Array.from(calendarBody.querySelectorAll<Element>('td'));\n const indexOfCell = Array.from(calendarCells).indexOf(activeElement);\n\n const dayToFocus =\n indexOfCell < 15 ? 1 : calendarCells.filter(cell => !cell.hasAttribute('aria-hidden')).length;\n\n this.focusDay(this.generateDateFromDay(dayToFocus));\n }\n\n closeCalendar = () => {\n if (!this.open) return;\n this.open = false;\n this.focusInput();\n };\n\n async focusDay(date: Date) {\n if (!date) return;\n await waitForNextPaint();\n this.calendarBody.querySelector<HTMLElement>(`td[data-day=\"${date.getDate()}\"]`)?.focus();\n }\n\n focusInput() {\n this.controlElement?.focus();\n }\n\n generateDateFromDay(day: number) {\n const { monthIndex, selectedYear } = this.selectedMonthYear;\n return new Date(selectedYear, monthIndex, day);\n }\n\n goToMonthYear = (monthIndex: number, year: number) => {\n if (monthIndex < 0) {\n monthIndex = 11;\n year--;\n } else if (monthIndex > 11) {\n monthIndex = 0;\n year++;\n }\n this.selectedMonthYear = {\n monthIndex,\n selectedYear: year,\n };\n this.dateList = this.buildDateList(this.selectedMonthYear);\n\n this.scheduledAfterRender.push(() => this.checkActiveCellForBlankness());\n };\n\n hintField() {\n if (!this.hintMessage) return;\n\n return (\n <q2-message\n class=\"calendar-hint sr\"\n ref={el => (this.hintMessageElement = el)}\n type={this.hintMessageType}\n >\n {this.hintMessage}\n </q2-message>\n );\n }\n\n inputField() {\n const { isTypeable } = this;\n return (\n <q2-input\n ref={el => (this.controlElement = el)}\n class=\"calendar-input-field\"\n value={this.formattedValue}\n label={loc(this.label)}\n hideLabel={this.hideLabel}\n disabled={!!this.disabled}\n readonly={!!this.readonly}\n clearable={this.canClear}\n placeholder={this.computedPlaceholder}\n optional={!!this.optional}\n ariaExpanded={`${!!this.open}`}\n hints={this.hintList}\n errors={this.errorList}\n onClick={isTypeable ? undefined : this.onInputClick}\n onChange={this.onInputChange}\n onInput={this.onInputInput}\n onKeyDown={this.onInputKeydown}\n onKeyUp={this.onInputKeyup}\n onBlur={this.onInputBlur}\n onFocus={this.onInputFocus}\n icon-right={isTypeable ? undefined : 'calendar'}\n format-modifier={isTypeable ? this.formatModifier : this.displayFormat || this.formatModifier}\n type=\"date\"\n hide-messages={!isTypeable}\n test-id=\"inputAndCalendarToggle\"\n _role=\"combobox\"\n _preventEntry={!isTypeable}\n >\n {isTypeable && (\n <q2-btn\n ref={el => (this.btnCalendarToggle = el)}\n slot=\"input-right\"\n onClick={this.onInputClick}\n test-id=\"calendarToggle\"\n label=\"tecton.element.calendar.toggleAriaLabel\"\n hide-label\n >\n <q2-icon type=\"calendar\" />\n </q2-btn>\n )}\n </q2-input>\n );\n }\n\n onClickElsewhere = (event: CustomEvent) => {\n const target = event.target as HTMLClickElsewhereElement;\n if (target.localName === 'click-elsewhere') {\n event.stopPropagation();\n this.closeCalendar();\n }\n };\n\n onDateKeydown = (event: KeyboardEvent) => {\n const { monthIndex, selectedYear } = this.selectedMonthYear;\n const currentDay = parseInt((event.target as HTMLElement).dataset.day);\n const currentDate = this.generateDateFromDay(currentDay);\n\n switch (event.key) {\n case 'ArrowUp':\n event.preventDefault();\n this.activateDay(addDays(currentDate, -7));\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n this.activateDay(addDays(currentDate, 7));\n break;\n\n case 'ArrowRight':\n event.preventDefault();\n this.activateDay(addDays(currentDate, 1));\n break;\n\n case 'ArrowLeft':\n event.preventDefault();\n this.activateDay(addDays(currentDate, -1));\n break;\n\n case 'PageUp':\n event.preventDefault();\n if (event.shiftKey) this.goToMonthYear(monthIndex, selectedYear - 1);\n else this.goToMonthYear(monthIndex - 1, selectedYear);\n break;\n\n case 'PageDown':\n event.preventDefault();\n if (event.shiftKey) this.goToMonthYear(monthIndex, selectedYear + 1);\n else this.goToMonthYear(monthIndex + 1, selectedYear);\n break;\n\n case 'Home':\n event.preventDefault();\n this.activateDay(addDays(currentDate, -currentDate.getDay()));\n break;\n\n case 'End':\n event.preventDefault();\n this.activateDay(addDays(currentDate, 6 - currentDate.getDay()));\n break;\n\n case 'Escape':\n event.preventDefault();\n this.closeCalendar();\n this.focusInput();\n break;\n\n case 'Enter':\n event.preventDefault();\n if (!this.dateList.find(({ date }) => isSameDay(date, currentDate)).isValid) return;\n this.selectDate(currentDate);\n this.closeCalendar();\n this.focusInput();\n break;\n\n case ' ':\n event.preventDefault();\n if (!this.dateList.find(({ date }) => isSameDay(date, currentDate)).isValid) return;\n this.selectDate(currentDate);\n this.closeCalendar();\n this.focusInput();\n break;\n }\n };\n\n onDateSelection = (event: MouseEvent) => {\n const dateCell = (event.target as HTMLElement).closest<HTMLElement>('td:not([aria-hidden])');\n if (!dateCell) return;\n const clickedDate = removeTimezoneOffset(new Date(dateCell.dataset.date));\n this.selectDate(clickedDate);\n this.closeCalendar();\n };\n\n onHeaderControlKeydown = (event: KeyboardEvent) => {\n const currentDate = this.generateDateFromDay(1);\n const hasSelectedCell = this.calendarBody?.querySelector<HTMLTableCellElement>('[aria-selected=\"true\"]');\n\n if (event.key === 'Tab' && !hasSelectedCell) {\n event.preventDefault();\n this.activateDay(currentDate);\n }\n };\n\n onInputBlur = () => {\n if (!this.isTypeable) return;\n\n const validDays = getValidDaysOfWeek(this.daysOfWeekChecksum);\n const { typedValue } = this;\n const { isValid, inputDate, isAvailable } = validateInput(\n this.typedValue,\n validDays,\n this.validDates,\n this.invalidDates,\n this.startDate,\n this.endDate,\n this.defaultFormatString,\n this.assume\n );\n\n if (!typedValue && inputDate?.toString() === 'Invalid Date') {\n // initial/clear state\n this.setHints({ isValid: true, message: this.defaultHintMessage, messageType: 'info' });\n } else if (\n isValid ||\n (typedValue &&\n typedValue.length > 4 && // at least mm/dd provided\n inputDate &&\n isValidDate(inputDate) &&\n isAvailable)\n ) {\n this.setCompleteInput(inputDate);\n } else if (this.value) {\n this.valueOnBlur = this.value;\n this.value = null;\n this.change.emit({ value: null });\n this.typedValue = typedValue;\n }\n };\n\n onInputChange = (event: Event) => {\n event.stopPropagation();\n };\n\n onInputClick = () => {\n if (this.disabled) return;\n this.toggleCalendar();\n };\n\n onInputFocus = (event: FocusEvent) => {\n if (!this.isTypeable) return;\n if (event.target === this.controlElement) {\n if (this.valueOnBlur && !this.value) {\n const tmpTypedValue = this.typedValue;\n this.value = this.valueOnBlur;\n this.typedValue = tmpTypedValue;\n this.valueOnBlur = null;\n }\n this.closeCalendar();\n }\n };\n\n onInputInput = ({ detail: { value } }: Q2InputCustomEvent<IEventDetail> & InputEvent) => {\n this.typedValue = value;\n };\n\n onInputKeydown = (event: KeyboardEvent) => {\n const { dateValue } = this;\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this.openCalendar();\n this.activateDay(dateValue || new Date());\n break;\n\n case 'Enter':\n case ' ':\n if (this.typeable) break;\n event.preventDefault();\n if (this.open) {\n this.closeCalendar();\n } else {\n this.openCalendar();\n this.activateDay(dateValue || new Date());\n }\n break;\n }\n };\n\n onInputKeyup = (event: KeyboardEvent) => {\n if (this.disabled) {\n return;\n }\n\n switch (event.key) {\n case 'Escape':\n this.onInputBlur();\n this.closeCalendar();\n break;\n }\n\n if (!this.isTypeable) return;\n\n // handle missing zero in month and date\n this.typedValue = handleMissingZeros(this.typedValue);\n const { typedValue } = this;\n const validDays = getValidDaysOfWeek(this.daysOfWeekChecksum);\n const { isValid, message, messageType, inputDate, isAvailable, calendarPosition } = validateInput(\n typedValue,\n validDays,\n this.validDates,\n this.invalidDates,\n this.startDate,\n this.endDate,\n this.defaultFormatString,\n this.assume\n );\n\n if (calendarPosition) {\n const [mm, dd, yyyy] = calendarPosition;\n const date = new Date(yyyy, mm - 1, dd);\n if (isValidDate(date)) {\n this.selectedMonthYear = setupMonthYear(date);\n this.dateList = this.buildDateList(this.selectedMonthYear);\n this.validateDate();\n }\n }\n\n if (event.key === 'Enter') {\n if (\n isValid ||\n (typedValue &&\n typedValue.length > 4 && // at least mm/dd provided\n inputDate &&\n isValidDate(inputDate) &&\n isAvailable)\n ) {\n this.setCompleteInput(inputDate);\n } else if (this.value) {\n this.value = null;\n this.change.emit({ value: null });\n this.typedValue = typedValue;\n }\n\n if (this.keyboardSelection) {\n this.keyboardSelection = false;\n this.closeCalendar();\n } else {\n this.toggleCalendar();\n }\n } else {\n this.setHints({ isValid, message, messageType });\n }\n };\n\n onPopupKeyup = (event: KeyboardEvent) => {\n if (event.key === 'Escape' || event.key === 'Esc') {\n this.onInputBlur();\n this.closeCalendar();\n }\n };\n\n onRefocus = () => {\n this.btnPrevMonth?.dispatchEvent(new FocusEvent('focus'));\n };\n\n openCalendar = () => {\n if (this.readonly || this.open) return;\n this.selectedMonthYear = setupMonthYear(this.dateValue);\n this.dateList = this.buildDateList(this.selectedMonthYear);\n this.open = true;\n };\n\n selectDate = (newDate: Date) => {\n const { isValid } = this.dateList.find(({ date }) => isSameDay(date, newDate));\n if (!isValid) return;\n this.change.emit({ value: formatDateISO(newDate) });\n this.typedValue = formatDateShort(newDate);\n this.invalid = false;\n this.success.emit({ value: formatDateISO(newDate) });\n };\n\n setCompleteInput(inputDate: Date) {\n const formattedDate = formatDateShort(inputDate);\n this.change.emit({ value: formatDateISO(inputDate) });\n this.typedValue = formattedDate;\n this.internalError = null;\n this.setHints({\n isValid: true,\n message: null,\n messageType: null,\n });\n }\n\n setHints({ isValid, message, messageType }) {\n if (message === this.hintMessage) return this.hintMessageElement?.present();\n this.invalid = !isValid;\n this.hintMessage = message;\n this.hintMessageType = messageType;\n if (messageType === 'error' && message) {\n this.internalError = message;\n this.error.emit({\n errors: [\n {\n message,\n errorCode: 'generalInvalid',\n },\n ],\n });\n }\n }\n\n toggleCalendar = () => {\n if (this.readonly) return;\n if (this.open) {\n this.closeCalendar();\n } else {\n this.openCalendar();\n }\n };\n\n validateDate() {\n try {\n if (!!this.value) {\n const { dateValue } = this;\n const month = dateValue?.getMonth() ?? undefined;\n const year = dateValue?.getFullYear() ?? undefined;\n const { monthIndex, selectedYear } = this.selectedMonthYear;\n\n const isSelectedMonthAndYear = month === monthIndex && year === selectedYear;\n let calculationDateList = [];\n\n if (!dateValue) {\n calculationDateList = [];\n } else if (isSelectedMonthAndYear) {\n calculationDateList = this.dateList;\n } else {\n calculationDateList = this.buildDateList({\n monthIndex: month,\n selectedYear: year,\n });\n }\n\n const dateValueDayOfMonth = dateValue?.getDate() ?? undefined;\n const isDateValueInvalid = dateValueDayOfMonth\n ? !calculationDateList.find(({ integer }) => integer === dateValueDayOfMonth).isValid\n : true;\n if (isDateValueInvalid) {\n this.error.emit({\n errors: [\n {\n message: `Value passed is invalid: The date ${this.value} is not valid`,\n errorCode: 'generalInvalid',\n },\n ],\n });\n } else {\n this.success.emit({ value: formatDateISO(dateValue) });\n }\n }\n } catch (error) {\n console.warn('Invalid moment value ', this.dateValue);\n }\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n return (\n <click-elsewhere\n class={this.open ? 'dropdown-open' : undefined}\n onChange={this.onClickElsewhere}\n >\n {this.inputField()}\n <q2-popover\n ref={el => (this.popoverElement = el)}\n controlElement={this.innerInputContainer}\n open={this.open}\n direction={this.popoverDirection}\n minHeight={this.popoverMinHeight}\n align={this.popoverAlignment}\n mode={this.popoverMode || undefined}\n block\n >\n {this.hintField()}\n {this.calendarPopover()}\n </q2-popover>\n </click-elsewhere>\n );\n }\n\n // #endregion\n}\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as t,h as e,F as i,g as s}from"./p-a5f18e27.js";import{w as n,o,i as r,j as a,a as h,l as d}from"./p-15ac45d6.js";const l="*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{display:inline-flex}:host([block]){display:block}click-elsewhere{position:relative;display:block}q2-popover{--tct-popover-min-width:var(--tct-dropdown-width, var(--t-dropdown-width))}";const c=l;const u=class{constructor(e){t(this,e);this.dropdownItemSelector="q2-dropdown-item:not([disabled]):not([separator])";this.closeDropdown=()=>{if(!this.open)return;this.open=false};this.focusFirstItem=async()=>{const t=this.hostElement.querySelector(`${this.dropdownItemSelector}:first-child`);if(!t)return;await n();t.dispatchEvent(new FocusEvent("focus"))};this.focusLastItem=async()=>{const t=this.hostElement.querySelector(`${this.dropdownItemSelector}:last-child`);if(!t)return;await n();t.dispatchEvent(new FocusEvent("focus"))};this.focusToggle=()=>{this.controlElement.focus()};this.onClickElsewhere=t=>{const e=t.target;if(e.localName==="click-elsewhere"){t.stopPropagation();const{popoverElement:e}=this;if(!e)return;e.open=false}};this.onDropdownMenuClick=async t=>{const e=t.target;if(e.disabled||e.separator)return;this.closeDropdown();await n();this.focusToggle()};this.onDropdownMenuKeydown=t=>{const e=t.target;switch(t.key){case"Escape":this.closeDropdown();this.focusToggle();break;case"Tab":this.closeDropdown();break;case"ArrowUp":t.preventDefault();this.focusAdjacentItem(e,"prev");break;case"ArrowDown":t.preventDefault();this.focusAdjacentItem(e,"next");break}};this.onToggleClick=()=>{if(this.open){this.closeDropdown()}else{this.openDropdown()}};this.onToggleKeydown=async t=>{switch(t.key){case"ArrowUp":t.preventDefault();this.openDropdown();await n();this.focusLastItem();break;case"ArrowDown":t.preventDefault();this.openDropdown();await n();this.focusFirstItem();return;case"Escape":t.preventDefault();this.closeDropdown();break;case"Tab":if(this.open)this.closeDropdown();break}};this.openDropdown=()=>{if(this.open)return;this.open=true};this.additionalContext=undefined;this.alignment=undefined;this.ariaLabel=undefined;this.block=undefined;this.context=undefined;this.contextValue=undefined;this.disabled=undefined;this.hideLabel=undefined;this.icon=undefined;this.label=undefined;this.name=undefined;this.open=undefined;this.popDirection=undefined;this.popoverAlignment="left";this.popoverDirection=undefined;this.popoverMaxHeight=undefined;this.popoverMinHeight=150;this.popoverMode=null;this.resolvedType=undefined;this.type="icon"}componentWillLoad(){this.popDirectionHandler();this.alignmentHandler();this.ariaLabelHandler()}componentDidLoad(){this.orchestrateResolvedMenuItems();o(this.hostElement)}delegateFocus(t){if(!r(t,this.hostElement))return;this.focusToggle()}popoverStateHandler({detail:{open:t}}){var e;if(this.open!==t)this.open=t;(e=this.popoverElement)===null||e===void 0?void 0:e.scrollContainerTo({top:0})}async closePopover(){if(!this.open||this.disabled)return;this._togglePopover()}async openPopover(){if(this.open||this.disabled)return;this._togglePopover()}async selectItem(t){var e;const i=this.hostElement.querySelector(`${this.dropdownItemSelector}[value="${t}"]`);const s=i===null||i===void 0?void 0:i.shadowRoot.querySelector(".dropdown-item");if(!i||this.disabled)return;if(!this.open){(e=this.controlElement)===null||e===void 0?void 0:e.click();await n()}s.click();await n()}async selectRemoveItem(t){var e;const i=this.hostElement.querySelector(`${this.dropdownItemSelector}[value="${t}"]`);const s=i===null||i===void 0?void 0:i.shadowRoot.querySelector(".remove-dropdown-item");if(!i||!s||this.disabled)return;if(!this.open){(e=this.controlElement)===null||e===void 0?void 0:e.click();await n()}s.click();await n()}additionalContextHandler(){this.orchestrateResolvedMenuItems()}alignmentHandler(){a(this,"alignment","popoverAlignment")}ariaLabelHandler(){h(this)}contextHandler(){this.orchestrateResolvedMenuItems()}contextValueHandler(){this.orchestrateResolvedMenuItems()}nameHandler(){this.orchestrateResolvedMenuItems()}popDirectionHandler(){a(this,"popDirection","popoverDirection")}resolvedTypeHandler(){this.orchestrateResolvedMenuItems()}get determineDropdownItemCount(){return this.hostElement.querySelectorAll(this.dropdownItemSelector).length}get hasCustomButton(){return!!this.hostElement.querySelector("[slot=custom-dropdown-button]")}get toggleButtonProps(){const t=["primary","secondary","neutral"];const e=["icon","fab","custom",...t];const i=e.includes(this.type)?this.type:"";const s=i==="icon";const n=i==="fab";const o=i==="custom";let r;if(t.includes(i)){r=i==="neutral"?i:`workflow-${i}`}const a=this.open;const h=!!this.disabled;const d=this.open;const l=!s&&!n&&!r?"unstyled":"";return{icon:s,fab:n,intent:r,active:a,disabled:h,ariaExpanded:d,className:l,custom:o}}_togglePopover(){const{controlElement:t}=this;if(!t)return;t.click();t.focus();t.dispatchEvent(new FocusEvent("focus"))}focusAdjacentItem(t,e){const i=Array.from(this.hostElement.querySelectorAll(this.dropdownItemSelector));const s=i.indexOf(t);if(s===-1){return}let n=0;if(e==="next"){n=s<i.length-1?s+1:0}else if(e==="prev"){if(s>0){n=s-1}else{n=i.length-1}}const o=i[n];o&&o.dispatchEvent(new Event("focus"))}navigateTo(t,e,i){var s,n;return(n=(s=window.TectonElements)===null||s===void 0?void 0:s.navigateTo)===null||n===void 0?void 0:n.call(s,t,e,i)}orchestrateResolvedMenuItems(){if(!this.name||!this.context){this.removeResolvedElements();return}this.resolveMenuItemElements().then((t=>{this.removeResolvedElements();t.forEach((t=>{this.hostElement.appendChild(t)}))})).catch((t=>{this.removeResolvedElements();throw t}))}removeResolvedElements(){const t=this.hostElement.querySelectorAll("q2-dropdown-item.resolved-menu-item");t.forEach((t=>this.hostElement.removeChild(t)))}resolveMenu(){return this.name&&window.TectonElements&&window.TectonElements.resolveMenu(this.name,this.contextValue,this.resolvedType,this.additionalContext)}resolveMenuItemElements(){return this.resolveMenu().then((t=>t.map((t=>{let e;let i;if(t["tct-ctxid"]){i={};i[t.contextIdParamName]=t["tct-ctxid"]}switch(t.action){case"navigateTo":e=()=>this.navigateTo(t.featureName,t.moduleName,i);break;case"showOverpanel":e=()=>this.showOverpanel(`${t.featureName}.${t.moduleName}`,i);break}const s=document.createElement("q2-dropdown-item");s.setAttribute("value",t.itemLabel);s.classList.add("resolved-menu-item");s.textContent=t.itemLabel;s.onclick=e;return s}))))}showOverpanel(t,e){var i,s;return(s=(i=window.TectonElements)===null||i===void 0?void 0:i.showOverpanel)===null||s===void 0?void 0:s.call(i,t,e,undefined,true)}render(){const t=this.toggleButtonProps;return e("click-elsewhere",{key:"5db9bf78d532c999533f603eae05a2099a9601e7",class:this.open?"dropdown-open":"",onChange:this.onClickElsewhere,"test-id":"dropdownContainer"},e("q2-btn",{key:"5d8b32bb0bd0a00590786d7873eb0dc086e6c71e",ref:t=>this.controlElement=t,class:t.className,onClick:this.onToggleClick,onKeyDown:this.onToggleKeydown,fab:t.fab,intent:t.intent,active:t.active,disabled:t.disabled,ariaExpanded:`${!!t.ariaExpanded}`,label:this.hideLabel&&this.label?d(this.label):undefined,hideLabel:this.hideLabel,ariaHasPopup:"menu","test-id":"dropdownButton",block:this.block,description:d("tecton.element.dropdown.itemCount",[this.determineDropdownItemCount])},this.hasCustomButton?e("div",{"test-id":"dropdownCustom",class:t.custom?"":"hidden"},e("slot",{name:"custom-dropdown-button"})):e(i,null,e("slot",{name:"control"},this.icon?e("q2-icon",{type:this.icon}):" ",this.label&&!this.hideLabel&&e("span",{class:"dropdown-button-text"},d(this.label))))),e("q2-popover",{key:"a92337074f25bb27667b6e7a6dcc9b8ab52918ce",ref:t=>this.popoverElement=t,controlElement:this.controlElement,open:this.open,"max-height":this.popoverMaxHeight,minHeight:this.popoverMinHeight,direction:this.popoverDirection,align:this.popoverAlignment,mode:this.popoverMode||undefined,block:this.block},e("div",{key:"c361ece634b267c14fc7a9bca76b0b5d0b86e452",onClick:this.onDropdownMenuClick,onKeyDown:this.onDropdownMenuKeydown,role:"menu","aria-label":d(this.label)||undefined},e("slot",{key:"b9686e7866e06a79c5c1b3eb702c32916ee4bd03"}))))}get hostElement(){return s(this)}static get watchers(){return{additionalContext:["additionalContextHandler"],alignment:["alignmentHandler"],ariaLabel:["ariaLabelHandler"],context:["contextHandler"],contextValue:["contextValueHandler"],name:["nameHandler"],popDirection:["popDirectionHandler"],resolvedType:["resolvedTypeHandler"]}}};u.style=c;export{u as q2_dropdown};
2
- //# sourceMappingURL=p-ad798287.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["q2DropdownCss","Q2DropdownStyle0","Q2Dropdown","this","dropdownItemSelector","closeDropdown","open","focusFirstItem","async","firstItem","hostElement","querySelector","waitForNextPaint","dispatchEvent","FocusEvent","focusLastItem","lastItem","focusToggle","controlElement","focus","onClickElsewhere","event","target","localName","stopPropagation","popoverElement","onDropdownMenuClick","item","disabled","separator","onDropdownMenuKeydown","key","preventDefault","focusAdjacentItem","onToggleClick","openDropdown","onToggleKeydown","componentWillLoad","popDirectionHandler","alignmentHandler","ariaLabelHandler","componentDidLoad","orchestrateResolvedMenuItems","overrideFocus","delegateFocus","isEventFromElement","popoverStateHandler","detail","_a","scrollContainerTo","top","closePopover","_togglePopover","openPopover","selectItem","value","itemBtn","shadowRoot","click","selectRemoveItem","removeButton","additionalContextHandler","handleRenamedProp","handleAriaLabel","contextHandler","contextValueHandler","nameHandler","resolvedTypeHandler","determineDropdownItemCount","querySelectorAll","length","hasCustomButton","toggleButtonProps","allowedIntents","allowedTypes","type","includes","icon","fab","custom","intent","active","ariaExpanded","className","activeItem","direction","dropdownItems","Array","from","activeIndex","indexOf","targetIndex","targetItem","Event","navigateTo","featureName","moduleName","queryParams","_b","window","TectonElements","call","name","context","removeResolvedElements","resolveMenuItemElements","then","data","forEach","element","appendChild","catch","err","resolvedElements","removeChild","resolveMenu","contextValue","resolvedType","additionalContext","datas","map","menuItemData","onClickFn","contextIdParamName","action","showOverpanel","newDropdownItem","document","createElement","setAttribute","itemLabel","classList","add","textContent","onclick","overpanelPath","params","undefined","render","btnProps","h","class","onChange","ref","el","onClick","onKeyDown","label","hideLabel","loc","ariaHasPopup","block","description","Fragment","popoverMaxHeight","minHeight","popoverMinHeight","popoverDirection","align","popoverAlignment","mode","popoverMode","role"],"sources":["src/components/q2-dropdown/q2-dropdown.scss?tag=q2-dropdown&encapsulation=shadow","src/components/q2-dropdown/q2-dropdown.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n display: inline-flex;\n}\n\n:host([block]) {\n display: block;\n}\n\nclick-elsewhere {\n position: relative;\n display: block;\n}\n\nq2-popover {\n --tct-popover-min-width: #{var-list(var-prefixer(dropdown-width))};\n}\n","import { Component, ComponentInterface, Prop, Method, Element, Watch, h, Fragment, Listen } from '@stencil/core';\nimport { IDict } from 'src/util';\nimport {\n handleAriaLabel,\n handleRenamedProp,\n isEventFromElement,\n loc,\n overrideFocus,\n waitForNextPaint,\n} from 'src/utils';\n\n@Component({ tag: 'q2-dropdown', shadow: true, styleUrl: 'q2-dropdown.scss' })\nexport class Q2Dropdown implements ComponentInterface {\n // #region Own Properties\n\n controlElement?: HTMLQ2BtnElement;\n dropdownItemSelector: string = 'q2-dropdown-item:not([disabled]):not([separator])';\n popoverElement?: HTMLQ2PopoverElement;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region Public Property API\n\n @Prop({ reflect: true })\n additionalContext: string;\n\n /** @deprecated */\n @Prop({ reflect: true })\n alignment: 'left' | 'right';\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n ariaLabel: string;\n\n /** If `true`, component expands to fill the width of its parent element. */\n @Prop({ reflect: true })\n block: boolean;\n\n /**\n * Tells the outlet what the type of object being passed in as contextValue.\n * This will allow for the hierarchy resolution logic to work to determine if an option should or should not be shown.\n *\n * @info\n * Only applicable when using `<q2-dropdown>` for outlets.\n */\n @Prop({ reflect: true })\n context: string;\n\n /**\n * Passes important information to the outlet (e.g., pass an account id that your platform can use to look up what module to show for that account type).\n *\n * @info\n * Only applicable when using `<q2-dropdown>` for outlets.\n */\n @Prop({ reflect: true })\n contextValue: string;\n\n /** Indicates the menu cannot be focused or interacted with. */\n @Prop({ reflect: true })\n disabled: boolean;\n\n /**\n * Hide's the field's `<label>` element from view.\n * @warning\n * Only use when a visible label is impractical.\n */\n @Prop({ reflect: true, mutable: true })\n hideLabel: boolean;\n\n /** The icon that will render within the toggle button. You may use any of the `q2-icon` types. */\n @Prop({ reflect: true })\n icon: string;\n\n /**\n * The text that appears within the button.\n * @warning\n * This property should not be used if the `type` is `icon`.\n * @localizable\n */\n @Prop({ reflect: true, mutable: true })\n label: string;\n\n /**\n * Identifies this menu as an outlet. Used in conjunction with context and, optionally, `contextValue`.\n * @info\n * Only applicable when using `<q2-dropdown>` for outlets.\n */\n @Prop({ reflect: true })\n name: string;\n\n /** Determine whether the popover is open or closed. */\n @Prop({ reflect: true, mutable: true })\n open: boolean;\n\n /** @deprecated */\n @Prop({ reflect: true })\n popDirection: 'up' | 'down';\n\n /** Aligns the popover dropdown to the left or right side of the input field. */\n @Prop({ mutable: true })\n popoverAlignment: 'left' | 'right' = 'left'; // being used in dropdown.scss\n\n /**\n * Force the direction of the popover dropdown when it opens.\n * If no value is passed, the component will auto-detect the direction based on available space.\n */\n @Prop({ mutable: true })\n popoverDirection: 'up' | 'down';\n\n /**\n * Force the maximum height of the popover. This value will be interpreted as pixels.\n * If no value is passed, or the value exceeds available space, the component will auto-detect the maximum height based on available space.\n */\n @Prop()\n popoverMaxHeight: number;\n\n /** @deprecated */\n @Prop()\n popoverMinHeight: number = 150;\n\n /**\n * Determines the display mode of the popover.\n *\n * Providing a value of `legacy` instructs the popover to use absolute positioning instead of fixed positioning.\n *\n * @info\n * This is a temporary solution to work around styling issues related to using fixed positioning for the popover\n * when nested inside of elements with transform properties. This will be removed once the popover API is available\n * for use.\n */\n @Prop({ mutable: true })\n popoverMode: 'legacy' = null;\n\n /**\n * Use with `context` to tell the outlet where it appears. It will be matched with the appropriately configured module for that context.\n * @info\n * Only applicable when using `<q2-dropdown>` for outlets.\n */\n @Prop({ reflect: true })\n resolvedType: string;\n\n /** The type of button used as the menu toggle. */\n @Prop({ reflect: true })\n type: 'icon' | 'fab' | 'custom' | 'primary' | 'secondary' | 'neutral' = 'icon';\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentWillLoad() {\n this.popDirectionHandler();\n this.alignmentHandler();\n this.ariaLabelHandler();\n }\n\n componentDidLoad() {\n this.orchestrateResolvedMenuItems();\n overrideFocus(this.hostElement);\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.focusToggle();\n }\n\n @Listen('popoverStateChanged')\n popoverStateHandler({ detail: { open } }: CustomEvent<{ open: boolean }>) {\n if (this.open !== open) this.open = open;\n this.popoverElement?.scrollContainerTo({ top: 0 });\n }\n\n // #endregion\n // #region Public Methods API\n\n /**\n * Emulates clicking the dropdown `<button>` to hide the popover if it is showing.\n * @testOnly\n */\n @Method()\n async closePopover() {\n if (!this.open || this.disabled) return;\n this._togglePopover();\n }\n\n /**\n * Emulates clicking the dropdown `<button>` to show the popover if it is hidden.\n * @testOnly\n */\n @Method()\n async openPopover() {\n if (this.open || this.disabled) return;\n this._togglePopover();\n }\n\n /**\n * Emulates opening the dropdown and selecting a [Dropdown Item](https://tecton.q2developer.com/design-system/q2-dropdown-item/).\n *\n * If the dropdown is closed, this will open it before selecting the item.\n *\n * If the value does not match any item's value, this method does nothing.\n * @testOnly\n */\n @Method()\n async selectItem(value: string) {\n const item = this.hostElement.querySelector<HTMLQ2DropdownItemElement>(\n `${this.dropdownItemSelector}[value=\"${value}\"]`\n );\n const itemBtn = item?.shadowRoot.querySelector<HTMLButtonElement>('.dropdown-item');\n if (!item || this.disabled) return;\n if (!this.open) {\n this.controlElement?.click();\n await waitForNextPaint();\n }\n itemBtn.click();\n await waitForNextPaint();\n }\n\n /**\n * Emulates opening the dropdown and selecting a [Dropdown Item](https://tecton.q2developer.com/design-system/q2-dropdown-item/)'s *remove* button.\n *\n * If the dropdown is closed, this will open it before selecting the remove item button.\n *\n * Requirements for this method to work properly:\n * - Provided `value` matches the item's `value` property\n * - Item has the `removable` property enabled\n * @testOnly\n */\n @Method()\n async selectRemoveItem(value: string) {\n const item = this.hostElement.querySelector<HTMLQ2DropdownItemElement>(\n `${this.dropdownItemSelector}[value=\"${value}\"]`\n );\n const removeButton = item?.shadowRoot.querySelector<HTMLButtonElement>('.remove-dropdown-item');\n if (!item || !removeButton || this.disabled) return;\n if (!this.open) {\n this.controlElement?.click();\n await waitForNextPaint();\n }\n removeButton.click();\n await waitForNextPaint();\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('additionalContext')\n additionalContextHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n @Watch('alignment')\n alignmentHandler() {\n handleRenamedProp(this, 'alignment', 'popoverAlignment');\n }\n\n @Watch('ariaLabel')\n ariaLabelHandler() {\n handleAriaLabel(this);\n }\n\n @Watch('context')\n contextHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n @Watch('contextValue')\n contextValueHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n @Watch('name')\n nameHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n @Watch('popDirection')\n popDirectionHandler() {\n handleRenamedProp(this, 'popDirection', 'popoverDirection');\n }\n\n @Watch('resolvedType')\n resolvedTypeHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n // #endregion\n // #region Local Methods\n\n get determineDropdownItemCount() {\n return this.hostElement.querySelectorAll(this.dropdownItemSelector).length;\n }\n\n get hasCustomButton() {\n return !!this.hostElement.querySelector('[slot=custom-dropdown-button]');\n }\n\n get toggleButtonProps() {\n const allowedIntents = ['primary', 'secondary', 'neutral'];\n const allowedTypes = ['icon', 'fab', 'custom', ...allowedIntents];\n const type = allowedTypes.includes(this.type) ? this.type : '';\n const icon = type === 'icon';\n const fab = type === 'fab';\n const custom = type === 'custom';\n let intent;\n if (allowedIntents.includes(type)) {\n intent = type === 'neutral' ? type : `workflow-${type}`;\n }\n const active = this.open;\n const disabled = !!this.disabled;\n const ariaExpanded = this.open;\n const className = !icon && !fab && !intent ? 'unstyled' : '';\n\n return {\n icon,\n fab,\n intent,\n active,\n disabled,\n ariaExpanded,\n className,\n custom,\n };\n }\n\n _togglePopover() {\n const { controlElement } = this;\n if (!controlElement) return;\n controlElement.click();\n controlElement.focus();\n controlElement.dispatchEvent(new FocusEvent('focus'));\n }\n\n closeDropdown = () => {\n if (!this.open) return;\n this.open = false;\n };\n\n focusAdjacentItem(activeItem: HTMLQ2DropdownItemElement, direction: 'next' | 'prev') {\n const dropdownItems: HTMLQ2DropdownItemElement[] = Array.from(\n this.hostElement.querySelectorAll(this.dropdownItemSelector)\n );\n\n const activeIndex = dropdownItems.indexOf(activeItem);\n\n if (activeIndex === -1) {\n return;\n }\n\n let targetIndex: number = 0;\n if (direction === 'next') {\n targetIndex = activeIndex < dropdownItems.length - 1 ? activeIndex + 1 : 0;\n } else if (direction === 'prev') {\n if (activeIndex > 0) {\n targetIndex = activeIndex - 1;\n } else {\n targetIndex = dropdownItems.length - 1;\n }\n }\n const targetItem = dropdownItems[targetIndex];\n targetItem && targetItem.dispatchEvent(new Event('focus'));\n }\n\n focusFirstItem = async () => {\n const firstItem = this.hostElement.querySelector<HTMLQ2DropdownItemElement>(\n `${this.dropdownItemSelector}:first-child`\n );\n if (!firstItem) return;\n await waitForNextPaint();\n firstItem.dispatchEvent(new FocusEvent('focus'));\n };\n\n focusLastItem = async () => {\n const lastItem = this.hostElement.querySelector<HTMLQ2DropdownItemElement>(\n `${this.dropdownItemSelector}:last-child`\n );\n if (!lastItem) return;\n await waitForNextPaint();\n lastItem.dispatchEvent(new FocusEvent('focus'));\n };\n\n focusToggle = () => {\n this.controlElement.focus();\n };\n\n navigateTo(featureName: string, moduleName?: string, queryParams?: IDict<string>) {\n return window.TectonElements?.navigateTo?.(featureName, moduleName, queryParams);\n }\n\n onClickElsewhere = (event: CustomEvent) => {\n const target = event.target as HTMLClickElsewhereElement;\n if (target.localName === 'click-elsewhere') {\n event.stopPropagation();\n const { popoverElement } = this;\n if (!popoverElement) return;\n popoverElement.open = false;\n }\n };\n\n onDropdownMenuClick = async (event: MouseEvent | CustomEvent) => {\n const item = event.target as HTMLQ2DropdownItemElement;\n if (item.disabled || item.separator) return;\n this.closeDropdown();\n await waitForNextPaint();\n this.focusToggle();\n };\n\n onDropdownMenuKeydown = (event: KeyboardEvent) => {\n const item = event.target as HTMLQ2DropdownItemElement;\n switch (event.key) {\n case 'Escape':\n this.closeDropdown();\n this.focusToggle();\n break;\n\n case 'Tab':\n this.closeDropdown();\n break;\n\n case 'ArrowUp':\n event.preventDefault();\n this.focusAdjacentItem(item, 'prev');\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n this.focusAdjacentItem(item, 'next');\n break;\n\n default:\n break;\n }\n };\n\n onToggleClick = () => {\n if (this.open) {\n this.closeDropdown();\n } else {\n this.openDropdown();\n }\n };\n\n onToggleKeydown = async (event: KeyboardEvent) => {\n switch (event.key) {\n case 'ArrowUp':\n event.preventDefault();\n this.openDropdown();\n await waitForNextPaint();\n this.focusLastItem();\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n this.openDropdown();\n await waitForNextPaint();\n this.focusFirstItem();\n return;\n\n case 'Escape':\n event.preventDefault();\n this.closeDropdown();\n break;\n\n case 'Tab':\n if (this.open) this.closeDropdown();\n break;\n\n default:\n break;\n }\n };\n\n openDropdown = () => {\n if (this.open) return;\n this.open = true;\n };\n\n orchestrateResolvedMenuItems() {\n if (!this.name || !this.context) {\n // this is only for contextual menu outlets\n this.removeResolvedElements();\n return;\n }\n\n this.resolveMenuItemElements()\n .then(data => {\n this.removeResolvedElements();\n data.forEach(element => {\n this.hostElement.appendChild(element);\n });\n })\n .catch(err => {\n this.removeResolvedElements();\n throw err;\n });\n }\n\n removeResolvedElements() {\n const resolvedElements = this.hostElement.querySelectorAll('q2-dropdown-item.resolved-menu-item');\n resolvedElements.forEach(element => this.hostElement.removeChild(element));\n }\n\n resolveMenu() {\n return (\n this.name &&\n window.TectonElements &&\n window.TectonElements.resolveMenu(this.name, this.contextValue, this.resolvedType, this.additionalContext)\n );\n }\n\n resolveMenuItemElements() {\n return this.resolveMenu().then(datas => {\n return datas.map(menuItemData => {\n let onClickFn;\n let queryParams;\n if (menuItemData['tct-ctxid']) {\n queryParams = {};\n queryParams[menuItemData.contextIdParamName] = menuItemData['tct-ctxid'];\n }\n\n switch (menuItemData.action) {\n case 'navigateTo':\n onClickFn = () =>\n this.navigateTo(menuItemData.featureName, menuItemData.moduleName, queryParams);\n break;\n case 'showOverpanel':\n onClickFn = () =>\n this.showOverpanel(`${menuItemData.featureName}.${menuItemData.moduleName}`, queryParams);\n break;\n }\n\n const newDropdownItem = document.createElement('q2-dropdown-item');\n newDropdownItem.setAttribute('value', menuItemData.itemLabel);\n newDropdownItem.classList.add('resolved-menu-item');\n newDropdownItem.textContent = menuItemData.itemLabel;\n newDropdownItem.onclick = onClickFn;\n\n return newDropdownItem;\n });\n });\n }\n\n showOverpanel(overpanelPath: string, params: IDict<string>) {\n return window.TectonElements?.showOverpanel?.(overpanelPath, params, undefined, true);\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n const btnProps = this.toggleButtonProps;\n\n return (\n <click-elsewhere\n class={this.open ? 'dropdown-open' : ''}\n onChange={this.onClickElsewhere}\n test-id=\"dropdownContainer\"\n >\n <q2-btn\n ref={el => (this.controlElement = el)}\n class={btnProps.className}\n onClick={this.onToggleClick}\n onKeyDown={this.onToggleKeydown}\n fab={btnProps.fab}\n intent={btnProps.intent}\n active={btnProps.active}\n disabled={btnProps.disabled}\n ariaExpanded={`${!!btnProps.ariaExpanded}`}\n label={this.hideLabel && this.label ? loc(this.label) : undefined}\n hideLabel={this.hideLabel}\n ariaHasPopup=\"menu\"\n test-id=\"dropdownButton\"\n block={this.block}\n description={loc('tecton.element.dropdown.itemCount', [this.determineDropdownItemCount])}\n >\n {this.hasCustomButton ? (\n <div\n test-id=\"dropdownCustom\"\n class={btnProps.custom ? '' : 'hidden'}\n >\n <slot name=\"custom-dropdown-button\" />\n </div>\n ) : (\n <Fragment>\n <slot name=\"control\">\n {this.icon ? <q2-icon type={this.icon} /> : ' '}\n {this.label && !this.hideLabel && (\n <span class=\"dropdown-button-text\">{loc(this.label)}</span>\n )}\n </slot>\n </Fragment>\n )}\n </q2-btn>\n <q2-popover\n ref={el => (this.popoverElement = el)}\n controlElement={this.controlElement}\n open={this.open}\n max-height={this.popoverMaxHeight}\n minHeight={this.popoverMinHeight}\n direction={this.popoverDirection}\n align={this.popoverAlignment}\n mode={this.popoverMode || undefined}\n block={this.block}\n >\n <div\n onClick={this.onDropdownMenuClick}\n onKeyDown={this.onDropdownMenuKeydown}\n role=\"menu\"\n aria-label={loc(this.label) || undefined}\n >\n <slot />\n </div>\n </q2-popover>\n </click-elsewhere>\n );\n }\n\n // #endregion\n}\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{ag as r,I as t,a4 as a,ah as i,D as n,ai as e,aj as s,ak as u,al as v,am as o,an as f,m as l,ao as h,ap as c,a0 as x,aq as d,a3 as y,ar as g,as as b,at as p,au as m,av as w,aw as M,ax as L,_ as A,ay as k,az as S,aA as N,y as I,aB as F,aC as z,aD as T,aE as C,a6 as V,aF as _,Q as W,aG as B,aH as E,aI as G,aJ as D,aK as R,aL as Z,j,aM as O,aN as P,aO as Q,aP as U,aQ as q,aR as H,aS as J,aT as K,aU as X,W as Y,G as $,aV as rr,aW as tr,a as ar,aX as ir,aY as nr,aZ as er,a_ as sr,a$ as ur,a9 as vr,b0 as or,b1 as fr,E as lr,b2 as hr,b3 as cr,d as xr,b4 as dr,i as yr,V as gr,b5 as br}from"./p-2941aafa.js";var pr=function(){function r(r){this.coordSysDims=[];this.axisMap=a();this.categoryAxisMap=a();this.coordSysName=r}return r}();function mr(r){var t=r.get("coordinateSystem");var a=new pr(t);var i=wr[t];if(i){i(r,a,a.axisMap,a.categoryAxisMap);return a}}var wr={cartesian2d:function(t,a,i,n){var e=t.getReferringComponents("xAxis",r).models[0];var s=t.getReferringComponents("yAxis",r).models[0];a.coordSysDims=["x","y"];i.set("x",e);i.set("y",s);if(Mr(e)){n.set("x",e);a.firstCategoryDimIndex=0}if(Mr(s)){n.set("y",s);a.firstCategoryDimIndex==null&&(a.firstCategoryDimIndex=1)}},singleAxis:function(t,a,i,n){var e=t.getReferringComponents("singleAxis",r).models[0];a.coordSysDims=["single"];i.set("single",e);if(Mr(e)){n.set("single",e);a.firstCategoryDimIndex=0}},polar:function(t,a,i,n){var e=t.getReferringComponents("polar",r).models[0];var s=e.findAxisModel("radiusAxis");var u=e.findAxisModel("angleAxis");a.coordSysDims=["radius","angle"];i.set("radius",s);i.set("angle",u);if(Mr(s)){n.set("radius",s);a.firstCategoryDimIndex=0}if(Mr(u)){n.set("angle",u);a.firstCategoryDimIndex==null&&(a.firstCategoryDimIndex=1)}},geo:function(r,t,a,i){t.coordSysDims=["lng","lat"]},parallel:function(r,a,i,n){var e=r.ecModel;var s=e.getComponent("parallel",r.get("parallelIndex"));var u=a.coordSysDims=s.dimensions.slice();t(s.parallelAxisIndex,(function(r,t){var s=e.getComponent("parallelAxis",r);var v=u[t];i.set(v,s);if(Mr(s)){n.set(v,s);if(a.firstCategoryDimIndex==null){a.firstCategoryDimIndex=t}}}))}};function Mr(r){return r.get("type")==="category"}function Lr(r,t){var a=r.get("coordinateSystem");var i=f.get(a);var n;if(t&&t.coordSysDims){n=l(t.coordSysDims,(function(r){var a={name:r};var i=t.axisMap.get(r);if(i){var n=i.get("type");a.type=h(n)}return a}))}if(!n){n=i&&(i.getDimensionsInfo?i.getDimensionsInfo():i.dimensions.slice())||["x","y"]}return n}function Ar(r,a,i){var n;var e;i&&t(r,(function(r,t){var s=r.coordDim;var u=i.categoryAxisMap.get(s);if(u){if(n==null){n=t}r.ordinalMeta=u.getOrdinalMeta();if(a){r.createInvertedIndices=true}}if(r.otherDims.itemName!=null){e=true}}));if(!e&&n!=null){r[n].otherDims.itemName=0}return n}function kr(r,t,a){a=a||{};var f=t.getSourceManager();var l;var h=false;if(r){h=true;l=i(r)}else{l=f.getSource();h=l.sourceFormat===c}var x=mr(t);var d=Lr(t,x);var y=a.useEncodeDefaulter;var g=n(y)?y:y?e(s,d,t):null;var b={coordDimensions:d,generateCoord:a.generateCoord,encodeDefine:t.getEncode(),encodeDefaulter:g,canOmitUnusedDimensions:!h};var p=u(l,b);var m=Ar(p.dimensions,a.createInvertedIndices,x);var w=!h?f.getSharedDataStore(p):null;var M=v(t,{schema:p,store:w});var L=new o(p,t);L.setCalculationInfo(M);var A=m!=null&&Sr(l)?function(r,t,a,i){return i===m?a:this.defaultDimValueGetter(r,t,a,i)}:null;L.hasItemOption=false;L.initData(h?l:w,null,A);return L}function Sr(r){if(r.sourceFormat===c){var t=Nr(r.data||[]);return!x(d(t))}}function Nr(r){var t=0;while(t<r.length&&r[t]==null){t++}return r[t]}var Ir=function(){function r(){}r.prototype.getNeedCrossZero=function(){var r=this.option;return!r.scale};r.prototype.getCoordSysModel=function(){return};return r}();var Fr=y();function zr(r,t){var a=l(t,(function(t){return r.scale.parse(t)}));if(r.type==="time"&&a.length>0){a.sort();a.unshift(a[0]);a.push(a[a.length-1])}return a}function Tr(r){var t=r.getLabelModel().get("customValues");if(t){var a=g(r);return{labels:zr(r,t).map((function(t){var i={value:t};return{formattedLabel:a(i),rawLabel:r.scale.getLabel(i),tickValue:t}}))}}return r.type==="category"?Vr(r):Br(r)}function Cr(r,t){var a=r.getTickModel().get("customValues");if(a){return{ticks:zr(r,a)}}return r.type==="category"?Wr(r,t):{ticks:l(r.scale.getTicks(),(function(r){return r.value}))}}function Vr(r){var t=r.getLabelModel();var a=_r(r,t);return!t.get("show")||r.scale.isBlank()?{labels:[],labelCategoryInterval:a.labelCategoryInterval}:a}function _r(r,t){var a=Er(r,"labels");var i=b(t);var e=Gr(a,i);if(e){return e}var s;var u;if(n(i)){s=Pr(r,i)}else{u=i==="auto"?Rr(r):i;s=Or(r,u)}return Dr(a,i,{labels:s,labelCategoryInterval:u})}function Wr(r,t){var a=Er(r,"ticks");var i=b(t);var e=Gr(a,i);if(e){return e}var s;var u;if(!t.get("show")||r.scale.isBlank()){s=[]}if(n(i)){s=Pr(r,i,true)}else if(i==="auto"){var v=_r(r,r.getLabelModel());u=v.labelCategoryInterval;s=l(v.labels,(function(r){return r.tickValue}))}else{u=i;s=Or(r,u,true)}return Dr(a,i,{ticks:s,tickCategoryInterval:u})}function Br(r){var t=r.scale.getTicks();var a=g(r);return{labels:l(t,(function(t,i){return{level:t.level,formattedLabel:a(t,i),rawLabel:r.scale.getLabel(t),tickValue:t.value}}))}}function Er(r,t){return Fr(r)[t]||(Fr(r)[t]=[])}function Gr(r,t){for(var a=0;a<r.length;a++){if(r[a].key===t){return r[a].value}}}function Dr(r,t,a){r.push({key:t,value:a});return a}function Rr(r){var t=Fr(r).autoInterval;return t!=null?t:Fr(r).autoInterval=r.calculateCategoryInterval()}function Zr(r){var t=jr(r);var a=g(r);var i=(t.axisRotate-t.labelRotate)/180*Math.PI;var n=r.scale;var e=n.getExtent();var s=n.count();if(e[1]-e[0]<1){return 0}var u=1;if(s>40){u=Math.max(1,Math.floor(s/40))}var v=e[0];var o=r.dataToCoord(v+1)-r.dataToCoord(v);var f=Math.abs(o*Math.cos(i));var l=Math.abs(o*Math.sin(i));var h=0;var c=0;for(;v<=e[1];v+=u){var x=0;var d=0;var y=p(a({value:v}),t.font,"center","top");x=y.width*1.3;d=y.height*1.3;h=Math.max(h,x,7);c=Math.max(c,d,7)}var b=h/f;var m=c/l;isNaN(b)&&(b=Infinity);isNaN(m)&&(m=Infinity);var w=Math.max(0,Math.floor(Math.min(b,m)));var M=Fr(r.model);var L=r.getExtent();var A=M.lastAutoInterval;var k=M.lastTickCount;if(A!=null&&k!=null&&Math.abs(A-w)<=1&&Math.abs(k-s)<=1&&A>w&&M.axisExtent0===L[0]&&M.axisExtent1===L[1]){w=A}else{M.lastTickCount=s;M.lastAutoInterval=w;M.axisExtent0=L[0];M.axisExtent1=L[1]}return w}function jr(r){var t=r.getLabelModel();return{axisRotate:r.getRotate?r.getRotate():r.isHorizontal&&!r.isHorizontal()?90:0,labelRotate:t.get("rotate")||0,font:t.getFont()}}function Or(r,t,a){var i=g(r);var n=r.scale;var e=n.getExtent();var s=r.getLabelModel();var u=[];var v=Math.max((t||0)+1,1);var o=e[0];var f=n.count();if(o!==0&&v>1&&f/v>2){o=Math.round(Math.ceil(o/v)*v)}var l=m(r);var h=s.get("showMinLabel")||l;var c=s.get("showMaxLabel")||l;if(h&&o!==e[0]){d(e[0])}var x=o;for(;x<=e[1];x+=v){d(x)}if(c&&x-v!==e[1]){d(e[1])}function d(r){var t={value:r};u.push(a?r:{formattedLabel:i(t),rawLabel:n.getLabel(t),tickValue:r})}return u}function Pr(r,a,i){var n=r.scale;var e=g(r);var s=[];t(n.getTicks(),(function(r){var t=n.getLabel(r);var u=r.value;if(a(r.value,t)){s.push(i?u:{formattedLabel:e(r),rawLabel:t,tickValue:u})}}));return s}var Qr=[0,1];var Ur=function(){function r(r,t,a){this.onBand=false;this.inverse=false;this.dim=r;this.scale=t;this._extent=a||[0,0]}r.prototype.contain=function(r){var t=this._extent;var a=Math.min(t[0],t[1]);var i=Math.max(t[0],t[1]);return r>=a&&r<=i};r.prototype.containData=function(r){return this.scale.contain(r)};r.prototype.getExtent=function(){return this._extent.slice()};r.prototype.getPixelPrecision=function(r){return w(r||this.scale.getExtent(),this._extent)};r.prototype.setExtent=function(r,t){var a=this._extent;a[0]=r;a[1]=t};r.prototype.dataToCoord=function(r,t){var a=this._extent;var i=this.scale;r=i.normalize(r);if(this.onBand&&i.type==="ordinal"){a=a.slice();qr(a,i.count())}return M(r,Qr,a,t)};r.prototype.coordToData=function(r,t){var a=this._extent;var i=this.scale;if(this.onBand&&i.type==="ordinal"){a=a.slice();qr(a,i.count())}var n=M(r,a,Qr,t);return this.scale.scale(n)};r.prototype.pointToData=function(r,t){return};r.prototype.getTicksCoords=function(r){r=r||{};var t=r.tickModel||this.getTickModel();var a=Cr(this,t);var i=a.ticks;var n=l(i,(function(r){return{coord:this.dataToCoord(this.scale.type==="ordinal"?this.scale.getRawOrdinalNumber(r):r),tickValue:r}}),this);var e=t.get("alignWithLabel");Hr(this,n,e,r.clamp);return n};r.prototype.getMinorTicksCoords=function(){if(this.scale.type==="ordinal"){return[]}var r=this.model.getModel("minorTick");var t=r.get("splitNumber");if(!(t>0&&t<100)){t=5}var a=this.scale.getMinorTicks(t);var i=l(a,(function(r){return l(r,(function(r){return{coord:this.dataToCoord(r),tickValue:r}}),this)}),this);return i};r.prototype.getViewLabels=function(){return Tr(this).labels};r.prototype.getLabelModel=function(){return this.model.getModel("axisLabel")};r.prototype.getTickModel=function(){return this.model.getModel("axisTick")};r.prototype.getBandWidth=function(){var r=this._extent;var t=this.scale.getExtent();var a=t[1]-t[0]+(this.onBand?1:0);a===0&&(a=1);var i=Math.abs(r[1]-r[0]);return Math.abs(i)/a};r.prototype.calculateCategoryInterval=function(){return Zr(this)};return r}();function qr(r,t){var a=r[1]-r[0];var i=t;var n=a/i/2;r[0]+=n;r[1]-=n}function Hr(r,a,i,n){var e=a.length;if(!r.onBand||i||!e){return}var s=r.getExtent();var u;var v;if(e===1){a[0].coord=s[0];u=a[1]={coord:s[1]}}else{var o=a[e-1].tickValue-a[0].tickValue;var f=(a[e-1].coord-a[0].coord)/o;t(a,(function(r){r.coord-=f/2}));var l=r.scale.getExtent();v=1+l[1]-a[e-1].tickValue;u={coord:a[e-1].coord+f*v};a.push(u)}var h=s[0]>s[1];if(c(a[0].coord,s[0])){n?a[0].coord=s[0]:a.shift()}if(n&&c(s[0],a[0].coord)){a.unshift({coord:s[0]})}if(c(s[1],u.coord)){n?u.coord=s[1]:a.pop()}if(n&&c(u.coord,s[1])){a.push({coord:s[1]})}function c(r,t){r=L(r);t=L(t);return h?r>t:r<t}}const Jr=Ur;var Kr=function(r){A(t,r);function t(){return r!==null&&r.apply(this,arguments)||this}t.type="grid";t.dependencies=["xAxis","yAxis"];t.layoutMode="box";t.defaultOption={show:false,z:0,left:"10%",top:60,right:"10%",bottom:70,containLabel:false,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"};return t}(k);const Xr=Kr;var Yr=function(t){A(a,t);function a(){return t!==null&&t.apply(this,arguments)||this}a.prototype.getCoordSysModel=function(){return this.getReferringComponents("grid",r).models[0]};a.type="cartesian2dAxis";return a}(k);S(Yr,Ir);var $r={show:true,z:0,inverse:false,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:false,triggerEvent:false,tooltip:{show:false},axisPointer:{},axisLine:{show:true,onZero:true,onZeroAxisIndex:null,lineStyle:{color:"#6E7079",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:true,inside:false,length:5,lineStyle:{width:1}},axisLabel:{show:true,inside:false,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:true,lineStyle:{color:["#E0E6F1"],width:1,type:"solid"}},splitArea:{show:false,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}}};var rt=N({boundaryGap:true,deduplication:null,splitLine:{show:false},axisTick:{alignWithLabel:false,interval:"auto"},axisLabel:{interval:"auto"}},$r);var tt=N({boundaryGap:[0,0],axisLine:{show:"auto"},axisTick:{show:"auto"},splitNumber:5,minorTick:{show:false,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:false,lineStyle:{color:"#F4F7FD",width:1}}},$r);var at=N({splitNumber:6,axisLabel:{showMinLabel:false,showMaxLabel:false,rich:{primary:{fontWeight:"bold"}}},splitLine:{show:false}},tt);var it=I({logBase:10},tt);const nt={category:rt,value:tt,time:at,log:it};var et={value:1,category:1,time:1,log:1};function st(r,a,i,n){t(et,(function(t,e){var s=N(N({},nt[e],true),n,true);var u=function(r){A(t,r);function t(){var t=r!==null&&r.apply(this,arguments)||this;t.type=a+"Axis."+e;return t}t.prototype.mergeDefaultAndTheme=function(r,t){var a=C(this);var i=a?F(r):{};var n=t.getTheme();N(r,n.get(e+"Axis"));N(r,this.getDefaultOption());r.type=ut(r);if(a){z(r,i,a)}};t.prototype.optionUpdated=function(){var r=this.option;if(r.type==="category"){this.__ordinalMeta=T.createByAxisModel(this)}};t.prototype.getCategories=function(r){var t=this.option;if(t.type==="category"){if(r){return t.data}return this.__ordinalMeta.categories}};t.prototype.getOrdinalMeta=function(){return this.__ordinalMeta};t.type=a+"Axis."+e;t.defaultOption=s;return t}(i);r.registerComponentModel(u)}));r.registerSubTypeDefaulter(a+"Axis",ut)}function ut(r){return r.type||(r.data?"category":"value")}var vt=function(){function r(r){this.type="cartesian";this._dimList=[];this._axes={};this.name=r||""}r.prototype.getAxis=function(r){return this._axes[r]};r.prototype.getAxes=function(){return l(this._dimList,(function(r){return this._axes[r]}),this)};r.prototype.getAxesByScale=function(r){r=r.toLowerCase();return V(this.getAxes(),(function(t){return t.scale.type===r}))};r.prototype.addAxis=function(r){var t=r.dim;this._axes[t]=r;this._dimList.push(t)};return r}();const ot=vt;var ft=["x","y"];function lt(r){return r.type==="interval"||r.type==="time"}var ht=function(r){A(t,r);function t(){var t=r!==null&&r.apply(this,arguments)||this;t.type="cartesian2d";t.dimensions=ft;return t}t.prototype.calcAffineTransform=function(){this._transform=this._invTransform=null;var r=this.getAxis("x").scale;var t=this.getAxis("y").scale;if(!lt(r)||!lt(t)){return}var a=r.getExtent();var i=t.getExtent();var n=this.dataToPoint([a[0],i[0]]);var e=this.dataToPoint([a[1],i[1]]);var s=a[1]-a[0];var u=i[1]-i[0];if(!s||!u){return}var v=(e[0]-n[0])/s;var o=(e[1]-n[1])/u;var f=n[0]-a[0]*v;var l=n[1]-i[0]*o;var h=this._transform=[v,0,0,o,f,l];this._invTransform=_([],h)};t.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAxis("x")};t.prototype.containPoint=function(r){var t=this.getAxis("x");var a=this.getAxis("y");return t.contain(t.toLocalCoord(r[0]))&&a.contain(a.toLocalCoord(r[1]))};t.prototype.containData=function(r){return this.getAxis("x").containData(r[0])&&this.getAxis("y").containData(r[1])};t.prototype.containZone=function(r,t){var a=this.dataToPoint(r);var i=this.dataToPoint(t);var n=this.getArea();var e=new W(a[0],a[1],i[0]-a[0],i[1]-a[1]);return n.intersect(e)};t.prototype.dataToPoint=function(r,t,a){a=a||[];var i=r[0];var n=r[1];if(this._transform&&i!=null&&isFinite(i)&&n!=null&&isFinite(n)){return B(a,r,this._transform)}var e=this.getAxis("x");var s=this.getAxis("y");a[0]=e.toGlobalCoord(e.dataToCoord(i,t));a[1]=s.toGlobalCoord(s.dataToCoord(n,t));return a};t.prototype.clampData=function(r,t){var a=this.getAxis("x").scale;var i=this.getAxis("y").scale;var n=a.getExtent();var e=i.getExtent();var s=a.parse(r[0]);var u=i.parse(r[1]);t=t||[];t[0]=Math.min(Math.max(Math.min(n[0],n[1]),s),Math.max(n[0],n[1]));t[1]=Math.min(Math.max(Math.min(e[0],e[1]),u),Math.max(e[0],e[1]));return t};t.prototype.pointToData=function(r,t){var a=[];if(this._invTransform){return B(a,r,this._invTransform)}var i=this.getAxis("x");var n=this.getAxis("y");a[0]=i.coordToData(i.toLocalCoord(r[0]),t);a[1]=n.coordToData(n.toLocalCoord(r[1]),t);return a};t.prototype.getOtherAxis=function(r){return this.getAxis(r.dim==="x"?"y":"x")};t.prototype.getArea=function(r){r=r||0;var t=this.getAxis("x").getGlobalExtent();var a=this.getAxis("y").getGlobalExtent();var i=Math.min(t[0],t[1])-r;var n=Math.min(a[0],a[1])-r;var e=Math.max(t[0],t[1])-i+r;var s=Math.max(a[0],a[1])-n+r;return new W(i,n,e,s)};return t}(ot);const ct=ht;var xt=function(r){A(t,r);function t(t,a,i,n,e){var s=r.call(this,t,a,i)||this;s.index=0;s.type=n||"value";s.position=e||"bottom";return s}t.prototype.isHorizontal=function(){var r=this.position;return r==="top"||r==="bottom"};t.prototype.getGlobalExtent=function(r){var t=this.getExtent();t[0]=this.toGlobalCoord(t[0]);t[1]=this.toGlobalCoord(t[1]);r&&t[0]>t[1]&&t.reverse();return t};t.prototype.pointToData=function(r,t){return this.coordToData(this.toLocalCoord(r[this.dim==="x"?0:1]),t)};t.prototype.setCategorySortInfo=function(r){if(this.type!=="category"){return false}this.model.option.categorySortInfo=r;this.scale.setSortInfo(r)};return t}(Jr);const dt=xt;var yt=Math.log;function gt(r,t,a){var i=D.prototype;var n=i.getTicks.call(a);var e=i.getTicks.call(a,true);var s=n.length-1;var u=i.getInterval.call(a);var v=E(r,t);var o=v.extent;var f=v.fixMin;var l=v.fixMax;if(r.type==="log"){var h=yt(r.base);o=[yt(o[0])/h,yt(o[1])/h]}r.setExtent(o[0],o[1]);r.calcNiceExtent({splitNumber:s,fixMin:f,fixMax:l});var c=i.getExtent.call(r);if(f){o[0]=c[0]}if(l){o[1]=c[1]}var x=i.getInterval.call(r);var d=o[0];var y=o[1];if(f&&l){x=(y-d)/s}else if(f){y=o[0]+x*s;while(y<o[1]&&isFinite(y)&&isFinite(o[1])){x=G(x);y=o[0]+x*s}}else if(l){d=o[1]-x*s;while(d>o[0]&&isFinite(d)&&isFinite(o[0])){x=G(x);d=o[1]-x*s}}else{var g=r.getTicks().length-1;if(g>s){x=G(x)}var b=x*s;y=Math.ceil(o[1]/x)*x;d=L(y-b);if(d<0&&o[0]>=0){d=0;y=L(b)}else if(y>0&&o[1]<=0){y=0;d=-L(b)}}var p=(n[0].value-e[0].value)/u;var m=(n[s].value-e[s].value)/u;i.setExtent.call(r,d+x*p,y+x*m);i.setInterval.call(r,x);if(p||m){i.setNiceExtent.call(r,d+x,y-x)}}var bt=function(){function a(r,t,a){this.type="grid";this._coordsMap={};this._coordsList=[];this._axesMap={};this._axesList=[];this.axisPointerEnabled=true;this.dimensions=ft;this._initCartesian(r,t,a);this.model=r}a.prototype.getRect=function(){return this._rect};a.prototype.update=function(r,a){var i=this._axesMap;this._updateScale(r,this.model);function n(r){var a;var i=J(r);var n=i.length;if(!n){return}var e=[];for(var s=n-1;s>=0;s--){var u=+i[s];var v=r[u];var o=v.model;var f=v.scale;if(K(f)&&o.get("alignTicks")&&o.get("interval")==null){e.push(v)}else{X(f,o);if(K(f)){a=v}}}if(e.length){if(!a){a=e.pop();X(a.scale,a.model)}t(e,(function(r){gt(r.scale,r.model,a.scale)}))}}n(i.x);n(i.y);var e={};t(i.x,(function(r){mt(i,"y",r,e)}));t(i.y,(function(r){mt(i,"x",r,e)}));this.resize(this.model,a)};a.prototype.resize=function(r,a,i){var n=r.getBoxLayoutParams();var e=!i&&r.get("containLabel");var s=R(n,{width:a.getWidth(),height:a.getHeight()});this._rect=s;var u=this._axesList;v();if(e){t(u,(function(r){if(!r.model.get(["axisLabel","inside"])){var t=Z(r);if(t){var a=r.isHorizontal()?"height":"width";var i=r.model.get(["axisLabel","margin"]);s[a]-=t[a]+i;if(r.position==="top"){s.y+=t.height+i}else if(r.position==="left"){s.x+=t.width+i}}}}));v()}t(this._coordsList,(function(r){r.calcAffineTransform()}));function v(){t(u,(function(r){var t=r.isHorizontal();var a=t?[0,s.width]:[0,s.height];var i=r.inverse?1:0;r.setExtent(a[i],a[1-i]);Mt(r,t?s.x:s.y)}))}};a.prototype.getAxis=function(r,t){var a=this._axesMap[r];if(a!=null){return a[t||0]}};a.prototype.getAxes=function(){return this._axesList.slice()};a.prototype.getCartesian=function(r,t){if(r!=null&&t!=null){var a="x"+r+"y"+t;return this._coordsMap[a]}if(j(r)){t=r.yAxisIndex;r=r.xAxisIndex}for(var i=0,n=this._coordsList;i<n.length;i++){if(n[i].getAxis("x").index===r||n[i].getAxis("y").index===t){return n[i]}}};a.prototype.getCartesians=function(){return this._coordsList.slice()};a.prototype.convertToPixel=function(r,t,a){var i=this._findConvertTarget(t);return i.cartesian?i.cartesian.dataToPoint(a):i.axis?i.axis.toGlobalCoord(i.axis.dataToCoord(a)):null};a.prototype.convertFromPixel=function(r,t,a){var i=this._findConvertTarget(t);return i.cartesian?i.cartesian.pointToData(a):i.axis?i.axis.coordToData(i.axis.toLocalCoord(a)):null};a.prototype._findConvertTarget=function(t){var a=t.seriesModel;var i=t.xAxisModel||a&&a.getReferringComponents("xAxis",r).models[0];var n=t.yAxisModel||a&&a.getReferringComponents("yAxis",r).models[0];var e=t.gridModel;var s=this._coordsList;var u;var v;if(a){u=a.coordinateSystem;O(s,u)<0&&(u=null)}else if(i&&n){u=this.getCartesian(i.componentIndex,n.componentIndex)}else if(i){v=this.getAxis("x",i.componentIndex)}else if(n){v=this.getAxis("y",n.componentIndex)}else if(e){var o=e.coordinateSystem;if(o===this){u=this._coordsList[0]}}return{cartesian:u,axis:v}};a.prototype.containPoint=function(r){var t=this._coordsList[0];if(t){return t.containPoint(r)}};a.prototype._initCartesian=function(r,a,i){var n=this;var e=this;var s={left:false,right:false,top:false,bottom:false};var u={x:{},y:{}};var v={x:0,y:0};a.eachComponent("xAxis",o("x"),this);a.eachComponent("yAxis",o("y"),this);if(!v.x||!v.y){this._axesMap={};this._axesList=[];return}this._axesMap=u;t(u.x,(function(a,i){t(u.y,(function(t,e){var s="x"+i+"y"+e;var u=new ct(s);u.master=n;u.model=r;n._coordsMap[s]=u;n._coordsList.push(u);u.addAxis(a);u.addAxis(t)}))}));function o(t){return function(a,i){if(!pt(a,r)){return}var n=a.get("position");if(t==="x"){if(n!=="top"&&n!=="bottom"){n=s.bottom?"top":"bottom"}}else{if(n!=="left"&&n!=="right"){n=s.left?"right":"left"}}s[n]=true;var o=new dt(t,P(a),[0,0],a.get("type"),n);var f=o.type==="category";o.onBand=f&&a.get("boundaryGap");o.inverse=a.get("inverse");a.axis=o;o.model=a;o.grid=e;o.index=i;e._axesList.push(o);u[t][i]=o;v[t]++}}};a.prototype._updateScale=function(r,a){t(this._axesList,(function(r){r.scale.setExtent(Infinity,-Infinity);if(r.type==="category"){var t=r.model.get("categorySortInfo");r.scale.setSortInfo(t)}}));r.eachSeries((function(r){if(Q(r)){var t=U(r);var n=t.xAxisModel;var e=t.yAxisModel;if(!pt(n,a)||!pt(e,a)){return}var s=this.getCartesian(n.componentIndex,e.componentIndex);var u=r.getData();var v=s.getAxis("x");var o=s.getAxis("y");i(u,v);i(u,o)}}),this);function i(r,a){t(q(r,a.dim),(function(t){a.scale.unionExtentFromData(r,t)}))}};a.prototype.getTooltipAxes=function(r){var a=[];var i=[];t(this.getCartesians(),(function(t){var n=r!=null&&r!=="auto"?t.getAxis(r):t.getBaseAxis();var e=t.getOtherAxis(n);O(a,n)<0&&a.push(n);O(i,e)<0&&i.push(e)}));return{baseAxes:a,otherAxes:i}};a.create=function(r,t){var i=[];r.eachComponent("grid",(function(n,e){var s=new a(n,r,t);s.name="grid_"+e;s.resize(n,t,true);n.coordinateSystem=s;i.push(s)}));r.eachSeries((function(r){if(!Q(r)){return}var t=U(r);var a=t.xAxisModel;var i=t.yAxisModel;var n=a.getCoordSysModel();var e=n.coordinateSystem;r.coordinateSystem=e.getCartesian(a.componentIndex,i.componentIndex)}));return i};a.dimensions=ft;return a}();function pt(r,t){return r.getCoordSysModel()===t}function mt(r,t,a,i){a.getAxesOnZeroOf=function(){return e?[e]:[]};var n=r[t];var e;var s=a.model;var u=s.get(["axisLine","onZero"]);var v=s.get(["axisLine","onZeroAxisIndex"]);if(!u){return}if(v!=null){if(wt(n[v])){e=n[v]}}else{for(var o in n){if(n.hasOwnProperty(o)&&wt(n[o])&&!i[f(n[o])]){e=n[o];break}}}if(e){i[f(e)]=true}function f(r){return r.dim+"_"+r.index}}function wt(r){return r&&r.type!=="category"&&r.type!=="time"&&H(r)}function Mt(r,t){var a=r.getExtent();var i=a[0]+a[1];r.toGlobalCoord=r.dim==="x"?function(r){return r+t}:function(r){return i-r+t};r.toLocalCoord=r.dim==="x"?function(r){return r-t}:function(r){return i-r+t}}const Lt=bt;var At=y();function kt(r,t,i,n){var e=i.axis;if(e.scale.isBlank()){return}var s=i.getModel("splitArea");var u=s.getModel("areaStyle");var v=u.get("color");var o=n.coordinateSystem.getRect();var f=e.getTicksCoords({tickModel:s,clamp:true});if(!f.length){return}var l=v.length;var h=At(r).splitAreaColors;var c=a();var d=0;if(h){for(var y=0;y<f.length;y++){var g=h.get(f[y].tickValue);if(g!=null){d=(g+(l-1)*y)%l;break}}}var b=e.toGlobalCoord(f[0].coord);var p=u.getAreaStyle();v=x(v)?v:[v];for(var y=1;y<f.length;y++){var m=e.toGlobalCoord(f[y].coord);var w=void 0;var M=void 0;var L=void 0;var A=void 0;if(e.isHorizontal()){w=b;M=o.y;L=m-w;A=o.height;b=w+L}else{w=o.x;M=b;L=o.width;A=m-M;b=M+A}var k=f[y-1].tickValue;k!=null&&c.set(k,d);t.add(new Y({anid:k!=null?"area_"+k:null,shape:{x:w,y:M,width:L,height:A},style:I({fill:v[d]},p),autoBatch:true,silent:true}));d=(d+1)%l}At(r).splitAreaColors=c}function St(r){At(r).splitAreaColors=null}var Nt=["axisLine","axisTickLabel","axisName"];var It=["splitArea","splitLine","minorSplitLine"];var Ft=function(r){A(a,r);function a(){var t=r!==null&&r.apply(this,arguments)||this;t.type=a.type;t.axisPointerClass="CartesianAxisPointer";return t}a.prototype.render=function(a,i,n,e){this.group.removeAll();var s=this._axisGroup;this._axisGroup=new $;this.group.add(this._axisGroup);if(!a.get("show")){return}var u=a.getCoordSysModel();var v=rr(u,a);var o=new tr(a,ar({handleAutoShown:function(r){var t=u.coordinateSystem.getCartesians();for(var i=0;i<t.length;i++){if(K(t[i].getOtherAxis(a.axis).scale)){return true}}return false}},v));t(Nt,o.add,o);this._axisGroup.add(o.getGroup());t(It,(function(r){if(a.get([r,"show"])){zt[r](this,this._axisGroup,a,u)}}),this);var f=e&&e.type==="changeAxisOrder"&&e.isInitSort;if(!f){ir(s,this._axisGroup,a)}r.prototype.render.call(this,a,i,n,e)};a.prototype.remove=function(){St(this)};a.type="cartesianAxis";return a}(nr);var zt={splitLine:function(r,t,a,i){var n=a.axis;if(n.scale.isBlank()){return}var e=a.getModel("splitLine");var s=e.getModel("lineStyle");var u=s.get("color");u=x(u)?u:[u];var v=i.coordinateSystem.getRect();var o=n.isHorizontal();var f=0;var l=n.getTicksCoords({tickModel:e});var h=[];var c=[];var d=s.getLineStyle();for(var y=0;y<l.length;y++){var g=n.toGlobalCoord(l[y].coord);if(o){h[0]=g;h[1]=v.y;c[0]=g;c[1]=v.y+v.height}else{h[0]=v.x;h[1]=g;c[0]=v.x+v.width;c[1]=g}var b=f++%u.length;var p=l[y].tickValue;var m=new er({anid:p!=null?"line_"+l[y].tickValue:null,autoBatch:true,shape:{x1:h[0],y1:h[1],x2:c[0],y2:c[1]},style:I({stroke:u[b]},d),silent:true});sr(m.shape,d.lineWidth);t.add(m)}},minorSplitLine:function(r,t,a,i){var n=a.axis;var e=a.getModel("minorSplitLine");var s=e.getModel("lineStyle");var u=i.coordinateSystem.getRect();var v=n.isHorizontal();var o=n.getMinorTicksCoords();if(!o.length){return}var f=[];var l=[];var h=s.getLineStyle();for(var c=0;c<o.length;c++){for(var x=0;x<o[c].length;x++){var d=n.toGlobalCoord(o[c][x].coord);if(v){f[0]=d;f[1]=u.y;l[0]=d;l[1]=u.y+u.height}else{f[0]=u.x;f[1]=d;l[0]=u.x+u.width;l[1]=d}var y=new er({anid:"minor_line_"+o[c][x].tickValue,autoBatch:true,shape:{x1:f[0],y1:f[1],x2:l[0],y2:l[1]},style:h,silent:true});sr(y.shape,h.lineWidth);t.add(y)}}},splitArea:function(r,t,a,i){kt(r,t,a,i)}};var Tt=function(r){A(t,r);function t(){var a=r!==null&&r.apply(this,arguments)||this;a.type=t.type;return a}t.type="xAxis";return t}(Ft);var Ct=function(r){A(t,r);function t(){var t=r!==null&&r.apply(this,arguments)||this;t.type=Tt.type;return t}t.type="yAxis";return t}(Ft);var Vt=function(r){A(t,r);function t(){var t=r!==null&&r.apply(this,arguments)||this;t.type="grid";return t}t.prototype.render=function(r,t){this.group.removeAll();if(r.get("show")){this.group.add(new Y({shape:r.coordinateSystem.getRect(),style:I({fill:r.get("backgroundColor")},r.getItemStyle()),silent:true,z2:-1}))}};t.type="grid";return t}(ur);var _t={offset:0};function Wt(r){r.registerComponentView(Vt);r.registerComponentModel(Xr);r.registerCoordinateSystem("cartesian2d",Lt);st(r,"x",Yr,_t);st(r,"y",Yr,_t);r.registerComponentView(Tt);r.registerComponentView(Ct);r.registerPreprocessor((function(r){if(r.xAxis&&r.yAxis&&!r.grid){r.grid={}}}))}function Bt(r){vr(Wt);vr(or)}var Et=function(r){A(t,r);function t(){var a=r!==null&&r.apply(this,arguments)||this;a.type=t.type;a.layoutMode={type:"box",ignoreSize:true};return a}t.type="title";t.defaultOption={z:6,show:true,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bold",color:"#464646"},subtextStyle:{fontSize:12,color:"#6E7079"}};return t}(k);var Gt=function(r){A(t,r);function t(){var a=r!==null&&r.apply(this,arguments)||this;a.type=t.type;return a}t.prototype.render=function(r,t,a){this.group.removeAll();if(!r.get("show")){return}var i=this.group;var n=r.getModel("textStyle");var e=r.getModel("subtextStyle");var s=r.get("textAlign");var u=fr(r.get("textBaseline"),r.get("textVerticalAlign"));var v=new lr({style:hr(n,{text:r.get("text"),fill:n.getTextColor()},{disableBox:true}),z2:10});var o=v.getBoundingRect();var f=r.get("subtext");var l=new lr({style:hr(e,{text:f,fill:e.getTextColor(),y:o.height+r.get("itemGap"),verticalAlign:"top"},{disableBox:true}),z2:10});var h=r.get("link");var c=r.get("sublink");var x=r.get("triggerEvent",true);v.silent=!h&&!x;l.silent=!c&&!x;if(h){v.on("click",(function(){cr(h,"_"+r.get("target"))}))}if(c){l.on("click",(function(){cr(c,"_"+r.get("subtarget"))}))}xr(v).eventData=xr(l).eventData=x?{componentType:"title",componentIndex:r.componentIndex}:null;i.add(v);f&&i.add(l);var d=i.getBoundingRect();var y=r.getBoxLayoutParams();y.width=d.width;y.height=d.height;var g=R(y,{width:a.getWidth(),height:a.getHeight()},r.get("padding"));if(!s){s=r.get("left")||r.get("right");if(s==="middle"){s="center"}if(s==="right"){g.x+=g.width}else if(s==="center"){g.x+=g.width/2}}if(!u){u=r.get("top")||r.get("bottom");if(u==="center"){u="middle"}if(u==="bottom"){g.y+=g.height}else if(u==="middle"){g.y+=g.height/2}u=u||"top"}i.x=g.x;i.y=g.y;i.markRedraw();var b={align:s,verticalAlign:u};v.setStyle(b);l.setStyle(b);d=i.getBoundingRect();var p=g.margin;var m=r.getItemStyle(["color","opacity"]);m.fill=r.get("backgroundColor");var w=new Y({shape:{x:d.x-p[3],y:d.y-p[0],width:d.width+p[1]+p[3],height:d.height+p[0]+p[2],r:r.get("borderRadius")},style:m,subPixelOptimize:true,silent:true});i.add(w)};t.type="title";return t}(ur);function Dt(r){r.registerComponentModel(Et);r.registerComponentView(Gt)}function Rt(r,t){var a=r.mapDimensionsAll("defaultedLabel");var i=a.length;if(i===1){var n=dr(r,t,a[0]);return n!=null?n+"":null}else if(i){var e=[];for(var s=0;s<a.length;s++){e.push(dr(r,t,a[s]))}return e.join(" ")}}function Zt(r,t){var a=r.mapDimensionsAll("defaultedLabel");if(!x(t)){return t+""}var i=[];for(var n=0;n<a.length;n++){var e=r.getDimensionIndex(a[n]);if(e>=0){i.push(t[e])}}return i.join(" ")}function jt(r,t){return r.type===t}function Ot(r,t,a,i,e){var s=r.getArea();var u=s.x;var v=s.y;var o=s.width;var f=s.height;var l=a.get(["lineStyle","width"])||2;u-=l/2;v-=l/2;o+=l;f+=l;o=Math.ceil(o);if(u!==Math.floor(u)){u=Math.floor(u);o++}var h=new Y({shape:{x:u,y:v,width:o,height:f}});if(t){var c=r.getBaseAxis();var x=c.isHorizontal();var d=c.inverse;if(x){if(d){h.shape.x+=o}h.shape.width=0}else{if(!d){h.shape.y+=f}h.shape.height=0}var y=n(e)?function(r){e(r,h)}:null;yr(h,{shape:{width:o,height:f,x:u,y:v}},a,null,i,y)}return h}function Pt(r,t,a){var i=r.getArea();var n=L(i.r0,1);var e=L(i.r,1);var s=new gr({shape:{cx:L(r.cx,1),cy:L(r.cy,1),r0:n,r:e,startAngle:i.startAngle,endAngle:i.endAngle,clockwise:i.clockwise}});if(t){var u=r.getBaseAxis().dim==="angle";if(u){s.shape.endAngle=i.startAngle}else{s.shape.r=n}yr(s,{shape:{endAngle:i.endAngle,r:e}},a)}return s}function Qt(r,t,a,i,n){if(!r){return null}else if(r.type==="polar"){return Pt(r,t,a)}else if(r.type==="cartesian2d"){return Ot(r,t,a,i,n)}return null}var Ut={average:function(r){var t=0;var a=0;for(var i=0;i<r.length;i++){if(!isNaN(r[i])){t+=r[i];a++}}return a===0?NaN:t/a},sum:function(r){var t=0;for(var a=0;a<r.length;a++){t+=r[a]||0}return t},max:function(r){var t=-Infinity;for(var a=0;a<r.length;a++){r[a]>t&&(t=r[a])}return isFinite(t)?t:NaN},min:function(r){var t=Infinity;for(var a=0;a<r.length;a++){r[a]<t&&(t=r[a])}return isFinite(t)?t:NaN},minmax:function(r){var t=-Infinity;var a=-Infinity;for(var i=0;i<r.length;i++){var n=r[i];var e=Math.abs(n);if(e>t){t=e;a=n}}return isFinite(a)?a:NaN},nearest:function(r){return r[0]}};var qt=function(r){return Math.round(r.length/2)};function Ht(r){return{seriesType:r,reset:function(r,t,a){var i=r.getData();var e=r.get("sampling");var s=r.coordinateSystem;var u=i.count();if(u>10&&s.type==="cartesian2d"&&e){var v=s.getBaseAxis();var o=s.getOtherAxis(v);var f=v.getExtent();var l=a.getDevicePixelRatio();var h=Math.abs(f[1]-f[0])*(l||1);var c=Math.round(u/h);if(isFinite(c)&&c>1){if(e==="lttb"){r.setData(i.lttbDownSample(i.mapDimension(o.dim),1/c))}var x=void 0;if(br(e)){x=Ut[e]}else if(n(e)){x=e}if(x){r.setData(i.downSample(i.mapDimension(o.dim),1/c,x,qt))}}}}}}export{Zt as a,Ot as b,kr as c,Pt as d,Ht as e,Bt as f,Rt as g,Dt as h,jt as i,Qt as j};
2
- //# sourceMappingURL=p-ad80aef0.js.map