@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,295 @@
1
+ import { h, r as registerInstance, c as createEvent, H as Host, g as getElement } from './index-4f0a5746.js';
2
+ import { L as Locale } from './locale-e183487a.js';
3
+ import { r as renderTreeItems } from './render-tree-fc8636a3.js';
4
+
5
+ /* eslint-disable @typescript-eslint/no-use-before-define */
6
+ const renderSuggestLists = (suggestData) => {
7
+ if (suggestData === null || suggestData === void 0 ? void 0 : suggestData.suggestLists.length) {
8
+ return suggestData.suggestLists.map((list) => {
9
+ return (h("ch-suggest-list", { label: list.label }, list.items.map((item) => {
10
+ return renderSuggestListsItem(item);
11
+ })));
12
+ });
13
+ }
14
+ return [];
15
+ };
16
+ const renderSuggestListsItem = (suggestItem) => {
17
+ return (h("ch-suggest-list-item", { description: suggestItem.description, value: suggestItem.value }, [suggestItem.label, suggestItem.icon && renderIcon(suggestItem.icon)]));
18
+ };
19
+ const renderIcon = (iconName) => {
20
+ return h("gxg-icon", { color: "auto", type: iconName, slot: "icon" });
21
+ };
22
+
23
+ /**
24
+ * @description This function converts SelectorCategoryData[] SuggestData
25
+ */
26
+ const convertObjectDataToSuggestData = (selectorCategoriesData) => {
27
+ const suggestData = {
28
+ suggestItems: null,
29
+ suggestLists: []
30
+ };
31
+ if (selectorCategoriesData.length) {
32
+ selectorCategoriesData.forEach(selectorCategory => {
33
+ const suggestList = {
34
+ label: selectorCategory.name,
35
+ items: []
36
+ };
37
+ selectorCategory.items.forEach((objectData) => {
38
+ const suggestItem = {
39
+ value: objectData.id,
40
+ label: objectData.name,
41
+ description: objectData.description,
42
+ icon: objectData.icon
43
+ };
44
+ suggestList.items.push(suggestItem);
45
+ });
46
+ suggestData.suggestLists.push(suggestList);
47
+ });
48
+ }
49
+ return suggestData;
50
+ };
51
+ /**
52
+ * @description Keeps an updated state of the last suggested categories objects passed by the host.
53
+ */
54
+ const updateSuggestedObjects = (selectorCategoryData) => {
55
+ const suggestedObjects = [];
56
+ if (selectorCategoryData === null || selectorCategoryData === void 0 ? void 0 : selectorCategoryData.length) {
57
+ selectorCategoryData.forEach(category => {
58
+ if (category.items) {
59
+ category.items.forEach(object => {
60
+ suggestedObjects.push({
61
+ id: object.id,
62
+ icon: object.icon,
63
+ name: object.name,
64
+ description: object.description
65
+ });
66
+ });
67
+ }
68
+ });
69
+ }
70
+ return suggestedObjects;
71
+ };
72
+ /**
73
+ * @description This function converts ReferenceData[] data to GxgTreeItemData[]
74
+ */
75
+ const convertReferenceDataToTreeData = (referencedBy) => {
76
+ const treeData = [];
77
+ if (!referencedBy) {
78
+ return treeData;
79
+ }
80
+ const convertItem = (item) => {
81
+ var _a;
82
+ const treeItem = {
83
+ description: item.description,
84
+ lazy: item.hasChildren,
85
+ icon: item.icon,
86
+ id: item.id,
87
+ label: item.name
88
+ };
89
+ if (((_a = item.items) === null || _a === void 0 ? void 0 : _a.length) > 0) {
90
+ treeItem.items = item.items.map(child => convertItem(child));
91
+ }
92
+ return treeItem;
93
+ };
94
+ referencedBy.forEach(item => {
95
+ treeData.push(convertItem(item));
96
+ });
97
+ return treeData;
98
+ };
99
+
100
+ 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}";
101
+
102
+ const GxIdeReferences = class {
103
+ constructor(hostRef) {
104
+ registerInstance(this, hostRef);
105
+ this.componentDidRenderEvent = createEvent(this, "componentDidRenderEvent", 7);
106
+ /**
107
+ * Keeps an array of the last suggested objects, returned by selectorSourceCallback
108
+ */
109
+ this.suggestedObjects = [];
110
+ /**
111
+ * The references messages max. width that appear if the tree is empty or could not be retrieved.
112
+ */
113
+ this.referencesMessagesMaxWidth = "200px";
114
+ // 7.LISTENERS //
115
+ // 8.PUBLIC METHODS API //
116
+ // 9.LOCAL METHODS //
117
+ /**
118
+ * @description It attaches on the ch-suggest, the "itemSelected" event triggered by the ch-suggest-list-item. This helps set the new 'selectedObject'.
119
+ */
120
+ this.attachSelectObjectListener = () => {
121
+ this.selectObjectSuggestEl.addEventListener("itemSelected", (e) => {
122
+ const itemValue = e.detail.value;
123
+ this.selectedObject = this.suggestedObjects.find(item => {
124
+ return item.id === itemValue;
125
+ });
126
+ });
127
+ };
128
+ /**
129
+ * @description It attaches several events on the 'referencedByEl' element, which is a tree.
130
+ */
131
+ this.attachReferencedByListeners = () => {
132
+ /* '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. */
133
+ this.referencedByEl.addEventListener("toggleIconClicked", async (e) => {
134
+ if (e.detail.lazy && e.detail.id) {
135
+ this.loadReferencesCallback(e.detail.id, false)
136
+ .then(result => {
137
+ this.referencedBy = result;
138
+ })
139
+ .catch(() => {
140
+ // to do
141
+ });
142
+ }
143
+ });
144
+ /* 'selectionChanged' Event: Fired when a new tree item was selected.*/
145
+ this.referencedByEl.addEventListener("selectionChanged", (e) => {
146
+ this.selectReferenceCallback(e.detail.id);
147
+ /* Returns void Promise*/
148
+ });
149
+ /* 'doubleClicked' Event: Fired when a tree item was double-clicked.*/
150
+ this.referencedByEl.addEventListener("doubleClicked", (e) => {
151
+ this.openObjectCallback(e.detail.id);
152
+ /* Returns void Promise*/
153
+ });
154
+ };
155
+ /**
156
+ * @description It attaches several events on the 'referencesToEl' element, which is a tree.
157
+ */
158
+ this.attachReferencesToListeners = () => {
159
+ /* 'toggleIconClicked' Event: (Read description on 'attachReferencedByListeners' as it does the same)*/
160
+ this.referencesToEl.addEventListener("toggleIconClicked", async (e) => {
161
+ if (e.detail.lazy && e.detail.id) {
162
+ this.loadReferencesCallback(e.detail.id, true)
163
+ .then(result => {
164
+ this.referencesTo = result;
165
+ })
166
+ .catch(() => {
167
+ // to do
168
+ });
169
+ }
170
+ });
171
+ /* 'selectionChanged' Event: Fired when a new tree item was selected.*/
172
+ this.referencesToEl.addEventListener("selectionChanged", (e) => {
173
+ this.selectReferenceCallback(e.detail.id);
174
+ /* Returns void Promise*/
175
+ });
176
+ /* 'doubleClicked' Event: Fired when a tree item was double-clicked.*/
177
+ this.referencesToEl.addEventListener("doubleClicked", (e) => {
178
+ this.openObjectCallback(e.detail.id);
179
+ /* Returns void Promise*/
180
+ });
181
+ };
182
+ /**
183
+ * @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.
184
+ */
185
+ this.selectObjectValueChangedHandler = async (e) => {
186
+ const value = e.detail;
187
+ this.selectorSourceCallback(value)
188
+ .then(result => {
189
+ /* update selected objects state*/
190
+ this.suggestedObjects = updateSuggestedObjects(result);
191
+ /* show suggestions*/
192
+ this.objectsSuggestions = convertObjectDataToSuggestData(result);
193
+ })
194
+ .catch(() => {
195
+ // to do
196
+ });
197
+ };
198
+ this.openObjectCallbackHandler = async () => {
199
+ this.openObjectCallback(this.selectedObject.id);
200
+ /* Returns an empty Promise*/
201
+ };
202
+ /**
203
+ * @description handler that gets fired when the use clicks on the ch-suggest button (...)
204
+ */
205
+ this.openSelectorDialogCallbackHandler = async () => {
206
+ this.selectedObject = await this.openSelectorDialogCallback();
207
+ };
208
+ /**
209
+ * @description It evaluates if loadReferencesCallback should be called, depending wether there is or not an actual selected object.
210
+ */
211
+ this.evaluateInitialReferenceData = () => {
212
+ var _a;
213
+ const selectedObjectId = (_a = this.selectedObject) === null || _a === void 0 ? void 0 : _a.id;
214
+ selectedObjectId && this.loadReferencesHandler(selectedObjectId);
215
+ };
216
+ /**
217
+ * @description This method invokes 'loadReferencesCallback' callback for 'Is Referenced By' and 'Has References To' panels.
218
+ */
219
+ this.loadReferencesHandler = async (id) => {
220
+ /* Referenced By*/
221
+ if (this.loadReferencesCallback) {
222
+ this.loadReferencesCallback(id, false)
223
+ .then(result => {
224
+ this.referencedBy = result;
225
+ })
226
+ .catch(() => {
227
+ /* To do*/
228
+ });
229
+ }
230
+ /* References To*/
231
+ if (this.loadReferencesCallback) {
232
+ this.loadReferencesCallback(id, true)
233
+ .then(result => {
234
+ this.referencesTo = result;
235
+ })
236
+ .catch(() => {
237
+ /* To do*/
238
+ });
239
+ }
240
+ };
241
+ /**
242
+ * @description It hides/show the bar (The header bottom section).
243
+ */
244
+ this.hideBarButtonClickedHandler = () => {
245
+ this.barHidden = !this.barHidden;
246
+ };
247
+ this.barHidden = false;
248
+ this.objectsSuggestions = undefined;
249
+ this.referencedBy = undefined;
250
+ this.referencesTo = undefined;
251
+ this.hideTopBar = false;
252
+ this.selectedObject = undefined;
253
+ this.selectorSourceCallback = undefined;
254
+ this.loadReferencesCallback = undefined;
255
+ this.openObjectCallback = undefined;
256
+ this.openSelectorDialogCallback = undefined;
257
+ this.selectReferenceCallback = undefined;
258
+ }
259
+ selectedObjectHandler(newSelectedObject) {
260
+ this.loadReferencesHandler(newSelectedObject.id);
261
+ }
262
+ // 6.COMPONENT LIFECYCLE EVENTS //
263
+ async componentWillLoad() {
264
+ this._componentLocale = await Locale.getComponentStrings(this.el);
265
+ this.evaluateInitialReferenceData();
266
+ }
267
+ componentDidLoad() {
268
+ this.attachSelectObjectListener();
269
+ this.attachReferencedByListeners();
270
+ this.attachReferencesToListeners();
271
+ }
272
+ componentDidRender() {
273
+ this.componentDidRenderEvent.emit(this._componentLocale.componentName);
274
+ }
275
+ // 10.RENDER() FUNCTION //
276
+ render() {
277
+ var _a, _b, _c, _d, _e, _f;
278
+ return (h(Host, { class: "gx-ide-component" }, !this.hideTopBar ? (h("gx-ide-top-bar", { topBarTitle: this._componentLocale.componentName })) : null, h("div", { class: "gx-ide-main-wrapper gx-ide-overflow" }, h("gx-ide-container", { displayBorderBottom: true }, h("header", { class: "header" }, h("div", { class: "header__top grid" }, h("gxg-button", { icon: "navigation/arrow-down", type: "secondary-icon-only", class: "hide-bar-button", onClick: this.hideBarButtonClickedHandler, part: "toggle-bar-button" }), h("gxg-label", { labelPosition: "start", class: "suggest-label", part: "select-object-label" }, this._componentLocale.header.selectObject), h("gxg-suggest", null, h("ch-suggest", { value: this.selectedObject.id, onValueChanged: this.selectObjectValueChangedHandler, ref: el => (this.selectObjectSuggestEl = el), part: "object-selector-suggest" }, renderSuggestLists(this.objectsSuggestions))), h("gxg-button", { type: "secondary-icon-only", icon: "gemini-tools/show-more-horizontal", onClick: this.openSelectorDialogCallbackHandler, class: "selector-dialog-button", part: "open-selector-dialog-button" })), h("div", { class: {
279
+ "header__bottom": true,
280
+ "header__bottom--hidden": this.barHidden
281
+ } }, h("div", { class: "outer-wrapper" }, h("div", { class: "inner-wrapper" }, h("div", { class: "inner-wrapper__left" }, h("gxg-icon", { type: this.selectedObject.icon, color: "auto" }), h("gxg-text", { padding: "s", type: "text-link", part: "open-object-text-link", onClick: this.openObjectCallbackHandler }, `${this.selectedObject.name} : ${this.selectedObject.description}`)), h("div", { class: "inner-wrapper__right gxi-hidden" }, h("gxg-form-checkbox", { id: "references-by-type", label: "Group references by type", required: true, "display-validation-styles": true, part: "references-type-checkbox" }))))))), h("main", { class: "main grid" }, h("gx-ide-container", { containerTitle: this._componentLocale.main.isReferencedBy, justifyContent: "center", part: "referenced-by-container" }, h("gxg-tree", { ref: el => (this.referencedByEl = el), class: { "gxi-hidden": !((_a = this.referencedBy) === null || _a === void 0 ? void 0 : _a.length) }, checkbox: false, part: "referenced-by-tree" }, renderTreeItems(convertReferenceDataToTreeData(this.referencedBy))), !((_b = this.referencedBy) === null || _b === void 0 ? void 0 : _b.length) && (h("gxg-text", { textAlign: "center", padding: "m", type: "text-regular", maxWidth: this.referencesMessagesMaxWidth, part: "referenced-by-text" }, ((_c = this.referencedBy) === null || _c === void 0 ? void 0 : _c.length) === 0
282
+ ? this._componentLocale.main.isReferencedByEmpty
283
+ : this._componentLocale.main.isReferencedByError))), h("gx-ide-container", { containerTitle: this._componentLocale.main.hasReferencesTo, justifyContent: "center", part: "references-to-container" }, h("gxg-tree", { ref: el => (this.referencesToEl = el), class: { "gxi-hidden": !((_d = this.referencesTo) === null || _d === void 0 ? void 0 : _d.length) }, checkbox: false, part: "references-to-tree" }, renderTreeItems(convertReferenceDataToTreeData(this.referencesTo))), !((_e = this.referencesTo) === null || _e === void 0 ? void 0 : _e.length) && (h("gxg-text", { textAlign: "center", padding: "m", type: "text-regular", maxWidth: this.referencesMessagesMaxWidth, part: "references-to-text" }, ((_f = this.referencesTo) === null || _f === void 0 ? void 0 : _f.length) === 0
284
+ ? this._componentLocale.main.hasReferencesEmpty
285
+ : this._componentLocale.main.hasReferencesToError)))))));
286
+ }
287
+ static get assetsDirs() { return ["gx-ide-assets/references"]; }
288
+ get el() { return getElement(this); }
289
+ static get watchers() { return {
290
+ "selectedObject": ["selectedObjectHandler"]
291
+ }; }
292
+ };
293
+ GxIdeReferences.style = referencesCss;
294
+
295
+ export { GxIdeReferences as gx_ide_references };
@@ -1,28 +1,5 @@
1
- import { h, r as registerInstance, H as Host } from './index-4f0a5746.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, 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
- };
1
+ import { r as registerInstance, h, H as Host } from './index-4f0a5746.js';
2
+ import { r as renderTreeItems } from './render-tree-fc8636a3.js';
26
3
 
27
4
  const testCss = ":host{display:block}";
28
5
 
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, h, H as Host, g as getElement, c as createEvent } from './index-4f0a5746.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-4f0a5746.js';
2
2
  import { f as formMessageLogic } from './form-73d85602.js';
3
3
  import { r as repositionScroll } from './reposition-scroll-3478b46f.js';
4
4
  import { K as KeyboardKeys } from './types-02481dff.js';
@@ -6,166 +6,6 @@ import { e as exportParts } from './export-parts-7f208d57.js';
6
6
  import { s as state } from './store-75f5d491.js';
7
7
  import { c as commonClassesNames, f as formClasses } from './classesNames-6cd8fadb.js';
8
8
 
9
- 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}";
10
-
11
- const GxIdeContainer = class {
12
- constructor(hostRef) {
13
- registerInstance(this, hostRef);
14
- this.headingClasses = () => {
15
- return {
16
- "heading": true,
17
- "heading--no-border": this.noHeadingBorder || this.hasOnlyHeading,
18
- [`heading--justify-${this.headingJustify}`]: true,
19
- ["heading--no-padding"]: this.noHeadingPadding
20
- };
21
- };
22
- this.contentClasses = () => {
23
- return {
24
- "content": true,
25
- "content--no-padding": this.noContentPadding,
26
- "content--no-gap": this.noContentGap,
27
- [`content--align-items-${this.alignItems}`]: this.alignItems !== undefined,
28
- [`content--justify-content-${this.justifyContent}`]: this.justifyContent !== undefined
29
- };
30
- };
31
- this.footer = () => {
32
- return this.hasFooterSlot ? (h("footer", { class: {
33
- "footer": true,
34
- "footer--no-border": this.hasOnlyFooter || !this.hasSlottedContent,
35
- [`footer--justify-${this.footerJustify}`]: true,
36
- [`footer--justify-${this.footerJustify}`]: true,
37
- ["footer--no-padding"]: this.noFooterPadding
38
- } }, h("div", { class: "footer__start" }, h("slot", { name: "footer-start" })), h("div", { class: "footer__end" }, h("slot", { name: "footer-end" })))) : null;
39
- };
40
- this.fieldset = false;
41
- this.containerTitle = undefined;
42
- this.displayBorder = false;
43
- this.displayBorderTop = false;
44
- this.displayBorderEnd = false;
45
- this.displayBorderBottom = false;
46
- this.displayBorderStart = false;
47
- this.sectionsPadding = "m";
48
- this.fullHeight = false;
49
- this.titleAlignment = "center";
50
- this.noHeadingBorder = false;
51
- this.noHeadingPadding = false;
52
- this.headingJustify = "center";
53
- this.noContentPadding = false;
54
- this.noContentGap = false;
55
- this.alignItems = undefined;
56
- this.justifyContent = undefined;
57
- this.noFooterPadding = false;
58
- this.footerJustify = "end";
59
- this.noBorderFooter = false;
60
- this.hasHeaderSlot = false;
61
- this.hasSlottedContent = false;
62
- this.hasFooterSlot = false;
63
- this.hasOnlyHeading = false;
64
- this.hasOnlyFooter = false;
65
- }
66
- // 4.PUBLIC PROPERTY API /
67
- // 5.EVENTS (EMIT) //
68
- // 6.COMPONENT LIFECYCLE EVENTS //
69
- componentWillLoad() {
70
- this.evaluateSlots();
71
- this.evaluateFullHeight();
72
- }
73
- // 7.LISTENERS //
74
- // 8.PUBLIC METHODS API //
75
- // 9.LOCAL METHODS //
76
- evaluateSlots() {
77
- // header
78
- const headerSlot = this.el.querySelectorAll(':scope > [slot="header"]');
79
- if (headerSlot.length) {
80
- this.hasHeaderSlot = true;
81
- }
82
- // content
83
- const slottedContent = this.el.querySelectorAll(":scope > :not([slot])");
84
- if (slottedContent.length) {
85
- this.hasSlottedContent = true;
86
- }
87
- // footer
88
- const footerStartSlot = this.el.querySelectorAll(':scope > [slot="footer-start"]');
89
- const footerEndSlot = this.el.querySelectorAll(':scope > [slot="footer-end"]');
90
- if (footerStartSlot.length || footerEndSlot.length) {
91
- this.hasFooterSlot = true;
92
- }
93
- }
94
- evaluateFullHeight() {
95
- if (this.fullHeight && this.fieldset) {
96
- /* If full-height, fieldset has to be false*/
97
- this.fieldset = false;
98
- }
99
- }
100
- evaluateSections() {
101
- if (!this.hasSlottedContent && !this.hasFooterSlot) {
102
- this.hasOnlyHeading = true;
103
- }
104
- if (!this.hasSlottedContent && !this.containerTitle) {
105
- this.hasOnlyFooter = true;
106
- }
107
- }
108
- // 10.RENDER() FUNCTION //
109
- render() {
110
- this.evaluateSections();
111
- let result;
112
- if (this.fieldset) {
113
- result = [
114
- h("fieldset", null, this.containerTitle || this.hasHeaderSlot ? (h("legend", { class: this.headingClasses() }, this.containerTitle ? (h("gxg-title", { type: "title-04", alignment: this.titleAlignment }, this.containerTitle)) : null, this.hasHeaderSlot ? (h("div", { class: "heading__inner-wrapper" }, h("slot", { name: "header" }))) : null)) : null, this.hasSlottedContent ? (h("div", { class: this.contentClasses() }, h("slot", null))) : null),
115
- this.footer()
116
- ];
117
- }
118
- else {
119
- result = [
120
- this.containerTitle || this.hasHeaderSlot ? (h("header", { class: this.headingClasses() }, this.containerTitle ? (h("gxg-title", { type: "title-04", alignment: this.titleAlignment }, this.containerTitle)) : null, this.hasHeaderSlot ? (h("div", { class: "heading__inner-wrapper" }, h("slot", { name: "header" }))) : null)) : null,
121
- this.hasSlottedContent ? (h("div", { class: this.contentClasses() }, h("slot", null))) : null,
122
- this.footer()
123
- ];
124
- }
125
- return (h(Host, null, h("div", { class: {
126
- "container": true,
127
- [`container--padding-${this.sectionsPadding}`]: true,
128
- "container--display-border": this.displayBorder,
129
- "container--display-border-top": this.displayBorderTop,
130
- "container--display-border-end": this.displayBorderEnd,
131
- "container--display-border-bottom": this.displayBorderBottom,
132
- "container--display-border-start": this.displayBorderStart
133
- } }, result)));
134
- }
135
- get el() { return getElement(this); }
136
- };
137
- GxIdeContainer.style = containerCss;
138
-
139
- 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)}";
140
-
141
- const GxIdeTopBar = class {
142
- constructor(hostRef) {
143
- registerInstance(this, hostRef);
144
- this.topBarTitle = undefined;
145
- }
146
- // 5.EVENTS (EMIT) //
147
- // 6.METHODS //
148
- componentWillLoad() {
149
- this.evaluateSlots();
150
- }
151
- // 7.LISTENERS //
152
- // 8.PUBLIC METHODS API //
153
- // 9.LOCAL METHODS //
154
- evaluateSlots() {
155
- // header
156
- const menuSlot = this.el.querySelectorAll('[slot="menu"]');
157
- if (menuSlot.length) {
158
- this._hasMenuSlot = true;
159
- }
160
- }
161
- // 10.RENDER() FUNCTION //
162
- render() {
163
- return (h(Host, null, h("div", { class: "wrapper", part: "wrapper" }, h("div", { class: "wrapper__left", part: "wrapper-left" }, h("gxg-title", { type: "title-04", exportparts: "title: gxg-title" }, this.topBarTitle)), h("div", { class: "wrapper__right", part: "wrapper-right" }, this._hasMenuSlot ? (h("gxg-button", { type: "secondary-icon-only", icon: "gemini-tools/show-more-vertical" }, h("slot", { name: "menu" }))) : null))));
164
- }
165
- get el() { return getElement(this); }
166
- };
167
- GxIdeTopBar.style = topBarCss;
168
-
169
9
  function mutationObserverRemoved(target, ref) {
170
10
  const observer = new MutationObserver((mutationsList, observer) => {
171
11
  for (const mutation of mutationsList) {
@@ -1400,4 +1240,4 @@ const GxgTabs = class {
1400
1240
  };
1401
1241
  GxgTabs.style = tabsCss;
1402
1242
 
1403
- export { GxIdeContainer as gx_ide_container, GxIdeTopBar as gx_ide_top_bar, GxgComboBox as gxg_combo_box, GxgComboBoxItem as gxg_combo_box_item, GxgFormCheckboxGroup as gxg_form_checkbox_group, GxgFormRadio as gxg_form_radio, GxgTab as gxg_tab, GxgTabBar as gxg_tab_bar, GxgTabButton as gxg_tab_button, GxgTabs as gxg_tabs };
1243
+ export { GxgComboBox as gxg_combo_box, GxgComboBoxItem as gxg_combo_box_item, GxgFormCheckboxGroup as gxg_form_checkbox_group, GxgFormRadio as gxg_form_radio, GxgTab as gxg_tab, GxgTabBar as gxg_tab_bar, GxgTabButton as gxg_tab_button, GxgTabs as gxg_tabs };