@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
@@ -1 +0,0 @@
1
- {"version":3,"names":["newKbCss","CSS_BUNDLES","WINDOWS_AUTHENTICATION_VALUE","MAIN_SECTION_CLASSES","BASIC_SECTION_PARENT_CLASSES","SYSTEM_ICON","getIconPath","category","name","colorType","BASIC_TAB_SELECTOR","ADVANCED_TAB_SELECTOR","GxIdeNewKb","_GxIdeNewKb_advancedTabHasBeenRendered","set","this","_GxIdeNewKb_componentLocale","_GxIdeNewKb_frontEndsCheckedMap","Map","_GxIdeNewKb_selectedPrototypingEnvironmentId","_GxIdeNewKb_shortcutsSrc","getAssetPath","_GxIdeNewKb_kbSectionsModel","_GxIdeNewKb_authenticationTypeEl","_GxIdeNewKb_collationEl","_GxIdeNewKb_createDataFilesInKBFolderEl","_GxIdeNewKb_databaseNameEl","_GxIdeNewKb_dataSourceEl","_GxIdeNewKb_kbNameEl","_GxIdeNewKb_locationEl","_GxIdeNewKb_passwordEl","_GxIdeNewKb_prototypingEnvironmentEl","_GxIdeNewKb_prototypingTargetEl","_GxIdeNewKb_savePasswordEl","_GxIdeNewKb_serverNameEl","_GxIdeNewKb_userInterfaceLanguageEl","_GxIdeNewKb_userNameEl","_GxIdeNewKb_chShortcutsEl","_GxIdeNewKb_handlerAuthenticationTypeInput","e","authenticationTypeValue","detail","__classPrivateFieldGet","_GxIdeNewKb_evaluateUserInputsDisplay","call","_GxIdeNewKb_handlerServerNameInput","_GxIdeNewKb_evaluateCreateDataCheckboxEnabled","_GxIdeNewKb_prototypingEnvironmentValueChangedHandler","event","__classPrivateFieldSet","_GxIdeNewKb_getDataSources","_GxIdeNewKb_updateFrontEnds","_GxIdeNewKb_prototypingTargetValueChangedHandler","_GxIdeNewKb_renderAdvanced","h","class","tabAdvanced","tabTitle","htmlFor","serverName","label","disabled","serverNames","length","placeholder","disabledPlaceholder","value","serverNamesInitialValue","ref","el","model","serverNamesComboBoxModel","onInput","id","part","_GxIdeNewKb_evaluateTooltipRender","authenticationType","authenticationTypes","authenticationTypesInitialValue","authenticationTypesComboBoxModel","undefined","databaseName","userNameVisible","userName","collation","collations","collationsInitialValue","collationsComboBoxModel","passwordVisible","password","type","checkedValue","caption","createDataFilesInKbFolder","createDataInKbDisabled","savePasswordVisible","savePassword","_GxIdeNewKb_renderBasic","tabBasic","prototypingTarget","prototypingTargets","prototypingTargetsInitialValue","prototypingTargetsComboBoxModel","userInterfaceLanguage","userInterfaceLanguages","userInterfaceLanguagesInitialValue","userInterfaceLanguagesComboBoxModel","backEnd","backEndLabel","prototypingEnvironment","prototypingEnvironments","prototypingEnvironmentsComboBoxModel","dataSource","defaultDataSources","defaultDataSourcesInitialValue","defaultDataSourcesComboBoxModel","frontEnd","frontEndLabel","renderChCheckboxItems","frontEnds","_GxIdeNewKb_frontEndCheckboxInputHandler","get","_GxIdeNewKb_cancelKbHandler","cancelCallback","_GxIdeNewKb_createKbHandler","selectedFrontEndIds","_a","createCallback","_b","_c","createDataFilesInKBFolder","_d","_e","_f","kbLocation","_g","kbName","_h","_j","_k","_l","_m","_o","_p","_q","then","formSubmitResult","validatableControls","validateControls","serverNameValue","controlReference","hasError","message","actionElement","blockAlign","config","tooltipSettings","inlineAlign","delay","target","checked","_GxIdeNewKb_updateFrontEndsCheckedMap","checkboxId","currentState","push","checkboxIndex","findIndex","removeIndex","getDataSourcesCallback","selectedPrototypingEnvironmentId","selectedPrototypingTargetId","updatedDefaultDataSourcesPromise","result","catch","_GxIdeNewKb_initialSetupAdvancedTab","selectedServerNameValue","selectedAuthenticationType","watchAuthenticationTypes","watchCollations","_GxIdeNewKb_initializeValidatableControlsBasicTab","forEach","validatableControl","reference","_GxIdeNewKb_initializeValidatableControlsAdvancedTab","_GxIdeNewKb_selectLocationHandler","selectLocationCallback","_GxIdeNewKb_tabSelectionChangedHandler","newSelectedId","advancedTabIsVisible","async","updatedFrontEnds","getFrontEndsCallback","newValue","mapOptionsToComboBoxItemModel","getSelectedItem","watchDefaultDataSources","watchPrototypingEnvironments","watchPrototypingTargets","watchServerNames","watchUserInterfaceLanguages","componentWillLoad","Locale","getComponentStrings","tabLabel","connectedCallback","componentDidLoad","componentDidRender","suspendShortcuts","suspend","render","Host","src","isAdvanced","header","autoFocus","selectLocationButton","title","onClick","scrollable","tab","tabListPosition","selectedId","overflow","contain","onSelectedItemChange","slot","footer","btnCancel","btnCreate"],"sources":["src/components/new-kb/new-kb.scss?tag=gx-ide-new-kb&encapsulation=shadow","src/components/new-kb/new-kb.tsx"],"sourcesContent":[":host {\n display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-rows: max-content 1fr max-content;\n}\n\n.section {\n display: contents;\n}\n\n.header {\n &-one-col {\n grid-template-columns: 1fr;\n }\n &-two-cols {\n grid-template-columns: 1fr 1fr;\n }\n}\n// location appears if advanced is true\n.location-wrapper {\n display: flex;\n gap: var(--mer-spacing--2xs);\n}\n.location {\n flex-grow: 1;\n grid-area: location;\n}\n\n.basic {\n display: grid;\n grid-template:\n \"basic-top basic-top\" max-content\n \"back-end front-end\" 1fr;\n grid-template-columns: 1fr 1fr;\n}\n.basic__header {\n grid-area: basic-top;\n grid-template-columns: 1fr 1fr;\n}\n.control-header__back-end,\n.control-header__front-end {\n padding-block-start: var(--mer-spacing--md);\n}\n.main__back-end {\n border-inline-end: var(--section-common-border);\n}\n.main__back-end,\n.main__front-end {\n grid-auto-rows: max-content;\n padding-block: var(--content-block-spacing);\n overflow: auto;\n}\n// back end\n.section__back-end {\n grid-area: back-end;\n grid-auto-rows: max-content;\n}\n// front end\n.section__front-end {\n grid-area: front-end;\n}\n.section__back-end,\n.section__front-end {\n display: grid;\n grid-template-rows: max-content 1fr;\n overflow: auto;\n}\n\n// advanced\n.tab-advanced-title {\n grid-area: tab-advanced-title;\n}\n.layout-tab-advanced-left-col {\n grid-area: layout-tab-advanced-left-col;\n}\n.layout-tab-advanced-right-col {\n grid-area: layout-tab-advanced-right-col;\n}\n\n.basic,\n.advanced {\n padding-block-start: var(--content-block-spacing);\n overflow: auto;\n block-size: 100%;\n}\n\n.tab-advanced__field-group {\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-auto-rows: auto;\n}\n\n// WA / TODO: Add a helper class in Mercury to justify text.\n.text-align-center {\n text-align: center; // should be resolved on mercury\n}\n\n.tab::part(page) {\n // WA / TODO: Remove this line when the ch-tab renders supports scrollbar\n // custom styling\n scrollbar-width: thin;\n}\n","import {\n Component,\n Host,\n Prop,\n Element,\n State,\n getAssetPath,\n Method,\n h,\n Watch\n} from \"@stencil/core\";\n\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\n\nimport { config } from \"../../common/config\";\nimport { Locale } from \"../../common/locale\";\nimport { getSelectedItem } from \"../../common/common\";\nimport {\n mapOptionsToComboBoxItemModel,\n renderChCheckboxItems\n} from \"../../common/helpers\";\nimport { FormSubmitResult, GxOption } from \"../../common/types\";\nimport {\n ControlValidation,\n validateControls\n} from \"../../common/form-validation\";\nimport {\n TabModel,\n ComboBoxModel,\n ChCheckboxCustomEvent\n} from \"@genexus/chameleon-controls-library\";\nimport { removeIndex } from \"../../common/array\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/tab\",\n \"components/tooltip\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"chameleon/scrollbar\"\n];\n\nconst WINDOWS_AUTHENTICATION_VALUE: string = \"windows-authentication\";\nconst MAIN_SECTION_CLASSES: string = \"main\";\nconst BASIC_SECTION_PARENT_CLASSES: string = \"basic\";\n\nconst SYSTEM_ICON = getIconPath({\n category: \"system\",\n name: \"folder\",\n colorType: \"primary\"\n});\n\nconst BASIC_TAB_SELECTOR: string = \"basic\";\nconst ADVANCED_TAB_SELECTOR: string = \"advanced\";\n\n@Component({\n tag: \"gx-ide-new-kb\",\n styleUrl: \"new-kb.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/new-kb\"]\n})\nexport class GxIdeNewKb {\n #advancedTabHasBeenRendered: boolean = false;\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n /**\n * frontEndsState saves the id's of the front ends checkboxes that are checked\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #frontEndsCheckedMap = new Map<string, string[]>();\n #selectedPrototypingEnvironmentId: string;\n #shortcutsSrc = getAssetPath(`./gx-ide-assets/new-kb/shortcuts.json`);\n #kbSectionsModel: TabModel = [];\n\n @Element() el: HTMLGxIdeNewKbElement;\n\n /* References needed to collect data con \"Create\" button submit*/\n #authenticationTypeEl!: HTMLChComboBoxRenderElement;\n #collationEl!: HTMLChComboBoxRenderElement;\n #createDataFilesInKBFolderEl!: HTMLChCheckboxElement;\n #databaseNameEl!: HTMLChEditElement;\n #dataSourceEl!: HTMLChComboBoxRenderElement;\n #kbNameEl!: HTMLChEditElement;\n #locationEl!: HTMLChEditElement;\n #passwordEl!: HTMLChEditElement;\n #prototypingEnvironmentEl!: HTMLChComboBoxRenderElement;\n #prototypingTargetEl!: HTMLChComboBoxRenderElement;\n #savePasswordEl!: HTMLChCheckboxElement;\n #serverNameEl!: HTMLChComboBoxRenderElement;\n #userInterfaceLanguageEl!: HTMLChComboBoxRenderElement;\n #userNameEl!: HTMLChEditElement;\n\n #chShortcutsEl: HTMLChShortcutsElement;\n\n @State() advancedTabIsVisible: boolean = false;\n /**\n * Allows selecting multiple generators for the front end\n * TODO: Check if this property can be deleted, since we can call getFrontEndsCallback.\n */\n @State() frontEnds: GxOption[];\n @State() validatableControls = new Map<string, ControlValidation>();\n @State() createDataInKbDisabled = false;\n @State() userNameVisible = true;\n @State() passwordVisible = true;\n @State() savePasswordVisible = true;\n // representations of GxOption[] as ComboBoxModel, and initialValue for each one.\n @State() authenticationTypesComboBoxModel: ComboBoxModel = [];\n @State() authenticationTypesInitialValue: string;\n @State() collationsComboBoxModel: ComboBoxModel = [];\n @State() collationsInitialValue: string;\n @State() defaultDataSourcesComboBoxModel: ComboBoxModel = [];\n @State() defaultDataSourcesInitialValue: string;\n @State() prototypingTargetsComboBoxModel: ComboBoxModel = [];\n @State() prototypingTargetsInitialValue: string;\n @State() prototypingEnvironmentsComboBoxModel: ComboBoxModel = [];\n @State() prototypingEnvironmentsInitialValue: string;\n @State() serverNamesComboBoxModel: ComboBoxModel = [];\n @State() serverNamesInitialValue: string;\n @State() userInterfaceLanguagesComboBoxModel: ComboBoxModel = [];\n @State() userInterfaceLanguagesInitialValue: string;\n\n /**\n * Defines the type of authentication for the connection to the previously defined database\n */\n @Prop() readonly authenticationTypes: GxOption[] = [];\n @Watch(\"authenticationTypes\")\n watchAuthenticationTypes(newValue: GxOption[]) {\n if (newValue?.length) {\n this.authenticationTypesComboBoxModel =\n mapOptionsToComboBoxItemModel(newValue);\n this.authenticationTypesInitialValue = getSelectedItem(newValue);\n }\n }\n\n /**\n * Callback invoked when the user wants to cancel KB creation (‘Cancel’ button)\n */\n @Prop() readonly cancelCallback: CancelCallback;\n\n /**\n * DB Collations\n */\n @Prop() readonly collations!: GxOption[];\n @Watch(\"collations\")\n watchCollations(newValue: GxOption[]) {\n if (newValue?.length) {\n this.collationsComboBoxModel = mapOptionsToComboBoxItemModel(newValue);\n this.collationsInitialValue = getSelectedItem(newValue);\n }\n }\n\n /**\n * Callback that will be invoked when the user confirms KB creation (‘Create’ button)\n */\n @Prop() readonly createCallback!: CreateCallback;\n\n /**\n * Disabled if the first item of the 'Server Name' combo is selected\n */\n @Prop() readonly createDataFilesInKBFolder: boolean = false;\n\n /**\n * Name of the database where we are going to persist the information of our KB\n */\n @Prop() readonly databaseName: string;\n\n /**\n * It allows defining the DBMS that will be used in the solution\n */\n @Prop({ mutable: true }) defaultDataSources: GxOption[] = [];\n @Watch(\"defaultDataSources\")\n watchDefaultDataSources(newValue: GxOption[]) {\n if (newValue?.length) {\n this.defaultDataSourcesComboBoxModel =\n mapOptionsToComboBoxItemModel(newValue);\n this.defaultDataSourcesInitialValue = getSelectedItem(newValue);\n }\n }\n\n /**\n * Callback invoked when the user wants to cancel KB creation (‘Cancel’ button)\n */\n @Prop() readonly getDataSourcesCallback: GetDataSourcesCallback;\n\n /**\n * Callback invoked when the user changes the prototyping environment, allowing for the modification of the list of front ends\n */\n @Prop() readonly getFrontEndsCallback!: GetFrontEndsCallback;\n\n /**\n * Specify whether it is feasible to display information related to local configuration parameters\n */\n @Prop() readonly isAdvanced = false;\n\n /**\n * Default suggested path to a directory where the information related to the KB will be stored/generated\n */\n @Prop({ mutable: true }) kbLocation: string;\n\n /**\n * The knowledge base default suggested name\n */\n @Prop() readonly kbName: string;\n\n /**\n * Password for the database connection. Visible if the Authentication Type is different from Windows Authentication (first item of the combo)\n */\n @Prop() readonly password: string;\n\n /**\n * It allows selecting the default environment that the KB will have (additional environments can be created later)\n */\n @Prop() readonly prototypingEnvironments: GxOption[] = [];\n @Watch(\"prototypingEnvironments\")\n watchPrototypingEnvironments(newValue: GxOption[]) {\n if (newValue?.length) {\n this.prototypingEnvironmentsComboBoxModel =\n mapOptionsToComboBoxItemModel(newValue);\n this.#selectedPrototypingEnvironmentId = getSelectedItem(newValue);\n this.#updateFrontEnds();\n }\n }\n\n /**\n * Path to a directory where the information related to the KB will be stored/generated\n */\n @Prop() readonly prototypingTargets: GxOption[] = [];\n @Watch(\"prototypingTargets\")\n watchPrototypingTargets(newValue: GxOption[]) {\n if (newValue?.length) {\n this.prototypingTargetsComboBoxModel =\n mapOptionsToComboBoxItemModel(newValue);\n this.prototypingTargetsInitialValue = getSelectedItem(newValue);\n }\n }\n\n /**\n * Visible if something other than Windows Authentication is selected\n */\n @Prop() readonly savePassword: boolean = false;\n\n /**\n * This is a function provided by the developer that returns a string, with the location path\n */\n @Prop() readonly selectLocationCallback!: SelectLocationCallback;\n\n /**\n * Name of the DB server where we want to persist the information of our KB\n */\n @Prop() readonly serverNames: GxOption[] = [];\n @Watch(\"serverNames\")\n watchServerNames(newValue: GxOption[]) {\n if (newValue?.length) {\n this.serverNamesComboBoxModel = mapOptionsToComboBoxItemModel(newValue);\n this.serverNamesInitialValue = getSelectedItem(newValue);\n }\n }\n\n /**\n * Specify the language in which the application screens will be developed (default language)\n */\n @Prop() readonly userInterfaceLanguages: GxOption[] = [];\n @Watch(\"userInterfaceLanguages\")\n watchUserInterfaceLanguages(newValue: GxOption[]) {\n if (newValue?.length) {\n this.userInterfaceLanguagesComboBoxModel =\n mapOptionsToComboBoxItemModel(newValue);\n this.userInterfaceLanguagesInitialValue = getSelectedItem(newValue);\n }\n }\n\n /**\n * Username for the database connection. Visible if the Authentication Type is different from Windows Authentication (first item of the combo)\n */\n @Prop() readonly userName: string;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#kbSectionsModel = [\n {\n id: BASIC_TAB_SELECTOR,\n name: this.#componentLocale.tabBasic.tabLabel\n },\n {\n id: ADVANCED_TAB_SELECTOR,\n name: this.#componentLocale.tabAdvanced.tabLabel\n }\n ];\n }\n\n connectedCallback() {\n this.watchDefaultDataSources(this.defaultDataSources);\n this.watchPrototypingEnvironments(this.prototypingEnvironments);\n this.watchPrototypingTargets(this.prototypingTargets);\n this.watchServerNames(this.serverNames);\n this.watchUserInterfaceLanguages(this.userInterfaceLanguages);\n }\n\n componentDidLoad() {\n this.#initializeValidatableControlsBasicTab();\n }\n\n componentDidRender() {\n if (this.advancedTabIsVisible && !this.#advancedTabHasBeenRendered) {\n // just call this once.\n this.#initialSetupAdvancedTab();\n this.#initializeValidatableControlsAdvancedTab();\n this.#advancedTabHasBeenRendered = true;\n }\n }\n\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.#chShortcutsEl.suspend = true;\n } else {\n this.#chShortcutsEl.suspend = false;\n }\n }\n\n // Uncomment when \"TODO: define button handler and logic\" is done.\n // #geminiToolsSearchPrimary = getIconPath({\n // category: \"gemini-tools\",\n // name: \"search\",\n // colorType: \"primary\"\n // });\n // #geminiToolsResetPrimary = getIconPath({\n // category: \"gemini-tools\",\n // name: \"reset\",\n // colorType: \"primary\"\n // });\n\n #handlerAuthenticationTypeInput = (e: CustomEvent<string> | InputEvent) => {\n const authenticationTypeValue = e?.detail;\n this.#evaluateUserInputsDisplay(authenticationTypeValue as string);\n };\n\n #handlerServerNameInput = (e: CustomEvent<string> | InputEvent) => {\n this.#evaluateCreateDataCheckboxEnabled(e.detail as string);\n };\n\n #prototypingEnvironmentValueChangedHandler = (\n event: CustomEvent<string> | InputEvent\n ): void => {\n this.#selectedPrototypingEnvironmentId = event.detail as string;\n this.#getDataSources();\n this.#updateFrontEnds();\n };\n\n #prototypingTargetValueChangedHandler = (): void => {\n this.#getDataSources();\n };\n\n #renderAdvanced = (): Element[] => {\n return [\n <h2\n // #knowledge base storage\n class=\"control-header subtitle-regular-xs\t text-align-center\"\n >\n {this.#componentLocale.tabAdvanced.tabTitle}\n </h2>,\n <div class=\"field-group tab-advanced__field-group\">\n <div\n // #server name\n class=\"field field-block server-name-field\"\n >\n <label class=\"label\" htmlFor=\"serverName\">\n {this.#componentLocale.tabAdvanced.serverName.label}\n </label>\n <ch-combo-box-render\n class=\"combo-box\"\n disabled={this.serverNames.length === 0}\n placeholder={\n this.serverNames.length === 0\n ? this.#componentLocale.tabAdvanced.serverName\n .disabledPlaceholder\n : \"\"\n }\n value={this.serverNamesInitialValue}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#serverNameEl = el as HTMLChComboBoxRenderElement)\n }\n model={this.serverNamesComboBoxModel}\n onInput={\n this.serverNames.length > 0 && this.#handlerServerNameInput\n }\n id=\"serverName\"\n part=\"server-name\"\n ></ch-combo-box-render>\n {this.#evaluateTooltipRender(this.#serverNameEl)}\n </div>\n\n {/* <button\n TODO: define button handler and logic\n class=\"button-tertiary button-icon-only server-name-button\"\n aria-label=\"caption\"\n part=\"search-server-name\"\n hidden\n >\n <ch-image\n class=\"icon-sm\"\n src={this.#geminiToolsSearchPrimary}\n ></ch-image>\n </button> */}\n\n <div\n // #authentication type\n class=\"field field-block authentication-type-field\"\n >\n <label class=\"label\" htmlFor=\"authenticationType\">\n {this.#componentLocale.tabAdvanced.authenticationType.label}\n </label>\n <ch-combo-box-render\n class=\"combo-box\"\n disabled={this.authenticationTypes.length === 0}\n placeholder={\n this.authenticationTypes.length === 0\n ? this.#componentLocale.tabAdvanced.authenticationType\n .disabledPlaceholder\n : \"\"\n }\n value={this.authenticationTypesInitialValue}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#authenticationTypeEl = el as HTMLChComboBoxRenderElement)\n }\n model={this.authenticationTypesComboBoxModel}\n id=\"authenticationType\"\n part=\"authentication-type\"\n onInput={\n this.authenticationTypes.length > 0\n ? this.#handlerAuthenticationTypeInput\n : undefined\n }\n ></ch-combo-box-render>\n {this.#evaluateTooltipRender(this.#authenticationTypeEl)}\n </div>\n\n <div\n // #database\n class=\"field field-block database-field\"\n >\n <label class=\"label\" htmlFor=\"databaseName\">\n {this.#componentLocale.tabAdvanced.databaseName.label}\n </label>\n <ch-edit\n // TODO add placeholder\n class=\"input\"\n value={this.databaseName}\n id=\"databaseName\"\n part=\"database-name\"\n ref={(el: HTMLChEditElement) =>\n (this.#databaseNameEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#databaseNameEl)}\n </div>\n\n {this.userNameVisible ? (\n <div\n // #username\n class=\"field field-block username-field\"\n >\n <label class=\"label\" htmlFor=\"userName\">\n {this.#componentLocale.tabAdvanced.userName.label}\n </label>\n <ch-edit\n // TODO add placeholder\n class=\"input\"\n value={this.userName}\n id=\"userName\"\n part=\"user-name\"\n ref={(el: HTMLChEditElement) =>\n (this.#userNameEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#userNameEl)}\n </div>\n ) : null}\n\n <div\n // #collation\n class=\"field field-block collation-field\"\n >\n <label class=\"label\" htmlFor=\"collation\">\n {this.#componentLocale.tabAdvanced.collation.label}\n </label>\n <ch-combo-box-render\n class=\"combo-box\"\n disabled={this.serverNames.length === 0}\n placeholder={\n this.collations.length === 0\n ? this.#componentLocale.tabAdvanced.collation\n .disabledPlaceholder\n : \"\"\n }\n value={this.collationsInitialValue}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#collationEl = el as HTMLChComboBoxRenderElement)\n }\n model={this.collationsComboBoxModel}\n id=\"collation\"\n part=\"collation\"\n ></ch-combo-box-render>\n {this.#evaluateTooltipRender(this.#collationEl)}\n </div>\n\n {/* <button\n TODO: define button handler and logic \n class=\"button-tertiary button-icon-only collation-button\"\n aria-label=\"caption\"\n part=\"reset-collation\"\n >\n <ch-image\n class=\"icon-sm\"\n src={this.#geminiToolsResetPrimary}\n ></ch-image>\n </button> */}\n\n {this.passwordVisible ? (\n <div\n // #password\n class=\"field field-block password-field\"\n >\n <label class=\"label\" htmlFor=\"password\">\n {this.#componentLocale.tabAdvanced.password.label}\n </label>\n <ch-edit\n // TODO add placeholder\n class=\"input\"\n type=\"password\"\n value={this.password}\n id=\"password\"\n part=\"password\"\n ref={(el: HTMLChEditElement) =>\n (this.#passwordEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#passwordEl)}\n </div>\n ) : null}\n\n <ch-checkbox\n // #create data in knowledge base folder\n class=\"checkbox create-data-in-kb-checkbox\"\n checkedValue=\"createDataFilesInKBFolder\"\n caption={this.#componentLocale.tabAdvanced.createDataFilesInKbFolder}\n disabled={this.createDataInKbDisabled}\n part=\"create-data-in-kb\"\n id=\"createDataFilesInKBFolder\"\n ref={(el: HTMLChCheckboxElement) =>\n (this.#createDataFilesInKBFolderEl = el as HTMLChCheckboxElement)\n }\n ></ch-checkbox>\n\n {this.savePasswordVisible ? (\n <ch-checkbox\n // #save password\n class=\"checkbox save-password-checkbox\"\n checkedValue=\"password\"\n caption={this.#componentLocale.tabAdvanced.savePassword}\n part=\"save-password\"\n id=\"savePassword\"\n ref={(el: HTMLChCheckboxElement) =>\n (this.#savePasswordEl = el as HTMLChCheckboxElement)\n }\n ></ch-checkbox>\n ) : null}\n </div>\n ];\n };\n\n #renderBasic = (): HTMLElement[] => {\n return [\n <section class=\"basic__header field-group control-header-with-border spacing-body-inline\">\n <div\n // #prototyping target\n class=\"field field-block prototyping-target\"\n >\n <label class=\"label\" htmlFor=\"prototypingTarget\">\n {this.#componentLocale.tabBasic.prototypingTarget.label}\n </label>\n\n <ch-combo-box-render\n id=\"prototypingTarget\"\n class=\"combo-box\"\n part=\"prototyping-target\"\n disabled={this.prototypingTargets.length === 0}\n placeholder={\n this.prototypingTargets.length === 0\n ? this.#componentLocale.tabBasic.prototypingTarget\n .disabledPlaceholder\n : \"\"\n }\n value={this.prototypingTargetsInitialValue}\n model={this.prototypingTargetsComboBoxModel}\n onInput={\n this.prototypingTargets.length > 0\n ? this.#prototypingTargetValueChangedHandler\n : undefined\n }\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#prototypingTargetEl = el as HTMLChComboBoxRenderElement)\n }\n ></ch-combo-box-render>\n {this.#evaluateTooltipRender(this.#prototypingTargetEl)}\n </div>\n\n <div\n // #user interface\n class=\"field field-block user-interface-language\"\n >\n <label class=\"label\" htmlFor=\"userInterfaceLanguage\">\n {this.#componentLocale.tabBasic.userInterfaceLanguage.label}\n </label>\n <ch-combo-box-render\n class=\"combo-box\"\n disabled={this.userInterfaceLanguages.length === 0}\n placeholder={\n this.userInterfaceLanguages.length === 0\n ? this.#componentLocale.tabBasic.userInterfaceLanguage\n .disabledPlaceholder\n : \"\"\n }\n value={this.userInterfaceLanguagesInitialValue}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#userInterfaceLanguageEl =\n el as HTMLChComboBoxRenderElement)\n }\n model={this.userInterfaceLanguagesComboBoxModel}\n id=\"userInterfaceLanguage\"\n part=\"user-interface-language\"\n ></ch-combo-box-render>\n {this.#evaluateTooltipRender(this.#userInterfaceLanguageEl)}\n </div>\n </section>,\n\n <section\n class=\"section__back-end\"\n // backend\n >\n <h2\n // back end\n class=\"control-header control-header-with-border control-header__back-end subtitle-regular-xs\t text-align-center spacing-body-inline\"\n >\n {this.#componentLocale.tabBasic.backEnd.backEndLabel}\n </h2>\n <div class=\"field-group main__back-end spacing-body-inline scrollable\">\n <div\n // #prototyping environment\n class=\"field field-block\"\n >\n <label class=\"label\" htmlFor=\"prototypingEnvironment\">\n {\n this.#componentLocale.tabBasic.backEnd.prototypingEnvironment\n .label\n }\n </label>\n <ch-combo-box-render\n class=\"combo-box\"\n disabled={this.prototypingEnvironments.length === 0}\n placeholder={\n this.prototypingEnvironments.length === 0\n ? this.#componentLocale.tabBasic.backEnd\n .prototypingEnvironment.disabledPlaceholder\n : \"\"\n }\n value={this.#selectedPrototypingEnvironmentId}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#prototypingEnvironmentEl =\n el as HTMLChComboBoxRenderElement)\n }\n model={this.prototypingEnvironmentsComboBoxModel}\n onInput={this.#prototypingEnvironmentValueChangedHandler}\n part=\"prototyping-environment\"\n id=\"prototypingEnvironment\"\n ></ch-combo-box-render>\n {this.#evaluateTooltipRender(this.#prototypingEnvironmentEl)}\n </div>\n\n <div\n // #data source\n class=\"field field-block\"\n >\n <label class=\"label\" htmlFor=\"dataSource\">\n {this.#componentLocale.tabBasic.backEnd.dataSource.label}\n </label>\n <ch-combo-box-render\n class=\"combo-box\"\n disabled={this.defaultDataSources.length === 0}\n placeholder={\n this.defaultDataSources.length === 0\n ? this.#componentLocale.tabBasic.backEnd.dataSource\n .disabledPlaceholder\n : \"\"\n }\n value={this.defaultDataSourcesInitialValue}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#dataSourceEl = el as HTMLChComboBoxRenderElement)\n }\n model={this.defaultDataSourcesComboBoxModel}\n part=\"data-source\"\n id=\"dataSource\"\n ></ch-combo-box-render>\n {this.#evaluateTooltipRender(this.#dataSourceEl)}\n </div>\n </div>\n </section>,\n\n <section\n class=\"section__front-end\"\n // front end\n >\n <h2 class=\"control-header control-header-with-border control-header__front-end subtitle-regular-xs\t text-align-center spacing-body-inline\">\n {this.#componentLocale.tabBasic.frontEnd.frontEndLabel}\n </h2>\n <div class=\"field-group main__front-end spacing-body-inline scrollable\">\n {renderChCheckboxItems(\n this.frontEnds,\n this.#frontEndCheckboxInputHandler,\n this.#frontEndsCheckedMap.get(\n this.#selectedPrototypingEnvironmentId\n )\n )}\n </div>\n </section>\n ];\n };\n\n // - - - - - - - - - -\n\n #cancelKbHandler = (): void => {\n if (this.cancelCallback) {\n this.cancelCallback();\n }\n };\n\n #createKbHandler = (): void => {\n const selectedFrontEndIds =\n this.#frontEndsCheckedMap.get(this.#selectedPrototypingEnvironmentId) ??\n [];\n\n this.createCallback({\n authenticationType: this.#authenticationTypeEl?.value,\n collation: this.#collationEl?.value,\n createDataFilesInKBFolder: !!this.#createDataFilesInKBFolderEl?.value,\n dataSource: this.#dataSourceEl?.value,\n databaseName: this.#databaseNameEl?.value,\n frontEnds: selectedFrontEndIds,\n kbLocation: this.#locationEl?.value,\n kbName: this.#kbNameEl?.value,\n password: this.#passwordEl?.value,\n prototypingEnvironment: this.#prototypingEnvironmentEl?.value,\n prototypingTarget: this.#prototypingTargetEl?.value,\n savePassword: !!this.#savePasswordEl?.value,\n serverName: this.#serverNameEl?.value,\n userInterfaceLanguage: this.#userInterfaceLanguageEl?.value,\n userName: this.#userNameEl?.value\n }).then((formSubmitResult: FormSubmitResult) => {\n this.validatableControls = validateControls(\n formSubmitResult,\n this.validatableControls\n );\n });\n };\n\n /**\n * Disable \"Create Data in Knowledge Base Folder\" if the first Server Name\n * option is selected.\n * */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #evaluateCreateDataCheckboxEnabled = (serverNameValue: string) => {\n if (this.serverNames[0]?.id === serverNameValue) {\n this.createDataInKbDisabled = true;\n } else {\n this.createDataInKbDisabled = false;\n }\n };\n\n // TODO: evaluate if this should be a global helper function.\n // It is used on new-kb as well.\n #evaluateTooltipRender = (\n controlReference: HTMLElement\n ): HTMLChTooltipElement =>\n this.validatableControls?.get(controlReference?.id)?.hasError &&\n this.validatableControls.get(controlReference.id)?.message && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={controlReference as unknown as HTMLButtonElement}\n blockAlign={config.tooltipSettings.blockAlign}\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.validatableControls.get(controlReference.id).message}\n </ch-tooltip>\n );\n\n /**\n * If \"Authentication Type\" is \"Windows Authentication\", hide User Name,\n * Password, and Save Password fields.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #evaluateUserInputsDisplay = (authenticationTypeValue: string) => {\n if (authenticationTypeValue === WINDOWS_AUTHENTICATION_VALUE) {\n this.userNameVisible = false;\n this.passwordVisible = false;\n this.savePasswordVisible = false;\n } else {\n this.userNameVisible = true;\n this.passwordVisible = true;\n this.savePasswordVisible = true;\n }\n };\n\n #frontEndCheckboxInputHandler = (\n event: ChCheckboxCustomEvent<string> | InputEvent\n ) => {\n const checkedValue = (event.target as HTMLChCheckboxElement).checkedValue;\n const checked = event.detail === checkedValue;\n this.#updateFrontEndsCheckedMap(checkedValue, checked);\n };\n\n /**\n * This function updates frontEndsCheckedMap, that contains the checked\n * checkboxes for each language front ends.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #updateFrontEndsCheckedMap = (checkboxId: string, checked: boolean) => {\n let currentState = this.#frontEndsCheckedMap.get(\n this.#selectedPrototypingEnvironmentId\n );\n if (!currentState) {\n // first time\n currentState = [];\n this.#frontEndsCheckedMap.set(\n this.#selectedPrototypingEnvironmentId,\n currentState\n );\n }\n if (checked) {\n // update by adding\n currentState.push(checkboxId);\n } else {\n // update by removing\n const checkboxIndex = currentState.findIndex(id => id === checkboxId);\n removeIndex(currentState, checkboxIndex);\n }\n };\n\n #getDataSources = (): void => {\n if (this.getDataSourcesCallback) {\n const selectedPrototypingEnvironmentId =\n this.#prototypingEnvironmentEl.value;\n const selectedPrototypingTargetId = this.#prototypingTargetEl.value;\n const updatedDefaultDataSourcesPromise: Promise<GxOption[]> =\n this.getDataSourcesCallback(\n selectedPrototypingEnvironmentId,\n selectedPrototypingTargetId\n );\n updatedDefaultDataSourcesPromise\n .then(result => {\n if (result.length > 0) {\n this.defaultDataSources = result;\n // set first option as selected\n this.#dataSourceEl.value = this.defaultDataSources[0].id;\n }\n })\n .catch(() => {\n // to do\n });\n }\n };\n\n #initialSetupAdvancedTab = () => {\n const selectedServerNameValue = this.#serverNameEl.value;\n this.#evaluateCreateDataCheckboxEnabled(selectedServerNameValue);\n\n const selectedAuthenticationType = this.#authenticationTypeEl.value;\n this.#evaluateUserInputsDisplay(selectedAuthenticationType);\n\n // map all \"Advanced Tab\" GxOption[]'s to ComboBoxModel's\n this.watchAuthenticationTypes(this.authenticationTypes);\n this.watchCollations(this.collations);\n };\n\n #initializeValidatableControlsBasicTab = () => {\n // populate #controlsValidation with the controls that could have errors.\n const validatableControls: HTMLElement[] = [\n this.#dataSourceEl,\n this.#kbNameEl,\n this.#prototypingEnvironmentEl,\n this.#prototypingTargetEl,\n this.#userInterfaceLanguageEl\n ];\n validatableControls.forEach(validatableControl => {\n if (validatableControl.id) {\n this.validatableControls.set(validatableControl.id, {\n reference: validatableControl,\n hasError: false,\n message: undefined\n });\n }\n });\n };\n\n #initializeValidatableControlsAdvancedTab = () => {\n // populate #controlsValidation with the controls that could have errors.\n const validatableControls: HTMLElement[] = [\n this.#locationEl,\n this.#authenticationTypeEl,\n this.#createDataFilesInKBFolderEl,\n this.#serverNameEl,\n this.#authenticationTypeEl,\n this.#databaseNameEl,\n this.#userNameEl,\n this.#collationEl,\n this.#passwordEl,\n this.#savePasswordEl\n ];\n validatableControls.forEach(validatableControl => {\n if (validatableControl.id) {\n this.validatableControls.set(validatableControl.id, {\n reference: validatableControl,\n hasError: false,\n message: undefined\n });\n }\n });\n };\n\n /**\n * @description It allows defining the DBMS that will be used in the solution\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #selectLocationHandler = (): void => {\n this.selectLocationCallback().then(kbLocation => {\n if (kbLocation) {\n this.kbLocation = kbLocation;\n } else {\n // to be defined\n }\n });\n };\n\n #tabSelectionChangedHandler = (\n event: CustomEvent<{\n lastSelectedIndex: number;\n newSelectedId: string;\n newSelectedIndex: number;\n }>\n ): void => {\n if (event.detail.newSelectedId === ADVANCED_TAB_SELECTOR) {\n this.advancedTabIsVisible = true;\n // Some logic for advanced tab is done on componentDidRender lifecycle,\n // since the reference to the elements is needed.\n }\n };\n\n /**\n * Evaluates which front-end options need updates on 'getFrontEndsCallback'\n * by comparing the new state (getFrontEndsCallback result) and previous state.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #updateFrontEnds = async () => {\n const updatedFrontEnds = await this.getFrontEndsCallback(\n this.#selectedPrototypingEnvironmentId\n );\n if (updatedFrontEnds?.length > 0) {\n this.frontEnds = updatedFrontEnds;\n }\n };\n\n render() {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <ch-shortcuts\n src={this.#shortcutsSrc}\n ref={(el: HTMLChShortcutsElement) =>\n (this.#chShortcutsEl = el as HTMLChShortcutsElement)\n }\n ></ch-shortcuts>\n <section class=\"section\">\n <header\n class={{\n \"field-group\": true,\n \"control-header-with-border\": !this.isAdvanced,\n \"control-header\": this.isAdvanced,\n \"header\": true,\n \"header-two-cols\": this.isAdvanced,\n \"header-one-col\": !this.isAdvanced,\n \"spacing-body-block-start\": true,\n \"spacing-body-inline\": true\n }}\n >\n <div\n // #kb name\n class=\"field field-inline kb-name\"\n >\n <label class=\"label kb-label\" htmlFor=\"kbName\">\n {this.#componentLocale.header.kbName}\n </label>\n <ch-edit\n // TODO add placeholder\n autoFocus\n class=\"input kb-input\"\n placeholder=\"SalesInventory\"\n value={this.kbName}\n ref={(el: HTMLChEditElement) =>\n (this.#kbNameEl = el as HTMLChEditElement)\n }\n id=\"kbName\"\n part=\"kb-name\"\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#kbNameEl)}\n </div>\n\n {this.isAdvanced && (\n <div class=\"location-wrapper\">\n <div\n // #location\n class=\"field field-inline location\"\n >\n <label class=\"label location-label\" htmlFor=\"kbLocation\">\n {this.#componentLocale.header.kbLocation}\n </label>\n <ch-edit\n // TODO add placeholder\n class=\"input location-input\"\n value={this.kbLocation}\n ref={(el: HTMLChEditElement) =>\n (this.#locationEl = el as HTMLChEditElement)\n }\n id=\"kbLocation\"\n part=\"kb-location\"\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#locationEl)}\n </div>\n <button\n class=\"button-tertiary button-icon-only location-icon\"\n aria-label={this.#componentLocale.header.selectLocationButton}\n title={this.#componentLocale.header.selectLocationButton}\n part=\"button-select-location\"\n onClick={this.#selectLocationHandler}\n >\n <ch-image class=\"icon-md\" src={SYSTEM_ICON}></ch-image>\n </button>\n </div>\n )}\n </header>\n\n {this.isAdvanced ? (\n <ch-tab-render\n // #tab\n class={{\n scrollable: true,\n tab: true,\n [MAIN_SECTION_CLASSES]: true\n }}\n tabListPosition=\"block-start\"\n model={this.#kbSectionsModel}\n selectedId={BASIC_TAB_SELECTOR}\n overflow=\"auto\"\n contain=\"size\"\n onSelectedItemChange={\n !this.advancedTabIsVisible && this.#tabSelectionChangedHandler\n }\n >\n <div\n slot={BASIC_TAB_SELECTOR}\n class={BASIC_SECTION_PARENT_CLASSES}\n part=\"tab-button-basic\"\n >\n {this.#renderBasic()}\n </div>\n\n {this.advancedTabIsVisible && (\n <div\n slot={ADVANCED_TAB_SELECTOR}\n class=\"advanced spacing-body-inline\"\n part=\"tab-button-advanced\"\n >\n {this.#renderAdvanced()}\n </div>\n )}\n </ch-tab-render>\n ) : (\n <div class={MAIN_SECTION_CLASSES}>\n <div class={BASIC_SECTION_PARENT_CLASSES}>\n {this.#renderBasic()}\n </div>\n </div>\n )}\n\n <footer\n class={{\n \"control-footer\": this.isAdvanced,\n \"control-footer-with-border\": !this.isAdvanced,\n \"spacing-body-block-end\": true,\n \"spacing-body-inline\": true\n }}\n >\n <div class=\"buttons-spacer\">\n <button\n // #cancel\n class=\"button-secondary\"\n id=\"button-cancel\"\n onClick={this.#cancelKbHandler}\n part=\"button-cancel\"\n >\n {this.#componentLocale.footer.btnCancel}\n </button>\n <button\n // #create\n class=\"button-primary\"\n id=\"button-create\"\n onClick={this.#createKbHandler}\n part=\"button-create\"\n >\n {this.#componentLocale.footer.btnCreate}\n </button>\n </div>\n </footer>\n </section>\n </Host>\n );\n }\n}\nexport interface NewKBData {\n authenticationType: string;\n collation: string;\n createDataFilesInKBFolder: boolean;\n databaseName: string;\n dataSource: string;\n frontEnds: string[];\n kbLocation: string;\n kbName: string;\n password: string;\n prototypingEnvironment: string;\n prototypingTarget: string;\n savePassword: boolean;\n serverName: string;\n userInterfaceLanguage: string;\n userName: string;\n}\n\nexport type CreateCallback = (data: NewKBData) => Promise<FormSubmitResult>;\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type GetDataSourcesCallback = (\n selectedPrototypingEnvironmentId: string,\n selectedPrototypingTargetId: string\n) => Promise<GxOption[]>;\n\nexport type GetFrontEndsCallback = (\n selectedPrototypingEnvironmentId: string\n) => Promise<GxOption[]>;\n\nexport type SelectLocationCallback = () => Promise<string>;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["manageModuleReferencesCss","CSS_BUNDLES","GxManageModuleReferences","this","renderedFirstTime","_GxManageModuleReferences_filterIcon","set","getIconPath","category","name","colorType","_GxManageModuleReferences_moduleIcon","updateModulesSelectedVersion","modulesAll","selectedServerId","selectedServerIdOnModulesAllUpdate","modulesSelectedVersion","clear","forEach","module","id","versions","length","newModule","get","undefined","getActionFromCurrentModuleVersion","action","getModuleData","selectedModule","onProgress","message","progress","state","data","selectedModuleAction","Object","assign","progressValue","progressState","handleModuleChange","event","selectedModuleId","detail","rowsId","foundModule","find","item","serverSelectedCallbackHandler","async","reload","serverSelectedCallback","loadingServer","resolvedObjects","filterModulesByType","filteredModules","handleFilterChange","value","trim","toLowerCase","filter","selectedVersionName","includes","handleFilterChangeHandler","e","executeActionCallbackHandler","executeActionCallback","moduleSelectedVersionId","actionCompleted","type","currentVersion","version","showModuleMenu","serverContextMenuCallback","buttonBoundingClientRect","target","getBoundingClientRect","selection","clientX","x","clientY","y","dataType","selectedVersionId","selectedVersion","selectedVersionData","moduleActionHandler","closeProgressBar","renderModulesGrid","h","rowSelectionMode","part","class","onSelectionChanged","settingable","size","map","rowid","key","selected","moduleVersionIconColor","color","disabled","fit","onClick","renderEmptyStateModules","stateIconSrc","__classPrivateFieldGet","stateTitle","_componentLocale","modules","noModulesFilter","moduleAction","moduleCurrentVersion","renderVersionName","renderVersionWarningMessage","warningMessage","renderInstalledVersion","caption","cssClass","modulesInformation","moduleProperties","installed","notInstalled","moduleVersionsValueChangedHandler","versionId","updateSelectedModuleVersion","moduleVersionsItemChangedHandler","reRenderCounter","renderModuleVersions","label","availableVersions","labelPosition","centerLabel","onValueChanged","onItemSelected","selectedButtonChangedHandler","replace","serverItemSelectedHandler","serverId","serverValueChangedHandler","progressBarCloseHandler","setTimeout","reloadServer","Map","modulesAllWatcher","loadingServerHandler","loading","loaderEl","show","componentDidRender","componentDidRenderFirstTime","emit","componentName","componentWillLoad","Locale","getComponentStrings","el","componentDidLoad","servers","onPropValueChange","newModulesData","validate","render","Host","model","noContentPadding","noAboveFooterPadding","noBorderAboveFooter","containerTitle","displayTitle","selectServer","disableFilter","showServerCommands","icon","searchModules","reduced","fullWidth","onSelectedButtonChanged","buttonsContainer","browse","updates","ref","serversDetail","renderModuleDataProperties","emptyState","title","stateDescription","description","slot","stateType","noBorder","progressBar","defaultCaption","active","closeType","closedCallback","loaderTitle","container","borderRadius"],"sources":["src/components/modules/manage-module-references/manage-module-references.scss?tag=gx-ide-manage-module-references&encapsulation=shadow","src/components/modules/manage-module-references/manage-module-references.tsx"],"sourcesContent":["@import \"../../../global/gx-ide-common.scss\";\n@import \"../../../global/gx-ide-mixins.scss\";\n\n/*--- General ---*/\np,\nul {\n font-size: var(--font-size-lg);\n margin: 0;\n}\np {\n line-height: 1.6em;\n}\n/*--- Header ---*/\n.header {\n align-items: center;\n grid-template-columns: 1fr auto;\n grid-template-rows: 1fr;\n}\n.main {\n display: grid;\n //grid-template-columns: 1fr 2fr 1fr;\n grid-template-columns: 1fr 1fr;\n grid-template-rows: 1fr;\n height: 100%;\n overflow: auto;\n}\nch-grid-columnset {\n display: none;\n}\nch-grid-row[selected] {\n gxg-icon[data-action=\"install\"] {\n //WA to improve visibility\n filter: brightness(2);\n }\n}\n.grid-cell-module {\n &__info {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--mer-spacing--3xs);\n }\n &__name {\n font-weight: var(--mer-font__weight--bold);\n }\n &__name,\n &__description {\n line-height: 1.55em;\n }\n}\n\n/*--- Servers Container ---*/\n.grid-container {\n height: 100%;\n overflow: auto;\n gx-ide-empty-state {\n height: 100%;\n }\n}\n.servers-container {\n display: none;\n height: 100%;\n &__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--gxg-list-box-main__padding) var(--gxg-list-box-main__padding)\n 0 var(--gxg-list-box-main__padding);\n\n gxg-button {\n width: 100%;\n }\n }\n}\n\n/*--- Modules (Header) ---*/\n.modules {\n &__header {\n padding: var(--gxg-list-box-main__padding);\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--xs);\n }\n &__combo-container {\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--xs);\n }\n &__server-commands {\n display: flex;\n gap: var(--mer-spacing--xs);\n }\n &__combo {\n gxg-combo-box {\n flex: 1;\n }\n display: flex;\n flex-direction: row;\n gap: var(--mer-spacing--xs);\n }\n &__container {\n border-inline-end: var(--mer-border__width--sm) solid\n var(--gx-ide-container-border-color);\n display: grid;\n grid-template-rows: auto 1fr;\n height: 100%;\n overflow: auto;\n }\n &__main {\n display: grid;\n grid-template-rows: auto 1fr;\n height: 100%;\n overflow: auto;\n\n &-header {\n display: flex;\n padding: var(--mer-spacing--xs);\n flex-direction: column;\n gap: var(--mer-spacing--xs);\n }\n }\n}\n\n/*--- Module Info ---*/\n.module-info {\n display: grid;\n grid-template-rows: auto 1fr;\n height: 100%;\n overflow: auto;\n\n &__title {\n display: flex;\n align-items: center;\n gap: var(--mer-spacing--xs);\n }\n\n &__name {\n display: flex;\n align-items: center;\n gap: var(--mer-spacing--sm);\n --ds-icon-size-box--regular: 24px;\n --ds-icon-size--regular: 24px;\n font-weight: var(--mer-font__weight--bold);\n }\n\n &__header {\n padding: var(--gx-ide-container__padding);\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--xs);\n border-block-end: var(--mer-border__width--sm) solid\n var(--gx-ide-container-border-color);\n }\n\n &__action-container {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--mer-spacing--xs);\n &:before {\n content: \"\";\n width: var(--mer-spacing--xs);\n height: var(--mer-spacing--xs);\n border-radius: 50%;\n display: block;\n background-color: var(--mer-icon__primary--disabled);\n }\n &--installed:before {\n background-color: var(--mer-icon__primary);\n }\n &--uninstallable:before {\n background-color: var(--mer-icon__warning);\n }\n }\n\n &__warning-message {\n margin-block-start: var(--mer-spacing--2xs);\n background-color: var(--mer-color__tinted-yellow--5);\n color: var(--mer-text__on-elevation);\n border: var(--mer-border__width--sm) solid var(--mer-border-color__warning);\n border-radius: var(--mer-border__radius--sm);\n padding: var(--mer-spacing--xs) var(--mer-spacing--md);\n }\n\n &__divider {\n width: calc(100% - var(--gx-ide-container__padding) * 4);\n padding: 0 var(--gx-ide-container__padding);\n margin: 0 auto;\n border: 0;\n border-block-end: var(--mer-border__width--sm) solid\n var(--gx-ide-container-border-color);\n }\n &__properties {\n display: flex;\n flex-direction: column;\n padding: var(--gx-ide-container__padding);\n gap: var(--mer-spacing--xs);\n overflow: auto;\n }\n}\n\n.md-property {\n display: grid;\n gap: var(--mer-spacing--xs);\n\n &--inline {\n grid-template-columns: auto 1fr;\n }\n &--block {\n }\n &__key {\n font-weight: var(--font-weight-bold);\n max-width: 150px;\n }\n &__value {\n font-size: var(--mer-font__size--2xs);\n }\n &__key,\n &__value {\n > * {\n display: inline-block;\n }\n }\n &__list {\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--xs);\n > ul {\n margin: 0;\n padding: 0;\n list-style-type: none;\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--2xs);\n margin-inline-start: var(--mer-spacing--xs);\n\n li {\n position: relative;\n padding-inline-start: 12px;\n line-height: var(--ds-base-font-line-height--comfortable);\n &::before {\n content: \"\";\n position: absolute;\n left: 0;\n top: 7px;\n display: inline-block;\n width: var(--mer-spacing--2xs);\n height: var(--mer-spacing--2xs);\n background-color: var(--mer-text__on-surface);\n }\n }\n }\n }\n}\n\n.md-property,\n.md-property__list {\n border-block-end: var(--mer-border__width--sm) solid\n var(--gx-ide-container-border-color);\n padding-block-end: var(--mer-spacing--xs);\n\n &:last-child {\n border-block-end: 0;\n padding-block-end: 0;\n }\n}\n\ngxg-ide-loader {\n border-radius: var(--mer-border__radius--md);\n}\n\n.button-wrapper {\n display: grid;\n align-items: center;\n justify-content: center;\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Event,\n Element,\n EventEmitter,\n Method,\n State,\n Watch\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { Color } from \"@genexus/gemini\";\nimport { topStateBarType } from \"@genexus/gemini\";\nimport { TabularGridSelectionChangedEvent } from \"@genexus/chameleon-controls-library\";\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\n/* CUSTOM IMPORTS */\nimport {\n ModuleServerData,\n ModuleData,\n ModuleActionType,\n ModuleFilterType,\n ModulePropertyData,\n ModuleVersionData\n} from \"../types\";\nimport { renderModuleDataProperties } from \"../../../common/common\";\nimport { Locale } from \"../../../common/locale\";\nimport { ContextMenuInfo } from \"../../../common/types\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n // \"utils/form\",\n // \"utils/layout\",\n // \"utils/typography\",\n // \"components/button\",\n // \"components/checkbox\",\n // \"components/edit\",\n \"components/tabular-grid\"\n];\n\n@Component({\n tag: \"gx-ide-manage-module-references\",\n styleUrl: \"manage-module-references.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/manage-module-references\"]\n})\nexport class GxManageModuleReferences {\n // 1.OWN PROPERTIES | WATCH'S //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n /* selectedServerIdOnModulesAllUpdate is updated every time modulesAll is modified, in order to determine if the server is the same or not.*/\n private selectedServerIdOnModulesAllUpdate: string;\n\n #filterIcon = getIconPath({\n category: \"system\",\n name: \"filters\",\n colorType: \"on-elevation\"\n });\n #moduleIcon = getIconPath({\n category: \"objects\",\n name: \"module\"\n });\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeManageModuleReferencesElement;\n private loaderEl!: HTMLGxgIdeLoaderElement;\n private serversDetail!: HTMLDivElement;\n\n // 3.STATE() VARIABLES //\n\n @State() modulesAll: ModuleData[] = [];\n @Watch(\"modulesAll\")\n modulesAllWatcher(modulesAll: ModuleData[]) {\n this.updateModulesSelectedVersion(modulesAll);\n }\n @State() filteredModules: ModuleData[] = [];\n @State() selectedModule: ModuleData;\n @State() selectedServerId: string;\n @State() selectedModuleAction: ActionInfo = {\n message: \"\",\n progress: 0,\n state: \"in-progress\"\n };\n @State() modulesSelectedVersion: Map<string, string> = new Map();\n @State() actionCompleted = true;\n @State() closeProgressBar = true;\n @State() progressValue: number = 0;\n @State() progressState: topStateBarType = \"in-progress\";\n @State() loadingServer = false;\n @State() reRenderCounter: number = 0;\n @Watch(\"loadingServer\")\n loadingServerHandler(loading: boolean) {\n if (loading) {\n this.loaderEl.show = true;\n } else {\n this.loaderEl.show = false;\n }\n }\n\n // 4.PUBLIC PROPERTY API //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * List of module servers currently cataloged\n */\n @Prop() readonly servers: ModuleServerData[] = [];\n\n /**\n * Callback invoked when a server is selected. Returns the set of modules available on that server.\n */\n @Prop() readonly serverSelectedCallback: ServerSelectedCallback;\n\n /**\n * Callback invoked when the user wants to execute the action corresponding to a selected module. When the action begins to be executed, the component must be able to show the progress of the action. For this, the onProgress parameter is available, which is in turn a callback used by the host to notify the progress by text message and percentage.\n */\n @Prop() readonly executeActionCallback: ExecuteActionCallback;\n\n /**\n * Callback invoked when Add button is clicked\n */\n @Prop() readonly addServerCallback: AddServerCallback;\n\n /**\n * Callback invoked when an element is right clicked on servers list\n */\n @Prop() readonly serverContextMenuCallback: ServerContextMenuCallback;\n\n /**\n * Allows you to hide the button (...) that executes serverContextMenuCallback, if we do not implement the commands in a first version\n */\n @Prop() readonly showServerCommands: boolean = false;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n // 6.COMPONENT LIFECYCLE EVENTS //\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n async componentDidLoad() {\n await this.serverSelectedCallbackHandler(this.servers[0].id, false);\n }\n\n // 7.LISTENERS //\n\n @Watch(\"modulesAll\")\n onPropValueChange(newModulesData: ModuleData[]) {\n this.filteredModules = [...newModulesData];\n }\n\n // 8.PUBLIC METHODS API //\n\n /**\n * validate\n */\n @Method()\n async validate(): Promise<boolean> {\n return true;\n }\n\n // 9.LOCAL METHODS //\n\n private updateModulesSelectedVersion = (modulesAll: ModuleData[]) => {\n if (this.selectedServerId !== this.selectedServerIdOnModulesAllUpdate) {\n // the server has changed. clear the updateModulesSelectedVersion\n this.modulesSelectedVersion.clear();\n modulesAll.forEach(module => {\n // this.modulesSelectedVersion.set(module.id, module.versions[0].id);\n this.modulesSelectedVersion.set(\n module.id,\n module.versions[module.versions.length - 1].id\n );\n });\n } else {\n // the server has't changed. only add the module to the map, if it is a new module.\n modulesAll.forEach(module => {\n const newModule =\n this.modulesSelectedVersion.get(module.id) === undefined;\n if (newModule) {\n this.modulesSelectedVersion.set(module.id, module.versions[0].id);\n }\n });\n }\n this.selectedServerIdOnModulesAllUpdate = this.selectedServerId;\n };\n\n private getActionFromCurrentModuleVersion = (): ModuleActionType => {\n const action = this.getModuleData(\n this.selectedModule,\n \"action\"\n ) as ModuleActionType;\n return action || \"install\";\n };\n\n /**\n * Callback invoked to get the progress when module is performing an action\n */\n private onProgress = (\n message: string,\n progress: number,\n state: topStateBarType\n ): void => {\n const data = { message, progress, state };\n this.selectedModuleAction = { ...data };\n this.progressValue = this.selectedModuleAction.progress;\n this.progressState = this.selectedModuleAction.state;\n };\n\n // 10.LOCAL METHODS //\n\n /**\n * Used for changing the selected module\n */\n private handleModuleChange = (\n event: CustomEvent<TabularGridSelectionChangedEvent>\n ) => {\n const selectedModuleId = event.detail.rowsId[0];\n const foundModule = this.modulesAll.find(\n item => item.id === selectedModuleId\n );\n if (foundModule) {\n this.selectedModule = foundModule;\n }\n };\n\n /**\n * Change the server selected value in response to callbackServerSelected callback\n */\n private serverSelectedCallbackHandler = async (id: any, reload: boolean) => {\n if (this.serverSelectedCallback) {\n this.loadingServer = true;\n const resolvedObjects = await this.serverSelectedCallback(id, reload);\n this.selectedServerId = id;\n this.modulesAll = [...resolvedObjects];\n this.filterModulesByType(\"browse\");\n this.selectedModule = this.filteredModules[0];\n this.loadingServer = false;\n }\n };\n\n private handleFilterChange = (value: string) => {\n value = value.trim().toLowerCase();\n if (value) {\n this.filteredModules = this.modulesAll.filter(module => {\n const selectedVersionName = this.getModuleData(\n module,\n \"name\"\n ) as string;\n return selectedVersionName?.toLowerCase().includes(value);\n });\n } else {\n this.filteredModules = this.modulesAll;\n }\n };\n\n private handleFilterChangeHandler = (e: CustomEvent<string>) => {\n const value = e.detail;\n return this.handleFilterChange(value);\n };\n\n /**\n * Perform an action relative to a module using callbackExecuteAction callback and receive the state of that action with onProgress callback\n */\n private executeActionCallbackHandler = async (module: ModuleData) => {\n if (this.executeActionCallback) {\n const moduleSelectedVersionId = this.modulesSelectedVersion.get(\n module.id\n );\n const actionCompleted = await this.executeActionCallback(\n this.selectedServerId,\n module.id,\n moduleSelectedVersionId,\n this.getActionFromCurrentModuleVersion(),\n this.onProgress\n );\n if (actionCompleted) {\n this.serverSelectedCallbackHandler(this.selectedServerId, false);\n }\n this.actionCompleted = actionCompleted;\n }\n };\n\n private filterModulesByType = (type: ModuleFilterType) => {\n // browse\n if (type === \"browse\") {\n this.filteredModules = this.modulesAll;\n }\n // installed\n else if (type === \"installed\") {\n this.filteredModules = this.modulesAll.filter((module: ModuleData) => {\n // if the module has a currentVersion (not undefined) it means it is installed\n return module.currentVersion;\n });\n } else if (type === \"updates\") {\n this.filteredModules = this.modulesAll.filter((module: ModuleData) => {\n return module.versions.find(version => version.action === \"update\");\n });\n }\n };\n\n private showModuleMenu = async (e: MouseEvent) => {\n if (this.serverContextMenuCallback) {\n const buttonBoundingClientRect = (\n e.target as HTMLElement\n ).getBoundingClientRect();\n await this.serverContextMenuCallback({\n selection: [this.selectedServerId],\n clientX: buttonBoundingClientRect.x,\n clientY: buttonBoundingClientRect.y\n });\n }\n };\n\n private getModuleData = (\n module: ModuleData,\n dataType: keyof ModuleVersionData\n ): string | ModulePropertyData[] | undefined => {\n const selectedVersionId = this.modulesSelectedVersion.get(module.id);\n let selectedVersion;\n let selectedVersionData;\n if (selectedVersionId) {\n selectedVersion = module.versions.find(\n version => version.id === selectedVersionId\n );\n }\n if (selectedVersion) {\n selectedVersionData = selectedVersion[dataType];\n }\n return selectedVersionData;\n };\n\n private moduleActionHandler = (module: ModuleData) => () => {\n this.actionCompleted = false;\n this.closeProgressBar = false;\n this.executeActionCallbackHandler(module);\n };\n\n private renderModulesGrid = (): Element => {\n return (\n <ch-tabular-grid\n rowSelectionMode=\"single\"\n part=\"ch-grid-pending-commits\"\n class=\"tabular-grid servers-detail no-border\"\n onSelectionChanged={this.handleModuleChange}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"min-content\"\n ></ch-tabular-grid-column>\n\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n settingable={false}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"min-content\"\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n\n {this.filteredModules.map((module: ModuleData) => (\n <ch-tabular-grid-row\n class=\"tabular-grid-row\"\n rowid={module.id}\n key={module.id}\n selected={\n this.selectedModule && this.selectedModule.id === module.id\n }\n >\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <gxg-icon\n type=\"objects/module\"\n data-action={this.moduleVersionIconColor(module)}\n color={this.moduleVersionIconColor(module)}\n size=\"small\"\n ></gxg-icon>\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell grid-cell-module__info\">\n <span class=\"grid-cell-module__name\">\n {this.getModuleData(module, \"name\")}\n </span>\n <span class=\"grid-cell-module__description\">\n {this.getModuleData(module, \"description\")}\n </span>\n </ch-tabular-grid-cell>\n\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.selectedModule && this.selectedModule.id === module.id ? (\n <div class=\"button-wrapper\">\n <gxg-button\n disabled={\n !this.actionCompleted ||\n this.getModuleData(module, \"action\") === \"incompatible\" ||\n this.getModuleData(module, \"action\") === \"not-installable\"\n }\n fit\n part=\"module-action\"\n onClick={this.moduleActionHandler(module)}\n >\n {this.getActionFromCurrentModuleVersion()}\n </gxg-button>\n </div>\n ) : null}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid>\n );\n };\n\n private renderEmptyStateModules = () => {\n return (\n <gx-ide-empty-state\n stateIconSrc={this.#filterIcon}\n stateTitle={this._componentLocale.modules.noModulesFilter}\n ></gx-ide-empty-state>\n );\n };\n\n private moduleVersionIconColor = (module: ModuleData): Color => {\n const moduleAction = this.getModuleData(module, \"action\");\n const moduleCurrentVersion = module.currentVersion;\n if (moduleAction === \"not-installable\" || moduleAction === \"incompatible\") {\n return \"warning\";\n } else if (!moduleCurrentVersion) {\n return \"mercury-primary-disabled\";\n } else {\n return \"mercury-primary\";\n }\n };\n\n /* module details/information renders*/\n private renderVersionName = () => {\n return (\n <gxg-title part=\"module-info__name\" type=\"title-05\">\n <div class=\"module-info__name\">\n {/* <gxg-icon\n type=\"objects/module\"\n color={this.moduleVersionIconColor(this.selectedModule)}\n ></gxg-icon> */}\n {this.getModuleData(this.selectedModule, \"name\")}\n </div>\n </gxg-title>\n );\n };\n\n private renderVersionWarningMessage = () => {\n const warningMessage = this.getModuleData(\n this.selectedModule,\n \"warningMessage\"\n );\n if (warningMessage) {\n return <p class=\"module-info__alert-message\">{warningMessage}</p>;\n }\n };\n\n private renderInstalledVersion = () => {\n const currentVersion = this.selectedModule.currentVersion;\n let caption;\n let cssClass = \"module-info__action-container\";\n if (currentVersion) {\n caption = `${this._componentLocale.modulesInformation.moduleProperties.installed}: ${currentVersion}`;\n cssClass += ` module-info__action-container--installed`;\n } else {\n caption =\n this._componentLocale.modulesInformation.moduleProperties.notInstalled;\n }\n return (\n <div class={cssClass}>\n <gxg-text part=\"module-info__action\">{caption}</gxg-text>\n </div>\n );\n };\n\n private moduleVersionsValueChangedHandler = (e: CustomEvent<any>) => {\n const versionId = e.detail;\n this.updateSelectedModuleVersion(versionId);\n };\n private moduleVersionsItemChangedHandler = (e: CustomEvent<any>) => {\n const versionId = e.detail.value;\n this.updateSelectedModuleVersion(versionId);\n };\n private updateSelectedModuleVersion = (versionId: string) => {\n if (versionId) {\n this.modulesSelectedVersion.set(this.selectedModule.id, versionId);\n this.reRenderCounter++;\n }\n };\n\n private renderModuleVersions = () => {\n return (\n <div part=\"available-versions\">\n <gxg-combo-box\n id=\"versions-combo-box\"\n disable-filter\n value={this.getModuleData(this.selectedModule, \"id\")}\n part=\"module-versions\"\n display-validation-styles\n display-validation-message\n label={\n this._componentLocale.modulesInformation.moduleProperties\n .availableVersions\n }\n labelPosition=\"start\"\n centerLabel\n onValueChanged={this.moduleVersionsValueChangedHandler}\n disabled={this.loadingServer}\n >\n {this.selectedModule.versions.map(item => (\n <gxg-combo-box-item\n value={item.id}\n onItemSelected={this.moduleVersionsItemChangedHandler}\n >\n {item.id}\n </gxg-combo-box-item>\n ))}\n </gxg-combo-box>\n </div>\n );\n };\n\n private selectedButtonChangedHandler = (e: CustomEvent<string>) => {\n const type = e.detail.replace(\"btn-\", \"\") as ModuleFilterType;\n this.filterModulesByType(type);\n };\n\n private serverItemSelectedHandler = (\n e: CustomEvent<{\n el: HTMLGxgComboBoxItemElement;\n index: number;\n value: any;\n icon?: string;\n }>\n ) => {\n const serverId = e.detail.value;\n this.serverSelectedCallbackHandler(serverId, false);\n };\n\n private serverValueChangedHandler = (e: CustomEvent<any>) => {\n const serverId = e.detail;\n this.serverSelectedCallbackHandler(serverId, false);\n };\n\n private progressBarCloseHandler = () => {\n setTimeout(() => {\n this.actionCompleted = true;\n this.closeProgressBar = true;\n // reset\n this.progressValue = 0;\n this.progressState = \"in-progress\";\n }, 400);\n // delay to force the footer line disappear after the top-state-bar has been closed.\n };\n\n private reloadServer = () => {\n this.serverSelectedCallbackHandler(this.selectedServerId, true);\n };\n\n // 11.RENDER() FUNCTION //\n\n render(): void {\n return (\n <Host\n class={{\n \"gx-ide-component\": true\n }}\n >\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n noContentPadding\n noAboveFooterPadding\n noBorderAboveFooter={this.closeProgressBar}\n part=\"servers\"\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n >\n {/* Servers*/}\n <main class=\"main\">\n <div class=\"modules__container\">\n <header class=\"modules__header\">\n <div class=\"modules__combo-container\">\n <gxg-label>\n {this._componentLocale.modules.selectServer}\n </gxg-label>\n <div class=\"modules__combo\">\n <gxg-combo-box\n disableFilter\n onValueChanged={this.serverValueChangedHandler}\n >\n {this.servers.map(item => (\n <gxg-combo-box-item\n value={item.id}\n onItemSelected={this.serverItemSelectedHandler}\n >\n {item.name}\n </gxg-combo-box-item>\n ))}\n </gxg-combo-box>\n {this.showServerCommands ? (\n <span class=\"modules__server-commands\">\n <gxg-button\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/show-more-horizontal\"\n onClick={this.showModuleMenu}\n ></gxg-button>\n </span>\n ) : null}\n <gxg-button\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/reset\"\n onClick={this.reloadServer}\n ></gxg-button>\n </div>\n </div>\n </header>\n\n <div class=\"modules__main\">\n <div class=\"modules__main-header\">\n <gxg-form-text\n label={this._componentLocale.modules.searchModules}\n labelPosition=\"above\"\n centerLabel={false}\n onValueChanged={this.handleFilterChangeHandler}\n disabled={this.loadingServer}\n ></gxg-form-text>\n <gxg-buttons-container\n reduced\n fullWidth\n class=\"modules__browser\"\n onSelectedButtonChanged={\n this.selectedButtonChangedHandler\n }\n >\n <gxg-button\n id=\"btn-browse\"\n selected\n disabled={this.loadingServer}\n >\n {this._componentLocale.modules.buttonsContainer.browse}\n </gxg-button>\n <gxg-button\n id=\"btn-installed\"\n disabled={this.loadingServer}\n >\n {\n this._componentLocale.modules.buttonsContainer\n .installed\n }\n </gxg-button>\n <gxg-button\n id=\"btn-updates\"\n disabled={this.loadingServer}\n >\n {this._componentLocale.modules.buttonsContainer.updates}\n </gxg-button>\n </gxg-buttons-container>\n </div>\n {/* modules grid*/}\n <div\n class=\"grid-container\"\n ref={el => (this.serversDetail = el as HTMLDivElement)}\n >\n {this.filteredModules.length > 0\n ? this.renderModulesGrid()\n : this.renderEmptyStateModules()}\n </div>\n </div>\n </div>\n\n {/* Module version information*/}\n {this.selectedModule ? (\n <div class=\"module-info\">\n <header class=\"module-info__header\">\n {this.renderVersionName()}\n {this.renderInstalledVersion()}\n {this.renderModuleVersions()}\n {/* {this.renderNotInstallable()} */}\n {this.renderVersionWarningMessage()}\n </header>\n <div class=\"module-info__properties gxg-scrollbar\">\n {renderModuleDataProperties(\n this.getModuleData(\n this.selectedModule,\n \"properties\"\n ) as ModulePropertyData[]\n )}\n </div>\n </div>\n ) : (\n <gx-ide-empty-state\n class=\"recent-objects__empty-state\"\n stateIconSrc={this.#moduleIcon}\n stateTitle={\n this._componentLocale.modulesInformation.emptyState.title\n }\n stateDescription={\n this._componentLocale.modulesInformation.emptyState\n .description\n }\n ></gx-ide-empty-state>\n )}\n </main>\n {/* Top State Bar*/}\n <gxg-top-state-bar\n slot=\"footer-above\"\n part=\"progress-bar\"\n stateType={this.progressState}\n noBorder\n caption={\n this.selectedModuleAction.message ||\n this._componentLocale.progressBar.defaultCaption\n }\n progress={this.progressValue}\n active={!this.actionCompleted || !this.closeProgressBar}\n closeType=\"not-progress\"\n closedCallback={this.progressBarCloseHandler}\n ></gxg-top-state-bar>\n </gx-ide-container>\n </div>\n <gxg-ide-loader\n loaderTitle={this._componentLocale.servers.loading}\n ref={el => (this.loaderEl = el as HTMLGxgIdeLoaderElement)}\n container={this.serversDetail}\n borderRadius=\"0 0 0 8px\"\n ></gxg-ide-loader>\n </Host>\n );\n }\n}\n\nexport type ExecuteActionCallback = (\n serverId: string,\n moduleId: string,\n moduleVersionId: string,\n action: ModuleActionType,\n onProgress: (\n message: string,\n progress: number,\n state: topStateBarType\n ) => void\n) => Promise<boolean>;\n\nexport type ServerSelectedCallback = (\n id: string,\n reload: boolean\n) => Promise<ModuleData[]>;\n\nexport type AddServerCallback = () => Promise<void>;\n\nexport type ServerContextMenuCallback = (\n contextMenuInfo: ContextMenuInfo\n) => Promise<void>;\nexport interface ActionInfo {\n message: string;\n progress: number;\n state: topStateBarType;\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["renderFormItems","componentType","options","group","callback","length","items","forEach","option","item","h","checkboxId","id","checked","disabled","label","value","onChange","iconName","part","push","icon","radioId","name","renderModuleDataProperties","Array","isArray","class","map","subItem","inline","getSelectedItem","gxOptions","found","undefined","i","selected","ANIMATION_DOTS","size","color","n","colorVar","width","height","fill","cx","cy","r","opacity","attributeName","values","dur","repeatCount","begin"],"sources":["src/common/common.tsx"],"sourcesContent":["/* STENCIL IMPORTS */\nimport { h } from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { GxgFormItemsArray, GxOption } from \"./types\";\nimport { ModulePropertyData } from \"../components/modules/types\";\nexport const renderFormItems = (\n componentType:\n | \"gxg-combo-box-item\"\n | \"gxg-form-checkbox\"\n | \"gxg-form-radio\" = \"gxg-combo-box-item\",\n options: Array<GxOption>,\n group = \"undefined-group\",\n callback?: any\n): GxgFormItemsArray => {\n if (options.length) {\n const items: GxgFormItemsArray = [];\n options.forEach(option => {\n let item;\n switch (componentType) {\n case \"gxg-form-checkbox\":\n item = (\n <gxg-form-checkbox\n checkboxId={option.id}\n checked={option.checked}\n disabled={option.disabled}\n label={option.label}\n value={option.value}\n onChange={callback ? callback : null}\n iconName={option.iconName}\n part={`${group}-${option.id}`}\n ></gxg-form-checkbox>\n );\n items.push(item);\n break;\n case \"gxg-combo-box-item\":\n item = (\n <gxg-combo-box-item\n value={option.id}\n icon={option.iconName}\n part={`${group}-${option.id}`}\n >\n {option.label}\n </gxg-combo-box-item>\n );\n items.push(item);\n break;\n case \"gxg-form-radio\":\n item = (\n <gxg-form-radio\n radioId={option.id}\n checked={option.checked}\n disabled={option.disabled}\n label={option.label}\n value={option.value}\n name={group}\n part={`${group}-${option.id}`}\n ></gxg-form-radio>\n );\n items.push(item);\n break;\n default:\n break;\n }\n });\n return items;\n }\n return null;\n};\n\nexport const renderModuleDataProperties = (\n options: Array<ModulePropertyData>\n): ModulePropertyData[] => {\n if (options.length) {\n const items: ModulePropertyData[] = [];\n\n options.forEach(option => {\n if (Array.isArray(option.value)) {\n const item = (\n <div class=\"md-property__list\">\n <p class=\"md-property__key\">{option.name} :</p>\n <ul>\n {option.value.map(subItem => {\n return <li>{subItem}</li>;\n })}\n </ul>\n </div>\n );\n items.push(item);\n } else {\n const item = (\n <div\n class={\n option.inline\n ? \"md-property md-property--inline\"\n : \"md-property--block\"\n }\n >\n <p class=\"md-property__key\">{option.name} :</p>\n <p class=\"md-property__value\">{option.value}</p>\n </div>\n );\n items.push(item);\n }\n });\n\n return items;\n }\n return null;\n};\n\n/**\n * @param gxOptions An array of GxOptions's\n * @returns The first option in the array that is 'selected'. If no one found it returns null.\n */\nexport const getSelectedGxOption = (\n gxOptions: GxOption[],\n onlyId = true\n): GxOption | string | void => {\n if (gxOptions?.length > 0) {\n let found = null;\n for (let i = 0; i < gxOptions.length; i++) {\n if (gxOptions[i].selected) {\n found = gxOptions[i];\n break;\n }\n }\n if (found && onlyId) {\n return found.id;\n } else if (!found && onlyId) {\n return gxOptions[0].id;\n }\n return found;\n }\n};\n\n/**\n * @param gxOptions An array of GxOptions's\n * @returns The value of the selected item, or the first item, if no one is selected.\n */\nexport const getSelectedItem = (gxOptions: GxOption[]): string => {\n let found = undefined;\n for (let i = 0; i < gxOptions.length; i++) {\n if (gxOptions[i].selected) {\n found = gxOptions[i];\n break;\n }\n }\n if (found) {\n return found.id;\n } else {\n return gxOptions[0].id;\n }\n};\n\nexport const getSelectedItem2 = (\n gxOptions: GxOption[] | undefined\n): string | undefined =>\n gxOptions\n ? (gxOptions.find(item => item.selected) ?? gxOptions[0]).id\n : undefined;\n\n// Dots animation used in ch-chat code-render (or other components)\nexport const ANIMATION_DOTS = (\n size: \"regular\" | \"tiny\" = \"regular\",\n color: \"primary\" | \"on-surface\" = \"primary\"\n): SVGElement => {\n const n = size === \"regular\" ? 1 : 4;\n const colorVar =\n color === \"primary\"\n ? \"var(--mer-color__primary--200)\"\n : \"var(--mer-text__on-surface)\";\n\n return (\n <svg width={36 / n} height={8 / n} fill=\"transparent\">\n <circle cx={4 / n} cy={4 / n} r={4 / n} opacity=\"0\" fill={colorVar}>\n <animate\n attributeName=\"opacity\"\n values=\"0;1;0\"\n dur=\"1s\"\n repeatCount=\"indefinite\"\n />\n </circle>\n <circle cx={18 / n} cy={4 / n} r={4 / n} opacity=\"0\" fill={colorVar}>\n <animate\n attributeName=\"opacity\"\n values=\"0;1;0\"\n dur=\"1s\"\n begin=\"0.15s\"\n repeatCount=\"indefinite\"\n />\n </circle>\n <circle cx={32 / n} cy={4 / n} r={4 / n} opacity=\"0\" fill={colorVar}>\n <animate\n attributeName=\"opacity\"\n values=\"0;1;0\"\n dur=\"1s\"\n begin=\"0.30s\"\n repeatCount=\"indefinite\"\n />\n </circle>\n </svg>\n );\n};\n"],"mappings":";;4BAMaA,kBAAkB,CAC7BC,IAGuB,sBACvBC,GACAC,IAAQ,mBACRC;EAEA,IAAIF,EAAQG,QAAQ;IAClB,MAAMC,IAA2B;IACjCJ,EAAQK,SAAQC;MACd,IAAIC;MACJ,QAAQR;OACN,KAAK;QACHQ,IACEC,EAAA;UACEC,YAAYH,EAAOI;UACnBC,SAASL,EAAOK;UAChBC,UAAUN,EAAOM;UACjBC,OAAOP,EAAOO;UACdC,OAAOR,EAAOQ;UACdC,UAAUb,IAAWA,IAAW;UAChCc,UAAUV,EAAOU;UACjBC,MAAM,GAAGhB,KAASK,EAAOI;;QAG7BN,EAAMc,KAAKX;QACX;;OACF,KAAK;QACHA,IACEC,EAAA;UACEM,OAAOR,EAAOI;UACdS,MAAMb,EAAOU;UACbC,MAAM,GAAGhB,KAASK,EAAOI;WAExBJ,EAAOO;QAGZT,EAAMc,KAAKX;QACX;;OACF,KAAK;QACHA,IACEC,EAAA;UACEY,SAASd,EAAOI;UAChBC,SAASL,EAAOK;UAChBC,UAAUN,EAAOM;UACjBC,OAAOP,EAAOO;UACdC,OAAOR,EAAOQ;UACdO,MAAMpB;UACNgB,MAAM,GAAGhB,KAASK,EAAOI;;QAG7BN,EAAMc,KAAKX;QACX;;;IAKN,OAAOH;;EAET,OAAO;AAAI;;MAGAkB,6BACXtB;EAEA,IAAIA,EAAQG,QAAQ;IAClB,MAAMC,IAA8B;IAEpCJ,EAAQK,SAAQC;MACd,IAAIiB,MAAMC,QAAQlB,EAAOQ,QAAQ;QAC/B,MAAMP,IACJC,EAAA;UAAKiB,OAAM;WACTjB,EAAA;UAAGiB,OAAM;WAAoBnB,EAAOe,M,OACpCb,EAAA,YACGF,EAAOQ,MAAMY,KAAIC,KACTnB,EAAA,YAAKmB;QAKpBvB,EAAMc,KAAKX;aACN;QACL,MAAMA,IACJC,EAAA;UACEiB,OACEnB,EAAOsB,SACH,oCACA;WAGNpB,EAAA;UAAGiB,OAAM;WAAoBnB,EAAOe,M,OACpCb,EAAA;UAAGiB,OAAM;WAAsBnB,EAAOQ;QAG1CV,EAAMc,KAAKX;;;IAIf,OAAOH;;EAET,OAAO;AAAI;;;;;UAgCAyB,kBAAmBC;EAC9B,IAAIC,IAAQC;EACZ,KAAK,IAAIC,IAAI,GAAGA,IAAIH,EAAU3B,QAAQ8B,KAAK;IACzC,IAAIH,EAAUG,GAAGC,UAAU;MACzBH,IAAQD,EAAUG;MAClB;;;EAGJ,IAAIF,GAAO;IACT,OAAOA,EAAMrB;SACR;IACL,OAAOoB,EAAU,GAAGpB;;;;;MAYXyB,iBAAiB,CAC5BC,IAA2B,WAC3BC,IAAkC;EAElC,MAAMC,IAAIF,MAAS,YAAY,IAAI;EACnC,MAAMG,IACJF,MAAU,YACN,mCACA;EAEN,OACE7B,EAAA;IAAKgC,OAAO,KAAKF;IAAGG,QAAQ,IAAIH;IAAGI,MAAK;KACtClC,EAAA;IAAQmC,IAAI,IAAIL;IAAGM,IAAI,IAAIN;IAAGO,GAAG,IAAIP;IAAGQ,SAAQ;IAAIJ,MAAMH;KACxD/B,EAAA;IACEuC,eAAc;IACdC,QAAO;IACPC,KAAI;IACJC,aAAY;OAGhB1C,EAAA;IAAQmC,IAAI,KAAKL;IAAGM,IAAI,IAAIN;IAAGO,GAAG,IAAIP;IAAGQ,SAAQ;IAAIJ,MAAMH;KACzD/B,EAAA;IACEuC,eAAc;IACdC,QAAO;IACPC,KAAI;IACJE,OAAM;IACND,aAAY;OAGhB1C,EAAA;IAAQmC,IAAI,KAAKL;IAAGM,IAAI,IAAIN;IAAGO,GAAG,IAAIP;IAAGQ,SAAQ;IAAIJ,MAAMH;KACzD/B,EAAA;IACEuC,eAAc;IACdC,QAAO;IACPC,KAAI;IACJE,OAAM;IACND,aAAY;;AAGZ"}
@@ -1,146 +0,0 @@
1
- import { h as e } from "./p-25a9f1d7.js";
2
-
3
- const n = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ];
4
-
5
- const daysFromToday = e => {
6
- const n = new Date;
7
- // To calculate the time difference of two dates
8
- const t = n.getTime() - e.getTime();
9
- // To calculate the no. of days between two dates
10
- const s = t / (1e3 * 3600 * 24);
11
- return Math.floor(s);
12
- };
13
-
14
- // - - - - - - - - - - - -
15
- // Date Functions
16
- // - - - - - - - - - - - -
17
- const isToday = e => {
18
- const n = new Date;
19
- if (n.toDateString() === e.toDateString()) {
20
- return true;
21
- }
22
- return false;
23
- };
24
-
25
- const isYesterday = e => {
26
- const n = new Date;
27
- n.setDate(n.getDate() - 1);
28
- if (n.toDateString() === e.toDateString()) {
29
- return true;
30
- }
31
- return false;
32
- };
33
-
34
- const formatDate = (e, t = "date-time") => {
35
- var s;
36
- let o;
37
- // validate date
38
- // undefined or null
39
- if (e === undefined || e === null) {
40
- return "";
41
- }
42
- // If the date object is invalid it will return 'NaN' on getTime() and NaN is never equal to itself
43
- const r = e.getTime() === e.getTime();
44
- if (!r) {
45
- return "Invalid date";
46
- }
47
- let a = "en-US";
48
- const c = (s = document.getElementsByTagName("html")[0].getAttribute("lang")) === null || s === void 0 ? void 0 : s.valueOf();
49
- if (c === "es") {
50
- a = "es-ES";
51
- }
52
- o = e.toLocaleDateString(a);
53
- const i = e.getFullYear();
54
- const u = String(e.getMonth() + 1).padStart(2, "0");
55
- const l = String(e.getDate()).padStart(2, "0");
56
- const d = String(e.getHours()).padStart(2, "0");
57
- const $ = String(e.getMinutes()).padStart(2, "0");
58
- const f = `${d}:${$}`;
59
- if (t === "date-time") {
60
- o += ` / ${e.toLocaleTimeString()}`;
61
- } else if (t === "date-time-short") {
62
- // No seconds
63
- if (a === "es-ES") {
64
- o = `${i}-${u}-${l} ${f}`;
65
- } else {
66
- o = `${u}/${l}/${i} ${f}`;
67
- }
68
- } else {
69
- const t = daysFromToday(e);
70
- const s = new Date;
71
- const r = s.getFullYear();
72
- if (isToday(e)) {
73
- return `Today ${f}`;
74
- } else if (isYesterday(e)) {
75
- return `Yesterday ${f}`;
76
- } else if (t <= 7) {
77
- // If one week or less, just show the day of the week, and the time
78
- const t = n[e.getDay()];
79
- return `${t} ${f}`;
80
- } else if (r === i) {
81
- // If current year, show day number and month name. Example: November 17th
82
- if (a === "es-ES") {
83
- o = `${l} de ${e.toLocaleString("es-ES", {
84
- month: "long"
85
- })} ${f}`;
86
- } else {
87
- o = `${e.toLocaleString("en-US", {
88
- month: "long"
89
- })} ${l} ${f}`;
90
- }
91
- } else {
92
- // Display date as usual
93
- o = formatDate(e, "date-time-short");
94
- }
95
- }
96
- return o;
97
- };
98
-
99
- const escapeRegExp = e => e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
100
-
101
- /**
102
- * @description this function highlights the character(s) that match(es) the filter value.
103
- * hiChar comes from (hi)light (Char)acters
104
- * @param text the string to find the filter value on
105
- * @param filterValue the filter value
106
- * @returns a span element
107
- */ const hiChar = function(n, t) {
108
- if (n && t) {
109
- const s = escapeRegExp(t);
110
- const o = new RegExp(s, "gi");
111
- return e("span", {
112
- innerHTML: n.replace(o, '<span class="hiChar">$&</span>')
113
- });
114
- } else {
115
- return n;
116
- }
117
- };
118
-
119
- const closeOnOutsideClickHandler = (e, n) => {
120
- if (!e.composedPath().includes(n)) {
121
- return true;
122
- }
123
- };
124
-
125
- const mapOptionsToComboBoxItemModel = e => e.map((e => ({
126
- value: e.id,
127
- caption: e.label
128
- })));
129
-
130
- const renderChCheckboxItems = (n, t, s) => n === null || n === void 0 ? void 0 : n.map((n => {
131
- const o = s === null || s === void 0 ? void 0 : s.find((e => n.value === e || n.id === e));
132
- return e("ch-checkbox", {
133
- name: n.name,
134
- class: "checkbox",
135
- checkedValue: n.value || n.id,
136
- caption: n.label,
137
- disabled: n.disabled,
138
- value: o,
139
- onInput: t,
140
- startImgSrc: n.iconName,
141
- key: n.value || n.id
142
- });
143
- }));
144
-
145
- export { closeOnOutsideClickHandler as c, formatDate as f, hiChar as h, mapOptionsToComboBoxItemModel as m, renderChCheckboxItems as r };
146
- //# sourceMappingURL=p-9ddea83b.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["daysOfWeek","daysFromToday","date","today","Date","timeDifference","getTime","daysDifference","Math","floor","isToday","toDateString","isYesterday","yesterday","setDate","getDate","formatDate","type","formattedDate","undefined","dateIsValid","locale","lang","_a","document","getElementsByTagName","getAttribute","valueOf","toLocaleDateString","year","getFullYear","month","String","getMonth","padStart","day","hours","getHours","minutes","getMinutes","time","toLocaleTimeString","daysPassedFromToday","currentYear","getDay","toLocaleString","escapeRegExp","str","replace","hiChar","text","filterValue","escapedFilterValue","re","RegExp","h","innerHTML","closeOnOutsideClickHandler","eventInfo","ref","composedPath","includes","mapOptionsToComboBoxItemModel","options","map","option","value","id","caption","label","renderChCheckboxItems","frontEndCheckboxInputHandler","checkedIds","find","name","class","checkedValue","disabled","onInput","startImgSrc","iconName","key"],"sources":["src/common/helpers.tsx"],"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"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["bpmAppDeclarationCss","CSS_BUNDLES","ADD_ICON","getIconPath","category","name","colorType","FILTER_ICON","MORE_ICON","SUGGEST_OPTIONS","alreadyProcessed","autoExpand","hideMatchesAndShowNonMatches","highlightMatchedItems","matchCase","regularExpression","strict","renderActiveItemIconOnExpand","GxIdeBpmAppDeclaration","_GxIdeBpmAppDeclaration_componentLocale","set","this","_GxIdeBpmAppDeclaration_animateEmptyState","_GxIdeBpmAppDeclaration_shortcutsSrc","getAssetPath","_GxIdeBpmAppDeclaration_ACCESS_CAPTION_MAP","in","undefined","out","inout","_GxIdeBpmAppDeclaration_setAccessCaptions","__classPrivateFieldGet","dataMappings","access","_GxIdeBpmAppDeclaration_applicationInputChangedHandler","async","event","selectedApplicationName","detail","application","mappings","getDataMappingCallback","_GxIdeBpmAppDeclaration_cancelCallbackHandler","cancelCallback","_GxIdeBpmAppDeclaration_clearApplicationHandler","typeIcon","_GxIdeBpmAppDeclaration_confirmCallbackHandler","confirmCallback","_GxIdeBpmAppDeclaration_mapRelevantDataOptionsToComboBoxModel","relevantDataOptions","map","optionName","caption","value","_GxIdeBpmAppDeclaration_mapSuggestedApplicationsToComboBoxModel","suggestedApplicationsNames","applicationName","_GxIdeBpmAppDeclaration_relevantDataInputHandler","mappingIndex","inputValue","relevantData","_GxIdeBpmAppDeclaration_selectApplicationCallbackHandler","applicationDeclarationData","selectApplicationCallback","_GxIdeBpmAppDeclaration_setApplicationData","call","_GxIdeBpmAppDeclaration_selectMappingCallbackHandler","parameter","returnedRelevantData","selectMappingCallback","currentRelevantDataOptions","indexOfReturnedRelevantData","indexOf","push","_GxIdeBpmAppDeclaration_updateApplicationData","applicationData","applicationComboBoxModel","startImgSrc","_GxIdeBpmAppDeclaration_suggestInputHandler","suggestedApplicationNames","suggestApplicationsCallback","Object","assign","_GxIdeBpmAppDeclaration_renderDataMappingsGrid","applicationDataToDisplay","length","__classPrivateFieldSet","h","class","title","scrollable","part","columnName","_a","firstColName","firstColNameParameter","settingable","size","config","tabularGrid","colSize","common","secondColName","sortable","auto","obj","index","rowId","key","model","onInput","onClick","buttons","selectMapping","src","isAnimated","stateIconSrc","stateTitle","emptyState","stateDescription","description","componentWillLoad","Locale","getComponentStrings","el","render","Host","slot","suggestDebounce","inputDebounce","suggest","suggestOptions","onChange","selectApplication","cancelButton","confirmButton"],"sources":["src/components/bpm/application-declaration/bpm-app-declaration.scss?tag=gx-ide-bpm-app-declaration&encapsulation=shadow","src/components/bpm/application-declaration/bpm-app-declaration.tsx"],"sourcesContent":["@import \"../../../global/gx-ide-common.scss\";\n@import \"../../../global/gx-ide-mixins.scss\";\n@import \"../../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\";\n\n:host {\n display: grid;\n block-size: 100%;\n grid-template-rows: max-content 1fr max-content;\n overflow: auto;\n}\n\n.section {\n display: contents;\n}\n\n.header {\n display: grid;\n grid-template-columns: 1fr max-content;\n}\n\n.data-mapping-grid-container,\n.data-mapping-grid-container .field {\n overflow: auto;\n block-size: 100%;\n}\n\n.tabular-grid-application-declaration {\n overflow: auto;\n}\nch-tabular-grid.empty-result::part(main) {\n // WA to avoid scrollbar flickering when displaying the empty-state message\n overflow: hidden;\n}\n\n.pill-tag {\n // base styles for this class defined on \"gx-ide-common.scss\"\n min-inline-size: 40px;\n margin-inline-end: 10px;\n}\n\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid-application-declaration\",\n $tabular-grid-cell-node-type: \"element\",\n $tabular-grid-affected-columns-nth-list: (\n 2\n )\n);\n\n// WA\n.tabular-grid-cell:nth-child(2) {\n padding: 0 !important;\n display: grid;\n align-items: stretch;\n justify-content: stretch;\n --ds-focus-border-width: none;\n}\n.tabular-grid-cell:nth-child(3) {\n padding: 0 !important;\n align-items: center !important;\n justify-content: center !important;\n}\n.tabular-grid {\n overflow: auto;\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n State,\n Element,\n Event,\n EventEmitter,\n getAssetPath\n} from \"@stencil/core\";\n\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\n\nimport { Locale } from \"../../../common/locale\";\nimport { config } from \"../../../common/config\";\nimport { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/button\",\n \"components/combo-box\",\n \"components/icon\",\n \"components/tabular-grid\",\n \"utils/elevation\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/spacing\"\n];\n\nconst ADD_ICON = getIconPath({\n category: \"system\",\n name: \"add\",\n colorType: \"neutral\"\n});\nconst FILTER_ICON = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"on-elevation\"\n});\nconst MORE_ICON = getIconPath({\n category: \"system\",\n name: \"more-horizontal\",\n colorType: \"primary\"\n});\n\nconst SUGGEST_OPTIONS = {\n alreadyProcessed: true,\n autoExpand: false,\n hideMatchesAndShowNonMatches: false,\n highlightMatchedItems: false,\n matchCase: false,\n regularExpression: false,\n strict: false,\n renderActiveItemIconOnExpand: true\n};\n\n@Component({\n tag: \"gx-ide-bpm-app-declaration\",\n styleUrl: \"bpm-app-declaration.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/bpm-app-declaration\"]\n})\nexport class GxIdeBpmAppDeclaration {\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n #animateEmptyState = true;\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/bpm-app-declaration/shortcuts.json`\n );\n\n #ACCESS_CAPTION_MAP: Record<DataMappingAccess, string> = {\n // To be defined on componentWillLoad\n in: undefined,\n out: undefined,\n inout: undefined\n };\n\n @Element() el: HTMLGxIdeBpmAppDeclarationElement;\n\n /**\n * The application ComoBoxModel. When the component renders for the first time, it is required\n * to display the application typeIcon. Later, it is required to display the suggested application\n * options with the combo suggest.\n */\n @State() applicationComboBoxModel: ComboBoxModel = [];\n\n /**\n * Current value of the application declaration. Keep in mind that this property will be used by\n * the host to initialize the component, meaning it will assign the current declaration value.\n */\n @Prop({ mutable: true }) application: ApplicationDeclarationData;\n\n /**\n * Callback invoked when user cancels application declaration\n */\n @Prop() readonly cancelCallback: CancelCallback;\n\n /**\n * Callback invoked when user confirms application declaration\n */\n @Prop() readonly confirmCallback: ConfirmCallback;\n\n /**\n * Callback invoked when user select one of the options provided by the suggest\n */\n @Prop() readonly getDataMappingCallback: GetDataMappingCallback;\n\n /**\n * Callback invoked to get access to selection application dialog\n */\n @Prop() readonly selectApplicationCallback: SelectApplicationCallback;\n\n /**\n * Callback invoked when user press mapping auto-def button\n */\n @Prop() readonly selectMappingCallback: SelectMappingCallback;\n\n /**\n * Callback invoked to get options for application input suggest\n */\n @Prop() readonly suggestApplicationsCallback: SuggestApplicationsCallback;\n\n /**\n * @description Gets fired when the component has rendered for the first time.\n */\n @Event() componentDidRenderFirstTime: EventEmitter<string>;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#setApplicationData(this.application.application);\n if (this.application.mappings.length === 0) {\n this.#animateEmptyState = false;\n }\n this.#setAccessCaptions();\n }\n\n #setAccessCaptions = () => {\n this.#ACCESS_CAPTION_MAP.in = this.#componentLocale.dataMappings.access.in;\n this.#ACCESS_CAPTION_MAP.out =\n this.#componentLocale.dataMappings.access.out;\n this.#ACCESS_CAPTION_MAP.inout =\n this.#componentLocale.dataMappings.access.inout;\n };\n\n #applicationInputChangedHandler = async (\n event: CustomEvent<string> | InputEvent\n ) => {\n const selectedApplicationName = event.detail as string;\n this.application.mappings = await this.getDataMappingCallback(\n selectedApplicationName\n );\n };\n\n #cancelCallbackHandler = () => {\n this.cancelCallback();\n };\n\n #clearApplicationHandler = () => {\n this.application = {\n application: {\n name: \"\",\n typeIcon: \"\"\n },\n mappings: []\n };\n };\n\n #confirmCallbackHandler = () => {\n this.confirmCallback(this.application);\n };\n\n #mapRelevantDataOptionsToComboBoxModel = (\n relevantDataOptions: string[]\n ): ComboBoxModel => {\n return relevantDataOptions.map(optionName => {\n return {\n caption: optionName,\n value: optionName\n };\n });\n };\n\n #mapSuggestedApplicationsToComboBoxModel = (\n suggestedApplicationsNames: string[]\n ): ComboBoxModel => {\n return suggestedApplicationsNames.map(applicationName => {\n return {\n caption: applicationName,\n value: applicationName\n };\n });\n };\n\n #relevantDataInputHandler =\n (mappingIndex: number) =>\n async (event: CustomEvent<string> | InputEvent) => {\n const inputValue = event.detail as string;\n this.application.mappings[mappingIndex].relevantData = inputValue;\n };\n\n #selectApplicationCallbackHandler = async () => {\n const applicationDeclarationData = await this.selectApplicationCallback();\n if (applicationDeclarationData) {\n this.#setApplicationData(applicationDeclarationData.application);\n this.application.mappings = applicationDeclarationData.mappings;\n }\n };\n\n #selectMappingCallbackHandler =\n (parameter: string, mappingIndex: number) => async () => {\n const returnedRelevantData = await this.selectMappingCallback(parameter);\n if (returnedRelevantData) {\n const currentRelevantDataOptions =\n this.application.mappings[mappingIndex].relevantDataOptions;\n\n const indexOfReturnedRelevantData =\n currentRelevantDataOptions.indexOf(returnedRelevantData);\n\n if (indexOfReturnedRelevantData === -1) {\n // returnedRelevantData is a new option. Add to combo-box.\n currentRelevantDataOptions.push(returnedRelevantData);\n }\n // Set as selected\n this.application.mappings[mappingIndex].relevantData =\n returnedRelevantData;\n\n this.#updateApplicationData();\n }\n };\n\n #setApplicationData = (applicationData: ApplicationData) => {\n if (applicationData) {\n const applicationName = applicationData.name;\n this.application.application.name = applicationName;\n this.applicationComboBoxModel = [\n {\n caption: applicationName,\n value: applicationName,\n startImgSrc: applicationData.typeIcon\n }\n ];\n }\n };\n\n #suggestInputHandler = async (event: CustomEvent<string> | InputEvent) => {\n const inputValue = event.detail as string;\n this.application.application.name = inputValue;\n const suggestedApplicationNames: string[] =\n await this.suggestApplicationsCallback(inputValue);\n\n this.applicationComboBoxModel =\n this.#mapSuggestedApplicationsToComboBoxModel(suggestedApplicationNames);\n };\n\n #updateApplicationData = () => {\n this.application = { ...this.application };\n };\n\n // Renders\n\n #renderDataMappingsGrid = (): Element => {\n const applicationDataToDisplay = this.application.mappings.length;\n if (applicationDataToDisplay) {\n // Set as animated for the next time.\n this.#animateEmptyState = true;\n }\n return (\n <div class=\"field-group data-mapping-grid-container\">\n <div class=\"field field-block\">\n <label class=\"spacing-body-inline-start label\">\n {this.#componentLocale.dataMappings.title}\n </label>\n <ch-tabular-grid\n class={{\n \"tabular-grid\": true,\n \"tabular-grid-application-declaration\": true,\n \"scrollable\": true,\n \"empty-result\": !applicationDataToDisplay\n }}\n part=\"ch-grid-data-mappings\"\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName={\n this.application.application?.typeIcon ===\n \"objects/transaction\"\n ? this.#componentLocale.dataMappings.firstColName\n : this.#componentLocale.dataMappings.firstColNameParameter\n }\n settingable={false}\n size={config.tabularGrid.colSize.common}\n ></ch-tabular-grid-column>\n\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName={this.#componentLocale.dataMappings.secondColName}\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.common}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.auto}\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n\n {this.application.mappings.length ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.application.mappings.map(\n (obj: DataMappingData, index) => (\n <ch-tabular-grid-row\n class=\"tabular-grid-row\"\n rowId={`${index}-${obj.parameter}`}\n key={`${index}-${obj.parameter}-grid-row`}\n >\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <span class=\"pill-tag elevation-3\">\n {\n this.#ACCESS_CAPTION_MAP[\n obj.access as DataMappingAccess\n ]\n }\n </span>\n {obj.parameter}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <ch-combo-box-render\n class=\"combo-box\"\n model={this.#mapRelevantDataOptionsToComboBoxModel(\n obj.relevantDataOptions\n )}\n value={obj.relevantData}\n key={`${index}-${obj.parameter}-combo-box`}\n onInput={this.#relevantDataInputHandler(index)}\n ></ch-combo-box-render>\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <button\n data-index={index}\n onClick={this.#selectMappingCallbackHandler(\n obj.parameter,\n index\n )}\n class=\"button-tertiary button-icon-only\"\n aria-label={\n this.#componentLocale.buttons.selectMapping\n }\n title={this.#componentLocale.buttons.selectMapping}\n >\n <ch-image class=\"icon-md\" src={ADD_ICON}></ch-image>\n </button>\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n )\n )}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n isAnimated={this.#animateEmptyState}\n stateIconSrc={FILTER_ICON}\n stateTitle={this.#componentLocale.emptyState.title}\n stateDescription={\n this.#componentLocale.emptyState.description\n }\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid>\n </div>\n </div>\n );\n };\n\n render() {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"section\">\n <header slot=\"header\" class=\"header spacing-body\">\n <ch-combo-box-render\n class=\"combo-box\"\n value={this.application.application.name}\n model={this.applicationComboBoxModel}\n suggestDebounce={config.inputDebounce}\n suggest\n suggestOptions={SUGGEST_OPTIONS}\n onInput={this.#suggestInputHandler}\n onChange={this.#applicationInputChangedHandler}\n ></ch-combo-box-render>\n\n <div class=\"buttons-spacer\">\n <button\n onClick={this.#selectApplicationCallbackHandler}\n class=\"button-tertiary button-icon-only\"\n aria-label={this.#componentLocale.buttons.selectApplication}\n title={this.#componentLocale.buttons.selectApplication}\n >\n <ch-image class=\"icon-md\" src={MORE_ICON}></ch-image>\n </button>\n <button\n onClick={this.#clearApplicationHandler}\n class=\"button-secondary\"\n >\n Clear\n </button>\n </div>\n </header>\n\n {this.#renderDataMappingsGrid()}\n\n <footer class=\"control-footer spacing-body-block-end spacing-body-inline\">\n <div class=\"buttons-spacer\">\n <button\n class=\"button-secondary\"\n onClick={this.#cancelCallbackHandler}\n >\n {this.#componentLocale.buttons.cancelButton}\n </button>\n <button\n class=\"button-primary\"\n onClick={this.#confirmCallbackHandler}\n >\n {this.#componentLocale.buttons.confirmButton}\n </button>\n </div>\n </footer>\n </section>\n <ch-shortcuts src={this.#shortcutsSrc}></ch-shortcuts>\n </Host>\n );\n }\n}\n\nexport type ApplicationDeclarationData = {\n application?: ApplicationData;\n mappings: DataMappingData[];\n};\nexport type ApplicationData = {\n name: string;\n typeIcon: string;\n};\n\ntype DataMappingAccess = \"in\" | \"out\" | \"inout\";\n\nexport type DataMappingData = {\n parameter: string;\n access: DataMappingAccess;\n relevantDataOptions: string[];\n relevantData?: string;\n};\n\nexport type SuggestApplicationsCallback = (\n prefix: string\n) => Promise<string[] | undefined>;\n\nexport type SelectApplicationCallback = () => Promise<\n ApplicationDeclarationData | undefined\n>;\n\nexport type SelectMappingCallback = (parameter: string) => Promise<string>;\n\nexport type ConfirmCallback = (\n data: ApplicationDeclarationData\n) => Promise<void>;\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type GetDataMappingCallback = (\n applicationName: string\n) => Promise<DataMappingData[]>;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["bpmExportXpdlCss","GxIdeBpmExportXpdl","this","renderedFirstTime","exportHandler","exportCallback","notExporting","data","directoryName","exportInputEl","value","Objects","_a","bpmObjectSelectorEl","selection","includeAll","objectIds","then","catch","error","console","inputHandle","async","emptyInput","length","handleSelectionChanged","emptyObjects","componentWillLoad","_componentLocale","Locale","getComponentStrings","el","componentDidRender","componentDidRenderFirstTime","emit","componentName","render","h","Host","class","containerTitle","displayTitle","slimmerFooter","config","gxIdeContainer","htmlFor","main","exportInputLabel","type","id","onInput","ref","disabled","onClick","exportButton","cancelCallback","cancelButton","addCallback","referencesCallback","onSelectionChanged"],"sources":["src/components/bpm/export-xpdl/bpm-export-xpdl.scss?tag=gx-ide-bpm-export-xpdl&encapsulation=shadow","src/components/bpm/export-xpdl/bpm-export-xpdl.tsx"],"sourcesContent":["@import \"../../../global/gx-ide-common.scss\";\n@import \"../../../global/gx-ide-mixins.scss\";\n@import \"../../../global/temporary-tokens-chameleon.scss\";\n\n:host {\n display: block;\n}\n\n.header {\n display: grid;\n grid-template-columns: 1fr min-content min-content;\n grid-template-areas:\n \"label label label\"\n \"input cancel export\";\n grid-gap: var(--gx-ide-grid-column-gap);\n\n .label {\n grid-area: label;\n }\n .input {\n grid-area: input;\n }\n .cancel {\n grid-area: cancel;\n }\n .export {\n grid-area: export;\n }\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { config } from \"../../../common/config\";\nimport { Locale } from \"../../../common/locale\";\nimport { ObjectData } from \"../objects-selector/helpers\";\n\n/* import { renderListItems } from \"../../../common/render-list-item\"; */\n\n@Component({\n tag: \"gx-ide-bpm-export-xpdl\",\n styleUrl: \"bpm-export-xpdl.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/bpm-export-xpdl\"]\n})\nexport class GxIdeBpmExportXpdl {\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeBpmExportXpdlElement;\n private exportInputEl: HTMLInputElement;\n private bpmObjectSelectorEl: HTMLGxIdeBpmObjectsSelectorElement;\n\n // 3.STATE() VARIABLES //\n\n @State() emptyInput = true;\n @State() emptyObjects = true;\n @State() notExporting = true;\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * Callback function invoked when the user presses the 'Create' button.\n * This function is expected to handle the export process based on the provided export data.\n *\n * @param {ExportData} exportData - The data required for the export process.\n * @returns {Promise<boolean>} A promise that resolves to a boolean indicating the success of the export operation.\n * Returns `true` if the export was successful, and `false` otherwise.\n */\n @Prop() readonly exportCallback: ExportCallback;\n\n /**\n * Callback invoked when user press 'Cancel' button\n */\n @Prop() readonly cancelCallback: CancelCallback;\n\n /**\n * Callback invoked when the user presses the 'Add' button. associated with gx-ide-bpm-objects-selector\n * This function is expected to return a list of selected objects' basic information.\n * @returns {Promise<ObjectData[]>} A Promise that resolves to an array of ObjectData. Each ObjectData contains the ID, icon, and name of an object.\n */\n @Prop() readonly addCallback: () => Promise<ObjectData[]>;\n\n /**\n * Callback invoked when the user presses the 'References' button. associated with gx-ide-bpm-objects-selector\n * Receives a parameter which is an array of IDs of the objects currently added to the list.\n * Returns a Promise that resolves to an array of ObjectData, where each ObjectData contains the ID, icon, and name of an object.\n * @param {string[]} ids - An array of IDs of the objects currently added to the list.\n * @returns {Promise<ObjectData[]>} A Promise that resolves to an array of ObjectData. Each ObjectData contains the ID, icon, and name of an object.\n */\n @Prop() readonly referencesCallback: (ids: string[]) => Promise<ObjectData[]>;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * @description Gets fired when the component has rendered for the first time.\n */\n @Event() componentDidRenderFirstTime: EventEmitter<string>;\n\n // 6.COMPONENT LIFECYCLE METHODS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n private exportHandler = () => {\n if (this.exportCallback) {\n this.notExporting = false;\n\n const data: ExportData = {\n directoryName: this.exportInputEl.value,\n Objects: this.bpmObjectSelectorEl.selection ?? {\n includeAll: false,\n objectIds: []\n }\n };\n\n this.exportCallback(data)\n .then(() => {\n this.notExporting = true;\n })\n .catch(error => {\n console.error(\"Export callback failed:\", error);\n this.notExporting = true;\n });\n }\n };\n\n private inputHandle = async () => {\n this.emptyInput = !this.exportInputEl.value?.length;\n };\n\n private handleSelectionChanged = () => {\n this.emptyObjects = !this.bpmObjectSelectorEl.selection.objectIds.length;\n };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host class=\"gx-ide-component\">\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n >\n <div class=\"header\">\n <label htmlFor=\"export-directory\" class=\"label\">\n {this._componentLocale.main.exportInputLabel}\n </label>\n <input\n type=\"text\"\n id=\"export-directory\"\n class=\"input-text input\"\n onInput={this.inputHandle}\n ref={el => (this.exportInputEl = el as HTMLInputElement)}\n />\n <button\n class=\"export\"\n disabled={this.emptyInput || this.emptyObjects}\n onClick={this.exportHandler}\n >\n {this._componentLocale.main.exportButton}\n </button>\n <button\n class=\"cancel\"\n disabled={this.notExporting}\n onClick={this.cancelCallback}\n >\n {this._componentLocale.main.cancelButton}\n </button>\n </div>\n\n <gx-ide-bpm-objects-selector\n id=\"gx-ide-bpm-objects-selector\"\n addCallback={this.addCallback}\n referencesCallback={this.referencesCallback}\n ref={el =>\n (this.bpmObjectSelectorEl =\n el as HTMLGxIdeBpmObjectsSelectorElement)\n }\n onSelectionChanged={this.handleSelectionChanged}\n ></gx-ide-bpm-objects-selector>\n </gx-ide-container>\n </div>\n </Host>\n );\n }\n}\n\nexport type ExportCallback = (exportData: ExportData) => Promise<boolean>;\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type ExportData = {\n directoryName: string;\n Objects: SelectionData;\n};\n\nexport type SelectionData = {\n includeAll: boolean;\n objectIds: string[];\n};\n"],"mappings":";;;;;;AAAA,MAAMA,IAAmB;;MCyBZC,IAAkB;;;;IAOrBC,KAAAC,oBAAoB;;;;QAgFpBD,KAAAE,gBAAgB;;MACtB,IAAIF,KAAKG,gBAAgB;QACvBH,KAAKI,eAAe;QAEpB,MAAMC,IAAmB;UACvBC,eAAeN,KAAKO,cAAcC;UAClCC,UAASC,IAAAV,KAAKW,oBAAoBC,eAAS,QAAAF,WAAA,IAAAA,IAAI;YAC7CG,YAAY;YACZC,WAAW;;;QAIfd,KAAKG,eAAeE,GACjBU,MAAK;UACJf,KAAKI,eAAe;AAAI,YAEzBY,OAAMC;UACLC,QAAQD,MAAM,2BAA2BA;UACzCjB,KAAKI,eAAe;AAAI;;;IAKxBJ,KAAAmB,cAAcC;;MACpBpB,KAAKqB,gBAAcX,IAAAV,KAAKO,cAAcC,WAAK,QAAAE,WAAA,aAAAA,EAAEY;AAAM;IAG7CtB,KAAAuB,yBAAyB;MAC/BvB,KAAKwB,gBAAgBxB,KAAKW,oBAAoBC,UAAUE,UAAUQ;AAAM;sBAlGpD;wBACE;wBACA;wBAOQ;;;;;;;EA0ChC,uBAAMG;IACJzB,KAAK0B,yBAAyBC,EAAOC,oBAAoB5B,KAAK6B;;EAGhE,kBAAAC;IACE,KAAK9B,KAAKC,mBAAmB;MAC3BD,KAAK+B,4BAA4BC,KAC/BhC,KAAK0B,iBAAiBO;MAExBjC,KAAKC,oBAAoB;;;;EA2C7B,MAAAiC;IACE,OACEC,EAACC,GAAI;MAACC,OAAM;OACVF,EAAA;MAAKE,OAAM;OACTF,EAAA;MACEG,gBACEtC,KAAKuC,eAAevC,KAAK0B,iBAAiBO,gBAAgB;MAE5DO,eAAeC,EAAOC,eAAeF;OAErCL,EAAA;MAAKE,OAAM;OACTF,EAAA;MAAOQ,SAAQ;MAAmBN,OAAM;OACrCrC,KAAK0B,iBAAiBkB,KAAKC,mBAE9BV,EAAA;MACEW,MAAK;MACLC,IAAG;MACHV,OAAM;MACNW,SAAShD,KAAKmB;MACd8B,KAAKpB,KAAO7B,KAAKO,gBAAgBsB;QAEnCM,EAAA;MACEE,OAAM;MACNa,UAAUlD,KAAKqB,cAAcrB,KAAKwB;MAClC2B,SAASnD,KAAKE;OAEbF,KAAK0B,iBAAiBkB,KAAKQ,eAE9BjB,EAAA;MACEE,OAAM;MACNa,UAAUlD,KAAKI;MACf+C,SAASnD,KAAKqD;OAEbrD,KAAK0B,iBAAiBkB,KAAKU,gBAIhCnB,EAAA;MACEY,IAAG;MACHQ,aAAavD,KAAKuD;MAClBC,oBAAoBxD,KAAKwD;MACzBP,KAAKpB,KACF7B,KAAKW,sBACJkB;MAEJ4B,oBAAoBzD,KAAKuB"}