@form-engine-ts/mui 4.4.0 → 4.5.0
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 +5 -0
- package/dist/index.cjs +460 -112
- package/dist/index.d.cts +28 -3
- package/dist/index.d.ts +28 -3
- package/dist/index.js +472 -105
- package/package.json +5 -5
package/dist/index.d.cts
CHANGED
|
@@ -2,8 +2,9 @@ import { BuilderActionIconType, FieldPropertyControlMode, QuestionType, FieldEdi
|
|
|
2
2
|
import * as react from 'react';
|
|
3
3
|
import { ReactNode, ComponentType, ReactElement } from 'react';
|
|
4
4
|
import { CardProps, PaperProps, AccordionProps, StackProps, TextFieldProps, SelectProps, MenuProps, CheckboxProps, ButtonProps, IconButtonProps } from '@mui/material';
|
|
5
|
+
import { FormSchema, DisplayRule, TranslationAdapter, AsyncTranslationAdapter } from '@form-engine-ts/core';
|
|
5
6
|
|
|
6
|
-
type BuilderSectionName = "basicSettings" | "completionMessage" | "questions" | "addQuestion" | "localization";
|
|
7
|
+
type BuilderSectionName = "basicSettings" | "completionMessage" | "questions" | "addQuestion" | "localization" | "submissionSettings";
|
|
7
8
|
type MuiButtonVariant = "contained" | "outlined" | "text";
|
|
8
9
|
type MuiComponentSlotProps<T> = Partial<T> & {
|
|
9
10
|
readonly [key: `data-${string}`]: string | number | boolean | undefined;
|
|
@@ -28,6 +29,10 @@ interface MuiLocalizationOptions {
|
|
|
28
29
|
readonly noWrapActions?: boolean;
|
|
29
30
|
readonly autoFocusNewTab?: boolean;
|
|
30
31
|
}
|
|
32
|
+
interface MuiSubmissionSettingsOptions {
|
|
33
|
+
readonly enabled: boolean;
|
|
34
|
+
readonly placement?: "beforeQuestions" | "afterQuestions" | "bottom";
|
|
35
|
+
}
|
|
31
36
|
/**
|
|
32
37
|
* MUI's field editor controls mirror `FieldEditorControlsConfig` while keeping
|
|
33
38
|
* the original interface members directly declared for semver/reporting compatibility.
|
|
@@ -165,11 +170,21 @@ interface MuiFormBuilderProps extends Omit<FormBuilderProps, "components" | "dis
|
|
|
165
170
|
readonly muiOptions?: MuiAdapterOptions;
|
|
166
171
|
readonly layoutOptions?: MuiLayoutOptions;
|
|
167
172
|
readonly localizationOptions?: MuiLocalizationOptions;
|
|
173
|
+
readonly submissionSettingsOptions?: MuiSubmissionSettingsOptions;
|
|
168
174
|
readonly muiSlotProps?: MuiBuilderSlotProps;
|
|
169
175
|
readonly components?: Partial<FormBuilderComponents>;
|
|
170
176
|
readonly slots?: Partial<FormBuilderSlots>;
|
|
171
177
|
}
|
|
172
|
-
declare function MuiFormBuilder({ muiOptions, layoutOptions, localizationOptions, muiSlotProps, components: customComponents, slots: customSlots, sectionOrder, ...props }: MuiFormBuilderProps): react.JSX.Element;
|
|
178
|
+
declare function MuiFormBuilder({ muiOptions, layoutOptions, localizationOptions, submissionSettingsOptions, muiSlotProps, components: customComponents, slots: customSlots, sectionOrder, ...props }: MuiFormBuilderProps): react.JSX.Element;
|
|
179
|
+
|
|
180
|
+
interface ConditionEditorProps {
|
|
181
|
+
readonly schema: FormSchema;
|
|
182
|
+
readonly fieldId: string;
|
|
183
|
+
readonly value?: DisplayRule;
|
|
184
|
+
readonly onChange: (rule: DisplayRule | undefined) => void;
|
|
185
|
+
readonly readOnly?: boolean;
|
|
186
|
+
}
|
|
187
|
+
declare function ConditionEditor({ schema, fieldId, value, onChange, readOnly }: ConditionEditorProps): react.JSX.Element;
|
|
173
188
|
|
|
174
189
|
declare function createMuiFieldEditorSlot(options?: MuiAdapterOptions): ComponentType<BuilderFieldEditorSlotProps>;
|
|
175
190
|
declare const MuiFieldEditorSlot: NonNullable<FormBuilderSlots["fieldEditor"]>;
|
|
@@ -188,4 +203,14 @@ declare const MuiToolbarSlot: NonNullable<FormBuilderSlots["toolbar"]>;
|
|
|
188
203
|
declare const muiBuilderSlots: FormBuilderSlots;
|
|
189
204
|
declare function createMuiBuilderSlots(options?: MuiAdapterOptions, customOverrides?: Partial<FormBuilderSlots>): FormBuilderSlots;
|
|
190
205
|
|
|
191
|
-
|
|
206
|
+
interface TranslationWorkspaceProps {
|
|
207
|
+
readonly schema: FormSchema;
|
|
208
|
+
readonly onChange?: (schema: FormSchema) => void;
|
|
209
|
+
readonly sourceLocale?: string;
|
|
210
|
+
readonly targetLocale?: string;
|
|
211
|
+
readonly translationAdapter?: TranslationAdapter | AsyncTranslationAdapter;
|
|
212
|
+
readonly readOnly?: boolean;
|
|
213
|
+
}
|
|
214
|
+
declare function TranslationWorkspace({ schema, onChange, sourceLocale, targetLocale, translationAdapter, readOnly }: TranslationWorkspaceProps): react.JSX.Element;
|
|
215
|
+
|
|
216
|
+
export { type BuilderSectionName, ConditionEditor, type ConditionEditorProps, DEFAULT_MUI_SECTION_ORDER, type LocaleOptionItem, type LocalizationSectionPlacement, MUI_LOCALIZATION_SECTION_ORDERS, type MuiAdapterOptions, type MuiBuilderOverrides, type MuiBuilderSlotProps, MuiButtonAdapter, type MuiButtonVariant, MuiCheckboxAdapter, MuiChoiceGroupSlot, MuiErrorMessageAdapter, type MuiFieldEditorOptions, MuiFieldEditorSlot, MuiFieldsetAdapter, MuiFormBuilder, MuiFormBuilderContext, type MuiFormBuilderContextValue, type MuiFormBuilderProps, MuiIconButtonAdapter, type MuiLayoutOptions, type MuiLocalizationOptions, MuiLocalizationSlot, MuiOptionEditorSlot, MuiSectionAdapter, MuiSelectAdapter, type MuiSlotProps, type MuiSubmissionSettingsOptions, MuiTextAreaAdapter, MuiTextInputAdapter, MuiToolbarSlot, type ResolvedMuiAdapterOptions, TranslationWorkspace, type TranslationWorkspaceProps, createMuiBuilderComponents, createMuiBuilderProps, createMuiBuilderSlots, createMuiButtonAdapter, createMuiCheckboxAdapter, createMuiErrorMessageAdapter, createMuiFieldEditorSlot, createMuiFieldsetAdapter, createMuiIconButtonAdapter, createMuiLocalizationSlot, createMuiOptionEditorSlot, createMuiSectionAdapter, createMuiSelectAdapter, createMuiTextAreaAdapter, createMuiTextInputAdapter, createMuiToolbarSlot, mergeMuiAdapterOptions, muiBuilderComponents, muiBuilderSlots, muiDefaultFieldTypeIcon, muiDefaultIconResolver, resolveMuiAdapterOptions, useResolvedMuiAdapterOptions };
|
package/dist/index.d.ts
CHANGED
|
@@ -2,8 +2,9 @@ import { BuilderActionIconType, FieldPropertyControlMode, QuestionType, FieldEdi
|
|
|
2
2
|
import * as react from 'react';
|
|
3
3
|
import { ReactNode, ComponentType, ReactElement } from 'react';
|
|
4
4
|
import { CardProps, PaperProps, AccordionProps, StackProps, TextFieldProps, SelectProps, MenuProps, CheckboxProps, ButtonProps, IconButtonProps } from '@mui/material';
|
|
5
|
+
import { FormSchema, DisplayRule, TranslationAdapter, AsyncTranslationAdapter } from '@form-engine-ts/core';
|
|
5
6
|
|
|
6
|
-
type BuilderSectionName = "basicSettings" | "completionMessage" | "questions" | "addQuestion" | "localization";
|
|
7
|
+
type BuilderSectionName = "basicSettings" | "completionMessage" | "questions" | "addQuestion" | "localization" | "submissionSettings";
|
|
7
8
|
type MuiButtonVariant = "contained" | "outlined" | "text";
|
|
8
9
|
type MuiComponentSlotProps<T> = Partial<T> & {
|
|
9
10
|
readonly [key: `data-${string}`]: string | number | boolean | undefined;
|
|
@@ -28,6 +29,10 @@ interface MuiLocalizationOptions {
|
|
|
28
29
|
readonly noWrapActions?: boolean;
|
|
29
30
|
readonly autoFocusNewTab?: boolean;
|
|
30
31
|
}
|
|
32
|
+
interface MuiSubmissionSettingsOptions {
|
|
33
|
+
readonly enabled: boolean;
|
|
34
|
+
readonly placement?: "beforeQuestions" | "afterQuestions" | "bottom";
|
|
35
|
+
}
|
|
31
36
|
/**
|
|
32
37
|
* MUI's field editor controls mirror `FieldEditorControlsConfig` while keeping
|
|
33
38
|
* the original interface members directly declared for semver/reporting compatibility.
|
|
@@ -165,11 +170,21 @@ interface MuiFormBuilderProps extends Omit<FormBuilderProps, "components" | "dis
|
|
|
165
170
|
readonly muiOptions?: MuiAdapterOptions;
|
|
166
171
|
readonly layoutOptions?: MuiLayoutOptions;
|
|
167
172
|
readonly localizationOptions?: MuiLocalizationOptions;
|
|
173
|
+
readonly submissionSettingsOptions?: MuiSubmissionSettingsOptions;
|
|
168
174
|
readonly muiSlotProps?: MuiBuilderSlotProps;
|
|
169
175
|
readonly components?: Partial<FormBuilderComponents>;
|
|
170
176
|
readonly slots?: Partial<FormBuilderSlots>;
|
|
171
177
|
}
|
|
172
|
-
declare function MuiFormBuilder({ muiOptions, layoutOptions, localizationOptions, muiSlotProps, components: customComponents, slots: customSlots, sectionOrder, ...props }: MuiFormBuilderProps): react.JSX.Element;
|
|
178
|
+
declare function MuiFormBuilder({ muiOptions, layoutOptions, localizationOptions, submissionSettingsOptions, muiSlotProps, components: customComponents, slots: customSlots, sectionOrder, ...props }: MuiFormBuilderProps): react.JSX.Element;
|
|
179
|
+
|
|
180
|
+
interface ConditionEditorProps {
|
|
181
|
+
readonly schema: FormSchema;
|
|
182
|
+
readonly fieldId: string;
|
|
183
|
+
readonly value?: DisplayRule;
|
|
184
|
+
readonly onChange: (rule: DisplayRule | undefined) => void;
|
|
185
|
+
readonly readOnly?: boolean;
|
|
186
|
+
}
|
|
187
|
+
declare function ConditionEditor({ schema, fieldId, value, onChange, readOnly }: ConditionEditorProps): react.JSX.Element;
|
|
173
188
|
|
|
174
189
|
declare function createMuiFieldEditorSlot(options?: MuiAdapterOptions): ComponentType<BuilderFieldEditorSlotProps>;
|
|
175
190
|
declare const MuiFieldEditorSlot: NonNullable<FormBuilderSlots["fieldEditor"]>;
|
|
@@ -188,4 +203,14 @@ declare const MuiToolbarSlot: NonNullable<FormBuilderSlots["toolbar"]>;
|
|
|
188
203
|
declare const muiBuilderSlots: FormBuilderSlots;
|
|
189
204
|
declare function createMuiBuilderSlots(options?: MuiAdapterOptions, customOverrides?: Partial<FormBuilderSlots>): FormBuilderSlots;
|
|
190
205
|
|
|
191
|
-
|
|
206
|
+
interface TranslationWorkspaceProps {
|
|
207
|
+
readonly schema: FormSchema;
|
|
208
|
+
readonly onChange?: (schema: FormSchema) => void;
|
|
209
|
+
readonly sourceLocale?: string;
|
|
210
|
+
readonly targetLocale?: string;
|
|
211
|
+
readonly translationAdapter?: TranslationAdapter | AsyncTranslationAdapter;
|
|
212
|
+
readonly readOnly?: boolean;
|
|
213
|
+
}
|
|
214
|
+
declare function TranslationWorkspace({ schema, onChange, sourceLocale, targetLocale, translationAdapter, readOnly }: TranslationWorkspaceProps): react.JSX.Element;
|
|
215
|
+
|
|
216
|
+
export { type BuilderSectionName, ConditionEditor, type ConditionEditorProps, DEFAULT_MUI_SECTION_ORDER, type LocaleOptionItem, type LocalizationSectionPlacement, MUI_LOCALIZATION_SECTION_ORDERS, type MuiAdapterOptions, type MuiBuilderOverrides, type MuiBuilderSlotProps, MuiButtonAdapter, type MuiButtonVariant, MuiCheckboxAdapter, MuiChoiceGroupSlot, MuiErrorMessageAdapter, type MuiFieldEditorOptions, MuiFieldEditorSlot, MuiFieldsetAdapter, MuiFormBuilder, MuiFormBuilderContext, type MuiFormBuilderContextValue, type MuiFormBuilderProps, MuiIconButtonAdapter, type MuiLayoutOptions, type MuiLocalizationOptions, MuiLocalizationSlot, MuiOptionEditorSlot, MuiSectionAdapter, MuiSelectAdapter, type MuiSlotProps, type MuiSubmissionSettingsOptions, MuiTextAreaAdapter, MuiTextInputAdapter, MuiToolbarSlot, type ResolvedMuiAdapterOptions, TranslationWorkspace, type TranslationWorkspaceProps, createMuiBuilderComponents, createMuiBuilderProps, createMuiBuilderSlots, createMuiButtonAdapter, createMuiCheckboxAdapter, createMuiErrorMessageAdapter, createMuiFieldEditorSlot, createMuiFieldsetAdapter, createMuiIconButtonAdapter, createMuiLocalizationSlot, createMuiOptionEditorSlot, createMuiSectionAdapter, createMuiSelectAdapter, createMuiTextAreaAdapter, createMuiTextInputAdapter, createMuiToolbarSlot, mergeMuiAdapterOptions, muiBuilderComponents, muiBuilderSlots, muiDefaultFieldTypeIcon, muiDefaultIconResolver, resolveMuiAdapterOptions, useResolvedMuiAdapterOptions };
|