@genexus/genexus-ide-ui 3.2.0 → 3.2.1

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 (27) 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 +45 -5
  3. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js.map +1 -1
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/collection/components/team-dev/create-kb-from-server/create-kb-from-server.css +16 -0
  6. package/dist/collection/components/team-dev/create-kb-from-server/create-kb-from-server.js +102 -5
  7. package/dist/collection/components/team-dev/create-kb-from-server/create-kb-from-server.js.map +1 -1
  8. 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 +5 -1
  9. 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 +5 -1
  10. 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 +5 -1
  11. package/dist/components/gx-ide-create-kb-from-server.js +49 -5
  12. package/dist/components/gx-ide-create-kb-from-server.js.map +1 -1
  13. package/dist/esm/genexus-ide-ui.js +1 -1
  14. package/dist/esm/gx-ide-create-kb-from-server.entry.js +45 -5
  15. package/dist/esm/gx-ide-create-kb-from-server.entry.js.map +1 -1
  16. package/dist/esm/loader.js +1 -1
  17. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  18. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  19. package/dist/genexus-ide-ui/gx-ide-assets/create-kb-from-server/langs/create-kb-from-server.lang.en.json +5 -1
  20. package/dist/genexus-ide-ui/gx-ide-assets/create-kb-from-server/langs/create-kb-from-server.lang.ja.json +5 -1
  21. package/dist/genexus-ide-ui/gx-ide-assets/create-kb-from-server/langs/create-kb-from-server.lang.zh.json +5 -1
  22. package/dist/genexus-ide-ui/{p-83a7e6fb.entry.js → p-cf61384e.entry.js} +162 -94
  23. package/dist/genexus-ide-ui/p-cf61384e.entry.js.map +1 -0
  24. package/dist/types/components/team-dev/create-kb-from-server/create-kb-from-server.d.ts +17 -0
  25. package/dist/types/components.d.ts +30 -6
  26. package/package.json +1 -1
  27. package/dist/genexus-ide-ui/p-83a7e6fb.entry.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { r as t, g as i, h as e, F as s, H as a, a as n } from "./p-9b9ccd0c.js";
1
+ import { r as t, g as i, h as s, F as e, H as a, a as n } from "./p-9b9ccd0c.js";
2
2
 
3
3
  import { g as o } from "./p-d42e842b.js";
4
4
 
@@ -28,34 +28,44 @@ const mapKbsModelToActionListModel = t => {
28
28
  return i;
29
29
  };
30
30
 
31
- const c = "button.button-secondary{border-color:var(--color-border-neutral-default)}:host{display:grid;block-size:100%;grid-template-rows:max-content 1fr max-content}.section{display:contents}header{display:grid;grid-template-rows:max-content;grid-template-columns:1fr 1fr max-content}.button-change{align-self:center;justify-self:end}.main{display:grid;grid-template-columns:1fr;grid-template-rows:max-content 1fr max-content max-content;position:relative}.search-kbs{inline-size:50%}.versions-container{grid-auto-rows:max-content}.versions-container__input{display:grid;grid-template-columns:1fr max-content;gap:var(--spacing-gap-m)}";
31
+ const c = "button.button-secondary{border-color:var(--color-border-neutral-default)}:host{display:grid;block-size:100%;grid-template-rows:max-content 1fr max-content}.section{display:contents}header{display:grid;grid-template-rows:max-content;grid-template-columns:1fr 1fr max-content}.button-change{align-self:center;justify-self:end}.main{display:grid;grid-template-columns:1fr;grid-template-rows:max-content 1fr max-content max-content;position:relative}.search-kbs{inline-size:50%}.versions-container{grid-auto-rows:max-content}.versions-container__input{display:grid;grid-template-columns:1fr max-content;gap:var(--spacing-gap-m)}.location-custom-wrapper{display:flex;align-items:center;gap:var(--spacing-gap-xs);flex-grow:1;min-inline-size:0}.location-field{flex-grow:1;min-inline-size:0}.location-field>.input{inline-size:100%}";
32
32
 
33
- var d = undefined && undefined.__classPrivateFieldSet || function(t, i, e, s, a) {
34
- if (s === "m") throw new TypeError("Private method is not writable");
35
- if (s === "a" && !a) throw new TypeError("Private accessor was defined without a setter");
33
+ var d = undefined && undefined.__classPrivateFieldSet || function(t, i, s, e, a) {
34
+ if (e === "m") throw new TypeError("Private method is not writable");
35
+ if (e === "a" && !a) throw new TypeError("Private accessor was defined without a setter");
36
36
  if (typeof i === "function" ? t !== i || !a : !i.has(t)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
37
- return s === "a" ? a.call(t, e) : a ? a.value = e : i.set(t, e), e;
37
+ return e === "a" ? a.call(t, s) : a ? a.value = s : i.set(t, s), s;
38
38
  };
39
39
 
40
- var f = undefined && undefined.__classPrivateFieldGet || function(t, i, e, s) {
41
- if (e === "a" && !s) throw new TypeError("Private accessor was defined without a getter");
42
- if (typeof i === "function" ? t !== i || !s : !i.has(t)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
43
- return e === "m" ? s : e === "a" ? s.call(t) : s ? s.value : i.get(t);
40
+ var f = undefined && undefined.__classPrivateFieldGet || function(t, i, s, e) {
41
+ if (s === "a" && !e) throw new TypeError("Private accessor was defined without a getter");
42
+ if (typeof i === "function" ? t !== i || !e : !i.has(t)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
43
+ return s === "m" ? e : s === "a" ? e.call(t) : e ? e.value : i.get(t);
44
44
  };
45
45
 
46
- var p, u, m, b, v, w, g, y, k, M, W, x, T, j, _, S, C, E, I, $, A, P, z, L, N;
46
+ var p, u, m, b, v, w, g, y, k, M, W, x, T, j, _, C, S, L, z, E, I, $, A, N, P, F, K, V, B;
47
47
 
48
- const F = [ "resets/box-sizing", "utils/form--full", "utils/layout", "utils/typography", "utils/spacing", "components/list-box", "components/tooltip", "chameleon/scrollbar" ];
48
+ const D = [ "resets/box-sizing", "utils/form--full", "utils/layout", "utils/typography", "utils/spacing", "components/list-box", "components/tooltip", "chameleon/scrollbar" ];
49
49
 
50
- const K = o({
50
+ const U = o({
51
51
  category: "system",
52
52
  name: "information",
53
53
  colorType: "on-surface"
54
54
  });
55
55
 
56
- const V = class {
57
- constructor(s) {
58
- t(this, s);
56
+ const H = o({
57
+ category: "system",
58
+ name: "folder",
59
+ colorType: "primary"
60
+ });
61
+
62
+ const q = "default";
63
+
64
+ const G = "custom";
65
+
66
+ const J = class {
67
+ constructor(e) {
68
+ t(this, e);
59
69
  p.set(this, o({
60
70
  category: "system",
61
71
  name: "search",
@@ -85,10 +95,11 @@ const V = class {
85
95
  M.set(this, false);
86
96
  W.set(this, void 0);
87
97
  x.set(this, void 0);
88
- T.set(this, (() => {
98
+ T.set(this, void 0);
99
+ j.set(this, (() => {
89
100
  this.cancelCallback();
90
101
  }));
91
- j.set(this, (async () => {
102
+ _.set(this, (async () => {
92
103
  this.changeConnectionCallback({
93
104
  authenticationType: this.connectionData.authenticationType,
94
105
  serverUrl: this.connectionData.serverUrl,
@@ -96,7 +107,22 @@ const V = class {
96
107
  userPassword: this.connectionData.userPassword
97
108
  });
98
109
  }));
99
- _.set(this, (async () => {
110
+ C.set(this, (t => {
111
+ this.locationMode = t.detail;
112
+ if (this.locationMode === q) {
113
+ this.kbLocation = "";
114
+ }
115
+ }));
116
+ S.set(this, (async () => {
117
+ const t = await this.selectLocationCallback();
118
+ if (t) {
119
+ this.kbLocation = t;
120
+ }
121
+ }));
122
+ L.set(this, (t => {
123
+ this.kbLocation = t.detail;
124
+ }));
125
+ z.set(this, (async () => {
100
126
  if (this.versionSelectedType !== "Select") {
101
127
  d(this, w, [], "f");
102
128
  }
@@ -104,6 +130,7 @@ const V = class {
104
130
  selectedKB: f(this, k, "f"),
105
131
  versionSelected: this.versionSelectedType,
106
132
  localKBName: this.localKbNameInputValue,
133
+ kbLocation: this.locationMode === G ? this.kbLocation || undefined : undefined,
107
134
  versionList: f(this, w, "f")
108
135
  }).then((t => {
109
136
  this.validatableControls = l(t, this.validatableControls);
@@ -111,9 +138,9 @@ const V = class {
111
138
  }));
112
139
  // TODO: evaluate if this should be a global helper function.
113
140
  // It is used on other dialogs as well.
114
- S.set(this, (t => {
115
- var i, s, a;
116
- return ((s = (i = this.validatableControls) === null || i === void 0 ? void 0 : i.get(t === null || t === void 0 ? void 0 : t.id)) === null || s === void 0 ? void 0 : s.hasError) && ((a = this.validatableControls.get(t.id)) === null || a === void 0 ? void 0 : a.message) && e("ch-tooltip", {
141
+ E.set(this, (t => {
142
+ var i, e, a;
143
+ return ((e = (i = this.validatableControls) === null || i === void 0 ? void 0 : i.get(t === null || t === void 0 ? void 0 : t.id)) === null || e === void 0 ? void 0 : e.hasError) && ((a = this.validatableControls.get(t.id)) === null || a === void 0 ? void 0 : a.message) && s("ch-tooltip", {
117
144
  class: "tooltip",
118
145
  actionElement: t,
119
146
  blockAlign: r.tooltipSettings.blockAlign,
@@ -121,11 +148,11 @@ const V = class {
121
148
  delay: r.tooltipSettings.delay
122
149
  }, this.validatableControls.get(t.id).message);
123
150
  }));
124
- C.set(this, (t => {
151
+ I.set(this, (t => {
125
152
  this.filterValue = t.detail.toLowerCase();
126
153
  this.kbsFilteredActionListModel = f(this, v, "f").filter((t => t.caption.toLowerCase().includes(this.filterValue)));
127
154
  }));
128
- E.set(this, (async () => {
155
+ $.set(this, (async () => {
129
156
  await this.getGXserverKBsCallback({
130
157
  authenticationType: this.connectionData.authenticationType,
131
158
  serverUrl: this.connectionData.serverUrl,
@@ -137,9 +164,9 @@ const V = class {
137
164
  this.filterValue = "";
138
165
  }));
139
166
  }));
140
- I.set(this, (() => {
167
+ A.set(this, (() => {
141
168
  // populate validatableControls with the controls that could have errors.
142
- const t = [ f(this, x, "f") ];
169
+ const t = [ f(this, T, "f") ];
143
170
  t.forEach((t => {
144
171
  if (t.id) {
145
172
  this.validatableControls.set(t.id, {
@@ -150,11 +177,11 @@ const V = class {
150
177
  }
151
178
  }));
152
179
  }));
153
- $.set(this, (t => {
180
+ N.set(this, (t => {
154
181
  this.localKbNameInputValue = t.detail;
155
182
  d(this, M, true, "f");
156
183
  }));
157
- A.set(this, (async () => {
184
+ P.set(this, (async () => {
158
185
  if (this.selectKBVersionsCallback) {
159
186
  await this.selectKBVersionsCallback(f(this, k, "f")).then((t => {
160
187
  if (t === null || t === void 0 ? void 0 : t.length) {
@@ -176,47 +203,47 @@ const V = class {
176
203
  }));
177
204
  }
178
205
  }));
179
- P.set(this, (t => {
206
+ F.set(this, (t => {
180
207
  var i;
181
- const e = (i = t.detail[0]) === null || i === void 0 ? void 0 : i.item;
182
- if (e === undefined) {
208
+ const s = (i = t.detail[0]) === null || i === void 0 ? void 0 : i.item;
209
+ if (s === undefined) {
183
210
  this.enableSelectVersionsButton = false;
184
211
  d(this, k, undefined, "f");
185
212
  return;
186
213
  }
187
214
  this.enableSelectVersionsButton = true;
188
- d(this, k, e.id, "f");
215
+ d(this, k, s.id, "f");
189
216
  if (f(this, M, "f")) {
190
217
  return;
191
218
  }
192
- this.localKbNameInputValue = e.caption;
219
+ this.localKbNameInputValue = s.caption;
193
220
  if (this.versionSelectedType === "Select") {
194
221
  this.versionsValueInput = "";
195
222
  d(this, w, [], "f");
196
223
  }
197
224
  }));
198
- z.set(this, (t => {
225
+ K.set(this, (t => {
199
226
  this.versionSelectedType = t.detail;
200
227
  }));
201
- L.set(this, (t => {
228
+ V.set(this, (t => {
202
229
  t.sort(((t, i) => {
203
- var e, s;
204
- return (e = t.caption) === null || e === void 0 ? void 0 : e.toLocaleLowerCase().localeCompare((s = i.caption) === null || s === void 0 ? void 0 : s.toLocaleLowerCase());
230
+ var s, e;
231
+ return (s = t.caption) === null || s === void 0 ? void 0 : s.toLocaleLowerCase().localeCompare((e = i.caption) === null || e === void 0 ? void 0 : e.toLocaleLowerCase());
205
232
  }));
206
233
  }));
207
- N.set(this, (() => e("footer", {
234
+ B.set(this, (() => s("footer", {
208
235
  class: "footer dialog-footer-with-border spacing-body-inline spacing-body-block-end"
209
- }, e("div", {
236
+ }, s("div", {
210
237
  class: "buttons-spacer"
211
- }, e("button", {
238
+ }, s("button", {
212
239
  // cancel button
213
240
  class: "button-secondary",
214
- onClick: f(this, T, "f"),
241
+ onClick: f(this, j, "f"),
215
242
  part: "button button-cancel"
216
- }, f(this, b, "f").footer.cancel), e("button", {
243
+ }, f(this, b, "f").footer.cancel), s("button", {
217
244
  // create kb button
218
245
  class: "button-primary",
219
- onClick: this.enableSelectVersionsButton && f(this, _, "f"),
246
+ onClick: this.enableSelectVersionsButton && f(this, z, "f"),
220
247
  disabled: !this.enableSelectVersionsButton,
221
248
  part: "button button-create-kb"
222
249
  }, f(this, b, "f").footer.createKb)))));
@@ -228,19 +255,30 @@ const V = class {
228
255
  this.validatableControls = new Map;
229
256
  this.versionSelectedType = undefined;
230
257
  this.versionsValueInput = "";
258
+ this.locationMode = q;
259
+ this.kbLocation = undefined;
260
+ this.canSetLocation = false;
231
261
  this.connectionData = undefined;
232
262
  this.cancelCallback = undefined;
233
263
  this.changeConnectionCallback = undefined;
234
264
  this.createKBCallback = undefined;
235
265
  this.getGXserverKBsCallback = undefined;
266
+ this.selectLocationCallback = undefined;
236
267
  this.selectKBVersionsCallback = undefined;
237
268
  }
238
269
  async componentDidLoad() {
239
- await f(this, E, "f").call(this);
270
+ await f(this, $, "f").call(this);
240
271
  this.loading = false;
241
272
  }
242
273
  async componentWillLoad() {
243
274
  d(this, b, await h.getComponentStrings(this.el), "f");
275
+ d(this, W, [ {
276
+ value: q,
277
+ caption: f(this, b, "f").kb.kbLocationDefault
278
+ }, {
279
+ value: G,
280
+ caption: f(this, b, "f").kb.kbLocationCustom
281
+ } ], "f");
244
282
  }
245
283
  /**
246
284
  * Suspends or reactivates the shortcuts
@@ -252,109 +290,138 @@ const V = class {
252
290
  }
253
291
  }
254
292
  render() {
255
- return e(a, {
293
+ return s(a, {
256
294
  class: "widget"
257
- }, e("ch-theme", {
258
- model: F
259
- }), e("ch-shortcuts", {
295
+ }, s("ch-theme", {
296
+ model: D
297
+ }), s("ch-shortcuts", {
260
298
  src: f(this, y, "f"),
261
299
  ref: t => d(this, g, t, "f")
262
- }), e("section", {
300
+ }), s("section", {
263
301
  class: "section"
264
- }, e("header", {
302
+ }, s("header", {
265
303
  class: "header dialog-header-with-border space-body spacing-body-inline spacing-body-block-start"
266
- }, e("div", {
304
+ }, s("div", {
267
305
  class: "field field-block"
268
- }, e("label", {
306
+ }, s("label", {
269
307
  class: "label"
270
- }, f(this, b, "f").header.serverUrl), e("p", null, this.connectionData.serverUrl)), e("div", {
308
+ }, f(this, b, "f").header.serverUrl), s("p", null, this.connectionData.serverUrl)), s("div", {
271
309
  class: "field field-block"
272
- }, e("label", {
310
+ }, s("label", {
273
311
  class: "label"
274
- }, f(this, b, "f").header.user), e("p", null, this.connectionData.userName)), e("button", {
312
+ }, f(this, b, "f").header.user), s("p", null, this.connectionData.userName)), s("button", {
275
313
  id: "change-connection-button",
276
314
  class: "button-tertiary button-change",
277
- onClick: f(this, j, "f")
278
- }, f(this, b, "f").header.change)), e("section", {
315
+ onClick: f(this, _, "f")
316
+ }, f(this, b, "f").header.change)), s("section", {
279
317
  class: "main field-group spacing-body"
280
- }, this.loading ? e("gx-ide-loader", {
318
+ }, this.loading ? s("gx-ide-loader", {
281
319
  loaderTitle: f(this, b, "f").loader.title,
282
320
  description: f(this, b, "f").loader.description,
283
321
  show: true
284
- }) : e(s, null, e("ch-edit", {
322
+ }) : s(e, null, s("ch-edit", {
285
323
  class: "input search-kbs",
286
324
  id: "local-kb-name",
287
325
  startImgSrc: f(this, p, "f"),
288
326
  type: "search",
289
- onInput: f(this, C, "f"),
327
+ onInput: f(this, I, "f"),
290
328
  placeholder: f(this, b, "f").kb.searchKbsPlaceholder
291
- }), f(this, v, "f").length === 0 || this.kbsFilteredActionListModel.length === 0 ? e("div", {
329
+ }), f(this, v, "f").length === 0 || this.kbsFilteredActionListModel.length === 0 ? s("div", {
292
330
  class: "list-box"
293
- }, e("gx-ide-empty-state", {
294
- stateIconSrc: K,
331
+ }, s("gx-ide-empty-state", {
332
+ stateIconSrc: U,
295
333
  stateTitle: f(this, b, "f").emptyKBsText,
296
334
  isAnimated: true
297
- })) : e("ch-action-list-render", {
335
+ })) : s("ch-action-list-render", {
298
336
  selection: "single",
299
337
  class: "list-box",
300
- onSelectedItemsChange: f(this, P, "f"),
338
+ onSelectedItemsChange: f(this, F, "f"),
301
339
  model: this.kbsFilteredActionListModel,
302
- sortItemsCallback: f(this, L, "f")
303
- }), e("div", {
340
+ sortItemsCallback: f(this, V, "f")
341
+ }), s("div", {
304
342
  class: "versions-container field-group"
305
- }, e("ch-radio-group-render", {
343
+ }, s("ch-radio-group-render", {
306
344
  class: "radio-group",
307
345
  model: f(this, m, "f"),
308
- onChange: f(this, z, "f"),
346
+ onChange: f(this, K, "f"),
309
347
  value: f(this, m, "f")[0].value,
310
348
  ref: t => {
311
- d(this, W, t, "f");
312
- if (f(this, W, "f")) {
313
- this.versionSelectedType = f(this, W, "f").value;
349
+ d(this, x, t, "f");
350
+ if (f(this, x, "f")) {
351
+ this.versionSelectedType = f(this, x, "f").value;
314
352
  }
315
353
  }
316
- }), this.versionSelectedType === "Select" && e("div", {
354
+ }), this.versionSelectedType === "Select" && s("div", {
317
355
  class: "versions-container__item field-group"
318
- }, e("div", {
356
+ }, s("div", {
319
357
  class: "field field-block"
320
- }, e("label", {
358
+ }, s("label", {
321
359
  class: "label",
322
360
  htmlFor: "control-id-1"
323
- }, f(this, b, "f").kb.versionsLabel), e("div", {
361
+ }, f(this, b, "f").kb.versionsLabel), s("div", {
324
362
  class: "versions-container__input"
325
- }, e("ch-edit", {
363
+ }, s("ch-edit", {
326
364
  class: "input",
327
365
  readonly: true,
328
366
  placeholder: this.enableSelectVersionsButton ? f(this, b, "f").kb.versionsPlaceholder : f(this, b, "f").kb.versionsPlaceholderDisabled,
329
367
  value: this.versionsValueInput
330
- }), e("button", {
368
+ }), s("button", {
331
369
  id: "select-version-button",
332
370
  class: "button-tertiary button-icon-only",
333
- onClick: f(this, A, "f"),
371
+ onClick: f(this, P, "f"),
334
372
  disabled: !this.enableSelectVersionsButton
335
- }, e("ch-image", {
373
+ }, s("ch-image", {
336
374
  src: f(this, u, "f"),
337
375
  class: "icon-m",
338
376
  disabled: !this.enableSelectVersionsButton
339
- })))))), e("div", {
377
+ })))))), s("div", {
340
378
  class: "field field-block"
341
- }, e("label", {
379
+ }, s("label", {
342
380
  class: "label",
343
381
  htmlFor: "localKbName"
344
- }, f(this, b, "f").kb.localKbNameLabel), e("ch-edit", {
382
+ }, f(this, b, "f").kb.localKbNameLabel), s("ch-edit", {
345
383
  // local kb name
346
384
  class: "input",
347
- id: "local-kb-name",
385
+ id: "localKbName",
348
386
  value: this.localKbNameInputValue,
349
- onInput: f(this, $, "f"),
387
+ onInput: f(this, N, "f"),
350
388
  placeholder: f(this, b, "f").kb.localKbNamePlaceholder,
351
389
  ref: t => {
352
- d(this, x, t, "f");
353
- if (f(this, x, "f")) {
354
- f(this, I, "f").call(this);
390
+ d(this, T, t, "f");
391
+ if (f(this, T, "f")) {
392
+ f(this, A, "f").call(this);
355
393
  }
356
394
  }
357
- }), f(this, S, "f").call(this, f(this, x, "f"))))), f(this, N, "f").call(this)));
395
+ }), f(this, E, "f").call(this, f(this, T, "f"))), this.canSetLocation && s("div", {
396
+ class: "field field-block"
397
+ }, s("label", {
398
+ class: "label",
399
+ htmlFor: "kbLocation"
400
+ }, f(this, b, "f").kb.kbLocation), s("ch-radio-group-render", {
401
+ class: "radio-group",
402
+ id: "kbLocation",
403
+ model: f(this, W, "f"),
404
+ value: q,
405
+ onChange: f(this, C, "f")
406
+ }), this.locationMode === G && s("div", {
407
+ class: "location-custom-wrapper"
408
+ }, s("div", {
409
+ class: "location-field"
410
+ }, s("ch-edit", {
411
+ class: "input",
412
+ value: this.kbLocation,
413
+ id: "kbLocation",
414
+ onInput: f(this, L, "f")
415
+ })), s("button", {
416
+ class: "button-tertiary button-icon-only",
417
+ "aria-label": f(this, b, "f").kb.selectLocationButton,
418
+ title: f(this, b, "f").kb.selectLocationButton,
419
+ onClick: f(this, S, "f")
420
+ }, s("ch-image", {
421
+ class: "icon-m",
422
+ type: "mask",
423
+ src: H
424
+ })))))), f(this, B, "f").call(this)));
358
425
  }
359
426
  static get assetsDirs() {
360
427
  return [ "gx-ide-assets/create-kb-from-server" ];
@@ -367,10 +434,11 @@ const V = class {
367
434
  p = new WeakMap, u = new WeakMap, m = new WeakMap, b = new WeakMap, v = new WeakMap,
368
435
  w = new WeakMap, g = new WeakMap, y = new WeakMap, k = new WeakMap, M = new WeakMap,
369
436
  W = new WeakMap, x = new WeakMap, T = new WeakMap, j = new WeakMap, _ = new WeakMap,
370
- S = new WeakMap, C = new WeakMap, E = new WeakMap, I = new WeakMap, $ = new WeakMap,
371
- A = new WeakMap, P = new WeakMap, z = new WeakMap, L = new WeakMap, N = new WeakMap;
437
+ C = new WeakMap, S = new WeakMap, L = new WeakMap, z = new WeakMap, E = new WeakMap,
438
+ I = new WeakMap, $ = new WeakMap, A = new WeakMap, N = new WeakMap, P = new WeakMap,
439
+ F = new WeakMap, K = new WeakMap, V = new WeakMap, B = new WeakMap;
372
440
 
373
- V.style = c;
441
+ J.style = c;
374
442
 
375
- export { V as gx_ide_create_kb_from_server };
376
- //# sourceMappingURL=p-83a7e6fb.entry.js.map
443
+ export { J as gx_ide_create_kb_from_server };
444
+ //# sourceMappingURL=p-cf61384e.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["mapKbsModelToActionListModel","kbsData","listBoxItems","forEach","kb","push","id","type","caption","name","createKbFromServerCss","CSS_BUNDLES","INFO_ICON","getIconPath","category","colorType","FOLDER_ICON","LOCATION_MODE_DEFAULT","LOCATION_MODE_CUSTOM","GxIdeCreateKbFromServer","_GxIdeCreateKbFromServer_chSearchIcon","set","this","_GxIdeCreateKbFromServer_showMoreIcon","_GxIdeCreateKbFromServer_versionsSelect","value","_GxIdeCreateKbFromServer__componentLocale","_GxIdeCreateKbFromServer_kbsActionListModel","_GxIdeCreateKbFromServer_kbVersions","_GxIdeCreateKbFromServer_chShortcutsEl","_GxIdeCreateKbFromServer_shortcutsSrc","getAssetPath","_GxIdeCreateKbFromServer_selectedKbId","_GxIdeCreateKbFromServer_kbNameAlreadyEditedByUser","_GxIdeCreateKbFromServer_locationModeModel","_GxIdeCreateKbFromServer_versionSelectedTypeEl","_GxIdeCreateKbFromServer_localKBNameEl","_GxIdeCreateKbFromServer_cancelHandler","cancelCallback","_GxIdeCreateKbFromServer_changeConnectionHandler","async","changeConnectionCallback","authenticationType","connectionData","serverUrl","userName","userPassword","_GxIdeCreateKbFromServer_locationModeChangeHandler","event","locationMode","detail","kbLocation","_GxIdeCreateKbFromServer_selectLocationHandler","location","selectLocationCallback","_GxIdeCreateKbFromServer_inputKbLocationHandler","_GxIdeCreateKbFromServer_createHandler","versionSelectedType","__classPrivateFieldSet","createKBCallback","selectedKB","__classPrivateFieldGet","versionSelected","localKBName","localKbNameInputValue","undefined","versionList","then","formSubmitResult","validatableControls","validateControls","_GxIdeCreateKbFromServer_evaluateTooltipRender","controlReference","_b","_a","get","hasError","_c","message","h","class","actionElement","blockAlign","config","tooltipSettings","inlineAlign","delay","_GxIdeCreateKbFromServer_filterValueChangedHandler","filterValue","toLowerCase","kbsFilteredActionListModel","filter","item","includes","_GxIdeCreateKbFromServer_init","getGXserverKBsCallback","result","_GxIdeCreateKbFromServer_initializeValidatableControls","validatableControl","reference","_GxIdeCreateKbFromServer_inputLocalKbNameHandler","_GxIdeCreateKbFromServer_selectedVersionHandler","selectKBVersionsCallback","length","map","kbVersion","versionsValueInput","versionsPlaceholder","toString","versionSelectedFieldValue","oneVersionSelectedFieldValue","_GxIdeCreateKbFromServer_selectKbChangeHandler","enableSelectVersionsButton","_GxIdeCreateKbFromServer_versionsChangedHandler","_GxIdeCreateKbFromServer_sortItems","model","sort","a","b","toLocaleLowerCase","localeCompare","_GxIdeCreateKbFromServer_renderFooter","onClick","part","footer","cancel","disabled","createKb","Map","componentDidLoad","call","loading","componentWillLoad","Locale","getComponentStrings","el","kbLocationDefault","kbLocationCustom","suspendShortcuts","suspend","render","Host","src","ref","header","user","change","loaderTitle","loader","title","description","show","Fragment","startImgSrc","onInput","placeholder","searchKbsPlaceholder","stateIconSrc","stateTitle","emptyKBsText","isAnimated","selection","onSelectedItemsChange","sortItemsCallback","onChange","htmlFor","versionsLabel","readonly","versionsPlaceholderDisabled","localKbNameLabel","localKbNamePlaceholder","canSetLocation","selectLocationButton"],"sources":["src/components/team-dev/create-kb-from-server/helpers.ts","src/components/team-dev/create-kb-from-server/create-kb-from-server.scss?tag=gx-ide-create-kb-from-server&encapsulation=shadow","src/components/team-dev/create-kb-from-server/create-kb-from-server.tsx"],"sourcesContent":["import { ActionListItemModel } from \"@genexus/chameleon-controls-library\";\nimport { KBData } from \"./create-kb-from-server\";\n\nexport const mapKbsModelToActionListModel = (\n kbsData: KBData[]\n): ActionListItemModel[] => {\n const listBoxItems: ActionListItemModel[] = [];\n kbsData.forEach(kb => {\n listBoxItems.push({\n id: kb.id,\n type: \"actionable\",\n caption: kb.name\n });\n });\n return listBoxItems;\n};\n","@import \"../../../global/temporary-mercury-overrides/_button.scss\";\n\n:host {\n display: grid;\n block-size: 100%;\n grid-template-rows: max-content 1fr max-content;\n}\n\n.section {\n display: contents;\n}\n\n// - - - - - - - - - - -\n// Header\n// - - - - - - - - - - -\n\nheader {\n display: grid;\n grid-template-rows: max-content;\n grid-template-columns: 1fr 1fr max-content;\n}\n\n.button-change {\n align-self: center;\n justify-self: end;\n}\n\n// - - - - - - - - - - -\n// Main\n// - - - - - - - - - - -\n\n.main {\n display: grid;\n grid-template-columns: 1fr;\n grid-template-rows: max-content 1fr max-content max-content;\n position: relative;\n}\n\n.search-kbs {\n inline-size: 50%;\n}\n\n.versions-container {\n grid-auto-rows: max-content;\n\n &__input {\n display: grid;\n grid-template-columns: 1fr max-content;\n gap: var(--spacing-gap-m);\n }\n}\n\n.location-custom-wrapper {\n display: flex;\n align-items: center;\n gap: var(--spacing-gap-xs);\n flex-grow: 1;\n min-inline-size: 0;\n}\n\n.location-field {\n flex-grow: 1;\n min-inline-size: 0;\n\n > .input {\n inline-size: 100%;\n }\n}\n","// Stencil\nimport {\n Component,\n Element,\n Fragment,\n getAssetPath,\n h,\n Host,\n Method,\n Prop,\n State\n} from \"@stencil/core\";\n\n// Other Libraries\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\n\n// Custom Imports\nimport {\n ActionListItemActionable,\n ActionListItemModel,\n ActionListItemModelExtended,\n ChActionListRenderCustomEvent,\n ChEditCustomEvent\n} from \"@genexus/chameleon-controls-library\";\nimport { RadioGroupItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/radio-group/types\";\nimport { config } from \"../../../common/config\";\nimport {\n ControlValidation,\n validateControls\n} from \"../../../common/form-validation\";\nimport { Locale } from \"../../../common/locale\";\nimport { FormSubmitResult } from \"../../../common/types\";\nimport { GXServerConnectionData } from \"../connect-gx-server/connect-gx-server\";\nimport { KBVersion } from \"../version-control/common/types\";\nimport { mapKbsModelToActionListModel } from \"./helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"components/list-box\",\n \"components/tooltip\",\n \"chameleon/scrollbar\"\n];\n\nconst INFO_ICON = getIconPath({\n category: \"system\",\n name: \"information\",\n colorType: \"on-surface\"\n});\n\nconst FOLDER_ICON = getIconPath({\n category: \"system\",\n name: \"folder\",\n colorType: \"primary\"\n});\n\nconst LOCATION_MODE_DEFAULT = \"default\";\nconst LOCATION_MODE_CUSTOM = \"custom\";\n\n@Component({\n tag: \"gx-ide-create-kb-from-server\",\n styleUrl: \"create-kb-from-server.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/create-kb-from-server\"]\n})\nexport class GxIdeCreateKbFromServer {\n #chSearchIcon = getIconPath({\n category: \"system\",\n name: \"search\",\n colorType: \"interactive\"\n });\n\n #showMoreIcon = getIconPath({\n category: \"system\",\n name: \"more-horizontal\",\n colorType: \"interactive\"\n });\n\n #versionsSelect: RadioGroupItemModel[] = [\n { value: \"Trunk\", caption: \"Trunk Version\" },\n { value: \"All\", caption: \"All Versions\" },\n { value: \"Select\", caption: \"Select Version\" }\n ];\n\n [key: string]: any;\n\n #_componentLocale: any;\n #kbsActionListModel: ActionListItemModel[] = [];\n #kbVersions: KBVersion[] = [];\n #chShortcutsEl: HTMLChShortcutsElement;\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/create-kb-from-server/shortcuts.json`\n );\n #selectedKbId: string;\n #kbNameAlreadyEditedByUser: boolean = false;\n\n #locationModeModel: RadioGroupItemModel[];\n\n #versionSelectedTypeEl: HTMLChRadioGroupRenderElement;\n\n @Element() el: HTMLGxIdeCreateKbFromServerElement;\n\n #localKBNameEl!: HTMLChEditElement;\n\n /**\n * State to enable/disable the select versions button\n */\n @State() enableSelectVersionsButton: boolean = false;\n\n /**\n * The current kbn name value.\n */\n @State() localKbNameInputValue: string = \"\";\n\n /**\n * State to store the loading state of the component\n */\n @State() loading = true;\n\n /**\n * State to store the filter input value to filter the list-box\n */\n @State() filterValue: string = \"\";\n\n /**\n * KBs filtered\n */\n @State() kbsFilteredActionListModel: ActionListItemModel[] = [];\n\n @State() validatableControls = new Map<string, ControlValidation>();\n\n /**\n * The version selected type\n */\n @State() versionSelectedType: VersionOption;\n\n /**\n * String value to show the number of versions selected (\"N versions selected\")\n */\n @State() versionsValueInput: string = \"\";\n\n @State() locationMode: string = LOCATION_MODE_DEFAULT;\n\n /**\n * Default suggested path to a directory where the KB will be stored/generated.\n */\n @Prop({ mutable: true }) kbLocation: string;\n\n /**\n * Specifies whether the location field (and its folder-picker button) is\n * shown in the header, allowing the user to override the default `kbLocation`\n * path. Independent from `isAdvanced`.\n */\n @Prop() readonly canSetLocation: boolean = false;\n\n /**\n * Set of data required when executing any of the callbacks that require a connection to the server.\n */\n @Prop() readonly connectionData: GXServerConnectionData;\n\n /**\n * Callback that is invoked when the dialog is closed\n */\n @Prop() readonly cancelCallback!: () => Promise<void>;\n\n /**\n * The host reopens the gx-ide-connect-server login modal with the previous data, and closes the current modal\n */\n @Prop() readonly changeConnectionCallback: (\n data: GXServerConnectionData\n ) => Promise<void>;\n\n /**\n * Callback that must be invoked when the 'Create KB' button is pressed. Receives the user's parameter selection to create the remote KB locally and ends the dialog.\n */\n @Prop() readonly createKBCallback!: (\n kbInfo: KnowledgeBaseInfo\n ) => Promise<FormSubmitResult>;\n\n /**\n * Callback that must be invoked when invoking the dialog\n */\n @Prop() readonly getGXserverKBsCallback!: (\n data: GXServerConnectionData\n ) => Promise<KBData[]>;\n\n /**\n * Callback that returns a folder path selected by the user.\n */\n @Prop() readonly selectLocationCallback: SelectLocationCallback;\n\n /**\n * Callback invoked by pressing the ellipsis in the version selector. Receives the KB selected by the user, and displays the version selector dialog. Returns a list of versions chosen by the user.\n */\n @Prop() readonly selectKBVersionsCallback: (\n selectedKB: string\n ) => Promise<KBVersion[]>;\n\n async componentDidLoad() {\n await this.#init();\n this.loading = false;\n }\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n\n this.#locationModeModel = [\n {\n value: LOCATION_MODE_DEFAULT,\n caption: this.#_componentLocale.kb.kbLocationDefault\n },\n {\n value: LOCATION_MODE_CUSTOM,\n caption: this.#_componentLocale.kb.kbLocationCustom\n }\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 #cancelHandler = (): void => {\n this.cancelCallback();\n };\n\n #changeConnectionHandler = async (): Promise<void> => {\n this.changeConnectionCallback({\n authenticationType: this.connectionData.authenticationType,\n serverUrl: this.connectionData.serverUrl,\n userName: this.connectionData.userName,\n userPassword: this.connectionData.userPassword\n });\n };\n\n #locationModeChangeHandler = (event: CustomEvent<string>) => {\n this.locationMode = event.detail as string;\n if (this.locationMode === LOCATION_MODE_DEFAULT) {\n this.kbLocation = \"\";\n }\n };\n\n #selectLocationHandler = async (): Promise<void> => {\n const location = await this.selectLocationCallback();\n if (location) {\n this.kbLocation = location;\n }\n };\n\n #inputKbLocationHandler = (event: ChEditCustomEvent<string> | InputEvent) => {\n this.kbLocation = event.detail as string;\n };\n\n #createHandler = async (): Promise<void> => {\n if (this.versionSelectedType !== \"Select\") {\n this.#kbVersions = [];\n }\n this.createKBCallback({\n selectedKB: this.#selectedKbId,\n versionSelected: this.versionSelectedType,\n localKBName: this.localKbNameInputValue,\n kbLocation:\n this.locationMode === LOCATION_MODE_CUSTOM\n ? this.kbLocation || undefined\n : undefined,\n versionList: this.#kbVersions\n }).then((formSubmitResult: FormSubmitResult) => {\n this.validatableControls = validateControls(\n formSubmitResult,\n this.validatableControls\n );\n });\n };\n\n // TODO: evaluate if this should be a global helper function.\n // It is used on other dialogs as well.\n #evaluateTooltipRender = (\n controlReference: HTMLElement\n ): HTMLChTooltipElement =>\n this.validatableControls?.get(controlReference?.id)?.hasError &&\n this.validatableControls.get(controlReference.id)?.message && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={controlReference as unknown as HTMLButtonElement}\n blockAlign={config.tooltipSettings.blockAlign}\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.validatableControls.get(controlReference.id).message}\n </ch-tooltip>\n );\n\n #filterValueChangedHandler = (\n event: ChEditCustomEvent<string> | InputEvent\n ) => {\n this.filterValue = (event.detail as string).toLowerCase();\n this.kbsFilteredActionListModel = this.#kbsActionListModel.filter(\n (item: ActionListItemActionable) =>\n item.caption.toLowerCase().includes(this.filterValue)\n );\n };\n\n #init = async () => {\n await this.getGXserverKBsCallback({\n authenticationType: this.connectionData.authenticationType,\n serverUrl: this.connectionData.serverUrl,\n userName: this.connectionData.userName,\n userPassword: this.connectionData.userPassword\n }).then(result => {\n this.#kbsActionListModel = mapKbsModelToActionListModel(result);\n this.kbsFilteredActionListModel = this.#kbsActionListModel;\n this.filterValue = \"\";\n });\n };\n\n #initializeValidatableControls = () => {\n // populate validatableControls with the controls that could have errors.\n const validatableControls: HTMLElement[] = [this.#localKBNameEl];\n validatableControls.forEach(validatableControl => {\n if (validatableControl.id) {\n this.validatableControls.set(validatableControl.id, {\n reference: validatableControl,\n hasError: false,\n message: undefined\n });\n }\n });\n };\n\n #inputLocalKbNameHandler = (\n event: ChEditCustomEvent<string> | InputEvent\n ) => {\n this.localKbNameInputValue = event.detail as string;\n this.#kbNameAlreadyEditedByUser = true;\n };\n\n #selectedVersionHandler = async () => {\n if (this.selectKBVersionsCallback) {\n await this.selectKBVersionsCallback(this.#selectedKbId).then(result => {\n if (result?.length) {\n this.#kbVersions = result.map(kbVersion => ({\n id: kbVersion.id,\n name: kbVersion.name\n }));\n\n if (result.length === 1 && this.#kbVersions[0].id === 0) {\n this.localKbNameInputValue = this.#selectedKbId;\n this.versionsValueInput =\n this.#_componentLocale.kb.versionsPlaceholder;\n } else if (result.length > 1) {\n this.localKbNameInputValue = this.#selectedKbId;\n this.versionsValueInput = `${result.length.toString()} ${\n this.#_componentLocale.kb.versionSelectedFieldValue\n }`;\n } else {\n this.localKbNameInputValue = `${this.#selectedKbId}_${\n this.#kbVersions[0].name\n }`;\n this.versionsValueInput = `${result[0].name} ${\n this.#_componentLocale.kb.oneVersionSelectedFieldValue\n }`;\n }\n }\n });\n }\n };\n\n #selectKbChangeHandler = (\n event: ChActionListRenderCustomEvent<ActionListItemModelExtended[]>\n ): void => {\n const item = event.detail[0]?.item as ActionListItemActionable;\n if (item === undefined) {\n this.enableSelectVersionsButton = false;\n this.#selectedKbId = undefined;\n return;\n }\n this.enableSelectVersionsButton = true;\n this.#selectedKbId = item.id;\n if (this.#kbNameAlreadyEditedByUser) {\n return;\n }\n this.localKbNameInputValue = item.caption;\n if (this.versionSelectedType === \"Select\") {\n this.versionsValueInput = \"\";\n this.#kbVersions = [];\n }\n };\n\n #versionsChangedHandler = (event: CustomEvent<string>) => {\n this.versionSelectedType = event.detail as VersionOption;\n };\n\n #sortItems = (model: ActionListItemActionable[]): void => {\n model.sort((a, b) =>\n a.caption\n ?.toLocaleLowerCase()\n .localeCompare(b.caption?.toLocaleLowerCase())\n );\n };\n\n #renderFooter = () => {\n return (\n <footer class=\"footer dialog-footer-with-border spacing-body-inline spacing-body-block-end\">\n <div class=\"buttons-spacer\">\n <button\n // cancel button\n class=\"button-secondary\"\n onClick={this.#cancelHandler}\n part=\"button button-cancel\"\n >\n {this.#_componentLocale.footer.cancel}\n </button>\n\n <button\n // create kb button\n class=\"button-primary\"\n onClick={this.enableSelectVersionsButton && this.#createHandler}\n disabled={!this.enableSelectVersionsButton}\n part=\"button button-create-kb\"\n >\n {this.#_componentLocale.footer.createKb}\n </button>\n </div>\n </footer>\n );\n };\n\n render(): void {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <ch-shortcuts\n src={this.#shortcutsSrc}\n ref={(el: HTMLChShortcutsElement) =>\n (this.#chShortcutsEl = el as HTMLChShortcutsElement)\n }\n ></ch-shortcuts>\n\n <section class=\"section\">\n <header class=\"header dialog-header-with-border space-body spacing-body-inline spacing-body-block-start\">\n <div class=\"field field-block\">\n <label class=\"label\">\n {this.#_componentLocale.header.serverUrl}\n </label>\n <p>{this.connectionData.serverUrl}</p>\n </div>\n\n <div class=\"field field-block\">\n <label class=\"label\">{this.#_componentLocale.header.user}</label>\n <p>{this.connectionData.userName}</p>\n </div>\n\n <button\n id=\"change-connection-button\"\n class=\"button-tertiary button-change\"\n onClick={this.#changeConnectionHandler}\n >\n {this.#_componentLocale.header.change}\n </button>\n </header>\n <section class=\"main field-group spacing-body\">\n {this.loading ? (\n <gx-ide-loader\n loaderTitle={this.#_componentLocale.loader.title}\n description={this.#_componentLocale.loader.description}\n show\n ></gx-ide-loader>\n ) : (\n <Fragment>\n <ch-edit\n class=\"input search-kbs\"\n id=\"local-kb-name\"\n startImgSrc={this.#chSearchIcon}\n type=\"search\"\n onInput={this.#filterValueChangedHandler}\n placeholder={this.#_componentLocale.kb.searchKbsPlaceholder}\n ></ch-edit>\n {this.#kbsActionListModel.length === 0 ||\n this.kbsFilteredActionListModel.length === 0 ? (\n <div class=\"list-box\">\n <gx-ide-empty-state\n stateIconSrc={INFO_ICON}\n stateTitle={this.#_componentLocale.emptyKBsText}\n isAnimated={true}\n ></gx-ide-empty-state>\n </div>\n ) : (\n <ch-action-list-render\n selection=\"single\"\n class=\"list-box\"\n onSelectedItemsChange={this.#selectKbChangeHandler}\n model={this.kbsFilteredActionListModel}\n sortItemsCallback={this.#sortItems}\n ></ch-action-list-render>\n )}\n <div class=\"versions-container field-group\">\n <ch-radio-group-render\n class=\"radio-group\"\n model={this.#versionsSelect}\n onChange={this.#versionsChangedHandler}\n value={this.#versionsSelect[0].value}\n ref={(el: HTMLChRadioGroupRenderElement) => {\n this.#versionSelectedTypeEl =\n el as HTMLChRadioGroupRenderElement;\n if (this.#versionSelectedTypeEl) {\n this.versionSelectedType = this.#versionSelectedTypeEl\n .value as VersionOption;\n }\n }}\n ></ch-radio-group-render>\n\n {this.versionSelectedType === \"Select\" && (\n <div class=\"versions-container__item field-group\">\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"control-id-1\">\n {this.#_componentLocale.kb.versionsLabel}\n </label>\n <div class=\"versions-container__input\">\n <ch-edit\n class=\"input\"\n readonly\n placeholder={\n this.enableSelectVersionsButton\n ? this.#_componentLocale.kb.versionsPlaceholder\n : this.#_componentLocale.kb\n .versionsPlaceholderDisabled\n }\n value={this.versionsValueInput}\n ></ch-edit>\n <button\n id=\"select-version-button\"\n class=\"button-tertiary button-icon-only\"\n onClick={this.#selectedVersionHandler}\n disabled={!this.enableSelectVersionsButton}\n >\n <ch-image\n src={this.#showMoreIcon}\n class=\"icon-m\"\n disabled={!this.enableSelectVersionsButton}\n ></ch-image>\n </button>\n </div>\n </div>\n </div>\n )}\n </div>\n\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"localKbName\">\n {this.#_componentLocale.kb.localKbNameLabel}\n </label>\n <ch-edit\n // local kb name\n class=\"input\"\n id=\"localKbName\"\n value={this.localKbNameInputValue}\n onInput={this.#inputLocalKbNameHandler}\n placeholder={\n this.#_componentLocale.kb.localKbNamePlaceholder\n }\n ref={(el: HTMLChEditElement) => {\n this.#localKBNameEl = el as HTMLChEditElement;\n if (this.#localKBNameEl) {\n this.#initializeValidatableControls();\n }\n }}\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#localKBNameEl)}\n </div>\n\n {this.canSetLocation && (\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"kbLocation\">\n {this.#_componentLocale.kb.kbLocation}\n </label>\n <ch-radio-group-render\n class=\"radio-group\"\n id=\"kbLocation\"\n model={this.#locationModeModel}\n value={LOCATION_MODE_DEFAULT}\n onChange={this.#locationModeChangeHandler}\n ></ch-radio-group-render>\n\n {this.locationMode === LOCATION_MODE_CUSTOM && (\n <div class=\"location-custom-wrapper\">\n <div class=\"location-field\">\n <ch-edit\n class=\"input\"\n value={this.kbLocation}\n id=\"kbLocation\"\n onInput={this.#inputKbLocationHandler}\n ></ch-edit>\n </div>\n <button\n class=\"button-tertiary button-icon-only\"\n aria-label={\n this.#_componentLocale.kb.selectLocationButton\n }\n title={this.#_componentLocale.kb.selectLocationButton}\n onClick={this.#selectLocationHandler}\n >\n <ch-image\n class=\"icon-m\"\n type=\"mask\"\n src={FOLDER_ICON}\n ></ch-image>\n </button>\n </div>\n )}\n </div>\n )}\n </Fragment>\n )}\n </section>\n\n {this.#renderFooter()}\n </section>\n </Host>\n );\n }\n}\n\nexport type KBData = {\n id: string;\n name: string;\n};\n\nexport type ConnectionResultData = {\n formResult: FormSubmitResult;\n kbs: KBData[];\n};\n\nexport type KnowledgeBaseInfo = {\n selectedKB: string;\n versionSelected: VersionOption;\n localKBName: string;\n kbLocation?: string;\n versionList: KBVersion[];\n};\n\nexport type VersionOption = \"Trunk\" | \"All\" | \"Select\";\n\nexport type SelectLocationCallback = () => Promise<string>;\n"],"mappings":"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"}
@@ -36,6 +36,17 @@ export declare class GxIdeCreateKbFromServer {
36
36
  * String value to show the number of versions selected ("N versions selected")
37
37
  */
38
38
  versionsValueInput: string;
39
+ locationMode: string;
40
+ /**
41
+ * Default suggested path to a directory where the KB will be stored/generated.
42
+ */
43
+ kbLocation: string;
44
+ /**
45
+ * Specifies whether the location field (and its folder-picker button) is
46
+ * shown in the header, allowing the user to override the default `kbLocation`
47
+ * path. Independent from `isAdvanced`.
48
+ */
49
+ readonly canSetLocation: boolean;
39
50
  /**
40
51
  * Set of data required when executing any of the callbacks that require a connection to the server.
41
52
  */
@@ -56,6 +67,10 @@ export declare class GxIdeCreateKbFromServer {
56
67
  * Callback that must be invoked when invoking the dialog
57
68
  */
58
69
  readonly getGXserverKBsCallback: (data: GXServerConnectionData) => Promise<KBData[]>;
70
+ /**
71
+ * Callback that returns a folder path selected by the user.
72
+ */
73
+ readonly selectLocationCallback: SelectLocationCallback;
59
74
  /**
60
75
  * Callback invoked by pressing the ellipsis in the version selector. Receives the KB selected by the user, and displays the version selector dialog. Returns a list of versions chosen by the user.
61
76
  */
@@ -80,6 +95,8 @@ export type KnowledgeBaseInfo = {
80
95
  selectedKB: string;
81
96
  versionSelected: VersionOption;
82
97
  localKBName: string;
98
+ kbLocation?: string;
83
99
  versionList: KBVersion[];
84
100
  };
85
101
  export type VersionOption = "Trunk" | "All" | "Select";
102
+ export type SelectLocationCallback = () => Promise<string>;