shineout 1.6.6 → 1.7.0-rc.4

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 (131) hide show
  1. package/css/Alert/styles/alert.css +4 -4
  2. package/css/Cascader/Result.js +104 -40
  3. package/css/Cascader/styles/cascader.css +9 -6
  4. package/css/DatePicker/Day.js +2 -6
  5. package/css/Datum/List.js +5 -0
  6. package/css/Form/FieldSet.js +3 -3
  7. package/css/Form/Form.js +3 -0
  8. package/css/Form/formContext.js +5 -2
  9. package/css/Form/inputable.js +9 -3
  10. package/css/Menu/styles/menu.css +19 -12
  11. package/css/Progress/Circle.js +1 -1
  12. package/css/Rate/Rate.js +1 -1
  13. package/css/Select/More.js +77 -8
  14. package/css/Select/Result.js +53 -15
  15. package/css/Select/filter.js +6 -3
  16. package/css/Select/styles/select.css +9 -1
  17. package/css/Spin/Spin.js +6 -13
  18. package/css/Spin/index.js +25 -5
  19. package/css/Spin/styles/spin.css +10 -0
  20. package/css/Table/SeperateTable.js +12 -0
  21. package/css/Table/SimpleTable.js +5 -1
  22. package/css/Table/Table.js +35 -26
  23. package/css/Table/Tbody.js +6 -2
  24. package/css/Table/Thead.js +19 -2
  25. package/css/Table/styles/table.css +3 -0
  26. package/css/Tabs/Link.js +0 -1
  27. package/css/Tag/styles/tag.css +2 -1
  28. package/css/TreeSelect/Result.js +52 -16
  29. package/css/TreeSelect/styles/treeSelect.css +13 -0
  30. package/css/Upload/Upload.js +17 -3
  31. package/css/Upload/styles/upload.css +6 -0
  32. package/css/index.js +1 -1
  33. package/css/utils/dom/element.js +24 -2
  34. package/css/utils/vars-inject.js +39 -0
  35. package/dist/shineout.js +4215 -3823
  36. package/dist/shineout.js.map +1 -1
  37. package/dist/shineout.min.js +1 -1
  38. package/dist/theme.antd.css +1 -1
  39. package/dist/theme.antd2.css +1 -1
  40. package/dist/theme.default.css +1 -1
  41. package/dist/theme.shineout.css +1 -1
  42. package/es/Alert/styles/alert.less +2 -2
  43. package/es/Cascader/Result.js +63 -5
  44. package/es/Cascader/styles/cascader.less +7 -4
  45. package/es/DatePicker/Day.js +1 -6
  46. package/es/Datum/List.js +5 -0
  47. package/es/Form/FieldSet.js +3 -3
  48. package/es/Form/Form.js +1 -0
  49. package/es/Form/formContext.js +3 -1
  50. package/es/Form/inputable.js +6 -4
  51. package/es/Menu/styles/menu.less +4 -0
  52. package/es/Progress/Circle.js +1 -1
  53. package/es/Rate/Rate.js +1 -1
  54. package/es/Select/More.js +100 -21
  55. package/es/Select/Result.js +57 -16
  56. package/es/Select/filter.js +3 -1
  57. package/es/Select/styles/select.less +6 -1
  58. package/es/Slider/index.d.ts +26 -26
  59. package/es/Spin/Spin.js +5 -16
  60. package/es/Spin/index.d.ts +23 -11
  61. package/es/Spin/index.js +23 -7
  62. package/es/Spin/styles/spin.less +8 -0
  63. package/es/Table/SeperateTable.js +8 -1
  64. package/es/Table/SimpleTable.js +2 -1
  65. package/es/Table/Table.js +6 -3
  66. package/es/Table/Tbody.js +4 -2
  67. package/es/Table/Thead.js +15 -2
  68. package/es/Table/index.d.ts +9 -0
  69. package/es/Table/styles/table.less +4 -0
  70. package/es/Tabs/Link.js +0 -1
  71. package/es/Tabs/index.d.ts +58 -38
  72. package/es/Tag/styles/tag.less +1 -1
  73. package/es/TreeSelect/Result.js +51 -21
  74. package/es/TreeSelect/styles/treeSelect.less +11 -0
  75. package/es/Upload/Upload.js +12 -1
  76. package/es/Upload/index.d.ts +19 -8
  77. package/es/Upload/styles/upload.less +1 -0
  78. package/es/index.js +1 -1
  79. package/es/styles/themes/antd.less +5 -4
  80. package/es/styles/themes/base.less +3 -3
  81. package/es/styles/themes/bootstrap.less +5 -4
  82. package/es/styles/themes/cssvar.less +10 -0
  83. package/es/styles/themes/shineout.less +5 -4
  84. package/es/utils/dom/element.js +15 -0
  85. package/es/utils/vars-inject.js +50 -0
  86. package/lib/Alert/styles/alert.less +2 -2
  87. package/lib/Cascader/Result.js +104 -40
  88. package/lib/Cascader/styles/cascader.less +7 -4
  89. package/lib/DatePicker/Day.js +2 -6
  90. package/lib/Datum/List.js +5 -0
  91. package/lib/Form/FieldSet.js +3 -3
  92. package/lib/Form/Form.js +3 -0
  93. package/lib/Form/formContext.js +5 -2
  94. package/lib/Form/inputable.js +9 -3
  95. package/lib/Menu/styles/menu.less +4 -0
  96. package/lib/Progress/Circle.js +1 -1
  97. package/lib/Rate/Rate.js +1 -1
  98. package/lib/Select/More.js +77 -8
  99. package/lib/Select/Result.js +53 -15
  100. package/lib/Select/filter.js +6 -3
  101. package/lib/Select/styles/select.less +6 -1
  102. package/lib/Slider/index.d.ts +26 -26
  103. package/lib/Spin/Spin.js +6 -13
  104. package/lib/Spin/index.d.ts +23 -11
  105. package/lib/Spin/index.js +25 -5
  106. package/lib/Spin/styles/spin.less +8 -0
  107. package/lib/Table/SeperateTable.js +12 -0
  108. package/lib/Table/SimpleTable.js +5 -1
  109. package/lib/Table/Table.js +35 -26
  110. package/lib/Table/Tbody.js +6 -2
  111. package/lib/Table/Thead.js +19 -2
  112. package/lib/Table/index.d.ts +9 -0
  113. package/lib/Table/styles/table.less +4 -0
  114. package/lib/Tabs/Link.js +0 -1
  115. package/lib/Tabs/index.d.ts +58 -38
  116. package/lib/Tag/styles/tag.less +1 -1
  117. package/lib/TreeSelect/Result.js +52 -16
  118. package/lib/TreeSelect/styles/treeSelect.less +11 -0
  119. package/lib/Upload/Upload.js +17 -3
  120. package/lib/Upload/index.d.ts +19 -8
  121. package/lib/Upload/styles/upload.less +1 -0
  122. package/lib/index.d.ts +1 -1
  123. package/lib/index.js +1 -1
  124. package/lib/styles/themes/antd.less +5 -4
  125. package/lib/styles/themes/base.less +3 -3
  126. package/lib/styles/themes/bootstrap.less +5 -4
  127. package/lib/styles/themes/cssvar.less +10 -0
  128. package/lib/styles/themes/shineout.less +5 -4
  129. package/lib/utils/dom/element.js +24 -2
  130. package/lib/utils/vars-inject.js +39 -0
  131. package/package.json +1 -1
@@ -3,7 +3,7 @@
3
3
  display: -webkit-box;
4
4
  display: -ms-flexbox;
5
5
  display: flex;
6
- padding: 8px 16px;
6
+ padding: var(--alert-padding-y, 15px) var(--alert-padding-x, 16px);
7
7
  margin-bottom: 20px;
8
8
  border: var(--alert-border-width, 1px) solid transparent;
9
9
  border-radius: var(--alert-border-radius, 4px);
@@ -23,14 +23,14 @@
23
23
  color: inherit;
24
24
  }
25
25
  .so-alert-with-close {
26
- padding-right: 36px;
26
+ padding-right: calc(var(--alert-padding-x, 16px) + 20px);
27
27
  }
28
28
  .so-alert-link {
29
29
  font-weight: bold;
30
30
  }
31
31
  .so-alert-close {
32
32
  position: absolute;
33
- top: 8px;
33
+ top: var(--alert-padding-y, 15px);
34
34
  right: 12px;
35
35
  display: block;
36
36
  }
@@ -52,7 +52,7 @@
52
52
  }
53
53
  .so-alert-icon {
54
54
  display: block;
55
- margin-top: 2px;
55
+ margin-top: var(--alert-icon-margin-top, 2px);
56
56
  }
57
57
  .so-alert-content {
58
58
  -webkit-box-flex: 1;
@@ -31,7 +31,9 @@ var _Input = _interopRequireDefault(require("./Input"));
31
31
 
32
32
  var _icons = _interopRequireDefault(require("../icons"));
33
33
 
34
- var _More = _interopRequireDefault(require("../Select/More"));
34
+ var _More = _interopRequireWildcard(require("../Select/More"));
35
+
36
+ var _element = require("../utils/dom/element");
35
37
 
36
38
  var _is = require("../utils/is");
37
39
 
@@ -73,10 +75,15 @@ function (_PureComponent) {
73
75
  var _this;
74
76
 
75
77
  _this = _PureComponent.call(this, props) || this;
78
+ _this.state = {
79
+ more: -1
80
+ };
76
81
  _this.handleNodeClick = _this.handleNodeClick.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
77
82
  _this.renderItem = _this.renderItem.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
78
83
  _this.removeTargetNode = _this.removeTargetNode.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
79
84
  _this.handleUpdate = _this.handleUpdate.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
85
+ _this.bindResult = _this.bindResult.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
86
+ _this.resetMore = _this.resetMore.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
80
87
  return _this;
81
88
  }
82
89
 
@@ -85,17 +92,72 @@ function (_PureComponent) {
85
92
  _proto.componentDidMount = function componentDidMount() {
86
93
  var datum = this.props.datum;
87
94
  datum.subscribe(_types.CHANGE_TOPIC, this.handleUpdate);
95
+ var compressed = this.props.compressed;
96
+
97
+ if (compressed) {
98
+ this.cancelResizeObserver = (0, _element.addResizeObserver)(this.resultEl, this.resetMore);
99
+ }
100
+ };
101
+
102
+ _proto.componentDidUpdate = function componentDidUpdate(preProps) {
103
+ var _this$props = this.props,
104
+ compressed = _this$props.compressed,
105
+ _this$props$value = _this$props.value,
106
+ value = _this$props$value === void 0 ? [] : _this$props$value,
107
+ onFilter = _this$props.onFilter;
108
+
109
+ if (compressed) {
110
+ if ((preProps.value || []).join('') !== value.join('')) {
111
+ this.resetMore();
112
+ } else if (value.length && this.shouldResetMore) {
113
+ this.shouldResetMore = false;
114
+ this.state.more = (0, _More.getResetMore)(onFilter, this.resultEl, [].concat(this.resultEl.querySelectorAll("." + (0, _styles3.cascaderClass)('item'))));
115
+ this.forceUpdate();
116
+ }
117
+ }
118
+ };
119
+
120
+ _proto.componentDidUpdate = function componentDidUpdate(preProps) {
121
+ var _this$props2 = this.props,
122
+ compressed = _this$props2.compressed,
123
+ _this$props2$value = _this$props2.value,
124
+ value = _this$props2$value === void 0 ? [] : _this$props2$value,
125
+ onFilter = _this$props2.onFilter;
126
+
127
+ if (compressed) {
128
+ if ((preProps.value || []).join('') !== value.join('')) {
129
+ this.shouldResetMore = true;
130
+ this.state.more = -1;
131
+ this.forceUpdate();
132
+ } else if (value.length && this.shouldResetMore) {
133
+ this.shouldResetMore = false;
134
+ this.state.more = (0, _More.getResetMore)(onFilter, this.resultEl, [].concat(this.resultEl.querySelectorAll("." + (0, _styles3.cascaderClass)('item'))));
135
+ this.forceUpdate();
136
+ }
137
+ }
88
138
  };
89
139
 
90
140
  _proto.componentWillUnmount = function componentWillUnmount() {
91
141
  var datum = this.props.datum;
92
142
  datum.unsubscribe(_types.CHANGE_TOPIC, this.handleUpdate);
143
+ if (this.cancelResizeObserver) this.cancelResizeObserver();
93
144
  };
94
145
 
95
146
  _proto.handleUpdate = function handleUpdate() {
96
147
  this.forceUpdate();
97
148
  };
98
149
 
150
+ _proto.bindResult = function bindResult(el) {
151
+ this.resultEl = el;
152
+ };
153
+
154
+ _proto.resetMore = function resetMore() {
155
+ if (!this.props.compressed) return;
156
+ this.shouldResetMore = true;
157
+ this.state.more = -1;
158
+ this.forceUpdate();
159
+ };
160
+
99
161
  _proto.handleNodeClick = function handleNodeClick(data, show) {
100
162
  if (show === void 0) {
101
163
  show = false;
@@ -150,11 +212,11 @@ function (_PureComponent) {
150
212
  };
151
213
 
152
214
  _proto.renderClear = function renderClear() {
153
- var _this$props = this.props,
154
- clearable = _this$props.clearable,
155
- value = _this$props.value,
156
- disabled = _this$props.disabled,
157
- onClear = _this$props.onClear;
215
+ var _this$props3 = this.props,
216
+ clearable = _this$props3.clearable,
217
+ value = _this$props3.value,
218
+ disabled = _this$props3.disabled,
219
+ onClear = _this$props3.onClear;
158
220
  var className = (0, _classnames.default)((0, _styles2.selectClass)('indicator', 'close'), (0, _styles3.cascaderClass)('close'));
159
221
 
160
222
  if (clearable && value.length > 0 && !disabled) {
@@ -194,30 +256,31 @@ function (_PureComponent) {
194
256
  };
195
257
 
196
258
  _proto.renderMore = function renderMore(list) {
197
- var _this$props2 = this.props,
198
- selectId = _this$props2.selectId,
199
- size = _this$props2.size,
200
- compressed = _this$props2.compressed;
201
- var firstItem = list[0];
202
- return [firstItem, _react.default.createElement(_More.default, {
259
+ var _this$props4 = this.props,
260
+ selectId = _this$props4.selectId,
261
+ size = _this$props4.size,
262
+ compressed = _this$props4.compressed;
263
+ var more = this.state.more;
264
+ return [_react.default.createElement(_More.default, {
203
265
  key: "more",
204
266
  data: list,
205
267
  className: (0, _styles3.cascaderClass)('item', 'item-compressed'),
206
268
  popoverClassName: (0, _styles3.cascaderClass)('popover'),
207
269
  contentClassName: (0, _styles3.cascaderClass)('result', size),
208
270
  dataId: selectId,
271
+ showNum: more,
209
272
  compressed: compressed
210
273
  })];
211
274
  };
212
275
 
213
276
  _proto.renderInput = function renderInput() {
214
- var _this$props3 = this.props,
215
- onFilter = _this$props3.onFilter,
216
- focus = _this$props3.focus,
217
- trim = _this$props3.trim,
218
- focusSelected = _this$props3.focusSelected,
219
- bindInput = _this$props3.bindInput,
220
- filterText = _this$props3.filterText;
277
+ var _this$props5 = this.props,
278
+ onFilter = _this$props5.onFilter,
279
+ focus = _this$props5.focus,
280
+ trim = _this$props5.trim,
281
+ focusSelected = _this$props5.focusSelected,
282
+ bindInput = _this$props5.bindInput,
283
+ filterText = _this$props5.filterText;
221
284
  return _react.default.createElement(_Input.default, {
222
285
  filterText: filterText,
223
286
  ref: bindInput,
@@ -230,9 +293,9 @@ function (_PureComponent) {
230
293
  };
231
294
 
232
295
  _proto.renderPlaceholder = function renderPlaceholder() {
233
- var _this$props4 = this.props,
234
- focus = _this$props4.focus,
235
- onFilter = _this$props4.onFilter;
296
+ var _this$props6 = this.props,
297
+ focus = _this$props6.focus,
298
+ onFilter = _this$props6.onFilter;
236
299
 
237
300
  if (focus && onFilter) {
238
301
  return this.renderInput();
@@ -245,10 +308,10 @@ function (_PureComponent) {
245
308
  };
246
309
 
247
310
  _proto.renderIndicator = function renderIndicator() {
248
- var _this$props5 = this.props,
249
- multiple = _this$props5.multiple,
250
- showArrow = _this$props5.showArrow,
251
- compressed = _this$props5.compressed;
311
+ var _this$props7 = this.props,
312
+ multiple = _this$props7.multiple,
313
+ showArrow = _this$props7.showArrow,
314
+ compressed = _this$props7.compressed;
252
315
  if (!showArrow || multiple && !compressed) return null;
253
316
  var showCaret = !multiple; // eslint-disable-next-line
254
317
 
@@ -260,14 +323,14 @@ function (_PureComponent) {
260
323
  };
261
324
 
262
325
  _proto.renderResult = function renderResult() {
263
- var _this$props6 = this.props,
264
- datum = _this$props6.datum,
265
- value = _this$props6.value,
266
- renderItem = _this$props6.renderItem,
267
- renderResult = _this$props6.renderResult,
268
- compressed = _this$props6.compressed,
269
- focus = _this$props6.focus,
270
- onFilter = _this$props6.onFilter;
326
+ var _this$props8 = this.props,
327
+ datum = _this$props8.datum,
328
+ value = _this$props8.value,
329
+ renderItem = _this$props8.renderItem,
330
+ renderResult = _this$props8.renderResult,
331
+ compressed = _this$props8.compressed,
332
+ focus = _this$props8.focus,
333
+ onFilter = _this$props8.onFilter;
271
334
  var nodes = value.map(function (v) {
272
335
  return datum.getDataById(v);
273
336
  });
@@ -283,7 +346,7 @@ function (_PureComponent) {
283
346
 
284
347
  var items = this.handleNode(nodes, render);
285
348
 
286
- if (compressed && items.length > 1) {
349
+ if (compressed) {
287
350
  items = this.renderMore(items);
288
351
  }
289
352
 
@@ -297,13 +360,14 @@ function (_PureComponent) {
297
360
  };
298
361
 
299
362
  _proto.render = function render() {
300
- var _this$props7 = this.props,
301
- style = _this$props7.style,
302
- value = _this$props7.value,
303
- compressed = _this$props7.compressed,
304
- multiple = _this$props7.multiple;
363
+ var _this$props9 = this.props,
364
+ style = _this$props9.style,
365
+ value = _this$props9.value,
366
+ compressed = _this$props9.compressed,
367
+ multiple = _this$props9.multiple;
305
368
  var result = value.length === 0 ? this.renderPlaceholder() : this.renderResult();
306
369
  return _react.default.createElement("div", {
370
+ ref: this.bindResult,
307
371
  className: (0, _styles3.cascaderClass)('result', multiple && compressed && 'compressed'),
308
372
  style: style
309
373
  }, result, this.renderIndicator(), this.renderClear());
@@ -40,7 +40,6 @@
40
40
  }
41
41
  .so-cascader-result span-compressed > span,
42
42
  .so-cascader-result .so-cascader-item-compressed > span {
43
- vertical-align: middle;
44
43
  letter-spacing: 2px;
45
44
  padding: 0;
46
45
  margin: 0;
@@ -152,16 +151,20 @@ div.so-cascader-options {
152
151
  flex-direction: row;
153
152
  -ms-flex-wrap: nowrap;
154
153
  flex-wrap: nowrap;
154
+ -webkit-box-align: start;
155
+ -ms-flex-align: start;
156
+ align-items: flex-start;
155
157
  padding: 6px 34px 0 12px;
156
158
  }
157
- .so-cascader-result.so-cascader-compressed .so-cascader-item:first-child {
159
+ .so-cascader-result.so-cascader-compressed .so-cascader-item {
158
160
  text-overflow: ellipsis;
159
161
  overflow: hidden;
160
162
  white-space: nowrap;
161
- -webkit-box-flex: 1;
162
- -ms-flex-positive: 1;
163
- flex-grow: 1;
164
- width: 0;
163
+ -ms-flex-negative: 0;
164
+ flex-shrink: 0;
165
+ }
166
+ .so-cascader-result.so-cascader-compressed .so-cascader-input {
167
+ white-space: nowrap;
165
168
  }
166
169
  .so-cascader-result.so-cascader-compressed .so-cascader-close {
167
170
  right: 9px;
@@ -102,15 +102,11 @@ function (_PureComponent) {
102
102
  min = _this$props3.min,
103
103
  max = _this$props3.max,
104
104
  index = _this$props3.index,
105
- value = _this$props3.value; // if has value use value time
106
-
105
+ value = _this$props3.value;
107
106
  var current = index === sync && value || this.formatWithDefaultTime(sync);
108
107
  var onChange = typeof sync === 'number' ? this.props.onChangeSync.bind(this.props, sync) : this.props.onChange;
109
108
 
110
109
  if (type === 'week') {
111
- // if (date.getDay() === 0) {
112
- // date = utils.subDays(date, 1)
113
- // }
114
110
  onChange.apply(void 0, _utils.default.weekHandleChangeParams(date, true, true));
115
111
  } else {
116
112
  var newDate = new Date(date.getFullYear(), date.getMonth(), date.getDate(), current.getHours(), current.getMinutes(), current.getSeconds()); // only can select day with the same day of min/max
@@ -223,7 +219,7 @@ function (_PureComponent) {
223
219
  return _react.default.createElement("div", (0, _extends2.default)({
224
220
  key: date.getTime(),
225
221
  className: hoverClass,
226
- onClick: isDisabled ? undefined : this.handleDayClick.bind(this, date, minD, maxD),
222
+ onClick: isDisabled ? undefined : this.handleDayClick.bind(this, date),
227
223
  onDoubleClick: isDisabled ? undefined : this.handleDayDoubleClick.bind(this, date)
228
224
  }, hoverProps), _react.default.createElement("span", {
229
225
  className: _styles.datepickerClass.apply(void 0, classList)
package/css/Datum/List.js CHANGED
@@ -45,6 +45,11 @@ function () {
45
45
 
46
46
  var _proto = _default.prototype;
47
47
 
48
+ // should clean $cachedFlatten when data changed
49
+ _proto.cleanDataCache = function cleanDataCache() {
50
+ this.$cachedFlatten = new Map();
51
+ };
52
+
48
53
  _proto.setDisabled = function setDisabled(disabled) {
49
54
  if (this.$cachedDisabled === disabled) return;
50
55
  this.$cachedDisabled = disabled;
@@ -192,9 +192,9 @@ function (_Component) {
192
192
  if (values.length === 0 && empty) {
193
193
  result.push(empty(this.handleInsert.bind(this, 0)));
194
194
  } else {
195
- var errorList = Array.isArray(errors) ? errors : [];
195
+ var errorList = (Array.isArray(errors) ? errors : [errors]).filter(Boolean);
196
+ console.log(errorList);
196
197
  values.forEach(function (v, i) {
197
- var error = errorList[i];
198
198
  result.push(_react.default.createElement(Provider, {
199
199
  key: i,
200
200
  value: {
@@ -205,7 +205,7 @@ function (_Component) {
205
205
  list: values,
206
206
  value: v,
207
207
  index: i,
208
- error: error,
208
+ error: errorList,
209
209
  datum: formDatum,
210
210
  onChange: _this5.handleChange.bind(_this5, i),
211
211
  onInsert: _this5.handleInsert.bind(_this5, i),
package/css/Form/Form.js CHANGED
@@ -60,6 +60,9 @@ function (_Component) {
60
60
  validate: function validate() {
61
61
  return _this.props.datum.validate();
62
62
  },
63
+ validateFields: function validateFields(fields) {
64
+ return _this.props.datum.validateFields(fields).catch(function () {});
65
+ },
63
66
  clearValidate: function clearValidate() {
64
67
  _this.props.datum.validateClear();
65
68
  },
@@ -102,7 +102,8 @@ var formProvider = function formProvider(Origin) {
102
102
  labelWidth = _this$props.labelWidth,
103
103
  disabled = _this$props.disabled,
104
104
  pending = _this$props.pending,
105
- mode = _this$props.mode;
105
+ mode = _this$props.mode,
106
+ size = _this$props.size;
106
107
  var value = {
107
108
  formDatum: datum,
108
109
  formMode: mode,
@@ -110,6 +111,7 @@ var formProvider = function formProvider(Origin) {
110
111
  labelAlign: labelAlign,
111
112
  labelVerticalAlign: labelVerticalAlign,
112
113
  labelWidth: labelWidth,
114
+ size: size,
113
115
  combineRules: this.combineRules,
114
116
  groupValidate: this.groupValidate
115
117
  };
@@ -130,7 +132,8 @@ var formProvider = function formProvider(Origin) {
130
132
  mode: _propTypes.default.string,
131
133
  pending: _propTypes.default.bool,
132
134
  rule: _propTypes.default.object,
133
- rules: _propTypes.default.oneOfType([_propTypes.default.array, _propTypes.default.object])
135
+ rules: _propTypes.default.oneOfType([_propTypes.default.array, _propTypes.default.object]),
136
+ size: _propTypes.default.string
134
137
  };
135
138
  return FormProvider;
136
139
  };
@@ -49,7 +49,7 @@ var _Loop = require("./Loop");
49
49
 
50
50
  var _FieldSet = require("./FieldSet");
51
51
 
52
- var types = ['formDatum', 'disabled', 'combineRules'];
52
+ var types = ['formDatum', 'disabled', 'combineRules', 'size'];
53
53
  var consumer = (0, _func.compose)((0, _formContext.formConsumer)(types), _Item.itemConsumer, _Loop.loopConsumer, _FieldSet.fieldSetConsumer);
54
54
 
55
55
  var tryValue = function tryValue(val, def) {
@@ -187,7 +187,12 @@ var _default = (0, _func.curry)(function (Origin) {
187
187
  _proto.getError = function getError() {
188
188
  var _this$props4 = this.props,
189
189
  formDatum = _this$props4.formDatum,
190
- name = _this$props4.name;
190
+ name = _this$props4.name,
191
+ error = _this$props4.error;
192
+
193
+ if ('error' in this.props) {
194
+ return error;
195
+ }
191
196
 
192
197
  if (formDatum && name) {
193
198
  return formDatum.getError(this.errorName);
@@ -416,7 +421,8 @@ var _default = (0, _func.curry)(function (Origin) {
416
421
  type: _propTypes.default.string,
417
422
  unbindInputFromItem: _propTypes.default.func,
418
423
  value: _propTypes.default.any,
419
- scuSkip: _propTypes.default.array
424
+ scuSkip: _propTypes.default.array,
425
+ error: _propTypes.default.object
420
426
  }), (0, _defineProperty2.default)(_class, "defaultProps", {
421
427
  rules: [],
422
428
  scuSkip: ['onChange', 'rules']
@@ -63,9 +63,12 @@
63
63
  position: absolute;
64
64
  top: 50%;
65
65
  right: 16px;
66
- -webkit-transform: translateY(-65%) rotate(0deg);
67
- -ms-transform: translateY(-65%) rotate(0deg);
68
- transform: translateY(-65%) rotate(0deg);
66
+ -webkit-transform-origin: 50% 50%;
67
+ -ms-transform-origin: 50% 50%;
68
+ transform-origin: 50% 50%;
69
+ -webkit-transform: translateY(-50%) rotate(0deg);
70
+ -ms-transform: translateY(-50%) rotate(0deg);
71
+ transform: translateY(-50%) rotate(0deg);
69
72
  }
70
73
  .so-menu-highlight > .so-menu-title {
71
74
  color: var(--primary-color, #3399ff);
@@ -74,9 +77,9 @@
74
77
  display: none;
75
78
  }
76
79
  .so-menu-list .so-menu-has-children.so-menu-open > .so-menu-title .so-menu-expand:after {
77
- -webkit-transform: translateY(-65%) rotate(180deg);
78
- -ms-transform: translateY(-65%) rotate(180deg);
79
- transform: translateY(-65%) rotate(180deg);
80
+ -webkit-transform: translateY(-50%) rotate(180deg);
81
+ -ms-transform: translateY(-50%) rotate(180deg);
82
+ transform: translateY(-50%) rotate(180deg);
80
83
  }
81
84
  .so-menu-list .so-menu-has-children.so-menu-open > .so-menu-list {
82
85
  display: block;
@@ -220,9 +223,9 @@ ul.so-menu-root {
220
223
  }
221
224
  .so-menu-vertical .so-menu-has-children > .so-menu-title .so-menu-expand:after,
222
225
  .so-menu-vertical .so-menu-has-children.so-menu-open > .so-menu-title .so-menu-expand:after {
223
- -webkit-transform: translateY(-65%) rotate(270deg);
224
- -ms-transform: translateY(-65%) rotate(270deg);
225
- transform: translateY(-65%) rotate(270deg);
226
+ -webkit-transform: translateY(-50%) rotate(270deg);
227
+ -ms-transform: translateY(-50%) rotate(270deg);
228
+ transform: translateY(-50%) rotate(270deg);
226
229
  }
227
230
  .so-menu-vertical .so-menu-root .so-menu-open-up .so-menu-list {
228
231
  top: auto;
@@ -375,6 +378,10 @@ ul.so-menu-root {
375
378
  .so-menu-dark.so-menu-horizontal .so-menu-in-path.so-menu-has-children > a {
376
379
  color: var(--menu-dark-color, #bfbfbf);
377
380
  }
381
+ .so-menu-dark.so-menu-inline .so-menu-in-path.so-menu-has-children > a:hover,
382
+ .so-menu-dark.so-menu-horizontal .so-menu-in-path.so-menu-has-children > a:hover {
383
+ color: var(--menu-item-dark-hover-color, #fff);
384
+ }
378
385
  .so-menu .so-menu-has-children.so-menu-caret-solid.so-menu-open > .so-menu-title .so-menu-caret {
379
386
  -webkit-transform: rotate(180deg);
380
387
  -ms-transform: rotate(180deg);
@@ -436,9 +443,9 @@ ul.so-menu-root {
436
443
  right: 0;
437
444
  }
438
445
  .so-menu.so-menu-rtl .so-menu-has-children.so-menu-open > .so-menu-title:after {
439
- -webkit-transform: translateY(-65%) rotate(180deg);
440
- -ms-transform: translateY(-65%) rotate(180deg);
441
- transform: translateY(-65%) rotate(180deg);
446
+ -webkit-transform: translateY(-50%) rotate(180deg);
447
+ -ms-transform: translateY(-50%) rotate(180deg);
448
+ transform: translateY(-50%) rotate(180deg);
442
449
  }
443
450
  .so-menu.so-menu-rtl .so-menu-has-children.so-menu-caret-solid > .so-menu-title .so-menu-caret {
444
451
  margin-right: 0;
@@ -25,7 +25,7 @@ function Circle(props) {
25
25
  background = props.background,
26
26
  strokeLinecap = props.strokeLinecap;
27
27
  var className = (0, _classnames.default)((0, _styles.progressClass)('circle', type), props.className);
28
- var r = 100 - Math.ceil(strokeWidth * 2 / size * 100);
28
+ var r = 100 - Math.ceil(strokeWidth / size * 100);
29
29
  var p = Math.PI * 2 * r;
30
30
  var dasharray = [p * (value / 100), p * (1 - value / 100)];
31
31
  var style = Object.assign({
package/css/Rate/Rate.js CHANGED
@@ -165,7 +165,7 @@ function (_PureComponent) {
165
165
  key: v // the allowHalf only for the front same as background
166
166
  ,
167
167
  style: Object.assign({
168
- visibility: !allowHalf && !disabled && value > v ? 'hidden' : 'visible'
168
+ visibility: !disabled && Math.floor(value) > v ? 'hidden' : 'visible'
169
169
  }, style)
170
170
  }, _this3.getIcon(background, v, true));
171
171
  }));
@@ -5,6 +5,7 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
5
5
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
6
 
7
7
  exports.__esModule = true;
8
+ exports.getResetMore = getResetMore;
8
9
  exports.default = void 0;
9
10
 
10
11
  var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
@@ -17,8 +18,60 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
17
18
 
18
19
  var _classnames = _interopRequireDefault(require("classnames"));
19
20
 
21
+ var _element = require("../utils/dom/element");
22
+
20
23
  var _Popover = _interopRequireDefault(require("../Popover"));
21
24
 
25
+ function getResetMore(onFilter, container, items) {
26
+ if (!container || !items || !items.length) return -1;
27
+ var style = getComputedStyle(container);
28
+ var clientWidth = container.clientWidth;
29
+ var paddingLeft = (0, _element.parsePxToNumber)(style.paddingLeft);
30
+ var paddingRight = (0, _element.parsePxToNumber)(style.paddingRight);
31
+ var minFilterWidth = onFilter ? 16 : 0;
32
+ var contentWidth = clientWidth - paddingLeft - paddingRight - minFilterWidth - 1;
33
+ var hideEl = items.pop();
34
+ var hideElStyle = getComputedStyle(hideEl);
35
+ var hideMargin = (0, _element.parsePxToNumber)(hideElStyle.marginLeft) + (0, _element.parsePxToNumber)(hideElStyle.marginRight);
36
+ var num = 0;
37
+ var sumWidth = 0;
38
+ var itemWidthArr = items.map(function (item) {
39
+ var itemStyle = getComputedStyle(item);
40
+ var itemLen = item.offsetWidth + (0, _element.parsePxToNumber)(itemStyle.marginLeft) + (0, _element.parsePxToNumber)(itemStyle.marginRight);
41
+ sumWidth += itemLen;
42
+ return itemLen;
43
+ });
44
+
45
+ if (sumWidth <= contentWidth) {
46
+ num = -1;
47
+ } else {
48
+ var len = 0;
49
+
50
+ for (var i = 0; i < itemWidthArr.length; i++) {
51
+ var itemLen = itemWidthArr[i]; // number length
52
+
53
+ var reset = "+" + (items.length - 1 - i);
54
+ hideEl.childNodes[0].innerText = reset; // (+num) width
55
+
56
+ var moreWidth = hideEl.offsetWidth + hideMargin;
57
+ len += itemLen;
58
+
59
+ if (len > contentWidth - moreWidth) {
60
+ break;
61
+ }
62
+
63
+ num += 1;
64
+
65
+ if (i === items.length - 1) {
66
+ // not show more
67
+ num = -1;
68
+ }
69
+ }
70
+ }
71
+
72
+ return num;
73
+ }
74
+
22
75
  var More =
23
76
  /*#__PURE__*/
24
77
  function (_Component) {
@@ -52,13 +105,28 @@ function (_Component) {
52
105
  dataId = _this$props.dataId,
53
106
  trigger = _this$props.trigger,
54
107
  compressed = _this$props.compressed,
55
- cls = _this$props.cls;
108
+ cls = _this$props.cls,
109
+ showNum = _this$props.showNum;
56
110
  var status = this.state.status;
57
- if (data.length <= 1) return data;
58
- var firstItem = data[0],
59
- items = data.slice(1);
60
- var itemsLength = items.length;
61
- return _react.default.createElement("a", {
111
+ if (showNum < 0 || showNum > data.length) return _react.default.createElement(_react.default.Fragment, null, data, _react.default.createElement("a", {
112
+ key: "hidden",
113
+ className: className,
114
+ style: {
115
+ position: 'absolute',
116
+ zIndex: '-100',
117
+ userSelect: 'none',
118
+ msUserSelect: 'none',
119
+ contain: 'layout'
120
+ }
121
+ }, _react.default.createElement("span", null, "+")));
122
+ var before = new Array(showNum).fill().map(function (item, index) {
123
+ return data[index];
124
+ });
125
+ var after = new Array(data.length - showNum).fill().map(function (item, index) {
126
+ return data[showNum + index];
127
+ });
128
+ var itemsLength = after.length;
129
+ return _react.default.createElement(_react.default.Fragment, null, before, _react.default.createElement("a", {
62
130
  tabIndex: -1,
63
131
  key: "more",
64
132
  className: (0, _classnames.default)(className, cls && status && cls('item-more'))
@@ -71,7 +139,7 @@ function (_Component) {
71
139
  }, _react.default.createElement("div", {
72
140
  className: contentClassName,
73
141
  "data-id": dataId
74
- }, compressed === 'no-repeat' ? null : firstItem, items)));
142
+ }, compressed === 'no-repeat' ? null : before, after))));
75
143
  };
76
144
 
77
145
  return More;
@@ -88,7 +156,8 @@ More.propTypes = {
88
156
  dataId: _propTypes.default.string,
89
157
  trigger: _propTypes.default.string,
90
158
  compressed: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]),
91
- cls: _propTypes.default.func
159
+ cls: _propTypes.default.func,
160
+ showNum: _propTypes.default.number
92
161
  };
93
162
  var _default = More;
94
163
  exports.default = _default;