@douyinfe/semi-ui 2.36.0 → 2.37.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 (175) hide show
  1. package/dist/css/semi.css +39 -1
  2. package/dist/css/semi.min.css +1 -1
  3. package/dist/umd/semi-ui.js +850 -503
  4. package/dist/umd/semi-ui.js.map +1 -1
  5. package/dist/umd/semi-ui.min.js +1 -1
  6. package/dist/umd/semi-ui.min.js.map +1 -1
  7. package/lib/cjs/_base/baseComponent.d.ts +1 -0
  8. package/lib/cjs/_base/baseComponent.js +4 -0
  9. package/lib/cjs/anchor/index.js +2 -2
  10. package/lib/cjs/autoComplete/index.js +2 -2
  11. package/lib/cjs/banner/index.js +2 -2
  12. package/lib/cjs/breadcrumb/index.js +2 -2
  13. package/lib/cjs/breadcrumb/item.js +1 -1
  14. package/lib/cjs/calendar/dayCalendar.js +2 -2
  15. package/lib/cjs/calendar/monthCalendar.js +2 -2
  16. package/lib/cjs/calendar/rangeCalendar.js +2 -2
  17. package/lib/cjs/calendar/weekCalendar.d.ts +1 -1
  18. package/lib/cjs/calendar/weekCalendar.js +2 -2
  19. package/lib/cjs/carousel/index.js +2 -2
  20. package/lib/cjs/cascader/index.js +1 -1
  21. package/lib/cjs/checkbox/checkbox.js +2 -2
  22. package/lib/cjs/checkbox/checkboxGroup.js +2 -2
  23. package/lib/cjs/collapse/index.js +2 -2
  24. package/lib/cjs/collapsible/index.js +2 -2
  25. package/lib/cjs/datePicker/dateInput.d.ts +1 -0
  26. package/lib/cjs/datePicker/dateInput.js +10 -6
  27. package/lib/cjs/datePicker/datePicker.js +23 -11
  28. package/lib/cjs/datePicker/quickControl.d.ts +2 -0
  29. package/lib/cjs/datePicker/quickControl.js +5 -3
  30. package/lib/cjs/descriptions/index.js +22 -11
  31. package/lib/cjs/descriptions/item.js +22 -11
  32. package/lib/cjs/empty/index.js +23 -13
  33. package/lib/cjs/input/index.d.ts +3 -1
  34. package/lib/cjs/input/index.js +19 -16
  35. package/lib/cjs/list/index.js +30 -20
  36. package/lib/cjs/list/item.js +18 -15
  37. package/lib/cjs/locale/interface.d.ts +1 -0
  38. package/lib/cjs/locale/source/ar.js +1 -0
  39. package/lib/cjs/locale/source/de.js +1 -0
  40. package/lib/cjs/locale/source/en_GB.js +1 -0
  41. package/lib/cjs/locale/source/en_US.js +1 -0
  42. package/lib/cjs/locale/source/es.js +1 -0
  43. package/lib/cjs/locale/source/fr.js +1 -0
  44. package/lib/cjs/locale/source/id_ID.js +1 -0
  45. package/lib/cjs/locale/source/it.js +1 -0
  46. package/lib/cjs/locale/source/ja_JP.js +1 -0
  47. package/lib/cjs/locale/source/ko_KR.js +1 -0
  48. package/lib/cjs/locale/source/ms_MY.js +1 -0
  49. package/lib/cjs/locale/source/nl_NL.js +1 -0
  50. package/lib/cjs/locale/source/pl_PL.js +1 -0
  51. package/lib/cjs/locale/source/pt_BR.js +1 -0
  52. package/lib/cjs/locale/source/ro.d.ts +1 -0
  53. package/lib/cjs/locale/source/ro.js +1 -0
  54. package/lib/cjs/locale/source/ru_RU.js +1 -0
  55. package/lib/cjs/locale/source/sv_SE.js +1 -0
  56. package/lib/cjs/locale/source/th_TH.js +1 -0
  57. package/lib/cjs/locale/source/tr_TR.js +1 -0
  58. package/lib/cjs/locale/source/vi_VN.js +1 -0
  59. package/lib/cjs/locale/source/zh_CN.js +1 -0
  60. package/lib/cjs/locale/source/zh_TW.js +1 -0
  61. package/lib/cjs/modal/ModalContent.js +12 -9
  62. package/lib/cjs/navigation/index.js +34 -24
  63. package/lib/cjs/pagination/index.d.ts +3 -0
  64. package/lib/cjs/pagination/index.js +73 -39
  65. package/lib/cjs/progress/index.js +44 -31
  66. package/lib/cjs/radio/radio.js +27 -17
  67. package/lib/cjs/radio/radioGroup.js +24 -14
  68. package/lib/cjs/rating/index.js +21 -11
  69. package/lib/cjs/scrollList/index.js +21 -11
  70. package/lib/cjs/select/index.js +30 -21
  71. package/lib/cjs/sideSheet/SideSheetContent.js +27 -7
  72. package/lib/cjs/slider/index.js +20 -11
  73. package/lib/cjs/spin/index.js +19 -9
  74. package/lib/cjs/steps/basicSteps.js +24 -14
  75. package/lib/cjs/steps/fillSteps.js +22 -12
  76. package/lib/cjs/steps/navSteps.js +21 -11
  77. package/lib/cjs/switch/index.js +23 -13
  78. package/lib/cjs/table/Table.d.ts +1 -0
  79. package/lib/cjs/table/Table.js +3 -2
  80. package/lib/cjs/tabs/index.js +1 -2
  81. package/lib/cjs/tagInput/index.js +20 -10
  82. package/lib/cjs/timeline/index.js +20 -9
  83. package/lib/cjs/timeline/item.js +24 -13
  84. package/lib/cjs/toast/index.d.ts +4 -0
  85. package/lib/cjs/tooltip/index.js +3 -1
  86. package/lib/cjs/transfer/index.js +19 -9
  87. package/lib/cjs/tree/index.js +32 -22
  88. package/lib/cjs/treeSelect/index.js +32 -20
  89. package/lib/cjs/typography/title.d.ts +1 -1
  90. package/lib/cjs/upload/index.js +28 -18
  91. package/lib/es/_base/baseComponent.d.ts +1 -0
  92. package/lib/es/_base/baseComponent.js +4 -0
  93. package/lib/es/anchor/index.js +2 -2
  94. package/lib/es/autoComplete/index.js +2 -2
  95. package/lib/es/banner/index.js +2 -2
  96. package/lib/es/breadcrumb/index.js +2 -2
  97. package/lib/es/breadcrumb/item.js +1 -1
  98. package/lib/es/calendar/dayCalendar.js +2 -2
  99. package/lib/es/calendar/monthCalendar.js +2 -2
  100. package/lib/es/calendar/rangeCalendar.js +2 -2
  101. package/lib/es/calendar/weekCalendar.d.ts +1 -1
  102. package/lib/es/calendar/weekCalendar.js +2 -2
  103. package/lib/es/carousel/index.js +2 -2
  104. package/lib/es/cascader/index.js +1 -1
  105. package/lib/es/checkbox/checkbox.js +2 -2
  106. package/lib/es/checkbox/checkboxGroup.js +2 -2
  107. package/lib/es/collapse/index.js +2 -2
  108. package/lib/es/collapsible/index.js +2 -2
  109. package/lib/es/datePicker/dateInput.d.ts +1 -0
  110. package/lib/es/datePicker/dateInput.js +10 -6
  111. package/lib/es/datePicker/datePicker.js +23 -10
  112. package/lib/es/datePicker/quickControl.d.ts +2 -0
  113. package/lib/es/datePicker/quickControl.js +5 -3
  114. package/lib/es/descriptions/index.js +22 -11
  115. package/lib/es/descriptions/item.js +22 -11
  116. package/lib/es/empty/index.js +23 -13
  117. package/lib/es/input/index.d.ts +3 -1
  118. package/lib/es/input/index.js +19 -16
  119. package/lib/es/list/index.js +30 -20
  120. package/lib/es/list/item.js +18 -15
  121. package/lib/es/locale/interface.d.ts +1 -0
  122. package/lib/es/locale/source/ar.js +1 -0
  123. package/lib/es/locale/source/de.js +1 -0
  124. package/lib/es/locale/source/en_GB.js +1 -0
  125. package/lib/es/locale/source/en_US.js +1 -0
  126. package/lib/es/locale/source/es.js +1 -0
  127. package/lib/es/locale/source/fr.js +1 -0
  128. package/lib/es/locale/source/id_ID.js +1 -0
  129. package/lib/es/locale/source/it.js +1 -0
  130. package/lib/es/locale/source/ja_JP.js +1 -0
  131. package/lib/es/locale/source/ko_KR.js +1 -0
  132. package/lib/es/locale/source/ms_MY.js +1 -0
  133. package/lib/es/locale/source/nl_NL.js +1 -0
  134. package/lib/es/locale/source/pl_PL.js +1 -0
  135. package/lib/es/locale/source/pt_BR.js +1 -0
  136. package/lib/es/locale/source/ro.d.ts +1 -0
  137. package/lib/es/locale/source/ro.js +1 -0
  138. package/lib/es/locale/source/ru_RU.js +1 -0
  139. package/lib/es/locale/source/sv_SE.js +1 -0
  140. package/lib/es/locale/source/th_TH.js +1 -0
  141. package/lib/es/locale/source/tr_TR.js +1 -0
  142. package/lib/es/locale/source/vi_VN.js +1 -0
  143. package/lib/es/locale/source/zh_CN.js +1 -0
  144. package/lib/es/locale/source/zh_TW.js +1 -0
  145. package/lib/es/modal/ModalContent.js +12 -9
  146. package/lib/es/navigation/index.js +34 -24
  147. package/lib/es/pagination/index.d.ts +3 -0
  148. package/lib/es/pagination/index.js +73 -38
  149. package/lib/es/progress/index.js +44 -31
  150. package/lib/es/radio/radio.js +27 -17
  151. package/lib/es/radio/radioGroup.js +24 -14
  152. package/lib/es/rating/index.js +21 -11
  153. package/lib/es/scrollList/index.js +21 -11
  154. package/lib/es/select/index.js +30 -20
  155. package/lib/es/sideSheet/SideSheetContent.js +27 -7
  156. package/lib/es/slider/index.js +20 -10
  157. package/lib/es/spin/index.js +19 -9
  158. package/lib/es/steps/basicSteps.js +24 -14
  159. package/lib/es/steps/fillSteps.js +22 -12
  160. package/lib/es/steps/navSteps.js +21 -11
  161. package/lib/es/switch/index.js +23 -13
  162. package/lib/es/table/Table.d.ts +1 -0
  163. package/lib/es/table/Table.js +3 -2
  164. package/lib/es/tabs/index.js +1 -2
  165. package/lib/es/tagInput/index.js +20 -10
  166. package/lib/es/timeline/index.js +20 -9
  167. package/lib/es/timeline/item.js +24 -13
  168. package/lib/es/toast/index.d.ts +4 -0
  169. package/lib/es/tooltip/index.js +3 -1
  170. package/lib/es/transfer/index.js +19 -9
  171. package/lib/es/tree/index.js +32 -22
  172. package/lib/es/treeSelect/index.js +32 -20
  173. package/lib/es/typography/title.d.ts +1 -1
  174. package/lib/es/upload/index.js +28 -18
  175. package/package.json +8 -8
@@ -23,4 +23,5 @@ export default class BaseComponent<P extends BaseProps = {}, S = {}> extends Com
23
23
  get adapter(): DefaultAdapter<P, S>;
24
24
  isControlled: (key: any) => boolean;
25
25
  log(text: string, ...rest: any): any;
26
+ getDataAttr(props?: any): {};
26
27
  }
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _react = require("react");
8
8
  var _log = _interopRequireDefault(require("@douyinfe/semi-foundation/lib/cjs/utils/log"));
9
+ var _getDataAttr = _interopRequireDefault(require("@douyinfe/semi-foundation/lib/cjs/utils/getDataAttr"));
9
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
11
  /**
11
12
  * The Semi Foundation / Adapter architecture split was inspired by Material Component For Web. (https://github.com/material-components/material-components-web)
@@ -65,6 +66,9 @@ class BaseComponent extends _react.Component {
65
66
  }
66
67
  return (0, _log.default)(text, ...rest);
67
68
  }
69
+ getDataAttr(props) {
70
+ return (0, _getDataAttr.default)(props);
71
+ }
68
72
  }
69
73
  exports.default = BaseComponent;
70
74
  BaseComponent.propTypes = {};
@@ -248,13 +248,13 @@ class Anchor extends _baseComponent.default {
248
248
  addLink: this.addLink,
249
249
  removeLink: this.removeLink
250
250
  }
251
- }, /*#__PURE__*/_react.default.createElement("div", {
251
+ }, /*#__PURE__*/_react.default.createElement("div", Object.assign({
252
252
  role: "navigation",
253
253
  "aria-label": ariaLabel || 'Side navigation',
254
254
  className: wrapperCls,
255
255
  style: wrapperStyle,
256
256
  id: this.anchorID
257
- }, /*#__PURE__*/_react.default.createElement("div", {
257
+ }, this.getDataAttr(this.props)), /*#__PURE__*/_react.default.createElement("div", {
258
258
  "aria-hidden": true,
259
259
  className: slideCls,
260
260
  style: {
@@ -189,7 +189,7 @@ class AutoComplete extends _baseComponent.default {
189
189
  selection
190
190
  } = this.state;
191
191
  const useCustomTrigger = typeof triggerRender === 'function';
192
- const outerProps = Object.assign(Object.assign({
192
+ const outerProps = Object.assign(Object.assign(Object.assign({
193
193
  style,
194
194
  className: useCustomTrigger ? (0, _classnames.default)(className) : (0, _classnames.default)({
195
195
  [prefixCls]: true,
@@ -201,7 +201,7 @@ class AutoComplete extends _baseComponent.default {
201
201
  }, keyboardEventSet), {
202
202
  // tooltip give tabindex 0 to children by default, autoComplete just need the input get focus, so outer div's tabindex set to -1
203
203
  tabIndex: -1
204
- });
204
+ }), this.getDataAttr(this.props));
205
205
  const innerProps = {
206
206
  disabled,
207
207
  placeholder,
@@ -135,11 +135,11 @@ class Banner extends _baseComponent.default {
135
135
  [`${prefixCls}-in-container`]: !fullMode,
136
136
  [`${prefixCls}-bordered`]: !fullMode && bordered
137
137
  });
138
- const banner = visible ? /*#__PURE__*/_react.default.createElement("div", {
138
+ const banner = visible ? /*#__PURE__*/_react.default.createElement("div", Object.assign({
139
139
  className: wrapper,
140
140
  style: style,
141
141
  role: "alert"
142
- }, /*#__PURE__*/_react.default.createElement("div", {
142
+ }, this.getDataAttr(this.props)), /*#__PURE__*/_react.default.createElement("div", {
143
143
  className: `${prefixCls}-content-wrapper`
144
144
  }, /*#__PURE__*/_react.default.createElement("div", {
145
145
  className: `${prefixCls}-content`
@@ -178,11 +178,11 @@ class Breadcrumb extends _baseComponent.default {
178
178
  compact,
179
179
  separator
180
180
  }
181
- }, /*#__PURE__*/_react.default.createElement("nav", {
181
+ }, /*#__PURE__*/_react.default.createElement("nav", Object.assign({
182
182
  "aria-label": this.props['aria-label'],
183
183
  className: sizeCls,
184
184
  style: style
185
- }, breadcrumbs));
185
+ }, this.getDataAttr(this.props)), breadcrumbs));
186
186
  }
187
187
  }
188
188
  Breadcrumb.contextType = _breadContext.default;
@@ -175,7 +175,7 @@ class BreadcrumbItem extends _baseComponent.default {
175
175
 
176
176
  return /*#__PURE__*/_react.default.createElement("span", Object.assign({
177
177
  className: wrapperCLs
178
- }, pageLabel), item, shouldRenderSeparator && separator);
178
+ }, pageLabel, this.getDataAttr(this.props)), item, shouldRenderSeparator && separator);
179
179
  }
180
180
  }
181
181
  exports.default = BreadcrumbItem;
@@ -142,11 +142,11 @@ class DayCalendar extends _baseComponent.default {
142
142
  scrollHeight
143
143
  } = this.state;
144
144
  this.isWeekend = markWeekend && this.checkWeekend(displayValue);
145
- return /*#__PURE__*/_react.default.createElement("div", {
145
+ return /*#__PURE__*/_react.default.createElement("div", Object.assign({
146
146
  className: dayCls,
147
147
  style: dayStyle,
148
148
  ref: this.dom
149
- }, /*#__PURE__*/_react.default.createElement("div", {
149
+ }, this.getDataAttr(this.props)), /*#__PURE__*/_react.default.createElement("div", {
150
150
  className: `${prefixCls}-sticky-top`
151
151
  }, header, this.renderAllDay(parsedEvents.allDay)), /*#__PURE__*/_react.default.createElement("div", {
152
152
  className: `${prefixCls}-scroll-wrapper`
@@ -380,12 +380,12 @@ class monthCalendar extends _baseComponent.default {
380
380
  }, style);
381
381
  return /*#__PURE__*/_react.default.createElement(_localeConsumer.default, {
382
382
  componentName: "Calendar"
383
- }, (locale, localeCode, dateFnsLocale) => /*#__PURE__*/_react.default.createElement("div", {
383
+ }, (locale, localeCode, dateFnsLocale) => /*#__PURE__*/_react.default.createElement("div", Object.assign({
384
384
  role: "grid",
385
385
  className: monthCls,
386
386
  key: this.state.itemLimit,
387
387
  style: monthStyle
388
- }, /*#__PURE__*/_react.default.createElement("div", {
388
+ }, this.getDataAttr(this.props)), /*#__PURE__*/_react.default.createElement("div", {
389
389
  role: "presentation",
390
390
  className: `${prefixCls}-sticky-top`
391
391
  }, header, this.renderHeader(dateFnsLocale)), /*#__PURE__*/_react.default.createElement("div", {
@@ -242,11 +242,11 @@ class RangeCalendar extends _baseComponent.default {
242
242
  }, style);
243
243
  return /*#__PURE__*/_react.default.createElement(_localeConsumer.default, {
244
244
  componentName: "Calendar"
245
- }, (locale, localeCode, dateFnsLocale) => /*#__PURE__*/_react.default.createElement("div", {
245
+ }, (locale, localeCode, dateFnsLocale) => /*#__PURE__*/_react.default.createElement("div", Object.assign({
246
246
  className: weekCls,
247
247
  style: weekStyle,
248
248
  ref: this.dom
249
- }, /*#__PURE__*/_react.default.createElement("div", {
249
+ }, this.getDataAttr(this.props)), /*#__PURE__*/_react.default.createElement("div", {
250
250
  className: `${prefixCls}-sticky-top`
251
251
  }, header, this.renderHeader(dateFnsLocale), this.renderAllDay(locale)), /*#__PURE__*/_react.default.createElement("div", {
252
252
  className: `${prefixCls}-scroll-wrapper`
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import CalendarFoundation, { CalendarAdapter, EventObject, ParsedEvents, ParsedRangeEvent, WeeklyData } from '@douyinfe/semi-foundation/lib/cjs/calendar/foundation';
4
4
  import BaseComponent from '../_base/baseComponent';
5
- import { WeekCalendarProps } from './interface';
5
+ import type { WeekCalendarProps } from './interface';
6
6
  import '@douyinfe/semi-foundation/lib/cjs/calendar/calendar.css';
7
7
  import { Locale } from '../locale/interface';
8
8
  export interface WeekCalendarState {
@@ -242,11 +242,11 @@ class WeekCalendar extends _baseComponent.default {
242
242
  }, style);
243
243
  return /*#__PURE__*/_react.default.createElement(_localeConsumer.default, {
244
244
  componentName: "Calendar"
245
- }, (locale, localeCode, dateFnsLocale) => /*#__PURE__*/_react.default.createElement("div", {
245
+ }, (locale, localeCode, dateFnsLocale) => /*#__PURE__*/_react.default.createElement("div", Object.assign({
246
246
  className: weekCls,
247
247
  style: weekStyle,
248
248
  ref: this.dom
249
- }, /*#__PURE__*/_react.default.createElement("div", {
249
+ }, this.getDataAttr(this.props)), /*#__PURE__*/_react.default.createElement("div", {
250
250
  className: `${prefixCls}-sticky-top`
251
251
  }, header, this.renderHeader(dateFnsLocale), this.renderAllDay(locale)), /*#__PURE__*/_react.default.createElement("div", {
252
252
  className: `${prefixCls}-scroll-wrapper`
@@ -236,14 +236,14 @@ class Carousel extends _baseComponent.default {
236
236
  const carouselWrapperCls = (0, _classnames.default)(className, {
237
237
  [_constants.cssClasses.CAROUSEL]: true
238
238
  });
239
- return /*#__PURE__*/_react.default.createElement("div", {
239
+ return /*#__PURE__*/_react.default.createElement("div", Object.assign({
240
240
  // role='listbox'
241
241
  // tabIndex={0}
242
242
  className: carouselWrapperCls,
243
243
  style: style,
244
244
  onMouseEnter: (0, _debounce2.default)(this.handleMouseEnter, 400),
245
245
  onMouseLeave: (0, _debounce2.default)(this.handleMouseLeave, 400)
246
- }, /*#__PURE__*/_react.default.createElement("div", {
246
+ }, this.getDataAttr(this.props)), /*#__PURE__*/_react.default.createElement("div", {
247
247
  className: (0, _classnames.default)([`${_constants.cssClasses.CAROUSEL_CONTENT}-${animation}`], {
248
248
  [`${_constants.cssClasses.CAROUSEL_CONTENT}`]: true,
249
249
  [`${_constants.cssClasses.CAROUSEL_CONTENT}-reverse`]: slideDirection === 'left' ? isReverse : !isReverse
@@ -467,7 +467,7 @@ class Cascader extends _baseComponent.default {
467
467
  // eslint-disable-next-line jsx-a11y/role-has-required-aria-props
468
468
  role: "combobox",
469
469
  tabIndex: 0
470
- }), inner);
470
+ }, this.getDataAttr(this.props)), inner);
471
471
  };
472
472
  this.state = {
473
473
  disabledKeys: new Set(),
@@ -215,7 +215,7 @@ class Checkbox extends _baseComponent.default {
215
215
  return (
216
216
  /*#__PURE__*/
217
217
  // label is better than span, however span is here which is to solve gitlab issue #364
218
- _react.default.createElement("span", {
218
+ _react.default.createElement("span", Object.assign({
219
219
  role: role,
220
220
  tabIndex: tabIndex,
221
221
  style: style,
@@ -226,7 +226,7 @@ class Checkbox extends _baseComponent.default {
226
226
  onClick: this.handleChange,
227
227
  onKeyPress: this.handleEnterPress,
228
228
  "aria-labelledby": this.props['aria-labelledby']
229
- }, /*#__PURE__*/_react.default.createElement(_checkboxInner.default, Object.assign({}, this.props, props, {
229
+ }, this.getDataAttr(this.props)), /*#__PURE__*/_react.default.createElement(_checkboxInner.default, Object.assign({}, this.props, props, {
230
230
  addonId: children && addonId,
231
231
  extraId: extra && extraId,
232
232
  isPureCardType: props.isPureCardType,
@@ -105,7 +105,7 @@ class CheckboxGroup extends _baseComponent.default {
105
105
  role: 'listitem'
106
106
  }));
107
107
  }
108
- return /*#__PURE__*/_react.default.createElement("div", {
108
+ return /*#__PURE__*/_react.default.createElement("div", Object.assign({
109
109
  id: id,
110
110
  role: "list",
111
111
  "aria-label": this.props['aria-label'],
@@ -113,7 +113,7 @@ class CheckboxGroup extends _baseComponent.default {
113
113
  style: style,
114
114
  "aria-labelledby": this.props['aria-labelledby'],
115
115
  "aria-describedby": this.props['aria-describedby']
116
- }, /*#__PURE__*/_react.default.createElement(_context.Context.Provider, {
116
+ }, this.getDataAttr(this.props)), /*#__PURE__*/_react.default.createElement(_context.Context.Provider, {
117
117
  value: {
118
118
  checkboxGroup: {
119
119
  onChange: this.onChange,
@@ -82,10 +82,10 @@ class Collapse extends _baseComponent.default {
82
82
  const {
83
83
  activeSet
84
84
  } = this.state;
85
- return /*#__PURE__*/_react.default.createElement("div", {
85
+ return /*#__PURE__*/_react.default.createElement("div", Object.assign({
86
86
  className: clsPrefix,
87
87
  style: style
88
- }, /*#__PURE__*/_react.default.createElement(_collapseContext.default.Provider, {
88
+ }, this.getDataAttr(this.props)), /*#__PURE__*/_react.default.createElement(_collapseContext.default.Provider, {
89
89
  value: {
90
90
  activeSet,
91
91
  expandIcon,
@@ -114,7 +114,7 @@ class Collapsible extends _baseComponent.default {
114
114
  const wrapperCls = (0, _classnames.default)(`${_constants.cssClasses.PREFIX}-wrapper`, {
115
115
  [`${_constants.cssClasses.PREFIX}-transition`]: this.props.motion && this.state.isTransitioning
116
116
  }, this.props.className);
117
- return /*#__PURE__*/_react.default.createElement("div", {
117
+ return /*#__PURE__*/_react.default.createElement("div", Object.assign({
118
118
  className: wrapperCls,
119
119
  style: wrapperStyle,
120
120
  onTransitionEnd: () => {
@@ -125,7 +125,7 @@ class Collapsible extends _baseComponent.default {
125
125
  this.foundation.updateIsTransitioning(false);
126
126
  (_b = (_a = this.props).onMotionEnd) === null || _b === void 0 ? void 0 : _b.call(_a);
127
127
  }
128
- }, /*#__PURE__*/_react.default.createElement("div", {
128
+ }, this.getDataAttr(this.props)), /*#__PURE__*/_react.default.createElement("div", {
129
129
  "x-semi-prop": "children",
130
130
  ref: this.domRef,
131
131
  style: {
@@ -18,6 +18,7 @@ export interface DateInputProps extends DateInputFoundationProps, BaseProps {
18
18
  inputRef?: React.RefObject<HTMLInputElement>;
19
19
  rangeInputStartRef?: React.RefObject<HTMLInputElement>;
20
20
  rangeInputEndRef?: React.RefObject<HTMLInputElement>;
21
+ showClearIgnoreDisabled?: boolean;
21
22
  }
22
23
  export default class DateInput extends BaseComponent<DateInputProps, {}> {
23
24
  static propTypes: {
@@ -148,15 +148,17 @@ class DateInput extends _baseComponent.default {
148
148
  showClear,
149
149
  prefixCls,
150
150
  disabled,
151
- clearIcon
151
+ clearIcon,
152
+ showClearIgnoreDisabled
152
153
  } = this.props;
153
- const allowClear = (rangeStart || rangeEnd) && showClear;
154
- return allowClear && !disabled ? /*#__PURE__*/_react.default.createElement("div", {
154
+ const isRealDisabled = disabled && !showClearIgnoreDisabled;
155
+ const allowClear = (rangeStart || rangeEnd) && showClear && !isRealDisabled;
156
+ return allowClear ? /*#__PURE__*/_react.default.createElement("div", {
155
157
  role: "button",
156
158
  tabIndex: 0,
157
159
  "aria-label": "Clear range input value",
158
160
  className: `${prefixCls}-range-input-clearbtn`,
159
- onMouseDown: e => !disabled && this.handleRangeInputClear(e)
161
+ onMouseDown: e => this.handleRangeInputClear(e)
160
162
  }, clearIcon ? clearIcon : /*#__PURE__*/_react.default.createElement(_semiIcons.IconClear, {
161
163
  "aria-hidden": true
162
164
  })) : null;
@@ -354,9 +356,10 @@ class DateInput extends _baseComponent.default {
354
356
  rangeSeparator,
355
357
  insetInput,
356
358
  insetInputValue,
357
- defaultPickerValue
359
+ defaultPickerValue,
360
+ showClearIgnoreDisabled
358
361
  } = _a,
359
- rest = __rest(_a, ["placeholder", "type", "value", "inputValue", "inputStyle", "disabled", "showClear", "inputReadOnly", "insetLabel", "validateStatus", "block", "prefixCls", "multiple", "dateFnsLocale", "onBlur", "onClear", "onFocus", "prefix", "autofocus", "size", "inputRef", "rangeInputStartRef", "rangeInputEndRef", "onRangeClear", "onRangeBlur", "onRangeEndTabPress", "rangeInputFocus", "rangeSeparator", "insetInput", "insetInputValue", "defaultPickerValue"]);
362
+ rest = __rest(_a, ["placeholder", "type", "value", "inputValue", "inputStyle", "disabled", "showClear", "inputReadOnly", "insetLabel", "validateStatus", "block", "prefixCls", "multiple", "dateFnsLocale", "onBlur", "onClear", "onFocus", "prefix", "autofocus", "size", "inputRef", "rangeInputStartRef", "rangeInputEndRef", "onRangeClear", "onRangeBlur", "onRangeEndTabPress", "rangeInputFocus", "rangeSeparator", "insetInput", "insetInputValue", "defaultPickerValue", "showClearIgnoreDisabled"]);
360
363
  const dateIcon = /*#__PURE__*/_react.default.createElement(_semiIcons.IconCalendar, {
361
364
  "aria-hidden": true
362
365
  });
@@ -383,6 +386,7 @@ class DateInput extends _baseComponent.default {
383
386
  ref: inputRef,
384
387
  insetLabel: insetLabel,
385
388
  disabled: disabled,
389
+ showClearIgnoreDisabled: showClearIgnoreDisabled,
386
390
  readonly: inputReadOnly,
387
391
  className: inputCls,
388
392
  style: inputStyle,
@@ -28,11 +28,18 @@ var _trigger = _interopRequireDefault(require("../trigger"));
28
28
  var _yearAndMonth = _interopRequireDefault(require("./yearAndMonth"));
29
29
  require("@douyinfe/semi-foundation/lib/cjs/datePicker/datePicker.css");
30
30
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
+ var __rest = void 0 && (void 0).__rest || function (s, e) {
32
+ var t = {};
33
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
34
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
35
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
36
+ }
37
+ return t;
38
+ };
31
39
  /* eslint-disable jsx-a11y/click-events-have-key-events,jsx-a11y/interactive-supports-focus */
32
40
  /* eslint-disable max-len */
33
41
  /* eslint-disable jsx-a11y/click-events-have-key-events */
34
42
  /* eslint-disable jsx-a11y/no-static-element-interactions */
35
-
36
43
  class DatePicker extends _baseComponent.default {
37
44
  constructor(props) {
38
45
  var _this;
@@ -591,14 +598,16 @@ class DatePicker extends _baseComponent.default {
591
598
  presets,
592
599
  type,
593
600
  presetPosition,
594
- insetInput
601
+ insetInput,
602
+ locale
595
603
  } = this.props;
596
604
  return /*#__PURE__*/_react.default.createElement(_quickControl.default, {
597
605
  type: type,
598
606
  presets: presets,
599
607
  insetInput: insetInput,
600
608
  presetPosition: presetPosition,
601
- onPresetClick: (item, e) => this.foundation.handlePresetClick(item, e)
609
+ onPresetClick: (item, e) => this.foundation.handlePresetClick(item, e),
610
+ locale: locale
602
611
  });
603
612
  }
604
613
  renderDateInput() {
@@ -678,6 +687,7 @@ class DatePicker extends _baseComponent.default {
678
687
  const phText = placeholder || locale.placeholder[type]; // i18n
679
688
  // These values should be passed to triggerRender, do not delete any key if it is not necessary
680
689
  const props = Object.assign(Object.assign({}, extraProps), {
690
+ showClearIgnoreDisabled: Boolean(insetInput),
681
691
  placeholder: phText,
682
692
  clearIcon,
683
693
  disabled: inputDisabled,
@@ -729,13 +739,15 @@ class DatePicker extends _baseComponent.default {
729
739
  })) : /*#__PURE__*/_react.default.createElement(_dateInput.default, Object.assign({}, props)));
730
740
  }
731
741
  render() {
732
- const {
733
- style,
734
- className,
735
- prefixCls,
736
- type
737
- } = this.props;
738
- const outerProps = {
742
+ const _a = this.props,
743
+ {
744
+ style,
745
+ className,
746
+ prefixCls,
747
+ type
748
+ } = _a,
749
+ rest = __rest(_a, ["style", "className", "prefixCls", "type"]);
750
+ const outerProps = Object.assign({
739
751
  style,
740
752
  className: (0, _classnames.default)(className, {
741
753
  [prefixCls]: true
@@ -746,7 +758,7 @@ class DatePicker extends _baseComponent.default {
746
758
  'aria-labelledby': this.props['aria-labelledby'],
747
759
  'aria-describedby': this.props['aria-describedby'],
748
760
  'aria-required': this.props['aria-required']
749
- };
761
+ }, this.getDataAttr(rest));
750
762
  const innerPropKeys = [];
751
763
  if (!type.toLowerCase().includes("range")) {
752
764
  innerPropKeys.push("borderless");
@@ -10,6 +10,7 @@ export interface QuickControlProps {
10
10
  onPresetClick: (preset: PresetType, e: React.MouseEvent) => void;
11
11
  type: string;
12
12
  insetInput: DateInputFoundationProps['insetInput'];
13
+ locale: any;
13
14
  }
14
15
  declare class QuickControl extends PureComponent<QuickControlProps> {
15
16
  static propTypes: {
@@ -18,6 +19,7 @@ declare class QuickControl extends PureComponent<QuickControlProps> {
18
19
  onPresetClick: PropTypes.Requireable<(...args: any[]) => any>;
19
20
  type: PropTypes.Requireable<string>;
20
21
  insetInput: PropTypes.Requireable<NonNullable<boolean | object>>;
22
+ locale: PropTypes.Requireable<object>;
21
23
  };
22
24
  static defaultProps: {
23
25
  presets: PresetsType;
@@ -27,7 +27,8 @@ class QuickControl extends _react.PureComponent {
27
27
  onPresetClick,
28
28
  type,
29
29
  presetPosition,
30
- insetInput
30
+ insetInput,
31
+ locale
31
32
  } = this.props;
32
33
  const isTypeRange = type === 'dateRange' || type === 'dateTimeRange';
33
34
  const isPanelTopAndBottom = presetPosition === 'top' || presetPosition === 'bottom';
@@ -67,7 +68,7 @@ class QuickControl extends _react.PureComponent {
67
68
  "x-insetinput": insetInput ? "true" : "false"
68
69
  }, !isPanelTopAndBottom && /*#__PURE__*/_react.default.createElement("div", {
69
70
  className: headerCls
70
- }, "\u5FEB\u6377\u9009\u62E9"), /*#__PURE__*/_react.default.createElement("div", {
71
+ }, locale.presets), /*#__PURE__*/_react.default.createElement("div", {
71
72
  className: contentWrapperCls
72
73
  }, /*#__PURE__*/_react.default.createElement("div", {
73
74
  className: contentCls
@@ -94,7 +95,8 @@ QuickControl.propTypes = {
94
95
  presetPosition: _propTypes.default.oneOf(_constants.strings.PRESET_POSITION_SET),
95
96
  onPresetClick: _propTypes.default.func,
96
97
  type: _propTypes.default.string,
97
- insetInput: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.object])
98
+ insetInput: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.object]),
99
+ locale: _propTypes.default.object
98
100
  };
99
101
  QuickControl.defaultProps = {
100
102
  presets: [],
@@ -10,23 +10,34 @@ var _classnames = _interopRequireDefault(require("classnames"));
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
  var _constants = require("@douyinfe/semi-foundation/lib/cjs/descriptions/constants");
12
12
  require("@douyinfe/semi-foundation/lib/cjs/descriptions/descriptions.css");
13
+ var _getDataAttr = _interopRequireDefault(require("@douyinfe/semi-foundation/lib/cjs/utils/getDataAttr"));
13
14
  var _descriptionsContext = _interopRequireDefault(require("./descriptions-context"));
14
15
  var _item = _interopRequireDefault(require("./item"));
15
16
  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); }
16
17
  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; }
17
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+ var __rest = void 0 && (void 0).__rest || function (s, e) {
20
+ var t = {};
21
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
22
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
23
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
24
+ }
25
+ return t;
26
+ };
18
27
  const prefixCls = _constants.cssClasses.PREFIX;
19
28
  class Descriptions extends _react.PureComponent {
20
29
  render() {
21
- const {
22
- align,
23
- row,
24
- size,
25
- className,
26
- style,
27
- children,
28
- data
29
- } = this.props;
30
+ const _a = this.props,
31
+ {
32
+ align,
33
+ row,
34
+ size,
35
+ className,
36
+ style,
37
+ children,
38
+ data
39
+ } = _a,
40
+ rest = __rest(_a, ["align", "row", "size", "className", "style", "children", "data"]);
30
41
  const classNames = (0, _classnames.default)(prefixCls, className, {
31
42
  [`${prefixCls}-${align}`]: !row,
32
43
  [`${prefixCls}-double`]: row,
@@ -37,10 +48,10 @@ class Descriptions extends _react.PureComponent {
37
48
  }, item, {
38
49
  key: index
39
50
  }), item.value) : null) : children;
40
- return /*#__PURE__*/_react.default.createElement("div", {
51
+ return /*#__PURE__*/_react.default.createElement("div", Object.assign({
41
52
  className: classNames,
42
53
  style: style
43
- }, /*#__PURE__*/_react.default.createElement("table", null, /*#__PURE__*/_react.default.createElement("tbody", null, /*#__PURE__*/_react.default.createElement(_descriptionsContext.default.Provider, {
54
+ }, (0, _getDataAttr.default)(rest)), /*#__PURE__*/_react.default.createElement("table", null, /*#__PURE__*/_react.default.createElement("tbody", null, /*#__PURE__*/_react.default.createElement(_descriptionsContext.default.Provider, {
44
55
  value: {
45
56
  align
46
57
  }
@@ -8,41 +8,52 @@ var _react = _interopRequireWildcard(require("react"));
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
  var _constants = require("@douyinfe/semi-foundation/lib/cjs/descriptions/constants");
10
10
  require("@douyinfe/semi-foundation/lib/cjs/descriptions/descriptions.css");
11
+ var _getDataAttr = _interopRequireDefault(require("@douyinfe/semi-foundation/lib/cjs/utils/getDataAttr"));
11
12
  var _descriptionsContext = _interopRequireDefault(require("./descriptions-context"));
12
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
14
  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); }
14
15
  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; }
16
+ var __rest = void 0 && (void 0).__rest || function (s, e) {
17
+ var t = {};
18
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
19
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
20
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
21
+ }
22
+ return t;
23
+ };
15
24
  const prefixCls = _constants.cssClasses.PREFIX;
16
25
  const keyCls = `${prefixCls}-key`;
17
26
  const valCls = `${prefixCls}-value`;
18
27
  class Item extends _react.PureComponent {
19
28
  render() {
20
- const {
21
- itemKey,
22
- hidden,
23
- className,
24
- style,
25
- children
26
- } = this.props;
29
+ const _a = this.props,
30
+ {
31
+ itemKey,
32
+ hidden,
33
+ className,
34
+ style,
35
+ children
36
+ } = _a,
37
+ rest = __rest(_a, ["itemKey", "hidden", "className", "style", "children"]);
27
38
  const {
28
39
  align
29
40
  } = this.context;
30
41
  if (hidden) {
31
42
  return null;
32
43
  }
33
- const item = align === 'plain' ? /*#__PURE__*/_react.default.createElement("tr", {
44
+ const item = align === 'plain' ? /*#__PURE__*/_react.default.createElement("tr", Object.assign({
34
45
  className: className,
35
46
  style: style
36
- }, /*#__PURE__*/_react.default.createElement("td", {
47
+ }, (0, _getDataAttr.default)(rest)), /*#__PURE__*/_react.default.createElement("td", {
37
48
  className: `${prefixCls}-item`
38
49
  }, /*#__PURE__*/_react.default.createElement("span", {
39
50
  className: keyCls
40
51
  }, itemKey, ":"), /*#__PURE__*/_react.default.createElement("span", {
41
52
  className: valCls
42
- }, typeof children === 'function' ? children() : children))) : /*#__PURE__*/_react.default.createElement("tr", {
53
+ }, typeof children === 'function' ? children() : children))) : /*#__PURE__*/_react.default.createElement("tr", Object.assign({
43
54
  className: className,
44
55
  style: style
45
- }, /*#__PURE__*/_react.default.createElement("th", {
56
+ }, (0, _getDataAttr.default)(rest)), /*#__PURE__*/_react.default.createElement("th", {
46
57
  className: `${prefixCls}-item ${prefixCls}-item-th`
47
58
  }, /*#__PURE__*/_react.default.createElement("span", {
48
59
  className: keyCls
@@ -11,6 +11,14 @@ require("@douyinfe/semi-foundation/lib/cjs/empty/empty.css");
11
11
  var _typography = _interopRequireDefault(require("../typography"));
12
12
  var _baseComponent = _interopRequireDefault(require("../_base/baseComponent"));
13
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+ var __rest = void 0 && (void 0).__rest || function (s, e) {
15
+ var t = {};
16
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
17
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
19
+ }
20
+ return t;
21
+ };
14
22
  const prefixCls = _constants.cssClasses.PREFIX;
15
23
  class Empty extends _baseComponent.default {
16
24
  constructor(props) {
@@ -51,17 +59,19 @@ class Empty extends _baseComponent.default {
51
59
  this.observer && this.observer.disconnect();
52
60
  }
53
61
  render() {
54
- const {
55
- className,
56
- image,
57
- description,
58
- style,
59
- title,
60
- imageStyle,
61
- children,
62
- layout,
63
- darkModeImage
64
- } = this.props;
62
+ const _a = this.props,
63
+ {
64
+ className,
65
+ image,
66
+ description,
67
+ style,
68
+ title,
69
+ imageStyle,
70
+ children,
71
+ layout,
72
+ darkModeImage
73
+ } = _a,
74
+ rest = __rest(_a, ["className", "image", "description", "style", "title", "imageStyle", "children", "layout", "darkModeImage"]);
65
75
  const alt = typeof description === 'string' ? description : 'empty';
66
76
  const imgSrc = this.state.mode === 'dark' && darkModeImage ? darkModeImage : image;
67
77
  let imageNode = null;
@@ -90,10 +100,10 @@ class Empty extends _baseComponent.default {
90
100
  fontWeight: 400
91
101
  }
92
102
  };
93
- return /*#__PURE__*/_react.default.createElement("div", {
103
+ return /*#__PURE__*/_react.default.createElement("div", Object.assign({
94
104
  className: wrapperCls,
95
105
  style: style
96
- }, /*#__PURE__*/_react.default.createElement("div", {
106
+ }, this.getDataAttr(rest)), /*#__PURE__*/_react.default.createElement("div", {
97
107
  className: `${prefixCls}-image`,
98
108
  style: imageStyle,
99
109
  "x-semi-prop": "image,darkModeImage"