@genexus/genexus-ide-ui 0.0.13 → 0.0.15

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 (94) hide show
  1. package/dist/cjs/ch-suggest_5.cjs.entry.js +379 -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-new-kb.cjs.entry.js +13 -5
  5. package/dist/cjs/gx-ide-references.cjs.entry.js +299 -0
  6. package/dist/cjs/gx-ide-test.cjs.entry.js +2 -25
  7. package/dist/cjs/{gx-ide-container_10.cjs.entry.js → gxg-combo-box_8.cjs.entry.js} +58 -178
  8. package/dist/cjs/gxg-test.cjs.entry.js +2 -2
  9. package/dist/cjs/{gxg-tree-item.cjs.entry.js → gxg-tree_2.cjs.entry.js} +167 -0
  10. package/dist/cjs/loader.cjs.js +1 -1
  11. package/dist/cjs/render-tree-25d5b8a1.js +29 -0
  12. package/dist/collection/collection-manifest.json +1 -0
  13. package/dist/collection/common/render-suggest.js +18 -0
  14. package/dist/collection/components/new-kb/new-kb.css +8 -4
  15. package/dist/collection/components/new-kb/new-kb.js +12 -4
  16. package/dist/collection/components/references/gx-ide-assets/references/langs/references.lang.en.json +15 -0
  17. package/dist/collection/components/references/gx-ide-assets/references/langs/references.lang.ja.json +3 -0
  18. package/dist/collection/components/references/gx-ide-assets/references/langs/references.lang.zh.json +3 -0
  19. package/dist/collection/components/references/helpers.js +76 -0
  20. package/dist/collection/components/references/references.css +194 -0
  21. package/dist/collection/components/references/references.js +377 -0
  22. package/dist/collection/index.js +1 -0
  23. package/dist/components/ch-suggest-list-item.js +1 -58
  24. package/dist/{esm/ch-suggest-list-item.entry.js → components/ch-suggest-list-item2.js} +27 -8
  25. package/dist/components/ch-suggest-list.js +1 -39
  26. package/dist/components/ch-suggest-list2.js +41 -0
  27. package/dist/components/ch-suggest.js +1 -259
  28. package/dist/{esm/ch-suggest.entry.js → components/ch-suggest2.js} +49 -19
  29. package/dist/components/gx-ide-new-kb.js +13 -5
  30. package/dist/components/gx-ide-references.d.ts +11 -0
  31. package/dist/components/gx-ide-references.js +433 -0
  32. package/dist/components/gx-ide-test.js +2 -25
  33. package/dist/components/gxg-suggest.js +1 -55
  34. package/dist/components/gxg-test.js +2 -2
  35. package/dist/components/gxg-text.js +1 -88
  36. package/dist/components/index.d.ts +1 -0
  37. package/dist/components/index.js +1 -0
  38. package/dist/components/render-tree.js +27 -0
  39. package/dist/{esm/gxg-suggest.entry.js → components/suggest.js} +29 -10
  40. package/dist/components/tab-bar.js +29 -13
  41. package/dist/components/tab-button.js +18 -2
  42. package/dist/components/tabs.js +15 -2
  43. package/dist/{esm/gxg-text.entry.js → components/text.js} +30 -8
  44. package/dist/esm/ch-suggest_5.entry.js +371 -0
  45. package/dist/esm/genexus-ide-ui.js +1 -1
  46. package/dist/esm/gx-ide-container_2.entry.js +163 -0
  47. package/dist/esm/gx-ide-new-kb.entry.js +13 -5
  48. package/dist/esm/gx-ide-references.entry.js +295 -0
  49. package/dist/esm/gx-ide-test.entry.js +2 -25
  50. package/dist/esm/{gx-ide-container_10.entry.js → gxg-combo-box_8.entry.js} +60 -178
  51. package/dist/esm/gxg-test.entry.js +2 -2
  52. package/dist/esm/{gxg-tree-item.entry.js → gxg-tree_2.entry.js} +168 -2
  53. package/dist/esm/loader.js +1 -1
  54. package/dist/esm/render-tree-fc8636a3.js +27 -0
  55. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  56. package/dist/genexus-ide-ui/gx-ide-assets/references/langs/references.lang.en.json +15 -0
  57. package/dist/genexus-ide-ui/gx-ide-assets/references/langs/references.lang.ja.json +3 -0
  58. package/dist/genexus-ide-ui/gx-ide-assets/references/langs/references.lang.zh.json +3 -0
  59. package/dist/genexus-ide-ui/p-0f5d0ccc.entry.js +1 -0
  60. package/dist/genexus-ide-ui/p-1dcba164.entry.js +1 -0
  61. package/dist/genexus-ide-ui/p-1e412d88.entry.js +1 -0
  62. package/dist/genexus-ide-ui/p-2761a056.entry.js +1 -0
  63. package/dist/genexus-ide-ui/p-62814082.entry.js +1 -0
  64. package/dist/genexus-ide-ui/{p-f5aa333b.entry.js → p-97430828.entry.js} +1 -1
  65. package/dist/genexus-ide-ui/p-a5fee36d.entry.js +1 -0
  66. package/dist/genexus-ide-ui/p-abee8c7b.js +1 -0
  67. package/dist/genexus-ide-ui/p-be9406e7.entry.js +1 -0
  68. package/dist/node_modules/@genexus/gemini/dist/collection/components/tab-bar/tab-bar.css +4 -0
  69. package/dist/node_modules/@genexus/gemini/dist/collection/components/tab-button/tab-button.css +3 -0
  70. package/dist/node_modules/@genexus/gemini/dist/collection/components/tabs/tabs.css +1 -1
  71. package/dist/types/common/render-suggest.d.ts +2 -0
  72. package/dist/types/components/references/helpers.d.ts +17 -0
  73. package/dist/types/components/references/references.d.ts +125 -0
  74. package/dist/types/components.d.ts +78 -0
  75. package/dist/types/index.d.ts +1 -0
  76. package/package.json +3 -3
  77. package/dist/cjs/ch-suggest-list-item.cjs.entry.js +0 -45
  78. package/dist/cjs/ch-suggest-list.cjs.entry.js +0 -28
  79. package/dist/cjs/ch-suggest.cjs.entry.js +0 -226
  80. package/dist/cjs/gxg-suggest.cjs.entry.js +0 -42
  81. package/dist/cjs/gxg-text.cjs.entry.js +0 -72
  82. package/dist/cjs/gxg-tree.cjs.entry.js +0 -173
  83. package/dist/esm/ch-suggest-list.entry.js +0 -24
  84. package/dist/esm/gxg-tree.entry.js +0 -169
  85. package/dist/genexus-ide-ui/p-0a954e0f.entry.js +0 -1
  86. package/dist/genexus-ide-ui/p-20a45778.entry.js +0 -1
  87. package/dist/genexus-ide-ui/p-23d4b295.entry.js +0 -1
  88. package/dist/genexus-ide-ui/p-4e78d56d.entry.js +0 -1
  89. package/dist/genexus-ide-ui/p-5463844e.entry.js +0 -1
  90. package/dist/genexus-ide-ui/p-5faaf0e5.entry.js +0 -1
  91. package/dist/genexus-ide-ui/p-7a5e0988.entry.js +0 -1
  92. package/dist/genexus-ide-ui/p-a985b448.entry.js +0 -1
  93. package/dist/genexus-ide-ui/p-ad9fe469.entry.js +0 -1
  94. package/dist/genexus-ide-ui/p-b3727324.entry.js +0 -1
@@ -0,0 +1,15 @@
1
+ {
2
+ "componentName": "References",
3
+ "header": {
4
+ "selectObject": "Select Object",
5
+ "open": "Open"
6
+ },
7
+ "main": {
8
+ "isReferencedBy": "Is Referenced By",
9
+ "isReferencedByEmpty": "This object is not referenced by any other object",
10
+ "isReferencedByError": "Something went wrong, and references couldn't be retrieved",
11
+ "hasReferencesTo": "Has References To",
12
+ "hasReferencesEmpty": "This object has no references to",
13
+ "hasReferencesToError": "Something went wrong, and references couldn't be retrieved"
14
+ }
15
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "presentation": "「こんにちは、私の名前は {0} です。オレゴンに住んでいます。」"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "presentation": "你好,我的名字是 {0},我住在俄勒冈州。"
3
+ }
@@ -0,0 +1,76 @@
1
+ /**
2
+ * @description This function converts SelectorCategoryData[] SuggestData
3
+ */
4
+ export const convertObjectDataToSuggestData = (selectorCategoriesData) => {
5
+ const suggestData = {
6
+ suggestItems: null,
7
+ suggestLists: []
8
+ };
9
+ if (selectorCategoriesData.length) {
10
+ selectorCategoriesData.forEach(selectorCategory => {
11
+ const suggestList = {
12
+ label: selectorCategory.name,
13
+ items: []
14
+ };
15
+ selectorCategory.items.forEach((objectData) => {
16
+ const suggestItem = {
17
+ value: objectData.id,
18
+ label: objectData.name,
19
+ description: objectData.description,
20
+ icon: objectData.icon
21
+ };
22
+ suggestList.items.push(suggestItem);
23
+ });
24
+ suggestData.suggestLists.push(suggestList);
25
+ });
26
+ }
27
+ return suggestData;
28
+ };
29
+ /**
30
+ * @description Keeps an updated state of the last suggested categories objects passed by the host.
31
+ */
32
+ export const updateSuggestedObjects = (selectorCategoryData) => {
33
+ const suggestedObjects = [];
34
+ if (selectorCategoryData === null || selectorCategoryData === void 0 ? void 0 : selectorCategoryData.length) {
35
+ selectorCategoryData.forEach(category => {
36
+ if (category.items) {
37
+ category.items.forEach(object => {
38
+ suggestedObjects.push({
39
+ id: object.id,
40
+ icon: object.icon,
41
+ name: object.name,
42
+ description: object.description
43
+ });
44
+ });
45
+ }
46
+ });
47
+ }
48
+ return suggestedObjects;
49
+ };
50
+ /**
51
+ * @description This function converts ReferenceData[] data to GxgTreeItemData[]
52
+ */
53
+ export const convertReferenceDataToTreeData = (referencedBy) => {
54
+ const treeData = [];
55
+ if (!referencedBy) {
56
+ return treeData;
57
+ }
58
+ const convertItem = (item) => {
59
+ var _a;
60
+ const treeItem = {
61
+ description: item.description,
62
+ lazy: item.hasChildren,
63
+ icon: item.icon,
64
+ id: item.id,
65
+ label: item.name
66
+ };
67
+ if (((_a = item.items) === null || _a === void 0 ? void 0 : _a.length) > 0) {
68
+ treeItem.items = item.items.map(child => convertItem(child));
69
+ }
70
+ return treeItem;
71
+ };
72
+ referencedBy.forEach(item => {
73
+ treeData.push(convertItem(item));
74
+ });
75
+ return treeData;
76
+ };
@@ -0,0 +1,194 @@
1
+ /* Helper Classes */
2
+ .gxi-hidden {
3
+ display: none !important;
4
+ }
5
+
6
+ .gxi-full-height {
7
+ height: 100%;
8
+ }
9
+
10
+ .align-start {
11
+ display: flex;
12
+ align-items: start;
13
+ }
14
+
15
+ .align-center {
16
+ display: flex;
17
+ align-items: center;
18
+ }
19
+
20
+ .align-end {
21
+ display: flex;
22
+ align-items: end;
23
+ }
24
+
25
+ /* Grids */
26
+ .grid {
27
+ display: grid;
28
+ grid-row-gap: var(--gx-ide-grid-row-gap);
29
+ grid-column-gap: var(--gx-ide-grid-column-gap);
30
+ grid-template-rows: auto;
31
+ }
32
+
33
+ /*All components Host should have this class set. !important is set on every rule, since this styles could be overridden by the host user, since they are applied on the host component*/
34
+ :host(.gx-ide-component) {
35
+ box-shadow: var(--box-shadow-01) !important;
36
+ height: 100% !important;
37
+ display: flex !important;
38
+ flex-direction: column !important;
39
+ }
40
+
41
+ /*stylize the top bar*/
42
+ :host(:focus-within) gx-ide-top-bar::part(wrapper) {
43
+ background-color: var(--color-secondary-enabled);
44
+ }
45
+
46
+ /* Main wrapper (should be the first element inside the host. Everything should be inside .gx-ide-main-wrapper) */
47
+ .gx-ide-main-wrapper {
48
+ color: var(--gx-ide-component-text-color);
49
+ font-weight: var(--font-weight-regular);
50
+ font-size: var(--font-size-lg);
51
+ line-height: 1.6em;
52
+ height: 100%;
53
+ background-color: var(--gx-ide-component-background-color);
54
+ display: flex;
55
+ flex-direction: column;
56
+ flex-grow: 1;
57
+ }
58
+
59
+ /*This is the main element. This is the one that take the remaining vertical space*/
60
+ .gx-ide-main {
61
+ flex-grow: 1;
62
+ overflow-y: auto;
63
+ /* Track */
64
+ /* Handle */
65
+ /* Handle on hover */
66
+ }
67
+ .gx-ide-main::-webkit-scrollbar {
68
+ width: 6px;
69
+ height: 6px;
70
+ }
71
+ .gx-ide-main::-webkit-scrollbar-track {
72
+ background-color: var(--gray-02);
73
+ border-radius: 10px;
74
+ }
75
+ .gx-ide-main::-webkit-scrollbar-thumb {
76
+ background: var(--gray-05);
77
+ border-radius: 10px;
78
+ }
79
+ .gx-ide-main::-webkit-scrollbar-thumb:hover {
80
+ background: var(--gray-04);
81
+ cursor: pointer;
82
+ }
83
+ .gx-ide-main .gxg-scroll {
84
+ display: block;
85
+ overflow-y: auto;
86
+ padding-right: 2px;
87
+ }
88
+
89
+ .gx-ide-overflow {
90
+ overflow-y: auto;
91
+ /* Track */
92
+ /* Handle */
93
+ /* Handle on hover */
94
+ }
95
+ .gx-ide-overflow::-webkit-scrollbar {
96
+ width: 6px;
97
+ height: 6px;
98
+ }
99
+ .gx-ide-overflow::-webkit-scrollbar-track {
100
+ background-color: var(--gray-02);
101
+ border-radius: 10px;
102
+ }
103
+ .gx-ide-overflow::-webkit-scrollbar-thumb {
104
+ background: var(--gray-05);
105
+ border-radius: 10px;
106
+ }
107
+ .gx-ide-overflow::-webkit-scrollbar-thumb:hover {
108
+ background: var(--gray-04);
109
+ cursor: pointer;
110
+ }
111
+ .gx-ide-overflow .gxg-scroll {
112
+ display: block;
113
+ overflow-y: auto;
114
+ padding-right: 2px;
115
+ }
116
+
117
+ :host {
118
+ display: block;
119
+ }
120
+
121
+ /*HEADER*/
122
+ .header {
123
+ /*Top*/
124
+ /*Bottom*/
125
+ }
126
+ .header__top {
127
+ grid-template-columns: min-content auto 1fr min-content;
128
+ grid-template-rows: 1fr;
129
+ grid-template-areas: "hide-bar-button suggest-label gxg-suggest selector-dialog-button";
130
+ }
131
+ .header__top .hide-bar-button {
132
+ grid-area: hide-bar-button;
133
+ }
134
+ .header__top .suggest-label {
135
+ grid-area: suggest-label;
136
+ }
137
+ .header__top gxg-suggest {
138
+ grid-area: gxg-suggest;
139
+ }
140
+ .header__top .selector-dialog-button {
141
+ grid-area: selector-dialog-button;
142
+ }
143
+ .header__bottom {
144
+ display: grid;
145
+ grid-template-rows: 1fr;
146
+ transition: var(--gx-ide-timing-super-fast-ms) grid-template-rows;
147
+ }
148
+ .header__bottom--hidden {
149
+ grid-template-rows: 0fr;
150
+ }
151
+ .header__bottom .outer-wrapper {
152
+ overflow: hidden;
153
+ }
154
+ .header__bottom .inner-wrapper {
155
+ padding-top: var(--gx-ide-grid-row-gap);
156
+ display: flex;
157
+ flex-direction: row;
158
+ align-items: center;
159
+ justify-content: space-between;
160
+ }
161
+ .header__bottom .inner-wrapper__left {
162
+ display: flex;
163
+ align-items: center;
164
+ gap: var(--gx-ide-grid-row-gap);
165
+ }
166
+
167
+ /*Header hidable*/
168
+ .header-hidden .first-row {
169
+ grid-template-columns: auto 1fr auto;
170
+ }
171
+ .header-hidden .first-row > :nth-child(3) {
172
+ align-self: end;
173
+ }
174
+ .header-hidden .second-row {
175
+ display: none;
176
+ }
177
+
178
+ /*MAIN*/
179
+ .main {
180
+ grid-template-columns: 1fr 1fr;
181
+ grid-template-rows: 1fr;
182
+ grid-template-areas: "is-referenced has-references";
183
+ height: 100%;
184
+ gap: 0;
185
+ }
186
+ .main > *:first-child {
187
+ border-right: 1px solid var(--gx-ide-container-border-color);
188
+ }
189
+ .main .is-referenced {
190
+ grid-area: is-referenced;
191
+ }
192
+ .main .has-references {
193
+ grid-area: has-references;
194
+ }
@@ -0,0 +1,377 @@
1
+ /* STENCIL IMPORTS */
2
+ import { Host, h } from "@stencil/core";
3
+ /* OTHER LIBRARIES IMPORTS */
4
+ /* CUSTOM IMPORTS */
5
+ import { Locale } from "../../common/locale";
6
+ import { renderTreeItems } from "../../common/render-tree";
7
+ import { renderSuggestLists } from "../../common/render-suggest";
8
+ import { convertObjectDataToSuggestData, convertReferenceDataToTreeData, updateSuggestedObjects } from "./helpers";
9
+ export class GxIdeReferences {
10
+ constructor() {
11
+ /**
12
+ * Keeps an array of the last suggested objects, returned by selectorSourceCallback
13
+ */
14
+ this.suggestedObjects = [];
15
+ /**
16
+ * The references messages max. width that appear if the tree is empty or could not be retrieved.
17
+ */
18
+ this.referencesMessagesMaxWidth = "200px";
19
+ // 7.LISTENERS //
20
+ // 8.PUBLIC METHODS API //
21
+ // 9.LOCAL METHODS //
22
+ /**
23
+ * @description It attaches on the ch-suggest, the "itemSelected" event triggered by the ch-suggest-list-item. This helps set the new 'selectedObject'.
24
+ */
25
+ this.attachSelectObjectListener = () => {
26
+ this.selectObjectSuggestEl.addEventListener("itemSelected", (e) => {
27
+ const itemValue = e.detail.value;
28
+ this.selectedObject = this.suggestedObjects.find(item => {
29
+ return item.id === itemValue;
30
+ });
31
+ });
32
+ };
33
+ /**
34
+ * @description It attaches several events on the 'referencedByEl' element, which is a tree.
35
+ */
36
+ this.attachReferencedByListeners = () => {
37
+ /* '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. */
38
+ this.referencedByEl.addEventListener("toggleIconClicked", async (e) => {
39
+ if (e.detail.lazy && e.detail.id) {
40
+ this.loadReferencesCallback(e.detail.id, false)
41
+ .then(result => {
42
+ this.referencedBy = result;
43
+ })
44
+ .catch(() => {
45
+ // to do
46
+ });
47
+ }
48
+ });
49
+ /* 'selectionChanged' Event: Fired when a new tree item was selected.*/
50
+ this.referencedByEl.addEventListener("selectionChanged", (e) => {
51
+ this.selectReferenceCallback(e.detail.id);
52
+ /* Returns void Promise*/
53
+ });
54
+ /* 'doubleClicked' Event: Fired when a tree item was double-clicked.*/
55
+ this.referencedByEl.addEventListener("doubleClicked", (e) => {
56
+ this.openObjectCallback(e.detail.id);
57
+ /* Returns void Promise*/
58
+ });
59
+ };
60
+ /**
61
+ * @description It attaches several events on the 'referencesToEl' element, which is a tree.
62
+ */
63
+ this.attachReferencesToListeners = () => {
64
+ /* 'toggleIconClicked' Event: (Read description on 'attachReferencedByListeners' as it does the same)*/
65
+ this.referencesToEl.addEventListener("toggleIconClicked", async (e) => {
66
+ if (e.detail.lazy && e.detail.id) {
67
+ this.loadReferencesCallback(e.detail.id, true)
68
+ .then(result => {
69
+ this.referencesTo = result;
70
+ })
71
+ .catch(() => {
72
+ // to do
73
+ });
74
+ }
75
+ });
76
+ /* 'selectionChanged' Event: Fired when a new tree item was selected.*/
77
+ this.referencesToEl.addEventListener("selectionChanged", (e) => {
78
+ this.selectReferenceCallback(e.detail.id);
79
+ /* Returns void Promise*/
80
+ });
81
+ /* 'doubleClicked' Event: Fired when a tree item was double-clicked.*/
82
+ this.referencesToEl.addEventListener("doubleClicked", (e) => {
83
+ this.openObjectCallback(e.detail.id);
84
+ /* Returns void Promise*/
85
+ });
86
+ };
87
+ /**
88
+ * @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.
89
+ */
90
+ this.selectObjectValueChangedHandler = async (e) => {
91
+ const value = e.detail;
92
+ this.selectorSourceCallback(value)
93
+ .then(result => {
94
+ /* update selected objects state*/
95
+ this.suggestedObjects = updateSuggestedObjects(result);
96
+ /* show suggestions*/
97
+ this.objectsSuggestions = convertObjectDataToSuggestData(result);
98
+ })
99
+ .catch(() => {
100
+ // to do
101
+ });
102
+ };
103
+ this.openObjectCallbackHandler = async () => {
104
+ this.openObjectCallback(this.selectedObject.id);
105
+ /* Returns an empty Promise*/
106
+ };
107
+ /**
108
+ * @description handler that gets fired when the use clicks on the ch-suggest button (...)
109
+ */
110
+ this.openSelectorDialogCallbackHandler = async () => {
111
+ this.selectedObject = await this.openSelectorDialogCallback();
112
+ };
113
+ /**
114
+ * @description It evaluates if loadReferencesCallback should be called, depending wether there is or not an actual selected object.
115
+ */
116
+ this.evaluateInitialReferenceData = () => {
117
+ var _a;
118
+ const selectedObjectId = (_a = this.selectedObject) === null || _a === void 0 ? void 0 : _a.id;
119
+ selectedObjectId && this.loadReferencesHandler(selectedObjectId);
120
+ };
121
+ /**
122
+ * @description This method invokes 'loadReferencesCallback' callback for 'Is Referenced By' and 'Has References To' panels.
123
+ */
124
+ this.loadReferencesHandler = async (id) => {
125
+ /* Referenced By*/
126
+ if (this.loadReferencesCallback) {
127
+ this.loadReferencesCallback(id, false)
128
+ .then(result => {
129
+ this.referencedBy = result;
130
+ })
131
+ .catch(() => {
132
+ /* To do*/
133
+ });
134
+ }
135
+ /* References To*/
136
+ if (this.loadReferencesCallback) {
137
+ this.loadReferencesCallback(id, true)
138
+ .then(result => {
139
+ this.referencesTo = result;
140
+ })
141
+ .catch(() => {
142
+ /* To do*/
143
+ });
144
+ }
145
+ };
146
+ /**
147
+ * @description It hides/show the bar (The header bottom section).
148
+ */
149
+ this.hideBarButtonClickedHandler = () => {
150
+ this.barHidden = !this.barHidden;
151
+ };
152
+ this.barHidden = false;
153
+ this.objectsSuggestions = undefined;
154
+ this.referencedBy = undefined;
155
+ this.referencesTo = undefined;
156
+ this.hideTopBar = false;
157
+ this.selectedObject = undefined;
158
+ this.selectorSourceCallback = undefined;
159
+ this.loadReferencesCallback = undefined;
160
+ this.openObjectCallback = undefined;
161
+ this.openSelectorDialogCallback = undefined;
162
+ this.selectReferenceCallback = undefined;
163
+ }
164
+ selectedObjectHandler(newSelectedObject) {
165
+ this.loadReferencesHandler(newSelectedObject.id);
166
+ }
167
+ // 6.COMPONENT LIFECYCLE EVENTS //
168
+ async componentWillLoad() {
169
+ this._componentLocale = await Locale.getComponentStrings(this.el);
170
+ this.evaluateInitialReferenceData();
171
+ }
172
+ componentDidLoad() {
173
+ this.attachSelectObjectListener();
174
+ this.attachReferencedByListeners();
175
+ this.attachReferencesToListeners();
176
+ }
177
+ componentDidRender() {
178
+ this.componentDidRenderEvent.emit(this._componentLocale.componentName);
179
+ }
180
+ // 10.RENDER() FUNCTION //
181
+ render() {
182
+ var _a, _b, _c, _d, _e, _f;
183
+ 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: {
184
+ "header__bottom": true,
185
+ "header__bottom--hidden": this.barHidden
186
+ } }, 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
187
+ ? this._componentLocale.main.isReferencedByEmpty
188
+ : 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
189
+ ? this._componentLocale.main.hasReferencesEmpty
190
+ : this._componentLocale.main.hasReferencesToError)))))));
191
+ }
192
+ static get is() { return "gx-ide-references"; }
193
+ static get encapsulation() { return "shadow"; }
194
+ static get originalStyleUrls() {
195
+ return {
196
+ "$": ["references.scss"]
197
+ };
198
+ }
199
+ static get styleUrls() {
200
+ return {
201
+ "$": ["references.css"]
202
+ };
203
+ }
204
+ static get assetsDirs() { return ["gx-ide-assets/references"]; }
205
+ static get properties() {
206
+ return {
207
+ "hideTopBar": {
208
+ "type": "boolean",
209
+ "mutable": false,
210
+ "complexType": {
211
+ "original": "false",
212
+ "resolved": "boolean",
213
+ "references": {}
214
+ },
215
+ "required": false,
216
+ "optional": false,
217
+ "docs": {
218
+ "tags": [],
219
+ "text": "If true, will hide the top-bar"
220
+ },
221
+ "attribute": "hide-top-bar",
222
+ "reflect": false,
223
+ "defaultValue": "false"
224
+ },
225
+ "selectedObject": {
226
+ "type": "unknown",
227
+ "mutable": true,
228
+ "complexType": {
229
+ "original": "ObjectData",
230
+ "resolved": "{ id: string; icon: string; name: string; description?: string; }",
231
+ "references": {
232
+ "ObjectData": {
233
+ "location": "local"
234
+ }
235
+ }
236
+ },
237
+ "required": false,
238
+ "optional": true,
239
+ "docs": {
240
+ "tags": [],
241
+ "text": "Currently selected object"
242
+ }
243
+ },
244
+ "selectorSourceCallback": {
245
+ "type": "unknown",
246
+ "mutable": false,
247
+ "complexType": {
248
+ "original": "SelectorSourceCallback",
249
+ "resolved": "(prefix: string) => Promise<SelectorCategoryData[]>",
250
+ "references": {
251
+ "SelectorSourceCallback": {
252
+ "location": "local"
253
+ }
254
+ }
255
+ },
256
+ "required": false,
257
+ "optional": true,
258
+ "docs": {
259
+ "tags": [],
260
+ "text": "Callback invoked when user writes on object selector input, return possible options to show in autocomplete list"
261
+ }
262
+ },
263
+ "loadReferencesCallback": {
264
+ "type": "unknown",
265
+ "mutable": false,
266
+ "complexType": {
267
+ "original": "LoadReferencesCallback",
268
+ "resolved": "(id: string, to: boolean) => Promise<ReferenceData[]>",
269
+ "references": {
270
+ "LoadReferencesCallback": {
271
+ "location": "local"
272
+ }
273
+ }
274
+ },
275
+ "required": false,
276
+ "optional": true,
277
+ "docs": {
278
+ "tags": [],
279
+ "text": "Callback invoked when a node is expanded in any of the references panels"
280
+ }
281
+ },
282
+ "openObjectCallback": {
283
+ "type": "unknown",
284
+ "mutable": false,
285
+ "complexType": {
286
+ "original": "OpenObjectCallback",
287
+ "resolved": "(id: string) => Promise<void>",
288
+ "references": {
289
+ "OpenObjectCallback": {
290
+ "location": "local"
291
+ }
292
+ }
293
+ },
294
+ "required": false,
295
+ "optional": true,
296
+ "docs": {
297
+ "tags": [],
298
+ "text": "Callback invoked when user wants to open an object"
299
+ }
300
+ },
301
+ "openSelectorDialogCallback": {
302
+ "type": "unknown",
303
+ "mutable": false,
304
+ "complexType": {
305
+ "original": "OpenSelectorDialogCallback",
306
+ "resolved": "() => Promise<ObjectData>",
307
+ "references": {
308
+ "OpenSelectorDialogCallback": {
309
+ "location": "local"
310
+ }
311
+ }
312
+ },
313
+ "required": false,
314
+ "optional": true,
315
+ "docs": {
316
+ "tags": [],
317
+ "text": "Callback invoked when user wants to show object selection dialog"
318
+ }
319
+ },
320
+ "selectReferenceCallback": {
321
+ "type": "unknown",
322
+ "mutable": false,
323
+ "complexType": {
324
+ "original": "SelectReferenceCallback",
325
+ "resolved": "(id: string) => Promise<void>",
326
+ "references": {
327
+ "SelectReferenceCallback": {
328
+ "location": "local"
329
+ }
330
+ }
331
+ },
332
+ "required": false,
333
+ "optional": true,
334
+ "docs": {
335
+ "tags": [],
336
+ "text": "Callback invoked when any item from the references panels is selected"
337
+ }
338
+ }
339
+ };
340
+ }
341
+ static get states() {
342
+ return {
343
+ "barHidden": {},
344
+ "objectsSuggestions": {},
345
+ "referencedBy": {},
346
+ "referencesTo": {}
347
+ };
348
+ }
349
+ static get events() {
350
+ return [{
351
+ "method": "componentDidRenderEvent",
352
+ "name": "componentDidRenderEvent",
353
+ "bubbles": true,
354
+ "cancelable": true,
355
+ "composed": true,
356
+ "docs": {
357
+ "tags": [{
358
+ "name": "description",
359
+ "text": "Gets fired when the component has rendered for the first time."
360
+ }],
361
+ "text": ""
362
+ },
363
+ "complexType": {
364
+ "original": "string",
365
+ "resolved": "string",
366
+ "references": {}
367
+ }
368
+ }];
369
+ }
370
+ static get elementRef() { return "el"; }
371
+ static get watchers() {
372
+ return [{
373
+ "propName": "selectedObject",
374
+ "methodName": "selectedObjectHandler"
375
+ }];
376
+ }
377
+ }
@@ -1,2 +1,3 @@
1
1
  import "@genexus/gemini";
2
2
  export * from "./components";
3
+ import "@genexus/chameleon-controls-library";