@genexus/genexus-ide-ui 1.1.4 → 1.1.5

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 (777) hide show
  1. package/dist/cjs/MERCURY_ASSETS-972bf7f4.js +9 -0
  2. package/dist/cjs/MERCURY_ASSETS-972bf7f4.js.map +1 -0
  3. package/dist/cjs/code-render-0e9837c4.js +86 -0
  4. package/dist/cjs/code-render-0e9837c4.js.map +1 -0
  5. package/dist/cjs/{common-72f91a78.js → common-090e6d3a.js} +28 -12
  6. package/dist/cjs/common-090e6d3a.js.map +1 -0
  7. package/dist/cjs/{form-validation-178cf461.js → form-validation-ffe2b957.js} +7 -3
  8. package/dist/cjs/form-validation-ffe2b957.js.map +1 -0
  9. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  10. package/dist/cjs/gx-ide-about.cjs.entry.js +1 -1
  11. package/dist/cjs/gx-ide-ai-assistant.cjs.entry.js +9 -15
  12. package/dist/cjs/gx-ide-ai-assistant.cjs.entry.js.map +1 -1
  13. package/dist/cjs/gx-ide-ai-message.cjs.entry.js +4 -5
  14. package/dist/cjs/gx-ide-ai-message.cjs.entry.js.map +1 -1
  15. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js +8 -10
  16. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js.map +1 -1
  17. package/dist/cjs/gx-ide-bpm-assign-roles.cjs.entry.js +1 -1
  18. package/dist/cjs/gx-ide-bpm-export-xpdl.cjs.entry.js +3 -5
  19. package/dist/cjs/gx-ide-bpm-export-xpdl.cjs.entry.js.map +1 -1
  20. package/dist/cjs/gx-ide-bpm-import-files.cjs.entry.js +2 -3
  21. package/dist/cjs/gx-ide-bpm-import-files.cjs.entry.js.map +1 -1
  22. package/dist/cjs/gx-ide-bpm-import-gxpm.cjs.entry.js +1 -1
  23. package/dist/cjs/gx-ide-bpm-objects-selector.cjs.entry.js +1 -1
  24. package/dist/cjs/gx-ide-bpm-sync-gam-roles.cjs.entry.js +2 -3
  25. package/dist/cjs/gx-ide-bpm-sync-gam-roles.cjs.entry.js.map +1 -1
  26. package/dist/cjs/gx-ide-bpm-task-documents.cjs.entry.js +13 -16
  27. package/dist/cjs/gx-ide-bpm-task-documents.cjs.entry.js.map +1 -1
  28. package/dist/cjs/gx-ide-bpm-timer-duration.cjs.entry.js +2 -3
  29. package/dist/cjs/gx-ide-bpm-timer-duration.cjs.entry.js.map +1 -1
  30. package/dist/cjs/gx-ide-card.cjs.entry.js +1 -1
  31. package/dist/cjs/gx-ide-chat-container_2.cjs.entry.js +239 -0
  32. package/dist/cjs/gx-ide-chat-container_2.cjs.entry.js.map +1 -0
  33. package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js +18 -23
  34. package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js.map +1 -1
  35. package/dist/cjs/gx-ide-container_2.cjs.entry.js +1 -2
  36. package/dist/cjs/gx-ide-container_2.cjs.entry.js.map +1 -1
  37. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +9 -14
  38. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js.map +1 -1
  39. package/dist/cjs/gx-ide-current-user-info.cjs.entry.js +5 -7
  40. package/dist/cjs/gx-ide-current-user-info.cjs.entry.js.map +1 -1
  41. package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js +6 -8
  42. package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js.map +1 -1
  43. package/dist/cjs/gx-ide-data-selector.cjs.entry.js +6 -8
  44. package/dist/cjs/gx-ide-data-selector.cjs.entry.js.map +1 -1
  45. package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js +6 -8
  46. package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js.map +1 -1
  47. package/dist/cjs/gx-ide-deployment-tool.cjs.entry.js +16 -20
  48. package/dist/cjs/gx-ide-deployment-tool.cjs.entry.js.map +1 -1
  49. package/dist/cjs/gx-ide-design-import.cjs.entry.js +27 -36
  50. package/dist/cjs/gx-ide-design-import.cjs.entry.js.map +1 -1
  51. package/dist/cjs/gx-ide-directory-selector.cjs.entry.js +1 -2
  52. package/dist/cjs/gx-ide-directory-selector.cjs.entry.js.map +1 -1
  53. package/dist/cjs/gx-ide-edit-module-server.cjs.entry.js +2 -3
  54. package/dist/cjs/gx-ide-edit-module-server.cjs.entry.js.map +1 -1
  55. package/dist/cjs/gx-ide-entity-selector.cjs.entry.js +6 -9
  56. package/dist/cjs/gx-ide-entity-selector.cjs.entry.js.map +1 -1
  57. package/dist/cjs/gx-ide-file-item.cjs.entry.js +5 -6
  58. package/dist/cjs/gx-ide-file-item.cjs.entry.js.map +1 -1
  59. package/dist/cjs/gx-ide-file-uploader.cjs.entry.js +62 -48
  60. package/dist/cjs/gx-ide-file-uploader.cjs.entry.js.map +1 -1
  61. package/dist/cjs/gx-ide-gam-installation-settings.cjs.entry.js +2 -3
  62. package/dist/cjs/gx-ide-gam-installation-settings.cjs.entry.js.map +1 -1
  63. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +7 -8
  64. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js.map +1 -1
  65. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +10 -14
  66. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js.map +1 -1
  67. package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js +1 -1
  68. package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js.map +1 -1
  69. package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js +18 -10
  70. package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js.map +1 -1
  71. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +7 -8
  72. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js.map +1 -1
  73. package/dist/cjs/gx-ide-navigation-report.cjs.entry.js +4 -7
  74. package/dist/cjs/gx-ide-navigation-report.cjs.entry.js.map +1 -1
  75. package/dist/cjs/gx-ide-new-environment.cjs.entry.js +14 -19
  76. package/dist/cjs/gx-ide-new-environment.cjs.entry.js.map +1 -1
  77. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +34 -39
  78. package/dist/cjs/gx-ide-new-kb.cjs.entry.js.map +1 -1
  79. package/dist/cjs/gx-ide-new-object.cjs.entry.js +6 -9
  80. package/dist/cjs/gx-ide-new-object.cjs.entry.js.map +1 -1
  81. package/dist/cjs/gx-ide-new-version.cjs.entry.js +3 -3
  82. package/dist/cjs/gx-ide-new-version.cjs.entry.js.map +1 -1
  83. package/dist/cjs/gx-ide-object-selector.cjs.entry.js +10 -12
  84. package/dist/cjs/gx-ide-object-selector.cjs.entry.js.map +1 -1
  85. package/dist/cjs/gx-ide-open-api-import.cjs.entry.js +8 -13
  86. package/dist/cjs/gx-ide-open-api-import.cjs.entry.js.map +1 -1
  87. package/dist/cjs/gx-ide-references.cjs.entry.js +21 -27
  88. package/dist/cjs/gx-ide-references.cjs.entry.js.map +1 -1
  89. package/dist/cjs/gx-ide-sc-chat-container.cjs.entry.js +202 -98
  90. package/dist/cjs/gx-ide-sc-chat-container.cjs.entry.js.map +1 -1
  91. package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js +10 -17
  92. package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js.map +1 -1
  93. package/dist/cjs/gx-ide-select-user-team.cjs.entry.js +3 -4
  94. package/dist/cjs/gx-ide-select-user-team.cjs.entry.js.map +1 -1
  95. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +6 -10
  96. package/dist/cjs/gx-ide-share-kb.cjs.entry.js.map +1 -1
  97. package/dist/cjs/gx-ide-sign-in-team.cjs.entry.js +2 -3
  98. package/dist/cjs/gx-ide-sign-in-team.cjs.entry.js.map +1 -1
  99. package/dist/cjs/gx-ide-sign-in.cjs.entry.js +1 -1
  100. package/dist/cjs/gx-ide-splash.cjs.entry.js +6 -8
  101. package/dist/cjs/gx-ide-splash.cjs.entry.js.map +1 -1
  102. package/dist/cjs/gx-ide-start-page.cjs.entry.js +9 -13
  103. package/dist/cjs/gx-ide-start-page.cjs.entry.js.map +1 -1
  104. package/dist/cjs/gx-ide-status-buttons.cjs.entry.js +1 -1
  105. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +3 -3
  106. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js.map +1 -1
  107. package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js +1 -1
  108. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js +2 -2
  109. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js.map +1 -1
  110. package/dist/cjs/gx-ide-team-dev-update-to-revision.cjs.entry.js +1 -1
  111. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +4 -5
  112. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js.map +1 -1
  113. package/dist/cjs/gx-ide-template.cjs.entry.js +1 -1
  114. package/dist/cjs/gx-ide-welcome-page.cjs.entry.js +8 -11
  115. package/dist/cjs/gx-ide-welcome-page.cjs.entry.js.map +1 -1
  116. package/dist/cjs/gx-ide-wf-settings.cjs.entry.js +1 -1
  117. package/dist/cjs/gx-ide-ww-attributes.cjs.entry.js +11 -18
  118. package/dist/cjs/gx-ide-ww-attributes.cjs.entry.js.map +1 -1
  119. package/dist/cjs/gx-ide-ww-files.cjs.entry.js +19 -22
  120. package/dist/cjs/gx-ide-ww-files.cjs.entry.js.map +1 -1
  121. package/dist/cjs/gx-ide-ww-images.cjs.entry.js +20 -9
  122. package/dist/cjs/gx-ide-ww-images.cjs.entry.js.map +1 -1
  123. package/dist/cjs/{helpers-30f109a4.js → helpers-e5a13fa5.js} +6 -6
  124. package/dist/cjs/helpers-e5a13fa5.js.map +1 -0
  125. package/dist/cjs/index.cjs.js +2 -2
  126. package/dist/cjs/index.cjs.js.map +1 -1
  127. package/dist/cjs/loader.cjs.js +1 -1
  128. package/dist/cjs/{locale-ff30a5f3.js → locale-36b93b1b.js} +4 -4
  129. package/dist/cjs/locale-36b93b1b.js.map +1 -0
  130. package/dist/collection/collection-manifest.json +2 -1
  131. package/dist/collection/common/common.js +23 -13
  132. package/dist/collection/common/common.js.map +1 -1
  133. package/dist/collection/common/form-validation.js +7 -4
  134. package/dist/collection/common/form-validation.js.map +1 -1
  135. package/dist/collection/common/helpers.js +9 -10
  136. package/dist/collection/common/helpers.js.map +1 -1
  137. package/dist/collection/common/locale.js +3 -3
  138. package/dist/collection/common/locale.js.map +1 -1
  139. package/dist/collection/common/render-suggest.js +1 -1
  140. package/dist/collection/common/render-suggest.js.map +1 -1
  141. package/dist/collection/components/_helpers/container/container.js +1 -2
  142. package/dist/collection/components/_helpers/container/container.js.map +1 -1
  143. package/dist/collection/components/_helpers/directory-selector/directory-selector.js +1 -2
  144. package/dist/collection/components/_helpers/directory-selector/directory-selector.js.map +1 -1
  145. package/dist/collection/components/_helpers/entity-selector/entity-selector.js +2 -4
  146. package/dist/collection/components/_helpers/entity-selector/entity-selector.js.map +1 -1
  147. package/dist/collection/components/_helpers/list-selector/list-selector-item/list-selector-item.js +1 -1
  148. package/dist/collection/components/_helpers/list-selector/list-selector-item/list-selector-item.js.map +1 -1
  149. package/dist/collection/components/ai-assistant/ai-assistant.js +8 -14
  150. package/dist/collection/components/ai-assistant/ai-assistant.js.map +1 -1
  151. package/dist/collection/components/bpm/application-declaration/bpm-app-declaration.css +1 -0
  152. package/dist/collection/components/bpm/application-declaration/bpm-app-declaration.js +2 -3
  153. package/dist/collection/components/bpm/application-declaration/bpm-app-declaration.js.map +1 -1
  154. package/dist/collection/components/bpm/export-xpdl/bpm-export-xpdl.js +2 -4
  155. package/dist/collection/components/bpm/export-xpdl/bpm-export-xpdl.js.map +1 -1
  156. package/dist/collection/components/bpm/import-files/bpm-import-files.js +1 -2
  157. package/dist/collection/components/bpm/import-files/bpm-import-files.js.map +1 -1
  158. package/dist/collection/components/bpm/sync-gam-roles/bpm-sync-gam-roles.js +1 -2
  159. package/dist/collection/components/bpm/sync-gam-roles/bpm-sync-gam-roles.js.map +1 -1
  160. package/dist/collection/components/bpm/task-documents/helpers.js +1 -1
  161. package/dist/collection/components/bpm/task-documents/helpers.js.map +1 -1
  162. package/dist/collection/components/bpm/task-documents/task-documents.js +7 -9
  163. package/dist/collection/components/bpm/task-documents/task-documents.js.map +1 -1
  164. package/dist/collection/components/bpm/timer-duration/bpm-timer-duration.js +1 -2
  165. package/dist/collection/components/bpm/timer-duration/bpm-timer-duration.js.map +1 -1
  166. package/dist/collection/components/chat/chat-container/chat-container.css +118 -0
  167. package/dist/collection/components/chat/chat-container/chat-container.js +218 -0
  168. package/dist/collection/components/chat/chat-container/chat-container.js.map +1 -0
  169. package/dist/collection/components/chat/chat-container/gx-ide-assets/chat-container/langs/chat-container.lang.en.json +9 -0
  170. package/dist/collection/components/chat/chat-container/gx-ide-assets/chat-container/langs/chat-container.lang.ja.json +9 -0
  171. package/dist/collection/components/chat/chat-container/gx-ide-assets/chat-container/langs/chat-container.lang.zh.json +9 -0
  172. package/dist/collection/components/chat/chat-welcome/chat-welcome.css +109 -0
  173. package/dist/collection/components/chat/chat-welcome/chat-welcome.js +228 -0
  174. package/dist/collection/components/chat/chat-welcome/chat-welcome.js.map +1 -0
  175. package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/helpers.js +3 -0
  176. package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/helpers.js.map +1 -0
  177. package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/helpers.tsx +31 -0
  178. package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/images/ai-avatar-welcome.svg +21 -0
  179. package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/images/ai-avatar.svg +11 -0
  180. package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/images/header-illustration.svg +24 -0
  181. package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/langs/chat-welcome.lang.en.json +10 -0
  182. package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/langs/chat-welcome.lang.ja.json +10 -0
  183. package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/langs/chat-welcome.lang.zh.json +10 -0
  184. package/dist/collection/components/chat/code-render.js +65 -0
  185. package/dist/collection/components/chat/code-render.js.map +1 -0
  186. package/dist/collection/components/current-user-info/current-user-info.js +2 -3
  187. package/dist/collection/components/current-user-info/current-user-info.js.map +1 -1
  188. package/dist/collection/components/dashboard-home/dashboard-home.js +2 -3
  189. package/dist/collection/components/dashboard-home/dashboard-home.js.map +1 -1
  190. package/dist/collection/components/data-selector/data-selector.css +1 -0
  191. package/dist/collection/components/data-selector/data-selector.js +2 -3
  192. package/dist/collection/components/data-selector/data-selector.js.map +1 -1
  193. package/dist/collection/components/data-type-selector/data-type-selector.js +3 -4
  194. package/dist/collection/components/data-type-selector/data-type-selector.js.map +1 -1
  195. package/dist/collection/components/deployment-tool/deployment-tool.js +11 -18
  196. package/dist/collection/components/deployment-tool/deployment-tool.js.map +1 -1
  197. package/dist/collection/components/deployment-tool/helpers.js +4 -1
  198. package/dist/collection/components/deployment-tool/helpers.js.map +1 -1
  199. package/dist/collection/components/design-import/design-import.js +18 -26
  200. package/dist/collection/components/design-import/design-import.js.map +1 -1
  201. package/dist/collection/components/design-import/helpers.js +1 -1
  202. package/dist/collection/components/design-import/helpers.js.map +1 -1
  203. package/dist/collection/components/file-uploader/file-uploader.js +59 -44
  204. package/dist/collection/components/file-uploader/file-uploader.js.map +1 -1
  205. package/dist/collection/components/gam-installation-settings/gam-installation-settings.js +1 -2
  206. package/dist/collection/components/gam-installation-settings/gam-installation-settings.js.map +1 -1
  207. package/dist/collection/components/kb-manager-import/kb-manager-import.js +4 -7
  208. package/dist/collection/components/kb-manager-import/kb-manager-import.js.map +1 -1
  209. package/dist/collection/components/modules/edit-module-server/edit-module-server.js +1 -2
  210. package/dist/collection/components/modules/edit-module-server/edit-module-server.js.map +1 -1
  211. package/dist/collection/components/modules/manage-module-references/manage-module-references.js +2 -2
  212. package/dist/collection/components/modules/manage-module-references/manage-module-references.js.map +1 -1
  213. package/dist/collection/components/modules/manage-module-references-v2/manage-module-references-v2.js +13 -4
  214. package/dist/collection/components/modules/manage-module-references-v2/manage-module-references-v2.js.map +1 -1
  215. package/dist/collection/components/navigation-report/navigation-report.js +3 -6
  216. package/dist/collection/components/navigation-report/navigation-report.js.map +1 -1
  217. package/dist/collection/components/new-environment/new-environment.js +10 -15
  218. package/dist/collection/components/new-environment/new-environment.js.map +1 -1
  219. package/dist/collection/components/new-kb/new-kb.js +28 -32
  220. package/dist/collection/components/new-kb/new-kb.js.map +1 -1
  221. package/dist/collection/components/new-object/new-object.js +5 -8
  222. package/dist/collection/components/new-object/new-object.js.map +1 -1
  223. package/dist/collection/components/new-version/new-version.js +2 -2
  224. package/dist/collection/components/new-version/new-version.js.map +1 -1
  225. package/dist/collection/components/object-selector/object-selector.css +1 -0
  226. package/dist/collection/components/object-selector/object-selector.js +4 -5
  227. package/dist/collection/components/object-selector/object-selector.js.map +1 -1
  228. package/dist/collection/components/open-api-import/open-api-import.js +4 -8
  229. package/dist/collection/components/open-api-import/open-api-import.js.map +1 -1
  230. package/dist/collection/components/references/helpers.js +9 -13
  231. package/dist/collection/components/references/helpers.js.map +1 -1
  232. package/dist/collection/components/references/references.js +9 -11
  233. package/dist/collection/components/references/references.js.map +1 -1
  234. package/dist/collection/components/select-kb-items/helpers.js +5 -10
  235. package/dist/collection/components/select-kb-items/helpers.js.map +1 -1
  236. package/dist/collection/components/select-kb-items/select-kb-items.js +1 -2
  237. package/dist/collection/components/select-kb-items/select-kb-items.js.map +1 -1
  238. package/dist/collection/components/select-user-team/helpers.js +1 -1
  239. package/dist/collection/components/select-user-team/helpers.js.map +1 -1
  240. package/dist/collection/components/select-user-team/select-user-team.js +1 -2
  241. package/dist/collection/components/select-user-team/select-user-team.js.map +1 -1
  242. package/dist/collection/components/sign-in-team/sign-in-team.js +1 -2
  243. package/dist/collection/components/sign-in-team/sign-in-team.js.map +1 -1
  244. package/dist/collection/components/splash/splash.js +2 -3
  245. package/dist/collection/components/splash/splash.js.map +1 -1
  246. package/dist/collection/components/start-page/start-page.js +3 -6
  247. package/dist/collection/components/start-page/start-page.js.map +1 -1
  248. package/dist/collection/components/team-dev/commit/commit.css +1 -0
  249. package/dist/collection/components/team-dev/connect-gx-server/connect-gx-server.js +16 -21
  250. package/dist/collection/components/team-dev/connect-gx-server/connect-gx-server.js.map +1 -1
  251. package/dist/collection/components/team-dev/create-kb-from-server/create-kb-from-server.js +4 -8
  252. package/dist/collection/components/team-dev/create-kb-from-server/create-kb-from-server.js.map +1 -1
  253. package/dist/collection/components/team-dev/share-kb/share-kb.js +2 -5
  254. package/dist/collection/components/team-dev/share-kb/share-kb.js.map +1 -1
  255. package/dist/collection/components/team-dev/update/update.css +2 -0
  256. package/dist/collection/components/team-dev/update/update.js +1 -2
  257. package/dist/collection/components/team-dev/update/update.js.map +1 -1
  258. package/dist/collection/components/team-dev/update-partial-selection/update-partial-selection.js +1 -1
  259. package/dist/collection/components/team-dev/update-partial-selection/update-partial-selection.js.map +1 -1
  260. package/dist/collection/components/welcome-page/welcome-page.js +5 -7
  261. package/dist/collection/components/welcome-page/welcome-page.js.map +1 -1
  262. package/dist/collection/components/ww-attributes/helpers.js +1 -2
  263. package/dist/collection/components/ww-attributes/helpers.js.map +1 -1
  264. package/dist/collection/components/ww-attributes/ww-attributes.css +1 -0
  265. package/dist/collection/components/ww-attributes/ww-attributes.js +6 -11
  266. package/dist/collection/components/ww-attributes/ww-attributes.js.map +1 -1
  267. package/dist/collection/components/ww-files/helpers.js +1 -2
  268. package/dist/collection/components/ww-files/helpers.js.map +1 -1
  269. package/dist/collection/components/ww-files/ww-files.css +1 -0
  270. package/dist/collection/components/ww-files/ww-files.js +16 -18
  271. package/dist/collection/components/ww-files/ww-files.js.map +1 -1
  272. package/dist/collection/components/ww-images/ww-images.css +1 -0
  273. package/dist/collection/components/ww-images/ww-images.js +16 -5
  274. package/dist/collection/components/ww-images/ww-images.js.map +1 -1
  275. package/dist/collection/index.js +1 -1
  276. package/dist/collection/index.js.map +1 -1
  277. package/dist/collection/showcase/chat-container/callbacks.js +105 -90
  278. package/dist/collection/showcase/chat-container/callbacks.js.map +1 -1
  279. package/dist/collection/showcase/chat-container/chat.showcase.js +145 -10
  280. package/dist/collection/showcase/chat-container/chat.showcase.js.map +1 -1
  281. package/dist/collection/testing/locale.e2e.js +4 -3
  282. package/dist/collection/testing/locale.e2e.js.map +1 -1
  283. package/dist/components/MERCURY_ASSETS.js +5 -1
  284. package/dist/components/MERCURY_ASSETS.js.map +1 -1
  285. package/dist/components/ai-message.js +1 -2
  286. package/dist/components/ai-message.js.map +1 -1
  287. package/dist/components/chat-container.js +70 -7
  288. package/dist/components/chat-container.js.map +1 -1
  289. package/dist/components/chat-welcome.js +146 -0
  290. package/dist/components/chat-welcome.js.map +1 -0
  291. package/dist/components/code-render.js +68 -41
  292. package/dist/components/code-render.js.map +1 -1
  293. package/dist/components/common.js +27 -11
  294. package/dist/components/common.js.map +1 -1
  295. package/dist/components/container.js +1 -2
  296. package/dist/components/container.js.map +1 -1
  297. package/dist/components/entity-selector.js +3 -6
  298. package/dist/components/entity-selector.js.map +1 -1
  299. package/dist/components/file-item.js +1 -2
  300. package/dist/components/file-item.js.map +1 -1
  301. package/dist/components/form-validation.js +6 -2
  302. package/dist/components/form-validation.js.map +1 -1
  303. package/dist/components/gx-ide-ai-assistant.js +8 -14
  304. package/dist/components/gx-ide-ai-assistant.js.map +1 -1
  305. package/dist/components/gx-ide-bpm-app-declaration.js +4 -6
  306. package/dist/components/gx-ide-bpm-app-declaration.js.map +1 -1
  307. package/dist/components/gx-ide-bpm-export-xpdl.js +2 -4
  308. package/dist/components/gx-ide-bpm-export-xpdl.js.map +1 -1
  309. package/dist/components/gx-ide-bpm-import-files.js +1 -2
  310. package/dist/components/gx-ide-bpm-import-files.js.map +1 -1
  311. package/dist/components/gx-ide-bpm-sync-gam-roles.js +1 -2
  312. package/dist/components/gx-ide-bpm-sync-gam-roles.js.map +1 -1
  313. package/dist/components/gx-ide-bpm-task-documents.js +9 -12
  314. package/dist/components/gx-ide-bpm-task-documents.js.map +1 -1
  315. package/dist/components/gx-ide-bpm-timer-duration.js +1 -2
  316. package/dist/components/gx-ide-bpm-timer-duration.js.map +1 -1
  317. package/dist/components/gx-ide-chat-welcome.d.ts +11 -0
  318. package/dist/components/gx-ide-chat-welcome.js +8 -0
  319. package/dist/components/gx-ide-chat-welcome.js.map +1 -0
  320. package/dist/components/gx-ide-connect-gx-server.js +16 -21
  321. package/dist/components/gx-ide-connect-gx-server.js.map +1 -1
  322. package/dist/components/gx-ide-create-kb-from-server.js +5 -10
  323. package/dist/components/gx-ide-create-kb-from-server.js.map +1 -1
  324. package/dist/components/gx-ide-current-user-info.js +3 -5
  325. package/dist/components/gx-ide-current-user-info.js.map +1 -1
  326. package/dist/components/gx-ide-dashboard-home.js +3 -5
  327. package/dist/components/gx-ide-dashboard-home.js.map +1 -1
  328. package/dist/components/gx-ide-data-selector.js +4 -6
  329. package/dist/components/gx-ide-data-selector.js.map +1 -1
  330. package/dist/components/gx-ide-data-type-selector.js +4 -6
  331. package/dist/components/gx-ide-data-type-selector.js.map +1 -1
  332. package/dist/components/gx-ide-deployment-tool.js +15 -19
  333. package/dist/components/gx-ide-deployment-tool.js.map +1 -1
  334. package/dist/components/gx-ide-design-import.js +20 -29
  335. package/dist/components/gx-ide-design-import.js.map +1 -1
  336. package/dist/components/gx-ide-directory-selector.js +1 -2
  337. package/dist/components/gx-ide-directory-selector.js.map +1 -1
  338. package/dist/components/gx-ide-edit-module-server.js +1 -2
  339. package/dist/components/gx-ide-edit-module-server.js.map +1 -1
  340. package/dist/components/gx-ide-file-uploader.js +60 -46
  341. package/dist/components/gx-ide-file-uploader.js.map +1 -1
  342. package/dist/components/gx-ide-gam-installation-settings.js +1 -2
  343. package/dist/components/gx-ide-gam-installation-settings.js.map +1 -1
  344. package/dist/components/gx-ide-kb-manager-export.js +1 -2
  345. package/dist/components/gx-ide-kb-manager-export.js.map +1 -1
  346. package/dist/components/gx-ide-kb-manager-import.js +5 -9
  347. package/dist/components/gx-ide-kb-manager-import.js.map +1 -1
  348. package/dist/components/gx-ide-manage-module-references-v2.js +14 -6
  349. package/dist/components/gx-ide-manage-module-references-v2.js.map +1 -1
  350. package/dist/components/gx-ide-manage-module-references.js +3 -4
  351. package/dist/components/gx-ide-manage-module-references.js.map +1 -1
  352. package/dist/components/gx-ide-navigation-report.js +3 -6
  353. package/dist/components/gx-ide-navigation-report.js.map +1 -1
  354. package/dist/components/gx-ide-new-environment.js +10 -15
  355. package/dist/components/gx-ide-new-environment.js.map +1 -1
  356. package/dist/components/gx-ide-new-kb.js +29 -34
  357. package/dist/components/gx-ide-new-kb.js.map +1 -1
  358. package/dist/components/gx-ide-new-object.js +5 -8
  359. package/dist/components/gx-ide-new-object.js.map +1 -1
  360. package/dist/components/gx-ide-new-version.js +2 -2
  361. package/dist/components/gx-ide-new-version.js.map +1 -1
  362. package/dist/components/gx-ide-object-selector.js +6 -8
  363. package/dist/components/gx-ide-object-selector.js.map +1 -1
  364. package/dist/components/gx-ide-open-api-import.js +5 -10
  365. package/dist/components/gx-ide-open-api-import.js.map +1 -1
  366. package/dist/components/gx-ide-references.js +18 -24
  367. package/dist/components/gx-ide-references.js.map +1 -1
  368. package/dist/components/gx-ide-sc-chat-container.js +215 -100
  369. package/dist/components/gx-ide-sc-chat-container.js.map +1 -1
  370. package/dist/components/gx-ide-select-kb-items.js +7 -14
  371. package/dist/components/gx-ide-select-kb-items.js.map +1 -1
  372. package/dist/components/gx-ide-select-user-team.js +2 -3
  373. package/dist/components/gx-ide-select-user-team.js.map +1 -1
  374. package/dist/components/gx-ide-share-kb.js +3 -7
  375. package/dist/components/gx-ide-share-kb.js.map +1 -1
  376. package/dist/components/gx-ide-sign-in-team.js +1 -2
  377. package/dist/components/gx-ide-sign-in-team.js.map +1 -1
  378. package/dist/components/gx-ide-splash.js +3 -5
  379. package/dist/components/gx-ide-splash.js.map +1 -1
  380. package/dist/components/gx-ide-start-page.js +4 -8
  381. package/dist/components/gx-ide-start-page.js.map +1 -1
  382. package/dist/components/gx-ide-team-dev-commit.js +1 -1
  383. package/dist/components/gx-ide-team-dev-commit.js.map +1 -1
  384. package/dist/components/gx-ide-team-dev-update-partial-selection.js +1 -1
  385. package/dist/components/gx-ide-team-dev-update-partial-selection.js.map +1 -1
  386. package/dist/components/gx-ide-team-dev-update.js +2 -3
  387. package/dist/components/gx-ide-team-dev-update.js.map +1 -1
  388. package/dist/components/gx-ide-welcome-page.js +6 -9
  389. package/dist/components/gx-ide-welcome-page.js.map +1 -1
  390. package/dist/components/gx-ide-ww-attributes.js +9 -16
  391. package/dist/components/gx-ide-ww-attributes.js.map +1 -1
  392. package/dist/components/gx-ide-ww-files.js +18 -21
  393. package/dist/components/gx-ide-ww-files.js.map +1 -1
  394. package/dist/components/gx-ide-ww-images.js +17 -6
  395. package/dist/components/gx-ide-ww-images.js.map +1 -1
  396. package/dist/components/helpers.js +5 -5
  397. package/dist/components/helpers.js.map +1 -1
  398. package/dist/components/index.js.map +1 -1
  399. package/dist/components/list-selector-item.js +1 -1
  400. package/dist/components/list-selector-item.js.map +1 -1
  401. package/dist/components/locale.js +3 -3
  402. package/dist/components/locale.js.map +1 -1
  403. package/dist/esm/MERCURY_ASSETS-039222dd.js +7 -0
  404. package/dist/esm/MERCURY_ASSETS-039222dd.js.map +1 -0
  405. package/dist/esm/code-render-f3afd300.js +83 -0
  406. package/dist/esm/code-render-f3afd300.js.map +1 -0
  407. package/dist/esm/{common-ccb4504a.js → common-719c4daf.js} +28 -12
  408. package/dist/esm/common-719c4daf.js.map +1 -0
  409. package/dist/esm/{form-validation-cd0215c6.js → form-validation-71dca8c6.js} +7 -3
  410. package/dist/esm/form-validation-71dca8c6.js.map +1 -0
  411. package/dist/esm/genexus-ide-ui.js +1 -1
  412. package/dist/esm/gx-ide-about.entry.js +1 -1
  413. package/dist/esm/gx-ide-ai-assistant.entry.js +9 -15
  414. package/dist/esm/gx-ide-ai-assistant.entry.js.map +1 -1
  415. package/dist/esm/gx-ide-ai-message.entry.js +3 -4
  416. package/dist/esm/gx-ide-ai-message.entry.js.map +1 -1
  417. package/dist/esm/gx-ide-bpm-app-declaration.entry.js +5 -7
  418. package/dist/esm/gx-ide-bpm-app-declaration.entry.js.map +1 -1
  419. package/dist/esm/gx-ide-bpm-assign-roles.entry.js +1 -1
  420. package/dist/esm/gx-ide-bpm-export-xpdl.entry.js +3 -5
  421. package/dist/esm/gx-ide-bpm-export-xpdl.entry.js.map +1 -1
  422. package/dist/esm/gx-ide-bpm-import-files.entry.js +2 -3
  423. package/dist/esm/gx-ide-bpm-import-files.entry.js.map +1 -1
  424. package/dist/esm/gx-ide-bpm-import-gxpm.entry.js +1 -1
  425. package/dist/esm/gx-ide-bpm-objects-selector.entry.js +1 -1
  426. package/dist/esm/gx-ide-bpm-sync-gam-roles.entry.js +2 -3
  427. package/dist/esm/gx-ide-bpm-sync-gam-roles.entry.js.map +1 -1
  428. package/dist/esm/gx-ide-bpm-task-documents.entry.js +10 -13
  429. package/dist/esm/gx-ide-bpm-task-documents.entry.js.map +1 -1
  430. package/dist/esm/gx-ide-bpm-timer-duration.entry.js +2 -3
  431. package/dist/esm/gx-ide-bpm-timer-duration.entry.js.map +1 -1
  432. package/dist/esm/gx-ide-card.entry.js +1 -1
  433. package/dist/esm/gx-ide-chat-container_2.entry.js +234 -0
  434. package/dist/esm/gx-ide-chat-container_2.entry.js.map +1 -0
  435. package/dist/esm/gx-ide-connect-gx-server.entry.js +18 -23
  436. package/dist/esm/gx-ide-connect-gx-server.entry.js.map +1 -1
  437. package/dist/esm/gx-ide-container_2.entry.js +1 -2
  438. package/dist/esm/gx-ide-container_2.entry.js.map +1 -1
  439. package/dist/esm/gx-ide-create-kb-from-server.entry.js +7 -12
  440. package/dist/esm/gx-ide-create-kb-from-server.entry.js.map +1 -1
  441. package/dist/esm/gx-ide-current-user-info.entry.js +4 -6
  442. package/dist/esm/gx-ide-current-user-info.entry.js.map +1 -1
  443. package/dist/esm/gx-ide-dashboard-home.entry.js +5 -7
  444. package/dist/esm/gx-ide-dashboard-home.entry.js.map +1 -1
  445. package/dist/esm/gx-ide-data-selector.entry.js +5 -7
  446. package/dist/esm/gx-ide-data-selector.entry.js.map +1 -1
  447. package/dist/esm/gx-ide-data-type-selector.entry.js +5 -7
  448. package/dist/esm/gx-ide-data-type-selector.entry.js.map +1 -1
  449. package/dist/esm/gx-ide-deployment-tool.entry.js +16 -20
  450. package/dist/esm/gx-ide-deployment-tool.entry.js.map +1 -1
  451. package/dist/esm/gx-ide-design-import.entry.js +21 -30
  452. package/dist/esm/gx-ide-design-import.entry.js.map +1 -1
  453. package/dist/esm/gx-ide-directory-selector.entry.js +1 -2
  454. package/dist/esm/gx-ide-directory-selector.entry.js.map +1 -1
  455. package/dist/esm/gx-ide-edit-module-server.entry.js +2 -3
  456. package/dist/esm/gx-ide-edit-module-server.entry.js.map +1 -1
  457. package/dist/esm/gx-ide-entity-selector.entry.js +4 -7
  458. package/dist/esm/gx-ide-entity-selector.entry.js.map +1 -1
  459. package/dist/esm/gx-ide-file-item.entry.js +1 -2
  460. package/dist/esm/gx-ide-file-item.entry.js.map +1 -1
  461. package/dist/esm/gx-ide-file-uploader.entry.js +61 -47
  462. package/dist/esm/gx-ide-file-uploader.entry.js.map +1 -1
  463. package/dist/esm/gx-ide-gam-installation-settings.entry.js +2 -3
  464. package/dist/esm/gx-ide-gam-installation-settings.entry.js.map +1 -1
  465. package/dist/esm/gx-ide-kb-manager-export.entry.js +2 -3
  466. package/dist/esm/gx-ide-kb-manager-export.entry.js.map +1 -1
  467. package/dist/esm/gx-ide-kb-manager-import.entry.js +6 -10
  468. package/dist/esm/gx-ide-kb-manager-import.entry.js.map +1 -1
  469. package/dist/esm/gx-ide-list-selector_2.entry.js +1 -1
  470. package/dist/esm/gx-ide-list-selector_2.entry.js.map +1 -1
  471. package/dist/esm/gx-ide-manage-module-references-v2.entry.js +16 -8
  472. package/dist/esm/gx-ide-manage-module-references-v2.entry.js.map +1 -1
  473. package/dist/esm/gx-ide-manage-module-references.entry.js +5 -6
  474. package/dist/esm/gx-ide-manage-module-references.entry.js.map +1 -1
  475. package/dist/esm/gx-ide-navigation-report.entry.js +4 -7
  476. package/dist/esm/gx-ide-navigation-report.entry.js.map +1 -1
  477. package/dist/esm/gx-ide-new-environment.entry.js +14 -19
  478. package/dist/esm/gx-ide-new-environment.entry.js.map +1 -1
  479. package/dist/esm/gx-ide-new-kb.entry.js +33 -38
  480. package/dist/esm/gx-ide-new-kb.entry.js.map +1 -1
  481. package/dist/esm/gx-ide-new-object.entry.js +6 -9
  482. package/dist/esm/gx-ide-new-object.entry.js.map +1 -1
  483. package/dist/esm/gx-ide-new-version.entry.js +3 -3
  484. package/dist/esm/gx-ide-new-version.entry.js.map +1 -1
  485. package/dist/esm/gx-ide-object-selector.entry.js +8 -10
  486. package/dist/esm/gx-ide-object-selector.entry.js.map +1 -1
  487. package/dist/esm/gx-ide-open-api-import.entry.js +6 -11
  488. package/dist/esm/gx-ide-open-api-import.entry.js.map +1 -1
  489. package/dist/esm/gx-ide-references.entry.js +19 -25
  490. package/dist/esm/gx-ide-references.entry.js.map +1 -1
  491. package/dist/esm/gx-ide-sc-chat-container.entry.js +203 -99
  492. package/dist/esm/gx-ide-sc-chat-container.entry.js.map +1 -1
  493. package/dist/esm/gx-ide-select-kb-items.entry.js +8 -15
  494. package/dist/esm/gx-ide-select-kb-items.entry.js.map +1 -1
  495. package/dist/esm/gx-ide-select-user-team.entry.js +3 -4
  496. package/dist/esm/gx-ide-select-user-team.entry.js.map +1 -1
  497. package/dist/esm/gx-ide-share-kb.entry.js +5 -9
  498. package/dist/esm/gx-ide-share-kb.entry.js.map +1 -1
  499. package/dist/esm/gx-ide-sign-in-team.entry.js +2 -3
  500. package/dist/esm/gx-ide-sign-in-team.entry.js.map +1 -1
  501. package/dist/esm/gx-ide-sign-in.entry.js +1 -1
  502. package/dist/esm/gx-ide-splash.entry.js +5 -7
  503. package/dist/esm/gx-ide-splash.entry.js.map +1 -1
  504. package/dist/esm/gx-ide-start-page.entry.js +5 -9
  505. package/dist/esm/gx-ide-start-page.entry.js.map +1 -1
  506. package/dist/esm/gx-ide-status-buttons.entry.js +1 -1
  507. package/dist/esm/gx-ide-team-dev-commit.entry.js +3 -3
  508. package/dist/esm/gx-ide-team-dev-commit.entry.js.map +1 -1
  509. package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js +1 -1
  510. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js +2 -2
  511. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js.map +1 -1
  512. package/dist/esm/gx-ide-team-dev-update-to-revision.entry.js +1 -1
  513. package/dist/esm/gx-ide-team-dev-update.entry.js +4 -5
  514. package/dist/esm/gx-ide-team-dev-update.entry.js.map +1 -1
  515. package/dist/esm/gx-ide-template.entry.js +1 -1
  516. package/dist/esm/gx-ide-welcome-page.entry.js +7 -10
  517. package/dist/esm/gx-ide-welcome-page.entry.js.map +1 -1
  518. package/dist/esm/gx-ide-wf-settings.entry.js +1 -1
  519. package/dist/esm/gx-ide-ww-attributes.entry.js +10 -17
  520. package/dist/esm/gx-ide-ww-attributes.entry.js.map +1 -1
  521. package/dist/esm/gx-ide-ww-files.entry.js +19 -22
  522. package/dist/esm/gx-ide-ww-files.entry.js.map +1 -1
  523. package/dist/esm/gx-ide-ww-images.entry.js +20 -9
  524. package/dist/esm/gx-ide-ww-images.entry.js.map +1 -1
  525. package/dist/esm/{helpers-10479d69.js → helpers-5f1c9a32.js} +6 -6
  526. package/dist/esm/helpers-5f1c9a32.js.map +1 -0
  527. package/dist/esm/index.js +2 -2
  528. package/dist/esm/index.js.map +1 -1
  529. package/dist/esm/loader.js +1 -1
  530. package/dist/esm/{locale-e5107fad.js → locale-643afe17.js} +4 -4
  531. package/dist/esm/locale-643afe17.js.map +1 -0
  532. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  533. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  534. package/dist/genexus-ide-ui/gx-ide-assets/chat-container/langs/chat-container.lang.en.json +9 -0
  535. package/dist/genexus-ide-ui/gx-ide-assets/chat-container/langs/chat-container.lang.ja.json +9 -0
  536. package/dist/genexus-ide-ui/gx-ide-assets/chat-container/langs/chat-container.lang.zh.json +9 -0
  537. package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/helpers.tsx +31 -0
  538. package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/images/ai-avatar-welcome.svg +21 -0
  539. package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/images/ai-avatar.svg +11 -0
  540. package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/images/header-illustration.svg +24 -0
  541. package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/langs/chat-welcome.lang.en.json +10 -0
  542. package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/langs/chat-welcome.lang.ja.json +10 -0
  543. package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/langs/chat-welcome.lang.zh.json +10 -0
  544. package/dist/genexus-ide-ui/index.esm.js +2 -2
  545. package/dist/genexus-ide-ui/index.esm.js.map +1 -1
  546. package/dist/genexus-ide-ui/{p-d8379699.entry.js → p-02fc47cd.entry.js} +2 -2
  547. package/dist/genexus-ide-ui/{p-530c32aa.entry.js → p-032b4a81.entry.js} +25 -30
  548. package/dist/genexus-ide-ui/p-032b4a81.entry.js.map +1 -0
  549. package/dist/genexus-ide-ui/{p-eea944d4.entry.js → p-0d83a34d.entry.js} +63 -69
  550. package/dist/genexus-ide-ui/p-0d83a34d.entry.js.map +1 -0
  551. package/dist/genexus-ide-ui/{p-fcecdafa.entry.js → p-0e53f1ef.entry.js} +161 -163
  552. package/dist/genexus-ide-ui/p-0e53f1ef.entry.js.map +1 -0
  553. package/dist/genexus-ide-ui/{p-a1d73ca3.entry.js → p-11dccb8f.entry.js} +19 -20
  554. package/dist/genexus-ide-ui/p-11dccb8f.entry.js.map +1 -0
  555. package/dist/genexus-ide-ui/{p-fecc50e4.entry.js → p-29575656.entry.js} +85 -96
  556. package/dist/genexus-ide-ui/p-29575656.entry.js.map +1 -0
  557. package/dist/genexus-ide-ui/{p-14165308.entry.js → p-2be58a7a.entry.js} +2 -2
  558. package/dist/genexus-ide-ui/{p-fdf41406.entry.js → p-2dbf722d.entry.js} +77 -85
  559. package/dist/genexus-ide-ui/p-2dbf722d.entry.js.map +1 -0
  560. package/dist/genexus-ide-ui/{p-31beae9e.entry.js → p-2e90a13a.entry.js} +2 -3
  561. package/dist/genexus-ide-ui/p-2e90a13a.entry.js.map +1 -0
  562. package/dist/genexus-ide-ui/{p-ba7d1472.entry.js → p-353810b8.entry.js} +99 -104
  563. package/dist/genexus-ide-ui/p-353810b8.entry.js.map +1 -0
  564. package/dist/genexus-ide-ui/{p-b58fb87b.entry.js → p-39c527ff.entry.js} +2 -2
  565. package/dist/genexus-ide-ui/p-3edbf07d.js +109 -0
  566. package/dist/genexus-ide-ui/p-3edbf07d.js.map +1 -0
  567. package/dist/genexus-ide-ui/{p-ef5dfd35.entry.js → p-41a4364d.entry.js} +2 -4
  568. package/dist/genexus-ide-ui/{p-ef5dfd35.entry.js.map → p-41a4364d.entry.js.map} +1 -1
  569. package/dist/genexus-ide-ui/{p-68969051.entry.js → p-45d2fa91.entry.js} +11 -12
  570. package/dist/genexus-ide-ui/p-45d2fa91.entry.js.map +1 -0
  571. package/dist/genexus-ide-ui/{p-5687fdb7.entry.js → p-460db3ff.entry.js} +11 -13
  572. package/dist/genexus-ide-ui/{p-5687fdb7.entry.js.map → p-460db3ff.entry.js.map} +1 -1
  573. package/dist/genexus-ide-ui/{p-9a609b51.js → p-48f5911b.js} +50 -33
  574. package/dist/genexus-ide-ui/p-48f5911b.js.map +1 -0
  575. package/dist/genexus-ide-ui/{p-4b38fffc.entry.js → p-4d929210.entry.js} +2 -2
  576. package/dist/genexus-ide-ui/{p-de7f0c1f.entry.js → p-501c7b1f.entry.js} +19 -22
  577. package/dist/genexus-ide-ui/p-501c7b1f.entry.js.map +1 -0
  578. package/dist/genexus-ide-ui/{p-c747afac.entry.js → p-50eaa96d.entry.js} +99 -111
  579. package/dist/genexus-ide-ui/p-50eaa96d.entry.js.map +1 -0
  580. package/dist/genexus-ide-ui/p-51601b85.js +145 -0
  581. package/dist/genexus-ide-ui/p-51601b85.js.map +1 -0
  582. package/dist/genexus-ide-ui/{p-289c3290.js → p-549b8f0c.js} +16 -15
  583. package/dist/{esm/form-validation-cd0215c6.js.map → genexus-ide-ui/p-549b8f0c.js.map} +1 -1
  584. package/dist/genexus-ide-ui/{p-007173ef.entry.js → p-5a42428d.entry.js} +16 -19
  585. package/dist/genexus-ide-ui/p-5a42428d.entry.js.map +1 -0
  586. package/dist/genexus-ide-ui/{p-ded7444c.entry.js → p-5da3e999.entry.js} +16 -17
  587. package/dist/genexus-ide-ui/p-5da3e999.entry.js.map +1 -0
  588. package/dist/genexus-ide-ui/{p-1072bf33.entry.js → p-5e05f830.entry.js} +32 -38
  589. package/dist/genexus-ide-ui/p-5e05f830.entry.js.map +1 -0
  590. package/dist/genexus-ide-ui/{p-fe490103.entry.js → p-6168d48c.entry.js} +165 -174
  591. package/dist/genexus-ide-ui/p-6168d48c.entry.js.map +1 -0
  592. package/dist/genexus-ide-ui/{p-76c3fc51.entry.js → p-66d9269a.entry.js} +17 -22
  593. package/dist/genexus-ide-ui/p-66d9269a.entry.js.map +1 -0
  594. package/dist/genexus-ide-ui/{p-45996535.entry.js → p-6dc05a27.entry.js} +3 -4
  595. package/dist/genexus-ide-ui/p-6dc05a27.entry.js.map +1 -0
  596. package/dist/genexus-ide-ui/{p-f51adb3d.entry.js → p-75e1aa31.entry.js} +5 -6
  597. package/dist/genexus-ide-ui/p-75e1aa31.entry.js.map +1 -0
  598. package/dist/genexus-ide-ui/{p-e502c2fd.entry.js → p-7782e1b8.entry.js} +56 -61
  599. package/dist/genexus-ide-ui/p-7782e1b8.entry.js.map +1 -0
  600. package/dist/genexus-ide-ui/{p-1bc2613e.entry.js → p-7cedb0f0.entry.js} +66 -69
  601. package/dist/genexus-ide-ui/p-7cedb0f0.entry.js.map +1 -0
  602. package/dist/genexus-ide-ui/{p-311eedf3.js → p-857866f8.js} +8 -9
  603. package/dist/genexus-ide-ui/p-857866f8.js.map +1 -0
  604. package/dist/genexus-ide-ui/{p-f722955f.entry.js → p-8636a0bd.entry.js} +2 -2
  605. package/dist/genexus-ide-ui/{p-d095a37c.entry.js → p-8b046b4b.entry.js} +9 -10
  606. package/dist/genexus-ide-ui/p-8b046b4b.entry.js.map +1 -0
  607. package/dist/genexus-ide-ui/{p-4b79c3ab.entry.js → p-8f1f4126.entry.js} +10 -12
  608. package/dist/genexus-ide-ui/p-8f1f4126.entry.js.map +1 -0
  609. package/dist/genexus-ide-ui/{p-b2928645.entry.js → p-95f831a8.entry.js} +2 -2
  610. package/dist/genexus-ide-ui/{p-c91af626.entry.js → p-970d16ca.entry.js} +15 -15
  611. package/dist/genexus-ide-ui/{p-c91af626.entry.js.map → p-970d16ca.entry.js.map} +1 -1
  612. package/dist/genexus-ide-ui/{p-35f9ebbc.entry.js → p-9a39e49c.entry.js} +2 -2
  613. package/dist/genexus-ide-ui/{p-e24902a0.entry.js → p-9a9ee1ee.entry.js} +2 -2
  614. package/dist/genexus-ide-ui/{p-bbf88f43.entry.js → p-9b238bf7.entry.js} +173 -180
  615. package/dist/genexus-ide-ui/p-9b238bf7.entry.js.map +1 -0
  616. package/dist/genexus-ide-ui/{p-edf889d2.entry.js → p-9c690c36.entry.js} +13 -16
  617. package/dist/genexus-ide-ui/p-9c690c36.entry.js.map +1 -0
  618. package/dist/genexus-ide-ui/{p-4c717aa7.entry.js → p-a6029d9a.entry.js} +117 -131
  619. package/dist/genexus-ide-ui/p-a6029d9a.entry.js.map +1 -0
  620. package/dist/genexus-ide-ui/{p-833c3585.entry.js → p-a86a8692.entry.js} +33 -39
  621. package/dist/genexus-ide-ui/p-a86a8692.entry.js.map +1 -0
  622. package/dist/genexus-ide-ui/{p-f7421997.entry.js → p-a8cc41e4.entry.js} +58 -61
  623. package/dist/genexus-ide-ui/p-a8cc41e4.entry.js.map +1 -0
  624. package/dist/genexus-ide-ui/{p-767e0f6d.entry.js → p-ac0438d6.entry.js} +11 -12
  625. package/dist/genexus-ide-ui/p-ac0438d6.entry.js.map +1 -0
  626. package/dist/genexus-ide-ui/{p-56331289.entry.js → p-b1833747.entry.js} +38 -45
  627. package/dist/genexus-ide-ui/p-b1833747.entry.js.map +1 -0
  628. package/dist/genexus-ide-ui/{p-6b957e82.entry.js → p-b211bca8.entry.js} +2 -2
  629. package/dist/genexus-ide-ui/{p-84618917.entry.js → p-be794132.entry.js} +229 -236
  630. package/dist/genexus-ide-ui/p-be794132.entry.js.map +1 -0
  631. package/dist/genexus-ide-ui/{p-961bb2cc.entry.js → p-bfd9066c.entry.js} +8 -8
  632. package/dist/genexus-ide-ui/p-bfd9066c.entry.js.map +1 -0
  633. package/dist/genexus-ide-ui/{p-a47d71eb.entry.js → p-c30b2104.entry.js} +9 -11
  634. package/dist/genexus-ide-ui/p-c30b2104.entry.js.map +1 -0
  635. package/dist/genexus-ide-ui/{p-fa18a70c.entry.js → p-c5cca204.entry.js} +17 -20
  636. package/dist/genexus-ide-ui/p-c5cca204.entry.js.map +1 -0
  637. package/dist/genexus-ide-ui/p-cdf8b082.entry.js +338 -0
  638. package/dist/genexus-ide-ui/p-cdf8b082.entry.js.map +1 -0
  639. package/dist/genexus-ide-ui/{p-6d2174ed.entry.js → p-d1cc4724.entry.js} +17 -12
  640. package/dist/genexus-ide-ui/p-d1cc4724.entry.js.map +1 -0
  641. package/dist/genexus-ide-ui/{p-1dd7be84.entry.js → p-daa29451.entry.js} +14 -17
  642. package/dist/genexus-ide-ui/p-daa29451.entry.js.map +1 -0
  643. package/dist/genexus-ide-ui/{p-67762237.entry.js → p-db4750ff.entry.js} +139 -148
  644. package/dist/genexus-ide-ui/p-db4750ff.entry.js.map +1 -0
  645. package/dist/genexus-ide-ui/{p-3085add2.entry.js → p-db4f756a.entry.js} +176 -188
  646. package/dist/genexus-ide-ui/p-db4f756a.entry.js.map +1 -0
  647. package/dist/genexus-ide-ui/{p-05b04291.entry.js → p-e1d75f00.entry.js} +2 -2
  648. package/dist/genexus-ide-ui/{p-05b04291.entry.js.map → p-e1d75f00.entry.js.map} +1 -1
  649. package/dist/genexus-ide-ui/{p-f49bb305.entry.js → p-e26e05c7.entry.js} +12 -18
  650. package/dist/genexus-ide-ui/p-e26e05c7.entry.js.map +1 -0
  651. package/dist/genexus-ide-ui/{p-2b3938b4.entry.js → p-e37e95e7.entry.js} +4 -4
  652. package/dist/genexus-ide-ui/{p-4cbc8a8b.entry.js → p-e5571f49.entry.js} +26 -28
  653. package/dist/genexus-ide-ui/p-e5571f49.entry.js.map +1 -0
  654. package/dist/genexus-ide-ui/p-eb51429c.entry.js +317 -0
  655. package/dist/genexus-ide-ui/p-eb51429c.entry.js.map +1 -0
  656. package/dist/genexus-ide-ui/{p-29a026bb.entry.js → p-ec01c70c.entry.js} +15 -18
  657. package/dist/genexus-ide-ui/p-ec01c70c.entry.js.map +1 -0
  658. package/dist/genexus-ide-ui/{p-5ac47c69.js → p-ede7bd20.js} +6885 -6346
  659. package/dist/genexus-ide-ui/p-ede7bd20.js.map +1 -0
  660. package/dist/genexus-ide-ui/{p-e7fb3ee3.entry.js → p-f2bd9044.entry.js} +2 -2
  661. package/dist/genexus-ide-ui/{p-50f304fe.entry.js → p-f315c6e0.entry.js} +12 -14
  662. package/dist/genexus-ide-ui/{p-50f304fe.entry.js.map → p-f315c6e0.entry.js.map} +1 -1
  663. package/dist/genexus-ide-ui/{p-0550fd5f.entry.js → p-f52bcdac.entry.js} +2 -2
  664. package/dist/genexus-ide-ui/{p-b1851e6b.entry.js → p-f5879a41.entry.js} +3 -3
  665. package/dist/genexus-ide-ui/{p-b1851e6b.entry.js.map → p-f5879a41.entry.js.map} +1 -1
  666. package/dist/genexus-ide-ui/{p-f3f35e5c.entry.js → p-f5a48b33.entry.js} +6 -9
  667. package/dist/genexus-ide-ui/p-f5a48b33.entry.js.map +1 -0
  668. package/dist/genexus-ide-ui/{p-04c6bd23.entry.js → p-f6ceb01a.entry.js} +28 -29
  669. package/dist/genexus-ide-ui/p-f6ceb01a.entry.js.map +1 -0
  670. package/dist/types/common/common.d.ts +1 -1
  671. package/dist/types/components/{_helpers → chat}/chat-container/chat-container.d.ts +13 -2
  672. package/dist/types/components/chat/chat-welcome/chat-welcome.d.ts +39 -0
  673. package/dist/types/components/chat/chat-welcome/gx-ide-assets/chat-welcome/helpers.d.ts +1 -0
  674. package/dist/types/components/{_helpers/chat-container → chat}/code-render.d.ts +1 -1
  675. package/dist/types/components.d.ts +73 -0
  676. package/dist/types/index.d.ts +1 -1
  677. package/dist/types/showcase/chat-container/callbacks.d.ts +1 -1
  678. package/dist/types/showcase/chat-container/chat.showcase.d.ts +15 -0
  679. package/package.json +5 -5
  680. package/dist/cjs/MERCURY_ASSETS-6bbcc011.js +0 -5
  681. package/dist/cjs/MERCURY_ASSETS-6bbcc011.js.map +0 -1
  682. package/dist/cjs/assets-manager-7227a74b.js +0 -7
  683. package/dist/cjs/assets-manager-7227a74b.js.map +0 -1
  684. package/dist/cjs/code-render-db7cb770.js +0 -59
  685. package/dist/cjs/code-render-db7cb770.js.map +0 -1
  686. package/dist/cjs/common-72f91a78.js.map +0 -1
  687. package/dist/cjs/form-validation-178cf461.js.map +0 -1
  688. package/dist/cjs/gx-ide-chat-container.cjs.entry.js +0 -62
  689. package/dist/cjs/gx-ide-chat-container.cjs.entry.js.map +0 -1
  690. package/dist/cjs/helpers-30f109a4.js.map +0 -1
  691. package/dist/cjs/locale-ff30a5f3.js.map +0 -1
  692. package/dist/collection/components/_helpers/chat-container/chat-container.css +0 -204
  693. package/dist/collection/components/_helpers/chat-container/chat-container.js +0 -137
  694. package/dist/collection/components/_helpers/chat-container/chat-container.js.map +0 -1
  695. package/dist/collection/components/_helpers/chat-container/code-render.js +0 -46
  696. package/dist/collection/components/_helpers/chat-container/code-render.js.map +0 -1
  697. package/dist/components/assets-manager.js +0 -5
  698. package/dist/components/assets-manager.js.map +0 -1
  699. package/dist/esm/MERCURY_ASSETS-bbdf7018.js +0 -3
  700. package/dist/esm/MERCURY_ASSETS-bbdf7018.js.map +0 -1
  701. package/dist/esm/assets-manager-0d129105.js +0 -5
  702. package/dist/esm/assets-manager-0d129105.js.map +0 -1
  703. package/dist/esm/code-render-6cbb0e63.js +0 -56
  704. package/dist/esm/code-render-6cbb0e63.js.map +0 -1
  705. package/dist/esm/common-ccb4504a.js.map +0 -1
  706. package/dist/esm/gx-ide-chat-container.entry.js +0 -58
  707. package/dist/esm/gx-ide-chat-container.entry.js.map +0 -1
  708. package/dist/esm/helpers-10479d69.js.map +0 -1
  709. package/dist/esm/locale-e5107fad.js.map +0 -1
  710. package/dist/genexus-ide-ui/p-007173ef.entry.js.map +0 -1
  711. package/dist/genexus-ide-ui/p-04c6bd23.entry.js.map +0 -1
  712. package/dist/genexus-ide-ui/p-1072bf33.entry.js.map +0 -1
  713. package/dist/genexus-ide-ui/p-1a74d49a.entry.js +0 -231
  714. package/dist/genexus-ide-ui/p-1a74d49a.entry.js.map +0 -1
  715. package/dist/genexus-ide-ui/p-1bc2613e.entry.js.map +0 -1
  716. package/dist/genexus-ide-ui/p-1dd7be84.entry.js.map +0 -1
  717. package/dist/genexus-ide-ui/p-289c3290.js.map +0 -1
  718. package/dist/genexus-ide-ui/p-29a026bb.entry.js.map +0 -1
  719. package/dist/genexus-ide-ui/p-3085add2.entry.js.map +0 -1
  720. package/dist/genexus-ide-ui/p-311eedf3.js.map +0 -1
  721. package/dist/genexus-ide-ui/p-31beae9e.entry.js.map +0 -1
  722. package/dist/genexus-ide-ui/p-45996535.entry.js.map +0 -1
  723. package/dist/genexus-ide-ui/p-4b79c3ab.entry.js.map +0 -1
  724. package/dist/genexus-ide-ui/p-4c717aa7.entry.js.map +0 -1
  725. package/dist/genexus-ide-ui/p-4cbc8a8b.entry.js.map +0 -1
  726. package/dist/genexus-ide-ui/p-530c32aa.entry.js.map +0 -1
  727. package/dist/genexus-ide-ui/p-56331289.entry.js.map +0 -1
  728. package/dist/genexus-ide-ui/p-5ac47c69.js.map +0 -1
  729. package/dist/genexus-ide-ui/p-67762237.entry.js.map +0 -1
  730. package/dist/genexus-ide-ui/p-68969051.entry.js.map +0 -1
  731. package/dist/genexus-ide-ui/p-6d2174ed.entry.js.map +0 -1
  732. package/dist/genexus-ide-ui/p-6e4208d8.js +0 -9
  733. package/dist/genexus-ide-ui/p-6e4208d8.js.map +0 -1
  734. package/dist/genexus-ide-ui/p-767e0f6d.entry.js.map +0 -1
  735. package/dist/genexus-ide-ui/p-76c3fc51.entry.js.map +0 -1
  736. package/dist/genexus-ide-ui/p-833c3585.entry.js.map +0 -1
  737. package/dist/genexus-ide-ui/p-84618917.entry.js.map +0 -1
  738. package/dist/genexus-ide-ui/p-961bb2cc.entry.js.map +0 -1
  739. package/dist/genexus-ide-ui/p-9a609b51.js.map +0 -1
  740. package/dist/genexus-ide-ui/p-9ddea83b.js +0 -146
  741. package/dist/genexus-ide-ui/p-9ddea83b.js.map +0 -1
  742. package/dist/genexus-ide-ui/p-a1d73ca3.entry.js.map +0 -1
  743. package/dist/genexus-ide-ui/p-a47d71eb.entry.js.map +0 -1
  744. package/dist/genexus-ide-ui/p-ba7d1472.entry.js.map +0 -1
  745. package/dist/genexus-ide-ui/p-bbf88f43.entry.js.map +0 -1
  746. package/dist/genexus-ide-ui/p-be8a59fd.js +0 -107
  747. package/dist/genexus-ide-ui/p-be8a59fd.js.map +0 -1
  748. package/dist/genexus-ide-ui/p-c747afac.entry.js.map +0 -1
  749. package/dist/genexus-ide-ui/p-d095a37c.entry.js.map +0 -1
  750. package/dist/genexus-ide-ui/p-db9c3b37.entry.js +0 -85
  751. package/dist/genexus-ide-ui/p-db9c3b37.entry.js.map +0 -1
  752. package/dist/genexus-ide-ui/p-de7f0c1f.entry.js.map +0 -1
  753. package/dist/genexus-ide-ui/p-ded7444c.entry.js.map +0 -1
  754. package/dist/genexus-ide-ui/p-e502c2fd.entry.js.map +0 -1
  755. package/dist/genexus-ide-ui/p-edf889d2.entry.js.map +0 -1
  756. package/dist/genexus-ide-ui/p-eea944d4.entry.js.map +0 -1
  757. package/dist/genexus-ide-ui/p-f3f35e5c.entry.js.map +0 -1
  758. package/dist/genexus-ide-ui/p-f49bb305.entry.js.map +0 -1
  759. package/dist/genexus-ide-ui/p-f51adb3d.entry.js.map +0 -1
  760. package/dist/genexus-ide-ui/p-f7421997.entry.js.map +0 -1
  761. package/dist/genexus-ide-ui/p-fa18a70c.entry.js.map +0 -1
  762. package/dist/genexus-ide-ui/p-fcecdafa.entry.js.map +0 -1
  763. package/dist/genexus-ide-ui/p-fdf41406.entry.js.map +0 -1
  764. package/dist/genexus-ide-ui/p-fe490103.entry.js.map +0 -1
  765. package/dist/genexus-ide-ui/p-fecc50e4.entry.js.map +0 -1
  766. /package/dist/genexus-ide-ui/{p-d8379699.entry.js.map → p-02fc47cd.entry.js.map} +0 -0
  767. /package/dist/genexus-ide-ui/{p-14165308.entry.js.map → p-2be58a7a.entry.js.map} +0 -0
  768. /package/dist/genexus-ide-ui/{p-b58fb87b.entry.js.map → p-39c527ff.entry.js.map} +0 -0
  769. /package/dist/genexus-ide-ui/{p-4b38fffc.entry.js.map → p-4d929210.entry.js.map} +0 -0
  770. /package/dist/genexus-ide-ui/{p-f722955f.entry.js.map → p-8636a0bd.entry.js.map} +0 -0
  771. /package/dist/genexus-ide-ui/{p-b2928645.entry.js.map → p-95f831a8.entry.js.map} +0 -0
  772. /package/dist/genexus-ide-ui/{p-35f9ebbc.entry.js.map → p-9a39e49c.entry.js.map} +0 -0
  773. /package/dist/genexus-ide-ui/{p-e24902a0.entry.js.map → p-9a9ee1ee.entry.js.map} +0 -0
  774. /package/dist/genexus-ide-ui/{p-6b957e82.entry.js.map → p-b211bca8.entry.js.map} +0 -0
  775. /package/dist/genexus-ide-ui/{p-2b3938b4.entry.js.map → p-e37e95e7.entry.js.map} +0 -0
  776. /package/dist/genexus-ide-ui/{p-e7fb3ee3.entry.js.map → p-f2bd9044.entry.js.map} +0 -0
  777. /package/dist/genexus-ide-ui/{p-0550fd5f.entry.js.map → p-f52bcdac.entry.js.map} +0 -0
@@ -8,10 +8,10 @@ const LANG_PREFIX = ".lang.";
8
8
  const LANG_EXTENSION = ".json";
9
9
  class Locale {
10
10
  static getLang() {
11
- var _a, _b;
12
- const lang = (_b = (_a = document
11
+ const lang = document
13
12
  .getElementsByTagName("html")[0]
14
- .getAttribute("lang")) === null || _a === void 0 ? void 0 : _a.valueOf()) !== null && _b !== void 0 ? _b : DEFAULT_LANGUAGE;
13
+ .getAttribute("lang")
14
+ ?.valueOf() ?? DEFAULT_LANGUAGE;
15
15
  // Normalize en-US
16
16
  return lang === "en-US" ? "en" : lang;
17
17
  }
@@ -50,4 +50,4 @@ Locale.commonAssetsPath = "";
50
50
 
51
51
  exports.Locale = Locale;
52
52
 
53
- //# sourceMappingURL=locale-ff30a5f3.js.map
53
+ //# sourceMappingURL=locale-36b93b1b.js.map
@@ -0,0 +1 @@
1
+ {"file":"locale-36b93b1b.js","mappings":";;AAEA,MAAM,aAAa,GAAG,gBAAgB,CAAC;AACvC,MAAM,gBAAgB,GAAG,SAAS,CAAC;AACnC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC9B,MAAM,YAAY,GAAG,QAAQ,CAAC;AAC9B,MAAM,WAAW,GAAG,QAAQ,CAAC;AAC7B,MAAM,cAAc,GAAG,OAAO,CAAC;MAElB,MAAM;IAGT,OAAO,OAAO;QACpB,MAAM,IAAI,GACR,QAAQ;aACL,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aAC/B,YAAY,CAAC,MAAM,CAAC;cACnB,OAAO,EAAE,IAAI,gBAAgB,CAAC;;QAGpC,OAAO,IAAI,KAAK,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;KACvC;IAEO,OAAO,UAAU,CACvB,SAAiB,EACjB,IAAY,EACZ,MAAc;QAEd,IAAI,MAAM,KAAK,EAAE,EAAE;YACjB,MAAM,GAAG,GAAG,SAAS,GAAG,CAAC;SAC1B;QACD,MAAM,IAAI,GACR,GAAG,aAAa,GAAG,MAAM,GAAG,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,IAAI,GAAG,cAAc,EAAW,CAAC;QAExG,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM;YACjC,KAAK,CAAsC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ;gBAC5D,IAAI,QAAQ,CAAC,EAAE,EAAE;oBACf,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;iBAC1B;qBAAM;oBACL,MAAM,EAAE,CAAC;iBACV;aACF,EAAE,MAAM,CAAC,CAAC;SACZ,CAAC,CAAC;KACJ;IAEM,aAAa,mBAAmB,CACrC,OAAoB,EACpB,MAAM,GAAG,EAAE,EACX,SAAS,GAAG,EAAE;QAEd,IAAI,SAAS,KAAK,EAAE,EAAE;YACpB,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;SACzE;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9B,OAAO,MAAM,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;KACzD;IAEM,OAAO,MAAM,CAAC,IAAY,EAAE,KAAe;QAChD,IAAI,GAAG,GAAW,IAAI,CAAC;QACvB,KAAK,CAAC,OAAO,CAAC,IAAI;YAChB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;SACrD,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;KACZ;;AArDa,uBAAgB,GAAG,EAAE;;;;","names":[],"sources":["src/common/locale.ts"],"sourcesContent":["import { Build } from \"@stencil/core\";\n\nconst ASSETS_FOLDER = \"gx-ide-assets/\";\nconst COMPONENT_PREFIX = \"gx-ide-\";\nconst DEFAULT_LANGUAGE = \"en\";\nconst LANGS_FOLDER = \"langs/\";\nconst LANG_PREFIX = \".lang.\";\nconst LANG_EXTENSION = \".json\";\n\nexport class Locale {\n public static commonAssetsPath = \"\";\n\n private static getLang(): string {\n const lang =\n document\n .getElementsByTagName(\"html\")[0]\n .getAttribute(\"lang\")\n ?.valueOf() ?? DEFAULT_LANGUAGE;\n\n // Normalize en-US\n return lang === \"en-US\" ? \"en\" : lang;\n }\n\n private static getStrings(\n component: string,\n lang: string,\n folder: string\n ): Promise<any> {\n if (folder === \"\") {\n folder = `${component}/`;\n }\n const path =\n `${ASSETS_FOLDER}${folder}${LANGS_FOLDER}${component}${LANG_PREFIX}${lang}${LANG_EXTENSION}` as const;\n\n return new Promise((resolve, reject): void => {\n fetch(Build.isTesting ? \"/build/\" + path : path).then(langFile => {\n if (langFile.ok) {\n resolve(langFile.json());\n } else {\n reject();\n }\n }, reject);\n });\n }\n\n public static async getComponentStrings(\n element: HTMLElement,\n folder = \"\",\n component = \"\"\n ): Promise<any> {\n if (component === \"\") {\n component = element.tagName.toLowerCase().replace(COMPONENT_PREFIX, \"\");\n }\n const lang = Locale.getLang();\n return await Locale.getStrings(component, lang, folder);\n }\n\n public static format(text: string, parms: string[]): string {\n let ret: string = text;\n parms.forEach(parm => {\n ret = ret.replace(`{${parms.indexOf(parm)}}`, parm);\n });\n return ret;\n }\n}\n"],"version":3}
@@ -56,7 +56,6 @@
56
56
  "components/ww-files/ww-files.js",
57
57
  "components/ww-images/ww-images.js",
58
58
  "components/_helpers/card/card.js",
59
- "components/_helpers/chat-container/chat-container.js",
60
59
  "components/_helpers/empty-state/gx-ide-empty-state.js",
61
60
  "components/_helpers/entity-selector/entity-selector.js",
62
61
  "components/_helpers/status-buttons/gx-ide-status-buttons.js",
@@ -65,6 +64,8 @@
65
64
  "components/_helpers/top-bar/top-bar.js",
66
65
  "components/_starting-template/template.js",
67
66
  "components/_test/test.js",
67
+ "components/chat/chat-container/chat-container.js",
68
+ "components/chat/chat-welcome/chat-welcome.js",
68
69
  "components/file-uploader/file-uploader.js",
69
70
  "components/file-uploader/file-item/file-item.js",
70
71
  "components/kb-manager-export/kb-manager-export.js",
@@ -52,7 +52,7 @@ export const renderModuleDataProperties = (options) => {
52
52
  * @returns The first option in the array that is 'selected'. If no one found it returns null.
53
53
  */
54
54
  export const getSelectedGxOption = (gxOptions, onlyId = true) => {
55
- if ((gxOptions === null || gxOptions === void 0 ? void 0 : gxOptions.length) > 0) {
55
+ if (gxOptions?.length > 0) {
56
56
  let found = null;
57
57
  for (let i = 0; i < gxOptions.length; i++) {
58
58
  if (gxOptions[i].selected) {
@@ -88,18 +88,28 @@ export const getSelectedItem = (gxOptions) => {
88
88
  return gxOptions[0].id;
89
89
  }
90
90
  };
91
- export const getSelectedItem2 = (gxOptions) => {
92
- var _a;
93
- return gxOptions
94
- ? ((_a = gxOptions.find(item => item.selected)) !== null && _a !== void 0 ? _a : gxOptions[0]).id
95
- : undefined;
96
- };
91
+ export const getSelectedItem2 = (gxOptions) => gxOptions
92
+ ? (gxOptions.find(item => item.selected) ?? gxOptions[0]).id
93
+ : undefined;
97
94
  // Dots animation used in ch-chat code-render (or other components)
98
- export const ANIMATION_DOTS = (size = "regular", color = "primary") => {
99
- const n = size === "regular" ? 1 : 4;
100
- const colorVar = color === "primary"
101
- ? "var(--mer-color__primary--200)"
102
- : "var(--mer-text__on-surface)";
103
- return (h("svg", { width: 36 / n, height: 8 / n, fill: "transparent" }, h("circle", { cx: 4 / n, cy: 4 / n, r: 4 / n, opacity: "0", fill: colorVar }, h("animate", { attributeName: "opacity", values: "0;1;0", dur: "1s", repeatCount: "indefinite" })), h("circle", { cx: 18 / n, cy: 4 / n, r: 4 / n, opacity: "0", fill: colorVar }, h("animate", { attributeName: "opacity", values: "0;1;0", dur: "1s", begin: "0.15s", repeatCount: "indefinite" })), h("circle", { cx: 32 / n, cy: 4 / n, r: 4 / n, opacity: "0", fill: colorVar }, h("animate", { attributeName: "opacity", values: "0;1;0", dur: "1s", begin: "0.30s", repeatCount: "indefinite" }))));
95
+ export const ANIMATION_DOTS = (size = "regular", color = "primary", sizeType = "dynamic", duration = "1s") => {
96
+ const n = size === "regular" ? 1.5 : 4;
97
+ let colorDot1, colorDot2, colorDot3;
98
+ if (color === "nexa") {
99
+ colorDot1 = "#5ba7ff";
100
+ colorDot2 = "#00CCFF";
101
+ colorDot3 = "#CF7AFF";
102
+ }
103
+ else if (color === "on-surface") {
104
+ colorDot1 = colorDot2 = colorDot3 = "var(--mer-text__on-surface)";
105
+ }
106
+ else {
107
+ // primary
108
+ colorDot1 = colorDot2 = colorDot3 = "var(--mer-color__primary--200)";
109
+ }
110
+ const animateRadiusSize = (begin = "0") => {
111
+ return (h("animate", { attributeName: "r", values: `${2 / n};${4 / n};${2 / n}`, dur: duration, begin: begin, repeatCount: "indefinite" }));
112
+ };
113
+ return (h("svg", { width: 36 / n, height: 8 / n, fill: "transparent" }, h("circle", { cx: 4 / n, cy: 4 / n, r: 4 / n, opacity: "0", fill: colorDot1 }, h("animate", { attributeName: "opacity", values: "0;1;0", dur: duration, repeatCount: "indefinite" }), sizeType === "dynamic" ? animateRadiusSize("0") : null), h("circle", { cx: 18 / n, cy: 4 / n, r: 4 / n, opacity: "0", fill: colorDot2 }, h("animate", { attributeName: "opacity", values: "0;1;0", dur: duration, begin: "0.15s", repeatCount: "indefinite" }), sizeType === "dynamic" ? animateRadiusSize("0.33s") : null), h("circle", { cx: 32 / n, cy: 4 / n, r: 4 / n, opacity: "0", fill: colorDot3 }, h("animate", { attributeName: "opacity", values: "0;1;0", dur: duration, begin: "0.30s", repeatCount: "indefinite" }), sizeType === "dynamic" ? animateRadiusSize("0.66s") : null)));
104
114
  };
105
115
  //# sourceMappingURL=common.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/common/common.tsx"],"names":[],"mappings":"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","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"]}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/common/common.tsx"],"names":[],"mappings":"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","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\" | \"nexa\" = \"primary\",\n sizeType: \"static\" | \"dynamic\" = \"dynamic\",\n duration: string = \"1s\"\n): SVGElement => {\n const n = size === \"regular\" ? 1.5 : 4;\n let colorDot1, colorDot2, colorDot3;\n if (color === \"nexa\") {\n colorDot1 = \"#5ba7ff\";\n colorDot2 = \"#00CCFF\";\n colorDot3 = \"#CF7AFF\";\n } else if (color === \"on-surface\") {\n colorDot1 = colorDot2 = colorDot3 = \"var(--mer-text__on-surface)\";\n } else {\n // primary\n colorDot1 = colorDot2 = colorDot3 = \"var(--mer-color__primary--200)\";\n }\n\n const animateRadiusSize = (begin: string = \"0\") => {\n return (\n <animate\n attributeName=\"r\"\n values={`${2 / n};${4 / n};${2 / n}`}\n dur={duration}\n begin={begin}\n repeatCount=\"indefinite\"\n />\n );\n };\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={colorDot1}>\n <animate\n attributeName=\"opacity\"\n values=\"0;1;0\"\n dur={duration}\n repeatCount=\"indefinite\"\n />\n {sizeType === \"dynamic\" ? animateRadiusSize(\"0\") : null}\n </circle>\n <circle cx={18 / n} cy={4 / n} r={4 / n} opacity=\"0\" fill={colorDot2}>\n <animate\n attributeName=\"opacity\"\n values=\"0;1;0\"\n dur={duration}\n begin=\"0.15s\"\n repeatCount=\"indefinite\"\n />\n {sizeType === \"dynamic\" ? animateRadiusSize(\"0.33s\") : null}\n </circle>\n <circle cx={32 / n} cy={4 / n} r={4 / n} opacity=\"0\" fill={colorDot3}>\n <animate\n attributeName=\"opacity\"\n values=\"0;1;0\"\n dur={duration}\n begin=\"0.30s\"\n repeatCount=\"indefinite\"\n />\n {sizeType === \"dynamic\" ? animateRadiusSize(\"0.66s\") : null}\n </circle>\n </svg>\n );\n};\n"]}
@@ -1,7 +1,6 @@
1
1
  // formSubmitValidation will be deprecated. use "validateControls" instead.
2
2
  export const formSubmitValidation = (result, ref) => {
3
- var _a;
4
- (_a = result.fieldErrors) === null || _a === void 0 ? void 0 : _a.forEach(element => {
3
+ result.fieldErrors?.forEach(element => {
5
4
  const key = element.key;
6
5
  const message = element.message;
7
6
  const hasError = element.hasError;
@@ -38,10 +37,14 @@ export const validateControls = (formSubmitResult, validatableControls) => {
38
37
  const fieldKey = fieldResult.key;
39
38
  const fieldHasError = fieldResult.hasError;
40
39
  const controlMapRecord = validatableControlsUpdated.get(fieldKey);
41
- if (controlMapRecord === null || controlMapRecord === void 0 ? void 0 : controlMapRecord.reference) {
40
+ if (controlMapRecord?.reference) {
42
41
  // toggle class to add or remove error style
43
42
  toggleErrorClass(fieldHasError, controlMapRecord.reference);
44
- validatableControlsUpdated.set(fieldKey, Object.assign(Object.assign({}, controlMapRecord), { hasError: fieldHasError, message: fieldResult.message }));
43
+ validatableControlsUpdated.set(fieldKey, {
44
+ ...controlMapRecord,
45
+ hasError: fieldHasError,
46
+ message: fieldResult.message
47
+ });
45
48
  }
46
49
  });
47
50
  // return validatableControls updated.
@@ -1 +1 @@
1
- {"version":3,"file":"form-validation.js","sourceRoot":"","sources":["../../src/common/form-validation.ts"],"names":[],"mappings":"AAGA,2EAA2E;AAC3E,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,MAA+C,EAC/C,GAAQ,EACR,EAAE;;IACF,MAAA,MAAM,CAAC,WAAW,0CAAE,OAAO,CAAC,OAAO,CAAC,EAAE;QACpC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACxB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAElC,MAAM,SAAS,GAAkB,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;QACjD,IAAI,SAAS,IAAI,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE;YAC3C,SAAS,CAAC,gBAAgB,GAAG,OAAO,CAAC;YACrC,SAAS,CAAC,iBAAiB,GAAG,OAAO,CAAC;SACvC;aAAM,IAAI,SAAS,IAAI,CAAC,QAAQ,EAAE;YACjC,SAAS,CAAC,gBAAgB,GAAG,eAAe,CAAC;YAC7C,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC;SACpC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,sFAAsF;AACtF,MAAM,kCAAkC,GAAG;IACzC,aAAa,EAAE,gBAAgB;IAC/B,qBAAqB,EAAE,iBAAiB;IACxC,SAAS,EAAE,aAAa;CAChB,CAAC;AAEX,MAAM,gBAAgB,GAAG,CAAC,QAAiB,EAAE,OAAoB,EAAE,EAAE;IACnE,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IACrD,MAAM,UAAU,GACd,kCAAkC,CAChC,cAAiE,CAClE,CAAC;IACJ,IAAI,QAAQ,EAAE;QACZ,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KACnC;SAAM;QACL,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;KACtC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,gBAAkC,EAClC,mBAAmD,EACnB,EAAE;IAClC,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAChE,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QACjD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC;QACjC,MAAM,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAC;QAC3C,MAAM,gBAAgB,GAAG,0BAA0B,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClE,IAAI,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,SAAS,EAAE;YAC/B,4CAA4C;YAC5C,gBAAgB,CAAC,aAAa,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAC5D,0BAA0B,CAAC,GAAG,CAAC,QAAQ,kCAClC,gBAAgB,KACnB,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,WAAW,CAAC,OAAO,IAC5B,CAAC;SACJ;IACH,CAAC,CAAC,CAAC;IACH,sCAAsC;IACtC,OAAO,0BAA0B,CAAC;AACpC,CAAC,CAAC","sourcesContent":["import { FormSubmitResult, ConnectionResultData } from \"../common/types\";\nimport { FormComponent } from \"@genexus/gemini/dist/types/common/interfaces\";\n\n// formSubmitValidation will be deprecated. use \"validateControls\" instead.\nexport const formSubmitValidation = (\n result: FormSubmitResult | ConnectionResultData,\n ref: any\n) => {\n result.fieldErrors?.forEach(element => {\n const key = element.key;\n const message = element.message;\n const hasError = element.hasError;\n\n const reference: FormComponent = ref[`${key}El`];\n if (reference && hasError && message.trim()) {\n reference.validationStatus = \"error\";\n reference.validationMessage = message;\n } else if (reference && !hasError) {\n reference.validationStatus = \"indeterminate\";\n reference.validationMessage = null;\n }\n });\n};\n\n// TODO: Improve the way we mark components with error. We must not use error classes.\nconst formElementsErrorClassesDictionary = {\n \"ch-checkbox\": \"checkbox-error\",\n \"ch-combo-box-render\": \"combo-box-error\",\n \"ch-edit\": \"input-error\"\n} as const;\n\nconst toggleErrorClass = (hasError: boolean, element: HTMLElement) => {\n const elementTagName = element.tagName.toLowerCase();\n const errorClass =\n formElementsErrorClassesDictionary[\n elementTagName as keyof typeof formElementsErrorClassesDictionary\n ];\n if (hasError) {\n element.classList.add(errorClass);\n } else {\n element.classList.remove(errorClass);\n }\n};\n\nexport const validateControls = (\n formSubmitResult: FormSubmitResult,\n validatableControls: Map<string, ControlValidation>\n): Map<string, ControlValidation> => {\n const validatableControlsUpdated = new Map(validatableControls);\n formSubmitResult.fieldErrors.forEach(fieldResult => {\n const fieldKey = fieldResult.key;\n const fieldHasError = fieldResult.hasError;\n const controlMapRecord = validatableControlsUpdated.get(fieldKey);\n if (controlMapRecord?.reference) {\n // toggle class to add or remove error style\n toggleErrorClass(fieldHasError, controlMapRecord.reference);\n validatableControlsUpdated.set(fieldKey, {\n ...controlMapRecord,\n hasError: fieldHasError,\n message: fieldResult.message\n });\n }\n });\n // return validatableControls updated.\n return validatableControlsUpdated;\n};\n\nexport type ControlValidation = {\n reference: HTMLElement;\n hasError: boolean;\n message: string;\n};\n"]}
1
+ {"version":3,"file":"form-validation.js","sourceRoot":"","sources":["../../src/common/form-validation.ts"],"names":[],"mappings":"AAGA,2EAA2E;AAC3E,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,MAA+C,EAC/C,GAAQ,EACR,EAAE;IACF,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;QACpC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACxB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAElC,MAAM,SAAS,GAAkB,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;QACjD,IAAI,SAAS,IAAI,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE;YAC3C,SAAS,CAAC,gBAAgB,GAAG,OAAO,CAAC;YACrC,SAAS,CAAC,iBAAiB,GAAG,OAAO,CAAC;SACvC;aAAM,IAAI,SAAS,IAAI,CAAC,QAAQ,EAAE;YACjC,SAAS,CAAC,gBAAgB,GAAG,eAAe,CAAC;YAC7C,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC;SACpC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,sFAAsF;AACtF,MAAM,kCAAkC,GAAG;IACzC,aAAa,EAAE,gBAAgB;IAC/B,qBAAqB,EAAE,iBAAiB;IACxC,SAAS,EAAE,aAAa;CAChB,CAAC;AAEX,MAAM,gBAAgB,GAAG,CAAC,QAAiB,EAAE,OAAoB,EAAE,EAAE;IACnE,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IACrD,MAAM,UAAU,GACd,kCAAkC,CAChC,cAAiE,CAClE,CAAC;IACJ,IAAI,QAAQ,EAAE;QACZ,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KACnC;SAAM;QACL,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;KACtC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,gBAAkC,EAClC,mBAAmD,EACnB,EAAE;IAClC,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAChE,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QACjD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC;QACjC,MAAM,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAC;QAC3C,MAAM,gBAAgB,GAAG,0BAA0B,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClE,IAAI,gBAAgB,EAAE,SAAS,EAAE;YAC/B,4CAA4C;YAC5C,gBAAgB,CAAC,aAAa,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAC5D,0BAA0B,CAAC,GAAG,CAAC,QAAQ,EAAE;gBACvC,GAAG,gBAAgB;gBACnB,QAAQ,EAAE,aAAa;gBACvB,OAAO,EAAE,WAAW,CAAC,OAAO;aAC7B,CAAC,CAAC;SACJ;IACH,CAAC,CAAC,CAAC;IACH,sCAAsC;IACtC,OAAO,0BAA0B,CAAC;AACpC,CAAC,CAAC","sourcesContent":["import { FormSubmitResult, ConnectionResultData } from \"../common/types\";\nimport { FormComponent } from \"@genexus/gemini/dist/types/common/interfaces\";\n\n// formSubmitValidation will be deprecated. use \"validateControls\" instead.\nexport const formSubmitValidation = (\n result: FormSubmitResult | ConnectionResultData,\n ref: any\n) => {\n result.fieldErrors?.forEach(element => {\n const key = element.key;\n const message = element.message;\n const hasError = element.hasError;\n\n const reference: FormComponent = ref[`${key}El`];\n if (reference && hasError && message.trim()) {\n reference.validationStatus = \"error\";\n reference.validationMessage = message;\n } else if (reference && !hasError) {\n reference.validationStatus = \"indeterminate\";\n reference.validationMessage = null;\n }\n });\n};\n\n// TODO: Improve the way we mark components with error. We must not use error classes.\nconst formElementsErrorClassesDictionary = {\n \"ch-checkbox\": \"checkbox-error\",\n \"ch-combo-box-render\": \"combo-box-error\",\n \"ch-edit\": \"input-error\"\n} as const;\n\nconst toggleErrorClass = (hasError: boolean, element: HTMLElement) => {\n const elementTagName = element.tagName.toLowerCase();\n const errorClass =\n formElementsErrorClassesDictionary[\n elementTagName as keyof typeof formElementsErrorClassesDictionary\n ];\n if (hasError) {\n element.classList.add(errorClass);\n } else {\n element.classList.remove(errorClass);\n }\n};\n\nexport const validateControls = (\n formSubmitResult: FormSubmitResult,\n validatableControls: Map<string, ControlValidation>\n): Map<string, ControlValidation> => {\n const validatableControlsUpdated = new Map(validatableControls);\n formSubmitResult.fieldErrors.forEach(fieldResult => {\n const fieldKey = fieldResult.key;\n const fieldHasError = fieldResult.hasError;\n const controlMapRecord = validatableControlsUpdated.get(fieldKey);\n if (controlMapRecord?.reference) {\n // toggle class to add or remove error style\n toggleErrorClass(fieldHasError, controlMapRecord.reference);\n validatableControlsUpdated.set(fieldKey, {\n ...controlMapRecord,\n hasError: fieldHasError,\n message: fieldResult.message\n });\n }\n });\n // return validatableControls updated.\n return validatableControlsUpdated;\n};\n\nexport type ControlValidation = {\n reference: HTMLElement;\n hasError: boolean;\n message: string;\n};\n"]}
@@ -13,14 +13,13 @@ const daysOfWeek = [
13
13
  * @returns an alphabetically ordered array of all the parts and exportparts the element contains.
14
14
  */
15
15
  export const getElementSelectorParts = (element) => {
16
- var _a, _b;
17
16
  const queries = [];
18
- const elementParts = (_a = element.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll(`[part]`);
19
- const elementExportParts = (_b = element.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelectorAll(`[exportparts]`);
20
- elementParts === null || elementParts === void 0 ? void 0 : elementParts.forEach(el => {
17
+ const elementParts = element.shadowRoot?.querySelectorAll(`[part]`);
18
+ const elementExportParts = element.shadowRoot?.querySelectorAll(`[exportparts]`);
19
+ elementParts?.forEach(el => {
21
20
  queries.push(`${element.tagName.toLowerCase()}::part(${el.getAttribute("part")})`);
22
21
  });
23
- elementExportParts === null || elementExportParts === void 0 ? void 0 : elementExportParts.forEach(el => {
22
+ elementExportParts?.forEach(el => {
24
23
  queries.push(...[
25
24
  ...el.getAttribute("exportparts").matchAll(/(?:[\w-]+:)?([\w-]+)/g)
26
25
  ].map(item => `${element.tagName.toLowerCase()}::part(${item[1]})`));
@@ -87,7 +86,6 @@ const isYesterday = (date) => {
87
86
  return false;
88
87
  };
89
88
  export const formatDate = (date, type = "date-time") => {
90
- var _a;
91
89
  let formattedDate;
92
90
  // validate date
93
91
  // undefined or null
@@ -100,9 +98,10 @@ export const formatDate = (date, type = "date-time") => {
100
98
  return "Invalid date";
101
99
  }
102
100
  let locale = "en-US";
103
- const lang = (_a = document
101
+ const lang = document
104
102
  .getElementsByTagName("html")[0]
105
- .getAttribute("lang")) === null || _a === void 0 ? void 0 : _a.valueOf();
103
+ .getAttribute("lang")
104
+ ?.valueOf();
106
105
  if (lang === "es") {
107
106
  locale = "es-ES";
108
107
  }
@@ -219,8 +218,8 @@ export const mapOptionsToComboBoxItemModel = (options) => options.map(option =>
219
218
  // startImgSrc: option.iconName
220
219
  }));
221
220
  export const renderChCheckboxItems = (options, frontEndCheckboxInputHandler, checkedIds) => {
222
- return options === null || options === void 0 ? void 0 : options.map(option => {
223
- const value = checkedIds === null || checkedIds === void 0 ? void 0 : checkedIds.find(id => option.value === id || option.id === id);
221
+ return options?.map(option => {
222
+ const value = checkedIds?.find(id => option.value === id || option.id === id);
224
223
  return (h("ch-checkbox", { name: option.name, class: "checkbox", checkedValue: option.value || option.id, caption: option.label, disabled: option.disabled, value: value, onInput: frontEndCheckboxInputHandler, startImgSrc: option.iconName, key: option.value || option.id }));
225
224
  });
226
225
  };
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/common/helpers.tsx"],"names":[],"mappings":"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","sourcesContent":["import { h } from \"@stencil/core\";\n\nimport {\n ChCheckboxCustomEvent,\n ComboBoxModel,\n TreeViewItemModel\n} from \"@genexus/chameleon-controls-library\";\nexport type ChCheckboxArray = HTMLChCheckboxElement[] | null;\n\nimport { GxOption } from \"./types\";\n\nconst daysOfWeek = [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\"\n];\n\n/**\n * @param element an HTMLElement\n * @returns an alphabetically ordered array of all the parts and exportparts the element contains.\n */\nexport const getElementSelectorParts = (element: HTMLElement) => {\n const queries: string[] = [];\n const elementParts = element.shadowRoot?.querySelectorAll(`[part]`);\n const elementExportParts =\n element.shadowRoot?.querySelectorAll(`[exportparts]`);\n\n elementParts?.forEach(el => {\n queries.push(\n `${element.tagName.toLowerCase()}::part(${el.getAttribute(\"part\")})`\n );\n });\n elementExportParts?.forEach(el => {\n queries.push(\n ...[\n ...el.getAttribute(\"exportparts\").matchAll(/(?:[\\w-]+:)?([\\w-]+)/g)\n ].map(item => `${element.tagName.toLowerCase()}::part(${item[1]})`)\n );\n });\n\n return queries.sort();\n};\n\n/**\n * @param selector a part selector\n * @returns A reference to the element the part belongs to.\n */\nexport const querySelectorPart = (selector: string) => {\n const querySelectorDeep = (\n element: HTMLElement,\n parts: string\n ): HTMLElement => {\n const shadow = element.shadowRoot;\n const partList = parts.split(\" \");\n\n const partElement: HTMLElement = shadow.querySelector(\n partList.map(partName => `[part~=\"${partName}\"]`).join(\"\")\n );\n if (partElement) {\n return partElement;\n }\n\n const exportPartElement: HTMLElement = shadow.querySelector(\n partList.map(partName => `[exportparts*=\"${partName}\"]`).join(\"\")\n );\n if (exportPartElement) {\n const exportPartList: string[] = [];\n const exportparts = exportPartElement.getAttribute(\"exportparts\");\n\n partList.forEach(partItem => {\n const exportPartName = exportparts.match(\n `(?:([\\\\w-]+):)?(${partItem})`\n )[1];\n if (exportPartName) {\n exportPartList.push(exportPartName);\n }\n });\n\n if (partList.length === exportPartList.length) {\n return querySelectorDeep(exportPartElement, exportPartList.join(\" \"));\n }\n }\n\n return null;\n };\n\n const selectorItems = selector.match(\"(.*)::part\\\\(([^)]+)\\\\)\");\n const entity = selectorItems[1];\n const partName = selectorItems[2];\n\n return querySelectorDeep(document.querySelector(entity), partName);\n};\n\nconst daysFromToday = (date: Date): number => {\n const today = new Date();\n // To calculate the time difference of two dates\n const timeDifference = today.getTime() - date.getTime();\n // To calculate the no. of days between two dates\n const daysDifference = timeDifference / (1000 * 3600 * 24);\n return Math.floor(daysDifference);\n};\n\n// - - - - - - - - - - - -\n// Date Functions\n// - - - - - - - - - - - -\n\nconst isToday = (date: Date): boolean => {\n const today = new Date();\n if (today.toDateString() === date.toDateString()) {\n return true;\n }\n return false;\n};\n\nconst isYesterday = (date: Date): boolean => {\n const yesterday = new Date();\n yesterday.setDate(yesterday.getDate() - 1);\n if (yesterday.toDateString() === date.toDateString()) {\n return true;\n }\n return false;\n};\n\nexport const formatDate = (\n date: Date,\n type: FormatDateType = \"date-time\"\n): string => {\n let formattedDate;\n // validate date\n // undefined or null\n if (date === undefined || date === null) {\n return \"\";\n }\n // If the date object is invalid it will return 'NaN' on getTime() and NaN is never equal to itself\n const dateIsValid = date.getTime() === date.getTime();\n if (!dateIsValid) {\n return \"Invalid date\";\n }\n let locale = \"en-US\";\n const lang = document\n .getElementsByTagName(\"html\")[0]\n .getAttribute(\"lang\")\n ?.valueOf();\n if (lang === \"es\") {\n locale = \"es-ES\";\n }\n formattedDate = date.toLocaleDateString(locale);\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const day = String(date.getDate()).padStart(2, \"0\");\n const hours = String(date.getHours()).padStart(2, \"0\");\n const minutes = String(date.getMinutes()).padStart(2, \"0\");\n const time = `${hours}:${minutes}`;\n if (type === \"date-time\") {\n formattedDate += ` / ${date.toLocaleTimeString()}`;\n } else if (type === \"date-time-short\") {\n // No seconds\n if (locale === \"es-ES\") {\n formattedDate = `${year}-${month}-${day} ${time}`;\n } else {\n formattedDate = `${month}/${day}/${year} ${time}`;\n }\n } else if (\"pretty\") {\n const daysPassedFromToday = daysFromToday(date);\n const today = new Date();\n const currentYear = today.getFullYear();\n if (isToday(date)) {\n return `Today ${time}`;\n } else if (isYesterday(date)) {\n return `Yesterday ${time}`;\n } else if (daysPassedFromToday <= 7) {\n // If one week or less, just show the day of the week, and the time\n const day = daysOfWeek[date.getDay()];\n return `${day} ${time}`;\n } else if (currentYear === year) {\n // If current year, show day number and month name. Example: November 17th\n if (locale === \"es-ES\") {\n formattedDate = `${day} de ${date.toLocaleString(\"es-ES\", {\n month: \"long\"\n })} ${time}`;\n } else {\n formattedDate = `${date.toLocaleString(\"en-US\", {\n month: \"long\"\n })} ${day} ${time}`;\n }\n } else {\n // Display date as usual\n formattedDate = formatDate(date, \"date-time-short\");\n }\n }\n return formattedDate;\n};\n\nexport type FormatDateType =\n | \"date\"\n | \"date-time\"\n | \"date-time-short\"\n | \"pretty\";\n\n// - - - - - - - - - - - -\n// /End of Date Functions\n// - - - - - - - - - - - -\n\n/* Count the total tree nodes (by default it does not count the first level nodes)*/\nexport const countTreeItems = (\n treeModel: TreeViewItemModel[],\n children = false\n): number => {\n let totalNodes = 0;\n treeModel.forEach(node => {\n children && totalNodes++;\n if (node.items) {\n totalNodes += countTreeItems(node.items, true);\n }\n });\n return totalNodes;\n};\n\n/**\n * @description it evaluates the initial selected combo item\n * @param options an array of GxOption\n * @returns the initial combo value, which in this case is the id\n */\nexport const setInitialComboValue = (options: GxOption[]): string => {\n const selected = options.find(option => option.selected);\n if (selected) {\n return selected.value || selected.id;\n } else {\n return options[0].value || options[0].id;\n }\n};\n\nexport const escapeRegExp = (str: string) => {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n};\n\n/**\n * @description this function highlights the character(s) that match(es) the filter value.\n * hiChar comes from (hi)light (Char)acters\n * @param text the string to find the filter value on\n * @param filterValue the filter value\n * @returns a span element\n */\nexport const hiChar = function (text: string, filterValue: string) {\n if (text && filterValue) {\n const escapedFilterValue = escapeRegExp(filterValue);\n const re = new RegExp(escapedFilterValue, \"gi\");\n return (\n <span\n innerHTML={text.replace(re, '<span class=\"hiChar\">$&</span>')}\n ></span>\n );\n } else {\n return text;\n }\n};\n\nexport const closeOnOutsideClickHandler = (\n eventInfo: PointerEvent,\n ref: HTMLElement\n): true | void => {\n if (!eventInfo.composedPath().includes(ref)) {\n return true;\n }\n};\n\nexport const mapOptionsToComboBoxItemModel = (\n options: GxOption[]\n): ComboBoxModel =>\n options.map(option => ({\n value: option.id,\n caption: option.label\n // startImgSrc: option.iconName\n }));\n\nexport const renderChCheckboxItems = (\n options: GxOption[] | undefined,\n frontEndCheckboxInputHandler: (\n event: ChCheckboxCustomEvent<string> | InputEvent\n ) => void,\n checkedIds: string[]\n): HTMLChCheckboxElement[] => {\n return options?.map(option => {\n const value = checkedIds?.find(\n id => option.value === id || option.id === id\n );\n return (\n <ch-checkbox\n name={option.name}\n class=\"checkbox\"\n checkedValue={option.value || option.id}\n caption={option.label}\n disabled={option.disabled}\n value={value}\n onInput={frontEndCheckboxInputHandler}\n startImgSrc={option.iconName}\n key={option.value || option.id}\n ></ch-checkbox>\n );\n });\n};\n"]}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/common/helpers.tsx"],"names":[],"mappings":"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","sourcesContent":["import { h } from \"@stencil/core\";\n\nimport {\n ChCheckboxCustomEvent,\n ComboBoxModel,\n TreeViewItemModel\n} from \"@genexus/chameleon-controls-library\";\nexport type ChCheckboxArray = HTMLChCheckboxElement[] | null;\n\nimport { GxOption } from \"./types\";\n\nconst daysOfWeek = [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\"\n];\n\n/**\n * @param element an HTMLElement\n * @returns an alphabetically ordered array of all the parts and exportparts the element contains.\n */\nexport const getElementSelectorParts = (element: HTMLElement) => {\n const queries: string[] = [];\n const elementParts = element.shadowRoot?.querySelectorAll(`[part]`);\n const elementExportParts =\n element.shadowRoot?.querySelectorAll(`[exportparts]`);\n\n elementParts?.forEach(el => {\n queries.push(\n `${element.tagName.toLowerCase()}::part(${el.getAttribute(\"part\")})`\n );\n });\n elementExportParts?.forEach(el => {\n queries.push(\n ...[\n ...el.getAttribute(\"exportparts\").matchAll(/(?:[\\w-]+:)?([\\w-]+)/g)\n ].map(item => `${element.tagName.toLowerCase()}::part(${item[1]})`)\n );\n });\n\n return queries.sort();\n};\n\n/**\n * @param selector a part selector\n * @returns A reference to the element the part belongs to.\n */\nexport const querySelectorPart = (selector: string) => {\n const querySelectorDeep = (\n element: HTMLElement,\n parts: string\n ): HTMLElement => {\n const shadow = element.shadowRoot;\n const partList = parts.split(\" \");\n\n const partElement: HTMLElement = shadow.querySelector(\n partList.map(partName => `[part~=\"${partName}\"]`).join(\"\")\n );\n if (partElement) {\n return partElement;\n }\n\n const exportPartElement: HTMLElement = shadow.querySelector(\n partList.map(partName => `[exportparts*=\"${partName}\"]`).join(\"\")\n );\n if (exportPartElement) {\n const exportPartList: string[] = [];\n const exportparts = exportPartElement.getAttribute(\"exportparts\");\n\n partList.forEach(partItem => {\n const exportPartName = exportparts.match(\n `(?:([\\\\w-]+):)?(${partItem})`\n )[1];\n if (exportPartName) {\n exportPartList.push(exportPartName);\n }\n });\n\n if (partList.length === exportPartList.length) {\n return querySelectorDeep(exportPartElement, exportPartList.join(\" \"));\n }\n }\n\n return null;\n };\n\n const selectorItems = selector.match(\"(.*)::part\\\\(([^)]+)\\\\)\");\n const entity = selectorItems[1];\n const partName = selectorItems[2];\n\n return querySelectorDeep(document.querySelector(entity), partName);\n};\n\nconst daysFromToday = (date: Date): number => {\n const today = new Date();\n // To calculate the time difference of two dates\n const timeDifference = today.getTime() - date.getTime();\n // To calculate the no. of days between two dates\n const daysDifference = timeDifference / (1000 * 3600 * 24);\n return Math.floor(daysDifference);\n};\n\n// - - - - - - - - - - - -\n// Date Functions\n// - - - - - - - - - - - -\n\nconst isToday = (date: Date): boolean => {\n const today = new Date();\n if (today.toDateString() === date.toDateString()) {\n return true;\n }\n return false;\n};\n\nconst isYesterday = (date: Date): boolean => {\n const yesterday = new Date();\n yesterday.setDate(yesterday.getDate() - 1);\n if (yesterday.toDateString() === date.toDateString()) {\n return true;\n }\n return false;\n};\n\nexport const formatDate = (\n date: Date,\n type: FormatDateType = \"date-time\"\n): string => {\n let formattedDate;\n // validate date\n // undefined or null\n if (date === undefined || date === null) {\n return \"\";\n }\n // If the date object is invalid it will return 'NaN' on getTime() and NaN is never equal to itself\n const dateIsValid = date.getTime() === date.getTime();\n if (!dateIsValid) {\n return \"Invalid date\";\n }\n let locale = \"en-US\";\n const lang = document\n .getElementsByTagName(\"html\")[0]\n .getAttribute(\"lang\")\n ?.valueOf();\n if (lang === \"es\") {\n locale = \"es-ES\";\n }\n formattedDate = date.toLocaleDateString(locale);\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const day = String(date.getDate()).padStart(2, \"0\");\n const hours = String(date.getHours()).padStart(2, \"0\");\n const minutes = String(date.getMinutes()).padStart(2, \"0\");\n const time = `${hours}:${minutes}`;\n if (type === \"date-time\") {\n formattedDate += ` / ${date.toLocaleTimeString()}`;\n } else if (type === \"date-time-short\") {\n // No seconds\n if (locale === \"es-ES\") {\n formattedDate = `${year}-${month}-${day} ${time}`;\n } else {\n formattedDate = `${month}/${day}/${year} ${time}`;\n }\n } else if (\"pretty\") {\n const daysPassedFromToday = daysFromToday(date);\n const today = new Date();\n const currentYear = today.getFullYear();\n if (isToday(date)) {\n return `Today ${time}`;\n } else if (isYesterday(date)) {\n return `Yesterday ${time}`;\n } else if (daysPassedFromToday <= 7) {\n // If one week or less, just show the day of the week, and the time\n const day = daysOfWeek[date.getDay()];\n return `${day} ${time}`;\n } else if (currentYear === year) {\n // If current year, show day number and month name. Example: November 17th\n if (locale === \"es-ES\") {\n formattedDate = `${day} de ${date.toLocaleString(\"es-ES\", {\n month: \"long\"\n })} ${time}`;\n } else {\n formattedDate = `${date.toLocaleString(\"en-US\", {\n month: \"long\"\n })} ${day} ${time}`;\n }\n } else {\n // Display date as usual\n formattedDate = formatDate(date, \"date-time-short\");\n }\n }\n return formattedDate;\n};\n\nexport type FormatDateType =\n | \"date\"\n | \"date-time\"\n | \"date-time-short\"\n | \"pretty\";\n\n// - - - - - - - - - - - -\n// /End of Date Functions\n// - - - - - - - - - - - -\n\n/* Count the total tree nodes (by default it does not count the first level nodes)*/\nexport const countTreeItems = (\n treeModel: TreeViewItemModel[],\n children = false\n): number => {\n let totalNodes = 0;\n treeModel.forEach(node => {\n children && totalNodes++;\n if (node.items) {\n totalNodes += countTreeItems(node.items, true);\n }\n });\n return totalNodes;\n};\n\n/**\n * @description it evaluates the initial selected combo item\n * @param options an array of GxOption\n * @returns the initial combo value, which in this case is the id\n */\nexport const setInitialComboValue = (options: GxOption[]): string => {\n const selected = options.find(option => option.selected);\n if (selected) {\n return selected.value || selected.id;\n } else {\n return options[0].value || options[0].id;\n }\n};\n\nexport const escapeRegExp = (str: string) => {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n};\n\n/**\n * @description this function highlights the character(s) that match(es) the filter value.\n * hiChar comes from (hi)light (Char)acters\n * @param text the string to find the filter value on\n * @param filterValue the filter value\n * @returns a span element\n */\nexport const hiChar = function (text: string, filterValue: string) {\n if (text && filterValue) {\n const escapedFilterValue = escapeRegExp(filterValue);\n const re = new RegExp(escapedFilterValue, \"gi\");\n return (\n <span\n innerHTML={text.replace(re, '<span class=\"hiChar\">$&</span>')}\n ></span>\n );\n } else {\n return text;\n }\n};\n\nexport const closeOnOutsideClickHandler = (\n eventInfo: PointerEvent,\n ref: HTMLElement\n): true | void => {\n if (!eventInfo.composedPath().includes(ref)) {\n return true;\n }\n};\n\nexport const mapOptionsToComboBoxItemModel = (\n options: GxOption[]\n): ComboBoxModel =>\n options.map(option => ({\n value: option.id,\n caption: option.label\n // startImgSrc: option.iconName\n }));\n\nexport const renderChCheckboxItems = (\n options: GxOption[] | undefined,\n frontEndCheckboxInputHandler: (\n event: ChCheckboxCustomEvent<string> | InputEvent\n ) => void,\n checkedIds: string[]\n): HTMLChCheckboxElement[] => {\n return options?.map(option => {\n const value = checkedIds?.find(\n id => option.value === id || option.id === id\n );\n return (\n <ch-checkbox\n name={option.name}\n class=\"checkbox\"\n checkedValue={option.value || option.id}\n caption={option.label}\n disabled={option.disabled}\n value={value}\n onInput={frontEndCheckboxInputHandler}\n startImgSrc={option.iconName}\n key={option.value || option.id}\n ></ch-checkbox>\n );\n });\n};\n"]}
@@ -7,10 +7,10 @@ const LANG_PREFIX = ".lang.";
7
7
  const LANG_EXTENSION = ".json";
8
8
  export class Locale {
9
9
  static getLang() {
10
- var _a, _b;
11
- const lang = (_b = (_a = document
10
+ const lang = document
12
11
  .getElementsByTagName("html")[0]
13
- .getAttribute("lang")) === null || _a === void 0 ? void 0 : _a.valueOf()) !== null && _b !== void 0 ? _b : DEFAULT_LANGUAGE;
12
+ .getAttribute("lang")
13
+ ?.valueOf() ?? DEFAULT_LANGUAGE;
14
14
  // Normalize en-US
15
15
  return lang === "en-US" ? "en" : lang;
16
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"locale.js","sourceRoot":"","sources":["../../src/common/locale.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,MAAM,aAAa,GAAG,gBAAgB,CAAC;AACvC,MAAM,gBAAgB,GAAG,SAAS,CAAC;AACnC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC9B,MAAM,YAAY,GAAG,QAAQ,CAAC;AAC9B,MAAM,WAAW,GAAG,QAAQ,CAAC;AAC7B,MAAM,cAAc,GAAG,OAAO,CAAC;AAE/B,MAAM,OAAO,MAAM;IAGT,MAAM,CAAC,OAAO;;QACpB,MAAM,IAAI,GACR,MAAA,MAAA,QAAQ;aACL,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aAC/B,YAAY,CAAC,MAAM,CAAC,0CACnB,OAAO,EAAE,mCAAI,gBAAgB,CAAC;QAEpC,kBAAkB;QAClB,OAAO,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACxC,CAAC;IAEO,MAAM,CAAC,UAAU,CACvB,SAAiB,EACjB,IAAY,EACZ,MAAc;QAEd,IAAI,MAAM,KAAK,EAAE,EAAE;YACjB,MAAM,GAAG,GAAG,SAAS,GAAG,CAAC;SAC1B;QACD,MAAM,IAAI,GACR,GAAG,aAAa,GAAG,MAAM,GAAG,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,IAAI,GAAG,cAAc,EAAW,CAAC;QAExG,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAQ,EAAE;YAC3C,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAC/D,IAAI,QAAQ,CAAC,EAAE,EAAE;oBACf,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;iBAC1B;qBAAM;oBACL,MAAM,EAAE,CAAC;iBACV;YACH,CAAC,EAAE,MAAM,CAAC,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,mBAAmB,CACrC,OAAoB,EACpB,MAAM,GAAG,EAAE,EACX,SAAS,GAAG,EAAE;QAEd,IAAI,SAAS,KAAK,EAAE,EAAE;YACpB,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;SACzE;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9B,OAAO,MAAM,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,IAAY,EAAE,KAAe;QAChD,IAAI,GAAG,GAAW,IAAI,CAAC;QACvB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACnB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACb,CAAC;;AArDa,uBAAgB,GAAG,EAAE,CAAC","sourcesContent":["import { Build } from \"@stencil/core\";\n\nconst ASSETS_FOLDER = \"gx-ide-assets/\";\nconst COMPONENT_PREFIX = \"gx-ide-\";\nconst DEFAULT_LANGUAGE = \"en\";\nconst LANGS_FOLDER = \"langs/\";\nconst LANG_PREFIX = \".lang.\";\nconst LANG_EXTENSION = \".json\";\n\nexport class Locale {\n public static commonAssetsPath = \"\";\n\n private static getLang(): string {\n const lang =\n document\n .getElementsByTagName(\"html\")[0]\n .getAttribute(\"lang\")\n ?.valueOf() ?? DEFAULT_LANGUAGE;\n\n // Normalize en-US\n return lang === \"en-US\" ? \"en\" : lang;\n }\n\n private static getStrings(\n component: string,\n lang: string,\n folder: string\n ): Promise<any> {\n if (folder === \"\") {\n folder = `${component}/`;\n }\n const path =\n `${ASSETS_FOLDER}${folder}${LANGS_FOLDER}${component}${LANG_PREFIX}${lang}${LANG_EXTENSION}` as const;\n\n return new Promise((resolve, reject): void => {\n fetch(Build.isTesting ? \"/build/\" + path : path).then(langFile => {\n if (langFile.ok) {\n resolve(langFile.json());\n } else {\n reject();\n }\n }, reject);\n });\n }\n\n public static async getComponentStrings(\n element: HTMLElement,\n folder = \"\",\n component = \"\"\n ): Promise<any> {\n if (component === \"\") {\n component = element.tagName.toLowerCase().replace(COMPONENT_PREFIX, \"\");\n }\n const lang = Locale.getLang();\n return await Locale.getStrings(component, lang, folder);\n }\n\n public static format(text: string, parms: string[]): string {\n let ret: string = text;\n parms.forEach(parm => {\n ret = ret.replace(`{${parms.indexOf(parm)}}`, parm);\n });\n return ret;\n }\n}\n"]}
1
+ {"version":3,"file":"locale.js","sourceRoot":"","sources":["../../src/common/locale.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,MAAM,aAAa,GAAG,gBAAgB,CAAC;AACvC,MAAM,gBAAgB,GAAG,SAAS,CAAC;AACnC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC9B,MAAM,YAAY,GAAG,QAAQ,CAAC;AAC9B,MAAM,WAAW,GAAG,QAAQ,CAAC;AAC7B,MAAM,cAAc,GAAG,OAAO,CAAC;AAE/B,MAAM,OAAO,MAAM;IAGT,MAAM,CAAC,OAAO;QACpB,MAAM,IAAI,GACR,QAAQ;aACL,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aAC/B,YAAY,CAAC,MAAM,CAAC;YACrB,EAAE,OAAO,EAAE,IAAI,gBAAgB,CAAC;QAEpC,kBAAkB;QAClB,OAAO,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACxC,CAAC;IAEO,MAAM,CAAC,UAAU,CACvB,SAAiB,EACjB,IAAY,EACZ,MAAc;QAEd,IAAI,MAAM,KAAK,EAAE,EAAE;YACjB,MAAM,GAAG,GAAG,SAAS,GAAG,CAAC;SAC1B;QACD,MAAM,IAAI,GACR,GAAG,aAAa,GAAG,MAAM,GAAG,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,IAAI,GAAG,cAAc,EAAW,CAAC;QAExG,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAQ,EAAE;YAC3C,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAC/D,IAAI,QAAQ,CAAC,EAAE,EAAE;oBACf,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;iBAC1B;qBAAM;oBACL,MAAM,EAAE,CAAC;iBACV;YACH,CAAC,EAAE,MAAM,CAAC,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,mBAAmB,CACrC,OAAoB,EACpB,MAAM,GAAG,EAAE,EACX,SAAS,GAAG,EAAE;QAEd,IAAI,SAAS,KAAK,EAAE,EAAE;YACpB,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;SACzE;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9B,OAAO,MAAM,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,IAAY,EAAE,KAAe;QAChD,IAAI,GAAG,GAAW,IAAI,CAAC;QACvB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACnB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACb,CAAC;;AArDa,uBAAgB,GAAG,EAAE,CAAC","sourcesContent":["import { Build } from \"@stencil/core\";\n\nconst ASSETS_FOLDER = \"gx-ide-assets/\";\nconst COMPONENT_PREFIX = \"gx-ide-\";\nconst DEFAULT_LANGUAGE = \"en\";\nconst LANGS_FOLDER = \"langs/\";\nconst LANG_PREFIX = \".lang.\";\nconst LANG_EXTENSION = \".json\";\n\nexport class Locale {\n public static commonAssetsPath = \"\";\n\n private static getLang(): string {\n const lang =\n document\n .getElementsByTagName(\"html\")[0]\n .getAttribute(\"lang\")\n ?.valueOf() ?? DEFAULT_LANGUAGE;\n\n // Normalize en-US\n return lang === \"en-US\" ? \"en\" : lang;\n }\n\n private static getStrings(\n component: string,\n lang: string,\n folder: string\n ): Promise<any> {\n if (folder === \"\") {\n folder = `${component}/`;\n }\n const path =\n `${ASSETS_FOLDER}${folder}${LANGS_FOLDER}${component}${LANG_PREFIX}${lang}${LANG_EXTENSION}` as const;\n\n return new Promise((resolve, reject): void => {\n fetch(Build.isTesting ? \"/build/\" + path : path).then(langFile => {\n if (langFile.ok) {\n resolve(langFile.json());\n } else {\n reject();\n }\n }, reject);\n });\n }\n\n public static async getComponentStrings(\n element: HTMLElement,\n folder = \"\",\n component = \"\"\n ): Promise<any> {\n if (component === \"\") {\n component = element.tagName.toLowerCase().replace(COMPONENT_PREFIX, \"\");\n }\n const lang = Locale.getLang();\n return await Locale.getStrings(component, lang, folder);\n }\n\n public static format(text: string, parms: string[]): string {\n let ret: string = text;\n parms.forEach(parm => {\n ret = ret.replace(`{${parms.indexOf(parm)}}`, parm);\n });\n return ret;\n }\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  /* eslint-disable @typescript-eslint/no-use-before-define */
2
2
  import { h } from "@stencil/core";
3
3
  export const renderSuggestLists = (suggestData) => {
4
- if (suggestData === null || suggestData === void 0 ? void 0 : suggestData.suggestLists.length) {
4
+ if (suggestData?.suggestLists.length) {
5
5
  return suggestData.suggestLists.map((list) => {
6
6
  return (h("ch-suggest-list", { label: list.label }, list.items.map((item) => {
7
7
  return renderSuggestListsItem(item);
@@ -1 +1 @@
1
- {"version":3,"file":"render-suggest.js","sourceRoot":"","sources":["../../src/common/render-suggest.tsx"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAKlC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,WAAwB,EACI,EAAE;IAC9B,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,YAAY,CAAC,MAAM,EAAE;QACpC,OAAO,WAAW,CAAC,YAAY,CAAC,GAAG,CACjC,CAAC,IAAqB,EAA4B,EAAE;YAClD,OAAO,CACL,uBAAiB,KAAK,EAAE,IAAI,CAAC,KAAK,IAC/B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAqB,EAAE,EAAE;gBACxC,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC,CAAC,CACc,CACnB,CAAC;QACJ,CAAC,CACF,CAAC;KACH;IACD,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAC7B,WAA4B,EACE,EAAE;IAChC,OAAO,CACL,4BAAsB,KAAK,EAAE,WAAW,CAAC,KAAK,IAC3C;QACC,WAAW,CAAC,WAAW,IAAI,WAAW,CAAC,KAAK;QAC5C,WAAW,CAAC,IAAI,IAAI,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC;KACjD,CACoB,CACxB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAsB,EAAE;IAC1D,OAAO,gBAAU,KAAK,EAAC,MAAM,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,MAAM,GAAY,CAAC;AACxE,CAAC,CAAC","sourcesContent":["/* eslint-disable @typescript-eslint/no-use-before-define */\nimport { h } from \"@stencil/core\";\nimport { SuggestItemData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/suggest-list-item/ch-suggest-list-item\";\nimport { SuggestListData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/suggest-list/ch-suggest-list\";\nimport { SuggestData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/ch-suggest\";\n\nexport const renderSuggestLists = (\n suggestData: SuggestData\n): HTMLChSuggestListElement[] => {\n if (suggestData?.suggestLists.length) {\n return suggestData.suggestLists.map(\n (list: SuggestListData): HTMLChSuggestListElement => {\n return (\n <ch-suggest-list label={list.label}>\n {list.items.map((item: SuggestItemData) => {\n return renderSuggestListsItem(item);\n })}\n </ch-suggest-list>\n );\n }\n );\n }\n return [];\n};\n\nconst renderSuggestListsItem = (\n suggestItem: SuggestItemData\n): HTMLChSuggestListItemElement => {\n return (\n <ch-suggest-list-item value={suggestItem.value}>\n {[\n suggestItem.description || suggestItem.value,\n suggestItem.icon && renderIcon(suggestItem.icon)\n ]}\n </ch-suggest-list-item>\n );\n};\n\nconst renderIcon = (iconName: string): HTMLGxgIconElement => {\n return <gxg-icon color=\"auto\" type={iconName} slot=\"icon\"></gxg-icon>;\n};\n"]}
1
+ {"version":3,"file":"render-suggest.js","sourceRoot":"","sources":["../../src/common/render-suggest.tsx"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAKlC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,WAAwB,EACI,EAAE;IAC9B,IAAI,WAAW,EAAE,YAAY,CAAC,MAAM,EAAE;QACpC,OAAO,WAAW,CAAC,YAAY,CAAC,GAAG,CACjC,CAAC,IAAqB,EAA4B,EAAE;YAClD,OAAO,CACL,uBAAiB,KAAK,EAAE,IAAI,CAAC,KAAK,IAC/B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAqB,EAAE,EAAE;gBACxC,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC,CAAC,CACc,CACnB,CAAC;QACJ,CAAC,CACF,CAAC;KACH;IACD,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAC7B,WAA4B,EACE,EAAE;IAChC,OAAO,CACL,4BAAsB,KAAK,EAAE,WAAW,CAAC,KAAK,IAC3C;QACC,WAAW,CAAC,WAAW,IAAI,WAAW,CAAC,KAAK;QAC5C,WAAW,CAAC,IAAI,IAAI,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC;KACjD,CACoB,CACxB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAsB,EAAE;IAC1D,OAAO,gBAAU,KAAK,EAAC,MAAM,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,MAAM,GAAY,CAAC;AACxE,CAAC,CAAC","sourcesContent":["/* eslint-disable @typescript-eslint/no-use-before-define */\nimport { h } from \"@stencil/core\";\nimport { SuggestItemData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/suggest-list-item/ch-suggest-list-item\";\nimport { SuggestListData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/suggest-list/ch-suggest-list\";\nimport { SuggestData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/ch-suggest\";\n\nexport const renderSuggestLists = (\n suggestData: SuggestData\n): HTMLChSuggestListElement[] => {\n if (suggestData?.suggestLists.length) {\n return suggestData.suggestLists.map(\n (list: SuggestListData): HTMLChSuggestListElement => {\n return (\n <ch-suggest-list label={list.label}>\n {list.items.map((item: SuggestItemData) => {\n return renderSuggestListsItem(item);\n })}\n </ch-suggest-list>\n );\n }\n );\n }\n return [];\n};\n\nconst renderSuggestListsItem = (\n suggestItem: SuggestItemData\n): HTMLChSuggestListItemElement => {\n return (\n <ch-suggest-list-item value={suggestItem.value}>\n {[\n suggestItem.description || suggestItem.value,\n suggestItem.icon && renderIcon(suggestItem.icon)\n ]}\n </ch-suggest-list-item>\n );\n};\n\nconst renderIcon = (iconName: string): HTMLGxgIconElement => {\n return <gxg-icon color=\"auto\" type={iconName} slot=\"icon\"></gxg-icon>;\n};\n"]}
@@ -2,7 +2,6 @@ import { Host, h } from "@stencil/core";
2
2
  export class GxIdeContainer {
3
3
  constructor() {
4
4
  this.headingClasses = () => {
5
- var _a;
6
5
  return {
7
6
  "heading": true,
8
7
  "heading--inactive": this.inactiveTitle,
@@ -12,7 +11,7 @@ export class GxIdeContainer {
12
11
  "heading--no-padding": this.noHeadingPadding,
13
12
  "heading--no-padding-block-end": this.noHeadingPaddingBlockEnd,
14
13
  "heading--no-gap": this.noHeadingGap,
15
- "heading--padding-top": this.headingPaddingTop && ((_a = this.containerTitle) === null || _a === void 0 ? void 0 : _a.length) > 0,
14
+ "heading--padding-top": this.headingPaddingTop && this.containerTitle?.length > 0,
16
15
  "heading--form-text-height": this.titleHeightAsInput,
17
16
  "heading--flex-row": this.flexRow
18
17
  };
@@ -1 +1 @@
1
- {"version":3,"file":"container.js","sourceRoot":"","sources":["../../../../src/components/_helpers/container/container.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Prop, Element, State } from \"@stencil/core\";\nimport { TitleAlignment } from \"@genexus/gemini/dist/types/common/types\";\nimport { TitleType } from \"../title/title\";\n@Component({\n tag: \"gx-ide-container\",\n styleUrl: \"container.scss\",\n shadow: true\n})\nexport class GxIdeContainer {\n // 1.OWN PROPERTIES //\n\n /* GENERAL */\n\n /**\n * By setting the title to inactive, the color will be gray instead of black.\n */\n @Prop() readonly inactiveTitle: boolean = false;\n\n /**\n * The title of the container\n */\n @Prop() readonly containerTitle: string;\n\n /**\n * The title of the container\n */\n @Prop() readonly titleType: TitleType = \"primary\";\n\n /**\n * Displays a border all around the container\n */\n @Prop() readonly displayBorder: boolean = false;\n\n /**\n * Displays a border on the top\n */\n @Prop() readonly displayBorderTop: boolean = false;\n\n /**\n * Displays a border at the end\n */\n @Prop() readonly displayBorderEnd: boolean = false;\n\n /**\n * Displays a border at on the bottom\n */\n @Prop() readonly displayBorderBottom: boolean = false;\n\n /**\n * Displays a border at the start\n */\n @Prop() readonly displayBorderStart: boolean = false;\n\n /**\n * The container general padding (applies to .heading, .content, and .footer)\n */\n @Prop() readonly sectionsPadding: SectionsPadding = \"m\";\n\n /* HEADING*/\n\n /**\n * Title alignment\n */\n @Prop() readonly titleAlignment: TitleAlignment = \"center\";\n\n /**\n * Removes the border bottom from the heading\n */\n @Prop() readonly noHeadingBorder: boolean = false;\n\n /**\n * Removes the heading gap\n */\n @Prop() readonly noHeadingGap: boolean = false;\n\n /**\n * Removes the padding from the heading\n */\n @Prop() readonly noHeadingPadding: boolean = false;\n\n /**\n * Removes the padding block end from the heading\n */\n @Prop() readonly noHeadingPaddingBlockEnd: boolean = false;\n\n /**\n * Adds padding to the top of the heading\n */\n @Prop() readonly headingPaddingTop: boolean = false;\n\n /**\n * The heading justification\n */\n @Prop() readonly headingJustify: HeadingJustify = \"center\";\n\n /**\n * It forces the .heading__title min-height to be as tall as the gxg-form-text height. This is useful when you are displaying two gx-ide-container's on the same row, both of them display a title, and one of them displays a gxg-form-text in the header (usually used to filter content). Without this property set to true, the .heading without a gxg-from-text would be shorter. At the time of writing, this is used on ww-images.\n */\n @Prop() readonly titleHeightAsInput: boolean = false;\n\n /**\n * Makes the header (.heading) display flex:row, instad of the default flex:column.\n */\n @Prop() readonly flexRow: boolean = false;\n\n /* CONTENT */\n\n /**\n * Makes the content a flex container\n */\n @Prop() readonly flexContent: boolean = false;\n\n /**\n * Removes the border-top from the content\n */\n @Prop() readonly noContentBorderTop: boolean = false;\n\n /**\n * Removes the padding from the content\n */\n @Prop() readonly noContentPadding: boolean = false;\n\n /**\n * Removes the gap from the content\n */\n @Prop() readonly noContentGap: boolean = false;\n\n /**\n * Align items\n */\n @Prop() readonly alignItems: AlignItems = undefined;\n\n /**\n * Justify content\n */\n @Prop() readonly justifyContent: JustifyContent = undefined;\n\n /**\n * Display border end on the content\n */\n @Prop() readonly contentBorderEnd: boolean = false;\n\n /* FOOTER ABOVE */\n\n /**\n * Makes the above footer vertical padding slimmer\n */\n @Prop() readonly slimmerAboveFooter: boolean = false;\n\n /**\n * Removes the above padding from the footer\n */\n @Prop() readonly noAboveFooterPadding: boolean = false;\n\n /**\n * Removes the above border top\n */\n @Prop() readonly noBorderAboveFooter: boolean = false;\n\n /* FOOTER > START and FOOTER > END*/\n\n /**\n * Makes the footer vertical padding slimmer\n */\n @Prop() readonly slimmerFooter: boolean = false;\n\n /**\n * Removes the padding from the footer\n */\n @Prop() readonly noFooterPadding: boolean = false;\n\n /**\n * The footer justification\n */\n @Prop() readonly footerJustify: FooterJustify = \"end\";\n\n /**\n * Removes the border top from the footer\n */\n @Prop() readonly noBorderFooter: boolean = false;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeContainerElement;\n\n // 3.STATE() VARIABLES //\n\n /**\n * A boolean variable indicating if the component has or not any content for the 'header' slot\n */\n @State() hasHeaderSlot = false;\n\n /**\n * A boolean variable indicating if the component has or not any content slotted content (regular slotted content, without 'slot' attribute)\n */\n @State() hasSlottedContent = false;\n\n /**\n * A boolean variable indicating if the component has or not any content for the 'footer' slot\n */\n @State() hasFooterSlot = false;\n\n /**\n * A boolean variable indicating if the component has or not any content for the 'footer' slot\n */\n @State() hasAboveFooterSlot = false;\n\n /**\n * A boolean variable indicating that the container only has the heading section\n */\n @State() hasOnlyHeading = false;\n\n /**\n * A boolean variable indicating that the container only has the content section\n */\n @State() hasOnlyContent = false;\n\n /**\n * A boolean variable indicating that the container only has the footer section\n */\n @State() hasOnlyFooter = false;\n\n // 4.PUBLIC PROPERTY API //\n\n // 5.EVENTS (EMIT) //\n\n // 6.COMPONENT LIFECYCLE EVENTS //\n\n componentWillLoad() {\n this.evaluateSlots();\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n private evaluateSlots() {\n // header\n const headerSlot = this.el.querySelectorAll(':scope > [slot=\"header\"]');\n if (headerSlot.length) {\n this.hasHeaderSlot = true;\n }\n // content\n const slottedContent = this.el.querySelectorAll(\":scope > :not([slot])\");\n if (slottedContent.length) {\n this.hasSlottedContent = true;\n }\n // footer\n const footerAboveSlot = this.el.querySelectorAll(\n ':scope > [slot=\"footer-above\"]'\n );\n const footerStartSlot = this.el.querySelectorAll(\n ':scope > [slot=\"footer-start\"]'\n );\n const footerEndSlot = this.el.querySelectorAll(\n ':scope > [slot=\"footer-end\"]'\n );\n if (footerStartSlot.length || footerEndSlot.length) {\n this.hasFooterSlot = true;\n }\n if (footerAboveSlot.length) {\n this.hasAboveFooterSlot = true;\n }\n }\n\n private evaluateSections() {\n // has only heading\n if (\n !this.hasSlottedContent &&\n !this.hasFooterSlot &&\n !this.hasAboveFooterSlot\n ) {\n this.hasOnlyHeading = true;\n }\n // has only content\n if (\n this.hasSlottedContent &&\n !this.containerTitle &&\n !this.hasHeaderSlot &&\n !this.hasAboveFooterSlot &&\n !this.hasFooterSlot\n ) {\n this.hasOnlyContent = true;\n }\n // has only footer\n if (\n !this.hasSlottedContent &&\n !this.containerTitle &&\n !this.hasAboveFooterSlot\n ) {\n this.hasOnlyFooter = true;\n }\n }\n\n private headingClasses = (): string | { [className: string]: boolean } => {\n return {\n \"heading\": true,\n \"heading--inactive\": this.inactiveTitle,\n \"heading--slimmer\": this.titleType === \"secondary\",\n \"heading--no-border\": this.noHeadingBorder || this.hasOnlyHeading,\n [`heading--justify-${this.headingJustify}`]: true,\n \"heading--no-padding\": this.noHeadingPadding,\n \"heading--no-padding-block-end\": this.noHeadingPaddingBlockEnd,\n \"heading--no-gap\": this.noHeadingGap,\n \"heading--padding-top\":\n this.headingPaddingTop && this.containerTitle?.length > 0,\n \"heading--form-text-height\": this.titleHeightAsInput,\n \"heading--flex-row\": this.flexRow\n };\n };\n\n private contentClasses = (): string | { [className: string]: boolean } => {\n return {\n \"content\": true,\n \"content--flex\": this.flexContent,\n \"content--no-padding\": this.noContentPadding,\n \"content--no-gap\": this.noContentGap,\n \"content--no-border-top\": this.noContentBorderTop,\n \"content--border-end\": this.contentBorderEnd,\n [`content--align-items-${this.alignItems}`]:\n this.alignItems !== undefined,\n [`content--justify-content-${this.justifyContent}`]:\n this.justifyContent !== undefined\n };\n };\n\n private aboveFooter = (): any | null => {\n return this.hasAboveFooterSlot ? (\n <footer\n class={{\n \"footer-above\": true,\n \"footer-above--no-border-top\": this.noBorderAboveFooter,\n \"footer-above--no-padding\": this.noAboveFooterPadding,\n \"footer-above--slimmer\": this.slimmerFooter\n }}\n >\n <slot name=\"footer-above\"></slot>\n </footer>\n ) : null;\n };\n\n private footer = (): any | null => {\n return this.hasFooterSlot ? (\n <footer\n class={{\n \"footer\": true,\n \"footer--no-border\":\n this.hasOnlyFooter ||\n !this.hasSlottedContent ||\n this.noBorderFooter,\n [`footer--justify-${this.footerJustify}`]: true,\n [`footer--justify-${this.footerJustify}`]: true,\n \"footer--no-padding\": this.noFooterPadding,\n \"footer--slimmer\": this.slimmerFooter\n }}\n >\n <div class=\"footer__start\">\n <slot name=\"footer-start\"></slot>\n </div>\n <div class=\"footer__end\">\n <slot name=\"footer-end\"></slot>\n </div>\n </footer>\n ) : null;\n };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n this.evaluateSections();\n const result = [\n this.containerTitle || this.hasHeaderSlot ? (\n <header class={this.headingClasses()}>\n {this.containerTitle ? (\n <gx-ide-title\n class=\"heading__title\"\n type={this.titleType}\n alignment={this.titleAlignment as any}\n >\n {this.containerTitle}\n </gx-ide-title>\n ) : null}\n {this.hasHeaderSlot ? (\n <div class=\"heading__inner-wrapper\">\n <slot name=\"header\"></slot>\n </div>\n ) : null}\n </header>\n ) : null,\n this.hasSlottedContent ? (\n <div class={this.contentClasses()} part=\"content\">\n <slot></slot>\n </div>\n ) : null,\n this.aboveFooter(),\n this.footer()\n ];\n\n return (\n <Host>\n <div\n class={{\n \"container\": true,\n [`container--padding-${this.sectionsPadding}`]: true,\n \"container--display-border\": this.displayBorder,\n \"container--display-border-top\": this.displayBorderTop,\n \"container--display-border-end\": this.displayBorderEnd,\n \"container--display-border-bottom\": this.displayBorderBottom,\n \"container--display-border-start\": this.displayBorderStart,\n \"container--only-content\": this.hasOnlyContent,\n \"container--no-header\": !this.hasHeaderSlot && !this.containerTitle,\n \"container--no-footer\":\n !this.hasFooterSlot && !this.hasAboveFooterSlot\n }}\n >\n {result}\n </div>\n </Host>\n );\n }\n}\n\nexport type HeadingJustify = \"start\" | \"center\" | \"end\";\nexport type FooterJustify = \"start\" | \"center\" | \"end\";\nexport type SectionsPadding = \"s\" | \"m\" | \"l\";\nexport type AlignItems = \"start\" | \"center\" | \"end\";\nexport type JustifyContent = \"start\" | \"center\" | \"end\";\n"]}
1
+ {"version":3,"file":"container.js","sourceRoot":"","sources":["../../../../src/components/_helpers/container/container.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Prop, Element, State } from \"@stencil/core\";\nimport { TitleAlignment } from \"@genexus/gemini/dist/types/common/types\";\nimport { TitleType } from \"../title/title\";\n@Component({\n tag: \"gx-ide-container\",\n styleUrl: \"container.scss\",\n shadow: true\n})\nexport class GxIdeContainer {\n // 1.OWN PROPERTIES //\n\n /* GENERAL */\n\n /**\n * By setting the title to inactive, the color will be gray instead of black.\n */\n @Prop() readonly inactiveTitle: boolean = false;\n\n /**\n * The title of the container\n */\n @Prop() readonly containerTitle: string;\n\n /**\n * The title of the container\n */\n @Prop() readonly titleType: TitleType = \"primary\";\n\n /**\n * Displays a border all around the container\n */\n @Prop() readonly displayBorder: boolean = false;\n\n /**\n * Displays a border on the top\n */\n @Prop() readonly displayBorderTop: boolean = false;\n\n /**\n * Displays a border at the end\n */\n @Prop() readonly displayBorderEnd: boolean = false;\n\n /**\n * Displays a border at on the bottom\n */\n @Prop() readonly displayBorderBottom: boolean = false;\n\n /**\n * Displays a border at the start\n */\n @Prop() readonly displayBorderStart: boolean = false;\n\n /**\n * The container general padding (applies to .heading, .content, and .footer)\n */\n @Prop() readonly sectionsPadding: SectionsPadding = \"m\";\n\n /* HEADING*/\n\n /**\n * Title alignment\n */\n @Prop() readonly titleAlignment: TitleAlignment = \"center\";\n\n /**\n * Removes the border bottom from the heading\n */\n @Prop() readonly noHeadingBorder: boolean = false;\n\n /**\n * Removes the heading gap\n */\n @Prop() readonly noHeadingGap: boolean = false;\n\n /**\n * Removes the padding from the heading\n */\n @Prop() readonly noHeadingPadding: boolean = false;\n\n /**\n * Removes the padding block end from the heading\n */\n @Prop() readonly noHeadingPaddingBlockEnd: boolean = false;\n\n /**\n * Adds padding to the top of the heading\n */\n @Prop() readonly headingPaddingTop: boolean = false;\n\n /**\n * The heading justification\n */\n @Prop() readonly headingJustify: HeadingJustify = \"center\";\n\n /**\n * It forces the .heading__title min-height to be as tall as the gxg-form-text height. This is useful when you are displaying two gx-ide-container's on the same row, both of them display a title, and one of them displays a gxg-form-text in the header (usually used to filter content). Without this property set to true, the .heading without a gxg-from-text would be shorter. At the time of writing, this is used on ww-images.\n */\n @Prop() readonly titleHeightAsInput: boolean = false;\n\n /**\n * Makes the header (.heading) display flex:row, instad of the default flex:column.\n */\n @Prop() readonly flexRow: boolean = false;\n\n /* CONTENT */\n\n /**\n * Makes the content a flex container\n */\n @Prop() readonly flexContent: boolean = false;\n\n /**\n * Removes the border-top from the content\n */\n @Prop() readonly noContentBorderTop: boolean = false;\n\n /**\n * Removes the padding from the content\n */\n @Prop() readonly noContentPadding: boolean = false;\n\n /**\n * Removes the gap from the content\n */\n @Prop() readonly noContentGap: boolean = false;\n\n /**\n * Align items\n */\n @Prop() readonly alignItems: AlignItems = undefined;\n\n /**\n * Justify content\n */\n @Prop() readonly justifyContent: JustifyContent = undefined;\n\n /**\n * Display border end on the content\n */\n @Prop() readonly contentBorderEnd: boolean = false;\n\n /* FOOTER ABOVE */\n\n /**\n * Makes the above footer vertical padding slimmer\n */\n @Prop() readonly slimmerAboveFooter: boolean = false;\n\n /**\n * Removes the above padding from the footer\n */\n @Prop() readonly noAboveFooterPadding: boolean = false;\n\n /**\n * Removes the above border top\n */\n @Prop() readonly noBorderAboveFooter: boolean = false;\n\n /* FOOTER > START and FOOTER > END*/\n\n /**\n * Makes the footer vertical padding slimmer\n */\n @Prop() readonly slimmerFooter: boolean = false;\n\n /**\n * Removes the padding from the footer\n */\n @Prop() readonly noFooterPadding: boolean = false;\n\n /**\n * The footer justification\n */\n @Prop() readonly footerJustify: FooterJustify = \"end\";\n\n /**\n * Removes the border top from the footer\n */\n @Prop() readonly noBorderFooter: boolean = false;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeContainerElement;\n\n // 3.STATE() VARIABLES //\n\n /**\n * A boolean variable indicating if the component has or not any content for the 'header' slot\n */\n @State() hasHeaderSlot = false;\n\n /**\n * A boolean variable indicating if the component has or not any content slotted content (regular slotted content, without 'slot' attribute)\n */\n @State() hasSlottedContent = false;\n\n /**\n * A boolean variable indicating if the component has or not any content for the 'footer' slot\n */\n @State() hasFooterSlot = false;\n\n /**\n * A boolean variable indicating if the component has or not any content for the 'footer' slot\n */\n @State() hasAboveFooterSlot = false;\n\n /**\n * A boolean variable indicating that the container only has the heading section\n */\n @State() hasOnlyHeading = false;\n\n /**\n * A boolean variable indicating that the container only has the content section\n */\n @State() hasOnlyContent = false;\n\n /**\n * A boolean variable indicating that the container only has the footer section\n */\n @State() hasOnlyFooter = false;\n\n // 4.PUBLIC PROPERTY API //\n\n // 5.EVENTS (EMIT) //\n\n // 6.COMPONENT LIFECYCLE EVENTS //\n\n componentWillLoad() {\n this.evaluateSlots();\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n private evaluateSlots() {\n // header\n const headerSlot = this.el.querySelectorAll(':scope > [slot=\"header\"]');\n if (headerSlot.length) {\n this.hasHeaderSlot = true;\n }\n // content\n const slottedContent = this.el.querySelectorAll(\":scope > :not([slot])\");\n if (slottedContent.length) {\n this.hasSlottedContent = true;\n }\n // footer\n const footerAboveSlot = this.el.querySelectorAll(\n ':scope > [slot=\"footer-above\"]'\n );\n const footerStartSlot = this.el.querySelectorAll(\n ':scope > [slot=\"footer-start\"]'\n );\n const footerEndSlot = this.el.querySelectorAll(\n ':scope > [slot=\"footer-end\"]'\n );\n if (footerStartSlot.length || footerEndSlot.length) {\n this.hasFooterSlot = true;\n }\n if (footerAboveSlot.length) {\n this.hasAboveFooterSlot = true;\n }\n }\n\n private evaluateSections() {\n // has only heading\n if (\n !this.hasSlottedContent &&\n !this.hasFooterSlot &&\n !this.hasAboveFooterSlot\n ) {\n this.hasOnlyHeading = true;\n }\n // has only content\n if (\n this.hasSlottedContent &&\n !this.containerTitle &&\n !this.hasHeaderSlot &&\n !this.hasAboveFooterSlot &&\n !this.hasFooterSlot\n ) {\n this.hasOnlyContent = true;\n }\n // has only footer\n if (\n !this.hasSlottedContent &&\n !this.containerTitle &&\n !this.hasAboveFooterSlot\n ) {\n this.hasOnlyFooter = true;\n }\n }\n\n private headingClasses = (): string | { [className: string]: boolean } => {\n return {\n \"heading\": true,\n \"heading--inactive\": this.inactiveTitle,\n \"heading--slimmer\": this.titleType === \"secondary\",\n \"heading--no-border\": this.noHeadingBorder || this.hasOnlyHeading,\n [`heading--justify-${this.headingJustify}`]: true,\n \"heading--no-padding\": this.noHeadingPadding,\n \"heading--no-padding-block-end\": this.noHeadingPaddingBlockEnd,\n \"heading--no-gap\": this.noHeadingGap,\n \"heading--padding-top\":\n this.headingPaddingTop && this.containerTitle?.length > 0,\n \"heading--form-text-height\": this.titleHeightAsInput,\n \"heading--flex-row\": this.flexRow\n };\n };\n\n private contentClasses = (): string | { [className: string]: boolean } => {\n return {\n \"content\": true,\n \"content--flex\": this.flexContent,\n \"content--no-padding\": this.noContentPadding,\n \"content--no-gap\": this.noContentGap,\n \"content--no-border-top\": this.noContentBorderTop,\n \"content--border-end\": this.contentBorderEnd,\n [`content--align-items-${this.alignItems}`]:\n this.alignItems !== undefined,\n [`content--justify-content-${this.justifyContent}`]:\n this.justifyContent !== undefined\n };\n };\n\n private aboveFooter = (): any | null => {\n return this.hasAboveFooterSlot ? (\n <footer\n class={{\n \"footer-above\": true,\n \"footer-above--no-border-top\": this.noBorderAboveFooter,\n \"footer-above--no-padding\": this.noAboveFooterPadding,\n \"footer-above--slimmer\": this.slimmerFooter\n }}\n >\n <slot name=\"footer-above\"></slot>\n </footer>\n ) : null;\n };\n\n private footer = (): any | null => {\n return this.hasFooterSlot ? (\n <footer\n class={{\n \"footer\": true,\n \"footer--no-border\":\n this.hasOnlyFooter ||\n !this.hasSlottedContent ||\n this.noBorderFooter,\n [`footer--justify-${this.footerJustify}`]: true,\n [`footer--justify-${this.footerJustify}`]: true,\n \"footer--no-padding\": this.noFooterPadding,\n \"footer--slimmer\": this.slimmerFooter\n }}\n >\n <div class=\"footer__start\">\n <slot name=\"footer-start\"></slot>\n </div>\n <div class=\"footer__end\">\n <slot name=\"footer-end\"></slot>\n </div>\n </footer>\n ) : null;\n };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n this.evaluateSections();\n const result = [\n this.containerTitle || this.hasHeaderSlot ? (\n <header class={this.headingClasses()}>\n {this.containerTitle ? (\n <gx-ide-title\n class=\"heading__title\"\n type={this.titleType}\n alignment={this.titleAlignment as any}\n >\n {this.containerTitle}\n </gx-ide-title>\n ) : null}\n {this.hasHeaderSlot ? (\n <div class=\"heading__inner-wrapper\">\n <slot name=\"header\"></slot>\n </div>\n ) : null}\n </header>\n ) : null,\n this.hasSlottedContent ? (\n <div class={this.contentClasses()} part=\"content\">\n <slot></slot>\n </div>\n ) : null,\n this.aboveFooter(),\n this.footer()\n ];\n\n return (\n <Host>\n <div\n class={{\n \"container\": true,\n [`container--padding-${this.sectionsPadding}`]: true,\n \"container--display-border\": this.displayBorder,\n \"container--display-border-top\": this.displayBorderTop,\n \"container--display-border-end\": this.displayBorderEnd,\n \"container--display-border-bottom\": this.displayBorderBottom,\n \"container--display-border-start\": this.displayBorderStart,\n \"container--only-content\": this.hasOnlyContent,\n \"container--no-header\": !this.hasHeaderSlot && !this.containerTitle,\n \"container--no-footer\":\n !this.hasFooterSlot && !this.hasAboveFooterSlot\n }}\n >\n {result}\n </div>\n </Host>\n );\n }\n}\n\nexport type HeadingJustify = \"start\" | \"center\" | \"end\";\nexport type FooterJustify = \"start\" | \"center\" | \"end\";\nexport type SectionsPadding = \"s\" | \"m\" | \"l\";\nexport type AlignItems = \"start\" | \"center\" | \"end\";\nexport type JustifyContent = \"start\" | \"center\" | \"end\";\n"]}
@@ -65,8 +65,7 @@ export class GxIdeDirectorySelector {
65
65
  }
66
66
  // 10.RENDER() FUNCTION //
67
67
  render() {
68
- var _a;
69
- return (h(Host, null, this.label ? (h("gxg-label", { labelPosition: this.labelPosition, center: this.centerLabel }, this.label)) : null, h("div", { class: "wrapper" }, h("gxg-form-text", { part: "input", value: this.value, onValueChanged: this.valueChangedHandler }), h("gxg-button", { part: "button-select", onClick: this.btnSelectClickHandler, "aria-label": (_a = this.accessibilityLabels) === null || _a === void 0 ? void 0 : _a.buttonSelectLabel, type: "secondary-icon-only", icon: this.icon, disabled: !this.selectDirectoryCallback, onMouseEnter: this.buttonSelectMouseEnterHandler, onMouseLeave: this.buttonSelectMouseLeaveHandler }))));
68
+ return (h(Host, null, this.label ? (h("gxg-label", { labelPosition: this.labelPosition, center: this.centerLabel }, this.label)) : null, h("div", { class: "wrapper" }, h("gxg-form-text", { part: "input", value: this.value, onValueChanged: this.valueChangedHandler }), h("gxg-button", { part: "button-select", onClick: this.btnSelectClickHandler, "aria-label": this.accessibilityLabels?.buttonSelectLabel, type: "secondary-icon-only", icon: this.icon, disabled: !this.selectDirectoryCallback, onMouseEnter: this.buttonSelectMouseEnterHandler, onMouseLeave: this.buttonSelectMouseLeaveHandler }))));
70
69
  }
71
70
  static get is() { return "gx-ide-directory-selector"; }
72
71
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"directory-selector.js","sourceRoot":"","sources":["../../../../src/components/_helpers/directory-selector/directory-selector.tsx"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAChE,6BAA6B;AAC7B,oBAAoB;AAOpB,MAAM,OAAO,sBAAsB;;QACjC;;;;;;;;;;;;QAYA;QAEA,gCAAgC;QAExB,gBAAW,GAAG,gBAAgB,CAAC;QAuD/B,0BAAqB,GAAG,GAAS,EAAE;YACzC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO,EAAE;gBAChD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;aAC1B;QACH,CAAC,CAAC;QAEF,iBAAiB;QAEjB,0BAA0B;QAE1B,qBAAqB;QAEb,0BAAqB,GAAG,GAAG,EAAE;YACnC,IAAI,CAAC,uBAAuB;gBAC1B,IAAI,CAAC,uBAAuB,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;oBAC3C,IAAI,MAAM,EAAE;wBACV,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;qBACrB;yBAAM;wBACL,gBAAgB;qBACjB;gBACH,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QAEM,wBAAmB,GAAG,CAAC,CAAsB,EAAE,EAAE;YACvD,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;QACxB,CAAC,CAAC;QAEM,kCAA6B,GAAG,GAAS,EAAE;YACjD,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QACpC,CAAC,CAAC;QAEM,kCAA6B,GAAG,GAAS,EAAE;YACjD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;QAC/B,CAAC,CAAC;oBAlFc,IAAI,CAAC,WAAW;mCAOgC;YAC9D,iBAAiB,EAAE,iCAAiC;SACrD;;6BAUiE,OAAO;2BAKlC,IAAI;;;;;IAiB3C,qBAAqB;IAErB,eAAe;IAEf,iBAAiB;QACf,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAqCD,0BAA0B;IAE1B,MAAM;;QACJ,OAAO,CACL,EAAC,IAAI;YACF,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CACZ,iBACE,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,MAAM,EAAE,IAAI,CAAC,WAAW,IAEvB,IAAI,CAAC,KAAK,CACD,CACb,CAAC,CAAC,CAAC,IAAI;YACR,WAAK,KAAK,EAAC,SAAS;gBAClB,qBACE,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,cAAc,EAAE,IAAI,CAAC,mBAAmB,GACzB;gBACjB,kBACE,IAAI,EAAC,eAAe,EACpB,OAAO,EAAE,IAAI,CAAC,qBAAqB,gBACvB,MAAA,IAAI,CAAC,mBAAmB,0CAAE,iBAAiB,EACvD,IAAI,EAAC,qBAAqB,EAC1B,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,QAAQ,EAAE,CAAC,IAAI,CAAC,uBAAuB,EACvC,YAAY,EAAE,IAAI,CAAC,6BAA6B,EAChD,YAAY,EAAE,IAAI,CAAC,6BAA6B,GACpC,CACV,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["/* STENCIL IMPORTS */\nimport { Component, Host, h, Prop, State } from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\n\n@Component({\n tag: \"gx-ide-directory-selector\",\n styleUrl: \"directory-selector.scss\",\n shadow: true\n})\nexport class GxIdeDirectorySelector {\n /*\nINDEX:\n1.OWN PROPERTIES \n2.REFERENCE TO ELEMENTS\n3.STATE() VARIABLES\n4.PUBLIC PROPERTY API | WATCH'S\n5.EVENTS (EMIT)\n6.METHODS\n7.LISTENERS\n8.PUBLIC METHODS API\n9.LOCAL METHODS\n10.RENDER() FUNCTION\n*/\n\n // 1.OWN PROPERTIES | WATCH'S //\n\n private defaultIcon = \"objects/folder\";\n\n // 2. REFERENCE TO ELEMENTS //\n\n // 3.STATE() VARIABLES //\n\n @State() icon = this.defaultIcon;\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * This property provides the user a way to define custom aria-label descriptions.\n */\n @Prop() readonly accessibilityLabels: DirectorySelectorLabels = {\n buttonSelectLabel: \"displays the directory selector\"\n };\n\n /**\n * The label associated with the input (optional)\n */\n @Prop() readonly label?: string;\n\n /**\n * The label position\n */\n @Prop({ reflect: true }) readonly labelPosition?: LabelPosition = \"start\";\n\n /**\n * Centers the label\n */\n @Prop({ mutable: true }) centerLabel = true;\n\n /**\n * The label width\n */\n @Prop() readonly labelWidth: string;\n\n /**\n * Callback that will be called when the user presses the action button. Returns the new value (directory path) assigned to the component.\n */\n @Prop() readonly selectDirectoryCallback: () => Promise<string>;\n\n /**\n * Value currently assigned.\n */\n @Prop({ mutable: true }) value: string;\n\n // 5.EVENTS (EMIT) //\n\n // 6.METHODS //\n\n componentWillLoad() {\n this.evaluateLabelPosition();\n }\n\n private evaluateLabelPosition = (): void => {\n if (this.label && this.labelPosition === \"above\") {\n this.centerLabel = false;\n }\n };\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n private btnSelectClickHandler = () => {\n this.selectDirectoryCallback &&\n this.selectDirectoryCallback().then(result => {\n if (result) {\n this.value = result;\n } else {\n // to be defined\n }\n });\n };\n\n private valueChangedHandler = (e: CustomEvent<string>) => {\n this.value = e.detail;\n };\n\n private buttonSelectMouseEnterHandler = (): void => {\n this.icon = \"objects/folder-open\";\n };\n\n private buttonSelectMouseLeaveHandler = (): void => {\n this.icon = this.defaultIcon;\n };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host>\n {this.label ? (\n <gxg-label\n labelPosition={this.labelPosition}\n center={this.centerLabel}\n >\n {this.label}\n </gxg-label>\n ) : null}\n <div class=\"wrapper\">\n <gxg-form-text\n part=\"input\"\n value={this.value}\n onValueChanged={this.valueChangedHandler}\n ></gxg-form-text>\n <gxg-button\n part=\"button-select\"\n onClick={this.btnSelectClickHandler}\n aria-label={this.accessibilityLabels?.buttonSelectLabel}\n type=\"secondary-icon-only\"\n icon={this.icon}\n disabled={!this.selectDirectoryCallback}\n onMouseEnter={this.buttonSelectMouseEnterHandler}\n onMouseLeave={this.buttonSelectMouseLeaveHandler}\n ></gxg-button>\n </div>\n </Host>\n );\n }\n}\n\nexport type DirectorySelectorLabels = {\n buttonSelectLabel: string;\n};\nexport type LabelPosition = \"start\" | \"above\";\n"]}
1
+ {"version":3,"file":"directory-selector.js","sourceRoot":"","sources":["../../../../src/components/_helpers/directory-selector/directory-selector.tsx"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAChE,6BAA6B;AAC7B,oBAAoB;AAOpB,MAAM,OAAO,sBAAsB;;QACjC;;;;;;;;;;;;QAYA;QAEA,gCAAgC;QAExB,gBAAW,GAAG,gBAAgB,CAAC;QAuD/B,0BAAqB,GAAG,GAAS,EAAE;YACzC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO,EAAE;gBAChD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;aAC1B;QACH,CAAC,CAAC;QAEF,iBAAiB;QAEjB,0BAA0B;QAE1B,qBAAqB;QAEb,0BAAqB,GAAG,GAAG,EAAE;YACnC,IAAI,CAAC,uBAAuB;gBAC1B,IAAI,CAAC,uBAAuB,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;oBAC3C,IAAI,MAAM,EAAE;wBACV,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;qBACrB;yBAAM;wBACL,gBAAgB;qBACjB;gBACH,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QAEM,wBAAmB,GAAG,CAAC,CAAsB,EAAE,EAAE;YACvD,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;QACxB,CAAC,CAAC;QAEM,kCAA6B,GAAG,GAAS,EAAE;YACjD,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QACpC,CAAC,CAAC;QAEM,kCAA6B,GAAG,GAAS,EAAE;YACjD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;QAC/B,CAAC,CAAC;oBAlFc,IAAI,CAAC,WAAW;mCAOgC;YAC9D,iBAAiB,EAAE,iCAAiC;SACrD;;6BAUiE,OAAO;2BAKlC,IAAI;;;;;IAiB3C,qBAAqB;IAErB,eAAe;IAEf,iBAAiB;QACf,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAqCD,0BAA0B;IAE1B,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YACF,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CACZ,iBACE,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,MAAM,EAAE,IAAI,CAAC,WAAW,IAEvB,IAAI,CAAC,KAAK,CACD,CACb,CAAC,CAAC,CAAC,IAAI;YACR,WAAK,KAAK,EAAC,SAAS;gBAClB,qBACE,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,cAAc,EAAE,IAAI,CAAC,mBAAmB,GACzB;gBACjB,kBACE,IAAI,EAAC,eAAe,EACpB,OAAO,EAAE,IAAI,CAAC,qBAAqB,gBACvB,IAAI,CAAC,mBAAmB,EAAE,iBAAiB,EACvD,IAAI,EAAC,qBAAqB,EAC1B,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,QAAQ,EAAE,CAAC,IAAI,CAAC,uBAAuB,EACvC,YAAY,EAAE,IAAI,CAAC,6BAA6B,EAChD,YAAY,EAAE,IAAI,CAAC,6BAA6B,GACpC,CACV,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["/* STENCIL IMPORTS */\nimport { Component, Host, h, Prop, State } from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\n\n@Component({\n tag: \"gx-ide-directory-selector\",\n styleUrl: \"directory-selector.scss\",\n shadow: true\n})\nexport class GxIdeDirectorySelector {\n /*\nINDEX:\n1.OWN PROPERTIES \n2.REFERENCE TO ELEMENTS\n3.STATE() VARIABLES\n4.PUBLIC PROPERTY API | WATCH'S\n5.EVENTS (EMIT)\n6.METHODS\n7.LISTENERS\n8.PUBLIC METHODS API\n9.LOCAL METHODS\n10.RENDER() FUNCTION\n*/\n\n // 1.OWN PROPERTIES | WATCH'S //\n\n private defaultIcon = \"objects/folder\";\n\n // 2. REFERENCE TO ELEMENTS //\n\n // 3.STATE() VARIABLES //\n\n @State() icon = this.defaultIcon;\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * This property provides the user a way to define custom aria-label descriptions.\n */\n @Prop() readonly accessibilityLabels: DirectorySelectorLabels = {\n buttonSelectLabel: \"displays the directory selector\"\n };\n\n /**\n * The label associated with the input (optional)\n */\n @Prop() readonly label?: string;\n\n /**\n * The label position\n */\n @Prop({ reflect: true }) readonly labelPosition?: LabelPosition = \"start\";\n\n /**\n * Centers the label\n */\n @Prop({ mutable: true }) centerLabel = true;\n\n /**\n * The label width\n */\n @Prop() readonly labelWidth: string;\n\n /**\n * Callback that will be called when the user presses the action button. Returns the new value (directory path) assigned to the component.\n */\n @Prop() readonly selectDirectoryCallback: () => Promise<string>;\n\n /**\n * Value currently assigned.\n */\n @Prop({ mutable: true }) value: string;\n\n // 5.EVENTS (EMIT) //\n\n // 6.METHODS //\n\n componentWillLoad() {\n this.evaluateLabelPosition();\n }\n\n private evaluateLabelPosition = (): void => {\n if (this.label && this.labelPosition === \"above\") {\n this.centerLabel = false;\n }\n };\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n private btnSelectClickHandler = () => {\n this.selectDirectoryCallback &&\n this.selectDirectoryCallback().then(result => {\n if (result) {\n this.value = result;\n } else {\n // to be defined\n }\n });\n };\n\n private valueChangedHandler = (e: CustomEvent<string>) => {\n this.value = e.detail;\n };\n\n private buttonSelectMouseEnterHandler = (): void => {\n this.icon = \"objects/folder-open\";\n };\n\n private buttonSelectMouseLeaveHandler = (): void => {\n this.icon = this.defaultIcon;\n };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host>\n {this.label ? (\n <gxg-label\n labelPosition={this.labelPosition}\n center={this.centerLabel}\n >\n {this.label}\n </gxg-label>\n ) : null}\n <div class=\"wrapper\">\n <gxg-form-text\n part=\"input\"\n value={this.value}\n onValueChanged={this.valueChangedHandler}\n ></gxg-form-text>\n <gxg-button\n part=\"button-select\"\n onClick={this.btnSelectClickHandler}\n aria-label={this.accessibilityLabels?.buttonSelectLabel}\n type=\"secondary-icon-only\"\n icon={this.icon}\n disabled={!this.selectDirectoryCallback}\n onMouseEnter={this.buttonSelectMouseEnterHandler}\n onMouseLeave={this.buttonSelectMouseLeaveHandler}\n ></gxg-button>\n </div>\n </Host>\n );\n }\n}\n\nexport type DirectorySelectorLabels = {\n buttonSelectLabel: string;\n};\nexport type LabelPosition = \"start\" | \"above\";\n"]}