@axdspub/axiom-ui-forms 0.2.9 → 0.3.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/README.md +272 -272
- package/library/axiom-ui-forms.d.ts +213 -77
- package/library/esm/_virtual/_commonjsHelpers.js +26 -1
- package/library/esm/_virtual/_commonjsHelpers.js.map +1 -1
- package/library/esm/_virtual/_freeGlobal.js +7 -0
- package/library/esm/_virtual/_freeGlobal.js.map +1 -0
- package/library/esm/_virtual/get.js +8 -0
- package/library/esm/_virtual/get.js.map +1 -0
- package/library/esm/_virtual/index10.js +2 -2
- package/library/esm/_virtual/index11.js +2 -2
- package/library/esm/_virtual/index12.js +2 -6
- package/library/esm/_virtual/index12.js.map +1 -1
- package/library/esm/_virtual/index13.js +2 -6
- package/library/esm/_virtual/index13.js.map +1 -1
- package/library/esm/_virtual/index3.js +2 -2
- package/library/esm/_virtual/index3.js.map +1 -1
- package/library/esm/_virtual/index5.js +2 -2
- package/library/esm/_virtual/index6.js +2 -2
- package/library/esm/_virtual/index6.js.map +1 -1
- package/library/esm/_virtual/index7.js +6 -2
- package/library/esm/_virtual/index7.js.map +1 -1
- package/library/esm/_virtual/index8.js +6 -2
- package/library/esm/_virtual/index8.js.map +1 -1
- package/library/esm/_virtual/index9.js +2 -2
- package/library/esm/_virtual/set.js +8 -0
- package/library/esm/_virtual/set.js.map +1 -0
- package/library/esm/node_modules/@axdspub/axiom-ui-utilities/library/index.js +1 -1
- package/library/esm/node_modules/@axdspub/axiom-ui-utilities/library/index.js.map +1 -1
- package/library/esm/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js +23 -1
- package/library/esm/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js.map +1 -1
- package/library/esm/node_modules/ajv/dist/compile/codegen/index.js +1 -1
- package/library/esm/node_modules/ajv/dist/compile/index.js +1 -1
- package/library/esm/node_modules/ajv/dist/compile/validate/index.js +1 -1
- package/library/esm/node_modules/ajv/dist/vocabularies/applicator/index.js +1 -1
- package/library/esm/node_modules/ajv/dist/vocabularies/core/index.js +1 -1
- package/library/esm/node_modules/ajv/dist/vocabularies/format/index.js +1 -1
- package/library/esm/node_modules/ajv/dist/vocabularies/validation/index.js +1 -1
- package/library/esm/node_modules/hast-util-to-jsx-runtime/lib/index.js +1 -1
- package/library/esm/node_modules/jotai/esm/react.js +135 -0
- package/library/esm/node_modules/jotai/esm/react.js.map +1 -0
- package/library/esm/node_modules/jotai/esm/vanilla/internals.js +551 -0
- package/library/esm/node_modules/jotai/esm/vanilla/internals.js.map +1 -0
- package/library/esm/node_modules/jotai/esm/vanilla.js +111 -0
- package/library/esm/node_modules/jotai/esm/vanilla.js.map +1 -0
- package/library/esm/node_modules/lodash/_Hash.js +49 -0
- package/library/esm/node_modules/lodash/_Hash.js.map +1 -0
- package/library/esm/node_modules/lodash/_ListCache.js +49 -0
- package/library/esm/node_modules/lodash/_ListCache.js.map +1 -0
- package/library/esm/node_modules/lodash/_Map.js +21 -0
- package/library/esm/node_modules/lodash/_Map.js.map +1 -0
- package/library/esm/node_modules/lodash/_MapCache.js +49 -0
- package/library/esm/node_modules/lodash/_MapCache.js.map +1 -0
- package/library/esm/node_modules/lodash/_Symbol.js +19 -0
- package/library/esm/node_modules/lodash/_Symbol.js.map +1 -0
- package/library/esm/node_modules/lodash/_arrayMap.js +33 -0
- package/library/esm/node_modules/lodash/_arrayMap.js.map +1 -0
- package/library/esm/node_modules/lodash/_assignValue.js +42 -0
- package/library/esm/node_modules/lodash/_assignValue.js.map +1 -0
- package/library/esm/node_modules/lodash/_assocIndexOf.js +34 -0
- package/library/esm/node_modules/lodash/_assocIndexOf.js.map +1 -0
- package/library/esm/node_modules/lodash/_baseAssignValue.js +38 -0
- package/library/esm/node_modules/lodash/_baseAssignValue.js.map +1 -0
- package/library/esm/node_modules/lodash/_baseGet.js +38 -0
- package/library/esm/node_modules/lodash/_baseGet.js.map +1 -0
- package/library/esm/node_modules/lodash/_baseGetTag.js +43 -0
- package/library/esm/node_modules/lodash/_baseGetTag.js.map +1 -0
- package/library/esm/node_modules/lodash/_baseIsNative.js +63 -0
- package/library/esm/node_modules/lodash/_baseIsNative.js.map +1 -0
- package/library/esm/node_modules/lodash/_baseSet.js +68 -0
- package/library/esm/node_modules/lodash/_baseSet.js.map +1 -0
- package/library/esm/node_modules/lodash/_baseToString.js +50 -0
- package/library/esm/node_modules/lodash/_baseToString.js.map +1 -0
- package/library/esm/node_modules/lodash/_castPath.js +37 -0
- package/library/esm/node_modules/lodash/_castPath.js.map +1 -0
- package/library/esm/node_modules/lodash/_coreJsData.js +19 -0
- package/library/esm/node_modules/lodash/_coreJsData.js.map +1 -0
- package/library/esm/node_modules/lodash/_defineProperty.js +24 -0
- package/library/esm/node_modules/lodash/_defineProperty.js.map +1 -0
- package/library/esm/node_modules/lodash/_freeGlobal.js +7 -0
- package/library/esm/node_modules/lodash/_freeGlobal.js.map +1 -0
- package/library/esm/node_modules/lodash/_getMapData.js +31 -0
- package/library/esm/node_modules/lodash/_getMapData.js.map +1 -0
- package/library/esm/node_modules/lodash/_getNative.js +31 -0
- package/library/esm/node_modules/lodash/_getNative.js.map +1 -0
- package/library/esm/node_modules/lodash/_getRawTag.js +59 -0
- package/library/esm/node_modules/lodash/_getRawTag.js.map +1 -0
- package/library/esm/node_modules/lodash/_getValue.js +25 -0
- package/library/esm/node_modules/lodash/_getValue.js.map +1 -0
- package/library/esm/node_modules/lodash/_hashClear.js +28 -0
- package/library/esm/node_modules/lodash/_hashClear.js.map +1 -0
- package/library/esm/node_modules/lodash/_hashDelete.js +29 -0
- package/library/esm/node_modules/lodash/_hashDelete.js.map +1 -0
- package/library/esm/node_modules/lodash/_hashGet.js +43 -0
- package/library/esm/node_modules/lodash/_hashGet.js.map +1 -0
- package/library/esm/node_modules/lodash/_hashHas.js +36 -0
- package/library/esm/node_modules/lodash/_hashHas.js.map +1 -0
- package/library/esm/node_modules/lodash/_hashSet.js +36 -0
- package/library/esm/node_modules/lodash/_hashSet.js.map +1 -0
- package/library/esm/node_modules/lodash/_isIndex.js +37 -0
- package/library/esm/node_modules/lodash/_isIndex.js.map +1 -0
- package/library/esm/node_modules/lodash/_isKey.js +43 -0
- package/library/esm/node_modules/lodash/_isKey.js.map +1 -0
- package/library/esm/node_modules/lodash/_isKeyable.js +27 -0
- package/library/esm/node_modules/lodash/_isKeyable.js.map +1 -0
- package/library/esm/node_modules/lodash/_isMasked.js +33 -0
- package/library/esm/node_modules/lodash/_isMasked.js.map +1 -0
- package/library/esm/node_modules/lodash/_listCacheClear.js +25 -0
- package/library/esm/node_modules/lodash/_listCacheClear.js.map +1 -0
- package/library/esm/node_modules/lodash/_listCacheDelete.js +48 -0
- package/library/esm/node_modules/lodash/_listCacheDelete.js.map +1 -0
- package/library/esm/node_modules/lodash/_listCacheGet.js +32 -0
- package/library/esm/node_modules/lodash/_listCacheGet.js.map +1 -0
- package/library/esm/node_modules/lodash/_listCacheHas.js +29 -0
- package/library/esm/node_modules/lodash/_listCacheHas.js.map +1 -0
- package/library/esm/node_modules/lodash/_listCacheSet.js +39 -0
- package/library/esm/node_modules/lodash/_listCacheSet.js.map +1 -0
- package/library/esm/node_modules/lodash/_mapCacheClear.js +36 -0
- package/library/esm/node_modules/lodash/_mapCacheClear.js.map +1 -0
- package/library/esm/node_modules/lodash/_mapCacheDelete.js +31 -0
- package/library/esm/node_modules/lodash/_mapCacheDelete.js.map +1 -0
- package/library/esm/node_modules/lodash/_mapCacheGet.js +29 -0
- package/library/esm/node_modules/lodash/_mapCacheGet.js.map +1 -0
- package/library/esm/node_modules/lodash/_mapCacheHas.js +29 -0
- package/library/esm/node_modules/lodash/_mapCacheHas.js.map +1 -0
- package/library/esm/node_modules/lodash/_mapCacheSet.js +35 -0
- package/library/esm/node_modules/lodash/_mapCacheSet.js.map +1 -0
- package/library/esm/node_modules/lodash/_memoizeCapped.js +39 -0
- package/library/esm/node_modules/lodash/_memoizeCapped.js.map +1 -0
- package/library/esm/node_modules/lodash/_nativeCreate.js +19 -0
- package/library/esm/node_modules/lodash/_nativeCreate.js.map +1 -0
- package/library/esm/node_modules/lodash/_objectToString.js +34 -0
- package/library/esm/node_modules/lodash/_objectToString.js.map +1 -0
- package/library/esm/node_modules/lodash/_root.js +22 -0
- package/library/esm/node_modules/lodash/_root.js.map +1 -0
- package/library/esm/node_modules/lodash/_stringToPath.js +40 -0
- package/library/esm/node_modules/lodash/_stringToPath.js.map +1 -0
- package/library/esm/node_modules/lodash/_toKey.js +31 -0
- package/library/esm/node_modules/lodash/_toKey.js.map +1 -0
- package/library/esm/node_modules/lodash/_toSource.js +38 -0
- package/library/esm/node_modules/lodash/_toSource.js.map +1 -0
- package/library/esm/node_modules/lodash/eq.js +49 -0
- package/library/esm/node_modules/lodash/eq.js.map +1 -0
- package/library/esm/node_modules/lodash/get.js +46 -0
- package/library/esm/node_modules/lodash/get.js.map +1 -0
- package/library/esm/node_modules/lodash/isArray.js +38 -0
- package/library/esm/node_modules/lodash/isArray.js.map +1 -0
- package/library/esm/node_modules/lodash/isFunction.js +51 -0
- package/library/esm/node_modules/lodash/isFunction.js.map +1 -0
- package/library/esm/node_modules/lodash/isObject.js +43 -0
- package/library/esm/node_modules/lodash/isObject.js.map +1 -0
- package/library/esm/node_modules/lodash/isObjectLike.js +41 -0
- package/library/esm/node_modules/lodash/isObjectLike.js.map +1 -0
- package/library/esm/node_modules/lodash/isSymbol.js +43 -0
- package/library/esm/node_modules/lodash/isSymbol.js.map +1 -0
- package/library/esm/node_modules/lodash/memoize.js +86 -0
- package/library/esm/node_modules/lodash/memoize.js.map +1 -0
- package/library/esm/node_modules/lodash/set.js +48 -0
- package/library/esm/node_modules/lodash/set.js.map +1 -0
- package/library/esm/node_modules/lodash/toString.js +41 -0
- package/library/esm/node_modules/lodash/toString.js.map +1 -0
- package/library/esm/node_modules/react-router/dist/development/chunk-HA7DTUK3.js +1 -1
- package/library/esm/node_modules/unified/lib/index.js +1 -1
- package/library/esm/src/Form/Components/FieldCreator.js +24 -7
- package/library/esm/src/Form/Components/FieldCreator.js.map +1 -1
- package/library/esm/src/Form/Components/FieldLabel.js +1 -1
- package/library/esm/src/Form/Components/FieldLabel.js.map +1 -1
- package/library/esm/src/Form/Components/InlineMarkdown.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/Boolean.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/Constant.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/Date.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/DateTime.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/GeoJSON.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/GeoJSONInputLoader.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/Geometry.js +38 -32
- package/library/esm/src/Form/Components/Inputs/Geometry.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/GeometryInputLoader.js +4 -1
- package/library/esm/src/Form/Components/Inputs/GeometryInputLoader.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/JSON.js +83 -42
- package/library/esm/src/Form/Components/Inputs/JSON.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/JSONInputLoader.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/LongString.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/Number.js +34 -9
- package/library/esm/src/Form/Components/Inputs/Number.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/Object.js +7 -2
- package/library/esm/src/Form/Components/Inputs/Object.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/OneOfInput.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/RadioGroup.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/SingleSelect.js +2 -1
- package/library/esm/src/Form/Components/Inputs/SingleSelect.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/String.js +2 -2
- package/library/esm/src/Form/Components/Inputs/String.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/Time.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/index.js +11 -0
- package/library/esm/src/Form/Components/Inputs/index.js.map +1 -0
- package/library/esm/src/Form/Components/Inputs/inputMap.js.map +1 -1
- package/library/esm/src/Form/Creator/FormContextProvider.js.map +1 -1
- package/library/esm/src/Form/Creator/FormCreator.js +20 -9
- package/library/esm/src/Form/Creator/FormCreator.js.map +1 -1
- package/library/esm/src/Form/Creator/FormFields.js.map +1 -1
- package/library/esm/src/Form/Creator/FormHeader.js.map +1 -1
- package/library/esm/src/Form/Creator/FormSection.js.map +1 -1
- package/library/esm/src/Form/Creator/FormSectionContextProvider.js.map +1 -1
- package/library/esm/src/Form/Creator/NavElement.js.map +1 -1
- package/library/esm/src/Form/Creator/Page.js +40 -7
- package/library/esm/src/Form/Creator/Page.js.map +1 -1
- package/library/esm/src/Form/Creator/Wizard.js +79 -22
- package/library/esm/src/Form/Creator/Wizard.js.map +1 -1
- package/library/esm/src/Form/Manage/CopyableJSONOutput.js +3 -3
- package/library/esm/src/Form/Manage/CopyableJSONOutput.js.map +1 -1
- package/library/esm/src/library.js +11 -13
- package/library/esm/src/library.js.map +1 -1
- package/library/esm/src/utils/getters.js +135 -0
- package/library/esm/src/utils/getters.js.map +1 -0
- package/library/esm/src/utils/manipulators.js +171 -0
- package/library/esm/src/utils/manipulators.js.map +1 -0
- package/library/esm/src/utils/resolveRefs.js +44 -0
- package/library/esm/src/utils/resolveRefs.js.map +1 -0
- package/library/esm/src/utils/responsive/layoutState.js +18 -0
- package/library/esm/src/utils/responsive/layoutState.js.map +1 -0
- package/library/esm/src/{Form → utils}/schemaToFormHelpers.js +157 -38
- package/library/esm/src/utils/schemaToFormHelpers.js.map +1 -0
- package/library/esm/src/utils/validators.js +38 -0
- package/library/esm/src/utils/validators.js.map +1 -0
- package/package.json +131 -124
- package/library/esm/src/Form/helpers.js +0 -162
- package/library/esm/src/Form/helpers.js.map +0 -1
- package/library/esm/src/Form/resolveRefs.js +0 -26
- package/library/esm/src/Form/resolveRefs.js.map +0 -1
- package/library/esm/src/Form/schemaToFormHelpers.js.map +0 -1
@@ -7,7 +7,8 @@ import metaSchemaV5 from '../../node_modules/ajv/lib/refs/json-schema-2020-12/sc
|
|
7
7
|
import metaSchemaV4 from '../../node_modules/ajv/lib/refs/json-schema-2019-09/schema.json.js';
|
8
8
|
import { resolveRefs } from './resolveRefs.js';
|
9
9
|
import { omit } from 'lodash';
|
10
|
-
import {
|
10
|
+
import { getFieldsFromFormSection, getPathFromField, makeJsonPath } from './getters.js';
|
11
|
+
import { copyAndAddPathToFields } from './manipulators.js';
|
11
12
|
|
12
13
|
var getValidator = function (schema) {
|
13
14
|
var ajv = new Ajv({
|
@@ -75,7 +76,7 @@ var makeLabel = function (options) {
|
|
75
76
|
return undefined;
|
76
77
|
}
|
77
78
|
return String(validOptions[0])
|
78
|
-
.replace(/_
|
79
|
+
.replace(/_|-/g, ' ')
|
79
80
|
.split(' ')
|
80
81
|
.map(function (s, i) {
|
81
82
|
return i === 0 ? "".concat(s.charAt(0).toUpperCase()).concat(s.slice(1)) : s;
|
@@ -134,6 +135,18 @@ var getValueFromSchema = function (schema) {
|
|
134
135
|
if (schema.const !== undefined) {
|
135
136
|
return String(schema.const);
|
136
137
|
}
|
138
|
+
if (schema.title !== undefined && schema.title !== null) {
|
139
|
+
return getValueFromSchema(schema.title);
|
140
|
+
}
|
141
|
+
if (schema.$id !== undefined && schema.$id !== null) {
|
142
|
+
if (typeof schema.$id === 'string' || typeof schema.$id === 'number') {
|
143
|
+
return makeLabel([String(schema.$id)]);
|
144
|
+
}
|
145
|
+
return getValueFromSchema(schema.$id);
|
146
|
+
}
|
147
|
+
if (Array.isArray(schema) && schema.length === 2) {
|
148
|
+
return typeof schema[0] === 'object' && schema[0] !== null ? getValueFromSchema(schema[0]) : schema[0];
|
149
|
+
}
|
137
150
|
return undefined;
|
138
151
|
};
|
139
152
|
var getLabelFromSchema = function (schema) {
|
@@ -155,11 +168,14 @@ var getLabelFromSchema = function (schema) {
|
|
155
168
|
if (schema.title !== undefined && schema.title !== null) {
|
156
169
|
return getLabelFromSchema(schema.title);
|
157
170
|
}
|
171
|
+
if (Array.isArray(schema) && schema.length === 2) {
|
172
|
+
return typeof schema[1] === 'object' && schema[1] !== null ? getLabelFromSchema(schema[1]) : schema[1];
|
173
|
+
}
|
158
174
|
return String(getValueFromSchema(schema));
|
159
175
|
};
|
160
176
|
var schemaToFormField = function (_a) {
|
161
|
-
var _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
162
|
-
var schema = _a.schema, property = _a.property, schemaField = _a.schemaField, multiple = _a.multiple,
|
177
|
+
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
178
|
+
var schema = _a.schema, property = _a.property, schemaField = _a.schemaField, multiple = _a.multiple, _m = _a.path, path = _m === void 0 ? [] : _m;
|
163
179
|
path.push(property);
|
164
180
|
if (schemaField === undefined) {
|
165
181
|
return {
|
@@ -212,13 +228,25 @@ var schemaToFormField = function (_a) {
|
|
212
228
|
label: label,
|
213
229
|
description: schemaField.description,
|
214
230
|
multiple: multiple,
|
231
|
+
defaultValue: schemaField.default !== undefined ? schemaField.default : undefined,
|
215
232
|
required: (_d = schemaRequired.includes(property)) !== null && _d !== void 0 ? _d : false
|
216
233
|
};
|
217
234
|
if (type === 'text' || type === 'number' || type === 'long_text' || type === 'boolean' || type === 'datetime' || type === 'date' || type === 'time') {
|
235
|
+
if (type === 'number' && (schemaField.minimum !== undefined || schemaField.maximum !== undefined)) {
|
236
|
+
var numberOb = ob;
|
237
|
+
numberOb.constraints = (_e = numberOb.constraints) !== null && _e !== void 0 ? _e : {};
|
238
|
+
if (schemaField.minimum !== undefined) {
|
239
|
+
numberOb.constraints.min = schemaField.minimum;
|
240
|
+
}
|
241
|
+
if (schemaField.maximum !== undefined) {
|
242
|
+
numberOb.constraints.max = schemaField.maximum;
|
243
|
+
}
|
244
|
+
return __assign(__assign({}, numberOb), { type: type });
|
245
|
+
}
|
218
246
|
return __assign(__assign({}, ob), { type: type });
|
219
247
|
}
|
220
248
|
if (type === 'select' || type === 'checkbox') {
|
221
|
-
var schemaOptions = (
|
249
|
+
var schemaOptions = (_h = (_g = (_f = schemaField.enum) !== null && _f !== void 0 ? _f : schemaField.oneOf) !== null && _g !== void 0 ? _g : schemaField.anyOf) !== null && _h !== void 0 ? _h : [];
|
222
250
|
var options = schemaOptions.map(function (e) {
|
223
251
|
var value = getValueFromSchema(e);
|
224
252
|
var label = getLabelFromSchema(e);
|
@@ -233,7 +261,7 @@ var schemaToFormField = function (_a) {
|
|
233
261
|
}
|
234
262
|
if (type === 'object') {
|
235
263
|
// const anyOfAsProps = schemaField.anyOf !== undefined && schemaField.anyOf.filter(d => typeof d !== 'boolean' && d.type !== 'null').length > 0
|
236
|
-
var properties = (
|
264
|
+
var properties = (_j = schemaField.properties) !== null && _j !== void 0 ? _j : {};
|
237
265
|
var fields_1 = [];
|
238
266
|
for (var key in properties) {
|
239
267
|
if (properties[key] !== undefined && typeof properties[key] !== 'boolean') {
|
@@ -289,7 +317,7 @@ var schemaToFormField = function (_a) {
|
|
289
317
|
fields_1.push(f);
|
290
318
|
});
|
291
319
|
}
|
292
|
-
var ofArr = ((
|
320
|
+
var ofArr = ((_k = schemaField.anyOf) !== null && _k !== void 0 ? _k : []).concat((_l = schemaField.allOf) !== null && _l !== void 0 ? _l : []);
|
293
321
|
ofArr.forEach(function (anyOf) {
|
294
322
|
var _a;
|
295
323
|
var anyOfId = schemaField.$id;
|
@@ -320,19 +348,64 @@ function mergeObjects(objects) {
|
|
320
348
|
var initialValue = {};
|
321
349
|
return objects.reduce(function (acc, obj) { return (__assign(__assign({}, acc), obj)); }, initialValue);
|
322
350
|
}
|
351
|
+
var mergeFormField = function (_a) {
|
352
|
+
var _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
353
|
+
var field = _a.field, fieldOverride = _a.fieldOverride, formFieldsOverrideMap = _a.formFieldsOverrideMap, schemaFieldMap = _a.schemaFieldMap;
|
354
|
+
var path = (_b = fieldOverride === null || fieldOverride === void 0 ? void 0 : fieldOverride.prop) !== null && _b !== void 0 ? _b : makeJsonPath(field);
|
355
|
+
var formFieldOverrides = mergeObjects(formFieldsOverrideMap.map(function (overrides) { return overrides[path !== null && path !== void 0 ? path : '']; }).filter(function (d) { return d !== undefined; }));
|
356
|
+
var mergedField = __assign({}, mergeObjects([
|
357
|
+
__assign(__assign({}, field), { destPath: path }),
|
358
|
+
formFieldOverrides,
|
359
|
+
(fieldOverride !== null && fieldOverride !== void 0 ? fieldOverride : {})
|
360
|
+
]));
|
361
|
+
var labelProp = (_c = mergedField.id) !== null && _c !== void 0 ? _c : (path !== undefined
|
362
|
+
? path.split('.').pop()
|
363
|
+
: (_d = fieldOverride === null || fieldOverride === void 0 ? void 0 : fieldOverride.prop) !== null && _d !== void 0 ? _d : field.id);
|
364
|
+
var id = (_e = mergedField.id) !== null && _e !== void 0 ? _e : makeFormFieldId([mergedField.id]);
|
365
|
+
if (mergedField.type === 'object') {
|
366
|
+
// attached to the schema field. defaults not overrides
|
367
|
+
var fieldFields = (field === null || field === void 0 ? void 0 : field.type) === 'object' ? field.fields : [];
|
368
|
+
var fieldFieldsMap_1 = Object.fromEntries(fieldFields.map(function (f) { return [getPathFromField(f), f]; }));
|
369
|
+
// attached to the field override. overrides
|
370
|
+
var overrideFields = (fieldOverride === null || fieldOverride === void 0 ? void 0 : fieldOverride.type) === 'object' ? ((_f = fieldOverride.fields) !== null && _f !== void 0 ? _f : []) : [];
|
371
|
+
var overrideFieldsMap_1 = Object.fromEntries(overrideFields
|
372
|
+
.filter(function (f) { return 'prop' in f; })
|
373
|
+
.map(function (f) { return [f.prop, f]; }));
|
374
|
+
// attached to the form override. overrides
|
375
|
+
var formOverrideFields = formFieldOverrides.type === 'object' ? (_g = formFieldOverrides.fields) !== null && _g !== void 0 ? _g : [] : [];
|
376
|
+
var formOverrideFieldsMap_1 = Object.fromEntries(formOverrideFields
|
377
|
+
.filter(function (f) { return 'prop' in f; })
|
378
|
+
.map(function (f) { return [f.prop, f]; }));
|
379
|
+
var allKeys = Object.keys(__assign(__assign(__assign({}, fieldFieldsMap_1), overrideFieldsMap_1), formOverrideFieldsMap_1));
|
380
|
+
mergedField.fields = allKeys.map(function (key) {
|
381
|
+
var _a;
|
382
|
+
// const fieldOverride = overrideFieldsMap[key] ?? { prop: key }
|
383
|
+
var fieldOverride = mergeObjects([
|
384
|
+
overrideFieldsMap_1[key],
|
385
|
+
formOverrideFieldsMap_1[key],
|
386
|
+
mergeObjects(formFieldsOverrideMap.map(function (overrides) { return overrides[key]; }).filter(function (d) { return d !== undefined; }))
|
387
|
+
]);
|
388
|
+
return mergeFormField({
|
389
|
+
field: (_a = fieldFieldsMap_1[key]) !== null && _a !== void 0 ? _a : schemaFieldMap[key],
|
390
|
+
fieldOverride: fieldOverride,
|
391
|
+
formFieldsOverrideMap: formFieldsOverrideMap,
|
392
|
+
schemaFieldMap: schemaFieldMap
|
393
|
+
});
|
394
|
+
});
|
395
|
+
}
|
396
|
+
return __assign({ type: (_h = mergedField.type) !== null && _h !== void 0 ? _h : 'text', id: id, label: (_k = (_j = mergedField.label) !== null && _j !== void 0 ? _j : makeLabel([labelProp])) !== null && _k !== void 0 ? _k : 'Default' }, mergedField);
|
397
|
+
};
|
323
398
|
var mergeFormFields = function (_a) {
|
324
399
|
var fieldOverrides = _a.fieldOverrides, schemaForm = _a.schemaForm, formFieldsOverrideMap = _a.formFieldsOverrideMap;
|
325
|
-
var
|
326
|
-
return (fieldOverrides !== null && fieldOverrides !== void 0 ? fieldOverrides : []).map(function (
|
327
|
-
var
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
var id = (_a = pageField.id) !== null && _a !== void 0 ? _a : makeFormFieldId([pageField.id]);
|
335
|
-
return __assign({ type: (_b = pageField.type) !== null && _b !== void 0 ? _b : 'text', id: id, label: (_d = (_c = pageField.label) !== null && _c !== void 0 ? _c : makeLabel([id])) !== null && _d !== void 0 ? _d : 'Default' }, pageField);
|
400
|
+
var schemaFieldMap = buildFieldMapFromForm(schemaForm);
|
401
|
+
return (fieldOverrides !== null && fieldOverrides !== void 0 ? fieldOverrides : []).map(function (fieldOverride) {
|
402
|
+
var schemaField = schemaFieldMap[fieldOverride.prop];
|
403
|
+
return mergeFormField({
|
404
|
+
field: schemaField,
|
405
|
+
fieldOverride: fieldOverride,
|
406
|
+
formFieldsOverrideMap: formFieldsOverrideMap,
|
407
|
+
schemaFieldMap: schemaFieldMap
|
408
|
+
});
|
336
409
|
});
|
337
410
|
};
|
338
411
|
var mergeFormSections = function (_a) {
|
@@ -364,58 +437,69 @@ var mergeFormSections = function (_a) {
|
|
364
437
|
return sections;
|
365
438
|
};
|
366
439
|
var overridesAndSchemaToFormObject = function (_a) {
|
367
|
-
var _b;
|
440
|
+
var _b, _c;
|
368
441
|
var formOverrides = _a.formOverrides, formFieldOverrides = _a.formFieldOverrides, schema = _a.schema;
|
369
442
|
var schemaForm = schemaToFormObject(schema);
|
443
|
+
var formFieldOverridesByProp = (_b = formFieldOverrides === null || formFieldOverrides === void 0 ? void 0 : formFieldOverrides.map(function (overrides) { return Object.fromEntries(overrides.map(function (override) { return [override.prop, override]; })); })) !== null && _b !== void 0 ? _b : [];
|
444
|
+
if (formOverrides === undefined && formFieldOverrides !== undefined) {
|
445
|
+
var schemaFieldMap_1 = buildFieldMapFromForm(schemaForm);
|
446
|
+
var fields = Object.values(schemaFieldMap_1).map(function (field) {
|
447
|
+
return mergeFormField({
|
448
|
+
field: field,
|
449
|
+
formFieldsOverrideMap: formFieldOverridesByProp,
|
450
|
+
schemaFieldMap: schemaFieldMap_1
|
451
|
+
});
|
452
|
+
});
|
453
|
+
return __assign(__assign({}, schemaForm), { fields: fields });
|
454
|
+
}
|
455
|
+
var mergedFormOverrides = mergeObjects(formOverrides !== null && formOverrides !== void 0 ? formOverrides : []);
|
370
456
|
var form = {
|
371
457
|
id: schemaForm.id,
|
372
|
-
label: schemaForm.label
|
458
|
+
label: (_c = mergedFormOverrides === null || mergedFormOverrides === void 0 ? void 0 : mergedFormOverrides.label) !== null && _c !== void 0 ? _c : schemaForm.label,
|
459
|
+
settings: mergedFormOverrides === null || mergedFormOverrides === void 0 ? void 0 : mergedFormOverrides.settings
|
373
460
|
};
|
374
|
-
var mergedFormOverrides = mergeObjects(formOverrides !== null && formOverrides !== void 0 ? formOverrides : []);
|
375
|
-
var formFieldsByProp = (_b = formFieldOverrides === null || formFieldOverrides === void 0 ? void 0 : formFieldOverrides.map(function (overrides) { return Object.fromEntries(overrides.map(function (override) { return [override.prop, override]; })); })) !== null && _b !== void 0 ? _b : [];
|
376
461
|
form.pages = mergedFormOverrides.pages !== undefined
|
377
462
|
? mergeFormSections({
|
378
463
|
sectionOverrides: mergedFormOverrides.pages,
|
379
464
|
schemaForm: schemaForm,
|
380
|
-
formFieldsOverrideMap:
|
465
|
+
formFieldsOverrideMap: formFieldOverridesByProp
|
381
466
|
})
|
382
467
|
: undefined;
|
383
468
|
form.wizard_steps = mergedFormOverrides.wizard_steps !== undefined
|
384
469
|
? mergeFormSections({
|
385
470
|
sectionOverrides: mergedFormOverrides.wizard_steps,
|
386
471
|
schemaForm: schemaForm,
|
387
|
-
formFieldsOverrideMap:
|
388
|
-
})
|
389
|
-
: undefined;
|
390
|
-
form.fields = mergedFormOverrides.fields !== undefined
|
391
|
-
? mergeFormFields({
|
392
|
-
fieldOverrides: mergedFormOverrides.fields,
|
393
|
-
schemaForm: schemaForm,
|
394
|
-
formFieldsOverrideMap: formFieldsByProp
|
472
|
+
formFieldsOverrideMap: formFieldOverridesByProp
|
395
473
|
})
|
396
474
|
: undefined;
|
475
|
+
form.fields = mergeFormFields({
|
476
|
+
fieldOverrides: mergedFormOverrides.fields,
|
477
|
+
schemaForm: schemaForm,
|
478
|
+
formFieldsOverrideMap: formFieldOverridesByProp
|
479
|
+
});
|
397
480
|
return form;
|
398
481
|
};
|
399
482
|
var schemaToFormObject = function (schema) {
|
400
483
|
var _a, _b;
|
484
|
+
var resolvedSchema = resolveRefs(schema);
|
401
485
|
var formFields = [];
|
402
|
-
for (var key in
|
403
|
-
if (
|
486
|
+
for (var key in resolvedSchema.properties) {
|
487
|
+
if (resolvedSchema.properties[key] !== undefined && typeof resolvedSchema.properties[key] !== 'boolean') {
|
404
488
|
formFields.push(schemaToFormField({
|
405
|
-
schema:
|
489
|
+
schema: resolvedSchema,
|
406
490
|
property: key,
|
407
|
-
schemaField:
|
491
|
+
schemaField: resolvedSchema.properties[key],
|
408
492
|
path: []
|
409
493
|
}));
|
410
494
|
}
|
411
495
|
}
|
412
496
|
return {
|
413
|
-
id: makeFormFieldId([
|
497
|
+
id: makeFormFieldId([resolvedSchema.$id, (_a = resolvedSchema.title) === null || _a === void 0 ? void 0 : _a.toLowerCase().replace(' ', '-')]),
|
414
498
|
label: (_b = schema.title) !== null && _b !== void 0 ? _b : 'Untitled',
|
415
499
|
fields: formFields
|
416
500
|
};
|
417
501
|
};
|
418
|
-
var
|
502
|
+
var buildFieldMapFromForm = function (form) {
|
419
503
|
var formCopy = copyAndAddPathToFields(form);
|
420
504
|
var fields = getFieldsFromFormSection(formCopy);
|
421
505
|
return Object.fromEntries(fields.map(function (field) { return [getPathFromField(field), field]; }));
|
@@ -446,6 +530,41 @@ var getSchemaPaths = function (schema, prefix) {
|
|
446
530
|
}
|
447
531
|
return paths;
|
448
532
|
};
|
533
|
+
var getSchemaPathDescriptors = function (schema, prefix) {
|
534
|
+
var _a;
|
535
|
+
if (prefix === void 0) { prefix = ''; }
|
536
|
+
var pathDescriptors = [];
|
537
|
+
if (schema.type === 'object' && schema.properties) {
|
538
|
+
for (var _i = 0, _b = Object.keys(schema.properties); _i < _b.length; _i++) {
|
539
|
+
var key = _b[_i];
|
540
|
+
var newPrefix = prefix ? "".concat(prefix, ".").concat(key) : key;
|
541
|
+
pathDescriptors.push({
|
542
|
+
path: newPrefix,
|
543
|
+
type: (_a = schema.properties[key].type) !== null && _a !== void 0 ? _a : 'object',
|
544
|
+
required: schema.required ? schema.required.includes(key) : false
|
545
|
+
});
|
546
|
+
pathDescriptors = pathDescriptors.concat(getSchemaPathDescriptors(schema.properties[key], newPrefix));
|
547
|
+
}
|
548
|
+
}
|
549
|
+
else if (schema.type === 'array' && schema.items) {
|
550
|
+
var arrayPrefix = "".concat(prefix, "[]");
|
551
|
+
pathDescriptors.push({
|
552
|
+
path: arrayPrefix,
|
553
|
+
type: schema.type,
|
554
|
+
required: schema.required ? schema.required.includes(prefix) : false
|
555
|
+
});
|
556
|
+
pathDescriptors = pathDescriptors.concat(getSchemaPathDescriptors(schema.items, arrayPrefix));
|
557
|
+
}
|
558
|
+
else if (schema.oneOf || schema.anyOf || schema.allOf) {
|
559
|
+
for (var _c = 0, _d = schema.oneOf || schema.anyOf || schema.allOf; _c < _d.length; _c++) {
|
560
|
+
var subSchema = _d[_c];
|
561
|
+
if (subSchema.properties) {
|
562
|
+
pathDescriptors = pathDescriptors.concat(getSchemaPathDescriptors(subSchema, prefix));
|
563
|
+
}
|
564
|
+
}
|
565
|
+
}
|
566
|
+
return pathDescriptors;
|
567
|
+
};
|
449
568
|
|
450
|
-
export {
|
569
|
+
export { buildFieldMapFromForm, getLabelFromSchema, getSchemaPathDescriptors, getSchemaPaths, getValueFromSchema, mergeObjects, overridesAndSchemaToFormObject, schemaToFormObject, validateAgainstSchema, validateSchema };
|
451
570
|
//# sourceMappingURL=schemaToFormHelpers.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"schemaToFormHelpers.js","sources":["../../../../src/utils/schemaToFormHelpers.ts"],"sourcesContent":["import { type IFormOverride, type IForm, type IFormField, type IFormFieldType, type IFormValues, type IFormFieldOverride, type IFormSectionOverride, type IPage, type IFormSection, type IWizardStep, type IValueType, type INumberField } from '@/Form/Creator/FormCreatorTypes'\r\nimport Ajv, { type ValidateFunction } from 'ajv'\r\nimport addFormats from 'ajv-formats'\r\n\r\nimport { type JSONSchema6Type, type JSONSchema6Definition, type JSONSchema6 } from 'json-schema'\r\n\r\nimport metaSchemaDraftV7 from 'ajv/lib/refs/json-schema-draft-07.json'\r\nimport metaSchemaDraftV6 from 'ajv/lib/refs/json-schema-draft-06.json'\r\nimport metaSchemaV5 from 'ajv/lib/refs/json-schema-2020-12/schema.json'\r\nimport metaSchemaV4 from 'ajv/lib/refs/json-schema-2019-09/schema.json'\r\n\r\nimport { resolveRefs } from '@/utils/resolveRefs'\r\nimport { omit } from 'lodash'\r\nimport { type ISelectOptionProps } from '@axdspub/axiom-ui-utilities'\r\nimport { getFieldsFromFormSection, getPathFromField, makeJsonPath } from '@/utils/getters'\r\nimport { copyAndAddPathToFields } from '@/utils/manipulators'\r\n\r\nconst getValidator = (schema: number): ValidateFunction => {\r\n const ajv = new Ajv({\r\n strict: false\r\n })\r\n addFormats(ajv)\r\n switch (schema) {\r\n case 4:\r\n return ajv.compile(metaSchemaV4)\r\n case 5:\r\n return ajv.compile(metaSchemaV5)\r\n case 6:\r\n return ajv.compile(metaSchemaDraftV6)\r\n case 7:\r\n return ajv.compile(metaSchemaDraftV7)\r\n default:\r\n return ajv.compile(metaSchemaV5)\r\n }\r\n}\r\n\r\nexport const validateSchema = (schemaOb: unknown, version: number = 6): { schema?: JSONSchema6, error?: string, unrefed?: JSONSchema6 } => {\r\n const ajv = new Ajv({ strict: false })\r\n addFormats(ajv)\r\n const validator = getValidator(version)\r\n const valid = validator(schemaOb)\r\n if (!valid) {\r\n return { error: ajv.errorsText(validator.errors) }\r\n }\r\n // const v = ajv.compile<JSONSchema6>(schemaOb as JSONSchema6)\r\n /* registerSchema(schemaOb as SchemaObject, 'https://axds.co/test')\r\n const bundledSchema = await bundle('https://axds.co/test')\r\n return { schema: bundledSchema as JSONSchema6 } */\r\n\r\n const resolved = resolveRefs(structuredClone(schemaOb) as JSONSchema6)\r\n return { schema: resolved, unrefed: schemaOb as JSONSchema6 }\r\n}\r\n\r\nexport const validateAgainstSchema = (schema: JSONSchema6, formValues: IFormValues): string[] | undefined => {\r\n const validSchema = validateSchema(schema)\r\n if (validSchema.error !== undefined) {\r\n return [validSchema.error]\r\n }\r\n const ajv = new Ajv({ strict: false, allErrors: true })\r\n addFormats(ajv)\r\n const validator = ajv.compile(schema)\r\n const valid = validator(formValues)\r\n if (validator.errors !== null && validator.errors !== undefined && !valid) {\r\n return validator.errors.map(e => {\r\n return `${e.instancePath} ${e.message}`\r\n })\r\n }\r\n return undefined\r\n}\r\n\r\nconst makeRandom = (): string => {\r\n return crypto !== undefined ? crypto.randomUUID() : Math.random().toString(36).substring(2)\r\n}\r\n\r\nconst makeFormFieldId = (options: Array<string | number | undefined | null>): string => {\r\n const validOptions = options.filter((o) => o !== undefined && o !== null)\r\n if (validOptions.length === 0) {\r\n return makeRandom()\r\n }\r\n return String(validOptions[0])\r\n}\r\n\r\nconst makeLabel = (options: Array<string | number | undefined | null>): string | undefined => {\r\n const validOptions = options.filter((o) => o !== undefined && o !== null)\r\n if (validOptions.length === 0) {\r\n return undefined\r\n }\r\n return String(validOptions[0])\r\n .replace(/_|-/g, ' ')\r\n .split(' ')\r\n .map((s, i) => {\r\n return i === 0 ? `${s.charAt(0).toUpperCase()}${s.slice(1)}` : s\r\n }).join(' ')\r\n}\r\n\r\nconst getFieldType = (schema: JSONSchema6): IFormFieldType => {\r\n const schemaType = schema.type\r\n if (schemaType === 'string' || schemaType === 'number' || schemaType === 'integer') {\r\n if (schema.enum !== undefined || schema.oneOf !== undefined) {\r\n return 'select'\r\n } else if (schema.anyOf !== undefined) {\r\n return 'checkbox'\r\n } else if (schemaType === 'string' && (schema.maxLength !== undefined && schema.maxLength <= 100)) {\r\n return 'text'\r\n } else if (schemaType === 'number' || schemaType === 'integer') {\r\n return 'number'\r\n } else if (schema.format === 'date-time') {\r\n return 'datetime'\r\n } else if (schema.format === 'date') {\r\n return 'date'\r\n } else if (schema.format === 'time') {\r\n return 'time'\r\n }\r\n return 'long_text'\r\n } else if (schemaType === 'boolean') {\r\n return 'boolean'\r\n } else if (schemaType === 'object' || (schemaType === undefined && (schema.oneOf !== undefined || schema.anyOf !== undefined || schema.allOf !== undefined))) {\r\n return 'object'\r\n }\r\n if (!schemaType && (schema.anyOf !== undefined || schema.enum !== undefined)) {\r\n return 'object'\r\n }\r\n\r\n return 'text'\r\n}\r\n\r\nexport const getValueFromSchema = (schema: JSONSchema6Type | JSONSchema6Definition | undefined): string | number | boolean | undefined => {\r\n if (schema === undefined || schema === null) {\r\n return undefined\r\n }\r\n if (typeof schema === 'string' || typeof schema === 'number' || typeof schema === 'boolean') {\r\n return schema\r\n }\r\n if (Array.isArray(schema)) {\r\n if (schema.length > 0) {\r\n return getValueFromSchema(schema[0])\r\n }\r\n return undefined\r\n }\r\n if (schema.const !== undefined) {\r\n return String(schema.const)\r\n }\r\n if (schema.title !== undefined && schema.title !== null) {\r\n return getValueFromSchema(schema.title)\r\n }\r\n if (schema.$id !== undefined && schema.$id !== null) {\r\n if (typeof schema.$id === 'string' || typeof schema.$id === 'number') {\r\n return makeLabel([String(schema.$id)])\r\n }\r\n return getValueFromSchema(schema.$id)\r\n }\r\n if (Array.isArray(schema) && schema.length === 2) {\r\n return typeof schema[0] === 'object' && schema[0] !== null ? getValueFromSchema(schema[0]) : schema[0]\r\n }\r\n return undefined\r\n}\r\n\r\nexport const getLabelFromSchema = (schema: JSONSchema6Type | JSONSchema6Definition | undefined): string | undefined => {\r\n if (schema === undefined || schema === null) {\r\n return undefined\r\n }\r\n if (typeof schema === 'boolean') {\r\n return schema ? 'true' : 'false'\r\n }\r\n if (typeof schema === 'string' || typeof schema === 'number' || typeof schema === 'boolean') {\r\n return String(schema)\r\n }\r\n if (Array.isArray(schema)) {\r\n if (schema.length > 0) {\r\n return getLabelFromSchema(schema[0])\r\n }\r\n return undefined\r\n }\r\n if (schema.title !== undefined && schema.title !== null) {\r\n return getLabelFromSchema(schema.title)\r\n }\r\n if (Array.isArray(schema) && schema.length === 2) {\r\n return typeof schema[1] === 'object' && schema[1] !== null ? getLabelFromSchema(schema[1]) : schema[1]\r\n }\r\n return String(getValueFromSchema(schema))\r\n}\r\n\r\ninterface ISchemaToFormFieldProps {\r\n schema: JSONSchema6\r\n property: string\r\n schemaField: JSONSchema6\r\n multiple?: boolean\r\n path?: string[]\r\n}\r\n\r\nconst schemaToFormField = ({\r\n schema,\r\n property,\r\n schemaField,\r\n multiple,\r\n path = []\r\n}: ISchemaToFormFieldProps): IFormField => {\r\n path.push(property)\r\n if (schemaField === undefined) {\r\n return {\r\n id: makeFormFieldId([schema.$id, property]),\r\n label: property,\r\n type: 'text',\r\n multiple\r\n }\r\n }\r\n if (typeof schemaField === 'boolean') {\r\n return {\r\n id: makeFormFieldId([schema.$id, property]),\r\n label: property,\r\n type: 'boolean',\r\n multiple\r\n }\r\n }\r\n if (schemaField.type === 'array' && schemaField.items !== undefined) {\r\n return schemaToFormField({\r\n schema: schemaField,\r\n property,\r\n schemaField: schemaField.items as JSONSchema6,\r\n multiple: true,\r\n path: path.slice()\r\n })\r\n }\r\n if (schemaField.anyOf !== undefined && schemaField.anyOf.length === 2 && schemaField.anyOf.filter(d => typeof d !== 'boolean' && d.type === 'null').length === 1) {\r\n const notNull = schemaField.anyOf.filter(d => typeof d !== 'boolean' && d.type !== 'null')[0]\r\n return schemaToFormField({\r\n schema: schemaField,\r\n property,\r\n schemaField: { ...omit(schemaField, 'anyOf'), ...(typeof notNull !== 'boolean' ? notNull : {}) },\r\n multiple,\r\n path: path.slice()\r\n })\r\n }\r\n const type = getFieldType(schemaField)\r\n const id = makeFormFieldId([\r\n schemaField.$id,\r\n property,\r\n schemaField.title?.toLowerCase().replace(' ', '-')\r\n ])\r\n const label = makeLabel([\r\n schemaField.title,\r\n property\r\n ])\r\n const schemaRequired = schema.required ?? []\r\n const ob: Pick<IFormField, 'id' | 'label' | 'description' | 'multiple' | 'required' | 'defaultValue'> = {\r\n id,\r\n label,\r\n description: schemaField.description,\r\n multiple,\r\n defaultValue: schemaField.default !== undefined ? schemaField.default as IValueType : undefined,\r\n required: schemaRequired.includes(property) ?? false\r\n }\r\n if (type === 'text' || type === 'number' || type === 'long_text' || type === 'boolean' || type === 'datetime' || type === 'date' || type === 'time') {\r\n if (type === 'number' && (schemaField.minimum !== undefined || schemaField.maximum !== undefined)) {\r\n const numberOb = ob as INumberField\r\n numberOb.constraints = numberOb.constraints ?? {}\r\n if (schemaField.minimum !== undefined) {\r\n numberOb.constraints.min = schemaField.minimum\r\n }\r\n if (schemaField.maximum !== undefined) {\r\n numberOb.constraints.max = schemaField.maximum\r\n }\r\n return {\r\n ...numberOb,\r\n type\r\n }\r\n }\r\n return {\r\n ...ob,\r\n type\r\n }\r\n }\r\n\r\n if (type === 'select' || type === 'checkbox') {\r\n const schemaOptions = schemaField.enum ?? schemaField.oneOf ?? schemaField.anyOf ?? []\r\n const options = schemaOptions.map(e => {\r\n const value = getValueFromSchema(e)\r\n const label = getLabelFromSchema(e)\r\n return value !== undefined\r\n ? {\r\n value: String(value),\r\n label: label ?? String(value)\r\n }\r\n : null\r\n }).filter(d => d !== null)\r\n return {\r\n ...ob,\r\n type,\r\n options\r\n }\r\n }\r\n if (type === 'object') {\r\n // const anyOfAsProps = schemaField.anyOf !== undefined && schemaField.anyOf.filter(d => typeof d !== 'boolean' && d.type !== 'null').length > 0\r\n const properties = schemaField.properties ?? {}\r\n const fields: IFormField[] = []\r\n for (const key in properties) {\r\n if (properties[key] !== undefined && typeof properties[key] !== 'boolean') {\r\n fields.push(schemaToFormField({\r\n schema: schemaField,\r\n property: key,\r\n schemaField: properties[key],\r\n path: path.slice()\r\n }))\r\n }\r\n }\r\n\r\n if (schemaField.oneOf !== undefined) {\r\n const oneOfFields: IFormField[] = []\r\n const options: ISelectOptionProps[] = []\r\n const selectorField = `select_${property}`\r\n schemaField.oneOf.forEach((f, i) => {\r\n if (typeof f !== 'boolean') {\r\n let value = f.$id ?? f.title\r\n if ((schemaField as any).discriminator?.propertyName !== undefined) {\r\n const v = getValueFromSchema(f?.properties?.[(schemaField as any).discriminator?.propertyName])\r\n if (v !== null && v !== undefined && typeof v !== 'boolean') {\r\n value = String(v)\r\n }\r\n }\r\n if (value === undefined || value === null) {\r\n value = `${property}_${i}`\r\n }\r\n options.push({\r\n label: f.title ?? f.$id ?? `${property} option ${String(i + 1)}`,\r\n value\r\n })\r\n const oneOfield = schemaToFormField({\r\n schema: schemaField,\r\n property: value,\r\n schemaField: f,\r\n path: path.slice()\r\n })\r\n oneOfield.conditions = {\r\n dependsOn: `${path.join('.')}.${selectorField}`,\r\n value\r\n }\r\n oneOfFields.push(oneOfield)\r\n }\r\n })\r\n fields.push({\r\n id: selectorField,\r\n type: 'select',\r\n label: schemaField.title,\r\n options\r\n })\r\n oneOfFields.forEach(f => {\r\n fields.push(f)\r\n })\r\n }\r\n\r\n const ofArr = (schemaField.anyOf ?? []).concat(schemaField.allOf ?? [])\r\n ofArr.forEach((anyOf) => {\r\n const anyOfId = schemaField.$id\r\n if (typeof anyOf !== 'boolean' && anyOf.type !== 'null') {\r\n const field = schemaToFormField({\r\n schema: schemaField,\r\n property: anyOfId ?? makeRandom(),\r\n schemaField: typeof anyOf === 'boolean'\r\n ? anyOf\r\n : {\r\n title: anyOf.title ?? '',\r\n ...anyOf\r\n },\r\n path: path.slice()\r\n })\r\n if (anyOfId === undefined && field.type === 'object') {\r\n field.skip_path = true\r\n }\r\n fields.push(field)\r\n }\r\n })\r\n\r\n return {\r\n ...ob,\r\n type,\r\n fields,\r\n multiple\r\n }\r\n }\r\n\r\n return {\r\n id,\r\n type: 'text',\r\n multiple\r\n }\r\n}\r\n\r\nexport function mergeObjects<T extends Record<string, any>> (objects: T[]): T {\r\n const initialValue: T = {} as unknown as T\r\n return objects.reduce<T>((acc, obj) => ({ ...acc, ...obj }), initialValue)\r\n}\r\n\r\nconst mergeFormField = ({\r\n field,\r\n fieldOverride,\r\n formFieldsOverrideMap,\r\n schemaFieldMap\r\n}: {\r\n field: IFormField\r\n fieldOverride?: IFormFieldOverride\r\n formFieldsOverrideMap: Array<Record<string, IFormFieldOverride>>\r\n schemaFieldMap: Record<string, IFormField>\r\n}): IFormField => {\r\n const path = fieldOverride?.prop ?? makeJsonPath(field)\r\n const formFieldOverrides = mergeObjects<IFormFieldOverride>(formFieldsOverrideMap.map(overrides => overrides[path ?? '']).filter(d => d !== undefined))\r\n const mergedField = {\r\n ...mergeObjects<IFormFieldOverride | IFormField>([\r\n {\r\n ...field,\r\n destPath: path\r\n },\r\n formFieldOverrides,\r\n (fieldOverride ?? {}) as IFormFieldOverride\r\n ])\r\n }\r\n const labelProp = mergedField.id ?? (\r\n path !== undefined\r\n ? path.split('.').pop()\r\n : fieldOverride?.prop ?? field.id\r\n )\r\n const id = mergedField.id ?? makeFormFieldId([mergedField.id])\r\n if (mergedField.type === 'object') {\r\n // attached to the schema field. defaults not overrides\r\n const fieldFields = field?.type === 'object' ? field.fields : []\r\n const fieldFieldsMap = Object.fromEntries(fieldFields.map(f => [getPathFromField(f), f]))\r\n\r\n // attached to the field override. overrides\r\n const overrideFields = fieldOverride?.type === 'object' ? (fieldOverride.fields ?? []) : []\r\n const overrideFieldsMap = Object.fromEntries(\r\n overrideFields\r\n .filter((f): f is IFormFieldOverride => 'prop' in f)\r\n .map(f => [f.prop, f])\r\n )\r\n\r\n // attached to the form override. overrides\r\n const formOverrideFields = formFieldOverrides.type === 'object' ? formFieldOverrides.fields ?? [] : []\r\n const formOverrideFieldsMap = Object.fromEntries(\r\n formOverrideFields\r\n .filter((f): f is IFormFieldOverride => 'prop' in f)\r\n .map(f => [f.prop, f])\r\n )\r\n\r\n const allKeys = Object.keys({\r\n ...fieldFieldsMap,\r\n ...overrideFieldsMap,\r\n ...formOverrideFieldsMap\r\n })\r\n\r\n mergedField.fields = allKeys.map(key => {\r\n // const fieldOverride = overrideFieldsMap[key] ?? { prop: key }\r\n const fieldOverride = mergeObjects<IFormFieldOverride>([\r\n overrideFieldsMap[key],\r\n formOverrideFieldsMap[key],\r\n mergeObjects<IFormFieldOverride>(formFieldsOverrideMap.map(overrides => overrides[key]).filter(d => d !== undefined))\r\n ])\r\n return mergeFormField({\r\n field: fieldFieldsMap[key] ?? schemaFieldMap[key],\r\n fieldOverride,\r\n formFieldsOverrideMap,\r\n schemaFieldMap\r\n })\r\n })\r\n }\r\n return {\r\n type: mergedField.type ?? 'text',\r\n id,\r\n label: mergedField.label ?? makeLabel([labelProp]) ?? 'Default',\r\n ...mergedField\r\n } as unknown as IFormField\r\n}\r\n\r\nconst mergeFormFields = ({\r\n fieldOverrides,\r\n schemaForm,\r\n formFieldsOverrideMap\r\n}: {\r\n fieldOverrides?: IFormFieldOverride[]\r\n schemaForm: IForm\r\n formFieldsOverrideMap: Array<Record<string, IFormFieldOverride>>\r\n}): IFormField[] => {\r\n const schemaFieldMap = buildFieldMapFromForm(schemaForm)\r\n\r\n return (fieldOverrides ?? []).map(fieldOverride => {\r\n const schemaField = schemaFieldMap[fieldOverride.prop]\r\n return mergeFormField({\r\n field: schemaField,\r\n fieldOverride,\r\n formFieldsOverrideMap,\r\n schemaFieldMap\r\n })\r\n })\r\n}\r\n\r\nconst mergeFormSections = ({\r\n sectionOverrides,\r\n schemaForm,\r\n formFieldsOverrideMap\r\n\r\n}: {\r\n sectionOverrides?: IFormSectionOverride[]\r\n schemaForm: IForm\r\n formFieldsOverrideMap: Array<Record<string, IFormFieldOverride>>\r\n\r\n}): IFormSection[] => {\r\n const sections = (sectionOverrides ?? []).map((sectionToMerge, index) => {\r\n const sectionFields = mergeFormFields({\r\n fieldOverrides: sectionToMerge.fields,\r\n schemaForm,\r\n formFieldsOverrideMap\r\n })\r\n const sectionId = sectionToMerge.id ?? makeFormFieldId([sectionToMerge.id, index])\r\n return {\r\n id: sectionId ?? makeFormFieldId([sectionId, index]),\r\n label: sectionToMerge.label ?? makeLabel([sectionId]),\r\n ...sectionToMerge,\r\n fields: sectionToMerge.fields !== undefined\r\n ? sectionFields\r\n : undefined,\r\n wizard_steps: sectionToMerge.wizard_steps !== undefined\r\n ? mergeFormSections({\r\n sectionOverrides: sectionToMerge.wizard_steps,\r\n schemaForm,\r\n formFieldsOverrideMap\r\n })\r\n : undefined,\r\n pages: sectionToMerge.pages !== undefined\r\n ? mergeFormSections({\r\n sectionOverrides: sectionToMerge.pages,\r\n schemaForm,\r\n formFieldsOverrideMap\r\n })\r\n : undefined\r\n }\r\n })\r\n return sections as IFormSection[]\r\n}\r\n\r\nexport const overridesAndSchemaToFormObject = ({\r\n formOverrides,\r\n formFieldOverrides,\r\n schema\r\n}: {\r\n formOverrides?: IFormOverride[]\r\n formFieldOverrides?: IFormFieldOverride[][]\r\n schema: JSONSchema6\r\n}): IForm => {\r\n const schemaForm = schemaToFormObject(schema)\r\n const formFieldOverridesByProp = formFieldOverrides?.map(overrides => Object.fromEntries(overrides.map(override => [override.prop, override]))) ?? []\r\n if (formOverrides === undefined && formFieldOverrides !== undefined) {\r\n const schemaFieldMap = buildFieldMapFromForm(schemaForm)\r\n const fields = Object.values(schemaFieldMap).map(field => {\r\n return mergeFormField({\r\n field,\r\n formFieldsOverrideMap: formFieldOverridesByProp,\r\n schemaFieldMap\r\n })\r\n })\r\n return {\r\n ...schemaForm,\r\n fields\r\n }\r\n }\r\n const mergedFormOverrides = mergeObjects<IFormOverride>(formOverrides ?? [])\r\n const form: IForm = {\r\n id: schemaForm.id,\r\n label: mergedFormOverrides?.label ?? schemaForm.label,\r\n settings: mergedFormOverrides?.settings\r\n }\r\n\r\n form.pages = mergedFormOverrides.pages !== undefined\r\n ? mergeFormSections({\r\n sectionOverrides: mergedFormOverrides.pages,\r\n schemaForm,\r\n formFieldsOverrideMap: formFieldOverridesByProp\r\n }) as IPage[]\r\n : undefined\r\n form.wizard_steps = mergedFormOverrides.wizard_steps !== undefined\r\n ? mergeFormSections({\r\n sectionOverrides: mergedFormOverrides.wizard_steps,\r\n schemaForm,\r\n formFieldsOverrideMap: formFieldOverridesByProp\r\n }) as IWizardStep[]\r\n : undefined\r\n\r\n form.fields = mergeFormFields({\r\n fieldOverrides: mergedFormOverrides.fields,\r\n schemaForm,\r\n formFieldsOverrideMap: formFieldOverridesByProp\r\n })\r\n\r\n return form\r\n}\r\n\r\nexport const schemaToFormObject = (schema: JSONSchema6): IForm => {\r\n const resolvedSchema = resolveRefs(schema)\r\n const formFields: IFormField[] = []\r\n for (const key in resolvedSchema.properties) {\r\n if (resolvedSchema.properties[key] !== undefined && typeof resolvedSchema.properties[key] !== 'boolean') {\r\n formFields.push(schemaToFormField({\r\n schema: resolvedSchema,\r\n property: key,\r\n schemaField: resolvedSchema.properties[key],\r\n path: []\r\n }))\r\n }\r\n }\r\n return {\r\n id: makeFormFieldId([resolvedSchema.$id, resolvedSchema.title?.toLowerCase().replace(' ', '-')]),\r\n label: schema.title ?? 'Untitled',\r\n fields: formFields\r\n }\r\n}\r\n\r\nexport const buildFieldMapFromForm = (form: IForm): Record<string, IFormField> => {\r\n const formCopy = copyAndAddPathToFields(form)\r\n const fields = getFieldsFromFormSection(formCopy)\r\n return Object.fromEntries(fields.map(field => [getPathFromField(field), field]))\r\n}\r\n\r\nexport const getSchemaPaths = (schema: any, prefix = ''): string[] => {\r\n let paths: string[] = []\r\n\r\n if (schema.type === 'object' && schema.properties) {\r\n for (const key of Object.keys(schema.properties)) {\r\n const newPrefix = prefix ? `${prefix}.${key}` : key\r\n paths.push(newPrefix)\r\n paths = paths.concat(getSchemaPaths(schema.properties[key], newPrefix))\r\n }\r\n } else if (schema.type === 'array' && schema.items) {\r\n const arrayPrefix = `${prefix}[]`\r\n paths.push(arrayPrefix)\r\n paths = paths.concat(getSchemaPaths(schema.items, arrayPrefix))\r\n } else if (schema.oneOf || schema.anyOf || schema.allOf) {\r\n for (const subSchema of schema.oneOf || schema.anyOf || schema.allOf) {\r\n if (subSchema.properties) {\r\n paths = paths.concat(getSchemaPaths(subSchema, prefix))\r\n }\r\n }\r\n }\r\n\r\n return paths\r\n}\r\n\r\nexport const getSchemaPathDescriptors = (schema: any, prefix = ''): Array<{ path: string, type: string, required: boolean }> => {\r\n let pathDescriptors: Array<{ path: string, type: string, required: boolean }> = []\r\n\r\n if (schema.type === 'object' && schema.properties) {\r\n for (const key of Object.keys(schema.properties)) {\r\n const newPrefix = prefix ? `${prefix}.${key}` : key\r\n pathDescriptors.push({\r\n path: newPrefix,\r\n type: schema.properties[key].type ?? 'object',\r\n required: schema.required ? schema.required.includes(key) : false\r\n })\r\n pathDescriptors = pathDescriptors.concat(getSchemaPathDescriptors(schema.properties[key], newPrefix))\r\n }\r\n } else if (schema.type === 'array' && schema.items) {\r\n const arrayPrefix = `${prefix}[]`\r\n pathDescriptors.push({\r\n path: arrayPrefix,\r\n type: schema.type,\r\n required: schema.required ? schema.required.includes(prefix) : false\r\n })\r\n pathDescriptors = pathDescriptors.concat(getSchemaPathDescriptors(schema.items, arrayPrefix))\r\n } else if (schema.oneOf || schema.anyOf || schema.allOf) {\r\n for (const subSchema of schema.oneOf || schema.anyOf || schema.allOf) {\r\n if (subSchema.properties) {\r\n pathDescriptors = pathDescriptors.concat(getSchemaPathDescriptors(subSchema, prefix))\r\n }\r\n }\r\n }\r\n\r\n return pathDescriptors\r\n}\r\n"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,38 @@
|
|
1
|
+
import { getValueFromPath, getFieldsFromFormSection, getFieldValue } from './getters.js';
|
2
|
+
|
3
|
+
var checkCondition = function (field, formValues) {
|
4
|
+
if (field.conditions !== undefined) {
|
5
|
+
var dependsOn = Array.isArray(field.conditions.dependsOn) ? field.conditions.dependsOn : [field.conditions.dependsOn];
|
6
|
+
var val_1 = field.conditions.value;
|
7
|
+
var check = dependsOn.every(function (d) {
|
8
|
+
var fieldValue = getValueFromPath(d, formValues);
|
9
|
+
return val_1 !== undefined
|
10
|
+
? val_1 === false
|
11
|
+
? (fieldValue === null || fieldValue === undefined || fieldValue === false || fieldValue === '')
|
12
|
+
: fieldValue === val_1
|
13
|
+
: (fieldValue !== null && fieldValue !== undefined && fieldValue !== false && fieldValue !== '');
|
14
|
+
});
|
15
|
+
return check;
|
16
|
+
}
|
17
|
+
return true;
|
18
|
+
};
|
19
|
+
var testField = function (field, formValues) {
|
20
|
+
var val = getFieldValue(field, formValues);
|
21
|
+
return val !== undefined && val !== null && val !== '';
|
22
|
+
};
|
23
|
+
var calculateSectionStatus = function (sections, formValueState) {
|
24
|
+
var formValues = formValueState[0];
|
25
|
+
return Object.fromEntries(sections.map(function (s) {
|
26
|
+
var fields = getFieldsFromFormSection(s).filter(function (f) { return f.type !== 'object'; });
|
27
|
+
var total = fields.length;
|
28
|
+
var completed = fields.filter(function (f) { return testField(f, formValues); }).length;
|
29
|
+
var required = fields.filter(function (f) { return f.required; });
|
30
|
+
var requiredTotal = required.length;
|
31
|
+
var requiredCompleted = required.filter(function (f) { return testField(f, formValues); }).length;
|
32
|
+
var valid = requiredTotal === requiredCompleted;
|
33
|
+
return [s.id, { completed: completed, total: total, requiredTotal: requiredTotal, requiredCompleted: requiredCompleted, valid: valid }];
|
34
|
+
}));
|
35
|
+
};
|
36
|
+
|
37
|
+
export { calculateSectionStatus, checkCondition };
|
38
|
+
//# sourceMappingURL=validators.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"validators.js","sources":["../../../../src/utils/validators.ts"],"sourcesContent":["import { type IFormSectionStatus } from '@/Form/Creator/FormCreator'\r\nimport { type IFormValues, type IFormField, type IFormSection, type IFormValueState } from '@/Form/Creator/FormCreatorTypes'\r\nimport { getFieldsFromFormSection, getFieldValue, getValueFromPath } from '@/utils/getters'\r\n\r\nexport const checkCondition = (field: IFormField, formValues: IFormValues): boolean => {\r\n if (field.conditions !== undefined) {\r\n const dependsOn = Array.isArray(field.conditions.dependsOn) ? field.conditions.dependsOn : [field.conditions.dependsOn]\r\n\r\n const val = field.conditions.value\r\n const check = dependsOn.every(d => {\r\n const fieldValue = getValueFromPath(d, formValues)\r\n return val !== undefined\r\n ? val === false\r\n ? (fieldValue === null || fieldValue === undefined || fieldValue === false || fieldValue === '')\r\n : fieldValue === val\r\n : (fieldValue !== null && fieldValue !== undefined && fieldValue !== false && fieldValue !== '')\r\n })\r\n return check\r\n }\r\n return true\r\n}\r\n\r\nconst testField = (field: IFormField, formValues: IFormValues): boolean => {\r\n const val = getFieldValue(field, formValues)\r\n return val !== undefined && val !== null && val !== ''\r\n}\r\n\r\nexport const calculateSectionStatus = (sections: IFormSection[], formValueState: IFormValueState): IFormSectionStatus => {\r\n const [formValues] = formValueState\r\n return Object.fromEntries(sections.map(s => {\r\n const fields = getFieldsFromFormSection(s).filter(f => f.type !== 'object')\r\n const total = fields.length\r\n const completed = fields.filter(f => testField(f, formValues)).length\r\n const required = fields.filter(f => f.required)\r\n const requiredTotal = required.length\r\n const requiredCompleted = required.filter(f => testField(f, formValues)).length\r\n const valid = requiredTotal === requiredCompleted\r\n return [s.id, { completed, total, requiredTotal, requiredCompleted, valid }]\r\n }))\r\n}\r\n"],"names":[],"mappings":";;AAIa,IAAA,cAAc,GAAG,UAAC,KAAiB,EAAE,UAAuB,EAAA;AACvE,IAAA,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE;AAClC,QAAA,IAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,SAAS,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;AAEvH,QAAA,IAAM,KAAG,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK;AAClC,QAAA,IAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,UAAA,CAAC,EAAA;YAC7B,IAAM,UAAU,GAAG,gBAAgB,CAAC,CAAC,EAAE,UAAU,CAAC;YAClD,OAAO,KAAG,KAAK;kBACX,KAAG,KAAK;AACR,uBAAG,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,EAAE;sBAC7F,UAAU,KAAK;AACnB,mBAAG,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,EAAE,CAAC;AACpG,SAAC,CAAC;AACF,QAAA,OAAO,KAAK;;AAEd,IAAA,OAAO,IAAI;AACb;AAEA,IAAM,SAAS,GAAG,UAAC,KAAiB,EAAE,UAAuB,EAAA;IAC3D,IAAM,GAAG,GAAG,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC;IAC5C,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,EAAE;AACxD,CAAC;AAEY,IAAA,sBAAsB,GAAG,UAAC,QAAwB,EAAE,cAA+B,EAAA;AACvF,IAAA,IAAA,UAAU,GAAI,cAAc,CAAA,CAAA,CAAlB;IACjB,OAAO,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAA,CAAC,EAAA;QACtC,IAAM,MAAM,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAA,EAAA,CAAC;AAC3E,QAAA,IAAM,KAAK,GAAG,MAAM,CAAC,MAAM;QAC3B,IAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,GAAA,CAAC,CAAC,MAAM;AACrE,QAAA,IAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,CAAC,QAAQ,CAAV,EAAU,CAAC;AAC/C,QAAA,IAAM,aAAa,GAAG,QAAQ,CAAC,MAAM;QACrC,IAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,GAAA,CAAC,CAAC,MAAM;AAC/E,QAAA,IAAM,KAAK,GAAG,aAAa,KAAK,iBAAiB;QACjD,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,EAAA,SAAA,EAAE,KAAK,EAAA,KAAA,EAAE,aAAa,EAAA,aAAA,EAAE,iBAAiB,EAAA,iBAAA,EAAE,KAAK,EAAA,KAAA,EAAE,CAAC;KAC7E,CAAC,CAAC;AACL;;;;"}
|