@salutejs/plasma-new-hope 0.324.1-canary.1986.15225454757.0 → 0.324.1-canary.1986.15255471728.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/cjs/components/Calendar/hooks/useMonths.js +3 -1
- package/cjs/components/Calendar/hooks/useMonths.js.map +1 -1
- package/cjs/components/Calendar/hooks/useQuarters.js +3 -1
- package/cjs/components/Calendar/hooks/useQuarters.js.map +1 -1
- package/cjs/components/Calendar/hooks/useYears.js +3 -1
- package/cjs/components/Calendar/hooks/useYears.js.map +1 -1
- package/cjs/components/Calendar/utils/getDateWithModification.js +28 -24
- package/cjs/components/Calendar/utils/getDateWithModification.js.map +1 -1
- package/cjs/components/Note/Note.css +35 -6
- package/cjs/components/Note/Note.js +17 -3
- package/cjs/components/Note/Note.js.map +1 -1
- package/cjs/components/Note/Note.styles.js +25 -2
- package/cjs/components/Note/Note.styles.js.map +1 -1
- package/cjs/components/Note/{Note.styles_178qpj9.css → Note.styles_thpfhk.css} +2 -1
- package/cjs/components/Note/Note.tokens.js +9 -1
- package/cjs/components/Note/Note.tokens.js.map +1 -1
- package/cjs/index.css +8 -7
- package/emotion/cjs/components/Calendar/hooks/useMonths.js +3 -1
- package/emotion/cjs/components/Calendar/hooks/useQuarters.js +3 -1
- package/emotion/cjs/components/Calendar/hooks/useYears.js +3 -1
- package/emotion/cjs/components/Calendar/utils/getDateWithModification.js +28 -24
- package/emotion/cjs/components/Note/Note.js +17 -3
- package/emotion/cjs/components/Note/Note.styles.js +27 -15
- package/emotion/cjs/components/Note/Note.tokens.js +9 -1
- package/emotion/cjs/examples/plasma_b2c/components/Combobox/Combobox.stories.tsx +188 -15
- package/emotion/cjs/examples/plasma_b2c/components/Note/Note.config.js +9 -9
- package/emotion/cjs/examples/plasma_b2c/components/Note/Note.stories.tsx +1 -0
- package/emotion/cjs/examples/plasma_b2c/components/Select/Select.stories.tsx +188 -21
- package/emotion/cjs/examples/plasma_web/components/Combobox/Combobox.stories.tsx +187 -15
- package/emotion/cjs/examples/plasma_web/components/Note/Note.config.js +9 -9
- package/emotion/cjs/examples/plasma_web/components/Note/Note.stories.tsx +1 -0
- package/emotion/cjs/examples/plasma_web/components/Select/Select.stories.tsx +188 -21
- package/emotion/es/components/Calendar/hooks/useMonths.js +3 -1
- package/emotion/es/components/Calendar/hooks/useQuarters.js +3 -1
- package/emotion/es/components/Calendar/hooks/useYears.js +3 -1
- package/emotion/es/components/Calendar/utils/getDateWithModification.js +28 -24
- package/emotion/es/components/Note/Note.js +18 -4
- package/emotion/es/components/Note/Note.styles.js +26 -14
- package/emotion/es/components/Note/Note.tokens.js +9 -1
- package/emotion/es/examples/plasma_b2c/components/Combobox/Combobox.stories.tsx +188 -15
- package/emotion/es/examples/plasma_b2c/components/Note/Note.config.js +9 -9
- package/emotion/es/examples/plasma_b2c/components/Note/Note.stories.tsx +1 -0
- package/emotion/es/examples/plasma_b2c/components/Select/Select.stories.tsx +188 -21
- package/emotion/es/examples/plasma_web/components/Combobox/Combobox.stories.tsx +187 -15
- package/emotion/es/examples/plasma_web/components/Note/Note.config.js +9 -9
- package/emotion/es/examples/plasma_web/components/Note/Note.stories.tsx +1 -0
- package/emotion/es/examples/plasma_web/components/Select/Select.stories.tsx +188 -21
- package/es/components/Calendar/hooks/useMonths.js +3 -1
- package/es/components/Calendar/hooks/useMonths.js.map +1 -1
- package/es/components/Calendar/hooks/useQuarters.js +3 -1
- package/es/components/Calendar/hooks/useQuarters.js.map +1 -1
- package/es/components/Calendar/hooks/useYears.js +3 -1
- package/es/components/Calendar/hooks/useYears.js.map +1 -1
- package/es/components/Calendar/utils/getDateWithModification.js +28 -24
- package/es/components/Calendar/utils/getDateWithModification.js.map +1 -1
- package/es/components/Note/Note.css +35 -6
- package/es/components/Note/Note.js +18 -4
- package/es/components/Note/Note.js.map +1 -1
- package/es/components/Note/Note.styles.js +25 -3
- package/es/components/Note/Note.styles.js.map +1 -1
- package/es/components/Note/{Note.styles_178qpj9.css → Note.styles_thpfhk.css} +2 -1
- package/es/components/Note/Note.tokens.js +9 -1
- package/es/components/Note/Note.tokens.js.map +1 -1
- package/es/index.css +8 -7
- package/package.json +2 -2
- package/styled-components/cjs/components/Calendar/hooks/useMonths.js +3 -1
- package/styled-components/cjs/components/Calendar/hooks/useQuarters.js +3 -1
- package/styled-components/cjs/components/Calendar/hooks/useYears.js +3 -1
- package/styled-components/cjs/components/Calendar/utils/getDateWithModification.js +28 -24
- package/styled-components/cjs/components/Note/Note.js +17 -3
- package/styled-components/cjs/components/Note/Note.styles.js +14 -3
- package/styled-components/cjs/components/Note/Note.tokens.js +9 -1
- package/styled-components/cjs/examples/plasma_b2c/components/Combobox/Combobox.stories.tsx +188 -15
- package/styled-components/cjs/examples/plasma_b2c/components/Note/Note.config.js +4 -4
- package/styled-components/cjs/examples/plasma_b2c/components/Note/Note.stories.tsx +1 -0
- package/styled-components/cjs/examples/plasma_b2c/components/Select/Select.stories.tsx +188 -21
- package/styled-components/cjs/examples/plasma_web/components/Combobox/Combobox.stories.tsx +187 -15
- package/styled-components/cjs/examples/plasma_web/components/Note/Note.config.js +4 -4
- package/styled-components/cjs/examples/plasma_web/components/Note/Note.stories.tsx +1 -0
- package/styled-components/cjs/examples/plasma_web/components/Select/Select.stories.tsx +188 -21
- package/styled-components/es/components/Calendar/hooks/useMonths.js +3 -1
- package/styled-components/es/components/Calendar/hooks/useQuarters.js +3 -1
- package/styled-components/es/components/Calendar/hooks/useYears.js +3 -1
- package/styled-components/es/components/Calendar/utils/getDateWithModification.js +28 -24
- package/styled-components/es/components/Note/Note.js +18 -4
- package/styled-components/es/components/Note/Note.styles.js +13 -2
- package/styled-components/es/components/Note/Note.tokens.js +9 -1
- package/styled-components/es/examples/plasma_b2c/components/Combobox/Combobox.stories.tsx +188 -15
- package/styled-components/es/examples/plasma_b2c/components/Note/Note.config.js +4 -4
- package/styled-components/es/examples/plasma_b2c/components/Note/Note.stories.tsx +1 -0
- package/styled-components/es/examples/plasma_b2c/components/Select/Select.stories.tsx +188 -21
- package/styled-components/es/examples/plasma_web/components/Combobox/Combobox.stories.tsx +187 -15
- package/styled-components/es/examples/plasma_web/components/Note/Note.config.js +4 -4
- package/styled-components/es/examples/plasma_web/components/Note/Note.stories.tsx +1 -0
- package/styled-components/es/examples/plasma_web/components/Select/Select.stories.tsx +188 -21
- package/types/components/Calendar/hooks/types.d.ts +7 -2
- package/types/components/Calendar/hooks/types.d.ts.map +1 -1
- package/types/components/Calendar/hooks/useMonths.d.ts +1 -1
- package/types/components/Calendar/hooks/useMonths.d.ts.map +1 -1
- package/types/components/Calendar/hooks/useQuarters.d.ts +1 -1
- package/types/components/Calendar/hooks/useQuarters.d.ts.map +1 -1
- package/types/components/Calendar/hooks/useYears.d.ts +1 -1
- package/types/components/Calendar/hooks/useYears.d.ts.map +1 -1
- package/types/components/Calendar/utils/getDateWithModification.d.ts.map +1 -1
- package/types/components/Note/Note.d.ts +4 -0
- package/types/components/Note/Note.d.ts.map +1 -1
- package/types/components/Note/Note.styles.d.ts +46 -1
- package/types/components/Note/Note.styles.d.ts.map +1 -1
- package/types/components/Note/Note.tokens.d.ts +8 -0
- package/types/components/Note/Note.tokens.d.ts.map +1 -1
- package/types/components/Note/Note.types.d.ts +8 -0
- package/types/components/Note/Note.types.d.ts.map +1 -1
@@ -13,7 +13,7 @@ import { Select } from './Select';
|
|
13
13
|
type StorySelectProps = ComponentProps<typeof Select> & {
|
14
14
|
enableContentLeft?: boolean;
|
15
15
|
hasHint?: boolean;
|
16
|
-
|
16
|
+
selectAllLabel?: string;
|
17
17
|
selectAllSticky?: boolean;
|
18
18
|
};
|
19
19
|
|
@@ -198,13 +198,6 @@ const meta: Meta<StorySelectProps> = {
|
|
198
198
|
options: ['default', 'text'],
|
199
199
|
if: { arg: 'target', eq: 'textfield-like' },
|
200
200
|
},
|
201
|
-
enableSelectAll: {
|
202
|
-
control: 'boolean',
|
203
|
-
},
|
204
|
-
selectAllSticky: {
|
205
|
-
control: 'boolean',
|
206
|
-
if: { arg: 'enableSelectAll', truthy: true },
|
207
|
-
},
|
208
201
|
},
|
209
202
|
args: {
|
210
203
|
target: 'textfield-like',
|
@@ -234,8 +227,6 @@ const meta: Meta<StorySelectProps> = {
|
|
234
227
|
hintPlacement: 'auto',
|
235
228
|
hintWidth: '10rem',
|
236
229
|
hintHasArrow: true,
|
237
|
-
enableSelectAll: false,
|
238
|
-
selectAllSticky: false,
|
239
230
|
},
|
240
231
|
parameters: {
|
241
232
|
controls: {
|
@@ -271,8 +262,6 @@ const meta: Meta<StorySelectProps> = {
|
|
271
262
|
'hintPlacement',
|
272
263
|
'hintWidth',
|
273
264
|
'hintHasArrow',
|
274
|
-
'enableSelectAll',
|
275
|
-
'selectAllSticky',
|
276
265
|
],
|
277
266
|
},
|
278
267
|
},
|
@@ -511,7 +500,7 @@ const SingleStory = ({ enableContentLeft, ...args }: StorySelectProps) => {
|
|
511
500
|
export const Single: StoryObj<StorySelectProps> = {
|
512
501
|
parameters: {
|
513
502
|
controls: {
|
514
|
-
exclude: ['chipView', 'isTargetAmount', 'chipType'
|
503
|
+
exclude: ['chipView', 'isTargetAmount', 'chipType'],
|
515
504
|
},
|
516
505
|
},
|
517
506
|
render: (args) => <SingleStory {...args} />,
|
@@ -520,7 +509,7 @@ export const Single: StoryObj<StorySelectProps> = {
|
|
520
509
|
},
|
521
510
|
};
|
522
511
|
|
523
|
-
const MultiselectStory = ({ enableContentLeft,
|
512
|
+
const MultiselectStory = ({ enableContentLeft, ...args }: StorySelectProps) => {
|
524
513
|
const [value, setValue] = useState<Array<string>>([]);
|
525
514
|
|
526
515
|
return (
|
@@ -531,7 +520,6 @@ const MultiselectStory = ({ enableContentLeft, enableSelectAll, selectAllSticky,
|
|
531
520
|
value={value}
|
532
521
|
onChange={setValue}
|
533
522
|
contentLeft={enableContentLeft ? <IconDone size="s" color="inherit" /> : undefined}
|
534
|
-
selectAllOptions={enableSelectAll ? { sticky: selectAllSticky || false } : undefined}
|
535
523
|
/>
|
536
524
|
</div>
|
537
525
|
);
|
@@ -574,11 +562,6 @@ const PredefinedStory = ({ enableContentLeft, ...args }: StorySelectProps) => {
|
|
574
562
|
};
|
575
563
|
|
576
564
|
export const Predefined: StoryObj<StorySelectProps> = {
|
577
|
-
parameters: {
|
578
|
-
controls: {
|
579
|
-
exclude: ['enableSelectAll'],
|
580
|
-
},
|
581
|
-
},
|
582
565
|
render: (args) => <PredefinedStory {...args} />,
|
583
566
|
};
|
584
567
|
|
@@ -1002,7 +985,7 @@ const CommonStory = ({ enableContentLeft, ...args }: StorySelectProps) => {
|
|
1002
985
|
export const Common: StoryObj<StorySelectProps> = {
|
1003
986
|
parameters: {
|
1004
987
|
controls: {
|
1005
|
-
exclude: ['target', 'view'
|
988
|
+
exclude: ['target', 'view'],
|
1006
989
|
},
|
1007
990
|
},
|
1008
991
|
argTypes: {
|
@@ -1016,3 +999,187 @@ export const Common: StoryObj<StorySelectProps> = {
|
|
1016
999
|
},
|
1017
1000
|
render: (args) => <CommonStory {...args} />,
|
1018
1001
|
};
|
1002
|
+
|
1003
|
+
const flatItems = [
|
1004
|
+
{
|
1005
|
+
value: 'north_america',
|
1006
|
+
label: 'Северная Америка',
|
1007
|
+
},
|
1008
|
+
{
|
1009
|
+
value: 'rio_de_janeiro',
|
1010
|
+
label: 'Рио-де-Жанейро',
|
1011
|
+
},
|
1012
|
+
{
|
1013
|
+
value: 'sao_paulo',
|
1014
|
+
label: 'Сан-Паулу',
|
1015
|
+
},
|
1016
|
+
{
|
1017
|
+
value: 'buenos_aires',
|
1018
|
+
label: 'Буэнос-Айрес',
|
1019
|
+
},
|
1020
|
+
{
|
1021
|
+
value: 'cordoba',
|
1022
|
+
label: 'Кордова',
|
1023
|
+
},
|
1024
|
+
{
|
1025
|
+
value: 'bogota',
|
1026
|
+
label: 'Богота',
|
1027
|
+
},
|
1028
|
+
{
|
1029
|
+
value: 'medellin',
|
1030
|
+
label: 'Медельин',
|
1031
|
+
},
|
1032
|
+
{
|
1033
|
+
value: 'paris',
|
1034
|
+
label: 'Париж',
|
1035
|
+
},
|
1036
|
+
{
|
1037
|
+
value: 'lyon',
|
1038
|
+
label: 'Лион',
|
1039
|
+
},
|
1040
|
+
{
|
1041
|
+
value: 'berlin',
|
1042
|
+
label: 'Берлин',
|
1043
|
+
},
|
1044
|
+
{
|
1045
|
+
value: 'munich',
|
1046
|
+
label: 'Мюнхен',
|
1047
|
+
},
|
1048
|
+
{
|
1049
|
+
value: 'rome',
|
1050
|
+
label: 'Рим',
|
1051
|
+
},
|
1052
|
+
{
|
1053
|
+
value: 'milan',
|
1054
|
+
label: 'Милан',
|
1055
|
+
},
|
1056
|
+
{
|
1057
|
+
value: 'madrid',
|
1058
|
+
label: 'Мадрид',
|
1059
|
+
},
|
1060
|
+
{
|
1061
|
+
value: 'barcelona',
|
1062
|
+
label: 'Барселона',
|
1063
|
+
},
|
1064
|
+
{
|
1065
|
+
value: 'london',
|
1066
|
+
label: 'Лондон',
|
1067
|
+
},
|
1068
|
+
{
|
1069
|
+
value: 'manchester',
|
1070
|
+
label: 'Манчестер',
|
1071
|
+
},
|
1072
|
+
{
|
1073
|
+
value: 'beijing',
|
1074
|
+
label: 'Пекин',
|
1075
|
+
},
|
1076
|
+
{
|
1077
|
+
value: 'shanghai',
|
1078
|
+
label: 'Шанхай',
|
1079
|
+
},
|
1080
|
+
{
|
1081
|
+
value: 'tokyo',
|
1082
|
+
label: 'Токио',
|
1083
|
+
},
|
1084
|
+
{
|
1085
|
+
value: 'osaka',
|
1086
|
+
label: 'Осака',
|
1087
|
+
},
|
1088
|
+
{
|
1089
|
+
value: 'delhi',
|
1090
|
+
label: 'Дели',
|
1091
|
+
},
|
1092
|
+
{
|
1093
|
+
value: 'mumbai',
|
1094
|
+
label: 'Мумбаи',
|
1095
|
+
},
|
1096
|
+
{
|
1097
|
+
value: 'seoul',
|
1098
|
+
label: 'Сеул',
|
1099
|
+
},
|
1100
|
+
{
|
1101
|
+
value: 'busan',
|
1102
|
+
label: 'Пусан',
|
1103
|
+
},
|
1104
|
+
{
|
1105
|
+
value: 'bangkok',
|
1106
|
+
label: 'Бангкок',
|
1107
|
+
},
|
1108
|
+
{
|
1109
|
+
value: 'phuket',
|
1110
|
+
label: 'Пхукет',
|
1111
|
+
},
|
1112
|
+
{
|
1113
|
+
value: 'africa',
|
1114
|
+
label: 'Африка',
|
1115
|
+
},
|
1116
|
+
];
|
1117
|
+
|
1118
|
+
const SelectAllStory = (args: StorySelectProps) => {
|
1119
|
+
const [value, setValue] = useState([]);
|
1120
|
+
const [checked, setChecked] = useState(false);
|
1121
|
+
const [indeterminate, setIndeterminate] = useState(false);
|
1122
|
+
|
1123
|
+
const handleClick = () => {
|
1124
|
+
if (checked && !indeterminate) {
|
1125
|
+
setValue([]);
|
1126
|
+
} else {
|
1127
|
+
setValue(flatItems.map((item) => item.value));
|
1128
|
+
}
|
1129
|
+
};
|
1130
|
+
|
1131
|
+
React.useEffect(() => {
|
1132
|
+
if (value.length === 0) {
|
1133
|
+
setChecked(false);
|
1134
|
+
setIndeterminate(false);
|
1135
|
+
} else if (value.length === flatItems.length) {
|
1136
|
+
setChecked(true);
|
1137
|
+
setIndeterminate(false);
|
1138
|
+
} else {
|
1139
|
+
setChecked(true);
|
1140
|
+
setIndeterminate(true);
|
1141
|
+
}
|
1142
|
+
}, [value]);
|
1143
|
+
|
1144
|
+
return (
|
1145
|
+
<div style={{ width: '400px' }}>
|
1146
|
+
<Select
|
1147
|
+
placeholder="Placeholder"
|
1148
|
+
multiselect
|
1149
|
+
items={flatItems}
|
1150
|
+
value={value}
|
1151
|
+
onChange={setValue}
|
1152
|
+
listOverflow="auto"
|
1153
|
+
listMaxHeight="300px"
|
1154
|
+
selectAllOptions={{
|
1155
|
+
sticky: args?.selectAllSticky || false,
|
1156
|
+
label: args?.selectAllLabel,
|
1157
|
+
checked,
|
1158
|
+
indeterminate,
|
1159
|
+
onClick: handleClick,
|
1160
|
+
}}
|
1161
|
+
/>
|
1162
|
+
</div>
|
1163
|
+
);
|
1164
|
+
};
|
1165
|
+
|
1166
|
+
export const SelectAll: StoryObj<StorySelectProps> = {
|
1167
|
+
render: (args) => <SelectAllStory {...args} />,
|
1168
|
+
argTypes: {
|
1169
|
+
selectAllSticky: {
|
1170
|
+
control: 'boolean',
|
1171
|
+
},
|
1172
|
+
selectAllLabel: {
|
1173
|
+
control: 'text',
|
1174
|
+
},
|
1175
|
+
},
|
1176
|
+
args: {
|
1177
|
+
selectAllSticky: false,
|
1178
|
+
selectAllLabel: 'Выбрать все',
|
1179
|
+
},
|
1180
|
+
parameters: {
|
1181
|
+
controls: {
|
1182
|
+
include: ['selectAllSticky', 'selectAllLabel'],
|
1183
|
+
},
|
1184
|
+
},
|
1185
|
+
};
|
@@ -11,7 +11,7 @@ import { Combobox } from './Combobox';
|
|
11
11
|
type StorySelectProps = ComponentProps<typeof Combobox> & {
|
12
12
|
enableContentLeft?: boolean;
|
13
13
|
hasHint?: boolean;
|
14
|
-
|
14
|
+
selectAllLabel?: string;
|
15
15
|
selectAllSticky?: boolean;
|
16
16
|
};
|
17
17
|
|
@@ -175,13 +175,6 @@ const meta: Meta<StorySelectProps> = {
|
|
175
175
|
emptyStateDescription: {
|
176
176
|
control: { type: 'text' },
|
177
177
|
},
|
178
|
-
enableSelectAll: {
|
179
|
-
control: 'boolean',
|
180
|
-
},
|
181
|
-
selectAllSticky: {
|
182
|
-
control: 'boolean',
|
183
|
-
if: { arg: 'enableSelectAll', truthy: true },
|
184
|
-
},
|
185
178
|
},
|
186
179
|
args: {
|
187
180
|
label: 'Label',
|
@@ -211,8 +204,6 @@ const meta: Meta<StorySelectProps> = {
|
|
211
204
|
hintWidth: '10rem',
|
212
205
|
hintHasArrow: true,
|
213
206
|
emptyStateDescription: '',
|
214
|
-
enableSelectAll: false,
|
215
|
-
selectAllSticky: false,
|
216
207
|
},
|
217
208
|
parameters: {
|
218
209
|
controls: {
|
@@ -248,8 +239,6 @@ const meta: Meta<StorySelectProps> = {
|
|
248
239
|
'hintWidth',
|
249
240
|
'hintHasArrow',
|
250
241
|
'emptyStateDescription',
|
251
|
-
'enableSelectAll',
|
252
|
-
'selectAllSticky',
|
253
242
|
],
|
254
243
|
},
|
255
244
|
},
|
@@ -491,12 +480,12 @@ export const Single: StoryObj<StorySelectProps> = {
|
|
491
480
|
},
|
492
481
|
parameters: {
|
493
482
|
controls: {
|
494
|
-
exclude: ['isTargetAmount'
|
483
|
+
exclude: ['isTargetAmount'],
|
495
484
|
},
|
496
485
|
},
|
497
486
|
};
|
498
487
|
|
499
|
-
const MultipleStory = (
|
488
|
+
const MultipleStory = (args: StorySelectProps) => {
|
500
489
|
const [value, setValue] = useState([]);
|
501
490
|
|
502
491
|
return (
|
@@ -508,7 +497,6 @@ const MultipleStory = ({ enableSelectAll, selectAllSticky, ...args }: StorySelec
|
|
508
497
|
value={value}
|
509
498
|
onChange={setValue}
|
510
499
|
contentLeft={args.enableContentLeft ? <IconDone size="s" /> : undefined}
|
511
|
-
selectAllOptions={enableSelectAll ? { sticky: selectAllSticky || false } : undefined}
|
512
500
|
/>
|
513
501
|
</div>
|
514
502
|
);
|
@@ -520,3 +508,187 @@ export const Multiple: StoryObj<StorySelectProps> = {
|
|
520
508
|
closeAfterSelect: false,
|
521
509
|
},
|
522
510
|
};
|
511
|
+
|
512
|
+
const flatItems = [
|
513
|
+
{
|
514
|
+
value: 'north_america',
|
515
|
+
label: 'Северная Америка',
|
516
|
+
},
|
517
|
+
{
|
518
|
+
value: 'rio_de_janeiro',
|
519
|
+
label: 'Рио-де-Жанейро',
|
520
|
+
},
|
521
|
+
{
|
522
|
+
value: 'sao_paulo',
|
523
|
+
label: 'Сан-Паулу',
|
524
|
+
},
|
525
|
+
{
|
526
|
+
value: 'buenos_aires',
|
527
|
+
label: 'Буэнос-Айрес',
|
528
|
+
},
|
529
|
+
{
|
530
|
+
value: 'cordoba',
|
531
|
+
label: 'Кордова',
|
532
|
+
},
|
533
|
+
{
|
534
|
+
value: 'bogota',
|
535
|
+
label: 'Богота',
|
536
|
+
},
|
537
|
+
{
|
538
|
+
value: 'medellin',
|
539
|
+
label: 'Медельин',
|
540
|
+
},
|
541
|
+
{
|
542
|
+
value: 'paris',
|
543
|
+
label: 'Париж',
|
544
|
+
},
|
545
|
+
{
|
546
|
+
value: 'lyon',
|
547
|
+
label: 'Лион',
|
548
|
+
},
|
549
|
+
{
|
550
|
+
value: 'berlin',
|
551
|
+
label: 'Берлин',
|
552
|
+
},
|
553
|
+
{
|
554
|
+
value: 'munich',
|
555
|
+
label: 'Мюнхен',
|
556
|
+
},
|
557
|
+
{
|
558
|
+
value: 'rome',
|
559
|
+
label: 'Рим',
|
560
|
+
},
|
561
|
+
{
|
562
|
+
value: 'milan',
|
563
|
+
label: 'Милан',
|
564
|
+
},
|
565
|
+
{
|
566
|
+
value: 'madrid',
|
567
|
+
label: 'Мадрид',
|
568
|
+
},
|
569
|
+
{
|
570
|
+
value: 'barcelona',
|
571
|
+
label: 'Барселона',
|
572
|
+
},
|
573
|
+
{
|
574
|
+
value: 'london',
|
575
|
+
label: 'Лондон',
|
576
|
+
},
|
577
|
+
{
|
578
|
+
value: 'manchester',
|
579
|
+
label: 'Манчестер',
|
580
|
+
},
|
581
|
+
{
|
582
|
+
value: 'beijing',
|
583
|
+
label: 'Пекин',
|
584
|
+
},
|
585
|
+
{
|
586
|
+
value: 'shanghai',
|
587
|
+
label: 'Шанхай',
|
588
|
+
},
|
589
|
+
{
|
590
|
+
value: 'tokyo',
|
591
|
+
label: 'Токио',
|
592
|
+
},
|
593
|
+
{
|
594
|
+
value: 'osaka',
|
595
|
+
label: 'Осака',
|
596
|
+
},
|
597
|
+
{
|
598
|
+
value: 'delhi',
|
599
|
+
label: 'Дели',
|
600
|
+
},
|
601
|
+
{
|
602
|
+
value: 'mumbai',
|
603
|
+
label: 'Мумбаи',
|
604
|
+
},
|
605
|
+
{
|
606
|
+
value: 'seoul',
|
607
|
+
label: 'Сеул',
|
608
|
+
},
|
609
|
+
{
|
610
|
+
value: 'busan',
|
611
|
+
label: 'Пусан',
|
612
|
+
},
|
613
|
+
{
|
614
|
+
value: 'bangkok',
|
615
|
+
label: 'Бангкок',
|
616
|
+
},
|
617
|
+
{
|
618
|
+
value: 'phuket',
|
619
|
+
label: 'Пхукет',
|
620
|
+
},
|
621
|
+
{
|
622
|
+
value: 'africa',
|
623
|
+
label: 'Африка',
|
624
|
+
},
|
625
|
+
];
|
626
|
+
|
627
|
+
const SelectAllStory = (args: StorySelectProps) => {
|
628
|
+
const [value, setValue] = useState([]);
|
629
|
+
const [checked, setChecked] = useState(false);
|
630
|
+
const [indeterminate, setIndeterminate] = useState(false);
|
631
|
+
|
632
|
+
const handleClick = () => {
|
633
|
+
if (checked && !indeterminate) {
|
634
|
+
setValue([]);
|
635
|
+
} else {
|
636
|
+
setValue(flatItems.map((item) => item.value));
|
637
|
+
}
|
638
|
+
};
|
639
|
+
|
640
|
+
React.useEffect(() => {
|
641
|
+
if (value.length === 0) {
|
642
|
+
setChecked(false);
|
643
|
+
setIndeterminate(false);
|
644
|
+
} else if (value.length === flatItems.length) {
|
645
|
+
setChecked(true);
|
646
|
+
setIndeterminate(false);
|
647
|
+
} else {
|
648
|
+
setChecked(true);
|
649
|
+
setIndeterminate(true);
|
650
|
+
}
|
651
|
+
}, [value]);
|
652
|
+
|
653
|
+
return (
|
654
|
+
<div style={{ width: '400px' }}>
|
655
|
+
<Combobox
|
656
|
+
placeholder="Placeholder"
|
657
|
+
multiple
|
658
|
+
items={flatItems}
|
659
|
+
value={value}
|
660
|
+
onChange={setValue}
|
661
|
+
listOverflow="auto"
|
662
|
+
listMaxHeight="300px"
|
663
|
+
selectAllOptions={{
|
664
|
+
sticky: args?.selectAllSticky || false,
|
665
|
+
label: args?.selectAllLabel,
|
666
|
+
checked,
|
667
|
+
indeterminate,
|
668
|
+
onClick: handleClick,
|
669
|
+
}}
|
670
|
+
/>
|
671
|
+
</div>
|
672
|
+
);
|
673
|
+
};
|
674
|
+
|
675
|
+
export const SelectAll: StoryObj<StorySelectProps> = {
|
676
|
+
render: (args) => <SelectAllStory {...args} />,
|
677
|
+
argTypes: {
|
678
|
+
selectAllSticky: {
|
679
|
+
control: 'boolean',
|
680
|
+
},
|
681
|
+
selectAllLabel: {
|
682
|
+
control: 'text',
|
683
|
+
},
|
684
|
+
},
|
685
|
+
args: {
|
686
|
+
selectAllSticky: false,
|
687
|
+
selectAllLabel: 'Выбрать все',
|
688
|
+
},
|
689
|
+
parameters: {
|
690
|
+
controls: {
|
691
|
+
include: ['selectAllSticky', 'selectAllLabel'],
|
692
|
+
},
|
693
|
+
},
|
694
|
+
};
|