@astral/ui 4.0.0-alpha.34 → 4.0.0-alpha.36
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/components/AddressAutocomplete/AddressAutocomplete.d.ts +2 -2
- package/components/AsyncAutocomplete/useLogic/useLogic.d.ts +2 -0
- package/components/AsyncAutocomplete/useLogic/useLogic.js +2 -1
- package/components/Autocomplete/Autocomplete.d.ts +8 -0
- package/components/Autocomplete/Autocomplete.js +7 -3
- package/components/CheckboxField/styles.d.ts +1 -0
- package/components/CheckboxField/styles.js +2 -2
- package/components/CodeField/styles.d.ts +1 -0
- package/components/DashboardLayout/Sidebar/Sidebar.js +2 -2
- package/components/DashboardLayout/Sidebar/styles.d.ts +6 -0
- package/components/DashboardLayout/Sidebar/styles.js +15 -8
- package/components/DatePicker/DatePicker.d.ts +8 -0
- package/components/DatePicker/DatePicker.js +2 -2
- package/components/DatePicker/styles.d.ts +1 -0
- package/components/DateRangePicker/DateRangePicker.js +3 -3
- package/components/DateRangePicker/styles.d.ts +1 -0
- package/components/EmailOrPhoneField/useLogic/useLogic.d.ts +1 -0
- package/components/FormHelperText/FormHelperText.d.ts +2 -1
- package/components/FormHelperText/FormHelperText.js +4 -1
- package/components/PageLayout/PageHeader/HeaderContent/styles.js +1 -1
- package/components/PageLayout/PageLayoutContainer/PageLayoutContainer.js +2 -2
- package/components/PageLayout/PageLayoutContainer/styles.d.ts +6 -0
- package/components/PageLayout/PageLayoutContainer/styles.js +8 -2
- package/components/Paper/Paper.d.ts +5 -1
- package/components/Paper/Paper.js +15 -3
- package/components/Paper/styles.d.ts +15 -0
- package/components/Paper/styles.js +9 -0
- package/components/SearchField/useLogic/useLogic.d.ts +1 -0
- package/components/Select/Select.d.ts +2 -2
- package/components/Select/Select.js +1 -1
- package/components/Select/styles.js +1 -1
- package/components/TextField/TextField.d.ts +5 -2
- package/components/TextField/TextField.js +9 -4
- package/components/TextField/constants.d.ts +3 -0
- package/components/TextField/constants.js +4 -0
- package/components/TextField/styles.d.ts +5 -0
- package/components/TextField/styles.js +16 -0
- package/components/TreeAutocomplete/OptionsModal/OptionsModal.js +2 -2
- package/components/TreeLikeAutocomplete/OptionsModal/OptionsModal.js +2 -2
- package/components/declaration/emotion.d.ts +6 -0
- package/components/declaration/mui-material.d.ts +20 -0
- package/components/index.d.ts +1 -0
- package/components/index.js +1 -0
- package/components/theme/components/MuiAutocomplete.js +21 -3
- package/components/theme/components/MuiFormHelperText.js +1 -1
- package/hook-form/EditableText/EditingForm/useLogic/useLogic.js +1 -1
- package/hook-form/hooks/useForm/index.d.ts +1 -0
- package/hook-form/hooks/useForm/types.d.ts +23 -0
- package/hook-form/hooks/useForm/types.js +1 -0
- package/hook-form/hooks/useForm/useForm.d.ts +3 -31
- package/hook-form/hooks/useForm/useForm.js +6 -3
- package/hook-form/hooks/useFormFieldErrorProps/useFormFieldErrorProps.d.ts +1 -2
- package/hook-form/hooks/useFormFieldProps/useFormFieldProps.d.ts +9 -13
- package/hook-form/hooks/useFormFieldProps/useFormFieldProps.js +3 -3
- package/hook-form/hooks/useFormInputProps/useFormInputProps.d.ts +1 -1
- package/hook-form/hooks/useFormWizard/useFormWizard.js +1 -4
- package/hook-form/index.d.ts +1 -0
- package/hook-form/index.js +1 -0
- package/hook-form/react-hook-form-resolver/index.d.ts +1 -0
- package/hook-form/react-hook-form-resolver/index.js +1 -0
- package/hook-form/react-hook-form-resolver/resolver/index.d.ts +1 -0
- package/hook-form/react-hook-form-resolver/resolver/index.js +1 -0
- package/hook-form/react-hook-form-resolver/resolver/resolver.d.ts +40 -0
- package/hook-form/react-hook-form-resolver/resolver/resolver.js +69 -0
- package/hook-form/react-hook-form-resolver/utils/index.d.ts +1 -0
- package/hook-form/react-hook-form-resolver/utils/index.js +1 -0
- package/hook-form/react-hook-form-resolver/utils/validateFieldsNatively/index.d.ts +1 -0
- package/hook-form/react-hook-form-resolver/utils/validateFieldsNatively/index.js +1 -0
- package/hook-form/react-hook-form-resolver/utils/validateFieldsNatively/validateFieldsNatively.d.ts +5 -0
- package/hook-form/react-hook-form-resolver/utils/validateFieldsNatively/validateFieldsNatively.js +24 -0
- package/node/components/AddressAutocomplete/AddressAutocomplete.d.ts +2 -2
- package/node/components/AsyncAutocomplete/useLogic/useLogic.d.ts +2 -0
- package/node/components/AsyncAutocomplete/useLogic/useLogic.js +2 -1
- package/node/components/Autocomplete/Autocomplete.d.ts +8 -0
- package/node/components/Autocomplete/Autocomplete.js +7 -3
- package/node/components/CheckboxField/styles.d.ts +1 -0
- package/node/components/CheckboxField/styles.js +2 -2
- package/node/components/CodeField/styles.d.ts +1 -0
- package/node/components/DashboardLayout/Sidebar/Sidebar.js +1 -1
- package/node/components/DashboardLayout/Sidebar/styles.d.ts +6 -0
- package/node/components/DashboardLayout/Sidebar/styles.js +16 -9
- package/node/components/DatePicker/DatePicker.d.ts +8 -0
- package/node/components/DatePicker/DatePicker.js +2 -2
- package/node/components/DatePicker/styles.d.ts +1 -0
- package/node/components/DateRangePicker/DateRangePicker.js +3 -3
- package/node/components/DateRangePicker/styles.d.ts +1 -0
- package/node/components/EmailOrPhoneField/useLogic/useLogic.d.ts +1 -0
- package/node/components/FormHelperText/FormHelperText.d.ts +2 -1
- package/node/components/FormHelperText/FormHelperText.js +4 -1
- package/node/components/PageLayout/PageHeader/HeaderContent/styles.js +1 -1
- package/node/components/PageLayout/PageLayoutContainer/PageLayoutContainer.js +1 -1
- package/node/components/PageLayout/PageLayoutContainer/styles.d.ts +6 -0
- package/node/components/PageLayout/PageLayoutContainer/styles.js +9 -3
- package/node/components/Paper/Paper.d.ts +5 -1
- package/node/components/Paper/Paper.js +15 -3
- package/node/components/Paper/styles.d.ts +15 -0
- package/node/components/Paper/styles.js +12 -0
- package/node/components/SearchField/useLogic/useLogic.d.ts +1 -0
- package/node/components/Select/Select.d.ts +2 -2
- package/node/components/Select/Select.js +1 -1
- package/node/components/Select/styles.js +1 -1
- package/node/components/TextField/TextField.d.ts +5 -2
- package/node/components/TextField/TextField.js +9 -4
- package/node/components/TextField/constants.d.ts +3 -0
- package/node/components/TextField/constants.js +7 -0
- package/node/components/TextField/styles.d.ts +5 -0
- package/node/components/TextField/styles.js +19 -0
- package/node/components/TreeAutocomplete/OptionsModal/OptionsModal.js +2 -2
- package/node/components/TreeLikeAutocomplete/OptionsModal/OptionsModal.js +2 -2
- package/node/components/index.d.ts +1 -0
- package/node/components/index.js +4 -1
- package/node/components/theme/components/MuiAutocomplete.js +21 -3
- package/node/components/theme/components/MuiFormHelperText.js +1 -1
- package/node/hook-form/EditableText/EditingForm/useLogic/useLogic.js +1 -1
- package/node/hook-form/hooks/useForm/index.d.ts +1 -0
- package/node/hook-form/hooks/useForm/types.d.ts +23 -0
- package/node/hook-form/hooks/useForm/types.js +2 -0
- package/node/hook-form/hooks/useForm/useForm.d.ts +3 -31
- package/node/hook-form/hooks/useForm/useForm.js +5 -2
- package/node/hook-form/hooks/useFormFieldErrorProps/useFormFieldErrorProps.d.ts +1 -2
- package/node/hook-form/hooks/useFormFieldProps/useFormFieldProps.d.ts +9 -13
- package/node/hook-form/hooks/useFormInputProps/useFormInputProps.d.ts +1 -1
- package/node/hook-form/hooks/useFormWizard/useFormWizard.js +1 -4
- package/node/hook-form/index.d.ts +1 -0
- package/node/hook-form/index.js +3 -1
- package/node/hook-form/react-hook-form-resolver/index.d.ts +1 -0
- package/node/hook-form/react-hook-form-resolver/index.js +5 -0
- package/node/hook-form/react-hook-form-resolver/resolver/index.d.ts +1 -0
- package/node/{components/ScrollWrapper → hook-form/react-hook-form-resolver/resolver}/index.js +1 -1
- package/node/hook-form/react-hook-form-resolver/resolver/resolver.d.ts +40 -0
- package/node/hook-form/react-hook-form-resolver/resolver/resolver.js +73 -0
- package/node/hook-form/react-hook-form-resolver/utils/index.d.ts +1 -0
- package/node/hook-form/react-hook-form-resolver/utils/index.js +17 -0
- package/node/hook-form/react-hook-form-resolver/utils/validateFieldsNatively/index.d.ts +1 -0
- package/node/hook-form/react-hook-form-resolver/utils/validateFieldsNatively/index.js +17 -0
- package/node/hook-form/react-hook-form-resolver/utils/validateFieldsNatively/validateFieldsNatively.d.ts +5 -0
- package/node/hook-form/react-hook-form-resolver/utils/validateFieldsNatively/validateFieldsNatively.js +28 -0
- package/package.json +5 -3
- package/components/ScrollWrapper/ScrollWrapper.d.ts +0 -7
- package/components/ScrollWrapper/ScrollWrapper.js +0 -3
- package/components/ScrollWrapper/index.d.ts +0 -1
- package/components/ScrollWrapper/index.js +0 -1
- package/components/ScrollWrapper/styles.d.ts +0 -7
- package/components/ScrollWrapper/styles.js +0 -7
- package/node/components/ScrollWrapper/ScrollWrapper.d.ts +0 -7
- package/node/components/ScrollWrapper/ScrollWrapper.js +0 -7
- package/node/components/ScrollWrapper/index.d.ts +0 -1
- package/node/components/ScrollWrapper/styles.d.ts +0 -7
- package/node/components/ScrollWrapper/styles.js +0 -10
|
@@ -1,21 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MuiAutocomplete = void 0;
|
|
4
|
+
const material_1 = require("@mui/material");
|
|
4
5
|
const enums_1 = require("../../Autocomplete/enums");
|
|
5
6
|
exports.MuiAutocomplete = {
|
|
6
7
|
styleOverrides: {
|
|
8
|
+
root({ theme }) {
|
|
9
|
+
return {
|
|
10
|
+
[`&.${material_1.autocompleteClasses.hasPopupIcon}.${material_1.autocompleteClasses.hasClearIcon}`]: {
|
|
11
|
+
[`.${material_1.autocompleteClasses.inputRoot}`]: {
|
|
12
|
+
paddingRight: `${theme.spacing(14)}`,
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
},
|
|
7
17
|
inputRoot({ theme, ownerState: { size } }) {
|
|
8
18
|
return {
|
|
9
19
|
paddingTop: `${theme.spacing(1)} !important`,
|
|
10
20
|
paddingBottom: `${theme.spacing(1)} !important`,
|
|
11
|
-
paddingLeft: `${theme.spacing(
|
|
21
|
+
paddingLeft: `${theme.spacing(3)} !important`,
|
|
12
22
|
minHeight: size === enums_1.AutocompleteSizes.small ? '32px' : '40px',
|
|
13
23
|
};
|
|
14
24
|
},
|
|
15
|
-
input(
|
|
25
|
+
input() {
|
|
16
26
|
return {
|
|
17
27
|
padding: '0 !important',
|
|
18
|
-
paddingLeft: `${theme.spacing(1)} !important`,
|
|
19
28
|
};
|
|
20
29
|
},
|
|
21
30
|
popupIndicator({ theme }) {
|
|
@@ -31,6 +40,7 @@ exports.MuiAutocomplete = {
|
|
|
31
40
|
top: 'unset',
|
|
32
41
|
gap: theme.spacing(1),
|
|
33
42
|
color: theme.palette.grey[800],
|
|
43
|
+
marginRight: `${theme.spacing(1)} !important`,
|
|
34
44
|
};
|
|
35
45
|
},
|
|
36
46
|
paper({ theme }) {
|
|
@@ -62,5 +72,13 @@ exports.MuiAutocomplete = {
|
|
|
62
72
|
height: '64px',
|
|
63
73
|
};
|
|
64
74
|
},
|
|
75
|
+
tagSizeMedium({ theme }) {
|
|
76
|
+
return {
|
|
77
|
+
margin: `${theme.microSpacing(0, 1)}`,
|
|
78
|
+
':first-of-type': {
|
|
79
|
+
marginLeft: 0,
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
},
|
|
65
83
|
},
|
|
66
84
|
};
|
|
@@ -6,8 +6,8 @@ exports.MuiFormHelperText = {
|
|
|
6
6
|
root({ theme }) {
|
|
7
7
|
return {
|
|
8
8
|
display: 'flex',
|
|
9
|
-
minHeight: theme.typography.caption.lineHeight,
|
|
10
9
|
fontSize: theme.typography.caption.fontSize,
|
|
10
|
+
minHeight: theme.typography.caption.lineHeight,
|
|
11
11
|
margin: theme.spacing(1, 0, 0),
|
|
12
12
|
color: theme.palette.grey[600],
|
|
13
13
|
lineHeight: theme.typography.caption.lineHeight,
|
|
@@ -25,7 +25,7 @@ const useLogic = ({ initialValue, children, validate, onClose, onSubmit, }) => {
|
|
|
25
25
|
};
|
|
26
26
|
}
|
|
27
27
|
return {
|
|
28
|
-
values:
|
|
28
|
+
values: {},
|
|
29
29
|
errors: {
|
|
30
30
|
[constants_1.FIELD_NAME]: {
|
|
31
31
|
message: validationResult === null || validationResult === void 0 ? void 0 : validationResult.message,
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ObjectAsyncGuard, ObjectGuard } from '@astral/validations';
|
|
2
|
+
import type { UseFormProps as UseFormPropsRHForm, UseFormReturn } from 'react-hook-form';
|
|
3
|
+
import type { FieldValues } from '../../types';
|
|
4
|
+
export type UseFormProps<TFieldValues extends FieldValues = FieldValues, TContext = any> = UseFormPropsRHForm<TFieldValues, TContext> & {
|
|
5
|
+
/**
|
|
6
|
+
* Схема валидации из @astral/validations
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* const validationSchema = object<FormValues>({
|
|
11
|
+
* lastName: string(),
|
|
12
|
+
* name: string(),
|
|
13
|
+
* patronymic: optional(string()),
|
|
14
|
+
* phone: string(mobilePhone()),
|
|
15
|
+
* email: string(email()),
|
|
16
|
+
* });
|
|
17
|
+
*
|
|
18
|
+
* const form = useForm<FormValues>({ validationSchema });
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
validationSchema?: ObjectGuard<TFieldValues> | ObjectAsyncGuard<TFieldValues>;
|
|
22
|
+
};
|
|
23
|
+
export type { UseFormReturn };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import type { FieldValues } from '../../types';
|
|
2
|
+
import type { UseFormProps, UseFormReturn } from './types';
|
|
3
3
|
/**
|
|
4
4
|
* Custom hook to manage the entire form.
|
|
5
5
|
*
|
|
@@ -29,32 +29,4 @@ import { type FieldValues } from '../../types';
|
|
|
29
29
|
* }
|
|
30
30
|
* ```
|
|
31
31
|
*/
|
|
32
|
-
export declare const useForm: <TFieldValues extends FieldValues = FieldValues, TContext = any>({ mode, ...params }?:
|
|
33
|
-
mode: "all" | "onChange" | "onBlur" | "onSubmit" | "onTouched";
|
|
34
|
-
disabled: boolean;
|
|
35
|
-
reValidateMode: "onChange" | "onBlur" | "onSubmit";
|
|
36
|
-
defaultValues: ((payload?: unknown) => Promise<TFieldValues>) | import("react-hook-form").DefaultValues<TFieldValues>;
|
|
37
|
-
values: TFieldValues;
|
|
38
|
-
errors: import("react-hook-form").FieldErrors<TFieldValues>;
|
|
39
|
-
resetOptions: Partial<{
|
|
40
|
-
keepDirtyValues: boolean;
|
|
41
|
-
keepErrors: boolean;
|
|
42
|
-
keepDirty: boolean;
|
|
43
|
-
keepValues: boolean;
|
|
44
|
-
keepDefaultValues: boolean;
|
|
45
|
-
keepIsSubmitted: boolean;
|
|
46
|
-
keepIsSubmitSuccessful: boolean;
|
|
47
|
-
keepTouched: boolean;
|
|
48
|
-
keepIsValid: boolean;
|
|
49
|
-
keepSubmitCount: boolean;
|
|
50
|
-
}> | undefined;
|
|
51
|
-
resolver: import("react-hook-form").Resolver<TFieldValues, TContext>;
|
|
52
|
-
context: TContext;
|
|
53
|
-
shouldFocusError: boolean;
|
|
54
|
-
shouldUnregister: boolean;
|
|
55
|
-
shouldUseNativeValidation: boolean;
|
|
56
|
-
progressive: boolean;
|
|
57
|
-
criteriaMode: import("react-hook-form").CriteriaMode;
|
|
58
|
-
delayError: number;
|
|
59
|
-
}>) => UseFormReturn<TFieldValues, TContext>;
|
|
60
|
-
export type { UseFormProps, UseFormReturn };
|
|
32
|
+
export declare const useForm: <TFieldValues extends FieldValues = FieldValues, TContext = any>({ mode, validationSchema, resolver: propsResolver, ...params }?: UseFormProps<TFieldValues, TContext>) => UseFormReturn<TFieldValues, TContext>;
|
|
@@ -13,6 +13,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
14
|
exports.useForm = void 0;
|
|
15
15
|
const react_hook_form_1 = require("react-hook-form");
|
|
16
|
+
const react_hook_form_resolver_1 = require("../../react-hook-form-resolver");
|
|
16
17
|
/**
|
|
17
18
|
* Custom hook to manage the entire form.
|
|
18
19
|
*
|
|
@@ -43,7 +44,9 @@ const react_hook_form_1 = require("react-hook-form");
|
|
|
43
44
|
* ```
|
|
44
45
|
*/
|
|
45
46
|
const useForm = (_a = {}) => {
|
|
46
|
-
var { mode = 'onBlur' } = _a, params = __rest(_a, ["mode"]);
|
|
47
|
-
|
|
47
|
+
var { mode = 'onBlur', validationSchema, resolver: propsResolver } = _a, params = __rest(_a, ["mode", "validationSchema", "resolver"]);
|
|
48
|
+
const resolver = propsResolver !== null && propsResolver !== void 0 ? propsResolver : (validationSchema && (0, react_hook_form_resolver_1.resolver)(validationSchema));
|
|
49
|
+
return (0, react_hook_form_1.useForm)(Object.assign(Object.assign({}, params), { resolver,
|
|
50
|
+
mode }));
|
|
48
51
|
};
|
|
49
52
|
exports.useForm = useForm;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { type ControllerFieldState } from 'react-hook-form';
|
|
2
2
|
import { type TextFieldProps } from '../../../components/TextField';
|
|
3
|
-
type UseFormFieldErrorPropsReturn = Pick<TextFieldProps, 'error' | 'helperText'>;
|
|
3
|
+
export type UseFormFieldErrorPropsReturn = Pick<TextFieldProps, 'error' | 'helperText'>;
|
|
4
4
|
/**
|
|
5
5
|
* хук предназначен для предоставления пропсов для отображения ошибки field
|
|
6
6
|
*/
|
|
7
7
|
export declare const useFormFieldErrorProps: (fieldState: Pick<ControllerFieldState, 'error'>) => UseFormFieldErrorPropsReturn;
|
|
8
|
-
export {};
|
|
@@ -1,18 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
import { type RefObject } from 'react';
|
|
2
|
+
import { type ControllerRenderProps, type Path } from 'react-hook-form';
|
|
2
3
|
import { type FieldValues, type WithFormFieldProps } from '../../types';
|
|
4
|
+
import { type UseFormFieldErrorPropsReturn } from '../useFormFieldErrorProps';
|
|
5
|
+
import { type UseFormInputReturn } from '../useFormInputProps';
|
|
3
6
|
export type UseFormFieldProps<TFormFieldProps extends object, TFieldValues extends FieldValues> = WithFormFieldProps<TFormFieldProps, TFieldValues>;
|
|
7
|
+
type UseFormFieldPropsReturn<TFormFieldProps extends object, TFieldValues extends FieldValues> = ControllerRenderProps<TFieldValues, Path<TFieldValues>> & UseFormInputReturn<UseFormFieldProps<TFormFieldProps, TFieldValues>, TFieldValues> & UseFormFieldErrorPropsReturn & {
|
|
8
|
+
inputRef: RefObject<HTMLInputElement>;
|
|
9
|
+
};
|
|
4
10
|
/**
|
|
5
11
|
* хук предназначен для получения пропсов при инициализации нового поля в RHF
|
|
6
12
|
*/
|
|
7
|
-
export declare const useFormFieldProps: <TFormFieldProps extends object, TFieldValues extends FieldValues>(props: UseFormFieldProps<TFormFieldProps, TFieldValues>) =>
|
|
8
|
-
|
|
9
|
-
onBlur: import("react-hook-form").Noop;
|
|
10
|
-
value: import("react-hook-form").PathValue<TFieldValues, import("react-hook-form").Path<TFieldValues>>;
|
|
11
|
-
disabled?: boolean | undefined;
|
|
12
|
-
name: import("react-hook-form").Path<TFieldValues>;
|
|
13
|
-
ref: import("react-hook-form").RefCallBack;
|
|
14
|
-
} & ("disabled" | Exclude<Exclude<Exclude<keyof TFormFieldProps, "error" | "name">, "error" | "name">, "defaultValue" | "name" | "control" | "shouldUnregister"> extends infer T extends keyof (Omit<UseFormFieldProps<TFormFieldProps, TFieldValues>, "error" | "name"> & Omit<import("react-hook-form").UseControllerProps<TFieldValues>, "rules">) ? { [P in T]: (Omit<UseFormFieldProps<TFormFieldProps, TFieldValues>, "error" | "name"> & Omit<import("react-hook-form").UseControllerProps<TFieldValues>, "rules">)[P]; } : never) & {
|
|
15
|
-
inputRef: import("react").RefObject<any>;
|
|
16
|
-
error?: boolean | undefined;
|
|
17
|
-
helperText?: import("react").ReactNode;
|
|
18
|
-
};
|
|
13
|
+
export declare const useFormFieldProps: <TFormFieldProps extends object, TFieldValues extends FieldValues>(props: UseFormFieldProps<TFormFieldProps, TFieldValues>) => UseFormFieldPropsReturn<TFormFieldProps, TFieldValues>;
|
|
14
|
+
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type FieldValues } from 'react-hook-form';
|
|
2
2
|
import { type WithFormFieldProps } from '../../types';
|
|
3
3
|
type UseFormInputProps<TFormFieldProps extends object, TFieldValues extends FieldValues> = WithFormFieldProps<TFormFieldProps, TFieldValues>;
|
|
4
|
-
type UseFormInputReturn<TFormFieldProps extends object, TFieldValues extends FieldValues> = Omit<UseFormInputProps<TFormFieldProps, TFieldValues>, 'control' | 'defaultValue' | 'name' | 'shouldUnregister'>;
|
|
4
|
+
export type UseFormInputReturn<TFormFieldProps extends object, TFieldValues extends FieldValues> = Omit<UseFormInputProps<TFormFieldProps, TFieldValues>, 'control' | 'defaultValue' | 'name' | 'shouldUnregister'>;
|
|
5
5
|
/**
|
|
6
6
|
* хук предназначен для получения props input'а без системных props RHF, таких как: control.
|
|
7
7
|
* Это необходимо для того, чтобы лишние props не попадали в DOM-дерево
|
|
@@ -12,7 +12,6 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
12
12
|
};
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
14
|
exports.useFormWizard = void 0;
|
|
15
|
-
const validations_react_hook_form_resolver_1 = require("@astral/validations-react-hook-form-resolver");
|
|
16
15
|
const react_1 = require("react");
|
|
17
16
|
const ConfigProvider_1 = require("../../../components/ConfigProvider");
|
|
18
17
|
const useForm_1 = require("../useForm");
|
|
@@ -50,9 +49,7 @@ const useFormWizard = ({ initialStepId, defaultValues, isDisabled, steps, autoSa
|
|
|
50
49
|
const form = (0, useForm_1.useForm)({
|
|
51
50
|
defaultValues,
|
|
52
51
|
disabled: isDisabled,
|
|
53
|
-
|
|
54
|
-
? (0, validations_react_hook_form_resolver_1.resolver)(validationSchemaForStep)
|
|
55
|
-
: undefined,
|
|
52
|
+
validationSchema: validationSchemaForStep,
|
|
56
53
|
});
|
|
57
54
|
const indexStep = (0, react_1.useMemo)(() => currentStepId
|
|
58
55
|
? visibleSteps.findIndex((step) => Object.is(step.id, currentStepId))
|
|
@@ -28,4 +28,5 @@ export { FormTreeLikeAutocomplete, type FormTreeLikeAutocompleteProps, type Form
|
|
|
28
28
|
export { FormWizard, type FormWizardProps, type WizardStep, type WizardStepId, } from './FormWizard';
|
|
29
29
|
export { FormPageLayout, type FormPageLayoutProps, FormWizardPageLayout, type FormWizardPageLayoutProps, formPageContentClassnames, formPageLayoutClassnames, } from './formLayouts';
|
|
30
30
|
export { type UseFormProps, type UseFormReturn, type UseFormWizardParams, type UseFormWizardResult, useForm, useFormContext, useFormFieldErrorProps, useFormFieldProps, useFormState, useFormWatchFields, useFormWizard, } from './hooks';
|
|
31
|
+
export { resolver as formValidationResolver } from './react-hook-form-resolver';
|
|
31
32
|
export * from './types';
|
package/node/hook-form/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.useFormWizard = exports.useFormWatchFields = exports.useFormState = exports.useFormFieldProps = exports.useFormFieldErrorProps = exports.useFormContext = exports.useForm = exports.formPageLayoutClassnames = exports.formPageContentClassnames = exports.FormWizardPageLayout = exports.FormPageLayout = exports.FormWizard = exports.FormTreeLikeAutocomplete = exports.FormTreeAutocomplete = exports.FormToggleButtonGroup = exports.FormProvider = exports.FormPreviewFileUploader = exports.FormNumberField = exports.FormDateRangePicker = exports.FormFileUploader = exports.FormEmailOrPhoneField = exports.FormEmailField = exports.FormAsyncAutocomplete = exports.FormAddressAutocomplete = exports.EditableText = exports.useFormWatch = exports.useFormFieldArray = exports.useFormController = exports.FormController = void 0;
|
|
17
|
+
exports.formValidationResolver = exports.useFormWizard = exports.useFormWatchFields = exports.useFormState = exports.useFormFieldProps = exports.useFormFieldErrorProps = exports.useFormContext = exports.useForm = exports.formPageLayoutClassnames = exports.formPageContentClassnames = exports.FormWizardPageLayout = exports.FormPageLayout = exports.FormWizard = exports.FormTreeLikeAutocomplete = exports.FormTreeAutocomplete = exports.FormToggleButtonGroup = exports.FormProvider = exports.FormPreviewFileUploader = exports.FormNumberField = exports.FormDateRangePicker = exports.FormFileUploader = exports.FormEmailOrPhoneField = exports.FormEmailField = exports.FormAsyncAutocomplete = exports.FormAddressAutocomplete = exports.EditableText = exports.useFormWatch = exports.useFormFieldArray = exports.useFormController = exports.FormController = void 0;
|
|
18
18
|
var react_hook_form_1 = require("react-hook-form");
|
|
19
19
|
Object.defineProperty(exports, "FormController", { enumerable: true, get: function () { return react_hook_form_1.Controller; } });
|
|
20
20
|
Object.defineProperty(exports, "useFormController", { enumerable: true, get: function () { return react_hook_form_1.useController; } });
|
|
@@ -75,4 +75,6 @@ Object.defineProperty(exports, "useFormFieldProps", { enumerable: true, get: fun
|
|
|
75
75
|
Object.defineProperty(exports, "useFormState", { enumerable: true, get: function () { return hooks_1.useFormState; } });
|
|
76
76
|
Object.defineProperty(exports, "useFormWatchFields", { enumerable: true, get: function () { return hooks_1.useFormWatchFields; } });
|
|
77
77
|
Object.defineProperty(exports, "useFormWizard", { enumerable: true, get: function () { return hooks_1.useFormWizard; } });
|
|
78
|
+
var react_hook_form_resolver_1 = require("./react-hook-form-resolver");
|
|
79
|
+
Object.defineProperty(exports, "formValidationResolver", { enumerable: true, get: function () { return react_hook_form_resolver_1.resolver; } });
|
|
78
80
|
__exportStar(require("./types"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { resolver } from './resolver';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './resolver';
|
package/node/{components/ScrollWrapper → hook-form/react-hook-form-resolver/resolver}/index.js
RENAMED
|
@@ -14,4 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./
|
|
17
|
+
__exportStar(require("./resolver"), exports);
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type ObjectAsyncGuard, type ObjectGuard } from '@astral/validations';
|
|
2
|
+
import { type FieldValues, type Resolver } from 'react-hook-form';
|
|
3
|
+
/**
|
|
4
|
+
* Позволяет выполнять object или objectAsync валидацию для формы react-hook-form
|
|
5
|
+
* @param validateBySchema
|
|
6
|
+
* @example
|
|
7
|
+
* ```tsx
|
|
8
|
+
* type Values = { info: { name: string } };
|
|
9
|
+
*
|
|
10
|
+
* const validationSchema = object<Values>({
|
|
11
|
+
* info: object<Values['info']>({
|
|
12
|
+
* name: string(),
|
|
13
|
+
* }),
|
|
14
|
+
* });
|
|
15
|
+
*
|
|
16
|
+
* const TestForm = () => {
|
|
17
|
+
* const { register, handleSubmit, formState } = useForm<Values>({
|
|
18
|
+
* resolver: resolver<Values>(validationSchema),
|
|
19
|
+
* });
|
|
20
|
+
*
|
|
21
|
+
* return (
|
|
22
|
+
* <form onSubmit={handleSubmit(() => {})}>
|
|
23
|
+
* <input {...register('info.name')} />
|
|
24
|
+
* {formState.errors.info?.name && (
|
|
25
|
+
* <>
|
|
26
|
+
* <p>{formState.errors.info.name.message}</p>
|
|
27
|
+
* <p>{formState.errors.info.name.type}</p>
|
|
28
|
+
* </>
|
|
29
|
+
* )}
|
|
30
|
+
* <button type="submit">submit</button>
|
|
31
|
+
* </form>
|
|
32
|
+
* );
|
|
33
|
+
* };
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export declare const resolver: <TFieldValues extends FieldValues = FieldValues>(validateBySchema: import("@astral/validations/core").IGuard<{}, {
|
|
37
|
+
isPartial?: boolean | undefined;
|
|
38
|
+
}> | import("@astral/validations/core").IAsyncGuard<{}, {
|
|
39
|
+
isPartial?: boolean | undefined;
|
|
40
|
+
}>) => Resolver<TFieldValues>;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.resolver = void 0;
|
|
13
|
+
const validations_1 = require("@astral/validations");
|
|
14
|
+
const react_hook_form_1 = require("react-hook-form");
|
|
15
|
+
const utils_1 = require("../utils");
|
|
16
|
+
/**
|
|
17
|
+
* Позволяет выполнять object или objectAsync валидацию для формы react-hook-form
|
|
18
|
+
* @param validateBySchema
|
|
19
|
+
* @example
|
|
20
|
+
* ```tsx
|
|
21
|
+
* type Values = { info: { name: string } };
|
|
22
|
+
*
|
|
23
|
+
* const validationSchema = object<Values>({
|
|
24
|
+
* info: object<Values['info']>({
|
|
25
|
+
* name: string(),
|
|
26
|
+
* }),
|
|
27
|
+
* });
|
|
28
|
+
*
|
|
29
|
+
* const TestForm = () => {
|
|
30
|
+
* const { register, handleSubmit, formState } = useForm<Values>({
|
|
31
|
+
* resolver: resolver<Values>(validationSchema),
|
|
32
|
+
* });
|
|
33
|
+
*
|
|
34
|
+
* return (
|
|
35
|
+
* <form onSubmit={handleSubmit(() => {})}>
|
|
36
|
+
* <input {...register('info.name')} />
|
|
37
|
+
* {formState.errors.info?.name && (
|
|
38
|
+
* <>
|
|
39
|
+
* <p>{formState.errors.info.name.message}</p>
|
|
40
|
+
* <p>{formState.errors.info.name.type}</p>
|
|
41
|
+
* </>
|
|
42
|
+
* )}
|
|
43
|
+
* <button type="submit">submit</button>
|
|
44
|
+
* </form>
|
|
45
|
+
* );
|
|
46
|
+
* };
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
const resolver = (validateBySchema) => (values, _, options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
50
|
+
const validationResult = yield validateBySchema(values);
|
|
51
|
+
if (validationResult) {
|
|
52
|
+
const resolverError = (0, validations_1.toPlainError)(validationResult, (err, { path }) => {
|
|
53
|
+
var _a;
|
|
54
|
+
return {
|
|
55
|
+
message: err.message,
|
|
56
|
+
type: err.cause.code,
|
|
57
|
+
types: err.cause.errors
|
|
58
|
+
? Object.fromEntries(err.cause.errors.map((error) => [
|
|
59
|
+
error.cause.code,
|
|
60
|
+
error.message,
|
|
61
|
+
]))
|
|
62
|
+
: undefined,
|
|
63
|
+
ref: (_a = (0, react_hook_form_1.get)(options.fields, path)) === null || _a === void 0 ? void 0 : _a.ref,
|
|
64
|
+
};
|
|
65
|
+
});
|
|
66
|
+
return { values: {}, errors: resolverError };
|
|
67
|
+
}
|
|
68
|
+
if (options.shouldUseNativeValidation) {
|
|
69
|
+
(0, utils_1.validateFieldsNatively)({}, options);
|
|
70
|
+
}
|
|
71
|
+
return { errors: {}, values };
|
|
72
|
+
});
|
|
73
|
+
exports.resolver = resolver;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './validateFieldsNatively';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./validateFieldsNatively"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './validateFieldsNatively';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./validateFieldsNatively"), exports);
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type FieldErrors, type FieldValues, type ResolverOptions } from 'react-hook-form';
|
|
2
|
+
/**
|
|
3
|
+
* Native validation (web only)
|
|
4
|
+
*/
|
|
5
|
+
export declare const validateFieldsNatively: <TFieldValues extends FieldValues>(errors: FieldErrors, options: ResolverOptions<TFieldValues>) => void;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateFieldsNatively = void 0;
|
|
4
|
+
// Скопировано из https://github.com/react-hook-form/resolvers/blob/master/src/validateFieldsNatively.ts
|
|
5
|
+
// Причина копирования: в @hookform/resolvers react-hook-form указан как peerDep с крышкой. Из-за этого происходит рассинхрон с @astral/form
|
|
6
|
+
const react_hook_form_1 = require("react-hook-form");
|
|
7
|
+
const setCustomValidity = (ref, fieldPath, errors) => {
|
|
8
|
+
if (ref && 'reportValidity' in ref) {
|
|
9
|
+
const error = (0, react_hook_form_1.get)(errors, fieldPath);
|
|
10
|
+
ref.setCustomValidity((error === null || error === void 0 ? void 0 : error.message) || '');
|
|
11
|
+
ref.reportValidity();
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Native validation (web only)
|
|
16
|
+
*/
|
|
17
|
+
const validateFieldsNatively = (errors, options) => {
|
|
18
|
+
for (const fieldPath in options.fields) {
|
|
19
|
+
const field = options.fields[fieldPath];
|
|
20
|
+
if ((field === null || field === void 0 ? void 0 : field.ref) && 'reportValidity' in field.ref) {
|
|
21
|
+
setCustomValidity(field.ref, fieldPath, errors);
|
|
22
|
+
}
|
|
23
|
+
else if (field.refs) {
|
|
24
|
+
field.refs.forEach((ref) => setCustomValidity(ref, fieldPath, errors));
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
exports.validateFieldsNatively = validateFieldsNatively;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@astral/ui",
|
|
3
|
-
"version": "4.0.0-alpha.
|
|
3
|
+
"version": "4.0.0-alpha.36",
|
|
4
4
|
"browser": "./index.js",
|
|
5
5
|
"main": "./node/index.js",
|
|
6
6
|
"dependencies": {
|
|
@@ -22,14 +22,16 @@
|
|
|
22
22
|
"react-virtuoso": "4.6.3",
|
|
23
23
|
"remeda": "^1.61.0",
|
|
24
24
|
"react-pdf": "9.2.1",
|
|
25
|
-
"
|
|
26
|
-
"react-hook-form": "7.49.2"
|
|
25
|
+
"react-hook-form": "^7.66.1"
|
|
27
26
|
},
|
|
28
27
|
"peerDependencies": {
|
|
29
28
|
"react": "^17.0.0 || ^18.0.0",
|
|
30
29
|
"react-dom": "^17.0.0 || ^18.0.0",
|
|
31
30
|
"@types/react": "^17.0.0 || ^18.0.0"
|
|
32
31
|
},
|
|
32
|
+
"optionalDependencies": {
|
|
33
|
+
"@astral/validations": "^4.24.0"
|
|
34
|
+
},
|
|
33
35
|
"overrides": {
|
|
34
36
|
"react-virtuoso": {
|
|
35
37
|
"react": "< 19.0.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './ScrollWrapper';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './ScrollWrapper';
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
export declare const Wrapper: import("@emotion/styled").StyledComponent<{
|
|
3
|
-
theme?: import("@emotion/react").Theme | undefined;
|
|
4
|
-
as?: import("react").ElementType<any> | undefined;
|
|
5
|
-
} & {
|
|
6
|
-
$shape: 'small' | 'medium' | 'large';
|
|
7
|
-
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ScrollWrapper = void 0;
|
|
4
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
const styles_1 = require("./styles");
|
|
6
|
-
const ScrollWrapper = ({ children, shape = 'medium', }) => (0, jsx_runtime_1.jsx)(styles_1.Wrapper, { "$shape": shape, children: children });
|
|
7
|
-
exports.ScrollWrapper = ScrollWrapper;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './ScrollWrapper';
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
export declare const Wrapper: import("@emotion/styled").StyledComponent<{
|
|
3
|
-
theme?: import("@emotion/react").Theme | undefined;
|
|
4
|
-
as?: import("react").ElementType<any> | undefined;
|
|
5
|
-
} & {
|
|
6
|
-
$shape: 'small' | 'medium' | 'large';
|
|
7
|
-
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Wrapper = void 0;
|
|
4
|
-
const styles_1 = require("../styles");
|
|
5
|
-
exports.Wrapper = styles_1.styled.div `
|
|
6
|
-
overflow: hidden;
|
|
7
|
-
|
|
8
|
-
border: 1px solid ${({ theme }) => theme.palette.grey[300]};
|
|
9
|
-
border-radius: ${({ theme, $shape }) => theme.shape[$shape]};
|
|
10
|
-
`;
|