@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
|
@@ -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
|
}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { h, proxyCustomElement, HTMLElement, createEvent, Host } from '@stencil/core/internal/client';
|
|
2
2
|
import { L as Locale } from './locale.js';
|
|
3
|
-
import { r as renderTreeItems } from './
|
|
4
|
-
import { d as defineCustomElement$
|
|
5
|
-
import { d as defineCustomElement$
|
|
6
|
-
import { d as defineCustomElement$
|
|
7
|
-
import { d as defineCustomElement$
|
|
8
|
-
import { d as defineCustomElement$
|
|
9
|
-
import { d as defineCustomElement$
|
|
10
|
-
import { d as defineCustomElement$
|
|
11
|
-
import { d as defineCustomElement$c } from './top-bar.js';
|
|
3
|
+
import { u as updateTreeModel, r as renderTreeItems } from './update-tree-model.js';
|
|
4
|
+
import { d as defineCustomElement$i } from './icon.js';
|
|
5
|
+
import { d as defineCustomElement$h } from './ch-suggest2.js';
|
|
6
|
+
import { d as defineCustomElement$g } from './ch-suggest-list2.js';
|
|
7
|
+
import { d as defineCustomElement$f } from './ch-suggest-list-item2.js';
|
|
8
|
+
import { d as defineCustomElement$e } from './ch-window2.js';
|
|
9
|
+
import { d as defineCustomElement$d } from './ch-window-close2.js';
|
|
10
|
+
import { d as defineCustomElement$c } from './container.js';
|
|
12
11
|
import { d as defineCustomElement$b } from './button.js';
|
|
13
12
|
import { d as defineCustomElement$a } from './form-checkbox.js';
|
|
14
13
|
import { d as defineCustomElement$9 } from './icon2.js';
|
|
@@ -135,7 +134,7 @@ const GxIdeReferences$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLEle
|
|
|
135
134
|
// 8.PUBLIC METHODS API //
|
|
136
135
|
// 9.LOCAL METHODS //
|
|
137
136
|
/**
|
|
138
|
-
*
|
|
137
|
+
* It attaches on the ch-suggest, the "itemSelected" event triggered by the ch-suggest-list-item. This helps set the new 'selectedObject'.
|
|
139
138
|
*/
|
|
140
139
|
this.attachSelectObjectListener = () => {
|
|
141
140
|
this.selectObjectSuggestEl.addEventListener("itemSelected", (e) => {
|
|
@@ -146,61 +145,7 @@ const GxIdeReferences$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLEle
|
|
|
146
145
|
});
|
|
147
146
|
};
|
|
148
147
|
/**
|
|
149
|
-
*
|
|
150
|
-
*/
|
|
151
|
-
this.attachReferencedByListeners = () => {
|
|
152
|
-
/* '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. */
|
|
153
|
-
this.referencedByEl.addEventListener("toggleIconClicked", async (e) => {
|
|
154
|
-
if (e.detail.lazy && e.detail.id) {
|
|
155
|
-
this.loadReferencesCallback(e.detail.id, false)
|
|
156
|
-
.then(result => {
|
|
157
|
-
this.referencedBy = result;
|
|
158
|
-
})
|
|
159
|
-
.catch(() => {
|
|
160
|
-
// to do
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
});
|
|
164
|
-
/* 'selectionChanged' Event: Fired when a new tree item was selected.*/
|
|
165
|
-
this.referencedByEl.addEventListener("selectionChanged", (e) => {
|
|
166
|
-
this.selectReferenceCallback(e.detail.id);
|
|
167
|
-
/* Returns void Promise*/
|
|
168
|
-
});
|
|
169
|
-
/* 'doubleClicked' Event: Fired when a tree item was double-clicked.*/
|
|
170
|
-
this.referencedByEl.addEventListener("doubleClicked", (e) => {
|
|
171
|
-
this.openObjectCallback(e.detail.id);
|
|
172
|
-
/* Returns void Promise*/
|
|
173
|
-
});
|
|
174
|
-
};
|
|
175
|
-
/**
|
|
176
|
-
* @description It attaches several events on the 'referencesToEl' element, which is a tree.
|
|
177
|
-
*/
|
|
178
|
-
this.attachReferencesToListeners = () => {
|
|
179
|
-
/* 'toggleIconClicked' Event: (Read description on 'attachReferencedByListeners' as it does the same)*/
|
|
180
|
-
this.referencesToEl.addEventListener("toggleIconClicked", async (e) => {
|
|
181
|
-
if (e.detail.lazy && e.detail.id) {
|
|
182
|
-
this.loadReferencesCallback(e.detail.id, true)
|
|
183
|
-
.then(result => {
|
|
184
|
-
this.referencesTo = result;
|
|
185
|
-
})
|
|
186
|
-
.catch(() => {
|
|
187
|
-
// to do
|
|
188
|
-
});
|
|
189
|
-
}
|
|
190
|
-
});
|
|
191
|
-
/* 'selectionChanged' Event: Fired when a new tree item was selected.*/
|
|
192
|
-
this.referencesToEl.addEventListener("selectionChanged", (e) => {
|
|
193
|
-
this.selectReferenceCallback(e.detail.id);
|
|
194
|
-
/* Returns void Promise*/
|
|
195
|
-
});
|
|
196
|
-
/* 'doubleClicked' Event: Fired when a tree item was double-clicked.*/
|
|
197
|
-
this.referencesToEl.addEventListener("doubleClicked", (e) => {
|
|
198
|
-
this.openObjectCallback(e.detail.id);
|
|
199
|
-
/* Returns void Promise*/
|
|
200
|
-
});
|
|
201
|
-
};
|
|
202
|
-
/**
|
|
203
|
-
* @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.
|
|
148
|
+
* 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.
|
|
204
149
|
*/
|
|
205
150
|
this.selectObjectValueChangedHandler = async (e) => {
|
|
206
151
|
const value = e.detail;
|
|
@@ -220,55 +165,131 @@ const GxIdeReferences$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLEle
|
|
|
220
165
|
/* Returns an empty Promise*/
|
|
221
166
|
};
|
|
222
167
|
/**
|
|
223
|
-
*
|
|
168
|
+
* handler that gets fired when the use clicks on the ch-suggest button (...)
|
|
224
169
|
*/
|
|
225
170
|
this.openSelectorDialogCallbackHandler = async () => {
|
|
226
|
-
this.
|
|
171
|
+
this.openSelectorDialogCallback()
|
|
172
|
+
.then(result => {
|
|
173
|
+
this.selectedObject = result;
|
|
174
|
+
})
|
|
175
|
+
.catch(() => {
|
|
176
|
+
/* to do */
|
|
177
|
+
});
|
|
227
178
|
};
|
|
228
179
|
/**
|
|
229
|
-
*
|
|
180
|
+
* It evaluates if loadReferencesCallback should be called, depending wether there is or not an actual selected object.
|
|
230
181
|
*/
|
|
231
182
|
this.evaluateInitialReferenceData = () => {
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
183
|
+
if (this.selectedObject) {
|
|
184
|
+
this.selectedObjectHandler(this.selectedObject);
|
|
185
|
+
}
|
|
235
186
|
};
|
|
236
187
|
/**
|
|
237
|
-
*
|
|
188
|
+
* 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"
|
|
238
189
|
*/
|
|
239
|
-
this.loadReferencesHandler = async (id) => {
|
|
240
|
-
/* Referenced By*/
|
|
190
|
+
this.loadReferencesHandler = async (id, to = false) => {
|
|
241
191
|
if (this.loadReferencesCallback) {
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
this.
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
192
|
+
/* is referenced by*/
|
|
193
|
+
if (!to) {
|
|
194
|
+
this.loadReferencesCallback(id, false)
|
|
195
|
+
.then(result => {
|
|
196
|
+
this.referencedByTreeData = convertReferenceDataToTreeData(result);
|
|
197
|
+
})
|
|
198
|
+
.catch(() => {
|
|
199
|
+
/* To do*/
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
/* is referenced by*/
|
|
203
|
+
if (to) {
|
|
204
|
+
this.loadReferencesCallback(id, true)
|
|
205
|
+
.then(result => {
|
|
206
|
+
this.referencesToTreeData = convertReferenceDataToTreeData(result);
|
|
207
|
+
})
|
|
208
|
+
.catch(() => {
|
|
209
|
+
/* To do*/
|
|
210
|
+
});
|
|
211
|
+
}
|
|
249
212
|
}
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
213
|
+
};
|
|
214
|
+
/**
|
|
215
|
+
* It hides/show the bar (The header bottom section).
|
|
216
|
+
*/
|
|
217
|
+
this.hideBarButtonClickedHandler = () => {
|
|
218
|
+
this.barHidden = !this.barHidden;
|
|
219
|
+
};
|
|
220
|
+
/**
|
|
221
|
+
* Simple helper function to get 'this.referencedByTreeData' or 'this.referencesToTreeData'
|
|
222
|
+
*/
|
|
223
|
+
this.getRef = (to = false) => {
|
|
224
|
+
if (!to) {
|
|
225
|
+
/* referenced by*/
|
|
226
|
+
return this.referencedByTreeData;
|
|
227
|
+
}
|
|
228
|
+
else {
|
|
229
|
+
/* references to*/
|
|
230
|
+
return this.referencesToTreeData;
|
|
231
|
+
}
|
|
232
|
+
};
|
|
233
|
+
/**
|
|
234
|
+
* Simple helper function to update 'this.referencedByTreeData' or 'this.referencesToTreeData'
|
|
235
|
+
*/
|
|
236
|
+
this.updateRef = (to = false, updatedData) => {
|
|
237
|
+
if (!to) {
|
|
238
|
+
/* referenced by*/
|
|
239
|
+
this.referencedByTreeData = updatedData;
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
/* references to*/
|
|
243
|
+
this.referencesToTreeData = updatedData;
|
|
244
|
+
}
|
|
245
|
+
};
|
|
246
|
+
/**
|
|
247
|
+
* Handles changes on any of the references (by or to). Used to:
|
|
248
|
+
* 1) Keep the models updated.
|
|
249
|
+
* 2) call the openObjectCallback.
|
|
250
|
+
* 3) call the loadReferencesCallback if a lazy node was toggled.
|
|
251
|
+
*/
|
|
252
|
+
this.referencesPanelStateChangedHandler = (to = false) => (e) => {
|
|
253
|
+
const event = e.detail.emittedBy;
|
|
254
|
+
const nodeData = e.detail.itemData;
|
|
255
|
+
const nodeId = e.detail.itemData.id;
|
|
256
|
+
const nodeLabel = e.detail.itemData.label;
|
|
257
|
+
/* tree item was selected*/
|
|
258
|
+
if (event === "selectionChanged") {
|
|
259
|
+
this.selectReferenceCallback(nodeId);
|
|
260
|
+
/* Returns void Promise*/
|
|
261
|
+
}
|
|
262
|
+
/* tree item was double-clicked.*/
|
|
263
|
+
if (event === "doubleClicked") {
|
|
264
|
+
this.openObjectCallback(nodeId);
|
|
265
|
+
}
|
|
266
|
+
let updatedTreeModel = [];
|
|
267
|
+
const lazy = nodeData.lazy;
|
|
268
|
+
if (lazy) {
|
|
269
|
+
// loadReferencesCallback
|
|
270
|
+
let children = [];
|
|
271
|
+
this.loadReferencesCallback(nodeId, to)
|
|
253
272
|
.then(result => {
|
|
254
|
-
|
|
273
|
+
children = convertReferenceDataToTreeData(result);
|
|
274
|
+
// Then update model
|
|
275
|
+
updatedTreeModel = updateTreeModel(this.getRef(to), { id: nodeId, label: nodeLabel, items: children }, nodeId);
|
|
276
|
+
this.updateRef(to, updatedTreeModel);
|
|
255
277
|
})
|
|
256
278
|
.catch(() => {
|
|
257
279
|
/* To do*/
|
|
258
280
|
});
|
|
259
281
|
}
|
|
282
|
+
else {
|
|
283
|
+
updatedTreeModel = updateTreeModel(this.getRef(to), nodeData, nodeId);
|
|
284
|
+
this.updateRef(to, updatedTreeModel);
|
|
285
|
+
}
|
|
260
286
|
};
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
*/
|
|
264
|
-
this.hideBarButtonClickedHandler = () => {
|
|
265
|
-
this.barHidden = !this.barHidden;
|
|
266
|
-
};
|
|
287
|
+
this.referencedByTreeData = undefined;
|
|
288
|
+
this.referencesToTreeData = undefined;
|
|
267
289
|
this.barHidden = false;
|
|
268
290
|
this.objectsSuggestions = undefined;
|
|
269
291
|
this.referencedBy = undefined;
|
|
270
292
|
this.referencesTo = undefined;
|
|
271
|
-
this.hideTopBar = false;
|
|
272
293
|
this.selectedObject = undefined;
|
|
273
294
|
this.selectorSourceCallback = undefined;
|
|
274
295
|
this.loadReferencesCallback = undefined;
|
|
@@ -277,7 +298,12 @@ const GxIdeReferences$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLEle
|
|
|
277
298
|
this.selectReferenceCallback = undefined;
|
|
278
299
|
}
|
|
279
300
|
selectedObjectHandler(newSelectedObject) {
|
|
280
|
-
|
|
301
|
+
if (newSelectedObject.id) {
|
|
302
|
+
/* update "is referenced by*/
|
|
303
|
+
this.loadReferencesHandler(newSelectedObject.id, false);
|
|
304
|
+
/* update "has references to*/
|
|
305
|
+
this.loadReferencesHandler(newSelectedObject.id, true);
|
|
306
|
+
}
|
|
281
307
|
}
|
|
282
308
|
// 6.COMPONENT LIFECYCLE EVENTS //
|
|
283
309
|
async componentWillLoad() {
|
|
@@ -286,8 +312,6 @@ const GxIdeReferences$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLEle
|
|
|
286
312
|
}
|
|
287
313
|
componentDidLoad() {
|
|
288
314
|
this.attachSelectObjectListener();
|
|
289
|
-
this.attachReferencedByListeners();
|
|
290
|
-
this.attachReferencesToListeners();
|
|
291
315
|
}
|
|
292
316
|
componentDidRender() {
|
|
293
317
|
this.componentDidRenderEvent.emit(this._componentLocale.componentName);
|
|
@@ -295,12 +319,12 @@ const GxIdeReferences$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLEle
|
|
|
295
319
|
// 10.RENDER() FUNCTION //
|
|
296
320
|
render() {
|
|
297
321
|
var _a, _b, _c, _d, _e, _f;
|
|
298
|
-
return (h(Host, { class: "gx-ide-component" },
|
|
322
|
+
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: {
|
|
299
323
|
"header__bottom": true,
|
|
300
324
|
"header__bottom--hidden": this.barHidden
|
|
301
|
-
} }, 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", {
|
|
325
|
+
} }, 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
|
|
302
326
|
? this._componentLocale.main.isReferencedByEmpty
|
|
303
|
-
: this._componentLocale.main.isReferencedByError))), h("gx-ide-container", { containerTitle: this._componentLocale.main.hasReferencesTo, justifyContent: "center", part: "references-to-container" }, h("gxg-tree", {
|
|
327
|
+
: 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
|
|
304
328
|
? this._componentLocale.main.hasReferencesEmpty
|
|
305
329
|
: this._componentLocale.main.hasReferencesToError)))))));
|
|
306
330
|
}
|
|
@@ -311,13 +335,14 @@ const GxIdeReferences$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLEle
|
|
|
311
335
|
}; }
|
|
312
336
|
static get style() { return referencesCss; }
|
|
313
337
|
}, [1, "gx-ide-references", {
|
|
314
|
-
"hideTopBar": [4, "hide-top-bar"],
|
|
315
338
|
"selectedObject": [1040],
|
|
316
339
|
"selectorSourceCallback": [16],
|
|
317
340
|
"loadReferencesCallback": [16],
|
|
318
341
|
"openObjectCallback": [16],
|
|
319
342
|
"openSelectorDialogCallback": [16],
|
|
320
343
|
"selectReferenceCallback": [16],
|
|
344
|
+
"referencedByTreeData": [32],
|
|
345
|
+
"referencesToTreeData": [32],
|
|
321
346
|
"barHidden": [32],
|
|
322
347
|
"objectsSuggestions": [32],
|
|
323
348
|
"referencedBy": [32],
|
|
@@ -327,7 +352,7 @@ function defineCustomElement$1() {
|
|
|
327
352
|
if (typeof customElements === "undefined") {
|
|
328
353
|
return;
|
|
329
354
|
}
|
|
330
|
-
const components = ["gx-ide-references", "ch-icon", "ch-suggest", "ch-suggest-list", "ch-suggest-list-item", "ch-window", "ch-window-close", "gx-ide-container", "
|
|
355
|
+
const components = ["gx-ide-references", "ch-icon", "ch-suggest", "ch-suggest-list", "ch-suggest-list-item", "ch-window", "ch-window-close", "gx-ide-container", "gxg-button", "gxg-form-checkbox", "gxg-icon", "gxg-label", "gxg-suggest", "gxg-text", "gxg-title", "gxg-tooltip", "gxg-tree", "gxg-tree-item"];
|
|
331
356
|
components.forEach(tagName => { switch (tagName) {
|
|
332
357
|
case "gx-ide-references":
|
|
333
358
|
if (!customElements.get(tagName)) {
|
|
@@ -335,41 +360,36 @@ function defineCustomElement$1() {
|
|
|
335
360
|
}
|
|
336
361
|
break;
|
|
337
362
|
case "ch-icon":
|
|
338
|
-
if (!customElements.get(tagName)) {
|
|
339
|
-
defineCustomElement$j();
|
|
340
|
-
}
|
|
341
|
-
break;
|
|
342
|
-
case "ch-suggest":
|
|
343
363
|
if (!customElements.get(tagName)) {
|
|
344
364
|
defineCustomElement$i();
|
|
345
365
|
}
|
|
346
366
|
break;
|
|
347
|
-
case "ch-suggest
|
|
367
|
+
case "ch-suggest":
|
|
348
368
|
if (!customElements.get(tagName)) {
|
|
349
369
|
defineCustomElement$h();
|
|
350
370
|
}
|
|
351
371
|
break;
|
|
352
|
-
case "ch-suggest-list
|
|
372
|
+
case "ch-suggest-list":
|
|
353
373
|
if (!customElements.get(tagName)) {
|
|
354
374
|
defineCustomElement$g();
|
|
355
375
|
}
|
|
356
376
|
break;
|
|
357
|
-
case "ch-
|
|
377
|
+
case "ch-suggest-list-item":
|
|
358
378
|
if (!customElements.get(tagName)) {
|
|
359
379
|
defineCustomElement$f();
|
|
360
380
|
}
|
|
361
381
|
break;
|
|
362
|
-
case "ch-window
|
|
382
|
+
case "ch-window":
|
|
363
383
|
if (!customElements.get(tagName)) {
|
|
364
384
|
defineCustomElement$e();
|
|
365
385
|
}
|
|
366
386
|
break;
|
|
367
|
-
case "
|
|
387
|
+
case "ch-window-close":
|
|
368
388
|
if (!customElements.get(tagName)) {
|
|
369
389
|
defineCustomElement$d();
|
|
370
390
|
}
|
|
371
391
|
break;
|
|
372
|
-
case "gx-ide-
|
|
392
|
+
case "gx-ide-container":
|
|
373
393
|
if (!customElements.get(tagName)) {
|
|
374
394
|
defineCustomElement$c();
|
|
375
395
|
}
|