@sankhyalabs/ezui 7.1.0-dev.1 → 7.1.0-dev.10

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 (65) hide show
  1. package/dist/cjs/ez-combo-box-list_4.cjs.entry.js +1 -1
  2. package/dist/cjs/ez-dialog.cjs.entry.js +1 -1
  3. package/dist/cjs/ez-form.cjs.entry.js +110 -38
  4. package/dist/cjs/ez-grid.cjs.entry.js +3 -3
  5. package/dist/cjs/ez-modal-container.cjs.entry.js +2 -11
  6. package/dist/cjs/ez-popup.cjs.entry.js +9 -6
  7. package/dist/cjs/ez-tree.cjs.entry.js +154 -7
  8. package/dist/cjs/ezui.cjs.js +1 -1
  9. package/dist/cjs/loader.cjs.js +1 -1
  10. package/dist/cjs/{purify-47a2f27b.js → purify-453a8028.js} +35 -12
  11. package/dist/cjs/{search-column-9aa090ec.js → search-column-8bfee733.js} +1 -1
  12. package/dist/collection/components/ez-dialog/ez-dialog.css +6 -1
  13. package/dist/collection/components/ez-grid/controller/ag-grid/AgGridController.js +1 -1
  14. package/dist/collection/components/ez-modal-container/ez-modal-container.css +3 -9
  15. package/dist/collection/components/ez-modal-container/ez-modal-container.js +1 -10
  16. package/dist/collection/components/ez-popup/ez-popup.css +3 -2
  17. package/dist/collection/components/ez-popup/ez-popup.js +9 -6
  18. package/dist/collection/components/ez-tree/ez-tree.css +4 -0
  19. package/dist/collection/components/ez-tree/ez-tree.js +185 -6
  20. package/dist/collection/components/ez-tree/subcomponents/TreeItem.js +4 -1
  21. package/dist/collection/components/ez-tree/types/Node.js +7 -0
  22. package/dist/collection/components/ez-tree/types/Tree.js +19 -0
  23. package/dist/collection/components/ez-tree/types/UpdateItemConfig.js +1 -0
  24. package/dist/collection/utils/form/DataBinder.js +1 -1
  25. package/dist/collection/utils/form/FormMetadata.js +109 -37
  26. package/dist/custom-elements/index.js +313 -77
  27. package/dist/esm/ez-combo-box-list_4.entry.js +1 -1
  28. package/dist/esm/ez-dialog.entry.js +1 -1
  29. package/dist/esm/ez-form.entry.js +110 -38
  30. package/dist/esm/ez-grid.entry.js +3 -3
  31. package/dist/esm/ez-modal-container.entry.js +2 -11
  32. package/dist/esm/ez-popup.entry.js +9 -6
  33. package/dist/esm/ez-tree.entry.js +154 -7
  34. package/dist/esm/ezui.js +1 -1
  35. package/dist/esm/loader.js +1 -1
  36. package/dist/esm/{purify-dc6814bf.js → purify-003c47e2.js} +35 -12
  37. package/dist/esm/{search-column-83562552.js → search-column-c00119ae.js} +1 -1
  38. package/dist/ezui/ezui.esm.js +1 -1
  39. package/dist/ezui/p-294f54fe.entry.js +1 -0
  40. package/dist/ezui/p-4f0632b4.js +1 -0
  41. package/dist/ezui/{p-d66bf34e.entry.js → p-8c57ffa4.entry.js} +2 -2
  42. package/dist/ezui/p-ae5f64cd.entry.js +1 -0
  43. package/dist/ezui/p-bb409cba.js +3 -0
  44. package/dist/ezui/p-c82acfc6.entry.js +1 -0
  45. package/dist/ezui/{p-c943f7c4.entry.js → p-e03b2f19.entry.js} +1 -1
  46. package/dist/ezui/p-e77610ef.entry.js +1 -0
  47. package/dist/ezui/p-ff4bde07.entry.js +1 -0
  48. package/dist/types/components/ez-modal-container/ez-modal-container.d.ts +0 -2
  49. package/dist/types/components/ez-popup/ez-popup.d.ts +1 -0
  50. package/dist/types/components/ez-tree/ez-tree.d.ts +20 -1
  51. package/dist/types/components/ez-tree/types/Node.d.ts +1 -0
  52. package/dist/types/components/ez-tree/types/Tree.d.ts +1 -0
  53. package/dist/types/components/ez-tree/types/UpdateItemConfig.d.ts +4 -0
  54. package/dist/types/components.d.ts +18 -1
  55. package/dist/types/utils/form/FormMetadata.d.ts +2 -1
  56. package/dist/types/utils/form/interfaces/IFormSheetMetadata.d.ts +3 -0
  57. package/dist/types/utils/form/interfaces/ITabConfig.d.ts +3 -0
  58. package/package.json +1 -1
  59. package/dist/ezui/p-02f6e3b0.entry.js +0 -1
  60. package/dist/ezui/p-191cfbc8.entry.js +0 -1
  61. package/dist/ezui/p-228a4d2f.js +0 -3
  62. package/dist/ezui/p-2df50161.entry.js +0 -1
  63. package/dist/ezui/p-4c4f0850.entry.js +0 -1
  64. package/dist/ezui/p-623161e2.js +0 -1
  65. package/dist/ezui/p-bd6146c5.entry.js +0 -1
@@ -72,28 +72,59 @@ export const buildFormConfigFromDataUnit = (dataUnit) => {
72
72
  .filter(descriptor => descriptor.visible !== false)
73
73
  .map(descriptor => { return { name: descriptor.name, defaultValue: descriptor.defaultValue }; });
74
74
  }
75
- const config = { emptyConfig: false, fields };
76
- return config;
75
+ return { emptyConfig: false, fields };
77
76
  };
78
- export const buildFormMetadata = (config, dataUnit, includeDetails = false) => {
79
- var _a, _b;
80
- if (config == undefined || (config === null || config === void 0 ? void 0 : config.emptyConfig) === true) {
81
- config = buildFormConfigFromDataUnit(dataUnit);
82
- }
83
- const sheets = new Map();
84
- const hiddenTabs = new Map();
85
- const requiredFields = [];
86
- const cleanOnCopyFields = [];
87
- const defaultValues = {};
88
- (_a = config === null || config === void 0 ? void 0 : config.tabs) === null || _a === void 0 ? void 0 : _a.forEach((tab) => {
89
- if (!hiddenTabs.has(tab.label) && tab.visible === false) {
90
- hiddenTabs.set(tab.label, tab);
77
+ function handleDetailTabs(dataUnit, config, sheets) {
78
+ const unitMD = dataUnit.metadata;
79
+ if (unitMD === undefined || unitMD.children === undefined)
80
+ return;
81
+ unitMD.children.forEach((child) => {
82
+ const tabConfig = getTabFromConfig(child.label, config);
83
+ if (tabConfig) {
84
+ sheets.set(Object.assign(tabConfig, { name: buildChildName(child), isDetail: true }), []);
85
+ return;
91
86
  }
87
+ const { label, name, fields } = buildDetailSheet(child);
88
+ sheets.set({ name, label, isDetail: true }, fields);
92
89
  });
93
- (_b = config === null || config === void 0 ? void 0 : config.fields) === null || _b === void 0 ? void 0 : _b.forEach((field) => {
90
+ }
91
+ function handleCustomTabs(customGuides, config, sheets) {
92
+ customGuides.forEach((guide) => {
93
+ const tabConfig = getTabFromConfig(guide.label, config);
94
+ const ctxProps = {};
95
+ Object.entries(guide).forEach(([key, value]) => {
96
+ if (!isReservedKey(key)) {
97
+ ctxProps[key] = value;
98
+ }
99
+ });
100
+ if (tabConfig) {
101
+ sheets.set(Object.assign(tabConfig, { name: guide.id, isCustom: true, ctxProps }), []);
102
+ return;
103
+ }
104
+ const sheet = { label: guide.label, name: guide.id, isCustom: true, visible: true, ctxProps };
105
+ sheets.set(sheet, []);
106
+ });
107
+ }
108
+ function isReservedKey(key) {
109
+ return ['id', 'label'].includes(key);
110
+ }
111
+ function parseTabToFormSheet(key, fields) {
112
+ const i18n = getI18n();
113
+ return {
114
+ label: (key.label === "__main") ? i18n("ez-form.mainTab") : key.label,
115
+ name: key.name || key.label,
116
+ isCustom: key.isCustom,
117
+ isDetail: key.isDetail,
118
+ ctxProps: key.ctxProps,
119
+ fields
120
+ };
121
+ }
122
+ function handleFields(config, sheets, hiddenTabs, dataUnit, requiredFields, cleanOnCopyFields, defaultValues) {
123
+ var _a;
124
+ (_a = config === null || config === void 0 ? void 0 : config.fields) === null || _a === void 0 ? void 0 : _a.forEach((field) => {
94
125
  var _a, _b, _c;
95
126
  if (field.visible !== false) {
96
- const tabConfig = getTabConfig(field.tab || "__main", sheets);
127
+ const tabConfig = getTabConfig(field.tab || "__main", sheets, config);
97
128
  if (hiddenTabs.has(tabConfig.label)) {
98
129
  return;
99
130
  }
@@ -129,7 +160,8 @@ export const buildFormMetadata = (config, dataUnit, includeDetails = false) => {
129
160
  defaultValue = value;
130
161
  }
131
162
  }
132
- catch (_d) { }
163
+ catch (_d) {
164
+ }
133
165
  }
134
166
  }
135
167
  defaultValues[field.name] = defaultValue;
@@ -137,42 +169,82 @@ export const buildFormMetadata = (config, dataUnit, includeDetails = false) => {
137
169
  }
138
170
  }
139
171
  });
172
+ }
173
+ export const buildFormMetadata = (config, dataUnit, includeDetails = false, customGuides) => {
174
+ var _a;
175
+ if (config == undefined || (config === null || config === void 0 ? void 0 : config.emptyConfig) === true) {
176
+ config = buildFormConfigFromDataUnit(dataUnit);
177
+ }
178
+ const sheets = new Map();
179
+ const hiddenTabs = new Map();
180
+ const requiredFields = [];
181
+ const cleanOnCopyFields = [];
182
+ const defaultValues = {};
183
+ const tabs = (_a = config === null || config === void 0 ? void 0 : config.tabs) !== null && _a !== void 0 ? _a : [];
184
+ tabs.forEach((tab) => {
185
+ if (!hiddenTabs.has(tab.label) && tab.visible === false) {
186
+ hiddenTabs.set(tab.label, tab);
187
+ }
188
+ });
189
+ handleFields(config, sheets, hiddenTabs, dataUnit, requiredFields, cleanOnCopyFields, defaultValues);
140
190
  const metadata = new FormMetadata();
141
191
  metadata.setDefaultVars(config.defaultVars);
142
192
  if (includeDetails) {
143
- const unitMD = dataUnit.metadata;
144
- if (unitMD != undefined && unitMD.children != undefined) {
145
- unitMD.children.forEach(child => {
146
- const { label, name, fields } = buildDetailSheet(child);
147
- sheets.set({ name, label }, fields);
148
- });
149
- }
193
+ handleDetailTabs(dataUnit, config, sheets);
194
+ }
195
+ if (customGuides) {
196
+ handleCustomTabs(customGuides, config, sheets);
150
197
  }
151
- const i18n = getI18n();
152
198
  Array.from(sheets.entries())
153
199
  .sort(sortTabs)
154
- .forEach(([key, fields]) => {
155
- metadata.addSheet({
156
- label: (key.label === "__main") ? i18n("ez-form.mainTab") : key.label,
157
- name: key.name || key.label,
158
- fields
159
- });
200
+ .forEach(([tab, fields]) => {
201
+ if (!hiddenTabs.has(tab.label)) {
202
+ metadata.addSheet(parseTabToFormSheet(tab, fields));
203
+ }
160
204
  });
161
205
  metadata.addRequiredFields(requiredFields);
162
206
  metadata.addCleanOnCopyFields(cleanOnCopyFields);
163
207
  metadata.addDefaultValues(defaultValues);
164
208
  return metadata;
165
209
  };
166
- const getTabConfig = (tab, sheets) => {
167
- const tabConfig = (typeof tab === "string" ? Array.from(sheets.keys()).find(t => t.label === tab) : tab);
210
+ const getTabFromConfig = (tab, config) => {
211
+ var _a;
212
+ if (!config) {
213
+ return;
214
+ }
215
+ return (_a = config.tabs) === null || _a === void 0 ? void 0 : _a.find(t => t.label === tab);
216
+ };
217
+ const getTabConfig = (tab, sheets, config) => {
218
+ if (typeof tab !== "string") {
219
+ return tab;
220
+ }
221
+ if (config) {
222
+ const tabConfig = getTabFromConfig(tab, config);
223
+ if (tabConfig) {
224
+ return tabConfig;
225
+ }
226
+ }
227
+ const tabConfig = Array.from(sheets.keys()).find(t => t.label === tab);
168
228
  return tabConfig || { label: tab, visible: true };
169
229
  };
170
- const sortTabs = (a, b) => {
171
- return a[0].label == '__main' ? -1 : (a[0].order || 10000) - (b[0].order || 10000);
230
+ function sortTabs(a, b) {
231
+ var _a, _b;
232
+ if (a[0].label === '__main' && b[0].label !== '__main') {
233
+ return -1;
234
+ }
235
+ if (a[0].label !== '__main' && b[0].label === '__main') {
236
+ return 1;
237
+ }
238
+ const aOrder = (_a = a[0].order) !== null && _a !== void 0 ? _a : Number.MAX_VALUE;
239
+ const bOrder = (_b = b[0].order) !== null && _b !== void 0 ? _b : Number.MAX_VALUE;
240
+ return aOrder - bOrder;
241
+ }
242
+ const buildChildName = (child) => {
243
+ return `child[${child.name}]`;
172
244
  };
173
245
  const buildDetailSheet = (child) => {
174
246
  return {
175
- name: `child[${child.name}]`,
247
+ name: buildChildName(child),
176
248
  label: child.label,
177
249
  fields: []
178
250
  };