@snack-uikit/chips 0.22.6-preview-d736f028.0 → 0.23.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 +11 -0
- package/README.md +6 -2
- package/dist/cjs/components/ChipChoice/components/ChipChoiceBase/styles.module.css +18 -18
- package/dist/cjs/components/ChipChoice/components/ChipChoiceMultiple.d.ts +1 -1
- package/dist/cjs/components/ChipChoice/components/ChipChoiceMultiple.js +10 -2
- package/dist/cjs/components/ChipChoice/components/ChipChoiceSingle.d.ts +1 -1
- package/dist/cjs/components/ChipChoice/components/ChipChoiceSingle.js +10 -2
- package/dist/cjs/components/ChipChoice/hooks.js +19 -22
- package/dist/cjs/components/ChipChoice/styles.module.css +18 -18
- package/dist/cjs/components/ChipChoice/types.d.ts +6 -4
- package/dist/esm/components/ChipChoice/components/ChipChoiceBase/styles.module.css +18 -18
- package/dist/esm/components/ChipChoice/components/ChipChoiceMultiple.d.ts +1 -1
- package/dist/esm/components/ChipChoice/components/ChipChoiceMultiple.js +7 -1
- package/dist/esm/components/ChipChoice/components/ChipChoiceSingle.d.ts +1 -1
- package/dist/esm/components/ChipChoice/components/ChipChoiceSingle.js +7 -1
- package/dist/esm/components/ChipChoice/hooks.js +2 -7
- package/dist/esm/components/ChipChoice/styles.module.css +18 -18
- package/dist/esm/components/ChipChoice/types.d.ts +6 -4
- package/package.json +2 -2
- package/src/components/ChipChoice/components/ChipChoiceMultiple.tsx +11 -0
- package/src/components/ChipChoice/components/ChipChoiceSingle.tsx +11 -0
- package/src/components/ChipChoice/hooks.tsx +19 -24
- package/src/components/ChipChoice/styles.module.scss +12 -12
- package/src/components/ChipChoice/types.ts +7 -4
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
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.23.0 (2024-12-25)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **PDS-540:** add autoApply flag for multiple and single ChipChoice ([62f298d](https://github.com/cloud-ru-tech/snack-uikit/commit/62f298d27763f3c67b14ec1a03d3bb660b2468af))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
## 0.22.5 (2024-12-18)
|
|
7
18
|
|
|
8
19
|
### Only dependencies have been changed
|
package/README.md
CHANGED
|
@@ -152,6 +152,9 @@ import { PlaceholderSVG } from '@snack-uikit/icons';
|
|
|
152
152
|
| contentRender | `(option: { label: ItemId; value?: ItemId; contentRenderProps?: T; }) => ReactNode` | - | |
|
|
153
153
|
| filterFn | `(option: { label: ItemId; value?: ItemId; contentRenderProps?: T; }) => boolean` | - | |
|
|
154
154
|
| searchable | `boolean` | - | |
|
|
155
|
+
| autoApply | `boolean` | - | Флаг, отвечающий за применение выбранного значения по умолчанию |
|
|
156
|
+
| onApprove | `() => void` | - | Колбек основной кнопки |
|
|
157
|
+
| onCancel | `() => void` | - | Колбек кнопки отмены |
|
|
155
158
|
| footer | `ReactNode ;` | - | Кастомизируемый элемент в конце списка |
|
|
156
159
|
| footerActiveElementsRefs | `RefObject<HTMLElement>[]` | - | Список ссылок на кастомные элементы, помещенные в специальную секцию внизу списка |
|
|
157
160
|
| scrollToSelectedItem | `boolean` | - | Флаг, отвещающий за прокручивание до выбранного элемента |
|
|
@@ -167,7 +170,6 @@ import { PlaceholderSVG } from '@snack-uikit/icons';
|
|
|
167
170
|
| value | `ItemId` | - | Controlled состояние |
|
|
168
171
|
| defaultValue | `ItemId` | - | Начальное состояние |
|
|
169
172
|
| valueRender | `(option?: BaseOption<T>) => ReactNode` | - | Колбек формирующий отображение выбранного значения. Принимает выбранное значение. По умолчанию для отображения используется FilterOption.label |
|
|
170
|
-
| autoApply | `boolean` | - | Флаг, отвечающий за применение выбранного значения по умолчанию |
|
|
171
173
|
## ChipChoice.Multiple
|
|
172
174
|
### Props
|
|
173
175
|
| name | type | default value | description |
|
|
@@ -188,6 +190,9 @@ import { PlaceholderSVG } from '@snack-uikit/icons';
|
|
|
188
190
|
| contentRender | `(option: { label: ItemId; value?: ItemId; contentRenderProps?: T; }) => ReactNode` | - | |
|
|
189
191
|
| filterFn | `(option: { label: ItemId; value?: ItemId; contentRenderProps?: T; }) => boolean` | - | |
|
|
190
192
|
| searchable | `boolean` | - | |
|
|
193
|
+
| autoApply | `boolean` | - | Флаг, отвечающий за применение выбранного значения по умолчанию |
|
|
194
|
+
| onApprove | `() => void` | - | Колбек основной кнопки |
|
|
195
|
+
| onCancel | `() => void` | - | Колбек кнопки отмены |
|
|
191
196
|
| footer | `ReactNode ;` | - | Кастомизируемый элемент в конце списка |
|
|
192
197
|
| footerActiveElementsRefs | `RefObject<HTMLElement>[]` | - | Список ссылок на кастомные элементы, помещенные в специальную секцию внизу списка |
|
|
193
198
|
| scrollToSelectedItem | `boolean` | - | Флаг, отвещающий за прокручивание до выбранного элемента |
|
|
@@ -203,7 +208,6 @@ import { PlaceholderSVG } from '@snack-uikit/icons';
|
|
|
203
208
|
| value | `ItemId[]` | - | Controlled состояние |
|
|
204
209
|
| defaultValue | `ItemId[]` | - | Начальное состояние |
|
|
205
210
|
| valueRender | `(option?: BaseOption<T>[]) => ReactNode` | - | Колбек формирующий отображение выбранного значения. Принимает выбранное значение. По умолчанию для отображения используется FilterOption.label |
|
|
206
|
-
| autoApply | `boolean` | - | Флаг, отвечающий за применение выбранного значения по умолчанию |
|
|
207
211
|
## ChipChoice.Date
|
|
208
212
|
### Props
|
|
209
213
|
| name | type | default value | description |
|
|
@@ -4,24 +4,6 @@
|
|
|
4
4
|
align-items:center;
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
-
.choiceChipFooter{
|
|
8
|
-
display:flex;
|
|
9
|
-
align-items:center;
|
|
10
|
-
justify-content:space-between;
|
|
11
|
-
}
|
|
12
|
-
.choiceChipFooter[data-size=xs]{
|
|
13
|
-
gap:var(--space-calendar-footer-elements-s, 8px);
|
|
14
|
-
}
|
|
15
|
-
.choiceChipFooter[data-size=s]{
|
|
16
|
-
gap:var(--space-calendar-footer-elements-s, 8px);
|
|
17
|
-
}
|
|
18
|
-
.choiceChipFooter[data-size=m]{
|
|
19
|
-
gap:var(--space-calendar-footer-elements-m, 8px);
|
|
20
|
-
}
|
|
21
|
-
.choiceChipFooter[data-size=l]{
|
|
22
|
-
gap:var(--space-calendar-footer-elements-l, 8px);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
7
|
.choiceChip{
|
|
26
8
|
cursor:pointer;
|
|
27
9
|
position:relative;
|
|
@@ -216,6 +198,24 @@
|
|
|
216
198
|
color:var(--sys-neutral-text-support, #6d707f);
|
|
217
199
|
}
|
|
218
200
|
|
|
201
|
+
.choiceChipFooter{
|
|
202
|
+
display:flex;
|
|
203
|
+
align-items:center;
|
|
204
|
+
justify-content:space-between;
|
|
205
|
+
}
|
|
206
|
+
.choiceChipFooter[data-size=xs]{
|
|
207
|
+
gap:var(--space-calendar-footer-elements-s, 8px);
|
|
208
|
+
}
|
|
209
|
+
.choiceChipFooter[data-size=s]{
|
|
210
|
+
gap:var(--space-calendar-footer-elements-s, 8px);
|
|
211
|
+
}
|
|
212
|
+
.choiceChipFooter[data-size=m]{
|
|
213
|
+
gap:var(--space-calendar-footer-elements-m, 8px);
|
|
214
|
+
}
|
|
215
|
+
.choiceChipFooter[data-size=l]{
|
|
216
|
+
gap:var(--space-calendar-footer-elements-l, 8px);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
219
|
.triggerClassName{
|
|
220
220
|
--offset:var(--space-drop-list-drop-offset, 4px);
|
|
221
221
|
}
|
|
@@ -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, ...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, showClearButton, autoApply, onApprove, onCancel, ...rest }: ChipChoiceMultipleProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -51,9 +51,11 @@ function ChipChoiceMultiple(_a) {
|
|
|
51
51
|
contentRender,
|
|
52
52
|
dropDownClassName,
|
|
53
53
|
showClearButton = true,
|
|
54
|
-
autoApply = true
|
|
54
|
+
autoApply = true,
|
|
55
|
+
onApprove,
|
|
56
|
+
onCancel
|
|
55
57
|
} = _a,
|
|
56
|
-
rest = __rest(_a, ["value", "defaultValue", "options", "onChange", "valueRender", "size", "label", "searchable", "contentRender", "dropDownClassName", "showClearButton", "autoApply"]);
|
|
58
|
+
rest = __rest(_a, ["value", "defaultValue", "options", "onChange", "valueRender", "size", "label", "searchable", "contentRender", "dropDownClassName", "showClearButton", "autoApply", "onApprove", "onCancel"]);
|
|
57
59
|
const [value, setValue] = (0, utils_1.useValueControl)({
|
|
58
60
|
value: valueProp,
|
|
59
61
|
defaultValue,
|
|
@@ -109,10 +111,12 @@ function ChipChoiceMultiple(_a) {
|
|
|
109
111
|
}
|
|
110
112
|
}, [autoApply, searchValue, setValue, setDeferredValue]);
|
|
111
113
|
const handleOnCancelClick = () => {
|
|
114
|
+
onCancel && onCancel();
|
|
112
115
|
setDeferredValue(value);
|
|
113
116
|
setOpen(false);
|
|
114
117
|
};
|
|
115
118
|
const handleOnApproveClick = () => {
|
|
119
|
+
onApprove && onApprove();
|
|
116
120
|
setValue(deferredValue);
|
|
117
121
|
setOpen(false);
|
|
118
122
|
};
|
|
@@ -127,6 +131,10 @@ function ChipChoiceMultiple(_a) {
|
|
|
127
131
|
setSearchValue('');
|
|
128
132
|
}
|
|
129
133
|
}, [searchable, open, searchValue]);
|
|
134
|
+
(0, react_1.useEffect)(() => {
|
|
135
|
+
setDeferredValue(value);
|
|
136
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
137
|
+
}, [value]);
|
|
130
138
|
return (0, jsx_runtime_1.jsx)(list_1.Droplist, Object.assign({}, rest, {
|
|
131
139
|
items: items,
|
|
132
140
|
selection: {
|
|
@@ -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, autoApply, ...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, autoApply, onApprove, onCancel, ...rest }: ChipChoiceSingleProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -43,9 +43,11 @@ function ChipChoiceSingle(_a) {
|
|
|
43
43
|
searchable,
|
|
44
44
|
contentRender,
|
|
45
45
|
dropDownClassName,
|
|
46
|
-
autoApply = true
|
|
46
|
+
autoApply = true,
|
|
47
|
+
onApprove,
|
|
48
|
+
onCancel
|
|
47
49
|
} = _a,
|
|
48
|
-
rest = __rest(_a, ["value", "defaultValue", "options", "onChange", "valueRender", "size", "label", "searchable", "contentRender", "dropDownClassName", "autoApply"]);
|
|
50
|
+
rest = __rest(_a, ["value", "defaultValue", "options", "onChange", "valueRender", "size", "label", "searchable", "contentRender", "dropDownClassName", "autoApply", "onApprove", "onCancel"]);
|
|
49
51
|
const [value, setValue] = (0, utils_1.useValueControl)({
|
|
50
52
|
value: valueProp,
|
|
51
53
|
defaultValue,
|
|
@@ -99,10 +101,12 @@ function ChipChoiceSingle(_a) {
|
|
|
99
101
|
}
|
|
100
102
|
}, [autoApply, setValue, setDeferredValue]);
|
|
101
103
|
const handleOnCancelClick = () => {
|
|
104
|
+
onCancel && onCancel();
|
|
102
105
|
setDeferredValue(value);
|
|
103
106
|
setOpen(false);
|
|
104
107
|
};
|
|
105
108
|
const handleOnApproveClick = () => {
|
|
109
|
+
onApprove && onApprove();
|
|
106
110
|
setValue(deferredValue);
|
|
107
111
|
setOpen(false);
|
|
108
112
|
};
|
|
@@ -117,6 +121,10 @@ function ChipChoiceSingle(_a) {
|
|
|
117
121
|
setSearchValue('');
|
|
118
122
|
}
|
|
119
123
|
}, [searchable, open, searchValue]);
|
|
124
|
+
(0, react_1.useEffect)(() => {
|
|
125
|
+
setDeferredValue(value);
|
|
126
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
127
|
+
}, [value]);
|
|
120
128
|
return (0, jsx_runtime_1.jsx)(list_1.Droplist, Object.assign({}, rest, {
|
|
121
129
|
items: items,
|
|
122
130
|
selection: {
|
|
@@ -67,28 +67,25 @@ function useAutoApply(_ref2) {
|
|
|
67
67
|
return;
|
|
68
68
|
}
|
|
69
69
|
return [{
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
}),
|
|
90
|
-
inactive: true
|
|
91
|
-
}]
|
|
70
|
+
content: (0, jsx_runtime_1.jsxs)("div", {
|
|
71
|
+
className: styles_module_scss_1.default.choiceChipFooter,
|
|
72
|
+
"data-size": size,
|
|
73
|
+
"data-test-id": constants_1.CHIP_CHOICE_TEST_IDS.footer,
|
|
74
|
+
children: [(0, jsx_runtime_1.jsx)(button_1.ButtonFunction, {
|
|
75
|
+
size: constants_2.DROPLIST_FOOTER_SIZE_MAP[size],
|
|
76
|
+
appearance: 'neutral',
|
|
77
|
+
label: t('cancel'),
|
|
78
|
+
onClick: onCancel,
|
|
79
|
+
"data-test-id": constants_1.CHIP_CHOICE_TEST_IDS.cancelButton
|
|
80
|
+
}), (0, jsx_runtime_1.jsx)(button_1.ButtonFilled, {
|
|
81
|
+
size: constants_2.DROPLIST_FOOTER_SIZE_MAP[size],
|
|
82
|
+
appearance: 'primary',
|
|
83
|
+
label: t('apply'),
|
|
84
|
+
onClick: onApprove,
|
|
85
|
+
"data-test-id": constants_1.CHIP_CHOICE_TEST_IDS.approveButton
|
|
86
|
+
})]
|
|
87
|
+
}),
|
|
88
|
+
inactive: true
|
|
92
89
|
}];
|
|
93
90
|
}, [t, autoApply, size, onApprove, onCancel]);
|
|
94
91
|
}
|
|
@@ -4,24 +4,6 @@
|
|
|
4
4
|
align-items:center;
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
-
.choiceChipFooter{
|
|
8
|
-
display:flex;
|
|
9
|
-
align-items:center;
|
|
10
|
-
justify-content:space-between;
|
|
11
|
-
}
|
|
12
|
-
.choiceChipFooter[data-size=xs]{
|
|
13
|
-
gap:var(--space-calendar-footer-elements-s, 8px);
|
|
14
|
-
}
|
|
15
|
-
.choiceChipFooter[data-size=s]{
|
|
16
|
-
gap:var(--space-calendar-footer-elements-s, 8px);
|
|
17
|
-
}
|
|
18
|
-
.choiceChipFooter[data-size=m]{
|
|
19
|
-
gap:var(--space-calendar-footer-elements-m, 8px);
|
|
20
|
-
}
|
|
21
|
-
.choiceChipFooter[data-size=l]{
|
|
22
|
-
gap:var(--space-calendar-footer-elements-l, 8px);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
7
|
.choiceChip{
|
|
26
8
|
cursor:pointer;
|
|
27
9
|
position:relative;
|
|
@@ -216,6 +198,24 @@
|
|
|
216
198
|
color:var(--sys-neutral-text-support, #6d707f);
|
|
217
199
|
}
|
|
218
200
|
|
|
201
|
+
.choiceChipFooter{
|
|
202
|
+
display:flex;
|
|
203
|
+
align-items:center;
|
|
204
|
+
justify-content:space-between;
|
|
205
|
+
}
|
|
206
|
+
.choiceChipFooter[data-size=xs]{
|
|
207
|
+
gap:var(--space-calendar-footer-elements-s, 8px);
|
|
208
|
+
}
|
|
209
|
+
.choiceChipFooter[data-size=s]{
|
|
210
|
+
gap:var(--space-calendar-footer-elements-s, 8px);
|
|
211
|
+
}
|
|
212
|
+
.choiceChipFooter[data-size=m]{
|
|
213
|
+
gap:var(--space-calendar-footer-elements-m, 8px);
|
|
214
|
+
}
|
|
215
|
+
.choiceChipFooter[data-size=l]{
|
|
216
|
+
gap:var(--space-calendar-footer-elements-l, 8px);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
219
|
.triggerClassName{
|
|
220
220
|
--offset:var(--space-drop-list-drop-offset, 4px);
|
|
221
221
|
}
|
|
@@ -59,20 +59,22 @@ export type ChipChoiceSelectCommonProps<T extends ContentRenderProps = ContentRe
|
|
|
59
59
|
contentRenderProps?: T;
|
|
60
60
|
}): boolean;
|
|
61
61
|
searchable?: boolean;
|
|
62
|
+
/** Флаг, отвечающий за применение выбранного значения по умолчанию */
|
|
63
|
+
autoApply?: boolean;
|
|
64
|
+
/** Колбек основной кнопки */
|
|
65
|
+
onApprove?: () => void;
|
|
66
|
+
/** Колбек кнопки отмены */
|
|
67
|
+
onCancel?: () => void;
|
|
62
68
|
} & Pick<DroplistProps, 'selection' | 'scrollRef' | 'scrollContainerRef' | 'noDataState' | 'footer' | 'footerActiveElementsRefs' | 'dataError' | 'errorDataState' | 'dataFiltered' | 'noResultsState' | 'loading' | 'scrollToSelectedItem'>;
|
|
63
69
|
export type ChipChoiceSingleProps<T extends ContentRenderProps = ContentRenderProps> = ChipChoiceSelectCommonProps<T> & Omit<SelectionSingleState, 'mode'> & {
|
|
64
70
|
/** Массив опций */
|
|
65
71
|
options: FilterOption<T>[];
|
|
66
72
|
/** Колбек формирующий отображение выбранного значения. Принимает выбранное значение. По умолчанию для отображения используется FilterOption.label */
|
|
67
73
|
valueRender?(option?: BaseOption<T>): ReactNode;
|
|
68
|
-
/** Флаг, отвечающий за применение выбранного значения по умолчанию */
|
|
69
|
-
autoApply?: boolean;
|
|
70
74
|
};
|
|
71
75
|
export type ChipChoiceMultipleProps<T extends ContentRenderProps = ContentRenderProps> = ChipChoiceSelectCommonProps<T> & Omit<SelectionMultipleState, 'mode'> & {
|
|
72
76
|
/** Массив опций */
|
|
73
77
|
options: FilterOption<T>[];
|
|
74
78
|
/** Колбек формирующий отображение выбранного значения. Принимает выбранное значение. По умолчанию для отображения используется FilterOption.label */
|
|
75
79
|
valueRender?(option?: BaseOption<T>[]): ReactNode;
|
|
76
|
-
/** Флаг, отвечающий за применение выбранного значения по умолчанию */
|
|
77
|
-
autoApply?: boolean;
|
|
78
80
|
};
|
|
@@ -4,24 +4,6 @@
|
|
|
4
4
|
align-items:center;
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
-
.choiceChipFooter{
|
|
8
|
-
display:flex;
|
|
9
|
-
align-items:center;
|
|
10
|
-
justify-content:space-between;
|
|
11
|
-
}
|
|
12
|
-
.choiceChipFooter[data-size=xs]{
|
|
13
|
-
gap:var(--space-calendar-footer-elements-s, 8px);
|
|
14
|
-
}
|
|
15
|
-
.choiceChipFooter[data-size=s]{
|
|
16
|
-
gap:var(--space-calendar-footer-elements-s, 8px);
|
|
17
|
-
}
|
|
18
|
-
.choiceChipFooter[data-size=m]{
|
|
19
|
-
gap:var(--space-calendar-footer-elements-m, 8px);
|
|
20
|
-
}
|
|
21
|
-
.choiceChipFooter[data-size=l]{
|
|
22
|
-
gap:var(--space-calendar-footer-elements-l, 8px);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
7
|
.choiceChip{
|
|
26
8
|
cursor:pointer;
|
|
27
9
|
position:relative;
|
|
@@ -216,6 +198,24 @@
|
|
|
216
198
|
color:var(--sys-neutral-text-support, #6d707f);
|
|
217
199
|
}
|
|
218
200
|
|
|
201
|
+
.choiceChipFooter{
|
|
202
|
+
display:flex;
|
|
203
|
+
align-items:center;
|
|
204
|
+
justify-content:space-between;
|
|
205
|
+
}
|
|
206
|
+
.choiceChipFooter[data-size=xs]{
|
|
207
|
+
gap:var(--space-calendar-footer-elements-s, 8px);
|
|
208
|
+
}
|
|
209
|
+
.choiceChipFooter[data-size=s]{
|
|
210
|
+
gap:var(--space-calendar-footer-elements-s, 8px);
|
|
211
|
+
}
|
|
212
|
+
.choiceChipFooter[data-size=m]{
|
|
213
|
+
gap:var(--space-calendar-footer-elements-m, 8px);
|
|
214
|
+
}
|
|
215
|
+
.choiceChipFooter[data-size=l]{
|
|
216
|
+
gap:var(--space-calendar-footer-elements-l, 8px);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
219
|
.triggerClassName{
|
|
220
220
|
--offset:var(--space-drop-list-drop-offset, 4px);
|
|
221
221
|
}
|
|
@@ -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, ...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, showClearButton, autoApply, onApprove, onCancel, ...rest }: ChipChoiceMultipleProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -31,7 +31,7 @@ const defaultMultiValueLabelFormatter = ({ value, total, allLabel }) => {
|
|
|
31
31
|
return `${len.toString()}/${total}`;
|
|
32
32
|
};
|
|
33
33
|
export function ChipChoiceMultiple(_a) {
|
|
34
|
-
var { value: valueProp, defaultValue, options, onChange: onChangeProp, valueRender, size = SIZE.S, label, searchable, contentRender, dropDownClassName, showClearButton = true, autoApply = true } = _a, rest = __rest(_a, ["value", "defaultValue", "options", "onChange", "valueRender", "size", "label", "searchable", "contentRender", "dropDownClassName", "showClearButton", "autoApply"]);
|
|
34
|
+
var { value: valueProp, defaultValue, options, onChange: onChangeProp, valueRender, size = SIZE.S, label, searchable, contentRender, dropDownClassName, showClearButton = true, autoApply = true, onApprove, onCancel } = _a, rest = __rest(_a, ["value", "defaultValue", "options", "onChange", "valueRender", "size", "label", "searchable", "contentRender", "dropDownClassName", "showClearButton", "autoApply", "onApprove", "onCancel"]);
|
|
35
35
|
const [value, setValue] = useValueControl({
|
|
36
36
|
value: valueProp,
|
|
37
37
|
defaultValue,
|
|
@@ -82,10 +82,12 @@ export function ChipChoiceMultiple(_a) {
|
|
|
82
82
|
}
|
|
83
83
|
}, [autoApply, searchValue, setValue, setDeferredValue]);
|
|
84
84
|
const handleOnCancelClick = () => {
|
|
85
|
+
onCancel && onCancel();
|
|
85
86
|
setDeferredValue(value);
|
|
86
87
|
setOpen(false);
|
|
87
88
|
};
|
|
88
89
|
const handleOnApproveClick = () => {
|
|
90
|
+
onApprove && onApprove();
|
|
89
91
|
setValue(deferredValue);
|
|
90
92
|
setOpen(false);
|
|
91
93
|
};
|
|
@@ -100,6 +102,10 @@ export function ChipChoiceMultiple(_a) {
|
|
|
100
102
|
setSearchValue('');
|
|
101
103
|
}
|
|
102
104
|
}, [searchable, open, searchValue]);
|
|
105
|
+
useEffect(() => {
|
|
106
|
+
setDeferredValue(value);
|
|
107
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
108
|
+
}, [value]);
|
|
103
109
|
return (_jsx(Droplist, Object.assign({}, rest, { items: items, selection: {
|
|
104
110
|
value: dropListSelection,
|
|
105
111
|
onChange: handleSelectionChange,
|
|
@@ -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, autoApply, ...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, autoApply, onApprove, onCancel, ...rest }: ChipChoiceSingleProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -24,7 +24,7 @@ export function defaultSingleValueFormatter({ label, allLabel }) {
|
|
|
24
24
|
return label !== null && label !== void 0 ? label : allLabel;
|
|
25
25
|
}
|
|
26
26
|
export function ChipChoiceSingle(_a) {
|
|
27
|
-
var { value: valueProp, defaultValue, options, onChange: onChangeProp, valueRender, size = SIZE.S, label, searchable, contentRender, dropDownClassName, autoApply = true } = _a, rest = __rest(_a, ["value", "defaultValue", "options", "onChange", "valueRender", "size", "label", "searchable", "contentRender", "dropDownClassName", "autoApply"]);
|
|
27
|
+
var { value: valueProp, defaultValue, options, onChange: onChangeProp, valueRender, size = SIZE.S, label, searchable, contentRender, dropDownClassName, autoApply = true, onApprove, onCancel } = _a, rest = __rest(_a, ["value", "defaultValue", "options", "onChange", "valueRender", "size", "label", "searchable", "contentRender", "dropDownClassName", "autoApply", "onApprove", "onCancel"]);
|
|
28
28
|
const [value, setValue] = useValueControl({
|
|
29
29
|
value: valueProp,
|
|
30
30
|
defaultValue,
|
|
@@ -70,10 +70,12 @@ export function ChipChoiceSingle(_a) {
|
|
|
70
70
|
}
|
|
71
71
|
}, [autoApply, setValue, setDeferredValue]);
|
|
72
72
|
const handleOnCancelClick = () => {
|
|
73
|
+
onCancel && onCancel();
|
|
73
74
|
setDeferredValue(value);
|
|
74
75
|
setOpen(false);
|
|
75
76
|
};
|
|
76
77
|
const handleOnApproveClick = () => {
|
|
78
|
+
onApprove && onApprove();
|
|
77
79
|
setValue(deferredValue);
|
|
78
80
|
setOpen(false);
|
|
79
81
|
};
|
|
@@ -88,6 +90,10 @@ export function ChipChoiceSingle(_a) {
|
|
|
88
90
|
setSearchValue('');
|
|
89
91
|
}
|
|
90
92
|
}, [searchable, open, searchValue]);
|
|
93
|
+
useEffect(() => {
|
|
94
|
+
setDeferredValue(value);
|
|
95
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
96
|
+
}, [value]);
|
|
91
97
|
return (_jsx(Droplist, Object.assign({}, rest, { items: items, selection: {
|
|
92
98
|
value: dropListSelection,
|
|
93
99
|
onChange: handleSelectionChange,
|
|
@@ -47,13 +47,8 @@ export function useAutoApply({ autoApply, size, onApprove, onCancel, }) {
|
|
|
47
47
|
}
|
|
48
48
|
return [
|
|
49
49
|
{
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
{
|
|
53
|
-
content: (_jsxs("div", { className: styles.choiceChipFooter, "data-size": size, "data-test-id": CHIP_CHOICE_TEST_IDS.footer, children: [_jsx(ButtonFunction, { size: DROPLIST_FOOTER_SIZE_MAP[size], appearance: 'neutral', label: t('cancel'), onClick: onCancel, "data-test-id": CHIP_CHOICE_TEST_IDS.cancelButton }), _jsx(ButtonFilled, { size: DROPLIST_FOOTER_SIZE_MAP[size], appearance: 'primary', label: t('apply'), onClick: onApprove, "data-test-id": CHIP_CHOICE_TEST_IDS.approveButton })] })),
|
|
54
|
-
inactive: true,
|
|
55
|
-
},
|
|
56
|
-
],
|
|
50
|
+
content: (_jsxs("div", { className: styles.choiceChipFooter, "data-size": size, "data-test-id": CHIP_CHOICE_TEST_IDS.footer, children: [_jsx(ButtonFunction, { size: DROPLIST_FOOTER_SIZE_MAP[size], appearance: 'neutral', label: t('cancel'), onClick: onCancel, "data-test-id": CHIP_CHOICE_TEST_IDS.cancelButton }), _jsx(ButtonFilled, { size: DROPLIST_FOOTER_SIZE_MAP[size], appearance: 'primary', label: t('apply'), onClick: onApprove, "data-test-id": CHIP_CHOICE_TEST_IDS.approveButton })] })),
|
|
51
|
+
inactive: true,
|
|
57
52
|
},
|
|
58
53
|
];
|
|
59
54
|
}, [t, autoApply, size, onApprove, onCancel]);
|
|
@@ -4,24 +4,6 @@
|
|
|
4
4
|
align-items:center;
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
-
.choiceChipFooter{
|
|
8
|
-
display:flex;
|
|
9
|
-
align-items:center;
|
|
10
|
-
justify-content:space-between;
|
|
11
|
-
}
|
|
12
|
-
.choiceChipFooter[data-size=xs]{
|
|
13
|
-
gap:var(--space-calendar-footer-elements-s, 8px);
|
|
14
|
-
}
|
|
15
|
-
.choiceChipFooter[data-size=s]{
|
|
16
|
-
gap:var(--space-calendar-footer-elements-s, 8px);
|
|
17
|
-
}
|
|
18
|
-
.choiceChipFooter[data-size=m]{
|
|
19
|
-
gap:var(--space-calendar-footer-elements-m, 8px);
|
|
20
|
-
}
|
|
21
|
-
.choiceChipFooter[data-size=l]{
|
|
22
|
-
gap:var(--space-calendar-footer-elements-l, 8px);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
7
|
.choiceChip{
|
|
26
8
|
cursor:pointer;
|
|
27
9
|
position:relative;
|
|
@@ -216,6 +198,24 @@
|
|
|
216
198
|
color:var(--sys-neutral-text-support, #6d707f);
|
|
217
199
|
}
|
|
218
200
|
|
|
201
|
+
.choiceChipFooter{
|
|
202
|
+
display:flex;
|
|
203
|
+
align-items:center;
|
|
204
|
+
justify-content:space-between;
|
|
205
|
+
}
|
|
206
|
+
.choiceChipFooter[data-size=xs]{
|
|
207
|
+
gap:var(--space-calendar-footer-elements-s, 8px);
|
|
208
|
+
}
|
|
209
|
+
.choiceChipFooter[data-size=s]{
|
|
210
|
+
gap:var(--space-calendar-footer-elements-s, 8px);
|
|
211
|
+
}
|
|
212
|
+
.choiceChipFooter[data-size=m]{
|
|
213
|
+
gap:var(--space-calendar-footer-elements-m, 8px);
|
|
214
|
+
}
|
|
215
|
+
.choiceChipFooter[data-size=l]{
|
|
216
|
+
gap:var(--space-calendar-footer-elements-l, 8px);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
219
|
.triggerClassName{
|
|
220
220
|
--offset:var(--space-drop-list-drop-offset, 4px);
|
|
221
221
|
}
|
|
@@ -59,20 +59,22 @@ export type ChipChoiceSelectCommonProps<T extends ContentRenderProps = ContentRe
|
|
|
59
59
|
contentRenderProps?: T;
|
|
60
60
|
}): boolean;
|
|
61
61
|
searchable?: boolean;
|
|
62
|
+
/** Флаг, отвечающий за применение выбранного значения по умолчанию */
|
|
63
|
+
autoApply?: boolean;
|
|
64
|
+
/** Колбек основной кнопки */
|
|
65
|
+
onApprove?: () => void;
|
|
66
|
+
/** Колбек кнопки отмены */
|
|
67
|
+
onCancel?: () => void;
|
|
62
68
|
} & Pick<DroplistProps, 'selection' | 'scrollRef' | 'scrollContainerRef' | 'noDataState' | 'footer' | 'footerActiveElementsRefs' | 'dataError' | 'errorDataState' | 'dataFiltered' | 'noResultsState' | 'loading' | 'scrollToSelectedItem'>;
|
|
63
69
|
export type ChipChoiceSingleProps<T extends ContentRenderProps = ContentRenderProps> = ChipChoiceSelectCommonProps<T> & Omit<SelectionSingleState, 'mode'> & {
|
|
64
70
|
/** Массив опций */
|
|
65
71
|
options: FilterOption<T>[];
|
|
66
72
|
/** Колбек формирующий отображение выбранного значения. Принимает выбранное значение. По умолчанию для отображения используется FilterOption.label */
|
|
67
73
|
valueRender?(option?: BaseOption<T>): ReactNode;
|
|
68
|
-
/** Флаг, отвечающий за применение выбранного значения по умолчанию */
|
|
69
|
-
autoApply?: boolean;
|
|
70
74
|
};
|
|
71
75
|
export type ChipChoiceMultipleProps<T extends ContentRenderProps = ContentRenderProps> = ChipChoiceSelectCommonProps<T> & Omit<SelectionMultipleState, 'mode'> & {
|
|
72
76
|
/** Массив опций */
|
|
73
77
|
options: FilterOption<T>[];
|
|
74
78
|
/** Колбек формирующий отображение выбранного значения. Принимает выбранное значение. По умолчанию для отображения используется FilterOption.label */
|
|
75
79
|
valueRender?(option?: BaseOption<T>[]): ReactNode;
|
|
76
|
-
/** Флаг, отвечающий за применение выбранного значения по умолчанию */
|
|
77
|
-
autoApply?: boolean;
|
|
78
80
|
};
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
6
|
"title": "Chips",
|
|
7
|
-
"version": "0.
|
|
7
|
+
"version": "0.23.0",
|
|
8
8
|
"sideEffects": [
|
|
9
9
|
"*.css",
|
|
10
10
|
"*.woff",
|
|
@@ -54,5 +54,5 @@
|
|
|
54
54
|
"peerDependencies": {
|
|
55
55
|
"@snack-uikit/locale": "*"
|
|
56
56
|
},
|
|
57
|
-
"gitHead": "
|
|
57
|
+
"gitHead": "fe19e90e45a2fd92928e591f3cb555695592c8cd"
|
|
58
58
|
}
|
|
@@ -45,6 +45,8 @@ export function ChipChoiceMultiple<T extends ContentRenderProps = ContentRenderP
|
|
|
45
45
|
dropDownClassName,
|
|
46
46
|
showClearButton = true,
|
|
47
47
|
autoApply = true,
|
|
48
|
+
onApprove,
|
|
49
|
+
onCancel,
|
|
48
50
|
...rest
|
|
49
51
|
}: ChipChoiceMultipleProps<T>) {
|
|
50
52
|
const [value, setValue] = useValueControl<SelectionSingleValueType[]>({
|
|
@@ -120,11 +122,15 @@ export function ChipChoiceMultiple<T extends ContentRenderProps = ContentRenderP
|
|
|
120
122
|
);
|
|
121
123
|
|
|
122
124
|
const handleOnCancelClick = () => {
|
|
125
|
+
onCancel && onCancel();
|
|
126
|
+
|
|
123
127
|
setDeferredValue(value);
|
|
124
128
|
setOpen(false);
|
|
125
129
|
};
|
|
126
130
|
|
|
127
131
|
const handleOnApproveClick = () => {
|
|
132
|
+
onApprove && onApprove();
|
|
133
|
+
|
|
128
134
|
setValue(deferredValue);
|
|
129
135
|
setOpen(false);
|
|
130
136
|
};
|
|
@@ -142,6 +148,11 @@ export function ChipChoiceMultiple<T extends ContentRenderProps = ContentRenderP
|
|
|
142
148
|
}
|
|
143
149
|
}, [searchable, open, searchValue]);
|
|
144
150
|
|
|
151
|
+
useEffect(() => {
|
|
152
|
+
setDeferredValue(value);
|
|
153
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
154
|
+
}, [value]);
|
|
155
|
+
|
|
145
156
|
return (
|
|
146
157
|
<Droplist
|
|
147
158
|
{...rest}
|
|
@@ -33,6 +33,8 @@ export function ChipChoiceSingle<T extends ContentRenderProps = ContentRenderPro
|
|
|
33
33
|
contentRender,
|
|
34
34
|
dropDownClassName,
|
|
35
35
|
autoApply = true,
|
|
36
|
+
onApprove,
|
|
37
|
+
onCancel,
|
|
36
38
|
...rest
|
|
37
39
|
}: ChipChoiceSingleProps<T>) {
|
|
38
40
|
const [value, setValue] = useValueControl<SelectionSingleValueType>({
|
|
@@ -103,11 +105,15 @@ export function ChipChoiceSingle<T extends ContentRenderProps = ContentRenderPro
|
|
|
103
105
|
);
|
|
104
106
|
|
|
105
107
|
const handleOnCancelClick = () => {
|
|
108
|
+
onCancel && onCancel();
|
|
109
|
+
|
|
106
110
|
setDeferredValue(value);
|
|
107
111
|
setOpen(false);
|
|
108
112
|
};
|
|
109
113
|
|
|
110
114
|
const handleOnApproveClick = () => {
|
|
115
|
+
onApprove && onApprove();
|
|
116
|
+
|
|
111
117
|
setValue(deferredValue);
|
|
112
118
|
setOpen(false);
|
|
113
119
|
};
|
|
@@ -125,6 +131,11 @@ export function ChipChoiceSingle<T extends ContentRenderProps = ContentRenderPro
|
|
|
125
131
|
}
|
|
126
132
|
}, [searchable, open, searchValue]);
|
|
127
133
|
|
|
134
|
+
useEffect(() => {
|
|
135
|
+
setDeferredValue(value);
|
|
136
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
137
|
+
}, [value]);
|
|
138
|
+
|
|
128
139
|
return (
|
|
129
140
|
<Droplist
|
|
130
141
|
{...rest}
|
|
@@ -90,30 +90,25 @@ export function useAutoApply({
|
|
|
90
90
|
|
|
91
91
|
return [
|
|
92
92
|
{
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
</div>
|
|
113
|
-
),
|
|
114
|
-
inactive: true,
|
|
115
|
-
},
|
|
116
|
-
],
|
|
93
|
+
content: (
|
|
94
|
+
<div className={styles.choiceChipFooter} data-size={size} data-test-id={CHIP_CHOICE_TEST_IDS.footer}>
|
|
95
|
+
<ButtonFunction
|
|
96
|
+
size={DROPLIST_FOOTER_SIZE_MAP[size]}
|
|
97
|
+
appearance='neutral'
|
|
98
|
+
label={t('cancel')}
|
|
99
|
+
onClick={onCancel}
|
|
100
|
+
data-test-id={CHIP_CHOICE_TEST_IDS.cancelButton}
|
|
101
|
+
/>
|
|
102
|
+
<ButtonFilled
|
|
103
|
+
size={DROPLIST_FOOTER_SIZE_MAP[size]}
|
|
104
|
+
appearance='primary'
|
|
105
|
+
label={t('apply')}
|
|
106
|
+
onClick={onApprove}
|
|
107
|
+
data-test-id={CHIP_CHOICE_TEST_IDS.approveButton}
|
|
108
|
+
/>
|
|
109
|
+
</div>
|
|
110
|
+
),
|
|
111
|
+
inactive: true,
|
|
117
112
|
},
|
|
118
113
|
] as DroplistProps['pinBottom'];
|
|
119
114
|
}, [t, autoApply, size, onApprove, onCancel]);
|
|
@@ -33,18 +33,6 @@ $footerGap: (
|
|
|
33
33
|
align-items: center;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
.choiceChipFooter {
|
|
37
|
-
display: flex;
|
|
38
|
-
align-items: center;
|
|
39
|
-
justify-content: space-between;
|
|
40
|
-
|
|
41
|
-
@each $size in $sizes {
|
|
42
|
-
&[data-size='#{$size}'] {
|
|
43
|
-
@include styles-tokens-calendar.composite-var($footerGap, $size);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
36
|
.choiceChip {
|
|
49
37
|
@include styles.chip-defaults;
|
|
50
38
|
@include styles.chip-anatomy-styles(styles-tokens-chips-chipChoice.$chip-choice, $sizes, $labelTypography);
|
|
@@ -112,6 +100,18 @@ $footerGap: (
|
|
|
112
100
|
}
|
|
113
101
|
}
|
|
114
102
|
|
|
103
|
+
.choiceChipFooter {
|
|
104
|
+
display: flex;
|
|
105
|
+
align-items: center;
|
|
106
|
+
justify-content: space-between;
|
|
107
|
+
|
|
108
|
+
@each $size in $sizes {
|
|
109
|
+
&[data-size='#{$size}'] {
|
|
110
|
+
@include styles-tokens-calendar.composite-var($footerGap, $size);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
115
|
.triggerClassName {
|
|
116
116
|
--offset: #{styles-tokens-chips-chipChoice.$space-drop-list-drop-offset};
|
|
117
117
|
}
|
|
@@ -97,6 +97,13 @@ export type ChipChoiceSelectCommonProps<T extends ContentRenderProps = ContentRe
|
|
|
97
97
|
filterFn?(option: { label: ItemId; value?: ItemId; contentRenderProps?: T }): boolean;
|
|
98
98
|
|
|
99
99
|
searchable?: boolean;
|
|
100
|
+
|
|
101
|
+
/** Флаг, отвечающий за применение выбранного значения по умолчанию */
|
|
102
|
+
autoApply?: boolean;
|
|
103
|
+
/** Колбек основной кнопки */
|
|
104
|
+
onApprove?: () => void;
|
|
105
|
+
/** Колбек кнопки отмены */
|
|
106
|
+
onCancel?: () => void;
|
|
100
107
|
} & Pick<
|
|
101
108
|
DroplistProps,
|
|
102
109
|
| 'selection'
|
|
@@ -119,8 +126,6 @@ export type ChipChoiceSingleProps<T extends ContentRenderProps = ContentRenderPr
|
|
|
119
126
|
options: FilterOption<T>[];
|
|
120
127
|
/** Колбек формирующий отображение выбранного значения. Принимает выбранное значение. По умолчанию для отображения используется FilterOption.label */
|
|
121
128
|
valueRender?(option?: BaseOption<T>): ReactNode;
|
|
122
|
-
/** Флаг, отвечающий за применение выбранного значения по умолчанию */
|
|
123
|
-
autoApply?: boolean;
|
|
124
129
|
};
|
|
125
130
|
|
|
126
131
|
export type ChipChoiceMultipleProps<T extends ContentRenderProps = ContentRenderProps> =
|
|
@@ -130,6 +135,4 @@ export type ChipChoiceMultipleProps<T extends ContentRenderProps = ContentRender
|
|
|
130
135
|
options: FilterOption<T>[];
|
|
131
136
|
/** Колбек формирующий отображение выбранного значения. Принимает выбранное значение. По умолчанию для отображения используется FilterOption.label */
|
|
132
137
|
valueRender?(option?: BaseOption<T>[]): ReactNode;
|
|
133
|
-
/** Флаг, отвечающий за применение выбранного значения по умолчанию */
|
|
134
|
-
autoApply?: boolean;
|
|
135
138
|
};
|