@genexus/genexus-ide-ui 1.0.64 → 1.0.66

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 (295) hide show
  1. package/dist/cjs/{common-f7361979.js → common-72f91a78.js} +16 -1
  2. package/dist/cjs/common-72f91a78.js.map +1 -0
  3. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  4. package/dist/cjs/gx-ide-about.cjs.entry.js +60 -0
  5. package/dist/cjs/gx-ide-about.cjs.entry.js.map +1 -0
  6. package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js +1 -1
  7. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +1 -1
  8. package/dist/cjs/gx-ide-new-environment.cjs.entry.js +1 -1
  9. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +1 -1
  10. package/dist/cjs/gx-ide-new-object.cjs.entry.js +8 -4
  11. package/dist/cjs/gx-ide-new-object.cjs.entry.js.map +1 -1
  12. package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js +6 -3
  13. package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js.map +1 -1
  14. package/dist/cjs/gx-ide-splash.cjs.entry.js +53 -28
  15. package/dist/cjs/gx-ide-splash.cjs.entry.js.map +1 -1
  16. package/dist/cjs/gx-ide-ww-images.cjs.entry.js +1 -1
  17. package/dist/cjs/loader.cjs.js +1 -1
  18. package/dist/collection/collection-manifest.json +2 -1
  19. package/dist/collection/common/common.js +8 -0
  20. package/dist/collection/common/common.js.map +1 -1
  21. package/dist/collection/components/_branding/about/about.css +64 -0
  22. package/dist/collection/components/_branding/about/about.js +178 -0
  23. package/dist/collection/components/_branding/about/about.js.map +1 -0
  24. package/dist/collection/components/_branding/about/gx-ide-assets/about/images/next-arrow.svg +3 -0
  25. package/dist/collection/components/_branding/about/gx-ide-assets/about/images/next-logo.svg +4 -0
  26. package/dist/collection/components/_branding/about/gx-ide-assets/about/images/next-square.svg +3 -0
  27. package/dist/collection/components/_branding/about/gx-ide-assets/about/langs/about.lang.en.json +11 -0
  28. package/dist/collection/components/_branding/about/gx-ide-assets/about/langs/about.lang.ja.json +11 -0
  29. package/dist/collection/components/_branding/about/gx-ide-assets/about/langs/about.lang.zh.json +11 -0
  30. package/dist/collection/components/new-object/new-object.js +8 -4
  31. package/dist/collection/components/new-object/new-object.js.map +1 -1
  32. package/dist/collection/components/select-kb-items/helpers.js +6 -3
  33. package/dist/collection/components/select-kb-items/helpers.js.map +1 -1
  34. package/dist/collection/components/select-kb-items/select-kb-items.js.map +1 -1
  35. package/dist/collection/components/splash/gx-ide-assets/splash/images/copyrights-illustration.svg +118 -0
  36. package/dist/collection/components/splash/gx-ide-assets/splash/langs/splash.lang.en.json +12 -11
  37. package/dist/collection/components/splash/gx-ide-assets/splash/langs/splash.lang.ja.json +12 -11
  38. package/dist/collection/components/splash/gx-ide-assets/splash/langs/splash.lang.zh.json +12 -11
  39. package/dist/collection/components/splash/splash.css +147 -36
  40. package/dist/collection/components/splash/splash.js +149 -43
  41. package/dist/collection/components/splash/splash.js.map +1 -1
  42. package/dist/collection/testing/locale.e2e.js +1 -0
  43. package/dist/collection/testing/locale.e2e.js.map +1 -1
  44. package/dist/components/common.js +15 -1
  45. package/dist/components/common.js.map +1 -1
  46. package/dist/components/gx-ide-about.d.ts +11 -0
  47. package/dist/components/gx-ide-about.js +81 -0
  48. package/dist/components/gx-ide-about.js.map +1 -0
  49. package/dist/components/gx-ide-new-object.js +8 -4
  50. package/dist/components/gx-ide-new-object.js.map +1 -1
  51. package/dist/components/gx-ide-select-kb-items.js +6 -3
  52. package/dist/components/gx-ide-select-kb-items.js.map +1 -1
  53. package/dist/components/gx-ide-splash.js +61 -33
  54. package/dist/components/gx-ide-splash.js.map +1 -1
  55. package/dist/esm/{code-render-36275eb4.js → code-render-f3d41da4.js} +2 -2
  56. package/dist/esm/{code-render-36275eb4.js.map → code-render-f3d41da4.js.map} +1 -1
  57. package/dist/esm/{common-2a1e4e67.js → common-ccb4504a.js} +17 -3
  58. package/dist/esm/common-ccb4504a.js.map +1 -0
  59. package/dist/esm/genexus-ide-ui.js +3 -3
  60. package/dist/esm/gx-ide-about.entry.js +56 -0
  61. package/dist/esm/gx-ide-about.entry.js.map +1 -0
  62. package/dist/esm/gx-ide-ai-assistant.entry.js +1 -1
  63. package/dist/esm/gx-ide-ai-message.entry.js +2 -2
  64. package/dist/esm/gx-ide-bpm-app-declaration.entry.js +2 -2
  65. package/dist/esm/gx-ide-bpm-assign-roles.entry.js +1 -1
  66. package/dist/esm/gx-ide-bpm-export-xpdl.entry.js +1 -1
  67. package/dist/esm/gx-ide-bpm-import-files.entry.js +2 -2
  68. package/dist/esm/gx-ide-bpm-import-gxpm.entry.js +1 -1
  69. package/dist/esm/gx-ide-bpm-objects-selector.entry.js +2 -2
  70. package/dist/esm/gx-ide-bpm-timer-duration.entry.js +1 -1
  71. package/dist/esm/gx-ide-card.entry.js +1 -1
  72. package/dist/esm/gx-ide-chat-container.entry.js +1 -1
  73. package/dist/esm/gx-ide-connect-gx-server.entry.js +1 -1
  74. package/dist/esm/gx-ide-container_2.entry.js +1 -1
  75. package/dist/esm/gx-ide-create-kb-from-server.entry.js +1 -1
  76. package/dist/esm/gx-ide-current-user-info.entry.js +1 -1
  77. package/dist/esm/gx-ide-dashboard-home.entry.js +2 -2
  78. package/dist/esm/gx-ide-data-selector.entry.js +1 -1
  79. package/dist/esm/gx-ide-data-type-selector.entry.js +1 -1
  80. package/dist/esm/gx-ide-design-import.entry.js +1 -1
  81. package/dist/esm/gx-ide-directory-selector.entry.js +1 -1
  82. package/dist/esm/gx-ide-edit-module-server.entry.js +1 -1
  83. package/dist/esm/gx-ide-empty-state.entry.js +1 -1
  84. package/dist/esm/gx-ide-entity-selector.entry.js +1 -1
  85. package/dist/esm/gx-ide-gam-installation-settings.entry.js +1 -1
  86. package/dist/esm/gx-ide-kb-manager-export.entry.js +1 -1
  87. package/dist/esm/gx-ide-kb-manager-import.entry.js +1 -1
  88. package/dist/esm/gx-ide-list-selector_2.entry.js +1 -1
  89. package/dist/esm/gx-ide-loader.entry.js +1 -1
  90. package/dist/esm/gx-ide-manage-module-references-v2.entry.js +2 -2
  91. package/dist/esm/gx-ide-manage-module-references.entry.js +2 -2
  92. package/dist/esm/gx-ide-navigation-report.entry.js +1 -1
  93. package/dist/esm/gx-ide-new-environment.entry.js +3 -3
  94. package/dist/esm/gx-ide-new-kb.entry.js +3 -3
  95. package/dist/esm/gx-ide-new-object.entry.js +9 -5
  96. package/dist/esm/gx-ide-new-object.entry.js.map +1 -1
  97. package/dist/esm/gx-ide-object-selector.entry.js +2 -2
  98. package/dist/esm/gx-ide-references.entry.js +1 -1
  99. package/dist/esm/gx-ide-sc-chat-container.entry.js +2 -2
  100. package/dist/esm/gx-ide-select-kb-items.entry.js +7 -4
  101. package/dist/esm/gx-ide-select-kb-items.entry.js.map +1 -1
  102. package/dist/esm/gx-ide-select-user-team.entry.js +1 -1
  103. package/dist/esm/gx-ide-share-kb.entry.js +1 -1
  104. package/dist/esm/gx-ide-sign-in-team.entry.js +1 -1
  105. package/dist/esm/gx-ide-sign-in.entry.js +1 -1
  106. package/dist/esm/gx-ide-splash.entry.js +54 -29
  107. package/dist/esm/gx-ide-splash.entry.js.map +1 -1
  108. package/dist/esm/gx-ide-start-page.entry.js +1 -1
  109. package/dist/esm/gx-ide-status-buttons.entry.js +1 -1
  110. package/dist/esm/gx-ide-switch-panel.entry.js +1 -1
  111. package/dist/esm/gx-ide-switcher.entry.js +1 -1
  112. package/dist/esm/gx-ide-team-dev-commit.entry.js +3 -3
  113. package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js +2 -2
  114. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js +1 -1
  115. package/dist/esm/gx-ide-team-dev-update-to-revision.entry.js +1 -1
  116. package/dist/esm/gx-ide-team-dev-update.entry.js +3 -3
  117. package/dist/esm/gx-ide-template.entry.js +1 -1
  118. package/dist/esm/gx-ide-test.entry.js +1 -1
  119. package/dist/esm/gx-ide-top-bar.entry.js +1 -1
  120. package/dist/esm/gx-ide-welcome-page.entry.js +1 -1
  121. package/dist/esm/gx-ide-wf-settings.entry.js +1 -1
  122. package/dist/esm/gx-ide-ww-attributes.entry.js +1 -1
  123. package/dist/esm/gx-ide-ww-images.entry.js +3 -3
  124. package/dist/esm/{helpers-ec4585e5.js → helpers-10479d69.js} +2 -2
  125. package/dist/esm/{helpers-ec4585e5.js.map → helpers-10479d69.js.map} +1 -1
  126. package/dist/esm/{index-6a0d98df.js → index-10af18cf.js} +2 -2
  127. package/dist/esm/{index-6a0d98df.js.map → index-10af18cf.js.map} +1 -1
  128. package/dist/esm/index.js +2 -2
  129. package/dist/esm/loader.js +3 -3
  130. package/dist/esm/{render-combo-items-70aa3ecf.js → render-combo-items-e9c8df5e.js} +2 -2
  131. package/dist/esm/{render-combo-items-70aa3ecf.js.map → render-combo-items-e9c8df5e.js.map} +1 -1
  132. package/dist/esm/{render-list-item-2ad96b71.js → render-list-item-f5836c31.js} +2 -2
  133. package/dist/esm/{render-list-item-2ad96b71.js.map → render-list-item-f5836c31.js.map} +1 -1
  134. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +3 -3
  135. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  136. package/dist/genexus-ide-ui/gx-ide-assets/about/images/next-arrow.svg +3 -0
  137. package/dist/genexus-ide-ui/gx-ide-assets/about/images/next-logo.svg +4 -0
  138. package/dist/genexus-ide-ui/gx-ide-assets/about/images/next-square.svg +3 -0
  139. package/dist/genexus-ide-ui/gx-ide-assets/about/langs/about.lang.en.json +11 -0
  140. package/dist/genexus-ide-ui/gx-ide-assets/about/langs/about.lang.ja.json +11 -0
  141. package/dist/genexus-ide-ui/gx-ide-assets/about/langs/about.lang.zh.json +11 -0
  142. package/dist/genexus-ide-ui/gx-ide-assets/splash/images/copyrights-illustration.svg +118 -0
  143. package/dist/genexus-ide-ui/gx-ide-assets/splash/langs/splash.lang.en.json +12 -11
  144. package/dist/genexus-ide-ui/gx-ide-assets/splash/langs/splash.lang.ja.json +12 -11
  145. package/dist/genexus-ide-ui/gx-ide-assets/splash/langs/splash.lang.zh.json +12 -11
  146. package/dist/genexus-ide-ui/index.esm.js +2 -2
  147. package/dist/genexus-ide-ui/{p-97114eef.entry.js → p-0078926e.entry.js} +3 -3
  148. package/dist/genexus-ide-ui/p-0550fd5f.entry.js +96 -0
  149. package/dist/genexus-ide-ui/p-0550fd5f.entry.js.map +1 -0
  150. package/dist/genexus-ide-ui/{p-1364f700.entry.js → p-0e48ff82.entry.js} +3 -3
  151. package/dist/genexus-ide-ui/{p-1cfcec9e.entry.js → p-10fe69d7.entry.js} +2 -2
  152. package/dist/genexus-ide-ui/{p-de589873.entry.js → p-10ff4729.entry.js} +3 -3
  153. package/dist/genexus-ide-ui/{p-5dc54e85.entry.js → p-1b21927c.entry.js} +2 -2
  154. package/dist/genexus-ide-ui/{p-6830b540.entry.js → p-1bc2613e.entry.js} +10 -6
  155. package/dist/genexus-ide-ui/p-1bc2613e.entry.js.map +1 -0
  156. package/dist/genexus-ide-ui/{p-502f2b47.entry.js → p-1cc0ca07.entry.js} +2 -2
  157. package/dist/genexus-ide-ui/{p-3e15089e.entry.js → p-1dd7be84.entry.js} +2 -2
  158. package/dist/genexus-ide-ui/{p-2cf37639.js → p-25a9f1d7.js} +2 -2
  159. package/dist/genexus-ide-ui/{p-b3e352c8.entry.js → p-26815be2.entry.js} +2 -2
  160. package/dist/genexus-ide-ui/{p-d8c7e0b5.entry.js → p-290bb089.entry.js} +31 -31
  161. package/dist/genexus-ide-ui/p-2c2eb4c5.entry.js +160 -0
  162. package/dist/genexus-ide-ui/p-2c2eb4c5.entry.js.map +1 -0
  163. package/dist/genexus-ide-ui/{p-9ffe118a.entry.js → p-304d5629.entry.js} +2 -2
  164. package/dist/genexus-ide-ui/{p-df8bf481.entry.js → p-31beae9e.entry.js} +2 -2
  165. package/dist/genexus-ide-ui/{p-e07c97d5.entry.js → p-33d12207.entry.js} +4 -4
  166. package/dist/genexus-ide-ui/{p-6637e817.entry.js → p-351d9a30.entry.js} +6 -6
  167. package/dist/genexus-ide-ui/{p-fbab024e.entry.js → p-38aee3da.entry.js} +2 -2
  168. package/dist/genexus-ide-ui/{p-3d2bdcb9.entry.js → p-3c70b7a7.entry.js} +2 -2
  169. package/dist/genexus-ide-ui/{p-24af7f98.entry.js → p-3f5112f4.entry.js} +2 -2
  170. package/dist/genexus-ide-ui/{p-afc73c6f.entry.js → p-42910d15.entry.js} +2 -2
  171. package/dist/genexus-ide-ui/{p-1a53cc60.entry.js → p-46ffec64.entry.js} +2 -2
  172. package/dist/genexus-ide-ui/{p-f654f86d.entry.js → p-4cc35270.entry.js} +2 -2
  173. package/dist/genexus-ide-ui/{p-df4249e1.entry.js → p-4dd463ed.entry.js} +3 -3
  174. package/dist/genexus-ide-ui/{p-ebe6d71f.entry.js → p-5825c3c1.entry.js} +2 -2
  175. package/dist/genexus-ide-ui/{p-03265b1b.entry.js → p-5e8326dd.entry.js} +4 -4
  176. package/dist/genexus-ide-ui/{p-eaab7765.entry.js → p-628d0a3f.entry.js} +3 -3
  177. package/dist/genexus-ide-ui/{p-0d9a25ad.entry.js → p-6331b2f2.entry.js} +27 -24
  178. package/dist/genexus-ide-ui/p-6331b2f2.entry.js.map +1 -0
  179. package/dist/genexus-ide-ui/{p-8900c81a.entry.js → p-68969051.entry.js} +2 -2
  180. package/dist/genexus-ide-ui/{p-d6c2e256.js → p-6ade96a2.js} +2 -2
  181. package/dist/genexus-ide-ui/{p-8ff555f4.entry.js → p-6d8d4428.entry.js} +2 -2
  182. package/dist/genexus-ide-ui/{p-85eb72eb.entry.js → p-6ec79fd8.entry.js} +2 -2
  183. package/dist/genexus-ide-ui/{p-6374dabb.entry.js → p-739058a1.entry.js} +4 -4
  184. package/dist/genexus-ide-ui/{p-b2af0c95.entry.js → p-81b673db.entry.js} +2 -2
  185. package/dist/genexus-ide-ui/{p-1c36217e.entry.js → p-82e107c8.entry.js} +2 -2
  186. package/dist/genexus-ide-ui/{p-3468662b.entry.js → p-842a081e.entry.js} +2 -2
  187. package/dist/genexus-ide-ui/{p-2de01408.js → p-8c0b4d9f.js} +2 -2
  188. package/dist/genexus-ide-ui/{p-e9f77ad0.entry.js → p-94904819.entry.js} +2 -2
  189. package/dist/genexus-ide-ui/{p-dcb1516d.entry.js → p-94b4993e.entry.js} +2 -2
  190. package/dist/genexus-ide-ui/{p-4cd56d14.entry.js → p-950953d1.entry.js} +2 -2
  191. package/dist/genexus-ide-ui/{p-70024ecb.entry.js → p-9678ac9d.entry.js} +20 -20
  192. package/dist/genexus-ide-ui/{p-49f9f6bf.entry.js → p-98b30c5d.entry.js} +8 -8
  193. package/dist/genexus-ide-ui/p-9a609b51.js +143 -0
  194. package/dist/genexus-ide-ui/p-9a609b51.js.map +1 -0
  195. package/dist/genexus-ide-ui/{p-5b1576cc.js → p-9ddea83b.js} +9 -9
  196. package/dist/genexus-ide-ui/{p-c21300fb.entry.js → p-a0529222.entry.js} +2 -2
  197. package/dist/genexus-ide-ui/{p-a6dd3f03.entry.js → p-b3d615da.entry.js} +2 -2
  198. package/dist/genexus-ide-ui/{p-22908448.entry.js → p-ba7d1472.entry.js} +8 -8
  199. package/dist/genexus-ide-ui/{p-f2f9e36e.entry.js → p-bb44d9f9.entry.js} +2 -2
  200. package/dist/genexus-ide-ui/p-c58e0a92.entry.js +17 -0
  201. package/dist/genexus-ide-ui/{p-acaed500.entry.js → p-c624a8da.entry.js} +2 -2
  202. package/dist/genexus-ide-ui/{p-9a604798.entry.js → p-c6aeddf9.entry.js} +3 -3
  203. package/dist/genexus-ide-ui/{p-aa821b66.entry.js → p-caed0369.entry.js} +3 -3
  204. package/dist/genexus-ide-ui/{p-34b5a494.entry.js → p-cbe2dd13.entry.js} +5 -5
  205. package/dist/genexus-ide-ui/{p-71f3b66e.entry.js → p-d095a37c.entry.js} +2 -2
  206. package/dist/genexus-ide-ui/{p-4fcde4d0.entry.js → p-d5d40477.entry.js} +3 -3
  207. package/dist/genexus-ide-ui/{p-1105c966.entry.js → p-d83fc68d.entry.js} +2 -2
  208. package/dist/genexus-ide-ui/{p-d7169c07.entry.js → p-dbcb6152.entry.js} +2 -2
  209. package/dist/genexus-ide-ui/{p-57986b2e.entry.js → p-dd515807.entry.js} +2 -2
  210. package/dist/genexus-ide-ui/{p-5a734013.entry.js → p-dd9136a4.entry.js} +2 -2
  211. package/dist/genexus-ide-ui/{p-b238a545.entry.js → p-de7f0c1f.entry.js} +2 -2
  212. package/dist/genexus-ide-ui/{p-822090ba.entry.js → p-e502c2fd.entry.js} +8 -8
  213. package/dist/genexus-ide-ui/{p-52af77c2.entry.js → p-e7fb3ee3.entry.js} +2 -2
  214. package/dist/genexus-ide-ui/{p-6e667dde.entry.js → p-eaa68fb2.entry.js} +4 -4
  215. package/dist/genexus-ide-ui/{p-f3aa0e41.js → p-f549f6e1.js} +2 -2
  216. package/dist/genexus-ide-ui/{p-c74d18fe.entry.js → p-fb314685.entry.js} +2 -2
  217. package/dist/genexus-ide-ui/{p-26aff07c.entry.js → p-fcee5a81.entry.js} +3 -3
  218. package/dist/types/common/common.d.ts +1 -0
  219. package/dist/types/components/_branding/about/about.d.ts +33 -0
  220. package/dist/types/components/select-kb-items/select-kb-items.d.ts +2 -1
  221. package/dist/types/components/splash/splash.d.ts +32 -8
  222. package/dist/types/components.d.ts +113 -8
  223. package/package.json +1 -1
  224. package/dist/cjs/common-f7361979.js.map +0 -1
  225. package/dist/esm/common-2a1e4e67.js.map +0 -1
  226. package/dist/genexus-ide-ui/p-0d9a25ad.entry.js.map +0 -1
  227. package/dist/genexus-ide-ui/p-6830b540.entry.js.map +0 -1
  228. package/dist/genexus-ide-ui/p-bb1394ca.entry.js +0 -113
  229. package/dist/genexus-ide-ui/p-bb1394ca.entry.js.map +0 -1
  230. package/dist/genexus-ide-ui/p-f194af32.js +0 -97
  231. package/dist/genexus-ide-ui/p-f194af32.js.map +0 -1
  232. package/dist/genexus-ide-ui/p-f963b96e.entry.js +0 -17
  233. /package/dist/collection/components/{splash/gx-ide-assets/splash → _branding/about/gx-ide-assets/about}/images/copyrights-illustration.png +0 -0
  234. /package/dist/genexus-ide-ui/gx-ide-assets/{splash → about}/images/copyrights-illustration.png +0 -0
  235. /package/dist/genexus-ide-ui/{p-97114eef.entry.js.map → p-0078926e.entry.js.map} +0 -0
  236. /package/dist/genexus-ide-ui/{p-1364f700.entry.js.map → p-0e48ff82.entry.js.map} +0 -0
  237. /package/dist/genexus-ide-ui/{p-1cfcec9e.entry.js.map → p-10fe69d7.entry.js.map} +0 -0
  238. /package/dist/genexus-ide-ui/{p-de589873.entry.js.map → p-10ff4729.entry.js.map} +0 -0
  239. /package/dist/genexus-ide-ui/{p-5dc54e85.entry.js.map → p-1b21927c.entry.js.map} +0 -0
  240. /package/dist/genexus-ide-ui/{p-502f2b47.entry.js.map → p-1cc0ca07.entry.js.map} +0 -0
  241. /package/dist/genexus-ide-ui/{p-3e15089e.entry.js.map → p-1dd7be84.entry.js.map} +0 -0
  242. /package/dist/genexus-ide-ui/{p-2cf37639.js.map → p-25a9f1d7.js.map} +0 -0
  243. /package/dist/genexus-ide-ui/{p-b3e352c8.entry.js.map → p-26815be2.entry.js.map} +0 -0
  244. /package/dist/genexus-ide-ui/{p-d8c7e0b5.entry.js.map → p-290bb089.entry.js.map} +0 -0
  245. /package/dist/genexus-ide-ui/{p-9ffe118a.entry.js.map → p-304d5629.entry.js.map} +0 -0
  246. /package/dist/genexus-ide-ui/{p-df8bf481.entry.js.map → p-31beae9e.entry.js.map} +0 -0
  247. /package/dist/genexus-ide-ui/{p-e07c97d5.entry.js.map → p-33d12207.entry.js.map} +0 -0
  248. /package/dist/genexus-ide-ui/{p-6637e817.entry.js.map → p-351d9a30.entry.js.map} +0 -0
  249. /package/dist/genexus-ide-ui/{p-fbab024e.entry.js.map → p-38aee3da.entry.js.map} +0 -0
  250. /package/dist/genexus-ide-ui/{p-3d2bdcb9.entry.js.map → p-3c70b7a7.entry.js.map} +0 -0
  251. /package/dist/genexus-ide-ui/{p-24af7f98.entry.js.map → p-3f5112f4.entry.js.map} +0 -0
  252. /package/dist/genexus-ide-ui/{p-afc73c6f.entry.js.map → p-42910d15.entry.js.map} +0 -0
  253. /package/dist/genexus-ide-ui/{p-1a53cc60.entry.js.map → p-46ffec64.entry.js.map} +0 -0
  254. /package/dist/genexus-ide-ui/{p-f654f86d.entry.js.map → p-4cc35270.entry.js.map} +0 -0
  255. /package/dist/genexus-ide-ui/{p-df4249e1.entry.js.map → p-4dd463ed.entry.js.map} +0 -0
  256. /package/dist/genexus-ide-ui/{p-ebe6d71f.entry.js.map → p-5825c3c1.entry.js.map} +0 -0
  257. /package/dist/genexus-ide-ui/{p-03265b1b.entry.js.map → p-5e8326dd.entry.js.map} +0 -0
  258. /package/dist/genexus-ide-ui/{p-eaab7765.entry.js.map → p-628d0a3f.entry.js.map} +0 -0
  259. /package/dist/genexus-ide-ui/{p-8900c81a.entry.js.map → p-68969051.entry.js.map} +0 -0
  260. /package/dist/genexus-ide-ui/{p-d6c2e256.js.map → p-6ade96a2.js.map} +0 -0
  261. /package/dist/genexus-ide-ui/{p-8ff555f4.entry.js.map → p-6d8d4428.entry.js.map} +0 -0
  262. /package/dist/genexus-ide-ui/{p-85eb72eb.entry.js.map → p-6ec79fd8.entry.js.map} +0 -0
  263. /package/dist/genexus-ide-ui/{p-6374dabb.entry.js.map → p-739058a1.entry.js.map} +0 -0
  264. /package/dist/genexus-ide-ui/{p-b2af0c95.entry.js.map → p-81b673db.entry.js.map} +0 -0
  265. /package/dist/genexus-ide-ui/{p-1c36217e.entry.js.map → p-82e107c8.entry.js.map} +0 -0
  266. /package/dist/genexus-ide-ui/{p-3468662b.entry.js.map → p-842a081e.entry.js.map} +0 -0
  267. /package/dist/genexus-ide-ui/{p-2de01408.js.map → p-8c0b4d9f.js.map} +0 -0
  268. /package/dist/genexus-ide-ui/{p-e9f77ad0.entry.js.map → p-94904819.entry.js.map} +0 -0
  269. /package/dist/genexus-ide-ui/{p-dcb1516d.entry.js.map → p-94b4993e.entry.js.map} +0 -0
  270. /package/dist/genexus-ide-ui/{p-4cd56d14.entry.js.map → p-950953d1.entry.js.map} +0 -0
  271. /package/dist/genexus-ide-ui/{p-70024ecb.entry.js.map → p-9678ac9d.entry.js.map} +0 -0
  272. /package/dist/genexus-ide-ui/{p-49f9f6bf.entry.js.map → p-98b30c5d.entry.js.map} +0 -0
  273. /package/dist/genexus-ide-ui/{p-5b1576cc.js.map → p-9ddea83b.js.map} +0 -0
  274. /package/dist/genexus-ide-ui/{p-c21300fb.entry.js.map → p-a0529222.entry.js.map} +0 -0
  275. /package/dist/genexus-ide-ui/{p-a6dd3f03.entry.js.map → p-b3d615da.entry.js.map} +0 -0
  276. /package/dist/genexus-ide-ui/{p-22908448.entry.js.map → p-ba7d1472.entry.js.map} +0 -0
  277. /package/dist/genexus-ide-ui/{p-f2f9e36e.entry.js.map → p-bb44d9f9.entry.js.map} +0 -0
  278. /package/dist/genexus-ide-ui/{p-f963b96e.entry.js.map → p-c58e0a92.entry.js.map} +0 -0
  279. /package/dist/genexus-ide-ui/{p-acaed500.entry.js.map → p-c624a8da.entry.js.map} +0 -0
  280. /package/dist/genexus-ide-ui/{p-9a604798.entry.js.map → p-c6aeddf9.entry.js.map} +0 -0
  281. /package/dist/genexus-ide-ui/{p-aa821b66.entry.js.map → p-caed0369.entry.js.map} +0 -0
  282. /package/dist/genexus-ide-ui/{p-34b5a494.entry.js.map → p-cbe2dd13.entry.js.map} +0 -0
  283. /package/dist/genexus-ide-ui/{p-71f3b66e.entry.js.map → p-d095a37c.entry.js.map} +0 -0
  284. /package/dist/genexus-ide-ui/{p-4fcde4d0.entry.js.map → p-d5d40477.entry.js.map} +0 -0
  285. /package/dist/genexus-ide-ui/{p-1105c966.entry.js.map → p-d83fc68d.entry.js.map} +0 -0
  286. /package/dist/genexus-ide-ui/{p-d7169c07.entry.js.map → p-dbcb6152.entry.js.map} +0 -0
  287. /package/dist/genexus-ide-ui/{p-57986b2e.entry.js.map → p-dd515807.entry.js.map} +0 -0
  288. /package/dist/genexus-ide-ui/{p-5a734013.entry.js.map → p-dd9136a4.entry.js.map} +0 -0
  289. /package/dist/genexus-ide-ui/{p-b238a545.entry.js.map → p-de7f0c1f.entry.js.map} +0 -0
  290. /package/dist/genexus-ide-ui/{p-822090ba.entry.js.map → p-e502c2fd.entry.js.map} +0 -0
  291. /package/dist/genexus-ide-ui/{p-52af77c2.entry.js.map → p-e7fb3ee3.entry.js.map} +0 -0
  292. /package/dist/genexus-ide-ui/{p-6e667dde.entry.js.map → p-eaa68fb2.entry.js.map} +0 -0
  293. /package/dist/genexus-ide-ui/{p-f3aa0e41.js.map → p-f549f6e1.js.map} +0 -0
  294. /package/dist/genexus-ide-ui/{p-c74d18fe.entry.js.map → p-fb314685.entry.js.map} +0 -0
  295. /package/dist/genexus-ide-ui/{p-26aff07c.entry.js.map → p-fcee5a81.entry.js.map} +0 -0
@@ -1,56 +1,167 @@
1
+ .button-close {
2
+ /* TODO:
3
+ The close button seems not to be a Mercury button from the showcase.
4
+ Ask design team to include this button style somewere.
5
+ */
6
+ position: absolute;
7
+ inset-inline-end: 24px;
8
+ inset-block-start: 24px;
9
+ padding: 19px;
10
+ border-radius: var(--control__border-radius);
11
+ }
12
+ .button-close:hover {
13
+ background-color: var(--mer-surface__elevation--02);
14
+ }
15
+ .button-close:active {
16
+ background-color: var(--mer-surface__elevation--03);
17
+ }
18
+ .button-close ch-image {
19
+ transform: scale(2.5);
20
+ }
21
+
1
22
  :host {
2
- display: grid;
3
- block-size: 100%;
4
- inline-size: 100%;
23
+ --wrapper-copacity: 0;
24
+ --wrapper-min-inline-size: 700px;
25
+ --wrapper-max-inline-size: 1040px;
26
+ --wrapper-block-size: 640px;
27
+ transition: var(--mer-timing--regular) opacity;
28
+ display: flex;
5
29
  align-items: center;
6
30
  justify-content: center;
7
- padding: var(--mer-spacing--xl);
31
+ inline-size: 100%;
32
+ block-size: 100%;
33
+ padding: 16px;
34
+ overflow: auto;
8
35
  }
9
36
 
10
- .slide {
37
+ .wrapper {
38
+ flex: 1;
11
39
  display: grid;
12
- max-inline-size: 1100px;
13
- grid-template-columns: 1fr 550px;
40
+ grid-template-columns: 1fr var(--wrapper-block-size);
41
+ block-size: var(--wrapper-block-size);
42
+ max-inline-size: var(--wrapper-max-inline-size);
14
43
  background-color: var(--mer-surface__elevation--01);
15
- border-radius: var(--mer-spacing--md);
16
- overflow: hidden;
17
- opacity: 0;
18
- transition: var(--slide-fade-duration) opacity;
19
- }
20
- .slide--visible {
21
- opacity: 1;
44
+ border-radius: var(--mer-spacing--sm);
45
+ overflow: auto;
46
+ transform: translateY(6px);
22
47
  }
23
- .slide__illustration {
24
- overflow: hidden;
25
- max-block-size: 700px;
48
+
49
+ .side-inline-start {
50
+ background-size: cover;
26
51
  }
27
- .slide__copy {
52
+
53
+ .side-inline-end {
54
+ position: relative;
28
55
  display: grid;
29
- block-size: 100%;
30
- inline-size: 100%;
31
- padding: var(--mer-spacing--3xl);
56
+ grid-template-rows: max-content 1fr max-content;
57
+ padding: 64px 80px;
58
+ transition: 1000ms grid-template-rows;
59
+ overflow: auto;
32
60
  }
33
- .slide__copy-container {
34
- display: grid;
35
- gap: var(--mer-spacing--md);
36
- max-inline-size: 480px;
37
- place-self: center;
61
+
62
+ .close-button {
63
+ position: absolute;
64
+ inset-inline-end: 0;
65
+ inset-block-start: 0;
38
66
  }
39
- .slide__copy-header {
67
+
68
+ .header {
40
69
  display: grid;
41
70
  gap: var(--mer-spacing--md);
71
+ margin-block-end: 92px;
42
72
  }
43
- .slide__copy-title {
44
- font-size: var(--mer-font__size--xl);
73
+
74
+ .header__logo__close-button {
75
+ display: flex;
76
+ justify-content: space-between;
77
+ }
78
+
79
+ .title {
45
80
  color: var(--mer-text__on-surface);
46
- letter-spacing: 0.02em;
81
+ font-size: var(--mer-font__size--xl);
47
82
  font-weight: var(--mer-font__weight--semi-bold);
83
+ letter-spacing: 0.02em;
48
84
  }
49
- .slide__copy-description {
50
- display: grid;
85
+
86
+ .header__description {
51
87
  color: var(--mer-text__complementary);
52
- gap: var(--mer-spacing--md);
53
- font-size: var(--mer-font__size--sm);
54
- font-weight: var(--mer-font__weight--light);
55
- line-height: var(--mer-line-height--spaced);
88
+ line-height: 1.45 !important;
89
+ }
90
+
91
+ .main {
92
+ display: flex;
93
+ flex-direction: column;
94
+ gap: var(--mer-spacing--sm);
95
+ overflow: auto;
96
+ }
97
+
98
+ .log__container {
99
+ --logVisibleLines: 6;
100
+ --logFontSize: 12px;
101
+ --logLineHeight: 1.2;
102
+ --logGap: 4px;
103
+ --logContainerBlockSize: calc(
104
+ var(--logFontSize) * var(--logLineHeight) * var(--logVisibleLines) +
105
+ calc(var(--logGap) * (var(--logVisibleLines) - 1))
106
+ );
107
+ block-size: var(--logContainerBlockSize);
108
+ font-family: monospace;
109
+ color: var(--mer-text__complementary);
110
+ display: flex;
111
+ flex-direction: column-reverse;
112
+ gap: var(--logGap);
113
+ overflow: hidden;
114
+ }
115
+ .log__container:hover {
116
+ overflow: auto;
117
+ }
118
+
119
+ .log__message {
120
+ opacity: 0;
121
+ transition: var(--mer-timing--regular) opacity;
122
+ animation: fadeInLogMessage 0.45s ease-out forwards;
123
+ }
124
+ .log__message--error {
125
+ color: var(--mer-text__error);
126
+ }
127
+
128
+ .footer {
129
+ display: grid;
130
+ grid-auto-rows: max-content;
131
+ gap: var(--mer-spacing--sm);
132
+ margin-block-start: var(--mer-spacing--lg);
133
+ }
134
+
135
+ .error-message {
136
+ font-family: monospace;
137
+ font-size: 13px;
138
+ line-height: 1.5;
139
+ color: var(--mer-text__error);
140
+ margin-block-start: auto;
141
+ display: -webkit-box;
142
+ -webkit-line-clamp: 2;
143
+ overflow: hidden;
144
+ }
145
+
146
+ .status--processing {
147
+ display: flex;
148
+ flex-direction: row;
149
+ align-items: baseline;
150
+ gap: 4px;
151
+ }
152
+
153
+ @keyframes fadeInLogMessage {
154
+ from {
155
+ opacity: 0;
156
+ }
157
+ to {
158
+ opacity: 1;
159
+ }
160
+ }
161
+ .download-docker-button {
162
+ margin-inline-end: 12px;
163
+ }
164
+
165
+ .button-tertiary {
166
+ padding-inline-start: 0 !important;
56
167
  }
@@ -17,12 +17,27 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
17
17
  var _GxIdeUiSplash_componentLocale;
18
18
  // Stencil
19
19
  import { Host, h, getAssetPath } from "@stencil/core";
20
- // Custom Imports
20
+ import { getIconPath } from "@genexus/mercury";
21
21
  import { Locale } from "../../common/locale";
22
- const COPYRIGHTS_ILLUSTRATION = getAssetPath(`./gx-ide-assets/welcome-page/images/copyrights-illustration.png`);
23
- const ICON_NEXT = getAssetPath(`./gx-ide-assets/welcome-page/images/icon-next.svg`);
24
- const SLIDE_FADE_DURATION = 200;
25
- const CSS_BUNDLES = ["resets/box-sizing", "utils/typography"];
22
+ import { ANIMATION_DOTS } from "../../common/common";
23
+ const COPYRIGHTS_ILLUSTRATION = getAssetPath(`./gx-ide-assets/splash/images/copyrights-illustration.svg`);
24
+ const LOGO_NEXT = getAssetPath(`./gx-ide-assets/welcome-page/images/icon-next.svg`);
25
+ const CSS_BUNDLES = [
26
+ "resets/box-sizing",
27
+ "utils/typography",
28
+ "components/button",
29
+ "chameleon/scrollbar"
30
+ ];
31
+ const OPEN_LOG_ICON = getIconPath({
32
+ category: "system",
33
+ name: "launch",
34
+ colorType: "primary"
35
+ });
36
+ const CLOSE_ICON = getIconPath({
37
+ category: "system",
38
+ name: "close",
39
+ colorType: "on-elevation"
40
+ });
26
41
  export class GxIdeUiSplash {
27
42
  constructor() {
28
43
  /**
@@ -30,31 +45,42 @@ export class GxIdeUiSplash {
30
45
  */
31
46
  // eslint-disable-next-line @stencil-community/own-props-must-be-private
32
47
  _GxIdeUiSplash_componentLocale.set(this, void 0);
33
- this.splashVisible = false;
34
- this.version = undefined;
35
- this.removeSplash = false;
36
- }
37
- removeSplashChanged(removeSplash) {
38
- if (removeSplash) {
39
- this.splashVisible = false;
40
- setTimeout(() => {
41
- // wait until the slide disappears, then remove.
42
- this.el.remove();
43
- }, SLIDE_FADE_DURATION);
44
- }
48
+ this.ariaBusy = true;
49
+ this.downloadDockerCallback = undefined;
50
+ this.quitCallback = undefined;
51
+ this.messages = [];
52
+ this.openLogCallback = undefined;
53
+ this.showQuitButton = false;
54
+ this.showOpenLogLink = false;
55
+ this.showDockerMissingError = false;
45
56
  }
46
57
  async componentWillLoad() {
47
58
  __classPrivateFieldSet(this, _GxIdeUiSplash_componentLocale, await Locale.getComponentStrings(this.el), "f");
48
59
  }
49
- componentDidLoad() {
50
- this.splashVisible = true;
51
- }
52
60
  render() {
53
- const currentYear = new Date().getFullYear();
54
- return (h(Host, null, h("ch-theme", { model: CSS_BUNDLES }), h("section", { class: { "slide": true, "slide--visible": this.splashVisible }, style: { "--slide-fade-duration": `${SLIDE_FADE_DURATION}ms` } }, h("div", { class: "slide__illustration", role: "img", "aria-label": __classPrivateFieldGet(this, _GxIdeUiSplash_componentLocale, "f").copyright.illustrationAriaLabel }, h("img", {
55
- // base image (acts like a background)
56
- src: COPYRIGHTS_ILLUSTRATION, class: "slide__illustration", alt: __classPrivateFieldGet(this, _GxIdeUiSplash_componentLocale, "f").copyright.illustrationFigureAriaLabel
57
- })), h("section", { class: "slide__copy" }, h("div", { class: "slide__copy-container" }, h("header", { class: "slide__copy-header" }, h("img", { src: ICON_NEXT, alt: __classPrivateFieldGet(this, _GxIdeUiSplash_componentLocale, "f").copyright.illustrationAlternativeText }), h("h2", { class: "slide__copy-title" }, __classPrivateFieldGet(this, _GxIdeUiSplash_componentLocale, "f").copyright.title)), h("div", { class: "slide__copy-description" }, h("p", null, h("span", { class: "version" }, __classPrivateFieldGet(this, _GxIdeUiSplash_componentLocale, "f").copyright.version, h("span", null, this.version)), h("span", null, __classPrivateFieldGet(this, _GxIdeUiSplash_componentLocale, "f").copyright.c1988), h("span", null, " \u2014 ", currentYear, " "), h("span", null, __classPrivateFieldGet(this, _GxIdeUiSplash_componentLocale, "f").copyright.allRightsReserved)), h("p", null, __classPrivateFieldGet(this, _GxIdeUiSplash_componentLocale, "f").copyright.description)))))));
61
+ var _a, _b;
62
+ const renderOpenLogLink = this.showOpenLogLink && this.openLogCallback;
63
+ const renderInstallationErrorMessage = this.showQuitButton && this.quitCallback && this.messages.length > 0;
64
+ const renderInitializingMessage = !(this.showQuitButton && this.quitCallback) && ((_a = this.messages) === null || _a === void 0 ? void 0 : _a.length) > 0;
65
+ const renderErrorMessage = this.showDockerMissingError || !renderInitializingMessage;
66
+ let installationErrorMessage = __classPrivateFieldGet(this, _GxIdeUiSplash_componentLocale, "f").warnings.installationFailed;
67
+ if (renderOpenLogLink) {
68
+ installationErrorMessage = `${installationErrorMessage} ${__classPrivateFieldGet(this, _GxIdeUiSplash_componentLocale, "f").warnings.checkTheLog}`;
69
+ }
70
+ return (h(Host, null, h("ch-theme", { model: CSS_BUNDLES }), h("div", { class: {
71
+ scrollable: true,
72
+ wrapper: true
73
+ } }, h("div", { class: "side-inline-start", style: { backgroundImage: `url(${COPYRIGHTS_ILLUSTRATION})` }, role: "img" }), h("section", { class: "side-inline-end scrollable" }, this.quitCallback && this.showQuitButton && (h("button", { class: "button-close", "aria-label": "close presentation", onClick: this.quitCallback }, h("ch-image", { class: "icon-md", src: CLOSE_ICON }))), h("header", { class: "header" }, h("img", { src: LOGO_NEXT, alt: __classPrivateFieldGet(this, _GxIdeUiSplash_componentLocale, "f").illustrationAlternativeText }), h("h2", { class: "title" }, __classPrivateFieldGet(this, _GxIdeUiSplash_componentLocale, "f").title), h("p", { class: "body-italic-m header__description" }, __classPrivateFieldGet(this, _GxIdeUiSplash_componentLocale, "f").allRightsReserved), h("p", { class: "body-italic-m header__description" }, __classPrivateFieldGet(this, _GxIdeUiSplash_componentLocale, "f").copyright)), h("main", { class: "main" }, renderInitializingMessage && (h("p", { class: {
74
+ "body-regular-m": true,
75
+ "status--processing": true
76
+ } }, __classPrivateFieldGet(this, _GxIdeUiSplash_componentLocale, "f").initializingServices, ANIMATION_DOTS("tiny", "on-surface"))), h("code", { class: "log__container scrollable", role: "status", "aria-live": "polite", "aria-busy": this.ariaBusy }, (_b = this.messages) === null || _b === void 0 ? void 0 : _b.reverse().map((message, i) => {
77
+ return (h("p", { class: {
78
+ "tiny-regular-l": true,
79
+ "log__message": true,
80
+ "log__message--error": message.type === "error"
81
+ }, key: this.messages.length - i }, message.text));
82
+ })), renderErrorMessage && (h("p", { class: "error-message status--error" }, renderInstallationErrorMessage && (h("span", null, installationErrorMessage)), renderInstallationErrorMessage &&
83
+ this.showDockerMissingError && h("span", null, " - "), this.showDockerMissingError && (h("span", null, __classPrivateFieldGet(this, _GxIdeUiSplash_componentLocale, "f").warnings.dockerMissing))))), h("footer", { class: "footer" }, h("div", { class: "buttons-spacer" }, this.showDockerMissingError && (h("button", { key: "download-docker", class: "button-secondary button-icon-and-text download-docker-button", onClick: this.downloadDockerCallback }, __classPrivateFieldGet(this, _GxIdeUiSplash_componentLocale, "f").downloadDocker)), renderOpenLogLink && (h("button", { key: "open-log", class: "button-tertiary button-icon-and-text", onClick: this.openLogCallback }, h("ch-image", { class: "icon-md", src: OPEN_LOG_ICON }), __classPrivateFieldGet(this, _GxIdeUiSplash_componentLocale, "f").openLog))))))));
58
84
  }
59
85
  static get is() { return "gx-ide-splash"; }
60
86
  static get encapsulation() { return "shadow"; }
@@ -71,24 +97,92 @@ export class GxIdeUiSplash {
71
97
  static get assetsDirs() { return ["gx-ide-assets/splash"]; }
72
98
  static get properties() {
73
99
  return {
74
- "version": {
75
- "type": "string",
100
+ "downloadDockerCallback": {
101
+ "type": "unknown",
102
+ "mutable": false,
103
+ "complexType": {
104
+ "original": "() => void",
105
+ "resolved": "() => void",
106
+ "references": {}
107
+ },
108
+ "required": false,
109
+ "optional": false,
110
+ "docs": {
111
+ "tags": [],
112
+ "text": "Callback invoked when the user clicks the 'Download Docker' button."
113
+ }
114
+ },
115
+ "quitCallback": {
116
+ "type": "unknown",
117
+ "mutable": false,
118
+ "complexType": {
119
+ "original": "() => void",
120
+ "resolved": "() => void",
121
+ "references": {}
122
+ },
123
+ "required": false,
124
+ "optional": false,
125
+ "docs": {
126
+ "tags": [],
127
+ "text": "Callback invoked when the user clicks the quit button."
128
+ }
129
+ },
130
+ "messages": {
131
+ "type": "unknown",
132
+ "mutable": false,
133
+ "complexType": {
134
+ "original": "MessageType[]",
135
+ "resolved": "MessageType[]",
136
+ "references": {
137
+ "MessageType": {
138
+ "location": "local",
139
+ "path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/splash/splash.tsx",
140
+ "id": "src/components/splash/splash.tsx::MessageType"
141
+ }
142
+ }
143
+ },
144
+ "required": false,
145
+ "optional": false,
146
+ "docs": {
147
+ "tags": [],
148
+ "text": "Array of messages to display in the text box.\nThis property updates whenever a message is added,\nand the scroll should position itself at the bottom to keep the last message visible."
149
+ },
150
+ "defaultValue": "[]"
151
+ },
152
+ "openLogCallback": {
153
+ "type": "unknown",
76
154
  "mutable": false,
77
155
  "complexType": {
78
- "original": "string",
79
- "resolved": "string",
156
+ "original": "() => void",
157
+ "resolved": "() => void",
80
158
  "references": {}
81
159
  },
82
- "required": true,
160
+ "required": false,
161
+ "optional": false,
162
+ "docs": {
163
+ "tags": [],
164
+ "text": "Callback invoked when the user clicks the 'Open log' link."
165
+ }
166
+ },
167
+ "showQuitButton": {
168
+ "type": "boolean",
169
+ "mutable": false,
170
+ "complexType": {
171
+ "original": "boolean",
172
+ "resolved": "boolean",
173
+ "references": {}
174
+ },
175
+ "required": false,
83
176
  "optional": false,
84
177
  "docs": {
85
178
  "tags": [],
86
- "text": "The copyright version. ie.: \"Salto 103300\""
179
+ "text": "Set to `true` to display the quit button."
87
180
  },
88
- "attribute": "version",
89
- "reflect": false
181
+ "attribute": "show-quit-button",
182
+ "reflect": false,
183
+ "defaultValue": "false"
90
184
  },
91
- "removeSplash": {
185
+ "showOpenLogLink": {
92
186
  "type": "boolean",
93
187
  "mutable": false,
94
188
  "complexType": {
@@ -100,9 +194,27 @@ export class GxIdeUiSplash {
100
194
  "optional": false,
101
195
  "docs": {
102
196
  "tags": [],
103
- "text": "If true, the splash with first disappear with a fade-out subtle effect, and then it will automatically be removed from the DOM."
197
+ "text": "Set to `true` to display the 'Open log' link."
104
198
  },
105
- "attribute": "remove-splash",
199
+ "attribute": "show-open-log-link",
200
+ "reflect": false,
201
+ "defaultValue": "false"
202
+ },
203
+ "showDockerMissingError": {
204
+ "type": "boolean",
205
+ "mutable": false,
206
+ "complexType": {
207
+ "original": "boolean",
208
+ "resolved": "boolean",
209
+ "references": {}
210
+ },
211
+ "required": false,
212
+ "optional": false,
213
+ "docs": {
214
+ "tags": [],
215
+ "text": "Set to `true` to display \"Docker is not installed\" error message and to display \"Download Docker\" button."
216
+ },
217
+ "attribute": "show-docker-missing-error",
106
218
  "reflect": false,
107
219
  "defaultValue": "false"
108
220
  }
@@ -110,16 +222,10 @@ export class GxIdeUiSplash {
110
222
  }
111
223
  static get states() {
112
224
  return {
113
- "splashVisible": {}
225
+ "ariaBusy": {}
114
226
  };
115
227
  }
116
228
  static get elementRef() { return "el"; }
117
- static get watchers() {
118
- return [{
119
- "propName": "removeSplash",
120
- "methodName": "removeSplashChanged"
121
- }];
122
- }
123
229
  }
124
230
  _GxIdeUiSplash_componentLocale = new WeakMap();
125
231
  //# sourceMappingURL=splash.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"splash.js","sourceRoot":"","sources":["../../../src/components/splash/splash.tsx"],"names":[],"mappings":"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","sourcesContent":["// Stencil\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n Watch,\n getAssetPath\n} from \"@stencil/core\";\n// Other Libraries\nimport { MercuryBundles } from \"@genexus/mercury\";\n// Custom Imports\nimport { Locale } from \"../../common/locale\";\n\nconst COPYRIGHTS_ILLUSTRATION = getAssetPath(\n `./gx-ide-assets/welcome-page/images/copyrights-illustration.png`\n);\nconst ICON_NEXT = getAssetPath(\n `./gx-ide-assets/welcome-page/images/icon-next.svg`\n);\nconst SLIDE_FADE_DURATION = 200;\nconst CSS_BUNDLES: MercuryBundles = [\"resets/box-sizing\", \"utils/typography\"];\n\n@Component({\n tag: \"gx-ide-splash\",\n styleUrl: \"splash.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/splash\"]\n})\nexport class GxIdeUiSplash {\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n\n @Element() el: HTMLGxIdeSplashElement;\n\n /**\n * When true the slider will be visible. Used to display and hide the slide with a smooth transition.\n */\n @State() splashVisible: boolean = false;\n\n /**\n * The copyright version. ie.: \"Salto 103300\"\n */\n @Prop() readonly version!: string;\n\n /**\n * If true, the splash with first disappear with a fade-out subtle effect, and then it will automatically be removed from the DOM.\n */\n @Prop() readonly removeSplash: boolean = false;\n @Watch(\"removeSplash\")\n removeSplashChanged(removeSplash: boolean) {\n if (removeSplash) {\n this.splashVisible = false;\n setTimeout(() => {\n // wait until the slide disappears, then remove.\n this.el.remove();\n }, SLIDE_FADE_DURATION);\n }\n }\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidLoad() {\n this.splashVisible = true;\n }\n\n render() {\n const currentYear = new Date().getFullYear();\n\n return (\n <Host>\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section\n class={{ \"slide\": true, \"slide--visible\": this.splashVisible }}\n style={{ \"--slide-fade-duration\": `${SLIDE_FADE_DURATION}ms` }}\n >\n <div\n class=\"slide__illustration\"\n role=\"img\"\n aria-label={this.#componentLocale.copyright.illustrationAriaLabel}\n >\n <img\n // base image (acts like a background)\n src={COPYRIGHTS_ILLUSTRATION}\n class=\"slide__illustration\"\n alt={this.#componentLocale.copyright.illustrationFigureAriaLabel}\n />\n </div>\n <section class=\"slide__copy\">\n <div class=\"slide__copy-container\">\n <header class=\"slide__copy-header\">\n <img\n src={ICON_NEXT}\n alt={\n this.#componentLocale.copyright.illustrationAlternativeText\n }\n />\n <h2 class=\"slide__copy-title\">\n {this.#componentLocale.copyright.title}\n </h2>\n </header>\n <div class=\"slide__copy-description\">\n <p>\n <span class=\"version\">\n {this.#componentLocale.copyright.version}\n <span>{this.version}</span>\n </span>\n <span>{this.#componentLocale.copyright.c1988}</span>\n <span> — {currentYear} </span>\n <span>\n {this.#componentLocale.copyright.allRightsReserved}\n </span>\n </p>\n <p>{this.#componentLocale.copyright.description}</p>\n </div>\n </div>\n </section>\n </section>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"splash.js","sourceRoot":"","sources":["../../../src/components/splash/splash.tsx"],"names":[],"mappings":"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","sourcesContent":["// Stencil\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n getAssetPath\n} from \"@stencil/core\";\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\n\nimport { Locale } from \"../../common/locale\";\nimport { ANIMATION_DOTS } from \"../../common/common\";\n\nconst COPYRIGHTS_ILLUSTRATION = getAssetPath(\n `./gx-ide-assets/splash/images/copyrights-illustration.svg`\n);\nconst LOGO_NEXT = getAssetPath(\n `./gx-ide-assets/welcome-page/images/icon-next.svg`\n);\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/typography\",\n \"components/button\",\n \"chameleon/scrollbar\"\n];\n\nconst OPEN_LOG_ICON = getIconPath({\n category: \"system\",\n name: \"launch\",\n colorType: \"primary\"\n});\nconst CLOSE_ICON = getIconPath({\n category: \"system\",\n name: \"close\",\n colorType: \"on-elevation\"\n});\n\n@Component({\n tag: \"gx-ide-splash\",\n styleUrl: \"splash.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/splash\"]\n})\nexport class GxIdeUiSplash {\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n\n @Element() el: HTMLGxIdeSplashElement;\n\n /**\n * Set this to true if installation is in process\n */\n @State() ariaBusy: boolean = true;\n\n /**\n * Callback invoked when the user clicks the 'Download Docker' button.\n */\n @Prop() readonly downloadDockerCallback: () => void;\n\n /**\n * Callback invoked when the user clicks the quit button.\n */\n @Prop() readonly quitCallback: () => void;\n\n /**\n * Array of messages to display in the text box.\n * This property updates whenever a message is added,\n * and the scroll should position itself at the bottom to keep the last message visible.\n */\n @Prop() readonly messages: MessageType[] = [];\n\n /**\n * Callback invoked when the user clicks the 'Open log' link.\n */\n @Prop() readonly openLogCallback: () => void;\n\n /**\n * Set to `true` to display the quit button.\n */\n @Prop() readonly showQuitButton: boolean = false;\n\n /**\n * Set to `true` to display the 'Open log' link.\n */\n @Prop() readonly showOpenLogLink: boolean = false;\n\n /**\n * Set to `true` to display \"Docker is not installed\" error message and to display \"Download Docker\" button.\n */\n @Prop() readonly showDockerMissingError: boolean = false;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n render() {\n const renderOpenLogLink = this.showOpenLogLink && this.openLogCallback;\n const renderInstallationErrorMessage =\n this.showQuitButton && this.quitCallback && this.messages.length > 0;\n const renderInitializingMessage =\n !(this.showQuitButton && this.quitCallback) && this.messages?.length > 0;\n const renderErrorMessage =\n this.showDockerMissingError || !renderInitializingMessage;\n\n let installationErrorMessage =\n this.#componentLocale.warnings.installationFailed;\n if (renderOpenLogLink) {\n installationErrorMessage = `${installationErrorMessage} ${\n this.#componentLocale.warnings.checkTheLog\n }`;\n }\n\n return (\n <Host>\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div\n class={{\n scrollable: true,\n wrapper: true\n }}\n >\n <div\n class=\"side-inline-start\"\n style={{ backgroundImage: `url(${COPYRIGHTS_ILLUSTRATION})` }}\n role=\"img\"\n ></div>\n\n <section class=\"side-inline-end scrollable\">\n {this.quitCallback && this.showQuitButton && (\n <button\n class=\"button-close\"\n aria-label=\"close presentation\"\n onClick={this.quitCallback}\n >\n <ch-image class=\"icon-md\" src={CLOSE_ICON}></ch-image>\n </button>\n )}\n\n <header class=\"header\">\n <img\n src={LOGO_NEXT}\n alt={this.#componentLocale.illustrationAlternativeText}\n />\n <h2 class=\"title\">{this.#componentLocale.title}</h2>\n <p class=\"body-italic-m header__description\">\n {this.#componentLocale.allRightsReserved}\n </p>\n <p class=\"body-italic-m header__description\">\n {this.#componentLocale.copyright}\n </p>\n </header>\n\n <main class=\"main\">\n {renderInitializingMessage && (\n <p\n class={{\n \"body-regular-m\": true,\n \"status--processing\": true\n }}\n >\n {this.#componentLocale.initializingServices}\n {ANIMATION_DOTS(\"tiny\", \"on-surface\")}\n </p>\n )}\n\n <code\n class=\"log__container scrollable\"\n role=\"status\"\n aria-live=\"polite\"\n aria-busy={this.ariaBusy}\n >\n {this.messages?.reverse().map((message, i) => {\n return (\n <p\n class={{\n \"tiny-regular-l\": true,\n \"log__message\": true,\n \"log__message--error\": message.type === \"error\"\n }}\n key={this.messages.length - i}\n >\n {message.text}\n </p>\n );\n })}\n </code>\n\n {renderErrorMessage && (\n <p class=\"error-message status--error\">\n {renderInstallationErrorMessage && (\n <span>{installationErrorMessage}</span>\n )}\n\n {renderInstallationErrorMessage &&\n this.showDockerMissingError && <span> - </span>}\n\n {this.showDockerMissingError && (\n <span>{this.#componentLocale.warnings.dockerMissing}</span>\n )}\n </p>\n )}\n </main>\n\n <footer class=\"footer\">\n <div class=\"buttons-spacer\">\n {this.showDockerMissingError && (\n <button\n key=\"download-docker\"\n class=\"button-secondary button-icon-and-text download-docker-button\"\n onClick={this.downloadDockerCallback}\n >\n {this.#componentLocale.downloadDocker}\n </button>\n )}\n\n {renderOpenLogLink && (\n <button\n key=\"open-log\"\n class=\"button-tertiary button-icon-and-text\"\n onClick={this.openLogCallback}\n >\n <ch-image class=\"icon-md\" src={OPEN_LOG_ICON}></ch-image>\n {this.#componentLocale.openLog}\n </button>\n )}\n </div>\n </footer>\n </section>\n </div>\n </Host>\n );\n }\n}\n\nexport type MessageType = {\n type: \"info\" | \"error\";\n text: string;\n};\n"]}
@@ -83,6 +83,7 @@ const testLocale = (componentNameWithPrefix) => {
83
83
  };
84
84
  // TypeScript does not have a built-in type to exhaust a list with union types
85
85
  const allGeneXusIdeUIComponents = {
86
+ "gx-ide-about": 0,
86
87
  "gx-ide-ai-assistant": 0,
87
88
  "gx-ide-ai-message": 0,
88
89
  "gx-ide-bpm-app-declaration": 0,
@@ -1 +1 @@
1
- {"version":3,"file":"locale.e2e.js","sourceRoot":"","sources":["../../src/testing/locale.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EPage, newE2EPage } from \"@stencil/core/testing\";\nimport { GeneXusIdeUIControlsTagName } from \"../common/types\";\nimport { haveSameStructure } from \"./same-structure.e2e\";\n\nconst COMPONENT_PREFIX = \"gx-ide-\";\nconst languages: { name: string; attr: string }[] = [\n { name: \"chinese\", attr: \"zh\" },\n { name: \"english\", attr: \"en\" },\n { name: \"japanese\", attr: \"ja\" }\n];\n\nconst testLocale = (componentNameWithPrefix: GeneXusIdeUIControlsTagName) => {\n describe(`[locale][${componentNameWithPrefix}]`, () => {\n let page: E2EPage;\n const componentName = componentNameWithPrefix.replace(COMPONENT_PREFIX, \"\");\n\n // This implementation is a WA since we can't evaluate JS classes in the page.\n // TODO: Implement the locale utility as a function, which can be evaluated\n // in the page\n const getTranslations = () =>\n page.evaluate(component => {\n const ASSETS_FOLDER = \"gx-ide-assets/\";\n const DEFAULT_LANGUAGE = \"en\";\n const LANGS_FOLDER = \"langs/\";\n const LANG_PREFIX = \".lang.\";\n const LANG_EXTENSION = \".json\";\n const lang =\n document\n .getElementsByTagName(\"html\")[0]\n .getAttribute(\"lang\")\n ?.valueOf() ?? DEFAULT_LANGUAGE;\n const folder = `${component}/`;\n\n const path =\n `/build/${ASSETS_FOLDER}${folder}${LANGS_FOLDER}${component}${LANG_PREFIX}${lang}${LANG_EXTENSION}` as const;\n\n return new Promise(resolve => {\n fetch(path)\n .then(async langFile => {\n if (langFile.ok) {\n const fileObject = await langFile.json();\n resolve(fileObject);\n } else {\n resolve(undefined);\n }\n })\n .catch(() => resolve(undefined));\n });\n }, componentName);\n\n beforeEach(async () => {\n page = await newE2EPage({\n failOnConsoleError: true,\n html: \"\" // Necessary\n });\n });\n\n it(\"should work without specifying the language (lang attr) in the browser\", async () => {\n const languageFile: any | undefined = await getTranslations();\n expect(languageFile).toBeTruthy();\n });\n\n it(\"should default to english language when there is no language (lang attr) in the browser\", async () => {\n const languageFile: any | undefined = await getTranslations();\n expect(languageFile).toBeTruthy();\n\n await page.evaluate(() =>\n document.documentElement.setAttribute(\"lang\", \"en\")\n );\n\n const languageEnglishFile: any | undefined = await getTranslations();\n expect(languageEnglishFile).toBeTruthy();\n expect(languageFile).toEqual(languageEnglishFile);\n });\n\n languages.forEach(language => {\n it(`should work with ${language.name} language`, async () => {\n await page.evaluate(\n (attr: string) => document.documentElement.setAttribute(\"lang\", attr),\n language.attr\n );\n const languageFile: any | undefined = await getTranslations();\n expect(languageFile).toBeTruthy();\n });\n });\n\n for (let index = 0; index < languages.length - 1; index++) {\n const language1 = languages[index];\n const language2 = languages[index + 1];\n\n // TODO: Complete all translations. At this moment, Japanese and Chinese\n // translations have missing literals\n it(`should translate the same literals (${language1.name} and ${language2.name})`, async () => {\n await page.evaluate(\n (attr: string) => document.documentElement.setAttribute(\"lang\", attr),\n language1.attr\n );\n const language1File: any | undefined = await getTranslations();\n\n await page.evaluate(\n (attr: string) => document.documentElement.setAttribute(\"lang\", attr),\n language2.attr\n );\n const language2File: any | undefined = await getTranslations();\n\n expect(language1File).toBeTruthy();\n expect(language2File).toBeTruthy();\n expect(haveSameStructure(language1File, language2File)).toBe(true);\n });\n }\n });\n};\n\n// TypeScript does not have a built-in type to exhaust a list with union types\nconst allGeneXusIdeUIComponents: { [key in GeneXusIdeUIControlsTagName]: 0 } = {\n \"gx-ide-ai-assistant\": 0,\n \"gx-ide-ai-message\": 0,\n \"gx-ide-bpm-app-declaration\": 0,\n \"gx-ide-bpm-assign-roles\": 0,\n \"gx-ide-bpm-import-files\": 0,\n \"gx-ide-bpm-import-gxpm\": 0,\n \"gx-ide-bpm-objects-selector\": 0,\n \"gx-ide-bpm-timer-duration\": 0,\n \"gx-ide-card\": 0,\n \"gx-ide-chat-container\": 0,\n \"gx-ide-sc-chat-container\": 0,\n \"gx-ide-connect-gx-server\": 0,\n \"gx-ide-container\": 0,\n \"gx-ide-create-kb-from-server\": 0,\n \"gx-ide-current-user-info\": 0,\n \"gx-ide-dashboard-home\": 0,\n \"gx-ide-data-selector\": 0,\n \"gx-ide-data-type-selector\": 0,\n \"gx-ide-design-import\": 0,\n \"gx-ide-directory-selector\": 0,\n \"gx-ide-edit-module-server\": 0,\n \"gx-ide-empty-state\": 0,\n \"gx-ide-entity-selector\": 0,\n \"gx-ide-gam-installation-settings\": 0,\n \"gx-ide-kb-manager-export\": 0,\n \"gx-ide-kb-manager-import\": 0,\n \"gx-ide-list-selector\": 0,\n \"gx-ide-list-selector-item\": 0,\n \"gx-ide-loader\": 0,\n \"gx-ide-manage-module-references\": 0,\n \"gx-ide-manage-module-references-v2\": 0,\n \"gx-ide-new-environment\": 0,\n \"gx-ide-new-kb\": 0,\n \"gx-ide-new-object\": 0,\n \"gx-ide-object-selector\": 0,\n \"gx-ide-references\": 0,\n \"gx-ide-select-kb-items\": 0,\n \"gx-ide-select-user-team\": 0,\n \"gx-ide-sign-in\": 0,\n \"gx-ide-sign-in-team\": 0,\n \"gx-ide-share-kb\": 0,\n \"gx-ide-start-page\": 0,\n \"gx-ide-status-buttons\": 0,\n \"gx-ide-switch-panel\": 0,\n \"gx-ide-switcher\": 0,\n \"gx-ide-team-dev-commit\": 0,\n \"gx-ide-team-dev-select-recent-comment\": 0,\n \"gx-ide-team-dev-update\": 0,\n \"gx-ide-team-dev-update-partial-selection\": 0,\n \"gx-ide-team-dev-update-to-revision\": 0,\n \"gx-ide-template\": 0,\n \"gx-ide-test\": 0,\n \"gx-ide-title\": 0,\n \"gx-ide-top-bar\": 0,\n \"gx-ide-wf-settings\": 0,\n \"gx-ide-ww-images\": 0,\n \"gx-ide-ww-attributes\": 0,\n \"gx-ide-navigation-report\": 0,\n \"gx-ide-splash\": 0,\n \"gx-ide-welcome-page\": 0,\n \"gx-ide-bpm-export-xpdl\": 0\n};\n\nconst componentsWithoutTranslations = new Set<GeneXusIdeUIControlsTagName>([\n \"gx-ide-ai-message\",\n \"gx-ide-chat-container\",\n \"gx-ide-container\",\n \"gx-ide-sc-chat-container\",\n \"gx-ide-directory-selector\",\n \"gx-ide-empty-state\",\n \"gx-ide-list-selector\",\n \"gx-ide-list-selector-item\",\n \"gx-ide-loader\",\n \"gx-ide-switch-panel\",\n \"gx-ide-switcher\",\n \"gx-ide-test\",\n \"gx-ide-title\",\n \"gx-ide-top-bar\"\n]);\n\nconst componentsWithTranslations = Object.keys(\n allGeneXusIdeUIComponents\n).filter(\n component =>\n !componentsWithoutTranslations.has(component as GeneXusIdeUIControlsTagName)\n);\n\ncomponentsWithTranslations.forEach(testLocale);\n"]}
1
+ {"version":3,"file":"locale.e2e.js","sourceRoot":"","sources":["../../src/testing/locale.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EPage, newE2EPage } from \"@stencil/core/testing\";\nimport { GeneXusIdeUIControlsTagName } from \"../common/types\";\nimport { haveSameStructure } from \"./same-structure.e2e\";\n\nconst COMPONENT_PREFIX = \"gx-ide-\";\nconst languages: { name: string; attr: string }[] = [\n { name: \"chinese\", attr: \"zh\" },\n { name: \"english\", attr: \"en\" },\n { name: \"japanese\", attr: \"ja\" }\n];\n\nconst testLocale = (componentNameWithPrefix: GeneXusIdeUIControlsTagName) => {\n describe(`[locale][${componentNameWithPrefix}]`, () => {\n let page: E2EPage;\n const componentName = componentNameWithPrefix.replace(COMPONENT_PREFIX, \"\");\n\n // This implementation is a WA since we can't evaluate JS classes in the page.\n // TODO: Implement the locale utility as a function, which can be evaluated\n // in the page\n const getTranslations = () =>\n page.evaluate(component => {\n const ASSETS_FOLDER = \"gx-ide-assets/\";\n const DEFAULT_LANGUAGE = \"en\";\n const LANGS_FOLDER = \"langs/\";\n const LANG_PREFIX = \".lang.\";\n const LANG_EXTENSION = \".json\";\n const lang =\n document\n .getElementsByTagName(\"html\")[0]\n .getAttribute(\"lang\")\n ?.valueOf() ?? DEFAULT_LANGUAGE;\n const folder = `${component}/`;\n\n const path =\n `/build/${ASSETS_FOLDER}${folder}${LANGS_FOLDER}${component}${LANG_PREFIX}${lang}${LANG_EXTENSION}` as const;\n\n return new Promise(resolve => {\n fetch(path)\n .then(async langFile => {\n if (langFile.ok) {\n const fileObject = await langFile.json();\n resolve(fileObject);\n } else {\n resolve(undefined);\n }\n })\n .catch(() => resolve(undefined));\n });\n }, componentName);\n\n beforeEach(async () => {\n page = await newE2EPage({\n failOnConsoleError: true,\n html: \"\" // Necessary\n });\n });\n\n it(\"should work without specifying the language (lang attr) in the browser\", async () => {\n const languageFile: any | undefined = await getTranslations();\n expect(languageFile).toBeTruthy();\n });\n\n it(\"should default to english language when there is no language (lang attr) in the browser\", async () => {\n const languageFile: any | undefined = await getTranslations();\n expect(languageFile).toBeTruthy();\n\n await page.evaluate(() =>\n document.documentElement.setAttribute(\"lang\", \"en\")\n );\n\n const languageEnglishFile: any | undefined = await getTranslations();\n expect(languageEnglishFile).toBeTruthy();\n expect(languageFile).toEqual(languageEnglishFile);\n });\n\n languages.forEach(language => {\n it(`should work with ${language.name} language`, async () => {\n await page.evaluate(\n (attr: string) => document.documentElement.setAttribute(\"lang\", attr),\n language.attr\n );\n const languageFile: any | undefined = await getTranslations();\n expect(languageFile).toBeTruthy();\n });\n });\n\n for (let index = 0; index < languages.length - 1; index++) {\n const language1 = languages[index];\n const language2 = languages[index + 1];\n\n // TODO: Complete all translations. At this moment, Japanese and Chinese\n // translations have missing literals\n it(`should translate the same literals (${language1.name} and ${language2.name})`, async () => {\n await page.evaluate(\n (attr: string) => document.documentElement.setAttribute(\"lang\", attr),\n language1.attr\n );\n const language1File: any | undefined = await getTranslations();\n\n await page.evaluate(\n (attr: string) => document.documentElement.setAttribute(\"lang\", attr),\n language2.attr\n );\n const language2File: any | undefined = await getTranslations();\n\n expect(language1File).toBeTruthy();\n expect(language2File).toBeTruthy();\n expect(haveSameStructure(language1File, language2File)).toBe(true);\n });\n }\n });\n};\n\n// TypeScript does not have a built-in type to exhaust a list with union types\nconst allGeneXusIdeUIComponents: { [key in GeneXusIdeUIControlsTagName]: 0 } = {\n \"gx-ide-about\": 0,\n \"gx-ide-ai-assistant\": 0,\n \"gx-ide-ai-message\": 0,\n \"gx-ide-bpm-app-declaration\": 0,\n \"gx-ide-bpm-assign-roles\": 0,\n \"gx-ide-bpm-import-files\": 0,\n \"gx-ide-bpm-import-gxpm\": 0,\n \"gx-ide-bpm-objects-selector\": 0,\n \"gx-ide-bpm-timer-duration\": 0,\n \"gx-ide-card\": 0,\n \"gx-ide-chat-container\": 0,\n \"gx-ide-sc-chat-container\": 0,\n \"gx-ide-connect-gx-server\": 0,\n \"gx-ide-container\": 0,\n \"gx-ide-create-kb-from-server\": 0,\n \"gx-ide-current-user-info\": 0,\n \"gx-ide-dashboard-home\": 0,\n \"gx-ide-data-selector\": 0,\n \"gx-ide-data-type-selector\": 0,\n \"gx-ide-design-import\": 0,\n \"gx-ide-directory-selector\": 0,\n \"gx-ide-edit-module-server\": 0,\n \"gx-ide-empty-state\": 0,\n \"gx-ide-entity-selector\": 0,\n \"gx-ide-gam-installation-settings\": 0,\n \"gx-ide-kb-manager-export\": 0,\n \"gx-ide-kb-manager-import\": 0,\n \"gx-ide-list-selector\": 0,\n \"gx-ide-list-selector-item\": 0,\n \"gx-ide-loader\": 0,\n \"gx-ide-manage-module-references\": 0,\n \"gx-ide-manage-module-references-v2\": 0,\n \"gx-ide-new-environment\": 0,\n \"gx-ide-new-kb\": 0,\n \"gx-ide-new-object\": 0,\n \"gx-ide-object-selector\": 0,\n \"gx-ide-references\": 0,\n \"gx-ide-select-kb-items\": 0,\n \"gx-ide-select-user-team\": 0,\n \"gx-ide-sign-in\": 0,\n \"gx-ide-sign-in-team\": 0,\n \"gx-ide-share-kb\": 0,\n \"gx-ide-start-page\": 0,\n \"gx-ide-status-buttons\": 0,\n \"gx-ide-switch-panel\": 0,\n \"gx-ide-switcher\": 0,\n \"gx-ide-team-dev-commit\": 0,\n \"gx-ide-team-dev-select-recent-comment\": 0,\n \"gx-ide-team-dev-update\": 0,\n \"gx-ide-team-dev-update-partial-selection\": 0,\n \"gx-ide-team-dev-update-to-revision\": 0,\n \"gx-ide-template\": 0,\n \"gx-ide-test\": 0,\n \"gx-ide-title\": 0,\n \"gx-ide-top-bar\": 0,\n \"gx-ide-wf-settings\": 0,\n \"gx-ide-ww-images\": 0,\n \"gx-ide-ww-attributes\": 0,\n \"gx-ide-navigation-report\": 0,\n \"gx-ide-splash\": 0,\n \"gx-ide-welcome-page\": 0,\n \"gx-ide-bpm-export-xpdl\": 0\n};\n\nconst componentsWithoutTranslations = new Set<GeneXusIdeUIControlsTagName>([\n \"gx-ide-ai-message\",\n \"gx-ide-chat-container\",\n \"gx-ide-container\",\n \"gx-ide-sc-chat-container\",\n \"gx-ide-directory-selector\",\n \"gx-ide-empty-state\",\n \"gx-ide-list-selector\",\n \"gx-ide-list-selector-item\",\n \"gx-ide-loader\",\n \"gx-ide-switch-panel\",\n \"gx-ide-switcher\",\n \"gx-ide-test\",\n \"gx-ide-title\",\n \"gx-ide-top-bar\"\n]);\n\nconst componentsWithTranslations = Object.keys(\n allGeneXusIdeUIComponents\n).filter(\n component =>\n !componentsWithoutTranslations.has(component as GeneXusIdeUIControlsTagName)\n);\n\ncomponentsWithTranslations.forEach(testLocale);\n"]}
@@ -73,7 +73,21 @@ const getSelectedItem = (gxOptions) => {
73
73
  return gxOptions[0].id;
74
74
  }
75
75
  };
76
+ // Dots animation used in ch-chat code-render (or other components)
77
+ const ANIMATION_DOTS = (size = "regular", color = "primary") => {
78
+ const n = size === "regular" ? 1 : 4;
79
+ const colorVar = color === "primary"
80
+ ? "var(--mer-color__primary--200)"
81
+ : "var(--mer-text__on-surface)";
82
+ return (h("svg", { width: 36 / n, height: 8 / n, fill: "transparent" },
83
+ h("circle", { cx: 4 / n, cy: 4 / n, r: 4 / n, opacity: "0", fill: colorVar },
84
+ h("animate", { attributeName: "opacity", values: "0;1;0", dur: "1s", repeatCount: "indefinite" })),
85
+ h("circle", { cx: 18 / n, cy: 4 / n, r: 4 / n, opacity: "0", fill: colorVar },
86
+ h("animate", { attributeName: "opacity", values: "0;1;0", dur: "1s", begin: "0.15s", repeatCount: "indefinite" })),
87
+ h("circle", { cx: 32 / n, cy: 4 / n, r: 4 / n, opacity: "0", fill: colorVar },
88
+ h("animate", { attributeName: "opacity", values: "0;1;0", dur: "1s", begin: "0.30s", repeatCount: "indefinite" }))));
89
+ };
76
90
 
77
- export { renderFormItems as a, getSelectedItem as g, renderModuleDataProperties as r };
91
+ export { ANIMATION_DOTS as A, renderFormItems as a, getSelectedItem as g, renderModuleDataProperties as r };
78
92
 
79
93
  //# sourceMappingURL=common.js.map
@@ -1 +1 @@
1
- {"file":"common.js","mappings":"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","names":[],"sources":["src/common/common.tsx"],"sourcesContent":["/* STENCIL IMPORTS */\nimport { h } from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { GxgFormItemsArray, GxOption } from \"./types\";\nimport { ModulePropertyData } from \"../components/modules/types\";\nexport const renderFormItems = (\n componentType:\n | \"gxg-combo-box-item\"\n | \"gxg-form-checkbox\"\n | \"gxg-form-radio\" = \"gxg-combo-box-item\",\n options: Array<GxOption>,\n group = \"undefined-group\",\n callback?: any\n): GxgFormItemsArray => {\n if (options.length) {\n const items: GxgFormItemsArray = [];\n options.forEach(option => {\n let item;\n switch (componentType) {\n case \"gxg-form-checkbox\":\n item = (\n <gxg-form-checkbox\n checkboxId={option.id}\n checked={option.checked}\n disabled={option.disabled}\n label={option.label}\n value={option.value}\n onChange={callback ? callback : null}\n iconName={option.iconName}\n part={`${group}-${option.id}`}\n ></gxg-form-checkbox>\n );\n items.push(item);\n break;\n case \"gxg-combo-box-item\":\n item = (\n <gxg-combo-box-item\n value={option.id}\n icon={option.iconName}\n part={`${group}-${option.id}`}\n >\n {option.label}\n </gxg-combo-box-item>\n );\n items.push(item);\n break;\n case \"gxg-form-radio\":\n item = (\n <gxg-form-radio\n radioId={option.id}\n checked={option.checked}\n disabled={option.disabled}\n label={option.label}\n value={option.value}\n name={group}\n part={`${group}-${option.id}`}\n ></gxg-form-radio>\n );\n items.push(item);\n break;\n default:\n break;\n }\n });\n return items;\n }\n return null;\n};\n\nexport const renderModuleDataProperties = (\n options: Array<ModulePropertyData>\n): ModulePropertyData[] => {\n if (options.length) {\n const items: ModulePropertyData[] = [];\n\n options.forEach(option => {\n if (Array.isArray(option.value)) {\n const item = (\n <div class=\"md-property__list\">\n <p class=\"md-property__key\">{option.name} :</p>\n <ul>\n {option.value.map(subItem => {\n return <li>{subItem}</li>;\n })}\n </ul>\n </div>\n );\n items.push(item);\n } else {\n const item = (\n <div\n class={\n option.inline\n ? \"md-property md-property--inline\"\n : \"md-property--block\"\n }\n >\n <p class=\"md-property__key\">{option.name} :</p>\n <p class=\"md-property__value\">{option.value}</p>\n </div>\n );\n items.push(item);\n }\n });\n\n return items;\n }\n return null;\n};\n\n/**\n * @param gxOptions An array of GxOptions's\n * @returns The first option in the array that is 'selected'. If no one found it returns null.\n */\nexport const getSelectedGxOption = (\n gxOptions: GxOption[],\n onlyId = true\n): GxOption | string | void => {\n if (gxOptions?.length > 0) {\n let found = null;\n for (let i = 0; i < gxOptions.length; i++) {\n if (gxOptions[i].selected) {\n found = gxOptions[i];\n break;\n }\n }\n if (found && onlyId) {\n return found.id;\n } else if (!found && onlyId) {\n return gxOptions[0].id;\n }\n return found;\n }\n};\n\n/**\n * @param gxOptions An array of GxOptions's\n * @returns The value of the selected item, or the first item, if no one is selected.\n */\nexport const getSelectedItem = (gxOptions: GxOption[]): string => {\n let found = undefined;\n for (let i = 0; i < gxOptions.length; i++) {\n if (gxOptions[i].selected) {\n found = gxOptions[i];\n break;\n }\n }\n if (found) {\n return found.id;\n } else {\n return gxOptions[0].id;\n }\n};\n\nexport const getSelectedItem2 = (\n gxOptions: GxOption[] | undefined\n): string | undefined =>\n gxOptions\n ? (gxOptions.find(item => item.selected) ?? gxOptions[0]).id\n : undefined;\n"],"version":3}
1
+ {"file":"common.js","mappings":"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","names":[],"sources":["src/common/common.tsx"],"sourcesContent":["/* STENCIL IMPORTS */\nimport { h } from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { GxgFormItemsArray, GxOption } from \"./types\";\nimport { ModulePropertyData } from \"../components/modules/types\";\nexport const renderFormItems = (\n componentType:\n | \"gxg-combo-box-item\"\n | \"gxg-form-checkbox\"\n | \"gxg-form-radio\" = \"gxg-combo-box-item\",\n options: Array<GxOption>,\n group = \"undefined-group\",\n callback?: any\n): GxgFormItemsArray => {\n if (options.length) {\n const items: GxgFormItemsArray = [];\n options.forEach(option => {\n let item;\n switch (componentType) {\n case \"gxg-form-checkbox\":\n item = (\n <gxg-form-checkbox\n checkboxId={option.id}\n checked={option.checked}\n disabled={option.disabled}\n label={option.label}\n value={option.value}\n onChange={callback ? callback : null}\n iconName={option.iconName}\n part={`${group}-${option.id}`}\n ></gxg-form-checkbox>\n );\n items.push(item);\n break;\n case \"gxg-combo-box-item\":\n item = (\n <gxg-combo-box-item\n value={option.id}\n icon={option.iconName}\n part={`${group}-${option.id}`}\n >\n {option.label}\n </gxg-combo-box-item>\n );\n items.push(item);\n break;\n case \"gxg-form-radio\":\n item = (\n <gxg-form-radio\n radioId={option.id}\n checked={option.checked}\n disabled={option.disabled}\n label={option.label}\n value={option.value}\n name={group}\n part={`${group}-${option.id}`}\n ></gxg-form-radio>\n );\n items.push(item);\n break;\n default:\n break;\n }\n });\n return items;\n }\n return null;\n};\n\nexport const renderModuleDataProperties = (\n options: Array<ModulePropertyData>\n): ModulePropertyData[] => {\n if (options.length) {\n const items: ModulePropertyData[] = [];\n\n options.forEach(option => {\n if (Array.isArray(option.value)) {\n const item = (\n <div class=\"md-property__list\">\n <p class=\"md-property__key\">{option.name} :</p>\n <ul>\n {option.value.map(subItem => {\n return <li>{subItem}</li>;\n })}\n </ul>\n </div>\n );\n items.push(item);\n } else {\n const item = (\n <div\n class={\n option.inline\n ? \"md-property md-property--inline\"\n : \"md-property--block\"\n }\n >\n <p class=\"md-property__key\">{option.name} :</p>\n <p class=\"md-property__value\">{option.value}</p>\n </div>\n );\n items.push(item);\n }\n });\n\n return items;\n }\n return null;\n};\n\n/**\n * @param gxOptions An array of GxOptions's\n * @returns The first option in the array that is 'selected'. If no one found it returns null.\n */\nexport const getSelectedGxOption = (\n gxOptions: GxOption[],\n onlyId = true\n): GxOption | string | void => {\n if (gxOptions?.length > 0) {\n let found = null;\n for (let i = 0; i < gxOptions.length; i++) {\n if (gxOptions[i].selected) {\n found = gxOptions[i];\n break;\n }\n }\n if (found && onlyId) {\n return found.id;\n } else if (!found && onlyId) {\n return gxOptions[0].id;\n }\n return found;\n }\n};\n\n/**\n * @param gxOptions An array of GxOptions's\n * @returns The value of the selected item, or the first item, if no one is selected.\n */\nexport const getSelectedItem = (gxOptions: GxOption[]): string => {\n let found = undefined;\n for (let i = 0; i < gxOptions.length; i++) {\n if (gxOptions[i].selected) {\n found = gxOptions[i];\n break;\n }\n }\n if (found) {\n return found.id;\n } else {\n return gxOptions[0].id;\n }\n};\n\nexport const getSelectedItem2 = (\n gxOptions: GxOption[] | undefined\n): string | undefined =>\n gxOptions\n ? (gxOptions.find(item => item.selected) ?? gxOptions[0]).id\n : undefined;\n\n// Dots animation used in ch-chat code-render (or other components)\nexport const ANIMATION_DOTS = (\n size: \"regular\" | \"tiny\" = \"regular\",\n color: \"primary\" | \"on-surface\" = \"primary\"\n): SVGElement => {\n const n = size === \"regular\" ? 1 : 4;\n const colorVar =\n color === \"primary\"\n ? \"var(--mer-color__primary--200)\"\n : \"var(--mer-text__on-surface)\";\n\n return (\n <svg width={36 / n} height={8 / n} fill=\"transparent\">\n <circle cx={4 / n} cy={4 / n} r={4 / n} opacity=\"0\" fill={colorVar}>\n <animate\n attributeName=\"opacity\"\n values=\"0;1;0\"\n dur=\"1s\"\n repeatCount=\"indefinite\"\n />\n </circle>\n <circle cx={18 / n} cy={4 / n} r={4 / n} opacity=\"0\" fill={colorVar}>\n <animate\n attributeName=\"opacity\"\n values=\"0;1;0\"\n dur=\"1s\"\n begin=\"0.15s\"\n repeatCount=\"indefinite\"\n />\n </circle>\n <circle cx={32 / n} cy={4 / n} r={4 / n} opacity=\"0\" fill={colorVar}>\n <animate\n attributeName=\"opacity\"\n values=\"0;1;0\"\n dur=\"1s\"\n begin=\"0.30s\"\n repeatCount=\"indefinite\"\n />\n </circle>\n </svg>\n );\n};\n"],"version":3}