@snack-uikit/chips 0.24.3 → 0.25.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/CHANGELOG.md +16 -0
- package/README.md +28 -8
- package/dist/cjs/components/ChipChoice/components/ChipChoiceBase/ChipChoiceBase.d.ts +3 -7
- package/dist/cjs/components/ChipChoice/components/ChipChoiceBase/ChipChoiceBase.js +3 -4
- package/dist/cjs/components/ChipChoice/components/ChipChoiceCustom.d.ts +1 -1
- package/dist/cjs/components/ChipChoice/components/ChipChoiceCustom.js +9 -9
- package/dist/cjs/components/ChipChoice/components/ChipChoiceDate.d.ts +1 -1
- package/dist/cjs/components/ChipChoice/components/ChipChoiceDate.js +9 -6
- package/dist/cjs/components/ChipChoice/components/ChipChoiceDateRange.d.ts +1 -1
- package/dist/cjs/components/ChipChoice/components/ChipChoiceDateRange.js +8 -6
- package/dist/cjs/components/ChipChoice/components/ChipChoiceMultiple.d.ts +1 -1
- package/dist/cjs/components/ChipChoice/components/ChipChoiceMultiple.js +8 -10
- package/dist/cjs/components/ChipChoice/components/ChipChoiceSingle.d.ts +1 -1
- package/dist/cjs/components/ChipChoice/components/ChipChoiceSingle.js +9 -9
- package/dist/cjs/components/ChipChoice/components/ChipChoiceTime.d.ts +1 -1
- package/dist/cjs/components/ChipChoice/components/ChipChoiceTime.js +9 -6
- package/dist/cjs/components/ChipChoice/constants.d.ts +1 -0
- package/dist/cjs/components/ChipChoice/constants.js +1 -0
- package/dist/cjs/components/ChipChoice/types.d.ts +7 -3
- package/dist/cjs/components/ChipChoiceRow/ChipChoiceRow.d.ts +12 -6
- package/dist/cjs/components/ChipChoiceRow/ChipChoiceRow.js +145 -24
- package/dist/cjs/components/ChipChoiceRow/components/constants.d.ts +1 -0
- package/dist/cjs/components/ChipChoiceRow/components/constants.js +1 -0
- package/dist/cjs/components/ChipChoiceRow/helpers.d.ts +5 -0
- package/dist/cjs/components/ChipChoiceRow/helpers.js +19 -0
- package/dist/cjs/components/ChipChoiceRow/index.d.ts +1 -0
- package/dist/cjs/components/ChipChoiceRow/index.js +2 -1
- package/dist/cjs/components/ChipChoiceRow/styles.module.css +21 -0
- package/dist/cjs/components/ChipChoiceRow/types.d.ts +5 -5
- package/dist/cjs/constants.d.ts +4 -1
- package/dist/cjs/constants.js +4 -1
- package/dist/esm/components/ChipChoice/components/ChipChoiceBase/ChipChoiceBase.d.ts +3 -7
- package/dist/esm/components/ChipChoice/components/ChipChoiceBase/ChipChoiceBase.js +2 -2
- package/dist/esm/components/ChipChoice/components/ChipChoiceCustom.d.ts +1 -1
- package/dist/esm/components/ChipChoice/components/ChipChoiceCustom.js +6 -9
- package/dist/esm/components/ChipChoice/components/ChipChoiceDate.d.ts +1 -1
- package/dist/esm/components/ChipChoice/components/ChipChoiceDate.js +6 -6
- package/dist/esm/components/ChipChoice/components/ChipChoiceDateRange.d.ts +1 -1
- package/dist/esm/components/ChipChoice/components/ChipChoiceDateRange.js +5 -6
- package/dist/esm/components/ChipChoice/components/ChipChoiceMultiple.d.ts +1 -1
- package/dist/esm/components/ChipChoice/components/ChipChoiceMultiple.js +4 -7
- package/dist/esm/components/ChipChoice/components/ChipChoiceSingle.d.ts +1 -1
- package/dist/esm/components/ChipChoice/components/ChipChoiceSingle.js +5 -8
- package/dist/esm/components/ChipChoice/components/ChipChoiceTime.d.ts +1 -1
- package/dist/esm/components/ChipChoice/components/ChipChoiceTime.js +6 -6
- package/dist/esm/components/ChipChoice/constants.d.ts +1 -0
- package/dist/esm/components/ChipChoice/constants.js +1 -0
- package/dist/esm/components/ChipChoice/types.d.ts +7 -3
- package/dist/esm/components/ChipChoiceRow/ChipChoiceRow.d.ts +12 -6
- package/dist/esm/components/ChipChoiceRow/ChipChoiceRow.js +82 -13
- package/dist/esm/components/ChipChoiceRow/components/constants.d.ts +1 -0
- package/dist/esm/components/ChipChoiceRow/components/constants.js +1 -0
- package/dist/esm/components/ChipChoiceRow/helpers.d.ts +5 -0
- package/dist/esm/components/ChipChoiceRow/helpers.js +13 -0
- package/dist/esm/components/ChipChoiceRow/index.d.ts +1 -0
- package/dist/esm/components/ChipChoiceRow/index.js +1 -0
- package/dist/esm/components/ChipChoiceRow/styles.module.css +21 -0
- package/dist/esm/components/ChipChoiceRow/types.d.ts +5 -5
- package/dist/esm/constants.d.ts +4 -1
- package/dist/esm/constants.js +4 -1
- package/package.json +7 -5
- package/src/components/ChipChoice/components/ChipChoiceBase/ChipChoiceBase.tsx +2 -7
- package/src/components/ChipChoice/components/ChipChoiceCustom.tsx +8 -9
- package/src/components/ChipChoice/components/ChipChoiceDate.tsx +8 -6
- package/src/components/ChipChoice/components/ChipChoiceDateRange.tsx +7 -7
- package/src/components/ChipChoice/components/ChipChoiceMultiple.tsx +6 -8
- package/src/components/ChipChoice/components/ChipChoiceSingle.tsx +7 -7
- package/src/components/ChipChoice/components/ChipChoiceTime.tsx +8 -6
- package/src/components/ChipChoice/constants.ts +1 -0
- package/src/components/ChipChoice/types.ts +7 -2
- package/src/components/ChipChoiceRow/ChipChoiceRow.tsx +203 -30
- package/src/components/ChipChoiceRow/components/constants.ts +1 -0
- package/src/components/ChipChoiceRow/helpers.ts +15 -0
- package/src/components/ChipChoiceRow/index.ts +1 -0
- package/src/components/ChipChoiceRow/styles.module.scss +25 -2
- package/src/components/ChipChoiceRow/types.ts +13 -4
- package/src/constants.ts +4 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,22 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# 0.25.0 (2025-02-05)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **PDS-1081:** add chip-choice-time to chip choice row ([5533d1d](https://github.com/cloud-ru-tech/snack-uikit/commit/5533d1d8403ec3363734aa8cee7f12c514d7931d))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### BREAKING CHANGES
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
* **PDS-1081:** new chip choice row behavior (now chips can be pinned and dynamically added) ([c558fb0](https://github.com/cloud-ru-tech/snack-uikit/commit/c558fb05b3af0a71083e5715d97d19955e34d446))
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
6
22
|
## 0.24.3 (2025-02-04)
|
|
7
23
|
|
|
8
24
|
### Only dependencies have been changed
|
package/README.md
CHANGED
|
@@ -125,10 +125,12 @@ import { PlaceholderSVG } from '@snack-uikit/icons';
|
|
|
125
125
|
| size | enum Size: `"xs"`, `"s"`, `"m"`, `"l"` | - | Размер |
|
|
126
126
|
| onClick | `MouseEventHandler<HTMLButtonElement \| HTMLDivElement>` | - | Колбек обработки клика |
|
|
127
127
|
| disableFuzzySearch | `boolean` | false | Отключает Fuzzy Search. Иногда в дроплисте могут быть различные айдишники - нам важно искать их без Fuzzy Search |
|
|
128
|
-
|
|
|
128
|
+
| onClearButtonClick | `MouseEventHandler<HTMLButtonElement>` | - | Колбек для клика по кнопке очистки |
|
|
129
129
|
| placement | enum Placement: `"left"`, `"left-start"`, `"left-end"`, `"right"`, `"right-start"`, `"right-end"`, `"top"`, `"top-start"`, `"top-end"`, `"bottom"`, `"bottom-start"`, `"bottom-end"` | - | Расположение выпадающего меню |
|
|
130
130
|
| widthStrategy | enum PopoverWidthStrategy: `"auto"`, `"gte"`, `"eq"` | gte | Стратегия управления шириной контейнера поповера <br> - `auto` - соответствует ширине контента, <br> - `gte` - Great Than or Equal, равен ширине таргета или больше ее, если контент в поповере шире, <br> - `eq` - Equal, строго равен ширине таргета. |
|
|
131
131
|
| dropDownClassName | `string` | - | |
|
|
132
|
+
| open | `boolean` | - | Управляет состоянием показан/не показан. |
|
|
133
|
+
| onOpenChange | `(isOpen: boolean) => void` | - | Колбек отображения компонента. Срабатывает при изменении состояния open. |
|
|
132
134
|
| valueRender | `(value: any) => ReactNode` | - | Отображаемое значение |
|
|
133
135
|
| value | `any` | - | Фактическое значение. Используется для отображения кнопки очистки, если свойство <strong>showClearButton=true</strong> |
|
|
134
136
|
| onChange | `(value: any) => void` | - | |
|
|
@@ -147,10 +149,12 @@ import { PlaceholderSVG } from '@snack-uikit/icons';
|
|
|
147
149
|
| size | enum Size: `"xs"`, `"s"`, `"m"`, `"l"` | - | Размер |
|
|
148
150
|
| onClick | `MouseEventHandler<HTMLButtonElement \| HTMLDivElement>` | - | Колбек обработки клика |
|
|
149
151
|
| disableFuzzySearch | `boolean` | false | Отключает Fuzzy Search. Иногда в дроплисте могут быть различные айдишники - нам важно искать их без Fuzzy Search |
|
|
150
|
-
|
|
|
152
|
+
| onClearButtonClick | `MouseEventHandler<HTMLButtonElement>` | - | Колбек для клика по кнопке очистки |
|
|
151
153
|
| placement | enum Placement: `"left"`, `"left-start"`, `"left-end"`, `"right"`, `"right-start"`, `"right-end"`, `"top"`, `"top-start"`, `"top-end"`, `"bottom"`, `"bottom-start"`, `"bottom-end"` | - | Расположение выпадающего меню |
|
|
152
154
|
| widthStrategy | enum PopoverWidthStrategy: `"auto"`, `"gte"`, `"eq"` | gte | Стратегия управления шириной контейнера поповера <br> - `auto` - соответствует ширине контента, <br> - `gte` - Great Than or Equal, равен ширине таргета или больше ее, если контент в поповере шире, <br> - `eq` - Equal, строго равен ширине таргета. |
|
|
153
155
|
| dropDownClassName | `string` | - | |
|
|
156
|
+
| open | `boolean` | - | Управляет состоянием показан/не показан. |
|
|
157
|
+
| onOpenChange | `(isOpen: boolean) => void` | - | Колбек отображения компонента. Срабатывает при изменении состояния open. |
|
|
154
158
|
| contentRender | `(option: { label: ItemId; value?: ItemId; contentRenderProps?: T; }) => ReactNode` | - | |
|
|
155
159
|
| filterFn | `(option: { label: ItemId; value?: ItemId; contentRenderProps?: T; }) => boolean` | - | |
|
|
156
160
|
| searchable | `boolean` | - | |
|
|
@@ -168,6 +172,7 @@ import { PlaceholderSVG } from '@snack-uikit/icons';
|
|
|
168
172
|
| noDataState | `EmptyStateProps` | - | Экран при отстутствии данных |
|
|
169
173
|
| noResultsState | `EmptyStateProps` | - | Экран при отстутствии результатов поиска или фильтров |
|
|
170
174
|
| errorDataState | `EmptyStateProps` | - | Экран при ошибке запроса |
|
|
175
|
+
| virtualized | `boolean` | - | Включить виртуализацию на компоненты списка. Рекомендуется если у вас от 1к элементов списка |
|
|
171
176
|
| onChange | `OnChangeHandler<any>` | - | Controlled обработчик измения состояния |
|
|
172
177
|
| value | `ItemId` | - | Controlled состояние |
|
|
173
178
|
| defaultValue | `ItemId` | - | Начальное состояние |
|
|
@@ -186,10 +191,12 @@ import { PlaceholderSVG } from '@snack-uikit/icons';
|
|
|
186
191
|
| size | enum Size: `"xs"`, `"s"`, `"m"`, `"l"` | - | Размер |
|
|
187
192
|
| onClick | `MouseEventHandler<HTMLButtonElement \| HTMLDivElement>` | - | Колбек обработки клика |
|
|
188
193
|
| disableFuzzySearch | `boolean` | false | Отключает Fuzzy Search. Иногда в дроплисте могут быть различные айдишники - нам важно искать их без Fuzzy Search |
|
|
189
|
-
|
|
|
194
|
+
| onClearButtonClick | `MouseEventHandler<HTMLButtonElement>` | - | Колбек для клика по кнопке очистки |
|
|
190
195
|
| placement | enum Placement: `"left"`, `"left-start"`, `"left-end"`, `"right"`, `"right-start"`, `"right-end"`, `"top"`, `"top-start"`, `"top-end"`, `"bottom"`, `"bottom-start"`, `"bottom-end"` | - | Расположение выпадающего меню |
|
|
191
196
|
| widthStrategy | enum PopoverWidthStrategy: `"auto"`, `"gte"`, `"eq"` | gte | Стратегия управления шириной контейнера поповера <br> - `auto` - соответствует ширине контента, <br> - `gte` - Great Than or Equal, равен ширине таргета или больше ее, если контент в поповере шире, <br> - `eq` - Equal, строго равен ширине таргета. |
|
|
192
197
|
| dropDownClassName | `string` | - | |
|
|
198
|
+
| open | `boolean` | - | Управляет состоянием показан/не показан. |
|
|
199
|
+
| onOpenChange | `(isOpen: boolean) => void` | - | Колбек отображения компонента. Срабатывает при изменении состояния open. |
|
|
193
200
|
| contentRender | `(option: { label: ItemId; value?: ItemId; contentRenderProps?: T; }) => ReactNode` | - | |
|
|
194
201
|
| filterFn | `(option: { label: ItemId; value?: ItemId; contentRenderProps?: T; }) => boolean` | - | |
|
|
195
202
|
| searchable | `boolean` | - | |
|
|
@@ -207,6 +214,7 @@ import { PlaceholderSVG } from '@snack-uikit/icons';
|
|
|
207
214
|
| noDataState | `EmptyStateProps` | - | Экран при отстутствии данных |
|
|
208
215
|
| noResultsState | `EmptyStateProps` | - | Экран при отстутствии результатов поиска или фильтров |
|
|
209
216
|
| errorDataState | `EmptyStateProps` | - | Экран при ошибке запроса |
|
|
217
|
+
| virtualized | `boolean` | - | Включить виртуализацию на компоненты списка. Рекомендуется если у вас от 1к элементов списка |
|
|
210
218
|
| onChange | `OnChangeHandler<any>` | - | Controlled обработчик измения состояния |
|
|
211
219
|
| value | `ItemId[]` | - | Controlled состояние |
|
|
212
220
|
| defaultValue | `ItemId[]` | - | Начальное состояние |
|
|
@@ -224,10 +232,12 @@ import { PlaceholderSVG } from '@snack-uikit/icons';
|
|
|
224
232
|
| size | enum Size: `"xs"`, `"s"`, `"m"`, `"l"` | - | Размер |
|
|
225
233
|
| onClick | `MouseEventHandler<HTMLButtonElement \| HTMLDivElement>` | - | Колбек обработки клика |
|
|
226
234
|
| disableFuzzySearch | `boolean` | false | Отключает Fuzzy Search. Иногда в дроплисте могут быть различные айдишники - нам важно искать их без Fuzzy Search |
|
|
227
|
-
|
|
|
235
|
+
| onClearButtonClick | `MouseEventHandler<HTMLButtonElement>` | - | Колбек для клика по кнопке очистки |
|
|
228
236
|
| placement | enum Placement: `"left"`, `"left-start"`, `"left-end"`, `"right"`, `"right-start"`, `"right-end"`, `"top"`, `"top-start"`, `"top-end"`, `"bottom"`, `"bottom-start"`, `"bottom-end"` | - | Расположение выпадающего меню |
|
|
229
237
|
| widthStrategy | enum PopoverWidthStrategy: `"auto"`, `"gte"`, `"eq"` | gte | Стратегия управления шириной контейнера поповера <br> - `auto` - соответствует ширине контента, <br> - `gte` - Great Than or Equal, равен ширине таргета или больше ее, если контент в поповере шире, <br> - `eq` - Equal, строго равен ширине таргета. |
|
|
230
238
|
| dropDownClassName | `string` | - | |
|
|
239
|
+
| open | `boolean` | - | Управляет состоянием показан/не показан. |
|
|
240
|
+
| onOpenChange | `(isOpen: boolean) => void` | - | Колбек отображения компонента. Срабатывает при изменении состояния open. |
|
|
231
241
|
| value | `Date` | - | Значение компонента |
|
|
232
242
|
| defaultValue | `Date` | - | Значение компонента по-умолчанию |
|
|
233
243
|
| onChange | `(value: Date) => void` | - | Колбек смены значения |
|
|
@@ -248,10 +258,12 @@ import { PlaceholderSVG } from '@snack-uikit/icons';
|
|
|
248
258
|
| size | enum Size: `"xs"`, `"s"`, `"m"`, `"l"` | - | Размер |
|
|
249
259
|
| onClick | `MouseEventHandler<HTMLButtonElement \| HTMLDivElement>` | - | Колбек обработки клика |
|
|
250
260
|
| disableFuzzySearch | `boolean` | false | Отключает Fuzzy Search. Иногда в дроплисте могут быть различные айдишники - нам важно искать их без Fuzzy Search |
|
|
251
|
-
|
|
|
261
|
+
| onClearButtonClick | `MouseEventHandler<HTMLButtonElement>` | - | Колбек для клика по кнопке очистки |
|
|
252
262
|
| placement | enum Placement: `"left"`, `"left-start"`, `"left-end"`, `"right"`, `"right-start"`, `"right-end"`, `"top"`, `"top-start"`, `"top-end"`, `"bottom"`, `"bottom-start"`, `"bottom-end"` | - | Расположение выпадающего меню |
|
|
253
263
|
| widthStrategy | enum PopoverWidthStrategy: `"auto"`, `"gte"`, `"eq"` | gte | Стратегия управления шириной контейнера поповера <br> - `auto` - соответствует ширине контента, <br> - `gte` - Great Than or Equal, равен ширине таргета или больше ее, если контент в поповере шире, <br> - `eq` - Equal, строго равен ширине таргета. |
|
|
254
264
|
| dropDownClassName | `string` | - | |
|
|
265
|
+
| open | `boolean` | - | Управляет состоянием показан/не показан. |
|
|
266
|
+
| onOpenChange | `(isOpen: boolean) => void` | - | Колбек отображения компонента. Срабатывает при изменении состояния open. |
|
|
255
267
|
| value | `Range` | - | Значение компонента |
|
|
256
268
|
| defaultValue | `Range` | - | Значение компонента по умолчанию |
|
|
257
269
|
| onChange | `(value: Range) => void` | - | Колбек смены значения |
|
|
@@ -270,8 +282,10 @@ import { PlaceholderSVG } from '@snack-uikit/icons';
|
|
|
270
282
|
| size | enum Size: `"xs"`, `"s"`, `"m"`, `"l"` | - | Размер |
|
|
271
283
|
| onClick | `MouseEventHandler<HTMLButtonElement \| HTMLDivElement>` | - | Колбек обработки клика |
|
|
272
284
|
| disableFuzzySearch | `boolean` | false | Отключает Fuzzy Search. Иногда в дроплисте могут быть различные айдишники - нам важно искать их без Fuzzy Search |
|
|
273
|
-
|
|
|
285
|
+
| onClearButtonClick | `MouseEventHandler<HTMLButtonElement>` | - | Колбек для клика по кнопке очистки |
|
|
274
286
|
| placement | enum Placement: `"left"`, `"left-start"`, `"left-end"`, `"right"`, `"right-start"`, `"right-end"`, `"top"`, `"top-start"`, `"top-end"`, `"bottom"`, `"bottom-start"`, `"bottom-end"` | - | Расположение выпадающего меню |
|
|
287
|
+
| open | `boolean` | - | Управляет состоянием показан/не показан. |
|
|
288
|
+
| onOpenChange | `(isOpen: boolean) => void` | - | Колбек отображения компонента. Срабатывает при изменении состояния open. |
|
|
275
289
|
| dropDownClassName | `string` | - | |
|
|
276
290
|
| value | `TimeValue` | - | Выбранное значение. |
|
|
277
291
|
| defaultValue | `TimeValue` | - | Значение по-умолчанию для uncontrolled. |
|
|
@@ -308,8 +322,14 @@ import { PlaceholderSVG } from '@snack-uikit/icons';
|
|
|
308
322
|
| onChange | `(filters: TState) => void` | - | Колбек изменения состояния фильтров |
|
|
309
323
|
| size | enum ChipChoiceRowSize: `"xs"`, `"s"`, `"m"` | s | Размер |
|
|
310
324
|
| className | `string` | - | CSS-класс |
|
|
311
|
-
|
|
|
312
|
-
|
|
|
325
|
+
| showClearButton | `boolean` | true | Скрыть/показать кнопку очиски фильтров |
|
|
326
|
+
| showAddButton | `boolean` | true | Скрыть/показать кнопку добавления фильров |
|
|
327
|
+
| visibleFilters | `string[]` | - | Состояние для видимых фильтров |
|
|
328
|
+
| onVisibleFiltersChange | `(value: string[]) => void` | - | Коллбек на изменение видимых фильтров |
|
|
329
|
+
## hasFilterBeenApplied
|
|
330
|
+
`hasFilterBeenApplied`
|
|
331
|
+
|
|
332
|
+
функция проверки заполненности фильтра
|
|
313
333
|
|
|
314
334
|
|
|
315
335
|
[//]: DOCUMENTATION_SECTION_END
|
|
@@ -1,20 +1,16 @@
|
|
|
1
|
-
import { KeyboardEvent,
|
|
1
|
+
import { KeyboardEvent, ReactNode } from 'react';
|
|
2
2
|
import { ChipChoiceCommonProps } from '../../types';
|
|
3
|
-
export type ChipChoiceBaseProps = Pick<ChipChoiceCommonProps, 'loading' | 'tabIndex' | '
|
|
3
|
+
export type ChipChoiceBaseProps = Pick<ChipChoiceCommonProps, 'loading' | 'tabIndex' | 'onClearButtonClick' | 'disabled' | 'icon' | 'label' | 'size' | 'onClick' | 'className'> & {
|
|
4
4
|
/** Отображаемое значение */
|
|
5
5
|
valueToRender?: ReactNode;
|
|
6
6
|
/** Фактическое значение. Используется для отображения кнопки очистки, если свойство <strong>showClearButton=true</strong> */
|
|
7
7
|
value?: any;
|
|
8
|
-
/** Колбек для клика по кнопке очистки */
|
|
9
|
-
onClearButtonClick?: MouseEventHandler<HTMLButtonElement>;
|
|
10
8
|
onKeyDown?(e: KeyboardEvent<HTMLDivElement>): void;
|
|
11
9
|
};
|
|
12
|
-
export declare const ChipChoiceBase: import("react").ForwardRefExoticComponent<Pick<ChipChoiceCommonProps, "icon" | "size" | "label" | "disabled" | "loading" | "onClick" | "className" | "tabIndex" | "
|
|
10
|
+
export declare const ChipChoiceBase: import("react").ForwardRefExoticComponent<Pick<ChipChoiceCommonProps, "icon" | "size" | "label" | "disabled" | "loading" | "onClick" | "className" | "tabIndex" | "onClearButtonClick"> & {
|
|
13
11
|
/** Отображаемое значение */
|
|
14
12
|
valueToRender?: ReactNode;
|
|
15
13
|
/** Фактическое значение. Используется для отображения кнопки очистки, если свойство <strong>showClearButton=true</strong> */
|
|
16
14
|
value?: any;
|
|
17
|
-
/** Колбек для клика по кнопке очистки */
|
|
18
|
-
onClearButtonClick?: MouseEventHandler<HTMLButtonElement>;
|
|
19
15
|
onKeyDown?(e: KeyboardEvent<HTMLDivElement>): void;
|
|
20
16
|
} & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -40,14 +40,14 @@ exports.ChipChoiceBase = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
40
40
|
className,
|
|
41
41
|
tabIndex = 0,
|
|
42
42
|
onClearButtonClick,
|
|
43
|
-
onKeyDown
|
|
44
|
-
showClearButton: showClearButtonProp = true
|
|
43
|
+
onKeyDown
|
|
45
44
|
} = _a,
|
|
46
|
-
rest = __rest(_a, ["size", "disabled", "loading", "icon", "label", "valueToRender", "value", "onClick", "className", "tabIndex", "onClearButtonClick", "onKeyDown"
|
|
45
|
+
rest = __rest(_a, ["size", "disabled", "loading", "icon", "label", "valueToRender", "value", "onClick", "className", "tabIndex", "onClearButtonClick", "onKeyDown"]);
|
|
47
46
|
const variant = icon && size !== constants_1.SIZE.Xs ? constants_1.VARIANT.IconBefore : constants_1.VARIANT.LabelOnly;
|
|
48
47
|
const spinnerSize = size === constants_1.SIZE.Xs ? 'xs' : 's';
|
|
49
48
|
const localRef = (0, react_1.useRef)(null);
|
|
50
49
|
const clearButtonRef = (0, react_1.useRef)(null);
|
|
50
|
+
const showClearButton = Boolean(onClearButtonClick);
|
|
51
51
|
const [isDroplistOpened, setIsDroplistOpened] = (0, react_1.useState)(false);
|
|
52
52
|
const handleChipClick = e => {
|
|
53
53
|
if (loading || disabled) return;
|
|
@@ -84,7 +84,6 @@ exports.ChipChoiceBase = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
84
84
|
break;
|
|
85
85
|
}
|
|
86
86
|
};
|
|
87
|
-
const showClearButton = showClearButtonProp && (value instanceof Date || Boolean(value));
|
|
88
87
|
return (0, jsx_runtime_1.jsxs)("div", Object.assign({}, (0, utils_1.extractSupportProps)(rest), {
|
|
89
88
|
role: 'button',
|
|
90
89
|
ref: (0, merge_refs_1.default)(localRef, ref),
|
|
@@ -21,5 +21,5 @@ export type ChipChoiceCustomProps = ChipChoiceCommonProps & {
|
|
|
21
21
|
*/
|
|
22
22
|
content?: (props: CustomContentRenderProps) => ReactNode;
|
|
23
23
|
};
|
|
24
|
-
export declare function ChipChoiceCustom({ size, value: valueProp, onChange: onChangeProp, placement, widthStrategy, content, valueRender, ...rest }: ChipChoiceCustomProps): import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
export declare function ChipChoiceCustom({ size, value: valueProp, onChange: onChangeProp, placement, widthStrategy, content, valueRender, onClearButtonClick, open: openProp, onOpenChange, ...rest }: ChipChoiceCustomProps): import("react/jsx-runtime").JSX.Element;
|
|
25
25
|
export {};
|
|
@@ -14,6 +14,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
14
14
|
exports.ChipChoiceCustom = ChipChoiceCustom;
|
|
15
15
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
16
16
|
const react_1 = require("react");
|
|
17
|
+
const uncontrollable_1 = require("uncontrollable");
|
|
17
18
|
const dropdown_1 = require("@snack-uikit/dropdown");
|
|
18
19
|
const utils_1 = require("@snack-uikit/utils");
|
|
19
20
|
const constants_1 = require("../../../constants");
|
|
@@ -28,15 +29,18 @@ function ChipChoiceCustom(_a) {
|
|
|
28
29
|
placement = 'bottom-start',
|
|
29
30
|
widthStrategy = 'gte',
|
|
30
31
|
content,
|
|
31
|
-
valueRender
|
|
32
|
+
valueRender,
|
|
33
|
+
onClearButtonClick,
|
|
34
|
+
open: openProp,
|
|
35
|
+
onOpenChange
|
|
32
36
|
} = _a,
|
|
33
|
-
rest = __rest(_a, ["size", "value", "onChange", "placement", "widthStrategy", "content", "valueRender"]);
|
|
37
|
+
rest = __rest(_a, ["size", "value", "onChange", "placement", "widthStrategy", "content", "valueRender", "onClearButtonClick", "open", "onOpenChange"]);
|
|
34
38
|
const localRef = (0, react_1.useRef)(null);
|
|
35
39
|
const [value, setValue] = (0, utils_1.useValueControl)({
|
|
36
40
|
value: valueProp,
|
|
37
41
|
onChange: onChangeProp
|
|
38
42
|
});
|
|
39
|
-
const [open, setOpen] = (0,
|
|
43
|
+
const [open, setOpen] = (0, uncontrollable_1.useUncontrolledProp)(openProp, false, onOpenChange);
|
|
40
44
|
const handleOnKeyDown = (0, hooks_1.useHandleOnKeyDown)({
|
|
41
45
|
setOpen
|
|
42
46
|
});
|
|
@@ -46,11 +50,7 @@ function ChipChoiceCustom(_a) {
|
|
|
46
50
|
var _a;
|
|
47
51
|
return (_a = localRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
48
52
|
}, 0);
|
|
49
|
-
}, []);
|
|
50
|
-
const clearValue = () => {
|
|
51
|
-
setValue === null || setValue === void 0 ? void 0 : setValue(undefined);
|
|
52
|
-
closeDroplist();
|
|
53
|
-
};
|
|
53
|
+
}, [setOpen]);
|
|
54
54
|
return (0, jsx_runtime_1.jsx)(dropdown_1.Dropdown, {
|
|
55
55
|
trigger: 'click',
|
|
56
56
|
widthStrategy: widthStrategy,
|
|
@@ -67,7 +67,7 @@ function ChipChoiceCustom(_a) {
|
|
|
67
67
|
}) : content,
|
|
68
68
|
children: (0, jsx_runtime_1.jsx)(ChipChoiceBase_1.ChipChoiceBase, Object.assign({}, rest, {
|
|
69
69
|
valueToRender: (_b = valueRender === null || valueRender === void 0 ? void 0 : valueRender(value)) !== null && _b !== void 0 ? _b : value,
|
|
70
|
-
onClearButtonClick:
|
|
70
|
+
onClearButtonClick: onClearButtonClick,
|
|
71
71
|
ref: localRef,
|
|
72
72
|
value: value,
|
|
73
73
|
size: size,
|
|
@@ -20,5 +20,5 @@ export type ChipChoiceDateProps = ChipChoiceCommonProps & {
|
|
|
20
20
|
} & (ChipChoiceDateWithSeconds | {
|
|
21
21
|
mode?: 'date' | 'month';
|
|
22
22
|
});
|
|
23
|
-
export declare function ChipChoiceDate({ size, value, defaultValue, onChange, valueRender, dropDownClassName, mode, placement, widthStrategy, buildCalendarCellProps, ...rest }: ChipChoiceDateProps): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
export declare function ChipChoiceDate({ size, value, defaultValue, onChange, valueRender, dropDownClassName, mode, placement, widthStrategy, buildCalendarCellProps, onClearButtonClick, open: openProp, onOpenChange, ...rest }: ChipChoiceDateProps): import("react/jsx-runtime").JSX.Element;
|
|
24
24
|
export {};
|
|
@@ -14,6 +14,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
14
14
|
exports.ChipChoiceDate = ChipChoiceDate;
|
|
15
15
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
16
16
|
const react_1 = require("react");
|
|
17
|
+
const uncontrollable_1 = require("uncontrollable");
|
|
17
18
|
const calendar_1 = require("@snack-uikit/calendar");
|
|
18
19
|
const dropdown_1 = require("@snack-uikit/dropdown");
|
|
19
20
|
const locale_1 = require("@snack-uikit/locale");
|
|
@@ -34,9 +35,12 @@ function ChipChoiceDate(_a) {
|
|
|
34
35
|
mode = 'date',
|
|
35
36
|
placement,
|
|
36
37
|
widthStrategy,
|
|
37
|
-
buildCalendarCellProps
|
|
38
|
+
buildCalendarCellProps,
|
|
39
|
+
onClearButtonClick,
|
|
40
|
+
open: openProp,
|
|
41
|
+
onOpenChange
|
|
38
42
|
} = _a,
|
|
39
|
-
rest = __rest(_a, ["size", "value", "defaultValue", "onChange", "valueRender", "dropDownClassName", "mode", "placement", "widthStrategy", "buildCalendarCellProps"]);
|
|
43
|
+
rest = __rest(_a, ["size", "value", "defaultValue", "onChange", "valueRender", "dropDownClassName", "mode", "placement", "widthStrategy", "buildCalendarCellProps", "onClearButtonClick", "open", "onOpenChange"]);
|
|
40
44
|
const [selectedValue, setSelectedValue] = (0, utils_1.useValueControl)({
|
|
41
45
|
value,
|
|
42
46
|
defaultValue,
|
|
@@ -44,7 +48,7 @@ function ChipChoiceDate(_a) {
|
|
|
44
48
|
});
|
|
45
49
|
const showSeconds = mode === 'date-time' ? (_b = rest.showSeconds) !== null && _b !== void 0 ? _b : true : undefined;
|
|
46
50
|
const localRef = (0, react_1.useRef)(null);
|
|
47
|
-
const [open, setOpen] = (0,
|
|
51
|
+
const [open, setOpen] = (0, uncontrollable_1.useUncontrolledProp)(openProp, false, onOpenChange);
|
|
48
52
|
const handleOnKeyDown = (0, hooks_1.useHandleOnKeyDown)({
|
|
49
53
|
setOpen
|
|
50
54
|
});
|
|
@@ -54,7 +58,7 @@ function ChipChoiceDate(_a) {
|
|
|
54
58
|
var _a;
|
|
55
59
|
return (_a = localRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
56
60
|
}, 0);
|
|
57
|
-
}, []);
|
|
61
|
+
}, [setOpen]);
|
|
58
62
|
const {
|
|
59
63
|
t
|
|
60
64
|
} = (0, locale_1.useLocale)('Chips');
|
|
@@ -80,7 +84,6 @@ function ChipChoiceDate(_a) {
|
|
|
80
84
|
day: mode === 'date' ? 'numeric' : undefined
|
|
81
85
|
});
|
|
82
86
|
}, [mode, selectedValue, showSeconds, t, valueRender]);
|
|
83
|
-
const clearValue = () => setSelectedValue(undefined);
|
|
84
87
|
const handleChangeValue = (0, react_1.useCallback)(value => {
|
|
85
88
|
setSelectedValue(value);
|
|
86
89
|
closeDroplist();
|
|
@@ -113,7 +116,7 @@ function ChipChoiceDate(_a) {
|
|
|
113
116
|
"data-test-id": constants_1.CHIP_CHOICE_TEST_IDS.droplist,
|
|
114
117
|
children: (0, jsx_runtime_1.jsx)(ChipChoiceBase_1.ChipChoiceBase, Object.assign({}, rest, {
|
|
115
118
|
ref: localRef,
|
|
116
|
-
onClearButtonClick:
|
|
119
|
+
onClearButtonClick: onClearButtonClick,
|
|
117
120
|
value: selectedValue,
|
|
118
121
|
valueToRender: valueToRender,
|
|
119
122
|
size: size,
|
|
@@ -14,5 +14,5 @@ export type ChipChoiceDateRangeProps = ChipChoiceCommonProps & {
|
|
|
14
14
|
/** Колбек свойств для управления ячейками календаря */
|
|
15
15
|
buildCalendarCellProps?: CalendarProps['buildCellProps'];
|
|
16
16
|
};
|
|
17
|
-
export declare function ChipChoiceDateRange({ size, value, defaultValue, onChange, valueRender, dropDownClassName, buildCalendarCellProps, ...rest }: ChipChoiceDateRangeProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export declare function ChipChoiceDateRange({ size, value, defaultValue, onChange, valueRender, dropDownClassName, buildCalendarCellProps, onClearButtonClick, open: openProp, onOpenChange, ...rest }: ChipChoiceDateRangeProps): import("react/jsx-runtime").JSX.Element;
|
|
18
18
|
export {};
|
|
@@ -39,9 +39,12 @@ function ChipChoiceDateRange(_a) {
|
|
|
39
39
|
onChange,
|
|
40
40
|
valueRender,
|
|
41
41
|
dropDownClassName,
|
|
42
|
-
buildCalendarCellProps
|
|
42
|
+
buildCalendarCellProps,
|
|
43
|
+
onClearButtonClick,
|
|
44
|
+
open: openProp,
|
|
45
|
+
onOpenChange
|
|
43
46
|
} = _a,
|
|
44
|
-
rest = __rest(_a, ["size", "value", "defaultValue", "onChange", "valueRender", "dropDownClassName", "buildCalendarCellProps"]);
|
|
47
|
+
rest = __rest(_a, ["size", "value", "defaultValue", "onChange", "valueRender", "dropDownClassName", "buildCalendarCellProps", "onClearButtonClick", "open", "onOpenChange"]);
|
|
45
48
|
const [selectedValue, setSelectedValue] = (0, uncontrollable_1.useUncontrolledProp)(value, defaultValue, onChange);
|
|
46
49
|
const {
|
|
47
50
|
t
|
|
@@ -50,16 +53,15 @@ function ChipChoiceDateRange(_a) {
|
|
|
50
53
|
value: selectedValue,
|
|
51
54
|
allLabel: t('allLabel')
|
|
52
55
|
});
|
|
53
|
-
const clearValue = () => setSelectedValue(undefined);
|
|
54
56
|
const localRef = (0, react_1.useRef)(null);
|
|
55
|
-
const [open, setOpen] = (0,
|
|
57
|
+
const [open, setOpen] = (0, uncontrollable_1.useUncontrolledProp)(openProp, false, onOpenChange);
|
|
56
58
|
const closeDroplist = (0, react_1.useCallback)(() => {
|
|
57
59
|
setOpen(false);
|
|
58
60
|
setTimeout(() => {
|
|
59
61
|
var _a;
|
|
60
62
|
return (_a = localRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
61
63
|
}, 0);
|
|
62
|
-
}, []);
|
|
64
|
+
}, [setOpen]);
|
|
63
65
|
const handleOnKeyDown = (0, hooks_1.useHandleOnKeyDown)({
|
|
64
66
|
setOpen
|
|
65
67
|
});
|
|
@@ -86,7 +88,7 @@ function ChipChoiceDateRange(_a) {
|
|
|
86
88
|
className: dropDownClassName,
|
|
87
89
|
children: (0, jsx_runtime_1.jsx)(ChipChoiceBase_1.ChipChoiceBase, Object.assign({}, rest, {
|
|
88
90
|
ref: localRef,
|
|
89
|
-
onClearButtonClick:
|
|
91
|
+
onClearButtonClick: onClearButtonClick,
|
|
90
92
|
value: selectedValue,
|
|
91
93
|
valueToRender: valueToRender,
|
|
92
94
|
size: size,
|
|
@@ -5,4 +5,4 @@ export type ChipChoiceMultipleValueFormatterProps<T extends ContentRenderProps =
|
|
|
5
5
|
total: number;
|
|
6
6
|
allLabel: string;
|
|
7
7
|
};
|
|
8
|
-
export declare function ChipChoiceMultiple<T extends ContentRenderProps = ContentRenderProps>({ value: valueProp, defaultValue, options, onChange: onChangeProp, valueRender, size, label, searchable, contentRender, dropDownClassName,
|
|
8
|
+
export declare function ChipChoiceMultiple<T extends ContentRenderProps = ContentRenderProps>({ value: valueProp, defaultValue, options, onChange: onChangeProp, valueRender, size, label, searchable, contentRender, dropDownClassName, onClearButtonClick, autoApply, disableFuzzySearch, onApprove, onCancel, open: openProp, onOpenChange, ...rest }: ChipChoiceMultipleProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -14,6 +14,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
14
14
|
exports.ChipChoiceMultiple = ChipChoiceMultiple;
|
|
15
15
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
16
16
|
const react_1 = require("react");
|
|
17
|
+
const uncontrollable_1 = require("uncontrollable");
|
|
17
18
|
const list_1 = require("@snack-uikit/list");
|
|
18
19
|
const locale_1 = require("@snack-uikit/locale");
|
|
19
20
|
const utils_1 = require("@snack-uikit/utils");
|
|
@@ -50,13 +51,15 @@ function ChipChoiceMultiple(_a) {
|
|
|
50
51
|
searchable,
|
|
51
52
|
contentRender,
|
|
52
53
|
dropDownClassName,
|
|
53
|
-
|
|
54
|
+
onClearButtonClick,
|
|
54
55
|
autoApply = true,
|
|
55
56
|
disableFuzzySearch = false,
|
|
56
57
|
onApprove,
|
|
57
|
-
onCancel
|
|
58
|
+
onCancel,
|
|
59
|
+
open: openProp,
|
|
60
|
+
onOpenChange
|
|
58
61
|
} = _a,
|
|
59
|
-
rest = __rest(_a, ["value", "defaultValue", "options", "onChange", "valueRender", "size", "label", "searchable", "contentRender", "dropDownClassName", "
|
|
62
|
+
rest = __rest(_a, ["value", "defaultValue", "options", "onChange", "valueRender", "size", "label", "searchable", "contentRender", "dropDownClassName", "onClearButtonClick", "autoApply", "disableFuzzySearch", "onApprove", "onCancel", "open", "onOpenChange"]);
|
|
60
63
|
const [value, setValue] = (0, utils_1.useValueControl)({
|
|
61
64
|
value: valueProp,
|
|
62
65
|
defaultValue,
|
|
@@ -77,7 +80,7 @@ function ChipChoiceMultiple(_a) {
|
|
|
77
80
|
const {
|
|
78
81
|
t
|
|
79
82
|
} = (0, locale_1.useLocale)('Chips');
|
|
80
|
-
const [open, setOpen] = (0,
|
|
83
|
+
const [open, setOpen] = (0, uncontrollable_1.useUncontrolledProp)(openProp, false, onOpenChange);
|
|
81
84
|
const handleOnKeyDown = (0, hooks_1.useHandleOnKeyDown)({
|
|
82
85
|
setOpen
|
|
83
86
|
});
|
|
@@ -96,10 +99,6 @@ function ChipChoiceMultiple(_a) {
|
|
|
96
99
|
});
|
|
97
100
|
const result = (0, react_1.useMemo)(() => !searchable || valueToRender === searchValue ? options : optionSearch(searchValue), [optionSearch, options, searchValue, searchable, valueToRender]);
|
|
98
101
|
const items = (0, react_1.useMemo)(() => (0, options_1.transformOptionsToItems)(result, contentRender), [contentRender, result]);
|
|
99
|
-
const clearValue = () => {
|
|
100
|
-
setValue([]);
|
|
101
|
-
setDeferredValue([]);
|
|
102
|
-
};
|
|
103
102
|
const chipRef = (0, react_1.useRef)(null);
|
|
104
103
|
const listRef = (0, react_1.useRef)(null);
|
|
105
104
|
const handleSelectionChange = (0, react_1.useCallback)(newValue => {
|
|
@@ -170,9 +169,8 @@ function ChipChoiceMultiple(_a) {
|
|
|
170
169
|
pinBottom: renderFooter(),
|
|
171
170
|
children: (0, jsx_runtime_1.jsx)(ChipChoiceBase_1.ChipChoiceBase, Object.assign({}, rest, {
|
|
172
171
|
ref: chipRef,
|
|
173
|
-
onClearButtonClick:
|
|
172
|
+
onClearButtonClick: onClearButtonClick,
|
|
174
173
|
value: value,
|
|
175
|
-
showClearButton: showClearButton && !(Array.isArray(value) && [0].includes(value.length)),
|
|
176
174
|
valueToRender: valueToRender,
|
|
177
175
|
label: label,
|
|
178
176
|
loading: rest.loading,
|
|
@@ -5,4 +5,4 @@ export type ChipChoiceSingleValueFormatterProps = {
|
|
|
5
5
|
allLabel?: string;
|
|
6
6
|
};
|
|
7
7
|
export declare function defaultSingleValueFormatter({ label, allLabel }: ChipChoiceSingleValueFormatterProps): ItemId | undefined;
|
|
8
|
-
export declare function ChipChoiceSingle<T extends ContentRenderProps = ContentRenderProps>({ value: valueProp, defaultValue, options, onChange: onChangeProp, valueRender, size, label, searchable, contentRender, dropDownClassName, disableFuzzySearch, autoApply, onApprove, onCancel, ...rest }: ChipChoiceSingleProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export declare function ChipChoiceSingle<T extends ContentRenderProps = ContentRenderProps>({ value: valueProp, defaultValue, options, onChange: onChangeProp, valueRender, size, label, searchable, contentRender, dropDownClassName, disableFuzzySearch, autoApply, onApprove, onCancel, onClearButtonClick, open: openProp, onOpenChange, ...rest }: ChipChoiceSingleProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -15,6 +15,7 @@ exports.defaultSingleValueFormatter = defaultSingleValueFormatter;
|
|
|
15
15
|
exports.ChipChoiceSingle = ChipChoiceSingle;
|
|
16
16
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
17
17
|
const react_1 = require("react");
|
|
18
|
+
const uncontrollable_1 = require("uncontrollable");
|
|
18
19
|
const list_1 = require("@snack-uikit/list");
|
|
19
20
|
const locale_1 = require("@snack-uikit/locale");
|
|
20
21
|
const utils_1 = require("@snack-uikit/utils");
|
|
@@ -46,9 +47,12 @@ function ChipChoiceSingle(_a) {
|
|
|
46
47
|
disableFuzzySearch,
|
|
47
48
|
autoApply = true,
|
|
48
49
|
onApprove,
|
|
49
|
-
onCancel
|
|
50
|
+
onCancel,
|
|
51
|
+
onClearButtonClick,
|
|
52
|
+
open: openProp,
|
|
53
|
+
onOpenChange
|
|
50
54
|
} = _a,
|
|
51
|
-
rest = __rest(_a, ["value", "defaultValue", "options", "onChange", "valueRender", "size", "label", "searchable", "contentRender", "dropDownClassName", "disableFuzzySearch", "autoApply", "onApprove", "onCancel"]);
|
|
55
|
+
rest = __rest(_a, ["value", "defaultValue", "options", "onChange", "valueRender", "size", "label", "searchable", "contentRender", "dropDownClassName", "disableFuzzySearch", "autoApply", "onApprove", "onCancel", "onClearButtonClick", "open", "onOpenChange"]);
|
|
52
56
|
const [value, setValue] = (0, utils_1.useValueControl)({
|
|
53
57
|
value: valueProp,
|
|
54
58
|
defaultValue,
|
|
@@ -68,7 +72,7 @@ function ChipChoiceSingle(_a) {
|
|
|
68
72
|
const {
|
|
69
73
|
t
|
|
70
74
|
} = (0, locale_1.useLocale)('Chips');
|
|
71
|
-
const [open, setOpen] = (0,
|
|
75
|
+
const [open, setOpen] = (0, uncontrollable_1.useUncontrolledProp)(openProp, false, onOpenChange);
|
|
72
76
|
const handleOnKeyDown = (0, hooks_1.useHandleOnKeyDown)({
|
|
73
77
|
setOpen
|
|
74
78
|
});
|
|
@@ -87,10 +91,6 @@ function ChipChoiceSingle(_a) {
|
|
|
87
91
|
});
|
|
88
92
|
const result = (0, react_1.useMemo)(() => !searchable || valueToRender === searchValue ? options : optionSearch(searchValue), [optionSearch, options, searchValue, searchable, valueToRender]);
|
|
89
93
|
const items = (0, react_1.useMemo)(() => (0, options_1.transformOptionsToItems)(result, contentRender), [contentRender, result]);
|
|
90
|
-
const clearValue = () => {
|
|
91
|
-
setValue(undefined);
|
|
92
|
-
setDeferredValue(undefined);
|
|
93
|
-
};
|
|
94
94
|
const chipRef = (0, react_1.useRef)(null);
|
|
95
95
|
const handleSelectionChange = (0, react_1.useCallback)(newValue => {
|
|
96
96
|
var _a;
|
|
@@ -104,7 +104,7 @@ function ChipChoiceSingle(_a) {
|
|
|
104
104
|
setDeferredValue(newValue);
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
|
-
}, [autoApply, setValue, setDeferredValue]);
|
|
107
|
+
}, [autoApply, setOpen, setValue, setDeferredValue]);
|
|
108
108
|
const handleOnCancelClick = () => {
|
|
109
109
|
onCancel && onCancel();
|
|
110
110
|
setDeferredValue(value);
|
|
@@ -160,7 +160,7 @@ function ChipChoiceSingle(_a) {
|
|
|
160
160
|
pinBottom: renderFooter(),
|
|
161
161
|
children: (0, jsx_runtime_1.jsx)(ChipChoiceBase_1.ChipChoiceBase, Object.assign({}, rest, {
|
|
162
162
|
ref: chipRef,
|
|
163
|
-
onClearButtonClick:
|
|
163
|
+
onClearButtonClick: onClearButtonClick,
|
|
164
164
|
value: value,
|
|
165
165
|
valueToRender: valueToRender,
|
|
166
166
|
label: label,
|
|
@@ -8,5 +8,5 @@ export type ChipChoiceTimeProps = Omit<ChipChoiceCommonProps, 'widthStrategy'> &
|
|
|
8
8
|
/** Колбек формирующий строковое представление выбранного значения. Принимает выбранное значение */
|
|
9
9
|
valueRender?(value?: TimeValue): ReactNode;
|
|
10
10
|
};
|
|
11
|
-
export declare function ChipChoiceTime({ size, value, defaultValue, onChange, valueRender, dropDownClassName, showSeconds, placement, ...rest }: ChipChoiceTimeProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export declare function ChipChoiceTime({ size, value, defaultValue, onChange, valueRender, dropDownClassName, showSeconds, placement, onClearButtonClick, open: openProp, onOpenChange, ...rest }: ChipChoiceTimeProps): import("react/jsx-runtime").JSX.Element;
|
|
12
12
|
export {};
|
|
@@ -14,6 +14,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
14
14
|
exports.ChipChoiceTime = ChipChoiceTime;
|
|
15
15
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
16
16
|
const react_1 = require("react");
|
|
17
|
+
const uncontrollable_1 = require("uncontrollable");
|
|
17
18
|
const calendar_1 = require("@snack-uikit/calendar");
|
|
18
19
|
const dropdown_1 = require("@snack-uikit/dropdown");
|
|
19
20
|
const locale_1 = require("@snack-uikit/locale");
|
|
@@ -50,16 +51,19 @@ function ChipChoiceTime(_a) {
|
|
|
50
51
|
valueRender,
|
|
51
52
|
dropDownClassName,
|
|
52
53
|
showSeconds = true,
|
|
53
|
-
placement
|
|
54
|
+
placement,
|
|
55
|
+
onClearButtonClick,
|
|
56
|
+
open: openProp,
|
|
57
|
+
onOpenChange
|
|
54
58
|
} = _a,
|
|
55
|
-
rest = __rest(_a, ["size", "value", "defaultValue", "onChange", "valueRender", "dropDownClassName", "showSeconds", "placement"]);
|
|
59
|
+
rest = __rest(_a, ["size", "value", "defaultValue", "onChange", "valueRender", "dropDownClassName", "showSeconds", "placement", "onClearButtonClick", "open", "onOpenChange"]);
|
|
56
60
|
const [selectedValue, setSelectedValue] = (0, utils_1.useValueControl)({
|
|
57
61
|
value,
|
|
58
62
|
defaultValue,
|
|
59
63
|
onChange
|
|
60
64
|
});
|
|
61
65
|
const localRef = (0, react_1.useRef)(null);
|
|
62
|
-
const [open, setOpen] = (0,
|
|
66
|
+
const [open, setOpen] = (0, uncontrollable_1.useUncontrolledProp)(openProp, false, onOpenChange);
|
|
63
67
|
const handleOnKeyDown = (0, hooks_1.useHandleOnKeyDown)({
|
|
64
68
|
setOpen
|
|
65
69
|
});
|
|
@@ -69,7 +73,7 @@ function ChipChoiceTime(_a) {
|
|
|
69
73
|
var _a;
|
|
70
74
|
return (_a = localRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
71
75
|
}, 0);
|
|
72
|
-
}, []);
|
|
76
|
+
}, [setOpen]);
|
|
73
77
|
const {
|
|
74
78
|
t
|
|
75
79
|
} = (0, locale_1.useLocale)('Chips');
|
|
@@ -83,7 +87,6 @@ function ChipChoiceTime(_a) {
|
|
|
83
87
|
locale: constants_2.DEFAULT_LOCALE
|
|
84
88
|
});
|
|
85
89
|
}, [selectedValue, showSeconds, t, valueRender]);
|
|
86
|
-
const clearValue = () => setSelectedValue(undefined);
|
|
87
90
|
const handleChangeValue = (0, react_1.useCallback)(value => {
|
|
88
91
|
setSelectedValue(value);
|
|
89
92
|
closeDroplist();
|
|
@@ -113,7 +116,7 @@ function ChipChoiceTime(_a) {
|
|
|
113
116
|
"data-test-id": constants_1.CHIP_CHOICE_TEST_IDS.droplist,
|
|
114
117
|
children: (0, jsx_runtime_1.jsx)(ChipChoiceBase_1.ChipChoiceBase, Object.assign({}, rest, {
|
|
115
118
|
ref: localRef,
|
|
116
|
-
onClearButtonClick:
|
|
119
|
+
onClearButtonClick: onClearButtonClick,
|
|
117
120
|
value: selectedValue,
|
|
118
121
|
valueToRender: valueToRender,
|
|
119
122
|
size: size,
|
|
@@ -37,8 +37,8 @@ export type ChipChoiceCommonProps = WithSupportProps<Partial<BaseChipProps> & {
|
|
|
37
37
|
* @default false
|
|
38
38
|
*/
|
|
39
39
|
disableFuzzySearch?: boolean;
|
|
40
|
-
/**
|
|
41
|
-
|
|
40
|
+
/** Колбек для клика по кнопке очистки */
|
|
41
|
+
onClearButtonClick?: MouseEventHandler<HTMLButtonElement>;
|
|
42
42
|
/** Расположение выпадающего меню */
|
|
43
43
|
placement?: DropdownProps['placement'];
|
|
44
44
|
/**
|
|
@@ -50,6 +50,10 @@ export type ChipChoiceCommonProps = WithSupportProps<Partial<BaseChipProps> & {
|
|
|
50
50
|
*/
|
|
51
51
|
widthStrategy?: DropdownProps['widthStrategy'];
|
|
52
52
|
dropDownClassName?: string;
|
|
53
|
+
/** Управляет состоянием показан/не показан. */
|
|
54
|
+
open?: boolean;
|
|
55
|
+
/** Колбек отображения компонента. Срабатывает при изменении состояния open. */
|
|
56
|
+
onOpenChange?: (isOpen: boolean) => void;
|
|
53
57
|
}>;
|
|
54
58
|
export type ChipChoiceSelectCommonProps<T extends ContentRenderProps = ContentRenderProps> = ChipChoiceCommonProps & {
|
|
55
59
|
options: FilterOption<T>[];
|
|
@@ -70,7 +74,7 @@ export type ChipChoiceSelectCommonProps<T extends ContentRenderProps = ContentRe
|
|
|
70
74
|
onApprove?: () => void;
|
|
71
75
|
/** Колбек кнопки отмены */
|
|
72
76
|
onCancel?: () => void;
|
|
73
|
-
} & Pick<DroplistProps, 'selection' | 'scrollRef' | 'scrollContainerRef' | 'noDataState' | 'footer' | 'footerActiveElementsRefs' | 'dataError' | 'errorDataState' | 'dataFiltered' | 'noResultsState' | 'loading' | 'scrollToSelectedItem'>;
|
|
77
|
+
} & Pick<DroplistProps, 'selection' | 'scrollRef' | 'scrollContainerRef' | 'noDataState' | 'footer' | 'footerActiveElementsRefs' | 'dataError' | 'errorDataState' | 'dataFiltered' | 'noResultsState' | 'loading' | 'scrollToSelectedItem' | 'virtualized'>;
|
|
74
78
|
export type ChipChoiceSingleProps<T extends ContentRenderProps = ContentRenderProps> = ChipChoiceSelectCommonProps<T> & Omit<SelectionSingleState, 'mode'> & {
|
|
75
79
|
/** Массив опций */
|
|
76
80
|
options: FilterOption<T>[];
|