@genexus/genexus-ide-ui 1.0.23 → 1.0.25

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 (172) hide show
  1. package/dist/cjs/{form-validation-0019e158.js → form-validation-178cf461.js} +1 -19
  2. package/dist/cjs/form-validation-178cf461.js.map +1 -0
  3. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  4. package/dist/cjs/gx-ide-ai-assistant.cjs.entry.js +4 -3
  5. package/dist/cjs/gx-ide-ai-assistant.cjs.entry.js.map +1 -1
  6. package/dist/cjs/gx-ide-ai-message.cjs.entry.js +10 -28
  7. package/dist/cjs/gx-ide-ai-message.cjs.entry.js.map +1 -1
  8. package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js +197 -61
  9. package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js.map +1 -1
  10. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +190 -122
  11. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js.map +1 -1
  12. package/dist/cjs/gx-ide-new-environment.cjs.entry.js +1 -1
  13. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +1 -1
  14. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +149 -43
  15. package/dist/cjs/gx-ide-share-kb.cjs.entry.js.map +1 -1
  16. package/dist/cjs/gx-ide-welcome-page.cjs.entry.js +2 -2
  17. package/dist/cjs/gx-ide-welcome-page.cjs.entry.js.map +1 -1
  18. package/dist/cjs/loader.cjs.js +1 -1
  19. package/dist/collection/collection-manifest.json +3 -3
  20. package/dist/collection/components/ai-assistant/ai-assistant.css +2 -2
  21. package/dist/collection/components/ai-assistant/ai-assistant.js +3 -2
  22. package/dist/collection/components/ai-assistant/ai-assistant.js.map +1 -1
  23. package/dist/collection/components/ai-assistant/ai-message.css +38 -13
  24. package/dist/collection/components/ai-assistant/ai-message.js +11 -27
  25. package/dist/collection/components/ai-assistant/ai-message.js.map +1 -1
  26. package/dist/collection/components/ai-assistant/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.en.json +1 -0
  27. package/dist/collection/components/ai-assistant/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.ja.json +2 -1
  28. package/dist/collection/components/ai-assistant/gx-ide-assets/ai-message/langs/ai-message.lang.en.json +4 -0
  29. package/dist/collection/components/ai-assistant/gx-ide-assets/ai-message/langs/ai-message.lang.ja.json +3 -0
  30. package/dist/collection/components/ai-assistant/gx-ide-assets/ai-message/langs/ai-message.lang.zh.json +3 -0
  31. package/dist/collection/components/team-dev/connect-gx-server/connect-gx-server.css +33 -0
  32. package/dist/collection/components/team-dev/connect-gx-server/connect-gx-server.js +350 -0
  33. package/dist/collection/components/team-dev/connect-gx-server/connect-gx-server.js.map +1 -0
  34. package/dist/collection/components/team-dev/connect-gx-server/gx-ide-assets/connect-gx-server/langs/connect-gx-server.lang.en.json +13 -0
  35. package/dist/collection/components/team-dev/connect-gx-server/gx-ide-assets/connect-gx-server/langs/connect-gx-server.lang.ja.json +3 -0
  36. package/dist/collection/components/team-dev/connect-gx-server/helpers.js +17 -0
  37. package/dist/collection/components/team-dev/connect-gx-server/helpers.js.map +1 -0
  38. package/dist/collection/components/team-dev/create-kb-from-server/create-kb-from-server.css +39 -0
  39. package/dist/collection/components/team-dev/create-kb-from-server/create-kb-from-server.js +381 -0
  40. package/dist/collection/components/team-dev/create-kb-from-server/create-kb-from-server.js.map +1 -0
  41. package/dist/collection/components/team-dev/create-kb-from-server/gx-ide-assets/create-kb-from-server/langs/create-kb-from-server.lang.en.json +27 -0
  42. package/dist/collection/components/team-dev/create-kb-from-server/gx-ide-assets/create-kb-from-server/langs/create-kb-from-server.lang.ja.json +27 -0
  43. package/dist/collection/components/team-dev/create-kb-from-server/gx-ide-assets/create-kb-from-server/langs/create-kb-from-server.lang.zh.json +27 -0
  44. package/dist/collection/components/team-dev/create-kb-from-server/gx-ide-assets/create-kb-from-server/shortcuts.json +10 -0
  45. package/dist/collection/components/team-dev/create-kb-from-server/helpers.js +12 -0
  46. package/dist/collection/components/team-dev/create-kb-from-server/helpers.js.map +1 -0
  47. package/dist/collection/components/team-dev/share-kb/gx-ide-assets/share-kb/langs/share-kb.lang.en.json +27 -0
  48. package/dist/collection/components/team-dev/share-kb/gx-ide-assets/share-kb/langs/share-kb.lang.ja.json +27 -0
  49. package/dist/collection/components/team-dev/share-kb/gx-ide-assets/share-kb/langs/share-kb.lang.zh.json +27 -0
  50. package/dist/collection/components/team-dev/share-kb/gx-ide-assets/share-kb/shortcuts.json +10 -0
  51. package/dist/collection/components/team-dev/share-kb/helpers.js +12 -0
  52. package/dist/collection/components/team-dev/share-kb/helpers.js.map +1 -0
  53. package/dist/collection/components/team-dev/share-kb/share-kb.css +39 -0
  54. package/dist/collection/components/team-dev/share-kb/share-kb.js +349 -0
  55. package/dist/collection/components/team-dev/share-kb/share-kb.js.map +1 -0
  56. package/dist/collection/components/welcome-page/welcome-page.css +2 -16
  57. package/dist/collection/components/welcome-page/welcome-page.js +1 -1
  58. package/dist/collection/components/welcome-page/welcome-page.js.map +1 -1
  59. package/dist/components/ai-message.js +10 -28
  60. package/dist/components/ai-message.js.map +1 -1
  61. package/dist/components/form-validation.js +1 -18
  62. package/dist/components/form-validation.js.map +1 -1
  63. package/dist/components/gx-ide-ai-assistant.js +4 -3
  64. package/dist/components/gx-ide-ai-assistant.js.map +1 -1
  65. package/dist/components/gx-ide-connect-gx-server.js +211 -82
  66. package/dist/components/gx-ide-connect-gx-server.js.map +1 -1
  67. package/dist/components/gx-ide-create-kb-from-server.js +204 -148
  68. package/dist/components/gx-ide-create-kb-from-server.js.map +1 -1
  69. package/dist/components/gx-ide-share-kb.js +160 -61
  70. package/dist/components/gx-ide-share-kb.js.map +1 -1
  71. package/dist/components/gx-ide-welcome-page.js +2 -2
  72. package/dist/components/gx-ide-welcome-page.js.map +1 -1
  73. package/dist/esm/{form-validation-44b2c2a8.js → form-validation-cd0215c6.js} +2 -19
  74. package/dist/esm/form-validation-cd0215c6.js.map +1 -0
  75. package/dist/esm/genexus-ide-ui.js +1 -1
  76. package/dist/esm/gx-ide-ai-assistant.entry.js +4 -3
  77. package/dist/esm/gx-ide-ai-assistant.entry.js.map +1 -1
  78. package/dist/esm/gx-ide-ai-message.entry.js +10 -28
  79. package/dist/esm/gx-ide-ai-message.entry.js.map +1 -1
  80. package/dist/esm/gx-ide-connect-gx-server.entry.js +198 -62
  81. package/dist/esm/gx-ide-connect-gx-server.entry.js.map +1 -1
  82. package/dist/esm/gx-ide-create-kb-from-server.entry.js +191 -123
  83. package/dist/esm/gx-ide-create-kb-from-server.entry.js.map +1 -1
  84. package/dist/esm/gx-ide-new-environment.entry.js +1 -1
  85. package/dist/esm/gx-ide-new-kb.entry.js +1 -1
  86. package/dist/esm/gx-ide-share-kb.entry.js +149 -43
  87. package/dist/esm/gx-ide-share-kb.entry.js.map +1 -1
  88. package/dist/esm/gx-ide-welcome-page.entry.js +2 -2
  89. package/dist/esm/gx-ide-welcome-page.entry.js.map +1 -1
  90. package/dist/esm/loader.js +1 -1
  91. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  92. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  93. package/dist/genexus-ide-ui/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.en.json +1 -0
  94. package/dist/genexus-ide-ui/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.ja.json +2 -1
  95. package/dist/genexus-ide-ui/gx-ide-assets/ai-message/langs/ai-message.lang.en.json +4 -0
  96. package/dist/genexus-ide-ui/gx-ide-assets/ai-message/langs/ai-message.lang.ja.json +3 -0
  97. package/dist/genexus-ide-ui/gx-ide-assets/ai-message/langs/ai-message.lang.zh.json +3 -0
  98. package/dist/genexus-ide-ui/gx-ide-assets/connect-gx-server/langs/connect-gx-server.lang.en.json +8 -12
  99. package/dist/genexus-ide-ui/gx-ide-assets/connect-gx-server/langs/connect-gx-server.lang.ja.json +2 -16
  100. package/dist/genexus-ide-ui/gx-ide-assets/create-kb-from-server/langs/create-kb-from-server.lang.en.json +20 -12
  101. package/dist/genexus-ide-ui/gx-ide-assets/create-kb-from-server/langs/create-kb-from-server.lang.ja.json +20 -12
  102. package/dist/genexus-ide-ui/gx-ide-assets/create-kb-from-server/langs/create-kb-from-server.lang.zh.json +25 -1
  103. package/dist/genexus-ide-ui/gx-ide-assets/create-kb-from-server/shortcuts.json +5 -2
  104. package/dist/genexus-ide-ui/gx-ide-assets/share-kb/langs/share-kb.lang.en.json +22 -8
  105. package/dist/genexus-ide-ui/gx-ide-assets/share-kb/langs/share-kb.lang.ja.json +23 -9
  106. package/dist/genexus-ide-ui/gx-ide-assets/share-kb/langs/share-kb.lang.zh.json +25 -1
  107. package/dist/genexus-ide-ui/gx-ide-assets/share-kb/shortcuts.json +5 -2
  108. package/dist/genexus-ide-ui/{p-7a2d3f1c.entry.js → p-10beeb25.entry.js} +32 -30
  109. package/dist/genexus-ide-ui/p-10beeb25.entry.js.map +1 -0
  110. package/dist/genexus-ide-ui/p-289c3290.js +39 -0
  111. package/dist/genexus-ide-ui/p-289c3290.js.map +1 -0
  112. package/dist/genexus-ide-ui/p-2c6dd837.entry.js +305 -0
  113. package/dist/genexus-ide-ui/p-2c6dd837.entry.js.map +1 -0
  114. package/dist/genexus-ide-ui/p-407c31c6.entry.js +264 -0
  115. package/dist/genexus-ide-ui/p-407c31c6.entry.js.map +1 -0
  116. package/dist/genexus-ide-ui/{p-3adbc04c.entry.js → p-4cbaa118.entry.js} +11 -11
  117. package/dist/genexus-ide-ui/p-673480ac.entry.js +88 -0
  118. package/dist/genexus-ide-ui/p-673480ac.entry.js.map +1 -0
  119. package/dist/genexus-ide-ui/{p-26b2037d.entry.js → p-9e810ad5.entry.js} +5 -4
  120. package/dist/genexus-ide-ui/p-9e810ad5.entry.js.map +1 -0
  121. package/dist/genexus-ide-ui/p-e31b4df0.entry.js +249 -0
  122. package/dist/genexus-ide-ui/p-e31b4df0.entry.js.map +1 -0
  123. package/dist/genexus-ide-ui/{p-3d5fea0a.entry.js → p-ed7eada1.entry.js} +2 -2
  124. package/dist/types/components/ai-assistant/ai-message.d.ts +1 -1
  125. package/dist/types/components/team-dev/connect-gx-server/connect-gx-server.d.ts +50 -0
  126. package/dist/types/components/team-dev/connect-gx-server/helpers.d.ts +4 -0
  127. package/dist/types/components/team-dev/create-kb-from-server/create-kb-from-server.d.ts +82 -0
  128. package/dist/types/components/team-dev/create-kb-from-server/helpers.d.ts +3 -0
  129. package/dist/types/components/team-dev/share-kb/helpers.d.ts +3 -0
  130. package/dist/types/components/team-dev/share-kb/share-kb.d.ts +73 -0
  131. package/dist/types/components/welcome-page/welcome-page.d.ts +4 -1
  132. package/dist/types/components.d.ts +119 -151
  133. package/package.json +3 -3
  134. package/dist/cjs/form-validation-0019e158.js.map +0 -1
  135. package/dist/collection/components/connect-gx-server/connect-gx-server.css +0 -609
  136. package/dist/collection/components/connect-gx-server/connect-gx-server.js +0 -258
  137. package/dist/collection/components/connect-gx-server/connect-gx-server.js.map +0 -1
  138. package/dist/collection/components/connect-gx-server/gx-ide-assets/connect-gx-server/langs/connect-gx-server.lang.en.json +0 -17
  139. package/dist/collection/components/connect-gx-server/gx-ide-assets/connect-gx-server/langs/connect-gx-server.lang.ja.json +0 -17
  140. package/dist/collection/components/create-kb-from-server/create-kb-from-server.css +0 -638
  141. package/dist/collection/components/create-kb-from-server/create-kb-from-server.js +0 -349
  142. package/dist/collection/components/create-kb-from-server/create-kb-from-server.js.map +0 -1
  143. package/dist/collection/components/create-kb-from-server/gx-ide-assets/create-kb-from-server/langs/create-kb-from-server.lang.en.json +0 -19
  144. package/dist/collection/components/create-kb-from-server/gx-ide-assets/create-kb-from-server/langs/create-kb-from-server.lang.ja.json +0 -19
  145. package/dist/collection/components/create-kb-from-server/gx-ide-assets/create-kb-from-server/langs/create-kb-from-server.lang.zh.json +0 -3
  146. package/dist/collection/components/create-kb-from-server/gx-ide-assets/create-kb-from-server/shortcuts.json +0 -7
  147. package/dist/collection/components/share-kb/gx-ide-assets/share-kb/langs/share-kb.lang.en.json +0 -13
  148. package/dist/collection/components/share-kb/gx-ide-assets/share-kb/langs/share-kb.lang.ja.json +0 -13
  149. package/dist/collection/components/share-kb/gx-ide-assets/share-kb/langs/share-kb.lang.zh.json +0 -3
  150. package/dist/collection/components/share-kb/gx-ide-assets/share-kb/shortcuts.json +0 -7
  151. package/dist/collection/components/share-kb/share-kb.css +0 -636
  152. package/dist/collection/components/share-kb/share-kb.js +0 -189
  153. package/dist/collection/components/share-kb/share-kb.js.map +0 -1
  154. package/dist/esm/form-validation-44b2c2a8.js.map +0 -1
  155. package/dist/genexus-ide-ui/p-02bc66c1.entry.js +0 -129
  156. package/dist/genexus-ide-ui/p-02bc66c1.entry.js.map +0 -1
  157. package/dist/genexus-ide-ui/p-26b2037d.entry.js.map +0 -1
  158. package/dist/genexus-ide-ui/p-58e13823.entry.js +0 -158
  159. package/dist/genexus-ide-ui/p-58e13823.entry.js.map +0 -1
  160. package/dist/genexus-ide-ui/p-5dfb7c66.entry.js +0 -106
  161. package/dist/genexus-ide-ui/p-5dfb7c66.entry.js.map +0 -1
  162. package/dist/genexus-ide-ui/p-7a2d3f1c.entry.js.map +0 -1
  163. package/dist/genexus-ide-ui/p-b8624c0b.js +0 -56
  164. package/dist/genexus-ide-ui/p-b8624c0b.js.map +0 -1
  165. package/dist/genexus-ide-ui/p-cf2c8b3c.entry.js +0 -241
  166. package/dist/genexus-ide-ui/p-cf2c8b3c.entry.js.map +0 -1
  167. package/dist/types/components/connect-gx-server/connect-gx-server.d.ts +0 -62
  168. package/dist/types/components/create-kb-from-server/create-kb-from-server.d.ts +0 -97
  169. package/dist/types/components/share-kb/share-kb.d.ts +0 -53
  170. /package/dist/collection/components/{connect-gx-server → team-dev/connect-gx-server}/gx-ide-assets/connect-gx-server/langs/connect-gx-server.lang.zh.json +0 -0
  171. /package/dist/genexus-ide-ui/{p-3adbc04c.entry.js.map → p-4cbaa118.entry.js.map} +0 -0
  172. /package/dist/genexus-ide-ui/{p-3d5fea0a.entry.js.map → p-ed7eada1.entry.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["mapKbsModelToActionListModel","kbsData","listBoxItems","forEach","kb","push","id","type","caption","name","createKbFromServerCss","CSS_BUNDLES","GxIdeCreateKbFromServer","_GxIdeCreateKbFromServer_chSearchIcon","set","this","getIconPath","category","colorType","_GxIdeCreateKbFromServer_showMoreIcon","_GxIdeCreateKbFromServer_versionsSelect","value","_GxIdeCreateKbFromServer__componentLocale","_GxIdeCreateKbFromServer_kbsActionListModel","_GxIdeCreateKbFromServer_kbVersionsIds","_GxIdeCreateKbFromServer_shortcutsSrc","getAssetPath","_GxIdeCreateKbFromServer_selectedKbId","_GxIdeCreateKbFromServer_kbNameAlreadyEditedByUser","_GxIdeCreateKbFromServer_searchKbsEl","_GxIdeCreateKbFromServer_versionSelectedTypeEl","_GxIdeCreateKbFromServer_localKBNameEl","_GxIdeCreateKbFromServer_cancelHandler","cancelCallback","_GxIdeCreateKbFromServer_changeConnectionHandler","async","changeConnectionCallback","authenticationType","connectionData","serverUrl","userName","userPassword","_GxIdeCreateKbFromServer_createHandler","versionSelectedType","__classPrivateFieldSet","createKBCallback","selectedKB","__classPrivateFieldGet","versionSelected","localKBName","localKbNameInputValue","versionList","then","formSubmitResult","validatableControls","validateControls","_GxIdeCreateKbFromServer_evaluateTooltipRender","controlReference","_b","_a","get","hasError","_c","message","h","class","actionElement","blockAlign","config","tooltipSettings","inlineAlign","delay","_GxIdeCreateKbFromServer_filterValueChangedHandler","event","filterValue","detail","toLowerCase","kbsFilteredActionListModel","filter","item","includes","_GxIdeCreateKbFromServer_init","getGXserverKBsCallback","result","_GxIdeCreateKbFromServer_initializeValidatableControls","validatableControl","reference","undefined","_GxIdeCreateKbFromServer_inputLocalKbNameHandler","_GxIdeCreateKbFromServer_selectedVersionHandler","selectKBVersionsCallback","length","versionsValueInput","toString","concat","versionSelectedFieldValue","map","kbVersion","_GxIdeCreateKbFromServer_selectKbChangeHandler","enableSelectVersionsButton","_GxIdeCreateKbFromServer_versionsChangedHandler","_GxIdeCreateKbFromServer_renderFooter","onClick","part","footer","cancel","disabled","createKb","Map","componentDidLoad","focus","call","componentWillLoad","Locale","getComponentStrings","el","render","Host","model","src","ref","chShortcutsEl","header","user","change","startImgSrc","onInput","placeholder","searchKbsPlaceholder","selection","onSelectedItemsChange","onChange","htmlFor","versionsLabel","readonly","versionsPlaceholder","versionsPlaceholderDisabled","localKbNameLabel","localKbNamePlaceholder"],"sources":["src/components/team-dev/create-kb-from-server/helpers.ts","src/components/team-dev/create-kb-from-server/create-kb-from-server.scss?tag=gx-ide-create-kb-from-server&encapsulation=shadow","src/components/team-dev/create-kb-from-server/create-kb-from-server.tsx"],"sourcesContent":["import { ActionListItemModel } from \"@genexus/chameleon-controls-library\";\nimport { KBData } from \"./create-kb-from-server\";\n\nexport const mapKbsModelToActionListModel = (\n kbsData: KBData[]\n): ActionListItemModel[] => {\n const listBoxItems: ActionListItemModel[] = [];\n kbsData.forEach(kb => {\n listBoxItems.push({\n id: kb.id,\n type: \"actionable\",\n caption: kb.name\n });\n });\n return listBoxItems;\n};\n",":host {\n display: grid;\n block-size: 100%;\n grid-template-rows: max-content 1fr max-content;\n}\n\n.section {\n display: contents;\n}\n\n// - - - - - - - - - - -\n// Header\n// - - - - - - - - - - -\n\nheader {\n display: grid;\n grid-template-rows: max-content;\n grid-template-columns: 1fr 1fr max-content;\n}\n\n.button-change {\n align-self: center;\n justify-self: end;\n}\n\n// - - - - - - - - - - -\n// Main\n// - - - - - - - - - - -\n\n.main {\n display: grid;\n grid-template-columns: 1fr;\n grid-template-rows: max-content 1fr max-content max-content;\n}\n\n.search-kbs {\n inline-size: 50%;\n}\n\n.versions-container {\n grid-auto-rows: max-content;\n\n &__input {\n display: grid;\n grid-template-columns: 1fr max-content;\n gap: var(--mer-spacing--xs);\n }\n}\n","// Stencil\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n getAssetPath\n} from \"@stencil/core\";\n\n// Other Libraries\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\n\n// Custom Imports\nimport { config } from \"../../../common/config\";\nimport { GXServerConnectionData } from \"../connect-gx-server/connect-gx-server\";\nimport { FormSubmitResult } from \"../../../common/types\";\nimport {\n ControlValidation,\n validateControls\n} from \"../../../common/form-validation\";\nimport { Locale } from \"../../../common/locale\";\nimport { mapKbsModelToActionListModel } from \"./helpers\";\nimport {\n ActionListItemActionable,\n ActionListItemModel,\n ActionListItemModelExtended,\n ChActionListRenderCustomEvent,\n ChEditCustomEvent\n} from \"@genexus/chameleon-controls-library\";\nimport { RadioGroupItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/radio-group/types\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"components/list-box\",\n \"components/tooltip\",\n \"chameleon/scrollbar\"\n];\n\n@Component({\n tag: \"gx-ide-create-kb-from-server\",\n styleUrl: \"create-kb-from-server.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/create-kb-from-server\"]\n})\nexport class GxIdeCreateKbFromServer {\n #chSearchIcon = getIconPath({\n category: \"system\",\n name: \"search\",\n colorType: \"on-surface\"\n });\n\n #showMoreIcon = getIconPath({\n category: \"gemini-tools\",\n name: \"show-more-horizontal\",\n colorType: \"on-elevation\"\n });\n\n #versionsSelect: RadioGroupItemModel[] = [\n { value: \"Trunk\", caption: \"Trunk Version\" },\n { value: \"All\", caption: \"All Versions\" }\n // { value: \"Select\", caption: \"Select Version\" } TODO: display once \"gx-ide-select-kb-versions\" is ready.\n ];\n\n [key: string]: any;\n\n #_componentLocale: any;\n #kbsActionListModel: ActionListItemModel[] = [];\n #kbVersionsIds: string[] = [];\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/create-kb-from-server/shortcuts.json`\n );\n #selectedKbId: string;\n #kbNameAlreadyEditedByUser: boolean = false;\n\n #searchKbsEl!: HTMLChEditElement;\n #versionSelectedTypeEl: HTMLChRadioGroupRenderElement;\n\n @Element() el: HTMLGxIdeCreateKbFromServerElement;\n\n #localKBNameEl!: HTMLChEditElement;\n\n /**\n * State to enable/disable the select versions button\n */\n @State() enableSelectVersionsButton: boolean = false;\n\n /**\n * The current kbn name value.\n */\n @State() localKbNameInputValue: string = \"\";\n\n /**\n * State to store the filter input value to filter the list-box\n */\n @State() filterValue: string = \"\";\n\n /**\n * KBs filtered\n */\n @State() kbsFilteredActionListModel: ActionListItemModel[] = [];\n\n @State() validatableControls = new Map<string, ControlValidation>();\n\n /**\n * The version selected type\n */\n @State() versionSelectedType: VersionOption;\n\n /**\n * String value to show the number of versions selected (\"N versions selected\")\n */\n @State() versionsValueInput: string = \"\";\n\n /**\n * Set of data required when executing any of the callbacks that require a connection to the server.\n */\n @Prop() readonly connectionData: GXServerConnectionData;\n\n /**\n * Callback that is invoked when the dialog is closed\n */\n @Prop() readonly cancelCallback!: () => Promise<void>;\n\n /**\n * The host reopens the gx-ide-connect-server login modal with the previous data, and closes the current modal\n */\n @Prop() readonly changeConnectionCallback: (\n data: GXServerConnectionData\n ) => Promise<void>;\n\n /**\n * Callback that must be invoked when the 'Create KB' button is pressed. Receives the user's parameter selection to create the remote KB locally and ends the dialog.\n */\n @Prop() readonly createKBCallback!: (\n kbInfo: KnowledgeBaseInfo\n ) => Promise<FormSubmitResult>;\n\n /**\n * Callback that must be invoked when invoking the dialog\n */\n @Prop() readonly getGXserverKBsCallback!: (\n data: GXServerConnectionData\n ) => Promise<KBData[]>;\n\n /**\n * Callback invoked by pressing the ellipsis in the version selector. Receives the KB selected by the user, and displays the version selector dialog. Returns a list of versions chosen by the user.\n */\n @Prop() readonly selectKBVersionsCallback: (\n selectedKB: string\n ) => Promise<KBVersion[]>;\n\n componentDidLoad() {\n (this.#searchKbsEl as HTMLElement).focus();\n\n this.versionSelectedType = this.#versionSelectedTypeEl\n .value as VersionOption;\n\n this.#initializeValidatableControls();\n }\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n await this.#init();\n }\n\n #cancelHandler = (): void => {\n this.cancelCallback();\n };\n\n #changeConnectionHandler = async (): Promise<void> => {\n this.changeConnectionCallback({\n authenticationType: this.connectionData.authenticationType,\n serverUrl: this.connectionData.serverUrl,\n userName: this.connectionData.userName,\n userPassword: this.connectionData.userPassword\n });\n };\n\n #createHandler = async (): Promise<void> => {\n if (this.versionSelectedType !== \"Select\") {\n this.#kbVersionsIds = [];\n }\n this.createKBCallback({\n selectedKB: this.#selectedKbId,\n versionSelected: this.versionSelectedType,\n localKBName: this.localKbNameInputValue,\n versionList: this.#kbVersionsIds\n }).then((formSubmitResult: FormSubmitResult) => {\n this.validatableControls = validateControls(\n formSubmitResult,\n this.validatableControls\n );\n });\n };\n\n // TODO: evaluate if this should be a global helper function.\n // It is used on other dialogs 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 #filterValueChangedHandler = (\n event: ChEditCustomEvent<string> | InputEvent\n ) => {\n this.filterValue = (event.detail as string).toLowerCase();\n this.kbsFilteredActionListModel = this.#kbsActionListModel.filter(\n (item: ActionListItemActionable) =>\n item.caption.toLowerCase().includes(this.filterValue)\n );\n };\n\n #init = async () => {\n await this.getGXserverKBsCallback({\n authenticationType: this.connectionData.authenticationType,\n serverUrl: this.connectionData.serverUrl,\n userName: this.connectionData.userName,\n userPassword: this.connectionData.userPassword\n }).then(result => {\n this.#kbsActionListModel = mapKbsModelToActionListModel(result);\n this.kbsFilteredActionListModel = this.#kbsActionListModel;\n this.filterValue = \"\";\n });\n };\n\n #initializeValidatableControls = () => {\n // populate validatableControls with the controls that could have errors.\n const validatableControls: HTMLElement[] = [this.#localKBNameEl];\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 #inputLocalKbNameHandler = (\n event: ChEditCustomEvent<string> | InputEvent\n ) => {\n this.localKbNameInputValue = event.detail as string;\n this.#kbNameAlreadyEditedByUser = true;\n };\n\n #selectedVersionHandler = async () => {\n if (this.selectKBVersionsCallback) {\n await this.selectKBVersionsCallback(this.#selectedKbId).then(result => {\n if (result?.length) {\n this.versionsValueInput = result.length\n .toString()\n .concat(this.#_componentLocale.kb.versionSelectedFieldValue);\n this.#kbVersionsIds = result.map(kbVersion =>\n kbVersion.id.toString()\n );\n }\n });\n }\n };\n\n #selectKbChangeHandler = (\n event: ChActionListRenderCustomEvent<ActionListItemModelExtended[]>\n ): void => {\n const item = event.detail[0]?.item as ActionListItemActionable;\n if (item === undefined) {\n this.enableSelectVersionsButton = false;\n this.#selectedKbId = undefined;\n return;\n }\n this.enableSelectVersionsButton = true;\n this.#selectedKbId = item.id;\n if (this.#kbNameAlreadyEditedByUser) {\n return;\n }\n this.localKbNameInputValue = item.caption;\n };\n\n #versionsChangedHandler = (event: CustomEvent<string>) => {\n this.versionSelectedType = event.detail as VersionOption;\n };\n\n #renderFooter = () => {\n return (\n <footer class=\"footer control-footer-with-border spacing-body-inline spacing-body-block-end\">\n <div class=\"buttons-spacer\">\n <button\n // cancel button\n class=\"button-secondary\"\n onClick={this.#cancelHandler}\n part=\"button button-cancel\"\n >\n {this.#_componentLocale.footer.cancel}\n </button>\n\n <button\n // create kb button\n class=\"button-primary\"\n onClick={this.enableSelectVersionsButton && this.#createHandler}\n disabled={!this.enableSelectVersionsButton}\n part=\"button button-create-kb\"\n >\n {this.#_componentLocale.footer.createKb}\n </button>\n </div>\n </footer>\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\n <section class=\"section\">\n <header class=\"header control-header-with-border space-body spacing-body-inline spacing-body-block-start\">\n <div class=\"field field-block\">\n <label class=\"label\">\n {this.#_componentLocale.header.serverUrl}\n </label>\n <p>{this.connectionData.serverUrl}</p>\n </div>\n\n <div class=\"field field-block\">\n <label class=\"label\">{this.#_componentLocale.header.user}</label>\n <p>{this.connectionData.userName}</p>\n </div>\n\n <button\n class=\"button-tertiary button-change\"\n onClick={this.#changeConnectionHandler}\n >\n {this.#_componentLocale.header.change}\n </button>\n </header>\n\n <section class=\"main field-group spacing-body\">\n <ch-edit\n class=\"input search-kbs\"\n id=\"local-kb-name\"\n startImgSrc={this.#chSearchIcon}\n onInput={this.#filterValueChangedHandler}\n placeholder={this.#_componentLocale.kb.searchKbsPlaceholder}\n ref={el => (this.#searchKbsEl = el as HTMLChEditElement)}\n ></ch-edit>\n\n <ch-action-list-render\n selection=\"single\"\n class=\"list-box\"\n onSelectedItemsChange={this.#selectKbChangeHandler}\n model={this.kbsFilteredActionListModel}\n ></ch-action-list-render>\n\n <div class=\"versions-container field-group\">\n <ch-radio-group-render\n class=\"radio-group\"\n model={this.#versionsSelect}\n onChange={this.#versionsChangedHandler}\n value={this.#versionsSelect[0].value}\n ref={el =>\n (this.#versionSelectedTypeEl =\n el as HTMLChRadioGroupRenderElement)\n }\n ></ch-radio-group-render>\n\n {this.versionSelectedType === \"Select\" && (\n <div class=\"versions-container__item field-group\">\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"control-id-1\">\n {this.#_componentLocale.kb.versionsLabel}\n </label>\n <div class=\"versions-container__input\">\n <ch-edit\n class=\"input\"\n readonly\n placeholder={\n this.enableSelectVersionsButton\n ? this.#_componentLocale.kb.versionsPlaceholder\n : this.#_componentLocale.kb\n .versionsPlaceholderDisabled\n }\n value={this.versionsValueInput}\n ></ch-edit>\n <button\n class=\"button-tertiary button-icon-only\"\n onClick={this.#selectedVersionHandler}\n disabled={!this.enableSelectVersionsButton}\n >\n <ch-image\n src={this.#showMoreIcon}\n class=\"icon-sm\"\n ></ch-image>\n </button>\n </div>\n </div>\n </div>\n )}\n </div>\n\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"localKbName\">\n {this.#_componentLocale.kb.localKbNameLabel}\n </label>\n <ch-edit\n // local kb name\n class=\"input\"\n id=\"local-kb-name\"\n value={this.localKbNameInputValue}\n onInput={this.#inputLocalKbNameHandler}\n placeholder={this.#_componentLocale.kb.localKbNamePlaceholder}\n ref={(el: HTMLChEditElement) =>\n (this.#localKBNameEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#localKBNameEl)}\n </div>\n </section>\n\n {this.#renderFooter()}\n </section>\n </Host>\n );\n }\n}\n\nexport type KBData = {\n id: string;\n name: string;\n};\n\nexport type KBVersion = {\n id: number;\n name: string;\n type: VersionType;\n};\n\nexport type ConnectionResultData = {\n formResult: FormSubmitResult;\n kbs: KBData[];\n};\n\nexport type KnowledgeBaseInfo = {\n selectedKB: string;\n versionSelected: VersionOption;\n localKBName: string;\n versionList: string[];\n};\n\nexport type VersionOption = \"Trunk\" | \"All\" | \"Select\";\n\nexport type VersionType = \"Branch\" | \"Frozen\";\n"],"mappings":"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"}
@@ -0,0 +1,264 @@
1
+ import { r as e, h as t, H as s, g as i } from "./p-aaed592c.js";
2
+
3
+ import { c as a } from "./p-78b90603.js";
4
+
5
+ import { L as n } from "./p-74d59062.js";
6
+
7
+ import { v as o } from "./p-289c3290.js";
8
+
9
+ const mapAuthenticationTypeToComboBoxModel = e => e.map((e => ({
10
+ value: e.id,
11
+ caption: e.name
12
+ })));
13
+
14
+ const mapServerUrlsToComboBoxModel = e => e.map((e => ({
15
+ value: e,
16
+ caption: e
17
+ })));
18
+
19
+ const r = ':host{display:grid;block-size:100%;overflow:auto;grid-template-rows:1fr max-content}.main{display:grid;grid-template-areas:"server-url server-url" "authentication-type ." "user-name user-password";grid-auto-rows:max-content;grid-template-columns:1fr 1fr}.section{display:contents}.authentication-type{grid-area:authentication-type}.server-url{grid-area:server-url}.user-name{grid-area:user-name}.user-password{grid-area:user-password}';
20
+
21
+ var l = undefined && undefined.__classPrivateFieldGet || function(e, t, s, i) {
22
+ if (s === "a" && !i) throw new TypeError("Private accessor was defined without a getter");
23
+ if (typeof t === "function" ? e !== t || !i : !t.has(e)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
24
+ return s === "m" ? i : s === "a" ? i.call(e) : i ? i.value : t.get(e);
25
+ };
26
+
27
+ var d = undefined && undefined.__classPrivateFieldSet || function(e, t, s, i, a) {
28
+ if (i === "m") throw new TypeError("Private method is not writable");
29
+ if (i === "a" && !a) throw new TypeError("Private accessor was defined without a setter");
30
+ if (typeof t === "function" ? e !== t || !a : !t.has(e)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
31
+ return i === "a" ? a.call(e, s) : a ? a.value = s : t.set(e, s), s;
32
+ };
33
+
34
+ var h, c, u, f, p, v, m, w, b, g, y, k, M;
35
+
36
+ const x = [ "resets/box-sizing", "components/tab", "components/tooltip", "utils/form--full", "utils/layout", "utils/typography", "utils/spacing", "chameleon/scrollbar" ];
37
+
38
+ const W = class {
39
+ constructor(s) {
40
+ e(this, s);
41
+ /**
42
+ * The component hard-coded strings translations.
43
+ */
44
+ // eslint-disable-next-line @stencil-community/own-props-must-be-private
45
+ h.set(this, void 0);
46
+ c.set(this, void 0);
47
+ u.set(this, void 0);
48
+ f.set(this, void 0);
49
+ p.set(this, (() => {
50
+ this.cancelCallback();
51
+ }));
52
+ v.set(this, (async () => {
53
+ this.connectCallback(this.gxServerConnectionData).then((e => {
54
+ this.validatableControls = o(e, this.validatableControls);
55
+ }));
56
+ }));
57
+ // TODO: evaluate if this should be a global helper function.
58
+ // It is used on other dialogs as well.
59
+ m.set(this, (e => {
60
+ var s, i, n;
61
+ return ((i = (s = this.validatableControls) === null || s === void 0 ? void 0 : s.get(e === null || e === void 0 ? void 0 : e.id)) === null || i === void 0 ? void 0 : i.hasError) && ((n = this.validatableControls.get(e.id)) === null || n === void 0 ? void 0 : n.message) && t("ch-tooltip", {
62
+ class: "tooltip",
63
+ actionElement: e,
64
+ blockAlign: a.tooltipSettings.blockAlign,
65
+ inlineAlign: a.tooltipSettings.inlineAlign,
66
+ delay: a.tooltipSettings.delay
67
+ }, this.validatableControls.get(e.id).message);
68
+ }));
69
+ w.set(this, (() => {
70
+ var e, t, s, i, a, n, o, r;
71
+ this.authenticationTypesChanged(this.authenticationTypes);
72
+ this.serverUrlsChanged(this.serverUrls);
73
+ // set initial values:
74
+ // server url
75
+ this.gxServerConnectionData.serverUrl = ((e = this.defaultConnectionData) === null || e === void 0 ? void 0 : e.serverUrl) || ((t = this.serverUrlsComboBoxModel[0]) === null || t === void 0 ? void 0 : t.value);
76
+ // authentication type
77
+ this.gxServerConnectionData.authenticationType = {
78
+ id: ((s = this.defaultConnectionData) === null || s === void 0 ? void 0 : s.authenticationType.id) || ((i = this.authenticationTypesComboBoxModel[0]) === null || i === void 0 ? void 0 : i.value),
79
+ name: ((a = this.defaultConnectionData) === null || a === void 0 ? void 0 : a.authenticationType.name) || ((n = this.authenticationTypesComboBoxModel[0]) === null || n === void 0 ? void 0 : n.caption)
80
+ };
81
+ // user name
82
+ this.gxServerConnectionData.userName = (o = this.defaultConnectionData) === null || o === void 0 ? void 0 : o.userName;
83
+ this.gxServerConnectionData.userPassword = (r = this.defaultConnectionData) === null || r === void 0 ? void 0 : r.userPassword;
84
+ }));
85
+ b.set(this, (() => {
86
+ // populate #controlsValidation with the controls that could have errors.
87
+ const e = [ l(this, c, "f"), l(this, u, "f"), l(this, f, "f") ];
88
+ e.forEach((e => {
89
+ if (e.id) {
90
+ this.validatableControls.set(e.id, {
91
+ reference: e,
92
+ hasError: false,
93
+ message: undefined
94
+ });
95
+ }
96
+ }));
97
+ }));
98
+ // handlers that update this.gxServerConnectionData:
99
+ g.set(this, (e => {
100
+ this.gxServerConnectionData.serverUrl = e.detail;
101
+ }));
102
+ y.set(this, (e => {
103
+ const t = e.detail;
104
+ const s = this.authenticationTypes.findIndex((e => e.id === t));
105
+ const i = this.authenticationTypes[s].name;
106
+ this.gxServerConnectionData.authenticationType = {
107
+ id: t,
108
+ name: i
109
+ };
110
+ }));
111
+ k.set(this, (e => {
112
+ this.gxServerConnectionData.userName = e.detail;
113
+ }));
114
+ M.set(this, (e => {
115
+ this.gxServerConnectionData.userPassword = e.detail;
116
+ }));
117
+ this.authenticationTypesComboBoxModel = undefined;
118
+ this.gxServerConnectionData = {
119
+ authenticationType: {
120
+ id: null,
121
+ name: null
122
+ },
123
+ serverUrl: null,
124
+ userName: null,
125
+ userPassword: null
126
+ };
127
+ this.serverUrlsComboBoxModel = undefined;
128
+ this.validatableControls = new Map;
129
+ this.authenticationTypes = undefined;
130
+ this.cancelCallback = undefined;
131
+ this.connectCallback = undefined;
132
+ this.defaultConnectionData = undefined;
133
+ this.enableCustomServer = false;
134
+ this.serverUrls = undefined;
135
+ }
136
+ authenticationTypesChanged(e) {
137
+ if (e === null || e === void 0 ? void 0 : e.length) {
138
+ this.authenticationTypesComboBoxModel = mapAuthenticationTypeToComboBoxModel(e);
139
+ }
140
+ }
141
+ serverUrlsChanged(e) {
142
+ if (e === null || e === void 0 ? void 0 : e.length) {
143
+ this.serverUrlsComboBoxModel = mapServerUrlsToComboBoxModel(e);
144
+ }
145
+ }
146
+ async componentWillLoad() {
147
+ d(this, h, await n.getComponentStrings(this.el), "f");
148
+ l(this, w, "f").call(this);
149
+ }
150
+ async componentDidLoad() {
151
+ l(this, b, "f").call(this);
152
+ }
153
+ render() {
154
+ var e, i, a, n;
155
+ return t(s, {
156
+ class: "widget"
157
+ }, t("ch-theme", {
158
+ model: x
159
+ }), t("section", {
160
+ class: "section"
161
+ }, t("div", {
162
+ class: "main field-group spacing-body"
163
+ }, t("div", {
164
+ // server urls
165
+ class: "field field-block server-url"
166
+ }, t("label", {
167
+ class: "label",
168
+ htmlFor: "server-url"
169
+ }, l(this, h, "f").main.serverURLLabel), t("ch-combo-box-render", {
170
+ id: "server-url",
171
+ class: "combo-box",
172
+ accessibleName: "Server Url",
173
+ model: this.serverUrlsComboBoxModel,
174
+ placeholder: "Select a server URL",
175
+ value: (e = this.gxServerConnectionData) === null || e === void 0 ? void 0 : e.serverUrl,
176
+ onInput: l(this, g, "f"),
177
+ suggest: this.enableCustomServer,
178
+ suggestOptions: {
179
+ alreadyProcessed: true,
180
+ autoExpand: false,
181
+ hideMatchesAndShowNonMatches: false,
182
+ highlightMatchedItems: false,
183
+ matchCase: false,
184
+ regularExpression: false,
185
+ renderActiveItemIconOnExpand: true,
186
+ strict: false
187
+ },
188
+ ref: e => d(this, f, e, "f")
189
+ }), l(this, m, "f").call(this, l(this, f, "f"))), t("div", {
190
+ // authentication types
191
+ class: "field field-block authentication-type"
192
+ }, t("label", {
193
+ class: "label",
194
+ htmlFor: "authentication-type"
195
+ }, l(this, h, "f").main.authenticationTypeLabel), t("ch-combo-box-render", {
196
+ id: "authentication-type",
197
+ class: "combo-box",
198
+ accessibleName: "Authentication Types",
199
+ model: this.authenticationTypesComboBoxModel,
200
+ placeholder: "Select an authentication type",
201
+ value: (i = this.gxServerConnectionData) === null || i === void 0 ? void 0 : i.authenticationType.id,
202
+ onInput: l(this, y, "f")
203
+ })), t("div", {
204
+ // username
205
+ class: "field field-block user-name"
206
+ }, t("label", {
207
+ class: "label",
208
+ htmlFor: "username"
209
+ }, l(this, h, "f").main.usernameLabel), t("ch-edit", {
210
+ type: "text",
211
+ id: "username",
212
+ class: "input",
213
+ value: (a = this.gxServerConnectionData) === null || a === void 0 ? void 0 : a.userName,
214
+ onInput: l(this, k, "f"),
215
+ ref: e => d(this, c, e, "f")
216
+ }), l(this, m, "f").call(this, l(this, c, "f"))), t("div", {
217
+ // user password
218
+ class: "field field-block user-password"
219
+ }, t("label", {
220
+ class: "label",
221
+ htmlFor: "password"
222
+ }, l(this, h, "f").main.passwordLabel), t("ch-edit", {
223
+ type: "password",
224
+ id: "password",
225
+ class: "input",
226
+ value: (n = this.gxServerConnectionData) === null || n === void 0 ? void 0 : n.userPassword,
227
+ onInput: l(this, M, "f"),
228
+ ref: e => d(this, u, e, "f")
229
+ }), l(this, m, "f").call(this, l(this, u, "f")))), t("footer", {
230
+ class: "control-footer-with-border spacing-body"
231
+ }, t("div", {
232
+ class: "buttons-spacer"
233
+ }, t("button", {
234
+ // cancel button
235
+ class: "button-secondary",
236
+ onClick: l(this, p, "f")
237
+ }, l(this, h, "f").footer.cancelButtonCaption), t("button", {
238
+ // connect button
239
+ class: "button-primary",
240
+ onClick: l(this, v, "f")
241
+ }, l(this, h, "f").footer.connectButtonCaption)))));
242
+ }
243
+ static get assetsDirs() {
244
+ return [ "gx-ide-assets/connect-gx-server" ];
245
+ }
246
+ get el() {
247
+ return i(this);
248
+ }
249
+ static get watchers() {
250
+ return {
251
+ authenticationTypes: [ "authenticationTypesChanged" ],
252
+ serverUrls: [ "serverUrlsChanged" ]
253
+ };
254
+ }
255
+ };
256
+
257
+ h = new WeakMap, c = new WeakMap, u = new WeakMap, f = new WeakMap, p = new WeakMap,
258
+ v = new WeakMap, m = new WeakMap, w = new WeakMap, b = new WeakMap, g = new WeakMap,
259
+ y = new WeakMap, k = new WeakMap, M = new WeakMap;
260
+
261
+ W.style = r;
262
+
263
+ export { W as gx_ide_connect_gx_server };
264
+ //# sourceMappingURL=p-407c31c6.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["mapAuthenticationTypeToComboBoxModel","authenticationTypes","map","authenticationType","value","id","caption","name","mapServerUrlsToComboBoxModel","serverUrls","serverUrl","connectGxServerCss","CSS_BUNDLES","HTMLGxIdeConnectGxServer","_HTMLGxIdeConnectGxServer_componentLocale","set","this","_HTMLGxIdeConnectGxServer_usernameRef","_HTMLGxIdeConnectGxServer_passwordRef","_HTMLGxIdeConnectGxServer_serverUrlRef","_HTMLGxIdeConnectGxServer_cancelClickHandler","cancelCallback","_HTMLGxIdeConnectGxServer_connectClickHandler","async","connectCallback","gxServerConnectionData","then","formSubmitResult","validatableControls","validateControls","_HTMLGxIdeConnectGxServer_evaluateTooltipRender","controlReference","_b","_a","get","hasError","_c","message","h","class","actionElement","blockAlign","config","tooltipSettings","inlineAlign","delay","_HTMLGxIdeConnectGxServer_init","authenticationTypesChanged","serverUrlsChanged","defaultConnectionData","serverUrlsComboBoxModel","_d","authenticationTypesComboBoxModel","_e","_f","userName","_g","userPassword","_h","_HTMLGxIdeConnectGxServer_initializeValidatableControls","__classPrivateFieldGet","forEach","validatableControl","reference","undefined","_HTMLGxIdeConnectGxServer_serverUrlInputEventHandler","event","detail","_HTMLGxIdeConnectGxServer_authenticationInputEventHandler","authenticationTypeId","authenticationTypeIndex","findIndex","authType","authenticationTypeName","_HTMLGxIdeConnectGxServer_usernameInputEventHandler","_HTMLGxIdeConnectGxServer_passwordInputEventHandler","Map","newAuthenticationTypes","length","newServerUrls","componentWillLoad","__classPrivateFieldSet","Locale","getComponentStrings","el","call","componentDidLoad","render","Host","model","htmlFor","main","serverURLLabel","accessibleName","placeholder","onInput","suggest","enableCustomServer","suggestOptions","alreadyProcessed","autoExpand","hideMatchesAndShowNonMatches","highlightMatchedItems","matchCase","regularExpression","renderActiveItemIconOnExpand","strict","ref","authenticationTypeLabel","usernameLabel","type","passwordLabel","onClick","footer","cancelButtonCaption","connectButtonCaption"],"sources":["src/components/team-dev/connect-gx-server/helpers.ts","src/components/team-dev/connect-gx-server/connect-gx-server.scss?tag=gx-ide-connect-gx-server&encapsulation=shadow","src/components/team-dev/connect-gx-server/connect-gx-server.tsx"],"sourcesContent":["import { AuthenticationType } from \"./connect-gx-server\";\nimport { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\n\nexport const mapAuthenticationTypeToComboBoxModel = (\n authenticationTypes: AuthenticationType[]\n): ComboBoxModel => {\n return authenticationTypes.map(authenticationType => {\n return {\n value: authenticationType.id,\n caption: authenticationType.name\n };\n });\n};\n\nexport const mapServerUrlsToComboBoxModel = (\n serverUrls: string[]\n): ComboBoxModel => {\n return serverUrls.map(serverUrl => {\n return {\n value: serverUrl,\n caption: serverUrl\n };\n });\n};\n",":host {\n display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-rows: 1fr max-content;\n}\n\n.main {\n display: grid;\n grid-template-areas:\n \"server-url server-url\"\n \"authentication-type .\"\n \"user-name user-password\";\n grid-auto-rows: max-content;\n grid-template-columns: 1fr 1fr;\n}\n\n.section {\n display: contents;\n}\n\n.authentication-type {\n grid-area: authentication-type;\n}\n.server-url {\n grid-area: server-url;\n}\n.user-name {\n grid-area: user-name;\n}\n.user-password {\n grid-area: user-password;\n}\n","// Stencil\nimport { Component, Host, h, Prop, Element, State, Watch } from \"@stencil/core\";\n\n// Other Libraries\nimport { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { MercuryBundles } from \"@genexus/mercury\";\n\n// Custom Imports\nimport { config } from \"../../../common/config\";\nimport {\n mapAuthenticationTypeToComboBoxModel,\n mapServerUrlsToComboBoxModel\n} from \"./helpers\";\nimport { Locale } from \"../../../common/locale\";\nimport { FormSubmitResult } from \"../../../common/types\";\nimport {\n ControlValidation,\n validateControls\n} from \"../../../common/form-validation\";\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\n@Component({\n tag: \"gx-ide-connect-gx-server\",\n styleUrl: \"connect-gx-server.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/connect-gx-server\"]\n})\nexport class HTMLGxIdeConnectGxServer {\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n\n @Element() el: HTMLGxIdeConnectGxServerElement;\n #usernameRef!: HTMLChEditElement;\n #passwordRef!: HTMLChEditElement;\n #serverUrlRef!: HTMLChComboBoxRenderElement;\n\n @State() authenticationTypesComboBoxModel: ComboBoxModel;\n @State() gxServerConnectionData: GXServerConnectionData = {\n authenticationType: {\n id: null,\n name: null\n },\n serverUrl: null,\n userName: null,\n userPassword: null\n };\n @State() serverUrlsComboBoxModel: ComboBoxModel;\n @State() validatableControls = new Map<string, ControlValidation>();\n\n /**\n * List of authentication types.\n */\n @Prop() readonly authenticationTypes!: AuthenticationType[];\n @Watch(\"authenticationTypes\")\n authenticationTypesChanged(newAuthenticationTypes: AuthenticationType[]) {\n if (newAuthenticationTypes?.length) {\n this.authenticationTypesComboBoxModel =\n mapAuthenticationTypeToComboBoxModel(newAuthenticationTypes);\n }\n }\n\n /**\n * Callback that must be invoked when the 'Cancel' button is pressed.\n */\n @Prop() readonly cancelCallback!: () => Promise<void>;\n\n /**\n * Callback that must be invoked when the 'Connect' button is pressed.\n */\n @Prop() readonly connectCallback!: (\n data: GXServerConnectionData\n ) => Promise<FormSubmitResult>;\n\n /**\n * Initial user values ​​for the case in which the user returns to the login modal after successful authentication.\n */\n @Prop() readonly defaultConnectionData?: GXServerConnectionData;\n\n /**\n * true if the user should be allowed to manually enter a server URL.\n */\n @Prop() readonly enableCustomServer: boolean = false;\n\n /**\n * Array of cataloged server URLs to be displayed in the combo.\n */\n @Prop() readonly serverUrls: string[];\n @Watch(\"serverUrls\")\n serverUrlsChanged(newServerUrls: string[]) {\n if (newServerUrls?.length) {\n this.serverUrlsComboBoxModel =\n mapServerUrlsToComboBoxModel(newServerUrls);\n }\n }\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n\n this.#init();\n }\n\n async componentDidLoad() {\n this.#initializeValidatableControls();\n }\n\n #cancelClickHandler = () => {\n this.cancelCallback();\n };\n\n #connectClickHandler = async () => {\n this.connectCallback(this.gxServerConnectionData).then(\n (formSubmitResult: FormSubmitResult) => {\n this.validatableControls = validateControls(\n formSubmitResult,\n this.validatableControls\n );\n }\n );\n };\n\n // TODO: evaluate if this should be a global helper function.\n // It is used on other dialogs 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 #init = () => {\n this.authenticationTypesChanged(this.authenticationTypes);\n this.serverUrlsChanged(this.serverUrls);\n // set initial values:\n // server url\n this.gxServerConnectionData.serverUrl =\n this.defaultConnectionData?.serverUrl ||\n this.serverUrlsComboBoxModel[0]?.value;\n // authentication type\n this.gxServerConnectionData.authenticationType = {\n id:\n (this.defaultConnectionData?.authenticationType.id as string) ||\n this.authenticationTypesComboBoxModel[0]?.value,\n name:\n (this.defaultConnectionData?.authenticationType.name as string) ||\n this.authenticationTypesComboBoxModel[0]?.caption\n };\n\n // user name\n this.gxServerConnectionData.userName = this.defaultConnectionData?.userName;\n this.gxServerConnectionData.userPassword =\n this.defaultConnectionData?.userPassword;\n };\n\n #initializeValidatableControls = () => {\n // populate #controlsValidation with the controls that could have errors.\n const validatableControls: HTMLElement[] = [\n this.#usernameRef,\n this.#passwordRef,\n this.#serverUrlRef\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 // handlers that update this.gxServerConnectionData:\n #serverUrlInputEventHandler = (event: CustomEvent<string> | InputEvent) => {\n this.gxServerConnectionData.serverUrl = event.detail as string;\n };\n #authenticationInputEventHandler = (\n event: CustomEvent<string> | InputEvent\n ) => {\n const authenticationTypeId = event.detail as string;\n const authenticationTypeIndex = this.authenticationTypes.findIndex(\n authType => {\n return authType.id === authenticationTypeId;\n }\n );\n const authenticationTypeName =\n this.authenticationTypes[authenticationTypeIndex].name;\n\n this.gxServerConnectionData.authenticationType = {\n id: authenticationTypeId,\n name: authenticationTypeName\n };\n };\n #usernameInputEventHandler = (event: CustomEvent<string> | InputEvent) => {\n this.gxServerConnectionData.userName = event.detail as string;\n };\n #passwordInputEventHandler = (event: CustomEvent<string> | InputEvent) => {\n this.gxServerConnectionData.userPassword = event.detail as string;\n };\n\n render() {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n\n <section class=\"section\">\n <div class=\"main field-group spacing-body\">\n <div\n // server urls\n class=\"field field-block server-url\"\n >\n <label class=\"label\" htmlFor=\"server-url\">\n {this.#componentLocale.main.serverURLLabel}\n </label>\n <ch-combo-box-render\n id=\"server-url\"\n class=\"combo-box\"\n accessibleName=\"Server Url\"\n model={this.serverUrlsComboBoxModel}\n placeholder=\"Select a server URL\"\n value={this.gxServerConnectionData?.serverUrl}\n onInput={this.#serverUrlInputEventHandler}\n suggest={this.enableCustomServer}\n suggestOptions={{\n alreadyProcessed: true,\n autoExpand: false,\n hideMatchesAndShowNonMatches: false,\n highlightMatchedItems: false,\n matchCase: false,\n regularExpression: false,\n renderActiveItemIconOnExpand: true,\n strict: false\n }}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#serverUrlRef = el as HTMLChComboBoxRenderElement)\n }\n ></ch-combo-box-render>\n {this.#evaluateTooltipRender(this.#serverUrlRef)}\n </div>\n\n <div\n // authentication types\n class=\"field field-block authentication-type\"\n >\n <label class=\"label\" htmlFor=\"authentication-type\">\n {this.#componentLocale.main.authenticationTypeLabel}\n </label>\n <ch-combo-box-render\n id=\"authentication-type\"\n class=\"combo-box\"\n accessibleName=\"Authentication Types\"\n model={this.authenticationTypesComboBoxModel}\n placeholder=\"Select an authentication type\"\n value={this.gxServerConnectionData?.authenticationType.id}\n onInput={this.#authenticationInputEventHandler}\n ></ch-combo-box-render>\n </div>\n\n <div\n // username\n class=\"field field-block user-name\"\n >\n <label class=\"label\" htmlFor=\"username\">\n {this.#componentLocale.main.usernameLabel}\n </label>\n <ch-edit\n type=\"text\"\n id=\"username\"\n class=\"input\"\n value={this.gxServerConnectionData?.userName}\n onInput={this.#usernameInputEventHandler}\n ref={(el: HTMLChEditElement) =>\n (this.#usernameRef = el as HTMLChEditElement)\n }\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#usernameRef)}\n </div>\n\n <div\n // user password\n class=\"field field-block user-password\"\n >\n <label class=\"label\" htmlFor=\"password\">\n {this.#componentLocale.main.passwordLabel}\n </label>\n <ch-edit\n type=\"password\"\n id=\"password\"\n class=\"input\"\n value={this.gxServerConnectionData?.userPassword}\n onInput={this.#passwordInputEventHandler}\n ref={(el: HTMLChEditElement) =>\n (this.#passwordRef = el as HTMLChEditElement)\n }\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#passwordRef)}\n </div>\n </div>\n\n <footer class=\"control-footer-with-border spacing-body\">\n <div class=\"buttons-spacer\">\n <button\n // cancel button\n class=\"button-secondary\"\n onClick={this.#cancelClickHandler}\n >\n {this.#componentLocale.footer.cancelButtonCaption}\n </button>\n\n <button\n // connect button\n class=\"button-primary\"\n onClick={this.#connectClickHandler}\n >\n {this.#componentLocale.footer.connectButtonCaption}\n </button>\n </div>\n </footer>\n </section>\n </Host>\n );\n }\n}\n\nexport type GXServerConnectionData = {\n authenticationType: AuthenticationType;\n serverUrl: string;\n userName: string;\n userPassword: string;\n};\n\nexport type AuthenticationType = {\n id: string;\n name: string;\n};\n"],"mappings":"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"}
@@ -8,7 +8,7 @@ import { r, m as h } from "./p-014916d7.js";
8
8
 
9
9
  import { g as d } from "./p-3ef5a5a6.js";
10
10
 
11
- import { v as c } from "./p-b8624c0b.js";
11
+ import { v as c } from "./p-289c3290.js";
12
12
 
13
13
  import { r as l } from "./p-1252519a.js";
14
14
 
@@ -27,7 +27,7 @@ var p = undefined && undefined.__classPrivateFieldSet || function(t, e, i, s, n)
27
27
  return s === "a" ? n.call(t, i) : n ? n.value = i : e.set(t, i), i;
28
28
  };
29
29
 
30
- var b, m, v, g, w, k, _, y, M, W, x, C, j, E, S, I, T, z, F, A, D, L, P, H, R, V, q, B, G, J;
30
+ var m, b, v, g, w, k, _, y, M, W, x, C, j, E, S, I, T, z, F, A, D, L, P, H, R, V, q, B, G, J;
31
31
 
32
32
  const K = [
33
33
  // TODO: review if "utils/form--full" is required.
@@ -44,8 +44,8 @@ const U = "advanced";
44
44
  const X = class {
45
45
  constructor(s) {
46
46
  t(this, s);
47
- b.set(this, false);
48
- m.set(this, void 0);
47
+ m.set(this, false);
48
+ b.set(this, void 0);
49
49
  v.set(this, false);
50
50
  /**
51
51
  * frontEndsState saves the id's of the front ends checkboxes that are checked
@@ -291,9 +291,9 @@ const X = class {
291
291
  u(this, F, "f").call(this);
292
292
  }
293
293
  componentDidRender() {
294
- if (this.advancedTabIsVisible && !u(this, b, "f")) {
294
+ if (this.advancedTabIsVisible && !u(this, m, "f")) {
295
295
  // just call this once.
296
- p(this, b, true, "f");
296
+ p(this, m, true, "f");
297
297
  }
298
298
  }
299
299
  async componentWillLoad() {
@@ -311,9 +311,9 @@ const X = class {
311
311
  * Suspends or reactivates the shortcuts
312
312
  */ async suspendShortcuts(t) {
313
313
  if (t) {
314
- u(this, m, "f").suspend = true;
314
+ u(this, b, "f").suspend = true;
315
315
  } else {
316
- u(this, m, "f").suspend = false;
316
+ u(this, b, "f").suspend = false;
317
317
  }
318
318
  }
319
319
  render() {
@@ -323,7 +323,7 @@ const X = class {
323
323
  model: K
324
324
  }), i("ch-shortcuts", {
325
325
  src: u(this, y, "f"),
326
- ref: t => p(this, m, t, "f")
326
+ ref: t => p(this, b, t, "f")
327
327
  }), i("section", {
328
328
  class: "section"
329
329
  }, i("header", {
@@ -421,7 +421,7 @@ const X = class {
421
421
  }
422
422
  };
423
423
 
424
- b = new WeakMap, m = new WeakMap, v = new WeakMap, g = new WeakMap, w = new WeakMap,
424
+ m = new WeakMap, b = new WeakMap, v = new WeakMap, g = new WeakMap, w = new WeakMap,
425
425
  k = new WeakMap, _ = new WeakMap, y = new WeakMap, M = new WeakMap, W = new WeakMap,
426
426
  x = new WeakMap, C = new WeakMap, j = new WeakMap, E = new WeakMap, S = new WeakMap,
427
427
  I = new WeakMap, T = new WeakMap, z = new WeakMap, F = new WeakMap, A = new WeakMap,
@@ -431,4 +431,4 @@ V = new WeakMap, q = new WeakMap, B = new WeakMap, G = new WeakMap, J = new Weak
431
431
  X.style = f;
432
432
 
433
433
  export { X as gx_ide_new_environment };
434
- //# sourceMappingURL=p-3adbc04c.entry.js.map
434
+ //# sourceMappingURL=p-4cbaa118.entry.js.map
@@ -0,0 +1,88 @@
1
+ import { r as e, h as s, g as r } from "./p-aaed592c.js";
2
+
3
+ import { L as a } from "./p-74d59062.js";
4
+
5
+ import { h as o } from "./p-014916d7.js";
6
+
7
+ const i = ':host{font-family:var(--mer-font-family--primary)}.message{color:var(--mer-color__neutral-gray--100);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--sm) var(--mer-spacing--sm);border-radius:var(--mer-border__radius--sm);border-inline-start:var(--mer-border__width--md) solid transparent;background-color:var(--mer-color__neutral-gray--1200);margin-block-start:var(--mer-spacing--xs)}.message__role{display:inline-block;font-weight:var(--mer-font__weight--semi-bold);margin-block-end:var(--mer-spacing--xs);display:inline-grid;grid-template-columns:max-content max-content;gap:6px}.message__role:before{content:"";display:grid;place-self:center flex-end;inline-size:4px;block-size:4px;border-radius:50%;background-color:currentcolor}.message__role--user{color:var(--mer-color__primary--300)}.message__role--hidden{display:none}.message__caption{font-size:var(--mer-font__size--xs);line-height:var(--mer-line-height--regular);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:rgba(91, 167, 255, 0.08);border-color:var(--mer-border-color__primary)}.message--assistant-action .message__inner-wrapper{background-color:rgba(63, 168, 155, 0.05);border-color:var(--mer-border-color__success)}.message--assistant-chat .message__inner-wrapper{background-color:var(--mer-surface__elevation--01)}.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:rgba(251, 124, 132, 0.05);border-color:var(--mer-border-color__error)}.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)}';
8
+
9
+ const t = class {
10
+ constructor(s) {
11
+ e(this, s);
12
+ this.copyable = false;
13
+ // 7.LISTENERS //
14
+ // 8.PUBLIC METHODS API //
15
+ // 9.LOCAL METHODS //
16
+ this.evaluateMessageIsCopyable = () => {
17
+ this.copyable = this.messageType !== "assistant-in-progress" && this.messageType !== "assistant-action";
18
+ };
19
+ this.visible = false;
20
+ this.showCopiedMessage = false;
21
+ this.message = undefined;
22
+ this.messageType = undefined;
23
+ this.filterValue = undefined;
24
+ this.hidden = undefined;
25
+ this.translations = undefined;
26
+ }
27
+ // 5.EVENTS (EMIT) //
28
+ // 6.COMPONENT LIFECYCLE METHODS //
29
+ async componentWillLoad() {
30
+ this._componentLocale = await a.getComponentStrings(this.el);
31
+ this.evaluateMessageIsCopyable();
32
+ }
33
+ componentDidRender() {
34
+ setTimeout((() => {
35
+ /* Without the timeout it appears instantly (no apparent transition)*/
36
+ this.visible = true;
37
+ const e = this.el.parentElement;
38
+ e.scrollTo(0, 0);
39
+ }), 0);
40
+ }
41
+ // 10.RENDER() FUNCTION //
42
+ render() {
43
+ return s("li", {
44
+ class: {
45
+ message: true,
46
+ "message--visible": this.visible && !this.hidden,
47
+ [`message--${[ this.messageType ]}`]: true,
48
+ "message--assistant": this.messageType !== "user",
49
+ "message--copyable": this.copyable,
50
+ "message--copying": this.showCopiedMessage
51
+ }
52
+ }, s("div", {
53
+ class: "message__outer-wrapper"
54
+ }, s("div", {
55
+ class: {
56
+ "message__inner-wrapper": true
57
+ }
58
+ }, this.messageType === "user" ? s("span", {
59
+ class: "message__role message__role--user"
60
+ }, this._componentLocale.you) : s("span", {
61
+ class: {
62
+ message__role: this.messageType !== "assistant-in-progress",
63
+ "message__role--hidden": this.messageType === "assistant-in-progress",
64
+ "message__role--assistant": true
65
+ }
66
+ }, this._componentLocale.assistant), s("div", {
67
+ class: {
68
+ message__caption: true,
69
+ "message__caption--in-progress": this.messageType === "assistant-in-progress"
70
+ }
71
+ }, o(this.message, this.filterValue)), this.messageType === "assistant-in-progress" ? s("div", {
72
+ class: "animation-wrapper"
73
+ }, s("div", {
74
+ class: "dot-pulse"
75
+ })) : null)));
76
+ }
77
+ static get assetsDirs() {
78
+ return [ "gx-ide-assets/ai-message" ];
79
+ }
80
+ get el() {
81
+ return r(this);
82
+ }
83
+ };
84
+
85
+ t.style = i;
86
+
87
+ export { t as gx_ide_ai_message };
88
+ //# sourceMappingURL=p-673480ac.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["aiMessageCss","GxIdeAiMessage","this","copyable","evaluateMessageIsCopyable","messageType","componentWillLoad","_componentLocale","Locale","getComponentStrings","el","componentDidRender","setTimeout","visible","messagesList","parentElement","scrollTo","render","h","class","message","hidden","showCopiedMessage","you","message__role","assistant","message__caption","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--100);\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--sm) var(--mer-spacing--sm);\n border-radius: var(--mer-border__radius--sm);\n border-inline-start: var(--mer-border__width--md) solid transparent;\n background-color: var(--mer-color__neutral-gray--1200);\n margin-block-start: var(--mer-spacing--xs);\n }\n &__role {\n display: inline-block;\n font-weight: var(--mer-font__weight--semi-bold);\n margin-block-end: var(--mer-spacing--xs);\n display: inline-grid;\n grid-template-columns: max-content max-content;\n gap: 6px;\n &:before {\n content: \"\";\n display: grid;\n place-self: center flex-end;\n inline-size: 4px;\n block-size: 4px;\n border-radius: 50%;\n background-color: currentcolor;\n }\n\n &--user {\n color: var(--mer-color__primary--300);\n }\n &--assistant {\n }\n &--hidden {\n display: none;\n }\n }\n &__caption {\n font-size: var(--mer-font__size--xs);\n line-height: var(--mer-line-height--regular);\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: rgba(91, 167, 255, 0.08);\n border-color: var(--mer-border-color__primary);\n }\n }\n &--assistant-action {\n .message__inner-wrapper {\n background-color: rgba(63, 168, 155, 0.05);\n border-color: var(--mer-border-color__success);\n }\n }\n &--assistant-chat {\n .message__inner-wrapper {\n background-color: var(--mer-surface__elevation--01);\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: rgba(251, 124, 132, 0.05);\n border-color: var(--mer-border-color__error);\n }\n }\n &--copyable {\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 { Locale } from \"../../common/locale\";\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 _componentLocale: any;\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._componentLocale = await Locale.getComponentStrings(this.el);\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 // 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 >\n <div class=\"message__outer-wrapper\">\n <div\n class={{\n \"message__inner-wrapper\": true\n }}\n >\n {this.messageType === \"user\" ? (\n <span class=\"message__role message__role--user\">\n {this._componentLocale.you}\n </span>\n ) : (\n <span\n class={{\n \"message__role\": this.messageType !== \"assistant-in-progress\",\n \"message__role--hidden\":\n this.messageType === \"assistant-in-progress\",\n \"message__role--assistant\": true\n }}\n >\n {this._componentLocale.assistant}\n </span>\n )}\n <div\n class={{\n \"message__caption\": true,\n \"message__caption--in-progress\":\n this.messageType === \"assistant-in-progress\"\n }}\n >\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;;MCcRC,IAAc;;;IAmBjBC,KAAAC,WAAW;;;;QAqEXD,KAAAE,4BAA4B;MAClCF,KAAKC,WACHD,KAAKG,gBAAgB,2BACrBH,KAAKG,gBAAgB;AAAkB;mBA7DxB;6BAKU;;;;;;;;;EAiC7B,uBAAMC;IACJJ,KAAKK,yBAAyBC,EAAOC,oBAAoBP,KAAKQ;IAC9DR,KAAKE;;EAGP,kBAAAO;IACEC,YAAW;;MAETV,KAAKW,UAAU;MACf,MAAMC,IAAeZ,KAAKQ,GAAGK;MAC7BD,EAAaE,SAAS,GAAG;AAAE,QAC1B;;;EAiBL,MAAAC;IACE,OACEC,EAAA;MACEC,OAAO;QACLC,SAAW;QACX,oBAAoBlB,KAAKW,YAAYX,KAAKmB;QAC1C,CAAC,YAAY,EAACnB,KAAKG,kBAAiB;QACpC,sBAAsBH,KAAKG,gBAAgB;QAC3C,qBAAqBH,KAAKC;QAC1B,oBAAoBD,KAAKoB;;OAG3BJ,EAAA;MAAKC,OAAM;OACTD,EAAA;MACEC,OAAO;QACL,0BAA0B;;OAG3BjB,KAAKG,gBAAgB,SACpBa,EAAA;MAAMC,OAAM;OACTjB,KAAKK,iBAAiBgB,OAGzBL,EAAA;MACEC,OAAO;QACLK,eAAiBtB,KAAKG,gBAAgB;QACtC,yBACEH,KAAKG,gBAAgB;QACvB,4BAA4B;;OAG7BH,KAAKK,iBAAiBkB,YAG3BP,EAAA;MACEC,OAAO;QACLO,kBAAoB;QACpB,iCACExB,KAAKG,gBAAgB;;OAGxBsB,EAAOzB,KAAKkB,SAASlB,KAAK0B,eAE5B1B,KAAKG,gBAAgB,0BACpBa,EAAA;MAAKC,OAAM;OACTD,EAAA;MAAKC,OAAM;UAEX"}