@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.
Files changed (77) hide show
  1. package/dist/cjs/akiform-builder.d.ts +6 -0
  2. package/dist/cjs/akiform-builder.d.ts.map +1 -0
  3. package/dist/cjs/akiform-builder.js +283 -0
  4. package/dist/cjs/field-builder.d.ts +35 -0
  5. package/dist/cjs/field-builder.d.ts.map +1 -0
  6. package/dist/cjs/field-builder.js +87 -0
  7. package/dist/cjs/i18n/index.d.ts +5 -0
  8. package/dist/cjs/i18n/index.d.ts.map +1 -0
  9. package/dist/cjs/i18n/index.js +14 -0
  10. package/dist/cjs/i18n/translations/en.d.ts +7 -0
  11. package/dist/cjs/i18n/translations/en.d.ts.map +1 -0
  12. package/dist/cjs/i18n/translations/en.js +8 -0
  13. package/dist/cjs/i18n/translations/tr.d.ts +7 -0
  14. package/dist/cjs/i18n/translations/tr.d.ts.map +1 -0
  15. package/dist/cjs/i18n/translations/tr.js +8 -0
  16. package/dist/cjs/index.d.ts +2 -4
  17. package/dist/cjs/index.d.ts.map +1 -1
  18. package/dist/cjs/index.js +4 -9
  19. package/dist/cjs/types.d.ts +62 -62
  20. package/dist/cjs/types.d.ts.map +1 -1
  21. package/dist/esm/akiform-builder.d.ts +6 -0
  22. package/dist/esm/akiform-builder.d.ts.map +1 -0
  23. package/dist/esm/akiform-builder.js +280 -0
  24. package/dist/esm/field-builder.d.ts +35 -0
  25. package/dist/esm/field-builder.d.ts.map +1 -0
  26. package/dist/esm/field-builder.js +84 -0
  27. package/dist/esm/i18n/index.d.ts +5 -0
  28. package/dist/esm/i18n/index.d.ts.map +1 -0
  29. package/dist/esm/i18n/index.js +11 -0
  30. package/dist/esm/i18n/translations/en.d.ts +7 -0
  31. package/dist/esm/i18n/translations/en.d.ts.map +1 -0
  32. package/dist/esm/i18n/translations/en.js +6 -0
  33. package/dist/esm/i18n/translations/tr.d.ts +7 -0
  34. package/dist/esm/i18n/translations/tr.d.ts.map +1 -0
  35. package/dist/esm/i18n/translations/tr.js +6 -0
  36. package/dist/esm/index.d.ts +2 -4
  37. package/dist/esm/index.d.ts.map +1 -1
  38. package/dist/esm/index.js +2 -4
  39. package/dist/esm/types.d.ts +62 -62
  40. package/dist/esm/types.d.ts.map +1 -1
  41. package/package.json +15 -17
  42. package/dist/cjs/FormBuilderWatch.d.ts +0 -16
  43. package/dist/cjs/FormBuilderWatch.d.ts.map +0 -1
  44. package/dist/cjs/FormBuilderWatch.js +0 -72
  45. package/dist/cjs/RenderField.d.ts +0 -5
  46. package/dist/cjs/RenderField.d.ts.map +0 -1
  47. package/dist/cjs/RenderField.js +0 -45
  48. package/dist/cjs/component.d.ts +0 -4
  49. package/dist/cjs/component.d.ts.map +0 -1
  50. package/dist/cjs/component.js +0 -46
  51. package/dist/cjs/hook.d.ts +0 -3
  52. package/dist/cjs/hook.d.ts.map +0 -1
  53. package/dist/cjs/hook.js +0 -38
  54. package/dist/cjs/transformers/index.d.ts +0 -4
  55. package/dist/cjs/transformers/index.d.ts.map +0 -1
  56. package/dist/cjs/transformers/index.js +0 -77
  57. package/dist/cjs/transformers/types.d.ts +0 -22
  58. package/dist/cjs/transformers/types.d.ts.map +0 -1
  59. package/dist/cjs/transformers/types.js +0 -18
  60. package/dist/esm/FormBuilderWatch.d.ts +0 -16
  61. package/dist/esm/FormBuilderWatch.d.ts.map +0 -1
  62. package/dist/esm/FormBuilderWatch.js +0 -68
  63. package/dist/esm/RenderField.d.ts +0 -5
  64. package/dist/esm/RenderField.d.ts.map +0 -1
  65. package/dist/esm/RenderField.js +0 -41
  66. package/dist/esm/component.d.ts +0 -4
  67. package/dist/esm/component.d.ts.map +0 -1
  68. package/dist/esm/component.js +0 -42
  69. package/dist/esm/hook.d.ts +0 -3
  70. package/dist/esm/hook.d.ts.map +0 -1
  71. package/dist/esm/hook.js +0 -34
  72. package/dist/esm/transformers/index.d.ts +0 -4
  73. package/dist/esm/transformers/index.d.ts.map +0 -1
  74. package/dist/esm/transformers/index.js +0 -73
  75. package/dist/esm/transformers/types.d.ts +0 -22
  76. package/dist/esm/transformers/types.d.ts.map +0 -1
  77. package/dist/esm/transformers/types.js +0 -15
@@ -1,6 +1,4 @@
1
- export { FormBuilder } from './component';
2
- export { FormBuilderWatch } from './FormBuilderWatch';
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
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,cAAc,SAAS,CAAC"}
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 { FormBuilder } from './component';
2
- export { FormBuilderWatch } from './FormBuilderWatch';
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';
@@ -1,82 +1,82 @@
1
- /// <reference types="react" />
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
- export type FieldType = 'input' | 'number' | 'select' | 'checkbox' | 'datepicker' | 'field-array' | 'area';
5
- export interface BaseField<T = any> {
6
- type: FieldType;
7
- key: string;
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
- defaultValue?: T;
10
- value?: T;
8
+ type: FieldType;
9
+ placeholder?: string;
10
+ defaultValue?: unknown;
11
11
  validation?: AnySchema;
12
+ config?: FieldConfig;
12
13
  }
13
- export interface FieldArrayField extends BaseField {
14
- type: 'field-array';
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<number> {
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 BaseField<string | number> {
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<boolean> {
27
+ export interface CheckboxField<TFieldValues extends FieldValues = FieldValues> extends BaseField<TFieldValues> {
46
28
  type: 'checkbox';
47
- props?: {
48
- labelRightAligned?: boolean;
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 DatePickerField extends BaseField<Date> {
52
- type: 'datepicker';
53
- placeholder?: string;
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 type FormField = InputField | NumberField | SelectField | CheckboxField | DatePickerField | FieldArrayField;
56
- export interface FormBuilderProps extends AkiformProps {
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 FormBuilderMethods {
61
- register: UseFormReturn['register'];
62
- handleSubmit: UseFormReturn['handleSubmit'];
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
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
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.6.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.7.0",
14
- "@akinon/akival": "0.4.0",
15
- "@akinon/ui-checkbox": "0.3.0",
16
- "@akinon/ui-input": "0.4.0",
17
- "@akinon/ui-input-number": "0.3.0",
18
- "@akinon/ui-select": "0.3.0",
19
- "@akinon/ui-date-picker": "0.3.0",
20
- "@akinon/ui-button": "0.5.0"
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.2.0",
28
- "@akinon/vite-config": "0.4.0",
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
- "lint": "eslint *.ts*",
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"}
@@ -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;
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { FormBuilderProps } from './types';
3
- export declare const FormBuilder: React.FC<FormBuilderProps>;
4
- //# sourceMappingURL=component.d.ts.map
@@ -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"}
@@ -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;
@@ -1,3 +0,0 @@
1
- import { FormBuilderMethods, FormField } from './types';
2
- export declare const useFormBuilder: (fields: FormField[]) => FormBuilderMethods;
3
- //# sourceMappingURL=hook.d.ts.map
@@ -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,4 +0,0 @@
1
- import { FormField } from '../types';
2
- import { TBaseSchema } from './types';
3
- export declare const transformToFormFields: (data: Record<string, TBaseSchema>) => FormField[];
4
- //# sourceMappingURL=index.d.ts.map
@@ -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"}