@react-typed-forms/schemas 3.0.0-dev.99 → 4.1.0
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/.babelrc +4 -0
- package/.rush/temp/operation/build/state.json +3 -0
- package/.rush/temp/operation/update-readme/state.json +3 -0
- package/.rush/temp/package-deps_build.json +7 -7
- package/.rush/temp/shrinkwrap-deps.json +581 -7
- package/README.md +292 -0
- package/lib/controlBuilder.d.ts +14 -0
- package/lib/controlRender.d.ts +97 -80
- package/lib/hooks.d.ts +9 -9
- package/lib/index.d.ts +5 -1
- package/lib/index.js +1836 -19
- package/lib/index.js.map +1 -0
- package/lib/renderers.d.ts +171 -0
- package/lib/schemaBuilder.d.ts +53 -70
- package/lib/tailwind.d.ts +2 -0
- package/lib/types.d.ts +108 -43
- package/lib/util.d.ts +35 -0
- package/lib/validators.d.ts +4 -0
- package/package.json +15 -8
- package/src/controlBuilder.ts +121 -0
- package/src/controlRender.tsx +535 -437
- package/src/hooks.tsx +153 -0
- package/src/index.ts +5 -1
- package/src/renderers.tsx +846 -0
- package/src/schemaBuilder.ts +45 -66
- package/src/tailwind.tsx +25 -0
- package/src/types.ts +164 -48
- package/src/util.ts +360 -0
- package/src/validators.ts +116 -0
- package/tsconfig.json +4 -3
- package/lib/controlRender.js +0 -230
- package/lib/hooks.js +0 -93
- package/lib/schemaBuilder.js +0 -82
- package/lib/types.js +0 -73
- package/schemas.build.log +0 -2
- package/src/hooks.ts +0 -167
package/lib/index.js
CHANGED
|
@@ -1,20 +1,1837 @@
|
|
|
1
|
-
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
var React = require('react');
|
|
2
|
+
var core = require('@react-typed-forms/core');
|
|
3
|
+
var jsonata = require('jsonata');
|
|
4
|
+
var clsx = require('clsx');
|
|
5
|
+
|
|
6
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
7
|
+
|
|
8
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
9
|
+
var jsonata__default = /*#__PURE__*/_interopDefaultLegacy(jsonata);
|
|
10
|
+
var clsx__default = /*#__PURE__*/_interopDefaultLegacy(clsx);
|
|
11
|
+
|
|
12
|
+
exports.FieldType = void 0;
|
|
13
|
+
(function (FieldType) {
|
|
14
|
+
FieldType["String"] = "String";
|
|
15
|
+
FieldType["Bool"] = "Bool";
|
|
16
|
+
FieldType["Int"] = "Int";
|
|
17
|
+
FieldType["Date"] = "Date";
|
|
18
|
+
FieldType["DateTime"] = "DateTime";
|
|
19
|
+
FieldType["Double"] = "Double";
|
|
20
|
+
FieldType["EntityRef"] = "EntityRef";
|
|
21
|
+
FieldType["Compound"] = "Compound";
|
|
22
|
+
FieldType["AutoId"] = "AutoId";
|
|
23
|
+
FieldType["Image"] = "Image";
|
|
24
|
+
FieldType["Any"] = "Any";
|
|
25
|
+
})(exports.FieldType || (exports.FieldType = {}));
|
|
26
|
+
exports.ControlDefinitionType = void 0;
|
|
27
|
+
(function (ControlDefinitionType) {
|
|
28
|
+
ControlDefinitionType["Data"] = "Data";
|
|
29
|
+
ControlDefinitionType["Group"] = "Group";
|
|
30
|
+
ControlDefinitionType["Display"] = "Display";
|
|
31
|
+
ControlDefinitionType["Action"] = "Action";
|
|
32
|
+
})(exports.ControlDefinitionType || (exports.ControlDefinitionType = {}));
|
|
33
|
+
exports.DynamicPropertyType = void 0;
|
|
34
|
+
(function (DynamicPropertyType) {
|
|
35
|
+
DynamicPropertyType["Visible"] = "Visible";
|
|
36
|
+
DynamicPropertyType["DefaultValue"] = "DefaultValue";
|
|
37
|
+
})(exports.DynamicPropertyType || (exports.DynamicPropertyType = {}));
|
|
38
|
+
exports.ExpressionType = void 0;
|
|
39
|
+
(function (ExpressionType) {
|
|
40
|
+
ExpressionType["Jsonata"] = "Jsonata";
|
|
41
|
+
ExpressionType["FieldValue"] = "FieldValue";
|
|
42
|
+
ExpressionType["UserMatch"] = "UserMatch";
|
|
43
|
+
})(exports.ExpressionType || (exports.ExpressionType = {}));
|
|
44
|
+
exports.AdornmentPlacement = void 0;
|
|
45
|
+
(function (AdornmentPlacement) {
|
|
46
|
+
AdornmentPlacement["ControlStart"] = "ControlStart";
|
|
47
|
+
AdornmentPlacement["ControlEnd"] = "ControlEnd";
|
|
48
|
+
AdornmentPlacement["LabelStart"] = "LabelStart";
|
|
49
|
+
AdornmentPlacement["LabelEnd"] = "LabelEnd";
|
|
50
|
+
})(exports.AdornmentPlacement || (exports.AdornmentPlacement = {}));
|
|
51
|
+
exports.ControlAdornmentType = void 0;
|
|
52
|
+
(function (ControlAdornmentType) {
|
|
53
|
+
ControlAdornmentType["Tooltip"] = "Tooltip";
|
|
54
|
+
ControlAdornmentType["Accordion"] = "Accordion";
|
|
55
|
+
ControlAdornmentType["HelpText"] = "HelpText";
|
|
56
|
+
})(exports.ControlAdornmentType || (exports.ControlAdornmentType = {}));
|
|
57
|
+
exports.DataRenderType = void 0;
|
|
58
|
+
(function (DataRenderType) {
|
|
59
|
+
DataRenderType["Standard"] = "Standard";
|
|
60
|
+
DataRenderType["Radio"] = "Radio";
|
|
61
|
+
DataRenderType["HtmlEditor"] = "HtmlEditor";
|
|
62
|
+
DataRenderType["IconList"] = "IconList";
|
|
63
|
+
DataRenderType["CheckList"] = "CheckList";
|
|
64
|
+
DataRenderType["UserSelection"] = "UserSelection";
|
|
65
|
+
DataRenderType["Synchronised"] = "Synchronised";
|
|
66
|
+
DataRenderType["IconSelector"] = "IconSelector";
|
|
67
|
+
DataRenderType["DateTime"] = "DateTime";
|
|
68
|
+
DataRenderType["Checkbox"] = "Checkbox";
|
|
69
|
+
DataRenderType["Dropdown"] = "Dropdown";
|
|
70
|
+
})(exports.DataRenderType || (exports.DataRenderType = {}));
|
|
71
|
+
exports.SyncTextType = void 0;
|
|
72
|
+
(function (SyncTextType) {
|
|
73
|
+
SyncTextType["Camel"] = "Camel";
|
|
74
|
+
SyncTextType["Snake"] = "Snake";
|
|
75
|
+
SyncTextType["Pascal"] = "Pascal";
|
|
76
|
+
})(exports.SyncTextType || (exports.SyncTextType = {}));
|
|
77
|
+
exports.GroupRenderType = void 0;
|
|
78
|
+
(function (GroupRenderType) {
|
|
79
|
+
GroupRenderType["Standard"] = "Standard";
|
|
80
|
+
GroupRenderType["Grid"] = "Grid";
|
|
81
|
+
GroupRenderType["GroupElement"] = "GroupElement";
|
|
82
|
+
})(exports.GroupRenderType || (exports.GroupRenderType = {}));
|
|
83
|
+
exports.DisplayDataType = void 0;
|
|
84
|
+
(function (DisplayDataType) {
|
|
85
|
+
DisplayDataType["Text"] = "Text";
|
|
86
|
+
DisplayDataType["Html"] = "Html";
|
|
87
|
+
})(exports.DisplayDataType || (exports.DisplayDataType = {}));
|
|
88
|
+
exports.ValidatorType = void 0;
|
|
89
|
+
(function (ValidatorType) {
|
|
90
|
+
ValidatorType["Jsonata"] = "Jsonata";
|
|
91
|
+
ValidatorType["Date"] = "Date";
|
|
92
|
+
})(exports.ValidatorType || (exports.ValidatorType = {}));
|
|
93
|
+
exports.DateComparison = void 0;
|
|
94
|
+
(function (DateComparison) {
|
|
95
|
+
DateComparison["NotBefore"] = "NotBefore";
|
|
96
|
+
DateComparison["NotAfter"] = "NotAfter";
|
|
97
|
+
})(exports.DateComparison || (exports.DateComparison = {}));
|
|
98
|
+
function isDataControlDefinition(x) {
|
|
99
|
+
return x.type === exports.ControlDefinitionType.Data;
|
|
100
|
+
}
|
|
101
|
+
function isGroupControlsDefinition(x) {
|
|
102
|
+
return x.type === exports.ControlDefinitionType.Group;
|
|
103
|
+
}
|
|
104
|
+
function isDisplayControlsDefinition(x) {
|
|
105
|
+
return x.type === exports.ControlDefinitionType.Display;
|
|
106
|
+
}
|
|
107
|
+
function isActionControlsDefinition(x) {
|
|
108
|
+
return x.type === exports.ControlDefinitionType.Action;
|
|
109
|
+
}
|
|
110
|
+
function visitControlDefinition(x, visitor, defaultValue) {
|
|
111
|
+
switch (x.type) {
|
|
112
|
+
case exports.ControlDefinitionType.Action:
|
|
113
|
+
return visitor.action(x);
|
|
114
|
+
case exports.ControlDefinitionType.Data:
|
|
115
|
+
return visitor.data(x);
|
|
116
|
+
case exports.ControlDefinitionType.Display:
|
|
117
|
+
return visitor.display(x);
|
|
118
|
+
case exports.ControlDefinitionType.Group:
|
|
119
|
+
return visitor.group(x);
|
|
120
|
+
default:
|
|
121
|
+
return defaultValue(x);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
function isGridRenderer(options) {
|
|
125
|
+
return options.type === exports.GroupRenderType.Grid;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
function _extends() {
|
|
129
|
+
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
|
130
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
131
|
+
var source = arguments[i];
|
|
132
|
+
for (var key in source) {
|
|
133
|
+
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
134
|
+
target[key] = source[key];
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return target;
|
|
139
|
+
};
|
|
140
|
+
return _extends.apply(this, arguments);
|
|
141
|
+
}
|
|
142
|
+
function _objectWithoutPropertiesLoose(source, excluded) {
|
|
143
|
+
if (source == null) return {};
|
|
144
|
+
var target = {};
|
|
145
|
+
var sourceKeys = Object.keys(source);
|
|
146
|
+
var key, i;
|
|
147
|
+
for (i = 0; i < sourceKeys.length; i++) {
|
|
148
|
+
key = sourceKeys[i];
|
|
149
|
+
if (excluded.indexOf(key) >= 0) continue;
|
|
150
|
+
target[key] = source[key];
|
|
151
|
+
}
|
|
152
|
+
return target;
|
|
153
|
+
}
|
|
154
|
+
function _unsupportedIterableToArray(o, minLen) {
|
|
155
|
+
if (!o) return;
|
|
156
|
+
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
|
157
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
158
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
159
|
+
if (n === "Map" || n === "Set") return Array.from(o);
|
|
160
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
161
|
+
}
|
|
162
|
+
function _arrayLikeToArray(arr, len) {
|
|
163
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
164
|
+
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
165
|
+
return arr2;
|
|
166
|
+
}
|
|
167
|
+
function _createForOfIteratorHelperLoose(o, allowArrayLike) {
|
|
168
|
+
var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
|
|
169
|
+
if (it) return (it = it.call(o)).next.bind(it);
|
|
170
|
+
if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
|
|
171
|
+
if (it) o = it;
|
|
172
|
+
var i = 0;
|
|
173
|
+
return function () {
|
|
174
|
+
if (i >= o.length) return {
|
|
175
|
+
done: true
|
|
176
|
+
};
|
|
177
|
+
return {
|
|
178
|
+
done: false,
|
|
179
|
+
value: o[i++]
|
|
180
|
+
};
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
function buildSchema(def) {
|
|
187
|
+
return Object.entries(def).map(function (x) {
|
|
188
|
+
return x[1](x[0]);
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
function stringField(displayName, options) {
|
|
192
|
+
return makeScalarField(_extends({
|
|
193
|
+
type: exports.FieldType.String,
|
|
194
|
+
displayName: displayName
|
|
195
|
+
}, options));
|
|
196
|
+
}
|
|
197
|
+
function stringOptionsField(displayName) {
|
|
198
|
+
return makeScalarField({
|
|
199
|
+
type: exports.FieldType.String,
|
|
200
|
+
displayName: displayName,
|
|
201
|
+
options: [].slice.call(arguments, 1)
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
function withScalarOptions(options, v) {
|
|
205
|
+
return function (n) {
|
|
206
|
+
return _extends({}, v(n), options);
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
function makeScalarField(options) {
|
|
210
|
+
return function (n) {
|
|
211
|
+
return _extends({}, defaultScalarField(n, n), options);
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
function makeCompoundField(options) {
|
|
215
|
+
return function (n) {
|
|
216
|
+
return _extends({}, defaultCompoundField(n, n, false), options);
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
function intField(displayName, options) {
|
|
220
|
+
return makeScalarField(_extends({
|
|
221
|
+
type: exports.FieldType.Int,
|
|
222
|
+
displayName: displayName
|
|
223
|
+
}, options));
|
|
224
|
+
}
|
|
225
|
+
function boolField(displayName, options) {
|
|
226
|
+
return makeScalarField(_extends({
|
|
227
|
+
type: exports.FieldType.Bool,
|
|
228
|
+
displayName: displayName
|
|
229
|
+
}, options));
|
|
230
|
+
}
|
|
231
|
+
function compoundField(displayName, fields, other) {
|
|
232
|
+
return function (field) {
|
|
233
|
+
return _extends({}, defaultCompoundField(field, displayName, false), other, {
|
|
234
|
+
children: fields
|
|
235
|
+
});
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
function defaultScalarField(field, displayName) {
|
|
239
|
+
return {
|
|
240
|
+
field: field,
|
|
241
|
+
displayName: displayName,
|
|
242
|
+
type: exports.FieldType.String
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
function defaultCompoundField(field, displayName, collection) {
|
|
246
|
+
return {
|
|
247
|
+
field: field,
|
|
248
|
+
displayName: displayName,
|
|
249
|
+
type: exports.FieldType.Compound,
|
|
250
|
+
collection: collection,
|
|
251
|
+
children: []
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
function applyDefaultValues(v, fields) {
|
|
256
|
+
if (!v) return defaultValueForFields(fields);
|
|
257
|
+
var applyValue = fields.filter(function (x) {
|
|
258
|
+
return isCompoundField(x) || !(x.field in v);
|
|
259
|
+
});
|
|
260
|
+
if (!applyValue.length) return v;
|
|
261
|
+
var out = _extends({}, v);
|
|
262
|
+
applyValue.forEach(function (x) {
|
|
263
|
+
out[x.field] = x.field in v ? applyDefaultForField(v[x.field], x, fields) : defaultValueForField(x);
|
|
264
|
+
});
|
|
265
|
+
return out;
|
|
266
|
+
}
|
|
267
|
+
function applyDefaultForField(v, field, parent, notElement) {
|
|
268
|
+
if (field.collection && !notElement) {
|
|
269
|
+
return (v != null ? v : []).map(function (x) {
|
|
270
|
+
return applyDefaultForField(x, field, parent, true);
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
if (isCompoundField(field)) {
|
|
274
|
+
if (!v && !field.required) return v;
|
|
275
|
+
return applyDefaultValues(v, field.treeChildren ? parent : field.children);
|
|
276
|
+
}
|
|
277
|
+
return defaultValueForField(field);
|
|
278
|
+
}
|
|
279
|
+
function defaultValueForFields(fields) {
|
|
280
|
+
return Object.fromEntries(fields.map(function (x) {
|
|
281
|
+
return [x.field, defaultValueForField(x)];
|
|
282
|
+
}));
|
|
283
|
+
}
|
|
284
|
+
function defaultValueForField(sf, required) {
|
|
285
|
+
if (sf.defaultValue !== undefined) return sf.defaultValue;
|
|
286
|
+
var isRequired = !!(required || sf.required);
|
|
287
|
+
if (isCompoundField(sf)) {
|
|
288
|
+
if (isRequired) {
|
|
289
|
+
var childValue = defaultValueForFields(sf.children);
|
|
290
|
+
return sf.collection ? [childValue] : childValue;
|
|
291
|
+
}
|
|
292
|
+
return sf.notNullable ? sf.collection ? [] : {} : undefined;
|
|
293
|
+
}
|
|
294
|
+
if (sf.collection) {
|
|
295
|
+
return isRequired ? [undefined] : [];
|
|
296
|
+
}
|
|
297
|
+
return undefined;
|
|
298
|
+
}
|
|
299
|
+
function elementValueForField(sf) {
|
|
300
|
+
if (isCompoundField(sf)) {
|
|
301
|
+
return defaultValueForFields(sf.children);
|
|
302
|
+
}
|
|
303
|
+
return sf.defaultValue;
|
|
304
|
+
}
|
|
305
|
+
function findScalarField(fields, field) {
|
|
306
|
+
return findField(fields, field);
|
|
307
|
+
}
|
|
308
|
+
function findCompoundField(fields, field) {
|
|
309
|
+
return findField(fields, field);
|
|
310
|
+
}
|
|
311
|
+
function findField(fields, field) {
|
|
312
|
+
return fields.find(function (x) {
|
|
313
|
+
return x.field === field;
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
function isScalarField(sf) {
|
|
317
|
+
return !isCompoundField(sf);
|
|
318
|
+
}
|
|
319
|
+
function isCompoundField(sf) {
|
|
320
|
+
return sf.type === exports.FieldType.Compound;
|
|
321
|
+
}
|
|
322
|
+
function isDataControl(c) {
|
|
323
|
+
return c.type === exports.ControlDefinitionType.Data;
|
|
324
|
+
}
|
|
325
|
+
function isGroupControl(c) {
|
|
326
|
+
return c.type === exports.ControlDefinitionType.Group;
|
|
327
|
+
}
|
|
328
|
+
function fieldHasTag(field, tag) {
|
|
329
|
+
var _field$tags;
|
|
330
|
+
return Boolean((_field$tags = field.tags) == null ? void 0 : _field$tags.includes(tag));
|
|
331
|
+
}
|
|
332
|
+
function fieldDisplayName(field) {
|
|
333
|
+
var _field$displayName;
|
|
334
|
+
return (_field$displayName = field.displayName) != null ? _field$displayName : field.field;
|
|
335
|
+
}
|
|
336
|
+
function hasOptions(o) {
|
|
337
|
+
var _o$options$length, _o$options;
|
|
338
|
+
return ((_o$options$length = (_o$options = o.options) == null ? void 0 : _o$options.length) != null ? _o$options$length : 0) > 0;
|
|
339
|
+
}
|
|
340
|
+
function defaultControlForField(sf) {
|
|
341
|
+
if (isCompoundField(sf)) {
|
|
342
|
+
return {
|
|
343
|
+
type: exports.ControlDefinitionType.Group,
|
|
344
|
+
title: sf.displayName,
|
|
345
|
+
compoundField: sf.field,
|
|
346
|
+
groupOptions: {
|
|
347
|
+
type: exports.GroupRenderType.Grid,
|
|
348
|
+
hideTitle: false
|
|
349
|
+
},
|
|
350
|
+
children: sf.children.map(defaultControlForField)
|
|
351
|
+
};
|
|
352
|
+
} else if (isScalarField(sf)) {
|
|
353
|
+
var _sf$tags;
|
|
354
|
+
var htmlEditor = (_sf$tags = sf.tags) == null ? void 0 : _sf$tags.includes("_HtmlEditor");
|
|
355
|
+
return {
|
|
356
|
+
type: exports.ControlDefinitionType.Data,
|
|
357
|
+
title: sf.displayName,
|
|
358
|
+
field: sf.field,
|
|
359
|
+
required: sf.required,
|
|
360
|
+
renderOptions: {
|
|
361
|
+
type: htmlEditor ? exports.DataRenderType.HtmlEditor : exports.DataRenderType.Standard
|
|
362
|
+
}
|
|
363
|
+
};
|
|
364
|
+
}
|
|
365
|
+
throw "Unknown schema field";
|
|
366
|
+
}
|
|
367
|
+
function findReferencedControl(field, control) {
|
|
368
|
+
if (isDataControl(control) && field === control.field) return control;
|
|
369
|
+
if (isGroupControl(control)) {
|
|
370
|
+
var _control$children;
|
|
371
|
+
if (control.compoundField) return field === control.compoundField ? control : undefined;
|
|
372
|
+
return findReferencedControlInArray(field, (_control$children = control.children) != null ? _control$children : []);
|
|
373
|
+
}
|
|
374
|
+
return undefined;
|
|
375
|
+
}
|
|
376
|
+
function findReferencedControlInArray(field, controls) {
|
|
377
|
+
for (var _iterator = _createForOfIteratorHelperLoose(controls), _step; !(_step = _iterator()).done;) {
|
|
378
|
+
var c = _step.value;
|
|
379
|
+
var ref = findReferencedControl(field, c);
|
|
380
|
+
if (ref) return ref;
|
|
381
|
+
}
|
|
382
|
+
return undefined;
|
|
383
|
+
}
|
|
384
|
+
function addMissingControls(fields, controls) {
|
|
385
|
+
var changes = fields.flatMap(function (x) {
|
|
386
|
+
if (fieldHasTag(x, "_NoControl")) return [];
|
|
387
|
+
var existing = findReferencedControlInArray(x.field, controls);
|
|
388
|
+
if (!existing || isCompoundField(x)) return {
|
|
389
|
+
field: x,
|
|
390
|
+
existing: existing
|
|
391
|
+
};
|
|
392
|
+
return [];
|
|
393
|
+
});
|
|
394
|
+
var changedCompounds = controls.map(function (x) {
|
|
395
|
+
var _cf$children;
|
|
396
|
+
var ex = changes.find(function (c) {
|
|
397
|
+
return c.existing === x;
|
|
398
|
+
});
|
|
399
|
+
if (!ex) return x;
|
|
400
|
+
var cf = x;
|
|
401
|
+
return _extends({}, cf, {
|
|
402
|
+
children: addMissingControls(ex.field.children, (_cf$children = cf.children) != null ? _cf$children : [])
|
|
403
|
+
});
|
|
404
|
+
});
|
|
405
|
+
return changedCompounds.concat(changes.filter(function (x) {
|
|
406
|
+
return !x.existing;
|
|
407
|
+
}).map(function (x) {
|
|
408
|
+
return defaultControlForField(x.field);
|
|
409
|
+
}));
|
|
410
|
+
}
|
|
411
|
+
function useUpdatedRef(a) {
|
|
412
|
+
var r = React.useRef(a);
|
|
413
|
+
r.current = a;
|
|
414
|
+
return r;
|
|
415
|
+
}
|
|
416
|
+
function getTypeField(context) {
|
|
417
|
+
var _context$groupControl;
|
|
418
|
+
var typeSchemaField = context.fields.find(function (x) {
|
|
419
|
+
return x.isTypeField;
|
|
420
|
+
});
|
|
421
|
+
return typeSchemaField ? (_context$groupControl = context.groupControl.fields) == null ? void 0 : _context$groupControl[typeSchemaField.field] : undefined;
|
|
422
|
+
}
|
|
423
|
+
function visitControlDataArray(controls, context, cb) {
|
|
424
|
+
if (!controls) return undefined;
|
|
425
|
+
for (var _iterator2 = _createForOfIteratorHelperLoose(controls), _step2; !(_step2 = _iterator2()).done;) {
|
|
426
|
+
var c = _step2.value;
|
|
427
|
+
var r = visitControlData(c, context, cb);
|
|
428
|
+
if (r !== undefined) return r;
|
|
429
|
+
}
|
|
430
|
+
return undefined;
|
|
431
|
+
}
|
|
432
|
+
function visitControlData(definition, ctx, cb) {
|
|
433
|
+
return visitControlDefinition(definition, {
|
|
434
|
+
data: function data(def) {
|
|
435
|
+
return processData(def, def.field, def.children);
|
|
436
|
+
},
|
|
437
|
+
group: function group(d) {
|
|
438
|
+
return processData(undefined, d.compoundField, d.children);
|
|
439
|
+
},
|
|
440
|
+
action: function action() {
|
|
441
|
+
return undefined;
|
|
442
|
+
},
|
|
443
|
+
display: function display() {
|
|
444
|
+
return undefined;
|
|
445
|
+
}
|
|
446
|
+
}, function () {
|
|
447
|
+
return undefined;
|
|
448
|
+
});
|
|
449
|
+
function processData(def, fieldName, children) {
|
|
450
|
+
var fieldData = fieldName ? findField(ctx.fields, fieldName) : undefined;
|
|
451
|
+
if (!fieldData) return !fieldName ? visitControlDataArray(children, ctx, cb) : undefined;
|
|
452
|
+
var control = ctx.groupControl.fields[fieldData.field];
|
|
453
|
+
var result = def ? cb(def, fieldData, control, false) : undefined;
|
|
454
|
+
if (result !== undefined) return result;
|
|
455
|
+
if (fieldData.collection) {
|
|
456
|
+
for (var _iterator3 = _createForOfIteratorHelperLoose((_control$elements = control.elements) != null ? _control$elements : []), _step3; !(_step3 = _iterator3()).done;) {
|
|
457
|
+
var _control$elements;
|
|
458
|
+
var c = _step3.value;
|
|
459
|
+
var elemResult = def ? cb(def, fieldData, c, true) : undefined;
|
|
460
|
+
if (elemResult !== undefined) return elemResult;
|
|
461
|
+
if (isCompoundField(fieldData)) {
|
|
462
|
+
var cfResult = visitControlDataArray(children, {
|
|
463
|
+
fields: fieldData.children,
|
|
464
|
+
groupControl: c
|
|
465
|
+
}, cb);
|
|
466
|
+
if (cfResult !== undefined) return cfResult;
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
function cleanDataForSchema(v, fields) {
|
|
473
|
+
if (!v) return v;
|
|
474
|
+
var typeField = fields.find(function (x) {
|
|
475
|
+
return x.isTypeField;
|
|
476
|
+
});
|
|
477
|
+
if (!typeField) return v;
|
|
478
|
+
var typeValue = v[typeField.field];
|
|
479
|
+
var cleanableFields = fields.filter(function (x) {
|
|
480
|
+
var _x$onlyForTypes$lengt, _x$onlyForTypes;
|
|
481
|
+
return isCompoundField(x) || ((_x$onlyForTypes$lengt = (_x$onlyForTypes = x.onlyForTypes) == null ? void 0 : _x$onlyForTypes.length) != null ? _x$onlyForTypes$lengt : 0) > 0;
|
|
482
|
+
});
|
|
483
|
+
if (!cleanableFields.length) return v;
|
|
484
|
+
var out = _extends({}, v);
|
|
485
|
+
cleanableFields.forEach(function (x) {
|
|
486
|
+
var _x$onlyForTypes2;
|
|
487
|
+
var childValue = v[x.field];
|
|
488
|
+
if (((_x$onlyForTypes2 = x.onlyForTypes) == null ? void 0 : _x$onlyForTypes2.includes(typeValue)) === false || !x.notNullable && canBeNull()) {
|
|
489
|
+
delete out[x.field];
|
|
490
|
+
return;
|
|
491
|
+
}
|
|
492
|
+
if (isCompoundField(x)) {
|
|
493
|
+
var childFields = x.treeChildren ? fields : x.children;
|
|
494
|
+
if (x.collection) {
|
|
495
|
+
if (Array.isArray(childValue)) {
|
|
496
|
+
out[x.field] = childValue.map(function (cv) {
|
|
497
|
+
return cleanDataForSchema(cv, childFields);
|
|
498
|
+
});
|
|
499
|
+
}
|
|
500
|
+
} else {
|
|
501
|
+
out[x.field] = cleanDataForSchema(childValue, childFields);
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
function canBeNull() {
|
|
505
|
+
return x.collection && Array.isArray(childValue) && !childValue.length
|
|
506
|
+
//|| (x.type === FieldType.Bool && childValue === false)
|
|
507
|
+
;
|
|
508
|
+
}
|
|
509
|
+
});
|
|
510
|
+
|
|
511
|
+
return out;
|
|
512
|
+
}
|
|
513
|
+
|
|
514
|
+
function dataControl(field, title, options) {
|
|
515
|
+
return _extends({
|
|
516
|
+
type: exports.ControlDefinitionType.Data,
|
|
517
|
+
field: field,
|
|
518
|
+
title: title
|
|
519
|
+
}, options);
|
|
520
|
+
}
|
|
521
|
+
function textDisplayControl(text, options) {
|
|
522
|
+
return _extends({
|
|
523
|
+
type: exports.ControlDefinitionType.Display,
|
|
524
|
+
displayData: {
|
|
525
|
+
type: exports.DisplayDataType.Text,
|
|
526
|
+
text: text
|
|
527
|
+
}
|
|
528
|
+
}, options);
|
|
529
|
+
}
|
|
530
|
+
function htmlDisplayControl(html, options) {
|
|
531
|
+
return _extends({
|
|
532
|
+
type: exports.ControlDefinitionType.Display,
|
|
533
|
+
displayData: {
|
|
534
|
+
type: exports.DisplayDataType.Html,
|
|
535
|
+
html: html
|
|
536
|
+
}
|
|
537
|
+
}, options);
|
|
538
|
+
}
|
|
539
|
+
function dynamicDefaultValue(expr) {
|
|
540
|
+
return {
|
|
541
|
+
type: exports.DynamicPropertyType.DefaultValue,
|
|
542
|
+
expr: expr
|
|
543
|
+
};
|
|
544
|
+
}
|
|
545
|
+
function visibility(expr) {
|
|
546
|
+
return {
|
|
547
|
+
type: exports.DynamicPropertyType.Visible,
|
|
548
|
+
expr: expr
|
|
549
|
+
};
|
|
550
|
+
}
|
|
551
|
+
function fieldEqExpr(field, value) {
|
|
552
|
+
return {
|
|
553
|
+
type: exports.ExpressionType.FieldValue,
|
|
554
|
+
field: field,
|
|
555
|
+
value: value
|
|
556
|
+
};
|
|
557
|
+
}
|
|
558
|
+
function jsonataExpr(expression) {
|
|
559
|
+
return {
|
|
560
|
+
type: exports.ExpressionType.Jsonata,
|
|
561
|
+
expression: expression
|
|
562
|
+
};
|
|
563
|
+
}
|
|
564
|
+
function groupedControl(children, title, options) {
|
|
565
|
+
return _extends({
|
|
566
|
+
type: exports.ControlDefinitionType.Group,
|
|
567
|
+
children: children,
|
|
568
|
+
title: title,
|
|
569
|
+
groupOptions: {
|
|
570
|
+
type: "Standard",
|
|
571
|
+
hideTitle: !title
|
|
572
|
+
}
|
|
573
|
+
}, options);
|
|
574
|
+
}
|
|
575
|
+
function compoundControl(field, title, children, options) {
|
|
576
|
+
return _extends({
|
|
577
|
+
type: exports.ControlDefinitionType.Data,
|
|
578
|
+
field: field,
|
|
579
|
+
children: children,
|
|
580
|
+
title: title,
|
|
581
|
+
renderOptions: {
|
|
582
|
+
type: "Standard"
|
|
583
|
+
}
|
|
584
|
+
}, options);
|
|
585
|
+
}
|
|
586
|
+
function createAction(actionId, onClick, actionText) {
|
|
587
|
+
return {
|
|
588
|
+
actionId: actionId,
|
|
589
|
+
onClick: onClick,
|
|
590
|
+
actionText: actionText != null ? actionText : actionId
|
|
591
|
+
};
|
|
592
|
+
}
|
|
593
|
+
var emptyGroupDefinition = {
|
|
594
|
+
type: exports.ControlDefinitionType.Group,
|
|
595
|
+
children: [],
|
|
596
|
+
groupOptions: {
|
|
597
|
+
type: exports.GroupRenderType.Standard,
|
|
598
|
+
hideTitle: true
|
|
599
|
+
}
|
|
600
|
+
};
|
|
601
|
+
function useControlDefinitionForSchema(sf, definition) {
|
|
602
|
+
if (definition === void 0) {
|
|
603
|
+
definition = emptyGroupDefinition;
|
|
604
|
+
}
|
|
605
|
+
return React.useMemo(function () {
|
|
606
|
+
var _definition$children;
|
|
607
|
+
return _extends({}, definition, {
|
|
608
|
+
children: addMissingControls(sf, (_definition$children = definition.children) != null ? _definition$children : [])
|
|
609
|
+
});
|
|
610
|
+
}, [sf, definition]);
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
function useEvalVisibilityHook(definition, schemaField) {
|
|
614
|
+
var dynamicVisibility = useEvalDynamicHook(definition, exports.DynamicPropertyType.Visible);
|
|
615
|
+
var r = useUpdatedRef(schemaField);
|
|
616
|
+
return React.useCallback(function (ctx) {
|
|
617
|
+
var _dynamicVisibility;
|
|
618
|
+
var schemaField = r.current;
|
|
619
|
+
return (_dynamicVisibility = dynamicVisibility == null ? void 0 : dynamicVisibility(ctx)) != null ? _dynamicVisibility : core.useComputed(function () {
|
|
620
|
+
return matchesType(ctx, schemaField == null ? void 0 : schemaField.onlyForTypes);
|
|
621
|
+
});
|
|
622
|
+
}, [dynamicVisibility, r]);
|
|
623
|
+
}
|
|
624
|
+
function useEvalDefaultValueHook(definition, schemaField) {
|
|
625
|
+
var dynamicValue = useEvalDynamicHook(definition, exports.DynamicPropertyType.DefaultValue);
|
|
626
|
+
var r = useUpdatedRef({
|
|
627
|
+
definition: definition,
|
|
628
|
+
schemaField: schemaField
|
|
629
|
+
});
|
|
630
|
+
return React.useCallback(function (ctx) {
|
|
631
|
+
var _dynamicValue;
|
|
632
|
+
var _r$current = r.current,
|
|
633
|
+
definition = _r$current.definition,
|
|
634
|
+
schemaField = _r$current.schemaField;
|
|
635
|
+
return (_dynamicValue = dynamicValue == null ? void 0 : dynamicValue(ctx)) != null ? _dynamicValue : core.useComputed(calcDefault);
|
|
636
|
+
function calcDefault() {
|
|
637
|
+
var _ref = isDataControlDefinition(definition) ? [definition.required, definition.defaultValue] : [false, undefined],
|
|
638
|
+
required = _ref[0],
|
|
639
|
+
dcv = _ref[1];
|
|
640
|
+
return dcv != null ? dcv : schemaField ? defaultValueForField(schemaField, required) : undefined;
|
|
641
|
+
}
|
|
642
|
+
}, [dynamicValue, r]);
|
|
643
|
+
}
|
|
644
|
+
function useFieldValueExpression(fvExpr, fields, data) {
|
|
645
|
+
var refField = findField(fields, fvExpr.field);
|
|
646
|
+
var otherField = refField ? data.fields[refField.field] : undefined;
|
|
647
|
+
return core.useComputed(function () {
|
|
648
|
+
var fv = otherField == null ? void 0 : otherField.value;
|
|
649
|
+
return Array.isArray(fv) ? fv.includes(fvExpr.value) : fv === fvExpr.value;
|
|
650
|
+
});
|
|
651
|
+
}
|
|
652
|
+
function useEvalExpressionHook(expr) {
|
|
653
|
+
var r = useUpdatedRef(expr);
|
|
654
|
+
var cb = React.useCallback(function (_ref2) {
|
|
655
|
+
var groupControl = _ref2.groupControl,
|
|
656
|
+
fields = _ref2.fields;
|
|
657
|
+
var expr = r.current;
|
|
658
|
+
switch (expr.type) {
|
|
659
|
+
case exports.ExpressionType.Jsonata:
|
|
660
|
+
return useJsonataExpression(expr.expression, groupControl);
|
|
661
|
+
case exports.ExpressionType.FieldValue:
|
|
662
|
+
return useFieldValueExpression(expr, fields, groupControl);
|
|
663
|
+
default:
|
|
664
|
+
return core.useControl(undefined);
|
|
665
|
+
}
|
|
666
|
+
}, [expr == null ? void 0 : expr.type, r]);
|
|
667
|
+
return expr ? cb : undefined;
|
|
668
|
+
}
|
|
669
|
+
function useEvalDynamicHook(definition, type) {
|
|
670
|
+
var _definition$dynamic;
|
|
671
|
+
var expression = (_definition$dynamic = definition.dynamic) == null ? void 0 : _definition$dynamic.find(function (x) {
|
|
672
|
+
return x.type === type;
|
|
673
|
+
});
|
|
674
|
+
return useEvalExpressionHook(expression == null ? void 0 : expression.expr);
|
|
675
|
+
}
|
|
676
|
+
function matchesType(context, types) {
|
|
677
|
+
if (types == null || types.length === 0) return true;
|
|
678
|
+
var typeField = getTypeField(context);
|
|
679
|
+
return typeField && types.includes(typeField.value);
|
|
680
|
+
}
|
|
681
|
+
function useJsonataExpression(jExpr, data) {
|
|
682
|
+
var compiledExpr = React.useMemo(function () {
|
|
683
|
+
return jsonata__default["default"](jExpr);
|
|
684
|
+
}, [jExpr]);
|
|
685
|
+
var control = core.useControl();
|
|
686
|
+
core.useControlEffect(function () {
|
|
687
|
+
return data.value;
|
|
688
|
+
}, function (v) {
|
|
689
|
+
try {
|
|
690
|
+
return Promise.resolve(compiledExpr.evaluate(v)).then(function (_compiledExpr$evaluat) {
|
|
691
|
+
control.value = _compiledExpr$evaluat;
|
|
692
|
+
});
|
|
693
|
+
} catch (e) {
|
|
694
|
+
return Promise.reject(e);
|
|
695
|
+
}
|
|
696
|
+
}, true);
|
|
697
|
+
return control;
|
|
698
|
+
}
|
|
699
|
+
|
|
700
|
+
function useValidationHook(definition) {
|
|
701
|
+
var _definition$validator, _definition$validator2;
|
|
702
|
+
var validatorTypes = isDataControlDefinition(definition) ? (_definition$validator = (_definition$validator2 = definition.validators) == null ? void 0 : _definition$validator2.map(function (x) {
|
|
703
|
+
return x.type;
|
|
704
|
+
})) != null ? _definition$validator : [] : null;
|
|
705
|
+
var r = useUpdatedRef(definition);
|
|
706
|
+
return React.useCallback(function (control, hidden, groupContext) {
|
|
707
|
+
var _dd$validators;
|
|
708
|
+
if (!validatorTypes) return;
|
|
709
|
+
var dd = r.current;
|
|
710
|
+
core.useValueChangeEffect(control, function () {
|
|
711
|
+
return control.setError("default", "");
|
|
712
|
+
});
|
|
713
|
+
core.useValidator(control, function (v) {
|
|
714
|
+
return !hidden && dd.required && (v == null || v === "" || Array.isArray(v) && v.length === 0) ? "Please enter a value" : null;
|
|
715
|
+
}, "required");
|
|
716
|
+
((_dd$validators = dd.validators) != null ? _dd$validators : []).forEach(function (x, i) {
|
|
717
|
+
switch (x.type) {
|
|
718
|
+
case exports.ValidatorType.Jsonata:
|
|
719
|
+
return useJsonataValidator(control, groupContext, x, hidden, i);
|
|
720
|
+
case exports.ValidatorType.Date:
|
|
721
|
+
return useDateValidator(control, x, i);
|
|
722
|
+
}
|
|
723
|
+
});
|
|
724
|
+
}, validatorTypes ? validatorTypes : [null]);
|
|
725
|
+
}
|
|
726
|
+
function useJsonataValidator(control, context, expr, hidden, i) {
|
|
727
|
+
var errorMsg = useJsonataExpression(expr.expression, context.groupControl);
|
|
728
|
+
core.useControlEffect(function () {
|
|
729
|
+
return [hidden, errorMsg.value];
|
|
730
|
+
}, function (_ref) {
|
|
731
|
+
var hidden = _ref[0],
|
|
732
|
+
msg = _ref[1];
|
|
733
|
+
return control.setError("jsonata" + i, !hidden ? msg : null);
|
|
734
|
+
}, true);
|
|
735
|
+
}
|
|
736
|
+
function useDateValidator(control, dv, i) {
|
|
737
|
+
var comparisonDate;
|
|
738
|
+
if (dv.fixedDate) {
|
|
739
|
+
comparisonDate = Date.parse(dv.fixedDate);
|
|
740
|
+
} else {
|
|
741
|
+
var nowDate = new Date();
|
|
742
|
+
comparisonDate = Date.UTC(nowDate.getFullYear(), nowDate.getMonth(), nowDate.getDate());
|
|
743
|
+
if (dv.daysFromCurrent) {
|
|
744
|
+
comparisonDate += dv.daysFromCurrent * 86400000;
|
|
745
|
+
}
|
|
746
|
+
}
|
|
747
|
+
core.useValidator(control, function (v) {
|
|
748
|
+
if (v) {
|
|
749
|
+
var selDate = Date.parse(v);
|
|
750
|
+
var notAfter = dv.comparison === exports.DateComparison.NotAfter;
|
|
751
|
+
if (notAfter ? selDate > comparisonDate : selDate < comparisonDate) {
|
|
752
|
+
return "Date must not be " + (notAfter ? "after" : "before") + " " + new Date(comparisonDate).toDateString();
|
|
753
|
+
}
|
|
754
|
+
}
|
|
755
|
+
return null;
|
|
756
|
+
}, "date" + i);
|
|
757
|
+
}
|
|
758
|
+
|
|
759
|
+
var AppendAdornmentPriority = 0;
|
|
760
|
+
var WrapAdornmentPriority = 1000;
|
|
761
|
+
exports.LabelType = void 0;
|
|
762
|
+
(function (LabelType) {
|
|
763
|
+
LabelType[LabelType["Control"] = 0] = "Control";
|
|
764
|
+
LabelType[LabelType["Group"] = 1] = "Group";
|
|
765
|
+
})(exports.LabelType || (exports.LabelType = {}));
|
|
766
|
+
function useControlRenderer(definition, fields, renderer, options) {
|
|
767
|
+
var _options$useDataHook;
|
|
768
|
+
if (options === void 0) {
|
|
769
|
+
options = {};
|
|
770
|
+
}
|
|
771
|
+
var dataProps = (_options$useDataHook = options.useDataHook == null ? void 0 : options.useDataHook(definition)) != null ? _options$useDataHook : defaultDataProps;
|
|
772
|
+
var schemaField = lookupSchemaField(definition, fields);
|
|
773
|
+
var useDefaultValue = useEvalDefaultValueHook(definition, schemaField);
|
|
774
|
+
var useIsVisible = useEvalVisibilityHook(definition, schemaField);
|
|
775
|
+
var useValidation = useValidationHook(definition);
|
|
776
|
+
var r = useUpdatedRef({
|
|
777
|
+
options: options,
|
|
778
|
+
definition: definition,
|
|
779
|
+
fields: fields,
|
|
780
|
+
schemaField: schemaField
|
|
781
|
+
});
|
|
782
|
+
var Component = React.useCallback(function (_ref) {
|
|
783
|
+
var parentControl = _ref.control;
|
|
784
|
+
var stopTracking = core.useComponentTracking();
|
|
785
|
+
try {
|
|
786
|
+
var _c$children$map, _c$children, _definition$adornment, _definition$adornment2;
|
|
787
|
+
var _r$current = r.current,
|
|
788
|
+
c = _r$current.definition,
|
|
789
|
+
_options = _r$current.options,
|
|
790
|
+
_fields = _r$current.fields,
|
|
791
|
+
_schemaField = _r$current.schemaField;
|
|
792
|
+
var groupContext = {
|
|
793
|
+
groupControl: parentControl,
|
|
794
|
+
fields: _fields
|
|
795
|
+
};
|
|
796
|
+
var visibleControl = useIsVisible(groupContext);
|
|
797
|
+
var visible = visibleControl.current.value;
|
|
798
|
+
var visibility = core.useControl(function () {
|
|
799
|
+
return visible != null ? {
|
|
800
|
+
visible: visible,
|
|
801
|
+
showing: visible
|
|
802
|
+
} : undefined;
|
|
803
|
+
});
|
|
804
|
+
core.useControlEffect(function () {
|
|
805
|
+
return visibleControl.value;
|
|
806
|
+
}, function (visible) {
|
|
807
|
+
if (visible != null) visibility.setValue(function (ex) {
|
|
808
|
+
return {
|
|
809
|
+
visible: visible,
|
|
810
|
+
showing: ex ? ex.showing : visible
|
|
811
|
+
};
|
|
812
|
+
});
|
|
813
|
+
});
|
|
814
|
+
var defaultValueControl = useDefaultValue(groupContext);
|
|
815
|
+
var _getControlData = getControlData(_schemaField, groupContext),
|
|
816
|
+
control = _getControlData[0],
|
|
817
|
+
childContext = _getControlData[1];
|
|
818
|
+
core.useControlEffect(function () {
|
|
819
|
+
return [visibility.value, defaultValueControl.value, control, parentControl.isNull];
|
|
820
|
+
}, function (_ref2) {
|
|
821
|
+
var vc = _ref2[0],
|
|
822
|
+
dv = _ref2[1],
|
|
823
|
+
cd = _ref2[2],
|
|
824
|
+
pn = _ref2[3];
|
|
825
|
+
if (pn) {
|
|
826
|
+
parentControl.value = {};
|
|
827
|
+
}
|
|
828
|
+
if (vc && cd && vc.visible === vc.showing) {
|
|
829
|
+
if (!vc.visible) {
|
|
830
|
+
if (_options.clearHidden) cd.value = undefined;
|
|
831
|
+
} else if (cd.value == null) {
|
|
832
|
+
cd.value = dv;
|
|
833
|
+
}
|
|
834
|
+
}
|
|
835
|
+
}, true);
|
|
836
|
+
var hidden = core.useComputed(function () {
|
|
837
|
+
var _visibility$fields;
|
|
838
|
+
return _options.hidden || !((_visibility$fields = visibility.fields) != null && _visibility$fields.showing.value);
|
|
839
|
+
}).value;
|
|
840
|
+
useValidation(control, hidden, groupContext);
|
|
841
|
+
var myOptions = _options.hidden !== hidden ? _extends({}, _options, {
|
|
842
|
+
hidden: hidden
|
|
843
|
+
}) : _options;
|
|
844
|
+
var childRenderers = (_c$children$map = (_c$children = c.children) == null ? void 0 : _c$children.map(function (cd) {
|
|
845
|
+
return useControlRenderer(cd, childContext.fields, renderer, myOptions);
|
|
846
|
+
})) != null ? _c$children$map : [];
|
|
847
|
+
if (parentControl.isNull) return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null);
|
|
848
|
+
var adornments = (_definition$adornment = (_definition$adornment2 = definition.adornments) == null ? void 0 : _definition$adornment2.map(function (x) {
|
|
849
|
+
return renderer.renderAdornment({
|
|
850
|
+
adornment: x
|
|
851
|
+
});
|
|
852
|
+
})) != null ? _definition$adornment : [];
|
|
853
|
+
var labelAndChildren = renderControlLayout(c, renderer, childRenderers.length, function (k, i, props) {
|
|
854
|
+
var RenderChild = childRenderers[i];
|
|
855
|
+
return /*#__PURE__*/React__default["default"].createElement(RenderChild, _extends({
|
|
856
|
+
key: k
|
|
857
|
+
}, props));
|
|
858
|
+
}, dataProps, myOptions, groupContext, control, _schemaField);
|
|
859
|
+
return renderer.renderVisibility(visibility, function () {
|
|
860
|
+
return renderer.renderLayout(_extends({}, labelAndChildren, {
|
|
861
|
+
adornments: adornments
|
|
862
|
+
}));
|
|
863
|
+
});
|
|
864
|
+
} finally {
|
|
865
|
+
stopTracking();
|
|
866
|
+
}
|
|
867
|
+
}, [r, dataProps, useIsVisible, useDefaultValue, useValidation, renderer]);
|
|
868
|
+
Component.displayName = "RenderControl";
|
|
869
|
+
return Component;
|
|
870
|
+
}
|
|
871
|
+
function lookupSchemaField(c, fields) {
|
|
872
|
+
var fieldName = isGroupControlsDefinition(c) ? c.compoundField : isDataControlDefinition(c) ? c.field : undefined;
|
|
873
|
+
return fieldName ? findField(fields, fieldName) : undefined;
|
|
874
|
+
}
|
|
875
|
+
function getControlData(schemaField, parentContext) {
|
|
876
|
+
var _parentContext$groupC, _parentContext$groupC2;
|
|
877
|
+
var childControl = schemaField ? (_parentContext$groupC = (_parentContext$groupC2 = parentContext.groupControl.fields) == null ? void 0 : _parentContext$groupC2[schemaField.field]) != null ? _parentContext$groupC : core.newControl({}) : undefined;
|
|
878
|
+
return [childControl, schemaField && isCompoundField(schemaField) ? {
|
|
879
|
+
groupControl: childControl,
|
|
880
|
+
fields: schemaField.children
|
|
881
|
+
} : parentContext];
|
|
882
|
+
}
|
|
883
|
+
function renderArray(renderer, noun, field, required, arrayControl, _renderChild) {
|
|
884
|
+
var _arrayControl$element;
|
|
885
|
+
var elems = (_arrayControl$element = arrayControl.elements) != null ? _arrayControl$element : [];
|
|
886
|
+
return renderer.renderArray({
|
|
887
|
+
arrayControl: arrayControl,
|
|
888
|
+
childCount: elems.length,
|
|
889
|
+
required: required,
|
|
890
|
+
addAction: {
|
|
891
|
+
actionId: "add",
|
|
892
|
+
actionText: "Add " + noun,
|
|
893
|
+
onClick: function onClick() {
|
|
894
|
+
return core.addElement(arrayControl, elementValueForField(field));
|
|
895
|
+
}
|
|
896
|
+
},
|
|
897
|
+
childKey: function childKey(i) {
|
|
898
|
+
return elems[i].uniqueId;
|
|
899
|
+
},
|
|
900
|
+
removeAction: function removeAction(i) {
|
|
901
|
+
return {
|
|
902
|
+
actionId: "",
|
|
903
|
+
actionText: "Remove",
|
|
904
|
+
onClick: function onClick() {
|
|
905
|
+
return core.removeElement(arrayControl, i);
|
|
906
|
+
}
|
|
907
|
+
};
|
|
908
|
+
},
|
|
909
|
+
renderChild: function renderChild(i) {
|
|
910
|
+
return _renderChild(i, elems[i]);
|
|
911
|
+
}
|
|
912
|
+
});
|
|
913
|
+
}
|
|
914
|
+
function groupProps(renderOptions, childCount, _renderChild2, control) {
|
|
915
|
+
if (renderOptions === void 0) {
|
|
916
|
+
renderOptions = {
|
|
917
|
+
type: "Standard"
|
|
918
|
+
};
|
|
919
|
+
}
|
|
920
|
+
return {
|
|
921
|
+
childCount: childCount,
|
|
922
|
+
renderChild: function renderChild(i) {
|
|
923
|
+
return _renderChild2(i, i, {
|
|
924
|
+
control: control
|
|
925
|
+
});
|
|
926
|
+
},
|
|
927
|
+
renderOptions: renderOptions
|
|
928
|
+
};
|
|
929
|
+
}
|
|
930
|
+
var defaultDataProps = function defaultDataProps(definition, field, groupContext, control, options) {
|
|
931
|
+
var _field$options$length, _field$options, _definition$renderOpt;
|
|
932
|
+
return {
|
|
933
|
+
control: control,
|
|
934
|
+
field: field,
|
|
935
|
+
id: "c" + control.uniqueId,
|
|
936
|
+
options: ((_field$options$length = (_field$options = field.options) == null ? void 0 : _field$options.length) != null ? _field$options$length : 0) === 0 ? null : field.options,
|
|
937
|
+
readonly: options.readonly || !!definition.readonly,
|
|
938
|
+
renderOptions: (_definition$renderOpt = definition.renderOptions) != null ? _definition$renderOpt : {
|
|
939
|
+
type: "Standard"
|
|
940
|
+
},
|
|
941
|
+
required: !!definition.required,
|
|
942
|
+
hidden: !!options.hidden
|
|
943
|
+
};
|
|
944
|
+
};
|
|
945
|
+
function renderControlLayout(c, renderer, childCount, childRenderer, dataProps, dataOptions, groupContext, childControl, schemaField) {
|
|
946
|
+
if (isDataControlDefinition(c)) {
|
|
947
|
+
return renderData(c);
|
|
948
|
+
}
|
|
949
|
+
if (isGroupControlsDefinition(c)) {
|
|
950
|
+
var _c$groupOptions2;
|
|
951
|
+
if (c.compoundField) {
|
|
952
|
+
var _c$groupOptions;
|
|
953
|
+
return renderData(dataControl(c.compoundField, c.title, {
|
|
954
|
+
children: c.children,
|
|
955
|
+
hideTitle: (_c$groupOptions = c.groupOptions) == null ? void 0 : _c$groupOptions.hideTitle
|
|
956
|
+
}));
|
|
957
|
+
}
|
|
958
|
+
return {
|
|
959
|
+
children: renderer.renderGroup(groupProps(c.groupOptions, childCount, childRenderer, groupContext.groupControl)),
|
|
960
|
+
label: {
|
|
961
|
+
label: c.title,
|
|
962
|
+
type: exports.LabelType.Group,
|
|
963
|
+
hide: (_c$groupOptions2 = c.groupOptions) == null ? void 0 : _c$groupOptions2.hideTitle
|
|
964
|
+
}
|
|
965
|
+
};
|
|
966
|
+
}
|
|
967
|
+
if (isActionControlsDefinition(c)) {
|
|
968
|
+
var _c$title;
|
|
969
|
+
return {
|
|
970
|
+
children: renderer.renderAction({
|
|
971
|
+
actionText: (_c$title = c.title) != null ? _c$title : c.actionId,
|
|
972
|
+
actionId: c.actionId,
|
|
973
|
+
onClick: function onClick() {}
|
|
974
|
+
})
|
|
975
|
+
};
|
|
976
|
+
}
|
|
977
|
+
if (isDisplayControlsDefinition(c)) {
|
|
978
|
+
var _c$displayData;
|
|
979
|
+
return {
|
|
980
|
+
children: renderer.renderDisplay({
|
|
981
|
+
data: (_c$displayData = c.displayData) != null ? _c$displayData : {}
|
|
982
|
+
})
|
|
983
|
+
};
|
|
984
|
+
}
|
|
985
|
+
return {};
|
|
986
|
+
function renderData(c) {
|
|
987
|
+
if (!schemaField) return {
|
|
988
|
+
children: "No schema field for: " + c.field
|
|
989
|
+
};
|
|
990
|
+
if (isCompoundField(schemaField)) {
|
|
991
|
+
var label = {
|
|
992
|
+
hide: c.hideTitle,
|
|
993
|
+
label: controlTitle(c.title, schemaField),
|
|
994
|
+
type: schemaField.collection ? exports.LabelType.Control : exports.LabelType.Group
|
|
995
|
+
};
|
|
996
|
+
if (schemaField.collection) {
|
|
997
|
+
return {
|
|
998
|
+
label: label,
|
|
999
|
+
children: renderArray(renderer, controlTitle(c.title, schemaField), schemaField, !!c.required, childControl, compoundRenderer),
|
|
1000
|
+
errorControl: childControl
|
|
1001
|
+
};
|
|
1002
|
+
}
|
|
1003
|
+
return {
|
|
1004
|
+
children: renderer.renderGroup(groupProps({
|
|
1005
|
+
type: "Standard"
|
|
1006
|
+
}, childCount, childRenderer, childControl)),
|
|
1007
|
+
label: label,
|
|
1008
|
+
errorControl: childControl
|
|
1009
|
+
};
|
|
1010
|
+
}
|
|
1011
|
+
var props = dataProps(c, schemaField, groupContext, childControl, dataOptions);
|
|
1012
|
+
var labelText = !c.hideTitle ? controlTitle(c.title, schemaField) : undefined;
|
|
1013
|
+
return {
|
|
1014
|
+
processLayout: renderer.renderData(props, schemaField.collection ? function () {
|
|
1015
|
+
return renderArray(renderer, controlTitle(c.title, schemaField), schemaField, !!c.required, childControl, scalarRenderer(props));
|
|
1016
|
+
} : undefined),
|
|
1017
|
+
label: {
|
|
1018
|
+
type: exports.LabelType.Control,
|
|
1019
|
+
label: labelText,
|
|
1020
|
+
forId: props.id,
|
|
1021
|
+
required: c.required,
|
|
1022
|
+
hide: c.hideTitle
|
|
1023
|
+
},
|
|
1024
|
+
errorControl: childControl
|
|
1025
|
+
};
|
|
1026
|
+
}
|
|
1027
|
+
function compoundRenderer(i, control) {
|
|
1028
|
+
return /*#__PURE__*/React__default["default"].createElement(React.Fragment, {
|
|
1029
|
+
key: control.uniqueId
|
|
1030
|
+
}, renderer.renderGroup({
|
|
1031
|
+
renderOptions: {
|
|
1032
|
+
type: "Standard",
|
|
1033
|
+
hideTitle: true
|
|
1034
|
+
},
|
|
1035
|
+
childCount: childCount,
|
|
1036
|
+
renderChild: function renderChild(ci) {
|
|
1037
|
+
return childRenderer(ci, ci, {
|
|
1038
|
+
control: control
|
|
1039
|
+
});
|
|
1040
|
+
}
|
|
1041
|
+
}));
|
|
1042
|
+
}
|
|
1043
|
+
function scalarRenderer(dataProps) {
|
|
1044
|
+
return function (i, control) {
|
|
1045
|
+
return /*#__PURE__*/React__default["default"].createElement(React.Fragment, {
|
|
1046
|
+
key: control.uniqueId
|
|
1047
|
+
}, renderer.renderData(_extends({}, dataProps, {
|
|
1048
|
+
control: control
|
|
1049
|
+
}), undefined)({}).children);
|
|
1050
|
+
};
|
|
1051
|
+
}
|
|
1052
|
+
}
|
|
1053
|
+
function appendMarkup(k, markup) {
|
|
1054
|
+
return function (layout) {
|
|
1055
|
+
return layout[k] = /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, layout[k], markup);
|
|
1056
|
+
};
|
|
1057
|
+
}
|
|
1058
|
+
function wrapMarkup(k, wrap) {
|
|
1059
|
+
return function (layout) {
|
|
1060
|
+
return layout[k] = wrap(layout[k]);
|
|
1061
|
+
};
|
|
1062
|
+
}
|
|
1063
|
+
function layoutKeyForPlacement(pos) {
|
|
1064
|
+
switch (pos) {
|
|
1065
|
+
case exports.AdornmentPlacement.ControlEnd:
|
|
1066
|
+
return "controlEnd";
|
|
1067
|
+
case exports.AdornmentPlacement.ControlStart:
|
|
1068
|
+
return "controlStart";
|
|
1069
|
+
case exports.AdornmentPlacement.LabelStart:
|
|
1070
|
+
return "labelStart";
|
|
1071
|
+
case exports.AdornmentPlacement.LabelEnd:
|
|
1072
|
+
return "labelEnd";
|
|
1073
|
+
}
|
|
1074
|
+
}
|
|
1075
|
+
function appendMarkupAt(pos, markup) {
|
|
1076
|
+
return appendMarkup(layoutKeyForPlacement(pos), markup);
|
|
1077
|
+
}
|
|
1078
|
+
function wrapMarkupAt(pos, wrap) {
|
|
1079
|
+
return wrapMarkup(layoutKeyForPlacement(pos), wrap);
|
|
1080
|
+
}
|
|
1081
|
+
function renderLayoutParts(props, renderer) {
|
|
1082
|
+
var _props$processLayout, _processed$adornments;
|
|
1083
|
+
var processed = (_props$processLayout = props.processLayout == null ? void 0 : props.processLayout(props)) != null ? _props$processLayout : props;
|
|
1084
|
+
var layout = {
|
|
1085
|
+
children: processed.children
|
|
1086
|
+
};
|
|
1087
|
+
((_processed$adornments = processed.adornments) != null ? _processed$adornments : []).sort(function (a, b) {
|
|
1088
|
+
return a.priority - b.priority;
|
|
1089
|
+
}).forEach(function (x) {
|
|
1090
|
+
return x.apply(layout);
|
|
1091
|
+
});
|
|
1092
|
+
var l = processed.label;
|
|
1093
|
+
layout.label = l && !l.hide ? renderer.renderLabel(l, layout.labelStart, layout.labelEnd) : undefined;
|
|
1094
|
+
return layout;
|
|
1095
|
+
}
|
|
1096
|
+
function controlTitle(title, field) {
|
|
1097
|
+
return title ? title : fieldDisplayName(field);
|
|
1098
|
+
}
|
|
1099
|
+
|
|
1100
|
+
var _excluded = ["control", "convert"],
|
|
1101
|
+
_excluded2 = ["errorText", "value", "onChange"],
|
|
1102
|
+
_excluded3 = ["state", "options", "className", "convert", "required", "emptyText", "requiredText"];
|
|
1103
|
+
function createFormRenderer(customRenderers, defaultRenderers) {
|
|
1104
|
+
var _customRenderers$find;
|
|
1105
|
+
if (customRenderers === void 0) {
|
|
1106
|
+
customRenderers = [];
|
|
1107
|
+
}
|
|
1108
|
+
if (defaultRenderers === void 0) {
|
|
1109
|
+
defaultRenderers = createClassStyledRenderers();
|
|
1110
|
+
}
|
|
1111
|
+
var dataRegistrations = customRenderers.filter(isDataRegistration);
|
|
1112
|
+
var groupRegistrations = customRenderers.filter(isGroupRegistration);
|
|
1113
|
+
var adornmentRegistrations = customRenderers.filter(isAdornmentRegistration);
|
|
1114
|
+
var displayRegistrations = customRenderers.filter(isDisplayRegistration);
|
|
1115
|
+
var labelRenderers = customRenderers.filter(isLabelRegistration);
|
|
1116
|
+
var arrayRenderers = customRenderers.filter(isArrayRegistration);
|
|
1117
|
+
var actionRenderers = customRenderers.filter(isActionRegistration);
|
|
1118
|
+
var layoutRenderers = customRenderers.filter(isLayoutRegistration);
|
|
1119
|
+
var visibilityRenderer = (_customRenderers$find = customRenderers.find(isVisibilityRegistration)) != null ? _customRenderers$find : defaultRenderers.visibility;
|
|
1120
|
+
var formRenderers = {
|
|
1121
|
+
renderAction: renderAction,
|
|
1122
|
+
renderData: renderData,
|
|
1123
|
+
renderGroup: renderGroup,
|
|
1124
|
+
renderDisplay: renderDisplay,
|
|
1125
|
+
renderLabel: renderLabel,
|
|
1126
|
+
renderArray: renderArray,
|
|
1127
|
+
renderAdornment: renderAdornment,
|
|
1128
|
+
renderLayout: renderLayout,
|
|
1129
|
+
renderVisibility: visibilityRenderer.render
|
|
1130
|
+
};
|
|
1131
|
+
function renderLayout(props) {
|
|
1132
|
+
var _layoutRenderers$find;
|
|
1133
|
+
var renderer = (_layoutRenderers$find = layoutRenderers.find(function (x) {
|
|
1134
|
+
return !x.match || x.match(props);
|
|
1135
|
+
})) != null ? _layoutRenderers$find : defaultRenderers.renderLayout;
|
|
1136
|
+
return renderer.render(props, formRenderers);
|
|
1137
|
+
}
|
|
1138
|
+
function renderAdornment(props) {
|
|
1139
|
+
var _adornmentRegistratio;
|
|
1140
|
+
var renderer = (_adornmentRegistratio = adornmentRegistrations.find(function (x) {
|
|
1141
|
+
return isOneOf(x.adornmentType, props.adornment.type);
|
|
1142
|
+
})) != null ? _adornmentRegistratio : defaultRenderers.adornment;
|
|
1143
|
+
return renderer.render(props);
|
|
1144
|
+
}
|
|
1145
|
+
function renderArray(props) {
|
|
1146
|
+
var _arrayRenderers$;
|
|
1147
|
+
return ((_arrayRenderers$ = arrayRenderers[0]) != null ? _arrayRenderers$ : defaultRenderers.array).render(props, formRenderers);
|
|
1148
|
+
}
|
|
1149
|
+
function renderLabel(props, labelStart, labelEnd) {
|
|
1150
|
+
var _labelRenderers$find;
|
|
1151
|
+
var renderer = (_labelRenderers$find = labelRenderers.find(function (x) {
|
|
1152
|
+
return isOneOf(x.labelType, props.type);
|
|
1153
|
+
})) != null ? _labelRenderers$find : defaultRenderers.label;
|
|
1154
|
+
return renderer.render(props, labelStart, labelEnd, formRenderers);
|
|
1155
|
+
}
|
|
1156
|
+
function renderData(props, asArray) {
|
|
1157
|
+
var _dataRegistrations$fi;
|
|
1158
|
+
var renderType = props.renderOptions.type,
|
|
1159
|
+
field = props.field;
|
|
1160
|
+
var options = hasOptions(props);
|
|
1161
|
+
var renderer = (_dataRegistrations$fi = dataRegistrations.find(function (x) {
|
|
1162
|
+
var _x$collection, _field$collection, _x$options;
|
|
1163
|
+
return ((_x$collection = x.collection) != null ? _x$collection : false) === ((_field$collection = field.collection) != null ? _field$collection : false) && ((_x$options = x.options) != null ? _x$options : false) === options && isOneOf(x.schemaType, field.type) && isOneOf(x.renderType, renderType) && (!x.match || x.match(props));
|
|
1164
|
+
})) != null ? _dataRegistrations$fi : defaultRenderers.data;
|
|
1165
|
+
var result = renderer.render(props, asArray, formRenderers);
|
|
1166
|
+
if (typeof result === "function") return result;
|
|
1167
|
+
return function (l) {
|
|
1168
|
+
return _extends({}, l, {
|
|
1169
|
+
children: result
|
|
1170
|
+
});
|
|
1171
|
+
};
|
|
1172
|
+
}
|
|
1173
|
+
function renderGroup(props) {
|
|
1174
|
+
var _groupRegistrations$f;
|
|
1175
|
+
var renderType = props.renderOptions.type;
|
|
1176
|
+
var renderer = (_groupRegistrations$f = groupRegistrations.find(function (x) {
|
|
1177
|
+
return isOneOf(x.renderType, renderType);
|
|
1178
|
+
})) != null ? _groupRegistrations$f : defaultRenderers.group;
|
|
1179
|
+
return renderer.render(props, formRenderers);
|
|
1180
|
+
}
|
|
1181
|
+
function renderAction(props) {
|
|
1182
|
+
var _actionRenderers$find;
|
|
1183
|
+
var renderer = (_actionRenderers$find = actionRenderers.find(function (x) {
|
|
1184
|
+
return isOneOf(x.actionType, props.actionId);
|
|
1185
|
+
})) != null ? _actionRenderers$find : defaultRenderers.action;
|
|
1186
|
+
return renderer.render(props, formRenderers);
|
|
1187
|
+
}
|
|
1188
|
+
function renderDisplay(props) {
|
|
1189
|
+
var _displayRegistrations;
|
|
1190
|
+
var renderType = props.data.type;
|
|
1191
|
+
var renderer = (_displayRegistrations = displayRegistrations.find(function (x) {
|
|
1192
|
+
return isOneOf(x.renderType, renderType);
|
|
1193
|
+
})) != null ? _displayRegistrations : defaultRenderers.display;
|
|
1194
|
+
return renderer.render(props, formRenderers);
|
|
1195
|
+
}
|
|
1196
|
+
return formRenderers;
|
|
1197
|
+
}
|
|
1198
|
+
function createDefaultActionRenderer(options) {
|
|
1199
|
+
if (options === void 0) {
|
|
1200
|
+
options = {};
|
|
1201
|
+
}
|
|
1202
|
+
function render(_ref) {
|
|
1203
|
+
var onClick = _ref.onClick,
|
|
1204
|
+
actionText = _ref.actionText;
|
|
1205
|
+
return /*#__PURE__*/React__default["default"].createElement("button", {
|
|
1206
|
+
className: options.className,
|
|
1207
|
+
onClick: onClick
|
|
1208
|
+
}, actionText);
|
|
1209
|
+
}
|
|
1210
|
+
return {
|
|
1211
|
+
render: render,
|
|
1212
|
+
type: "action"
|
|
1213
|
+
};
|
|
1214
|
+
}
|
|
1215
|
+
function createDefaultLabelRenderer(options) {
|
|
1216
|
+
if (options === void 0) {
|
|
1217
|
+
options = {
|
|
1218
|
+
requiredElement: /*#__PURE__*/React__default["default"].createElement("span", null, " *")
|
|
1219
|
+
};
|
|
1220
|
+
}
|
|
1221
|
+
var _options = options,
|
|
1222
|
+
className = _options.className,
|
|
1223
|
+
groupLabelClass = _options.groupLabelClass,
|
|
1224
|
+
requiredElement = _options.requiredElement;
|
|
1225
|
+
return {
|
|
1226
|
+
render: function render(props, labelStart, labelEnd) {
|
|
1227
|
+
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, labelStart, /*#__PURE__*/React__default["default"].createElement("label", {
|
|
1228
|
+
htmlFor: props.forId,
|
|
1229
|
+
className: clsx__default["default"](className, props.type === exports.LabelType.Group && groupLabelClass)
|
|
1230
|
+
}, props.label, props.required && requiredElement), labelEnd);
|
|
1231
|
+
},
|
|
1232
|
+
type: "label"
|
|
1233
|
+
};
|
|
1234
|
+
}
|
|
1235
|
+
function createDefaultArrayRenderer(options) {
|
|
1236
|
+
var _ref2 = options != null ? options : {},
|
|
1237
|
+
className = _ref2.className,
|
|
1238
|
+
removableClass = _ref2.removableClass,
|
|
1239
|
+
childClass = _ref2.childClass,
|
|
1240
|
+
removableChildClass = _ref2.removableChildClass,
|
|
1241
|
+
removeActionClass = _ref2.removeActionClass,
|
|
1242
|
+
addActionClass = _ref2.addActionClass;
|
|
1243
|
+
function render(_ref3, _ref4) {
|
|
1244
|
+
var childCount = _ref3.childCount,
|
|
1245
|
+
renderChild = _ref3.renderChild,
|
|
1246
|
+
addAction = _ref3.addAction,
|
|
1247
|
+
removeAction = _ref3.removeAction,
|
|
1248
|
+
childKey = _ref3.childKey,
|
|
1249
|
+
required = _ref3.required;
|
|
1250
|
+
var renderAction = _ref4.renderAction;
|
|
1251
|
+
var showRemove = !required || childCount > 1;
|
|
1252
|
+
return /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1253
|
+
className: clsx__default["default"](className, removeAction && removableClass)
|
|
1254
|
+
}, Array.from({
|
|
1255
|
+
length: childCount
|
|
1256
|
+
}, function (_, x) {
|
|
1257
|
+
return removeAction ? /*#__PURE__*/React__default["default"].createElement(React.Fragment, {
|
|
1258
|
+
key: childKey(x)
|
|
1259
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1260
|
+
className: clsx__default["default"](childClass, removableChildClass)
|
|
1261
|
+
}, renderChild(x)), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1262
|
+
className: removeActionClass
|
|
1263
|
+
}, showRemove && renderAction(removeAction(x)))) : /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1264
|
+
key: childKey(x),
|
|
1265
|
+
className: childClass
|
|
1266
|
+
}, renderChild(x));
|
|
1267
|
+
})), addAction && /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1268
|
+
className: addActionClass
|
|
1269
|
+
}, renderAction(addAction)));
|
|
1270
|
+
}
|
|
1271
|
+
return {
|
|
1272
|
+
render: render,
|
|
1273
|
+
type: "array"
|
|
1274
|
+
};
|
|
1275
|
+
}
|
|
1276
|
+
function createDefaultGroupRenderer(options) {
|
|
1277
|
+
var _ref5 = options != null ? options : {},
|
|
1278
|
+
className = _ref5.className,
|
|
1279
|
+
_ref5$gridStyles = _ref5.gridStyles,
|
|
1280
|
+
gridStyles = _ref5$gridStyles === void 0 ? defaultGridStyles : _ref5$gridStyles,
|
|
1281
|
+
_ref5$defaultGridColu = _ref5.defaultGridColumns,
|
|
1282
|
+
defaultGridColumns = _ref5$defaultGridColu === void 0 ? 2 : _ref5$defaultGridColu,
|
|
1283
|
+
gridClassName = _ref5.gridClassName,
|
|
1284
|
+
standardClassName = _ref5.standardClassName;
|
|
1285
|
+
function defaultGridStyles(_ref6) {
|
|
1286
|
+
var _ref6$columns = _ref6.columns,
|
|
1287
|
+
columns = _ref6$columns === void 0 ? defaultGridColumns : _ref6$columns;
|
|
1288
|
+
return {
|
|
1289
|
+
className: gridClassName,
|
|
1290
|
+
style: {
|
|
1291
|
+
display: "grid",
|
|
1292
|
+
gridTemplateColumns: "repeat(" + columns + ", 1fr)"
|
|
1293
|
+
}
|
|
1294
|
+
};
|
|
1295
|
+
}
|
|
1296
|
+
function render(props) {
|
|
1297
|
+
var childCount = props.childCount,
|
|
1298
|
+
renderChild = props.renderChild,
|
|
1299
|
+
renderOptions = props.renderOptions;
|
|
1300
|
+
var _ref7 = isGridRenderer(renderOptions) ? gridStyles(renderOptions) : {
|
|
1301
|
+
className: standardClassName
|
|
1302
|
+
},
|
|
1303
|
+
style = _ref7.style,
|
|
1304
|
+
gcn = _ref7.className;
|
|
1305
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1306
|
+
className: clsx__default["default"](className, gcn),
|
|
1307
|
+
style: style
|
|
1308
|
+
}, Array.from({
|
|
1309
|
+
length: childCount
|
|
1310
|
+
}, function (_, x) {
|
|
1311
|
+
return renderChild(x);
|
|
1312
|
+
}));
|
|
1313
|
+
}
|
|
1314
|
+
return {
|
|
1315
|
+
type: "group",
|
|
1316
|
+
render: render
|
|
1317
|
+
};
|
|
1318
|
+
}
|
|
1319
|
+
function createDefaultDisplayRenderer(options) {
|
|
1320
|
+
if (options === void 0) {
|
|
1321
|
+
options = {};
|
|
1322
|
+
}
|
|
1323
|
+
return {
|
|
1324
|
+
render: function render(_ref8) {
|
|
1325
|
+
var data = _ref8.data;
|
|
1326
|
+
switch (data.type) {
|
|
1327
|
+
case exports.DisplayDataType.Text:
|
|
1328
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1329
|
+
className: options.textClassName
|
|
1330
|
+
}, data.text);
|
|
1331
|
+
case exports.DisplayDataType.Html:
|
|
1332
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1333
|
+
className: options.htmlClassName,
|
|
1334
|
+
dangerouslySetInnerHTML: {
|
|
1335
|
+
__html: data.html
|
|
1336
|
+
}
|
|
1337
|
+
});
|
|
1338
|
+
default:
|
|
1339
|
+
return /*#__PURE__*/React__default["default"].createElement("h1", null, "Unknown display type: ", data.type);
|
|
1340
|
+
}
|
|
1341
|
+
},
|
|
1342
|
+
type: "display"
|
|
1343
|
+
};
|
|
1344
|
+
}
|
|
1345
|
+
var DefaultBoolOptions = [{
|
|
1346
|
+
name: "Yes",
|
|
1347
|
+
value: true
|
|
1348
|
+
}, {
|
|
1349
|
+
name: "No",
|
|
1350
|
+
value: false
|
|
1351
|
+
}];
|
|
1352
|
+
function createDefaultDataRenderer(options) {
|
|
1353
|
+
var _options$selectOption;
|
|
1354
|
+
if (options === void 0) {
|
|
1355
|
+
options = {};
|
|
1356
|
+
}
|
|
1357
|
+
var selectRenderer = createSelectRenderer((_options$selectOption = options.selectOptions) != null ? _options$selectOption : {});
|
|
1358
|
+
var _optionRenderer$boole = _extends({
|
|
1359
|
+
optionRenderer: selectRenderer,
|
|
1360
|
+
booleanOptions: DefaultBoolOptions
|
|
1361
|
+
}, options),
|
|
1362
|
+
inputClass = _optionRenderer$boole.inputClass,
|
|
1363
|
+
booleanOptions = _optionRenderer$boole.booleanOptions,
|
|
1364
|
+
optionRenderer = _optionRenderer$boole.optionRenderer;
|
|
1365
|
+
return createDataRenderer(function (props, asArray, renderers) {
|
|
1366
|
+
if (asArray) {
|
|
1367
|
+
return asArray();
|
|
1368
|
+
}
|
|
1369
|
+
var renderType = props.renderOptions.type;
|
|
1370
|
+
var fieldType = props.field.type;
|
|
1371
|
+
if (fieldType == exports.FieldType.Any) return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, "No control for Any");
|
|
1372
|
+
var isBool = fieldType === exports.FieldType.Bool;
|
|
1373
|
+
if (booleanOptions != null && isBool && props.options == null) {
|
|
1374
|
+
return renderers.renderData(_extends({}, props, {
|
|
1375
|
+
options: booleanOptions
|
|
1376
|
+
}), undefined);
|
|
1377
|
+
}
|
|
1378
|
+
if (renderType === exports.DataRenderType.Standard && hasOptions(props)) {
|
|
1379
|
+
return optionRenderer.render(props, undefined, renderers);
|
|
1380
|
+
}
|
|
1381
|
+
switch (renderType) {
|
|
1382
|
+
case exports.DataRenderType.Dropdown:
|
|
1383
|
+
return selectRenderer.render(props, undefined, renderers);
|
|
1384
|
+
}
|
|
1385
|
+
return renderType === exports.DataRenderType.Checkbox ? /*#__PURE__*/React__default["default"].createElement(core.Fcheckbox, {
|
|
1386
|
+
control: props.control
|
|
1387
|
+
}) : /*#__PURE__*/React__default["default"].createElement(ControlInput, {
|
|
1388
|
+
className: inputClass,
|
|
1389
|
+
id: props.id,
|
|
1390
|
+
readOnly: props.readonly,
|
|
1391
|
+
control: props.control,
|
|
1392
|
+
convert: createInputConversion(props.field.type)
|
|
1393
|
+
});
|
|
1394
|
+
});
|
|
1395
|
+
}
|
|
1396
|
+
function ControlInput(_ref9) {
|
|
1397
|
+
var _effect = core.useComponentTracking();
|
|
1398
|
+
try {
|
|
1399
|
+
var control = _ref9.control,
|
|
1400
|
+
convert = _ref9.convert,
|
|
1401
|
+
props = _objectWithoutPropertiesLoose(_ref9, _excluded);
|
|
1402
|
+
var _formControlProps = core.formControlProps(control),
|
|
1403
|
+
errorText = _formControlProps.errorText,
|
|
1404
|
+
value = _formControlProps.value,
|
|
1405
|
+
onChange = _formControlProps.onChange,
|
|
1406
|
+
inputProps = _objectWithoutPropertiesLoose(_formControlProps, _excluded2);
|
|
1407
|
+
return /*#__PURE__*/React__default["default"].createElement("input", _extends({}, inputProps, {
|
|
1408
|
+
type: convert[0],
|
|
1409
|
+
value: value == null ? "" : convert[2](value),
|
|
1410
|
+
onChange: function onChange(e) {
|
|
1411
|
+
control.value = convert[1](e.target.value);
|
|
1412
|
+
}
|
|
1413
|
+
}, props));
|
|
1414
|
+
} finally {
|
|
1415
|
+
_effect();
|
|
1416
|
+
}
|
|
1417
|
+
}
|
|
1418
|
+
function createDefaultAdornmentRenderer(options) {
|
|
1419
|
+
return {
|
|
1420
|
+
type: "adornment",
|
|
1421
|
+
render: function render(_ref10) {
|
|
1422
|
+
var adornment = _ref10.adornment;
|
|
1423
|
+
return {
|
|
1424
|
+
apply: function apply() {},
|
|
1425
|
+
priority: 0,
|
|
1426
|
+
adornment: adornment
|
|
1427
|
+
};
|
|
1428
|
+
}
|
|
1429
|
+
};
|
|
1430
|
+
}
|
|
1431
|
+
function createDefaultRenderers(options) {
|
|
1432
|
+
if (options === void 0) {
|
|
1433
|
+
options = {};
|
|
1434
|
+
}
|
|
1435
|
+
return {
|
|
1436
|
+
data: createDefaultDataRenderer(options.data),
|
|
1437
|
+
display: createDefaultDisplayRenderer(options.display),
|
|
1438
|
+
action: createDefaultActionRenderer(options.action),
|
|
1439
|
+
array: createDefaultArrayRenderer(options.array),
|
|
1440
|
+
group: createDefaultGroupRenderer(options.group),
|
|
1441
|
+
label: createDefaultLabelRenderer(options.label),
|
|
1442
|
+
adornment: createDefaultAdornmentRenderer(),
|
|
1443
|
+
renderLayout: createDefaultLayoutRenderer(options.layout),
|
|
1444
|
+
visibility: createDefaultVisibilityRenderer()
|
|
1445
|
+
};
|
|
1446
|
+
}
|
|
1447
|
+
function createDefaultLayoutRenderer(options) {
|
|
1448
|
+
if (options === void 0) {
|
|
1449
|
+
options = {};
|
|
1450
|
+
}
|
|
1451
|
+
return createLayoutRenderer(function (props, renderers) {
|
|
1452
|
+
return /*#__PURE__*/React__default["default"].createElement(DefaultLayout, _extends({
|
|
1453
|
+
errorControl: props.errorControl,
|
|
1454
|
+
layout: renderLayoutParts(props, renderers)
|
|
1455
|
+
}, options));
|
|
1456
|
+
});
|
|
1457
|
+
}
|
|
1458
|
+
function createClassStyledRenderers() {
|
|
1459
|
+
return createDefaultRenderers({
|
|
1460
|
+
layout: {
|
|
1461
|
+
className: "control"
|
|
1462
|
+
},
|
|
1463
|
+
group: {
|
|
1464
|
+
className: "group"
|
|
1465
|
+
},
|
|
1466
|
+
array: {
|
|
1467
|
+
className: "control-array"
|
|
1468
|
+
},
|
|
1469
|
+
action: {
|
|
1470
|
+
className: "action"
|
|
1471
|
+
},
|
|
1472
|
+
data: {
|
|
1473
|
+
inputClass: "data"
|
|
1474
|
+
},
|
|
1475
|
+
display: {
|
|
1476
|
+
htmlClassName: "html",
|
|
1477
|
+
textClassName: "text"
|
|
1478
|
+
}
|
|
1479
|
+
});
|
|
1480
|
+
}
|
|
1481
|
+
function isAdornmentRegistration(x) {
|
|
1482
|
+
return x.type === "adornment";
|
|
1483
|
+
}
|
|
1484
|
+
function isDataRegistration(x) {
|
|
1485
|
+
return x.type === "data";
|
|
1486
|
+
}
|
|
1487
|
+
function isGroupRegistration(x) {
|
|
1488
|
+
return x.type === "group";
|
|
1489
|
+
}
|
|
1490
|
+
function isLabelRegistration(x) {
|
|
1491
|
+
return x.type === "label";
|
|
1492
|
+
}
|
|
1493
|
+
function isLayoutRegistration(x) {
|
|
1494
|
+
return x.type === "layout";
|
|
1495
|
+
}
|
|
1496
|
+
function isVisibilityRegistration(x) {
|
|
1497
|
+
return x.type === "visibility";
|
|
1498
|
+
}
|
|
1499
|
+
function isActionRegistration(x) {
|
|
1500
|
+
return x.type === "action";
|
|
1501
|
+
}
|
|
1502
|
+
function isDisplayRegistration(x) {
|
|
1503
|
+
return x.type === "display";
|
|
1504
|
+
}
|
|
1505
|
+
function isArrayRegistration(x) {
|
|
1506
|
+
return x.type === "array";
|
|
1507
|
+
}
|
|
1508
|
+
function isOneOf(x, v) {
|
|
1509
|
+
return x == null ? true : Array.isArray(x) ? x.includes(v) : v === x;
|
|
1510
|
+
}
|
|
1511
|
+
function createLayoutRenderer(render, options) {
|
|
1512
|
+
return _extends({
|
|
1513
|
+
type: "layout",
|
|
1514
|
+
render: render
|
|
1515
|
+
}, options);
|
|
1516
|
+
}
|
|
1517
|
+
function createArrayRenderer(render, options) {
|
|
1518
|
+
return _extends({
|
|
1519
|
+
type: "array",
|
|
1520
|
+
render: render
|
|
1521
|
+
}, options);
|
|
1522
|
+
}
|
|
1523
|
+
function createDataRenderer(render, options) {
|
|
1524
|
+
return _extends({
|
|
1525
|
+
type: "data",
|
|
1526
|
+
render: render
|
|
1527
|
+
}, options);
|
|
1528
|
+
}
|
|
1529
|
+
function createLabelRenderer(render, options) {
|
|
1530
|
+
return _extends({
|
|
1531
|
+
type: "label",
|
|
1532
|
+
render: render
|
|
1533
|
+
}, options);
|
|
1534
|
+
}
|
|
1535
|
+
function createVisibilityRenderer(render, options) {
|
|
1536
|
+
return _extends({
|
|
1537
|
+
type: "visibility",
|
|
1538
|
+
render: render
|
|
1539
|
+
}, options);
|
|
1540
|
+
}
|
|
1541
|
+
function createAdornmentRenderer(render, options) {
|
|
1542
|
+
return _extends({
|
|
1543
|
+
type: "adornment"
|
|
1544
|
+
}, options, {
|
|
1545
|
+
render: render
|
|
1546
|
+
});
|
|
1547
|
+
}
|
|
1548
|
+
function createSelectRenderer(options) {
|
|
1549
|
+
if (options === void 0) {
|
|
1550
|
+
options = {};
|
|
1551
|
+
}
|
|
1552
|
+
return createDataRenderer(function (props, asArray) {
|
|
1553
|
+
return /*#__PURE__*/React__default["default"].createElement(SelectDataRenderer, {
|
|
1554
|
+
className: options.className,
|
|
1555
|
+
state: props.control,
|
|
1556
|
+
id: props.id,
|
|
1557
|
+
options: props.options,
|
|
1558
|
+
required: props.required,
|
|
1559
|
+
emptyText: options.emptyText,
|
|
1560
|
+
requiredText: options.requiredText,
|
|
1561
|
+
convert: createSelectConversion(props.field.type)
|
|
1562
|
+
});
|
|
1563
|
+
}, {
|
|
1564
|
+
options: true
|
|
1565
|
+
});
|
|
1566
|
+
}
|
|
1567
|
+
function SelectDataRenderer(_ref11) {
|
|
1568
|
+
var _effect2 = core.useComponentTracking();
|
|
1569
|
+
try {
|
|
1570
|
+
var state = _ref11.state,
|
|
1571
|
+
options = _ref11.options,
|
|
1572
|
+
className = _ref11.className,
|
|
1573
|
+
convert = _ref11.convert,
|
|
1574
|
+
required = _ref11.required,
|
|
1575
|
+
_ref11$emptyText = _ref11.emptyText,
|
|
1576
|
+
emptyText = _ref11$emptyText === void 0 ? "N/A" : _ref11$emptyText,
|
|
1577
|
+
_ref11$requiredText = _ref11.requiredText,
|
|
1578
|
+
requiredText = _ref11$requiredText === void 0 ? "<please select>" : _ref11$requiredText,
|
|
1579
|
+
props = _objectWithoutPropertiesLoose(_ref11, _excluded3);
|
|
1580
|
+
var value = state.value,
|
|
1581
|
+
disabled = state.disabled;
|
|
1582
|
+
var _useState = React.useState(!required || value == null),
|
|
1583
|
+
showEmpty = _useState[0];
|
|
1584
|
+
var optionStringMap = React.useMemo(function () {
|
|
1585
|
+
return Object.fromEntries(options.map(function (x) {
|
|
1586
|
+
return [convert(x.value), x.value];
|
|
1587
|
+
}));
|
|
1588
|
+
}, [options]);
|
|
1589
|
+
return /*#__PURE__*/React__default["default"].createElement("select", _extends({}, props, {
|
|
1590
|
+
className: className,
|
|
1591
|
+
onChange: function onChange(v) {
|
|
1592
|
+
return state.value = optionStringMap[v.target.value];
|
|
1593
|
+
},
|
|
1594
|
+
value: convert(value),
|
|
1595
|
+
disabled: disabled
|
|
1596
|
+
}), showEmpty && /*#__PURE__*/React__default["default"].createElement("option", {
|
|
1597
|
+
value: ""
|
|
1598
|
+
}, required ? requiredText : emptyText), options.map(function (x, i) {
|
|
1599
|
+
return /*#__PURE__*/React__default["default"].createElement("option", {
|
|
1600
|
+
key: i,
|
|
1601
|
+
value: convert(x.value),
|
|
1602
|
+
disabled: x.disabled
|
|
1603
|
+
}, x.name);
|
|
1604
|
+
}));
|
|
1605
|
+
} finally {
|
|
1606
|
+
_effect2();
|
|
1607
|
+
}
|
|
1608
|
+
}
|
|
1609
|
+
function createSelectConversion(ft) {
|
|
1610
|
+
switch (ft) {
|
|
1611
|
+
case exports.FieldType.String:
|
|
1612
|
+
case exports.FieldType.Int:
|
|
1613
|
+
case exports.FieldType.Double:
|
|
1614
|
+
return function (a) {
|
|
1615
|
+
return a;
|
|
1616
|
+
};
|
|
1617
|
+
default:
|
|
1618
|
+
return function (a) {
|
|
1619
|
+
var _a$toString;
|
|
1620
|
+
return (_a$toString = a == null ? void 0 : a.toString()) != null ? _a$toString : "";
|
|
1621
|
+
};
|
|
1622
|
+
}
|
|
1623
|
+
}
|
|
1624
|
+
function createInputConversion(ft) {
|
|
1625
|
+
switch (ft) {
|
|
1626
|
+
case exports.FieldType.String:
|
|
1627
|
+
return ["text", function (a) {
|
|
1628
|
+
return a;
|
|
1629
|
+
}, function (a) {
|
|
1630
|
+
return a;
|
|
1631
|
+
}];
|
|
1632
|
+
case exports.FieldType.Bool:
|
|
1633
|
+
return ["text", function (a) {
|
|
1634
|
+
return a === "true";
|
|
1635
|
+
}, function (a) {
|
|
1636
|
+
var _a$toString2;
|
|
1637
|
+
return (_a$toString2 = a == null ? void 0 : a.toString()) != null ? _a$toString2 : "";
|
|
1638
|
+
}];
|
|
1639
|
+
case exports.FieldType.Int:
|
|
1640
|
+
return ["number", function (a) {
|
|
1641
|
+
return a !== "" ? parseInt(a) : null;
|
|
1642
|
+
}, function (a) {
|
|
1643
|
+
return a == null ? "" : a;
|
|
1644
|
+
}];
|
|
1645
|
+
case exports.FieldType.Date:
|
|
1646
|
+
return ["date", function (a) {
|
|
1647
|
+
return a;
|
|
1648
|
+
}, function (a) {
|
|
1649
|
+
return a;
|
|
1650
|
+
}];
|
|
1651
|
+
case exports.FieldType.Double:
|
|
1652
|
+
return ["number", function (a) {
|
|
1653
|
+
return parseFloat(a);
|
|
1654
|
+
}, function (a) {
|
|
1655
|
+
return a;
|
|
1656
|
+
}];
|
|
1657
|
+
default:
|
|
1658
|
+
return ["text", function (a) {
|
|
1659
|
+
return a;
|
|
1660
|
+
}, function (a) {
|
|
1661
|
+
return a;
|
|
1662
|
+
}];
|
|
1663
|
+
}
|
|
1664
|
+
}
|
|
1665
|
+
function createDefaultVisibilityRenderer() {
|
|
1666
|
+
return createVisibilityRenderer(function (cv, ch) {
|
|
1667
|
+
return /*#__PURE__*/React__default["default"].createElement(DefaultVisibility, {
|
|
1668
|
+
visibility: cv,
|
|
1669
|
+
children: ch
|
|
1670
|
+
});
|
|
1671
|
+
});
|
|
1672
|
+
}
|
|
1673
|
+
function DefaultVisibility(_ref12) {
|
|
1674
|
+
var _effect3 = core.useComponentTracking();
|
|
1675
|
+
try {
|
|
1676
|
+
var visibility = _ref12.visibility,
|
|
1677
|
+
children = _ref12.children;
|
|
1678
|
+
var v = visibility.value;
|
|
1679
|
+
React.useEffect(function () {
|
|
1680
|
+
if (v) {
|
|
1681
|
+
visibility.setValue(function (ex) {
|
|
1682
|
+
return {
|
|
1683
|
+
visible: v.visible,
|
|
1684
|
+
showing: v.visible
|
|
1685
|
+
};
|
|
1686
|
+
});
|
|
1687
|
+
}
|
|
1688
|
+
}, [v == null ? void 0 : v.visible]);
|
|
1689
|
+
return v != null && v.visible ? children() : /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null);
|
|
1690
|
+
} finally {
|
|
1691
|
+
_effect3();
|
|
1692
|
+
}
|
|
1693
|
+
}
|
|
1694
|
+
function DefaultLayout(_ref13) {
|
|
1695
|
+
var _effect4 = core.useComponentTracking();
|
|
1696
|
+
try {
|
|
1697
|
+
var className = _ref13.className,
|
|
1698
|
+
errorClass = _ref13.errorClass,
|
|
1699
|
+
errorControl = _ref13.errorControl,
|
|
1700
|
+
_ref13$layout = _ref13.layout,
|
|
1701
|
+
controlEnd = _ref13$layout.controlEnd,
|
|
1702
|
+
controlStart = _ref13$layout.controlStart,
|
|
1703
|
+
label = _ref13$layout.label,
|
|
1704
|
+
children = _ref13$layout.children;
|
|
1705
|
+
var ec = errorControl;
|
|
1706
|
+
var errorText = ec && ec.touched ? ec.error : undefined;
|
|
1707
|
+
var refCb = React.useCallback(function (e) {
|
|
1708
|
+
if (ec) ec.meta.scrollElement = e;
|
|
1709
|
+
}, [ec]);
|
|
1710
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1711
|
+
className: className,
|
|
1712
|
+
ref: refCb
|
|
1713
|
+
}, label, controlStart, children, errorText && /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1714
|
+
className: errorClass
|
|
1715
|
+
}, errorText), controlEnd);
|
|
1716
|
+
} finally {
|
|
1717
|
+
_effect4();
|
|
1718
|
+
}
|
|
1719
|
+
}
|
|
1720
|
+
|
|
1721
|
+
var defaultTailwindTheme = {
|
|
1722
|
+
label: {
|
|
1723
|
+
groupLabelClass: "font-bold",
|
|
1724
|
+
requiredElement: /*#__PURE__*/React__default["default"].createElement("span", {
|
|
1725
|
+
className: "text-red-500"
|
|
1726
|
+
}, " *")
|
|
1727
|
+
},
|
|
1728
|
+
array: {
|
|
1729
|
+
removableClass: "grid grid-cols-[1fr_auto] items-center gap-x-2",
|
|
1730
|
+
childClass: "grow my-2",
|
|
1731
|
+
addActionClass: "my-2"
|
|
1732
|
+
},
|
|
1733
|
+
group: {
|
|
1734
|
+
standardClassName: "space-y-4",
|
|
1735
|
+
gridClassName: "gap-x-2 gap-y-4"
|
|
1736
|
+
},
|
|
1737
|
+
action: {
|
|
1738
|
+
className: "bg-primary rounded-lg p-3 text-white"
|
|
1739
|
+
},
|
|
1740
|
+
layout: {
|
|
1741
|
+
className: "flex flex-col",
|
|
1742
|
+
errorClass: "text-sm text-danger-500"
|
|
1743
|
+
}
|
|
15
1744
|
};
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
1745
|
+
|
|
1746
|
+
exports.AppendAdornmentPriority = AppendAdornmentPriority;
|
|
1747
|
+
exports.ControlInput = ControlInput;
|
|
1748
|
+
exports.DefaultBoolOptions = DefaultBoolOptions;
|
|
1749
|
+
exports.DefaultLayout = DefaultLayout;
|
|
1750
|
+
exports.DefaultVisibility = DefaultVisibility;
|
|
1751
|
+
exports.SelectDataRenderer = SelectDataRenderer;
|
|
1752
|
+
exports.WrapAdornmentPriority = WrapAdornmentPriority;
|
|
1753
|
+
exports.addMissingControls = addMissingControls;
|
|
1754
|
+
exports.appendMarkup = appendMarkup;
|
|
1755
|
+
exports.appendMarkupAt = appendMarkupAt;
|
|
1756
|
+
exports.applyDefaultForField = applyDefaultForField;
|
|
1757
|
+
exports.applyDefaultValues = applyDefaultValues;
|
|
1758
|
+
exports.boolField = boolField;
|
|
1759
|
+
exports.buildSchema = buildSchema;
|
|
1760
|
+
exports.cleanDataForSchema = cleanDataForSchema;
|
|
1761
|
+
exports.compoundControl = compoundControl;
|
|
1762
|
+
exports.compoundField = compoundField;
|
|
1763
|
+
exports.controlTitle = controlTitle;
|
|
1764
|
+
exports.createAction = createAction;
|
|
1765
|
+
exports.createAdornmentRenderer = createAdornmentRenderer;
|
|
1766
|
+
exports.createArrayRenderer = createArrayRenderer;
|
|
1767
|
+
exports.createDataRenderer = createDataRenderer;
|
|
1768
|
+
exports.createDefaultActionRenderer = createDefaultActionRenderer;
|
|
1769
|
+
exports.createDefaultAdornmentRenderer = createDefaultAdornmentRenderer;
|
|
1770
|
+
exports.createDefaultArrayRenderer = createDefaultArrayRenderer;
|
|
1771
|
+
exports.createDefaultDataRenderer = createDefaultDataRenderer;
|
|
1772
|
+
exports.createDefaultDisplayRenderer = createDefaultDisplayRenderer;
|
|
1773
|
+
exports.createDefaultGroupRenderer = createDefaultGroupRenderer;
|
|
1774
|
+
exports.createDefaultLabelRenderer = createDefaultLabelRenderer;
|
|
1775
|
+
exports.createDefaultRenderers = createDefaultRenderers;
|
|
1776
|
+
exports.createDefaultVisibilityRenderer = createDefaultVisibilityRenderer;
|
|
1777
|
+
exports.createFormRenderer = createFormRenderer;
|
|
1778
|
+
exports.createInputConversion = createInputConversion;
|
|
1779
|
+
exports.createLabelRenderer = createLabelRenderer;
|
|
1780
|
+
exports.createLayoutRenderer = createLayoutRenderer;
|
|
1781
|
+
exports.createSelectConversion = createSelectConversion;
|
|
1782
|
+
exports.createSelectRenderer = createSelectRenderer;
|
|
1783
|
+
exports.createVisibilityRenderer = createVisibilityRenderer;
|
|
1784
|
+
exports.dataControl = dataControl;
|
|
1785
|
+
exports.defaultCompoundField = defaultCompoundField;
|
|
1786
|
+
exports.defaultControlForField = defaultControlForField;
|
|
1787
|
+
exports.defaultDataProps = defaultDataProps;
|
|
1788
|
+
exports.defaultScalarField = defaultScalarField;
|
|
1789
|
+
exports.defaultTailwindTheme = defaultTailwindTheme;
|
|
1790
|
+
exports.defaultValueForField = defaultValueForField;
|
|
1791
|
+
exports.defaultValueForFields = defaultValueForFields;
|
|
1792
|
+
exports.dynamicDefaultValue = dynamicDefaultValue;
|
|
1793
|
+
exports.elementValueForField = elementValueForField;
|
|
1794
|
+
exports.emptyGroupDefinition = emptyGroupDefinition;
|
|
1795
|
+
exports.fieldDisplayName = fieldDisplayName;
|
|
1796
|
+
exports.fieldEqExpr = fieldEqExpr;
|
|
1797
|
+
exports.fieldHasTag = fieldHasTag;
|
|
1798
|
+
exports.findCompoundField = findCompoundField;
|
|
1799
|
+
exports.findField = findField;
|
|
1800
|
+
exports.findScalarField = findScalarField;
|
|
1801
|
+
exports.getControlData = getControlData;
|
|
1802
|
+
exports.getTypeField = getTypeField;
|
|
1803
|
+
exports.groupedControl = groupedControl;
|
|
1804
|
+
exports.hasOptions = hasOptions;
|
|
1805
|
+
exports.htmlDisplayControl = htmlDisplayControl;
|
|
1806
|
+
exports.intField = intField;
|
|
1807
|
+
exports.isActionControlsDefinition = isActionControlsDefinition;
|
|
1808
|
+
exports.isCompoundField = isCompoundField;
|
|
1809
|
+
exports.isDataControl = isDataControl;
|
|
1810
|
+
exports.isDataControlDefinition = isDataControlDefinition;
|
|
1811
|
+
exports.isDisplayControlsDefinition = isDisplayControlsDefinition;
|
|
1812
|
+
exports.isGridRenderer = isGridRenderer;
|
|
1813
|
+
exports.isGroupControl = isGroupControl;
|
|
1814
|
+
exports.isGroupControlsDefinition = isGroupControlsDefinition;
|
|
1815
|
+
exports.isScalarField = isScalarField;
|
|
1816
|
+
exports.jsonataExpr = jsonataExpr;
|
|
1817
|
+
exports.layoutKeyForPlacement = layoutKeyForPlacement;
|
|
1818
|
+
exports.lookupSchemaField = lookupSchemaField;
|
|
1819
|
+
exports.makeCompoundField = makeCompoundField;
|
|
1820
|
+
exports.makeScalarField = makeScalarField;
|
|
1821
|
+
exports.renderControlLayout = renderControlLayout;
|
|
1822
|
+
exports.renderLayoutParts = renderLayoutParts;
|
|
1823
|
+
exports.stringField = stringField;
|
|
1824
|
+
exports.stringOptionsField = stringOptionsField;
|
|
1825
|
+
exports.textDisplayControl = textDisplayControl;
|
|
1826
|
+
exports.useControlDefinitionForSchema = useControlDefinitionForSchema;
|
|
1827
|
+
exports.useControlRenderer = useControlRenderer;
|
|
1828
|
+
exports.useUpdatedRef = useUpdatedRef;
|
|
1829
|
+
exports.useValidationHook = useValidationHook;
|
|
1830
|
+
exports.visibility = visibility;
|
|
1831
|
+
exports.visitControlData = visitControlData;
|
|
1832
|
+
exports.visitControlDataArray = visitControlDataArray;
|
|
1833
|
+
exports.visitControlDefinition = visitControlDefinition;
|
|
1834
|
+
exports.withScalarOptions = withScalarOptions;
|
|
1835
|
+
exports.wrapMarkup = wrapMarkup;
|
|
1836
|
+
exports.wrapMarkupAt = wrapMarkupAt;
|
|
1837
|
+
//# sourceMappingURL=index.js.map
|