@earthranger/react-native-jsonforms-formatter 2.0.0-beta.3 → 2.0.0-beta.30
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/README.md +6 -0
- package/dist/bundle.js +1 -1
- package/dist/common/schemaUtils.d.ts +23 -0
- package/dist/common/schemaUtils.d.ts.map +1 -0
- package/dist/common/schemaUtils.js +56 -0
- package/dist/common/schemaUtils.js.map +1 -0
- package/dist/common/types.d.ts +26 -2
- package/dist/common/types.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/v2/conditions.d.ts +80 -0
- package/dist/v2/conditions.d.ts.map +1 -0
- package/dist/v2/conditions.js +364 -0
- package/dist/v2/conditions.js.map +1 -0
- package/dist/v2/generateUISchema.d.ts +1 -0
- package/dist/v2/generateUISchema.d.ts.map +1 -1
- package/dist/v2/generateUISchema.js +72 -2
- package/dist/v2/generateUISchema.js.map +1 -1
- package/dist/v2/index.d.ts +3 -1
- package/dist/v2/index.d.ts.map +1 -1
- package/dist/v2/index.js +4 -0
- package/dist/v2/index.js.map +1 -1
- package/dist/v2/mockData.d.ts.map +1 -1
- package/dist/v2/mockData.js +15 -6
- package/dist/v2/mockData.js.map +1 -1
- package/dist/v2/utils.d.ts +14 -4
- package/dist/v2/utils.d.ts.map +1 -1
- package/dist/v2/utils.js +172 -68
- package/dist/v2/utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,364 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Builds a JSON Schema for the CONTAINS operator.
|
|
3
|
+
* Handles array, object, and string field types via anyOf.
|
|
4
|
+
* When value is an array, all values must be contained; the string branch
|
|
5
|
+
* becomes unsatisfiable (const: null) since a string can't contain multiple
|
|
6
|
+
* independent required values simultaneously.
|
|
7
|
+
*/
|
|
8
|
+
export var buildContainsSchema = function (value) {
|
|
9
|
+
var values = Array.isArray(value) ? value : [value];
|
|
10
|
+
if (values.length === 1) {
|
|
11
|
+
var v = values[0];
|
|
12
|
+
return {
|
|
13
|
+
anyOf: [
|
|
14
|
+
{
|
|
15
|
+
allOf: [{ contains: { const: v } }],
|
|
16
|
+
type: 'array',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
required: [v],
|
|
20
|
+
type: 'object',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
pattern: v,
|
|
24
|
+
type: 'string',
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
anyOf: [
|
|
31
|
+
{
|
|
32
|
+
allOf: values.map(function (v) { return ({ contains: { const: v } }); }),
|
|
33
|
+
type: 'array',
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
required: values,
|
|
37
|
+
type: 'object',
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
// Impossible branch: a string cannot satisfy multiple simultaneous contains requirements
|
|
41
|
+
const: null,
|
|
42
|
+
type: 'string',
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Builds a JSON Schema for the IS_EMPTY operator.
|
|
49
|
+
* Returns a root-level schema (not field-scoped) because it must check for
|
|
50
|
+
* field absence using `not: { required: [fieldName] }`.
|
|
51
|
+
*/
|
|
52
|
+
export var buildIsEmptySchema = function (fieldName) {
|
|
53
|
+
var _a, _b, _c, _d;
|
|
54
|
+
return {
|
|
55
|
+
anyOf: [
|
|
56
|
+
{ not: { required: [fieldName] } },
|
|
57
|
+
{
|
|
58
|
+
properties: (_a = {}, _a[fieldName] = { maxItems: 0, type: 'array' }, _a),
|
|
59
|
+
required: [fieldName],
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
properties: (_b = {}, _b[fieldName] = { type: 'null' }, _b),
|
|
63
|
+
required: [fieldName],
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
properties: (_c = {}, _c[fieldName] = { maxProperties: 0, type: 'object' }, _c),
|
|
67
|
+
required: [fieldName],
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
properties: (_d = {}, _d[fieldName] = { maxLength: 0, type: 'string' }, _d),
|
|
71
|
+
required: [fieldName],
|
|
72
|
+
},
|
|
73
|
+
],
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* Builds a JSON Schema for the IS_NOT_EMPTY / HAS_INPUT operator.
|
|
78
|
+
* Matches when the field is present and has a meaningful (non-null, non-empty) value.
|
|
79
|
+
*/
|
|
80
|
+
export var buildHasInputSchema = function () {
|
|
81
|
+
return {
|
|
82
|
+
allOf: [
|
|
83
|
+
{ not: { type: 'null' } },
|
|
84
|
+
{
|
|
85
|
+
anyOf: [
|
|
86
|
+
{ type: 'array', minItems: 1 },
|
|
87
|
+
{ type: 'boolean' },
|
|
88
|
+
{ type: 'number' },
|
|
89
|
+
{ type: 'object', minProperties: 1 },
|
|
90
|
+
{ type: 'string', minLength: 1 },
|
|
91
|
+
],
|
|
92
|
+
},
|
|
93
|
+
],
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* Builds a JSON Schema for the DOES_NOT_HAVE_INPUT operator (legacy).
|
|
98
|
+
*/
|
|
99
|
+
export var buildDoesNotHaveInputSchema = function () {
|
|
100
|
+
return {
|
|
101
|
+
not: buildHasInputSchema(),
|
|
102
|
+
};
|
|
103
|
+
};
|
|
104
|
+
/**
|
|
105
|
+
* Builds a JSON Schema for the IS_EXACTLY operator.
|
|
106
|
+
* Handles array, boolean, number, object, and string field types via anyOf.
|
|
107
|
+
* When value is an array, non-array/object branches become unsatisfiable (const: null).
|
|
108
|
+
* When value is a single string parseable as boolean/number, those branches use the parsed value.
|
|
109
|
+
*/
|
|
110
|
+
export var buildIsExactlySchema = function (value) {
|
|
111
|
+
var values = Array.isArray(value) ? value : [value];
|
|
112
|
+
var isSingle = values.length === 1;
|
|
113
|
+
var arrayBranch = {
|
|
114
|
+
allOf: values.map(function (v) { return ({ contains: { const: v } }); }),
|
|
115
|
+
maxItems: values.length,
|
|
116
|
+
type: 'array',
|
|
117
|
+
};
|
|
118
|
+
// Boolean branch — meaningful only for single value parseable as boolean
|
|
119
|
+
var booleanConst = null;
|
|
120
|
+
if (isSingle) {
|
|
121
|
+
var lower = values[0].toLowerCase();
|
|
122
|
+
if (lower === 'true')
|
|
123
|
+
booleanConst = true;
|
|
124
|
+
else if (lower === 'false')
|
|
125
|
+
booleanConst = false;
|
|
126
|
+
}
|
|
127
|
+
var booleanBranch = booleanConst !== null
|
|
128
|
+
? { const: booleanConst, type: 'boolean' }
|
|
129
|
+
: { const: null, type: 'boolean' };
|
|
130
|
+
// Number branch — meaningful only for single value parseable as number
|
|
131
|
+
var numberConst = null;
|
|
132
|
+
if (isSingle) {
|
|
133
|
+
var parsed = Number(values[0]);
|
|
134
|
+
if (!isNaN(parsed) && values[0] !== '')
|
|
135
|
+
numberConst = parsed;
|
|
136
|
+
}
|
|
137
|
+
var numberBranch = numberConst !== null
|
|
138
|
+
? { const: numberConst, type: 'number' }
|
|
139
|
+
: { const: null, type: 'number' };
|
|
140
|
+
// Object branch — all values become required property keys
|
|
141
|
+
var objectProperties = {};
|
|
142
|
+
values.forEach(function (v) {
|
|
143
|
+
objectProperties[v] = {};
|
|
144
|
+
});
|
|
145
|
+
var objectBranch = {
|
|
146
|
+
properties: objectProperties,
|
|
147
|
+
required: values,
|
|
148
|
+
type: 'object',
|
|
149
|
+
unevaluatedProperties: false,
|
|
150
|
+
};
|
|
151
|
+
// String branch — meaningful only for single value
|
|
152
|
+
var stringBranch = isSingle
|
|
153
|
+
? { const: values[0], type: 'string' }
|
|
154
|
+
: { const: null, type: 'string' };
|
|
155
|
+
return {
|
|
156
|
+
anyOf: [arrayBranch, booleanBranch, numberBranch, objectBranch, stringBranch],
|
|
157
|
+
};
|
|
158
|
+
};
|
|
159
|
+
/**
|
|
160
|
+
* Builds a JSON Schema for the INPUT_IS_EXACTLY operator (legacy).
|
|
161
|
+
* Matches when the field value equals the specified value exactly.
|
|
162
|
+
*/
|
|
163
|
+
export var buildInputIsExactlySchema = function (value) {
|
|
164
|
+
if (value === null) {
|
|
165
|
+
return { type: 'null' };
|
|
166
|
+
}
|
|
167
|
+
if (typeof value === 'boolean') {
|
|
168
|
+
return { const: value };
|
|
169
|
+
}
|
|
170
|
+
if (typeof value === 'number') {
|
|
171
|
+
return { enum: [value, String(value)] };
|
|
172
|
+
}
|
|
173
|
+
var numValue = Number(value);
|
|
174
|
+
if (!isNaN(numValue) && value !== '') {
|
|
175
|
+
return { enum: [numValue, value] };
|
|
176
|
+
}
|
|
177
|
+
return { const: value };
|
|
178
|
+
};
|
|
179
|
+
/**
|
|
180
|
+
* Builds a JSON Schema for the IS_CONTAINED_BY operator.
|
|
181
|
+
* The condition is fulfilled when all elements of the field are included
|
|
182
|
+
* within the specified set of values.
|
|
183
|
+
*/
|
|
184
|
+
export var buildIsContainedBySchema = function (value) {
|
|
185
|
+
var values = Array.isArray(value) ? value : [value];
|
|
186
|
+
return {
|
|
187
|
+
anyOf: [
|
|
188
|
+
{ items: { enum: values }, minItems: 1, type: 'array' },
|
|
189
|
+
{ minProperties: 1, propertyNames: { enum: values }, type: 'object' },
|
|
190
|
+
{ enum: values, type: 'string' },
|
|
191
|
+
],
|
|
192
|
+
};
|
|
193
|
+
};
|
|
194
|
+
/**
|
|
195
|
+
* Builds a JSON Schema for the IS_NOT_CONTAINED_BY operator.
|
|
196
|
+
* The condition is fulfilled when at least one element of the field is not
|
|
197
|
+
* included within the specified set of values.
|
|
198
|
+
*/
|
|
199
|
+
export var buildIsNotContainedBySchema = function (value) {
|
|
200
|
+
var values = Array.isArray(value) ? value : [value];
|
|
201
|
+
return {
|
|
202
|
+
anyOf: [
|
|
203
|
+
{
|
|
204
|
+
allOf: [
|
|
205
|
+
{ minItems: 1, type: 'array' },
|
|
206
|
+
{ not: { items: { enum: values }, type: 'array' } },
|
|
207
|
+
],
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
allOf: [
|
|
211
|
+
{ minProperties: 1, type: 'object' },
|
|
212
|
+
{ not: { propertyNames: { enum: values }, type: 'object' } },
|
|
213
|
+
],
|
|
214
|
+
},
|
|
215
|
+
{ not: { enum: values }, type: 'string' },
|
|
216
|
+
],
|
|
217
|
+
};
|
|
218
|
+
};
|
|
219
|
+
var VALID_OPERATORS = [
|
|
220
|
+
'CONTAINS',
|
|
221
|
+
'DOES_NOT_HAVE_INPUT',
|
|
222
|
+
'HAS_INPUT',
|
|
223
|
+
'INPUT_IS_EXACTLY',
|
|
224
|
+
'IS_CONTAINED_BY',
|
|
225
|
+
'IS_EMPTY',
|
|
226
|
+
'IS_EXACTLY',
|
|
227
|
+
'IS_NOT_CONTAINED_BY',
|
|
228
|
+
'IS_NOT_EMPTY',
|
|
229
|
+
];
|
|
230
|
+
/**
|
|
231
|
+
* Gets the operator schema for a condition.
|
|
232
|
+
* Note: IS_EMPTY is root-scoped; callers that need field-scoped wrapping
|
|
233
|
+
* should use buildConditionSchema instead.
|
|
234
|
+
*/
|
|
235
|
+
export var getOperatorSchema = function (condition) {
|
|
236
|
+
switch (condition.operator) {
|
|
237
|
+
case 'CONTAINS':
|
|
238
|
+
if (condition.value === undefined || condition.value === null) {
|
|
239
|
+
throw new Error("CONTAINS operator requires a value for condition '".concat(condition.id, "'"));
|
|
240
|
+
}
|
|
241
|
+
return buildContainsSchema(condition.value);
|
|
242
|
+
case 'DOES_NOT_HAVE_INPUT':
|
|
243
|
+
return buildDoesNotHaveInputSchema();
|
|
244
|
+
case 'HAS_INPUT':
|
|
245
|
+
case 'IS_NOT_EMPTY':
|
|
246
|
+
return buildHasInputSchema();
|
|
247
|
+
case 'IS_EMPTY':
|
|
248
|
+
return buildIsEmptySchema(condition.field);
|
|
249
|
+
case 'INPUT_IS_EXACTLY':
|
|
250
|
+
if (condition.value === undefined) {
|
|
251
|
+
throw new Error("INPUT_IS_EXACTLY operator requires a value for condition '".concat(condition.id, "'"));
|
|
252
|
+
}
|
|
253
|
+
return buildInputIsExactlySchema(condition.value);
|
|
254
|
+
case 'IS_EXACTLY':
|
|
255
|
+
if (condition.value === undefined || condition.value === null) {
|
|
256
|
+
throw new Error("IS_EXACTLY operator requires a value for condition '".concat(condition.id, "'"));
|
|
257
|
+
}
|
|
258
|
+
return buildIsExactlySchema(condition.value);
|
|
259
|
+
case 'IS_CONTAINED_BY':
|
|
260
|
+
if (condition.value === undefined || condition.value === null) {
|
|
261
|
+
throw new Error("IS_CONTAINED_BY operator requires a value for condition '".concat(condition.id, "'"));
|
|
262
|
+
}
|
|
263
|
+
return buildIsContainedBySchema(condition.value);
|
|
264
|
+
case 'IS_NOT_CONTAINED_BY':
|
|
265
|
+
if (condition.value === undefined || condition.value === null) {
|
|
266
|
+
throw new Error("IS_NOT_CONTAINED_BY operator requires a value for condition '".concat(condition.id, "'"));
|
|
267
|
+
}
|
|
268
|
+
return buildIsNotContainedBySchema(condition.value);
|
|
269
|
+
default:
|
|
270
|
+
throw new Error("Unknown operator '".concat(condition.operator, "' in condition '").concat(condition.id, "'"));
|
|
271
|
+
}
|
|
272
|
+
};
|
|
273
|
+
/**
|
|
274
|
+
* Builds a root-scoped JSON Schema for a single condition.
|
|
275
|
+
* IS_EMPTY contributes its root-level anyOf directly; all other operators
|
|
276
|
+
* are wrapped in a properties/required structure.
|
|
277
|
+
*/
|
|
278
|
+
export var buildConditionSchema = function (condition) {
|
|
279
|
+
var _a;
|
|
280
|
+
if (condition.operator === 'IS_EMPTY') {
|
|
281
|
+
return buildIsEmptySchema(condition.field);
|
|
282
|
+
}
|
|
283
|
+
var operatorSchema = getOperatorSchema(condition);
|
|
284
|
+
return {
|
|
285
|
+
properties: (_a = {},
|
|
286
|
+
_a[condition.field] = operatorSchema,
|
|
287
|
+
_a),
|
|
288
|
+
required: [condition.field],
|
|
289
|
+
};
|
|
290
|
+
};
|
|
291
|
+
/**
|
|
292
|
+
* Builds a JSONForms schema-based condition from one or more V2 conditions.
|
|
293
|
+
*
|
|
294
|
+
* Single condition:
|
|
295
|
+
* - IS_EMPTY → root scope "#" (must check for field absence at object level)
|
|
296
|
+
* - All others → field scope "#/properties/fieldName"
|
|
297
|
+
*
|
|
298
|
+
* Multiple conditions: root scope "#" with allOf combining all condition schemas.
|
|
299
|
+
*/
|
|
300
|
+
export var buildSchemaBasedCondition = function (conditions) {
|
|
301
|
+
if (conditions.length === 0) {
|
|
302
|
+
throw new Error('At least one condition is required');
|
|
303
|
+
}
|
|
304
|
+
if (conditions.length === 1) {
|
|
305
|
+
var condition = conditions[0];
|
|
306
|
+
if (condition.operator === 'IS_EMPTY') {
|
|
307
|
+
return {
|
|
308
|
+
scope: '#',
|
|
309
|
+
schema: buildIsEmptySchema(condition.field),
|
|
310
|
+
};
|
|
311
|
+
}
|
|
312
|
+
return {
|
|
313
|
+
scope: "#/properties/".concat(condition.field),
|
|
314
|
+
schema: getOperatorSchema(condition),
|
|
315
|
+
};
|
|
316
|
+
}
|
|
317
|
+
// Multiple conditions: combine with allOf at root scope
|
|
318
|
+
var allOfSchemas = conditions.map(function (condition) { return buildConditionSchema(condition); });
|
|
319
|
+
return {
|
|
320
|
+
scope: '#',
|
|
321
|
+
schema: {
|
|
322
|
+
allOf: allOfSchemas,
|
|
323
|
+
},
|
|
324
|
+
};
|
|
325
|
+
};
|
|
326
|
+
/**
|
|
327
|
+
* Creates a complete JSONForms rule for a section with the given conditions.
|
|
328
|
+
*/
|
|
329
|
+
export var createSectionRule = function (conditions) {
|
|
330
|
+
return {
|
|
331
|
+
effect: 'SHOW',
|
|
332
|
+
condition: buildSchemaBasedCondition(conditions),
|
|
333
|
+
};
|
|
334
|
+
};
|
|
335
|
+
/**
|
|
336
|
+
* Validates conditions for a section.
|
|
337
|
+
* Throws an error if any condition is invalid.
|
|
338
|
+
*/
|
|
339
|
+
export var validateConditions = function (conditions, fieldNames) {
|
|
340
|
+
var requiresValue = [
|
|
341
|
+
'CONTAINS',
|
|
342
|
+
'IS_EXACTLY',
|
|
343
|
+
'IS_CONTAINED_BY',
|
|
344
|
+
'IS_NOT_CONTAINED_BY',
|
|
345
|
+
];
|
|
346
|
+
for (var _i = 0, conditions_1 = conditions; _i < conditions_1.length; _i++) {
|
|
347
|
+
var condition = conditions_1[_i];
|
|
348
|
+
if (!VALID_OPERATORS.includes(condition.operator)) {
|
|
349
|
+
throw new Error("Invalid operator '".concat(condition.operator, "'"));
|
|
350
|
+
}
|
|
351
|
+
if (!fieldNames.includes(condition.field)) {
|
|
352
|
+
throw new Error("Unknown field '".concat(condition.field, "'"));
|
|
353
|
+
}
|
|
354
|
+
if (requiresValue.includes(condition.operator) &&
|
|
355
|
+
(condition.value === undefined || condition.value === null)) {
|
|
356
|
+
throw new Error("".concat(condition.operator, " operator requires a value"));
|
|
357
|
+
}
|
|
358
|
+
if (condition.operator === 'INPUT_IS_EXACTLY' &&
|
|
359
|
+
condition.value === undefined) {
|
|
360
|
+
throw new Error("INPUT_IS_EXACTLY operator requires a value");
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
};
|
|
364
|
+
//# sourceMappingURL=conditions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conditions.js","sourceRoot":"","sources":["../../src/v2/conditions.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ import { V2Schema, JSONFormsUISchema } from '../common/types';
|
|
|
9
9
|
*
|
|
10
10
|
* @param schema - EarthRanger V2 schema with json and ui properties
|
|
11
11
|
* @returns JSONForms UI schema with single-column VerticalLayout for React Native
|
|
12
|
+
* @throws Error if schema has invalid structure or unsupported field configurations
|
|
12
13
|
*/
|
|
13
14
|
export declare const generateUISchema: (schema: V2Schema) => JSONFormsUISchema;
|
|
14
15
|
//# sourceMappingURL=generateUISchema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateUISchema.d.ts","sourceRoot":"","sources":["../../src/v2/generateUISchema.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,iBAAiB,EAElB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"generateUISchema.d.ts","sourceRoot":"","sources":["../../src/v2/generateUISchema.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,iBAAiB,EAElB,MAAM,iBAAiB,CAAC;AAoFzB;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,WAAY,QAAQ,KAAG,iBA0CnD,CAAC"}
|
|
@@ -7,7 +7,72 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
7
7
|
}
|
|
8
8
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
9
9
|
};
|
|
10
|
-
import { createControl, createSectionLayout, getVisibleFields, groupFieldsBySection } from './utils';
|
|
10
|
+
import { createControl, createSectionLayout, extractConditionalProperties, extractConditionalRequired, getVisibleFields, groupFieldsBySection } from './utils';
|
|
11
|
+
import { validateConditions } from './conditions';
|
|
12
|
+
/**
|
|
13
|
+
* Validates V2 schema structure for known issues
|
|
14
|
+
*/
|
|
15
|
+
var validateV2Schema = function (schema) {
|
|
16
|
+
var invalidFields = [];
|
|
17
|
+
var supportedFieldTypes = ['BOOLEAN', 'TEXT', 'NUMERIC', 'DATE_TIME', 'CHOICE_LIST', 'LOCATION', 'COLLECTION', 'ATTACHMENT'];
|
|
18
|
+
// Check each field for validity
|
|
19
|
+
Object.entries(schema.json.properties).forEach(function (_a) {
|
|
20
|
+
var _b;
|
|
21
|
+
var fieldName = _a[0], property = _a[1];
|
|
22
|
+
var uiField = schema.ui.fields[fieldName];
|
|
23
|
+
// Skip deprecated fields without UI definitions (they won't be rendered anyway)
|
|
24
|
+
if (!uiField && property.deprecated) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
if (!uiField) {
|
|
28
|
+
invalidFields.push("".concat(fieldName, ": missing UI field definition"));
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
// Check for unsupported field types
|
|
32
|
+
if (!supportedFieldTypes.includes(uiField.type)) {
|
|
33
|
+
invalidFields.push("".concat(fieldName, ": unsupported field type '").concat(uiField.type, "'"));
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
// Check CHOICE_LIST fields for valid structure (not content)
|
|
37
|
+
if (uiField.type === 'CHOICE_LIST') {
|
|
38
|
+
var hasValidStructure = false;
|
|
39
|
+
if (property.type === 'array' && ((_b = property.items) === null || _b === void 0 ? void 0 : _b.anyOf)) {
|
|
40
|
+
// Check for oneOf arrays in anyOf items for array types (no $ref support)
|
|
41
|
+
hasValidStructure = property.items.anyOf.some(function (anyOfItem) {
|
|
42
|
+
return anyOfItem.oneOf && Array.isArray(anyOfItem.oneOf);
|
|
43
|
+
} // Empty arrays are valid
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
else if (property.anyOf) {
|
|
47
|
+
// Check direct anyOf structure for string types (no $ref support)
|
|
48
|
+
hasValidStructure = property.anyOf.some(function (anyOfItem) {
|
|
49
|
+
return anyOfItem.oneOf && Array.isArray(anyOfItem.oneOf);
|
|
50
|
+
} // Empty arrays are valid
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
if (!hasValidStructure) {
|
|
54
|
+
invalidFields.push("".concat(fieldName, ": CHOICE_LIST field requires embedded oneOf arrays - $ref not supported"));
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
// Validate section conditions
|
|
59
|
+
var conditionalProperties = extractConditionalProperties(schema);
|
|
60
|
+
var fieldNames = __spreadArray(__spreadArray([], Object.keys(schema.json.properties), true), Object.keys(conditionalProperties), true);
|
|
61
|
+
Object.entries(schema.ui.sections).forEach(function (_a) {
|
|
62
|
+
var sectionId = _a[0], section = _a[1];
|
|
63
|
+
if (section.conditions && section.conditions.length > 0) {
|
|
64
|
+
try {
|
|
65
|
+
validateConditions(section.conditions, fieldNames);
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
invalidFields.push("Section '".concat(sectionId, "': ").concat(error.message));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
if (invalidFields.length > 0) {
|
|
73
|
+
throw new Error("Invalid V2 schema structure: ".concat(invalidFields.join(', ')));
|
|
74
|
+
}
|
|
75
|
+
};
|
|
11
76
|
/**
|
|
12
77
|
* Generates a JSONForms-compatible UI schema from a EarthRanger V2 schema format
|
|
13
78
|
*
|
|
@@ -18,12 +83,17 @@ import { createControl, createSectionLayout, getVisibleFields, groupFieldsBySect
|
|
|
18
83
|
*
|
|
19
84
|
* @param schema - EarthRanger V2 schema with json and ui properties
|
|
20
85
|
* @returns JSONForms UI schema with single-column VerticalLayout for React Native
|
|
86
|
+
* @throws Error if schema has invalid structure or unsupported field configurations
|
|
21
87
|
*/
|
|
22
88
|
export var generateUISchema = function (schema) {
|
|
89
|
+
// Validate schema structure first
|
|
90
|
+
validateV2Schema(schema);
|
|
23
91
|
// Get all visible (non-deprecated) fields
|
|
24
92
|
var visibleFields = getVisibleFields(schema);
|
|
25
93
|
// Group fields by their parent sections
|
|
26
94
|
var fieldsBySection = groupFieldsBySection(visibleFields, schema.ui.sections);
|
|
95
|
+
// Get conditionally required fields
|
|
96
|
+
var conditionallyRequiredFields = extractConditionalRequired(schema);
|
|
27
97
|
// Create section layouts in the specified order
|
|
28
98
|
var sectionLayouts = [];
|
|
29
99
|
schema.ui.order.forEach(function (sectionId) {
|
|
@@ -36,7 +106,7 @@ export var generateUISchema = function (schema) {
|
|
|
36
106
|
if ((section === null || section === void 0 ? void 0 : section.isActive) && (hasFields || hasHeaders)) {
|
|
37
107
|
var sectionControls = sectionFields.map(function (_a) {
|
|
38
108
|
var name = _a.name, property = _a.property, uiField = _a.uiField;
|
|
39
|
-
return createControl(name, property, uiField);
|
|
109
|
+
return createControl(name, property, uiField, schema, conditionallyRequiredFields.has(name));
|
|
40
110
|
});
|
|
41
111
|
var sectionLayout = createSectionLayout(sectionId, section, sectionControls, schema.ui.headers);
|
|
42
112
|
sectionLayouts.push(sectionLayout);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateUISchema.js","sourceRoot":"","sources":["../../src/v2/generateUISchema.ts"],"names":[],"mappings":";;;;;;;;;AAMA,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAEjB
|
|
1
|
+
{"version":3,"file":"generateUISchema.js","sourceRoot":"","sources":["../../src/v2/generateUISchema.ts"],"names":[],"mappings":"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"}
|
package/dist/v2/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export { generateUISchema } from './generateUISchema';
|
|
2
|
-
export
|
|
2
|
+
export { buildConditionSchema, buildContainsSchema, buildIsContainedBySchema, buildIsEmptySchema, buildIsExactlySchema, buildIsNotContainedBySchema, buildSchemaBasedCondition, createSectionRule, validateConditions, } from './conditions';
|
|
3
|
+
export { extractConditionalProperties, extractConditionalRequired } from './utils';
|
|
4
|
+
export type { V2Schema, V2Property, V2UIField, V2Section, V2Header, V2Condition, V2ConditionOperator, JSONFormsUISchema, JSONFormsRule, JSONFormsRuleEffect, JSONFormsSchemaBasedCondition } from '../common/types';
|
|
3
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/v2/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/v2/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,YAAY,EACV,QAAQ,EACR,UAAU,EACV,SAAS,EACT,SAAS,EACT,QAAQ,EACR,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/v2/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,EAClB,oBAAoB,EACpB,2BAA2B,EAC3B,yBAAyB,EACzB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,4BAA4B,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAGnF,YAAY,EACV,QAAQ,EACR,UAAU,EACV,SAAS,EACT,SAAS,EACT,QAAQ,EACR,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,6BAA6B,EAC9B,MAAM,iBAAiB,CAAC"}
|
package/dist/v2/index.js
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
// V2 API exports - new JSONForms v2 schema format
|
|
2
2
|
export { generateUISchema } from './generateUISchema';
|
|
3
|
+
// Condition utilities
|
|
4
|
+
export { buildConditionSchema, buildContainsSchema, buildIsContainedBySchema, buildIsEmptySchema, buildIsExactlySchema, buildIsNotContainedBySchema, buildSchemaBasedCondition, createSectionRule, validateConditions, } from './conditions';
|
|
5
|
+
// Schema utilities
|
|
6
|
+
export { extractConditionalProperties, extractConditionalRequired } from './utils';
|
|
3
7
|
//# sourceMappingURL=index.js.map
|
package/dist/v2/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/v2/index.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/v2/index.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,sBAAsB;AACtB,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,EAClB,oBAAoB,EACpB,2BAA2B,EAC3B,yBAAyB,EACzB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAEtB,mBAAmB;AACnB,OAAO,EAAE,4BAA4B,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mockData.d.ts","sourceRoot":"","sources":["../../src/v2/mockData.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"mockData.d.ts","sourceRoot":"","sources":["../../src/v2/mockData.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,eAAO,MAAM,YAAY,UAoPZ,CAAC;AAEd,eAAO,MAAM,yBAAyB,EAAE,GA+FvC,CAAC"}
|
package/dist/v2/mockData.js
CHANGED
|
@@ -26,7 +26,11 @@ export var mockV2Schema = {
|
|
|
26
26
|
"type": "string",
|
|
27
27
|
"anyOf": [
|
|
28
28
|
{
|
|
29
|
-
"
|
|
29
|
+
"oneOf": [
|
|
30
|
+
{ "const": "routine", "title": "Routine Patrol" },
|
|
31
|
+
{ "const": "emergency", "title": "Emergency Response" },
|
|
32
|
+
{ "const": "investigation", "title": "Investigation" }
|
|
33
|
+
]
|
|
30
34
|
}
|
|
31
35
|
]
|
|
32
36
|
},
|
|
@@ -81,7 +85,12 @@ export var mockV2Schema = {
|
|
|
81
85
|
"type": "string",
|
|
82
86
|
"anyOf": [
|
|
83
87
|
{
|
|
84
|
-
"
|
|
88
|
+
"oneOf": [
|
|
89
|
+
{ "const": "excellent", "title": "Excellent" },
|
|
90
|
+
{ "const": "good", "title": "Good" },
|
|
91
|
+
{ "const": "fair", "title": "Fair" },
|
|
92
|
+
{ "const": "poor", "title": "Poor" }
|
|
93
|
+
]
|
|
85
94
|
}
|
|
86
95
|
]
|
|
87
96
|
}
|
|
@@ -145,20 +154,20 @@ export var mockV2Schema = {
|
|
|
145
154
|
"equipment_used": {
|
|
146
155
|
"buttonText": "Add Equipment",
|
|
147
156
|
"columns": 1,
|
|
148
|
-
"itemIdentifier": "item_name",
|
|
157
|
+
"itemIdentifier": "equipment_used.item_name",
|
|
149
158
|
"itemName": "Equipment Item",
|
|
150
|
-
"leftColumn": ["item_name", "item_condition"],
|
|
159
|
+
"leftColumn": ["equipment_used.item_name", "equipment_used.item_condition"],
|
|
151
160
|
"rightColumn": [],
|
|
152
161
|
"parent": "section-location",
|
|
153
162
|
"type": "COLLECTION"
|
|
154
163
|
},
|
|
155
|
-
"item_name": {
|
|
164
|
+
"equipment_used.item_name": {
|
|
156
165
|
"inputType": "SHORT_TEXT",
|
|
157
166
|
"parent": "equipment_used",
|
|
158
167
|
"placeholder": "Equipment name",
|
|
159
168
|
"type": "TEXT"
|
|
160
169
|
},
|
|
161
|
-
"item_condition": {
|
|
170
|
+
"equipment_used.item_condition": {
|
|
162
171
|
"choices": {
|
|
163
172
|
"eventTypeCategories": [],
|
|
164
173
|
"existingChoiceList": ["item_condition"],
|
package/dist/v2/mockData.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mockData.js","sourceRoot":"","sources":["../../src/v2/mockData.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAI3B,MAAM,CAAC,IAAM,YAAY,GAAG;IAC1B,MAAM,EAAE;QACN,SAAS,EAAE,8CAA8C;QACzD,sBAAsB,EAAE,KAAK;QAC7B,YAAY,EAAE;YACZ,eAAe,EAAE;gBACf,YAAY,EAAE,KAAK;gBACnB,aAAa,EAAE,2BAA2B;gBAC1C,OAAO,EAAE,eAAe;gBACxB,MAAM,EAAE,QAAQ;gBAChB,SAAS,EAAE,EAAE;aACd;YACD,aAAa,EAAE;gBACb,YAAY,EAAE,KAAK;gBACnB,aAAa,EAAE,gCAAgC;gBAC/C,OAAO,EAAE,aAAa;gBACtB,MAAM,EAAE,QAAQ;gBAChB,SAAS,EAAE,CAAC;gBACZ,SAAS,EAAE,EAAE;aACd;YACD,iBAAiB,EAAE;gBACjB,YAAY,EAAE,KAAK;gBACnB,aAAa,EAAE,yBAAyB;gBACxC,OAAO,EAAE,iBAAiB;gBAC1B,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE;oBACP;wBACE,
|
|
1
|
+
{"version":3,"file":"mockData.js","sourceRoot":"","sources":["../../src/v2/mockData.ts"],"names":[],"mappings":"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"}
|