@digigov/form 2.0.0-49de50c4 → 2.0.0-555d1027
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 +3 -4
- package/Field/FieldBase.js.map +2 -2
- package/Field/FieldBaseContainer/index.js +18 -2
- package/Field/FieldBaseContainer.js.map +2 -2
- package/Field/FieldConditional/index.js +1 -1
- package/Field/FieldConditional.js.map +1 -1
- package/Field/index.js +2 -1
- package/Field/index.js.map +2 -2
- package/Field/types.d.ts +2 -2
- package/Field/utils/index.js +4 -3
- package/Field/utils/index.js.map +2 -2
- package/FieldArray/FormDialog/index.js +5 -8
- package/FieldArray/FormDialog.d.ts +4 -4
- package/FieldArray/FormDialog.js.map +2 -2
- package/FieldArray/__stories__/Default.d.ts +1 -1
- package/FieldArray/__stories__/WithExactLength.d.ts +1 -1
- package/FieldArray/__stories__/WithModal.d.ts +1 -1
- package/FieldArray/index.d.ts +1 -1
- package/FieldArray/index.js +75 -87
- package/FieldArray/index.js.map +3 -3
- package/FormBuilder/FormBuilder.stories.d.ts +2 -0
- package/FormBuilder/__stories__/AutoErrorGrouping.d.ts +1 -1
- package/FormBuilder/__stories__/Default.d.ts +1 -1
- package/FormBuilder/__stories__/ErrorGrouping.d.ts +1 -1
- package/FormBuilder/index.d.ts +1 -1
- package/FormBuilder/index.js +3 -7
- package/FormBuilder/index.js.map +2 -2
- package/FormContext/index.js +6 -2
- package/FormContext.d.ts +1 -0
- package/FormContext.js.map +2 -2
- package/MultiplicityField/MultiplicityField.stories.d.ts +2 -0
- package/MultiplicityField/__stories__/Default.d.ts +1 -1
- package/MultiplicityField/__stories__/PreviewDisplay.d.ts +1 -1
- package/MultiplicityField/__stories__/WithExactLength.d.ts +1 -1
- package/MultiplicityField/__stories__/WithMaxLength.d.ts +1 -1
- package/MultiplicityField/__stories__/WithMinAndMaxLength.d.ts +1 -1
- package/MultiplicityField/__stories__/WithMinLength.d.ts +1 -1
- package/MultiplicityField/add-objects/index.js +1 -1
- package/MultiplicityField/add-objects.js.map +2 -2
- package/MultiplicityField/index.js +4 -2
- package/MultiplicityField/index.js.map +2 -2
- package/MultiplicityField/types.d.ts +1 -0
- package/Questions/Questions.stories.d.ts +2 -0
- package/Questions/__stories__/Default.d.ts +1 -1
- package/cjs/Field/FieldBase/index.js +3 -4
- package/cjs/Field/FieldBase.js.map +2 -2
- package/cjs/Field/FieldBaseContainer/index.js +17 -1
- package/cjs/Field/FieldBaseContainer.js.map +3 -3
- package/cjs/Field/FieldConditional/index.js +1 -1
- package/cjs/Field/FieldConditional.js.map +1 -1
- package/cjs/Field/index.js +2 -1
- package/cjs/Field/index.js.map +2 -2
- package/cjs/Field/types.js.map +1 -1
- package/cjs/Field/utils/index.js +4 -3
- package/cjs/Field/utils/index.js.map +2 -2
- package/cjs/FieldArray/FormDialog/index.js +5 -8
- package/cjs/FieldArray/FormDialog.js.map +2 -2
- package/cjs/FieldArray/index.js +74 -83
- package/cjs/FieldArray/index.js.map +3 -3
- package/cjs/FormBuilder/index.js +3 -7
- package/cjs/FormBuilder/index.js.map +2 -2
- package/cjs/FormContext/index.js +7 -2
- package/cjs/FormContext.js.map +2 -2
- package/cjs/MultiplicityField/add-objects/index.js +1 -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/MultiplicityField/types.js.map +1 -1
- package/cjs/inputs/Checkboxes/index.js +2 -1
- package/cjs/inputs/Checkboxes/index.js.map +2 -2
- package/cjs/inputs/DateInput/index.js +27 -12
- package/cjs/inputs/DateInput/index.js.map +2 -2
- package/cjs/inputs/DateTimeInput/index.js +55 -34
- package/cjs/inputs/DateTimeInput/index.js.map +2 -2
- package/cjs/inputs/FileInput/index.js +45 -26
- package/cjs/inputs/FileInput/index.js.map +2 -2
- package/cjs/inputs/ImageInput/__stories__/logo.d/index.js +1 -0
- package/cjs/inputs/ImageInput/__stories__/logo.d.js.map +7 -0
- package/cjs/inputs/ImageInput/index.js +41 -10
- package/cjs/inputs/ImageInput/index.js.map +2 -2
- package/cjs/inputs/Input/index.js +1 -0
- package/cjs/inputs/Input/index.js.map +2 -2
- package/cjs/lazy/index.js +1 -1
- package/cjs/lazy.js.map +2 -2
- package/cjs/registry/index.js +4 -6
- package/cjs/registry.js.map +2 -2
- package/cjs/validators/index.js +8 -10
- package/cjs/validators/index.js.map +2 -2
- package/cjs/validators/utils/date/index.js +21 -3
- package/cjs/validators/utils/date.js.map +2 -2
- package/cjs/validators/utils/datetime/index.js +113 -24
- package/cjs/validators/utils/datetime.js.map +2 -2
- package/index.js +1 -1
- package/inputs/AutoCompleteInput/AutoComplete.stories.d.ts +2 -0
- package/inputs/AutoCompleteInput/__stories__/Default.d.ts +1 -1
- package/inputs/AutoCompleteInput/__stories__/Multiple.d.ts +1 -1
- package/inputs/Checkboxes/Checkboxes.stories.d.ts +2 -0
- package/inputs/Checkboxes/__stories__/Conditional.d.ts +1 -1
- package/inputs/Checkboxes/__stories__/Default.d.ts +1 -1
- package/inputs/Checkboxes/__stories__/WithDivider.d.ts +1 -1
- package/inputs/Checkboxes/index.js +2 -1
- package/inputs/Checkboxes/index.js.map +2 -2
- package/inputs/DateInput/DateInput.stories.d.ts +6 -0
- package/inputs/DateInput/__stories__/Default.d.ts +1 -1
- package/inputs/DateInput/__stories__/WithDefaultValue.d.ts +3 -0
- package/inputs/DateInput/__stories__/WithInitialValue.d.ts +3 -0
- package/inputs/DateInput/__stories__/WithWrongDefaultValue.d.ts +3 -0
- package/inputs/DateInput/__stories__/WithWrongInitialValue.d.ts +3 -0
- package/inputs/DateInput/index.js +28 -13
- package/inputs/DateInput/index.js.map +2 -2
- package/inputs/DateTimeInput/DateTimeInput.stories.d.ts +10 -3
- package/inputs/DateTimeInput/__stories__/Default.d.ts +1 -1
- package/inputs/DateTimeInput/__stories__/WithDefaultValue.d.ts +3 -0
- package/inputs/DateTimeInput/__stories__/WithInitialValue.d.ts +3 -0
- package/inputs/DateTimeInput/__stories__/WithWrongDefaultValue.d.ts +3 -0
- package/inputs/DateTimeInput/__stories__/WithWrongInitialValue.d.ts +3 -0
- package/inputs/DateTimeInput/index.js +56 -35
- package/inputs/DateTimeInput/index.js.map +2 -2
- package/inputs/FileInput/FileInput.stories.d.ts +2 -0
- package/inputs/FileInput/__stories__/Default.d.ts +1 -1
- package/inputs/FileInput/index.d.ts +5 -1
- package/inputs/FileInput/index.js +46 -27
- package/inputs/FileInput/index.js.map +2 -2
- package/inputs/ImageInput/ImageInput.stories.d.ts +4 -1
- package/inputs/ImageInput/__stories__/Default.d.ts +1 -1
- package/inputs/ImageInput/__stories__/MaxSize.d.ts +1 -1
- package/inputs/ImageInput/__stories__/WithInitialValues.d.ts +3 -0
- package/inputs/ImageInput/__stories__/WithInvalidImageDimension.d.ts +1 -1
- package/inputs/ImageInput/__stories__/logo.d/index.js +1 -0
- package/inputs/{Input/inputsInputScenarios → ImageInput/__stories__/logo.d}/package.json +1 -1
- package/inputs/ImageInput/__stories__/logo.d.js.map +7 -0
- package/inputs/ImageInput/index.d.ts +9 -1
- package/inputs/ImageInput/index.js +42 -11
- package/inputs/ImageInput/index.js.map +2 -2
- package/inputs/Input/Input.stories.d.ts +3 -0
- package/inputs/Input/__stories__/AFM.d.ts +1 -1
- package/inputs/Input/__stories__/Boolean.d.ts +1 -1
- package/inputs/Input/__stories__/Email.d.ts +3 -0
- package/inputs/Input/__stories__/IBAN.d.ts +1 -1
- package/inputs/Input/__stories__/Integer.d.ts +1 -1
- package/inputs/Input/__stories__/LandlineNumber.d.ts +1 -1
- package/inputs/Input/__stories__/MobilePhone.d.ts +1 -1
- package/inputs/Input/__stories__/PhoneNumber.d.ts +1 -1
- package/inputs/Input/__stories__/PostalCode.d.ts +1 -1
- package/inputs/Input/__stories__/String.d.ts +1 -1
- package/inputs/Input/__stories__/StringWithTrimValidation.d.ts +1 -1
- package/inputs/Input/__stories__/TextWithLimit.d.ts +1 -1
- package/inputs/Input/index.js +1 -0
- package/inputs/Input/index.js.map +2 -2
- package/inputs/Label/Label.stories.d.ts +2 -0
- package/inputs/Label/__stories__/Default.d.ts +1 -1
- package/inputs/OtpInput/OtpInput.stories.d.ts +2 -0
- package/inputs/OtpInput/__stories__/Default.d.ts +1 -1
- package/inputs/Radio/Radio.stories.d.ts +2 -0
- package/inputs/Radio/__stories__/Conditional.d.ts +1 -1
- package/inputs/Radio/__stories__/Default.d.ts +1 -1
- package/inputs/Radio/__stories__/WithDivider.d.ts +1 -1
- package/inputs/Select/Select.stories.d.ts +2 -0
- package/inputs/Select/__stories__/Default.d.ts +1 -1
- package/lazy/index.js +1 -1
- package/package.json +8 -8
- package/registry/index.js +4 -6
- package/src/Field/FieldBase.tsx +14 -18
- package/src/Field/FieldBaseContainer.tsx +13 -5
- package/src/Field/FieldConditional.tsx +1 -1
- package/src/Field/index.tsx +2 -1
- package/src/Field/types.tsx +2 -2
- package/src/Field/utils/index.ts +2 -1
- package/src/FieldArray/FormDialog.tsx +7 -13
- package/src/FieldArray/__stories__/Default.tsx +1 -1
- package/src/FieldArray/__stories__/WithExactLength.tsx +1 -1
- package/src/FieldArray/__stories__/WithModal.tsx +1 -1
- package/src/FieldArray/index.tsx +83 -102
- package/src/FormBuilder/FormBuilder.stories.js +3 -0
- package/src/FormBuilder/__stories__/AutoErrorGrouping.tsx +1 -1
- package/src/FormBuilder/__stories__/Default.tsx +1 -1
- package/src/FormBuilder/__stories__/ErrorGrouping.tsx +1 -1
- package/src/FormBuilder/index.tsx +3 -7
- package/src/FormBuilder/scenarios.test.tsx +1 -1
- package/src/FormContext.tsx +5 -1
- package/src/MultiplicityField/MultiplicityField.stories.js +3 -0
- package/src/MultiplicityField/__stories__/Default.tsx +1 -1
- package/src/MultiplicityField/__stories__/PreviewDisplay.tsx +1 -1
- package/src/MultiplicityField/__stories__/WithExactLength.tsx +1 -1
- package/src/MultiplicityField/__stories__/WithMaxLength.tsx +1 -1
- package/src/MultiplicityField/__stories__/WithMinAndMaxLength.tsx +1 -1
- package/src/MultiplicityField/__stories__/WithMinLength.tsx +1 -1
- package/src/MultiplicityField/add-objects.tsx +1 -1
- package/src/MultiplicityField/index.tsx +3 -1
- package/src/MultiplicityField/types.ts +1 -0
- package/src/Questions/Questions.stories.js +3 -0
- package/src/Questions/__stories__/Default.tsx +1 -1
- package/src/inputs/AutoCompleteInput/AutoComplete.stories.js +3 -0
- package/src/inputs/AutoCompleteInput/__stories__/Default.tsx +1 -1
- package/src/inputs/AutoCompleteInput/__stories__/Multiple.tsx +1 -1
- package/src/inputs/Checkboxes/Checkboxes.stories.js +3 -0
- package/src/inputs/Checkboxes/__stories__/Conditional.tsx +1 -1
- package/src/inputs/Checkboxes/__stories__/Default.tsx +1 -1
- package/src/inputs/Checkboxes/__stories__/WithDivider.tsx +1 -1
- package/src/inputs/Checkboxes/index.tsx +4 -5
- package/src/inputs/DateInput/DateInput.stories.js +7 -0
- package/src/inputs/DateInput/__stories__/Default.tsx +1 -1
- package/src/inputs/DateInput/__stories__/WithDefaultValue.tsx +26 -0
- package/src/inputs/DateInput/__stories__/WithInitialValue.tsx +28 -0
- package/src/inputs/DateInput/__stories__/WithWrongDefaultValue.tsx +26 -0
- package/src/inputs/DateInput/__stories__/WithWrongInitialValue.tsx +28 -0
- package/src/inputs/DateInput/index.test.tsx +16 -0
- package/src/inputs/DateInput/index.tsx +31 -13
- package/src/inputs/DateTimeInput/DateTimeInput.stories.js +12 -6
- package/src/inputs/DateTimeInput/__stories__/Default.tsx +1 -1
- package/src/inputs/DateTimeInput/__stories__/WithDefaultValue.tsx +26 -0
- package/src/inputs/DateTimeInput/__stories__/WithInitialValue.tsx +28 -0
- package/src/inputs/DateTimeInput/__stories__/WithWrongDefaultValue.tsx +26 -0
- package/src/inputs/DateTimeInput/__stories__/WithWrongInitialValue.tsx +28 -0
- package/src/inputs/DateTimeInput/index.test.tsx +16 -0
- package/src/inputs/DateTimeInput/index.tsx +59 -35
- package/src/inputs/FileInput/FileInput.stories.js +3 -0
- package/src/inputs/FileInput/__stories__/Default.tsx +1 -1
- package/src/inputs/FileInput/index.tsx +72 -39
- package/src/inputs/ImageInput/ImageInput.stories.js +5 -1
- package/src/inputs/ImageInput/__stories__/Default.tsx +1 -1
- package/src/inputs/ImageInput/__stories__/MaxSize.tsx +3 -2
- package/src/inputs/ImageInput/__stories__/WithInitialValues.tsx +45 -0
- package/src/inputs/ImageInput/__stories__/WithInvalidImageDimension.tsx +1 -1
- package/src/inputs/ImageInput/__stories__/logo.d.ts +4 -0
- package/src/inputs/ImageInput/__stories__/logo.png +0 -0
- package/src/inputs/ImageInput/index.test.tsx +4 -0
- package/src/inputs/ImageInput/index.tsx +100 -48
- package/src/inputs/Input/Input.stories.js +4 -0
- package/src/inputs/Input/__stories__/AFM.tsx +1 -1
- package/src/inputs/Input/__stories__/Boolean.tsx +1 -1
- package/src/inputs/Input/__stories__/Email.tsx +23 -0
- package/src/inputs/Input/__stories__/IBAN.tsx +1 -1
- package/src/inputs/Input/__stories__/Integer.tsx +1 -1
- package/src/inputs/Input/__stories__/LandlineNumber.tsx +1 -1
- package/src/inputs/Input/__stories__/MobilePhone.tsx +1 -1
- package/src/inputs/Input/__stories__/PhoneNumber.tsx +1 -1
- package/src/inputs/Input/__stories__/PostalCode.tsx +1 -1
- package/src/inputs/Input/__stories__/String.tsx +1 -1
- package/src/inputs/Input/__stories__/StringWithTrimValidation.tsx +1 -1
- package/src/inputs/Input/__stories__/TextWithLimit.tsx +1 -1
- package/src/inputs/Input/index.test.tsx +8 -0
- package/src/inputs/Input/index.tsx +1 -0
- package/src/inputs/Label/Label.stories.js +3 -0
- package/src/inputs/Label/__stories__/Default.tsx +1 -1
- package/src/inputs/OtpInput/OtpInput.stories.js +3 -0
- package/src/inputs/OtpInput/__stories__/Default.tsx +1 -1
- package/src/inputs/Radio/Radio.stories.js +3 -0
- package/src/inputs/Radio/__stories__/Conditional.tsx +1 -1
- package/src/inputs/Radio/__stories__/Default.tsx +1 -1
- package/src/inputs/Radio/__stories__/WithDivider.tsx +1 -1
- package/src/inputs/Select/Select.stories.js +3 -0
- package/src/inputs/Select/__stories__/Default.tsx +1 -1
- package/src/lazy.js +1 -1
- package/src/registry.js +4 -6
- package/src/validators/index.ts +13 -13
- package/src/validators/utils/date.ts +23 -4
- package/src/validators/utils/datetime.ts +116 -29
- package/validators/index.js +8 -10
- package/validators/index.js.map +2 -2
- package/validators/utils/date/index.js +21 -3
- package/validators/utils/date.d.ts +1 -1
- package/validators/utils/date.js.map +2 -2
- package/validators/utils/datetime/index.js +113 -24
- package/validators/utils/datetime.d.ts +1 -1
- package/validators/utils/datetime.js.map +2 -2
- package/cjs/inputs/Input/inputsInputScenarios/index.js +0 -439
- package/cjs/inputs/Input/inputsInputScenarios.js.map +0 -7
- package/inputs/Input/inputsInputScenarios/index.js +0 -406
- package/inputs/Input/inputsInputScenarios.d.ts +0 -57
- package/inputs/Input/inputsInputScenarios.js.map +0 -7
- package/src/inputs/Input/inputsInputScenarios.ts +0 -404
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/inputs/ImageInput/index.tsx"],
|
|
4
|
-
"sourcesContent": ["import React, { useState, useCallback } from 'react';\nimport { UncontrolledFieldProps } from '@digigov/form/Field/types';\nimport { Button, ButtonGroup } from '@digigov/ui/form/Button';\nimport { FileUpload, FileUploadContainer } from '@digigov/ui/form/FileUpload';\nimport { useTranslation } from '@digigov/ui/i18n';\nimport { Hint } from '@digigov/ui/typography/Hint';\nimport { Paragraph } from '@digigov/ui/typography/Paragraph';\nimport { Base } from '@digigov/ui/utils/Base';\nexport interface ImageProps {\n src
|
|
5
|
-
"mappings": "AAAA,OAAO,SAAS,UAAU,mBAAmB;
|
|
4
|
+
"sourcesContent": ["import React, { useRef, useState, useEffect, useCallback } from 'react';\nimport { UseFormReturn } from 'react-hook-form';\nimport { UncontrolledFieldProps } from '@digigov/form/Field/types';\nimport { Button, ButtonGroup } from '@digigov/ui/form/Button';\nimport { FileUpload, FileUploadContainer } from '@digigov/ui/form/FileUpload';\nimport { useTranslation } from '@digigov/ui/i18n';\nimport { Hint } from '@digigov/ui/typography/Hint';\nimport { Paragraph } from '@digigov/ui/typography/Paragraph';\nimport { Base } from '@digigov/ui/utils/Base';\nexport interface ImageProps {\n src: string;\n}\n\nexport interface Limit {\n maxSize?: number;\n maxWidth?: number;\n maxHeight?: number;\n minWidth?: number;\n minHeight?: number;\n}\n\nexport const Image: React.FC<ImageProps> = React.memo(function Image({ src }) {\n return <Base as=\"img\" src={src} className=\"ds-image--ratio\" />;\n});\n\ninterface ImageInputDefaultValue {\n filename: string;\n src: string;\n}\n\nconst blobToFileList = (blob: Blob, fileName: string): FileList => {\n const file = new File([blob], fileName, { type: 'image/jpeg' });\n const dataTransfer = new DataTransfer();\n dataTransfer.items.add(file);\n return dataTransfer.files;\n};\nexport interface ImageInputProps extends Omit<UncontrolledFieldProps, 'extra'> {\n extra?: {\n className?: string;\n multiple?: boolean;\n accept?: string;\n limit?: Limit;\n };\n reset: (values?: any) => void;\n resetField: UseFormReturn['resetField'];\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n defaultValue?: ImageInputDefaultValue | null;\n value: any;\n}\n\nexport const ImageInput: React.FC<ImageInputProps> = React.forwardRef(\n function ImageInput(\n { name, disabled, onChange, resetField, defaultValue, value, ...props },\n ref: any\n ) {\n const imageRef = useRef(ref?.current);\n const { t } = useTranslation();\n const currentValue: ImageInputDefaultValue | null =\n defaultValue || value || null;\n const [selectedImage, setSelectedImage] = useState<\n File | ImageInputDefaultValue | null\n >(currentValue);\n const [imageUrl, setImageUrl] = useState<string | null>(\n currentValue?.src || null\n );\n\n const handleImageChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n e.preventDefault();\n const target = e.target as HTMLInputElement;\n const selectedFile = target.files?.[0];\n if (selectedFile) {\n setSelectedImage(selectedFile);\n setImageUrl(URL.createObjectURL(selectedFile));\n }\n onChange(\n target.files as unknown as React.ChangeEvent<HTMLInputElement>\n );\n },\n [selectedImage]\n );\n\n const handleDeleteImage = useCallback(\n (event) => {\n event.preventDefault();\n resetField(name);\n setSelectedImage(null);\n setImageUrl(null);\n },\n [selectedImage]\n );\n\n useEffect(() => {\n // This is to fill the input with the default value (image)\n if (defaultValue?.src && imageRef.current) {\n fetch(defaultValue?.src)\n .then((response) => response.blob())\n .then((blob) => {\n const fileList = blobToFileList(blob, defaultValue.filename);\n imageRef.current.files = fileList;\n const fileChangeEvent = new Event('change', { bubbles: true });\n imageRef.current.dispatchEvent(fileChangeEvent);\n return;\n })\n .catch((error) => console.error('Error fetching image:', error));\n }\n }, [defaultValue, imageRef]);\n\n return (\n <FileUploadContainer>\n {selectedImage !== null ? (\n <>\n <Paragraph>\n <Base as=\"b\">{t('upload.image')}:</Base>{' '}\n <em>\n {`${(selectedImage as File)?.name || (selectedImage as ImageInputDefaultValue)?.filename}`}\n </em>\n </Paragraph>\n </>\n ) : (\n <Hint className=\"ds-dashed--border\">{t('upload.no_image')}</Hint>\n )}\n {imageUrl !== null && selectedImage !== null && (\n <Image src={imageUrl} />\n )}\n {!disabled && (\n <ButtonGroup marginTop={2}>\n <FileUpload\n ref={imageRef}\n hasFiles={selectedImage !== null}\n name={name}\n id={name}\n disabled={disabled}\n accept=\"image/*\"\n onChange={handleImageChange}\n {...{\n ...(props as any),\n required: undefined,\n Field: undefined,\n type: 'file',\n }}\n >\n {selectedImage\n ? t('upload.change_image')\n : t('upload.choose_image')}\n </FileUpload>\n {selectedImage !== null && (\n <Button\n color=\"warning\"\n variant=\"link\"\n onClick={handleDeleteImage}\n >\n {t('upload.reset_file')}\n </Button>\n )}\n </ButtonGroup>\n )}\n </FileUploadContainer>\n );\n }\n);\n\nexport default ImageInput;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["Image", "ImageInput"]
|
|
7
7
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
declare namespace _default {
|
|
2
2
|
export let title: string;
|
|
3
3
|
export { Input as component };
|
|
4
|
+
export let tags: string[];
|
|
5
|
+
export { doc as markdown };
|
|
4
6
|
export let displayName: string;
|
|
5
7
|
}
|
|
6
8
|
export default _default;
|
|
@@ -14,6 +16,7 @@ export { MobilePhone } from "@digigov/form/inputs/Input/__stories__/MobilePhone"
|
|
|
14
16
|
export { AFM } from "@digigov/form/inputs/Input/__stories__/AFM";
|
|
15
17
|
export { AMKA } from "@digigov/form/inputs/Input/__stories__/AMKA";
|
|
16
18
|
export { IBAN } from "@digigov/form/inputs/Input/__stories__/IBAN";
|
|
19
|
+
export { Email } from "@digigov/form/inputs/Input/__stories__/Email";
|
|
17
20
|
export { PostalCode } from "@digigov/form/inputs/Input/__stories__/PostalCode";
|
|
18
21
|
export { TextWithLimit } from "@digigov/form/inputs/Input/__stories__/TextWithLimit";
|
|
19
22
|
import Input from '@digigov/form/inputs/Input';
|
package/inputs/Input/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/inputs/Input/index.tsx"],
|
|
4
|
-
"sourcesContent": ["import React from 'react';\nimport { useWatch } from 'react-hook-form';\nimport { UncontrolledFieldProps } from '@digigov/form/Field/types';\nimport { TextArea } from '@digigov/ui/form/TextArea';\nimport { TextInput } from '@digigov/ui/form/TextInput';\nimport { useTranslation } from '@digigov/ui/i18n';\nimport { Hint } from '@digigov/ui/typography/Hint';\n\nconst TYPES_MAP = {\n string: 'text',\n int: 'text',\n text: 'text',\n date: 'date',\n};\n\nexport interface InputProps\n extends Omit<UncontrolledFieldProps, 'extra' | 'Field'> {\n extra?: {\n fullWidth?: boolean;\n multiline?: boolean;\n className?: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n rows?: any;\n limit: {\n min?: number;\n max?: number;\n };\n };\n Field?: UncontrolledFieldProps['Field'];\n}\n\nexport const Input: React.ExoticComponent<InputProps> = React.forwardRef(\n function WrappedInput({ name, control, type, extra, ...props }, ref: never) {\n delete props['Field'];\n // eslint-disable-next-line prefer-const\n let { multiline = false, rows, limit } = extra || {};\n const { className } = extra || {};\n // if enforced to multiline use true. Derive from type otherwise.\n multiline = multiline === true || type === 'text';\n // use explicit rows value if set. Derive from multiline otherwise.\n rows = rows || (multiline ? 4 : 1);\n // translate dilosi type to HTML Input type\n const fieldType = TYPES_MAP[type || 'text'] || 'text';\n const { t } = useTranslation();\n const currentValue: string | '' = useWatch({ control, name });\n\n const getRemainingChars = (currentValue, limit) => {\n if (currentValue) {\n return limit?.max - currentValue.length;\n }\n return limit?.max;\n };\n\n const constructRemainingText = (currentValue, limit) => {\n const remainingChars = getRemainingChars(currentValue, limit);\n let remainingText =\n Math.abs(remainingChars) === 1\n ? t('form.info.text.character')\n : t('form.info.text.characters');\n remainingText +=\n remainingChars > 0\n ? ` ${t('form.info.text.remaining')}.`\n : ` ${t('form.info.text.too_many')}.`;\n return remainingText;\n };\n\n if (multiline === true) {\n return (\n <>\n <TextArea\n name={name}\n className={className}\n rows={rows}\n ref={ref}\n id={name}\n {...{\n ...props,\n reset: undefined,\n required: undefined,\n type: fieldType,\n }}\n />\n {limit?.max && (\n <Hint display={'flex'}>\n {t('form.info.text.you_have')}\n <Hint fontWeight=\"bold\">\n {`${Math.abs(getRemainingChars(currentValue, limit))}`}\n \n </Hint>\n {constructRemainingText(currentValue, limit)}\n </Hint>\n )}\n </>\n );\n } else {\n return (\n <TextInput\n name={name}\n id={name}\n type={fieldType}\n data-type={type}\n className={className}\n ref={ref}\n {...{\n ...props,\n reset: undefined,\n required: undefined,\n }}\n />\n );\n }\n }\n);\n\nexport default Input;\n"],
|
|
5
|
-
"mappings": "AAAA,OAAO,WAAW;AAClB,SAAS,gBAAgB;AAEzB,SAAS,gBAAgB;AACzB,SAAS,iBAAiB;AAC1B,SAAS,sBAAsB;AAC/B,SAAS,YAAY;AAErB,MAAM,YAAY;AAAA,EAChB,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,MAAM;AAAA,EACN,MAAM;AACR;AAkBO,MAAM,QAA2C,MAAM;AAAA,EAC5D,SAAS,aAAa,EAAE,MAAM,SAAS,MAAM,OAAO,GAAG,MAAM,GAAG,KAAY;AAC1E,WAAO,MAAM,OAAO;AAEpB,QAAI,EAAE,YAAY,OAAO,MAAM,MAAM,IAAI,SAAS,CAAC;AACnD,UAAM,EAAE,UAAU,IAAI,SAAS,CAAC;AAEhC,gBAAY,cAAc,QAAQ,SAAS;AAE3C,WAAO,SAAS,YAAY,IAAI;AAEhC,UAAM,YAAY,UAAU,QAAQ,MAAM,KAAK;AAC/C,UAAM,EAAE,EAAE,IAAI,eAAe;AAC7B,UAAM,eAA4B,SAAS,EAAE,SAAS,KAAK,CAAC;AAE5D,UAAM,oBAAoB,CAACA,eAAcC,WAAU;AACjD,UAAID,eAAc;AAChB,eAAOC,QAAO,MAAMD,cAAa;AAAA,MACnC;AACA,aAAOC,QAAO;AAAA,IAChB;AAEA,UAAM,yBAAyB,CAACD,eAAcC,WAAU;AACtD,YAAM,iBAAiB,kBAAkBD,eAAcC,MAAK;AAC5D,UAAI,gBACF,KAAK,IAAI,cAAc,MAAM,IACzB,EAAE,0BAA0B,IAC5B,EAAE,2BAA2B;AACnC,uBACE,iBAAiB,IACb,IAAI,EAAE,0BAA0B,CAAC,MACjC,IAAI,EAAE,yBAAyB,CAAC;AACtC,aAAO;AAAA,IACT;AAEA,QAAI,cAAc,MAAM;AACtB,aACE,0DACE;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,IAAI;AAAA,UACH,GAAG;AAAA,YACF,GAAG;AAAA,YACH,OAAO;AAAA,YACP,UAAU;AAAA,YACV,MAAM;AAAA,UACR;AAAA;AAAA,MACF,GACC,OAAO,OACN,oCAAC,QAAK,SAAS,UACZ,EAAE,yBAAyB,GAC5B,oCAAC,QAAK,YAAW,UAAO,QACf,GAAG,KAAK,IAAI,kBAAkB,cAAc,KAAK,CAAC,CAAC,IAAG,MAE/D,GACC,uBAAuB,cAAc,KAAK,CAC7C,CAEJ;AAAA,IAEJ,OAAO;AACL,aACE;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,IAAI;AAAA,UACJ,MAAM;AAAA,UACN,aAAW;AAAA,UACX;AAAA,UACA;AAAA,UACC,GAAG;AAAA,YACF,GAAG;AAAA,YACH,OAAO;AAAA,YACP,UAAU;AAAA,UACZ;AAAA;AAAA,MACF;AAAA,IAEJ;AAAA,EACF;AACF;AAEA,IAAO,gBAAQ;",
|
|
4
|
+
"sourcesContent": ["import React from 'react';\nimport { useWatch } from 'react-hook-form';\nimport { UncontrolledFieldProps } from '@digigov/form/Field/types';\nimport { TextArea } from '@digigov/ui/form/TextArea';\nimport { TextInput } from '@digigov/ui/form/TextInput';\nimport { useTranslation } from '@digigov/ui/i18n';\nimport { Hint } from '@digigov/ui/typography/Hint';\n\nconst TYPES_MAP = {\n string: 'text',\n password: 'password',\n int: 'text',\n text: 'text',\n date: 'date',\n};\n\nexport interface InputProps\n extends Omit<UncontrolledFieldProps, 'extra' | 'Field'> {\n extra?: {\n fullWidth?: boolean;\n multiline?: boolean;\n className?: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n rows?: any;\n limit: {\n min?: number;\n max?: number;\n };\n };\n Field?: UncontrolledFieldProps['Field'];\n}\n\nexport const Input: React.ExoticComponent<InputProps> = React.forwardRef(\n function WrappedInput({ name, control, type, extra, ...props }, ref: never) {\n delete props['Field'];\n // eslint-disable-next-line prefer-const\n let { multiline = false, rows, limit } = extra || {};\n const { className } = extra || {};\n // if enforced to multiline use true. Derive from type otherwise.\n multiline = multiline === true || type === 'text';\n // use explicit rows value if set. Derive from multiline otherwise.\n rows = rows || (multiline ? 4 : 1);\n // translate dilosi type to HTML Input type\n const fieldType = TYPES_MAP[type || 'text'] || 'text';\n const { t } = useTranslation();\n const currentValue: string | '' = useWatch({ control, name });\n\n const getRemainingChars = (currentValue, limit) => {\n if (currentValue) {\n return limit?.max - currentValue.length;\n }\n return limit?.max;\n };\n\n const constructRemainingText = (currentValue, limit) => {\n const remainingChars = getRemainingChars(currentValue, limit);\n let remainingText =\n Math.abs(remainingChars) === 1\n ? t('form.info.text.character')\n : t('form.info.text.characters');\n remainingText +=\n remainingChars > 0\n ? ` ${t('form.info.text.remaining')}.`\n : ` ${t('form.info.text.too_many')}.`;\n return remainingText;\n };\n\n if (multiline === true) {\n return (\n <>\n <TextArea\n name={name}\n className={className}\n rows={rows}\n ref={ref}\n id={name}\n {...{\n ...props,\n reset: undefined,\n required: undefined,\n type: fieldType,\n }}\n />\n {limit?.max && (\n <Hint display={'flex'}>\n {t('form.info.text.you_have')}\n <Hint fontWeight=\"bold\">\n {`${Math.abs(getRemainingChars(currentValue, limit))}`}\n \n </Hint>\n {constructRemainingText(currentValue, limit)}\n </Hint>\n )}\n </>\n );\n } else {\n return (\n <TextInput\n name={name}\n id={name}\n type={fieldType}\n data-type={type}\n className={className}\n ref={ref}\n {...{\n ...props,\n reset: undefined,\n required: undefined,\n }}\n />\n );\n }\n }\n);\n\nexport default Input;\n"],
|
|
5
|
+
"mappings": "AAAA,OAAO,WAAW;AAClB,SAAS,gBAAgB;AAEzB,SAAS,gBAAgB;AACzB,SAAS,iBAAiB;AAC1B,SAAS,sBAAsB;AAC/B,SAAS,YAAY;AAErB,MAAM,YAAY;AAAA,EAChB,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,KAAK;AAAA,EACL,MAAM;AAAA,EACN,MAAM;AACR;AAkBO,MAAM,QAA2C,MAAM;AAAA,EAC5D,SAAS,aAAa,EAAE,MAAM,SAAS,MAAM,OAAO,GAAG,MAAM,GAAG,KAAY;AAC1E,WAAO,MAAM,OAAO;AAEpB,QAAI,EAAE,YAAY,OAAO,MAAM,MAAM,IAAI,SAAS,CAAC;AACnD,UAAM,EAAE,UAAU,IAAI,SAAS,CAAC;AAEhC,gBAAY,cAAc,QAAQ,SAAS;AAE3C,WAAO,SAAS,YAAY,IAAI;AAEhC,UAAM,YAAY,UAAU,QAAQ,MAAM,KAAK;AAC/C,UAAM,EAAE,EAAE,IAAI,eAAe;AAC7B,UAAM,eAA4B,SAAS,EAAE,SAAS,KAAK,CAAC;AAE5D,UAAM,oBAAoB,CAACA,eAAcC,WAAU;AACjD,UAAID,eAAc;AAChB,eAAOC,QAAO,MAAMD,cAAa;AAAA,MACnC;AACA,aAAOC,QAAO;AAAA,IAChB;AAEA,UAAM,yBAAyB,CAACD,eAAcC,WAAU;AACtD,YAAM,iBAAiB,kBAAkBD,eAAcC,MAAK;AAC5D,UAAI,gBACF,KAAK,IAAI,cAAc,MAAM,IACzB,EAAE,0BAA0B,IAC5B,EAAE,2BAA2B;AACnC,uBACE,iBAAiB,IACb,IAAI,EAAE,0BAA0B,CAAC,MACjC,IAAI,EAAE,yBAAyB,CAAC;AACtC,aAAO;AAAA,IACT;AAEA,QAAI,cAAc,MAAM;AACtB,aACE,0DACE;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,IAAI;AAAA,UACH,GAAG;AAAA,YACF,GAAG;AAAA,YACH,OAAO;AAAA,YACP,UAAU;AAAA,YACV,MAAM;AAAA,UACR;AAAA;AAAA,MACF,GACC,OAAO,OACN,oCAAC,QAAK,SAAS,UACZ,EAAE,yBAAyB,GAC5B,oCAAC,QAAK,YAAW,UAAO,QACf,GAAG,KAAK,IAAI,kBAAkB,cAAc,KAAK,CAAC,CAAC,IAAG,MAE/D,GACC,uBAAuB,cAAc,KAAK,CAC7C,CAEJ;AAAA,IAEJ,OAAO;AACL,aACE;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,IAAI;AAAA,UACJ,MAAM;AAAA,UACN,aAAW;AAAA,UACX;AAAA,UACA;AAAA,UACC,GAAG;AAAA,YACF,GAAG;AAAA,YACH,OAAO;AAAA,YACP,UAAU;AAAA,UACZ;AAAA;AAAA,MACF;AAAA,IAEJ;AAAA,EACF;AACF;AAEA,IAAO,gBAAQ;",
|
|
6
6
|
"names": ["currentValue", "limit"]
|
|
7
7
|
}
|
package/lazy/index.js
CHANGED
|
@@ -14,11 +14,11 @@ export default {
|
|
|
14
14
|
'ArrayItemHeader': lazy(() => import('@digigov/form/FieldArray/FormDialog').then((module) => ({ default: module['ArrayItemHeader'] }))),
|
|
15
15
|
'ArrayItemDisplay': lazy(() => import('@digigov/form/FieldArray/FormDialog').then((module) => ({ default: module['ArrayItemDisplay'] }))),
|
|
16
16
|
'FieldArray': lazy(() => import('@digigov/form/FieldArray').then((module) => ({ default: module['FieldArray'] }))),
|
|
17
|
+
'FieldObject': lazy(() => import('@digigov/form/FieldObject').then((module) => ({ default: module['FieldObject'] }))),
|
|
17
18
|
'FieldsetWithContext': lazy(() => import('@digigov/form/Fieldset/FieldsetWithContext').then((module) => ({ default: module['FieldsetWithContext'] }))),
|
|
18
19
|
'FieldsetLabel': lazy(() => import('@digigov/form/Fieldset').then((module) => ({ default: module['FieldsetLabel'] }))),
|
|
19
20
|
'FieldsetCaption': lazy(() => import('@digigov/form/Fieldset').then((module) => ({ default: module['FieldsetCaption'] }))),
|
|
20
21
|
'FieldsetBody': lazy(() => import('@digigov/form/Fieldset').then((module) => ({ default: module['FieldsetBody'] }))),
|
|
21
|
-
'FieldObject': lazy(() => import('@digigov/form/FieldObject').then((module) => ({ default: module['FieldObject'] }))),
|
|
22
22
|
'ControlledFormBuilder': lazy(() => import('@digigov/form/FormBuilder').then((module) => ({ default: module['ControlledFormBuilder'] }))),
|
|
23
23
|
'FormBase': lazy(() => import('@digigov/form/FormBuilder').then((module) => ({ default: module['FormBase'] }))),
|
|
24
24
|
'AddObjects': lazy(() => import('@digigov/form/MultiplicityField/add-objects').then((module) => ({ default: module['AddObjects'] }))),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@digigov/form",
|
|
3
|
-
"version": "2.0.0-
|
|
3
|
+
"version": "2.0.0-555d1027",
|
|
4
4
|
"description": "@digigov form builder",
|
|
5
5
|
"author": "GRNET Developers <devs@lists.grnet.gr>",
|
|
6
6
|
"license": "BSD-2-Clause",
|
|
@@ -10,18 +10,18 @@
|
|
|
10
10
|
"access": "public"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"react-hook-form": "7.
|
|
13
|
+
"react-hook-form": "7.56.1",
|
|
14
14
|
"yup": "0.32.11",
|
|
15
15
|
"dayjs": "1.10.4",
|
|
16
|
-
"@hookform/resolvers": "
|
|
17
|
-
"@digigov/react-icons": "2.0.0-
|
|
16
|
+
"@hookform/resolvers": "5.0.1",
|
|
17
|
+
"@digigov/react-icons": "2.0.0-555d1027"
|
|
18
18
|
},
|
|
19
19
|
"peerDependencies": {
|
|
20
|
-
"@digigov/ui": "2.0.0-
|
|
21
|
-
"@digigov/react-core": "2.0.0-
|
|
20
|
+
"@digigov/ui": "2.0.0-555d1027",
|
|
21
|
+
"@digigov/react-core": "2.0.0-555d1027",
|
|
22
22
|
"clsx": "1.1.1",
|
|
23
|
-
"react": "
|
|
24
|
-
"react-dom": "
|
|
23
|
+
"react": "^18.3.0 || ^19.1.0",
|
|
24
|
+
"react-dom": "^18.3.0 || ^19.1.0"
|
|
25
25
|
},
|
|
26
26
|
"gitHead": "c903a46306f77f55ad7fc4d2e274006f39a6c871",
|
|
27
27
|
"private": false,
|
package/registry/index.js
CHANGED
|
@@ -12,10 +12,10 @@ import * as _digigov_form_Field from "@digigov/form/Field";
|
|
|
12
12
|
import * as _digigov_form_Field_types from "@digigov/form/Field/types";
|
|
13
13
|
import * as _digigov_form_FieldArray_FormDialog from "@digigov/form/FieldArray/FormDialog";
|
|
14
14
|
import * as _digigov_form_FieldArray from "@digigov/form/FieldArray";
|
|
15
|
+
import * as _digigov_form_FieldObject from "@digigov/form/FieldObject";
|
|
15
16
|
import * as _digigov_form_Fieldset_FieldsetWithContext from "@digigov/form/Fieldset/FieldsetWithContext";
|
|
16
17
|
import * as _digigov_form_Fieldset from "@digigov/form/Fieldset";
|
|
17
18
|
import * as _digigov_form_Fieldset_types from "@digigov/form/Fieldset/types";
|
|
18
|
-
import * as _digigov_form_FieldObject from "@digigov/form/FieldObject";
|
|
19
19
|
import * as _digigov_form_FormBuilder from "@digigov/form/FormBuilder";
|
|
20
20
|
import * as _digigov_form_MultiplicityField_add_objects from "@digigov/form/MultiplicityField/add-objects";
|
|
21
21
|
import * as _digigov_form_MultiplicityField from "@digigov/form/MultiplicityField";
|
|
@@ -46,13 +46,12 @@ import * as _digigov_form_Questions_Step_getAddMoreFields from "@digigov/form/Qu
|
|
|
46
46
|
import * as _digigov_form_Questions_Step from "@digigov/form/Questions/Step";
|
|
47
47
|
import * as _digigov_form_Questions_Step_types from "@digigov/form/Questions/Step/types";
|
|
48
48
|
import * as _digigov_form_inputs_AutoCompleteInput from "@digigov/form/inputs/AutoCompleteInput";
|
|
49
|
-
import * as _digigov_form_inputs_DateInput from "@digigov/form/inputs/DateInput";
|
|
50
49
|
import * as _digigov_form_inputs_Checkboxes from "@digigov/form/inputs/Checkboxes";
|
|
50
|
+
import * as _digigov_form_inputs_DateInput from "@digigov/form/inputs/DateInput";
|
|
51
51
|
import * as _digigov_form_inputs_DateTimeInput from "@digigov/form/inputs/DateTimeInput";
|
|
52
52
|
import * as _digigov_form_inputs_FileInput from "@digigov/form/inputs/FileInput";
|
|
53
53
|
import * as _digigov_form_inputs_ImageInput from "@digigov/form/inputs/ImageInput";
|
|
54
54
|
import * as _digigov_form_inputs_Input from "@digigov/form/inputs/Input";
|
|
55
|
-
import * as _digigov_form_inputs_Input_inputsInputScenarios from "@digigov/form/inputs/Input/inputsInputScenarios";
|
|
56
55
|
import * as _digigov_form_inputs_Label from "@digigov/form/inputs/Label";
|
|
57
56
|
import * as _digigov_form_inputs_OtpInput from "@digigov/form/inputs/OtpInput";
|
|
58
57
|
import * as _digigov_form_inputs_Radio from "@digigov/form/inputs/Radio";
|
|
@@ -104,10 +103,10 @@ export default {
|
|
|
104
103
|
'@digigov/form/Field/types': lazyImport(_digigov_form_Field_types),
|
|
105
104
|
'@digigov/form/FieldArray/FormDialog': lazyImport(_digigov_form_FieldArray_FormDialog),
|
|
106
105
|
'@digigov/form/FieldArray': lazyImport(_digigov_form_FieldArray),
|
|
106
|
+
'@digigov/form/FieldObject': lazyImport(_digigov_form_FieldObject),
|
|
107
107
|
'@digigov/form/Fieldset/FieldsetWithContext': lazyImport(_digigov_form_Fieldset_FieldsetWithContext),
|
|
108
108
|
'@digigov/form/Fieldset': lazyImport(_digigov_form_Fieldset),
|
|
109
109
|
'@digigov/form/Fieldset/types': lazyImport(_digigov_form_Fieldset_types),
|
|
110
|
-
'@digigov/form/FieldObject': lazyImport(_digigov_form_FieldObject),
|
|
111
110
|
'@digigov/form/FormBuilder': lazyImport(_digigov_form_FormBuilder),
|
|
112
111
|
'@digigov/form/MultiplicityField/add-objects': lazyImport(_digigov_form_MultiplicityField_add_objects),
|
|
113
112
|
'@digigov/form/MultiplicityField': lazyImport(_digigov_form_MultiplicityField),
|
|
@@ -138,13 +137,12 @@ export default {
|
|
|
138
137
|
'@digigov/form/Questions/Step': lazyImport(_digigov_form_Questions_Step),
|
|
139
138
|
'@digigov/form/Questions/Step/types': lazyImport(_digigov_form_Questions_Step_types),
|
|
140
139
|
'@digigov/form/inputs/AutoCompleteInput': lazyImport(_digigov_form_inputs_AutoCompleteInput),
|
|
141
|
-
'@digigov/form/inputs/DateInput': lazyImport(_digigov_form_inputs_DateInput),
|
|
142
140
|
'@digigov/form/inputs/Checkboxes': lazyImport(_digigov_form_inputs_Checkboxes),
|
|
141
|
+
'@digigov/form/inputs/DateInput': lazyImport(_digigov_form_inputs_DateInput),
|
|
143
142
|
'@digigov/form/inputs/DateTimeInput': lazyImport(_digigov_form_inputs_DateTimeInput),
|
|
144
143
|
'@digigov/form/inputs/FileInput': lazyImport(_digigov_form_inputs_FileInput),
|
|
145
144
|
'@digigov/form/inputs/ImageInput': lazyImport(_digigov_form_inputs_ImageInput),
|
|
146
145
|
'@digigov/form/inputs/Input': lazyImport(_digigov_form_inputs_Input),
|
|
147
|
-
'@digigov/form/inputs/Input/inputsInputScenarios': lazyImport(_digigov_form_inputs_Input_inputsInputScenarios),
|
|
148
146
|
'@digigov/form/inputs/Label': lazyImport(_digigov_form_inputs_Label),
|
|
149
147
|
'@digigov/form/inputs/OtpInput': lazyImport(_digigov_form_inputs_OtpInput),
|
|
150
148
|
'@digigov/form/inputs/Radio': lazyImport(_digigov_form_inputs_Radio),
|
package/src/Field/FieldBase.tsx
CHANGED
|
@@ -51,23 +51,20 @@ export const FieldBase: React.FC<FieldBaseProps> = ({
|
|
|
51
51
|
name={name}
|
|
52
52
|
render={({ field }) => {
|
|
53
53
|
return (
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
{...componentProps}
|
|
69
|
-
/>
|
|
70
|
-
</>
|
|
54
|
+
<Component
|
|
55
|
+
{...field}
|
|
56
|
+
control={control}
|
|
57
|
+
ref={undefined}
|
|
58
|
+
defaultValue={defaultValue ?? field.value}
|
|
59
|
+
extra={extra}
|
|
60
|
+
error={!!error}
|
|
61
|
+
type={type}
|
|
62
|
+
aria-required={!!required}
|
|
63
|
+
aria-describedby={error && `${name}-error`}
|
|
64
|
+
required={required}
|
|
65
|
+
disabled={editable === false}
|
|
66
|
+
{...componentProps}
|
|
67
|
+
/>
|
|
71
68
|
);
|
|
72
69
|
}}
|
|
73
70
|
/>
|
|
@@ -112,7 +109,6 @@ export const FieldBase: React.FC<FieldBaseProps> = ({
|
|
|
112
109
|
aria-describedby={error && `${name}-error`}
|
|
113
110
|
required={required}
|
|
114
111
|
disabled={editable === false}
|
|
115
|
-
ref={undefined}
|
|
116
112
|
{...componentProps}
|
|
117
113
|
/>
|
|
118
114
|
)}
|
|
@@ -3,7 +3,7 @@ import { FieldContainerProps } from '@digigov/form/Field/types';
|
|
|
3
3
|
import Label from '@digigov/form/inputs/Label';
|
|
4
4
|
import { ErrorMessage } from '@digigov/react-core/ErrorMessage';
|
|
5
5
|
import FieldContainer from '@digigov/react-core/FieldContainer';
|
|
6
|
-
import
|
|
6
|
+
import Fieldset from '@digigov/react-core/Fieldset';
|
|
7
7
|
import FieldsetLegend from '@digigov/react-core/FieldsetLegend';
|
|
8
8
|
import LabelContainer from '@digigov/react-core/LabelContainer';
|
|
9
9
|
import { useTranslation } from '@digigov/ui/i18n';
|
|
@@ -11,12 +11,14 @@ import { Hint } from '@digigov/ui/typography/Hint';
|
|
|
11
11
|
|
|
12
12
|
export const FieldBaseContainer: React.FC<FieldContainerProps> = ({
|
|
13
13
|
name,
|
|
14
|
+
register,
|
|
14
15
|
wrapper,
|
|
15
16
|
label,
|
|
16
17
|
children,
|
|
17
18
|
error,
|
|
18
19
|
hasError,
|
|
19
20
|
layout,
|
|
21
|
+
controlled,
|
|
20
22
|
labelSize = 'sm',
|
|
21
23
|
}) => {
|
|
22
24
|
const { t } = useTranslation();
|
|
@@ -27,19 +29,25 @@ export const FieldBaseContainer: React.FC<FieldContainerProps> = ({
|
|
|
27
29
|
if (wrapper === 'fieldset') {
|
|
28
30
|
return (
|
|
29
31
|
<FieldContainer error={hasError} {...layout}>
|
|
30
|
-
<
|
|
32
|
+
<Fieldset
|
|
33
|
+
className="outline-none"
|
|
34
|
+
{...(controlled && {
|
|
35
|
+
tabIndex: -1,
|
|
36
|
+
...(register(name || '') as any),
|
|
37
|
+
})}
|
|
38
|
+
>
|
|
31
39
|
<FieldsetLegend size={labelSize}>
|
|
32
40
|
{label && label.primary}
|
|
33
41
|
</FieldsetLegend>
|
|
34
|
-
{label && label.secondary && <Hint
|
|
42
|
+
{label && label.secondary && <Hint>{t(label.secondary)}</Hint>}
|
|
35
43
|
{error && (
|
|
36
|
-
<ErrorMessage id={`${name}-error`}
|
|
44
|
+
<ErrorMessage id={`${name}-error`}>
|
|
37
45
|
{t(errorMessage, errorContext)}
|
|
38
46
|
</ErrorMessage>
|
|
39
47
|
)}
|
|
40
48
|
{children}
|
|
41
49
|
{label && label.hint && <Hint size="sm">{label.hint}</Hint>}
|
|
42
|
-
</
|
|
50
|
+
</Fieldset>
|
|
43
51
|
</FieldContainer>
|
|
44
52
|
);
|
|
45
53
|
} else {
|
package/src/Field/index.tsx
CHANGED
|
@@ -97,6 +97,7 @@ export const Field: React.FC<FieldProps> = ({
|
|
|
97
97
|
setValue={setValue}
|
|
98
98
|
getValues={getValues}
|
|
99
99
|
unregister={unregister}
|
|
100
|
+
resetField={resetField}
|
|
100
101
|
Field={Field}
|
|
101
102
|
{...calculatedField}
|
|
102
103
|
/>
|
|
@@ -115,8 +116,8 @@ export const Field: React.FC<FieldProps> = ({
|
|
|
115
116
|
control={control}
|
|
116
117
|
register={register}
|
|
117
118
|
reset={reset}
|
|
118
|
-
resetField={resetField}
|
|
119
119
|
error={customError}
|
|
120
|
+
resetField={resetField}
|
|
120
121
|
Field={Field}
|
|
121
122
|
/>
|
|
122
123
|
);
|
package/src/Field/types.tsx
CHANGED
|
@@ -82,7 +82,7 @@ export interface FieldConditionalProps {
|
|
|
82
82
|
control: UseFormReturn['control'];
|
|
83
83
|
register: UseFormReturn['register'];
|
|
84
84
|
reset: UseFormReturn['reset'];
|
|
85
|
-
resetField
|
|
85
|
+
resetField?: UseFormReturn['resetField'];
|
|
86
86
|
error?: ErrorOption;
|
|
87
87
|
Field: React.FC<FieldProps>;
|
|
88
88
|
}
|
|
@@ -151,7 +151,7 @@ export interface FieldBaseProps extends CalculatedField {
|
|
|
151
151
|
control: UseFormReturn['control'];
|
|
152
152
|
register: UseFormReturn['register'];
|
|
153
153
|
reset: UseFormReturn['reset'];
|
|
154
|
-
resetField
|
|
154
|
+
resetField?: UseFormReturn['resetField'];
|
|
155
155
|
Field?: React.FC<FieldProps>;
|
|
156
156
|
}
|
|
157
157
|
|
package/src/Field/utils/index.ts
CHANGED
|
@@ -20,11 +20,12 @@ export const FIELD_COMPONENTS: FieldComponentRegistry = {
|
|
|
20
20
|
file: {
|
|
21
21
|
wrapper: 'fieldset',
|
|
22
22
|
component: FileInput,
|
|
23
|
-
controlled: true,
|
|
23
|
+
// controlled: true,
|
|
24
24
|
},
|
|
25
25
|
image: {
|
|
26
26
|
wrapper: 'fieldset',
|
|
27
27
|
component: ImageInput,
|
|
28
|
+
controlled: true,
|
|
28
29
|
},
|
|
29
30
|
date: {
|
|
30
31
|
wrapper: 'fieldset',
|
|
@@ -40,7 +40,7 @@ export interface FormDialogProps extends FieldProps {
|
|
|
40
40
|
getValues: UseFormReturn['getValues'];
|
|
41
41
|
setValue: UseFormReturn['setValue'];
|
|
42
42
|
reset: UseFormReturn['reset'];
|
|
43
|
-
resetField
|
|
43
|
+
resetField?: UseFormReturn['resetField'];
|
|
44
44
|
sortable: boolean;
|
|
45
45
|
Field: React.FC<FieldProps>;
|
|
46
46
|
}
|
|
@@ -206,9 +206,6 @@ export const FormDialog: React.FC<FormDialogProps> = React.forwardRef(
|
|
|
206
206
|
ofField?.extra &&
|
|
207
207
|
values?.length > 0 && (
|
|
208
208
|
<ArrayItemHeader
|
|
209
|
-
tableCellActionsLabel={
|
|
210
|
-
customField.extra?.tableCellActionsLabel
|
|
211
|
-
}
|
|
212
209
|
labels={
|
|
213
210
|
ofField.type === 'object'
|
|
214
211
|
? ofField.extra.fields.map(({ label }) => label.primary)
|
|
@@ -224,6 +221,7 @@ export const FormDialog: React.FC<FormDialogProps> = React.forwardRef(
|
|
|
224
221
|
<ArrayItemDisplay
|
|
225
222
|
key={index}
|
|
226
223
|
name={`${name}.${index}`}
|
|
224
|
+
register={register}
|
|
227
225
|
index={index}
|
|
228
226
|
isFirst={index === 0}
|
|
229
227
|
isLast={index === values.length - 1}
|
|
@@ -396,20 +394,14 @@ export const ArrayItemModal = React.forwardRef(function ArrayItemModal(
|
|
|
396
394
|
);
|
|
397
395
|
});
|
|
398
396
|
|
|
399
|
-
export const ArrayItemHeader = ({
|
|
400
|
-
labels,
|
|
401
|
-
disabled,
|
|
402
|
-
tableCellActionsLabel,
|
|
403
|
-
}) => {
|
|
397
|
+
export const ArrayItemHeader = ({ labels, disabled }) => {
|
|
404
398
|
return (
|
|
405
399
|
<TableHead>
|
|
406
400
|
<TableRow>
|
|
407
401
|
{labels.map((label, index) => {
|
|
408
402
|
return <TableHeadCell key={index}>{label}</TableHeadCell>;
|
|
409
403
|
})}
|
|
410
|
-
{!disabled &&
|
|
411
|
-
<TableHeadCell>{tableCellActionsLabel ?? `Ενέργειες`}</TableHeadCell>
|
|
412
|
-
)}
|
|
404
|
+
{!disabled && <TableHeadCell>Ενέργειες</TableHeadCell>}
|
|
413
405
|
</TableRow>
|
|
414
406
|
</TableHead>
|
|
415
407
|
);
|
|
@@ -418,6 +410,7 @@ export const ArrayItemHeader = ({
|
|
|
418
410
|
export const ArrayItemDisplay = ({
|
|
419
411
|
name,
|
|
420
412
|
data,
|
|
413
|
+
register,
|
|
421
414
|
edit,
|
|
422
415
|
remove,
|
|
423
416
|
disabledEdit,
|
|
@@ -442,6 +435,7 @@ export const ArrayItemDisplay = ({
|
|
|
442
435
|
name: string;
|
|
443
436
|
edit: (name: string) => void;
|
|
444
437
|
remove: (name: string) => void;
|
|
438
|
+
register: (name: string) => void;
|
|
445
439
|
disabledEdit?: boolean;
|
|
446
440
|
disabledDelete?: boolean;
|
|
447
441
|
disabled?: boolean;
|
|
@@ -470,7 +464,7 @@ export const ArrayItemDisplay = ({
|
|
|
470
464
|
const borderVariant = border === false || sortable ? 'none' : 'border';
|
|
471
465
|
return (
|
|
472
466
|
<>
|
|
473
|
-
<TableRow>
|
|
467
|
+
<TableRow {...(register(name) as any)}>
|
|
474
468
|
{values?.map?.((value, valueIndex) => {
|
|
475
469
|
return (
|
|
476
470
|
<TableDataCell
|