@nolwenture/formik-jsonschema-form 2.0.2 → 3.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -0
- package/dist/cjs/common/types/index.js +2 -0
- package/dist/cjs/index.js +15 -5
- package/dist/cjs/v3/codemod/bindings.js +124 -0
- package/dist/cjs/v3/codemod/cli.js +89 -0
- package/dist/cjs/v3/codemod/migrate.js +21 -0
- package/dist/cjs/v3/codemod/package.js +5 -0
- package/dist/cjs/v3/codemod/slots.js +27 -0
- package/dist/cjs/v3/codemod/transform.js +61 -0
- package/dist/cjs/v3/document/fromDocument.js +50 -0
- package/dist/cjs/v3/document/index.js +9 -0
- package/dist/cjs/v3/document/render.js +22 -0
- package/dist/cjs/v3/raw/compat/v2utils.js +39 -0
- package/dist/cjs/v3/raw/core/arrays.js +55 -0
- package/dist/cjs/v3/raw/core/choiceStyle.js +14 -0
- package/dist/cjs/v3/raw/core/conditionals.js +88 -0
- package/dist/cjs/v3/raw/core/dates.js +74 -0
- package/dist/cjs/v3/raw/core/defaults.js +31 -0
- package/dist/cjs/v3/raw/core/enums.js +37 -0
- package/dist/cjs/v3/raw/core/initialValues.js +68 -0
- package/dist/cjs/v3/raw/core/issues.js +42 -0
- package/dist/cjs/v3/raw/core/json.js +58 -0
- package/dist/cjs/v3/raw/core/merge.js +51 -0
- package/dist/cjs/v3/raw/core/paths.js +88 -0
- package/dist/cjs/v3/raw/core/policies/fileUploadView.js +4 -0
- package/dist/cjs/v3/raw/core/policies/optionalNumberInitial.js +7 -0
- package/dist/cjs/v3/raw/core/policies/storedFormats.js +5 -0
- package/dist/cjs/v3/raw/core/refs.js +104 -0
- package/dist/cjs/v3/raw/core/schemaType.js +75 -0
- package/dist/cjs/v3/raw/core/titles.js +30 -0
- package/dist/cjs/v3/raw/core/trail.js +18 -0
- package/dist/cjs/v3/raw/core/uiProps.js +72 -0
- package/dist/cjs/v3/raw/core/uiSchema.js +56 -0
- package/dist/cjs/v3/raw/dom/bind.js +84 -0
- package/dist/cjs/v3/raw/dom/build.js +27 -0
- package/dist/cjs/v3/raw/dom/controller.js +87 -0
- package/dist/cjs/v3/raw/dom/core.js +67 -0
- package/dist/cjs/v3/raw/dom/delegate.js +31 -0
- package/dist/cjs/v3/raw/dom/effects.js +67 -0
- package/dist/cjs/v3/raw/dom/elements.js +88 -0
- package/dist/cjs/v3/raw/dom/emitter.js +47 -0
- package/dist/cjs/v3/raw/dom/nodes.js +25 -0
- package/dist/cjs/v3/raw/dom/render.js +122 -0
- package/dist/cjs/v3/raw/dom/upload.js +186 -0
- package/dist/cjs/v3/raw/i18n/en.js +47 -0
- package/dist/cjs/v3/raw/i18n/fi.js +44 -0
- package/dist/cjs/v3/raw/i18n/index.js +14 -0
- package/dist/cjs/v3/raw/index.js +98 -0
- package/dist/cjs/v3/raw/model/classes.js +9 -0
- package/dist/cjs/v3/raw/model/form/actions.js +154 -0
- package/dist/cjs/v3/raw/model/form/any.js +27 -0
- package/dist/cjs/v3/raw/model/form/appearance.js +32 -0
- package/dist/cjs/v3/raw/model/form/array.js +69 -0
- package/dist/cjs/v3/raw/model/form/choice.js +74 -0
- package/dist/cjs/v3/raw/model/form/chrome.js +65 -0
- package/dist/cjs/v3/raw/model/form/componentTable.js +148 -0
- package/dist/cjs/v3/raw/model/form/date.js +53 -0
- package/dist/cjs/v3/raw/model/form/dispatch.js +119 -0
- package/dist/cjs/v3/raw/model/form/iconData.js +19 -0
- package/dist/cjs/v3/raw/model/form/icons.js +10 -0
- package/dist/cjs/v3/raw/model/form/index.js +43 -0
- package/dist/cjs/v3/raw/model/form/leaf.js +99 -0
- package/dist/cjs/v3/raw/model/form/markup.js +46 -0
- package/dist/cjs/v3/raw/model/form/object.js +105 -0
- package/dist/cjs/v3/raw/model/form/parts.js +26 -0
- package/dist/cjs/v3/raw/model/form/searchable.js +81 -0
- package/dist/cjs/v3/raw/model/form/templated.js +22 -0
- package/dist/cjs/v3/raw/model/form/upload.js +88 -0
- package/dist/cjs/v3/raw/model/styledChains.js +43 -0
- package/dist/cjs/v3/raw/model/view/build.js +165 -0
- package/dist/cjs/v3/raw/model/view/fields.js +102 -0
- package/dist/cjs/v3/raw/model/view/index.js +10 -0
- package/dist/cjs/v3/raw/model/view/markup.js +62 -0
- package/dist/cjs/v3/raw/model/view/toVNode.js +67 -0
- package/dist/cjs/v3/raw/model/view/values.js +58 -0
- package/dist/cjs/v3/raw/model/vnode.js +21 -0
- package/dist/cjs/v3/raw/sanitize/index.js +10 -0
- package/dist/cjs/v3/raw/sanitize/sanitizeHtml.js +128 -0
- package/dist/cjs/v3/raw/serialize/toDOM.js +150 -0
- package/dist/cjs/v3/raw/serialize/toString.js +58 -0
- package/dist/cjs/v3/raw/store/createStore.js +133 -0
- package/dist/cjs/v3/raw/styles/color.js +112 -0
- package/dist/cjs/v3/raw/styles/colorNames.js +30 -0
- package/dist/cjs/v3/raw/styles/defaultStyles.js +114 -0
- package/dist/cjs/v3/raw/styles/index.js +24 -0
- package/dist/cjs/v3/raw/styles/themeToCssVars.js +60 -0
- package/dist/cjs/v3/raw/styles/vars.js +28 -0
- package/dist/cjs/v3/raw/validation/arrays.js +78 -0
- package/dist/cjs/v3/raw/validation/conditions.js +63 -0
- package/dist/cjs/v3/raw/validation/index.js +182 -0
- package/dist/cjs/v3/raw/validation/keywords.js +113 -0
- package/dist/cjs/v3/raw/validation/messages.js +14 -0
- package/dist/cjs/v3/raw/validation/patterns.js +74 -0
- package/dist/cjs/v3/react/chain.js +7 -0
- package/dist/cjs/v3/react/compat.js +11 -0
- package/dist/cjs/v3/react/componentsProp.js +23 -0
- package/dist/cjs/v3/react/defined.js +6 -0
- package/dist/cjs/v3/react/ejs/EJSField.js +75 -0
- package/dist/cjs/v3/react/ejs/index.js +8 -0
- package/dist/cjs/v3/react/form/components.js +105 -0
- package/dist/cjs/v3/react/form/fields.js +75 -0
- package/dist/cjs/v3/react/form/host.js +100 -0
- package/dist/cjs/{Form/FormRegistry.js → v3/react/form/registry.js} +6 -7
- package/dist/cjs/v3/react/form/root.js +42 -0
- package/dist/cjs/v3/react/form/runtime.js +117 -0
- package/dist/cjs/v3/react/form/templates.js +58 -0
- package/dist/cjs/v3/react/form/upload.js +173 -0
- package/dist/cjs/v3/react/form/uploadContexts.js +27 -0
- package/dist/cjs/v3/react/form/useSetDefault.js +21 -0
- package/dist/cjs/v3/react/hostCore.js +59 -0
- package/dist/cjs/v3/react/index.js +45 -0
- package/dist/cjs/v3/react/selector.js +17 -0
- package/dist/cjs/v3/react/slots.js +19 -0
- package/dist/cjs/v3/react/toReact.js +63 -0
- package/dist/cjs/v3/react/view/components.js +63 -0
- package/dist/cjs/v3/react/view/fields.js +46 -0
- package/dist/cjs/v3/react/view/host.js +36 -0
- package/dist/cjs/v3/react/view/registry.js +20 -0
- package/dist/cjs/v3/react/view/root.js +37 -0
- package/dist/cjs/v3/react/view/templates.js +50 -0
- package/dist/esm/common/types/index.js +2 -0
- package/dist/esm/index.js +8 -5
- package/dist/esm/v3/document/fromDocument.js +46 -0
- package/dist/esm/v3/document/index.js +4 -0
- package/dist/esm/v3/document/render.js +18 -0
- package/dist/esm/v3/raw/compat/v2utils.js +15 -0
- package/dist/esm/v3/raw/core/arrays.js +49 -0
- package/dist/esm/v3/raw/core/choiceStyle.js +10 -0
- package/dist/esm/v3/raw/core/conditionals.js +82 -0
- package/dist/esm/v3/raw/core/dates.js +66 -0
- package/dist/esm/v3/raw/core/defaults.js +25 -0
- package/dist/esm/v3/raw/core/enums.js +32 -0
- package/dist/esm/v3/raw/core/initialValues.js +65 -0
- package/dist/esm/v3/raw/core/issues.js +36 -0
- package/dist/esm/v3/raw/core/json.js +49 -0
- package/dist/esm/v3/raw/core/merge.js +47 -0
- package/dist/esm/v3/raw/core/paths.js +79 -0
- package/dist/esm/v3/raw/core/policies/fileUploadView.js +1 -0
- package/dist/esm/v3/raw/core/policies/optionalNumberInitial.js +3 -0
- package/dist/esm/v3/raw/core/policies/storedFormats.js +2 -0
- package/dist/esm/v3/raw/core/refs.js +97 -0
- package/dist/esm/v3/raw/core/schemaType.js +68 -0
- package/dist/esm/v3/raw/core/titles.js +25 -0
- package/dist/esm/v3/raw/core/trail.js +14 -0
- package/dist/esm/v3/raw/core/uiProps.js +68 -0
- package/dist/esm/v3/raw/core/uiSchema.js +47 -0
- package/dist/esm/v3/raw/dom/bind.js +80 -0
- package/dist/esm/v3/raw/dom/build.js +23 -0
- package/dist/esm/v3/raw/dom/controller.js +83 -0
- package/dist/esm/v3/raw/dom/core.js +63 -0
- package/dist/esm/v3/raw/dom/delegate.js +25 -0
- package/dist/esm/v3/raw/dom/effects.js +62 -0
- package/dist/esm/v3/raw/dom/elements.js +84 -0
- package/dist/esm/v3/raw/dom/emitter.js +43 -0
- package/dist/esm/v3/raw/dom/nodes.js +20 -0
- package/dist/esm/v3/raw/dom/render.js +118 -0
- package/dist/esm/v3/raw/dom/upload.js +182 -0
- package/dist/esm/v3/raw/i18n/en.js +44 -0
- package/dist/esm/v3/raw/i18n/fi.js +41 -0
- package/dist/esm/v3/raw/i18n/index.js +9 -0
- package/dist/esm/v3/raw/index.js +33 -0
- package/dist/esm/v3/raw/model/classes.js +5 -0
- package/dist/esm/v3/raw/model/form/actions.js +150 -0
- package/dist/esm/v3/raw/model/form/any.js +23 -0
- package/dist/esm/v3/raw/model/form/appearance.js +27 -0
- package/dist/esm/v3/raw/model/form/array.js +65 -0
- package/dist/esm/v3/raw/model/form/choice.js +65 -0
- package/dist/esm/v3/raw/model/form/chrome.js +58 -0
- package/dist/esm/v3/raw/model/form/componentTable.js +145 -0
- package/dist/esm/v3/raw/model/form/date.js +48 -0
- package/dist/esm/v3/raw/model/form/dispatch.js +114 -0
- package/dist/esm/v3/raw/model/form/iconData.js +16 -0
- package/dist/esm/v3/raw/model/form/icons.js +6 -0
- package/dist/esm/v3/raw/model/form/index.js +32 -0
- package/dist/esm/v3/raw/model/form/leaf.js +89 -0
- package/dist/esm/v3/raw/model/form/markup.js +35 -0
- package/dist/esm/v3/raw/model/form/object.js +100 -0
- package/dist/esm/v3/raw/model/form/parts.js +21 -0
- package/dist/esm/v3/raw/model/form/searchable.js +76 -0
- package/dist/esm/v3/raw/model/form/templated.js +17 -0
- package/dist/esm/v3/raw/model/form/upload.js +81 -0
- package/dist/esm/v3/raw/model/styledChains.js +40 -0
- package/dist/esm/v3/raw/model/view/build.js +158 -0
- package/dist/esm/v3/raw/model/view/fields.js +90 -0
- package/dist/esm/v3/raw/model/view/index.js +6 -0
- package/dist/esm/v3/raw/model/view/markup.js +48 -0
- package/dist/esm/v3/raw/model/view/toVNode.js +63 -0
- package/dist/esm/v3/raw/model/view/values.js +50 -0
- package/dist/esm/v3/raw/model/vnode.js +13 -0
- package/dist/esm/v3/raw/sanitize/index.js +2 -0
- package/dist/esm/v3/raw/sanitize/sanitizeHtml.js +119 -0
- package/dist/esm/v3/raw/serialize/toDOM.js +145 -0
- package/dist/esm/v3/raw/serialize/toString.js +52 -0
- package/dist/esm/v3/raw/store/createStore.js +126 -0
- package/dist/esm/v3/raw/styles/color.js +104 -0
- package/dist/esm/v3/raw/styles/colorNames.js +27 -0
- package/dist/esm/v3/raw/styles/defaultStyles.js +111 -0
- package/dist/esm/v3/raw/styles/index.js +14 -0
- package/dist/esm/v3/raw/styles/themeToCssVars.js +55 -0
- package/dist/esm/v3/raw/styles/vars.js +24 -0
- package/dist/esm/v3/raw/validation/arrays.js +40 -0
- package/dist/esm/v3/raw/validation/conditions.js +60 -0
- package/dist/esm/v3/raw/validation/index.js +146 -0
- package/dist/esm/v3/raw/validation/keywords.js +73 -0
- package/dist/esm/v3/raw/validation/messages.js +10 -0
- package/dist/esm/v3/raw/validation/patterns.js +68 -0
- package/dist/esm/v3/react/chain.js +4 -0
- package/dist/esm/v3/react/compat.js +8 -0
- package/dist/esm/v3/react/componentsProp.js +18 -0
- package/dist/esm/v3/react/defined.js +2 -0
- package/dist/esm/v3/react/ejs/EJSField.js +67 -0
- package/dist/esm/v3/react/ejs/index.js +3 -0
- package/dist/esm/v3/react/form/components.js +101 -0
- package/dist/esm/v3/react/form/fields.js +70 -0
- package/dist/esm/v3/react/form/host.js +95 -0
- package/dist/esm/{Form/FormRegistry.js → v3/react/form/registry.js} +5 -3
- package/dist/esm/v3/react/form/root.js +38 -0
- package/dist/esm/v3/react/form/runtime.js +113 -0
- package/dist/esm/v3/react/form/templates.js +55 -0
- package/dist/esm/v3/react/form/upload.js +168 -0
- package/dist/esm/v3/react/form/uploadContexts.js +24 -0
- package/dist/esm/v3/react/form/useSetDefault.js +17 -0
- package/dist/esm/v3/react/hostCore.js +52 -0
- package/dist/esm/v3/react/index.js +18 -0
- package/dist/esm/v3/react/selector.js +13 -0
- package/dist/esm/v3/react/slots.js +15 -0
- package/dist/esm/v3/react/toReact.js +58 -0
- package/dist/esm/v3/react/view/components.js +59 -0
- package/dist/esm/v3/react/view/fields.js +43 -0
- package/dist/esm/v3/react/view/host.js +32 -0
- package/dist/esm/v3/react/view/registry.js +16 -0
- package/dist/esm/v3/react/view/root.js +33 -0
- package/dist/esm/v3/react/view/templates.js +47 -0
- package/dist/types/common/types/Form.d.ts +9 -32
- package/dist/types/common/types/Utils.d.ts +11 -0
- package/dist/types/common/types/index.d.ts +2 -0
- package/dist/types/index.d.ts +6 -4
- package/dist/types/v3/codemod/bindings.d.ts +18 -0
- package/dist/types/v3/codemod/cli.d.ts +2 -0
- package/dist/types/v3/codemod/migrate.d.ts +8 -0
- package/dist/types/v3/codemod/package.d.ts +2 -0
- package/dist/types/v3/codemod/slots.d.ts +13 -0
- package/dist/types/v3/codemod/transform.d.ts +29 -0
- package/dist/types/v3/document/fromDocument.d.ts +22 -0
- package/dist/types/v3/document/index.d.ts +4 -0
- package/dist/types/v3/document/render.d.ts +11 -0
- package/dist/types/v3/raw/compat/v2utils.d.ts +14 -0
- package/dist/types/v3/raw/core/arrays.d.ts +22 -0
- package/dist/types/v3/raw/core/choiceStyle.d.ts +4 -0
- package/dist/types/v3/raw/core/conditionals.d.ts +6 -0
- package/dist/types/v3/raw/core/dates.d.ts +8 -0
- package/dist/types/v3/raw/core/defaults.d.ts +15 -0
- package/dist/types/v3/raw/core/enums.d.ts +18 -0
- package/dist/types/v3/raw/core/initialValues.d.ts +12 -0
- package/dist/types/v3/raw/core/issues.d.ts +17 -0
- package/dist/types/v3/raw/core/json.d.ts +52 -0
- package/dist/types/v3/raw/core/merge.d.ts +6 -0
- package/dist/types/v3/raw/core/paths.d.ts +17 -0
- package/dist/types/v3/raw/core/policies/fileUploadView.d.ts +2 -0
- package/dist/types/v3/raw/core/policies/optionalNumberInitial.d.ts +4 -0
- package/dist/types/v3/raw/core/policies/storedFormats.d.ts +4 -0
- package/dist/types/v3/raw/core/refs.d.ts +41 -0
- package/dist/types/v3/raw/core/schemaType.d.ts +16 -0
- package/dist/types/v3/raw/core/titles.d.ts +2 -0
- package/dist/types/v3/raw/core/trail.d.ts +5 -0
- package/dist/types/v3/raw/core/uiProps.d.ts +12 -0
- package/dist/types/v3/raw/core/uiSchema.d.ts +19 -0
- package/dist/types/v3/raw/dom/bind.d.ts +2 -0
- package/dist/types/v3/raw/dom/build.d.ts +10 -0
- package/dist/types/v3/raw/dom/controller.d.ts +37 -0
- package/dist/types/v3/raw/dom/core.d.ts +43 -0
- package/dist/types/v3/raw/dom/delegate.d.ts +18 -0
- package/dist/types/v3/raw/dom/effects.d.ts +18 -0
- package/dist/types/v3/raw/dom/elements.d.ts +17 -0
- package/dist/types/v3/raw/dom/emitter.d.ts +8 -0
- package/dist/types/v3/raw/dom/nodes.d.ts +3 -0
- package/dist/types/v3/raw/dom/render.d.ts +2 -0
- package/dist/types/v3/raw/dom/types.d.ts +112 -0
- package/dist/types/v3/raw/dom/upload.d.ts +16 -0
- package/dist/types/v3/raw/i18n/en.d.ts +42 -0
- package/dist/types/v3/raw/i18n/fi.d.ts +2 -0
- package/dist/types/v3/raw/i18n/index.d.ts +9 -0
- package/dist/types/v3/raw/index.d.ts +43 -0
- package/dist/types/v3/raw/model/classes.d.ts +2 -0
- package/dist/types/v3/raw/model/form/actions.d.ts +41 -0
- package/dist/types/v3/raw/model/form/any.d.ts +5 -0
- package/dist/types/v3/raw/model/form/appearance.d.ts +9 -0
- package/dist/types/v3/raw/model/form/array.d.ts +4 -0
- package/dist/types/v3/raw/model/form/choice.d.ts +16 -0
- package/dist/types/v3/raw/model/form/chrome.d.ts +20 -0
- package/dist/types/v3/raw/model/form/componentTable.d.ts +2 -0
- package/dist/types/v3/raw/model/form/date.d.ts +13 -0
- package/dist/types/v3/raw/model/form/dispatch.d.ts +13 -0
- package/dist/types/v3/raw/model/form/iconData.d.ts +4 -0
- package/dist/types/v3/raw/model/form/icons.d.ts +2 -0
- package/dist/types/v3/raw/model/form/index.d.ts +38 -0
- package/dist/types/v3/raw/model/form/leaf.d.ts +29 -0
- package/dist/types/v3/raw/model/form/markup.d.ts +39 -0
- package/dist/types/v3/raw/model/form/object.d.ts +9 -0
- package/dist/types/v3/raw/model/form/parts.d.ts +10 -0
- package/dist/types/v3/raw/model/form/searchable.d.ts +5 -0
- package/dist/types/v3/raw/model/form/templated.d.ts +14 -0
- package/dist/types/v3/raw/model/form/types.d.ts +179 -0
- package/dist/types/v3/raw/model/form/upload.d.ts +28 -0
- package/dist/types/v3/raw/model/host.d.ts +46 -0
- package/dist/types/v3/raw/model/styledChains.d.ts +1 -0
- package/dist/types/v3/raw/model/view/build.d.ts +21 -0
- package/dist/types/v3/raw/model/view/fields.d.ts +31 -0
- package/dist/types/v3/raw/model/view/index.d.ts +6 -0
- package/dist/types/v3/raw/model/view/markup.d.ts +39 -0
- package/dist/types/v3/raw/model/view/toVNode.d.ts +3 -0
- package/dist/types/v3/raw/model/view/types.d.ts +109 -0
- package/dist/types/v3/raw/model/view/values.d.ts +10 -0
- package/dist/types/v3/raw/model/vnode.d.ts +24 -0
- package/dist/types/v3/raw/sanitize/index.d.ts +2 -0
- package/dist/types/v3/raw/sanitize/sanitizeHtml.d.ts +30 -0
- package/dist/types/v3/raw/serialize/toDOM.d.ts +14 -0
- package/dist/types/v3/raw/serialize/toString.d.ts +4 -0
- package/dist/types/v3/raw/store/createStore.d.ts +39 -0
- package/dist/types/v3/raw/styles/color.d.ts +15 -0
- package/dist/types/v3/raw/styles/colorNames.d.ts +1 -0
- package/dist/types/v3/raw/styles/defaultStyles.d.ts +1 -0
- package/dist/types/v3/raw/styles/index.d.ts +8 -0
- package/dist/types/v3/raw/styles/themeToCssVars.d.ts +4 -0
- package/dist/types/v3/raw/styles/vars.d.ts +43 -0
- package/dist/types/v3/raw/validation/arrays.d.ts +16 -0
- package/dist/types/v3/raw/validation/conditions.d.ts +10 -0
- package/dist/types/v3/raw/validation/index.d.ts +30 -0
- package/dist/types/v3/raw/validation/keywords.d.ts +10 -0
- package/dist/types/v3/raw/validation/messages.d.ts +8 -0
- package/dist/types/v3/raw/validation/patterns.d.ts +8 -0
- package/dist/types/v3/react/chain.d.ts +1 -0
- package/dist/types/v3/react/compat.d.ts +4 -0
- package/dist/types/v3/react/componentsProp.d.ts +5 -0
- package/dist/types/v3/react/defined.d.ts +1 -0
- package/dist/types/v3/react/ejs/EJSField.d.ts +14 -0
- package/dist/types/v3/react/ejs/index.d.ts +1 -0
- package/dist/types/v3/react/form/components.d.ts +3 -0
- package/dist/types/v3/react/form/fields.d.ts +8 -0
- package/dist/types/v3/react/form/host.d.ts +9 -0
- package/dist/types/v3/react/form/registry.d.ts +46 -0
- package/dist/types/v3/react/form/root.d.ts +32 -0
- package/dist/types/v3/react/form/runtime.d.ts +3 -0
- package/dist/types/v3/react/form/templates.d.ts +1 -0
- package/dist/types/v3/react/form/upload.d.ts +3 -0
- package/dist/types/v3/react/form/uploadContexts.d.ts +34 -0
- package/dist/types/v3/react/form/useSetDefault.d.ts +5 -0
- package/dist/types/v3/react/hostCore.d.ts +24 -0
- package/dist/types/v3/react/index.d.ts +23 -0
- package/dist/types/v3/react/selector.d.ts +10 -0
- package/dist/types/v3/react/slots.d.ts +4 -0
- package/dist/types/v3/react/toReact.d.ts +10 -0
- package/dist/types/v3/react/view/components.d.ts +8 -0
- package/dist/types/v3/react/view/fields.d.ts +4 -0
- package/dist/types/v3/react/view/host.d.ts +6 -0
- package/dist/types/v3/react/view/registry.d.ts +34 -0
- package/dist/types/v3/react/view/root.d.ts +32 -0
- package/dist/types/v3/react/view/templates.d.ts +15 -0
- package/package.json +97 -11
- package/styles.css +187 -0
- package/dist/cjs/Form/Form.js +0 -38
- package/dist/cjs/Form/components/Clickable.js +0 -11
- package/dist/cjs/Form/components/ErrorMessage.js +0 -23
- package/dist/cjs/Form/components/FieldInfo.js +0 -144
- package/dist/cjs/Form/components/FieldInput.js +0 -86
- package/dist/cjs/Form/components/Form.js +0 -52
- package/dist/cjs/Form/components/Icon.js +0 -5
- package/dist/cjs/Form/components/RequiredIndicator.js +0 -9
- package/dist/cjs/Form/components/index.js +0 -58
- package/dist/cjs/Form/fields/AnyField/AnyField.js +0 -30
- package/dist/cjs/Form/fields/AnyField/index.js +0 -38
- package/dist/cjs/Form/fields/AnyField/styledComponents.js +0 -6
- package/dist/cjs/Form/fields/ArrayField/ArrayField.js +0 -130
- package/dist/cjs/Form/fields/ArrayField/index.js +0 -38
- package/dist/cjs/Form/fields/ArrayField/styledComponents.js +0 -22
- package/dist/cjs/Form/fields/BooleanField/BooleanField.js +0 -26
- package/dist/cjs/Form/fields/BooleanField/index.js +0 -38
- package/dist/cjs/Form/fields/BooleanField/styledComponents.js +0 -18
- package/dist/cjs/Form/fields/DateField/DateField.js +0 -26
- package/dist/cjs/Form/fields/DateField/DateInput.js +0 -121
- package/dist/cjs/Form/fields/DateField/dateParsing.js +0 -68
- package/dist/cjs/Form/fields/DateField/index.js +0 -42
- package/dist/cjs/Form/fields/DateField/styledComponents.js +0 -60
- package/dist/cjs/Form/fields/FileUploadField/FileUploadField.js +0 -69
- package/dist/cjs/Form/fields/FileUploadField/FileUploadFieldInput.js +0 -21
- package/dist/cjs/Form/fields/FileUploadField/index.js +0 -41
- package/dist/cjs/Form/fields/FileUploadField/styledComponents.js +0 -63
- package/dist/cjs/Form/fields/FilesUploadField/FilesUploadField.js +0 -102
- package/dist/cjs/Form/fields/FilesUploadField/FilesUploadFieldInput.js +0 -174
- package/dist/cjs/Form/fields/FilesUploadField/index.js +0 -41
- package/dist/cjs/Form/fields/FilesUploadField/styledComponents.js +0 -217
- package/dist/cjs/Form/fields/MultipleChoiceField/MultipleChoiceField.js +0 -35
- package/dist/cjs/Form/fields/MultipleChoiceField/MultipleChoiceFieldInput.js +0 -40
- package/dist/cjs/Form/fields/MultipleChoiceField/index.js +0 -41
- package/dist/cjs/Form/fields/MultipleChoiceField/styledComponents.js +0 -24
- package/dist/cjs/Form/fields/NullField/NullField.js +0 -15
- package/dist/cjs/Form/fields/NullField/index.js +0 -37
- package/dist/cjs/Form/fields/NumberField/NumberField.js +0 -16
- package/dist/cjs/Form/fields/NumberField/index.js +0 -38
- package/dist/cjs/Form/fields/NumberField/styledComponents.js +0 -6
- package/dist/cjs/Form/fields/ObjectField/ObjectField.js +0 -190
- package/dist/cjs/Form/fields/ObjectField/ObjectFieldSection.js +0 -17
- package/dist/cjs/Form/fields/ObjectField/index.js +0 -41
- package/dist/cjs/Form/fields/ObjectField/styledComponents.js +0 -50
- package/dist/cjs/Form/fields/ObjectField/types.js +0 -10
- package/dist/cjs/Form/fields/RadioField/RadioField.js +0 -19
- package/dist/cjs/Form/fields/RadioField/RadioFieldInput.js +0 -11
- package/dist/cjs/Form/fields/RadioField/index.js +0 -41
- package/dist/cjs/Form/fields/RadioField/styledComponents.js +0 -78
- package/dist/cjs/Form/fields/SchemaField/SchemaField.js +0 -38
- package/dist/cjs/Form/fields/SchemaField/index.js +0 -37
- package/dist/cjs/Form/fields/SearchableMultiTagSelectField/SearchableMultiTagSelectField.js +0 -20
- package/dist/cjs/Form/fields/SearchableMultiTagSelectField/SearchableMultiTagSelectFieldInput.js +0 -27
- package/dist/cjs/Form/fields/SearchableMultiTagSelectField/index.js +0 -41
- package/dist/cjs/Form/fields/SearchableMultiTagSelectField/styledComponents.js +0 -71
- package/dist/cjs/Form/fields/SearchableSelectField/SearchableSelectField.js +0 -147
- package/dist/cjs/Form/fields/SearchableSelectField/index.js +0 -40
- package/dist/cjs/Form/fields/SearchableSelectField/styledComponents.js +0 -53
- package/dist/cjs/Form/fields/StringField/StringField.js +0 -44
- package/dist/cjs/Form/fields/StringField/index.js +0 -37
- package/dist/cjs/Form/fields/StringField/styledComponents.js +0 -6
- package/dist/cjs/Form/fields/TextAreaField/TextAreaField.js +0 -21
- package/dist/cjs/Form/fields/TextAreaField/index.js +0 -38
- package/dist/cjs/Form/fields/TextAreaField/styledComponents.js +0 -17
- package/dist/cjs/Form/fields/ToggleField/ToggleField.js +0 -19
- package/dist/cjs/Form/fields/ToggleField/ToggleFieldInput.js +0 -11
- package/dist/cjs/Form/fields/ToggleField/index.js +0 -41
- package/dist/cjs/Form/fields/ToggleField/styledComponents.js +0 -58
- package/dist/cjs/Form/fields/index.js +0 -93
- package/dist/cjs/Form/hooks/index.js +0 -17
- package/dist/cjs/Form/hooks/useSetDefault.js +0 -32
- package/dist/cjs/Form/index.js +0 -26
- package/dist/cjs/Form/styles/common.js +0 -259
- package/dist/cjs/Form/templates/ArrayFieldTemplate/ArrayFieldTemplate.js +0 -36
- package/dist/cjs/Form/templates/ArrayFieldTemplate/index.js +0 -38
- package/dist/cjs/Form/templates/ArrayFieldTemplate/styledComponents.js +0 -28
- package/dist/cjs/Form/templates/CollapsibleObjectFieldTemplate/CollapsibleObjectFieldTemplate.js +0 -41
- package/dist/cjs/Form/templates/CollapsibleObjectFieldTemplate/index.js +0 -38
- package/dist/cjs/Form/templates/CollapsibleObjectFieldTemplate/styledComponents.js +0 -55
- package/dist/cjs/Form/templates/FieldTemplate/FieldTemplate.js +0 -28
- package/dist/cjs/Form/templates/FieldTemplate/index.js +0 -37
- package/dist/cjs/Form/templates/ObjectFieldTemplate/ObjectFieldTemplate.js +0 -32
- package/dist/cjs/Form/templates/ObjectFieldTemplate/index.js +0 -38
- package/dist/cjs/Form/templates/ObjectFieldTemplate/styledComponents.js +0 -57
- package/dist/cjs/Form/templates/index.js +0 -55
- package/dist/cjs/Form/types/index.js +0 -17
- package/dist/cjs/FormView/FormView.js +0 -36
- package/dist/cjs/FormView/FormViewRegistry.js +0 -19
- package/dist/cjs/FormView/components/Field.js +0 -131
- package/dist/cjs/FormView/components/Form.js +0 -9
- package/dist/cjs/FormView/components/Icon.js +0 -7
- package/dist/cjs/FormView/components/index.js +0 -56
- package/dist/cjs/FormView/fields/AnyField.js +0 -26
- package/dist/cjs/FormView/fields/ArrayField.js +0 -32
- package/dist/cjs/FormView/fields/BooleanField.js +0 -33
- package/dist/cjs/FormView/fields/DateField.js +0 -12
- package/dist/cjs/FormView/fields/EJSField.js +0 -39
- package/dist/cjs/FormView/fields/FileUploadField.js +0 -7
- package/dist/cjs/FormView/fields/FilesUploadField.js +0 -7
- package/dist/cjs/FormView/fields/MultipleChoiceField.js +0 -30
- package/dist/cjs/FormView/fields/NullField.js +0 -14
- package/dist/cjs/FormView/fields/NumberField.js +0 -12
- package/dist/cjs/FormView/fields/ObjectField/ObjectField.js +0 -57
- package/dist/cjs/FormView/fields/ObjectField/ObjectFieldSection.js +0 -11
- package/dist/cjs/FormView/fields/ObjectField/index.js +0 -41
- package/dist/cjs/FormView/fields/ObjectField/styledComponents.js +0 -6
- package/dist/cjs/FormView/fields/RadioField.js +0 -15
- package/dist/cjs/FormView/fields/SchemaField.js +0 -38
- package/dist/cjs/FormView/fields/SearchableMultiTagSelectField.js +0 -14
- package/dist/cjs/FormView/fields/SearchableSelectField.js +0 -13
- package/dist/cjs/FormView/fields/StringField.js +0 -24
- package/dist/cjs/FormView/fields/TextAreaField.js +0 -18
- package/dist/cjs/FormView/fields/ToggleField.js +0 -15
- package/dist/cjs/FormView/fields/index.js +0 -81
- package/dist/cjs/FormView/index.js +0 -25
- package/dist/cjs/FormView/templates/ArrayFieldTemplate/ArrayFieldTemplate.js +0 -20
- package/dist/cjs/FormView/templates/ArrayFieldTemplate/index.js +0 -38
- package/dist/cjs/FormView/templates/ArrayFieldTemplate/styledComponents.js +0 -15
- package/dist/cjs/FormView/templates/FieldTemplate/FieldTemplate.js +0 -18
- package/dist/cjs/FormView/templates/FieldTemplate/index.js +0 -37
- package/dist/cjs/FormView/templates/ObjectFieldTemplate/ObjectFieldTemplate.js +0 -30
- package/dist/cjs/FormView/templates/ObjectFieldTemplate/index.js +0 -38
- package/dist/cjs/FormView/templates/ObjectFieldTemplate/styledComponents.js +0 -65
- package/dist/cjs/FormView/templates/index.js +0 -52
- package/dist/cjs/common/FileUploadContext.js +0 -15
- package/dist/cjs/common/FilesUploadContext.js +0 -14
- package/dist/cjs/common/constants.js +0 -13
- package/dist/cjs/common/index.js +0 -20
- package/dist/cjs/utils/createInitialValues.js +0 -38
- package/dist/cjs/utils/createValidationSchema.js +0 -397
- package/dist/cjs/utils/deepOverlap.js +0 -18
- package/dist/cjs/utils/extractUiSchema.js +0 -22
- package/dist/cjs/utils/getEnums.js +0 -56
- package/dist/cjs/utils/getHiddenProperties.js +0 -11
- package/dist/cjs/utils/getStyle.js +0 -21
- package/dist/cjs/utils/getTitleAndDescription.js +0 -19
- package/dist/cjs/utils/getTypes.js +0 -60
- package/dist/cjs/utils/immutablySwapItems.js +0 -10
- package/dist/cjs/utils/index.js +0 -31
- package/dist/cjs/utils/mergeSchemas.js +0 -30
- package/dist/cjs/utils/orderAdditionalProperties.js +0 -12
- package/dist/cjs/utils/orderByUiSchema.js +0 -29
- package/dist/cjs/utils/resolveSchema.js +0 -117
- package/dist/cjs/utils/setTitleValues.js +0 -25
- package/dist/cjs/utils/solveReferences.js +0 -25
- package/dist/esm/Form/Form.js +0 -34
- package/dist/esm/Form/components/Clickable.js +0 -7
- package/dist/esm/Form/components/ErrorMessage.js +0 -16
- package/dist/esm/Form/components/FieldInfo.js +0 -140
- package/dist/esm/Form/components/FieldInput.js +0 -50
- package/dist/esm/Form/components/Form.js +0 -13
- package/dist/esm/Form/components/Icon.js +0 -2
- package/dist/esm/Form/components/RequiredIndicator.js +0 -6
- package/dist/esm/Form/components/index.js +0 -22
- package/dist/esm/Form/fields/AnyField/AnyField.js +0 -26
- package/dist/esm/Form/fields/AnyField/index.js +0 -2
- package/dist/esm/Form/fields/AnyField/styledComponents.js +0 -3
- package/dist/esm/Form/fields/ArrayField/ArrayField.js +0 -126
- package/dist/esm/Form/fields/ArrayField/index.js +0 -2
- package/dist/esm/Form/fields/ArrayField/styledComponents.js +0 -16
- package/dist/esm/Form/fields/BooleanField/BooleanField.js +0 -22
- package/dist/esm/Form/fields/BooleanField/index.js +0 -2
- package/dist/esm/Form/fields/BooleanField/styledComponents.js +0 -15
- package/dist/esm/Form/fields/DateField/DateField.js +0 -22
- package/dist/esm/Form/fields/DateField/DateInput.js +0 -117
- package/dist/esm/Form/fields/DateField/dateParsing.js +0 -62
- package/dist/esm/Form/fields/DateField/index.js +0 -3
- package/dist/esm/Form/fields/DateField/styledComponents.js +0 -54
- package/dist/esm/Form/fields/FileUploadField/FileUploadField.js +0 -65
- package/dist/esm/Form/fields/FileUploadField/FileUploadFieldInput.js +0 -17
- package/dist/esm/Form/fields/FileUploadField/index.js +0 -5
- package/dist/esm/Form/fields/FileUploadField/styledComponents.js +0 -57
- package/dist/esm/Form/fields/FilesUploadField/FilesUploadField.js +0 -98
- package/dist/esm/Form/fields/FilesUploadField/FilesUploadFieldInput.js +0 -137
- package/dist/esm/Form/fields/FilesUploadField/index.js +0 -5
- package/dist/esm/Form/fields/FilesUploadField/styledComponents.js +0 -211
- package/dist/esm/Form/fields/MultipleChoiceField/MultipleChoiceField.js +0 -31
- package/dist/esm/Form/fields/MultipleChoiceField/MultipleChoiceFieldInput.js +0 -36
- package/dist/esm/Form/fields/MultipleChoiceField/index.js +0 -5
- package/dist/esm/Form/fields/MultipleChoiceField/styledComponents.js +0 -18
- package/dist/esm/Form/fields/NullField/NullField.js +0 -11
- package/dist/esm/Form/fields/NullField/index.js +0 -1
- package/dist/esm/Form/fields/NumberField/NumberField.js +0 -12
- package/dist/esm/Form/fields/NumberField/index.js +0 -2
- package/dist/esm/Form/fields/NumberField/styledComponents.js +0 -3
- package/dist/esm/Form/fields/ObjectField/ObjectField.js +0 -186
- package/dist/esm/Form/fields/ObjectField/ObjectFieldSection.js +0 -13
- package/dist/esm/Form/fields/ObjectField/index.js +0 -5
- package/dist/esm/Form/fields/ObjectField/styledComponents.js +0 -47
- package/dist/esm/Form/fields/ObjectField/types.js +0 -7
- package/dist/esm/Form/fields/RadioField/RadioField.js +0 -15
- package/dist/esm/Form/fields/RadioField/RadioFieldInput.js +0 -7
- package/dist/esm/Form/fields/RadioField/index.js +0 -5
- package/dist/esm/Form/fields/RadioField/styledComponents.js +0 -75
- package/dist/esm/Form/fields/SchemaField/SchemaField.js +0 -34
- package/dist/esm/Form/fields/SchemaField/index.js +0 -1
- package/dist/esm/Form/fields/SearchableMultiTagSelectField/SearchableMultiTagSelectField.js +0 -16
- package/dist/esm/Form/fields/SearchableMultiTagSelectField/SearchableMultiTagSelectFieldInput.js +0 -23
- package/dist/esm/Form/fields/SearchableMultiTagSelectField/index.js +0 -5
- package/dist/esm/Form/fields/SearchableMultiTagSelectField/styledComponents.js +0 -68
- package/dist/esm/Form/fields/SearchableSelectField/SearchableSelectField.js +0 -143
- package/dist/esm/Form/fields/SearchableSelectField/index.js +0 -4
- package/dist/esm/Form/fields/SearchableSelectField/styledComponents.js +0 -50
- package/dist/esm/Form/fields/StringField/StringField.js +0 -40
- package/dist/esm/Form/fields/StringField/index.js +0 -1
- package/dist/esm/Form/fields/StringField/styledComponents.js +0 -3
- package/dist/esm/Form/fields/TextAreaField/TextAreaField.js +0 -17
- package/dist/esm/Form/fields/TextAreaField/index.js +0 -2
- package/dist/esm/Form/fields/TextAreaField/styledComponents.js +0 -11
- package/dist/esm/Form/fields/ToggleField/ToggleField.js +0 -15
- package/dist/esm/Form/fields/ToggleField/ToggleFieldInput.js +0 -7
- package/dist/esm/Form/fields/ToggleField/index.js +0 -5
- package/dist/esm/Form/fields/ToggleField/styledComponents.js +0 -55
- package/dist/esm/Form/fields/index.js +0 -57
- package/dist/esm/Form/hooks/index.js +0 -1
- package/dist/esm/Form/hooks/useSetDefault.js +0 -28
- package/dist/esm/Form/index.js +0 -7
- package/dist/esm/Form/styles/common.js +0 -256
- package/dist/esm/Form/templates/ArrayFieldTemplate/ArrayFieldTemplate.js +0 -32
- package/dist/esm/Form/templates/ArrayFieldTemplate/index.js +0 -2
- package/dist/esm/Form/templates/ArrayFieldTemplate/styledComponents.js +0 -24
- package/dist/esm/Form/templates/CollapsibleObjectFieldTemplate/CollapsibleObjectFieldTemplate.js +0 -37
- package/dist/esm/Form/templates/CollapsibleObjectFieldTemplate/index.js +0 -2
- package/dist/esm/Form/templates/CollapsibleObjectFieldTemplate/styledComponents.js +0 -51
- package/dist/esm/Form/templates/FieldTemplate/FieldTemplate.js +0 -24
- package/dist/esm/Form/templates/FieldTemplate/index.js +0 -1
- package/dist/esm/Form/templates/ObjectFieldTemplate/ObjectFieldTemplate.js +0 -28
- package/dist/esm/Form/templates/ObjectFieldTemplate/index.js +0 -2
- package/dist/esm/Form/templates/ObjectFieldTemplate/styledComponents.js +0 -53
- package/dist/esm/Form/templates/index.js +0 -19
- package/dist/esm/Form/types/index.js +0 -1
- package/dist/esm/FormView/FormView.js +0 -29
- package/dist/esm/FormView/FormViewRegistry.js +0 -13
- package/dist/esm/FormView/components/Field.js +0 -123
- package/dist/esm/FormView/components/Form.js +0 -6
- package/dist/esm/FormView/components/Icon.js +0 -4
- package/dist/esm/FormView/components/index.js +0 -17
- package/dist/esm/FormView/fields/AnyField.js +0 -22
- package/dist/esm/FormView/fields/ArrayField.js +0 -28
- package/dist/esm/FormView/fields/BooleanField.js +0 -29
- package/dist/esm/FormView/fields/DateField.js +0 -8
- package/dist/esm/FormView/fields/EJSField.js +0 -32
- package/dist/esm/FormView/fields/FileUploadField.js +0 -3
- package/dist/esm/FormView/fields/FilesUploadField.js +0 -3
- package/dist/esm/FormView/fields/MultipleChoiceField.js +0 -26
- package/dist/esm/FormView/fields/NullField.js +0 -10
- package/dist/esm/FormView/fields/NumberField.js +0 -8
- package/dist/esm/FormView/fields/ObjectField/ObjectField.js +0 -53
- package/dist/esm/FormView/fields/ObjectField/ObjectFieldSection.js +0 -7
- package/dist/esm/FormView/fields/ObjectField/index.js +0 -5
- package/dist/esm/FormView/fields/ObjectField/styledComponents.js +0 -3
- package/dist/esm/FormView/fields/RadioField.js +0 -11
- package/dist/esm/FormView/fields/SchemaField.js +0 -34
- package/dist/esm/FormView/fields/SearchableMultiTagSelectField.js +0 -10
- package/dist/esm/FormView/fields/SearchableSelectField.js +0 -9
- package/dist/esm/FormView/fields/StringField.js +0 -20
- package/dist/esm/FormView/fields/TextAreaField.js +0 -14
- package/dist/esm/FormView/fields/ToggleField.js +0 -11
- package/dist/esm/FormView/fields/index.js +0 -45
- package/dist/esm/FormView/index.js +0 -6
- package/dist/esm/FormView/templates/ArrayFieldTemplate/ArrayFieldTemplate.js +0 -16
- package/dist/esm/FormView/templates/ArrayFieldTemplate/index.js +0 -2
- package/dist/esm/FormView/templates/ArrayFieldTemplate/styledComponents.js +0 -11
- package/dist/esm/FormView/templates/FieldTemplate/FieldTemplate.js +0 -14
- package/dist/esm/FormView/templates/FieldTemplate/index.js +0 -1
- package/dist/esm/FormView/templates/ObjectFieldTemplate/ObjectFieldTemplate.js +0 -26
- package/dist/esm/FormView/templates/ObjectFieldTemplate/index.js +0 -2
- package/dist/esm/FormView/templates/ObjectFieldTemplate/styledComponents.js +0 -58
- package/dist/esm/FormView/templates/index.js +0 -16
- package/dist/esm/common/FileUploadContext.js +0 -12
- package/dist/esm/common/FilesUploadContext.js +0 -11
- package/dist/esm/common/constants.js +0 -10
- package/dist/esm/common/index.js +0 -4
- package/dist/esm/utils/createInitialValues.js +0 -35
- package/dist/esm/utils/createValidationSchema.js +0 -361
- package/dist/esm/utils/deepOverlap.js +0 -14
- package/dist/esm/utils/extractUiSchema.js +0 -18
- package/dist/esm/utils/getEnums.js +0 -51
- package/dist/esm/utils/getHiddenProperties.js +0 -7
- package/dist/esm/utils/getStyle.js +0 -18
- package/dist/esm/utils/getTitleAndDescription.js +0 -14
- package/dist/esm/utils/getTypes.js +0 -53
- package/dist/esm/utils/immutablySwapItems.js +0 -7
- package/dist/esm/utils/index.js +0 -15
- package/dist/esm/utils/mergeSchemas.js +0 -26
- package/dist/esm/utils/orderAdditionalProperties.js +0 -9
- package/dist/esm/utils/orderByUiSchema.js +0 -26
- package/dist/esm/utils/resolveSchema.js +0 -112
- package/dist/esm/utils/setTitleValues.js +0 -21
- package/dist/esm/utils/solveReferences.js +0 -22
- package/dist/types/Form/Form.d.ts +0 -2
- package/dist/types/Form/FormRegistry.d.ts +0 -3
- package/dist/types/Form/components/Clickable.d.ts +0 -15
- package/dist/types/Form/components/ErrorMessage.d.ts +0 -3
- package/dist/types/Form/components/FieldInfo.d.ts +0 -10
- package/dist/types/Form/components/FieldInput.d.ts +0 -19
- package/dist/types/Form/components/Form.d.ts +0 -6
- package/dist/types/Form/components/Icon.d.ts +0 -1
- package/dist/types/Form/components/RequiredIndicator.d.ts +0 -1
- package/dist/types/Form/components/index.d.ts +0 -249
- package/dist/types/Form/fields/AnyField/AnyField.d.ts +0 -2
- package/dist/types/Form/fields/AnyField/index.d.ts +0 -2
- package/dist/types/Form/fields/AnyField/styledComponents.d.ts +0 -3
- package/dist/types/Form/fields/ArrayField/ArrayField.d.ts +0 -2
- package/dist/types/Form/fields/ArrayField/index.d.ts +0 -2
- package/dist/types/Form/fields/ArrayField/styledComponents.d.ts +0 -13
- package/dist/types/Form/fields/BooleanField/BooleanField.d.ts +0 -2
- package/dist/types/Form/fields/BooleanField/index.d.ts +0 -2
- package/dist/types/Form/fields/BooleanField/styledComponents.d.ts +0 -3
- package/dist/types/Form/fields/DateField/DateField.d.ts +0 -2
- package/dist/types/Form/fields/DateField/DateInput.d.ts +0 -17
- package/dist/types/Form/fields/DateField/dateParsing.d.ts +0 -9
- package/dist/types/Form/fields/DateField/index.d.ts +0 -3
- package/dist/types/Form/fields/DateField/styledComponents.d.ts +0 -4
- package/dist/types/Form/fields/FileUploadField/FileUploadField.d.ts +0 -2
- package/dist/types/Form/fields/FileUploadField/FileUploadFieldInput.d.ts +0 -25
- package/dist/types/Form/fields/FileUploadField/index.d.ts +0 -17
- package/dist/types/Form/fields/FileUploadField/styledComponents.d.ts +0 -11
- package/dist/types/Form/fields/FilesUploadField/FilesUploadField.d.ts +0 -2
- package/dist/types/Form/fields/FilesUploadField/FilesUploadFieldInput.d.ts +0 -42
- package/dist/types/Form/fields/FilesUploadField/index.d.ts +0 -37
- package/dist/types/Form/fields/FilesUploadField/styledComponents.d.ts +0 -32
- package/dist/types/Form/fields/MultipleChoiceField/MultipleChoiceField.d.ts +0 -2
- package/dist/types/Form/fields/MultipleChoiceField/MultipleChoiceFieldInput.d.ts +0 -17
- package/dist/types/Form/fields/MultipleChoiceField/index.d.ts +0 -22
- package/dist/types/Form/fields/MultipleChoiceField/styledComponents.d.ts +0 -16
- package/dist/types/Form/fields/NullField/NullField.d.ts +0 -2
- package/dist/types/Form/fields/NullField/index.d.ts +0 -1
- package/dist/types/Form/fields/NumberField/NumberField.d.ts +0 -2
- package/dist/types/Form/fields/NumberField/index.d.ts +0 -2
- package/dist/types/Form/fields/NumberField/styledComponents.d.ts +0 -1
- package/dist/types/Form/fields/ObjectField/ObjectField.d.ts +0 -2
- package/dist/types/Form/fields/ObjectField/ObjectFieldSection.d.ts +0 -3
- package/dist/types/Form/fields/ObjectField/index.d.ts +0 -20
- package/dist/types/Form/fields/ObjectField/styledComponents.d.ts +0 -15
- package/dist/types/Form/fields/ObjectField/types.d.ts +0 -19
- package/dist/types/Form/fields/RadioField/RadioField.d.ts +0 -2
- package/dist/types/Form/fields/RadioField/RadioFieldInput.d.ts +0 -11
- package/dist/types/Form/fields/RadioField/index.d.ts +0 -22
- package/dist/types/Form/fields/RadioField/styledComponents.d.ts +0 -16
- package/dist/types/Form/fields/SchemaField/SchemaField.d.ts +0 -2
- package/dist/types/Form/fields/SchemaField/index.d.ts +0 -1
- package/dist/types/Form/fields/SearchableMultiTagSelectField/SearchableMultiTagSelectField.d.ts +0 -2
- package/dist/types/Form/fields/SearchableMultiTagSelectField/SearchableMultiTagSelectFieldInput.d.ts +0 -11
- package/dist/types/Form/fields/SearchableMultiTagSelectField/index.d.ts +0 -21
- package/dist/types/Form/fields/SearchableMultiTagSelectField/styledComponents.d.ts +0 -15
- package/dist/types/Form/fields/SearchableSelectField/SearchableSelectField.d.ts +0 -2
- package/dist/types/Form/fields/SearchableSelectField/index.d.ts +0 -2
- package/dist/types/Form/fields/SearchableSelectField/styledComponents.d.ts +0 -22
- package/dist/types/Form/fields/SearchableSelectField/types.d.ts +0 -25
- package/dist/types/Form/fields/StringField/StringField.d.ts +0 -2
- package/dist/types/Form/fields/StringField/index.d.ts +0 -1
- package/dist/types/Form/fields/StringField/styledComponents.d.ts +0 -3
- package/dist/types/Form/fields/TextAreaField/TextAreaField.d.ts +0 -2
- package/dist/types/Form/fields/TextAreaField/index.d.ts +0 -2
- package/dist/types/Form/fields/TextAreaField/styledComponents.d.ts +0 -5
- package/dist/types/Form/fields/ToggleField/ToggleField.d.ts +0 -2
- package/dist/types/Form/fields/ToggleField/ToggleFieldInput.d.ts +0 -6
- package/dist/types/Form/fields/ToggleField/index.d.ts +0 -13
- package/dist/types/Form/fields/ToggleField/styledComponents.d.ts +0 -7
- package/dist/types/Form/fields/index.d.ts +0 -191
- package/dist/types/Form/hooks/index.d.ts +0 -1
- package/dist/types/Form/hooks/useSetDefault.d.ts +0 -2
- package/dist/types/Form/index.d.ts +0 -8
- package/dist/types/Form/styles/common.d.ts +0 -2
- package/dist/types/Form/templates/ArrayFieldTemplate/ArrayFieldTemplate.d.ts +0 -2
- package/dist/types/Form/templates/ArrayFieldTemplate/index.d.ts +0 -2
- package/dist/types/Form/templates/ArrayFieldTemplate/styledComponents.d.ts +0 -30
- package/dist/types/Form/templates/CollapsibleObjectFieldTemplate/CollapsibleObjectFieldTemplate.d.ts +0 -2
- package/dist/types/Form/templates/CollapsibleObjectFieldTemplate/index.d.ts +0 -2
- package/dist/types/Form/templates/CollapsibleObjectFieldTemplate/styledComponents.d.ts +0 -36
- package/dist/types/Form/templates/FieldTemplate/FieldTemplate.d.ts +0 -2
- package/dist/types/Form/templates/FieldTemplate/index.d.ts +0 -1
- package/dist/types/Form/templates/ObjectFieldTemplate/ObjectFieldTemplate.d.ts +0 -2
- package/dist/types/Form/templates/ObjectFieldTemplate/index.d.ts +0 -2
- package/dist/types/Form/templates/ObjectFieldTemplate/styledComponents.d.ts +0 -27
- package/dist/types/Form/templates/index.d.ts +0 -57
- package/dist/types/Form/types/FormRegistryContext.d.ts +0 -23
- package/dist/types/Form/types/index.d.ts +0 -1
- package/dist/types/FormView/FormView.d.ts +0 -4
- package/dist/types/FormView/FormViewRegistry.d.ts +0 -3
- package/dist/types/FormView/components/Field.d.ts +0 -35
- package/dist/types/FormView/components/Form.d.ts +0 -1
- package/dist/types/FormView/components/Icon.d.ts +0 -1
- package/dist/types/FormView/components/index.d.ts +0 -53
- package/dist/types/FormView/fields/AnyField.d.ts +0 -2
- package/dist/types/FormView/fields/ArrayField.d.ts +0 -2
- package/dist/types/FormView/fields/BooleanField.d.ts +0 -2
- package/dist/types/FormView/fields/DateField.d.ts +0 -2
- package/dist/types/FormView/fields/EJSField.d.ts +0 -2
- package/dist/types/FormView/fields/FileUploadField.d.ts +0 -2
- package/dist/types/FormView/fields/FilesUploadField.d.ts +0 -2
- package/dist/types/FormView/fields/MultipleChoiceField.d.ts +0 -2
- package/dist/types/FormView/fields/NullField.d.ts +0 -2
- package/dist/types/FormView/fields/NumberField.d.ts +0 -2
- package/dist/types/FormView/fields/ObjectField/ObjectField.d.ts +0 -2
- package/dist/types/FormView/fields/ObjectField/ObjectFieldSection.d.ts +0 -7
- package/dist/types/FormView/fields/ObjectField/index.d.ts +0 -8
- package/dist/types/FormView/fields/ObjectField/styledComponents.d.ts +0 -2
- package/dist/types/FormView/fields/RadioField.d.ts +0 -2
- package/dist/types/FormView/fields/SchemaField.d.ts +0 -2
- package/dist/types/FormView/fields/SearchableMultiTagSelectField.d.ts +0 -2
- package/dist/types/FormView/fields/SearchableSelectField.d.ts +0 -2
- package/dist/types/FormView/fields/StringField.d.ts +0 -2
- package/dist/types/FormView/fields/TextAreaField.d.ts +0 -2
- package/dist/types/FormView/fields/ToggleField.d.ts +0 -2
- package/dist/types/FormView/fields/index.d.ts +0 -9
- package/dist/types/FormView/index.d.ts +0 -7
- package/dist/types/FormView/templates/ArrayFieldTemplate/ArrayFieldTemplate.d.ts +0 -2
- package/dist/types/FormView/templates/ArrayFieldTemplate/index.d.ts +0 -2
- package/dist/types/FormView/templates/ArrayFieldTemplate/styledComponents.d.ts +0 -10
- package/dist/types/FormView/templates/FieldTemplate/FieldTemplate.d.ts +0 -2
- package/dist/types/FormView/templates/FieldTemplate/index.d.ts +0 -1
- package/dist/types/FormView/templates/ObjectFieldTemplate/ObjectFieldTemplate.d.ts +0 -2
- package/dist/types/FormView/templates/ObjectFieldTemplate/index.d.ts +0 -2
- package/dist/types/FormView/templates/ObjectFieldTemplate/styledComponents.d.ts +0 -10
- package/dist/types/FormView/templates/index.d.ts +0 -23
- package/dist/types/FormView/types/FormViewRegistryContext.d.ts +0 -21
- package/dist/types/FormView/types/index.d.ts +0 -1
- package/dist/types/common/FileUploadContext.d.ts +0 -18
- package/dist/types/common/FilesUploadContext.d.ts +0 -17
- package/dist/types/common/constants.d.ts +0 -10
- package/dist/types/common/index.d.ts +0 -4
- package/dist/types/styles/types.d.ts +0 -216
- package/dist/types/utils/createInitialValues.d.ts +0 -7
- package/dist/types/utils/createValidationSchema.d.ts +0 -31
- package/dist/types/utils/deepOverlap.d.ts +0 -1
- package/dist/types/utils/extractUiSchema.d.ts +0 -9
- package/dist/types/utils/getEnums.d.ts +0 -30
- package/dist/types/utils/getHiddenProperties.d.ts +0 -2
- package/dist/types/utils/getStyle.d.ts +0 -5
- package/dist/types/utils/getTitleAndDescription.d.ts +0 -12
- package/dist/types/utils/getTypes.d.ts +0 -5
- package/dist/types/utils/immutablySwapItems.d.ts +0 -1
- package/dist/types/utils/index.d.ts +0 -15
- package/dist/types/utils/mergeSchemas.d.ts +0 -1
- package/dist/types/utils/orderAdditionalProperties.d.ts +0 -2
- package/dist/types/utils/orderByUiSchema.d.ts +0 -2
- package/dist/types/utils/resolveSchema.d.ts +0 -4
- package/dist/types/utils/setTitleValues.d.ts +0 -1
- package/dist/types/utils/solveReferences.d.ts +0 -10
- /package/dist/cjs/{Form/fields/SearchableSelectField/types.js → common/types/Utils.js} +0 -0
- /package/dist/cjs/{styles → v3/raw/dom}/types.js +0 -0
- /package/dist/cjs/{Form/types/FormRegistryContext.js → v3/raw/model/form/types.js} +0 -0
- /package/dist/cjs/{FormView/types/FormViewRegistryContext.js → v3/raw/model/host.js} +0 -0
- /package/dist/cjs/{FormView/types/index.js → v3/raw/model/view/types.js} +0 -0
- /package/dist/esm/{Form/fields/SearchableSelectField/types.js → common/types/Utils.js} +0 -0
- /package/dist/esm/{styles → v3/raw/dom}/types.js +0 -0
- /package/dist/esm/{Form/types/FormRegistryContext.js → v3/raw/model/form/types.js} +0 -0
- /package/dist/esm/{FormView/types/FormViewRegistryContext.js → v3/raw/model/host.js} +0 -0
- /package/dist/esm/{FormView/types/index.js → v3/raw/model/view/types.js} +0 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// @nolwenture/formik-jsonschema-form/raw (v3, slice S1): the pure, framework-free core.
|
|
2
|
+
// No react, formik, styled-components, @nolwenture/* or DOM access (boundary gate in
|
|
3
|
+
// src/v3/raw/__tests__/boundary.test.ts). S2 adds the VNode model and the read-only view
|
|
4
|
+
// serialised to a string; S6 adds toDOM, the RAW store, FormController and the <fjsf-form> elements.
|
|
5
|
+
export * from "./core/json";
|
|
6
|
+
export * from "./core/issues";
|
|
7
|
+
export * from "./core/paths";
|
|
8
|
+
export { getSchemaType, guessType, normaliseType, defaultValueForType } from "./core/schemaType";
|
|
9
|
+
export { mergeSchemas } from "./core/merge";
|
|
10
|
+
export { MAX_REF_DEPTH, hasReferences, parseRef, resolveRefs, solveReferences } from "./core/refs";
|
|
11
|
+
export { itemSchema, normalizeArraySchema, valueTypeMismatch } from "./core/arrays";
|
|
12
|
+
export { deepOverlap, resolveOneOfValue, resolveSchema } from "./core/conditionals";
|
|
13
|
+
export { defaultFor, isUnset, localIsoDate } from "./core/defaults";
|
|
14
|
+
export { createInitialValues } from "./core/initialValues";
|
|
15
|
+
export { OPTIONAL_NUMBER_INITIAL, optionalNumberInitialValue } from "./core/policies/optionalNumberInitial";
|
|
16
|
+
export { FILE_UPLOAD_VIEW } from "./core/policies/fileUploadView";
|
|
17
|
+
export * from "./core/uiSchema";
|
|
18
|
+
export * from "./core/enums";
|
|
19
|
+
export { immutablySwapItems, setTitleValues } from "./core/titles";
|
|
20
|
+
export { createValidationSchema } from "./validation";
|
|
21
|
+
export { DEFAULT_PATTERN_INPUT_CAP, isUnsafePattern } from "./validation/patterns";
|
|
22
|
+
export { catalogs, createTranslator, en, fi } from "./i18n";
|
|
23
|
+
export * from "./sanitize";
|
|
24
|
+
export { cx, h } from "./model/vnode";
|
|
25
|
+
export { escapeAttr, escapeText, toString as vnodeToString } from "./serialize/toString";
|
|
26
|
+
export { buildViewNode, renderViewToString } from "./model/view";
|
|
27
|
+
// S6: the RAW DOM (framework-free live forms).
|
|
28
|
+
export { toDOM } from "./serialize/toDOM";
|
|
29
|
+
export { createStore } from "./store/createStore";
|
|
30
|
+
export { FormController } from "./dom/controller";
|
|
31
|
+
export { defineFjsfElements } from "./dom/elements";
|
|
32
|
+
// S7: styling (§4.3): the generated default stylesheet, the theme variables and the class contract.
|
|
33
|
+
export { cssVarsToString, fjsfClassNames, fjsfSelectors, getDefaultStyles, themeToCssVars } from "./styles";
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// P7 (§4.3): an element of a 2.x styled component that extends another carries the bases' classes too
|
|
2
|
+
// (styled-components folded them), so the generated rules of a base (e.g. CommonFieldWrapper) apply to it.
|
|
3
|
+
import { STYLED_CHAINS } from "./styledChains";
|
|
4
|
+
/** The classes with every extended component's bases, each once, bases first. */
|
|
5
|
+
export const expandClasses = (classes) => [...new Set(classes.flatMap((c) => STYLED_CHAINS[c] ?? [c]))];
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { isPlainObject, PROTOTYPE_KEYS } from "../../core/json";
|
|
2
|
+
import { parseDateString, toIsoDateString } from "../../core/dates";
|
|
3
|
+
import { getIn } from "../../core/paths";
|
|
4
|
+
import { BOOLEAN_RADIO_STORAGE, MULTI_SELECT_STORAGE } from "../../core/policies/storedFormats";
|
|
5
|
+
/** formik handleChange parsing, plus the enum const lookup of 2.x StringField and a boolean checkbox (Q-R19-1). */
|
|
6
|
+
const parse = (action, e) => {
|
|
7
|
+
switch (action.parse) {
|
|
8
|
+
case "number": {
|
|
9
|
+
const n = parseFloat(e.value ?? "");
|
|
10
|
+
return Number.isNaN(n) ? "" : n;
|
|
11
|
+
}
|
|
12
|
+
case "checkbox":
|
|
13
|
+
return !!e.checked;
|
|
14
|
+
case "enum":
|
|
15
|
+
return (action.consts ?? []).find((c) => c !== undefined && c !== null && String(c) === e.value) ?? e.value;
|
|
16
|
+
case "multi": {
|
|
17
|
+
// Q-FMK-7: 2.x stored the option strings (kept, MULTI_SELECT_STORAGE); "consts" maps them back.
|
|
18
|
+
const consts = action.consts;
|
|
19
|
+
if (MULTI_SELECT_STORAGE === "strings" || !consts)
|
|
20
|
+
return e.selected ?? [];
|
|
21
|
+
return (e.selected ?? []).map((s) => consts.find((c) => c !== undefined && c !== null && String(c) === s) ?? s);
|
|
22
|
+
}
|
|
23
|
+
case "radio":
|
|
24
|
+
// Q-FMK-5: 2.x stored the radio's string value (kept, BOOLEAN_RADIO_STORAGE).
|
|
25
|
+
return BOOLEAN_RADIO_STORAGE === "strings" ? e.value ?? "" : e.value === "true";
|
|
26
|
+
default:
|
|
27
|
+
return e.value ?? "";
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
const arrayAt = (values, path) => {
|
|
31
|
+
const current = getIn(values, path);
|
|
32
|
+
return Array.isArray(current) ? current : [];
|
|
33
|
+
};
|
|
34
|
+
/** Sets per-path UI state (`text`, `open`, `shown`, `active`). */
|
|
35
|
+
const patch = (ui, path, values) => {
|
|
36
|
+
const next = { ...ui };
|
|
37
|
+
for (const [key, value] of Object.entries(values)) {
|
|
38
|
+
next[key] = { ...ui[key], [path]: value };
|
|
39
|
+
}
|
|
40
|
+
return next;
|
|
41
|
+
};
|
|
42
|
+
export const applyAction = (action, values, e = {}, ui = {}) => {
|
|
43
|
+
switch (action.type) {
|
|
44
|
+
case "set":
|
|
45
|
+
return { set: { path: action.path, value: parse(action, e) } };
|
|
46
|
+
case "touch":
|
|
47
|
+
return { touch: action.path };
|
|
48
|
+
case "toggle":
|
|
49
|
+
return { set: { path: action.path, value: !getIn(values, action.path) } };
|
|
50
|
+
case "submit":
|
|
51
|
+
return { submit: true };
|
|
52
|
+
case "arrayAdd":
|
|
53
|
+
return { set: { path: action.path, value: [...arrayAt(values, action.path), action.item] } };
|
|
54
|
+
case "arrayRemove":
|
|
55
|
+
return { set: { path: action.path, value: arrayAt(values, action.path).filter((_, i) => i !== action.index) } };
|
|
56
|
+
case "arrayMove": {
|
|
57
|
+
const next = [...arrayAt(values, action.path)];
|
|
58
|
+
if (action.to < 0 || action.to >= next.length)
|
|
59
|
+
return {};
|
|
60
|
+
[next[action.from], next[action.to]] = [next[action.to], next[action.from]];
|
|
61
|
+
return { set: { path: action.path, value: next } };
|
|
62
|
+
}
|
|
63
|
+
case "propertyAdd": {
|
|
64
|
+
if (e.key === undefined)
|
|
65
|
+
return { askKey: true };
|
|
66
|
+
const object = (action.path ? getIn(values, action.path) : values);
|
|
67
|
+
const own = isPlainObject(object) ? object : {};
|
|
68
|
+
// SEC-8: a prototype key is never added (2.x wrote it through the spread).
|
|
69
|
+
if (!e.key || PROTOTYPE_KEYS.has(e.key) || Object.prototype.hasOwnProperty.call(own, e.key))
|
|
70
|
+
return {};
|
|
71
|
+
// Q-FMK-8: the type's empty value (2.x stored its DEFAULT_FIELD placeholder object as the value).
|
|
72
|
+
return { set: { path: action.path, value: { ...own, [e.key]: action.item } }, order: { path: action.path, previous: action.order, next: [...action.order, e.key] } };
|
|
73
|
+
}
|
|
74
|
+
case "propertyRemove": {
|
|
75
|
+
const object = (action.path ? getIn(values, action.path) : values);
|
|
76
|
+
const { [action.key]: _removed, ...rest } = isPlainObject(object) ? object : {};
|
|
77
|
+
return { set: { path: action.path, value: rest }, order: { path: action.path, previous: action.order, next: action.order.filter((k) => k !== action.key) } };
|
|
78
|
+
}
|
|
79
|
+
case "propertyMove":
|
|
80
|
+
return { order: { path: action.path, previous: action.order, next: action.next } };
|
|
81
|
+
case "collapse":
|
|
82
|
+
return { ui: { ...ui, collapsed: { ...ui.collapsed, [action.id]: action.collapsed } } };
|
|
83
|
+
case "anyType":
|
|
84
|
+
return { ui: { ...ui, anyTypes: { ...ui.anyTypes, [action.path]: e.value ?? "string" } } };
|
|
85
|
+
case "choice": {
|
|
86
|
+
// MultipleChoiceField: a checkbox toggles the const in the array, a radio sets it.
|
|
87
|
+
if (!action.multi)
|
|
88
|
+
return { set: { path: action.path, value: action.value } };
|
|
89
|
+
const current = arrayAt(values, action.path);
|
|
90
|
+
const next = current.includes(action.value) ? current.filter((v) => v !== action.value) : [...current, action.value];
|
|
91
|
+
return { set: { path: action.path, value: next } };
|
|
92
|
+
}
|
|
93
|
+
case "dateText":
|
|
94
|
+
return { ui: { ...ui, text: { ...ui.text, [action.path]: e.value ?? "" } } };
|
|
95
|
+
case "dateCommit": {
|
|
96
|
+
if (action.locked)
|
|
97
|
+
return {};
|
|
98
|
+
const raw = (e.value ?? "").trim();
|
|
99
|
+
const parsed = action.native ? (/^\d{4}-\d{2}-\d{2}$/.test(raw) ? raw : undefined) : (d => d && toIsoDateString(d))(parseDateString(raw, action.rules.order));
|
|
100
|
+
if (!parsed)
|
|
101
|
+
return action.native ? {} : { touchQuietly: action.path, error: { path: action.path, message: action.rules.invalid } };
|
|
102
|
+
const { min, max } = action.rules;
|
|
103
|
+
if ((min && parsed < min) || (max && parsed > max))
|
|
104
|
+
return { touchQuietly: action.path, error: { path: action.path, message: action.rules.outOfRange } };
|
|
105
|
+
const { [action.path]: _typed, ...text } = ui.text ?? {};
|
|
106
|
+
return { touchQuietly: action.path, error: { path: action.path }, set: { path: action.path, value: parsed }, ui: { ...ui, text } };
|
|
107
|
+
}
|
|
108
|
+
case "datePicker":
|
|
109
|
+
return action.locked ? {} : { picker: action.id };
|
|
110
|
+
case "searchInput":
|
|
111
|
+
return { ui: patch(ui, action.path, { text: e.value ?? "", shown: action.perPage, open: true, active: -1 }) };
|
|
112
|
+
case "searchOpen":
|
|
113
|
+
return { ui: patch(ui, action.path, { open: true }) };
|
|
114
|
+
case "searchLeave":
|
|
115
|
+
return e.leftContainer ? { ui: patch(ui, action.path, { open: false }) } : {};
|
|
116
|
+
case "searchClear":
|
|
117
|
+
return { ui: patch(ui, action.path, { text: "" }), set: { path: action.path, value: undefined } };
|
|
118
|
+
case "searchMore":
|
|
119
|
+
return { ui: patch(ui, action.path, { shown: (ui.shown?.[action.path] ?? action.perPage) + action.perPage }) };
|
|
120
|
+
case "searchSelect":
|
|
121
|
+
return { ui: patch(ui, action.path, { text: action.title, open: false }), set: { path: action.path, value: action.value } };
|
|
122
|
+
case "searchKey": {
|
|
123
|
+
if (!action.open)
|
|
124
|
+
return {};
|
|
125
|
+
const active = ui.active?.[action.path] ?? -1;
|
|
126
|
+
const last = action.items.length - 1;
|
|
127
|
+
if (e.keyName === "ArrowUp")
|
|
128
|
+
return { ui: patch(ui, action.path, { active: Math.max(-1, active - 1) }) };
|
|
129
|
+
if (e.keyName === "ArrowDown")
|
|
130
|
+
return { ui: patch(ui, action.path, { active: active + 1 >= last ? last : active + 1 }) };
|
|
131
|
+
if (e.keyName === "Escape")
|
|
132
|
+
return { ui: patch(ui, action.path, { open: false }) };
|
|
133
|
+
if (e.keyName === "Enter" && action.items[active])
|
|
134
|
+
return applyAction(action.items[active], values, e, ui);
|
|
135
|
+
return {};
|
|
136
|
+
}
|
|
137
|
+
case "searchText":
|
|
138
|
+
return { ui: patch(ui, action.path, { text: e.value ?? "" }) };
|
|
139
|
+
case "tagAdd":
|
|
140
|
+
return { ui: patch(ui, action.path, { text: "" }), set: { path: action.path, value: [...new Set([...arrayAt(values, action.path), action.value])] } };
|
|
141
|
+
case "tagRemove":
|
|
142
|
+
return { set: { path: action.path, value: arrayAt(values, action.path).filter((v) => v !== action.value) } };
|
|
143
|
+
case "preventDefault":
|
|
144
|
+
case "preventEnter":
|
|
145
|
+
case "searchActive":
|
|
146
|
+
return {};
|
|
147
|
+
case "info":
|
|
148
|
+
return action.display === "inline" ? { ui: { ...ui, infoOpen: { ...ui.infoOpen, [action.id]: !ui.infoOpen?.[action.id] } } } : {};
|
|
149
|
+
}
|
|
150
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { getIn } from "../../core/paths";
|
|
2
|
+
import { guessType } from "../../core/schemaType";
|
|
3
|
+
import { h } from "../vnode";
|
|
4
|
+
import { elementProps } from "../view/fields";
|
|
5
|
+
import { instrumentation } from "./chrome";
|
|
6
|
+
import { COMPONENT_TYPES, formField } from "./dispatch";
|
|
7
|
+
import { plain } from "./markup";
|
|
8
|
+
export const anyField = (ctx, p, chain, trail = []) => {
|
|
9
|
+
const value = getIn(ctx.values, p.name);
|
|
10
|
+
// 2.x guessed once, on mount (useState): the guess is kept by the host, so clearing a number keeps a number.
|
|
11
|
+
const kept = ctx.ui.anyTypes?.[p.name];
|
|
12
|
+
const type = kept ?? (value !== undefined ? guessType(value) : "string");
|
|
13
|
+
if (!kept)
|
|
14
|
+
ctx.anyGuesses[p.name] = type;
|
|
15
|
+
const extra = type === "object" ? { additionalProperties: {} } : type === "array" ? { additionalItems: {} } : {};
|
|
16
|
+
const enriched = { ...(p.schema || {}), type, ...extra };
|
|
17
|
+
const select = {
|
|
18
|
+
...h("select", { value: type }, Object.keys(COMPONENT_TYPES).map((t) => h("option", { value: t }, t))),
|
|
19
|
+
on: { change: { type: "anyType", path: p.name } },
|
|
20
|
+
};
|
|
21
|
+
const { wrapperAttrs } = elementProps(p.ui, p.name, ctx.sink);
|
|
22
|
+
return plain("div", "AnyFieldWrapper", { ...wrapperAttrs, ...instrumentation({ ...p, kind: "any" }) }, select, formField(ctx, { name: p.name, schema: enriched, ui: p.ui }, chain, trail));
|
|
23
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { defaultFor } from "../../core/defaults";
|
|
2
|
+
import { isPlainObject } from "../../core/json";
|
|
3
|
+
import { getIn, setIn } from "../../core/paths";
|
|
4
|
+
/** The nodes that appeared in this render and not in the previous one; `seen` becomes this render's set. */
|
|
5
|
+
export const newAppearances = (appeared, seen) => {
|
|
6
|
+
const fresh = appeared.filter((a) => !seen.has(a.path));
|
|
7
|
+
seen.clear();
|
|
8
|
+
appeared.forEach((a) => seen.add(a.path));
|
|
9
|
+
return fresh;
|
|
10
|
+
};
|
|
11
|
+
/** The values with the defaults of the fresh nodes and the prunes applied (the same object when nothing changes). */
|
|
12
|
+
export const settle = (values, fresh, prune, now) => {
|
|
13
|
+
let next = values;
|
|
14
|
+
for (const a of fresh) {
|
|
15
|
+
const value = defaultFor(a.schema, getIn(next, a.path), { forceDefaultValue: a.forceDefaultValue, now });
|
|
16
|
+
if (value !== undefined && value !== getIn(next, a.path))
|
|
17
|
+
next = setIn(next, a.path, value);
|
|
18
|
+
}
|
|
19
|
+
for (const { path, keys } of prune) {
|
|
20
|
+
const object = path ? getIn(next, path) : next;
|
|
21
|
+
if (!isPlainObject(object) || !keys.some((k) => k in object))
|
|
22
|
+
continue;
|
|
23
|
+
const kept = Object.fromEntries(Object.entries(object).filter(([k]) => !keys.includes(k)));
|
|
24
|
+
next = path ? setIn(next, path, kept) : kept;
|
|
25
|
+
}
|
|
26
|
+
return next;
|
|
27
|
+
};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { itemSchema, normalizeArraySchema } from "../../core/arrays";
|
|
2
|
+
import { EnumsTypes, getEnums } from "../../core/enums";
|
|
3
|
+
import { issue } from "../../core/issues";
|
|
4
|
+
import { getIn } from "../../core/paths";
|
|
5
|
+
import { defaultValueForType } from "../../core/schemaType";
|
|
6
|
+
import { extractUiSchema } from "../../core/uiSchema";
|
|
7
|
+
import { h } from "../vnode";
|
|
8
|
+
import { reactAttr, reactText } from "../view/values";
|
|
9
|
+
import { errorMarkup, formChrome } from "./chrome";
|
|
10
|
+
import { formField } from "./dispatch";
|
|
11
|
+
import { inputAttrs, on } from "./leaf";
|
|
12
|
+
import { arrayTemplateMarkup, fc, fcAs, fieldTemplateMarkup, plain } from "./markup";
|
|
13
|
+
import { prepareChildSchema } from "./object";
|
|
14
|
+
import { buttonMarkup } from "./parts";
|
|
15
|
+
import { templated } from "./templated";
|
|
16
|
+
/** `anyOf` arrays: a (multi-)select of the consts (2.x ArrayField's first branch). */
|
|
17
|
+
const enumArray = (ctx, p) => {
|
|
18
|
+
const enums = getEnums({ schema: p.schema }, ctx.sink, p.name);
|
|
19
|
+
const multiple = enums?.type === EnumsTypes.MULTI_SELECT;
|
|
20
|
+
const props = { ...p, kind: multiple ? "multi-enum" : "enum", data: { "data-fjsf-array": p.name } };
|
|
21
|
+
const value = getIn(ctx.values, p.name);
|
|
22
|
+
const selected = multiple ? (Array.isArray(value) ? value.map((v) => reactAttr(v) ?? "") : []) : reactAttr(value) ?? "";
|
|
23
|
+
const select = {
|
|
24
|
+
...fcAs("select", ["SelectFieldInput"], { ...inputAttrs(ctx, props), name: p.name, readonly: p.schema?.readOnly ? true : undefined, multiple: multiple || undefined, value: selected }, (enums?.values ?? []).map((o) => h("option", { value: reactAttr(o?.const) ?? "" }, reactText(o?.title)))),
|
|
25
|
+
// Q-FMK-7: a multi-select stores the consts (2.x stored their strings); Q-RO-1: readOnly never changes.
|
|
26
|
+
on: on(props, multiple ? "multi" : "text", multiple ? (enums?.values ?? []).map((o) => o?.const) : undefined),
|
|
27
|
+
};
|
|
28
|
+
const content = [fc(["SelectFieldInputWrapper"], {}, select)];
|
|
29
|
+
return templated(ctx, "FieldTemplate", props, fieldTemplateMarkup(formChrome(ctx, props), content), content);
|
|
30
|
+
};
|
|
31
|
+
/** N-1 value guard: arr[0]'s value as text, like FormView (§6.3). */
|
|
32
|
+
const guardedItem = (ctx, path, item, schema) => {
|
|
33
|
+
ctx.sink(issue("SCHEMA_ARRAY_AMBIGUOUS", path, "arr[0] does not match additionalItems: read-only"));
|
|
34
|
+
return plain("div", "GuardedArrayItem", { "data-fjsf-path": path, "data-fjsf-kind": "string", "data-fjsf-readonly": "true" }, h("div", { "data-keyword": reactAttr(item) }, reactText(item)));
|
|
35
|
+
};
|
|
36
|
+
export const arrayField = (ctx, p, _chain) => {
|
|
37
|
+
if (p.schema?.anyOf !== undefined)
|
|
38
|
+
return enumArray(ctx, p);
|
|
39
|
+
const { name, schema, ui } = p;
|
|
40
|
+
const extracted = extractUiSchema(ui);
|
|
41
|
+
const norm = normalizeArraySchema(schema, ctx.sink, name);
|
|
42
|
+
const raw = getIn(ctx.values, name);
|
|
43
|
+
const values = Array.isArray(raw) ? raw : undefined;
|
|
44
|
+
const locked = !!extracted.disabled || !!schema?.readOnly;
|
|
45
|
+
const slots = (values ?? []).map((item, index) => itemSchema(norm, index, item));
|
|
46
|
+
const items = (values ?? []).map((item, index) => {
|
|
47
|
+
const path = `${name}[${index}]`;
|
|
48
|
+
const { schema: s, guarded, fixed } = slots[index];
|
|
49
|
+
const field = guarded
|
|
50
|
+
? guardedItem(ctx, path, item, s)
|
|
51
|
+
: // Items are bounded by the data: a new $ref chain.
|
|
52
|
+
formField(ctx, { name: path, schema: prepareChildSchema(s, schema), ui: { disabled: extracted.disabled, ...(ui?.[index] || ui?.items) }, forceDefaultValue: !fixed }, []);
|
|
53
|
+
const move = (to) => ({ type: "arrayMove", path: name, from: index, to });
|
|
54
|
+
const buttons = locked || fixed
|
|
55
|
+
? null
|
|
56
|
+
: fc(["ArrayFieldItemButtons"], {}, buttonMarkup(extracted.removeButton, "ArrayFieldRemoveButton", "remove", path, "-", { type: "arrayRemove", path: name, index }), !guarded && index > norm.fixed.length && !slots[index - 1]?.guarded ? buttonMarkup(extracted.upButton, "ArrayFieldUpButton", "up", path, "↑", move(index - 1)) : null, !guarded && index < values.length - 1 ? buttonMarkup(extracted.downButton, "ArrayFieldDownButton", "down", path, "↓", move(index + 1)) : null);
|
|
57
|
+
return fc(["ArrayFieldItem"], {}, field, buttons);
|
|
58
|
+
});
|
|
59
|
+
const props = { ...p, kind: "array", data: { "data-fjsf-array": name } };
|
|
60
|
+
const error = typeof getIn(ctx.errors, name) === "string" ? errorMarkup(ctx, name, extracted.props?.error) : null;
|
|
61
|
+
const chrome = { ...formChrome(ctx, props, false), error };
|
|
62
|
+
const template = templated(ctx, "ArrayFieldTemplate", props, arrayTemplateMarkup(chrome, items), items, { items: values, itemNodes: items });
|
|
63
|
+
const add = norm.tail && !locked ? buttonMarkup(extracted.addButton, "ArrayFieldAddButton", "add", name, "+", { type: "arrayAdd", path: name, item: defaultValueForType(norm.tail.type) }) : null;
|
|
64
|
+
return h("#fragment", {}, template, add);
|
|
65
|
+
};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { choiceStyle } from "../../core/choiceStyle";
|
|
2
|
+
import { EnumsTypes, getEnums } from "../../core/enums";
|
|
3
|
+
import { isPlainObject } from "../../core/json";
|
|
4
|
+
import { getIn } from "../../core/paths";
|
|
5
|
+
import { BOOLEAN_RADIO_STORAGE } from "../../core/policies/storedFormats";
|
|
6
|
+
import { extractUiSchema } from "../../core/uiSchema";
|
|
7
|
+
import { reactAttr, reactText } from "../view/values";
|
|
8
|
+
import { formChrome } from "./chrome";
|
|
9
|
+
import { inputAttrs, on } from "./leaf";
|
|
10
|
+
import { fc, fcComposite, fieldTemplateMarkup } from "./markup";
|
|
11
|
+
import { templated } from "./templated";
|
|
12
|
+
const field = (ctx, p, content) => templated(ctx, "FieldTemplate", p, fieldTemplateMarkup(formChrome(ctx, p), content), content);
|
|
13
|
+
const control = (p) => ({ name: p.name, readonly: p.schema?.readOnly ? true : undefined });
|
|
14
|
+
/** RadioField: true/false radios. formik checked them by strict equality with the string value (kept). */
|
|
15
|
+
export const radioField = (ctx, p) => {
|
|
16
|
+
const props = { ...p, data: { "data-fjsf-boolean": p.name }, kind: "radio" };
|
|
17
|
+
const label = extractUiSchema(p.ui).label;
|
|
18
|
+
const markup = radioInputsMarkup(ctx, props, label);
|
|
19
|
+
return field(ctx, props, [fcComposite("RadioFieldInput", { inputProps: { readOnly: p.schema?.readOnly, ...extractUiSchema(p.ui).props }, label, name: p.name }, undefined, markup)]);
|
|
20
|
+
};
|
|
21
|
+
/** The RadioFieldInput markup (also the default of FormComponents.RadioFieldInput). */
|
|
22
|
+
export const radioInputsMarkup = (ctx, props, label) => {
|
|
23
|
+
const value = getIn(ctx.values, props.name);
|
|
24
|
+
const radio = (v, names) => fc(["RadioFieldElement"], {}, {
|
|
25
|
+
...fc(["RadioFieldInputElement"], { ...inputAttrs(ctx, props), ...control(props), type: "radio", value: v, checked: BOOLEAN_RADIO_STORAGE === "strings" ? value === v : value === (v === "true") }),
|
|
26
|
+
on: on(props, "radio"),
|
|
27
|
+
}, fc(names, {}, reactText(isPlainObject(label) ? label[v] : undefined) || v));
|
|
28
|
+
return fc(["RadioFieldContainer"], {}, radio("true", ["RadioFieldLabelTrue"]), radio("false", ["RadioFieldLabelFalse"]));
|
|
29
|
+
};
|
|
30
|
+
/** ToggleField: a checkbox (stores a boolean, Q-R19-1) and the toggle. */
|
|
31
|
+
export const toggleField = (ctx, p) => {
|
|
32
|
+
const props = { ...p, data: { "data-fjsf-boolean": p.name }, kind: "toggle" };
|
|
33
|
+
return field(ctx, props, [fcComposite("ToggleFieldInput", { inputProps: { readOnly: p.schema?.readOnly, ...extractUiSchema(p.ui).props }, name: p.name }, undefined, toggleInputMarkup(ctx, props))]);
|
|
34
|
+
};
|
|
35
|
+
/** The ToggleFieldInput markup (also the default of FormComponents.ToggleFieldInput). */
|
|
36
|
+
export const toggleInputMarkup = (ctx, props) => {
|
|
37
|
+
const box = { ...fc(["ToggleFieldInputElement"], { ...inputAttrs(ctx, props), ...control(props), type: "checkbox", checked: !!getIn(ctx.values, props.name) }), on: on(props, "checkbox") };
|
|
38
|
+
return fc(["ToggleFieldLabel"], {}, box, fc(["ToggleFieldToggle"], {}));
|
|
39
|
+
};
|
|
40
|
+
/** MultipleChoiceField: one radio (single) or checkbox (multi) per option; stores the consts. */
|
|
41
|
+
export const multipleChoiceField = (ctx, p) => {
|
|
42
|
+
const enums = getEnums({ schema: p.schema }, ctx.sink, p.name);
|
|
43
|
+
const multi = enums?.type === EnumsTypes.MULTI_SELECT;
|
|
44
|
+
const type = p.schema?.type;
|
|
45
|
+
const data = type === "array" ? { "data-fjsf-array": p.name } : type === "number" ? { "data-fjsf-number": p.name } : { "data-fjsf-string": p.name };
|
|
46
|
+
const props = { ...p, data, kind: multi ? "multi-enum" : "enum" };
|
|
47
|
+
const ui = extractUiSchema(p.ui);
|
|
48
|
+
const compositeProps = { inputProps: { readOnly: p.schema?.readOnly, ...ui.props }, name: p.name, enums, style: ui.style, value: getIn(ctx.values, p.name) };
|
|
49
|
+
return field(ctx, props, [fcComposite("MultipleChoiceFieldInput", compositeProps, undefined, choicesInputMarkup(ctx, props, enums, ui.style))]);
|
|
50
|
+
};
|
|
51
|
+
/** The MultipleChoiceFieldInput markup (also the default of FormComponents.MultipleChoiceFieldInput). */
|
|
52
|
+
export const choicesInputMarkup = (ctx, props, enums, style) => {
|
|
53
|
+
const p = props;
|
|
54
|
+
const multi = enums?.type === EnumsTypes.MULTI_SELECT;
|
|
55
|
+
const raw = getIn(ctx.values, p.name);
|
|
56
|
+
const current = multi ? (Array.isArray(raw) ? raw : []) : raw;
|
|
57
|
+
const checked = (c) => (multi ? current.includes(c) : current === c);
|
|
58
|
+
const options = (enums?.values ?? []).map((o) => fc(["MultipleChoiceFieldElement"], { "data-fjsf-enum-value": reactAttr(o?.const) }, {
|
|
59
|
+
...fc(["MultipleChoiceFieldInputElement"], { ...inputAttrs(ctx, props), ...control(props), type: multi ? "checkbox" : "radio", value: o?.const !== undefined ? reactAttr(o.const) ?? "" : "", checked: checked(o?.const) }),
|
|
60
|
+
on: p.schema?.readOnly
|
|
61
|
+
? { click: { type: "preventDefault" }, blur: { type: "touch", path: p.name } }
|
|
62
|
+
: { change: { type: "choice", path: p.name, value: o?.const, multi }, blur: { type: "touch", path: p.name } },
|
|
63
|
+
}, fc(["MultipleChoiceFieldLabel"], {}, reactText(o?.title))));
|
|
64
|
+
return fc(["MultipleChoiceFieldContainer"], choiceStyle(style), options);
|
|
65
|
+
};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { getIn } from "../../core/paths";
|
|
2
|
+
import { extractUiSchema } from "../../core/uiSchema";
|
|
3
|
+
import { elementProps } from "../view/fields";
|
|
4
|
+
import { descriptionOf, textOf, titleOf } from "../view/values";
|
|
5
|
+
import { fc, fcComposite, plain } from "./markup";
|
|
6
|
+
/** 2.x getInstrumentationAttributes. */
|
|
7
|
+
export const instrumentation = (p) => ({
|
|
8
|
+
"data-fjsf-path": p.name,
|
|
9
|
+
"data-fjsf-kind": p.kind,
|
|
10
|
+
"data-fjsf-required": p.required ? "true" : undefined,
|
|
11
|
+
"data-fjsf-readonly": p.schema?.readOnly ? "true" : undefined,
|
|
12
|
+
"data-fjsf-hidden": p.hidden ? "true" : undefined,
|
|
13
|
+
});
|
|
14
|
+
/** ErrorMessage (2.x: useField meta, shown when touched): a composite so pro3's HiddenErrorMessage can replace it. */
|
|
15
|
+
export const errorMarkup = (ctx, name, errorProps) => {
|
|
16
|
+
const error = getIn(ctx.errors, name);
|
|
17
|
+
const shown = getIn(ctx.touched, name) && typeof error === "string" && error ? plain("div", "ErrorText", {}, error) : null;
|
|
18
|
+
return fcComposite("ErrorMessage", { ...(errorProps && typeof errorProps === "object" ? errorProps : {}), name }, undefined, shown);
|
|
19
|
+
};
|
|
20
|
+
/** FieldInfo (ui:info): tooltip, or an inline box toggled by the info link (formOptions.components.FieldInfo.display). */
|
|
21
|
+
export const infoMarkup = (ctx, path, info) => {
|
|
22
|
+
if (!info || typeof info !== "object")
|
|
23
|
+
return null;
|
|
24
|
+
const display = info.display ?? ctx.formOptions?.components?.FieldInfo?.display ?? "tooltip";
|
|
25
|
+
const position = ["top", "right", "bottom", "left"].includes(info.position) ? info.position : "top";
|
|
26
|
+
const id = `${path}#info`;
|
|
27
|
+
const label = fc(["FieldInfoLabel"], {}, textOf(info.label) ?? "i");
|
|
28
|
+
const link = (...extra) => ({ ...fc(["FieldInfoContainer"], { "data-fjsf-button": "info", href: "#", class: info.className }, label, ...extra), on: { click: { type: "info", id, display } } });
|
|
29
|
+
const content = textOf(info.content);
|
|
30
|
+
const markup = display === "inline"
|
|
31
|
+
? [link(), ctx.ui.infoOpen?.[id] ? fc(["InlineFieldInfoWrapper"], {}, fc(["InlineFieldInfoBoxInnerElement"], {}, content)) : null]
|
|
32
|
+
: [
|
|
33
|
+
link(fc(["FieldInfoBoxElement"],
|
|
34
|
+
// §4.3: the tooltip side for the generated styles (2.x: a `position` prop, top by default)
|
|
35
|
+
{ role: "tooltip", "data-fjsf-info-position": position }, fc(["FieldInfoBoxArrowElement"], { "data-fjsf-info-position": position }), fc(["FieldInfoBoxInnerElement"], {}, content))),
|
|
36
|
+
];
|
|
37
|
+
return fcComposite("FieldInfo", { ...info }, undefined, ...markup);
|
|
38
|
+
};
|
|
39
|
+
export const formChrome = (ctx, p, withError = true) => {
|
|
40
|
+
const extracted = extractUiSchema(p.ui);
|
|
41
|
+
const { wrapperAttrs, titleAttrs, descriptionAttrs } = elementProps(p.ui, p.name, ctx.sink);
|
|
42
|
+
const helpAttrs = elementProps({ "ui:props": { wrapper: extracted.props?.help } }, p.name, ctx.sink).wrapperAttrs;
|
|
43
|
+
return {
|
|
44
|
+
path: p.name,
|
|
45
|
+
// 2.x hid a property left out of ui:order through its wrapper style.
|
|
46
|
+
attrs: { ...wrapperAttrs, ...(p.hidden ? { style: [wrapperAttrs.style, "display:none"].filter(Boolean).join(";") } : {}), ...p.data, ...instrumentation(p) },
|
|
47
|
+
title: titleOf(p.ui, p.schema, p.name),
|
|
48
|
+
titleAttrs,
|
|
49
|
+
description: descriptionOf(p.ui, p.schema),
|
|
50
|
+
descriptionAttrs,
|
|
51
|
+
help: textOf(extracted.help),
|
|
52
|
+
helpAttrs,
|
|
53
|
+
required: p.required,
|
|
54
|
+
disabled: !!extracted.props?.disabled,
|
|
55
|
+
info: infoMarkup(ctx, p.name, extracted.info),
|
|
56
|
+
error: withError ? errorMarkup(ctx, p.name, extracted.props?.error) : null,
|
|
57
|
+
};
|
|
58
|
+
};
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
export const FORM_COMPONENTS = {
|
|
2
|
+
ArrayFieldAddButton: ["button", "ObjectFieldButton", "ArrayFieldButton", "ArrayFieldAddButton"],
|
|
3
|
+
ArrayFieldButton: ["button", "ObjectFieldButton", "ArrayFieldButton"],
|
|
4
|
+
ArrayFieldDownButton: ["button", "ObjectFieldButton", "ArrayFieldButton", "ArrayFieldLineButton", "ArrayFieldDownButton"],
|
|
5
|
+
ArrayFieldItem: ["li", "ObjectFieldItem", "ArrayFieldItem"],
|
|
6
|
+
ArrayFieldItemButtons: ["div", "ObjectFieldItemButtons"],
|
|
7
|
+
ArrayFieldLineButton: ["button", "ObjectFieldButton", "ArrayFieldButton", "ArrayFieldLineButton"],
|
|
8
|
+
ArrayFieldRemoveButton: ["button", "ObjectFieldButton", "ArrayFieldButton", "ArrayFieldLineButton", "ArrayFieldRemoveButton"],
|
|
9
|
+
ArrayFieldTemplateDescription: null,
|
|
10
|
+
ArrayFieldTemplateErrorMessage: null,
|
|
11
|
+
ArrayFieldTemplateHelp: null,
|
|
12
|
+
ArrayFieldTemplateIcon: null,
|
|
13
|
+
ArrayFieldTemplateInfo: null,
|
|
14
|
+
ArrayFieldTemplateRequiredIndicator: null,
|
|
15
|
+
ArrayFieldTemplateTitle: null,
|
|
16
|
+
ArrayFieldTemplateWrapper: null,
|
|
17
|
+
ArrayFieldTitleInfoWrapper: null,
|
|
18
|
+
ArrayFieldUpButton: ["button", "ObjectFieldButton", "ArrayFieldButton", "ArrayFieldLineButton", "ArrayFieldUpButton"],
|
|
19
|
+
BooleanFieldWrapper: ["div", "BooleanFieldWrapper"],
|
|
20
|
+
Clickable: "fn",
|
|
21
|
+
ClickableEl: ["button", "ClickableEl"],
|
|
22
|
+
CollapsibleObjectFieldTemplateChildWrapper: ["div", "CollapsibleObjectFieldTemplateChildWrapper"],
|
|
23
|
+
CollapsibleObjectFieldTemplateDescription: null,
|
|
24
|
+
CollapsibleObjectFieldTemplateErrorMessage: null,
|
|
25
|
+
CollapsibleObjectFieldTemplateHelp: null,
|
|
26
|
+
CollapsibleObjectFieldTemplateIcon: null,
|
|
27
|
+
CollapsibleObjectFieldTemplateInfo: null,
|
|
28
|
+
CollapsibleObjectFieldTemplateRequiredIndicator: null,
|
|
29
|
+
CollapsibleObjectFieldTemplateTitle: ["legend", "ObjectFieldTemplateTitle", "CollapsibleObjectFieldTemplateTitle"],
|
|
30
|
+
CollapsibleObjectFieldTemplateToggle: ["button", "CollapsibleObjectFieldTemplateToggle"],
|
|
31
|
+
CollapsibleObjectFieldTemplateWrapper: null,
|
|
32
|
+
CollapsibleObjectTitleInfoWrapper: null,
|
|
33
|
+
Divider: ["div", "Divider"],
|
|
34
|
+
DividerText: ["p", "DividerText"],
|
|
35
|
+
DragOverlay: ["div", "DragOverlay"],
|
|
36
|
+
ErrorMessage: "fn",
|
|
37
|
+
FieldDescription: ["p", "FieldDescription"],
|
|
38
|
+
FieldHelp: ["p", "FieldHelp"],
|
|
39
|
+
FieldInfo: "fn",
|
|
40
|
+
FieldInfoBoxArrowElement: ["div", "FieldInfoBoxArrowElement"],
|
|
41
|
+
FieldInfoBoxElement: ["div", "FieldInfoBoxElement"],
|
|
42
|
+
FieldInfoBoxInnerElement: ["div", "FieldInfoBoxInnerElement"],
|
|
43
|
+
FieldInfoContainer: ["a", "FieldInfoContainer"],
|
|
44
|
+
FieldInfoLabel: ["span", "FieldInfoLabel"],
|
|
45
|
+
FieldInput: ["input", "FieldInput"],
|
|
46
|
+
FieldTitle: ["label", "FieldTitle"],
|
|
47
|
+
FieldTitleInfoWrapper: ["div", "FieldTitleInfoWrapper"],
|
|
48
|
+
FieldWrapper: ["div", "FieldWrapper"],
|
|
49
|
+
FileInfoText: ["p", "FileInfoText"],
|
|
50
|
+
FileInfoTextMinimized: ["p", "FileInfoTextMinimized"],
|
|
51
|
+
FileItemContainer: ["div", "FileItemContainer"],
|
|
52
|
+
FileSize: ["span", "FileSize"],
|
|
53
|
+
FileTypeIcon: ["div", "FileTypeIcon"],
|
|
54
|
+
FileUploadButton: ["button", "FileUploadButton"],
|
|
55
|
+
FileUploadFieldContainer: ["div", "FileUploadFieldContainer"],
|
|
56
|
+
FileUploadFieldFileInfoText: ["span", "FileUploadFieldFileInfoText"],
|
|
57
|
+
FileUploadFieldFileItemContainer: ["div", "FileUploadFieldFileItemContainer"],
|
|
58
|
+
FileUploadFieldFileUploadButton: ["button", "FileUploadFieldFileUploadButton"],
|
|
59
|
+
FileUploadFieldHiddenFileInput: ["input", "FileUploadFieldHiddenFileInput"],
|
|
60
|
+
FileUploadFieldInput: "fn",
|
|
61
|
+
FileUploadFieldProgressBar: ["div", "FileUploadFieldProgressBar"],
|
|
62
|
+
FileUploadFieldProgressBarContainer: ["div", "FileUploadFieldProgressBarContainer"],
|
|
63
|
+
FileUploadFieldProgressText: ["span", "FileUploadFieldProgressText"],
|
|
64
|
+
FileUploadFieldRemoveButton: ["button", "FileUploadFieldRemoveButton"],
|
|
65
|
+
FileUploadText: ["a", "FileUploadText"],
|
|
66
|
+
FilesUploadFieldInput: "fn",
|
|
67
|
+
Form: ["form", "Form"],
|
|
68
|
+
FormButton: ["button", "FormButton"],
|
|
69
|
+
FormButtonWrapper: ["div", "FormButtonWrapper"],
|
|
70
|
+
HiddenFileInput: ["input", "HiddenFileInput"],
|
|
71
|
+
Icon: ["div", "Icon"],
|
|
72
|
+
IconWrapper: ["div", "IconWrapper"],
|
|
73
|
+
InfoText: ["p", "InfoText"],
|
|
74
|
+
InlineFieldInfoBoxInnerElement: ["div", "InlineFieldInfoBoxInnerElement"],
|
|
75
|
+
InlineFieldInfoWrapper: ["div", "InlineFieldInfoWrapper"],
|
|
76
|
+
MultipleChoiceFieldContainer: ["div", "RadioFieldContainer", "MultipleChoiceFieldContainer"],
|
|
77
|
+
MultipleChoiceFieldElement: ["label", "RadioFieldElement", "MultipleChoiceFieldElement"],
|
|
78
|
+
MultipleChoiceFieldInput: "fn",
|
|
79
|
+
MultipleChoiceFieldInputElement: ["input", "FieldInput", "RadioFieldInputElement", "MultipleChoiceFieldInputElement"],
|
|
80
|
+
MultipleChoiceFieldLabel: ["span", "RadioFieldLabel", "MultipleChoiceFieldLabel"],
|
|
81
|
+
ObjectFieldAddButton: ["button", "ObjectFieldButton", "ObjectFieldAddButton"],
|
|
82
|
+
ObjectFieldButton: ["button", "ObjectFieldButton"],
|
|
83
|
+
ObjectFieldDownButton: ["button", "ObjectFieldButton", "ObjectFieldDownButton"],
|
|
84
|
+
ObjectFieldItem: ["li", "ObjectFieldItem"],
|
|
85
|
+
ObjectFieldItemButtons: ["div", "ObjectFieldItemButtons"],
|
|
86
|
+
ObjectFieldRemoveButton: ["button", "ObjectFieldButton", "ObjectFieldRemoveButton"],
|
|
87
|
+
ObjectFieldSection: "fn",
|
|
88
|
+
ObjectFieldSectionChildrenWrapper: ["div", "ObjectFieldSectionChildrenWrapper"],
|
|
89
|
+
ObjectFieldSectionTitle: ["legend", "ObjectFieldSectionTitle"],
|
|
90
|
+
ObjectFieldSectionWrapper: ["fieldset", "ObjectFieldSectionWrapper"],
|
|
91
|
+
ObjectFieldTemplateDescription: null,
|
|
92
|
+
ObjectFieldTemplateErrorMessage: null,
|
|
93
|
+
ObjectFieldTemplateHelp: null,
|
|
94
|
+
ObjectFieldTemplateInfo: null,
|
|
95
|
+
ObjectFieldTemplateRequiredIndicator: null,
|
|
96
|
+
ObjectFieldTemplateTitle: ["legend", "ObjectFieldTemplateTitle"],
|
|
97
|
+
ObjectFieldTemplateWrapper: ["fieldset", "ObjectFieldTemplateWrapper"],
|
|
98
|
+
ObjectFieldTitleInfoWrapper: ["div", "ObjectFieldTitleInfoWrapper"],
|
|
99
|
+
ObjectFieldUpButton: ["button", "ObjectFieldButton", "ObjectFieldUpButton"],
|
|
100
|
+
ObjectFieldWrapper: ["div", "ObjectFieldWrapper"],
|
|
101
|
+
ProgressBar: ["div", "ProgressBar"],
|
|
102
|
+
ProgressBarContainer: ["div", "ProgressBarContainer"],
|
|
103
|
+
RadioFieldContainer: ["div", "RadioFieldContainer"],
|
|
104
|
+
RadioFieldElement: ["label", "RadioFieldElement"],
|
|
105
|
+
RadioFieldInput: "fn",
|
|
106
|
+
RadioFieldInputElement: ["input", "FieldInput", "RadioFieldInputElement"],
|
|
107
|
+
RadioFieldLabel: ["span", "RadioFieldLabel"],
|
|
108
|
+
RadioFieldLabelFalse: ["span", "RadioFieldLabel", "RadioFieldLabelFalse"],
|
|
109
|
+
RadioFieldLabelTrue: ["span", "RadioFieldLabel", "RadioFieldLabelTrue"],
|
|
110
|
+
RemoveButton: ["button", "RemoveButton"],
|
|
111
|
+
RemoveButtonIcon: ["svg", "RemoveButtonIcon"],
|
|
112
|
+
RequiredIndicator: ["span", "RequiredIndicator"],
|
|
113
|
+
SearchableMultiTagSelectFieldBadge: ["div", "SearchableMultiTagSelectFieldBadge"],
|
|
114
|
+
SearchableMultiTagSelectFieldBadgeCloseElement: ["button", "SearchableMultiTagSelectFieldBadgeCloseElement"],
|
|
115
|
+
SearchableMultiTagSelectFieldBadgeContainer: ["div", "SearchableMultiTagSelectFieldBadgeContainer"],
|
|
116
|
+
SearchableMultiTagSelectFieldContainer: ["div", "SearchableMultiTagSelectFieldContainer"],
|
|
117
|
+
SearchableMultiTagSelectFieldInput: "fn",
|
|
118
|
+
SearchableMultiTagSelectFieldInputElement: ["input", "FieldInput", "SearchableMultiTagSelectFieldInputElement"],
|
|
119
|
+
SearchableMultiTagSelectFieldOptionList: ["ul", "SearchableMultiTagSelectFieldOptionList"],
|
|
120
|
+
SearchableMultiTagSelectFieldOptionListItem: ["li", "SearchableMultiTagSelectFieldOptionListItem"],
|
|
121
|
+
SearchableMultiTagSelectFieldOptionListWithoutItem: ["li", "SearchableMultiTagSelectFieldOptionListWithoutItem"],
|
|
122
|
+
SearchableMultiTagSelectFieldSearchContainer: ["div", "SearchableMultiTagSelectFieldSearchContainer"],
|
|
123
|
+
SearchableSelectFieldClearButton: ["button", "SearchableSelectFieldClearButton"],
|
|
124
|
+
SearchableSelectFieldContainer: ["div", "SearchableMultiTagSelectFieldSearchContainer", "SearchableSelectFieldContainer"],
|
|
125
|
+
SearchableSelectFieldDropdownContainer: ["ul", "SearchableMultiTagSelectFieldOptionList", "SearchableSelectFieldDropdownContainer"],
|
|
126
|
+
SearchableSelectFieldInputContainer: ["div", "SearchableSelectFieldInputContainer"],
|
|
127
|
+
SearchableSelectFieldInputElement: ["input", "FieldInput", "SearchableSelectFieldInputElement"],
|
|
128
|
+
SearchableSelectFieldListExpand: ["li", "SearchableMultiTagSelectFieldOptionListItem", "SearchableSelectFieldListExpand"],
|
|
129
|
+
SearchableSelectFieldListOption: ["li", "SearchableMultiTagSelectFieldOptionListItem", "SearchableSelectFieldListOption"],
|
|
130
|
+
SearchableSelectFieldNotFound: ["li", "SearchableMultiTagSelectFieldOptionListItem", "SearchableSelectFieldNotFound"],
|
|
131
|
+
SelectFieldInput: ["input", "FieldInput", "SelectFieldInput"],
|
|
132
|
+
SelectFieldInputWrapper: ["div", "SelectFieldInputWrapper"],
|
|
133
|
+
TextAreaFieldInput: ["input", "FieldInput", "TextAreaFieldInput"],
|
|
134
|
+
ToggleFieldInput: "fn",
|
|
135
|
+
ToggleFieldInputElement: ["input", "FieldInput", "ToggleFieldInputElement"],
|
|
136
|
+
ToggleFieldLabel: ["label", "ToggleFieldLabel"],
|
|
137
|
+
ToggleFieldToggle: ["span", "ToggleFieldToggle"],
|
|
138
|
+
UploadIcon: ["svg", "UploadIcon"],
|
|
139
|
+
UploadedFileInfoContainer: ["div", "UploadedFileInfoContainer"],
|
|
140
|
+
UploadedFileItemContainer: ["div", "UploadedFileItemContainer"],
|
|
141
|
+
UploadedFileName: ["div", "UploadedFileName"],
|
|
142
|
+
UploadedFileWrapper: ["div", "UploadedFileWrapper"],
|
|
143
|
+
UploadingFileName: ["div", "UploadingFileName"],
|
|
144
|
+
getComponents: "fn",
|
|
145
|
+
};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { formatForDisplay, preferOrderOf } from "../../core/dates";
|
|
2
|
+
import { isPlainObject } from "../../core/json";
|
|
3
|
+
import { getIn } from "../../core/paths";
|
|
4
|
+
import { extractUiSchema } from "../../core/uiSchema";
|
|
5
|
+
import { h } from "../vnode";
|
|
6
|
+
import { reactAttr, reactText } from "../view/values";
|
|
7
|
+
import { formChrome } from "./chrome";
|
|
8
|
+
import { iconMarkup } from "./icons";
|
|
9
|
+
import { fieldTemplateMarkup, plain } from "./markup";
|
|
10
|
+
import { templated } from "./templated";
|
|
11
|
+
export const dateRules = (ctx, ui) => {
|
|
12
|
+
const props = isPlainObject(extractUiSchema(ui).props) ? extractUiSchema(ui).props : {};
|
|
13
|
+
const min = typeof props.min === "string" ? props.min : undefined;
|
|
14
|
+
const max = typeof props.max === "string" ? props.max : undefined;
|
|
15
|
+
const raw = props.errorMessages?.outOfRange;
|
|
16
|
+
const fallback = (min && max && `Date must be between ${min} and ${max}.`) || "Date is out of range.";
|
|
17
|
+
const outOfRange = typeof raw === "function" ? String(raw({ min, max })) : (typeof raw === "string" ? raw : fallback).replace(/\{min\}/g, min ?? "").replace(/\{max\}/g, max ?? "");
|
|
18
|
+
const locale = [props.locale, ctx.formLocalization?.fields?.DateField?.locale, ctx.locale].find((l) => typeof l === "string" && l) ?? "en-US";
|
|
19
|
+
return { locale, min, max, invalid: typeof props.errorMessages?.invalid === "string" ? props.errorMessages.invalid : "Enter a valid date", outOfRange };
|
|
20
|
+
};
|
|
21
|
+
export const dateField = (ctx, p) => {
|
|
22
|
+
const props = { ...p, data: { "data-fjsf-string": p.name }, kind: "date" };
|
|
23
|
+
const ui = extractUiSchema(p.ui);
|
|
24
|
+
const inputProps = isPlainObject(ui.props) ? ui.props : {};
|
|
25
|
+
const rules = dateRules(ctx, p.ui);
|
|
26
|
+
const value = getIn(ctx.values, p.name);
|
|
27
|
+
const readOnly = p.schema?.readOnly === true;
|
|
28
|
+
const disabled = inputProps.disabled ? true : undefined;
|
|
29
|
+
const shown = ctx.ui.text?.[p.name] ?? formatForDisplay(value, rules.locale);
|
|
30
|
+
const error = !!getIn(ctx.errors, p.name) && !!getIn(ctx.touched, p.name);
|
|
31
|
+
const commit = { type: "dateCommit", path: p.name, rules: { ...rules, order: preferOrderOf(rules.locale) }, locked: readOnly || !!disabled };
|
|
32
|
+
const display = {
|
|
33
|
+
...plain("input", "DisplayInput", {
|
|
34
|
+
id: `${p.name}-display`, type: "text", placeholder: reactAttr(inputProps.placeholder), autocomplete: "off", inputmode: "numeric",
|
|
35
|
+
"aria-describedby": inputProps.helpText ? `${p.name}-help` : undefined, "aria-invalid": String(error), value: shown, disabled, readonly: readOnly || undefined,
|
|
36
|
+
}),
|
|
37
|
+
on: { change: { type: "dateText", path: p.name }, blur: commit, paste: commit },
|
|
38
|
+
};
|
|
39
|
+
const native = readOnly
|
|
40
|
+
? null
|
|
41
|
+
: { ...plain("input", "HiddenNative", { id: `${p.name}-native`, type: "date", min: rules.min, max: rules.max, value: typeof value === "string" ? value : "", tabindex: "-1", "aria-hidden": "true" }), on: { change: { ...commit, native: true } } };
|
|
42
|
+
const picker = readOnly
|
|
43
|
+
? null
|
|
44
|
+
: { ...plain("button", "PickerButton", { type: "button", "aria-label": "Date picker", title: "Date picker", disabled }, iconMarkup("FaCalendar")), on: { click: { type: "datePicker", id: `${p.name}-native`, locked: !!disabled } } };
|
|
45
|
+
// 2.x: `CommonFieldWrapper as DateFieldWrapper` (DateField.tsx:10)
|
|
46
|
+
const content = [plain("div", "CommonFieldWrapper", {}, h("label", { for: `${p.name}-display` }, reactText(inputProps.label)), plain("div", "Row", {}, display, native, picker))];
|
|
47
|
+
return templated(ctx, "FieldTemplate", props, fieldTemplateMarkup(formChrome(ctx, props), content), content);
|
|
48
|
+
};
|