@axdspub/axiom-ui-forms 0.2.10 → 0.3.1
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 +440 -272
- package/library/axiom-ui-forms.d.ts +107 -33
- package/library/esm/_virtual/index10.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/index6.js +2 -2
- 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/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/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/discriminator/index.js +1 -1
- package/library/esm/node_modules/ajv/dist/vocabularies/format/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/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 +20 -5
- 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 +1 -1
- package/library/esm/src/Form/Components/Inputs/Geometry.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/GeometryInputLoader.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/JSON.js +64 -33
- 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.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.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 +17 -8
- package/library/esm/src/Form/Creator/FormCreator.js.map +1 -1
- package/library/esm/src/Form/Creator/FormFields.js +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 +44 -8
- package/library/esm/src/Form/Creator/Page.js.map +1 -1
- package/library/esm/src/Form/Creator/Wizard.js +78 -21
- 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 +9 -14
- package/library/esm/src/library.js.map +1 -1
- package/library/esm/src/utils/getters.js +33 -3
- package/library/esm/src/utils/getters.js.map +1 -1
- package/library/esm/src/utils/manipulators.js +80 -3
- package/library/esm/src/utils/manipulators.js.map +1 -1
- 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/utils/schemaToFormHelpers.js +157 -39
- package/library/esm/src/utils/schemaToFormHelpers.js.map +1 -1
- package/library/esm/src/utils/validators.js +4 -2
- package/library/esm/src/utils/validators.js.map +1 -1
- package/package.json +131 -129
- package/library/esm/src/Form/resolveRefs.js +0 -26
- package/library/esm/src/Form/resolveRefs.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"manipulators.js","sources":["../../../../src/utils/manipulators.ts"],"sourcesContent":["import { type IFormSection, type IPage, type IWizardStep, type IFormField, type IForm, type IValueType, type IFormValues } from '@/Form/Creator/FormCreatorTypes'\nimport { getFieldsFromFormSection, getFieldValue, getPathFromField } from '@/utils/getters'\nimport { checkCondition } from '@/utils/validators'\nimport set from 'lodash/set'\n\nexport const addFieldPath = (field: IFormField, parentPath?: IFormField[]): IFormField => {\n if (field.type === 'object' && field.skip_path === true) {\n field.path = parentPath !== undefined ? parentPath.slice() : []\n field.level = parentPath !== undefined ? parentPath.length : 0\n } else {\n const newSegment = field // `${field.id}${field.multiple === true ? '[]' : ''}`\n field.path = parentPath !== undefined ? parentPath.slice().concat(newSegment) : [newSegment]\n field.level = parentPath !== undefined ? parentPath.length + 1 : 1\n }\n if ((field.type === 'object' || field.type === 'section') && field.fields !== undefined) {\n field.fields = field.fields.map(childField => {\n return addFieldPath(childField, field.path?.slice())\n })\n }\n return field\n}\n\nfunction addPathsToFormSections (section: IFormSection): IFormSection {\n if (section.pages !== undefined) {\n section.pages = section.pages.map(page => {\n return addPathsToFormSections(page)\n }) as IPage[]\n }\n if (section.wizard_steps !== undefined) {\n section.wizard_steps = section.wizard_steps.map(wizardStep => {\n return addPathsToFormSections(wizardStep)\n }) as IWizardStep[]\n }\n if (section.fields !== undefined) {\n section.fields = section.fields.map(field => {\n return addFieldPath(field)\n })\n }\n return section\n}\n\nexport function copyAndAddPathToFields (formOrContainer: IForm): IForm {\n const form = addPathsToFormSections(structuredClone(formOrContainer)) as IForm\n return form\n}\n\nfunction cleanFormValuesLevel (formValues: IFormValues, fields: IFormField[], formValuesPath: string = ''): IFormValues {\n const formValuesCopy = structuredClone(formValues)\n Object.keys(formValues).forEach(key => {\n const path = formValuesPath !== '' ? `${formValuesPath}.${key}` : key\n const field = fields?.find(f => getPathFromField(f) === path)\n if (field !== undefined && !checkCondition(field, formValues)) {\n formValuesCopy[key] = undefined\n // this ensures that objects that are the result of mapping get checked\n // but fields that are not explicitly defined as objects but may contain objects\n // are not checked (geom, json, etc)\n } else if (typeof formValuesCopy[key] === 'object' && (\n field?.type === 'object' || field === undefined\n )) {\n formValuesCopy[key] = cleanFormValuesLevel(formValuesCopy[key] as IFormValues, fields, path)\n } else if (field === undefined) {\n formValuesCopy[key] = undefined\n }\n })\n // const fieldIds = fields.map(f => getPathFromField(f))\n // return Object.fromEntries(Object.entries(formValuesCopy).filter(([key]) => fieldIds.includes(formValuesPath !== '' ? `${formValuesPath}.${key}` : key)))\n return formValuesCopy\n}\n\nexport function cleanUnusedDependenciesFromFormValues (form: IForm, formValues: IFormValues): IFormValues {\n const fields = getFieldsFromFormSection(form)\n const newFormValues = cleanFormValuesLevel(formValues, fields)\n return newFormValues\n}\n\nexport function updateFormValuesWithFieldValueInPlace (field: IFormField, newValue: IValueType | IValueType[], formValues: IFormValues): void {\n const fieldPath = getPathFromField(field)\n set(formValues, fieldPath, newValue)\n}\n\nexport function updateFormValuesWithFieldValue (field: IFormField, newValue: IValueType | IValueType[], formValues: IFormValues): IFormValues {\n const formValuesCopy = structuredClone(formValues)\n updateFormValuesWithFieldValueInPlace(field, newValue, formValuesCopy)\n return formValuesCopy\n}\n\nexport const assignDefaultValuesToFormValues = (form: IForm, formValues: IFormValues): IFormValues => {\n const formValuesCopy = structuredClone(formValues)\n const formWithPaths = copyAndAddPathToFields(form)\n getFieldsFromFormSection(formWithPaths).forEach(field => {\n if (field.defaultValue !== undefined && getFieldValue(field, formValuesCopy) === undefined) {\n updateFormValuesWithFieldValueInPlace(field, field.defaultValue, formValuesCopy)\n }\n })\n return formValuesCopy\n}\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"manipulators.js","sources":["../../../../src/utils/manipulators.ts"],"sourcesContent":["import { type IFormSection, type IPage, type IWizardStep, type IFormField, type IForm, type IValueType, type IFormValues, type IObjectField } from '@/Form/Creator/FormCreatorTypes'\r\nimport { getFieldsFromFormSection, getFieldValue, getPathFromField } from '@/utils/getters'\r\nimport { checkCondition } from '@/utils/validators'\r\nimport { merge } from 'lodash'\r\nimport set from 'lodash/set'\r\n\r\nexport const addFieldPath = (field: IFormField, parentPath?: IFormField[]): IFormField => {\r\n if (field.type === 'object' && field.skip_path === true) {\r\n field.path = parentPath !== undefined ? parentPath.slice() : []\r\n field.level = parentPath !== undefined ? parentPath.length : 0\r\n } else {\r\n const newSegment = field // `${field.id}${field.multiple === true ? '[]' : ''}`\r\n field.path = parentPath !== undefined ? parentPath.slice().concat(newSegment) : [newSegment]\r\n field.level = parentPath !== undefined ? parentPath.length + 1 : 1\r\n }\r\n if ((field.type === 'object' || field.type === 'section') && field.fields !== undefined) {\r\n field.fields = field.fields.map(childField => {\r\n return addFieldPath(childField, field.path?.slice())\r\n })\r\n }\r\n return field\r\n}\r\n\r\nfunction addPathsToFormSections (section: IFormSection): IFormSection {\r\n if (section.pages !== undefined) {\r\n section.pages = section.pages.map(page => {\r\n return addPathsToFormSections(page)\r\n }) as IPage[]\r\n }\r\n if (section.wizard_steps !== undefined) {\r\n section.wizard_steps = section.wizard_steps.map(wizardStep => {\r\n return addPathsToFormSections(wizardStep)\r\n }) as IWizardStep[]\r\n }\r\n if (section.fields !== undefined) {\r\n section.fields = section.fields.map(field => {\r\n return addFieldPath(field)\r\n })\r\n }\r\n return section\r\n}\r\n\r\nexport function copyAndAddPathToFields (formOrContainer: IFormSection | IForm): IForm {\r\n const form = addPathsToFormSections(structuredClone(formOrContainer)) as IForm\r\n return form\r\n}\r\n\r\nfunction removeFieldPath (field: IFormField): IFormField {\r\n field.path = undefined\r\n field.level = undefined\r\n if (field.type === 'object' && field.fields !== undefined) {\r\n field.fields = field.fields.map(childField => {\r\n return removeFieldPath(childField)\r\n })\r\n }\r\n\r\n return field\r\n}\r\n\r\nfunction removePathsFromFormSections (section: IFormSection): IFormSection {\r\n if (section.pages !== undefined) {\r\n section.pages = section.pages.map(page => {\r\n return removePathsFromFormSections(page)\r\n }) as IPage[]\r\n }\r\n if (section.wizard_steps !== undefined) {\r\n section.wizard_steps = section.wizard_steps.map(wizardStep => {\r\n return removePathsFromFormSections(wizardStep)\r\n }) as IWizardStep[]\r\n }\r\n if (section.fields !== undefined) {\r\n section.fields = section.fields.map(field => {\r\n return removeFieldPath(field)\r\n })\r\n }\r\n return section\r\n}\r\n\r\nexport function copyAndRemovePathFromFields (formOrContainer: IFormSection | IForm): IForm {\r\n const form = removePathsFromFormSections(structuredClone(formOrContainer)) as IForm\r\n return form\r\n}\r\n\r\nfunction cleanFormValuesLevel (formValues: IFormValues, fields: IFormField[], formValuesPath: string = ''): IFormValues {\r\n const formValuesCopy = structuredClone(formValues)\r\n Object.keys(formValues).forEach(key => {\r\n const path = formValuesPath !== '' ? `${formValuesPath}.${key}` : key\r\n const field = fields?.find(f => getPathFromField(f) === path)\r\n if (field !== undefined && !checkCondition(field, formValues)) {\r\n formValuesCopy[key] = undefined\r\n // this ensures that objects that are the result of mapping get checked\r\n // but fields that are not explicitly defined as objects but may contain objects\r\n // are not checked (geom, json, etc)\r\n } else if (typeof formValuesCopy[key] === 'object' && (\r\n field?.type === 'object' || field === undefined\r\n )) {\r\n formValuesCopy[key] = cleanFormValuesLevel((formValuesCopy[key] ?? {}) as IFormValues, fields, path)\r\n } else if (field === undefined) {\r\n formValuesCopy[key] = undefined\r\n }\r\n })\r\n // const fieldIds = fields.map(f => getPathFromField(f))\r\n // return Object.fromEntries(Object.entries(formValuesCopy).filter(([key]) => fieldIds.includes(formValuesPath !== '' ? `${formValuesPath}.${key}` : key)))\r\n return formValuesCopy\r\n}\r\n\r\nexport function cleanUnusedDependenciesFromFormValues (form: IForm, formValues: IFormValues): IFormValues {\r\n const fields = getFieldsFromFormSection(form)\r\n const newFormValues = cleanFormValuesLevel(formValues, fields)\r\n return newFormValues\r\n}\r\n\r\nexport function updateFormValuesWithFieldValueInPlace (field: IFormField, newValue: IValueType | IValueType[], formValues: IFormValues): void {\r\n const fieldPath = getPathFromField(field)\r\n if (fieldPath === undefined) {\r\n merge(formValues, newValue)\r\n } else {\r\n set(formValues, fieldPath ?? '', newValue)\r\n }\r\n}\r\n\r\nexport function updateFormValuesWithFieldValue (field: IFormField, newValue: IValueType | IValueType[], formValues: IFormValues): IFormValues {\r\n const formValuesCopy = structuredClone(formValues)\r\n updateFormValuesWithFieldValueInPlace(field, newValue, formValuesCopy)\r\n return formValuesCopy\r\n}\r\n\r\nexport function cleanAndUpdateFormValuesWithFieldValue ({\r\n field,\r\n form,\r\n value,\r\n formValues\r\n}: {\r\n field: IFormField\r\n form: IForm\r\n value: IValueType | IValueType[]\r\n formValues: IFormValues\r\n}): IFormValues {\r\n const updatedFormValuesCopyPreClean = updateFormValuesWithFieldValue(\r\n field,\r\n value,\r\n formValues\r\n )\r\n const cleanedFormValues = cleanUnusedDependenciesFromFormValues(form, updatedFormValuesCopyPreClean)\r\n // re-assigning the form values lets it be cleaned above, and re-assigned below if the value is uses the same path as a removed value\r\n // initial use case: multiple geometry fields with each shape type as pre-set draw type and a second field that determines the draw type\r\n const formValuesCopyClean = updateFormValuesWithFieldValue(\r\n field,\r\n value,\r\n cleanedFormValues\r\n )\r\n return formValuesCopyClean\r\n}\r\n\r\nexport const assignDefaultValuesToFormValues = (form: IForm, formValues: IFormValues): IFormValues => {\r\n const formValuesCopy = structuredClone(formValues)\r\n const formWithPaths = copyAndAddPathToFields(form)\r\n getFieldsFromFormSection(formWithPaths).forEach(field => {\r\n if (field.defaultValue !== undefined && getFieldValue(field, formValuesCopy) === undefined) {\r\n updateFormValuesWithFieldValueInPlace(field, field.defaultValue, formValuesCopy)\r\n }\r\n })\r\n return formValuesCopy\r\n}\r\n\r\nconst assignIndexToField = (field: IFormField, index: number): IFormField => {\r\n return {\r\n ...field,\r\n index\r\n }\r\n}\r\n\r\nconst assignIndexToFields = (parentField: IObjectField, index: number): IFormField[] => {\r\n return parentField.fields.map(f => {\r\n if (f.path !== undefined && parentField.level !== undefined && f.path[parentField.level - 1] !== undefined) {\r\n const newPath = f.path.slice()\r\n newPath[parentField.level - 1] = {\r\n ...parentField,\r\n index\r\n }\r\n f.path = newPath\r\n }\r\n return {\r\n ...f\r\n }\r\n })\r\n}\r\n\r\nexport const createOneOfMultipleField = (field: IFormField, index: number): IFormField => {\r\n const path = field.path ? field.path.slice() : undefined\r\n if (path !== undefined) {\r\n const last = assignIndexToField(path[path.length - 1], index)\r\n path[path.length - 1] = last\r\n if (last.type === 'object' && last.fields !== undefined) {\r\n last.fields = assignIndexToFields(last, index)\r\n }\r\n }\r\n\r\n const out = {\r\n ...field,\r\n path,\r\n index,\r\n required: false,\r\n label: index > 0 ? null : field.label,\r\n id: `${field.id}-${index}`\r\n }\r\n\r\n if (field.type === 'object' && field.fields !== undefined && out.type === 'object') {\r\n out.fields = assignIndexToFields(field, index)\r\n }\r\n return out\r\n}\r\n"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,44 @@
|
|
1
|
+
import { __assign } from '../../node_modules/tslib/tslib.es6.js';
|
2
|
+
|
3
|
+
/**
|
4
|
+
* Recursively resolves JSON Schema $ref references. Does not support external references.
|
5
|
+
* @param schema The schema to resolve.
|
6
|
+
* @param root The root schema for references. Defaults to schema itself
|
7
|
+
* TO DO: support external references
|
8
|
+
* @returns The schema with all $ref references resolved.
|
9
|
+
*/
|
10
|
+
function resolveRefs(schema, root) {
|
11
|
+
var _a;
|
12
|
+
if (root === void 0) { root = schema; }
|
13
|
+
if (typeof schema !== 'object' || schema === null)
|
14
|
+
return schema;
|
15
|
+
if (Array.isArray(schema)) {
|
16
|
+
// if top level root is array, don't pass it
|
17
|
+
// but hold on to root if we're looking at an embedded array (anyOf: [], allOf: [], oneOf: [])
|
18
|
+
return schema.map(function (item) { return resolveRefs(item, Array.isArray(root) ? undefined : root); });
|
19
|
+
}
|
20
|
+
if (schema.$ref) {
|
21
|
+
var refPath = schema.$ref.replace('#/', '').split('/');
|
22
|
+
var refValue = root;
|
23
|
+
for (var _i = 0, refPath_1 = refPath; _i < refPath_1.length; _i++) {
|
24
|
+
var key = refPath_1[_i];
|
25
|
+
refValue = refValue[key];
|
26
|
+
if (!refValue)
|
27
|
+
throw new Error("Invalid reference: ".concat(schema.$ref));
|
28
|
+
}
|
29
|
+
// Merge the original schema with the resolved reference
|
30
|
+
var mergedSchema = __assign(__assign({}, refValue), schema);
|
31
|
+
// allow a $ref to be followed multiple steps
|
32
|
+
mergedSchema.$ref = (_a = refValue.$ref) !== null && _a !== void 0 ? _a : undefined;
|
33
|
+
// Recursively resolve all properties of the merged schema
|
34
|
+
return resolveRefs(mergedSchema, root);
|
35
|
+
}
|
36
|
+
// Recursively resolve all properties
|
37
|
+
return Object.fromEntries(Object.entries(schema).map(function (_a) {
|
38
|
+
var key = _a[0], value = _a[1];
|
39
|
+
return [key, resolveRefs(value, root)];
|
40
|
+
}));
|
41
|
+
}
|
42
|
+
|
43
|
+
export { resolveRefs };
|
44
|
+
//# sourceMappingURL=resolveRefs.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"resolveRefs.js","sources":["../../../../src/utils/resolveRefs.ts"],"sourcesContent":["import { type JSONSchema6 } from 'json-schema'\r\n\r\n/**\r\n * Recursively resolves JSON Schema $ref references. Does not support external references.\r\n * @param schema The schema to resolve.\r\n * @param root The root schema for references. Defaults to schema itself\r\n * TO DO: support external references\r\n * @returns The schema with all $ref references resolved.\r\n */\r\nexport function resolveRefs<T extends JSONSchema6> (schema: T, root: JSONSchema6 = schema): T {\r\n if (typeof schema !== 'object' || schema === null) return schema\r\n\r\n if (Array.isArray(schema)) {\r\n // if top level root is array, don't pass it\r\n // but hold on to root if we're looking at an embedded array (anyOf: [], allOf: [], oneOf: [])\r\n return schema.map((item) => resolveRefs(item, Array.isArray(root) ? undefined : root)) as unknown as T\r\n }\r\n\r\n if (schema.$ref) {\r\n const refPath = schema.$ref.replace('#/', '').split('/')\r\n let refValue: any = root\r\n\r\n for (const key of refPath) {\r\n refValue = refValue[key]\r\n if (!refValue) throw new Error(`Invalid reference: ${schema.$ref}`)\r\n }\r\n\r\n // Merge the original schema with the resolved reference\r\n const mergedSchema = { ...refValue, ...schema }\r\n\r\n // allow a $ref to be followed multiple steps\r\n mergedSchema.$ref = refValue.$ref ?? undefined\r\n\r\n // Recursively resolve all properties of the merged schema\r\n return resolveRefs(mergedSchema, root) as T\r\n }\r\n\r\n // Recursively resolve all properties\r\n return Object.fromEntries(\r\n Object.entries(schema).map(([key, value]) => {\r\n return [key, resolveRefs(value, root)]\r\n })\r\n ) as T\r\n}\r\n"],"names":[],"mappings":";;AAEA;;;;;;AAMG;AACa,SAAA,WAAW,CAAyB,MAAS,EAAE,IAA0B,EAAA;;AAA1B,IAAA,IAAA,IAAA,KAAA,MAAA,EAAA,EAAA,IAA0B,GAAA,MAAA,CAAA;AACvF,IAAA,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;AAAE,QAAA,OAAO,MAAM;AAEhE,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;;;AAGzB,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC,UAAC,IAAI,EAAK,EAAA,OAAA,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,CAAzD,EAAyD,CAAiB;;AAGxG,IAAA,IAAI,MAAM,CAAC,IAAI,EAAE;AACf,QAAA,IAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;QACxD,IAAI,QAAQ,GAAQ,IAAI;QAExB,KAAkB,IAAA,EAAA,GAAA,CAAO,EAAP,SAAO,GAAA,OAAA,EAAP,qBAAO,EAAP,EAAA,EAAO,EAAE;AAAtB,YAAA,IAAM,GAAG,GAAA,SAAA,CAAA,EAAA,CAAA;AACZ,YAAA,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC;AACxB,YAAA,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,qBAAA,CAAA,MAAA,CAAsB,MAAM,CAAC,IAAI,CAAE,CAAC;;;AAIrE,QAAA,IAAM,YAAY,GAAQ,QAAA,CAAA,QAAA,CAAA,EAAA,EAAA,QAAQ,CAAK,EAAA,MAAM,CAAE;;QAG/C,YAAY,CAAC,IAAI,GAAG,CAAA,EAAA,GAAA,QAAQ,CAAC,IAAI,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,SAAS;;AAG9C,QAAA,OAAO,WAAW,CAAC,YAAY,EAAE,IAAI,CAAM;;;AAI7C,IAAA,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,UAAC,EAAY,EAAA;YAAX,GAAG,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,KAAK,GAAA,EAAA,CAAA,CAAA,CAAA;QACrC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;KACvC,CAAC,CACE;AACR;;;;"}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import { atom } from '../../../node_modules/jotai/esm/vanilla.js';
|
2
|
+
|
3
|
+
var getWindowSize = function () {
|
4
|
+
var width = window.innerWidth;
|
5
|
+
if (width < 768)
|
6
|
+
return 'sm';
|
7
|
+
if (width < 1024)
|
8
|
+
return 'md';
|
9
|
+
if (width < 1280)
|
10
|
+
return 'lg';
|
11
|
+
return 'xl';
|
12
|
+
};
|
13
|
+
var layoutAtom = atom({
|
14
|
+
size: getWindowSize()
|
15
|
+
});
|
16
|
+
|
17
|
+
export { layoutAtom as default, getWindowSize };
|
18
|
+
//# sourceMappingURL=layoutState.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"layoutState.js","sources":["../../../../../src/utils/responsive/layoutState.ts"],"sourcesContent":["import { atom } from 'jotai'\r\n\r\ntype ISize = 'sm' | 'md' | 'lg' | 'xl'\r\n\r\nexport const getWindowSize = (): ISize => {\r\n const width = window.innerWidth\r\n if (width < 768) return 'sm'\r\n if (width < 1024) return 'md'\r\n if (width < 1280) return 'lg'\r\n return 'xl'\r\n}\r\n\r\nconst layoutAtom = atom<{ size: ISize }>({\r\n size: getWindowSize()\r\n})\r\n\r\nexport default layoutAtom\r\n"],"names":[],"mappings":";;AAIa,IAAA,aAAa,GAAG,YAAA;AAC3B,IAAA,IAAM,KAAK,GAAG,MAAM,CAAC,UAAU;IAC/B,IAAI,KAAK,GAAG,GAAG;AAAE,QAAA,OAAO,IAAI;IAC5B,IAAI,KAAK,GAAG,IAAI;AAAE,QAAA,OAAO,IAAI;IAC7B,IAAI,KAAK,GAAG,IAAI;AAAE,QAAA,OAAO,IAAI;AAC7B,IAAA,OAAO,IAAI;AACb;AAEM,IAAA,UAAU,GAAG,IAAI,CAAkB;IACvC,IAAI,EAAE,aAAa;AACpB,CAAA;;;;"}
|
@@ -5,9 +5,9 @@ import metaSchemaDraftV7 from '../../node_modules/ajv/lib/refs/json-schema-draft
|
|
5
5
|
import metaSchemaDraftV6 from '../../node_modules/ajv/lib/refs/json-schema-draft-06.json.js';
|
6
6
|
import metaSchemaV5 from '../../node_modules/ajv/lib/refs/json-schema-2020-12/schema.json.js';
|
7
7
|
import metaSchemaV4 from '../../node_modules/ajv/lib/refs/json-schema-2019-09/schema.json.js';
|
8
|
-
import { resolveRefs } from '
|
8
|
+
import { resolveRefs } from './resolveRefs.js';
|
9
9
|
import { omit } from 'lodash';
|
10
|
-
import { getFieldsFromFormSection, getPathFromField } from './getters.js';
|
10
|
+
import { getFieldsFromFormSection, getPathFromField, makeJsonPath } from './getters.js';
|
11
11
|
import { copyAndAddPathToFields } from './manipulators.js';
|
12
12
|
|
13
13
|
var getValidator = function (schema) {
|
@@ -76,7 +76,7 @@ var makeLabel = function (options) {
|
|
76
76
|
return undefined;
|
77
77
|
}
|
78
78
|
return String(validOptions[0])
|
79
|
-
.replace(/_
|
79
|
+
.replace(/_|-/g, ' ')
|
80
80
|
.split(' ')
|
81
81
|
.map(function (s, i) {
|
82
82
|
return i === 0 ? "".concat(s.charAt(0).toUpperCase()).concat(s.slice(1)) : s;
|
@@ -135,6 +135,18 @@ var getValueFromSchema = function (schema) {
|
|
135
135
|
if (schema.const !== undefined) {
|
136
136
|
return String(schema.const);
|
137
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
|
+
}
|
138
150
|
return undefined;
|
139
151
|
};
|
140
152
|
var getLabelFromSchema = function (schema) {
|
@@ -156,11 +168,14 @@ var getLabelFromSchema = function (schema) {
|
|
156
168
|
if (schema.title !== undefined && schema.title !== null) {
|
157
169
|
return getLabelFromSchema(schema.title);
|
158
170
|
}
|
171
|
+
if (Array.isArray(schema) && schema.length === 2) {
|
172
|
+
return typeof schema[1] === 'object' && schema[1] !== null ? getLabelFromSchema(schema[1]) : schema[1];
|
173
|
+
}
|
159
174
|
return String(getValueFromSchema(schema));
|
160
175
|
};
|
161
176
|
var schemaToFormField = function (_a) {
|
162
|
-
var _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
163
|
-
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;
|
164
179
|
path.push(property);
|
165
180
|
if (schemaField === undefined) {
|
166
181
|
return {
|
@@ -213,13 +228,25 @@ var schemaToFormField = function (_a) {
|
|
213
228
|
label: label,
|
214
229
|
description: schemaField.description,
|
215
230
|
multiple: multiple,
|
231
|
+
defaultValue: schemaField.default !== undefined ? schemaField.default : undefined,
|
216
232
|
required: (_d = schemaRequired.includes(property)) !== null && _d !== void 0 ? _d : false
|
217
233
|
};
|
218
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
|
+
}
|
219
246
|
return __assign(__assign({}, ob), { type: type });
|
220
247
|
}
|
221
248
|
if (type === 'select' || type === 'checkbox') {
|
222
|
-
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 : [];
|
223
250
|
var options = schemaOptions.map(function (e) {
|
224
251
|
var value = getValueFromSchema(e);
|
225
252
|
var label = getLabelFromSchema(e);
|
@@ -234,7 +261,7 @@ var schemaToFormField = function (_a) {
|
|
234
261
|
}
|
235
262
|
if (type === 'object') {
|
236
263
|
// const anyOfAsProps = schemaField.anyOf !== undefined && schemaField.anyOf.filter(d => typeof d !== 'boolean' && d.type !== 'null').length > 0
|
237
|
-
var properties = (
|
264
|
+
var properties = (_j = schemaField.properties) !== null && _j !== void 0 ? _j : {};
|
238
265
|
var fields_1 = [];
|
239
266
|
for (var key in properties) {
|
240
267
|
if (properties[key] !== undefined && typeof properties[key] !== 'boolean') {
|
@@ -290,7 +317,7 @@ var schemaToFormField = function (_a) {
|
|
290
317
|
fields_1.push(f);
|
291
318
|
});
|
292
319
|
}
|
293
|
-
var ofArr = ((
|
320
|
+
var ofArr = ((_k = schemaField.anyOf) !== null && _k !== void 0 ? _k : []).concat((_l = schemaField.allOf) !== null && _l !== void 0 ? _l : []);
|
294
321
|
ofArr.forEach(function (anyOf) {
|
295
322
|
var _a;
|
296
323
|
var anyOfId = schemaField.$id;
|
@@ -321,19 +348,64 @@ function mergeObjects(objects) {
|
|
321
348
|
var initialValue = {};
|
322
349
|
return objects.reduce(function (acc, obj) { return (__assign(__assign({}, acc), obj)); }, initialValue);
|
323
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
|
+
};
|
324
398
|
var mergeFormFields = function (_a) {
|
325
399
|
var fieldOverrides = _a.fieldOverrides, schemaForm = _a.schemaForm, formFieldsOverrideMap = _a.formFieldsOverrideMap;
|
326
|
-
var
|
327
|
-
return (fieldOverrides !== null && fieldOverrides !== void 0 ? fieldOverrides : []).map(function (
|
328
|
-
var
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
var id = (_a = sectionField.id) !== null && _a !== void 0 ? _a : makeFormFieldId([sectionField.id]);
|
336
|
-
return __assign({ type: (_b = sectionField.type) !== null && _b !== void 0 ? _b : 'text', id: id, label: (_d = (_c = sectionField.label) !== null && _c !== void 0 ? _c : makeLabel([id])) !== null && _d !== void 0 ? _d : 'Default' }, sectionField);
|
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
|
+
});
|
337
409
|
});
|
338
410
|
};
|
339
411
|
var mergeFormSections = function (_a) {
|
@@ -365,58 +437,69 @@ var mergeFormSections = function (_a) {
|
|
365
437
|
return sections;
|
366
438
|
};
|
367
439
|
var overridesAndSchemaToFormObject = function (_a) {
|
368
|
-
var _b;
|
440
|
+
var _b, _c;
|
369
441
|
var formOverrides = _a.formOverrides, formFieldOverrides = _a.formFieldOverrides, schema = _a.schema;
|
370
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 : []);
|
371
456
|
var form = {
|
372
457
|
id: schemaForm.id,
|
373
|
-
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
|
374
460
|
};
|
375
|
-
var mergedFormOverrides = mergeObjects(formOverrides !== null && formOverrides !== void 0 ? formOverrides : []);
|
376
|
-
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 : [];
|
377
461
|
form.pages = mergedFormOverrides.pages !== undefined
|
378
462
|
? mergeFormSections({
|
379
463
|
sectionOverrides: mergedFormOverrides.pages,
|
380
464
|
schemaForm: schemaForm,
|
381
|
-
formFieldsOverrideMap:
|
465
|
+
formFieldsOverrideMap: formFieldOverridesByProp
|
382
466
|
})
|
383
467
|
: undefined;
|
384
468
|
form.wizard_steps = mergedFormOverrides.wizard_steps !== undefined
|
385
469
|
? mergeFormSections({
|
386
470
|
sectionOverrides: mergedFormOverrides.wizard_steps,
|
387
471
|
schemaForm: schemaForm,
|
388
|
-
formFieldsOverrideMap:
|
389
|
-
})
|
390
|
-
: undefined;
|
391
|
-
form.fields = mergedFormOverrides.fields !== undefined
|
392
|
-
? mergeFormFields({
|
393
|
-
fieldOverrides: mergedFormOverrides.fields,
|
394
|
-
schemaForm: schemaForm,
|
395
|
-
formFieldsOverrideMap: formFieldsByProp
|
472
|
+
formFieldsOverrideMap: formFieldOverridesByProp
|
396
473
|
})
|
397
474
|
: undefined;
|
475
|
+
form.fields = mergeFormFields({
|
476
|
+
fieldOverrides: mergedFormOverrides.fields,
|
477
|
+
schemaForm: schemaForm,
|
478
|
+
formFieldsOverrideMap: formFieldOverridesByProp
|
479
|
+
});
|
398
480
|
return form;
|
399
481
|
};
|
400
482
|
var schemaToFormObject = function (schema) {
|
401
483
|
var _a, _b;
|
484
|
+
var resolvedSchema = resolveRefs(schema);
|
402
485
|
var formFields = [];
|
403
|
-
for (var key in
|
404
|
-
if (
|
486
|
+
for (var key in resolvedSchema.properties) {
|
487
|
+
if (resolvedSchema.properties[key] !== undefined && typeof resolvedSchema.properties[key] !== 'boolean') {
|
405
488
|
formFields.push(schemaToFormField({
|
406
|
-
schema:
|
489
|
+
schema: resolvedSchema,
|
407
490
|
property: key,
|
408
|
-
schemaField:
|
491
|
+
schemaField: resolvedSchema.properties[key],
|
409
492
|
path: []
|
410
493
|
}));
|
411
494
|
}
|
412
495
|
}
|
413
496
|
return {
|
414
|
-
id: makeFormFieldId([
|
497
|
+
id: makeFormFieldId([resolvedSchema.$id, (_a = resolvedSchema.title) === null || _a === void 0 ? void 0 : _a.toLowerCase().replace(' ', '-')]),
|
415
498
|
label: (_b = schema.title) !== null && _b !== void 0 ? _b : 'Untitled',
|
416
499
|
fields: formFields
|
417
500
|
};
|
418
501
|
};
|
419
|
-
var
|
502
|
+
var buildFieldMapFromForm = function (form) {
|
420
503
|
var formCopy = copyAndAddPathToFields(form);
|
421
504
|
var fields = getFieldsFromFormSection(formCopy);
|
422
505
|
return Object.fromEntries(fields.map(function (field) { return [getPathFromField(field), field]; }));
|
@@ -447,6 +530,41 @@ var getSchemaPaths = function (schema, prefix) {
|
|
447
530
|
}
|
448
531
|
return paths;
|
449
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
|
+
};
|
450
568
|
|
451
|
-
export {
|
569
|
+
export { buildFieldMapFromForm, getLabelFromSchema, getSchemaPathDescriptors, getSchemaPaths, getValueFromSchema, mergeObjects, overridesAndSchemaToFormObject, schemaToFormObject, validateAgainstSchema, validateSchema };
|
452
570
|
//# sourceMappingURL=schemaToFormHelpers.js.map
|