@gravity-ui/page-constructor 6.3.2-alpha.11 → 6.3.2-alpha.12
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/build/cjs/blocks/CardLayout/index.d.ts +1 -1
- package/build/cjs/blocks/CardLayout/index.js.map +1 -1
- package/build/cjs/blocks/ContentLayout/index.d.ts +1 -1
- package/build/cjs/blocks/ExtendedFeatures/index.d.ts +1 -1
- package/build/cjs/blocks/FilterBlock/index.d.ts +1 -1
- package/build/cjs/blocks/Form/index.d.ts +1 -1
- package/build/cjs/blocks/Header/dynamic-form.d.ts +1 -1
- package/build/cjs/blocks/Header/dynamic-form.js.map +1 -1
- package/build/cjs/blocks/Header/index.d.ts +1 -1
- package/build/cjs/blocks/HeaderSlider/index.d.ts +1 -1
- package/build/cjs/blocks/Icons/index.d.ts +1 -1
- package/build/cjs/blocks/Info/index.d.ts +1 -1
- package/build/cjs/blocks/Map/index.d.ts +1 -1
- package/build/cjs/blocks/Media/index.d.ts +1 -1
- package/build/cjs/blocks/PromoFeaturesBlock/index.d.ts +1 -1
- package/build/cjs/blocks/Questions/index.d.ts +1 -1
- package/build/cjs/blocks/Share/index.d.ts +1 -1
- package/build/cjs/blocks/Slider/dynamic-form.d.ts +1 -1
- package/build/cjs/blocks/Slider/dynamic-form.js.map +1 -1
- package/build/cjs/blocks/Slider/index.d.ts +1 -1
- package/build/cjs/blocks/Table/index.d.ts +1 -1
- package/build/cjs/blocks/Tabs/index.d.ts +1 -1
- package/build/cjs/blocks/TestEditorBlock/form.d.ts +1 -1
- package/build/cjs/blocks/TestEditorBlock/form.js.map +1 -1
- package/build/cjs/blocks/TestEditorBlock/index.d.ts +1 -1
- package/build/cjs/common/store.d.ts +2 -1
- package/build/cjs/common/store.js.map +1 -1
- package/build/cjs/common/types/common.d.ts +1 -1
- package/build/cjs/common/types/common.js.map +1 -1
- package/build/cjs/common/types/index.d.ts +0 -1
- package/build/cjs/common/types/index.js +0 -1
- package/build/cjs/common/types/index.js.map +1 -1
- package/build/cjs/components/Image/dynamic-form.d.ts +1 -1
- package/build/cjs/components/Image/dynamic-form.js.map +1 -1
- package/build/cjs/components/Title/TitleItem.d.ts +1 -1
- package/build/cjs/constructor-items.d.ts +1 -1
- package/build/cjs/constructor-items.js.map +1 -1
- package/build/cjs/editor-v2/containers/BlockConfigForm/BlockConfigForm.js +2 -2
- package/build/cjs/editor-v2/containers/BlockConfigForm/BlockConfigForm.js.map +1 -1
- package/build/cjs/editor-v2/containers/GlobalConfig/GlobalConfig.js +2 -3
- package/build/cjs/editor-v2/containers/GlobalConfig/GlobalConfig.js.map +1 -1
- package/build/cjs/editor-v2/store.d.ts +1 -1
- package/build/cjs/editor-v2/store.js.map +1 -1
- package/build/cjs/form-builder/FormBuilder.d.ts +3 -0
- package/build/cjs/form-builder/FormBuilder.js +12 -0
- package/build/cjs/form-builder/FormBuilder.js.map +1 -0
- package/build/cjs/form-builder/components/AddPropertyButton/AddPropertyButton.css +3 -0
- package/build/cjs/{form-generator → form-builder}/components/AddPropertyButton/AddPropertyButton.d.ts +1 -1
- package/build/cjs/{form-generator → form-builder}/components/AddPropertyButton/AddPropertyButton.js +1 -1
- package/build/cjs/form-builder/components/AddPropertyButton/AddPropertyButton.js.map +1 -0
- package/build/cjs/{form-generator → form-builder}/components/ArrayFieldRenderer/ArrayFieldRenderer.css +5 -5
- package/build/cjs/{form-generator → form-builder}/components/ArrayFieldRenderer/ArrayFieldRenderer.d.ts +2 -2
- package/build/cjs/{form-generator → form-builder}/components/ArrayFieldRenderer/ArrayFieldRenderer.js +1 -1
- package/build/cjs/form-builder/components/ArrayFieldRenderer/ArrayFieldRenderer.js.map +1 -0
- package/build/{esm/form-generator → cjs/form-builder}/components/ConfigRow/ConfigRow.css +3 -3
- package/build/cjs/{form-generator → form-builder}/components/ConfigRow/ConfigRow.js +1 -1
- package/build/cjs/form-builder/components/ConfigRow/ConfigRow.js.map +1 -0
- package/build/cjs/{form-generator → form-builder}/components/FieldCard/FieldCard.css +3 -3
- package/build/cjs/{form-generator → form-builder}/components/FieldCard/FieldCard.d.ts +1 -1
- package/build/cjs/{form-generator → form-builder}/components/FieldCard/FieldCard.js +1 -1
- package/build/cjs/form-builder/components/FieldCard/FieldCard.js.map +1 -0
- package/build/{esm/form-generator → cjs/form-builder}/components/FieldHeader/FieldHeader.css +1 -1
- package/build/cjs/{form-generator → form-builder}/components/FieldHeader/FieldHeader.js +1 -1
- package/build/cjs/form-builder/components/FieldHeader/FieldHeader.js.map +1 -0
- package/build/{esm/form-generator/components/FormBuilder/FormBuilder.css → cjs/form-builder/components/FormBuilderBody/FormBuilderBody.css} +18 -18
- package/build/cjs/form-builder/components/FormBuilderBody/FormBuilderBody.d.ts +6 -0
- package/build/cjs/{form-generator/components/FormBuilder/FormBuilder.js → form-builder/components/FormBuilderBody/FormBuilderBody.js} +6 -7
- package/build/cjs/form-builder/components/FormBuilderBody/FormBuilderBody.js.map +1 -0
- package/build/cjs/{form-generator → form-builder}/components/ObjectFieldRenderer/ObjectFieldRenderer.css +1 -1
- package/build/cjs/{form-generator → form-builder}/components/ObjectFieldRenderer/ObjectFieldRenderer.d.ts +2 -2
- package/build/cjs/{form-generator → form-builder}/components/ObjectFieldRenderer/ObjectFieldRenderer.js +1 -1
- package/build/cjs/form-builder/components/ObjectFieldRenderer/ObjectFieldRenderer.js.map +1 -0
- package/build/cjs/{form-generator → form-builder}/components/OptionHeader/OptionHeader.css +1 -1
- package/build/cjs/{form-generator → form-builder}/components/OptionHeader/OptionHeader.js +1 -1
- package/build/cjs/form-builder/components/OptionHeader/OptionHeader.js.map +1 -0
- package/build/cjs/{form-generator → form-builder}/components/OptionsRenderer/OptionsRenderer.css +6 -6
- package/build/cjs/{form-generator → form-builder}/components/OptionsRenderer/OptionsRenderer.d.ts +2 -2
- package/build/cjs/{form-generator → form-builder}/components/OptionsRenderer/OptionsRenderer.js +1 -1
- package/build/cjs/form-builder/components/OptionsRenderer/OptionsRenderer.js.map +1 -0
- package/build/cjs/form-builder/components/SectionHeader/SectionHeader.css +3 -0
- package/build/cjs/{form-generator → form-builder}/components/SectionHeader/SectionHeader.js +1 -1
- package/build/cjs/form-builder/components/SectionHeader/SectionHeader.js.map +1 -0
- package/build/cjs/{form-generator → form-builder}/components/SelectFieldRenderer/SelectFieldRenderer.css +8 -8
- package/build/cjs/{form-generator → form-builder}/components/SelectFieldRenderer/SelectFieldRenderer.d.ts +1 -1
- package/build/cjs/{form-generator → form-builder}/components/SelectFieldRenderer/SelectFieldRenderer.js +1 -1
- package/build/cjs/form-builder/components/SelectFieldRenderer/SelectFieldRenderer.js.map +1 -0
- package/build/cjs/form-builder/hooks/FormContext.d.ts +11 -0
- package/build/cjs/{form-generator → form-builder}/hooks/FormContext.js +2 -2
- package/build/cjs/form-builder/hooks/FormContext.js.map +1 -0
- package/build/{esm/form-generator → cjs/form-builder}/hooks/useFormFields.d.ts +8 -3
- package/build/cjs/{form-generator → form-builder}/hooks/useFormFields.js +66 -66
- package/build/cjs/form-builder/hooks/useFormFields.js.map +1 -0
- package/build/cjs/form-builder/index.d.ts +4 -0
- package/build/cjs/form-builder/index.js +8 -0
- package/build/cjs/form-builder/index.js.map +1 -0
- package/build/cjs/form-builder/styles/variables.css +0 -0
- package/build/cjs/{form-generator/hooks → form-builder}/types.d.ts +6 -1
- package/build/cjs/form-builder/types.js.map +1 -0
- package/build/cjs/form-builder/utils/cn.d.ts +2 -0
- package/build/cjs/form-builder/utils/cn.js +7 -0
- package/build/cjs/form-builder/utils/cn.js.map +1 -0
- package/build/cjs/form-generator/FormGenerator.css +7 -0
- package/build/cjs/form-generator/FormGenerator.d.ts +10 -0
- package/build/cjs/{editor-v2/components/DynamicForm/DynamicForm.js → form-generator/FormGenerator.js} +19 -17
- package/build/cjs/form-generator/FormGenerator.js.map +1 -0
- package/build/{esm/editor-v2/components/DynamicForm → cjs/form-generator/components}/FieldBase/FieldBase.css +19 -17
- package/build/cjs/{editor-v2/components/DynamicForm → form-generator/components}/FieldBase/FieldBase.js +3 -3
- package/build/cjs/form-generator/components/FieldBase/FieldBase.js.map +1 -0
- package/build/cjs/form-generator/components/Fields/AnyOf/AnyOf.css +8 -0
- package/build/cjs/{editor-v2/components/DynamicForm → form-generator/components}/Fields/AnyOf/AnyOf.d.ts +1 -1
- package/build/cjs/{editor-v2/components/DynamicForm → form-generator/components}/Fields/AnyOf/AnyOf.js +4 -4
- package/build/cjs/form-generator/components/Fields/AnyOf/AnyOf.js.map +1 -0
- package/build/cjs/form-generator/components/Fields/Array/Array.css +40 -0
- package/build/cjs/{editor-v2/components/DynamicForm → form-generator/components}/Fields/Array/Array.d.ts +1 -1
- package/build/cjs/{editor-v2/components/DynamicForm → form-generator/components}/Fields/Array/Array.js +5 -5
- package/build/cjs/form-generator/components/Fields/Array/Array.js.map +1 -0
- package/build/cjs/{editor-v2/components/DynamicForm → form-generator/components}/Fields/Array/ItemButton/ItemButton.js +2 -2
- package/build/cjs/form-generator/components/Fields/Array/ItemButton/ItemButton.js.map +1 -0
- package/build/cjs/form-generator/components/Fields/Boolean/Boolean.css +5 -0
- package/build/cjs/{editor-v2/components/DynamicForm → form-generator/components}/Fields/Boolean/Boolean.js +2 -2
- package/build/cjs/form-generator/components/Fields/Boolean/Boolean.js.map +1 -0
- package/build/cjs/{editor-v2/components/DynamicForm → form-generator/components}/Fields/Number/Number.js +2 -2
- package/build/cjs/form-generator/components/Fields/Number/Number.js.map +1 -0
- package/build/{esm/editor-v2/components/DynamicForm → cjs/form-generator/components}/Fields/Object/Object.d.ts +1 -1
- package/build/cjs/{editor-v2/components/DynamicForm → form-generator/components}/Fields/Object/Object.js +2 -2
- package/build/cjs/form-generator/components/Fields/Object/Object.js.map +1 -0
- package/build/cjs/form-generator/components/Fields/OneOf/OneOf.css +8 -0
- package/build/cjs/{editor-v2/components/DynamicForm → form-generator/components}/Fields/OneOf/OneOf.d.ts +1 -1
- package/build/cjs/{editor-v2/components/DynamicForm → form-generator/components}/Fields/OneOf/OneOf.js +4 -4
- package/build/cjs/form-generator/components/Fields/OneOf/OneOf.js.map +1 -0
- package/build/cjs/form-generator/components/Fields/Select/Select.css +5 -0
- package/build/cjs/{editor-v2/components/DynamicForm → form-generator/components}/Fields/Select/Select.d.ts +1 -1
- package/build/cjs/{editor-v2/components/DynamicForm → form-generator/components}/Fields/Select/Select.js +2 -2
- package/build/cjs/form-generator/components/Fields/Select/Select.js.map +1 -0
- package/build/cjs/{editor-v2/components/DynamicForm → form-generator/components}/Fields/Text/Text.js +2 -2
- package/build/cjs/form-generator/components/Fields/Text/Text.js.map +1 -0
- package/build/cjs/{editor-v2/components/DynamicForm → form-generator/components}/Fields/TextArea/TextArea.js +2 -2
- package/build/cjs/form-generator/components/Fields/TextArea/TextArea.js.map +1 -0
- package/build/cjs/form-generator/index.d.ts +2 -7
- package/build/cjs/form-generator/index.js +2 -7
- package/build/cjs/form-generator/index.js.map +1 -1
- package/build/cjs/form-generator/styles/mixins.css +2 -0
- package/build/cjs/{common/types/forms.d.ts → form-generator/types.d.ts} +1 -1
- package/build/cjs/{common/types/forms.js → form-generator/types.js} +1 -1
- package/build/cjs/form-generator/types.js.map +1 -0
- package/build/cjs/{editor-v2/components/DynamicForm/utils.d.ts → form-generator/utils/common.d.ts} +1 -1
- package/build/cjs/{editor-v2/components/DynamicForm/utils.js → form-generator/utils/common.js} +1 -1
- package/build/cjs/form-generator/utils/common.js.map +1 -0
- package/build/cjs/sub-blocks/BackgroundCard/dynamic-form.d.ts +1 -1
- package/build/cjs/sub-blocks/BackgroundCard/dynamic-form.js.map +1 -1
- package/build/cjs/utils/form-generator.d.ts +1 -1
- package/build/cjs/utils/form-generator.js.map +1 -1
- package/build/esm/blocks/CardLayout/index.d.ts +1 -1
- package/build/esm/blocks/CardLayout/index.js.map +1 -1
- package/build/esm/blocks/ContentLayout/index.d.ts +1 -1
- package/build/esm/blocks/ExtendedFeatures/index.d.ts +1 -1
- package/build/esm/blocks/FilterBlock/index.d.ts +1 -1
- package/build/esm/blocks/Form/index.d.ts +1 -1
- package/build/esm/blocks/Header/dynamic-form.d.ts +1 -1
- package/build/esm/blocks/Header/dynamic-form.js.map +1 -1
- package/build/esm/blocks/Header/index.d.ts +1 -1
- package/build/esm/blocks/HeaderSlider/index.d.ts +1 -1
- package/build/esm/blocks/Icons/index.d.ts +1 -1
- package/build/esm/blocks/Info/index.d.ts +1 -1
- package/build/esm/blocks/Map/index.d.ts +1 -1
- package/build/esm/blocks/Media/index.d.ts +1 -1
- package/build/esm/blocks/PromoFeaturesBlock/index.d.ts +1 -1
- package/build/esm/blocks/Questions/index.d.ts +1 -1
- package/build/esm/blocks/Share/index.d.ts +1 -1
- package/build/esm/blocks/Slider/dynamic-form.d.ts +1 -1
- package/build/esm/blocks/Slider/dynamic-form.js.map +1 -1
- package/build/esm/blocks/Slider/index.d.ts +1 -1
- package/build/esm/blocks/Table/index.d.ts +1 -1
- package/build/esm/blocks/Tabs/index.d.ts +1 -1
- package/build/esm/blocks/TestEditorBlock/form.d.ts +1 -1
- package/build/esm/blocks/TestEditorBlock/form.js.map +1 -1
- package/build/esm/blocks/TestEditorBlock/index.d.ts +1 -1
- package/build/esm/common/store.d.ts +2 -1
- package/build/esm/common/store.js.map +1 -1
- package/build/esm/common/types/common.d.ts +1 -1
- package/build/esm/common/types/common.js.map +1 -1
- package/build/esm/common/types/index.d.ts +0 -1
- package/build/esm/common/types/index.js +0 -1
- package/build/esm/common/types/index.js.map +1 -1
- package/build/esm/components/Image/dynamic-form.d.ts +1 -1
- package/build/esm/components/Image/dynamic-form.js.map +1 -1
- package/build/esm/components/Title/TitleItem.d.ts +1 -1
- package/build/esm/constructor-items.d.ts +1 -1
- package/build/esm/constructor-items.js.map +1 -1
- package/build/esm/editor-v2/containers/BlockConfigForm/BlockConfigForm.js +2 -2
- package/build/esm/editor-v2/containers/BlockConfigForm/BlockConfigForm.js.map +1 -1
- package/build/esm/editor-v2/containers/GlobalConfig/GlobalConfig.js +2 -2
- package/build/esm/editor-v2/containers/GlobalConfig/GlobalConfig.js.map +1 -1
- package/build/esm/editor-v2/store.d.ts +1 -1
- package/build/esm/editor-v2/store.js.map +1 -1
- package/build/esm/form-builder/FormBuilder.d.ts +3 -0
- package/build/esm/form-builder/FormBuilder.js +8 -0
- package/build/esm/form-builder/FormBuilder.js.map +1 -0
- package/build/esm/form-builder/components/AddPropertyButton/AddPropertyButton.css +3 -0
- package/build/esm/{form-generator → form-builder}/components/AddPropertyButton/AddPropertyButton.d.ts +1 -1
- package/build/esm/{form-generator → form-builder}/components/AddPropertyButton/AddPropertyButton.js +2 -2
- package/build/esm/form-builder/components/AddPropertyButton/AddPropertyButton.js.map +1 -0
- package/build/esm/{form-generator → form-builder}/components/ArrayFieldRenderer/ArrayFieldRenderer.css +5 -5
- package/build/esm/{form-generator → form-builder}/components/ArrayFieldRenderer/ArrayFieldRenderer.d.ts +2 -2
- package/build/esm/{form-generator → form-builder}/components/ArrayFieldRenderer/ArrayFieldRenderer.js +2 -2
- package/build/esm/form-builder/components/ArrayFieldRenderer/ArrayFieldRenderer.js.map +1 -0
- package/build/{cjs/form-generator → esm/form-builder}/components/ConfigRow/ConfigRow.css +3 -3
- package/build/esm/{form-generator → form-builder}/components/ConfigRow/ConfigRow.js +2 -2
- package/build/esm/form-builder/components/ConfigRow/ConfigRow.js.map +1 -0
- package/build/esm/{form-generator → form-builder}/components/FieldCard/FieldCard.css +3 -3
- package/build/esm/{form-generator → form-builder}/components/FieldCard/FieldCard.d.ts +1 -1
- package/build/esm/{form-generator → form-builder}/components/FieldCard/FieldCard.js +2 -2
- package/build/esm/form-builder/components/FieldCard/FieldCard.js.map +1 -0
- package/build/{cjs/form-generator → esm/form-builder}/components/FieldHeader/FieldHeader.css +1 -1
- package/build/esm/{form-generator → form-builder}/components/FieldHeader/FieldHeader.js +2 -2
- package/build/esm/form-builder/components/FieldHeader/FieldHeader.js.map +1 -0
- package/build/{cjs/form-generator/components/FormBuilder/FormBuilder.css → esm/form-builder/components/FormBuilderBody/FormBuilderBody.css} +18 -18
- package/build/esm/form-builder/components/FormBuilderBody/FormBuilderBody.d.ts +7 -0
- package/build/esm/{form-generator/components/FormBuilder/FormBuilder.js → form-builder/components/FormBuilderBody/FormBuilderBody.js} +6 -7
- package/build/esm/form-builder/components/FormBuilderBody/FormBuilderBody.js.map +1 -0
- package/build/esm/{form-generator → form-builder}/components/ObjectFieldRenderer/ObjectFieldRenderer.css +1 -1
- package/build/esm/{form-generator → form-builder}/components/ObjectFieldRenderer/ObjectFieldRenderer.d.ts +2 -2
- package/build/esm/{form-generator → form-builder}/components/ObjectFieldRenderer/ObjectFieldRenderer.js +2 -2
- package/build/esm/form-builder/components/ObjectFieldRenderer/ObjectFieldRenderer.js.map +1 -0
- package/build/esm/{form-generator → form-builder}/components/OptionHeader/OptionHeader.css +1 -1
- package/build/esm/{form-generator → form-builder}/components/OptionHeader/OptionHeader.js +2 -2
- package/build/esm/form-builder/components/OptionHeader/OptionHeader.js.map +1 -0
- package/build/esm/{form-generator → form-builder}/components/OptionsRenderer/OptionsRenderer.css +6 -6
- package/build/esm/{form-generator → form-builder}/components/OptionsRenderer/OptionsRenderer.d.ts +2 -2
- package/build/esm/{form-generator → form-builder}/components/OptionsRenderer/OptionsRenderer.js +2 -2
- package/build/esm/form-builder/components/OptionsRenderer/OptionsRenderer.js.map +1 -0
- package/build/esm/form-builder/components/SectionHeader/SectionHeader.css +3 -0
- package/build/esm/{form-generator → form-builder}/components/SectionHeader/SectionHeader.js +2 -2
- package/build/esm/form-builder/components/SectionHeader/SectionHeader.js.map +1 -0
- package/build/esm/{form-generator → form-builder}/components/SelectFieldRenderer/SelectFieldRenderer.css +8 -8
- package/build/esm/{form-generator → form-builder}/components/SelectFieldRenderer/SelectFieldRenderer.d.ts +1 -1
- package/build/esm/{form-generator → form-builder}/components/SelectFieldRenderer/SelectFieldRenderer.js +2 -2
- package/build/esm/form-builder/components/SelectFieldRenderer/SelectFieldRenderer.js.map +1 -0
- package/build/esm/form-builder/hooks/FormContext.d.ts +11 -0
- package/build/esm/{form-generator → form-builder}/hooks/FormContext.js +2 -2
- package/build/esm/form-builder/hooks/FormContext.js.map +1 -0
- package/build/{cjs/form-generator → esm/form-builder}/hooks/useFormFields.d.ts +8 -3
- package/build/esm/{form-generator → form-builder}/hooks/useFormFields.js +66 -66
- package/build/esm/form-builder/hooks/useFormFields.js.map +1 -0
- package/build/esm/form-builder/index.d.ts +4 -0
- package/build/esm/form-builder/index.js +5 -0
- package/build/esm/form-builder/index.js.map +1 -0
- package/build/esm/form-builder/styles/variables.css +0 -0
- package/build/esm/{form-generator/hooks → form-builder}/types.d.ts +6 -1
- package/build/esm/form-builder/types.js.map +1 -0
- package/build/esm/form-builder/utils/cn.d.ts +2 -0
- package/build/esm/form-builder/utils/cn.js +4 -0
- package/build/esm/form-builder/utils/cn.js.map +1 -0
- package/build/esm/form-generator/FormGenerator.css +7 -0
- package/build/esm/form-generator/FormGenerator.d.ts +11 -0
- package/build/esm/{editor-v2/components/DynamicForm/DynamicForm.js → form-generator/FormGenerator.js} +16 -16
- package/build/esm/form-generator/FormGenerator.js.map +1 -0
- package/build/{cjs/editor-v2/components/DynamicForm → esm/form-generator/components}/FieldBase/FieldBase.css +19 -17
- package/build/esm/{editor-v2/components/DynamicForm → form-generator/components}/FieldBase/FieldBase.js +3 -3
- package/build/esm/form-generator/components/FieldBase/FieldBase.js.map +1 -0
- package/build/esm/form-generator/components/Fields/AnyOf/AnyOf.css +8 -0
- package/build/esm/{editor-v2/components/DynamicForm → form-generator/components}/Fields/AnyOf/AnyOf.d.ts +1 -1
- package/build/esm/{editor-v2/components/DynamicForm → form-generator/components}/Fields/AnyOf/AnyOf.js +3 -3
- package/build/esm/form-generator/components/Fields/AnyOf/AnyOf.js.map +1 -0
- package/build/esm/form-generator/components/Fields/Array/Array.css +40 -0
- package/build/esm/{editor-v2/components/DynamicForm → form-generator/components}/Fields/Array/Array.d.ts +1 -1
- package/build/esm/{editor-v2/components/DynamicForm → form-generator/components}/Fields/Array/Array.js +5 -5
- package/build/esm/form-generator/components/Fields/Array/Array.js.map +1 -0
- package/build/esm/{editor-v2/components/DynamicForm → form-generator/components}/Fields/Array/ItemButton/ItemButton.js +2 -2
- package/build/esm/form-generator/components/Fields/Array/ItemButton/ItemButton.js.map +1 -0
- package/build/esm/form-generator/components/Fields/Boolean/Boolean.css +5 -0
- package/build/esm/{editor-v2/components/DynamicForm → form-generator/components}/Fields/Boolean/Boolean.js +2 -2
- package/build/esm/form-generator/components/Fields/Boolean/Boolean.js.map +1 -0
- package/build/esm/{editor-v2/components/DynamicForm → form-generator/components}/Fields/Number/Number.js +2 -2
- package/build/esm/form-generator/components/Fields/Number/Number.js.map +1 -0
- package/build/{cjs/editor-v2/components/DynamicForm → esm/form-generator/components}/Fields/Object/Object.d.ts +1 -1
- package/build/esm/{editor-v2/components/DynamicForm → form-generator/components}/Fields/Object/Object.js +1 -1
- package/build/esm/form-generator/components/Fields/Object/Object.js.map +1 -0
- package/build/esm/form-generator/components/Fields/OneOf/OneOf.css +8 -0
- package/build/esm/{editor-v2/components/DynamicForm → form-generator/components}/Fields/OneOf/OneOf.d.ts +1 -1
- package/build/esm/{editor-v2/components/DynamicForm → form-generator/components}/Fields/OneOf/OneOf.js +3 -3
- package/build/esm/form-generator/components/Fields/OneOf/OneOf.js.map +1 -0
- package/build/esm/form-generator/components/Fields/Select/Select.css +5 -0
- package/build/esm/{editor-v2/components/DynamicForm → form-generator/components}/Fields/Select/Select.d.ts +1 -1
- package/build/esm/{editor-v2/components/DynamicForm → form-generator/components}/Fields/Select/Select.js +2 -2
- package/build/esm/form-generator/components/Fields/Select/Select.js.map +1 -0
- package/build/esm/{editor-v2/components/DynamicForm → form-generator/components}/Fields/Text/Text.js +2 -2
- package/build/esm/form-generator/components/Fields/Text/Text.js.map +1 -0
- package/build/esm/{editor-v2/components/DynamicForm → form-generator/components}/Fields/TextArea/TextArea.js +2 -2
- package/build/esm/form-generator/components/Fields/TextArea/TextArea.js.map +1 -0
- package/build/esm/form-generator/index.d.ts +2 -7
- package/build/esm/form-generator/index.js +2 -7
- package/build/esm/form-generator/index.js.map +1 -1
- package/build/esm/form-generator/styles/mixins.css +2 -0
- package/build/esm/{common/types/forms.d.ts → form-generator/types.d.ts} +1 -1
- package/build/esm/form-generator/types.js +2 -0
- package/build/esm/form-generator/types.js.map +1 -0
- package/build/esm/{editor-v2/components/DynamicForm/utils.d.ts → form-generator/utils/common.d.ts} +1 -1
- package/build/esm/{editor-v2/components/DynamicForm/utils.js → form-generator/utils/common.js} +1 -1
- package/build/esm/form-generator/utils/common.js.map +1 -0
- package/build/esm/sub-blocks/BackgroundCard/dynamic-form.d.ts +1 -1
- package/build/esm/sub-blocks/BackgroundCard/dynamic-form.js.map +1 -1
- package/build/esm/utils/form-generator.d.ts +1 -1
- package/build/esm/utils/form-generator.js.map +1 -1
- package/package.json +9 -1
- package/build/cjs/common/types/forms.js.map +0 -1
- package/build/cjs/editor-v2/components/DynamicForm/DynamicForm.css +0 -5
- package/build/cjs/editor-v2/components/DynamicForm/DynamicForm.d.ts +0 -10
- package/build/cjs/editor-v2/components/DynamicForm/DynamicForm.js.map +0 -1
- package/build/cjs/editor-v2/components/DynamicForm/FieldBase/FieldBase.js.map +0 -1
- package/build/cjs/editor-v2/components/DynamicForm/Fields/AnyOf/AnyOf.css +0 -6
- package/build/cjs/editor-v2/components/DynamicForm/Fields/AnyOf/AnyOf.js.map +0 -1
- package/build/cjs/editor-v2/components/DynamicForm/Fields/Array/Array.css +0 -38
- package/build/cjs/editor-v2/components/DynamicForm/Fields/Array/Array.js.map +0 -1
- package/build/cjs/editor-v2/components/DynamicForm/Fields/Array/ItemButton/ItemButton.js.map +0 -1
- package/build/cjs/editor-v2/components/DynamicForm/Fields/Boolean/Boolean.css +0 -3
- package/build/cjs/editor-v2/components/DynamicForm/Fields/Boolean/Boolean.js.map +0 -1
- package/build/cjs/editor-v2/components/DynamicForm/Fields/Number/Number.js.map +0 -1
- package/build/cjs/editor-v2/components/DynamicForm/Fields/Object/Object.js.map +0 -1
- package/build/cjs/editor-v2/components/DynamicForm/Fields/OneOf/OneOf.css +0 -6
- package/build/cjs/editor-v2/components/DynamicForm/Fields/OneOf/OneOf.js.map +0 -1
- package/build/cjs/editor-v2/components/DynamicForm/Fields/Select/Select.css +0 -3
- package/build/cjs/editor-v2/components/DynamicForm/Fields/Select/Select.js.map +0 -1
- package/build/cjs/editor-v2/components/DynamicForm/Fields/Text/Text.js.map +0 -1
- package/build/cjs/editor-v2/components/DynamicForm/Fields/TextArea/TextArea.js.map +0 -1
- package/build/cjs/editor-v2/components/DynamicForm/utils.js.map +0 -1
- package/build/cjs/form-generator/components/AddPropertyButton/AddPropertyButton.css +0 -3
- package/build/cjs/form-generator/components/AddPropertyButton/AddPropertyButton.js.map +0 -1
- package/build/cjs/form-generator/components/ArrayFieldRenderer/ArrayFieldRenderer.js.map +0 -1
- package/build/cjs/form-generator/components/ConfigRow/ConfigRow.js.map +0 -1
- package/build/cjs/form-generator/components/FieldCard/FieldCard.js.map +0 -1
- package/build/cjs/form-generator/components/FieldHeader/FieldHeader.js.map +0 -1
- package/build/cjs/form-generator/components/FormBuilder/FormBuilder.d.ts +0 -8
- package/build/cjs/form-generator/components/FormBuilder/FormBuilder.js.map +0 -1
- package/build/cjs/form-generator/components/ObjectFieldRenderer/ObjectFieldRenderer.js.map +0 -1
- package/build/cjs/form-generator/components/OptionHeader/OptionHeader.js.map +0 -1
- package/build/cjs/form-generator/components/OptionsRenderer/OptionsRenderer.js.map +0 -1
- package/build/cjs/form-generator/components/SectionHeader/SectionHeader.css +0 -3
- package/build/cjs/form-generator/components/SectionHeader/SectionHeader.js.map +0 -1
- package/build/cjs/form-generator/components/SelectFieldRenderer/SelectFieldRenderer.js.map +0 -1
- package/build/cjs/form-generator/hooks/FormContext.d.ts +0 -7
- package/build/cjs/form-generator/hooks/FormContext.js.map +0 -1
- package/build/cjs/form-generator/hooks/types.js.map +0 -1
- package/build/cjs/form-generator/hooks/useFormFields.js.map +0 -1
- package/build/esm/common/types/forms.js +0 -2
- package/build/esm/common/types/forms.js.map +0 -1
- package/build/esm/editor-v2/components/DynamicForm/DynamicForm.css +0 -5
- package/build/esm/editor-v2/components/DynamicForm/DynamicForm.d.ts +0 -11
- package/build/esm/editor-v2/components/DynamicForm/DynamicForm.js.map +0 -1
- package/build/esm/editor-v2/components/DynamicForm/FieldBase/FieldBase.js.map +0 -1
- package/build/esm/editor-v2/components/DynamicForm/Fields/AnyOf/AnyOf.css +0 -6
- package/build/esm/editor-v2/components/DynamicForm/Fields/AnyOf/AnyOf.js.map +0 -1
- package/build/esm/editor-v2/components/DynamicForm/Fields/Array/Array.css +0 -38
- package/build/esm/editor-v2/components/DynamicForm/Fields/Array/Array.js.map +0 -1
- package/build/esm/editor-v2/components/DynamicForm/Fields/Array/ItemButton/ItemButton.js.map +0 -1
- package/build/esm/editor-v2/components/DynamicForm/Fields/Boolean/Boolean.css +0 -3
- package/build/esm/editor-v2/components/DynamicForm/Fields/Boolean/Boolean.js.map +0 -1
- package/build/esm/editor-v2/components/DynamicForm/Fields/Number/Number.js.map +0 -1
- package/build/esm/editor-v2/components/DynamicForm/Fields/Object/Object.js.map +0 -1
- package/build/esm/editor-v2/components/DynamicForm/Fields/OneOf/OneOf.css +0 -6
- package/build/esm/editor-v2/components/DynamicForm/Fields/OneOf/OneOf.js.map +0 -1
- package/build/esm/editor-v2/components/DynamicForm/Fields/Select/Select.css +0 -3
- package/build/esm/editor-v2/components/DynamicForm/Fields/Select/Select.js.map +0 -1
- package/build/esm/editor-v2/components/DynamicForm/Fields/Text/Text.js.map +0 -1
- package/build/esm/editor-v2/components/DynamicForm/Fields/TextArea/TextArea.js.map +0 -1
- package/build/esm/editor-v2/components/DynamicForm/utils.js.map +0 -1
- package/build/esm/form-generator/components/AddPropertyButton/AddPropertyButton.css +0 -3
- package/build/esm/form-generator/components/AddPropertyButton/AddPropertyButton.js.map +0 -1
- package/build/esm/form-generator/components/ArrayFieldRenderer/ArrayFieldRenderer.js.map +0 -1
- package/build/esm/form-generator/components/ConfigRow/ConfigRow.js.map +0 -1
- package/build/esm/form-generator/components/FieldCard/FieldCard.js.map +0 -1
- package/build/esm/form-generator/components/FieldHeader/FieldHeader.js.map +0 -1
- package/build/esm/form-generator/components/FormBuilder/FormBuilder.d.ts +0 -9
- package/build/esm/form-generator/components/FormBuilder/FormBuilder.js.map +0 -1
- package/build/esm/form-generator/components/ObjectFieldRenderer/ObjectFieldRenderer.js.map +0 -1
- package/build/esm/form-generator/components/OptionHeader/OptionHeader.js.map +0 -1
- package/build/esm/form-generator/components/OptionsRenderer/OptionsRenderer.js.map +0 -1
- package/build/esm/form-generator/components/SectionHeader/SectionHeader.css +0 -3
- package/build/esm/form-generator/components/SectionHeader/SectionHeader.js.map +0 -1
- package/build/esm/form-generator/components/SelectFieldRenderer/SelectFieldRenderer.js.map +0 -1
- package/build/esm/form-generator/hooks/FormContext.d.ts +0 -7
- package/build/esm/form-generator/hooks/FormContext.js.map +0 -1
- package/build/esm/form-generator/hooks/types.js.map +0 -1
- package/build/esm/form-generator/hooks/useFormFields.js.map +0 -1
- /package/build/cjs/{form-generator → form-builder}/components/ConfigRow/ConfigRow.d.ts +0 -0
- /package/build/cjs/{form-generator → form-builder}/components/FieldHeader/FieldHeader.d.ts +0 -0
- /package/build/cjs/{form-generator → form-builder}/components/OptionHeader/OptionHeader.d.ts +0 -0
- /package/build/cjs/{form-generator → form-builder}/components/SectionHeader/SectionHeader.d.ts +0 -0
- /package/build/cjs/{form-generator/hooks → form-builder}/types.js +0 -0
- /package/build/cjs/{editor-v2/components/DynamicForm → form-generator/components}/FieldBase/FieldBase.d.ts +0 -0
- /package/build/cjs/{editor-v2/components/DynamicForm → form-generator/components}/Fields/Array/ItemButton/ItemButton.d.ts +0 -0
- /package/build/cjs/{editor-v2/components/DynamicForm → form-generator/components}/Fields/Boolean/Boolean.d.ts +0 -0
- /package/build/cjs/{editor-v2/components/DynamicForm → form-generator/components}/Fields/Number/Number.d.ts +0 -0
- /package/build/cjs/{editor-v2/components/DynamicForm → form-generator/components}/Fields/Text/Text.d.ts +0 -0
- /package/build/cjs/{editor-v2/components/DynamicForm → form-generator/components}/Fields/TextArea/TextArea.d.ts +0 -0
- /package/build/esm/{form-generator → form-builder}/components/ConfigRow/ConfigRow.d.ts +0 -0
- /package/build/esm/{form-generator → form-builder}/components/FieldHeader/FieldHeader.d.ts +0 -0
- /package/build/esm/{form-generator → form-builder}/components/OptionHeader/OptionHeader.d.ts +0 -0
- /package/build/esm/{form-generator → form-builder}/components/SectionHeader/SectionHeader.d.ts +0 -0
- /package/build/esm/{form-generator/hooks → form-builder}/types.js +0 -0
- /package/build/esm/{editor-v2/components/DynamicForm → form-generator/components}/FieldBase/FieldBase.d.ts +0 -0
- /package/build/esm/{editor-v2/components/DynamicForm → form-generator/components}/Fields/Array/ItemButton/ItemButton.d.ts +0 -0
- /package/build/esm/{editor-v2/components/DynamicForm → form-generator/components}/Fields/Boolean/Boolean.d.ts +0 -0
- /package/build/esm/{editor-v2/components/DynamicForm → form-generator/components}/Fields/Number/Number.d.ts +0 -0
- /package/build/esm/{editor-v2/components/DynamicForm → form-generator/components}/Fields/Text/Text.d.ts +0 -0
- /package/build/esm/{editor-v2/components/DynamicForm → form-generator/components}/Fields/TextArea/TextArea.d.ts +0 -0
package/build/esm/{form-generator → form-builder}/components/OptionsRenderer/OptionsRenderer.d.ts
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { ConfigInput } from "../../../
|
|
3
|
-
import { FormOptionsField, InputTypeMenuItem } from "../../
|
|
2
|
+
import { ConfigInput } from "../../../form-generator/index.js";
|
|
3
|
+
import { FormOptionsField, InputTypeMenuItem } from "../../types.js";
|
|
4
4
|
import './OptionsRenderer.css';
|
|
5
5
|
interface OptionsRendererProps {
|
|
6
6
|
field: FormOptionsField;
|
package/build/esm/{form-generator → form-builder}/components/OptionsRenderer/OptionsRenderer.js
RENAMED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { formBuilderCn } from "../../utils/cn.js";
|
|
3
3
|
import { Button } from '@gravity-ui/uikit';
|
|
4
4
|
import { AddPropertyButton } from "../AddPropertyButton/AddPropertyButton.js";
|
|
5
5
|
import { OptionHeader } from "../OptionHeader/OptionHeader.js";
|
|
6
6
|
import { SectionHeader } from "../SectionHeader/SectionHeader.js";
|
|
7
7
|
import { useFormContext } from "../../hooks/FormContext.js";
|
|
8
8
|
import './OptionsRenderer.css';
|
|
9
|
-
const b =
|
|
9
|
+
const b = formBuilderCn('options-renderer');
|
|
10
10
|
export const OptionsRenderer = ({ field, fieldName: _fieldName, inputTypeMenuItems, renderNestedField, }) => {
|
|
11
11
|
const { addOptionProperty, addOption, removeOption } = useFormContext();
|
|
12
12
|
return (_jsxs("div", { className: b('nested-fields'), children: [_jsxs("div", { className: b('header'), children: [_jsx(SectionHeader, { title: "Options:" }), _jsx(Button, { view: "normal", size: "s", onClick: () => {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OptionsRenderer.js","sourceRoot":"../../../../../src","sources":["form-builder/components/OptionsRenderer/OptionsRenderer.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,aAAa,EAAC,0BAAuB;AAC7C,OAAO,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AAEzC,OAAO,EAAC,iBAAiB,EAAC,kDAA+C;AACzE,OAAO,EAAC,YAAY,EAAC,wCAAqC;AAC1D,OAAO,EAAC,aAAa,EAAC,0CAAuC;AAC7D,OAAO,EAAC,cAAc,EAAC,mCAAgC;AAGvD,OAAO,uBAAuB,CAAC;AAE/B,MAAM,CAAC,GAAG,aAAa,CAAC,kBAAkB,CAAC,CAAC;AAc5C,MAAM,CAAC,MAAM,eAAe,GAAmC,CAAC,EAC5D,KAAK,EACL,SAAS,EAAE,UAAU,EACrB,kBAAkB,EAClB,iBAAiB,GACpB,EAAE,EAAE;IACD,MAAM,EAAC,iBAAiB,EAAE,SAAS,EAAE,YAAY,EAAC,GAAG,cAAc,EAAE,CAAC;IAEtE,OAAO,CACH,eAAK,SAAS,EAAE,CAAC,CAAC,eAAe,CAAC,aAC9B,eAAK,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,aACvB,KAAC,aAAa,IAAC,KAAK,EAAC,UAAU,GAAG,EAClC,KAAC,MAAM,IACH,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,GAAG,EACR,OAAO,EAAE,GAAG,EAAE;4BACV,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;wBACxB,CAAC,EACD,SAAS,EAAE,CAAC,CAAC,mBAAmB,CAAC,6BAG5B,IACP,EAEL,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,CACxC,eAAmC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,aACrD,eAAK,SAAS,EAAE,CAAC,CAAC,eAAe,CAAC,aAC9B,KAAC,YAAY,IAAC,KAAK,EAAE,MAAM,CAAC,KAAK,GAAI,EACpC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CACzB,KAAC,MAAM,IACH,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,GAAG,EAAE;oCACV,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;gCACxC,CAAC,EACD,SAAS,EAAE,CAAC,CAAC,sBAAsB,CAAC,uBAG/B,CACZ,IACC,EAEN,eAAK,SAAS,EAAE,CAAC,CAAC,eAAe,CAAC,aAC9B,KAAC,aAAa,IAAC,KAAK,EAAC,aAAa,EAAC,OAAO,EAAC,QAAQ,GAAG,EAErD,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,CAC3C,iBAAiB,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,WAAW,CAAC,CAChE,EAED,KAAC,iBAAiB,IACd,kBAAkB,EAAE,kBAAkB,EACtC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;oCACZ,iBAAiB,CAAC,KAAK,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;gCACnD,CAAC,GACH,IACA,KA9BA,UAAU,WAAW,EAAE,CA+B3B,CACT,CAAC,IACA,CACT,CAAC;AACN,CAAC,CAAC","sourcesContent":["import * as React from 'react';\nimport {formBuilderCn} from '../../utils/cn';\nimport {Button} from '@gravity-ui/uikit';\nimport {ConfigInput} from '../../../form-generator';\nimport {AddPropertyButton} from '../AddPropertyButton/AddPropertyButton';\nimport {OptionHeader} from '../OptionHeader/OptionHeader';\nimport {SectionHeader} from '../SectionHeader/SectionHeader';\nimport {useFormContext} from '../../hooks/FormContext';\nimport {FormOptionsField, InputTypeMenuItem} from '../../types';\n\nimport './OptionsRenderer.scss';\n\nconst b = formBuilderCn('options-renderer');\n\ninterface OptionsRendererProps {\n field: FormOptionsField;\n fieldName: string;\n inputTypeMenuItems: InputTypeMenuItem[];\n renderNestedField: (\n field: ConfigInput,\n index: number,\n parentId: string,\n optionIndex?: number,\n ) => React.ReactNode;\n}\n\nexport const OptionsRenderer: React.FC<OptionsRendererProps> = ({\n field,\n fieldName: _fieldName,\n inputTypeMenuItems,\n renderNestedField,\n}) => {\n const {addOptionProperty, addOption, removeOption} = useFormContext();\n\n return (\n <div className={b('nested-fields')}>\n <div className={b('header')}>\n <SectionHeader title=\"Options:\" />\n <Button\n view=\"normal\"\n size=\"s\"\n onClick={() => {\n addOption(field.id);\n }}\n className={b('add-option-button')}\n >\n + Add Option\n </Button>\n </div>\n\n {field.options.map((option, optionIndex) => (\n <div key={`option_${optionIndex}`} className={b('option')}>\n <div className={b('option-header')}>\n <OptionHeader title={option.title} />\n {field.options.length > 1 && (\n <Button\n view=\"normal\"\n size=\"xs\"\n onClick={() => {\n removeOption(field.id, optionIndex);\n }}\n className={b('remove-option-button')}\n >\n Remove\n </Button>\n )}\n </div>\n\n <div className={b('nested-fields')}>\n <SectionHeader title=\"Properties:\" variant=\"body-2\" />\n\n {option.properties.map((property, propIndex) =>\n renderNestedField(property, propIndex, field.id, optionIndex),\n )}\n\n <AddPropertyButton\n inputTypeMenuItems={inputTypeMenuItems}\n onAdd={(type) => {\n addOptionProperty(field.id, optionIndex, type);\n }}\n />\n </div>\n </div>\n ))}\n </div>\n );\n};\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { Text } from '@gravity-ui/uikit';
|
|
3
|
-
import {
|
|
3
|
+
import { formBuilderCn } from "../../utils/cn.js";
|
|
4
4
|
import './SectionHeader.css';
|
|
5
|
-
const b =
|
|
5
|
+
const b = formBuilderCn('section-header');
|
|
6
6
|
export const SectionHeader = ({ title, variant = 'body-1' }) => (_jsx("div", { className: b(), children: _jsx(Text, { variant: variant, children: title }) }));
|
|
7
7
|
//# sourceMappingURL=SectionHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SectionHeader.js","sourceRoot":"../../../../../src","sources":["form-builder/components/SectionHeader/SectionHeader.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,IAAI,EAAC,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAC,aAAa,EAAC,0BAAuB;AAE7C,OAAO,qBAAqB,CAAC;AAE7B,MAAM,CAAC,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC;AAO1C,MAAM,CAAC,MAAM,aAAa,GAAiC,CAAC,EAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,EAAC,EAAE,EAAE,CAAC,CACxF,cAAK,SAAS,EAAE,CAAC,EAAE,YACf,KAAC,IAAI,IAAC,OAAO,EAAE,OAAO,YAAG,KAAK,GAAQ,GACpC,CACT,CAAC","sourcesContent":["import * as React from 'react';\nimport {Text} from '@gravity-ui/uikit';\nimport {formBuilderCn} from '../../utils/cn';\n\nimport './SectionHeader.scss';\n\nconst b = formBuilderCn('section-header');\n\ninterface SectionHeaderProps {\n title: string;\n variant?: 'body-1' | 'body-2';\n}\n\nexport const SectionHeader: React.FC<SectionHeaderProps> = ({title, variant = 'body-1'}) => (\n <div className={b()}>\n <Text variant={variant}>{title}</Text>\n </div>\n);\n"]}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
.
|
|
1
|
+
.pcformbuilder-select-field-renderer__config-row {
|
|
2
2
|
display: flex;
|
|
3
3
|
align-items: center;
|
|
4
4
|
gap: 8px;
|
|
5
5
|
}
|
|
6
|
-
.
|
|
6
|
+
.pcformbuilder-select-field-renderer__config-row > span {
|
|
7
7
|
min-width: 90px;
|
|
8
8
|
font-weight: 500;
|
|
9
9
|
}
|
|
10
|
-
.
|
|
10
|
+
.pcformbuilder-select-field-renderer__config-row > div {
|
|
11
11
|
flex: 1;
|
|
12
12
|
}
|
|
13
|
-
.
|
|
13
|
+
.pcformbuilder-select-field-renderer__config-row_vertical {
|
|
14
14
|
flex-direction: column;
|
|
15
15
|
align-items: flex-start;
|
|
16
16
|
}
|
|
17
|
-
.
|
|
17
|
+
.pcformbuilder-select-field-renderer__options-title {
|
|
18
18
|
margin-bottom: 8px;
|
|
19
19
|
}
|
|
20
|
-
.
|
|
20
|
+
.pcformbuilder-select-field-renderer__enum-option {
|
|
21
21
|
margin-top: 8px;
|
|
22
22
|
padding: 12px;
|
|
23
23
|
background-color: var(--g-color-base-generic-ultralight);
|
|
@@ -27,10 +27,10 @@
|
|
|
27
27
|
flex-direction: column;
|
|
28
28
|
gap: 8px;
|
|
29
29
|
}
|
|
30
|
-
.
|
|
30
|
+
.pcformbuilder-select-field-renderer__remove-button {
|
|
31
31
|
align-self: flex-end;
|
|
32
32
|
margin-top: 4px;
|
|
33
33
|
}
|
|
34
|
-
.
|
|
34
|
+
.pcformbuilder-select-field-renderer__add-button {
|
|
35
35
|
margin-top: 8px;
|
|
36
36
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { Button, DropdownMenu, Text, TextInput } from '@gravity-ui/uikit';
|
|
4
|
-
import {
|
|
4
|
+
import { formBuilderCn } from "../../utils/cn.js";
|
|
5
5
|
import { useFormContext } from "../../hooks/FormContext.js";
|
|
6
6
|
import './SelectFieldRenderer.css';
|
|
7
|
-
const b =
|
|
7
|
+
const b = formBuilderCn('select-field-renderer');
|
|
8
8
|
export const SelectFieldRenderer = ({ field }) => {
|
|
9
9
|
const { updateField } = useFormContext();
|
|
10
10
|
if (field.type !== 'select') {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectFieldRenderer.js","sourceRoot":"../../../../../src","sources":["form-builder/components/SelectFieldRenderer/SelectFieldRenderer.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport {Button, DropdownMenu, Text, TextInput} from '@gravity-ui/uikit';\nimport {formBuilderCn} from '../../utils/cn';\nimport {FormField} from '../../types';\nimport {useFormContext} from '../../hooks/FormContext';\n\nimport './SelectFieldRenderer.scss';\n\nconst b = formBuilderCn('select-field-renderer');\n\ninterface SelectFieldRendererProps {\n field: FormField;\n}\n\ninterface SelectFieldOption {\n content: string;\n value: string;\n}\n\nexport const SelectFieldRenderer: React.FC<SelectFieldRendererProps> = ({field}) => {\n const {updateField} = useFormContext();\n\n if (field.type !== 'select') {\n return null;\n }\n\n const view = field.view as 'select' | 'radiobutton';\n const mode = field.mode as 'single' | 'multiple';\n const enumValues = (field.enum || []) as SelectFieldOption[];\n\n return (\n <React.Fragment>\n <div className={b('config-row')}>\n <Text variant=\"body-2\">View:</Text>\n <DropdownMenu\n items={[\n {\n action: () => updateField(field.id, {view: 'select'}),\n text: 'Select',\n },\n {\n action: () => updateField(field.id, {view: 'radiobutton'}),\n text: 'Radio Button',\n },\n ]}\n renderSwitcher={(props) => (\n <Button {...props} view=\"normal\" size=\"s\">\n {view === 'radiobutton' ? 'Radio Button' : 'Select'}\n </Button>\n )}\n />\n </div>\n\n <div className={b('config-row')}>\n <Text variant=\"body-2\">Mode:</Text>\n <DropdownMenu\n items={[\n {\n action: () => updateField(field.id, {mode: 'single'}),\n text: 'Single',\n },\n {\n action: () => updateField(field.id, {mode: 'multiple'}),\n text: 'Multiple',\n },\n ]}\n renderSwitcher={(props) => (\n <Button {...props} view=\"normal\" size=\"s\">\n {mode === 'multiple' ? 'Multiple' : 'Single'}\n </Button>\n )}\n />\n </div>\n\n <div className={b('config-row', {vertical: true})}>\n <Text variant=\"body-2\" className={b('options-title')}>\n Options:\n </Text>\n {enumValues.map((option, index) => (\n <div key={`enum_${index}`} className={b('enum-option')}>\n <div className={b('config-row')}>\n <Text variant=\"body-2\">Label:</Text>\n <TextInput\n value={option.content}\n onUpdate={(value) => {\n const newEnum = [...enumValues];\n newEnum[index] = {\n ...newEnum[index],\n content: value,\n };\n updateField(field.id, {enum: newEnum});\n }}\n size=\"s\"\n />\n </div>\n <div className={b('config-row')}>\n <Text variant=\"body-2\">Value:</Text>\n <TextInput\n value={option.value}\n onUpdate={(value) => {\n const newEnum = [...enumValues];\n newEnum[index] = {\n ...newEnum[index],\n value,\n };\n updateField(field.id, {enum: newEnum});\n }}\n size=\"s\"\n />\n </div>\n <Button\n view=\"flat-danger\"\n size=\"xs\"\n onClick={() => {\n const newEnum = [...enumValues];\n newEnum.splice(index, 1);\n updateField(field.id, {enum: newEnum});\n }}\n className={b('remove-button')}\n >\n Remove\n </Button>\n </div>\n ))}\n <Button\n view=\"normal\"\n size=\"s\"\n onClick={() => {\n const newEnum = [...(enumValues || [])];\n newEnum.push({\n content: `Option ${newEnum.length + 1}`,\n value: `option${newEnum.length + 1}`,\n });\n updateField(field.id, {enum: newEnum});\n }}\n className={b('add-button')}\n >\n + Add Option\n </Button>\n </div>\n </React.Fragment>\n );\n};\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { FormContextType, FormField } from "../types.js";
|
|
3
|
+
export declare const FormContext: React.Context<FormContextType>;
|
|
4
|
+
interface FormProviderProps {
|
|
5
|
+
children: React.ReactNode;
|
|
6
|
+
formFields: FormField[];
|
|
7
|
+
onChange?: (fields: FormField[]) => void;
|
|
8
|
+
}
|
|
9
|
+
export declare const FormProvider: React.FC<FormProviderProps>;
|
|
10
|
+
export declare const useFormContext: () => FormContextType;
|
|
11
|
+
export {};
|
|
@@ -2,8 +2,8 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { useFormFields } from "./useFormFields.js";
|
|
4
4
|
export const FormContext = React.createContext({});
|
|
5
|
-
export const FormProvider = ({ children }) => {
|
|
6
|
-
const formFieldsData = useFormFields();
|
|
5
|
+
export const FormProvider = ({ children, formFields, onChange }) => {
|
|
6
|
+
const formFieldsData = useFormFields({ initialFields: formFields, onChange });
|
|
7
7
|
return _jsx(FormContext.Provider, { value: formFieldsData, children: children });
|
|
8
8
|
};
|
|
9
9
|
export const useFormContext = () => {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormContext.js","sourceRoot":"../../../../src","sources":["form-builder/hooks/FormContext.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAC,aAAa,EAAC,2BAAwB;AAG9C,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAAkB,EAAqB,CAAC,CAAC;AAQvF,MAAM,CAAC,MAAM,YAAY,GAAgC,CAAC,EAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAC,EAAE,EAAE;IAC1F,MAAM,cAAc,GAAG,aAAa,CAAC,EAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAC,CAAC,CAAC;IAC5E,OAAO,KAAC,WAAW,CAAC,QAAQ,IAAC,KAAK,EAAE,cAAc,YAAG,QAAQ,GAAwB,CAAC;AAC1F,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE;IAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAE9C,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC","sourcesContent":["import * as React from 'react';\nimport {useFormFields} from './useFormFields';\nimport {FormContextType, FormField} from '../types';\n\nexport const FormContext = React.createContext<FormContextType>({} as FormContextType);\n\ninterface FormProviderProps {\n children: React.ReactNode;\n formFields: FormField[];\n onChange?: (fields: FormField[]) => void;\n}\n\nexport const FormProvider: React.FC<FormProviderProps> = ({children, formFields, onChange}) => {\n const formFieldsData = useFormFields({initialFields: formFields, onChange});\n return <FormContext.Provider value={formFieldsData}>{children}</FormContext.Provider>;\n};\n\nexport const useFormContext = () => {\n const context = React.useContext(FormContext);\n\n if (!context) {\n throw new Error('useFormContext must be used within a FormProvider');\n }\n\n return context;\n};\n"]}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
import { ConfigInput } from "../../
|
|
2
|
-
import { FormField } from "
|
|
3
|
-
|
|
1
|
+
import { ConfigInput } from "../../form-generator/index.js";
|
|
2
|
+
import { FormField } from "../types.js";
|
|
3
|
+
interface UseFormFieldsProps {
|
|
4
|
+
initialFields: FormField[];
|
|
5
|
+
onChange?: (fields: FormField[]) => void;
|
|
6
|
+
}
|
|
7
|
+
export declare const useFormFields: ({ initialFields, onChange }: UseFormFieldsProps) => {
|
|
4
8
|
formFields: FormField[];
|
|
5
9
|
createField: (type: ConfigInput["type"], name?: string) => FormField;
|
|
6
10
|
addField: (type: ConfigInput["type"]) => void;
|
|
@@ -16,3 +20,4 @@ export declare const useFormFields: () => {
|
|
|
16
20
|
removeOption: (fieldId: string, optionIndex: number) => void;
|
|
17
21
|
resetForm: () => void;
|
|
18
22
|
};
|
|
23
|
+
export {};
|
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
export const useFormFields = () => {
|
|
3
|
-
const [formFields, setFormFields] = React.useState(
|
|
4
|
-
const [nextId, setNextId] = React.useState(1);
|
|
5
|
-
const generateId = () => {
|
|
2
|
+
export const useFormFields = ({ initialFields, onChange }) => {
|
|
3
|
+
const [formFields, setFormFields] = React.useState(initialFields);
|
|
4
|
+
const [nextId, setNextId] = React.useState(initialFields.length + 1);
|
|
5
|
+
const generateId = React.useCallback(() => {
|
|
6
6
|
const id = `field_id_${nextId}`;
|
|
7
7
|
setNextId((prev) => prev + 1);
|
|
8
8
|
return id;
|
|
9
|
-
};
|
|
10
|
-
const generateName = () => {
|
|
9
|
+
}, [nextId]);
|
|
10
|
+
const generateName = React.useCallback(() => {
|
|
11
11
|
const name = `field_${nextId}`;
|
|
12
12
|
return name;
|
|
13
|
-
};
|
|
14
|
-
const
|
|
13
|
+
}, [nextId]);
|
|
14
|
+
const updateFormFields = React.useCallback((fields) => {
|
|
15
|
+
setFormFields(fields);
|
|
16
|
+
onChange?.(fields);
|
|
17
|
+
}, [onChange]);
|
|
18
|
+
const createField = React.useCallback((type, name = '') => {
|
|
15
19
|
const fieldName = name || generateName();
|
|
16
20
|
const fieldId = generateId();
|
|
17
21
|
let newField;
|
|
@@ -160,8 +164,8 @@ export const useFormFields = () => {
|
|
|
160
164
|
return createField('text', fieldName);
|
|
161
165
|
}
|
|
162
166
|
return newField;
|
|
163
|
-
};
|
|
164
|
-
const updateFieldById = (fields, fieldId, updates) => {
|
|
167
|
+
}, [generateId, generateName]);
|
|
168
|
+
const updateFieldById = React.useCallback((fields, fieldId, updates) => {
|
|
165
169
|
return fields.map((field) => {
|
|
166
170
|
if (field.id === fieldId) {
|
|
167
171
|
return { ...field, ...updates };
|
|
@@ -193,18 +197,18 @@ export const useFormFields = () => {
|
|
|
193
197
|
}
|
|
194
198
|
return field;
|
|
195
199
|
});
|
|
196
|
-
};
|
|
197
|
-
const addField = (type) => {
|
|
200
|
+
}, []);
|
|
201
|
+
const addField = React.useCallback((type) => {
|
|
198
202
|
const newField = createField(type);
|
|
199
|
-
|
|
200
|
-
};
|
|
201
|
-
const removeField = (fieldId) => {
|
|
202
|
-
|
|
203
|
-
};
|
|
204
|
-
const updateField = (fieldId, updates) => {
|
|
205
|
-
|
|
206
|
-
};
|
|
207
|
-
const addPropertyToObjectById = (fields, objectId, type = 'text') => {
|
|
203
|
+
updateFormFields([...formFields, newField]);
|
|
204
|
+
}, [createField, formFields, updateFormFields]);
|
|
205
|
+
const removeField = React.useCallback((fieldId) => {
|
|
206
|
+
updateFormFields(formFields.filter((field) => field.id !== fieldId));
|
|
207
|
+
}, [formFields, updateFormFields]);
|
|
208
|
+
const updateField = React.useCallback((fieldId, updates) => {
|
|
209
|
+
updateFormFields(updateFieldById(formFields, fieldId, updates));
|
|
210
|
+
}, [formFields, updateFieldById, updateFormFields]);
|
|
211
|
+
const addPropertyToObjectById = React.useCallback((fields, objectId, type = 'text') => {
|
|
208
212
|
return fields.map((field) => {
|
|
209
213
|
if (field.id === objectId && field.type === 'object') {
|
|
210
214
|
const objectField = field;
|
|
@@ -252,11 +256,11 @@ export const useFormFields = () => {
|
|
|
252
256
|
}
|
|
253
257
|
return field;
|
|
254
258
|
});
|
|
255
|
-
};
|
|
256
|
-
const addObjectProperty = (objectId, type = 'text') => {
|
|
257
|
-
|
|
258
|
-
};
|
|
259
|
-
const addOptionProperty = (fieldId, optionIndex, type = 'text') => {
|
|
259
|
+
}, [createField]);
|
|
260
|
+
const addObjectProperty = React.useCallback((objectId, type = 'text') => {
|
|
261
|
+
updateFormFields(addPropertyToObjectById(formFields, objectId, type));
|
|
262
|
+
}, [formFields, addPropertyToObjectById, updateFormFields]);
|
|
263
|
+
const addOptionProperty = React.useCallback((fieldId, optionIndex, type = 'text') => {
|
|
260
264
|
const addPropertyToOptionRecursive = (fields, targetFieldId, targetOptionIndex) => {
|
|
261
265
|
return fields.map((field) => {
|
|
262
266
|
if (field.id === targetFieldId &&
|
|
@@ -305,20 +309,18 @@ export const useFormFields = () => {
|
|
|
305
309
|
});
|
|
306
310
|
};
|
|
307
311
|
setFormFields((prev) => addPropertyToOptionRecursive(prev, fieldId, optionIndex));
|
|
308
|
-
};
|
|
309
|
-
const removeObjectProperty = (fieldId, propertyIndex) => {
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
};
|
|
321
|
-
const removeOptionProperty = (fieldId, optionIndex, propertyIndex) => {
|
|
312
|
+
}, [createField]);
|
|
313
|
+
const removeObjectProperty = React.useCallback((fieldId, propertyIndex) => {
|
|
314
|
+
updateFormFields(formFields.map((field) => {
|
|
315
|
+
if (field.id !== fieldId)
|
|
316
|
+
return field;
|
|
317
|
+
const updatedField = JSON.parse(JSON.stringify(field));
|
|
318
|
+
const objectInput = updatedField;
|
|
319
|
+
objectInput.properties.splice(propertyIndex, 1);
|
|
320
|
+
return updatedField;
|
|
321
|
+
}));
|
|
322
|
+
}, [formFields, updateFormFields]);
|
|
323
|
+
const removeOptionProperty = React.useCallback((fieldId, optionIndex, propertyIndex) => {
|
|
322
324
|
const removePropertyFromOptionRecursive = (fields, targetFieldId, targetOptionIndex, targetPropertyIndex) => {
|
|
323
325
|
return fields.map((field) => {
|
|
324
326
|
if (field.id === targetFieldId &&
|
|
@@ -367,23 +369,21 @@ export const useFormFields = () => {
|
|
|
367
369
|
});
|
|
368
370
|
};
|
|
369
371
|
setFormFields((prev) => removePropertyFromOptionRecursive(prev, fieldId, optionIndex, propertyIndex));
|
|
370
|
-
};
|
|
371
|
-
const updateObjectProperty = (fieldId, propertyIndex, updates) => {
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
objectInput.properties[propertyIndex]
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
};
|
|
386
|
-
const updateOptionProperty = (fieldId, optionIndex, propertyIndex, updates) => {
|
|
372
|
+
}, []);
|
|
373
|
+
const updateObjectProperty = React.useCallback((fieldId, propertyIndex, updates) => {
|
|
374
|
+
updateFormFields(formFields.map((field) => {
|
|
375
|
+
if (field.id !== fieldId)
|
|
376
|
+
return field;
|
|
377
|
+
const updatedField = JSON.parse(JSON.stringify(field));
|
|
378
|
+
const objectInput = updatedField;
|
|
379
|
+
objectInput.properties[propertyIndex] = {
|
|
380
|
+
...objectInput.properties[propertyIndex],
|
|
381
|
+
...updates,
|
|
382
|
+
};
|
|
383
|
+
return updatedField;
|
|
384
|
+
}));
|
|
385
|
+
}, [formFields, updateFormFields]);
|
|
386
|
+
const updateOptionProperty = React.useCallback((fieldId, optionIndex, propertyIndex, updates) => {
|
|
387
387
|
const updatePropertyInOptionRecursive = (fields, targetFieldId, targetOptionIndex, targetPropertyIndex, propertyUpdates) => {
|
|
388
388
|
return fields.map((field) => {
|
|
389
389
|
if (field.id === targetFieldId &&
|
|
@@ -435,8 +435,8 @@ export const useFormFields = () => {
|
|
|
435
435
|
});
|
|
436
436
|
};
|
|
437
437
|
setFormFields((prev) => updatePropertyInOptionRecursive(prev, fieldId, optionIndex, propertyIndex, updates));
|
|
438
|
-
};
|
|
439
|
-
const addOption = (fieldId) => {
|
|
438
|
+
}, []);
|
|
439
|
+
const addOption = React.useCallback((fieldId) => {
|
|
440
440
|
const addOptionRecursive = (fields, targetFieldId) => {
|
|
441
441
|
return fields.map((field) => {
|
|
442
442
|
if (field.id === targetFieldId &&
|
|
@@ -492,8 +492,8 @@ export const useFormFields = () => {
|
|
|
492
492
|
});
|
|
493
493
|
};
|
|
494
494
|
setFormFields((prev) => addOptionRecursive(prev, fieldId));
|
|
495
|
-
};
|
|
496
|
-
const removeOption = (fieldId, optionIndex) => {
|
|
495
|
+
}, [generateId]);
|
|
496
|
+
const removeOption = React.useCallback((fieldId, optionIndex) => {
|
|
497
497
|
const removeOptionRecursive = (fields, targetFieldId, targetOptionIndex) => {
|
|
498
498
|
return fields.map((field) => {
|
|
499
499
|
if (field.id === targetFieldId &&
|
|
@@ -540,11 +540,11 @@ export const useFormFields = () => {
|
|
|
540
540
|
return field;
|
|
541
541
|
});
|
|
542
542
|
};
|
|
543
|
-
|
|
544
|
-
};
|
|
545
|
-
const resetForm = () => {
|
|
546
|
-
|
|
547
|
-
};
|
|
543
|
+
updateFormFields(removeOptionRecursive(formFields, fieldId, optionIndex));
|
|
544
|
+
}, [formFields, updateFormFields]);
|
|
545
|
+
const resetForm = React.useCallback(() => {
|
|
546
|
+
updateFormFields([]);
|
|
547
|
+
}, [updateFormFields]);
|
|
548
548
|
return {
|
|
549
549
|
formFields,
|
|
550
550
|
createField,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFormFields.js","sourceRoot":"../../../../src","sources":["form-builder/hooks/useFormFields.ts"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport {AnyOfInput, ConfigInput, ObjectInput, OneOfInput} from '../../form-generator';\nimport {FormArrayField, FormField} from '../types';\n\ninterface UseFormFieldsProps {\n initialFields: FormField[];\n onChange?: (fields: FormField[]) => void;\n}\n\nexport const useFormFields = ({initialFields, onChange}: UseFormFieldsProps) => {\n const [formFields, setFormFields] = React.useState<FormField[]>(initialFields);\n\n const [nextId, setNextId] = React.useState<number>(initialFields.length + 1);\n\n const generateId = React.useCallback(() => {\n const id = `field_id_${nextId}`;\n setNextId((prev) => prev + 1);\n return id;\n }, [nextId]);\n\n const generateName = React.useCallback(() => {\n const name = `field_${nextId}`;\n return name;\n }, [nextId]);\n\n const updateFormFields = React.useCallback(\n (fields: FormField[]) => {\n setFormFields(fields);\n onChange?.(fields);\n },\n [onChange],\n );\n\n const createField = React.useCallback(\n (type: ConfigInput['type'], name = ''): FormField => {\n const fieldName = name || generateName();\n const fieldId = generateId();\n let newField: FormField;\n\n switch (type) {\n case 'text':\n newField = {\n type: 'text',\n name: fieldName,\n title: 'Text Input',\n id: fieldId,\n } as FormField;\n break;\n case 'number':\n newField = {\n type: 'number',\n name: fieldName,\n title: 'Number Input',\n id: fieldId,\n } as FormField;\n break;\n case 'boolean':\n newField = {\n type: 'boolean',\n name: fieldName,\n title: 'Boolean Input',\n id: fieldId,\n } as FormField;\n break;\n case 'textarea':\n newField = {\n type: 'textarea',\n name: fieldName,\n title: 'Textarea Input',\n id: fieldId,\n } as FormField;\n break;\n case 'select':\n newField = {\n type: 'select',\n name: fieldName,\n title: 'Select Input',\n view: 'select',\n mode: 'single',\n enum: [\n {content: 'Option 1', value: 'option1'},\n {content: 'Option 2', value: 'option2'},\n ],\n id: fieldId,\n } as FormField;\n break;\n case 'object':\n newField = {\n type: 'object',\n name: fieldName,\n title: 'Object Input',\n properties: [\n {\n type: 'text',\n name: 'property1',\n title: 'Property 1',\n id: generateId(),\n } as FormField,\n ],\n id: fieldId,\n } as FormField;\n break;\n case 'array':\n newField = {\n type: 'array',\n name: fieldName,\n title: 'Array Input',\n buttonText: 'Add Item',\n arrayType: 'text',\n id: fieldId,\n } as FormField;\n break;\n case 'oneOf':\n newField = {\n type: 'oneOf',\n name: fieldName,\n title: 'OneOf Input',\n options: [\n {\n title: 'Option A',\n value: 'optionA',\n properties: [\n {\n type: 'text',\n name: 'textField',\n title: 'Text Field',\n id: generateId(),\n } as FormField,\n ],\n },\n {\n title: 'Option B',\n value: 'optionB',\n properties: [\n {\n type: 'number',\n name: 'numberField',\n title: 'Number Field',\n id: generateId(),\n } as FormField,\n ],\n },\n ],\n id: fieldId,\n } as FormField;\n break;\n case 'anyOf':\n newField = {\n type: 'anyOf',\n name: fieldName,\n title: 'AnyOf Input',\n options: [\n {\n title: 'Option A',\n value: 'optionA',\n properties: [\n {\n type: 'text',\n name: 'textField',\n title: 'Text Field',\n id: generateId(),\n } as FormField,\n ],\n },\n {\n title: 'Option B',\n value: 'optionB',\n properties: [\n {\n type: 'boolean',\n name: 'booleanField',\n title: 'Boolean Field',\n id: generateId(),\n } as FormField,\n ],\n },\n ],\n id: fieldId,\n } as FormField;\n break;\n default:\n return createField('text', fieldName);\n }\n\n return newField;\n },\n [generateId, generateName],\n );\n\n const updateFieldById = React.useCallback(\n (fields: FormField[], fieldId: string, updates: Partial<ConfigInput>): FormField[] => {\n return fields.map((field) => {\n if (field.id === fieldId) {\n return {...field, ...updates} as FormField;\n }\n\n if (field.type === 'object' && (field as ObjectInput).properties) {\n const objectField = field as ObjectInput;\n return {\n ...field,\n properties: updateFieldById(\n objectField.properties as FormField[],\n fieldId,\n updates,\n ),\n } as FormField;\n }\n\n if (\n (field.type === 'oneOf' || field.type === 'anyOf') &&\n (field as OneOfInput | AnyOfInput).options\n ) {\n const optionsField = field as OneOfInput | AnyOfInput;\n return {\n ...field,\n options: optionsField.options.map((option) => ({\n ...option,\n properties: updateFieldById(\n option.properties as FormField[],\n fieldId,\n updates,\n ),\n })),\n } as FormField;\n }\n\n if (field.type === 'array' && field.arrayType === 'object') {\n const arrayField = field as FormArrayField;\n return {\n ...field,\n properties: updateFieldById(\n arrayField.properties as FormField[],\n fieldId,\n updates,\n ),\n } as FormField;\n }\n\n return field;\n });\n },\n [],\n );\n\n const addField = React.useCallback(\n (type: ConfigInput['type']) => {\n const newField = createField(type);\n updateFormFields([...formFields, newField]);\n },\n [createField, formFields, updateFormFields],\n );\n\n const removeField = React.useCallback(\n (fieldId: string) => {\n updateFormFields(formFields.filter((field) => field.id !== fieldId));\n },\n [formFields, updateFormFields],\n );\n\n const updateField = React.useCallback(\n (fieldId: string, updates: Partial<ConfigInput>) => {\n updateFormFields(updateFieldById(formFields, fieldId, updates));\n },\n [formFields, updateFieldById, updateFormFields],\n );\n\n const addPropertyToObjectById = React.useCallback(\n (\n fields: FormField[],\n objectId: string,\n type: ConfigInput['type'] = 'text',\n ): FormField[] => {\n return fields.map((field) => {\n if (field.id === objectId && field.type === 'object') {\n const objectField = field as ObjectInput;\n const propertyName = `property${(objectField.properties?.length || 0) + 1}`;\n const newProperty = createField(type, propertyName);\n\n return {\n ...field,\n properties: [...(objectField.properties || []), newProperty],\n } as FormField;\n }\n\n if (field.type === 'object' && (field as ObjectInput).properties) {\n const objectField = field as ObjectInput;\n return {\n ...field,\n properties: addPropertyToObjectById(\n objectField.properties as FormField[],\n objectId,\n type,\n ),\n } as FormField;\n }\n\n if (\n (field.type === 'oneOf' || field.type === 'anyOf') &&\n (field as OneOfInput | AnyOfInput).options\n ) {\n const optionsField = field as OneOfInput | AnyOfInput;\n return {\n ...field,\n options: optionsField.options.map((option) => ({\n ...option,\n properties: addPropertyToObjectById(\n option.properties as FormField[],\n objectId,\n type,\n ),\n })),\n } as FormField;\n }\n\n if (field.type === 'array' && field.arrayType === 'object') {\n const arrayField = field as FormArrayField;\n\n if (field.id === objectId) {\n const propertyName = `property${(arrayField.properties?.length || 0) + 1}`;\n const newProperty = createField(type, propertyName);\n\n return {\n ...field,\n properties: [...(arrayField.properties || []), newProperty],\n } as FormField;\n }\n\n if (arrayField.properties && arrayField.properties.length > 0) {\n return {\n ...field,\n properties: addPropertyToObjectById(\n arrayField.properties,\n objectId,\n type,\n ),\n } as FormField;\n }\n }\n\n return field;\n });\n },\n [createField],\n );\n\n const addObjectProperty = React.useCallback(\n (objectId: string, type: ConfigInput['type'] = 'text') => {\n updateFormFields(addPropertyToObjectById(formFields, objectId, type));\n },\n [formFields, addPropertyToObjectById, updateFormFields],\n );\n\n const addOptionProperty = React.useCallback(\n (fieldId: string, optionIndex: number, type: ConfigInput['type'] = 'text') => {\n const addPropertyToOptionRecursive = (\n fields: FormField[],\n targetFieldId: string,\n targetOptionIndex: number,\n ): FormField[] => {\n return fields.map((field) => {\n if (\n field.id === targetFieldId &&\n (field.type === 'oneOf' || field.type === 'anyOf')\n ) {\n const updatedField = JSON.parse(JSON.stringify(field));\n const options = updatedField.options;\n\n if (\n options &&\n Array.isArray(options) &&\n targetOptionIndex >= 0 &&\n targetOptionIndex < options.length &&\n options[targetOptionIndex].properties\n ) {\n const propertyName = `property${options[targetOptionIndex].properties.length + 1}`;\n const newProperty = createField(type, propertyName);\n\n options[targetOptionIndex].properties.push(newProperty);\n }\n\n return updatedField;\n }\n\n if (field.type === 'object' && (field as ObjectInput).properties) {\n const objectField = field as ObjectInput;\n return {\n ...field,\n properties: addPropertyToOptionRecursive(\n objectField.properties as FormField[],\n targetFieldId,\n targetOptionIndex,\n ),\n } as FormField;\n }\n\n if (\n (field.type === 'oneOf' || field.type === 'anyOf') &&\n (field as OneOfInput | AnyOfInput).options\n ) {\n const optionsField = field as OneOfInput | AnyOfInput;\n return {\n ...field,\n options: optionsField.options.map((option) => ({\n ...option,\n properties: addPropertyToOptionRecursive(\n option.properties as FormField[],\n targetFieldId,\n targetOptionIndex,\n ),\n })),\n } as FormField;\n }\n\n if (\n field.type === 'array' &&\n field.arrayType === 'object' &&\n (field as FormArrayField).properties\n ) {\n const arrayField = field as FormArrayField;\n return {\n ...field,\n properties: addPropertyToOptionRecursive(\n arrayField.properties as FormField[],\n targetFieldId,\n targetOptionIndex,\n ),\n } as FormField;\n }\n\n return field;\n });\n };\n\n setFormFields((prev) => addPropertyToOptionRecursive(prev, fieldId, optionIndex));\n },\n [createField],\n );\n\n const removeObjectProperty = React.useCallback(\n (fieldId: string, propertyIndex: number) => {\n updateFormFields(\n formFields.map((field) => {\n if (field.id !== fieldId) return field;\n\n const updatedField = JSON.parse(JSON.stringify(field));\n const objectInput = updatedField as ObjectInput;\n\n objectInput.properties.splice(propertyIndex, 1);\n\n return updatedField;\n }) as FormField[],\n );\n },\n [formFields, updateFormFields],\n );\n\n const removeOptionProperty = React.useCallback(\n (fieldId: string, optionIndex: number, propertyIndex: number) => {\n const removePropertyFromOptionRecursive = (\n fields: FormField[],\n targetFieldId: string,\n targetOptionIndex: number,\n targetPropertyIndex: number,\n ): FormField[] => {\n return fields.map((field) => {\n if (\n field.id === targetFieldId &&\n (field.type === 'oneOf' || field.type === 'anyOf')\n ) {\n const updatedField = JSON.parse(JSON.stringify(field));\n const options = updatedField.options;\n\n if (\n options &&\n Array.isArray(options) &&\n targetOptionIndex >= 0 &&\n targetOptionIndex < options.length &&\n options[targetOptionIndex].properties &&\n targetPropertyIndex >= 0 &&\n targetPropertyIndex < options[targetOptionIndex].properties.length\n ) {\n options[targetOptionIndex].properties.splice(targetPropertyIndex, 1);\n }\n\n return updatedField;\n }\n\n if (field.type === 'object' && (field as ObjectInput).properties) {\n const objectField = field as ObjectInput;\n return {\n ...field,\n properties: removePropertyFromOptionRecursive(\n objectField.properties as FormField[],\n targetFieldId,\n targetOptionIndex,\n targetPropertyIndex,\n ),\n } as FormField;\n }\n\n if (\n (field.type === 'oneOf' || field.type === 'anyOf') &&\n (field as OneOfInput | AnyOfInput).options\n ) {\n const optionsField = field as OneOfInput | AnyOfInput;\n return {\n ...field,\n options: optionsField.options.map((option) => ({\n ...option,\n properties: removePropertyFromOptionRecursive(\n option.properties as FormField[],\n targetFieldId,\n targetOptionIndex,\n targetPropertyIndex,\n ),\n })),\n } as FormField;\n }\n\n if (\n field.type === 'array' &&\n field.arrayType === 'object' &&\n (field as FormArrayField).properties\n ) {\n const arrayField = field as FormArrayField;\n return {\n ...field,\n properties: removePropertyFromOptionRecursive(\n arrayField.properties as FormField[],\n targetFieldId,\n targetOptionIndex,\n targetPropertyIndex,\n ),\n } as FormField;\n }\n\n return field;\n });\n };\n\n setFormFields((prev) =>\n removePropertyFromOptionRecursive(prev, fieldId, optionIndex, propertyIndex),\n );\n },\n [],\n );\n\n const updateObjectProperty = React.useCallback(\n (fieldId: string, propertyIndex: number, updates: Partial<ConfigInput>) => {\n updateFormFields(\n formFields.map((field) => {\n if (field.id !== fieldId) return field;\n\n const updatedField = JSON.parse(JSON.stringify(field));\n const objectInput = updatedField as ObjectInput;\n\n objectInput.properties[propertyIndex] = {\n ...objectInput.properties[propertyIndex],\n ...updates,\n } as ConfigInput;\n\n return updatedField;\n }) as FormField[],\n );\n },\n [formFields, updateFormFields],\n );\n\n const updateOptionProperty = React.useCallback(\n (\n fieldId: string,\n optionIndex: number,\n propertyIndex: number,\n updates: Partial<ConfigInput>,\n ) => {\n const updatePropertyInOptionRecursive = (\n fields: FormField[],\n targetFieldId: string,\n targetOptionIndex: number,\n targetPropertyIndex: number,\n propertyUpdates: Partial<ConfigInput>,\n ): FormField[] => {\n return fields.map((field) => {\n if (\n field.id === targetFieldId &&\n (field.type === 'oneOf' || field.type === 'anyOf')\n ) {\n const updatedField = JSON.parse(JSON.stringify(field));\n const options = updatedField.options;\n\n if (\n options &&\n Array.isArray(options) &&\n targetOptionIndex >= 0 &&\n targetOptionIndex < options.length &&\n options[targetOptionIndex].properties &&\n targetPropertyIndex >= 0 &&\n targetPropertyIndex < options[targetOptionIndex].properties.length\n ) {\n options[targetOptionIndex].properties[targetPropertyIndex] = {\n ...options[targetOptionIndex].properties[targetPropertyIndex],\n ...propertyUpdates,\n } as ConfigInput;\n }\n\n return updatedField;\n }\n\n if (field.type === 'object' && (field as ObjectInput).properties) {\n const objectField = field as ObjectInput;\n return {\n ...field,\n properties: updatePropertyInOptionRecursive(\n objectField.properties as FormField[],\n targetFieldId,\n targetOptionIndex,\n targetPropertyIndex,\n propertyUpdates,\n ),\n } as FormField;\n }\n\n if (\n (field.type === 'oneOf' || field.type === 'anyOf') &&\n (field as OneOfInput | AnyOfInput).options\n ) {\n const optionsField = field as OneOfInput | AnyOfInput;\n return {\n ...field,\n options: optionsField.options.map((option) => ({\n ...option,\n properties: updatePropertyInOptionRecursive(\n option.properties as FormField[],\n targetFieldId,\n targetOptionIndex,\n targetPropertyIndex,\n propertyUpdates,\n ),\n })),\n } as FormField;\n }\n\n if (\n field.type === 'array' &&\n field.arrayType === 'object' &&\n (field as FormArrayField).properties\n ) {\n const arrayField = field as FormArrayField;\n return {\n ...field,\n properties: updatePropertyInOptionRecursive(\n arrayField.properties as FormField[],\n targetFieldId,\n targetOptionIndex,\n targetPropertyIndex,\n propertyUpdates,\n ),\n } as FormField;\n }\n\n return field;\n });\n };\n\n setFormFields((prev) =>\n updatePropertyInOptionRecursive(prev, fieldId, optionIndex, propertyIndex, updates),\n );\n },\n [],\n );\n\n const addOption = React.useCallback(\n (fieldId: string) => {\n const addOptionRecursive = (\n fields: FormField[],\n targetFieldId: string,\n ): FormField[] => {\n return fields.map((field) => {\n if (\n field.id === targetFieldId &&\n (field.type === 'oneOf' || field.type === 'anyOf')\n ) {\n const updatedField = JSON.parse(JSON.stringify(field));\n const options = updatedField.options;\n\n if (options && Array.isArray(options)) {\n const optionLetter = String.fromCharCode(65 + options.length);\n const newOption = {\n title: `Option ${optionLetter}`,\n value: `option${optionLetter.toLowerCase()}`,\n properties: [\n {\n type: 'text',\n name: 'textField',\n title: 'Text Field',\n id: generateId(),\n } as FormField,\n ],\n };\n\n options.push(newOption);\n }\n\n return updatedField;\n }\n\n if (field.type === 'object' && (field as ObjectInput).properties) {\n const objectField = field as ObjectInput;\n return {\n ...field,\n properties: addOptionRecursive(\n objectField.properties as FormField[],\n targetFieldId,\n ),\n } as FormField;\n }\n\n if (\n (field.type === 'oneOf' || field.type === 'anyOf') &&\n (field as OneOfInput | AnyOfInput).options\n ) {\n const optionsField = field as OneOfInput | AnyOfInput;\n return {\n ...field,\n options: optionsField.options.map((option) => ({\n ...option,\n properties: addOptionRecursive(\n option.properties as FormField[],\n targetFieldId,\n ),\n })),\n } as FormField;\n }\n\n if (\n field.type === 'array' &&\n field.arrayType === 'object' &&\n (field as FormArrayField).properties\n ) {\n const arrayField = field as FormArrayField;\n return {\n ...field,\n properties: addOptionRecursive(\n arrayField.properties as FormField[],\n targetFieldId,\n ),\n } as FormField;\n }\n\n return field;\n });\n };\n\n setFormFields((prev) => addOptionRecursive(prev, fieldId));\n },\n [generateId],\n );\n\n const removeOption = React.useCallback(\n (fieldId: string, optionIndex: number) => {\n const removeOptionRecursive = (\n fields: FormField[],\n targetFieldId: string,\n targetOptionIndex: number,\n ): FormField[] => {\n return fields.map((field) => {\n if (\n field.id === targetFieldId &&\n (field.type === 'oneOf' || field.type === 'anyOf')\n ) {\n const updatedField = JSON.parse(JSON.stringify(field));\n const options = updatedField.options;\n\n if (\n options &&\n Array.isArray(options) &&\n targetOptionIndex >= 0 &&\n targetOptionIndex < options.length\n ) {\n if (options.length > 1) {\n options.splice(targetOptionIndex, 1);\n }\n }\n\n return updatedField;\n }\n\n if (field.type === 'object' && (field as ObjectInput).properties) {\n const objectField = field as ObjectInput;\n return {\n ...field,\n properties: removeOptionRecursive(\n objectField.properties as FormField[],\n targetFieldId,\n targetOptionIndex,\n ),\n } as FormField;\n }\n\n if (\n (field.type === 'oneOf' || field.type === 'anyOf') &&\n (field as OneOfInput | AnyOfInput).options\n ) {\n const optionsField = field as OneOfInput | AnyOfInput;\n return {\n ...field,\n options: optionsField.options.map((option) => ({\n ...option,\n properties: removeOptionRecursive(\n option.properties as FormField[],\n targetFieldId,\n targetOptionIndex,\n ),\n })),\n } as FormField;\n }\n\n if (\n field.type === 'array' &&\n field.arrayType === 'object' &&\n (field as FormArrayField).properties\n ) {\n const arrayField = field as FormArrayField;\n return {\n ...field,\n properties: removeOptionRecursive(\n arrayField.properties as FormField[],\n targetFieldId,\n targetOptionIndex,\n ),\n } as FormField;\n }\n\n return field;\n });\n };\n\n updateFormFields(removeOptionRecursive(formFields, fieldId, optionIndex));\n },\n [formFields, updateFormFields],\n );\n\n const resetForm = React.useCallback(() => {\n updateFormFields([]);\n }, [updateFormFields]);\n\n return {\n formFields,\n createField,\n addField,\n removeField,\n updateField,\n addObjectProperty,\n addOptionProperty,\n removeObjectProperty,\n removeOptionProperty,\n updateObjectProperty,\n updateOptionProperty,\n addOption,\n removeOption,\n resetForm,\n };\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"../../../src","sources":["form-builder/index.ts"],"names":[],"mappings":"AAAA,iCAA8B;AAC9B,uCAAoC;AACpC,yCAAsC;AACtC,2BAAwB","sourcesContent":["export * from './FormBuilder';\nexport * from './hooks/FormContext';\nexport * from './hooks/useFormFields';\nexport * from './types';\n"]}
|
|
File without changes
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AnyOfInput, ArrayObjectInput, ArrayTextInput, ConfigInput, ObjectInput, OneOfInput } from "
|
|
1
|
+
import { AnyOfInput, ArrayObjectInput, ArrayTextInput, ConfigInput, ObjectInput, OneOfInput } from "../form-generator/index.js";
|
|
2
2
|
export type FormField = ConfigInput & {
|
|
3
3
|
id: string;
|
|
4
4
|
};
|
|
@@ -46,3 +46,8 @@ export interface FormData {
|
|
|
46
46
|
}
|
|
47
47
|
export interface FormContextType extends FormData, FormFieldsActions {
|
|
48
48
|
}
|
|
49
|
+
export interface FormBuilderProps {
|
|
50
|
+
className?: string;
|
|
51
|
+
formFields: Array<FormField>;
|
|
52
|
+
onChange?: (fields: FormField[]) => void;
|
|
53
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"../../../src","sources":["form-builder/types.ts"],"names":[],"mappings":"","sourcesContent":["import {\n AnyOfInput,\n ArrayObjectInput,\n ArrayTextInput,\n ConfigInput,\n ObjectInput,\n OneOfInput,\n} from '../form-generator';\n\nexport type FormField = ConfigInput & {id: string};\n\nexport type FormObjectField = ObjectInput & {id: string};\nexport type FormArrayField = (ArrayTextInput | ArrayObjectInput) & {\n id: string;\n properties?: FormField[];\n};\nexport type FormOneOfField = OneOfInput & {id: string};\nexport type FormAnyOfField = AnyOfInput & {id: string};\nexport type FormOptionsField = (OneOfInput | AnyOfInput) & {id: string};\n\nexport interface InputTypeMenuItem {\n action: () => void;\n text: string;\n type: string;\n}\n\nexport interface ContentConfig {\n [key: string]: unknown;\n}\n\nexport interface FormFieldsActions {\n createField: (type: ConfigInput['type'], name?: string) => FormField;\n addField: (type: ConfigInput['type']) => void;\n removeField: (fieldId: string) => void;\n updateField: (fieldId: string, updates: Partial<ConfigInput>) => void;\n\n addObjectProperty: (objectId: string, type: ConfigInput['type']) => void;\n removeObjectProperty: (fieldId: string, propertyIndex: number) => void;\n updateObjectProperty: (\n fieldId: string,\n propertyIndex: number,\n updates: Partial<ConfigInput>,\n ) => void;\n\n addOption: (fieldId: string) => void;\n removeOption: (fieldId: string, optionIndex: number) => void;\n addOptionProperty: (fieldId: string, optionIndex: number, type?: ConfigInput['type']) => void;\n removeOptionProperty: (fieldId: string, optionIndex: number, propertyIndex: number) => void;\n updateOptionProperty: (\n fieldId: string,\n optionIndex: number,\n propertyIndex: number,\n updates: Partial<ConfigInput>,\n ) => void;\n\n resetForm: () => void;\n}\n\nexport interface FormData {\n formFields: Array<FormField>;\n}\n\nexport interface FormContextType extends FormData, FormFieldsActions {}\n\nexport interface FormBuilderProps {\n className?: string;\n formFields: Array<FormField>;\n onChange?: (fields: FormField[]) => void;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cn.js","sourceRoot":"../../../../src","sources":["form-builder/utils/cn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAEhD,MAAM,CAAC,MAAM,sBAAsB,GAAG,gBAAgB,CAAC;AAEvD,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAC,EAAC,CAAC,EAAE,sBAAsB,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAC,CAAC,CAAC","sourcesContent":["import {withNaming} from '@bem-react/classname';\n\nexport const FORM_BUILDER_NAMESPACE = 'pcformbuilder-';\n\nexport const formBuilderCn = withNaming({n: FORM_BUILDER_NAMESPACE, e: '__', m: '_'});\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ConfigInput, DynamicFormValue } from "./types.js";
|
|
2
|
+
import './FormGenerator.css';
|
|
3
|
+
interface FormGeneratorProps {
|
|
4
|
+
blockConfig: Array<ConfigInput>;
|
|
5
|
+
contentConfig?: object;
|
|
6
|
+
onUpdateByKey?: (key: string, value: DynamicFormValue) => void;
|
|
7
|
+
onUpdate?: (value: object) => void;
|
|
8
|
+
className?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare const FormGenerator: ({ blockConfig, onUpdateByKey, onUpdate, contentConfig, }: FormGeneratorProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export default FormGenerator;
|