@genexus/genexus-ide-ui 3.2.12 → 3.2.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 (78) hide show
  1. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  2. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +24 -34
  3. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js.map +1 -1
  4. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +12 -12
  5. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js.map +1 -1
  6. package/dist/cjs/gx-ide-new-environment.cjs.entry.js +26 -3
  7. package/dist/cjs/gx-ide-new-environment.cjs.entry.js.map +1 -1
  8. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +77 -44
  9. package/dist/cjs/gx-ide-new-kb.cjs.entry.js.map +1 -1
  10. package/dist/cjs/loader.cjs.js +1 -1
  11. package/dist/collection/components/kb-manager-import/helpers.js +2 -9
  12. package/dist/collection/components/kb-manager-import/helpers.js.map +1 -1
  13. package/dist/collection/components/kb-manager-import/kb-manager-import.js +10 -3
  14. package/dist/collection/components/kb-manager-import/kb-manager-import.js.map +1 -1
  15. package/dist/collection/components/new-environment/gx-ide-assets/new-environment/langs/new-environment.lang.en.json +3 -1
  16. package/dist/collection/components/new-environment/gx-ide-assets/new-environment/langs/new-environment.lang.ja.json +3 -1
  17. package/dist/collection/components/new-environment/gx-ide-assets/new-environment/langs/new-environment.lang.zh.json +3 -1
  18. package/dist/collection/components/new-environment/new-environment.css +29 -0
  19. package/dist/collection/components/new-environment/new-environment.js +54 -17
  20. package/dist/collection/components/new-environment/new-environment.js.map +1 -1
  21. package/dist/collection/components/new-kb/gx-ide-assets/new-kb/langs/new-kb.lang.en.json +9 -5
  22. package/dist/collection/components/new-kb/gx-ide-assets/new-kb/langs/new-kb.lang.ja.json +7 -3
  23. package/dist/collection/components/new-kb/gx-ide-assets/new-kb/langs/new-kb.lang.zh.json +9 -5
  24. package/dist/collection/components/new-kb/new-kb.css +42 -1
  25. package/dist/collection/components/new-kb/new-kb.js +77 -47
  26. package/dist/collection/components/new-kb/new-kb.js.map +1 -1
  27. package/dist/collection/components/team-dev/create-kb-from-server/create-kb-from-server.js +25 -36
  28. package/dist/collection/components/team-dev/create-kb-from-server/create-kb-from-server.js.map +1 -1
  29. package/dist/collection/components/team-dev/create-kb-from-server/gx-ide-assets/create-kb-from-server/langs/create-kb-from-server.lang.en.json +0 -2
  30. package/dist/collection/components/team-dev/create-kb-from-server/gx-ide-assets/create-kb-from-server/langs/create-kb-from-server.lang.ja.json +0 -2
  31. package/dist/collection/components/team-dev/create-kb-from-server/gx-ide-assets/create-kb-from-server/langs/create-kb-from-server.lang.zh.json +0 -2
  32. package/dist/components/gx-ide-create-kb-from-server.js +24 -35
  33. package/dist/components/gx-ide-create-kb-from-server.js.map +1 -1
  34. package/dist/components/gx-ide-kb-manager-import.js +12 -12
  35. package/dist/components/gx-ide-kb-manager-import.js.map +1 -1
  36. package/dist/components/gx-ide-new-environment.js +27 -4
  37. package/dist/components/gx-ide-new-environment.js.map +1 -1
  38. package/dist/components/gx-ide-new-kb.js +85 -46
  39. package/dist/components/gx-ide-new-kb.js.map +1 -1
  40. package/dist/esm/genexus-ide-ui.js +1 -1
  41. package/dist/esm/gx-ide-create-kb-from-server.entry.js +24 -34
  42. package/dist/esm/gx-ide-create-kb-from-server.entry.js.map +1 -1
  43. package/dist/esm/gx-ide-kb-manager-import.entry.js +12 -12
  44. package/dist/esm/gx-ide-kb-manager-import.entry.js.map +1 -1
  45. package/dist/esm/gx-ide-new-environment.entry.js +26 -3
  46. package/dist/esm/gx-ide-new-environment.entry.js.map +1 -1
  47. package/dist/esm/gx-ide-new-kb.entry.js +77 -44
  48. package/dist/esm/gx-ide-new-kb.entry.js.map +1 -1
  49. package/dist/esm/loader.js +1 -1
  50. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  51. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  52. package/dist/genexus-ide-ui/gx-ide-assets/create-kb-from-server/langs/create-kb-from-server.lang.en.json +0 -2
  53. package/dist/genexus-ide-ui/gx-ide-assets/create-kb-from-server/langs/create-kb-from-server.lang.ja.json +0 -2
  54. package/dist/genexus-ide-ui/gx-ide-assets/create-kb-from-server/langs/create-kb-from-server.lang.zh.json +0 -2
  55. package/dist/genexus-ide-ui/gx-ide-assets/new-environment/langs/new-environment.lang.en.json +3 -1
  56. package/dist/genexus-ide-ui/gx-ide-assets/new-environment/langs/new-environment.lang.ja.json +3 -1
  57. package/dist/genexus-ide-ui/gx-ide-assets/new-environment/langs/new-environment.lang.zh.json +3 -1
  58. package/dist/genexus-ide-ui/gx-ide-assets/new-kb/langs/new-kb.lang.en.json +9 -5
  59. package/dist/genexus-ide-ui/gx-ide-assets/new-kb/langs/new-kb.lang.ja.json +7 -3
  60. package/dist/genexus-ide-ui/gx-ide-assets/new-kb/langs/new-kb.lang.zh.json +9 -5
  61. package/dist/genexus-ide-ui/{p-cf61384e.entry.js → p-2164c3a8.entry.js} +154 -167
  62. package/dist/genexus-ide-ui/p-2164c3a8.entry.js.map +1 -0
  63. package/dist/genexus-ide-ui/{p-7cd24b82.entry.js → p-806c5dcb.entry.js} +58 -47
  64. package/dist/genexus-ide-ui/p-806c5dcb.entry.js.map +1 -0
  65. package/dist/genexus-ide-ui/{p-5727fce7.entry.js → p-8f4af976.entry.js} +222 -184
  66. package/dist/genexus-ide-ui/p-8f4af976.entry.js.map +1 -0
  67. package/dist/genexus-ide-ui/{p-eeae9dd5.entry.js → p-95cf766b.entry.js} +401 -345
  68. package/dist/genexus-ide-ui/p-95cf766b.entry.js.map +1 -0
  69. package/dist/types/components/kb-manager-import/helpers.d.ts +1 -1
  70. package/dist/types/components/new-environment/new-environment.d.ts +8 -3
  71. package/dist/types/components/new-kb/new-kb.d.ts +5 -1
  72. package/dist/types/components/team-dev/create-kb-from-server/create-kb-from-server.d.ts +0 -1
  73. package/dist/types/components.d.ts +8 -0
  74. package/package.json +1 -1
  75. package/dist/genexus-ide-ui/p-5727fce7.entry.js.map +0 -1
  76. package/dist/genexus-ide-ui/p-7cd24b82.entry.js.map +0 -1
  77. package/dist/genexus-ide-ui/p-cf61384e.entry.js.map +0 -1
  78. package/dist/genexus-ide-ui/p-eeae9dd5.entry.js.map +0 -1
@@ -14,7 +14,7 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
14
14
  throw new TypeError("Cannot write private member to an object whose class did not declare it");
15
15
  return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
16
16
  };
17
- var _GxIdeNewKb_advancedTabHasBeenRendered, _GxIdeNewKb_componentLocale, _GxIdeNewKb_frontEndsCheckedMap, _GxIdeNewKb_selectedPrototypingEnvironmentId, _GxIdeNewKb_selectedDataSourceId, _GxIdeNewKb_shortcutsSrc, _GxIdeNewKb_kbSectionsModel, _GxIdeNewKb_authenticationTypeEl, _GxIdeNewKb_collationEl, _GxIdeNewKb_createDataFilesInKBFolderEl, _GxIdeNewKb_databaseNameEl, _GxIdeNewKb_dataSourceEl, _GxIdeNewKb_kbNameEl, _GxIdeNewKb_locationEl, _GxIdeNewKb_locationModeEl, _GxIdeNewKb_locationModeModel, _GxIdeNewKb_locationElRegistered, _GxIdeNewKb_credentialControlsRegistered, _GxIdeNewKb_passwordEl, _GxIdeNewKb_prototypingEnvironmentEl, _GxIdeNewKb_prototypingTargetEl, _GxIdeNewKb_savePasswordEl, _GxIdeNewKb_serverNameEl, _GxIdeNewKb_userInterfaceLanguageEl, _GxIdeNewKb_userNameEl, _GxIdeNewKb_chShortcutsEl, _GxIdeNewKb_computeDefaultDatabaseName, _GxIdeNewKb_kbNameInputHandler, _GxIdeNewKb_databaseNameInputHandler, _GxIdeNewKb_handlerAuthenticationTypeInput, _GxIdeNewKb_handlerCredentialsChanged, _GxIdeNewKb_browseForMoreHandler, _GxIdeNewKb_serverNameChangedHandler, _GxIdeNewKb_classifyServer, _GxIdeNewKb_createDataFilesInKBFolderDisabled, _GxIdeNewKb_sqlAuthMissingCredentials, _GxIdeNewKb_applyCreateDataFilesInKBFolderForServer, _GxIdeNewKb_loadCollationsForCurrentConnection, _GxIdeNewKb_prototypingEnvironmentValueChangedHandler, _GxIdeNewKb_prototypingTargetValueChangedHandler, _GxIdeNewKb_dataSourceValueChangedHandler, _GxIdeNewKb_renderAdvanced, _GxIdeNewKb_renderBasic, _GxIdeNewKb_cancelKbHandler, _GxIdeNewKb_createKbHandler, _GxIdeNewKb_evaluateTooltipRender, _GxIdeNewKb_frontEndCheckboxInputHandler, _GxIdeNewKb_updateFrontEndsCheckedMap, _GxIdeNewKb_getPrototypingEnvironments, _GxIdeNewKb_getDataSources, _GxIdeNewKb_initialSetupAdvancedTab, _GxIdeNewKb_initializeValidatableControlsBasicTab, _GxIdeNewKb_initializeValidatableControlsAdvancedTab, _GxIdeNewKb_selectLocationHandler, _GxIdeNewKb_locationModeChangeHandler, _GxIdeNewKb_tabSelectionChangedHandler, _GxIdeNewKb_loadAdvancedTabData, _GxIdeNewKb_updateFrontEnds;
17
+ var _GxIdeNewKb_advancedTabHasBeenRendered, _GxIdeNewKb_componentLocale, _GxIdeNewKb_frontEndsCheckedMap, _GxIdeNewKb_selectedPrototypingEnvironmentId, _GxIdeNewKb_selectedDataSourceId, _GxIdeNewKb_shortcutsSrc, _GxIdeNewKb_kbSectionsModel, _GxIdeNewKb_authenticationTypeEl, _GxIdeNewKb_collationEl, _GxIdeNewKb_createDataFilesInKBFolderEl, _GxIdeNewKb_databaseNameEl, _GxIdeNewKb_dataSourceEl, _GxIdeNewKb_kbNameEl, _GxIdeNewKb_locationEl, _GxIdeNewKb_locationElRegistered, _GxIdeNewKb_credentialControlsRegistered, _GxIdeNewKb_passwordEl, _GxIdeNewKb_prototypingEnvironmentEl, _GxIdeNewKb_prototypingTargetEl, _GxIdeNewKb_savePasswordEl, _GxIdeNewKb_serverNameEl, _GxIdeNewKb_userInterfaceLanguageEl, _GxIdeNewKb_userNameEl, _GxIdeNewKb_collationsRequestId, _GxIdeNewKb_chShortcutsEl, _GxIdeNewKb_computeDefaultDatabaseName, _GxIdeNewKb_kbNameInputHandler, _GxIdeNewKb_databaseNameInputHandler, _GxIdeNewKb_handlerAuthenticationTypeInput, _GxIdeNewKb_handlerCredentialsChanged, _GxIdeNewKb_browseForMoreHandler, _GxIdeNewKb_serverNameChangedHandler, _GxIdeNewKb_classifyServer, _GxIdeNewKb_createDataFilesInKBFolderDisabled, _GxIdeNewKb_sqlAuthMissingCredentials, _GxIdeNewKb_applyCreateDataFilesInKBFolderForServer, _GxIdeNewKb_loadCollationsForCurrentConnection, _GxIdeNewKb_prototypingEnvironmentValueChangedHandler, _GxIdeNewKb_prototypingTargetValueChangedHandler, _GxIdeNewKb_dataSourceValueChangedHandler, _GxIdeNewKb_renderAdvanced, _GxIdeNewKb_renderBasic, _GxIdeNewKb_cancelKbHandler, _GxIdeNewKb_createKbHandler, _GxIdeNewKb_evaluateTooltipRender, _GxIdeNewKb_frontEndCheckboxInputHandler, _GxIdeNewKb_recomputeBackendOnly, _GxIdeNewKb_updateFrontEndsCheckedMap, _GxIdeNewKb_getPrototypingEnvironments, _GxIdeNewKb_getDataSources, _GxIdeNewKb_initialSetupAdvancedTab, _GxIdeNewKb_initializeValidatableControlsBasicTab, _GxIdeNewKb_initializeValidatableControlsAdvancedTab, _GxIdeNewKb_selectLocationHandler, _GxIdeNewKb_tabSelectionChangedHandler, _GxIdeNewKb_loadAdvancedTabData, _GxIdeNewKb_updateFrontEnds;
18
18
  import { Host, getAssetPath, h } from "@stencil/core";
19
19
  import { getIconPath } from "@genexus/mercury";
20
20
  import { config } from "../../common/config";
@@ -52,8 +52,16 @@ const DATABASE_ICON = getIconPath({
52
52
  name: "database",
53
53
  colorType: "primary"
54
54
  });
55
- const LOCATION_MODE_DEFAULT = "default";
56
- const LOCATION_MODE_CUSTOM = "custom";
55
+ const SUCCESS_ICON = getIconPath({
56
+ category: "system",
57
+ name: "check-circle",
58
+ colorType: "success"
59
+ });
60
+ const ERROR_ICON = getIconPath({
61
+ category: "system",
62
+ name: "warning",
63
+ colorType: "error"
64
+ });
57
65
  const DATABASE_NAME_PREFIX = "GX_KB_";
58
66
  const BASIC_TAB_SELECTOR = "basic";
59
67
  const ADVANCED_TAB_SELECTOR = "advanced";
@@ -82,8 +90,6 @@ export class GxIdeNewKb {
82
90
  _GxIdeNewKb_dataSourceEl.set(this, void 0);
83
91
  _GxIdeNewKb_kbNameEl.set(this, void 0);
84
92
  _GxIdeNewKb_locationEl.set(this, void 0);
85
- _GxIdeNewKb_locationModeEl.set(this, void 0);
86
- _GxIdeNewKb_locationModeModel.set(this, void 0);
87
93
  _GxIdeNewKb_locationElRegistered.set(this, false);
88
94
  _GxIdeNewKb_credentialControlsRegistered.set(this, false);
89
95
  _GxIdeNewKb_passwordEl.set(this, void 0);
@@ -93,6 +99,13 @@ export class GxIdeNewKb {
93
99
  _GxIdeNewKb_serverNameEl.set(this, void 0);
94
100
  _GxIdeNewKb_userInterfaceLanguageEl.set(this, void 0);
95
101
  _GxIdeNewKb_userNameEl.set(this, void 0);
102
+ /**
103
+ * Monotonic id of the latest collations request. Used to discard stale
104
+ * responses: a slow request for an invalid instance can resolve after a
105
+ * newer request for a valid instance, and without this guard it would
106
+ * overwrite the UI with the wrong (failed) result.
107
+ */
108
+ _GxIdeNewKb_collationsRequestId.set(this, 0);
96
109
  _GxIdeNewKb_chShortcutsEl.set(this, void 0);
97
110
  _GxIdeNewKb_computeDefaultDatabaseName.set(this, (kbName) => `${DATABASE_NAME_PREFIX}${kbName !== null && kbName !== void 0 ? kbName : ""}`);
98
111
  _GxIdeNewKb_kbNameInputHandler.set(this, (e) => {
@@ -178,10 +191,9 @@ export class GxIdeNewKb {
178
191
  });
179
192
  _GxIdeNewKb_loadCollationsForCurrentConnection.set(this, async () => {
180
193
  var _a, _b, _c, _d;
194
+ var _e;
181
195
  const selectedInstance = this.serverNameValue;
182
- if (!selectedInstance ||
183
- !this.getCollationsForInstanceCallback ||
184
- this.connectionStatus === "connecting") {
196
+ if (!selectedInstance || !this.getCollationsForInstanceCallback) {
185
197
  return;
186
198
  }
187
199
  const authType = this.authenticationTypeValue;
@@ -191,9 +203,17 @@ export class GxIdeNewKb {
191
203
  if (!isWindowsAuth && authType && (!userName || !password)) {
192
204
  return;
193
205
  }
206
+ // Tag this request so we can ignore its response if a newer request is
207
+ // fired before it resolves (e.g. the user fixes an invalid server name
208
+ // while the slow request for the invalid one is still pending).
209
+ const requestId = __classPrivateFieldSet(this, _GxIdeNewKb_collationsRequestId, (_e = __classPrivateFieldGet(this, _GxIdeNewKb_collationsRequestId, "f"), ++_e), "f");
194
210
  this.connectionStatus = "connecting";
195
211
  try {
196
212
  const result = await this.getCollationsForInstanceCallback(selectedInstance, authType, userName, password);
213
+ if (requestId !== __classPrivateFieldGet(this, _GxIdeNewKb_collationsRequestId, "f")) {
214
+ // A newer request superseded this one; discard the stale response.
215
+ return;
216
+ }
197
217
  if (result) {
198
218
  this.collations = (_c = result.collations) !== null && _c !== void 0 ? _c : [];
199
219
  this.defaultCollation = (_d = result.defaultCollation) !== null && _d !== void 0 ? _d : undefined;
@@ -205,7 +225,10 @@ export class GxIdeNewKb {
205
225
  this.connectionStatus = "failed";
206
226
  }
207
227
  }
208
- catch (_e) {
228
+ catch (_f) {
229
+ if (requestId !== __classPrivateFieldGet(this, _GxIdeNewKb_collationsRequestId, "f")) {
230
+ return;
231
+ }
209
232
  this.collations = [];
210
233
  this.defaultCollation = undefined;
211
234
  this.connectionStatus = "failed";
@@ -274,7 +297,9 @@ export class GxIdeNewKb {
274
297
  ? __classPrivateFieldGet(this, _GxIdeNewKb_componentLocale, "f").tabBasic.backEnd.dataSource
275
298
  .disabledPlaceholder
276
299
  : "", value: __classPrivateFieldGet(this, _GxIdeNewKb_selectedDataSourceId, "f"), ref: (el) => (__classPrivateFieldSet(this, _GxIdeNewKb_dataSourceEl, el, "f")), onInput: __classPrivateFieldGet(this, _GxIdeNewKb_dataSourceValueChangedHandler, "f"), model: this.defaultDataSourcesComboBoxModel, part: "data-source", id: "dataSource" }), __classPrivateFieldGet(this, _GxIdeNewKb_evaluateTooltipRender, "f").call(this, __classPrivateFieldGet(this, _GxIdeNewKb_dataSourceEl, "f"))))),
277
- h("section", { class: "section__front-end" }, h("h2", { class: "dialog-header dialog-header-with-border dialog-header__front-end subtitle-regular-xs\t text-align-center spacing-body-inline" }, __classPrivateFieldGet(this, _GxIdeNewKb_componentLocale, "f").tabBasic.frontEnd.frontEndLabel), h("div", { class: "field-group main__front-end spacing-body-inline scrollable" }, renderChCheckboxItems(this.frontEnds, __classPrivateFieldGet(this, _GxIdeNewKb_frontEndCheckboxInputHandler, "f"), __classPrivateFieldGet(this, _GxIdeNewKb_frontEndsCheckedMap, "f").get(__classPrivateFieldGet(this, _GxIdeNewKb_selectedPrototypingEnvironmentId, "f")))))
300
+ h("section", { class: "section__front-end" }, h("h2", { class: "dialog-header dialog-header-with-border dialog-header__front-end subtitle-regular-xs\t text-align-center spacing-body-inline" }, __classPrivateFieldGet(this, _GxIdeNewKb_componentLocale, "f").tabBasic.frontEnd.frontEndLabel), h("div", { class: "field-group main__front-end spacing-body-inline scrollable" }, renderChCheckboxItems(this.frontEnds, __classPrivateFieldGet(this, _GxIdeNewKb_frontEndCheckboxInputHandler, "f"), __classPrivateFieldGet(this, _GxIdeNewKb_frontEndsCheckedMap, "f").get(__classPrivateFieldGet(this, _GxIdeNewKb_selectedPrototypingEnvironmentId, "f"))), this.noFrontEndSelected && (h("div", { class: "kb-storage-callout", part: "backend-only-callout" }, h("ch-image", { class: "icon-l", src: WARNING_ICON, type: "mask" }), h("div", { class: "kb-storage-callout-inner" }, h("span", { class: "kb-storage-callout__title body-semi-bold-s" }, __classPrivateFieldGet(this, _GxIdeNewKb_componentLocale, "f").tabBasic.frontEnd
301
+ .backendOnlyCalloutTitle), h("span", { class: "kb-storage-callout__description body-regular-xs" }, __classPrivateFieldGet(this, _GxIdeNewKb_componentLocale, "f").tabBasic.frontEnd
302
+ .backendOnlyCalloutDescription))))))
278
303
  ];
279
304
  });
280
305
  // - - - - - - - - - -
@@ -318,6 +343,17 @@ export class GxIdeNewKb {
318
343
  const checkedValue = event.target.checkedValue;
319
344
  const checked = event.detail === checkedValue;
320
345
  __classPrivateFieldGet(this, _GxIdeNewKb_updateFrontEndsCheckedMap, "f").call(this, checkedValue, checked);
346
+ __classPrivateFieldGet(this, _GxIdeNewKb_recomputeBackendOnly, "f").call(this);
347
+ });
348
+ /**
349
+ * Recomputes whether the KB will be generated as backend only, i.e. there
350
+ * are front ends to choose from but none is currently selected.
351
+ */
352
+ _GxIdeNewKb_recomputeBackendOnly.set(this, () => {
353
+ var _a, _b, _c;
354
+ const checkedIds = __classPrivateFieldGet(this, _GxIdeNewKb_frontEndsCheckedMap, "f").get(__classPrivateFieldGet(this, _GxIdeNewKb_selectedPrototypingEnvironmentId, "f"));
355
+ this.noFrontEndSelected =
356
+ ((_b = (_a = this.frontEnds) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) > 0 && ((_c = checkedIds === null || checkedIds === void 0 ? void 0 : checkedIds.length) !== null && _c !== void 0 ? _c : 0) === 0;
321
357
  });
322
358
  /**
323
359
  * This function updates frontEndsCheckedMap, that contains the checked
@@ -423,22 +459,22 @@ export class GxIdeNewKb {
423
459
  }
424
460
  });
425
461
  });
426
- /**
427
- * @description It allows defining the DBMS that will be used in the solution
428
- */
429
- // eslint-disable-next-line @stencil-community/own-props-must-be-private
430
- _GxIdeNewKb_selectLocationHandler.set(this, () => {
431
- this.selectLocationCallback().then(kbLocation => {
432
- if (kbLocation) {
433
- this.kbLocation = kbLocation;
434
- }
435
- else {
436
- // to be defined
437
- }
438
- });
439
- });
440
- _GxIdeNewKb_locationModeChangeHandler.set(this, () => {
441
- this.locationMode = __classPrivateFieldGet(this, _GxIdeNewKb_locationModeEl, "f").value;
462
+ _GxIdeNewKb_selectLocationHandler.set(this, async (event) => {
463
+ var _a;
464
+ // Capture the button before awaiting. Opening/closing the location picker
465
+ // restores focus to it programmatically, leaving the :focus-visible outline
466
+ // lingering as if it were still active. On a successful selection move focus
467
+ // to the location input (natural next step, keyboard-friendly); otherwise
468
+ // just blur the button so the outline doesn't stay pinned.
469
+ const button = event.currentTarget;
470
+ const kbLocation = await this.selectLocationCallback();
471
+ if (kbLocation) {
472
+ this.kbLocation = kbLocation;
473
+ (_a = __classPrivateFieldGet(this, _GxIdeNewKb_locationEl, "f")) === null || _a === void 0 ? void 0 : _a.focus();
474
+ }
475
+ else {
476
+ button === null || button === void 0 ? void 0 : button.blur();
477
+ }
442
478
  });
443
479
  _GxIdeNewKb_tabSelectionChangedHandler.set(this, (event) => {
444
480
  this.selectedTab = event.detail.newSelectedId;
@@ -505,14 +541,15 @@ export class GxIdeNewKb {
505
541
  __classPrivateFieldGet(this, _GxIdeNewKb_frontEndsCheckedMap, "f").set(__classPrivateFieldGet(this, _GxIdeNewKb_selectedPrototypingEnvironmentId, "f"), checkedIds);
506
542
  }
507
543
  }
544
+ __classPrivateFieldGet(this, _GxIdeNewKb_recomputeBackendOnly, "f").call(this);
508
545
  }
509
546
  });
510
547
  this.advancedTabIsVisible = false;
511
548
  this.loadingAdvancedTab = false;
512
549
  this.browseForMoreDialogOpen = false;
513
550
  this.databaseNameValue = "";
514
- this.locationMode = LOCATION_MODE_DEFAULT;
515
551
  this.frontEnds = undefined;
552
+ this.noFrontEndSelected = false;
516
553
  this.validatableControls = new Map();
517
554
  this.connectionStatus = undefined;
518
555
  this.userNameValue = "";
@@ -628,16 +665,6 @@ export class GxIdeNewKb {
628
665
  name: __classPrivateFieldGet(this, _GxIdeNewKb_componentLocale, "f").tabAdvanced.tabLabel
629
666
  }
630
667
  ], "f");
631
- __classPrivateFieldSet(this, _GxIdeNewKb_locationModeModel, [
632
- {
633
- value: LOCATION_MODE_DEFAULT,
634
- caption: __classPrivateFieldGet(this, _GxIdeNewKb_componentLocale, "f").header.kbLocationDefault
635
- },
636
- {
637
- value: LOCATION_MODE_CUSTOM,
638
- caption: __classPrivateFieldGet(this, _GxIdeNewKb_componentLocale, "f").header.kbLocationCustom
639
- }
640
- ], "f");
641
668
  }
642
669
  connectedCallback() {
643
670
  this.watchDefaultDataSources(this.defaultDataSources);
@@ -649,16 +676,18 @@ export class GxIdeNewKb {
649
676
  __classPrivateFieldGet(this, _GxIdeNewKb_initializeValidatableControlsBasicTab, "f").call(this);
650
677
  }
651
678
  componentDidRender() {
652
- if (this.advancedTabIsVisible && !__classPrivateFieldGet(this, _GxIdeNewKb_advancedTabHasBeenRendered, "f")) {
679
+ // Defer the one-time setup until the real advanced content is rendered
680
+ // (not the loader); otherwise the control refs it reads are still undefined.
681
+ if (this.advancedTabIsVisible &&
682
+ !this.loadingAdvancedTab &&
683
+ !__classPrivateFieldGet(this, _GxIdeNewKb_advancedTabHasBeenRendered, "f")) {
653
684
  // just call this once.
654
685
  __classPrivateFieldGet(this, _GxIdeNewKb_initialSetupAdvancedTab, "f").call(this);
655
686
  __classPrivateFieldGet(this, _GxIdeNewKb_initializeValidatableControlsAdvancedTab, "f").call(this);
656
687
  __classPrivateFieldSet(this, _GxIdeNewKb_advancedTabHasBeenRendered, true, "f");
657
688
  }
658
- // Register the location input for validation once it's rendered (custom mode)
659
- if (this.locationMode === LOCATION_MODE_CUSTOM &&
660
- !__classPrivateFieldGet(this, _GxIdeNewKb_locationElRegistered, "f") &&
661
- __classPrivateFieldGet(this, _GxIdeNewKb_locationEl, "f")) {
689
+ // Register the location input for validation once it's rendered
690
+ if (!__classPrivateFieldGet(this, _GxIdeNewKb_locationElRegistered, "f") && __classPrivateFieldGet(this, _GxIdeNewKb_locationEl, "f")) {
662
691
  this.validatableControls.set(__classPrivateFieldGet(this, _GxIdeNewKb_locationEl, "f").id, {
663
692
  reference: __classPrivateFieldGet(this, _GxIdeNewKb_locationEl, "f"),
664
693
  hasError: false,
@@ -715,22 +744,23 @@ export class GxIdeNewKb {
715
744
  }, h("label", { class: "label kb-label", htmlFor: "kbName" }, __classPrivateFieldGet(this, _GxIdeNewKb_componentLocale, "f").header.kbName), h("ch-edit", {
716
745
  // TODO add placeholder
717
746
  autoFocus: true, class: "input kb-input", placeholder: "SalesInventory", value: this.kbName, onInput: __classPrivateFieldGet(this, _GxIdeNewKb_kbNameInputHandler, "f"), ref: (el) => (__classPrivateFieldSet(this, _GxIdeNewKb_kbNameEl, el, "f")), id: "kbName", part: "kb-name"
718
- }), __classPrivateFieldGet(this, _GxIdeNewKb_evaluateTooltipRender, "f").call(this, __classPrivateFieldGet(this, _GxIdeNewKb_kbNameEl, "f"))), this.canSetLocation && (h("div", { class: "location-wrapper" }, h("label", { class: "label location-label" }, __classPrivateFieldGet(this, _GxIdeNewKb_componentLocale, "f").header.kbLocation), h("ch-radio-group-render", { class: "radio-group", model: __classPrivateFieldGet(this, _GxIdeNewKb_locationModeModel, "f"), value: LOCATION_MODE_DEFAULT, onChange: __classPrivateFieldGet(this, _GxIdeNewKb_locationModeChangeHandler, "f"), ref: (el) => (__classPrivateFieldSet(this, _GxIdeNewKb_locationModeEl, el, "f")) }), this.locationMode === LOCATION_MODE_CUSTOM && (h("div", { class: "location-custom-wrapper" }, h("div", { class: "location-field" }, h("ch-edit", { class: "input", value: this.kbLocation, ref: (el) => (__classPrivateFieldSet(this, _GxIdeNewKb_locationEl, el, "f")), id: "kbLocation", part: "kb-location" }), __classPrivateFieldGet(this, _GxIdeNewKb_evaluateTooltipRender, "f").call(this, __classPrivateFieldGet(this, _GxIdeNewKb_locationEl, "f"))), h("button", { class: "button-tertiary button-icon-only location-icon", "aria-label": __classPrivateFieldGet(this, _GxIdeNewKb_componentLocale, "f").header.selectLocationButton, title: __classPrivateFieldGet(this, _GxIdeNewKb_componentLocale, "f").header.selectLocationButton, part: "button-select-location", onClick: __classPrivateFieldGet(this, _GxIdeNewKb_selectLocationHandler, "f") }, h("ch-image", { class: "icon-m", src: SYSTEM_ICON }))))))), this.isAdvanced ? (h("ch-tab-render", {
747
+ }), __classPrivateFieldGet(this, _GxIdeNewKb_evaluateTooltipRender, "f").call(this, __classPrivateFieldGet(this, _GxIdeNewKb_kbNameEl, "f"))), this.canSetLocation && (h("div", { class: "field field-inline" }, h("label", { class: "label", htmlFor: "kbLocation" }, __classPrivateFieldGet(this, _GxIdeNewKb_componentLocale, "f").header.kbLocation), h("div", { class: "location-custom-wrapper" }, h("div", { class: "location-field" }, h("ch-edit", { class: "input", value: this.kbLocation, ref: (el) => (__classPrivateFieldSet(this, _GxIdeNewKb_locationEl, el, "f")), id: "kbLocation", part: "kb-location" }), __classPrivateFieldGet(this, _GxIdeNewKb_evaluateTooltipRender, "f").call(this, __classPrivateFieldGet(this, _GxIdeNewKb_locationEl, "f"))), h("button", { class: "button-tertiary button-icon-only ", "aria-label": __classPrivateFieldGet(this, _GxIdeNewKb_componentLocale, "f").header.selectLocationButton, title: __classPrivateFieldGet(this, _GxIdeNewKb_componentLocale, "f").header.selectLocationButton, part: "button-select-location", onClick: __classPrivateFieldGet(this, _GxIdeNewKb_selectLocationHandler, "f"), type: "button" }, h("ch-image", { class: "icon-m", src: SYSTEM_ICON })))))), this.isAdvanced ? (h("ch-tab-render", {
719
748
  // #tab
720
749
  class: {
721
750
  scrollable: true,
722
751
  tab: true,
723
752
  [MAIN_SECTION_CLASSES]: true
724
753
  }, tabListPosition: "block-start", model: __classPrivateFieldGet(this, _GxIdeNewKb_kbSectionsModel, "f"), selectedId: BASIC_TAB_SELECTOR, overflow: "auto", contain: "size", onSelectedItemChange: __classPrivateFieldGet(this, _GxIdeNewKb_tabSelectionChangedHandler, "f")
725
- }, h("div", { slot: BASIC_TAB_SELECTOR, class: BASIC_SECTION_PARENT_CLASSES, part: "tab-button-basic" }, __classPrivateFieldGet(this, _GxIdeNewKb_renderBasic, "f").call(this)), this.advancedTabIsVisible && (h("div", { slot: ADVANCED_TAB_SELECTOR, class: "advanced", part: "tab-button-advanced" }, __classPrivateFieldGet(this, _GxIdeNewKb_renderAdvanced, "f").call(this))))) : (h("div", { class: MAIN_SECTION_CLASSES }, h("div", { class: BASIC_SECTION_PARENT_CLASSES }, __classPrivateFieldGet(this, _GxIdeNewKb_renderBasic, "f").call(this)))), h("footer", { class: {
754
+ }, h("div", { slot: BASIC_TAB_SELECTOR, class: BASIC_SECTION_PARENT_CLASSES, part: "tab-button-basic" }, __classPrivateFieldGet(this, _GxIdeNewKb_renderBasic, "f").call(this)), this.advancedTabIsVisible && (h("div", { slot: ADVANCED_TAB_SELECTOR, class: "advanced", part: "tab-button-advanced" }, this.loadingAdvancedTab ? (h("gx-ide-loader", { show: true, class: "advanced-loader", loaderTitle: __classPrivateFieldGet(this, _GxIdeNewKb_componentLocale, "f").loader.title, description: __classPrivateFieldGet(this, _GxIdeNewKb_componentLocale, "f").loader.description })) : (__classPrivateFieldGet(this, _GxIdeNewKb_renderAdvanced, "f").call(this)))))) : (h("div", { class: MAIN_SECTION_CLASSES }, h("div", { class: BASIC_SECTION_PARENT_CLASSES }, __classPrivateFieldGet(this, _GxIdeNewKb_renderBasic, "f").call(this)))), h("footer", { class: {
726
755
  "footer": true,
727
756
  "dialog-footer-with-border": true,
728
757
  "spacing-body-block-end": true,
729
758
  "spacing-body-inline": true
730
759
  } }, this.connectionStatus && (h("span", { class: {
760
+ "body-semi-bold-s": true,
731
761
  "connection-status": true,
732
762
  [`connection-status--${this.connectionStatus}`]: true
733
- }, part: `connection-status connection-status-${this.connectionStatus}` }, __classPrivateFieldGet(this, _GxIdeNewKb_componentLocale, "f").footer.connectionStatus[this.connectionStatus])), h("div", { class: "buttons-spacer" }, h("button", {
763
+ }, part: `connection-status connection-status-${this.connectionStatus}` }, this.connectionStatus === "connecting" && (h("span", { class: "connection-status__spinner" })), this.connectionStatus === "success" && (h("ch-image", { class: "icon-m", src: SUCCESS_ICON, type: "mask" })), this.connectionStatus === "failed" && (h("ch-image", { class: "icon-m", src: ERROR_ICON, type: "mask" })), __classPrivateFieldGet(this, _GxIdeNewKb_componentLocale, "f").footer.connectionStatus[this.connectionStatus])), h("div", { class: "buttons-spacer" }, h("button", {
734
764
  // #cancel
735
765
  class: "button-secondary", id: "button-cancel", onClick: __classPrivateFieldGet(this, _GxIdeNewKb_cancelKbHandler, "f"), part: "button-cancel"
736
766
  }, __classPrivateFieldGet(this, _GxIdeNewKb_componentLocale, "f").footer.btnCancel), h("button", {
@@ -1197,8 +1227,8 @@ export class GxIdeNewKb {
1197
1227
  "loadingAdvancedTab": {},
1198
1228
  "browseForMoreDialogOpen": {},
1199
1229
  "databaseNameValue": {},
1200
- "locationMode": {},
1201
1230
  "frontEnds": {},
1231
+ "noFrontEndSelected": {},
1202
1232
  "validatableControls": {},
1203
1233
  "connectionStatus": {},
1204
1234
  "userNameValue": {},
@@ -1273,5 +1303,5 @@ export class GxIdeNewKb {
1273
1303
  }];
1274
1304
  }
1275
1305
  }
1276
- _GxIdeNewKb_advancedTabHasBeenRendered = new WeakMap(), _GxIdeNewKb_componentLocale = new WeakMap(), _GxIdeNewKb_frontEndsCheckedMap = new WeakMap(), _GxIdeNewKb_selectedPrototypingEnvironmentId = new WeakMap(), _GxIdeNewKb_selectedDataSourceId = new WeakMap(), _GxIdeNewKb_shortcutsSrc = new WeakMap(), _GxIdeNewKb_kbSectionsModel = new WeakMap(), _GxIdeNewKb_authenticationTypeEl = new WeakMap(), _GxIdeNewKb_collationEl = new WeakMap(), _GxIdeNewKb_createDataFilesInKBFolderEl = new WeakMap(), _GxIdeNewKb_databaseNameEl = new WeakMap(), _GxIdeNewKb_dataSourceEl = new WeakMap(), _GxIdeNewKb_kbNameEl = new WeakMap(), _GxIdeNewKb_locationEl = new WeakMap(), _GxIdeNewKb_locationModeEl = new WeakMap(), _GxIdeNewKb_locationModeModel = new WeakMap(), _GxIdeNewKb_locationElRegistered = new WeakMap(), _GxIdeNewKb_credentialControlsRegistered = new WeakMap(), _GxIdeNewKb_passwordEl = new WeakMap(), _GxIdeNewKb_prototypingEnvironmentEl = new WeakMap(), _GxIdeNewKb_prototypingTargetEl = new WeakMap(), _GxIdeNewKb_savePasswordEl = new WeakMap(), _GxIdeNewKb_serverNameEl = new WeakMap(), _GxIdeNewKb_userInterfaceLanguageEl = new WeakMap(), _GxIdeNewKb_userNameEl = new WeakMap(), _GxIdeNewKb_chShortcutsEl = new WeakMap(), _GxIdeNewKb_computeDefaultDatabaseName = new WeakMap(), _GxIdeNewKb_kbNameInputHandler = new WeakMap(), _GxIdeNewKb_databaseNameInputHandler = new WeakMap(), _GxIdeNewKb_handlerAuthenticationTypeInput = new WeakMap(), _GxIdeNewKb_handlerCredentialsChanged = new WeakMap(), _GxIdeNewKb_browseForMoreHandler = new WeakMap(), _GxIdeNewKb_serverNameChangedHandler = new WeakMap(), _GxIdeNewKb_classifyServer = new WeakMap(), _GxIdeNewKb_createDataFilesInKBFolderDisabled = new WeakMap(), _GxIdeNewKb_sqlAuthMissingCredentials = new WeakMap(), _GxIdeNewKb_applyCreateDataFilesInKBFolderForServer = new WeakMap(), _GxIdeNewKb_loadCollationsForCurrentConnection = new WeakMap(), _GxIdeNewKb_prototypingEnvironmentValueChangedHandler = new WeakMap(), _GxIdeNewKb_prototypingTargetValueChangedHandler = new WeakMap(), _GxIdeNewKb_dataSourceValueChangedHandler = new WeakMap(), _GxIdeNewKb_renderAdvanced = new WeakMap(), _GxIdeNewKb_renderBasic = new WeakMap(), _GxIdeNewKb_cancelKbHandler = new WeakMap(), _GxIdeNewKb_createKbHandler = new WeakMap(), _GxIdeNewKb_evaluateTooltipRender = new WeakMap(), _GxIdeNewKb_frontEndCheckboxInputHandler = new WeakMap(), _GxIdeNewKb_updateFrontEndsCheckedMap = new WeakMap(), _GxIdeNewKb_getPrototypingEnvironments = new WeakMap(), _GxIdeNewKb_getDataSources = new WeakMap(), _GxIdeNewKb_initialSetupAdvancedTab = new WeakMap(), _GxIdeNewKb_initializeValidatableControlsBasicTab = new WeakMap(), _GxIdeNewKb_initializeValidatableControlsAdvancedTab = new WeakMap(), _GxIdeNewKb_selectLocationHandler = new WeakMap(), _GxIdeNewKb_locationModeChangeHandler = new WeakMap(), _GxIdeNewKb_tabSelectionChangedHandler = new WeakMap(), _GxIdeNewKb_loadAdvancedTabData = new WeakMap(), _GxIdeNewKb_updateFrontEnds = new WeakMap();
1306
+ _GxIdeNewKb_advancedTabHasBeenRendered = new WeakMap(), _GxIdeNewKb_componentLocale = new WeakMap(), _GxIdeNewKb_frontEndsCheckedMap = new WeakMap(), _GxIdeNewKb_selectedPrototypingEnvironmentId = new WeakMap(), _GxIdeNewKb_selectedDataSourceId = new WeakMap(), _GxIdeNewKb_shortcutsSrc = new WeakMap(), _GxIdeNewKb_kbSectionsModel = new WeakMap(), _GxIdeNewKb_authenticationTypeEl = new WeakMap(), _GxIdeNewKb_collationEl = new WeakMap(), _GxIdeNewKb_createDataFilesInKBFolderEl = new WeakMap(), _GxIdeNewKb_databaseNameEl = new WeakMap(), _GxIdeNewKb_dataSourceEl = new WeakMap(), _GxIdeNewKb_kbNameEl = new WeakMap(), _GxIdeNewKb_locationEl = new WeakMap(), _GxIdeNewKb_locationElRegistered = new WeakMap(), _GxIdeNewKb_credentialControlsRegistered = new WeakMap(), _GxIdeNewKb_passwordEl = new WeakMap(), _GxIdeNewKb_prototypingEnvironmentEl = new WeakMap(), _GxIdeNewKb_prototypingTargetEl = new WeakMap(), _GxIdeNewKb_savePasswordEl = new WeakMap(), _GxIdeNewKb_serverNameEl = new WeakMap(), _GxIdeNewKb_userInterfaceLanguageEl = new WeakMap(), _GxIdeNewKb_userNameEl = new WeakMap(), _GxIdeNewKb_collationsRequestId = new WeakMap(), _GxIdeNewKb_chShortcutsEl = new WeakMap(), _GxIdeNewKb_computeDefaultDatabaseName = new WeakMap(), _GxIdeNewKb_kbNameInputHandler = new WeakMap(), _GxIdeNewKb_databaseNameInputHandler = new WeakMap(), _GxIdeNewKb_handlerAuthenticationTypeInput = new WeakMap(), _GxIdeNewKb_handlerCredentialsChanged = new WeakMap(), _GxIdeNewKb_browseForMoreHandler = new WeakMap(), _GxIdeNewKb_serverNameChangedHandler = new WeakMap(), _GxIdeNewKb_classifyServer = new WeakMap(), _GxIdeNewKb_createDataFilesInKBFolderDisabled = new WeakMap(), _GxIdeNewKb_sqlAuthMissingCredentials = new WeakMap(), _GxIdeNewKb_applyCreateDataFilesInKBFolderForServer = new WeakMap(), _GxIdeNewKb_loadCollationsForCurrentConnection = new WeakMap(), _GxIdeNewKb_prototypingEnvironmentValueChangedHandler = new WeakMap(), _GxIdeNewKb_prototypingTargetValueChangedHandler = new WeakMap(), _GxIdeNewKb_dataSourceValueChangedHandler = new WeakMap(), _GxIdeNewKb_renderAdvanced = new WeakMap(), _GxIdeNewKb_renderBasic = new WeakMap(), _GxIdeNewKb_cancelKbHandler = new WeakMap(), _GxIdeNewKb_createKbHandler = new WeakMap(), _GxIdeNewKb_evaluateTooltipRender = new WeakMap(), _GxIdeNewKb_frontEndCheckboxInputHandler = new WeakMap(), _GxIdeNewKb_recomputeBackendOnly = new WeakMap(), _GxIdeNewKb_updateFrontEndsCheckedMap = new WeakMap(), _GxIdeNewKb_getPrototypingEnvironments = new WeakMap(), _GxIdeNewKb_getDataSources = new WeakMap(), _GxIdeNewKb_initialSetupAdvancedTab = new WeakMap(), _GxIdeNewKb_initializeValidatableControlsBasicTab = new WeakMap(), _GxIdeNewKb_initializeValidatableControlsAdvancedTab = new WeakMap(), _GxIdeNewKb_selectLocationHandler = new WeakMap(), _GxIdeNewKb_tabSelectionChangedHandler = new WeakMap(), _GxIdeNewKb_loadAdvancedTabData = new WeakMap(), _GxIdeNewKb_updateFrontEnds = new WeakMap();
1277
1307
  //# sourceMappingURL=new-kb.js.map