@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
@@ -1,6 +1,5 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-0da01575.js';
2
2
  import { L as Locale } from './locale-e183487a.js';
3
- import { u as updateTreeModel, r as renderTreeItems } from './update-tree-model-6c612f05.js';
4
3
  import { r as renderSuggestLists } from './render-suggest-e44dde1b.js';
5
4
 
6
5
  /**
@@ -30,35 +29,32 @@ const convertObjectDataToSuggestData = (selectorCategoriesData) => {
30
29
  }
31
30
  return suggestData;
32
31
  };
32
+ const convertToTreeItem = (item) => {
33
+ var _a;
34
+ return ({
35
+ caption: item.description,
36
+ id: item.id,
37
+ items: ((_a = item.items) !== null && _a !== void 0 ? _a : []).map(convertToTreeItem),
38
+ lazy: item.hasChildren && (item.items == null || item.items.length === 0),
39
+ leaf: item.hasChildren === false,
40
+ leftImgSrc: item.icon
41
+ });
42
+ };
33
43
  /**
34
- * @description This function converts ReferenceData[] data to GxgTreeItemData[]
44
+ * @description This function converts ReferenceData[] data to TreeItemData[]
35
45
  */
36
- const convertReferenceDataToTreeData = (referencedBy) => {
46
+ const convertReferenceDataToTreeViewData = (referenceData) => {
37
47
  const treeData = [];
38
- if (!referencedBy) {
48
+ if (!referenceData) {
39
49
  return treeData;
40
50
  }
41
- const convertItem = (item) => {
42
- var _a;
43
- const treeItem = {
44
- description: item.description,
45
- lazy: item.hasChildren,
46
- icon: item.icon,
47
- id: item.id,
48
- label: item.name
49
- };
50
- if (((_a = item.items) === null || _a === void 0 ? void 0 : _a.length) > 0) {
51
- treeItem.items = item.items.map(child => convertItem(child));
52
- }
53
- return treeItem;
54
- };
55
- referencedBy.forEach(item => {
56
- treeData.push(convertItem(item));
51
+ referenceData.forEach(item => {
52
+ treeData.push(convertToTreeItem(item));
57
53
  });
58
54
  return treeData;
59
55
  };
60
56
 
61
- 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}";
57
+ 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}";
62
58
 
63
59
  const GxIdeReferences = class {
64
60
  constructor(hostRef) {
@@ -75,16 +71,28 @@ const GxIdeReferences = class {
75
71
  // 7.LISTENERS //
76
72
  // 8.PUBLIC METHODS API //
77
73
  // 9.LOCAL METHODS //
74
+ this.attachTreeEvents = () => {
75
+ // this.referencedByTreeEl.addEventListener(
76
+ // "expandedItemChange",
77
+ // (item: CustomEvent<{ id: string; expanded: boolean }>) => {
78
+ // console.log(item.detail.id);
79
+ // }
80
+ // );
81
+ // this.referencesToTreeEl.addEventListener(
82
+ // "expandedItemChange",
83
+ // (item: CustomEvent<{ id: string; expanded: boolean }>) => {
84
+ // console.log(item.detail.id);
85
+ // }
86
+ // );
87
+ };
78
88
  /**
79
89
  * It attaches on the ch-suggest, the "itemSelected" event triggered by the ch-suggest-list-item. This helps set the new 'selectedObject'.
80
90
  */
81
- this.attachSelectObjectListener = () => {
82
- this.selectObjectSuggestEl.addEventListener("itemSelected", (e) => {
83
- const categoryIndex = e.detail.indexes.listIndex;
84
- const itemIndex = e.detail.indexes.itemIndex;
85
- this.selectedObject =
86
- this.selectorCategoryData[categoryIndex].items[itemIndex];
87
- });
91
+ this.selectObjectSelectionChanged = (e) => {
92
+ const categoryIndex = e.detail.indexes.listIndex;
93
+ const itemIndex = e.detail.indexes.itemIndex;
94
+ this.selectedObject =
95
+ this.selectorCategoryData[categoryIndex].items[itemIndex];
88
96
  };
89
97
  /**
90
98
  * This handler gets fired every time the value of the 'Select Object' ch-suggest changes.
@@ -130,26 +138,16 @@ const GxIdeReferences = class {
130
138
  */
131
139
  this.loadReferencesHandler = async (id, to = false) => {
132
140
  if (this.loadReferencesCallback) {
133
- /* is referenced by*/
134
- if (!to) {
135
- this.loadReferencesCallback(id, false)
136
- .then(result => {
137
- this.referencedByTreeData = convertReferenceDataToTreeData(result);
138
- })
139
- .catch(() => {
140
- /* To do*/
141
- });
142
- }
143
- /* is referenced by*/
144
- if (to) {
145
- this.loadReferencesCallback(id, true)
146
- .then(result => {
147
- this.referencesToTreeData = convertReferenceDataToTreeData(result);
148
- })
149
- .catch(() => {
150
- /* To do*/
151
- });
152
- }
141
+ this.loadReferencesCallback(id, to).then(result => {
142
+ if (to) {
143
+ this.referencesToTreeData =
144
+ convertReferenceDataToTreeViewData(result);
145
+ }
146
+ else {
147
+ this.referencedByTreeData =
148
+ convertReferenceDataToTreeViewData(result);
149
+ }
150
+ });
153
151
  }
154
152
  };
155
153
  /**
@@ -158,71 +156,27 @@ const GxIdeReferences = class {
158
156
  this.hideBarButtonClickedHandler = () => {
159
157
  this.barHidden = !this.barHidden;
160
158
  };
161
- /**
162
- * Simple helper function to get 'this.referencedByTreeData' or 'this.referencesToTreeData'
163
- */
164
- this.getRef = (to = false) => {
165
- if (!to) {
166
- /* referenced by*/
167
- return this.referencedByTreeData;
168
- }
169
- else {
170
- /* references to*/
171
- return this.referencesToTreeData;
172
- }
173
- };
174
- /**
175
- * Simple helper function to update 'this.referencedByTreeData' or 'this.referencesToTreeData'
176
- */
177
- this.updateRef = (to = false, updatedData) => {
178
- if (!to) {
179
- /* referenced by*/
180
- this.referencedByTreeData = updatedData;
181
- }
182
- else {
183
- /* references to*/
184
- this.referencesToTreeData = updatedData;
159
+ this.referencesLazyLoadCallbackHandler = (ref) => async (treeItemId) => {
160
+ if (this.loadReferencesCallback) {
161
+ const to = ref === "references-to";
162
+ const referencesLazyChildren = await this.loadReferencesCallback(treeItemId, to);
163
+ const treeLazyChildren = convertReferenceDataToTreeViewData(referencesLazyChildren);
164
+ return new Promise(resolve => {
165
+ resolve(treeLazyChildren);
166
+ });
185
167
  }
168
+ return new Promise(resolve => {
169
+ resolve([]);
170
+ });
186
171
  };
187
- /**
188
- * Handles changes on any of the references (by or to). Used to:
189
- * 1) Keep the models updated.
190
- * 2) call the openObjectCallback.
191
- * 3) call the loadReferencesCallback if a lazy node was toggled.
192
- */
193
- this.referencesPanelStateChangedHandler = (to = false) => (e) => {
194
- const event = e.detail.emittedBy;
195
- const nodeData = e.detail.itemData;
196
- const nodeId = e.detail.itemData.id;
197
- const nodeLabel = e.detail.itemData.label;
198
- /* tree item was selected*/
199
- if (event === "selectionChanged") {
200
- this.selectReferenceCallback(nodeId);
201
- /* Returns void Promise*/
202
- }
203
- /* tree item was double-clicked.*/
204
- if (event === "doubleClicked") {
205
- this.openObjectCallback(nodeId);
206
- }
207
- let updatedTreeModel = [];
208
- const lazy = nodeData.lazy;
209
- if (lazy) {
210
- // loadReferencesCallback
211
- let children = [];
212
- this.loadReferencesCallback(nodeId, to)
213
- .then(result => {
214
- children = convertReferenceDataToTreeData(result);
215
- // Then update model
216
- updatedTreeModel = updateTreeModel(this.getRef(to), { id: nodeId, label: nodeLabel, items: children }, nodeId);
217
- this.updateRef(to, updatedTreeModel);
218
- })
219
- .catch(() => {
220
- /* To do*/
172
+ this.referenceSelectedHandler = (selectedItem) => {
173
+ if (this.selectReferenceCallback) {
174
+ const selectedItems = [];
175
+ selectedItem.detail.forEach(item => {
176
+ selectedItems.push(item.id);
221
177
  });
222
- }
223
- else {
224
- updatedTreeModel = updateTreeModel(this.getRef(to), nodeData, nodeId);
225
- this.updateRef(to, updatedTreeModel);
178
+ this.selectReferenceCallback(selectedItems[0]);
179
+ // returns void
226
180
  }
227
181
  };
228
182
  this.referencedByTreeData = undefined;
@@ -252,22 +206,28 @@ const GxIdeReferences = class {
252
206
  this.evaluateInitialReferenceData();
253
207
  }
254
208
  componentDidLoad() {
255
- this.attachSelectObjectListener();
209
+ this.attachTreeEvents();
256
210
  }
257
211
  componentDidRender() {
258
212
  this.componentDidRenderEvent.emit(this._componentLocale.componentName);
259
213
  }
260
214
  // 10.RENDER() FUNCTION //
261
215
  render() {
262
- var _a, _b, _c, _d, _e, _f;
263
- 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: {
216
+ var _a, _b, _c, _d, _e, _f, _g, _h;
217
+ 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: {
264
218
  "header__bottom": true,
265
219
  "header__bottom--hidden": this.barHidden
266
- } }, 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
220
+ } }, 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: {
221
+ "reference-container": true,
222
+ "reference-container--no-references": !((_a = this.referencedByTreeData) === null || _a === void 0 ? void 0 : _a.length)
223
+ } }, 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
267
224
  ? this._componentLocale.main.isReferencedByEmpty
268
- : 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
225
+ : 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: {
226
+ "reference-container": true,
227
+ "reference-container--no-references": !((_e = this.referencesToTreeData) === null || _e === void 0 ? void 0 : _e.length)
228
+ } }, 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
269
229
  ? this._componentLocale.main.hasReferencesEmpty
270
- : this._componentLocale.main.hasReferencesToError)))))));
230
+ : this._componentLocale.main.hasReferencesToError))))))));
271
231
  }
272
232
  static get assetsDirs() { return ["gx-ide-assets/references"]; }
273
233
  get el() { return getElement(this); }
@@ -1,5 +1,51 @@
1
- import { r as registerInstance, h, H as Host } from './index-0da01575.js';
2
- import { u as updateTreeModel, r as renderTreeItems } from './update-tree-model-6c612f05.js';
1
+ import { h, r as registerInstance, H as Host } from './index-0da01575.js';
2
+
3
+ /* eslint-disable @typescript-eslint/no-use-before-define */
4
+ const renderTreeItems = (treeItemsModel, firstCall = true) => {
5
+ if (treeItemsModel === null || treeItemsModel === void 0 ? void 0 : treeItemsModel.length) {
6
+ if (firstCall) {
7
+ return treeItemsModel.map((item) => {
8
+ return renderTreeItem(item);
9
+ });
10
+ }
11
+ else {
12
+ return (h("gxg-tree", { slot: "tree" }, treeItemsModel.map((item) => {
13
+ return renderTreeItem(item);
14
+ })));
15
+ }
16
+ }
17
+ return [];
18
+ };
19
+ const renderTreeItem = (item) => {
20
+ var _a;
21
+ const childrenLength = item.items ? item.items.length : 0;
22
+ const isLeaf = !!(childrenLength === 0 || item.leaf);
23
+ const lazy = !!item.lazy;
24
+ 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)]));
25
+ };
26
+
27
+ const updateNodeById = (actualModel, nodeUpdatedState, updatedNodeId) => {
28
+ return actualModel.map(nodeActualState => {
29
+ if (nodeActualState.id === updatedNodeId) {
30
+ return Object.assign(Object.assign({}, nodeActualState), nodeUpdatedState);
31
+ }
32
+ else if (nodeActualState.items) {
33
+ return Object.assign(Object.assign({}, nodeActualState), { items: updateNodeById(nodeActualState.items, nodeUpdatedState, updatedNodeId) });
34
+ }
35
+ else {
36
+ return nodeActualState;
37
+ }
38
+ });
39
+ };
40
+ const updateTreeModel = (actualModel, updatedNodeModel, updatedNodeId) => {
41
+ if (actualModel.length && updatedNodeModel && updatedNodeId) {
42
+ return updateNodeById(actualModel, updatedNodeModel, updatedNodeId);
43
+ }
44
+ else {
45
+ /* If no newItemModel was passed, at least return the actualModel, to avoid having an updated empty tree */
46
+ return actualModel;
47
+ }
48
+ };
3
49
 
4
50
  const testCss = ":host{display:block}";
5
51
 
@@ -49,7 +49,7 @@ const GxgLabel = class {
49
49
  };
50
50
  GxgLabel.style = gxgLabelCss;
51
51
 
52
- const tooltipCss = "/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0;}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px;}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--ui-animaton-speed:0.2s}.gxg-title-01{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em}.gxg-title-01--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-on-primary)}.gxg-title-02{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em}.gxg-title-02--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em;color:var(--color-on-primary)}.gxg-title-03{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em}.gxg-title-03--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em;color:var(--color-on-primary)}.gxg-title-04{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em}.gxg-title-04--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-on-primary)}.gxg-title-05{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;line-height:1.556em}.gxg-title-05--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;line-height:1.556em;color:var(--color-on-primary)}.gxg-text{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em}.gxg-text--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-on-primary)}.gxg-text--gray{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--gray-05)}.gxg-quote{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;font-style:italic}.gxg-quote--negative{color:var(--color-on-primary)}.gxg-link{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-primary);text-decoration:underline;cursor:pointer;display:inline-block}.gxg-link:hover{color:var(--color-primary-hover)}.gxg-link:active{color:var(--color-primary-active)}.gxg-link-gray{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-primary);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--gray-04)}.gxg-link-gray:hover{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-primary);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--gray-04);color:var(--gray-06)}.gxg-alert-error{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-error-dark);display:inline-block}.gxg-alert-warning{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-warning-dark);display:inline-block}.gxg-alert-success{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-success-dark);display:inline-block}.gxg-tab--disabled{color:var(--color-primary-disabled);pointer-events:none}.gxg-tab--disabled[disabled]{color:var(--color-primary-disabled);pointer-events:none}.gxg-label{font-family:var(--font-family-primary) !important;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm) !important;letter-spacing:var(--letter-spacing-xs);color:var(--color-primary-enabled);text-align:center;line-height:1.455em}.gxg-label:hover{color:var(--color-primary-hover)}.gxg-label:focus{color:var(--color-primary-active)}.gxg-label:active{color:var(--color-primary-active)}.gxg-label[disabled]{color:var(--color-primary-disabled)}.gxg-label--negative{color:var(--color-on-primary)}.gxg-label--negative[disabled]{color:var(--color-on-disabled)}.gxg-button-styles{font-family:var(--font-family-primary) !important;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm) !important;letter-spacing:var(--letter-spacing-xs);color:var(--color-primary-enabled);text-align:center;line-height:1.455em}.gxg-scrollbar{}.gxg-scrollbar::-webkit-scrollbar{width:6px;height:6px}.gxg-scrollbar::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}.gxg-scrollbar::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}.gxg-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}:host{display:inline-flex}:host .tooltip{cursor:pointer;position:relative;border-bottom:1px dotted var(--color-on-secondary);text-decoration:none}:host .tooltip .tooltiptext{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;font-size:var(--font-size-xs);visibility:hidden;opacity:0;transition-property:opacity;transition-duration:var(--ui-animaton-speed);transition-timing-function:ease;position:absolute;z-index:1;width:250px;text-align:center}:host .tooltip .tooltiptext__content{width:fit-content;background-color:var(--gray-07);padding:var(--spacing-comp-01) var(--spacing-comp-02);border-radius:var(--border-width-md);color:var(--color-on-primary);display:inline-block;text-align:left}:host .tooltip .tooltiptext:after{content:\"\";width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:5px solid var(--gray-07);position:absolute}:host .tooltip:hover .tooltiptext{visibility:visible;opacity:1}:host([position=top]) .tooltip .tooltiptext{bottom:27px;left:50%;transform:translateX(-50%)}:host([position=top]) .tooltip .tooltiptext:after{left:50%;transform:translateX(-50%) rotate(180deg);bottom:-4px}:host([position=right]) .tooltip .tooltiptext{top:0;left:111%;text-align:left}:host([position=right]) .tooltip .tooltiptext:after{left:-7px;transform:rotate(-90deg);top:8px}:host([position=bottom]) .tooltip .tooltiptext{top:25px;left:50%;transform:translateX(-50%)}:host([position=bottom]) .tooltip .tooltiptext:after{left:50%;transform:translateX(-50%);top:-4px}:host([position=left]) .tooltip .tooltiptext{text-align:right;top:0;right:105%}:host([position=left]) .tooltip .tooltiptext:after{right:-7px;transform:rotate(90deg);top:8px}:host([width-auto]) .tooltip .tooltiptext{width:auto;white-space:nowrap}:host([no-border]) .tooltip{border-bottom:none}:host([align-end]) .tooltiptext{transform:none !important;inset-inline-end:0;left:auto !important;max-width:180px;width:max-content}:host([align-end]) .tooltiptext:after{inset-inline-end:-1px;left:auto !important}:host([flex]){display:flex}:host([flex]) .tooltip{display:flex}:host([fixed]) .tooltip .tooltiptext{position:fixed;height:0}:host([fixed]) .tooltip .tooltiptext__content{transform:translateY(calc(-100% - 5px))}:host([fixed]) .tooltip .tooltiptext__content:after{content:\"\";width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:5px solid var(--gray-07);position:absolute;right:0;transform:translateX(-3px) rotate(180deg);bottom:-3px}:host([fixed]) .tooltip .tooltiptext:after{display:none}";
52
+ const tooltipCss = "/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0;}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px;}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--ui-animaton-speed:0.2s}.gxg-title-01{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em}.gxg-title-01--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-on-primary)}.gxg-title-02{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em}.gxg-title-02--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em;color:var(--color-on-primary)}.gxg-title-03{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em}.gxg-title-03--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em;color:var(--color-on-primary)}.gxg-title-04{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em}.gxg-title-04--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-on-primary)}.gxg-title-05{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;line-height:1.556em}.gxg-title-05--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;line-height:1.556em;color:var(--color-on-primary)}.gxg-text{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em}.gxg-text--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-on-primary)}.gxg-text--gray{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--gray-05)}.gxg-quote{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;font-style:italic}.gxg-quote--negative{color:var(--color-on-primary)}.gxg-link{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-primary);text-decoration:underline;cursor:pointer;display:inline-block}.gxg-link:hover{color:var(--color-primary-hover)}.gxg-link:active{color:var(--color-primary-active)}.gxg-link-gray{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-primary);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--gray-04)}.gxg-link-gray:hover{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-primary);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--gray-04);color:var(--gray-06)}.gxg-alert-error{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-error-dark);display:inline-block}.gxg-alert-warning{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-warning-dark);display:inline-block}.gxg-alert-success{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-success-dark);display:inline-block}.gxg-tab--disabled{color:var(--color-primary-disabled);pointer-events:none}.gxg-tab--disabled[disabled]{color:var(--color-primary-disabled);pointer-events:none}.gxg-label{font-family:var(--font-family-primary) !important;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm) !important;letter-spacing:var(--letter-spacing-xs);color:var(--color-primary-enabled);text-align:center;line-height:1.455em}.gxg-label:hover{color:var(--color-primary-hover)}.gxg-label:focus{color:var(--color-primary-active)}.gxg-label:active{color:var(--color-primary-active)}.gxg-label[disabled]{color:var(--color-primary-disabled)}.gxg-label--negative{color:var(--color-on-primary)}.gxg-label--negative[disabled]{color:var(--color-on-disabled)}.gxg-button-styles{font-family:var(--font-family-primary) !important;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm) !important;letter-spacing:var(--letter-spacing-xs);color:var(--color-primary-enabled);text-align:center;line-height:1.455em}.gxg-scrollbar{}.gxg-scrollbar::-webkit-scrollbar{width:6px;height:6px}.gxg-scrollbar::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}.gxg-scrollbar::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}.gxg-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}:host{display:inline-flex}:host .tooltip{cursor:pointer;position:relative;border-bottom:1px dotted var(--color-on-secondary);text-decoration:none}:host .tooltip .tooltiptext{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;font-size:var(--font-size-xs);visibility:hidden;opacity:0;transition-property:opacity;transition-duration:var(--ui-animaton-speed);transition-timing-function:ease;position:absolute;z-index:1;width:250px;text-align:center}:host .tooltip .tooltiptext__content{width:fit-content;background-color:var(--gray-07);padding:var(--spacing-comp-01) var(--spacing-comp-02);border-radius:var(--border-width-md);color:var(--color-on-primary);display:inline-block;text-align:left}:host .tooltip .tooltiptext:after{content:\"\";width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:5px solid var(--gray-07);position:absolute}:host .tooltip:hover .tooltiptext{visibility:visible;opacity:1}:host([position=top]) .tooltip .tooltiptext{bottom:27px;left:50%;transform:translateX(-50%)}:host([position=top]) .tooltip .tooltiptext:after{left:50%;transform:translateX(-50%) rotate(180deg);bottom:-4px}:host([position=right]) .tooltip .tooltiptext{top:0;left:111%;text-align:left}:host([position=right]) .tooltip .tooltiptext:after{left:-7px;transform:rotate(-90deg);top:8px}:host([position=bottom]) .tooltip .tooltiptext{top:25px;left:50%;transform:translateX(-50%)}:host([position=bottom]) .tooltip .tooltiptext:after{left:50%;transform:translateX(-50%);top:-4px}:host([position=left]) .tooltip .tooltiptext{text-align:right;top:0;right:105%}:host([position=left]) .tooltip .tooltiptext:after{right:-7px;transform:rotate(90deg);top:8px}:host([width-auto]) .tooltip .tooltiptext{width:auto;white-space:nowrap}:host([no-border]) .tooltip{border-bottom:none}:host([align-end]) .tooltiptext{transform:none !important;inset-inline-end:0;left:auto !important;max-width:180px;width:max-content}:host([align-end]) .tooltiptext:after{inset-inline-end:-1px;left:auto !important}:host([flex]){display:flex}:host([flex]) .tooltip{display:flex}:host([fixed]){border:1px solid black}:host([fixed]) .tooltip:hover .tooltiptext{visibility:hidden;opacity:0}:host([fixed]) .tooltip .tooltiptext{position:fixed;height:0}:host([fixed]) .tooltip .tooltiptext__content{transform:translateY(calc(-100% - 5px))}:host([fixed]) .tooltip .tooltiptext__content:after{content:\"\";width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:5px solid var(--gray-07);position:absolute;right:0;transform:translateX(-3px) rotate(180deg);bottom:-3px}:host([fixed]) .tooltip .tooltiptext:after{display:none}:host([fixed]) .tooltip--visible .tooltiptext{visibility:visible !important;opacity:1 !important}";
53
53
 
54
54
  const GxgTooltip = class {
55
55
  constructor(hostRef) {
@@ -74,21 +74,34 @@ const GxgTooltip = class {
74
74
  * This presence of this property removes the border under the text
75
75
  */
76
76
  this.noBorder = false;
77
+ /**
78
+ * Used to show/hide the tooltip (only used if 'fixed' is true) otherwise, it will show on hover.
79
+ */
80
+ this.visible = false;
77
81
  this.mouseEnterHandler = () => {
78
82
  const tooltipBC = this.el.getBoundingClientRect();
79
83
  const top = tooltipBC.top;
80
84
  const rightPosition = window.innerWidth - tooltipBC.right;
81
85
  this.tooltipTextEl.style.top = `${top}px`;
82
86
  this.tooltipTextEl.style.right = `${rightPosition}px`;
87
+ this.visible = true;
88
+ };
89
+ this.mouseLeaveHandler = () => {
90
+ this.visible = false;
91
+ };
92
+ this.documentScrollHandler = () => {
93
+ this.visible = false;
83
94
  };
84
95
  }
85
96
  componentWillLoad() {
86
97
  if (this.fixed) {
87
98
  this.el.addEventListener("mouseenter", this.mouseEnterHandler);
99
+ this.el.addEventListener("mouseleave", this.mouseLeaveHandler);
100
+ document.addEventListener("scroll", this.documentScrollHandler);
88
101
  }
89
102
  }
90
103
  render() {
91
- return (h(Host, { role: "tooltip" }, h("span", { class: "tooltip" }, h("slot", null), h("div", { class: "tooltiptext", ref: (el) => (this.tooltipTextEl = el) }, h("span", { class: "tooltiptext__content" }, this.label)))));
104
+ return (h(Host, { role: "tooltip" }, h("span", { class: { tooltip: true, "tooltip--visible": this.visible } }, h("slot", null), h("div", { class: "tooltiptext", ref: (el) => (this.tooltipTextEl = el) }, h("span", { class: "tooltiptext__content" }, this.label)))));
92
105
  }
93
106
  get el() { return getElement(this); }
94
107
  };
@@ -1,20 +1,27 @@
1
- import { r as registerInstance, h, f as forceUpdate, H as Host } from './index-0da01575.js';
1
+ import { r as registerInstance, c as createEvent, h, f as forceUpdate } from './index-0da01575.js';
2
2
 
3
- const treeViewCss = ":root{--ui-animaton-speed:0.2s}.gxg-title-01{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em}.gxg-title-01--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-on-primary)}.gxg-title-02{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em}.gxg-title-02--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em;color:var(--color-on-primary)}.gxg-title-03{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em}.gxg-title-03--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em;color:var(--color-on-primary)}.gxg-title-04{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em}.gxg-title-04--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-on-primary)}.gxg-title-05{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;line-height:1.556em}.gxg-title-05--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;line-height:1.556em;color:var(--color-on-primary)}.gxg-text{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em}.gxg-text--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-on-primary)}.gxg-text--gray{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--gray-05)}.gxg-quote{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;font-style:italic}.gxg-quote--negative{color:var(--color-on-primary)}.gxg-link{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-primary);text-decoration:underline;cursor:pointer;display:inline-block}.gxg-link:hover{color:var(--color-primary-hover)}.gxg-link:active{color:var(--color-primary-active)}.gxg-link-gray{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-primary);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--gray-04)}.gxg-link-gray:hover{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-primary);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--gray-04);color:var(--gray-06)}.gxg-alert-error{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-error-dark);display:inline-block}.gxg-alert-warning{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-warning-dark);display:inline-block}.gxg-alert-success{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-success-dark);display:inline-block}.gxg-tab--disabled{color:var(--color-primary-disabled);pointer-events:none}.gxg-tab--disabled[disabled]{color:var(--color-primary-disabled);pointer-events:none}.gxg-label{font-family:var(--font-family-primary) !important;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm) !important;letter-spacing:var(--letter-spacing-xs);color:var(--color-primary-enabled);text-align:center;line-height:1.455em}.gxg-label:hover{color:var(--color-primary-hover)}.gxg-label:focus{color:var(--color-primary-active)}.gxg-label:active{color:var(--color-primary-active)}.gxg-label[disabled]{color:var(--color-primary-disabled)}.gxg-label--negative{color:var(--color-on-primary)}.gxg-label--negative[disabled]{color:var(--color-on-disabled)}.gxg-button-styles{font-family:var(--font-family-primary) !important;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm) !important;letter-spacing:var(--letter-spacing-xs);color:var(--color-primary-enabled);text-align:center;line-height:1.455em}.gxg-scrollbar{}.gxg-scrollbar::-webkit-scrollbar{width:6px;height:6px}.gxg-scrollbar::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}.gxg-scrollbar::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}.gxg-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}gxg-tree-view{display:grid;grid-template-columns:1fr;grid-template-rows:1fr;height:100%;font-family:var(--font-family-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-regular);color:var(--color-on-background)}.tree-buttons{display:grid;grid-auto-rows:max-content;row-gap:8px}ch-tree-x-list-item{--expandable-button-width:var(--spacing-comp-04)}ch-tree-x-list-item::part(header){padding-inline-end:calc(var(--spacing-comp-02) * 0.65);border:1px solid transparent;height:var(--spacing-comp-05)}ch-tree-x-list-item::part(header):focus{outline-style:solid;outline-color:var(--gxg-border-color--focused);outline-width:var(--border-width-md);outline-offset:-2px}ch-tree-x-list-item[selected]::part(header){background-color:var(--gxg-background-color--selected);outline-style:solid;outline-color:var(--gxg-border-color--focused);outline-width:var(--border-width-md);outline-offset:-2px}ch-tree-x-list-item[selected]::part(header):hover{background-color:var(--gxg-background-color--selected-hover)}ch-tree-x-list-item::part(expandable-button){background-color:var(--color-hover);margin-inline-start:var(--spacing-comp-01)}ch-tree-x-list-item::part(expandable-button)::before{background-color:var(--gray-04);-webkit-mask-position:center;-webkit-mask-repeat:no-repeat}ch-tree-x-list-item::part(expandable-button):hover{background-color:var(--color-background)}ch-tree-x-list-item::part(expandable-button):focus{outline-style:solid;outline-color:var(--gxg-border-color--focused);outline-width:var(--border-width-md);outline-offset:0}ch-tree-x-list-item::part(action){text-transform:capitalize}ch-tree-x-list-item::part(left-img){width:var(--spacing-comp-04);height:var(--spacing-comp-04)}ch-tree-x-list-item::part(downloading){width:var(--spacing-comp-03);height:var(--spacing-comp-03);border:var(--border-width-md) solid var(--color-primary-enabled);border-inline-start-color:transparent}.ch-tree-x-drag-info{padding-inline:6px;padding-block:2px;background-color:#cfdee6;border:1px solid #0266a0;border-radius:10px;font-size:8px}";
3
+ const resolveImgPath = (img) => `/build/icon-assets/${img}.svg`;
4
+
5
+ const treeViewCss = ":root{--ui-animaton-speed:0.2s}.gxg-title-01{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em}.gxg-title-01--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-on-primary)}.gxg-title-02{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em}.gxg-title-02--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em;color:var(--color-on-primary)}.gxg-title-03{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em}.gxg-title-03--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em;color:var(--color-on-primary)}.gxg-title-04{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em}.gxg-title-04--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-on-primary)}.gxg-title-05{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;line-height:1.556em}.gxg-title-05--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;line-height:1.556em;color:var(--color-on-primary)}.gxg-text{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em}.gxg-text--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-on-primary)}.gxg-text--gray{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--gray-05)}.gxg-quote{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;font-style:italic}.gxg-quote--negative{color:var(--color-on-primary)}.gxg-link{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-primary);text-decoration:underline;cursor:pointer;display:inline-block}.gxg-link:hover{color:var(--color-primary-hover)}.gxg-link:active{color:var(--color-primary-active)}.gxg-link-gray{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-primary);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--gray-04)}.gxg-link-gray:hover{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-primary);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--gray-04);color:var(--gray-06)}.gxg-alert-error{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-error-dark);display:inline-block}.gxg-alert-warning{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-warning-dark);display:inline-block}.gxg-alert-success{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-success-dark);display:inline-block}.gxg-tab--disabled{color:var(--color-primary-disabled);pointer-events:none}.gxg-tab--disabled[disabled]{color:var(--color-primary-disabled);pointer-events:none}.gxg-label{font-family:var(--font-family-primary) !important;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm) !important;letter-spacing:var(--letter-spacing-xs);color:var(--color-primary-enabled);text-align:center;line-height:1.455em}.gxg-label:hover{color:var(--color-primary-hover)}.gxg-label:focus{color:var(--color-primary-active)}.gxg-label:active{color:var(--color-primary-active)}.gxg-label[disabled]{color:var(--color-primary-disabled)}.gxg-label--negative{color:var(--color-on-primary)}.gxg-label--negative[disabled]{color:var(--color-on-disabled)}.gxg-button-styles{font-family:var(--font-family-primary) !important;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm) !important;letter-spacing:var(--letter-spacing-xs);color:var(--color-primary-enabled);text-align:center;line-height:1.455em}.gxg-scrollbar{}.gxg-scrollbar::-webkit-scrollbar{width:6px;height:6px}.gxg-scrollbar::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}.gxg-scrollbar::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}.gxg-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}gxg-tree-view{font-family:var(--font-family-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-regular);color:var(--color-on-background);display:contents}ch-tree-x{}ch-tree-x::-webkit-scrollbar{width:6px;height:6px}ch-tree-x::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}ch-tree-x::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}ch-tree-x::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}ch-tree-x>div.ch-tree-x-container{position:relative;width:100%}ch-tree-x-list-item{--expandable-button-width:var(--spacing-comp-04)}ch-tree-x-list-item.tree-view-item--folder::part(action)::before,ch-tree-x-list-item.tree-view-item--module::part(action)::before{grid-area:left-img;content:\"\";width:14px;height:14px;margin-inline-end:4px;background-repeat:no-repeat}ch-tree-x-list-item.tree-view-item--folder::part(action)::before{background-image:url(\"/build/icon-assets/objects/folder.svg\")}ch-tree-x-list-item.tree-view-item--folder::part(action expanded)::before{background-image:url(\"/build/icon-assets/objects/folder-open.svg\")}ch-tree-x-list-item.tree-view-item--module::part(action)::before{background-image:url(\"/build/icon-assets/objects/module.svg\")}ch-tree-x-list-item.tree-view-item--module::part(action expanded)::before{background-image:url(\"/build/icon-assets/objects/module-open.svg\")}ch-tree-x-list-item .tree-view-item--pending-commit::part(action)::before{content:\"\";position:relative;z-index:1;grid-area:left-img;width:5px;height:5px;align-self:end;margin-block-end:3px;margin-inline-start:1px;background-color:#2c3b92;border-radius:50%}ch-tree-x-list-item::part(header){padding-inline-end:calc(var(--spacing-comp-02) * 0.65);border:1px solid transparent;height:var(--spacing-comp-05)}ch-tree-x-list-item::part(header):focus{outline-style:solid;outline-color:var(--gxg-border-color--focused);outline-width:var(--border-width-md);outline-offset:-2px}ch-tree-x-list-item[selected]::part(header){background-color:var(--gxg-background-color--selected)}ch-tree-x-list-item[selected]::part(header):hover{background-color:var(--gxg-background-color--selected-hover)}ch-tree-x-list-item::part(expandable-button){background-color:var(--color-hover);margin-inline-start:var(--spacing-comp-01)}ch-tree-x-list-item::part(expandable-button)::before{background-color:var(--gray-04);-webkit-mask-position:center;-webkit-mask-repeat:no-repeat}ch-tree-x-list-item::part(expandable-button):hover{background-color:var(--color-background)}ch-tree-x-list-item::part(expandable-button):focus{outline-style:solid;outline-color:var(--gxg-border-color--focused);outline-width:var(--border-width-md);outline-offset:0}ch-tree-x-list-item::part(action){text-transform:capitalize}ch-tree-x-list-item::part(left-img){width:var(--spacing-comp-04);height:var(--spacing-comp-04)}ch-tree-x-list-item::part(downloading){width:var(--spacing-comp-03);height:var(--spacing-comp-03);border:var(--border-width-md) solid var(--color-primary-enabled);border-inline-start-color:transparent}.ch-tree-x-drag-info{padding-inline:6px;padding-block:2px;background-color:#cfdee6;border:1px solid #0266a0;border-radius:10px;font-size:8px}";
4
6
 
5
7
  const DEFAULT_DRAG_DISABLED_VALUE = false;
6
8
  const DEFAULT_DROP_DISABLED_VALUE = false;
9
+ const DEFAULT_CLASS_VALUE = "tree-view-item";
10
+ const DEFAULT_EDITABLE_ITEMS_VALUE = true;
7
11
  const DEFAULT_EXPANDED_VALUE = false;
8
12
  const DEFAULT_INDETERMINATE_VALUE = false;
9
13
  const DEFAULT_LAZY_VALUE = false;
14
+ const DEFAULT_ORDER_VALUE = 0;
10
15
  const DEFAULT_SELECTED_VALUE = false;
11
16
  const GxgTreeView = class {
12
17
  constructor(hostRef) {
13
18
  registerInstance(this, hostRef);
19
+ this.itemContextmenu = createEvent(this, "itemContextmenu", 7);
20
+ this.itemOpenReference = createEvent(this, "itemOpenReference", 7);
21
+ this.selectedItemsChange = createEvent(this, "selectedItemsChange", 7);
14
22
  // UI Models
15
23
  this.flattenedTreeModel = new Map();
16
24
  this.selectedItems = new Set();
17
- this.flattenedLazyTreeModel = new Map();
18
25
  /**
19
26
  * This property lets you specify if the tree is waiting to process the drop
20
27
  * of items.
@@ -22,12 +29,12 @@ const GxgTreeView = class {
22
29
  this.waitDropProcessing = false;
23
30
  /**
24
31
  * This attribute lets you specify if the drag operation is disabled in all
25
- * items by default. If `true`, the control can't be dragged.
32
+ * items by default. If `true`, the items can't be dragged.
26
33
  */
27
34
  this.dragDisabled = DEFAULT_DRAG_DISABLED_VALUE;
28
35
  /**
29
36
  * This attribute lets you specify if the drop operation is disabled in all
30
- * items by default. If `true`, the control won't accept any drops.
37
+ * items by default. If `true`, the items won't accept any drops.
31
38
  */
32
39
  this.dropDisabled = DEFAULT_DROP_DISABLED_VALUE;
33
40
  /**
@@ -38,6 +45,11 @@ const GxgTreeView = class {
38
45
  * Set this attribute if you want to allow multi selection of the items.
39
46
  */
40
47
  this.multiSelection = false;
48
+ /**
49
+ * This attribute lets you specify if the edit operation is enabled in all
50
+ * items by default. If `true`, the items can edit its caption in place.
51
+ */
52
+ this.editableItems = DEFAULT_EDITABLE_ITEMS_VALUE;
41
53
  /**
42
54
  * `true` to display the relation between tree items and tree lists using
43
55
  * lines.
@@ -57,6 +69,7 @@ const GxgTreeView = class {
57
69
  });
58
70
  };
59
71
  this.handleSelectedItemsChange = (event) => {
72
+ event.stopPropagation();
60
73
  const itemsToProcess = new Map(event.detail);
61
74
  // Remove no longer selected items
62
75
  this.selectedItems.forEach((selectedItemId) => {
@@ -80,12 +93,17 @@ const GxgTreeView = class {
80
93
  newSelectedItem.expanded = newSelectedItemInfo.expanded;
81
94
  this.selectedItems.add(itemId);
82
95
  });
96
+ this.selectedItemsChange.emit(event.detail);
83
97
  };
84
98
  this.handleExpandedItemChange = (event) => {
85
99
  const detail = event.detail;
86
100
  const itemInfo = this.flattenedTreeModel.get(detail.id).item;
87
101
  itemInfo.expanded = detail.expanded;
88
102
  };
103
+ this.handleItemContextmenu = (event) => {
104
+ event.stopPropagation();
105
+ this.itemContextmenu.emit(event.detail);
106
+ };
89
107
  this.handleItemsDropped = (event) => {
90
108
  if (!this.dropItemsCallback) {
91
109
  return;
@@ -150,10 +168,10 @@ const GxgTreeView = class {
150
168
  itemUIModelExtended.parentItem = newParentUIModel;
151
169
  };
152
170
  this.renderSubModel = (treeSubModel, lastItem, level) => {
153
- var _a, _b;
154
- return (h("ch-tree-x-list-item", { id: treeSubModel.id, caption: treeSubModel.caption, checkbox: treeSubModel.checkbox, checked: treeSubModel.checked, class: treeSubModel.class, disabled: treeSubModel.disabled, downloading: treeSubModel.downloading, dragDisabled: (_a = treeSubModel.dragDisabled) !== null && _a !== void 0 ? _a : this.dragDisabled, dropDisabled: (_b = treeSubModel.dropDisabled) !== null && _b !== void 0 ? _b : this.dropDisabled, expanded: treeSubModel.expanded, indeterminate: treeSubModel.indeterminate, lastItem: lastItem, lazyLoad: treeSubModel.lazy, leaf: treeSubModel.leaf, leftImgSrc: treeSubModel.leftImgSrc, level: level, metadata: treeSubModel.metadata, rightImgSrc: treeSubModel.rightImgSrc, selected: treeSubModel.selected, showExpandableButton: treeSubModel.showExpandableButton, showLines: this.showLines, toggleCheckboxes: treeSubModel.toggleCheckboxes }, !treeSubModel.leaf &&
171
+ var _a, _b, _c;
172
+ return (h("ch-tree-x-list-item", { id: treeSubModel.id, caption: treeSubModel.caption, checkbox: treeSubModel.checkbox, checked: treeSubModel.checked, class: treeSubModel.class, disabled: treeSubModel.disabled, downloading: treeSubModel.downloading, dragDisabled: (_a = treeSubModel.dragDisabled) !== null && _a !== void 0 ? _a : this.dragDisabled, dropDisabled: (_b = treeSubModel.dropDisabled) !== null && _b !== void 0 ? _b : this.dropDisabled, editable: (_c = treeSubModel.editable) !== null && _c !== void 0 ? _c : this.editableItems, expanded: treeSubModel.expanded, indeterminate: treeSubModel.indeterminate, lastItem: lastItem, lazyLoad: treeSubModel.lazy, leaf: treeSubModel.leaf, leftImgSrc: treeSubModel.leftImgSrc, level: level, metadata: treeSubModel.metadata, rightImgSrc: treeSubModel.rightImgSrc, selected: treeSubModel.selected, showExpandableButton: treeSubModel.showExpandableButton, showLines: this.showLines, toggleCheckboxes: treeSubModel.toggleCheckboxes }, !treeSubModel.leaf &&
155
173
  treeSubModel.items != null &&
156
- treeSubModel.items.length !== 0 && (h("ch-tree-x-list", { slot: "tree" }, treeSubModel.items.map((subModel, index) => this.renderSubModel(subModel, this.showLines && index === treeSubModel.items.length - 1, level + 1))))));
174
+ treeSubModel.items.map((subModel, index) => this.renderSubModel(subModel, this.showLines && index === treeSubModel.items.length - 1, level + 1))));
157
175
  };
158
176
  this.flattenItemUIModel = (parentModel) => (item) => {
159
177
  this.flattenedTreeModel.set(item.id, {
@@ -162,6 +180,7 @@ const GxgTreeView = class {
162
180
  });
163
181
  // Make sure the properties are with their default values to avoid issues
164
182
  // when reusing DOM nodes
183
+ item.class = item.class == null ? DEFAULT_CLASS_VALUE : item.class;
165
184
  item.expanded =
166
185
  item.expanded == null ? DEFAULT_EXPANDED_VALUE : item.expanded;
167
186
  item.indeterminate =
@@ -169,10 +188,11 @@ const GxgTreeView = class {
169
188
  ? DEFAULT_INDETERMINATE_VALUE
170
189
  : item.indeterminate;
171
190
  item.lazy = item.lazy == null ? DEFAULT_LAZY_VALUE : item.lazy;
191
+ item.order = item.order == null ? DEFAULT_ORDER_VALUE : item.order;
172
192
  item.selected =
173
193
  item.selected == null ? DEFAULT_SELECTED_VALUE : item.selected;
174
- if (item.lazy) {
175
- this.flattenedLazyTreeModel.set(item.id, item);
194
+ if (item.leftImgSrc) {
195
+ item.leftImgSrc = resolveImgPath(item.leftImgSrc);
176
196
  }
177
197
  if (item.selected) {
178
198
  this.selectedItems.add(item.id);
@@ -188,9 +208,8 @@ const GxgTreeView = class {
188
208
  * lazy state, updates the item's UI Model.
189
209
  */
190
210
  async loadLazyContent(itemId, items, downloading = false, lazy = false) {
191
- const itemToLazyLoadContent = this.flattenedLazyTreeModel.get(itemId);
211
+ const itemToLazyLoadContent = this.flattenedTreeModel.get(itemId).item;
192
212
  // Establish that the content was lazy loaded
193
- this.flattenedLazyTreeModel.delete(itemId);
194
213
  itemToLazyLoadContent.downloading = downloading;
195
214
  itemToLazyLoadContent.lazy = lazy;
196
215
  // Check if there is items to add
@@ -341,11 +360,15 @@ const GxgTreeView = class {
341
360
  }
342
361
  });
343
362
  }
363
+ handleOpenReference(event) {
364
+ event.stopPropagation();
365
+ this.itemOpenReference.emit(event.detail);
366
+ }
344
367
  flattenSubModel(model) {
345
368
  const items = model.items;
346
369
  if (!items) {
347
370
  // Make sure that subtrees don't have an undefined array
348
- if (model.leaf === false) {
371
+ if (model.leaf !== true) {
349
372
  model.items = [];
350
373
  }
351
374
  return;
@@ -361,14 +384,13 @@ const GxgTreeView = class {
361
384
  }
362
385
  flattenModel() {
363
386
  this.flattenedTreeModel.clear();
364
- this.flattenedLazyTreeModel.clear();
365
387
  this.flattenSubModel({ id: null, caption: null, items: this.treeModel });
366
388
  }
367
389
  componentWillLoad() {
368
390
  this.flattenModel();
369
391
  }
370
392
  render() {
371
- return (h(Host, null, h("ch-tree-x", { class: this.cssClass || null, multiSelection: this.multiSelection, waitDropProcessing: this.waitDropProcessing, onDroppableZoneEnter: this.handleDroppableZoneEnter, onExpandedItemChange: this.handleExpandedItemChange, onItemsDropped: this.handleItemsDropped, onSelectedItemsChange: this.handleSelectedItemsChange, ref: (el) => (this.treeRef = el) }, this.treeModel.map((subModel, index) => this.renderSubModel(subModel, this.showLines && index === this.treeModel.length - 1, 0)))));
393
+ return (h("ch-tree-x", { class: this.cssClass || null, multiSelection: this.multiSelection, waitDropProcessing: this.waitDropProcessing, onDroppableZoneEnter: this.handleDroppableZoneEnter, onExpandedItemChange: this.handleExpandedItemChange, onItemContextmenu: this.handleItemContextmenu, onItemsDropped: this.handleItemsDropped, onSelectedItemsChange: this.handleSelectedItemsChange, ref: (el) => (this.treeRef = el) }, this.treeModel.map((subModel, index) => this.renderSubModel(subModel, this.showLines && index === this.treeModel.length - 1, 0))));
372
394
  }
373
395
  static get watchers() { return {
374
396
  "treeModel": ["handleTreeModelChange"]