@genexus/genexus-ide-ui 1.0.18 → 1.0.19

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 (236) hide show
  1. package/dist/cjs/{assets-manager-4b67360e.js → assets-manager-a318866f.js} +31 -31
  2. package/dist/cjs/{assets-manager-4b67360e.js.map → assets-manager-a318866f.js.map} +1 -1
  3. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  4. package/dist/cjs/gx-ide-ai-message.cjs.entry.js +2 -2
  5. package/dist/cjs/gx-ide-ai-message.cjs.entry.js.map +1 -1
  6. package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js +2 -2
  7. package/dist/cjs/gx-ide-data-selector.cjs.entry.js +3 -2
  8. package/dist/cjs/gx-ide-data-selector.cjs.entry.js.map +1 -1
  9. package/dist/cjs/gx-ide-entity-selector.cjs.entry.js +3 -3
  10. package/dist/cjs/gx-ide-entity-selector.cjs.entry.js.map +1 -1
  11. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +7 -4
  12. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js.map +1 -1
  13. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +1 -1
  14. package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js +4 -27
  15. package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js.map +1 -1
  16. package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js +1 -1
  17. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +1 -1
  18. package/dist/cjs/gx-ide-navigation-report.cjs.entry.js +228 -0
  19. package/dist/cjs/gx-ide-navigation-report.cjs.entry.js.map +1 -0
  20. package/dist/cjs/gx-ide-new-environment.cjs.entry.js +3 -2
  21. package/dist/cjs/gx-ide-new-environment.cjs.entry.js.map +1 -1
  22. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +8 -7
  23. package/dist/cjs/gx-ide-new-kb.cjs.entry.js.map +1 -1
  24. package/dist/cjs/gx-ide-new-object.cjs.entry.js +4 -3
  25. package/dist/cjs/gx-ide-new-object.cjs.entry.js.map +1 -1
  26. package/dist/cjs/gx-ide-object-selector.cjs.entry.js +7 -6
  27. package/dist/cjs/gx-ide-object-selector.cjs.entry.js.map +1 -1
  28. package/dist/cjs/gx-ide-recent-news.cjs.entry.js +3 -3
  29. package/dist/cjs/gx-ide-recent-news.cjs.entry.js.map +1 -1
  30. package/dist/cjs/gx-ide-start-page.cjs.entry.js +4 -4
  31. package/dist/cjs/gx-ide-start-page.cjs.entry.js.map +1 -1
  32. package/dist/cjs/gx-ide-status-buttons.cjs.entry.js +35 -17
  33. package/dist/cjs/gx-ide-status-buttons.cjs.entry.js.map +1 -1
  34. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +1 -1
  35. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +1 -1
  36. package/dist/cjs/gx-ide-ww-images.cjs.entry.js +396 -279
  37. package/dist/cjs/gx-ide-ww-images.cjs.entry.js.map +1 -1
  38. package/dist/cjs/{helpers-b5b4a659.js → helpers-19194a5a.js} +1 -7
  39. package/dist/{genexus-ide-ui/p-c339f703.js.map → cjs/helpers-19194a5a.js.map} +1 -1
  40. package/dist/cjs/loader.cjs.js +1 -1
  41. package/dist/collection/collection-manifest.json +1 -0
  42. package/dist/collection/components/_helpers/entity-selector/entity-selector.css +2 -2
  43. package/dist/collection/components/_helpers/entity-selector/entity-selector.js +1 -1
  44. package/dist/collection/components/_helpers/entity-selector/entity-selector.js.map +1 -1
  45. package/dist/collection/components/_helpers/list-selector/list-selector-item/list-selector-item.css +19 -332
  46. package/dist/collection/components/_helpers/list-selector/list-selector-item/list-selector-item.js +2 -64
  47. package/dist/collection/components/_helpers/list-selector/list-selector-item/list-selector-item.js.map +1 -1
  48. package/dist/collection/components/_helpers/list-selector/list-selector.css +11 -9
  49. package/dist/collection/components/_helpers/list-selector/list-selector.js +2 -75
  50. package/dist/collection/components/_helpers/list-selector/list-selector.js.map +1 -1
  51. package/dist/collection/components/_helpers/status-buttons/gx-ide-status-buttons.css +20 -61
  52. package/dist/collection/components/_helpers/status-buttons/gx-ide-status-buttons.js +34 -17
  53. package/dist/collection/components/_helpers/status-buttons/gx-ide-status-buttons.js.map +1 -1
  54. package/dist/collection/components/ai-assistant/ai-message.css +1 -1
  55. package/dist/collection/components/data-selector/data-selector.js +2 -1
  56. package/dist/collection/components/data-selector/data-selector.js.map +1 -1
  57. package/dist/collection/components/kb-manager-export/kb-manager-export.js +6 -3
  58. package/dist/collection/components/kb-manager-export/kb-manager-export.js.map +1 -1
  59. package/dist/collection/components/navigation-report/gx-ide-assets/navigation-report/langs/navigation-report.lang.en.json +6 -0
  60. package/dist/collection/components/navigation-report/gx-ide-assets/navigation-report/langs/navigation-report.lang.ja.json +3 -0
  61. package/dist/collection/components/navigation-report/gx-ide-assets/navigation-report/langs/navigation-report.lang.zh.json +3 -0
  62. package/dist/collection/components/navigation-report/helpers.js +17 -0
  63. package/dist/collection/components/navigation-report/helpers.js.map +1 -0
  64. package/dist/collection/components/navigation-report/navigation-report.css +75 -0
  65. package/dist/collection/components/navigation-report/navigation-report.js +407 -0
  66. package/dist/collection/components/navigation-report/navigation-report.js.map +1 -0
  67. package/dist/collection/components/new-environment/new-environment.js +2 -1
  68. package/dist/collection/components/new-environment/new-environment.js.map +1 -1
  69. package/dist/collection/components/new-kb/new-kb.js +7 -6
  70. package/dist/collection/components/new-kb/new-kb.js.map +1 -1
  71. package/dist/collection/components/new-object/new-object.js +4 -3
  72. package/dist/collection/components/new-object/new-object.js.map +1 -1
  73. package/dist/collection/components/object-selector/object-selector.js +5 -4
  74. package/dist/collection/components/object-selector/object-selector.js.map +1 -1
  75. package/dist/collection/components/start-page/recent-news.css +1 -1
  76. package/dist/collection/components/start-page/start-page.css +1 -1
  77. package/dist/collection/components/start-page/start-page.js +1 -1
  78. package/dist/collection/components/start-page/start-page.js.map +1 -1
  79. package/dist/collection/components/ww-images/gx-ide-assets/ww-images/langs/ww-images.lang.en.json +7 -3
  80. package/dist/collection/components/ww-images/gx-ide-assets/ww-images/langs/ww-images.lang.ja.json +8 -4
  81. package/dist/collection/components/ww-images/helpers.js +11 -0
  82. package/dist/collection/components/ww-images/helpers.js.map +1 -0
  83. package/dist/collection/components/ww-images/ww-images.css +82 -720
  84. package/dist/collection/components/ww-images/ww-images.js +465 -413
  85. package/dist/collection/components/ww-images/ww-images.js.map +1 -1
  86. package/dist/components/ai-message.js +1 -1
  87. package/dist/components/ai-message.js.map +1 -1
  88. package/dist/components/assets-manager.js +30 -30
  89. package/dist/components/assets-manager.js.map +1 -1
  90. package/dist/components/entity-selector.js +2 -2
  91. package/dist/components/entity-selector.js.map +1 -1
  92. package/dist/components/gx-ide-data-selector.js +2 -1
  93. package/dist/components/gx-ide-data-selector.js.map +1 -1
  94. package/dist/components/gx-ide-kb-manager-export.js +6 -3
  95. package/dist/components/gx-ide-kb-manager-export.js.map +1 -1
  96. package/dist/components/gx-ide-navigation-report.d.ts +11 -0
  97. package/dist/components/gx-ide-navigation-report.js +279 -0
  98. package/dist/components/gx-ide-navigation-report.js.map +1 -0
  99. package/dist/components/gx-ide-new-environment.js +2 -1
  100. package/dist/components/gx-ide-new-environment.js.map +1 -1
  101. package/dist/components/gx-ide-new-kb.js +7 -6
  102. package/dist/components/gx-ide-new-kb.js.map +1 -1
  103. package/dist/components/gx-ide-new-object.js +4 -3
  104. package/dist/components/gx-ide-new-object.js.map +1 -1
  105. package/dist/components/gx-ide-object-selector.js +5 -4
  106. package/dist/components/gx-ide-object-selector.js.map +1 -1
  107. package/dist/components/gx-ide-start-page.js +2 -2
  108. package/dist/components/gx-ide-start-page.js.map +1 -1
  109. package/dist/components/gx-ide-status-buttons2.js +35 -17
  110. package/dist/components/gx-ide-status-buttons2.js.map +1 -1
  111. package/dist/components/gx-ide-ww-images.js +419 -306
  112. package/dist/components/gx-ide-ww-images.js.map +1 -1
  113. package/dist/components/helpers.js +1 -6
  114. package/dist/components/helpers.js.map +1 -1
  115. package/dist/components/list-selector-item.js +2 -19
  116. package/dist/components/list-selector-item.js.map +1 -1
  117. package/dist/components/list-selector.js +2 -13
  118. package/dist/components/list-selector.js.map +1 -1
  119. package/dist/components/recent-news.js +1 -1
  120. package/dist/components/recent-news.js.map +1 -1
  121. package/dist/esm/{assets-manager-251883e0.js → assets-manager-5ac25bb6.js} +31 -31
  122. package/dist/esm/{assets-manager-251883e0.js.map → assets-manager-5ac25bb6.js.map} +1 -1
  123. package/dist/esm/genexus-ide-ui.js +1 -1
  124. package/dist/esm/gx-ide-ai-message.entry.js +2 -2
  125. package/dist/esm/gx-ide-ai-message.entry.js.map +1 -1
  126. package/dist/esm/gx-ide-dashboard-home.entry.js +2 -2
  127. package/dist/esm/gx-ide-data-selector.entry.js +3 -2
  128. package/dist/esm/gx-ide-data-selector.entry.js.map +1 -1
  129. package/dist/esm/gx-ide-entity-selector.entry.js +3 -3
  130. package/dist/esm/gx-ide-entity-selector.entry.js.map +1 -1
  131. package/dist/esm/gx-ide-kb-manager-export.entry.js +7 -4
  132. package/dist/esm/gx-ide-kb-manager-export.entry.js.map +1 -1
  133. package/dist/esm/gx-ide-kb-manager-import.entry.js +1 -1
  134. package/dist/esm/gx-ide-list-selector_2.entry.js +4 -27
  135. package/dist/esm/gx-ide-list-selector_2.entry.js.map +1 -1
  136. package/dist/esm/gx-ide-manage-module-references-v2.entry.js +1 -1
  137. package/dist/esm/gx-ide-manage-module-references.entry.js +1 -1
  138. package/dist/esm/gx-ide-navigation-report.entry.js +224 -0
  139. package/dist/esm/gx-ide-navigation-report.entry.js.map +1 -0
  140. package/dist/esm/gx-ide-new-environment.entry.js +3 -2
  141. package/dist/esm/gx-ide-new-environment.entry.js.map +1 -1
  142. package/dist/esm/gx-ide-new-kb.entry.js +8 -7
  143. package/dist/esm/gx-ide-new-kb.entry.js.map +1 -1
  144. package/dist/esm/gx-ide-new-object.entry.js +4 -3
  145. package/dist/esm/gx-ide-new-object.entry.js.map +1 -1
  146. package/dist/esm/gx-ide-object-selector.entry.js +7 -6
  147. package/dist/esm/gx-ide-object-selector.entry.js.map +1 -1
  148. package/dist/esm/gx-ide-recent-news.entry.js +3 -3
  149. package/dist/esm/gx-ide-recent-news.entry.js.map +1 -1
  150. package/dist/esm/gx-ide-start-page.entry.js +4 -4
  151. package/dist/esm/gx-ide-start-page.entry.js.map +1 -1
  152. package/dist/esm/gx-ide-status-buttons.entry.js +35 -17
  153. package/dist/esm/gx-ide-status-buttons.entry.js.map +1 -1
  154. package/dist/esm/gx-ide-team-dev-commit.entry.js +1 -1
  155. package/dist/esm/gx-ide-team-dev-update.entry.js +1 -1
  156. package/dist/esm/gx-ide-ww-images.entry.js +396 -279
  157. package/dist/esm/gx-ide-ww-images.entry.js.map +1 -1
  158. package/dist/esm/{helpers-64e1dd0b.js → helpers-9ee6ddce.js} +2 -7
  159. package/dist/esm/helpers-9ee6ddce.js.map +1 -0
  160. package/dist/esm/loader.js +1 -1
  161. package/dist/genexus-ide-ui/genexus-ide-ui.css +1 -1
  162. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  163. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  164. package/dist/genexus-ide-ui/gx-ide-assets/navigation-report/langs/navigation-report.lang.en.json +6 -0
  165. package/dist/genexus-ide-ui/gx-ide-assets/navigation-report/langs/navigation-report.lang.ja.json +3 -0
  166. package/dist/genexus-ide-ui/gx-ide-assets/navigation-report/langs/navigation-report.lang.zh.json +3 -0
  167. package/dist/genexus-ide-ui/gx-ide-assets/ww-images/langs/ww-images.lang.en.json +7 -3
  168. package/dist/genexus-ide-ui/gx-ide-assets/ww-images/langs/ww-images.lang.ja.json +8 -4
  169. package/dist/genexus-ide-ui/{p-e08213ef.entry.js → p-0576a392.entry.js} +6 -6
  170. package/dist/genexus-ide-ui/{p-e08213ef.entry.js.map → p-0576a392.entry.js.map} +1 -1
  171. package/dist/genexus-ide-ui/{p-c339f703.js → p-066028bc.js} +8 -14
  172. package/dist/genexus-ide-ui/p-066028bc.js.map +1 -0
  173. package/dist/genexus-ide-ui/{p-58e7d1ab.js → p-0b0ce806.js} +31 -31
  174. package/dist/genexus-ide-ui/p-0b0ce806.js.map +1 -0
  175. package/dist/genexus-ide-ui/{p-a4a56375.entry.js → p-1ced155b.entry.js} +4 -4
  176. package/dist/genexus-ide-ui/p-1ced155b.entry.js.map +1 -0
  177. package/dist/genexus-ide-ui/{p-0a1167a6.entry.js → p-1f37f5b5.entry.js} +2 -2
  178. package/dist/genexus-ide-ui/{p-d15717c5.entry.js → p-20389960.entry.js} +4 -4
  179. package/dist/genexus-ide-ui/{p-6b8f6569.entry.js → p-2465307a.entry.js} +54 -54
  180. package/dist/genexus-ide-ui/p-2465307a.entry.js.map +1 -0
  181. package/dist/genexus-ide-ui/{p-3b3f5ecb.entry.js → p-278afab1.entry.js} +3 -3
  182. package/dist/genexus-ide-ui/{p-940c83a6.entry.js → p-2dd09b01.entry.js} +22 -44
  183. package/dist/genexus-ide-ui/p-2dd09b01.entry.js.map +1 -0
  184. package/dist/genexus-ide-ui/{p-cfd29ed2.entry.js → p-352d4aad.entry.js} +36 -36
  185. package/dist/genexus-ide-ui/p-352d4aad.entry.js.map +1 -0
  186. package/dist/genexus-ide-ui/{p-5961ae84.entry.js → p-3f5ea8bf.entry.js} +34 -34
  187. package/dist/genexus-ide-ui/p-3f5ea8bf.entry.js.map +1 -0
  188. package/dist/genexus-ide-ui/{p-f06147d7.entry.js → p-44d779c9.entry.js} +7 -7
  189. package/dist/genexus-ide-ui/p-44d779c9.entry.js.map +1 -0
  190. package/dist/genexus-ide-ui/{p-5bff0103.entry.js → p-4ce0a85e.entry.js} +3 -3
  191. package/dist/genexus-ide-ui/p-4ce0a85e.entry.js.map +1 -0
  192. package/dist/genexus-ide-ui/{p-cff74f8a.entry.js → p-60cd6b09.entry.js} +2 -2
  193. package/dist/genexus-ide-ui/p-62efd8f2.entry.js +712 -0
  194. package/dist/genexus-ide-ui/p-62efd8f2.entry.js.map +1 -0
  195. package/dist/genexus-ide-ui/{p-dbfddffd.entry.js → p-69b88e9f.entry.js} +35 -23
  196. package/dist/genexus-ide-ui/p-69b88e9f.entry.js.map +1 -0
  197. package/dist/genexus-ide-ui/{p-fae9bd6c.entry.js → p-9efea53c.entry.js} +4 -4
  198. package/dist/genexus-ide-ui/p-9efea53c.entry.js.map +1 -0
  199. package/dist/genexus-ide-ui/{p-4ce47bcd.entry.js → p-acf0cbac.entry.js} +2 -2
  200. package/dist/genexus-ide-ui/{p-ca8b0024.entry.js → p-b785673d.entry.js} +2 -2
  201. package/dist/genexus-ide-ui/{p-23c9b4e6.entry.js → p-c36effd2.entry.js} +13 -13
  202. package/dist/genexus-ide-ui/p-c36effd2.entry.js.map +1 -0
  203. package/dist/genexus-ide-ui/{p-39792ac8.entry.js → p-c4d1d0ce.entry.js} +2 -2
  204. package/dist/genexus-ide-ui/p-de59d495.entry.js +273 -0
  205. package/dist/genexus-ide-ui/p-de59d495.entry.js.map +1 -0
  206. package/dist/types/components/_helpers/list-selector/list-selector-item/list-selector-item.d.ts +0 -11
  207. package/dist/types/components/_helpers/list-selector/list-selector.d.ts +0 -13
  208. package/dist/types/components/_helpers/status-buttons/gx-ide-status-buttons.d.ts +1 -4
  209. package/dist/types/components/navigation-report/helpers.d.ts +5 -0
  210. package/dist/types/components/navigation-report/navigation-report.d.ts +88 -0
  211. package/dist/types/components/ww-images/helpers.d.ts +3 -0
  212. package/dist/types/components/ww-images/ww-images.d.ts +98 -118
  213. package/dist/types/components.d.ts +142 -130
  214. package/package.json +5 -5
  215. package/dist/cjs/helpers-b5b4a659.js.map +0 -1
  216. package/dist/esm/helpers-64e1dd0b.js.map +0 -1
  217. package/dist/genexus-ide-ui/p-23c9b4e6.entry.js.map +0 -1
  218. package/dist/genexus-ide-ui/p-58e7d1ab.js.map +0 -1
  219. package/dist/genexus-ide-ui/p-5961ae84.entry.js.map +0 -1
  220. package/dist/genexus-ide-ui/p-5bff0103.entry.js.map +0 -1
  221. package/dist/genexus-ide-ui/p-6b8f6569.entry.js.map +0 -1
  222. package/dist/genexus-ide-ui/p-940c83a6.entry.js.map +0 -1
  223. package/dist/genexus-ide-ui/p-a4a56375.entry.js.map +0 -1
  224. package/dist/genexus-ide-ui/p-cfd29ed2.entry.js.map +0 -1
  225. package/dist/genexus-ide-ui/p-dbfddffd.entry.js.map +0 -1
  226. package/dist/genexus-ide-ui/p-f06147d7.entry.js.map +0 -1
  227. package/dist/genexus-ide-ui/p-f96614f3.entry.js +0 -611
  228. package/dist/genexus-ide-ui/p-f96614f3.entry.js.map +0 -1
  229. package/dist/genexus-ide-ui/p-fae9bd6c.entry.js.map +0 -1
  230. /package/dist/genexus-ide-ui/{p-0a1167a6.entry.js.map → p-1f37f5b5.entry.js.map} +0 -0
  231. /package/dist/genexus-ide-ui/{p-d15717c5.entry.js.map → p-20389960.entry.js.map} +0 -0
  232. /package/dist/genexus-ide-ui/{p-3b3f5ecb.entry.js.map → p-278afab1.entry.js.map} +0 -0
  233. /package/dist/genexus-ide-ui/{p-cff74f8a.entry.js.map → p-60cd6b09.entry.js.map} +0 -0
  234. /package/dist/genexus-ide-ui/{p-4ce47bcd.entry.js.map → p-acf0cbac.entry.js.map} +0 -0
  235. /package/dist/genexus-ide-ui/{p-ca8b0024.entry.js.map → p-b785673d.entry.js.map} +0 -0
  236. /package/dist/genexus-ide-ui/{p-39792ac8.entry.js.map → p-c4d1d0ce.entry.js.map} +0 -0
@@ -0,0 +1 @@
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,22 +1,22 @@
1
- import { r as t, c as e, h as i, H as o, g as s } from "./p-aaed592c.js";
1
+ import { r as t, c as e, h as i, H as s, g as o } from "./p-aaed592c.js";
2
2
 
3
- import { g as r } from "./p-58e7d1ab.js";
3
+ import { g as r } from "./p-0b0ce806.js";
4
4
 
5
5
  import { L as n } from "./p-74d59062.js";
6
6
 
7
- const a = ".wrapper{display:grid;grid-template-columns:1fr max-content max-content;gap:var(--mer-spacing--xs);border-radius:var(--control__border-radius);border:var(--control__border-width) var(--control__border-style) var(--control__border-color);padding:var(--control__padding-block) var(--control__padding-inline)}.wrapper:hover{--control__border-color:var(--control__border-color--hover)}.form-input{--control__padding-block:0;--control__padding-inline:0;--control__border-width:0;--focus__outline-width:0}:host(:focus-within) .wrapper{--control__border-color:var(--focus__outline-color)}:host(.entity-selector--button-has-focus) .wrapper{outline:none}";
7
+ const a = ".wrapper{display:grid;grid-template-columns:1fr max-content max-content;gap:var(--mer-spacing--xs);border-radius:var(--control__border-radius);border:var(--control__border-width) var(--control__border-style) var(--control__border-color);padding:var(--control__padding-block) var(--control__padding-inline)}.wrapper:hover{--control__border-color:var(--control__border-color--hover)}.input{--control__padding-block:0;--control__padding-inline:0;--control__border-width:0;--focus__outline-width:0}:host(:focus-within) .wrapper{--control__border-color:var(--focus__outline-color)}:host(.entity-selector--button-has-focus) .wrapper{outline:none}";
8
8
 
9
- var l = undefined && undefined.__classPrivateFieldGet || function(t, e, i, o) {
10
- if (i === "a" && !o) throw new TypeError("Private accessor was defined without a getter");
11
- if (typeof e === "function" ? t !== e || !o : !e.has(t)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
12
- return i === "m" ? o : i === "a" ? o.call(t) : o ? o.value : e.get(t);
9
+ var c = undefined && undefined.__classPrivateFieldGet || function(t, e, i, s) {
10
+ if (i === "a" && !s) throw new TypeError("Private accessor was defined without a getter");
11
+ if (typeof e === "function" ? t !== e || !s : !e.has(t)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
12
+ return i === "m" ? s : i === "a" ? s.call(t) : s ? s.value : e.get(t);
13
13
  };
14
14
 
15
- var c = undefined && undefined.__classPrivateFieldSet || function(t, e, i, o, s) {
16
- if (o === "m") throw new TypeError("Private method is not writable");
17
- if (o === "a" && !s) throw new TypeError("Private accessor was defined without a setter");
18
- if (typeof e === "function" ? t !== e || !s : !e.has(t)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
19
- return o === "a" ? s.call(t, i) : s ? s.value = i : e.set(t, i), i;
15
+ var l = undefined && undefined.__classPrivateFieldSet || function(t, e, i, s, o) {
16
+ if (s === "m") throw new TypeError("Private method is not writable");
17
+ if (s === "a" && !o) throw new TypeError("Private accessor was defined without a setter");
18
+ if (typeof e === "function" ? t !== e || !o : !e.has(t)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
19
+ return s === "a" ? o.call(t, i) : o ? o.value = i : e.set(t, i), i;
20
20
  };
21
21
 
22
22
  var h, d, u, f, p, m;
@@ -36,8 +36,8 @@ const v = r({
36
36
  });
37
37
 
38
38
  const _ = class {
39
- constructor(o) {
40
- t(this, o);
39
+ constructor(s) {
40
+ t(this, s);
41
41
  this.valueChanged = e(this, "valueChanged", 7);
42
42
  h.set(this, void 0);
43
43
  d.set(this, (() => {
@@ -63,33 +63,33 @@ const _ = class {
63
63
  part: "wrapper",
64
64
  class: "wrapper"
65
65
  }, i("ch-edit", {
66
- accessibleName: this.labelPosition === "none" && l(this, h, "f").entitySelectorInputAccessibleName,
67
- class: "form-input",
68
- name: this.name || l(this, h, "f").entitySelectorNameAttribute,
66
+ accessibleName: this.labelPosition === "none" && c(this, h, "f").entitySelectorInputAccessibleName,
67
+ class: "input",
68
+ name: this.name || c(this, h, "f").entitySelectorNameAttribute,
69
69
  startImgSrc: this.iconSrc,
70
70
  value: ((t = this.value) === null || t === void 0 ? void 0 : t.name) || ((e = this.defaultValue) === null || e === void 0 ? void 0 : e.name),
71
71
  id: "entity-input"
72
72
  }), i("button", {
73
73
  part: "button-clear",
74
74
  class: "icon-button",
75
- "aria-label": l(this, h, "f").clearButtonLabel,
76
- title: l(this, h, "f").clearButtonLabel,
75
+ "aria-label": c(this, h, "f").clearButtonLabel,
76
+ title: c(this, h, "f").clearButtonLabel,
77
77
  type: "button",
78
- onClick: l(this, d, "f"),
79
- onFocus: this.buttonHasFocus ? l(this, f, "f") : undefined,
80
- onBlur: !this.buttonHasFocus ? l(this, f, "f") : undefined
78
+ onClick: c(this, d, "f"),
79
+ onFocus: this.buttonHasFocus ? c(this, f, "f") : undefined,
80
+ onBlur: !this.buttonHasFocus ? c(this, f, "f") : undefined
81
81
  }, i("ch-image", {
82
82
  class: "icon-md",
83
83
  src: v
84
84
  })), i("button", {
85
85
  class: "icon-button",
86
- "aria-label": l(this, h, "f").selectButtonLabel,
87
- title: l(this, h, "f").selectButtonLabel,
86
+ "aria-label": c(this, h, "f").selectButtonLabel,
87
+ title: c(this, h, "f").selectButtonLabel,
88
88
  type: "button",
89
89
  disabled: !this.selectEntityCallback,
90
- onClick: l(this, u, "f"),
91
- onBlur: !this.buttonHasFocus ? l(this, f, "f") : undefined,
92
- onFocus: this.buttonHasFocus ? l(this, f, "f") : undefined
90
+ onClick: c(this, u, "f"),
91
+ onBlur: !this.buttonHasFocus ? c(this, f, "f") : undefined,
92
+ onFocus: this.buttonHasFocus ? c(this, f, "f") : undefined
93
93
  }, i("ch-image", {
94
94
  class: "icon-md",
95
95
  src: w
@@ -111,17 +111,17 @@ const _ = class {
111
111
  }
112
112
  valueChangedHandler() {
113
113
  this.valueChanged.emit(this.value);
114
- l(this, m, "f").call(this);
114
+ c(this, m, "f").call(this);
115
115
  }
116
116
  // 6.Component Lifecycle Events
117
117
  async componentWillLoad() {
118
- c(this, h, await n.getComponentStrings(this.el), "f");
118
+ l(this, h, await n.getComponentStrings(this.el), "f");
119
119
  }
120
120
  connectedCallback() {
121
- l(this, m, "f").call(this);
121
+ c(this, m, "f").call(this);
122
122
  }
123
123
  render() {
124
- return i(o, {
124
+ return i(s, {
125
125
  class: {
126
126
  "entity-selector--button-has-focus": this.buttonHasFocus
127
127
  }
@@ -136,13 +136,13 @@ const _ = class {
136
136
  }, i("label", {
137
137
  class: "label",
138
138
  htmlFor: "entity-input"
139
- }, this.labelCaption || l(this, h, "f").entitySelectorInputAccessibleName), l(this, p, "f").call(this)) : l(this, p, "f").call(this));
139
+ }, this.labelCaption || c(this, h, "f").entitySelectorInputAccessibleName), c(this, p, "f").call(this)) : c(this, p, "f").call(this));
140
140
  }
141
141
  static get assetsDirs() {
142
142
  return [ "gx-ide-assets/entity-selector" ];
143
143
  }
144
144
  get el() {
145
- return s(this);
145
+ return o(this);
146
146
  }
147
147
  static get watchers() {
148
148
  return {
@@ -157,4 +157,4 @@ m = new WeakMap;
157
157
  _.style = a;
158
158
 
159
159
  export { _ as gx_ide_entity_selector };
160
- //# sourceMappingURL=p-5961ae84.entry.js.map
160
+ //# sourceMappingURL=p-3f5ea8bf.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["entitySelectorCss","CSS_BUNDLES","SELECT_DEFAULT_ICON","getIconPath","category","name","colorType","CLEAR_ICON","GxIdeEntitySelector","_GxIdeEntitySelector_componentLocale","set","this","_GxIdeEntitySelector_btnClearClickHandler","value","defaultValue","iconSrc","_a","_GxIdeEntitySelector_btnSelectClickHandler","selectEntityCallback","then","result","_GxIdeEntitySelector_buttonFocusHandler","e","type","buttonHasFocus","_GxIdeEntitySelector_renderControl","h","part","class","accessibleName","labelPosition","__classPrivateFieldGet","entitySelectorInputAccessibleName","entitySelectorNameAttribute","startImgSrc","_b","id","clearButtonLabel","title","onClick","onFocus","undefined","onBlur","src","selectButtonLabel","disabled","_GxIdeEntitySelector_updateIconSrc","valueChangedHandler","valueChanged","emit","call","componentWillLoad","__classPrivateFieldSet","Locale","getComponentStrings","el","connectedCallback","render","Host","model","field","htmlFor","labelCaption"],"sources":["src/components/_helpers/entity-selector/entity-selector.scss?tag=gx-ide-entity-selector&encapsulation=shadow","src/components/_helpers/entity-selector/entity-selector.tsx"],"sourcesContent":["/*wrapper*/\n.wrapper {\n display: grid;\n grid-template-columns: 1fr max-content max-content;\n gap: var(--mer-spacing--xs);\n border-radius: var(--control__border-radius);\n border: var(--control__border-width) var(--control__border-style)\n var(--control__border-color);\n padding: var(--control__padding-block) var(--control__padding-inline);\n\n &:hover {\n --control__border-color: var(--control__border-color--hover);\n }\n &:focus {\n }\n}\n/*input*/\n.input {\n --control__padding-block: 0;\n --control__padding-inline: 0;\n // Remove control border. We want to simulate a input that includes two buttons at the end.\n --control__border-width: 0;\n --focus__outline-width: 0;\n}\n:host(:focus-within) {\n .wrapper {\n --control__border-color: var(--focus__outline-color);\n }\n}\n:host(.entity-selector--button-has-focus) {\n .wrapper {\n outline: none;\n }\n}\n/*custom button icon*/\n","import {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n Event,\n EventEmitter,\n Watch\n} from \"@stencil/core\";\n\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\n\nimport { Locale } from \"../../../common/locale\";\nimport { LabelPosition } from \"../../../common/types\";\nimport { EntityData } from \"../../../common/types\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/edit\",\n \"components/button\",\n \"components/icon\",\n \"utils/form\"\n];\nconst SELECT_DEFAULT_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"show-more-horizontal\",\n colorType: \"primary\"\n});\nconst CLEAR_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"reset\",\n colorType: \"primary\"\n});\n\n@Component({\n tag: \"gx-ide-entity-selector\",\n styleUrl: \"entity-selector.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/entity-selector\"]\n})\nexport class GxIdeEntitySelector {\n #componentLocale: any;\n\n @Element() el: HTMLGxIdeEntitySelectorElement;\n\n /**\n * Adds/removes a CSS class on the host. It removes focus-within styles when\n * focus is on a button.\n */\n @State() buttonHasFocus = false;\n\n @State() iconSrc: string = null;\n\n /**\n * Default value for the component. Used when the 'X' button is pressed.\n */\n @Prop() readonly defaultValue?: EntityData | null | undefined;\n\n /**\n * The label caption. Only visible if \"labelPosition\" is not \"none\".\n * I no \"labelCaption\" is provided, a generic caption \"Select Entity\" will be provided\n */\n @Prop() readonly labelCaption?: string;\n\n /**\n * The label position\n */\n @Prop({ reflect: true }) readonly labelPosition?: LabelPosition =\n \"block-start\";\n\n /**\n * This property specifies the `name` of the control when used in a form.\n */\n @Prop({ reflect: true }) readonly name?: string;\n\n /**\n * Callback invoked when the action button is pressed. Returns the new value.\n */\n @Prop() readonly selectEntityCallback!: () => Promise<EntityData>;\n\n /**\n * Value currently assigned.\n */\n @Prop({ mutable: true }) value: EntityData | null | undefined;\n @Watch(\"value\")\n valueChangedHandler() {\n this.valueChanged.emit(this.value);\n this.#updateIconSrc();\n }\n\n /**\n * Emits the input value every time it changes\n */\n @Event() valueChanged: EventEmitter<EntityData>;\n\n // 6.Component Lifecycle Events\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n connectedCallback() {\n this.#updateIconSrc();\n }\n\n #btnClearClickHandler = () => {\n this.value = this.defaultValue;\n this.iconSrc = this.defaultValue?.iconSrc;\n };\n\n #btnSelectClickHandler = () => {\n this.selectEntityCallback().then(result => {\n this.value = result;\n });\n };\n\n #buttonFocusHandler = (e: FocusEvent) => {\n if (e.type === \"focus\") {\n this.buttonHasFocus = true;\n } else if (e.type === \"blur\") {\n this.buttonHasFocus = false;\n }\n };\n\n #renderControl = (): HTMLDivElement => {\n return (\n <div part=\"wrapper\" class=\"wrapper\">\n <ch-edit\n accessibleName={\n this.labelPosition === \"none\" &&\n this.#componentLocale.entitySelectorInputAccessibleName\n }\n class=\"input\"\n name={this.name || this.#componentLocale.entitySelectorNameAttribute}\n startImgSrc={this.iconSrc}\n value={this.value?.name || this.defaultValue?.name}\n id=\"entity-input\"\n ></ch-edit>\n\n <button\n part=\"button-clear\"\n class=\"icon-button\"\n aria-label={this.#componentLocale.clearButtonLabel}\n title={this.#componentLocale.clearButtonLabel}\n type=\"button\"\n onClick={this.#btnClearClickHandler}\n onFocus={this.buttonHasFocus ? this.#buttonFocusHandler : undefined}\n onBlur={!this.buttonHasFocus ? this.#buttonFocusHandler : undefined}\n >\n <ch-image class=\"icon-md\" src={CLEAR_ICON}></ch-image>\n </button>\n\n <button\n class=\"icon-button\"\n aria-label={this.#componentLocale.selectButtonLabel}\n title={this.#componentLocale.selectButtonLabel}\n type=\"button\"\n disabled={!this.selectEntityCallback}\n onClick={this.#btnSelectClickHandler}\n onBlur={!this.buttonHasFocus ? this.#buttonFocusHandler : undefined}\n onFocus={this.buttonHasFocus ? this.#buttonFocusHandler : undefined}\n >\n <ch-image class=\"icon-md\" src={SELECT_DEFAULT_ICON}></ch-image>\n </button>\n </div>\n );\n };\n\n #updateIconSrc = () => {\n if (this.value && this.value.iconSrc) {\n this.iconSrc = this.value.iconSrc;\n }\n };\n\n render() {\n return (\n <Host\n class={{\n \"entity-selector--button-has-focus\": this.buttonHasFocus\n }}\n >\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n {this.labelPosition !== \"none\" ? (\n <div\n class={{\n \"field\": true,\n \"field-block\": this.labelPosition === \"block-start\",\n \"field-inline\": this.labelPosition === \"inline-start\"\n }}\n >\n <label class=\"label\" htmlFor=\"entity-input\">\n {this.labelCaption ||\n this.#componentLocale.entitySelectorInputAccessibleName}\n </label>\n {this.#renderControl()}\n </div>\n ) : (\n this.#renderControl()\n )}\n </Host>\n );\n }\n}\n\nexport type EntitySelectorLabels = {\n buttonClearLabel: string;\n buttonSelectLabel: string;\n};\n"],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import { r as t, a as e, h as i, H as s, g as a } from "./p-aaed592c.js";
2
2
 
3
- import { g as l } from "./p-58e7d1ab.js";
3
+ import { g as l } from "./p-0b0ce806.js";
4
4
 
5
5
  import { L as o } from "./p-74d59062.js";
6
6
 
7
7
  import { c as r } from "./p-78b90603.js";
8
8
 
9
- import { f as n } from "./p-c339f703.js";
9
+ import { f as n } from "./p-066028bc.js";
10
10
 
11
11
  import { F as c } from "./p-13feb5cf.js";
12
12
 
@@ -41,7 +41,7 @@ var f = undefined && undefined.__classPrivateFieldSet || function(t, e, i, s, a)
41
41
 
42
42
  var u, p, b, m, g, w, v, y, k, M, x, W, j, _, T, C, z, D, $, E, F, I, P, S, N, L, K, V, A, B;
43
43
 
44
- const H = [ "resets/box-sizing", "utils/form--full", "components/accordion", "components/tabular-grid", "utils/typography", "utils/layout" ];
44
+ const H = [ "resets/box-sizing", "utils/form--full", "components/accordion", "components/tabular-grid", "utils/typography", "utils/layout", "utils/spacing" ];
45
45
 
46
46
  const R = l({
47
47
  category: "window-tools",
@@ -176,7 +176,7 @@ const O = class {
176
176
  }, h(this, u, "f").filter.pattern), i("ch-edit", {
177
177
  accessibleName: h(this, u, "f").filter.pattern,
178
178
  debounce: r.inputDebounce,
179
- class: "form-input",
179
+ class: "input",
180
180
  part: "filter-pattern",
181
181
  id: "pattern",
182
182
  name: "pattern",
@@ -257,7 +257,7 @@ const O = class {
257
257
  class: "label",
258
258
  htmlFor: "user-name"
259
259
  }, h(this, u, "f").filter.user), i("ch-edit", {
260
- class: "form-input",
260
+ class: "input",
261
261
  part: "filter-user",
262
262
  value: this.patternValue,
263
263
  ref: t => f(this, k, t, "f"),
@@ -276,7 +276,7 @@ const O = class {
276
276
  htmlFor: "modified-date"
277
277
  }, h(this, u, "f").filter.dateTime), i("input", {
278
278
  type: "datetime-local",
279
- class: "form-input input-date-time",
279
+ class: "input input-date-time",
280
280
  id: "modified-date",
281
281
  name: "modifiedDate",
282
282
  part: "filter-pattern",
@@ -522,4 +522,4 @@ L = new WeakMap, K = new WeakMap, V = new WeakMap, A = new WeakMap, B = new Weak
522
522
  O.style = d;
523
523
 
524
524
  export { O as gx_ide_object_selector };
525
- //# sourceMappingURL=p-f06147d7.entry.js.map
525
+ //# sourceMappingURL=p-44d779c9.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["mapObjectTypeToComboBoxItemModel","objectTypeModel","map","objectType","value","id","caption","name","mapCategoryToComboBoxItemModel","categoryModel","category","label","objectSelectorCss","CSS_BUNDLES","FILTER_ICON","getIconPath","colorType","USER_ICON","MODIFIED_ACCORDION_MODEL","expanded","TODAY","GxIdeObjectSelector","_GxIdeObjectSelector_componentLocale","set","this","_GxIdeObjectSelector_shortcutsSrc","getAssetPath","_GxIdeObjectSelector_afterModel","_GxIdeObjectSelector_patternInput","_GxIdeObjectSelector_typeComboBox","_GxIdeObjectSelector_categoryComboBox","_GxIdeObjectSelector_moduleEntitySelector","_GxIdeObjectSelector_afterTypeComboBox","_GxIdeObjectSelector_userInput","_GxIdeObjectSelector_modifiedDateInput","_GxIdeObjectSelector_objectsGrid","_GxIdeObjectSelector_shortcutsEl","_GxIdeObjectSelector_cancelCallbackHandler","cancelCallback","_GxIdeObjectSelector_chGridKeyDownHandler","e","key","__classPrivateFieldGet","_GxIdeObjectSelector_openSelectionCallbackHandler","call","_GxIdeObjectSelector_deselectAll","selectAllRows","_GxIdeObjectSelector_evaluateObjectsCount","type","locale","selectedObjectsIdsArray","length","objCount","selected","none","one","many","objects","matching","_GxIdeObjectSelector_getToday","now","Date","date","toISOString","split","time","slice","_GxIdeObjectSelector_handleAfterValueChange","event","modifiedAfterValue","detail","FILTER_AFTER","DATE_TIME","_GxIdeObjectSelector_refreshUIWithNewConfiguration","_GxIdeObjectSelector_handleObjectsSelectionChange","rowsId","_GxIdeObjectSelector_hostKeyPressHandler","stopPropagation","_GxIdeObjectSelector_newObjectCallbackHandler","newObjectCallback","openSelectionCallback","modifiedAfter","user","_b","_a","trim","filters","pattern","_c","module","_e","_d","modifiedBy","modifiedDate","_f","loading","loadCallback","then","_GxIdeObjectSelector_sortObjectsByName","_GxIdeObjectSelector_renderFilter","h","class","htmlFor","filter","accessibleName","debounce","config","inputDebounce","part","patternValue","mode","ref","el","__classPrivateFieldSet","onInput","disabled","types","defaultType","model","categories","defaultCategory","defaultModule","labelCaption","labelPosition","onValueChanged","defaultValue","selectEntityCallback","selectModuleCallback","slot","after","startImgSrc","dateTime","max","_GxIdeObjectSelector_renderFooter","onClick","undefined","footer","btnNew","btnCancel","btnConfirm","multiSelection","_GxIdeObjectSelector_selectAll","btnSelectAll","_GxIdeObjectSelector_renderObjects","rowSelectionMode","onKeyDown","onSelectionChanged","onDblClick","settingable","size","tabularGrid","colSize","maxContent","tableHead","description","commonDouble","importDate","obj","rowid","src","icon","formatDate","loader","loaderTitle","title","show","stateIconSrc","stateTitle","emptyState","_GxIdeObjectSelector_setAfterDefaultValue","NONE","_GxIdeObjectSelector_setAfterOptions","afterNone","IMPORT","LAST_BUILD","sort","a","b","nameA","toLowerCase","nameB","connectedCallback","componentWillLoad","Locale","getComponentStrings","componentDidLoad","focus","componentDidRender","suspendShortcuts","suspend","validate","isValid","render","Host","onKeyPress"],"sources":["src/components/object-selector/helpers.ts","src/components/object-selector/object-selector.scss?tag=gx-ide-object-selector&encapsulation=shadow","src/components/object-selector/object-selector.tsx"],"sourcesContent":["import { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { ObjectType, GxOption } from \"../../common/types\";\n// - - - - - - - - - - - -\n// Data Mappings\n// - - - - - - - - - - - -\n\n// ch-combo-box-render\n\nexport const mapObjectTypeToComboBoxItemModel = (\n objectTypeModel: ObjectType[]\n): ComboBoxModel =>\n objectTypeModel.map(objectType => ({\n value: objectType.id,\n caption: objectType.name\n }));\nexport const mapCategoryToComboBoxItemModel = (\n categoryModel: GxOption[]\n): ComboBoxModel =>\n categoryModel.map(category => ({\n value: category.id,\n caption: category.label\n }));\n","@import \"../../../node_modules/@genexus/mercury/dist/mercury.scss\"; // for the tabular-grid-cell-layout mixin\n\n:host {\n block-size: 100%;\n display: grid;\n grid-template-rows: auto 1fr auto;\n overflow: auto;\n}\n\n.section {\n display: contents;\n}\n\n/* Filters */\n.filter-layout {\n grid-template:\n \"pattern type\"\n \"category module\"\n \"modified modified\";\n grid-template-columns: 1fr 1fr;\n}\n.pattern {\n grid-area: pattern;\n}\n.type {\n grid-area: type;\n}\n.category {\n grid-area: category;\n}\n.module {\n grid-area: module;\n}\n.modified-accordion {\n grid-area: modified;\n display: flex;\n flex-direction: column;\n}\n.field-group-modified {\n grid-template-columns: 1fr 1fr 1fr;\n}\n.input-date-time {\n // TODO: Mercury controls block-size should be defined by a variable,\n // instead of the sum of the font-size + line-height + padding-block.\n // once this is updated, the block-size defined bellow should not be\n // required anymore.\n\n block-size: calc(\n var(--control__font-size--regular) * var(--control__line-height) +\n var(--control__padding-block) * 2 + var(--control__border-width) * 2\n );\n}\n\ngx-ide-container::part(content) {\n // only apply display grid when the loader is being displayed, to stretch the container.\n display: grid;\n}\n\n/*tabular grid*/\nch-tabular-grid {\n overflow: auto;\n}\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid-object-selector\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-apply-ellipsis: true,\n $tabular-grid-affected-columns-nth-list: (\n 5\n )\n);\n\n// Objects Table\n.objects-count {\n display: grid;\n grid-template-columns: 1fr 1fr;\n border-block-start: var(--mer-border__width--sm) solid\n var(--mer-color__elevation--04);\n}\n.objects-selected,\n.objects-matching {\n padding-block-end: var(--mer-spacing--xs);\n}\n\nch-tabular-grid-rowset-empty {\n position: relative; // makes this the bounder element for the loader\n}\n\nch-tabular-grid.empty-result::part(main) {\n // WA to avoid scrollbar flickering when displaying the empty-state message\n overflow: hidden;\n}\n\ninput::-webkit-datetime-edit-fields-wrapper {\n // WA remove padding to force this input block-size to be the same as other\n // mercury controls block size.\n padding: none;\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n Method,\n getAssetPath\n} from \"@stencil/core\";\n\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\nimport {\n AccordionModel,\n ComboBoxModel,\n TabularGridSelectionChangedEvent\n} from \"@genexus/chameleon-controls-library\";\n\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\nimport { EntityData, GxOption, ObjectType } from \"../../common/types\";\nimport { formatDate } from \"../../common/helpers\";\nimport {\n mapObjectTypeToComboBoxItemModel,\n mapCategoryToComboBoxItemModel\n} from \"./helpers\";\nimport { FILTER_AFTER, FilterAfterValue } from \"../../common/constants\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"components/accordion\",\n \"components/tabular-grid\",\n \"utils/typography\",\n \"utils/layout\",\n \"utils/spacing\"\n];\n\nconst FILTER_ICON = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"on-elevation\"\n});\nconst USER_ICON = getIconPath({\n category: \"system\",\n name: \"user\",\n colorType: \"on-elevation\"\n});\n\nconst MODIFIED_ACCORDION_MODEL: AccordionModel = [\n {\n id: \"modified\",\n caption: \"Modified\",\n expanded: false\n }\n];\n\nlet TODAY: string = null;\n\n@Component({\n tag: \"gx-ide-object-selector\",\n styleUrl: \"object-selector.scss\",\n shadow: { delegatesFocus: true },\n assetsDirs: [\"gx-ide-assets/object-selector\"]\n})\nexport class GxIdeObjectSelector {\n #componentLocale: any;\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/object-selector/shortcuts.json`\n );\n\n #afterModel: ComboBoxModel = null;\n\n @Element() el: HTMLGxIdeObjectSelectorElement;\n\n /* References needed to collect data */\n #patternInput!: HTMLChEditElement;\n #typeComboBox!: HTMLChComboBoxRenderElement;\n #categoryComboBox!: HTMLChComboBoxRenderElement;\n #moduleEntitySelector!: HTMLGxIdeEntitySelectorElement;\n #afterTypeComboBox!: HTMLChComboBoxRenderElement;\n #userInput!: HTMLChEditElement;\n #modifiedDateInput!: HTMLInputElement;\n #objectsGrid!: HTMLChTabularGridElement;\n #shortcutsEl: HTMLChShortcutsElement;\n\n /**\n * For show or hide the filters relative to modifiers\n */\n @State() filterModified = false;\n\n /**\n * True if loadCallback has been called and has not been resolved yet.\n */\n @State() loading: boolean = false;\n\n /**\n * The \"modified after\" value\n */\n @State() modifiedAfterValue: FilterAfterValue;\n\n /**\n * The objects rendered in the table\n */\n @State() objects: ObjectData[] = [];\n\n /**\n * The selected objects in the table of objects\n */\n @State() selectedObjectsIdsArray: string[] = [];\n\n /**\n * Callback invoked when the user wishes to cancel the selection of objects.\n */\n @Prop() readonly cancelCallback!: CancelCallback;\n\n /**\n * The categories render in the filter category selector\n */\n @Prop() readonly categories!: GxOption[];\n\n /**\n * The default id value for the category filter\n */\n @Prop() readonly defaultCategory: string;\n\n /**\n * The default value for the module/folder filter\n */\n @Prop() readonly defaultModule: EntityData;\n\n /**\n * The default value for the type filter\n */\n @Prop() readonly defaultType: string;\n\n /**\n * If true, it will display a loader when needed.\n */\n @Prop() readonly loader = false;\n\n /**\n * Callback invoked when the component needs to reload the list of attributes.\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * True if multiple object selection is allowed. Default is 'True'\n */\n @Prop() readonly multiSelection: boolean = false;\n\n /**\n * Callback invoked when the user presses the 'New' button.\n */\n @Prop() readonly newObjectCallback!: NewObjectCallback;\n\n /**\n * This is a function provided by the developer for expanded the data of object that is double-clicked or entered.\n */\n @Prop() readonly openSelectionCallback!: OpenSelectionCallback;\n\n /**\n * Current value of the input pattern. It is also used to set the default value when initializing the component\n */\n @Prop() readonly patternValue: string;\n\n /**\n * Callback invoked when the action is executed in the Module/Folder filter. It returns the information of the selected object (id and name) or 'undefined' if it was canceled.\n */\n @Prop() readonly selectModuleCallback: SelectModuleCallback;\n\n /**\n * The types render in the filter type selector\n */\n @Prop() readonly types!: ObjectType[];\n\n async connectedCallback() {\n TODAY = this.#getToday();\n }\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#setAfterOptions();\n this.#setAfterDefaultValue();\n }\n\n componentDidLoad() {\n this.#refreshUIWithNewConfiguration();\n this.#patternInput.focus();\n }\n\n componentDidRender() {}\n\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.#shortcutsEl.suspend = true;\n } else {\n this.#shortcutsEl.suspend = false;\n }\n }\n\n /**\n * Validate necessary data input\n */\n @Method()\n async validate(): Promise<boolean> {\n const isValid = true;\n return isValid;\n }\n\n #cancelCallbackHandler = (): void => {\n this.cancelCallback();\n };\n\n #chGridKeyDownHandler = (e: KeyboardEvent) => {\n if (e.key === \"Enter\") {\n this.#openSelectionCallbackHandler(e);\n }\n };\n\n #deselectAll = (): void => {\n (this.#objectsGrid as any).selectAllRows(false);\n };\n\n #evaluateObjectsCount = (type: \"selected\" | \"matching\"): string => {\n const locale = this.#componentLocale;\n\n if (type === \"selected\") {\n if (this.selectedObjectsIdsArray.length === 0) {\n return locale.objCount.selected.none;\n }\n if (this.selectedObjectsIdsArray.length === 1) {\n return `1 ${locale.objCount.selected.one}`;\n }\n return `${this.selectedObjectsIdsArray.length} ${locale.objCount.selected.many}`;\n }\n\n // type === \"matching\"\n if (this.objects.length === 0) {\n return locale.objCount.matching.none;\n }\n if (this.objects.length === 1) {\n return `1 ${locale.objCount.matching.one}`;\n }\n return `${this.objects.length} ${locale.objCount.matching.many}`;\n };\n\n #getToday = (): string => {\n const now = new Date();\n const date = now.toISOString().split(\"T\")[0];\n const time = now.toISOString().split(\"T\")[1].slice(0, 5); // Only take 'HH:MM' part\n return `${date}T${time}`;\n };\n\n #handleAfterValueChange = (event: CustomEvent<string> | InputEvent) => {\n this.modifiedAfterValue = event.detail as FilterAfterValue;\n if (\n this.modifiedAfterValue !== FILTER_AFTER.DATE_TIME ||\n (this.modifiedAfterValue === FILTER_AFTER.DATE_TIME &&\n this.#modifiedDateInput.value)\n ) {\n // if \"modified\" is \"after date/time\" only refresh ui if date/time is valid.\n this.#refreshUIWithNewConfiguration();\n }\n };\n\n #handleObjectsSelectionChange = (\n event: CustomEvent<TabularGridSelectionChangedEvent>\n ) => {\n this.selectedObjectsIdsArray = event.detail.rowsId;\n };\n\n #hostKeyPressHandler = (e: KeyboardEvent) => {\n // just prevent keypress propagation\n if (e.key === \"Enter\") {\n e.stopPropagation();\n }\n };\n\n #newObjectCallbackHandler = (): void => {\n this.newObjectCallback();\n };\n\n #openSelectionCallbackHandler = (e: MouseEvent | KeyboardEvent): void => {\n e.stopPropagation();\n this.openSelectionCallback(this.selectedObjectsIdsArray);\n };\n\n #refreshUIWithNewConfiguration = (): void => {\n /* 'modified' checkbox, should only be considered if 'date' || 'user' */\n const modifiedAfter = this.#afterTypeComboBox.value;\n const user = this.#userInput?.value?.trim();\n const filters: ObjectFiltersData = {\n pattern: this.#patternInput?.value,\n type: this.#typeComboBox.value,\n category: this.#categoryComboBox.value,\n module: this.#moduleEntitySelector?.value?.id,\n modifiedAfter: modifiedAfter ? modifiedAfter : null,\n modifiedBy: user ? user : null,\n modifiedDate:\n modifiedAfter === FILTER_AFTER.DATE_TIME\n ? new Date(this.#modifiedDateInput?.value)\n : null\n };\n this.loading = true;\n this.objects = [];\n this.loadCallback(filters).then((objects: ObjectData[]) => {\n if (objects) {\n this.objects = this.#sortObjectsByName(objects);\n }\n this.selectedObjectsIdsArray = [];\n this.#deselectAll();\n this.loading = false;\n });\n };\n\n #renderFilter = (): Element => {\n return (\n <header class=\"control-header spacing-body-inline spacing-body-block-start\">\n <form class=\"field-group filter-layout\">\n <div class=\"field field-block pattern\">\n <label\n // pattern\n class=\"label\"\n htmlFor=\"pattern\"\n >\n {this.#componentLocale.filter.pattern}\n </label>\n\n <ch-edit\n accessibleName={this.#componentLocale.filter.pattern}\n debounce={config.inputDebounce}\n class=\"input\"\n part=\"filter-pattern\"\n id=\"pattern\"\n name=\"pattern\"\n value={this.patternValue}\n mode=\"text\"\n ref={(el: HTMLChEditElement) =>\n (this.#patternInput = el as HTMLChEditElement)\n }\n onInput={this.#refreshUIWithNewConfiguration}\n ></ch-edit>\n </div>\n\n <div class=\"field field-block type\">\n <label\n // type\n class=\"label\"\n htmlFor=\"type\"\n >\n {this.#componentLocale.filter.type}\n </label>\n <ch-combo-box-render\n accessibleName={this.#componentLocale.filter.type}\n class=\"combo-box\"\n disabled={!this.types}\n value={this.defaultType}\n part=\"filter-type\"\n id=\"type\"\n model={mapObjectTypeToComboBoxItemModel(this.types)}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#typeComboBox = el as HTMLChComboBoxRenderElement)\n }\n onInput={this.#refreshUIWithNewConfiguration}\n ></ch-combo-box-render>\n </div>\n\n <div class=\"field field-block category\">\n <label\n // category\n class=\"label\"\n htmlFor=\"category\"\n >\n {this.#componentLocale.filter.category}\n </label>\n <ch-combo-box-render\n id=\"category\"\n class=\"combo-box\"\n accessibleName={this.#componentLocale.filter.category}\n disabled={!this.categories}\n model={mapCategoryToComboBoxItemModel(this.categories)}\n value={this.defaultCategory}\n part=\"filter-category\"\n onInput={this.categories && this.#refreshUIWithNewConfiguration}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#categoryComboBox = el as HTMLChComboBoxRenderElement)\n }\n ></ch-combo-box-render>\n </div>\n\n <gx-ide-entity-selector\n // module\n class=\"module\"\n id=\"module\"\n value={this.defaultModule}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.#moduleEntitySelector =\n el as HTMLGxIdeEntitySelectorElement)\n }\n labelCaption={this.#componentLocale.filter.module}\n labelPosition=\"block-start\"\n onValueChanged={this.#refreshUIWithNewConfiguration}\n defaultValue={this.defaultModule}\n selectEntityCallback={this.selectModuleCallback}\n ></gx-ide-entity-selector>\n\n <ch-accordion-render\n // modified\n class=\"accordion-outlined modified-accordion\"\n model={MODIFIED_ACCORDION_MODEL}\n >\n <div slot=\"modified\" class=\"spacing-body\">\n <div class=\"field-group field-group-modified\">\n <div class=\"field field-block after\">\n <label\n // after\n class=\"label\"\n htmlFor=\"after-type\"\n >\n {this.#componentLocale.filter.after}\n </label>\n <ch-combo-box-render\n class=\"combo-box\"\n value={this.modifiedAfterValue}\n part=\"filter-after-type\"\n id=\"after-type\"\n model={this.#afterModel}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#afterTypeComboBox =\n el as HTMLChComboBoxRenderElement)\n }\n onInput={this.#handleAfterValueChange}\n ></ch-combo-box-render>\n </div>\n\n <div class=\"field field-block\">\n <label\n // user\n class=\"label\"\n htmlFor=\"user-name\"\n >\n {this.#componentLocale.filter.user}\n </label>\n <ch-edit\n class=\"input\"\n part=\"filter-user\"\n value={this.patternValue}\n ref={(el: HTMLChEditElement) =>\n (this.#userInput = el as HTMLChEditElement)\n }\n id=\"user-name\"\n name=\"userName\"\n startImgSrc={USER_ICON}\n onInput={this.#refreshUIWithNewConfiguration}\n ></ch-edit>\n </div>\n\n <div class=\"field field-block\">\n <label\n // date\n class={{\n \"label\": true,\n \"label--disabled\":\n this.modifiedAfterValue !== \"afterDateTime\"\n }}\n htmlFor=\"modified-date\"\n >\n {this.#componentLocale.filter.dateTime}\n </label>\n\n <input\n type=\"datetime-local\"\n class=\"input input-date-time\"\n id=\"modified-date\"\n name=\"modifiedDate\"\n part=\"filter-pattern\"\n value={this.patternValue}\n max={TODAY}\n ref={(el: HTMLInputElement) =>\n (this.#modifiedDateInput = el as HTMLInputElement)\n }\n disabled={this.modifiedAfterValue !== \"afterDateTime\"}\n onInput={this.#refreshUIWithNewConfiguration}\n ></input>\n </div>\n </div>\n </div>\n </ch-accordion-render>\n </form>\n </header>\n );\n };\n\n #renderFooter = (): Element => {\n return (\n <footer class=\"footer control-footer-space-between\">\n <div\n class=\"control-footer control-footer-space-between objects-count spacing-body-inline\"\n slot=\"footer-above\"\n >\n <p\n class=\"text-body-regular-s objects-selected\"\n part=\"objects-selected\"\n >\n {this.#evaluateObjectsCount(\"selected\")}\n </p>\n <p\n class=\"text-body-regular-s objects-matching\"\n part=\"objects-matching\"\n >\n {this.#evaluateObjectsCount(\"matching\")}\n </p>\n </div>\n\n <div class=\"control-footer-with-border control-footer-space-between spacing-body-inline spacing-body-block-end\">\n <button\n // button new object\n class=\"button-secondary\"\n part=\"button button-new\"\n onClick={!this.loading ? this.#newObjectCallbackHandler : undefined}\n disabled={this.loading}\n >\n {this.#componentLocale.footer.btnNew}\n </button>\n <div class=\"end buttons-spacer\">\n <button\n // button cancel\n class=\"button-secondary\"\n part=\"button button-cancel\"\n onClick={this.#cancelCallbackHandler}\n >\n {this.#componentLocale.footer.btnCancel}\n </button>\n <button\n // button confirm\n class=\"button-primary\"\n part=\"button button-confirm\"\n onClick={this.#openSelectionCallbackHandler}\n disabled={this.loading}\n >\n {this.#componentLocale.footer.btnConfirm}\n </button>\n {this.multiSelection ? (\n <button\n class=\"button-secondary\"\n onClick={this.#selectAll}\n part=\"button button-select-all\"\n >\n {this.#componentLocale.footer.btnSelectAll}\n </button>\n ) : null}\n </div>\n </div>\n </footer>\n );\n };\n\n #renderObjects = (): Element => {\n return (\n <ch-tabular-grid\n class={{\n \"tabular-grid\": true,\n \"tabular-grid-object-selector\": true,\n \"empty-result\": this.objects.length === 0\n }}\n rowSelectionMode={this.multiSelection ? \"multiple\" : \"single\"}\n ref={(el: HTMLChTabularGridElement) => (this.#objectsGrid = el)}\n part=\"ch-grid-objects\"\n onKeyDown={this.#chGridKeyDownHandler}\n onSelectionChanged={this.#handleObjectsSelectionChange}\n onDblClick={this.#openSelectionCallbackHandler}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.name}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.type}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.module}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.description}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.commonDouble}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.modifiedDate}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.importDate}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n\n {this.objects.length ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.objects.map((obj: ObjectData) => (\n <ch-tabular-grid-row\n rowid={obj.id}\n key={obj.id}\n class=\"tabular-grid-row\"\n >\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <ch-image src={obj.icon} class=\"icon-md\"></ch-image>\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.name}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.type}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.module}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.description}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${formatDate(obj.modifiedDate, \"date-time\")}`}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${formatDate(obj.importDate, \"date-time\")}`}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n {this.loader && this.loading ? (\n <gx-ide-loader\n loaderTitle={this.#componentLocale.loader.title}\n show\n ></gx-ide-loader>\n ) : (\n <gx-ide-empty-state\n stateIconSrc={FILTER_ICON}\n stateTitle={this.#componentLocale.emptyState.title}\n ></gx-ide-empty-state>\n )}\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid>\n );\n };\n\n #selectAll = (): void => {\n (this.#objectsGrid as any).selectAllRows();\n };\n\n #setAfterDefaultValue = (): void => {\n this.modifiedAfterValue = FILTER_AFTER.NONE;\n };\n\n #setAfterOptions = (): void => {\n this.#afterModel = [\n {\n caption: this.#componentLocale.filter.afterNone,\n value: FILTER_AFTER.NONE\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER.DATE_TIME],\n value: FILTER_AFTER.DATE_TIME\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER.IMPORT],\n value: FILTER_AFTER.IMPORT\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER.LAST_BUILD],\n value: FILTER_AFTER.LAST_BUILD\n }\n ];\n };\n\n #sortObjectsByName = (objects: ObjectData[]): ObjectData[] => {\n return objects.sort((a, b) => {\n const nameA = a.name.toLowerCase(),\n nameB = b.name.toLowerCase();\n if (nameA < nameB) {\n return -1;\n }\n if (nameA > nameB) {\n return 1;\n }\n return 0;\n });\n };\n\n render(): void {\n return (\n <Host onKeyPress={this.#hostKeyPressHandler} class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <ch-shortcuts\n src={this.#shortcutsSrc}\n ref={(el: HTMLChShortcutsElement) =>\n (this.#shortcutsEl = el as HTMLChShortcutsElement)\n }\n ></ch-shortcuts>\n <section class=\"section\">\n {this.#renderFilter()}\n {this.#renderObjects()}\n {this.#renderFooter()}\n </section>\n </Host>\n );\n }\n}\n\nexport type NewObjectCallback = () => Promise<void>;\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type SelectModuleCallback = () => Promise<EntityData | undefined>;\n\nexport type OpenSelectionCallback = (ids: string[]) => Promise<void>;\n\nexport type LoadCallback = (\n filters: ObjectFiltersData\n) => Promise<ObjectData[]>;\n\nexport type ObjectFiltersData = {\n pattern?: string;\n type: string;\n category?: string;\n module?: string;\n modifiedAfter?: string;\n modifiedBy?: string;\n modifiedDate?: Date;\n};\n\nexport type ObjectData = {\n id: string;\n icon: string;\n name: string;\n type: string;\n description: string;\n module: string;\n modifiedDate?: Date;\n importDate?: Date;\n};\n"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { r as e, h as s, g as r } from "./p-aaed592c.js";
2
2
 
3
- import { h as a } from "./p-c339f703.js";
3
+ import { h as a } from "./p-066028bc.js";
4
4
 
5
- const i = ':host{font-family:var(--mer-font-family--primary)}.message{color:var(--mer-color__neutral-gray--200);display:grid;grid-template-rows:0fr;transition:grid-template-rows 100ms;transition:grid-template-rows 100ms, -ms-grid-rows 100ms;}.message__outer-wrapper{overflow:hidden}.message__inner-wrapper{padding:var(--mer-spacing--2xs) var(--mer-spacing--xs);border-radius:var(--mer-border__radius--xs);border:var(--mer-border__width--sm) solid transparent;background-color:var(--mer-color__neutral-gray--1200);margin-block-start:var(--mer-spacing--xs)}.message__caption{font-size:var(--mer-font__size--2xs);line-height:var(--mer-line-height--comfortable);position:relative}.message--visible{grid-template-rows:1fr}.message--copying{pointer-events:none}.message--copying span:not(.copied),.message--copying .message__caption{color:transparent;-webkit-user-select:none;-ms-user-select:none;user-select:none;}.message--user .message__inner-wrapper{background-color:var(--mer-color__tint-blue--8)}.message--assistant-action .message__inner-wrapper{font-style:italic}.message--assistant-in-progress{color:var(--mer-color__neutral-gray--500)}.message--assistant-in-progress .message__inner-wrapper{font-style:italic;display:grid;grid-template-columns:1fr auto;gap:var(--mer-spacing--xs)}.message--assistant-in-progress .message__inner-wrapper .message__caption{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex:1}.message--assistant-in-progress .message__inner-wrapper .animation-wrapper{flex:none}.message--assistant-error .message__inner-wrapper{background-color:var(--mer-color__tint-red--5);border-color:var(--mer-color__tint-red--60)}.message--copyable{cursor:pointer}.message:last-child{margin-block-end:0}:host(:first-child) .message__inner-wrapper{margin-block-end:0}.animation-wrapper{width:45px;display:flex;align-items:center;justify-content:center}.dot-pulse{position:relative;left:-9999px;width:5px;height:5px;border-radius:2.5px;background-color:var(--mer-color__neutral-gray--400);color:var(--mer-color__neutral-gray--400);box-shadow:9999px 0 0 -5px;animation:dot-pulse 1.5s infinite linear;animation-delay:0.25s}.dot-pulse::before,.dot-pulse::after{content:"";display:inline-block;position:absolute;top:0;width:5px;height:5px;border-radius:2.5px;background-color:var(--mer-color__neutral-gray--400);color:var(--mer-color__neutral-gray--400)}.dot-pulse::before{box-shadow:9984px 0 0 -5px;animation:dot-pulse-before 1.5s infinite linear;animation-delay:0s}.dot-pulse::after{box-shadow:10014px 0 0 -5px;animation:dot-pulse-after 1.5s infinite linear;animation-delay:0.5s}@keyframes dot-pulse-before{0%{box-shadow:9984px 0 0 -5px}30%{box-shadow:9984px 0 0 2px}60%,100%{box-shadow:9984px 0 0 -5px}}@keyframes dot-pulse{0%{box-shadow:9999px 0 0 -5px}30%{box-shadow:9999px 0 0 2px}60%,100%{box-shadow:9999px 0 0 -5px}}@keyframes dot-pulse-after{0%{box-shadow:10014px 0 0 -5px}30%{box-shadow:10014px 0 0 2px}60%,100%{box-shadow:10014px 0 0 -5px}}.copied{position:absolute;width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--mer-color__neutral-gray--300);display:flex;gap:var(--mer-spacing--2xs)}.hiChar{color:var(--mer-color__primary-blue--200);filter:brightness(1.3)}';
5
+ const i = ':host{font-family:var(--mer-font-family--primary)}.message{color:var(--mer-color__neutral-gray--200);display:grid;grid-template-rows:0fr;transition:grid-template-rows 100ms;transition:grid-template-rows 100ms, -ms-grid-rows 100ms;}.message__outer-wrapper{overflow:hidden}.message__inner-wrapper{padding:var(--mer-spacing--2xs) var(--mer-spacing--xs);border-radius:var(--mer-border__radius--xs);border:var(--mer-border__width--sm) solid transparent;background-color:var(--mer-color__neutral-gray--1200);margin-block-start:var(--mer-spacing--xs)}.message__caption{font-size:var(--mer-font__size--2xs);line-height:var(--mer-line-height--comfortable);position:relative}.message--visible{grid-template-rows:1fr}.message--copying{pointer-events:none}.message--copying span:not(.copied),.message--copying .message__caption{color:transparent;-webkit-user-select:none;-ms-user-select:none;user-select:none;}.message--user .message__inner-wrapper{background-color:var(--mer-color__tint-blue--8)}.message--assistant-action .message__inner-wrapper{font-style:italic}.message--assistant-in-progress{color:var(--mer-color__neutral-gray--500)}.message--assistant-in-progress .message__inner-wrapper{font-style:italic;display:grid;grid-template-columns:1fr auto;gap:var(--mer-spacing--xs)}.message--assistant-in-progress .message__inner-wrapper .message__caption{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex:1}.message--assistant-in-progress .message__inner-wrapper .animation-wrapper{flex:none}.message--assistant-error .message__inner-wrapper{background-color:var(--mer-color__tint-red--5);border-color:var(--mer-color__tint-red--60)}.message--copyable{cursor:pointer}.message:last-child{margin-block-end:0}:host(:first-child) .message__inner-wrapper{margin-block-end:0}.animation-wrapper{width:45px;display:flex;align-items:center;justify-content:center}.dot-pulse{position:relative;left:-9999px;width:5px;height:5px;border-radius:2.5px;background-color:var(--mer-color__neutral-gray--400);color:var(--mer-color__neutral-gray--400);box-shadow:9999px 0 0 -5px;animation:dot-pulse 1.5s infinite linear;animation-delay:0.25s}.dot-pulse::before,.dot-pulse::after{content:"";display:inline-block;position:absolute;top:0;width:5px;height:5px;border-radius:2.5px;background-color:var(--mer-color__neutral-gray--400);color:var(--mer-color__neutral-gray--400)}.dot-pulse::before{box-shadow:9984px 0 0 -5px;animation:dot-pulse-before 1.5s infinite linear;animation-delay:0s}.dot-pulse::after{box-shadow:10014px 0 0 -5px;animation:dot-pulse-after 1.5s infinite linear;animation-delay:0.5s}@keyframes dot-pulse-before{0%{box-shadow:9984px 0 0 -5px}30%{box-shadow:9984px 0 0 2px}60%,100%{box-shadow:9984px 0 0 -5px}}@keyframes dot-pulse{0%{box-shadow:9999px 0 0 -5px}30%{box-shadow:9999px 0 0 2px}60%,100%{box-shadow:9999px 0 0 -5px}}@keyframes dot-pulse-after{0%{box-shadow:10014px 0 0 -5px}30%{box-shadow:10014px 0 0 2px}60%,100%{box-shadow:10014px 0 0 -5px}}.copied{position:absolute;width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--mer-color__neutral-gray--300);display:flex;gap:var(--mer-spacing--2xs)}.hiChar{color:var(--mer-color__primary--200);filter:brightness(1.3)}';
6
6
 
7
7
  const t = class {
8
8
  constructor(s) {
@@ -103,4 +103,4 @@ const t = class {
103
103
  t.style = i;
104
104
 
105
105
  export { t as gx_ide_ai_message };
106
- //# sourceMappingURL=p-5bff0103.entry.js.map
106
+ //# sourceMappingURL=p-4ce0a85e.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["aiMessageCss","GxIdeAiMessage","this","copyable","evaluateMessageIsCopyable","messageType","copyMessage","navigator","clipboard","writeText","message","showCopiedMessage","setTimeout","componentWillLoad","componentDidRender","visible","messagesList","el","parentElement","scrollTo","render","h","class","hidden","onClick","message__caption","copied","type","color","translations","hiChar","filterValue"],"sources":["src/components/ai-assistant/ai-message.scss?tag=gx-ide-ai-message&encapsulation=shadow","src/components/ai-assistant/ai-message.tsx"],"sourcesContent":["@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n font-family: var(--mer-font-family--primary);\n}\n/*--- Messages ---*/\n.message {\n color: var(--mer-color__neutral-gray--200);\n display: grid;\n grid-template-rows: 0fr;\n transition: grid-template-rows 100ms;\n transition: grid-template-rows 100ms, -ms-grid-rows 100ms;\n &__outer-wrapper {\n overflow: hidden;\n }\n &__inner-wrapper {\n padding: var(--mer-spacing--2xs) var(--mer-spacing--xs);\n border-radius: var(--mer-border__radius--xs);\n border: var(--mer-border__width--sm) solid transparent;\n background-color: var(--mer-color__neutral-gray--1200);\n margin-block-start: var(--mer-spacing--xs);\n }\n &__caption {\n font-size: var(--mer-font__size--2xs);\n line-height: var(--mer-line-height--comfortable);\n position: relative;\n }\n &--visible {\n grid-template-rows: 1fr;\n }\n &--copying {\n pointer-events: none;\n span:not(.copied),\n .message__caption {\n color: transparent;\n -webkit-user-select: none; /* Safari */\n -ms-user-select: none; /* IE 10 and IE 11 */\n user-select: none; /* Standard syntax */\n }\n }\n /*--- Types of messages ---*/\n &--user {\n .message__inner-wrapper {\n background-color: var(--mer-color__tint-blue--8);\n }\n }\n &--assistant-action {\n .message__inner-wrapper {\n font-style: italic;\n }\n }\n &--assistant-in-progress {\n color: var(--mer-color__neutral-gray--500);\n .message__inner-wrapper {\n font-style: italic;\n display: grid;\n grid-template-columns: 1fr auto;\n gap: var(--mer-spacing--xs);\n\n .message__caption {\n @include ellipsis;\n flex: 1;\n }\n .animation-wrapper {\n flex: none;\n }\n }\n }\n &--assistant-error {\n .message__inner-wrapper {\n background-color: var(--mer-color__tint-red--5);\n border-color: var(--mer-color__tint-red--60);\n }\n }\n &--copyable {\n cursor: pointer;\n &:hover {\n }\n }\n &:last-child {\n margin-block-end: 0;\n }\n}\n:host(:first-child) {\n .message {\n &__inner-wrapper {\n margin-block-end: 0;\n }\n }\n}\n\n/*--- Dot Pulse Sweet Animation ---*/\n.animation-wrapper {\n width: 45px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n$color: var(--mer-color__neutral-gray--400);\n.dot-pulse {\n position: relative;\n left: -9999px;\n width: 5px;\n height: 5px;\n border-radius: 2.5px;\n background-color: $color;\n color: $color;\n box-shadow: 9999px 0 0 -5px;\n animation: dot-pulse 1.5s infinite linear;\n animation-delay: 0.25s;\n &::before,\n &::after {\n content: \"\";\n display: inline-block;\n position: absolute;\n top: 0;\n width: 5px;\n height: 5px;\n border-radius: 2.5px;\n background-color: $color;\n color: $color;\n }\n &::before {\n box-shadow: 9984px 0 0 -5px;\n animation: dot-pulse-before 1.5s infinite linear;\n animation-delay: 0s;\n }\n &::after {\n box-shadow: 10014px 0 0 -5px;\n animation: dot-pulse-after 1.5s infinite linear;\n animation-delay: 0.5s;\n }\n}\n@keyframes dot-pulse-before {\n 0% {\n box-shadow: 9984px 0 0 -5px;\n }\n 30% {\n box-shadow: 9984px 0 0 2px;\n }\n 60%,\n 100% {\n box-shadow: 9984px 0 0 -5px;\n }\n}\n@keyframes dot-pulse {\n 0% {\n box-shadow: 9999px 0 0 -5px;\n }\n 30% {\n box-shadow: 9999px 0 0 2px;\n }\n 60%,\n 100% {\n box-shadow: 9999px 0 0 -5px;\n }\n}\n@keyframes dot-pulse-after {\n 0% {\n box-shadow: 10014px 0 0 -5px;\n }\n 30% {\n box-shadow: 10014px 0 0 2px;\n }\n 60%,\n 100% {\n box-shadow: 10014px 0 0 -5px;\n }\n}\n\n/*--- Copy Message ---*/\n.copied {\n position: absolute;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--mer-color__neutral-gray--300);\n display: flex;\n gap: var(--mer-spacing--2xs);\n}\n\n@include hiChar;\n","/* STENCIL IMPORTS */\nimport { Component, h, Prop, Element, State } from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { MessageType } from \"./ai-assistant\";\nimport { hiChar } from \"../../common/helpers\";\n\n@Component({\n tag: \"gx-ide-ai-message\",\n styleUrl: \"ai-message.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/ai-message\"]\n})\nexport class GxIdeAiMessage {\n /*\nINDEX:\n1.OWN PROPERTIES \n2.REFERENCE TO ELEMENTS\n3.STATE() VARIABLES\n4.PUBLIC PROPERTY API | WATCH'S\n5.EVENTS (EMIT)\n6.COMPONENT LIFECYCLE METHODS\n7.LISTENERS\n8.PUBLIC METHODS API\n9.LOCAL METHODS\n10.RENDER() FUNCTION\n*/\n\n // 1.OWN PROPERTIES //\n\n /* The message allows to be copied*/\n private copyable = false;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeAiMessageElement;\n\n // 3.STATE() VARIABLES //\n\n /**\n * This wil display the message if true\n */\n @State() visible = false;\n\n /**\n * This wil show the user a text, indicating that the message has been copied\n */\n @State() showCopiedMessage = false;\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * The actual message\n */\n @Prop() readonly message: string;\n\n /**\n * The message type\n */\n @Prop() readonly messageType: MessageType;\n\n /**\n * The filter value\n */\n @Prop() readonly filterValue: string;\n\n /**\n * It hides the message (used for the filter)\n */\n @Prop() readonly hidden: boolean;\n\n /**\n * An object with the needed string translations.\n */\n @Prop() readonly translations: Translations;\n\n // 5.EVENTS (EMIT) //\n\n // 6.COMPONENT LIFECYCLE METHODS //\n\n async componentWillLoad() {\n this.evaluateMessageIsCopyable();\n }\n\n componentDidRender() {\n setTimeout(() => {\n /* Without the timeout it appears instantly (no apparent transition)*/\n this.visible = true;\n const messagesList = this.el.parentElement;\n messagesList.scrollTo(0, 0);\n }, 0);\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n private evaluateMessageIsCopyable = () => {\n this.copyable =\n this.messageType !== \"assistant-in-progress\" &&\n this.messageType !== \"assistant-action\";\n };\n\n private copyMessage = () => {\n navigator.clipboard.writeText(this.message);\n this.showCopiedMessage = true;\n setTimeout(() => {\n this.showCopiedMessage = false;\n }, 1500);\n };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <li\n class={{\n \"message\": true,\n \"message--visible\": this.visible && !this.hidden,\n [`message--${[this.messageType]}`]: true,\n \"message--assistant\": this.messageType !== \"user\",\n \"message--copyable\": this.copyable,\n \"message--copying\": this.showCopiedMessage\n }}\n onClick={this.copyable && this.copyMessage}\n >\n <div class=\"message__outer-wrapper\">\n <div\n class={{\n \"message__inner-wrapper\": true\n }}\n >\n <div\n class={{\n \"message__caption\": true,\n \"message__caption--in-progress\":\n this.messageType === \"assistant-in-progress\"\n }}\n >\n {this.showCopiedMessage ? (\n <span\n class={{\n copied: true\n }}\n >\n <gxg-icon type=\"bpm/tasks\" color=\"mercury\"></gxg-icon>\n {this.translations[\"copied\"]}\n </span>\n ) : null}\n {hiChar(this.message, this.filterValue)}\n </div>\n {this.messageType === \"assistant-in-progress\" ? (\n <div class=\"animation-wrapper\">\n <div class=\"dot-pulse\"></div>\n </div>\n ) : null}\n </div>\n </div>\n </li>\n );\n }\n}\n\nexport type Translations = {\n [key: string]: string;\n};\n"],"mappings":";;;;AAAA,MAAMA,IAAe;;MCaRC,IAAc;;;;;;;;;;;;;;;;;4CAkBjBC,KAAAC,WAAW;;;;QAoEXD,KAAAE,4BAA4B;MAClCF,KAAKC,WACHD,KAAKG,gBAAgB,2BACrBH,KAAKG,gBAAgB;AAAkB;IAGnCH,KAAAI,cAAc;MACpBC,UAAUC,UAAUC,UAAUP,KAAKQ;MACnCR,KAAKS,oBAAoB;MACzBC,YAAW;QACTV,KAAKS,oBAAoB;AAAK,UAC7B;AAAK;mBApES;6BAKU;;;;;;;;;EAiC7B,uBAAME;IACJX,KAAKE;;EAGP,kBAAAU;IACEF,YAAW;;MAETV,KAAKa,UAAU;MACf,MAAMC,IAAed,KAAKe,GAAGC;MAC7BF,EAAaG,SAAS,GAAG;AAAE,QAC1B;;;EAyBL,MAAAC;IACE,OACEC,EAAA;MACEC,OAAO;QACLZ,SAAW;QACX,oBAAoBR,KAAKa,YAAYb,KAAKqB;QAC1C,CAAC,YAAY,EAACrB,KAAKG,kBAAiB;QACpC,sBAAsBH,KAAKG,gBAAgB;QAC3C,qBAAqBH,KAAKC;QAC1B,oBAAoBD,KAAKS;;MAE3Ba,SAAStB,KAAKC,YAAYD,KAAKI;OAE/Be,EAAA;MAAKC,OAAM;OACTD,EAAA;MACEC,OAAO;QACL,0BAA0B;;OAG5BD,EAAA;MACEC,OAAO;QACLG,kBAAoB;QACpB,iCACEvB,KAAKG,gBAAgB;;OAGxBH,KAAKS,oBACJU,EAAA;MACEC,OAAO;QACLI,QAAQ;;OAGVL,EAAA;MAAUM,MAAK;MAAYC,OAAM;QAChC1B,KAAK2B,aAAa,aAEnB,MACHC,EAAO5B,KAAKQ,SAASR,KAAK6B,eAE5B7B,KAAKG,gBAAgB,0BACpBgB,EAAA;MAAKC,OAAM;OACTD,EAAA;MAAKC,OAAM;UAEX"}
@@ -1,6 +1,6 @@
1
1
  import { r as e, c as t, h as r, H as i, g as a } from "./p-aaed592c.js";
2
2
 
3
- import { g as o } from "./p-58e7d1ab.js";
3
+ import { g as o } from "./p-0b0ce806.js";
4
4
 
5
5
  import { a as s } from "./p-3ef5a5a6.js";
6
6
 
@@ -470,4 +470,4 @@ c = new WeakMap, g = new WeakMap;
470
470
  h.style = n;
471
471
 
472
472
  export { h as gx_ide_manage_module_references_v2 };
473
- //# sourceMappingURL=p-cff74f8a.entry.js.map
473
+ //# sourceMappingURL=p-60cd6b09.entry.js.map