@genexus/genexus-ide-ui 1.0.28 → 1.0.30

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 (359) hide show
  1. package/README.md +38 -6
  2. package/dist/cjs/MERCURY_ASSETS-56ba4d5e.js +9 -0
  3. package/dist/cjs/MERCURY_ASSETS-56ba4d5e.js.map +1 -0
  4. package/dist/cjs/gx-ide-ai-assistant.cjs.entry.js +1 -1
  5. package/dist/cjs/gx-ide-ai-message.cjs.entry.js +1 -1
  6. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js +1 -1
  7. package/dist/cjs/gx-ide-bpm-assign-roles.cjs.entry.js +1 -1
  8. package/dist/cjs/gx-ide-bpm-export-xpdl.cjs.entry.js +1 -1
  9. package/dist/cjs/gx-ide-bpm-import-files.cjs.entry.js +1 -1
  10. package/dist/cjs/gx-ide-bpm-import-gxpm.cjs.entry.js +1 -1
  11. package/dist/cjs/gx-ide-bpm-objects-selector.cjs.entry.js +1 -1
  12. package/dist/cjs/gx-ide-bpm-timer-duration.cjs.entry.js +1 -1
  13. package/dist/cjs/gx-ide-card.cjs.entry.js +1 -1
  14. package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js +1 -1
  15. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +4 -4
  16. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js.map +1 -1
  17. package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js +3 -3
  18. package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js.map +1 -1
  19. package/dist/cjs/gx-ide-data-selector.cjs.entry.js +3 -3
  20. package/dist/cjs/gx-ide-data-selector.cjs.entry.js.map +1 -1
  21. package/dist/cjs/gx-ide-design-import.cjs.entry.js +23 -9
  22. package/dist/cjs/gx-ide-design-import.cjs.entry.js.map +1 -1
  23. package/dist/cjs/gx-ide-edit-module-server.cjs.entry.js +1 -1
  24. package/dist/cjs/gx-ide-entity-selector.cjs.entry.js +4 -4
  25. package/dist/cjs/gx-ide-entity-selector.cjs.entry.js.map +1 -1
  26. package/dist/cjs/gx-ide-gam-installation-settings.cjs.entry.js +1 -1
  27. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +7 -7
  28. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js.map +1 -1
  29. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +6 -6
  30. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js.map +1 -1
  31. package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js +4 -4
  32. package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js.map +1 -1
  33. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +4 -4
  34. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js.map +1 -1
  35. package/dist/cjs/gx-ide-navigation-report.cjs.entry.js +1 -1
  36. package/dist/cjs/gx-ide-new-environment.cjs.entry.js +2 -2
  37. package/dist/cjs/gx-ide-new-environment.cjs.entry.js.map +1 -1
  38. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +10 -10
  39. package/dist/cjs/gx-ide-new-kb.cjs.entry.js.map +1 -1
  40. package/dist/cjs/gx-ide-new-object.cjs.entry.js +1 -1
  41. package/dist/cjs/gx-ide-object-selector.cjs.entry.js +4 -4
  42. package/dist/cjs/gx-ide-object-selector.cjs.entry.js.map +1 -1
  43. package/dist/cjs/gx-ide-references.cjs.entry.js +1 -1
  44. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +3 -3
  45. package/dist/cjs/gx-ide-share-kb.cjs.entry.js.map +1 -1
  46. package/dist/cjs/gx-ide-splash.cjs.entry.js +1 -1
  47. package/dist/cjs/gx-ide-start-page.cjs.entry.js +6 -6
  48. package/dist/cjs/gx-ide-start-page.cjs.entry.js.map +1 -1
  49. package/dist/cjs/gx-ide-status-buttons.cjs.entry.js +1 -1
  50. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +1 -1
  51. package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js +1 -1
  52. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js +1 -1
  53. package/dist/cjs/gx-ide-team-dev-update-to-revision.cjs.entry.js +1 -1
  54. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +1 -1
  55. package/dist/cjs/gx-ide-template.cjs.entry.js +1 -1
  56. package/dist/cjs/gx-ide-welcome-page.cjs.entry.js +3 -3
  57. package/dist/cjs/gx-ide-welcome-page.cjs.entry.js.map +1 -1
  58. package/dist/cjs/gx-ide-wf-settings.cjs.entry.js +1 -1
  59. package/dist/cjs/gx-ide-ww-images.cjs.entry.js +1 -1
  60. package/dist/cjs/locale-ff30a5f3.js +53 -0
  61. package/dist/cjs/locale-ff30a5f3.js.map +1 -0
  62. package/dist/collection/common/locale.js +16 -36
  63. package/dist/collection/common/locale.js.map +1 -1
  64. package/dist/collection/common/types.js.map +1 -1
  65. package/dist/collection/components/_helpers/card/gx-ide-assets/card/langs/card.lang.zh.json +8 -1
  66. package/dist/collection/components/_helpers/entity-selector/gx-ide-assets/entity-selector/langs/entity-selector.lang.ja.json +7 -0
  67. package/dist/collection/components/_helpers/entity-selector/gx-ide-assets/entity-selector/langs/entity-selector.lang.zh.json +7 -0
  68. package/dist/collection/components/_helpers/status-buttons/gx-ide-assets/status-buttons/langs/status-buttons.lang.zh.json +4 -4
  69. package/dist/collection/components/_starting-template/gx-ide-assets/template/langs/template.lang.zh.json +8 -1
  70. package/dist/collection/components/ai-assistant/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.en.json +0 -1
  71. package/dist/collection/components/ai-assistant/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.ja.json +0 -1
  72. package/dist/collection/components/ai-assistant/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.zh.json +7 -1
  73. package/dist/collection/components/ai-assistant/gx-ide-assets/ai-message/langs/ai-message.lang.ja.json +2 -1
  74. package/dist/collection/components/ai-assistant/gx-ide-assets/ai-message/langs/ai-message.lang.zh.json +2 -1
  75. package/dist/collection/components/bpm/application-declaration/gx-ide-assets/bpm-app-declaration/langs/bpm-app-declaration.lang.zh.json +13 -1
  76. package/dist/collection/components/bpm/assign-roles/gx-ide-assets/bpm-assign-roles/langs/bpm-assign-roles.lang.zh.json +22 -1
  77. package/dist/collection/components/bpm/export-xpdl/gx-ide-assets/bpm-export-xpdl/langs/bpm-export-xpdl.lang.zh.json +17 -1
  78. package/dist/collection/components/bpm/import-files/gx-ide-assets/bpm-import-files/langs/bpm-import-files.lang.zh.json +16 -1
  79. package/dist/collection/components/bpm/import-gxpm/gx-ide-assets/bpm-import-gxpm/langs/bpm-import-gxpm.lang.zh.json +15 -1
  80. package/dist/collection/components/bpm/objects-selector/gx-ide-assets/bpm-objects-selector/langs/bpm-objects-selector.lang.zh.json +15 -1
  81. package/dist/collection/components/bpm/timer-duration/gx-ide-assets/bpm-timer-duration/langs/bpm-timer-duration.lang.zh.json +17 -1
  82. package/dist/collection/components/dashboard-home/gx-ide-assets/dashboard-home/langs/dashboard-home.lang.zh.json +41 -1
  83. package/dist/collection/components/data-selector/gx-ide-assets/data-selector/langs/data-selector.lang.zh.json +24 -1
  84. package/dist/collection/components/design-import/design-import.js +18 -4
  85. package/dist/collection/components/design-import/design-import.js.map +1 -1
  86. package/dist/collection/components/design-import/gx-ide-assets/design-import/langs/design-import.lang.ja.json +4 -1
  87. package/dist/collection/components/design-import/gx-ide-assets/design-import/langs/design-import.lang.zh.json +40 -1
  88. package/dist/collection/components/gam-installation-settings/gx-ide-assets/gam-installation-settings/langs/gam-installation-settings.lang.zh.json +41 -1
  89. package/dist/collection/components/kb-manager-export/gx-ide-assets/kb-manager-export/langs/kb-manager-export.lang.zh.json +25 -1
  90. package/dist/collection/components/kb-manager-import/gx-ide-assets/kb-manager-import/langs/kb-manager-import.lang.zh.json +31 -1
  91. package/dist/collection/components/kb-manager-import/kb-manager-import.js +1 -1
  92. package/dist/collection/components/modules/edit-module-server/gx-ide-assets/edit-module-server/langs/edit-module-server.lang.zh.json +9 -1
  93. package/dist/collection/components/modules/manage-module-references/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.zh.json +37 -1
  94. package/dist/collection/components/modules/manage-module-references-v2/gx-ide-assets/manage-module-references-v2/langs/manage-module-references-v2.lang.zh.json +37 -1
  95. package/dist/collection/components/navigation-report/gx-ide-assets/navigation-report/langs/navigation-report.lang.ja.json +4 -1
  96. package/dist/collection/components/navigation-report/gx-ide-assets/navigation-report/langs/navigation-report.lang.zh.json +4 -1
  97. package/dist/collection/components/new-environment/gx-ide-assets/new-environment/langs/new-environment.lang.en.json +0 -1
  98. package/dist/collection/components/new-environment/gx-ide-assets/new-environment/langs/new-environment.lang.zh.json +26 -1
  99. package/dist/collection/components/new-environment/new-environment.js +1 -1
  100. package/dist/collection/components/new-environment/new-environment.js.map +1 -1
  101. package/dist/collection/components/new-kb/gx-ide-assets/new-kb/langs/new-kb.lang.ja.json +2 -2
  102. package/dist/collection/components/new-kb/gx-ide-assets/new-kb/langs/new-kb.lang.zh.json +75 -1
  103. package/dist/collection/components/new-kb/new-kb.js +26 -20
  104. package/dist/collection/components/new-kb/new-kb.js.map +1 -1
  105. package/dist/collection/components/new-kb/tests/new-kb.e2e.js +153 -0
  106. package/dist/collection/components/new-kb/tests/new-kb.e2e.js.map +1 -0
  107. package/dist/collection/components/new-object/gx-ide-assets/new-object/langs/new-object.lang.ja.json +3 -1
  108. package/dist/collection/components/new-object/gx-ide-assets/new-object/langs/new-object.lang.zh.json +13 -7
  109. package/dist/collection/components/object-selector/gx-ide-assets/object-selector/langs/object-selector.lang.ja.json +0 -1
  110. package/dist/collection/components/object-selector/gx-ide-assets/object-selector/langs/object-selector.lang.zh.json +48 -1
  111. package/dist/collection/components/references/gx-ide-assets/references/langs/references.lang.zh.json +13 -1
  112. package/dist/collection/components/splash/gx-ide-assets/splash/langs/splash.lang.ja.json +1 -0
  113. package/dist/collection/components/splash/gx-ide-assets/splash/langs/splash.lang.zh.json +1 -0
  114. package/dist/collection/components/team-dev/commit/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.zh.json +20 -1
  115. package/dist/collection/components/team-dev/connect-gx-server/gx-ide-assets/connect-gx-server/langs/connect-gx-server.lang.ja.json +11 -1
  116. package/dist/collection/components/team-dev/connect-gx-server/gx-ide-assets/connect-gx-server/langs/connect-gx-server.lang.zh.json +11 -1
  117. package/dist/collection/components/team-dev/select-recent-comment/gx-ide-assets/team-dev-select-recent-comment/langs/team-dev-select-recent-comment.lang.zh.json +3 -1
  118. package/dist/collection/components/team-dev/update/gx-ide-assets/team-dev-update/langs/team-dev-update.lang.zh.json +43 -1
  119. package/dist/collection/components/team-dev/update/update.js +1 -1
  120. package/dist/collection/components/team-dev/update-partial-selection/gx-ide-assets/team-dev-update-partial-selection/langs/team-dev-update-partial-selection.lang.zh.json +15 -1
  121. package/dist/collection/components/team-dev/update-to-revision/gx-ide-assets/team-dev-update-to-revision/langs/team-dev-update-to-revision.lang.zh.json +9 -1
  122. package/dist/collection/components/wf-settings/gx-ide-assets/wf-settings/langs/wf-settings.lang.zh.json +23 -1
  123. package/dist/collection/components/ww-images/gx-ide-assets/ww-images/langs/ww-images.lang.zh.json +47 -1
  124. package/dist/collection/testing/locale.e2e.js +155 -0
  125. package/dist/collection/testing/locale.e2e.js.map +1 -0
  126. package/dist/collection/testing/same-structure.e2e.js +29 -0
  127. package/dist/collection/testing/same-structure.e2e.js.map +1 -0
  128. package/dist/components/MERCURY_ASSETS.js +7 -0
  129. package/dist/components/MERCURY_ASSETS.js.map +1 -0
  130. package/dist/components/entity-selector.js +1 -1
  131. package/dist/components/gx-ide-create-kb-from-server.js +1 -1
  132. package/dist/components/gx-ide-dashboard-home.js +1 -1
  133. package/dist/components/gx-ide-data-selector.js +1 -1
  134. package/dist/components/gx-ide-design-import.js +19 -5
  135. package/dist/components/gx-ide-design-import.js.map +1 -1
  136. package/dist/components/gx-ide-kb-manager-export.js +1 -1
  137. package/dist/components/gx-ide-kb-manager-import.js +1 -1
  138. package/dist/components/gx-ide-manage-module-references-v2.js +1 -1
  139. package/dist/components/gx-ide-manage-module-references.js +1 -1
  140. package/dist/components/gx-ide-new-environment.js +1 -1
  141. package/dist/components/gx-ide-new-environment.js.map +1 -1
  142. package/dist/components/gx-ide-new-kb.js +8 -8
  143. package/dist/components/gx-ide-new-kb.js.map +1 -1
  144. package/dist/components/gx-ide-object-selector.js +1 -1
  145. package/dist/components/gx-ide-share-kb.js +1 -1
  146. package/dist/components/gx-ide-start-page.js +1 -1
  147. package/dist/components/gx-ide-welcome-page.js +1 -1
  148. package/dist/components/locale.js +17 -36
  149. package/dist/components/locale.js.map +1 -1
  150. package/dist/esm/MERCURY_ASSETS-827056e0.js +7 -0
  151. package/dist/esm/MERCURY_ASSETS-827056e0.js.map +1 -0
  152. package/dist/esm/gx-ide-ai-assistant.entry.js +1 -1
  153. package/dist/esm/gx-ide-ai-message.entry.js +1 -1
  154. package/dist/esm/gx-ide-bpm-app-declaration.entry.js +1 -1
  155. package/dist/esm/gx-ide-bpm-assign-roles.entry.js +1 -1
  156. package/dist/esm/gx-ide-bpm-export-xpdl.entry.js +1 -1
  157. package/dist/esm/gx-ide-bpm-import-files.entry.js +1 -1
  158. package/dist/esm/gx-ide-bpm-import-gxpm.entry.js +1 -1
  159. package/dist/esm/gx-ide-bpm-objects-selector.entry.js +1 -1
  160. package/dist/esm/gx-ide-bpm-timer-duration.entry.js +1 -1
  161. package/dist/esm/gx-ide-card.entry.js +1 -1
  162. package/dist/esm/gx-ide-connect-gx-server.entry.js +1 -1
  163. package/dist/esm/gx-ide-create-kb-from-server.entry.js +2 -2
  164. package/dist/esm/gx-ide-dashboard-home.entry.js +2 -2
  165. package/dist/esm/gx-ide-data-selector.entry.js +2 -2
  166. package/dist/esm/gx-ide-design-import.entry.js +20 -6
  167. package/dist/esm/gx-ide-design-import.entry.js.map +1 -1
  168. package/dist/esm/gx-ide-edit-module-server.entry.js +1 -1
  169. package/dist/esm/gx-ide-entity-selector.entry.js +2 -2
  170. package/dist/esm/gx-ide-gam-installation-settings.entry.js +1 -1
  171. package/dist/esm/gx-ide-kb-manager-export.entry.js +2 -2
  172. package/dist/esm/gx-ide-kb-manager-import.entry.js +2 -2
  173. package/dist/esm/gx-ide-manage-module-references-v2.entry.js +2 -2
  174. package/dist/esm/gx-ide-manage-module-references.entry.js +2 -2
  175. package/dist/esm/gx-ide-navigation-report.entry.js +1 -1
  176. package/dist/esm/gx-ide-new-environment.entry.js +2 -2
  177. package/dist/esm/gx-ide-new-environment.entry.js.map +1 -1
  178. package/dist/esm/gx-ide-new-kb.entry.js +9 -9
  179. package/dist/esm/gx-ide-new-kb.entry.js.map +1 -1
  180. package/dist/esm/gx-ide-new-object.entry.js +1 -1
  181. package/dist/esm/gx-ide-object-selector.entry.js +2 -2
  182. package/dist/esm/gx-ide-references.entry.js +1 -1
  183. package/dist/esm/gx-ide-share-kb.entry.js +2 -2
  184. package/dist/esm/gx-ide-splash.entry.js +1 -1
  185. package/dist/esm/gx-ide-start-page.entry.js +2 -2
  186. package/dist/esm/gx-ide-status-buttons.entry.js +1 -1
  187. package/dist/esm/gx-ide-team-dev-commit.entry.js +1 -1
  188. package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js +1 -1
  189. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js +1 -1
  190. package/dist/esm/gx-ide-team-dev-update-to-revision.entry.js +1 -1
  191. package/dist/esm/gx-ide-team-dev-update.entry.js +1 -1
  192. package/dist/esm/gx-ide-template.entry.js +1 -1
  193. package/dist/esm/gx-ide-welcome-page.entry.js +2 -2
  194. package/dist/esm/gx-ide-wf-settings.entry.js +1 -1
  195. package/dist/esm/gx-ide-ww-images.entry.js +1 -1
  196. package/dist/esm/locale-e5107fad.js +51 -0
  197. package/dist/esm/locale-e5107fad.js.map +1 -0
  198. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  199. package/dist/genexus-ide-ui/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.en.json +0 -1
  200. package/dist/genexus-ide-ui/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.ja.json +0 -1
  201. package/dist/genexus-ide-ui/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.zh.json +7 -1
  202. package/dist/genexus-ide-ui/gx-ide-assets/ai-message/langs/ai-message.lang.ja.json +2 -1
  203. package/dist/genexus-ide-ui/gx-ide-assets/ai-message/langs/ai-message.lang.zh.json +2 -1
  204. package/dist/genexus-ide-ui/gx-ide-assets/bpm-app-declaration/langs/bpm-app-declaration.lang.zh.json +13 -1
  205. package/dist/genexus-ide-ui/gx-ide-assets/bpm-assign-roles/langs/bpm-assign-roles.lang.zh.json +22 -1
  206. package/dist/genexus-ide-ui/gx-ide-assets/bpm-export-xpdl/langs/bpm-export-xpdl.lang.zh.json +17 -1
  207. package/dist/genexus-ide-ui/gx-ide-assets/bpm-import-files/langs/bpm-import-files.lang.zh.json +16 -1
  208. package/dist/genexus-ide-ui/gx-ide-assets/bpm-import-gxpm/langs/bpm-import-gxpm.lang.zh.json +15 -1
  209. package/dist/genexus-ide-ui/gx-ide-assets/bpm-objects-selector/langs/bpm-objects-selector.lang.zh.json +15 -1
  210. package/dist/genexus-ide-ui/gx-ide-assets/bpm-timer-duration/langs/bpm-timer-duration.lang.zh.json +17 -1
  211. package/dist/genexus-ide-ui/gx-ide-assets/card/langs/card.lang.zh.json +8 -1
  212. package/dist/genexus-ide-ui/gx-ide-assets/connect-gx-server/langs/connect-gx-server.lang.ja.json +11 -1
  213. package/dist/genexus-ide-ui/gx-ide-assets/connect-gx-server/langs/connect-gx-server.lang.zh.json +11 -1
  214. package/dist/genexus-ide-ui/gx-ide-assets/dashboard-home/langs/dashboard-home.lang.zh.json +41 -1
  215. package/dist/genexus-ide-ui/gx-ide-assets/data-selector/langs/data-selector.lang.zh.json +24 -1
  216. package/dist/genexus-ide-ui/gx-ide-assets/design-import/langs/design-import.lang.ja.json +4 -1
  217. package/dist/genexus-ide-ui/gx-ide-assets/design-import/langs/design-import.lang.zh.json +40 -1
  218. package/dist/genexus-ide-ui/gx-ide-assets/edit-module-server/langs/edit-module-server.lang.zh.json +9 -1
  219. package/dist/genexus-ide-ui/gx-ide-assets/entity-selector/langs/entity-selector.lang.ja.json +7 -0
  220. package/dist/genexus-ide-ui/gx-ide-assets/entity-selector/langs/entity-selector.lang.zh.json +7 -0
  221. package/dist/genexus-ide-ui/gx-ide-assets/gam-installation-settings/langs/gam-installation-settings.lang.zh.json +41 -1
  222. package/dist/genexus-ide-ui/gx-ide-assets/kb-manager-export/langs/kb-manager-export.lang.zh.json +25 -1
  223. package/dist/genexus-ide-ui/gx-ide-assets/kb-manager-import/langs/kb-manager-import.lang.zh.json +31 -1
  224. package/dist/genexus-ide-ui/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.zh.json +37 -1
  225. package/dist/genexus-ide-ui/gx-ide-assets/manage-module-references-v2/langs/manage-module-references-v2.lang.zh.json +37 -1
  226. package/dist/genexus-ide-ui/gx-ide-assets/navigation-report/langs/navigation-report.lang.ja.json +4 -1
  227. package/dist/genexus-ide-ui/gx-ide-assets/navigation-report/langs/navigation-report.lang.zh.json +4 -1
  228. package/dist/genexus-ide-ui/gx-ide-assets/new-environment/langs/new-environment.lang.en.json +0 -1
  229. package/dist/genexus-ide-ui/gx-ide-assets/new-environment/langs/new-environment.lang.zh.json +26 -1
  230. package/dist/genexus-ide-ui/gx-ide-assets/new-kb/langs/new-kb.lang.ja.json +2 -2
  231. package/dist/genexus-ide-ui/gx-ide-assets/new-kb/langs/new-kb.lang.zh.json +75 -1
  232. package/dist/genexus-ide-ui/gx-ide-assets/new-object/langs/new-object.lang.ja.json +3 -1
  233. package/dist/genexus-ide-ui/gx-ide-assets/new-object/langs/new-object.lang.zh.json +13 -7
  234. package/dist/genexus-ide-ui/gx-ide-assets/object-selector/langs/object-selector.lang.ja.json +0 -1
  235. package/dist/genexus-ide-ui/gx-ide-assets/object-selector/langs/object-selector.lang.zh.json +48 -1
  236. package/dist/genexus-ide-ui/gx-ide-assets/references/langs/references.lang.zh.json +13 -1
  237. package/dist/genexus-ide-ui/gx-ide-assets/splash/langs/splash.lang.ja.json +1 -0
  238. package/dist/genexus-ide-ui/gx-ide-assets/splash/langs/splash.lang.zh.json +1 -0
  239. package/dist/genexus-ide-ui/gx-ide-assets/status-buttons/langs/status-buttons.lang.zh.json +4 -4
  240. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.zh.json +20 -1
  241. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-select-recent-comment/langs/team-dev-select-recent-comment.lang.zh.json +3 -1
  242. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-update/langs/team-dev-update.lang.zh.json +43 -1
  243. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-update-partial-selection/langs/team-dev-update-partial-selection.lang.zh.json +15 -1
  244. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-update-to-revision/langs/team-dev-update-to-revision.lang.zh.json +9 -1
  245. package/dist/genexus-ide-ui/gx-ide-assets/template/langs/template.lang.zh.json +8 -1
  246. package/dist/genexus-ide-ui/gx-ide-assets/wf-settings/langs/wf-settings.lang.zh.json +23 -1
  247. package/dist/genexus-ide-ui/gx-ide-assets/ww-images/langs/ww-images.lang.zh.json +47 -1
  248. package/dist/genexus-ide-ui/{p-917ce3e0.entry.js → p-040bd0c5.entry.js} +2 -2
  249. package/dist/genexus-ide-ui/{p-9443457d.entry.js → p-092609aa.entry.js} +2 -2
  250. package/dist/genexus-ide-ui/{p-0a972eba.entry.js → p-0a690a6b.entry.js} +2 -2
  251. package/dist/genexus-ide-ui/{p-a502bb27.entry.js → p-10da0eee.entry.js} +2 -2
  252. package/dist/genexus-ide-ui/{p-d5640c94.entry.js → p-2b658e35.entry.js} +15 -15
  253. package/dist/genexus-ide-ui/p-311eedf3.js +54 -0
  254. package/dist/genexus-ide-ui/p-311eedf3.js.map +1 -0
  255. package/dist/genexus-ide-ui/{p-35ef493e.entry.js → p-31511545.entry.js} +3 -3
  256. package/dist/genexus-ide-ui/{p-67b85b1e.entry.js → p-324af897.entry.js} +2 -2
  257. package/dist/genexus-ide-ui/{p-ebf039c0.entry.js → p-33a1c48f.entry.js} +3 -3
  258. package/dist/genexus-ide-ui/{p-419f2d72.entry.js → p-3637528d.entry.js} +2 -2
  259. package/dist/genexus-ide-ui/{p-2505fcf6.entry.js → p-390498e4.entry.js} +3 -3
  260. package/dist/genexus-ide-ui/{p-57179086.entry.js → p-3c3b276e.entry.js} +2 -2
  261. package/dist/genexus-ide-ui/{p-dfab6c94.entry.js → p-5dfd773c.entry.js} +2 -2
  262. package/dist/genexus-ide-ui/{p-8a9c91ee.entry.js → p-64e09524.entry.js} +15 -15
  263. package/dist/genexus-ide-ui/p-64e09524.entry.js.map +1 -0
  264. package/dist/genexus-ide-ui/{p-bc631b8c.entry.js → p-67b7c308.entry.js} +2 -2
  265. package/dist/genexus-ide-ui/{p-ce0ee69b.entry.js → p-6f3f4f54.entry.js} +3 -3
  266. package/dist/genexus-ide-ui/{p-a8504de9.entry.js → p-70a8edd9.entry.js} +3 -3
  267. package/dist/genexus-ide-ui/{p-7c0ad31a.entry.js → p-7754ae2e.entry.js} +2 -2
  268. package/dist/genexus-ide-ui/{p-05b4f908.entry.js → p-793248c8.entry.js} +2 -2
  269. package/dist/genexus-ide-ui/{p-a9fa775a.entry.js → p-7cdfbdba.entry.js} +2 -2
  270. package/dist/genexus-ide-ui/{p-0b0ce806.js → p-7d4c5a43.js} +5462 -5467
  271. package/dist/genexus-ide-ui/p-7d4c5a43.js.map +1 -0
  272. package/dist/genexus-ide-ui/{p-d1e2298a.entry.js → p-848b26be.entry.js} +2 -2
  273. package/dist/genexus-ide-ui/{p-4ca0f260.entry.js → p-8bb81d6f.entry.js} +2 -2
  274. package/dist/genexus-ide-ui/{p-92ce3790.entry.js → p-a0724750.entry.js} +12 -12
  275. package/dist/genexus-ide-ui/{p-0a831ef6.entry.js → p-a7027cf7.entry.js} +2 -2
  276. package/dist/genexus-ide-ui/{p-bc6bace4.entry.js → p-ad521974.entry.js} +21 -21
  277. package/dist/genexus-ide-ui/p-ad521974.entry.js.map +1 -0
  278. package/dist/genexus-ide-ui/{p-3504f246.entry.js → p-b42dfccc.entry.js} +3 -3
  279. package/dist/genexus-ide-ui/{p-9860323f.entry.js → p-ba307cf6.entry.js} +64 -64
  280. package/dist/genexus-ide-ui/p-ba307cf6.entry.js.map +1 -0
  281. package/dist/genexus-ide-ui/{p-5a0f8455.entry.js → p-bb9df26f.entry.js} +2 -2
  282. package/dist/genexus-ide-ui/{p-d4a0054d.entry.js → p-be0c10de.entry.js} +3 -3
  283. package/dist/genexus-ide-ui/{p-8cc0163b.entry.js → p-c2274796.entry.js} +2 -2
  284. package/dist/genexus-ide-ui/{p-42cd5e14.entry.js → p-cc0fbef2.entry.js} +3 -3
  285. package/dist/genexus-ide-ui/{p-7c07dcb9.entry.js → p-ccbd4dab.entry.js} +2 -2
  286. package/dist/genexus-ide-ui/{p-aa312e3c.entry.js → p-d18718c7.entry.js} +2 -2
  287. package/dist/genexus-ide-ui/{p-449ffb10.entry.js → p-d5aa2525.entry.js} +2 -2
  288. package/dist/genexus-ide-ui/{p-3faefc49.entry.js → p-de797eeb.entry.js} +2 -2
  289. package/dist/genexus-ide-ui/{p-59861b76.entry.js → p-e5712f63.entry.js} +2 -2
  290. package/dist/genexus-ide-ui/{p-63e03eac.entry.js → p-e5fb0c12.entry.js} +2 -2
  291. package/dist/genexus-ide-ui/{p-b72200db.entry.js → p-e774109a.entry.js} +3 -3
  292. package/dist/genexus-ide-ui/{p-925133b6.entry.js → p-ecd748ba.entry.js} +3 -3
  293. package/dist/genexus-ide-ui/{p-5949c9fc.entry.js → p-fa69428e.entry.js} +3 -3
  294. package/dist/genexus-ide-ui/{p-6ed93102.entry.js → p-faea4a40.entry.js} +2 -2
  295. package/dist/genexus-ide-ui/{p-05802b21.entry.js → p-fc61a10f.entry.js} +2 -2
  296. package/dist/types/common/locale.d.ts +0 -6
  297. package/dist/types/common/types.d.ts +16 -0
  298. package/dist/types/components/new-kb/new-kb.d.ts +1 -1
  299. package/dist/types/components.d.ts +7 -7
  300. package/package.json +9 -8
  301. package/dist/cjs/assets-manager-a318866f.js +0 -14743
  302. package/dist/cjs/assets-manager-a318866f.js.map +0 -1
  303. package/dist/cjs/locale-bf43b87c.js +0 -74
  304. package/dist/cjs/locale-bf43b87c.js.map +0 -1
  305. package/dist/collection/utils/utils.js +0 -4
  306. package/dist/collection/utils/utils.js.map +0 -1
  307. package/dist/collection/utils/utils.spec.js +0 -16
  308. package/dist/collection/utils/utils.spec.js.map +0 -1
  309. package/dist/components/assets-manager.js +0 -14741
  310. package/dist/components/assets-manager.js.map +0 -1
  311. package/dist/esm/assets-manager-5ac25bb6.js +0 -14741
  312. package/dist/esm/assets-manager-5ac25bb6.js.map +0 -1
  313. package/dist/esm/locale-3c32f251.js +0 -72
  314. package/dist/esm/locale-3c32f251.js.map +0 -1
  315. package/dist/genexus-ide-ui/p-0b0ce806.js.map +0 -1
  316. package/dist/genexus-ide-ui/p-74d59062.js +0 -63
  317. package/dist/genexus-ide-ui/p-74d59062.js.map +0 -1
  318. package/dist/genexus-ide-ui/p-8a9c91ee.entry.js.map +0 -1
  319. package/dist/genexus-ide-ui/p-9860323f.entry.js.map +0 -1
  320. package/dist/genexus-ide-ui/p-bc6bace4.entry.js.map +0 -1
  321. package/dist/types/utils/utils.d.ts +0 -1
  322. /package/dist/genexus-ide-ui/{p-917ce3e0.entry.js.map → p-040bd0c5.entry.js.map} +0 -0
  323. /package/dist/genexus-ide-ui/{p-9443457d.entry.js.map → p-092609aa.entry.js.map} +0 -0
  324. /package/dist/genexus-ide-ui/{p-0a972eba.entry.js.map → p-0a690a6b.entry.js.map} +0 -0
  325. /package/dist/genexus-ide-ui/{p-a502bb27.entry.js.map → p-10da0eee.entry.js.map} +0 -0
  326. /package/dist/genexus-ide-ui/{p-d5640c94.entry.js.map → p-2b658e35.entry.js.map} +0 -0
  327. /package/dist/genexus-ide-ui/{p-35ef493e.entry.js.map → p-31511545.entry.js.map} +0 -0
  328. /package/dist/genexus-ide-ui/{p-67b85b1e.entry.js.map → p-324af897.entry.js.map} +0 -0
  329. /package/dist/genexus-ide-ui/{p-ebf039c0.entry.js.map → p-33a1c48f.entry.js.map} +0 -0
  330. /package/dist/genexus-ide-ui/{p-419f2d72.entry.js.map → p-3637528d.entry.js.map} +0 -0
  331. /package/dist/genexus-ide-ui/{p-2505fcf6.entry.js.map → p-390498e4.entry.js.map} +0 -0
  332. /package/dist/genexus-ide-ui/{p-57179086.entry.js.map → p-3c3b276e.entry.js.map} +0 -0
  333. /package/dist/genexus-ide-ui/{p-dfab6c94.entry.js.map → p-5dfd773c.entry.js.map} +0 -0
  334. /package/dist/genexus-ide-ui/{p-bc631b8c.entry.js.map → p-67b7c308.entry.js.map} +0 -0
  335. /package/dist/genexus-ide-ui/{p-ce0ee69b.entry.js.map → p-6f3f4f54.entry.js.map} +0 -0
  336. /package/dist/genexus-ide-ui/{p-a8504de9.entry.js.map → p-70a8edd9.entry.js.map} +0 -0
  337. /package/dist/genexus-ide-ui/{p-7c0ad31a.entry.js.map → p-7754ae2e.entry.js.map} +0 -0
  338. /package/dist/genexus-ide-ui/{p-05b4f908.entry.js.map → p-793248c8.entry.js.map} +0 -0
  339. /package/dist/genexus-ide-ui/{p-a9fa775a.entry.js.map → p-7cdfbdba.entry.js.map} +0 -0
  340. /package/dist/genexus-ide-ui/{p-d1e2298a.entry.js.map → p-848b26be.entry.js.map} +0 -0
  341. /package/dist/genexus-ide-ui/{p-4ca0f260.entry.js.map → p-8bb81d6f.entry.js.map} +0 -0
  342. /package/dist/genexus-ide-ui/{p-92ce3790.entry.js.map → p-a0724750.entry.js.map} +0 -0
  343. /package/dist/genexus-ide-ui/{p-0a831ef6.entry.js.map → p-a7027cf7.entry.js.map} +0 -0
  344. /package/dist/genexus-ide-ui/{p-3504f246.entry.js.map → p-b42dfccc.entry.js.map} +0 -0
  345. /package/dist/genexus-ide-ui/{p-5a0f8455.entry.js.map → p-bb9df26f.entry.js.map} +0 -0
  346. /package/dist/genexus-ide-ui/{p-d4a0054d.entry.js.map → p-be0c10de.entry.js.map} +0 -0
  347. /package/dist/genexus-ide-ui/{p-8cc0163b.entry.js.map → p-c2274796.entry.js.map} +0 -0
  348. /package/dist/genexus-ide-ui/{p-42cd5e14.entry.js.map → p-cc0fbef2.entry.js.map} +0 -0
  349. /package/dist/genexus-ide-ui/{p-7c07dcb9.entry.js.map → p-ccbd4dab.entry.js.map} +0 -0
  350. /package/dist/genexus-ide-ui/{p-aa312e3c.entry.js.map → p-d18718c7.entry.js.map} +0 -0
  351. /package/dist/genexus-ide-ui/{p-449ffb10.entry.js.map → p-d5aa2525.entry.js.map} +0 -0
  352. /package/dist/genexus-ide-ui/{p-3faefc49.entry.js.map → p-de797eeb.entry.js.map} +0 -0
  353. /package/dist/genexus-ide-ui/{p-59861b76.entry.js.map → p-e5712f63.entry.js.map} +0 -0
  354. /package/dist/genexus-ide-ui/{p-63e03eac.entry.js.map → p-e5fb0c12.entry.js.map} +0 -0
  355. /package/dist/genexus-ide-ui/{p-b72200db.entry.js.map → p-e774109a.entry.js.map} +0 -0
  356. /package/dist/genexus-ide-ui/{p-925133b6.entry.js.map → p-ecd748ba.entry.js.map} +0 -0
  357. /package/dist/genexus-ide-ui/{p-5949c9fc.entry.js.map → p-fa69428e.entry.js.map} +0 -0
  358. /package/dist/genexus-ide-ui/{p-6ed93102.entry.js.map → p-faea4a40.entry.js.map} +0 -0
  359. /package/dist/genexus-ide-ui/{p-05802b21.entry.js.map → p-fc61a10f.entry.js.map} +0 -0
@@ -1,63 +0,0 @@
1
- class t {
2
- static getLang() {
3
- var t;
4
- let e = (t = document.getElementsByTagName("html")[0].getAttribute("lang")) === null || t === void 0 ? void 0 : t.valueOf();
5
- // Normalize en-US
6
- if (e === "en-US") {
7
- e = "en";
8
- }
9
- return e;
10
- }
11
- static getStrings(e, n, s) {
12
- if (s === "") {
13
- s = `${e}/`;
14
- }
15
- const a = `${t.commonAssetsPath}${t._assetsFolder}${s}${this._langsFolder}${e}${t._langPrefix}${n}${t._langExt}`;
16
- return new Promise(((t, e) => {
17
- fetch(a).then((n => {
18
- if (n.ok) {
19
- t(n.json());
20
- } else {
21
- e();
22
- }
23
- }), (() => e()));
24
- }));
25
- }
26
- static async getComponentStrings(e, n = "", s = "") {
27
- if (s === "") {
28
- s = e.tagName.toLowerCase().replace(this._componentPrefix, "");
29
- }
30
- const a = t.getLang();
31
- let i;
32
- try {
33
- i = await t.getStrings(s, a, n);
34
- } catch (e) {
35
- i = await t.getStrings(s, t._defaultLanguage, n);
36
- }
37
- return i;
38
- }
39
- static format(t, e) {
40
- let n = t;
41
- e.forEach((t => {
42
- n = n.replace(`{${e.indexOf(t)}}`, t);
43
- }));
44
- return n;
45
- }
46
- }
47
-
48
- t._defaultLanguage = "en";
49
-
50
- t._assetsFolder = "gx-ide-assets/";
51
-
52
- t._componentPrefix = "gx-ide-";
53
-
54
- t._langsFolder = "langs/";
55
-
56
- t._langPrefix = ".lang.";
57
-
58
- t._langExt = ".json";
59
-
60
- t.commonAssetsPath = "";
61
-
62
- export { t as L };
63
- //# sourceMappingURL=p-74d59062.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["Locale","getLang","lang","_a","document","getElementsByTagName","getAttribute","valueOf","getStrings","component","folder","path","commonAssetsPath","_assetsFolder","this","_langsFolder","_langPrefix","_langExt","Promise","resolve","reject","fetch","then","langFile","ok","json","getComponentStrings","element","tagName","toLowerCase","replace","_componentPrefix","strings","e","_defaultLanguage","format","text","parms","ret","forEach","parm","indexOf"],"sources":["src/common/locale.ts"],"sourcesContent":["export class Locale {\n private static _defaultLanguage = \"en\";\n private static _assetsFolder = \"gx-ide-assets/\";\n private static _componentPrefix = \"gx-ide-\";\n private static _langsFolder = \"langs/\";\n private static _langPrefix = \".lang.\";\n private static _langExt = \".json\";\n public static commonAssetsPath = \"\";\n\n private static getLang(): string {\n let lang = document\n .getElementsByTagName(\"html\")[0]\n .getAttribute(\"lang\")\n ?.valueOf();\n\n // Normalize en-US\n if (lang === \"en-US\") {\n lang = \"en\";\n }\n return lang as any;\n }\n\n private static getStrings(\n component: string,\n lang: string,\n folder: string\n ): Promise<any> {\n if (folder === \"\") {\n folder = `${component}/`;\n }\n const path = `${Locale.commonAssetsPath}${Locale._assetsFolder}${folder}${this._langsFolder}${component}${Locale._langPrefix}${lang}${Locale._langExt}`;\n return new Promise((resolve, reject): void => {\n fetch(path)\n // Locale.commonAssetsPath +\n // Locale._assetsFolder +\n // folder +\n // Locale._assetsFolderSuffix +\n // component +\n // Locale._langPrefix +\n // lang +\n // Locale._langExt\n .then(\n langFile => {\n if (langFile.ok) {\n resolve(langFile.json());\n } else {\n reject();\n }\n },\n () => reject()\n );\n });\n }\n\n public static async getComponentStrings(\n element: HTMLElement,\n folder = \"\",\n component = \"\"\n ): Promise<any> {\n if (component === \"\") {\n component = element.tagName\n .toLowerCase()\n .replace(this._componentPrefix, \"\");\n }\n const lang = Locale.getLang();\n let strings;\n try {\n strings = await Locale.getStrings(component, lang, folder);\n } catch (e) {\n strings = await Locale.getStrings(\n component,\n Locale._defaultLanguage,\n folder\n );\n }\n return strings;\n }\n\n public static format(text: string, parms: string[]): string {\n let ret: string = text;\n parms.forEach(parm => {\n ret = ret.replace(`{${parms.indexOf(parm)}}`, parm);\n });\n return ret;\n }\n}\n"],"mappings":"MAAaA;EASH,cAAOC;;IACb,IAAIC,KAAOC,IAAAC,SACRC,qBAAqB,QAAQ,GAC7BC,aAAa,aAAO,QAAAH,WAAA,aAAAA,EACnBI;;QAGJ,IAAIL,MAAS,SAAS;MACpBA,IAAO;;IAET,OAAOA;;EAGD,iBAAOM,CACbC,GACAP,GACAQ;IAEA,IAAIA,MAAW,IAAI;MACjBA,IAAS,GAAGD;;IAEd,MAAME,IAAO,GAAGX,EAAOY,mBAAmBZ,EAAOa,gBAAgBH,IAASI,KAAKC,eAAeN,IAAYT,EAAOgB,cAAcd,IAAOF,EAAOiB;IAC7I,OAAO,IAAIC,SAAQ,CAACC,GAASC;MAC3BC,MAAMV,GASHW,MACCC;QACE,IAAIA,EAASC,IAAI;UACfL,EAAQI,EAASE;eACZ;UACLL;;WAGJ,MAAMA;AACP;;EAIA,gCAAaM,CAClBC,GACAjB,IAAS,IACTD,IAAY;IAEZ,IAAIA,MAAc,IAAI;MACpBA,IAAYkB,EAAQC,QACjBC,cACAC,QAAQhB,KAAKiB,kBAAkB;;IAEpC,MAAM7B,IAAOF,EAAOC;IACpB,IAAI+B;IACJ;MACEA,UAAgBhC,EAAOQ,WAAWC,GAAWP,GAAMQ;MACnD,OAAOuB;MACPD,UAAgBhC,EAAOQ,WACrBC,GACAT,EAAOkC,kBACPxB;;IAGJ,OAAOsB;;EAGF,aAAOG,CAAOC,GAAcC;IACjC,IAAIC,IAAcF;IAClBC,EAAME,SAAQC;MACZF,IAAMA,EAAIR,QAAQ,IAAIO,EAAMI,QAAQD,OAAUA;AAAK;IAErD,OAAOF;;;;AAlFMtC,EAAAkC,mBAAmB;;AACnBlC,EAAAa,gBAAgB;;AAChBb,EAAA+B,mBAAmB;;AACnB/B,EAAAe,eAAe;;AACff,EAAAgB,cAAc;;AACdhB,EAAAiB,WAAW;;AACZjB,EAAAY,mBAAmB"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["newEnvironmentCss","CSS_BUNDLES","MAIN_SECTION_CLASSES","BASIC_SECTION_PARENT_CLASSES","BASIC_TAB_SELECTOR","ADVANCED_TAB_SELECTOR","GxIdeNewEnvironment","_GxIdeNewEnvironment_advancedTabHasBeenRendered","set","this","_GxIdeNewEnvironment_chShortcutsEl","_GxIdeNewEnvironment_envNameModifiedByUser","_GxIdeNewEnvironment_frontEndsCheckedMap","Map","_GxIdeNewEnvironment_selectedDataStoreId","_GxIdeNewEnvironment_selectedLanguageId","_GxIdeNewEnvironment_selectedRuntimeEnvironmentId","_GxIdeNewEnvironment_shortcutsSrc","getAssetPath","_GxIdeNewEnvironment_newEnvironmentSectionsModel","_GxIdeNewEnvironment_componentLocale","_GxIdeNewEnvironment_dataStoreEl","_GxIdeNewEnvironment_environmentNameEl","_GxIdeNewEnvironment_languageEl","_GxIdeNewEnvironment_setAsCurrentEnvironmentEl","_GxIdeNewEnvironment_dataStoreValueChangedHandler","__classPrivateFieldSet","__classPrivateFieldGet","value","_GxIdeNewEnvironment_updateEnvironmentName","call","_GxIdeNewEnvironment_envNameInputHandler","e","newEnvName","detail","trim","environmentName","_GxIdeNewEnvironment_evaluateSelectedRuntimeEnvironmentId","_a","runtimes","_GxIdeNewEnvironment_evaluateTooltipRender","controlReference","_b","validatableControls","get","id","hasError","_c","message","h","class","actionElement","blockAlign","config","tooltipSettings","inlineAlign","delay","_GxIdeNewEnvironment_initializeValidatableControlsBasicTab","forEach","validatableControl","reference","undefined","_GxIdeNewEnvironment_languageValueChangedHandler","async","event","_GxIdeNewEnvironment_updateDataSources","_GxIdeNewEnvironment_updateFrontEnds","_GxIdeNewEnvironment_renderAdvanced","name","_GxIdeNewEnvironment_renderBasic","length","runtime","onChange","_GxIdeNewEnvironment_runtimeEnvironmentChangedHandler","model","runtimesRadioGroupModel","caption","tabBasic","backEnd","backEndLabel","htmlFor","language","part","disabled","languages","languageComboBoxModel","onInput","ref","el","dataStores","dataStoresComboBoxModel","frontEnd","frontEndLabel","role","generators","renderChCheckboxItems","frontEnds","_GxIdeNewEnvironment_frontEndCheckboxInputHandler","_GxIdeNewEnvironment_createCallbackHandler","selectedFrontEndIds","createCallback","setAsCurrent","then","formSubmitResult","validateControls","_GxIdeNewEnvironment_tabSelectionChangedHandler","newSelectedId","advancedTabIsVisible","updatedDataSources","getDataSourcesCallback","getEnvironmentNameCallback","updatedFrontEnds","getFrontEndsCallback","checkedValue","target","checked","_GxIdeNewEnvironment_updateFrontEndsCheckedMap","checkboxId","currentState","push","checkboxIndex","findIndex","removeIndex","dataStoresChanged","newValue","mapOptionsToComboBoxItemModel","getSelectedItem","languagesChanged","runtimesChanged","connectedCallback","componentDidLoad","componentDidRender","componentWillLoad","Locale","getComponentStrings","tabLabel","tabAdvanced","suspendShortcuts","suspend","render","Host","src","header","isAdvanced","autoFocus","placeholder","environmentNamePlaceholder","tab","direction","selectedId","overflow","contain","onSelectedItemChange","slot","footer","setAsCurrentEnvironment","setAsTarget","onClick","cancelCallback","btnCancel","btnCreate"],"sources":["src/components/new-environment/new-environment.scss?tag=gx-ide-new-environment&encapsulation=shadow","src/components/new-environment/new-environment.tsx"],"sourcesContent":[":host {\n display: grid;\n block-size: 100%;\n grid-template-rows: max-content 1fr max-content;\n}\n\n.section {\n display: contents;\n}\n\n.basic,\n.advanced {\n padding-block-start: var(--mer-spacing--md);\n block-size: 100%;\n overflow: auto;\n}\n.advanced {\n padding-block-end: var(--content-block-spacing);\n}\n\n// basic\n.basic {\n display: grid;\n grid-template:\n \"runtime-environment runtime-environment\" max-content\n \"back-end front-end\" 1fr;\n grid-template-columns: 1fr 1fr;\n}\n.basic__runtime-environment {\n grid-area: runtime-environment;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--mer-spacing--xs);\n}\n.basic__runtime-environment.one-runtime-only {\n align-items: center;\n flex-direction: row;\n justify-content: center;\n}\n.control-header__back-end,\n.control-header__front-end {\n padding-block-start: var(--mer-spacing--md);\n}\n.basic__back-end {\n grid-area: back-end;\n}\n.basic__front-end {\n grid-area: front-end;\n}\n.basic__back-end,\n.basic__front-end {\n display: grid;\n grid-template-rows: max-content 1fr;\n grid-auto-rows: max-content;\n overflow: auto;\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\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","/* STENCIL IMPORTS */\nimport {\n Component,\n Element,\n getAssetPath,\n Host,\n Method,\n Prop,\n State,\n h,\n Watch\n} from \"@stencil/core\";\n\nimport { MercuryBundles } from \"@genexus/mercury\";\n\nimport { config } from \"../../common/config\";\nimport { Locale } from \"../../common/locale\";\nimport {\n mapOptionsToComboBoxItemModel,\n renderChCheckboxItems\n} from \"../../common/helpers\";\nimport { getSelectedItem } from \"../../common/common\";\nimport { FormSubmitResult, GxOption } from \"../../common/types\";\nimport {\n ControlValidation,\n validateControls\n} from \"../../common/form-validation\";\nimport {\n ChRadioGroupRenderCustomEvent,\n TabModel,\n ComboBoxModel,\n ChEditCustomEvent,\n RadioGroupModel,\n ChCheckboxCustomEvent\n} from \"@genexus/chameleon-controls-library\";\nimport { removeIndex } from \"../../common/array\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n // TODO: review if \"utils/form--full\" is required.\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 MAIN_SECTION_CLASSES: string = \"main\";\nconst BASIC_SECTION_PARENT_CLASSES: string = \"basic\";\nconst BASIC_TAB_SELECTOR: string = \"basic\";\nconst ADVANCED_TAB_SELECTOR: string = \"advanced\";\n\n@Component({\n tag: \"gx-ide-new-environment\",\n styleUrl: \"new-environment.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/new-environment\"]\n})\nexport class GxIdeNewEnvironment {\n #advancedTabHasBeenRendered: boolean = false;\n #chShortcutsEl!: HTMLChShortcutsElement;\n #envNameModifiedByUser = false;\n /**\n * frontEndsState saves the id's of the front ends checkboxes that are checked\n */\n // TODO (Use a set instead of an array to improve performance)\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #frontEndsCheckedMap = new Map<string, string[]>();\n #selectedDataStoreId: string;\n #selectedLanguageId: string;\n #selectedRuntimeEnvironmentId: string;\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/new-environment/shortcuts.json`\n );\n #newEnvironmentSectionsModel: TabModel = [];\n\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n\n @Element() el: HTMLGxIdeNewEnvironmentElement;\n\n // References needed to collect data con \"createCallback\" button submit*/\n #dataStoreEl!: HTMLChComboBoxRenderElement;\n #environmentNameEl!: HTMLChEditElement;\n #languageEl!: HTMLChComboBoxRenderElement;\n #setAsCurrentEnvironmentEl!: HTMLChCheckboxElement;\n\n @State() advancedTabIsVisible: boolean = false;\n\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\n @State() validatableControls = new Map<string, ControlValidation>();\n\n // representations of GxOption[] as ComboBoxModel or RadioGroupModel.\n @State() dataStoresComboBoxModel: ComboBoxModel = [];\n @State() languageComboBoxModel: ComboBoxModel = [];\n @State() runtimesRadioGroupModel: RadioGroupModel = [];\n\n /**\n * Callback invoked when user wants to cancel\n */\n @Prop() readonly cancelCallback: CancelCallback;\n\n /**\n * Callback invoked when user confirms the KB creation\n */\n @Prop() readonly createCallback!: CreateCallback;\n\n /**\n * Allows defining the DBMS to be used in the solution\n */\n @Prop({ mutable: true }) dataStores!: GxOption[];\n @Watch(\"dataStores\")\n dataStoresChanged(newValue: GxOption[]) {\n if (newValue?.length) {\n this.dataStoresComboBoxModel = mapOptionsToComboBoxItemModel(newValue);\n this.#selectedDataStoreId = getSelectedItem(newValue);\n }\n }\n\n /**\n * Name of the new environment\n */\n @Prop({ mutable: true }) environmentName: string;\n\n /**\n * Callback invoked when user changes the language or the runtime\n */\n @Prop() readonly getDataSourcesCallback!: GetDataSourcesCallback;\n\n /**\n * Callback invoked when user changes the language or data source\n */\n @Prop() readonly getEnvironmentNameCallback!: GetEnvironmentNameCallback;\n\n /**\n * Callback invoked when user changes the language\n */\n @Prop() readonly getFrontEndsCallback!: GetFrontEndsCallback;\n\n /**\n * Define if the Advanced tab should be displayed\n */\n @Prop() readonly isAdvanced: boolean = false;\n\n /**\n * Possible values for 'Language' combo\n */\n @Prop() readonly languages!: GxOption[];\n @Watch(\"languages\")\n languagesChanged(newValue: GxOption[]) {\n if (newValue?.length) {\n this.languageComboBoxModel = mapOptionsToComboBoxItemModel(newValue);\n this.#selectedLanguageId = getSelectedItem(newValue);\n this.#updateFrontEnds();\n }\n }\n\n /**\n * Possible values for 'Runtime Environment' radio button\n */\n @Prop() readonly runtimes!: GxOption[];\n @Watch(\"runtimes\")\n runtimesChanged(newValue: GxOption[]) {\n if (newValue?.length) {\n this.runtimesRadioGroupModel = mapOptionsToComboBoxItemModel(\n this.runtimes\n );\n }\n }\n\n /**\n * Belongs to checkbox 'Set as current environment' @default true\n *\n */\n @Prop() readonly setAsTarget?: boolean = true;\n\n connectedCallback() {\n this.dataStoresChanged(this.dataStores);\n this.languagesChanged(this.languages);\n this.runtimesChanged(this.runtimes);\n }\n\n componentDidLoad() {\n this.#initializeValidatableControlsBasicTab();\n }\n\n componentDidRender() {\n if (this.advancedTabIsVisible && !this.#advancedTabHasBeenRendered) {\n // just call this once.\n this.#advancedTabHasBeenRendered = true;\n }\n }\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#newEnvironmentSectionsModel = [\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 this.#evaluateSelectedRuntimeEnvironmentId();\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 #dataStoreValueChangedHandler = () => {\n /* the data store item id is used for the value (they are equal)*/\n this.#selectedDataStoreId = this.#dataStoreEl.value;\n this.#updateEnvironmentName();\n };\n\n #envNameInputHandler = (e: ChEditCustomEvent<string> | InputEvent) => {\n const newEnvName = (e as ChEditCustomEvent<string>).detail.trim();\n this.#envNameModifiedByUser = newEnvName !== this.environmentName;\n };\n\n #evaluateSelectedRuntimeEnvironmentId = () => {\n this.#selectedRuntimeEnvironmentId = this.runtimes[0]?.value;\n };\n\n // TODO: We must avoid performing the get 3 times.\n // It is used on new-environment 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 #initializeValidatableControlsBasicTab = () => {\n // populate #controlsValidation with the controls that could have errors.\n const validatableControls: HTMLElement[] = [\n this.#dataStoreEl,\n this.#languageEl\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 #languageValueChangedHandler = async (\n event: CustomEvent<string> | InputEvent\n ) => {\n this.#selectedLanguageId = event.detail as string;\n await this.#updateDataSources();\n this.#updateFrontEnds();\n this.#updateEnvironmentName();\n };\n\n #renderAdvanced = (): Element => {\n return <slot name=\"property-grid\"></slot>;\n };\n\n #renderBasic = (): HTMLElement[] => {\n return [\n <div\n class={{\n \"basic__runtime-environment\": true,\n \"control-header-with-border\": true,\n \"one-runtime-only\": this.runtimes.length === 1\n }}\n >\n {this.runtimes.length > 1\n ? [\n <h2\n // Runtime Environment\n class=\"heading-5 text-align-center\"\n >\n {this.#componentLocale.runtime}\n </h2>,\n <ch-radio-group-render\n class=\"radio-group\"\n onChange={this.#runtimeEnvironmentChangedHandler}\n model={this.runtimesRadioGroupModel}\n value={this.#selectedRuntimeEnvironmentId}\n ></ch-radio-group-render>\n ]\n : [\n <h2 class=\"heading-5 text-align-center\">\n {this.#componentLocale.runtime}:\n </h2>,\n <p>{this.runtimesRadioGroupModel[0].caption}</p>\n ]}\n </div>,\n <section class=\"basic__back-end scrollable\">\n <h2\n // back end\n class=\"control-header control-header-with-border control-header__back-end heading-5 text-align-center spacing-body-inline\"\n >\n {this.#componentLocale.tabBasic.backEnd.backEndLabel}\n </h2>\n\n <div class=\"field-group main__back-end spacing-body-inline scrollable\">\n <div\n // #language\n class=\"field field-block\"\n >\n <label class=\"label\" htmlFor=\"language\">\n {this.#componentLocale.tabBasic.backEnd.language}\n </label>\n <ch-combo-box-render\n id=\"language\"\n class=\"combo-box\"\n part=\"language\"\n value={this.#selectedLanguageId}\n disabled={this.languages.length === 0}\n model={this.languageComboBoxModel}\n onInput={this.#languageValueChangedHandler}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#languageEl = el as HTMLChComboBoxRenderElement)\n }\n // TODO: toolTip={config.tooltip}\n ></ch-combo-box-render>\n {this.#evaluateTooltipRender(this.#languageEl)}\n </div>\n\n <div\n // #data stores\n class=\"field field-block\"\n >\n <label class=\"label\" htmlFor=\"data-store\">\n {this.#componentLocale.tabBasic.backEnd.dataStores}\n </label>\n <ch-combo-box-render\n id=\"data-store\"\n class=\"combo-box\"\n part=\"data-store\"\n value={this.#selectedDataStoreId}\n model={this.dataStoresComboBoxModel}\n onInput={this.#dataStoreValueChangedHandler}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#dataStoreEl = el as HTMLChComboBoxRenderElement)\n }\n // TODO: toolTip={config.tooltip}\n ></ch-combo-box-render>\n {this.#evaluateTooltipRender(this.#dataStoreEl)}\n </div>\n </div>\n </section>,\n\n <section class=\"basic__front-end scrollable\">\n <h2\n // front end\n class=\"control-header control-header-with-border control-header__front-end heading-5 text-align-center spacing-body-inline\"\n >\n {this.#componentLocale.tabBasic.frontEnd.frontEndLabel}\n </h2>\n <div\n class=\"field-group front-end__checkboxes spacing-body-inline main__front-end scrollable\"\n role=\"group\"\n aria-labelledby={this.#componentLocale.tabBasic.frontEnd.generators}\n >\n {renderChCheckboxItems(\n this.frontEnds,\n this.#frontEndCheckboxInputHandler,\n this.#frontEndsCheckedMap.get(this.#selectedLanguageId)\n )}\n </div>\n </section>\n ];\n };\n\n #runtimeEnvironmentChangedHandler = async (\n event: ChRadioGroupRenderCustomEvent<string>\n ): Promise<void> => {\n this.#selectedRuntimeEnvironmentId = event.detail;\n await this.#updateDataSources();\n this.#updateEnvironmentName();\n };\n\n #createCallbackHandler = async () => {\n const selectedFrontEndIds =\n this.#frontEndsCheckedMap.get(this.#selectedLanguageId) ?? [];\n\n this.createCallback({\n setAsCurrent: !!this.#setAsCurrentEnvironmentEl?.value,\n name: this.#environmentNameEl.value,\n runtime: this.#selectedRuntimeEnvironmentId,\n language: this.#languageEl.value,\n dataStores: this.#dataStoreEl.value,\n frontEnds: selectedFrontEndIds\n }).then((formSubmitResult: FormSubmitResult) => {\n this.validatableControls = validateControls(\n formSubmitResult,\n this.validatableControls\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 #updateDataSources = async () => {\n const updatedDataSources = await this.getDataSourcesCallback(\n this.#selectedLanguageId,\n this.#selectedRuntimeEnvironmentId\n );\n if (updatedDataSources?.length > 0) {\n this.dataStores = updatedDataSources;\n }\n };\n\n #updateEnvironmentName = async () => {\n if (!this.#envNameModifiedByUser) {\n this.environmentName = await this.getEnvironmentNameCallback(\n this.#selectedLanguageId,\n this.#selectedDataStoreId,\n this.#selectedRuntimeEnvironmentId\n );\n }\n };\n\n #updateFrontEnds = async () => {\n const updatedFrontEnds = await this.getFrontEndsCallback(\n this.#selectedLanguageId\n );\n if (updatedFrontEnds?.length > 0) {\n this.frontEnds = updatedFrontEnds;\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(this.#selectedLanguageId);\n if (!currentState) {\n // first time\n currentState = [];\n this.#frontEndsCheckedMap.set(this.#selectedLanguageId, currentState);\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 render() {\n return (\n <Host class=\"widget scrollable\">\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\n <section class=\"section\">\n <header\n class={{\n \"header\": true,\n \"spacing-body-inline\": true,\n \"spacing-body-block-start\": true,\n \"control-header\": this.isAdvanced,\n \"control-header-with-border\": !this.isAdvanced\n }}\n >\n <div\n // #environment name\n class=\"field field-inline\"\n >\n <label class=\"label\" htmlFor=\"environment-name\">\n {this.#componentLocale.name}\n </label>\n <ch-edit\n // environment name\n autoFocus\n id=\"environment-name\"\n class=\"input\"\n part=\"environment-name\"\n value={this.environmentName}\n placeholder={this.#componentLocale.environmentNamePlaceholder}\n // TODO: toolTip={config.tooltip}\n ref={(el: HTMLChEditElement) =>\n (this.#environmentNameEl = el as HTMLChEditElement)\n }\n onInput={this.#envNameInputHandler}\n ></ch-edit>\n </div>\n </header>\n\n {this.isAdvanced ? (\n <ch-tab-render\n // main section\n class={{\n tab: true,\n [MAIN_SECTION_CLASSES]: true\n }}\n direction=\"block\"\n model={this.#newEnvironmentSectionsModel}\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 {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\n // main section\n class={MAIN_SECTION_CLASSES}\n >\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 \"control-footer-space-between\": true,\n \"spacing-body-block-end\": true,\n \"spacing-body-inline\": true\n }}\n >\n <ch-checkbox\n // #set as current environment\n class=\"checkbox\"\n caption={this.#componentLocale.footer.setAsCurrentEnvironment}\n ref={(el: HTMLChCheckboxElement) =>\n (this.#setAsCurrentEnvironmentEl = el as HTMLChCheckboxElement)\n }\n checkedValue=\"current-environment\"\n value={this.setAsTarget ? \"current-environment\" : \"\"}\n part=\"set-as-current-environment\"\n ></ch-checkbox>\n\n <div class=\"buttons-spacer\">\n <button\n // #cancel\n class=\"button-secondary\"\n onClick={this.cancelCallback}\n part=\"button button-cancel\"\n >\n {this.#componentLocale.footer.btnCancel}\n </button>\n\n <button\n // #create\n class=\"button-primary\"\n onClick={this.#createCallbackHandler}\n part=\"button button-create\"\n >\n {this.#componentLocale.footer.btnCreate}\n </button>\n </div>\n </footer>\n </section>\n </Host>\n );\n }\n}\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type CreateCallback = (\n data: NewEnvironmentData\n) => Promise<FormSubmitResult>;\n\nexport type GetDataSourcesCallback = (\n selectedLanguageId: string,\n selectedRuntimeId: string\n) => Promise<GxOption[]>;\n\nexport type GetEnvironmentNameCallback = (\n selectedLanguageId: string,\n selectedDataSourceId: string,\n selectedRuntimeId: string\n) => Promise<string | undefined>;\n\nexport type GetFrontEndsCallback = (\n selectedLanguageId: string\n) => Promise<GxOption[]>;\n\nexport interface NewEnvironmentData {\n setAsCurrent: boolean;\n name: string;\n runtime: string;\n language: string;\n dataStores: string;\n frontEnds: string[];\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["mapStylesToComboBoxItemModel","styles","map","style","value","id","caption","label","name","TAB_DATA","layout","slot","code","tokens","composition","TAB_MODEL","panels","stencils","images","fonts","designSystem","DESIGN_TYPE_TO_TAB_MODEL_MAP","Map","designImportCss","DESIGN_DATA_TYPE_PANELS","DESIGN_DATA_TYPE_STENCILS","DESIGN_DATA_TYPE_IMAGES","DESIGN_DATA_TYPE_DESIGN_SYSTEM","DESIGN_DATA_TYPE_FONTS","ITEM_COMPOSE_ID_SEPARATOR","CHECKED_VALUE","MENU_DELETE","getIconPath","category","colorType","DESIGN","FILE_UPLOAD","CSS_BUNDLES","GxIdeImportFromDesign","_GxIdeImportFromDesign_componentLocale","set","this","_GxIdeImportFromDesign_loadedItems","_GxIdeImportFromDesign_emptyStateAnimated","_GxIdeImportFromDesign_formattedExtensions","_GxIdeImportFromDesign_accessTokenEl","_GxIdeImportFromDesign_importAsWebPanelsEl","_GxIdeImportFromDesign_moduleEl","_GxIdeImportFromDesign_messagesList","_GxIdeImportFromDesign_panelsSelected","_GxIdeImportFromDesign_stencilsSelected","_GxIdeImportFromDesign_imagesSelected","_GxIdeImportFromDesign_fontsSelected","_GxIdeImportFromDesign_fileInputHiddenEl","_GxIdeImportFromDesign_pathEl","_GxIdeImportFromDesign_initializeActiveTabs","activeTabs","_GxIdeImportFromDesign_evaluateAccessTokenRender","async","requiresAccessToken","requiresAccessTokenCallback","path","accessToken","length","accessTokenHasError","_GxIdeImportFromDesign_pathURLBlurHandler","loadDataCondition1","isLoaded","reactiveSettings","pathIsValid","lastLoadCallbackSettingValues","loadDataCondition2","__classPrivateFieldGet","_GxIdeImportFromDesign_loadData","call","_GxIdeImportFromDesign_objectsTreeSelectedItemsChangedHandler","event","detail","item","_a","itemComposedId","idList","split","itemId","itemDesignType","isChildNode","isDesignSystem","tabsModel","get","selectedDesignType","loadedItem","_GxIdeImportFromDesign_getLoadedItem","designDataDetail","_GxIdeImportFromDesign_getDesignDataDetail","designType","selectedDesignItem","_GxIdeImportFromDesign_instances","_GxIdeImportFromDesign_getCodeFactory","_GxIdeImportFromDesign_renderDetailDataTree","renderedTabs","clear","add","_GxIdeImportFromDesign_validatePath","validPathRegex","figmaURLRegex","urlWithExtensionRegex","test","_GxIdeImportFromDesign_objectsTreeCheckedItemsChangedHandler","items","Array","from","values","currentParentId","result","startsWith","checked","parentId","push","__classPrivateFieldSet","_GxIdeImportFromDesign_selectFileHandler","click","_GxIdeImportFromDesign_styleComboBoxInputHandler","styleValue","target","_GxIdeImportFromDesign_moduleInputHandler","module","defaultModule","isLoading","source","selectedFile","token","undefined","importAsWebPanels","designData","loadCallback","_GxIdeImportFromDesign_messageCallback","messages","success","firstDesignSystemName","_b","moduleId","message","loadFn","loadImageCallback","loadDesignSystemCallback","loadFontCallback","loadPanelDataCallback","returnedData","then","data","_GxIdeImportFromDesign_confirm","confirmCallback","styleName","_GxIdeImportFromDesign_cancel","cancelCallback","_GxIdeImportFromDesign_fitImagesHandler","fitImages","_GxIdeImportFromDesign_getPanelsSelectedItem","reduce","minIndex","index","_GxIdeImportFromDesign_importAsWebPanelsChangedHandler","loadData","_GxIdeImportFromDesign_removeFileSelection","_GxIdeImportFromDesign_selectFileInputChangedHandler","files","_GxIdeImportFromDesign_accessFocusHandler","element","type","_GxIdeImportFromDesign_accessBlurHandler","accessTokenChanged","_GxIdeImportFromDesign_pathUrlInputHandler","_GxIdeImportFromDesign_renderHeader","primaryButtonDisabled","clearFileButtonDisabled","stylesComboDisabled","moduleDisabled","pathWithErrorStyles","displayPathErrorTooltip","primaryButtonCaption","header","btnReload","btnLoad","selectFileButton","h","class","input","debounce","config","inputDebounce","part","onInput","onBlur","disabled","placeholder","pathPlaceholder","startImgSrc","ref","el","actionElement","blockAlign","tooltipSettings","inlineAlign","delay","pathErrorMessage","hidden","accept","onChange","removeFileSelection","title","onClick","src","accessTokenPlaceholder","onFocus","accessTokenErrorMessage","suggest","suggestOptions","alreadyProcessed","model","stylesAsComboBoxModel","labelPosition","defaultValue","selectEntityCallback","selectModuleCallback","onValueChanged","importAs","checkedValue","designDataTreeDataModel","_GxIdeImportFromDesign_renderMessages","text","_GxIdeImportFromDesign_renderMain","_GxIdeImportFromDesign_renderDesignTree","_GxIdeImportFromDesign_renderDesignTabsCh","stateIconSrc","isAnimated","stateTitle","noDesignSelected","key","selectDesign","showLines","dragDisabled","dropDisabled","toggleCheckboxes","checkbox","onCheckedItemsChange","onSelectedItemsChange","_GxIdeImportFromDesign_renderFooter","buttonOkDisabled","footer","btnCancel","btnOk","_GxIdeImportFromDesign_renderPanelTab","renderControlsTree","detailTreeModel","preview","alt","_GxIdeImportFromDesign_renderImageTab","height","_GxIdeImportFromDesign_tabSelectionChangedHandler","newSelectedId","reRenderCounter","tab","scrollable","direction","selectedId","overflow","contain","onSelectedItemChange","display","has","Set","pathIsValidChanged","designDataChanged","newDesignData","panelsSelectedItem","order","leaf","tree","expanded","i","selected","parts","pathChanged","newPath","fileIsLoaded","size","validatePathResult","newAccessToken","trim","stylesChanged","newStyles","componentWillLoad","Locale","getComponentStrings","extensions","ext","join","watchMessagesHandler","newValue","oldValue","scrollTop","scrollHeight","render","Host","controls","modelList","control","Object","assign","_GxIdeImportFromDesign_loadTreeItemCompositionModel","textEditorFactoryCallback"],"sources":["src/components/design-import/helpers.ts","src/components/design-import/models.ts","src/components/design-import/design-import.scss?tag=gx-ide-design-import&encapsulation=shadow","src/components/design-import/design-import.tsx"],"sourcesContent":["import { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { GxOption } from \"../../common/types\";\n\nexport const mapStylesToComboBoxItemModel = (\n styles: GxOption[]\n): ComboBoxModel =>\n styles?.map(style => ({\n value: style.id,\n caption: style.label || style.name\n }));\n","import { TabModel } from \"@genexus/chameleon-controls-library\";\nimport { DesignType } from \"./design-import\";\n\nexport const TAB_DATA: { [key in TAB_SELECTOR]: TabData } = {\n layout: { id: \"layout\", caption: \"Layout\", slot: \"layout\" },\n code: { id: \"code\", caption: \"Code\", slot: \"code\" },\n tokens: { id: \"tokens\", caption: \"Tokens\", slot: \"tokens\" },\n styles: { id: \"styles\", caption: \"Styles\", slot: \"styles\" },\n composition: {\n id: \"composition\",\n caption: \"Composition\",\n slot: \"composition\"\n }\n};\n\nexport const TAB_MODEL: TabDataModel = {\n panels: [\n {\n id: TAB_DATA.composition.id,\n name: TAB_DATA.composition.caption\n },\n {\n id: TAB_DATA.layout.id,\n name: TAB_DATA.layout.caption\n },\n {\n id: TAB_DATA.code.id,\n name: TAB_DATA.code.caption\n }\n ],\n stencils: [\n {\n id: TAB_DATA.composition.id,\n name: TAB_DATA.composition.caption\n },\n {\n id: TAB_DATA.layout.id,\n name: TAB_DATA.layout.caption\n },\n {\n id: TAB_DATA.code.id,\n name: TAB_DATA.code.caption\n }\n ],\n images: [\n {\n id: TAB_DATA.composition.id,\n name: TAB_DATA.composition.caption\n }\n ],\n fonts: [\n {\n id: TAB_DATA.composition.id,\n name: TAB_DATA.composition.caption\n }\n ],\n designSystem: [\n {\n id: TAB_DATA.tokens.id,\n name: TAB_DATA.tokens.caption\n },\n {\n id: TAB_DATA.styles.id,\n name: TAB_DATA.styles.caption\n }\n ]\n};\n\nexport type TabDataModel = {\n panels: TabModel;\n stencils: TabModel;\n images: TabModel;\n fonts: TabModel;\n designSystem: TabModel;\n};\n\ntype TabData = {\n id: TAB_SELECTOR;\n caption: string;\n slot: TAB_SELECTOR;\n};\n\nexport type TAB_SELECTOR =\n | \"layout\"\n | \"code\"\n | \"tokens\"\n | \"styles\"\n | \"composition\";\n\nexport const DESIGN_TYPE_TO_TAB_MODEL_MAP = new Map<DesignType, TabModel>([\n [\"panels\", TAB_MODEL.panels],\n [\"stencils\", TAB_MODEL.stencils],\n [\"images\", TAB_MODEL.images],\n [\"design_system\", TAB_MODEL.designSystem],\n [\"fonts\", TAB_MODEL.fonts]\n]);\n","@import \"../../global/gx-ide-mixins.scss\";\n@import \"../../../node_modules/@genexus/mercury/dist/mercury.scss\";\n\n: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// - - - - - - - - - - - - -\n// Header\n// - - - - - - - - - - - - -\n\n.header {\n display: grid;\n grid-auto-rows: max-content;\n // 88px is the inline-size of the largest label (Access Token) that is not always visible.\n // Setting 88px as the minimum inline size prevents an undesired difference when Access Token\n // is visible. This fix has been made for english only. The value should work with .ja and .zh also.\n grid-template-columns: minmax(88px, max-content) 1fr !important;\n\n &--show-access-token {\n grid-template-areas:\n \"path-url-label path-url-wrapper\"\n \"access-token-label access-token\"\n \"style-label style\"\n \"module-label module\"\n \"checkboxes-options checkboxes-options\";\n }\n &--hide-access-token {\n grid-template-areas:\n \"path-url-label path-url-wrapper\"\n \"style-label style\"\n \"module-label module\"\n \"checkboxes-options checkboxes-options\";\n }\n}\n// path url\n.path-url-wrapper {\n grid-template-columns: 1fr max-content;\n}\n.path-url-label {\n grid-area: path-url-label;\n}\n.path-url-control {\n flex-grow: 1;\n}\n.select-load-button {\n min-inline-size: 80px;\n}\n// access token\n.access-token-label {\n grid-area: access-token-label;\n}\n.access-token {\n grid-area: access-token;\n}\n// style\n.style-label {\n grid-area: style-label;\n}\n.style {\n grid-area: style;\n}\n// module\n.module-label {\n grid-area: module-label;\n}\n.module {\n grid-area: module;\n}\n// checkboxes options\n.checkboxes-options {\n grid-area: checkboxes-options;\n grid-template-columns: max-content max-content;\n justify-content: space-between;\n}\n\n// - - - - - - - - - - - - -\n// Main\n// - - - - - - - - - - - - -\n\n.main {\n display: grid;\n grid-template-columns: 250px 1fr;\n block-size: 100%;\n overflow: auto;\n\n &--loading {\n grid-template-columns: 1fr;\n }\n}\n\n.panel-tab {\n block-size: 100%;\n display: grid;\n grid-template-columns: 1fr 300px;\n\n .panel-item {\n overflow: auto;\n }\n}\n\n.tree-view {\n padding-block: var(--mer-spacing--2xs);\n}\n\n.tree-view-panel-item {\n border-inline-start: var(--section-common-border);\n}\n\n.checker-board {\n --white-square-color: #fff1;\n --black-square-color: #0000;\n background:\n linear-gradient( 45deg, var(--white-square-color) 25%, var(--black-square-color) 25%),\n linear-gradient(-45deg, var(--white-square-color) 25%, var(--black-square-color) 25%),\n linear-gradient( 45deg, var(--black-square-color) 75%, var(--white-square-color) 75%),\n linear-gradient(-45deg, var(--black-square-color) 75%, var(--white-square-color) 75%);\n background-size: 20px 20px;\n background-position: 0 0, 0 10px, 10px -10px, -10px 0px;\n}\n\n/*--- Tabs ---*/\n.tab {\n border-width: 0 !important; // WA/TODO this should be a class on mercury\n}\n.tab.fit-images .composition-tab-slot {\n font-size: 0; // WA to prevent scroll\n}\n.tab.fit-images img {\n object-fit: scale-down;\n object-position: left top;\n max-height: 100%;\n}\n.tab--hidden {\n display: none;\n}\n\n// - - - - - - - - - - - - -\n// Footer\n// - - - - - - - - - - - - -\n\n.button-cancel,\n.button-ok {\n min-inline-size: var(--mer-spacing--4xl);\n}\n\n// - - - - - - - - - - - - -\n// Other\n// - - - - - - - - - - - - -\n\n.messages-slot-container {\n block-size: 100%;\n}\n\n.composition-tab-slot {\n block-size: 100%;\n overflow: auto;\n}\n\n.empty-state {\n overflow: auto;\n}\n.empty-state-button {\n // WA (It looks more pleasing with a little bit less of gap)\n transform: translateY(-12px);\n}\n\n// Messages Styles\n.messages-container {\n}\n.message {\n animation: fadeIn var(--mer-timing--fast) ease-in-out forwards;\n\n &--info {\n color: var(--mer-text__on-surface);\n }\n &--warning {\n color: var(--mer-text__warning);\n }\n &--error {\n color: var(--mer-text__error);\n }\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n// WA\n\n.combo-box.ch-disabled {\n --control__bg-color: var(--control__background-color--disabled);\n --control__border-color: var(--control__border-color--disabled);\n --control__color: var(--control__color--disabled);\n --ch-placeholder-color: var(--control-placeholder__color--disabled);\n}\n","// Stencil\nimport { Component, Host, h, Prop, Element, State, Watch } from \"@stencil/core\";\n\n// Other Libraries\nimport {\n ChCheckboxCustomEvent,\n ChEditCustomEvent,\n ComboBoxModel,\n TabModel,\n TreeViewItemModel\n} from \"@genexus/chameleon-controls-library\";\nimport { TreeViewItemModelExtended } from \"@genexus/chameleon-controls-library\";\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\n\n// Custom Imports\nimport { config } from \"../../common/config\";\nimport { mapStylesToComboBoxItemModel } from \"./helpers\";\nimport { Locale } from \"../../common/locale\";\nimport { EntityData, GxOption } from \"../../common/types\";\nimport { TAB_DATA, DESIGN_TYPE_TO_TAB_MODEL_MAP, TAB_MODEL } from \"./models\";\n\nconst DESIGN_DATA_TYPE_PANELS = \"panels\";\nconst DESIGN_DATA_TYPE_STENCILS = \"stencils\";\nconst DESIGN_DATA_TYPE_IMAGES = \"images\";\nconst DESIGN_DATA_TYPE_DESIGN_SYSTEM = \"design_system\";\nconst DESIGN_DATA_TYPE_FONTS = \"fonts\";\n\nconst ITEM_COMPOSE_ID_SEPARATOR = \"@@@\";\n\n// ch-checkbox\nconst CHECKED_VALUE = \"on\";\n\n// Icons\nconst MENU_DELETE = getIconPath({\n category: \"menus\",\n name: \"delete\",\n colorType: \"primary\"\n});\nconst DESIGN = getIconPath({\n category: \"objects\",\n name: \"design\"\n});\nconst FILE_UPLOAD = getIconPath({\n category: \"controls\",\n name: \"file-upload\"\n});\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"components/button\",\n \"components/checkbox\",\n \"components/edit\",\n \"components/tree-view\",\n \"components/combo-box\",\n \"components/tab\",\n \"components/tooltip\",\n \"chameleon/scrollbar\"\n];\n\n@Component({\n tag: \"gx-ide-design-import\",\n styleUrl: \"design-import.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/design-import\"]\n})\nexport class GxIdeImportFromDesign {\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 /**\n * An array that keeps track of the tree items id's (design system data type\n * + item id) along with the content, that will be used to save and retrieve\n * items information, in order to avoid using a callback to get items\n * information that was already get. loadedItemsArray will be reset every time\n * a new design is loaded.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #loadedItems: Map<string, ItemLoadedInfo> = new Map();\n\n #emptyStateAnimated: boolean = false;\n #formattedExtensions: string;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeDesignImportElement;\n\n /* References needed to collect data */\n #accessTokenEl!: HTMLChEditElement;\n #importAsWebPanelsEl!: HTMLChCheckboxElement;\n #moduleEl!: HTMLGxIdeEntitySelectorElement;\n #messagesList: HTMLElement;\n #panelsSelected: string[] = [];\n #stencilsSelected: string[] = [];\n #imagesSelected: string[] = [];\n #fontsSelected: string[] = [];\n #fileInputHiddenEl: HTMLInputElement;\n #pathEl: HTMLChEditElement;\n\n // Use to force a re-render\n @State() reRenderCounter: number = 0;\n\n // Maps to Chameleon Models:\n @State() stylesAsComboBoxModel: ComboBoxModel;\n\n // The current style value\n @State() styleValue: string = \"\";\n\n @State() accessTokenHasError: boolean = false;\n\n @State() pathIsValid: boolean;\n @Watch(\"pathIsValid\")\n pathIsValidChanged(pathIsValid: boolean) {\n if (pathIsValid) {\n this.#evaluateAccessTokenRender();\n } else {\n // hide access token input if path is not valid\n this.requiresAccessToken = false;\n }\n }\n\n @State() tabsModel: TabModel = [];\n\n @State() activeTabs: Map<DesignType, string> = new Map();\n\n @State() renderedTabs: Set<string> = new Set();\n\n /**\n * The design data loaded from file\n */\n @State() designData: DesignData = null;\n @Watch(\"designData\")\n designDataChanged(newDesignData: DesignData) {\n if (newDesignData) {\n const panelsSelectedItem = this.#getPanelsSelectedItem(\n this.designData.panels\n );\n this.designDataTreeDataModel = [\n {\n order: 0,\n id: `parent${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_PANELS}`,\n leaf: false,\n caption: this.#componentLocale.tree.panels,\n startImgSrc: \"objects/panel-for-sd\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.designData.panels.map((item, i) => ({\n id: `${item.id}${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_PANELS}`,\n class: \"object tree-view-item\",\n leaf: true,\n caption: item.name,\n startImgSrc: \"objects/panel-for-sd\",\n checkbox: true,\n checked: true,\n selected: i === panelsSelectedItem\n }))\n },\n {\n order: 1,\n id: `parent${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_STENCILS}`,\n leaf: false,\n caption: this.#componentLocale.tree.stencils,\n startImgSrc: \"objects/stencil\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.designData.stencils.map(item => ({\n id: `${item.id}${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_STENCILS}`,\n class: \"object tree-view-item\",\n leaf: true,\n caption: item.name,\n startImgSrc: \"objects/stencil\",\n checkbox: true,\n checked: true\n }))\n },\n {\n order: 2,\n id: `parent${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_IMAGES}`,\n parts: \"category tree-view-item\",\n leaf: false,\n caption: this.#componentLocale.tree.images,\n startImgSrc: \"objects/image\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.designData.images.map(item => ({\n id: `${item.id}${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_IMAGES}`,\n class: \"object tree-view-item\",\n leaf: true,\n caption: item.name,\n startImgSrc: \"objects/image\",\n checkbox: true,\n checked: true\n }))\n },\n {\n order: 3,\n id: `parent${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_FONTS}`,\n leaf: false,\n caption: this.#componentLocale.tree.fonts,\n startImgSrc: \"controls/font\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.designData.fonts.map(item => ({\n id: `${item.id}${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_FONTS}`,\n class: \"object tree-view-item\",\n leaf: true,\n caption: item.name,\n startImgSrc: \"controls/font\",\n checkbox: true,\n checked: true\n }))\n },\n {\n order: 4,\n id: `${\n this.designData.designSystem.length > 0\n ? this.designData.designSystem[0].id\n : \"parent\"\n }${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_DESIGN_SYSTEM}`,\n leaf: true,\n caption: this.#componentLocale.tree.designSystem,\n startImgSrc: \"objects/dso\",\n checkbox: true,\n checked: true\n }\n ];\n }\n }\n\n /**\n * The model data loaded into the detail tree\n */\n @State() detailTreeModel: TreeViewItemModel[] = [];\n\n /**\n * If the design data is loading or not, for disabled actions\n */\n @State() isLoading = false;\n\n /**\n * If the design data is loaded or not, for conditioning input file\n */\n @State() isLoaded = false;\n\n /**\n * The messages receive when the file is loading\n */\n @State() messages: MessageData[] = [];\n\n /**\n * The file selected for load the design data\n */\n @State() selectedFile: File;\n\n /**\n * The type of the design data selected for show it visual tabs\n */\n @State() selectedDesignType: DesignType;\n\n /**\n * The item of the design data selected for show its contents on visual tabs\n */\n @State() selectedDesignItem: any;\n\n /**\n * Whether to show or not the access token input field\n */\n @State() requiresAccessToken: boolean;\n\n /**\n * the design data tree view data model\n */\n @State() designDataTreeDataModel: TreeViewItemModel[] = [];\n\n /**\n * Used to trigger a re-render after an item has been selected on\n * renderDesignTree, in order to set the first tab as the active tab\n * (setFirstActiveTab()), since calling this method inside\n * objectsTreeSelectedItemsChangedHandler does not always work without a\n * setTimeOut.\n */\n @State() updateTabsActiveTab: boolean = false;\n\n /**\n * If true, images will be fitted in the container\n */\n @State() fitImages = false;\n\n /**\n * Represents a collection of settings where each key is a specific option. Its\n * boolean value determines whether changes to that option are listened to and\n * trigger the loadCallback callback.\n */\n @Prop() readonly reactiveSettings: ReactiveSettings = {\n path: true,\n style: false,\n module: false,\n importAsWebPanels: true\n };\n\n /**\n * Used to keep track of the settings values since the last loadCallback.\n * Used to know if loadCallback is required to be called again, when any\n * of these values are changed.\n */\n @State() lastLoadCallbackSettingValues: ReactiveSettingsValues = {\n path: undefined,\n style: undefined,\n moduleId: undefined,\n importAsWebPanels: undefined\n };\n\n /**\n * The valid extensions for the files that will be loaded in Path/URL\n * (ie.: \".fig, .sketch\")\n */\n @Prop() readonly extensions!: string[];\n\n /**\n * Default value for the 'Module' field.\n */\n @Prop() readonly defaultModule: EntityData;\n\n /**\n * The path/URL for load the design data\n */\n @Prop({ mutable: true }) path: string = \"\";\n @Watch(\"path\")\n pathChanged(newPath: string) {\n const fileIsLoaded = this.selectedFile?.size > 0;\n const validatePathResult = this.#validatePath(newPath) || fileIsLoaded;\n this.pathIsValid = validatePathResult;\n }\n\n /**\n * The access token for the given path, which is not always required\n */\n @Prop({ mutable: true }) accessToken: string = \"\";\n @Watch(\"accessToken\")\n accessTokenChanged(newAccessToken: string) {\n if (!newAccessToken.trim().length) {\n this.accessTokenHasError = true;\n return;\n }\n this.accessTokenHasError = false;\n this.accessToken = newAccessToken;\n }\n\n /**\n * The value for \"Import as Web Panels\" checkbox.\n */\n @Prop() readonly importAsWebPanels: boolean = false;\n\n /**\n * Callback invoked when the action is executed in the Module/Folder filter.\n * It returns the information of the selected object (id and name) or\n * 'undefined' if it was canceled.\n */\n @Prop() readonly selectModuleCallback: SelectModuleCallback;\n\n /**\n * This is a function provided by the developer that cancel the load operation.\n */\n @Prop() readonly cancelCallback!: CancelCallback;\n\n /**\n * This is a function provided by the developer that initiates the process\n * of importing a design.\n */\n @Prop() readonly confirmCallback!: ConfirmCallback;\n\n /**\n * This is a function provided by the developer that returns the list of\n * data types loaded from a file or URL.\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * This is a function provided by the developer that returns the information\n * of a Design System type of data.\n */\n // eslint-disable-next-line prettier/prettier\n @Prop() readonly loadDesignSystemCallback!: LoadDesignSystemCallback;\n\n /**\n * This is a function provided by the developer that returns the information\n * of a Font type of data.\n */\n @Prop() readonly loadFontCallback!: LoadFontCallback;\n\n /**\n * This is a function provided by the developer that returns the information\n * of an Image System type of data.\n */\n @Prop() readonly loadImageCallback!: LoadImageCallback;\n\n /**\n * This is a function provided by the developer that returns the information\n * of a Panel type of data.\n */\n @Prop() readonly loadPanelDataCallback!: LoadPanelDataCallback;\n\n /**\n * Callback invoked to determine if accessing a design requires an authentication token.\n */\n @Prop() readonly requiresAccessTokenCallback!: RequiresAccessTokenCallback;\n\n /**\n * The styles render in the option style selector\n */\n @Prop() readonly styles!: GxOption[];\n @Watch(\"styles\")\n stylesChanged(newStyles: GxOption[]) {\n this.stylesAsComboBoxModel = mapStylesToComboBoxItemModel(newStyles);\n }\n\n /**\n * This is a function provided by the developer for create an instance of a text editor.\n */\n // eslint-disable-next-line prettier/prettier\n @Prop() readonly textEditorFactoryCallback!: TextEditorFactoryCallback;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#formattedExtensions = this.extensions\n .map(ext => `.${ext}`)\n .join(\", \");\n this.stylesChanged(this.styles);\n this.#initializeActiveTabs();\n this.pathChanged(this.path);\n this.styleValue =\n this.stylesAsComboBoxModel?.length > 0\n ? this.stylesAsComboBoxModel[0]?.value\n : \"\";\n }\n\n @Watch(\"messages\")\n watchMessagesHandler(newValue: boolean, oldValue: boolean) {\n if (newValue !== oldValue) {\n if (this.#messagesList) {\n this.#messagesList.scrollTop = this.#messagesList.scrollHeight;\n }\n }\n }\n\n // 9.LOCAL METHODS //\n\n #initializeActiveTabs = () => {\n this.activeTabs.set(\"panels\", TAB_MODEL.panels[0].id);\n this.activeTabs.set(\"stencils\", TAB_MODEL.stencils[0].id);\n this.activeTabs.set(\"images\", TAB_MODEL.images[0].id);\n this.activeTabs.set(\"fonts\", TAB_MODEL.fonts[0].id);\n this.activeTabs.set(\"design_system\", TAB_MODEL.designSystem[0].id);\n };\n\n #evaluateAccessTokenRender = async () => {\n this.requiresAccessToken = await this.requiresAccessTokenCallback(\n this.path\n );\n // evaluate access token error\n if (this.accessToken.length) {\n this.accessTokenHasError = false;\n }\n };\n\n #pathURLBlurHandler = async () => {\n const loadDataCondition1 =\n this.isLoaded &&\n this.reactiveSettings.path &&\n this.pathIsValid &&\n this.path !== this.lastLoadCallbackSettingValues.path;\n const loadDataCondition2 =\n !this.requiresAccessToken ||\n (this.requiresAccessToken && this.accessToken.length > 0);\n if (loadDataCondition1 && loadDataCondition2) {\n this.#loadData();\n }\n };\n\n #loadTreeItemCompositionModel(\n controls: DesignPanelControlData[]\n ): TreeViewItemModel[] {\n const modelList: TreeViewItemModel[] = [];\n for (const control of controls) {\n let model: TreeViewItemModel = {\n id: control.name,\n caption: control.name,\n startImgSrc: control.type,\n checkbox: false,\n expanded: true,\n leaf: control.leaf\n };\n if (control.controls) {\n model = {\n ...model,\n items: this.#loadTreeItemCompositionModel(control.controls)\n };\n }\n modelList.push(model);\n }\n return modelList;\n }\n\n #objectsTreeSelectedItemsChangedHandler = async (\n event: CustomEvent<TreeViewItemModelExtended[]>\n ) => {\n if (event.detail.length) {\n const item = event.detail[0]?.item;\n const itemComposedId = item.id;\n const idList = itemComposedId.split(ITEM_COMPOSE_ID_SEPARATOR);\n const itemId = idList[0];\n const itemDesignType: DesignType = idList[1] as DesignType;\n const isChildNode = itemId && itemId !== \"parent\";\n const isDesignSystem = itemDesignType === \"design_system\";\n if (isChildNode || isDesignSystem) {\n this.tabsModel = DESIGN_TYPE_TO_TAB_MODEL_MAP.get(itemDesignType);\n this.selectedDesignType = itemDesignType;\n const loadedItem = this.#getLoadedItem(itemComposedId);\n if (!loadedItem) {\n const designDataDetail: DesignItemDataDetail =\n await this.#getDesignDataDetail(itemId, this.selectedDesignType);\n this.#loadedItems.set(itemComposedId, {\n designType: this.selectedDesignType,\n designDataDetail: designDataDetail\n });\n } else {\n // Item has been queried already. The item content exists already.\n this.selectedDesignType = loadedItem.designType;\n this.selectedDesignItem = loadedItem.designDataDetail;\n this.#getCodeFactory(loadedItem.designType);\n this.#renderDetailDataTree(loadedItem.designType);\n }\n this.renderedTabs.clear();\n this.renderedTabs.add(this.activeTabs.get(this.selectedDesignType));\n }\n }\n };\n\n #getLoadedItem = (id: string): ItemLoadedInfo | undefined => {\n return this.#loadedItems?.get(id);\n };\n\n #validatePath = (path: string): boolean => {\n const validPathRegex = /^(\\/|\\.\\/|(\\w:))[^:*?\"<>|]*\\.(sketch|gxsketch)$/i; // Match valid file paths\n const figmaURLRegex = /^https?:\\/\\/(www\\.)?figma\\.com/; // Match URLs containing \"www.figma.com\"\n const urlWithExtensionRegex =\n /^https?:\\/\\/[^\\s/$.?#].[^\\s]*\\.(sketch|gxsketch)$/i; // Match URLs ending with .sketch or .gxsketch\n const pathIsValid =\n validPathRegex.test(path) ||\n figmaURLRegex.test(path) ||\n urlWithExtensionRegex.test(path);\n return pathIsValid;\n };\n\n #objectsTreeCheckedItemsChangedHandler = (\n event: CustomEvent<Map<string, TreeViewItemModelExtended>>\n ) => {\n const items = Array.from(event.detail.values());\n let currentParentId = null;\n const result: { [key: string]: string[] } = {};\n\n for (const item of items) {\n if (item.item.id.startsWith(`parent${ITEM_COMPOSE_ID_SEPARATOR}`)) {\n currentParentId = item.item.id.split(ITEM_COMPOSE_ID_SEPARATOR)[1];\n result[currentParentId] = [];\n } else if (item.item.checked && currentParentId) {\n const parentId = item.item.id.split(ITEM_COMPOSE_ID_SEPARATOR)[1];\n if (parentId === currentParentId) {\n const id = item.item.id.split(ITEM_COMPOSE_ID_SEPARATOR)[0];\n result[currentParentId].push(id);\n }\n }\n }\n // const { designSystem, fonts, images, panels, stencils } = result;\n const { fonts, panels, stencils, images } = result;\n\n // this.designSystemSelected = designSystem;\n this.#panelsSelected = panels;\n this.#stencilsSelected = stencils;\n this.#imagesSelected = images;\n this.#fontsSelected = fonts;\n };\n\n #selectFileHandler = (): void => {\n this.#fileInputHiddenEl.click();\n };\n\n #styleComboBoxInputHandler = (event: CustomEvent<string> | InputEvent) => {\n this.styleValue = (event.target as HTMLChComboBoxRenderElement).value;\n if (\n this.reactiveSettings.style &&\n this.styleValue !== this.lastLoadCallbackSettingValues.style\n ) {\n this.#loadData();\n }\n };\n\n #moduleInputHandler = (event: CustomEvent<EntityData>) => {\n if (\n this.reactiveSettings.module &&\n this.defaultModule.id !== event.detail.id &&\n this.pathIsValid\n ) {\n this.#loadData();\n }\n };\n\n #loadData = async (): Promise<void> => {\n this.isLoading = true;\n const source = this.selectedFile ? this.selectedFile : this.path;\n const token = this.#accessTokenEl ? this.#accessTokenEl.value : undefined;\n const style = this.styleValue;\n const importAsWebPanels = this.#importAsWebPanelsEl.value === CHECKED_VALUE;\n const designData: DesignData = await this.loadCallback(\n source,\n style,\n importAsWebPanels,\n token,\n this.#messageCallback\n );\n\n // clear\n this.#panelsSelected = [];\n this.#stencilsSelected = [];\n this.#fontsSelected = [];\n this.selectedDesignType = undefined;\n this.selectedDesignItem = undefined;\n this.messages = [];\n\n this.designData = designData;\n this.isLoaded = designData?.success ?? false;\n this.isLoading = false;\n\n const firstDesignSystemName = designData.designSystem[0]?.name;\n if (firstDesignSystemName && !this.styleValue)\n this.styleValue = firstDesignSystemName;\n\n // update the settings that were used for the last load\n if (this.reactiveSettings.path && this.pathIsValid) {\n this.lastLoadCallbackSettingValues.path = this.path;\n }\n if (this.reactiveSettings.style) {\n this.lastLoadCallbackSettingValues.style = style;\n }\n if (this.reactiveSettings.module) {\n this.lastLoadCallbackSettingValues.moduleId = this.#moduleEl.value.id;\n }\n if (this.reactiveSettings.importAsWebPanels) {\n this.lastLoadCallbackSettingValues.importAsWebPanels = importAsWebPanels;\n }\n };\n\n #messageCallback: LoadMessageCallback = message => {\n this.messages = [...this.messages, message];\n };\n\n #getDesignDataDetail = async (\n id: string,\n designType: DesignType\n ): Promise<DesignItemDataDetail> => {\n let loadFn:\n | LoadPanelDataCallback\n | LoadImageCallback\n | LoadFontCallback\n | LoadDesignSystemCallback;\n\n switch (designType) {\n case DESIGN_DATA_TYPE_IMAGES:\n loadFn = this.loadImageCallback;\n break;\n case DESIGN_DATA_TYPE_DESIGN_SYSTEM:\n loadFn = this.loadDesignSystemCallback;\n break;\n case DESIGN_DATA_TYPE_FONTS:\n loadFn = this.loadFontCallback;\n break;\n case DESIGN_DATA_TYPE_PANELS:\n case DESIGN_DATA_TYPE_STENCILS:\n loadFn = this.loadPanelDataCallback;\n break;\n }\n\n let returnedData: DesignItemDataDetail;\n await loadFn(id).then((data: DesignItemDataDetail) => {\n this.selectedDesignType = designType;\n this.selectedDesignItem = data;\n this.#getCodeFactory(designType);\n this.#renderDetailDataTree(designType);\n returnedData = data;\n });\n\n return returnedData;\n };\n\n #getCodeFactory(designType: string) {\n switch (designType) {\n case DESIGN_DATA_TYPE_PANELS:\n case DESIGN_DATA_TYPE_STENCILS:\n this.textEditorFactoryCallback(\n \"code\",\n TAB_DATA.code.slot,\n this.selectedDesignItem.code\n );\n this.textEditorFactoryCallback(\n \"html\",\n TAB_DATA.layout.slot,\n this.selectedDesignItem.layout\n );\n break;\n case DESIGN_DATA_TYPE_DESIGN_SYSTEM:\n this.textEditorFactoryCallback(\n \"tokens\",\n TAB_DATA.tokens.slot,\n this.selectedDesignItem.tokens\n );\n this.textEditorFactoryCallback(\n \"styles\",\n TAB_DATA.styles.slot,\n this.selectedDesignItem.styles\n );\n break;\n }\n }\n\n #confirm = (): void => {\n this.confirmCallback({\n panels: this.#panelsSelected,\n stencils: this.#stencilsSelected,\n fonts: this.#fontsSelected,\n images: this.#imagesSelected,\n moduleId: this.#moduleEl?.value?.id,\n styleName: this.styleValue,\n importAsWebPanels: this.#importAsWebPanelsEl.value === CHECKED_VALUE\n });\n };\n\n #cancel = (): void => {\n this.cancelCallback();\n this.isLoading = false;\n };\n\n #fitImagesHandler = (event: ChCheckboxCustomEvent<any> | InputEvent) => {\n this.fitImages = event.detail === CHECKED_VALUE;\n };\n\n #getPanelsSelectedItem = (panels: DesignItemData[]): number => {\n return panels.reduce((minIndex, item, index, panels) => {\n return panels[minIndex].name <= item.name ? minIndex : index;\n }, 0);\n };\n\n #importAsWebPanelsChangedHandler = () => {\n const loadData =\n this.reactiveSettings.importAsWebPanels && this.pathIsValid;\n if (loadData) {\n this.#loadData();\n }\n };\n\n #removeFileSelection = () => {\n this.selectedFile = null;\n this.path = \"\";\n this.accessToken = \"\";\n this.selectedFile = null;\n this.#fileInputHiddenEl.value = null;\n };\n\n #selectFileInputChangedHandler = (event: InputEvent) => {\n const target = event.target as HTMLInputElement;\n if (target.files?.length > 0) {\n this.selectedFile = target.files[0];\n this.path = this.selectedFile.name;\n // we know the path is valid because the extensions are restricted by \"extensions\" Prop.\n }\n };\n\n #accessFocusHandler = (event: ChEditCustomEvent<string> | FocusEvent) => {\n const element = event.target as HTMLChEditElement;\n element.type = \"text\"; // display token on focus\n };\n\n #accessBlurHandler = (event: ChEditCustomEvent<string> | FocusEvent) => {\n const element = event.target as HTMLChEditElement;\n element.type = \"password\"; // hide token on blur\n\n this.accessTokenChanged(element.value);\n };\n\n #pathUrlInputHandler = async (\n event: ChEditCustomEvent<string> | InputEvent\n ) => {\n this.path = event.detail as string;\n this.#evaluateAccessTokenRender();\n this.selectedFile = null;\n if (!this.path.length)\n this.designData = null;\n };\n\n // 9.LOCAL METHODS -> RENDERS //\n\n #renderHeader = (): Element => {\n const primaryButtonDisabled =\n this.isLoading ||\n (this.pathIsValid &&\n this.requiresAccessToken &&\n this.accessToken.length === 0);\n const clearFileButtonDisabled = this.isLoading || this.path.length === 0;\n const stylesComboDisabled = this.isLoading;\n const moduleDisabled = this.isLoading;\n const pathWithErrorStyles = !this.pathIsValid && this.path.length > 0;\n const displayPathErrorTooltip = !this.pathIsValid && this.path.length > 0;\n let primaryButtonCaption;\n if (\n this.pathIsValid &&\n this.path === this.lastLoadCallbackSettingValues.path\n ) {\n primaryButtonCaption = this.#componentLocale.header.btnReload;\n } else if (this.pathIsValid) {\n primaryButtonCaption = this.#componentLocale.header.btnLoad;\n } else {\n primaryButtonCaption = this.#componentLocale.header.selectFileButton;\n }\n\n return (\n <header\n class={{\n \"header\": true,\n \"control-header-with-border\": true,\n \"spacing-body-inline\": true,\n \"spacing-body-block-start\": true,\n \"header--show-access-token\": this.requiresAccessToken,\n \"header--hide-access-token\": !this.requiresAccessToken,\n \"field-group-cols-2\": true\n }}\n >\n <label\n // path/url label\n class=\"label path-url-label\"\n >\n {this.#componentLocale.header.path}\n </label>\n <div class=\"path-url-wrapper buttons-spacer\">\n <ch-edit\n // path/url/file input\n id=\"path-url\"\n class={{\n \"input\": true,\n \"input-error\": pathWithErrorStyles,\n \"path-url-control\": true\n }}\n debounce={config.inputDebounce}\n part=\"option-path\"\n type=\"text\"\n value={this.path}\n onInput={this.#pathUrlInputHandler}\n onBlur={this.reactiveSettings.path && this.#pathURLBlurHandler}\n disabled={this.isLoading}\n placeholder={`${this.#componentLocale.header.pathPlaceholder}`}\n startImgSrc={FILE_UPLOAD}\n ref={(el: HTMLChEditElement) =>\n (this.#pathEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n {displayPathErrorTooltip && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={this.#pathEl as unknown as HTMLButtonElement}\n blockAlign={config.tooltipSettings.blockAlign}\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.#componentLocale.header.pathErrorMessage}{\" \"}\n {this.#formattedExtensions}\n </ch-tooltip>\n )}\n\n <input\n hidden\n type=\"file\"\n accept={this.#formattedExtensions}\n onChange={this.#selectFileInputChangedHandler}\n ref={(el: HTMLInputElement) =>\n (this.#fileInputHiddenEl = el as HTMLInputElement)\n }\n />\n\n <div class=\"buttons-spacer\">\n <button\n // remove file selection\n aria-label={this.#componentLocale.header.removeFileSelection}\n title={this.#componentLocale.header.removeFileSelection}\n id=\"reset-all-button\"\n class=\"button-tertiary button-icon-only\"\n part=\"reset-all-button\"\n disabled={clearFileButtonDisabled}\n onClick={!clearFileButtonDisabled && this.#removeFileSelection}\n >\n <ch-image\n class=\"icon-md\"\n src={MENU_DELETE}\n disabled={clearFileButtonDisabled}\n ></ch-image>\n </button>\n <button\n // load file button\n id=\"button-load\"\n type=\"primary-text-only\"\n onClick={\n this.pathIsValid ? this.#loadData : this.#selectFileHandler\n }\n part=\"button button--load\"\n disabled={primaryButtonDisabled}\n class={{\n \"button-primary\": this.pathIsValid,\n \"button-secondary\": !this.pathIsValid,\n \"select-load-button\": true\n }}\n >\n {primaryButtonCaption}\n </button>\n </div>\n </div>\n\n {this.requiresAccessToken && [\n <label\n // access token label\n class=\"label access-token-label\"\n >\n {this.#componentLocale.header.accessToken}\n </label>,\n <div>\n <ch-edit\n class={{\n \"input\": true,\n \"access-token\": true,\n \"input-error\": this.accessTokenHasError\n }}\n ref={(el: HTMLChEditElement) =>\n (this.#accessTokenEl = el as HTMLChEditElement)\n }\n value={this.accessToken}\n placeholder={this.#componentLocale.header.accessTokenPlaceholder}\n onFocus={this.#accessFocusHandler}\n onBlur={this.#accessBlurHandler}\n part=\"access-token\"\n disabled={this.isLoading}\n type=\"password\"\n ></ch-edit>\n {this.accessTokenHasError && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={\n this.#accessTokenEl as unknown as HTMLButtonElement\n }\n blockAlign={config.tooltipSettings.blockAlign}\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.#componentLocale.header.accessTokenErrorMessage}\n </ch-tooltip>\n )}\n </div>\n ]}\n <label\n // style label\n class=\"label style-label\"\n >\n {this.#componentLocale.header.style}\n </label>\n <ch-combo-box-render\n // style combo box\n suggest={true}\n suggestOptions={{\n alreadyProcessed: true\n }}\n disabled={stylesComboDisabled}\n model={this.stylesAsComboBoxModel}\n value={this.styleValue}\n onInput={this.#styleComboBoxInputHandler}\n part=\"option-style\"\n class=\"combo-box style\"\n ></ch-combo-box-render>\n\n <label\n // module label\n class=\"label module-label\"\n >\n {this.#componentLocale.header.module}\n </label>\n <gx-ide-entity-selector\n // module entity selector\n labelPosition=\"none\"\n value={this.defaultModule}\n defaultValue={this.defaultModule}\n selectEntityCallback={this.selectModuleCallback}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.#moduleEl = el as HTMLGxIdeEntitySelectorElement)\n }\n onValueChanged={\n this.reactiveSettings.module && this.#moduleInputHandler\n }\n disabled={moduleDisabled}\n class=\"module\"\n ></gx-ide-entity-selector>\n\n <div\n // import as web panels\n class=\"checkboxes-options field-group\"\n >\n <ch-checkbox\n caption={this.#componentLocale.header.importAs}\n checkedValue={CHECKED_VALUE}\n class=\"checkbox import-as-web-panels\"\n ref={(el: HTMLChCheckboxElement) =>\n (this.#importAsWebPanelsEl = el as HTMLChCheckboxElement)\n }\n value={this.importAsWebPanels ? CHECKED_VALUE : undefined}\n part=\"option-import-as-web-panels\"\n disabled={this.isLoading}\n onInput={this.#importAsWebPanelsChangedHandler}\n ></ch-checkbox>\n\n <div\n class={{\n \"field-group-inline\": true,\n \"checkboxes-options__col-right\": true\n }}\n >\n <ch-checkbox\n // fit images\n caption={this.#componentLocale.header.fitImages}\n checkedValue={CHECKED_VALUE}\n class=\"checkbox\"\n part=\"fit-images-checkbox\"\n disabled={this.isLoading || !this.designDataTreeDataModel.length}\n onInput={this.#fitImagesHandler}\n ></ch-checkbox>\n </div>\n </div>\n </header>\n );\n };\n\n #renderMessages = (): HTMLParagraphElement[] => {\n return (\n this.messages.length > 0 &&\n this.messages.map(message => (\n <p\n class={{\n \"text-body-regular-m\": true,\n \"message\": true,\n [`message--${message.type}`]: true\n }}\n >\n {message.type}: {message.text}\n </p>\n ))\n );\n };\n\n #renderDetailDataTree(designType: string) {\n switch (designType) {\n case DESIGN_DATA_TYPE_PANELS:\n case DESIGN_DATA_TYPE_STENCILS:\n this.detailTreeModel = this.#loadTreeItemCompositionModel(\n this.selectedDesignItem.composition.controls\n );\n break;\n }\n }\n\n #renderMain = () => {\n if (this.isLoading || this.designData?.success === false) {\n return (\n <div\n class=\"main main--loading scrollable\"\n ref={(el: HTMLElement) => (this.#messagesList = el as HTMLElement)}\n >\n {this.#renderMessages()}\n <div class=\"text-body-regular-m spacing-body\">\n <slot name=\"messages\"></slot>\n </div>\n </div>\n );\n } else if (this.designData?.success) {\n return (\n /* #main*/\n <div class=\"main\">\n {[this.#renderDesignTree(), this.#renderDesignTabsCh()]}\n </div>\n );\n } else {\n return (\n <gx-ide-empty-state\n class=\"empty-state scrollable\"\n stateIconSrc={DESIGN}\n isAnimated={this.#emptyStateAnimated}\n stateTitle={this.#componentLocale.messages.noDesignSelected}\n key=\"no-objects-empty-state\"\n >\n <button\n // begin by selecting a file\n class=\"button-tertiary empty-state-button\"\n onClick={this.#selectFileHandler}\n >\n {this.#componentLocale.messages.selectDesign}\n </button>\n </gx-ide-empty-state>\n );\n }\n };\n\n #renderDesignTree = (): HTMLChTreeViewElement => {\n return (\n <ch-tree-view-render\n part=\"data-tree\"\n class=\"tree-view\"\n id=\"data-tree\"\n showLines=\"last\"\n model={this.designDataTreeDataModel}\n dragDisabled={true}\n dropDisabled={true}\n toggleCheckboxes={true}\n checkbox={true}\n checked={true}\n onCheckedItemsChange={this.#objectsTreeCheckedItemsChangedHandler}\n onSelectedItemsChange={this.#objectsTreeSelectedItemsChangedHandler}\n ></ch-tree-view-render>\n );\n };\n\n #renderFooter = () => {\n const buttonOkDisabled = this.designData?.success !== true || this.isLoading;\n return (\n <footer class=\"control-footer-with-border spacing-body-block-end spacing-body-inline\">\n <div class=\"buttons-spacer\">\n <button\n // button cancel\n id=\"button-cancel\"\n class=\"button-secondary button-cancel\"\n type=\"outlined\"\n onClick={this.#cancel}\n part=\"button button--cancel\"\n slot=\"footer-end\"\n >\n {this.#componentLocale.footer.btnCancel}\n </button>\n <button\n // button ok\n id=\"button-ok\"\n class=\"button-primary button-ok\"\n type=\"primary-text-only\"\n onClick={!buttonOkDisabled && this.#confirm}\n part=\"button button--ok\"\n disabled={buttonOkDisabled}\n slot=\"footer-end\"\n >\n {this.#componentLocale.footer.btnOk}\n </button>\n </div>\n </footer>\n );\n };\n\n #renderPanelTab = (): Element => {\n const renderControlsTree =\n (this.selectedDesignType === DESIGN_DATA_TYPE_PANELS ||\n this.selectedDesignType === DESIGN_DATA_TYPE_STENCILS) &&\n this.detailTreeModel.length > 0;\n\n return (\n <div\n class={{\n \"panel-tab\": true,\n \"panel-tab--controls-tree\": renderControlsTree\n }}\n part=\"data-panel-composition-container\"\n >\n {this.selectedDesignItem?.composition?.preview ? (\n <div\n part=\"data-panel-composition-preview\"\n class=\"panel-item scrollable\"\n >\n <img\n src={this.selectedDesignItem.composition.preview}\n alt=\"Preview\"\n />\n </div>\n ) : null}\n\n {renderControlsTree ? (\n <ch-tree-view-render\n part=\"data-panel-composition-tree\"\n class=\"tree-view tree-view-panel-item scrollable\"\n showLines=\"last\"\n model={this.detailTreeModel}\n dragDisabled={true}\n dropDisabled={true}\n ></ch-tree-view-render>\n ) : null}\n </div>\n );\n };\n\n #renderImageTab = () => {\n return (\n <div part=\"data-panel-composition-preview\" class=\"data-preview\" style={{height: \"100%\"}}>\n <img\n src={this.selectedDesignItem ? this.selectedDesignItem : undefined}\n alt=\"Preview\"\n class={this.selectedDesignType === DESIGN_DATA_TYPE_IMAGES ? \"checker-board\" : undefined}\n />\n </div>\n );\n };\n\n #tabSelectionChangedHandler = (\n event: CustomEvent<{\n lastSelectedIndex: number;\n newSelectedId: string;\n newSelectedIndex: number;\n }>\n ): void => {\n this.renderedTabs.clear();\n this.renderedTabs.add(event.detail.newSelectedId);\n this.reRenderCounter++;\n this.activeTabs.set(this.selectedDesignType, event.detail.newSelectedId);\n };\n\n #renderDesignTabsCh = (): HTMLChTabRenderElement => {\n return (\n <ch-tab-render\n // main section\n class={{\n \"tab\": true,\n \"scrollable\": true,\n \"fit-images\": this.fitImages\n }}\n direction=\"block\"\n model={this.tabsModel}\n selectedId={this.activeTabs.get(this.selectedDesignType)}\n overflow=\"auto\"\n contain=\"size\"\n onSelectedItemChange={this.#tabSelectionChangedHandler}\n >\n <div slot={TAB_DATA.tokens.slot} class=\"spacing-body\"\n style={{ display: this.renderedTabs.has(TAB_DATA.tokens.id) ? \"\" : \"none\" }}>\n <slot name={TAB_DATA.tokens.slot}></slot>\n </div>\n \n <div slot={TAB_DATA.styles.slot} class=\"spacing-body\"\n style={{ display: this.renderedTabs.has(TAB_DATA.styles.id) ? \"\" : \"none\" }}>\n <slot name={TAB_DATA.styles.slot}></slot>\n </div>\n \n <div class=\"composition-tab-slot scrollable\" slot={TAB_DATA.composition.slot}\n style={{ display: this.renderedTabs.has(TAB_DATA.composition.id) ? \"\" : \"none\" }} >\n {this.selectedDesignType === DESIGN_DATA_TYPE_IMAGES ||\n this.selectedDesignType === DESIGN_DATA_TYPE_FONTS\n ? this.#renderImageTab()\n : this.#renderPanelTab()}\n </div>\n \n <div slot={TAB_DATA.layout.slot} class=\"spacing-body\"\n style={{ display: this.renderedTabs.has(TAB_DATA.layout.id) ? \"\" : \"none\" }}>\n <slot name={TAB_DATA.layout.slot}></slot>\n </div>\n \n <div slot={TAB_DATA.code.slot} class=\"spacing-body\"\n style={{ display: this.renderedTabs.has(TAB_DATA.code.id) ? \"\" : \"none\" }}>\n <slot name={TAB_DATA.code.slot}></slot>\n </div>\n </ch-tab-render>\n );\n };\n\n render(): void {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"section\">\n {this.#renderHeader()}\n {this.#renderMain()}\n {this.#renderFooter()}\n </section>\n </Host>\n );\n }\n}\n\nexport type LoadMessageCallback = (message: MessageData) => void;\nexport type LoadCallback = (\n source: string | File,\n designSystem: string,\n importAsWebPanels: boolean,\n token: string | undefined,\n onMessage: LoadMessageCallback\n) => Promise<DesignData | undefined>;\nexport type LoadPanelDataCallback = (id: string) => Promise<DesignPanelData>;\nexport type LoadImageCallback = (id: string) => Promise<string>;\nexport type LoadFontCallback = (id: string) => Promise<string>;\nexport type LoadDesignSystemCallback = (\n id: string\n) => Promise<DesignSystemData>;\nexport type TextEditorFactoryCallback = (\n type: TextEditorType,\n parent: string,\n text: string\n) => Promise<void>;\nexport type SelectModuleCallback = () => Promise<EntityData | undefined>;\n\nexport type RequiresAccessTokenCallback = (source: string) => Promise<boolean>;\nexport type ConfirmCallback = (data: DesignImportData) => Promise<boolean>;\nexport type CancelCallback = () => Promise<void>;\n\nexport interface MessageData {\n type: \"error\" | \"warning\" | \"info\";\n text: string;\n}\n\nexport interface DesignData {\n panels: DesignItemData[];\n stencils: DesignItemData[];\n images: DesignItemData[];\n designSystem: DesignItemData[];\n fonts: DesignItemData[];\n success: boolean;\n}\n\nexport interface DesignItemData {\n id: string;\n name: string;\n}\n\nexport interface DesignPanelData {\n composition: DesignPanelCompositionData;\n code?: string;\n layout?: string;\n}\n\nexport interface DesignPanelCompositionData {\n preview?: string;\n controls: DesignPanelControlData[];\n}\n\nexport interface DesignPanelControlData {\n name: string;\n type: string;\n leaf?: boolean;\n controls: DesignPanelControlData[];\n}\n\nexport interface DesignSystemData {\n tokens: string;\n styles: string;\n}\n\ntype DesignItemDataDetail = DesignPanelData | DesignSystemData | string;\n\nexport interface DesignImportData {\n panels: string[];\n stencils: string[];\n fonts: string[];\n moduleId: string;\n images: string[];\n styleName: string;\n importAsWebPanels: boolean;\n}\n\nexport type DesignType =\n | typeof DESIGN_DATA_TYPE_PANELS\n | typeof DESIGN_DATA_TYPE_STENCILS\n | typeof DESIGN_DATA_TYPE_IMAGES\n | typeof DESIGN_DATA_TYPE_DESIGN_SYSTEM\n | typeof DESIGN_DATA_TYPE_FONTS;\n\nexport type DesignObjectType = {\n [Key in DesignType]: string;\n};\n\nexport type ItemLoadedInfo = {\n designType: DesignType;\n designDataDetail: DesignItemDataDetail;\n};\n\nexport type TextEditorType = \"code\" | \"html\" | \"styles\" | \"tokens\";\n\nexport type ReactiveSettings = {\n path: boolean;\n style: boolean;\n module: boolean;\n importAsWebPanels: boolean;\n};\n\ntype ReactiveSettingsValues = {\n path: string;\n style: string;\n moduleId: string;\n importAsWebPanels: boolean;\n};\n"],"mappings":"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"}
@@ -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","direction","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 heading-5 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 heading-5 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 heading-5 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(): void {\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 direction=\"block\"\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
- export declare function format(first: string, middle: string, last: string): string;