@aloudata/aloudata-design 0.4.8-beta.1 → 0.4.8-beta.11

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 (39) hide show
  1. package/dist/Button/index.js +5 -5
  2. package/dist/Button/style/index.less +48 -44
  3. package/dist/Button/style/variables.less +13 -13
  4. package/dist/Checkbox/style/index.less +7 -3
  5. package/dist/DoubleCircleIcon/index.d.ts +1 -0
  6. package/dist/DoubleCircleIcon/index.js +5 -2
  7. package/dist/DoubleCircleIcon/style/index.less +33 -1
  8. package/dist/Dropdown/style/index.less +11 -10
  9. package/dist/Empty/image/SearchSmall.js +5 -0
  10. package/dist/Empty/style/index.less +11 -0
  11. package/dist/Icon/icons.js +32 -0
  12. package/dist/Input/style/index.less +54 -39
  13. package/dist/Menu/style/index.less +73 -2
  14. package/dist/Modal/index.d.ts +4 -1
  15. package/dist/Modal/index.js +178 -67
  16. package/dist/Modal/style/index.less +46 -6
  17. package/dist/Radio/components/Group/index.js +7 -4
  18. package/dist/Radio/components/Radio/index.js +9 -6
  19. package/dist/Radio/interface/radioGroup.d.ts +6 -1
  20. package/dist/Radio/style/index.less +152 -46
  21. package/dist/Select/components/MultipleOption.d.ts +1 -0
  22. package/dist/Select/components/MultipleOption.js +7 -3
  23. package/dist/Select/components/SingleOption.d.ts +1 -0
  24. package/dist/Select/components/SingleOption.js +6 -2
  25. package/dist/Select/index.js +70 -9
  26. package/dist/Select/style/index.less +7 -3
  27. package/dist/Select/style/multiple.less +13 -2
  28. package/dist/Select/style/single.less +12 -1
  29. package/dist/Select/style/status.less +1 -1
  30. package/dist/Table/style/index.less +9 -7
  31. package/dist/Tabs/index.d.ts +15 -0
  32. package/dist/Tabs/index.js +37 -6
  33. package/dist/Tabs/style/index.less +38 -1
  34. package/dist/notification/demo/index.js +24 -7
  35. package/dist/notification/index.d.ts +9 -1
  36. package/dist/notification/index.js +148 -1
  37. package/dist/notification/style/index.less +28 -0
  38. package/dist/style/themes/default/index.less +25 -25
  39. package/package.json +3 -3
@@ -1,17 +1,24 @@
1
1
  @import '../../style/index.less';
2
2
 
3
- @radio-icon-button-padding-large: 10px;
3
+ @radio-icon-button-padding-large: 8px;
4
4
  @radio-icon-button-padding-middle: 9px;
5
- @radio-icon-button-padding-small: 8px;
5
+ @radio-icon-button-padding-small: 7px;
6
6
  @radio-group-height-large: 36px;
7
7
  @radio-group-height-middle: 32px;
8
8
  @radio-group-height-small: 28px;
9
9
  @radio-button-padding: 12px;
10
+ @radio-button-padding-large: 14px;
11
+ @radio-button-padding-small: 10px;
12
+ @radio-button-padding-middle: 12px;
10
13
 
11
14
  // Radio组件基础样式
15
+ [class^="ald-radio"] {
16
+ box-sizing: border-box;
17
+ }
18
+
12
19
  .ald-radio-wrapper {
13
20
  display: inline-flex;
14
- gap: 8px;
21
+ gap: 4px;
15
22
  align-items: center;
16
23
  justify-content: start;
17
24
  height: 20px;
@@ -41,9 +48,10 @@
41
48
  .ald-radio-inner {
42
49
  position: relative;
43
50
  display: inline-block;
44
- width: 17px;
45
- height: 17px;
46
- border: 1px solid @NL90;
51
+ width: 15px;
52
+ height: 15px;
53
+ border: 1px solid @BG60;
54
+ background-color: @BG100;
47
55
  border-radius: 50%;
48
56
  }
49
57
 
@@ -54,57 +62,81 @@
54
62
  justify-content: center;
55
63
  color: @NL0;
56
64
  font-weight: 400;
65
+ font-size: 13px;
66
+ line-height: 20px;
67
+ user-select: none;
57
68
  }
58
69
  // 绘制选中时的圆圈样式
59
70
  .ald-radio-checked > .ald-radio-inner {
60
- background-color: @B60;
61
- border: 0;
71
+ border: 1px solid @B40;
72
+ background: @B95;
62
73
  transform: background 0.5s ease;
63
74
 
64
75
  &::after {
65
76
  position: absolute;
66
77
  top: 50%;
67
78
  left: 50%;
68
- width: 6px;
69
- height: 6px;
70
- background-color: @ND0;
79
+ width: 7px;
80
+ height: 7px;
81
+ background-color: @B40;
71
82
  border-radius: 50%;
72
83
  transform: translate(-50%, -50%);
73
84
  content: '';
74
85
  }
75
86
  }
87
+
76
88
  // 禁用状态下的样式
77
89
  .ald-radio-disabled > .ald-radio-inner {
78
90
  background-color: @NL90;
79
- border: 0;
91
+ border: 1px solid @BG60;
80
92
  }
81
93
 
82
- .ald-radio-disabled.ald-radio-checked > .ald-radio-inner::after {
83
- position: absolute;
84
- top: 50%;
85
- left: 50%;
86
- width: 6px;
87
- height: 6px;
88
- background: @NL90;
89
- border-radius: 50%;
90
- transform: translate(-50%, -50%);
91
- content: '';
94
+ .ald-radio-disabled.ald-radio-checked > .ald-radio-inner {
95
+ border: 1px solid @B40;
96
+ background: @B95;
97
+
98
+ &::after {
99
+ position: absolute;
100
+ top: 50%;
101
+ left: 50%;
102
+ width: 7px;
103
+ height: 7px;
104
+ background: @B40;
105
+ border-radius: 50%;
106
+ transform: translate(-50%, -50%);
107
+ content: '';
108
+ }
92
109
  }
93
110
  // 禁用的样式
94
111
  .ald-radio-label.ald-radio-wrapper-disabled {
95
112
  cursor: default;
113
+ opacity: 0.5;
96
114
 
97
115
  .ald-radio-desc {
98
116
  color: @NL60;
99
117
  }
100
118
  }
119
+
120
+ .ald-radio-button-wrapper-border-primary,
121
+ .ald-radio-button-wrapper-border,
122
+ .ald-radio-icon-button-wrapper-border,
123
+ .ald-radio-icon-button-wrapper-border-primary {
124
+ &.ald-radio-label.ald-radio-wrapper-disabled {
125
+ opacity: 0.5;
126
+
127
+ .ald-radio-desc {
128
+ color: @NL20;
129
+ }
130
+ }
131
+ }
132
+
101
133
  // RadioGroup基础样式
102
134
  .ald-radio-group {
103
135
  position: relative;
104
136
 
105
137
  .ald-radio-label .ald-radio-desc {
106
138
  color: @NL30;
107
- font-weight: 500;
139
+ font-weight: 600;
108
140
  font-size: @font-size-middle;
109
141
  font-style: normal;
110
142
  }
@@ -130,7 +162,7 @@
130
162
  width: 0;
131
163
  height: 100%;
132
164
  background: @BG100;
133
- border: 1px solid @NL90;
165
+ border: 1px solid @BG60;
134
166
  border-radius: @border-radius-middle;
135
167
  transition: width, left, height 0.3s, 0.3s, 0.3s ease;
136
168
  }
@@ -156,21 +188,27 @@
156
188
  color: @NL80;
157
189
  }
158
190
  }
191
+
159
192
  // border的样式
160
- .ald-radio-button-wrapper-border {
193
+ .ald-radio-button-wrapper-border,
194
+ .ald-radio-button-wrapper-border-primary {
161
195
  padding: 0 @radio-button-padding - 1;
162
196
  }
163
197
 
164
198
  .ald-radio-button-wrapper-border,
165
- .ald-radio-icon-button-wrapper-border {
199
+ .ald-radio-button-wrapper-border-primary,
200
+ .ald-radio-icon-button-wrapper-border,
201
+ .ald-radio-icon-button-wrapper-border-primary {
166
202
  position: relative;
167
203
  display: flex;
168
204
  align-items: center;
169
205
  justify-content: center;
170
206
  height: 100%;
171
207
  background: @BG100;
172
- border: 1px solid @NL90;
173
- border-right: 1px solid transparent;
208
+ border-top: 1px solid @BG60;
209
+ border-left: 1px solid @BG60;
210
+ border-bottom: 1px solid @BG60;
211
+ overflow: hidden;
174
212
  cursor: pointer;
175
213
 
176
214
  &:first-child {
@@ -178,7 +216,7 @@
178
216
  }
179
217
 
180
218
  &:last-child {
181
- border-right: 1px solid @NL90;
219
+ border-right: 1px solid @BG60;
182
220
  border-radius: 0 6px 6px 0;
183
221
  }
184
222
 
@@ -199,8 +237,10 @@
199
237
 
200
238
  // button选中状态下的样式
201
239
  .ald-radio-wrapper-checked.ald-radio-button-wrapper-border,
202
- .ald-radio-wrapper-checked.ald-radio-icon-button-wrapper-border {
203
- background: @B98;
240
+ .ald-radio-wrapper-checked.ald-radio-button-wrapper-border-primary,
241
+ .ald-radio-wrapper-checked.ald-radio-icon-button-wrapper-border,
242
+ .ald-radio-wrapper-checked.ald-radio-icon-button-wrapper-border-primary {
243
+ background: @BG80;
204
244
  transition: background 0.5s ease;
205
245
 
206
246
  .ald-radio-desc {
@@ -210,6 +250,18 @@
210
250
  }
211
251
  }
212
252
 
253
+ .ald-radio-wrapper-checked.ald-radio-button-wrapper-border-primary,
254
+ .ald-radio-wrapper-checked.ald-radio-icon-button-wrapper-border-primary {
255
+ background: @B40;
256
+ transition: background 0.5s ease;
257
+
258
+ .ald-radio-desc {
259
+ position: relative;
260
+ color: @ND0;
261
+ transition: text-shadow 0.5s ease;
262
+ }
263
+ }
264
+
213
265
  // filled样式的button
214
266
  .ald-radio-button-wrapper-filled {
215
267
  padding: 0 @radio-button-padding;
@@ -246,6 +298,10 @@
246
298
  .ald-radio-checked > .ald-radio-inner::after {
247
299
  width: 0;
248
300
  }
301
+
302
+ .ald-radio-desc {
303
+ font-weight: 400;
304
+ }
249
305
  }
250
306
 
251
307
  .ald-radio-wrapper-checked.ald-radio-button-wrapper-filled,
@@ -254,6 +310,7 @@
254
310
 
255
311
  .ald-radio-desc {
256
312
  position: relative;
313
+ font-weight: 400;
257
314
  z-index: 2;
258
315
  color: @NL0;
259
316
  }
@@ -262,17 +319,32 @@
262
319
  &.ald-radio-group-middle {
263
320
  height: @radio-group-height-middle;
264
321
 
322
+ .ald-radio-label {
323
+ .ald-radio-desc {
324
+ font-size: @font-size-middle;
325
+ }
326
+ }
327
+
265
328
  .ald-radio-icon-button-wrapper-filled {
266
329
  padding: 0 @radio-icon-button-padding-middle;
267
330
  }
268
331
 
269
- .ald-radio-icon-button-wrapper-border {
270
- padding: 0 @radio-icon-button-padding-middle - 1;
332
+ .ald-radio-button-wrapper-border,
333
+ .ald-radio-button-wrapper-border-primary {
334
+ padding: 0 @radio-button-padding-middle - 1;
271
335
  }
272
336
 
273
- .ald-radio-label {
274
- .ald-radio-desc {
275
- font-size: @font-size-middle;
337
+ .ald-radio-icon-button-wrapper-border,
338
+ .ald-radio-icon-button-wrapper-border-primary {
339
+ padding: 0 @radio-icon-button-padding-middle - 1;
340
+
341
+ &.ald-radio-label .ald-radio-desc {
342
+ font-size: 14px;
343
+ }
344
+
345
+ &:not(:last-child) {
346
+ padding: 0 @radio-icon-button-padding-middle 0
347
+ @radio-icon-button-padding-middle - 1;
276
348
  }
277
349
  }
278
350
  }
@@ -280,22 +352,39 @@
280
352
  &.ald-radio-group-small {
281
353
  height: @radio-group-height-small;
282
354
 
355
+ .ald-radio-label {
356
+ .ald-radio-desc {
357
+ font-size: @font-size-small;
358
+ }
359
+ }
360
+
283
361
  .ald-radio-icon-button-wrapper-filled {
284
362
  padding: 0 @radio-icon-button-padding-small;
285
363
  }
286
364
 
287
- .ald-radio-icon-button-wrapper-border {
288
- padding: 0 @radio-icon-button-padding-small - 1;
365
+ .ald-radio-button-wrapper-border,
366
+ .ald-radio-button-wrapper-border-primary {
367
+ padding: 0 @radio-button-padding-small - 1;
289
368
  }
290
369
 
291
- .ald-radio-label {
292
- .ald-radio-desc {
293
- font-size: @font-size-small;
370
+ .ald-radio-icon-button-wrapper-border,
371
+ .ald-radio-icon-button-wrapper-border-primary {
372
+ padding: 0 @radio-icon-button-padding-small - 1;
373
+
374
+ &.ald-radio-label .ald-radio-desc {
375
+ font-size: 14px;
376
+ }
377
+
378
+ &:not(:last-child) {
379
+ padding: 0 @radio-icon-button-padding-small 0
380
+ @radio-icon-button-padding-small - 1;
294
381
  }
295
382
  }
296
383
 
297
384
  .ald-radio-button-wrapper-border,
298
385
  .ald-radio-icon-button-wrapper-border,
386
+ .ald-radio-button-wrapper-border-primary,
387
+ .ald-radio-icon-button-wrapper-border-primary,
299
388
  .ald-radio-button-wrapper-filled,
300
389
  .ald-radio-icon-button-wrapper-filled {
301
390
  &:first-of-type {
@@ -315,22 +404,39 @@
315
404
  &.ald-radio-group.ald-radio-group-large {
316
405
  height: @radio-group-height-large;
317
406
 
407
+ .ald-radio-label {
408
+ .ald-radio-desc {
409
+ font-size: @font-size-large;
410
+ }
411
+ }
412
+
318
413
  .ald-radio-icon-button-wrapper-filled {
319
414
  padding: 0 @radio-icon-button-padding-large;
320
415
  }
321
416
 
322
- .ald-radio-icon-button-wrapper-border {
323
- padding: 0 @radio-icon-button-padding-large - 1;
417
+ .ald-radio-button-wrapper-border,
418
+ .ald-radio-button-wrapper-border-primary {
419
+ padding: 0 @radio-button-padding-large - 1;
324
420
  }
325
421
 
326
- .ald-radio-label {
327
- .ald-radio-desc {
328
- font-size: @font-size-large;
422
+ .ald-radio-icon-button-wrapper-border,
423
+ .ald-radio-icon-button-wrapper-border-primary {
424
+ padding: 0 @radio-icon-button-padding-large - 1;
425
+
426
+ &.ald-radio-label .ald-radio-desc {
427
+ font-size: 20px;
428
+ }
429
+
430
+ &:not(:last-child) {
431
+ padding: 0 @radio-icon-button-padding-large 0
432
+ @radio-icon-button-padding-large - 1;
329
433
  }
330
434
  }
331
435
 
332
436
  .ald-radio-button-wrapper-border,
333
437
  .ald-radio-icon-button-wrapper-border,
438
+ .ald-radio-button-wrapper-border-primary,
439
+ .ald-radio-icon-button-wrapper-border-primary,
334
440
  .ald-radio-button-wrapper-filled,
335
441
  .ald-radio-icon-button-wrapper-filled {
336
442
  &:first-of-type {
@@ -5,6 +5,7 @@ interface IMultipleOptionProps {
5
5
  disabled?: boolean;
6
6
  option: DefaultOptionType;
7
7
  onChange?: (selected: boolean) => void;
8
+ className?: string;
8
9
  }
9
10
  export default function MultipleList(params: IMultipleOptionProps): JSX.Element;
10
11
  export {};
@@ -1,18 +1,22 @@
1
1
  import { Checkbox } from 'antd';
2
+ import classnames from 'classnames';
2
3
  import React from 'react';
3
4
  export default function MultipleList(params) {
4
5
  var disabled = params.disabled,
5
6
  option = params.option,
6
7
  selected = params.selected,
7
- onChange = params.onChange;
8
+ onChange = params.onChange,
9
+ className = params.className;
8
10
 
9
11
  var onClick = function onClick() {
10
- //TODO: 这里有bug 等待antd升级 https://github.com/ant-design/ant-design/pull/39078
12
+ if (disabled) return;
11
13
  onChange === null || onChange === void 0 ? void 0 : onChange(!selected);
12
14
  };
13
15
 
14
16
  return /*#__PURE__*/React.createElement("div", {
15
- className: "ald-multiple-option",
17
+ className: classnames('ald-multiple-option', className, {
18
+ 'ald-multiple-option-disabled': disabled
19
+ }),
16
20
  onClick: onClick
17
21
  }, /*#__PURE__*/React.createElement(Checkbox, {
18
22
  checked: selected,
@@ -5,6 +5,7 @@ interface ISelectProps {
5
5
  option: DefaultOptionType;
6
6
  onChange: (selected: boolean) => void;
7
7
  disabled?: boolean;
8
+ className?: string;
8
9
  }
9
10
  export default function SingleOption(params: ISelectProps): JSX.Element;
10
11
  export {};
@@ -1,4 +1,5 @@
1
1
  import { CheckLine } from '@aloudata/icons-react';
2
+ import classnames from 'classnames';
2
3
  import React from 'react';
3
4
  import colors from "../../style/themes/default/themeColor.module.less";
4
5
  export default function SingleOption(params) {
@@ -6,7 +7,8 @@ export default function SingleOption(params) {
6
7
  selected = params.selected,
7
8
  option = params.option,
8
9
  _params$onChange = params.onChange,
9
- onChange = _params$onChange === void 0 ? function () {} : _params$onChange;
10
+ onChange = _params$onChange === void 0 ? function () {} : _params$onChange,
11
+ className = params.className;
10
12
 
11
13
  var onClick = function onClick() {
12
14
  if (disabled) return;
@@ -14,7 +16,9 @@ export default function SingleOption(params) {
14
16
  };
15
17
 
16
18
  return /*#__PURE__*/React.createElement("div", {
17
- className: "ald-single-option",
19
+ className: classnames('ald-single-option', className, {
20
+ 'ald-single-option-disabled': disabled
21
+ }),
18
22
  onClick: onClick
19
23
  }, /*#__PURE__*/React.createElement("div", {
20
24
  className: "ald-icons-check-line"
@@ -1,4 +1,4 @@
1
- var _excluded = ["mode", "options", "dropdownRender", "onDropdownVisibleChange", "defaultValue", "onChange", "open", "defaultOpen", "prefix", "className", "popupClassName", "notFoundContent", "value", "style"];
1
+ var _excluded = ["mode", "options", "dropdownRender", "onDropdownVisibleChange", "defaultValue", "onChange", "open", "defaultOpen", "prefix", "className", "popupClassName", "listHeight", "listItemHeight", "notFoundContent", "value", "style"];
2
2
 
3
3
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
4
4
 
@@ -28,12 +28,20 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
28
28
 
29
29
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
30
30
 
31
+ import { FoldDownFill } from '@aloudata/icons-react';
31
32
  import { Select as AntdSelect } from 'antd';
32
33
  import classNames from 'classnames';
33
- import React, { forwardRef, useEffect, useLayoutEffect, useMemo } from 'react';
34
+ import List from 'rc-virtual-list';
35
+ import React, { forwardRef, useEffect, useLayoutEffect, useMemo, useRef } from 'react';
34
36
  import Empty from "../Empty";
35
- import MultipleList from "./components/MultipleOption";
37
+ import MultipleOption from "./components/MultipleOption";
36
38
  import SingleOption from "./components/SingleOption";
39
+ import theme from "../style/themes/default/themeColor.module.less";
40
+ var suffixIconSizeMap = {
41
+ large: 20,
42
+ middle: 16,
43
+ small: 14
44
+ };
37
45
 
38
46
  var getSelectedOptionsFromValue = function getSelectedOptionsFromValue(isMultiple, options, value, defaultValue) {
39
47
  if (typeof value !== 'undefined') {
@@ -90,8 +98,15 @@ var Select = /*#__PURE__*/forwardRef(function (props, ref) {
90
98
  prefix = props.prefix,
91
99
  className = props.className,
92
100
  popupClassName = props.popupClassName,
101
+ listHeight = props.listHeight,
102
+ _props$listItemHeight = props.listItemHeight,
103
+ listItemHeight = _props$listItemHeight === void 0 ? 36 : _props$listItemHeight,
93
104
  _props$notFoundConten = props.notFoundContent,
94
- notFoundContent = _props$notFoundConten === void 0 ? /*#__PURE__*/React.createElement(Empty, null) : _props$notFoundConten,
105
+ notFoundContent = _props$notFoundConten === void 0 ? /*#__PURE__*/React.createElement(Empty, {
106
+ image: Empty.PRESENTED_IMAGE_SEARCH_SMALL,
107
+ size: "small",
108
+ title: "No data"
109
+ }) : _props$notFoundConten,
95
110
  value = props.value,
96
111
  _props$style = props.style,
97
112
  style = _props$style === void 0 ? {} : _props$style,
@@ -118,6 +133,8 @@ var Select = /*#__PURE__*/forwardRef(function (props, ref) {
118
133
  prefixWidth = _React$useState6[0],
119
134
  setPrefixWidth = _React$useState6[1];
120
135
 
136
+ var updatedRef = useRef(false);
137
+
121
138
  var onMultipleOptionChange = function onMultipleOptionChange(option, selected) {
122
139
  var newOptions = [];
123
140
 
@@ -144,16 +161,33 @@ var Select = /*#__PURE__*/forwardRef(function (props, ref) {
144
161
  }), newOptions);
145
162
  };
146
163
 
164
+ var getListHeight = function getListHeight() {
165
+ if (typeof listHeight === 'number' && options !== null && options !== void 0 && options.length) {
166
+ if (listHeight <= options.length * listItemHeight) {
167
+ return listHeight;
168
+ }
169
+ }
170
+
171
+ return 0;
172
+ };
173
+
147
174
  var multipleRender = function multipleRender() {
148
175
  return /*#__PURE__*/React.createElement("div", {
149
176
  className: "ald-multiple-option-list"
150
- }, options === null || options === void 0 ? void 0 : options.map(function (option) {
177
+ }, /*#__PURE__*/React.createElement(List, {
178
+ data: options || [],
179
+ "data-id": "list",
180
+ height: getListHeight(),
181
+ itemHeight: listItemHeight,
182
+ itemKey: "value"
183
+ }, function (option) {
151
184
  var isSelected = selectedOptions.some(function (selectedOption) {
152
185
  return selectedOption.value === option.value;
153
186
  });
154
- return /*#__PURE__*/React.createElement(MultipleList, {
187
+ return /*#__PURE__*/React.createElement(MultipleOption, {
155
188
  key: option.value,
156
189
  selected: isSelected,
190
+ className: option.className,
157
191
  option: option,
158
192
  disabled: option.disabled,
159
193
  onChange: function onChange(selected) {
@@ -178,13 +212,20 @@ var Select = /*#__PURE__*/forwardRef(function (props, ref) {
178
212
  var singleRender = function singleRender() {
179
213
  return /*#__PURE__*/React.createElement("div", {
180
214
  className: "ald-single-option-list"
181
- }, options === null || options === void 0 ? void 0 : options.map(function (option) {
215
+ }, /*#__PURE__*/React.createElement(List, {
216
+ data: options || [],
217
+ "data-id": "list",
218
+ height: getListHeight(),
219
+ itemHeight: listItemHeight,
220
+ itemKey: "value"
221
+ }, function (option) {
182
222
  var isSelected = selectedOptions.some(function (selectedOption) {
183
223
  return selectedOption.value === option.value;
184
224
  });
185
225
  return /*#__PURE__*/React.createElement(SingleOption, {
186
226
  key: option.value,
187
227
  selected: isSelected,
228
+ className: option.className,
188
229
  option: option,
189
230
  disabled: option.disabled,
190
231
  onChange: function onChange() {
@@ -196,7 +237,18 @@ var Select = /*#__PURE__*/forwardRef(function (props, ref) {
196
237
 
197
238
  var getDropdownRender = function getDropdownRender() {
198
239
  if (dropdownRender) {
199
- return dropdownRender;
240
+ if (isMultiple) {
241
+ var menu = multipleRender();
242
+ return function () {
243
+ return dropdownRender(menu);
244
+ };
245
+ } else {
246
+ var _menu = singleRender();
247
+
248
+ return function () {
249
+ return dropdownRender(_menu);
250
+ };
251
+ }
200
252
  } else if (Array.isArray(options) && options.length > 0) {
201
253
  if (!isMultiple) {
202
254
  return singleRender;
@@ -245,7 +297,11 @@ var Select = /*#__PURE__*/forwardRef(function (props, ref) {
245
297
  };
246
298
 
247
299
  useEffect(function () {
248
- setSelectedOptions(getSelectedOptionsFromValue(isMultiple, options, value));
300
+ if (updatedRef.current) {
301
+ setSelectedOptions(getSelectedOptionsFromValue(isMultiple, options, value));
302
+ } else {
303
+ updatedRef.current = true;
304
+ }
249
305
  }, [value]);
250
306
  return /*#__PURE__*/React.createElement("div", {
251
307
  className: classNames('ald-select', className, {
@@ -274,6 +330,7 @@ var Select = /*#__PURE__*/forwardRef(function (props, ref) {
274
330
  maxTagCount: "responsive",
275
331
  ref: ref,
276
332
  tagRender: tagRender,
333
+ onChange: onChange,
277
334
  popupClassName: classNames('ald-select-popup', popupClassName),
278
335
  maxTagPlaceholder: maxTagPlaceholder,
279
336
  className: classNames({
@@ -285,6 +342,10 @@ var Select = /*#__PURE__*/forwardRef(function (props, ref) {
285
342
  style: {
286
343
  width: '100%'
287
344
  },
345
+ suffixIcon: /*#__PURE__*/React.createElement(FoldDownFill, {
346
+ size: suffixIconSizeMap[props.size || 'middle'],
347
+ fill: theme.NL50
348
+ }),
288
349
  onDropdownVisibleChange: function onDropdownVisibleChange(open) {
289
350
  setIsOpen(open);
290
351
 
@@ -11,7 +11,7 @@
11
11
  padding-right: 0;
12
12
 
13
13
  &.ald-select-popup {
14
- max-height: 264px;
14
+ // max-height: 264px;
15
15
  overflow-y: auto;
16
16
  overflow-y: overlay;
17
17
  }
@@ -23,9 +23,14 @@
23
23
  box-sizing: border-box;
24
24
  border: 1px solid @BG60;
25
25
  border-radius: 4px;
26
+ background-color: @BG100;
26
27
  // padding: 0 4px;
27
28
  cursor: pointer;
28
- width:100%;
29
+ width: 100%;
30
+
31
+ .ant-select-selector {
32
+ color: @NL0;
33
+ }
29
34
 
30
35
  .ald-select-prefix {
31
36
  color: @NL40;
@@ -50,7 +55,6 @@
50
55
  border: none;
51
56
  }
52
57
  }
53
-
54
58
  }
55
59
 
56
60
  .ant-select-selection-overflow {
@@ -5,20 +5,31 @@
5
5
  justify-content: space-between;
6
6
  flex-direction: column;
7
7
  color: @NL0;
8
- font-size: 14px;
8
+ font-size: 13px;
9
9
  line-height: 20px;
10
10
 
11
11
  }
12
12
 
13
13
  .ald-multiple-option{
14
14
  padding: 8px 14px;
15
- height: 20px;
15
+ // height: 20px;
16
16
  margin-left: 0;
17
17
  display: flex;
18
+ height: 36px;
19
+ box-sizing: border-box;
18
20
 
19
21
  &:hover{
20
22
  background-color: @BG90;
21
23
  }
24
+
25
+ &.ald-multiple-option-disabled{
26
+ opacity: 0.5;
27
+
28
+ &:hover{
29
+ background: none;
30
+ cursor: default;
31
+ }
32
+ }
22
33
  }
23
34
 
24
35
  .ald-multiple-option-label{