shineout 1.12.12 → 1.12.13-beta.2

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.
@@ -37,10 +37,10 @@ var _More = _interopRequireWildcard(require("./More"));
37
37
 
38
38
  var _InputTitle = _interopRequireDefault(require("../InputTitle"));
39
39
 
40
- var _uid = require("../utils/uid");
41
-
42
40
  var _classname = require("../utils/classname");
43
41
 
42
+ var _shallowEqual = _interopRequireDefault(require("../utils/shallowEqual"));
43
+
44
44
  var IS_NOT_MATCHED_VALUE = 'IS_NOT_MATCHED_VALUE';
45
45
  /**
46
46
  * get result className from resultClassName attr
@@ -73,18 +73,23 @@ var getResultContent = function getResultContent(data, renderResult, renderUnmat
73
73
  }; // eslint-disable-next-line
74
74
 
75
75
 
76
- function Item(_ref) {
77
- var content = _ref.content,
78
- data = _ref.data,
79
- disabled = _ref.disabled,
80
- onClick = _ref.onClick,
81
- resultClassName = _ref.resultClassName,
82
- _ref$title = _ref.title,
83
- title = _ref$title === void 0 ? false : _ref$title,
84
- only = _ref.only;
85
- var value = data;
76
+ function Item(props) {
77
+ // eslint-disable-next-line react/prop-types
78
+ var value = props.value,
79
+ onClick = props.onClick,
80
+ resultClassName = props.resultClassName,
81
+ _props$title = props.title,
82
+ title = _props$title === void 0 ? false : _props$title,
83
+ only = props.only,
84
+ getDataByValue = props.getDataByValue,
85
+ getContent = props.getContent,
86
+ isDisabled = props.isDisabled;
87
+ var data = getDataByValue(value);
88
+ var disabled = isDisabled(data);
89
+ var content = getContent(data);
90
+ if (data === null) return null;
86
91
  var click = disabled || !onClick ? undefined : function () {
87
- return onClick(value);
92
+ return onClick(data);
88
93
  };
89
94
  var synDisabled = disabled || !click;
90
95
  return _react.default.createElement("a", {
@@ -157,42 +162,18 @@ function (_PureComponent) {
157
162
 
158
163
  _proto.updateMore = function updateMore(preProps) {
159
164
  var _this$props = this.props,
160
- result = _this$props.result,
161
165
  compressed = _this$props.compressed,
162
166
  onFilter = _this$props.onFilter,
163
- keygen = _this$props.keygen,
167
+ values = _this$props.values,
164
168
  data = _this$props.data;
165
169
 
166
170
  if (compressed) {
167
171
  if (this.isCompressedBound()) return;
168
- var shouldRest = false;
169
-
170
- if (preProps.result.length !== result.length || (data || []).length !== (preProps.data || []).length) {
171
- shouldRest = true;
172
- } else if (preProps.result !== result) {
173
- var getUnMatchKey = function getUnMatchKey(d, k) {
174
- return d && d.IS_NOT_MATCHED_VALUE ? d.value : (0, _uid.getKey)(d, k);
175
- };
176
-
177
- var isSameData = function isSameData(data1, data2, k) {
178
- return getUnMatchKey(data1, k) === getUnMatchKey(data2, k);
179
- };
180
-
181
- var i = preProps.result.length - 1;
182
-
183
- while (i >= 0) {
184
- if (!isSameData(result[i], preProps.result[i], keygen)) {
185
- shouldRest = true;
186
- break;
187
- }
188
-
189
- i -= 1;
190
- }
191
- }
172
+ var shouldRest = !(0, _shallowEqual.default)(preProps.values, values) || (data || []).length !== (preProps.data || []).length;
192
173
 
193
174
  if (shouldRest) {
194
175
  this.resetMore();
195
- } else if (result.length && this.shouldResetMore) {
176
+ } else if ((values || []).length && this.shouldResetMore) {
196
177
  this.shouldResetMore = false;
197
178
  this.state.more = (0, _More.getResetMore)(onFilter, this.resultEl, this.resultEl.querySelectorAll("." + (0, _styles.selectClass)('item')));
198
179
  this.forceUpdate();
@@ -220,20 +201,17 @@ function (_PureComponent) {
220
201
 
221
202
  _proto.isEmptyResult = function isEmptyResult() {
222
203
  var _this$props2 = this.props,
223
- result = _this$props2.result,
204
+ values = _this$props2.values,
224
205
  renderResult = _this$props2.renderResult,
225
- renderUnmatched = _this$props2.renderUnmatched;
226
- if (result.length <= 0) return true;
227
- var res = result.reduce(function (acc, cur) {
206
+ renderUnmatched = _this$props2.renderUnmatched,
207
+ getResultByValue = _this$props2.getResultByValue;
208
+ if (values.length <= 0) return true;
209
+ var hasValue = values.find(function (item) {
210
+ var cur = getResultByValue(item);
228
211
  var r = getResultContent(cur, renderResult, renderUnmatched);
229
-
230
- if (!(0, _is.isEmpty)(r)) {
231
- acc.push(cur);
232
- }
233
-
234
- return acc;
235
- }, []);
236
- return res.length <= 0;
212
+ return !(0, _is.isEmpty)(r);
213
+ });
214
+ return !hasValue;
237
215
  };
238
216
 
239
217
  _proto.handelMore = function handelMore(more) {
@@ -242,21 +220,26 @@ function (_PureComponent) {
242
220
  });
243
221
  };
244
222
 
245
- _proto.renderItem = function renderItem(data, index) {
223
+ _proto.renderItem = function renderItem(value, index) {
246
224
  var _this$props3 = this.props,
247
225
  renderResult = _this$props3.renderResult,
248
226
  renderUnmatched = _this$props3.renderUnmatched,
249
227
  datum = _this$props3.datum,
250
- resultClassName = _this$props3.resultClassName;
251
- var content = getResultContent(data, renderResult, renderUnmatched);
252
- if (content === null) return null;
228
+ resultClassName = _this$props3.resultClassName,
229
+ getResultByValue = _this$props3.getResultByValue;
230
+ if (value === null) return null;
253
231
  var more = this.getCompressedBound();
254
232
  return _react.default.createElement(Item, {
255
233
  key: index,
256
234
  only: more === 1,
257
- content: content,
258
- data: data,
259
- disabled: datum.disabled(data),
235
+ value: value,
236
+ getDataByValue: getResultByValue,
237
+ getContent: function getContent(data) {
238
+ return getResultContent(data, renderResult, renderUnmatched);
239
+ },
240
+ isDisabled: function isDisabled(data) {
241
+ return datum.disabled(data);
242
+ },
260
243
  onClick: this.handleRemove,
261
244
  resultClassName: resultClassName,
262
245
  title: true
@@ -285,10 +268,10 @@ function (_PureComponent) {
285
268
  _proto.renderClear = function renderClear() {
286
269
  var _this$props5 = this.props,
287
270
  onClear = _this$props5.onClear,
288
- result = _this$props5.result,
289
- disabled = _this$props5.disabled;
271
+ disabled = _this$props5.disabled,
272
+ values = _this$props5.values;
290
273
 
291
- if (onClear && result.length > 0 && disabled !== true) {
274
+ if (onClear && values.length && disabled !== true) {
292
275
  /* eslint-disable */
293
276
  return _react.default.createElement("div", {
294
277
  key: "clear",
@@ -368,16 +351,17 @@ function (_PureComponent) {
368
351
  var _this$props8 = this.props,
369
352
  multiple = _this$props8.multiple,
370
353
  compressed = _this$props8.compressed,
371
- result = _this$props8.result,
372
354
  renderResult = _this$props8.renderResult,
373
355
  renderUnmatched = _this$props8.renderUnmatched,
374
356
  onFilter = _this$props8.onFilter,
375
357
  focus = _this$props8.focus,
376
358
  filterText = _this$props8.filterText,
377
- resultClassName = _this$props8.resultClassName;
359
+ resultClassName = _this$props8.resultClassName,
360
+ getResultByValue = _this$props8.getResultByValue;
361
+ var values = this.props.values || [];
378
362
 
379
363
  if (multiple) {
380
- var items = result.map(function (n, i) {
364
+ var items = values.map(function (n, i) {
381
365
  return _this2.renderItem(n, i);
382
366
  }).filter(function (n) {
383
367
  return !(0, _is.isEmpty)(n);
@@ -388,22 +372,24 @@ function (_PureComponent) {
388
372
  }
389
373
 
390
374
  if (focus && onFilter) {
391
- items.push(this.renderInput(filterText, result.length));
375
+ items.push(this.renderInput(filterText, values.length));
392
376
  }
393
377
 
394
378
  return items;
395
379
  }
396
380
 
381
+ var result0 = getResultByValue(values[0]);
382
+
397
383
  if (onFilter) {
398
- return this.renderInput(getResultContent(result[0], renderResult, renderUnmatched));
384
+ return this.renderInput(getResultContent(result0, renderResult, renderUnmatched));
399
385
  }
400
386
 
401
- var v = getResultContent(result[0], renderResult, renderUnmatched);
387
+ var v = getResultContent(result0, renderResult, renderUnmatched);
402
388
  var title = (0, _is.isString)(v) ? v : undefined;
403
389
  return _react.default.createElement("span", {
404
390
  key: "result",
405
391
  title: title,
406
- className: (0, _classnames.default)((0, _styles.selectClass)('ellipsis'), getResultClassName(resultClassName, result[0]))
392
+ className: (0, _classnames.default)((0, _styles.selectClass)('ellipsis'), getResultClassName(resultClassName, result0))
407
393
  }, v);
408
394
  };
409
395
 
@@ -461,12 +447,12 @@ Result.propTypes = {
461
447
  onFilter: _propTypes.default.func,
462
448
  onInputBlur: _propTypes.default.func,
463
449
  onInputFocus: _propTypes.default.func,
464
- result: _propTypes.default.array.isRequired,
465
450
  renderResult: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func]).isRequired,
466
451
  placeholder: _propTypes.default.string,
467
452
  setInputReset: _propTypes.default.func,
468
453
  bindFocusInputFunc: _propTypes.default.func,
469
454
  // collapse: PropTypes.func,
455
+ data: _propTypes.default.array,
470
456
  compressed: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.string]),
471
457
  compressedBound: _propTypes.default.number,
472
458
  trim: _propTypes.default.bool,
@@ -477,8 +463,8 @@ Result.propTypes = {
477
463
  resultClassName: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func]),
478
464
  maxLength: _propTypes.default.number,
479
465
  innerTitle: _propTypes.default.node,
480
- keygen: _propTypes.default.any,
481
- data: _propTypes.default.array,
466
+ values: _propTypes.default.array.isRequired,
467
+ getResultByValue: _propTypes.default.func,
482
468
  convertBr: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func])
483
469
  };
484
470
  var _default = Result;
@@ -643,7 +643,6 @@ function (_PureComponent) {
643
643
  datum = _this$props12.datum,
644
644
  filterText = _this$props12.filterText,
645
645
  onCreate = _this$props12.onCreate,
646
- result = _this$props12.result,
647
646
  compressed = _this$props12.compressed,
648
647
  compressedBound = _this$props12.compressedBound,
649
648
  trim = _this$props12.trim,
@@ -657,7 +656,8 @@ function (_PureComponent) {
657
656
  convertBr = _this$props12.convertBr,
658
657
  data = _this$props12.data,
659
658
  onFilter = _this$props12.onFilter,
660
- treeData = _this$props12.treeData;
659
+ treeData = _this$props12.treeData,
660
+ getResultByValue = _this$props12.getResultByValue;
661
661
  var disabled = this.getDisabledStatus();
662
662
  var className = (0, _styles.selectClass)('inner', size, this.state.focus && 'focus', this.state.position, multiple && 'multiple', disabled === true && (0, _classname.getDirectionClass)('disabled'), !trim && 'pre');
663
663
  return _react.default.createElement("div", {
@@ -680,8 +680,10 @@ function (_PureComponent) {
680
680
  onFilter: onFilter && this.handleFilter,
681
681
  datum: datum,
682
682
  disabled: disabled,
683
- focus: this.state.focus,
684
- result: result,
683
+ focus: this.state.focus // result={result}
684
+ ,
685
+ values: datum.values,
686
+ getResultByValue: getResultByValue,
685
687
  multiple: multiple,
686
688
  placeholder: placeholder,
687
689
  renderResult: this.renderResult,
@@ -44,8 +44,9 @@ var _default = function _default(Origin) {
44
44
  text: ''
45
45
  };
46
46
  _this.handleCreate = _this.handleCreate.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
47
- _this.handleFilter = _this.handleFilter.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
48
- _this.getResultByValues = _this.getResultByValues.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
47
+ _this.handleFilter = _this.handleFilter.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this))); // this.getResultByValues = this.getResultByValues.bind(this)
48
+
49
+ _this.getCachedResult = _this.getCachedResult.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
49
50
  _this.resultCache = new Map();
50
51
  return _this;
51
52
  }
@@ -108,43 +109,50 @@ var _default = function _default(Origin) {
108
109
  return undefined;
109
110
  };
110
111
 
111
- _proto.getResultByValues = function getResultByValues() {
112
- var _this2 = this;
112
+ _proto.getCachedResult = function getCachedResult(value) {
113
+ var noCache = this.props.noCache;
114
+ var res = noCache ? undefined : this.resultCache.get(value);
113
115
 
114
- var _this$props4 = this.props,
115
- datum = _this$props4.datum,
116
- noCache = _this$props4.noCache;
117
- var _datum$values = datum.values,
118
- values = _datum$values === void 0 ? [] : _datum$values;
119
- var result = [];
120
- values.forEach(function (v) {
121
- var res = noCache ? undefined : _this2.resultCache.get(v);
122
-
123
- if (!res) {
124
- var _res;
125
-
126
- res = _this2.getResult(v);
127
- if (res !== undefined && !noCache) _this2.resultCache.set(v, res);else if (res === undefined) res = (_res = {}, _res[_Result.IS_NOT_MATCHED_VALUE] = true, _res.value = v, _res);
128
- }
116
+ if (!res) {
117
+ var _res;
129
118
 
130
- if (res !== undefined) {
131
- result.push(res);
132
- }
133
- });
134
- return result;
135
- };
119
+ res = this.getResult(value);
120
+ if (res !== undefined && !noCache) this.resultCache.set(value, res);else if (res === undefined) res = (_res = {}, _res[_Result.IS_NOT_MATCHED_VALUE] = true, _res.value = value, _res);
121
+ }
122
+
123
+ return res;
124
+ } // getResultByValues() {
125
+ // const { datum, noCache } = this.props
126
+ // const { values = [] } = datum
127
+ //
128
+ // const result = []
129
+ // values.forEach(v => {
130
+ // let res = noCache ? undefined : this.resultCache.get(v)
131
+ // if (!res) {
132
+ // res = this.getResult(v)
133
+ // if (res !== undefined && !noCache) this.resultCache.set(v, res)
134
+ // else if (res === undefined) res = { [IS_NOT_MATCHED_VALUE]: true, value: v }
135
+ // }
136
+ // if (res !== undefined) {
137
+ // result.push(res)
138
+ // }
139
+ // })
140
+ //
141
+ // return result
142
+ // }
143
+ ;
136
144
 
137
145
  _proto.handleFilter = function handleFilter(text, from) {
138
- var _this3 = this;
146
+ var _this2 = this;
139
147
 
140
148
  if (from === void 0) {
141
149
  from = 'edit';
142
150
  }
143
151
 
144
- var _this$props5 = this.props,
145
- filterDelay = _this$props5.filterDelay,
146
- onFilter = _this$props5.onFilter,
147
- onCreate = _this$props5.onCreate;
152
+ var _this$props4 = this.props,
153
+ filterDelay = _this$props4.filterDelay,
154
+ onFilter = _this$props4.onFilter,
155
+ onCreate = _this$props4.onCreate;
148
156
  this.setState({
149
157
  text: text
150
158
  }); // not filter
@@ -176,7 +184,7 @@ var _default = function _default(Origin) {
176
184
  var fn = onFilter(text, from);
177
185
 
178
186
  if (typeof fn === 'function') {
179
- _this3.setState({
187
+ _this2.setState({
180
188
  innerFilter: fn
181
189
  });
182
190
  }
@@ -192,12 +200,12 @@ var _default = function _default(Origin) {
192
200
  };
193
201
 
194
202
  _proto.filterTreeData = function filterTreeData() {
195
- var _this$props6 = this.props,
196
- treeData = _this$props6.treeData,
197
- expanded = _this$props6.expanded,
198
- showHitDescendants = _this$props6.showHitDescendants,
199
- onAdvancedFilter = _this$props6.onAdvancedFilter,
200
- other = (0, _objectWithoutPropertiesLoose2.default)(_this$props6, ["treeData", "expanded", "showHitDescendants", "onAdvancedFilter"]);
203
+ var _this$props5 = this.props,
204
+ treeData = _this$props5.treeData,
205
+ expanded = _this$props5.expanded,
206
+ showHitDescendants = _this$props5.showHitDescendants,
207
+ onAdvancedFilter = _this$props5.onAdvancedFilter,
208
+ other = (0, _objectWithoutPropertiesLoose2.default)(_this$props5, ["treeData", "expanded", "showHitDescendants", "onAdvancedFilter"]);
201
209
  var innerFilter = this.state.innerFilter;
202
210
  var filterExpandedKeys = expanded;
203
211
  var newData = treeData;
@@ -219,10 +227,10 @@ var _default = function _default(Origin) {
219
227
  };
220
228
 
221
229
  _proto.filterData = function filterData() {
222
- var _this$props7 = this.props,
223
- data = _this$props7.data,
224
- hideCreateOption = _this$props7.hideCreateOption,
225
- other = (0, _objectWithoutPropertiesLoose2.default)(_this$props7, ["data", "hideCreateOption"]);
230
+ var _this$props6 = this.props,
231
+ data = _this$props6.data,
232
+ hideCreateOption = _this$props6.hideCreateOption,
233
+ other = (0, _objectWithoutPropertiesLoose2.default)(_this$props6, ["data", "hideCreateOption"]);
226
234
  var _this$state = this.state,
227
235
  innerFilter = _this$state.innerFilter,
228
236
  innerData = _this$state.innerData;
@@ -247,11 +255,11 @@ var _default = function _default(Origin) {
247
255
  };
248
256
 
249
257
  _proto.render = function render() {
250
- var _this$props8 = this.props,
251
- treeData = _this$props8.treeData,
252
- onFilter = _this$props8.onFilter,
253
- onCreate = _this$props8.onCreate,
254
- other = (0, _objectWithoutPropertiesLoose2.default)(_this$props8, ["treeData", "onFilter", "onCreate"]);
258
+ var _this$props7 = this.props,
259
+ treeData = _this$props7.treeData,
260
+ onFilter = _this$props7.onFilter,
261
+ onCreate = _this$props7.onCreate,
262
+ other = (0, _objectWithoutPropertiesLoose2.default)(_this$props7, ["treeData", "onFilter", "onCreate"]);
255
263
  var _this$state2 = this.state,
256
264
  filterText = _this$state2.filterText,
257
265
  innerData = _this$state2.innerData,
@@ -261,7 +269,8 @@ var _default = function _default(Origin) {
261
269
  var props = (0, _objectSpread2.default)({}, other, {
262
270
  filterText: filterText,
263
271
  inputText: text,
264
- result: this.getResultByValues(),
272
+ // result: this.getResultByValues(),
273
+ getResultByValue: this.getCachedResult,
265
274
  inputable: !!onCreate,
266
275
  onCreate: onCreate ? this.handleCreate : undefined,
267
276
  onFilter: filterFn,
package/css/index.d.ts CHANGED
@@ -3,7 +3,7 @@ import * as utils from './utils'
3
3
 
4
4
  declare const __default: {
5
5
  utils: typeof utils,
6
- version: '1.12.12'
6
+ version: '1.12.13-beta.2'
7
7
  }
8
8
 
9
9
  export default __default
package/css/index.js CHANGED
@@ -224,6 +224,6 @@ exports.Upload = _Upload.default;
224
224
  // Created by scripts/src-index.js.
225
225
  var _default = {
226
226
  utils: utils,
227
- version: '1.12.12'
227
+ version: '1.12.13-beta.2'
228
228
  };
229
229
  exports.default = _default;