@genexus/genexus-ide-ui 0.0.62 → 0.0.63

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 (113) hide show
  1. package/dist/cjs/{ch-tree-x_3.cjs.entry.js → ch-checkbox_4.cjs.entry.js} +277 -71
  2. package/dist/cjs/ch-next-data-modeling-render.cjs.entry.js +242 -0
  3. package/dist/cjs/{ch-next-data-modeling-item.cjs.entry.js → ch-next-data-modeling_2.cjs.entry.js} +20 -1
  4. package/dist/cjs/ch-tree-view-render-wrapper.cjs.entry.js +160 -0
  5. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  6. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +41 -39
  7. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +23 -11
  8. package/dist/cjs/gx-ide-test.cjs.entry.js +107 -122
  9. package/dist/cjs/gxg-color-picker.cjs.entry.js +2 -2
  10. package/dist/cjs/gxg-title-editable.cjs.entry.js +11 -4
  11. package/dist/cjs/{gxg-tree_2.cjs.entry.js → gxg-tree-item.cjs.entry.js} +0 -212
  12. package/dist/cjs/gxg-tree-view.cjs.entry.js +165 -0
  13. package/dist/cjs/gxg-tree.cjs.entry.js +218 -0
  14. package/dist/cjs/loader.cjs.js +1 -1
  15. package/dist/collection/collection-manifest.json +5 -3
  16. package/dist/collection/components/_test/test.css +5 -0
  17. package/dist/collection/components/_test/test.js +109 -220
  18. package/dist/collection/components/kb-manager-export/helpers.js +7 -23
  19. package/dist/collection/components/kb-manager-export/kb-manager-export.css +20 -0
  20. package/dist/collection/components/kb-manager-export/kb-manager-export.js +42 -22
  21. package/dist/collection/components/kb-manager-import/gx-ide-assets/kb-manager-import/langs/kb-manager-import.lang.en.json +1 -0
  22. package/dist/collection/components/kb-manager-import/kb-manager-import.js +23 -11
  23. package/dist/components/ch-next-data-modeling-item.js +1 -457
  24. package/dist/components/ch-next-data-modeling-render.js +295 -0
  25. package/dist/components/ch-next-data-modeling.js +1 -27
  26. package/dist/components/ch-tree-view-item.js +6 -0
  27. package/dist/components/ch-tree-view-render-wrapper.js +224 -0
  28. package/dist/components/ch-tree-view-render.js +6 -0
  29. package/dist/components/ch-tree-view.js +6 -0
  30. package/dist/components/gx-ide-kb-manager-export.js +75 -73
  31. package/dist/components/gx-ide-kb-manager-import.js +38 -20
  32. package/dist/components/gx-ide-references.js +21 -15
  33. package/dist/components/gx-ide-test.js +120 -160
  34. package/dist/components/gxg-color-picker.js +2 -2
  35. package/dist/components/gxg-title-editable.js +12 -4
  36. package/dist/components/gxg-tree-item.js +614 -1
  37. package/dist/components/gxg-tree-view.js +2 -2
  38. package/dist/components/gxg-tree.js +236 -1
  39. package/dist/components/index.js +5 -3
  40. package/dist/components/next-data-modeling-item.js +466 -0
  41. package/dist/{esm/ch-next-data-modeling.entry.js → components/next-data-modeling.js} +21 -7
  42. package/dist/components/{tree-x-list-item.js → tree-view-item.js} +9 -9
  43. package/dist/components/{ch-test-tree-x.js → tree-view-render.js} +168 -28
  44. package/dist/components/tree-view.js +410 -435
  45. package/dist/components/tree-view2.js +226 -0
  46. package/dist/esm/{ch-tree-x_3.entry.js → ch-checkbox_4.entry.js} +275 -70
  47. package/dist/esm/ch-next-data-modeling-render.entry.js +238 -0
  48. package/dist/esm/{ch-next-data-modeling-item.entry.js → ch-next-data-modeling_2.entry.js} +21 -3
  49. package/dist/esm/ch-tree-view-render-wrapper.entry.js +156 -0
  50. package/dist/esm/genexus-ide-ui.js +1 -1
  51. package/dist/esm/gx-ide-kb-manager-export.entry.js +41 -39
  52. package/dist/esm/gx-ide-kb-manager-import.entry.js +23 -11
  53. package/dist/esm/gx-ide-test.entry.js +108 -123
  54. package/dist/esm/gxg-color-picker.entry.js +2 -2
  55. package/dist/esm/gxg-title-editable.entry.js +11 -4
  56. package/dist/{components/gxg-tree-item2.js → esm/gxg-tree-item.entry.js} +9 -79
  57. package/dist/esm/gxg-tree-view.entry.js +161 -0
  58. package/dist/{components/gxg-tree2.js → esm/gxg-tree.entry.js} +8 -32
  59. package/dist/esm/loader.js +1 -1
  60. package/dist/genexus-ide-ui/genexus-ide-ui.css +1 -1
  61. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  62. package/dist/genexus-ide-ui/gx-ide-assets/kb-manager-import/langs/kb-manager-import.lang.en.json +1 -0
  63. package/dist/genexus-ide-ui/p-13177896.entry.js +1 -0
  64. package/dist/genexus-ide-ui/p-19fef562.entry.js +1 -0
  65. package/dist/genexus-ide-ui/p-2781b92a.entry.js +1 -0
  66. package/dist/genexus-ide-ui/p-2c17e71d.entry.js +1 -0
  67. package/dist/genexus-ide-ui/p-40a57a36.entry.js +1 -0
  68. package/dist/genexus-ide-ui/p-636d02fa.entry.js +1 -0
  69. package/dist/genexus-ide-ui/p-7b63be93.entry.js +1 -0
  70. package/dist/genexus-ide-ui/p-8a7c4561.entry.js +1 -0
  71. package/dist/genexus-ide-ui/p-a2cb0e6b.entry.js +1 -0
  72. package/dist/genexus-ide-ui/p-a9c8b373.entry.js +1 -0
  73. package/dist/genexus-ide-ui/p-b819706e.entry.js +1 -0
  74. package/dist/genexus-ide-ui/p-bacd879c.entry.js +1 -0
  75. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/next/data-modeling-render/next-data-modeling-render.css +3 -0
  76. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/renders/tree-view/tree-view-render.css +3 -0
  77. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/test/test-tree-view/tree-view-render-wrapper.css +0 -0
  78. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tree-view/tree-view/tree-view.css +45 -0
  79. package/dist/node_modules/@genexus/gemini/dist/collection/components/title-editable/title-editable.css +17 -3
  80. package/dist/node_modules/@genexus/gemini/dist/collection/components/tree-view/tree-view.css +5 -2
  81. package/dist/types/common/helpers.d.ts +2 -2
  82. package/dist/types/components/_test/test.d.ts +3 -35
  83. package/dist/types/components/kb-manager-export/helpers.d.ts +4 -4
  84. package/dist/types/components/kb-manager-export/kb-manager-export.d.ts +10 -5
  85. package/dist/types/components/kb-manager-import/helpers.d.ts +3 -3
  86. package/dist/types/components/kb-manager-import/kb-manager-import.d.ts +7 -6
  87. package/dist/types/components/references/helpers.d.ts +2 -2
  88. package/dist/types/components/references/references.d.ts +3 -3
  89. package/dist/types/components.d.ts +3 -60
  90. package/package.json +3 -3
  91. package/dist/cjs/ch-checkbox.cjs.entry.js +0 -93
  92. package/dist/cjs/ch-next-data-modeling.cjs.entry.js +0 -19
  93. package/dist/cjs/ch-test-tree-x.cjs.entry.js +0 -458
  94. package/dist/components/ch-tree-x-list-item.js +0 -6
  95. package/dist/components/ch-tree-x.js +0 -6
  96. package/dist/components/tree-x.js +0 -504
  97. package/dist/esm/ch-checkbox.entry.js +0 -89
  98. package/dist/esm/ch-test-tree-x.entry.js +0 -454
  99. package/dist/esm/gxg-tree_2.entry.js +0 -757
  100. package/dist/genexus-ide-ui/p-092ccacd.entry.js +0 -1
  101. package/dist/genexus-ide-ui/p-1ad68b23.entry.js +0 -3
  102. package/dist/genexus-ide-ui/p-3442d19a.entry.js +0 -1
  103. package/dist/genexus-ide-ui/p-39968306.entry.js +0 -1
  104. package/dist/genexus-ide-ui/p-5755f985.entry.js +0 -1
  105. package/dist/genexus-ide-ui/p-85597097.entry.js +0 -1
  106. package/dist/genexus-ide-ui/p-9e530c7d.entry.js +0 -1
  107. package/dist/genexus-ide-ui/p-ad5040e4.entry.js +0 -1
  108. package/dist/genexus-ide-ui/p-aeb3b032.entry.js +0 -1
  109. package/dist/genexus-ide-ui/p-c53522c9.entry.js +0 -1
  110. package/dist/genexus-ide-ui/p-d104f9a4.entry.js +0 -1
  111. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/test/test-tree-x.css +0 -3
  112. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tree-view/tree-x/tree-x.css +0 -45
  113. /package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tree-view/{tree-x-list-item/tree-x-list-item.css → tree-view-item/tree-view-item.css} +0 -0
@@ -0,0 +1,238 @@
1
+ import { r as registerInstance, c as createEvent, h } from './index-0da01575.js';
2
+
3
+ const nextDataModelingRenderCss = "ch-next-data-modeling-render{display:contents}";
4
+
5
+ const getSubLevelEntitiesATTs = (result, level) => {
6
+ level.forEach(entityItem => {
7
+ const entityItemLevel = entityItem.Level;
8
+ if (entityItem.Type === "LEVEL") {
9
+ /* Following level entities with DataType */
10
+ result[entityItem.DataType] = entityItemLevel.map(subEntityItem => subEntityItem.Name);
11
+ getSubLevelEntitiesATTs(result, entityItemLevel);
12
+ }
13
+ });
14
+ };
15
+ const updateToEntityATTs = (dm) => {
16
+ if (!dm) {
17
+ return {};
18
+ }
19
+ const result = {};
20
+ dm.Entities.forEach((entity) => {
21
+ const entityLevel = entity.Level;
22
+ /* First level entities with name */
23
+ result[entity.Name] = entityLevel.map(entityItem => entityItem.Name);
24
+ if (entityLevel) {
25
+ getSubLevelEntitiesATTs(result, entityLevel);
26
+ }
27
+ });
28
+ return result;
29
+ };
30
+ const NextDataModeling = class {
31
+ constructor(hostRef) {
32
+ registerInstance(this, hostRef);
33
+ this.fieldAdded = createEvent(this, "fieldAdded", 7);
34
+ this.fieldRemoved = createEvent(this, "fieldRemoved", 7);
35
+ this.entities = [];
36
+ this.editedControl = null;
37
+ this.entityWasAdded = "none";
38
+ /**
39
+ * The labels used in the buttons of the items. Important for accessibility.
40
+ */
41
+ this.captions = {
42
+ ATT: "Attribute",
43
+ ENTITY: "Entity",
44
+ LEVEL: "Collection",
45
+ adding: "Adding...",
46
+ addNewEntity: "Add new entity",
47
+ addNewField: "Add new field",
48
+ cancel: "Cancel",
49
+ collection: "Collection",
50
+ confirm: "Confirm",
51
+ delete: "Delete",
52
+ deleteMode: "Confirm delete?",
53
+ deleting: "Deleting...",
54
+ edit: "Edit",
55
+ editing: "Saving...",
56
+ newEntity: "New Entity",
57
+ newField: "New Field"
58
+ };
59
+ /**
60
+ * This attribute lets you specify if the element is disabled.
61
+ * If disabled, it will not fire any user interaction related event.
62
+ */
63
+ this.disabled = false;
64
+ /**
65
+ * The error texts used for the new field input.
66
+ */
67
+ this.errorTexts = {
68
+ Empty: "Field is empty.",
69
+ AlreadyDefined1: "Field ",
70
+ AlreadyDefinedEntity1: "Entity ",
71
+ AlreadyDefined2: " already exists."
72
+ };
73
+ /**
74
+ * This property is a WA due to Angular's bug not letting execute UC 2.0
75
+ * methods on different layouts.
76
+ */
77
+ this.hideLoading = null;
78
+ /**
79
+ * Determine the maximum amount of ATTs displayed per entity.
80
+ */
81
+ this.maxAtts = 3;
82
+ /**
83
+ * This attribute indicates that the user cannot modify the value of the control.
84
+ * Same as [readonly](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-readonly)
85
+ * attribute for `input` elements.
86
+ */
87
+ this.readonly = false;
88
+ this.addField = (collection) => (event) => {
89
+ this.addEntityItem(collection, event.detail);
90
+ this.updateReferences(event, true);
91
+ };
92
+ this.deleteField = (collection, index) => (event) => {
93
+ collection.remove(index + 1);
94
+ this.updateReferences(event);
95
+ };
96
+ this.editField = (entityItem) => (event) => {
97
+ entityItem.Name = event.detail.name;
98
+ entityItem.Type = event.detail.type;
99
+ entityItem.DataType = ""; // Remove DataType
100
+ this.updateReferences(event, true);
101
+ };
102
+ this.addEntity = (collection) => (event) => {
103
+ const newItem = {
104
+ Name: event.detail.name,
105
+ Level: this.createGxCollectionCallback()
106
+ };
107
+ collection.push(newItem);
108
+ this.addEntityItem(newItem.Level, event.detail.level[0]);
109
+ this.updateReferences(event, true);
110
+ this.entityWasAdded = "adding";
111
+ };
112
+ this.editEntity = (entityItem) => (event) => {
113
+ entityItem.Name = event.detail.name;
114
+ this.updateReferences(event, true);
115
+ };
116
+ }
117
+ handleDataModelChange(newDataModel) {
118
+ this.entityNameToATTs = updateToEntityATTs(newDataModel);
119
+ this.entities = Object.keys(this.entityNameToATTs);
120
+ }
121
+ handleHideLoadingChange() {
122
+ this.editedControl.hideWaitingMode();
123
+ if (this.entityWasAdded === "adding") {
124
+ this.entityWasAdded = "finished";
125
+ }
126
+ }
127
+ addEntityItem(collection, item) {
128
+ const newItem = {
129
+ Name: item.name,
130
+ Type: item.type,
131
+ DataType: ""
132
+ };
133
+ collection.push(newItem);
134
+ }
135
+ updateReferences(event, fieldAdded = false) {
136
+ event.stopPropagation();
137
+ this.editedControl = event.target;
138
+ if (fieldAdded) {
139
+ this.fieldAdded.emit();
140
+ }
141
+ else {
142
+ this.fieldRemoved.emit();
143
+ }
144
+ this.processEntityAdding();
145
+ }
146
+ processEntityAdding() {
147
+ if (!this.editedControl || this.entityWasAdded === "none") {
148
+ return;
149
+ }
150
+ const entityClassList = this.editedControl.classList;
151
+ const firstItemContainerClassList = this.editedControl.firstElementChild.classList;
152
+ const firstItemClassList = this.editedControl.firstElementChild.firstElementChild.classList;
153
+ if (this.entityWasAdded === "adding") {
154
+ entityClassList.remove(this.addingModeCommonClass, this.entityAddingModeClass);
155
+ entityClassList.add(this.entityClass, this.commonClass);
156
+ firstItemContainerClassList.add(this.fieldContainerClass);
157
+ firstItemClassList.remove(this.addingModeCommonClass, ...this.fieldAddingModeClass.split(" "));
158
+ firstItemClassList.add(this.fieldClass, this.fieldCommonClass, this.commonClass);
159
+ return;
160
+ }
161
+ if (this.entityWasAdded === "finished") {
162
+ entityClassList.remove(this.entityClass);
163
+ entityClassList.add(this.addingModeCommonClass, this.entityAddingModeClass);
164
+ firstItemContainerClassList.remove(this.fieldContainerClass);
165
+ firstItemClassList.remove(this.fieldClass);
166
+ firstItemClassList.add(this.addingModeCommonClass, ...this.fieldAddingModeClass.split(" "));
167
+ this.entityWasAdded = "none";
168
+ return;
169
+ }
170
+ }
171
+ componentWillLoad() {
172
+ this.handleDataModelChange(this.dataModel);
173
+ }
174
+ render() {
175
+ var _a, _b;
176
+ return (h("ch-next-data-modeling", { class: this.cssClass }, this.dataModel != null &&
177
+ this.dataModel.Entities != null &&
178
+ this.dataModel.Entities.map((entity, i) => {
179
+ var _a, _b, _c;
180
+ return (h("ch-next-data-modeling-item", { key: entity.Name, captions: this.captions, class: this.entityClass + " " + this.commonClass, disabled: this.disabled, errorTexts: this.errorTexts, fieldNames: this.entities, name: entity.Name, level: 0, readonly: this.readonly, onDeleteField: !this.readonly
181
+ ? this.deleteField((_a = this.dataModelToEdit) === null || _a === void 0 ? void 0 : _a.Entities, i)
182
+ : null, onEditField: !this.readonly
183
+ ? this.editEntity((_b = this.dataModelToEdit) === null || _b === void 0 ? void 0 : _b.Entities[i])
184
+ : null }, h("ch-next-data-modeling", { class: this.fieldContainerClass }, entity.Level.map((field, j) => {
185
+ var _a, _b, _c;
186
+ return (h("ch-next-data-modeling-item", { key: field.Name, captions: this.captions, class: this.fieldClass +
187
+ " " +
188
+ this.fieldCommonClass +
189
+ " " +
190
+ this.commonClass, dataType: field.DataType, disabled: this.disabled, entityNameToATTs: this.entityNameToATTs, errorTexts: this.errorTexts, fieldNames: this.entityNameToATTs[entity.Name], maxAtts: this.maxAtts, name: field.Name, readonly: this.readonly, type: field.Type, onDeleteField: !this.readonly
191
+ ? this.deleteField((_a = this.dataModelToEdit) === null || _a === void 0 ? void 0 : _a.Entities[i].Level, j)
192
+ : null, onEditField: !this.readonly
193
+ ? this.editField((_b = this.dataModelToEdit) === null || _b === void 0 ? void 0 : _b.Entities[i].Level[j])
194
+ : null }, field.Level != null && field.Level.length > 0 && (h("ch-next-data-modeling", { class: this.subFieldContainerClass }, field.Level.map((subField, k) => {
195
+ var _a, _b;
196
+ return (h("ch-next-data-modeling-item", { key: subField.Name, captions: this.captions, class: this.subFieldClass +
197
+ " " +
198
+ this.fieldCommonClass +
199
+ " " +
200
+ this.commonClass, dataType: subField.DataType, disabled: this.disabled, entityNameToATTs: this.entityNameToATTs, errorTexts: this.errorTexts, fieldNames: this.entityNameToATTs[field.DataType], level: 2, maxAtts: this.maxAtts, name: subField.Name, readonly: this.readonly, type: subField.Type, onDeleteField: !this.readonly
201
+ ? this.deleteField((_a = this.dataModelToEdit) === null || _a === void 0 ? void 0 : _a.Entities[i].Level[j].Level, k)
202
+ : null, onEditField: !this.readonly
203
+ ? this.editField((_b = this.dataModelToEdit) === null || _b === void 0 ? void 0 : _b.Entities[i].Level[j].Level[k])
204
+ : null }));
205
+ }), !this.readonly && (h("ch-next-data-modeling-item", { key: "-1", captions: this.captions, class: this.subFieldAddingModeClass +
206
+ " " +
207
+ this.fieldCommonClass +
208
+ " " +
209
+ this.addingModeCommonClass +
210
+ " " +
211
+ this.commonClass, disabled: this.disabled, errorTexts: this.errorTexts, fieldNames: this.entityNameToATTs[field.DataType], level: 2, mode: "add", type: "ATT", onNewField: this.addField((_c = this.dataModelToEdit) === null || _c === void 0 ? void 0 : _c.Entities[i].Level[j].Level) }))))));
212
+ }), !this.readonly && (h("ch-next-data-modeling-item", { key: "-1", captions: this.captions, class: this.fieldAddingModeClass +
213
+ " " +
214
+ this.fieldCommonClass +
215
+ " " +
216
+ this.addingModeCommonClass +
217
+ " " +
218
+ this.commonClass, disabled: this.disabled, errorTexts: this.errorTexts, fieldNames: this.entityNameToATTs[entity.Name], mode: "add", type: "ATT", onNewField: this.addField((_c = this.dataModelToEdit) === null || _c === void 0 ? void 0 : _c.Entities[i].Level) })))));
219
+ }), ((_a = this.dataModel) === null || _a === void 0 ? void 0 : _a.Entities) && !this.readonly && (h("ch-next-data-modeling-item", { key: "-1", captions: this.captions, class: this.entityAddingModeClass +
220
+ " " +
221
+ this.addingModeCommonClass +
222
+ " " +
223
+ this.commonClass, disabled: this.disabled, errorTexts: this.errorTexts, fieldNames: this.entities, level: 0, mode: "add", onNewEntity: this.addEntity((_b = this.dataModelToEdit) === null || _b === void 0 ? void 0 : _b.Entities) }, h("ch-next-data-modeling", null, h("ch-next-data-modeling-item", { actionsVisible: false, captions: this.captions, class: this.fieldAddingModeClass +
224
+ " " +
225
+ this.fieldCommonClass +
226
+ " " +
227
+ this.addingModeCommonClass +
228
+ " " +
229
+ this.commonClass, disabled: this.disabled, errorTexts: this.errorTexts, mode: "add", showNewFieldBtn: false, type: "ATT" }))))));
230
+ }
231
+ static get watchers() { return {
232
+ "dataModel": ["handleDataModelChange"],
233
+ "hideLoading": ["handleHideLoadingChange"]
234
+ }; }
235
+ };
236
+ NextDataModeling.style = nextDataModelingRenderCss;
237
+
238
+ export { NextDataModeling as ch_next_data_modeling_render };
@@ -1,6 +1,18 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-0da01575.js';
1
+ import { r as registerInstance, h, H as Host, c as createEvent, g as getElement } from './index-0da01575.js';
2
2
  import { K as KEY_CODES } from './reserverd-names-2a2d0fb3.js';
3
3
 
4
+ const nextDataModelingCss = "ch-next-data-modeling{--delete-icon:url('data:image/svg+xml,<svg width=\"14\" height=\"16\" viewBox=\"0 0 14 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1.87729 4.55154H12.1585V14.3936C12.1613 14.8186 11.9944 15.2273 11.6949 15.5288C11.3953 15.8304 10.9878 16 10.5627 16H3.47304C3.04797 16 2.64046 15.8304 2.34089 15.5288C2.04133 15.2273 1.87447 14.8186 1.87729 14.3936V4.55154ZM10.5734 1.42436V1.25301C10.5676 0.559264 10.0035 0 9.30972 0H4.72605C4.03228 0 3.46821 0.559264 3.46233 1.25301V1.42436H0.078125V3.03079H14.0005V1.42436H10.5734Z\" fill=\"%23000\"/></svg>');--edit-icon:url('data:image/svg+xml,<svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M14.4291 5.4137L10.8838 1.73151L12.0517 0.50411C12.3715 0.168037 12.7644 0 13.2304 0C13.6964 0 14.089 0.168037 14.4082 0.50411L15.5761 1.73151C15.8958 2.06758 16.0627 2.47321 16.0766 2.94838C16.0905 3.42356 15.9376 3.82889 15.6178 4.16438L14.4291 5.4137ZM13.2195 6.70685L4.37728 16H0.832031V12.274L9.67429 2.98082L13.2195 6.70685Z\" fill=\"%23000\"/></svg>');display:grid;grid-template-columns:1fr;grid-auto-rows:min-content;flex:1;height:100%}";
5
+
6
+ const NextDataModeling = class {
7
+ constructor(hostRef) {
8
+ registerInstance(this, hostRef);
9
+ }
10
+ render() {
11
+ return (h(Host, { role: "list" }, h("slot", null)));
12
+ }
13
+ };
14
+ NextDataModeling.style = nextDataModelingCss;
15
+
4
16
  const nextDataModelingItemCss = ":where(button){all:unset;display:inline-flex;cursor:pointer}*,::before,::after{box-sizing:border-box}.error-text,.name{color:inherit;font:inherit;margin:0;padding:0;outline:0}gx-edit:is(.gx-edit--auto-fill,.gx-edit--auto-fill:focus-within,.gx-edit--auto-fill:hover){background-color:var(--gx-edit-auto-fill-background-color)}:host{display:grid;--chevron-color:#ccc}:host(:hover) .button-primary,:host(:focus-within) .button-primary{display:grid}:host(:hover) .button-primary::before,:host(:focus-within) .button-primary::before{content:\"\"}:host(.gx-disabled){pointer-events:none}.add-new-field--level-0{display:grid;grid-template:\"name . . .\" min-content \"field-name type confirm cancel\" 1fr \"error-text . confirm cancel\" min-content \"sub-item sub-item confirm cancel\" min-content/1fr min-content 56px 32px;row-gap:8px}.add-new-field--level-0 ::slotted(ch-next-data-modeling){grid-area:sub-item}.add-new-field--level-1{display:grid;grid-template:\"name . . .\" min-content \"field-name type confirm cancel\" 1fr \"error-text . . .\" min-content/1fr min-content 56px 32px;row-gap:8px}.add-new-field--level-2{display:grid;grid-template:\"sub-field name . . .\" min-content \". field-name type confirm cancel\" 1fr \". error-text . . .\" min-content/min-content 1fr min-content 56px 32px;row-gap:4px}.add-new-field--no-actions{grid-template:\"sub-field name .\" min-content \". field-name type\" 1fr \". error-text .\" min-content/min-content 1fr min-content}.accordion:hover .edit-button,.accordion:hover .delete-button,.accordion:focus-within .edit-button,.accordion:focus-within .delete-button{display:grid}.sub-field{grid-area:sub-field}.field-name{grid-area:field-name;margin-inline-end:8px}.button-confirm{grid-area:confirm;margin-inline:16px 8px}.button-cancel{grid-area:cancel}.error-text{grid-area:error-text;display:flex;white-space:break-spaces}.header{display:grid;grid-template:\"sub-field name type edit delete\" 1fr/min-content max-content 1fr min-content max-content;align-items:center;width:100%;margin-inline-end:12px}.accordion::part(accordion__header){column-gap:24px}.edit-mode{grid-template:\"sub-field field-name type confirm cancel\" min-content \"sub-field error-text error-text confirm cancel\" min-content/min-content 1fr min-content 56px 32px}.name{grid-area:name}.name-entity{text-decoration:underline}.type{grid-area:type}.select-wrapper{--chevron:url('data:image/svg+xml,<svg width=\"12\" height=\"8\" viewBox=\"0 0 12 8\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1.41 0L6 4.59L10.59 0L12 1.42L6 7.42L0 1.42L1.41 0Z\"/></svg>');grid-area:type;position:relative}.select-wrapper::after{content:\"\";display:flex;position:absolute;inset-inline-end:0;inset-block-start:calc(50% - 3.75px);width:12px;height:7.5px;margin-inline:8px 16px;-webkit-mask:var(--chevron) no-repeat;background-color:var(--chevron-color);pointer-events:none}.select{display:flex;height:100%;appearance:none;background-color:unset;cursor:pointer;outline:unset;transition-property:background-color, border-color, color;transition-duration:250ms}.button-new-entity{align-items:center;transition:color 250ms}.optimization{display:contents}.button-primary{display:none;align-self:center;height:20px;padding:2px}.button-primary::before{display:flex}.button-edit{grid-area:edit;width:21px}.button-edit::before{-webkit-mask:var(--edit-icon) no-repeat}.button-delete{grid-area:delete;width:18px;margin-inline-start:12px}.button-delete::before{-webkit-mask:var(--delete-icon) no-repeat}.delete-mode,.waiting-mode{grid-area:delete;display:grid;grid-template-columns:1fr 24px 24px;align-items:center;column-gap:8px;cursor:auto;animation:fade-in 250ms ease-in-out}.waiting-mode{grid-template-columns:24px 1fr}.waiting-mode__loading{order:-1;width:100%;fill:none;animation:rotate 1.5s linear 0.125s infinite}circle{stroke:currentColor;stroke-dasharray:1, 200;stroke-linecap:round;animation:indeterminate-loading 1.25s ease-in-out 0.125s infinite}@keyframes fade-in{0%{opacity:0}}@keyframes rotate{100%{transform:rotate(1turn)}}@keyframes indeterminate-loading{50%,60%{stroke-dasharray:20, 200;stroke-dashoffset:-8px}100%{stroke-dashoffset:-24px}}";
5
17
 
6
18
  const NAME = "name";
@@ -133,6 +145,12 @@ const NextDataModelingSubitem = class {
133
145
  * The name of the field.
134
146
  */
135
147
  this.name = "";
148
+ /**
149
+ * This attribute indicates that the user cannot modify the value of the control.
150
+ * Same as [readonly](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-readonly)
151
+ * attribute for `input` elements.
152
+ */
153
+ this.readonly = false;
136
154
  /**
137
155
  * `true` to show the new field button when `mode === "add"`
138
156
  */
@@ -310,7 +328,7 @@ const NextDataModelingSubitem = class {
310
328
  "edit-mode": this.mode === "edit"
311
329
  }, part: `${PART_PREFIX}header-content`, tabindex: this.level !== 0 ? "0" : undefined }, this.level === 2 && (h("div", { "aria-hidden": "true", class: "sub-field", part: `${PART_PREFIX}sub-field` })), this.mode === "edit"
312
330
  ? this.editableContent("edit", captions, disabledPart, errorPart)
313
- : this.readonlyContent(captions, showWaitingModeTexts ? this.lastEditInfo.name : this.name, showWaitingModeTexts ? this.lastEditInfo.type : this.type), this.actionsVisible && (h("div", { class: {
331
+ : this.readonlyContent(captions, showWaitingModeTexts ? this.lastEditInfo.name : this.name, showWaitingModeTexts ? this.lastEditInfo.type : this.type), !this.readonly && this.actionsVisible && (h("div", { class: {
314
332
  "delete-mode": this.mode === "delete",
315
333
  optimization: this.mode !== "delete",
316
334
  "waiting-mode": this.waitingMode !== "none"
@@ -413,4 +431,4 @@ const NextDataModelingSubitem = class {
413
431
  };
414
432
  NextDataModelingSubitem.style = nextDataModelingItemCss;
415
433
 
416
- export { NextDataModelingSubitem as ch_next_data_modeling_item };
434
+ export { NextDataModeling as ch_next_data_modeling, NextDataModelingSubitem as ch_next_data_modeling_item };
@@ -0,0 +1,156 @@
1
+ import { r as registerInstance, c as createEvent, h } from './index-0da01575.js';
2
+
3
+ const treeViewRenderWrapperCss = "";
4
+
5
+ const DEFAULT_DRAG_DISABLED_VALUE = false;
6
+ const DEFAULT_DROP_DISABLED_VALUE = false;
7
+ const DEFAULT_EDITABLE_ITEMS_VALUE = true;
8
+ const defaultRenderItem = (itemModel, treeState, lastItem, level) => {
9
+ var _a, _b, _c, _d, _e, _f;
10
+ return (treeState.filterType === "none" || itemModel.render !== false) && (h("ch-tree-view-item", { id: itemModel.id, caption: itemModel.caption, checkbox: (_a = itemModel.checkbox) !== null && _a !== void 0 ? _a : treeState.checkbox, checked: (_b = itemModel.checked) !== null && _b !== void 0 ? _b : treeState.checked, class: itemModel.class, disabled: itemModel.disabled, downloading: itemModel.downloading, dragDisabled: (_c = itemModel.dragDisabled) !== null && _c !== void 0 ? _c : treeState.dragDisabled, dropDisabled: (_d = itemModel.dropDisabled) !== null && _d !== void 0 ? _d : treeState.dropDisabled, editable: (_e = itemModel.editable) !== null && _e !== void 0 ? _e : treeState.editableItems, expanded: itemModel.expanded, indeterminate: itemModel.indeterminate, lastItem: lastItem, lazyLoad: itemModel.lazy, leaf: itemModel.leaf, leftImgSrc: itemModel.leftImgSrc, level: level, metadata: itemModel.metadata, rightImgSrc: itemModel.rightImgSrc, selected: itemModel.selected, showExpandableButton: itemModel.showExpandableButton, showLines: treeState.showLines, toggleCheckboxes: (_f = itemModel.toggleCheckboxes) !== null && _f !== void 0 ? _f : treeState.toggleCheckboxes }, !itemModel.leaf &&
11
+ itemModel.items != null &&
12
+ itemModel.items.map((subModel, index) => defaultRenderItem(subModel, treeState, treeState.showLines && index === itemModel.items.length - 1, level + 1))));
13
+ };
14
+ const ChTreeViewRenderWrapper = class {
15
+ constructor(hostRef) {
16
+ registerInstance(this, hostRef);
17
+ this.checkedItemsChange = createEvent(this, "checkedItemsChange", 7);
18
+ this.itemContextmenu = createEvent(this, "itemContextmenu", 7);
19
+ this.itemOpenReference = createEvent(this, "itemOpenReference", 7);
20
+ this.selectedItemsChange = createEvent(this, "selectedItemsChange", 7);
21
+ /**
22
+ * Set this attribute if you want display a checkbox in all items by default.
23
+ */
24
+ this.checkbox = false;
25
+ /**
26
+ * Set this attribute if you want the checkbox to be checked in all items by
27
+ * default.
28
+ * Only works if `checkbox = true`
29
+ */
30
+ this.checked = false;
31
+ /**
32
+ * This attribute lets you specify if the drag operation is disabled in all
33
+ * items by default. If `true`, the items can't be dragged.
34
+ */
35
+ this.dragDisabled = DEFAULT_DRAG_DISABLED_VALUE;
36
+ /**
37
+ * This attribute lets you specify if the drop operation is disabled in all
38
+ * items by default. If `true`, the items won't accept any drops.
39
+ */
40
+ this.dropDisabled = DEFAULT_DROP_DISABLED_VALUE;
41
+ /**
42
+ * This attribute lets you specify if the edit operation is enabled in all
43
+ * items by default. If `true`, the items can edit its caption in place.
44
+ */
45
+ this.editableItems = DEFAULT_EDITABLE_ITEMS_VALUE;
46
+ /**
47
+ * This property lets you determine the list of items that will be filtered.
48
+ * Only works if `filterType = "id-list"`.
49
+ */
50
+ this.filterList = [];
51
+ /**
52
+ * This property lets you determine the options that will be applied to the
53
+ * filter.
54
+ * Only works if `filterType = "caption" | "metadata"`.
55
+ */
56
+ this.filterOptions = {};
57
+ /**
58
+ * This attribute lets you define what kind of filter is applied to items.
59
+ * Only items that satisfy the filter predicate will be displayed.
60
+ *
61
+ * | Value | Details |
62
+ * | ----------- | ---------------------------------------------------------------------------------------------- |
63
+ * | `checked` | Show only the items that have a checkbox and are checked. |
64
+ * | `unchecked` | Show only the items that have a checkbox and are not checked. |
65
+ * | `caption` | Show only the items whose `caption` satisfies the regex determinate by the `filter` property. |
66
+ * | `metadata` | Show only the items whose `metadata` satisfies the regex determinate by the `filter` property. |
67
+ * | `id-list` | Show only the items that are contained in the array determinate by the `filterList` property. |
68
+ * | `none` | Show all items. |
69
+ */
70
+ this.filterType = "none";
71
+ /**
72
+ * Set this attribute if you want to allow multi selection of the items.
73
+ */
74
+ this.multiSelection = false;
75
+ /**
76
+ * This property allows us to implement custom rendering of tree items.
77
+ */
78
+ this.renderItem = defaultRenderItem;
79
+ /**
80
+ * `true` to display the relation between tree items and tree lists using
81
+ * lines.
82
+ */
83
+ this.showLines = "none";
84
+ /**
85
+ * Set this attribute if you want all the children item's checkboxes to be
86
+ * checked when the parent item checkbox is checked, or to be unchecked when
87
+ * the parent item checkbox is unchecked.
88
+ * This attribute will be used in all items by default.
89
+ */
90
+ this.toggleCheckboxes = false;
91
+ /**
92
+ * This property lets you define the model of the ch-tree-x control.
93
+ */
94
+ this.treeModel = [];
95
+ }
96
+ /**
97
+ * Given an item id, an array of items to add, the download status and the
98
+ * lazy state, updates the item's UI Model.
99
+ */
100
+ async loadLazyContent(itemId, items, downloading = false, lazy = false) {
101
+ this.treeRef.loadLazyContent(itemId, items, downloading, lazy);
102
+ }
103
+ /**
104
+ * Given an item id, it displays and scrolls into the item view.
105
+ */
106
+ async scrollIntoVisible(treeItemId) {
107
+ this.treeRef.scrollIntoVisible(treeItemId);
108
+ }
109
+ /**
110
+ * This method is used to toggle a tree item by the tree item id/ids.
111
+ *
112
+ * @param treeItemIds An array id the tree items to be toggled.
113
+ * @param expand A boolean indicating that the tree item should be expanded or collapsed. (optional)
114
+ * @returns The modified items after the method was called.
115
+ */
116
+ async toggleItems(treeItemIds, expand) {
117
+ return this.treeRef.toggleItems(treeItemIds, expand);
118
+ }
119
+ /**
120
+ * Given a subset of item's properties, it updates all item UI models.
121
+ */
122
+ async updateAllItemsProperties(properties) {
123
+ this.treeRef.updateAllItemsProperties(properties);
124
+ }
125
+ /**
126
+ * Given a item list and the properties to update, it updates the properties
127
+ * of the items in the list.
128
+ */
129
+ async updateItemsProperties(items, properties) {
130
+ this.treeRef.updateItemsProperties(items, properties);
131
+ }
132
+ /**
133
+ * Update the information about the valid droppable zones.
134
+ * @param requestTimestamp Time where the request to the server was made. Useful to avoid having old information.
135
+ * @param newContainerId ID of the container where the drag is trying to be made.
136
+ * @param draggedItems Information about the dragged items.
137
+ * @param validDrop Current state of the droppable zone.
138
+ */
139
+ async updateValidDropZone(requestTimestamp, newContainerId, draggedItems, validDrop) {
140
+ this.treeRef.updateValidDropZone(requestTimestamp, newContainerId, draggedItems, validDrop);
141
+ }
142
+ updateCheckboxValue(event) {
143
+ event.stopPropagation();
144
+ this.checkedItemsChange.emit(event.detail);
145
+ }
146
+ handleOpenReference(event) {
147
+ event.stopPropagation();
148
+ this.itemOpenReference.emit(event.detail);
149
+ }
150
+ render() {
151
+ return (h("ch-tree-view-render", { checkbox: this.checkbox, checked: this.checked, checkDroppableZoneCallback: this.checkDroppableZoneCallback, cssClass: this.cssClass, dragDisabled: this.dragDisabled, dropDisabled: this.dropDisabled, dropItemsCallback: this.dropItemsCallback, editableItems: this.editableItems, filter: this.filter, filterList: this.filterList, filterOptions: this.filterOptions, filterType: this.filterType, lazyLoadTreeItemsCallback: this.lazyLoadTreeItemsCallback, modifyItemCaptionCallback: this.modifyItemCaptionCallback, multiSelection: this.multiSelection, renderItem: this.renderItem, showLines: this.showLines, sortItemsCallback: this.sortItemsCallback, toggleCheckboxes: this.toggleCheckboxes, treeModel: this.treeModel, ref: el => (this.treeRef = el) }));
152
+ }
153
+ };
154
+ ChTreeViewRenderWrapper.style = treeViewRenderWrapperCss;
155
+
156
+ export { ChTreeViewRenderWrapper as ch_tree_view_render_wrapper };