q2-tecton-elements 1.47.0 → 1.48.1-alpha.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 (331) hide show
  1. package/dist/cjs/click-elsewhere_2.cjs.entry.js +43 -7
  2. package/dist/cjs/click-elsewhere_2.cjs.entry.js.map +1 -1
  3. package/dist/cjs/{index-c385e32f.js → index-c9a86a33.js} +1 -1
  4. package/dist/cjs/{index-c385e32f.js.map → index-c9a86a33.js.map} +1 -1
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/q2-calendar.cjs.entry.js +2 -2
  7. package/dist/cjs/q2-calendar.cjs.entry.js.map +1 -1
  8. package/dist/cjs/q2-chart-donut.cjs.entry.js +7 -4
  9. package/dist/cjs/q2-chart-donut.cjs.entry.js.map +1 -1
  10. package/dist/cjs/q2-checkbox-group.cjs.entry.js +1 -1
  11. package/dist/cjs/q2-checkbox-group.cjs.entry.js.map +1 -1
  12. package/dist/cjs/q2-checkbox.cjs.entry.js +1 -1
  13. package/dist/cjs/q2-checkbox.cjs.entry.js.map +1 -1
  14. package/dist/cjs/q2-data-table.cjs.entry.js +8 -5
  15. package/dist/cjs/q2-data-table.cjs.entry.js.map +1 -1
  16. package/dist/cjs/q2-dropdown-item.cjs.entry.js +13 -4
  17. package/dist/cjs/q2-dropdown-item.cjs.entry.js.map +1 -1
  18. package/dist/cjs/q2-editable-field.cjs.entry.js +36 -27
  19. package/dist/cjs/q2-editable-field.cjs.entry.js.map +1 -1
  20. package/dist/cjs/q2-form.cjs.entry.js +23 -0
  21. package/dist/cjs/q2-form.cjs.entry.js.map +1 -0
  22. package/dist/cjs/q2-input.cjs.entry.js +3 -3
  23. package/dist/cjs/q2-input.cjs.entry.js.map +1 -1
  24. package/dist/cjs/q2-item.cjs.entry.js +1 -1
  25. package/dist/cjs/q2-legend.cjs.entry.js +1 -1
  26. package/dist/cjs/q2-list.cjs.entry.js +1 -1
  27. package/dist/cjs/q2-loc.cjs.entry.js +1 -1
  28. package/dist/cjs/q2-message.cjs.entry.js +1 -1
  29. package/dist/cjs/q2-optgroup.cjs.entry.js +1 -1
  30. package/dist/cjs/q2-option-list.cjs.entry.js +2 -3
  31. package/dist/cjs/q2-option-list.cjs.entry.js.map +1 -1
  32. package/dist/cjs/q2-option.cjs.entry.js +1 -1
  33. package/dist/cjs/q2-pagination.cjs.entry.js +2 -2
  34. package/dist/cjs/q2-pill.cjs.entry.js +1 -1
  35. package/dist/cjs/q2-radio-group.cjs.entry.js +1 -1
  36. package/dist/cjs/q2-radio-group.cjs.entry.js.map +1 -1
  37. package/dist/cjs/q2-relative-time.cjs.entry.js +35 -18
  38. package/dist/cjs/q2-relative-time.cjs.entry.js.map +1 -1
  39. package/dist/cjs/q2-section.cjs.entry.js +2 -2
  40. package/dist/cjs/q2-section.cjs.entry.js.map +1 -1
  41. package/dist/cjs/q2-select.cjs.entry.js +8 -3
  42. package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
  43. package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
  44. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +1 -1
  45. package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
  46. package/dist/cjs/q2-stepper.cjs.entry.js.map +1 -1
  47. package/dist/cjs/q2-tab-container.cjs.entry.js +2 -2
  48. package/dist/cjs/q2-tab-container.cjs.entry.js.map +1 -1
  49. package/dist/cjs/q2-tab-pane.cjs.entry.js +1 -1
  50. package/dist/cjs/q2-tag.cjs.entry.js +1 -1
  51. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  52. package/dist/cjs/q2-textarea.cjs.entry.js +1 -1
  53. package/dist/cjs/q2-textarea.cjs.entry.js.map +1 -1
  54. package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
  55. package/dist/collection/collection-manifest.json +1 -0
  56. package/dist/collection/components/q2-calendar/q2-calendar.css +2 -0
  57. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +7 -4
  58. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js.map +1 -1
  59. package/dist/collection/components/q2-checkbox/q2-checkbox.css +2 -0
  60. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.css +7 -1
  61. package/dist/collection/components/q2-data-table/q2-data-table.css +15 -1
  62. package/dist/collection/components/q2-data-table/q2-data-table.js +34 -14
  63. package/dist/collection/components/q2-data-table/q2-data-table.js.map +1 -1
  64. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js +22 -5
  65. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js.map +1 -1
  66. package/dist/collection/components/q2-editable-field/q2-editable-field.js +41 -29
  67. package/dist/collection/components/q2-editable-field/q2-editable-field.js.map +1 -1
  68. package/dist/collection/components/q2-form/q2-form.css +92 -0
  69. package/dist/collection/components/q2-form/q2-form.js +44 -0
  70. package/dist/collection/components/q2-form/q2-form.js.map +1 -0
  71. package/dist/collection/components/q2-input/q2-input.css +1 -1
  72. package/dist/collection/components/q2-input/q2-input.js +23 -20
  73. package/dist/collection/components/q2-input/q2-input.js.map +1 -1
  74. package/dist/collection/components/q2-item/q2-item.js +1 -1
  75. package/dist/collection/components/q2-legend/q2-legend.js +1 -1
  76. package/dist/collection/components/q2-list/q2-list.js +1 -1
  77. package/dist/collection/components/q2-loc/q2-loc.js +1 -1
  78. package/dist/collection/components/q2-message/q2-message.js +1 -1
  79. package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
  80. package/dist/collection/components/q2-option/q2-option.js +1 -1
  81. package/dist/collection/components/q2-option-list/q2-option-list.js +4 -5
  82. package/dist/collection/components/q2-option-list/q2-option-list.js.map +1 -1
  83. package/dist/collection/components/q2-pagination/q2-pagination.js +2 -2
  84. package/dist/collection/components/q2-pill/q2-pill.js +1 -1
  85. package/dist/collection/components/q2-popover/q2-popover.js +43 -7
  86. package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
  87. package/dist/collection/components/q2-radio-group/q2-radio-group.css +4 -2
  88. package/dist/collection/components/q2-relative-time/q2-relative-time.js +79 -25
  89. package/dist/collection/components/q2-relative-time/q2-relative-time.js.map +1 -1
  90. package/dist/collection/components/q2-section/q2-section.js +7 -4
  91. package/dist/collection/components/q2-section/q2-section.js.map +1 -1
  92. package/dist/collection/components/q2-select/q2-select.css +2 -2
  93. package/dist/collection/components/q2-select/q2-select.js +7 -2
  94. package/dist/collection/components/q2-select/q2-select.js.map +1 -1
  95. package/dist/collection/components/q2-stepper/q2-stepper.js +2 -2
  96. package/dist/collection/components/q2-stepper/q2-stepper.js.map +1 -1
  97. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +3 -3
  98. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
  99. package/dist/collection/components/q2-tab-container/q2-tab-container.css +2 -1
  100. package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
  101. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
  102. package/dist/collection/components/q2-tag/q2-tag.js +1 -1
  103. package/dist/collection/components/q2-textarea/q2-textarea.css +2 -2
  104. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
  105. package/dist/components/index.js +2 -0
  106. package/dist/components/index.js.map +1 -1
  107. package/dist/components/q2-calendar.js +1 -1
  108. package/dist/components/q2-calendar.js.map +1 -1
  109. package/dist/components/q2-chart-donut.js +7 -4
  110. package/dist/components/q2-chart-donut.js.map +1 -1
  111. package/dist/components/q2-checkbox-group.js +1 -1
  112. package/dist/components/q2-checkbox-group.js.map +1 -1
  113. package/dist/components/q2-checkbox2.js +1 -1
  114. package/dist/components/q2-checkbox2.js.map +1 -1
  115. package/dist/components/q2-data-table.js +10 -6
  116. package/dist/components/q2-data-table.js.map +1 -1
  117. package/dist/components/q2-dropdown-item2.js +16 -6
  118. package/dist/components/q2-dropdown-item2.js.map +1 -1
  119. package/dist/components/q2-editable-field.js +37 -28
  120. package/dist/components/q2-editable-field.js.map +1 -1
  121. package/dist/components/q2-form.d.ts +11 -0
  122. package/dist/components/q2-form.js +39 -0
  123. package/dist/components/q2-form.js.map +1 -0
  124. package/dist/components/q2-input2.js +4 -4
  125. package/dist/components/q2-input2.js.map +1 -1
  126. package/dist/components/q2-item.js +1 -1
  127. package/dist/components/q2-legend2.js +1 -1
  128. package/dist/components/q2-list.js +1 -1
  129. package/dist/components/q2-loc.js +1 -1
  130. package/dist/components/q2-message2.js +1 -1
  131. package/dist/components/q2-optgroup2.js +1 -1
  132. package/dist/components/q2-option-list2.js +2 -3
  133. package/dist/components/q2-option-list2.js.map +1 -1
  134. package/dist/components/q2-option2.js +1 -1
  135. package/dist/components/q2-pagination.js +2 -2
  136. package/dist/components/q2-pill.js +1 -1
  137. package/dist/components/q2-popover2.js +43 -7
  138. package/dist/components/q2-popover2.js.map +1 -1
  139. package/dist/components/q2-radio-group.js +1 -1
  140. package/dist/components/q2-radio-group.js.map +1 -1
  141. package/dist/components/q2-relative-time.js +37 -18
  142. package/dist/components/q2-relative-time.js.map +1 -1
  143. package/dist/components/q2-section.js +2 -2
  144. package/dist/components/q2-section.js.map +1 -1
  145. package/dist/components/q2-select2.js +8 -3
  146. package/dist/components/q2-select2.js.map +1 -1
  147. package/dist/components/q2-stepper-pane.js +1 -1
  148. package/dist/components/q2-stepper-vertical.js +1 -1
  149. package/dist/components/q2-stepper.js +2 -2
  150. package/dist/components/q2-stepper.js.map +1 -1
  151. package/dist/components/q2-tab-container.js +2 -2
  152. package/dist/components/q2-tab-container.js.map +1 -1
  153. package/dist/components/q2-tab-pane.js +1 -1
  154. package/dist/components/q2-tag.js +1 -1
  155. package/dist/components/q2-textarea.js +1 -1
  156. package/dist/components/q2-textarea.js.map +1 -1
  157. package/dist/components/tecton-tab-pane.js +2 -2
  158. package/dist/esm/click-elsewhere_2.entry.js +43 -7
  159. package/dist/esm/click-elsewhere_2.entry.js.map +1 -1
  160. package/dist/esm/{index-f0dfb099.js → index-8582f46d.js} +1 -1
  161. package/dist/esm/{index-f0dfb099.js.map → index-8582f46d.js.map} +1 -1
  162. package/dist/esm/loader.js +1 -1
  163. package/dist/esm/q2-calendar.entry.js +2 -2
  164. package/dist/esm/q2-calendar.entry.js.map +1 -1
  165. package/dist/esm/q2-chart-donut.entry.js +7 -4
  166. package/dist/esm/q2-chart-donut.entry.js.map +1 -1
  167. package/dist/esm/q2-checkbox-group.entry.js +1 -1
  168. package/dist/esm/q2-checkbox-group.entry.js.map +1 -1
  169. package/dist/esm/q2-checkbox.entry.js +1 -1
  170. package/dist/esm/q2-checkbox.entry.js.map +1 -1
  171. package/dist/esm/q2-data-table.entry.js +8 -5
  172. package/dist/esm/q2-data-table.entry.js.map +1 -1
  173. package/dist/esm/q2-dropdown-item.entry.js +14 -5
  174. package/dist/esm/q2-dropdown-item.entry.js.map +1 -1
  175. package/dist/esm/q2-editable-field.entry.js +37 -28
  176. package/dist/esm/q2-editable-field.entry.js.map +1 -1
  177. package/dist/esm/q2-form.entry.js +19 -0
  178. package/dist/esm/q2-form.entry.js.map +1 -0
  179. package/dist/esm/q2-input.entry.js +3 -3
  180. package/dist/esm/q2-input.entry.js.map +1 -1
  181. package/dist/esm/q2-item.entry.js +1 -1
  182. package/dist/esm/q2-legend.entry.js +1 -1
  183. package/dist/esm/q2-list.entry.js +1 -1
  184. package/dist/esm/q2-loc.entry.js +1 -1
  185. package/dist/esm/q2-message.entry.js +1 -1
  186. package/dist/esm/q2-optgroup.entry.js +1 -1
  187. package/dist/esm/q2-option-list.entry.js +2 -3
  188. package/dist/esm/q2-option-list.entry.js.map +1 -1
  189. package/dist/esm/q2-option.entry.js +1 -1
  190. package/dist/esm/q2-pagination.entry.js +2 -2
  191. package/dist/esm/q2-pill.entry.js +1 -1
  192. package/dist/esm/q2-radio-group.entry.js +1 -1
  193. package/dist/esm/q2-radio-group.entry.js.map +1 -1
  194. package/dist/esm/q2-relative-time.entry.js +35 -18
  195. package/dist/esm/q2-relative-time.entry.js.map +1 -1
  196. package/dist/esm/q2-section.entry.js +2 -2
  197. package/dist/esm/q2-section.entry.js.map +1 -1
  198. package/dist/esm/q2-select.entry.js +8 -3
  199. package/dist/esm/q2-select.entry.js.map +1 -1
  200. package/dist/esm/q2-stepper-pane.entry.js +1 -1
  201. package/dist/esm/q2-stepper-vertical.entry.js +1 -1
  202. package/dist/esm/q2-stepper.entry.js +2 -2
  203. package/dist/esm/q2-stepper.entry.js.map +1 -1
  204. package/dist/esm/q2-tab-container.entry.js +2 -2
  205. package/dist/esm/q2-tab-container.entry.js.map +1 -1
  206. package/dist/esm/q2-tab-pane.entry.js +1 -1
  207. package/dist/esm/q2-tag.entry.js +1 -1
  208. package/dist/esm/q2-tecton-elements.js +1 -1
  209. package/dist/esm/q2-textarea.entry.js +1 -1
  210. package/dist/esm/q2-textarea.entry.js.map +1 -1
  211. package/dist/esm/tecton-tab-pane.entry.js +2 -2
  212. package/dist/q2-tecton-elements/{p-d5776227.entry.js → p-0d6edd2a.entry.js} +2 -2
  213. package/dist/q2-tecton-elements/p-19da46dc.entry.js +2 -0
  214. package/dist/q2-tecton-elements/p-19da46dc.entry.js.map +1 -0
  215. package/dist/q2-tecton-elements/{p-dd18416f.entry.js → p-258f8c9c.entry.js} +2 -2
  216. package/dist/q2-tecton-elements/p-2878a662.entry.js +2 -0
  217. package/dist/q2-tecton-elements/p-2878a662.entry.js.map +1 -0
  218. package/dist/q2-tecton-elements/p-2a8de00d.entry.js +2 -0
  219. package/dist/q2-tecton-elements/p-2a8de00d.entry.js.map +1 -0
  220. package/dist/q2-tecton-elements/p-30296b0e.entry.js +2 -0
  221. package/dist/q2-tecton-elements/p-30296b0e.entry.js.map +1 -0
  222. package/dist/q2-tecton-elements/{p-ca43e917.entry.js → p-32130845.entry.js} +2 -2
  223. package/dist/q2-tecton-elements/{p-ff39ba49.entry.js → p-366a92d9.entry.js} +2 -2
  224. package/dist/q2-tecton-elements/p-4008aceb.entry.js +2 -0
  225. package/dist/q2-tecton-elements/p-4008aceb.entry.js.map +1 -0
  226. package/dist/q2-tecton-elements/{p-c9ee763d.entry.js → p-400f6071.entry.js} +2 -2
  227. package/dist/q2-tecton-elements/{p-c9ee763d.entry.js.map → p-400f6071.entry.js.map} +1 -1
  228. package/dist/q2-tecton-elements/p-43236cac.entry.js +2 -0
  229. package/dist/q2-tecton-elements/p-43236cac.entry.js.map +1 -0
  230. package/dist/q2-tecton-elements/{p-ca17f7ca.entry.js → p-49ecdf18.entry.js} +2 -2
  231. package/dist/q2-tecton-elements/{p-6f2de185.entry.js → p-4f7e6e79.entry.js} +2 -2
  232. package/dist/q2-tecton-elements/p-4f7e6e79.entry.js.map +1 -0
  233. package/dist/q2-tecton-elements/{p-a3d58a50.entry.js → p-56dd051a.entry.js} +2 -2
  234. package/dist/q2-tecton-elements/p-56dd051a.entry.js.map +1 -0
  235. package/dist/q2-tecton-elements/{p-abe30d0c.entry.js → p-6e313705.entry.js} +2 -2
  236. package/dist/q2-tecton-elements/p-75bb43b2.entry.js +2 -0
  237. package/dist/q2-tecton-elements/p-75bb43b2.entry.js.map +1 -0
  238. package/dist/q2-tecton-elements/p-79696bef.entry.js +2 -0
  239. package/dist/q2-tecton-elements/p-79696bef.entry.js.map +1 -0
  240. package/dist/q2-tecton-elements/{p-1d824cdf.entry.js → p-828850c1.entry.js} +2 -2
  241. package/dist/q2-tecton-elements/{p-774975fa.entry.js → p-861e83de.entry.js} +2 -2
  242. package/dist/q2-tecton-elements/p-861e83de.entry.js.map +1 -0
  243. package/dist/q2-tecton-elements/p-8a8d51f1.entry.js +2 -0
  244. package/dist/q2-tecton-elements/p-8a8d51f1.entry.js.map +1 -0
  245. package/dist/q2-tecton-elements/p-8e60bcaa.entry.js +2 -0
  246. package/dist/q2-tecton-elements/{p-6eac40be.entry.js.map → p-8e60bcaa.entry.js.map} +1 -1
  247. package/dist/q2-tecton-elements/p-9a5695db.entry.js +2 -0
  248. package/dist/q2-tecton-elements/p-9a5695db.entry.js.map +1 -0
  249. package/dist/q2-tecton-elements/{p-8fc099f5.entry.js → p-9b65cc28.entry.js} +2 -2
  250. package/dist/q2-tecton-elements/{p-3c42c90f.js → p-b6bcef6a.js} +1 -1
  251. package/dist/q2-tecton-elements/{p-f18caa3f.entry.js → p-bc73f69c.entry.js} +2 -2
  252. package/dist/q2-tecton-elements/{p-fb7dd7ab.entry.js → p-d32f8e53.entry.js} +2 -2
  253. package/dist/q2-tecton-elements/{p-a891571c.entry.js → p-d35de465.entry.js} +2 -2
  254. package/dist/q2-tecton-elements/{p-66ae329f.entry.js → p-dfa489ba.entry.js} +2 -2
  255. package/dist/q2-tecton-elements/{p-b849365e.entry.js → p-e793a82c.entry.js} +2 -2
  256. package/dist/q2-tecton-elements/{p-b849365e.entry.js.map → p-e793a82c.entry.js.map} +1 -1
  257. package/dist/q2-tecton-elements/{p-23183c61.entry.js → p-f57c4448.entry.js} +2 -2
  258. package/dist/q2-tecton-elements/{p-0e482a7c.entry.js → p-fcffc029.entry.js} +2 -2
  259. package/dist/q2-tecton-elements/p-fde11d9c.entry.js +2 -0
  260. package/dist/q2-tecton-elements/p-fde11d9c.entry.js.map +1 -0
  261. package/dist/q2-tecton-elements/{p-e25194ce.entry.js → p-fec9edc8.entry.js} +2 -2
  262. package/dist/q2-tecton-elements/p-fec9edc8.entry.js.map +1 -0
  263. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  264. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
  265. package/dist/test/elements/q2-chart-donut-test.e2e.js +9 -1
  266. package/dist/test/elements/q2-chart-donut-test.e2e.js.map +1 -1
  267. package/dist/test/elements/q2-data-table-test.e2e.js +107 -11
  268. package/dist/test/elements/q2-data-table-test.e2e.js.map +1 -1
  269. package/dist/test/elements/q2-dropdown-item-test.e2e.js +183 -104
  270. package/dist/test/elements/q2-dropdown-item-test.e2e.js.map +1 -1
  271. package/dist/test/elements/q2-editable-field-test.e2e.js +436 -418
  272. package/dist/test/elements/q2-editable-field-test.e2e.js.map +1 -1
  273. package/dist/test/elements/q2-form-test.e2e.js +93 -0
  274. package/dist/test/elements/q2-form-test.e2e.js.map +1 -0
  275. package/dist/test/elements/q2-popover-test.spec.js +162 -31
  276. package/dist/test/elements/q2-popover-test.spec.js.map +1 -1
  277. package/dist/test/elements/q2-relative-time-test.e2e.js +65 -40
  278. package/dist/test/elements/q2-relative-time-test.e2e.js.map +1 -1
  279. package/dist/test/elements/q2-select-test.e2e.js +53 -22
  280. package/dist/test/elements/q2-select-test.e2e.js.map +1 -1
  281. package/dist/test/elements/q2-stepper-test.e2e.js +23 -0
  282. package/dist/test/elements/q2-stepper-test.e2e.js.map +1 -1
  283. package/dist/types/components/q2-form/q2-form.d.ts +6 -0
  284. package/dist/types/components/q2-input/q2-input.d.ts +15 -1
  285. package/dist/types/components/q2-popover/q2-popover.d.ts +2 -0
  286. package/dist/types/components/q2-relative-time/q2-relative-time.d.ts +25 -11
  287. package/dist/types/components/q2-section/q2-section.d.ts +10 -2
  288. package/dist/types/components.d.ts +74 -22
  289. package/dist/types/workspace/workspace/{_Gitlab_tecton-production_master → on-production_release_1.48.0-pre}/packages/q2-tecton-elements/.stencil/test/helpers.d.ts +1 -1
  290. package/package.json +3 -3
  291. package/dist/q2-tecton-elements/p-0e27ea75.entry.js +0 -2
  292. package/dist/q2-tecton-elements/p-0e27ea75.entry.js.map +0 -1
  293. package/dist/q2-tecton-elements/p-24d96969.entry.js +0 -2
  294. package/dist/q2-tecton-elements/p-24d96969.entry.js.map +0 -1
  295. package/dist/q2-tecton-elements/p-33af97b0.entry.js +0 -2
  296. package/dist/q2-tecton-elements/p-33af97b0.entry.js.map +0 -1
  297. package/dist/q2-tecton-elements/p-45d70da2.entry.js +0 -2
  298. package/dist/q2-tecton-elements/p-45d70da2.entry.js.map +0 -1
  299. package/dist/q2-tecton-elements/p-52e277b8.entry.js +0 -2
  300. package/dist/q2-tecton-elements/p-52e277b8.entry.js.map +0 -1
  301. package/dist/q2-tecton-elements/p-6eac40be.entry.js +0 -2
  302. package/dist/q2-tecton-elements/p-6f2de185.entry.js.map +0 -1
  303. package/dist/q2-tecton-elements/p-774975fa.entry.js.map +0 -1
  304. package/dist/q2-tecton-elements/p-8a00552f.entry.js +0 -2
  305. package/dist/q2-tecton-elements/p-8a00552f.entry.js.map +0 -1
  306. package/dist/q2-tecton-elements/p-9eafabd5.entry.js +0 -2
  307. package/dist/q2-tecton-elements/p-9eafabd5.entry.js.map +0 -1
  308. package/dist/q2-tecton-elements/p-a03c29f3.entry.js +0 -2
  309. package/dist/q2-tecton-elements/p-a03c29f3.entry.js.map +0 -1
  310. package/dist/q2-tecton-elements/p-a3d58a50.entry.js.map +0 -1
  311. package/dist/q2-tecton-elements/p-e25194ce.entry.js.map +0 -1
  312. package/dist/q2-tecton-elements/p-f450db0b.entry.js +0 -2
  313. package/dist/q2-tecton-elements/p-f450db0b.entry.js.map +0 -1
  314. package/dist/q2-tecton-elements/p-fce6bc58.entry.js +0 -2
  315. package/dist/q2-tecton-elements/p-fce6bc58.entry.js.map +0 -1
  316. /package/dist/q2-tecton-elements/{p-d5776227.entry.js.map → p-0d6edd2a.entry.js.map} +0 -0
  317. /package/dist/q2-tecton-elements/{p-dd18416f.entry.js.map → p-258f8c9c.entry.js.map} +0 -0
  318. /package/dist/q2-tecton-elements/{p-ca43e917.entry.js.map → p-32130845.entry.js.map} +0 -0
  319. /package/dist/q2-tecton-elements/{p-ff39ba49.entry.js.map → p-366a92d9.entry.js.map} +0 -0
  320. /package/dist/q2-tecton-elements/{p-ca17f7ca.entry.js.map → p-49ecdf18.entry.js.map} +0 -0
  321. /package/dist/q2-tecton-elements/{p-abe30d0c.entry.js.map → p-6e313705.entry.js.map} +0 -0
  322. /package/dist/q2-tecton-elements/{p-1d824cdf.entry.js.map → p-828850c1.entry.js.map} +0 -0
  323. /package/dist/q2-tecton-elements/{p-8fc099f5.entry.js.map → p-9b65cc28.entry.js.map} +0 -0
  324. /package/dist/q2-tecton-elements/{p-3c42c90f.js.map → p-b6bcef6a.js.map} +0 -0
  325. /package/dist/q2-tecton-elements/{p-f18caa3f.entry.js.map → p-bc73f69c.entry.js.map} +0 -0
  326. /package/dist/q2-tecton-elements/{p-fb7dd7ab.entry.js.map → p-d32f8e53.entry.js.map} +0 -0
  327. /package/dist/q2-tecton-elements/{p-a891571c.entry.js.map → p-d35de465.entry.js.map} +0 -0
  328. /package/dist/q2-tecton-elements/{p-66ae329f.entry.js.map → p-dfa489ba.entry.js.map} +0 -0
  329. /package/dist/q2-tecton-elements/{p-23183c61.entry.js.map → p-f57c4448.entry.js.map} +0 -0
  330. /package/dist/q2-tecton-elements/{p-0e482a7c.entry.js.map → p-fcffc029.entry.js.map} +0 -0
  331. /package/dist/types/workspace/workspace/{_Gitlab_tecton-production_master → on-production_release_1.48.0-pre}/packages/q2-tecton-elements/.stencil/test/elements/q2-detail/slot-component.d.ts +0 -0
@@ -102,60 +102,74 @@ describe('q2-relative-time', () => {
102
102
  });
103
103
  describe('Props', () => {
104
104
  describe('baseDate', () => {
105
- describe('when date is NOT provided', () => {
106
- it('it renders with the default baseDate', async () => {
105
+ describe('when date prop is NOT provided', () => {
106
+ it('it displays the default error message', async () => {
107
107
  props = { baseDate: '2020-02-01' };
108
108
  specPage = await createNewSpecPage(props);
109
- expect(await specPage.root.displayedMessageValue()).toBe('Invalid Date Provided');
109
+ expect(await specPage.root.validDateProp()).toBe(false);
110
+ expect(await specPage.root.validBaseDateProp()).toBe(true);
111
+ expect(await specPage.root.displayedMessageValue()).toBe('tecton.element.relativeTime.invalidDate');
110
112
  });
111
113
  });
112
- describe('when valid baseDate AND date are provided', () => {
113
- it('renders with provided baseDate', async () => {
114
- props = {
115
- date: '2020-02-01',
116
- baseDate: '2024-05-14',
117
- };
118
- specPage = await createNewSpecPage(props);
119
- expect(specPage.root.baseDate).toBe('2024-05-14');
120
- expect(await specPage.root.displayedMessageValue()).toBe('4 yr.');
121
- });
122
- it('trims the suffixes from displayedMessage', async () => {
123
- props = {
124
- date: '2020-02-01',
125
- baseDate: '2024-05-14',
126
- };
127
- specPage = await createNewSpecPage(props);
128
- expect(await specPage.root.displayedMessageValue()).toBe('4 yr.');
114
+ describe('when date prop is provided and valid', () => {
115
+ describe('when baseDate is provided and valid', () => {
116
+ it('renders with provided baseDate', async () => {
117
+ props = {
118
+ date: '2020-02-01',
119
+ baseDate: '2024-05-14',
120
+ };
121
+ specPage = await createNewSpecPage(props);
122
+ expect(specPage.root.baseDate).toBe('2024-05-14');
123
+ expect(await specPage.root.validDateProp()).toBe(true);
124
+ expect(await specPage.root.validBaseDateProp()).toBe(true);
125
+ expect(await specPage.root.displayedMessageValue()).toBe('4 yr.');
126
+ });
127
+ it('trims the suffixes from displayedMessage', async () => {
128
+ props = {
129
+ date: '2020-02-01',
130
+ baseDate: '2024-05-14',
131
+ };
132
+ specPage = await createNewSpecPage(props);
133
+ expect(await specPage.root.displayedMessageValue()).toBe('4 yr.');
134
+ });
135
+ it('displays only numeric messages', async () => {
136
+ props = {
137
+ date: '2020-02-01',
138
+ baseDate: '2020-02-02',
139
+ };
140
+ specPage = await createNewSpecPage(props);
141
+ expect(await specPage.root.displayedMessageValue()).not.toBe('yesterday');
142
+ expect(await specPage.root.displayedMessageValue()).toBe('1 day');
143
+ });
129
144
  });
130
- it("does not use the provided baseDate if it's invalid", async () => {
131
- props = {
132
- date: '2020-02-01T00:00:00Z',
133
- baseDate: '02-03-2020T00:00:00Z',
134
- };
135
- specPage = await createNewSpecPage(props);
136
- expect(await specPage.root.displayedMessageValue()).not.toBe('2 days ago');
137
- });
138
- it('displays only numeric messages', async () => {
139
- props = {
140
- date: '2020-02-01',
141
- baseDate: '2020-02-02',
142
- };
143
- specPage = await createNewSpecPage(props);
144
- expect(await specPage.root.displayedMessageValue()).toBe('1 day');
145
+ describe('when baseDate is provided but invalid', () => {
146
+ it('displays error message if the provided baseDate is invalid', async () => {
147
+ props = {
148
+ date: '2020-02-01T00:00:00Z',
149
+ baseDate: '02-03-2020T00:00:00Z',
150
+ };
151
+ specPage = await createNewSpecPage(props);
152
+ expect(await specPage.root.validBaseDateProp()).toBe(false);
153
+ expect(await specPage.root.displayedMessageValue()).not.toBe('2 days ago');
154
+ expect(await specPage.root.displayedMessageValue()).toBe('tecton.element.relativeTime.invalidDate');
155
+ });
145
156
  });
146
157
  });
147
158
  });
148
159
  describe('date', () => {
149
- it("does not use the provided date if it's invalid", async () => {
160
+ it('displays error message if the provided date is invalid', async () => {
150
161
  props = { date: '02-01-2020T00:00:00Z' };
151
162
  specPage = await createNewSpecPage(props);
152
163
  expect(specPage.root.date).not.toBe('2020-02-01T00:00:00');
153
- expect(await specPage.root.displayedMessageValue()).toBe('Invalid Date Provided');
164
+ expect(await specPage.root.displayedMessageValue()).toBe('tecton.element.relativeTime.invalidDate');
154
165
  });
155
- it('should render with valid date', async () => {
166
+ it('Displays a message when valid', async () => {
156
167
  props = { date: '2020-02-01T00:00:00Z' };
157
168
  specPage = await createNewSpecPage(props);
158
169
  expect(specPage.root.date).toBe('2020-02-01T00:00:00Z');
170
+ expect(await specPage.root.validDateProp()).toBe(true);
171
+ expect(await specPage.root.displayedMessageValue()).not.toBe('tecton.element.relativeTime.invalidDate');
172
+ expect(await specPage.root.displayedMessageValue()).toBeTruthy();
159
173
  });
160
174
  });
161
175
  describe('locale', () => {
@@ -239,10 +253,21 @@ describe('q2-relative-time', () => {
239
253
  specPage = await createNewSpecPage(props);
240
254
  expect(specPage.root.sync).toBe(false);
241
255
  });
242
- it('is automatically disabled if date prop is invalid', async () => {
256
+ it('is automatically set to false if date prop is invalid', async () => {
243
257
  props = { date: '02-01-2020T00:00:00Z' };
244
258
  specPage = await createNewSpecPage(props);
245
- expect(await specPage.root.displayedMessageValue()).toBe('Invalid Date Provided');
259
+ expect(await specPage.root.validDateProp()).toBe(false);
260
+ expect(await specPage.root.displayedMessageValue()).toBe('tecton.element.relativeTime.invalidDate');
261
+ expect(specPage.root.sync).toBe(false);
262
+ });
263
+ it('is automatically set to false if the provided baseDate prop is invalid', async () => {
264
+ props = {
265
+ date: '2020-02-01T00:00:00Z',
266
+ baseDate: '02-03-2020T00:00:00Z',
267
+ };
268
+ specPage = await createNewSpecPage(props);
269
+ expect(await specPage.root.validBaseDateProp()).toBe(false);
270
+ expect(await specPage.root.displayedMessageValue()).toBe('tecton.element.relativeTime.invalidDate');
246
271
  expect(specPage.root.sync).toBe(false);
247
272
  });
248
273
  });
@@ -1 +1 @@
1
- {"version":3,"file":"q2-relative-time-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-relative-time-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { SpecPage, newSpecPage } from '@stencil/core/testing';\nimport { evaluateA11y, getListOfStyleCompilationIssues, setup } from 'test/helpers';\nimport { Q2RelativeTime } from '../../src/components/q2-relative-time/q2-relative-time';\n\nfunction createNewSpecPage(props: {\n date?: string;\n baseDate?: string;\n sync?: boolean;\n locale?: string;\n messageFormat?: string;\n numeric?: string;\n unit?: string;\n}) {\n let htmlProps: string = '';\n Object.entries(props).forEach(([key, value]) => {\n switch (key) {\n case 'date':\n htmlProps += ` date=${value}`;\n break;\n case 'baseDate':\n htmlProps += ` base-date=${value}`;\n break;\n case 'sync':\n htmlProps += ` sync=\"${value}\"`;\n break;\n case 'locale':\n htmlProps += ` locale=${value}`;\n break;\n case 'messageFormat':\n htmlProps += ` message-format=${value}`;\n break;\n case 'numeric':\n htmlProps += ` numeric=\"${value}\"`;\n break;\n case 'unit':\n htmlProps += ` unit=${value}`;\n break;\n default:\n break;\n }\n });\n\n return newSpecPage({\n components: [Q2RelativeTime],\n html: `<q2-relative-time ${htmlProps}></q2-relative-time>`,\n });\n}\n\ndescribe('q2-relative-time', () => {\n let specPage: SpecPage;\n let props: {\n date?: string;\n baseDate?: string;\n sync?: boolean;\n locale?: string;\n messageFormat?: string;\n numeric?: string;\n unit?: string;\n };\n\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-relative-time></q2-relative-time>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-relative-time')).toHaveLength(0);\n });\n describe('[A11y] guideline compliance', () => {\n it('Does not have accessibility violations', async () => {\n const page = await setup({ html: `<q2-relative-time date='2020-02-01' />` });\n const hasViolations = await evaluateA11y(page);\n expect(hasViolations).toBe(false);\n });\n });\n\n describe('Configuration', () => {\n it('renders with minimal configuration', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root).toEqualHtml(`\n <q2-relative-time\n date=\"2020-02-01\"\n base-date=\"2024-05-14\"\n locale=\"en-US\"\n message-format=\"short\"\n numeric=\"auto\">\n <mock:shadow-root>\n <time datetime=\"4 yr.\">\n 4 yr.\n </time>\n </mock:shadow-root>\n </q2-relative-time>\n `);\n });\n\n it('renders with full configuration', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n sync: false,\n locale: 'en-US',\n messageFormat: 'long',\n numeric: 'always',\n unit: 'year',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root).toEqualHtml(`\n <q2-relative-time\n date=\"2020-02-01\"\n base-date=\"2024-05-14\"\n sync=\"false\"\n locale=\"en-US\"\n message-format=\"long\"\n numeric=\"always\"\n unit=\"year\">\n <mock:shadow-root>\n <time datetime=\"4 years\">\n 4 years\n </time>\n </mock:shadow-root>\n </q2-relative-time>\n `);\n });\n });\n\n describe('Props', () => {\n describe('baseDate', () => {\n describe('when date is NOT provided', () => {\n it('it renders with the default baseDate', async () => {\n props = { baseDate: '2020-02-01' };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).toBe('Invalid Date Provided');\n });\n });\n describe('when valid baseDate AND date are provided', () => {\n it('renders with provided baseDate', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.baseDate).toBe('2024-05-14');\n expect(await specPage.root.displayedMessageValue()).toBe('4 yr.');\n });\n it('trims the suffixes from displayedMessage', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).toBe('4 yr.');\n });\n it(\"does not use the provided baseDate if it's invalid\", async () => {\n props = {\n date: '2020-02-01T00:00:00Z',\n baseDate: '02-03-2020T00:00:00Z',\n };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).not.toBe('2 days ago');\n });\n it('displays only numeric messages', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2020-02-02',\n };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).toBe('1 day');\n });\n });\n });\n\n describe('date', () => {\n it(\"does not use the provided date if it's invalid\", async () => {\n props = { date: '02-01-2020T00:00:00Z' };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.date).not.toBe('2020-02-01T00:00:00');\n expect(await specPage.root.displayedMessageValue()).toBe('Invalid Date Provided');\n });\n it('should render with valid date', async () => {\n props = { date: '2020-02-01T00:00:00Z' };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.date).toBe('2020-02-01T00:00:00Z');\n });\n });\n\n describe('locale', () => {\n it('should render with given locale', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n locale: 'fr',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.locale).toBe('fr');\n expect(await specPage.root.displayedMessageValue()).toBe('il y a 4 a');\n });\n });\n\n describe('messageFormat', () => {\n describe('long', () => {\n it('should display the message in long form', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n messageFormat: 'long',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.messageFormat).toBe('long');\n expect(await specPage.root.displayedMessageValue()).toBe('4 years');\n });\n });\n describe('short', () => {\n it('should display the message in short form', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n messageFormat: 'short',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.messageFormat).toBe('short');\n expect(await specPage.root.displayedMessageValue()).toBe('4 yr.');\n });\n });\n describe('narrow', () => {\n it('should display the message in narrow form', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n messageFormat: 'narrow',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.messageFormat).toBe('narrow');\n expect(await specPage.root.displayedMessageValue()).toBe('4y');\n });\n });\n });\n\n describe('numeric', () => {\n it('is auto by default', async () => {\n props = {\n date: '2020-02-01',\n numeric: 'auto',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.numeric).toBe('auto');\n });\n\n it('only displays numerical values when set to always', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2020-02-02',\n numeric: 'always',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.numeric).toBe('always');\n expect(await specPage.root.displayedMessageValue()).toBe('1 day');\n });\n });\n\n describe('sync', () => {\n it('is true by default', async () => {\n props = { date: '2020-02-01' };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.sync).toBe(true);\n });\n it('can be set to false', async () => {\n props = { sync: false };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.sync).toBe(false);\n });\n it('is automatically disabled if date prop is invalid', async () => {\n props = { date: '02-01-2020T00:00:00Z' };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).toBe('Invalid Date Provided');\n expect(specPage.root.sync).toBe(false);\n });\n });\n\n describe('unit', () => {\n it('forces the message to only use the provided unit', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n unit: 'year',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.unit).toBe('year');\n expect(await specPage.root.displayedMessageValue()).toContain('yr');\n\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n unit: 'month',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.unit).toBe('month');\n expect(await specPage.root.displayedMessageValue()).toContain('mo');\n });\n });\n });\n\n describe('trimSuffix', () => {\n it('does NOT trim the suffix if baseDate is invalid or not provided', async () => {\n props = {\n date: '2020-02-02',\n };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).toContain('ago');\n });\n\n it('trims the in/ago suffix when valid baseDate is provided', async () => {\n props = {\n date: '2020-02-02',\n baseDate: '2020-02-05',\n };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).not.toContain('ago');\n });\n });\n});\n"]}
1
+ {"version":3,"file":"q2-relative-time-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-relative-time-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { SpecPage, newSpecPage } from '@stencil/core/testing';\nimport { evaluateA11y, getListOfStyleCompilationIssues, setTestStrings, setup } from 'test/helpers';\nimport { Q2RelativeTime } from '../../src/components/q2-relative-time/q2-relative-time';\n\nfunction createNewSpecPage(props: {\n date?: string;\n baseDate?: string;\n sync?: boolean;\n locale?: string;\n messageFormat?: string;\n numeric?: string;\n unit?: string;\n}) {\n let htmlProps: string = '';\n Object.entries(props).forEach(([key, value]) => {\n switch (key) {\n case 'date':\n htmlProps += ` date=${value}`;\n break;\n case 'baseDate':\n htmlProps += ` base-date=${value}`;\n break;\n case 'sync':\n htmlProps += ` sync=\"${value}\"`;\n break;\n case 'locale':\n htmlProps += ` locale=${value}`;\n break;\n case 'messageFormat':\n htmlProps += ` message-format=${value}`;\n break;\n case 'numeric':\n htmlProps += ` numeric=\"${value}\"`;\n break;\n case 'unit':\n htmlProps += ` unit=${value}`;\n break;\n default:\n break;\n }\n });\n\n return newSpecPage({\n components: [Q2RelativeTime],\n html: `<q2-relative-time ${htmlProps}></q2-relative-time>`,\n });\n}\n\ndescribe('q2-relative-time', () => {\n let specPage: SpecPage;\n let props: {\n date?: string;\n baseDate?: string;\n sync?: boolean;\n locale?: string;\n messageFormat?: string;\n numeric?: string;\n unit?: string;\n };\n\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-relative-time></q2-relative-time>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-relative-time')).toHaveLength(0);\n });\n describe('[A11y] guideline compliance', () => {\n it('Does not have accessibility violations', async () => {\n const page = await setup({ html: `<q2-relative-time date='2020-02-01' />` });\n const hasViolations = await evaluateA11y(page);\n expect(hasViolations).toBe(false);\n });\n });\n\n describe('Configuration', () => {\n it('renders with minimal configuration', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root).toEqualHtml(`\n <q2-relative-time\n date=\"2020-02-01\"\n base-date=\"2024-05-14\"\n locale=\"en-US\"\n message-format=\"short\"\n numeric=\"auto\">\n <mock:shadow-root>\n <time datetime=\"4 yr.\">\n 4 yr.\n </time>\n </mock:shadow-root>\n </q2-relative-time>\n `);\n });\n\n it('renders with full configuration', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n sync: false,\n locale: 'en-US',\n messageFormat: 'long',\n numeric: 'always',\n unit: 'year',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root).toEqualHtml(`\n <q2-relative-time\n date=\"2020-02-01\"\n base-date=\"2024-05-14\"\n sync=\"false\"\n locale=\"en-US\"\n message-format=\"long\"\n numeric=\"always\"\n unit=\"year\">\n <mock:shadow-root>\n <time datetime=\"4 years\">\n 4 years\n </time>\n </mock:shadow-root>\n </q2-relative-time>\n `);\n });\n });\n\n describe('Props', () => {\n describe('baseDate', () => {\n describe('when date prop is NOT provided', () => {\n it('it displays the default error message', async () => {\n props = { baseDate: '2020-02-01' };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.validDateProp()).toBe(false);\n expect(await specPage.root.validBaseDateProp()).toBe(true);\n expect(await specPage.root.displayedMessageValue()).toBe('tecton.element.relativeTime.invalidDate');\n });\n });\n describe('when date prop is provided and valid', () => {\n describe('when baseDate is provided and valid', () => {\n it('renders with provided baseDate', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.baseDate).toBe('2024-05-14');\n expect(await specPage.root.validDateProp()).toBe(true);\n expect(await specPage.root.validBaseDateProp()).toBe(true);\n expect(await specPage.root.displayedMessageValue()).toBe('4 yr.');\n });\n it('trims the suffixes from displayedMessage', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).toBe('4 yr.');\n });\n it('displays only numeric messages', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2020-02-02',\n };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).not.toBe('yesterday');\n expect(await specPage.root.displayedMessageValue()).toBe('1 day');\n });\n });\n describe('when baseDate is provided but invalid', () => {\n it('displays error message if the provided baseDate is invalid', async () => {\n props = {\n date: '2020-02-01T00:00:00Z',\n baseDate: '02-03-2020T00:00:00Z',\n };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.validBaseDateProp()).toBe(false);\n expect(await specPage.root.displayedMessageValue()).not.toBe('2 days ago');\n expect(await specPage.root.displayedMessageValue()).toBe(\n 'tecton.element.relativeTime.invalidDate'\n );\n });\n });\n });\n });\n\n describe('date', () => {\n it('displays error message if the provided date is invalid', async () => {\n props = { date: '02-01-2020T00:00:00Z' };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.date).not.toBe('2020-02-01T00:00:00');\n expect(await specPage.root.displayedMessageValue()).toBe('tecton.element.relativeTime.invalidDate');\n });\n it('Displays a message when valid', async () => {\n props = { date: '2020-02-01T00:00:00Z' };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.date).toBe('2020-02-01T00:00:00Z');\n expect(await specPage.root.validDateProp()).toBe(true);\n expect(await specPage.root.displayedMessageValue()).not.toBe('tecton.element.relativeTime.invalidDate');\n expect(await specPage.root.displayedMessageValue()).toBeTruthy();\n });\n });\n\n describe('locale', () => {\n it('should render with given locale', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n locale: 'fr',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.locale).toBe('fr');\n expect(await specPage.root.displayedMessageValue()).toBe('il y a 4 a');\n });\n });\n\n describe('messageFormat', () => {\n describe('long', () => {\n it('should display the message in long form', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n messageFormat: 'long',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.messageFormat).toBe('long');\n expect(await specPage.root.displayedMessageValue()).toBe('4 years');\n });\n });\n describe('short', () => {\n it('should display the message in short form', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n messageFormat: 'short',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.messageFormat).toBe('short');\n expect(await specPage.root.displayedMessageValue()).toBe('4 yr.');\n });\n });\n describe('narrow', () => {\n it('should display the message in narrow form', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n messageFormat: 'narrow',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.messageFormat).toBe('narrow');\n expect(await specPage.root.displayedMessageValue()).toBe('4y');\n });\n });\n });\n\n describe('numeric', () => {\n it('is auto by default', async () => {\n props = {\n date: '2020-02-01',\n numeric: 'auto',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.numeric).toBe('auto');\n });\n\n it('only displays numerical values when set to always', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2020-02-02',\n numeric: 'always',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.numeric).toBe('always');\n expect(await specPage.root.displayedMessageValue()).toBe('1 day');\n });\n });\n\n describe('sync', () => {\n it('is true by default', async () => {\n props = { date: '2020-02-01' };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.sync).toBe(true);\n });\n it('can be set to false', async () => {\n props = { sync: false };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.sync).toBe(false);\n });\n it('is automatically set to false if date prop is invalid', async () => {\n props = { date: '02-01-2020T00:00:00Z' };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.validDateProp()).toBe(false);\n expect(await specPage.root.displayedMessageValue()).toBe('tecton.element.relativeTime.invalidDate');\n expect(specPage.root.sync).toBe(false);\n });\n it('is automatically set to false if the provided baseDate prop is invalid', async () => {\n props = {\n date: '2020-02-01T00:00:00Z',\n baseDate: '02-03-2020T00:00:00Z',\n };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.validBaseDateProp()).toBe(false);\n expect(await specPage.root.displayedMessageValue()).toBe('tecton.element.relativeTime.invalidDate');\n expect(specPage.root.sync).toBe(false);\n });\n });\n\n describe('unit', () => {\n it('forces the message to only use the provided unit', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n unit: 'year',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.unit).toBe('year');\n expect(await specPage.root.displayedMessageValue()).toContain('yr');\n\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n unit: 'month',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.unit).toBe('month');\n expect(await specPage.root.displayedMessageValue()).toContain('mo');\n });\n });\n });\n\n describe('trimSuffix', () => {\n it('does NOT trim the suffix if baseDate is invalid or not provided', async () => {\n props = {\n date: '2020-02-02',\n };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).toContain('ago');\n });\n\n it('trims the in/ago suffix when valid baseDate is provided', async () => {\n props = {\n date: '2020-02-02',\n baseDate: '2020-02-05',\n };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).not.toContain('ago');\n });\n });\n});\n"]}
@@ -2141,7 +2141,7 @@ describe('q2-select', () => {
2141
2141
  });
2142
2142
  describe('when input has value', () => {
2143
2143
  beforeEach(async () => {
2144
- await select.setAttribute('value', '2');
2144
+ select.setAttribute('value', '2');
2145
2145
  await page.waitForChanges();
2146
2146
  expect(options[1]).toHaveAttribute('selected');
2147
2147
  expect(await popover.getProperty('open')).toBe(false);
@@ -2200,13 +2200,17 @@ describe('q2-select', () => {
2200
2200
  });
2201
2201
  });
2202
2202
  describe('when input is empty', () => {
2203
- it("clears typed value if dropdown isn't open on Escape", async () => {
2204
- await input.focus();
2205
- await input.type('Option');
2206
- await page.waitForChanges();
2207
- expect(await input.getProperty('value')).toEqual('Option');
2208
- await input.press('Escape');
2209
- expect(await input.getProperty('value')).toEqual('');
2203
+ it('opens the dropdown on Space', async () => {
2204
+ await dispatchEvent(page, ['q2-select', 'q2-input'], 'keydown', {
2205
+ key: ' ',
2206
+ });
2207
+ expect(await popover.getProperty('open')).toBe(true);
2208
+ });
2209
+ it('opens the dropdown on Enter', async () => {
2210
+ await dispatchEvent(page, ['q2-select', 'q2-input'], 'keydown', {
2211
+ key: 'Enter',
2212
+ });
2213
+ expect(await popover.getProperty('open')).toBe(true);
2210
2214
  });
2211
2215
  it('opens the dropdown, and focuses first option on ArrowDown', async () => {
2212
2216
  await dispatchEvent(page, ['q2-select', 'q2-input'], 'keydown', {
@@ -2226,20 +2230,47 @@ describe('q2-select', () => {
2226
2230
  expect(lastOption).toHaveAttribute('active');
2227
2231
  expect(await getFocusedOptionValue(page)).toEqual(lastOption.getAttribute('value'));
2228
2232
  });
2229
- it('searches for option if printable character is pressed', async () => {
2230
- const eventData = {
2231
- key: 'n',
2232
- detail: {
2233
- value: 'option 2',
2234
- },
2235
- };
2236
- await dispatchEvent(page, ['q2-select', 'q2-input'], 'keydown', eventData);
2237
- await dispatchEvent(page, ['q2-select', 'q2-input'], 'input', eventData);
2238
- await dispatchEvent(page, ['q2-select', 'q2-input'], 'keyup', eventData);
2239
- expect(await popover.getProperty('open')).toBe(true);
2240
- expect(options[0]).toHaveAttribute('hidden');
2241
- expect(options[1]).not.toHaveAttribute('hidden');
2242
- expect(options[2]).toHaveAttribute('hidden');
2233
+ it("clears typed value if dropdown isn't open on Escape", async () => {
2234
+ await input.focus();
2235
+ await input.type('Option');
2236
+ await page.waitForChanges();
2237
+ expect(await input.getProperty('value')).toEqual('Option');
2238
+ await input.press('Escape');
2239
+ expect(await input.getProperty('value')).toEqual('');
2240
+ });
2241
+ describe('when printable character is pressed', () => {
2242
+ it('searches for option', async () => {
2243
+ const eventData = {
2244
+ key: 'n',
2245
+ detail: {
2246
+ value: 'option 2',
2247
+ },
2248
+ };
2249
+ await dispatchEvent(page, ['q2-select', 'q2-input'], 'keydown', eventData);
2250
+ await dispatchEvent(page, ['q2-select', 'q2-input'], 'input', eventData);
2251
+ await dispatchEvent(page, ['q2-select', 'q2-input'], 'keyup', eventData);
2252
+ expect(await popover.getProperty('open')).toBe(true);
2253
+ expect(options[0]).toHaveAttribute('hidden');
2254
+ expect(options[1]).not.toHaveAttribute('hidden');
2255
+ expect(options[2]).toHaveAttribute('hidden');
2256
+ });
2257
+ it('enters dropdown on Arrow Down', async () => {
2258
+ const eventData = {
2259
+ key: 'n',
2260
+ detail: {
2261
+ value: 'option 2',
2262
+ },
2263
+ };
2264
+ await dispatchEvent(page, ['q2-select', 'q2-input'], 'keydown', eventData);
2265
+ await dispatchEvent(page, ['q2-select', 'q2-input'], 'input', eventData);
2266
+ await dispatchEvent(page, ['q2-select', 'q2-input'], 'keyup', eventData);
2267
+ expect(await popover.getProperty('open')).toBe(true);
2268
+ await dispatchEvent(page, ['q2-select', 'q2-input'], 'keydown', {
2269
+ key: 'ArrowDown',
2270
+ });
2271
+ const visibleOption = options[1];
2272
+ expect(await getFocusedOptionValue(page)).toEqual(visibleOption.getAttribute('value'));
2273
+ });
2243
2274
  });
2244
2275
  describe('when multiple', () => {
2245
2276
  beforeEach(async () => {