@genexus/genexus-ide-ui 0.0.13 → 0.0.14

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 (77) hide show
  1. package/dist/cjs/ch-suggest_5.cjs.entry.js +388 -0
  2. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  3. package/dist/cjs/gx-ide-container_2.cjs.entry.js +168 -0
  4. package/dist/cjs/gx-ide-references.cjs.entry.js +299 -0
  5. package/dist/cjs/gx-ide-test.cjs.entry.js +2 -25
  6. package/dist/cjs/{gx-ide-container_10.cjs.entry.js → gxg-combo-box_8.cjs.entry.js} +0 -162
  7. package/dist/cjs/{gxg-tree-item.cjs.entry.js → gxg-tree_2.cjs.entry.js} +167 -0
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/cjs/render-tree-25d5b8a1.js +29 -0
  10. package/dist/collection/collection-manifest.json +1 -0
  11. package/dist/collection/common/render-suggest.js +18 -0
  12. package/dist/collection/components/references/gx-ide-assets/references/langs/references.lang.en.json +15 -0
  13. package/dist/collection/components/references/gx-ide-assets/references/langs/references.lang.ja.json +3 -0
  14. package/dist/collection/components/references/gx-ide-assets/references/langs/references.lang.zh.json +3 -0
  15. package/dist/collection/components/references/helpers.js +76 -0
  16. package/dist/collection/components/references/references.css +194 -0
  17. package/dist/collection/components/references/references.js +377 -0
  18. package/dist/collection/index.js +1 -0
  19. package/dist/components/ch-suggest-list-item.js +1 -58
  20. package/dist/{esm/ch-suggest-list-item.entry.js → components/ch-suggest-list-item2.js} +27 -8
  21. package/dist/components/ch-suggest-list.js +1 -39
  22. package/dist/components/ch-suggest-list2.js +41 -0
  23. package/dist/components/ch-suggest.js +1 -259
  24. package/dist/{esm/ch-suggest.entry.js → components/ch-suggest2.js} +47 -8
  25. package/dist/components/gx-ide-references.d.ts +11 -0
  26. package/dist/components/gx-ide-references.js +433 -0
  27. package/dist/components/gx-ide-test.js +2 -25
  28. package/dist/components/gxg-suggest.js +1 -55
  29. package/dist/components/gxg-text.js +1 -88
  30. package/dist/components/index.d.ts +1 -0
  31. package/dist/components/index.js +1 -0
  32. package/dist/components/render-tree.js +27 -0
  33. package/dist/{esm/gxg-suggest.entry.js → components/suggest.js} +29 -10
  34. package/dist/{esm/gxg-text.entry.js → components/text.js} +30 -8
  35. package/dist/esm/ch-suggest_5.entry.js +380 -0
  36. package/dist/esm/genexus-ide-ui.js +1 -1
  37. package/dist/esm/gx-ide-container_2.entry.js +163 -0
  38. package/dist/esm/gx-ide-references.entry.js +295 -0
  39. package/dist/esm/gx-ide-test.entry.js +2 -25
  40. package/dist/esm/{gx-ide-container_10.entry.js → gxg-combo-box_8.entry.js} +2 -162
  41. package/dist/esm/{gxg-tree-item.entry.js → gxg-tree_2.entry.js} +168 -2
  42. package/dist/esm/loader.js +1 -1
  43. package/dist/esm/render-tree-fc8636a3.js +27 -0
  44. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  45. package/dist/genexus-ide-ui/gx-ide-assets/references/langs/references.lang.en.json +15 -0
  46. package/dist/genexus-ide-ui/gx-ide-assets/references/langs/references.lang.ja.json +3 -0
  47. package/dist/genexus-ide-ui/gx-ide-assets/references/langs/references.lang.zh.json +3 -0
  48. package/dist/genexus-ide-ui/p-1e412d88.entry.js +1 -0
  49. package/dist/genexus-ide-ui/p-62814082.entry.js +1 -0
  50. package/dist/genexus-ide-ui/p-8cdad9e1.entry.js +1 -0
  51. package/dist/genexus-ide-ui/p-92b75873.entry.js +1 -0
  52. package/dist/genexus-ide-ui/p-a5fee36d.entry.js +1 -0
  53. package/dist/genexus-ide-ui/p-abee8c7b.js +1 -0
  54. package/dist/genexus-ide-ui/p-be9406e7.entry.js +1 -0
  55. package/dist/types/common/render-suggest.d.ts +2 -0
  56. package/dist/types/components/references/helpers.d.ts +17 -0
  57. package/dist/types/components/references/references.d.ts +125 -0
  58. package/dist/types/components.d.ts +78 -0
  59. package/dist/types/index.d.ts +1 -0
  60. package/package.json +1 -1
  61. package/dist/cjs/ch-suggest-list-item.cjs.entry.js +0 -45
  62. package/dist/cjs/ch-suggest-list.cjs.entry.js +0 -28
  63. package/dist/cjs/ch-suggest.cjs.entry.js +0 -226
  64. package/dist/cjs/gxg-suggest.cjs.entry.js +0 -42
  65. package/dist/cjs/gxg-text.cjs.entry.js +0 -72
  66. package/dist/cjs/gxg-tree.cjs.entry.js +0 -173
  67. package/dist/esm/ch-suggest-list.entry.js +0 -24
  68. package/dist/esm/gxg-tree.entry.js +0 -169
  69. package/dist/genexus-ide-ui/p-0a954e0f.entry.js +0 -1
  70. package/dist/genexus-ide-ui/p-20a45778.entry.js +0 -1
  71. package/dist/genexus-ide-ui/p-23d4b295.entry.js +0 -1
  72. package/dist/genexus-ide-ui/p-5463844e.entry.js +0 -1
  73. package/dist/genexus-ide-ui/p-5faaf0e5.entry.js +0 -1
  74. package/dist/genexus-ide-ui/p-7a5e0988.entry.js +0 -1
  75. package/dist/genexus-ide-ui/p-a985b448.entry.js +0 -1
  76. package/dist/genexus-ide-ui/p-ad9fe469.entry.js +0 -1
  77. package/dist/genexus-ide-ui/p-b3727324.entry.js +0 -1
@@ -0,0 +1,299 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-93a6a7e0.js');
6
+ const locale = require('./locale-c8445ea4.js');
7
+ const renderTree = require('./render-tree-25d5b8a1.js');
8
+
9
+ /* eslint-disable @typescript-eslint/no-use-before-define */
10
+ const renderSuggestLists = (suggestData) => {
11
+ if (suggestData === null || suggestData === void 0 ? void 0 : suggestData.suggestLists.length) {
12
+ return suggestData.suggestLists.map((list) => {
13
+ return (index.h("ch-suggest-list", { label: list.label }, list.items.map((item) => {
14
+ return renderSuggestListsItem(item);
15
+ })));
16
+ });
17
+ }
18
+ return [];
19
+ };
20
+ const renderSuggestListsItem = (suggestItem) => {
21
+ return (index.h("ch-suggest-list-item", { description: suggestItem.description, value: suggestItem.value }, [suggestItem.label, suggestItem.icon && renderIcon(suggestItem.icon)]));
22
+ };
23
+ const renderIcon = (iconName) => {
24
+ return index.h("gxg-icon", { color: "auto", type: iconName, slot: "icon" });
25
+ };
26
+
27
+ /**
28
+ * @description This function converts SelectorCategoryData[] SuggestData
29
+ */
30
+ const convertObjectDataToSuggestData = (selectorCategoriesData) => {
31
+ const suggestData = {
32
+ suggestItems: null,
33
+ suggestLists: []
34
+ };
35
+ if (selectorCategoriesData.length) {
36
+ selectorCategoriesData.forEach(selectorCategory => {
37
+ const suggestList = {
38
+ label: selectorCategory.name,
39
+ items: []
40
+ };
41
+ selectorCategory.items.forEach((objectData) => {
42
+ const suggestItem = {
43
+ value: objectData.id,
44
+ label: objectData.name,
45
+ description: objectData.description,
46
+ icon: objectData.icon
47
+ };
48
+ suggestList.items.push(suggestItem);
49
+ });
50
+ suggestData.suggestLists.push(suggestList);
51
+ });
52
+ }
53
+ return suggestData;
54
+ };
55
+ /**
56
+ * @description Keeps an updated state of the last suggested categories objects passed by the host.
57
+ */
58
+ const updateSuggestedObjects = (selectorCategoryData) => {
59
+ const suggestedObjects = [];
60
+ if (selectorCategoryData === null || selectorCategoryData === void 0 ? void 0 : selectorCategoryData.length) {
61
+ selectorCategoryData.forEach(category => {
62
+ if (category.items) {
63
+ category.items.forEach(object => {
64
+ suggestedObjects.push({
65
+ id: object.id,
66
+ icon: object.icon,
67
+ name: object.name,
68
+ description: object.description
69
+ });
70
+ });
71
+ }
72
+ });
73
+ }
74
+ return suggestedObjects;
75
+ };
76
+ /**
77
+ * @description This function converts ReferenceData[] data to GxgTreeItemData[]
78
+ */
79
+ const convertReferenceDataToTreeData = (referencedBy) => {
80
+ const treeData = [];
81
+ if (!referencedBy) {
82
+ return treeData;
83
+ }
84
+ const convertItem = (item) => {
85
+ var _a;
86
+ const treeItem = {
87
+ description: item.description,
88
+ lazy: item.hasChildren,
89
+ icon: item.icon,
90
+ id: item.id,
91
+ label: item.name
92
+ };
93
+ if (((_a = item.items) === null || _a === void 0 ? void 0 : _a.length) > 0) {
94
+ treeItem.items = item.items.map(child => convertItem(child));
95
+ }
96
+ return treeItem;
97
+ };
98
+ referencedBy.forEach(item => {
99
+ treeData.push(convertItem(item));
100
+ });
101
+ return treeData;
102
+ };
103
+
104
+ const referencesCss = ".gxi-hidden{display:none !important}.gxi-full-height{height:100%}.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}: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-right: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-right: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}";
105
+
106
+ const GxIdeReferences = class {
107
+ constructor(hostRef) {
108
+ index.registerInstance(this, hostRef);
109
+ this.componentDidRenderEvent = index.createEvent(this, "componentDidRenderEvent", 7);
110
+ /**
111
+ * Keeps an array of the last suggested objects, returned by selectorSourceCallback
112
+ */
113
+ this.suggestedObjects = [];
114
+ /**
115
+ * The references messages max. width that appear if the tree is empty or could not be retrieved.
116
+ */
117
+ this.referencesMessagesMaxWidth = "200px";
118
+ // 7.LISTENERS //
119
+ // 8.PUBLIC METHODS API //
120
+ // 9.LOCAL METHODS //
121
+ /**
122
+ * @description It attaches on the ch-suggest, the "itemSelected" event triggered by the ch-suggest-list-item. This helps set the new 'selectedObject'.
123
+ */
124
+ this.attachSelectObjectListener = () => {
125
+ this.selectObjectSuggestEl.addEventListener("itemSelected", (e) => {
126
+ const itemValue = e.detail.value;
127
+ this.selectedObject = this.suggestedObjects.find(item => {
128
+ return item.id === itemValue;
129
+ });
130
+ });
131
+ };
132
+ /**
133
+ * @description It attaches several events on the 'referencedByEl' element, which is a tree.
134
+ */
135
+ this.attachReferencedByListeners = () => {
136
+ /* 'toggleIconClicked' Event: This events gets fired when the user clicks on the toggle icon, that opens/close a tree. Here we only use it to check if the item has lazy items to be loaded. */
137
+ this.referencedByEl.addEventListener("toggleIconClicked", async (e) => {
138
+ if (e.detail.lazy && e.detail.id) {
139
+ this.loadReferencesCallback(e.detail.id, false)
140
+ .then(result => {
141
+ this.referencedBy = result;
142
+ })
143
+ .catch(() => {
144
+ // to do
145
+ });
146
+ }
147
+ });
148
+ /* 'selectionChanged' Event: Fired when a new tree item was selected.*/
149
+ this.referencedByEl.addEventListener("selectionChanged", (e) => {
150
+ this.selectReferenceCallback(e.detail.id);
151
+ /* Returns void Promise*/
152
+ });
153
+ /* 'doubleClicked' Event: Fired when a tree item was double-clicked.*/
154
+ this.referencedByEl.addEventListener("doubleClicked", (e) => {
155
+ this.openObjectCallback(e.detail.id);
156
+ /* Returns void Promise*/
157
+ });
158
+ };
159
+ /**
160
+ * @description It attaches several events on the 'referencesToEl' element, which is a tree.
161
+ */
162
+ this.attachReferencesToListeners = () => {
163
+ /* 'toggleIconClicked' Event: (Read description on 'attachReferencedByListeners' as it does the same)*/
164
+ this.referencesToEl.addEventListener("toggleIconClicked", async (e) => {
165
+ if (e.detail.lazy && e.detail.id) {
166
+ this.loadReferencesCallback(e.detail.id, true)
167
+ .then(result => {
168
+ this.referencesTo = result;
169
+ })
170
+ .catch(() => {
171
+ // to do
172
+ });
173
+ }
174
+ });
175
+ /* 'selectionChanged' Event: Fired when a new tree item was selected.*/
176
+ this.referencesToEl.addEventListener("selectionChanged", (e) => {
177
+ this.selectReferenceCallback(e.detail.id);
178
+ /* Returns void Promise*/
179
+ });
180
+ /* 'doubleClicked' Event: Fired when a tree item was double-clicked.*/
181
+ this.referencesToEl.addEventListener("doubleClicked", (e) => {
182
+ this.openObjectCallback(e.detail.id);
183
+ /* Returns void Promise*/
184
+ });
185
+ };
186
+ /**
187
+ * @description This handler gets fired every time the value of the 'Select Object' ch-suggest changes. Then, it calls the 'updateSuggestedObjects' method, that keeps the state of the last suggested objects that were passed bu the host. Also, it shows the suggested objects on the ch-suggest box.
188
+ */
189
+ this.selectObjectValueChangedHandler = async (e) => {
190
+ const value = e.detail;
191
+ this.selectorSourceCallback(value)
192
+ .then(result => {
193
+ /* update selected objects state*/
194
+ this.suggestedObjects = updateSuggestedObjects(result);
195
+ /* show suggestions*/
196
+ this.objectsSuggestions = convertObjectDataToSuggestData(result);
197
+ })
198
+ .catch(() => {
199
+ // to do
200
+ });
201
+ };
202
+ this.openObjectCallbackHandler = async () => {
203
+ this.openObjectCallback(this.selectedObject.id);
204
+ /* Returns an empty Promise*/
205
+ };
206
+ /**
207
+ * @description handler that gets fired when the use clicks on the ch-suggest button (...)
208
+ */
209
+ this.openSelectorDialogCallbackHandler = async () => {
210
+ this.selectedObject = await this.openSelectorDialogCallback();
211
+ };
212
+ /**
213
+ * @description It evaluates if loadReferencesCallback should be called, depending wether there is or not an actual selected object.
214
+ */
215
+ this.evaluateInitialReferenceData = () => {
216
+ var _a;
217
+ const selectedObjectId = (_a = this.selectedObject) === null || _a === void 0 ? void 0 : _a.id;
218
+ selectedObjectId && this.loadReferencesHandler(selectedObjectId);
219
+ };
220
+ /**
221
+ * @description This method invokes 'loadReferencesCallback' callback for 'Is Referenced By' and 'Has References To' panels.
222
+ */
223
+ this.loadReferencesHandler = async (id) => {
224
+ /* Referenced By*/
225
+ if (this.loadReferencesCallback) {
226
+ this.loadReferencesCallback(id, false)
227
+ .then(result => {
228
+ this.referencedBy = result;
229
+ })
230
+ .catch(() => {
231
+ /* To do*/
232
+ });
233
+ }
234
+ /* References To*/
235
+ if (this.loadReferencesCallback) {
236
+ this.loadReferencesCallback(id, true)
237
+ .then(result => {
238
+ this.referencesTo = result;
239
+ })
240
+ .catch(() => {
241
+ /* To do*/
242
+ });
243
+ }
244
+ };
245
+ /**
246
+ * @description It hides/show the bar (The header bottom section).
247
+ */
248
+ this.hideBarButtonClickedHandler = () => {
249
+ this.barHidden = !this.barHidden;
250
+ };
251
+ this.barHidden = false;
252
+ this.objectsSuggestions = undefined;
253
+ this.referencedBy = undefined;
254
+ this.referencesTo = undefined;
255
+ this.hideTopBar = false;
256
+ this.selectedObject = undefined;
257
+ this.selectorSourceCallback = undefined;
258
+ this.loadReferencesCallback = undefined;
259
+ this.openObjectCallback = undefined;
260
+ this.openSelectorDialogCallback = undefined;
261
+ this.selectReferenceCallback = undefined;
262
+ }
263
+ selectedObjectHandler(newSelectedObject) {
264
+ this.loadReferencesHandler(newSelectedObject.id);
265
+ }
266
+ // 6.COMPONENT LIFECYCLE EVENTS //
267
+ async componentWillLoad() {
268
+ this._componentLocale = await locale.Locale.getComponentStrings(this.el);
269
+ this.evaluateInitialReferenceData();
270
+ }
271
+ componentDidLoad() {
272
+ this.attachSelectObjectListener();
273
+ this.attachReferencedByListeners();
274
+ this.attachReferencesToListeners();
275
+ }
276
+ componentDidRender() {
277
+ this.componentDidRenderEvent.emit(this._componentLocale.componentName);
278
+ }
279
+ // 10.RENDER() FUNCTION //
280
+ render() {
281
+ var _a, _b, _c, _d, _e, _f;
282
+ return (index.h(index.Host, { class: "gx-ide-component" }, !this.hideTopBar ? (index.h("gx-ide-top-bar", { topBarTitle: this._componentLocale.componentName })) : null, index.h("div", { class: "gx-ide-main-wrapper gx-ide-overflow" }, index.h("gx-ide-container", { displayBorderBottom: true }, index.h("header", { class: "header" }, index.h("div", { class: "header__top grid" }, index.h("gxg-button", { icon: "navigation/arrow-down", type: "secondary-icon-only", class: "hide-bar-button", onClick: this.hideBarButtonClickedHandler, part: "toggle-bar-button" }), index.h("gxg-label", { labelPosition: "start", class: "suggest-label", part: "select-object-label" }, this._componentLocale.header.selectObject), index.h("gxg-suggest", null, index.h("ch-suggest", { value: this.selectedObject.id, onValueChanged: this.selectObjectValueChangedHandler, ref: el => (this.selectObjectSuggestEl = el), part: "object-selector-suggest" }, renderSuggestLists(this.objectsSuggestions))), index.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" })), index.h("div", { class: {
283
+ "header__bottom": true,
284
+ "header__bottom--hidden": this.barHidden
285
+ } }, index.h("div", { class: "outer-wrapper" }, index.h("div", { class: "inner-wrapper" }, index.h("div", { class: "inner-wrapper__left" }, index.h("gxg-icon", { type: this.selectedObject.icon, color: "auto" }), index.h("gxg-text", { padding: "s", type: "text-link", part: "open-object-text-link", onClick: this.openObjectCallbackHandler }, `${this.selectedObject.name} : ${this.selectedObject.description}`)), index.h("div", { class: "inner-wrapper__right gxi-hidden" }, index.h("gxg-form-checkbox", { id: "references-by-type", label: "Group references by type", required: true, "display-validation-styles": true, part: "references-type-checkbox" }))))))), index.h("main", { class: "main grid" }, index.h("gx-ide-container", { containerTitle: this._componentLocale.main.isReferencedBy, justifyContent: "center", part: "referenced-by-container" }, index.h("gxg-tree", { ref: el => (this.referencedByEl = el), class: { "gxi-hidden": !((_a = this.referencedBy) === null || _a === void 0 ? void 0 : _a.length) }, checkbox: false, part: "referenced-by-tree" }, renderTree.renderTreeItems(convertReferenceDataToTreeData(this.referencedBy))), !((_b = this.referencedBy) === null || _b === void 0 ? void 0 : _b.length) && (index.h("gxg-text", { textAlign: "center", padding: "m", type: "text-regular", maxWidth: this.referencesMessagesMaxWidth, part: "referenced-by-text" }, ((_c = this.referencedBy) === null || _c === void 0 ? void 0 : _c.length) === 0
286
+ ? this._componentLocale.main.isReferencedByEmpty
287
+ : this._componentLocale.main.isReferencedByError))), index.h("gx-ide-container", { containerTitle: this._componentLocale.main.hasReferencesTo, justifyContent: "center", part: "references-to-container" }, index.h("gxg-tree", { ref: el => (this.referencesToEl = el), class: { "gxi-hidden": !((_d = this.referencesTo) === null || _d === void 0 ? void 0 : _d.length) }, checkbox: false, part: "references-to-tree" }, renderTree.renderTreeItems(convertReferenceDataToTreeData(this.referencesTo))), !((_e = this.referencesTo) === null || _e === void 0 ? void 0 : _e.length) && (index.h("gxg-text", { textAlign: "center", padding: "m", type: "text-regular", maxWidth: this.referencesMessagesMaxWidth, part: "references-to-text" }, ((_f = this.referencesTo) === null || _f === void 0 ? void 0 : _f.length) === 0
288
+ ? this._componentLocale.main.hasReferencesEmpty
289
+ : this._componentLocale.main.hasReferencesToError)))))));
290
+ }
291
+ static get assetsDirs() { return ["gx-ide-assets/references"]; }
292
+ get el() { return index.getElement(this); }
293
+ static get watchers() { return {
294
+ "selectedObject": ["selectedObjectHandler"]
295
+ }; }
296
+ };
297
+ GxIdeReferences.style = referencesCss;
298
+
299
+ exports.gx_ide_references = GxIdeReferences;
@@ -3,30 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-93a6a7e0.js');
6
-
7
- /* eslint-disable @typescript-eslint/no-use-before-define */
8
- const renderTreeItems = (treeItemsModel, firstCall = true) => {
9
- if (treeItemsModel === null || treeItemsModel === void 0 ? void 0 : treeItemsModel.length) {
10
- if (firstCall) {
11
- return treeItemsModel.map((item) => {
12
- return renderTreeItem(item);
13
- });
14
- }
15
- else {
16
- return (index.h("gxg-tree", { slot: "tree" }, treeItemsModel.map((item) => {
17
- return renderTreeItem(item);
18
- })));
19
- }
20
- }
21
- return [];
22
- };
23
- const renderTreeItem = (item) => {
24
- var _a;
25
- const childrenLength = item.items ? item.items.length : 0;
26
- const isLeaf = !!(childrenLength === 0 || item.leaf);
27
- const lazy = !!item.lazy;
28
- return (index.h("gxg-tree-item", { checkbox: item.checkbox, checked: item.checked, 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)]));
29
- };
6
+ const renderTree = require('./render-tree-25d5b8a1.js');
30
7
 
31
8
  const testCss = ":host{display:block}";
32
9
 
@@ -74,7 +51,7 @@ const GxIdeUiTest = class {
74
51
  }
75
52
  render() {
76
53
  if (this.treeModel) {
77
- return (index.h(index.Host, null, index.h("gxg-tree", { id: "masterTree", checked: true, checkbox: true, multiSelection: true, ref: el => (this.tree = el) }, renderTreeItems(this.treeModel)), ",", index.h("div", { class: "tree-buttons" }, index.h("gxg-button", { type: "outlined", onClick: this.closeTreeNodeHandler }, "Close 1-1-2"), index.h("gxg-button", { type: "outlined", onClick: this.openTreeNodeHandler }, "Open 1-1-2"), index.h("gxg-button", { type: "outlined", onClick: this.toggleTreeNodeHandler }, "Toggle 1-1-2"), index.h("gxg-button", { type: "outlined", onClick: this.getSelectedItemsHandler }, "Get Selected Items"), index.h("gxg-button", { type: "outlined", onClick: this.getCheckedItemsHandler }, "Get Checked Items"), index.h("gxg-button", { type: "outlined", onClick: this.deleteNodeHandler }, "Delete Tree"))));
54
+ return (index.h(index.Host, null, index.h("gxg-tree", { id: "masterTree", checked: true, checkbox: true, multiSelection: true, ref: el => (this.tree = el) }, renderTree.renderTreeItems(this.treeModel)), ",", index.h("div", { class: "tree-buttons" }, index.h("gxg-button", { type: "outlined", onClick: this.closeTreeNodeHandler }, "Close 1-1-2"), index.h("gxg-button", { type: "outlined", onClick: this.openTreeNodeHandler }, "Open 1-1-2"), index.h("gxg-button", { type: "outlined", onClick: this.toggleTreeNodeHandler }, "Toggle 1-1-2"), index.h("gxg-button", { type: "outlined", onClick: this.getSelectedItemsHandler }, "Get Selected Items"), index.h("gxg-button", { type: "outlined", onClick: this.getCheckedItemsHandler }, "Get Checked Items"), index.h("gxg-button", { type: "outlined", onClick: this.deleteNodeHandler }, "Delete Tree"))));
78
55
  }
79
56
  else {
80
57
  return index.h("slot", null);
@@ -10,166 +10,6 @@ const exportParts = require('./export-parts-931a23ad.js');
10
10
  const store = require('./store-49485138.js');
11
11
  const classesNames = require('./classesNames-5b7c6ad4.js');
12
12
 
13
- const containerCss = ":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}:host{--gxg-container-elements-spacing:var(--spacing-comp-03);display:block}:host([full-height]){height:100%}:host([full-height]) .container{height:100%;display:flex;flex-direction:column}:host([full-height]) .content{flex-grow:1}fieldset{padding:0;margin-inline-start:0;margin-inline-end:0;border:none}.heading,.content,.footer{padding:var(--gxg-container--padding)}.container--padding-s{--gxg-container--padding:var(--spacing-comp-02)}.container--padding-m{--gxg-container--padding:var(--spacing-comp-03)}.container--padding-l{--gxg-container--padding:var(--spacing-comp-04)}.container--display-border{border:1px solid var(--gx-ide-container-border-color)}.container--display-border-top{border-top:1px solid var(--gx-ide-container-border-color)}.container--display-border-end{border-inline-end:1px solid var(--gx-ide-container-border-color)}.container--display-border-bottom{border-bottom:1px solid var(--gx-ide-container-border-color)}.container--display-border-start{border-inline-start:1px solid var(--gx-ide-container-border-color)}.heading{display:flex;flex-direction:column;gap:var(--gxg-container--padding);width:100%;box-sizing:border-box;border-bottom:1px solid var(--gx-ide-container-border-color)}.heading--no-border{border-bottom:0}.heading--no-padding{padding:0}.content{display:flex;flex-direction:column;gap:var(--gxg-container-elements-spacing);overflow-x:auto;}.content::-webkit-scrollbar{width:6px;height:6px}.content::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}.content::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}.content::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}.content .gxg-scroll{display:block;overflow-y:auto;padding-right:2px}.content--no-padding{padding:0}.content--no-gap{gap:0}.content--align-items-start{align-items:start}.content--align-items-center{align-items:center}.content--align-items-end{align-items:end}.content--justify-content-start{justify-content:start}.content--justify-content-center{justify-content:center}.content--justify-content-end{justify-content:end}.footer{display:flex;gap:var(--gxg-container-elements-spacing);flex-wrap:wrap;justify-content:space-between;align-items:center;border-top:1px solid var(--gx-ide-container-border-color)}.footer__start,.footer__end{display:flex;gap:var(--gxg-container-elements-spacing)}.footer--no-border{border-top:0}.footer--no-padding{padding:0}";
14
-
15
- const GxIdeContainer = class {
16
- constructor(hostRef) {
17
- index.registerInstance(this, hostRef);
18
- this.headingClasses = () => {
19
- return {
20
- "heading": true,
21
- "heading--no-border": this.noHeadingBorder || this.hasOnlyHeading,
22
- [`heading--justify-${this.headingJustify}`]: true,
23
- ["heading--no-padding"]: this.noHeadingPadding
24
- };
25
- };
26
- this.contentClasses = () => {
27
- return {
28
- "content": true,
29
- "content--no-padding": this.noContentPadding,
30
- "content--no-gap": this.noContentGap,
31
- [`content--align-items-${this.alignItems}`]: this.alignItems !== undefined,
32
- [`content--justify-content-${this.justifyContent}`]: this.justifyContent !== undefined
33
- };
34
- };
35
- this.footer = () => {
36
- return this.hasFooterSlot ? (index.h("footer", { class: {
37
- "footer": true,
38
- "footer--no-border": this.hasOnlyFooter || !this.hasSlottedContent,
39
- [`footer--justify-${this.footerJustify}`]: true,
40
- [`footer--justify-${this.footerJustify}`]: true,
41
- ["footer--no-padding"]: this.noFooterPadding
42
- } }, index.h("div", { class: "footer__start" }, index.h("slot", { name: "footer-start" })), index.h("div", { class: "footer__end" }, index.h("slot", { name: "footer-end" })))) : null;
43
- };
44
- this.fieldset = false;
45
- this.containerTitle = undefined;
46
- this.displayBorder = false;
47
- this.displayBorderTop = false;
48
- this.displayBorderEnd = false;
49
- this.displayBorderBottom = false;
50
- this.displayBorderStart = false;
51
- this.sectionsPadding = "m";
52
- this.fullHeight = false;
53
- this.titleAlignment = "center";
54
- this.noHeadingBorder = false;
55
- this.noHeadingPadding = false;
56
- this.headingJustify = "center";
57
- this.noContentPadding = false;
58
- this.noContentGap = false;
59
- this.alignItems = undefined;
60
- this.justifyContent = undefined;
61
- this.noFooterPadding = false;
62
- this.footerJustify = "end";
63
- this.noBorderFooter = false;
64
- this.hasHeaderSlot = false;
65
- this.hasSlottedContent = false;
66
- this.hasFooterSlot = false;
67
- this.hasOnlyHeading = false;
68
- this.hasOnlyFooter = false;
69
- }
70
- // 4.PUBLIC PROPERTY API /
71
- // 5.EVENTS (EMIT) //
72
- // 6.COMPONENT LIFECYCLE EVENTS //
73
- componentWillLoad() {
74
- this.evaluateSlots();
75
- this.evaluateFullHeight();
76
- }
77
- // 7.LISTENERS //
78
- // 8.PUBLIC METHODS API //
79
- // 9.LOCAL METHODS //
80
- evaluateSlots() {
81
- // header
82
- const headerSlot = this.el.querySelectorAll(':scope > [slot="header"]');
83
- if (headerSlot.length) {
84
- this.hasHeaderSlot = true;
85
- }
86
- // content
87
- const slottedContent = this.el.querySelectorAll(":scope > :not([slot])");
88
- if (slottedContent.length) {
89
- this.hasSlottedContent = true;
90
- }
91
- // footer
92
- const footerStartSlot = this.el.querySelectorAll(':scope > [slot="footer-start"]');
93
- const footerEndSlot = this.el.querySelectorAll(':scope > [slot="footer-end"]');
94
- if (footerStartSlot.length || footerEndSlot.length) {
95
- this.hasFooterSlot = true;
96
- }
97
- }
98
- evaluateFullHeight() {
99
- if (this.fullHeight && this.fieldset) {
100
- /* If full-height, fieldset has to be false*/
101
- this.fieldset = false;
102
- }
103
- }
104
- evaluateSections() {
105
- if (!this.hasSlottedContent && !this.hasFooterSlot) {
106
- this.hasOnlyHeading = true;
107
- }
108
- if (!this.hasSlottedContent && !this.containerTitle) {
109
- this.hasOnlyFooter = true;
110
- }
111
- }
112
- // 10.RENDER() FUNCTION //
113
- render() {
114
- this.evaluateSections();
115
- let result;
116
- if (this.fieldset) {
117
- result = [
118
- index.h("fieldset", null, this.containerTitle || this.hasHeaderSlot ? (index.h("legend", { class: this.headingClasses() }, this.containerTitle ? (index.h("gxg-title", { type: "title-04", alignment: this.titleAlignment }, this.containerTitle)) : null, this.hasHeaderSlot ? (index.h("div", { class: "heading__inner-wrapper" }, index.h("slot", { name: "header" }))) : null)) : null, this.hasSlottedContent ? (index.h("div", { class: this.contentClasses() }, index.h("slot", null))) : null),
119
- this.footer()
120
- ];
121
- }
122
- else {
123
- result = [
124
- this.containerTitle || this.hasHeaderSlot ? (index.h("header", { class: this.headingClasses() }, this.containerTitle ? (index.h("gxg-title", { type: "title-04", alignment: this.titleAlignment }, this.containerTitle)) : null, this.hasHeaderSlot ? (index.h("div", { class: "heading__inner-wrapper" }, index.h("slot", { name: "header" }))) : null)) : null,
125
- this.hasSlottedContent ? (index.h("div", { class: this.contentClasses() }, index.h("slot", null))) : null,
126
- this.footer()
127
- ];
128
- }
129
- return (index.h(index.Host, null, index.h("div", { class: {
130
- "container": true,
131
- [`container--padding-${this.sectionsPadding}`]: true,
132
- "container--display-border": this.displayBorder,
133
- "container--display-border-top": this.displayBorderTop,
134
- "container--display-border-end": this.displayBorderEnd,
135
- "container--display-border-bottom": this.displayBorderBottom,
136
- "container--display-border-start": this.displayBorderStart
137
- } }, result)));
138
- }
139
- get el() { return index.getElement(this); }
140
- };
141
- GxIdeContainer.style = containerCss;
142
-
143
- const topBarCss = ":host{display:block;box-sizing:border-box}.wrapper{display:flex;justify-content:space-between;padding:var(--spacing-comp-01) var(--spacing-comp-02);transition:background-color var(--gx-ide-timing-super-fast-ms);background-color:var(--gray-01)}gxg-title::part(title){color:var(--color-on-secondary);transition:color var(--gx-ide-timing-super-fast-ms)}";
144
-
145
- const GxIdeTopBar = class {
146
- constructor(hostRef) {
147
- index.registerInstance(this, hostRef);
148
- this.topBarTitle = undefined;
149
- }
150
- // 5.EVENTS (EMIT) //
151
- // 6.METHODS //
152
- componentWillLoad() {
153
- this.evaluateSlots();
154
- }
155
- // 7.LISTENERS //
156
- // 8.PUBLIC METHODS API //
157
- // 9.LOCAL METHODS //
158
- evaluateSlots() {
159
- // header
160
- const menuSlot = this.el.querySelectorAll('[slot="menu"]');
161
- if (menuSlot.length) {
162
- this._hasMenuSlot = true;
163
- }
164
- }
165
- // 10.RENDER() FUNCTION //
166
- render() {
167
- return (index.h(index.Host, null, index.h("div", { class: "wrapper", part: "wrapper" }, index.h("div", { class: "wrapper__left", part: "wrapper-left" }, index.h("gxg-title", { type: "title-04", exportparts: "title: gxg-title" }, this.topBarTitle)), index.h("div", { class: "wrapper__right", part: "wrapper-right" }, this._hasMenuSlot ? (index.h("gxg-button", { type: "secondary-icon-only", icon: "gemini-tools/show-more-vertical" }, index.h("slot", { name: "menu" }))) : null))));
168
- }
169
- get el() { return index.getElement(this); }
170
- };
171
- GxIdeTopBar.style = topBarCss;
172
-
173
13
  function mutationObserverRemoved(target, ref) {
174
14
  const observer = new MutationObserver((mutationsList, observer) => {
175
15
  for (const mutation of mutationsList) {
@@ -1404,8 +1244,6 @@ const GxgTabs = class {
1404
1244
  };
1405
1245
  GxgTabs.style = tabsCss;
1406
1246
 
1407
- exports.gx_ide_container = GxIdeContainer;
1408
- exports.gx_ide_top_bar = GxIdeTopBar;
1409
1247
  exports.gxg_combo_box = GxgComboBox;
1410
1248
  exports.gxg_combo_box_item = GxgComboBoxItem;
1411
1249
  exports.gxg_form_checkbox_group = GxgFormCheckboxGroup;