@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.
- package/dist/cjs/ez-combo-box-list_4.cjs.entry.js +1 -1
- package/dist/cjs/ez-dialog.cjs.entry.js +1 -1
- package/dist/cjs/ez-form.cjs.entry.js +110 -38
- package/dist/cjs/ez-grid.cjs.entry.js +3 -3
- package/dist/cjs/ez-modal-container.cjs.entry.js +2 -11
- package/dist/cjs/ez-popup.cjs.entry.js +9 -6
- package/dist/cjs/ez-tree.cjs.entry.js +154 -7
- package/dist/cjs/ezui.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{purify-47a2f27b.js → purify-453a8028.js} +35 -12
- package/dist/cjs/{search-column-9aa090ec.js → search-column-8bfee733.js} +1 -1
- package/dist/collection/components/ez-dialog/ez-dialog.css +6 -1
- package/dist/collection/components/ez-grid/controller/ag-grid/AgGridController.js +1 -1
- package/dist/collection/components/ez-modal-container/ez-modal-container.css +3 -9
- package/dist/collection/components/ez-modal-container/ez-modal-container.js +1 -10
- package/dist/collection/components/ez-popup/ez-popup.css +3 -2
- package/dist/collection/components/ez-popup/ez-popup.js +9 -6
- package/dist/collection/components/ez-tree/ez-tree.css +4 -0
- package/dist/collection/components/ez-tree/ez-tree.js +185 -6
- package/dist/collection/components/ez-tree/subcomponents/TreeItem.js +4 -1
- package/dist/collection/components/ez-tree/types/Node.js +7 -0
- package/dist/collection/components/ez-tree/types/Tree.js +19 -0
- package/dist/collection/components/ez-tree/types/UpdateItemConfig.js +1 -0
- package/dist/collection/utils/form/DataBinder.js +1 -1
- package/dist/collection/utils/form/FormMetadata.js +109 -37
- package/dist/custom-elements/index.js +313 -77
- package/dist/esm/ez-combo-box-list_4.entry.js +1 -1
- package/dist/esm/ez-dialog.entry.js +1 -1
- package/dist/esm/ez-form.entry.js +110 -38
- package/dist/esm/ez-grid.entry.js +3 -3
- package/dist/esm/ez-modal-container.entry.js +2 -11
- package/dist/esm/ez-popup.entry.js +9 -6
- package/dist/esm/ez-tree.entry.js +154 -7
- package/dist/esm/ezui.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{purify-dc6814bf.js → purify-003c47e2.js} +35 -12
- package/dist/esm/{search-column-83562552.js → search-column-c00119ae.js} +1 -1
- package/dist/ezui/ezui.esm.js +1 -1
- package/dist/ezui/p-294f54fe.entry.js +1 -0
- package/dist/ezui/p-4f0632b4.js +1 -0
- package/dist/ezui/{p-d66bf34e.entry.js → p-8c57ffa4.entry.js} +2 -2
- package/dist/ezui/p-ae5f64cd.entry.js +1 -0
- package/dist/ezui/p-bb409cba.js +3 -0
- package/dist/ezui/p-c82acfc6.entry.js +1 -0
- package/dist/ezui/{p-c943f7c4.entry.js → p-e03b2f19.entry.js} +1 -1
- package/dist/ezui/p-e77610ef.entry.js +1 -0
- package/dist/ezui/p-ff4bde07.entry.js +1 -0
- package/dist/types/components/ez-modal-container/ez-modal-container.d.ts +0 -2
- package/dist/types/components/ez-popup/ez-popup.d.ts +1 -0
- package/dist/types/components/ez-tree/ez-tree.d.ts +20 -1
- package/dist/types/components/ez-tree/types/Node.d.ts +1 -0
- package/dist/types/components/ez-tree/types/Tree.d.ts +1 -0
- package/dist/types/components/ez-tree/types/UpdateItemConfig.d.ts +4 -0
- package/dist/types/components.d.ts +18 -1
- package/dist/types/utils/form/FormMetadata.d.ts +2 -1
- package/dist/types/utils/form/interfaces/IFormSheetMetadata.d.ts +3 -0
- package/dist/types/utils/form/interfaces/ITabConfig.d.ts +3 -0
- package/package.json +1 -1
- package/dist/ezui/p-02f6e3b0.entry.js +0 -1
- package/dist/ezui/p-191cfbc8.entry.js +0 -1
- package/dist/ezui/p-228a4d2f.js +0 -3
- package/dist/ezui/p-2df50161.entry.js +0 -1
- package/dist/ezui/p-4c4f0850.entry.js +0 -1
- package/dist/ezui/p-623161e2.js +0 -1
- 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
|
-
|
|
76
|
-
return config;
|
|
75
|
+
return { emptyConfig: false, fields };
|
|
77
76
|
};
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
if (
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
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
|
-
|
|
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
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
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(([
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
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
|
|
167
|
-
|
|
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
|
-
|
|
171
|
-
|
|
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:
|
|
247
|
+
name: buildChildName(child),
|
|
176
248
|
label: child.label,
|
|
177
249
|
fields: []
|
|
178
250
|
};
|