@genexus/genexus-ide-ui 0.0.64 → 0.0.66

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 (109) hide show
  1. package/dist/cjs/ch-icon.cjs.entry.js +116 -0
  2. package/dist/cjs/{config-8634e7dd.js → config-8cf5ba3b.js} +4 -0
  3. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  4. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js +1 -1
  5. package/dist/cjs/gx-ide-container_4.cjs.entry.js +3 -0
  6. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +28 -14
  7. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +142 -39
  8. package/dist/cjs/gx-ide-new-environment.cjs.entry.js +1 -1
  9. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +1 -1
  10. package/dist/cjs/gx-ide-new-object.cjs.entry.js +1 -1
  11. package/dist/cjs/gx-ide-object-selector.cjs.entry.js +1 -1
  12. package/dist/cjs/gx-ide-references.cjs.entry.js +1 -1
  13. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +1 -1
  14. package/dist/cjs/{gx-ide-status-buttons_2.cjs.entry.js → gx-ide-status-buttons.cjs.entry.js} +0 -72
  15. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +1 -1
  16. package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js +1 -1
  17. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js +1 -1
  18. package/dist/cjs/gx-ide-team-dev-update-to-revision.cjs.entry.js +1 -1
  19. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +1 -1
  20. package/dist/cjs/gx-ide-template.cjs.entry.js +1 -1
  21. package/dist/cjs/gx-ide-ww-images.cjs.entry.js +1 -1
  22. package/dist/cjs/{gxg-button-group.cjs.entry.js → gxg-button-group_2.cjs.entry.js} +105 -0
  23. package/dist/cjs/{gxg-button.cjs.entry.js → gxg-button_2.cjs.entry.js} +63 -0
  24. package/dist/cjs/gxg-list-box_2.cjs.entry.js +1 -1
  25. package/dist/cjs/gxg-text.cjs.entry.js +1 -1
  26. package/dist/cjs/loader.cjs.js +1 -1
  27. package/dist/collection/common/config.js +4 -0
  28. package/dist/collection/components/kb-manager-export/gx-ide-assets/kb-manager-export/langs/kb-manager-export.lang.en.json +4 -0
  29. package/dist/collection/components/kb-manager-export/kb-manager-export.js +41 -28
  30. package/dist/collection/components/kb-manager-import/gx-ide-assets/kb-manager-import/langs/kb-manager-import.lang.en.json +5 -1
  31. package/dist/collection/components/kb-manager-import/helpers.js +5 -3
  32. package/dist/collection/components/kb-manager-import/kb-manager-import.css +3 -0
  33. package/dist/collection/components/kb-manager-import/kb-manager-import.js +178 -35
  34. package/dist/components/config.js +4 -0
  35. package/dist/components/form-text.js +5 -1
  36. package/dist/components/gx-ide-kb-manager-export.js +75 -42
  37. package/dist/components/gx-ide-kb-manager-import.js +146 -39
  38. package/dist/components/ide-loader.js +75 -14
  39. package/dist/components/list-box-item.js +1 -1
  40. package/dist/components/text.js +1 -1
  41. package/dist/esm/ch-icon.entry.js +112 -0
  42. package/dist/esm/{config-e6f580c8.js → config-2fae16a2.js} +4 -0
  43. package/dist/esm/genexus-ide-ui.js +1 -1
  44. package/dist/esm/gx-ide-bpm-app-declaration.entry.js +1 -1
  45. package/dist/esm/gx-ide-container_4.entry.js +3 -0
  46. package/dist/esm/gx-ide-kb-manager-export.entry.js +28 -14
  47. package/dist/esm/gx-ide-kb-manager-import.entry.js +142 -39
  48. package/dist/esm/gx-ide-new-environment.entry.js +1 -1
  49. package/dist/esm/gx-ide-new-kb.entry.js +1 -1
  50. package/dist/esm/gx-ide-new-object.entry.js +1 -1
  51. package/dist/esm/gx-ide-object-selector.entry.js +1 -1
  52. package/dist/esm/gx-ide-references.entry.js +1 -1
  53. package/dist/esm/gx-ide-share-kb.entry.js +1 -1
  54. package/dist/esm/{gx-ide-status-buttons_2.entry.js → gx-ide-status-buttons.entry.js} +1 -72
  55. package/dist/esm/gx-ide-team-dev-commit.entry.js +1 -1
  56. package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js +1 -1
  57. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js +1 -1
  58. package/dist/esm/gx-ide-team-dev-update-to-revision.entry.js +1 -1
  59. package/dist/esm/gx-ide-team-dev-update.entry.js +1 -1
  60. package/dist/esm/gx-ide-template.entry.js +1 -1
  61. package/dist/esm/gx-ide-ww-images.entry.js +1 -1
  62. package/dist/esm/{gxg-button-group.entry.js → gxg-button-group_2.entry.js} +105 -1
  63. package/dist/esm/{gxg-button.entry.js → gxg-button_2.entry.js} +64 -2
  64. package/dist/esm/gxg-list-box_2.entry.js +1 -1
  65. package/dist/esm/gxg-text.entry.js +1 -1
  66. package/dist/esm/loader.js +1 -1
  67. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  68. package/dist/genexus-ide-ui/gx-ide-assets/kb-manager-export/langs/kb-manager-export.lang.en.json +4 -0
  69. package/dist/genexus-ide-ui/gx-ide-assets/kb-manager-import/langs/kb-manager-import.lang.en.json +5 -1
  70. package/dist/genexus-ide-ui/{p-61e5b3a7.entry.js → p-00bb2aa7.entry.js} +1 -1
  71. package/dist/genexus-ide-ui/{p-34f4deb8.entry.js → p-02c50994.entry.js} +1 -1
  72. package/dist/genexus-ide-ui/{p-fa4e7177.js → p-13ffa7c0.js} +1 -1
  73. package/dist/genexus-ide-ui/p-232fe7cb.entry.js +1 -0
  74. package/dist/genexus-ide-ui/{p-eb3895cc.entry.js → p-2dc875c2.entry.js} +1 -1
  75. package/dist/genexus-ide-ui/{p-cf421c67.entry.js → p-2ec6d722.entry.js} +1 -1
  76. package/dist/genexus-ide-ui/{p-15f4ca7a.entry.js → p-3dacc147.entry.js} +1 -1
  77. package/dist/genexus-ide-ui/{p-2582e3d7.entry.js → p-4d653456.entry.js} +1 -1
  78. package/dist/genexus-ide-ui/{p-a14dde56.entry.js → p-7c64e541.entry.js} +1 -1
  79. package/dist/genexus-ide-ui/p-81776364.entry.js +1 -0
  80. package/dist/genexus-ide-ui/{p-16aad0e4.entry.js → p-8d99e6a5.entry.js} +1 -1
  81. package/dist/genexus-ide-ui/{p-c0532785.entry.js → p-a05224f3.entry.js} +1 -1
  82. package/dist/genexus-ide-ui/{p-0cc3af0d.entry.js → p-a06d0915.entry.js} +1 -1
  83. package/dist/genexus-ide-ui/{p-285f0790.entry.js → p-baabb0be.entry.js} +1 -1
  84. package/dist/genexus-ide-ui/p-beefd2bb.entry.js +1 -0
  85. package/dist/genexus-ide-ui/{p-1ad41f2e.entry.js → p-bf5c0727.entry.js} +1 -1
  86. package/dist/genexus-ide-ui/{p-57327cd3.entry.js → p-c3a1a74c.entry.js} +1 -1
  87. package/dist/genexus-ide-ui/{p-4f63438d.entry.js → p-cd285670.entry.js} +1 -1
  88. package/dist/genexus-ide-ui/{p-6fb33e4c.entry.js → p-cd74a437.entry.js} +1 -1
  89. package/dist/genexus-ide-ui/{p-9d73a85c.entry.js → p-d192b1e9.entry.js} +1 -1
  90. package/dist/genexus-ide-ui/p-db4e2468.entry.js +1 -0
  91. package/dist/genexus-ide-ui/{p-2c5289df.entry.js → p-ec9c9f44.entry.js} +1 -1
  92. package/dist/genexus-ide-ui/{p-3b55122b.entry.js → p-eed26277.entry.js} +1 -1
  93. package/dist/genexus-ide-ui/p-fae07693.entry.js +1 -0
  94. package/dist/node_modules/@genexus/gemini/dist/collection/components/ide-loader/ide-loader.css +17 -9
  95. package/dist/node_modules/@genexus/gemini/dist/collection/components/list-box-item/list-box-item.css +2 -2
  96. package/dist/node_modules/@genexus/gemini/dist/collection/components/text/text.css +1 -0
  97. package/dist/types/common/config.d.ts +3 -0
  98. package/dist/types/components/kb-manager-export/kb-manager-export.d.ts +9 -6
  99. package/dist/types/components/kb-manager-import/helpers.d.ts +1 -0
  100. package/dist/types/components/kb-manager-import/kb-manager-import.d.ts +25 -3
  101. package/dist/types/components.d.ts +25 -10
  102. package/package.json +3 -3
  103. package/dist/cjs/ch-icon_2.cjs.entry.js +0 -179
  104. package/dist/esm/ch-icon_2.entry.js +0 -174
  105. package/dist/genexus-ide-ui/p-0371daa4.entry.js +0 -1
  106. package/dist/genexus-ide-ui/p-0d7c0cd1.entry.js +0 -1
  107. package/dist/genexus-ide-ui/p-1bf68774.entry.js +0 -1
  108. package/dist/genexus-ide-ui/p-a99c17b1.entry.js +0 -1
  109. package/dist/genexus-ide-ui/p-c74f5d08.entry.js +0 -1
@@ -209,6 +209,7 @@ gxg-tabs {
209
209
  height: var(--spacing-comp-02);
210
210
  border-radius: 50%;
211
211
  background-color: var(--gray-03);
212
+ margin-inline-end: var(--spacing-comp-01);
212
213
  background-color: var(--color-success-dark);
213
214
  }
214
215
  .main .tree-container--import-status .tree-view-item--warning::part(action) {
@@ -221,6 +222,7 @@ gxg-tabs {
221
222
  height: var(--spacing-comp-02);
222
223
  border-radius: 50%;
223
224
  background-color: var(--gray-03);
225
+ margin-inline-end: var(--spacing-comp-01);
224
226
  background-color: var(--color-warning-dark);
225
227
  }
226
228
  .main .tree-container--import-status .tree-view-item--error::part(action) {
@@ -233,6 +235,7 @@ gxg-tabs {
233
235
  height: var(--spacing-comp-02);
234
236
  border-radius: 50%;
235
237
  background-color: var(--gray-03);
238
+ margin-inline-end: var(--spacing-comp-01);
236
239
  background-color: var(--color-error-dark);
237
240
  }
238
241
  .main .tree-container--no-warnings .tree-view-item--warning {
@@ -4,6 +4,7 @@ import { Host, h } from "@stencil/core";
4
4
  import { Locale } from "../../common/locale";
5
5
  import { config } from "../../common/config";
6
6
  import { convertImportCategoryToTreeView, addImportItemResultDataItem } from "./helpers";
7
+ // import { CheckboxInfo } from "@genexus/gemini/dist/types/components/form-checkbox/form-checkbox";
7
8
  import { countTreeItems } from "../../common/helpers";
8
9
  import { KB_OBJECT } from "./helpers";
9
10
  export class GxIdeKbManagerImport {
@@ -13,6 +14,34 @@ export class GxIdeKbManagerImport {
13
14
  this.importCategoryData = [];
14
15
  this.objectsInFileTotalNodes = 0;
15
16
  // 9.LOCAL METHODS //
17
+ this.evaluateImportStatusMessage = () => {
18
+ this.someStatusVisible =
19
+ this.statusInfo.error.display ||
20
+ this.statusInfo.warning.display ||
21
+ this.statusInfo.success.display;
22
+ };
23
+ this.countMessages = () => {
24
+ /* totally inefficient way to count. This has to be improved*/
25
+ let errors = 0;
26
+ let warnings = 0;
27
+ let successes = 0;
28
+ this.importTreeState.forEach(category => {
29
+ category.items.forEach(object => {
30
+ if (object.class.includes("tree-view-item--error")) {
31
+ errors += object.items.length;
32
+ }
33
+ else if (object.class.includes("tree-view-item--warning")) {
34
+ warnings += object.items.length;
35
+ }
36
+ else if (object.class.includes("tree-view-item--success")) {
37
+ successes += object.items.length;
38
+ }
39
+ });
40
+ });
41
+ this.statusInfo.error.number = errors;
42
+ this.statusInfo.warning.number = warnings;
43
+ this.statusInfo.success.number = successes;
44
+ };
16
45
  this.evaluateObjects = () => {
17
46
  var _a;
18
47
  this.noObjects = !!(((_a = this.objectsTreeState) === null || _a === void 0 ? void 0 : _a.length) === 0 || !this.objectsTreeState);
@@ -41,7 +70,7 @@ export class GxIdeKbManagerImport {
41
70
  this.evaluateHeaderActiveButton = () => {
42
71
  if (!this.selectedFile) {
43
72
  this.headerButtonsGroup.activeButtonId = "select-file-btn";
44
- this.fileInputEl.value = undefined;
73
+ this.fileInputEl.clearInput();
45
74
  }
46
75
  else {
47
76
  this.headerButtonsGroup.activeButtonId = "load-file-btn";
@@ -49,17 +78,15 @@ export class GxIdeKbManagerImport {
49
78
  };
50
79
  this.importObjectsHandler = async () => {
51
80
  if (this.importCallback) {
52
- this.importingObjects = true;
81
+ this.importingIsInProcess = true;
53
82
  this.objectsButtonsGroup.activeButtonId = "cancel-import-btn";
54
- const result = await this.importCallback(this.checkedObjectsIds);
55
- if (result || result === false) {
56
- this.importingObjects = false;
57
- this.objectsButtonsGroup.activeButtonId = "import-btn";
58
- }
83
+ this.importCallback(this.checkedObjectsIds).then(() => {
84
+ this.importingIsInProcess = false;
85
+ });
59
86
  }
60
87
  };
61
88
  this.objectsTreeCheckedItemsChangedHandler = (event) => {
62
- /* Begin of evaluate 'select/unselect checkbox' state*/
89
+ /* 1. Begin of evaluate 'select/unselect checkbox' state*/
63
90
  if (event.detail == null) {
64
91
  this.toggleObjectsCheckboxEl.checked = false;
65
92
  this.toggleObjectsCheckboxEl.indeterminate = false;
@@ -76,19 +103,56 @@ export class GxIdeKbManagerImport {
76
103
  this.toggleObjectsCheckboxEl.checked = firstItemCheckedValue;
77
104
  this.toggleObjectsCheckboxEl.indeterminate =
78
105
  !allItemsHaveTheSameCheckedValue;
79
- /* End of evaluate 'select/unselect checkbox' state*/
106
+ /* /End of evaluate 'select/unselect checkbox' state*/
107
+ /* 2. Begin of checked items evaluation*/
80
108
  const checkedItems = allItemsWithCheckbox.filter(node => node.item.checked);
81
109
  // objects checked
82
110
  const checkedObjects = checkedItems.filter(node => node.item.metadata === KB_OBJECT);
83
- console.log("checkedObjects", checkedObjects);
84
111
  const checkedObjectsIds = [];
85
112
  if (checkedObjects.length > 0) {
86
113
  checkedObjects.forEach(objectChecked => {
87
114
  checkedObjectsIds.push(objectChecked.item.id);
88
115
  });
89
116
  }
117
+ /* /End of checked items evaluation*/
118
+ /* 3. Begin of caption update*/
119
+ /* TO DO (when we can differentiate the caption from the number of children)*/
120
+ // const categoryItems = allItemsWithCheckbox.filter(
121
+ // node => node.item.metadata === KB_CATEGORY
122
+ // );
123
+ // categoryItems.forEach(category => {
124
+ // const itemInfo = category.item;
125
+ // // Update the amount of checked values
126
+ // if (itemInfo.leaf !== true) {
127
+ // const totalItems = itemInfo.items.length;
128
+ // const totalItemsChecked = itemInfo.items.filter(
129
+ // itemUIModel => itemUIModel.checked
130
+ // ).length;
131
+ // const newItemCaption =
132
+ // totalItems !== totalItemsChecked
133
+ // ? `${itemInfo.caption} (${totalItemsChecked}/${totalItems})`
134
+ // : `${itemInfo.caption} (${totalItems})`;
135
+ // // Only update the item caption if needed
136
+ // if (newItemCaption !== itemInfo.caption) {
137
+ // this.objectsTreeEl.updateItemsProperties([itemInfo.id], {
138
+ // id: itemInfo.id,
139
+ // caption: newItemCaption
140
+ // });
141
+ // }
142
+ // }
143
+ // });
144
+ /* /End of caption update*/
90
145
  this.checkedObjectsIds = checkedObjectsIds;
91
146
  };
147
+ this.objectsTreeContextMenuHandler = (event) => {
148
+ if (this.objectContextMenuCallback && event.detail.metadata === KB_OBJECT) {
149
+ this.objectContextMenuCallback({
150
+ objectId: event.detail.id,
151
+ screenX: event.detail.contextmenuEvent.screenX,
152
+ screenY: event.detail.contextmenuEvent.screenY
153
+ });
154
+ }
155
+ };
92
156
  this.cancelImportHandler = () => {
93
157
  if (this.cancelCallback) {
94
158
  this.cancelCallback();
@@ -107,23 +171,31 @@ export class GxIdeKbManagerImport {
107
171
  this.statusInfo.warning.number = 0;
108
172
  this.statusInfo.success.number = 0;
109
173
  };
110
- this.toggleSelectionHandler = (e) => {
111
- const checked = e.detail.value;
174
+ this.toggleSelectionClickHandler = (e) => {
175
+ const checked = e.target.checked;
112
176
  this.toggleObjectsCheckboxEl.indeterminate = false;
113
177
  this.objectsTreeEl.updateAllItemsProperties({ checked: checked });
114
178
  };
115
179
  this.statusButtonsSelectionChangedHandler = (e) => {
116
180
  const activeStates = e.detail;
117
- const newStatusInfo = Object.assign({}, this.statusInfo);
118
- newStatusInfo.warning.display = false;
119
- newStatusInfo.error.display = false;
120
- newStatusInfo.success.display = false;
121
- activeStates.forEach(activeState => {
122
- const status = activeState.itemId;
123
- newStatusInfo[status].display = true;
124
- this.statusInfo = newStatusInfo;
125
- });
126
- this.evaluateHiddenImportsMessage();
181
+ const errorIndex = activeStates.findIndex(state => state.itemId === "error");
182
+ const warningIndex = activeStates.findIndex(state => state.itemId === "warning");
183
+ const successIndex = activeStates.findIndex(state => state.itemId === "success");
184
+ this.statusInfo = {
185
+ error: {
186
+ display: errorIndex !== -1,
187
+ number: this.statusInfo.error.number
188
+ },
189
+ warning: {
190
+ display: warningIndex !== -1,
191
+ number: this.statusInfo.warning.number
192
+ },
193
+ success: {
194
+ display: successIndex !== -1,
195
+ number: this.statusInfo.success.number
196
+ }
197
+ };
198
+ this.evaluateImportStatusMessage();
127
199
  };
128
200
  this.evaluateCheckAllValue = () => {
129
201
  let checked = true;
@@ -134,8 +206,13 @@ export class GxIdeKbManagerImport {
134
206
  }
135
207
  return checked;
136
208
  };
137
- this.evaluateHiddenImportsMessage = () => {
138
- /* to do*/
209
+ this.fileClearedHandler = () => {
210
+ this.selectedFile = null;
211
+ };
212
+ this.loaderCancelCallbackHandler = () => {
213
+ if (this.cancelCallback) {
214
+ this.cancelCallback();
215
+ }
139
216
  };
140
217
  this.checkedObjectsIds = [];
141
218
  this.noObjects = undefined;
@@ -155,15 +232,19 @@ export class GxIdeKbManagerImport {
155
232
  }
156
233
  };
157
234
  this.objectsTreeState = [];
235
+ this.importStatusMessage = undefined;
236
+ this.someStatusVisible = undefined;
158
237
  this.noImport = undefined;
159
238
  this.importTreeState = [];
160
- this.importingObjects = false;
239
+ this.importingIsInProcess = false;
240
+ this.loader = false;
161
241
  this.selectedFile = undefined;
162
242
  this.optionsCallback = undefined;
163
243
  this.importCallback = undefined;
164
244
  this.loadCallback = undefined;
165
245
  this.cancelCallback = undefined;
166
246
  this.statusMinimal = false;
247
+ this.objectContextMenuCallback = undefined;
167
248
  }
168
249
  watchObjectsTreeStateHandler(newState) {
169
250
  this.noObjects = !!(newState.length === 0 || !newState);
@@ -171,6 +252,22 @@ export class GxIdeKbManagerImport {
171
252
  }
172
253
  watchImportTreeStateHandler(newState) {
173
254
  this.noImport = !!(newState.length === 0 || !newState);
255
+ if (this.noImport) {
256
+ this.importStatusMessage =
257
+ this._componentLocale.main.importStatus.noImportedFiles;
258
+ }
259
+ else {
260
+ this.importStatusMessage =
261
+ this._componentLocale.main.importStatus.importedButHidden;
262
+ }
263
+ }
264
+ watchImportingIsInProcessHandler(isImporting) {
265
+ if (isImporting && this.loader) {
266
+ this.loaderEl.show = true;
267
+ }
268
+ else if (!isImporting && this.loader) {
269
+ this.loaderEl.show = false;
270
+ }
174
271
  }
175
272
  watchSelectedFileHandler() {
176
273
  this.evaluateHeaderActiveButton();
@@ -181,6 +278,9 @@ export class GxIdeKbManagerImport {
181
278
  this.componentDidLoadEvent.emit(true);
182
279
  this.evaluateObjects();
183
280
  this.evaluateImport();
281
+ this.importStatusMessage =
282
+ this._componentLocale.main.importStatus.noImportedFiles;
283
+ this.evaluateImportStatusMessage();
184
284
  }
185
285
  componentDidRender() {
186
286
  if (!this.renderedFirstTime) {
@@ -195,27 +295,28 @@ export class GxIdeKbManagerImport {
195
295
  */
196
296
  async addResultItem(item) {
197
297
  this.importTreeState = addImportItemResultDataItem(item, this.importCategoryData, this.importTreeState);
198
- this.statusInfo[`${item.status}`].number += item.messages.length;
298
+ this.countMessages();
199
299
  }
200
300
  // 10.RENDER() FUNCTION //
201
301
  render() {
202
- return (h(Host, { class: "gx-ide-component" }, h("div", { class: "gx-ide-main-wrapper" }, h("gx-ide-container", { noContentPadding: true, noFooterPadding: true, containerTitle: this._componentLocale.componentName }, h("header", { class: "header", slot: "header" }, h("gxg-form-text", { type: "file", class: "select-file", label: this._componentLocale.header.fileNameLabel, placeholder: this._componentLocale.header.fileNamePlaceholder, part: "file-name", acceptFile: ".xpz, .xml", clearButton: true, iconPosition: "start", onFileSelected: this.fileSelectedHandler, ref: (el) => (this.fileInputEl = el) }), h("gxg-button-group", {
302
+ return (h(Host, { class: "gx-ide-component" }, h("div", { class: "gx-ide-main-wrapper" }, h("gx-ide-container", { noContentPadding: true, noFooterPadding: true, containerTitle: this._componentLocale.componentName }, h("header", { class: "header", slot: "header" }, h("gxg-form-text", { type: "file", class: "select-file", label: this._componentLocale.header.fileNameLabel, placeholder: this._componentLocale.header.fileNamePlaceholder, part: "file-name", acceptFile: ".xpz, .xml", clearButton: true, iconPosition: "start", onFileSelected: this.fileSelectedHandler, onClearButtonClicked: this.fileClearedHandler, ref: (el) => (this.fileInputEl = el) }), h("gxg-button-group", {
203
303
  // default-selected-btn-id="select-file-btn"
204
304
  ref: (el) => (this.headerButtonsGroup = el)
205
- }, h("button", { id: "select-file-btn", part: "select-file-button", onClick: this.selectFileHandler }, this._componentLocale.header.selectFileButton), h("button", { id: "load-file-btn", part: "load-file-button", disabled: !this.selectedFile, onClick: this.loadFileHandler }, this._componentLocale.header.loadButton))), h("main", { class: "main" }, h("gx-ide-container", { containerTitle: this._componentLocale.main.objectsInFile.title, noContentPadding: true, noBorderFooter: true, class: "left-grid-item", slimmerFooter: true, inactiveTitle: this.noObjects, footerSubtleShadow: !this.noObjects, titleType: "secondary" }, h("div", { class: {
305
+ }, h("button", { id: "select-file-btn", part: "select-file-button", onClick: this.selectFileHandler, disabled: this.importingIsInProcess }, this._componentLocale.header.selectFileButton), h("button", { id: "load-file-btn", part: "load-file-button", disabled: !this.selectedFile || this.importingIsInProcess, onClick: this.loadFileHandler }, this._componentLocale.header.loadButton))), h("main", { class: "main" }, h("gx-ide-container", { containerTitle: this._componentLocale.main.objectsInFile.title, noContentPadding: true, noBorderFooter: true, class: "left-grid-item", slimmerFooter: true, inactiveTitle: this.noObjects, footerSubtleShadow: !this.noObjects, titleType: "secondary" }, h("div", { class: {
206
306
  "tree-container": true,
207
307
  "tree-container--objects-in-file": true,
208
308
  "tree-container--empty": this.noObjects
209
- } }, !this.noObjects ? (h("gxg-tree-view", { treeModel: this.objectsTreeState, dragDisabled: true, dropDisabled: true, toggleCheckboxes: true, onCheckedItemsChange: this.objectsTreeCheckedItemsChangedHandler, ref: el => (this.objectsTreeEl = el) })) : (h("div", { class: "gx-ide-message" }, h("gxg-text", { textAlign: config.gxgMessage.common.textAlign, padding: config.gxgMessage.common.textAlign, type: config.gxgMessage.common.type, maxWidth: config.gxgMessage.common.maxWidth, part: "objects-in-file-empty-status-message" }, "There are no Objects. ", h("br", null), h("gxg-text", { type: "text-link-no-line", onClick: this.selectFileHandler }, "Begin by selecting a file."))))), h("gxg-form-checkbox", { label: this._componentLocale.main.objectsInFile.selectUnselect, part: "select-all-checkbox", slot: "footer-start", disabled: this.importingObjects || this.objectsTreeState.length === 0, checked: this.evaluateCheckAllValue(), onChange: this.toggleSelectionHandler, ref: (el) => (this.toggleObjectsCheckboxEl =
210
- el) }), h("gxg-button-group", { slot: "footer-end", ref: (el) => (this.objectsButtonsGroup = el) }, h("button", { id: "import-btn", part: "import-button", disabled: this.importingObjects ||
211
- this.checkedObjectsIds.length === 0, onClick: this.importObjectsHandler }, this._componentLocale.main.objectsInFile.importButton), h("button", { id: "cancel-import-btn", part: "cancel-import-button", disabled: !this.importingObjects, onClick: this.cancelImportHandler }, this._componentLocale.main.objectsInFile.cancelButton)), h("gxg-button", { type: "secondary-icon-only", icon: "gemini-tools/settings", slot: "footer-end", part: "select-kb-btn", onClick: this.optionsHandler }, this._componentLocale.header.optionsButton)), h("gx-ide-container", { containerTitle: this._componentLocale.main.importStatus.title, noContentPadding: true, noBorderFooter: true, slimmerFooter: true, inactiveTitle: this.noImport, footerSubtleShadow: !this.noImport, titleType: "secondary" }, h("div", { class: {
309
+ } }, !this.noObjects ? (h("gxg-tree-view", { treeModel: this.objectsTreeState, dragDisabled: true, dropDisabled: true, toggleCheckboxes: true, checkbox: true, checked: true, onCheckedItemsChange: this.objectsTreeCheckedItemsChangedHandler, onItemContextmenu: this.objectsTreeContextMenuHandler, ref: el => (this.objectsTreeEl = el) })) : (h("div", { class: "gx-ide-message" }, h("gxg-text", { textAlign: config.gxgMessage.common.textAlign, padding: config.gxgMessage.common.textAlign, type: config.gxgMessage.common.type, maxWidth: config.gxgMessage.common.maxWidth, part: "objects-in-file-empty-status-message" }, "There are no Objects. ", h("br", null), h("gxg-text", { type: "text-link-no-line", onClick: this.selectFileHandler }, "Begin by selecting a file."))))), h("gxg-form-checkbox", { label: this._componentLocale.main.objectsInFile.selectUnselect, part: "select-all-checkbox", slot: "footer-start", disabled: this.importingIsInProcess ||
310
+ this.objectsTreeState.length === 0, checked: this.evaluateCheckAllValue(), onClick: this.toggleSelectionClickHandler, ref: (el) => (this.toggleObjectsCheckboxEl =
311
+ el) }), h("gxg-button-group", { slot: "footer-end", ref: (el) => (this.objectsButtonsGroup = el) }, h("button", { id: "import-btn", part: "import-button", disabled: this.importingIsInProcess ||
312
+ this.checkedObjectsIds.length === 0, onClick: this.importObjectsHandler }, this._componentLocale.main.objectsInFile.importButton), h("button", { id: "cancel-import-btn", part: "cancel-import-button", disabled: !this.importingIsInProcess, onClick: this.cancelImportHandler }, this._componentLocale.main.objectsInFile.cancelButton)), h("gxg-button", { type: "secondary-icon-only", icon: "gemini-tools/settings", slot: "footer-end", part: "select-kb-btn", onClick: this.optionsHandler }, this._componentLocale.header.optionsButton)), h("gx-ide-container", { containerTitle: this._componentLocale.main.importStatus.title, noContentPadding: true, noBorderFooter: true, slimmerFooter: true, inactiveTitle: this.noImport, footerSubtleShadow: !this.noImport, titleType: "secondary" }, h("div", { class: {
212
313
  "tree-container": true,
213
314
  "tree-container--import-status": true,
214
- "tree-container--empty": this.noImport,
315
+ "tree-container--empty": this.noImport || !this.someStatusVisible,
215
316
  "tree-container--no-warnings": !this.statusInfo.warning.display,
216
317
  "tree-container--no-errors": !this.statusInfo.error.display,
217
- "tree-container--no-successes": this.statusInfo.success.display === false
218
- } }, !this.noImport ? (h("gxg-tree-view", { treeModel: this.importTreeState, toggleCheckboxes: true, ref: el => (this.objectsTreeEl = el) })) : (h("gxg-text", { textAlign: config.gxgMessage.common.textAlign, padding: config.gxgMessage.common.textAlign, type: config.gxgMessage.common.type, maxWidth: config.gxgMessage.common.maxWidth, part: "objects-in-file-empty-status-message", class: "gx-ide-message" }, "There are no Imported files."))), h("gxg-text", { type: "button-like", slot: "footer-end", part: "select-kb-btn", onClick: this.clearStatusHandler, disabled: this.noImport }, this._componentLocale.main.importStatus.clearButton), h("span", { class: "ghost-element", slot: "footer-start" }))), h("footer", { slot: "footer-start" }, h("gx-ide-status-buttons", { errors: this.statusInfo.error.number, warnings: this.statusInfo.warning.number, successes: this.statusInfo.success.number, compact: true, noBorderTop: true, noBorderBottom: true, noBorderStart: true, minimal: this.statusMinimal, onSelectionChanged: this.statusButtonsSelectionChangedHandler }))), h("gxg-ide-loader", { description: "Importing objects..." }))));
318
+ "tree-container--no-successes": !this.statusInfo.success.display
319
+ } }, !this.noImport && this.someStatusVisible ? (h("gxg-tree-view", { treeModel: this.importTreeState, toggleCheckboxes: true, ref: el => (this.objectsTreeEl = el) })) : (h("gxg-text", { textAlign: config.gxgMessage.common.textAlign, padding: config.gxgMessage.common.textAlign, type: config.gxgMessage.common.type, maxWidth: config.gxgMessage.common.maxWidth, part: "objects-in-file-empty-status-message", class: "gx-ide-message" }, this.importStatusMessage))), h("gxg-text", { type: "button-like", slot: "footer-end", part: "select-kb-btn", onClick: this.clearStatusHandler, disabled: this.noImport || this.importingIsInProcess }, this._componentLocale.main.importStatus.clearButton), h("span", { class: "ghost-element", slot: "footer-start" }))), h("footer", { slot: "footer-start" }, h("gx-ide-status-buttons", { errors: this.statusInfo.error.number, warnings: this.statusInfo.warning.number, successes: this.statusInfo.success.number, compact: true, noBorderTop: true, noBorderBottom: true, noBorderStart: true, minimal: this.statusMinimal, onSelectionChanged: this.statusButtonsSelectionChangedHandler }))), h("gxg-ide-loader", { description: "Importing objects..." })), this.loader ? (h("gxg-ide-loader", { cancelLabel: this._componentLocale.loader.cancelLabel, container: this.el, loaderTitle: this._componentLocale.loader.title, ref: el => (this.loaderEl = el), cancelCallback: this.loaderCancelCallbackHandler })) : null));
219
320
  }
220
321
  static get is() { return "gx-ide-kb-manager-import"; }
221
322
  static get encapsulation() { return "shadow"; }
@@ -232,6 +333,24 @@ export class GxIdeKbManagerImport {
232
333
  static get assetsDirs() { return ["gx-ide-assets/kb-manager-import"]; }
233
334
  static get properties() {
234
335
  return {
336
+ "loader": {
337
+ "type": "boolean",
338
+ "mutable": false,
339
+ "complexType": {
340
+ "original": "false",
341
+ "resolved": "boolean",
342
+ "references": {}
343
+ },
344
+ "required": false,
345
+ "optional": false,
346
+ "docs": {
347
+ "tags": [],
348
+ "text": "If true, it will display a loader when needed."
349
+ },
350
+ "attribute": "loader",
351
+ "reflect": false,
352
+ "defaultValue": "false"
353
+ },
235
354
  "selectedFile": {
236
355
  "type": "unknown",
237
356
  "mutable": true,
@@ -347,6 +466,25 @@ export class GxIdeKbManagerImport {
347
466
  "attribute": "status-minimal",
348
467
  "reflect": false,
349
468
  "defaultValue": "false"
469
+ },
470
+ "objectContextMenuCallback": {
471
+ "type": "unknown",
472
+ "mutable": false,
473
+ "complexType": {
474
+ "original": "ObjectContextMenuCallback",
475
+ "resolved": "(objectContextMenu: ObjectContextMenuInfo) => Promise<void>",
476
+ "references": {
477
+ "ObjectContextMenuCallback": {
478
+ "location": "local"
479
+ }
480
+ }
481
+ },
482
+ "required": false,
483
+ "optional": false,
484
+ "docs": {
485
+ "tags": [],
486
+ "text": "It displays the status buttons (errors, warning, successes) with the minimal ui (no captions)"
487
+ }
350
488
  }
351
489
  };
352
490
  }
@@ -357,9 +495,11 @@ export class GxIdeKbManagerImport {
357
495
  "showHiddenImportsMessage": {},
358
496
  "statusInfo": {},
359
497
  "objectsTreeState": {},
498
+ "importStatusMessage": {},
499
+ "someStatusVisible": {},
360
500
  "noImport": {},
361
501
  "importTreeState": {},
362
- "importingObjects": {}
502
+ "importingIsInProcess": {}
363
503
  };
364
504
  }
365
505
  static get events() {
@@ -430,6 +570,9 @@ export class GxIdeKbManagerImport {
430
570
  }, {
431
571
  "propName": "importTreeState",
432
572
  "methodName": "watchImportTreeStateHandler"
573
+ }, {
574
+ "propName": "importingIsInProcess",
575
+ "methodName": "watchImportingIsInProcessHandler"
433
576
  }, {
434
577
  "propName": "selectedFile",
435
578
  "methodName": "watchSelectedFileHandler"
@@ -13,6 +13,10 @@ const config = {
13
13
  },
14
14
  gxIdeContainer: {
15
15
  slimmerFooter: true
16
+ },
17
+ loader: {
18
+ /* The amount of milliseconds the loader will display, before abort because of timeout*/
19
+ timeout: 4000
16
20
  }
17
21
  };
18
22
 
@@ -222,6 +222,9 @@ const GxgFormText = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
222
222
  this.fileInputEl.click();
223
223
  }
224
224
  }
225
+ async clearInput() {
226
+ this.clearButtonFunc();
227
+ }
225
228
  componentWillLoad() {
226
229
  this.evaluateIcon();
227
230
  this.attachExportParts();
@@ -473,7 +476,8 @@ const GxgFormText = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
473
476
  "mouseCoordinates": [32],
474
477
  "rtl": [32],
475
478
  "selectInputText": [64],
476
- "openFile": [64]
479
+ "openFile": [64],
480
+ "clearInput": [64]
477
481
  }]);
478
482
  function defineCustomElement() {
479
483
  if (typeof customElements === "undefined") {