@akinon/akiform-builder 0.6.0 → 0.7.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/cjs/akiform-builder.d.ts +6 -0
- package/dist/cjs/akiform-builder.d.ts.map +1 -0
- package/dist/cjs/akiform-builder.js +283 -0
- package/dist/cjs/field-builder.d.ts +35 -0
- package/dist/cjs/field-builder.d.ts.map +1 -0
- package/dist/cjs/field-builder.js +87 -0
- package/dist/cjs/i18n/index.d.ts +5 -0
- package/dist/cjs/i18n/index.d.ts.map +1 -0
- package/dist/cjs/i18n/index.js +14 -0
- package/dist/cjs/i18n/translations/en.d.ts +7 -0
- package/dist/cjs/i18n/translations/en.d.ts.map +1 -0
- package/dist/cjs/i18n/translations/en.js +8 -0
- package/dist/cjs/i18n/translations/tr.d.ts +7 -0
- package/dist/cjs/i18n/translations/tr.d.ts.map +1 -0
- package/dist/cjs/i18n/translations/tr.js +8 -0
- package/dist/cjs/index.d.ts +2 -4
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +4 -9
- package/dist/cjs/types.d.ts +62 -62
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/esm/akiform-builder.d.ts +6 -0
- package/dist/esm/akiform-builder.d.ts.map +1 -0
- package/dist/esm/akiform-builder.js +280 -0
- package/dist/esm/field-builder.d.ts +35 -0
- package/dist/esm/field-builder.d.ts.map +1 -0
- package/dist/esm/field-builder.js +84 -0
- package/dist/esm/i18n/index.d.ts +5 -0
- package/dist/esm/i18n/index.d.ts.map +1 -0
- package/dist/esm/i18n/index.js +11 -0
- package/dist/esm/i18n/translations/en.d.ts +7 -0
- package/dist/esm/i18n/translations/en.d.ts.map +1 -0
- package/dist/esm/i18n/translations/en.js +6 -0
- package/dist/esm/i18n/translations/tr.d.ts +7 -0
- package/dist/esm/i18n/translations/tr.d.ts.map +1 -0
- package/dist/esm/i18n/translations/tr.js +6 -0
- package/dist/esm/index.d.ts +2 -4
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +2 -4
- package/dist/esm/types.d.ts +62 -62
- package/dist/esm/types.d.ts.map +1 -1
- package/package.json +15 -17
- package/dist/cjs/FormBuilderWatch.d.ts +0 -16
- package/dist/cjs/FormBuilderWatch.d.ts.map +0 -1
- package/dist/cjs/FormBuilderWatch.js +0 -72
- package/dist/cjs/RenderField.d.ts +0 -5
- package/dist/cjs/RenderField.d.ts.map +0 -1
- package/dist/cjs/RenderField.js +0 -45
- package/dist/cjs/component.d.ts +0 -4
- package/dist/cjs/component.d.ts.map +0 -1
- package/dist/cjs/component.js +0 -46
- package/dist/cjs/hook.d.ts +0 -3
- package/dist/cjs/hook.d.ts.map +0 -1
- package/dist/cjs/hook.js +0 -38
- package/dist/cjs/transformers/index.d.ts +0 -4
- package/dist/cjs/transformers/index.d.ts.map +0 -1
- package/dist/cjs/transformers/index.js +0 -77
- package/dist/cjs/transformers/types.d.ts +0 -22
- package/dist/cjs/transformers/types.d.ts.map +0 -1
- package/dist/cjs/transformers/types.js +0 -18
- package/dist/esm/FormBuilderWatch.d.ts +0 -16
- package/dist/esm/FormBuilderWatch.d.ts.map +0 -1
- package/dist/esm/FormBuilderWatch.js +0 -68
- package/dist/esm/RenderField.d.ts +0 -5
- package/dist/esm/RenderField.d.ts.map +0 -1
- package/dist/esm/RenderField.js +0 -41
- package/dist/esm/component.d.ts +0 -4
- package/dist/esm/component.d.ts.map +0 -1
- package/dist/esm/component.js +0 -42
- package/dist/esm/hook.d.ts +0 -3
- package/dist/esm/hook.d.ts.map +0 -1
- package/dist/esm/hook.js +0 -34
- package/dist/esm/transformers/index.d.ts +0 -4
- package/dist/esm/transformers/index.d.ts.map +0 -1
- package/dist/esm/transformers/index.js +0 -73
- package/dist/esm/transformers/types.d.ts +0 -22
- package/dist/esm/transformers/types.d.ts.map +0 -1
- package/dist/esm/transformers/types.js +0 -15
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
export
|
|
2
|
-
export {
|
|
3
|
-
export { useFormBuilder } from './hook';
|
|
4
|
-
export { transformToFormFields } from './transformers';
|
|
1
|
+
export * from './akiform-builder';
|
|
2
|
+
export { field } from './field-builder';
|
|
5
3
|
export * from './types';
|
|
6
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,cAAc,SAAS,CAAC"}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
export
|
|
2
|
-
export {
|
|
3
|
-
export { useFormBuilder } from './hook';
|
|
4
|
-
export { transformToFormFields } from './transformers';
|
|
1
|
+
export * from './akiform-builder';
|
|
2
|
+
export { field } from './field-builder';
|
|
5
3
|
export * from './types';
|
package/dist/esm/types.d.ts
CHANGED
|
@@ -1,82 +1,82 @@
|
|
|
1
|
-
|
|
2
|
-
import { AkiformProps, Control, FieldArrayWithId, UseFormReturn } from '@akinon/akiform';
|
|
1
|
+
import { AkiformProps, Control, FieldPath, FieldValues } from '@akinon/akiform';
|
|
3
2
|
import { AnySchema } from '@akinon/akival';
|
|
4
|
-
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
key:
|
|
3
|
+
import { FormEventHandler, ReactElement } from 'react';
|
|
4
|
+
export type FieldType = 'text' | 'number' | 'select' | 'checkbox' | 'date' | 'fieldArray' | 'textarea' | 'custom' | 'section';
|
|
5
|
+
export interface BaseField<TFieldValues extends FieldValues = FieldValues> {
|
|
6
|
+
key: FieldPath<TFieldValues>;
|
|
8
7
|
label: string;
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
type: FieldType;
|
|
9
|
+
placeholder?: string;
|
|
10
|
+
defaultValue?: unknown;
|
|
11
11
|
validation?: AnySchema;
|
|
12
|
+
config?: FieldConfig;
|
|
12
13
|
}
|
|
13
|
-
export interface
|
|
14
|
-
type: '
|
|
15
|
-
config: FieldArrayConfig;
|
|
16
|
-
}
|
|
17
|
-
interface FieldArrayConfig {
|
|
18
|
-
name: string;
|
|
19
|
-
keyName?: string;
|
|
20
|
-
fields: FormField[];
|
|
21
|
-
}
|
|
22
|
-
export interface InputField extends BaseField<string> {
|
|
23
|
-
type: 'input';
|
|
24
|
-
placeholder?: string;
|
|
25
|
-
props?: {
|
|
26
|
-
mode?: 'multiple';
|
|
27
|
-
};
|
|
14
|
+
export interface TextField<TFieldValues extends FieldValues = FieldValues> extends BaseField<TFieldValues> {
|
|
15
|
+
type: 'text';
|
|
28
16
|
}
|
|
29
|
-
export interface NumberField extends BaseField<
|
|
17
|
+
export interface NumberField<TFieldValues extends FieldValues = FieldValues> extends BaseField<TFieldValues> {
|
|
30
18
|
type: 'number';
|
|
31
|
-
placeholder?: string;
|
|
32
19
|
}
|
|
33
|
-
export interface SelectField extends
|
|
20
|
+
export interface SelectField<TFieldValues extends FieldValues = FieldValues> extends BaseField<TFieldValues> {
|
|
34
21
|
type: 'select';
|
|
35
22
|
options: Array<{
|
|
36
|
-
key: string;
|
|
37
23
|
value: string | number;
|
|
38
24
|
label: string;
|
|
39
25
|
}>;
|
|
40
|
-
placeholder?: string;
|
|
41
|
-
props?: {
|
|
42
|
-
mode?: 'multiple';
|
|
43
|
-
};
|
|
44
26
|
}
|
|
45
|
-
export interface CheckboxField extends BaseField<
|
|
27
|
+
export interface CheckboxField<TFieldValues extends FieldValues = FieldValues> extends BaseField<TFieldValues> {
|
|
46
28
|
type: 'checkbox';
|
|
47
|
-
|
|
48
|
-
|
|
29
|
+
}
|
|
30
|
+
export interface DateField<TFieldValues extends FieldValues = FieldValues> extends BaseField<TFieldValues> {
|
|
31
|
+
type: 'date';
|
|
32
|
+
}
|
|
33
|
+
export interface FieldArrayField<TFieldValues extends FieldValues = FieldValues> extends BaseField<TFieldValues> {
|
|
34
|
+
type: 'fieldArray';
|
|
35
|
+
fields: FormField<TFieldValues>[];
|
|
36
|
+
}
|
|
37
|
+
export interface TextareaField<TFieldValues extends FieldValues = FieldValues> extends BaseField<TFieldValues> {
|
|
38
|
+
type: 'textarea';
|
|
39
|
+
}
|
|
40
|
+
export interface CustomField<TFieldValues extends FieldValues = FieldValues> extends BaseField<TFieldValues> {
|
|
41
|
+
type: 'custom';
|
|
42
|
+
render: (props: {
|
|
43
|
+
field: BaseField<TFieldValues>;
|
|
44
|
+
formValues: TFieldValues;
|
|
45
|
+
control: Control<TFieldValues>;
|
|
46
|
+
formState: any;
|
|
47
|
+
}) => ReactElement;
|
|
48
|
+
}
|
|
49
|
+
export interface SectionField<TFieldValues extends FieldValues = FieldValues> extends BaseField<TFieldValues> {
|
|
50
|
+
type: 'section';
|
|
51
|
+
fields: FormField<TFieldValues>[];
|
|
52
|
+
defaultExpanded?: boolean;
|
|
53
|
+
}
|
|
54
|
+
export type FormField<TFieldValues extends FieldValues = FieldValues> = TextField<TFieldValues> | NumberField<TFieldValues> | SelectField<TFieldValues> | CheckboxField<TFieldValues> | DateField<TFieldValues> | FieldArrayField<TFieldValues> | TextareaField<TFieldValues> | CustomField<TFieldValues> | SectionField<TFieldValues>;
|
|
55
|
+
export type FormLayout = 'vertical' | 'horizontal' | 'inline';
|
|
56
|
+
export interface LayoutOptions {
|
|
57
|
+
labelCol?: {
|
|
58
|
+
span: number;
|
|
59
|
+
};
|
|
60
|
+
wrapperCol?: {
|
|
61
|
+
span: number;
|
|
49
62
|
};
|
|
50
63
|
}
|
|
51
|
-
export interface
|
|
52
|
-
|
|
53
|
-
|
|
64
|
+
export interface AkiformBuilderProps<TFieldValues extends FieldValues = FieldValues> extends Omit<AkiformProps, 'fields' | 'onReset' | 'onChange'> {
|
|
65
|
+
fields: FormField<TFieldValues>[];
|
|
66
|
+
onSubmit: (values: TFieldValues) => void;
|
|
67
|
+
layout?: FormLayout;
|
|
68
|
+
layoutOptions?: LayoutOptions;
|
|
69
|
+
showResetButton?: boolean;
|
|
70
|
+
onReset?: FormEventHandler<HTMLFormElement>;
|
|
71
|
+
controlled?: boolean;
|
|
72
|
+
values?: TFieldValues;
|
|
73
|
+
onValueChange?: (values: TFieldValues) => void;
|
|
54
74
|
}
|
|
55
|
-
export
|
|
56
|
-
|
|
57
|
-
builderFields: FormField[];
|
|
58
|
-
children?: React.ReactNode;
|
|
75
|
+
export interface AkiformBuilderRef<TFieldValues extends FieldValues = FieldValues> {
|
|
76
|
+
reset: (values?: Partial<TFieldValues>) => void;
|
|
59
77
|
}
|
|
60
|
-
export interface
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
watch: UseFormReturn['watch'];
|
|
64
|
-
reset: UseFormReturn['reset'];
|
|
65
|
-
control: Control;
|
|
66
|
-
formState: UseFormReturn['formState'];
|
|
67
|
-
getValues: UseFormReturn['getValues'];
|
|
68
|
-
setValue: UseFormReturn['setValue'];
|
|
69
|
-
trigger: UseFormReturn['trigger'];
|
|
70
|
-
fieldArrays: Array<{
|
|
71
|
-
name: string;
|
|
72
|
-
fields: FieldArrayWithId<any>[];
|
|
73
|
-
append: (value: any) => void;
|
|
74
|
-
remove: (index?: number | number[]) => void;
|
|
75
|
-
prepend: (value: any) => void;
|
|
76
|
-
insert: (index: number, value: any) => void;
|
|
77
|
-
swap: (indexA: number, indexB: number) => void;
|
|
78
|
-
move: (from: number, to: number) => void;
|
|
79
|
-
}>;
|
|
78
|
+
export interface FieldConfig<T = unknown> {
|
|
79
|
+
disabled?: boolean | ((values: T) => boolean);
|
|
80
|
+
visible?: boolean | ((values: T) => boolean);
|
|
80
81
|
}
|
|
81
|
-
export {};
|
|
82
82
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/esm/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAEvD,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,MAAM,GACN,YAAY,GACZ,UAAU,GACV,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,WAAW,SAAS,CAAC,YAAY,SAAS,WAAW,GAAG,WAAW;IACvE,GAAG,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,SAAS,CAAC,YAAY,SAAS,WAAW,GAAG,WAAW,CACvE,SAAQ,SAAS,CAAC,YAAY,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW,CAAC,YAAY,SAAS,WAAW,GAAG,WAAW,CACzE,SAAQ,SAAS,CAAC,YAAY,CAAC;IAC/B,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,MAAM,WAAW,WAAW,CAAC,YAAY,SAAS,WAAW,GAAG,WAAW,CACzE,SAAQ,SAAS,CAAC,YAAY,CAAC;IAC/B,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC3D;AAED,MAAM,WAAW,aAAa,CAAC,YAAY,SAAS,WAAW,GAAG,WAAW,CAC3E,SAAQ,SAAS,CAAC,YAAY,CAAC;IAC/B,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,MAAM,WAAW,SAAS,CAAC,YAAY,SAAS,WAAW,GAAG,WAAW,CACvE,SAAQ,SAAS,CAAC,YAAY,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe,CAAC,YAAY,SAAS,WAAW,GAAG,WAAW,CAC7E,SAAQ,SAAS,CAAC,YAAY,CAAC;IAC/B,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,aAAa,CAAC,YAAY,SAAS,WAAW,GAAG,WAAW,CAC3E,SAAQ,SAAS,CAAC,YAAY,CAAC;IAC/B,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,MAAM,WAAW,WAAW,CAAC,YAAY,SAAS,WAAW,GAAG,WAAW,CACzE,SAAQ,SAAS,CAAC,YAAY,CAAC;IAC/B,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,CAAC,KAAK,EAAE;QACd,KAAK,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;QAC/B,UAAU,EAAE,YAAY,CAAC;QACzB,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QAE/B,SAAS,EAAE,GAAG,CAAC;KAChB,KAAK,YAAY,CAAC;CACpB;AAED,MAAM,WAAW,YAAY,CAAC,YAAY,SAAS,WAAW,GAAG,WAAW,CAC1E,SAAQ,SAAS,CAAC,YAAY,CAAC;IAC/B,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;IAClC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,MAAM,SAAS,CAAC,YAAY,SAAS,WAAW,GAAG,WAAW,IAChE,SAAS,CAAC,YAAY,CAAC,GACvB,WAAW,CAAC,YAAY,CAAC,GACzB,WAAW,CAAC,YAAY,CAAC,GACzB,aAAa,CAAC,YAAY,CAAC,GAC3B,SAAS,CAAC,YAAY,CAAC,GACvB,eAAe,CAAC,YAAY,CAAC,GAC7B,aAAa,CAAC,YAAY,CAAC,GAC3B,WAAW,CAAC,YAAY,CAAC,GACzB,YAAY,CAAC,YAAY,CAAC,CAAC;AAE/B,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,YAAY,GAAG,QAAQ,CAAC;AAE9D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5B,UAAU,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAmB,CAClC,YAAY,SAAS,WAAW,GAAG,WAAW,CAC9C,SAAQ,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;IAC7D,MAAM,EAAE,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;IAClC,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IACzC,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,gBAAgB,CAAC,eAAe,CAAC,CAAC;IAC5C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;CAChD;AAED,MAAM,WAAW,iBAAiB,CAChC,YAAY,SAAS,WAAW,GAAG,WAAW;IAE9C,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;CACjD;AAED,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,OAAO;IACtC,QAAQ,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC;IAC9C,OAAO,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC;CAC9C"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@akinon/akiform-builder",
|
|
3
3
|
"description": "Form builder library for form operations.",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.7.0",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "dist/esm/index.js",
|
|
@@ -10,23 +10,25 @@
|
|
|
10
10
|
"dist"
|
|
11
11
|
],
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@akinon/akiform": "0.
|
|
14
|
-
"@akinon/akival": "0.
|
|
15
|
-
"@akinon/
|
|
16
|
-
"@akinon/ui-
|
|
17
|
-
"@akinon/ui-
|
|
18
|
-
"@akinon/ui-
|
|
19
|
-
"@akinon/ui-date-picker": "0.
|
|
20
|
-
"@akinon/ui-
|
|
13
|
+
"@akinon/akiform": "0.8.0",
|
|
14
|
+
"@akinon/akival": "0.5.0",
|
|
15
|
+
"@akinon/akilocale": "0.13.0",
|
|
16
|
+
"@akinon/ui-button": "0.6.0",
|
|
17
|
+
"@akinon/ui-checkbox": "0.4.0",
|
|
18
|
+
"@akinon/ui-collapse": "0.4.0",
|
|
19
|
+
"@akinon/ui-date-picker": "0.4.0",
|
|
20
|
+
"@akinon/ui-input": "0.5.0",
|
|
21
|
+
"@akinon/ui-input-number": "0.4.0",
|
|
22
|
+
"@akinon/ui-select": "0.4.0",
|
|
23
|
+
"@akinon/ui-space": "0.4.0"
|
|
21
24
|
},
|
|
22
25
|
"devDependencies": {
|
|
23
26
|
"clean-package": "2.2.0",
|
|
24
27
|
"copyfiles": "^2.4.1",
|
|
25
28
|
"rimraf": "^5.0.5",
|
|
26
29
|
"typescript": "^5.2.2",
|
|
27
|
-
"@akinon/typescript-config": "0.
|
|
28
|
-
"@akinon/
|
|
29
|
-
"@akinon/eslint-config": "0.1.0"
|
|
30
|
+
"@akinon/typescript-config": "0.3.0",
|
|
31
|
+
"@akinon/utils": "0.2.0"
|
|
30
32
|
},
|
|
31
33
|
"peerDependencies": {
|
|
32
34
|
"react": ">=18",
|
|
@@ -47,11 +49,7 @@
|
|
|
47
49
|
"build:esm": "tsc --outDir dist/esm",
|
|
48
50
|
"build:commonjs": "tsc --module commonjs --outDir dist/cjs",
|
|
49
51
|
"copy:files": "copyfiles -u 1 src/**/*.css dist/esm && copyfiles -u 1 src/**/*.css dist/cjs",
|
|
50
|
-
"
|
|
51
|
-
"test": "vitest run",
|
|
52
|
-
"test:ui": "vitest --ui",
|
|
53
|
-
"test:coverage": "vitest run --coverage",
|
|
54
|
-
"test:watch": "vitest watch",
|
|
52
|
+
"clean": "rimraf dist/",
|
|
55
53
|
"typecheck": "tsc --noEmit"
|
|
56
54
|
}
|
|
57
55
|
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { FormField } from './types';
|
|
3
|
-
type FormBuilderWatchProps = {
|
|
4
|
-
builderFields: FormField[];
|
|
5
|
-
isDebounced?: boolean;
|
|
6
|
-
handleChange: (data: any) => void;
|
|
7
|
-
};
|
|
8
|
-
/**
|
|
9
|
-
* Reasons why seperate FormBuilderWatch component is created from FormBuilder:
|
|
10
|
-
* 1. FormBuilderWatch is a controlled component, value of form fields is controlled. In any given time, value of any field can be forced from parent. It's directly working with value instead of defaultValues. Also there is no way to change defaultValues after first render.
|
|
11
|
-
* 2. FormBuilderWatch is watching form changes and calls the given callback function. It's not using form methods like handleSubmit, reset, etc.
|
|
12
|
-
* 3. It's meticulously designed to not create loop. Since it's controlled and watching form changes, it's easy to create infinite loop. For example, callback can be called as result of form change, and parent can react to this change by returning same values to form.
|
|
13
|
-
*/
|
|
14
|
-
export declare const FormBuilderWatch: ({ builderFields, handleChange, isDebounced }: FormBuilderWatchProps) => React.JSX.Element;
|
|
15
|
-
export {};
|
|
16
|
-
//# sourceMappingURL=FormBuilderWatch.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FormBuilderWatch.d.ts","sourceRoot":"","sources":["../../src/FormBuilderWatch.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,KAAK,qBAAqB,GAAG;IAC3B,aAAa,EAAE,SAAS,EAAE,CAAC;IAE3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;CACnC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,iDAI1B,qBAAqB,sBAgFvB,CAAC"}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FormBuilderWatch = void 0;
|
|
4
|
-
const akiform_1 = require("@akinon/akiform");
|
|
5
|
-
const dayjs_1 = require("dayjs");
|
|
6
|
-
const react_1 = require("react");
|
|
7
|
-
const RenderField_1 = require("./RenderField");
|
|
8
|
-
/**
|
|
9
|
-
* Reasons why seperate FormBuilderWatch component is created from FormBuilder:
|
|
10
|
-
* 1. FormBuilderWatch is a controlled component, value of form fields is controlled. In any given time, value of any field can be forced from parent. It's directly working with value instead of defaultValues. Also there is no way to change defaultValues after first render.
|
|
11
|
-
* 2. FormBuilderWatch is watching form changes and calls the given callback function. It's not using form methods like handleSubmit, reset, etc.
|
|
12
|
-
* 3. It's meticulously designed to not create loop. Since it's controlled and watching form changes, it's easy to create infinite loop. For example, callback can be called as result of form change, and parent can react to this change by returning same values to form.
|
|
13
|
-
*/
|
|
14
|
-
const FormBuilderWatch = ({ builderFields, handleChange, isDebounced = false }) => {
|
|
15
|
-
const { control, setValue } = (0, akiform_1.useForm)();
|
|
16
|
-
const formWatch = (0, akiform_1.useWatch)({ control });
|
|
17
|
-
react_1.default.useEffect(() => {
|
|
18
|
-
// if formWatch are empty object, it means it's the first render. Do not call handleChange
|
|
19
|
-
if (!Object.keys(formWatch).length)
|
|
20
|
-
return;
|
|
21
|
-
// if item.value is same with formWatch do not call handleChange to prevent infinite loop
|
|
22
|
-
const isSame = builderFields.every(field => {
|
|
23
|
-
// if field type is datepicker, convert the formWatch value to string before comparing
|
|
24
|
-
if (field.type === 'datepicker') {
|
|
25
|
-
if (formWatch[field.key] === null) {
|
|
26
|
-
formWatch[field.key] = undefined;
|
|
27
|
-
}
|
|
28
|
-
if (!formWatch[field.key]) {
|
|
29
|
-
return field.value === formWatch[field.key];
|
|
30
|
-
}
|
|
31
|
-
const compareResult = (0, dayjs_1.default)(field.value).isSame((0, dayjs_1.default)(formWatch[field.key]), 'day');
|
|
32
|
-
return compareResult;
|
|
33
|
-
}
|
|
34
|
-
// TODO write tests for this part because it can be a source of bug
|
|
35
|
-
// if watch value is object, should stringify before comparing
|
|
36
|
-
const isWatchValueObject = typeof formWatch[field.key] === 'object';
|
|
37
|
-
if (isWatchValueObject) {
|
|
38
|
-
return (JSON.stringify(field.value) === JSON.stringify(formWatch[field.key]));
|
|
39
|
-
}
|
|
40
|
-
return field.value === formWatch[field.key];
|
|
41
|
-
});
|
|
42
|
-
if (isSame) {
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
if (!isDebounced) {
|
|
46
|
-
handleChange(formWatch);
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
const timeout = setTimeout(() => {
|
|
50
|
-
handleChange(formWatch);
|
|
51
|
-
}, 1000);
|
|
52
|
-
return () => {
|
|
53
|
-
clearTimeout(timeout);
|
|
54
|
-
};
|
|
55
|
-
}, [formWatch]);
|
|
56
|
-
// value of fields can be set by parent
|
|
57
|
-
react_1.default.useEffect(() => {
|
|
58
|
-
builderFields.forEach(field => {
|
|
59
|
-
const { key, value, type } = field;
|
|
60
|
-
// if type is datepicker and value is set, convert it to dayjs
|
|
61
|
-
if (type === 'datepicker' && value) {
|
|
62
|
-
setValue(key, (0, dayjs_1.default)(value));
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
setValue(key, value);
|
|
66
|
-
});
|
|
67
|
-
}, [builderFields]);
|
|
68
|
-
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
69
|
-
react_1.default.createElement("div", { className: "form-builder" },
|
|
70
|
-
react_1.default.createElement(akiform_1.Akiform, null, builderFields.map(field => (0, RenderField_1.RenderField)(field, control))))));
|
|
71
|
-
};
|
|
72
|
-
exports.FormBuilderWatch = FormBuilderWatch;
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { Control } from '@akinon/akiform';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import { FormField } from './types';
|
|
4
|
-
export declare const RenderField: (field: FormField, control: Control) => React.JSX.Element | "unsupported field type" | undefined;
|
|
5
|
-
//# sourceMappingURL=RenderField.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RenderField.d.ts","sourceRoot":"","sources":["../../src/RenderField.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,MAAM,iBAAiB,CAAC;AAMpD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAGL,SAAS,EAIV,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,WAAW,UAAW,SAAS,WAAW,OAAO,6DA+F7D,CAAC"}
|
package/dist/cjs/RenderField.js
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RenderField = void 0;
|
|
4
|
-
const akiform_1 = require("@akinon/akiform");
|
|
5
|
-
const ui_checkbox_1 = require("@akinon/ui-checkbox");
|
|
6
|
-
const ui_date_picker_1 = require("@akinon/ui-date-picker");
|
|
7
|
-
const ui_input_1 = require("@akinon/ui-input");
|
|
8
|
-
const ui_input_number_1 = require("@akinon/ui-input-number");
|
|
9
|
-
const ui_select_1 = require("@akinon/ui-select");
|
|
10
|
-
const react_1 = require("react");
|
|
11
|
-
const RenderField = (field, control) => {
|
|
12
|
-
var _a, _b;
|
|
13
|
-
switch (field.type) {
|
|
14
|
-
case 'input':
|
|
15
|
-
const inputField = field;
|
|
16
|
-
return (react_1.default.createElement(akiform_1.FormItem, { key: inputField.key, name: inputField.key, label: inputField.label, control: control }, ((_a = inputField.props) === null || _a === void 0 ? void 0 : _a.mode) !== 'multiple' ? (react_1.default.createElement(ui_input_1.Input, { placeholder: inputField.placeholder })) : (react_1.default.createElement(ui_select_1.Select, { mode: "tags", placeholder: inputField.placeholder }))));
|
|
17
|
-
case 'number':
|
|
18
|
-
const numberField = field;
|
|
19
|
-
return (react_1.default.createElement(akiform_1.FormItem, { key: numberField.key, name: numberField.key, label: numberField.label, control: control },
|
|
20
|
-
react_1.default.createElement(ui_input_number_1.InputNumber, { keyboard: false, placeholder: numberField.placeholder })));
|
|
21
|
-
case 'select':
|
|
22
|
-
const selectField = field;
|
|
23
|
-
return (react_1.default.createElement(akiform_1.FormItem, { key: selectField.key, name: selectField.key, label: selectField.label, control: control },
|
|
24
|
-
react_1.default.createElement(ui_select_1.Select, { mode: (_b = selectField.props) === null || _b === void 0 ? void 0 : _b.mode, options: selectField.options, placeholder: selectField.placeholder })));
|
|
25
|
-
case 'checkbox':
|
|
26
|
-
const checkboxField = field;
|
|
27
|
-
const { labelRightAligned } = checkboxField.props || {};
|
|
28
|
-
return (react_1.default.createElement(akiform_1.FormItem, { key: checkboxField.key, name: checkboxField.key, initialValue: checkboxField.value, control: control, valuePropName: "checked",
|
|
29
|
-
// if labelRightAligned is true, don't pass label prop to Checkbox
|
|
30
|
-
label: labelRightAligned ? '' : checkboxField.label },
|
|
31
|
-
react_1.default.createElement(ui_checkbox_1.Checkbox, null, labelRightAligned ? checkboxField.label : '')));
|
|
32
|
-
case 'datepicker':
|
|
33
|
-
const datePickerField = field;
|
|
34
|
-
return (react_1.default.createElement(akiform_1.FormItem, { key: datePickerField.key, name: datePickerField.key, label: datePickerField.label, control: control },
|
|
35
|
-
react_1.default.createElement(ui_date_picker_1.DatePicker, { placeholder: datePickerField.placeholder })));
|
|
36
|
-
case 'field-array':
|
|
37
|
-
if (field.config) {
|
|
38
|
-
return (react_1.default.createElement(react_1.default.Fragment, { key: field.key }, field.config.fields.map(nestedField => (0, exports.RenderField)(nestedField, control))));
|
|
39
|
-
}
|
|
40
|
-
break;
|
|
41
|
-
default:
|
|
42
|
-
return 'unsupported field type';
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
exports.RenderField = RenderField;
|
package/dist/cjs/component.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/component.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA0ClD,CAAC"}
|
package/dist/cjs/component.js
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
-
var t = {};
|
|
4
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
-
t[p] = s[p];
|
|
6
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
-
t[p[i]] = s[p[i]];
|
|
10
|
-
}
|
|
11
|
-
return t;
|
|
12
|
-
};
|
|
13
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.FormBuilder = void 0;
|
|
15
|
-
const akiform_1 = require("@akinon/akiform");
|
|
16
|
-
const akival = require("@akinon/akival");
|
|
17
|
-
const react_1 = require("react");
|
|
18
|
-
const RenderField_1 = require("./RenderField");
|
|
19
|
-
const FormBuilder = (_a) => {
|
|
20
|
-
var { builderFields, children } = _a, formProps = __rest(_a, ["builderFields", "children"]);
|
|
21
|
-
const validationSchema = akival.object(builderFields.reduce((schema, field) => {
|
|
22
|
-
if (field.type !== 'field-array' && field.validation) {
|
|
23
|
-
return Object.assign(Object.assign({}, schema), { [field.key]: field.validation });
|
|
24
|
-
}
|
|
25
|
-
return schema;
|
|
26
|
-
}, {}));
|
|
27
|
-
const formMethods = (0, akiform_1.useForm)({
|
|
28
|
-
defaultValues: builderFields.reduce((defaultValues, field) => {
|
|
29
|
-
if (field.defaultValue !== undefined) {
|
|
30
|
-
defaultValues[field.key] = field.defaultValue;
|
|
31
|
-
}
|
|
32
|
-
return defaultValues;
|
|
33
|
-
}, {}),
|
|
34
|
-
resolver: (0, akiform_1.akivalResolver)(validationSchema)
|
|
35
|
-
});
|
|
36
|
-
const { control } = formMethods;
|
|
37
|
-
return (react_1.default.createElement(akiform_1.Akiform, Object.assign({}, formProps, { onFinish: formMethods.handleSubmit(() => {
|
|
38
|
-
var _a;
|
|
39
|
-
return (_a = formProps.onFinish) === null || _a === void 0 ? void 0 : _a.call(formProps, formMethods.getValues());
|
|
40
|
-
}, () => {
|
|
41
|
-
return console.error('Form validation failed');
|
|
42
|
-
}) }),
|
|
43
|
-
builderFields.map(field => (0, RenderField_1.RenderField)(field, control)),
|
|
44
|
-
react_1.default.createElement("div", null, children)));
|
|
45
|
-
};
|
|
46
|
-
exports.FormBuilder = FormBuilder;
|
package/dist/cjs/hook.d.ts
DELETED
package/dist/cjs/hook.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../src/hook.ts"],"names":[],"mappings":"AAQA,OAAO,EAAmB,kBAAkB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzE,eAAO,MAAM,cAAc,WAAY,SAAS,EAAE,KAAG,kBAkCpD,CAAC"}
|
package/dist/cjs/hook.js
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
-
var t = {};
|
|
4
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
-
t[p] = s[p];
|
|
6
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
-
t[p[i]] = s[p[i]];
|
|
10
|
-
}
|
|
11
|
-
return t;
|
|
12
|
-
};
|
|
13
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.useFormBuilder = void 0;
|
|
15
|
-
const akiform_1 = require("@akinon/akiform");
|
|
16
|
-
const akival = require("@akinon/akival");
|
|
17
|
-
const useFormBuilder = (fields) => {
|
|
18
|
-
const validationSchema = akival.object(fields.reduce((schema, field) => {
|
|
19
|
-
if (field.type !== 'field-array' && field.validation) {
|
|
20
|
-
return Object.assign(Object.assign({}, schema), { [field.key]: field.validation });
|
|
21
|
-
}
|
|
22
|
-
return schema;
|
|
23
|
-
}, {}));
|
|
24
|
-
const formMethods = (0, akiform_1.useForm)({
|
|
25
|
-
resolver: (0, akiform_1.akivalResolver)(validationSchema)
|
|
26
|
-
});
|
|
27
|
-
const fieldArrays = fields
|
|
28
|
-
.filter((field) => field.type === 'field-array')
|
|
29
|
-
.map(fieldArray => {
|
|
30
|
-
const _a = (0, akiform_1.useFieldArray)({
|
|
31
|
-
control: formMethods.control,
|
|
32
|
-
name: fieldArray.config.name
|
|
33
|
-
}), { fields: nestedFields } = _a, arrayHelpers = __rest(_a, ["fields"]);
|
|
34
|
-
return Object.assign(Object.assign(Object.assign({}, fieldArray), { name: fieldArray.config.name, fields: nestedFields }), arrayHelpers);
|
|
35
|
-
});
|
|
36
|
-
return Object.assign(Object.assign({}, formMethods), { fieldArrays });
|
|
37
|
-
};
|
|
38
|
-
exports.useFormBuilder = useFormBuilder;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transformers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,SAAS,EAGV,MAAM,UAAU,CAAC;AAClB,OAAO,EAAiB,WAAW,EAAE,MAAM,SAAS,CAAC;AAsBrD,eAAO,MAAM,qBAAqB,SAC1B,OAAO,MAAM,EAAE,WAAW,CAAC,KAChC,SAAS,EA8EX,CAAC"}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.transformToFormFields = void 0;
|
|
4
|
-
const types_1 = require("./types");
|
|
5
|
-
const fieldTypeMap = {
|
|
6
|
-
text: 'input',
|
|
7
|
-
input: 'input',
|
|
8
|
-
dropdown: 'select',
|
|
9
|
-
select: 'select',
|
|
10
|
-
datetime: 'datepicker',
|
|
11
|
-
nested: 'field-array',
|
|
12
|
-
boolean: 'select',
|
|
13
|
-
bool: 'checkbox'
|
|
14
|
-
};
|
|
15
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
16
|
-
function isItemCompatible(item) {
|
|
17
|
-
return (typeof item.key === 'string' &&
|
|
18
|
-
typeof item.name === 'string' &&
|
|
19
|
-
Object.values(types_1.DataTypesEnum).includes(item.data_type));
|
|
20
|
-
}
|
|
21
|
-
const transformToFormFields = (data) => {
|
|
22
|
-
return Object.values(data)
|
|
23
|
-
.reduce((acc, item) => {
|
|
24
|
-
if (!isItemCompatible(item)) {
|
|
25
|
-
console.warn('Incompatible item detected on field type transformer:', item);
|
|
26
|
-
return acc;
|
|
27
|
-
}
|
|
28
|
-
const fieldType = fieldTypeMap[item.data_type];
|
|
29
|
-
if (!fieldType) {
|
|
30
|
-
console.error('Unsupported data type:', item.data_type);
|
|
31
|
-
return acc;
|
|
32
|
-
}
|
|
33
|
-
let field = null;
|
|
34
|
-
// TODO: add defaultValue to all fields
|
|
35
|
-
switch (fieldType) {
|
|
36
|
-
case 'field-array':
|
|
37
|
-
if (item.schema) {
|
|
38
|
-
field = {
|
|
39
|
-
key: item.key,
|
|
40
|
-
label: item.name,
|
|
41
|
-
type: fieldType,
|
|
42
|
-
config: {
|
|
43
|
-
name: item.key,
|
|
44
|
-
fields: (0, exports.transformToFormFields)(item.schema)
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
break;
|
|
49
|
-
case 'select':
|
|
50
|
-
if (item.choices) {
|
|
51
|
-
const choices = item.choices;
|
|
52
|
-
field = {
|
|
53
|
-
key: item.key,
|
|
54
|
-
label: item.name,
|
|
55
|
-
type: fieldType,
|
|
56
|
-
placeholder: item.placeholder,
|
|
57
|
-
options: choices.map(choice => ({
|
|
58
|
-
key: choice.value.toString(),
|
|
59
|
-
value: choice.value,
|
|
60
|
-
label: choice.label
|
|
61
|
-
})),
|
|
62
|
-
validation: item.validation
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
break;
|
|
66
|
-
default:
|
|
67
|
-
field = Object.assign(Object.assign({}, item), { key: item.key, label: item.name, validation: item.validation, type: fieldType, children: null, control: item.control });
|
|
68
|
-
break;
|
|
69
|
-
}
|
|
70
|
-
if (field !== null) {
|
|
71
|
-
acc.push(field);
|
|
72
|
-
}
|
|
73
|
-
return acc;
|
|
74
|
-
}, [])
|
|
75
|
-
.filter((item) => item !== null);
|
|
76
|
-
};
|
|
77
|
-
exports.transformToFormFields = transformToFormFields;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
export declare enum DataTypesEnum {
|
|
2
|
-
Dropdown = "dropdown",
|
|
3
|
-
Input = "input",
|
|
4
|
-
Select = "select",
|
|
5
|
-
Text = "text",
|
|
6
|
-
Bool = "bool",
|
|
7
|
-
DateTime = "datetime",
|
|
8
|
-
Nested = "nested"
|
|
9
|
-
}
|
|
10
|
-
export type TBaseSchema = {
|
|
11
|
-
key: string;
|
|
12
|
-
data_type: DataTypesEnum[keyof DataTypesEnum];
|
|
13
|
-
name: string;
|
|
14
|
-
pk?: number | string;
|
|
15
|
-
options?: Array<{
|
|
16
|
-
key: string;
|
|
17
|
-
value: string | number;
|
|
18
|
-
label: string;
|
|
19
|
-
}>;
|
|
20
|
-
[key: string]: any;
|
|
21
|
-
};
|
|
22
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/transformers/types.ts"],"names":[],"mappings":"AAAA,oBAAY,aAAa;IAEvB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,IAAI,SAAS;IAIb,QAAQ,aAAa;IAErB,MAAM,WAAW;CAClB;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,aAAa,CAAC,MAAM,aAAa,CAAC,CAAC;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,KAAK,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IAEH,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB,CAAC"}
|