@genexus/genexus-ide-ui 0.0.16 → 0.0.18
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-grid_7.cjs.entry.js +73 -27
- package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
- package/dist/cjs/{gx-ide-container_2.cjs.entry.js → gx-ide-container.cjs.entry.js} +0 -31
- package/dist/cjs/gx-ide-new-kb.cjs.entry.js +16 -17
- package/dist/cjs/gx-ide-references.cjs.entry.js +115 -90
- package/dist/cjs/gx-ide-template.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-test.cjs.entry.js +40 -3
- package/dist/cjs/{gxg-form-radio-group.cjs.entry.js → gx-ide-top-bar_2.cjs.entry.js} +31 -0
- package/dist/cjs/gxg-combo-box_8.cjs.entry.js +3 -8
- package/dist/cjs/gxg-menu.cjs.entry.js +2 -2
- package/dist/cjs/gxg-test.cjs.entry.js +4 -23
- package/dist/cjs/gxg-tree_2.cjs.entry.js +381 -295
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/update-tree-model-445c63a8.js +53 -0
- package/dist/collection/common/render-tree.js +1 -1
- package/dist/collection/common/update-tree-model.js +22 -0
- package/dist/collection/components/_template/template.js +9 -10
- package/dist/collection/components/_test/test.js +129 -2
- package/dist/collection/components/new-kb/new-kb.js +16 -35
- package/dist/collection/components/references/references.js +119 -113
- package/dist/collection/pages/assets/common.js +105 -95
- package/dist/components/ch-grid2.js +74 -28
- package/dist/components/combo-box.js +4 -3
- package/dist/components/form-radio.js +0 -5
- package/dist/components/gx-ide-new-kb.js +20 -28
- package/dist/components/gx-ide-references.js +131 -111
- package/dist/components/gx-ide-template.js +7 -13
- package/dist/components/gx-ide-test.js +45 -4
- package/dist/components/gxg-menu.js +2 -2
- package/dist/components/gxg-test.js +4 -23
- package/dist/components/gxg-tree-item2.js +326 -284
- package/dist/components/gxg-tree2.js +60 -15
- package/dist/components/update-tree-model.js +50 -0
- package/dist/esm/ch-grid_7.entry.js +73 -27
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/{gx-ide-container_2.entry.js → gx-ide-container.entry.js} +1 -31
- package/dist/esm/gx-ide-new-kb.entry.js +16 -17
- package/dist/esm/gx-ide-references.entry.js +115 -90
- package/dist/esm/gx-ide-template.entry.js +2 -2
- package/dist/esm/gx-ide-test.entry.js +40 -3
- package/dist/esm/{gxg-form-radio-group.entry.js → gx-ide-top-bar_2.entry.js} +32 -2
- package/dist/esm/gxg-combo-box_8.entry.js +3 -8
- package/dist/esm/gxg-menu.entry.js +2 -2
- package/dist/esm/gxg-test.entry.js +4 -23
- package/dist/esm/gxg-tree_2.entry.js +382 -296
- package/dist/esm/loader.js +1 -1
- package/dist/esm/update-tree-model-80419058.js +50 -0
- package/dist/genexus-ide-ui/genexus-ide-ui.css +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/p-1042318d.entry.js +1 -0
- package/dist/genexus-ide-ui/p-1d4cf2ae.entry.js +1 -0
- package/dist/genexus-ide-ui/p-254f9ce7.entry.js +1 -0
- package/dist/genexus-ide-ui/p-49433b58.entry.js +1 -0
- package/dist/genexus-ide-ui/p-67cf60f5.js +1 -0
- package/dist/genexus-ide-ui/p-7007965c.entry.js +1 -0
- package/dist/genexus-ide-ui/p-78a90113.entry.js +1 -0
- package/dist/genexus-ide-ui/p-79cf24a3.entry.js +1 -0
- package/dist/genexus-ide-ui/p-b66a4121.entry.js +1 -0
- package/dist/genexus-ide-ui/p-cd503583.entry.js +1 -0
- package/dist/genexus-ide-ui/{p-1e412d88.entry.js → p-fcc98e20.entry.js} +1 -1
- package/dist/node_modules/@genexus/gemini/dist/collection/components/tree-item/gxg-tree-item.css +2 -2
- package/dist/types/common/update-tree-model.d.ts +2 -0
- package/dist/types/components/_template/template.d.ts +2 -2
- package/dist/types/components/_test/test.d.ts +19 -1
- package/dist/types/components/new-kb/new-kb.d.ts +0 -4
- package/dist/types/components/references/references.d.ts +28 -24
- package/dist/types/components.d.ts +41 -21
- package/package.json +3 -3
- package/dist/cjs/render-tree-25d5b8a1.js +0 -29
- package/dist/components/render-tree.js +0 -27
- package/dist/esm/render-tree-fc8636a3.js +0 -27
- package/dist/genexus-ide-ui/p-0f5d0ccc.entry.js +0 -1
- package/dist/genexus-ide-ui/p-2761a056.entry.js +0 -1
- package/dist/genexus-ide-ui/p-62814082.entry.js +0 -1
- package/dist/genexus-ide-ui/p-97430828.entry.js +0 -1
- package/dist/genexus-ide-ui/p-9e32e006.entry.js +0 -1
- package/dist/genexus-ide-ui/p-a5fee36d.entry.js +0 -1
- package/dist/genexus-ide-ui/p-abee8c7b.js +0 -1
- package/dist/genexus-ide-ui/p-be9406e7.entry.js +0 -1
- package/dist/genexus-ide-ui/p-eb8e9655.entry.js +0 -1
- package/dist/genexus-ide-ui/p-f6536bbc.entry.js +0 -1
|
@@ -105,24 +105,24 @@ export class GxIdeNewKb {
|
|
|
105
105
|
return gxOptions;
|
|
106
106
|
};
|
|
107
107
|
this.createKbHandler = () => {
|
|
108
|
-
var _a, _b, _c;
|
|
108
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
109
109
|
if (this.createCallback) {
|
|
110
110
|
const createCallbackPromise = this.createCallback({
|
|
111
|
-
kbName: this.kbNameEl.value,
|
|
112
|
-
kbLocation: this.locationEl.value,
|
|
113
|
-
prototypingTarget: this.prototypingTargetEl.value,
|
|
114
|
-
userInterfaceLanguage: this.userInterfaceLanguageEl.value,
|
|
115
|
-
prototypingEnvironment: this.prototypingEnvironmentEl.value,
|
|
116
|
-
dataSource: this.dataSourceEl.value,
|
|
111
|
+
kbName: (_a = this.kbNameEl) === null || _a === void 0 ? void 0 : _a.value,
|
|
112
|
+
kbLocation: (_b = this.locationEl) === null || _b === void 0 ? void 0 : _b.value,
|
|
113
|
+
prototypingTarget: (_c = this.prototypingTargetEl) === null || _c === void 0 ? void 0 : _c.value,
|
|
114
|
+
userInterfaceLanguage: (_d = this.userInterfaceLanguageEl) === null || _d === void 0 ? void 0 : _d.value,
|
|
115
|
+
prototypingEnvironment: (_e = this.prototypingEnvironmentEl) === null || _e === void 0 ? void 0 : _e.value,
|
|
116
|
+
dataSource: (_f = this.dataSourceEl) === null || _f === void 0 ? void 0 : _f.value,
|
|
117
117
|
frontEnds: this.getFrontEndOptionsValues(),
|
|
118
|
-
serverName: this.serverNameEl.value,
|
|
119
|
-
databaseName: this.databaseNameEl.value,
|
|
120
|
-
collation: this.collationEl.value,
|
|
121
|
-
createDataFilesInKBFolder: this.createDataFilesInKBFolderEl.checked,
|
|
122
|
-
authenticationType: this.authenticationTypeEl.value,
|
|
123
|
-
userName: (
|
|
124
|
-
password: (
|
|
125
|
-
savePassword: (
|
|
118
|
+
serverName: (_g = this.serverNameEl) === null || _g === void 0 ? void 0 : _g.value,
|
|
119
|
+
databaseName: (_h = this.databaseNameEl) === null || _h === void 0 ? void 0 : _h.value,
|
|
120
|
+
collation: (_j = this.collationEl) === null || _j === void 0 ? void 0 : _j.value,
|
|
121
|
+
createDataFilesInKBFolder: (_k = this.createDataFilesInKBFolderEl) === null || _k === void 0 ? void 0 : _k.checked,
|
|
122
|
+
authenticationType: (_l = this.authenticationTypeEl) === null || _l === void 0 ? void 0 : _l.value,
|
|
123
|
+
userName: (_m = this.userNameEl) === null || _m === void 0 ? void 0 : _m.value,
|
|
124
|
+
password: (_o = this.passwordEl) === null || _o === void 0 ? void 0 : _o.value,
|
|
125
|
+
savePassword: (_p = this.savePasswordEl) === null || _p === void 0 ? void 0 : _p.checked
|
|
126
126
|
});
|
|
127
127
|
createCallbackPromise.then(formSubmitResult => {
|
|
128
128
|
formSubmitValidation(formSubmitResult, this);
|
|
@@ -152,7 +152,6 @@ export class GxIdeNewKb {
|
|
|
152
152
|
this.userNameVisible = true;
|
|
153
153
|
this.passwordVisible = true;
|
|
154
154
|
this.savePasswordVisible = true;
|
|
155
|
-
this.hideTopBar = false;
|
|
156
155
|
this.dataSources = undefined;
|
|
157
156
|
this.frontEnds = undefined;
|
|
158
157
|
this.isAdvanced = false;
|
|
@@ -188,7 +187,7 @@ export class GxIdeNewKb {
|
|
|
188
187
|
* 11.RENDER() FUNCTION
|
|
189
188
|
********************************/
|
|
190
189
|
render() {
|
|
191
|
-
return (h(Host, { class: "gx-ide-component" },
|
|
190
|
+
return (h(Host, { class: "gx-ide-component" }, h("div", { class: "gx-ide-main-wrapper gx-ide-overflow" }, h("gx-ide-container", null, h("header", { class: {
|
|
192
191
|
"header": true,
|
|
193
192
|
"grid": true,
|
|
194
193
|
"header--is-advanced": this.isAdvanced
|
|
@@ -215,24 +214,6 @@ export class GxIdeNewKb {
|
|
|
215
214
|
static get assetsDirs() { return ["gx-ide-assets/new-kb"]; }
|
|
216
215
|
static get properties() {
|
|
217
216
|
return {
|
|
218
|
-
"hideTopBar": {
|
|
219
|
-
"type": "boolean",
|
|
220
|
-
"mutable": false,
|
|
221
|
-
"complexType": {
|
|
222
|
-
"original": "false",
|
|
223
|
-
"resolved": "boolean",
|
|
224
|
-
"references": {}
|
|
225
|
-
},
|
|
226
|
-
"required": false,
|
|
227
|
-
"optional": false,
|
|
228
|
-
"docs": {
|
|
229
|
-
"tags": [],
|
|
230
|
-
"text": "If true, will hide the top-bar"
|
|
231
|
-
},
|
|
232
|
-
"attribute": "hide-top-bar",
|
|
233
|
-
"reflect": false,
|
|
234
|
-
"defaultValue": "false"
|
|
235
|
-
},
|
|
236
217
|
"dataSources": {
|
|
237
218
|
"type": "unknown",
|
|
238
219
|
"mutable": false,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/* STENCIL IMPORTS */
|
|
2
2
|
import { Host, h } from "@stencil/core";
|
|
3
|
-
/* OTHER LIBRARIES IMPORTS */
|
|
4
3
|
/* CUSTOM IMPORTS */
|
|
5
4
|
import { Locale } from "../../common/locale";
|
|
6
5
|
import { renderTreeItems } from "../../common/render-tree";
|
|
6
|
+
import { updateTreeModel } from "../../common/update-tree-model";
|
|
7
7
|
import { renderSuggestLists } from "../../common/render-suggest";
|
|
8
8
|
import { convertObjectDataToSuggestData, convertReferenceDataToTreeData, updateSuggestedObjects } from "./helpers";
|
|
9
9
|
export class GxIdeReferences {
|
|
@@ -20,7 +20,7 @@ export class GxIdeReferences {
|
|
|
20
20
|
// 8.PUBLIC METHODS API //
|
|
21
21
|
// 9.LOCAL METHODS //
|
|
22
22
|
/**
|
|
23
|
-
*
|
|
23
|
+
* It attaches on the ch-suggest, the "itemSelected" event triggered by the ch-suggest-list-item. This helps set the new 'selectedObject'.
|
|
24
24
|
*/
|
|
25
25
|
this.attachSelectObjectListener = () => {
|
|
26
26
|
this.selectObjectSuggestEl.addEventListener("itemSelected", (e) => {
|
|
@@ -31,61 +31,7 @@ export class GxIdeReferences {
|
|
|
31
31
|
});
|
|
32
32
|
};
|
|
33
33
|
/**
|
|
34
|
-
*
|
|
35
|
-
*/
|
|
36
|
-
this.attachReferencedByListeners = () => {
|
|
37
|
-
/* 'toggleIconClicked' Event: This events gets fired when the user clicks on the toggle icon, that opens/close a tree. Here we only use it to check if the item has lazy items to be loaded. */
|
|
38
|
-
this.referencedByEl.addEventListener("toggleIconClicked", async (e) => {
|
|
39
|
-
if (e.detail.lazy && e.detail.id) {
|
|
40
|
-
this.loadReferencesCallback(e.detail.id, false)
|
|
41
|
-
.then(result => {
|
|
42
|
-
this.referencedBy = result;
|
|
43
|
-
})
|
|
44
|
-
.catch(() => {
|
|
45
|
-
// to do
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
/* 'selectionChanged' Event: Fired when a new tree item was selected.*/
|
|
50
|
-
this.referencedByEl.addEventListener("selectionChanged", (e) => {
|
|
51
|
-
this.selectReferenceCallback(e.detail.id);
|
|
52
|
-
/* Returns void Promise*/
|
|
53
|
-
});
|
|
54
|
-
/* 'doubleClicked' Event: Fired when a tree item was double-clicked.*/
|
|
55
|
-
this.referencedByEl.addEventListener("doubleClicked", (e) => {
|
|
56
|
-
this.openObjectCallback(e.detail.id);
|
|
57
|
-
/* Returns void Promise*/
|
|
58
|
-
});
|
|
59
|
-
};
|
|
60
|
-
/**
|
|
61
|
-
* @description It attaches several events on the 'referencesToEl' element, which is a tree.
|
|
62
|
-
*/
|
|
63
|
-
this.attachReferencesToListeners = () => {
|
|
64
|
-
/* 'toggleIconClicked' Event: (Read description on 'attachReferencedByListeners' as it does the same)*/
|
|
65
|
-
this.referencesToEl.addEventListener("toggleIconClicked", async (e) => {
|
|
66
|
-
if (e.detail.lazy && e.detail.id) {
|
|
67
|
-
this.loadReferencesCallback(e.detail.id, true)
|
|
68
|
-
.then(result => {
|
|
69
|
-
this.referencesTo = result;
|
|
70
|
-
})
|
|
71
|
-
.catch(() => {
|
|
72
|
-
// to do
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
/* 'selectionChanged' Event: Fired when a new tree item was selected.*/
|
|
77
|
-
this.referencesToEl.addEventListener("selectionChanged", (e) => {
|
|
78
|
-
this.selectReferenceCallback(e.detail.id);
|
|
79
|
-
/* Returns void Promise*/
|
|
80
|
-
});
|
|
81
|
-
/* 'doubleClicked' Event: Fired when a tree item was double-clicked.*/
|
|
82
|
-
this.referencesToEl.addEventListener("doubleClicked", (e) => {
|
|
83
|
-
this.openObjectCallback(e.detail.id);
|
|
84
|
-
/* Returns void Promise*/
|
|
85
|
-
});
|
|
86
|
-
};
|
|
87
|
-
/**
|
|
88
|
-
* @description This handler gets fired every time the value of the 'Select Object' ch-suggest changes. Then, it calls the 'updateSuggestedObjects' method, that keeps the state of the last suggested objects that were passed bu the host. Also, it shows the suggested objects on the ch-suggest box.
|
|
34
|
+
* This handler gets fired every time the value of the 'Select Object' ch-suggest changes. Then, it calls the 'updateSuggestedObjects' method, that keeps the state of the last suggested objects that were passed bu the host. Also, it shows the suggested objects on the ch-suggest box.
|
|
89
35
|
*/
|
|
90
36
|
this.selectObjectValueChangedHandler = async (e) => {
|
|
91
37
|
const value = e.detail;
|
|
@@ -105,55 +51,131 @@ export class GxIdeReferences {
|
|
|
105
51
|
/* Returns an empty Promise*/
|
|
106
52
|
};
|
|
107
53
|
/**
|
|
108
|
-
*
|
|
54
|
+
* handler that gets fired when the use clicks on the ch-suggest button (...)
|
|
109
55
|
*/
|
|
110
56
|
this.openSelectorDialogCallbackHandler = async () => {
|
|
111
|
-
this.
|
|
57
|
+
this.openSelectorDialogCallback()
|
|
58
|
+
.then(result => {
|
|
59
|
+
this.selectedObject = result;
|
|
60
|
+
})
|
|
61
|
+
.catch(() => {
|
|
62
|
+
/* to do */
|
|
63
|
+
});
|
|
112
64
|
};
|
|
113
65
|
/**
|
|
114
|
-
*
|
|
66
|
+
* It evaluates if loadReferencesCallback should be called, depending wether there is or not an actual selected object.
|
|
115
67
|
*/
|
|
116
68
|
this.evaluateInitialReferenceData = () => {
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
69
|
+
if (this.selectedObject) {
|
|
70
|
+
this.selectedObjectHandler(this.selectedObject);
|
|
71
|
+
}
|
|
120
72
|
};
|
|
121
73
|
/**
|
|
122
|
-
*
|
|
74
|
+
* This method invokes 'loadReferencesCallback' callback for 'Is Referenced By' and 'Has References To' panels. The second parameter "to" indicates if loadReferencesCallback callback should be called for "has references to" or "is references by"
|
|
123
75
|
*/
|
|
124
|
-
this.loadReferencesHandler = async (id) => {
|
|
125
|
-
/* Referenced By*/
|
|
76
|
+
this.loadReferencesHandler = async (id, to = false) => {
|
|
126
77
|
if (this.loadReferencesCallback) {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
this.
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
78
|
+
/* is referenced by*/
|
|
79
|
+
if (!to) {
|
|
80
|
+
this.loadReferencesCallback(id, false)
|
|
81
|
+
.then(result => {
|
|
82
|
+
this.referencedByTreeData = convertReferenceDataToTreeData(result);
|
|
83
|
+
})
|
|
84
|
+
.catch(() => {
|
|
85
|
+
/* To do*/
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
/* is referenced by*/
|
|
89
|
+
if (to) {
|
|
90
|
+
this.loadReferencesCallback(id, true)
|
|
91
|
+
.then(result => {
|
|
92
|
+
this.referencesToTreeData = convertReferenceDataToTreeData(result);
|
|
93
|
+
})
|
|
94
|
+
.catch(() => {
|
|
95
|
+
/* To do*/
|
|
96
|
+
});
|
|
97
|
+
}
|
|
134
98
|
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* It hides/show the bar (The header bottom section).
|
|
102
|
+
*/
|
|
103
|
+
this.hideBarButtonClickedHandler = () => {
|
|
104
|
+
this.barHidden = !this.barHidden;
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Simple helper function to get 'this.referencedByTreeData' or 'this.referencesToTreeData'
|
|
108
|
+
*/
|
|
109
|
+
this.getRef = (to = false) => {
|
|
110
|
+
if (!to) {
|
|
111
|
+
/* referenced by*/
|
|
112
|
+
return this.referencedByTreeData;
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
/* references to*/
|
|
116
|
+
return this.referencesToTreeData;
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* Simple helper function to update 'this.referencedByTreeData' or 'this.referencesToTreeData'
|
|
121
|
+
*/
|
|
122
|
+
this.updateRef = (to = false, updatedData) => {
|
|
123
|
+
if (!to) {
|
|
124
|
+
/* referenced by*/
|
|
125
|
+
this.referencedByTreeData = updatedData;
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
/* references to*/
|
|
129
|
+
this.referencesToTreeData = updatedData;
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
/**
|
|
133
|
+
* Handles changes on any of the references (by or to). Used to:
|
|
134
|
+
* 1) Keep the models updated.
|
|
135
|
+
* 2) call the openObjectCallback.
|
|
136
|
+
* 3) call the loadReferencesCallback if a lazy node was toggled.
|
|
137
|
+
*/
|
|
138
|
+
this.referencesPanelStateChangedHandler = (to = false) => (e) => {
|
|
139
|
+
const event = e.detail.emittedBy;
|
|
140
|
+
const nodeData = e.detail.itemData;
|
|
141
|
+
const nodeId = e.detail.itemData.id;
|
|
142
|
+
const nodeLabel = e.detail.itemData.label;
|
|
143
|
+
/* tree item was selected*/
|
|
144
|
+
if (event === "selectionChanged") {
|
|
145
|
+
this.selectReferenceCallback(nodeId);
|
|
146
|
+
/* Returns void Promise*/
|
|
147
|
+
}
|
|
148
|
+
/* tree item was double-clicked.*/
|
|
149
|
+
if (event === "doubleClicked") {
|
|
150
|
+
this.openObjectCallback(nodeId);
|
|
151
|
+
}
|
|
152
|
+
let updatedTreeModel = [];
|
|
153
|
+
const lazy = nodeData.lazy;
|
|
154
|
+
if (lazy) {
|
|
155
|
+
// loadReferencesCallback
|
|
156
|
+
let children = [];
|
|
157
|
+
this.loadReferencesCallback(nodeId, to)
|
|
138
158
|
.then(result => {
|
|
139
|
-
|
|
159
|
+
children = convertReferenceDataToTreeData(result);
|
|
160
|
+
// Then update model
|
|
161
|
+
updatedTreeModel = updateTreeModel(this.getRef(to), { id: nodeId, label: nodeLabel, items: children }, nodeId);
|
|
162
|
+
this.updateRef(to, updatedTreeModel);
|
|
140
163
|
})
|
|
141
164
|
.catch(() => {
|
|
142
165
|
/* To do*/
|
|
143
166
|
});
|
|
144
167
|
}
|
|
168
|
+
else {
|
|
169
|
+
updatedTreeModel = updateTreeModel(this.getRef(to), nodeData, nodeId);
|
|
170
|
+
this.updateRef(to, updatedTreeModel);
|
|
171
|
+
}
|
|
145
172
|
};
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
*/
|
|
149
|
-
this.hideBarButtonClickedHandler = () => {
|
|
150
|
-
this.barHidden = !this.barHidden;
|
|
151
|
-
};
|
|
173
|
+
this.referencedByTreeData = undefined;
|
|
174
|
+
this.referencesToTreeData = undefined;
|
|
152
175
|
this.barHidden = false;
|
|
153
176
|
this.objectsSuggestions = undefined;
|
|
154
177
|
this.referencedBy = undefined;
|
|
155
178
|
this.referencesTo = undefined;
|
|
156
|
-
this.hideTopBar = false;
|
|
157
179
|
this.selectedObject = undefined;
|
|
158
180
|
this.selectorSourceCallback = undefined;
|
|
159
181
|
this.loadReferencesCallback = undefined;
|
|
@@ -162,7 +184,12 @@ export class GxIdeReferences {
|
|
|
162
184
|
this.selectReferenceCallback = undefined;
|
|
163
185
|
}
|
|
164
186
|
selectedObjectHandler(newSelectedObject) {
|
|
165
|
-
|
|
187
|
+
if (newSelectedObject.id) {
|
|
188
|
+
/* update "is referenced by*/
|
|
189
|
+
this.loadReferencesHandler(newSelectedObject.id, false);
|
|
190
|
+
/* update "has references to*/
|
|
191
|
+
this.loadReferencesHandler(newSelectedObject.id, true);
|
|
192
|
+
}
|
|
166
193
|
}
|
|
167
194
|
// 6.COMPONENT LIFECYCLE EVENTS //
|
|
168
195
|
async componentWillLoad() {
|
|
@@ -171,8 +198,6 @@ export class GxIdeReferences {
|
|
|
171
198
|
}
|
|
172
199
|
componentDidLoad() {
|
|
173
200
|
this.attachSelectObjectListener();
|
|
174
|
-
this.attachReferencedByListeners();
|
|
175
|
-
this.attachReferencesToListeners();
|
|
176
201
|
}
|
|
177
202
|
componentDidRender() {
|
|
178
203
|
this.componentDidRenderEvent.emit(this._componentLocale.componentName);
|
|
@@ -180,12 +205,12 @@ export class GxIdeReferences {
|
|
|
180
205
|
// 10.RENDER() FUNCTION //
|
|
181
206
|
render() {
|
|
182
207
|
var _a, _b, _c, _d, _e, _f;
|
|
183
|
-
return (h(Host, { class: "gx-ide-component" },
|
|
208
|
+
return (h(Host, { class: "gx-ide-component" }, h("div", { class: "gx-ide-main-wrapper gx-ide-overflow" }, h("gx-ide-container", { displayBorderBottom: true }, h("header", { class: "header" }, h("div", { class: "header__top grid" }, h("gxg-button", { icon: "navigation/arrow-down", type: "secondary-icon-only", class: "hide-bar-button", onClick: this.hideBarButtonClickedHandler, part: "toggle-bar-button" }), h("gxg-label", { labelPosition: "start", class: "suggest-label", part: "select-object-label" }, this._componentLocale.header.selectObject), h("gxg-suggest", null, h("ch-suggest", { value: this.selectedObject.id, onValueChanged: this.selectObjectValueChangedHandler, ref: el => (this.selectObjectSuggestEl = el), part: "object-selector-suggest" }, renderSuggestLists(this.objectsSuggestions))), h("gxg-button", { type: "secondary-icon-only", icon: "gemini-tools/show-more-horizontal", onClick: this.openSelectorDialogCallbackHandler, class: "selector-dialog-button", part: "open-selector-dialog-button" })), h("div", { class: {
|
|
184
209
|
"header__bottom": true,
|
|
185
210
|
"header__bottom--hidden": this.barHidden
|
|
186
|
-
} }, h("div", { class: "outer-wrapper" }, h("div", { class: "inner-wrapper" }, h("div", { class: "inner-wrapper__left" }, h("gxg-icon", { type: this.selectedObject.icon, color: "auto" }), h("gxg-text", { padding: "s", type: "text-link", part: "open-object-text-link", onClick: this.openObjectCallbackHandler }, `${this.selectedObject.name} : ${this.selectedObject.description}`)), h("div", { class: "inner-wrapper__right gxi-hidden" }, h("gxg-form-checkbox", { id: "references-by-type", label: "Group references by type", required: true, "display-validation-styles": true, part: "references-type-checkbox" }))))))), h("main", { class: "main grid" }, h("gx-ide-container", { containerTitle: this._componentLocale.main.isReferencedBy, justifyContent: "center", part: "referenced-by-container" }, h("gxg-tree", {
|
|
211
|
+
} }, h("div", { class: "outer-wrapper" }, h("div", { class: "inner-wrapper" }, h("div", { class: "inner-wrapper__left" }, h("gxg-icon", { type: this.selectedObject.icon, color: "auto" }), h("gxg-text", { padding: "s", type: "text-link", part: "open-object-text-link", onClick: this.openObjectCallbackHandler }, `${this.selectedObject.name} : ${this.selectedObject.description}`)), h("div", { class: "inner-wrapper__right gxi-hidden" }, h("gxg-form-checkbox", { id: "references-by-type", label: "Group references by type", required: true, "display-validation-styles": true, part: "references-type-checkbox" }))))))), h("main", { class: "main grid" }, h("gx-ide-container", { containerTitle: this._componentLocale.main.isReferencedBy, justifyContent: "center", fullHeight: true, part: "referenced-by-container" }, h("gxg-tree", { class: { "gxi-hidden": !((_a = this.referencedByTreeData) === null || _a === void 0 ? void 0 : _a.length) }, checkbox: true, onTreeItemStateChanged: this.referencesPanelStateChangedHandler(false), part: "referenced-by-tree" }, renderTreeItems(this.referencedByTreeData)), !((_b = this.referencedByTreeData) === null || _b === void 0 ? void 0 : _b.length) && (h("gxg-text", { textAlign: "center", padding: "m", type: "text-regular", maxWidth: this.referencesMessagesMaxWidth, part: "referenced-by-text" }, ((_c = this.referencedByTreeData) === null || _c === void 0 ? void 0 : _c.length) === 0
|
|
187
212
|
? this._componentLocale.main.isReferencedByEmpty
|
|
188
|
-
: this._componentLocale.main.isReferencedByError))), h("gx-ide-container", { containerTitle: this._componentLocale.main.hasReferencesTo, justifyContent: "center", part: "references-to-container" }, h("gxg-tree", {
|
|
213
|
+
: this._componentLocale.main.isReferencedByError))), h("gx-ide-container", { containerTitle: this._componentLocale.main.hasReferencesTo, justifyContent: "center", fullHeight: true, part: "references-to-container" }, h("gxg-tree", { class: { "gxi-hidden": !((_d = this.referencesToTreeData) === null || _d === void 0 ? void 0 : _d.length) }, checkbox: false, onTreeItemStateChanged: this.referencesPanelStateChangedHandler(true), part: "references-to-tree" }, renderTreeItems(this.referencesToTreeData)), !((_e = this.referencesToTreeData) === null || _e === void 0 ? void 0 : _e.length) && (h("gxg-text", { textAlign: "center", padding: "m", type: "text-regular", maxWidth: this.referencesMessagesMaxWidth, part: "references-to-text" }, ((_f = this.referencesToTreeData) === null || _f === void 0 ? void 0 : _f.length) === 0
|
|
189
214
|
? this._componentLocale.main.hasReferencesEmpty
|
|
190
215
|
: this._componentLocale.main.hasReferencesToError)))))));
|
|
191
216
|
}
|
|
@@ -204,24 +229,6 @@ export class GxIdeReferences {
|
|
|
204
229
|
static get assetsDirs() { return ["gx-ide-assets/references"]; }
|
|
205
230
|
static get properties() {
|
|
206
231
|
return {
|
|
207
|
-
"hideTopBar": {
|
|
208
|
-
"type": "boolean",
|
|
209
|
-
"mutable": false,
|
|
210
|
-
"complexType": {
|
|
211
|
-
"original": "false",
|
|
212
|
-
"resolved": "boolean",
|
|
213
|
-
"references": {}
|
|
214
|
-
},
|
|
215
|
-
"required": false,
|
|
216
|
-
"optional": false,
|
|
217
|
-
"docs": {
|
|
218
|
-
"tags": [],
|
|
219
|
-
"text": "If true, will hide the top-bar"
|
|
220
|
-
},
|
|
221
|
-
"attribute": "hide-top-bar",
|
|
222
|
-
"reflect": false,
|
|
223
|
-
"defaultValue": "false"
|
|
224
|
-
},
|
|
225
232
|
"selectedObject": {
|
|
226
233
|
"type": "unknown",
|
|
227
234
|
"mutable": true,
|
|
@@ -340,6 +347,8 @@ export class GxIdeReferences {
|
|
|
340
347
|
}
|
|
341
348
|
static get states() {
|
|
342
349
|
return {
|
|
350
|
+
"referencedByTreeData": {},
|
|
351
|
+
"referencesToTreeData": {},
|
|
343
352
|
"barHidden": {},
|
|
344
353
|
"objectsSuggestions": {},
|
|
345
354
|
"referencedBy": {},
|
|
@@ -354,11 +363,8 @@ export class GxIdeReferences {
|
|
|
354
363
|
"cancelable": true,
|
|
355
364
|
"composed": true,
|
|
356
365
|
"docs": {
|
|
357
|
-
"tags": [
|
|
358
|
-
|
|
359
|
-
"text": "Gets fired when the component has rendered for the first time."
|
|
360
|
-
}],
|
|
361
|
-
"text": ""
|
|
366
|
+
"tags": [],
|
|
367
|
+
"text": "Gets fired when the component has rendered for the first time."
|
|
362
368
|
},
|
|
363
369
|
"complexType": {
|
|
364
370
|
"original": "string",
|
|
@@ -8,75 +8,81 @@ const toggleHeightBtn = document.getElementById("toggle-height-btn");
|
|
|
8
8
|
const containerComponent = document.getElementById("container-component");
|
|
9
9
|
|
|
10
10
|
/* Toggle Dark */
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
if (toggleDarkBtn) {
|
|
12
|
+
toggleDarkBtn.addEventListener("click", function () {
|
|
13
|
+
html.classList.toggle("dark");
|
|
14
|
+
});
|
|
15
|
+
}
|
|
14
16
|
|
|
15
17
|
/* Toggle Dir */
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
18
|
+
if (toggleDirBtn) {
|
|
19
|
+
toggleDirBtn.addEventListener("click", function () {
|
|
20
|
+
const dir = html.getAttribute("dir");
|
|
21
|
+
if (dir === "ltr") {
|
|
22
|
+
html.setAttribute("dir", "rtl");
|
|
23
|
+
} else {
|
|
24
|
+
html.setAttribute("dir", "ltr");
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
24
28
|
|
|
25
29
|
/* Show Parts */
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
if (!currentSelectedPart) {
|
|
56
|
-
/* This part is not currently rendered by the component, probably because some property is not present*/
|
|
57
|
-
partSelector.classList.add("part-selector--hidden");
|
|
58
|
-
} else {
|
|
59
|
-
currentSelectedPartNodeName = currentSelectedPart.nodeName;
|
|
60
|
-
/* add class to indicate if this part belongs to a component that is not visible at a glance*/
|
|
61
|
-
if (hiddenGxgComponents.includes(currentSelectedPartNodeName)) {
|
|
62
|
-
partSelector.classList.add("part-selector--discoverable");
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
partSelector.addEventListener("click", () => {
|
|
66
|
-
if (currentSelectedPart) {
|
|
67
|
-
/* Remove current selected part style*/
|
|
68
|
-
currentSelectedPart.style.outline = "none";
|
|
69
|
-
}
|
|
30
|
+
if (showPartsBtn) {
|
|
31
|
+
showPartsBtn.addEventListener("click", function () {
|
|
32
|
+
/* Parts that are discoverable (for example gxg-combo-item, is not visible until you open the gxg-combo)*/
|
|
33
|
+
const hiddenGxgComponents = [
|
|
34
|
+
"GXG-COMBO-BOX-ITEM",
|
|
35
|
+
"GXG-CONTEXTUAL-MENU",
|
|
36
|
+
"GXG-CONTEXTUAL-MENU-ITEM",
|
|
37
|
+
"GXG-FILTER-ITEM",
|
|
38
|
+
"GXG-LIST-BOX-ITEM",
|
|
39
|
+
"GXG-MODAL",
|
|
40
|
+
"GXG-TREE-ITEM"
|
|
41
|
+
];
|
|
42
|
+
if (gxConsole) {
|
|
43
|
+
const parts = window.getElementSelectorParts(gxIdeComponent);
|
|
44
|
+
if (parts.length) {
|
|
45
|
+
/* Clear*/
|
|
46
|
+
gxConsole.innerHTML = "";
|
|
47
|
+
let currentSelectedPart = undefined;
|
|
48
|
+
parts.forEach(part => {
|
|
49
|
+
/* part div*/
|
|
50
|
+
const partSelector = document.createElement("div");
|
|
51
|
+
partSelector.classList.add("part-selector");
|
|
52
|
+
partSelector.innerText = part;
|
|
53
|
+
partSelector.setAttribute("tabindex", "1");
|
|
54
|
+
/* part span (circle for indicating additional information)*/
|
|
55
|
+
const partCircle = document.createElement("span");
|
|
56
|
+
partCircle.classList.add("circle");
|
|
57
|
+
partSelector.prepend(partCircle);
|
|
58
|
+
/* get part*/
|
|
70
59
|
currentSelectedPart = window.querySelectorPart(`${part}`);
|
|
71
|
-
|
|
72
|
-
|
|
60
|
+
if (!currentSelectedPart) {
|
|
61
|
+
/* This part is not currently rendered by the component, probably because some property is not present*/
|
|
62
|
+
partSelector.classList.add("part-selector--hidden");
|
|
63
|
+
} else {
|
|
64
|
+
currentSelectedPartNodeName = currentSelectedPart.nodeName;
|
|
65
|
+
/* add class to indicate if this part belongs to a component that is not visible at a glance*/
|
|
66
|
+
if (hiddenGxgComponents.includes(currentSelectedPartNodeName)) {
|
|
67
|
+
partSelector.classList.add("part-selector--discoverable");
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
partSelector.addEventListener("click", () => {
|
|
71
|
+
if (currentSelectedPart) {
|
|
72
|
+
/* Remove current selected part style*/
|
|
73
|
+
currentSelectedPart.style.outline = "none";
|
|
74
|
+
}
|
|
75
|
+
currentSelectedPart = window.querySelectorPart(`${part}`);
|
|
76
|
+
currentSelectedPart.style.outline = `3px solid var(--color-warning-dark)`;
|
|
77
|
+
currentSelectedPart.style.outlineOffset = "-2px";
|
|
78
|
+
});
|
|
79
|
+
/* append*/
|
|
80
|
+
gxConsole.appendChild(partSelector);
|
|
73
81
|
});
|
|
74
|
-
|
|
75
|
-
gxConsole.appendChild(partSelector);
|
|
76
|
-
});
|
|
82
|
+
}
|
|
77
83
|
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
84
|
+
});
|
|
85
|
+
}
|
|
80
86
|
|
|
81
87
|
/* Sidebar buttons */
|
|
82
88
|
const sidebarButtons = document.querySelectorAll("gxg-button");
|
|
@@ -154,41 +160,45 @@ window.querySelectorPart = selector => {
|
|
|
154
160
|
};
|
|
155
161
|
|
|
156
162
|
/* Responsive Buttons */
|
|
157
|
-
responsiveMobileBtn
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
163
|
+
if (responsiveMobileBtn && responsiveTabletBtn && responsiveDesktopBtn) {
|
|
164
|
+
responsiveMobileBtn.addEventListener("click", () => {
|
|
165
|
+
containerComponent.classList.remove("desktop");
|
|
166
|
+
containerComponent.classList.add("mobile");
|
|
167
|
+
});
|
|
168
|
+
responsiveTabletBtn.addEventListener("click", () => {
|
|
169
|
+
containerComponent.classList.remove("desktop");
|
|
170
|
+
containerComponent.classList.remove("mobile");
|
|
171
|
+
});
|
|
172
|
+
responsiveDesktopBtn.addEventListener("click", () => {
|
|
173
|
+
containerComponent.classList.remove("mobile");
|
|
174
|
+
containerComponent.classList.add("desktop");
|
|
175
|
+
});
|
|
176
|
+
}
|
|
169
177
|
|
|
170
178
|
/* Toggle height button */
|
|
171
179
|
/* Set initial height*/
|
|
172
|
-
gxIdeComponent
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
});
|
|
179
|
-
const heightVariation = 200;
|
|
180
|
-
if (toggleHeightBtn) {
|
|
181
|
-
toggleHeightBtn.addEventListener("click", () => {
|
|
182
|
-
const containerActualHeight = containerComponent.offsetHeight;
|
|
183
|
-
if (html.classList.contains("taller")) {
|
|
184
|
-
// make shorter
|
|
185
|
-
containerComponent.style.height =
|
|
186
|
-
containerActualHeight - heightVariation + "px";
|
|
187
|
-
} else {
|
|
188
|
-
// make taller
|
|
189
|
-
containerComponent.style.height =
|
|
190
|
-
containerActualHeight + heightVariation + "px";
|
|
191
|
-
}
|
|
192
|
-
html.classList.toggle("taller");
|
|
180
|
+
if (gxIdeComponent) {
|
|
181
|
+
gxIdeComponent.addEventListener("componentDidRenderEvent", e => {
|
|
182
|
+
console.log(`${e.detail} did render`);
|
|
183
|
+
setTimeout(() => {
|
|
184
|
+
// Just to be completely sure.
|
|
185
|
+
containerComponent.style.height = `${containerComponent.offsetHeight}px`;
|
|
186
|
+
}, 250);
|
|
193
187
|
});
|
|
188
|
+
const heightVariation = 200;
|
|
189
|
+
if (toggleHeightBtn) {
|
|
190
|
+
toggleHeightBtn.addEventListener("click", () => {
|
|
191
|
+
const containerActualHeight = containerComponent.offsetHeight;
|
|
192
|
+
if (html.classList.contains("taller")) {
|
|
193
|
+
// make shorter
|
|
194
|
+
containerComponent.style.height =
|
|
195
|
+
containerActualHeight - heightVariation + "px";
|
|
196
|
+
} else {
|
|
197
|
+
// make taller
|
|
198
|
+
containerComponent.style.height =
|
|
199
|
+
containerActualHeight + heightVariation + "px";
|
|
200
|
+
}
|
|
201
|
+
html.classList.toggle("taller");
|
|
202
|
+
});
|
|
203
|
+
}
|
|
194
204
|
}
|