@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.
Files changed (95) hide show
  1. package/README.md +440 -272
  2. package/library/axiom-ui-forms.d.ts +107 -33
  3. package/library/esm/_virtual/index10.js +2 -2
  4. package/library/esm/_virtual/index12.js +2 -6
  5. package/library/esm/_virtual/index12.js.map +1 -1
  6. package/library/esm/_virtual/index13.js +2 -6
  7. package/library/esm/_virtual/index13.js.map +1 -1
  8. package/library/esm/_virtual/index3.js +2 -2
  9. package/library/esm/_virtual/index3.js.map +1 -1
  10. package/library/esm/_virtual/index6.js +2 -2
  11. package/library/esm/_virtual/index7.js +6 -2
  12. package/library/esm/_virtual/index7.js.map +1 -1
  13. package/library/esm/_virtual/index8.js +6 -2
  14. package/library/esm/_virtual/index8.js.map +1 -1
  15. package/library/esm/_virtual/index9.js +2 -2
  16. package/library/esm/node_modules/@axdspub/axiom-ui-utilities/library/index.js +1 -1
  17. package/library/esm/node_modules/@axdspub/axiom-ui-utilities/library/index.js.map +1 -1
  18. package/library/esm/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js +23 -1
  19. package/library/esm/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js.map +1 -1
  20. package/library/esm/node_modules/ajv/dist/compile/index.js +1 -1
  21. package/library/esm/node_modules/ajv/dist/vocabularies/applicator/index.js +1 -1
  22. package/library/esm/node_modules/ajv/dist/vocabularies/core/index.js +1 -1
  23. package/library/esm/node_modules/ajv/dist/vocabularies/discriminator/index.js +1 -1
  24. package/library/esm/node_modules/ajv/dist/vocabularies/format/index.js +1 -1
  25. package/library/esm/node_modules/hast-util-to-jsx-runtime/lib/index.js +1 -1
  26. package/library/esm/node_modules/jotai/esm/react.js +135 -0
  27. package/library/esm/node_modules/jotai/esm/react.js.map +1 -0
  28. package/library/esm/node_modules/jotai/esm/vanilla/internals.js +551 -0
  29. package/library/esm/node_modules/jotai/esm/vanilla/internals.js.map +1 -0
  30. package/library/esm/node_modules/jotai/esm/vanilla.js +111 -0
  31. package/library/esm/node_modules/jotai/esm/vanilla.js.map +1 -0
  32. package/library/esm/node_modules/react-router/dist/development/chunk-HA7DTUK3.js +1 -1
  33. package/library/esm/node_modules/unified/lib/index.js +1 -1
  34. package/library/esm/src/Form/Components/FieldCreator.js +20 -5
  35. package/library/esm/src/Form/Components/FieldCreator.js.map +1 -1
  36. package/library/esm/src/Form/Components/FieldLabel.js +1 -1
  37. package/library/esm/src/Form/Components/FieldLabel.js.map +1 -1
  38. package/library/esm/src/Form/Components/InlineMarkdown.js.map +1 -1
  39. package/library/esm/src/Form/Components/Inputs/Boolean.js.map +1 -1
  40. package/library/esm/src/Form/Components/Inputs/Constant.js.map +1 -1
  41. package/library/esm/src/Form/Components/Inputs/Date.js.map +1 -1
  42. package/library/esm/src/Form/Components/Inputs/DateTime.js.map +1 -1
  43. package/library/esm/src/Form/Components/Inputs/GeoJSON.js.map +1 -1
  44. package/library/esm/src/Form/Components/Inputs/GeoJSONInputLoader.js.map +1 -1
  45. package/library/esm/src/Form/Components/Inputs/Geometry.js +1 -1
  46. package/library/esm/src/Form/Components/Inputs/Geometry.js.map +1 -1
  47. package/library/esm/src/Form/Components/Inputs/GeometryInputLoader.js.map +1 -1
  48. package/library/esm/src/Form/Components/Inputs/JSON.js +64 -33
  49. package/library/esm/src/Form/Components/Inputs/JSON.js.map +1 -1
  50. package/library/esm/src/Form/Components/Inputs/JSONInputLoader.js.map +1 -1
  51. package/library/esm/src/Form/Components/Inputs/LongString.js.map +1 -1
  52. package/library/esm/src/Form/Components/Inputs/Number.js +34 -9
  53. package/library/esm/src/Form/Components/Inputs/Number.js.map +1 -1
  54. package/library/esm/src/Form/Components/Inputs/Object.js.map +1 -1
  55. package/library/esm/src/Form/Components/Inputs/OneOfInput.js.map +1 -1
  56. package/library/esm/src/Form/Components/Inputs/RadioGroup.js.map +1 -1
  57. package/library/esm/src/Form/Components/Inputs/SingleSelect.js +2 -1
  58. package/library/esm/src/Form/Components/Inputs/SingleSelect.js.map +1 -1
  59. package/library/esm/src/Form/Components/Inputs/String.js.map +1 -1
  60. package/library/esm/src/Form/Components/Inputs/Time.js.map +1 -1
  61. package/library/esm/src/Form/Components/Inputs/index.js +11 -0
  62. package/library/esm/src/Form/Components/Inputs/index.js.map +1 -0
  63. package/library/esm/src/Form/Components/Inputs/inputMap.js.map +1 -1
  64. package/library/esm/src/Form/Creator/FormContextProvider.js.map +1 -1
  65. package/library/esm/src/Form/Creator/FormCreator.js +17 -8
  66. package/library/esm/src/Form/Creator/FormCreator.js.map +1 -1
  67. package/library/esm/src/Form/Creator/FormFields.js +1 -1
  68. package/library/esm/src/Form/Creator/FormFields.js.map +1 -1
  69. package/library/esm/src/Form/Creator/FormHeader.js.map +1 -1
  70. package/library/esm/src/Form/Creator/FormSection.js.map +1 -1
  71. package/library/esm/src/Form/Creator/FormSectionContextProvider.js.map +1 -1
  72. package/library/esm/src/Form/Creator/NavElement.js.map +1 -1
  73. package/library/esm/src/Form/Creator/Page.js +44 -8
  74. package/library/esm/src/Form/Creator/Page.js.map +1 -1
  75. package/library/esm/src/Form/Creator/Wizard.js +78 -21
  76. package/library/esm/src/Form/Creator/Wizard.js.map +1 -1
  77. package/library/esm/src/Form/Manage/CopyableJSONOutput.js +3 -3
  78. package/library/esm/src/Form/Manage/CopyableJSONOutput.js.map +1 -1
  79. package/library/esm/src/library.js +9 -14
  80. package/library/esm/src/library.js.map +1 -1
  81. package/library/esm/src/utils/getters.js +33 -3
  82. package/library/esm/src/utils/getters.js.map +1 -1
  83. package/library/esm/src/utils/manipulators.js +80 -3
  84. package/library/esm/src/utils/manipulators.js.map +1 -1
  85. package/library/esm/src/utils/resolveRefs.js +44 -0
  86. package/library/esm/src/utils/resolveRefs.js.map +1 -0
  87. package/library/esm/src/utils/responsive/layoutState.js +18 -0
  88. package/library/esm/src/utils/responsive/layoutState.js.map +1 -0
  89. package/library/esm/src/utils/schemaToFormHelpers.js +157 -39
  90. package/library/esm/src/utils/schemaToFormHelpers.js.map +1 -1
  91. package/library/esm/src/utils/validators.js +4 -2
  92. package/library/esm/src/utils/validators.js.map +1 -1
  93. package/package.json +131 -129
  94. package/library/esm/src/Form/resolveRefs.js +0 -26
  95. package/library/esm/src/Form/resolveRefs.js.map +0 -1
@@ -1 +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 } from '@/Form/Creator/FormCreatorTypes'\nimport Ajv, { type ValidateFunction } from 'ajv'\nimport addFormats from 'ajv-formats'\n\nimport { type JSONSchema6Type, type JSONSchema6Definition, type JSONSchema6 } from 'json-schema'\n\nimport metaSchemaDraftV7 from 'ajv/lib/refs/json-schema-draft-07.json'\nimport metaSchemaDraftV6 from 'ajv/lib/refs/json-schema-draft-06.json'\nimport metaSchemaV5 from 'ajv/lib/refs/json-schema-2020-12/schema.json'\nimport metaSchemaV4 from 'ajv/lib/refs/json-schema-2019-09/schema.json'\n\nimport { resolveRefs } from '@/Form/resolveRefs'\nimport { omit } from 'lodash'\nimport { type ISelectOptionProps } from '@axdspub/axiom-ui-utilities'\nimport { getFieldsFromFormSection, getPathFromField } from '@/utils/getters'\nimport { copyAndAddPathToFields } from '@/utils/manipulators'\n\nconst getValidator = (schema: number): ValidateFunction => {\n const ajv = new Ajv({\n strict: false\n })\n addFormats(ajv)\n switch (schema) {\n case 4:\n return ajv.compile(metaSchemaV4)\n case 5:\n return ajv.compile(metaSchemaV5)\n case 6:\n return ajv.compile(metaSchemaDraftV6)\n case 7:\n return ajv.compile(metaSchemaDraftV7)\n default:\n return ajv.compile(metaSchemaV5)\n }\n}\n\nexport const validateSchema = (schemaOb: unknown, version: number = 6): { schema?: JSONSchema6, error?: string, unrefed?: JSONSchema6 } => {\n const ajv = new Ajv({ strict: false })\n addFormats(ajv)\n const validator = getValidator(version)\n const valid = validator(schemaOb)\n if (!valid) {\n return { error: ajv.errorsText(validator.errors) }\n }\n // const v = ajv.compile<JSONSchema6>(schemaOb as JSONSchema6)\n /* registerSchema(schemaOb as SchemaObject, 'https://axds.co/test')\n const bundledSchema = await bundle('https://axds.co/test')\n return { schema: bundledSchema as JSONSchema6 } */\n\n const resolved = resolveRefs(structuredClone(schemaOb) as JSONSchema6)\n return { schema: resolved, unrefed: schemaOb as JSONSchema6 }\n}\n\nexport const validateAgainstSchema = (schema: JSONSchema6, formValues: IFormValues): string[] | undefined => {\n const validSchema = validateSchema(schema)\n if (validSchema.error !== undefined) {\n return [validSchema.error]\n }\n const ajv = new Ajv({ strict: false, allErrors: true })\n addFormats(ajv)\n const validator = ajv.compile(schema)\n const valid = validator(formValues)\n if (validator.errors !== null && validator.errors !== undefined && !valid) {\n return validator.errors.map(e => {\n return `${e.instancePath} ${e.message}`\n })\n }\n return undefined\n}\n\nconst makeRandom = (): string => {\n return crypto !== undefined ? crypto.randomUUID() : Math.random().toString(36).substring(2)\n}\n\nconst makeFormFieldId = (options: Array<string | number | undefined | null>): string => {\n const validOptions = options.filter((o) => o !== undefined && o !== null)\n if (validOptions.length === 0) {\n return makeRandom()\n }\n return String(validOptions[0])\n}\n\nconst makeLabel = (options: Array<string | number | undefined | null>): string | undefined => {\n const validOptions = options.filter((o) => o !== undefined && o !== null)\n if (validOptions.length === 0) {\n return undefined\n }\n return String(validOptions[0])\n .replace(/_/g, ' ')\n .split(' ')\n .map((s, i) => {\n return i === 0 ? `${s.charAt(0).toUpperCase()}${s.slice(1)}` : s\n }).join(' ')\n}\n\nconst getFieldType = (schema: JSONSchema6): IFormFieldType => {\n const schemaType = schema.type\n if (schemaType === 'string' || schemaType === 'number' || schemaType === 'integer') {\n if (schema.enum !== undefined || schema.oneOf !== undefined) {\n return 'select'\n } else if (schema.anyOf !== undefined) {\n return 'checkbox'\n } else if (schemaType === 'string' && (schema.maxLength !== undefined && schema.maxLength <= 100)) {\n return 'text'\n } else if (schemaType === 'number' || schemaType === 'integer') {\n return 'number'\n } else if (schema.format === 'date-time') {\n return 'datetime'\n } else if (schema.format === 'date') {\n return 'date'\n } else if (schema.format === 'time') {\n return 'time'\n }\n return 'long_text'\n } else if (schemaType === 'boolean') {\n return 'boolean'\n } else if (schemaType === 'object' || (schemaType === undefined && (schema.oneOf !== undefined || schema.anyOf !== undefined || schema.allOf !== undefined))) {\n return 'object'\n }\n if (!schemaType && (schema.anyOf !== undefined || schema.enum !== undefined)) {\n return 'object'\n }\n\n return 'text'\n}\n\nexport const getValueFromSchema = (schema: JSONSchema6Type | JSONSchema6Definition | undefined): string | number | boolean | undefined => {\n if (schema === undefined || schema === null) {\n return undefined\n }\n if (typeof schema === 'string' || typeof schema === 'number' || typeof schema === 'boolean') {\n return schema\n }\n if (Array.isArray(schema)) {\n if (schema.length > 0) {\n return getValueFromSchema(schema[0])\n }\n return undefined\n }\n if (schema.const !== undefined) {\n return String(schema.const)\n }\n return undefined\n}\n\nexport const getLabelFromSchema = (schema: JSONSchema6Type | JSONSchema6Definition | undefined): string | undefined => {\n if (schema === undefined || schema === null) {\n return undefined\n }\n if (typeof schema === 'boolean') {\n return schema ? 'true' : 'false'\n }\n if (typeof schema === 'string' || typeof schema === 'number' || typeof schema === 'boolean') {\n return String(schema)\n }\n if (Array.isArray(schema)) {\n if (schema.length > 0) {\n return getLabelFromSchema(schema[0])\n }\n return undefined\n }\n if (schema.title !== undefined && schema.title !== null) {\n return getLabelFromSchema(schema.title)\n }\n return String(getValueFromSchema(schema))\n}\n\ninterface ISchemaToFormFieldProps {\n schema: JSONSchema6\n property: string\n schemaField: JSONSchema6\n multiple?: boolean\n path?: string[]\n}\n\nconst schemaToFormField = ({\n schema,\n property,\n schemaField,\n multiple,\n path = []\n}: ISchemaToFormFieldProps): IFormField => {\n path.push(property)\n if (schemaField === undefined) {\n return {\n id: makeFormFieldId([schema.$id, property]),\n label: property,\n type: 'text',\n multiple\n }\n }\n if (typeof schemaField === 'boolean') {\n return {\n id: makeFormFieldId([schema.$id, property]),\n label: property,\n type: 'boolean',\n multiple\n }\n }\n if (schemaField.type === 'array' && schemaField.items !== undefined) {\n return schemaToFormField({\n schema: schemaField,\n property,\n schemaField: schemaField.items as JSONSchema6,\n multiple: true,\n path: path.slice()\n })\n }\n if (schemaField.anyOf !== undefined && schemaField.anyOf.length === 2 && schemaField.anyOf.filter(d => typeof d !== 'boolean' && d.type === 'null').length === 1) {\n const notNull = schemaField.anyOf.filter(d => typeof d !== 'boolean' && d.type !== 'null')[0]\n return schemaToFormField({\n schema: schemaField,\n property,\n schemaField: { ...omit(schemaField, 'anyOf'), ...(typeof notNull !== 'boolean' ? notNull : {}) },\n multiple,\n path: path.slice()\n })\n }\n const type = getFieldType(schemaField)\n const id = makeFormFieldId([\n schemaField.$id,\n property,\n schemaField.title?.toLowerCase().replace(' ', '-')\n ])\n const label = makeLabel([\n schemaField.title,\n property\n ])\n const schemaRequired = schema.required ?? []\n const ob: Pick<IFormField, 'id' | 'label' | 'description' | 'multiple' | 'required'> = {\n id,\n label,\n description: schemaField.description,\n multiple,\n required: schemaRequired.includes(property) ?? false\n }\n if (type === 'text' || type === 'number' || type === 'long_text' || type === 'boolean' || type === 'datetime' || type === 'date' || type === 'time') {\n return {\n ...ob,\n type\n }\n }\n\n if (type === 'select' || type === 'checkbox') {\n const schemaOptions = schemaField.enum ?? schemaField.oneOf ?? schemaField.anyOf ?? []\n const options = schemaOptions.map(e => {\n const value = getValueFromSchema(e)\n const label = getLabelFromSchema(e)\n return value !== undefined\n ? {\n value: String(value),\n label: label ?? String(value)\n }\n : null\n }).filter(d => d !== null)\n return {\n ...ob,\n type,\n options\n }\n }\n if (type === 'object') {\n // const anyOfAsProps = schemaField.anyOf !== undefined && schemaField.anyOf.filter(d => typeof d !== 'boolean' && d.type !== 'null').length > 0\n const properties = schemaField.properties ?? {}\n const fields: IFormField[] = []\n for (const key in properties) {\n if (properties[key] !== undefined && typeof properties[key] !== 'boolean') {\n fields.push(schemaToFormField({\n schema: schemaField,\n property: key,\n schemaField: properties[key],\n path: path.slice()\n }))\n }\n }\n\n if (schemaField.oneOf !== undefined) {\n const oneOfFields: IFormField[] = []\n const options: ISelectOptionProps[] = []\n const selectorField = `select_${property}`\n schemaField.oneOf.forEach((f, i) => {\n if (typeof f !== 'boolean') {\n let value = f.$id ?? f.title\n if ((schemaField as any).discriminator?.propertyName !== undefined) {\n const v = getValueFromSchema(f?.properties?.[(schemaField as any).discriminator?.propertyName])\n if (v !== null && v !== undefined && typeof v !== 'boolean') {\n value = String(v)\n }\n }\n if (value === undefined || value === null) {\n value = `${property}_${i}`\n }\n options.push({\n label: f.title ?? f.$id ?? `${property} option ${String(i + 1)}`,\n value\n })\n const oneOfield = schemaToFormField({\n schema: schemaField,\n property: value,\n schemaField: f,\n path: path.slice()\n })\n oneOfield.conditions = {\n dependsOn: `${path.join('.')}.${selectorField}`,\n value\n }\n oneOfFields.push(oneOfield)\n }\n })\n fields.push({\n id: selectorField,\n type: 'select',\n label: schemaField.title,\n options\n })\n oneOfFields.forEach(f => {\n fields.push(f)\n })\n }\n\n const ofArr = (schemaField.anyOf ?? []).concat(schemaField.allOf ?? [])\n ofArr.forEach((anyOf) => {\n const anyOfId = schemaField.$id\n if (typeof anyOf !== 'boolean' && anyOf.type !== 'null') {\n const field = schemaToFormField({\n schema: schemaField,\n property: anyOfId ?? makeRandom(),\n schemaField: typeof anyOf === 'boolean'\n ? anyOf\n : {\n title: anyOf.title ?? '',\n ...anyOf\n },\n path: path.slice()\n })\n if (anyOfId === undefined && field.type === 'object') {\n field.skip_path = true\n }\n fields.push(field)\n }\n })\n\n return {\n ...ob,\n type,\n fields,\n multiple\n }\n }\n\n return {\n id,\n type: 'text',\n multiple\n }\n}\n\nexport function mergeObjects<T extends Record<string, any>> (objects: T[]): T {\n const initialValue: T = {} as unknown as T\n return objects.reduce<T>((acc, obj) => ({ ...acc, ...obj }), initialValue)\n}\n\nconst mergeFormFields = ({\n fieldOverrides,\n schemaForm,\n formFieldsOverrideMap\n}: {\n fieldOverrides?: IFormFieldOverride[]\n schemaForm: IForm\n formFieldsOverrideMap: Array<Record<string, IFormFieldOverride>>\n}): IFormField[] => {\n const schemaFormObject = buildFormObject(schemaForm)\n return (fieldOverrides ?? []).map(field => {\n const schemaField = schemaFormObject[field.prop]\n const sectionField = {\n ...mergeObjects<IFormFieldOverride | IFormField>([\n {\n ...schemaField,\n destPath: field.prop\n },\n mergeObjects<IFormFieldOverride>(formFieldsOverrideMap.map(overrides => overrides[field.prop] ?? {})),\n field\n ])\n }\n const id = sectionField.id ?? makeFormFieldId([sectionField.id])\n return {\n type: sectionField.type ?? 'text',\n id,\n label: sectionField.label ?? makeLabel([id]) ?? 'Default',\n ...sectionField\n }\n }) as IFormField[]\n}\n\nconst mergeFormSections = ({\n sectionOverrides,\n schemaForm,\n formFieldsOverrideMap\n\n}: {\n sectionOverrides?: IFormSectionOverride[]\n schemaForm: IForm\n formFieldsOverrideMap: Array<Record<string, IFormFieldOverride>>\n\n}): IFormSection[] => {\n const sections = (sectionOverrides ?? []).map((sectionToMerge, index) => {\n const sectionFields = mergeFormFields({\n fieldOverrides: sectionToMerge.fields,\n schemaForm,\n formFieldsOverrideMap\n })\n const sectionId = sectionToMerge.id ?? makeFormFieldId([sectionToMerge.id, index])\n return {\n id: sectionId ?? makeFormFieldId([sectionId, index]),\n label: sectionToMerge.label ?? makeLabel([sectionId]),\n ...sectionToMerge,\n fields: sectionToMerge.fields !== undefined\n ? sectionFields\n : undefined,\n wizard_steps: sectionToMerge.wizard_steps !== undefined\n ? mergeFormSections({\n sectionOverrides: sectionToMerge.wizard_steps,\n schemaForm,\n formFieldsOverrideMap\n })\n : undefined,\n pages: sectionToMerge.pages !== undefined\n ? mergeFormSections({\n sectionOverrides: sectionToMerge.pages,\n schemaForm,\n formFieldsOverrideMap\n })\n : undefined\n }\n })\n return sections as IFormSection[]\n}\n\nexport const overridesAndSchemaToFormObject = ({\n formOverrides,\n formFieldOverrides,\n schema\n}: {\n formOverrides?: IFormOverride[]\n formFieldOverrides?: IFormFieldOverride[][]\n schema: JSONSchema6\n}): IForm => {\n const schemaForm = schemaToFormObject(schema)\n const form: IForm = {\n id: schemaForm.id,\n label: schemaForm.label\n }\n const mergedFormOverrides = mergeObjects<IFormOverride>(formOverrides ?? [])\n const formFieldsByProp = formFieldOverrides?.map(overrides => Object.fromEntries(overrides.map(override => [override.prop, override]))) ?? []\n\n form.pages = mergedFormOverrides.pages !== undefined\n ? mergeFormSections({\n sectionOverrides: mergedFormOverrides.pages,\n schemaForm,\n formFieldsOverrideMap: formFieldsByProp\n }) as IPage[]\n : undefined\n form.wizard_steps = mergedFormOverrides.wizard_steps !== undefined\n ? mergeFormSections({\n sectionOverrides: mergedFormOverrides.wizard_steps,\n schemaForm,\n formFieldsOverrideMap: formFieldsByProp\n }) as IWizardStep[]\n : undefined\n\n form.fields = mergedFormOverrides.fields !== undefined\n ? mergeFormFields({\n fieldOverrides: mergedFormOverrides.fields,\n schemaForm,\n formFieldsOverrideMap: formFieldsByProp\n })\n : undefined\n\n return form\n}\n\nexport const schemaToFormObject = (schema: JSONSchema6): IForm => {\n const formFields: IFormField[] = []\n for (const key in schema.properties) {\n if (schema.properties[key] !== undefined && typeof schema.properties[key] !== 'boolean') {\n formFields.push(schemaToFormField({\n schema,\n property: key,\n schemaField: schema.properties[key],\n path: []\n }))\n }\n }\n return {\n id: makeFormFieldId([schema.$id, schema.title?.toLowerCase().replace(' ', '-')]),\n label: schema.title ?? 'Untitled',\n fields: formFields\n }\n}\n\nexport const buildFormObject = (form: IForm): Record<string, IFormField> => {\n const formCopy = copyAndAddPathToFields(form)\n const fields = getFieldsFromFormSection(formCopy)\n return Object.fromEntries(fields.map(field => [getPathFromField(field), field]))\n}\n\nexport const getSchemaPaths = (schema: any, prefix = ''): string[] => {\n let paths: string[] = []\n\n if (schema.type === 'object' && schema.properties) {\n for (const key of Object.keys(schema.properties)) {\n const newPrefix = prefix ? `${prefix}.${key}` : key\n paths.push(newPrefix)\n paths = paths.concat(getSchemaPaths(schema.properties[key], newPrefix))\n }\n } else if (schema.type === 'array' && schema.items) {\n const arrayPrefix = `${prefix}[]`\n paths.push(arrayPrefix)\n paths = paths.concat(getSchemaPaths(schema.items, arrayPrefix))\n } else if (schema.oneOf || schema.anyOf || schema.allOf) {\n for (const subSchema of schema.oneOf || schema.anyOf || schema.allOf) {\n if (subSchema.properties) {\n paths = paths.concat(getSchemaPaths(subSchema, prefix))\n }\n }\n }\n\n return paths\n}\n"],"names":[],"mappings":"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"}
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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"}
@@ -7,8 +7,10 @@ var checkCondition = function (field, formValues) {
7
7
  var check = dependsOn.every(function (d) {
8
8
  var fieldValue = getValueFromPath(d, formValues);
9
9
  return val_1 !== undefined
10
- ? fieldValue === val_1
11
- : fieldValue !== null && fieldValue !== undefined && fieldValue !== false && fieldValue !== '';
10
+ ? val_1 === false
11
+ ? (fieldValue === null || fieldValue === undefined || fieldValue === false || fieldValue === '')
12
+ : fieldValue === val_1
13
+ : (fieldValue !== null && fieldValue !== undefined && fieldValue !== false && fieldValue !== '');
12
14
  });
13
15
  return check;
14
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validators.js","sources":["../../../../src/utils/validators.ts"],"sourcesContent":["import { type IFormSectionStatus } from '@/Form/Creator/FormCreator'\nimport { type IFormValues, type IFormField, type IFormSection, type IFormValueState } from '@/Form/Creator/FormCreatorTypes'\nimport { getFieldsFromFormSection, getFieldValue, getValueFromPath } from '@/utils/getters'\n\nexport const checkCondition = (field: IFormField, formValues: IFormValues): boolean => {\n if (field.conditions !== undefined) {\n const dependsOn = Array.isArray(field.conditions.dependsOn) ? field.conditions.dependsOn : [field.conditions.dependsOn]\n\n const val = field.conditions.value\n const check = dependsOn.every(d => {\n const fieldValue = getValueFromPath(d, formValues)\n return val !== undefined\n ? fieldValue === val\n : fieldValue !== null && fieldValue !== undefined && fieldValue !== false && fieldValue !== ''\n })\n return check\n }\n return true\n}\n\nconst testField = (field: IFormField, formValues: IFormValues): boolean => {\n const val = getFieldValue(field, formValues)\n return val !== undefined && val !== null && val !== ''\n}\n\nexport const calculateSectionStatus = (sections: IFormSection[], formValueState: IFormValueState): IFormSectionStatus => {\n const [formValues] = formValueState\n return Object.fromEntries(sections.map(s => {\n const fields = getFieldsFromFormSection(s).filter(f => f.type !== 'object')\n const total = fields.length\n const completed = fields.filter(f => testField(f, formValues)).length\n const required = fields.filter(f => f.required)\n const requiredTotal = required.length\n const requiredCompleted = required.filter(f => testField(f, formValues)).length\n const valid = requiredTotal === requiredCompleted\n return [s.id, { completed, total, requiredTotal, requiredCompleted, valid }]\n }))\n}\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,UAAU,KAAK;AACjB,kBAAE,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,EAAE;AAClG,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;;;;"}
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;;;;"}
package/package.json CHANGED
@@ -1,129 +1,131 @@
1
- {
2
- "name": "@axdspub/axiom-ui-forms",
3
- "version": "0.2.10",
4
- "private": false,
5
- "type": "module",
6
- "description": "Axiom UI Forms",
7
- "main": "./library/umd/library.js",
8
- "module": "./library/esm/src/library.js",
9
- "types": "./library/axiom-ui-forms.d.ts",
10
- "files": [
11
- "library/**"
12
- ],
13
- "peerDependencies": {
14
- "lodash": "^4.17.21",
15
- "react": "^18.0.0",
16
- "react-dom": "^18.0.0",
17
- "react-hook-form": "^7.0.0"
18
- },
19
- "dependencies": {
20
- "@axdspub/axiom-maps": "^0.4.9-alpha.28",
21
- "@axdspub/axiom-ui-utilities": "^0.1.6",
22
- "@codemirror/lang-json": "^6.0.1",
23
- "@codemirror/lang-yaml": "^6.1.2",
24
- "@radix-ui/react-icons": "^1.3.2",
25
- "@rollup/plugin-alias": "^5.1.1",
26
- "@rollup/plugin-babel": "^6.0.4",
27
- "@rollup/plugin-commonjs": "^28.0.2",
28
- "@rollup/plugin-dynamic-import-vars": "^2.1.5",
29
- "@rollup/plugin-json": "^6.1.0",
30
- "@rollup/plugin-node-resolve": "^16.0.0",
31
- "@rollup/plugin-typescript": "^12.1.2",
32
- "@tanstack/react-query": "^5.68.0",
33
- "@types/geojson": "^7946.0.16",
34
- "@types/json-schema": "^7.0.15",
35
- "@types/react": "^18.2.28",
36
- "@types/react-dom": "^18.2.13",
37
- "@uiw/react-codemirror": "^4.23.10",
38
- "ajv": "^8.17.1",
39
- "ajv-formats": "^3.0.1",
40
- "autoprefixer": "^10.4.21",
41
- "cbor-x": "^1.6.0",
42
- "generate-schema": "^2.6.0",
43
- "jotai": "^2.7.0",
44
- "jotai-tanstack-query": "^0.8.5",
45
- "js-yaml": "^4.1.0",
46
- "lodash.set": "^4.3.2",
47
- "postcss": "^8.5.3",
48
- "react": "^18.0.0",
49
- "react-dom": "^18.0.0",
50
- "react-markdown": "^10.1.0",
51
- "react-media": "^1.10.0",
52
- "react-router-dom": "^7.2.0",
53
- "rimraf": "^6.0.1",
54
- "rollup": "^4.34.8",
55
- "rollup-plugin-dts": "^6.1.1",
56
- "rollup-plugin-polyfill-node": "^0.13.0",
57
- "to-json-schema": "^0.2.5",
58
- "typescript": "^5.2.2"
59
- },
60
- "scripts": {
61
- "start": "set PORT=3080 && vite",
62
- "build": "vite build && npx typedoc src/library.ts --out dist/docs",
63
- "serve": "vite preview",
64
- "test": "vitest",
65
- "clean": "rimraf library",
66
- "rollup": "rollup -c",
67
- "prepublishOnly": "npm run clean && rollup -c"
68
- },
69
- "eslintConfig": {
70
- "extends": [
71
- "react-app",
72
- "react-app/jest"
73
- ],
74
- "overrides": [
75
- {
76
- "files": [
77
- "**/*.stories.*"
78
- ],
79
- "rules": {
80
- "import/no-anonymous-default-export": "off"
81
- }
82
- }
83
- ]
84
- },
85
- "browserslist": {
86
- "production": [
87
- ">0.2%",
88
- "not dead",
89
- "not op_mini all",
90
- "not safari < 10",
91
- "not chrome < 51",
92
- "not android < 5",
93
- "not ie < 12"
94
- ],
95
- "development": [
96
- "last 1 chrome version",
97
- "last 1 firefox version",
98
- "last 1 safari version"
99
- ]
100
- },
101
- "devDependencies": {
102
- "@babel/plugin-proposal-private-property-in-object": "^7.21.11",
103
- "@testing-library/jest-dom": "^6.6.3",
104
- "@testing-library/react": "^16.3.0",
105
- "@types/js-yaml": "^4.0.9",
106
- "@types/lodash": "^4.17.12",
107
- "@types/rison": "^0.1.0",
108
- "@types/to-json-schema": "^0.2.4",
109
- "@typescript-eslint/eslint-plugin": "^6.8.0",
110
- "@typescript-eslint/parser": "^6.8.0",
111
- "@vitejs/plugin-react": "^4.3.4",
112
- "babel-plugin-named-exports-order": "^0.0.2",
113
- "eslint": "^8.51.0",
114
- "eslint-config-standard-with-typescript": "^39.1.1",
115
- "eslint-plugin-import": "^2.28.1",
116
- "eslint-plugin-n": "^16.2.0",
117
- "eslint-plugin-promise": "^6.1.1",
118
- "eslint-plugin-react": "^7.33.2",
119
- "eslint-plugin-react-hooks": "^5.2.0",
120
- "jsdom": "^26.0.0",
121
- "tailwindcss": "^3.3.3",
122
- "ts-node": "^10.9.1",
123
- "typedoc": "^0.27.7",
124
- "vite": "^6.2.2",
125
- "vitest": "^3.1.1",
126
- "web-vitals": "^2.1.4",
127
- "webpack": "^5.88.2"
128
- }
129
- }
1
+ {
2
+ "name": "@axdspub/axiom-ui-forms",
3
+ "version": "0.3.1",
4
+ "private": false,
5
+ "type": "module",
6
+ "description": "Axiom UI Forms",
7
+ "main": "./library/umd/library.js",
8
+ "module": "./library/esm/src/library.js",
9
+ "types": "./library/axiom-ui-forms.d.ts",
10
+ "files": [
11
+ "library/**"
12
+ ],
13
+ "peerDependencies": {
14
+ "lodash": "^4.17.21",
15
+ "react": "^18.0.0",
16
+ "react-dom": "^18.0.0",
17
+ "react-hook-form": "^7.0.0"
18
+ },
19
+ "dependencies": {
20
+ "@axdspub/axiom-maps": "^0.4.9-alpha.28",
21
+ "@axdspub/axiom-ui-utilities": "^0.1.7",
22
+ "@codemirror/lang-json": "^6.0.1",
23
+ "@codemirror/lang-yaml": "^6.1.2",
24
+ "@radix-ui/react-icons": "^1.3.2",
25
+ "@rollup/plugin-alias": "^5.1.1",
26
+ "@rollup/plugin-babel": "^6.0.4",
27
+ "@rollup/plugin-commonjs": "^28.0.2",
28
+ "@rollup/plugin-dynamic-import-vars": "^2.1.5",
29
+ "@rollup/plugin-json": "^6.1.0",
30
+ "@rollup/plugin-node-resolve": "^16.0.0",
31
+ "@rollup/plugin-typescript": "^12.1.2",
32
+ "@tanstack/react-query": "^5.68.0",
33
+ "@types/geojson": "^7946.0.16",
34
+ "@types/json-schema": "^7.0.15",
35
+ "@types/react": "^18.2.28",
36
+ "@types/react-dom": "^18.2.13",
37
+ "@uiw/react-codemirror": "^4.23.10",
38
+ "ajv": "^8.17.1",
39
+ "ajv-formats": "^3.0.1",
40
+ "autoprefixer": "^10.4.21",
41
+ "cbor-x": "^1.6.0",
42
+ "generate-schema": "^2.6.0",
43
+ "jotai": "^2.7.0",
44
+ "jotai-tanstack-query": "^0.8.5",
45
+ "js-yaml": "^4.1.0",
46
+ "lodash.set": "^4.3.2",
47
+ "postcss": "^8.5.3",
48
+ "react": "^18.0.0",
49
+ "react-dom": "^18.0.0",
50
+ "react-error-boundary": "^5.0.0",
51
+ "react-markdown": "^10.1.0",
52
+ "react-media": "^1.10.0",
53
+ "react-router-dom": "^7.2.0",
54
+ "rimraf": "^6.0.1",
55
+ "rollup": "^4.34.8",
56
+ "rollup-plugin-dts": "^6.1.1",
57
+ "rollup-plugin-polyfill-node": "^0.13.0",
58
+ "to-json-schema": "^0.2.5",
59
+ "typescript": "^5.2.2"
60
+ },
61
+ "scripts": {
62
+ "start": "set PORT=3080 && vite",
63
+ "build": "vite build && npx typedoc src/library.ts --out dist/docs",
64
+ "serve": "vite preview",
65
+ "test": "vitest",
66
+ "clean": "rimraf library",
67
+ "rollup": "rollup -c",
68
+ "prepublishOnly": "npm run clean && rollup -c"
69
+ },
70
+ "eslintConfig": {
71
+ "extends": [
72
+ "react-app",
73
+ "react-app/jest"
74
+ ],
75
+ "overrides": [
76
+ {
77
+ "files": [
78
+ "**/*.stories.*"
79
+ ],
80
+ "rules": {
81
+ "import/no-anonymous-default-export": "off"
82
+ }
83
+ }
84
+ ]
85
+ },
86
+ "browserslist": {
87
+ "production": [
88
+ ">0.2%",
89
+ "not dead",
90
+ "not op_mini all",
91
+ "not safari < 10",
92
+ "not chrome < 51",
93
+ "not android < 5",
94
+ "not ie < 12"
95
+ ],
96
+ "development": [
97
+ "last 1 chrome version",
98
+ "last 1 firefox version",
99
+ "last 1 safari version"
100
+ ]
101
+ },
102
+ "devDependencies": {
103
+ "@babel/plugin-proposal-private-property-in-object": "^7.21.11",
104
+ "@testing-library/jest-dom": "^6.6.3",
105
+ "@testing-library/react": "^16.3.0",
106
+ "@types/js-yaml": "^4.0.9",
107
+ "@types/lodash": "^4.17.12",
108
+ "@types/rison": "^0.1.0",
109
+ "@types/to-json-schema": "^0.2.4",
110
+ "@typescript-eslint/eslint-plugin": "^6.8.0",
111
+ "@typescript-eslint/parser": "^6.8.0",
112
+ "@vitejs/plugin-react": "^4.3.4",
113
+ "@vitest/coverage-v8": "^3.1.1",
114
+ "babel-plugin-named-exports-order": "^0.0.2",
115
+ "eslint": "^8.51.0",
116
+ "eslint-config-standard-with-typescript": "^39.1.1",
117
+ "eslint-plugin-import": "^2.28.1",
118
+ "eslint-plugin-n": "^16.2.0",
119
+ "eslint-plugin-promise": "^6.1.1",
120
+ "eslint-plugin-react": "^7.33.2",
121
+ "eslint-plugin-react-hooks": "^5.2.0",
122
+ "jsdom": "^26.0.0",
123
+ "tailwindcss": "^3.3.3",
124
+ "ts-node": "^10.9.1",
125
+ "typedoc": "^0.27.7",
126
+ "vite": "^6.2.2",
127
+ "vitest": "^3.1.1",
128
+ "web-vitals": "^2.1.4",
129
+ "webpack": "^5.88.2"
130
+ }
131
+ }
@@ -1,26 +0,0 @@
1
- function resolveRefs(schema, root) {
2
- if (root === void 0) { root = schema; }
3
- if (typeof schema !== 'object' || schema === null)
4
- return schema;
5
- if (schema.$ref) {
6
- var refPath = schema.$ref.replace('#/', '').split('/');
7
- var refValue = root;
8
- for (var _i = 0, refPath_1 = refPath; _i < refPath_1.length; _i++) {
9
- var key = refPath_1[_i];
10
- refValue = refValue[key];
11
- if (!refValue)
12
- throw new Error("Invalid reference: ".concat(schema.$ref));
13
- }
14
- return resolveRefs(refValue, root); // Recursively resolve
15
- }
16
- if (Array.isArray(schema)) {
17
- return schema.map(function (item) { return resolveRefs(item, root); });
18
- }
19
- return Object.fromEntries(Object.entries(schema).map(function (_a) {
20
- var key = _a[0], value = _a[1];
21
- return [key, resolveRefs(value, root)];
22
- }));
23
- }
24
-
25
- export { resolveRefs };
26
- //# sourceMappingURL=resolveRefs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolveRefs.js","sources":["../../../../src/Form/resolveRefs.ts"],"sourcesContent":["import { type JSONSchema6 } from 'json-schema'\n\nexport function resolveRefs<T extends JSONSchema6> (schema: T, root: JSONSchema6 = schema): T {\n if (typeof schema !== 'object' || schema === null) return schema\n\n if (schema.$ref) {\n const refPath = schema.$ref.replace('#/', '').split('/')\n let refValue: any = root\n\n for (const key of refPath) {\n refValue = refValue[key]\n if (!refValue) throw new Error(`Invalid reference: ${schema.$ref}`)\n }\n return resolveRefs(refValue, root) as T // Recursively resolve\n }\n\n if (Array.isArray(schema)) {\n return schema.map((item) => resolveRefs(item, root)) as unknown as T\n }\n\n return Object.fromEntries(\n Object.entries(schema).map(([key, value]) => [key, resolveRefs(value, root)])\n ) as T\n}\n"],"names":[],"mappings":"AAEgB,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,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;;QAErE,OAAO,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAM,CAAA;;AAGzC,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACzB,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC,UAAC,IAAI,EAAK,EAAA,OAAA,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAvB,EAAuB,CAAiB;;AAGtE,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;QAAM,OAAA,CAAC,GAAG,EAAE,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;KAAA,CAAC,CACzE;AACR;;;;"}