@genexus/genexus-ide-ui 0.0.60 → 0.0.61
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.
- package/dist/cjs/ch-checkbox.cjs.entry.js +93 -0
- package/dist/cjs/{ch-checkbox_3.cjs.entry.js → ch-tree-x_3.cjs.entry.js} +475 -87
- package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
- package/dist/cjs/gx-ide-container.cjs.entry.js +13 -5
- package/dist/cjs/gx-ide-file-selector.cjs.entry.js +47 -0
- package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +11 -9
- package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +343 -0
- package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js +236 -0
- package/dist/cjs/gx-ide-new-kb.cjs.entry.js +8 -9
- package/dist/cjs/gx-ide-object-selector.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-references.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-status-buttons_2.cjs.entry.js +148 -0
- package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-template.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-ww-images.cjs.entry.js +1 -1
- package/dist/cjs/{helpers-9523495a.js → helpers-b62ea39c.js} +12 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +4 -1
- package/dist/collection/common/helpers.js +11 -0
- package/dist/collection/components/_template/template.js +1 -1
- package/dist/collection/components/container/container.css +24 -16
- package/dist/collection/components/container/container.js +66 -22
- package/dist/collection/components/file-selector/file-selector.css +366 -0
- package/dist/collection/components/file-selector/file-selector.js +185 -0
- package/dist/collection/components/kb-manager-export/gx-ide-assets/kb-manager-export/langs/kb-manager-export.lang.en.json +1 -0
- package/dist/collection/components/kb-manager-export/helpers.js +0 -1
- package/dist/collection/components/kb-manager-export/kb-manager-export.css +5 -2
- package/dist/collection/components/kb-manager-export/kb-manager-export.js +12 -9
- package/dist/collection/components/kb-manager-import/gx-ide-assets/kb-manager-import/langs/kb-manager-import.lang.en.json +31 -0
- package/dist/collection/components/kb-manager-import/gx-ide-assets/kb-manager-import/langs/kb-manager-import.lang.ja.json +3 -0
- package/dist/collection/components/kb-manager-import/gx-ide-assets/kb-manager-import/langs/kb-manager-import.lang.zh.json +3 -0
- package/dist/collection/components/kb-manager-import/helpers.js +128 -0
- package/dist/collection/components/kb-manager-import/kb-manager-import.css +233 -0
- package/dist/collection/components/kb-manager-import/kb-manager-import.js +415 -0
- package/dist/collection/components/list-selector/list-selector-item/list-selector-item.css +51 -14
- package/dist/collection/components/list-selector/list-selector-item/list-selector-item.js +160 -24
- package/dist/collection/components/list-selector/list-selector.css +6 -0
- package/dist/collection/components/list-selector/list-selector.js +234 -33
- package/dist/collection/components/new-kb/new-kb.css +13 -0
- package/dist/collection/components/new-kb/new-kb.js +7 -8
- package/dist/collection/components/references/references.js +2 -2
- package/dist/collection/components/status-buttons/gx-ide-status-buttons.css +93 -0
- package/dist/collection/components/status-buttons/gx-ide-status-buttons.js +325 -0
- package/dist/collection/components/team-dev-commit/team-dev-commit.js +1 -1
- package/dist/collection/components/team-dev-update/team-dev-update.js +1 -1
- package/dist/components/container.js +16 -6
- package/dist/components/form-text.js +1 -1
- package/dist/components/gx-ide-file-selector.d.ts +11 -0
- package/dist/components/gx-ide-file-selector.js +105 -0
- package/dist/components/gx-ide-kb-manager-export.js +13 -11
- package/dist/components/gx-ide-kb-manager-import.d.ts +11 -0
- package/dist/components/gx-ide-kb-manager-import.js +499 -0
- package/dist/components/gx-ide-list-selector-item.js +1 -102
- package/dist/components/gx-ide-list-selector.js +1 -73
- package/dist/components/gx-ide-new-kb.js +8 -9
- package/dist/components/gx-ide-references.js +2 -2
- package/dist/components/gx-ide-status-buttons.d.ts +11 -0
- package/dist/components/gx-ide-status-buttons.js +6 -0
- package/dist/components/gx-ide-status-buttons2.js +131 -0
- package/dist/components/gx-ide-team-dev-commit.js +1 -1
- package/dist/components/gx-ide-team-dev-update.js +1 -1
- package/dist/components/gx-ide-template.js +1 -1
- package/dist/components/gxg-ide-loader.js +1 -111
- package/dist/components/helpers2.js +12 -1
- package/dist/{esm/gxg-ide-loader.entry.js → components/ide-loader.js} +46 -7
- package/dist/components/index.d.ts +3 -0
- package/dist/components/index.js +3 -0
- package/dist/components/list-selector-item.js +158 -0
- package/dist/components/list-selector.js +146 -0
- package/dist/esm/ch-checkbox.entry.js +89 -0
- package/dist/esm/{ch-checkbox_3.entry.js → ch-tree-x_3.entry.js} +476 -88
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-container.entry.js +13 -5
- package/dist/esm/gx-ide-file-selector.entry.js +43 -0
- package/dist/esm/gx-ide-kb-manager-export.entry.js +11 -9
- package/dist/esm/gx-ide-kb-manager-import.entry.js +339 -0
- package/dist/esm/gx-ide-list-selector_2.entry.js +231 -0
- package/dist/esm/gx-ide-new-kb.entry.js +8 -9
- package/dist/esm/gx-ide-object-selector.entry.js +1 -1
- package/dist/esm/gx-ide-references.entry.js +2 -2
- package/dist/esm/gx-ide-status-buttons_2.entry.js +143 -0
- package/dist/esm/gx-ide-team-dev-commit.entry.js +2 -2
- package/dist/esm/gx-ide-team-dev-update.entry.js +2 -2
- package/dist/esm/gx-ide-template.entry.js +1 -1
- package/dist/esm/gx-ide-ww-images.entry.js +1 -1
- package/dist/esm/{helpers-b99024f5.js → helpers-c29a9591.js} +12 -1
- package/dist/esm/loader.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/kb-manager-export/langs/kb-manager-export.lang.en.json +1 -0
- package/dist/genexus-ide-ui/gx-ide-assets/kb-manager-import/langs/kb-manager-import.lang.en.json +31 -0
- package/dist/genexus-ide-ui/gx-ide-assets/kb-manager-import/langs/kb-manager-import.lang.ja.json +3 -0
- package/dist/genexus-ide-ui/gx-ide-assets/kb-manager-import/langs/kb-manager-import.lang.zh.json +3 -0
- package/dist/genexus-ide-ui/p-163a93a4.entry.js +1 -0
- package/dist/genexus-ide-ui/p-1ff3cf87.entry.js +1 -0
- package/dist/genexus-ide-ui/p-2142874f.entry.js +1 -0
- package/dist/genexus-ide-ui/p-2b7d4cca.entry.js +1 -0
- package/dist/genexus-ide-ui/p-481312bc.entry.js +1 -0
- package/dist/genexus-ide-ui/p-8738b63b.entry.js +1 -0
- package/dist/genexus-ide-ui/p-9e530c7d.entry.js +1 -0
- package/dist/genexus-ide-ui/{p-c63d5b08.js → p-9ee8b615.js} +1 -1
- package/dist/genexus-ide-ui/{p-cef1a182.entry.js → p-a3171fdf.entry.js} +1 -1
- package/dist/genexus-ide-ui/p-ac3b8e90.entry.js +1 -0
- package/dist/genexus-ide-ui/{p-750c726a.entry.js → p-b2ea372b.entry.js} +1 -1
- package/dist/genexus-ide-ui/p-b685ffba.entry.js +1 -0
- package/dist/genexus-ide-ui/p-c7e11c6b.entry.js +1 -0
- package/dist/genexus-ide-ui/p-d04d634e.entry.js +1 -0
- package/dist/genexus-ide-ui/{p-462a8f83.entry.js → p-d8096d40.entry.js} +1 -1
- package/dist/genexus-ide-ui/p-f83093aa.entry.js +1 -0
- package/dist/types/common/helpers.d.ts +2 -0
- package/dist/types/common/types.d.ts +16 -0
- package/dist/types/components/container/container.d.ts +12 -4
- package/dist/types/components/file-selector/file-selector.d.ts +38 -0
- package/dist/types/components/kb-manager-export/kb-manager-export.d.ts +3 -2
- package/dist/types/components/kb-manager-import/helpers.d.ts +10 -0
- package/dist/types/components/kb-manager-import/kb-manager-import.d.ts +110 -0
- package/dist/types/components/list-selector/list-selector-item/list-selector-item.d.ts +38 -7
- package/dist/types/components/list-selector/list-selector.d.ts +47 -8
- package/dist/types/components/status-buttons/gx-ide-status-buttons.d.ts +63 -0
- package/dist/types/components.d.ts +410 -28
- package/package.json +3 -3
- package/dist/cjs/gx-ide-list-selector-item.cjs.entry.js +0 -89
- package/dist/cjs/gx-ide-list-selector.cjs.entry.js +0 -51
- package/dist/cjs/gxg-ide-loader.cjs.entry.js +0 -78
- package/dist/cjs/gxg-tree-view.cjs.entry.js +0 -481
- package/dist/esm/gx-ide-list-selector-item.entry.js +0 -85
- package/dist/esm/gx-ide-list-selector.entry.js +0 -47
- package/dist/esm/gxg-tree-view.entry.js +0 -477
- package/dist/genexus-ide-ui/p-00ee4c20.entry.js +0 -1
- package/dist/genexus-ide-ui/p-16d35368.entry.js +0 -1
- package/dist/genexus-ide-ui/p-3e16a46a.entry.js +0 -1
- package/dist/genexus-ide-ui/p-83f6db54.entry.js +0 -1
- package/dist/genexus-ide-ui/p-845f47ff.entry.js +0 -1
- package/dist/genexus-ide-ui/p-85164984.entry.js +0 -1
- package/dist/genexus-ide-ui/p-a4b359b1.entry.js +0 -1
- package/dist/genexus-ide-ui/p-a5833100.entry.js +0 -1
- package/dist/genexus-ide-ui/p-cddb793a.entry.js +0 -1
- package/dist/genexus-ide-ui/p-dd676f91.entry.js +0 -1
- package/dist/genexus-ide-ui/p-ffddd3ad.entry.js +0 -1
|
@@ -176,11 +176,14 @@ gxg-tabs {
|
|
|
176
176
|
gap: var(--gx-ide-grid-column-gap);
|
|
177
177
|
border-bottom: 1px solid var(--gx-ide-container-border-color);
|
|
178
178
|
}
|
|
179
|
+
.checkboxes-wrapper .add-checkbox {
|
|
180
|
+
display: flex;
|
|
181
|
+
}
|
|
179
182
|
|
|
180
183
|
.tree-container {
|
|
181
184
|
display: flex;
|
|
182
|
-
min-height:
|
|
183
|
-
max-height:
|
|
185
|
+
min-height: 150px;
|
|
186
|
+
max-height: 350px;
|
|
184
187
|
padding-left: var(--gx-ide-grid-column-gap);
|
|
185
188
|
width: 100%;
|
|
186
189
|
box-sizing: border-box;
|
|
@@ -11,6 +11,10 @@ export class GxIdeKbManagerExport {
|
|
|
11
11
|
// 7.LISTENERS //
|
|
12
12
|
// 8.PUBLIC METHODS API //
|
|
13
13
|
// 9.LOCAL METHODS //
|
|
14
|
+
this.evaluateObjects = () => {
|
|
15
|
+
var _a;
|
|
16
|
+
this.noObjects = !!(((_a = this.objectsTreeState) === null || _a === void 0 ? void 0 : _a.length) === 0 || !this.objectsTreeState);
|
|
17
|
+
};
|
|
14
18
|
this.optionsCallbackHandler = () => {
|
|
15
19
|
if (this.optionsCallback) {
|
|
16
20
|
this.optionsCallback();
|
|
@@ -61,7 +65,7 @@ export class GxIdeKbManagerExport {
|
|
|
61
65
|
/*
|
|
62
66
|
* Update checked objects 'checkedObjectsArray' array. Used for the 'addReferencesCallback'
|
|
63
67
|
*/
|
|
64
|
-
this.
|
|
68
|
+
this.objectsTreeCheckedItemsChangedHandler = (event) => {
|
|
65
69
|
const allItemsWithCheckbox = [...event.detail.values()];
|
|
66
70
|
const checkedItems = allItemsWithCheckbox.filter(node => node.item.checked);
|
|
67
71
|
// objects checked
|
|
@@ -102,13 +106,13 @@ export class GxIdeKbManagerExport {
|
|
|
102
106
|
}
|
|
103
107
|
};
|
|
104
108
|
this.clearButtonHandler = () => {
|
|
105
|
-
|
|
109
|
+
/* revisar*/
|
|
106
110
|
this.objectsTreeEl.updateAllItemsProperties({ checked: false });
|
|
107
111
|
};
|
|
108
112
|
this.fileName = "";
|
|
109
113
|
this.exportFilePathName = undefined;
|
|
110
|
-
this.objectsTreeState = [];
|
|
111
114
|
this.noObjects = undefined;
|
|
115
|
+
this.objectsTreeState = [];
|
|
112
116
|
this.dummyInitialTree = undefined;
|
|
113
117
|
this.kbPropertiesTypes = undefined;
|
|
114
118
|
this.objectTypes = undefined;
|
|
@@ -128,20 +132,19 @@ export class GxIdeKbManagerExport {
|
|
|
128
132
|
}
|
|
129
133
|
// 6.COMPONENT LIFECYCLE EVENTS //
|
|
130
134
|
async componentWillLoad() {
|
|
131
|
-
var _a;
|
|
132
135
|
this._componentLocale = await Locale.getComponentStrings(this.el);
|
|
133
136
|
this.componentDidLoadEvent.emit(true);
|
|
134
|
-
this.
|
|
137
|
+
this.evaluateObjects();
|
|
135
138
|
}
|
|
136
139
|
// 10.RENDER() FUNCTION //
|
|
137
140
|
render() {
|
|
138
|
-
return (h(Host, { class: "gx-ide-component" }, h("div", { class: "gx-ide-main-wrapper" }, h("gx-ide-container", { noContentPadding: true }, h("header", { slot: "header", class: "header" }, h("gx-ide-directory-selector", { class: { "select-file-input": true }, value: this.exportFilePathName, part: "xpz-file", label: this._componentLocale.header.exportFileName, ref: el => (this.fileNameEl = el), selectDirectoryCallback: this.exportFileDirectoryCallback }), h("gxg-button-group", { class: "export-cancel-buttons-group", "default-selected-btn-id": "responsive-tablet-btn"
|
|
141
|
+
return (h(Host, { class: "gx-ide-component" }, h("div", { class: "gx-ide-main-wrapper" }, h("gx-ide-container", { noContentPadding: true }, h("header", { slot: "header", class: "header" }, h("gx-ide-directory-selector", { class: { "select-file-input": true }, value: this.exportFilePathName, part: "xpz-file", label: this._componentLocale.header.exportFileName, ref: el => (this.fileNameEl = el), selectDirectoryCallback: this.exportFileDirectoryCallback }), h("gxg-button-group", { class: "export-cancel-buttons-group", "default-selected-btn-id": "responsive-tablet-btn" }, h("button", { id: "export-kb-btn", part: "export-btn", onClick: this.exportCallbackHandler }, this._componentLocale.header.exportButton), h("button", { id: "cancel-kb-export-btn", part: "cancel-button", onClick: this.cancelCallbackHandler }, this._componentLocale.header.cancelButton)), h("gxg-button", { type: "secondary-icon-only", icon: "gemini-tools/settings", part: "select-kb-btn", class: { "options-btn": true }, onClick: this.optionsCallbackHandler }, this._componentLocale.header.optionsButton)), h("main", { class: { main: true } }, h("div", { class: { "checkboxes-wrapper": true } }, h("gxg-form-checkbox", { label: this._componentLocale.main.addKnowledgeBaseDescription, onChange: this.addKBPropertiesCallbackHandler, part: "add-kb-checkbox" }), h("gxg-form-checkbox", { label: this._componentLocale.main.exportAll, part: "export-all-checkbox", ref: el => (this.exportAllCheckboxEl =
|
|
139
142
|
el) })), h("div", { class: {
|
|
140
143
|
"tree-container": true,
|
|
141
144
|
"tree-container--empty": this.noObjects
|
|
142
145
|
} }, !this.noObjects ? (
|
|
143
146
|
/* objects tree */
|
|
144
|
-
h("gxg-tree-view", { positionRelative: true, treeModel: this.objectsTreeState, toggleCheckboxes: true, onCheckedItemsChange: this.
|
|
147
|
+
h("gxg-tree-view", { positionRelative: true, treeModel: this.objectsTreeState, toggleCheckboxes: true, onCheckedItemsChange: this.objectsTreeCheckedItemsChangedHandler, 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: "referenced-by-empty-status-message" }, "There are no Objects to display. ", h("br", null), h("gxg-text", { type: "text-link-no-line", textAlign: "center", onClick: this.addObjectsCallbackHandler }, "Begin by adding some."))))), h("gxg-button", { type: "secondary-text-only", part: "export-button", class: { "cancel-btn": true }, slot: "footer-start", onClick: this.clearButtonHandler }, this._componentLocale.footer.clearButton), h("div", { class: { "footer-right-wrapper": true }, slot: "footer-end" }, h("gxg-button", { onClick: this.addReferencesCallbackHandler, type: "outlined-text-icon", icon: "general/references", part: "export-button", class: { "cancel-btn": true } }, this._componentLocale.footer.referencesButton), h("gxg-button", { type: "primary-text-icon", icon: "menus/new-object", part: "export-button", class: { "cancel-btn": true }, onClick: this.addObjectsCallbackHandler, grabAttention: this.noObjects }, this._componentLocale.footer.addButton))))));
|
|
145
148
|
}
|
|
146
149
|
static get is() { return "gx-ide-kb-manager-export"; }
|
|
147
150
|
static get encapsulation() { return "shadow"; }
|
|
@@ -373,8 +376,8 @@ export class GxIdeKbManagerExport {
|
|
|
373
376
|
return {
|
|
374
377
|
"fileName": {},
|
|
375
378
|
"exportFilePathName": {},
|
|
376
|
-
"
|
|
377
|
-
"
|
|
379
|
+
"noObjects": {},
|
|
380
|
+
"objectsTreeState": {}
|
|
378
381
|
};
|
|
379
382
|
}
|
|
380
383
|
static get events() {
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"header": {
|
|
3
|
+
"fileNameLabel": "Select a file:",
|
|
4
|
+
"fileNamePlaceholder": "Allowed files extensions: .xpz/.xml",
|
|
5
|
+
"selectFileButton": "Select File",
|
|
6
|
+
"loadButton": "Load"
|
|
7
|
+
},
|
|
8
|
+
"main": {
|
|
9
|
+
"objectsInFile": {
|
|
10
|
+
"title": "Objects in File",
|
|
11
|
+
"selectAll": "Click to select all",
|
|
12
|
+
"deselectAll": "Click to deselect all",
|
|
13
|
+
"importButton": "Import",
|
|
14
|
+
"cancelButton": "Cancel",
|
|
15
|
+
"optionsButton": "Options"
|
|
16
|
+
},
|
|
17
|
+
"importStatus": {
|
|
18
|
+
"title": "Import Status",
|
|
19
|
+
"clearButton": "Clear Status",
|
|
20
|
+
"noImportedFiles": "There are no imported files yet",
|
|
21
|
+
"importedButHidden": "There are imported files, but all are hidden. Try by activating errors, warnings or success"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"footer": {
|
|
25
|
+
"selectDeselectAll": "Select All | Deselect All",
|
|
26
|
+
"errorsButton": "Errors",
|
|
27
|
+
"warningsButton": "Warnings",
|
|
28
|
+
"successButton": "Success",
|
|
29
|
+
"clearStatusButton": "Clear Status"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
const convertImportItemToTreeItem = (importCatIcon, importItems) => {
|
|
2
|
+
const importTreeItems = [];
|
|
3
|
+
importItems.forEach(importItem => {
|
|
4
|
+
importTreeItems.push({
|
|
5
|
+
id: importItem.id,
|
|
6
|
+
caption: importItem.name,
|
|
7
|
+
leftImgSrc: importCatIcon,
|
|
8
|
+
checkbox: true,
|
|
9
|
+
expanded: true,
|
|
10
|
+
leaf: true,
|
|
11
|
+
class: "object"
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
return importTreeItems;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* @description This function converts ReferenceData[] data to TreeItemData[]
|
|
18
|
+
*/
|
|
19
|
+
export const convertImportCategoryToTreeView = (importCategoryData) => {
|
|
20
|
+
const treeData = [];
|
|
21
|
+
if (!importCategoryData) {
|
|
22
|
+
return treeData;
|
|
23
|
+
}
|
|
24
|
+
importCategoryData.forEach(importCat => {
|
|
25
|
+
const importCategoryTreeItem = {
|
|
26
|
+
id: importCat.id,
|
|
27
|
+
caption: `${importCat.name} (${importCat.items.length})`,
|
|
28
|
+
leftImgSrc: importCat.icon,
|
|
29
|
+
checkbox: true,
|
|
30
|
+
expanded: true,
|
|
31
|
+
leaf: false,
|
|
32
|
+
class: "category",
|
|
33
|
+
items: convertImportItemToTreeItem(importCat.icon, importCat.items)
|
|
34
|
+
};
|
|
35
|
+
treeData.push(importCategoryTreeItem);
|
|
36
|
+
});
|
|
37
|
+
return treeData;
|
|
38
|
+
};
|
|
39
|
+
const createImportResultDataMessages = (importItemId, messagesArray) => {
|
|
40
|
+
const messages = [];
|
|
41
|
+
messagesArray.forEach((message, i) => {
|
|
42
|
+
messages.push({
|
|
43
|
+
id: `${importItemId}-message-${i}}]`,
|
|
44
|
+
caption: message,
|
|
45
|
+
leftImgSrc: "gx-test/test-results",
|
|
46
|
+
leaf: true
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
return messages;
|
|
50
|
+
};
|
|
51
|
+
const updateImportStatusTree = (importItemResultFullData, importTreeActualState) => {
|
|
52
|
+
var _a;
|
|
53
|
+
const objectCategoryIndex = importTreeActualState.findIndex(objectCategoryItem => {
|
|
54
|
+
return objectCategoryItem.id === importItemResultFullData.categoryId;
|
|
55
|
+
});
|
|
56
|
+
if (objectCategoryIndex === -1) {
|
|
57
|
+
// object category node does not exists. We have to create it, and insert the import result tree node inside.
|
|
58
|
+
const importTreeItem = {
|
|
59
|
+
id: importItemResultFullData.categoryId,
|
|
60
|
+
// the count is (1), because this is the first item for this category
|
|
61
|
+
caption: `${importItemResultFullData.categoryName} (1)`,
|
|
62
|
+
leftImgSrc: importItemResultFullData.categoryIcon,
|
|
63
|
+
class: `tree-view-item tree-view-item--${importItemResultFullData.status}`,
|
|
64
|
+
expanded: true,
|
|
65
|
+
items: [
|
|
66
|
+
{
|
|
67
|
+
id: importItemResultFullData.id,
|
|
68
|
+
caption: importItemResultFullData.name,
|
|
69
|
+
items: createImportResultDataMessages(importItemResultFullData.id, importItemResultFullData.messages),
|
|
70
|
+
class: `tree-view-item tree-view-item--${importItemResultFullData.status}`,
|
|
71
|
+
expanded: true,
|
|
72
|
+
leaf: importItemResultFullData.messages.length === 0
|
|
73
|
+
}
|
|
74
|
+
]
|
|
75
|
+
};
|
|
76
|
+
importTreeActualState.push(importTreeItem);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
// Object category node already exists. Just create the import result node, and insert into the parent category node (if it doesn't exists already).
|
|
80
|
+
// first search for the importItemResult node...
|
|
81
|
+
const importItemIndex = (_a = importTreeActualState[objectCategoryIndex].items) === null || _a === void 0 ? void 0 : _a.findIndex(importItem => {
|
|
82
|
+
return importItem.id === importItemResultFullData.id;
|
|
83
|
+
});
|
|
84
|
+
if (importItemIndex === -1) {
|
|
85
|
+
// ImportItem does not exists already
|
|
86
|
+
const importTreeItem = {
|
|
87
|
+
id: importItemResultFullData.id,
|
|
88
|
+
caption: importItemResultFullData.name,
|
|
89
|
+
expanded: true,
|
|
90
|
+
items: createImportResultDataMessages(importItemResultFullData.id, importItemResultFullData.messages),
|
|
91
|
+
class: `tree-view-item tree-view-item--${importItemResultFullData.status}`
|
|
92
|
+
};
|
|
93
|
+
// Insert the import node into the category node
|
|
94
|
+
importTreeActualState[objectCategoryIndex].items.push(importTreeItem);
|
|
95
|
+
// Then, update the category node caption (the name is the same, but the (count) should be the actual items.length, because we have just added a new child import node. )
|
|
96
|
+
importTreeActualState[objectCategoryIndex].caption = `${importItemResultFullData.categoryName} (${importTreeActualState[objectCategoryIndex].items.length})`;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return importTreeActualState;
|
|
100
|
+
};
|
|
101
|
+
/**
|
|
102
|
+
* This function takes an ImportItemResultData item, and updates it to a ImportCategoryFullData, which has the same information, plus the category parent needed information, that will be used for creating the "virtual" parent category node on the "Import Status" section.
|
|
103
|
+
*/
|
|
104
|
+
const createImportResultFullData = (importItemResultData, importCategoryData) => {
|
|
105
|
+
const importCategoryFullData = Object.assign({ categoryId: undefined, categoryName: undefined, categoryIcon: undefined }, importItemResultData);
|
|
106
|
+
importCategoryDataFor: for (let i = 0; i < importCategoryData.length; i++) {
|
|
107
|
+
const categoryNode = importCategoryData[i];
|
|
108
|
+
for (let j = 0; j < categoryNode.items.length; j++) {
|
|
109
|
+
if (categoryNode.items[j].id === importItemResultData.id) {
|
|
110
|
+
importCategoryFullData.categoryId = categoryNode.id;
|
|
111
|
+
importCategoryFullData.categoryName = categoryNode.name;
|
|
112
|
+
importCategoryFullData.categoryIcon = categoryNode.icon;
|
|
113
|
+
break importCategoryDataFor;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return importCategoryFullData;
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* @description This function adds an ImportItemResultData item to the "importTreeState", and returns the updated tree with the new item added.
|
|
121
|
+
*/
|
|
122
|
+
export const addImportItemResultDataItem = (importItemResultData, importCategoryData, importTreeActualState) => {
|
|
123
|
+
let updatedImportStatusTree = [...importTreeActualState];
|
|
124
|
+
// first, update importItemResultData with the category data. It will be needed later.
|
|
125
|
+
const importItemResultFullData = createImportResultFullData(importItemResultData, importCategoryData);
|
|
126
|
+
updatedImportStatusTree = updateImportStatusTree(importItemResultFullData, updatedImportStatusTree);
|
|
127
|
+
return updatedImportStatusTree;
|
|
128
|
+
};
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
/*Gemini*/
|
|
2
|
+
/*Gx Ide*/
|
|
3
|
+
/* Helper Classes */
|
|
4
|
+
.gxi-hidden {
|
|
5
|
+
display: none !important;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.gxi-full-height {
|
|
9
|
+
height: 100%;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.gxi-overflow-auto {
|
|
13
|
+
overflow: auto;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.gxi-display-flex {
|
|
17
|
+
display: flex;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.align-start {
|
|
21
|
+
display: flex;
|
|
22
|
+
align-items: start;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.align-center {
|
|
26
|
+
display: flex;
|
|
27
|
+
align-items: center;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.align-end {
|
|
31
|
+
display: flex;
|
|
32
|
+
align-items: end;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/* Grids */
|
|
36
|
+
.grid {
|
|
37
|
+
display: grid;
|
|
38
|
+
grid-row-gap: var(--gx-ide-grid-row-gap);
|
|
39
|
+
grid-column-gap: var(--gx-ide-grid-column-gap);
|
|
40
|
+
grid-template-rows: auto;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
ch-grid-cell {
|
|
44
|
+
display: flex;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
ch-grid {
|
|
48
|
+
overflow: auto;
|
|
49
|
+
height: 100%;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
ch-grid-column {
|
|
53
|
+
/*to be removed when this works inside a component with shadow: true*/
|
|
54
|
+
z-index: 99;
|
|
55
|
+
border-bottom: 1px solid var(--gray-01);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/*Gxg Tabs*/
|
|
59
|
+
gxg-tabs {
|
|
60
|
+
box-shadow: none;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/*All components Host should have this class set. !important is set on every rule, since this styles could be overridden by the host user, since they are applied on the host component*/
|
|
64
|
+
:host(.gx-ide-component) {
|
|
65
|
+
box-shadow: var(--box-shadow-01) !important;
|
|
66
|
+
height: 100% !important;
|
|
67
|
+
display: flex !important;
|
|
68
|
+
flex-direction: column !important;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/*stylize the top bar*/
|
|
72
|
+
:host(:focus-within) gx-ide-top-bar::part(wrapper) {
|
|
73
|
+
background-color: var(--color-secondary-enabled);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/* Main wrapper (should be the first element inside the host. Everything should be inside .gx-ide-main-wrapper) */
|
|
77
|
+
.gx-ide-main-wrapper {
|
|
78
|
+
color: var(--gx-ide-component-text-color);
|
|
79
|
+
font-weight: var(--font-weight-regular);
|
|
80
|
+
font-size: var(--font-size-lg);
|
|
81
|
+
line-height: 1.6em;
|
|
82
|
+
height: 100%;
|
|
83
|
+
background-color: var(--gx-ide-component-background-color);
|
|
84
|
+
display: flex;
|
|
85
|
+
flex-direction: column;
|
|
86
|
+
flex-grow: 1;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/*This is the main element. This is the one that take the remaining vertical space*/
|
|
90
|
+
.gx-ide-main {
|
|
91
|
+
flex-grow: 1;
|
|
92
|
+
overflow-y: auto;
|
|
93
|
+
/* Track */
|
|
94
|
+
/* Handle */
|
|
95
|
+
/* Handle on hover */
|
|
96
|
+
}
|
|
97
|
+
.gx-ide-main::-webkit-scrollbar {
|
|
98
|
+
width: 6px;
|
|
99
|
+
height: 6px;
|
|
100
|
+
}
|
|
101
|
+
.gx-ide-main::-webkit-scrollbar-track {
|
|
102
|
+
background-color: var(--gray-02);
|
|
103
|
+
border-radius: 10px;
|
|
104
|
+
}
|
|
105
|
+
.gx-ide-main::-webkit-scrollbar-thumb {
|
|
106
|
+
background: var(--gray-05);
|
|
107
|
+
border-radius: 10px;
|
|
108
|
+
}
|
|
109
|
+
.gx-ide-main::-webkit-scrollbar-thumb:hover {
|
|
110
|
+
background: var(--gray-04);
|
|
111
|
+
cursor: pointer;
|
|
112
|
+
}
|
|
113
|
+
.gx-ide-main .gxg-scroll {
|
|
114
|
+
display: block;
|
|
115
|
+
overflow-y: auto;
|
|
116
|
+
padding-inline-end: 2px;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.gx-ide-overflow {
|
|
120
|
+
overflow-y: auto;
|
|
121
|
+
/* Track */
|
|
122
|
+
/* Handle */
|
|
123
|
+
/* Handle on hover */
|
|
124
|
+
}
|
|
125
|
+
.gx-ide-overflow::-webkit-scrollbar {
|
|
126
|
+
width: 6px;
|
|
127
|
+
height: 6px;
|
|
128
|
+
}
|
|
129
|
+
.gx-ide-overflow::-webkit-scrollbar-track {
|
|
130
|
+
background-color: var(--gray-02);
|
|
131
|
+
border-radius: 10px;
|
|
132
|
+
}
|
|
133
|
+
.gx-ide-overflow::-webkit-scrollbar-thumb {
|
|
134
|
+
background: var(--gray-05);
|
|
135
|
+
border-radius: 10px;
|
|
136
|
+
}
|
|
137
|
+
.gx-ide-overflow::-webkit-scrollbar-thumb:hover {
|
|
138
|
+
background: var(--gray-04);
|
|
139
|
+
cursor: pointer;
|
|
140
|
+
}
|
|
141
|
+
.gx-ide-overflow .gxg-scroll {
|
|
142
|
+
display: block;
|
|
143
|
+
overflow-y: auto;
|
|
144
|
+
padding-inline-end: 2px;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/*Gemini*/
|
|
148
|
+
/*Gx Ide*/
|
|
149
|
+
:host {
|
|
150
|
+
display: block;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/*Header*/
|
|
154
|
+
.header {
|
|
155
|
+
display: flex;
|
|
156
|
+
flex-direction: row;
|
|
157
|
+
gap: var(--gx-ide-grid-column-gap);
|
|
158
|
+
}
|
|
159
|
+
.header .select-file {
|
|
160
|
+
flex: 1;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/*Main*/
|
|
164
|
+
.main {
|
|
165
|
+
min-height: 250px;
|
|
166
|
+
display: grid;
|
|
167
|
+
grid-template-columns: 1fr 1fr;
|
|
168
|
+
}
|
|
169
|
+
.main .left-grid-item {
|
|
170
|
+
border-right: 1px solid var(--gx-ide-container-border-color);
|
|
171
|
+
}
|
|
172
|
+
.main .tree-container {
|
|
173
|
+
height: 100%;
|
|
174
|
+
max-height: 300px;
|
|
175
|
+
display: flex;
|
|
176
|
+
/*import status display/hide status (warning, error, success)*/
|
|
177
|
+
}
|
|
178
|
+
.main .tree-container--empty {
|
|
179
|
+
align-items: center;
|
|
180
|
+
justify-content: center;
|
|
181
|
+
}
|
|
182
|
+
.main .tree-container--import-status .tree-view-item--success::part(action) {
|
|
183
|
+
grid-template: "first-img left-img text right-img"/max-content max-content 1fr max-content;
|
|
184
|
+
}
|
|
185
|
+
.main .tree-container--import-status .tree-view-item--success::part(action)::before {
|
|
186
|
+
grid-area: first-img;
|
|
187
|
+
content: "";
|
|
188
|
+
width: var(--spacing-comp-02);
|
|
189
|
+
height: var(--spacing-comp-02);
|
|
190
|
+
border-radius: 50%;
|
|
191
|
+
background-color: var(--gray-03);
|
|
192
|
+
background-color: var(--color-success-dark);
|
|
193
|
+
}
|
|
194
|
+
.main .tree-container--import-status .tree-view-item--warning::part(action) {
|
|
195
|
+
grid-template: "first-img left-img text right-img"/max-content max-content 1fr max-content;
|
|
196
|
+
}
|
|
197
|
+
.main .tree-container--import-status .tree-view-item--warning::part(action)::before {
|
|
198
|
+
grid-area: first-img;
|
|
199
|
+
content: "";
|
|
200
|
+
width: var(--spacing-comp-02);
|
|
201
|
+
height: var(--spacing-comp-02);
|
|
202
|
+
border-radius: 50%;
|
|
203
|
+
background-color: var(--gray-03);
|
|
204
|
+
background-color: var(--color-warning-dark);
|
|
205
|
+
}
|
|
206
|
+
.main .tree-container--import-status .tree-view-item--error::part(action) {
|
|
207
|
+
grid-template: "first-img left-img text right-img"/max-content max-content 1fr max-content;
|
|
208
|
+
}
|
|
209
|
+
.main .tree-container--import-status .tree-view-item--error::part(action)::before {
|
|
210
|
+
grid-area: first-img;
|
|
211
|
+
content: "";
|
|
212
|
+
width: var(--spacing-comp-02);
|
|
213
|
+
height: var(--spacing-comp-02);
|
|
214
|
+
border-radius: 50%;
|
|
215
|
+
background-color: var(--gray-03);
|
|
216
|
+
background-color: var(--color-error-dark);
|
|
217
|
+
}
|
|
218
|
+
.main .tree-container--no-warnings .tree-view-item--warning {
|
|
219
|
+
display: none;
|
|
220
|
+
}
|
|
221
|
+
.main .tree-container--no-errors .tree-view-item--error {
|
|
222
|
+
display: none;
|
|
223
|
+
}
|
|
224
|
+
.main .tree-container--no-successes .tree-view-item--success {
|
|
225
|
+
display: none;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
.ghost-element {
|
|
229
|
+
display: block;
|
|
230
|
+
width: 0;
|
|
231
|
+
height: 24px;
|
|
232
|
+
/*this is the taller element on the "objects in file container footer (which is the button group, at the time of writing)"*/
|
|
233
|
+
}
|