shineout 3.0.7 → 3.0.9

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.
package/cjs/index.js CHANGED
@@ -476,5 +476,5 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
476
476
  // 此文件由脚本自动生成,请勿直接修改。
477
477
  // This file was generated automatically by a script. Please do not modify it directly.
478
478
  var _default = exports.default = {
479
- version: '3.0.7'
479
+ version: '3.0.9'
480
480
  };
package/dist/shineout.js CHANGED
@@ -12019,7 +12019,7 @@ var handleStyle = function handleStyle(style) {
12019
12019
  };
12020
12020
  /* harmony default export */ var jss_style_handleStyle = (handleStyle);
12021
12021
  ;// CONCATENATED MODULE: ../shineout-style/src/version.ts
12022
- /* harmony default export */ var version = ('3.0.7');
12022
+ /* harmony default export */ var version = ('3.0.9');
12023
12023
  ;// CONCATENATED MODULE: ../shineout-style/src/jss-style/index.tsx
12024
12024
 
12025
12025
 
@@ -33706,7 +33706,8 @@ var useTree = function useTree(props) {
33706
33706
  disabledProps = props.disabled,
33707
33707
  unmatch = props.unmatch,
33708
33708
  isControlled = props.isControlled,
33709
- onExpandProp = props.onExpand;
33709
+ onExpandProp = props.onExpand,
33710
+ keepCache = props.keepCache;
33710
33711
  var _useInputAble = useInputAble({
33711
33712
  value: expandedProp,
33712
33713
  defaultValue: defaultExpanded,
@@ -33725,7 +33726,8 @@ var useTree = function useTree(props) {
33725
33726
  disabled: false,
33726
33727
  value: undefined,
33727
33728
  data: [],
33728
- cachedValue: []
33729
+ cachedValue: [],
33730
+ valueDataCache: new Map()
33729
33731
  }),
33730
33732
  context = _useRef.current;
33731
33733
 
@@ -33818,8 +33820,18 @@ var useTree = function useTree(props) {
33818
33820
  return checked;
33819
33821
  };
33820
33822
  var getDataById = function getDataById(id) {
33823
+ if (keepCache) {
33824
+ if (!context.valueDataCache) {
33825
+ context.valueDataCache = new Map();
33826
+ }
33827
+ var cache = context.valueDataCache.get(id);
33828
+ if (cache !== undefined) return cache;
33829
+ }
33821
33830
  var oroginData = context.dataMap.get(id);
33822
- if (oroginData) return oroginData;
33831
+ if (oroginData) {
33832
+ if (keepCache) context.valueDataCache.set(id, oroginData);
33833
+ return oroginData;
33834
+ }
33823
33835
  if (!unmatch) return null;
33824
33836
  return {
33825
33837
  IS_NOT_MATCHED_VALUE: true,
@@ -35148,14 +35160,18 @@ var result_Result = function Result(props) {
35148
35160
  getDataByValues = props.getDataByValues,
35149
35161
  checkUnMatched = props.checkUnMatched,
35150
35162
  onRemove = props.onRemove,
35151
- onResultItemClick = props.onResultItemClick;
35163
+ onResultItemClick = props.onResultItemClick,
35164
+ data = props.data;
35152
35165
  var value = [null, undefined, ''].includes(valueProp) ? [] : multiple ? valueProp : [valueProp];
35153
35166
  var _useState = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(-1),
35154
35167
  _useState2 = slicedToArray_default()(_useState, 2),
35155
35168
  more = _useState2[0],
35156
35169
  setMore = _useState2[1];
35170
+ var _useState3 = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(false),
35171
+ _useState4 = slicedToArray_default()(_useState3, 2),
35172
+ shouldResetMore = _useState4[0],
35173
+ setShouldResetMore = _useState4[1];
35157
35174
  var resultRef = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)(null);
35158
- var shouldResetMore = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)(false);
35159
35175
  var prevMore = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)(more);
35160
35176
  var showInput = allowOnFilter;
35161
35177
  var mounted = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)(false);
@@ -35227,6 +35243,7 @@ var result_Result = function Result(props) {
35227
35243
  if (result_isUnMatchedData(item)) {
35228
35244
  if (result_isFunc(keygen)) {
35229
35245
  key = keygen(item.value, index);
35246
+ if (key === undefined) key = index;
35230
35247
  } else {
35231
35248
  key = item.value;
35232
35249
  }
@@ -35370,7 +35387,9 @@ var result_Result = function Result(props) {
35370
35387
  };
35371
35388
  var handleResetMore = function handleResetMore() {
35372
35389
  if (!compressed) return;
35373
- shouldResetMore.current = true;
35390
+ if (isCompressedBound()) return;
35391
+ setMore(-1);
35392
+ setShouldResetMore(true);
35374
35393
  };
35375
35394
  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
35376
35395
  if (!focus && mounted.current) {
@@ -35382,35 +35401,27 @@ var result_Result = function Result(props) {
35382
35401
  mounted.current = true;
35383
35402
  }, [focus]);
35384
35403
  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
35385
- if (!focus) return;
35386
- if (!resultRef.current) return;
35387
- if (!compressed) return;
35388
- if (isCompressedBound()) return;
35389
35404
  handleResetMore();
35390
- }, [valueProp, focus]);
35405
+ }, [valueProp, data]);
35391
35406
  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
35392
- if (!compressed) return;
35393
- if (!resultRef.current) return;
35394
- if (more === -1) {
35407
+ if (shouldResetMore && more === -1 && compressed && resultRef.current && (props.value || [].length)) {
35395
35408
  var tagClassName = ".".concat(styles.tag.split(' ')[0]);
35396
- if (shouldResetMore.current && result_isArray(value) && (value || []).length) {
35397
- shouldResetMore.current = false;
35409
+ if (shouldResetMore && result_isArray(value) && (value || []).length) {
35398
35410
  var newMore = getResetMore(showInput, resultRef.current, resultRef.current.querySelectorAll(tagClassName));
35399
-
35400
- // 下次触发折叠逻辑的时候,将多余的 tag 隐藏,避免视图闪断
35401
- if (newMore !== prevMore.current && prevMore.current === -1 && newMore > prevMore.current) {
35402
- var tags = resultRef.current.querySelectorAll(tagClassName);
35403
- tags.forEach(function (tag, index) {
35404
- if (index >= newMore) tag.setAttribute('style', 'opacity: 0');
35405
- });
35406
- }
35407
35411
  prevMore.current = newMore;
35408
35412
  setMore(newMore);
35413
+ setShouldResetMore(false);
35414
+ } else {
35415
+ setShouldResetMore(false);
35409
35416
  }
35417
+ } else {
35418
+ setShouldResetMore(false);
35410
35419
  }
35411
- }, [valueProp, more]);
35420
+ }, [shouldResetMore]);
35412
35421
  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
35413
35422
  if (!resultRef.current) return;
35423
+ if (!compressed) return;
35424
+ if (isCompressedBound()) return;
35414
35425
  var cancelObserver = addResizeObserver(resultRef.current, handleResetMore, {
35415
35426
  direction: 'x'
35416
35427
  });
@@ -36485,6 +36496,7 @@ var validate = function validate(value, formData, rules, p) {
36485
36496
 
36486
36497
 
36487
36498
 
36499
+
36488
36500
  var getValue = function getValue(name, formValue) {
36489
36501
  if (!name) return undefined;
36490
36502
  if (isArray(name)) {
@@ -36539,6 +36551,9 @@ function useFormControl(props) {
36539
36551
  _React$useState4 = slicedToArray_default()(_React$useState3, 2),
36540
36552
  valueState = _React$useState4[0],
36541
36553
  setValueState = _React$useState4[1];
36554
+ var latestInfo = use_latest_obj({
36555
+ valueState: valueState
36556
+ });
36542
36557
  if (name && formFunc) {
36543
36558
  inForm = true;
36544
36559
  value = valueState;
@@ -36556,8 +36571,9 @@ function useFormControl(props) {
36556
36571
  if (error !== errorState) {
36557
36572
  setErrorState(error);
36558
36573
  }
36559
- if (!shallowEqual(value, valueState)) {
36574
+ if (!shallowEqual(value, latestInfo.valueState)) {
36560
36575
  setValueState(value);
36576
+ latestInfo.valueState = value;
36561
36577
  }
36562
36578
  });
36563
36579
  var validateFiled = use_persist_fn(function (name, v, formV) {
@@ -36646,9 +36662,11 @@ function useFormControl(props) {
36646
36662
  if (isArray(name)) {
36647
36663
  name.forEach(function (n) {
36648
36664
  controlFunc.unbind(n, reserveAble);
36665
+ updateError(n, undefined);
36649
36666
  });
36650
36667
  } else {
36651
36668
  controlFunc.unbind(name, reserveAble);
36669
+ updateError(name, undefined);
36652
36670
  }
36653
36671
  }
36654
36672
  };
@@ -36833,7 +36851,8 @@ var useListSelectMultiple = function useListSelectMultiple(props) {
36833
36851
  valueMap: new Map(),
36834
36852
  lastData: [],
36835
36853
  dataMap: new Map(),
36836
- flatDataCache: new Map()
36854
+ flatDataCache: new Map(),
36855
+ valueDataCache: new Map()
36837
36856
  }),
36838
36857
  context = _React$useRef.current;
36839
36858
  var disabledCheck = use_persist_fn(function (data) {
@@ -36983,11 +37002,22 @@ var useListSelectMultiple = function useListSelectMultiple(props) {
36983
37002
  var info = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
36984
37003
  var map = getDataMap(info.childrenKey);
36985
37004
  var result = [];
37005
+ if (props.keepCache && !context.valueDataCache) {
37006
+ context.valueDataCache = new Map();
37007
+ }
36986
37008
  if (!props.prediction) {
36987
37009
  if (!values || !values.length) return [];
36988
37010
  for (var i = 0; i < values.length; i++) {
37011
+ if (props.keepCache) {
37012
+ var _item = context.valueDataCache.get(values[i]);
37013
+ if (_item !== undefined) {
37014
+ result.push(_item);
37015
+ continue;
37016
+ }
37017
+ }
36989
37018
  var item = map.get(values[i]);
36990
37019
  if (item) {
37020
+ if (props.keepCache) context.valueDataCache.set(values[i], item);
36991
37021
  result.push(item);
36992
37022
  } else {
36993
37023
  result.push({
@@ -37001,9 +37031,9 @@ var useListSelectMultiple = function useListSelectMultiple(props) {
37001
37031
  var raws = Array.from(map.values());
37002
37032
  outer: for (var _i = 0; _i < values.length; _i++) {
37003
37033
  for (var j = 0; j < raws.length; j++) {
37004
- var _item = raws[j];
37005
- if (props.prediction(values[_i], _item)) {
37006
- result.push(_item);
37034
+ var _item2 = raws[j];
37035
+ if (props.prediction(values[_i], _item2)) {
37036
+ result.push(_item2);
37007
37037
  raws.splice(j, 1);
37008
37038
  continue outer;
37009
37039
  }
@@ -38717,7 +38747,7 @@ var useDatePickerFormat = function useDatePickerFormat(props) {
38717
38747
  quick: quick
38718
38748
  });
38719
38749
  });
38720
- var isDisabledDate = function isDisabledDate(date, position) {
38750
+ var isDisabledDate = usePersistFn(function (date, position) {
38721
38751
  var mode = getTypeMode(type);
38722
38752
  var disabled = position === 'end' ? context.modeDisabledEnd[mode] : context.modeDisabledStart[mode];
38723
38753
  var isDisabled = disabled ? disabled(date) : false;
@@ -38726,7 +38756,7 @@ var useDatePickerFormat = function useDatePickerFormat(props) {
38726
38756
  isDisabled = disabledTime ? disabledTime(date) : false;
38727
38757
  }
38728
38758
  return isDisabled;
38729
- };
38759
+ });
38730
38760
  var getFormatValueArr = function getFormatValueArr(dateArr, fmt) {
38731
38761
  return dateArr.map(function (item) {
38732
38762
  if (!item) return props.clearWithUndefined ? undefined : '';
@@ -38864,7 +38894,8 @@ var useDatePickerFormat = function useDatePickerFormat(props) {
38864
38894
  handleClear: handleClear,
38865
38895
  handleInputChange: handleInputChange,
38866
38896
  registerModeDisabled: registerModeDisabled,
38867
- setCurrentArrWithParams: setCurrentArrWithParams
38897
+ setCurrentArrWithParams: setCurrentArrWithParams,
38898
+ isDisabledDate: isDisabledDate
38868
38899
  });
38869
38900
  return {
38870
38901
  resultArr: resultArr,
@@ -40585,7 +40616,8 @@ var Picker = function Picker(props) {
40585
40616
  currentArr = props.currentArr,
40586
40617
  dateArr = props.dateArr,
40587
40618
  options = props.options,
40588
- jssStyle = props.jssStyle;
40619
+ jssStyle = props.jssStyle,
40620
+ isDisabledDate = props.isDisabledDate;
40589
40621
  var styles = jssStyle === null || jssStyle === void 0 || (_jssStyle$datePicker = jssStyle.datePicker) === null || _jssStyle$datePicker === void 0 ? void 0 : _jssStyle$datePicker.call(jssStyle);
40590
40622
  var _useDatePickerRange = use_datepicker_range({
40591
40623
  type: props.type,
@@ -40669,10 +40701,10 @@ var Picker = function Picker(props) {
40669
40701
  onDoubleClick: function onDoubleClick(item, type) {
40670
40702
  // 双击同时设置开始和结束日期
40671
40703
  if (props.range && props.type === 'datetime') {
40672
- if (position === 'start') {
40704
+ if (position === 'start' && !isDisabledDate(item, 'end')) {
40673
40705
  func.setCurrentEnd(item, type);
40674
40706
  func.setDateEnd(item, true);
40675
- } else {
40707
+ } else if (!isDisabledDate(item, 'start')) {
40676
40708
  func.setCurrentStart(item, type);
40677
40709
  func.setDateStart(item, true);
40678
40710
  }
@@ -40951,6 +40983,7 @@ var DatePicker = function DatePicker(props0) {
40951
40983
  minuteStep: props.minuteStep,
40952
40984
  secondStep: props.secondStep,
40953
40985
  registerModeDisabled: func.registerModeDisabled,
40986
+ isDisabledDate: func.isDisabledDate,
40954
40987
  children: props.children
40955
40988
  })
40956
40989
  })
@@ -46283,7 +46316,8 @@ var useSelect = function useSelect(props) {
46283
46316
  prediction = props.prediction,
46284
46317
  valueProp = props.value,
46285
46318
  onChangeProp = props.onChange,
46286
- filterSameChange = props.filterSameChange;
46319
+ filterSameChange = props.filterSameChange,
46320
+ noCache = props.noCache;
46287
46321
  var _useInputAble = useInputAble({
46288
46322
  value: valueProp,
46289
46323
  control: control,
@@ -46302,7 +46336,8 @@ var useSelect = function useSelect(props) {
46302
46336
  multiple: multiple,
46303
46337
  disabled: disabled,
46304
46338
  onChange: onChange,
46305
- prediction: prediction
46339
+ prediction: prediction,
46340
+ keepCache: !noCache
46306
46341
  });
46307
46342
  return {
46308
46343
  value: value,
@@ -47281,7 +47316,7 @@ var Root = function Root(props) {
47281
47316
 
47282
47317
 
47283
47318
 
47284
- var tree_excluded = ["jssStyle", "line", "childrenKey", "data", "value", "mode", "keygen", "expanded", "expandIcons", "iconClass", "leafClass", "nodeClass", "contentClass", "renderItem", "defaultValue", "dataUpdate", "childrenClass", "defaultExpandAll", "defaultExpanded", "parentClickExpand", "doubleClickExpand", "dragImageSelector", "dragImageStyle", "dragSibling", "unmatch", "dragHoverExpand", "active", "disabled", "inlineNode", "highlight", "className", "onClick", "loader", "getDatum", "onDrop", "onExpand", "onChange", "onDragEnd", "onDragLeave", "onDragOver", "onDragStart"];
47319
+ var tree_excluded = ["jssStyle", "line", "childrenKey", "data", "value", "mode", "keygen", "expanded", "expandIcons", "iconClass", "leafClass", "nodeClass", "contentClass", "renderItem", "defaultValue", "dataUpdate", "childrenClass", "defaultExpandAll", "defaultExpanded", "parentClickExpand", "doubleClickExpand", "dragImageSelector", "dragImageStyle", "dragSibling", "unmatch", "dragHoverExpand", "active", "disabled", "inlineNode", "highlight", "className", "onClick", "loader", "getDatum", "onDrop", "onExpand", "onChange", "onDragEnd", "onDragLeave", "onDragOver", "onDragStart", "keepCache"];
47285
47320
 
47286
47321
 
47287
47322
 
@@ -47335,6 +47370,7 @@ var Tree = function Tree(props) {
47335
47370
  onDragLeave = props.onDragLeave,
47336
47371
  onDragOver = props.onDragOver,
47337
47372
  onDragStart = props.onDragStart,
47373
+ keepCache = props.keepCache,
47338
47374
  rest = objectWithoutProperties_default()(props, tree_excluded);
47339
47375
  var prevData = usePrevious(data);
47340
47376
  var _useTree = use_tree({
@@ -47352,7 +47388,8 @@ var Tree = function Tree(props) {
47352
47388
  defaultExpanded: defaultExpanded,
47353
47389
  childrenKey: childrenKey,
47354
47390
  keygen: keygen,
47355
- onExpand: onExpandProp
47391
+ onExpand: onExpandProp,
47392
+ keepCache: keepCache
47356
47393
  }),
47357
47394
  datum = _useTree.datum,
47358
47395
  expanded = _useTree.expanded,
@@ -47998,9 +48035,10 @@ function Select(props0) {
47998
48035
  onFocus = props.onFocus,
47999
48036
  onCollapseProp = props.onCollapse,
48000
48037
  onEnterExpand = props.onEnterExpand,
48001
- filterSameChange = props.filterSameChange;
48038
+ filterSameChange = props.filterSameChange,
48039
+ noCache = props.noCache;
48002
48040
  var hasFilter = isFunc(props.onAdvancedFilter || onFilterProp);
48003
- var showInput = hasFilter || isFunc(onCreateProp);
48041
+ var showInput = hasFilter || isFunc(onCreateProp) || onCreateProp === true;
48004
48042
  var styles = jssStyle === null || jssStyle === void 0 || (_jssStyle$select = jssStyle.select) === null || _jssStyle$select === void 0 ? void 0 : _jssStyle$select.call(jssStyle);
48005
48043
  var rootStyle = Object.assign({
48006
48044
  width: width
@@ -48115,7 +48153,8 @@ function Select(props0) {
48115
48153
  prediction: prediction,
48116
48154
  beforeChange: beforeChange,
48117
48155
  onChange: handleSelectChange,
48118
- filterSameChange: filterSameChange
48156
+ filterSameChange: filterSameChange,
48157
+ noCache: noCache
48119
48158
  }),
48120
48159
  datum = _useSelect.datum,
48121
48160
  value = _useSelect.value;
@@ -57591,8 +57630,8 @@ var TreeSelect = function TreeSelect(props0) {
57591
57630
  getDatum: bindTreeDatum,
57592
57631
  renderItem: renderItem
57593
57632
  }, treeProps), {}, {
57633
+ keepCache: !props.noCache,
57594
57634
  line: line,
57595
- datum: datum.current,
57596
57635
  mode: mode,
57597
57636
  data: tiledData,
57598
57637
  keygen: keygen,
@@ -61229,7 +61268,7 @@ var upload_interface = __webpack_require__(4412);
61229
61268
 
61230
61269
 
61231
61270
  /* harmony default export */ var src_0 = ({
61232
- version: '3.0.7'
61271
+ version: '3.0.9'
61233
61272
  });
61234
61273
  }();
61235
61274
  /******/ return __webpack_exports__;