@react-typed-forms/schemas 11.18.1 → 11.18.3

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/lib/index.js CHANGED
@@ -1,3439 +1,2 @@
1
- var React = require('react');
2
- var core = require('@react-typed-forms/core');
3
- var clsx = require('clsx');
4
- var jsonata = require('jsonata');
5
- var uuid = require('uuid');
6
-
7
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
-
9
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
10
- var clsx__default = /*#__PURE__*/_interopDefaultLegacy(clsx);
11
- var jsonata__default = /*#__PURE__*/_interopDefaultLegacy(jsonata);
12
-
13
- exports.FieldType = void 0;
14
- (function (FieldType) {
15
- FieldType["String"] = "String";
16
- FieldType["Bool"] = "Bool";
17
- FieldType["Int"] = "Int";
18
- FieldType["Date"] = "Date";
19
- FieldType["DateTime"] = "DateTime";
20
- FieldType["Time"] = "Time";
21
- FieldType["Double"] = "Double";
22
- FieldType["EntityRef"] = "EntityRef";
23
- FieldType["Compound"] = "Compound";
24
- FieldType["AutoId"] = "AutoId";
25
- FieldType["Image"] = "Image";
26
- FieldType["Any"] = "Any";
27
- })(exports.FieldType || (exports.FieldType = {}));
28
- exports.ValidationMessageType = void 0;
29
- (function (ValidationMessageType) {
30
- ValidationMessageType["NotEmpty"] = "NotEmpty";
31
- ValidationMessageType["MinLength"] = "MinLength";
32
- ValidationMessageType["MaxLength"] = "MaxLength";
33
- ValidationMessageType["NotAfterDate"] = "NotAfterDate";
34
- ValidationMessageType["NotBeforeDate"] = "NotBeforeDate";
35
- })(exports.ValidationMessageType || (exports.ValidationMessageType = {}));
36
- exports.ControlDefinitionType = void 0;
37
- (function (ControlDefinitionType) {
38
- ControlDefinitionType["Data"] = "Data";
39
- ControlDefinitionType["Group"] = "Group";
40
- ControlDefinitionType["Display"] = "Display";
41
- ControlDefinitionType["Action"] = "Action";
42
- })(exports.ControlDefinitionType || (exports.ControlDefinitionType = {}));
43
- exports.DynamicPropertyType = void 0;
44
- (function (DynamicPropertyType) {
45
- DynamicPropertyType["Visible"] = "Visible";
46
- DynamicPropertyType["DefaultValue"] = "DefaultValue";
47
- DynamicPropertyType["Readonly"] = "Readonly";
48
- DynamicPropertyType["Disabled"] = "Disabled";
49
- DynamicPropertyType["Display"] = "Display";
50
- DynamicPropertyType["Style"] = "Style";
51
- DynamicPropertyType["LayoutStyle"] = "LayoutStyle";
52
- DynamicPropertyType["AllowedOptions"] = "AllowedOptions";
53
- DynamicPropertyType["Label"] = "Label";
54
- DynamicPropertyType["ActionData"] = "ActionData";
55
- })(exports.DynamicPropertyType || (exports.DynamicPropertyType = {}));
56
- exports.ExpressionType = void 0;
57
- (function (ExpressionType) {
58
- ExpressionType["Jsonata"] = "Jsonata";
59
- ExpressionType["Data"] = "Data";
60
- ExpressionType["DataMatch"] = "FieldValue";
61
- ExpressionType["UserMatch"] = "UserMatch";
62
- ExpressionType["NotEmpty"] = "NotEmpty";
63
- ExpressionType["UUID"] = "UUID";
64
- })(exports.ExpressionType || (exports.ExpressionType = {}));
65
- exports.AdornmentPlacement = void 0;
66
- (function (AdornmentPlacement) {
67
- AdornmentPlacement["ControlStart"] = "ControlStart";
68
- AdornmentPlacement["ControlEnd"] = "ControlEnd";
69
- AdornmentPlacement["LabelStart"] = "LabelStart";
70
- AdornmentPlacement["LabelEnd"] = "LabelEnd";
71
- })(exports.AdornmentPlacement || (exports.AdornmentPlacement = {}));
72
- exports.ControlAdornmentType = void 0;
73
- (function (ControlAdornmentType) {
74
- ControlAdornmentType["Tooltip"] = "Tooltip";
75
- ControlAdornmentType["Accordion"] = "Accordion";
76
- ControlAdornmentType["HelpText"] = "HelpText";
77
- ControlAdornmentType["Icon"] = "Icon";
78
- ControlAdornmentType["SetField"] = "SetField";
79
- })(exports.ControlAdornmentType || (exports.ControlAdornmentType = {}));
80
- exports.DataRenderType = void 0;
81
- (function (DataRenderType) {
82
- DataRenderType["Standard"] = "Standard";
83
- DataRenderType["Textfield"] = "Textfield";
84
- DataRenderType["Radio"] = "Radio";
85
- DataRenderType["HtmlEditor"] = "HtmlEditor";
86
- DataRenderType["IconList"] = "IconList";
87
- DataRenderType["CheckList"] = "CheckList";
88
- DataRenderType["UserSelection"] = "UserSelection";
89
- DataRenderType["Synchronised"] = "Synchronised";
90
- DataRenderType["IconSelector"] = "IconSelector";
91
- DataRenderType["DateTime"] = "DateTime";
92
- DataRenderType["Checkbox"] = "Checkbox";
93
- DataRenderType["Dropdown"] = "Dropdown";
94
- DataRenderType["DisplayOnly"] = "DisplayOnly";
95
- DataRenderType["Group"] = "Group";
96
- DataRenderType["NullToggle"] = "NullToggle";
97
- DataRenderType["Jsonata"] = "Jsonata";
98
- DataRenderType["Array"] = "Array";
99
- })(exports.DataRenderType || (exports.DataRenderType = {}));
100
- exports.SyncTextType = void 0;
101
- (function (SyncTextType) {
102
- SyncTextType["Camel"] = "Camel";
103
- SyncTextType["Snake"] = "Snake";
104
- SyncTextType["Pascal"] = "Pascal";
105
- })(exports.SyncTextType || (exports.SyncTextType = {}));
106
- exports.GroupRenderType = void 0;
107
- (function (GroupRenderType) {
108
- GroupRenderType["Standard"] = "Standard";
109
- GroupRenderType["Grid"] = "Grid";
110
- GroupRenderType["Flex"] = "Flex";
111
- GroupRenderType["GroupElement"] = "GroupElement";
112
- })(exports.GroupRenderType || (exports.GroupRenderType = {}));
113
- exports.DisplayDataType = void 0;
114
- (function (DisplayDataType) {
115
- DisplayDataType["Text"] = "Text";
116
- DisplayDataType["Html"] = "Html";
117
- DisplayDataType["Icon"] = "Icon";
118
- DisplayDataType["Custom"] = "Custom";
119
- })(exports.DisplayDataType || (exports.DisplayDataType = {}));
120
- exports.ValidatorType = void 0;
121
- (function (ValidatorType) {
122
- ValidatorType["Jsonata"] = "Jsonata";
123
- ValidatorType["Date"] = "Date";
124
- ValidatorType["Length"] = "Length";
125
- })(exports.ValidatorType || (exports.ValidatorType = {}));
126
- exports.DateComparison = void 0;
127
- (function (DateComparison) {
128
- DateComparison["NotBefore"] = "NotBefore";
129
- DateComparison["NotAfter"] = "NotAfter";
130
- })(exports.DateComparison || (exports.DateComparison = {}));
131
- function isDataControlDefinition(x) {
132
- return x.type === exports.ControlDefinitionType.Data;
133
- }
134
- function isGroupControlsDefinition(x) {
135
- return x.type === exports.ControlDefinitionType.Group;
136
- }
137
- function isDisplayControlsDefinition(x) {
138
- return x.type === exports.ControlDefinitionType.Display;
139
- }
140
- function isActionControlsDefinition(x) {
141
- return x.type === exports.ControlDefinitionType.Action;
142
- }
143
- function visitControlDefinition(x, visitor, defaultValue) {
144
- switch (x.type) {
145
- case exports.ControlDefinitionType.Action:
146
- return visitor.action(x);
147
- case exports.ControlDefinitionType.Data:
148
- return visitor.data(x);
149
- case exports.ControlDefinitionType.Display:
150
- return visitor.display(x);
151
- case exports.ControlDefinitionType.Group:
152
- return visitor.group(x);
153
- default:
154
- return defaultValue(x);
155
- }
156
- }
157
- function isGridRenderer(options) {
158
- return options.type === exports.GroupRenderType.Grid;
159
- }
160
- function isFlexRenderer(options) {
161
- return options.type === exports.GroupRenderType.Flex;
162
- }
163
- function isDisplayOnlyRenderer(options) {
164
- return options.type === exports.DataRenderType.DisplayOnly;
165
- }
166
- function isTextfieldRenderer(options) {
167
- return options.type === exports.DataRenderType.Textfield;
168
- }
169
- function isDataGroupRenderer(options) {
170
- return options.type === exports.DataRenderType.Group;
171
- }
172
- function isArrayRenderer(options) {
173
- return options.type === exports.DataRenderType.Array;
174
- }
175
-
176
- function _arrayLikeToArray(r, a) {
177
- (null == a || a > r.length) && (a = r.length);
178
- for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
179
- return n;
180
- }
181
- function _createForOfIteratorHelperLoose(r, e) {
182
- var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
183
- if (t) return (t = t.call(r)).next.bind(t);
184
- if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) {
185
- t && (r = t);
186
- var o = 0;
187
- return function () {
188
- return o >= r.length ? {
189
- done: !0
190
- } : {
191
- done: !1,
192
- value: r[o++]
193
- };
194
- };
195
- }
196
- throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
197
- }
198
- function _extends() {
199
- return _extends = Object.assign ? Object.assign.bind() : function (n) {
200
- for (var e = 1; e < arguments.length; e++) {
201
- var t = arguments[e];
202
- for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
203
- }
204
- return n;
205
- }, _extends.apply(null, arguments);
206
- }
207
- function _objectWithoutPropertiesLoose(r, e) {
208
- if (null == r) return {};
209
- var t = {};
210
- for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
211
- if (e.includes(n)) continue;
212
- t[n] = r[n];
213
- }
214
- return t;
215
- }
216
- function _unsupportedIterableToArray(r, a) {
217
- if (r) {
218
- if ("string" == typeof r) return _arrayLikeToArray(r, a);
219
- var t = {}.toString.call(r).slice(8, -1);
220
- return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
221
- }
222
- }
223
-
224
- function applyDefaultValues(v, fields, doneSet) {
225
- var _doneSet;
226
- if (!v) return defaultValueForFields(fields);
227
- if (doneSet && doneSet.has(v)) return v;
228
- (_doneSet = doneSet) != null ? _doneSet : doneSet = new Set();
229
- doneSet.add(v);
230
- var applyValue = fields.filter(function (x) {
231
- return isCompoundField(x) || !(x.field in v);
232
- });
233
- if (!applyValue.length) return v;
234
- var out = _extends({}, v);
235
- applyValue.forEach(function (x) {
236
- out[x.field] = x.field in v ? applyDefaultForField(v[x.field], x, fields, false, doneSet) : defaultValueForField(x);
237
- });
238
- return out;
239
- }
240
- function applyDefaultForField(v, field, parent, notElement, doneSet) {
241
- if (field.collection && !notElement) {
242
- return (v != null ? v : []).map(function (x) {
243
- return applyDefaultForField(x, field, parent, true, doneSet);
244
- });
245
- }
246
- if (isCompoundField(field)) {
247
- if (!v && !field.required) return v;
248
- return applyDefaultValues(v, field.treeChildren ? parent : field.children, doneSet);
249
- }
250
- return defaultValueForField(field);
251
- }
252
- function defaultValueForFields(fields) {
253
- return Object.fromEntries(fields.map(function (x) {
254
- return [x.field, defaultValueForField(x)];
255
- }));
256
- }
257
- function defaultValueForField(sf, required, forceNotNull) {
258
- if (sf.defaultValue !== undefined) return sf.defaultValue;
259
- var isRequired = !!(required || sf.required);
260
- if (isCompoundField(sf)) {
261
- if (isRequired) {
262
- var childValue = defaultValueForFields(sf.children);
263
- return sf.collection ? [childValue] : childValue;
264
- }
265
- return sf.notNullable || forceNotNull ? sf.collection ? [] : {} : undefined;
266
- }
267
- if (sf.collection) {
268
- return [];
269
- }
270
- return undefined;
271
- }
272
- function elementValueForField(sf) {
273
- if (isCompoundField(sf)) {
274
- return defaultValueForFields(sf.children);
275
- }
276
- return sf.defaultValue;
277
- }
278
- function findScalarField(fields, field) {
279
- return findField(fields, field);
280
- }
281
- function findCompoundField(fields, field) {
282
- return findField(fields, field);
283
- }
284
- function findField(fields, field) {
285
- return fields.find(function (x) {
286
- return x.field === field;
287
- });
288
- }
289
- function isScalarField(sf) {
290
- return !isCompoundField(sf);
291
- }
292
- function isCompoundField(sf) {
293
- return sf.type === exports.FieldType.Compound;
294
- }
295
- function isDataControl(c) {
296
- return c.type === exports.ControlDefinitionType.Data;
297
- }
298
- function isGroupControl(c) {
299
- return c.type === exports.ControlDefinitionType.Group;
300
- }
301
- function fieldHasTag(field, tag) {
302
- var _field$tags;
303
- return Boolean((_field$tags = field.tags) == null ? void 0 : _field$tags.includes(tag));
304
- }
305
- function fieldDisplayName(field) {
306
- var _field$displayName;
307
- return (_field$displayName = field.displayName) != null ? _field$displayName : field.field;
308
- }
309
- function hasOptions(o) {
310
- var _o$options$length, _o$options;
311
- return ((_o$options$length = (_o$options = o.options) == null ? void 0 : _o$options.length) != null ? _o$options$length : 0) > 0;
312
- }
313
- function defaultControlForField(sf) {
314
- if (isCompoundField(sf)) {
315
- return {
316
- type: exports.ControlDefinitionType.Data,
317
- title: sf.displayName,
318
- field: sf.field,
319
- required: sf.required,
320
- children: sf.children.map(defaultControlForField)
321
- };
322
- } else if (isScalarField(sf)) {
323
- var _sf$tags;
324
- var htmlEditor = (_sf$tags = sf.tags) == null ? void 0 : _sf$tags.includes("_HtmlEditor");
325
- return {
326
- type: exports.ControlDefinitionType.Data,
327
- title: sf.displayName,
328
- field: sf.field,
329
- required: sf.required,
330
- renderOptions: {
331
- type: htmlEditor ? exports.DataRenderType.HtmlEditor : exports.DataRenderType.Standard
332
- }
333
- };
334
- }
335
- throw "Unknown schema field";
336
- }
337
- function findControlsForCompound(compound, definition) {
338
- if (isDataControlDefinition(definition) && compound.field === definition.field) {
339
- return [definition];
340
- }
341
- if (isGroupControlsDefinition(definition)) {
342
- var _definition$children$, _definition$children;
343
- if (definition.compoundField === compound.field) return [definition];
344
- return (_definition$children$ = (_definition$children = definition.children) == null ? void 0 : _definition$children.flatMap(function (d) {
345
- return findControlsForCompound(compound, d);
346
- })) != null ? _definition$children$ : [];
347
- }
348
- return [];
349
- }
350
- function findCompoundGroups(fields, controls) {
351
- return Object.fromEntries(fields.filter(isCompoundField).map(function (cf) {
352
- var groups = controls.flatMap(function (x) {
353
- return findControlsForCompound(cf, x);
354
- });
355
- return [cf.field, {
356
- groups: groups.concat(findNonDataGroups(groups.flatMap(function (x) {
357
- var _x$children;
358
- return (_x$children = x.children) != null ? _x$children : [];
359
- }))),
360
- children: findCompoundGroups(cf.children, groups.flatMap(function (x) {
361
- var _x$children2;
362
- return (_x$children2 = x.children) != null ? _x$children2 : [];
363
- }))
364
- }];
365
- }));
366
- }
367
- function existsInGroups(field, lookup) {
368
- var itself = lookup.groups.find(function (c) {
369
- var _c$children;
370
- return (_c$children = c.children) == null ? void 0 : _c$children.find(function (x) {
371
- return isDataControlDefinition(x) && x.field === field.field || isGroupControlsDefinition(x) && x.compoundField === field.field;
372
- });
373
- });
374
- if (!itself) return [[field, lookup]];
375
- if (isCompoundField(field)) {
376
- var childLookup = lookup.children[field.field];
377
- if (!childLookup) return [[field, lookup]];
378
- return field.children.flatMap(function (c) {
379
- return existsInGroups(c, childLookup);
380
- });
381
- }
382
- return [];
383
- }
384
- function findNonDataGroups(controls) {
385
- return controls.flatMap(function (control) {
386
- var _control$children2;
387
- return isGroupControlsDefinition(control) && !control.compoundField ? [control].concat(findNonDataGroups((_control$children2 = control.children) != null ? _control$children2 : [])) : [];
388
- });
389
- }
390
- function cloneChildren(c) {
391
- var _c$children2;
392
- if (c.children) return _extends({}, c, {
393
- children: (_c$children2 = c.children) == null ? void 0 : _c$children2.map(cloneChildren)
394
- });
395
- return c;
396
- }
397
- function addMissingControls(fields, controls) {
398
- controls = controls.map(cloneChildren);
399
- var rootMapping = findCompoundGroups(fields, controls);
400
- var rootGroups = findNonDataGroups([{
401
- type: exports.ControlDefinitionType.Group,
402
- children: controls
403
- }]);
404
- var rootLookup = {
405
- children: rootMapping,
406
- groups: rootGroups
407
- };
408
- var missingFields = fields.filter(function (x) {
409
- return !fieldHasTag(x, "_NoControl");
410
- }).flatMap(function (x) {
411
- return existsInGroups(x, rootLookup);
412
- });
413
- missingFields.forEach(function (_ref) {
414
- var _f$tags, _insertGroup;
415
- var f = _ref[0],
416
- lookup = _ref[1];
417
- var groupToAdd = (_f$tags = f.tags) == null ? void 0 : _f$tags.find(function (x) {
418
- return x.startsWith("_ControlGroup:");
419
- });
420
- var insertGroup = undefined;
421
- if (groupToAdd) {
422
- var groupName = groupToAdd.substring(14);
423
- insertGroup = lookup.groups.find(function (x) {
424
- return x.title === groupName;
425
- });
426
- }
427
- if (!insertGroup) insertGroup = lookup.groups[0];
428
- (_insertGroup = insertGroup) == null || (_insertGroup = _insertGroup.children) == null || _insertGroup.push(defaultControlForField(f));
429
- });
430
- return controls;
431
- }
432
- function useUpdatedRef(a) {
433
- var r = React.useRef(a);
434
- r.current = a;
435
- return r;
436
- }
437
- function isControlReadonly(c) {
438
- return isDataControl(c) && !!c.readonly;
439
- }
440
- function isControlDisabled(c) {
441
- return isDataControl(c) && !!c.disabled;
442
- }
443
- function getDisplayOnlyOptions(d) {
444
- return isDataControlDefinition(d) && d.renderOptions && isDisplayOnlyRenderer(d.renderOptions) ? d.renderOptions : undefined;
445
- }
446
- function getTypeField(context, fieldPath) {
447
- var withoutLast = fieldPath.slice(0, -1);
448
- var fieldList = withoutLast.length > 0 ? withoutLast.at(-1).children : context.fields;
449
- var typeSchemaField = fieldList.find(function (x) {
450
- return x.isTypeField;
451
- });
452
- return typeSchemaField ? lookupChildControl(context, [].concat(withoutLast, [typeSchemaField])) : undefined;
453
- }
454
- function visitControlDataArray(controls, context, cb) {
455
- if (!controls) return undefined;
456
- for (var _iterator2 = _createForOfIteratorHelperLoose(controls), _step2; !(_step2 = _iterator2()).done;) {
457
- var c = _step2.value;
458
- var r = visitControlData(c, context, cb);
459
- if (r !== undefined) return r;
460
- }
461
- return undefined;
462
- }
463
- function visitControlData(definition, ctx, cb) {
464
- return visitControlDefinition(definition, {
465
- data: function data(def) {
466
- return processData(def, def.field, def.children);
467
- },
468
- group: function group(d) {
469
- return processData(undefined, d.compoundField, d.children);
470
- },
471
- action: function action() {
472
- return undefined;
473
- },
474
- display: function display() {
475
- return undefined;
476
- }
477
- }, function () {
478
- return undefined;
479
- });
480
- function processData(def, fieldName, children) {
481
- var fieldData = fieldName ? findField(ctx.fields, fieldName) : undefined;
482
- if (!fieldData) return !fieldName ? visitControlDataArray(children, ctx, cb) : undefined;
483
- var thisPath = [].concat(ctx.path, [fieldData.field]);
484
- var control = ctx.data.lookupControl(thisPath);
485
- if (!control) return undefined;
486
- var result = def ? cb(def, fieldData, control, false) : undefined;
487
- if (result !== undefined) return result;
488
- var compound = isCompoundField(fieldData);
489
- if (fieldData.collection) {
490
- var cIndex = 0;
491
- for (var _iterator3 = _createForOfIteratorHelperLoose((_control$elements = control.elements) != null ? _control$elements : []), _step3; !(_step3 = _iterator3()).done;) {
492
- var _control$elements;
493
- var c = _step3.value;
494
- var elemResult = def ? cb(def, fieldData, c, true) : undefined;
495
- if (elemResult !== undefined) return elemResult;
496
- if (compound) {
497
- var cfResult = visitControlDataArray(children, _extends({}, ctx, {
498
- fields: fieldData.children,
499
- path: [].concat(thisPath, [cIndex])
500
- }), cb);
501
- if (cfResult !== undefined) return cfResult;
502
- }
503
- cIndex++;
504
- }
505
- } else if (compound) {
506
- return visitControlDataArray(children, _extends({}, ctx, {
507
- fields: fieldData.children,
508
- path: thisPath
509
- }), cb);
510
- }
511
- return undefined;
512
- }
513
- }
514
- function lookupChildControl(data, path, element) {
515
- var fieldPath = path.map(function (x) {
516
- return x.field;
517
- });
518
- return lookupChildControlPath(data, element == null ? fieldPath : [].concat(fieldPath, [element]));
519
- }
520
- function lookupChildControlPath(data, jsonPath) {
521
- var childPath = [].concat(data.path, jsonPath);
522
- return watchControlLookup(data.data, childPath);
523
- }
524
- function cleanDataForSchema(v, fields, removeIfDefault) {
525
- if (!v) return v;
526
- var typeField = fields.find(function (x) {
527
- return x.isTypeField;
528
- });
529
- if (!typeField) return v;
530
- var typeValue = v[typeField.field];
531
- var cleanableFields = !removeIfDefault ? fields.filter(function (x) {
532
- var _x$onlyForTypes$lengt, _x$onlyForTypes;
533
- return isCompoundField(x) || ((_x$onlyForTypes$lengt = (_x$onlyForTypes = x.onlyForTypes) == null ? void 0 : _x$onlyForTypes.length) != null ? _x$onlyForTypes$lengt : 0) > 0;
534
- }) : fields;
535
- if (!cleanableFields.length) return v;
536
- var out = _extends({}, v);
537
- cleanableFields.forEach(function (x) {
538
- var _x$onlyForTypes2;
539
- var childValue = v[x.field];
540
- if (((_x$onlyForTypes2 = x.onlyForTypes) == null ? void 0 : _x$onlyForTypes2.includes(typeValue)) === false || !x.notNullable && canBeNull()) {
541
- delete out[x.field];
542
- return;
543
- }
544
- if (isCompoundField(x)) {
545
- var childFields = x.treeChildren ? fields : x.children;
546
- if (x.collection) {
547
- if (Array.isArray(childValue)) {
548
- out[x.field] = childValue.map(function (cv) {
549
- return cleanDataForSchema(cv, childFields, removeIfDefault);
550
- });
551
- }
552
- } else {
553
- out[x.field] = cleanDataForSchema(childValue, childFields, removeIfDefault);
554
- }
555
- }
556
- function canBeNull() {
557
- return removeIfDefault && x.defaultValue === childValue || x.collection && Array.isArray(childValue) && !childValue.length
558
- //|| (x.type === FieldType.Bool && childValue === false)
559
- ;
560
- }
561
- });
562
- return out;
563
- }
564
- function getAllReferencedClasses(c, collectExtra) {
565
- var _c$children3, _collectExtra;
566
- var childClasses = (_c$children3 = c.children) == null ? void 0 : _c$children3.flatMap(function (x) {
567
- return getAllReferencedClasses(x, collectExtra);
568
- });
569
- var tc = clsx__default["default"]([c.styleClass, c.layoutClass, c.labelClass].concat((_collectExtra = collectExtra == null ? void 0 : collectExtra(c)) != null ? _collectExtra : []).map(getOverrideClass));
570
- if (childClasses && !tc) return childClasses;
571
- if (!tc) return [];
572
- if (childClasses) return [tc].concat(childClasses);
573
- return [tc];
574
- }
575
- function jsonPathString(jsonPath, customIndex) {
576
- var out = "";
577
- jsonPath.forEach(function (v, i) {
578
- if (typeof v === "number") {
579
- var _customIndex;
580
- out += (_customIndex = customIndex == null ? void 0 : customIndex(v)) != null ? _customIndex : "[" + v + "]";
581
- } else {
582
- if (i > 0) out += ".";
583
- out += v;
584
- }
585
- });
586
- return out;
587
- }
588
- function findChildDefinition(parent, childPath) {
589
- if (Array.isArray(childPath)) {
590
- var base = parent;
591
- childPath.forEach(function (x) {
592
- return base = base.children[x];
593
- });
594
- return base;
595
- }
596
- return parent.children[childPath];
597
- }
598
- function getOverrideClass(className) {
599
- if (className && className.startsWith("@ ")) {
600
- return className.substring(2);
601
- }
602
- return className;
603
- }
604
- function rendererClass(controlClass, globalClass) {
605
- var oc = getOverrideClass(controlClass);
606
- if (oc === controlClass) return clsx__default["default"](controlClass, globalClass);
607
- return oc ? oc : undefined;
608
- }
609
- function watchControlLookup(base, path) {
610
- var index = 0;
611
- while (index < path.length && base) {
612
- var childId = path[index];
613
- var c = base.current;
614
- if (typeof childId === "string") {
615
- var _c$fields;
616
- var next = (_c$fields = c.fields) == null ? void 0 : _c$fields[childId];
617
- if (!next) core.trackControlChange(base, core.ControlChange.Structure);
618
- base = next;
619
- } else {
620
- var _c$elements;
621
- base = (_c$elements = c.elements) == null ? void 0 : _c$elements[childId];
622
- }
623
- index++;
624
- }
625
- return base;
626
- }
627
- function makeHook(runHook, state, deps) {
628
- return {
629
- deps: deps,
630
- state: state,
631
- runHook: runHook
632
- };
633
- }
634
- function makeHookDepString(deps, asHookDep) {
635
- return deps.map(function (x) {
636
- return toDepString(asHookDep(x));
637
- }).join(",");
638
- }
639
- function useDynamicHooks(hooks) {
640
- var hookEntries = Object.entries(hooks);
641
- var deps = makeHookDepString(hookEntries, function (x) {
642
- return x[1].deps;
643
- });
644
- var ref = React.useRef({});
645
- var s = ref.current;
646
- hookEntries.forEach(function (x) {
647
- return s[x[0]] = x[1].state;
648
- });
649
- return React.useCallback(function (p) {
650
- return Object.fromEntries(hookEntries.map(function (_ref2) {
651
- var f = _ref2[0],
652
- hg = _ref2[1];
653
- return [f, hg.runHook(p, ref.current[f])];
654
- }));
655
- }, [deps]);
656
- }
657
- function toDepString(x) {
658
- if (x === undefined) return "_";
659
- if (x === null) return "~";
660
- return x.toString();
661
- }
662
- function appendElementIndex(dataContext, elementIndex) {
663
- return _extends({}, dataContext, {
664
- path: [].concat(dataContext.path, [elementIndex])
665
- });
666
- }
667
- function applyLengthRestrictions(length, min, max, minValue, maxValue) {
668
- return [min == null || length > min ? minValue : undefined, max == null || length < max ? maxValue : undefined];
669
- }
670
- function findFieldPath(fields, fieldPath) {
671
- if (!fieldPath) return undefined;
672
- var fieldNames = fieldPath.split("/");
673
- var foundFields = [];
674
- var i = 0;
675
- var currentFields = fields;
676
- while (i < fieldNames.length && currentFields) {
677
- var cf = fieldNames[i];
678
- var nextField = findField(currentFields, cf);
679
- if (!nextField) return undefined;
680
- foundFields.push(nextField);
681
- currentFields = isCompoundField(nextField) && !nextField.collection ? nextField.children : undefined;
682
- i++;
683
- }
684
- return foundFields.length === fieldNames.length ? foundFields : undefined;
685
- }
686
- function mergeObjects(o1, o2, doMerge) {
687
- if (doMerge === void 0) {
688
- doMerge = function doMerge(_, v1, v2) {
689
- return v1 != null ? v1 : v2;
690
- };
691
- }
692
- if (!o1) return o2;
693
- if (!o2) return o1;
694
- var result = _extends({}, o1);
695
- for (var key in o2) {
696
- if (o2.hasOwnProperty(key)) {
697
- var value1 = o1[key];
698
- var value2 = o2[key];
699
- result[key] = doMerge(key, value1, value2);
700
- }
701
- }
702
- return result;
703
- }
704
-
705
- function buildSchema(def) {
706
- return Object.entries(def).map(function (x) {
707
- return x[1](x[0]);
708
- });
709
- }
710
- function stringField(displayName, options) {
711
- return makeScalarField(_extends({
712
- type: exports.FieldType.String,
713
- displayName: displayName
714
- }, options));
715
- }
716
- function stringOptionsField(displayName) {
717
- return makeScalarField({
718
- type: exports.FieldType.String,
719
- displayName: displayName,
720
- options: [].slice.call(arguments, 1)
721
- });
722
- }
723
- function withScalarOptions(options, v) {
724
- return function (n) {
725
- return _extends({}, v(n), options);
726
- };
727
- }
728
- function makeScalarField(options) {
729
- return function (n) {
730
- return _extends({}, defaultScalarField(n, n), options);
731
- };
732
- }
733
- function makeCompoundField(options) {
734
- return function (n) {
735
- return _extends({}, defaultCompoundField(n, n, false), options);
736
- };
737
- }
738
- function intField(displayName, options) {
739
- return makeScalarField(_extends({
740
- type: exports.FieldType.Int,
741
- displayName: displayName
742
- }, options));
743
- }
744
- function doubleField(displayName, options) {
745
- return makeScalarField(_extends({
746
- type: exports.FieldType.Double,
747
- displayName: displayName
748
- }, options));
749
- }
750
- function dateField(displayName, options) {
751
- return makeScalarField(_extends({
752
- type: exports.FieldType.Date,
753
- displayName: displayName
754
- }, options));
755
- }
756
- function timeField(displayName, options) {
757
- return makeScalarField(_extends({
758
- type: exports.FieldType.Time,
759
- displayName: displayName
760
- }, options));
761
- }
762
- function dateTimeField(displayName, options) {
763
- return makeScalarField(_extends({
764
- type: exports.FieldType.DateTime,
765
- displayName: displayName
766
- }, options));
767
- }
768
- function boolField(displayName, options) {
769
- return makeScalarField(_extends({
770
- type: exports.FieldType.Bool,
771
- displayName: displayName
772
- }, options));
773
- }
774
- function compoundField(displayName, fields, other) {
775
- return function (field) {
776
- return _extends({}, defaultCompoundField(field, displayName, false), other, {
777
- children: fields
778
- });
779
- };
780
- }
781
- function defaultScalarField(field, displayName) {
782
- return {
783
- field: field,
784
- displayName: displayName,
785
- type: exports.FieldType.String
786
- };
787
- }
788
- function defaultCompoundField(field, displayName, collection) {
789
- return {
790
- field: field,
791
- displayName: displayName,
792
- type: exports.FieldType.Compound,
793
- collection: collection,
794
- children: []
795
- };
796
- }
797
- function mergeField(field, mergeInto) {
798
- var existing = mergeInto.find(function (x) {
799
- return x.field === field.field;
800
- });
801
- if (existing) {
802
- return mergeInto.map(function (x) {
803
- return x !== existing ? x : _extends({}, x, {
804
- onlyForTypes: mergeTypes(x.onlyForTypes, field.onlyForTypes)
805
- });
806
- });
807
- }
808
- return [].concat(mergeInto, [field]);
809
- function mergeTypes(f, s) {
810
- if (!f) return s;
811
- if (!s) return f;
812
- var extras = s.filter(function (x) {
813
- return !f.includes(x);
814
- });
815
- return extras.length ? [].concat(f, extras) : f;
816
- }
817
- }
818
- function mergeFields(fields, name, value, newFields) {
819
- var withType = fields.map(function (x) {
820
- return x.isTypeField ? addFieldOption(x, name, value) : x;
821
- });
822
- return newFields.map(function (x) {
823
- return _extends({}, x, {
824
- onlyForTypes: [value]
825
- });
826
- }).reduce(function (af, x) {
827
- return mergeField(x, af);
828
- }, withType);
829
- }
830
- function addFieldOption(typeField, name, value) {
831
- var _typeField$options;
832
- var options = (_typeField$options = typeField.options) != null ? _typeField$options : [];
833
- if (options.some(function (x) {
834
- return x.value === value;
835
- })) return typeField;
836
- return _extends({}, typeField, {
837
- options: [].concat(options, [{
838
- name: name,
839
- value: value
840
- }])
841
- });
842
- }
843
- function resolveSchemas(schemaMap) {
844
- var out = {};
845
- function resolveSchemaType(type) {
846
- if (type in out) {
847
- return out[type];
848
- }
849
- var resolvedFields = [];
850
- out[type] = resolvedFields;
851
- schemaMap[type].forEach(function (x) {
852
- if (isCompoundField(x) && x.schemaRef) {
853
- resolvedFields.push(_extends({}, x, {
854
- children: resolveSchemaType(x.schemaRef)
855
- }));
856
- } else {
857
- resolvedFields.push(x);
858
- }
859
- });
860
- return resolvedFields;
861
- }
862
- Object.keys(schemaMap).forEach(resolveSchemaType);
863
- return out;
864
- }
865
-
866
- function dataControl(field, title, options) {
867
- return _extends({
868
- type: exports.ControlDefinitionType.Data,
869
- field: field,
870
- title: title
871
- }, options);
872
- }
873
- function textDisplayControl(text, options) {
874
- return _extends({
875
- type: exports.ControlDefinitionType.Display,
876
- displayData: {
877
- type: exports.DisplayDataType.Text,
878
- text: text
879
- }
880
- }, options);
881
- }
882
- function htmlDisplayControl(html, options) {
883
- return _extends({
884
- type: exports.ControlDefinitionType.Display,
885
- displayData: {
886
- type: exports.DisplayDataType.Html,
887
- html: html
888
- }
889
- }, options);
890
- }
891
- function dynamicDefaultValue(expr) {
892
- return {
893
- type: exports.DynamicPropertyType.DefaultValue,
894
- expr: expr
895
- };
896
- }
897
- function dynamicReadonly(expr) {
898
- return {
899
- type: exports.DynamicPropertyType.Readonly,
900
- expr: expr
901
- };
902
- }
903
- function dynamicVisibility(expr) {
904
- return {
905
- type: exports.DynamicPropertyType.Visible,
906
- expr: expr
907
- };
908
- }
909
- function dynamicDisabled(expr) {
910
- return {
911
- type: exports.DynamicPropertyType.Disabled,
912
- expr: expr
913
- };
914
- }
915
- function fieldEqExpr(field, value) {
916
- return {
917
- type: exports.ExpressionType.DataMatch,
918
- field: field,
919
- value: value
920
- };
921
- }
922
- function jsonataExpr(expression) {
923
- return {
924
- type: exports.ExpressionType.Jsonata,
925
- expression: expression
926
- };
927
- }
928
- function groupedControl(children, title, options) {
929
- return _extends({
930
- type: exports.ControlDefinitionType.Group,
931
- children: children,
932
- title: title,
933
- groupOptions: {
934
- type: "Standard",
935
- hideTitle: !title
936
- }
937
- }, options);
938
- }
939
- function compoundControl(field, title, children, options) {
940
- return _extends({
941
- type: exports.ControlDefinitionType.Data,
942
- field: field,
943
- children: children,
944
- title: title,
945
- renderOptions: {
946
- type: "Standard"
947
- }
948
- }, options);
949
- }
950
- function createAction(actionId, onClick, actionText) {
951
- return {
952
- actionId: actionId,
953
- onClick: onClick,
954
- actionText: actionText != null ? actionText : actionId
955
- };
956
- }
957
- var emptyGroupDefinition = {
958
- type: exports.ControlDefinitionType.Group,
959
- children: [],
960
- groupOptions: {
961
- type: exports.GroupRenderType.Standard,
962
- hideTitle: true
963
- }
964
- };
965
- function useControlDefinitionForSchema(sf, definition) {
966
- if (definition === void 0) {
967
- definition = emptyGroupDefinition;
968
- }
969
- return React.useMemo(function () {
970
- var _definition$children;
971
- return _extends({}, definition, {
972
- children: addMissingControls(sf, (_definition$children = definition.children) != null ? _definition$children : [])
973
- });
974
- }, [sf, definition]);
975
- }
976
- function applyExtensionToSchema(schemaMap, extension) {
977
- var outMap = _extends({}, schemaMap);
978
- Object.entries(extension).forEach(function (_ref) {
979
- var field = _ref[0],
980
- cro = _ref[1];
981
- outMap[field] = (Array.isArray(cro) ? cro : [cro]).reduce(function (a, cr) {
982
- var _cr$fields;
983
- return mergeFields(a, cr.name, cr.value, (_cr$fields = cr.fields) != null ? _cr$fields : []);
984
- }, outMap[field]);
985
- });
986
- return outMap;
987
- }
988
- function applyExtensionsToSchema(schemaMap, extensions) {
989
- return resolveSchemas(extensions.reduce(applyExtensionToSchema, schemaMap));
990
- }
991
-
992
- function _finallyRethrows(body, finalizer) {
993
- try {
994
- var result = body();
995
- } catch (e) {
996
- return finalizer(true, e);
997
- }
998
- if (result && result.then) {
999
- return result.then(finalizer.bind(null, false), finalizer.bind(null, true));
1000
- }
1001
- return finalizer(false, result);
1002
- }
1003
- function useEvalVisibilityHook(useEvalExpressionHook, definition, fieldPath) {
1004
- var dynamicVisibility = useEvalDynamicBoolHook(definition, exports.DynamicPropertyType.Visible, useEvalExpressionHook);
1005
- return makeDynamicPropertyHook(dynamicVisibility, function (ctx, _ref) {
1006
- var fieldPath = _ref.fieldPath,
1007
- definition = _ref.definition;
1008
- return core.useComputed(function () {
1009
- return matchesType(ctx, fieldPath) && (!fieldPath || !hideDisplayOnly(ctx, fieldPath, definition, ctx.schemaInterface));
1010
- });
1011
- }, {
1012
- fieldPath: fieldPath,
1013
- definition: definition
1014
- });
1015
- }
1016
- function useEvalReadonlyHook(useEvalExpressionHook, definition) {
1017
- var dynamicReadonly = useEvalDynamicBoolHook(definition, exports.DynamicPropertyType.Readonly, useEvalExpressionHook);
1018
- return makeDynamicPropertyHook(dynamicReadonly, function (ctx, _ref2) {
1019
- var definition = _ref2.definition;
1020
- return core.useCalculatedControl(function () {
1021
- return isControlReadonly(definition);
1022
- });
1023
- }, {
1024
- definition: definition
1025
- });
1026
- }
1027
- function useEvalStyleHook(useEvalExpressionHook, property, definition) {
1028
- var dynamicStyle = useEvalDynamicHook(definition, property, useEvalExpressionHook);
1029
- return makeDynamicPropertyHook(dynamicStyle, function () {
1030
- return core.useControl(undefined);
1031
- }, undefined);
1032
- }
1033
- function useEvalAllowedOptionsHook(useEvalExpressionHook, definition) {
1034
- var dynamicAllowed = useEvalDynamicHook(definition, exports.DynamicPropertyType.AllowedOptions, useEvalExpressionHook);
1035
- return makeDynamicPropertyHook(dynamicAllowed, function () {
1036
- return core.useControl([]);
1037
- }, undefined);
1038
- }
1039
- function useEvalDisabledHook(useEvalExpressionHook, definition, fieldPath, elementIndex) {
1040
- var dynamicDisabled = useEvalDynamicBoolHook(definition, exports.DynamicPropertyType.Disabled, useEvalExpressionHook);
1041
- return makeDynamicPropertyHook(dynamicDisabled, function (ctx, _ref3) {
1042
- var fieldPath = _ref3.fieldPath;
1043
- return core.useComputed(function () {
1044
- var _dataControl$meta$nul;
1045
- var dataControl = fieldPath && lookupChildControl(ctx, fieldPath, elementIndex);
1046
- var setToNull = (dataControl == null || (_dataControl$meta$nul = dataControl.meta["nullControl"]) == null ? void 0 : _dataControl$meta$nul.value) === false;
1047
- return setToNull || isControlDisabled(definition);
1048
- });
1049
- }, {
1050
- fieldPath: fieldPath,
1051
- elementIndex: elementIndex
1052
- });
1053
- }
1054
- function useEvalDisplayHook(useEvalExpressionHook, definition) {
1055
- return useEvalDynamicHook(definition, exports.DynamicPropertyType.Display, useEvalExpressionHook);
1056
- }
1057
- function useEvalDefaultValueHook(useEvalExpressionHook, definition, schemaField, element) {
1058
- var dynamicValue = useEvalDynamicHook(definition, exports.DynamicPropertyType.DefaultValue, useEvalExpressionHook);
1059
- return makeDynamicPropertyHook(dynamicValue, function (ctx, _ref4) {
1060
- var definition = _ref4.definition,
1061
- schemaField = _ref4.schemaField;
1062
- return core.useComputed(calcDefault);
1063
- function calcDefault() {
1064
- var _ref5 = isDataControlDefinition(definition) ? [definition.required, definition.defaultValue] : [false, undefined],
1065
- required = _ref5[0],
1066
- dcv = _ref5[1];
1067
- return dcv != null ? dcv : schemaField ? element ? elementValueForField(schemaField) : defaultValueForField(schemaField, required, true) : undefined;
1068
- }
1069
- }, {
1070
- definition: definition,
1071
- schemaField: schemaField
1072
- });
1073
- }
1074
- function useDataExpression(fvExpr, fields, data, coerce) {
1075
- if (coerce === void 0) {
1076
- coerce = function coerce(x) {
1077
- return x;
1078
- };
1079
- }
1080
- var refField = findFieldPath(fields, fvExpr.field);
1081
- var otherField = refField ? lookupChildControl(data, refField) : undefined;
1082
- return core.useCalculatedControl(function () {
1083
- return coerce(otherField == null ? void 0 : otherField.value);
1084
- });
1085
- }
1086
- function useDataMatchExpression(fvExpr, fields, data, coerce) {
1087
- if (coerce === void 0) {
1088
- coerce = function coerce(x) {
1089
- return x;
1090
- };
1091
- }
1092
- var refField = findFieldPath(fields, fvExpr.field);
1093
- var otherField = refField ? lookupChildControl(data, refField) : undefined;
1094
- return core.useCalculatedControl(function () {
1095
- var fv = otherField == null ? void 0 : otherField.value;
1096
- return coerce(Array.isArray(fv) ? fv.includes(fvExpr.value) : fv === fvExpr.value);
1097
- });
1098
- }
1099
- function useNotEmptyExpression(fvExpr, fields, schemaInterface, data, coerce) {
1100
- if (coerce === void 0) {
1101
- coerce = function coerce(x) {
1102
- return x;
1103
- };
1104
- }
1105
- var refField = findFieldPath(fields, fvExpr.field);
1106
- var otherField = refField ? lookupChildControl(data, refField) : undefined;
1107
- return core.useCalculatedControl(function () {
1108
- var fv = otherField == null ? void 0 : otherField.value;
1109
- var field = refField == null ? void 0 : refField.at(-1);
1110
- return coerce(field && !schemaInterface.isEmptyValue(field, fv));
1111
- });
1112
- }
1113
- function defaultEvalHooks(expr, context, coerce) {
1114
- switch (expr.type) {
1115
- case exports.ExpressionType.Jsonata:
1116
- return useJsonataExpression(expr.expression, context, undefined, coerce);
1117
- case exports.ExpressionType.UUID:
1118
- return useUuidExpression(coerce);
1119
- case exports.ExpressionType.Data:
1120
- return useDataExpression(expr, context.fields, context, coerce);
1121
- case exports.ExpressionType.DataMatch:
1122
- return useDataMatchExpression(expr, context.fields, context, coerce);
1123
- case exports.ExpressionType.NotEmpty:
1124
- return useNotEmptyExpression(expr, context.fields, context.schemaInterface, context, coerce);
1125
- default:
1126
- return core.useControl(undefined);
1127
- }
1128
- }
1129
- var defaultUseEvalExpressionHook = makeEvalExpressionHook(defaultEvalHooks);
1130
- function makeEvalExpressionHook(f) {
1131
- return function (expr, coerce) {
1132
- return {
1133
- deps: expr != null ? expr.type : "!",
1134
- state: expr,
1135
- runHook: function runHook(ctx, state) {
1136
- return state ? f(state, ctx, coerce) : undefined;
1137
- }
1138
- };
1139
- };
1140
- }
1141
- function useEvalDynamicBoolHook(definition, type, useEvalExpressionHook) {
1142
- return useEvalDynamicHook(definition, type, useEvalExpressionHook, function (x) {
1143
- return Boolean(x);
1144
- });
1145
- }
1146
- function useEvalDynamicHook(definition, type, useEvalExpressionHook, coerce) {
1147
- var _definition$dynamic;
1148
- if (coerce === void 0) {
1149
- coerce = function coerce(x) {
1150
- return x;
1151
- };
1152
- }
1153
- var expression = (_definition$dynamic = definition.dynamic) == null ? void 0 : _definition$dynamic.find(function (x) {
1154
- return x.type === type;
1155
- });
1156
- return useEvalExpressionHook(expression == null ? void 0 : expression.expr, coerce);
1157
- }
1158
- function matchesType(context, fieldPath) {
1159
- var types = fieldPath ? fieldPath[fieldPath.length - 1].onlyForTypes : undefined;
1160
- if (types == null || types.length === 0) return true;
1161
- var typeField = getTypeField(context, fieldPath);
1162
- return typeField && types.includes(typeField.value);
1163
- }
1164
- function hideDisplayOnly(context, fieldPath, definition, schemaInterface) {
1165
- var _lookupChildControl;
1166
- var displayOptions = getDisplayOnlyOptions(definition);
1167
- return displayOptions && !displayOptions.emptyText && schemaInterface.isEmptyValue(fieldPath.at(-1), (_lookupChildControl = lookupChildControl(context, fieldPath)) == null ? void 0 : _lookupChildControl.value);
1168
- }
1169
- function useUuidExpression(coerce) {
1170
- if (coerce === void 0) {
1171
- coerce = function coerce(x) {
1172
- return x;
1173
- };
1174
- }
1175
- return core.useControl(function () {
1176
- return coerce(uuid.v4());
1177
- });
1178
- }
1179
- function useJsonataExpression(jExpr, dataContext, bindings, coerce) {
1180
- if (coerce === void 0) {
1181
- coerce = function coerce(x) {
1182
- return x;
1183
- };
1184
- }
1185
- var pathString = jsonPathString(dataContext.path, function (x) {
1186
- return "#$i[" + x + "]";
1187
- });
1188
- var fullExpr = pathString ? pathString + ".(" + jExpr + ")" : jExpr;
1189
- var compiledExpr = React.useMemo(function () {
1190
- try {
1191
- return jsonata__default["default"](fullExpr);
1192
- } catch (e) {
1193
- console.error(e);
1194
- return jsonata__default["default"]("null");
1195
- }
1196
- }, [fullExpr]);
1197
- var control = core.useControl();
1198
- var listenerRef = React.useRef();
1199
- var updateRef = React.useRef(0);
1200
- var _useRefState = core.useRefState(function () {
1201
- return core.makeChangeTracker(function () {
1202
- var l = listenerRef.current;
1203
- if (l) {
1204
- listenerRef.current = undefined;
1205
- core.addAfterChangesCallback(function () {
1206
- listenerRef.current = l;
1207
- l();
1208
- });
1209
- }
1210
- });
1211
- }),
1212
- ref = _useRefState[0];
1213
- React.useEffect(function () {
1214
- var apply = function apply() {
1215
- try {
1216
- var _ref$current = ref.current,
1217
- collect = _ref$current[0],
1218
- updateSubscriptions = _ref$current[1];
1219
- var _temp = _finallyRethrows(function () {
1220
- updateRef.current++;
1221
- var bindingData = bindings ? core.collectChanges(collect, bindings) : undefined;
1222
- var _coerce = coerce;
1223
- return Promise.resolve(compiledExpr.evaluate(core.trackedValue(dataContext.data, collect), bindingData)).then(function (_compiledExpr$evaluat) {
1224
- control.value = _coerce(_compiledExpr$evaluat);
1225
- });
1226
- }, function (_wasThrown, _result) {
1227
- if (! --updateRef.current) updateSubscriptions();
1228
- if (_wasThrown) throw _result;
1229
- return _result;
1230
- });
1231
- return Promise.resolve(_temp && _temp.then ? _temp.then(function () {}) : void 0);
1232
- } catch (e) {
1233
- return Promise.reject(e);
1234
- }
1235
- };
1236
- listenerRef.current = apply;
1237
- apply();
1238
- return function () {
1239
- return ref.current[1](true);
1240
- };
1241
- }, [compiledExpr]);
1242
- return control;
1243
- }
1244
- function useEvalActionHook(useExpr, definition) {
1245
- var dynamicValue = useEvalDynamicHook(definition, exports.DynamicPropertyType.ActionData, useExpr);
1246
- return makeDynamicPropertyHook(dynamicValue, function () {
1247
- return core.useControl(null);
1248
- }, undefined);
1249
- }
1250
- function useEvalLabelText(useExpr, definition) {
1251
- var dynamicValue = useEvalDynamicHook(definition, exports.DynamicPropertyType.Label, useExpr);
1252
- return makeDynamicPropertyHook(dynamicValue, function () {
1253
- return core.useControl(null);
1254
- }, undefined);
1255
- }
1256
- function makeDynamicPropertyHook(dynamicValue, makeDefault, state, deps) {
1257
- return {
1258
- deps: deps === undefined ? dynamicValue.deps : [deps, dynamicValue.deps].map(toDepString).join(),
1259
- runHook: function runHook(ctx, s) {
1260
- var _dynamicValue$runHook;
1261
- return (_dynamicValue$runHook = dynamicValue.runHook(ctx, s[0])) != null ? _dynamicValue$runHook : makeDefault(ctx, s[1]);
1262
- },
1263
- state: [dynamicValue.state, state]
1264
- };
1265
- }
1266
-
1267
- function useMakeValidationHook(definition, field, useValidatorFor) {
1268
- var _dd$validators;
1269
- if (useValidatorFor === void 0) {
1270
- useValidatorFor = useDefaultValidator;
1271
- }
1272
- var dd = field && isDataControlDefinition(definition) ? definition : undefined;
1273
- var refData = useUpdatedRef({
1274
- dd: dd,
1275
- field: field,
1276
- useValidatorFor: useValidatorFor
1277
- });
1278
- var depString = makeHookDepString((_dd$validators = dd == null ? void 0 : dd.validators) != null ? _dd$validators : [], function (x) {
1279
- return x.type;
1280
- });
1281
- return React.useCallback(function (ctx) {
1282
- var _dd$validators2;
1283
- var _refData$current = refData.current,
1284
- dd = _refData$current.dd,
1285
- field = _refData$current.field;
1286
- if (!dd || !field) return;
1287
- var control = ctx.control,
1288
- hiddenControl = ctx.hiddenControl,
1289
- schemaInterface = ctx.dataContext.schemaInterface;
1290
- core.useValueChangeEffect(control, function () {
1291
- return control.setError("default", "");
1292
- });
1293
- core.useValidator(control, function (v) {
1294
- return !hiddenControl.value && dd.required && schemaInterface.isEmptyValue(field, v) ? schemaInterface.validationMessageText(field, exports.ValidationMessageType.NotEmpty, false, true) : null;
1295
- }, "required", undefined, [dd.required]);
1296
- (_dd$validators2 = dd.validators) == null || _dd$validators2.forEach(function (v, i) {
1297
- return useValidatorFor(v, _extends({}, ctx, {
1298
- index: i,
1299
- field: field,
1300
- definition: dd
1301
- }));
1302
- });
1303
- }, [!!dd, depString, useValidatorFor]);
1304
- }
1305
- function useDefaultValidator(validator, ctx) {
1306
- switch (validator.type) {
1307
- case exports.ValidatorType.Length:
1308
- useLengthValidator(validator, ctx);
1309
- break;
1310
- case exports.ValidatorType.Jsonata:
1311
- useJsonataValidator(validator, ctx);
1312
- break;
1313
- case exports.ValidatorType.Date:
1314
- useDateValidator(validator, ctx);
1315
- break;
1316
- }
1317
- }
1318
- function useJsonataValidator(validator, ctx) {
1319
- var errorMsg = useJsonataExpression(validator.expression, ctx.dataContext, undefined, function (v) {
1320
- return v == null ? null : typeof v === "string" ? v : JSON.stringify(v);
1321
- });
1322
- core.useValidator(ctx.control, function () {
1323
- return !ctx.hiddenControl.value ? errorMsg.value : null;
1324
- }, "jsonata" + ctx.index);
1325
- }
1326
- function useLengthValidator(lv, ctx) {
1327
- var control = ctx.control,
1328
- schemaInterface = ctx.dataContext.schemaInterface,
1329
- hiddenControl = ctx.hiddenControl,
1330
- field = ctx.field;
1331
- core.useValidator(control, function (v) {
1332
- var len = schemaInterface.controlLength(field, control);
1333
- var hidden = hiddenControl.value;
1334
- if (hidden) {
1335
- return undefined;
1336
- }
1337
- if (lv.min != null && len < lv.min) {
1338
- if (field != null && field.collection) {
1339
- control.setValue(function (v) {
1340
- return Array.isArray(v) ? v.concat(Array.from({
1341
- length: lv.min - v.length
1342
- })) : Array.from({
1343
- length: lv.min
1344
- });
1345
- });
1346
- } else {
1347
- return schemaInterface.validationMessageText(field, exports.ValidationMessageType.MinLength, len, lv.min);
1348
- }
1349
- } else if (lv.max != null && len > lv.max) {
1350
- return schemaInterface.validationMessageText(field, exports.ValidationMessageType.MaxLength, len, lv.max);
1351
- }
1352
- return undefined;
1353
- }, "length" + ctx.index);
1354
- }
1355
- function useDateValidator(dv, ctx) {
1356
- var control = ctx.control,
1357
- field = ctx.field,
1358
- index = ctx.index,
1359
- schemaInterface = ctx.dataContext.schemaInterface;
1360
- var comparisonDate;
1361
- if (dv.fixedDate) {
1362
- comparisonDate = schemaInterface.parseToMillis(field, dv.fixedDate);
1363
- } else {
1364
- var nowDate = new Date();
1365
- comparisonDate = Date.UTC(nowDate.getFullYear(), nowDate.getMonth(), nowDate.getDate());
1366
- if (dv.daysFromCurrent) {
1367
- comparisonDate += dv.daysFromCurrent * 86400000;
1368
- }
1369
- }
1370
- core.useValidator(control, function (v) {
1371
- if (v) {
1372
- var selDate = schemaInterface.parseToMillis(field, v);
1373
- var notAfter = dv.comparison === exports.DateComparison.NotAfter;
1374
- if (notAfter ? selDate > comparisonDate : selDate < comparisonDate) {
1375
- return schemaInterface.validationMessageText(field, notAfter ? exports.ValidationMessageType.NotAfterDate : exports.ValidationMessageType.NotBeforeDate, selDate, comparisonDate);
1376
- }
1377
- }
1378
- return null;
1379
- }, "date" + index);
1380
- }
1381
-
1382
- function cc(n) {
1383
- return n ? n : undefined;
1384
- }
1385
-
1386
- var DefaultSchemaInterface = /*#__PURE__*/function () {
1387
- function DefaultSchemaInterface(boolStrings) {
1388
- if (boolStrings === void 0) {
1389
- boolStrings = ["No", "Yes"];
1390
- }
1391
- this.boolStrings = void 0;
1392
- this.boolStrings = boolStrings;
1393
- }
1394
- var _proto = DefaultSchemaInterface.prototype;
1395
- _proto.parseToMillis = function parseToMillis(field, v) {
1396
- return Date.parse(v);
1397
- };
1398
- _proto.validationMessageText = function validationMessageText(field, messageType, actual, expected) {
1399
- switch (messageType) {
1400
- case exports.ValidationMessageType.NotEmpty:
1401
- return "Please enter a value";
1402
- case exports.ValidationMessageType.MinLength:
1403
- return "Length must be at least " + expected;
1404
- case exports.ValidationMessageType.MaxLength:
1405
- return "Length must be less than " + expected;
1406
- case exports.ValidationMessageType.NotBeforeDate:
1407
- return "Date must not be before " + new Date(expected).toDateString();
1408
- case exports.ValidationMessageType.NotAfterDate:
1409
- return "Date must not be after " + new Date(expected).toDateString();
1410
- default:
1411
- return "Unknown error";
1412
- }
1413
- };
1414
- _proto.getOptions = function getOptions(_ref) {
1415
- var options = _ref.options;
1416
- return options && options.length > 0 ? options : null;
1417
- };
1418
- _proto.isEmptyValue = function isEmptyValue(f, value) {
1419
- if (f.collection) return Array.isArray(value) ? value.length === 0 : value == null;
1420
- switch (f.type) {
1421
- case exports.FieldType.String:
1422
- return !value;
1423
- default:
1424
- return value == null;
1425
- }
1426
- };
1427
- _proto.textValue = function textValue(field, value, element) {
1428
- switch (field.type) {
1429
- case exports.FieldType.DateTime:
1430
- return new Date(value).toLocaleDateString();
1431
- case exports.FieldType.Date:
1432
- return new Date(value).toLocaleDateString();
1433
- case exports.FieldType.Bool:
1434
- return this.boolStrings[value ? 1 : 0];
1435
- default:
1436
- return value != null ? value.toString() : undefined;
1437
- }
1438
- };
1439
- _proto.controlLength = function controlLength(f, control) {
1440
- var _control$elements$len, _control$elements;
1441
- return f.collection ? (_control$elements$len = (_control$elements = control.elements) == null ? void 0 : _control$elements.length) != null ? _control$elements$len : 0 : this.valueLength(f, control.value);
1442
- };
1443
- _proto.valueLength = function valueLength(field, value) {
1444
- var _ref2;
1445
- return (_ref2 = value && (value == null ? void 0 : value.length)) != null ? _ref2 : 0;
1446
- };
1447
- return DefaultSchemaInterface;
1448
- }();
1449
- var defaultSchemaInterface = new DefaultSchemaInterface();
1450
-
1451
- var _excluded$4 = ["definition", "field", "control", "formOptions", "style", "allowedOptions", "schemaInterface"];
1452
- var AppendAdornmentPriority = 0;
1453
- var WrapAdornmentPriority = 1000;
1454
- exports.LabelType = void 0;
1455
- (function (LabelType) {
1456
- LabelType[LabelType["Control"] = 0] = "Control";
1457
- LabelType[LabelType["Group"] = 1] = "Group";
1458
- LabelType[LabelType["Text"] = 2] = "Text";
1459
- })(exports.LabelType || (exports.LabelType = {}));
1460
- function useControlRenderer(definition, fields, renderer, options) {
1461
- var _options$useDataHook, _options$schemaInterf, _options$useEvalExpre;
1462
- if (options === void 0) {
1463
- options = {};
1464
- }
1465
- var dataProps = (_options$useDataHook = options.useDataHook == null ? void 0 : options.useDataHook(definition)) != null ? _options$useDataHook : defaultDataProps;
1466
- var elementIndex = options.elementIndex;
1467
- var schemaInterface = (_options$schemaInterf = options.schemaInterface) != null ? _options$schemaInterf : defaultSchemaInterface;
1468
- var useExpr = (_options$useEvalExpre = options.useEvalExpressionHook) != null ? _options$useEvalExpre : defaultUseEvalExpressionHook;
1469
- var fieldPath = lookupSchemaField(definition, fields);
1470
- var schemaField = fieldPath == null ? void 0 : fieldPath.at(-1);
1471
- var useValidation = useMakeValidationHook(definition, schemaField, options.useValidationHook);
1472
- var dynamicHooks = useDynamicHooks({
1473
- defaultValueControl: useEvalDefaultValueHook(useExpr, definition, schemaField, elementIndex != null),
1474
- visibleControl: useEvalVisibilityHook(useExpr, definition, fieldPath),
1475
- readonlyControl: useEvalReadonlyHook(useExpr, definition),
1476
- disabledControl: useEvalDisabledHook(useExpr, definition, fieldPath, elementIndex),
1477
- allowedOptions: useEvalAllowedOptionsHook(useExpr, definition),
1478
- labelText: useEvalLabelText(useExpr, definition),
1479
- actionData: useEvalActionHook(useExpr, definition),
1480
- customStyle: useEvalStyleHook(useExpr, exports.DynamicPropertyType.Style, definition),
1481
- layoutStyle: useEvalStyleHook(useExpr, exports.DynamicPropertyType.LayoutStyle, definition),
1482
- displayControl: useEvalDisplayHook(useExpr, definition)
1483
- });
1484
- var r = useUpdatedRef({
1485
- options: options,
1486
- definition: definition,
1487
- fields: fields,
1488
- fieldPath: fieldPath,
1489
- elementIndex: elementIndex
1490
- });
1491
- var Component = React.useCallback(function (_ref) {
1492
- var rootControl = _ref.control,
1493
- _ref$parentPath = _ref.parentPath,
1494
- parentPath = _ref$parentPath === void 0 ? [] : _ref$parentPath;
1495
- var stopTracking = core.useComponentTracking();
1496
- try {
1497
- var _definition$adornment, _definition$adornment2;
1498
- var _r$current = r.current,
1499
- c = _r$current.definition,
1500
- _options = _r$current.options,
1501
- _fields = _r$current.fields,
1502
- _fieldPath = _r$current.fieldPath,
1503
- _elementIndex = _r$current.elementIndex;
1504
- var _schemaField = _fieldPath == null ? void 0 : _fieldPath.at(-1);
1505
- var parentDataContext = {
1506
- fields: _fields,
1507
- schemaInterface: schemaInterface,
1508
- data: rootControl,
1509
- path: parentPath
1510
- };
1511
- var _dynamicHooks = dynamicHooks(parentDataContext),
1512
- readonlyControl = _dynamicHooks.readonlyControl,
1513
- disabledControl = _dynamicHooks.disabledControl,
1514
- visibleControl = _dynamicHooks.visibleControl,
1515
- displayControl = _dynamicHooks.displayControl,
1516
- layoutStyle = _dynamicHooks.layoutStyle,
1517
- labelText = _dynamicHooks.labelText,
1518
- customStyle = _dynamicHooks.customStyle,
1519
- allowedOptions = _dynamicHooks.allowedOptions,
1520
- defaultValueControl = _dynamicHooks.defaultValueControl,
1521
- actionData = _dynamicHooks.actionData;
1522
- var visible = visibleControl.current.value;
1523
- var visibility = core.useControl(function () {
1524
- return visible != null ? {
1525
- visible: visible,
1526
- showing: visible
1527
- } : undefined;
1528
- });
1529
- core.useControlEffect(function () {
1530
- return visibleControl.value;
1531
- }, function (visible) {
1532
- if (visible != null) visibility.setValue(function (ex) {
1533
- return {
1534
- visible: visible,
1535
- showing: ex ? ex.showing : visible
1536
- };
1537
- });
1538
- });
1539
- var _getControlData = getControlData(_fieldPath, parentDataContext, _elementIndex),
1540
- parentControl = _getControlData[0],
1541
- control = _getControlData[1],
1542
- controlDataContext = _getControlData[2];
1543
- core.useControlEffect(function () {
1544
- var _definition$renderOpt;
1545
- return [visibility.value, defaultValueControl.value, control == null ? void 0 : control.isNull, isDataControlDefinition(definition) && definition.dontClearHidden, isDataControlDefinition(definition) && ((_definition$renderOpt = definition.renderOptions) == null ? void 0 : _definition$renderOpt.type) == exports.DataRenderType.NullToggle, parentControl.isNull, _options.hidden, readonlyControl.value];
1546
- }, function (_ref2) {
1547
- var vc = _ref2[0],
1548
- dv = _ref2[1],
1549
- _ = _ref2[2],
1550
- dontClear = _ref2[3],
1551
- dontDefault = _ref2[4],
1552
- parentNull = _ref2[5],
1553
- hidden = _ref2[6],
1554
- ro = _ref2[7];
1555
- if (!ro) {
1556
- if (control) {
1557
- if (vc && vc.visible === vc.showing) {
1558
- if (hidden || !vc.visible) {
1559
- control.setValue(function (x) {
1560
- return _options.clearHidden && !dontClear ? undefined : x == null && dontClear && !dontDefault ? dv : x;
1561
- });
1562
- } else if (!dontDefault) control.setValue(function (x) {
1563
- return x != null ? x : dv;
1564
- });
1565
- }
1566
- } else if (parentNull) {
1567
- parentControl.setValue(function (x) {
1568
- return x != null ? x : {};
1569
- });
1570
- }
1571
- }
1572
- }, true);
1573
- var myOptionsControl = core.useCalculatedControl(function () {
1574
- var _visibility$fields;
1575
- return {
1576
- hidden: _options.hidden || !((_visibility$fields = visibility.fields) != null && _visibility$fields.showing.value),
1577
- readonly: _options.readonly || readonlyControl.value,
1578
- disabled: _options.disabled || disabledControl.value
1579
- };
1580
- });
1581
- var myOptions = core.trackedValue(myOptionsControl);
1582
- useValidation({
1583
- control: control != null ? control : core.newControl(null),
1584
- hiddenControl: myOptionsControl.fields.hidden,
1585
- dataContext: parentDataContext
1586
- });
1587
- var childOptions = _extends({}, _options, myOptions, {
1588
- elementIndex: undefined
1589
- });
1590
- React.useEffect(function () {
1591
- if (control && typeof myOptions.disabled === "boolean" && control.disabled != myOptions.disabled) control.disabled = myOptions.disabled;
1592
- }, [control, myOptions.disabled]);
1593
- if (parentControl.isNull) return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null);
1594
- var adornments = (_definition$adornment = (_definition$adornment2 = definition.adornments) == null ? void 0 : _definition$adornment2.map(function (x) {
1595
- return renderer.renderAdornment({
1596
- adornment: x,
1597
- dataContext: controlDataContext,
1598
- parentContext: parentDataContext,
1599
- useExpr: useExpr
1600
- });
1601
- })) != null ? _definition$adornment : [];
1602
- var labelAndChildren = renderControlLayout({
1603
- definition: c,
1604
- renderer: renderer,
1605
- renderChild: function renderChild(k, child, options) {
1606
- var _options$dataContext;
1607
- if (control && control.isNull) return /*#__PURE__*/React__default["default"].createElement(React.Fragment, {
1608
- key: k
1609
- });
1610
- var dataContext = (_options$dataContext = options == null ? void 0 : options.dataContext) != null ? _options$dataContext : controlDataContext;
1611
- return /*#__PURE__*/React__default["default"].createElement(ControlRenderer, {
1612
- key: k,
1613
- control: dataContext.data,
1614
- fields: dataContext.fields,
1615
- definition: child,
1616
- parentPath: dataContext.path,
1617
- renderer: renderer,
1618
- options: options ? _extends({}, childOptions, {
1619
- elementIndex: options == null ? void 0 : options.elementIndex
1620
- }) : childOptions
1621
- });
1622
- },
1623
- createDataProps: dataProps,
1624
- formOptions: myOptions,
1625
- dataContext: controlDataContext,
1626
- parentContext: parentDataContext,
1627
- control: displayControl != null ? displayControl : control,
1628
- elementIndex: _elementIndex,
1629
- schemaInterface: schemaInterface,
1630
- labelText: labelText,
1631
- field: _schemaField,
1632
- displayControl: displayControl,
1633
- style: customStyle.value,
1634
- allowedOptions: allowedOptions,
1635
- customDisplay: _options.customDisplay,
1636
- actionDataControl: actionData,
1637
- actionOnClick: _options.actionOnClick,
1638
- useChildVisibility: function useChildVisibility(childDef, context) {
1639
- var schemaField = lookupSchemaField(childDef, (context != null ? context : controlDataContext).fields);
1640
- return useEvalVisibilityHook(useExpr, childDef, schemaField);
1641
- }
1642
- });
1643
- var renderedControl = renderer.renderLayout(_extends({}, labelAndChildren, {
1644
- adornments: adornments,
1645
- className: c.layoutClass,
1646
- style: layoutStyle.value
1647
- }));
1648
- return renderer.renderVisibility(_extends({
1649
- visibility: visibility
1650
- }, renderedControl));
1651
- } finally {
1652
- stopTracking();
1653
- }
1654
- }, [r, dataProps, useValidation, renderer, schemaInterface, dynamicHooks]);
1655
- Component.displayName = "RenderControl";
1656
- return Component;
1657
- }
1658
- function lookupSchemaField(c, fields) {
1659
- var fieldName = isGroupControlsDefinition(c) ? c.compoundField : isDataControlDefinition(c) ? c.field : undefined;
1660
- return fieldName ? findFieldPath(fields, fieldName) : undefined;
1661
- }
1662
- function getControlData(fieldPath, parentContext, elementIndex) {
1663
- var _fieldPath$slice$map, _parentControl$fields, _childControl$element;
1664
- var data = parentContext.data,
1665
- pp = parentContext.path;
1666
- var extraPath = (_fieldPath$slice$map = fieldPath == null ? void 0 : fieldPath.slice(0, -1).map(function (x) {
1667
- return x.field;
1668
- })) != null ? _fieldPath$slice$map : [];
1669
- var path = [].concat(pp, extraPath);
1670
- var schemaField = fieldPath == null ? void 0 : fieldPath.at(-1);
1671
- var _lookupControl = lookupControl(data, path),
1672
- parentControl = _lookupControl[0],
1673
- found = _lookupControl[1];
1674
- var childPath = schemaField ? elementIndex != null ? [].concat(path, [schemaField.field, elementIndex]) : [].concat(path, [schemaField.field]) : path;
1675
- var childControl = schemaField && found ? (_parentControl$fields = parentControl.fields) == null ? void 0 : _parentControl$fields[schemaField.field] : undefined;
1676
- return [parentControl, childControl && elementIndex != null ? (_childControl$element = childControl.elements) == null ? void 0 : _childControl$element[elementIndex] : childControl, schemaField ? _extends({}, parentContext, {
1677
- path: childPath,
1678
- fields: isCompoundField(schemaField) ? schemaField.children : parentContext.fields
1679
- }) : parentContext];
1680
- }
1681
- function lookupControl(control, path) {
1682
- var _base;
1683
- var base = control;
1684
- var index = 0;
1685
- while (index < path.length && base) {
1686
- control = base;
1687
- var childId = path[index];
1688
- var c = base.current;
1689
- if (typeof childId === "string") {
1690
- var _c$fields;
1691
- base = (_c$fields = c.fields) == null ? void 0 : _c$fields[childId];
1692
- } else {
1693
- var _c$elements;
1694
- base = (_c$elements = c.elements) == null ? void 0 : _c$elements[childId];
1695
- }
1696
- index++;
1697
- }
1698
- return [(_base = base) != null ? _base : control, !!base];
1699
- }
1700
- function ControlRenderer(_ref3) {
1701
- var _effect = core.useComponentTracking();
1702
- try {
1703
- var definition = _ref3.definition,
1704
- fields = _ref3.fields,
1705
- renderer = _ref3.renderer,
1706
- options = _ref3.options,
1707
- control = _ref3.control,
1708
- parentPath = _ref3.parentPath;
1709
- var Render = useControlRenderer(definition, fields, renderer, options);
1710
- return /*#__PURE__*/React__default["default"].createElement(Render, {
1711
- control: control,
1712
- parentPath: parentPath
1713
- });
1714
- } finally {
1715
- _effect();
1716
- }
1717
- }
1718
- function defaultDataProps(_ref4) {
1719
- var _allowedOptions$value, _definition$children, _definition$renderOpt2;
1720
- var definition = _ref4.definition,
1721
- field = _ref4.field,
1722
- control = _ref4.control,
1723
- formOptions = _ref4.formOptions,
1724
- style = _ref4.style,
1725
- allowedOptions = _ref4.allowedOptions,
1726
- _ref4$schemaInterface = _ref4.schemaInterface,
1727
- schemaInterface = _ref4$schemaInterface === void 0 ? defaultSchemaInterface : _ref4$schemaInterface,
1728
- props = _objectWithoutPropertiesLoose(_ref4, _excluded$4);
1729
- var className = cc(definition.styleClass);
1730
- var required = !!definition.required;
1731
- var fieldOptions = schemaInterface.getOptions(field);
1732
- var _allowed = (_allowedOptions$value = allowedOptions == null ? void 0 : allowedOptions.value) != null ? _allowedOptions$value : [];
1733
- var allowed = Array.isArray(_allowed) ? _allowed : [_allowed];
1734
- return _extends({
1735
- definition: definition,
1736
- childDefinitions: (_definition$children = definition.children) != null ? _definition$children : [],
1737
- control: control,
1738
- field: field,
1739
- id: "c" + control.uniqueId,
1740
- options: allowed.length > 0 ? allowed.map(function (x) {
1741
- var _fieldOptions$find;
1742
- return typeof x === "object" ? x : (_fieldOptions$find = fieldOptions == null ? void 0 : fieldOptions.find(function (y) {
1743
- return y.value == x;
1744
- })) != null ? _fieldOptions$find : {
1745
- name: x.toString(),
1746
- value: x
1747
- };
1748
- }) : fieldOptions,
1749
- readonly: !!formOptions.readonly,
1750
- renderOptions: (_definition$renderOpt2 = definition.renderOptions) != null ? _definition$renderOpt2 : {
1751
- type: "Standard"
1752
- },
1753
- required: required,
1754
- hidden: !!formOptions.hidden,
1755
- className: className,
1756
- style: style
1757
- }, props);
1758
- }
1759
- function renderControlLayout(props) {
1760
- var c = props.definition,
1761
- renderer = props.renderer,
1762
- renderChild = props.renderChild,
1763
- control = props.control,
1764
- field = props.field,
1765
- dataContext = props.dataContext,
1766
- dataProps = props.createDataProps,
1767
- displayControl = props.displayControl,
1768
- style = props.style,
1769
- labelText = props.labelText,
1770
- parentContext = props.parentContext,
1771
- useChildVisibility = props.useChildVisibility,
1772
- designMode = props.designMode,
1773
- customDisplay = props.customDisplay;
1774
- if (isDataControlDefinition(c)) {
1775
- return renderData(c);
1776
- }
1777
- if (isGroupControlsDefinition(c)) {
1778
- var _c$children, _c$groupOptions2, _labelText$value, _c$groupOptions3;
1779
- if (c.compoundField) {
1780
- var _c$groupOptions;
1781
- return renderData(dataControl(c.compoundField, c.title, {
1782
- children: c.children,
1783
- hideTitle: (_c$groupOptions = c.groupOptions) == null ? void 0 : _c$groupOptions.hideTitle
1784
- }));
1785
- }
1786
- return {
1787
- processLayout: renderer.renderGroup({
1788
- childDefinitions: (_c$children = c.children) != null ? _c$children : [],
1789
- definition: c,
1790
- parentContext: parentContext,
1791
- renderChild: renderChild,
1792
- dataContext: dataContext,
1793
- renderOptions: (_c$groupOptions2 = c.groupOptions) != null ? _c$groupOptions2 : {
1794
- type: "Standard"
1795
- },
1796
- className: cc(c.styleClass),
1797
- useChildVisibility: useChildVisibility,
1798
- style: style,
1799
- designMode: designMode
1800
- }),
1801
- label: {
1802
- label: (_labelText$value = labelText == null ? void 0 : labelText.value) != null ? _labelText$value : c.title,
1803
- className: cc(c.labelClass),
1804
- type: exports.LabelType.Group,
1805
- hide: (_c$groupOptions3 = c.groupOptions) == null ? void 0 : _c$groupOptions3.hideTitle
1806
- }
1807
- };
1808
- }
1809
- if (isActionControlsDefinition(c)) {
1810
- var _props$actionDataCont, _props$actionDataCont2, _ref5, _labelText$value2, _props$actionOnClick;
1811
- var actionData = (_props$actionDataCont = (_props$actionDataCont2 = props.actionDataControl) == null ? void 0 : _props$actionDataCont2.value) != null ? _props$actionDataCont : c.actionData;
1812
- return {
1813
- children: renderer.renderAction({
1814
- actionText: (_ref5 = (_labelText$value2 = labelText == null ? void 0 : labelText.value) != null ? _labelText$value2 : c.title) != null ? _ref5 : c.actionId,
1815
- actionId: c.actionId,
1816
- actionData: actionData,
1817
- onClick: (_props$actionOnClick = props.actionOnClick == null ? void 0 : props.actionOnClick(c.actionId, actionData)) != null ? _props$actionOnClick : function () {},
1818
- className: cc(c.styleClass),
1819
- style: style
1820
- })
1821
- };
1822
- }
1823
- if (isDisplayControlsDefinition(c)) {
1824
- var _c$displayData;
1825
- var data = (_c$displayData = c.displayData) != null ? _c$displayData : {};
1826
- var displayProps = {
1827
- data: data,
1828
- className: cc(c.styleClass),
1829
- style: style,
1830
- display: displayControl,
1831
- dataContext: dataContext
1832
- };
1833
- if (data.type === exports.DisplayDataType.Custom && customDisplay) {
1834
- return {
1835
- children: customDisplay(data.customId, displayProps)
1836
- };
1837
- }
1838
- return {
1839
- children: renderer.renderDisplay(displayProps)
1840
- };
1841
- }
1842
- return {};
1843
- function renderData(c) {
1844
- var _labelText$value3, _c$children$length, _c$children2;
1845
- if (!field) return {
1846
- children: "No schema field for: " + c.field
1847
- };
1848
- if (!control) return {
1849
- children: "No control for: " + c.field
1850
- };
1851
- var rendererProps = dataProps(props);
1852
- var label = !c.hideTitle ? controlTitle((_labelText$value3 = labelText == null ? void 0 : labelText.value) != null ? _labelText$value3 : c.title, field) : undefined;
1853
- return {
1854
- processLayout: renderer.renderData(rendererProps),
1855
- label: {
1856
- type: ((_c$children$length = (_c$children2 = c.children) == null ? void 0 : _c$children2.length) != null ? _c$children$length : 0) > 0 ? exports.LabelType.Group : exports.LabelType.Control,
1857
- label: label,
1858
- forId: rendererProps.id,
1859
- required: c.required,
1860
- hide: c.hideTitle,
1861
- className: cc(c.labelClass)
1862
- },
1863
- errorControl: control
1864
- };
1865
- }
1866
- }
1867
- function appendMarkup(k, markup) {
1868
- return function (layout) {
1869
- return layout[k] = /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, layout[k], markup);
1870
- };
1871
- }
1872
- function wrapMarkup(k, wrap) {
1873
- return function (layout) {
1874
- return layout[k] = wrap(layout[k]);
1875
- };
1876
- }
1877
- function layoutKeyForPlacement(pos) {
1878
- switch (pos) {
1879
- case exports.AdornmentPlacement.ControlEnd:
1880
- return "controlEnd";
1881
- case exports.AdornmentPlacement.ControlStart:
1882
- return "controlStart";
1883
- case exports.AdornmentPlacement.LabelStart:
1884
- return "labelStart";
1885
- case exports.AdornmentPlacement.LabelEnd:
1886
- return "labelEnd";
1887
- }
1888
- }
1889
- function wrapLayout(wrap) {
1890
- return function (rl) {
1891
- var orig = rl.wrapLayout;
1892
- rl.wrapLayout = function (x) {
1893
- return wrap(orig(x));
1894
- };
1895
- };
1896
- }
1897
- function appendMarkupAt(pos, markup) {
1898
- return appendMarkup(layoutKeyForPlacement(pos), markup);
1899
- }
1900
- function wrapMarkupAt(pos, wrap) {
1901
- return wrapMarkup(layoutKeyForPlacement(pos), wrap);
1902
- }
1903
- function renderLayoutParts(props, renderer) {
1904
- var _props$processLayout;
1905
- var _ref6 = (_props$processLayout = props.processLayout == null ? void 0 : props.processLayout(props)) != null ? _props$processLayout : props,
1906
- className = _ref6.className,
1907
- children = _ref6.children,
1908
- style = _ref6.style,
1909
- errorControl = _ref6.errorControl,
1910
- label = _ref6.label,
1911
- adornments = _ref6.adornments;
1912
- var layout = {
1913
- children: children,
1914
- errorControl: errorControl,
1915
- style: style,
1916
- className: cc(className),
1917
- wrapLayout: function wrapLayout(x) {
1918
- return x;
1919
- }
1920
- };
1921
- (adornments != null ? adornments : []).sort(function (a, b) {
1922
- return a.priority - b.priority;
1923
- }).forEach(function (x) {
1924
- return x.apply(layout);
1925
- });
1926
- layout.label = label && !label.hide ? renderer.renderLabel(label, layout.labelStart, layout.labelEnd) : undefined;
1927
- return layout;
1928
- }
1929
- function controlTitle(title, field) {
1930
- return title ? title : fieldDisplayName(field);
1931
- }
1932
- function getLengthRestrictions(definition) {
1933
- var _definition$validator;
1934
- var lengthVal = (_definition$validator = definition.validators) == null ? void 0 : _definition$validator.find(function (x) {
1935
- return x.type === exports.ValidatorType.Length;
1936
- });
1937
- return {
1938
- min: lengthVal == null ? void 0 : lengthVal.min,
1939
- max: lengthVal == null ? void 0 : lengthVal.max
1940
- };
1941
- }
1942
- function createArrayActions(control, field, options) {
1943
- var _field$displayName;
1944
- var noun = (_field$displayName = field.displayName) != null ? _field$displayName : field.field;
1945
- var _ref7 = options != null ? options : {},
1946
- addText = _ref7.addText,
1947
- noAdd = _ref7.noAdd,
1948
- removeText = _ref7.removeText,
1949
- noRemove = _ref7.noRemove,
1950
- removeActionId = _ref7.removeActionId,
1951
- addActionId = _ref7.addActionId;
1952
- return {
1953
- arrayControl: control,
1954
- addAction: !noAdd ? {
1955
- actionId: addActionId ? addActionId : "add",
1956
- actionText: addText ? addText : "Add " + noun,
1957
- onClick: function onClick() {
1958
- return core.addElement(control, elementValueForField(field));
1959
- }
1960
- } : undefined,
1961
- removeAction: !noRemove ? function (i) {
1962
- return {
1963
- actionId: removeActionId ? removeActionId : "remove",
1964
- actionText: removeText ? removeText : "Remove",
1965
- onClick: function onClick() {
1966
- return core.removeElement(control, i);
1967
- }
1968
- };
1969
- } : undefined
1970
- };
1971
- }
1972
- function applyArrayLengthRestrictions(_ref8, disable) {
1973
- var _arrayControl$element, _arrayControl$element2;
1974
- var arrayControl = _ref8.arrayControl,
1975
- min = _ref8.min,
1976
- max = _ref8.max,
1977
- aa = _ref8.addAction,
1978
- ra = _ref8.removeAction,
1979
- required = _ref8.required;
1980
- var _applyLengthRestricti = applyLengthRestrictions((_arrayControl$element = (_arrayControl$element2 = arrayControl.elements) == null ? void 0 : _arrayControl$element2.length) != null ? _arrayControl$element : 0, min == null && required ? 1 : min, max, true, true),
1981
- removeAllowed = _applyLengthRestricti[0],
1982
- addAllowed = _applyLengthRestricti[1];
1983
- return {
1984
- addAction: disable || addAllowed ? aa : undefined,
1985
- removeAction: disable || removeAllowed ? ra : undefined,
1986
- removeDisabled: !removeAllowed,
1987
- addDisabled: !addAllowed
1988
- };
1989
- }
1990
-
1991
- function isIconAdornment(a) {
1992
- return a.type === exports.ControlAdornmentType.Icon;
1993
- }
1994
- function isAccordionAdornment(a) {
1995
- return a.type === exports.ControlAdornmentType.Accordion;
1996
- }
1997
- function isSetFieldAdornment(a) {
1998
- return a.type === exports.ControlAdornmentType.SetField;
1999
- }
2000
- function createLayoutRenderer(render, options) {
2001
- return _extends({
2002
- type: "layout",
2003
- render: render
2004
- }, options);
2005
- }
2006
- function createActionRenderer(actionId, render, options) {
2007
- return _extends({
2008
- type: "action",
2009
- actionType: actionId,
2010
- render: render
2011
- }, options);
2012
- }
2013
- function createArrayRenderer(render, options) {
2014
- return _extends({
2015
- type: "array",
2016
- render: render
2017
- }, options);
2018
- }
2019
- function createDataRenderer(render, options) {
2020
- return _extends({
2021
- type: "data",
2022
- render: render
2023
- }, options);
2024
- }
2025
- function createGroupRenderer(render, options) {
2026
- return _extends({
2027
- type: "group",
2028
- render: render
2029
- }, options);
2030
- }
2031
- function createDisplayRenderer(render, options) {
2032
- return _extends({
2033
- type: "display",
2034
- render: render
2035
- }, options);
2036
- }
2037
- function createLabelRenderer(render, options) {
2038
- return _extends({
2039
- type: "label",
2040
- render: render
2041
- }, options);
2042
- }
2043
- function createVisibilityRenderer(render, options) {
2044
- return _extends({
2045
- type: "visibility",
2046
- render: render
2047
- }, options);
2048
- }
2049
- function createAdornmentRenderer(render, options) {
2050
- return _extends({
2051
- type: "adornment"
2052
- }, options, {
2053
- render: render
2054
- });
2055
- }
2056
-
2057
- var defaultTailwindTheme = {
2058
- label: {
2059
- groupLabelClass: "font-bold",
2060
- requiredElement: /*#__PURE__*/React__default["default"].createElement("span", {
2061
- className: "text-red-500"
2062
- }, " *")
2063
- },
2064
- array: {
2065
- removableClass: "grid grid-cols-[1fr_auto] items-center gap-x-2",
2066
- childClass: "grow my-2",
2067
- addActionClass: "my-2"
2068
- },
2069
- group: {
2070
- standardClassName: "flex flex-col gap-4",
2071
- gridClassName: "gap-x-2 gap-y-4",
2072
- flexClassName: "gap-2"
2073
- },
2074
- action: {
2075
- className: "bg-primary-500 rounded-lg p-3 text-white"
2076
- },
2077
- layout: {
2078
- className: "flex flex-col",
2079
- errorClass: "text-sm text-danger-500"
2080
- },
2081
- data: {
2082
- displayOnlyClass: "flex flex-row items-center gap-2",
2083
- checkOptions: {
2084
- className: "flex items-center gap-4",
2085
- entryClass: "flex gap-1 items-center"
2086
- },
2087
- selectOptions: {
2088
- emptyText: "<select>"
2089
- },
2090
- multilineClass: "border p-2 outline-0 whitespace-pre"
2091
- },
2092
- adornment: {
2093
- accordion: {
2094
- className: "flex items-center gap-2 my-2",
2095
- titleClass: "cursor-pointer",
2096
- iconOpenClass: "fa fa-chevron-up",
2097
- iconClosedClass: "fa fa-chevron-down"
2098
- }
2099
- }
2100
- };
2101
-
2102
- var _excluded$3 = ["data", "display", "className", "style"];
2103
- function createDefaultDisplayRenderer(options) {
2104
- if (options === void 0) {
2105
- options = {};
2106
- }
2107
- return {
2108
- render: function render(props) {
2109
- return /*#__PURE__*/React__default["default"].createElement(DefaultDisplay, _extends({}, options, props));
2110
- },
2111
- type: "display"
2112
- };
2113
- }
2114
- function DefaultDisplay(_ref) {
2115
- var _effect = core.useComponentTracking();
2116
- try {
2117
- var _display$value;
2118
- var data = _ref.data,
2119
- display = _ref.display,
2120
- className = _ref.className,
2121
- style = _ref.style,
2122
- options = _objectWithoutPropertiesLoose(_ref, _excluded$3);
2123
- switch (data.type) {
2124
- case exports.DisplayDataType.Icon:
2125
- return /*#__PURE__*/React__default["default"].createElement("i", {
2126
- style: style,
2127
- className: clsx__default["default"](getOverrideClass(className), display ? display.value : data.iconClass)
2128
- });
2129
- case exports.DisplayDataType.Text:
2130
- return /*#__PURE__*/React__default["default"].createElement("div", {
2131
- style: style,
2132
- className: rendererClass(className, options.textClassName)
2133
- }, display ? display.value : data.text);
2134
- case exports.DisplayDataType.Html:
2135
- return /*#__PURE__*/React__default["default"].createElement("div", {
2136
- style: style,
2137
- className: rendererClass(className, options.htmlClassName),
2138
- dangerouslySetInnerHTML: {
2139
- __html: display ? (_display$value = display.value) != null ? _display$value : "" : data.html
2140
- }
2141
- });
2142
- case exports.DisplayDataType.Custom:
2143
- return /*#__PURE__*/React__default["default"].createElement("div", null, "Custom display placeholder: ", data.customId);
2144
- default:
2145
- return /*#__PURE__*/React__default["default"].createElement("h1", null, "Unknown display type: ", data.type);
2146
- }
2147
- } finally {
2148
- _effect();
2149
- }
2150
- }
2151
-
2152
- function DefaultLayout(_ref) {
2153
- var _effect = core.useComponentTracking();
2154
- try {
2155
- var errorClass = _ref.errorClass,
2156
- _ref$renderError = _ref.renderError,
2157
- renderError = _ref$renderError === void 0 ? function (e) {
2158
- return e && /*#__PURE__*/React__default["default"].createElement("div", {
2159
- className: errorClass
2160
- }, e);
2161
- } : _ref$renderError,
2162
- _ref$layout = _ref.layout,
2163
- controlEnd = _ref$layout.controlEnd,
2164
- controlStart = _ref$layout.controlStart,
2165
- label = _ref$layout.label,
2166
- children = _ref$layout.children,
2167
- errorControl = _ref$layout.errorControl;
2168
- var ec = errorControl;
2169
- var errorText = ec && ec.touched ? ec.error : undefined;
2170
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, label, controlStart, children, renderError(errorText), controlEnd);
2171
- } finally {
2172
- _effect();
2173
- }
2174
- }
2175
-
2176
- function createDefaultVisibilityRenderer() {
2177
- return createVisibilityRenderer(function (props) {
2178
- return /*#__PURE__*/React__default["default"].createElement(DefaultVisibility, props);
2179
- });
2180
- }
2181
- function DefaultVisibility(_ref) {
2182
- var _effect = core.useComponentTracking();
2183
- try {
2184
- var visibility = _ref.visibility,
2185
- children = _ref.children,
2186
- className = _ref.className,
2187
- style = _ref.style,
2188
- divRef = _ref.divRef;
2189
- var v = visibility.value;
2190
- React.useEffect(function () {
2191
- if (v) {
2192
- visibility.setValue(function (ex) {
2193
- return {
2194
- visible: v.visible,
2195
- showing: v.visible
2196
- };
2197
- });
2198
- }
2199
- }, [v == null ? void 0 : v.visible]);
2200
- return v != null && v.visible ? /*#__PURE__*/React__default["default"].createElement("div", {
2201
- className: clsx__default["default"](className),
2202
- style: style,
2203
- ref: divRef
2204
- }, children) : /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null);
2205
- } finally {
2206
- _effect();
2207
- }
2208
- }
2209
-
2210
- var _excluded$2 = ["state", "options", "className", "convert", "required", "emptyText", "requiredText", "readonly"];
2211
- function createSelectRenderer(options) {
2212
- if (options === void 0) {
2213
- options = {};
2214
- }
2215
- return createDataRenderer(function (props, asArray) {
2216
- var _props$options;
2217
- return /*#__PURE__*/React__default["default"].createElement(SelectDataRenderer, {
2218
- className: rendererClass(props.className, options.className),
2219
- state: props.control,
2220
- id: props.id,
2221
- readonly: props.readonly,
2222
- options: (_props$options = props.options) != null ? _props$options : [],
2223
- required: props.required,
2224
- emptyText: options.emptyText,
2225
- requiredText: options.requiredText,
2226
- convert: createSelectConversion(props.field.type)
2227
- });
2228
- }, {
2229
- options: true
2230
- });
2231
- }
2232
- function SelectDataRenderer(_ref) {
2233
- var _effect = core.useComponentTracking();
2234
- try {
2235
- var state = _ref.state,
2236
- options = _ref.options,
2237
- className = _ref.className,
2238
- convert = _ref.convert,
2239
- required = _ref.required,
2240
- _ref$emptyText = _ref.emptyText,
2241
- emptyText = _ref$emptyText === void 0 ? "N/A" : _ref$emptyText,
2242
- _ref$requiredText = _ref.requiredText,
2243
- requiredText = _ref$requiredText === void 0 ? "<please select>" : _ref$requiredText,
2244
- readonly = _ref.readonly,
2245
- props = _objectWithoutPropertiesLoose(_ref, _excluded$2);
2246
- var value = state.value,
2247
- disabled = state.disabled;
2248
- var _useState = React.useState(!required || value == null),
2249
- showEmpty = _useState[0];
2250
- var optionStringMap = React.useMemo(function () {
2251
- return Object.fromEntries(options.map(function (x) {
2252
- return [convert(x.value), x.value];
2253
- }));
2254
- }, [options]);
2255
- return /*#__PURE__*/React__default["default"].createElement("select", _extends({}, props, {
2256
- className: className,
2257
- onChange: function onChange(v) {
2258
- return state.value = optionStringMap[v.target.value];
2259
- },
2260
- value: convert(value),
2261
- disabled: disabled || readonly
2262
- }), showEmpty && /*#__PURE__*/React__default["default"].createElement("option", {
2263
- value: ""
2264
- }, required ? requiredText : emptyText), options.map(function (x, i) {
2265
- return /*#__PURE__*/React__default["default"].createElement("option", {
2266
- key: i,
2267
- value: convert(x.value),
2268
- disabled: !!x.disabled
2269
- }, x.name);
2270
- }));
2271
- } finally {
2272
- _effect();
2273
- }
2274
- }
2275
- function createSelectConversion(ft) {
2276
- switch (ft) {
2277
- case exports.FieldType.String:
2278
- case exports.FieldType.Int:
2279
- case exports.FieldType.Double:
2280
- return function (a) {
2281
- return a;
2282
- };
2283
- default:
2284
- return function (a) {
2285
- var _a$toString;
2286
- return (_a$toString = a == null ? void 0 : a.toString()) != null ? _a$toString : "";
2287
- };
2288
- }
2289
- }
2290
-
2291
- function DefaultDisplayOnly(_ref) {
2292
- var _effect = core.useComponentTracking();
2293
- try {
2294
- var _ref2;
2295
- var control = _ref.control,
2296
- className = _ref.className,
2297
- emptyText = _ref.emptyText,
2298
- schemaInterface = _ref.schemaInterface,
2299
- field = _ref.field,
2300
- style = _ref.style;
2301
- var v = control.value;
2302
- var text = (_ref2 = schemaInterface.isEmptyValue(field, v) ? emptyText : schemaInterface.textValue(field, v)) != null ? _ref2 : "";
2303
- return /*#__PURE__*/React__default["default"].createElement("div", {
2304
- style: style,
2305
- className: rendererClass(className)
2306
- }, text);
2307
- } finally {
2308
- _effect();
2309
- }
2310
- }
2311
-
2312
- var _excluded$1 = ["control", "convert"],
2313
- _excluded2 = ["errorText", "value", "onChange"];
2314
- function ControlInput(_ref) {
2315
- var _effect = core.useComponentTracking();
2316
- try {
2317
- var toText = function toText(value) {
2318
- return value == null ? "" : convert[2](value);
2319
- };
2320
- var control = _ref.control,
2321
- convert = _ref.convert,
2322
- props = _objectWithoutPropertiesLoose(_ref, _excluded$1);
2323
- var _formControlProps = core.formControlProps(control),
2324
- errorText = _formControlProps.errorText,
2325
- value = _formControlProps.value,
2326
- onChange = _formControlProps.onChange,
2327
- inputProps = _objectWithoutPropertiesLoose(_formControlProps, _excluded2);
2328
- var textValue = core.useControl(function () {
2329
- return toText(value);
2330
- });
2331
- core.useControlEffect(function () {
2332
- return control.value;
2333
- }, function (v) {
2334
- return textValue.value = toText(v);
2335
- });
2336
- return /*#__PURE__*/React__default["default"].createElement("input", _extends({}, inputProps, {
2337
- type: convert[0],
2338
- value: textValue.value,
2339
- onChange: function onChange(e) {
2340
- textValue.value = e.target.value;
2341
- var converted = convert[1](e.target.value);
2342
- if (converted !== undefined) control.value = converted;
2343
- }
2344
- }, props));
2345
- } finally {
2346
- _effect();
2347
- }
2348
- }
2349
- function createInputConversion(ft) {
2350
- switch (ft) {
2351
- case exports.FieldType.String:
2352
- return ["text", function (a) {
2353
- return a;
2354
- }, function (a) {
2355
- return a;
2356
- }];
2357
- case exports.FieldType.Bool:
2358
- return ["text", function (a) {
2359
- return a === "true" ? true : a === "false" ? false : undefined;
2360
- }, function (a) {
2361
- var _a$toString;
2362
- return (_a$toString = a == null ? void 0 : a.toString()) != null ? _a$toString : "";
2363
- }];
2364
- case exports.FieldType.Int:
2365
- return ["number", function (a) {
2366
- return a !== "" ? parseInt(a) : null;
2367
- }, function (a) {
2368
- return a == null ? "" : a;
2369
- }];
2370
- case exports.FieldType.Date:
2371
- return ["date", function (a) {
2372
- return a;
2373
- }, function (a) {
2374
- return a;
2375
- }];
2376
- case exports.FieldType.Time:
2377
- return ["time", function (a) {
2378
- var l = a.length;
2379
- if (l === 5) return a + ":00";
2380
- if (l === 8) return a;
2381
- return undefined;
2382
- }, function (a) {
2383
- return a ? a.substring(0, 5) : "";
2384
- }];
2385
- case exports.FieldType.Double:
2386
- return ["number", function (a) {
2387
- return a !== "" ? parseFloat(a) : null;
2388
- }, function (a) {
2389
- return a == null ? "" : a;
2390
- }];
2391
- default:
2392
- return ["text", function (a) {
2393
- return a;
2394
- }, function (a) {
2395
- return a;
2396
- }];
2397
- }
2398
- }
2399
-
2400
- function createDefaultArrayDataRenderer(defaultActions) {
2401
- return createDataRenderer(function (_ref, renderers) {
2402
- var definition = _ref.definition,
2403
- control = _ref.control,
2404
- required = _ref.required,
2405
- field = _ref.field,
2406
- renderChild = _ref.renderChild,
2407
- parentContext = _ref.parentContext,
2408
- className = _ref.className,
2409
- style = _ref.style,
2410
- renderOptions = _ref.renderOptions;
2411
- var _mergeObjects = mergeObjects(isArrayRenderer(renderOptions) ? renderOptions : {}, defaultActions),
2412
- addText = _mergeObjects.addText,
2413
- noAdd = _mergeObjects.noAdd,
2414
- noRemove = _mergeObjects.noRemove,
2415
- removeText = _mergeObjects.removeText;
2416
- var childOptions = isArrayRenderer(renderOptions) ? renderOptions.childOptions : undefined;
2417
- var arrayProps = _extends({}, createArrayActions(control, field, {
2418
- addText: addText,
2419
- removeText: removeText,
2420
- noAdd: noAdd,
2421
- noRemove: noRemove
2422
- }), {
2423
- required: required,
2424
- renderElement: function renderElement(i) {
2425
- var _control$elements$i$u, _control$elements;
2426
- return renderChild((_control$elements$i$u = (_control$elements = control.elements) == null ? void 0 : _control$elements[i].uniqueId) != null ? _control$elements$i$u : i, {
2427
- type: exports.ControlDefinitionType.Data,
2428
- field: definition.field,
2429
- children: definition.children,
2430
- renderOptions: childOptions != null ? childOptions : {
2431
- type: exports.DataRenderType.Standard
2432
- },
2433
- hideTitle: true
2434
- }, {
2435
- elementIndex: i,
2436
- dataContext: parentContext
2437
- });
2438
- },
2439
- className: cc(className),
2440
- style: style
2441
- }, getLengthRestrictions(definition));
2442
- return renderers.renderArray(arrayProps);
2443
- });
2444
- }
2445
- function createDefaultArrayRenderer(options) {
2446
- return {
2447
- render: function render(props, _ref2) {
2448
- var renderAction = _ref2.renderAction;
2449
- return /*#__PURE__*/React__default["default"].createElement(DefaultArrayRenderer, _extends({}, props, options, {
2450
- renderAction: renderAction
2451
- }));
2452
- },
2453
- type: "array"
2454
- };
2455
- }
2456
- function DefaultArrayRenderer(props) {
2457
- var _effect = core.useComponentTracking();
2458
- try {
2459
- var renderElement = props.renderElement,
2460
- className = props.className,
2461
- removableClass = props.removableClass,
2462
- childClass = props.childClass,
2463
- removableChildClass = props.removableChildClass,
2464
- removeActionClass = props.removeActionClass,
2465
- addActionClass = props.addActionClass,
2466
- arrayControl = props.arrayControl,
2467
- renderAction = props.renderAction,
2468
- style = props.style;
2469
- var _applyArrayLengthRest = applyArrayLengthRestrictions(props),
2470
- addAction = _applyArrayLengthRest.addAction,
2471
- removeAction = _applyArrayLengthRest.removeAction;
2472
- return /*#__PURE__*/React__default["default"].createElement("div", {
2473
- style: style
2474
- }, /*#__PURE__*/React__default["default"].createElement("div", {
2475
- className: clsx__default["default"](className, removeAction && removableClass)
2476
- }, /*#__PURE__*/React__default["default"].createElement(core.RenderElements, {
2477
- control: arrayControl
2478
- }, function (_, x) {
2479
- return removeAction ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
2480
- className: clsx__default["default"](childClass, removableChildClass)
2481
- }, renderElement(x)), /*#__PURE__*/React__default["default"].createElement("div", {
2482
- className: removeActionClass
2483
- }, renderAction(removeAction(x)))) : /*#__PURE__*/React__default["default"].createElement("div", {
2484
- className: childClass
2485
- }, renderElement(x));
2486
- })), addAction && /*#__PURE__*/React__default["default"].createElement("div", {
2487
- className: addActionClass
2488
- }, renderAction(addAction)));
2489
- } finally {
2490
- _effect();
2491
- }
2492
- }
2493
-
2494
- function createRadioRenderer(options) {
2495
- if (options === void 0) {
2496
- options = {};
2497
- }
2498
- return createDataRenderer(function (p) {
2499
- return /*#__PURE__*/React__default["default"].createElement(CheckButtons, _extends({}, options, p, {
2500
- className: rendererClass(p.className, options.className),
2501
- isChecked: function isChecked(control, o) {
2502
- return control.value == o.value;
2503
- },
2504
- setChecked: function setChecked(c, o) {
2505
- return c.value = o.value;
2506
- },
2507
- control: p.control,
2508
- type: "radio"
2509
- }));
2510
- }, {
2511
- renderType: exports.DataRenderType.Radio
2512
- });
2513
- }
2514
- function createCheckListRenderer(options) {
2515
- if (options === void 0) {
2516
- options = {};
2517
- }
2518
- return createDataRenderer(function (p) {
2519
- return /*#__PURE__*/React__default["default"].createElement(CheckButtons, _extends({}, options, p, {
2520
- className: rendererClass(p.className, options.className),
2521
- isChecked: function isChecked(control, o) {
2522
- var v = control.value;
2523
- return Array.isArray(v) ? v.includes(o.value) : false;
2524
- },
2525
- setChecked: function setChecked(c, o, checked) {
2526
- c.setValue(function (x) {
2527
- return setIncluded(x != null ? x : [], o.value, checked);
2528
- });
2529
- },
2530
- control: p.control,
2531
- type: "checkbox"
2532
- }));
2533
- }, {
2534
- collection: true,
2535
- renderType: exports.DataRenderType.CheckList
2536
- });
2537
- }
2538
- function CheckButtons(_ref) {
2539
- var _effect = core.useComponentTracking();
2540
- try {
2541
- var control = _ref.control,
2542
- options = _ref.options,
2543
- labelClass = _ref.labelClass,
2544
- checkClass = _ref.checkClass,
2545
- readonly = _ref.readonly,
2546
- entryClass = _ref.entryClass,
2547
- className = _ref.className,
2548
- id = _ref.id,
2549
- type = _ref.type,
2550
- isChecked = _ref.isChecked,
2551
- setChecked = _ref.setChecked;
2552
- var disabled = control.disabled;
2553
- var name = "r" + control.uniqueId;
2554
- return /*#__PURE__*/React__default["default"].createElement("div", {
2555
- className: className,
2556
- id: id
2557
- }, /*#__PURE__*/React__default["default"].createElement(core.RenderArrayElements, {
2558
- array: options == null ? void 0 : options.filter(function (x) {
2559
- return x.value != null;
2560
- })
2561
- }, function (o, i) {
2562
- var checked = core.useComputed(function () {
2563
- return isChecked(control, o);
2564
- }).value;
2565
- return /*#__PURE__*/React__default["default"].createElement("div", {
2566
- key: i,
2567
- className: entryClass
2568
- }, /*#__PURE__*/React__default["default"].createElement("input", {
2569
- id: name + "_" + i,
2570
- className: checkClass,
2571
- type: type,
2572
- name: name,
2573
- readOnly: readonly,
2574
- disabled: disabled,
2575
- checked: checked,
2576
- onChange: function onChange(x) {
2577
- !readonly && setChecked(control, o, x.target.checked);
2578
- }
2579
- }), /*#__PURE__*/React__default["default"].createElement("label", {
2580
- className: labelClass,
2581
- htmlFor: name + "_" + i
2582
- }, o.name));
2583
- }));
2584
- } finally {
2585
- _effect();
2586
- }
2587
- }
2588
- function setIncluded(array, elem, included) {
2589
- var already = array.includes(elem);
2590
- if (included === already) {
2591
- return array;
2592
- }
2593
- if (included) {
2594
- return [].concat(array, [elem]);
2595
- }
2596
- return array.filter(function (e) {
2597
- return e !== elem;
2598
- });
2599
- }
2600
- function createCheckboxRenderer(options) {
2601
- if (options === void 0) {
2602
- options = {};
2603
- }
2604
- return createDataRenderer(function (props, renderer) {
2605
- return function (p) {
2606
- return _extends({}, p, {
2607
- label: undefined,
2608
- children: /*#__PURE__*/React__default["default"].createElement("div", {
2609
- className: rendererClass(props.className, options.entryClass)
2610
- }, /*#__PURE__*/React__default["default"].createElement(core.Fcheckbox, {
2611
- id: props.id,
2612
- control: props.control,
2613
- style: props.style,
2614
- className: options.checkClass
2615
- }), p.label && renderer.renderLabel(p.label, undefined, undefined))
2616
- });
2617
- };
2618
- }, {
2619
- renderType: exports.DataRenderType.Checkbox
2620
- });
2621
- }
2622
-
2623
- function DefaultAccordion(_ref) {
2624
- var _effect = core.useComponentTracking();
2625
- try {
2626
- var children = _ref.children,
2627
- accordion = _ref.accordion,
2628
- contentStyle = _ref.contentStyle,
2629
- contentClassName = _ref.contentClassName,
2630
- designMode = _ref.designMode,
2631
- iconOpenClass = _ref.iconOpenClass,
2632
- iconClosedClass = _ref.iconClosedClass,
2633
- className = _ref.className,
2634
- _ref$renderTitle = _ref.renderTitle,
2635
- renderTitle = _ref$renderTitle === void 0 ? function (t) {
2636
- return t;
2637
- } : _ref$renderTitle,
2638
- renderToggler = _ref.renderToggler,
2639
- renderers = _ref.renderers,
2640
- titleClass = _ref.titleClass;
2641
- var open = core.useControl(!!accordion.defaultExpanded);
2642
- var isOpen = open.value;
2643
- var fullContentStyle = isOpen || designMode ? contentStyle : _extends({}, contentStyle, {
2644
- display: "none"
2645
- });
2646
- var title = renderers.renderLabelText(renderTitle(accordion.title, open));
2647
- var toggler = renderToggler ? renderToggler(open, title) : /*#__PURE__*/React__default["default"].createElement("button", {
2648
- className: className,
2649
- onClick: function onClick() {
2650
- return open.setValue(function (x) {
2651
- return !x;
2652
- });
2653
- }
2654
- }, /*#__PURE__*/React__default["default"].createElement("label", {
2655
- className: titleClass
2656
- }, title), /*#__PURE__*/React__default["default"].createElement("i", {
2657
- className: clsx__default["default"](isOpen ? iconOpenClass : iconClosedClass)
2658
- }));
2659
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, toggler, /*#__PURE__*/React__default["default"].createElement("div", {
2660
- style: fullContentStyle,
2661
- className: contentClassName
2662
- }, children));
2663
- } finally {
2664
- _effect();
2665
- }
2666
- }
2667
-
2668
- var _excluded = ["control", "field", "renderOptions"];
2669
- function createNullToggleRenderer() {
2670
- return createDataRenderer(function (_ref, renderers) {
2671
- var _control$meta, _nullControl, _control$meta$_nullCo;
2672
- var control = _ref.control,
2673
- field = _ref.field,
2674
- props = _objectWithoutPropertiesLoose(_ref, _excluded);
2675
- var nullControl = (_control$meta$_nullCo = (_control$meta = control.meta)[_nullControl = "nullControl"]) != null ? _control$meta$_nullCo : _control$meta[_nullControl] = core.newControl(control.current.value != null);
2676
- return function (layout) {
2677
- var newLayout = renderers.renderData(_extends({}, props, {
2678
- control: nullControl,
2679
- field: _extends({}, field, {
2680
- type: exports.FieldType.Bool
2681
- }),
2682
- renderOptions: {
2683
- type: exports.DataRenderType.Checkbox
2684
- }
2685
- }))(layout);
2686
- return _extends({}, newLayout, {
2687
- children: /*#__PURE__*/React__default["default"].createElement(NullWrapper, {
2688
- control: control,
2689
- nullControl: nullControl,
2690
- children: newLayout.children,
2691
- readonly: props.readonly,
2692
- defaultValue: props.definition.defaultValue
2693
- })
2694
- });
2695
- };
2696
- });
2697
- }
2698
- function NullWrapper(_ref2) {
2699
- var children = _ref2.children,
2700
- nullControl = _ref2.nullControl,
2701
- control = _ref2.control,
2702
- defaultValue = _ref2.defaultValue,
2703
- readonly = _ref2.readonly;
2704
- core.useControlEffect(function () {
2705
- return readonly;
2706
- }, function (r) {
2707
- return nullControl.disabled = r;
2708
- }, true);
2709
- core.useControlEffect(function () {
2710
- return nullControl.value;
2711
- }, function (e) {
2712
- if (e) {
2713
- var _nullControl$meta$non;
2714
- control.value = (_nullControl$meta$non = nullControl.meta["nonNullValue"]) != null ? _nullControl$meta$non : defaultValue;
2715
- } else {
2716
- nullControl.meta["nonNullValue"] = control.value;
2717
- control.value = null;
2718
- }
2719
- });
2720
- return children;
2721
- }
2722
-
2723
- function createMultilineFieldRenderer(className) {
2724
- return createDataRenderer(function (p) {
2725
- return /*#__PURE__*/React__default["default"].createElement(MultilineTextfield, _extends({}, p, {
2726
- className: rendererClass(p.className, className)
2727
- }));
2728
- });
2729
- }
2730
- function MultilineTextfield(_ref) {
2731
- var _effect = core.useComponentTracking();
2732
- try {
2733
- var control = _ref.control,
2734
- className = _ref.className;
2735
- var codeRef = React.useRef(null);
2736
- core.useControlEffect(function () {
2737
- return control.value;
2738
- }, function (v) {
2739
- var c = codeRef.current;
2740
- if (c && c.textContent !== v) {
2741
- c.textContent = v;
2742
- }
2743
- }, true);
2744
- return /*#__PURE__*/React__default["default"].createElement("code", {
2745
- contentEditable: !control.disabled,
2746
- className: className,
2747
- onInput: function onInput(t) {
2748
- return control.value = t.currentTarget.textContent;
2749
- },
2750
- ref: codeRef
2751
- });
2752
- } finally {
2753
- _effect();
2754
- }
2755
- }
2756
-
2757
- function createJsonataRenderer(className) {
2758
- return createDataRenderer(function (p) {
2759
- return /*#__PURE__*/React__default["default"].createElement(JsonataRenderer, {
2760
- renderOptions: p.renderOptions,
2761
- className: rendererClass(p.className, className),
2762
- dataContext: p.dataContext,
2763
- control: p.control,
2764
- readonly: p.readonly
2765
- });
2766
- }, {
2767
- renderType: exports.DataRenderType.Jsonata
2768
- });
2769
- }
2770
- function JsonataRenderer(_ref) {
2771
- var _effect = core.useComponentTracking();
2772
- try {
2773
- var control = _ref.control,
2774
- expression = _ref.renderOptions.expression,
2775
- readonly = _ref.readonly,
2776
- className = _ref.className,
2777
- dataContext = _ref.dataContext;
2778
- var rendered = useJsonataExpression(expression, dataContext, function () {
2779
- return {
2780
- value: control.value,
2781
- readonly: readonly,
2782
- disabled: control.disabled
2783
- };
2784
- }, function (v) {
2785
- return typeof v == null ? "" : typeof v === "object" ? "error: " + JSON.stringify(v) : v.toString();
2786
- });
2787
- return /*#__PURE__*/React__default["default"].createElement("div", {
2788
- className: className,
2789
- dangerouslySetInnerHTML: {
2790
- __html: rendered.value
2791
- }
2792
- });
2793
- } finally {
2794
- _effect();
2795
- }
2796
- }
2797
-
2798
- function createButtonActionRenderer(actionId, options) {
2799
- if (options === void 0) {
2800
- options = {};
2801
- }
2802
- return createActionRenderer(actionId, function (_ref) {
2803
- var _options$renderConten;
2804
- var onClick = _ref.onClick,
2805
- actionText = _ref.actionText,
2806
- className = _ref.className,
2807
- style = _ref.style,
2808
- actionId = _ref.actionId,
2809
- actionData = _ref.actionData;
2810
- return /*#__PURE__*/React__default["default"].createElement("button", {
2811
- className: rendererClass(className, options.className),
2812
- style: style,
2813
- onClick: onClick
2814
- }, (_options$renderConten = options.renderContent == null ? void 0 : options.renderContent(actionText, actionId, actionData)) != null ? _options$renderConten : actionText);
2815
- });
2816
- }
2817
- function createDefaultGroupRenderer(options) {
2818
- var _ref2 = options != null ? options : {},
2819
- className = _ref2.className,
2820
- _ref2$gridStyles = _ref2.gridStyles,
2821
- gridStyles = _ref2$gridStyles === void 0 ? defaultGridStyles : _ref2$gridStyles,
2822
- _ref2$defaultGridColu = _ref2.defaultGridColumns,
2823
- defaultGridColumns = _ref2$defaultGridColu === void 0 ? 2 : _ref2$defaultGridColu,
2824
- gridClassName = _ref2.gridClassName,
2825
- standardClassName = _ref2.standardClassName,
2826
- flexClassName = _ref2.flexClassName,
2827
- defaultFlexGap = _ref2.defaultFlexGap;
2828
- function defaultGridStyles(_ref3) {
2829
- var _ref3$columns = _ref3.columns,
2830
- columns = _ref3$columns === void 0 ? defaultGridColumns : _ref3$columns;
2831
- return {
2832
- className: gridClassName,
2833
- style: {
2834
- display: "grid",
2835
- gridTemplateColumns: "repeat(" + columns + ", 1fr)"
2836
- }
2837
- };
2838
- }
2839
- function flexStyles(options) {
2840
- return {
2841
- className: flexClassName,
2842
- style: {
2843
- display: "flex",
2844
- gap: options.gap ? options.gap : defaultFlexGap,
2845
- flexDirection: options.direction ? options.direction : undefined
2846
- }
2847
- };
2848
- }
2849
- function render(props) {
2850
- var renderChild = props.renderChild,
2851
- renderOptions = props.renderOptions,
2852
- childDefinitions = props.childDefinitions;
2853
- var _ref4 = isGridRenderer(renderOptions) ? gridStyles(renderOptions) : isFlexRenderer(renderOptions) ? flexStyles(renderOptions) : {
2854
- className: standardClassName
2855
- },
2856
- style = _ref4.style,
2857
- gcn = _ref4.className;
2858
- return function (cp) {
2859
- return _extends({}, cp, {
2860
- children: /*#__PURE__*/React__default["default"].createElement("div", {
2861
- className: rendererClass(props.className, clsx__default["default"](className, gcn)),
2862
- style: style
2863
- }, childDefinitions == null ? void 0 : childDefinitions.map(function (c, i) {
2864
- return renderChild(i, c);
2865
- }))
2866
- });
2867
- };
2868
- }
2869
- return {
2870
- type: "group",
2871
- render: render
2872
- };
2873
- }
2874
- var DefaultBoolOptions = [{
2875
- name: "Yes",
2876
- value: true
2877
- }, {
2878
- name: "No",
2879
- value: false
2880
- }];
2881
- function createDefaultDataRenderer(options) {
2882
- var _options$checkOptions, _options$radioOptions, _options$checkListOpt;
2883
- if (options === void 0) {
2884
- options = {};
2885
- }
2886
- var jsonataRenderer = createJsonataRenderer(options.jsonataClass);
2887
- var nullToggler = createNullToggleRenderer();
2888
- var multilineRenderer = createMultilineFieldRenderer(options.multilineClass);
2889
- var checkboxRenderer = createCheckboxRenderer((_options$checkOptions = options.checkOptions) != null ? _options$checkOptions : options.checkboxOptions);
2890
- var selectRenderer = createSelectRenderer(options.selectOptions);
2891
- var radioRenderer = createRadioRenderer((_options$radioOptions = options.radioOptions) != null ? _options$radioOptions : options.checkOptions);
2892
- var checkListRenderer = createCheckListRenderer((_options$checkListOpt = options.checkListOptions) != null ? _options$checkListOpt : options.checkOptions);
2893
- var _optionRenderer$boole = _extends({
2894
- optionRenderer: selectRenderer,
2895
- booleanOptions: DefaultBoolOptions
2896
- }, options),
2897
- inputClass = _optionRenderer$boole.inputClass,
2898
- booleanOptions = _optionRenderer$boole.booleanOptions,
2899
- optionRenderer = _optionRenderer$boole.optionRenderer,
2900
- displayOnlyClass = _optionRenderer$boole.displayOnlyClass;
2901
- var arrayRenderer = createDefaultArrayDataRenderer(options.arrayOptions);
2902
- return createDataRenderer(function (props, renderers) {
2903
- var field = props.field;
2904
- var fieldType = field.type;
2905
- var renderOptions = props.renderOptions;
2906
- var renderType = renderOptions.type;
2907
- if (field.collection && props.elementIndex == null && renderType == exports.DataRenderType.Standard) {
2908
- return arrayRenderer.render(props, renderers);
2909
- }
2910
- if (fieldType === exports.FieldType.Compound) {
2911
- var _ref5;
2912
- var groupOptions = (_ref5 = isDataGroupRenderer(renderOptions) ? renderOptions.groupOptions : undefined) != null ? _ref5 : {
2913
- type: "Standard",
2914
- hideTitle: true
2915
- };
2916
- return renderers.renderGroup(_extends({}, props, {
2917
- renderOptions: groupOptions
2918
- }));
2919
- }
2920
- if (fieldType == exports.FieldType.Any) return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, "No control for Any");
2921
- if (isDisplayOnlyRenderer(renderOptions)) return function (p) {
2922
- return _extends({}, p, {
2923
- className: displayOnlyClass,
2924
- children: /*#__PURE__*/React__default["default"].createElement(DefaultDisplayOnly, {
2925
- field: props.field,
2926
- schemaInterface: props.dataContext.schemaInterface,
2927
- control: props.control,
2928
- className: props.className,
2929
- style: props.style,
2930
- emptyText: renderOptions.emptyText
2931
- })
2932
- });
2933
- };
2934
- var isBool = fieldType === exports.FieldType.Bool;
2935
- if (booleanOptions != null && isBool && props.options == null) {
2936
- return renderers.renderData(_extends({}, props, {
2937
- options: booleanOptions
2938
- }));
2939
- }
2940
- if (renderType === exports.DataRenderType.Standard && hasOptions(props)) {
2941
- return optionRenderer.render(props, renderers);
2942
- }
2943
- switch (renderType) {
2944
- case exports.DataRenderType.NullToggle:
2945
- return nullToggler.render(props, renderers);
2946
- case exports.DataRenderType.CheckList:
2947
- return checkListRenderer.render(props, renderers);
2948
- case exports.DataRenderType.Dropdown:
2949
- return selectRenderer.render(props, renderers);
2950
- case exports.DataRenderType.Radio:
2951
- return radioRenderer.render(props, renderers);
2952
- case exports.DataRenderType.Checkbox:
2953
- return checkboxRenderer.render(props, renderers);
2954
- case exports.DataRenderType.Jsonata:
2955
- return jsonataRenderer.render(props, renderers);
2956
- }
2957
- if (isTextfieldRenderer(renderOptions) && renderOptions.multiline) return multilineRenderer.render(props, renderers);
2958
- var placeholder = isTextfieldRenderer(renderOptions) ? renderOptions.placeholder : undefined;
2959
- return /*#__PURE__*/React__default["default"].createElement(ControlInput, {
2960
- className: rendererClass(props.className, inputClass),
2961
- style: props.style,
2962
- id: props.id,
2963
- readOnly: props.readonly,
2964
- control: props.control,
2965
- placeholder: placeholder != null ? placeholder : undefined,
2966
- convert: createInputConversion(props.field.type)
2967
- });
2968
- });
2969
- }
2970
- function createDefaultAdornmentRenderer(options) {
2971
- if (options === void 0) {
2972
- options = {};
2973
- }
2974
- return {
2975
- type: "adornment",
2976
- render: function render(_ref6, renderers) {
2977
- var adornment = _ref6.adornment,
2978
- designMode = _ref6.designMode,
2979
- parentContext = _ref6.parentContext,
2980
- useExpr = _ref6.useExpr;
2981
- return {
2982
- apply: function apply(rl) {
2983
- if (isSetFieldAdornment(adornment) && useExpr) {
2984
- var setFieldWrapper = function setFieldWrapper(_ref7) {
2985
- var children = _ref7.children,
2986
- adornment = _ref7.adornment,
2987
- parentContext = _ref7.parentContext;
2988
- var _dynamicHooks = dynamicHooks(parentContext),
2989
- value = _dynamicHooks.value;
2990
- var refField = findFieldPath(parentContext.fields, adornment.field);
2991
- var otherField = refField ? lookupChildControl(parentContext, refField) : undefined;
2992
- var always = !adornment.defaultOnly;
2993
- core.useControlEffect(function () {
2994
- return [value == null ? void 0 : value.value, (otherField == null ? void 0 : otherField.value) == null];
2995
- }, function (_ref8) {
2996
- var v = _ref8[0];
2997
- otherField == null || otherField.setValue(function (x) {
2998
- return always || x == null ? v : x;
2999
- });
3000
- }, true);
3001
- return children;
3002
- };
3003
- var hook = useExpr(adornment.expression, function (x) {
3004
- return x;
3005
- });
3006
- var dynamicHooks = useDynamicHooks({
3007
- value: hook
3008
- });
3009
- var SetFieldWrapper = React.useCallback(setFieldWrapper, [dynamicHooks]);
3010
- return wrapLayout(function (x) {
3011
- return /*#__PURE__*/React__default["default"].createElement(SetFieldWrapper, {
3012
- children: x,
3013
- parentContext: parentContext,
3014
- adornment: adornment
3015
- });
3016
- })(rl);
3017
- }
3018
- if (isIconAdornment(adornment)) {
3019
- var _adornment$placement;
3020
- return appendMarkupAt((_adornment$placement = adornment.placement) != null ? _adornment$placement : exports.AdornmentPlacement.ControlStart, /*#__PURE__*/React__default["default"].createElement("i", {
3021
- className: adornment.iconClass
3022
- }))(rl);
3023
- }
3024
- if (isAccordionAdornment(adornment)) {
3025
- return wrapLayout(function (x) {
3026
- return /*#__PURE__*/React__default["default"].createElement(DefaultAccordion, _extends({
3027
- renderers: renderers,
3028
- children: x,
3029
- accordion: adornment,
3030
- contentStyle: rl.style,
3031
- contentClassName: rl.className,
3032
- designMode: designMode
3033
- }, options.accordion));
3034
- })(rl);
3035
- }
3036
- },
3037
- priority: 0,
3038
- adornment: adornment
3039
- };
3040
- }
3041
- };
3042
- }
3043
- function createDefaultLayoutRenderer(options) {
3044
- if (options === void 0) {
3045
- options = {};
3046
- }
3047
- return createLayoutRenderer(function (props, renderers) {
3048
- var layout = renderLayoutParts(_extends({}, props, {
3049
- className: rendererClass(props.className, options.className)
3050
- }), renderers);
3051
- return {
3052
- children: layout.wrapLayout( /*#__PURE__*/React__default["default"].createElement(DefaultLayout, _extends({
3053
- layout: layout
3054
- }, options))),
3055
- className: layout.className,
3056
- style: layout.style,
3057
- divRef: function divRef(e) {
3058
- return e && props.errorControl ? props.errorControl.meta.scrollElement = e : undefined;
3059
- }
3060
- };
3061
- });
3062
- }
3063
- function createDefaultLabelRenderer(options) {
3064
- var _requiredElement$labe = _extends({
3065
- requiredElement: /*#__PURE__*/React__default["default"].createElement("span", null, " *"),
3066
- labelContainer: function labelContainer(c) {
3067
- return c;
3068
- }
3069
- }, options),
3070
- className = _requiredElement$labe.className,
3071
- groupLabelClass = _requiredElement$labe.groupLabelClass,
3072
- controlLabelClass = _requiredElement$labe.controlLabelClass,
3073
- requiredElement = _requiredElement$labe.requiredElement,
3074
- labelContainer = _requiredElement$labe.labelContainer;
3075
- return {
3076
- render: function render(props, labelStart, labelEnd, renderers) {
3077
- if (props.type == exports.LabelType.Text) return props.label;
3078
- return labelContainer( /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("label", {
3079
- htmlFor: props.forId,
3080
- className: rendererClass(props.className, clsx__default["default"](className, props.type === exports.LabelType.Group && groupLabelClass, props.type === exports.LabelType.Control && controlLabelClass))
3081
- }, labelStart, renderers.renderLabelText(props.label), props.required && requiredElement), labelEnd));
3082
- },
3083
- type: "label"
3084
- };
3085
- }
3086
- function createDefaultRenderers(options) {
3087
- if (options === void 0) {
3088
- options = {};
3089
- }
3090
- return {
3091
- data: createDefaultDataRenderer(options.data),
3092
- display: createDefaultDisplayRenderer(options.display),
3093
- action: createButtonActionRenderer(undefined, options.action),
3094
- array: createDefaultArrayRenderer(options.array),
3095
- group: createDefaultGroupRenderer(options.group),
3096
- label: createDefaultLabelRenderer(options.label),
3097
- adornment: createDefaultAdornmentRenderer(options.adornment),
3098
- renderLayout: createDefaultLayoutRenderer(options.layout),
3099
- visibility: createDefaultVisibilityRenderer()
3100
- };
3101
- }
3102
-
3103
- function createFormRenderer(customRenderers, defaultRenderers) {
3104
- var _customRenderers$find;
3105
- if (customRenderers === void 0) {
3106
- customRenderers = [];
3107
- }
3108
- if (defaultRenderers === void 0) {
3109
- defaultRenderers = createClassStyledRenderers();
3110
- }
3111
- var dataRegistrations = customRenderers.filter(isDataRegistration);
3112
- var groupRegistrations = customRenderers.filter(isGroupRegistration);
3113
- var adornmentRegistrations = customRenderers.filter(isAdornmentRegistration);
3114
- var displayRegistrations = customRenderers.filter(isDisplayRegistration);
3115
- var labelRenderers = customRenderers.filter(isLabelRegistration);
3116
- var arrayRenderers = customRenderers.filter(isArrayRegistration);
3117
- var actionRenderers = customRenderers.filter(isActionRegistration);
3118
- var layoutRenderers = customRenderers.filter(isLayoutRegistration);
3119
- var visibilityRenderer = (_customRenderers$find = customRenderers.find(isVisibilityRegistration)) != null ? _customRenderers$find : defaultRenderers.visibility;
3120
- var formRenderers = {
3121
- renderAction: renderAction,
3122
- renderData: renderData,
3123
- renderGroup: renderGroup,
3124
- renderDisplay: renderDisplay,
3125
- renderLabel: renderLabel,
3126
- renderArray: renderArray,
3127
- renderAdornment: renderAdornment,
3128
- renderLayout: renderLayout,
3129
- renderVisibility: visibilityRenderer.render,
3130
- renderLabelText: renderLabelText
3131
- };
3132
- function renderLabelText(label) {
3133
- return renderLabel({
3134
- label: label,
3135
- type: exports.LabelType.Text
3136
- }, undefined, undefined);
3137
- }
3138
- function renderLayout(props) {
3139
- var _layoutRenderers$find;
3140
- var renderer = (_layoutRenderers$find = layoutRenderers.find(function (x) {
3141
- return !x.match || x.match(props);
3142
- })) != null ? _layoutRenderers$find : defaultRenderers.renderLayout;
3143
- return renderer.render(props, formRenderers);
3144
- }
3145
- function renderAdornment(props) {
3146
- var _adornmentRegistratio;
3147
- var renderer = (_adornmentRegistratio = adornmentRegistrations.find(function (x) {
3148
- return isOneOf(x.adornmentType, props.adornment.type);
3149
- })) != null ? _adornmentRegistratio : defaultRenderers.adornment;
3150
- return renderer.render(props, formRenderers);
3151
- }
3152
- function renderArray(props) {
3153
- var _arrayRenderers$;
3154
- return ((_arrayRenderers$ = arrayRenderers[0]) != null ? _arrayRenderers$ : defaultRenderers.array).render(props, formRenderers);
3155
- }
3156
- function renderLabel(props, labelStart, labelEnd) {
3157
- var _labelRenderers$find;
3158
- var renderer = (_labelRenderers$find = labelRenderers.find(function (x) {
3159
- return isOneOf(x.labelType, props.type);
3160
- })) != null ? _labelRenderers$find : defaultRenderers.label;
3161
- return renderer.render(props, labelStart, labelEnd, formRenderers);
3162
- }
3163
- function renderData(props) {
3164
- var _dataRegistrations$fi;
3165
- var renderType = props.renderOptions.type,
3166
- field = props.field;
3167
- var options = hasOptions(props);
3168
- var renderer = (_dataRegistrations$fi = dataRegistrations.find(function (x) {
3169
- var _x$collection, _field$collection, _x$options;
3170
- return ((_x$collection = x.collection) != null ? _x$collection : false) === (props.elementIndex == null && ((_field$collection = field.collection) != null ? _field$collection : false)) && ((_x$options = x.options) != null ? _x$options : false) === options && (x.schemaType && renderType == exports.DataRenderType.Standard && isOneOf(x.schemaType, field.type) || x.renderType && isOneOf(x.renderType, renderType) || x.match && x.match(props));
3171
- })) != null ? _dataRegistrations$fi : defaultRenderers.data;
3172
- var result = renderer.render(props, formRenderers);
3173
- if (typeof result === "function") return result;
3174
- return function (l) {
3175
- return _extends({}, l, {
3176
- children: result
3177
- });
3178
- };
3179
- }
3180
- function renderGroup(props) {
3181
- var _groupRegistrations$f;
3182
- var renderType = props.renderOptions.type;
3183
- var renderer = (_groupRegistrations$f = groupRegistrations.find(function (x) {
3184
- return isOneOf(x.renderType, renderType);
3185
- })) != null ? _groupRegistrations$f : defaultRenderers.group;
3186
- var result = renderer.render(props, formRenderers);
3187
- if (typeof result === "function") return result;
3188
- return function (l) {
3189
- return _extends({}, l, {
3190
- children: result
3191
- });
3192
- };
3193
- }
3194
- function renderAction(props) {
3195
- var _actionRenderers$find;
3196
- var renderer = (_actionRenderers$find = actionRenderers.find(function (x) {
3197
- return isOneOf(x.actionType, props.actionId);
3198
- })) != null ? _actionRenderers$find : defaultRenderers.action;
3199
- return renderer.render(props, formRenderers);
3200
- }
3201
- function renderDisplay(props) {
3202
- var _displayRegistrations;
3203
- var renderType = props.data.type;
3204
- var renderer = (_displayRegistrations = displayRegistrations.find(function (x) {
3205
- return isOneOf(x.renderType, renderType);
3206
- })) != null ? _displayRegistrations : defaultRenderers.display;
3207
- return renderer.render(props, formRenderers);
3208
- }
3209
- return formRenderers;
3210
- }
3211
- function createClassStyledRenderers() {
3212
- return createDefaultRenderers({
3213
- layout: {
3214
- className: "control"
3215
- },
3216
- group: {
3217
- className: "group"
3218
- },
3219
- array: {
3220
- className: "control-array"
3221
- },
3222
- action: {
3223
- className: "action"
3224
- },
3225
- data: {
3226
- inputClass: "data"
3227
- },
3228
- display: {
3229
- htmlClassName: "html",
3230
- textClassName: "text"
3231
- }
3232
- });
3233
- }
3234
- function isOneOf(x, v) {
3235
- return x == null ? true : Array.isArray(x) ? x.includes(v) : v === x;
3236
- }
3237
- function isAdornmentRegistration(x) {
3238
- return x.type === "adornment";
3239
- }
3240
- function isDataRegistration(x) {
3241
- return x.type === "data";
3242
- }
3243
- function isGroupRegistration(x) {
3244
- return x.type === "group";
3245
- }
3246
- function isLabelRegistration(x) {
3247
- return x.type === "label";
3248
- }
3249
- function isLayoutRegistration(x) {
3250
- return x.type === "layout";
3251
- }
3252
- function isVisibilityRegistration(x) {
3253
- return x.type === "visibility";
3254
- }
3255
- function isActionRegistration(x) {
3256
- return x.type === "action";
3257
- }
3258
- function isDisplayRegistration(x) {
3259
- return x.type === "display";
3260
- }
3261
- function isArrayRegistration(x) {
3262
- return x.type === "array";
3263
- }
3264
-
3265
- exports.AppendAdornmentPriority = AppendAdornmentPriority;
3266
- exports.CheckButtons = CheckButtons;
3267
- exports.ControlInput = ControlInput;
3268
- exports.ControlRenderer = ControlRenderer;
3269
- exports.DefaultBoolOptions = DefaultBoolOptions;
3270
- exports.DefaultDisplay = DefaultDisplay;
3271
- exports.DefaultDisplayOnly = DefaultDisplayOnly;
3272
- exports.DefaultLayout = DefaultLayout;
3273
- exports.DefaultSchemaInterface = DefaultSchemaInterface;
3274
- exports.DefaultVisibility = DefaultVisibility;
3275
- exports.JsonataRenderer = JsonataRenderer;
3276
- exports.SelectDataRenderer = SelectDataRenderer;
3277
- exports.WrapAdornmentPriority = WrapAdornmentPriority;
3278
- exports.addFieldOption = addFieldOption;
3279
- exports.addMissingControls = addMissingControls;
3280
- exports.appendElementIndex = appendElementIndex;
3281
- exports.appendMarkup = appendMarkup;
3282
- exports.appendMarkupAt = appendMarkupAt;
3283
- exports.applyArrayLengthRestrictions = applyArrayLengthRestrictions;
3284
- exports.applyDefaultForField = applyDefaultForField;
3285
- exports.applyDefaultValues = applyDefaultValues;
3286
- exports.applyExtensionToSchema = applyExtensionToSchema;
3287
- exports.applyExtensionsToSchema = applyExtensionsToSchema;
3288
- exports.applyLengthRestrictions = applyLengthRestrictions;
3289
- exports.boolField = boolField;
3290
- exports.buildSchema = buildSchema;
3291
- exports.cleanDataForSchema = cleanDataForSchema;
3292
- exports.compoundControl = compoundControl;
3293
- exports.compoundField = compoundField;
3294
- exports.controlTitle = controlTitle;
3295
- exports.createAction = createAction;
3296
- exports.createActionRenderer = createActionRenderer;
3297
- exports.createAdornmentRenderer = createAdornmentRenderer;
3298
- exports.createArrayActions = createArrayActions;
3299
- exports.createArrayRenderer = createArrayRenderer;
3300
- exports.createButtonActionRenderer = createButtonActionRenderer;
3301
- exports.createCheckListRenderer = createCheckListRenderer;
3302
- exports.createCheckboxRenderer = createCheckboxRenderer;
3303
- exports.createDataRenderer = createDataRenderer;
3304
- exports.createDefaultAdornmentRenderer = createDefaultAdornmentRenderer;
3305
- exports.createDefaultDataRenderer = createDefaultDataRenderer;
3306
- exports.createDefaultDisplayRenderer = createDefaultDisplayRenderer;
3307
- exports.createDefaultGroupRenderer = createDefaultGroupRenderer;
3308
- exports.createDefaultLabelRenderer = createDefaultLabelRenderer;
3309
- exports.createDefaultRenderers = createDefaultRenderers;
3310
- exports.createDefaultVisibilityRenderer = createDefaultVisibilityRenderer;
3311
- exports.createDisplayRenderer = createDisplayRenderer;
3312
- exports.createFormRenderer = createFormRenderer;
3313
- exports.createGroupRenderer = createGroupRenderer;
3314
- exports.createInputConversion = createInputConversion;
3315
- exports.createJsonataRenderer = createJsonataRenderer;
3316
- exports.createLabelRenderer = createLabelRenderer;
3317
- exports.createLayoutRenderer = createLayoutRenderer;
3318
- exports.createNullToggleRenderer = createNullToggleRenderer;
3319
- exports.createRadioRenderer = createRadioRenderer;
3320
- exports.createSelectConversion = createSelectConversion;
3321
- exports.createSelectRenderer = createSelectRenderer;
3322
- exports.createVisibilityRenderer = createVisibilityRenderer;
3323
- exports.dataControl = dataControl;
3324
- exports.dateField = dateField;
3325
- exports.dateTimeField = dateTimeField;
3326
- exports.defaultCompoundField = defaultCompoundField;
3327
- exports.defaultControlForField = defaultControlForField;
3328
- exports.defaultDataProps = defaultDataProps;
3329
- exports.defaultEvalHooks = defaultEvalHooks;
3330
- exports.defaultScalarField = defaultScalarField;
3331
- exports.defaultSchemaInterface = defaultSchemaInterface;
3332
- exports.defaultTailwindTheme = defaultTailwindTheme;
3333
- exports.defaultUseEvalExpressionHook = defaultUseEvalExpressionHook;
3334
- exports.defaultValueForField = defaultValueForField;
3335
- exports.defaultValueForFields = defaultValueForFields;
3336
- exports.doubleField = doubleField;
3337
- exports.dynamicDefaultValue = dynamicDefaultValue;
3338
- exports.dynamicDisabled = dynamicDisabled;
3339
- exports.dynamicReadonly = dynamicReadonly;
3340
- exports.dynamicVisibility = dynamicVisibility;
3341
- exports.elementValueForField = elementValueForField;
3342
- exports.emptyGroupDefinition = emptyGroupDefinition;
3343
- exports.existsInGroups = existsInGroups;
3344
- exports.fieldDisplayName = fieldDisplayName;
3345
- exports.fieldEqExpr = fieldEqExpr;
3346
- exports.fieldHasTag = fieldHasTag;
3347
- exports.findChildDefinition = findChildDefinition;
3348
- exports.findCompoundField = findCompoundField;
3349
- exports.findCompoundGroups = findCompoundGroups;
3350
- exports.findControlsForCompound = findControlsForCompound;
3351
- exports.findField = findField;
3352
- exports.findFieldPath = findFieldPath;
3353
- exports.findNonDataGroups = findNonDataGroups;
3354
- exports.findScalarField = findScalarField;
3355
- exports.getAllReferencedClasses = getAllReferencedClasses;
3356
- exports.getControlData = getControlData;
3357
- exports.getDisplayOnlyOptions = getDisplayOnlyOptions;
3358
- exports.getLengthRestrictions = getLengthRestrictions;
3359
- exports.getOverrideClass = getOverrideClass;
3360
- exports.getTypeField = getTypeField;
3361
- exports.groupedControl = groupedControl;
3362
- exports.hasOptions = hasOptions;
3363
- exports.hideDisplayOnly = hideDisplayOnly;
3364
- exports.htmlDisplayControl = htmlDisplayControl;
3365
- exports.intField = intField;
3366
- exports.isAccordionAdornment = isAccordionAdornment;
3367
- exports.isActionControlsDefinition = isActionControlsDefinition;
3368
- exports.isArrayRenderer = isArrayRenderer;
3369
- exports.isCompoundField = isCompoundField;
3370
- exports.isControlDisabled = isControlDisabled;
3371
- exports.isControlReadonly = isControlReadonly;
3372
- exports.isDataControl = isDataControl;
3373
- exports.isDataControlDefinition = isDataControlDefinition;
3374
- exports.isDataGroupRenderer = isDataGroupRenderer;
3375
- exports.isDisplayControlsDefinition = isDisplayControlsDefinition;
3376
- exports.isDisplayOnlyRenderer = isDisplayOnlyRenderer;
3377
- exports.isFlexRenderer = isFlexRenderer;
3378
- exports.isGridRenderer = isGridRenderer;
3379
- exports.isGroupControl = isGroupControl;
3380
- exports.isGroupControlsDefinition = isGroupControlsDefinition;
3381
- exports.isIconAdornment = isIconAdornment;
3382
- exports.isScalarField = isScalarField;
3383
- exports.isSetFieldAdornment = isSetFieldAdornment;
3384
- exports.isTextfieldRenderer = isTextfieldRenderer;
3385
- exports.jsonPathString = jsonPathString;
3386
- exports.jsonataExpr = jsonataExpr;
3387
- exports.layoutKeyForPlacement = layoutKeyForPlacement;
3388
- exports.lookupChildControl = lookupChildControl;
3389
- exports.lookupChildControlPath = lookupChildControlPath;
3390
- exports.lookupSchemaField = lookupSchemaField;
3391
- exports.makeCompoundField = makeCompoundField;
3392
- exports.makeEvalExpressionHook = makeEvalExpressionHook;
3393
- exports.makeHook = makeHook;
3394
- exports.makeHookDepString = makeHookDepString;
3395
- exports.makeScalarField = makeScalarField;
3396
- exports.matchesType = matchesType;
3397
- exports.mergeField = mergeField;
3398
- exports.mergeFields = mergeFields;
3399
- exports.mergeObjects = mergeObjects;
3400
- exports.renderControlLayout = renderControlLayout;
3401
- exports.renderLayoutParts = renderLayoutParts;
3402
- exports.rendererClass = rendererClass;
3403
- exports.resolveSchemas = resolveSchemas;
3404
- exports.setIncluded = setIncluded;
3405
- exports.stringField = stringField;
3406
- exports.stringOptionsField = stringOptionsField;
3407
- exports.textDisplayControl = textDisplayControl;
3408
- exports.timeField = timeField;
3409
- exports.toDepString = toDepString;
3410
- exports.useControlDefinitionForSchema = useControlDefinitionForSchema;
3411
- exports.useControlRenderer = useControlRenderer;
3412
- exports.useDateValidator = useDateValidator;
3413
- exports.useDynamicHooks = useDynamicHooks;
3414
- exports.useEvalActionHook = useEvalActionHook;
3415
- exports.useEvalAllowedOptionsHook = useEvalAllowedOptionsHook;
3416
- exports.useEvalDefaultValueHook = useEvalDefaultValueHook;
3417
- exports.useEvalDisabledHook = useEvalDisabledHook;
3418
- exports.useEvalDisplayHook = useEvalDisplayHook;
3419
- exports.useEvalDynamicBoolHook = useEvalDynamicBoolHook;
3420
- exports.useEvalDynamicHook = useEvalDynamicHook;
3421
- exports.useEvalLabelText = useEvalLabelText;
3422
- exports.useEvalReadonlyHook = useEvalReadonlyHook;
3423
- exports.useEvalStyleHook = useEvalStyleHook;
3424
- exports.useEvalVisibilityHook = useEvalVisibilityHook;
3425
- exports.useJsonataExpression = useJsonataExpression;
3426
- exports.useJsonataValidator = useJsonataValidator;
3427
- exports.useLengthValidator = useLengthValidator;
3428
- exports.useMakeValidationHook = useMakeValidationHook;
3429
- exports.useUpdatedRef = useUpdatedRef;
3430
- exports.useUuidExpression = useUuidExpression;
3431
- exports.visitControlData = visitControlData;
3432
- exports.visitControlDataArray = visitControlDataArray;
3433
- exports.visitControlDefinition = visitControlDefinition;
3434
- exports.watchControlLookup = watchControlLookup;
3435
- exports.withScalarOptions = withScalarOptions;
3436
- exports.wrapLayout = wrapLayout;
3437
- exports.wrapMarkup = wrapMarkup;
3438
- exports.wrapMarkupAt = wrapMarkupAt;
1
+ import e,{useRef as n,useCallback as t,useMemo as r,useEffect as l,Fragment as a,useState as o}from"react";import{trackControlChange as i,ControlChange as u,useControl as c,useRefState as s,makeChangeTracker as d,addAfterChangesCallback as f,collectChanges as p,trackedValue as y,useComputed as m,useCalculatedControl as v,useValueChangeEffect as h,useValidator as C,useComponentTracking as g,useControlEffect as b,newControl as N,addElement as x,removeElement as D,formControlProps as E,RenderElements as T,RenderArrayElements as O,Fcheckbox as A}from"@react-typed-forms/core";import S from"clsx";import I from"jsonata";import{v4 as L}from"uuid";var k,w,V,F,M,q,G,H,R,P,j,B,J;function U(e){return e.type===V.Data}function _(e){return e.type===V.Group}function $(e){return e.type===V.Display}function Y(e){return e.type===V.Action}function W(e,n,t){switch(e.type){case V.Action:return n.action(e);case V.Data:return n.data(e);case V.Display:return n.display(e);case V.Group:return n.group(e);default:return t(e)}}function z(e){return e.type===P.Grid}function K(e){return e.type===P.Flex}function Q(e){return e.type===H.DisplayOnly}function X(e){return e.type===H.Textfield}function Z(e){return e.type===H.Group}function ee(e){return e.type===H.Array}function ne(){return ne=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},ne.apply(null,arguments)}function te(e,n){if(null==e)return{};var t={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(n.includes(r))continue;t[r]=e[r]}return t}function re(e,n,t){if(!e)return ae(n);if(t&&t.has(e))return e;null!=t||(t=new Set),t.add(e);const r=n.filter(n=>fe(n)||!(n.field in e));if(!r.length)return e;const l=ne({},e);return r.forEach(r=>{l[r.field]=r.field in e?le(e[r.field],r,n,!1,t):oe(r)}),l}function le(e,n,t,r,l){return n.collection&&!r?(null!=e?e:[]).map(e=>le(e,n,t,!0,l)):fe(n)?e||n.required?re(e,n.treeChildren?t:n.children,l):e:oe(n)}function ae(e){return Object.fromEntries(e.map(e=>[e.field,oe(e)]))}function oe(e,n,t){if(void 0!==e.defaultValue)return e.defaultValue;const r=!(!n&&!e.required);if(fe(e)){if(r){const n=ae(e.children);return e.collection?[n]:n}return e.notNullable||t?e.collection?[]:{}:void 0}return e.collection&&e.notNullable?[]:void 0}function ie(e){return fe(e)?ae(e.children):e.defaultValue}function ue(e,n){return se(e,n)}function ce(e,n){return se(e,n)}function se(e,n){return e.find(e=>e.field===n)}function de(e){return!fe(e)}function fe(e){return e.type===k.Compound}function pe(e){return e.type===V.Data}function ye(e){return e.type===V.Group}function me(e,n){var t;return Boolean(null==(t=e.tags)?void 0:t.includes(n))}function ve(e){var n;return null!=(n=e.displayName)?n:e.field}function he(e){var n,t;return(null!=(n=null==(t=e.options)?void 0:t.length)?n:0)>0}function Ce(e){if(fe(e))return{type:V.Data,title:e.displayName,field:e.field,required:e.required,children:e.children.map(Ce)};if(de(e)){var n;const t=null==(n=e.tags)?void 0:n.includes("_HtmlEditor");return{type:V.Data,title:e.displayName,field:e.field,required:e.required,renderOptions:{type:t?H.HtmlEditor:H.Standard}}}throw"Unknown schema field"}function ge(e,n){return U(n)&&e.field===n.field?[n]:_(n)?n.compoundField===e.field?[n]:null!=(t=null==(r=n.children)?void 0:r.flatMap(n=>ge(e,n)))?t:[]:[];var t,r}function be(e,n){return Object.fromEntries(e.filter(fe).map(e=>{const t=n.flatMap(n=>ge(e,n));return[e.field,{groups:t.concat(xe(t.flatMap(e=>{var n;return null!=(n=e.children)?n:[]}))),children:be(e.children,t.flatMap(e=>{var n;return null!=(n=e.children)?n:[]}))}]}))}function Ne(e,n){if(!n.groups.find(n=>{var t;return null==(t=n.children)?void 0:t.find(n=>U(n)&&n.field===e.field||_(n)&&n.compoundField===e.field)}))return[[e,n]];if(fe(e)){const t=n.children[e.field];return t?e.children.flatMap(e=>Ne(e,t)):[[e,n]]}return[]}function xe(e){return e.flatMap(e=>{var n;return _(e)&&!e.compoundField?[e,...xe(null!=(n=e.children)?n:[])]:[]})}function De(e){var n;return ne({},e,{children:null==(n=e.children)?void 0:n.map(De)})}function Ee(e,n){const t={children:be(e,n=n.map(De)),groups:xe([{type:V.Group,children:n}])};return e.filter(e=>!me(e,"_NoControl")).flatMap(e=>Ne(e,t)).forEach(([e,n])=>{var t;const r=null==(t=e.tags)?void 0:t.find(e=>e.startsWith("_ControlGroup:"));let l;if(r){const e=r.substring(14);l=n.groups.find(n=>n.title===e)}if(l||(l=n.groups[0]),l){const n=Ce(e);l.children?l.children.push(n):l.children=[n]}}),n}function Te(e){const t=n(e);return t.current=e,t}function Oe(e){return pe(e)&&!!e.readonly}function Ae(e){return pe(e)&&!!e.disabled}function Se(e){return U(e)&&e.renderOptions&&Q(e.renderOptions)?e.renderOptions:void 0}function Ie(e,n){const t=n.slice(0,-1),r=(t.length>0?t.at(-1).children:e.fields).find(e=>e.isTypeField);return r?we(e,[...t,r]):void 0}function Le(e,n,t){if(e)for(const r of e){const e=ke(r,n,t);if(void 0!==e)return e}}function ke(e,n,t){return W(e,{data:e=>r(e,e.field,e.children),group:e=>r(void 0,e.compoundField,e.children),action:()=>{},display:()=>{}},()=>{});function r(e,r,l){const a=r?se(n.fields,r):void 0;if(!a)return r?void 0:Le(l,n,t);const o=[...n.path,a.field],i=n.data.lookupControl(o);if(!i)return;const u=e?t(e,a,i,!1):void 0;if(void 0!==u)return u;const c=fe(a);if(a.collection){let r=0;for(const u of null!=(s=i.elements)?s:[]){var s;const i=e?t(e,a,u,!0):void 0;if(void 0!==i)return i;if(c){const e=Le(l,ne({},n,{fields:a.children,path:[...o,r]}),t);if(void 0!==e)return e}r++}}else if(c)return Le(l,ne({},n,{fields:a.children,path:o}),t)}}function we(e,n,t){const r=n.map(e=>e.field);return Ve(e,null==t?r:[...r,t])}function Ve(e,n){const t=[...e.path,...n];return Pe(e.data,t)}function Fe(e,n,t){if(!e)return e;const r=n.find(e=>e.isTypeField),l=r?e[r.field]:void 0,a=t?n:n.filter(e=>{var n,t;return fe(e)||(null!=(n=null==(t=e.onlyForTypes)?void 0:t.length)?n:0)>0});if(!a.length)return e;const o=ne({},e);return a.forEach(r=>{var a;const i=e[r.field];if(!1===(null==(a=r.onlyForTypes)?void 0:a.includes(l))||!r.notNullable&&(t&&r.defaultValue===i||r.collection&&Array.isArray(i)&&!i.length))delete o[r.field];else if(fe(r)){const e=r.treeChildren?n:r.children;r.collection?Array.isArray(i)&&(o[r.field]=i.map(n=>Fe(n,e,t))):o[r.field]=Fe(i,e,t)}}),o}function Me(e,n){var t,r;const l=null==(t=e.children)?void 0:t.flatMap(e=>Me(e,n)),a=S([e.styleClass,e.layoutClass,e.labelClass,...null!=(r=null==n?void 0:n(e))?r:[]].map(He));return l&&!a?l:a?l?[a,...l]:[a]:[]}function qe(e,n){let t="";return e.forEach((e,r)=>{var l;"number"==typeof e?t+=null!=(l=null==n?void 0:n(e))?l:"["+e+"]":(r>0&&(t+="."),t+=e)}),t}function Ge(e,n){if(Array.isArray(n)){let t=e;return n.forEach(e=>t=t.children[e]),t}return e.children[n]}function He(e){return e&&e.startsWith("@ ")?e.substring(2):e}function Re(e,n){const t=He(e);return t===e?S(e,n):t||void 0}function Pe(e,n){let t=0;for(;t<n.length&&e;){const a=n[t],o=e.current;if("string"==typeof a){var r;const n=null==(r=o.fields)?void 0:r[a];n||i(e,u.Structure),e=n}else{var l;e=null==(l=o.elements)?void 0:l[a]}t++}return e}function je(e,n,t){return{deps:t,state:n,runHook:e}}function Be(e,n){return e.map(e=>Ue(n(e))).join(",")}function Je(e){const r=Object.entries(e),l=Be(r,e=>e[1].deps),a=n({}),o=a.current;return r.forEach(e=>o[e[0]]=e[1].state),t(e=>Object.fromEntries(r.map(([n,t])=>[n,t.runHook(e,a.current[n])])),[l])}function Ue(e){return void 0===e?"_":null===e?"~":e.toString()}function _e(e,n){return ne({},e,{path:[...e.path,n]})}function $e(e,n,t,r,l){return[null==n||e>n?r:void 0,null==t||e<t?l:void 0]}function Ye(e,n){if(!n)return;const t=n.split("/"),r=[];let l=0,a=e;for(;l<t.length&&a;){const e=se(a,t[l]);if(!e)return;r.push(e),a=fe(e)&&!e.collection?e.children:void 0,l++}return r.length===t.length?r:void 0}function We(e,n,t=(e,n,t)=>null!=n?n:t){if(!e)return n;if(!n)return e;const r=ne({},e);for(const l in n)n.hasOwnProperty(l)&&(r[l]=t(l,e[l],n[l]));return r}function ze(e){return Object.entries(e).map(e=>e[1](e[0]))}function Ke(e,n){return Ze(ne({type:k.String,displayName:e},n))}function Qe(e,...n){return Ze({type:k.String,displayName:e,options:n})}function Xe(e,n){return t=>ne({},n(t),e)}function Ze(e){return n=>ne({},cn(n,n),e)}function en(e){return n=>ne({},sn(n,n,!1),e)}function nn(e,n){return Ze(ne({type:k.Int,displayName:e},n))}function tn(e,n){return Ze(ne({type:k.Double,displayName:e},n))}function rn(e,n){return Ze(ne({type:k.Date,displayName:e},n))}function ln(e,n){return Ze(ne({type:k.Time,displayName:e},n))}function an(e,n){return Ze(ne({type:k.DateTime,displayName:e},n))}function on(e,n){return Ze(ne({type:k.Bool,displayName:e},n))}function un(e,n,t){return r=>ne({},sn(r,e,!1),t,{children:n})}function cn(e,n){return{field:e,displayName:n,type:k.String}}function sn(e,n,t){return{field:e,displayName:n,type:k.Compound,collection:t,children:[]}}function dn(e,n){const t=n.find(n=>n.field===e.field);return t?n.map(n=>n!==t?n:ne({},n,{onlyForTypes:r(n.onlyForTypes,e.onlyForTypes)})):[...n,e];function r(e,n){if(!e)return n;if(!n)return e;const t=n.filter(n=>!e.includes(n));return t.length?[...e,...t]:e}}function fn(e,n,t,r){const l=e.map(e=>e.isTypeField?pn(e,n,t):e);return r.map(e=>ne({},e,{onlyForTypes:[t]})).reduce((e,n)=>dn(n,e),l)}function pn(e,n,t){var r;const l=null!=(r=e.options)?r:[];return l.some(e=>e.value===t)?e:ne({},e,{options:[...l,{name:n,value:t}]})}function yn(e){const n={};return Object.keys(e).forEach(function t(r){if(r in n)return n[r];const l=[];return n[r]=l,e[r].forEach(e=>{fe(e)&&e.schemaRef?l.push(ne({},e,{children:t(e.schemaRef)})):l.push(e)}),l}),n}function mn(e,n,t){return ne({type:V.Data,field:e,title:n},t)}function vn(e){return n=>ne({type:e},n)}function hn(e){return n=>ne({type:e},n)}function Cn(e){return n=>({renderOptions:ne({type:e},n)})}!function(e){e.String="String",e.Bool="Bool",e.Int="Int",e.Date="Date",e.DateTime="DateTime",e.Time="Time",e.Double="Double",e.EntityRef="EntityRef",e.Compound="Compound",e.AutoId="AutoId",e.Image="Image",e.Any="Any"}(k||(k={})),function(e){e.NotEmpty="NotEmpty",e.MinLength="MinLength",e.MaxLength="MaxLength",e.NotAfterDate="NotAfterDate",e.NotBeforeDate="NotBeforeDate"}(w||(w={})),function(e){e.Data="Data",e.Group="Group",e.Display="Display",e.Action="Action"}(V||(V={})),function(e){e.Visible="Visible",e.DefaultValue="DefaultValue",e.Readonly="Readonly",e.Disabled="Disabled",e.Display="Display",e.Style="Style",e.LayoutStyle="LayoutStyle",e.AllowedOptions="AllowedOptions",e.Label="Label",e.ActionData="ActionData"}(F||(F={})),function(e){e.Jsonata="Jsonata",e.Data="Data",e.DataMatch="FieldValue",e.UserMatch="UserMatch",e.NotEmpty="NotEmpty",e.UUID="UUID"}(M||(M={})),function(e){e.ControlStart="ControlStart",e.ControlEnd="ControlEnd",e.LabelStart="LabelStart",e.LabelEnd="LabelEnd"}(q||(q={})),function(e){e.Tooltip="Tooltip",e.Accordion="Accordion",e.HelpText="HelpText",e.Icon="Icon",e.SetField="SetField"}(G||(G={})),function(e){e.Standard="Standard",e.Textfield="Textfield",e.Radio="Radio",e.HtmlEditor="HtmlEditor",e.IconList="IconList",e.CheckList="CheckList",e.UserSelection="UserSelection",e.Synchronised="Synchronised",e.IconSelector="IconSelector",e.DateTime="DateTime",e.Checkbox="Checkbox",e.Dropdown="Dropdown",e.DisplayOnly="DisplayOnly",e.Group="Group",e.NullToggle="NullToggle",e.Jsonata="Jsonata",e.Array="Array"}(H||(H={})),function(e){e.Camel="Camel",e.Snake="Snake",e.Pascal="Pascal"}(R||(R={})),function(e){e.Standard="Standard",e.Grid="Grid",e.Flex="Flex",e.GroupElement="GroupElement"}(P||(P={})),function(e){e.Text="Text",e.Html="Html",e.Icon="Icon",e.Custom="Custom"}(j||(j={})),function(e){e.Jsonata="Jsonata",e.Date="Date",e.Length="Length"}(B||(B={})),function(e){e.NotBefore="NotBefore",e.NotAfter="NotAfter"}(J||(J={}));const gn=Cn(H.CheckList),bn=Cn(H.Radio),Nn=vn(B.Length),xn=vn(B.Jsonata),Dn=vn(B.Date),En=hn(G.Accordion),Tn=Cn(H.Textfield),On=Cn(H.DisplayOnly),An=Cn(H.Jsonata);function Sn(e,n){return ne({type:V.Display,displayData:{type:j.Text,text:e}},n)}function In(e,n){return ne({type:V.Display,displayData:{type:j.Html,html:e}},n)}function Ln(e){return{type:F.DefaultValue,expr:e}}function kn(e){return{type:F.Readonly,expr:e}}function wn(e){return{type:F.Visible,expr:e}}function Vn(e){return{type:F.Disabled,expr:e}}function Fn(e){return{type:M.Data,field:e}}function Mn(e,n){return{type:M.DataMatch,field:e,value:n}}function qn(e){return{type:M.Jsonata,expression:e}}function Gn(e,n,t){return ne({type:V.Group,children:e,title:n,groupOptions:{type:"Standard",hideTitle:!n}},t)}function Hn(e,n,t,r){return ne({type:V.Data,field:e,children:t,title:n,renderOptions:{type:"Standard"}},r)}function Rn(e,n,t){return ne({type:V.Action,title:e,actionId:n},t)}function Pn(e,n,t){return{actionId:e,onClick:n,actionText:null!=t?t:e}}const jn={type:V.Group,children:[],groupOptions:{type:P.Standard,hideTitle:!0}};function Bn(e,n=jn){return r(()=>{var t;return ne({},n,{children:Ee(e,null!=(t=n.children)?t:[])})},[e,n])}function Jn(e,n){const t=ne({},e);return Object.entries(n).forEach(([e,n])=>{t[e]=(Array.isArray(n)?n:[n]).reduce((e,n)=>{var t;return fn(e,n.name,n.value,null!=(t=n.fields)?t:[])},t[e])}),t}function Un(e,n){return yn(n.reduce(Jn,e))}function _n(e,n,t){return ct(nt(n,F.Visible,e),(e,{fieldPath:n,definition:t})=>m(()=>rt(e,n)&&(!n||!lt(e,n,t,e.schemaInterface))),{fieldPath:t,definition:n})}function $n(e,n){return ct(nt(n,F.Readonly,e),(e,{definition:n})=>v(()=>Oe(n)),{definition:n})}function Yn(e,n,t){return ct(tt(t,n,e),()=>c(void 0),void 0)}function Wn(e,n){return ct(tt(n,F.AllowedOptions,e),()=>c([]),void 0)}function zn(e,n,t,r){return ct(nt(n,F.Disabled,e),(e,{fieldPath:t})=>m(()=>{var l;const a=t&&we(e,t,r);return!1===(null==a||null==(l=a.meta.nullControl)?void 0:l.value)||Ae(n)}),{fieldPath:t,elementIndex:r})}function Kn(e,n){return tt(n,F.Display,e)}function Qn(e,n,t,r){return ct(tt(n,F.DefaultValue,e),(e,{definition:n,schemaField:t})=>m(function(){const[e,l]=U(n)?[n.required,n.defaultValue]:[!1,void 0];return null!=l?l:t?r?ie(t):oe(t,e,!0):void 0}),{definition:n,schemaField:t})}function Xn(e,n,t){switch(e.type){case M.Jsonata:return ot(e.expression,n,void 0,t);case M.UUID:return at(t);case M.Data:return function(e,n,t,r=e=>e){const l=Ye(n,e.field),a=l?we(t,l):void 0;return v(()=>r(null==a?void 0:a.value))}(e,n.fields,n,t);case M.DataMatch:return function(e,n,t,r=e=>e){const l=Ye(n,e.field),a=l?we(t,l):void 0;return v(()=>{const n=null==a?void 0:a.value;return r(Array.isArray(n)?n.includes(e.value):n===e.value)})}(e,n.fields,n,t);case M.NotEmpty:return function(e,n,t,r,l=e=>e){const a=Ye(n,e.field),o=a?we(r,a):void 0;return v(()=>{const e=null==o?void 0:o.value,n=null==a?void 0:a.at(-1);return l(n&&!t.isEmptyValue(n,e))})}(e,n.fields,n.schemaInterface,n,t);default:return c(void 0)}}const Zn=et(Xn);function et(e){return(n,t)=>({deps:null!=n?n.type:"!",state:n,runHook:(n,r)=>r?e(r,n,t):void 0})}function nt(e,n,t){return tt(e,n,t,e=>Boolean(e))}function tt(e,n,t,r=e=>e){var l;const a=null==(l=e.dynamic)?void 0:l.find(e=>e.type===n);return t(null==a?void 0:a.expr,r)}function rt(e,n){const t=n?n[n.length-1].onlyForTypes:void 0;if(null==t||0===t.length)return!0;const r=Ie(e,n);return r&&t.includes(r.value)}function lt(e,n,t,r){var l;const a=Se(t);return a&&!a.emptyText&&r.isEmptyValue(n.at(-1),null==(l=we(e,n))?void 0:l.value)}function at(e=e=>e){return c(()=>e(L()))}function ot(e,t,a,o=e=>e){const i=qe(t.path,e=>`#$i[${e}]`),u=i?i+".("+e+")":e,m=r(()=>{try{return I(u)}catch(e){return console.error(e),I("null")}},[u]),v=c(),h=n(),C=n(0),[g]=s(()=>d(()=>{const e=h.current;e&&(h.current=void 0,f(()=>{h.current=e,e()}))}));return l(()=>{async function e(){const[e,n]=g.current;try{C.current++;const n=a?p(e,a):void 0;v.value=o(await m.evaluate(y(t.data,e),n))}finally{--C.current||n()}}return h.current=e,e(),()=>g.current[1](!0)},[m]),v}function it(e,n){return ct(tt(n,F.ActionData,e),()=>c(null),void 0)}function ut(e,n){return ct(tt(n,F.Label,e),()=>c(null),void 0)}function ct(e,n,t,r){return{deps:void 0===r?e.deps:[r,e.deps].map(Ue).join(),runHook:(t,r)=>{var l;return null!=(l=e.runHook(t,r[0]))?l:n(t,r[1])},state:[e.state,t]}}function st(e,n,r=dt){var l;const a=n&&U(e)?e:void 0,o=Te({dd:a,field:n,useValidatorFor:r}),i=Be(null!=(l=null==a?void 0:a.validators)?l:[],e=>e.type);return t(e=>{var n;const{dd:t,field:l}=o.current;if(!t||!l)return;const{control:a,hiddenControl:i,dataContext:{schemaInterface:u}}=e;h(a,()=>a.setError("default","")),C(a,e=>!i.value&&t.required&&u.isEmptyValue(l,e)?u.validationMessageText(l,w.NotEmpty,!1,!0):null,"required",void 0,[t.required]),null==(n=t.validators)||n.forEach((n,a)=>r(n,ne({},e,{index:a,field:l,definition:t})))},[!!a,i,r])}function dt(e,n){switch(e.type){case B.Length:pt(e,n);break;case B.Jsonata:ft(e,n);break;case B.Date:yt(e,n)}}function ft(e,n){const t=ot(e.expression,n.dataContext,void 0,e=>null==e?null:"string"==typeof e?e:JSON.stringify(e));C(n.control,()=>n.hiddenControl.value?null:t.value,"jsonata"+n.index)}function pt(e,n){const{control:t,dataContext:{schemaInterface:r},hiddenControl:l,field:a}=n;C(t,n=>{const o=r.controlLength(a,t);if(!l.value)if(null!=e.min&&o<e.min){if(null==a||!a.collection)return r.validationMessageText(a,w.MinLength,o,e.min);t.setValue(n=>Array.isArray(n)?n.concat(Array.from({length:e.min-n.length})):Array.from({length:e.min}))}else if(null!=e.max&&o>e.max)return r.validationMessageText(a,w.MaxLength,o,e.max)},"length"+n.index)}function yt(e,n){const{control:t,field:r,index:l,dataContext:{schemaInterface:a}}=n;let o;if(e.fixedDate)o=a.parseToMillis(r,e.fixedDate);else{const n=new Date;o=Date.UTC(n.getFullYear(),n.getMonth(),n.getDate()),e.daysFromCurrent&&(o+=864e5*e.daysFromCurrent)}C(t,n=>{if(n){const t=a.parseToMillis(r,n),l=e.comparison===J.NotAfter;if(l?t>o:t<o)return a.validationMessageText(r,l?w.NotAfterDate:w.NotBeforeDate,t,o)}return null},"date"+l)}function mt(e){return e||void 0}class vt{constructor(e=["No","Yes"]){this.boolStrings=void 0,this.boolStrings=e}parseToMillis(e,n){return Date.parse(n)}validationMessageText(e,n,t,r){switch(n){case w.NotEmpty:return"Please enter a value";case w.MinLength:return"Length must be at least "+r;case w.MaxLength:return"Length must be less than "+r;case w.NotBeforeDate:return`Date must not be before ${new Date(r).toDateString()}`;case w.NotAfterDate:return`Date must not be after ${new Date(r).toDateString()}`;default:return"Unknown error"}}getOptions({options:e}){return e&&e.length>0?e:null}isEmptyValue(e,n){if(e.collection)return Array.isArray(n)?0===n.length:null==n;switch(e.type){case k.String:case k.DateTime:case k.Date:case k.Time:return!n;default:return null==n}}textValue(e,n,t){switch(e.type){case k.Date:return n?new Date(n).toLocaleDateString():void 0;case k.DateTime:return n?new Date(n).toLocaleString():void 0;case k.Time:return n?new Date("1970-01-01T"+n).toLocaleTimeString():void 0;case k.Bool:return this.boolStrings[n?1:0];default:return null!=n?n.toString():void 0}}controlLength(e,n){var t,r;return e.collection?null!=(t=null==(r=n.elements)?void 0:r.length)?t:0:this.valueLength(e,n.value)}valueLength(e,n){var t;return null!=(t=n&&(null==n?void 0:n.length))?t:0}}const ht=new vt,Ct=["definition","field","control","formOptions","style","allowedOptions","schemaInterface"],gt=0,bt=1e3;var Nt;function xt(n,r,o,i={}){var u,s,d;const f=null!=(u=null==i.useDataHook?void 0:i.useDataHook(n))?u:Ot,p=i.elementIndex,m=null!=(s=i.schemaInterface)?s:ht,h=null!=(d=i.useEvalExpressionHook)?d:Zn,C=Dt(n,r),x=null==C?void 0:C.at(-1),D=st(n,x,i.useValidationHook),E=Je({defaultValueControl:Qn(h,n,x,null!=p),visibleControl:_n(h,n,C),readonlyControl:$n(h,n),disabledControl:zn(h,n,C,p),allowedOptions:Wn(h,n),labelText:ut(h,n),actionData:it(h,n),customStyle:Yn(h,F.Style,n),layoutStyle:Yn(h,F.LayoutStyle,n),displayControl:Kn(h,n)}),T=Te({options:i,definition:n,fields:r,fieldPath:C,elementIndex:p}),O=t(({control:t,parentPath:r=[]})=>{const i=g();try{var u,s;const{definition:i,options:d,fields:p,fieldPath:C,elementIndex:g}=T.current,x=null==C?void 0:C.at(-1),O={fields:p,schemaInterface:m,data:t,path:r},{readonlyControl:A,disabledControl:S,visibleControl:I,displayControl:L,layoutStyle:k,labelText:w,customStyle:V,allowedOptions:F,defaultValueControl:M,actionData:q}=E(O),G=I.current.value,R=c(()=>null!=G?{visible:G,showing:G}:void 0);b(()=>I.value,e=>{null!=e&&R.setValue(n=>({visible:e,showing:n?n.showing:e}))});const[P,j,B]=Et(C,O,g);b(()=>{var e;return[R.value,M.value,null==j?void 0:j.isNull,U(n)&&n.dontClearHidden,U(n)&&(null==(e=n.renderOptions)?void 0:e.type)==H.NullToggle,P.isNull,d.hidden,A.value]},([e,n,t,r,l,a,o,i])=>{i||(j?e&&e.visible===e.showing&&(o||!e.visible?j.setValue(e=>d.clearHidden&&!r?void 0:null==e&&r&&!l?n:e):l||j.setValue(e=>null!=e?e:n)):a&&P.setValue(e=>null!=e?e:{}))},!0);const J=v(()=>{var e;return{hidden:d.hidden||!(null!=(e=R.fields)&&e.showing.value),readonly:d.readonly||A.value,disabled:d.disabled||S.value}}),_=y(J);D({control:null!=j?j:N(null),hiddenControl:J.fields.hidden,dataContext:O});const $=ne({},d,_,{elementIndex:void 0});if(l(()=>{j&&"boolean"==typeof _.disabled&&j.disabled!=_.disabled&&(j.disabled=_.disabled)},[j,_.disabled]),P.isNull)/*#__PURE__*/return e.createElement(e.Fragment,null);const Y=null!=(u=null==(s=n.adornments)?void 0:s.map(e=>o.renderAdornment({adornment:e,dataContext:B,parentContext:O,useExpr:h})))?u:[],W=At({definition:i,renderer:o,renderChild:(n,t,r)=>{var l;if(j&&j.isNull)/*#__PURE__*/return e.createElement(a,{key:n});const i=null!=(l=null==r?void 0:r.dataContext)?l:B;/*#__PURE__*/return e.createElement(Tt,{key:n,control:i.data,fields:i.fields,definition:t,parentPath:i.path,renderer:o,options:r?ne({},$,{elementIndex:null==r?void 0:r.elementIndex}):$})},createDataProps:f,formOptions:_,dataContext:B,parentContext:O,control:null!=L?L:j,elementIndex:g,schemaInterface:m,labelText:w,field:x,displayControl:L,style:V.value,allowedOptions:F,customDisplay:d.customDisplay,actionDataControl:q,actionOnClick:d.actionOnClick,useChildVisibility:(e,n)=>{const t=Dt(e,(null!=n?n:B).fields);return _n(h,e,t)}}),z=o.renderLayout(ne({},W,{adornments:Y,className:i.layoutClass,style:k.value}));return o.renderVisibility(ne({visibility:R},z))}finally{i()}},[T,f,D,o,m,E]);return O.displayName="RenderControl",O}function Dt(e,n){const t=_(e)?e.compoundField:U(e)?e.field:void 0;return t?Ye(n,t):void 0}function Et(e,n,t){var r,l,a;const{data:o,path:i}=n,u=[...i,...null!=(r=null==e?void 0:e.slice(0,-1).map(e=>e.field))?r:[]],c=null==e?void 0:e.at(-1),[s,d]=function(e,n){var t;let r=e,l=0;for(;l<n.length&&r;){e=r;const t=n[l],i=r.current;var a,o;r="string"==typeof t?null==(a=i.fields)?void 0:a[t]:null==(o=i.elements)?void 0:o[t],l++}return[null!=(t=r)?t:e,!!r]}(o,u),f=c?null!=t?[...u,c.field,t]:[...u,c.field]:u,p=c&&d?null==(l=s.fields)?void 0:l[c.field]:void 0;return[s,p&&null!=t?null==(a=p.elements)?void 0:a[t]:p,c?ne({},n,{path:f,fields:fe(c)?c.children:n.fields}):n]}function Tt({definition:n,fields:t,renderer:r,options:l,control:a,parentPath:o}){var i=g();try{const i=xt(n,t,r,l);/*#__PURE__*/return e.createElement(i,{control:a,parentPath:o})}finally{i()}}function Ot(e){var n,t,r;let{definition:l,field:a,control:o,formOptions:i,style:u,allowedOptions:c,schemaInterface:s=ht}=e,d=te(e,Ct);const f=mt(l.styleClass),p=!!l.required,y=s.getOptions(a),m=null!=(n=null==c?void 0:c.value)?n:[],v=Array.isArray(m)?m:[m];return ne({definition:l,childDefinitions:null!=(t=l.children)?t:[],control:o,field:a,id:"c"+o.uniqueId,options:v.length>0?v.map(e=>{var n;return"object"==typeof e?e:null!=(n=null==y?void 0:y.find(n=>n.value==e))?n:{name:e.toString(),value:e}}):y,readonly:!!i.readonly,renderOptions:null!=(r=l.renderOptions)?r:{type:"Standard"},required:p,hidden:!!i.hidden,className:f,style:u},d)}function At(e){const{definition:n,renderer:t,renderChild:r,control:l,field:a,dataContext:o,createDataProps:i,displayControl:u,style:c,labelText:s,parentContext:d,useChildVisibility:f,designMode:p,customDisplay:y}=e;if(U(n))return O(n);var m,v,h,C,g;if(_(n))return n.compoundField?O(mn(n.compoundField,n.title,{children:n.children,hideTitle:null==(g=n.groupOptions)?void 0:g.hideTitle})):{processLayout:t.renderGroup({childDefinitions:null!=(m=n.children)?m:[],definition:n,parentContext:d,renderChild:r,dataContext:o,renderOptions:null!=(v=n.groupOptions)?v:{type:"Standard"},className:mt(n.styleClass),useChildVisibility:f,style:c,designMode:p}),label:{label:null!=(h=null==s?void 0:s.value)?h:n.title,className:mt(n.labelClass),type:Nt.Group,hide:null==(C=n.groupOptions)?void 0:C.hideTitle}};if(Y(n)){var b,N,x,D,E;const r=null!=(b=null==(N=e.actionDataControl)?void 0:N.value)?b:n.actionData;return{children:t.renderAction({actionText:null!=(x=null!=(D=null==s?void 0:s.value)?D:n.title)?x:n.actionId,actionId:n.actionId,actionData:r,onClick:null!=(E=null==e.actionOnClick?void 0:e.actionOnClick(n.actionId,r))?E:()=>{},className:mt(n.styleClass),style:c})}}if($(n)){var T;const e=null!=(T=n.displayData)?T:{},r={data:e,className:mt(n.styleClass),style:c,display:u,dataContext:o};return e.type===j.Custom&&y?{children:y(e.customId,r)}:{children:t.renderDisplay(r)}}return{};function O(n){var r,o,u;if(!a)return{children:"No schema field for: "+n.field};if(!l)return{children:"No control for: "+n.field};const c=i(e),d=n.hideTitle?void 0:Mt(null!=(r=null==s?void 0:s.value)?r:n.title,a);return{processLayout:t.renderData(c),label:{type:(null!=(o=null==(u=n.children)?void 0:u.length)?o:0)>0?Nt.Group:Nt.Control,label:d,forId:c.id,required:n.required,hide:n.hideTitle,className:mt(n.labelClass)},errorControl:l}}}function St(n,t){return r=>r[n]=/*#__PURE__*/e.createElement(e.Fragment,null,r[n],t)}function It(e,n){return t=>t[e]=n(t[e])}function Lt(e){switch(e){case q.ControlEnd:return"controlEnd";case q.ControlStart:return"controlStart";case q.LabelStart:return"labelStart";case q.LabelEnd:return"labelEnd"}}function kt(e){return n=>{const t=n.wrapLayout;n.wrapLayout=n=>e(t(n))}}function wt(e,n){return St(Lt(e),n)}function Vt(e,n){return It(Lt(e),n)}function Ft(e,n){var t;const{className:r,children:l,style:a,errorControl:o,label:i,adornments:u}=null!=(t=null==e.processLayout?void 0:e.processLayout(e))?t:e,c={children:l,errorControl:o,style:a,className:mt(r),wrapLayout:e=>e};return(null!=u?u:[]).sort((e,n)=>e.priority-n.priority).forEach(e=>e.apply(c)),c.label=i&&!i.hide?n.renderLabel(i,c.labelStart,c.labelEnd):void 0,c}function Mt(e,n){return e||ve(n)}function qt(e){var n;const t=null==(n=e.validators)?void 0:n.find(e=>e.type===B.Length);return{min:null==t?void 0:t.min,max:null==t?void 0:t.max}}function Gt(e,n,t){var r;const l=null!=(r=n.displayName)?r:n.field,{addText:a,noAdd:o,removeText:i,noRemove:u,removeActionId:c,addActionId:s}=null!=t?t:{};return{arrayControl:e,addAction:o?void 0:{actionId:s||"add",actionText:a||"Add "+l,onClick:()=>x(e,ie(n))},removeAction:u?void 0:n=>({actionId:c||"remove",actionText:i||"Remove",onClick:()=>D(e,n)})}}function Ht({arrayControl:e,min:n,max:t,addAction:r,removeAction:l,required:a},o){var i,u;const[c,s]=$e(null!=(i=null==(u=e.elements)?void 0:u.length)?i:0,null==n&&a?1:n,t,!0,!0);return{addAction:o||s?r:void 0,removeAction:o||c?l:void 0,removeDisabled:!c,addDisabled:!s}}function Rt(e){return e.type===G.Icon}function Pt(e){return e.type===G.Accordion}function jt(e){return e.type===G.SetField}function Bt(e,n){return ne({type:"layout",render:e},n)}function Jt(e,n,t){return ne({type:"action",actionType:e,render:n},t)}function Ut(e,n){return ne({type:"array",render:e},n)}function _t(e,n){return ne({type:"data",render:e},n)}function $t(e,n){return ne({type:"group",render:e},n)}function Yt(e,n){return ne({type:"display",render:e},n)}function Wt(e,n){return ne({type:"label",render:e},n)}function zt(e,n){return ne({type:"visibility",render:e},n)}function Kt(e,n){return ne({type:"adornment"},n,{render:e})}!function(e){e[e.Control=0]="Control",e[e.Group=1]="Group",e[e.Text=2]="Text"}(Nt||(Nt={}));const Qt={label:{groupLabelClass:"font-bold",requiredElement:/*#__PURE__*/e.createElement("span",{className:"text-red-500"}," *")},array:{removableClass:"grid grid-cols-[1fr_auto] items-center gap-x-2",childClass:"grow my-2",addActionClass:"my-2"},group:{standardClassName:"flex flex-col gap-4",gridClassName:"gap-x-2 gap-y-4",flexClassName:"gap-2"},action:{className:"bg-primary-500 rounded-lg p-3 text-white"},layout:{className:"flex flex-col",errorClass:"text-sm text-danger-500"},data:{displayOnlyClass:"flex flex-row items-center gap-2",checkOptions:{className:"flex items-center gap-4",entryClass:"flex gap-1 items-center"},selectOptions:{emptyText:"<select>"},multilineClass:"border p-2 outline-0 whitespace-pre"},adornment:{accordion:{className:"flex items-center gap-2 my-2",titleClass:"cursor-pointer",iconOpenClass:"fa fa-chevron-up",iconClosedClass:"fa fa-chevron-down"}}},Xt=["data","display","className","style"];function Zt(n={}){return{render:t=>/*#__PURE__*/e.createElement(er,ne({},n,t)),type:"display"}}function er(n){var t=g();try{var r;let{data:t,display:l,className:a,style:o}=n,i=te(n,Xt);switch(t.type){case j.Icon:/*#__PURE__*/return e.createElement("i",{style:o,className:S(He(a),l?l.value:t.iconClass)});case j.Text:/*#__PURE__*/return e.createElement("div",{style:o,className:Re(a,i.textClassName)},l?l.value:t.text);case j.Html:/*#__PURE__*/return e.createElement("div",{style:o,className:Re(a,i.htmlClassName),dangerouslySetInnerHTML:{__html:l?null!=(r=l.value)?r:"":t.html}});case j.Custom:/*#__PURE__*/return e.createElement("div",null,"Custom display placeholder: ",t.customId);default:/*#__PURE__*/return e.createElement("h1",null,"Unknown display type: ",t.type)}}finally{t()}}function nr({errorClass:n,renderError:t=t=>t&&/*#__PURE__*/e.createElement("div",{className:n},t),layout:{controlEnd:r,controlStart:l,label:a,children:o,errorControl:i}}){var u=g();try{/*#__PURE__*/return e.createElement(e.Fragment,null,a,l,o,t(i&&i.touched?i.error:void 0),r)}finally{u()}}function tr(){return zt(n=>/*#__PURE__*/e.createElement(rr,n))}function rr({visibility:n,children:t,className:r,style:a,divRef:o}){var i=g();try{const i=n.value;return l(()=>{i&&n.setValue(e=>({visible:i.visible,showing:i.visible}))},[null==i?void 0:i.visible]),null!=i&&i.visible?/*#__PURE__*/e.createElement("div",{className:S(r),style:a,ref:o},t):/*#__PURE__*/e.createElement(e.Fragment,null)}finally{i()}}const lr=["state","options","className","convert","required","emptyText","requiredText","readonly"];function ar(n={}){return _t((t,r)=>{var l;/*#__PURE__*/return e.createElement(or,{className:Re(t.className,n.className),state:t.control,id:t.id,readonly:t.readonly,options:null!=(l=t.options)?l:[],required:t.required,emptyText:n.emptyText,requiredText:n.requiredText,convert:ir(t.field.type)})},{options:!0})}function or(n){var t=g();try{let{state:t,options:l,className:a,convert:i,required:u,emptyText:c="N/A",requiredText:s="<please select>",readonly:d}=n,f=te(n,lr);const{value:p,disabled:y}=t,[m]=o(!u||null==p),v=r(()=>Object.fromEntries(l.map(e=>[i(e.value),e.value])),[l]);/*#__PURE__*/return e.createElement("select",ne({},f,{className:a,onChange:e=>t.value=v[e.target.value],value:i(p),disabled:y||d}),m&&/*#__PURE__*/e.createElement("option",{value:""},u?s:c),l.map((n,t)=>/*#__PURE__*/e.createElement("option",{key:t,value:i(n.value),disabled:!!n.disabled},n.name)))}finally{t()}}function ir(e){switch(e){case k.String:case k.Int:case k.Double:return e=>e;default:return e=>{var n;return null!=(n=null==e?void 0:e.toString())?n:""}}}function ur({control:n,className:t,emptyText:r,schemaInterface:l,field:a,style:o}){var i=g();try{var u;const i=n.value,c=null!=(u=l.isEmptyValue(a,i)?r:l.textValue(a,i))?u:"";/*#__PURE__*/return e.createElement("div",{style:o,className:Re(t)},c)}finally{i()}}const cr=["control","convert"],sr=["errorText","value","onChange"];function dr(n){var t=g();try{let{control:r,convert:l}=n,a=te(n,cr);const o=E(r),{value:i}=o,u=te(o,sr),s=c(()=>d(i));return b(()=>r.value,e=>s.value=d(e)),/*#__PURE__*/e.createElement("input",ne({},u,{type:l[0],value:s.value,onChange:e=>{s.value=e.target.value;const n=l[1](e.target.value);void 0!==n&&(r.value=n)}},a));function d(e){return null==e?"":l[2](e)}}finally{t()}}function fr(e){switch(e){case k.String:return["text",e=>e,e=>e];case k.Bool:return["text",e=>"true"===e||"false"!==e&&void 0,e=>{var n;return null!=(n=null==e?void 0:e.toString())?n:""}];case k.Int:return["number",e=>""!==e?parseInt(e):null,e=>null==e?"":e];case k.DateTime:return["datetime-local",e=>e||null,e=>e];case k.Date:return["date",e=>e||null,e=>e];case k.Time:return["time",e=>{const n=e.length;return 5===n?e+":00":8===n?e:void 0},e=>e?e.substring(0,5):""];case k.Double:return["number",e=>""!==e?parseFloat(e):null,e=>null==e?"":e];default:return["text",e=>e,e=>e]}}function pr(n){return{render:(t,{renderAction:r})=>/*#__PURE__*/e.createElement(yr,ne({},t,n,{renderAction:r})),type:"array"}}function yr(n){var t=g();try{const{renderElement:t,className:r,removableClass:l,childClass:a,removableChildClass:o,removeActionClass:i,addActionClass:u,arrayControl:c,renderAction:s,style:d}=n,{addAction:f,removeAction:p}=Ht(n);/*#__PURE__*/return e.createElement("div",{style:d},/*#__PURE__*/e.createElement("div",{className:S(r,p&&l)},/*#__PURE__*/e.createElement(T,{control:c},(n,r)=>p?/*#__PURE__*/e.createElement(e.Fragment,null,/*#__PURE__*/e.createElement("div",{className:S(a,o)},t(r)),/*#__PURE__*/e.createElement("div",{className:i},s(p(r)))):/*#__PURE__*/e.createElement("div",{className:a},t(r)))),f&&/*#__PURE__*/e.createElement("div",{className:u},s(f)))}finally{t()}}function mr(n={}){return _t(t=>/*#__PURE__*/e.createElement(hr,ne({},n,t,{className:Re(t.className,n.className),isChecked:(e,n)=>e.value==n.value,setChecked:(e,n)=>e.value=n.value,control:t.control,type:"radio"})),{renderType:H.Radio})}function vr(n={}){return _t(t=>/*#__PURE__*/e.createElement(hr,ne({},n,t,{className:Re(t.className,n.className),isChecked:(e,n)=>{const t=e.value;return!!Array.isArray(t)&&t.includes(n.value)},setChecked:(e,n,t)=>{e.setValue(e=>Cr(null!=e?e:[],n.value,t))},control:t.control,type:"checkbox"})),{collection:!0,renderType:H.CheckList})}function hr({control:n,options:t,labelClass:r,checkClass:l,readonly:a,entryClass:o,className:i,id:u,type:c,isChecked:s,setChecked:d}){var f=g();try{const{disabled:f}=n,p="r"+n.uniqueId;/*#__PURE__*/return e.createElement("div",{className:i,id:u},/*#__PURE__*/e.createElement(O,{array:null==t?void 0:t.filter(e=>null!=e.value)},(t,i)=>{const u=m(()=>s(n,t)).value;/*#__PURE__*/return e.createElement("div",{key:i,className:o},/*#__PURE__*/e.createElement("input",{id:p+"_"+i,className:l,type:c,name:p,readOnly:a,disabled:f,checked:u,onChange:e=>{!a&&d(n,t,e.target.checked)}}),/*#__PURE__*/e.createElement("label",{className:r,htmlFor:p+"_"+i},t.name))}))}finally{f()}}function Cr(e,n,t){return t===e.includes(n)?e:t?[...e,n]:e.filter(e=>e!==n)}function gr(n={}){return _t((t,r)=>l=>ne({},l,{label:void 0,children:/*#__PURE__*/e.createElement("div",{className:Re(t.className,n.entryClass)},/*#__PURE__*/e.createElement(A,{id:t.id,control:t.control,style:t.style,className:n.checkClass}),l.label&&r.renderLabel(l.label,void 0,void 0))}),{renderType:H.Checkbox})}function br({children:n,accordion:t,contentStyle:r,contentClassName:l,designMode:a,iconOpenClass:o,iconClosedClass:i,className:u,renderTitle:s=e=>e,renderToggler:d,renderers:f,titleClass:p}){var y=g();try{const y=c(!!t.defaultExpanded),m=y.value,v=m||a?r:ne({},r,{display:"none"}),h=f.renderLabelText(s(t.title,y)),C=d?d(y,h):/*#__PURE__*/e.createElement("button",{className:u,onClick:()=>y.setValue(e=>!e)},/*#__PURE__*/e.createElement("label",{className:p},h),/*#__PURE__*/e.createElement("i",{className:S(m?o:i)}));/*#__PURE__*/return e.createElement(e.Fragment,null,C,/*#__PURE__*/e.createElement("div",{style:v,className:l},n))}finally{y()}}const Nr=["control","field","renderOptions"];function xr(){return _t((n,t)=>{var r,l;let{control:a,field:o}=n,i=te(n,Nr);const u=null!=(l=(r=a.meta).nullControl)?l:r.nullControl=N(null!=a.current.value);return n=>{const r=t.renderData(ne({},i,{control:u,field:ne({},o,{type:k.Bool}),renderOptions:{type:H.Checkbox}}))(n);return ne({},r,{children:/*#__PURE__*/e.createElement(Dr,{control:a,nullControl:u,children:r.children,readonly:i.readonly,defaultValue:i.definition.defaultValue})})}})}function Dr({children:e,nullControl:n,control:t,defaultValue:r,readonly:l}){return b(()=>l,e=>n.disabled=e,!0),b(()=>n.value,e=>{var l;e?t.value=null!=(l=n.meta.nonNullValue)?l:r:(n.meta.nonNullValue=t.value,t.value=null)}),e}function Er({control:t,className:r}){var l=g();try{const l=n(null);return b(()=>t.value,e=>{const n=l.current;n&&n.textContent!==e&&(n.textContent=e)},!0),/*#__PURE__*/e.createElement("code",{contentEditable:!t.disabled,className:r,onInput:e=>t.value=e.currentTarget.textContent,ref:l})}finally{l()}}function Tr(n){return _t(t=>/*#__PURE__*/e.createElement(Or,{renderOptions:t.renderOptions,className:Re(t.className,n),dataContext:t.parentContext,control:t.control,readonly:t.readonly}),{renderType:H.Jsonata})}function Or({control:n,renderOptions:{expression:t},readonly:r,className:l,dataContext:a}){var o=g();try{const o=ot(t,a,()=>({value:n.value,readonly:r,disabled:n.disabled}),e=>null==e?"":"object"==typeof e?"error: "+JSON.stringify(e):e.toString());/*#__PURE__*/return e.createElement("div",{className:l,dangerouslySetInnerHTML:{__html:o.value}})}finally{o()}}function Ar(n,t={}){return Jt(n,({onClick:n,actionText:r,className:l,style:a,actionId:o,actionData:i})=>{var u;/*#__PURE__*/return e.createElement("button",{className:Re(l,t.className),style:a,onClick:n},null!=(u=null==t.renderContent?void 0:t.renderContent(r,o,i))?u:r)})}function Sr(n){const{className:t,gridStyles:r=c,defaultGridColumns:l=2,gridClassName:a,standardClassName:o,flexClassName:i,defaultFlexGap:u}=null!=n?n:{};function c({columns:e=l}){return{className:a,style:{display:"grid",gridTemplateColumns:`repeat(${e}, 1fr)`}}}return{type:"group",render:function(n){const{renderChild:l,renderOptions:a,childDefinitions:c}=n,{style:s,className:d}=z(a)?r(a):K(a)?function(e){return{className:i,style:{display:"flex",gap:e.gap?e.gap:u,flexDirection:e.direction?e.direction:void 0}}}(a):{className:o};return r=>ne({},r,{children:/*#__PURE__*/e.createElement("div",{className:Re(n.className,S(t,d)),style:s},null==c?void 0:c.map((e,n)=>l(n,e)))})}}}const Ir=[{name:"Yes",value:!0},{name:"No",value:!1}];function Lr(n={}){var t,r,l;const a=Tr(n.jsonataClass),o=xr(),i=(u=n.multilineClass,_t(n=>/*#__PURE__*/e.createElement(Er,ne({},n,{className:Re(n.className,u)}))));var u;const c=gr(null!=(t=n.checkOptions)?t:n.checkboxOptions),s=ar(n.selectOptions),d=mr(null!=(r=n.radioOptions)?r:n.checkOptions),f=vr(null!=(l=n.checkListOptions)?l:n.checkOptions),{inputClass:p,booleanOptions:y,optionRenderer:m,displayOnlyClass:v}=ne({optionRenderer:s,booleanOptions:Ir},n),h=(C=n.arrayOptions,_t(({definition:e,control:n,required:t,field:r,renderChild:l,parentContext:a,className:o,style:i,renderOptions:u},c)=>{const{addText:s,noAdd:d,noRemove:f,removeText:p}=We(ee(u)?u:{},C),y=ee(u)?u.childOptions:void 0,m=ne({},Gt(n,r,{addText:s,removeText:p,noAdd:d,noRemove:f}),{required:t,renderElement:t=>{var r,o;return l(null!=(r=null==(o=n.elements)?void 0:o[t].uniqueId)?r:t,{type:V.Data,field:e.field,children:e.children,renderOptions:null!=y?y:{type:H.Standard},hideTitle:!0},{elementIndex:t,dataContext:a})},className:mt(o),style:i},qt(e));return c.renderArray(m)},{renderType:H.Array,collection:!0}));var C;return _t((n,t)=>{const{field:r}=n,l=r.type,u=n.renderOptions;let C=u.type;if(r.collection&&null==n.elementIndex&&C==H.Standard)return h.render(n,t);if(l===k.Compound){var g;const e=null!=(g=Z(u)?u.groupOptions:void 0)?g:{type:"Standard",hideTitle:!0};return t.renderGroup(ne({},n,{renderOptions:e}))}if(l==k.Any)/*#__PURE__*/return e.createElement(e.Fragment,null,"No control for Any");if(Q(u))return t=>ne({},t,{className:v,children:/*#__PURE__*/e.createElement(ur,{field:n.field,schemaInterface:n.dataContext.schemaInterface,control:n.control,className:n.className,style:n.style,emptyText:u.emptyText})});if(null!=y&&l===k.Bool&&null==n.options)return t.renderData(ne({},n,{options:y}));if(C===H.Standard&&he(n))return m.render(n,t);switch(C){case H.NullToggle:return o.render(n,t);case H.CheckList:return f.render(n,t);case H.Dropdown:return s.render(n,t);case H.Radio:return d.render(n,t);case H.Checkbox:return c.render(n,t);case H.Jsonata:return a.render(n,t)}if(X(u)&&u.multiline)return i.render(n,t);const b=X(u)?u.placeholder:void 0;/*#__PURE__*/return e.createElement(dr,{className:Re(n.className,p),style:n.style,id:n.id,readOnly:n.readonly,control:n.control,placeholder:null!=b?b:void 0,convert:fr(n.field.type)})})}function kr(n={}){return{type:"adornment",render:({adornment:r,designMode:l,parentContext:a,useExpr:o},i)=>({apply:u=>{if(jt(r)&&o){const s=Je({value:o(r.expression,e=>e)}),d=t(f,[s]);return kt(n=>/*#__PURE__*/e.createElement(d,{children:n,parentContext:a,adornment:r}))(u);function f({children:e,adornment:n,parentContext:t}){const{value:r}=s(t),l=Ye(t.fields,n.field),a=l?we(t,l):void 0,o=!n.defaultOnly;return b(()=>[null==r?void 0:r.value,null==(null==a?void 0:a.value)],([e])=>{null==a||a.setValue(n=>o||null==n?e:n)},!0),e}}var c;return Rt(r)?wt(null!=(c=r.placement)?c:q.ControlStart,/*#__PURE__*/e.createElement("i",{className:r.iconClass}))(u):Pt(r)?kt(t=>/*#__PURE__*/e.createElement(br,ne({renderers:i,children:t,accordion:r,contentStyle:u.style,contentClassName:u.className,designMode:l},n.accordion)))(u):void 0},priority:0,adornment:r})}}function wr(n={}){return Bt((t,r)=>{const l=Ft(ne({},t,{className:Re(t.className,n.className)}),r);return{children:l.wrapLayout(/*#__PURE__*/e.createElement(nr,ne({layout:l},n))),className:l.className,style:l.style,divRef:e=>e&&t.errorControl?t.errorControl.meta.scrollElement=e:void 0}})}function Vr(n){const{className:t,groupLabelClass:r,controlLabelClass:l,requiredElement:a,labelContainer:o}=ne({requiredElement:/*#__PURE__*/e.createElement("span",null," *"),labelContainer:e=>e},n);return{render:(n,i,u,c)=>n.type==Nt.Text?n.label:o(/*#__PURE__*/e.createElement(e.Fragment,null,/*#__PURE__*/e.createElement("label",{htmlFor:n.forId,className:Re(n.className,S(t,n.type===Nt.Group&&r,n.type===Nt.Control&&l))},i,c.renderLabelText(n.label),n.required&&a),u)),type:"label"}}function Fr(e={}){return{data:Lr(e.data),display:Zt(e.display),action:Ar(void 0,e.action),array:pr(e.array),group:Sr(e.group),label:Vr(e.label),adornment:kr(e.adornment),renderLayout:wr(e.layout),visibility:tr()}}function Mr(e=[],n=function(){return Fr({layout:{className:"control"},group:{className:"group"},array:{className:"control-array"},action:{className:"action"},data:{inputClass:"data"},display:{htmlClassName:"html",textClassName:"text"}})}()){var t;const r=e.filter(Hr),l=e.filter(Rr),a=e.filter(Gr),o=e.filter(Ur),i=e.filter(Pr),u=e.filter(_r),c=e.filter(Jr),s=e.filter(jr),d={renderAction:function(e){var t;return(null!=(t=c.find(n=>qr(n.actionType,e.actionId)))?t:n.action).render(e,d)},renderData:function(e){var t;const{renderOptions:{type:l},field:a}=e,o=he(e),i=(null!=(t=r.find(n=>{var t,r,i;return(null!=(t=n.collection)&&t)===(null==e.elementIndex&&null!=(r=a.collection)&&r)&&(null!=(i=n.options)&&i)===o&&(n.schemaType&&l==H.Standard&&qr(n.schemaType,a.type)||n.renderType&&qr(n.renderType,l)||n.match&&n.match(e))}))?t:n.data).render(e,d);return"function"==typeof i?i:e=>ne({},e,{children:i})},renderGroup:function(e){var t;const r=e.renderOptions.type,a=(null!=(t=l.find(e=>qr(e.renderType,r)))?t:n.group).render(e,d);return"function"==typeof a?a:e=>ne({},e,{children:a})},renderDisplay:function(e){var t;const r=e.data.type;return(null!=(t=o.find(e=>qr(e.renderType,r)))?t:n.display).render(e,d)},renderLabel:f,renderArray:function(e){var t;return(null!=(t=u[0])?t:n.array).render(e,d)},renderAdornment:function(e){var t;return(null!=(t=a.find(n=>qr(n.adornmentType,e.adornment.type)))?t:n.adornment).render(e,d)},renderLayout:function(e){var t;return(null!=(t=s.find(n=>!n.match||n.match(e)))?t:n.renderLayout).render(e,d)},renderVisibility:(null!=(t=e.find(Br))?t:n.visibility).render,renderLabelText:function(e){return f({label:e,type:Nt.Text},void 0,void 0)}};function f(e,t,r){var l;return(null!=(l=i.find(n=>qr(n.labelType,e.type)))?l:n.label).render(e,t,r,d)}return d}function qr(e,n){return null==e||(Array.isArray(e)?e.includes(n):n===e)}function Gr(e){return"adornment"===e.type}function Hr(e){return"data"===e.type}function Rr(e){return"group"===e.type}function Pr(e){return"label"===e.type}function jr(e){return"layout"===e.type}function Br(e){return"visibility"===e.type}function Jr(e){return"action"===e.type}function Ur(e){return"display"===e.type}function _r(e){return"array"===e.type}export{q as AdornmentPlacement,gt as AppendAdornmentPriority,hr as CheckButtons,G as ControlAdornmentType,V as ControlDefinitionType,dr as ControlInput,Tt as ControlRenderer,H as DataRenderType,J as DateComparison,Ir as DefaultBoolOptions,er as DefaultDisplay,ur as DefaultDisplayOnly,nr as DefaultLayout,vt as DefaultSchemaInterface,rr as DefaultVisibility,j as DisplayDataType,F as DynamicPropertyType,M as ExpressionType,k as FieldType,P as GroupRenderType,Or as JsonataRenderer,Nt as LabelType,or as SelectDataRenderer,R as SyncTextType,w as ValidationMessageType,B as ValidatorType,bt as WrapAdornmentPriority,En as accordionOptions,Rn as actionControl,pn as addFieldOption,Ee as addMissingControls,hn as adornmentOptions,_e as appendElementIndex,St as appendMarkup,wt as appendMarkupAt,Ht as applyArrayLengthRestrictions,le as applyDefaultForField,re as applyDefaultValues,Jn as applyExtensionToSchema,Un as applyExtensionsToSchema,$e as applyLengthRestrictions,on as boolField,ze as buildSchema,gn as checkListOptions,Fe as cleanDataForSchema,Hn as compoundControl,un as compoundField,Mt as controlTitle,Pn as createAction,Jt as createActionRenderer,Kt as createAdornmentRenderer,Gt as createArrayActions,Ut as createArrayRenderer,Ar as createButtonActionRenderer,vr as createCheckListRenderer,gr as createCheckboxRenderer,_t as createDataRenderer,kr as createDefaultAdornmentRenderer,Lr as createDefaultDataRenderer,Zt as createDefaultDisplayRenderer,Sr as createDefaultGroupRenderer,Vr as createDefaultLabelRenderer,Fr as createDefaultRenderers,tr as createDefaultVisibilityRenderer,Yt as createDisplayRenderer,Mr as createFormRenderer,$t as createGroupRenderer,fr as createInputConversion,Tr as createJsonataRenderer,Wt as createLabelRenderer,Bt as createLayoutRenderer,xr as createNullToggleRenderer,mr as createRadioRenderer,ir as createSelectConversion,ar as createSelectRenderer,zt as createVisibilityRenderer,mn as dataControl,rn as dateField,an as dateTimeField,Dn as dateValidatorOptions,sn as defaultCompoundField,Ce as defaultControlForField,Ot as defaultDataProps,Xn as defaultEvalHooks,cn as defaultScalarField,ht as defaultSchemaInterface,Qt as defaultTailwindTheme,Zn as defaultUseEvalExpressionHook,oe as defaultValueForField,ae as defaultValueForFields,On as displayOnlyOptions,tn as doubleField,Ln as dynamicDefaultValue,Vn as dynamicDisabled,kn as dynamicReadonly,wn as dynamicVisibility,ie as elementValueForField,jn as emptyGroupDefinition,Ne as existsInGroups,ve as fieldDisplayName,Mn as fieldEqExpr,Fn as fieldExpr,me as fieldHasTag,Ge as findChildDefinition,ce as findCompoundField,be as findCompoundGroups,ge as findControlsForCompound,se as findField,Ye as findFieldPath,xe as findNonDataGroups,ue as findScalarField,Me as getAllReferencedClasses,Et as getControlData,Se as getDisplayOnlyOptions,qt as getLengthRestrictions,He as getOverrideClass,Ie as getTypeField,Gn as groupedControl,he as hasOptions,lt as hideDisplayOnly,In as htmlDisplayControl,nn as intField,Pt as isAccordionAdornment,Y as isActionControlsDefinition,ee as isArrayRenderer,fe as isCompoundField,Ae as isControlDisabled,Oe as isControlReadonly,pe as isDataControl,U as isDataControlDefinition,Z as isDataGroupRenderer,$ as isDisplayControlsDefinition,Q as isDisplayOnlyRenderer,K as isFlexRenderer,z as isGridRenderer,ye as isGroupControl,_ as isGroupControlsDefinition,Rt as isIconAdornment,de as isScalarField,jt as isSetFieldAdornment,X as isTextfieldRenderer,qe as jsonPathString,qn as jsonataExpr,An as jsonataOptions,xn as jsonataValidatorOptions,Lt as layoutKeyForPlacement,Nn as lengthValidatorOptions,we as lookupChildControl,Ve as lookupChildControlPath,Dt as lookupSchemaField,en as makeCompoundField,et as makeEvalExpressionHook,je as makeHook,Be as makeHookDepString,Ze as makeScalarField,rt as matchesType,dn as mergeField,fn as mergeFields,We as mergeObjects,bn as radioButtonOptions,At as renderControlLayout,Ft as renderLayoutParts,Cn as renderOptionsFor,Re as rendererClass,yn as resolveSchemas,Cr as setIncluded,Ke as stringField,Qe as stringOptionsField,Sn as textDisplayControl,Tn as textfieldOptions,ln as timeField,Ue as toDepString,Bn as useControlDefinitionForSchema,xt as useControlRenderer,yt as useDateValidator,Je as useDynamicHooks,it as useEvalActionHook,Wn as useEvalAllowedOptionsHook,Qn as useEvalDefaultValueHook,zn as useEvalDisabledHook,Kn as useEvalDisplayHook,nt as useEvalDynamicBoolHook,tt as useEvalDynamicHook,ut as useEvalLabelText,$n as useEvalReadonlyHook,Yn as useEvalStyleHook,_n as useEvalVisibilityHook,ot as useJsonataExpression,ft as useJsonataValidator,pt as useLengthValidator,st as useMakeValidationHook,Te as useUpdatedRef,at as useUuidExpression,vn as validatorOptions,ke as visitControlData,Le as visitControlDataArray,W as visitControlDefinition,Pe as watchControlLookup,Xe as withScalarOptions,kt as wrapLayout,It as wrapMarkup,Vt as wrapMarkupAt};
3439
2
  //# sourceMappingURL=index.js.map