@genexus/genexus-ide-ui 0.0.17 → 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/genexus-ide-ui.cjs.js +1 -1
- package/dist/cjs/gx-ide-references.cjs.entry.js +115 -90
- 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-tree_2.cjs.entry.js +40 -59
- 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/_test/test.js +129 -2
- package/dist/collection/components/references/references.js +119 -113
- package/dist/collection/pages/assets/common.js +105 -95
- package/dist/components/gx-ide-references.js +131 -111
- package/dist/components/gx-ide-test.js +45 -4
- package/dist/components/gxg-tree-item2.js +21 -46
- package/dist/components/gxg-tree2.js +20 -14
- package/dist/components/update-tree-model.js +50 -0
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-references.entry.js +115 -90
- 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-tree_2.entry.js +40 -59
- 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.esm.js +1 -1
- package/dist/genexus-ide-ui/p-254f9ce7.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-b66a4121.entry.js +1 -0
- package/dist/types/common/update-tree-model.d.ts +2 -0
- package/dist/types/components/_test/test.d.ts +19 -1
- package/dist/types/components/references/references.d.ts +28 -24
- package/dist/types/components.d.ts +37 -9
- package/package.json +3 -3
- package/dist/cjs/gx-ide-top-bar.cjs.entry.js +0 -37
- package/dist/cjs/render-tree-25d5b8a1.js +0 -29
- package/dist/components/render-tree.js +0 -27
- package/dist/esm/gx-ide-top-bar.entry.js +0 -33
- package/dist/esm/render-tree-fc8636a3.js +0 -27
- package/dist/genexus-ide-ui/p-48482e25.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-c5c6e102.entry.js +0 -1
- package/dist/genexus-ide-ui/p-f6536bbc.entry.js +0 -1
|
@@ -1,7 +1,12 @@
|
|
|
1
|
+
/* STENCIL IMPORTS */
|
|
1
2
|
import { Host, h } from "@stencil/core";
|
|
2
3
|
import { renderTreeItems } from "../../common/render-tree";
|
|
4
|
+
import { updateTreeModel } from "../../common/update-tree-model";
|
|
5
|
+
/* CUSTOM IMPORTS */
|
|
3
6
|
export class GxIdeUiTest {
|
|
4
7
|
constructor() {
|
|
8
|
+
// 8.PUBLIC METHODS API //
|
|
9
|
+
// 9.LOCAL METHODS //
|
|
5
10
|
/* Gxg-Tree Methods*/
|
|
6
11
|
this.closeTreeNodeHandler = () => {
|
|
7
12
|
this.tree.toggleItems(["number-1-1-2"], false);
|
|
@@ -27,9 +32,36 @@ export class GxIdeUiTest {
|
|
|
27
32
|
this.deleteNodeHandler = () => {
|
|
28
33
|
this.treeModel = [];
|
|
29
34
|
};
|
|
35
|
+
/* Update model test*/
|
|
36
|
+
// private showTree = () => {
|
|
37
|
+
// this.treeModel = [];
|
|
38
|
+
// };
|
|
39
|
+
// private updateTree = () => {
|
|
40
|
+
// this.treeModel = [];
|
|
41
|
+
// };
|
|
42
|
+
this.treeItemStateChangedHandler = (e) => {
|
|
43
|
+
// const event = e.detail.emittedBy;
|
|
44
|
+
const nodeData = e.detail.itemData;
|
|
45
|
+
const nodeId = e.detail.itemData.id;
|
|
46
|
+
if (nodeData.lazy) {
|
|
47
|
+
this.updateLazyCallback(nodeId).then(children => {
|
|
48
|
+
if (children === null || children === void 0 ? void 0 : children.length) {
|
|
49
|
+
const updatedTreeModel = updateTreeModel(this.treeModel, { id: nodeId, label: nodeData.label, items: children }, nodeId);
|
|
50
|
+
this.treeModel = updatedTreeModel;
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
};
|
|
30
55
|
this.treeModel = undefined;
|
|
56
|
+
this.lazyNode = undefined;
|
|
57
|
+
this.updateLazyCallback = undefined;
|
|
58
|
+
this.newNode = undefined;
|
|
59
|
+
this.testUpdateNode = false;
|
|
31
60
|
this.lazyLoadTreeItemsCallback = undefined;
|
|
32
61
|
}
|
|
62
|
+
// 5.EVENTS (EMIT) //
|
|
63
|
+
// 6.COMPONENT LIFECYCLE METHODS //
|
|
64
|
+
// 7.LISTENERS //
|
|
33
65
|
loadLazyChildrenHandler(e) {
|
|
34
66
|
const treeItemId = e.detail;
|
|
35
67
|
if (this.lazyLoadTreeItemsCallback) {
|
|
@@ -41,9 +73,17 @@ export class GxIdeUiTest {
|
|
|
41
73
|
}, 1000);
|
|
42
74
|
}
|
|
43
75
|
}
|
|
76
|
+
treeItemStateChanged(event) {
|
|
77
|
+
const updatedTreeModel = updateTreeModel(this.treeModel, event.detail, event.detail.id);
|
|
78
|
+
console.log("updatedTreeModel", updatedTreeModel);
|
|
79
|
+
}
|
|
80
|
+
// 10.RENDER() FUNCTION //
|
|
44
81
|
render() {
|
|
45
|
-
if (this.treeModel) {
|
|
46
|
-
return (h(Host, null, h("gxg-tree", {
|
|
82
|
+
if (!this.testUpdateNode && this.treeModel) {
|
|
83
|
+
return (h(Host, null, h("gxg-tree", { checked: true, checkbox: true, multiSelection: true, ref: (el) => (this.tree = el) }, renderTreeItems(this.treeModel)), ",", h("div", { class: "tree-buttons" }, h("gxg-button", { type: "outlined", onClick: this.closeTreeNodeHandler }, "Close 1-1-2"), h("gxg-button", { type: "outlined", onClick: this.openTreeNodeHandler }, "Open 1-1-2"), h("gxg-button", { type: "outlined", onClick: this.toggleTreeNodeHandler }, "Toggle 1-1-2"), h("gxg-button", { type: "outlined", onClick: this.getSelectedItemsHandler }, "Get Selected Items"), h("gxg-button", { type: "outlined", onClick: this.getCheckedItemsHandler }, "Get Checked Items"), h("gxg-button", { type: "outlined", onClick: this.deleteNodeHandler }, "Delete Tree"))));
|
|
84
|
+
}
|
|
85
|
+
else if (this.testUpdateNode) {
|
|
86
|
+
return (h(Host, null, h("gxg-tree", { checked: true, checkbox: true, multiSelection: true, ref: (el) => (this.tree = el), onTreeItemStateChanged: this.treeItemStateChangedHandler }, renderTreeItems(this.treeModel))));
|
|
47
87
|
}
|
|
48
88
|
else {
|
|
49
89
|
return h("slot", null);
|
|
@@ -83,6 +123,87 @@ export class GxIdeUiTest {
|
|
|
83
123
|
"text": "The model for a gxg-tree"
|
|
84
124
|
}
|
|
85
125
|
},
|
|
126
|
+
"lazyNode": {
|
|
127
|
+
"type": "unknown",
|
|
128
|
+
"mutable": false,
|
|
129
|
+
"complexType": {
|
|
130
|
+
"original": "GxgTreeItemData[]",
|
|
131
|
+
"resolved": "GxgTreeItemData[]",
|
|
132
|
+
"references": {
|
|
133
|
+
"GxgTreeItemData": {
|
|
134
|
+
"location": "import",
|
|
135
|
+
"path": "@genexus/gemini/dist/types/components/tree-item/gxg-tree-item"
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
"required": false,
|
|
140
|
+
"optional": false,
|
|
141
|
+
"docs": {
|
|
142
|
+
"tags": [],
|
|
143
|
+
"text": "A new lazy node"
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
"updateLazyCallback": {
|
|
147
|
+
"type": "unknown",
|
|
148
|
+
"mutable": false,
|
|
149
|
+
"complexType": {
|
|
150
|
+
"original": "(\n id: string\n ) => Promise<GxgTreeItemData[]>",
|
|
151
|
+
"resolved": "(id: string) => Promise<GxgTreeItemData[]>",
|
|
152
|
+
"references": {
|
|
153
|
+
"Promise": {
|
|
154
|
+
"location": "global"
|
|
155
|
+
},
|
|
156
|
+
"GxgTreeItemData": {
|
|
157
|
+
"location": "import",
|
|
158
|
+
"path": "@genexus/gemini/dist/types/components/tree-item/gxg-tree-item"
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
"required": false,
|
|
163
|
+
"optional": false,
|
|
164
|
+
"docs": {
|
|
165
|
+
"tags": [],
|
|
166
|
+
"text": "A new lazy node"
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
"newNode": {
|
|
170
|
+
"type": "unknown",
|
|
171
|
+
"mutable": true,
|
|
172
|
+
"complexType": {
|
|
173
|
+
"original": "GxgTreeItemData[]",
|
|
174
|
+
"resolved": "GxgTreeItemData[]",
|
|
175
|
+
"references": {
|
|
176
|
+
"GxgTreeItemData": {
|
|
177
|
+
"location": "import",
|
|
178
|
+
"path": "@genexus/gemini/dist/types/components/tree-item/gxg-tree-item"
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
},
|
|
182
|
+
"required": false,
|
|
183
|
+
"optional": false,
|
|
184
|
+
"docs": {
|
|
185
|
+
"tags": [],
|
|
186
|
+
"text": "The new tree node to update"
|
|
187
|
+
}
|
|
188
|
+
},
|
|
189
|
+
"testUpdateNode": {
|
|
190
|
+
"type": "boolean",
|
|
191
|
+
"mutable": false,
|
|
192
|
+
"complexType": {
|
|
193
|
+
"original": "false",
|
|
194
|
+
"resolved": "boolean",
|
|
195
|
+
"references": {}
|
|
196
|
+
},
|
|
197
|
+
"required": false,
|
|
198
|
+
"optional": false,
|
|
199
|
+
"docs": {
|
|
200
|
+
"tags": [],
|
|
201
|
+
"text": "Update tree model test"
|
|
202
|
+
},
|
|
203
|
+
"attribute": "test-update-node",
|
|
204
|
+
"reflect": false,
|
|
205
|
+
"defaultValue": "false"
|
|
206
|
+
},
|
|
86
207
|
"lazyLoadTreeItemsCallback": {
|
|
87
208
|
"type": "unknown",
|
|
88
209
|
"mutable": false,
|
|
@@ -115,6 +236,12 @@ export class GxIdeUiTest {
|
|
|
115
236
|
"target": undefined,
|
|
116
237
|
"capture": false,
|
|
117
238
|
"passive": false
|
|
239
|
+
}, {
|
|
240
|
+
"name": "treeItemStateChanged",
|
|
241
|
+
"method": "treeItemStateChanged",
|
|
242
|
+
"target": undefined,
|
|
243
|
+
"capture": false,
|
|
244
|
+
"passive": false
|
|
118
245
|
}];
|
|
119
246
|
}
|
|
120
247
|
}
|
|
@@ -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",
|