@nolwenture/formik-jsonschema-form 0.26.3 → 0.26.4
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/dist/cjs/FileUploadContext.js +15 -0
- package/dist/cjs/Form.js +79 -0
- package/dist/cjs/Form.stories.js +230 -0
- package/dist/cjs/Form.test.js +13 -0
- package/dist/cjs/FormEditor.js +47 -0
- package/dist/cjs/FormEditor.stories.js +12 -0
- package/dist/cjs/FormPdf.js +78 -0
- package/dist/cjs/FormPdf.stories.js +134 -0
- package/dist/cjs/FormPdf.test.js +15 -0
- package/dist/cjs/fields/AnyField.js +26 -0
- package/dist/cjs/fields/ArrayField.js +115 -0
- package/dist/cjs/fields/BooleanField.js +22 -0
- package/dist/cjs/fields/DateField.js +15 -0
- package/dist/cjs/fields/FileUploadField.js +65 -0
- package/dist/cjs/fields/MultipleChoiceField.js +32 -0
- package/dist/cjs/fields/NullField.js +12 -0
- package/dist/cjs/fields/NumberField.js +12 -0
- package/dist/cjs/fields/ObjectField.js +73 -0
- package/dist/cjs/fields/RadioField.js +15 -0
- package/dist/cjs/fields/SchemaField.js +39 -0
- package/dist/cjs/fields/SearchMultiTagSelectField.js +18 -0
- package/dist/cjs/fields/SearchableSelectField.js +132 -0
- package/dist/cjs/fields/StringField.js +38 -0
- package/dist/cjs/fields/TextAreaField.js +15 -0
- package/dist/cjs/fields/ToggleField.js +15 -0
- package/dist/cjs/fields/index.js +32 -0
- package/dist/cjs/fields/stories/AnyField.stories.js +73 -0
- package/dist/cjs/fields/stories/ArrayField.stories.js +218 -0
- package/dist/cjs/fields/stories/BooleanField.stories.js +30 -0
- package/dist/cjs/fields/stories/DateField.stories.js +28 -0
- package/dist/cjs/fields/stories/FileUploadField.stories.js +63 -0
- package/dist/cjs/fields/stories/MultipleChoiceField.stories.js +80 -0
- package/dist/cjs/fields/stories/NullField.stories.js +32 -0
- package/dist/cjs/fields/stories/NumberField.stories.js +27 -0
- package/dist/cjs/fields/stories/ObjectField.stories.js +88 -0
- package/dist/cjs/fields/stories/RadioField.stories.js +36 -0
- package/dist/cjs/fields/stories/SchemaField.stories.js +95 -0
- package/dist/cjs/fields/stories/SearchMultiTagSelectField.stories.js +52 -0
- package/dist/cjs/fields/stories/StringField.stories.js +69 -0
- package/dist/cjs/fields/stories/TextAreaField.stories.js +28 -0
- package/dist/cjs/fields/stories/ToggleField.stories.js +28 -0
- package/dist/cjs/fields/types.js +13 -0
- package/dist/cjs/formEditorSchemas.js +195 -0
- package/dist/cjs/hooks/__tests__/useExtractUiSchema.test.js +47 -0
- package/dist/cjs/hooks/__tests__/useSetDefault.test.js +67 -0
- package/dist/cjs/hooks/index.js +18 -0
- package/dist/cjs/hooks/useExtractUiSchema.js +27 -0
- package/dist/cjs/hooks/useSetDefault.js +23 -0
- package/dist/cjs/index.js +35 -0
- package/dist/cjs/pdfFields/AnyField.js +26 -0
- package/dist/cjs/pdfFields/ArrayField.js +30 -0
- package/dist/cjs/pdfFields/BooleanField.js +31 -0
- package/dist/cjs/pdfFields/DateField.js +12 -0
- package/dist/cjs/pdfFields/EJSField.js +41 -0
- package/dist/cjs/pdfFields/MultipleChoiceField.js +23 -0
- package/dist/cjs/pdfFields/NullField.js +11 -0
- package/dist/cjs/pdfFields/NumberField.js +12 -0
- package/dist/cjs/pdfFields/ObjectField.js +49 -0
- package/dist/cjs/pdfFields/RadioField.js +15 -0
- package/dist/cjs/pdfFields/SchemaField.js +39 -0
- package/dist/cjs/pdfFields/SearchMultiTagSelectField.js +16 -0
- package/dist/cjs/pdfFields/SearchableSelectField.js +13 -0
- package/dist/cjs/pdfFields/StringField.js +23 -0
- package/dist/cjs/pdfFields/TextAreaField.js +17 -0
- package/dist/cjs/pdfFields/ToggleField.js +15 -0
- package/dist/cjs/pdfFields/index.js +32 -0
- package/dist/cjs/pdfFields/types.js +13 -0
- package/dist/cjs/pdfTemplates/ArrayFieldTemplate.js +20 -0
- package/dist/cjs/pdfTemplates/CollapsibleObjectFieldTemplate.js +24 -0
- package/dist/cjs/pdfTemplates/FieldTemplate.js +19 -0
- package/dist/cjs/pdfTemplates/ObjectFieldTemplate.js +22 -0
- package/dist/cjs/pdfTemplates/index.js +20 -0
- package/dist/cjs/sampleData/ageFieldDefinition.js +8 -0
- package/dist/cjs/sampleData/collapsibleSchema.js +30 -0
- package/dist/cjs/sampleData/completeSchema.js +351 -0
- package/dist/cjs/sampleData/conditionsSchema.js +85 -0
- package/dist/cjs/sampleData/ejsSchema.js +28 -0
- package/dist/cjs/sampleData/fileUpload.js +43 -0
- package/dist/cjs/sampleData/generatedSchema.js +22 -0
- package/dist/cjs/sampleData/index.js +24 -0
- package/dist/cjs/sampleData/multipleChoiceSchema.js +134 -0
- package/dist/cjs/sampleData/pdfProExampleSchema.js +188 -0
- package/dist/cjs/sampleData/refDefSchema.js +301 -0
- package/dist/cjs/sampleData/requiredInputSchema.js +70 -0
- package/dist/cjs/sampleData/simpleData.js +20 -0
- package/dist/cjs/setupTests.js +7 -0
- package/dist/cjs/styledComponents.js +640 -0
- package/dist/cjs/templates/ArrayFieldTemplate.js +38 -0
- package/dist/cjs/templates/CollapsibleObjectFieldTemplate.js +34 -0
- package/dist/cjs/templates/FieldTemplate.js +28 -0
- package/dist/cjs/templates/ObjectFieldTemplate.js +32 -0
- package/dist/cjs/templates/index.js +20 -0
- package/dist/cjs/types.js +10 -0
- package/dist/cjs/utils/__tests/createInitialValues.test.js +106 -0
- package/dist/cjs/utils/__tests/createValidationSchema.test.js +946 -0
- package/dist/cjs/utils/__tests/deepOverlap.test.js +43 -0
- package/dist/cjs/utils/__tests/getEnums.test.js +61 -0
- package/dist/cjs/utils/__tests/getTitleAndDescription.test.js +55 -0
- package/dist/cjs/utils/__tests/getTypes.test.js +64 -0
- package/dist/cjs/utils/__tests/hasReferences.test.js +102 -0
- package/dist/cjs/utils/__tests/mergeSchemas.test.js +42 -0
- package/dist/cjs/utils/__tests/orderByUiSchema.test.js +65 -0
- package/dist/cjs/utils/__tests/resolveSchema.test.js +118 -0
- package/dist/cjs/utils/__tests/solveReferences.test.js +58 -0
- package/dist/cjs/utils/__tests/testSchemas.js +102 -0
- package/dist/cjs/utils/createInitialValues.js +38 -0
- package/dist/cjs/utils/createValidationSchema.js +239 -0
- package/dist/cjs/utils/deepOverlap.js +18 -0
- package/dist/cjs/utils/getEnums.js +50 -0
- package/dist/cjs/utils/getStyle.js +21 -0
- package/dist/cjs/utils/getTitleAndDescription.js +18 -0
- package/dist/cjs/utils/getTypes.js +60 -0
- package/dist/cjs/utils/hasReferences.js +15 -0
- package/dist/cjs/utils/index.js +36 -0
- package/dist/cjs/utils/mergeSchemas.js +30 -0
- package/dist/cjs/utils/orderByUiSchema.js +28 -0
- package/dist/cjs/utils/resolveSchema.js +117 -0
- package/dist/cjs/utils/solveReferences.js +16 -0
- package/dist/esm/FileUploadContext.d.ts +18 -0
- package/dist/esm/Form.d.ts +4 -0
- package/dist/esm/Form.stories.d.ts +19 -0
- package/dist/esm/Form.test.d.ts +1 -0
- package/dist/esm/FormEditor.d.ts +8 -0
- package/dist/esm/FormEditor.stories.d.ts +6 -0
- package/dist/esm/FormPdf.d.ts +6 -0
- package/dist/esm/FormPdf.stories.d.ts +11 -0
- package/dist/esm/FormPdf.test.d.ts +1 -0
- package/dist/esm/fields/AnyField.d.ts +3 -0
- package/dist/esm/fields/ArrayField.d.ts +3 -0
- package/dist/esm/fields/BooleanField.d.ts +3 -0
- package/dist/esm/fields/DateField.d.ts +3 -0
- package/dist/esm/fields/FileUploadField.d.ts +3 -0
- package/dist/esm/fields/MultipleChoiceField.d.ts +3 -0
- package/dist/esm/fields/NullField.d.ts +3 -0
- package/dist/esm/fields/NumberField.d.ts +3 -0
- package/dist/esm/fields/ObjectField.d.ts +3 -0
- package/dist/esm/fields/RadioField.d.ts +3 -0
- package/dist/esm/fields/SchemaField.d.ts +3 -0
- package/dist/esm/fields/SearchMultiTagSelectField.d.ts +3 -0
- package/dist/esm/fields/SearchableSelectField.d.ts +3 -0
- package/dist/esm/fields/StringField.d.ts +3 -0
- package/dist/esm/fields/TextAreaField.d.ts +3 -0
- package/dist/esm/fields/ToggleField.d.ts +3 -0
- package/dist/esm/fields/index.js +16 -0
- package/dist/esm/fields/stories/AnyField.stories.d.ts +5 -0
- package/dist/esm/fields/stories/ArrayField.stories.d.ts +8 -0
- package/dist/esm/fields/stories/BooleanField.stories.d.ts +5 -0
- package/dist/esm/fields/stories/DateField.stories.d.ts +5 -0
- package/dist/esm/fields/stories/FileUploadField.stories.d.ts +15 -0
- package/dist/esm/fields/stories/MultipleChoiceField.stories.d.ts +6 -0
- package/dist/esm/fields/stories/NullField.stories.d.ts +5 -0
- package/dist/esm/fields/stories/NumberField.stories.d.ts +5 -0
- package/dist/esm/fields/stories/ObjectField.stories.d.ts +5 -0
- package/dist/esm/fields/stories/RadioField.stories.d.ts +5 -0
- package/dist/esm/fields/stories/SchemaField.stories.d.ts +1730 -0
- package/dist/esm/fields/stories/SearchMultiTagSelectField.stories.d.ts +5 -0
- package/dist/esm/fields/stories/StringField.stories.d.ts +7 -0
- package/dist/esm/fields/stories/TextAreaField.stories.d.ts +5 -0
- package/dist/esm/fields/stories/ToggleField.stories.d.ts +5 -0
- package/dist/esm/fields/types.d.ts +10 -0
- package/dist/esm/formEditorSchemas.d.ts +3 -0
- package/dist/esm/hooks/__tests__/useExtractUiSchema.test.d.ts +1 -0
- package/dist/esm/hooks/__tests__/useSetDefault.test.d.ts +1 -0
- package/dist/esm/hooks/index.js +2 -0
- package/dist/esm/hooks/useExtractUiSchema.d.ts +8 -0
- package/dist/esm/hooks/useSetDefault.d.ts +2 -0
- package/dist/esm/index.js +6 -0
- package/dist/esm/pdfFields/AnyField.d.ts +3 -0
- package/dist/esm/pdfFields/ArrayField.d.ts +3 -0
- package/dist/esm/pdfFields/BooleanField.d.ts +3 -0
- package/dist/esm/pdfFields/DateField.d.ts +3 -0
- package/dist/esm/pdfFields/EJSField.d.ts +3 -0
- package/dist/esm/pdfFields/MultipleChoiceField.d.ts +3 -0
- package/dist/esm/pdfFields/NullField.d.ts +3 -0
- package/dist/esm/pdfFields/NumberField.d.ts +3 -0
- package/dist/esm/pdfFields/ObjectField.d.ts +3 -0
- package/dist/esm/pdfFields/RadioField.d.ts +3 -0
- package/dist/esm/pdfFields/SchemaField.d.ts +3 -0
- package/dist/esm/pdfFields/SearchMultiTagSelectField.d.ts +3 -0
- package/dist/esm/pdfFields/SearchableSelectField.d.ts +3 -0
- package/dist/esm/pdfFields/StringField.d.ts +3 -0
- package/dist/esm/pdfFields/TextAreaField.d.ts +3 -0
- package/dist/esm/pdfFields/ToggleField.d.ts +3 -0
- package/dist/esm/pdfFields/index.js +16 -0
- package/dist/esm/pdfFields/types.d.ts +10 -0
- package/dist/esm/pdfTemplates/ArrayFieldTemplate.d.ts +3 -0
- package/dist/esm/pdfTemplates/CollapsibleObjectFieldTemplate.d.ts +3 -0
- package/dist/esm/pdfTemplates/FieldTemplate.d.ts +3 -0
- package/dist/esm/pdfTemplates/ObjectFieldTemplate.d.ts +3 -0
- package/dist/esm/sampleData/ageFieldDefinition.d.ts +2 -0
- package/dist/esm/sampleData/collapsibleSchema.d.ts +3 -0
- package/dist/esm/sampleData/completeSchema.d.ts +4 -0
- package/dist/esm/sampleData/conditionsSchema.d.ts +3 -0
- package/dist/esm/sampleData/ejsSchema.d.ts +6 -0
- package/dist/esm/sampleData/fileUpload.d.ts +7 -0
- package/dist/esm/sampleData/generatedSchema.d.ts +2 -0
- package/dist/esm/sampleData/index.js +8 -0
- package/dist/esm/sampleData/multipleChoiceSchema.d.ts +9 -0
- package/dist/esm/sampleData/pdfProExampleSchema.d.ts +21 -0
- package/dist/esm/sampleData/refDefSchema.d.ts +3 -0
- package/dist/esm/sampleData/requiredInputSchema.d.ts +3 -0
- package/dist/esm/sampleData/simpleData.d.ts +7 -0
- package/dist/esm/setupTests.d.ts +1 -0
- package/dist/esm/styledComponents.d.ts +275 -0
- package/dist/esm/templates/ArrayFieldTemplate.d.ts +3 -0
- package/dist/esm/templates/CollapsibleObjectFieldTemplate.d.ts +3 -0
- package/dist/esm/templates/FieldTemplate.d.ts +3 -0
- package/dist/esm/templates/ObjectFieldTemplate.d.ts +3 -0
- package/dist/esm/templates/index.d.ts +4 -0
- package/dist/esm/templates/index.js +4 -0
- package/dist/esm/types.d.ts +337 -0
- package/dist/esm/utils/__tests/createInitialValues.test.d.ts +1 -0
- package/dist/esm/utils/__tests/createValidationSchema.test.d.ts +1 -0
- package/dist/esm/utils/__tests/deepOverlap.test.d.ts +1 -0
- package/dist/esm/utils/__tests/getEnums.test.d.ts +1 -0
- package/dist/esm/utils/__tests/getTitleAndDescription.test.d.ts +1 -0
- package/dist/esm/utils/__tests/getTypes.test.d.ts +1 -0
- package/dist/esm/utils/__tests/hasReferences.test.d.ts +1 -0
- package/dist/esm/utils/__tests/mergeSchemas.test.d.ts +1 -0
- package/dist/esm/utils/__tests/orderByUiSchema.test.d.ts +1 -0
- package/dist/esm/utils/__tests/resolveSchema.test.d.ts +1 -0
- package/dist/esm/utils/__tests/solveReferences.test.d.ts +1 -0
- package/dist/esm/utils/__tests/testSchemas.d.ts +5 -0
- package/dist/esm/utils/createInitialValues.d.ts +7 -0
- package/dist/esm/utils/createValidationSchema.d.ts +12 -0
- package/dist/esm/utils/deepOverlap.d.ts +1 -0
- package/dist/esm/utils/getEnums.d.ts +26 -0
- package/dist/esm/utils/getStyle.d.ts +5 -0
- package/dist/esm/utils/getTitleAndDescription.d.ts +12 -0
- package/dist/esm/utils/getTypes.d.ts +5 -0
- package/dist/esm/utils/hasReferences.d.ts +2 -0
- package/dist/esm/utils/index.d.ts +11 -0
- package/dist/esm/utils/mergeSchemas.d.ts +1 -0
- package/dist/esm/utils/orderByUiSchema.d.ts +1 -0
- package/dist/esm/utils/resolveSchema.d.ts +4 -0
- package/dist/esm/utils/solveReferences.d.ts +10 -0
- package/package.json +19 -5
- /package/dist/{FileUploadContext.d.ts → cjs/FileUploadContext.d.ts} +0 -0
- /package/dist/{Form.d.ts → cjs/Form.d.ts} +0 -0
- /package/dist/{Form.stories.d.ts → cjs/Form.stories.d.ts} +0 -0
- /package/dist/{Form.test.d.ts → cjs/Form.test.d.ts} +0 -0
- /package/dist/{FormEditor.d.ts → cjs/FormEditor.d.ts} +0 -0
- /package/dist/{FormEditor.stories.d.ts → cjs/FormEditor.stories.d.ts} +0 -0
- /package/dist/{FormPdf.d.ts → cjs/FormPdf.d.ts} +0 -0
- /package/dist/{FormPdf.stories.d.ts → cjs/FormPdf.stories.d.ts} +0 -0
- /package/dist/{FormPdf.test.d.ts → cjs/FormPdf.test.d.ts} +0 -0
- /package/dist/{fields → cjs/fields}/AnyField.d.ts +0 -0
- /package/dist/{fields → cjs/fields}/ArrayField.d.ts +0 -0
- /package/dist/{fields → cjs/fields}/BooleanField.d.ts +0 -0
- /package/dist/{fields → cjs/fields}/DateField.d.ts +0 -0
- /package/dist/{fields → cjs/fields}/FileUploadField.d.ts +0 -0
- /package/dist/{fields → cjs/fields}/MultipleChoiceField.d.ts +0 -0
- /package/dist/{fields → cjs/fields}/NullField.d.ts +0 -0
- /package/dist/{fields → cjs/fields}/NumberField.d.ts +0 -0
- /package/dist/{fields → cjs/fields}/ObjectField.d.ts +0 -0
- /package/dist/{fields → cjs/fields}/RadioField.d.ts +0 -0
- /package/dist/{fields → cjs/fields}/SchemaField.d.ts +0 -0
- /package/dist/{fields → cjs/fields}/SearchMultiTagSelectField.d.ts +0 -0
- /package/dist/{fields → cjs/fields}/SearchableSelectField.d.ts +0 -0
- /package/dist/{fields → cjs/fields}/StringField.d.ts +0 -0
- /package/dist/{fields → cjs/fields}/TextAreaField.d.ts +0 -0
- /package/dist/{fields → cjs/fields}/ToggleField.d.ts +0 -0
- /package/dist/{fields → cjs/fields}/index.d.ts +0 -0
- /package/dist/{fields → cjs/fields}/stories/AnyField.stories.d.ts +0 -0
- /package/dist/{fields → cjs/fields}/stories/ArrayField.stories.d.ts +0 -0
- /package/dist/{fields → cjs/fields}/stories/BooleanField.stories.d.ts +0 -0
- /package/dist/{fields → cjs/fields}/stories/DateField.stories.d.ts +0 -0
- /package/dist/{fields → cjs/fields}/stories/FileUploadField.stories.d.ts +0 -0
- /package/dist/{fields → cjs/fields}/stories/MultipleChoiceField.stories.d.ts +0 -0
- /package/dist/{fields → cjs/fields}/stories/NullField.stories.d.ts +0 -0
- /package/dist/{fields → cjs/fields}/stories/NumberField.stories.d.ts +0 -0
- /package/dist/{fields → cjs/fields}/stories/ObjectField.stories.d.ts +0 -0
- /package/dist/{fields → cjs/fields}/stories/RadioField.stories.d.ts +0 -0
- /package/dist/{fields → cjs/fields}/stories/SchemaField.stories.d.ts +0 -0
- /package/dist/{fields → cjs/fields}/stories/SearchMultiTagSelectField.stories.d.ts +0 -0
- /package/dist/{fields → cjs/fields}/stories/StringField.stories.d.ts +0 -0
- /package/dist/{fields → cjs/fields}/stories/TextAreaField.stories.d.ts +0 -0
- /package/dist/{fields → cjs/fields}/stories/ToggleField.stories.d.ts +0 -0
- /package/dist/{fields → cjs/fields}/types.d.ts +0 -0
- /package/dist/{formEditorSchemas.d.ts → cjs/formEditorSchemas.d.ts} +0 -0
- /package/dist/{hooks → cjs/hooks}/__tests__/useExtractUiSchema.test.d.ts +0 -0
- /package/dist/{hooks → cjs/hooks}/__tests__/useSetDefault.test.d.ts +0 -0
- /package/dist/{hooks → cjs/hooks}/index.d.ts +0 -0
- /package/dist/{hooks → cjs/hooks}/useExtractUiSchema.d.ts +0 -0
- /package/dist/{hooks → cjs/hooks}/useSetDefault.d.ts +0 -0
- /package/dist/{index.d.ts → cjs/index.d.ts} +0 -0
- /package/dist/{pdfFields → cjs/pdfFields}/AnyField.d.ts +0 -0
- /package/dist/{pdfFields → cjs/pdfFields}/ArrayField.d.ts +0 -0
- /package/dist/{pdfFields → cjs/pdfFields}/BooleanField.d.ts +0 -0
- /package/dist/{pdfFields → cjs/pdfFields}/DateField.d.ts +0 -0
- /package/dist/{pdfFields → cjs/pdfFields}/EJSField.d.ts +0 -0
- /package/dist/{pdfFields → cjs/pdfFields}/MultipleChoiceField.d.ts +0 -0
- /package/dist/{pdfFields → cjs/pdfFields}/NullField.d.ts +0 -0
- /package/dist/{pdfFields → cjs/pdfFields}/NumberField.d.ts +0 -0
- /package/dist/{pdfFields → cjs/pdfFields}/ObjectField.d.ts +0 -0
- /package/dist/{pdfFields → cjs/pdfFields}/RadioField.d.ts +0 -0
- /package/dist/{pdfFields → cjs/pdfFields}/SchemaField.d.ts +0 -0
- /package/dist/{pdfFields → cjs/pdfFields}/SearchMultiTagSelectField.d.ts +0 -0
- /package/dist/{pdfFields → cjs/pdfFields}/SearchableSelectField.d.ts +0 -0
- /package/dist/{pdfFields → cjs/pdfFields}/StringField.d.ts +0 -0
- /package/dist/{pdfFields → cjs/pdfFields}/TextAreaField.d.ts +0 -0
- /package/dist/{pdfFields → cjs/pdfFields}/ToggleField.d.ts +0 -0
- /package/dist/{pdfFields → cjs/pdfFields}/index.d.ts +0 -0
- /package/dist/{pdfFields → cjs/pdfFields}/types.d.ts +0 -0
- /package/dist/{pdfTemplates → cjs/pdfTemplates}/ArrayFieldTemplate.d.ts +0 -0
- /package/dist/{pdfTemplates → cjs/pdfTemplates}/CollapsibleObjectFieldTemplate.d.ts +0 -0
- /package/dist/{pdfTemplates → cjs/pdfTemplates}/FieldTemplate.d.ts +0 -0
- /package/dist/{pdfTemplates → cjs/pdfTemplates}/ObjectFieldTemplate.d.ts +0 -0
- /package/dist/{pdfTemplates → cjs/pdfTemplates}/index.d.ts +0 -0
- /package/dist/{sampleData → cjs/sampleData}/ageFieldDefinition.d.ts +0 -0
- /package/dist/{sampleData → cjs/sampleData}/collapsibleSchema.d.ts +0 -0
- /package/dist/{sampleData → cjs/sampleData}/completeSchema.d.ts +0 -0
- /package/dist/{sampleData → cjs/sampleData}/conditionsSchema.d.ts +0 -0
- /package/dist/{sampleData → cjs/sampleData}/ejsSchema.d.ts +0 -0
- /package/dist/{sampleData → cjs/sampleData}/fileUpload.d.ts +0 -0
- /package/dist/{sampleData → cjs/sampleData}/generatedSchema.d.ts +0 -0
- /package/dist/{sampleData → cjs/sampleData}/index.d.ts +0 -0
- /package/dist/{sampleData → cjs/sampleData}/multipleChoiceSchema.d.ts +0 -0
- /package/dist/{sampleData → cjs/sampleData}/pdfProExampleSchema.d.ts +0 -0
- /package/dist/{sampleData → cjs/sampleData}/refDefSchema.d.ts +0 -0
- /package/dist/{sampleData → cjs/sampleData}/requiredInputSchema.d.ts +0 -0
- /package/dist/{sampleData → cjs/sampleData}/simpleData.d.ts +0 -0
- /package/dist/{setupTests.d.ts → cjs/setupTests.d.ts} +0 -0
- /package/dist/{styledComponents.d.ts → cjs/styledComponents.d.ts} +0 -0
- /package/dist/{templates → cjs/templates}/ArrayFieldTemplate.d.ts +0 -0
- /package/dist/{templates → cjs/templates}/CollapsibleObjectFieldTemplate.d.ts +0 -0
- /package/dist/{templates → cjs/templates}/FieldTemplate.d.ts +0 -0
- /package/dist/{templates → cjs/templates}/ObjectFieldTemplate.d.ts +0 -0
- /package/dist/{templates → cjs/templates}/index.d.ts +0 -0
- /package/dist/{types.d.ts → cjs/types.d.ts} +0 -0
- /package/dist/{utils → cjs/utils}/__tests/createInitialValues.test.d.ts +0 -0
- /package/dist/{utils → cjs/utils}/__tests/createValidationSchema.test.d.ts +0 -0
- /package/dist/{utils → cjs/utils}/__tests/deepOverlap.test.d.ts +0 -0
- /package/dist/{utils → cjs/utils}/__tests/getEnums.test.d.ts +0 -0
- /package/dist/{utils → cjs/utils}/__tests/getTitleAndDescription.test.d.ts +0 -0
- /package/dist/{utils → cjs/utils}/__tests/getTypes.test.d.ts +0 -0
- /package/dist/{utils → cjs/utils}/__tests/hasReferences.test.d.ts +0 -0
- /package/dist/{utils → cjs/utils}/__tests/mergeSchemas.test.d.ts +0 -0
- /package/dist/{utils → cjs/utils}/__tests/orderByUiSchema.test.d.ts +0 -0
- /package/dist/{utils → cjs/utils}/__tests/resolveSchema.test.d.ts +0 -0
- /package/dist/{utils → cjs/utils}/__tests/solveReferences.test.d.ts +0 -0
- /package/dist/{utils → cjs/utils}/__tests/testSchemas.d.ts +0 -0
- /package/dist/{utils → cjs/utils}/createInitialValues.d.ts +0 -0
- /package/dist/{utils → cjs/utils}/createValidationSchema.d.ts +0 -0
- /package/dist/{utils → cjs/utils}/deepOverlap.d.ts +0 -0
- /package/dist/{utils → cjs/utils}/getEnums.d.ts +0 -0
- /package/dist/{utils → cjs/utils}/getStyle.d.ts +0 -0
- /package/dist/{utils → cjs/utils}/getTitleAndDescription.d.ts +0 -0
- /package/dist/{utils → cjs/utils}/getTypes.d.ts +0 -0
- /package/dist/{utils → cjs/utils}/hasReferences.d.ts +0 -0
- /package/dist/{utils → cjs/utils}/index.d.ts +0 -0
- /package/dist/{utils → cjs/utils}/mergeSchemas.d.ts +0 -0
- /package/dist/{utils → cjs/utils}/orderByUiSchema.d.ts +0 -0
- /package/dist/{utils → cjs/utils}/resolveSchema.d.ts +0 -0
- /package/dist/{utils → cjs/utils}/solveReferences.d.ts +0 -0
- /package/dist/{FileUploadContext.js → esm/FileUploadContext.js} +0 -0
- /package/dist/{Form.js → esm/Form.js} +0 -0
- /package/dist/{Form.stories.js → esm/Form.stories.js} +0 -0
- /package/dist/{Form.test.js → esm/Form.test.js} +0 -0
- /package/dist/{FormEditor.js → esm/FormEditor.js} +0 -0
- /package/dist/{FormEditor.stories.js → esm/FormEditor.stories.js} +0 -0
- /package/dist/{FormPdf.js → esm/FormPdf.js} +0 -0
- /package/dist/{FormPdf.stories.js → esm/FormPdf.stories.js} +0 -0
- /package/dist/{FormPdf.test.js → esm/FormPdf.test.js} +0 -0
- /package/dist/{fields → esm/fields}/AnyField.js +0 -0
- /package/dist/{fields → esm/fields}/ArrayField.js +0 -0
- /package/dist/{fields → esm/fields}/BooleanField.js +0 -0
- /package/dist/{fields → esm/fields}/DateField.js +0 -0
- /package/dist/{fields → esm/fields}/FileUploadField.js +0 -0
- /package/dist/{fields → esm/fields}/MultipleChoiceField.js +0 -0
- /package/dist/{fields → esm/fields}/NullField.js +0 -0
- /package/dist/{fields → esm/fields}/NumberField.js +0 -0
- /package/dist/{fields → esm/fields}/ObjectField.js +0 -0
- /package/dist/{fields → esm/fields}/RadioField.js +0 -0
- /package/dist/{fields → esm/fields}/SchemaField.js +0 -0
- /package/dist/{fields → esm/fields}/SearchMultiTagSelectField.js +0 -0
- /package/dist/{fields → esm/fields}/SearchableSelectField.js +0 -0
- /package/dist/{fields → esm/fields}/StringField.js +0 -0
- /package/dist/{fields → esm/fields}/TextAreaField.js +0 -0
- /package/dist/{fields → esm/fields}/ToggleField.js +0 -0
- /package/dist/{fields/index.js → esm/fields/index.d.ts} +0 -0
- /package/dist/{fields → esm/fields}/stories/AnyField.stories.js +0 -0
- /package/dist/{fields → esm/fields}/stories/ArrayField.stories.js +0 -0
- /package/dist/{fields → esm/fields}/stories/BooleanField.stories.js +0 -0
- /package/dist/{fields → esm/fields}/stories/DateField.stories.js +0 -0
- /package/dist/{fields → esm/fields}/stories/FileUploadField.stories.js +0 -0
- /package/dist/{fields → esm/fields}/stories/MultipleChoiceField.stories.js +0 -0
- /package/dist/{fields → esm/fields}/stories/NullField.stories.js +0 -0
- /package/dist/{fields → esm/fields}/stories/NumberField.stories.js +0 -0
- /package/dist/{fields → esm/fields}/stories/ObjectField.stories.js +0 -0
- /package/dist/{fields → esm/fields}/stories/RadioField.stories.js +0 -0
- /package/dist/{fields → esm/fields}/stories/SchemaField.stories.js +0 -0
- /package/dist/{fields → esm/fields}/stories/SearchMultiTagSelectField.stories.js +0 -0
- /package/dist/{fields → esm/fields}/stories/StringField.stories.js +0 -0
- /package/dist/{fields → esm/fields}/stories/TextAreaField.stories.js +0 -0
- /package/dist/{fields → esm/fields}/stories/ToggleField.stories.js +0 -0
- /package/dist/{fields → esm/fields}/types.js +0 -0
- /package/dist/{formEditorSchemas.js → esm/formEditorSchemas.js} +0 -0
- /package/dist/{hooks → esm/hooks}/__tests__/useExtractUiSchema.test.js +0 -0
- /package/dist/{hooks → esm/hooks}/__tests__/useSetDefault.test.js +0 -0
- /package/dist/{hooks/index.js → esm/hooks/index.d.ts} +0 -0
- /package/dist/{hooks → esm/hooks}/useExtractUiSchema.js +0 -0
- /package/dist/{hooks → esm/hooks}/useSetDefault.js +0 -0
- /package/dist/{index.js → esm/index.d.ts} +0 -0
- /package/dist/{pdfFields → esm/pdfFields}/AnyField.js +0 -0
- /package/dist/{pdfFields → esm/pdfFields}/ArrayField.js +0 -0
- /package/dist/{pdfFields → esm/pdfFields}/BooleanField.js +0 -0
- /package/dist/{pdfFields → esm/pdfFields}/DateField.js +0 -0
- /package/dist/{pdfFields → esm/pdfFields}/EJSField.js +0 -0
- /package/dist/{pdfFields → esm/pdfFields}/MultipleChoiceField.js +0 -0
- /package/dist/{pdfFields → esm/pdfFields}/NullField.js +0 -0
- /package/dist/{pdfFields → esm/pdfFields}/NumberField.js +0 -0
- /package/dist/{pdfFields → esm/pdfFields}/ObjectField.js +0 -0
- /package/dist/{pdfFields → esm/pdfFields}/RadioField.js +0 -0
- /package/dist/{pdfFields → esm/pdfFields}/SchemaField.js +0 -0
- /package/dist/{pdfFields → esm/pdfFields}/SearchMultiTagSelectField.js +0 -0
- /package/dist/{pdfFields → esm/pdfFields}/SearchableSelectField.js +0 -0
- /package/dist/{pdfFields → esm/pdfFields}/StringField.js +0 -0
- /package/dist/{pdfFields → esm/pdfFields}/TextAreaField.js +0 -0
- /package/dist/{pdfFields → esm/pdfFields}/ToggleField.js +0 -0
- /package/dist/{pdfFields/index.js → esm/pdfFields/index.d.ts} +0 -0
- /package/dist/{pdfFields → esm/pdfFields}/types.js +0 -0
- /package/dist/{pdfTemplates → esm/pdfTemplates}/ArrayFieldTemplate.js +0 -0
- /package/dist/{pdfTemplates → esm/pdfTemplates}/CollapsibleObjectFieldTemplate.js +0 -0
- /package/dist/{pdfTemplates → esm/pdfTemplates}/FieldTemplate.js +0 -0
- /package/dist/{pdfTemplates → esm/pdfTemplates}/ObjectFieldTemplate.js +0 -0
- /package/dist/{pdfTemplates/index.js → esm/pdfTemplates/index.d.ts} +0 -0
- /package/dist/{templates → esm/pdfTemplates}/index.js +0 -0
- /package/dist/{sampleData → esm/sampleData}/ageFieldDefinition.js +0 -0
- /package/dist/{sampleData → esm/sampleData}/collapsibleSchema.js +0 -0
- /package/dist/{sampleData → esm/sampleData}/completeSchema.js +0 -0
- /package/dist/{sampleData → esm/sampleData}/conditionsSchema.js +0 -0
- /package/dist/{sampleData → esm/sampleData}/ejsSchema.js +0 -0
- /package/dist/{sampleData → esm/sampleData}/fileUpload.js +0 -0
- /package/dist/{sampleData → esm/sampleData}/generatedSchema.js +0 -0
- /package/dist/{sampleData/index.js → esm/sampleData/index.d.ts} +0 -0
- /package/dist/{sampleData → esm/sampleData}/multipleChoiceSchema.js +0 -0
- /package/dist/{sampleData → esm/sampleData}/pdfProExampleSchema.js +0 -0
- /package/dist/{sampleData → esm/sampleData}/refDefSchema.js +0 -0
- /package/dist/{sampleData → esm/sampleData}/requiredInputSchema.js +0 -0
- /package/dist/{sampleData → esm/sampleData}/simpleData.js +0 -0
- /package/dist/{setupTests.js → esm/setupTests.js} +0 -0
- /package/dist/{styledComponents.js → esm/styledComponents.js} +0 -0
- /package/dist/{templates → esm/templates}/ArrayFieldTemplate.js +0 -0
- /package/dist/{templates → esm/templates}/CollapsibleObjectFieldTemplate.js +0 -0
- /package/dist/{templates → esm/templates}/FieldTemplate.js +0 -0
- /package/dist/{templates → esm/templates}/ObjectFieldTemplate.js +0 -0
- /package/dist/{types.js → esm/types.js} +0 -0
- /package/dist/{utils → esm/utils}/__tests/createInitialValues.test.js +0 -0
- /package/dist/{utils → esm/utils}/__tests/createValidationSchema.test.js +0 -0
- /package/dist/{utils → esm/utils}/__tests/deepOverlap.test.js +0 -0
- /package/dist/{utils → esm/utils}/__tests/getEnums.test.js +0 -0
- /package/dist/{utils → esm/utils}/__tests/getTitleAndDescription.test.js +0 -0
- /package/dist/{utils → esm/utils}/__tests/getTypes.test.js +0 -0
- /package/dist/{utils → esm/utils}/__tests/hasReferences.test.js +0 -0
- /package/dist/{utils → esm/utils}/__tests/mergeSchemas.test.js +0 -0
- /package/dist/{utils → esm/utils}/__tests/orderByUiSchema.test.js +0 -0
- /package/dist/{utils → esm/utils}/__tests/resolveSchema.test.js +0 -0
- /package/dist/{utils → esm/utils}/__tests/solveReferences.test.js +0 -0
- /package/dist/{utils → esm/utils}/__tests/testSchemas.js +0 -0
- /package/dist/{utils → esm/utils}/createInitialValues.js +0 -0
- /package/dist/{utils → esm/utils}/createValidationSchema.js +0 -0
- /package/dist/{utils → esm/utils}/deepOverlap.js +0 -0
- /package/dist/{utils → esm/utils}/getEnums.js +0 -0
- /package/dist/{utils → esm/utils}/getStyle.js +0 -0
- /package/dist/{utils → esm/utils}/getTitleAndDescription.js +0 -0
- /package/dist/{utils → esm/utils}/getTypes.js +0 -0
- /package/dist/{utils → esm/utils}/hasReferences.js +0 -0
- /package/dist/{utils → esm/utils}/index.js +0 -0
- /package/dist/{utils → esm/utils}/mergeSchemas.js +0 -0
- /package/dist/{utils → esm/utils}/orderByUiSchema.js +0 -0
- /package/dist/{utils → esm/utils}/resolveSchema.js +0 -0
- /package/dist/{utils → esm/utils}/solveReferences.js +0 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const deepOverlap_1 = require("../deepOverlap");
|
|
4
|
+
describe("deepOverlap", () => {
|
|
5
|
+
test("returns true for both empty objects", () => {
|
|
6
|
+
expect((0, deepOverlap_1.deepOverlap)({}, {})).toBe(true);
|
|
7
|
+
});
|
|
8
|
+
test("returns true for identical objects", () => {
|
|
9
|
+
const obj1 = { a: 1, b: 2 };
|
|
10
|
+
const obj2 = { a: 1, b: 2 };
|
|
11
|
+
expect((0, deepOverlap_1.deepOverlap)(obj1, obj2)).toBe(true);
|
|
12
|
+
});
|
|
13
|
+
test("returns true for nested objects that are identical", () => {
|
|
14
|
+
const obj1 = { a: { b: 2 } };
|
|
15
|
+
const obj2 = { a: { b: 2 } };
|
|
16
|
+
expect((0, deepOverlap_1.deepOverlap)(obj1, obj2)).toBe(true);
|
|
17
|
+
});
|
|
18
|
+
test("handles arrays and non-object types correctly", () => {
|
|
19
|
+
const obj1 = { a: [1, 2, 3], b: "string", c: true };
|
|
20
|
+
const obj2 = { a: [1, 2, 3], b: "string", c: true };
|
|
21
|
+
expect((0, deepOverlap_1.deepOverlap)(obj1, obj2)).toBe(true);
|
|
22
|
+
});
|
|
23
|
+
test("returns true for objects with keys in different orders", () => {
|
|
24
|
+
const obj1 = { a: 1, b: { c: 2 } };
|
|
25
|
+
const obj2 = { b: { c: 2 }, a: 1 };
|
|
26
|
+
expect((0, deepOverlap_1.deepOverlap)(obj1, obj2)).toBe(true);
|
|
27
|
+
});
|
|
28
|
+
test("returns false for objects with different values", () => {
|
|
29
|
+
const obj1 = { a: 1 };
|
|
30
|
+
const obj2 = { a: 2 };
|
|
31
|
+
expect((0, deepOverlap_1.deepOverlap)(obj1, obj2)).toBe(false);
|
|
32
|
+
});
|
|
33
|
+
test("returns false for nested objects that do not overlap", () => {
|
|
34
|
+
const obj1 = { a: { b: 1 } };
|
|
35
|
+
const obj2 = { a: { b: 2 } };
|
|
36
|
+
expect((0, deepOverlap_1.deepOverlap)(obj1, obj2)).toBe(false);
|
|
37
|
+
});
|
|
38
|
+
test("returns false when one object is empty", () => {
|
|
39
|
+
const obj1 = { a: 1 };
|
|
40
|
+
const obj2 = {};
|
|
41
|
+
expect((0, deepOverlap_1.deepOverlap)(obj1, obj2)).toBe(false);
|
|
42
|
+
});
|
|
43
|
+
});
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const getEnums_1 = require("../getEnums");
|
|
4
|
+
describe("getEnums", () => {
|
|
5
|
+
test("returns undefined when no enum types are defined", () => {
|
|
6
|
+
const result = (0, getEnums_1.getEnums)({ schema: {} });
|
|
7
|
+
expect(result).toBeUndefined();
|
|
8
|
+
});
|
|
9
|
+
test("throws error when more than one enum type is defined", () => {
|
|
10
|
+
expect(() => (0, getEnums_1.getEnums)({ schema: { enum: [], oneOf: [], anyOf: [] } })).toThrow('Only one of "enum", "oneOf" or "anyOf" can be defined!');
|
|
11
|
+
});
|
|
12
|
+
test("enum works", () => {
|
|
13
|
+
const result = (0, getEnums_1.getEnums)({ schema: { enum: ["one", "two", "three"] } });
|
|
14
|
+
expect(result).toEqual({
|
|
15
|
+
type: "select",
|
|
16
|
+
values: [
|
|
17
|
+
{ const: "one", title: "one" },
|
|
18
|
+
{ const: "two", title: "two" },
|
|
19
|
+
{ const: "three", title: "three" },
|
|
20
|
+
],
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
test("oneOf works", () => {
|
|
24
|
+
const result = (0, getEnums_1.getEnums)({
|
|
25
|
+
schema: {
|
|
26
|
+
oneOf: [
|
|
27
|
+
{ const: "horse", title: "Horse" },
|
|
28
|
+
{ const: "frog", title: "Frog" },
|
|
29
|
+
{ const: "bird", title: "Bird" },
|
|
30
|
+
],
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
expect(result).toEqual({
|
|
34
|
+
type: "select",
|
|
35
|
+
values: [
|
|
36
|
+
{ const: "horse", title: "Horse" },
|
|
37
|
+
{ const: "frog", title: "Frog" },
|
|
38
|
+
{ const: "bird", title: "Bird" },
|
|
39
|
+
],
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
test("anyOf works", () => {
|
|
43
|
+
const result = (0, getEnums_1.getEnums)({
|
|
44
|
+
schema: {
|
|
45
|
+
anyOf: [
|
|
46
|
+
{ const: "tangerine", title: "Tangerine" },
|
|
47
|
+
{ const: "mandarin", title: "Mandarin" },
|
|
48
|
+
{ const: "bruno", title: "Bruno" },
|
|
49
|
+
],
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
expect(result).toEqual({
|
|
53
|
+
type: "multiSelect",
|
|
54
|
+
values: [
|
|
55
|
+
{ const: "tangerine", title: "Tangerine" },
|
|
56
|
+
{ const: "mandarin", title: "Mandarin" },
|
|
57
|
+
{ const: "bruno", title: "Bruno" },
|
|
58
|
+
],
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
});
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const getTitleAndDescription_1 = require("../getTitleAndDescription");
|
|
4
|
+
describe("getTitleAndDescription", () => {
|
|
5
|
+
describe("getTitle", () => {
|
|
6
|
+
test("returns title when provided", () => {
|
|
7
|
+
const title = "Test Title";
|
|
8
|
+
expect((0, getTitleAndDescription_1.getTitle)({ title })).toBe(title);
|
|
9
|
+
});
|
|
10
|
+
test("returns title from uiSchema options when provided", () => {
|
|
11
|
+
const uiSchema = {
|
|
12
|
+
"ui:options": { title: "UI Schema Title" },
|
|
13
|
+
};
|
|
14
|
+
expect((0, getTitleAndDescription_1.getTitle)({ uiSchema })).toBe("UI Schema Title");
|
|
15
|
+
});
|
|
16
|
+
test("returns title from uiSchema title when provided", () => {
|
|
17
|
+
const uiSchema = { "ui:title": "UI Schema Title" };
|
|
18
|
+
expect((0, getTitleAndDescription_1.getTitle)({ uiSchema })).toBe("UI Schema Title");
|
|
19
|
+
});
|
|
20
|
+
test("returns title from schema when provided", () => {
|
|
21
|
+
const schema = { title: "Schema Title" };
|
|
22
|
+
expect((0, getTitleAndDescription_1.getTitle)({ schema })).toBe("Schema Title");
|
|
23
|
+
});
|
|
24
|
+
test("returns last part of name when provided", () => {
|
|
25
|
+
const name = "nested.property";
|
|
26
|
+
expect((0, getTitleAndDescription_1.getTitle)({ name })).toBe("property");
|
|
27
|
+
});
|
|
28
|
+
test("returns undefined when no title is provided", () => {
|
|
29
|
+
expect((0, getTitleAndDescription_1.getTitle)({})).toBeUndefined();
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
describe("getDescription", () => {
|
|
33
|
+
test("returns description when provided", () => {
|
|
34
|
+
const description = "Test Description";
|
|
35
|
+
expect((0, getTitleAndDescription_1.getDescription)({ description })).toBe(description);
|
|
36
|
+
});
|
|
37
|
+
test("returns description from uiSchema options when provided", () => {
|
|
38
|
+
const uiSchema = {
|
|
39
|
+
"ui:options": { description: "UI Schema Description" },
|
|
40
|
+
};
|
|
41
|
+
expect((0, getTitleAndDescription_1.getDescription)({ uiSchema })).toBe("UI Schema Description");
|
|
42
|
+
});
|
|
43
|
+
test("returns description from uiSchema description when provided", () => {
|
|
44
|
+
const uiSchema = { "ui:description": "UI Schema Description" };
|
|
45
|
+
expect((0, getTitleAndDescription_1.getDescription)({ uiSchema })).toBe("UI Schema Description");
|
|
46
|
+
});
|
|
47
|
+
test("returns description from schema when provided", () => {
|
|
48
|
+
const schema = { description: "Schema Description" };
|
|
49
|
+
expect((0, getTitleAndDescription_1.getDescription)({ schema })).toBe("Schema Description");
|
|
50
|
+
});
|
|
51
|
+
test("returns undefined when no description is provided", () => {
|
|
52
|
+
expect((0, getTitleAndDescription_1.getDescription)({})).toBeUndefined();
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
});
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const getTypes_1 = require("../getTypes");
|
|
4
|
+
describe("getTypes", () => {
|
|
5
|
+
describe("isObject", () => {
|
|
6
|
+
test("returns true for non-null objects", () => {
|
|
7
|
+
expect((0, getTypes_1.isObject)({})).toBe(true);
|
|
8
|
+
expect((0, getTypes_1.isObject)([])).toBe(true);
|
|
9
|
+
});
|
|
10
|
+
test("returns false for null", () => {
|
|
11
|
+
expect((0, getTypes_1.isObject)(null)).toBe(false);
|
|
12
|
+
});
|
|
13
|
+
test("returns false for non-object types", () => {
|
|
14
|
+
expect((0, getTypes_1.isObject)(42)).toBe(false);
|
|
15
|
+
expect((0, getTypes_1.isObject)("string")).toBe(false);
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
describe("getDefaultValueForType", () => {
|
|
19
|
+
test("returns empty array for 'array' type", () => {
|
|
20
|
+
expect((0, getTypes_1.getDefaultValueForType)("array")).toEqual([]);
|
|
21
|
+
});
|
|
22
|
+
test("returns empty object for 'object' type", () => {
|
|
23
|
+
expect((0, getTypes_1.getDefaultValueForType)("object")).toEqual({});
|
|
24
|
+
});
|
|
25
|
+
test("returns null for unspecified or complex types", () => {
|
|
26
|
+
expect((0, getTypes_1.getDefaultValueForType)("string")).toBeNull();
|
|
27
|
+
expect((0, getTypes_1.getDefaultValueForType)(["string", "null"])).toBeNull();
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
describe("guessType", () => {
|
|
31
|
+
test("correctly guesses basic types", () => {
|
|
32
|
+
expect((0, getTypes_1.guessType)([])).toBe("array");
|
|
33
|
+
expect((0, getTypes_1.guessType)("test")).toBe("string");
|
|
34
|
+
expect((0, getTypes_1.guessType)(42)).toBe("number");
|
|
35
|
+
expect((0, getTypes_1.guessType)(true)).toBe("boolean");
|
|
36
|
+
expect((0, getTypes_1.guessType)(null)).toBe("null");
|
|
37
|
+
expect((0, getTypes_1.guessType)({})).toBe("object");
|
|
38
|
+
});
|
|
39
|
+
test("defaults to 'string' for unrecognized values", () => {
|
|
40
|
+
expect((0, getTypes_1.guessType)(() => { })).toBe("string");
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
describe("getSchemaType", () => {
|
|
44
|
+
test("returns the explicit type if provided", () => {
|
|
45
|
+
expect((0, getTypes_1.getSchemaType)({ type: "number" })).toBe("number");
|
|
46
|
+
});
|
|
47
|
+
test("guesses the type based on const values", () => {
|
|
48
|
+
expect((0, getTypes_1.getSchemaType)({ const: 42 })).toBe("number");
|
|
49
|
+
});
|
|
50
|
+
test("returns 'string' for enums", () => {
|
|
51
|
+
expect((0, getTypes_1.getSchemaType)({ enum: ["one", "two"] })).toBe("string");
|
|
52
|
+
});
|
|
53
|
+
test("returns 'object' for schemas with properties or additionalProperties", () => {
|
|
54
|
+
expect((0, getTypes_1.getSchemaType)({ properties: { a: { type: "number" } } })).toBe("object");
|
|
55
|
+
expect((0, getTypes_1.getSchemaType)({ additionalProperties: { type: "number" } })).toBe("object");
|
|
56
|
+
});
|
|
57
|
+
test('handles array types, excluding "null" when paired with another type', () => {
|
|
58
|
+
expect((0, getTypes_1.getSchemaType)({ type: ["number", "null"] })).toBe("number");
|
|
59
|
+
});
|
|
60
|
+
test("returns undefined for empty or invalid schemas", () => {
|
|
61
|
+
expect((0, getTypes_1.getSchemaType)({})).toBeUndefined();
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
});
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const hasReferences_1 = require("../hasReferences");
|
|
4
|
+
describe("hasReferences", () => {
|
|
5
|
+
it("returns false if no references are found", () => {
|
|
6
|
+
const schema = {
|
|
7
|
+
title: "Deep object",
|
|
8
|
+
properties: {
|
|
9
|
+
value: { type: "number" },
|
|
10
|
+
level1: {
|
|
11
|
+
title: "Level1",
|
|
12
|
+
properties: {
|
|
13
|
+
value: { type: "number" },
|
|
14
|
+
level2: {
|
|
15
|
+
title: "Level2",
|
|
16
|
+
properties: {
|
|
17
|
+
value: { type: "number" },
|
|
18
|
+
level3: {
|
|
19
|
+
title: "Level3",
|
|
20
|
+
properties: {
|
|
21
|
+
value: { type: "number" },
|
|
22
|
+
level4: {
|
|
23
|
+
title: "Level4",
|
|
24
|
+
properties: {
|
|
25
|
+
value: { type: "number" },
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
expect((0, hasReferences_1.hasReferences)(schema)).toEqual(false);
|
|
37
|
+
});
|
|
38
|
+
it("returns true if any references are found", () => {
|
|
39
|
+
const schema = {
|
|
40
|
+
title: "Deep object",
|
|
41
|
+
properties: {
|
|
42
|
+
value: { type: "number" },
|
|
43
|
+
level1: {
|
|
44
|
+
title: "Level1",
|
|
45
|
+
properties: {
|
|
46
|
+
value: { type: "number" },
|
|
47
|
+
level2: {
|
|
48
|
+
title: "Level2",
|
|
49
|
+
properties: {
|
|
50
|
+
value: { type: "number" },
|
|
51
|
+
level3: {
|
|
52
|
+
title: "Level3",
|
|
53
|
+
properties: {
|
|
54
|
+
value: { type: "number" },
|
|
55
|
+
level4: {
|
|
56
|
+
title: "Level4",
|
|
57
|
+
properties: {
|
|
58
|
+
value: { $ref: "#/definitions/organization" },
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
expect((0, hasReferences_1.hasReferences)(schema)).toEqual(true);
|
|
70
|
+
const schema2 = {
|
|
71
|
+
title: "Deep object",
|
|
72
|
+
properties: {
|
|
73
|
+
value: { type: "number" },
|
|
74
|
+
level1: {
|
|
75
|
+
title: "Level1",
|
|
76
|
+
properties: {
|
|
77
|
+
value: { type: "number" },
|
|
78
|
+
level2: {
|
|
79
|
+
title: "Level2",
|
|
80
|
+
properties: {
|
|
81
|
+
value: { $ref: "#/definitions/organization" },
|
|
82
|
+
level3: {
|
|
83
|
+
title: "Level3",
|
|
84
|
+
properties: {
|
|
85
|
+
value: { type: "number" },
|
|
86
|
+
level4: {
|
|
87
|
+
title: "Level4",
|
|
88
|
+
properties: {
|
|
89
|
+
value: { type: "number" },
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
},
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
expect((0, hasReferences_1.hasReferences)(schema2)).toEqual(true);
|
|
101
|
+
});
|
|
102
|
+
});
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const mergeSchemas_1 = require("../mergeSchemas");
|
|
4
|
+
describe("mergeSchemas", () => {
|
|
5
|
+
test("merges simple objects without overlap", () => {
|
|
6
|
+
const obj1 = { a: 1 };
|
|
7
|
+
const obj2 = { b: 2 };
|
|
8
|
+
expect((0, mergeSchemas_1.mergeSchemas)(obj1, obj2)).toEqual({ a: 1, b: 2 });
|
|
9
|
+
});
|
|
10
|
+
test("merges objects with nested objects", () => {
|
|
11
|
+
const obj1 = { a: { b: 1 } };
|
|
12
|
+
const obj2 = { a: { c: 2 }, d: 3 };
|
|
13
|
+
expect((0, mergeSchemas_1.mergeSchemas)(obj1, obj2)).toEqual({ a: { b: 1, c: 2 }, d: 3 });
|
|
14
|
+
});
|
|
15
|
+
test("handles merging with overlapping keys", () => {
|
|
16
|
+
const obj1 = { a: 1, b: 2 };
|
|
17
|
+
const obj2 = { a: 3, c: 4 };
|
|
18
|
+
expect((0, mergeSchemas_1.mergeSchemas)(obj1, obj2)).toEqual({ a: 3, b: 2, c: 4 });
|
|
19
|
+
});
|
|
20
|
+
test("merges schemas with arrays (ensuring arrays are replaced, not merged)", () => {
|
|
21
|
+
const obj1 = { a: [1, 2], b: "string" };
|
|
22
|
+
const obj2 = { a: [3, 4] };
|
|
23
|
+
expect((0, mergeSchemas_1.mergeSchemas)(obj1, obj2)).toEqual({ a: [3, 4], b: "string" });
|
|
24
|
+
});
|
|
25
|
+
test("deep merges nested objects", () => {
|
|
26
|
+
const obj1 = { a: { b: { c: 1 } } };
|
|
27
|
+
const obj2 = { a: { b: { d: 2 }, e: 3 } };
|
|
28
|
+
expect((0, mergeSchemas_1.mergeSchemas)(obj1, obj2)).toEqual({
|
|
29
|
+
a: { b: { c: 1, d: 2 }, e: 3 },
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
test("retains the more specific type when merging schemas with different types", () => {
|
|
33
|
+
const obj1 = { type: ["null", "number"] };
|
|
34
|
+
const obj2 = { type: "number" };
|
|
35
|
+
expect((0, mergeSchemas_1.mergeSchemas)(obj1, obj2)).toEqual({ type: "number" });
|
|
36
|
+
});
|
|
37
|
+
test("returns the second object if the first one is null or undefined", () => {
|
|
38
|
+
const obj1 = null;
|
|
39
|
+
const obj2 = { a: 1 };
|
|
40
|
+
expect((0, mergeSchemas_1.mergeSchemas)(obj1, obj2)).toEqual({ a: 1 });
|
|
41
|
+
});
|
|
42
|
+
});
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const orderByUiSchema_1 = require("../orderByUiSchema");
|
|
4
|
+
const allProperties = ["firstName", "lastName", "age", "hobbies"];
|
|
5
|
+
const emptyOrder = undefined;
|
|
6
|
+
const noAsteriskOrder = ["firstName", "age"];
|
|
7
|
+
const asteriskAsFirstElement = ["*", "firstName"];
|
|
8
|
+
const asteriskAsLastElement = ["age", "*"];
|
|
9
|
+
const asteriskAsMiddleElement = ["hobbies", "*", "age"];
|
|
10
|
+
const orderWithDuplicates = ["age", "*", "age", "*", "lastName"];
|
|
11
|
+
describe("orderByUiSchema", () => {
|
|
12
|
+
it("returns empty array when ui:order is not given", () => {
|
|
13
|
+
const orderedProperties = (0, orderByUiSchema_1.orderByUiSchema)(emptyOrder, allProperties);
|
|
14
|
+
expect(orderedProperties).toEqual(undefined);
|
|
15
|
+
});
|
|
16
|
+
it("returns only given properties when order includes no asterisk", () => {
|
|
17
|
+
const orderedProperties = (0, orderByUiSchema_1.orderByUiSchema)(noAsteriskOrder, allProperties);
|
|
18
|
+
expect(orderedProperties).toEqual(["firstName", "age"]);
|
|
19
|
+
});
|
|
20
|
+
it("returns all properties in the given order with asterisk as first element", () => {
|
|
21
|
+
const orderedProperties = (0, orderByUiSchema_1.orderByUiSchema)(asteriskAsFirstElement, allProperties);
|
|
22
|
+
expect(orderedProperties).toEqual([
|
|
23
|
+
"lastName",
|
|
24
|
+
"age",
|
|
25
|
+
"hobbies",
|
|
26
|
+
"firstName",
|
|
27
|
+
]);
|
|
28
|
+
});
|
|
29
|
+
it("returns all properties in the given order with asterisk as last element", () => {
|
|
30
|
+
const orderedProperties = (0, orderByUiSchema_1.orderByUiSchema)(asteriskAsLastElement, allProperties);
|
|
31
|
+
expect(orderedProperties).toEqual([
|
|
32
|
+
"age",
|
|
33
|
+
"firstName",
|
|
34
|
+
"lastName",
|
|
35
|
+
"hobbies",
|
|
36
|
+
]);
|
|
37
|
+
});
|
|
38
|
+
it("returns all properties in the given order with asterisk as middle element", () => {
|
|
39
|
+
const orderedProperties = (0, orderByUiSchema_1.orderByUiSchema)(asteriskAsMiddleElement, allProperties);
|
|
40
|
+
expect(orderedProperties).toEqual([
|
|
41
|
+
"hobbies",
|
|
42
|
+
"firstName",
|
|
43
|
+
"lastName",
|
|
44
|
+
"age",
|
|
45
|
+
]);
|
|
46
|
+
});
|
|
47
|
+
it("returns all properties in the given order with asterisk as middle element", () => {
|
|
48
|
+
const orderedProperties = (0, orderByUiSchema_1.orderByUiSchema)(asteriskAsMiddleElement, allProperties);
|
|
49
|
+
expect(orderedProperties).toEqual([
|
|
50
|
+
"hobbies",
|
|
51
|
+
"firstName",
|
|
52
|
+
"lastName",
|
|
53
|
+
"age",
|
|
54
|
+
]);
|
|
55
|
+
});
|
|
56
|
+
it("ignores duplicates in order array to avoid errors", () => {
|
|
57
|
+
const orderedProperties = (0, orderByUiSchema_1.orderByUiSchema)(orderWithDuplicates, allProperties);
|
|
58
|
+
expect(orderedProperties).toEqual([
|
|
59
|
+
"age",
|
|
60
|
+
"firstName",
|
|
61
|
+
"hobbies",
|
|
62
|
+
"lastName",
|
|
63
|
+
]);
|
|
64
|
+
});
|
|
65
|
+
});
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const resolveSchema_1 = require("../resolveSchema");
|
|
4
|
+
const testSchemas_1 = require("./testSchemas");
|
|
5
|
+
describe("resolveSchema", () => {
|
|
6
|
+
test("adds conditional properties when condition is met", () => {
|
|
7
|
+
const value = { animal: "cat" };
|
|
8
|
+
const resolvedSchema = (0, resolveSchema_1.resolveSchema)(testSchemas_1.simpleConditionalSchema, value);
|
|
9
|
+
expect(resolvedSchema).toEqual([
|
|
10
|
+
{
|
|
11
|
+
type: "object",
|
|
12
|
+
title: "Title",
|
|
13
|
+
properties: {
|
|
14
|
+
animal: {
|
|
15
|
+
type: "string",
|
|
16
|
+
enum: ["cat", "bird"],
|
|
17
|
+
},
|
|
18
|
+
food: {
|
|
19
|
+
type: "string",
|
|
20
|
+
enum: ["meat", "grass", "fish"],
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
required: ["food"],
|
|
24
|
+
},
|
|
25
|
+
[],
|
|
26
|
+
]);
|
|
27
|
+
});
|
|
28
|
+
test("does not add conditional properties when condition is not met", () => {
|
|
29
|
+
const value = { animal: "bird" };
|
|
30
|
+
const resolvedSchema = (0, resolveSchema_1.resolveSchema)(testSchemas_1.simpleConditionalSchema, value);
|
|
31
|
+
expect(resolvedSchema).toEqual([
|
|
32
|
+
{
|
|
33
|
+
type: "object",
|
|
34
|
+
title: "Title",
|
|
35
|
+
properties: {
|
|
36
|
+
animal: {
|
|
37
|
+
type: "string",
|
|
38
|
+
enum: ["cat", "bird"],
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
[],
|
|
43
|
+
]);
|
|
44
|
+
});
|
|
45
|
+
test("does not add conditional properties when no value is provided", () => {
|
|
46
|
+
const value = {};
|
|
47
|
+
const resolvedSchema = (0, resolveSchema_1.resolveSchema)(testSchemas_1.simpleConditionalSchema, value);
|
|
48
|
+
expect(resolvedSchema).toEqual([
|
|
49
|
+
{
|
|
50
|
+
type: "object",
|
|
51
|
+
title: "Title",
|
|
52
|
+
properties: {
|
|
53
|
+
animal: {
|
|
54
|
+
type: "string",
|
|
55
|
+
enum: ["cat", "bird"],
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
[],
|
|
60
|
+
]);
|
|
61
|
+
});
|
|
62
|
+
test("with value changed", () => {
|
|
63
|
+
const value = { animal: "bird", food: "meat" };
|
|
64
|
+
const resolvedSchema = (0, resolveSchema_1.resolveSchema)(testSchemas_1.simpleConditionalSchema, value);
|
|
65
|
+
expect(resolvedSchema).toEqual([
|
|
66
|
+
{
|
|
67
|
+
type: "object",
|
|
68
|
+
title: "Title",
|
|
69
|
+
properties: {
|
|
70
|
+
animal: {
|
|
71
|
+
type: "string",
|
|
72
|
+
enum: ["cat", "bird"],
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
["food"],
|
|
77
|
+
]);
|
|
78
|
+
});
|
|
79
|
+
test("selects the correct oneOf schema based on the type dependency", () => {
|
|
80
|
+
const valueCar = { type: "car" };
|
|
81
|
+
const resolvedCarSchema = (0, resolveSchema_1.resolveSchema)(testSchemas_1.schemaWithDependenciesAndOneOf, valueCar);
|
|
82
|
+
expect(resolvedCarSchema).toEqual([
|
|
83
|
+
{
|
|
84
|
+
type: "object",
|
|
85
|
+
properties: {
|
|
86
|
+
type: { type: "string", enum: ["car", "bike"] },
|
|
87
|
+
wheels: { type: "number", enum: [4] },
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
[],
|
|
91
|
+
]);
|
|
92
|
+
const valueBike = { type: "bike" };
|
|
93
|
+
const resolvedBikeSchema = (0, resolveSchema_1.resolveSchema)(testSchemas_1.schemaWithDependenciesAndOneOf, valueBike);
|
|
94
|
+
expect(resolvedBikeSchema).toEqual([
|
|
95
|
+
{
|
|
96
|
+
type: "object",
|
|
97
|
+
properties: {
|
|
98
|
+
type: { type: "string", enum: ["car", "bike"] },
|
|
99
|
+
wheels: { type: "number", enum: [2] },
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
[],
|
|
103
|
+
]);
|
|
104
|
+
});
|
|
105
|
+
test("handles missing dependencies", () => {
|
|
106
|
+
const valueEmpty = {};
|
|
107
|
+
const resolvedEmptySchema = (0, resolveSchema_1.resolveSchema)(testSchemas_1.schemaWithDependenciesAndOneOf, valueEmpty);
|
|
108
|
+
expect(resolvedEmptySchema).toEqual([
|
|
109
|
+
{
|
|
110
|
+
type: "object",
|
|
111
|
+
properties: {
|
|
112
|
+
type: { type: "string", enum: ["car", "bike"] },
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
[],
|
|
116
|
+
]);
|
|
117
|
+
});
|
|
118
|
+
});
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const solveReferences_1 = require("../solveReferences");
|
|
4
|
+
const testSchemas_1 = require("./testSchemas");
|
|
5
|
+
describe("solveReferences", () => {
|
|
6
|
+
it("should resolve simple references correctly", () => {
|
|
7
|
+
const schemaSolvedForReferences = (0, solveReferences_1.solveReferences)(testSchemas_1.refDefSchema?.properties?.name, testSchemas_1.refDefSchema.definitions, {}, {});
|
|
8
|
+
expect(schemaSolvedForReferences).toEqual({
|
|
9
|
+
schema: {
|
|
10
|
+
type: "string",
|
|
11
|
+
title: "Name",
|
|
12
|
+
},
|
|
13
|
+
uiSchema: {},
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
it("should resolve simple references with uiSchema correctly", () => {
|
|
17
|
+
const schemaSolvedForReferences = (0, solveReferences_1.solveReferences)(testSchemas_1.refDefSchema?.properties?.birthday, testSchemas_1.refDefSchema.definitions, testSchemas_1.refDefUiSchema.birthday ?? {}, testSchemas_1.refDefUiSchema.definitions);
|
|
18
|
+
expect(schemaSolvedForReferences).toEqual({
|
|
19
|
+
schema: {
|
|
20
|
+
type: "string",
|
|
21
|
+
title: "Birthday",
|
|
22
|
+
},
|
|
23
|
+
uiSchema: { "ui:field": "DateField" },
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
it("should override uiSchema settings when key of field is also given outside definitions object of uiSchema", () => {
|
|
27
|
+
const schemaSolvedForReferences = (0, solveReferences_1.solveReferences)(testSchemas_1.refDefSchema?.properties?.friendBirthday, testSchemas_1.refDefSchema.definitions, testSchemas_1.refDefUiSchema.friendBirthday ?? {}, testSchemas_1.refDefUiSchema.definitions);
|
|
28
|
+
expect(schemaSolvedForReferences).toEqual({
|
|
29
|
+
schema: {
|
|
30
|
+
type: "string",
|
|
31
|
+
title: "Birthday", //this is the original title that comes from the definitions, but is getting overridden
|
|
32
|
+
},
|
|
33
|
+
uiSchema: {
|
|
34
|
+
"ui:field": "DateField",
|
|
35
|
+
"ui:title": "The birthday of your best friend", //this is the title that will be displayed as field title
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
it("should merge field and definition schema", () => {
|
|
40
|
+
const schemaSolvedForReferences = (0, solveReferences_1.solveReferences)(testSchemas_1.refDefSchema?.properties?.address, testSchemas_1.refDefSchema.definitions, {}, {});
|
|
41
|
+
expect(schemaSolvedForReferences).toEqual({
|
|
42
|
+
schema: {
|
|
43
|
+
type: "object",
|
|
44
|
+
title: "Address",
|
|
45
|
+
required: ["country", "city", "street", "postcode"],
|
|
46
|
+
default: { country: "US" },
|
|
47
|
+
properties: {
|
|
48
|
+
country: { type: "string", title: "Country" },
|
|
49
|
+
city: { type: "string", title: "City" },
|
|
50
|
+
street: { type: "string", title: "Street" },
|
|
51
|
+
postcode: { type: "string", title: "Postcode" },
|
|
52
|
+
apartmentNumber: { type: "string", title: "Apartment number" },
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
uiSchema: {},
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
});
|