@genexus/genexus-ide-ui 1.0.13 → 1.0.14

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 (144) hide show
  1. package/dist/cjs/form-validation-df39cabb.js +56 -0
  2. package/dist/cjs/form-validation-df39cabb.js.map +1 -0
  3. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  4. package/dist/cjs/gx-ide-ai-message.cjs.entry.js +1 -1
  5. package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js +2 -2
  6. package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js.map +1 -1
  7. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +3 -3
  8. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js.map +1 -1
  9. package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js +1 -1
  10. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +1 -1
  11. package/dist/cjs/gx-ide-new-environment.cjs.entry.js +274 -147
  12. package/dist/cjs/gx-ide-new-environment.cjs.entry.js.map +1 -1
  13. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +41 -87
  14. package/dist/cjs/gx-ide-new-kb.cjs.entry.js.map +1 -1
  15. package/dist/cjs/gx-ide-object-selector.cjs.entry.js +1 -1
  16. package/dist/cjs/gx-ide-recent-news.cjs.entry.js +1 -1
  17. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +2 -2
  18. package/dist/cjs/gx-ide-share-kb.cjs.entry.js.map +1 -1
  19. package/dist/cjs/gx-ide-start-page.cjs.entry.js +1 -1
  20. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +1 -1
  21. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +1 -1
  22. package/dist/cjs/gx-ide-ww-images.cjs.entry.js +1 -1
  23. package/dist/cjs/{helpers-be14ea67.js → helpers-74cf5c16.js} +9 -35
  24. package/dist/cjs/helpers-74cf5c16.js.map +1 -0
  25. package/dist/cjs/loader.cjs.js +1 -1
  26. package/dist/collection/common/helpers.js +6 -18
  27. package/dist/collection/common/helpers.js.map +1 -1
  28. package/dist/collection/components/connect-gx-server/connect-gx-server.js +1 -1
  29. package/dist/collection/components/connect-gx-server/connect-gx-server.js.map +1 -1
  30. package/dist/collection/components/create-kb-from-server/create-kb-from-server.js +1 -1
  31. package/dist/collection/components/create-kb-from-server/create-kb-from-server.js.map +1 -1
  32. package/dist/collection/components/new-environment/gx-ide-assets/new-environment/langs/new-environment.lang.en.json +4 -1
  33. package/dist/collection/components/new-environment/gx-ide-assets/new-environment/langs/new-environment.lang.ja.json +5 -2
  34. package/dist/collection/components/new-environment/helpers.js +11 -0
  35. package/dist/collection/components/new-environment/helpers.js.map +1 -0
  36. package/dist/collection/components/new-environment/new-environment.css +37 -658
  37. package/dist/collection/components/new-environment/new-environment.js +316 -214
  38. package/dist/collection/components/new-environment/new-environment.js.map +1 -1
  39. package/dist/collection/components/new-kb/helpers.js +0 -5
  40. package/dist/collection/components/new-kb/helpers.js.map +1 -1
  41. package/dist/collection/components/new-kb/new-kb.css +34 -11
  42. package/dist/collection/components/new-kb/new-kb.js +33 -40
  43. package/dist/collection/components/new-kb/new-kb.js.map +1 -1
  44. package/dist/collection/components/share-kb/share-kb.js +1 -1
  45. package/dist/collection/components/share-kb/share-kb.js.map +1 -1
  46. package/dist/components/form-validation.js +53 -0
  47. package/dist/components/form-validation.js.map +1 -0
  48. package/dist/components/gx-ide-connect-gx-server.js +1 -1
  49. package/dist/components/gx-ide-connect-gx-server.js.map +1 -1
  50. package/dist/components/gx-ide-create-kb-from-server.js +1 -1
  51. package/dist/components/gx-ide-create-kb-from-server.js.map +1 -1
  52. package/dist/components/gx-ide-dashboard-home.js +1 -1
  53. package/dist/components/gx-ide-new-environment.js +289 -164
  54. package/dist/components/gx-ide-new-environment.js.map +1 -1
  55. package/dist/components/gx-ide-new-kb.js +35 -81
  56. package/dist/components/gx-ide-new-kb.js.map +1 -1
  57. package/dist/components/gx-ide-object-selector.js +1 -1
  58. package/dist/components/gx-ide-share-kb.js +1 -1
  59. package/dist/components/gx-ide-share-kb.js.map +1 -1
  60. package/dist/components/gx-ide-start-page.js +1 -1
  61. package/dist/components/gx-ide-team-dev-commit.js +1 -1
  62. package/dist/components/gx-ide-team-dev-update.js +1 -1
  63. package/dist/components/gx-ide-ww-images.js +1 -1
  64. package/dist/components/helpers.js +7 -33
  65. package/dist/components/helpers.js.map +1 -1
  66. package/dist/esm/form-validation-8b3f527c.js +53 -0
  67. package/dist/esm/form-validation-8b3f527c.js.map +1 -0
  68. package/dist/esm/genexus-ide-ui.js +1 -1
  69. package/dist/esm/gx-ide-ai-message.entry.js +1 -1
  70. package/dist/esm/gx-ide-connect-gx-server.entry.js +1 -1
  71. package/dist/esm/gx-ide-connect-gx-server.entry.js.map +1 -1
  72. package/dist/esm/gx-ide-create-kb-from-server.entry.js +1 -1
  73. package/dist/esm/gx-ide-create-kb-from-server.entry.js.map +1 -1
  74. package/dist/esm/gx-ide-dashboard-home.entry.js +1 -1
  75. package/dist/esm/gx-ide-kb-manager-import.entry.js +1 -1
  76. package/dist/esm/gx-ide-new-environment.entry.js +276 -149
  77. package/dist/esm/gx-ide-new-environment.entry.js.map +1 -1
  78. package/dist/esm/gx-ide-new-kb.entry.js +35 -81
  79. package/dist/esm/gx-ide-new-kb.entry.js.map +1 -1
  80. package/dist/esm/gx-ide-object-selector.entry.js +1 -1
  81. package/dist/esm/gx-ide-recent-news.entry.js +1 -1
  82. package/dist/esm/gx-ide-share-kb.entry.js +1 -1
  83. package/dist/esm/gx-ide-share-kb.entry.js.map +1 -1
  84. package/dist/esm/gx-ide-start-page.entry.js +1 -1
  85. package/dist/esm/gx-ide-team-dev-commit.entry.js +1 -1
  86. package/dist/esm/gx-ide-team-dev-update.entry.js +1 -1
  87. package/dist/esm/gx-ide-ww-images.entry.js +1 -1
  88. package/dist/esm/{helpers-05c62775.js → helpers-97d0509d.js} +8 -34
  89. package/dist/esm/helpers-97d0509d.js.map +1 -0
  90. package/dist/esm/loader.js +1 -1
  91. package/dist/genexus-ide-ui/genexus-ide-ui.css +2 -0
  92. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  93. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  94. package/dist/genexus-ide-ui/gx-ide-assets/new-environment/langs/new-environment.lang.en.json +4 -1
  95. package/dist/genexus-ide-ui/gx-ide-assets/new-environment/langs/new-environment.lang.ja.json +5 -2
  96. package/dist/genexus-ide-ui/{p-176e8d55.entry.js → p-3663c45f.entry.js} +2 -2
  97. package/dist/genexus-ide-ui/{p-ca842e11.entry.js → p-3c7371a8.entry.js} +2 -2
  98. package/dist/genexus-ide-ui/p-41ea711a.js +56 -0
  99. package/dist/genexus-ide-ui/p-41ea711a.js.map +1 -0
  100. package/dist/genexus-ide-ui/{p-55304f04.entry.js → p-4a8910cd.entry.js} +2 -2
  101. package/dist/genexus-ide-ui/p-4b6e1cf2.js +158 -0
  102. package/dist/genexus-ide-ui/p-4b6e1cf2.js.map +1 -0
  103. package/dist/genexus-ide-ui/{p-5c5abefc.entry.js → p-4bf55012.entry.js} +2 -2
  104. package/dist/genexus-ide-ui/p-4bf55012.entry.js.map +1 -0
  105. package/dist/genexus-ide-ui/p-51d5cc3d.entry.js +436 -0
  106. package/dist/genexus-ide-ui/p-51d5cc3d.entry.js.map +1 -0
  107. package/dist/genexus-ide-ui/{p-03a88768.entry.js → p-58409610.entry.js} +2 -2
  108. package/dist/genexus-ide-ui/{p-0fced96c.entry.js → p-7f08a5f8.entry.js} +2 -2
  109. package/dist/genexus-ide-ui/p-7f08a5f8.entry.js.map +1 -0
  110. package/dist/genexus-ide-ui/{p-6d0037f1.entry.js → p-7f4d8db5.entry.js} +2 -2
  111. package/dist/genexus-ide-ui/{p-6fa9ea04.entry.js → p-7f7d93b8.entry.js} +2 -2
  112. package/dist/genexus-ide-ui/{p-a2dad270.entry.js → p-89a7d88f.entry.js} +2 -2
  113. package/dist/genexus-ide-ui/p-89a7d88f.entry.js.map +1 -0
  114. package/dist/genexus-ide-ui/{p-e629ab16.entry.js → p-8ad301c4.entry.js} +2 -2
  115. package/dist/genexus-ide-ui/{p-a787b331.entry.js → p-90deeaa8.entry.js} +2 -2
  116. package/dist/genexus-ide-ui/{p-ab29274c.entry.js → p-92681e48.entry.js} +249 -295
  117. package/dist/genexus-ide-ui/p-92681e48.entry.js.map +1 -0
  118. package/dist/genexus-ide-ui/{p-de18e865.entry.js → p-f9a00f85.entry.js} +2 -2
  119. package/dist/types/common/helpers.d.ts +4 -3
  120. package/dist/types/components/new-environment/helpers.d.ts +4 -0
  121. package/dist/types/components/new-environment/new-environment.d.ts +33 -65
  122. package/dist/types/components/new-kb/helpers.d.ts +0 -2
  123. package/dist/types/components/new-kb/new-kb.d.ts +1 -2
  124. package/dist/types/components.d.ts +18 -45
  125. package/package.json +3 -3
  126. package/dist/cjs/helpers-be14ea67.js.map +0 -1
  127. package/dist/esm/helpers-05c62775.js.map +0 -1
  128. package/dist/genexus-ide-ui/p-0fced96c.entry.js.map +0 -1
  129. package/dist/genexus-ide-ui/p-14e6ef41.js +0 -171
  130. package/dist/genexus-ide-ui/p-14e6ef41.js.map +0 -1
  131. package/dist/genexus-ide-ui/p-5c5abefc.entry.js.map +0 -1
  132. package/dist/genexus-ide-ui/p-a2dad270.entry.js.map +0 -1
  133. package/dist/genexus-ide-ui/p-ab29274c.entry.js.map +0 -1
  134. package/dist/genexus-ide-ui/p-e146e456.entry.js +0 -342
  135. package/dist/genexus-ide-ui/p-e146e456.entry.js.map +0 -1
  136. /package/dist/genexus-ide-ui/{p-176e8d55.entry.js.map → p-3663c45f.entry.js.map} +0 -0
  137. /package/dist/genexus-ide-ui/{p-ca842e11.entry.js.map → p-3c7371a8.entry.js.map} +0 -0
  138. /package/dist/genexus-ide-ui/{p-55304f04.entry.js.map → p-4a8910cd.entry.js.map} +0 -0
  139. /package/dist/genexus-ide-ui/{p-03a88768.entry.js.map → p-58409610.entry.js.map} +0 -0
  140. /package/dist/genexus-ide-ui/{p-6d0037f1.entry.js.map → p-7f4d8db5.entry.js.map} +0 -0
  141. /package/dist/genexus-ide-ui/{p-6fa9ea04.entry.js.map → p-7f7d93b8.entry.js.map} +0 -0
  142. /package/dist/genexus-ide-ui/{p-e629ab16.entry.js.map → p-8ad301c4.entry.js.map} +0 -0
  143. /package/dist/genexus-ide-ui/{p-a787b331.entry.js.map → p-90deeaa8.entry.js.map} +0 -0
  144. /package/dist/genexus-ide-ui/{p-de18e865.entry.js.map → p-f9a00f85.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"new-kb.js","sourceRoot":"","sources":["../../../src/components/new-kb/new-kb.tsx"],"names":[],"mappings":"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","sourcesContent":["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 } from \"@genexus/mercury\";\n\nimport { config } from \"../../common/config\";\nimport { Locale } from \"../../common/locale\";\nimport { GxOption } from \"../../common/types\";\nimport { getSelectedItem } from \"../../common/common\";\nimport { FormSubmitResult } from \"../../common/types\";\nimport {\n ControlValidation,\n validateControls\n} from \"../../common/form-validation\";\nimport { getIconPath } from \"@genexus/mercury\";\nimport {\n mapOptionsToComboBoxItemModel,\n renderChCheckboxItems\n} from \"./helpers\";\nimport { TabModel, ComboBoxModel } from \"@genexus/chameleon-controls-library\";\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 \"chameleon/scrollbar\"\n];\n\nconst WINDOWS_AUTHENTICATION_VALUE: string = \"windows-authentication\";\nconst MAIN_SECTION_CLASSES: string = \"main\";\nconst BASIC_SECTION_PARENT_CLASSES: string =\n \"basic field-group spacing-body-inline\";\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 [key: string]: any;\n\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 #selectedFrontEndsIds: 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 #frontEndsEl!: HTMLDivElement;\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 @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 * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * It allows selecting multiple generators for the front end\n */\n @Prop({ mutable: true }) frontEnds!: GxOption[];\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.prototypingEnvironmentsInitialValue = getSelectedItem(newValue);\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.previousFrontEndsState = this.frontEnds;\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 componentDidLoad() {\n this.#initialSetup();\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 #getCheckboxValues() {\n // TODO (We shouldn't be using querySelector)\n const checkboxes = this.#frontEndsEl.querySelectorAll(\"ch-checkbox\");\n const values: Array<string> = Array.from(checkboxes)\n .map((checkbox: any) => checkbox.value)\n .filter(Boolean);\n return values;\n }\n\n #handleCheckboxStatusChange = () => {\n this.#updateSelectedFrontEndsIds();\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 = (): void => {\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\n ? this.#handlerServerNameInput\n : undefined\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=\"form-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=\"form-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=\"form-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 <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 = 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\n <div>\n <h2\n // back end\n class=\"control-header heading-5 text-align-center\"\n >\n {this.#componentLocale.tabBasic.backEnd.backEndLabel}\n </h2>\n <div class=\"field-group back-end\">\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.prototypingEnvironmentsInitialValue}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#prototypingEnvironmentEl =\n el as HTMLChComboBoxRenderElement)\n }\n model={this.prototypingEnvironmentsComboBoxModel}\n onInput={\n this.prototypingEnvironments.length > 0\n ? this.#prototypingEnvironmentValueChangedHandler\n : undefined\n }\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 </div>,\n\n <div>\n <h2\n // front end\n class=\"control-header heading-5 text-align-center\"\n >\n {this.#componentLocale.tabBasic.frontEnd.frontEndLabel}\n </h2>\n <div\n class=\"field-group front-end\"\n ref={(el: HTMLDivElement) =>\n (this.#frontEndsEl = el as HTMLDivElement)\n }\n >\n {renderChCheckboxItems(\n this.frontEnds,\n \"front-end\",\n this.#handleCheckboxStatusChange\n )}\n </div>\n </div>\n ];\n };\n\n // - - - - - - - - - -\n\n #cancelKbHandler = (): void => {\n if (this.cancelCallback) {\n this.cancelCallback();\n }\n };\n\n #createKbHandler = (): void => {\n if (this.createCallback) {\n const createCallbackPromise = 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: this.#selectedFrontEndsIds,\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 });\n\n createCallbackPromise.then((formSubmitResult: FormSubmitResult) => {\n this.validatableControls = validateControls(\n formSubmitResult,\n this.validatableControls\n );\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 #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 #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 #initialSetup = () => {\n this.#updateSelectedFrontEndsIds();\n // map all \"Basic Tab\" GxOption[]'s to ComboBoxModel's\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 #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 = () => {\n if (this.getFrontEndsCallback) {\n const selectedPrototypingEnvironmentId =\n this.#prototypingEnvironmentEl.value;\n const updatedFrontEndsPromise: Promise<GxOption[]> =\n this.getFrontEndsCallback(selectedPrototypingEnvironmentId);\n updatedFrontEndsPromise\n .then(newFrontEndsOptions => {\n const updatedFrontEnds: GxOption[] = [];\n newFrontEndsOptions.forEach(newFrontEnd => {\n const foundActualFrontEnd = this.frontEnds.find(actualFrontEnd => {\n return newFrontEnd.id === actualFrontEnd.id;\n });\n if (foundActualFrontEnd) {\n // update newFrontEnd checked status with actual frontEnd checked status\n newFrontEnd.checked = foundActualFrontEnd.checked;\n }\n updatedFrontEnds.push(newFrontEnd);\n });\n this.frontEnds = updatedFrontEnds;\n })\n .catch(() => {\n // to do\n });\n }\n };\n\n #updateSelectedFrontEndsIds = () => {\n this.#selectedFrontEndsIds = this.#getCheckboxValues();\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=\"form-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=\"form-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 {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 scroll\"\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"]}
1
+ {"version":3,"file":"new-kb.js","sourceRoot":"","sources":["../../../src/components/new-kb/new-kb.tsx"],"names":[],"mappings":"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","sourcesContent":["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 } 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 { getIconPath } from \"@genexus/mercury\";\nimport { TabModel, ComboBoxModel } from \"@genexus/chameleon-controls-library\";\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 \"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 [key: string]: any;\n\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 #selectedFrontEndsIds: 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 #frontEndsEl!: HTMLDivElement;\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 @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 * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * It allows selecting multiple generators for the front end\n */\n @Prop({ mutable: true }) frontEnds!: GxOption[];\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.prototypingEnvironmentsInitialValue = getSelectedItem(newValue);\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.previousFrontEndsState = this.frontEnds;\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 componentDidLoad() {\n this.#initialSetup();\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 #getCheckboxValues() {\n // TODO (We shouldn't be using querySelector)\n const checkboxes = this.#frontEndsEl.querySelectorAll(\"ch-checkbox\");\n const values: Array<string> = Array.from(checkboxes)\n .map((checkbox: any) => checkbox.value)\n .filter(Boolean);\n return values;\n }\n\n #handleCheckboxStatusChange = () => {\n this.#updateSelectedFrontEndsIds();\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 = (): void => {\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=\"form-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=\"form-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=\"form-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.prototypingEnvironmentsInitialValue}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#prototypingEnvironmentEl =\n el as HTMLChComboBoxRenderElement)\n }\n model={this.prototypingEnvironmentsComboBoxModel}\n onInput={\n this.prototypingEnvironments.length > 0\n ? this.#prototypingEnvironmentValueChangedHandler\n : undefined\n }\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\n class=\"field-group main__front-end spacing-body-inline scrollable\"\n ref={(el: HTMLDivElement) =>\n (this.#frontEndsEl = el as HTMLDivElement)\n }\n >\n {renderChCheckboxItems(\n this.frontEnds,\n \"front-end\",\n this.#handleCheckboxStatusChange\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 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: this.#selectedFrontEndsIds,\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 #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 #initialSetup = () => {\n this.#updateSelectedFrontEndsIds();\n // map all \"Basic Tab\" GxOption[]'s to ComboBoxModel's\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 #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 = () => {\n if (this.getFrontEndsCallback) {\n const selectedPrototypingEnvironmentId =\n this.#prototypingEnvironmentEl.value;\n const updatedFrontEndsPromise: Promise<GxOption[]> =\n this.getFrontEndsCallback(selectedPrototypingEnvironmentId);\n updatedFrontEndsPromise\n .then(newFrontEndsOptions => {\n const updatedFrontEnds: GxOption[] = [];\n newFrontEndsOptions.forEach(newFrontEnd => {\n const foundActualFrontEnd = this.frontEnds.find(actualFrontEnd => {\n return newFrontEnd.id === actualFrontEnd.id;\n });\n if (foundActualFrontEnd) {\n // update newFrontEnd checked status with actual frontEnd checked status\n newFrontEnd.checked = foundActualFrontEnd.checked;\n }\n updatedFrontEnds.push(newFrontEnd);\n });\n this.frontEnds = updatedFrontEnds;\n })\n .catch(() => {\n // to do\n });\n }\n };\n\n #updateSelectedFrontEndsIds = () => {\n this.#selectedFrontEndsIds = this.#getCheckboxValues();\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=\"form-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=\"form-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"]}
@@ -6,7 +6,7 @@ import { Host, h, getAssetPath } from "@stencil/core";
6
6
  /* CUSTOM IMPORTS */
7
7
  import { Locale } from "../../common/locale";
8
8
  import { config } from "../../common/config";
9
- import { formSubmitValidation } from "../../common/helpers";
9
+ import { formSubmitValidation } from "../../common/form-validation";
10
10
  import { renderFormItems } from "../../common/common";
11
11
  export class GxIdeShareKb {
12
12
  constructor() {
@@ -1 +1 @@
1
- {"version":3,"file":"share-kb.js","sourceRoot":"","sources":["../../../src/components/share-kb/share-kb.tsx"],"names":[],"mappings":"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","sourcesContent":["// Define your constants\nconst AUTHENTICATION_TYPE = [\"GeneXus Account\", \"Local\"];\n\n/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n getAssetPath\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport {\n FormSubmitResult,\n GxServerAuthenticationType\n} from \"../../common/types\";\nimport { config } from \"../../common/config\";\nimport { formSubmitValidation } from \"../../common/helpers\";\nimport { renderFormItems } from \"../../common/common\";\n\n@Component({\n tag: \"gx-ide-share-kb\",\n styleUrl: \"share-kb.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/share-kb\"]\n})\nexport class GxIdeShareKb {\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 /**\n * The component hard-coded strings translations.\n */\n\n private _componentLocale: any;\n private renderedFirstTime = false;\n private shortcutsSrc = getAssetPath(\n `./gx-ide-assets/share-kb/shortcuts.json`\n );\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeShareKbElement;\n private kbNameEl: HTMLGxgFormTextElement;\n private serverUrlEl: HTMLGxgComboBoxElement;\n private authTypeEl: HTMLGxgComboBoxElement;\n private userNameEl: HTMLGxgFormTextElement;\n private passwordEl: HTMLGxgFormTextElement;\n\n // 3.STATE() VARIABLES //\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * The name of the kb\n */\n @Prop() readonly kbName!: string;\n\n /**\n * Urls array of cataloged servers to be shown on combo\n */\n @Prop() readonly serverUrls!: string[];\n\n /**\n * True if user can introduce server url manually\n */\n @Prop() readonly enableCustomServer: boolean = true;\n\n /**\n * Callback invoked when Share button is pressed\n */\n @Prop() readonly createKBCallback!: CreateKBCallback;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * @description Gets fired when the component has rendered for the first time.\n */\n @Event() componentDidRenderFirstTime: EventEmitter<string>;\n\n // 6.COMPONENT LIFECYCLE METHODS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidLoad() {\n this.kbNameEl.focus();\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n private createKBCallbackHandler = async () => {\n const kbData: ShareKBData = {\n name: this.kbNameEl.value,\n serverUrl: this.serverUrlEl.value,\n authenticationType: this.authTypeEl.value,\n user: this.userNameEl.value,\n password: this.passwordEl.value\n };\n const createCallbackPromise = this.createKBCallback(kbData);\n createCallbackPromise.then(formSubmitResult => {\n formSubmitValidation(formSubmitResult, this);\n });\n };\n\n // 9.LOCAL METHODS //\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host class=\"gx-ide-component\">\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n >\n <main class=\"main\">\n {/* #kb name */}\n <gxg-label labelPosition=\"start\" class=\"kb-label\" noMargin>\n {this._componentLocale.main.kbName}\n </gxg-label>\n <gxg-form-text\n labelPosition=\"start\"\n placeholder=\"SalesInventory\"\n max-width=\"100%\"\n value={this.kbName}\n toolTip={config.tooltip}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.kbNameEl = el as HTMLGxgFormTextElement)\n }\n part=\"kb-name\"\n class=\"kb-input\"\n ></gxg-form-text>\n\n {/* #server url */}\n <gxg-label\n labelPosition=\"start\"\n class=\"server-url-label\"\n noMargin\n >\n {this._componentLocale.main.serverUrl}\n </gxg-label>\n <gxg-combo-box\n disableFilter={!this.enableCustomServer}\n labelPosition=\"start\"\n placeholder=\"https://myexampleserver.com\"\n strict\n toolTip={config.tooltip}\n value={this.serverUrls[0]}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.serverUrlEl = el as HTMLGxgComboBoxElement)\n }\n part=\"server-url\"\n class=\"server-url-input\"\n >\n {renderFormItems(\n \"gxg-combo-box-item\",\n this.serverUrls.map((item: string) => ({\n id: item,\n label: item\n })),\n \"server-url\"\n )}\n </gxg-combo-box>\n\n {/* #authentication type */}\n <gxg-label labelPosition=\"start\" class=\"auth-type-label\" noMargin>\n {this._componentLocale.main.authentication}\n </gxg-label>\n <gxg-combo-box\n labelPosition=\"start\"\n placeholder=\"https://myexampleserver.com\"\n max-width=\"100%\"\n value={AUTHENTICATION_TYPE[0]}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.authTypeEl = el as HTMLGxgComboBoxElement)\n }\n part=\"auth-type\"\n class=\"auth-type-input\"\n >\n {renderFormItems(\n \"gxg-combo-box-item\",\n AUTHENTICATION_TYPE.map((item: string) => ({\n id: item,\n label: item\n })),\n \"auth-type\"\n )}\n </gxg-combo-box>\n\n {/* #user name */}\n <gxg-label labelPosition=\"start\" class=\"user-name-label\" noMargin>\n {this._componentLocale.main.userName}\n </gxg-label>\n <gxg-form-text\n labelPosition=\"start\"\n placeholder=\"My User\"\n max-width=\"100%\"\n toolTip={config.tooltip}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.userNameEl = el as HTMLGxgFormTextElement)\n }\n part=\"user-name\"\n class=\"user-name-input\"\n ></gxg-form-text>\n\n {/* #password */}\n <gxg-label labelPosition=\"start\" class=\"password-label\" noMargin>\n {this._componentLocale.main.password}\n </gxg-label>\n <gxg-form-text\n labelPosition=\"start\"\n password\n toolTip={config.tooltip}\n max-width=\"100%\"\n ref={(el: HTMLGxgFormTextElement) =>\n (this.passwordEl = el as HTMLGxgFormTextElement)\n }\n part=\"password\"\n class=\"password-input\"\n ></gxg-form-text>\n </main>\n <gxg-button\n slot=\"footer-end\"\n type=\"primary-text-icon\"\n icon=\"gemini-tools/share\"\n onClick={this.createKBCallbackHandler}\n part=\"share-kb\"\n >\n {this._componentLocale.footer.shareBtn}\n </gxg-button>\n </gx-ide-container>\n </div>\n <gxg-shortcuts src={this.shortcutsSrc}></gxg-shortcuts>\n </Host>\n );\n }\n}\n\nexport type CreateKBCallback = (data: ShareKBData) => Promise<FormSubmitResult>;\nexport type ShareKBData = {\n name: string;\n serverUrl: string;\n authenticationType: GxServerAuthenticationType;\n user: string;\n password: string;\n};\n"]}
1
+ {"version":3,"file":"share-kb.js","sourceRoot":"","sources":["../../../src/components/share-kb/share-kb.tsx"],"names":[],"mappings":"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","sourcesContent":["// Define your constants\nconst AUTHENTICATION_TYPE = [\"GeneXus Account\", \"Local\"];\n\n/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n getAssetPath\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport {\n FormSubmitResult,\n GxServerAuthenticationType\n} from \"../../common/types\";\nimport { config } from \"../../common/config\";\nimport { formSubmitValidation } from \"../../common/form-validation\";\nimport { renderFormItems } from \"../../common/common\";\n\n@Component({\n tag: \"gx-ide-share-kb\",\n styleUrl: \"share-kb.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/share-kb\"]\n})\nexport class GxIdeShareKb {\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 /**\n * The component hard-coded strings translations.\n */\n\n private _componentLocale: any;\n private renderedFirstTime = false;\n private shortcutsSrc = getAssetPath(\n `./gx-ide-assets/share-kb/shortcuts.json`\n );\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeShareKbElement;\n private kbNameEl: HTMLGxgFormTextElement;\n private serverUrlEl: HTMLGxgComboBoxElement;\n private authTypeEl: HTMLGxgComboBoxElement;\n private userNameEl: HTMLGxgFormTextElement;\n private passwordEl: HTMLGxgFormTextElement;\n\n // 3.STATE() VARIABLES //\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * The name of the kb\n */\n @Prop() readonly kbName!: string;\n\n /**\n * Urls array of cataloged servers to be shown on combo\n */\n @Prop() readonly serverUrls!: string[];\n\n /**\n * True if user can introduce server url manually\n */\n @Prop() readonly enableCustomServer: boolean = true;\n\n /**\n * Callback invoked when Share button is pressed\n */\n @Prop() readonly createKBCallback!: CreateKBCallback;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * @description Gets fired when the component has rendered for the first time.\n */\n @Event() componentDidRenderFirstTime: EventEmitter<string>;\n\n // 6.COMPONENT LIFECYCLE METHODS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidLoad() {\n this.kbNameEl.focus();\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n private createKBCallbackHandler = async () => {\n const kbData: ShareKBData = {\n name: this.kbNameEl.value,\n serverUrl: this.serverUrlEl.value,\n authenticationType: this.authTypeEl.value,\n user: this.userNameEl.value,\n password: this.passwordEl.value\n };\n const createCallbackPromise = this.createKBCallback(kbData);\n createCallbackPromise.then(formSubmitResult => {\n formSubmitValidation(formSubmitResult, this);\n });\n };\n\n // 9.LOCAL METHODS //\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host class=\"gx-ide-component\">\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n >\n <main class=\"main\">\n {/* #kb name */}\n <gxg-label labelPosition=\"start\" class=\"kb-label\" noMargin>\n {this._componentLocale.main.kbName}\n </gxg-label>\n <gxg-form-text\n labelPosition=\"start\"\n placeholder=\"SalesInventory\"\n max-width=\"100%\"\n value={this.kbName}\n toolTip={config.tooltip}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.kbNameEl = el as HTMLGxgFormTextElement)\n }\n part=\"kb-name\"\n class=\"kb-input\"\n ></gxg-form-text>\n\n {/* #server url */}\n <gxg-label\n labelPosition=\"start\"\n class=\"server-url-label\"\n noMargin\n >\n {this._componentLocale.main.serverUrl}\n </gxg-label>\n <gxg-combo-box\n disableFilter={!this.enableCustomServer}\n labelPosition=\"start\"\n placeholder=\"https://myexampleserver.com\"\n strict\n toolTip={config.tooltip}\n value={this.serverUrls[0]}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.serverUrlEl = el as HTMLGxgComboBoxElement)\n }\n part=\"server-url\"\n class=\"server-url-input\"\n >\n {renderFormItems(\n \"gxg-combo-box-item\",\n this.serverUrls.map((item: string) => ({\n id: item,\n label: item\n })),\n \"server-url\"\n )}\n </gxg-combo-box>\n\n {/* #authentication type */}\n <gxg-label labelPosition=\"start\" class=\"auth-type-label\" noMargin>\n {this._componentLocale.main.authentication}\n </gxg-label>\n <gxg-combo-box\n labelPosition=\"start\"\n placeholder=\"https://myexampleserver.com\"\n max-width=\"100%\"\n value={AUTHENTICATION_TYPE[0]}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.authTypeEl = el as HTMLGxgComboBoxElement)\n }\n part=\"auth-type\"\n class=\"auth-type-input\"\n >\n {renderFormItems(\n \"gxg-combo-box-item\",\n AUTHENTICATION_TYPE.map((item: string) => ({\n id: item,\n label: item\n })),\n \"auth-type\"\n )}\n </gxg-combo-box>\n\n {/* #user name */}\n <gxg-label labelPosition=\"start\" class=\"user-name-label\" noMargin>\n {this._componentLocale.main.userName}\n </gxg-label>\n <gxg-form-text\n labelPosition=\"start\"\n placeholder=\"My User\"\n max-width=\"100%\"\n toolTip={config.tooltip}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.userNameEl = el as HTMLGxgFormTextElement)\n }\n part=\"user-name\"\n class=\"user-name-input\"\n ></gxg-form-text>\n\n {/* #password */}\n <gxg-label labelPosition=\"start\" class=\"password-label\" noMargin>\n {this._componentLocale.main.password}\n </gxg-label>\n <gxg-form-text\n labelPosition=\"start\"\n password\n toolTip={config.tooltip}\n max-width=\"100%\"\n ref={(el: HTMLGxgFormTextElement) =>\n (this.passwordEl = el as HTMLGxgFormTextElement)\n }\n part=\"password\"\n class=\"password-input\"\n ></gxg-form-text>\n </main>\n <gxg-button\n slot=\"footer-end\"\n type=\"primary-text-icon\"\n icon=\"gemini-tools/share\"\n onClick={this.createKBCallbackHandler}\n part=\"share-kb\"\n >\n {this._componentLocale.footer.shareBtn}\n </gxg-button>\n </gx-ide-container>\n </div>\n <gxg-shortcuts src={this.shortcutsSrc}></gxg-shortcuts>\n </Host>\n );\n }\n}\n\nexport type CreateKBCallback = (data: ShareKBData) => Promise<FormSubmitResult>;\nexport type ShareKBData = {\n name: string;\n serverUrl: string;\n authenticationType: GxServerAuthenticationType;\n user: string;\n password: string;\n};\n"]}
@@ -0,0 +1,53 @@
1
+ // formSubmitValidation will be deprecated. use "validateControls" instead.
2
+ const formSubmitValidation = (result, ref) => {
3
+ var _a;
4
+ (_a = result.fieldErrors) === null || _a === void 0 ? void 0 : _a.forEach(element => {
5
+ const key = element.key;
6
+ const message = element.message;
7
+ const hasError = element.hasError;
8
+ const reference = ref[`${key}El`];
9
+ if (reference && hasError && message.trim()) {
10
+ reference.validationStatus = "error";
11
+ reference.validationMessage = message;
12
+ }
13
+ else if (reference && !hasError) {
14
+ reference.validationStatus = "indeterminate";
15
+ reference.validationMessage = null;
16
+ }
17
+ });
18
+ };
19
+ // TODO: Improve the way we mark components with error. We must not use error classes.
20
+ const formElementsErrorClassesDictionary = {
21
+ "ch-checkbox": "checkbox-error",
22
+ "ch-combo-box-render": "combo-box-error",
23
+ "ch-edit": "form-input-error"
24
+ };
25
+ const toggleErrorClass = (hasError, element) => {
26
+ const elementTagName = element.tagName.toLowerCase();
27
+ const errorClass = formElementsErrorClassesDictionary[elementTagName];
28
+ if (hasError) {
29
+ element.classList.add(errorClass);
30
+ }
31
+ else {
32
+ element.classList.remove(errorClass);
33
+ }
34
+ };
35
+ const validateControls = (formSubmitResult, validatableControls) => {
36
+ const validatableControlsUpdated = new Map(validatableControls);
37
+ formSubmitResult.fieldErrors.forEach(fieldResult => {
38
+ const fieldKey = fieldResult.key;
39
+ const fieldHasError = fieldResult.hasError;
40
+ const controlMapRecord = validatableControlsUpdated.get(fieldKey);
41
+ if (controlMapRecord === null || controlMapRecord === void 0 ? void 0 : controlMapRecord.reference) {
42
+ // toggle class to add or remove error style
43
+ toggleErrorClass(fieldHasError, controlMapRecord.reference);
44
+ validatableControlsUpdated.set(fieldKey, Object.assign(Object.assign({}, controlMapRecord), { hasError: fieldHasError, message: fieldResult.message }));
45
+ }
46
+ });
47
+ // return validatableControls updated.
48
+ return validatableControlsUpdated;
49
+ };
50
+
51
+ export { formSubmitValidation as f, validateControls as v };
52
+
53
+ //# sourceMappingURL=form-validation.js.map
@@ -0,0 +1 @@
1
+ {"file":"form-validation.js","mappings":"AAGA;MACa,oBAAoB,GAAG,CAClC,MAA+C,EAC/C,GAAQ;;IAER,MAAA,MAAM,CAAC,WAAW,0CAAE,OAAO,CAAC,OAAO;QACjC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACxB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAElC,MAAM,SAAS,GAAkB,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;QACjD,IAAI,SAAS,IAAI,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE;YAC3C,SAAS,CAAC,gBAAgB,GAAG,OAAO,CAAC;YACrC,SAAS,CAAC,iBAAiB,GAAG,OAAO,CAAC;SACvC;aAAM,IAAI,SAAS,IAAI,CAAC,QAAQ,EAAE;YACjC,SAAS,CAAC,gBAAgB,GAAG,eAAe,CAAC;YAC7C,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC;SACpC;KACF,CAAC,CAAC;AACL,EAAE;AAEF;AACA,MAAM,kCAAkC,GAAG;IACzC,aAAa,EAAE,gBAAgB;IAC/B,qBAAqB,EAAE,iBAAiB;IACxC,SAAS,EAAE,kBAAkB;CACrB,CAAC;AAEX,MAAM,gBAAgB,GAAG,CAAC,QAAiB,EAAE,OAAoB;IAC/D,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IACrD,MAAM,UAAU,GACd,kCAAkC,CAChC,cAAiE,CAClE,CAAC;IACJ,IAAI,QAAQ,EAAE;QACZ,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KACnC;SAAM;QACL,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;KACtC;AACH,CAAC,CAAC;MAEW,gBAAgB,GAAG,CAC9B,gBAAkC,EAClC,mBAAmD;IAEnD,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAChE,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW;QAC9C,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC;QACjC,MAAM,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAC;QAC3C,MAAM,gBAAgB,GAAG,0BAA0B,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClE,IAAI,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,SAAS,EAAE;;YAE/B,gBAAgB,CAAC,aAAa,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAC5D,0BAA0B,CAAC,GAAG,CAAC,QAAQ,kCAClC,gBAAgB,KACnB,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,WAAW,CAAC,OAAO,IAC5B,CAAC;SACJ;KACF,CAAC,CAAC;;IAEH,OAAO,0BAA0B,CAAC;AACpC;;;;","names":[],"sources":["src/common/form-validation.ts"],"sourcesContent":["import { FormSubmitResult, ConnectionResultData } from \"../common/types\";\nimport { FormComponent } from \"@genexus/gemini/dist/types/common/interfaces\";\n\n// formSubmitValidation will be deprecated. use \"validateControls\" instead.\nexport const formSubmitValidation = (\n result: FormSubmitResult | ConnectionResultData,\n ref: any\n) => {\n result.fieldErrors?.forEach(element => {\n const key = element.key;\n const message = element.message;\n const hasError = element.hasError;\n\n const reference: FormComponent = ref[`${key}El`];\n if (reference && hasError && message.trim()) {\n reference.validationStatus = \"error\";\n reference.validationMessage = message;\n } else if (reference && !hasError) {\n reference.validationStatus = \"indeterminate\";\n reference.validationMessage = null;\n }\n });\n};\n\n// TODO: Improve the way we mark components with error. We must not use error classes.\nconst formElementsErrorClassesDictionary = {\n \"ch-checkbox\": \"checkbox-error\",\n \"ch-combo-box-render\": \"combo-box-error\",\n \"ch-edit\": \"form-input-error\"\n} as const;\n\nconst toggleErrorClass = (hasError: boolean, element: HTMLElement) => {\n const elementTagName = element.tagName.toLowerCase();\n const errorClass =\n formElementsErrorClassesDictionary[\n elementTagName as keyof typeof formElementsErrorClassesDictionary\n ];\n if (hasError) {\n element.classList.add(errorClass);\n } else {\n element.classList.remove(errorClass);\n }\n};\n\nexport const validateControls = (\n formSubmitResult: FormSubmitResult,\n validatableControls: Map<string, ControlValidation>\n): Map<string, ControlValidation> => {\n const validatableControlsUpdated = new Map(validatableControls);\n formSubmitResult.fieldErrors.forEach(fieldResult => {\n const fieldKey = fieldResult.key;\n const fieldHasError = fieldResult.hasError;\n const controlMapRecord = validatableControlsUpdated.get(fieldKey);\n if (controlMapRecord?.reference) {\n // toggle class to add or remove error style\n toggleErrorClass(fieldHasError, controlMapRecord.reference);\n validatableControlsUpdated.set(fieldKey, {\n ...controlMapRecord,\n hasError: fieldHasError,\n message: fieldResult.message\n });\n }\n });\n // return validatableControls updated.\n return validatableControlsUpdated;\n};\n\nexport type ControlValidation = {\n reference: HTMLElement;\n hasError: boolean;\n message: string;\n};\n"],"version":3}
@@ -1,7 +1,7 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
2
  import { c as config } from './config.js';
3
3
  import { L as Locale } from './locale.js';
4
- import { f as formSubmitValidation } from './helpers.js';
4
+ import { f as formSubmitValidation } from './form-validation.js';
5
5
  import { d as defineCustomElement$3 } from './container.js';
6
6
  import { d as defineCustomElement$2 } from './title.js';
7
7
 
@@ -1 +1 @@
1
- {"file":"gx-ide-connect-gx-server.js","mappings":"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","names":["GxIdeConnectGxServer"],"sources":["src/components/connect-gx-server/connect-gx-server.scss?tag=gx-ide-connect-gx-server&encapsulation=shadow","src/components/connect-gx-server/connect-gx-server.tsx"],"sourcesContent":["@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: block;\n}\n\n.user-details-container {\n display: flex;\n gap: var(--gx-ide-form-items-gap);\n}\n\n.wrapper {\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--md);\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { config } from \"../../common/config\";\nimport { Locale } from \"../../common/locale\";\nimport { formSubmitValidation } from \"../../common/helpers\";\nimport { ConnectionResultData } from \"../../common/types\";\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 GxIdeConnectGxServer {\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeConnectGxServerElement;\n\n private serverURLEl!: HTMLGxgComboBoxElement;\n private userNameEl!: HTMLGxgFormTextElement;\n private passwordEl!: HTMLGxgFormTextElement;\n private continueWithGeneXusAccountEl!: HTMLGxgFormCheckboxElement;\n\n // 3.STATE() VARIABLES //\n\n //\n @State() displayLoginControls: boolean = false;\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * Array of cataloged server URLs\n */\n @Prop() readonly serverUrls: string[];\n\n /**\n * 'true' if the user should be allowed to manually enter a server URL in serverUrls.\n */\n @Prop() readonly enableCustomServer: boolean = false;\n\n /**\n * Initial user values for the case in which the user returns to the login modal after a successful authentication.\n */\n @Prop() readonly defaultConnectionData?: GXServerConnectionDefault;\n\n /**\n * If 'true', shows the enabled and checked 'Continue with GX Account' checkbox. If 'false', shows the checkbox unchecked and disabled, and displays the options to enter username and password directly. Even if 'true', allow the user to deselect the checkbox and enter username and password.\n */\n @Prop() readonly enableUserLogged: boolean = false;\n\n /**\n * If 'true', shows the enabled and checked 'Continue with GX Account' checkbox. If 'false', shows the checkbox unchecked and disabled, and displays the options to enter username and password directly. Even if 'true', allow the user to deselect the checkbox and enter username and password.\n */\n @Prop() readonly connectCallback: (\n data: GXServerConnectionData\n ) => Promise<ConnectionResultData>;\n\n /**\n * Callback that allows canceling the server connection process.\n */\n @Prop() readonly cancelCallback: () => Promise<void>;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * @description Gets fired when the component has rendered for the first time.\n */\n @Event() componentDidRenderFirstTime: EventEmitter<string>;\n\n // 6.COMPONENT LIFECYCLE METHODS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n this.evaluateDisplayLoginControls();\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n private renderServerUrls = (): HTMLGxgComboBoxItemElement[] => {\n if (this.serverUrls?.length) {\n return this.serverUrls.map(serverUrl => {\n return <gxg-combo-box-item>{serverUrl}</gxg-combo-box-item>;\n });\n }\n return [];\n };\n\n private continueWithGxServerHandler = (\n event: CustomEvent<{ id: string; value: boolean; disabled?: boolean }>\n ) => {\n this.displayLoginControls = !event.detail.value;\n };\n\n private evaluateDisplayLoginControls = () => {\n if (this.enableUserLogged) {\n this.displayLoginControls = false;\n } else {\n this.displayLoginControls = true;\n }\n };\n\n private connectHandler = () => {\n if (this.connectCallback) {\n this.connectCallback({\n serverUrl: this.serverURLEl.value,\n continueWithGeneXusAccount: this.continueWithGeneXusAccountEl.checked,\n user: this.userNameEl.value,\n password: this.passwordEl.value\n }).then((formSubmitResult: ConnectionResultData) => {\n console.log(formSubmitResult);\n formSubmitValidation(formSubmitResult, this);\n });\n }\n };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host class=\"gx-ide-component\">\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n >\n <div class=\"wrapper\">\n {/* server url */}\n <gxg-combo-box\n label={this._componentLocale.main.serverUrl}\n disableFilter={!this.enableCustomServer}\n value={this.defaultConnectionData?.serverUrl}\n ref={el => (this.serverURLEl = el as HTMLGxgComboBoxElement)}\n toolTip={config.tooltip}\n >\n {this.renderServerUrls()}\n </gxg-combo-box>\n\n {/* continue with GeneXus account */}\n <gxg-form-checkbox\n label={this._componentLocale.main.continueWithGxAccount}\n onChange={this.continueWithGxServerHandler}\n checked={this.enableUserLogged}\n disabled={!this.enableUserLogged}\n ref={el =>\n (this.continueWithGeneXusAccountEl =\n el as HTMLGxgFormCheckboxElement)\n }\n ></gxg-form-checkbox>\n\n {this.displayLoginControls ? (\n <div class=\"user-details-container\">\n {/* username */}\n <gxg-form-text\n label={this._componentLocale.main.userName}\n labelPosition=\"above\"\n disabled={!this.displayLoginControls}\n value={this.defaultConnectionData?.user}\n ref={el => (this.userNameEl = el as HTMLGxgFormTextElement)}\n toolTip={config.tooltip}\n ></gxg-form-text>\n {/* password */}\n <gxg-form-text\n label={this._componentLocale.main.password}\n labelPosition=\"above\"\n disabled={!this.displayLoginControls}\n value={this.defaultConnectionData?.password}\n ref={el => (this.passwordEl = el as HTMLGxgFormTextElement)}\n password\n toolTip={config.tooltip}\n ></gxg-form-text>\n </div>\n ) : null}\n </div>\n\n {/* cancel and connect buttons */}\n <gxg-button slot=\"footer-end\" type=\"outlined\">\n {this._componentLocale.main.cancel}\n </gxg-button>\n <gxg-button slot=\"footer-end\" onClick={this.connectHandler}>\n {this._componentLocale.main.connect}\n </gxg-button>\n </gx-ide-container>\n </div>\n </Host>\n );\n }\n}\n\nexport type GXServerConnectionDefault = {\n serverUrl: string;\n user: string;\n password: string;\n};\n\nexport type GXServerConnectionData = GXServerConnectionDefault & {\n continueWithGeneXusAccount: boolean;\n};\n"],"version":3}
1
+ {"file":"gx-ide-connect-gx-server.js","mappings":"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","names":["GxIdeConnectGxServer"],"sources":["src/components/connect-gx-server/connect-gx-server.scss?tag=gx-ide-connect-gx-server&encapsulation=shadow","src/components/connect-gx-server/connect-gx-server.tsx"],"sourcesContent":["@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: block;\n}\n\n.user-details-container {\n display: flex;\n gap: var(--gx-ide-form-items-gap);\n}\n\n.wrapper {\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--md);\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { config } from \"../../common/config\";\nimport { Locale } from \"../../common/locale\";\nimport { formSubmitValidation } from \"../../common/form-validation\";\nimport { ConnectionResultData } from \"../../common/types\";\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 GxIdeConnectGxServer {\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeConnectGxServerElement;\n\n private serverURLEl!: HTMLGxgComboBoxElement;\n private userNameEl!: HTMLGxgFormTextElement;\n private passwordEl!: HTMLGxgFormTextElement;\n private continueWithGeneXusAccountEl!: HTMLGxgFormCheckboxElement;\n\n // 3.STATE() VARIABLES //\n\n //\n @State() displayLoginControls: boolean = false;\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * Array of cataloged server URLs\n */\n @Prop() readonly serverUrls: string[];\n\n /**\n * 'true' if the user should be allowed to manually enter a server URL in serverUrls.\n */\n @Prop() readonly enableCustomServer: boolean = false;\n\n /**\n * Initial user values for the case in which the user returns to the login modal after a successful authentication.\n */\n @Prop() readonly defaultConnectionData?: GXServerConnectionDefault;\n\n /**\n * If 'true', shows the enabled and checked 'Continue with GX Account' checkbox. If 'false', shows the checkbox unchecked and disabled, and displays the options to enter username and password directly. Even if 'true', allow the user to deselect the checkbox and enter username and password.\n */\n @Prop() readonly enableUserLogged: boolean = false;\n\n /**\n * If 'true', shows the enabled and checked 'Continue with GX Account' checkbox. If 'false', shows the checkbox unchecked and disabled, and displays the options to enter username and password directly. Even if 'true', allow the user to deselect the checkbox and enter username and password.\n */\n @Prop() readonly connectCallback: (\n data: GXServerConnectionData\n ) => Promise<ConnectionResultData>;\n\n /**\n * Callback that allows canceling the server connection process.\n */\n @Prop() readonly cancelCallback: () => Promise<void>;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * @description Gets fired when the component has rendered for the first time.\n */\n @Event() componentDidRenderFirstTime: EventEmitter<string>;\n\n // 6.COMPONENT LIFECYCLE METHODS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n this.evaluateDisplayLoginControls();\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n private renderServerUrls = (): HTMLGxgComboBoxItemElement[] => {\n if (this.serverUrls?.length) {\n return this.serverUrls.map(serverUrl => {\n return <gxg-combo-box-item>{serverUrl}</gxg-combo-box-item>;\n });\n }\n return [];\n };\n\n private continueWithGxServerHandler = (\n event: CustomEvent<{ id: string; value: boolean; disabled?: boolean }>\n ) => {\n this.displayLoginControls = !event.detail.value;\n };\n\n private evaluateDisplayLoginControls = () => {\n if (this.enableUserLogged) {\n this.displayLoginControls = false;\n } else {\n this.displayLoginControls = true;\n }\n };\n\n private connectHandler = () => {\n if (this.connectCallback) {\n this.connectCallback({\n serverUrl: this.serverURLEl.value,\n continueWithGeneXusAccount: this.continueWithGeneXusAccountEl.checked,\n user: this.userNameEl.value,\n password: this.passwordEl.value\n }).then((formSubmitResult: ConnectionResultData) => {\n console.log(formSubmitResult);\n formSubmitValidation(formSubmitResult, this);\n });\n }\n };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host class=\"gx-ide-component\">\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n >\n <div class=\"wrapper\">\n {/* server url */}\n <gxg-combo-box\n label={this._componentLocale.main.serverUrl}\n disableFilter={!this.enableCustomServer}\n value={this.defaultConnectionData?.serverUrl}\n ref={el => (this.serverURLEl = el as HTMLGxgComboBoxElement)}\n toolTip={config.tooltip}\n >\n {this.renderServerUrls()}\n </gxg-combo-box>\n\n {/* continue with GeneXus account */}\n <gxg-form-checkbox\n label={this._componentLocale.main.continueWithGxAccount}\n onChange={this.continueWithGxServerHandler}\n checked={this.enableUserLogged}\n disabled={!this.enableUserLogged}\n ref={el =>\n (this.continueWithGeneXusAccountEl =\n el as HTMLGxgFormCheckboxElement)\n }\n ></gxg-form-checkbox>\n\n {this.displayLoginControls ? (\n <div class=\"user-details-container\">\n {/* username */}\n <gxg-form-text\n label={this._componentLocale.main.userName}\n labelPosition=\"above\"\n disabled={!this.displayLoginControls}\n value={this.defaultConnectionData?.user}\n ref={el => (this.userNameEl = el as HTMLGxgFormTextElement)}\n toolTip={config.tooltip}\n ></gxg-form-text>\n {/* password */}\n <gxg-form-text\n label={this._componentLocale.main.password}\n labelPosition=\"above\"\n disabled={!this.displayLoginControls}\n value={this.defaultConnectionData?.password}\n ref={el => (this.passwordEl = el as HTMLGxgFormTextElement)}\n password\n toolTip={config.tooltip}\n ></gxg-form-text>\n </div>\n ) : null}\n </div>\n\n {/* cancel and connect buttons */}\n <gxg-button slot=\"footer-end\" type=\"outlined\">\n {this._componentLocale.main.cancel}\n </gxg-button>\n <gxg-button slot=\"footer-end\" onClick={this.connectHandler}>\n {this._componentLocale.main.connect}\n </gxg-button>\n </gx-ide-container>\n </div>\n </Host>\n );\n }\n}\n\nexport type GXServerConnectionDefault = {\n serverUrl: string;\n user: string;\n password: string;\n};\n\nexport type GXServerConnectionData = GXServerConnectionDefault & {\n continueWithGeneXusAccount: boolean;\n};\n"],"version":3}
@@ -1,7 +1,7 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, getAssetPath, h, Host } from '@stencil/core/internal/client';
2
2
  import { L as Locale } from './locale.js';
3
3
  import { r as renderFormItems } from './common.js';
4
- import { f as formSubmitValidation } from './helpers.js';
4
+ import { f as formSubmitValidation } from './form-validation.js';
5
5
  import { d as defineCustomElement$3 } from './container.js';
6
6
  import { d as defineCustomElement$2 } from './title.js';
7
7