@alfalab/core-components-picker-button 7.5.0 → 7.6.2
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/CHANGELOG.md +31 -0
- package/dist/Component.d.ts +26 -4
- package/dist/Component.js +13 -7
- package/dist/cssm/Component.d.ts +26 -4
- package/dist/cssm/Component.js +13 -6
- package/dist/cssm/field/Component.d.ts +10 -0
- package/dist/cssm/field/Component.js +25 -8
- package/dist/cssm/field/index.d.ts +1 -1
- package/dist/cssm/field/index.js +7 -3
- package/dist/cssm/index.js +9 -3
- package/dist/cssm/index.module.css +4 -0
- package/dist/cssm/option/Component.d.ts +11 -0
- package/dist/cssm/option/Component.js +25 -0
- package/dist/cssm/option/index.d.ts +1 -0
- package/dist/cssm/option/index.js +13 -0
- package/dist/cssm/option/index.module.css +24 -0
- package/dist/cssm/tslib.es6-ce870b46.d.ts +32 -0
- package/dist/cssm/tslib.es6-ce870b46.js +42 -0
- package/dist/{Component-4c462f50.d.ts → cssm/typings-a22d6eaf.d.ts} +180 -187
- package/dist/cssm/utils/index.d.ts +4 -0
- package/dist/cssm/utils/index.js +17 -0
- package/dist/esm/Component.d.ts +26 -4
- package/dist/esm/Component.js +14 -8
- package/dist/esm/field/Component.d.ts +10 -0
- package/dist/esm/field/Component.js +24 -6
- package/dist/esm/field/index.css +3 -3
- package/dist/esm/field/index.d.ts +1 -1
- package/dist/esm/field/index.js +7 -3
- package/dist/esm/index.css +9 -5
- package/dist/esm/index.js +8 -3
- package/dist/esm/option/Component.d.ts +11 -0
- package/dist/esm/option/Component.js +18 -0
- package/dist/esm/option/index.css +25 -0
- package/dist/esm/option/index.d.ts +1 -0
- package/dist/esm/option/index.js +4 -0
- package/dist/esm/tslib.es6-5aaed0d7.d.ts +32 -0
- package/dist/esm/tslib.es6-5aaed0d7.js +40 -0
- package/dist/esm/{Component-d9d92ac3.d.ts → typings-a22d6eaf.d.ts} +180 -187
- package/dist/esm/utils/index.d.ts +4 -0
- package/dist/esm/utils/index.js +13 -0
- package/dist/field/Component.d.ts +10 -0
- package/dist/field/Component.js +26 -7
- package/dist/field/index.css +3 -3
- package/dist/field/index.d.ts +1 -1
- package/dist/field/index.js +7 -3
- package/dist/index.css +9 -5
- package/dist/index.js +8 -3
- package/dist/modern/Component.d.ts +26 -4
- package/dist/modern/Component.js +12 -7
- package/dist/modern/field/Component.d.ts +5 -707
- package/dist/modern/field/Component.js +10 -7
- package/dist/modern/field/index.css +3 -3
- package/dist/modern/field/index.js +5 -2
- package/dist/modern/index.css +9 -5
- package/dist/modern/index.js +6 -2
- package/dist/modern/option/Component.d.ts +11 -0
- package/dist/modern/option/Component.js +16 -0
- package/dist/modern/option/index.css +25 -0
- package/dist/modern/option/index.d.ts +1 -0
- package/dist/modern/option/index.js +3 -0
- package/dist/{cssm/Component-aeb02c1b.d.ts → modern/typings-a22d6eaf.d.ts} +180 -187
- package/dist/modern/utils/index.d.ts +4 -0
- package/dist/modern/utils/index.js +13 -0
- package/dist/option/Component.d.ts +11 -0
- package/dist/option/Component.js +26 -0
- package/dist/option/index.css +25 -0
- package/dist/option/index.d.ts +1 -0
- package/dist/option/index.js +12 -0
- package/dist/tslib.es6-62e46619.d.ts +32 -0
- package/dist/tslib.es6-62e46619.js +42 -0
- package/dist/typings-a22d6eaf.d.ts +867 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.js +17 -0
- package/package.json +4 -4
- package/dist/Component-4c462f50.js +0 -67
- package/dist/cssm/Component-aeb02c1b.js +0 -66
- package/dist/esm/Component-d9d92ac3.js +0 -59
|
@@ -1,712 +1,10 @@
|
|
|
1
|
-
/// <reference types="react-transition-group" />
|
|
2
1
|
/// <reference types="react" />
|
|
3
2
|
import { ButtonProps } from "@alfalab/core-components-button";
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
import { BasePlacement, VariationPlacement } from "@popperjs/core";
|
|
8
|
-
import { PickerButtonSize } from "../index";
|
|
9
|
-
type RefElement = HTMLElement | null;
|
|
10
|
-
type Position = BasePlacement | VariationPlacement;
|
|
11
|
-
type PopoverProps = {
|
|
12
|
-
/**
|
|
13
|
-
* Управление состоянием поповера (открыт/закрыт)
|
|
14
|
-
*/
|
|
15
|
-
open: boolean;
|
|
16
|
-
/**
|
|
17
|
-
* Элемент, относительного которого появляется поповер
|
|
18
|
-
*/
|
|
19
|
-
anchorElement: RefElement;
|
|
20
|
-
/**
|
|
21
|
-
* Использовать ширину родительского элемента
|
|
22
|
-
*/
|
|
23
|
-
useAnchorWidth?: boolean;
|
|
24
|
-
/**
|
|
25
|
-
* Позиционирование поповера
|
|
26
|
-
*/
|
|
27
|
-
position?: Position;
|
|
28
|
-
/**
|
|
29
|
-
* Запрещает поповеру менять свою позицию.
|
|
30
|
-
* Например, если места снизу недостаточно,то он все равно будет показан снизу
|
|
31
|
-
*/
|
|
32
|
-
preventFlip?: boolean;
|
|
33
|
-
/**
|
|
34
|
-
* Запрещает поповеру менять свою позицию, если он не влезает в видимую область.
|
|
35
|
-
*/
|
|
36
|
-
preventOverflow?: boolean;
|
|
37
|
-
/**
|
|
38
|
-
* Позволяет поповеру подствраивать свою высоту под границы экрана, если из-за величины контента он выходит за рамки видимой области экрана
|
|
39
|
-
*/
|
|
40
|
-
availableHeight?: boolean;
|
|
41
|
-
/**
|
|
42
|
-
* Если `true`, будет отрисована стрелочка
|
|
43
|
-
*/
|
|
44
|
-
withArrow?: boolean;
|
|
45
|
-
/**
|
|
46
|
-
* Смещение поповера.
|
|
47
|
-
* Если позиционирование top, bottom, то [x, y].
|
|
48
|
-
* Если позиционирование left, right то [y, x].
|
|
49
|
-
*/
|
|
50
|
-
offset?: [number, number];
|
|
51
|
-
/**
|
|
52
|
-
* Дополнительный класс для поповера
|
|
53
|
-
*/
|
|
54
|
-
popperClassName?: string;
|
|
55
|
-
/**
|
|
56
|
-
* Дополнительный класс для стрелочки
|
|
57
|
-
*/
|
|
58
|
-
arrowClassName?: string;
|
|
59
|
-
/**
|
|
60
|
-
* Функция, возвращающая контейнер, в который будет рендериться поповер
|
|
61
|
-
*/
|
|
62
|
-
getPortalContainer?: () => HTMLElement;
|
|
63
|
-
/**
|
|
64
|
-
* CSSTransitionProps, прокидываются в компонент CSSTransitionProps.
|
|
65
|
-
*/
|
|
66
|
-
transition?: CSSTransitionProps;
|
|
67
|
-
/**
|
|
68
|
-
* Выставляет кастомное свойство transition-duration
|
|
69
|
-
*/
|
|
70
|
-
transitionDuration?: CSSProperties["transitionDuration"];
|
|
71
|
-
/**
|
|
72
|
-
* Рендерит компонент, обернутый в Transition
|
|
73
|
-
*/
|
|
74
|
-
withTransition?: boolean;
|
|
75
|
-
/**
|
|
76
|
-
* Идентификатор для систем автоматизированного тестирования
|
|
77
|
-
*/
|
|
78
|
-
dataTestId?: string;
|
|
79
|
-
/**
|
|
80
|
-
* Хранит функцию, с помощью которой можно обновить положение компонента
|
|
81
|
-
*/
|
|
82
|
-
update?: MutableRefObject<() => void>;
|
|
83
|
-
/**
|
|
84
|
-
* Дополнительный класс
|
|
85
|
-
*/
|
|
86
|
-
className?: string;
|
|
87
|
-
/**
|
|
88
|
-
* z-index компонента
|
|
89
|
-
*/
|
|
90
|
-
zIndex?: number;
|
|
91
|
-
/**
|
|
92
|
-
* Если поповер не помещается в переданной позиции (position), он попробует открыться в другой позиции,
|
|
93
|
-
* по очереди для каждой позиции из этого списка.
|
|
94
|
-
* Если не передавать, то поповер открывается в противоположном направлении от переданного position.
|
|
95
|
-
*/
|
|
96
|
-
fallbackPlacements?: Position[];
|
|
97
|
-
/**
|
|
98
|
-
* Контент
|
|
99
|
-
*/
|
|
100
|
-
children?: ReactNode;
|
|
101
|
-
};
|
|
102
|
-
type InputProps = Omit<InputHTMLAttributes<HTMLInputElement>, "size" | "type" | "value" | "defaultValue" | "onChange" | "onClick" | "onMouseDown"> & {
|
|
103
|
-
/**
|
|
104
|
-
* Значение поля ввода
|
|
105
|
-
*/
|
|
106
|
-
value?: string;
|
|
107
|
-
/**
|
|
108
|
-
* Начальное значение поля
|
|
109
|
-
*/
|
|
110
|
-
defaultValue?: string;
|
|
111
|
-
/**
|
|
112
|
-
* Растягивает компонент на ширину контейнера
|
|
113
|
-
*/
|
|
114
|
-
block?: boolean;
|
|
115
|
-
/**
|
|
116
|
-
* Крестик для очистки поля
|
|
117
|
-
*/
|
|
118
|
-
clear?: boolean;
|
|
119
|
-
/**
|
|
120
|
-
* Размер компонента
|
|
121
|
-
*/
|
|
122
|
-
size?: "s" | "m" | "l" | "xl";
|
|
123
|
-
/**
|
|
124
|
-
* Набор цветов для компонента
|
|
125
|
-
*/
|
|
126
|
-
colors?: "default" | "inverted";
|
|
127
|
-
/**
|
|
128
|
-
* Отображение ошибки
|
|
129
|
-
*/
|
|
130
|
-
error?: ReactNode | boolean;
|
|
131
|
-
/**
|
|
132
|
-
* Отображение иконки успеха
|
|
133
|
-
*/
|
|
134
|
-
success?: boolean;
|
|
135
|
-
/**
|
|
136
|
-
* Текст подсказки
|
|
137
|
-
*/
|
|
138
|
-
hint?: ReactNode;
|
|
139
|
-
/**
|
|
140
|
-
* Лейбл компонента
|
|
141
|
-
*/
|
|
142
|
-
label?: React.ReactNode;
|
|
143
|
-
/**
|
|
144
|
-
* Атрибут type
|
|
145
|
-
*/
|
|
146
|
-
type?: "number" | "card" | "email" | "money" | "password" | "tel" | "text";
|
|
147
|
-
/**
|
|
148
|
-
* Ref для обертки input
|
|
149
|
-
*/
|
|
150
|
-
wrapperRef?: React.Ref<HTMLDivElement>;
|
|
151
|
-
/**
|
|
152
|
-
* Слот слева
|
|
153
|
-
*/
|
|
154
|
-
leftAddons?: React.ReactNode;
|
|
155
|
-
/**
|
|
156
|
-
* Слот справа
|
|
157
|
-
*/
|
|
158
|
-
rightAddons?: React.ReactNode;
|
|
159
|
-
/**
|
|
160
|
-
* Слот под инпутом
|
|
161
|
-
*/
|
|
162
|
-
bottomAddons?: React.ReactNode;
|
|
163
|
-
/**
|
|
164
|
-
* Дополнительный класс
|
|
165
|
-
*/
|
|
166
|
-
className?: string;
|
|
167
|
-
/**
|
|
168
|
-
* Дополнительный класс для поля
|
|
169
|
-
*/
|
|
170
|
-
fieldClassName?: string;
|
|
171
|
-
/**
|
|
172
|
-
* Дополнительный класс инпута
|
|
173
|
-
*/
|
|
174
|
-
inputClassName?: string;
|
|
175
|
-
/**
|
|
176
|
-
* Дополнительный класс для лейбла
|
|
177
|
-
*/
|
|
178
|
-
labelClassName?: string;
|
|
179
|
-
/**
|
|
180
|
-
* Дополнительный класс для аддонов
|
|
181
|
-
*/
|
|
182
|
-
addonsClassName?: string;
|
|
183
|
-
/**
|
|
184
|
-
* Класс, который будет установлен при фокусе
|
|
185
|
-
*/
|
|
186
|
-
focusedClassName?: string;
|
|
187
|
-
/**
|
|
188
|
-
* Класс, который будет установлен, если в поле есть значение
|
|
189
|
-
*/
|
|
190
|
-
filledClassName?: string;
|
|
191
|
-
/**
|
|
192
|
-
* Обработчик поля ввода
|
|
193
|
-
*/
|
|
194
|
-
onChange?: (event: ChangeEvent<HTMLInputElement>, payload: {
|
|
195
|
-
value: string;
|
|
196
|
-
}) => void;
|
|
197
|
-
/**
|
|
198
|
-
* Обработчик нажатия на кнопку очистки
|
|
199
|
-
*/
|
|
200
|
-
onClear?: (event: MouseEvent<HTMLButtonElement>) => void;
|
|
201
|
-
/**
|
|
202
|
-
* Обработчик клика по полю
|
|
203
|
-
*/
|
|
204
|
-
onClick?: (event: MouseEvent<HTMLDivElement>) => void;
|
|
205
|
-
/**
|
|
206
|
-
* Обработчик MouseDown по полю
|
|
207
|
-
*/
|
|
208
|
-
onMouseDown?: (event: MouseEvent<HTMLDivElement>) => void;
|
|
209
|
-
/**
|
|
210
|
-
* Обработчик MouseUp по полю
|
|
211
|
-
*/
|
|
212
|
-
onMouseUp?: (event: MouseEvent<HTMLDivElement>) => void;
|
|
213
|
-
/**
|
|
214
|
-
* Идентификатор для систем автоматизированного тестирования
|
|
215
|
-
*/
|
|
216
|
-
dataTestId?: string;
|
|
217
|
-
};
|
|
218
|
-
type OptionShape = {
|
|
219
|
-
/**
|
|
220
|
-
* Текстовое представление пункта
|
|
221
|
-
*/
|
|
222
|
-
key: string;
|
|
223
|
-
/**
|
|
224
|
-
* Контент, который будет отрисован в выпадающем списке и в поле при выборе
|
|
225
|
-
*/
|
|
226
|
-
content?: ReactNode;
|
|
227
|
-
/**
|
|
228
|
-
* Блокирует данный пункт для выбора
|
|
229
|
-
*/
|
|
230
|
-
disabled?: boolean;
|
|
231
|
-
/**
|
|
232
|
-
* Дополнительные данные
|
|
233
|
-
*/
|
|
234
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
235
|
-
value?: any;
|
|
236
|
-
};
|
|
237
|
-
type GroupShape = {
|
|
238
|
-
/**
|
|
239
|
-
* Заголовок группы
|
|
240
|
-
*/
|
|
241
|
-
label?: string;
|
|
242
|
-
/**
|
|
243
|
-
* Дочерние элементы
|
|
244
|
-
*/
|
|
245
|
-
options: OptionShape[];
|
|
246
|
-
};
|
|
247
|
-
type BaseSelectProps = {
|
|
248
|
-
/**
|
|
249
|
-
* Идентификатор для систем автоматизированного тестирования
|
|
250
|
-
*/
|
|
251
|
-
dataTestId?: string;
|
|
252
|
-
/**
|
|
253
|
-
* Дополнительный класс
|
|
254
|
-
*/
|
|
255
|
-
className?: string;
|
|
256
|
-
/**
|
|
257
|
-
* Дополнительный класс для поля
|
|
258
|
-
*/
|
|
259
|
-
fieldClassName?: string;
|
|
260
|
-
/**
|
|
261
|
-
* Дополнительный класс выпадающего меню
|
|
262
|
-
*/
|
|
263
|
-
optionsListClassName?: string;
|
|
264
|
-
/**
|
|
265
|
-
* Дополнительный класс для пункта меню
|
|
266
|
-
*/
|
|
267
|
-
optionClassName?: string;
|
|
268
|
-
/**
|
|
269
|
-
* Дополнительный класс для поповера
|
|
270
|
-
*/
|
|
271
|
-
popperClassName?: string;
|
|
272
|
-
/**
|
|
273
|
-
* Список вариантов выбора
|
|
274
|
-
*/
|
|
275
|
-
options: Array<OptionShape | GroupShape>;
|
|
276
|
-
/**
|
|
277
|
-
* Атрибут id
|
|
278
|
-
*/
|
|
279
|
-
id?: string;
|
|
280
|
-
/**
|
|
281
|
-
* Атрибут name
|
|
282
|
-
*/
|
|
283
|
-
name?: string;
|
|
284
|
-
/**
|
|
285
|
-
* Управление возможностью выбора значения
|
|
286
|
-
*/
|
|
287
|
-
disabled?: boolean;
|
|
288
|
-
/**
|
|
289
|
-
* Начальное состояние селекта
|
|
290
|
-
*/
|
|
291
|
-
defaultOpen?: boolean;
|
|
292
|
-
/**
|
|
293
|
-
* Управление открытием
|
|
294
|
-
*/
|
|
295
|
-
open?: boolean;
|
|
296
|
-
/**
|
|
297
|
-
* Возможность выбрать несколько значений
|
|
298
|
-
*/
|
|
299
|
-
multiple?: boolean;
|
|
300
|
-
/**
|
|
301
|
-
* Размер компонента
|
|
302
|
-
*/
|
|
303
|
-
size?: "s" | "m" | "l" | "xl";
|
|
304
|
-
/**
|
|
305
|
-
* Размер пунктов меню
|
|
306
|
-
*/
|
|
307
|
-
optionsSize?: "s" | "m" | "l" | "xl";
|
|
308
|
-
/**
|
|
309
|
-
* Растягивает компонент на ширину контейнера
|
|
310
|
-
*/
|
|
311
|
-
block?: boolean;
|
|
312
|
-
/**
|
|
313
|
-
* Управляет шириной выпадающего меню.
|
|
314
|
-
* Ширину определяет контент, либо ширина равна ширине поля
|
|
315
|
-
*/
|
|
316
|
-
optionsListWidth?: "content" | "field";
|
|
317
|
-
/**
|
|
318
|
-
* Лейбл поля
|
|
319
|
-
*/
|
|
320
|
-
label?: ReactNode;
|
|
321
|
-
/**
|
|
322
|
-
* Плейсхолдер поля
|
|
323
|
-
*/
|
|
324
|
-
placeholder?: string;
|
|
325
|
-
/**
|
|
326
|
-
* Отображение ошибки
|
|
327
|
-
*/
|
|
328
|
-
error?: ReactNode | boolean;
|
|
329
|
-
/**
|
|
330
|
-
* Подсказка под полем
|
|
331
|
-
*/
|
|
332
|
-
hint?: ReactNode;
|
|
333
|
-
/**
|
|
334
|
-
* Возможность использовать селект как input-autocomplete
|
|
335
|
-
*/
|
|
336
|
-
autocomplete?: boolean;
|
|
337
|
-
/**
|
|
338
|
-
* Позволяет снять выбранное значение
|
|
339
|
-
*/
|
|
340
|
-
allowUnselect?: boolean;
|
|
341
|
-
/**
|
|
342
|
-
* Закрывать меню после выбора?
|
|
343
|
-
*/
|
|
344
|
-
closeOnSelect?: boolean;
|
|
345
|
-
/**
|
|
346
|
-
* При навигации с клавиатуры переходить от последнего пункта меню к первому и наоборот.
|
|
347
|
-
*/
|
|
348
|
-
circularNavigation?: boolean;
|
|
349
|
-
/**
|
|
350
|
-
* Запрещает поповеру менять свою позицию.
|
|
351
|
-
* Например, если места снизу недостаточно,то он все равно будет показан снизу
|
|
352
|
-
*/
|
|
353
|
-
preventFlip?: boolean;
|
|
354
|
-
/**
|
|
355
|
-
* Список value выбранных пунктов (controlled-селект)
|
|
356
|
-
*/
|
|
357
|
-
selected?: Array<string | OptionShape> | string | OptionShape | null;
|
|
358
|
-
/**
|
|
359
|
-
* Рендерит нативный селект вместо выпадающего меню. (на десктопе использовать только с multiple=false)
|
|
360
|
-
*/
|
|
361
|
-
nativeSelect?: boolean;
|
|
362
|
-
/**
|
|
363
|
-
* Позиционирование выпадающего списка
|
|
364
|
-
*/
|
|
365
|
-
popoverPosition?: PopoverProps["position"];
|
|
366
|
-
/**
|
|
367
|
-
* Количество видимых пунктов меню (5 = 5.5)
|
|
368
|
-
*/
|
|
369
|
-
visibleOptions?: number;
|
|
370
|
-
/**
|
|
371
|
-
* Кастомный рендер выбранного пункта
|
|
372
|
-
*/
|
|
373
|
-
valueRenderer?: ({ selected, selectedMultiple }: {
|
|
374
|
-
selected?: OptionShape;
|
|
375
|
-
selectedMultiple: OptionShape[];
|
|
376
|
-
}) => ReactNode;
|
|
377
|
-
/**
|
|
378
|
-
* Компонент стрелки
|
|
379
|
-
*/
|
|
380
|
-
Arrow?: FC<ArrowProps> | null | false;
|
|
381
|
-
/**
|
|
382
|
-
* Компонент поля
|
|
383
|
-
*/
|
|
384
|
-
Field?: FC<FieldProps>;
|
|
385
|
-
/**
|
|
386
|
-
* Пропсы, которые будут прокинуты в компонент поля
|
|
387
|
-
*/
|
|
388
|
-
fieldProps?: unknown;
|
|
389
|
-
/**
|
|
390
|
-
* Пропсы, которые будут прокинуты в компонент списка
|
|
391
|
-
*/
|
|
392
|
-
optionsListProps?: unknown;
|
|
393
|
-
/**
|
|
394
|
-
* Пропсы, которые будут прокинуты в компонент пункта меню
|
|
395
|
-
*/
|
|
396
|
-
optionProps?: unknown;
|
|
397
|
-
/**
|
|
398
|
-
* Компонент выпадающего меню
|
|
399
|
-
*/
|
|
400
|
-
OptionsList?: FC<OptionsListProps>;
|
|
401
|
-
/**
|
|
402
|
-
* Компонент группы
|
|
403
|
-
*/
|
|
404
|
-
Optgroup?: FC<OptgroupProps>;
|
|
405
|
-
/**
|
|
406
|
-
* Компонент пункта меню
|
|
407
|
-
*/
|
|
408
|
-
Option?: FC<OptionProps>;
|
|
409
|
-
/**
|
|
410
|
-
* Обработчик выбора
|
|
411
|
-
*/
|
|
412
|
-
onChange?: (payload: {
|
|
413
|
-
selected: OptionShape | null;
|
|
414
|
-
selectedMultiple: OptionShape[];
|
|
415
|
-
initiator: OptionShape | null;
|
|
416
|
-
name?: string;
|
|
417
|
-
}) => void;
|
|
418
|
-
/**
|
|
419
|
-
* Обработчик открытия\закрытия селекта
|
|
420
|
-
*/
|
|
421
|
-
onOpen?: (payload: {
|
|
422
|
-
open?: boolean;
|
|
423
|
-
name?: string;
|
|
424
|
-
}) => void;
|
|
425
|
-
/**
|
|
426
|
-
* Обработчик фокуса поля
|
|
427
|
-
*/
|
|
428
|
-
onBlur?: (event: FocusEvent<HTMLDivElement | HTMLInputElement>) => void;
|
|
429
|
-
/**
|
|
430
|
-
* Обработчик блюра поля
|
|
431
|
-
*/
|
|
432
|
-
onFocus?: (event: FocusEvent<HTMLDivElement | HTMLInputElement>) => void;
|
|
433
|
-
/**
|
|
434
|
-
* Обработчик скрола
|
|
435
|
-
*/
|
|
436
|
-
onScroll?: (event: MouseEvent<HTMLDivElement>) => void;
|
|
437
|
-
/**
|
|
438
|
-
* Хранит функцию, с помощью которой можно обновить положение поповера
|
|
439
|
-
*/
|
|
440
|
-
updatePopover?: PopoverProps["update"];
|
|
441
|
-
/**
|
|
442
|
-
* z-index поповера
|
|
443
|
-
*/
|
|
444
|
-
zIndexPopover?: PopoverProps["zIndex"];
|
|
445
|
-
/**
|
|
446
|
-
* Показывать OptionsList, если он пустой
|
|
447
|
-
*/
|
|
448
|
-
showEmptyOptionsList?: boolean;
|
|
449
|
-
};
|
|
450
|
-
// TODO: использовать InputProps
|
|
451
|
-
type FieldProps = {
|
|
452
|
-
/**
|
|
453
|
-
* Дополнительный класс
|
|
454
|
-
*/
|
|
455
|
-
className?: string;
|
|
456
|
-
/**
|
|
457
|
-
* Размер компонента
|
|
458
|
-
*/
|
|
459
|
-
size?: "s" | "m" | "l" | "xl";
|
|
460
|
-
/**
|
|
461
|
-
* Выбранный пункт
|
|
462
|
-
*/
|
|
463
|
-
selected?: OptionShape;
|
|
464
|
-
/**
|
|
465
|
-
* Список выбранных пунктов
|
|
466
|
-
*/
|
|
467
|
-
selectedMultiple?: OptionShape[];
|
|
468
|
-
/**
|
|
469
|
-
* Метод для ручной установки выбранных пунктов
|
|
470
|
-
*/
|
|
471
|
-
setSelectedItems: (selected: OptionShape[]) => void;
|
|
472
|
-
/**
|
|
473
|
-
* Метод переключающий видимость выпадающего списка
|
|
474
|
-
*/
|
|
475
|
-
toggleMenu: () => void;
|
|
476
|
-
/**
|
|
477
|
-
* Флаг, можно ли выбрать несколько значений
|
|
478
|
-
*/
|
|
479
|
-
multiple?: boolean;
|
|
480
|
-
/**
|
|
481
|
-
* Флаг, открыто ли меню
|
|
482
|
-
*/
|
|
483
|
-
open?: boolean;
|
|
484
|
-
/**
|
|
485
|
-
* Флаг, поле заблокировано
|
|
486
|
-
*/
|
|
487
|
-
disabled?: boolean;
|
|
488
|
-
/**
|
|
489
|
-
* Лейбл поля
|
|
490
|
-
*/
|
|
491
|
-
label?: ReactNode;
|
|
492
|
-
/**
|
|
493
|
-
* Плейсхолдер поля
|
|
494
|
-
*/
|
|
495
|
-
placeholder?: string;
|
|
496
|
-
/**
|
|
497
|
-
* Отображение ошибки
|
|
498
|
-
*/
|
|
499
|
-
error?: ReactNode | boolean;
|
|
500
|
-
/**
|
|
501
|
-
* Отображение иконки успеха
|
|
502
|
-
*/
|
|
503
|
-
success?: boolean;
|
|
504
|
-
/**
|
|
505
|
-
* Подсказка под полем
|
|
506
|
-
*/
|
|
507
|
-
hint?: ReactNode;
|
|
508
|
-
/**
|
|
509
|
-
* Компонент стрелки
|
|
510
|
-
*/
|
|
511
|
-
Arrow?: ReactElement | false | null;
|
|
512
|
-
/**
|
|
513
|
-
* Кастомный рендер выбранного пункта
|
|
514
|
-
*/
|
|
515
|
-
valueRenderer?: BaseSelectProps["valueRenderer"];
|
|
516
|
-
/**
|
|
517
|
-
* Внутренние свойства, которые должны быть установлены компоненту.
|
|
518
|
-
*/
|
|
519
|
-
innerProps: {
|
|
520
|
-
onBlur?: (event: FocusEvent<HTMLDivElement | HTMLInputElement>) => void;
|
|
521
|
-
onFocus?: (event: FocusEvent<HTMLDivElement | HTMLInputElement>) => void;
|
|
522
|
-
onClick?: (event: MouseEvent<HTMLDivElement | HTMLInputElement>) => void;
|
|
523
|
-
tabIndex: number;
|
|
524
|
-
id: string;
|
|
525
|
-
} & RefAttributes<HTMLDivElement | HTMLInputElement> & AriaAttributes;
|
|
526
|
-
/**
|
|
527
|
-
* Идентификатор для систем автоматизированного тестирования
|
|
528
|
-
*/
|
|
529
|
-
dataTestId?: string;
|
|
530
|
-
};
|
|
531
|
-
type ArrowProps = {
|
|
532
|
-
/**
|
|
533
|
-
* Дополнительный класс
|
|
534
|
-
*/
|
|
535
|
-
className?: string;
|
|
536
|
-
/**
|
|
537
|
-
* Флаг, открыто ли меню
|
|
538
|
-
*/
|
|
539
|
-
open?: boolean;
|
|
540
|
-
};
|
|
541
|
-
type OptionsListProps = {
|
|
542
|
-
/**
|
|
543
|
-
* Дополнительный класс
|
|
544
|
-
*/
|
|
545
|
-
className?: string;
|
|
546
|
-
/**
|
|
547
|
-
* Размер компонента
|
|
548
|
-
*/
|
|
549
|
-
size?: "s" | "m" | "l" | "xl";
|
|
550
|
-
/**
|
|
551
|
-
* Компонент пункта меню
|
|
552
|
-
*/
|
|
553
|
-
Option: FC<OptionProps>;
|
|
554
|
-
/**
|
|
555
|
-
* Функция для получения пропсов для ячейки
|
|
556
|
-
*/
|
|
557
|
-
getOptionProps: (option: OptionShape, index: number) => OptionProps;
|
|
558
|
-
/**
|
|
559
|
-
* Список выбранных пунктов
|
|
560
|
-
*/
|
|
561
|
-
selectedItems?: OptionShape[];
|
|
562
|
-
/**
|
|
563
|
-
* Метод для ручной установки выбранных пунктов
|
|
564
|
-
*/
|
|
565
|
-
setSelectedItems: (selected: OptionShape[]) => void;
|
|
566
|
-
/**
|
|
567
|
-
* Метод переключающий видимость выпадающего списка
|
|
568
|
-
*/
|
|
569
|
-
toggleMenu: () => void;
|
|
570
|
-
/**
|
|
571
|
-
* Контент шапки
|
|
572
|
-
*/
|
|
573
|
-
header?: ReactNode;
|
|
574
|
-
/**
|
|
575
|
-
* Контент футера
|
|
576
|
-
*/
|
|
577
|
-
footer?: ReactNode;
|
|
578
|
-
/**
|
|
579
|
-
* Список вариантов выбора
|
|
580
|
-
*/
|
|
581
|
-
options?: Array<OptionShape | GroupShape>;
|
|
582
|
-
/**
|
|
583
|
-
* Плоский список пунктов меню (например, нужно для виртуализации)
|
|
584
|
-
*/
|
|
585
|
-
flatOptions?: OptionShape[];
|
|
586
|
-
/**
|
|
587
|
-
* Индекс выделенного пункта
|
|
588
|
-
*/
|
|
589
|
-
highlightedIndex?: number;
|
|
590
|
-
/**
|
|
591
|
-
* Флаг, открыто ли меню
|
|
592
|
-
*/
|
|
593
|
-
open?: boolean;
|
|
594
|
-
/**
|
|
595
|
-
* Компонент группы
|
|
596
|
-
*/
|
|
597
|
-
Optgroup?: BaseSelectProps["Optgroup"];
|
|
598
|
-
/**
|
|
599
|
-
* Будет отображаться, если компонент пустой
|
|
600
|
-
*/
|
|
601
|
-
emptyPlaceholder?: string;
|
|
602
|
-
/**
|
|
603
|
-
* Количество видимых пунктов меню (5 = 5.5)
|
|
604
|
-
*/
|
|
605
|
-
visibleOptions?: number;
|
|
606
|
-
/**
|
|
607
|
-
* Обработчик скрола
|
|
608
|
-
*/
|
|
609
|
-
onScroll?: (event: MouseEvent<HTMLDivElement>) => void;
|
|
610
|
-
/**
|
|
611
|
-
* Идентификатор для систем автоматизированного тестирования
|
|
612
|
-
*/
|
|
613
|
-
dataTestId?: string;
|
|
614
|
-
/**
|
|
615
|
-
* Дополнительные пропсы для Input'a, находящегося внутри кастомного OptionsList
|
|
616
|
-
*/
|
|
617
|
-
inputProps?: InputProps;
|
|
618
|
-
};
|
|
619
|
-
type OptgroupProps = {
|
|
620
|
-
/**
|
|
621
|
-
* Размер компонента
|
|
622
|
-
*/
|
|
623
|
-
size?: "s" | "m" | "l" | "xl";
|
|
624
|
-
/**
|
|
625
|
-
* Заголовок группы
|
|
626
|
-
*/
|
|
627
|
-
label?: string;
|
|
628
|
-
/**
|
|
629
|
-
* Дочерние элементы
|
|
630
|
-
*/
|
|
631
|
-
children?: ReactNode;
|
|
632
|
-
};
|
|
633
|
-
type OptionProps = {
|
|
634
|
-
/**
|
|
635
|
-
* Дополнительный класс
|
|
636
|
-
*/
|
|
637
|
-
className?: string;
|
|
638
|
-
/**
|
|
639
|
-
* Размер компонента
|
|
640
|
-
*/
|
|
641
|
-
size?: "s" | "m" | "l" | "xl";
|
|
642
|
-
/**
|
|
643
|
-
* Контент пункта меню
|
|
644
|
-
*/
|
|
645
|
-
children?: ReactNode;
|
|
646
|
-
/**
|
|
647
|
-
* Данные пункта меню
|
|
648
|
-
*/
|
|
649
|
-
option: OptionShape;
|
|
650
|
-
/**
|
|
651
|
-
* Индекс пункта
|
|
652
|
-
*/
|
|
653
|
-
index: number;
|
|
654
|
-
/**
|
|
655
|
-
* Флаг, выбран ли данный пункт
|
|
656
|
-
*/
|
|
657
|
-
selected?: boolean;
|
|
658
|
-
/**
|
|
659
|
-
* Флаг, подсвечен ли данный пункт
|
|
660
|
-
*/
|
|
661
|
-
highlighted?: boolean;
|
|
662
|
-
/**
|
|
663
|
-
* Флаг, заблокирован ли данный пункт
|
|
664
|
-
*/
|
|
665
|
-
disabled?: boolean;
|
|
666
|
-
/**
|
|
667
|
-
* Флаг множественного выбора
|
|
668
|
-
*/
|
|
669
|
-
multiple?: boolean;
|
|
670
|
-
/**
|
|
671
|
-
* Компонент пункта меню
|
|
672
|
-
*/
|
|
673
|
-
Checkmark?: FC<CheckmarkProps>;
|
|
674
|
-
/**
|
|
675
|
-
* Внутренние свойства, которые должны быть установлены компоненту.
|
|
676
|
-
*/
|
|
677
|
-
innerProps: {
|
|
678
|
-
id: string;
|
|
679
|
-
onClick: (event: MouseEvent<HTMLDivElement>) => void;
|
|
680
|
-
onMouseDown: (event: MouseEvent<HTMLDivElement>) => void;
|
|
681
|
-
onMouseMove: (event: MouseEvent<HTMLDivElement>) => void;
|
|
682
|
-
role: string;
|
|
683
|
-
} & RefAttributes<HTMLDivElement> & AriaAttributes;
|
|
684
|
-
/**
|
|
685
|
-
* Идентификатор для систем автоматизированного тестирования
|
|
686
|
-
*/
|
|
687
|
-
dataTestId?: string;
|
|
688
|
-
};
|
|
689
|
-
type CheckmarkProps = {
|
|
690
|
-
/**
|
|
691
|
-
* Флаг, данный пункт выбран
|
|
692
|
-
*/
|
|
693
|
-
selected?: boolean;
|
|
694
|
-
/**
|
|
695
|
-
* Дополнительный класс
|
|
696
|
-
*/
|
|
697
|
-
className?: string;
|
|
698
|
-
/**
|
|
699
|
-
* Флаг множественного выбора
|
|
700
|
-
*/
|
|
701
|
-
multiple?: boolean;
|
|
702
|
-
/**
|
|
703
|
-
* Расположение отметки
|
|
704
|
-
*/
|
|
705
|
-
position?: "before" | "after";
|
|
706
|
-
};
|
|
707
|
-
type BaseFieldProps = FieldProps;
|
|
708
|
-
type FieldProps$0 = Omit<BaseFieldProps, 'size' | 'hint' | 'success' | 'error' | 'placeholder'> & ButtonProps & {
|
|
3
|
+
import { FieldProps as BaseFieldProps } from "../typings-a22d6eaf";
|
|
4
|
+
import { PickerButtonSize, PickerButtonVariant } from "../Component";
|
|
5
|
+
type FieldProps = Omit<BaseFieldProps, 'size' | 'hint' | 'success' | 'error' | 'placeholder'> & ButtonProps & {
|
|
709
6
|
buttonSize?: PickerButtonSize;
|
|
7
|
+
buttonVariant?: PickerButtonVariant;
|
|
710
8
|
};
|
|
711
|
-
declare const Field: ({ buttonSize, view, label, open, multiple, rightAddons, Arrow, innerProps, className, selected, selectedMultiple, valueRenderer, ...restProps }: FieldProps
|
|
9
|
+
declare const Field: ({ buttonSize, buttonVariant, view, label, open, multiple, rightAddons, Arrow, innerProps, className, selected, selectedMultiple, valueRenderer, ...restProps }: FieldProps) => JSX.Element;
|
|
712
10
|
export { Field };
|