@douyinfe/semi-ui 2.1.4-alpha.0 → 2.2.0-beta.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 (162) hide show
  1. package/_base/_story/a11y.jsx +1302 -0
  2. package/_base/_story/a11y.scss +49 -0
  3. package/_base/_story/index.scss +1 -0
  4. package/_base/_story/index.stories.js +3 -1
  5. package/_utils/index.ts +2 -1
  6. package/button/Button.tsx +1 -0
  7. package/button/__test__/button.test.js +15 -0
  8. package/button/_story/button.stories.js +13 -0
  9. package/button/buttonGroup.tsx +6 -4
  10. package/cascader/__test__/cascader.test.js +221 -0
  11. package/cascader/_story/cascader.stories.js +138 -0
  12. package/cascader/index.tsx +37 -21
  13. package/cascader/item.tsx +7 -2
  14. package/checkbox/__test__/checkboxGroup.test.js +37 -5
  15. package/checkbox/_story/checkbox.stories.js +78 -6
  16. package/checkbox/checkbox.tsx +3 -0
  17. package/checkbox/checkboxGroup.tsx +3 -2
  18. package/datePicker/__test__/datePicker.test.js +67 -2
  19. package/datePicker/_story/datePicker.stories.js +3 -1
  20. package/datePicker/_story/v2/YearButton.jsx +17 -0
  21. package/datePicker/_story/v2/index.js +1 -0
  22. package/datePicker/monthsGrid.tsx +12 -1
  23. package/datePicker/navigation.tsx +55 -29
  24. package/descriptions/__test__/descriptions.test.js +27 -1
  25. package/descriptions/_story/descriptions.stories.js +52 -2
  26. package/descriptions/item.tsx +1 -1
  27. package/dist/css/semi.css +105 -32
  28. package/dist/css/semi.min.css +1 -1
  29. package/dist/umd/semi-ui.js +801 -227
  30. package/dist/umd/semi-ui.js.map +1 -1
  31. package/dist/umd/semi-ui.min.js +1 -1
  32. package/dist/umd/semi-ui.min.js.map +1 -1
  33. package/form/_story/form.stories.js +0 -67
  34. package/form/_story/form.stories.tsx +2 -2
  35. package/form/hoc/withField.tsx +2 -2
  36. package/lib/cjs/_base/base.css +2 -2
  37. package/lib/cjs/_utils/index.d.ts +1 -0
  38. package/lib/cjs/_utils/index.js +3 -2
  39. package/lib/cjs/button/Button.d.ts +1 -0
  40. package/lib/cjs/button/buttonGroup.js +11 -3
  41. package/lib/cjs/cascader/index.d.ts +7 -0
  42. package/lib/cjs/cascader/index.js +35 -22
  43. package/lib/cjs/cascader/item.d.ts +2 -0
  44. package/lib/cjs/cascader/item.js +9 -2
  45. package/lib/cjs/checkbox/checkbox.js +4 -1
  46. package/lib/cjs/checkbox/checkboxGroup.d.ts +1 -0
  47. package/lib/cjs/checkbox/checkboxGroup.js +3 -1
  48. package/lib/cjs/datePicker/dateInput.d.ts +1 -1
  49. package/lib/cjs/datePicker/datePicker.d.ts +1 -1
  50. package/lib/cjs/datePicker/monthsGrid.d.ts +2 -1
  51. package/lib/cjs/datePicker/monthsGrid.js +6 -0
  52. package/lib/cjs/datePicker/navigation.js +47 -7
  53. package/lib/cjs/descriptions/item.js +1 -1
  54. package/lib/cjs/form/baseForm.d.ts +6 -0
  55. package/lib/cjs/form/field.d.ts +6 -0
  56. package/lib/cjs/form/hoc/withField.js +3 -1
  57. package/lib/cjs/locale/source/es.d.ts +7 -0
  58. package/lib/cjs/locale/source/es.js +168 -0
  59. package/lib/cjs/modal/Modal.d.ts +8 -8
  60. package/lib/cjs/modal/Modal.js +4 -4
  61. package/lib/cjs/modal/confirm.d.ts +10 -10
  62. package/lib/cjs/navigation/index.d.ts +2 -2
  63. package/lib/cjs/pagination/index.js +9 -4
  64. package/lib/cjs/radio/radio.d.ts +1 -1
  65. package/lib/cjs/radio/radio.js +1 -0
  66. package/lib/cjs/radio/radioGroup.d.ts +1 -1
  67. package/lib/cjs/rating/item.js +3 -2
  68. package/lib/cjs/select/index.d.ts +10 -0
  69. package/lib/cjs/select/index.js +15 -9
  70. package/lib/cjs/table/Table.d.ts +1 -1
  71. package/lib/cjs/timePicker/TimePicker.d.ts +2 -2
  72. package/lib/cjs/timePicker/TimeShape.d.ts +1 -1
  73. package/lib/cjs/timePicker/index.d.ts +2 -2
  74. package/lib/cjs/timeline/item.d.ts +5 -2
  75. package/lib/cjs/timeline/item.js +13 -7
  76. package/lib/cjs/tree/treeNode.js +0 -2
  77. package/lib/cjs/treeSelect/index.js +1 -0
  78. package/lib/cjs/typography/title.d.ts +1 -1
  79. package/lib/cjs/upload/fileCard.d.ts +2 -0
  80. package/lib/cjs/upload/fileCard.js +70 -45
  81. package/lib/cjs/upload/index.d.ts +34 -4
  82. package/lib/cjs/upload/index.js +141 -25
  83. package/lib/cjs/upload/interface.d.ts +3 -0
  84. package/lib/es/_base/base.css +2 -2
  85. package/lib/es/_utils/index.d.ts +1 -0
  86. package/lib/es/_utils/index.js +3 -2
  87. package/lib/es/button/Button.d.ts +1 -0
  88. package/lib/es/button/buttonGroup.js +3 -3
  89. package/lib/es/cascader/index.d.ts +7 -0
  90. package/lib/es/cascader/index.js +34 -25
  91. package/lib/es/cascader/item.d.ts +2 -0
  92. package/lib/es/cascader/item.js +9 -2
  93. package/lib/es/checkbox/checkbox.js +4 -1
  94. package/lib/es/checkbox/checkboxGroup.d.ts +1 -0
  95. package/lib/es/checkbox/checkboxGroup.js +3 -1
  96. package/lib/es/datePicker/dateInput.d.ts +1 -1
  97. package/lib/es/datePicker/datePicker.d.ts +1 -1
  98. package/lib/es/datePicker/monthsGrid.d.ts +2 -1
  99. package/lib/es/datePicker/monthsGrid.js +6 -0
  100. package/lib/es/datePicker/navigation.js +48 -8
  101. package/lib/es/descriptions/item.js +1 -1
  102. package/lib/es/form/baseForm.d.ts +6 -0
  103. package/lib/es/form/field.d.ts +6 -0
  104. package/lib/es/form/hoc/withField.js +3 -1
  105. package/lib/es/locale/source/es.d.ts +7 -0
  106. package/lib/es/locale/source/es.js +157 -0
  107. package/lib/es/modal/Modal.d.ts +8 -8
  108. package/lib/es/modal/Modal.js +4 -4
  109. package/lib/es/modal/confirm.d.ts +10 -10
  110. package/lib/es/navigation/index.d.ts +2 -2
  111. package/lib/es/pagination/index.js +8 -4
  112. package/lib/es/radio/radio.d.ts +1 -1
  113. package/lib/es/radio/radio.js +1 -0
  114. package/lib/es/radio/radioGroup.d.ts +1 -1
  115. package/lib/es/rating/item.js +3 -2
  116. package/lib/es/select/index.d.ts +10 -0
  117. package/lib/es/select/index.js +19 -9
  118. package/lib/es/table/Table.d.ts +1 -1
  119. package/lib/es/timePicker/TimePicker.d.ts +2 -2
  120. package/lib/es/timePicker/TimeShape.d.ts +1 -1
  121. package/lib/es/timePicker/index.d.ts +2 -2
  122. package/lib/es/timeline/item.d.ts +5 -2
  123. package/lib/es/timeline/item.js +12 -7
  124. package/lib/es/tree/treeNode.js +0 -2
  125. package/lib/es/treeSelect/index.js +1 -0
  126. package/lib/es/typography/title.d.ts +1 -1
  127. package/lib/es/upload/fileCard.d.ts +2 -0
  128. package/lib/es/upload/fileCard.js +69 -44
  129. package/lib/es/upload/index.d.ts +34 -4
  130. package/lib/es/upload/index.js +141 -24
  131. package/lib/es/upload/interface.d.ts +3 -0
  132. package/locale/source/es.ts +160 -0
  133. package/modal/Modal.tsx +6 -6
  134. package/navigation/__test__/navigation.test.js +4 -4
  135. package/navigation/_story/AutoOpen/index.js +1 -1
  136. package/navigation/_story/WithChildren/index.js +1 -1
  137. package/navigation/_story/navigation.stories.js +1 -1
  138. package/navigation/_story/navigation.stories.tsx +4 -4
  139. package/navigation/index.tsx +2 -2
  140. package/package.json +16 -8
  141. package/pagination/_story/pagination.stories.js +11 -0
  142. package/pagination/index.tsx +9 -4
  143. package/popover/Arrow.tsx +1 -1
  144. package/radio/__test__/radioGroup.test.jsx +41 -6
  145. package/radio/_story/radio.stories.js +22 -11
  146. package/radio/radio.tsx +1 -0
  147. package/rating/item.tsx +2 -1
  148. package/select/_story/select.stories.js +39 -14
  149. package/select/index.tsx +21 -7
  150. package/table/_story/DynamicFilters/index.js +13 -16
  151. package/timeline/__test__/timeline.test.js +17 -1
  152. package/timeline/_story/timeline.stories.js +70 -6
  153. package/timeline/item.tsx +11 -6
  154. package/tooltip/_story/tooltip.stories.js +1 -1
  155. package/tree/_story/tree.stories.js +2 -2
  156. package/tree/treeNode.tsx +0 -2
  157. package/treeSelect/index.tsx +3 -2
  158. package/tsconfig.json +2 -1
  159. package/upload/__test__/upload.test.js +50 -1
  160. package/upload/fileCard.tsx +110 -95
  161. package/upload/index.tsx +155 -54
  162. package/upload/interface.ts +3 -0
@@ -432,73 +432,6 @@ FieldDisplayName.story = {
432
432
  name: 'Field displayName',
433
433
  };
434
434
 
435
- class ReUseDemo extends React.Component {
436
- constructor() {
437
- super();
438
- this.getFormApi = this.getFormApi.bind(this);
439
- this.suppressRankOptions = [
440
- { label: '不打压', value: 0 },
441
- { label: 'top10以下', value: 10 },
442
- { label: 'top30以下', value: 30 },
443
- ];
444
- this.citySuppressRankOptions = [
445
- { label: '不打压', value: 0 },
446
- { label: 'top3以下', value: 3 },
447
- { label: 'top5以下', value: 5 },
448
- { label: 'top10以下', value: 10 },
449
- ];
450
- }
451
-
452
- getFormApi(formApi) {
453
- this.formApi = formApi;
454
- }
455
-
456
- render() {
457
- return (
458
- <Form
459
- getFormApi={this.getFormApi}
460
- initValues={{ listType: 'online', attr: { suppress_rank: 0, city_suppress_rank: 5 } }}
461
- onValueChange={values => console.log(values)}
462
- style={{ width: 250 }}
463
- >
464
- {({ formState }) => (
465
- <>
466
- <Form.Select
467
- field="listType"
468
- label="榜单类型"
469
- disabled={this.ifUseOld}
470
- style={{ width: '100%' }}
471
- // onChange={val => this.onChangeListType(val)}
472
- >
473
- <Option value="online">热点榜</Option>
474
- <Option value="riseHot">上升热点榜</Option>
475
- <Option value="sameCity">同城热点榜</Option>
476
- </Form.Select>
477
- {formState.values.listType !== 'sameCity' ? (
478
- <Form.Select
479
- label="竞品打压类型"
480
- field="attr.suppress_rank"
481
- optionList={this.suppressRankOptions}
482
- />
483
- ) : (
484
- <Form.Select
485
- label="同城竞品打压"
486
- field="attr.city_suppress_rank"
487
- optionList={this.citySuppressRankOptions}
488
- />
489
- )}
490
- </>
491
- )}
492
- </Form>
493
- );
494
- }
495
- }
496
- export const SameFieldSwitchCauseReuse = () => <ReUseDemo />;
497
-
498
- SameFieldSwitchCauseReuse.story = {
499
- name: 'same field switch cause reuse',
500
- };
501
-
502
435
  export const _ChildDidMount = () => <ChildDidMount />;
503
436
 
504
437
  _ChildDidMount.story = {
@@ -112,8 +112,8 @@ const Fields: FunctionComponent<FormFCChild> = ({ formState, values, formApi })
112
112
  label="是否独占资源(Radio)"
113
113
  rules={[{ type: 'boolean' }, { required: true, message: '必须选择是否独占 ' }]}
114
114
  >
115
- <Form.Radio value={true}>是</Form.Radio>
116
- <Form.Radio value={false}>否</Form.Radio>
115
+ <Form.Radio value={1}>是</Form.Radio>
116
+ <Form.Radio value={0}>否</Form.Radio>
117
117
  </Form.RadioGroup>
118
118
  <Form.Checkbox field='abc' noLabel>
119
119
  我已阅读并清楚相关规定(Checkbox)
@@ -30,7 +30,7 @@ function withField<
30
30
  T extends Subtract<React.ComponentProps<C>, CommonexcludeType> & CommonFieldProps,
31
31
  R extends React.ComponentType<T>
32
32
  >(Component: C, opts?: WithFieldOption): R {
33
- let SemiField = (props: any, ref: React.MutableRefObject<any>) => {
33
+ let SemiField = (props: any, ref: React.MutableRefObject<any> | ((instance: any) => void)) => {
34
34
  let {
35
35
  // condition,
36
36
  field,
@@ -75,7 +75,7 @@ function withField<
75
75
  // 无需注入的直接返回,eg:Group内的checkbox、radio
76
76
  // Return without injection, eg: <Checkbox> / <Radio> inside CheckboxGroup/RadioGroup
77
77
  if (!shouldInject) {
78
- return <Component {...rest} />;
78
+ return <Component {...rest} ref={ref} />;
79
79
  }
80
80
 
81
81
  // grab formState from context
@@ -399,7 +399,7 @@ body, body[theme-mode=dark] .semi-always-light {
399
399
  --semi-color-link-visited: rgba(var(--semi-blue-5), 1);
400
400
  --semi-color-border: rgba(var(--semi-grey-9), .08);
401
401
  --semi-color-nav-bg: rgba(var(--semi-white), 1);
402
- --semi-overlay-bg: rgba(22, 22, 26, .6);
402
+ --semi-color-overlay-bg: rgba(22, 22, 26, .6);
403
403
  --semi-color-fill-0: rgba(var(--semi-grey-8), .05);
404
404
  --semi-color-fill-1: rgba(var(--semi-grey-8), .09);
405
405
  --semi-color-fill-2: rgba(var(--semi-grey-8), .13);
@@ -486,7 +486,7 @@ body[theme-mode=dark], body .semi-always-dark {
486
486
  --semi-color-link-visited: rgba(var(--semi-blue-5), 1);
487
487
  --semi-color-nav-bg: rgba(35, 36, 41, 1);
488
488
  --semi-shadow-elevated: inset 0 0 0 1px rgba(255, 255, 255, .1), 0 4px 14px rgba(0, 0, 0, .25);
489
- --semi-overlay-bg: rgba(22, 22, 26, .6);
489
+ --semi-color-overlay-bg: rgba(22, 22, 26, .6);
490
490
  --semi-color-fill-0: rgba(var(--semi-white), .05);
491
491
  --semi-color-fill-1: rgba(var(--semi-white), .09);
492
492
  --semi-color-fill-2: rgba(var(--semi-white), .13);
@@ -30,6 +30,7 @@ export declare function cloneDeep(value: any, customizer?: (value: any) => void)
30
30
  export declare const getHighLightTextHTML: ({ sourceString, searchWords, option }: GetHighLightTextHTMLProps) => (string | React.ReactElement<{
31
31
  style: Record<string, any>;
32
32
  className: string;
33
+ key: string;
33
34
  }, string | React.JSXElementConstructor<any>>)[];
34
35
  export interface RegisterMediaQueryOption {
35
36
  match?: (e: MediaQueryList | MediaQueryListEvent) => void;
@@ -126,7 +126,7 @@ const getHighLightTextHTML = _ref => {
126
126
  const markEle = option.highlightTag || 'mark';
127
127
  const highlightClassName = option.highlightClassName || '';
128
128
  const highlightStyle = option.highlightStyle || {};
129
- return (0, _map.default)(chunks).call(chunks, chunk => {
129
+ return (0, _map.default)(chunks).call(chunks, (chunk, index) => {
130
130
  const {
131
131
  end,
132
132
  start,
@@ -137,7 +137,8 @@ const getHighLightTextHTML = _ref => {
137
137
  if (highlight) {
138
138
  return /*#__PURE__*/_react.default.createElement(markEle, {
139
139
  style: highlightStyle,
140
- className: highlightClassName
140
+ className: highlightClassName,
141
+ key: text + index
141
142
  }, text);
142
143
  } else {
143
144
  return text;
@@ -7,6 +7,7 @@ export declare type Size = 'default' | 'small' | 'large';
7
7
  export declare type Theme = 'solid' | 'borderless' | 'light';
8
8
  export declare type Type = 'primary' | 'secondary' | 'tertiary' | 'warning' | 'danger';
9
9
  export interface ButtonProps {
10
+ id?: string;
10
11
  block?: boolean;
11
12
  circle?: boolean;
12
13
  disabled?: boolean;
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
 
3
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
4
+
3
5
  var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
6
 
7
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
8
+
5
9
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
6
10
 
7
11
  _Object$defineProperty(exports, "__esModule", {
@@ -20,7 +24,7 @@ var _isArray = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-st
20
24
 
21
25
  var _assign = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/assign"));
22
26
 
23
- var _react = _interopRequireDefault(require("react"));
27
+ var _react = _interopRequireWildcard(require("react"));
24
28
 
25
29
  var _baseComponent = _interopRequireDefault(require("../_base/baseComponent"));
26
30
 
@@ -30,6 +34,10 @@ var _constants = require("@douyinfe/semi-foundation/lib/cjs/button/constants");
30
34
 
31
35
  require("@douyinfe/semi-foundation/lib/cjs/button/button.css");
32
36
 
37
+ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
38
+
39
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
40
+
33
41
  var __rest = void 0 && (void 0).__rest || function (s, e) {
34
42
  var t = {};
35
43
 
@@ -60,13 +68,13 @@ class ButtonGroup extends _baseComponent.default {
60
68
  if (children) {
61
69
  var _context;
62
70
 
63
- inner = (0, _map.default)(_context = (0, _isArray.default)(children) ? children : [children]).call(_context, (itm, index) => /*#__PURE__*/_react.default.cloneElement(itm, (0, _assign.default)((0, _assign.default)((0, _assign.default)({
71
+ inner = (0, _map.default)(_context = (0, _isArray.default)(children) ? children : [children]).call(_context, (itm, index) => /*#__PURE__*/(0, _react.isValidElement)(itm) ? /*#__PURE__*/(0, _react.cloneElement)(itm, (0, _assign.default)((0, _assign.default)((0, _assign.default)({
64
72
  disabled,
65
73
  size,
66
74
  type
67
75
  }, itm.props), rest), {
68
76
  key: index
69
- })));
77
+ })) : itm);
70
78
  }
71
79
 
72
80
  return /*#__PURE__*/_react.default.createElement("div", {
@@ -105,14 +105,18 @@ declare class Cascader extends BaseComponent<CascaderProps, CascaderState> {
105
105
  showRestTagsPopover: PropTypes.Requireable<boolean>;
106
106
  restTagsPopoverProps: PropTypes.Requireable<object>;
107
107
  max: PropTypes.Requireable<number>;
108
+ separator: PropTypes.Requireable<string>;
108
109
  onExceed: PropTypes.Requireable<(...args: any[]) => any>;
109
110
  onClear: PropTypes.Requireable<(...args: any[]) => any>;
110
111
  loadData: PropTypes.Requireable<(...args: any[]) => any>;
111
112
  onLoad: PropTypes.Requireable<(...args: any[]) => any>;
112
113
  loadedKeys: PropTypes.Requireable<any[]>;
113
114
  disableStrictly: PropTypes.Requireable<boolean>;
115
+ leafOnly: PropTypes.Requireable<boolean>;
116
+ enableLeafClick: PropTypes.Requireable<boolean>;
114
117
  };
115
118
  static defaultProps: {
119
+ leafOnly: boolean;
116
120
  arrowIcon: JSX.Element;
117
121
  stopPropagation: boolean;
118
122
  motion: boolean;
@@ -129,6 +133,7 @@ declare class Cascader extends BaseComponent<CascaderProps, CascaderState> {
129
133
  filterLeafOnly: boolean;
130
134
  showRestTagsPopover: boolean;
131
135
  restTagsPopoverProps: {};
136
+ separator: string;
132
137
  size: "default";
133
138
  treeNodeFilterProp: "label";
134
139
  displayProp: "label";
@@ -138,6 +143,7 @@ declare class Cascader extends BaseComponent<CascaderProps, CascaderState> {
138
143
  onClear: (...args: any[]) => void;
139
144
  onDropdownVisibleChange: (...args: any[]) => void;
140
145
  onListScroll: (...args: any[]) => void;
146
+ enableLeafClick: boolean;
141
147
  };
142
148
  options: any;
143
149
  isEmpty: boolean;
@@ -145,6 +151,7 @@ declare class Cascader extends BaseComponent<CascaderProps, CascaderState> {
145
151
  triggerRef: React.RefObject<HTMLDivElement>;
146
152
  optionsRef: React.RefObject<any>;
147
153
  clickOutsideHandler: any;
154
+ mergeType: string;
148
155
  constructor(props: CascaderProps);
149
156
  get adapter(): CascaderAdapter;
150
157
  static getDerivedStateFromProps(props: CascaderProps, prevState: CascaderState): Partial<CascaderState>;
@@ -28,6 +28,8 @@ var _isArray = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-st
28
28
 
29
29
  var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
30
30
 
31
+ var _flatten2 = _interopRequireDefault(require("lodash/flatten"));
32
+
31
33
  var _noop2 = _interopRequireDefault(require("lodash/noop"));
32
34
 
33
35
  var _isNumber2 = _interopRequireDefault(require("lodash/isNumber"));
@@ -175,6 +177,7 @@ class Cascader extends _baseComponent.default {
175
177
  dropdownStyle,
176
178
  loadData,
177
179
  emptyContent,
180
+ separator,
178
181
  topSlot,
179
182
  bottomSlot,
180
183
  showNext,
@@ -191,6 +194,7 @@ class Cascader extends _baseComponent.default {
191
194
  }, topSlot, /*#__PURE__*/_react.default.createElement(_item.default, {
192
195
  activeKeys: activeKeys,
193
196
  selectedKeys: selectedKeys,
197
+ separator: separator,
194
198
  loadedKeys: loadedKeys,
195
199
  loadingKeys: loadingKeys,
196
200
  onItemClick: this.handleItemClick,
@@ -243,9 +247,9 @@ class Cascader extends _baseComponent.default {
243
247
  } = this.props;
244
248
  const {
245
249
  checkedKeys,
246
- mergedCheckedKeys
250
+ resolvedCheckedKeys
247
251
  } = this.state;
248
- const realKeys = autoMergeValue ? mergedCheckedKeys : checkedKeys;
252
+ const realKeys = this.mergeType === _constants.strings.NONE_MERGE_TYPE ? checkedKeys : resolvedCheckedKeys;
249
253
  const displayTag = [];
250
254
  const hiddenTag = [];
251
255
  (0, _forEach.default)(_context2 = [...realKeys]).call(_context2, (checkedKey, idx) => {
@@ -333,20 +337,23 @@ class Cascader extends _baseComponent.default {
333
337
  const {
334
338
  disabled,
335
339
  triggerRender,
336
- multiple,
337
- autoMergeValue
340
+ multiple
338
341
  } = this.props;
339
342
  const {
340
343
  selectedKeys,
341
344
  inputValue,
342
345
  inputPlaceHolder,
343
- mergedCheckedKeys,
346
+ resolvedCheckedKeys,
344
347
  checkedKeys
345
348
  } = this.state;
346
349
  let realValue;
347
350
 
348
351
  if (multiple) {
349
- realValue = autoMergeValue ? mergedCheckedKeys : checkedKeys;
352
+ if (this.mergeType === _constants.strings.NONE_MERGE_TYPE) {
353
+ realValue = checkedKeys;
354
+ } else {
355
+ realValue = resolvedCheckedKeys;
356
+ }
350
357
  } else {
351
358
  realValue = [...selectedKeys][0];
352
359
  }
@@ -526,8 +533,8 @@ class Cascader extends _baseComponent.default {
526
533
  /* Key of half checked node, when multiple */
527
534
  halfCheckedKeys: new _set.default([]),
528
535
 
529
- /* Auto merged checkedKeys, when multiple */
530
- mergedCheckedKeys: new _set.default([]),
536
+ /* Auto merged checkedKeys or leaf checkedKeys, when multiple */
537
+ resolvedCheckedKeys: new _set.default([]),
531
538
 
532
539
  /* Keys of loaded item */
533
540
  loadedKeys: new _set.default(),
@@ -540,6 +547,7 @@ class Cascader extends _baseComponent.default {
540
547
  };
541
548
  this.options = {};
542
549
  this.isEmpty = false;
550
+ this.mergeType = (0, _util.calcMergeType)(props.autoMergeValue, props.leafOnly);
543
551
  this.inputRef = /*#__PURE__*/_react.default.createRef();
544
552
  this.triggerRef = /*#__PURE__*/_react.default.createRef();
545
553
  this.optionsRef = /*#__PURE__*/_react.default.createRef();
@@ -684,7 +692,9 @@ class Cascader extends _baseComponent.default {
684
692
  multiple,
685
693
  value,
686
694
  defaultValue,
687
- onChangeWithObject
695
+ onChangeWithObject,
696
+ leafOnly,
697
+ autoMergeValue
688
698
  } = props;
689
699
  const {
690
700
  prevProps
@@ -745,22 +755,20 @@ class Cascader extends _baseComponent.default {
745
755
  realKeys = formatKeys;
746
756
  }
747
757
 
748
- let checkedKeys = new _set.default([]);
749
- let halfCheckedKeys = new _set.default([]);
750
- (0, _forEach.default)(realKeys).call(realKeys, v => {
751
- const calRes = (0, _treeUtil.calcCheckedKeys)(v, keyEntities);
752
- checkedKeys = new _set.default([...checkedKeys, ...calRes.checkedKeys]);
753
- halfCheckedKeys = new _set.default([...halfCheckedKeys, ...calRes.halfCheckedKeys]);
754
- }); // disableStrictly
758
+ const calRes = (0, _treeUtil.calcCheckedKeys)((0, _flatten2.default)(realKeys), keyEntities);
759
+ const checkedKeys = new _set.default(calRes.checkedKeys);
760
+ const halfCheckedKeys = new _set.default(calRes.halfCheckedKeys); // disableStrictly
755
761
 
756
762
  if (props.disableStrictly) {
757
763
  newState.disabledKeys = (0, _treeUtil.calcDisabledKeys)(keyEntities);
758
764
  }
759
765
 
766
+ const isLeafOnlyMerge = (0, _util.calcMergeType)(autoMergeValue, leafOnly) === _constants.strings.LEAF_ONLY_MERGE_TYPE;
767
+
760
768
  newState.prevProps = props;
761
769
  newState.checkedKeys = checkedKeys;
762
770
  newState.halfCheckedKeys = halfCheckedKeys;
763
- newState.mergedCheckedKeys = new _set.default((0, _treeUtil.normalizeKeyList)(checkedKeys, keyEntities));
771
+ newState.resolvedCheckedKeys = new _set.default((0, _treeUtil.normalizeKeyList)(checkedKeys, keyEntities, isLeafOnlyMerge));
764
772
  }
765
773
  }
766
774
 
@@ -794,7 +802,6 @@ class Cascader extends _baseComponent.default {
794
802
  const {
795
803
  size,
796
804
  disabled,
797
- autoMergeValue,
798
805
  placeholder,
799
806
  maxTagCount,
800
807
  showRestTagsPopover,
@@ -804,11 +811,11 @@ class Cascader extends _baseComponent.default {
804
811
  inputValue,
805
812
  checkedKeys,
806
813
  keyEntities,
807
- mergedCheckedKeys
814
+ resolvedCheckedKeys
808
815
  } = this.state;
809
816
  const tagInputcls = (0, _classnames.default)("".concat(prefixcls, "-tagInput-wrapper"));
810
817
  const tagValue = [];
811
- const realKeys = autoMergeValue ? mergedCheckedKeys : checkedKeys;
818
+ const realKeys = this.mergeType === _constants.strings.NONE_MERGE_TYPE ? checkedKeys : resolvedCheckedKeys;
812
819
  (0, _forEach.default)(_context3 = [...realKeys]).call(_context3, checkedKey => {
813
820
  if (!(0, _isEmpty2.default)(keyEntities[checkedKey])) {
814
821
  tagValue.push(keyEntities[checkedKey].valuePath);
@@ -956,14 +963,18 @@ Cascader.propTypes = {
956
963
  showRestTagsPopover: _propTypes.default.bool,
957
964
  restTagsPopoverProps: _propTypes.default.object,
958
965
  max: _propTypes.default.number,
966
+ separator: _propTypes.default.string,
959
967
  onExceed: _propTypes.default.func,
960
968
  onClear: _propTypes.default.func,
961
969
  loadData: _propTypes.default.func,
962
970
  onLoad: _propTypes.default.func,
963
971
  loadedKeys: _propTypes.default.array,
964
- disableStrictly: _propTypes.default.bool
972
+ disableStrictly: _propTypes.default.bool,
973
+ leafOnly: _propTypes.default.bool,
974
+ enableLeafClick: _propTypes.default.bool
965
975
  };
966
976
  Cascader.defaultProps = {
977
+ leafOnly: false,
967
978
  arrowIcon: /*#__PURE__*/_react.default.createElement(_semiIcons.IconChevronDown, null),
968
979
  stopPropagation: true,
969
980
  motion: true,
@@ -980,6 +991,7 @@ Cascader.defaultProps = {
980
991
  filterLeafOnly: true,
981
992
  showRestTagsPopover: false,
982
993
  restTagsPopoverProps: {},
994
+ separator: ' / ',
983
995
  size: 'default',
984
996
  treeNodeFilterProp: 'label',
985
997
  displayProp: 'label',
@@ -988,7 +1000,8 @@ Cascader.defaultProps = {
988
1000
  onExceed: _noop2.default,
989
1001
  onClear: _noop2.default,
990
1002
  onDropdownVisibleChange: _noop2.default,
991
- onListScroll: _noop2.default
1003
+ onListScroll: _noop2.default,
1004
+ enableLeafClick: false
992
1005
  };
993
1006
  var _default = Cascader;
994
1007
  exports.default = _default;
@@ -33,6 +33,7 @@ export interface CascaderItemProps {
33
33
  emptyContent: React.ReactNode;
34
34
  loadData: (selectOptions: CascaderData[]) => Promise<void>;
35
35
  data: Array<Data | Entity>;
36
+ separator: string;
36
37
  multiple: boolean;
37
38
  checkedKeys: Set<string>;
38
39
  halfCheckedKeys: Set<string>;
@@ -50,6 +51,7 @@ export default class Item extends PureComponent<CascaderItemProps> {
50
51
  checkedKeys: PropTypes.Requireable<object>;
51
52
  halfCheckedKeys: PropTypes.Requireable<object>;
52
53
  onItemCheckboxClick: PropTypes.Requireable<(...args: any[]) => any>;
54
+ separator: PropTypes.Requireable<string>;
53
55
  keyword: PropTypes.Requireable<string>;
54
56
  };
55
57
  static defaultProps: {
@@ -83,6 +83,11 @@ class Item extends _react.PureComponent {
83
83
  } = this.props; // Prevent Checkbox's click event bubbling to trigger the li click event
84
84
 
85
85
  e.stopPropagation();
86
+
87
+ if (e.nativeEvent && typeof e.nativeEvent.stopImmediatePropagation === 'function') {
88
+ e.nativeEvent.stopImmediatePropagation();
89
+ }
90
+
86
91
  onItemCheckboxClick(item);
87
92
  };
88
93
 
@@ -146,7 +151,8 @@ class Item extends _react.PureComponent {
146
151
  this.highlight = searchText => {
147
152
  const content = [];
148
153
  const {
149
- keyword
154
+ keyword,
155
+ separator
150
156
  } = this.props;
151
157
  (0, _forEach.default)(searchText).call(searchText, (item, idx) => {
152
158
  if (typeof item === 'string' && (0, _includes2.default)(item, keyword)) {
@@ -169,7 +175,7 @@ class Item extends _react.PureComponent {
169
175
  }
170
176
 
171
177
  if (idx !== searchText.length - 1) {
172
- content.push(' / ');
178
+ content.push(separator);
173
179
  }
174
180
  });
175
181
  return content;
@@ -344,6 +350,7 @@ Item.propTypes = {
344
350
  checkedKeys: _propTypes.default.object,
345
351
  halfCheckedKeys: _propTypes.default.object,
346
352
  onItemCheckboxClick: _propTypes.default.func,
353
+ separator: _propTypes.default.string,
347
354
  keyword: _propTypes.default.string
348
355
  };
349
356
  Item.defaultProps = {
@@ -108,7 +108,8 @@ class Checkbox extends _baseComponent.default {
108
108
  onMouseEnter,
109
109
  onMouseLeave,
110
110
  extra,
111
- value
111
+ value,
112
+ id
112
113
  } = this.props;
113
114
  const {
114
115
  checked
@@ -148,6 +149,7 @@ class Checkbox extends _baseComponent.default {
148
149
  ["".concat(prefix, "-cardType_disabled")]: props.disabled && props.isCardType,
149
150
  ["".concat(prefix, "-cardType_unDisabled")]: !(props.disabled && props.isCardType),
150
151
  ["".concat(prefix, "-cardType_checked")]: props.isCardType && props.checked && !props.disabled,
152
+ ["".concat(prefix, "-cardType_checked_disabled")]: props.isCardType && props.checked && props.disabled,
151
153
  [className]: Boolean(className)
152
154
  });
153
155
  const extraCls = (0, _classnames.default)("".concat(prefix, "-extra"), {
@@ -164,6 +166,7 @@ class Checkbox extends _baseComponent.default {
164
166
  return /*#__PURE__*/_react.default.createElement("span", {
165
167
  style: style,
166
168
  className: wrapper,
169
+ id: id,
167
170
  onMouseEnter: onMouseEnter,
168
171
  onMouseLeave: onMouseLeave,
169
172
  onClick: this.handleChange
@@ -18,6 +18,7 @@ export declare type CheckboxGroupProps = {
18
18
  style?: React.CSSProperties;
19
19
  className?: string;
20
20
  type?: CheckboxType;
21
+ id?: string;
21
22
  };
22
23
  export declare type CheckboxGroupState = {
23
24
  value?: any[];
@@ -91,6 +91,7 @@ class CheckboxGroup extends _baseComponent.default {
91
91
  prefixCls,
92
92
  direction,
93
93
  className,
94
+ id,
94
95
  style,
95
96
  type
96
97
  } = this.props;
@@ -140,7 +141,8 @@ class CheckboxGroup extends _baseComponent.default {
140
141
 
141
142
  return /*#__PURE__*/_react.default.createElement("div", {
142
143
  className: prefixClsDisplay,
143
- style: style
144
+ style: style,
145
+ id: id
144
146
  }, /*#__PURE__*/_react.default.createElement(_context7.Context.Provider, {
145
147
  value: {
146
148
  checkboxGroup: {
@@ -24,7 +24,7 @@ export default class DateInput extends BaseComponent<DateInputProps, {}> {
24
24
  onFocus: PropTypes.Requireable<(...args: any[]) => any>;
25
25
  value: PropTypes.Requireable<any[]>;
26
26
  disabled: PropTypes.Requireable<boolean>;
27
- type: PropTypes.Requireable<"date" | "month" | "dateTime" | "dateRange" | "year" | "dateTimeRange">;
27
+ type: PropTypes.Requireable<"dateTime" | "date" | "month" | "dateRange" | "year" | "dateTimeRange">;
28
28
  multiple: PropTypes.Requireable<boolean>;
29
29
  showClear: PropTypes.Requireable<boolean>;
30
30
  format: PropTypes.Requireable<string>;
@@ -29,7 +29,7 @@ export declare type DatePickerState = DatePickerFoundationState;
29
29
  export default class DatePicker extends BaseComponent<DatePickerProps, DatePickerState> {
30
30
  static contextType: React.Context<import("../configProvider/context").ContextValue>;
31
31
  static propTypes: {
32
- type: PropTypes.Requireable<"date" | "month" | "dateTime" | "dateRange" | "year" | "dateTimeRange">;
32
+ type: PropTypes.Requireable<"dateTime" | "date" | "month" | "dateRange" | "year" | "dateTimeRange">;
33
33
  size: PropTypes.Requireable<"default" | "small" | "large">;
34
34
  density: PropTypes.Requireable<"default" | "compact">;
35
35
  defaultValue: PropTypes.Requireable<string | number | object>;
@@ -17,7 +17,7 @@ export interface MonthsGridProps extends MonthsGridFoundationProps, BaseProps {
17
17
  export declare type MonthsGridState = MonthsGridFoundationState;
18
18
  export default class MonthsGrid extends BaseComponent<MonthsGridProps, MonthsGridState> {
19
19
  static propTypes: {
20
- type: PropTypes.Requireable<"date" | "month" | "dateTime" | "dateRange" | "year" | "dateTimeRange">;
20
+ type: PropTypes.Requireable<"dateTime" | "date" | "month" | "dateRange" | "year" | "dateTimeRange">;
21
21
  defaultValue: PropTypes.Requireable<string | number | object>;
22
22
  defaultPickerValue: PropTypes.Requireable<string | number | object>;
23
23
  multiple: PropTypes.Requireable<boolean>;
@@ -81,6 +81,7 @@ export default class MonthsGrid extends BaseComponent<MonthsGridProps, MonthsGri
81
81
  renderMonth(month: Date, panelType: PanelType): JSX.Element;
82
82
  handleWeeksRowNumChange: (weeksRowNum: number, panelType: PanelType) => void;
83
83
  reselect: () => void;
84
+ getYAMOpenType: () => "left" | "right" | "none" | "both";
84
85
  renderTimePicker(panelType: PanelType, panelDetail: MonthInfo): JSX.Element;
85
86
  renderYearAndMonth(panelType: PanelType, panelDetail: MonthInfo): JSX.Element;
86
87
  renderSwitch(panelType: PanelType): JSX.Element;
@@ -157,6 +157,10 @@ class MonthsGrid extends _baseComponent.default {
157
157
  });
158
158
  };
159
159
 
160
+ this.getYAMOpenType = () => {
161
+ return this.foundation.getYAMOpenType();
162
+ };
163
+
160
164
  let nowDate = (0, _isArray.default)(props.defaultPickerValue) ? props.defaultPickerValue[0] : props.defaultPickerValue;
161
165
  const validFormat = props.format || (0, _getDefaultFormatToken.getDefaultFormatTokenByType)(props.type);
162
166
 
@@ -644,9 +648,11 @@ class MonthsGrid extends _baseComponent.default {
644
648
  content = 'year month';
645
649
  }
646
650
 
651
+ const yearOpenType = this.getYAMOpenType();
647
652
  return /*#__PURE__*/_react.default.createElement("div", {
648
653
  className: monthGridCls,
649
654
  "x-type": type,
655
+ "x-panel-yearandmonth-open-type": yearOpenType,
650
656
  ref: current => this.cacheRefCurrent('monthGrid', current)
651
657
  }, content);
652
658
  }