@genexus/genexus-ide-ui 0.0.17 → 0.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  2. package/dist/cjs/gx-ide-references.cjs.entry.js +115 -90
  3. package/dist/cjs/gx-ide-test.cjs.entry.js +40 -3
  4. package/dist/cjs/{gxg-form-radio-group.cjs.entry.js → gx-ide-top-bar_2.cjs.entry.js} +31 -0
  5. package/dist/cjs/gxg-tree_2.cjs.entry.js +40 -59
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/cjs/update-tree-model-445c63a8.js +53 -0
  8. package/dist/collection/common/render-tree.js +1 -1
  9. package/dist/collection/common/update-tree-model.js +22 -0
  10. package/dist/collection/components/_test/test.js +129 -2
  11. package/dist/collection/components/references/references.js +119 -113
  12. package/dist/collection/pages/assets/common.js +105 -95
  13. package/dist/components/gx-ide-references.js +131 -111
  14. package/dist/components/gx-ide-test.js +45 -4
  15. package/dist/components/gxg-tree-item2.js +21 -46
  16. package/dist/components/gxg-tree2.js +20 -14
  17. package/dist/components/update-tree-model.js +50 -0
  18. package/dist/esm/genexus-ide-ui.js +1 -1
  19. package/dist/esm/gx-ide-references.entry.js +115 -90
  20. package/dist/esm/gx-ide-test.entry.js +40 -3
  21. package/dist/esm/{gxg-form-radio-group.entry.js → gx-ide-top-bar_2.entry.js} +32 -2
  22. package/dist/esm/gxg-tree_2.entry.js +40 -59
  23. package/dist/esm/loader.js +1 -1
  24. package/dist/esm/update-tree-model-80419058.js +50 -0
  25. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  26. package/dist/genexus-ide-ui/p-254f9ce7.entry.js +1 -0
  27. package/dist/genexus-ide-ui/p-519919e4.entry.js +1 -0
  28. package/dist/genexus-ide-ui/p-67cf60f5.js +1 -0
  29. package/dist/genexus-ide-ui/p-7007965c.entry.js +1 -0
  30. package/dist/genexus-ide-ui/p-78a90113.entry.js +1 -0
  31. package/dist/types/common/update-tree-model.d.ts +2 -0
  32. package/dist/types/components/_test/test.d.ts +19 -1
  33. package/dist/types/components/references/references.d.ts +28 -24
  34. package/dist/types/components.d.ts +37 -9
  35. package/package.json +3 -3
  36. package/dist/cjs/gx-ide-top-bar.cjs.entry.js +0 -37
  37. package/dist/cjs/render-tree-25d5b8a1.js +0 -29
  38. package/dist/components/render-tree.js +0 -27
  39. package/dist/esm/gx-ide-top-bar.entry.js +0 -33
  40. package/dist/esm/render-tree-fc8636a3.js +0 -27
  41. package/dist/genexus-ide-ui/p-48482e25.entry.js +0 -1
  42. package/dist/genexus-ide-ui/p-a5fee36d.entry.js +0 -1
  43. package/dist/genexus-ide-ui/p-abee8c7b.js +0 -1
  44. package/dist/genexus-ide-ui/p-be9406e7.entry.js +0 -1
  45. package/dist/genexus-ide-ui/p-c5c6e102.entry.js +0 -1
  46. 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
- toggleDarkBtn.addEventListener("click", function () {
12
- html.classList.toggle("dark");
13
- });
11
+ if (toggleDarkBtn) {
12
+ toggleDarkBtn.addEventListener("click", function () {
13
+ html.classList.toggle("dark");
14
+ });
15
+ }
14
16
 
15
17
  /* Toggle Dir */
16
- toggleDirBtn.addEventListener("click", function () {
17
- const dir = html.getAttribute("dir");
18
- if (dir === "ltr") {
19
- html.setAttribute("dir", "rtl");
20
- } else {
21
- html.setAttribute("dir", "ltr");
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
- showPartsBtn.addEventListener("click", function () {
27
- /* Parts that are discoverable (for example gxg-combo-item, is not visible until you open the gxg-combo)*/
28
- const hiddenGxgComponents = [
29
- "GXG-COMBO-BOX-ITEM",
30
- "GXG-CONTEXTUAL-MENU",
31
- "GXG-CONTEXTUAL-MENU-ITEM",
32
- "GXG-FILTER-ITEM",
33
- "GXG-LIST-BOX-ITEM",
34
- "GXG-MODAL",
35
- "GXG-TREE-ITEM"
36
- ];
37
- if (gxConsole) {
38
- const parts = window.getElementSelectorParts(gxIdeComponent);
39
- if (parts.length) {
40
- /* Clear*/
41
- gxConsole.innerHTML = "";
42
- let currentSelectedPart = undefined;
43
- parts.forEach(part => {
44
- /* part div*/
45
- const partSelector = document.createElement("div");
46
- partSelector.classList.add("part-selector");
47
- partSelector.innerText = part;
48
- partSelector.setAttribute("tabindex", "1");
49
- /* part span (circle for indicating additional information)*/
50
- const partCircle = document.createElement("span");
51
- partCircle.classList.add("circle");
52
- partSelector.prepend(partCircle);
53
- /* get part*/
54
- currentSelectedPart = window.querySelectorPart(`${part}`);
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
- currentSelectedPart.style.outline = `3px solid var(--color-warning-dark)`;
72
- currentSelectedPart.style.outlineOffset = "-2px";
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
- /* append*/
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.addEventListener("click", () => {
158
- containerComponent.classList.remove("desktop");
159
- containerComponent.classList.add("mobile");
160
- });
161
- responsiveTabletBtn.addEventListener("click", () => {
162
- containerComponent.classList.remove("desktop");
163
- containerComponent.classList.remove("mobile");
164
- });
165
- responsiveDesktopBtn.addEventListener("click", () => {
166
- containerComponent.classList.remove("mobile");
167
- containerComponent.classList.add("desktop");
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.addEventListener("componentDidRenderEvent", e => {
173
- console.log(`${e.detail} did render`);
174
- setTimeout(() => {
175
- // Just to be completely sure.
176
- containerComponent.style.height = `${containerComponent.offsetHeight}px`;
177
- }, 250);
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 './render-tree.js';
4
- import { d as defineCustomElement$j } from './icon.js';
5
- import { d as defineCustomElement$i } from './ch-suggest2.js';
6
- import { d as defineCustomElement$h } from './ch-suggest-list2.js';
7
- import { d as defineCustomElement$g } from './ch-suggest-list-item2.js';
8
- import { d as defineCustomElement$f } from './ch-window2.js';
9
- import { d as defineCustomElement$e } from './ch-window-close2.js';
10
- import { d as defineCustomElement$d } from './container.js';
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
- * @description It attaches on the ch-suggest, the "itemSelected" event triggered by the ch-suggest-list-item. This helps set the new 'selectedObject'.
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
- * @description It attaches several events on the 'referencedByEl' element, which is a tree.
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
- * @description handler that gets fired when the use clicks on the ch-suggest button (...)
168
+ * handler that gets fired when the use clicks on the ch-suggest button (...)
224
169
  */
225
170
  this.openSelectorDialogCallbackHandler = async () => {
226
- this.selectedObject = await this.openSelectorDialogCallback();
171
+ this.openSelectorDialogCallback()
172
+ .then(result => {
173
+ this.selectedObject = result;
174
+ })
175
+ .catch(() => {
176
+ /* to do */
177
+ });
227
178
  };
228
179
  /**
229
- * @description It evaluates if loadReferencesCallback should be called, depending wether there is or not an actual selected object.
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
- var _a;
233
- const selectedObjectId = (_a = this.selectedObject) === null || _a === void 0 ? void 0 : _a.id;
234
- selectedObjectId && this.loadReferencesHandler(selectedObjectId);
183
+ if (this.selectedObject) {
184
+ this.selectedObjectHandler(this.selectedObject);
185
+ }
235
186
  };
236
187
  /**
237
- * @description This method invokes 'loadReferencesCallback' callback for 'Is Referenced By' and 'Has References To' panels.
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
- this.loadReferencesCallback(id, false)
243
- .then(result => {
244
- this.referencedBy = result;
245
- })
246
- .catch(() => {
247
- /* To do*/
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
- /* References To*/
251
- if (this.loadReferencesCallback) {
252
- this.loadReferencesCallback(id, true)
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
- this.referencesTo = result;
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
- * @description It hides/show the bar (The header bottom section).
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
- this.loadReferencesHandler(newSelectedObject.id);
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" }, !this.hideTopBar ? (h("gx-ide-top-bar", { topBarTitle: this._componentLocale.componentName })) : null, 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: {
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", { ref: el => (this.referencedByEl = el), class: { "gxi-hidden": !((_a = this.referencedBy) === null || _a === void 0 ? void 0 : _a.length) }, checkbox: false, part: "referenced-by-tree" }, renderTreeItems(convertReferenceDataToTreeData(this.referencedBy))), !((_b = this.referencedBy) === 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.referencedBy) === null || _c === void 0 ? void 0 : _c.length) === 0
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: false, 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", { ref: el => (this.referencesToEl = el), class: { "gxi-hidden": !((_d = this.referencesTo) === null || _d === void 0 ? void 0 : _d.length) }, checkbox: false, part: "references-to-tree" }, renderTreeItems(convertReferenceDataToTreeData(this.referencesTo))), !((_e = this.referencesTo) === 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.referencesTo) === null || _f === void 0 ? void 0 : _f.length) === 0
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", "gx-ide-top-bar", "gxg-button", "gxg-form-checkbox", "gxg-icon", "gxg-label", "gxg-suggest", "gxg-text", "gxg-title", "gxg-tooltip", "gxg-tree", "gxg-tree-item"];
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-list":
367
+ case "ch-suggest":
348
368
  if (!customElements.get(tagName)) {
349
369
  defineCustomElement$h();
350
370
  }
351
371
  break;
352
- case "ch-suggest-list-item":
372
+ case "ch-suggest-list":
353
373
  if (!customElements.get(tagName)) {
354
374
  defineCustomElement$g();
355
375
  }
356
376
  break;
357
- case "ch-window":
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-close":
382
+ case "ch-window":
363
383
  if (!customElements.get(tagName)) {
364
384
  defineCustomElement$e();
365
385
  }
366
386
  break;
367
- case "gx-ide-container":
387
+ case "ch-window-close":
368
388
  if (!customElements.get(tagName)) {
369
389
  defineCustomElement$d();
370
390
  }
371
391
  break;
372
- case "gx-ide-top-bar":
392
+ case "gx-ide-container":
373
393
  if (!customElements.get(tagName)) {
374
394
  defineCustomElement$c();
375
395
  }