@react-typed-forms/schemas 3.0.0-dev.99 → 4.1.0

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