@gen-epix/ui-core-form 4.2.0 → 4.3.1

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.
@@ -1,2 +1,2 @@
1
1
  import { PaperProps } from '@mui/material';
2
- export declare const AutocompleteSelectAllPaper: ({ children, ...props }: PaperProps) => import("react").JSX.Element;
2
+ export declare const AutocompleteSelectAllPaper: ({ children, ...props }: PaperProps) => import('react').JSX.Element;
@@ -5,4 +5,4 @@ export type DatePickerInputAdornmentProps = {
5
5
  readonly loading: boolean;
6
6
  readonly onResetButtonClickRef: RefObject<() => void>;
7
7
  } & InputAdornmentProps;
8
- export declare const DatePickerInputAdornment: ({ children, disabled, loading, onResetButtonClickRef, ...props }: DatePickerInputAdornmentProps) => import("react").JSX.Element;
8
+ export declare const DatePickerInputAdornment: ({ children, disabled, loading, onResetButtonClickRef, ...props }: DatePickerInputAdornmentProps) => import('react').JSX.Element;
@@ -1,4 +1,4 @@
1
1
  export type RichTextEditorContentProps = {
2
2
  readonly source: string;
3
3
  };
4
- export declare const RichTextEditorContent: ({ source }: RichTextEditorContentProps) => import("react").JSX.Element;
4
+ export declare const RichTextEditorContent: ({ source }: RichTextEditorContentProps) => import('react').JSX.Element;
@@ -29,6 +29,7 @@ var D = /* @__PURE__ */ e(i(), 1), O = ({ disabled: e = !1, infoMessage: i, labe
29
29
  return /* @__PURE__ */ T(C, { children: [
30
30
  /* @__PURE__ */ w(_, {
31
31
  className: (0, D.default)({ "Mui-warning": G }),
32
+ disabled: e,
32
33
  error: W,
33
34
  htmlFor: V,
34
35
  id: H,
@@ -62,14 +63,12 @@ var D = /* @__PURE__ */ e(i(), 1), O = ({ disabled: e = !1, infoMessage: i, labe
62
63
  "aria-labelledby": H,
63
64
  className: (0, D.default)({ "Mui-warning": G }),
64
65
  id: V,
65
- ref: B,
66
- required: P && !e
66
+ ref: B
67
67
  },
68
68
  multiple: A,
69
69
  onBlur: t,
70
70
  onChange: Y(r),
71
71
  renderValue: J,
72
- required: P,
73
72
  value: o ?? (A ? [] : ""),
74
73
  children: N.map((e) => /* @__PURE__ */ T(y, {
75
74
  disabled: q(e.value),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/fields/Select/Select.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport {\n useCallback,\n useId,\n useMemo,\n useRef,\n} from 'react';\nimport {\n Checkbox,\n FormControl,\n FormHelperText,\n IconButton,\n InputAdornment,\n InputLabel,\n ListItemText,\n MenuItem,\n Select as MuiSelect,\n OutlinedInput,\n} from '@mui/material';\nimport type { SelectChangeEvent } from '@mui/material';\nimport ClearIcon from '@mui/icons-material/Clear';\nimport type {\n ControllerRenderProps,\n FieldValues,\n Path,\n UseControllerReturn,\n} from 'react-hook-form';\nimport {\n Controller,\n useFormContext,\n} from 'react-hook-form';\nimport classnames from 'classnames';\nimport { useTranslation } from 'react-i18next';\nimport { TestIdUtil } from '@gen-epix/ui-core/utils/TestIdUtil';\n\nimport type { SelectOption } from '../../../models/form';\nimport { FormUtil } from '../../../utils/FormUtil';\nimport { FormFieldHelperText } from '../../helpers/FormFieldHelperText';\nimport { FormFieldLoadingIndicator } from '../../helpers/FormFieldLoadingIndicator';\n\nexport type SelectProps<TFieldValues extends FieldValues, TName extends Path<TFieldValues>, TMultiple extends boolean> = {\n readonly disabled?: boolean;\n readonly infoMessage?: string;\n readonly label: string;\n readonly loading?: boolean;\n readonly multiple?: TMultiple;\n readonly name: TName;\n readonly onChange?: (value: string) => void;\n readonly options: SelectOption[];\n readonly required?: boolean;\n readonly warningMessage?: string;\n};\n\ntype Value = boolean | number | string;\n\nexport const Select = <TFieldValues extends FieldValues, TName extends Path<TFieldValues> = Path<TFieldValues>, TMultiple extends boolean = false>({\n disabled = false,\n infoMessage,\n label,\n loading = false,\n multiple,\n name,\n onChange: onChangeProp,\n options,\n required = false,\n warningMessage,\n}: SelectProps<TFieldValues, TName, TMultiple>): ReactElement => {\n const { t } = useTranslation();\n const { control, formState: { errors } } = useFormContext<TFieldValues>();\n const errorMessage = FormUtil.getFieldErrorMessage(errors, name);\n const inputRef = useRef<HTMLInputElement>(null);\n const id = useId();\n const labelId = useId();\n const helperTextId = useId();\n\n const hasError = !!errorMessage;\n const hasWarning = !!warningMessage && !hasError;\n\n const mappedOptions = useMemo<Map<Value, SelectOption>>(() => {\n const mapped = new Map<Value, SelectOption>();\n options.forEach(option => {\n mapped.set(option.value, option);\n });\n return mapped;\n }, [options]);\n\n const getIsOptionDisabled = useCallback((value: SelectOption['value']): boolean => mappedOptions.get(value)?.disabled, [mappedOptions]);\n\n const renderValue = useCallback((value: string | string []) => {\n const values = Array.isArray(value) ? value : [value];\n return values.map(v => mappedOptions.get(v)?.label).join(', ');\n }, [mappedOptions]);\n\n const onMuiSelectChange = useCallback((onChange: ControllerRenderProps<TFieldValues, TName>['onChange']) =>\n (event: SelectChangeEvent<string>) => {\n if (onChangeProp) {\n onChangeProp(event.target.value);\n }\n onChange(event.target.value);\n }\n , [onChangeProp]);\n\n const renderController = useCallback(({ field: { onBlur, onChange, ref, value } }: UseControllerReturn<TFieldValues, TName>) => {\n ref({\n focus: () => {\n inputRef?.current?.focus();\n },\n });\n const onResetButtonClick = () => {\n onMuiSelectChange(onChange)({ target: { value: multiple ? [] : '' } } as SelectChangeEvent<string>);\n };\n\n return (\n <>\n <InputLabel\n className={classnames({ 'Mui-warning': hasWarning })}\n error={hasError}\n htmlFor={id}\n id={labelId}\n required={required && !disabled}\n >\n {label}\n </InputLabel>\n <MuiSelect<TFieldValues[TName]>\n disabled={disabled || loading}\n error={hasError}\n input={(\n <OutlinedInput\n endAdornment={disabled ? undefined : (\n <InputAdornment\n position={'start'}\n sx={{\n position: 'absolute',\n right: theme => theme.spacing(2),\n }}\n >\n <IconButton\n {...TestIdUtil.createAttributes('TextField-reset')}\n aria-label={t`Clear selection`}\n // eslint-disable-next-line @eslint-react/kit/jsx-no-bind\n onClick={onResetButtonClick}\n sx={{\n '& svg': {\n fontSize: '16px',\n },\n }}\n tabIndex={-1}\n >\n <ClearIcon />\n </IconButton>\n </InputAdornment>\n )}\n label={label}\n />\n )}\n inputProps={{\n 'aria-describedby': helperTextId,\n 'aria-label': label,\n 'aria-labelledby': labelId,\n className: classnames({\n 'Mui-warning': hasWarning,\n }),\n id,\n ref: inputRef,\n required: required && !disabled,\n }}\n multiple={multiple}\n onBlur={onBlur}\n onChange={onMuiSelectChange(onChange)}\n renderValue={renderValue}\n required={required}\n value={value ?? (multiple ? [] : '') as TFieldValues[TName]}\n >\n { options.map((option) => {\n return (\n <MenuItem\n disabled={getIsOptionDisabled(option.value)}\n key={option.value.toString()}\n value={option.value as string}\n >\n\n {multiple && (\n <Checkbox\n checked={(value as string[]).includes(option.value as string)}\n />\n )}\n <ListItemText\n primary={option.label}\n secondary={option.secondaryLabel}\n slotProps={{\n secondary: { sx: { fontSize: '0.875rem', fontStyle: 'italic' } },\n }}\n sx={{\n alignItems: 'baseline',\n display: 'flex',\n gap: 2,\n justifyContent: 'space-between',\n }}\n />\n </MenuItem>\n );\n })}\n </MuiSelect>\n <FormHelperText\n className={classnames({ 'Mui-warning': hasWarning })}\n id={helperTextId}\n sx={{ ml: 0 }}\n >\n <FormFieldHelperText\n errorMessage={errorMessage}\n infoMessage={infoMessage}\n noIndent\n warningMessage={warningMessage}\n />\n </FormHelperText>\n </>\n );\n }, [disabled, infoMessage, errorMessage, getIsOptionDisabled, t, hasError, hasWarning, helperTextId, id, label, labelId, loading, multiple, onMuiSelectChange, options, renderValue, required, warningMessage]);\n\n return (\n <FormControl\n {...TestIdUtil.createAttributes('Select', { label, name })}\n fullWidth\n >\n <Controller\n control={control}\n defaultValue={null}\n name={name}\n render={renderController}\n />\n { !!loading && <FormFieldLoadingIndicator />}\n </FormControl>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/fields/Select/Select.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport {\n useCallback,\n useId,\n useMemo,\n useRef,\n} from 'react';\nimport {\n Checkbox,\n FormControl,\n FormHelperText,\n IconButton,\n InputAdornment,\n InputLabel,\n ListItemText,\n MenuItem,\n Select as MuiSelect,\n OutlinedInput,\n} from '@mui/material';\nimport type { SelectChangeEvent } from '@mui/material';\nimport ClearIcon from '@mui/icons-material/Clear';\nimport type {\n ControllerRenderProps,\n FieldValues,\n Path,\n UseControllerReturn,\n} from 'react-hook-form';\nimport {\n Controller,\n useFormContext,\n} from 'react-hook-form';\nimport classnames from 'classnames';\nimport { useTranslation } from 'react-i18next';\nimport { TestIdUtil } from '@gen-epix/ui-core/utils/TestIdUtil';\n\nimport type { SelectOption } from '../../../models/form';\nimport { FormUtil } from '../../../utils/FormUtil';\nimport { FormFieldHelperText } from '../../helpers/FormFieldHelperText';\nimport { FormFieldLoadingIndicator } from '../../helpers/FormFieldLoadingIndicator';\n\nexport type SelectProps<TFieldValues extends FieldValues, TName extends Path<TFieldValues>, TMultiple extends boolean> = {\n readonly disabled?: boolean;\n readonly infoMessage?: string;\n readonly label: string;\n readonly loading?: boolean;\n readonly multiple?: TMultiple;\n readonly name: TName;\n readonly onChange?: (value: string) => void;\n readonly options: SelectOption[];\n readonly required?: boolean;\n readonly warningMessage?: string;\n};\n\ntype Value = boolean | number | string;\n\nexport const Select = <TFieldValues extends FieldValues, TName extends Path<TFieldValues> = Path<TFieldValues>, TMultiple extends boolean = false>({\n disabled = false,\n infoMessage,\n label,\n loading = false,\n multiple,\n name,\n onChange: onChangeProp,\n options,\n required = false,\n warningMessage,\n}: SelectProps<TFieldValues, TName, TMultiple>): ReactElement => {\n const { t } = useTranslation();\n const { control, formState: { errors } } = useFormContext<TFieldValues>();\n const errorMessage = FormUtil.getFieldErrorMessage(errors, name);\n const inputRef = useRef<HTMLInputElement>(null);\n const id = useId();\n const labelId = useId();\n const helperTextId = useId();\n\n const hasError = !!errorMessage;\n const hasWarning = !!warningMessage && !hasError;\n\n const mappedOptions = useMemo<Map<Value, SelectOption>>(() => {\n const mapped = new Map<Value, SelectOption>();\n options.forEach(option => {\n mapped.set(option.value, option);\n });\n return mapped;\n }, [options]);\n\n const getIsOptionDisabled = useCallback((value: SelectOption['value']): boolean => mappedOptions.get(value)?.disabled, [mappedOptions]);\n\n const renderValue = useCallback((value: string | string []) => {\n const values = Array.isArray(value) ? value : [value];\n return values.map(v => mappedOptions.get(v)?.label).join(', ');\n }, [mappedOptions]);\n\n const onMuiSelectChange = useCallback((onChange: ControllerRenderProps<TFieldValues, TName>['onChange']) =>\n (event: SelectChangeEvent<string>) => {\n if (onChangeProp) {\n onChangeProp(event.target.value);\n }\n onChange(event.target.value);\n }\n , [onChangeProp]);\n\n const renderController = useCallback(({ field: { onBlur, onChange, ref, value } }: UseControllerReturn<TFieldValues, TName>) => {\n ref({\n focus: () => {\n inputRef?.current?.focus();\n },\n });\n const onResetButtonClick = () => {\n onMuiSelectChange(onChange)({ target: { value: multiple ? [] : '' } } as SelectChangeEvent<string>);\n };\n\n return (\n <>\n <InputLabel\n className={classnames({ 'Mui-warning': hasWarning })}\n disabled={disabled}\n error={hasError}\n htmlFor={id}\n id={labelId}\n required={required && !disabled}\n >\n {label}\n </InputLabel>\n <MuiSelect<TFieldValues[TName]>\n disabled={disabled || loading}\n error={hasError}\n input={(\n <OutlinedInput\n endAdornment={disabled ? undefined : (\n <InputAdornment\n position={'start'}\n sx={{\n position: 'absolute',\n right: theme => theme.spacing(2),\n }}\n >\n <IconButton\n {...TestIdUtil.createAttributes('TextField-reset')}\n aria-label={t`Clear selection`}\n // eslint-disable-next-line @eslint-react/kit/jsx-no-bind\n onClick={onResetButtonClick}\n sx={{\n '& svg': {\n fontSize: '16px',\n },\n }}\n tabIndex={-1}\n >\n <ClearIcon />\n </IconButton>\n </InputAdornment>\n )}\n label={label}\n />\n )}\n inputProps={{\n 'aria-describedby': helperTextId,\n 'aria-label': label,\n 'aria-labelledby': labelId,\n className: classnames({\n 'Mui-warning': hasWarning,\n }),\n id,\n ref: inputRef,\n }}\n multiple={multiple}\n onBlur={onBlur}\n onChange={onMuiSelectChange(onChange)}\n renderValue={renderValue}\n value={value ?? (multiple ? [] : '') as TFieldValues[TName]}\n >\n { options.map((option) => {\n return (\n <MenuItem\n disabled={getIsOptionDisabled(option.value)}\n key={option.value.toString()}\n value={option.value as string}\n >\n\n {multiple && (\n <Checkbox\n checked={(value as string[]).includes(option.value as string)}\n />\n )}\n <ListItemText\n primary={option.label}\n secondary={option.secondaryLabel}\n slotProps={{\n secondary: { sx: { fontSize: '0.875rem', fontStyle: 'italic' } },\n }}\n sx={{\n alignItems: 'baseline',\n display: 'flex',\n gap: 2,\n justifyContent: 'space-between',\n }}\n />\n </MenuItem>\n );\n })}\n </MuiSelect>\n <FormHelperText\n className={classnames({ 'Mui-warning': hasWarning })}\n id={helperTextId}\n sx={{ ml: 0 }}\n >\n <FormFieldHelperText\n errorMessage={errorMessage}\n infoMessage={infoMessage}\n noIndent\n warningMessage={warningMessage}\n />\n </FormHelperText>\n </>\n );\n }, [disabled, infoMessage, errorMessage, getIsOptionDisabled, t, hasError, hasWarning, helperTextId, id, label, labelId, loading, multiple, onMuiSelectChange, options, renderValue, required, warningMessage]);\n\n return (\n <FormControl\n {...TestIdUtil.createAttributes('Select', { label, name })}\n fullWidth\n >\n <Controller\n control={control}\n defaultValue={null}\n name={name}\n render={renderController}\n />\n { !!loading && <FormFieldLoadingIndicator />}\n </FormControl>\n );\n};\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  export type FormFieldLoadingIndicatorProps = {
2
2
  readonly inline?: boolean;
3
3
  };
4
- export declare const FormFieldLoadingIndicator: ({ inline }: FormFieldLoadingIndicatorProps) => import("react").JSX.Element;
4
+ export declare const FormFieldLoadingIndicator: ({ inline }: FormFieldLoadingIndicatorProps) => import('react').JSX.Element;
@@ -15,4 +15,4 @@ export type GenericFormProps<TFormFields extends FieldValues> = {
15
15
  readonly schema?: ObjectSchema<TFormFields, TFormFields>;
16
16
  readonly wrapForm?: (children: ReactElement) => ReactElement;
17
17
  };
18
- export declare const GenericForm: <TFormFields extends FieldValues>({ disableAll, formFieldDefinitions, formGroupDefinitions, formId, formMethods, onSubmit, renderField, renderGroup, schema, wrapForm, }: GenericFormProps<TFormFields>) => import("react").JSX.Element;
18
+ export declare const GenericForm: <TFormFields extends FieldValues>({ disableAll, formFieldDefinitions, formGroupDefinitions, formId, formMethods, onSubmit, renderField, renderGroup, schema, wrapForm, }: GenericFormProps<TFormFields>) => import('react').JSX.Element;
@@ -87,8 +87,6 @@
87
87
  "Toggle header column": "Toggle header column",
88
88
  "Toggle header row": "Toggle header row",
89
89
  "Update this link": "Update this link",
90
- "Upload file ({{accept}})": "Upload file ({{accept}})",
91
- "Upload files ({{accept}})": "Upload files ({{accept}})",
92
90
  "URL": "URL",
93
91
  "Value": "Value",
94
92
  "Value is invalid": "Value is invalid",
@@ -87,8 +87,6 @@
87
87
  "Toggle header column": "Koptekst kolom omschakelen",
88
88
  "Toggle header row": "Koptekst rij omschakelen",
89
89
  "Update this link": "Deze link bijwerken",
90
- "Upload file ({{accept}})": "Upload bestand ({{accept}})",
91
- "Upload files ({{accept}})": "Upload bestanden ({{accept}})",
92
90
  "URL": "URL",
93
91
  "Value": "Waarde",
94
92
  "Value is invalid": "Waarde is ongeldig",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gen-epix/ui-core-form",
3
- "version": "4.2.0",
3
+ "version": "4.3.1",
4
4
  "homepage": "https://github.com/RIVM-bioinformatics/gen-epix",
5
5
  "repository": {
6
6
  "type": "git",
@@ -155,30 +155,30 @@
155
155
  "uuid": "14.0.2"
156
156
  },
157
157
  "devDependencies": {
158
- "@gen-epix/eslint-config": "0.5.0",
159
- "@gen-epix/translation-util": "0.2.0",
160
- "@gen-epix/ui-core": "^3.2.0",
161
- "@gen-epix/ui-core-components": "^4.2.0",
158
+ "@gen-epix/eslint-config": "0.7.0",
159
+ "@gen-epix/translation-util": "0.4.0",
160
+ "@gen-epix/ui-core": "^3.3.1",
161
+ "@gen-epix/ui-core-components": "^4.3.1",
162
162
  "@mui/icons-material": "9.4.0",
163
163
  "@mui/material": "9.4.0",
164
- "@mui/x-date-pickers": "9.13.0",
164
+ "@mui/x-date-pickers": "9.14.0",
165
165
  "@types/lodash": "4.17.25",
166
166
  "@types/react": "19.3.0",
167
- "eslint": "10.10.0",
167
+ "eslint": "10.11.0",
168
168
  "i18next": "26.4.2",
169
169
  "react": "19.3.0",
170
- "react-hook-form": "7.87.0",
171
- "react-i18next": "17.0.13",
170
+ "react-hook-form": "7.88.0",
171
+ "react-i18next": "17.0.14",
172
172
  "typescript": "6.0.3",
173
- "vite": "8.2.2",
174
- "vite-plugin-dts": "5.1.0",
173
+ "vite": "8.3.0",
174
+ "vite-plugin-dts": "5.1.1",
175
175
  "vite-plugin-static-copy": "4.1.1",
176
- "vitest": "5.0.0",
176
+ "vitest": "5.0.1",
177
177
  "yup": "1.7.1"
178
178
  },
179
179
  "peerDependencies": {
180
- "@gen-epix/ui-core": "^3.2.0",
181
- "@gen-epix/ui-core-components": "^4.2.0",
180
+ "@gen-epix/ui-core": "^3.3.1",
181
+ "@gen-epix/ui-core-components": "^4.3.1",
182
182
  "@mui/icons-material": "*",
183
183
  "@mui/material": "*",
184
184
  "@mui/x-date-pickers": "*",