@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.
- package/Field/FieldBase/index.js +1 -0
- package/Field/FieldBase.js.map +2 -2
- package/Field/FieldBaseContainer/index.js +1 -1
- package/Field/FieldBaseContainer.js.map +2 -2
- package/Field/FieldConditional/index.js +7 -3
- package/Field/FieldConditional.js.map +2 -2
- package/Field/index.js +5 -2
- package/Field/index.js.map +2 -2
- package/Field/types.d.ts +4 -1
- package/Field/utils/index.d.ts +1 -0
- package/Field/utils/index.js +18 -1
- package/Field/utils/index.js.map +2 -2
- package/FieldArray/index.d.ts +1 -0
- package/FieldArray/index.js +3 -1
- package/FieldArray/index.js.map +2 -2
- package/FieldObject/index.d.ts +2 -0
- package/FieldObject/index.js +7 -3
- package/FieldObject/index.js.map +2 -2
- package/Fieldset/types.d.ts +0 -1
- package/FormBuilder/index.d.ts +8 -2
- package/FormBuilder/index.js +150 -6
- package/FormBuilder/index.js.map +3 -3
- package/MultiplicityField/add-objects/index.js +3 -1
- package/MultiplicityField/add-objects.js.map +2 -2
- package/MultiplicityField/index.js +4 -2
- package/MultiplicityField/index.js.map +2 -2
- package/Questions/QuestionsContext.d.ts +0 -1
- package/Questions/Step/StepContext.d.ts +0 -1
- package/Questions/Step/types.d.ts +0 -1
- package/Questions/types.d.ts +0 -1
- package/cjs/Field/FieldBase/index.js +1 -0
- package/cjs/Field/FieldBase.js.map +2 -2
- package/cjs/Field/FieldBaseContainer/index.js +3 -3
- package/cjs/Field/FieldBaseContainer.js.map +3 -3
- package/cjs/Field/FieldConditional/index.js +7 -3
- package/cjs/Field/FieldConditional.js.map +2 -2
- package/cjs/Field/index.js +5 -2
- package/cjs/Field/index.js.map +2 -2
- package/cjs/Field/types.js.map +1 -1
- package/cjs/Field/utils/index.js +18 -0
- package/cjs/Field/utils/index.js.map +2 -2
- package/cjs/FieldArray/index.js +3 -1
- package/cjs/FieldArray/index.js.map +2 -2
- package/cjs/FieldObject/index.js +7 -3
- package/cjs/FieldObject/index.js.map +2 -2
- package/cjs/FormBuilder/index.js +165 -5
- package/cjs/FormBuilder/index.js.map +3 -3
- package/cjs/MultiplicityField/add-objects/index.js +3 -1
- package/cjs/MultiplicityField/add-objects.js.map +2 -2
- package/cjs/MultiplicityField/index.js +4 -2
- package/cjs/MultiplicityField/index.js.map +2 -2
- package/cjs/index.js +11 -155
- package/cjs/index.js.map +4 -4
- package/cjs/inputs/AutoCompleteInput/__stories__/Multiple/index.js +0 -1
- package/cjs/inputs/AutoCompleteInput/__stories__/Multiple.js.map +2 -2
- package/cjs/inputs/AutoCompleteInput/index.js +5 -3
- package/cjs/inputs/AutoCompleteInput/index.js.map +2 -2
- package/cjs/inputs/Checkboxes/index.js +1 -1
- package/cjs/inputs/Checkboxes/index.js.map +2 -2
- package/cjs/inputs/ImageInput/ImageInput.stories/index.js +4 -4
- package/cjs/inputs/ImageInput/ImageInput.stories.js.map +2 -2
- package/cjs/inputs/ImageInput/__stories__/MaxSize/index.js +69 -0
- package/cjs/inputs/ImageInput/__stories__/MaxSize.js.map +7 -0
- package/cjs/inputs/ImageInput/index.js +3 -2
- package/cjs/inputs/ImageInput/index.js.map +2 -2
- package/cjs/inputs/Input/index.js +18 -5
- package/cjs/inputs/Input/index.js.map +3 -3
- package/cjs/inputs/Radio/__stories__/Conditional.js.map +2 -2
- package/cjs/inputs/Radio/index.js +52 -4
- package/cjs/inputs/Radio/index.js.map +2 -2
- package/cjs/inputs/inputsScenarios/index.js +0 -1
- package/cjs/inputs/inputsScenarios.js.map +2 -2
- package/cjs/lazy/index.js +4 -2
- package/cjs/lazy.js.map +2 -2
- package/cjs/types.js.map +1 -1
- package/cjs/validators/utils/file/index.js +1 -1
- package/cjs/validators/utils/file.js.map +2 -2
- package/index.d.ts +5 -8
- package/index.js +9 -152
- package/index.js.map +4 -4
- package/inputs/AutoCompleteInput/__stories__/Multiple/index.js +0 -1
- package/inputs/AutoCompleteInput/__stories__/Multiple.js.map +2 -2
- package/inputs/AutoCompleteInput/index.js +5 -3
- package/inputs/AutoCompleteInput/index.js.map +2 -2
- package/inputs/Checkboxes/index.js +1 -1
- package/inputs/Checkboxes/index.js.map +2 -2
- package/inputs/ImageInput/ImageInput.stories/index.js +2 -2
- package/inputs/ImageInput/ImageInput.stories.d.ts +1 -1
- package/inputs/ImageInput/ImageInput.stories.js.map +2 -2
- package/inputs/ImageInput/__stories__/MaxSize/index.js +36 -0
- package/inputs/ImageInput/__stories__/MaxSize/package.json +6 -0
- package/inputs/ImageInput/__stories__/MaxSize.d.ts +3 -0
- package/inputs/ImageInput/__stories__/MaxSize.js.map +7 -0
- package/inputs/ImageInput/index.js +3 -2
- package/inputs/ImageInput/index.js.map +2 -2
- package/inputs/Input/index.js +16 -3
- package/inputs/Input/index.js.map +3 -3
- package/inputs/Radio/__stories__/Conditional.js.map +2 -2
- package/inputs/Radio/index.d.ts +4 -0
- package/inputs/Radio/index.js +51 -4
- package/inputs/Radio/index.js.map +2 -2
- package/inputs/inputsScenarios/index.js +0 -1
- package/inputs/inputsScenarios.d.ts +0 -42
- package/inputs/inputsScenarios.js.map +2 -2
- package/lazy/index.js +4 -2
- package/lazy.d.ts +13 -8
- package/lazy.js.map +2 -2
- package/package.json +4 -4
- package/src/Field/FieldBase.tsx +1 -0
- package/src/Field/FieldBaseContainer.tsx +1 -1
- package/src/Field/FieldConditional.tsx +4 -0
- package/src/Field/index.tsx +4 -1
- package/src/Field/types.tsx +23 -20
- package/src/Field/utils/index.ts +18 -1
- package/src/FieldArray/index.tsx +6 -3
- package/src/FieldObject/index.tsx +6 -0
- package/src/FormBuilder/index.tsx +179 -7
- package/src/FormBuilder/scenarios.test.tsx +2 -2
- package/src/MultiplicityField/add-objects.tsx +2 -0
- package/src/MultiplicityField/index.tsx +2 -0
- package/src/index.ts +6 -0
- package/src/inputs/AutoCompleteInput/__stories__/Multiple.tsx +0 -1
- package/src/inputs/AutoCompleteInput/index.tsx +6 -4
- package/src/inputs/Checkboxes/index.test.tsx +16 -17
- package/src/inputs/Checkboxes/index.tsx +22 -22
- package/src/inputs/ImageInput/ImageInput.stories.js +2 -1
- package/src/inputs/ImageInput/__stories__/MaxSize.tsx +37 -0
- package/src/inputs/ImageInput/index.test.tsx +4 -0
- package/src/inputs/ImageInput/index.tsx +3 -3
- package/src/inputs/Input/index.tsx +24 -29
- package/src/inputs/Radio/__stories__/Conditional.tsx +2 -1
- package/src/inputs/Radio/index.tsx +69 -5
- package/src/inputs/inputsScenarios.ts +147 -148
- package/src/lazy.js +4 -2
- package/src/types.tsx +1 -0
- package/src/validators/utils/file.ts +1 -1
- package/types.d.ts +1 -1
- package/types.js.map +1 -1
- package/validators/utils/file/index.js +1 -1
- package/validators/utils/file.js.map +2 -2
- package/src/index.tsx +0 -178
|
@@ -27,7 +27,8 @@ const AddObjects = ({
|
|
|
27
27
|
stashedObjects,
|
|
28
28
|
getValues,
|
|
29
29
|
onStash,
|
|
30
|
-
error
|
|
30
|
+
error,
|
|
31
|
+
Field
|
|
31
32
|
}) => {
|
|
32
33
|
const currentIndex = fields.length > 0 ? fields.length - 1 : fields.length;
|
|
33
34
|
const currentName = `${name}.${currentIndex}`;
|
|
@@ -137,6 +138,7 @@ const AddObjects = ({
|
|
|
137
138
|
control,
|
|
138
139
|
register,
|
|
139
140
|
reset,
|
|
141
|
+
Field,
|
|
140
142
|
error: extra?.max - stashedObjects.length === 0 || extra?.length - stashedObjects.length === 0 ? error : needsMoreError
|
|
141
143
|
}
|
|
142
144
|
));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/MultiplicityField/add-objects.tsx"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable react/prop-types */\nimport React, { useEffect, useMemo } from 'react';\nimport {\n ErrorOption,\n FieldArrayWithId,\n UseFieldArrayReturn,\n useWatch,\n} from 'react-hook-form';\nimport { FieldBase } from '@digigov/form/Field/FieldBase';\nimport { CalculatedField } from '@digigov/form/Field/types';\nimport {\n FIELD_COMPONENTS,\n ALTERNATIVE_COMPONENTS,\n} from '@digigov/form/Field/utils';\nimport { calculateField } from '@digigov/form/Field/utils/calculateField';\nimport { useField } from '@digigov/form/Field/utils/useField';\n\nimport FieldObject from '@digigov/form/FieldObject';\nimport type {\n MultiplicityProps,\n StashedObject,\n} from '@digigov/form/MultiplicityField/types';\nimport { FieldSpec } from '@digigov/form/types';\nimport Fieldset from '@digigov/react-core/Fieldset';\nimport RadioConditional from '@digigov/react-core/RadioConditional';\nimport Button from '@digigov/ui/form/Button';\n\nexport interface AddObjectsProps\n extends Omit<MultiplicityProps, 'key' | 'component'> {\n fields: FieldArrayWithId[];\n error?: ErrorOption;\n append: UseFieldArrayReturn['append'];\n remove: UseFieldArrayReturn['remove'];\n stashedObjects: StashedObject[];\n onStash: (arg0: StashedObject) => void;\n children?: React.ReactNode;\n}\n\nexport const AddObjects: React.FC<AddObjectsProps> = ({\n name,\n fields,\n formState,\n extra,\n append,\n remove,\n trigger,\n clearErrors,\n children,\n setValue,\n stashedObjects,\n getValues,\n onStash,\n error,\n}) => {\n const currentIndex = fields.length > 0 ? fields.length - 1 : fields.length;\n const currentName = `${name}.${currentIndex}`;\n const radioField: FieldSpec = {\n key: 'needs-more',\n type: 'choice:single',\n label: {\n primary: extra?.label.question.title,\n },\n required: true,\n validators: [\n {\n name: 'is-locked',\n message: 'form.error.needs-more',\n test: (data) => {\n return data === 'no';\n },\n },\n ],\n extra: {\n options: [\n {\n label: { primary: extra?.label.question.yes },\n id: `radio-input-${name}-yes`,\n value: 'yes',\n selected: function RadioSelected() {\n return (\n <RadioConditional\n hidden={\n needsMore !== 'yes' ||\n (extra?.max && extra?.max - stashedObjects.length === 0)\n }\n >\n {needsMore === 'yes' && fields.length > 0 && (\n <>\n <FieldObject\n name={currentName}\n error={error && error[currentIndex]}\n register={register}\n formState={formState}\n control={control}\n {...extra?.of}\n label={\n extra?.label.question.objectLabel || extra?.of.label\n }\n />\n <Button\n color=\"secondary\"\n name={`${currentName}-add-object`}\n onClick={async (e) => {\n e.preventDefault();\n const nestedFields = extra?.of.extra.fields.map(\n (f) => `${currentName}.${f.key}`\n );\n const result = await trigger(nestedFields);\n result && setValue('needs-more', '');\n result && onStash(getValues(currentName));\n }}\n >\n {extra?.label.object.add}\n </Button>\n </>\n )}\n </RadioConditional>\n );\n },\n },\n {\n label: { primary: extra?.label.question.no },\n id: `radio-input-${name}-no`,\n value: 'no',\n },\n ],\n },\n };\n\n const {\n field,\n control,\n register,\n reset,\n error: needsMoreError,\n } = useField(radioField.key, radioField?.type ? radioField : null);\n\n const calculatedField: CalculatedField = useMemo(\n () =>\n calculateField(children, field, FIELD_COMPONENTS, ALTERNATIVE_COMPONENTS),\n [field]\n );\n const needsMore = useWatch({ name: field.key, control });\n\n useEffect(() => {\n if (needsMore === 'yes') {\n append({ afm: '', firstName: '', lastName: '' });\n }\n if (needsMore === 'no' && stashedObjects.length < fields.length) {\n remove(currentIndex);\n }\n if (needsMore === '') clearErrors('needs-more');\n }, [needsMore]);\n\n // TODO: Refactor types so that label is always required, the following\n // assignment is a temp fix for typescript build to run\n calculatedField.label = calculatedField.label || {};\n if (extra?.length) {\n calculatedField.label.secondary = `\u0388\u03C7\u03B5\u03C4\u03B5 \u03C0\u03C1\u03BF\u03C3\u03B8\u03AD\u03C3\u03B5\u03B9 ${\n stashedObjects.length\n } \u03B5\u03B3\u03B3\u03C1\u03B1\u03C6\u03AD\u03C2 \u03BA\u03B1\u03B9 \u03C3\u03B1\u03C2 \u03B1\u03C0\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5\u03BD \u03B1\u03BA\u03CC\u03BC\u03B1 ${\n extra.length - stashedObjects.length\n } \u03B5\u03B3\u03B3\u03C1\u03B1\u03C6\u03AD\u03C2.`;\n } else if (extra?.min && extra?.max) {\n calculatedField.label.secondary = `\u03A4\u03BF \u03C0\u03B5\u03B4\u03AF\u03BF \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9 \u03B1\u03BA\u03CC\u03BC\u03B1 ${\n extra?.min - stashedObjects.length\n } \u03BA\u03B1\u03B9 \u03C4\u03BF \u03BC\u03AD\u03B3\u03B9\u03C3\u03C4\u03BF ${\n extra?.max\n } \u03B5\u03B3\u03B3\u03C1\u03B1\u03C6\u03AD\u03C2. \u03A0\u03C1\u03BF\u03C3\u03B8\u03AD\u03C3\u03C4\u03B5 \u03BC\u03B9\u03B1 \u03B1\u03BA\u03CC\u03BC\u03B1 \u03B5\u03C0\u03B9\u03BB\u03AD\u03B3\u03BF\u03BD\u03C4\u03B1\u03C2 \u03C4\u03B7\u03BD \u03B1\u03C0\u03AC\u03BD\u03C4\u03B7\u03C3\u03B7 \u00AB\u039D\u03B1\u03B9\u00BB \u03C3\u03C4\u03B7\u03BD \u03B5\u03C0\u03CC\u03BC\u03B5\u03BD\u03B7 \u03B5\u03C1\u03CE\u03C4\u03B7\u03C3\u03B7.`;\n } else if (extra?.min) {\n calculatedField.label.secondary = `\u03A4\u03BF \u03C0\u03B5\u03B4\u03AF\u03BF \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9 \u03B1\u03BA\u03CC\u03BC\u03B1 ${\n extra?.min - stashedObjects.length\n } \u03B5\u03B3\u03B3\u03C1\u03B1\u03C6\u03AD\u03C2. \u03A0\u03C1\u03BF\u03C3\u03B8\u03AD\u03C3\u03C4\u03B5 \u03BC\u03B9\u03B1 \u03B1\u03BA\u03CC\u03BC\u03B1 \u03B5\u03C0\u03B9\u03BB\u03AD\u03B3\u03BF\u03BD\u03C4\u03B1\u03C2 \u03C4\u03B7\u03BD \u03B1\u03C0\u03AC\u03BD\u03C4\u03B7\u03C3\u03B7 \u00AB\u039D\u03B1\u03B9\u00BB \u03C3\u03C4\u03B7\u03BD \u03B5\u03C0\u03CC\u03BC\u03B5\u03BD\u03B7 \u03B5\u03C1\u03CE\u03C4\u03B7\u03C3\u03B7.`;\n } else if (extra?.max) {\n calculatedField.label.secondary = ` \u0388\u03C7\u03B5\u03C4\u03B5 \u03C0\u03C1\u03BF\u03C3\u03B8\u03AD\u03C3\u03B5\u03B9 ${\n stashedObjects.length\n } \u03B5\u03B3\u03B3\u03C1\u03B1\u03C6\u03AD\u03C2 \u03BA\u03B1\u03B9 \u03C3\u03B1\u03C2 \u03B1\u03C0\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5\u03BD ${\n extra.max - stashedObjects.length\n } \u03B5\u03C0\u03B9\u03C0\u03BB\u03AD\u03BF\u03BD \u03B5\u03B3\u03B3\u03C1\u03B1\u03C6\u03AD\u03C2.`;\n }\n return (\n <Fieldset>\n <FieldBase\n {...calculatedField}\n name={calculatedField.key}\n control={control}\n register={register}\n reset={reset}\n error={\n extra?.max - stashedObjects.length === 0 ||\n extra?.length - stashedObjects.length === 0\n ? error\n : needsMoreError\n }\n />\n </Fieldset>\n );\n};\n\nexport default AddObjects;\n"],
|
|
5
|
-
"mappings": "AACA,OAAO,SAAS,WAAW,eAAe;AAC1C;AAAA,EAIE;AAAA,OACK;AACP,SAAS,iBAAiB;AAE1B;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,sBAAsB;AAC/B,SAAS,gBAAgB;AAEzB,OAAO,iBAAiB;AAMxB,OAAO,cAAc;AACrB,OAAO,sBAAsB;AAC7B,OAAO,YAAY;AAaZ,MAAM,aAAwC,CAAC;AAAA,EACpD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,eAAe,OAAO,SAAS,IAAI,OAAO,SAAS,IAAI,OAAO;AACpE,QAAM,cAAc,GAAG,IAAI,IAAI,YAAY;AAC3C,QAAM,aAAwB;AAAA,IAC5B,KAAK;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,MACL,SAAS,OAAO,MAAM,SAAS;AAAA,IACjC;AAAA,IACA,UAAU;AAAA,IACV,YAAY;AAAA,MACV;AAAA,QACE,MAAM;AAAA,QACN,SAAS;AAAA,QACT,MAAM,CAAC,SAAS;AACd,iBAAO,SAAS;AAAA,QAClB;AAAA,MACF;AAAA,IACF;AAAA,IACA,OAAO;AAAA,MACL,SAAS;AAAA,QACP;AAAA,UACE,OAAO,EAAE,SAAS,OAAO,MAAM,SAAS,IAAI;AAAA,UAC5C,IAAI,eAAe,IAAI;AAAA,UACvB,OAAO;AAAA,UACP,UAAU,SAAS,gBAAgB;AACjC,mBACE;AAAA,cAAC;AAAA;AAAA,gBACC,QACE,cAAc,SACb,OAAO,OAAO,OAAO,MAAM,eAAe,WAAW;AAAA;AAAA,cAGvD,cAAc,SAAS,OAAO,SAAS,KACtC,0DACE;AAAA,gBAAC;AAAA;AAAA,kBACC,MAAM;AAAA,kBACN,OAAO,SAAS,MAAM,YAAY;AAAA,kBAClC;AAAA,kBACA;AAAA,kBACA;AAAA,kBACC,GAAG,OAAO;AAAA,kBACX,OACE,OAAO,MAAM,SAAS,eAAe,OAAO,GAAG;AAAA;AAAA,cAEnD,GACA;AAAA,gBAAC;AAAA;AAAA,kBACC,OAAM;AAAA,kBACN,MAAM,GAAG,WAAW;AAAA,kBACpB,SAAS,OAAO,MAAM;AACpB,sBAAE,eAAe;AACjB,0BAAM,eAAe,OAAO,GAAG,MAAM,OAAO;AAAA,sBAC1C,CAAC,MAAM,GAAG,WAAW,IAAI,EAAE,GAAG;AAAA,oBAChC;AACA,0BAAM,SAAS,MAAM,QAAQ,YAAY;AACzC,8BAAU,SAAS,cAAc,EAAE;AACnC,8BAAU,QAAQ,UAAU,WAAW,CAAC;AAAA,kBAC1C;AAAA;AAAA,gBAEC,OAAO,MAAM,OAAO;AAAA,cACvB,CACF;AAAA,YAEJ;AAAA,UAEJ;AAAA,QACF;AAAA,QACA;AAAA,UACE,OAAO,EAAE,SAAS,OAAO,MAAM,SAAS,GAAG;AAAA,UAC3C,IAAI,eAAe,IAAI;AAAA,UACvB,OAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,EACT,IAAI,SAAS,WAAW,KAAK,YAAY,OAAO,aAAa,IAAI;AAEjE,QAAM,kBAAmC;AAAA,IACvC,MACE,eAAe,UAAU,OAAO,kBAAkB,sBAAsB;AAAA,IAC1E,CAAC,KAAK;AAAA,EACR;AACA,QAAM,YAAY,SAAS,EAAE,MAAM,MAAM,KAAK,QAAQ,CAAC;AAEvD,YAAU,MAAM;AACd,QAAI,cAAc,OAAO;AACvB,aAAO,EAAE,KAAK,IAAI,WAAW,IAAI,UAAU,GAAG,CAAC;AAAA,IACjD;AACA,QAAI,cAAc,QAAQ,eAAe,SAAS,OAAO,QAAQ;AAC/D,aAAO,YAAY;AAAA,IACrB;AACA,QAAI,cAAc,GAAI,aAAY,YAAY;AAAA,EAChD,GAAG,CAAC,SAAS,CAAC;AAId,kBAAgB,QAAQ,gBAAgB,SAAS,CAAC;AAClD,MAAI,OAAO,QAAQ;AACjB,oBAAgB,MAAM,YAAY,yFAChC,eAAe,MACjB,iLACE,MAAM,SAAS,eAAe,MAChC;AAAA,EACF,WAAW,OAAO,OAAO,OAAO,KAAK;AACnC,oBAAgB,MAAM,YAAY,yJAChC,OAAO,MAAM,eAAe,MAC9B,+EACE,OAAO,GACT;AAAA,EACF,WAAW,OAAO,KAAK;AACrB,oBAAgB,MAAM,YAAY,yJAChC,OAAO,MAAM,eAAe,MAC9B;AAAA,EACF,WAAW,OAAO,KAAK;AACrB,oBAAgB,MAAM,YAAY,0FAChC,eAAe,MACjB,kJACE,MAAM,MAAM,eAAe,MAC7B;AAAA,EACF;AACA,SACE,oCAAC,gBACC;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,MAAM,gBAAgB;AAAA,MACtB;AAAA,MACA;AAAA,MACA;AAAA,MACA,OACE,OAAO,MAAM,eAAe,WAAW,KACvC,OAAO,SAAS,eAAe,WAAW,IACtC,QACA;AAAA;AAAA,EAER,CACF;AAEJ;AAEA,IAAO,sBAAQ;",
|
|
4
|
+
"sourcesContent": ["/* eslint-disable react/prop-types */\nimport React, { useEffect, useMemo } from 'react';\nimport {\n ErrorOption,\n FieldArrayWithId,\n UseFieldArrayReturn,\n useWatch,\n} from 'react-hook-form';\nimport { FieldBase } from '@digigov/form/Field/FieldBase';\nimport { CalculatedField } from '@digigov/form/Field/types';\nimport {\n FIELD_COMPONENTS,\n ALTERNATIVE_COMPONENTS,\n} from '@digigov/form/Field/utils';\nimport { calculateField } from '@digigov/form/Field/utils/calculateField';\nimport { useField } from '@digigov/form/Field/utils/useField';\n\nimport FieldObject from '@digigov/form/FieldObject';\nimport type {\n MultiplicityProps,\n StashedObject,\n} from '@digigov/form/MultiplicityField/types';\nimport { FieldSpec } from '@digigov/form/types';\nimport Fieldset from '@digigov/react-core/Fieldset';\nimport RadioConditional from '@digigov/react-core/RadioConditional';\nimport Button from '@digigov/ui/form/Button';\n\nexport interface AddObjectsProps\n extends Omit<MultiplicityProps, 'key' | 'component'> {\n fields: FieldArrayWithId[];\n error?: ErrorOption;\n append: UseFieldArrayReturn['append'];\n remove: UseFieldArrayReturn['remove'];\n stashedObjects: StashedObject[];\n onStash: (arg0: StashedObject) => void;\n children?: React.ReactNode;\n}\n\nexport const AddObjects: React.FC<AddObjectsProps> = ({\n name,\n fields,\n formState,\n extra,\n append,\n remove,\n trigger,\n clearErrors,\n children,\n setValue,\n stashedObjects,\n getValues,\n onStash,\n error,\n Field\n}) => {\n const currentIndex = fields.length > 0 ? fields.length - 1 : fields.length;\n const currentName = `${name}.${currentIndex}`;\n const radioField: FieldSpec = {\n key: 'needs-more',\n type: 'choice:single',\n label: {\n primary: extra?.label.question.title,\n },\n required: true,\n validators: [\n {\n name: 'is-locked',\n message: 'form.error.needs-more',\n test: (data) => {\n return data === 'no';\n },\n },\n ],\n extra: {\n options: [\n {\n label: { primary: extra?.label.question.yes },\n id: `radio-input-${name}-yes`,\n value: 'yes',\n selected: function RadioSelected() {\n return (\n <RadioConditional\n hidden={\n needsMore !== 'yes' ||\n (extra?.max && extra?.max - stashedObjects.length === 0)\n }\n >\n {needsMore === 'yes' && fields.length > 0 && (\n <>\n <FieldObject\n name={currentName}\n error={error && error[currentIndex]}\n register={register}\n formState={formState}\n control={control}\n {...extra?.of}\n label={\n extra?.label.question.objectLabel || extra?.of.label\n }\n />\n <Button\n color=\"secondary\"\n name={`${currentName}-add-object`}\n onClick={async (e) => {\n e.preventDefault();\n const nestedFields = extra?.of.extra.fields.map(\n (f) => `${currentName}.${f.key}`\n );\n const result = await trigger(nestedFields);\n result && setValue('needs-more', '');\n result && onStash(getValues(currentName));\n }}\n >\n {extra?.label.object.add}\n </Button>\n </>\n )}\n </RadioConditional>\n );\n },\n },\n {\n label: { primary: extra?.label.question.no },\n id: `radio-input-${name}-no`,\n value: 'no',\n },\n ],\n },\n };\n\n const {\n field,\n control,\n register,\n reset,\n error: needsMoreError,\n } = useField(radioField.key, radioField?.type ? radioField : null);\n\n const calculatedField: CalculatedField = useMemo(\n () =>\n calculateField(children, field, FIELD_COMPONENTS, ALTERNATIVE_COMPONENTS),\n [field]\n );\n const needsMore = useWatch({ name: field.key, control });\n\n useEffect(() => {\n if (needsMore === 'yes') {\n append({ afm: '', firstName: '', lastName: '' });\n }\n if (needsMore === 'no' && stashedObjects.length < fields.length) {\n remove(currentIndex);\n }\n if (needsMore === '') clearErrors('needs-more');\n }, [needsMore]);\n\n // TODO: Refactor types so that label is always required, the following\n // assignment is a temp fix for typescript build to run\n calculatedField.label = calculatedField.label || {};\n if (extra?.length) {\n calculatedField.label.secondary = `\u0388\u03C7\u03B5\u03C4\u03B5 \u03C0\u03C1\u03BF\u03C3\u03B8\u03AD\u03C3\u03B5\u03B9 ${\n stashedObjects.length\n } \u03B5\u03B3\u03B3\u03C1\u03B1\u03C6\u03AD\u03C2 \u03BA\u03B1\u03B9 \u03C3\u03B1\u03C2 \u03B1\u03C0\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5\u03BD \u03B1\u03BA\u03CC\u03BC\u03B1 ${\n extra.length - stashedObjects.length\n } \u03B5\u03B3\u03B3\u03C1\u03B1\u03C6\u03AD\u03C2.`;\n } else if (extra?.min && extra?.max) {\n calculatedField.label.secondary = `\u03A4\u03BF \u03C0\u03B5\u03B4\u03AF\u03BF \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9 \u03B1\u03BA\u03CC\u03BC\u03B1 ${\n extra?.min - stashedObjects.length\n } \u03BA\u03B1\u03B9 \u03C4\u03BF \u03BC\u03AD\u03B3\u03B9\u03C3\u03C4\u03BF ${\n extra?.max\n } \u03B5\u03B3\u03B3\u03C1\u03B1\u03C6\u03AD\u03C2. \u03A0\u03C1\u03BF\u03C3\u03B8\u03AD\u03C3\u03C4\u03B5 \u03BC\u03B9\u03B1 \u03B1\u03BA\u03CC\u03BC\u03B1 \u03B5\u03C0\u03B9\u03BB\u03AD\u03B3\u03BF\u03BD\u03C4\u03B1\u03C2 \u03C4\u03B7\u03BD \u03B1\u03C0\u03AC\u03BD\u03C4\u03B7\u03C3\u03B7 \u00AB\u039D\u03B1\u03B9\u00BB \u03C3\u03C4\u03B7\u03BD \u03B5\u03C0\u03CC\u03BC\u03B5\u03BD\u03B7 \u03B5\u03C1\u03CE\u03C4\u03B7\u03C3\u03B7.`;\n } else if (extra?.min) {\n calculatedField.label.secondary = `\u03A4\u03BF \u03C0\u03B5\u03B4\u03AF\u03BF \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9 \u03B1\u03BA\u03CC\u03BC\u03B1 ${\n extra?.min - stashedObjects.length\n } \u03B5\u03B3\u03B3\u03C1\u03B1\u03C6\u03AD\u03C2. \u03A0\u03C1\u03BF\u03C3\u03B8\u03AD\u03C3\u03C4\u03B5 \u03BC\u03B9\u03B1 \u03B1\u03BA\u03CC\u03BC\u03B1 \u03B5\u03C0\u03B9\u03BB\u03AD\u03B3\u03BF\u03BD\u03C4\u03B1\u03C2 \u03C4\u03B7\u03BD \u03B1\u03C0\u03AC\u03BD\u03C4\u03B7\u03C3\u03B7 \u00AB\u039D\u03B1\u03B9\u00BB \u03C3\u03C4\u03B7\u03BD \u03B5\u03C0\u03CC\u03BC\u03B5\u03BD\u03B7 \u03B5\u03C1\u03CE\u03C4\u03B7\u03C3\u03B7.`;\n } else if (extra?.max) {\n calculatedField.label.secondary = ` \u0388\u03C7\u03B5\u03C4\u03B5 \u03C0\u03C1\u03BF\u03C3\u03B8\u03AD\u03C3\u03B5\u03B9 ${\n stashedObjects.length\n } \u03B5\u03B3\u03B3\u03C1\u03B1\u03C6\u03AD\u03C2 \u03BA\u03B1\u03B9 \u03C3\u03B1\u03C2 \u03B1\u03C0\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5\u03BD ${\n extra.max - stashedObjects.length\n } \u03B5\u03C0\u03B9\u03C0\u03BB\u03AD\u03BF\u03BD \u03B5\u03B3\u03B3\u03C1\u03B1\u03C6\u03AD\u03C2.`;\n }\n return (\n <Fieldset>\n <FieldBase\n {...calculatedField}\n name={calculatedField.key}\n control={control}\n register={register}\n reset={reset}\n Field={Field}\n error={\n extra?.max - stashedObjects.length === 0 ||\n extra?.length - stashedObjects.length === 0\n ? error\n : needsMoreError\n }\n />\n </Fieldset>\n );\n};\n\nexport default AddObjects;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -22,7 +22,8 @@ const Multiplicity = ({
|
|
|
22
22
|
layout,
|
|
23
23
|
setValue,
|
|
24
24
|
getValues,
|
|
25
|
-
unregister
|
|
25
|
+
unregister,
|
|
26
|
+
Field
|
|
26
27
|
}) => {
|
|
27
28
|
const { fields, append, remove } = useFieldArray({
|
|
28
29
|
control,
|
|
@@ -80,7 +81,8 @@ const Multiplicity = ({
|
|
|
80
81
|
getValues,
|
|
81
82
|
unregister,
|
|
82
83
|
trigger,
|
|
83
|
-
clearErrors
|
|
84
|
+
clearErrors,
|
|
85
|
+
Field
|
|
84
86
|
}
|
|
85
87
|
)
|
|
86
88
|
);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/MultiplicityField/index.tsx"],
|
|
4
|
-
"sourcesContent": ["import React, { useState } from 'react';\nimport { useFieldArray, UseFormReturn } from 'react-hook-form';\nimport FieldContainer from '@digigov/form/Field/FieldBaseContainer';\n\nimport FieldObject from '@digigov/form/FieldObject';\nimport AddObjects from '@digigov/form/MultiplicityField/add-objects';\nimport {\n MultiplicityProps,\n StashedObject,\n} from '@digigov/form/MultiplicityField/types';\nimport { Button } from '@digigov/react-core/Button';\nimport { Card } from '@digigov/react-core/Card';\nimport { CardAction } from '@digigov/react-core/CardAction';\nimport { CardContent } from '@digigov/react-core/CardContent';\nimport { CardHeading } from '@digigov/react-core/CardHeading';\nimport { Heading } from '@digigov/react-core/Heading';\n\n// epeidh einai forwardRef to ref mas to dinei xwrista apo ta props\nexport const Multiplicity: React.FC<MultiplicityProps> = ({\n extra,\n name,\n control,\n error,\n register,\n trigger,\n clearErrors,\n formState,\n label,\n layout,\n setValue,\n getValues,\n unregister,\n}) => {\n const { fields, append, remove } = useFieldArray({\n control,\n name,\n });\n const [stashedObjects, setStashedObjects] = useState<StashedObject[]>([]);\n const handleStash = (data) => {\n setStashedObjects([...stashedObjects, data]);\n };\n const handleDelete = (index) => {\n remove(index);\n // creating a new array to maintain immutability\n const newStashedObjects = [...stashedObjects];\n newStashedObjects.splice(index, 1);\n setStashedObjects(newStashedObjects);\n };\n return (\n <FieldContainer\n label={label}\n layout={layout}\n error={\n formState.isSubmitted && !formState.isSubmitting && error?.message\n ? error\n : undefined\n }\n wrapper=\"fieldset\"\n name={name}\n >\n {stashedObjects.length > 0 ? (\n <div>\n <Heading size=\"md\">{extra?.label.object.title_added}</Heading>\n {stashedObjects.map((_Object, index) => {\n return (\n <ListObject\n key={`${name}.${index}`}\n index={index}\n name={name}\n extra={extra}\n control={control}\n register={register}\n formState={formState}\n onDelete={handleDelete}\n />\n );\n })}\n </div>\n ) : (\n ''\n )}\n <AddObjects\n name={name}\n register={register}\n control={control}\n fields={fields}\n formState={formState}\n error={error}\n stashedObjects={stashedObjects}\n extra={extra}\n append={append}\n remove={remove}\n onStash={handleStash}\n setValue={setValue}\n getValues={getValues}\n unregister={unregister}\n trigger={trigger}\n clearErrors={clearErrors}\n />\n </FieldContainer>\n );\n};\n\nexport default Multiplicity;\n\nexport interface ListObjectProps {\n index: number;\n name: string;\n control: UseFormReturn['control'];\n register: UseFormReturn['register'];\n formState: UseFormReturn['formState'];\n onDelete: (index: number) => void;\n extra?: Record<string, any>;\n}\n\nexport const ListObject: React.FC<ListObjectProps> = ({\n index,\n name,\n extra,\n control,\n register,\n onDelete,\n formState,\n // onEdit,\n}) => {\n const currentName = `${name}.${index}`;\n return (\n <Card variant={extra?.border && 'border'}>\n <CardHeading>\n {extra?.label.object.title} #{index + 1}\n </CardHeading>\n <CardContent>\n <FieldObject\n name={currentName}\n formState={formState}\n register={register}\n control={control}\n {...extra?.of}\n />\n </CardContent>\n <CardAction>\n <Button type=\"button\" variant=\"link\" onClick={() => onDelete(index)}>\n {extra?.label.object.delete}\n </Button>\n </CardAction>\n </Card>\n );\n};\n"],
|
|
5
|
-
"mappings": "AAAA,OAAO,SAAS,gBAAgB;AAChC,SAAS,qBAAoC;AAC7C,OAAO,oBAAoB;AAE3B,OAAO,iBAAiB;AACxB,OAAO,gBAAgB;AAKvB,SAAS,cAAc;AACvB,SAAS,YAAY;AACrB,SAAS,kBAAkB;AAC3B,SAAS,mBAAmB;AAC5B,SAAS,mBAAmB;AAC5B,SAAS,eAAe;AAGjB,MAAM,eAA4C,CAAC;AAAA,EACxD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,EAAE,QAAQ,QAAQ,OAAO,IAAI,cAAc;AAAA,IAC/C;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAA0B,CAAC,CAAC;AACxE,QAAM,cAAc,CAAC,SAAS;AAC5B,sBAAkB,CAAC,GAAG,gBAAgB,IAAI,CAAC;AAAA,EAC7C;AACA,QAAM,eAAe,CAAC,UAAU;AAC9B,WAAO,KAAK;AAEZ,UAAM,oBAAoB,CAAC,GAAG,cAAc;AAC5C,sBAAkB,OAAO,OAAO,CAAC;AACjC,sBAAkB,iBAAiB;AAAA,EACrC;AACA,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,OACE,UAAU,eAAe,CAAC,UAAU,gBAAgB,OAAO,UACvD,QACA;AAAA,MAEN,SAAQ;AAAA,MACR;AAAA;AAAA,IAEC,eAAe,SAAS,IACvB,oCAAC,aACC,oCAAC,WAAQ,MAAK,QAAM,OAAO,MAAM,OAAO,WAAY,GACnD,eAAe,IAAI,CAAC,SAAS,UAAU;AACtC,aACE;AAAA,QAAC;AAAA;AAAA,UACC,KAAK,GAAG,IAAI,IAAI,KAAK;AAAA,UACrB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,UAAU;AAAA;AAAA,MACZ;AAAA,IAEJ,CAAC,CACH,IAEA;AAAA,IAEF;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAS;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF;AAAA,EACF;AAEJ;AAEA,IAAO,4BAAQ;AAYR,MAAM,aAAwC,CAAC;AAAA,EACpD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAEF,MAAM;AACJ,QAAM,cAAc,GAAG,IAAI,IAAI,KAAK;AACpC,SACE,oCAAC,QAAK,SAAS,OAAO,UAAU,YAC9B,oCAAC,mBACE,OAAO,MAAM,OAAO,OAAM,MAAG,QAAQ,CACxC,GACA,oCAAC,mBACC;AAAA,IAAC;AAAA;AAAA,MACC,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,MACC,GAAG,OAAO;AAAA;AAAA,EACb,CACF,GACA,oCAAC,kBACC,oCAAC,UAAO,MAAK,UAAS,SAAQ,QAAO,SAAS,MAAM,SAAS,KAAK,KAC/D,OAAO,MAAM,OAAO,MACvB,CACF,CACF;AAEJ;",
|
|
4
|
+
"sourcesContent": ["import React, { useState } from 'react';\nimport { useFieldArray, UseFormReturn } from 'react-hook-form';\nimport FieldContainer from '@digigov/form/Field/FieldBaseContainer';\n\nimport FieldObject from '@digigov/form/FieldObject';\nimport AddObjects from '@digigov/form/MultiplicityField/add-objects';\nimport {\n MultiplicityProps,\n StashedObject,\n} from '@digigov/form/MultiplicityField/types';\nimport { Button } from '@digigov/react-core/Button';\nimport { Card } from '@digigov/react-core/Card';\nimport { CardAction } from '@digigov/react-core/CardAction';\nimport { CardContent } from '@digigov/react-core/CardContent';\nimport { CardHeading } from '@digigov/react-core/CardHeading';\nimport { Heading } from '@digigov/react-core/Heading';\n\n// epeidh einai forwardRef to ref mas to dinei xwrista apo ta props\nexport const Multiplicity: React.FC<MultiplicityProps> = ({\n extra,\n name,\n control,\n error,\n register,\n trigger,\n clearErrors,\n formState,\n label,\n layout,\n setValue,\n getValues,\n unregister,\n Field,\n}) => {\n const { fields, append, remove } = useFieldArray({\n control,\n name,\n });\n const [stashedObjects, setStashedObjects] = useState<StashedObject[]>([]);\n const handleStash = (data) => {\n setStashedObjects([...stashedObjects, data]);\n };\n const handleDelete = (index) => {\n remove(index);\n // creating a new array to maintain immutability\n const newStashedObjects = [...stashedObjects];\n newStashedObjects.splice(index, 1);\n setStashedObjects(newStashedObjects);\n };\n return (\n <FieldContainer\n label={label}\n layout={layout}\n error={\n formState.isSubmitted && !formState.isSubmitting && error?.message\n ? error\n : undefined\n }\n wrapper=\"fieldset\"\n name={name}\n >\n {stashedObjects.length > 0 ? (\n <div>\n <Heading size=\"md\">{extra?.label.object.title_added}</Heading>\n {stashedObjects.map((_Object, index) => {\n return (\n <ListObject\n key={`${name}.${index}`}\n index={index}\n name={name}\n extra={extra}\n control={control}\n register={register}\n formState={formState}\n onDelete={handleDelete}\n />\n );\n })}\n </div>\n ) : (\n ''\n )}\n <AddObjects\n name={name}\n register={register}\n control={control}\n fields={fields}\n formState={formState}\n error={error}\n stashedObjects={stashedObjects}\n extra={extra}\n append={append}\n remove={remove}\n onStash={handleStash}\n setValue={setValue}\n getValues={getValues}\n unregister={unregister}\n trigger={trigger}\n clearErrors={clearErrors}\n Field={Field}\n />\n </FieldContainer>\n );\n};\n\nexport default Multiplicity;\n\nexport interface ListObjectProps {\n index: number;\n name: string;\n control: UseFormReturn['control'];\n register: UseFormReturn['register'];\n formState: UseFormReturn['formState'];\n onDelete: (index: number) => void;\n extra?: Record<string, any>;\n}\n\nexport const ListObject: React.FC<ListObjectProps> = ({\n index,\n name,\n extra,\n control,\n register,\n onDelete,\n formState,\n // onEdit,\n}) => {\n const currentName = `${name}.${index}`;\n return (\n <Card variant={extra?.border && 'border'}>\n <CardHeading>\n {extra?.label.object.title} #{index + 1}\n </CardHeading>\n <CardContent>\n <FieldObject\n name={currentName}\n formState={formState}\n register={register}\n control={control}\n {...extra?.of}\n />\n </CardContent>\n <CardAction>\n <Button type=\"button\" variant=\"link\" onClick={() => onDelete(index)}>\n {extra?.label.object.delete}\n </Button>\n </CardAction>\n </Card>\n );\n};\n"],
|
|
5
|
+
"mappings": "AAAA,OAAO,SAAS,gBAAgB;AAChC,SAAS,qBAAoC;AAC7C,OAAO,oBAAoB;AAE3B,OAAO,iBAAiB;AACxB,OAAO,gBAAgB;AAKvB,SAAS,cAAc;AACvB,SAAS,YAAY;AACrB,SAAS,kBAAkB;AAC3B,SAAS,mBAAmB;AAC5B,SAAS,mBAAmB;AAC5B,SAAS,eAAe;AAGjB,MAAM,eAA4C,CAAC;AAAA,EACxD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,EAAE,QAAQ,QAAQ,OAAO,IAAI,cAAc;AAAA,IAC/C;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAA0B,CAAC,CAAC;AACxE,QAAM,cAAc,CAAC,SAAS;AAC5B,sBAAkB,CAAC,GAAG,gBAAgB,IAAI,CAAC;AAAA,EAC7C;AACA,QAAM,eAAe,CAAC,UAAU;AAC9B,WAAO,KAAK;AAEZ,UAAM,oBAAoB,CAAC,GAAG,cAAc;AAC5C,sBAAkB,OAAO,OAAO,CAAC;AACjC,sBAAkB,iBAAiB;AAAA,EACrC;AACA,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,OACE,UAAU,eAAe,CAAC,UAAU,gBAAgB,OAAO,UACvD,QACA;AAAA,MAEN,SAAQ;AAAA,MACR;AAAA;AAAA,IAEC,eAAe,SAAS,IACvB,oCAAC,aACC,oCAAC,WAAQ,MAAK,QAAM,OAAO,MAAM,OAAO,WAAY,GACnD,eAAe,IAAI,CAAC,SAAS,UAAU;AACtC,aACE;AAAA,QAAC;AAAA;AAAA,UACC,KAAK,GAAG,IAAI,IAAI,KAAK;AAAA,UACrB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,UAAU;AAAA;AAAA,MACZ;AAAA,IAEJ,CAAC,CACH,IAEA;AAAA,IAEF;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAS;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF;AAAA,EACF;AAEJ;AAEA,IAAO,4BAAQ;AAYR,MAAM,aAAwC,CAAC;AAAA,EACpD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAEF,MAAM;AACJ,QAAM,cAAc,GAAG,IAAI,IAAI,KAAK;AACpC,SACE,oCAAC,QAAK,SAAS,OAAO,UAAU,YAC9B,oCAAC,mBACE,OAAO,MAAM,OAAO,OAAM,MAAG,QAAQ,CACxC,GACA,oCAAC,mBACC;AAAA,IAAC;AAAA;AAAA,MACC,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,MACC,GAAG,OAAO;AAAA;AAAA,EACb,CACF,GACA,oCAAC,kBACC,oCAAC,UAAO,MAAK,UAAS,SAAQ,QAAO,SAAS,MAAM,SAAS,KAAK,KAC/D,OAAO,MAAM,OAAO,MACvB,CACF,CACF;AAEJ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/Questions/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/Field/FieldBase.tsx"],
|
|
4
|
-
"sourcesContent": ["import React from 'react';\nimport { Controller } from 'react-hook-form';\nimport FieldBaseContainer from '@digigov/form/Field/FieldBaseContainer';\nimport { FieldBaseProps } from '@digigov/form/Field/types';\n\nexport const FieldBase: React.FC<FieldBaseProps> = (props) => {\n const {\n required,\n name,\n component: Component,\n wrapper,\n control,\n type,\n controlled = false,\n enabled = true,\n editable,\n defaultValue,\n label,\n extra = {},\n layout,\n error,\n register,\n ...componentProps\n } = props;\n if (!enabled) {\n return null;\n }\n if (controlled) {\n return (\n <FieldBaseContainer\n label={label}\n layout={layout}\n error={error}\n wrapper={wrapper}\n name={name}\n >\n <Controller\n control={control}\n name={name}\n render={({ field }) => {\n return (\n <Component\n {...field}\n ref={undefined}\n defaultValue={defaultValue}\n extra={extra}\n error={!!error}\n type={type}\n aria-required={!!required}\n aria-describedby={error && `${name}-error`}\n required={required}\n disabled={editable === false}\n {...componentProps}\n />\n );\n }}\n />\n </FieldBaseContainer>\n );\n }\n\n return (\n <FieldBaseContainer\n label={label}\n layout={layout}\n error={error}\n wrapper={wrapper}\n name={name}\n >\n {Component?.render ? (\n <Component\n {...register(name)}\n control={control}\n error={!!error}\n extra={extra}\n type={type}\n aria-required={!!required}\n aria-describedby={error && `${name}-error`}\n required={required}\n disabled={editable === false}\n {...componentProps}\n />\n ) : (\n <Component\n {...register(name)}\n register={register}\n control={control}\n error={!!error}\n extra={extra}\n type={type}\n aria-required={!!required}\n aria-describedby={error && `${name}-error`}\n required={required}\n disabled={editable === false}\n ref={undefined}\n {...componentProps}\n />\n )}\n </FieldBaseContainer>\n );\n};\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAClB,6BAA2B;AAC3B,gCAA+B;AAGxB,MAAM,YAAsC,CAAC,UAAU;AAC5D,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa;AAAA,IACb,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ,CAAC;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AACJ,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AACA,MAAI,YAAY;AACd,WACE,6BAAAA,QAAA;AAAA,MAAC,0BAAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,MAEA,6BAAAD,QAAA;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA,QAAQ,CAAC,EAAE,MAAM,MAAM;AACrB,mBACE,6BAAAA,QAAA;AAAA,cAAC;AAAA;AAAA,gBACE,GAAG;AAAA,gBACJ,KAAK;AAAA,gBACL;AAAA,gBACA;AAAA,gBACA,OAAO,CAAC,CAAC;AAAA,gBACT;AAAA,gBACA,iBAAe,CAAC,CAAC;AAAA,gBACjB,oBAAkB,SAAS,GAAG,IAAI;AAAA,gBAClC;AAAA,gBACA,UAAU,aAAa;AAAA,gBACtB,GAAG;AAAA;AAAA,YACN;AAAA,UAEJ;AAAA;AAAA,MACF;AAAA,IACF;AAAA,EAEJ;AAEA,SACE,6BAAAA,QAAA;AAAA,IAAC,0BAAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,IAEC,WAAW,SACV,6BAAAD,QAAA;AAAA,MAAC;AAAA;AAAA,QACE,GAAG,SAAS,IAAI;AAAA,QACjB;AAAA,QACA,OAAO,CAAC,CAAC;AAAA,QACT;AAAA,QACA;AAAA,QACA,iBAAe,CAAC,CAAC;AAAA,QACjB,oBAAkB,SAAS,GAAG,IAAI;AAAA,QAClC;AAAA,QACA,UAAU,aAAa;AAAA,QACtB,GAAG;AAAA;AAAA,IACN,IAEA,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACE,GAAG,SAAS,IAAI;AAAA,QACjB;AAAA,QACA;AAAA,QACA,OAAO,CAAC,CAAC;AAAA,QACT;AAAA,QACA;AAAA,QACA,iBAAe,CAAC,CAAC;AAAA,QACjB,oBAAkB,SAAS,GAAG,IAAI;AAAA,QAClC;AAAA,QACA,UAAU,aAAa;AAAA,QACvB,KAAK;AAAA,QACJ,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AAEJ;",
|
|
4
|
+
"sourcesContent": ["import React from 'react';\nimport { Controller } from 'react-hook-form';\nimport FieldBaseContainer from '@digigov/form/Field/FieldBaseContainer';\nimport { FieldBaseProps } from '@digigov/form/Field/types';\n\nexport const FieldBase: React.FC<FieldBaseProps> = (props) => {\n const {\n required,\n name,\n component: Component,\n wrapper,\n control,\n type,\n controlled = false,\n enabled = true,\n editable,\n defaultValue,\n label,\n extra = {},\n layout,\n error,\n register,\n ...componentProps\n } = props;\n if (!enabled) {\n return null;\n }\n if (controlled) {\n return (\n <FieldBaseContainer\n label={label}\n layout={layout}\n error={error}\n wrapper={wrapper}\n name={name}\n >\n <Controller\n control={control}\n name={name}\n render={({ field }) => {\n return (\n <Component\n {...field}\n control={control}\n ref={undefined}\n defaultValue={defaultValue}\n extra={extra}\n error={!!error}\n type={type}\n aria-required={!!required}\n aria-describedby={error && `${name}-error`}\n required={required}\n disabled={editable === false}\n {...componentProps}\n />\n );\n }}\n />\n </FieldBaseContainer>\n );\n }\n\n return (\n <FieldBaseContainer\n label={label}\n layout={layout}\n error={error}\n wrapper={wrapper}\n name={name}\n >\n {Component?.render ? (\n <Component\n {...register(name)}\n control={control}\n error={!!error}\n extra={extra}\n type={type}\n aria-required={!!required}\n aria-describedby={error && `${name}-error`}\n required={required}\n disabled={editable === false}\n {...componentProps}\n />\n ) : (\n <Component\n {...register(name)}\n register={register}\n control={control}\n error={!!error}\n extra={extra}\n type={type}\n aria-required={!!required}\n aria-describedby={error && `${name}-error`}\n required={required}\n disabled={editable === false}\n ref={undefined}\n {...componentProps}\n />\n )}\n </FieldBaseContainer>\n );\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAClB,6BAA2B;AAC3B,gCAA+B;AAGxB,MAAM,YAAsC,CAAC,UAAU;AAC5D,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa;AAAA,IACb,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ,CAAC;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AACJ,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AACA,MAAI,YAAY;AACd,WACE,6BAAAA,QAAA;AAAA,MAAC,0BAAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,MAEA,6BAAAD,QAAA;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA,QAAQ,CAAC,EAAE,MAAM,MAAM;AACrB,mBACE,6BAAAA,QAAA;AAAA,cAAC;AAAA;AAAA,gBACE,GAAG;AAAA,gBACJ;AAAA,gBACA,KAAK;AAAA,gBACL;AAAA,gBACA;AAAA,gBACA,OAAO,CAAC,CAAC;AAAA,gBACT;AAAA,gBACA,iBAAe,CAAC,CAAC;AAAA,gBACjB,oBAAkB,SAAS,GAAG,IAAI;AAAA,gBAClC;AAAA,gBACA,UAAU,aAAa;AAAA,gBACtB,GAAG;AAAA;AAAA,YACN;AAAA,UAEJ;AAAA;AAAA,MACF;AAAA,IACF;AAAA,EAEJ;AAEA,SACE,6BAAAA,QAAA;AAAA,IAAC,0BAAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,IAEC,WAAW,SACV,6BAAAD,QAAA;AAAA,MAAC;AAAA;AAAA,QACE,GAAG,SAAS,IAAI;AAAA,QACjB;AAAA,QACA,OAAO,CAAC,CAAC;AAAA,QACT;AAAA,QACA;AAAA,QACA,iBAAe,CAAC,CAAC;AAAA,QACjB,oBAAkB,SAAS,GAAG,IAAI;AAAA,QAClC;AAAA,QACA,UAAU,aAAa;AAAA,QACtB,GAAG;AAAA;AAAA,IACN,IAEA,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACE,GAAG,SAAS,IAAI;AAAA,QACjB;AAAA,QACA;AAAA,QACA,OAAO,CAAC,CAAC;AAAA,QACT;AAAA,QACA;AAAA,QACA,iBAAe,CAAC,CAAC;AAAA,QACjB,oBAAkB,SAAS,GAAG,IAAI;AAAA,QAClC;AAAA,QACA,UAAU,aAAa;AAAA,QACvB,KAAK;AAAA,QACJ,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AAEJ;",
|
|
6
6
|
"names": ["React", "FieldBaseContainer"]
|
|
7
7
|
}
|
|
@@ -33,7 +33,7 @@ __export(FieldBaseContainer_exports, {
|
|
|
33
33
|
module.exports = __toCommonJS(FieldBaseContainer_exports);
|
|
34
34
|
var import_react = __toESM(require("react"));
|
|
35
35
|
var import_Label = __toESM(require("@digigov/form/inputs/Label"));
|
|
36
|
-
var import_ErrorMessage =
|
|
36
|
+
var import_ErrorMessage = require("@digigov/react-core/ErrorMessage");
|
|
37
37
|
var import_FieldContainer = __toESM(require("@digigov/react-core/FieldContainer"));
|
|
38
38
|
var import_Fieldset = __toESM(require("@digigov/react-core/Fieldset"));
|
|
39
39
|
var import_FieldsetLegend = __toESM(require("@digigov/react-core/FieldsetLegend"));
|
|
@@ -52,9 +52,9 @@ const FieldBaseContainer = ({
|
|
|
52
52
|
const errorMessage = error?.message.key ? error.message.key : error?.message || "";
|
|
53
53
|
const errorContext = error?.message.context || {};
|
|
54
54
|
if (wrapper === "fieldset") {
|
|
55
|
-
return /* @__PURE__ */ import_react.default.createElement(import_FieldContainer.default, { error: !!error, ...layout }, /* @__PURE__ */ import_react.default.createElement(import_Fieldset.default, null, /* @__PURE__ */ import_react.default.createElement(import_FieldsetLegend.default, { size: "sm" }, label && label.primary), label && label.secondary && /* @__PURE__ */ import_react.default.createElement(import_Hint.default, null, t(label.secondary)), error && /* @__PURE__ */ import_react.default.createElement(import_ErrorMessage.
|
|
55
|
+
return /* @__PURE__ */ import_react.default.createElement(import_FieldContainer.default, { error: !!error, ...layout }, /* @__PURE__ */ import_react.default.createElement(import_Fieldset.default, null, /* @__PURE__ */ import_react.default.createElement(import_FieldsetLegend.default, { size: "sm" }, label && label.primary), label && label.secondary && /* @__PURE__ */ import_react.default.createElement(import_Hint.default, null, t(label.secondary)), error && /* @__PURE__ */ import_react.default.createElement(import_ErrorMessage.ErrorMessage, { id: `${name}-error` }, t(errorMessage, errorContext)), children));
|
|
56
56
|
} else {
|
|
57
|
-
return /* @__PURE__ */ import_react.default.createElement(import_FieldContainer.default, { error: !!error, ...layout }, /* @__PURE__ */ import_react.default.createElement(import_LabelContainer.default, null, label && /* @__PURE__ */ import_react.default.createElement(import_Label.default, { label }), error && /* @__PURE__ */ import_react.default.createElement(import_ErrorMessage.
|
|
57
|
+
return /* @__PURE__ */ import_react.default.createElement(import_FieldContainer.default, { error: !!error, ...layout }, /* @__PURE__ */ import_react.default.createElement(import_LabelContainer.default, null, label && /* @__PURE__ */ import_react.default.createElement(import_Label.default, { label }), error && /* @__PURE__ */ import_react.default.createElement(import_ErrorMessage.ErrorMessage, { id: `${name}-error` }, t(errorMessage, errorContext)), children));
|
|
58
58
|
}
|
|
59
59
|
};
|
|
60
60
|
var FieldBaseContainer_default = FieldBaseContainer;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/Field/FieldBaseContainer.tsx"],
|
|
4
|
-
"sourcesContent": ["import React from 'react';\nimport { FieldContainerProps } from '@digigov/form/Field/types';\nimport Label from '@digigov/form/inputs/Label';\nimport ErrorMessage from '@digigov/react-core/ErrorMessage';\nimport FieldContainer from '@digigov/react-core/FieldContainer';\nimport CoreFieldset from '@digigov/react-core/Fieldset';\nimport FieldsetLegend from '@digigov/react-core/FieldsetLegend';\nimport Hint from '@digigov/react-core/Hint';\nimport LabelContainer from '@digigov/react-core/LabelContainer';\nimport { useTranslation } from '@digigov/ui/i18n';\n\nexport const FieldBaseContainer: React.FC<FieldContainerProps> = ({\n name,\n wrapper,\n label,\n children,\n error,\n layout,\n}) => {\n const { t } = useTranslation();\n const errorMessage = error?.message.key\n ? error.message.key\n : error?.message || '';\n const errorContext = error?.message.context || {};\n if (wrapper === 'fieldset') {\n return (\n <FieldContainer error={!!error} {...layout}>\n <CoreFieldset>\n <FieldsetLegend size=\"sm\">{label && label.primary}</FieldsetLegend>\n {label && label.secondary && <Hint>{t(label.secondary)}</Hint>}\n {error && (\n <ErrorMessage id={`${name}-error`}>\n {t(errorMessage, errorContext)}\n </ErrorMessage>\n )}\n {children}\n </CoreFieldset>\n </FieldContainer>\n );\n } else {\n return (\n <FieldContainer error={!!error} {...layout}>\n <LabelContainer>\n {label && <Label label={label} />}\n {error && (\n <ErrorMessage id={`${name}-error`}>\n {t(errorMessage, errorContext)}\n </ErrorMessage>\n )}\n {children}\n </LabelContainer>\n </FieldContainer>\n );\n }\n};\n\nexport default FieldBaseContainer;\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAElB,mBAAkB;AAClB,
|
|
6
|
-
"names": ["React", "FieldContainer", "CoreFieldset", "FieldsetLegend", "Hint", "
|
|
4
|
+
"sourcesContent": ["import React from 'react';\nimport { FieldContainerProps } from '@digigov/form/Field/types';\nimport Label from '@digigov/form/inputs/Label';\nimport {ErrorMessage} from '@digigov/react-core/ErrorMessage';\nimport FieldContainer from '@digigov/react-core/FieldContainer';\nimport CoreFieldset from '@digigov/react-core/Fieldset';\nimport FieldsetLegend from '@digigov/react-core/FieldsetLegend';\nimport Hint from '@digigov/react-core/Hint';\nimport LabelContainer from '@digigov/react-core/LabelContainer';\nimport { useTranslation } from '@digigov/ui/i18n';\n\nexport const FieldBaseContainer: React.FC<FieldContainerProps> = ({\n name,\n wrapper,\n label,\n children,\n error,\n layout,\n}) => {\n const { t } = useTranslation();\n const errorMessage = error?.message.key\n ? error.message.key\n : error?.message || '';\n const errorContext = error?.message.context || {};\n if (wrapper === 'fieldset') {\n return (\n <FieldContainer error={!!error} {...layout}>\n <CoreFieldset>\n <FieldsetLegend size=\"sm\">{label && label.primary}</FieldsetLegend>\n {label && label.secondary && <Hint>{t(label.secondary)}</Hint>}\n {error && (\n <ErrorMessage id={`${name}-error`}>\n {t(errorMessage, errorContext)}\n </ErrorMessage>\n )}\n {children}\n </CoreFieldset>\n </FieldContainer>\n );\n } else {\n return (\n <FieldContainer error={!!error} {...layout}>\n <LabelContainer>\n {label && <Label label={label} />}\n {error && (\n <ErrorMessage id={`${name}-error`}>\n {t(errorMessage, errorContext)}\n </ErrorMessage>\n )}\n {children}\n </LabelContainer>\n </FieldContainer>\n );\n }\n};\n\nexport default FieldBaseContainer;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAElB,mBAAkB;AAClB,0BAA2B;AAC3B,4BAA2B;AAC3B,sBAAyB;AACzB,4BAA2B;AAC3B,kBAAiB;AACjB,4BAA2B;AAC3B,kBAA+B;AAExB,MAAM,qBAAoD,CAAC;AAAA,EAChE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,EAAE,EAAE,QAAI,4BAAe;AAC7B,QAAM,eAAe,OAAO,QAAQ,MAChC,MAAM,QAAQ,MACd,OAAO,WAAW;AACtB,QAAM,eAAe,OAAO,QAAQ,WAAW,CAAC;AAChD,MAAI,YAAY,YAAY;AAC1B,WACE,6BAAAA,QAAA,cAAC,sBAAAC,SAAA,EAAe,OAAO,CAAC,CAAC,OAAQ,GAAG,UAClC,6BAAAD,QAAA,cAAC,gBAAAE,SAAA,MACC,6BAAAF,QAAA,cAAC,sBAAAG,SAAA,EAAe,MAAK,QAAM,SAAS,MAAM,OAAQ,GACjD,SAAS,MAAM,aAAa,6BAAAH,QAAA,cAAC,YAAAI,SAAA,MAAM,EAAE,MAAM,SAAS,CAAE,GACtD,SACC,6BAAAJ,QAAA,cAAC,oCAAa,IAAI,GAAG,IAAI,YACtB,EAAE,cAAc,YAAY,CAC/B,GAED,QACH,CACF;AAAA,EAEJ,OAAO;AACL,WACE,6BAAAA,QAAA,cAAC,sBAAAC,SAAA,EAAe,OAAO,CAAC,CAAC,OAAQ,GAAG,UAClC,6BAAAD,QAAA,cAAC,sBAAAK,SAAA,MACE,SAAS,6BAAAL,QAAA,cAAC,aAAAM,SAAA,EAAM,OAAc,GAC9B,SACC,6BAAAN,QAAA,cAAC,oCAAa,IAAI,GAAG,IAAI,YACtB,EAAE,cAAc,YAAY,CAC/B,GAED,QACH,CACF;AAAA,EAEJ;AACF;AAEA,IAAO,6BAAQ;",
|
|
6
|
+
"names": ["React", "FieldContainer", "CoreFieldset", "FieldsetLegend", "Hint", "LabelContainer", "Label"]
|
|
7
7
|
}
|
|
@@ -42,7 +42,8 @@ const ChildFieldMemo = import_react.default.memo(
|
|
|
42
42
|
control,
|
|
43
43
|
reset,
|
|
44
44
|
register,
|
|
45
|
-
error
|
|
45
|
+
error,
|
|
46
|
+
Field
|
|
46
47
|
}) {
|
|
47
48
|
const newField = (0, import_evaluateFieldWithConditions.evaluateFieldWithConditions)(
|
|
48
49
|
field,
|
|
@@ -52,6 +53,7 @@ const ChildFieldMemo = import_react.default.memo(
|
|
|
52
53
|
import_FieldBase.FieldBase,
|
|
53
54
|
{
|
|
54
55
|
...newField,
|
|
56
|
+
Field,
|
|
55
57
|
name: newField.key,
|
|
56
58
|
reset,
|
|
57
59
|
control,
|
|
@@ -80,7 +82,8 @@ const FieldConditional = ({
|
|
|
80
82
|
field,
|
|
81
83
|
register,
|
|
82
84
|
reset,
|
|
83
|
-
error
|
|
85
|
+
error,
|
|
86
|
+
Field
|
|
84
87
|
}) => {
|
|
85
88
|
const dependencyKeys = Object.keys(field.condition);
|
|
86
89
|
const dependencyValues = (0, import_react_hook_form.useWatch)({
|
|
@@ -102,7 +105,8 @@ const FieldConditional = ({
|
|
|
102
105
|
control,
|
|
103
106
|
register,
|
|
104
107
|
reset,
|
|
105
|
-
error
|
|
108
|
+
error,
|
|
109
|
+
Field
|
|
106
110
|
}
|
|
107
111
|
);
|
|
108
112
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/Field/FieldConditional.tsx"],
|
|
4
|
-
"sourcesContent": ["import React from 'react';\nimport { useWatch } from 'react-hook-form';\nimport { FieldBase } from '@digigov/form/Field/FieldBase';\nimport {\n ChildFieldMemoProps,\n FieldConditionalProps,\n} from '@digigov/form/Field/types';\nimport { evaluateFieldWithConditions } from '@digigov/form/Field/utils/evaluateFieldWithConditions';\n\nconst ChildFieldMemo = React.memo(\n function ChildField({\n dependencies,\n field,\n control,\n reset,\n register,\n error,\n }: ChildFieldMemoProps) {\n const newField = evaluateFieldWithConditions(\n field,\n dependencies as FormData\n );\n return (\n <FieldBase\n {...newField}\n name={newField.key}\n reset={reset}\n control={control}\n register={register}\n error={error}\n />\n );\n },\n (prev, next) => {\n if (!prev || !prev.dependencies) {\n return false;\n }\n if (prev.error !== next.error) {\n return false;\n }\n for (const dep in next.dependencies) {\n if (next.dependencies[dep] !== prev.dependencies[dep]) {\n return false;\n }\n }\n return true;\n }\n);\n\nexport const FieldConditional: React.FC<FieldConditionalProps> = ({\n control,\n field,\n register,\n reset,\n error,\n}) => {\n const dependencyKeys = Object.keys(field.condition);\n const dependencyValues = useWatch({\n name: dependencyKeys,\n control,\n });\n const variables = dependencyKeys.reduce(\n (data, fieldKey, index) => ({\n ...data,\n [fieldKey]: dependencyValues[index],\n }),\n {}\n );\n return (\n <ChildFieldMemo\n dependencies={variables}\n field={field}\n control={control}\n register={register}\n reset={reset}\n error={error}\n />\n );\n};\n\nexport default FieldConditional;\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAClB,6BAAyB;AACzB,uBAA0B;AAK1B,yCAA4C;AAE5C,MAAM,iBAAiB,aAAAA,QAAM;AAAA,EAC3B,SAAS,WAAW;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAAwB;AACtB,UAAM,eAAW;AAAA,MACf;AAAA,MACA;AAAA,IACF;AACA,WACE,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACJ,MAAM,SAAS;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF;AAAA,EAEJ;AAAA,EACA,CAAC,MAAM,SAAS;AACd,QAAI,CAAC,QAAQ,CAAC,KAAK,cAAc;AAC/B,aAAO;AAAA,IACT;AACA,QAAI,KAAK,UAAU,KAAK,OAAO;AAC7B,aAAO;AAAA,IACT;AACA,eAAW,OAAO,KAAK,cAAc;AACnC,UAAI,KAAK,aAAa,GAAG,MAAM,KAAK,aAAa,GAAG,GAAG;AACrD,eAAO;AAAA,MACT;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACF;AAEO,MAAM,mBAAoD,CAAC;AAAA,EAChE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,iBAAiB,OAAO,KAAK,MAAM,SAAS;AAClD,QAAM,uBAAmB,iCAAS;AAAA,IAChC,MAAM;AAAA,IACN;AAAA,EACF,CAAC;AACD,QAAM,YAAY,eAAe;AAAA,IAC/B,CAAC,MAAM,UAAU,WAAW;AAAA,MAC1B,GAAG;AAAA,MACH,CAAC,QAAQ,GAAG,iBAAiB,KAAK;AAAA,IACpC;AAAA,IACA,CAAC;AAAA,EACH;AACA,SACE,6BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,cAAc;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,2BAAQ;",
|
|
4
|
+
"sourcesContent": ["import React from 'react';\nimport { useWatch } from 'react-hook-form';\nimport { FieldBase } from '@digigov/form/Field/FieldBase';\nimport {\n ChildFieldMemoProps,\n FieldConditionalProps,\n} from '@digigov/form/Field/types';\nimport { evaluateFieldWithConditions } from '@digigov/form/Field/utils/evaluateFieldWithConditions';\n\nconst ChildFieldMemo = React.memo(\n function ChildField({\n dependencies,\n field,\n control,\n reset,\n register,\n error,\n Field\n }: ChildFieldMemoProps) {\n const newField = evaluateFieldWithConditions(\n field,\n dependencies as FormData\n );\n return (\n <FieldBase\n {...newField}\n Field={Field}\n name={newField.key}\n reset={reset}\n control={control}\n register={register}\n error={error}\n />\n );\n },\n (prev, next) => {\n if (!prev || !prev.dependencies) {\n return false;\n }\n if (prev.error !== next.error) {\n return false;\n }\n for (const dep in next.dependencies) {\n if (next.dependencies[dep] !== prev.dependencies[dep]) {\n return false;\n }\n }\n return true;\n }\n);\n\nexport const FieldConditional: React.FC<FieldConditionalProps> = ({\n control,\n field,\n register,\n reset,\n error,\n Field\n}) => {\n const dependencyKeys = Object.keys(field.condition);\n const dependencyValues = useWatch({\n name: dependencyKeys,\n control,\n });\n const variables = dependencyKeys.reduce(\n (data, fieldKey, index) => ({\n ...data,\n [fieldKey]: dependencyValues[index],\n }),\n {}\n );\n return (\n <ChildFieldMemo\n dependencies={variables}\n field={field}\n control={control}\n register={register}\n reset={reset}\n error={error}\n Field={Field}\n />\n );\n};\n\nexport default FieldConditional;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAClB,6BAAyB;AACzB,uBAA0B;AAK1B,yCAA4C;AAE5C,MAAM,iBAAiB,aAAAA,QAAM;AAAA,EAC3B,SAAS,WAAW;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAAwB;AACtB,UAAM,eAAW;AAAA,MACf;AAAA,MACA;AAAA,IACF;AACA,WACE,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACJ;AAAA,QACA,MAAM,SAAS;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF;AAAA,EAEJ;AAAA,EACA,CAAC,MAAM,SAAS;AACd,QAAI,CAAC,QAAQ,CAAC,KAAK,cAAc;AAC/B,aAAO;AAAA,IACT;AACA,QAAI,KAAK,UAAU,KAAK,OAAO;AAC7B,aAAO;AAAA,IACT;AACA,eAAW,OAAO,KAAK,cAAc;AACnC,UAAI,KAAK,aAAa,GAAG,MAAM,KAAK,aAAa,GAAG,GAAG;AACrD,eAAO;AAAA,MACT;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACF;AAEO,MAAM,mBAAoD,CAAC;AAAA,EAChE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,iBAAiB,OAAO,KAAK,MAAM,SAAS;AAClD,QAAM,uBAAmB,iCAAS;AAAA,IAChC,MAAM;AAAA,IACN;AAAA,EACF,CAAC;AACD,QAAM,YAAY,eAAe;AAAA,IAC/B,CAAC,MAAM,UAAU,WAAW;AAAA,MAC1B,GAAG;AAAA,MACH,CAAC,QAAQ,GAAG,iBAAiB,KAAK;AAAA,IACpC;AAAA,IACA,CAAC;AAAA,EACH;AACA,SACE,6BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,cAAc;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,2BAAQ;",
|
|
6
6
|
"names": ["React"]
|
|
7
7
|
}
|
package/cjs/Field/index.js
CHANGED
|
@@ -79,7 +79,8 @@ const Field = ({
|
|
|
79
79
|
reset,
|
|
80
80
|
register,
|
|
81
81
|
field: calculatedField,
|
|
82
|
-
error
|
|
82
|
+
error,
|
|
83
|
+
Field
|
|
83
84
|
}
|
|
84
85
|
);
|
|
85
86
|
}
|
|
@@ -92,6 +93,7 @@ const Field = ({
|
|
|
92
93
|
register,
|
|
93
94
|
error,
|
|
94
95
|
formState,
|
|
96
|
+
Field,
|
|
95
97
|
...calculatedField
|
|
96
98
|
}
|
|
97
99
|
);
|
|
@@ -110,6 +112,7 @@ const Field = ({
|
|
|
110
112
|
setValue,
|
|
111
113
|
getValues,
|
|
112
114
|
unregister,
|
|
115
|
+
Field,
|
|
113
116
|
...calculatedField
|
|
114
117
|
}
|
|
115
118
|
);
|
|
@@ -124,7 +127,7 @@ const Field = ({
|
|
|
124
127
|
register,
|
|
125
128
|
reset,
|
|
126
129
|
error,
|
|
127
|
-
|
|
130
|
+
Field
|
|
128
131
|
}
|
|
129
132
|
);
|
|
130
133
|
};
|
package/cjs/Field/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/Field/index.tsx"],
|
|
4
|
-
"sourcesContent": ["import React, { useMemo } from 'react';\nimport { FieldBase } from '@digigov/form/Field/FieldBase';\nimport FieldConditional from '@digigov/form/Field/FieldConditional';\nimport {\n FieldWithCondition,\n CalculatedField,\n FieldProps,\n} from '@digigov/form/Field/types';\nimport {\n FIELD_COMPONENTS,\n ALTERNATIVE_COMPONENTS,\n} from '@digigov/form/Field/utils';\nimport { calculateField } from '@digigov/form/Field/utils/calculateField';\nimport { useField } from '@digigov/form/Field/utils/useField';\nimport FieldArray from '@digigov/form/FieldArray';\nimport Multiplicity from '@digigov/form/MultiplicityField';\nexport const Field: React.FC<FieldProps> = ({\n name,\n disabled,\n children,\n ...customField\n}) => {\n const {\n field,\n control,\n register,\n reset,\n error,\n componentRegistry,\n formState,\n setValue,\n getValues,\n unregister,\n trigger,\n clearErrors,\n } = useField(name, customField?.type ? customField : null);\n const calculatedField: CalculatedField = useMemo(\n () =>\n calculateField(\n children,\n field,\n {\n ...FIELD_COMPONENTS,\n ...componentRegistry,\n },\n ALTERNATIVE_COMPONENTS\n ),\n [field]\n );\n\n if (calculatedField.condition) {\n return (\n <FieldConditional\n control={control}\n reset={reset}\n register={register}\n field={calculatedField as FieldWithCondition}\n error={error}\n />\n );\n }\n if (calculatedField.type === 'array' && !calculatedField.multiplicity) {\n calculatedField.name = name;\n return (\n <FieldArray\n control={control}\n register={register}\n error={error}\n formState={formState}\n {...calculatedField}\n />\n );\n }\n if (\n calculatedField.type === 'array' &&\n calculatedField.multiplicity === true\n ) {\n calculatedField.name = name;\n return (\n <Multiplicity\n control={control}\n register={register}\n trigger={trigger}\n clearErrors={clearErrors}\n error={error}\n formState={formState}\n setValue={setValue}\n getValues={getValues}\n unregister={unregister}\n {...calculatedField}\n />\n );\n }\n return (\n <FieldBase\n {...calculatedField}\n name={name}\n disabled={disabled}\n control={control}\n register={register}\n reset={reset}\n error={error}\n
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA+B;AAC/B,uBAA0B;AAC1B,8BAA6B;AAM7B,mBAGO;AACP,4BAA+B;AAC/B,sBAAyB;AACzB,wBAAuB;AACvB,+BAAyB;AAClB,MAAM,QAA8B,CAAC;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,QAAI,0BAAS,MAAM,aAAa,OAAO,cAAc,IAAI;AACzD,QAAM,sBAAmC;AAAA,IACvC,UACE;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,QACE,GAAG;AAAA,QACH,GAAG;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,IACF,CAAC,KAAK;AAAA,EACR;AAEA,MAAI,gBAAgB,WAAW;AAC7B,WACE,6BAAAA,QAAA;AAAA,MAAC,wBAAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA,OAAO;AAAA,QACP;AAAA;AAAA,IACF;AAAA,EAEJ;AACA,MAAI,gBAAgB,SAAS,WAAW,CAAC,gBAAgB,cAAc;AACrE,oBAAgB,OAAO;AACvB,WACE,6BAAAD,QAAA;AAAA,MAAC,kBAAAE;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACC,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACA,MACE,gBAAgB,SAAS,WACzB,gBAAgB,iBAAiB,MACjC;AACA,oBAAgB,OAAO;AACvB,WACE,6BAAAF,QAAA;AAAA,MAAC,yBAAAG;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACC,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACA,SACE,6BAAAH,QAAA;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA
|
|
4
|
+
"sourcesContent": ["import React, { useMemo } from 'react';\nimport { FieldBase } from '@digigov/form/Field/FieldBase';\nimport FieldConditional from '@digigov/form/Field/FieldConditional';\nimport {\n FieldWithCondition,\n CalculatedField,\n FieldProps,\n} from '@digigov/form/Field/types';\nimport {\n FIELD_COMPONENTS,\n ALTERNATIVE_COMPONENTS,\n} from '@digigov/form/Field/utils';\nimport { calculateField } from '@digigov/form/Field/utils/calculateField';\nimport { useField } from '@digigov/form/Field/utils/useField';\nimport FieldArray from '@digigov/form/FieldArray';\nimport Multiplicity from '@digigov/form/MultiplicityField';\nexport const Field: React.FC<FieldProps> = ({\n name,\n disabled,\n children,\n ...customField\n}) => {\n const {\n field,\n control,\n register,\n reset,\n error,\n componentRegistry,\n formState,\n setValue,\n getValues,\n unregister,\n trigger,\n clearErrors,\n } = useField(name, customField?.type ? customField : null);\n const calculatedField: CalculatedField = useMemo(\n () =>\n calculateField(\n children,\n field,\n {\n ...FIELD_COMPONENTS,\n ...componentRegistry,\n },\n ALTERNATIVE_COMPONENTS\n ),\n [field]\n );\n\n if (calculatedField.condition) {\n return (\n <FieldConditional\n control={control}\n reset={reset}\n register={register}\n field={calculatedField as FieldWithCondition}\n error={error}\n Field={Field}\n />\n );\n }\n if (calculatedField.type === 'array' && !calculatedField.multiplicity) {\n calculatedField.name = name;\n return (\n <FieldArray\n control={control}\n register={register}\n error={error}\n formState={formState}\n Field={Field}\n {...calculatedField}\n />\n );\n }\n if (\n calculatedField.type === 'array' &&\n calculatedField.multiplicity === true\n ) {\n calculatedField.name = name;\n return (\n <Multiplicity\n control={control}\n register={register}\n trigger={trigger}\n clearErrors={clearErrors}\n error={error}\n formState={formState}\n setValue={setValue}\n getValues={getValues}\n unregister={unregister}\n Field={Field}\n {...calculatedField}\n />\n );\n }\n return (\n <FieldBase\n {...calculatedField}\n name={name}\n disabled={disabled}\n control={control}\n register={register}\n reset={reset}\n error={error}\n Field={Field}\n />\n );\n};\n\nexport default Field;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA+B;AAC/B,uBAA0B;AAC1B,8BAA6B;AAM7B,mBAGO;AACP,4BAA+B;AAC/B,sBAAyB;AACzB,wBAAuB;AACvB,+BAAyB;AAClB,MAAM,QAA8B,CAAC;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,QAAI,0BAAS,MAAM,aAAa,OAAO,cAAc,IAAI;AACzD,QAAM,sBAAmC;AAAA,IACvC,UACE;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,QACE,GAAG;AAAA,QACH,GAAG;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,IACF,CAAC,KAAK;AAAA,EACR;AAEA,MAAI,gBAAgB,WAAW;AAC7B,WACE,6BAAAA,QAAA;AAAA,MAAC,wBAAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA,OAAO;AAAA,QACP;AAAA,QACA;AAAA;AAAA,IACF;AAAA,EAEJ;AACA,MAAI,gBAAgB,SAAS,WAAW,CAAC,gBAAgB,cAAc;AACrE,oBAAgB,OAAO;AACvB,WACE,6BAAAD,QAAA;AAAA,MAAC,kBAAAE;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACC,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACA,MACE,gBAAgB,SAAS,WACzB,gBAAgB,iBAAiB,MACjC;AACA,oBAAgB,OAAO;AACvB,WACE,6BAAAF,QAAA;AAAA,MAAC,yBAAAG;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACC,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACA,SACE,6BAAAH,QAAA;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,gBAAQ;",
|
|
6
6
|
"names": ["React", "FieldConditional", "FieldArray", "Multiplicity"]
|
|
7
7
|
}
|
package/cjs/Field/types.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/Field/types.tsx"],
|
|
4
|
-
"sourcesContent": ["import React from 'react';\nimport { ErrorOption, UseFormReturn, UseFormProps } from 'react-hook-form';\nimport { ValidatorSchema } from '@digigov/form/validators/types';\nimport { GridProps } from '@digigov/ui/layouts/Grid';\n\nexport type FieldLabelProps = {\n primary?: string;\n secondary?: string;\n};\n\nexport interface FieldSpec {\n key: string; // !TODO rename key to name;\n type?:\n
|
|
4
|
+
"sourcesContent": ["import React from 'react';\nimport { ErrorOption, UseFormReturn, UseFormProps } from 'react-hook-form';\nimport { ValidatorSchema } from '@digigov/form/validators/types';\nimport { GridProps } from '@digigov/ui/layouts/Grid';\n\nexport type FieldLabelProps = {\n primary?: string;\n secondary?: string;\n};\n\nexport interface FieldSpec {\n key: string; // !TODO rename key to name;\n type?:\n | 'int'\n | 'string'\n | 'text'\n | 'boolean'\n | 'email'\n | 'uuid4'\n | 'choice:multiple'\n | 'choice:single'\n | 'mobile_phone'\n | 'date'\n | 'otp'\n | 'afm'\n | 'iban'\n | 'file'\n | 'image'\n | 'postal_code'\n | 'phone_number'\n | 'array'\n | 'object';\n component?: any;\n maxLength?: number;\n condition?: Record<string, FieldCondition>;\n controlled?: boolean;\n label?: FieldLabelProps;\n extra?: {\n [key: string]: any;\n };\n editable?: boolean;\n required?: boolean;\n enabled?: boolean;\n disabled?: boolean;\n layout?: Record<\n string,\n | GridProps['xs']\n | GridProps['sm']\n | GridProps['md']\n | GridProps['lg']\n | GridProps['xl']\n >;\n validators?: ValidatorSchema[];\n wrapper?: 'label' | 'fieldset';\n maxWidth?: string;\n maxHeight?: string;\n width?: string;\n}\n\nexport interface FieldCondition {\n is: string | string[] | number | number[] | boolean | boolean[];\n then?: Partial<FieldSpec>;\n else?: Partial<FieldSpec>;\n}\nexport interface ChildFieldMemoProps extends FieldConditionalProps {\n dependencies: FormData;\n}\nexport type FormData = UseFormProps['defaultValues'];\n\nexport interface FieldWithCondition extends Omit<CalculatedField, 'condition'> {\n condition: Record<string, FieldCondition>;\n}\n\nexport interface FieldConditionalProps {\n field: FieldWithCondition;\n control: UseFormReturn['control'];\n register: UseFormReturn['register'];\n reset: UseFormReturn['reset'];\n error?: ErrorOption;\n Field: React.FC<FieldProps>;\n}\n\nexport type FieldComponentItem = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n component: any;\n controlled?: boolean;\n wrapper?: FieldSpec['wrapper'];\n};\n\nexport interface FieldContainerProps {\n name?: FieldSpec['key'];\n layout?: FieldSpec['layout'];\n label?: FieldSpec['label'];\n error?: ErrorOption | Record<string, any>;\n children?: React.ReactNode;\n wrapper?: FieldSpec['wrapper'];\n}\n\nexport type FieldComponentRegistry = Record<string, FieldComponentItem>;\n\nexport type OmittedFieldSpec = Omit<FieldSpec, 'component'>;\n\nexport type UnknownValue = never | never[];\n\nexport interface ControlledFieldProps {\n type?: string;\n value: UnknownValue;\n onChange: (v: UnknownValue) => void;\n defaultValue?: UnknownValue;\n onBlur?: (e: Event) => void;\n extra?: never;\n error?: boolean;\n name?: string;\n disabled?: boolean;\n Field: React.FC<FieldProps>;\n}\n\nexport interface UncontrolledFieldProps {\n name: string;\n register: FieldBaseProps['register'];\n control?: FieldBaseProps['control'];\n error?: boolean;\n extra?: Record<string, never>;\n type?: string;\n disabled?: boolean;\n Field: React.FC<FieldProps>;\n}\n\nexport interface CalculatedField extends OmittedFieldSpec {\n name: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n component: any;\n defaultValue?: never;\n error?: ErrorOption;\n wrapper?: FieldComponentItem['wrapper'];\n multiplicity?: boolean;\n}\n\nexport interface FieldBaseProps extends CalculatedField {\n control: UseFormReturn['control'];\n register: UseFormReturn['register'];\n reset: UseFormReturn['reset'];\n Field: React.FC<FieldProps>;\n}\n\nexport interface FieldProps extends FieldSpec {\n name: string;\n children?: React.ReactNode;\n}\n\nexport interface UseFieldProps {\n field: FieldSpec;\n control: FieldBaseProps['control'];\n register: FieldBaseProps['register'];\n reset: FieldBaseProps['reset'];\n watch: UseFormReturn['watch'];\n formState: UseFormReturn['formState'];\n getFieldState: UseFormReturn['getFieldState'];\n setValue: UseFormReturn['setValue'];\n getValues: UseFormReturn['getValues'];\n unregister: UseFormReturn['unregister'];\n trigger: UseFormReturn['trigger'];\n clearErrors: UseFormReturn['clearErrors'];\n error?: ErrorOption;\n componentRegistry?: FieldComponentRegistry;\n}\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;AAAA;AAAA;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/cjs/Field/utils/index.js
CHANGED
|
@@ -28,6 +28,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
28
28
|
var utils_exports = {};
|
|
29
29
|
__export(utils_exports, {
|
|
30
30
|
ALTERNATIVE_COMPONENTS: () => ALTERNATIVE_COMPONENTS,
|
|
31
|
+
CONTROLLED_FIELD_COMPONENTS: () => CONTROLLED_FIELD_COMPONENTS,
|
|
31
32
|
FIELD_COMPONENTS: () => FIELD_COMPONENTS
|
|
32
33
|
});
|
|
33
34
|
module.exports = __toCommonJS(utils_exports);
|
|
@@ -87,9 +88,26 @@ const ALTERNATIVE_COMPONENTS = {
|
|
|
87
88
|
wrapper: "fieldset"
|
|
88
89
|
}
|
|
89
90
|
};
|
|
91
|
+
const CONTROLLED_FIELD_COMPONENTS = {
|
|
92
|
+
...FIELD_COMPONENTS,
|
|
93
|
+
"choice:single": {
|
|
94
|
+
wrapper: "fieldset",
|
|
95
|
+
controlled: true,
|
|
96
|
+
component: import_Radio.ControlledRadioButtonsGroup
|
|
97
|
+
},
|
|
98
|
+
text: {
|
|
99
|
+
component: import_Input.default,
|
|
100
|
+
controlled: true
|
|
101
|
+
},
|
|
102
|
+
string: {
|
|
103
|
+
component: import_Input.default,
|
|
104
|
+
controlled: true
|
|
105
|
+
}
|
|
106
|
+
};
|
|
90
107
|
// Annotate the CommonJS export names for ESM import in node:
|
|
91
108
|
0 && (module.exports = {
|
|
92
109
|
ALTERNATIVE_COMPONENTS,
|
|
110
|
+
CONTROLLED_FIELD_COMPONENTS,
|
|
93
111
|
FIELD_COMPONENTS
|
|
94
112
|
});
|
|
95
113
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/Field/utils/index.ts"],
|
|
4
|
-
"sourcesContent": ["import { FieldComponentRegistry } from '@digigov/form/Field/types';\nimport AutoCompleteInput from '@digigov/form/inputs/AutoCompleteInput';\nimport Checkboxes from '@digigov/form/inputs/Checkboxes';\nimport DateInput from '@digigov/form/inputs/DateInput';\nimport FileInput from '@digigov/form/inputs/FileInput';\nimport ImageInput from '@digigov/form/inputs/ImageInput';\nimport Input from '@digigov/form/inputs/Input';\nimport OtpInput from '@digigov/form/inputs/OtpInput';\nimport Radio from '@digigov/form/inputs/Radio';\nimport Select from '@digigov/form/inputs/Select';\n\nexport const FIELD_COMPONENTS: FieldComponentRegistry = {\n text: {\n component: Input,\n },\n string: {\n component: Input,\n },\n file: {\n wrapper: 'fieldset',\n component: FileInput,\n },\n image: {\n wrapper: 'fieldset',\n component: ImageInput,\n },\n date: {\n wrapper: 'fieldset',\n controlled: true,\n component: DateInput,\n },\n otp: {\n wrapper: 'fieldset',\n controlled: true,\n component: OtpInput,\n },\n 'choice:multiple': {\n wrapper: 'fieldset',\n controlled: true,\n component: Checkboxes,\n },\n 'choice:single': {\n wrapper: 'fieldset',\n controlled: false,\n component: Radio,\n },\n};\n\nexport const ALTERNATIVE_COMPONENTS: FieldComponentRegistry = {\n Select: {\n component: Select,\n controlled: false,\n },\n AutoComplete: {\n component: AutoCompleteInput,\n controlled: true,\n wrapper: 'fieldset',\n },\n};\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,+BAA8B;AAC9B,wBAAuB;AACvB,uBAAsB;AACtB,uBAAsB;AACtB,wBAAuB;AACvB,mBAAkB;AAClB,sBAAqB;AACrB,
|
|
4
|
+
"sourcesContent": ["import { FieldComponentRegistry } from '@digigov/form/Field/types';\nimport AutoCompleteInput from '@digigov/form/inputs/AutoCompleteInput';\nimport Checkboxes from '@digigov/form/inputs/Checkboxes';\nimport DateInput from '@digigov/form/inputs/DateInput';\nimport FileInput from '@digigov/form/inputs/FileInput';\nimport ImageInput from '@digigov/form/inputs/ImageInput';\nimport Input from '@digigov/form/inputs/Input';\nimport OtpInput from '@digigov/form/inputs/OtpInput';\nimport Radio, { ControlledRadioButtonsGroup } from '@digigov/form/inputs/Radio';\nimport Select from '@digigov/form/inputs/Select';\n\nexport const FIELD_COMPONENTS: FieldComponentRegistry = {\n text: {\n component: Input,\n },\n string: {\n component: Input,\n },\n file: {\n wrapper: 'fieldset',\n component: FileInput,\n },\n image: {\n wrapper: 'fieldset',\n component: ImageInput,\n },\n date: {\n wrapper: 'fieldset',\n controlled: true,\n component: DateInput,\n },\n otp: {\n wrapper: 'fieldset',\n controlled: true,\n component: OtpInput,\n },\n 'choice:multiple': {\n wrapper: 'fieldset',\n controlled: true,\n component: Checkboxes,\n },\n 'choice:single': {\n wrapper: 'fieldset',\n controlled: false,\n component: Radio,\n },\n};\n\nexport const ALTERNATIVE_COMPONENTS: FieldComponentRegistry = {\n Select: {\n component: Select,\n controlled: false,\n },\n AutoComplete: {\n component: AutoCompleteInput,\n controlled: true,\n wrapper: 'fieldset',\n },\n};\n\nexport const CONTROLLED_FIELD_COMPONENTS: FieldComponentRegistry = {\n ...FIELD_COMPONENTS,\n 'choice:single': {\n wrapper: 'fieldset',\n controlled: true,\n component: ControlledRadioButtonsGroup,\n },\n text: {\n component: Input,\n controlled: true,\n },\n string: {\n component: Input,\n controlled: true,\n },\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,+BAA8B;AAC9B,wBAAuB;AACvB,uBAAsB;AACtB,uBAAsB;AACtB,wBAAuB;AACvB,mBAAkB;AAClB,sBAAqB;AACrB,mBAAmD;AACnD,oBAAmB;AAEZ,MAAM,mBAA2C;AAAA,EACtD,MAAM;AAAA,IACJ,WAAW,aAAAA;AAAA,EACb;AAAA,EACA,QAAQ;AAAA,IACN,WAAW,aAAAA;AAAA,EACb;AAAA,EACA,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,WAAW,iBAAAC;AAAA,EACb;AAAA,EACA,OAAO;AAAA,IACL,SAAS;AAAA,IACT,WAAW,kBAAAC;AAAA,EACb;AAAA,EACA,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,WAAW,iBAAAC;AAAA,EACb;AAAA,EACA,KAAK;AAAA,IACH,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,WAAW,gBAAAC;AAAA,EACb;AAAA,EACA,mBAAmB;AAAA,IACjB,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,WAAW,kBAAAC;AAAA,EACb;AAAA,EACA,iBAAiB;AAAA,IACf,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,WAAW,aAAAC;AAAA,EACb;AACF;AAEO,MAAM,yBAAiD;AAAA,EAC5D,QAAQ;AAAA,IACN,WAAW,cAAAC;AAAA,IACX,YAAY;AAAA,EACd;AAAA,EACA,cAAc;AAAA,IACZ,WAAW,yBAAAC;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,EACX;AACF;AAEO,MAAM,8BAAsD;AAAA,EACjE,GAAG;AAAA,EACH,iBAAiB;AAAA,IACf,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,WAAW;AAAA,EACb;AAAA,EACA,MAAM;AAAA,IACJ,WAAW,aAAAR;AAAA,IACX,YAAY;AAAA,EACd;AAAA,EACA,QAAQ;AAAA,IACN,WAAW,aAAAA;AAAA,IACX,YAAY;AAAA,EACd;AACF;",
|
|
6
6
|
"names": ["Input", "FileInput", "ImageInput", "DateInput", "OtpInput", "Checkboxes", "Radio", "Select", "AutoCompleteInput"]
|
|
7
7
|
}
|
package/cjs/FieldArray/index.js
CHANGED
|
@@ -48,6 +48,7 @@ const FieldArray = ({
|
|
|
48
48
|
error,
|
|
49
49
|
layout,
|
|
50
50
|
label,
|
|
51
|
+
Field,
|
|
51
52
|
...customField
|
|
52
53
|
}) => {
|
|
53
54
|
const { fields, append, remove } = (0, import_react_hook_form.useFieldArray)({
|
|
@@ -72,7 +73,8 @@ const FieldArray = ({
|
|
|
72
73
|
formState,
|
|
73
74
|
register,
|
|
74
75
|
control,
|
|
75
|
-
...customField.extra?.of
|
|
76
|
+
...customField.extra?.of,
|
|
77
|
+
Field
|
|
76
78
|
}
|
|
77
79
|
), /* @__PURE__ */ import_react.default.createElement(
|
|
78
80
|
import_Button.Button,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/FieldArray/index.tsx"],
|
|
4
|
-
"sourcesContent": ["import React from 'react';\nimport { ErrorOption, useFieldArray, UseFormReturn } from 'react-hook-form';\nimport FieldContainer from '@digigov/form/Field/FieldBaseContainer';\nimport { FieldProps } from '@digigov/form/Field/types';\nimport FieldObject from '@digigov/form/FieldObject';\nimport { FieldsetLabel } from '@digigov/form/Fieldset';\nimport Fieldset from '@digigov/react-core/Fieldset';\nimport { Card } from '@digigov/ui/content/Card';\nimport { Button } from '@digigov/ui/form/Button';\nimport { Hint } from '@digigov/ui/typography/Hint';\nexport interface FieldArrayProps extends FieldProps {\n control: UseFormReturn['control'];\n register: UseFormReturn['register'];\n formState: UseFormReturn['formState'];\n error?: ErrorOption;\n}\nexport const FieldArray: React.FC<FieldArrayProps> = ({\n name,\n register,\n control,\n formState,\n error,\n layout,\n label,\n ...customField\n}) => {\n const { fields, append, remove } = useFieldArray({\n control,\n name,\n });\n\n return (\n <FieldContainer\n label={label}\n layout={layout}\n error={\n formState.isSubmitted &&\n
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAClB,6BAA0D;AAC1D,gCAA2B;AAE3B,yBAAwB;AACxB,sBAA8B;AAC9B,IAAAA,mBAAqB;AACrB,kBAAqB;AACrB,oBAAuB;AACvB,kBAAqB;
|
|
4
|
+
"sourcesContent": ["import React from 'react';\nimport { ErrorOption, useFieldArray, UseFormReturn } from 'react-hook-form';\nimport FieldContainer from '@digigov/form/Field/FieldBaseContainer';\nimport { FieldProps } from '@digigov/form/Field/types';\nimport FieldObject from '@digigov/form/FieldObject';\nimport { FieldsetLabel } from '@digigov/form/Fieldset';\nimport Fieldset from '@digigov/react-core/Fieldset';\nimport { Card } from '@digigov/ui/content/Card';\nimport { Button } from '@digigov/ui/form/Button';\nimport { Hint } from '@digigov/ui/typography/Hint';\nexport interface FieldArrayProps extends FieldProps {\n control: UseFormReturn['control'];\n register: UseFormReturn['register'];\n formState: UseFormReturn['formState'];\n error?: ErrorOption;\n Field: React.FC<FieldProps>;\n}\nexport const FieldArray: React.FC<FieldArrayProps> = ({\n name,\n register,\n control,\n formState,\n error,\n layout,\n label,\n Field,\n ...customField\n}) => {\n const { fields, append, remove } = useFieldArray({\n control,\n name,\n });\n\n return (\n <FieldContainer\n label={label}\n layout={layout}\n error={\n formState.isSubmitted &&\n !formState.isSubmitting &&\n error?.message &&\n error\n ? error\n : undefined\n }\n wrapper=\"fieldset\"\n name={name}\n >\n {fields.length === 0 && (\n <Hint>{customField.extra?.label.object?.nothing_added}</Hint>\n )}\n {fields.map((field, index) => (\n <Card variant=\"border\" key={field.id}>\n <Fieldset>\n <FieldsetLabel>\n {customField.extra?.label.object.title} {index + 1}\n </FieldsetLabel>\n <FieldObject\n name={`${name}.${index}`}\n error={Array.isArray(error) && error[index]}\n formState={formState}\n register={register}\n control={control}\n {...customField.extra?.of}\n Field={Field}\n />\n <Button\n name={`${name}-object-remove`}\n type=\"button\"\n color=\"warning\"\n onClick={() => remove(index)}\n >\n {customField.extra?.label.object?.delete}\n </Button>\n </Fieldset>\n </Card>\n ))}\n\n <Button\n type=\"button\"\n name={`${name}-add-object`}\n color=\"secondary\"\n onClick={(ev) => {\n ev.preventDefault();\n append({});\n }}\n >\n {customField.extra?.label.object?.add}\n </Button>\n </FieldContainer>\n );\n};\n\nexport default FieldArray;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAClB,6BAA0D;AAC1D,gCAA2B;AAE3B,yBAAwB;AACxB,sBAA8B;AAC9B,IAAAA,mBAAqB;AACrB,kBAAqB;AACrB,oBAAuB;AACvB,kBAAqB;AAQd,MAAM,aAAwC,CAAC;AAAA,EACpD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,EAAE,QAAQ,QAAQ,OAAO,QAAI,sCAAc;AAAA,IAC/C;AAAA,IACA;AAAA,EACF,CAAC;AAED,SACE,6BAAAC,QAAA;AAAA,IAAC,0BAAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,OACE,UAAU,eACR,CAAC,UAAU,gBACX,OAAO,WACP,QACE,QACA;AAAA,MAEN,SAAQ;AAAA,MACR;AAAA;AAAA,IAEC,OAAO,WAAW,KACjB,6BAAAD,QAAA,cAAC,wBAAM,YAAY,OAAO,MAAM,QAAQ,aAAc;AAAA,IAEvD,OAAO,IAAI,CAAC,OAAO,UAClB,6BAAAA,QAAA,cAAC,oBAAK,SAAQ,UAAS,KAAK,MAAM,MAChC,6BAAAA,QAAA,cAAC,iBAAAE,SAAA,MACC,6BAAAF,QAAA,cAAC,qCACE,YAAY,OAAO,MAAM,OAAO,OAAM,KAAE,QAAQ,CACnD,GACA,6BAAAA,QAAA;AAAA,MAAC,mBAAAG;AAAA,MAAA;AAAA,QACC,MAAM,GAAG,IAAI,IAAI,KAAK;AAAA,QACtB,OAAO,MAAM,QAAQ,KAAK,KAAK,MAAM,KAAK;AAAA,QAC1C;AAAA,QACA;AAAA,QACA;AAAA,QACC,GAAG,YAAY,OAAO;AAAA,QACvB;AAAA;AAAA,IACF,GACA,6BAAAH,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,MAAM,GAAG,IAAI;AAAA,QACb,MAAK;AAAA,QACL,OAAM;AAAA,QACN,SAAS,MAAM,OAAO,KAAK;AAAA;AAAA,MAE1B,YAAY,OAAO,MAAM,QAAQ;AAAA,IACpC,CACF,CACF,CACD;AAAA,IAED,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,MAAM,GAAG,IAAI;AAAA,QACb,OAAM;AAAA,QACN,SAAS,CAAC,OAAO;AACf,aAAG,eAAe;AAClB,iBAAO,CAAC,CAAC;AAAA,QACX;AAAA;AAAA,MAEC,YAAY,OAAO,MAAM,QAAQ;AAAA,IACpC;AAAA,EACF;AAEJ;AAEA,IAAO,qBAAQ;",
|
|
6
6
|
"names": ["import_Fieldset", "React", "FieldContainer", "Fieldset", "FieldObject"]
|
|
7
7
|
}
|
package/cjs/FieldObject/index.js
CHANGED
|
@@ -46,7 +46,8 @@ const FieldObject = ({
|
|
|
46
46
|
register,
|
|
47
47
|
reset,
|
|
48
48
|
formState,
|
|
49
|
-
error
|
|
49
|
+
error,
|
|
50
|
+
Field
|
|
50
51
|
}) => {
|
|
51
52
|
const { t } = (0, import_i18n.useTranslation)();
|
|
52
53
|
return /* @__PURE__ */ import_react.default.createElement(import_Fieldset.default, null, label?.primary && /* @__PURE__ */ import_react.default.createElement(import_FieldsetLegend.FieldsetLegend, { size: "sm" }, t(label.primary)), label?.secondary && /* @__PURE__ */ import_react.default.createElement(import_Fieldset.FieldsetCaption, null, t(label.secondary)), extra?.fields.map((field) => /* @__PURE__ */ import_react.default.createElement(
|
|
@@ -59,7 +60,8 @@ const FieldObject = ({
|
|
|
59
60
|
reset,
|
|
60
61
|
field,
|
|
61
62
|
error: error && error[field.key],
|
|
62
|
-
formState
|
|
63
|
+
formState,
|
|
64
|
+
Field
|
|
63
65
|
}
|
|
64
66
|
)));
|
|
65
67
|
};
|
|
@@ -71,7 +73,8 @@ const FieldObjectItem = ({
|
|
|
71
73
|
control,
|
|
72
74
|
formState,
|
|
73
75
|
reset,
|
|
74
|
-
register
|
|
76
|
+
register,
|
|
77
|
+
Field
|
|
75
78
|
}) => {
|
|
76
79
|
const calculatedField = (0, import_react.useMemo)(
|
|
77
80
|
() => (0, import_calculateField.calculateField)(children, field, import_utils.FIELD_COMPONENTS, import_utils.ALTERNATIVE_COMPONENTS),
|
|
@@ -83,6 +86,7 @@ const FieldObjectItem = ({
|
|
|
83
86
|
{
|
|
84
87
|
...calculatedField,
|
|
85
88
|
name,
|
|
89
|
+
Field,
|
|
86
90
|
control,
|
|
87
91
|
reset,
|
|
88
92
|
register,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/FieldObject/index.tsx"],
|
|
4
|
-
"sourcesContent": ["import React, { useMemo } from 'react';\nimport { ErrorOption, UseFormReturn } from 'react-hook-form';\nimport { FieldBase } from '@digigov/form/Field/FieldBase';\nimport { CalculatedField, FieldProps } from '@digigov/form/Field/types';\nimport {\n FIELD_COMPONENTS,\n ALTERNATIVE_COMPONENTS,\n} from '@digigov/form/Field/utils';\nimport { calculateField } from '@digigov/form/Field/utils/calculateField';\nimport Fieldset, { FieldsetCaption } from '@digigov/form/Fieldset';\nimport { FieldSpec } from '@digigov/form/types';\nimport { FieldsetLegend } from '@digigov/react-core/FieldsetLegend';\nimport { useTranslation } from '@digigov/ui/i18n';\n\nexport interface FieldObjectProps extends Omit<FieldProps, 'key'> {\n control: UseFormReturn['control'];\n register: UseFormReturn['register'];\n reset: UseFormReturn['reset'];\n formState: UseFormReturn['formState'];\n error?: ErrorOption;\n}\n\nexport const FieldObject: React.FC<FieldObjectProps> = ({\n name,\n label,\n extra,\n control,\n register,\n reset,\n formState,\n error,\n}) => {\n const { t } = useTranslation();\n\n return (\n <Fieldset>\n {label?.primary && (\n <FieldsetLegend size=\"sm\">{t(label.primary)}</FieldsetLegend>\n )}\n {label?.secondary && (\n <FieldsetCaption>{t(label.secondary)}</FieldsetCaption>\n )}\n {extra?.fields.map((field) => (\n <FieldObjectItem\n key={`${name}.${field.key}`}\n name={`${name}.${field.key}`}\n control={control}\n register={register}\n reset={reset}\n field={field}\n error={error && error[field.key]}\n formState={formState}\n />\n ))}\n </Fieldset>\n );\n};\n\nexport interface FieldObjectItemProps {\n name: string;\n field: FieldSpec;\n control: UseFormReturn['control'];\n register: UseFormReturn['register'];\n reset: UseFormReturn['reset'];\n formState: UseFormReturn['formState'];\n error?: ErrorOption;\n children?: React.ReactNode;\n}\n\nconst FieldObjectItem: React.FC<FieldObjectItemProps> = ({\n name,\n children,\n field,\n error,\n control,\n formState,\n reset,\n register,\n}) => {\n const calculatedField: CalculatedField = useMemo(\n () =>\n calculateField(children, field, FIELD_COMPONENTS, ALTERNATIVE_COMPONENTS),\n [field]\n );\n\n const customError = error ? error : formState?.errors[name];\n return (\n <FieldBase\n {...calculatedField}\n name={name}\n control={control}\n reset={reset}\n register={register}\n error={customError}\n />\n );\n};\n\nexport default FieldObject;\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA+B;AAE/B,uBAA0B;AAE1B,mBAGO;AACP,4BAA+B;AAC/B,sBAA0C;AAE1C,4BAA+B;AAC/B,kBAA+B;
|
|
4
|
+
"sourcesContent": ["import React, { useMemo } from 'react';\nimport { ErrorOption, UseFormReturn } from 'react-hook-form';\nimport { FieldBase } from '@digigov/form/Field/FieldBase';\nimport { CalculatedField, FieldProps } from '@digigov/form/Field/types';\nimport {\n FIELD_COMPONENTS,\n ALTERNATIVE_COMPONENTS,\n} from '@digigov/form/Field/utils';\nimport { calculateField } from '@digigov/form/Field/utils/calculateField';\nimport Fieldset, { FieldsetCaption } from '@digigov/form/Fieldset';\nimport { FieldSpec } from '@digigov/form/types';\nimport { FieldsetLegend } from '@digigov/react-core/FieldsetLegend';\nimport { useTranslation } from '@digigov/ui/i18n';\n\nexport interface FieldObjectProps extends Omit<FieldProps, 'key'> {\n control: UseFormReturn['control'];\n register: UseFormReturn['register'];\n reset: UseFormReturn['reset'];\n formState: UseFormReturn['formState'];\n error?: ErrorOption;\n Field: React.FC<FieldProps>;\n}\n\nexport const FieldObject: React.FC<FieldObjectProps> = ({\n name,\n label,\n extra,\n control,\n register,\n reset,\n formState,\n error,\n Field,\n}) => {\n const { t } = useTranslation();\n\n return (\n <Fieldset>\n {label?.primary && (\n <FieldsetLegend size=\"sm\">{t(label.primary)}</FieldsetLegend>\n )}\n {label?.secondary && (\n <FieldsetCaption>{t(label.secondary)}</FieldsetCaption>\n )}\n {extra?.fields.map((field) => (\n <FieldObjectItem\n key={`${name}.${field.key}`}\n name={`${name}.${field.key}`}\n control={control}\n register={register}\n reset={reset}\n field={field}\n error={error && error[field.key]}\n formState={formState}\n Field={Field}\n />\n ))}\n </Fieldset>\n );\n};\n\nexport interface FieldObjectItemProps {\n name: string;\n field: FieldSpec;\n control: UseFormReturn['control'];\n register: UseFormReturn['register'];\n reset: UseFormReturn['reset'];\n formState: UseFormReturn['formState'];\n error?: ErrorOption;\n children?: React.ReactNode;\n Field: React.FC<FieldProps>;\n}\n\nconst FieldObjectItem: React.FC<FieldObjectItemProps> = ({\n name,\n children,\n field,\n error,\n control,\n formState,\n reset,\n register,\n Field,\n}) => {\n const calculatedField: CalculatedField = useMemo(\n () =>\n calculateField(children, field, FIELD_COMPONENTS, ALTERNATIVE_COMPONENTS),\n [field]\n );\n\n const customError = error ? error : formState?.errors[name];\n return (\n <FieldBase\n {...calculatedField}\n name={name}\n Field={Field}\n control={control}\n reset={reset}\n register={register}\n error={customError}\n />\n );\n};\n\nexport default FieldObject;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA+B;AAE/B,uBAA0B;AAE1B,mBAGO;AACP,4BAA+B;AAC/B,sBAA0C;AAE1C,4BAA+B;AAC/B,kBAA+B;AAWxB,MAAM,cAA0C,CAAC;AAAA,EACtD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,EAAE,EAAE,QAAI,4BAAe;AAE7B,SACE,6BAAAA,QAAA,cAAC,gBAAAC,SAAA,MACE,OAAO,WACN,6BAAAD,QAAA,cAAC,wCAAe,MAAK,QAAM,EAAE,MAAM,OAAO,CAAE,GAE7C,OAAO,aACN,6BAAAA,QAAA,cAAC,uCAAiB,EAAE,MAAM,SAAS,CAAE,GAEtC,OAAO,OAAO,IAAI,CAAC,UAClB,6BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,KAAK,GAAG,IAAI,IAAI,MAAM,GAAG;AAAA,MACzB,MAAM,GAAG,IAAI,IAAI,MAAM,GAAG;AAAA,MAC1B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO,SAAS,MAAM,MAAM,GAAG;AAAA,MAC/B;AAAA,MACA;AAAA;AAAA,EACF,CACD,CACH;AAEJ;AAcA,MAAM,kBAAkD,CAAC;AAAA,EACvD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,sBAAmC;AAAA,IACvC,UACE,sCAAe,UAAU,OAAO,+BAAkB,mCAAsB;AAAA,IAC1E,CAAC,KAAK;AAAA,EACR;AAEA,QAAM,cAAc,QAAQ,QAAQ,WAAW,OAAO,IAAI;AAC1D,SACE,6BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO;AAAA;AAAA,EACT;AAEJ;AAEA,IAAO,sBAAQ;",
|
|
6
6
|
"names": ["React", "Fieldset"]
|
|
7
7
|
}
|