@genexus/genexus-ide-ui 1.0.18 → 1.0.20

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 (372) hide show
  1. package/dist/cjs/{assets-manager-4b67360e.js → assets-manager-a318866f.js} +31 -31
  2. package/dist/cjs/{assets-manager-4b67360e.js.map → assets-manager-a318866f.js.map} +1 -1
  3. package/dist/cjs/{form-validation-df39cabb.js → form-validation-0019e158.js} +2 -2
  4. package/dist/cjs/form-validation-0019e158.js.map +1 -0
  5. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  6. package/dist/cjs/gx-ide-ai-message.cjs.entry.js +2 -2
  7. package/dist/cjs/gx-ide-ai-message.cjs.entry.js.map +1 -1
  8. package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js +1 -1
  9. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +1 -1
  10. package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js +2 -2
  11. package/dist/cjs/gx-ide-data-selector.cjs.entry.js +3 -2
  12. package/dist/cjs/gx-ide-data-selector.cjs.entry.js.map +1 -1
  13. package/dist/cjs/{gx-ide-empty-state_2.cjs.entry.js → gx-ide-empty-state.cjs.entry.js} +3 -56
  14. package/dist/cjs/gx-ide-empty-state.cjs.entry.js.map +1 -0
  15. package/dist/cjs/gx-ide-entity-selector.cjs.entry.js +3 -3
  16. package/dist/cjs/gx-ide-entity-selector.cjs.entry.js.map +1 -1
  17. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +7 -4
  18. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js.map +1 -1
  19. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +1 -1
  20. package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js +4 -27
  21. package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js.map +1 -1
  22. package/dist/cjs/gx-ide-loader.cjs.entry.js +61 -0
  23. package/dist/cjs/gx-ide-loader.cjs.entry.js.map +1 -0
  24. package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js +1 -1
  25. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +1 -1
  26. package/dist/cjs/gx-ide-navigation-report.cjs.entry.js +228 -0
  27. package/dist/cjs/gx-ide-navigation-report.cjs.entry.js.map +1 -0
  28. package/dist/cjs/gx-ide-new-environment.cjs.entry.js +4 -3
  29. package/dist/cjs/gx-ide-new-environment.cjs.entry.js.map +1 -1
  30. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +9 -8
  31. package/dist/cjs/gx-ide-new-kb.cjs.entry.js.map +1 -1
  32. package/dist/cjs/gx-ide-new-object.cjs.entry.js +4 -3
  33. package/dist/cjs/gx-ide-new-object.cjs.entry.js.map +1 -1
  34. package/dist/cjs/gx-ide-object-selector.cjs.entry.js +7 -6
  35. package/dist/cjs/gx-ide-object-selector.cjs.entry.js.map +1 -1
  36. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +1 -1
  37. package/dist/cjs/gx-ide-splash.cjs.entry.js +76 -0
  38. package/dist/cjs/gx-ide-splash.cjs.entry.js.map +1 -0
  39. package/dist/cjs/gx-ide-start-page.cjs.entry.js +2645 -105
  40. package/dist/cjs/gx-ide-start-page.cjs.entry.js.map +1 -1
  41. package/dist/cjs/gx-ide-status-buttons.cjs.entry.js +35 -17
  42. package/dist/cjs/gx-ide-status-buttons.cjs.entry.js.map +1 -1
  43. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +1 -1
  44. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +1 -1
  45. package/dist/cjs/gx-ide-welcome-page.cjs.entry.js +257 -0
  46. package/dist/cjs/gx-ide-welcome-page.cjs.entry.js.map +1 -0
  47. package/dist/cjs/gx-ide-ww-images.cjs.entry.js +396 -279
  48. package/dist/cjs/gx-ide-ww-images.cjs.entry.js.map +1 -1
  49. package/dist/cjs/{helpers-b5b4a659.js → helpers-19194a5a.js} +1 -7
  50. package/dist/{genexus-ide-ui/p-c339f703.js.map → cjs/helpers-19194a5a.js.map} +1 -1
  51. package/dist/cjs/loader.cjs.js +1 -1
  52. package/dist/collection/collection-manifest.json +4 -2
  53. package/dist/collection/common/form-validation.js +1 -1
  54. package/dist/collection/common/form-validation.js.map +1 -1
  55. package/dist/collection/components/_helpers/entity-selector/entity-selector.css +2 -2
  56. package/dist/collection/components/_helpers/entity-selector/entity-selector.js +1 -1
  57. package/dist/collection/components/_helpers/entity-selector/entity-selector.js.map +1 -1
  58. package/dist/collection/components/_helpers/ide-loader/ide-loader.css +4 -1
  59. package/dist/collection/components/_helpers/ide-loader/ide-loader.js +2 -2
  60. package/dist/collection/components/_helpers/ide-loader/ide-loader.js.map +1 -1
  61. package/dist/collection/components/_helpers/list-selector/list-selector-item/list-selector-item.css +19 -332
  62. package/dist/collection/components/_helpers/list-selector/list-selector-item/list-selector-item.js +2 -64
  63. package/dist/collection/components/_helpers/list-selector/list-selector-item/list-selector-item.js.map +1 -1
  64. package/dist/collection/components/_helpers/list-selector/list-selector.css +11 -9
  65. package/dist/collection/components/_helpers/list-selector/list-selector.js +2 -75
  66. package/dist/collection/components/_helpers/list-selector/list-selector.js.map +1 -1
  67. package/dist/collection/components/_helpers/status-buttons/gx-ide-status-buttons.css +20 -61
  68. package/dist/collection/components/_helpers/status-buttons/gx-ide-status-buttons.js +34 -17
  69. package/dist/collection/components/_helpers/status-buttons/gx-ide-status-buttons.js.map +1 -1
  70. package/dist/collection/components/ai-assistant/ai-message.css +1 -1
  71. package/dist/collection/components/data-selector/data-selector.js +2 -1
  72. package/dist/collection/components/data-selector/data-selector.js.map +1 -1
  73. package/dist/collection/components/kb-manager-export/kb-manager-export.js +6 -3
  74. package/dist/collection/components/kb-manager-export/kb-manager-export.js.map +1 -1
  75. package/dist/collection/components/navigation-report/gx-ide-assets/navigation-report/langs/navigation-report.lang.en.json +6 -0
  76. package/dist/collection/components/navigation-report/gx-ide-assets/navigation-report/langs/navigation-report.lang.ja.json +3 -0
  77. package/dist/collection/components/navigation-report/helpers.js +17 -0
  78. package/dist/collection/components/navigation-report/helpers.js.map +1 -0
  79. package/dist/collection/components/navigation-report/navigation-report.css +75 -0
  80. package/dist/collection/components/navigation-report/navigation-report.js +407 -0
  81. package/dist/collection/components/navigation-report/navigation-report.js.map +1 -0
  82. package/dist/collection/components/new-environment/new-environment.js +2 -1
  83. package/dist/collection/components/new-environment/new-environment.js.map +1 -1
  84. package/dist/collection/components/new-kb/new-kb.js +7 -6
  85. package/dist/collection/components/new-kb/new-kb.js.map +1 -1
  86. package/dist/collection/components/new-object/new-object.js +4 -3
  87. package/dist/collection/components/new-object/new-object.js.map +1 -1
  88. package/dist/collection/components/object-selector/object-selector.js +5 -4
  89. package/dist/collection/components/object-selector/object-selector.js.map +1 -1
  90. package/dist/collection/components/splash/gx-ide-assets/splash/images/copyrights-illustration.png +0 -0
  91. package/dist/collection/components/splash/gx-ide-assets/splash/images/icon-next.svg +4 -0
  92. package/dist/collection/components/splash/gx-ide-assets/splash/langs/splash.lang.en.json +14 -0
  93. package/dist/collection/components/splash/gx-ide-assets/splash/langs/splash.lang.ja.json +13 -0
  94. package/dist/collection/components/splash/gx-ide-assets/splash/langs/splash.lang.zh.json +13 -0
  95. package/dist/collection/components/splash/splash.css +56 -0
  96. package/dist/collection/components/splash/splash.js +125 -0
  97. package/dist/collection/components/splash/splash.js.map +1 -0
  98. package/dist/collection/components/start-page/gx-ide-assets/start-page/langs/start-page.lang.en.json +19 -27
  99. package/dist/collection/components/start-page/gx-ide-assets/start-page/langs/start-page.lang.ja.json +18 -26
  100. package/dist/collection/components/start-page/gx-ide-assets/start-page/langs/start-page.lang.zh.json +23 -1
  101. package/dist/collection/components/start-page/start-page.css +142 -624
  102. package/dist/collection/components/start-page/start-page.js +198 -181
  103. package/dist/collection/components/start-page/start-page.js.map +1 -1
  104. package/dist/collection/components/welcome-page/gx-ide-assets/welcome-page/images/arrow-next.svg +3 -0
  105. package/dist/collection/components/welcome-page/gx-ide-assets/welcome-page/images/copyrights-base.svg +61 -0
  106. package/dist/collection/components/welcome-page/gx-ide-assets/welcome-page/images/copyrights-illustration.png +0 -0
  107. package/dist/collection/components/welcome-page/gx-ide-assets/welcome-page/images/fig-ellipse-blurred.svg +21 -0
  108. package/dist/collection/components/welcome-page/gx-ide-assets/welcome-page/images/fig-ellipse-bottom-left.svg +14 -0
  109. package/dist/collection/components/welcome-page/gx-ide-assets/welcome-page/images/fig-ellipse-top-left.svg +14 -0
  110. package/dist/collection/components/welcome-page/gx-ide-assets/welcome-page/images/fig-polygon.svg +14 -0
  111. package/dist/collection/components/welcome-page/gx-ide-assets/welcome-page/images/icon-next.svg +4 -0
  112. package/dist/collection/components/welcome-page/gx-ide-assets/welcome-page/images/slide-1.svg +115 -0
  113. package/dist/collection/components/welcome-page/gx-ide-assets/welcome-page/images/slide-2.svg +67 -0
  114. package/dist/collection/components/welcome-page/gx-ide-assets/welcome-page/images/slide-3.svg +138 -0
  115. package/dist/collection/components/welcome-page/gx-ide-assets/welcome-page/images/slide-4.svg +97 -0
  116. package/dist/collection/components/welcome-page/gx-ide-assets/welcome-page/images/slide-5.svg +83 -0
  117. package/dist/collection/components/welcome-page/gx-ide-assets/welcome-page/langs/welcome-page.lang.en.json +13 -0
  118. package/dist/collection/components/welcome-page/gx-ide-assets/welcome-page/langs/welcome-page.lang.ja.json +13 -0
  119. package/dist/collection/components/welcome-page/gx-ide-assets/welcome-page/langs/welcome-page.lang.zh.json +13 -0
  120. package/dist/collection/components/welcome-page/welcome-page.css +264 -0
  121. package/dist/collection/components/welcome-page/welcome-page.js +360 -0
  122. package/dist/collection/components/welcome-page/welcome-page.js.map +1 -0
  123. package/dist/collection/components/ww-images/gx-ide-assets/ww-images/langs/ww-images.lang.en.json +7 -3
  124. package/dist/collection/components/ww-images/gx-ide-assets/ww-images/langs/ww-images.lang.ja.json +8 -4
  125. package/dist/collection/components/ww-images/helpers.js +11 -0
  126. package/dist/collection/components/ww-images/helpers.js.map +1 -0
  127. package/dist/collection/components/ww-images/ww-images.css +82 -720
  128. package/dist/collection/components/ww-images/ww-images.js +465 -413
  129. package/dist/collection/components/ww-images/ww-images.js.map +1 -1
  130. package/dist/collection/pages/assets/images/welcome-page/slide-1.svg +115 -0
  131. package/dist/collection/pages/assets/images/welcome-page/slide-2.svg +67 -0
  132. package/dist/collection/pages/assets/images/welcome-page/slide-3.svg +138 -0
  133. package/dist/collection/pages/assets/images/welcome-page/slide-4.svg +97 -0
  134. package/dist/collection/pages/assets/images/welcome-page/slide-5.svg +83 -0
  135. package/dist/components/ai-message.js +1 -1
  136. package/dist/components/ai-message.js.map +1 -1
  137. package/dist/components/assets-manager.js +30 -30
  138. package/dist/components/assets-manager.js.map +1 -1
  139. package/dist/components/entity-selector.js +2 -2
  140. package/dist/components/entity-selector.js.map +1 -1
  141. package/dist/components/form-validation.js +1 -1
  142. package/dist/components/form-validation.js.map +1 -1
  143. package/dist/components/gx-ide-data-selector.js +2 -1
  144. package/dist/components/gx-ide-data-selector.js.map +1 -1
  145. package/dist/components/gx-ide-kb-manager-export.js +6 -3
  146. package/dist/components/gx-ide-kb-manager-export.js.map +1 -1
  147. package/dist/components/gx-ide-navigation-report.d.ts +11 -0
  148. package/dist/components/gx-ide-navigation-report.js +279 -0
  149. package/dist/components/gx-ide-navigation-report.js.map +1 -0
  150. package/dist/components/gx-ide-new-environment.js +2 -1
  151. package/dist/components/gx-ide-new-environment.js.map +1 -1
  152. package/dist/components/gx-ide-new-kb.js +7 -6
  153. package/dist/components/gx-ide-new-kb.js.map +1 -1
  154. package/dist/components/gx-ide-new-object.js +4 -3
  155. package/dist/components/gx-ide-new-object.js.map +1 -1
  156. package/dist/components/gx-ide-object-selector.js +5 -4
  157. package/dist/components/gx-ide-object-selector.js.map +1 -1
  158. package/dist/components/{gx-ide-recent-news.d.ts → gx-ide-splash.d.ts} +4 -4
  159. package/dist/components/gx-ide-splash.js +96 -0
  160. package/dist/components/gx-ide-splash.js.map +1 -0
  161. package/dist/components/gx-ide-start-page.js +2654 -126
  162. package/dist/components/gx-ide-start-page.js.map +1 -1
  163. package/dist/components/gx-ide-status-buttons2.js +35 -17
  164. package/dist/components/gx-ide-status-buttons2.js.map +1 -1
  165. package/dist/components/gx-ide-welcome-page.d.ts +11 -0
  166. package/dist/components/gx-ide-welcome-page.js +283 -0
  167. package/dist/components/gx-ide-welcome-page.js.map +1 -0
  168. package/dist/components/gx-ide-ww-images.js +419 -306
  169. package/dist/components/gx-ide-ww-images.js.map +1 -1
  170. package/dist/components/helpers.js +1 -6
  171. package/dist/components/helpers.js.map +1 -1
  172. package/dist/components/ide-loader.js +3 -3
  173. package/dist/components/ide-loader.js.map +1 -1
  174. package/dist/components/list-selector-item.js +2 -19
  175. package/dist/components/list-selector-item.js.map +1 -1
  176. package/dist/components/list-selector.js +2 -13
  177. package/dist/components/list-selector.js.map +1 -1
  178. package/dist/esm/{assets-manager-251883e0.js → assets-manager-5ac25bb6.js} +31 -31
  179. package/dist/esm/{assets-manager-251883e0.js.map → assets-manager-5ac25bb6.js.map} +1 -1
  180. package/dist/esm/{form-validation-8b3f527c.js → form-validation-44b2c2a8.js} +2 -2
  181. package/dist/esm/form-validation-44b2c2a8.js.map +1 -0
  182. package/dist/esm/genexus-ide-ui.js +1 -1
  183. package/dist/esm/gx-ide-ai-message.entry.js +2 -2
  184. package/dist/esm/gx-ide-ai-message.entry.js.map +1 -1
  185. package/dist/esm/gx-ide-connect-gx-server.entry.js +1 -1
  186. package/dist/esm/gx-ide-create-kb-from-server.entry.js +1 -1
  187. package/dist/esm/gx-ide-dashboard-home.entry.js +2 -2
  188. package/dist/esm/gx-ide-data-selector.entry.js +3 -2
  189. package/dist/esm/gx-ide-data-selector.entry.js.map +1 -1
  190. package/dist/esm/{gx-ide-empty-state_2.entry.js → gx-ide-empty-state.entry.js} +5 -57
  191. package/dist/esm/gx-ide-empty-state.entry.js.map +1 -0
  192. package/dist/esm/gx-ide-entity-selector.entry.js +3 -3
  193. package/dist/esm/gx-ide-entity-selector.entry.js.map +1 -1
  194. package/dist/esm/gx-ide-kb-manager-export.entry.js +7 -4
  195. package/dist/esm/gx-ide-kb-manager-export.entry.js.map +1 -1
  196. package/dist/esm/gx-ide-kb-manager-import.entry.js +1 -1
  197. package/dist/esm/gx-ide-list-selector_2.entry.js +4 -27
  198. package/dist/esm/gx-ide-list-selector_2.entry.js.map +1 -1
  199. package/dist/esm/gx-ide-loader.entry.js +57 -0
  200. package/dist/esm/gx-ide-loader.entry.js.map +1 -0
  201. package/dist/esm/gx-ide-manage-module-references-v2.entry.js +1 -1
  202. package/dist/esm/gx-ide-manage-module-references.entry.js +1 -1
  203. package/dist/esm/gx-ide-navigation-report.entry.js +224 -0
  204. package/dist/esm/gx-ide-navigation-report.entry.js.map +1 -0
  205. package/dist/esm/gx-ide-new-environment.entry.js +4 -3
  206. package/dist/esm/gx-ide-new-environment.entry.js.map +1 -1
  207. package/dist/esm/gx-ide-new-kb.entry.js +9 -8
  208. package/dist/esm/gx-ide-new-kb.entry.js.map +1 -1
  209. package/dist/esm/gx-ide-new-object.entry.js +4 -3
  210. package/dist/esm/gx-ide-new-object.entry.js.map +1 -1
  211. package/dist/esm/gx-ide-object-selector.entry.js +7 -6
  212. package/dist/esm/gx-ide-object-selector.entry.js.map +1 -1
  213. package/dist/esm/gx-ide-share-kb.entry.js +1 -1
  214. package/dist/esm/gx-ide-splash.entry.js +72 -0
  215. package/dist/esm/gx-ide-splash.entry.js.map +1 -0
  216. package/dist/esm/gx-ide-start-page.entry.js +2645 -105
  217. package/dist/esm/gx-ide-start-page.entry.js.map +1 -1
  218. package/dist/esm/gx-ide-status-buttons.entry.js +35 -17
  219. package/dist/esm/gx-ide-status-buttons.entry.js.map +1 -1
  220. package/dist/esm/gx-ide-team-dev-commit.entry.js +1 -1
  221. package/dist/esm/gx-ide-team-dev-update.entry.js +1 -1
  222. package/dist/esm/gx-ide-welcome-page.entry.js +253 -0
  223. package/dist/esm/gx-ide-welcome-page.entry.js.map +1 -0
  224. package/dist/esm/gx-ide-ww-images.entry.js +396 -279
  225. package/dist/esm/gx-ide-ww-images.entry.js.map +1 -1
  226. package/dist/esm/{helpers-64e1dd0b.js → helpers-9ee6ddce.js} +2 -7
  227. package/dist/esm/helpers-9ee6ddce.js.map +1 -0
  228. package/dist/esm/loader.js +1 -1
  229. package/dist/genexus-ide-ui/genexus-ide-ui.css +1 -1
  230. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  231. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  232. package/dist/genexus-ide-ui/gx-ide-assets/navigation-report/langs/navigation-report.lang.en.json +6 -0
  233. package/dist/genexus-ide-ui/gx-ide-assets/navigation-report/langs/navigation-report.lang.ja.json +3 -0
  234. package/dist/genexus-ide-ui/gx-ide-assets/splash/images/copyrights-illustration.png +0 -0
  235. package/dist/genexus-ide-ui/gx-ide-assets/splash/images/icon-next.svg +4 -0
  236. package/dist/genexus-ide-ui/gx-ide-assets/splash/langs/splash.lang.en.json +14 -0
  237. package/dist/genexus-ide-ui/gx-ide-assets/splash/langs/splash.lang.ja.json +13 -0
  238. package/dist/genexus-ide-ui/gx-ide-assets/splash/langs/splash.lang.zh.json +13 -0
  239. package/dist/genexus-ide-ui/gx-ide-assets/start-page/langs/start-page.lang.en.json +19 -27
  240. package/dist/genexus-ide-ui/gx-ide-assets/start-page/langs/start-page.lang.ja.json +18 -26
  241. package/dist/genexus-ide-ui/gx-ide-assets/start-page/langs/start-page.lang.zh.json +23 -1
  242. package/dist/genexus-ide-ui/gx-ide-assets/welcome-page/images/arrow-next.svg +3 -0
  243. package/dist/genexus-ide-ui/gx-ide-assets/welcome-page/images/copyrights-base.svg +61 -0
  244. package/dist/genexus-ide-ui/gx-ide-assets/welcome-page/images/copyrights-illustration.png +0 -0
  245. package/dist/genexus-ide-ui/gx-ide-assets/welcome-page/images/fig-ellipse-blurred.svg +21 -0
  246. package/dist/genexus-ide-ui/gx-ide-assets/welcome-page/images/fig-ellipse-bottom-left.svg +14 -0
  247. package/dist/genexus-ide-ui/gx-ide-assets/welcome-page/images/fig-ellipse-top-left.svg +14 -0
  248. package/dist/genexus-ide-ui/gx-ide-assets/welcome-page/images/fig-polygon.svg +14 -0
  249. package/dist/genexus-ide-ui/gx-ide-assets/welcome-page/images/icon-next.svg +4 -0
  250. package/dist/genexus-ide-ui/gx-ide-assets/welcome-page/images/slide-1.svg +115 -0
  251. package/dist/genexus-ide-ui/gx-ide-assets/welcome-page/images/slide-2.svg +67 -0
  252. package/dist/genexus-ide-ui/gx-ide-assets/welcome-page/images/slide-3.svg +138 -0
  253. package/dist/genexus-ide-ui/gx-ide-assets/welcome-page/images/slide-4.svg +97 -0
  254. package/dist/genexus-ide-ui/gx-ide-assets/welcome-page/images/slide-5.svg +83 -0
  255. package/dist/genexus-ide-ui/gx-ide-assets/welcome-page/langs/welcome-page.lang.en.json +13 -0
  256. package/dist/genexus-ide-ui/gx-ide-assets/welcome-page/langs/welcome-page.lang.ja.json +13 -0
  257. package/dist/genexus-ide-ui/gx-ide-assets/welcome-page/langs/welcome-page.lang.zh.json +13 -0
  258. package/dist/genexus-ide-ui/gx-ide-assets/ww-images/langs/ww-images.lang.en.json +7 -3
  259. package/dist/genexus-ide-ui/gx-ide-assets/ww-images/langs/ww-images.lang.ja.json +8 -4
  260. package/dist/genexus-ide-ui/{p-d5d0ed5e.entry.js → p-02bc66c1.entry.js} +2 -2
  261. package/dist/genexus-ide-ui/{p-c339f703.js → p-066028bc.js} +8 -14
  262. package/dist/genexus-ide-ui/p-066028bc.js.map +1 -0
  263. package/dist/genexus-ide-ui/{p-58e7d1ab.js → p-0b0ce806.js} +31 -31
  264. package/dist/genexus-ide-ui/p-0b0ce806.js.map +1 -0
  265. package/dist/genexus-ide-ui/p-120d283a.entry.js +2419 -0
  266. package/dist/genexus-ide-ui/p-120d283a.entry.js.map +1 -0
  267. package/dist/genexus-ide-ui/{p-a4a56375.entry.js → p-1ced155b.entry.js} +4 -4
  268. package/dist/genexus-ide-ui/p-1ced155b.entry.js.map +1 -0
  269. package/dist/genexus-ide-ui/{p-0a1167a6.entry.js → p-1f37f5b5.entry.js} +2 -2
  270. package/dist/genexus-ide-ui/{p-6b8f6569.entry.js → p-2465307a.entry.js} +54 -54
  271. package/dist/genexus-ide-ui/p-2465307a.entry.js.map +1 -0
  272. package/dist/genexus-ide-ui/{p-3b3f5ecb.entry.js → p-278afab1.entry.js} +3 -3
  273. package/dist/genexus-ide-ui/{p-940c83a6.entry.js → p-2dd09b01.entry.js} +22 -44
  274. package/dist/genexus-ide-ui/p-2dd09b01.entry.js.map +1 -0
  275. package/dist/genexus-ide-ui/{p-5961ae84.entry.js → p-3f5ea8bf.entry.js} +34 -34
  276. package/dist/genexus-ide-ui/p-3f5ea8bf.entry.js.map +1 -0
  277. package/dist/genexus-ide-ui/{p-f06147d7.entry.js → p-44d779c9.entry.js} +7 -7
  278. package/dist/genexus-ide-ui/p-44d779c9.entry.js.map +1 -0
  279. package/dist/genexus-ide-ui/{p-5bff0103.entry.js → p-4ce0a85e.entry.js} +3 -3
  280. package/dist/genexus-ide-ui/p-4ce0a85e.entry.js.map +1 -0
  281. package/dist/genexus-ide-ui/{p-fc64d088.entry.js → p-58e13823.entry.js} +2 -2
  282. package/dist/genexus-ide-ui/{p-cff74f8a.entry.js → p-60cd6b09.entry.js} +2 -2
  283. package/dist/genexus-ide-ui/p-62efd8f2.entry.js +712 -0
  284. package/dist/genexus-ide-ui/p-62efd8f2.entry.js.map +1 -0
  285. package/dist/genexus-ide-ui/{p-98b5b178.entry.js → p-658755d5.entry.js} +18 -87
  286. package/dist/genexus-ide-ui/p-658755d5.entry.js.map +1 -0
  287. package/dist/genexus-ide-ui/{p-dbfddffd.entry.js → p-69b88e9f.entry.js} +35 -23
  288. package/dist/genexus-ide-ui/p-69b88e9f.entry.js.map +1 -0
  289. package/dist/genexus-ide-ui/p-7a2d3f1c.entry.js +304 -0
  290. package/dist/genexus-ide-ui/p-7a2d3f1c.entry.js.map +1 -0
  291. package/dist/genexus-ide-ui/p-7ec19ed6.entry.js +73 -0
  292. package/dist/genexus-ide-ui/p-7ec19ed6.entry.js.map +1 -0
  293. package/dist/genexus-ide-ui/{p-23c9b4e6.entry.js → p-806fc181.entry.js} +14 -14
  294. package/dist/genexus-ide-ui/p-806fc181.entry.js.map +1 -0
  295. package/dist/genexus-ide-ui/{p-cfd29ed2.entry.js → p-8c986256.entry.js} +36 -36
  296. package/dist/genexus-ide-ui/p-8c986256.entry.js.map +1 -0
  297. package/dist/genexus-ide-ui/{p-fae9bd6c.entry.js → p-9efea53c.entry.js} +4 -4
  298. package/dist/genexus-ide-ui/p-9efea53c.entry.js.map +1 -0
  299. package/dist/genexus-ide-ui/{p-4ce47bcd.entry.js → p-acf0cbac.entry.js} +2 -2
  300. package/dist/genexus-ide-ui/{p-ca8b0024.entry.js → p-b785673d.entry.js} +2 -2
  301. package/dist/genexus-ide-ui/{p-41ea711a.js → p-b8624c0b.js} +2 -2
  302. package/dist/genexus-ide-ui/p-b8624c0b.js.map +1 -0
  303. package/dist/genexus-ide-ui/{p-39792ac8.entry.js → p-c4d1d0ce.entry.js} +2 -2
  304. package/dist/genexus-ide-ui/p-c8b4f34c.entry.js +113 -0
  305. package/dist/genexus-ide-ui/p-c8b4f34c.entry.js.map +1 -0
  306. package/dist/genexus-ide-ui/{p-b1f6fdd6.entry.js → p-cf2c8b3c.entry.js} +2 -2
  307. package/dist/genexus-ide-ui/p-de59d495.entry.js +273 -0
  308. package/dist/genexus-ide-ui/p-de59d495.entry.js.map +1 -0
  309. package/dist/types/components/_helpers/list-selector/list-selector-item/list-selector-item.d.ts +0 -11
  310. package/dist/types/components/_helpers/list-selector/list-selector.d.ts +0 -13
  311. package/dist/types/components/_helpers/status-buttons/gx-ide-status-buttons.d.ts +1 -4
  312. package/dist/types/components/navigation-report/helpers.d.ts +5 -0
  313. package/dist/types/components/navigation-report/navigation-report.d.ts +88 -0
  314. package/dist/types/components/splash/splash.d.ts +20 -0
  315. package/dist/types/components/start-page/start-page.d.ts +31 -53
  316. package/dist/types/components/welcome-page/welcome-page.d.ts +63 -0
  317. package/dist/types/components/ww-images/helpers.d.ts +3 -0
  318. package/dist/types/components/ww-images/ww-images.d.ts +98 -118
  319. package/dist/types/components.d.ts +236 -195
  320. package/package.json +8 -5
  321. package/dist/cjs/form-validation-df39cabb.js.map +0 -1
  322. package/dist/cjs/gx-ide-empty-state_2.cjs.entry.js.map +0 -1
  323. package/dist/cjs/gx-ide-recent-news.cjs.entry.js +0 -163
  324. package/dist/cjs/gx-ide-recent-news.cjs.entry.js.map +0 -1
  325. package/dist/cjs/helpers-b5b4a659.js.map +0 -1
  326. package/dist/collection/components/start-page/gx-ide-assets/recent-news/langs/recent-news.lang.en.json +0 -24
  327. package/dist/collection/components/start-page/gx-ide-assets/recent-news/langs/recent-news.lang.ja.json +0 -24
  328. package/dist/collection/components/start-page/recent-news.css +0 -641
  329. package/dist/collection/components/start-page/recent-news.js +0 -240
  330. package/dist/collection/components/start-page/recent-news.js.map +0 -1
  331. package/dist/components/gx-ide-recent-news.js +0 -8
  332. package/dist/components/gx-ide-recent-news.js.map +0 -1
  333. package/dist/components/recent-news.js +0 -197
  334. package/dist/components/recent-news.js.map +0 -1
  335. package/dist/esm/form-validation-8b3f527c.js.map +0 -1
  336. package/dist/esm/gx-ide-empty-state_2.entry.js.map +0 -1
  337. package/dist/esm/gx-ide-recent-news.entry.js +0 -159
  338. package/dist/esm/gx-ide-recent-news.entry.js.map +0 -1
  339. package/dist/esm/helpers-64e1dd0b.js.map +0 -1
  340. package/dist/genexus-ide-ui/gx-ide-assets/recent-news/langs/recent-news.lang.en.json +0 -24
  341. package/dist/genexus-ide-ui/gx-ide-assets/recent-news/langs/recent-news.lang.ja.json +0 -24
  342. package/dist/genexus-ide-ui/p-23c9b4e6.entry.js.map +0 -1
  343. package/dist/genexus-ide-ui/p-41ea711a.js.map +0 -1
  344. package/dist/genexus-ide-ui/p-58e7d1ab.js.map +0 -1
  345. package/dist/genexus-ide-ui/p-5961ae84.entry.js.map +0 -1
  346. package/dist/genexus-ide-ui/p-5bff0103.entry.js.map +0 -1
  347. package/dist/genexus-ide-ui/p-6b8f6569.entry.js.map +0 -1
  348. package/dist/genexus-ide-ui/p-940c83a6.entry.js.map +0 -1
  349. package/dist/genexus-ide-ui/p-98b5b178.entry.js.map +0 -1
  350. package/dist/genexus-ide-ui/p-a4a56375.entry.js.map +0 -1
  351. package/dist/genexus-ide-ui/p-cfd29ed2.entry.js.map +0 -1
  352. package/dist/genexus-ide-ui/p-d15717c5.entry.js +0 -211
  353. package/dist/genexus-ide-ui/p-d15717c5.entry.js.map +0 -1
  354. package/dist/genexus-ide-ui/p-dbfddffd.entry.js.map +0 -1
  355. package/dist/genexus-ide-ui/p-e08213ef.entry.js +0 -233
  356. package/dist/genexus-ide-ui/p-e08213ef.entry.js.map +0 -1
  357. package/dist/genexus-ide-ui/p-f06147d7.entry.js.map +0 -1
  358. package/dist/genexus-ide-ui/p-f96614f3.entry.js +0 -611
  359. package/dist/genexus-ide-ui/p-f96614f3.entry.js.map +0 -1
  360. package/dist/genexus-ide-ui/p-fae9bd6c.entry.js.map +0 -1
  361. package/dist/types/components/start-page/recent-news.d.ts +0 -43
  362. /package/dist/collection/components/{start-page/gx-ide-assets/recent-news/langs/recent-news.lang.zh.json → navigation-report/gx-ide-assets/navigation-report/langs/navigation-report.lang.zh.json} +0 -0
  363. /package/dist/genexus-ide-ui/gx-ide-assets/{recent-news/langs/recent-news.lang.zh.json → navigation-report/langs/navigation-report.lang.zh.json} +0 -0
  364. /package/dist/genexus-ide-ui/{p-d5d0ed5e.entry.js.map → p-02bc66c1.entry.js.map} +0 -0
  365. /package/dist/genexus-ide-ui/{p-0a1167a6.entry.js.map → p-1f37f5b5.entry.js.map} +0 -0
  366. /package/dist/genexus-ide-ui/{p-3b3f5ecb.entry.js.map → p-278afab1.entry.js.map} +0 -0
  367. /package/dist/genexus-ide-ui/{p-fc64d088.entry.js.map → p-58e13823.entry.js.map} +0 -0
  368. /package/dist/genexus-ide-ui/{p-cff74f8a.entry.js.map → p-60cd6b09.entry.js.map} +0 -0
  369. /package/dist/genexus-ide-ui/{p-4ce47bcd.entry.js.map → p-acf0cbac.entry.js.map} +0 -0
  370. /package/dist/genexus-ide-ui/{p-ca8b0024.entry.js.map → p-b785673d.entry.js.map} +0 -0
  371. /package/dist/genexus-ide-ui/{p-39792ac8.entry.js.map → p-c4d1d0ce.entry.js.map} +0 -0
  372. /package/dist/genexus-ide-ui/{p-b1f6fdd6.entry.js.map → p-cf2c8b3c.entry.js.map} +0 -0
@@ -3,12 +3,2508 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-b87e3ee0.js');
6
- const assetsManager = require('./assets-manager-4b67360e.js');
6
+ const assetsManager = require('./assets-manager-a318866f.js');
7
7
  const locale = require('./locale-bf43b87c.js');
8
- const config = require('./config-b21feeee.js');
9
- const helpers = require('./helpers-b5b4a659.js');
10
8
 
11
- const startPageCss = ":root {\n --ui-animaton-speed: 0.2s;\n}\n\n/*ALIGNMENT*/\n/*Ellipsis*/\n/*****************************************************\nTYPOGRAPHY\n*****************************************************/\n/*Title 01 (Positive)*/\n.gxg-title-01 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-01-font-weight);\n font-size: var(--ds-title-01-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n/*Title 01 (Negative)*/\n.gxg-title-01--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-01-font-weight);\n font-size: var(--ds-title-01-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 02 (Positive)*/\n.gxg-title-02 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-02-font-weight);\n font-size: var(--ds-title-02-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-02--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-02-font-weight);\n font-size: var(--ds-title-02-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--color-on-primary);\n}\n\n/*Title 03*/\n.gxg-title-03 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-03-font-weight);\n font-size: var(--ds-title-03-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-03--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-03-font-weight);\n font-size: var(--ds-title-03-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 04*/\n.gxg-title-04 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-04-font-weight);\n font-size: var(--ds-title-04-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-04--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-04-font-weight);\n font-size: var(--ds-title-04-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 05*/\n.gxg-title-05 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-05-font-weight);\n font-size: var(--ds-title-05-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-05--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-05-font-weight);\n font-size: var(--ds-title-05-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Text*/\n.gxg-text {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-text--negative {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n.gxg-text--gray {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--dimmed);\n}\n\n/*Quote*/\n.gxg-quote {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n font-style: italic;\n}\n\n.gxg-quote--negative {\n color: var(--ds-base-font-color--negative);\n}\n\n/*Link*/\n.gxg-link {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n}\n.gxg-link:hover {\n color: var(--ds-base-font-color--link-hover);\n}\n.gxg-link:active {\n color: var(--ds-base-font-color--link-active);\n}\n\n.gxg-link-gray {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n color: var(--ds-base-font-color--dimmed);\n}\n.gxg-link-gray:hover {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n color: var(--ds-base-font-color--dimmed);\n filter: brightness(1.4);\n}\n\n/*Alerts*/\n.gxg-alert-error {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--error);\n display: inline-block;\n}\n\n.gxg-alert-warning {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--warning);\n display: inline-block;\n}\n\n.gxg-alert-success {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--success);\n display: inline-block;\n}\n\n/*Tab*/\n.gxg-tab--disabled {\n color: var(--color-primary-disabled);\n pointer-events: none;\n}\n.gxg-tab--disabled[disabled] {\n color: var(--color-primary-disabled);\n pointer-events: none;\n}\n\n/*Label*/\n.gxg-label {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--gxg-label-font-weight);\n font-size: var(--gxg-label-font-size);\n color: var(--gxg-label-color);\n text-align: center;\n line-height: 1.455em;\n display: flex;\n align-items: center;\n}\n.gxg-label:hover {\n color: var(--color-primary-hover);\n}\n.gxg-label:focus {\n color: var(--color-primary-active);\n}\n.gxg-label:active {\n color: var(--color-primary-active);\n}\n.gxg-label[disabled] {\n color: var(--color-primary-disabled);\n}\n\n.gxg-label--negative {\n color: var(--color-on-primary);\n}\n.gxg-label--negative[disabled] {\n color: var(--color-on-disabled);\n}\n\n/*****************************************************\nGXG-BUTTON and GXG-BUTTON-GROUP COMMON STYLES\n*****************************************************/\n/*****************************************************\nFORM ELEMENTS\n*****************************************************/\n.gxg-scrollbar {\n /* Track */\n /* Handle */\n /* Handle on hover */\n}\n.gxg-scrollbar::-webkit-scrollbar {\n width: var(--gxg-scrollbar-width);\n height: var(--gxg-scrollbar-width);\n}\n.gxg-scrollbar::-webkit-scrollbar-track {\n background-color: var(--gxg-scrollbar-track-background);\n border-radius: var(--gxg-scrollbar-track-border-radius);\n}\n.gxg-scrollbar::-webkit-scrollbar-thumb {\n background-color: var(--gxg-scrollbar-track-thumb-background);\n border-radius: var(--gxg-scrollbar-track-thumb-radius);\n}\n.gxg-scrollbar::-webkit-scrollbar-thumb:hover {\n background-color: var(--gxg-scrollbar-track-thumb-hover-background);\n}\n.gxg-scrollbar::-webkit-scrollbar-corner {\n background: rgba(0, 0, 0, 0);\n}\n\n/*Gx Ide*/\n/*@container queries*/\n/* hiChar styles\nFound on /common/helpers.tsx hiChar function is used to add a span/class to every character that matches a search value. It is used to help the user see why the filter results are filtered. The span/class on the characters are useless without proper styling.\n*/\n@keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n/* - - - - - - - - - - - - - - - - -\nNew classes for Chameleon + Mercury\n- - - - - - - - - - - - - - - - - */\n:host {\n display: grid;\n block-size: 100%;\n}\n\n.card-regular {\n background-color: var(--mer-surface__elevation--01);\n border: var(--mer-border__width--sm) solid var(--mer-border-color__on-elevation--01);\n border-radius: var(--mer-border__radius--md);\n padding: var(--mer-spacing--md) var(--mer-spacing--md);\n display: grid;\n}\n\n.card-small {\n background-color: var(--mer-surface__elevation--02);\n border-radius: var(--mer-border__radius--sm);\n padding: var(--mer-spacing--sm) var(--mer-spacing--sm);\n}\n.card-small--actionable:hover {\n background-color: var(--mer-color__neutral-gray--600);\n}\n.card-small--actionable:active {\n background-color: var(--mer-color__neutral-gray--650);\n}\n.card-small:focus-visible {\n outline: var(--focus__outline-width) var(--focus__outline-style) var(--focus__outline-color);\n outline-offset: var(--focus__outline-offset);\n}\n\n.empty-state {\n block-size: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n gap: var(--mer-spacing--sm);\n text-align: center;\n}\n.empty-state__title, .empty-state__button, .empty-state__link {\n max-inline-size: 300px;\n}\n\n.opacity-0 {\n opacity: 0;\n}\n\n.opacity-1 {\n opacity: 1;\n}\n\n.display-contents {\n display: contents;\n}\n\n/* - - - - - - - - - - - - - - - - - - - \nOld classes (Gemini) to be removed soon\n- - - - - - - - - - - - - - - - - - - */\n/* - - - - - - - - - - - - - - - - - - - \nOld classes (Gemini) to be removed soon\n- - - - - - - - - - - - - - - - - - - */\n/* Helper Classes */\n.gxi-hidden {\n display: none !important;\n}\n\n.gxi-full-height {\n height: 100%;\n}\n\n.gxi-overflow-auto {\n overflow: auto;\n}\n\n.gxi-display-flex {\n display: flex;\n}\n\n.align-start {\n display: flex;\n align-items: start;\n}\n\n.align-center {\n display: flex;\n align-items: center;\n}\n\n.align-end {\n display: flex;\n align-items: end;\n}\n\n.overflow-auto {\n overflow: auto;\n}\n\n.justify-start {\n display: flex;\n justify-content: start;\n}\n\n.justify-center {\n display: flex;\n justify-content: center;\n}\n\n.justify-end {\n display: flex;\n justify-content: end;\n}\n\n/* Grids */\n.grid {\n display: grid;\n grid-row-gap: var(--gx-ide-grid-row-gap);\n grid-column-gap: var(--gx-ide-grid-column-gap);\n grid-template-rows: auto;\n}\n\nch-grid-cell {\n display: flex;\n}\n\nch-grid {\n overflow: auto;\n height: 100%;\n}\n\nch-grid-column {\n /*to be removed when this works inside a component with shadow: true*/\n z-index: 99;\n border-bottom: 1px solid var(--mer-color__neutral-gray--800);\n}\n\nch-grid-column:first-child {\n padding-inline-start: var(--gx-ide-container__padding) !important;\n}\n\nch-grid-column:last-child {\n padding-inline-end: var(--gx-ide-container__padding) !important;\n}\n\nch-grid-cell {\n --mer-spacing--xs: var(--gx-ide-container__padding);\n}\n\n/*--- Layout ---*/\n.layout {\n display: grid;\n gap: var(--mer-spacing--lg);\n box-sizing: border-box;\n}\n.layout--two-cols {\n grid-template-columns: 1fr 1fr;\n}\n.layout--space-above {\n padding-block-start: var(--mer-spacing--lg);\n}\n\n/*Gxg Tabs*/\ngxg-tabs {\n box-shadow: none;\n}\n\n/*All components Host should have this class set. !important is set on every rule, since this styles could be overridden by the host user, since they are applied on the host component*/\n:host(.gx-ide-component) {\n height: 100% !important;\n display: flex !important;\n flex-direction: column !important;\n}\n\n/*stylize the top bar*/\n:host(:focus-within) gx-ide-top-bar::part(wrapper) {\n background-color: var(--color-secondary-enabled);\n}\n\n/* Main wrapper (should be the first element inside the host. Everything should be inside .gx-ide-main-wrapper) */\n.gx-ide-main-wrapper {\n color: var(--gx-ide-component-text-color);\n font-weight: var(--mer-font__weight--regular);\n font-size: var(--mer-font__size--xs);\n font-family: var(--mer-font-family--primary);\n height: 100%;\n background-color: var(--gx-ide-component-background-color);\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n box-sizing: border-box;\n}\n\n/*This is the main element. This is the one that take the remaining vertical space*/\n.gx-ide-main {\n flex-grow: 1;\n overflow-y: auto;\n /* Track */\n /* Handle */\n /* Handle on hover */\n}\n.gx-ide-main::-webkit-scrollbar {\n width: var(--gxg-scrollbar-width);\n height: var(--gxg-scrollbar-width);\n}\n.gx-ide-main::-webkit-scrollbar-track {\n background-color: var(--gxg-scrollbar-track-background);\n border-radius: var(--gxg-scrollbar-track-border-radius);\n}\n.gx-ide-main::-webkit-scrollbar-thumb {\n background-color: var(--gxg-scrollbar-track-thumb-background);\n border-radius: var(--gxg-scrollbar-track-thumb-radius);\n}\n.gx-ide-main::-webkit-scrollbar-thumb:hover {\n background-color: var(--gxg-scrollbar-track-thumb-hover-background);\n}\n.gx-ide-main::-webkit-scrollbar-corner {\n background: rgba(0, 0, 0, 0);\n}\n\n.gx-ide-overflow {\n overflow-y: auto;\n /* Track */\n /* Handle */\n /* Handle on hover */\n}\n.gx-ide-overflow::-webkit-scrollbar {\n width: var(--gxg-scrollbar-width);\n height: var(--gxg-scrollbar-width);\n}\n.gx-ide-overflow::-webkit-scrollbar-track {\n background-color: var(--gxg-scrollbar-track-background);\n border-radius: var(--gxg-scrollbar-track-border-radius);\n}\n.gx-ide-overflow::-webkit-scrollbar-thumb {\n background-color: var(--gxg-scrollbar-track-thumb-background);\n border-radius: var(--gxg-scrollbar-track-thumb-radius);\n}\n.gx-ide-overflow::-webkit-scrollbar-thumb:hover {\n background-color: var(--gxg-scrollbar-track-thumb-hover-background);\n}\n.gx-ide-overflow::-webkit-scrollbar-corner {\n background: rgba(0, 0, 0, 0);\n}\n\n.tree-view-primary {\n font-size: var(--mer-font__size--2xs);\n}\n\np {\n margin: 0;\n font-size: var(--mer-font__size--xxs);\n}\n\n/* - - - - - - - - - - - - - - - - - -\nNew : For Mercury\n- - - - - - - - - - - - - - - - - - */\n.buttons-container {\n display: flex;\n gap: var(--mer-spacing--xs);\n}\n\n/*Gx Ide*/\n/*@container queries*/\n/* hiChar styles\nFound on /common/helpers.tsx hiChar function is used to add a span/class to every character that matches a search value. It is used to help the user see why the filter results are filtered. The span/class on the characters are useless without proper styling.\n*/\n.hiChar {\n color: var(--mer-color__primary-blue--200);\n filter: brightness(1.3);\n}\n\n:host {\n overflow: auto;\n container-type: inline-size;\n container-name: host;\n}\n\n.layout-main,\n.layout__panel {\n block-size: 100%;\n overflow: auto;\n}\n\n@container host (max-width: 768px) {\n .layout.layout-main {\n grid-template-columns: 1fr;\n grid-template-rows: 1fr 1fr;\n }\n}\n.panel-recent-kbs {\n position: relative;\n}\n\n.recent-kbs,\n.recent-news {\n display: grid;\n grid-template-rows: auto 1fr;\n gap: var(--mer-spacing--md);\n overflow: auto;\n}\n.recent-kbs__header,\n.recent-news__header {\n display: grid;\n gap: var(--mer-spacing--md);\n}\n\n.kbs-container {\n display: grid;\n gap: var(--mer-spacing--xs);\n overflow: auto;\n grid-auto-rows: max-content;\n container-type: inline-size;\n container-name: kb-container;\n animation: fadeIn var(--mer-timing--super-fast) forwards linear;\n}\n\n.card-kb {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--mer-spacing--lg);\n container-type: inline-size;\n container-name: card-kb;\n}\n.card-kb__left-col {\n display: flex;\n align-items: center;\n gap: var(--mer-spacing--sm);\n}\n\n@container kb-container (max-width: 360px) {\n .card-kb {\n align-items: center;\n flex-direction: column;\n gap: var(--mer-spacing--xs);\n justify-content: start;\n }\n}\ngx-ide-recent-news {\n overflow: auto;\n}\n\n.panel-recent-news {\n position: relative;\n}\n\n@keyframes exactMatchBright {\n 100% {\n filter: brightness(1.25);\n }\n}\n.exact-match-bright {\n animation: exactMatchBright var(--mer-timing--super-fast) ease-in-out 4 alternate;\n}\n\ngx-ide-loader::part(loader-wrapper) {\n border: var(--mer-border__width--sm) solid var(--mer-border-color__on-elevation--01);\n border-radius: var(--mer-border__radius--md);\n}\n\n@keyframes fadeIn {\n 0% {\n opacity: 0;\n }\n}";
9
+ /**
10
+ * @module constants
11
+ * @summary Useful constants
12
+ * @description
13
+ * Collection of useful date constants.
14
+ *
15
+ * The constants could be imported from `date-fns/constants`:
16
+ *
17
+ * ```ts
18
+ * import { maxTime, minTime } from "./constants/date-fns/constants";
19
+ *
20
+ * function isAllowedTime(time) {
21
+ * return time <= maxTime && time >= minTime;
22
+ * }
23
+ * ```
24
+ */
25
+
26
+ /**
27
+ * @constant
28
+ * @name minutesInMonth
29
+ * @summary Minutes in 1 month.
30
+ */
31
+ const minutesInMonth = 43200;
32
+
33
+ /**
34
+ * @constant
35
+ * @name minutesInDay
36
+ * @summary Minutes in 1 day.
37
+ */
38
+ const minutesInDay = 1440;
39
+
40
+ /**
41
+ * @constant
42
+ * @name constructFromSymbol
43
+ * @summary Symbol enabling Date extensions to inherit properties from the reference date.
44
+ *
45
+ * The symbol is used to enable the `constructFrom` function to construct a date
46
+ * using a reference date and a value. It allows to transfer extra properties
47
+ * from the reference date to the new date. It's useful for extensions like
48
+ * [`TZDate`](https://github.com/date-fns/tz) that accept a time zone as
49
+ * a constructor argument.
50
+ */
51
+ const constructFromSymbol = Symbol.for("constructDateFrom");
52
+
53
+ /**
54
+ * @name constructFrom
55
+ * @category Generic Helpers
56
+ * @summary Constructs a date using the reference date and the value
57
+ *
58
+ * @description
59
+ * The function constructs a new date using the constructor from the reference
60
+ * date and the given value. It helps to build generic functions that accept
61
+ * date extensions.
62
+ *
63
+ * It defaults to `Date` if the passed reference date is a number or a string.
64
+ *
65
+ * Starting from v3.7.0, it allows to construct a date using `[Symbol.for("constructDateFrom")]`
66
+ * enabling to transfer extra properties from the reference date to the new date.
67
+ * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)
68
+ * that accept a time zone as a constructor argument.
69
+ *
70
+ * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
71
+ *
72
+ * @param date - The reference date to take constructor from
73
+ * @param value - The value to create the date
74
+ *
75
+ * @returns Date initialized using the given date and value
76
+ *
77
+ * @example
78
+ * import { constructFrom } from "./constructFrom/date-fns";
79
+ *
80
+ * // A function that clones a date preserving the original type
81
+ * function cloneDate<DateType extends Date>(date: DateType): DateType {
82
+ * return constructFrom(
83
+ * date, // Use constructor from the given date
84
+ * date.getTime() // Use the date value to create a new date
85
+ * );
86
+ * }
87
+ */
88
+ function constructFrom(date, value) {
89
+ if (typeof date === "function") return date(value);
90
+
91
+ if (date && typeof date === "object" && constructFromSymbol in date)
92
+ return date[constructFromSymbol](value);
93
+
94
+ if (date instanceof Date) return new date.constructor(value);
95
+
96
+ return new Date(value);
97
+ }
98
+
99
+ /**
100
+ * @name toDate
101
+ * @category Common Helpers
102
+ * @summary Convert the given argument to an instance of Date.
103
+ *
104
+ * @description
105
+ * Convert the given argument to an instance of Date.
106
+ *
107
+ * If the argument is an instance of Date, the function returns its clone.
108
+ *
109
+ * If the argument is a number, it is treated as a timestamp.
110
+ *
111
+ * If the argument is none of the above, the function returns Invalid Date.
112
+ *
113
+ * Starting from v3.7.0, it clones a date using `[Symbol.for("constructDateFrom")]`
114
+ * enabling to transfer extra properties from the reference date to the new date.
115
+ * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)
116
+ * that accept a time zone as a constructor argument.
117
+ *
118
+ * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.
119
+ *
120
+ * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
121
+ * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
122
+ *
123
+ * @param argument - The value to convert
124
+ *
125
+ * @returns The parsed date in the local time zone
126
+ *
127
+ * @example
128
+ * // Clone the date:
129
+ * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))
130
+ * //=> Tue Feb 11 2014 11:30:30
131
+ *
132
+ * @example
133
+ * // Convert the timestamp to date:
134
+ * const result = toDate(1392098430000)
135
+ * //=> Tue Feb 11 2014 11:30:30
136
+ */
137
+ function toDate(argument, context) {
138
+ // [TODO] Get rid of `toDate` or `constructFrom`?
139
+ return constructFrom(context || argument, argument);
140
+ }
141
+
142
+ let defaultOptions = {};
143
+
144
+ function getDefaultOptions() {
145
+ return defaultOptions;
146
+ }
147
+
148
+ /**
149
+ * The {@link startOfWeek} function options.
150
+ */
151
+
152
+ /**
153
+ * @name startOfWeek
154
+ * @category Week Helpers
155
+ * @summary Return the start of a week for the given date.
156
+ *
157
+ * @description
158
+ * Return the start of a week for the given date.
159
+ * The result will be in the local timezone.
160
+ *
161
+ * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
162
+ * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
163
+ *
164
+ * @param date - The original date
165
+ * @param options - An object with options
166
+ *
167
+ * @returns The start of a week
168
+ *
169
+ * @example
170
+ * // The start of a week for 2 September 2014 11:55:00:
171
+ * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))
172
+ * //=> Sun Aug 31 2014 00:00:00
173
+ *
174
+ * @example
175
+ * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:
176
+ * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })
177
+ * //=> Mon Sep 01 2014 00:00:00
178
+ */
179
+ function startOfWeek(date, options) {
180
+ const defaultOptions = getDefaultOptions();
181
+ const weekStartsOn =
182
+ options?.weekStartsOn ??
183
+ options?.locale?.options?.weekStartsOn ??
184
+ defaultOptions.weekStartsOn ??
185
+ defaultOptions.locale?.options?.weekStartsOn ??
186
+ 0;
187
+
188
+ const _date = toDate(date, options?.in);
189
+ const day = _date.getDay();
190
+ const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;
191
+
192
+ _date.setDate(_date.getDate() - diff);
193
+ _date.setHours(0, 0, 0, 0);
194
+ return _date;
195
+ }
196
+
197
+ /**
198
+ * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.
199
+ * They usually appear for dates that denote time before the timezones were introduced
200
+ * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891
201
+ * and GMT+01:00:00 after that date)
202
+ *
203
+ * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,
204
+ * which would lead to incorrect calculations.
205
+ *
206
+ * This function returns the timezone offset in milliseconds that takes seconds in account.
207
+ */
208
+ function getTimezoneOffsetInMilliseconds(date) {
209
+ const _date = toDate(date);
210
+ const utcDate = new Date(
211
+ Date.UTC(
212
+ _date.getFullYear(),
213
+ _date.getMonth(),
214
+ _date.getDate(),
215
+ _date.getHours(),
216
+ _date.getMinutes(),
217
+ _date.getSeconds(),
218
+ _date.getMilliseconds(),
219
+ ),
220
+ );
221
+ utcDate.setUTCFullYear(_date.getFullYear());
222
+ return +date - +utcDate;
223
+ }
224
+
225
+ function normalizeDates(context, ...dates) {
226
+ const normalize = constructFrom.bind(
227
+ null,
228
+ context || dates.find((date) => typeof date === "object"),
229
+ );
230
+ return dates.map(normalize);
231
+ }
232
+
233
+ /**
234
+ * @name compareAsc
235
+ * @category Common Helpers
236
+ * @summary Compare the two dates and return -1, 0 or 1.
237
+ *
238
+ * @description
239
+ * Compare the two dates and return 1 if the first date is after the second,
240
+ * -1 if the first date is before the second or 0 if dates are equal.
241
+ *
242
+ * @param dateLeft - The first date to compare
243
+ * @param dateRight - The second date to compare
244
+ *
245
+ * @returns The result of the comparison
246
+ *
247
+ * @example
248
+ * // Compare 11 February 1987 and 10 July 1989:
249
+ * const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))
250
+ * //=> -1
251
+ *
252
+ * @example
253
+ * // Sort the array of dates:
254
+ * const result = [
255
+ * new Date(1995, 6, 2),
256
+ * new Date(1987, 1, 11),
257
+ * new Date(1989, 6, 10)
258
+ * ].sort(compareAsc)
259
+ * //=> [
260
+ * // Wed Feb 11 1987 00:00:00,
261
+ * // Mon Jul 10 1989 00:00:00,
262
+ * // Sun Jul 02 1995 00:00:00
263
+ * // ]
264
+ */
265
+ function compareAsc(dateLeft, dateRight) {
266
+ const diff = +toDate(dateLeft) - +toDate(dateRight);
267
+
268
+ if (diff < 0) return -1;
269
+ else if (diff > 0) return 1;
270
+
271
+ // Return 0 if diff is 0; return NaN if diff is NaN
272
+ return diff;
273
+ }
274
+
275
+ /**
276
+ * @name constructNow
277
+ * @category Generic Helpers
278
+ * @summary Constructs a new current date using the passed value constructor.
279
+ * @pure false
280
+ *
281
+ * @description
282
+ * The function constructs a new current date using the constructor from
283
+ * the reference date. It helps to build generic functions that accept date
284
+ * extensions and use the current date.
285
+ *
286
+ * It defaults to `Date` if the passed reference date is a number or a string.
287
+ *
288
+ * @param date - The reference date to take constructor from
289
+ *
290
+ * @returns Current date initialized using the given date constructor
291
+ *
292
+ * @example
293
+ * import { constructNow, isSameDay } from 'date-fns'
294
+ *
295
+ * function isToday<DateType extends Date>(
296
+ * date: DateArg<DateType>,
297
+ * ): boolean {
298
+ * // If we were to use `new Date()` directly, the function would behave
299
+ * // differently in different timezones and return false for the same date.
300
+ * return isSameDay(date, constructNow(date));
301
+ * }
302
+ */
303
+ function constructNow(date) {
304
+ return constructFrom(date, Date.now());
305
+ }
306
+
307
+ /**
308
+ * The {@link differenceInCalendarMonths} function options.
309
+ */
310
+
311
+ /**
312
+ * @name differenceInCalendarMonths
313
+ * @category Month Helpers
314
+ * @summary Get the number of calendar months between the given dates.
315
+ *
316
+ * @description
317
+ * Get the number of calendar months between the given dates.
318
+ *
319
+ * @param laterDate - The later date
320
+ * @param earlierDate - The earlier date
321
+ * @param options - An object with options
322
+ *
323
+ * @returns The number of calendar months
324
+ *
325
+ * @example
326
+ * // How many calendar months are between 31 January 2014 and 1 September 2014?
327
+ * const result = differenceInCalendarMonths(
328
+ * new Date(2014, 8, 1),
329
+ * new Date(2014, 0, 31)
330
+ * )
331
+ * //=> 8
332
+ */
333
+ function differenceInCalendarMonths(laterDate, earlierDate, options) {
334
+ const [laterDate_, earlierDate_] = normalizeDates(
335
+ options?.in,
336
+ laterDate,
337
+ earlierDate,
338
+ );
339
+
340
+ const yearsDiff = laterDate_.getFullYear() - earlierDate_.getFullYear();
341
+ const monthsDiff = laterDate_.getMonth() - earlierDate_.getMonth();
342
+
343
+ return yearsDiff * 12 + monthsDiff;
344
+ }
345
+
346
+ function getRoundingMethod(method) {
347
+ return (number) => {
348
+ const round = method ? Math[method] : Math.trunc;
349
+ const result = round(number);
350
+ // Prevent negative zero
351
+ return result === 0 ? 0 : result;
352
+ };
353
+ }
354
+
355
+ /**
356
+ * @name differenceInMilliseconds
357
+ * @category Millisecond Helpers
358
+ * @summary Get the number of milliseconds between the given dates.
359
+ *
360
+ * @description
361
+ * Get the number of milliseconds between the given dates.
362
+ *
363
+ * @param laterDate - The later date
364
+ * @param earlierDate - The earlier date
365
+ *
366
+ * @returns The number of milliseconds
367
+ *
368
+ * @example
369
+ * // How many milliseconds are between
370
+ * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?
371
+ * const result = differenceInMilliseconds(
372
+ * new Date(2014, 6, 2, 12, 30, 21, 700),
373
+ * new Date(2014, 6, 2, 12, 30, 20, 600)
374
+ * )
375
+ * //=> 1100
376
+ */
377
+ function differenceInMilliseconds(laterDate, earlierDate) {
378
+ return +toDate(laterDate) - +toDate(earlierDate);
379
+ }
380
+
381
+ /**
382
+ * The {@link endOfDay} function options.
383
+ */
384
+
385
+ /**
386
+ * @name endOfDay
387
+ * @category Day Helpers
388
+ * @summary Return the end of a day for the given date.
389
+ *
390
+ * @description
391
+ * Return the end of a day for the given date.
392
+ * The result will be in the local timezone.
393
+ *
394
+ * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
395
+ * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
396
+ *
397
+ * @param date - The original date
398
+ * @param options - An object with options
399
+ *
400
+ * @returns The end of a day
401
+ *
402
+ * @example
403
+ * // The end of a day for 2 September 2014 11:55:00:
404
+ * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))
405
+ * //=> Tue Sep 02 2014 23:59:59.999
406
+ */
407
+ function endOfDay(date, options) {
408
+ const _date = toDate(date, options?.in);
409
+ _date.setHours(23, 59, 59, 999);
410
+ return _date;
411
+ }
412
+
413
+ /**
414
+ * The {@link endOfMonth} function options.
415
+ */
416
+
417
+ /**
418
+ * @name endOfMonth
419
+ * @category Month Helpers
420
+ * @summary Return the end of a month for the given date.
421
+ *
422
+ * @description
423
+ * Return the end of a month for the given date.
424
+ * The result will be in the local timezone.
425
+ *
426
+ * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
427
+ * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
428
+ *
429
+ * @param date - The original date
430
+ * @param options - An object with options
431
+ *
432
+ * @returns The end of a month
433
+ *
434
+ * @example
435
+ * // The end of a month for 2 September 2014 11:55:00:
436
+ * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))
437
+ * //=> Tue Sep 30 2014 23:59:59.999
438
+ */
439
+ function endOfMonth(date, options) {
440
+ const _date = toDate(date, options?.in);
441
+ const month = _date.getMonth();
442
+ _date.setFullYear(_date.getFullYear(), month + 1, 0);
443
+ _date.setHours(23, 59, 59, 999);
444
+ return _date;
445
+ }
446
+
447
+ /**
448
+ * @name isLastDayOfMonth
449
+ * @category Month Helpers
450
+ * @summary Is the given date the last day of a month?
451
+ *
452
+ * @description
453
+ * Is the given date the last day of a month?
454
+ *
455
+ * @param date - The date to check
456
+ * @param options - An object with options
457
+ *
458
+ * @returns The date is the last day of a month
459
+ *
460
+ * @example
461
+ * // Is 28 February 2014 the last day of a month?
462
+ * const result = isLastDayOfMonth(new Date(2014, 1, 28))
463
+ * //=> true
464
+ */
465
+ function isLastDayOfMonth(date, options) {
466
+ const _date = toDate(date, options?.in);
467
+ return +endOfDay(_date, options) === +endOfMonth(_date, options);
468
+ }
469
+
470
+ /**
471
+ * The {@link differenceInMonths} function options.
472
+ */
473
+
474
+ /**
475
+ * @name differenceInMonths
476
+ * @category Month Helpers
477
+ * @summary Get the number of full months between the given dates.
478
+ *
479
+ * @param laterDate - The later date
480
+ * @param earlierDate - The earlier date
481
+ * @param options - An object with options
482
+ *
483
+ * @returns The number of full months
484
+ *
485
+ * @example
486
+ * // How many full months are between 31 January 2014 and 1 September 2014?
487
+ * const result = differenceInMonths(new Date(2014, 8, 1), new Date(2014, 0, 31))
488
+ * //=> 7
489
+ */
490
+ function differenceInMonths(laterDate, earlierDate, options) {
491
+ const [laterDate_, workingLaterDate, earlierDate_] = normalizeDates(
492
+ options?.in,
493
+ laterDate,
494
+ laterDate,
495
+ earlierDate,
496
+ );
497
+
498
+ const sign = compareAsc(workingLaterDate, earlierDate_);
499
+ const difference = Math.abs(
500
+ differenceInCalendarMonths(workingLaterDate, earlierDate_),
501
+ );
502
+
503
+ if (difference < 1) return 0;
504
+
505
+ if (workingLaterDate.getMonth() === 1 && workingLaterDate.getDate() > 27)
506
+ workingLaterDate.setDate(30);
507
+
508
+ workingLaterDate.setMonth(workingLaterDate.getMonth() - sign * difference);
509
+
510
+ let isLastMonthNotFull = compareAsc(workingLaterDate, earlierDate_) === -sign;
511
+
512
+ if (
513
+ isLastDayOfMonth(laterDate_) &&
514
+ difference === 1 &&
515
+ compareAsc(laterDate_, earlierDate_) === 1
516
+ ) {
517
+ isLastMonthNotFull = false;
518
+ }
519
+
520
+ const result = sign * (difference - +isLastMonthNotFull);
521
+ return result === 0 ? 0 : result;
522
+ }
523
+
524
+ /**
525
+ * The {@link differenceInSeconds} function options.
526
+ */
527
+
528
+ /**
529
+ * @name differenceInSeconds
530
+ * @category Second Helpers
531
+ * @summary Get the number of seconds between the given dates.
532
+ *
533
+ * @description
534
+ * Get the number of seconds between the given dates.
535
+ *
536
+ * @param laterDate - The later date
537
+ * @param earlierDate - The earlier date
538
+ * @param options - An object with options.
539
+ *
540
+ * @returns The number of seconds
541
+ *
542
+ * @example
543
+ * // How many seconds are between
544
+ * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?
545
+ * const result = differenceInSeconds(
546
+ * new Date(2014, 6, 2, 12, 30, 20, 0),
547
+ * new Date(2014, 6, 2, 12, 30, 7, 999)
548
+ * )
549
+ * //=> 12
550
+ */
551
+ function differenceInSeconds(laterDate, earlierDate, options) {
552
+ const diff = differenceInMilliseconds(laterDate, earlierDate) / 1000;
553
+ return getRoundingMethod(options?.roundingMethod)(diff);
554
+ }
555
+
556
+ const formatDistanceLocale$2 = {
557
+ lessThanXSeconds: {
558
+ one: "less than a second",
559
+ other: "less than {{count}} seconds",
560
+ },
561
+
562
+ xSeconds: {
563
+ one: "1 second",
564
+ other: "{{count}} seconds",
565
+ },
566
+
567
+ halfAMinute: "half a minute",
568
+
569
+ lessThanXMinutes: {
570
+ one: "less than a minute",
571
+ other: "less than {{count}} minutes",
572
+ },
573
+
574
+ xMinutes: {
575
+ one: "1 minute",
576
+ other: "{{count}} minutes",
577
+ },
578
+
579
+ aboutXHours: {
580
+ one: "about 1 hour",
581
+ other: "about {{count}} hours",
582
+ },
583
+
584
+ xHours: {
585
+ one: "1 hour",
586
+ other: "{{count}} hours",
587
+ },
588
+
589
+ xDays: {
590
+ one: "1 day",
591
+ other: "{{count}} days",
592
+ },
593
+
594
+ aboutXWeeks: {
595
+ one: "about 1 week",
596
+ other: "about {{count}} weeks",
597
+ },
598
+
599
+ xWeeks: {
600
+ one: "1 week",
601
+ other: "{{count}} weeks",
602
+ },
603
+
604
+ aboutXMonths: {
605
+ one: "about 1 month",
606
+ other: "about {{count}} months",
607
+ },
608
+
609
+ xMonths: {
610
+ one: "1 month",
611
+ other: "{{count}} months",
612
+ },
613
+
614
+ aboutXYears: {
615
+ one: "about 1 year",
616
+ other: "about {{count}} years",
617
+ },
618
+
619
+ xYears: {
620
+ one: "1 year",
621
+ other: "{{count}} years",
622
+ },
623
+
624
+ overXYears: {
625
+ one: "over 1 year",
626
+ other: "over {{count}} years",
627
+ },
628
+
629
+ almostXYears: {
630
+ one: "almost 1 year",
631
+ other: "almost {{count}} years",
632
+ },
633
+ };
634
+
635
+ const formatDistance$3 = (token, count, options) => {
636
+ let result;
637
+
638
+ const tokenValue = formatDistanceLocale$2[token];
639
+ if (typeof tokenValue === "string") {
640
+ result = tokenValue;
641
+ } else if (count === 1) {
642
+ result = tokenValue.one;
643
+ } else {
644
+ result = tokenValue.other.replace("{{count}}", count.toString());
645
+ }
646
+
647
+ if (options?.addSuffix) {
648
+ if (options.comparison && options.comparison > 0) {
649
+ return "in " + result;
650
+ } else {
651
+ return result + " ago";
652
+ }
653
+ }
654
+
655
+ return result;
656
+ };
657
+
658
+ function buildFormatLongFn(args) {
659
+ return (options = {}) => {
660
+ // TODO: Remove String()
661
+ const width = options.width ? String(options.width) : args.defaultWidth;
662
+ const format = args.formats[width] || args.formats[args.defaultWidth];
663
+ return format;
664
+ };
665
+ }
666
+
667
+ const dateFormats$2 = {
668
+ full: "EEEE, MMMM do, y",
669
+ long: "MMMM do, y",
670
+ medium: "MMM d, y",
671
+ short: "MM/dd/yyyy",
672
+ };
673
+
674
+ const timeFormats$2 = {
675
+ full: "h:mm:ss a zzzz",
676
+ long: "h:mm:ss a z",
677
+ medium: "h:mm:ss a",
678
+ short: "h:mm a",
679
+ };
680
+
681
+ const dateTimeFormats$2 = {
682
+ full: "{{date}} 'at' {{time}}",
683
+ long: "{{date}} 'at' {{time}}",
684
+ medium: "{{date}}, {{time}}",
685
+ short: "{{date}}, {{time}}",
686
+ };
687
+
688
+ const formatLong$2 = {
689
+ date: buildFormatLongFn({
690
+ formats: dateFormats$2,
691
+ defaultWidth: "full",
692
+ }),
693
+
694
+ time: buildFormatLongFn({
695
+ formats: timeFormats$2,
696
+ defaultWidth: "full",
697
+ }),
698
+
699
+ dateTime: buildFormatLongFn({
700
+ formats: dateTimeFormats$2,
701
+ defaultWidth: "full",
702
+ }),
703
+ };
704
+
705
+ const formatRelativeLocale$2 = {
706
+ lastWeek: "'last' eeee 'at' p",
707
+ yesterday: "'yesterday at' p",
708
+ today: "'today at' p",
709
+ tomorrow: "'tomorrow at' p",
710
+ nextWeek: "eeee 'at' p",
711
+ other: "P",
712
+ };
713
+
714
+ const formatRelative$2 = (token, _date, _baseDate, _options) =>
715
+ formatRelativeLocale$2[token];
716
+
717
+ /**
718
+ * The localize function argument callback which allows to convert raw value to
719
+ * the actual type.
720
+ *
721
+ * @param value - The value to convert
722
+ *
723
+ * @returns The converted value
724
+ */
725
+
726
+ /**
727
+ * The map of localized values for each width.
728
+ */
729
+
730
+ /**
731
+ * The index type of the locale unit value. It types conversion of units of
732
+ * values that don't start at 0 (i.e. quarters).
733
+ */
734
+
735
+ /**
736
+ * Converts the unit value to the tuple of values.
737
+ */
738
+
739
+ /**
740
+ * The tuple of localized era values. The first element represents BC,
741
+ * the second element represents AD.
742
+ */
743
+
744
+ /**
745
+ * The tuple of localized quarter values. The first element represents Q1.
746
+ */
747
+
748
+ /**
749
+ * The tuple of localized day values. The first element represents Sunday.
750
+ */
751
+
752
+ /**
753
+ * The tuple of localized month values. The first element represents January.
754
+ */
755
+
756
+ function buildLocalizeFn(args) {
757
+ return (value, options) => {
758
+ const context = options?.context ? String(options.context) : "standalone";
759
+
760
+ let valuesArray;
761
+ if (context === "formatting" && args.formattingValues) {
762
+ const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;
763
+ const width = options?.width ? String(options.width) : defaultWidth;
764
+
765
+ valuesArray =
766
+ args.formattingValues[width] || args.formattingValues[defaultWidth];
767
+ } else {
768
+ const defaultWidth = args.defaultWidth;
769
+ const width = options?.width ? String(options.width) : args.defaultWidth;
770
+
771
+ valuesArray = args.values[width] || args.values[defaultWidth];
772
+ }
773
+ const index = args.argumentCallback ? args.argumentCallback(value) : value;
774
+
775
+ // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!
776
+ return valuesArray[index];
777
+ };
778
+ }
779
+
780
+ const eraValues$2 = {
781
+ narrow: ["B", "A"],
782
+ abbreviated: ["BC", "AD"],
783
+ wide: ["Before Christ", "Anno Domini"],
784
+ };
785
+
786
+ const quarterValues$2 = {
787
+ narrow: ["1", "2", "3", "4"],
788
+ abbreviated: ["Q1", "Q2", "Q3", "Q4"],
789
+ wide: ["1st quarter", "2nd quarter", "3rd quarter", "4th quarter"],
790
+ };
791
+
792
+ // Note: in English, the names of days of the week and months are capitalized.
793
+ // If you are making a new locale based on this one, check if the same is true for the language you're working on.
794
+ // Generally, formatted dates should look like they are in the middle of a sentence,
795
+ // e.g. in Spanish language the weekdays and months should be in the lowercase.
796
+ const monthValues$2 = {
797
+ narrow: ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"],
798
+ abbreviated: [
799
+ "Jan",
800
+ "Feb",
801
+ "Mar",
802
+ "Apr",
803
+ "May",
804
+ "Jun",
805
+ "Jul",
806
+ "Aug",
807
+ "Sep",
808
+ "Oct",
809
+ "Nov",
810
+ "Dec",
811
+ ],
812
+
813
+ wide: [
814
+ "January",
815
+ "February",
816
+ "March",
817
+ "April",
818
+ "May",
819
+ "June",
820
+ "July",
821
+ "August",
822
+ "September",
823
+ "October",
824
+ "November",
825
+ "December",
826
+ ],
827
+ };
828
+
829
+ const dayValues$2 = {
830
+ narrow: ["S", "M", "T", "W", "T", "F", "S"],
831
+ short: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
832
+ abbreviated: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
833
+ wide: [
834
+ "Sunday",
835
+ "Monday",
836
+ "Tuesday",
837
+ "Wednesday",
838
+ "Thursday",
839
+ "Friday",
840
+ "Saturday",
841
+ ],
842
+ };
843
+
844
+ const dayPeriodValues$2 = {
845
+ narrow: {
846
+ am: "a",
847
+ pm: "p",
848
+ midnight: "mi",
849
+ noon: "n",
850
+ morning: "morning",
851
+ afternoon: "afternoon",
852
+ evening: "evening",
853
+ night: "night",
854
+ },
855
+ abbreviated: {
856
+ am: "AM",
857
+ pm: "PM",
858
+ midnight: "midnight",
859
+ noon: "noon",
860
+ morning: "morning",
861
+ afternoon: "afternoon",
862
+ evening: "evening",
863
+ night: "night",
864
+ },
865
+ wide: {
866
+ am: "a.m.",
867
+ pm: "p.m.",
868
+ midnight: "midnight",
869
+ noon: "noon",
870
+ morning: "morning",
871
+ afternoon: "afternoon",
872
+ evening: "evening",
873
+ night: "night",
874
+ },
875
+ };
876
+
877
+ const formattingDayPeriodValues$2 = {
878
+ narrow: {
879
+ am: "a",
880
+ pm: "p",
881
+ midnight: "mi",
882
+ noon: "n",
883
+ morning: "in the morning",
884
+ afternoon: "in the afternoon",
885
+ evening: "in the evening",
886
+ night: "at night",
887
+ },
888
+ abbreviated: {
889
+ am: "AM",
890
+ pm: "PM",
891
+ midnight: "midnight",
892
+ noon: "noon",
893
+ morning: "in the morning",
894
+ afternoon: "in the afternoon",
895
+ evening: "in the evening",
896
+ night: "at night",
897
+ },
898
+ wide: {
899
+ am: "a.m.",
900
+ pm: "p.m.",
901
+ midnight: "midnight",
902
+ noon: "noon",
903
+ morning: "in the morning",
904
+ afternoon: "in the afternoon",
905
+ evening: "in the evening",
906
+ night: "at night",
907
+ },
908
+ };
909
+
910
+ const ordinalNumber$2 = (dirtyNumber, _options) => {
911
+ const number = Number(dirtyNumber);
912
+
913
+ // If ordinal numbers depend on context, for example,
914
+ // if they are different for different grammatical genders,
915
+ // use `options.unit`.
916
+ //
917
+ // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',
918
+ // 'day', 'hour', 'minute', 'second'.
919
+
920
+ const rem100 = number % 100;
921
+ if (rem100 > 20 || rem100 < 10) {
922
+ switch (rem100 % 10) {
923
+ case 1:
924
+ return number + "st";
925
+ case 2:
926
+ return number + "nd";
927
+ case 3:
928
+ return number + "rd";
929
+ }
930
+ }
931
+ return number + "th";
932
+ };
933
+
934
+ const localize$2 = {
935
+ ordinalNumber: ordinalNumber$2,
936
+
937
+ era: buildLocalizeFn({
938
+ values: eraValues$2,
939
+ defaultWidth: "wide",
940
+ }),
941
+
942
+ quarter: buildLocalizeFn({
943
+ values: quarterValues$2,
944
+ defaultWidth: "wide",
945
+ argumentCallback: (quarter) => quarter - 1,
946
+ }),
947
+
948
+ month: buildLocalizeFn({
949
+ values: monthValues$2,
950
+ defaultWidth: "wide",
951
+ }),
952
+
953
+ day: buildLocalizeFn({
954
+ values: dayValues$2,
955
+ defaultWidth: "wide",
956
+ }),
957
+
958
+ dayPeriod: buildLocalizeFn({
959
+ values: dayPeriodValues$2,
960
+ defaultWidth: "wide",
961
+ formattingValues: formattingDayPeriodValues$2,
962
+ defaultFormattingWidth: "wide",
963
+ }),
964
+ };
965
+
966
+ function buildMatchFn(args) {
967
+ return (string, options = {}) => {
968
+ const width = options.width;
969
+
970
+ const matchPattern =
971
+ (width && args.matchPatterns[width]) ||
972
+ args.matchPatterns[args.defaultMatchWidth];
973
+ const matchResult = string.match(matchPattern);
974
+
975
+ if (!matchResult) {
976
+ return null;
977
+ }
978
+ const matchedString = matchResult[0];
979
+
980
+ const parsePatterns =
981
+ (width && args.parsePatterns[width]) ||
982
+ args.parsePatterns[args.defaultParseWidth];
983
+
984
+ const key = Array.isArray(parsePatterns)
985
+ ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))
986
+ : // [TODO] -- I challenge you to fix the type
987
+ findKey(parsePatterns, (pattern) => pattern.test(matchedString));
988
+
989
+ let value;
990
+
991
+ value = args.valueCallback ? args.valueCallback(key) : key;
992
+ value = options.valueCallback
993
+ ? // [TODO] -- I challenge you to fix the type
994
+ options.valueCallback(value)
995
+ : value;
996
+
997
+ const rest = string.slice(matchedString.length);
998
+
999
+ return { value, rest };
1000
+ };
1001
+ }
1002
+
1003
+ function findKey(object, predicate) {
1004
+ for (const key in object) {
1005
+ if (
1006
+ Object.prototype.hasOwnProperty.call(object, key) &&
1007
+ predicate(object[key])
1008
+ ) {
1009
+ return key;
1010
+ }
1011
+ }
1012
+ return undefined;
1013
+ }
1014
+
1015
+ function findIndex(array, predicate) {
1016
+ for (let key = 0; key < array.length; key++) {
1017
+ if (predicate(array[key])) {
1018
+ return key;
1019
+ }
1020
+ }
1021
+ return undefined;
1022
+ }
1023
+
1024
+ function buildMatchPatternFn(args) {
1025
+ return (string, options = {}) => {
1026
+ const matchResult = string.match(args.matchPattern);
1027
+ if (!matchResult) return null;
1028
+ const matchedString = matchResult[0];
1029
+
1030
+ const parseResult = string.match(args.parsePattern);
1031
+ if (!parseResult) return null;
1032
+ let value = args.valueCallback
1033
+ ? args.valueCallback(parseResult[0])
1034
+ : parseResult[0];
1035
+
1036
+ // [TODO] I challenge you to fix the type
1037
+ value = options.valueCallback ? options.valueCallback(value) : value;
1038
+
1039
+ const rest = string.slice(matchedString.length);
1040
+
1041
+ return { value, rest };
1042
+ };
1043
+ }
1044
+
1045
+ const matchOrdinalNumberPattern$2 = /^(\d+)(th|st|nd|rd)?/i;
1046
+ const parseOrdinalNumberPattern$2 = /\d+/i;
1047
+
1048
+ const matchEraPatterns$2 = {
1049
+ narrow: /^(b|a)/i,
1050
+ abbreviated: /^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,
1051
+ wide: /^(before christ|before common era|anno domini|common era)/i,
1052
+ };
1053
+ const parseEraPatterns$2 = {
1054
+ any: [/^b/i, /^(a|c)/i],
1055
+ };
1056
+
1057
+ const matchQuarterPatterns$2 = {
1058
+ narrow: /^[1234]/i,
1059
+ abbreviated: /^q[1234]/i,
1060
+ wide: /^[1234](th|st|nd|rd)? quarter/i,
1061
+ };
1062
+ const parseQuarterPatterns$2 = {
1063
+ any: [/1/i, /2/i, /3/i, /4/i],
1064
+ };
1065
+
1066
+ const matchMonthPatterns$2 = {
1067
+ narrow: /^[jfmasond]/i,
1068
+ abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,
1069
+ wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,
1070
+ };
1071
+ const parseMonthPatterns$2 = {
1072
+ narrow: [
1073
+ /^j/i,
1074
+ /^f/i,
1075
+ /^m/i,
1076
+ /^a/i,
1077
+ /^m/i,
1078
+ /^j/i,
1079
+ /^j/i,
1080
+ /^a/i,
1081
+ /^s/i,
1082
+ /^o/i,
1083
+ /^n/i,
1084
+ /^d/i,
1085
+ ],
1086
+
1087
+ any: [
1088
+ /^ja/i,
1089
+ /^f/i,
1090
+ /^mar/i,
1091
+ /^ap/i,
1092
+ /^may/i,
1093
+ /^jun/i,
1094
+ /^jul/i,
1095
+ /^au/i,
1096
+ /^s/i,
1097
+ /^o/i,
1098
+ /^n/i,
1099
+ /^d/i,
1100
+ ],
1101
+ };
1102
+
1103
+ const matchDayPatterns$2 = {
1104
+ narrow: /^[smtwf]/i,
1105
+ short: /^(su|mo|tu|we|th|fr|sa)/i,
1106
+ abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,
1107
+ wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,
1108
+ };
1109
+ const parseDayPatterns$2 = {
1110
+ narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],
1111
+ any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],
1112
+ };
1113
+
1114
+ const matchDayPeriodPatterns$2 = {
1115
+ narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,
1116
+ any: /^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,
1117
+ };
1118
+ const parseDayPeriodPatterns$2 = {
1119
+ any: {
1120
+ am: /^a/i,
1121
+ pm: /^p/i,
1122
+ midnight: /^mi/i,
1123
+ noon: /^no/i,
1124
+ morning: /morning/i,
1125
+ afternoon: /afternoon/i,
1126
+ evening: /evening/i,
1127
+ night: /night/i,
1128
+ },
1129
+ };
1130
+
1131
+ const match$2 = {
1132
+ ordinalNumber: buildMatchPatternFn({
1133
+ matchPattern: matchOrdinalNumberPattern$2,
1134
+ parsePattern: parseOrdinalNumberPattern$2,
1135
+ valueCallback: (value) => parseInt(value, 10),
1136
+ }),
1137
+
1138
+ era: buildMatchFn({
1139
+ matchPatterns: matchEraPatterns$2,
1140
+ defaultMatchWidth: "wide",
1141
+ parsePatterns: parseEraPatterns$2,
1142
+ defaultParseWidth: "any",
1143
+ }),
1144
+
1145
+ quarter: buildMatchFn({
1146
+ matchPatterns: matchQuarterPatterns$2,
1147
+ defaultMatchWidth: "wide",
1148
+ parsePatterns: parseQuarterPatterns$2,
1149
+ defaultParseWidth: "any",
1150
+ valueCallback: (index) => index + 1,
1151
+ }),
1152
+
1153
+ month: buildMatchFn({
1154
+ matchPatterns: matchMonthPatterns$2,
1155
+ defaultMatchWidth: "wide",
1156
+ parsePatterns: parseMonthPatterns$2,
1157
+ defaultParseWidth: "any",
1158
+ }),
1159
+
1160
+ day: buildMatchFn({
1161
+ matchPatterns: matchDayPatterns$2,
1162
+ defaultMatchWidth: "wide",
1163
+ parsePatterns: parseDayPatterns$2,
1164
+ defaultParseWidth: "any",
1165
+ }),
1166
+
1167
+ dayPeriod: buildMatchFn({
1168
+ matchPatterns: matchDayPeriodPatterns$2,
1169
+ defaultMatchWidth: "any",
1170
+ parsePatterns: parseDayPeriodPatterns$2,
1171
+ defaultParseWidth: "any",
1172
+ }),
1173
+ };
1174
+
1175
+ /**
1176
+ * @category Locales
1177
+ * @summary English locale (United States).
1178
+ * @language English
1179
+ * @iso-639-2 eng
1180
+ * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)
1181
+ * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)
1182
+ */
1183
+ const enUS = {
1184
+ code: "en-US",
1185
+ formatDistance: formatDistance$3,
1186
+ formatLong: formatLong$2,
1187
+ formatRelative: formatRelative$2,
1188
+ localize: localize$2,
1189
+ match: match$2,
1190
+ options: {
1191
+ weekStartsOn: 0 /* Sunday */,
1192
+ firstWeekContainsDate: 1,
1193
+ },
1194
+ };
1195
+
1196
+ /**
1197
+ * The {@link formatDistance} function options.
1198
+ */
1199
+
1200
+ /**
1201
+ * @name formatDistance
1202
+ * @category Common Helpers
1203
+ * @summary Return the distance between the given dates in words.
1204
+ *
1205
+ * @description
1206
+ * Return the distance between the given dates in words.
1207
+ *
1208
+ * | Distance between dates | Result |
1209
+ * |-------------------------------------------------------------------|---------------------|
1210
+ * | 0 ... 30 secs | less than a minute |
1211
+ * | 30 secs ... 1 min 30 secs | 1 minute |
1212
+ * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |
1213
+ * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |
1214
+ * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |
1215
+ * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |
1216
+ * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |
1217
+ * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |
1218
+ * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |
1219
+ * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |
1220
+ * | 1 yr ... 1 yr 3 months | about 1 year |
1221
+ * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |
1222
+ * | 1 yr 9 months ... 2 yrs | almost 2 years |
1223
+ * | N yrs ... N yrs 3 months | about N years |
1224
+ * | N yrs 3 months ... N yrs 9 months | over N years |
1225
+ * | N yrs 9 months ... N+1 yrs | almost N+1 years |
1226
+ *
1227
+ * With `options.includeSeconds == true`:
1228
+ * | Distance between dates | Result |
1229
+ * |------------------------|----------------------|
1230
+ * | 0 secs ... 5 secs | less than 5 seconds |
1231
+ * | 5 secs ... 10 secs | less than 10 seconds |
1232
+ * | 10 secs ... 20 secs | less than 20 seconds |
1233
+ * | 20 secs ... 40 secs | half a minute |
1234
+ * | 40 secs ... 60 secs | less than a minute |
1235
+ * | 60 secs ... 90 secs | 1 minute |
1236
+ *
1237
+ * @param laterDate - The date
1238
+ * @param earlierDate - The date to compare with
1239
+ * @param options - An object with options
1240
+ *
1241
+ * @returns The distance in words
1242
+ *
1243
+ * @throws `date` must not be Invalid Date
1244
+ * @throws `baseDate` must not be Invalid Date
1245
+ * @throws `options.locale` must contain `formatDistance` property
1246
+ *
1247
+ * @example
1248
+ * // What is the distance between 2 July 2014 and 1 January 2015?
1249
+ * const result = formatDistance(new Date(2014, 6, 2), new Date(2015, 0, 1))
1250
+ * //=> '6 months'
1251
+ *
1252
+ * @example
1253
+ * // What is the distance between 1 January 2015 00:00:15
1254
+ * // and 1 January 2015 00:00:00, including seconds?
1255
+ * const result = formatDistance(
1256
+ * new Date(2015, 0, 1, 0, 0, 15),
1257
+ * new Date(2015, 0, 1, 0, 0, 0),
1258
+ * { includeSeconds: true }
1259
+ * )
1260
+ * //=> 'less than 20 seconds'
1261
+ *
1262
+ * @example
1263
+ * // What is the distance from 1 January 2016
1264
+ * // to 1 January 2015, with a suffix?
1265
+ * const result = formatDistance(new Date(2015, 0, 1), new Date(2016, 0, 1), {
1266
+ * addSuffix: true
1267
+ * })
1268
+ * //=> 'about 1 year ago'
1269
+ *
1270
+ * @example
1271
+ * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?
1272
+ * import { eoLocale } from 'date-fns/locale/eo'
1273
+ * const result = formatDistance(new Date(2016, 7, 1), new Date(2015, 0, 1), {
1274
+ * locale: eoLocale
1275
+ * })
1276
+ * //=> 'pli ol 1 jaro'
1277
+ */
1278
+ function formatDistance$2(laterDate, earlierDate, options) {
1279
+ const defaultOptions = getDefaultOptions();
1280
+ const locale = options?.locale ?? defaultOptions.locale ?? enUS;
1281
+ const minutesInAlmostTwoDays = 2520;
1282
+
1283
+ const comparison = compareAsc(laterDate, earlierDate);
1284
+
1285
+ if (isNaN(comparison)) throw new RangeError("Invalid time value");
1286
+
1287
+ const localizeOptions = Object.assign({}, options, {
1288
+ addSuffix: options?.addSuffix,
1289
+ comparison: comparison,
1290
+ });
1291
+
1292
+ const [laterDate_, earlierDate_] = normalizeDates(
1293
+ options?.in,
1294
+ ...(comparison > 0 ? [earlierDate, laterDate] : [laterDate, earlierDate]),
1295
+ );
1296
+
1297
+ const seconds = differenceInSeconds(earlierDate_, laterDate_);
1298
+ const offsetInSeconds =
1299
+ (getTimezoneOffsetInMilliseconds(earlierDate_) -
1300
+ getTimezoneOffsetInMilliseconds(laterDate_)) /
1301
+ 1000;
1302
+ const minutes = Math.round((seconds - offsetInSeconds) / 60);
1303
+ let months;
1304
+
1305
+ // 0 up to 2 mins
1306
+ if (minutes < 2) {
1307
+ if (options?.includeSeconds) {
1308
+ if (seconds < 5) {
1309
+ return locale.formatDistance("lessThanXSeconds", 5, localizeOptions);
1310
+ } else if (seconds < 10) {
1311
+ return locale.formatDistance("lessThanXSeconds", 10, localizeOptions);
1312
+ } else if (seconds < 20) {
1313
+ return locale.formatDistance("lessThanXSeconds", 20, localizeOptions);
1314
+ } else if (seconds < 40) {
1315
+ return locale.formatDistance("halfAMinute", 0, localizeOptions);
1316
+ } else if (seconds < 60) {
1317
+ return locale.formatDistance("lessThanXMinutes", 1, localizeOptions);
1318
+ } else {
1319
+ return locale.formatDistance("xMinutes", 1, localizeOptions);
1320
+ }
1321
+ } else {
1322
+ if (minutes === 0) {
1323
+ return locale.formatDistance("lessThanXMinutes", 1, localizeOptions);
1324
+ } else {
1325
+ return locale.formatDistance("xMinutes", minutes, localizeOptions);
1326
+ }
1327
+ }
1328
+
1329
+ // 2 mins up to 0.75 hrs
1330
+ } else if (minutes < 45) {
1331
+ return locale.formatDistance("xMinutes", minutes, localizeOptions);
1332
+
1333
+ // 0.75 hrs up to 1.5 hrs
1334
+ } else if (minutes < 90) {
1335
+ return locale.formatDistance("aboutXHours", 1, localizeOptions);
1336
+
1337
+ // 1.5 hrs up to 24 hrs
1338
+ } else if (minutes < minutesInDay) {
1339
+ const hours = Math.round(minutes / 60);
1340
+ return locale.formatDistance("aboutXHours", hours, localizeOptions);
1341
+
1342
+ // 1 day up to 1.75 days
1343
+ } else if (minutes < minutesInAlmostTwoDays) {
1344
+ return locale.formatDistance("xDays", 1, localizeOptions);
1345
+
1346
+ // 1.75 days up to 30 days
1347
+ } else if (minutes < minutesInMonth) {
1348
+ const days = Math.round(minutes / minutesInDay);
1349
+ return locale.formatDistance("xDays", days, localizeOptions);
1350
+
1351
+ // 1 month up to 2 months
1352
+ } else if (minutes < minutesInMonth * 2) {
1353
+ months = Math.round(minutes / minutesInMonth);
1354
+ return locale.formatDistance("aboutXMonths", months, localizeOptions);
1355
+ }
1356
+
1357
+ months = differenceInMonths(earlierDate_, laterDate_);
1358
+
1359
+ // 2 months up to 12 months
1360
+ if (months < 12) {
1361
+ const nearestMonth = Math.round(minutes / minutesInMonth);
1362
+ return locale.formatDistance("xMonths", nearestMonth, localizeOptions);
1363
+
1364
+ // 1 year up to max Date
1365
+ } else {
1366
+ const monthsSinceStartOfYear = months % 12;
1367
+ const years = Math.trunc(months / 12);
1368
+
1369
+ // N years up to 1 years 3 months
1370
+ if (monthsSinceStartOfYear < 3) {
1371
+ return locale.formatDistance("aboutXYears", years, localizeOptions);
1372
+
1373
+ // N years 3 months up to N years 9 months
1374
+ } else if (monthsSinceStartOfYear < 9) {
1375
+ return locale.formatDistance("overXYears", years, localizeOptions);
1376
+
1377
+ // N years 9 months up to N year 12 months
1378
+ } else {
1379
+ return locale.formatDistance("almostXYears", years + 1, localizeOptions);
1380
+ }
1381
+ }
1382
+ }
1383
+
1384
+ /**
1385
+ * The {@link formatDistanceToNow} function options.
1386
+ */
1387
+
1388
+ /**
1389
+ * @name formatDistanceToNow
1390
+ * @category Common Helpers
1391
+ * @summary Return the distance between the given date and now in words.
1392
+ * @pure false
1393
+ *
1394
+ * @description
1395
+ * Return the distance between the given date and now in words.
1396
+ *
1397
+ * | Distance to now | Result |
1398
+ * |-------------------------------------------------------------------|---------------------|
1399
+ * | 0 ... 30 secs | less than a minute |
1400
+ * | 30 secs ... 1 min 30 secs | 1 minute |
1401
+ * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |
1402
+ * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |
1403
+ * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |
1404
+ * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |
1405
+ * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |
1406
+ * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |
1407
+ * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |
1408
+ * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |
1409
+ * | 1 yr ... 1 yr 3 months | about 1 year |
1410
+ * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |
1411
+ * | 1 yr 9 months ... 2 yrs | almost 2 years |
1412
+ * | N yrs ... N yrs 3 months | about N years |
1413
+ * | N yrs 3 months ... N yrs 9 months | over N years |
1414
+ * | N yrs 9 months ... N+1 yrs | almost N+1 years |
1415
+ *
1416
+ * With `options.includeSeconds == true`:
1417
+ * | Distance to now | Result |
1418
+ * |---------------------|----------------------|
1419
+ * | 0 secs ... 5 secs | less than 5 seconds |
1420
+ * | 5 secs ... 10 secs | less than 10 seconds |
1421
+ * | 10 secs ... 20 secs | less than 20 seconds |
1422
+ * | 20 secs ... 40 secs | half a minute |
1423
+ * | 40 secs ... 60 secs | less than a minute |
1424
+ * | 60 secs ... 90 secs | 1 minute |
1425
+ *
1426
+ * @param date - The given date
1427
+ * @param options - The object with options
1428
+ *
1429
+ * @returns The distance in words
1430
+ *
1431
+ * @throws `date` must not be Invalid Date
1432
+ * @throws `options.locale` must contain `formatDistance` property
1433
+ *
1434
+ * @example
1435
+ * // If today is 1 January 2015, what is the distance to 2 July 2014?
1436
+ * const result = formatDistanceToNow(
1437
+ * new Date(2014, 6, 2)
1438
+ * )
1439
+ * //=> '6 months'
1440
+ *
1441
+ * @example
1442
+ * // If now is 1 January 2015 00:00:00,
1443
+ * // what is the distance to 1 January 2015 00:00:15, including seconds?
1444
+ * const result = formatDistanceToNow(
1445
+ * new Date(2015, 0, 1, 0, 0, 15),
1446
+ * {includeSeconds: true}
1447
+ * )
1448
+ * //=> 'less than 20 seconds'
1449
+ *
1450
+ * @example
1451
+ * // If today is 1 January 2015,
1452
+ * // what is the distance to 1 January 2016, with a suffix?
1453
+ * const result = formatDistanceToNow(
1454
+ * new Date(2016, 0, 1),
1455
+ * {addSuffix: true}
1456
+ * )
1457
+ * //=> 'in about 1 year'
1458
+ *
1459
+ * @example
1460
+ * // If today is 1 January 2015,
1461
+ * // what is the distance to 1 August 2016 in Esperanto?
1462
+ * const eoLocale = require('date-fns/locale/eo')
1463
+ * const result = formatDistanceToNow(
1464
+ * new Date(2016, 7, 1),
1465
+ * {locale: eoLocale}
1466
+ * )
1467
+ * //=> 'pli ol 1 jaro'
1468
+ */
1469
+ function formatDistanceToNow(date, options) {
1470
+ return formatDistance$2(date, constructNow(date), options);
1471
+ }
1472
+
1473
+ /**
1474
+ * The {@link isSameWeek} function options.
1475
+ */
1476
+
1477
+ /**
1478
+ * @name isSameWeek
1479
+ * @category Week Helpers
1480
+ * @summary Are the given dates in the same week (and month and year)?
1481
+ *
1482
+ * @description
1483
+ * Are the given dates in the same week (and month and year)?
1484
+ *
1485
+ * @param laterDate - The first date to check
1486
+ * @param earlierDate - The second date to check
1487
+ * @param options - An object with options
1488
+ *
1489
+ * @returns The dates are in the same week (and month and year)
1490
+ *
1491
+ * @example
1492
+ * // Are 31 August 2014 and 4 September 2014 in the same week?
1493
+ * const result = isSameWeek(new Date(2014, 7, 31), new Date(2014, 8, 4))
1494
+ * //=> true
1495
+ *
1496
+ * @example
1497
+ * // If week starts with Monday,
1498
+ * // are 31 August 2014 and 4 September 2014 in the same week?
1499
+ * const result = isSameWeek(new Date(2014, 7, 31), new Date(2014, 8, 4), {
1500
+ * weekStartsOn: 1
1501
+ * })
1502
+ * //=> false
1503
+ *
1504
+ * @example
1505
+ * // Are 1 January 2014 and 1 January 2015 in the same week?
1506
+ * const result = isSameWeek(new Date(2014, 0, 1), new Date(2015, 0, 1))
1507
+ * //=> false
1508
+ */
1509
+ function isSameWeek(laterDate, earlierDate, options) {
1510
+ const [laterDate_, earlierDate_] = normalizeDates(
1511
+ options?.in,
1512
+ laterDate,
1513
+ earlierDate,
1514
+ );
1515
+ return (
1516
+ +startOfWeek(laterDate_, options) === +startOfWeek(earlierDate_, options)
1517
+ );
1518
+ }
1519
+
1520
+ const formatDistanceLocale$1 = {
1521
+ lessThanXSeconds: {
1522
+ one: "1秒未満",
1523
+ other: "{{count}}秒未満",
1524
+ oneWithSuffix: "約1秒",
1525
+ otherWithSuffix: "約{{count}}秒",
1526
+ },
1527
+
1528
+ xSeconds: {
1529
+ one: "1秒",
1530
+ other: "{{count}}秒",
1531
+ },
1532
+
1533
+ halfAMinute: "30秒",
1534
+
1535
+ lessThanXMinutes: {
1536
+ one: "1分未満",
1537
+ other: "{{count}}分未満",
1538
+ oneWithSuffix: "約1分",
1539
+ otherWithSuffix: "約{{count}}分",
1540
+ },
1541
+
1542
+ xMinutes: {
1543
+ one: "1分",
1544
+ other: "{{count}}分",
1545
+ },
1546
+
1547
+ aboutXHours: {
1548
+ one: "約1時間",
1549
+ other: "約{{count}}時間",
1550
+ },
1551
+
1552
+ xHours: {
1553
+ one: "1時間",
1554
+ other: "{{count}}時間",
1555
+ },
1556
+
1557
+ xDays: {
1558
+ one: "1日",
1559
+ other: "{{count}}日",
1560
+ },
1561
+
1562
+ aboutXWeeks: {
1563
+ one: "約1週間",
1564
+ other: "約{{count}}週間",
1565
+ },
1566
+
1567
+ xWeeks: {
1568
+ one: "1週間",
1569
+ other: "{{count}}週間",
1570
+ },
1571
+
1572
+ aboutXMonths: {
1573
+ one: "約1か月",
1574
+ other: "約{{count}}か月",
1575
+ },
1576
+
1577
+ xMonths: {
1578
+ one: "1か月",
1579
+ other: "{{count}}か月",
1580
+ },
1581
+
1582
+ aboutXYears: {
1583
+ one: "約1年",
1584
+ other: "約{{count}}年",
1585
+ },
1586
+
1587
+ xYears: {
1588
+ one: "1年",
1589
+ other: "{{count}}年",
1590
+ },
1591
+
1592
+ overXYears: {
1593
+ one: "1年以上",
1594
+ other: "{{count}}年以上",
1595
+ },
1596
+
1597
+ almostXYears: {
1598
+ one: "1年近く",
1599
+ other: "{{count}}年近く",
1600
+ },
1601
+ };
1602
+
1603
+ const formatDistance$1 = (token, count, options) => {
1604
+ options = options || {};
1605
+
1606
+ let result;
1607
+
1608
+ const tokenValue = formatDistanceLocale$1[token];
1609
+ if (typeof tokenValue === "string") {
1610
+ result = tokenValue;
1611
+ } else if (count === 1) {
1612
+ if (options.addSuffix && tokenValue.oneWithSuffix) {
1613
+ result = tokenValue.oneWithSuffix;
1614
+ } else {
1615
+ result = tokenValue.one;
1616
+ }
1617
+ } else {
1618
+ if (options.addSuffix && tokenValue.otherWithSuffix) {
1619
+ result = tokenValue.otherWithSuffix.replace("{{count}}", String(count));
1620
+ } else {
1621
+ result = tokenValue.other.replace("{{count}}", String(count));
1622
+ }
1623
+ }
1624
+
1625
+ if (options.addSuffix) {
1626
+ if (options.comparison && options.comparison > 0) {
1627
+ return result + "後";
1628
+ } else {
1629
+ return result + "前";
1630
+ }
1631
+ }
1632
+
1633
+ return result;
1634
+ };
1635
+
1636
+ const dateFormats$1 = {
1637
+ full: "y年M月d日EEEE",
1638
+ long: "y年M月d日",
1639
+ medium: "y/MM/dd",
1640
+ short: "y/MM/dd",
1641
+ };
1642
+
1643
+ const timeFormats$1 = {
1644
+ full: "H時mm分ss秒 zzzz",
1645
+ long: "H:mm:ss z",
1646
+ medium: "H:mm:ss",
1647
+ short: "H:mm",
1648
+ };
1649
+
1650
+ const dateTimeFormats$1 = {
1651
+ full: "{{date}} {{time}}",
1652
+ long: "{{date}} {{time}}",
1653
+ medium: "{{date}} {{time}}",
1654
+ short: "{{date}} {{time}}",
1655
+ };
1656
+
1657
+ const formatLong$1 = {
1658
+ date: buildFormatLongFn({
1659
+ formats: dateFormats$1,
1660
+ defaultWidth: "full",
1661
+ }),
1662
+
1663
+ time: buildFormatLongFn({
1664
+ formats: timeFormats$1,
1665
+ defaultWidth: "full",
1666
+ }),
1667
+
1668
+ dateTime: buildFormatLongFn({
1669
+ formats: dateTimeFormats$1,
1670
+ defaultWidth: "full",
1671
+ }),
1672
+ };
1673
+
1674
+ const formatRelativeLocale$1 = {
1675
+ lastWeek: "先週のeeeeのp",
1676
+ yesterday: "昨日のp",
1677
+ today: "今日のp",
1678
+ tomorrow: "明日のp",
1679
+ nextWeek: "翌週のeeeeのp",
1680
+ other: "P",
1681
+ };
1682
+
1683
+ const formatRelative$1 = (token, _date, _baseDate, _options) => {
1684
+ return formatRelativeLocale$1[token];
1685
+ };
1686
+
1687
+ const eraValues$1 = {
1688
+ narrow: ["BC", "AC"],
1689
+ abbreviated: ["紀元前", "西暦"],
1690
+ wide: ["紀元前", "西暦"],
1691
+ };
1692
+
1693
+ const quarterValues$1 = {
1694
+ narrow: ["1", "2", "3", "4"],
1695
+ abbreviated: ["Q1", "Q2", "Q3", "Q4"],
1696
+ wide: ["第1四半期", "第2四半期", "第3四半期", "第4四半期"],
1697
+ };
1698
+
1699
+ const monthValues$1 = {
1700
+ narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
1701
+
1702
+ abbreviated: [
1703
+ "1月",
1704
+ "2月",
1705
+ "3月",
1706
+ "4月",
1707
+ "5月",
1708
+ "6月",
1709
+ "7月",
1710
+ "8月",
1711
+ "9月",
1712
+ "10月",
1713
+ "11月",
1714
+ "12月",
1715
+ ],
1716
+
1717
+ wide: [
1718
+ "1月",
1719
+ "2月",
1720
+ "3月",
1721
+ "4月",
1722
+ "5月",
1723
+ "6月",
1724
+ "7月",
1725
+ "8月",
1726
+ "9月",
1727
+ "10月",
1728
+ "11月",
1729
+ "12月",
1730
+ ],
1731
+ };
1732
+
1733
+ const dayValues$1 = {
1734
+ narrow: ["日", "月", "火", "水", "木", "金", "土"],
1735
+ short: ["日", "月", "火", "水", "木", "金", "土"],
1736
+ abbreviated: ["日", "月", "火", "水", "木", "金", "土"],
1737
+ wide: ["日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"],
1738
+ };
1739
+
1740
+ const dayPeriodValues$1 = {
1741
+ narrow: {
1742
+ am: "午前",
1743
+ pm: "午後",
1744
+ midnight: "深夜",
1745
+ noon: "正午",
1746
+ morning: "朝",
1747
+ afternoon: "午後",
1748
+ evening: "夜",
1749
+ night: "深夜",
1750
+ },
1751
+ abbreviated: {
1752
+ am: "午前",
1753
+ pm: "午後",
1754
+ midnight: "深夜",
1755
+ noon: "正午",
1756
+ morning: "朝",
1757
+ afternoon: "午後",
1758
+ evening: "夜",
1759
+ night: "深夜",
1760
+ },
1761
+ wide: {
1762
+ am: "午前",
1763
+ pm: "午後",
1764
+ midnight: "深夜",
1765
+ noon: "正午",
1766
+ morning: "朝",
1767
+ afternoon: "午後",
1768
+ evening: "夜",
1769
+ night: "深夜",
1770
+ },
1771
+ };
1772
+ const formattingDayPeriodValues$1 = {
1773
+ narrow: {
1774
+ am: "午前",
1775
+ pm: "午後",
1776
+ midnight: "深夜",
1777
+ noon: "正午",
1778
+ morning: "朝",
1779
+ afternoon: "午後",
1780
+ evening: "夜",
1781
+ night: "深夜",
1782
+ },
1783
+ abbreviated: {
1784
+ am: "午前",
1785
+ pm: "午後",
1786
+ midnight: "深夜",
1787
+ noon: "正午",
1788
+ morning: "朝",
1789
+ afternoon: "午後",
1790
+ evening: "夜",
1791
+ night: "深夜",
1792
+ },
1793
+ wide: {
1794
+ am: "午前",
1795
+ pm: "午後",
1796
+ midnight: "深夜",
1797
+ noon: "正午",
1798
+ morning: "朝",
1799
+ afternoon: "午後",
1800
+ evening: "夜",
1801
+ night: "深夜",
1802
+ },
1803
+ };
1804
+
1805
+ const ordinalNumber$1 = (dirtyNumber, options) => {
1806
+ const number = Number(dirtyNumber);
1807
+ const unit = String(options?.unit);
1808
+
1809
+ switch (unit) {
1810
+ case "year":
1811
+ return `${number}年`;
1812
+ case "quarter":
1813
+ return `第${number}四半期`;
1814
+ case "month":
1815
+ return `${number}月`;
1816
+ case "week":
1817
+ return `第${number}週`;
1818
+ case "date":
1819
+ return `${number}日`;
1820
+ case "hour":
1821
+ return `${number}時`;
1822
+ case "minute":
1823
+ return `${number}分`;
1824
+ case "second":
1825
+ return `${number}秒`;
1826
+ default:
1827
+ return `${number}`;
1828
+ }
1829
+ };
1830
+
1831
+ const localize$1 = {
1832
+ ordinalNumber: ordinalNumber$1,
1833
+
1834
+ era: buildLocalizeFn({
1835
+ values: eraValues$1,
1836
+ defaultWidth: "wide",
1837
+ }),
1838
+
1839
+ quarter: buildLocalizeFn({
1840
+ values: quarterValues$1,
1841
+ defaultWidth: "wide",
1842
+ argumentCallback: (quarter) => Number(quarter) - 1,
1843
+ }),
1844
+
1845
+ month: buildLocalizeFn({
1846
+ values: monthValues$1,
1847
+ defaultWidth: "wide",
1848
+ }),
1849
+
1850
+ day: buildLocalizeFn({
1851
+ values: dayValues$1,
1852
+ defaultWidth: "wide",
1853
+ }),
1854
+
1855
+ dayPeriod: buildLocalizeFn({
1856
+ values: dayPeriodValues$1,
1857
+ defaultWidth: "wide",
1858
+ formattingValues: formattingDayPeriodValues$1,
1859
+ defaultFormattingWidth: "wide",
1860
+ }),
1861
+ };
1862
+
1863
+ const matchOrdinalNumberPattern$1 = /^第?\d+(年|四半期|月|週|日|時|分|秒)?/i;
1864
+ const parseOrdinalNumberPattern$1 = /\d+/i;
1865
+
1866
+ const matchEraPatterns$1 = {
1867
+ narrow: /^(B\.?C\.?|A\.?D\.?)/i,
1868
+ abbreviated: /^(紀元[前後]|西暦)/i,
1869
+ wide: /^(紀元[前後]|西暦)/i,
1870
+ };
1871
+ const parseEraPatterns$1 = {
1872
+ narrow: [/^B/i, /^A/i],
1873
+ any: [/^(紀元前)/i, /^(西暦|紀元後)/i],
1874
+ };
1875
+
1876
+ const matchQuarterPatterns$1 = {
1877
+ narrow: /^[1234]/i,
1878
+ abbreviated: /^Q[1234]/i,
1879
+ wide: /^第[1234一二三四1234]四半期/i,
1880
+ };
1881
+ const parseQuarterPatterns$1 = {
1882
+ any: [/(1|一|1)/i, /(2|二|2)/i, /(3|三|3)/i, /(4|四|4)/i],
1883
+ };
1884
+
1885
+ const matchMonthPatterns$1 = {
1886
+ narrow: /^([123456789]|1[012])/,
1887
+ abbreviated: /^([123456789]|1[012])月/i,
1888
+ wide: /^([123456789]|1[012])月/i,
1889
+ };
1890
+ const parseMonthPatterns$1 = {
1891
+ any: [
1892
+ /^1\D/,
1893
+ /^2/,
1894
+ /^3/,
1895
+ /^4/,
1896
+ /^5/,
1897
+ /^6/,
1898
+ /^7/,
1899
+ /^8/,
1900
+ /^9/,
1901
+ /^10/,
1902
+ /^11/,
1903
+ /^12/,
1904
+ ],
1905
+ };
1906
+
1907
+ const matchDayPatterns$1 = {
1908
+ narrow: /^[日月火水木金土]/,
1909
+ short: /^[日月火水木金土]/,
1910
+ abbreviated: /^[日月火水木金土]/,
1911
+ wide: /^[日月火水木金土]曜日/,
1912
+ };
1913
+ const parseDayPatterns$1 = {
1914
+ any: [/^日/, /^月/, /^火/, /^水/, /^木/, /^金/, /^土/],
1915
+ };
1916
+
1917
+ const matchDayPeriodPatterns$1 = {
1918
+ any: /^(AM|PM|午前|午後|正午|深夜|真夜中|夜|朝)/i,
1919
+ };
1920
+ const parseDayPeriodPatterns$1 = {
1921
+ any: {
1922
+ am: /^(A|午前)/i,
1923
+ pm: /^(P|午後)/i,
1924
+ midnight: /^深夜|真夜中/i,
1925
+ noon: /^正午/i,
1926
+ morning: /^朝/i,
1927
+ afternoon: /^午後/i,
1928
+ evening: /^夜/i,
1929
+ night: /^深夜/i,
1930
+ },
1931
+ };
1932
+
1933
+ const match$1 = {
1934
+ ordinalNumber: buildMatchPatternFn({
1935
+ matchPattern: matchOrdinalNumberPattern$1,
1936
+ parsePattern: parseOrdinalNumberPattern$1,
1937
+ valueCallback: function (value) {
1938
+ return parseInt(value, 10);
1939
+ },
1940
+ }),
1941
+
1942
+ era: buildMatchFn({
1943
+ matchPatterns: matchEraPatterns$1,
1944
+ defaultMatchWidth: "wide",
1945
+ parsePatterns: parseEraPatterns$1,
1946
+ defaultParseWidth: "any",
1947
+ }),
1948
+
1949
+ quarter: buildMatchFn({
1950
+ matchPatterns: matchQuarterPatterns$1,
1951
+ defaultMatchWidth: "wide",
1952
+ parsePatterns: parseQuarterPatterns$1,
1953
+ defaultParseWidth: "any",
1954
+ valueCallback: (index) => index + 1,
1955
+ }),
1956
+
1957
+ month: buildMatchFn({
1958
+ matchPatterns: matchMonthPatterns$1,
1959
+ defaultMatchWidth: "wide",
1960
+ parsePatterns: parseMonthPatterns$1,
1961
+ defaultParseWidth: "any",
1962
+ }),
1963
+
1964
+ day: buildMatchFn({
1965
+ matchPatterns: matchDayPatterns$1,
1966
+ defaultMatchWidth: "wide",
1967
+ parsePatterns: parseDayPatterns$1,
1968
+ defaultParseWidth: "any",
1969
+ }),
1970
+
1971
+ dayPeriod: buildMatchFn({
1972
+ matchPatterns: matchDayPeriodPatterns$1,
1973
+ defaultMatchWidth: "any",
1974
+ parsePatterns: parseDayPeriodPatterns$1,
1975
+ defaultParseWidth: "any",
1976
+ }),
1977
+ };
1978
+
1979
+ /**
1980
+ * @category Locales
1981
+ * @summary Japanese locale.
1982
+ * @language Japanese
1983
+ * @iso-639-2 jpn
1984
+ * @author Thomas Eilmsteiner [@DeMuu](https://github.com/DeMuu)
1985
+ * @author Yamagishi Kazutoshi [@ykzts](https://github.com/ykzts)
1986
+ * @author Luca Ban [@mesqueeb](https://github.com/mesqueeb)
1987
+ * @author Terrence Lam [@skyuplam](https://github.com/skyuplam)
1988
+ * @author Taiki IKeda [@so99ynoodles](https://github.com/so99ynoodles)
1989
+ */
1990
+ const ja = {
1991
+ code: "ja",
1992
+ formatDistance: formatDistance$1,
1993
+ formatLong: formatLong$1,
1994
+ formatRelative: formatRelative$1,
1995
+ localize: localize$1,
1996
+ match: match$1,
1997
+ options: {
1998
+ weekStartsOn: 0 /* Sunday */,
1999
+ firstWeekContainsDate: 1,
2000
+ },
2001
+ };
2002
+
2003
+ const formatDistanceLocale = {
2004
+ lessThanXSeconds: {
2005
+ one: "不到 1 秒",
2006
+ other: "不到 {{count}} 秒",
2007
+ },
2008
+
2009
+ xSeconds: {
2010
+ one: "1 秒",
2011
+ other: "{{count}} 秒",
2012
+ },
2013
+
2014
+ halfAMinute: "半分钟",
2015
+
2016
+ lessThanXMinutes: {
2017
+ one: "不到 1 分钟",
2018
+ other: "不到 {{count}} 分钟",
2019
+ },
2020
+
2021
+ xMinutes: {
2022
+ one: "1 分钟",
2023
+ other: "{{count}} 分钟",
2024
+ },
2025
+
2026
+ xHours: {
2027
+ one: "1 小时",
2028
+ other: "{{count}} 小时",
2029
+ },
2030
+
2031
+ aboutXHours: {
2032
+ one: "大约 1 小时",
2033
+ other: "大约 {{count}} 小时",
2034
+ },
2035
+
2036
+ xDays: {
2037
+ one: "1 天",
2038
+ other: "{{count}} 天",
2039
+ },
2040
+
2041
+ aboutXWeeks: {
2042
+ one: "大约 1 个星期",
2043
+ other: "大约 {{count}} 个星期",
2044
+ },
2045
+
2046
+ xWeeks: {
2047
+ one: "1 个星期",
2048
+ other: "{{count}} 个星期",
2049
+ },
2050
+
2051
+ aboutXMonths: {
2052
+ one: "大约 1 个月",
2053
+ other: "大约 {{count}} 个月",
2054
+ },
2055
+
2056
+ xMonths: {
2057
+ one: "1 个月",
2058
+ other: "{{count}} 个月",
2059
+ },
2060
+
2061
+ aboutXYears: {
2062
+ one: "大约 1 年",
2063
+ other: "大约 {{count}} 年",
2064
+ },
2065
+
2066
+ xYears: {
2067
+ one: "1 年",
2068
+ other: "{{count}} 年",
2069
+ },
2070
+
2071
+ overXYears: {
2072
+ one: "超过 1 年",
2073
+ other: "超过 {{count}} 年",
2074
+ },
2075
+
2076
+ almostXYears: {
2077
+ one: "将近 1 年",
2078
+ other: "将近 {{count}} 年",
2079
+ },
2080
+ };
2081
+
2082
+ const formatDistance = (token, count, options) => {
2083
+ let result;
2084
+
2085
+ const tokenValue = formatDistanceLocale[token];
2086
+ if (typeof tokenValue === "string") {
2087
+ result = tokenValue;
2088
+ } else if (count === 1) {
2089
+ result = tokenValue.one;
2090
+ } else {
2091
+ result = tokenValue.other.replace("{{count}}", String(count));
2092
+ }
2093
+
2094
+ if (options?.addSuffix) {
2095
+ if (options.comparison && options.comparison > 0) {
2096
+ return result + "内";
2097
+ } else {
2098
+ return result + "前";
2099
+ }
2100
+ }
2101
+
2102
+ return result;
2103
+ };
2104
+
2105
+ const dateFormats = {
2106
+ full: "y'年'M'月'd'日' EEEE",
2107
+ long: "y'年'M'月'd'日'",
2108
+ medium: "yyyy-MM-dd",
2109
+ short: "yy-MM-dd",
2110
+ };
2111
+
2112
+ const timeFormats = {
2113
+ full: "zzzz a h:mm:ss",
2114
+ long: "z a h:mm:ss",
2115
+ medium: "a h:mm:ss",
2116
+ short: "a h:mm",
2117
+ };
2118
+
2119
+ const dateTimeFormats = {
2120
+ full: "{{date}} {{time}}",
2121
+ long: "{{date}} {{time}}",
2122
+ medium: "{{date}} {{time}}",
2123
+ short: "{{date}} {{time}}",
2124
+ };
2125
+
2126
+ const formatLong = {
2127
+ date: buildFormatLongFn({
2128
+ formats: dateFormats,
2129
+ defaultWidth: "full",
2130
+ }),
2131
+
2132
+ time: buildFormatLongFn({
2133
+ formats: timeFormats,
2134
+ defaultWidth: "full",
2135
+ }),
2136
+
2137
+ dateTime: buildFormatLongFn({
2138
+ formats: dateTimeFormats,
2139
+ defaultWidth: "full",
2140
+ }),
2141
+ };
2142
+
2143
+ function checkWeek(date, baseDate, options) {
2144
+ const baseFormat = "eeee p";
2145
+
2146
+ if (isSameWeek(date, baseDate, options)) {
2147
+ return baseFormat; // in same week
2148
+ } else if (date.getTime() > baseDate.getTime()) {
2149
+ return "'下个'" + baseFormat; // in next week
2150
+ }
2151
+ return "'上个'" + baseFormat; // in last week
2152
+ }
2153
+
2154
+ const formatRelativeLocale = {
2155
+ lastWeek: checkWeek, // days before yesterday, maybe in this week or last week
2156
+ yesterday: "'昨天' p",
2157
+ today: "'今天' p",
2158
+ tomorrow: "'明天' p",
2159
+ nextWeek: checkWeek, // days after tomorrow, maybe in this week or next week
2160
+ other: "PP p",
2161
+ };
2162
+
2163
+ const formatRelative = (token, date, baseDate, options) => {
2164
+ const format = formatRelativeLocale[token];
2165
+
2166
+ if (typeof format === "function") {
2167
+ return format(date, baseDate, options);
2168
+ }
2169
+
2170
+ return format;
2171
+ };
2172
+
2173
+ const eraValues = {
2174
+ narrow: ["前", "公元"],
2175
+ abbreviated: ["前", "公元"],
2176
+ wide: ["公元前", "公元"],
2177
+ };
2178
+
2179
+ const quarterValues = {
2180
+ narrow: ["1", "2", "3", "4"],
2181
+ abbreviated: ["第一季", "第二季", "第三季", "第四季"],
2182
+ wide: ["第一季度", "第二季度", "第三季度", "第四季度"],
2183
+ };
2184
+
2185
+ const monthValues = {
2186
+ narrow: [
2187
+ "一",
2188
+ "二",
2189
+ "三",
2190
+ "四",
2191
+ "五",
2192
+ "六",
2193
+ "七",
2194
+ "八",
2195
+ "九",
2196
+ "十",
2197
+ "十一",
2198
+ "十二",
2199
+ ],
2200
+
2201
+ abbreviated: [
2202
+ "1月",
2203
+ "2月",
2204
+ "3月",
2205
+ "4月",
2206
+ "5月",
2207
+ "6月",
2208
+ "7月",
2209
+ "8月",
2210
+ "9月",
2211
+ "10月",
2212
+ "11月",
2213
+ "12月",
2214
+ ],
2215
+
2216
+ wide: [
2217
+ "一月",
2218
+ "二月",
2219
+ "三月",
2220
+ "四月",
2221
+ "五月",
2222
+ "六月",
2223
+ "七月",
2224
+ "八月",
2225
+ "九月",
2226
+ "十月",
2227
+ "十一月",
2228
+ "十二月",
2229
+ ],
2230
+ };
2231
+
2232
+ const dayValues = {
2233
+ narrow: ["日", "一", "二", "三", "四", "五", "六"],
2234
+ short: ["日", "一", "二", "三", "四", "五", "六"],
2235
+ abbreviated: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"],
2236
+
2237
+ wide: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"],
2238
+ };
2239
+
2240
+ const dayPeriodValues = {
2241
+ narrow: {
2242
+ am: "上",
2243
+ pm: "下",
2244
+ midnight: "凌晨",
2245
+ noon: "午",
2246
+ morning: "早",
2247
+ afternoon: "下午",
2248
+ evening: "晚",
2249
+ night: "夜",
2250
+ },
2251
+ abbreviated: {
2252
+ am: "上午",
2253
+ pm: "下午",
2254
+ midnight: "凌晨",
2255
+ noon: "中午",
2256
+ morning: "早晨",
2257
+ afternoon: "中午",
2258
+ evening: "晚上",
2259
+ night: "夜间",
2260
+ },
2261
+ wide: {
2262
+ am: "上午",
2263
+ pm: "下午",
2264
+ midnight: "凌晨",
2265
+ noon: "中午",
2266
+ morning: "早晨",
2267
+ afternoon: "中午",
2268
+ evening: "晚上",
2269
+ night: "夜间",
2270
+ },
2271
+ };
2272
+
2273
+ const formattingDayPeriodValues = {
2274
+ narrow: {
2275
+ am: "上",
2276
+ pm: "下",
2277
+ midnight: "凌晨",
2278
+ noon: "午",
2279
+ morning: "早",
2280
+ afternoon: "下午",
2281
+ evening: "晚",
2282
+ night: "夜",
2283
+ },
2284
+ abbreviated: {
2285
+ am: "上午",
2286
+ pm: "下午",
2287
+ midnight: "凌晨",
2288
+ noon: "中午",
2289
+ morning: "早晨",
2290
+ afternoon: "中午",
2291
+ evening: "晚上",
2292
+ night: "夜间",
2293
+ },
2294
+ wide: {
2295
+ am: "上午",
2296
+ pm: "下午",
2297
+ midnight: "凌晨",
2298
+ noon: "中午",
2299
+ morning: "早晨",
2300
+ afternoon: "中午",
2301
+ evening: "晚上",
2302
+ night: "夜间",
2303
+ },
2304
+ };
2305
+
2306
+ const ordinalNumber = (dirtyNumber, options) => {
2307
+ const number = Number(dirtyNumber);
2308
+
2309
+ switch (options?.unit) {
2310
+ case "date":
2311
+ return number.toString() + "日";
2312
+ case "hour":
2313
+ return number.toString() + "时";
2314
+ case "minute":
2315
+ return number.toString() + "分";
2316
+ case "second":
2317
+ return number.toString() + "秒";
2318
+ default:
2319
+ return "第 " + number.toString();
2320
+ }
2321
+ };
2322
+
2323
+ const localize = {
2324
+ ordinalNumber,
2325
+
2326
+ era: buildLocalizeFn({
2327
+ values: eraValues,
2328
+ defaultWidth: "wide",
2329
+ }),
2330
+
2331
+ quarter: buildLocalizeFn({
2332
+ values: quarterValues,
2333
+ defaultWidth: "wide",
2334
+ argumentCallback: (quarter) => quarter - 1,
2335
+ }),
2336
+
2337
+ month: buildLocalizeFn({
2338
+ values: monthValues,
2339
+ defaultWidth: "wide",
2340
+ }),
2341
+
2342
+ day: buildLocalizeFn({
2343
+ values: dayValues,
2344
+ defaultWidth: "wide",
2345
+ }),
2346
+
2347
+ dayPeriod: buildLocalizeFn({
2348
+ values: dayPeriodValues,
2349
+ defaultWidth: "wide",
2350
+ formattingValues: formattingDayPeriodValues,
2351
+ defaultFormattingWidth: "wide",
2352
+ }),
2353
+ };
2354
+
2355
+ const matchOrdinalNumberPattern = /^(第\s*)?\d+(日|时|分|秒)?/i;
2356
+ const parseOrdinalNumberPattern = /\d+/i;
2357
+
2358
+ const matchEraPatterns = {
2359
+ narrow: /^(前)/i,
2360
+ abbreviated: /^(前)/i,
2361
+ wide: /^(公元前|公元)/i,
2362
+ };
2363
+ const parseEraPatterns = {
2364
+ any: [/^(前)/i, /^(公元)/i],
2365
+ };
2366
+
2367
+ const matchQuarterPatterns = {
2368
+ narrow: /^[1234]/i,
2369
+ abbreviated: /^第[一二三四]刻/i,
2370
+ wide: /^第[一二三四]刻钟/i,
2371
+ };
2372
+ const parseQuarterPatterns = {
2373
+ any: [/(1|一)/i, /(2|二)/i, /(3|三)/i, /(4|四)/i],
2374
+ };
2375
+
2376
+ const matchMonthPatterns = {
2377
+ narrow: /^(一|二|三|四|五|六|七|八|九|十[二一])/i,
2378
+ abbreviated: /^(一|二|三|四|五|六|七|八|九|十[二一]|\d|1[12])月/i,
2379
+ wide: /^(一|二|三|四|五|六|七|八|九|十[二一])月/i,
2380
+ };
2381
+ const parseMonthPatterns = {
2382
+ narrow: [
2383
+ /^一/i,
2384
+ /^二/i,
2385
+ /^三/i,
2386
+ /^四/i,
2387
+ /^五/i,
2388
+ /^六/i,
2389
+ /^七/i,
2390
+ /^八/i,
2391
+ /^九/i,
2392
+ /^十(?!(一|二))/i,
2393
+ /^十一/i,
2394
+ /^十二/i,
2395
+ ],
2396
+
2397
+ any: [
2398
+ /^一|1/i,
2399
+ /^二|2/i,
2400
+ /^三|3/i,
2401
+ /^四|4/i,
2402
+ /^五|5/i,
2403
+ /^六|6/i,
2404
+ /^七|7/i,
2405
+ /^八|8/i,
2406
+ /^九|9/i,
2407
+ /^十(?!(一|二))|10/i,
2408
+ /^十一|11/i,
2409
+ /^十二|12/i,
2410
+ ],
2411
+ };
2412
+
2413
+ const matchDayPatterns = {
2414
+ narrow: /^[一二三四五六日]/i,
2415
+ short: /^[一二三四五六日]/i,
2416
+ abbreviated: /^周[一二三四五六日]/i,
2417
+ wide: /^星期[一二三四五六日]/i,
2418
+ };
2419
+ const parseDayPatterns = {
2420
+ any: [/日/i, /一/i, /二/i, /三/i, /四/i, /五/i, /六/i],
2421
+ };
2422
+
2423
+ const matchDayPeriodPatterns = {
2424
+ any: /^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨|)/i,
2425
+ };
2426
+ const parseDayPeriodPatterns = {
2427
+ any: {
2428
+ am: /^上午?/i,
2429
+ pm: /^下午?/i,
2430
+ midnight: /^午夜/i,
2431
+ noon: /^[中正]午/i,
2432
+ morning: /^早上/i,
2433
+ afternoon: /^下午/i,
2434
+ evening: /^晚上?/i,
2435
+ night: /^凌晨/i,
2436
+ },
2437
+ };
2438
+
2439
+ const match = {
2440
+ ordinalNumber: buildMatchPatternFn({
2441
+ matchPattern: matchOrdinalNumberPattern,
2442
+ parsePattern: parseOrdinalNumberPattern,
2443
+ valueCallback: (value) => parseInt(value, 10),
2444
+ }),
2445
+
2446
+ era: buildMatchFn({
2447
+ matchPatterns: matchEraPatterns,
2448
+ defaultMatchWidth: "wide",
2449
+ parsePatterns: parseEraPatterns,
2450
+ defaultParseWidth: "any",
2451
+ }),
2452
+
2453
+ quarter: buildMatchFn({
2454
+ matchPatterns: matchQuarterPatterns,
2455
+ defaultMatchWidth: "wide",
2456
+ parsePatterns: parseQuarterPatterns,
2457
+ defaultParseWidth: "any",
2458
+ valueCallback: (index) => index + 1,
2459
+ }),
2460
+
2461
+ month: buildMatchFn({
2462
+ matchPatterns: matchMonthPatterns,
2463
+ defaultMatchWidth: "wide",
2464
+ parsePatterns: parseMonthPatterns,
2465
+ defaultParseWidth: "any",
2466
+ }),
2467
+
2468
+ day: buildMatchFn({
2469
+ matchPatterns: matchDayPatterns,
2470
+ defaultMatchWidth: "wide",
2471
+ parsePatterns: parseDayPatterns,
2472
+ defaultParseWidth: "any",
2473
+ }),
2474
+
2475
+ dayPeriod: buildMatchFn({
2476
+ matchPatterns: matchDayPeriodPatterns,
2477
+ defaultMatchWidth: "any",
2478
+ parsePatterns: parseDayPeriodPatterns,
2479
+ defaultParseWidth: "any",
2480
+ }),
2481
+ };
2482
+
2483
+ /**
2484
+ * @category Locales
2485
+ * @summary Chinese Simplified locale.
2486
+ * @language Chinese Simplified
2487
+ * @iso-639-2 zho
2488
+ * @author Changyu Geng [@KingMario](https://github.com/KingMario)
2489
+ * @author Song Shuoyun [@fnlctrl](https://github.com/fnlctrl)
2490
+ * @author sabrinaM [@sabrinamiao](https://github.com/sabrinamiao)
2491
+ * @author Carney Wu [@cubicwork](https://github.com/cubicwork)
2492
+ * @author Terrence Lam [@skyuplam](https://github.com/skyuplam)
2493
+ */
2494
+ const zhCN = {
2495
+ code: "zh-CN",
2496
+ formatDistance: formatDistance,
2497
+ formatLong: formatLong,
2498
+ formatRelative: formatRelative,
2499
+ localize: localize,
2500
+ match: match,
2501
+ options: {
2502
+ weekStartsOn: 1 /* Monday */,
2503
+ firstWeekContainsDate: 4,
2504
+ },
2505
+ };
2506
+
2507
+ const startPageCss = ":host{display:grid;block-size:100%;overflow:auto}.main{animation:fadeIn 300ms forwards;display:grid;block-size:100%;overflow:auto;opacity:0;grid-template-rows:max-content 1fr;gap:var(--mer-spacing--xl)}@keyframes bounce{0%{transform:translateY(0)}100%{transform:translateY(-30px)}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.section-create-new-kb__actions,.section-secondary__actions{display:grid;grid-auto-flow:column;gap:var(--mer-spacing--md);overflow-x:auto;padding-block-end:var(--mer-spacing--xs)}.card-filled,.card-outlined{display:grid;gap:var(--mer-spacing--xl);align-content:space-between;border:var(--mer-border__width--sm) solid var(--mer-border-color__on-surface);border-radius:var(--mer-border__radius--sm);padding:var(--mer-spacing--lg)}.card-filled{background-color:var(--mer-surface__elevation--01)}.icon-capsule{pointer-events:none;display:inline-flex;block-size:40px;inline-size:40px;justify-content:center;align-items:center;border-radius:50%;border:var(--mer-border__width--sm) dashed var(--mer-border-color__on-elevation--02)}.card__header{display:grid;gap:var(--mer-spacing--sm)}.card__header-description{display:grid;gap:var(--mer-spacing--2xs)}.section-create-new-kb{display:grid;grid-auto-rows:max-content;gap:var(--mer-spacing--lg)}.section-create-new-kb__header{display:grid;gap:var(--mer-spacing--2xs)}.section-create-new-kb__actions{display:grid;gap:var(--mer-spacing--md);overflow-x:auto;grid-auto-flow:column;grid-auto-columns:430px}.section-secondary{display:grid;block-size:100%;position:relative;overflow:auto}.section-secondary__actions{display:grid;gap:var(--mer-spacing--sm)}.section-secondary__actions--two-cards{grid-template-columns:repeat(2, minmax(430px, 1fr))}.section-secondary__actions--multiple-cards{grid-auto-columns:670px}.section-kbs{background-color:var(--mer-surface__elevation--01);border-radius:var(--mer-border__radius--sm);padding:var(--mer-spacing--sm);display:grid;grid-template-rows:auto 1fr;overflow:auto}.section-kbs__header{display:grid;grid-template-columns:max-content 230px;align-items:center;gap:var(--mer-spacing--xl);border-block-end:var(--mer-border__width--sm) solid var(--mer-border-color__on-elevation--03);padding-block-end:var(--mer-spacing--sm)}.section-kbs__header--no-border{border-block-end-color:transparent !important}.section-kbs__title{align-items:center;display:flex;min-block-size:31px}.section-kbs__filter--hidden{opacity:0}.section-kbs__list{display:grid;grid-auto-rows:max-content;grid-template-columns:1fr 1fr;row-gap:var(--mer-spacing--xs);column-gap:var(--mer-spacing--md);overflow:auto;position:relative;padding-block-start:var(--mer-spacing--sm)}.section-kbs__list--empty{grid-template-columns:1fr;grid-auto-rows:1fr;overflow:hidden}.kb__item{background-color:var(--mer-surface__elevation--02);padding:var(--mer-spacing--sm);display:grid;grid-template-columns:284px 1fr;gap:var(--mer-spacing--md)}.kb__details{display:grid;grid-template-columns:max-content 1fr;align-items:center;gap:var(--mer-spacing--sm)}.kb__name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-decoration:underline;cursor:pointer}.kb__name:hover{color:var(--mer-text__bright)}.kb__modified{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.hiChar{color:var(--mer-color__primary--200);filter:brightness(1.3)}.loader{border:var(--mer-border__width--sm) solid var(--mer-border-color__on-surface)}.heading-2,.heading-3{margin:0;font-weight:600 !important;color:#ffffff !important}.card-filled .heading-3{color:var(--mer-text__on-surface) !important}.text-body-regular-m,.card__footer{font-weight:var(--mer-font__weight--light) !important;--control__font-weight--regular:var(--mer-font__weight--light)}";
12
2508
 
13
2509
  var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
14
2510
  if (kind === "a" && !f)
@@ -26,7 +2522,34 @@ var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) ||
26
2522
  throw new TypeError("Cannot write private member to an object whose class did not declare it");
27
2523
  return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
28
2524
  };
29
- var _GxIdeStartPage_recentKbsFilter, _GxIdeStartPage_kbsFilterValue, _GxIdeStartPage_kbRefs, _GxIdeStartPage_evaluateRenderKbs, _GxIdeStartPage_filterKbs, _GxIdeStartPage_getNewsCallbackRecentNews, _GxIdeStartPage_openKbHandler, _GxIdeStartPage_renderKb, _GxIdeStartPage_renderKbs, _GxIdeStartPage_searchKbsInputHandler, _GxIdeStartPage_searchNewsInputHandler;
2525
+ var _GxIdeStartPage_instances, _GxIdeStartPage_componentLocale, _GxIdeStartPage_userLanguage, _GxIdeStartPage_createKBClickHandler, _GxIdeStartPage_openKbClickHandler, _GxIdeStartPage_filterKbs, _GxIdeStartPage_renderKbsSection, _GxIdeStartPage_renderKbs, _GxIdeStartPage_evaluateContentToRender, _GxIdeStartPage_renderSecondarySection;
2526
+ // const locale = enUS; // use `zhCN` for Chinese, `ja` for Japanese, `enUS` for English
2527
+ const LANGS_DATE_FNS_MAP = {
2528
+ "en": enUS,
2529
+ "ja": ja,
2530
+ "zh-CN": zhCN,
2531
+ "zh-TW": zhCN,
2532
+ "zh-HK": zhCN
2533
+ };
2534
+ const DETAIL_ICON = assetsManager.getIconPath({
2535
+ category: "system",
2536
+ name: "detail",
2537
+ colorType: "primary"
2538
+ });
2539
+ const FILTER_ICON = assetsManager.getIconPath({
2540
+ category: "window-tools",
2541
+ name: "filter",
2542
+ colorType: "on-elevation"
2543
+ });
2544
+ const KB_DEFAULT_ICON = assetsManager.getIconPath({
2545
+ category: "objects",
2546
+ name: "knowledge-base"
2547
+ });
2548
+ const SEARCH_ICON = assetsManager.getIconPath({
2549
+ category: "system",
2550
+ name: "search",
2551
+ colorType: "on-elevation"
2552
+ });
30
2553
  const CSS_BUNDLES = [
31
2554
  "resets/box-sizing",
32
2555
  "utils/typography",
@@ -34,130 +2557,147 @@ const CSS_BUNDLES = [
34
2557
  "components/edit",
35
2558
  "components/icon",
36
2559
  "components/button",
37
- "chameleon/scrollbar"
2560
+ "chameleon/scrollbar",
2561
+ "utils/typography"
38
2562
  ];
39
- const KB_ICON = assetsManager.getIconPath({
40
- category: "objects",
41
- name: "knowledge-base"
42
- });
43
- const FOLDER_ICON = assetsManager.getIconPath({
44
- category: "system",
45
- name: "folder",
46
- colorType: "on-elevation"
47
- });
48
2563
  const GxIdeStartPage = class {
49
2564
  constructor(hostRef) {
50
2565
  index.registerInstance(this, hostRef);
51
- _GxIdeStartPage_recentKbsFilter.set(this, void 0);
52
- _GxIdeStartPage_kbsFilterValue.set(this, "");
53
- _GxIdeStartPage_kbRefs.set(this, {}); // Object to store kbs refs
54
- _GxIdeStartPage_evaluateRenderKbs.set(this, () => {
55
- var _a;
56
- if (((_a = this.kbs) === null || _a === void 0 ? void 0 : _a.length) > 0) {
57
- return __classPrivateFieldGet(this, _GxIdeStartPage_renderKbs, "f").call(this);
58
- }
59
- else {
60
- return (index.h("gx-ide-empty-state", { class: "kbs-empty-state", stateIconSrc: FOLDER_ICON, stateTitle: this._componentLocale.emptyState.title, stateDescription: this._componentLocale.emptyState.description }));
61
- }
2566
+ _GxIdeStartPage_instances.add(this);
2567
+ /**
2568
+ * The component hard-coded strings translations.
2569
+ */
2570
+ // eslint-disable-next-line @stencil-community/own-props-must-be-private
2571
+ _GxIdeStartPage_componentLocale.set(this, void 0);
2572
+ _GxIdeStartPage_userLanguage.set(this, void 0);
2573
+ _GxIdeStartPage_createKBClickHandler.set(this, (fromServer) => (event) => {
2574
+ event.stopPropagation();
2575
+ this.createKBCallback(fromServer);
62
2576
  });
63
- _GxIdeStartPage_filterKbs.set(this, () => {
64
- this.filteredKbs = this.kbs.filter(kb => { var _a; return (_a = kb.name) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(__classPrivateFieldGet(this, _GxIdeStartPage_kbsFilterValue, "f")); });
2577
+ _GxIdeStartPage_openKbClickHandler.set(this, (kbId) => (event) => {
2578
+ event.stopPropagation();
2579
+ this.openKbCallback(kbId);
65
2580
  });
66
- _GxIdeStartPage_getNewsCallbackRecentNews.set(this, async () => {
67
- return new Promise(async (resolve) => {
68
- this.news = await this.getNewsCallback();
69
- resolve(this.news);
70
- });
71
- });
72
- _GxIdeStartPage_openKbHandler.set(this, async (e) => {
73
- const kbId = e.currentTarget.id;
74
- await this.openKbCallback(kbId);
2581
+ _GxIdeStartPage_filterKbs.set(this, (event) => {
2582
+ this.kbFilterValue = event.detail;
75
2583
  });
76
- _GxIdeStartPage_renderKb.set(this, (kb) => {
77
- var _a, _b;
78
- const formattedDate = helpers.formatDate(kb.lastOpenedDate, "pretty");
79
- const dateCaption = formattedDate
80
- ? `${this._componentLocale.recentKbs.lastOpened} ${formattedDate}`
81
- : null;
82
- return (index.h("article", { class: "display-contents" }, index.h("button", { class: {
83
- "card-small": true,
84
- "card-small--actionable": true,
85
- "card-kb": true,
86
- "exact-match-bright": ((_a = kb.name) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase()) ===
87
- ((_b = __classPrivateFieldGet(this, _GxIdeStartPage_kbsFilterValue, "f")) === null || _b === void 0 ? void 0 : _b.toLowerCase())
88
- }, id: kb.id, key: kb.id, type: "button", ref: el => (__classPrivateFieldGet(this, _GxIdeStartPage_kbRefs, "f")[kb.id] = el), onClick: __classPrivateFieldGet(this, _GxIdeStartPage_openKbHandler, "f") }, index.h("div", { class: "card-kb__left-col" }, index.h("ch-image", { src: KB_ICON, class: "icon-md", containerRef: __classPrivateFieldGet(this, _GxIdeStartPage_kbRefs, "f")[kb.id] }), index.h("h2", { class: config.config.headingsClasses.cardSmall }, helpers.hiChar(kb.name, __classPrivateFieldGet(this, _GxIdeStartPage_kbsFilterValue, "f")))), dateCaption && index.h("div", { class: "card-kb__right-col" }, dateCaption))));
2584
+ _GxIdeStartPage_renderKbsSection.set(this, () => {
2585
+ const hideKbsFilter = this.kbs.length < this.kbsFilterThreshold;
2586
+ const kbsListEmpty = this.filteredKbs.length === 0;
2587
+ let contentToRender;
2588
+ // Evaluate what is the content to display.
2589
+ if (this.filteredKbs.length > 0) {
2590
+ contentToRender = __classPrivateFieldGet(this, _GxIdeStartPage_renderKbs, "f").call(this);
2591
+ }
2592
+ else {
2593
+ // No kb has pass the filter. Display an empty-state.
2594
+ contentToRender = (index.h("gx-ide-empty-state", { isAnimated: true, stateIconSrc: FILTER_ICON, stateTitle: __classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").recentKBs.noMatches }));
2595
+ }
2596
+ return (index.h("section", { class: "section-kbs" }, index.h("header", { class: {
2597
+ "section-kbs__header": true
2598
+ } }, index.h("h2", { class: "heading-3 section-kbs__title" }, __classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").recentKBs.title), index.h("ch-edit", {
2599
+ // Render always, and display or hide, ro prevent FOUC, and also prevent
2600
+ // the header block-size from growing a little bit when the input renders.
2601
+ value: this.kbFilterValue, class: {
2602
+ "input": true,
2603
+ "section-kbs__filter--hidden": hideKbsFilter
2604
+ }, startImgSrc: SEARCH_ICON, placeholder: __classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").recentKBs.filterKbsPlaceholder, onInput: !hideKbsFilter && __classPrivateFieldGet(this, _GxIdeStartPage_filterKbs, "f"), disabled: hideKbsFilter
2605
+ })), index.h("div", { class: {
2606
+ "section-kbs__list": true,
2607
+ "section-kbs__list--empty": kbsListEmpty,
2608
+ "scrollable": true
2609
+ } }, this.filteredKbs.length > 0 ? __classPrivateFieldGet(this, _GxIdeStartPage_renderKbs, "f").call(this) : contentToRender)));
89
2610
  });
90
2611
  _GxIdeStartPage_renderKbs.set(this, () => {
91
2612
  var _a;
92
- if (this.filteredKbs.length) {
93
- return (index.h("div", { class: "kbs-container scrollable" }, (_a = this.filteredKbs) === null || _a === void 0 ? void 0 : _a.map(__classPrivateFieldGet(this, _GxIdeStartPage_renderKb, "f"))));
94
- }
95
- return (index.h("gx-ide-empty-state", { stateIconSrc: KB_ICON, stateTitle: this._componentLocale.recentKbs.noKbsFiltered.title }));
96
- });
97
- _GxIdeStartPage_searchKbsInputHandler.set(this, (event) => {
98
- __classPrivateFieldSet(this, _GxIdeStartPage_kbsFilterValue, event.target.value.toLowerCase(), "f");
99
- __classPrivateFieldGet(this, _GxIdeStartPage_filterKbs, "f").call(this);
2613
+ return (_a = this.filteredKbs) === null || _a === void 0 ? void 0 : _a.map((kb, index$1) => {
2614
+ // relative time ago
2615
+ var _a;
2616
+ const relativeDate = kb.lastOpenedDate
2617
+ ? formatDistanceToNow(new Date(kb.lastOpenedDate), {
2618
+ addSuffix: true,
2619
+ locale: __classPrivateFieldGet(this, _GxIdeStartPage_userLanguage, "f")
2620
+ })
2621
+ : undefined;
2622
+ // icon
2623
+ const kbIcon = (_a = kb.icon) !== null && _a !== void 0 ? _a : KB_DEFAULT_ICON;
2624
+ return (index.h("article", { class: "kb__item", key: index$1 }, index.h("div", { class: "kb__details" }, index.h("ch-image", { class: "icon-md", src: kbIcon }), index.h("p", { class: "text-body-regular-m kb__name", onClick: __classPrivateFieldGet(this, _GxIdeStartPage_openKbClickHandler, "f").call(this, kb.id) }, kb.name)), relativeDate && (index.h("div", { class: "text-body-regular-m kb__modified" }, `${__classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").recentKBs.opened} ${relativeDate}`))));
2625
+ });
100
2626
  });
101
- _GxIdeStartPage_searchNewsInputHandler.set(this, (event) => {
102
- this.newsFilterValue = event.target.value.toLowerCase();
2627
+ _GxIdeStartPage_renderSecondarySection.set(this, () => {
2628
+ if (!this.secondarySection) {
2629
+ return null;
2630
+ }
2631
+ const multipleCards = this.secondarySection.cards.length > 2;
2632
+ return (index.h("section", {
2633
+ // Recent Knowledge Bases
2634
+ class: "section-secondary"
2635
+ }, index.h("header", null, index.h("h2", { class: "heading-3" }, this.secondarySection.title)), index.h("section", { class: {
2636
+ "section-secondary__actions": true,
2637
+ "section-secondary__actions--two-cards": !multipleCards,
2638
+ "section-secondary__actions--multiple-cards": multipleCards,
2639
+ "scrollable": true
2640
+ } }, this.secondarySection.cards.map((card, index$1) => {
2641
+ return (index.h("article", { class: "card card-outlined", key: index$1 }, index.h("header", { class: "card__header" }, index.h("span", { class: "icon-capsule" }, index.h("ch-image", { class: "icon-md icon-circular", src: card.icon.src, "aria-label": card.icon.ariaLabel })), index.h("div", { class: "card__header-description" }, index.h("h2", { class: "heading-3" }, card.title), card.description.map(paragraph => (index.h("p", { class: "text-body-regular-m" }, paragraph))))), index.h("footer", { class: "card__footer" }, card.action && (index.h("button", { class: "button-tertiary button-icon-and-text", onClick: card.action.callback && card.action.callback }, index.h("ch-image", { class: "icon-md", src: DETAIL_ICON }), card.action.caption)))));
2642
+ }))));
103
2643
  });
104
- this.displayKbsFilter = true;
105
- this.displayNewsFilter = false;
106
- this.filteredKbs = [];
107
- this.filteredNews = [];
108
- this.loadingKbs = true;
109
- this.news = undefined;
110
- this.newsFilterValue = undefined;
111
- this.renderedFirstTime = false;
112
- this.getNewsCallback = undefined;
113
- this.kbs = [];
114
- this.kbsFilterThreshold = 6;
115
- this.newsFilterThreshold = 6;
2644
+ this.kbFilterValue = "";
2645
+ this.filteredKbs = undefined;
2646
+ this.loading = true;
2647
+ this.createKBCallback = undefined;
116
2648
  this.openKbCallback = undefined;
117
- this.openNewsCallback = undefined;
118
- }
119
- watchNews(news) {
120
- if ((news === null || news === void 0 ? void 0 : news.length) >= this.newsFilterThreshold) {
121
- this.displayNewsFilter = true;
122
- }
123
- else {
124
- this.displayNewsFilter = false;
125
- }
126
- }
127
- kbsChanged(kbs) {
128
- this.loadingKbs = false;
129
- __classPrivateFieldGet(this, _GxIdeStartPage_filterKbs, "f").call(this);
130
- if ((kbs === null || kbs === void 0 ? void 0 : kbs.length) >= this.kbsFilterThreshold) {
131
- this.displayKbsFilter = true;
132
- }
133
- else {
134
- this.displayKbsFilter = false;
135
- }
2649
+ this.secondarySection = undefined;
2650
+ this.kbs = undefined;
2651
+ this.kbsFilterThreshold = undefined;
136
2652
  }
137
- async componentWillLoad() {
138
- this._componentLocale = await locale.Locale.getComponentStrings(this.el);
2653
+ kbFilterValueChanged(newKbFilterValue) {
2654
+ this.filteredKbs = this.kbs.filter(kb => kb.name.toLowerCase().includes(newKbFilterValue.toLocaleLowerCase()));
139
2655
  }
140
- componentDidLoad() {
141
- var _a;
142
- (_a = __classPrivateFieldGet(this, _GxIdeStartPage_recentKbsFilter, "f")) === null || _a === void 0 ? void 0 : _a.focus();
2656
+ kbsChanged(newKbs) {
2657
+ this.filteredKbs = newKbs;
2658
+ this.kbFilterValue = ""; // clear filter
2659
+ }
2660
+ async componentWillLoad() {
2661
+ __classPrivateFieldSet(this, _GxIdeStartPage_componentLocale, await locale.Locale.getComponentStrings(this.el), "f");
2662
+ // initialize filteredKbs
2663
+ this.kbsChanged(this.kbs);
2664
+ // get user language to display the kb "last opened" value in the appropriate language.
2665
+ const userLanguage = document.documentElement
2666
+ .lang;
2667
+ __classPrivateFieldSet(this, _GxIdeStartPage_userLanguage, LANGS_DATE_FNS_MAP[userLanguage], "f");
143
2668
  }
144
2669
  render() {
145
- var _a, _b, _c;
146
- return (index.h(index.Host, { class: "start-page-host" }, index.h("ch-theme", { model: CSS_BUNDLES }), index.h("div", { class: "layout layout-main layout--cols-2" }, index.h("div", { class: "layout__panel panel-recent-kbs" }, index.h("section", { class: "card-regular recent-kbs" }, index.h("header", { class: "recent-kbs__header" }, index.h("h2", { class: {
147
- [config.config.headingsClasses.cardRegular]: true,
148
- "recent-kbs__title": true
149
- } }, this._componentLocale.recentKbs.title), this.displayKbsFilter && (index.h("ch-edit", { type: "text", class: "form-input recent-kbs__name-filter", placeholder: this._componentLocale.recentKbs.placeholder, onInput: __classPrivateFieldGet(this, _GxIdeStartPage_searchKbsInputHandler, "f"), ref: el => (__classPrivateFieldSet(this, _GxIdeStartPage_recentKbsFilter, el, "f")), disabled: !(((_a = this.kbs) === null || _a === void 0 ? void 0 : _a.length) > 0) }))), this.loadingKbs ? (index.h("gx-ide-loader", { loaderTitle: this._componentLocale.recentKbs.loader.title, description: this._componentLocale.recentKbs.loader.description, show: true })) : (__classPrivateFieldGet(this, _GxIdeStartPage_evaluateRenderKbs, "f").call(this)))), index.h("div", { class: "layout__panel panel-recent-news" }, index.h("section", { class: "card-regular recent-news" }, index.h("header", { class: "recent-news__header" }, index.h("h2", { class: config.config.headingsClasses.cardRegular }, this._componentLocale.recentNews.title), this.displayNewsFilter && (index.h("ch-edit", { type: "text", class: "form-input recent-news__filter", placeholder: this._componentLocale.recentNews.inputPlaceholder, onInput: ((_b = this.news) === null || _b === void 0 ? void 0 : _b.length) > 0
150
- ? __classPrivateFieldGet(this, _GxIdeStartPage_searchNewsInputHandler, "f")
151
- : null, disabled: !(((_c = this.news) === null || _c === void 0 ? void 0 : _c.length) > 0) }))), index.h("gx-ide-recent-news", { getNewsCallback: __classPrivateFieldGet(this, _GxIdeStartPage_getNewsCallbackRecentNews, "f"), openNewsCallback: this.openNewsCallback, filterValue: this.newsFilterValue }))))));
2670
+ var _a;
2671
+ this.loading =
2672
+ (!this.kbs || ((_a = this.kbs) === null || _a === void 0 ? void 0 : _a.length) === 0) && !this.secondarySection;
2673
+ return (index.h(index.Host, null, index.h("ch-theme", { model: CSS_BUNDLES }), index.h("main", { class: {
2674
+ main: true
2675
+ } }, index.h("section", {
2676
+ // Create a new Knowledge Base
2677
+ class: "section-create-new-kb"
2678
+ }, index.h("header", {
2679
+ // main header
2680
+ class: "section-create-new__header"
2681
+ }, index.h("h1", { class: "heading-2" }, __classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").createKB.title), index.h("p", { class: "text-body-regular-m" }, __classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").createKB.description)), index.h("section", { class: "section-create-new-kb__actions scrollable" }, index.h("article", {
2682
+ // create project
2683
+ class: "card card-filled"
2684
+ }, index.h("header", { class: "card__header" }, index.h("div", { class: "card__header-description" }, index.h("h2", { class: "heading-3" }, __classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").createProject.title), index.h("p", { class: "text-body-regular-m" }, __classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").createProject.description))), index.h("footer", { class: "card__footer" }, index.h("button", { class: "button-primary", onClick: __classPrivateFieldGet(this, _GxIdeStartPage_createKBClickHandler, "f").call(this, false) }, __classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").createProject.buttonCaption))), index.h("article", {
2685
+ // open existing project
2686
+ class: "card-filled"
2687
+ }, index.h("header", { class: "card__header" }, index.h("div", { class: "card__header-description" }, index.h("h2", { class: "heading-3" }, __classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").openExistingProject.title), index.h("p", { class: "text-body-regular-m" }, __classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").openExistingProject.description))), index.h("footer", { class: "card__footer" }, index.h("button", { class: "button-secondary cancel-btn", onClick: __classPrivateFieldGet(this, _GxIdeStartPage_createKBClickHandler, "f").call(this, true) }, __classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").openExistingProject.buttonCaption))))), index.h("section", { class: "section-secondary scrollable" }, this.loading ? (index.h("gx-ide-loader", { class: "loader", loaderTitle: __classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").recentKBs.loaderTitle, description: __classPrivateFieldGet(this, _GxIdeStartPage_componentLocale, "f").recentKBs.loaderDescription, show: true })) : (__classPrivateFieldGet(this, _GxIdeStartPage_instances, "m", _GxIdeStartPage_evaluateContentToRender).call(this))))));
152
2688
  }
153
2689
  static get assetsDirs() { return ["gx-ide-assets/start-page"]; }
154
2690
  get el() { return index.getElement(this); }
155
2691
  static get watchers() { return {
156
- "news": ["watchNews"],
2692
+ "kbFilterValue": ["kbFilterValueChanged"],
157
2693
  "kbs": ["kbsChanged"]
158
2694
  }; }
159
2695
  };
160
- _GxIdeStartPage_recentKbsFilter = new WeakMap(), _GxIdeStartPage_kbsFilterValue = new WeakMap(), _GxIdeStartPage_kbRefs = new WeakMap(), _GxIdeStartPage_evaluateRenderKbs = new WeakMap(), _GxIdeStartPage_filterKbs = new WeakMap(), _GxIdeStartPage_getNewsCallbackRecentNews = new WeakMap(), _GxIdeStartPage_openKbHandler = new WeakMap(), _GxIdeStartPage_renderKb = new WeakMap(), _GxIdeStartPage_renderKbs = new WeakMap(), _GxIdeStartPage_searchKbsInputHandler = new WeakMap(), _GxIdeStartPage_searchNewsInputHandler = new WeakMap();
2696
+ _GxIdeStartPage_componentLocale = new WeakMap(), _GxIdeStartPage_userLanguage = new WeakMap(), _GxIdeStartPage_createKBClickHandler = new WeakMap(), _GxIdeStartPage_openKbClickHandler = new WeakMap(), _GxIdeStartPage_filterKbs = new WeakMap(), _GxIdeStartPage_renderKbsSection = new WeakMap(), _GxIdeStartPage_renderKbs = new WeakMap(), _GxIdeStartPage_renderSecondarySection = new WeakMap(), _GxIdeStartPage_instances = new WeakSet(), _GxIdeStartPage_evaluateContentToRender = function _GxIdeStartPage_evaluateContentToRender() {
2697
+ return this.kbs && this.kbs.length > 0
2698
+ ? __classPrivateFieldGet(this, _GxIdeStartPage_renderKbsSection, "f").call(this)
2699
+ : __classPrivateFieldGet(this, _GxIdeStartPage_renderSecondarySection, "f").call(this);
2700
+ };
161
2701
  GxIdeStartPage.style = startPageCss;
162
2702
 
163
2703
  exports.gx_ide_start_page = GxIdeStartPage;