@mdtl/uikit 0.0.35 → 0.0.37

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.
@@ -0,0 +1,47 @@
1
+ import { default as React, FC } from 'react';
2
+ import { TextFieldProps } from '@mui/material/TextField';
3
+ import { default as Autocomplete } from '@mui/material/Autocomplete';
4
+ import { SxProps } from '@mui/system';
5
+ import { CollectionPageType, Option, PayloadType } from './interfaces';
6
+ export interface IAutocompleteSelectProps {
7
+ multiple?: boolean;
8
+ creatable?: boolean;
9
+ getOptions: (payload: PayloadType) => Promise<CollectionPageType>;
10
+ onChange: (option: Option | Option[]) => void;
11
+ value: Option | Option[];
12
+ /**
13
+ * Поле fieldName для DataSelectionRequest - используется для поиска; обычно это может быть label/value Option-а
14
+ */
15
+ searchFieldName: string;
16
+ placeholder?: string;
17
+ invalid?: boolean;
18
+ disabled?: boolean;
19
+ tooltip?: string;
20
+ showTooltip?: boolean;
21
+ inputSize?: TextFieldProps['size'];
22
+ /**
23
+ * перезапрашивать данные каждый раз, когда открываем дропдаун
24
+ * может быть полезно, если результат getOptions изменится при внешних манипуляциях
25
+ */
26
+ fetchOnEachOpen?: boolean;
27
+ sx?: SxProps;
28
+ inputLabel?: string;
29
+ /**
30
+ * Пропсы для настройки popper
31
+ */
32
+ popperProps?: React.ComponentProps<typeof Autocomplete>['slotProps']['popper'];
33
+ filterOperation: unknown;
34
+ itemsPerPage: number;
35
+ reqCatchHandler: (error: unknown) => void;
36
+ }
37
+ /**
38
+ * Если от бэка получаем строку, которую используем и как label, и как value,
39
+ * можно использовать функции
40
+ *
41
+ * convertAutocompleteValueToFormValueUsingLabel
42
+ *
43
+ * convertFormValueToAutocompleteValueUsingLabel
44
+ */
45
+ export declare const AutocompleteSelect: FC<IAutocompleteSelectProps>;
46
+ declare const _default: React.NamedExoticComponent<IAutocompleteSelectProps>;
47
+ export default _default;
@@ -0,0 +1,8 @@
1
+ import { FC, MouseEvent } from 'react';
2
+ import { Option } from './interfaces';
3
+ interface IMoreChipProps {
4
+ value: Option[];
5
+ onClick: (e: MouseEvent<HTMLDivElement>) => void;
6
+ }
7
+ export declare const MoreChip: FC<IMoreChipProps>;
8
+ export {};
@@ -0,0 +1,9 @@
1
+ import { Option } from './interfaces';
2
+ import { FC } from 'react';
3
+ interface IValueChipProps {
4
+ value: Option;
5
+ onDelete: () => void;
6
+ first?: boolean;
7
+ }
8
+ export declare const ValueChip: FC<IValueChipProps>;
9
+ export {};
@@ -0,0 +1,19 @@
1
+ export type Option = {
2
+ label: string;
3
+ value: any;
4
+ };
5
+ export type PayloadType = {
6
+ currentPage: number;
7
+ itemsPerPage: number;
8
+ filters?: {
9
+ operation: unknown;
10
+ values: string[];
11
+ fieldName: string;
12
+ }[];
13
+ };
14
+ export type CollectionPageType = {
15
+ readonly currentPage: number;
16
+ readonly itemsPerPage: number;
17
+ readonly totalPages: number;
18
+ readonly data: Option[];
19
+ };
@@ -0,0 +1,38 @@
1
+ import { Option, PayloadType } from './interfaces';
2
+ /**
3
+ * Если в форме будем хранить label (и отправлять/получать от бэка - так, например, в простоях), используем
4
+ * эту функцию
5
+ *
6
+ * Преобразует Option | Option[] в string | string[] label-ов
7
+ *
8
+ * @param value
9
+ * @param multiple
10
+ * @returns
11
+ */
12
+ export declare const convertAutocompleteValueToFormValueUsingLabel: (value: Option | Option[], multiple?: boolean) => any;
13
+ /**
14
+ * Если в форме будем хранить label (и отправлять/получать от бэка - так, например, в простоях), используем
15
+ * эту функцию
16
+ *
17
+ * Преобразует string | string[] label-ов в Option | Option[]
18
+ * @param value
19
+ * @param multiple
20
+ * @returns
21
+ */
22
+ export declare const convertFormValueToAutocompleteValueUsingLabel: (value: unknown, multiple?: boolean) => Option[] | {
23
+ label: string;
24
+ value: unknown;
25
+ };
26
+ /**
27
+ * Функция возвращает ответ для AutocomleteSelect
28
+ *
29
+ * Использовать в случае, когда список опций определен на фронте
30
+ */
31
+ export declare const constructAutocompleteResponseWithDefinedData: (payload: PayloadType, data: Option[]) => {
32
+ currentPage: number;
33
+ totalPages: number;
34
+ totalItems: number;
35
+ itemsPerPage: number;
36
+ expressionString: string;
37
+ data: Option[];
38
+ };
package/dist/index.d.ts CHANGED
@@ -18,4 +18,10 @@ export { CustomSwitch } from './components/CustomSwitch/CustomSwitch';
18
18
  export { LoadingIndicator } from './components/LoadingIndicator/LoadingIndicator';
19
19
  export { Snackbar } from './components/Snackbar/Snackbar';
20
20
  export { Stepper } from './components/Stepper/Stepper';
21
+ export { AutocompleteSelect } from './components/AutocompleteSelect/AutocompleteSelect';
22
+ export type { Option } from './components/AutocompleteSelect/interfaces';
23
+ export * from './components/AutocompleteSelect/utils';
24
+ export { calculateRightIconsWidth } from './utils/calculateRightIconsWidth';
21
25
  export { generateGuid } from './utils/generateGuid';
26
+ export { getIconsGapSize } from './utils/getIconsGapSize';
27
+ export { getTextRightPadding } from './utils/getTextRightPadding';