formifex 0.1.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/dist/components/ANTDFormComponents/AntdForm.d.ts +12 -0
- package/dist/components/ANTDFormComponents/AntdFormComponent.d.ts +10 -0
- package/dist/components/ANTDFormComponents/AntdFormFlex.d.ts +3 -0
- package/dist/components/ANTDFormComponents/AntdFormGrid.d.ts +3 -0
- package/dist/components/ANTDFormComponents/AntdFormSection.d.ts +4 -0
- package/dist/components/ANTDFormComponents/inputs/InputCheckbox.d.ts +12 -0
- package/dist/components/ANTDFormComponents/inputs/InputColorPicker.d.ts +14 -0
- package/dist/components/ANTDFormComponents/inputs/InputDateRange.d.ts +17 -0
- package/dist/components/ANTDFormComponents/inputs/InputDateTime.d.ts +17 -0
- package/dist/components/ANTDFormComponents/inputs/InputNumber.d.ts +20 -0
- package/dist/components/ANTDFormComponents/inputs/InputPassword.d.ts +12 -0
- package/dist/components/ANTDFormComponents/inputs/InputRadio.d.ts +12 -0
- package/dist/components/ANTDFormComponents/inputs/InputRate.d.ts +13 -0
- package/dist/components/ANTDFormComponents/inputs/InputSelect.d.ts +55 -0
- package/dist/components/ANTDFormComponents/inputs/InputSlider.d.ts +4 -0
- package/dist/components/ANTDFormComponents/inputs/InputString.d.ts +14 -0
- package/dist/components/ANTDFormComponents/inputs/InputSwitch.d.ts +13 -0
- package/dist/components/ANTDFormComponents/inputs/InputTextArea.d.ts +17 -0
- package/dist/components/ANTDFormComponents/inputs/InputTime.d.ts +12 -0
- package/dist/components/ANTDFormComponents/inputs/InputUpload.d.ts +16 -0
- package/dist/components/ANTDFormComponents/inputs/_InputController.d.ts +12 -0
- package/dist/components/FormBuilder.d.ts +45 -0
- package/dist/components/FormBuilderComponents/OptionsRender.d.ts +9 -0
- package/dist/components/FormController.d.ts +10 -0
- package/dist/components/useFormController.d.ts +32 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.es.js +27670 -0
- package/dist/index.umd.js +227 -0
- package/dist/types/common.d.ts +107 -0
- package/dist/types/form.d.ts +63 -0
- package/dist/types/handler.d.ts +4 -0
- package/dist/types/inputs/_input.d.ts +87 -0
- package/dist/types/inputs/checkbox.d.ts +40 -0
- package/dist/types/inputs/colorpicker.d.ts +14 -0
- package/dist/types/inputs/date.d.ts +47 -0
- package/dist/types/inputs/number.d.ts +21 -0
- package/dist/types/inputs/password.d.ts +12 -0
- package/dist/types/inputs/radio.d.ts +59 -0
- package/dist/types/inputs/rate.d.ts +13 -0
- package/dist/types/inputs/select.d.ts +44 -0
- package/dist/types/inputs/slider.d.ts +33 -0
- package/dist/types/inputs/switch.d.ts +12 -0
- package/dist/types/inputs/text.d.ts +15 -0
- package/dist/types/inputs/textArea.d.ts +17 -0
- package/dist/types/inputs/upload.d.ts +44 -0
- package/dist/types/layout.d.ts +47 -0
- package/dist/vite.svg +1 -0
- package/package.json +25 -0
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
export declare enum EDataType {
|
|
2
|
+
string = "string",
|
|
3
|
+
number = "number",
|
|
4
|
+
date = "date",
|
|
5
|
+
datetime = "datetime",
|
|
6
|
+
time = "time",
|
|
7
|
+
boolean = "boolean",
|
|
8
|
+
object = "object"
|
|
9
|
+
}
|
|
10
|
+
export declare enum EUnitFamily {
|
|
11
|
+
mass = "mass",
|
|
12
|
+
time = "time",
|
|
13
|
+
length = "length",
|
|
14
|
+
electric_current = "electric_current",
|
|
15
|
+
amount_of_substance = "amount_of_substance",
|
|
16
|
+
luminous_intensity = "luminous_intensity",
|
|
17
|
+
angular_velocity = "angular_velocity",
|
|
18
|
+
angular_acceleration = "angular_acceleration",
|
|
19
|
+
plane_angle = "plane_angle",
|
|
20
|
+
solid_angle = "solid_angle",
|
|
21
|
+
frequency = "frequency",
|
|
22
|
+
force = "force",
|
|
23
|
+
pressure = "pressure",
|
|
24
|
+
energy = "energy",
|
|
25
|
+
power = "power",
|
|
26
|
+
electric_charge = "electric_charge",
|
|
27
|
+
electric_potential = "electric_potential",
|
|
28
|
+
capacitance = "capacitance",
|
|
29
|
+
resistance = "resistance",
|
|
30
|
+
electrical_conductance = "electrical_conductance",
|
|
31
|
+
magnetic_flux = "magnetic_flux",
|
|
32
|
+
inductance = "inductance",
|
|
33
|
+
temperature = "temperature",
|
|
34
|
+
luminous_flux = "luminous_flux",
|
|
35
|
+
illuminance = "illuminance",
|
|
36
|
+
radionuclide_activity = "radionuclide_activity",
|
|
37
|
+
absorbed_dose = "absorbed_dose",
|
|
38
|
+
equivalent_dose = "equivalent_dose",
|
|
39
|
+
catalytic_activity = "catalytic_activity",
|
|
40
|
+
data_volume = "data_volume",
|
|
41
|
+
data_rate = "data_rate",
|
|
42
|
+
velocity = "velocity",
|
|
43
|
+
acceleration = "acceleration",
|
|
44
|
+
volume = "volume",
|
|
45
|
+
speed = "speed"
|
|
46
|
+
}
|
|
47
|
+
export declare enum EAggregatorType {
|
|
48
|
+
sum = "sum",
|
|
49
|
+
average = "average",
|
|
50
|
+
count = "count",
|
|
51
|
+
min = "min",
|
|
52
|
+
max = "max"
|
|
53
|
+
}
|
|
54
|
+
export declare enum EOperatorType {
|
|
55
|
+
eq = "eq",
|
|
56
|
+
neq = "neq",
|
|
57
|
+
gt = "gt",
|
|
58
|
+
gte = "gte",
|
|
59
|
+
lt = "lt",
|
|
60
|
+
lte = "lte",
|
|
61
|
+
contains = "contains",
|
|
62
|
+
notContains = "notContains",
|
|
63
|
+
startsWith = "startsWith",
|
|
64
|
+
endsWith = "endsWith"
|
|
65
|
+
}
|
|
66
|
+
export type TValidation = {
|
|
67
|
+
id: string;
|
|
68
|
+
value: string;
|
|
69
|
+
} | {
|
|
70
|
+
id: string;
|
|
71
|
+
value: number;
|
|
72
|
+
} | {
|
|
73
|
+
id: string;
|
|
74
|
+
value: Date;
|
|
75
|
+
} | {
|
|
76
|
+
id: string;
|
|
77
|
+
value: boolean;
|
|
78
|
+
};
|
|
79
|
+
export type TOperator = {
|
|
80
|
+
field: string;
|
|
81
|
+
type: EOperatorType;
|
|
82
|
+
value: string;
|
|
83
|
+
} | {
|
|
84
|
+
field: string;
|
|
85
|
+
type: EOperatorType;
|
|
86
|
+
value: number;
|
|
87
|
+
} | {
|
|
88
|
+
field: string;
|
|
89
|
+
type: EOperatorType;
|
|
90
|
+
value: Date;
|
|
91
|
+
} | {
|
|
92
|
+
field: string;
|
|
93
|
+
type: EOperatorType;
|
|
94
|
+
value: boolean;
|
|
95
|
+
};
|
|
96
|
+
export type TAggregator = {
|
|
97
|
+
type: EAggregatorType;
|
|
98
|
+
group: TValidation[] | TOperator[];
|
|
99
|
+
};
|
|
100
|
+
export declare enum ELayoutType {
|
|
101
|
+
input = "input",
|
|
102
|
+
grid = "grid",
|
|
103
|
+
flex = "flex",
|
|
104
|
+
section = "section",
|
|
105
|
+
divider = "divider",
|
|
106
|
+
custom = "custom"
|
|
107
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { TDivider, TGridLayout, TFlexLayout, TSectionLayout, TCustom } from './layout';
|
|
2
|
+
import { TInput } from './inputs/_input';
|
|
3
|
+
import { CSSProperties, ReactNode } from 'react';
|
|
4
|
+
import { FormInstance } from 'antd/lib';
|
|
5
|
+
import { AxiosInstance } from 'axios';
|
|
6
|
+
import { UseFormControllerReturn } from '../components/FormController';
|
|
7
|
+
export type TFormGeneralProps = {
|
|
8
|
+
httpAgent?: AxiosInstance;
|
|
9
|
+
resetOnDependencyChange?: boolean;
|
|
10
|
+
resetOnDependencyEmpty?: boolean;
|
|
11
|
+
formRef?: FormInstance;
|
|
12
|
+
readOnly?: boolean;
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
customProps?: any;
|
|
15
|
+
};
|
|
16
|
+
export type TFormProps = {
|
|
17
|
+
formType?: "antd" | "web" | undefined;
|
|
18
|
+
theme?: "light" | "dark";
|
|
19
|
+
formController: UseFormControllerReturn;
|
|
20
|
+
className?: string;
|
|
21
|
+
sections?: TFormStructure[];
|
|
22
|
+
style?: CSSProperties;
|
|
23
|
+
enablePostSave?: boolean;
|
|
24
|
+
} & TFormGeneralProps;
|
|
25
|
+
export type TFormStructure = {
|
|
26
|
+
id: string;
|
|
27
|
+
title?: ReactNode;
|
|
28
|
+
layout?: "vertical" | "horizontal" | undefined;
|
|
29
|
+
requiredMark?: "optional" | false | undefined;
|
|
30
|
+
items: TFormItems | undefined;
|
|
31
|
+
className?: string;
|
|
32
|
+
style?: CSSProperties;
|
|
33
|
+
};
|
|
34
|
+
export type TFormComponentProperties = {
|
|
35
|
+
formRef: any;
|
|
36
|
+
items: TFormItems | undefined;
|
|
37
|
+
data: any | null | undefined;
|
|
38
|
+
sections?: TFormStructure[];
|
|
39
|
+
initialData?: any;
|
|
40
|
+
lookupData?: any;
|
|
41
|
+
readonly?: boolean;
|
|
42
|
+
resetOnDependencyChange?: boolean;
|
|
43
|
+
resetOnDependencyEmpty?: boolean;
|
|
44
|
+
onClick?: () => void;
|
|
45
|
+
onChange?: any;
|
|
46
|
+
onBlur?: (e: any) => void;
|
|
47
|
+
onFocus?: (e: any) => void;
|
|
48
|
+
};
|
|
49
|
+
export type TDisplayCondition = {
|
|
50
|
+
field: string;
|
|
51
|
+
value?: string | number | boolean;
|
|
52
|
+
operator?: "=" | "!=" | ">" | "<" | ">=" | "<=" | "includes";
|
|
53
|
+
evaluate?: (props: TFormGeneralProps) => boolean;
|
|
54
|
+
};
|
|
55
|
+
export type TDisplayConditionFunction = (props: TFormGeneralProps) => boolean;
|
|
56
|
+
export type TDisplayConditionItem = TDisplayCondition | TDisplayConditionFunction;
|
|
57
|
+
export type TFormItems = TFormItem[];
|
|
58
|
+
export type TFormItem = {
|
|
59
|
+
displayWhen?: TDisplayConditionItem[];
|
|
60
|
+
sequence?: number;
|
|
61
|
+
className?: string;
|
|
62
|
+
style?: CSSProperties;
|
|
63
|
+
} & (TInput | TSectionLayout | TGridLayout | TFlexLayout | TDivider | TCustom);
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { CSSProperties, ReactNode } from 'react';
|
|
2
|
+
import { TInputNumber } from './number';
|
|
3
|
+
import { TInputCheckbox } from './checkbox';
|
|
4
|
+
import { TInputSelect } from './select';
|
|
5
|
+
import { TInputTextArea } from './textArea';
|
|
6
|
+
import { TInputColorPicker } from './colorpicker';
|
|
7
|
+
import { TInputDatePicker, TInputTimePicker } from './date';
|
|
8
|
+
import { TInputSwitch } from './switch';
|
|
9
|
+
import { TInputString } from './text';
|
|
10
|
+
import { WrapperTooltipProps } from '../layout';
|
|
11
|
+
import { EDataType, ELayoutType } from '../common';
|
|
12
|
+
import { TInputPassword } from './password';
|
|
13
|
+
import { TInputRadio } from './radio';
|
|
14
|
+
import { TInputRate } from './rate';
|
|
15
|
+
import { Rule } from 'antd/es/form';
|
|
16
|
+
import { TInputSlider } from './slider';
|
|
17
|
+
import { TInputUpload } from './upload';
|
|
18
|
+
import { TFormGeneralProps } from '../form';
|
|
19
|
+
export declare enum EInputType {
|
|
20
|
+
string = "string",
|
|
21
|
+
number = "number",
|
|
22
|
+
date = "date",
|
|
23
|
+
datetime = "datetime",
|
|
24
|
+
time = "time",
|
|
25
|
+
textarea = "textarea",
|
|
26
|
+
checkbox = "checkbox",
|
|
27
|
+
switch = "switch",
|
|
28
|
+
radio = "radio",
|
|
29
|
+
select = "select",
|
|
30
|
+
color = "color",
|
|
31
|
+
password = "password",
|
|
32
|
+
rate = "rate",
|
|
33
|
+
slider = "slider",
|
|
34
|
+
upload = "upload",
|
|
35
|
+
hidden = "hidden"
|
|
36
|
+
}
|
|
37
|
+
export type TEnableCondition = {
|
|
38
|
+
field: string;
|
|
39
|
+
value?: string | number | boolean;
|
|
40
|
+
operator?: "=" | "!=" | ">" | "<" | ">=" | "<=" | "includes";
|
|
41
|
+
evaluate?: (props: TFormGeneralProps) => boolean;
|
|
42
|
+
};
|
|
43
|
+
export type TEnableConditionFunction = (props: TFormGeneralProps) => boolean;
|
|
44
|
+
export type TEnableConditionItem = TEnableCondition | TEnableConditionFunction;
|
|
45
|
+
export type TInput = {
|
|
46
|
+
id: string;
|
|
47
|
+
type: ELayoutType.input | "input";
|
|
48
|
+
dataType: EDataType | "string" | "number" | "date" | "datetime" | "time" | "boolean" | "object";
|
|
49
|
+
label: string | ((props: TFormGeneralProps) => ReactNode);
|
|
50
|
+
validators?: Rule[];
|
|
51
|
+
layout?: "horizontal" | "vertical";
|
|
52
|
+
tooltip?: ReactNode | WrapperTooltipProps;
|
|
53
|
+
wrapperClassName?: string;
|
|
54
|
+
wrapperStyle?: CSSProperties;
|
|
55
|
+
required?: boolean;
|
|
56
|
+
placeholder?: string;
|
|
57
|
+
addonAfter?: ReactNode | ((props: TFormGeneralProps) => ReactNode);
|
|
58
|
+
addonBefore?: ReactNode | ((props: TFormGeneralProps) => ReactNode);
|
|
59
|
+
variant?: "outlined" | "borderless" | "filled";
|
|
60
|
+
enableWhen?: TEnableConditionItem[];
|
|
61
|
+
resetIgnoreFields?: string[];
|
|
62
|
+
disabled?: boolean;
|
|
63
|
+
readOnly?: boolean;
|
|
64
|
+
resetOnDependencyChange?: boolean;
|
|
65
|
+
resetOnDependencyEmpty?: boolean;
|
|
66
|
+
colon?: boolean;
|
|
67
|
+
} & (TInputString | TInputNumber | TInputCheckbox | TInputSelect | TInputSwitch | TInputTextArea | TInputColorPicker | TInputDatePicker | TInputPassword | TInputRadio | TInputRate | TInputTimePicker | TInputSlider | TInputUpload | TInputHidden);
|
|
68
|
+
export type TInputGeneric = {
|
|
69
|
+
readOnly?: boolean;
|
|
70
|
+
className?: string;
|
|
71
|
+
style?: CSSProperties;
|
|
72
|
+
};
|
|
73
|
+
export type TInputComponentProps = {
|
|
74
|
+
input: TInput;
|
|
75
|
+
data: any | null | undefined;
|
|
76
|
+
onClick?: () => void;
|
|
77
|
+
onChange?: (data: any) => void;
|
|
78
|
+
onFocus?: (e: any) => void;
|
|
79
|
+
};
|
|
80
|
+
export type TLookupProps = {
|
|
81
|
+
lookupFetcher?: (props: TFormGeneralProps) => any[] | Promise<any[] | any>;
|
|
82
|
+
lookupKey?: string;
|
|
83
|
+
};
|
|
84
|
+
type TInputHidden = {
|
|
85
|
+
inputType: EInputType.hidden | "hidden";
|
|
86
|
+
};
|
|
87
|
+
export {};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { EInputType, TInputGeneric } from './_input';
|
|
2
|
+
import { EDataType } from '../common';
|
|
3
|
+
import { ReactNode } from 'react';
|
|
4
|
+
export type TInputCheckbox = {
|
|
5
|
+
inputType: EInputType.checkbox | "checkbox";
|
|
6
|
+
properties?: {};
|
|
7
|
+
} & (TInputCheckboxString | TInputCheckboxNumber) & TInputGeneric;
|
|
8
|
+
type TInputCheckboxString = {
|
|
9
|
+
dataType: EDataType.string | "string";
|
|
10
|
+
options?: {
|
|
11
|
+
label: string | ReactNode;
|
|
12
|
+
value: string;
|
|
13
|
+
}[] | (() => {
|
|
14
|
+
label: string | ReactNode;
|
|
15
|
+
value: string;
|
|
16
|
+
}[] | Promise<{
|
|
17
|
+
label: string | ReactNode;
|
|
18
|
+
value: string;
|
|
19
|
+
}[]>) | {
|
|
20
|
+
dataSource: any[] | (() => any[] | Promise<any[]>) | Record<string, any>;
|
|
21
|
+
labelField?: string;
|
|
22
|
+
valueField?: string;
|
|
23
|
+
transform?: (item: any, formValues?: any) => {
|
|
24
|
+
label: string | ReactNode;
|
|
25
|
+
value: string;
|
|
26
|
+
};
|
|
27
|
+
dependentField?: string;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
type TInputCheckboxNumber = {
|
|
31
|
+
dataType: EDataType.number | "number";
|
|
32
|
+
options?: number[] | (() => number[] | Promise<number[]>) | {
|
|
33
|
+
dataSource: any[] | (() => any[] | Promise<any[]>) | Record<string, any>;
|
|
34
|
+
labelField?: string;
|
|
35
|
+
valueField?: string;
|
|
36
|
+
transform?: (item: any, formValues?: any) => number;
|
|
37
|
+
dependentField?: string;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { EInputType, TInputGeneric } from './_input';
|
|
2
|
+
import { EDataType } from '../common';
|
|
3
|
+
export type TInputColorPicker = {
|
|
4
|
+
dataType: EDataType.string | "string";
|
|
5
|
+
inputType: EInputType.color | "color";
|
|
6
|
+
properties?: {
|
|
7
|
+
disabledAlpha?: boolean;
|
|
8
|
+
disabledFormat?: boolean;
|
|
9
|
+
mode?: "single" | "gradient" | ("single" | "gradient")[];
|
|
10
|
+
placement?: "top" | "left" | "right" | "bottom" | "topLeft" | "topRight" | "bottomLeft" | "bottomRight" | "leftTop" | "leftBottom" | "rightTop" | "rightBottom";
|
|
11
|
+
format?: "rgb" | "hex" | "hsb";
|
|
12
|
+
showText?: boolean;
|
|
13
|
+
};
|
|
14
|
+
} & TInputGeneric;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { CSSProperties } from 'react';
|
|
2
|
+
import { EInputType, TInputGeneric } from './_input';
|
|
3
|
+
import { Dayjs } from 'dayjs';
|
|
4
|
+
export type TInputDatePicker = {
|
|
5
|
+
inputType: EInputType.date | "date" | EInputType.datetime | "datetime";
|
|
6
|
+
popupClassName?: string | undefined;
|
|
7
|
+
popupStyle?: CSSProperties | undefined;
|
|
8
|
+
getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;
|
|
9
|
+
properties?: {
|
|
10
|
+
allowClear?: boolean | undefined;
|
|
11
|
+
format?: string | undefined;
|
|
12
|
+
picker?: "date" | "week" | "month" | "quarter" | "year" | undefined;
|
|
13
|
+
placement?: "bottomLeft" | "bottomRight" | "topLeft" | "topRight" | undefined;
|
|
14
|
+
minDate?: Dayjs | undefined;
|
|
15
|
+
maxDate?: Dayjs | undefined;
|
|
16
|
+
showNow?: boolean | undefined;
|
|
17
|
+
} & (TShowTime | TMultiple);
|
|
18
|
+
} & TInputGeneric;
|
|
19
|
+
export type TShowTime = {
|
|
20
|
+
multiple?: false | undefined;
|
|
21
|
+
showTime?: TTimePickerProperties | undefined;
|
|
22
|
+
};
|
|
23
|
+
export type TMultiple = {
|
|
24
|
+
multiple: true;
|
|
25
|
+
};
|
|
26
|
+
export type TInputTimePicker = {
|
|
27
|
+
inputType: EInputType.time | "time";
|
|
28
|
+
popupClassName?: string | undefined;
|
|
29
|
+
popupStyle?: CSSProperties | undefined;
|
|
30
|
+
getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;
|
|
31
|
+
properties?: {
|
|
32
|
+
showNow?: boolean | undefined;
|
|
33
|
+
allowClear?: boolean | undefined;
|
|
34
|
+
} & TTimePickerProperties;
|
|
35
|
+
} & TInputGeneric;
|
|
36
|
+
export type TTimePickerProperties = {
|
|
37
|
+
format?: string | undefined;
|
|
38
|
+
showHour?: boolean | undefined;
|
|
39
|
+
showMinute?: boolean | undefined;
|
|
40
|
+
showSecond?: boolean | undefined;
|
|
41
|
+
showMillisecond?: boolean | undefined;
|
|
42
|
+
hourStep?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | undefined;
|
|
43
|
+
minuteStep?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | undefined;
|
|
44
|
+
secondStep?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | undefined;
|
|
45
|
+
millisecondStep?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | 510 | 511 | 512 | 513 | 514 | 515 | 516 | 517 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 | 528 | 529 | 530 | 531 | 532 | 533 | 534 | 535 | 536 | 537 | 538 | 539 | 540 | 541 | 542 | 543 | 544 | 545 | 546 | 547 | 548 | 549 | 550 | 551 | 552 | 553 | 554 | 555 | 556 | 557 | 558 | 559 | 560 | 561 | 562 | 563 | 564 | 565 | 566 | 567 | 568 | 569 | 570 | 571 | 572 | 573 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | 584 | 585 | 586 | 587 | 588 | 589 | 590 | 591 | 592 | 593 | 594 | 595 | 596 | 597 | 598 | 599 | 600 | 601 | 602 | 603 | 604 | 605 | 606 | 607 | 608 | 609 | 610 | 611 | 612 | 613 | 614 | 615 | 616 | 617 | 618 | 619 | 620 | 621 | 622 | 623 | 624 | 625 | 626 | 627 | 628 | 629 | 630 | 631 | 632 | 633 | 634 | 635 | 636 | 637 | 638 | 639 | 640 | 641 | 642 | 643 | 644 | 645 | 646 | 647 | 648 | 649 | 650 | 651 | 652 | 653 | 654 | 655 | 656 | 657 | 658 | 659 | 660 | 661 | 662 | 663 | 664 | 665 | 666 | 667 | 668 | 669 | 670 | 671 | 672 | 673 | 674 | 675 | 676 | 677 | 678 | 679 | 680 | 681 | 682 | 683 | 684 | 685 | 686 | 687 | 688 | 689 | 690 | 691 | 692 | 693 | 694 | 695 | 696 | 697 | 698 | 699 | 700 | 701 | 702 | 703 | 704 | 705 | 706 | 707 | 708 | 709 | 710 | 711 | 712 | 713 | 714 | 715 | 716 | 717 | 718 | 719 | 720 | 721 | 722 | 723 | 724 | 725 | 726 | 727 | 728 | 729 | 730 | 731 | 732 | 733 | 734 | 735 | 736 | 737 | 738 | 739 | 740 | 741 | 742 | 743 | 744 | 745 | 746 | 747 | 748 | 749 | 750 | 751 | 752 | 753 | 754 | 755 | 756 | 757 | 758 | 759 | 760 | 761 | 762 | 763 | 764 | 765 | 766 | 767 | 768 | 769 | 770 | 771 | 772 | 773 | 774 | 775 | 776 | 777 | 778 | 779 | 780 | 781 | 782 | 783 | 784 | 785 | 786 | 787 | 788 | 789 | 790 | 791 | 792 | 793 | 794 | 795 | 796 | 797 | 798 | 799 | 800 | 801 | 802 | 803 | 804 | 805 | 806 | 807 | 808 | 809 | 810 | 811 | 812 | 813 | 814 | 815 | 816 | 817 | 818 | 819 | 820 | 821 | 822 | 823 | 824 | 825 | 826 | 827 | 828 | 829 | 830 | 831 | 832 | 833 | 834 | 835 | 836 | 837 | 838 | 839 | 840 | 841 | 842 | 843 | 844 | 845 | 846 | 847 | 848 | 849 | 850 | 851 | 852 | 853 | 854 | 855 | 856 | 857 | 858 | 859 | 860 | 861 | 862 | 863 | 864 | 865 | 866 | 867 | 868 | 869 | 870 | 871 | 872 | 873 | 874 | 875 | 876 | 877 | 878 | 879 | 880 | 881 | 882 | 883 | 884 | 885 | 886 | 887 | 888 | 889 | 890 | 891 | 892 | 893 | 894 | 895 | 896 | 897 | 898 | 899 | 900 | 901 | 902 | 903 | 904 | 905 | 906 | 907 | 908 | 909 | 910 | 911 | 912 | 913 | 914 | 915 | 916 | 917 | 918 | 919 | 920 | 921 | 922 | 923 | 924 | 925 | 926 | 927 | 928 | 929 | 930 | 931 | 932 | 933 | 934 | 935 | 936 | 937 | 938 | 939 | 940 | 941 | 942 | 943 | 944 | 945 | 946 | 947 | 948 | 949 | 950 | 951 | 952 | 953 | 954 | 955 | 956 | 957 | 958 | 959 | 960 | 961 | 962 | 963 | 964 | 965 | 966 | 967 | 968 | 969 | 970 | 971 | 972 | 973 | 974 | 975 | 976 | 977 | 978 | 979 | 980 | 981 | 982 | 983 | 984 | 985 | 986 | 987 | 988 | 989 | 990 | 991 | 992 | 993 | 994 | 995 | 996 | 997 | 998 | undefined;
|
|
46
|
+
use12Hours?: boolean | undefined;
|
|
47
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { EUnitFamily, EDataType } from '../common';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
import { EInputType, TInputGeneric } from './_input';
|
|
4
|
+
export type TInputNumber = {
|
|
5
|
+
inputType: EInputType.number | "number";
|
|
6
|
+
dataType: EDataType.number | "number";
|
|
7
|
+
properties?: {
|
|
8
|
+
suffix?: ReactNode | string | undefined | null;
|
|
9
|
+
prefix?: ReactNode | string | undefined | null;
|
|
10
|
+
decimalSeparator?: string;
|
|
11
|
+
precision?: number;
|
|
12
|
+
min?: number;
|
|
13
|
+
max?: number;
|
|
14
|
+
unitFamily?: EUnitFamily;
|
|
15
|
+
unitClass?: string;
|
|
16
|
+
unit?: string;
|
|
17
|
+
unitLabel?: string;
|
|
18
|
+
defaultValue?: number;
|
|
19
|
+
controls: boolean;
|
|
20
|
+
};
|
|
21
|
+
} & TInputGeneric;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { EDataType } from '../common';
|
|
2
|
+
import { EInputType, TInputGeneric } from './_input';
|
|
3
|
+
export type TInputPassword = {
|
|
4
|
+
dataType: EDataType.string | "string";
|
|
5
|
+
inputType: EInputType.password | "password";
|
|
6
|
+
defaultValue?: string;
|
|
7
|
+
properties?: {
|
|
8
|
+
maxLength?: number;
|
|
9
|
+
allowClear?: boolean;
|
|
10
|
+
showCount?: boolean;
|
|
11
|
+
};
|
|
12
|
+
} & TInputGeneric;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { EDataType } from '../common';
|
|
2
|
+
import { EInputType, TInputGeneric } from './_input';
|
|
3
|
+
import { ReactNode } from 'react';
|
|
4
|
+
export type TInputRadio = {
|
|
5
|
+
inputType: EInputType.radio | "radio";
|
|
6
|
+
properties?: {
|
|
7
|
+
block?: boolean;
|
|
8
|
+
optionType?: "button" | "default";
|
|
9
|
+
buttonStyle?: "solid" | "outline";
|
|
10
|
+
size?: "small" | "middle" | "large";
|
|
11
|
+
};
|
|
12
|
+
} & (TInputRadioString | TInputRadioNumber) & TInputGeneric;
|
|
13
|
+
type TInputRadioString = {
|
|
14
|
+
dataType: EDataType.string | "string";
|
|
15
|
+
defaultValue?: string;
|
|
16
|
+
options?: {
|
|
17
|
+
label: string | ReactNode;
|
|
18
|
+
value: string;
|
|
19
|
+
}[] | (() => {
|
|
20
|
+
label: string | ReactNode;
|
|
21
|
+
value: string;
|
|
22
|
+
}[] | Promise<{
|
|
23
|
+
label: string | ReactNode;
|
|
24
|
+
value: string;
|
|
25
|
+
}[]>) | {
|
|
26
|
+
dataSource: any[] | (() => any[] | Promise<any[]>) | Record<string, any>;
|
|
27
|
+
labelField?: string;
|
|
28
|
+
valueField?: string;
|
|
29
|
+
transform?: (item: any, formValues?: any) => {
|
|
30
|
+
label: string | ReactNode;
|
|
31
|
+
value: string;
|
|
32
|
+
};
|
|
33
|
+
dependentField?: string;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
type TInputRadioNumber = {
|
|
37
|
+
dataType: EDataType.number | "number";
|
|
38
|
+
defaultValue?: number;
|
|
39
|
+
options?: {
|
|
40
|
+
label: string | ReactNode;
|
|
41
|
+
value: number;
|
|
42
|
+
}[] | (() => {
|
|
43
|
+
label: string | ReactNode;
|
|
44
|
+
value: number;
|
|
45
|
+
}[] | Promise<{
|
|
46
|
+
label: string | ReactNode;
|
|
47
|
+
value: number;
|
|
48
|
+
}[]>) | {
|
|
49
|
+
dataSource: any[] | (() => any[] | Promise<any[]>) | Record<string, any>;
|
|
50
|
+
labelField?: string;
|
|
51
|
+
valueField?: string;
|
|
52
|
+
transform?: (item: any, formValues?: any) => {
|
|
53
|
+
label: string | ReactNode;
|
|
54
|
+
value: number;
|
|
55
|
+
};
|
|
56
|
+
dependentField?: string;
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { EDataType } from '../common';
|
|
2
|
+
import { EInputType, TInputGeneric } from './_input';
|
|
3
|
+
export type TInputRate = {
|
|
4
|
+
dataType: EDataType.number | "number";
|
|
5
|
+
inputType: EInputType.rate | "rate";
|
|
6
|
+
defaultValue?: number;
|
|
7
|
+
properties?: {
|
|
8
|
+
allowHalf?: boolean;
|
|
9
|
+
character?: React.ReactNode;
|
|
10
|
+
count?: number;
|
|
11
|
+
tooltips?: string[];
|
|
12
|
+
};
|
|
13
|
+
} & TInputGeneric;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { EInputType, TInputGeneric, TLookupProps } from './_input';
|
|
2
|
+
import { EDataType } from '../common';
|
|
3
|
+
import { ReactNode } from 'react';
|
|
4
|
+
export type TInputSelect = {
|
|
5
|
+
inputType: EInputType.select | "select";
|
|
6
|
+
dataType: EDataType.string | "string" | EDataType.number | "number";
|
|
7
|
+
defaultValue?: string | number | (number | string)[];
|
|
8
|
+
options?: {
|
|
9
|
+
label: string | ReactNode;
|
|
10
|
+
value: string | number;
|
|
11
|
+
}[] | {}[] | (() => {
|
|
12
|
+
label: string | ReactNode;
|
|
13
|
+
value: string | number;
|
|
14
|
+
}[] | Promise<{
|
|
15
|
+
label: string | ReactNode;
|
|
16
|
+
value: string | number;
|
|
17
|
+
}[]>) | {
|
|
18
|
+
dataSource: any[] | (() => any[] | Promise<any[]>) | Record<string, any>;
|
|
19
|
+
labelField?: string;
|
|
20
|
+
valueField?: string;
|
|
21
|
+
transform?: (item: any, formValues?: any) => {
|
|
22
|
+
label: string | ReactNode;
|
|
23
|
+
value: string | number;
|
|
24
|
+
};
|
|
25
|
+
dependentField?: string;
|
|
26
|
+
};
|
|
27
|
+
sharedOptionIDs?: string[];
|
|
28
|
+
mode?: "multiple" | "tags" | undefined;
|
|
29
|
+
list?: boolean;
|
|
30
|
+
labelProp?: string;
|
|
31
|
+
valueProp?: string;
|
|
32
|
+
optionLabelProp?: string;
|
|
33
|
+
properties?: {
|
|
34
|
+
labelInValue?: boolean;
|
|
35
|
+
allowClear?: boolean;
|
|
36
|
+
maxTagCount?: number;
|
|
37
|
+
showSearch?: boolean;
|
|
38
|
+
listHeight?: number;
|
|
39
|
+
};
|
|
40
|
+
filter?: {
|
|
41
|
+
fieldID: string;
|
|
42
|
+
referenceField: string;
|
|
43
|
+
}[];
|
|
44
|
+
} & TInputGeneric & TLookupProps;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { EInputType, TInputGeneric } from './_input';
|
|
2
|
+
import { EDataType } from '../common';
|
|
3
|
+
import { ReactNode } from 'react';
|
|
4
|
+
export type TInputSlider = {
|
|
5
|
+
dataType: EDataType.number | "number";
|
|
6
|
+
inputType: EInputType.slider | "slider";
|
|
7
|
+
properties?: {
|
|
8
|
+
min?: number;
|
|
9
|
+
max?: number;
|
|
10
|
+
step?: number;
|
|
11
|
+
marks?: Record<number, any>;
|
|
12
|
+
vertical?: boolean;
|
|
13
|
+
reverse?: boolean;
|
|
14
|
+
tooltipVisible?: boolean;
|
|
15
|
+
tooltipFormatter?: (value: number) => string;
|
|
16
|
+
prefix?: ReactNode | string | undefined | null;
|
|
17
|
+
suffix?: ReactNode | string | undefined | null;
|
|
18
|
+
};
|
|
19
|
+
} & (inputSliderRange | inputSliderSingle) & TInputGeneric;
|
|
20
|
+
type inputSliderRange = {
|
|
21
|
+
defaultValue?: number[];
|
|
22
|
+
range?: true | {
|
|
23
|
+
editable: boolean;
|
|
24
|
+
draggableTrack: boolean;
|
|
25
|
+
minCount: number;
|
|
26
|
+
maxCount: number;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
type inputSliderSingle = {
|
|
30
|
+
defaultValue?: number;
|
|
31
|
+
range?: false | null | undefined;
|
|
32
|
+
};
|
|
33
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { EInputType, TInputGeneric } from './_input';
|
|
3
|
+
import { EDataType } from '../common';
|
|
4
|
+
export type TInputSwitch = {
|
|
5
|
+
dataType: EDataType.boolean | "boolean";
|
|
6
|
+
inputType: EInputType.switch | "switch";
|
|
7
|
+
defaultValue?: boolean;
|
|
8
|
+
properties?: {
|
|
9
|
+
checkedChildren?: ReactNode;
|
|
10
|
+
unCheckedChildren?: ReactNode;
|
|
11
|
+
};
|
|
12
|
+
} & TInputGeneric;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { EInputType, TInputGeneric } from './_input';
|
|
3
|
+
import { EDataType } from '../common';
|
|
4
|
+
export type TInputString = {
|
|
5
|
+
dataType: EDataType.string | "string";
|
|
6
|
+
inputType: EInputType.string | "string";
|
|
7
|
+
defaultValue?: string;
|
|
8
|
+
properties?: {
|
|
9
|
+
suffix?: ReactNode | string | undefined | null;
|
|
10
|
+
prefix?: ReactNode | string | undefined | null;
|
|
11
|
+
maxLength?: number;
|
|
12
|
+
allowClear?: boolean;
|
|
13
|
+
showCount?: boolean;
|
|
14
|
+
};
|
|
15
|
+
} & TInputGeneric;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { EInputType, TInputGeneric } from './_input';
|
|
2
|
+
import { EDataType } from '../common';
|
|
3
|
+
export type TInputTextArea = {
|
|
4
|
+
dataType: EDataType.string | "string";
|
|
5
|
+
inputType: EInputType.textarea | "textarea";
|
|
6
|
+
defaultValue?: string;
|
|
7
|
+
properties?: {
|
|
8
|
+
resize?: "vertical" | "horizontal" | "both" | "none";
|
|
9
|
+
maxLength?: number;
|
|
10
|
+
allowClear?: boolean;
|
|
11
|
+
showCount?: boolean;
|
|
12
|
+
autoSize?: boolean | {
|
|
13
|
+
minRows: number;
|
|
14
|
+
maxRows: number;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
} & TInputGeneric;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { EInputType, TInputGeneric } from './_input';
|
|
2
|
+
import { EDataType } from '../common';
|
|
3
|
+
import { ReactElement, ReactNode } from 'react';
|
|
4
|
+
import { UploadFile } from 'antd';
|
|
5
|
+
import { TFormGeneralProps } from '../form';
|
|
6
|
+
export type TInputUpload = {
|
|
7
|
+
dataType: EDataType.object | "object";
|
|
8
|
+
inputType: EInputType.upload | "upload";
|
|
9
|
+
httpConfig: {
|
|
10
|
+
fetchUrl?: string | ((props: TFormGeneralProps) => string);
|
|
11
|
+
uploadUrl?: string | ((props: TFormGeneralProps) => string);
|
|
12
|
+
postUploadUrl?: string | ((props: TFormGeneralProps) => string);
|
|
13
|
+
deleteUrl?: string | ((props: TFormGeneralProps) => string);
|
|
14
|
+
uploadPath?: string | ((props: TFormGeneralProps) => string);
|
|
15
|
+
headers?: Record<string, string>;
|
|
16
|
+
body?: Record<string, any>;
|
|
17
|
+
};
|
|
18
|
+
fileRender?: (originNode: ReactElement, file: UploadFile, fileList: UploadFile[]) => ReactNode;
|
|
19
|
+
render?: (props: TFormGeneralProps) => ReactNode;
|
|
20
|
+
message?: string | ((props: TFormGeneralProps) => string);
|
|
21
|
+
properties?: {
|
|
22
|
+
fileSizeLimit?: number;
|
|
23
|
+
accept?: string;
|
|
24
|
+
maxCount?: number;
|
|
25
|
+
showUploadList?: boolean | {
|
|
26
|
+
extra?: ReactNode | ((file: UploadFile) => ReactNode);
|
|
27
|
+
showPreviewIcon?: boolean | ((file: UploadFile) => boolean);
|
|
28
|
+
showDownloadIcon?: boolean | ((file: UploadFile) => boolean);
|
|
29
|
+
showRemoveIcon?: boolean | ((file: UploadFile) => boolean);
|
|
30
|
+
previewIcon?: ReactNode | ((file: UploadFile) => ReactNode);
|
|
31
|
+
removeIcon?: ReactNode | ((file: UploadFile) => ReactNode);
|
|
32
|
+
downloadIcon?: ReactNode | ((file: UploadFile) => ReactNode);
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
} & (TInputUploadImage | TInputUploadFile) & TInputGeneric;
|
|
36
|
+
export type TInputUploadImage = {
|
|
37
|
+
fileType: "image";
|
|
38
|
+
multiple?: false;
|
|
39
|
+
saveAsBase64?: boolean;
|
|
40
|
+
};
|
|
41
|
+
export type TInputUploadFile = {
|
|
42
|
+
fileType: "image" | "file";
|
|
43
|
+
multiple?: boolean;
|
|
44
|
+
};
|