@digigov/form 2.0.0-d57821ba → 2.0.0-daaf7bdf

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 (141) hide show
  1. package/Field/FieldBase/index.js +1 -0
  2. package/Field/FieldBase.js.map +2 -2
  3. package/Field/FieldBaseContainer/index.js +1 -1
  4. package/Field/FieldBaseContainer.js.map +2 -2
  5. package/Field/FieldConditional/index.js +7 -3
  6. package/Field/FieldConditional.js.map +2 -2
  7. package/Field/index.js +5 -2
  8. package/Field/index.js.map +2 -2
  9. package/Field/types.d.ts +4 -1
  10. package/Field/utils/index.d.ts +1 -0
  11. package/Field/utils/index.js +18 -1
  12. package/Field/utils/index.js.map +2 -2
  13. package/FieldArray/index.d.ts +1 -0
  14. package/FieldArray/index.js +3 -1
  15. package/FieldArray/index.js.map +2 -2
  16. package/FieldObject/index.d.ts +2 -0
  17. package/FieldObject/index.js +7 -3
  18. package/FieldObject/index.js.map +2 -2
  19. package/Fieldset/types.d.ts +0 -1
  20. package/FormBuilder/index.d.ts +8 -2
  21. package/FormBuilder/index.js +150 -6
  22. package/FormBuilder/index.js.map +3 -3
  23. package/MultiplicityField/add-objects/index.js +3 -1
  24. package/MultiplicityField/add-objects.js.map +2 -2
  25. package/MultiplicityField/index.js +4 -2
  26. package/MultiplicityField/index.js.map +2 -2
  27. package/Questions/QuestionsContext.d.ts +0 -1
  28. package/Questions/Step/StepContext.d.ts +0 -1
  29. package/Questions/Step/types.d.ts +0 -1
  30. package/Questions/types.d.ts +0 -1
  31. package/cjs/Field/FieldBase/index.js +1 -0
  32. package/cjs/Field/FieldBase.js.map +2 -2
  33. package/cjs/Field/FieldBaseContainer/index.js +3 -3
  34. package/cjs/Field/FieldBaseContainer.js.map +3 -3
  35. package/cjs/Field/FieldConditional/index.js +7 -3
  36. package/cjs/Field/FieldConditional.js.map +2 -2
  37. package/cjs/Field/index.js +5 -2
  38. package/cjs/Field/index.js.map +2 -2
  39. package/cjs/Field/types.js.map +1 -1
  40. package/cjs/Field/utils/index.js +18 -0
  41. package/cjs/Field/utils/index.js.map +2 -2
  42. package/cjs/FieldArray/index.js +3 -1
  43. package/cjs/FieldArray/index.js.map +2 -2
  44. package/cjs/FieldObject/index.js +7 -3
  45. package/cjs/FieldObject/index.js.map +2 -2
  46. package/cjs/FormBuilder/index.js +165 -5
  47. package/cjs/FormBuilder/index.js.map +3 -3
  48. package/cjs/MultiplicityField/add-objects/index.js +3 -1
  49. package/cjs/MultiplicityField/add-objects.js.map +2 -2
  50. package/cjs/MultiplicityField/index.js +4 -2
  51. package/cjs/MultiplicityField/index.js.map +2 -2
  52. package/cjs/index.js +11 -155
  53. package/cjs/index.js.map +4 -4
  54. package/cjs/inputs/AutoCompleteInput/__stories__/Multiple/index.js +0 -1
  55. package/cjs/inputs/AutoCompleteInput/__stories__/Multiple.js.map +2 -2
  56. package/cjs/inputs/AutoCompleteInput/index.js +5 -3
  57. package/cjs/inputs/AutoCompleteInput/index.js.map +2 -2
  58. package/cjs/inputs/Checkboxes/index.js +1 -1
  59. package/cjs/inputs/Checkboxes/index.js.map +2 -2
  60. package/cjs/inputs/ImageInput/ImageInput.stories/index.js +4 -4
  61. package/cjs/inputs/ImageInput/ImageInput.stories.js.map +2 -2
  62. package/cjs/inputs/ImageInput/__stories__/MaxSize/index.js +69 -0
  63. package/cjs/inputs/ImageInput/__stories__/MaxSize.js.map +7 -0
  64. package/cjs/inputs/ImageInput/index.js +3 -2
  65. package/cjs/inputs/ImageInput/index.js.map +2 -2
  66. package/cjs/inputs/Input/index.js +18 -5
  67. package/cjs/inputs/Input/index.js.map +3 -3
  68. package/cjs/inputs/Radio/__stories__/Conditional.js.map +2 -2
  69. package/cjs/inputs/Radio/index.js +52 -4
  70. package/cjs/inputs/Radio/index.js.map +2 -2
  71. package/cjs/inputs/inputsScenarios/index.js +0 -1
  72. package/cjs/inputs/inputsScenarios.js.map +2 -2
  73. package/cjs/lazy/index.js +4 -2
  74. package/cjs/lazy.js.map +2 -2
  75. package/cjs/types.js.map +1 -1
  76. package/cjs/validators/utils/file/index.js +1 -1
  77. package/cjs/validators/utils/file.js.map +2 -2
  78. package/index.d.ts +5 -8
  79. package/index.js +9 -152
  80. package/index.js.map +4 -4
  81. package/inputs/AutoCompleteInput/__stories__/Multiple/index.js +0 -1
  82. package/inputs/AutoCompleteInput/__stories__/Multiple.js.map +2 -2
  83. package/inputs/AutoCompleteInput/index.js +5 -3
  84. package/inputs/AutoCompleteInput/index.js.map +2 -2
  85. package/inputs/Checkboxes/index.js +1 -1
  86. package/inputs/Checkboxes/index.js.map +2 -2
  87. package/inputs/ImageInput/ImageInput.stories/index.js +2 -2
  88. package/inputs/ImageInput/ImageInput.stories.d.ts +1 -1
  89. package/inputs/ImageInput/ImageInput.stories.js.map +2 -2
  90. package/inputs/ImageInput/__stories__/MaxSize/index.js +36 -0
  91. package/inputs/ImageInput/__stories__/MaxSize/package.json +6 -0
  92. package/inputs/ImageInput/__stories__/MaxSize.d.ts +3 -0
  93. package/inputs/ImageInput/__stories__/MaxSize.js.map +7 -0
  94. package/inputs/ImageInput/index.js +3 -2
  95. package/inputs/ImageInput/index.js.map +2 -2
  96. package/inputs/Input/index.js +16 -3
  97. package/inputs/Input/index.js.map +3 -3
  98. package/inputs/Radio/__stories__/Conditional.js.map +2 -2
  99. package/inputs/Radio/index.d.ts +4 -0
  100. package/inputs/Radio/index.js +51 -4
  101. package/inputs/Radio/index.js.map +2 -2
  102. package/inputs/inputsScenarios/index.js +0 -1
  103. package/inputs/inputsScenarios.d.ts +0 -42
  104. package/inputs/inputsScenarios.js.map +2 -2
  105. package/lazy/index.js +4 -2
  106. package/lazy.d.ts +13 -8
  107. package/lazy.js.map +2 -2
  108. package/package.json +4 -4
  109. package/src/Field/FieldBase.tsx +1 -0
  110. package/src/Field/FieldBaseContainer.tsx +1 -1
  111. package/src/Field/FieldConditional.tsx +4 -0
  112. package/src/Field/index.tsx +4 -1
  113. package/src/Field/types.tsx +23 -20
  114. package/src/Field/utils/index.ts +18 -1
  115. package/src/FieldArray/index.tsx +6 -3
  116. package/src/FieldObject/index.tsx +6 -0
  117. package/src/FormBuilder/index.tsx +179 -7
  118. package/src/FormBuilder/scenarios.test.tsx +2 -2
  119. package/src/MultiplicityField/add-objects.tsx +2 -0
  120. package/src/MultiplicityField/index.tsx +2 -0
  121. package/src/index.ts +6 -0
  122. package/src/inputs/AutoCompleteInput/__stories__/Multiple.tsx +0 -1
  123. package/src/inputs/AutoCompleteInput/index.tsx +6 -4
  124. package/src/inputs/Checkboxes/index.test.tsx +16 -17
  125. package/src/inputs/Checkboxes/index.tsx +22 -22
  126. package/src/inputs/ImageInput/ImageInput.stories.js +2 -1
  127. package/src/inputs/ImageInput/__stories__/MaxSize.tsx +37 -0
  128. package/src/inputs/ImageInput/index.test.tsx +4 -0
  129. package/src/inputs/ImageInput/index.tsx +3 -3
  130. package/src/inputs/Input/index.tsx +24 -29
  131. package/src/inputs/Radio/__stories__/Conditional.tsx +2 -1
  132. package/src/inputs/Radio/index.tsx +69 -5
  133. package/src/inputs/inputsScenarios.ts +147 -148
  134. package/src/lazy.js +4 -2
  135. package/src/types.tsx +1 -0
  136. package/src/validators/utils/file.ts +1 -1
  137. package/types.d.ts +1 -1
  138. package/types.js.map +1 -1
  139. package/validators/utils/file/index.js +1 -1
  140. package/validators/utils/file.js.map +2 -2
  141. package/src/index.tsx +0 -178
package/src/index.tsx DELETED
@@ -1,178 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import React, { useCallback, useContext, useRef } from 'react';
3
- import { useForm } from 'react-hook-form';
4
- import Field from '@digigov/form/Field';
5
- import Fieldset from '@digigov/form/Fieldset';
6
- import { FormContext } from '@digigov/form/FormContext';
7
- import { FormBaseProps, FormData, FormBuilderProps } from '@digigov/form/types';
8
- import { yupResolver } from '@digigov/form/utils';
9
- import { useValidationSchema } from '@digigov/form/validators';
10
- import { Form } from '@digigov/react-core/Form';
11
- import { Button } from '@digigov/ui/form/Button';
12
-
13
- const FormBase = React.forwardRef(function FormBase(
14
- {
15
- onSubmit,
16
- children,
17
- registerField,
18
- fieldsMap,
19
- fieldsetsMap,
20
- resolver,
21
- mode,
22
- initial,
23
- reValidateMode,
24
- shouldFocusError,
25
- criteriaMode,
26
- componentRegistry,
27
- grid,
28
- ...props
29
- }: FormBaseProps,
30
- ref: React.Ref<HTMLFormElement>
31
- ) {
32
- const form = useForm({
33
- resolver,
34
- mode,
35
- defaultValues: initial,
36
- reValidateMode,
37
- shouldFocusError,
38
- criteriaMode,
39
- });
40
-
41
- const handleSubmit = useCallback(
42
- (data: FormData): void => {
43
- onSubmit && onSubmit(data);
44
- },
45
- [onSubmit]
46
- );
47
- const submit = form.handleSubmit(handleSubmit);
48
-
49
- const ctx = {
50
- fieldsMap,
51
- fieldsetsMap,
52
- control: form.control,
53
- register: form.register,
54
- watch: form.watch,
55
- resetField: form.resetField,
56
- registerField: registerField,
57
- errors: form.formState.errors,
58
- formState: form.formState,
59
- reset: form.reset,
60
- trigger: form.trigger,
61
- getFieldState: form.getFieldState,
62
- setValue: form.setValue,
63
- clearErrors: form.clearErrors,
64
- getValues: form.getValues,
65
- unregister: form.unregister,
66
- componentRegistry,
67
- setError: form.setError,
68
- formRef: ref,
69
- submit,
70
- };
71
- return (
72
- <FormContext.Provider value={ctx}>
73
- <Form grid={grid} onSubmit={submit} ref={ref} {...props}>
74
- {children}
75
- </Form>
76
- </FormContext.Provider>
77
- );
78
- });
79
-
80
- const useFormContext = () => {
81
- return useContext(FormContext);
82
- };
83
- const useFormValues = () => {
84
- const ctx = useFormContext();
85
- return ctx.getValues();
86
- };
87
- const FormBuilder = React.forwardRef(function FormBuilder(
88
- {
89
- fields = [],
90
- fieldsets,
91
- initial = {},
92
- onSubmit,
93
- children,
94
- reValidateMode = 'onSubmit',
95
- mode = 'onSubmit',
96
- shouldFocusError = true,
97
- criteriaMode = 'all',
98
- auto = false,
99
- validatorRegistry,
100
- componentRegistry,
101
- grid = false,
102
- ...props
103
- }: FormBuilderProps,
104
- ref: React.Ref<HTMLFormElement>
105
- ): React.ReactElement {
106
- const fieldsState = useRef(fields);
107
- const setFieldsState = useCallback((newFields) => {
108
- fieldsState.current = newFields;
109
- }, []);
110
- const schema = useValidationSchema(fieldsState, validatorRegistry);
111
- const registerField = useCallback((field) => {
112
- const fieldIndex = fieldsState.current.findIndex(
113
- (f) => f.key === field.key
114
- );
115
- if (fieldIndex > -1) {
116
- fieldsState.current[fieldIndex] = field;
117
- } else {
118
- fieldsState.current.push(field);
119
- }
120
- setFieldsState(fieldsState.current);
121
- }, []);
122
- let resolver;
123
- let fieldsMap;
124
- let fieldsetsMap;
125
- let fieldChildren;
126
- if (schema) {
127
- resolver = yupResolver(schema);
128
- fieldsMap = fields
129
- ? fields.reduce((map, field) => ({ ...map, [field.key]: field }), {})
130
- : {};
131
- fieldsetsMap =
132
- fieldsets &&
133
- fieldsets.reduce(
134
- (map, fieldset) => ({ ...map, [fieldset.key]: fieldset }),
135
- {}
136
- );
137
-
138
- if (auto) {
139
- if (fieldsets) {
140
- fieldChildren = fieldsets.map((fieldset) => (
141
- <Fieldset key={fieldset.key} />
142
- ));
143
- } else if (fields) {
144
- fieldChildren = fields.map((field) => (
145
- <Field key={field.key} name={field.key} />
146
- ));
147
- }
148
- }
149
- }
150
- return (
151
- <FormBase
152
- resolver={resolver}
153
- fieldsetsMap={fieldsetsMap}
154
- fieldsMap={fieldsMap}
155
- registerField={registerField}
156
- initial={initial}
157
- reValidateMode={reValidateMode}
158
- mode={mode}
159
- shouldFocusError={shouldFocusError}
160
- criteriaMode={criteriaMode}
161
- onSubmit={onSubmit}
162
- componentRegistry={componentRegistry}
163
- ref={ref}
164
- grid={grid}
165
- {...props}
166
- >
167
- {fieldChildren}
168
- {auto && <Button type="submit">Συνέχεια</Button>}
169
- {children}
170
- </FormBase>
171
- );
172
- });
173
-
174
- export { FormBase, useFormContext, useFormValues, FormBuilder };
175
-
176
- export * from '@digigov/form/internal';
177
-
178
- export default FormBuilder;