@genexus/genexus-ide-ui 0.0.57 → 0.0.58

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 (73) hide show
  1. package/dist/cjs/{ch-checkbox_4.cjs.entry.js → ch-checkbox_3.cjs.entry.js} +54 -43
  2. package/dist/cjs/ch-suggest_4.cjs.entry.js +2 -2
  3. package/dist/cjs/ch-test-suggest.cjs.entry.js +84 -0
  4. package/dist/cjs/ch-test-tree-x.cjs.entry.js +31 -16
  5. package/dist/cjs/ch-tooltip.cjs.entry.js +85 -0
  6. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  7. package/dist/cjs/gx-ide-references.cjs.entry.js +76 -116
  8. package/dist/cjs/gx-ide-test.cjs.entry.js +51 -5
  9. package/dist/cjs/gxg-label_2.cjs.entry.js +15 -2
  10. package/dist/cjs/gxg-tree-view.cjs.entry.js +36 -14
  11. package/dist/cjs/loader.cjs.js +1 -1
  12. package/dist/collection/collection-manifest.json +2 -1
  13. package/dist/collection/common/helpers.js +3 -0
  14. package/dist/collection/components/references/helpers.js +16 -19
  15. package/dist/collection/components/references/references.css +8 -0
  16. package/dist/collection/components/references/references.js +60 -98
  17. package/dist/components/ch-suggest2.js +2 -2
  18. package/dist/components/ch-test-suggest.js +119 -0
  19. package/dist/components/ch-test-tree-x.js +38 -28
  20. package/dist/components/ch-tooltip.js +115 -0
  21. package/dist/components/gx-ide-references.js +122 -150
  22. package/dist/components/gx-ide-test.js +48 -2
  23. package/dist/components/gxg-tree-view.js +1 -434
  24. package/dist/components/index.js +2 -1
  25. package/dist/components/tooltip.js +17 -3
  26. package/dist/components/tree-view.js +453 -0
  27. package/dist/components/tree-x-list-item.js +35 -23
  28. package/dist/components/tree-x.js +21 -7
  29. package/dist/esm/{ch-checkbox_4.entry.js → ch-checkbox_3.entry.js} +55 -43
  30. package/dist/esm/ch-suggest_4.entry.js +2 -2
  31. package/dist/esm/ch-test-suggest.entry.js +80 -0
  32. package/dist/esm/ch-test-tree-x.entry.js +32 -17
  33. package/dist/esm/ch-tooltip.entry.js +81 -0
  34. package/dist/esm/genexus-ide-ui.js +1 -1
  35. package/dist/esm/gx-ide-references.entry.js +76 -116
  36. package/dist/esm/gx-ide-test.entry.js +48 -2
  37. package/dist/esm/gxg-label_2.entry.js +15 -2
  38. package/dist/esm/gxg-tree-view.entry.js +37 -15
  39. package/dist/esm/loader.js +1 -1
  40. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  41. package/dist/genexus-ide-ui/p-109209dc.entry.js +1 -0
  42. package/dist/genexus-ide-ui/p-123b8351.entry.js +1 -0
  43. package/dist/genexus-ide-ui/p-71c6da54.entry.js +1 -0
  44. package/dist/genexus-ide-ui/p-86b98a99.entry.js +1 -0
  45. package/dist/genexus-ide-ui/p-cd00ba19.entry.js +1 -0
  46. package/dist/genexus-ide-ui/p-ce9fef1a.entry.js +1 -0
  47. package/dist/genexus-ide-ui/p-d47ed4e3.entry.js +1 -0
  48. package/dist/genexus-ide-ui/p-d7b452ef.entry.js +1 -0
  49. package/dist/genexus-ide-ui/p-f62d9b6d.entry.js +1 -0
  50. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/test/test-suggest/test-suggest.css +114 -0
  51. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tooltip/tooltip.css +120 -0
  52. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/{tree-x → tree-view/tree-x}/tree-x.css +2 -3
  53. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/{tree-x-list-item → tree-view/tree-x-list-item}/tree-x-list-item.css +3 -6
  54. package/dist/node_modules/@genexus/gemini/dist/collection/components/tooltip/tooltip.css +11 -0
  55. package/dist/node_modules/@genexus/gemini/dist/collection/components/tree-view/tree-view.css +58 -12
  56. package/dist/types/common/helpers.d.ts +1 -0
  57. package/dist/types/components/references/helpers.d.ts +3 -3
  58. package/dist/types/components/references/references.d.ts +7 -19
  59. package/package.json +3 -3
  60. package/dist/cjs/update-tree-model-8b154db1.js +0 -53
  61. package/dist/components/ch-tree-x-list.js +0 -6
  62. package/dist/components/tree-x-list.js +0 -31
  63. package/dist/components/update-tree-model.js +0 -50
  64. package/dist/esm/update-tree-model-6c612f05.js +0 -50
  65. package/dist/genexus-ide-ui/p-1f3a81e3.entry.js +0 -1
  66. package/dist/genexus-ide-ui/p-46d393f5.entry.js +0 -1
  67. package/dist/genexus-ide-ui/p-5669baf5.entry.js +0 -1
  68. package/dist/genexus-ide-ui/p-60b2bd2f.entry.js +0 -1
  69. package/dist/genexus-ide-ui/p-71ecc7fd.js +0 -1
  70. package/dist/genexus-ide-ui/p-c7425416.entry.js +0 -1
  71. package/dist/genexus-ide-ui/p-dd2e0590.entry.js +0 -1
  72. package/dist/genexus-ide-ui/p-ed5cf480.entry.js +0 -1
  73. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tree-x-list/tree-x-list.css +0 -6
@@ -0,0 +1,115 @@
1
+ import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
+ import { f as focusComposedPath } from './helpers.js';
3
+ import { d as defineCustomElement$3 } from './ch-window2.js';
4
+ import { d as defineCustomElement$2 } from './ch-window-close2.js';
5
+
6
+ const tooltipCss = "*,::after,::before{box-sizing:border-box}ch-tooltip{--ch-tooltip-separation:12px;--ch-tooltip-separation-x:var(--ch-tooltip-separation);--ch-tooltip-separation-y:var(--ch-tooltip-separation);--ch-tooltip-arrow-size:10px;--ch-tooltip-based:calc( 1px - var(--ch-tooltip-arrow-size));--ch-tooltip-centered:calc( 50% - var(--ch-tooltip-arrow-size) / 2);--ch-tooltip-75:calc( 75% - var(--ch-tooltip-arrow-size) / 2);--ch-tooltip-25:calc( 25% - var(--ch-tooltip-arrow-size) / 2);display:flex;position:relative;width:100%;height:100%}ch-tooltip:not([hidden]){display:contents}ch-window[y-align=outside-start]{--ch-window-separation:var(--ch-tooltip-separation-y);--ch-window-separation-y:calc(var(--ch-tooltip-separation-y) * -1)}ch-window[y-align=outside-end]{--ch-window-separation:var(--ch-tooltip-separation-y);--ch-window-separation-y:var(--ch-tooltip-separation-y)}ch-window[x-align=outside-start]+:not(ch-window[y-align=outside-start],ch-window[y-align=outside-end]){--ch-window-separation:var(--ch-tooltip-separation-x);--ch-window-separation-x:calc(var(--ch-tooltip-separation-x) * -1)}ch-window[x-align=outside-end]+:not(ch-window[y-align=outside-start],ch-window[y-align=outside-end]){--ch-window-separation:var(--ch-tooltip-separation-x);--ch-window-separation-x:var(--ch-tooltip-separation-x)}ch-window[y-align=outside-start] .tooltip-content::after,ch-window[y-align=outside-start][x-align=outside-start] .tooltip-content::after,ch-window[y-align=outside-start][x-align=outside-end] .tooltip-content::after{clip-path:polygon(0 0, 50% 100%, 100% 0);inset-block-end:var(--ch-tooltip-based)}ch-window[y-align=outside-start][x-align=outside-start] .tooltip-content::after,ch-window[y-align=outside-start][x-align=outside-start][x-align=outside-start] .tooltip-content::after,ch-window[y-align=outside-start][x-align=outside-end][x-align=outside-start] .tooltip-content::after{inset-inline-end:0}ch-window[y-align=outside-start][x-align=outside-end] .tooltip-content::after,ch-window[y-align=outside-start][x-align=outside-start][x-align=outside-end] .tooltip-content::after,ch-window[y-align=outside-start][x-align=outside-end][x-align=outside-end] .tooltip-content::after{inset-inline-start:0}ch-window[y-align=outside-end] .tooltip-content::after,ch-window[y-align=outside-end][x-align=outside-end] .tooltip-content::after,ch-window[y-align=outside-end][x-align=outside-start] .tooltip-content::after{clip-path:polygon(50% 0, 100% 100%, 0 100%);inset-block-start:var(--ch-tooltip-based)}ch-window[y-align=outside-end][x-align=outside-start] .tooltip-content::after,ch-window[y-align=outside-end][x-align=outside-end][x-align=outside-start] .tooltip-content::after,ch-window[y-align=outside-end][x-align=outside-start][x-align=outside-start] .tooltip-content::after{inset-inline-end:0}ch-window[y-align=outside-end][x-align=outside-end] .tooltip-content::after,ch-window[y-align=outside-end][x-align=outside-end][x-align=outside-end] .tooltip-content::after,ch-window[y-align=outside-end][x-align=outside-start][x-align=outside-end] .tooltip-content::after{inset-inline-start:0}ch-window[x-align=outside-start] .tooltip-content::after{clip-path:polygon(100% 50%, 0 0, 0 100%);inset-inline-end:var(--ch-tooltip-based)}ch-window[x-align=outside-end] .tooltip-content::after{clip-path:polygon(100% 0, 0 50%, 100% 100%);inset-inline-start:var(--ch-tooltip-based)}ch-window[x-align=center] .tooltip-content::after{inset-inline-start:var(--ch-tooltip-centered)}ch-window[x-align=inside-start] .tooltip-content::after{inset-inline-start:var(--ch-tooltip-75)}ch-window[x-align=inside-end] .tooltip-content::after{inset-inline-start:var(--ch-tooltip-25)}ch-window[y-align=inside-start] .tooltip-content::after{inset-block-start:var(--ch-tooltip-75)}ch-window[y-align=center] .tooltip-content::after{inset-block-start:var(--ch-tooltip-centered)}ch-window[y-align=inside-end] .tooltip-content::after{inset-block-start:var(--ch-tooltip-25)}.tooltip-content::after{content:\" \";position:absolute;background-color:inherit;width:var(--ch-tooltip-arrow-size);height:var(--ch-tooltip-arrow-size)}";
7
+
8
+ const mapTooltipAlignToChWindowAlign = {
9
+ OutsideStart: "outside-start",
10
+ InsideStart: "inside-start",
11
+ Center: "center",
12
+ InsideEnd: "inside-end",
13
+ OutsideEnd: "outside-end"
14
+ };
15
+ const EXPORT_PARTS = "window:section,mask";
16
+ const ChTooltip$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
17
+ constructor() {
18
+ super();
19
+ this.__registerHost();
20
+ /** Determines if the window and the tooltip is hidden or visible.
21
+ * Inherited from ch-window.
22
+ */
23
+ this.hidden = true;
24
+ /**
25
+ * Specifies the tooltip description.
26
+ */
27
+ this.tooltipId = "Tooltip";
28
+ /**
29
+ * Specifies the delay (in ms)
30
+ * for the tooltip to be displayed.
31
+ */
32
+ this.delay = 100;
33
+ /**
34
+ * Specifies the position of the tooltip relative to
35
+ * the container element.
36
+ */
37
+ this.position = "OutsideStart_Center";
38
+ this.showWithDelay = () => {
39
+ setTimeout(() => {
40
+ this.hidden = false;
41
+ }, this.delay);
42
+ };
43
+ this.handleEnter = () => {
44
+ if (!this.hidden) {
45
+ return;
46
+ }
47
+ this.showWithDelay();
48
+ };
49
+ this.handleLeave = () => {
50
+ if (this.container === focusComposedPath()[0]) {
51
+ this.hidden = false;
52
+ }
53
+ this.hidden = true;
54
+ };
55
+ this.addListeners = () => {
56
+ this.container.addEventListener("focus", this.handleEnter);
57
+ this.container.addEventListener("focusout", this.handleLeave);
58
+ this.container.addEventListener("mouseenter", this.handleEnter);
59
+ this.container.addEventListener("mouseleave", this.handleLeave);
60
+ };
61
+ this.removeListeners = () => {
62
+ this.container.removeEventListener("focus", this.handleEnter);
63
+ this.container.removeEventListener("focusout", this.handleLeave);
64
+ this.container.removeEventListener("mouseenter", this.handleEnter);
65
+ this.container.removeEventListener("mouseleave", this.handleLeave);
66
+ };
67
+ }
68
+ componentDidLoad() {
69
+ this.container = document.querySelector('[slot="container"] > :first-child');
70
+ this.addListeners();
71
+ }
72
+ disconnectedCallback() {
73
+ this.removeListeners();
74
+ }
75
+ render() {
76
+ const aligns = this.position.split("_");
77
+ const alignX = aligns[0];
78
+ const alignY = aligns[1];
79
+ return (h(Host, null, h("slot", { name: "container" }), h("ch-window", { exportparts: EXPORT_PARTS, "show-header": false, "show-footer": false, modal: false, "close-on-escape": true, hidden: this.hidden, container: this.container, xAlign: mapTooltipAlignToChWindowAlign[alignX], yAlign: mapTooltipAlignToChWindowAlign[alignY] }, h("div", { role: "tooltip", class: "tooltip-content", id: this.tooltipId }, h("slot", { name: "content" })))));
80
+ }
81
+ static get style() { return tooltipCss; }
82
+ }, [4, "ch-tooltip", {
83
+ "tooltipId": [1, "tooltip-id"],
84
+ "delay": [2],
85
+ "position": [1],
86
+ "hidden": [32]
87
+ }]);
88
+ function defineCustomElement$1() {
89
+ if (typeof customElements === "undefined") {
90
+ return;
91
+ }
92
+ const components = ["ch-tooltip", "ch-window", "ch-window-close"];
93
+ components.forEach(tagName => { switch (tagName) {
94
+ case "ch-tooltip":
95
+ if (!customElements.get(tagName)) {
96
+ customElements.define(tagName, ChTooltip$1);
97
+ }
98
+ break;
99
+ case "ch-window":
100
+ if (!customElements.get(tagName)) {
101
+ defineCustomElement$3();
102
+ }
103
+ break;
104
+ case "ch-window-close":
105
+ if (!customElements.get(tagName)) {
106
+ defineCustomElement$2();
107
+ }
108
+ break;
109
+ } });
110
+ }
111
+
112
+ const ChTooltip = ChTooltip$1;
113
+ const defineCustomElement = defineCustomElement$1;
114
+
115
+ export { ChTooltip, defineCustomElement };
@@ -1,24 +1,25 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
2
  import { L as Locale } from './locale.js';
3
- import { u as updateTreeModel, r as renderTreeItems } from './update-tree-model.js';
4
3
  import { r as renderSuggestLists } from './render-suggest.js';
5
- import { d as defineCustomElement$i } from './icon.js';
6
- import { d as defineCustomElement$h } from './ch-suggest2.js';
7
- import { d as defineCustomElement$g } from './ch-suggest-list2.js';
8
- import { d as defineCustomElement$f } from './ch-suggest-list-item2.js';
9
- import { d as defineCustomElement$e } from './ch-window2.js';
10
- import { d as defineCustomElement$d } from './ch-window-close2.js';
11
- import { d as defineCustomElement$c } from './container.js';
12
- import { d as defineCustomElement$b } from './button.js';
13
- import { d as defineCustomElement$a } from './form-checkbox.js';
14
- import { d as defineCustomElement$9 } from './icon2.js';
15
- import { d as defineCustomElement$8 } from './gxg-label2.js';
16
- import { d as defineCustomElement$7 } from './suggest.js';
17
- import { d as defineCustomElement$6 } from './text.js';
18
- import { d as defineCustomElement$5 } from './title.js';
19
- import { d as defineCustomElement$4 } from './tooltip.js';
20
- import { d as defineCustomElement$3 } from './gxg-tree2.js';
21
- import { d as defineCustomElement$2 } from './gxg-tree-item2.js';
4
+ import { d as defineCustomElement$k } from './checkbox.js';
5
+ import { d as defineCustomElement$j } from './icon.js';
6
+ import { d as defineCustomElement$i } from './ch-suggest2.js';
7
+ import { d as defineCustomElement$h } from './ch-suggest-list2.js';
8
+ import { d as defineCustomElement$g } from './ch-suggest-list-item2.js';
9
+ import { d as defineCustomElement$f } from './tree-x.js';
10
+ import { d as defineCustomElement$e } from './tree-x-list-item.js';
11
+ import { d as defineCustomElement$d } from './ch-window2.js';
12
+ import { d as defineCustomElement$c } from './ch-window-close2.js';
13
+ import { d as defineCustomElement$b } from './container.js';
14
+ import { d as defineCustomElement$a } from './button.js';
15
+ import { d as defineCustomElement$9 } from './form-checkbox.js';
16
+ import { d as defineCustomElement$8 } from './icon2.js';
17
+ import { d as defineCustomElement$7 } from './gxg-label2.js';
18
+ import { d as defineCustomElement$6 } from './suggest.js';
19
+ import { d as defineCustomElement$5 } from './text.js';
20
+ import { d as defineCustomElement$4 } from './title.js';
21
+ import { d as defineCustomElement$3 } from './tooltip.js';
22
+ import { d as defineCustomElement$2 } from './tree-view.js';
22
23
 
23
24
  /**
24
25
  * @description This function converts SelectorCategoryData[] SuggestData
@@ -47,35 +48,32 @@ const convertObjectDataToSuggestData = (selectorCategoriesData) => {
47
48
  }
48
49
  return suggestData;
49
50
  };
51
+ const convertToTreeItem = (item) => {
52
+ var _a;
53
+ return ({
54
+ caption: item.description,
55
+ id: item.id,
56
+ items: ((_a = item.items) !== null && _a !== void 0 ? _a : []).map(convertToTreeItem),
57
+ lazy: item.hasChildren && (item.items == null || item.items.length === 0),
58
+ leaf: item.hasChildren === false,
59
+ leftImgSrc: item.icon
60
+ });
61
+ };
50
62
  /**
51
- * @description This function converts ReferenceData[] data to GxgTreeItemData[]
63
+ * @description This function converts ReferenceData[] data to TreeItemData[]
52
64
  */
53
- const convertReferenceDataToTreeData = (referencedBy) => {
65
+ const convertReferenceDataToTreeViewData = (referenceData) => {
54
66
  const treeData = [];
55
- if (!referencedBy) {
67
+ if (!referenceData) {
56
68
  return treeData;
57
69
  }
58
- const convertItem = (item) => {
59
- var _a;
60
- const treeItem = {
61
- description: item.description,
62
- lazy: item.hasChildren,
63
- icon: item.icon,
64
- id: item.id,
65
- label: item.name
66
- };
67
- if (((_a = item.items) === null || _a === void 0 ? void 0 : _a.length) > 0) {
68
- treeItem.items = item.items.map(child => convertItem(child));
69
- }
70
- return treeItem;
71
- };
72
- referencedBy.forEach(item => {
73
- treeData.push(convertItem(item));
70
+ referenceData.forEach(item => {
71
+ treeData.push(convertToTreeItem(item));
74
72
  });
75
73
  return treeData;
76
74
  };
77
75
 
78
- const referencesCss = ".gxi-hidden{display:none !important}.gxi-full-height{height:100%}.gxi-overflow-auto{overflow:auto}.gxi-display-flex{display:flex}.align-start{display:flex;align-items:start}.align-center{display:flex;align-items:center}.align-end{display:flex;align-items:end}.grid{display:grid;grid-row-gap:var(--gx-ide-grid-row-gap);grid-column-gap:var(--gx-ide-grid-column-gap);grid-template-rows:auto}ch-grid-cell{display:flex}ch-grid{overflow:auto;height:100%}ch-grid-column{z-index:99;border-bottom:1px solid var(--gray-01)}gxg-tabs{box-shadow:none}:host(.gx-ide-component){box-shadow:var(--box-shadow-01) !important;height:100% !important;display:flex !important;flex-direction:column !important}:host(:focus-within) gx-ide-top-bar::part(wrapper){background-color:var(--color-secondary-enabled)}.gx-ide-main-wrapper{color:var(--gx-ide-component-text-color);font-weight:var(--font-weight-regular);font-size:var(--font-size-lg);line-height:1.6em;height:100%;background-color:var(--gx-ide-component-background-color);display:flex;flex-direction:column;flex-grow:1}.gx-ide-main{flex-grow:1;overflow-y:auto;}.gx-ide-main::-webkit-scrollbar{width:6px;height:6px}.gx-ide-main::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}.gx-ide-main::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}.gx-ide-main::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}.gx-ide-main .gxg-scroll{display:block;overflow-y:auto;padding-inline-end:2px}.gx-ide-overflow{overflow-y:auto;}.gx-ide-overflow::-webkit-scrollbar{width:6px;height:6px}.gx-ide-overflow::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}.gx-ide-overflow::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}.gx-ide-overflow::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}.gx-ide-overflow .gxg-scroll{display:block;overflow-y:auto;padding-inline-end:2px}:host{display:block}.header{}.header__top{grid-template-columns:min-content auto 1fr min-content;grid-template-rows:1fr;grid-template-areas:\"hide-bar-button suggest-label gxg-suggest selector-dialog-button\"}.header__top .hide-bar-button{grid-area:hide-bar-button}.header__top .suggest-label{grid-area:suggest-label}.header__top gxg-suggest{grid-area:gxg-suggest}.header__top .selector-dialog-button{grid-area:selector-dialog-button}.header__bottom{display:grid;grid-template-rows:1fr;transition:var(--gx-ide-timing-super-fast-ms) grid-template-rows}.header__bottom--hidden{grid-template-rows:0fr}.header__bottom .outer-wrapper{overflow:hidden}.header__bottom .inner-wrapper{padding-top:var(--gx-ide-grid-row-gap);display:flex;flex-direction:row;align-items:center;justify-content:space-between}.header__bottom .inner-wrapper__left{display:flex;align-items:center;gap:var(--gx-ide-grid-row-gap)}.header-hidden .first-row{grid-template-columns:auto 1fr auto}.header-hidden .first-row>:nth-child(3){align-self:end}.header-hidden .second-row{display:none}.main{grid-template-columns:1fr 1fr;grid-template-rows:1fr;grid-template-areas:\"is-referenced has-references\";height:100%;gap:0}.main>*:first-child{border-right:1px solid var(--gx-ide-container-border-color)}.main .is-referenced{grid-area:is-referenced}.main .has-references{grid-area:has-references}";
76
+ const referencesCss = ".gxi-hidden{display:none !important}.gxi-full-height{height:100%}.gxi-overflow-auto{overflow:auto}.gxi-display-flex{display:flex}.align-start{display:flex;align-items:start}.align-center{display:flex;align-items:center}.align-end{display:flex;align-items:end}.grid{display:grid;grid-row-gap:var(--gx-ide-grid-row-gap);grid-column-gap:var(--gx-ide-grid-column-gap);grid-template-rows:auto}ch-grid-cell{display:flex}ch-grid{overflow:auto;height:100%}ch-grid-column{z-index:99;border-bottom:1px solid var(--gray-01)}gxg-tabs{box-shadow:none}:host(.gx-ide-component){box-shadow:var(--box-shadow-01) !important;height:100% !important;display:flex !important;flex-direction:column !important}:host(:focus-within) gx-ide-top-bar::part(wrapper){background-color:var(--color-secondary-enabled)}.gx-ide-main-wrapper{color:var(--gx-ide-component-text-color);font-weight:var(--font-weight-regular);font-size:var(--font-size-lg);line-height:1.6em;height:100%;background-color:var(--gx-ide-component-background-color);display:flex;flex-direction:column;flex-grow:1}.gx-ide-main{flex-grow:1;overflow-y:auto;}.gx-ide-main::-webkit-scrollbar{width:6px;height:6px}.gx-ide-main::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}.gx-ide-main::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}.gx-ide-main::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}.gx-ide-main .gxg-scroll{display:block;overflow-y:auto;padding-inline-end:2px}.gx-ide-overflow{overflow-y:auto;}.gx-ide-overflow::-webkit-scrollbar{width:6px;height:6px}.gx-ide-overflow::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}.gx-ide-overflow::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}.gx-ide-overflow::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}.gx-ide-overflow .gxg-scroll{display:block;overflow-y:auto;padding-inline-end:2px}:host{display:block}.header{}.header__top{grid-template-columns:min-content auto 1fr min-content;grid-template-rows:1fr;grid-template-areas:\"hide-bar-button suggest-label gxg-suggest selector-dialog-button\"}.header__top .hide-bar-button{grid-area:hide-bar-button}.header__top .suggest-label{grid-area:suggest-label}.header__top gxg-suggest{grid-area:gxg-suggest}.header__top .selector-dialog-button{grid-area:selector-dialog-button}.header__bottom{display:grid;grid-template-rows:1fr;transition:var(--gx-ide-timing-super-fast-ms) grid-template-rows}.header__bottom--hidden{grid-template-rows:0fr}.header__bottom .outer-wrapper{overflow:hidden}.header__bottom .inner-wrapper{padding-top:var(--gx-ide-grid-row-gap);display:flex;flex-direction:row;align-items:center;justify-content:space-between}.header__bottom .inner-wrapper__left{display:flex;align-items:center;gap:var(--gx-ide-grid-row-gap)}.header-hidden .first-row{grid-template-columns:auto 1fr auto}.header-hidden .first-row>:nth-child(3){align-self:end}.header-hidden .second-row{display:none}.main{grid-template-columns:1fr 1fr;grid-template-rows:1fr;grid-template-areas:\"is-referenced has-references\";height:100%;gap:0}.main .reference-container{min-height:300px}.main .reference-container--no-references{display:flex;align-items:center;justify-content:center}.main>*:first-child{border-right:1px solid var(--gx-ide-container-border-color)}.main .is-referenced{grid-area:is-referenced}.main .has-references{grid-area:has-references}";
79
77
 
80
78
  const GxIdeReferences$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
81
79
  constructor() {
@@ -94,16 +92,28 @@ const GxIdeReferences$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLEle
94
92
  // 7.LISTENERS //
95
93
  // 8.PUBLIC METHODS API //
96
94
  // 9.LOCAL METHODS //
95
+ this.attachTreeEvents = () => {
96
+ // this.referencedByTreeEl.addEventListener(
97
+ // "expandedItemChange",
98
+ // (item: CustomEvent<{ id: string; expanded: boolean }>) => {
99
+ // console.log(item.detail.id);
100
+ // }
101
+ // );
102
+ // this.referencesToTreeEl.addEventListener(
103
+ // "expandedItemChange",
104
+ // (item: CustomEvent<{ id: string; expanded: boolean }>) => {
105
+ // console.log(item.detail.id);
106
+ // }
107
+ // );
108
+ };
97
109
  /**
98
110
  * It attaches on the ch-suggest, the "itemSelected" event triggered by the ch-suggest-list-item. This helps set the new 'selectedObject'.
99
111
  */
100
- this.attachSelectObjectListener = () => {
101
- this.selectObjectSuggestEl.addEventListener("itemSelected", (e) => {
102
- const categoryIndex = e.detail.indexes.listIndex;
103
- const itemIndex = e.detail.indexes.itemIndex;
104
- this.selectedObject =
105
- this.selectorCategoryData[categoryIndex].items[itemIndex];
106
- });
112
+ this.selectObjectSelectionChanged = (e) => {
113
+ const categoryIndex = e.detail.indexes.listIndex;
114
+ const itemIndex = e.detail.indexes.itemIndex;
115
+ this.selectedObject =
116
+ this.selectorCategoryData[categoryIndex].items[itemIndex];
107
117
  };
108
118
  /**
109
119
  * This handler gets fired every time the value of the 'Select Object' ch-suggest changes.
@@ -149,26 +159,16 @@ const GxIdeReferences$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLEle
149
159
  */
150
160
  this.loadReferencesHandler = async (id, to = false) => {
151
161
  if (this.loadReferencesCallback) {
152
- /* is referenced by*/
153
- if (!to) {
154
- this.loadReferencesCallback(id, false)
155
- .then(result => {
156
- this.referencedByTreeData = convertReferenceDataToTreeData(result);
157
- })
158
- .catch(() => {
159
- /* To do*/
160
- });
161
- }
162
- /* is referenced by*/
163
- if (to) {
164
- this.loadReferencesCallback(id, true)
165
- .then(result => {
166
- this.referencesToTreeData = convertReferenceDataToTreeData(result);
167
- })
168
- .catch(() => {
169
- /* To do*/
170
- });
171
- }
162
+ this.loadReferencesCallback(id, to).then(result => {
163
+ if (to) {
164
+ this.referencesToTreeData =
165
+ convertReferenceDataToTreeViewData(result);
166
+ }
167
+ else {
168
+ this.referencedByTreeData =
169
+ convertReferenceDataToTreeViewData(result);
170
+ }
171
+ });
172
172
  }
173
173
  };
174
174
  /**
@@ -177,71 +177,27 @@ const GxIdeReferences$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLEle
177
177
  this.hideBarButtonClickedHandler = () => {
178
178
  this.barHidden = !this.barHidden;
179
179
  };
180
- /**
181
- * Simple helper function to get 'this.referencedByTreeData' or 'this.referencesToTreeData'
182
- */
183
- this.getRef = (to = false) => {
184
- if (!to) {
185
- /* referenced by*/
186
- return this.referencedByTreeData;
187
- }
188
- else {
189
- /* references to*/
190
- return this.referencesToTreeData;
191
- }
192
- };
193
- /**
194
- * Simple helper function to update 'this.referencedByTreeData' or 'this.referencesToTreeData'
195
- */
196
- this.updateRef = (to = false, updatedData) => {
197
- if (!to) {
198
- /* referenced by*/
199
- this.referencedByTreeData = updatedData;
200
- }
201
- else {
202
- /* references to*/
203
- this.referencesToTreeData = updatedData;
180
+ this.referencesLazyLoadCallbackHandler = (ref) => async (treeItemId) => {
181
+ if (this.loadReferencesCallback) {
182
+ const to = ref === "references-to";
183
+ const referencesLazyChildren = await this.loadReferencesCallback(treeItemId, to);
184
+ const treeLazyChildren = convertReferenceDataToTreeViewData(referencesLazyChildren);
185
+ return new Promise(resolve => {
186
+ resolve(treeLazyChildren);
187
+ });
204
188
  }
189
+ return new Promise(resolve => {
190
+ resolve([]);
191
+ });
205
192
  };
206
- /**
207
- * Handles changes on any of the references (by or to). Used to:
208
- * 1) Keep the models updated.
209
- * 2) call the openObjectCallback.
210
- * 3) call the loadReferencesCallback if a lazy node was toggled.
211
- */
212
- this.referencesPanelStateChangedHandler = (to = false) => (e) => {
213
- const event = e.detail.emittedBy;
214
- const nodeData = e.detail.itemData;
215
- const nodeId = e.detail.itemData.id;
216
- const nodeLabel = e.detail.itemData.label;
217
- /* tree item was selected*/
218
- if (event === "selectionChanged") {
219
- this.selectReferenceCallback(nodeId);
220
- /* Returns void Promise*/
221
- }
222
- /* tree item was double-clicked.*/
223
- if (event === "doubleClicked") {
224
- this.openObjectCallback(nodeId);
225
- }
226
- let updatedTreeModel = [];
227
- const lazy = nodeData.lazy;
228
- if (lazy) {
229
- // loadReferencesCallback
230
- let children = [];
231
- this.loadReferencesCallback(nodeId, to)
232
- .then(result => {
233
- children = convertReferenceDataToTreeData(result);
234
- // Then update model
235
- updatedTreeModel = updateTreeModel(this.getRef(to), { id: nodeId, label: nodeLabel, items: children }, nodeId);
236
- this.updateRef(to, updatedTreeModel);
237
- })
238
- .catch(() => {
239
- /* To do*/
193
+ this.referenceSelectedHandler = (selectedItem) => {
194
+ if (this.selectReferenceCallback) {
195
+ const selectedItems = [];
196
+ selectedItem.detail.forEach(item => {
197
+ selectedItems.push(item.id);
240
198
  });
241
- }
242
- else {
243
- updatedTreeModel = updateTreeModel(this.getRef(to), nodeData, nodeId);
244
- this.updateRef(to, updatedTreeModel);
199
+ this.selectReferenceCallback(selectedItems[0]);
200
+ // returns void
245
201
  }
246
202
  };
247
203
  this.referencedByTreeData = undefined;
@@ -271,22 +227,28 @@ const GxIdeReferences$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLEle
271
227
  this.evaluateInitialReferenceData();
272
228
  }
273
229
  componentDidLoad() {
274
- this.attachSelectObjectListener();
230
+ this.attachTreeEvents();
275
231
  }
276
232
  componentDidRender() {
277
233
  this.componentDidRenderEvent.emit(this._componentLocale.componentName);
278
234
  }
279
235
  // 10.RENDER() FUNCTION //
280
236
  render() {
281
- var _a, _b, _c, _d, _e, _f;
282
- return (h(Host, { class: "gx-ide-component" }, h("div", { class: "gx-ide-main-wrapper" }, 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.name, onValueChanged: this.selectObjectValueChangedHandler, ref: el => (this.selectObjectSuggestEl = el), part: "object-selector-suggest", exportparts: "dropdown:select-object-dropdown" }, 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: {
237
+ var _a, _b, _c, _d, _e, _f, _g, _h;
238
+ return (h(Host, { class: "gx-ide-component" }, h("div", { class: "gx-ide-main-wrapper" }, 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.name, onValueChanged: this.selectObjectValueChangedHandler, onSelectionChanged: this.selectObjectSelectionChanged, part: "object-selector-suggest", exportparts: "dropdown:select-object-dropdown" }, 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: {
283
239
  "header__bottom": true,
284
240
  "header__bottom--hidden": this.barHidden
285
- } }, 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 gxi-full-height gxi-overflow-auto" }, h("gx-ide-container", { containerTitle: this._componentLocale.main.isReferencedBy, fullHeight: true, noContentPadding: true, class: "gxi-overflow-auto", 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
241
+ } }, 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 gxi-full-height gxi-overflow-auto" }, h("gx-ide-container", { containerTitle: this._componentLocale.main.isReferencedBy, fullHeight: true, class: "gxi-overflow-auto", part: "referenced-by-container" }, h("div", { class: {
242
+ "reference-container": true,
243
+ "reference-container--no-references": !((_a = this.referencedByTreeData) === null || _a === void 0 ? void 0 : _a.length)
244
+ } }, h("gxg-tree-view", { class: { "gxi-hidden": !((_b = this.referencedByTreeData) === null || _b === void 0 ? void 0 : _b.length) }, part: "referenced-by-tree", treeModel: this.referencedByTreeData, lazyLoadTreeItemsCallback: this.referencesLazyLoadCallbackHandler("referenced-by"), onSelectedItemsChange: this.referenceSelectedHandler, dragDisabled: true, dropDisabled: true }), !((_c = this.referencedByTreeData) === null || _c === void 0 ? void 0 : _c.length) && (h("gxg-text", { textAlign: "center", padding: "m", type: "text-regular", maxWidth: this.referencesMessagesMaxWidth, part: "referenced-by-text" }, ((_d = this.referencedByTreeData) === null || _d === void 0 ? void 0 : _d.length) === 0
286
245
  ? this._componentLocale.main.isReferencedByEmpty
287
- : this._componentLocale.main.isReferencedByError))), h("gx-ide-container", { containerTitle: this._componentLocale.main.hasReferencesTo, fullHeight: true, noContentPadding: true, class: "gxi-overflow-auto", 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
246
+ : this._componentLocale.main.isReferencedByError)))), h("gx-ide-container", { containerTitle: this._componentLocale.main.hasReferencesTo, fullHeight: true, class: "gxi-overflow-auto", part: "references-to-container" }, h("div", { class: {
247
+ "reference-container": true,
248
+ "reference-container--no-references": !((_e = this.referencesToTreeData) === null || _e === void 0 ? void 0 : _e.length)
249
+ } }, h("gxg-tree-view", { class: { "gxi-hidden": !((_f = this.referencesToTreeData) === null || _f === void 0 ? void 0 : _f.length) }, part: "referenced-to-tree", treeModel: this.referencesToTreeData, lazyLoadTreeItemsCallback: this.referencesLazyLoadCallbackHandler("references-to"), onSelectedItemsChange: this.referenceSelectedHandler }), !((_g = this.referencesToTreeData) === null || _g === void 0 ? void 0 : _g.length) && (h("gxg-text", { textAlign: "center", padding: "m", type: "text-regular", maxWidth: this.referencesMessagesMaxWidth, part: "references-to-text" }, ((_h = this.referencesToTreeData) === null || _h === void 0 ? void 0 : _h.length) === 0
288
250
  ? this._componentLocale.main.hasReferencesEmpty
289
- : this._componentLocale.main.hasReferencesToError)))))));
251
+ : this._componentLocale.main.hasReferencesToError))))))));
290
252
  }
291
253
  static get assetsDirs() { return ["gx-ide-assets/references"]; }
292
254
  get el() { return this; }
@@ -312,94 +274,104 @@ function defineCustomElement$1() {
312
274
  if (typeof customElements === "undefined") {
313
275
  return;
314
276
  }
315
- 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"];
277
+ const components = ["gx-ide-references", "ch-checkbox", "ch-icon", "ch-suggest", "ch-suggest-list", "ch-suggest-list-item", "ch-tree-x", "ch-tree-x-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-view"];
316
278
  components.forEach(tagName => { switch (tagName) {
317
279
  case "gx-ide-references":
318
280
  if (!customElements.get(tagName)) {
319
281
  customElements.define(tagName, GxIdeReferences$1);
320
282
  }
321
283
  break;
284
+ case "ch-checkbox":
285
+ if (!customElements.get(tagName)) {
286
+ defineCustomElement$k();
287
+ }
288
+ break;
322
289
  case "ch-icon":
323
290
  if (!customElements.get(tagName)) {
324
- defineCustomElement$i();
291
+ defineCustomElement$j();
325
292
  }
326
293
  break;
327
294
  case "ch-suggest":
328
295
  if (!customElements.get(tagName)) {
329
- defineCustomElement$h();
296
+ defineCustomElement$i();
330
297
  }
331
298
  break;
332
299
  case "ch-suggest-list":
333
300
  if (!customElements.get(tagName)) {
334
- defineCustomElement$g();
301
+ defineCustomElement$h();
335
302
  }
336
303
  break;
337
304
  case "ch-suggest-list-item":
305
+ if (!customElements.get(tagName)) {
306
+ defineCustomElement$g();
307
+ }
308
+ break;
309
+ case "ch-tree-x":
338
310
  if (!customElements.get(tagName)) {
339
311
  defineCustomElement$f();
340
312
  }
341
313
  break;
342
- case "ch-window":
314
+ case "ch-tree-x-list-item":
343
315
  if (!customElements.get(tagName)) {
344
316
  defineCustomElement$e();
345
317
  }
346
318
  break;
347
- case "ch-window-close":
319
+ case "ch-window":
348
320
  if (!customElements.get(tagName)) {
349
321
  defineCustomElement$d();
350
322
  }
351
323
  break;
352
- case "gx-ide-container":
324
+ case "ch-window-close":
353
325
  if (!customElements.get(tagName)) {
354
326
  defineCustomElement$c();
355
327
  }
356
328
  break;
357
- case "gxg-button":
329
+ case "gx-ide-container":
358
330
  if (!customElements.get(tagName)) {
359
331
  defineCustomElement$b();
360
332
  }
361
333
  break;
362
- case "gxg-form-checkbox":
334
+ case "gxg-button":
363
335
  if (!customElements.get(tagName)) {
364
336
  defineCustomElement$a();
365
337
  }
366
338
  break;
367
- case "gxg-icon":
339
+ case "gxg-form-checkbox":
368
340
  if (!customElements.get(tagName)) {
369
341
  defineCustomElement$9();
370
342
  }
371
343
  break;
372
- case "gxg-label":
344
+ case "gxg-icon":
373
345
  if (!customElements.get(tagName)) {
374
346
  defineCustomElement$8();
375
347
  }
376
348
  break;
377
- case "gxg-suggest":
349
+ case "gxg-label":
378
350
  if (!customElements.get(tagName)) {
379
351
  defineCustomElement$7();
380
352
  }
381
353
  break;
382
- case "gxg-text":
354
+ case "gxg-suggest":
383
355
  if (!customElements.get(tagName)) {
384
356
  defineCustomElement$6();
385
357
  }
386
358
  break;
387
- case "gxg-title":
359
+ case "gxg-text":
388
360
  if (!customElements.get(tagName)) {
389
361
  defineCustomElement$5();
390
362
  }
391
363
  break;
392
- case "gxg-tooltip":
364
+ case "gxg-title":
393
365
  if (!customElements.get(tagName)) {
394
366
  defineCustomElement$4();
395
367
  }
396
368
  break;
397
- case "gxg-tree":
369
+ case "gxg-tooltip":
398
370
  if (!customElements.get(tagName)) {
399
371
  defineCustomElement$3();
400
372
  }
401
373
  break;
402
- case "gxg-tree-item":
374
+ case "gxg-tree-view":
403
375
  if (!customElements.get(tagName)) {
404
376
  defineCustomElement$2();
405
377
  }
@@ -1,5 +1,4 @@
1
- import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
- import { u as updateTreeModel, r as renderTreeItems } from './update-tree-model.js';
1
+ import { h, proxyCustomElement, HTMLElement, Host } from '@stencil/core/internal/client';
3
2
  import { d as defineCustomElement$9 } from './icon.js';
4
3
  import { d as defineCustomElement$8 } from './button.js';
5
4
  import { d as defineCustomElement$7 } from './form-checkbox.js';
@@ -9,6 +8,53 @@ import { d as defineCustomElement$4 } from './tooltip.js';
9
8
  import { d as defineCustomElement$3 } from './gxg-tree2.js';
10
9
  import { d as defineCustomElement$2 } from './gxg-tree-item2.js';
11
10
 
11
+ /* eslint-disable @typescript-eslint/no-use-before-define */
12
+ const renderTreeItems = (treeItemsModel, firstCall = true) => {
13
+ if (treeItemsModel === null || treeItemsModel === void 0 ? void 0 : treeItemsModel.length) {
14
+ if (firstCall) {
15
+ return treeItemsModel.map((item) => {
16
+ return renderTreeItem(item);
17
+ });
18
+ }
19
+ else {
20
+ return (h("gxg-tree", { slot: "tree" }, treeItemsModel.map((item) => {
21
+ return renderTreeItem(item);
22
+ })));
23
+ }
24
+ }
25
+ return [];
26
+ };
27
+ const renderTreeItem = (item) => {
28
+ var _a;
29
+ const childrenLength = item.items ? item.items.length : 0;
30
+ const isLeaf = !!(childrenLength === 0 || item.leaf);
31
+ const lazy = !!item.lazy;
32
+ return (h("gxg-tree-item", { checkbox: item.checkbox, checked: item.checked, description: item.description, disabled: item.disabled, icon: item.icon, indeterminate: item.indeterminate, id: item.id, key: `tree-item-${item.id}`, label: item.label, leaf: isLeaf && !lazy, numberOfChildren: childrenLength, opened: item.opened, selected: item.selected }, [item.label, ((_a = item.items) === null || _a === void 0 ? void 0 : _a.length) && renderTreeItems(item.items, false)]));
33
+ };
34
+
35
+ const updateNodeById = (actualModel, nodeUpdatedState, updatedNodeId) => {
36
+ return actualModel.map(nodeActualState => {
37
+ if (nodeActualState.id === updatedNodeId) {
38
+ return Object.assign(Object.assign({}, nodeActualState), nodeUpdatedState);
39
+ }
40
+ else if (nodeActualState.items) {
41
+ return Object.assign(Object.assign({}, nodeActualState), { items: updateNodeById(nodeActualState.items, nodeUpdatedState, updatedNodeId) });
42
+ }
43
+ else {
44
+ return nodeActualState;
45
+ }
46
+ });
47
+ };
48
+ const updateTreeModel = (actualModel, updatedNodeModel, updatedNodeId) => {
49
+ if (actualModel.length && updatedNodeModel && updatedNodeId) {
50
+ return updateNodeById(actualModel, updatedNodeModel, updatedNodeId);
51
+ }
52
+ else {
53
+ /* If no newItemModel was passed, at least return the actualModel, to avoid having an updated empty tree */
54
+ return actualModel;
55
+ }
56
+ };
57
+
12
58
  const testCss = ":host{display:block}";
13
59
 
14
60
  const GxIdeTest$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {