@react-typed-forms/schemas 1.0.0-dev.15 → 1.0.0-dev.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.babelrc +4 -0
- package/.rush/temp/operation/build/state.json +1 -1
- package/.rush/temp/package-deps_build.json +2 -2
- package/.rush/temp/shrinkwrap-deps.json +453 -6
- package/lib/controlRender.d.ts +100 -100
- package/lib/hooks.d.ts +9 -9
- package/lib/index.d.ts +5 -7
- package/lib/index.js +612 -25
- package/lib/index.js.map +1 -0
- package/lib/schemaBuilder.d.ts +87 -87
- package/lib/types.d.ts +234 -234
- package/lib/util.d.ts +3 -0
- package/package.json +6 -5
- package/src/controlRender.tsx +5 -1
- package/src/index.ts +1 -10
- package/src/util.ts +9 -0
- package/tsconfig.json +4 -3
- package/.rush/temp/operation/build/all.log +0 -1
- package/lib/controlRender.js +0 -215
- package/lib/hooks.js +0 -103
- package/lib/schemaBuilder.js +0 -67
- package/lib/types.js +0 -112
- package/schemas.build.log +0 -1
package/lib/index.js
CHANGED
|
@@ -1,31 +1,618 @@
|
|
|
1
|
-
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
var React = require('react');
|
|
2
|
+
var core = require('@react-typed-forms/core');
|
|
3
|
+
|
|
4
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
5
|
+
|
|
6
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
7
|
+
|
|
8
|
+
function _extends() {
|
|
9
|
+
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
|
10
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
11
|
+
var source = arguments[i];
|
|
12
|
+
for (var key in source) {
|
|
13
|
+
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
14
|
+
target[key] = source[key];
|
|
15
|
+
}
|
|
16
|
+
}
|
|
7
17
|
}
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
return target;
|
|
19
|
+
};
|
|
20
|
+
return _extends.apply(this, arguments);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
exports.FieldType = void 0;
|
|
24
|
+
(function (FieldType) {
|
|
25
|
+
FieldType["String"] = "String";
|
|
26
|
+
FieldType["Bool"] = "Bool";
|
|
27
|
+
FieldType["Int"] = "Int";
|
|
28
|
+
FieldType["Date"] = "Date";
|
|
29
|
+
FieldType["DateTime"] = "DateTime";
|
|
30
|
+
FieldType["Double"] = "Double";
|
|
31
|
+
FieldType["EntityRef"] = "EntityRef";
|
|
32
|
+
FieldType["Compound"] = "Compound";
|
|
33
|
+
FieldType["AutoId"] = "AutoId";
|
|
34
|
+
FieldType["Image"] = "Image";
|
|
35
|
+
FieldType["Any"] = "Any";
|
|
36
|
+
})(exports.FieldType || (exports.FieldType = {}));
|
|
37
|
+
exports.ControlDefinitionType = void 0;
|
|
38
|
+
(function (ControlDefinitionType) {
|
|
39
|
+
ControlDefinitionType["Data"] = "Data";
|
|
40
|
+
ControlDefinitionType["Group"] = "Group";
|
|
41
|
+
ControlDefinitionType["Display"] = "Display";
|
|
42
|
+
ControlDefinitionType["Action"] = "Action";
|
|
43
|
+
})(exports.ControlDefinitionType || (exports.ControlDefinitionType = {}));
|
|
44
|
+
exports.DynamicPropertyType = void 0;
|
|
45
|
+
(function (DynamicPropertyType) {
|
|
46
|
+
DynamicPropertyType["Visible"] = "Visible";
|
|
47
|
+
DynamicPropertyType["DefaultValue"] = "DefaultValue";
|
|
48
|
+
})(exports.DynamicPropertyType || (exports.DynamicPropertyType = {}));
|
|
49
|
+
exports.ExpressionType = void 0;
|
|
50
|
+
(function (ExpressionType) {
|
|
51
|
+
ExpressionType["Jsonata"] = "Jsonata";
|
|
52
|
+
ExpressionType["FieldValue"] = "FieldValue";
|
|
53
|
+
ExpressionType["UserMatch"] = "UserMatch";
|
|
54
|
+
})(exports.ExpressionType || (exports.ExpressionType = {}));
|
|
55
|
+
exports.ControlAdornmentType = void 0;
|
|
56
|
+
(function (ControlAdornmentType) {
|
|
57
|
+
ControlAdornmentType["Tooltip"] = "Tooltip";
|
|
58
|
+
ControlAdornmentType["Accordion"] = "Accordion";
|
|
59
|
+
})(exports.ControlAdornmentType || (exports.ControlAdornmentType = {}));
|
|
60
|
+
exports.DataRenderType = void 0;
|
|
61
|
+
(function (DataRenderType) {
|
|
62
|
+
DataRenderType["Standard"] = "Standard";
|
|
63
|
+
DataRenderType["Radio"] = "Radio";
|
|
64
|
+
DataRenderType["HtmlEditor"] = "HtmlEditor";
|
|
65
|
+
DataRenderType["IconList"] = "IconList";
|
|
66
|
+
DataRenderType["CheckList"] = "CheckList";
|
|
67
|
+
DataRenderType["UserSelection"] = "UserSelection";
|
|
68
|
+
DataRenderType["Synchronised"] = "Synchronised";
|
|
69
|
+
DataRenderType["IconSelector"] = "IconSelector";
|
|
70
|
+
DataRenderType["DateTime"] = "DateTime";
|
|
71
|
+
})(exports.DataRenderType || (exports.DataRenderType = {}));
|
|
72
|
+
exports.SyncTextType = void 0;
|
|
73
|
+
(function (SyncTextType) {
|
|
74
|
+
SyncTextType["Camel"] = "Camel";
|
|
75
|
+
SyncTextType["Snake"] = "Snake";
|
|
76
|
+
SyncTextType["Pascal"] = "Pascal";
|
|
77
|
+
})(exports.SyncTextType || (exports.SyncTextType = {}));
|
|
78
|
+
exports.GroupRenderType = void 0;
|
|
79
|
+
(function (GroupRenderType) {
|
|
80
|
+
GroupRenderType["Standard"] = "Standard";
|
|
81
|
+
GroupRenderType["Grid"] = "Grid";
|
|
82
|
+
GroupRenderType["GroupElement"] = "GroupElement";
|
|
83
|
+
})(exports.GroupRenderType || (exports.GroupRenderType = {}));
|
|
84
|
+
exports.DisplayDataType = void 0;
|
|
85
|
+
(function (DisplayDataType) {
|
|
86
|
+
DisplayDataType["Text"] = "Text";
|
|
87
|
+
DisplayDataType["Html"] = "Html";
|
|
88
|
+
})(exports.DisplayDataType || (exports.DisplayDataType = {}));
|
|
89
|
+
function isDataControlDefinition(x) {
|
|
90
|
+
return x.type === exports.ControlDefinitionType.Data;
|
|
91
|
+
}
|
|
92
|
+
function isGroupControlsDefinition(x) {
|
|
93
|
+
return x.type === exports.ControlDefinitionType.Group;
|
|
94
|
+
}
|
|
95
|
+
function isDisplayControlsDefinition(x) {
|
|
96
|
+
return x.type === exports.ControlDefinitionType.Display;
|
|
97
|
+
}
|
|
98
|
+
function isActionControlsDefinition(x) {
|
|
99
|
+
return x.type === exports.ControlDefinitionType.Action;
|
|
100
|
+
}
|
|
101
|
+
function visitControlDefinition(x, visitor, defaultValue) {
|
|
102
|
+
switch (x.type) {
|
|
103
|
+
case exports.ControlDefinitionType.Action:
|
|
104
|
+
return visitor.action(x);
|
|
105
|
+
case exports.ControlDefinitionType.Data:
|
|
106
|
+
return visitor.data(x);
|
|
107
|
+
case exports.ControlDefinitionType.Display:
|
|
108
|
+
return visitor.display(x);
|
|
109
|
+
case exports.ControlDefinitionType.Group:
|
|
110
|
+
return visitor.group(x);
|
|
111
|
+
default:
|
|
112
|
+
return defaultValue(x);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
function dataControl(field, options) {
|
|
116
|
+
return _extends({
|
|
117
|
+
type: exports.ControlDefinitionType.Data,
|
|
118
|
+
field: field
|
|
119
|
+
}, options);
|
|
120
|
+
}
|
|
121
|
+
function fieldValueExpr(field, value) {
|
|
122
|
+
return {
|
|
123
|
+
type: exports.ExpressionType.FieldValue,
|
|
124
|
+
field: field,
|
|
125
|
+
value: value
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
function visibility(expr) {
|
|
129
|
+
return {
|
|
130
|
+
type: exports.DynamicPropertyType.Visible,
|
|
131
|
+
expr: expr
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
function buildSchema(def) {
|
|
136
|
+
return Object.entries(def).map(function (x) {
|
|
137
|
+
return x[1](x[0]);
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
function stringField(displayName, options) {
|
|
141
|
+
return makeScalarField(_extends({
|
|
142
|
+
type: exports.FieldType.String,
|
|
143
|
+
displayName: displayName
|
|
144
|
+
}, options));
|
|
145
|
+
}
|
|
146
|
+
function stringOptionsField(displayName) {
|
|
147
|
+
return makeScalarField({
|
|
148
|
+
type: exports.FieldType.String,
|
|
149
|
+
displayName: displayName,
|
|
150
|
+
options: [].slice.call(arguments, 1)
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
function withScalarOptions(options, v) {
|
|
154
|
+
return function (n) {
|
|
155
|
+
return _extends({}, v(n), options);
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
function makeScalarField(options) {
|
|
159
|
+
return function (n) {
|
|
160
|
+
return _extends({}, defaultScalarField(n, n), options);
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
function makeCompoundField(options) {
|
|
164
|
+
return function (n) {
|
|
165
|
+
return _extends({}, defaultCompoundField(n, n, false), options);
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
function intField(displayName, options) {
|
|
169
|
+
return makeScalarField(_extends({
|
|
170
|
+
type: exports.FieldType.Int,
|
|
171
|
+
displayName: displayName
|
|
172
|
+
}, options));
|
|
173
|
+
}
|
|
174
|
+
function boolField(displayName, options) {
|
|
175
|
+
return makeScalarField(_extends({
|
|
176
|
+
type: exports.FieldType.Bool,
|
|
177
|
+
displayName: displayName
|
|
178
|
+
}, options));
|
|
179
|
+
}
|
|
180
|
+
function compoundField(displayName, fields, other) {
|
|
181
|
+
return function (field) {
|
|
182
|
+
return _extends({}, defaultCompoundField(field, displayName, false), other, {
|
|
183
|
+
children: fields
|
|
184
|
+
});
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
function defaultScalarField(field, displayName) {
|
|
188
|
+
return {
|
|
189
|
+
field: field,
|
|
190
|
+
displayName: displayName,
|
|
191
|
+
type: exports.FieldType.String
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
function defaultCompoundField(field, displayName, collection) {
|
|
195
|
+
return {
|
|
196
|
+
tags: [],
|
|
197
|
+
field: field,
|
|
198
|
+
displayName: displayName,
|
|
199
|
+
type: exports.FieldType.Compound,
|
|
200
|
+
collection: collection,
|
|
201
|
+
system: false,
|
|
202
|
+
treeChildren: false,
|
|
203
|
+
children: [],
|
|
204
|
+
onlyForTypes: [],
|
|
205
|
+
required: true
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
|
|
22
209
|
function fieldHasTag(field, tag) {
|
|
23
|
-
|
|
24
|
-
|
|
210
|
+
var _field$tags;
|
|
211
|
+
return Boolean((_field$tags = field.tags) == null ? void 0 : _field$tags.includes(tag));
|
|
25
212
|
}
|
|
26
|
-
exports.fieldHasTag = fieldHasTag;
|
|
27
213
|
function fieldDisplayName(field) {
|
|
28
|
-
|
|
29
|
-
|
|
214
|
+
var _field$displayName;
|
|
215
|
+
return (_field$displayName = field.displayName) != null ? _field$displayName : field.field;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
var _FormRendererComponentsContext = null;
|
|
219
|
+
function FormRendererComponentsContext() {
|
|
220
|
+
if (!_FormRendererComponentsContext) {
|
|
221
|
+
_FormRendererComponentsContext = React.createContext(undefined);
|
|
222
|
+
}
|
|
223
|
+
return _FormRendererComponentsContext;
|
|
224
|
+
}
|
|
225
|
+
function FormRendererProvider(_ref) {
|
|
226
|
+
var _effect = core.useComponentTracking();
|
|
227
|
+
try {
|
|
228
|
+
var value = _ref.value,
|
|
229
|
+
children = _ref.children;
|
|
230
|
+
var _FormRendererComponen = FormRendererComponentsContext(),
|
|
231
|
+
Provider = _FormRendererComponen.Provider;
|
|
232
|
+
return /*#__PURE__*/React__default["default"].createElement(Provider, {
|
|
233
|
+
value: value,
|
|
234
|
+
children: children
|
|
235
|
+
});
|
|
236
|
+
} finally {
|
|
237
|
+
_effect();
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
function useFormRendererComponents() {
|
|
241
|
+
var c = React.useContext(FormRendererComponentsContext());
|
|
242
|
+
if (!c) {
|
|
243
|
+
throw "Need to use FormRendererComponentContext.Provider";
|
|
244
|
+
}
|
|
245
|
+
return c;
|
|
246
|
+
}
|
|
247
|
+
function isScalarField(sf) {
|
|
248
|
+
return !isCompoundField(sf);
|
|
249
|
+
}
|
|
250
|
+
function isCompoundField(sf) {
|
|
251
|
+
return sf.type === exports.FieldType.Compound;
|
|
252
|
+
}
|
|
253
|
+
function applyDefaultValues(v, fields) {
|
|
254
|
+
if (!v) return defaultValueForFields(fields);
|
|
255
|
+
var applyValue = fields.filter(function (x) {
|
|
256
|
+
return isCompoundField(x) || !(x.field in v);
|
|
257
|
+
});
|
|
258
|
+
if (!applyValue.length) return v;
|
|
259
|
+
var out = _extends({}, v);
|
|
260
|
+
applyValue.forEach(function (x) {
|
|
261
|
+
out[x.field] = x.field in v ? applyDefaultForField(v[x.field], x, fields) : defaultValueForField(x);
|
|
262
|
+
});
|
|
263
|
+
return out;
|
|
30
264
|
}
|
|
265
|
+
function applyDefaultForField(v, field, parent, notElement) {
|
|
266
|
+
if (field.collection && !notElement) {
|
|
267
|
+
return (v != null ? v : []).map(function (x) {
|
|
268
|
+
return applyDefaultForField(x, field, parent, true);
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
if (isCompoundField(field)) {
|
|
272
|
+
if (!v && !field.required) return v;
|
|
273
|
+
return applyDefaultValues(v, field.treeChildren ? parent : field.children);
|
|
274
|
+
}
|
|
275
|
+
return defaultValueForField(field);
|
|
276
|
+
}
|
|
277
|
+
function defaultValueForFields(fields) {
|
|
278
|
+
return Object.fromEntries(fields.map(function (x) {
|
|
279
|
+
return [x.field, defaultValueForField(x)];
|
|
280
|
+
}));
|
|
281
|
+
}
|
|
282
|
+
function defaultValueForField(sf) {
|
|
283
|
+
if (isCompoundField(sf)) {
|
|
284
|
+
return sf.required ? sf.collection ? [] : defaultValueForFields(sf.children) : undefined;
|
|
285
|
+
}
|
|
286
|
+
if (sf.collection) return [];
|
|
287
|
+
return sf.defaultValue;
|
|
288
|
+
}
|
|
289
|
+
function elementValueForField(sf) {
|
|
290
|
+
if (isCompoundField(sf)) {
|
|
291
|
+
return defaultValueForFields(sf.children);
|
|
292
|
+
}
|
|
293
|
+
return sf.defaultValue;
|
|
294
|
+
}
|
|
295
|
+
function findScalarField(fields, field) {
|
|
296
|
+
return findField(fields, field);
|
|
297
|
+
}
|
|
298
|
+
function findCompoundField(fields, field) {
|
|
299
|
+
return findField(fields, field);
|
|
300
|
+
}
|
|
301
|
+
function findField(fields, field) {
|
|
302
|
+
return fields.find(function (x) {
|
|
303
|
+
return x.field === field;
|
|
304
|
+
});
|
|
305
|
+
}
|
|
306
|
+
function controlTitle(title, field) {
|
|
307
|
+
return title ? title : fieldDisplayName(field);
|
|
308
|
+
}
|
|
309
|
+
function renderControl(definition, formState, hooks, key, wrapChild) {
|
|
310
|
+
var fields = formState.fields;
|
|
311
|
+
return visitControlDefinition(definition, {
|
|
312
|
+
data: function data(def) {
|
|
313
|
+
var fieldData = findScalarField(fields, def.field);
|
|
314
|
+
if (!fieldData) return /*#__PURE__*/React__default["default"].createElement("h1", null, "No schema field for: ", def.field);
|
|
315
|
+
return /*#__PURE__*/React__default["default"].createElement(DataRenderer, {
|
|
316
|
+
key: key,
|
|
317
|
+
wrapElem: wrapElem,
|
|
318
|
+
formState: formState,
|
|
319
|
+
hooks: hooks,
|
|
320
|
+
controlDef: def,
|
|
321
|
+
fieldData: fieldData
|
|
322
|
+
});
|
|
323
|
+
},
|
|
324
|
+
group: function group(d) {
|
|
325
|
+
return /*#__PURE__*/React__default["default"].createElement(GroupRenderer, {
|
|
326
|
+
key: key,
|
|
327
|
+
hooks: hooks,
|
|
328
|
+
groupDef: d,
|
|
329
|
+
formState: formState,
|
|
330
|
+
wrapElem: wrapElem
|
|
331
|
+
});
|
|
332
|
+
},
|
|
333
|
+
action: function action(d) {
|
|
334
|
+
return /*#__PURE__*/React__default["default"].createElement(ActionRenderer, {
|
|
335
|
+
key: key,
|
|
336
|
+
hooks: hooks,
|
|
337
|
+
formState: formState,
|
|
338
|
+
wrapElem: wrapElem,
|
|
339
|
+
actionDef: d
|
|
340
|
+
});
|
|
341
|
+
},
|
|
342
|
+
display: function display(d) {
|
|
343
|
+
return /*#__PURE__*/React__default["default"].createElement(DisplayRenderer, {
|
|
344
|
+
key: key,
|
|
345
|
+
hooks: hooks,
|
|
346
|
+
formState: formState,
|
|
347
|
+
wrapElem: wrapElem,
|
|
348
|
+
displayDef: d
|
|
349
|
+
});
|
|
350
|
+
}
|
|
351
|
+
}, function () {
|
|
352
|
+
return /*#__PURE__*/React__default["default"].createElement("h1", null, "Unknown control: ", definition.type);
|
|
353
|
+
});
|
|
354
|
+
function wrapElem(e) {
|
|
355
|
+
var _wrapChild;
|
|
356
|
+
return (_wrapChild = wrapChild == null ? void 0 : wrapChild(key, e)) != null ? _wrapChild : e;
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
/** @trackControls */
|
|
360
|
+
function DataRenderer(_ref2) {
|
|
361
|
+
var _effect2 = core.useComponentTracking();
|
|
362
|
+
try {
|
|
363
|
+
var _props$customRender;
|
|
364
|
+
var hooks = _ref2.hooks,
|
|
365
|
+
formState = _ref2.formState,
|
|
366
|
+
controlDef = _ref2.controlDef,
|
|
367
|
+
wrapElem = _ref2.wrapElem,
|
|
368
|
+
fieldData = _ref2.fieldData;
|
|
369
|
+
var renderer = useFormRendererComponents();
|
|
370
|
+
var props = hooks.useDataProperties(formState, controlDef, fieldData);
|
|
371
|
+
var scalarProps = {
|
|
372
|
+
formEditState: formState,
|
|
373
|
+
field: fieldData,
|
|
374
|
+
definition: controlDef,
|
|
375
|
+
properties: props
|
|
376
|
+
};
|
|
377
|
+
return wrapElem(((_props$customRender = props.customRender) != null ? _props$customRender : renderer.renderData)(scalarProps, props.control, false, renderer));
|
|
378
|
+
} finally {
|
|
379
|
+
_effect2();
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
/** @trackControls */ /** @trackControls */
|
|
383
|
+
function ActionRenderer(_ref3) {
|
|
384
|
+
var _effect3 = core.useComponentTracking();
|
|
385
|
+
try {
|
|
386
|
+
var hooks = _ref3.hooks,
|
|
387
|
+
formState = _ref3.formState,
|
|
388
|
+
wrapElem = _ref3.wrapElem,
|
|
389
|
+
actionDef = _ref3.actionDef;
|
|
390
|
+
var _useFormRendererCompo = useFormRendererComponents(),
|
|
391
|
+
renderAction = _useFormRendererCompo.renderAction;
|
|
392
|
+
var actionControlProperties = hooks.useActionProperties(formState, actionDef);
|
|
393
|
+
return wrapElem(renderAction({
|
|
394
|
+
definition: actionDef,
|
|
395
|
+
properties: actionControlProperties
|
|
396
|
+
}));
|
|
397
|
+
} finally {
|
|
398
|
+
_effect3();
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
/** @trackControls */ /** @trackControls */
|
|
402
|
+
function GroupRenderer(_ref4) {
|
|
403
|
+
var _effect4 = core.useComponentTracking();
|
|
404
|
+
try {
|
|
405
|
+
var hooks = _ref4.hooks,
|
|
406
|
+
formState = _ref4.formState,
|
|
407
|
+
groupDef = _ref4.groupDef,
|
|
408
|
+
wrapElem = _ref4.wrapElem;
|
|
409
|
+
var renderers = useFormRendererComponents();
|
|
410
|
+
var groupProps = hooks.useGroupProperties(formState, groupDef, hooks);
|
|
411
|
+
var compoundField = groupDef.compoundField ? findCompoundField(formState.fields, groupDef.compoundField) : undefined;
|
|
412
|
+
if (compoundField) {
|
|
413
|
+
return wrapElem(renderers.renderCompound({
|
|
414
|
+
definition: groupDef,
|
|
415
|
+
field: compoundField,
|
|
416
|
+
properties: groupProps,
|
|
417
|
+
renderChild: function renderChild(k, c, data, wrapChild) {
|
|
418
|
+
return renderControl(c, _extends({}, formState, {
|
|
419
|
+
fields: compoundField.children,
|
|
420
|
+
data: data
|
|
421
|
+
}), groupProps.hooks, k, wrapChild);
|
|
422
|
+
}
|
|
423
|
+
}, formState.data.fields[compoundField.field], renderers));
|
|
424
|
+
}
|
|
425
|
+
return wrapElem(renderers.renderGroup({
|
|
426
|
+
definition: groupDef,
|
|
427
|
+
childCount: groupDef.children.length,
|
|
428
|
+
properties: groupProps,
|
|
429
|
+
renderChild: function renderChild(c, wrapChild) {
|
|
430
|
+
return renderControl(groupDef.children[c], formState, groupProps.hooks, c, wrapChild);
|
|
431
|
+
}
|
|
432
|
+
}));
|
|
433
|
+
} finally {
|
|
434
|
+
_effect4();
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
/** @trackControls */ /** @trackControls */
|
|
438
|
+
function DisplayRenderer(_ref5) {
|
|
439
|
+
var _effect5 = core.useComponentTracking();
|
|
440
|
+
try {
|
|
441
|
+
var hooks = _ref5.hooks,
|
|
442
|
+
wrapElem = _ref5.wrapElem,
|
|
443
|
+
formState = _ref5.formState,
|
|
444
|
+
displayDef = _ref5.displayDef;
|
|
445
|
+
var _useFormRendererCompo2 = useFormRendererComponents(),
|
|
446
|
+
renderDisplay = _useFormRendererCompo2.renderDisplay;
|
|
447
|
+
var displayProps = hooks.useDisplayProperties(formState, displayDef);
|
|
448
|
+
return wrapElem(renderDisplay({
|
|
449
|
+
definition: displayDef,
|
|
450
|
+
properties: displayProps
|
|
451
|
+
}));
|
|
452
|
+
} finally {
|
|
453
|
+
_effect5();
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
function controlForField(field, formState) {
|
|
457
|
+
var _ref6;
|
|
458
|
+
var refField = findField(formState.fields, field);
|
|
459
|
+
return (_ref6 = refField && formState.data.fields[refField.field]) != null ? _ref6 : core.newControl(undefined);
|
|
460
|
+
}
|
|
461
|
+
function fieldForControl(c) {
|
|
462
|
+
return isDataControl(c) ? c.field : isGroupControl(c) ? c.compoundField : undefined;
|
|
463
|
+
}
|
|
464
|
+
function isDataControl(c) {
|
|
465
|
+
return c.type === exports.ControlDefinitionType.Data;
|
|
466
|
+
}
|
|
467
|
+
function isGroupControl(c) {
|
|
468
|
+
return c.type === exports.ControlDefinitionType.Group;
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
function useDefaultValue(definition, field, formState, useExpression) {
|
|
472
|
+
var _definition$dynamic;
|
|
473
|
+
var valueExpression = (_definition$dynamic = definition.dynamic) == null ? void 0 : _definition$dynamic.find(function (x) {
|
|
474
|
+
return x.type === exports.DynamicPropertyType.DefaultValue;
|
|
475
|
+
});
|
|
476
|
+
if (valueExpression) {
|
|
477
|
+
return useExpression(valueExpression.expr, formState);
|
|
478
|
+
}
|
|
479
|
+
return field.defaultValue;
|
|
480
|
+
}
|
|
481
|
+
function useIsControlVisible(definition, formState, useExpression) {
|
|
482
|
+
var _definition$dynamic2, _ref2;
|
|
483
|
+
var visibleExpression = (_definition$dynamic2 = definition.dynamic) == null ? void 0 : _definition$dynamic2.find(function (x) {
|
|
484
|
+
return x.type === exports.DynamicPropertyType.Visible;
|
|
485
|
+
});
|
|
486
|
+
if (visibleExpression && visibleExpression.expr) {
|
|
487
|
+
return Boolean(useExpression(visibleExpression.expr, formState));
|
|
488
|
+
}
|
|
489
|
+
var schemaFields = formState.fields;
|
|
490
|
+
var _useMemo = React.useMemo(function () {
|
|
491
|
+
var _ref, _formState$data$field;
|
|
492
|
+
var typeField = schemaFields.find(function (x) {
|
|
493
|
+
return isScalarField(x) && x.isTypeField;
|
|
494
|
+
});
|
|
495
|
+
var typeControl = (_ref = typeField && ((_formState$data$field = formState.data.fields) == null ? void 0 : _formState$data$field[typeField.field])) != null ? _ref : core.newControl(undefined);
|
|
496
|
+
var compoundField = isGroupControl(definition) && definition.compoundField ? formState.data.fields[definition.compoundField] : undefined;
|
|
497
|
+
return {
|
|
498
|
+
typeControl: typeControl,
|
|
499
|
+
compoundField: compoundField
|
|
500
|
+
};
|
|
501
|
+
}, [schemaFields, formState.data]),
|
|
502
|
+
typeControl = _useMemo.typeControl,
|
|
503
|
+
compoundField = _useMemo.compoundField;
|
|
504
|
+
var fieldName = fieldForControl(definition);
|
|
505
|
+
var onlyForTypes = (_ref2 = fieldName ? findField(schemaFields, fieldName) : undefined) == null ? void 0 : _ref2.onlyForTypes;
|
|
506
|
+
return (!compoundField || compoundField.value != null) && (!onlyForTypes || onlyForTypes.length === 0 || Boolean(typeControl.value && onlyForTypes.includes(typeControl.value)));
|
|
507
|
+
}
|
|
508
|
+
function getDefaultScalarControlProperties(definition, field, visible, defaultValue, control, readonly) {
|
|
509
|
+
var _definition$required, _ref3;
|
|
510
|
+
return {
|
|
511
|
+
defaultValue: defaultValue,
|
|
512
|
+
options: getOptionsForScalarField(field),
|
|
513
|
+
required: (_definition$required = definition.required) != null ? _definition$required : false,
|
|
514
|
+
visible: visible,
|
|
515
|
+
readonly: (_ref3 = readonly != null ? readonly : definition.readonly) != null ? _ref3 : false,
|
|
516
|
+
control: control
|
|
517
|
+
};
|
|
518
|
+
}
|
|
519
|
+
function getOptionsForScalarField(field) {
|
|
520
|
+
var _field$options, _field$restrictions, _opts$length;
|
|
521
|
+
var opts = (_field$options = field.options) != null ? _field$options : (_field$restrictions = field.restrictions) == null ? void 0 : _field$restrictions.options;
|
|
522
|
+
if ((_opts$length = opts == null ? void 0 : opts.length) != null ? _opts$length : 0 > 0) {
|
|
523
|
+
return opts;
|
|
524
|
+
}
|
|
525
|
+
return undefined;
|
|
526
|
+
}
|
|
527
|
+
var defaultExpressionHook = function defaultExpressionHook(expr, formState) {
|
|
528
|
+
switch (expr.type) {
|
|
529
|
+
case exports.ExpressionType.FieldValue:
|
|
530
|
+
var fvExpr = expr;
|
|
531
|
+
return controlForField(fvExpr.field, formState).value === fvExpr.value;
|
|
532
|
+
default:
|
|
533
|
+
return undefined;
|
|
534
|
+
}
|
|
535
|
+
};
|
|
536
|
+
function createFormEditHooks(useExpression) {
|
|
537
|
+
return {
|
|
538
|
+
useExpression: useExpression,
|
|
539
|
+
useDataProperties: function useDataProperties(formState, definition, field) {
|
|
540
|
+
var visible = useIsControlVisible(definition, formState, useExpression);
|
|
541
|
+
var defaultValue = useDefaultValue(definition, field, formState, useExpression);
|
|
542
|
+
var scalarControl = formState.data.fields[field.field];
|
|
543
|
+
React.useEffect(function () {
|
|
544
|
+
if (!visible) scalarControl.value = null;else if (scalarControl.current.value == null) {
|
|
545
|
+
scalarControl.value = defaultValue;
|
|
546
|
+
}
|
|
547
|
+
}, [visible, defaultValue]);
|
|
548
|
+
return getDefaultScalarControlProperties(definition, field, visible, defaultValue, scalarControl, formState.readonly);
|
|
549
|
+
},
|
|
550
|
+
useDisplayProperties: function useDisplayProperties(fs, definition) {
|
|
551
|
+
var visible = useIsControlVisible(definition, fs, useExpression);
|
|
552
|
+
return {
|
|
553
|
+
visible: visible
|
|
554
|
+
};
|
|
555
|
+
},
|
|
556
|
+
useGroupProperties: function useGroupProperties(fs, definition, hooks) {
|
|
557
|
+
var visible = useIsControlVisible(definition, fs, useExpression);
|
|
558
|
+
return {
|
|
559
|
+
visible: visible,
|
|
560
|
+
hooks: hooks
|
|
561
|
+
};
|
|
562
|
+
},
|
|
563
|
+
useActionProperties: function useActionProperties(formState, definition) {
|
|
564
|
+
var visible = useIsControlVisible(definition, formState, useExpression);
|
|
565
|
+
return {
|
|
566
|
+
visible: visible,
|
|
567
|
+
onClick: function onClick() {}
|
|
568
|
+
};
|
|
569
|
+
}
|
|
570
|
+
};
|
|
571
|
+
}
|
|
572
|
+
|
|
573
|
+
exports.FormRendererProvider = FormRendererProvider;
|
|
574
|
+
exports.applyDefaultForField = applyDefaultForField;
|
|
575
|
+
exports.applyDefaultValues = applyDefaultValues;
|
|
576
|
+
exports.boolField = boolField;
|
|
577
|
+
exports.buildSchema = buildSchema;
|
|
578
|
+
exports.compoundField = compoundField;
|
|
579
|
+
exports.controlForField = controlForField;
|
|
580
|
+
exports.controlTitle = controlTitle;
|
|
581
|
+
exports.createFormEditHooks = createFormEditHooks;
|
|
582
|
+
exports.dataControl = dataControl;
|
|
583
|
+
exports.defaultCompoundField = defaultCompoundField;
|
|
584
|
+
exports.defaultExpressionHook = defaultExpressionHook;
|
|
585
|
+
exports.defaultScalarField = defaultScalarField;
|
|
586
|
+
exports.defaultValueForField = defaultValueForField;
|
|
587
|
+
exports.defaultValueForFields = defaultValueForFields;
|
|
588
|
+
exports.elementValueForField = elementValueForField;
|
|
31
589
|
exports.fieldDisplayName = fieldDisplayName;
|
|
590
|
+
exports.fieldForControl = fieldForControl;
|
|
591
|
+
exports.fieldHasTag = fieldHasTag;
|
|
592
|
+
exports.fieldValueExpr = fieldValueExpr;
|
|
593
|
+
exports.findCompoundField = findCompoundField;
|
|
594
|
+
exports.findField = findField;
|
|
595
|
+
exports.findScalarField = findScalarField;
|
|
596
|
+
exports.getDefaultScalarControlProperties = getDefaultScalarControlProperties;
|
|
597
|
+
exports.getOptionsForScalarField = getOptionsForScalarField;
|
|
598
|
+
exports.intField = intField;
|
|
599
|
+
exports.isActionControlsDefinition = isActionControlsDefinition;
|
|
600
|
+
exports.isCompoundField = isCompoundField;
|
|
601
|
+
exports.isDataControl = isDataControl;
|
|
602
|
+
exports.isDataControlDefinition = isDataControlDefinition;
|
|
603
|
+
exports.isDisplayControlsDefinition = isDisplayControlsDefinition;
|
|
604
|
+
exports.isGroupControl = isGroupControl;
|
|
605
|
+
exports.isGroupControlsDefinition = isGroupControlsDefinition;
|
|
606
|
+
exports.isScalarField = isScalarField;
|
|
607
|
+
exports.makeCompoundField = makeCompoundField;
|
|
608
|
+
exports.makeScalarField = makeScalarField;
|
|
609
|
+
exports.renderControl = renderControl;
|
|
610
|
+
exports.stringField = stringField;
|
|
611
|
+
exports.stringOptionsField = stringOptionsField;
|
|
612
|
+
exports.useDefaultValue = useDefaultValue;
|
|
613
|
+
exports.useFormRendererComponents = useFormRendererComponents;
|
|
614
|
+
exports.useIsControlVisible = useIsControlVisible;
|
|
615
|
+
exports.visibility = visibility;
|
|
616
|
+
exports.visitControlDefinition = visitControlDefinition;
|
|
617
|
+
exports.withScalarOptions = withScalarOptions;
|
|
618
|
+
//# sourceMappingURL=index.js.map
|