@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.
Files changed (77) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +28 -8
  3. package/dist/cjs/components/ChipChoice/components/ChipChoiceBase/ChipChoiceBase.d.ts +3 -7
  4. package/dist/cjs/components/ChipChoice/components/ChipChoiceBase/ChipChoiceBase.js +3 -4
  5. package/dist/cjs/components/ChipChoice/components/ChipChoiceCustom.d.ts +1 -1
  6. package/dist/cjs/components/ChipChoice/components/ChipChoiceCustom.js +9 -9
  7. package/dist/cjs/components/ChipChoice/components/ChipChoiceDate.d.ts +1 -1
  8. package/dist/cjs/components/ChipChoice/components/ChipChoiceDate.js +9 -6
  9. package/dist/cjs/components/ChipChoice/components/ChipChoiceDateRange.d.ts +1 -1
  10. package/dist/cjs/components/ChipChoice/components/ChipChoiceDateRange.js +8 -6
  11. package/dist/cjs/components/ChipChoice/components/ChipChoiceMultiple.d.ts +1 -1
  12. package/dist/cjs/components/ChipChoice/components/ChipChoiceMultiple.js +8 -10
  13. package/dist/cjs/components/ChipChoice/components/ChipChoiceSingle.d.ts +1 -1
  14. package/dist/cjs/components/ChipChoice/components/ChipChoiceSingle.js +9 -9
  15. package/dist/cjs/components/ChipChoice/components/ChipChoiceTime.d.ts +1 -1
  16. package/dist/cjs/components/ChipChoice/components/ChipChoiceTime.js +9 -6
  17. package/dist/cjs/components/ChipChoice/constants.d.ts +1 -0
  18. package/dist/cjs/components/ChipChoice/constants.js +1 -0
  19. package/dist/cjs/components/ChipChoice/types.d.ts +7 -3
  20. package/dist/cjs/components/ChipChoiceRow/ChipChoiceRow.d.ts +12 -6
  21. package/dist/cjs/components/ChipChoiceRow/ChipChoiceRow.js +145 -24
  22. package/dist/cjs/components/ChipChoiceRow/components/constants.d.ts +1 -0
  23. package/dist/cjs/components/ChipChoiceRow/components/constants.js +1 -0
  24. package/dist/cjs/components/ChipChoiceRow/helpers.d.ts +5 -0
  25. package/dist/cjs/components/ChipChoiceRow/helpers.js +19 -0
  26. package/dist/cjs/components/ChipChoiceRow/index.d.ts +1 -0
  27. package/dist/cjs/components/ChipChoiceRow/index.js +2 -1
  28. package/dist/cjs/components/ChipChoiceRow/styles.module.css +21 -0
  29. package/dist/cjs/components/ChipChoiceRow/types.d.ts +5 -5
  30. package/dist/cjs/constants.d.ts +4 -1
  31. package/dist/cjs/constants.js +4 -1
  32. package/dist/esm/components/ChipChoice/components/ChipChoiceBase/ChipChoiceBase.d.ts +3 -7
  33. package/dist/esm/components/ChipChoice/components/ChipChoiceBase/ChipChoiceBase.js +2 -2
  34. package/dist/esm/components/ChipChoice/components/ChipChoiceCustom.d.ts +1 -1
  35. package/dist/esm/components/ChipChoice/components/ChipChoiceCustom.js +6 -9
  36. package/dist/esm/components/ChipChoice/components/ChipChoiceDate.d.ts +1 -1
  37. package/dist/esm/components/ChipChoice/components/ChipChoiceDate.js +6 -6
  38. package/dist/esm/components/ChipChoice/components/ChipChoiceDateRange.d.ts +1 -1
  39. package/dist/esm/components/ChipChoice/components/ChipChoiceDateRange.js +5 -6
  40. package/dist/esm/components/ChipChoice/components/ChipChoiceMultiple.d.ts +1 -1
  41. package/dist/esm/components/ChipChoice/components/ChipChoiceMultiple.js +4 -7
  42. package/dist/esm/components/ChipChoice/components/ChipChoiceSingle.d.ts +1 -1
  43. package/dist/esm/components/ChipChoice/components/ChipChoiceSingle.js +5 -8
  44. package/dist/esm/components/ChipChoice/components/ChipChoiceTime.d.ts +1 -1
  45. package/dist/esm/components/ChipChoice/components/ChipChoiceTime.js +6 -6
  46. package/dist/esm/components/ChipChoice/constants.d.ts +1 -0
  47. package/dist/esm/components/ChipChoice/constants.js +1 -0
  48. package/dist/esm/components/ChipChoice/types.d.ts +7 -3
  49. package/dist/esm/components/ChipChoiceRow/ChipChoiceRow.d.ts +12 -6
  50. package/dist/esm/components/ChipChoiceRow/ChipChoiceRow.js +82 -13
  51. package/dist/esm/components/ChipChoiceRow/components/constants.d.ts +1 -0
  52. package/dist/esm/components/ChipChoiceRow/components/constants.js +1 -0
  53. package/dist/esm/components/ChipChoiceRow/helpers.d.ts +5 -0
  54. package/dist/esm/components/ChipChoiceRow/helpers.js +13 -0
  55. package/dist/esm/components/ChipChoiceRow/index.d.ts +1 -0
  56. package/dist/esm/components/ChipChoiceRow/index.js +1 -0
  57. package/dist/esm/components/ChipChoiceRow/styles.module.css +21 -0
  58. package/dist/esm/components/ChipChoiceRow/types.d.ts +5 -5
  59. package/dist/esm/constants.d.ts +4 -1
  60. package/dist/esm/constants.js +4 -1
  61. package/package.json +7 -5
  62. package/src/components/ChipChoice/components/ChipChoiceBase/ChipChoiceBase.tsx +2 -7
  63. package/src/components/ChipChoice/components/ChipChoiceCustom.tsx +8 -9
  64. package/src/components/ChipChoice/components/ChipChoiceDate.tsx +8 -6
  65. package/src/components/ChipChoice/components/ChipChoiceDateRange.tsx +7 -7
  66. package/src/components/ChipChoice/components/ChipChoiceMultiple.tsx +6 -8
  67. package/src/components/ChipChoice/components/ChipChoiceSingle.tsx +7 -7
  68. package/src/components/ChipChoice/components/ChipChoiceTime.tsx +8 -6
  69. package/src/components/ChipChoice/constants.ts +1 -0
  70. package/src/components/ChipChoice/types.ts +7 -2
  71. package/src/components/ChipChoiceRow/ChipChoiceRow.tsx +203 -30
  72. package/src/components/ChipChoiceRow/components/constants.ts +1 -0
  73. package/src/components/ChipChoiceRow/helpers.ts +15 -0
  74. package/src/components/ChipChoiceRow/index.ts +1 -0
  75. package/src/components/ChipChoiceRow/styles.module.scss +25 -2
  76. package/src/components/ChipChoiceRow/types.ts +13 -4
  77. 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
- | showClearButton | `boolean` | true | Отображение кнопки очистки значения |
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
- | showClearButton | `boolean` | true | Отображение кнопки очистки значения |
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
- | showClearButton | `boolean` | true | Отображение кнопки очистки значения |
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
- | showClearButton | `boolean` | true | Отображение кнопки очистки значения |
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
- | showClearButton | `boolean` | true | Отображение кнопки очистки значения |
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
- | showClearButton | `boolean` | true | Отображение кнопки очистки значения |
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
- | showClearAllButton | `boolean` | true | Скрыть/показать кнопку очиски |
312
- | clearAllButtonLabel | `string` | 'Clear all' | Текст кнопки очистки |
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, MouseEventHandler, ReactNode } from 'react';
1
+ import { KeyboardEvent, ReactNode } from 'react';
2
2
  import { ChipChoiceCommonProps } from '../../types';
3
- export type ChipChoiceBaseProps = Pick<ChipChoiceCommonProps, 'loading' | 'tabIndex' | 'showClearButton' | 'disabled' | 'icon' | 'label' | 'size' | 'onClick' | 'className'> & {
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" | "showClearButton"> & {
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", "showClearButton"]);
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, react_1.useState)(false);
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: clearValue,
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, react_1.useState)(false);
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: clearValue,
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, react_1.useState)(false);
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: clearValue,
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, showClearButton, autoApply, disableFuzzySearch, onApprove, onCancel, ...rest }: ChipChoiceMultipleProps<T>): import("react/jsx-runtime").JSX.Element;
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
- showClearButton = true,
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", "showClearButton", "autoApply", "disableFuzzySearch", "onApprove", "onCancel"]);
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, react_1.useState)(false);
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: clearValue,
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, react_1.useState)(false);
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: clearValue,
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, react_1.useState)(false);
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: clearValue,
119
+ onClearButtonClick: onClearButtonClick,
117
120
  value: selectedValue,
118
121
  valueToRender: valueToRender,
119
122
  size: size,
@@ -16,6 +16,7 @@ export declare const CHIP_CHOICE_TYPE: {
16
16
  readonly Multiple: "multiple";
17
17
  readonly Date: "date";
18
18
  readonly DateTime: "date-time";
19
+ readonly Time: "time";
19
20
  readonly DateRange: "date-range";
20
21
  readonly Single: "single";
21
22
  readonly Custom: "custom";
@@ -39,6 +39,7 @@ exports.CHIP_CHOICE_TYPE = {
39
39
  Multiple: 'multiple',
40
40
  Date: 'date',
41
41
  DateTime: 'date-time',
42
+ Time: 'time',
42
43
  DateRange: 'date-range',
43
44
  Single: 'single',
44
45
  Custom: 'custom'
@@ -37,8 +37,8 @@ export type ChipChoiceCommonProps = WithSupportProps<Partial<BaseChipProps> & {
37
37
  * @default false
38
38
  */
39
39
  disableFuzzySearch?: boolean;
40
- /** Отображение кнопки очистки значения @default true*/
41
- showClearButton?: boolean;
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>[];