@astral/ui 4.25.1 → 4.26.0
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/BottomDrawer/BottomDrawer.d.ts +6 -2
- package/components/BottomDrawer/BottomDrawer.js +2 -2
- package/components/DashboardSidebarPopover/styles.d.ts +1 -0
- package/components/Dialog/Dialog.d.ts +6 -2
- package/components/Dialog/Dialog.js +3 -3
- package/components/DialogTitle/DialogTitle.d.ts +6 -1
- package/components/DialogTitle/DialogTitle.js +2 -2
- package/components/PageHeader/HeaderContent/HeaderContent.d.ts +2 -2
- package/components/PageHeader/HeaderContent/HeaderContent.js +3 -3
- package/components/PageHeader/HeaderContent/styles.d.ts +4 -0
- package/components/PageHeader/HeaderContent/styles.js +4 -0
- package/components/PageHeader/PageHeader.js +2 -2
- package/components/PageHeader/types.d.ts +6 -2
- package/components/RadioGroup/types.d.ts +0 -3
- package/components/SideDialogTitle/styles.d.ts +2 -0
- package/components/Tree/types.d.ts +0 -3
- package/components/TreeLikeAutocomplete/types.d.ts +0 -3
- package/hook-form/FormFilters/FormFilters.d.ts +5 -0
- package/hook-form/FormFilters/FormFilters.js +20 -0
- package/hook-form/FormFilters/FormFiltersDialog/FormFiltersDialog.d.ts +5 -0
- package/hook-form/FormFilters/FormFiltersDialog/FormFiltersDialog.js +15 -0
- package/hook-form/FormFilters/FormFiltersDialog/index.d.ts +1 -0
- package/hook-form/FormFilters/FormFiltersDialog/index.js +1 -0
- package/hook-form/FormFilters/FormFiltersDialog/styles.d.ts +29 -0
- package/hook-form/FormFilters/FormFiltersDialog/styles.js +33 -0
- package/hook-form/FormFilters/FormFiltersDialog/types.d.ts +20 -0
- package/hook-form/FormFilters/FormFiltersDialog/types.js +1 -0
- package/hook-form/FormFilters/FormFiltersDialog/useLogic/index.d.ts +1 -0
- package/hook-form/FormFilters/FormFiltersDialog/useLogic/index.js +1 -0
- package/hook-form/FormFilters/FormFiltersDialog/useLogic/useLogic.d.ts +18 -0
- package/hook-form/FormFilters/FormFiltersDialog/useLogic/useLogic.js +38 -0
- package/hook-form/FormFilters/FormFiltersSkeleton/FormFiltersSkeleton.d.ts +1 -0
- package/hook-form/FormFilters/FormFiltersSkeleton/FormFiltersSkeleton.js +6 -0
- package/hook-form/FormFilters/FormFiltersSkeleton/index.d.ts +1 -0
- package/hook-form/FormFilters/FormFiltersSkeleton/index.js +1 -0
- package/hook-form/FormFilters/FormFiltersSkeleton/styles.d.ts +5 -0
- package/hook-form/FormFilters/FormFiltersSkeleton/styles.js +24 -0
- package/hook-form/FormFilters/constants.d.ts +10 -0
- package/hook-form/FormFilters/constants.js +11 -0
- package/hook-form/FormFilters/index.d.ts +3 -0
- package/hook-form/FormFilters/index.js +2 -0
- package/hook-form/FormFilters/public.d.ts +3 -0
- package/hook-form/FormFilters/public.js +2 -0
- package/hook-form/FormFilters/styles.d.ts +29 -0
- package/hook-form/FormFilters/styles.js +94 -0
- package/hook-form/FormFilters/types.d.ts +92 -0
- package/hook-form/FormFilters/types.js +1 -0
- package/hook-form/FormFilters/useLogic/hooks/index.d.ts +1 -0
- package/hook-form/FormFilters/useLogic/hooks/index.js +1 -0
- package/hook-form/FormFilters/useLogic/hooks/useFirstMountAfterLoading.d.ts +1 -0
- package/hook-form/FormFilters/useLogic/hooks/useFirstMountAfterLoading.js +9 -0
- package/hook-form/FormFilters/useLogic/index.d.ts +1 -0
- package/hook-form/FormFilters/useLogic/index.js +1 -0
- package/hook-form/FormFilters/useLogic/useLogic.d.ts +18 -0
- package/hook-form/FormFilters/useLogic/useLogic.js +120 -0
- package/hook-form/FormFiltersModalGroup/FormFiltersModalGroup.d.ts +10 -0
- package/hook-form/FormFiltersModalGroup/FormFiltersModalGroup.js +13 -0
- package/hook-form/FormFiltersModalGroup/index.d.ts +2 -0
- package/hook-form/FormFiltersModalGroup/index.js +1 -0
- package/hook-form/FormFiltersModalGroup/public.d.ts +2 -0
- package/hook-form/FormFiltersModalGroup/public.js +1 -0
- package/hook-form/FormFiltersModalGroup/styles.d.ts +4 -0
- package/hook-form/FormFiltersModalGroup/styles.js +23 -0
- package/hook-form/FormFiltersModalGroup/types.d.ts +9 -0
- package/hook-form/FormFiltersModalGroup/types.js +1 -0
- package/hook-form/FormFiltersSearchField/FormFiltersSearchField.d.ts +9 -0
- package/hook-form/FormFiltersSearchField/FormFiltersSearchField.js +17 -0
- package/hook-form/FormFiltersSearchField/constants.d.ts +1 -0
- package/hook-form/FormFiltersSearchField/constants.js +1 -0
- package/hook-form/FormFiltersSearchField/index.d.ts +1 -0
- package/hook-form/FormFiltersSearchField/index.js +1 -0
- package/hook-form/FormFiltersSearchField/public.d.ts +1 -0
- package/hook-form/FormFiltersSearchField/public.js +1 -0
- package/hook-form/FormFiltersSearchField/styles.d.ts +7 -0
- package/hook-form/FormFiltersSearchField/styles.js +8 -0
- package/hook-form/FormPageLayoutBase/useLogic/useLogic.d.ts +1 -0
- package/hook-form/FormSearchField/FormSearchField.d.ts +5 -0
- package/hook-form/FormSearchField/FormSearchField.js +15 -0
- package/hook-form/FormSearchField/index.d.ts +1 -0
- package/hook-form/FormSearchField/index.js +1 -0
- package/hook-form/FormSearchField/public.d.ts +1 -0
- package/hook-form/FormSearchField/public.js +1 -0
- package/node/components/BottomDrawer/BottomDrawer.d.ts +6 -2
- package/node/components/BottomDrawer/BottomDrawer.js +2 -2
- package/node/components/DashboardSidebarPopover/styles.d.ts +1 -0
- package/node/components/Dialog/Dialog.d.ts +6 -2
- package/node/components/Dialog/Dialog.js +3 -3
- package/node/components/DialogTitle/DialogTitle.d.ts +6 -1
- package/node/components/DialogTitle/DialogTitle.js +2 -2
- package/node/components/PageHeader/HeaderContent/HeaderContent.d.ts +2 -2
- package/node/components/PageHeader/HeaderContent/HeaderContent.js +2 -2
- package/node/components/PageHeader/HeaderContent/styles.d.ts +4 -0
- package/node/components/PageHeader/HeaderContent/styles.js +5 -1
- package/node/components/PageHeader/PageHeader.js +2 -2
- package/node/components/PageHeader/types.d.ts +6 -2
- package/node/components/RadioGroup/types.d.ts +0 -3
- package/node/components/SideDialogTitle/styles.d.ts +2 -0
- package/node/components/Tree/types.d.ts +0 -3
- package/node/components/TreeLikeAutocomplete/types.d.ts +0 -3
- package/node/hook-form/FormFilters/FormFilters.d.ts +5 -0
- package/node/hook-form/FormFilters/FormFilters.js +24 -0
- package/node/hook-form/FormFilters/FormFiltersDialog/FormFiltersDialog.d.ts +5 -0
- package/node/hook-form/FormFilters/FormFiltersDialog/FormFiltersDialog.js +19 -0
- package/node/hook-form/FormFilters/FormFiltersDialog/index.d.ts +1 -0
- package/node/hook-form/FormFilters/FormFiltersDialog/index.js +5 -0
- package/node/hook-form/FormFilters/FormFiltersDialog/styles.d.ts +29 -0
- package/node/hook-form/FormFilters/FormFiltersDialog/styles.js +36 -0
- package/node/hook-form/FormFilters/FormFiltersDialog/types.d.ts +20 -0
- package/node/hook-form/FormFilters/FormFiltersDialog/types.js +2 -0
- package/node/hook-form/FormFilters/FormFiltersDialog/useLogic/index.d.ts +1 -0
- package/node/hook-form/FormFilters/FormFiltersDialog/useLogic/index.js +17 -0
- package/node/hook-form/FormFilters/FormFiltersDialog/useLogic/useLogic.d.ts +18 -0
- package/node/hook-form/FormFilters/FormFiltersDialog/useLogic/useLogic.js +42 -0
- package/node/hook-form/FormFilters/FormFiltersSkeleton/FormFiltersSkeleton.d.ts +1 -0
- package/node/hook-form/FormFilters/FormFiltersSkeleton/FormFiltersSkeleton.js +10 -0
- package/node/hook-form/FormFilters/FormFiltersSkeleton/index.d.ts +1 -0
- package/node/hook-form/FormFilters/FormFiltersSkeleton/index.js +5 -0
- package/node/hook-form/FormFilters/FormFiltersSkeleton/styles.d.ts +5 -0
- package/node/hook-form/FormFilters/FormFiltersSkeleton/styles.js +27 -0
- package/node/hook-form/FormFilters/constants.d.ts +10 -0
- package/node/hook-form/FormFilters/constants.js +14 -0
- package/node/hook-form/FormFilters/index.d.ts +3 -0
- package/node/hook-form/FormFilters/index.js +7 -0
- package/node/hook-form/FormFilters/public.d.ts +3 -0
- package/node/hook-form/FormFilters/public.js +7 -0
- package/node/hook-form/FormFilters/styles.d.ts +29 -0
- package/node/hook-form/FormFilters/styles.js +97 -0
- package/node/hook-form/FormFilters/types.d.ts +92 -0
- package/node/hook-form/FormFilters/types.js +2 -0
- package/node/hook-form/FormFilters/useLogic/hooks/index.d.ts +1 -0
- package/node/hook-form/FormFilters/useLogic/hooks/index.js +5 -0
- package/node/hook-form/FormFilters/useLogic/hooks/useFirstMountAfterLoading.d.ts +1 -0
- package/node/hook-form/FormFilters/useLogic/hooks/useFirstMountAfterLoading.js +13 -0
- package/node/hook-form/FormFilters/useLogic/index.d.ts +1 -0
- package/node/hook-form/FormFilters/useLogic/index.js +17 -0
- package/node/hook-form/FormFilters/useLogic/useLogic.d.ts +18 -0
- package/node/hook-form/FormFilters/useLogic/useLogic.js +124 -0
- package/node/hook-form/FormFiltersModalGroup/FormFiltersModalGroup.d.ts +10 -0
- package/node/hook-form/FormFiltersModalGroup/FormFiltersModalGroup.js +17 -0
- package/node/hook-form/FormFiltersModalGroup/index.d.ts +2 -0
- package/node/hook-form/FormFiltersModalGroup/index.js +5 -0
- package/node/hook-form/FormFiltersModalGroup/public.d.ts +2 -0
- package/node/hook-form/FormFiltersModalGroup/public.js +5 -0
- package/node/hook-form/FormFiltersModalGroup/styles.d.ts +4 -0
- package/node/hook-form/FormFiltersModalGroup/styles.js +26 -0
- package/node/hook-form/FormFiltersModalGroup/types.d.ts +9 -0
- package/node/hook-form/FormFiltersModalGroup/types.js +2 -0
- package/node/hook-form/FormFiltersSearchField/FormFiltersSearchField.d.ts +9 -0
- package/node/hook-form/FormFiltersSearchField/FormFiltersSearchField.js +20 -0
- package/node/hook-form/FormFiltersSearchField/constants.d.ts +1 -0
- package/node/hook-form/FormFiltersSearchField/constants.js +4 -0
- package/node/hook-form/FormFiltersSearchField/index.d.ts +1 -0
- package/node/hook-form/FormFiltersSearchField/index.js +5 -0
- package/node/hook-form/FormFiltersSearchField/public.d.ts +1 -0
- package/node/hook-form/FormFiltersSearchField/public.js +5 -0
- package/node/hook-form/FormFiltersSearchField/styles.d.ts +7 -0
- package/node/hook-form/FormFiltersSearchField/styles.js +11 -0
- package/node/hook-form/FormPageLayoutBase/useLogic/useLogic.d.ts +1 -0
- package/node/hook-form/FormSearchField/FormSearchField.d.ts +5 -0
- package/node/hook-form/FormSearchField/FormSearchField.js +18 -0
- package/node/hook-form/FormSearchField/index.d.ts +1 -0
- package/node/hook-form/FormSearchField/index.js +5 -0
- package/node/hook-form/FormSearchField/public.d.ts +1 -0
- package/node/hook-form/FormSearchField/public.js +5 -0
- package/package.json +1 -1
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StyledCounter = exports.StyledBadge = exports.MainFiltersWrapper = exports.AllFiltersButtonWrapper = exports.Wrapper = void 0;
|
|
4
|
+
const Badge_1 = require("@mui/material/Badge");
|
|
5
|
+
const FormLabel_1 = require("@mui/material/FormLabel");
|
|
6
|
+
const InputBase_1 = require("@mui/material/InputBase");
|
|
7
|
+
const Badge_2 = require("../../components/Badge");
|
|
8
|
+
const Counter_1 = require("../../components/Counter");
|
|
9
|
+
const styled_1 = require("../../components/styled");
|
|
10
|
+
const constants_1 = require("./constants");
|
|
11
|
+
exports.Wrapper = styled_1.styled.div `
|
|
12
|
+
display: flex;
|
|
13
|
+
gap: ${({ theme }) => theme.spacing(2)};
|
|
14
|
+
justify-content: space-between;
|
|
15
|
+
|
|
16
|
+
width: 100%;
|
|
17
|
+
margin-top: ${({ theme }) => theme.spacing(4)};
|
|
18
|
+
|
|
19
|
+
.${FormLabel_1.formLabelClasses.root} {
|
|
20
|
+
display: none;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
${({ theme }) => theme.breakpoints.down('sm')} {
|
|
24
|
+
margin-top: 0;
|
|
25
|
+
padding: ${({ theme }) => theme.spacing(1, 4, 5, 4)};
|
|
26
|
+
|
|
27
|
+
font-size: 0;
|
|
28
|
+
|
|
29
|
+
.${InputBase_1.inputBaseClasses.input} {
|
|
30
|
+
padding: ${({ theme }) => theme.spacing(2, 3)};
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.${constants_1.formFiltersClassnames.submitButton} {
|
|
34
|
+
display: none;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
`;
|
|
38
|
+
exports.AllFiltersButtonWrapper = styled_1.styled.div `
|
|
39
|
+
display: none;
|
|
40
|
+
|
|
41
|
+
white-space: nowrap;
|
|
42
|
+
|
|
43
|
+
&.${constants_1.formFiltersClassnames.showAllFiltersButtonOnDesktop} {
|
|
44
|
+
display: flex;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
${({ theme }) => theme.breakpoints.down('sm')} {
|
|
48
|
+
margin-right: 0;
|
|
49
|
+
&.${constants_1.formFiltersClassnames.showAllFiltersButtonOnMobile} {
|
|
50
|
+
display: flex;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
&.${constants_1.formFiltersClassnames.withoutSearch} {
|
|
54
|
+
width: 100%;
|
|
55
|
+
|
|
56
|
+
.${constants_1.formFiltersClassnames.allFiltersButton} {
|
|
57
|
+
width: 100%;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
&.${constants_1.formFiltersClassnames.withSearch} {
|
|
62
|
+
.${constants_1.formFiltersClassnames.allFiltersButton} {
|
|
63
|
+
display: unset;
|
|
64
|
+
gap: 0;
|
|
65
|
+
|
|
66
|
+
padding: 8px;
|
|
67
|
+
|
|
68
|
+
font-size: 0;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
`;
|
|
73
|
+
exports.MainFiltersWrapper = styled_1.styled.div `
|
|
74
|
+
display: grid;
|
|
75
|
+
grid-auto-flow: column;
|
|
76
|
+
grid-template-columns: ${({ columns }) => columns || 'repeat(auto-fit, min(200px, 1fr))'};
|
|
77
|
+
column-gap: ${({ theme }) => theme.spacing(2)};
|
|
78
|
+
|
|
79
|
+
width: 100%;
|
|
80
|
+
|
|
81
|
+
${({ theme }) => theme.breakpoints.down('sm')} {
|
|
82
|
+
display: none;
|
|
83
|
+
}
|
|
84
|
+
`;
|
|
85
|
+
exports.StyledBadge = (0, styled_1.styled)(Badge_2.Badge) `
|
|
86
|
+
width: 100%;
|
|
87
|
+
.${Badge_1.badgeClasses.dot} {
|
|
88
|
+
${({ theme }) => theme.breakpoints.up('sm')} {
|
|
89
|
+
display: none;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
`;
|
|
93
|
+
exports.StyledCounter = (0, styled_1.styled)(Counter_1.Counter) `
|
|
94
|
+
${({ theme }) => theme.breakpoints.down('sm')} {
|
|
95
|
+
display: none;
|
|
96
|
+
}
|
|
97
|
+
`;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { type ObjectAsyncGuard, type ObjectGuard } from '@astral/validations';
|
|
2
|
+
import { type ReactNode } from 'react';
|
|
3
|
+
import { type Control } from 'react-hook-form';
|
|
4
|
+
import type { ButtonProps } from '../../components/Button';
|
|
5
|
+
type InputsProps<TFieldValues extends Record<string, unknown>> = {
|
|
6
|
+
control: Control<TFieldValues>;
|
|
7
|
+
};
|
|
8
|
+
export type FormFiltersProps<TFieldValues extends Record<string, unknown>> = {
|
|
9
|
+
/**
|
|
10
|
+
* Схема валидации из @astral/validations
|
|
11
|
+
*/
|
|
12
|
+
validationSchema?: ObjectGuard<TFieldValues> | ObjectAsyncGuard<TFieldValues>;
|
|
13
|
+
/**
|
|
14
|
+
* Значения фильтров
|
|
15
|
+
*/
|
|
16
|
+
values?: TFieldValues;
|
|
17
|
+
/**
|
|
18
|
+
* Callback вызываемый при изменении значений фильтров. Вызывается с debounce (300ms)
|
|
19
|
+
*/
|
|
20
|
+
onChange: (values: TFieldValues) => void;
|
|
21
|
+
/**
|
|
22
|
+
* Поле поиска
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```ts
|
|
26
|
+
* <FormFilters
|
|
27
|
+
* SearchField={(props) => <FormFiltersSearchField {...props} placeholder="Поиск..." />}
|
|
28
|
+
* />
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
searchField?: (props: InputsProps<TFieldValues> & {
|
|
32
|
+
fullWidth?: boolean;
|
|
33
|
+
}) => ReactNode;
|
|
34
|
+
/**
|
|
35
|
+
* Основные фильтры
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```ts
|
|
39
|
+
* <FormFilters
|
|
40
|
+
* MainFilters={({ control, isModal, ...props }) =>
|
|
41
|
+
* <FormTextField
|
|
42
|
+
* {...props}
|
|
43
|
+
* control={control}
|
|
44
|
+
* name="name"
|
|
45
|
+
* label="Название"
|
|
46
|
+
* placeholder={isModal ? 'Введите название' : 'Название'}
|
|
47
|
+
* />
|
|
48
|
+
* />
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
mainFilters?: (props: InputsProps<TFieldValues> & {
|
|
52
|
+
isModal?: boolean;
|
|
53
|
+
}) => ReactNode;
|
|
54
|
+
/**
|
|
55
|
+
* Фильтры, отображаемые в модальном окне "Все фильтры"
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```ts
|
|
59
|
+
* <FormFilters
|
|
60
|
+
* SecondaryFilters={({ control, ...props }) => <FormTextField {...props} control={control} placeholder="Введите название" />}
|
|
61
|
+
* />
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
secondaryFilters?: (props: InputsProps<TFieldValues>) => ReactNode;
|
|
65
|
+
/**
|
|
66
|
+
* Кнопка отправки формы
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```ts
|
|
70
|
+
* <FormFilters
|
|
71
|
+
* SubmitButton={(props) => <Button {...props} loading={isLoading}>Применить</Button>}
|
|
72
|
+
* />
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
submitButton?: (props: ButtonProps) => ReactNode;
|
|
76
|
+
/**
|
|
77
|
+
* Определение ширины колонок для основных фильтров.
|
|
78
|
+
* Поддерживает CSS grid-template-columns синтаксис:
|
|
79
|
+
* - minmax(min, max): например, "minmax(150px, 200px) minmax(200px, 300px)"
|
|
80
|
+
* - fr (fractional units): например, "1fr 2fr"
|
|
81
|
+
* - px (pixels): например, "200px 300px"
|
|
82
|
+
* - Комбинации: например, "minmax(150px, 1fr) 2fr"
|
|
83
|
+
*
|
|
84
|
+
* @default "1fr"
|
|
85
|
+
*/
|
|
86
|
+
mainFiltersColumns?: string;
|
|
87
|
+
/**
|
|
88
|
+
* Флаг загрузки фильтров, используйте когда фильтры загружаются динамически с сервера
|
|
89
|
+
*/
|
|
90
|
+
isLoading?: boolean;
|
|
91
|
+
};
|
|
92
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useFirstMountAfterLoading } from './useFirstMountAfterLoading';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useFirstMountAfterLoading = void 0;
|
|
4
|
+
var useFirstMountAfterLoading_1 = require("./useFirstMountAfterLoading");
|
|
5
|
+
Object.defineProperty(exports, "useFirstMountAfterLoading", { enumerable: true, get: function () { return useFirstMountAfterLoading_1.useFirstMountAfterLoading; } });
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function useFirstMountAfterLoading(isLoading?: boolean): boolean;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useFirstMountAfterLoading = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
function useFirstMountAfterLoading(isLoading) {
|
|
6
|
+
const isFirst = (0, react_1.useRef)(true);
|
|
7
|
+
if (isFirst.current && !isLoading) {
|
|
8
|
+
isFirst.current = false;
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
return isFirst.current;
|
|
12
|
+
}
|
|
13
|
+
exports.useFirstMountAfterLoading = useFirstMountAfterLoading;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useLogic';
|
|
@@ -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("./useLogic"), exports);
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type UseFormReturn } from '../../useForm';
|
|
2
|
+
import { type FormFiltersDialogProps } from '../FormFiltersDialog/types';
|
|
3
|
+
import { type FormFiltersProps } from '../types';
|
|
4
|
+
type UseLogicReturn<TFieldValues extends Record<string, unknown>> = {
|
|
5
|
+
headerForm: UseFormReturn<TFieldValues>;
|
|
6
|
+
searchField: FormFiltersProps<TFieldValues>['searchField'];
|
|
7
|
+
mainFilters: FormFiltersProps<TFieldValues>['mainFilters'];
|
|
8
|
+
submitButton: FormFiltersProps<TFieldValues>['submitButton'];
|
|
9
|
+
counter: number;
|
|
10
|
+
onSubmit: (submittedValues: TFieldValues) => void;
|
|
11
|
+
onOpenModal: () => void;
|
|
12
|
+
dialogProps: FormFiltersDialogProps<TFieldValues>;
|
|
13
|
+
mainFiltersColumns?: string;
|
|
14
|
+
isLoading?: boolean;
|
|
15
|
+
allFiltersButtonClassName: string;
|
|
16
|
+
};
|
|
17
|
+
export declare const useLogic: <TFieldValues extends Record<string, unknown>>({ validationSchema, values, onChange, searchField, mainFilters, secondaryFilters, submitButton, mainFiltersColumns, isLoading, }: FormFiltersProps<TFieldValues>) => UseLogicReturn<TFieldValues>;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useLogic = void 0;
|
|
4
|
+
const debounce_1 = require("@astral/utils/debounce");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const react_hook_form_1 = require("react-hook-form");
|
|
7
|
+
const checkIsDeepEqual_1 = require("../../../components/utils/checkIsDeepEqual");
|
|
8
|
+
const classNames_1 = require("../../../components/utils/classNames");
|
|
9
|
+
const constants_1 = require("../../FormFiltersSearchField/constants");
|
|
10
|
+
const useForm_1 = require("../../useForm");
|
|
11
|
+
const constants_2 = require("../constants");
|
|
12
|
+
const hooks_1 = require("./hooks");
|
|
13
|
+
const useLogic = ({ validationSchema, values, onChange, searchField, mainFilters, secondaryFilters, submitButton, mainFiltersColumns, isLoading, }) => {
|
|
14
|
+
const [isModalOpen, setIsModalOpen] = (0, react_1.useState)(false);
|
|
15
|
+
const isFirstMount = (0, hooks_1.useFirstMountAfterLoading)(isLoading);
|
|
16
|
+
const onOpenModal = () => {
|
|
17
|
+
setIsModalOpen(true);
|
|
18
|
+
};
|
|
19
|
+
const headerForm = (0, useForm_1.useForm)({
|
|
20
|
+
validationSchema,
|
|
21
|
+
defaultValues: values,
|
|
22
|
+
});
|
|
23
|
+
const headerFormValues = (0, react_hook_form_1.useWatch)({
|
|
24
|
+
control: headerForm.control,
|
|
25
|
+
});
|
|
26
|
+
// Ref для хранения debounced функции, чтобы можно было её отменить
|
|
27
|
+
const debouncedOnChangeRef = (0, react_1.useRef)(null);
|
|
28
|
+
// Ref для отслеживания внешнего reset (чтобы не вызывать onChange при внешнем reset)
|
|
29
|
+
const isExternalResetRef = (0, react_1.useRef)(false);
|
|
30
|
+
// Ref для хранения предыдущих внешних values (для сравнения)
|
|
31
|
+
const previousValuesRef = (0, react_1.useRef)(values);
|
|
32
|
+
// Отменяет предыдущий debounced вызов onChange, если он есть
|
|
33
|
+
const clearPreviousDebouncedOnChange = () => {
|
|
34
|
+
if (debouncedOnChangeRef.current) {
|
|
35
|
+
debouncedOnChangeRef.current.clear();
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
const hasSubmitButton = Boolean(submitButton);
|
|
39
|
+
(0, react_1.useEffect)(() => {
|
|
40
|
+
// Если есть submitButton, не вызываем onChange при изменении значений
|
|
41
|
+
if (hasSubmitButton || isLoading || isFirstMount) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
clearPreviousDebouncedOnChange();
|
|
45
|
+
// Пропускаем onChange если это внешний reset
|
|
46
|
+
if (isExternalResetRef.current) {
|
|
47
|
+
isExternalResetRef.current = false;
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
// Создаем новый debounced вызов
|
|
51
|
+
const debouncedOnChange = (0, debounce_1.debounce)(() => {
|
|
52
|
+
onChange(headerFormValues);
|
|
53
|
+
}, 300);
|
|
54
|
+
debouncedOnChangeRef.current = debouncedOnChange;
|
|
55
|
+
debouncedOnChange();
|
|
56
|
+
return () => {
|
|
57
|
+
debouncedOnChange.clear();
|
|
58
|
+
};
|
|
59
|
+
}, [headerFormValues, onChange, hasSubmitButton, isLoading]);
|
|
60
|
+
const searchName = document
|
|
61
|
+
.getElementById(constants_1.FORM_FILTERS_SEARCH_FIELD_ID)
|
|
62
|
+
?.getAttribute('name') || '';
|
|
63
|
+
// Исключаем поиск из счетчика фильтров
|
|
64
|
+
const counter = Object.values(headerFormValues).filter(Boolean).length -
|
|
65
|
+
(headerFormValues[searchName] ? 1 : 0);
|
|
66
|
+
const setFiltersValues = (newValues) => headerForm.reset(newValues);
|
|
67
|
+
// Функция отправки формы на SubmitButton. Приводит к вызову onChange без debounce.
|
|
68
|
+
const onSubmit = (submittedValues) => {
|
|
69
|
+
clearPreviousDebouncedOnChange();
|
|
70
|
+
onChange?.(submittedValues);
|
|
71
|
+
};
|
|
72
|
+
// Функция отправки формы на кнопку "Применить" в модальном окне
|
|
73
|
+
const onSubmitModal = (submittedValues) => {
|
|
74
|
+
setFiltersValues(submittedValues);
|
|
75
|
+
onSubmit(submittedValues);
|
|
76
|
+
};
|
|
77
|
+
// Синхронизация внешних values с формой
|
|
78
|
+
(0, react_1.useEffect)(() => {
|
|
79
|
+
if (isFirstMount) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
// Сравниваем значения, чтобы избежать лишних reset
|
|
83
|
+
const valuesChanged = !(0, checkIsDeepEqual_1.checkIsDeepEqual)(previousValuesRef.current, values);
|
|
84
|
+
if (!valuesChanged) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
clearPreviousDebouncedOnChange();
|
|
88
|
+
isExternalResetRef.current = true;
|
|
89
|
+
previousValuesRef.current = values;
|
|
90
|
+
setFiltersValues(values);
|
|
91
|
+
}, [values, headerForm]);
|
|
92
|
+
const allFiltersButtonClassName = (0, react_1.useMemo)(() => {
|
|
93
|
+
return (0, classNames_1.classNames)({
|
|
94
|
+
[constants_2.formFiltersClassnames.showAllFiltersButtonOnDesktop]: Boolean(secondaryFilters),
|
|
95
|
+
[constants_2.formFiltersClassnames.showAllFiltersButtonOnMobile]: Boolean(mainFilters) || Boolean(secondaryFilters),
|
|
96
|
+
[constants_2.formFiltersClassnames.withSearch]: Boolean(searchField),
|
|
97
|
+
[constants_2.formFiltersClassnames.withoutSearch]: !searchField,
|
|
98
|
+
});
|
|
99
|
+
}, [mainFilters, secondaryFilters, searchField]);
|
|
100
|
+
const dialogProps = {
|
|
101
|
+
validationSchema,
|
|
102
|
+
values,
|
|
103
|
+
mainFilters,
|
|
104
|
+
secondaryFilters,
|
|
105
|
+
defaultValues: headerFormValues,
|
|
106
|
+
onSubmit: onSubmitModal,
|
|
107
|
+
isModalOpen,
|
|
108
|
+
setIsModalOpen,
|
|
109
|
+
};
|
|
110
|
+
return {
|
|
111
|
+
headerForm,
|
|
112
|
+
searchField,
|
|
113
|
+
mainFilters,
|
|
114
|
+
submitButton,
|
|
115
|
+
counter,
|
|
116
|
+
onSubmit,
|
|
117
|
+
onOpenModal,
|
|
118
|
+
dialogProps,
|
|
119
|
+
mainFiltersColumns,
|
|
120
|
+
isLoading,
|
|
121
|
+
allFiltersButtonClassName,
|
|
122
|
+
};
|
|
123
|
+
};
|
|
124
|
+
exports.useLogic = useLogic;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type FormFiltersModalGroupProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Компонент для группировки фильтров в Grid сетку
|
|
4
|
+
* @example
|
|
5
|
+
* <FormFiltersModalGroup columns="1fr 2fr">
|
|
6
|
+
* <FormSelect />
|
|
7
|
+
* <FormSelect />
|
|
8
|
+
* </FormFiltersModalGroup>
|
|
9
|
+
*/
|
|
10
|
+
export declare const FormFiltersModalGroup: ({ children, columns, ...props }: FormFiltersModalGroupProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FormFiltersModalGroup = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const styles_1 = require("./styles");
|
|
6
|
+
/**
|
|
7
|
+
* Компонент для группировки фильтров в Grid сетку
|
|
8
|
+
* @example
|
|
9
|
+
* <FormFiltersModalGroup columns="1fr 2fr">
|
|
10
|
+
* <FormSelect />
|
|
11
|
+
* <FormSelect />
|
|
12
|
+
* </FormFiltersModalGroup>
|
|
13
|
+
*/
|
|
14
|
+
const FormFiltersModalGroup = ({ children, columns = '1fr', ...props }) => {
|
|
15
|
+
return ((0, jsx_runtime_1.jsx)(styles_1.Container, { container: true, columns: columns, ...props, children: children }));
|
|
16
|
+
};
|
|
17
|
+
exports.FormFiltersModalGroup = FormFiltersModalGroup;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FormFiltersModalGroup = void 0;
|
|
4
|
+
var FormFiltersModalGroup_1 = require("./FormFiltersModalGroup");
|
|
5
|
+
Object.defineProperty(exports, "FormFiltersModalGroup", { enumerable: true, get: function () { return FormFiltersModalGroup_1.FormFiltersModalGroup; } });
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FormFiltersModalGroup = void 0;
|
|
4
|
+
var FormFiltersModalGroup_1 = require("./FormFiltersModalGroup");
|
|
5
|
+
Object.defineProperty(exports, "FormFiltersModalGroup", { enumerable: true, get: function () { return FormFiltersModalGroup_1.FormFiltersModalGroup; } });
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare const Container: import("@emotion/styled/dist/declarations/src/types").StyledComponent<Omit<import("../../components/Grid/GridComponent").GridComponentProps, "ref"> & import("react").RefAttributes<HTMLDivElement> & {
|
|
3
|
+
theme?: import("@emotion/react").Theme | undefined;
|
|
4
|
+
} & import("../../components/Grid/styles").StyledGridProps, {}, {}>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Container = void 0;
|
|
4
|
+
const Grid_1 = require("../../components/Grid");
|
|
5
|
+
const styled_1 = require("../../components/styled");
|
|
6
|
+
const constants_1 = require("../FormFilters/constants");
|
|
7
|
+
exports.Container = (0, styled_1.styled)(Grid_1.Grid) `
|
|
8
|
+
display: contents;
|
|
9
|
+
|
|
10
|
+
> * {
|
|
11
|
+
flex: 1;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.${constants_1.formFiltersClassnames.modalFilters} & {
|
|
15
|
+
display: grid;
|
|
16
|
+
column-gap: ${({ theme }) => theme.spacing(5)};
|
|
17
|
+
align-items: center;
|
|
18
|
+
justify-content: space-between;
|
|
19
|
+
|
|
20
|
+
${({ theme }) => theme.breakpoints.down('sm')} {
|
|
21
|
+
display: flex;
|
|
22
|
+
flex-direction: column;
|
|
23
|
+
align-items: unset;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
`;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import { type GridProps } from '../../components/Grid';
|
|
3
|
+
export type FormFiltersModalGroupProps = Omit<GridProps, 'container'> & {
|
|
4
|
+
children?: ReactNode;
|
|
5
|
+
/**
|
|
6
|
+
* Количество колонок
|
|
7
|
+
*/
|
|
8
|
+
columns?: number | string;
|
|
9
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { type SearchFieldProps } from '../../components/SearchField';
|
|
3
|
+
import { type WithFormFieldProps } from '../types';
|
|
4
|
+
export type FormFiltersSearchFieldProps<TFieldValues extends object> = WithFormFieldProps<SearchFieldProps, TFieldValues> & {
|
|
5
|
+
width?: string;
|
|
6
|
+
};
|
|
7
|
+
export declare const FormFiltersSearchField: <T extends object>(props: Omit<SearchFieldProps, "error" | "name"> & Omit<import("react-hook-form").UseControllerProps<T>, "rules"> & {
|
|
8
|
+
width?: string | undefined;
|
|
9
|
+
} & import("react").RefAttributes<HTMLDivElement>) => import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | null;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FormFiltersSearchField = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const forwardRefWithGeneric_1 = require("../../components/forwardRefWithGeneric");
|
|
6
|
+
const SearchField_1 = require("../../components/SearchField");
|
|
7
|
+
const useFormFieldProps_1 = require("../useFormFieldProps");
|
|
8
|
+
const constants_1 = require("./constants");
|
|
9
|
+
const styles_1 = require("./styles");
|
|
10
|
+
/**
|
|
11
|
+
* Адаптер для SearchField
|
|
12
|
+
*/
|
|
13
|
+
function FormFiltersSearchFieldInner({ width, ...props }, ref) {
|
|
14
|
+
const fieldProps = (0, useFormFieldProps_1.useFormFieldProps)({
|
|
15
|
+
...props,
|
|
16
|
+
defaultValue: props.defaultValue || '',
|
|
17
|
+
});
|
|
18
|
+
return ((0, jsx_runtime_1.jsx)(styles_1.Wrapper, { "$width": width, children: (0, jsx_runtime_1.jsx)(SearchField_1.SearchField, { ...fieldProps, ref: ref, inputProps: { id: constants_1.FORM_FILTERS_SEARCH_FIELD_ID } }) }));
|
|
19
|
+
}
|
|
20
|
+
exports.FormFiltersSearchField = (0, forwardRefWithGeneric_1.forwardRefWithGeneric)(FormFiltersSearchFieldInner);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const FORM_FILTERS_SEARCH_FIELD_ID = "form-filters-search-field";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { FormFiltersSearchField, type FormFiltersSearchFieldProps, } from './FormFiltersSearchField';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FormFiltersSearchField = void 0;
|
|
4
|
+
var FormFiltersSearchField_1 = require("./FormFiltersSearchField");
|
|
5
|
+
Object.defineProperty(exports, "FormFiltersSearchField", { enumerable: true, get: function () { return FormFiltersSearchField_1.FormFiltersSearchField; } });
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { FormFiltersSearchField, type FormFiltersSearchFieldProps, } from './FormFiltersSearchField';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FormFiltersSearchField = void 0;
|
|
4
|
+
var FormFiltersSearchField_1 = require("./FormFiltersSearchField");
|
|
5
|
+
Object.defineProperty(exports, "FormFiltersSearchField", { enumerable: true, get: function () { return FormFiltersSearchField_1.FormFiltersSearchField; } });
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare const Wrapper: import("@emotion/styled/dist/declarations/src/types").StyledComponent<{
|
|
3
|
+
theme?: import("@emotion/react").Theme | undefined;
|
|
4
|
+
as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
|
|
5
|
+
} & {
|
|
6
|
+
$width?: string | undefined;
|
|
7
|
+
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Wrapper = void 0;
|
|
4
|
+
const styled_1 = require("../../components/styled");
|
|
5
|
+
exports.Wrapper = styled_1.styled.div `
|
|
6
|
+
min-width: ${({ $width }) => $width || '240px'};
|
|
7
|
+
|
|
8
|
+
${({ theme }) => theme.breakpoints.down('sm')} {
|
|
9
|
+
width: 100%;
|
|
10
|
+
}
|
|
11
|
+
`;
|
|
@@ -7,6 +7,7 @@ export declare const useLogic: <TFormValues extends Record<string, unknown>>({ a
|
|
|
7
7
|
title?: import("react").ReactNode;
|
|
8
8
|
description?: import("react").ReactNode;
|
|
9
9
|
subheader?: import("react").ReactNode;
|
|
10
|
+
filters?: import("react").ReactNode;
|
|
10
11
|
breadcrumbs?: import("react").ReactNode;
|
|
11
12
|
className?: string | undefined;
|
|
12
13
|
isLoading?: boolean | undefined;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { type SearchFieldProps } from '../../components/SearchField';
|
|
3
|
+
import { type WithFormFieldProps } from '../types';
|
|
4
|
+
export type FormSearchFieldProps<TFieldValues extends object> = WithFormFieldProps<SearchFieldProps, TFieldValues>;
|
|
5
|
+
export declare const FormSearchField: <T extends object>(props: Omit<SearchFieldProps, "error" | "name"> & Omit<import("react-hook-form").UseControllerProps<T>, "rules"> & import("react").RefAttributes<HTMLDivElement>) => import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | null;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FormSearchField = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const forwardRefWithGeneric_1 = require("../../components/forwardRefWithGeneric");
|
|
6
|
+
const SearchField_1 = require("../../components/SearchField");
|
|
7
|
+
const useFormFieldProps_1 = require("../useFormFieldProps");
|
|
8
|
+
/**
|
|
9
|
+
* Адаптер для SearchField
|
|
10
|
+
*/
|
|
11
|
+
function FormSearchFieldInner(props, ref) {
|
|
12
|
+
const fieldProps = (0, useFormFieldProps_1.useFormFieldProps)({
|
|
13
|
+
...props,
|
|
14
|
+
defaultValue: props.defaultValue || '',
|
|
15
|
+
});
|
|
16
|
+
return (0, jsx_runtime_1.jsx)(SearchField_1.SearchField, { ...fieldProps, ref: ref });
|
|
17
|
+
}
|
|
18
|
+
exports.FormSearchField = (0, forwardRefWithGeneric_1.forwardRefWithGeneric)(FormSearchFieldInner);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { FormSearchField, type FormSearchFieldProps, } from './FormSearchField';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FormSearchField = void 0;
|
|
4
|
+
var FormSearchField_1 = require("./FormSearchField");
|
|
5
|
+
Object.defineProperty(exports, "FormSearchField", { enumerable: true, get: function () { return FormSearchField_1.FormSearchField; } });
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { FormSearchField, type FormSearchFieldProps, } from './FormSearchField';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FormSearchField = void 0;
|
|
4
|
+
var FormSearchField_1 = require("./FormSearchField");
|
|
5
|
+
Object.defineProperty(exports, "FormSearchField", { enumerable: true, get: function () { return FormSearchField_1.FormSearchField; } });
|