shineout 3.7.0-beta.37 → 3.7.0-beta.39

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.
@@ -4,8 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+ var _react = require("react");
7
8
  var _base = require("@sheinx/base");
8
9
  var _shineoutStyle = require("@sheinx/shineout-style");
10
+ var _hooks = require("@sheinx/hooks");
9
11
  var _useFieldCommon = _interopRequireDefault(require("../hooks/use-field-common"));
10
12
  var _jsxRuntime = require("react/jsx-runtime");
11
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -28,5 +30,30 @@ var BaseDatePicker = function BaseDatePicker(props) {
28
30
  }, props));
29
31
  };
30
32
  var _default = exports.default = function _default(props) {
31
- return (0, _useFieldCommon.default)(props, BaseDatePicker);
33
+ var _useConfig = (0, _base.useConfig)(),
34
+ locale = _useConfig.locale;
35
+
36
+ // datepicker 默认值需要提格式化前处理,否则内部会根据 format 进行格式化并再次触发 onChange,参考 v1 v2 的 value hoc 行为
37
+ var defaultValue = (0, _react.useMemo)(function () {
38
+ if (props.defaultValue) {
39
+ var options = {
40
+ timeZone: props.timeZone,
41
+ weekStartsOn: Number((0, _base.getLocale)(locale, 'startOfWeek'))
42
+ };
43
+ var type = props.type || 'date';
44
+ var format = (0, _hooks.getFormat)(props.format, type);
45
+ var dateArr = (0, _hooks.convertValueToDateArr)(props.defaultValue, format, options);
46
+ var formattedDefaultValue = (0, _hooks.getFormatValueArr)({
47
+ dateArr: dateArr,
48
+ format: format,
49
+ type: type,
50
+ options: options
51
+ });
52
+ return props.range ? formattedDefaultValue : formattedDefaultValue[0];
53
+ }
54
+ return props.defaultValue;
55
+ }, []);
56
+ return (0, _useFieldCommon.default)(_objectSpread(_objectSpread({}, props), {}, {
57
+ defaultValue: defaultValue
58
+ }), BaseDatePicker);
32
59
  };
package/cjs/index.js CHANGED
@@ -522,5 +522,5 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
522
522
  // 此文件由脚本自动生成,请勿直接修改。
523
523
  // This file was generated automatically by a script. Please do not modify it directly.
524
524
  var _default = exports.default = {
525
- version: '3.7.0-beta.37'
525
+ version: '3.7.0-beta.39'
526
526
  };
package/dist/shineout.js CHANGED
@@ -6976,7 +6976,7 @@ var expand = [/*#__PURE__*/(0,jsx_runtime.jsx)("path", {
6976
6976
  clipRule: "evenodd",
6977
6977
  d: "M19.5 2C20.8807 2 22 3.11929 22 4.5V19.5C22 20.8807 20.8807 22 19.5 22H4.5C3.11929 22 2 20.8807 2 19.5V4.5C2 3.11929 3.11929 2 4.5 2H19.5ZM19.5 4H4.5C4.22386 4 4 4.22386 4 4.5V19.5C4 19.7761 4.22386 20 4.5 20H19.5C19.7761 20 20 19.7761 20 19.5V4.5C20 4.22386 19.7761 4 19.5 4ZM16 11C16.5523 11 17 11.4477 17 12C17 12.5128 16.614 12.9355 16.1166 12.9933L16 13C10.701 13 12.6557 13 8 13C7.44772 13 7 12.5523 7 12C7 11.4872 7.38604 11.0645 7.88338 11.0067L8 11C12.5606 11 10.8111 11 16 11Z"
6978
6978
  }, 0)];
6979
- var pcHelpCircleFill = ['M11 0C13.9562 0 16.7292 1.17289 18.7782 3.22183C20.8271 5.27079 22 8.04381 22 11C22 13.9562 20.8271 16.7292 18.7782 18.7782C16.7292 20.8271 13.9562 22 11 22C8.04381 22 5.27079 20.8271 3.22182 18.7782C1.17289 16.7292 0 13.9562 0 11C0 8.04381 1.17289 5.27079 3.22183 3.22182C5.27079 1.17289 8.04381 0 11 0ZM11 15.3125C10.3097 15.3125 9.75 15.8721 9.75 16.5625C9.75 17.2528 10.3097 17.8125 11 17.8125C11.6903 17.8125 12.25 17.2528 12.25 16.5625C12.25 15.8721 11.6903 15.3125 11 15.3125ZM11 4.31245C8.79086 4.31245 7 6.10332 7 8.31245C7 8.86474 7.44772 9.31245 8 9.31245C8.55229 9.31245 9 8.86474 9 8.31245C9 7.20789 9.89543 6.31245 11 6.31245C12.1046 6.31245 13 7.20789 13 8.31245C13 9.41702 12.1046 10.3125 11 10.3125L10.8834 10.3192C10.386 10.3769 10 10.7996 10 11.3125V13.3125L10.0067 13.4291C10.0645 13.9264 10.4872 14.3125 11 14.3125L11.1166 14.3057C11.614 14.248 12 13.8253 12 13.3125V12.185L12.1553 12.1431C13.8012 11.6474 15 10.1199 15 8.31245C15 6.10332 13.2091 4.31245 11 4.31245Z'];
6979
+ var pcHelpCircleFill = ['M12 1C14.9562 1 17.7292 2.17289 19.7782 4.22183C21.8271 6.27079 23 9.04381 23 12C23 14.9562 21.8271 17.7292 19.7782 19.7782C17.7292 21.8271 14.9562 23 12 23C9.04381 23 6.27079 21.8271 4.22182 19.7782C2.17289 17.7292 1 14.9562 1 12C1 9.04381 2.17289 6.27079 4.22183 4.22182C6.27079 2.17289 9.04381 1 12 1ZM12 16.3125C11.3097 16.3125 10.75 16.8721 10.75 17.5625C10.75 18.2528 11.3097 18.8125 12 18.8125C12.6903 18.8125 13.25 18.2528 13.25 17.5625C13.25 16.8721 12.6903 16.3125 12 16.3125ZM12 5.31245C9.79086 5.31245 8 7.10332 8 9.31245C8 9.86474 8.44772 10.3125 9 10.3125C9.55229 10.3125 10 9.86474 10 9.31245C10 8.20789 10.8954 7.31245 12 7.31245C13.1046 7.31245 14 8.20789 14 9.31245C14 10.417 13.1046 11.3125 12 11.3125L11.8834 11.3192C11.386 11.3769 11 11.7996 11 12.3125V14.3125L11.0067 14.4291C11.0645 14.9264 11.4872 15.3125 12 15.3125L12.1166 15.3057C12.614 15.248 13 14.8253 13 14.3125V13.185L13.1553 13.1431C14.8012 12.6474 16 11.1199 16 9.31245C16 7.10332 14.2091 5.31245 12 5.31245Z'];
6980
6980
  var pcHelpCircleOutline = /*#__PURE__*/(0,jsx_runtime.jsx)("path", {
6981
6981
  fillRule: "evenodd",
6982
6982
  clipRule: "evenodd",
@@ -12227,7 +12227,7 @@ var handleStyle = function handleStyle(style) {
12227
12227
  };
12228
12228
  /* harmony default export */ var jss_style_handleStyle = (handleStyle);
12229
12229
  ;// CONCATENATED MODULE: ../shineout-style/src/version.ts
12230
- /* harmony default export */ var version = ('3.7.0-beta.37');
12230
+ /* harmony default export */ var version = ('3.7.0-beta.39');
12231
12231
  ;// CONCATENATED MODULE: ../shineout-style/src/jss-style/index.tsx
12232
12232
 
12233
12233
 
@@ -14132,7 +14132,7 @@ var modalTokens = {
14132
14132
  modalPanelRadius: 'Radius-default',
14133
14133
  modalPanelFontSize: 'Font-14',
14134
14134
  modalHeaderIconMarginEnd: 'Spacing-8',
14135
- modalHeaderIconMarginTop: 'Spacing-4',
14135
+ modalHeaderIconMarginTop: 'Spacing-3',
14136
14136
  modalHeaderIconSize: 'Size-9',
14137
14137
  modalHeaderCloseMarginXStart: 'Spacing-16',
14138
14138
  modalHeaderCloseSize: 'Size-8',
@@ -36755,7 +36755,7 @@ var Carousel = function Carousel(props) {
36755
36755
  });
36756
36756
  };
36757
36757
  var renderIndicator = function renderIndicator() {
36758
- if (total <= 1 || showIndicator === false) return null;
36758
+ if (total <= 1 && typeof indicatorType !== 'function' || showIndicator === false) return null;
36759
36759
  var content = null;
36760
36760
  if (typeof indicatorType === 'function') {
36761
36761
  content = indicatorType(current, func.moveTo);
@@ -44808,6 +44808,18 @@ var getDefaultMode = function getDefaultMode(type) {
44808
44808
  var mode = getTypeMode(type);
44809
44809
  return [mode, mode];
44810
44810
  };
44811
+ var getFormatValueArr = function getFormatValueArr(opts) {
44812
+ var dateArr = opts.dateArr,
44813
+ format = opts.format,
44814
+ clearWithUndefined = opts.clearWithUndefined,
44815
+ options = opts.options,
44816
+ type = opts.type;
44817
+ var fmt = use_datepicker_format_getFormat(format, type);
44818
+ return dateArr.map(function (item) {
44819
+ if (!item) return clearWithUndefined ? undefined : '';
44820
+ return util.format(item, fmt, options);
44821
+ });
44822
+ };
44811
44823
  var useDatePickerFormat = function useDatePickerFormat(props) {
44812
44824
  var value = props.value,
44813
44825
  onChange = props.onChange,
@@ -47526,6 +47538,8 @@ var DatePicker = function DatePicker(props0) {
47526
47538
 
47527
47539
 
47528
47540
 
47541
+
47542
+
47529
47543
  var date_picker_jssStyle = {
47530
47544
  datePicker: useDatePickerStyle,
47531
47545
  button: useButtonStyle,
@@ -47539,7 +47553,32 @@ var BaseDatePicker = function BaseDatePicker(props) {
47539
47553
  }, props));
47540
47554
  };
47541
47555
  /* harmony default export */ var src_date_picker_date_picker_0 = (function (props) {
47542
- return use_field_common(props, BaseDatePicker);
47556
+ var _useConfig = useConfig(),
47557
+ locale = _useConfig.locale;
47558
+
47559
+ // datepicker 默认值需要提格式化前处理,否则内部会根据 format 进行格式化并再次触发 onChange,参考 v1 v2 的 value hoc 行为
47560
+ var defaultValue = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useMemo)(function () {
47561
+ if (props.defaultValue) {
47562
+ var options = {
47563
+ timeZone: props.timeZone,
47564
+ weekStartsOn: Number(getLocale(locale, 'startOfWeek'))
47565
+ };
47566
+ var type = props.type || 'date';
47567
+ var format = use_datepicker_format_getFormat(props.format, type);
47568
+ var dateArr = convertValueToDateArr(props.defaultValue, format, options);
47569
+ var formattedDefaultValue = getFormatValueArr({
47570
+ dateArr: dateArr,
47571
+ format: format,
47572
+ type: type,
47573
+ options: options
47574
+ });
47575
+ return props.range ? formattedDefaultValue : formattedDefaultValue[0];
47576
+ }
47577
+ return props.defaultValue;
47578
+ }, []);
47579
+ return use_field_common(objectSpread2_default()(objectSpread2_default()({}, props), {}, {
47580
+ defaultValue: defaultValue
47581
+ }), BaseDatePicker);
47543
47582
  });
47544
47583
  ;// CONCATENATED MODULE: ./src/date-picker/index.ts
47545
47584
 
@@ -49995,7 +50034,8 @@ var useForm = function useForm(props) {
49995
50034
  resetTime: 0,
49996
50035
  mounted: false,
49997
50036
  unmounted: false,
49998
- removeLock: false
50037
+ removeLock: false,
50038
+ settingMap: {}
49999
50039
  }),
50000
50040
  context = _React$useRef.current;
50001
50041
  var update = function update(name) {
@@ -50232,6 +50272,8 @@ var useForm = function useForm(props) {
50232
50272
  // upload组件返回的可能是函数: (prev) => [...prev, file]
50233
50273
  var valueOfKey = typeof vals[key] === 'function' ? vals[key](getValue(key)) : vals[key];
50234
50274
  deepSet(draft, key, valueOfKey, deepSetOptions);
50275
+ // 设置 settingMap 用于标记该字段正在被设置值
50276
+ context.settingMap[key] = true;
50235
50277
  });
50236
50278
  values.forEach(function (key) {
50237
50279
  if (option.validate) {
@@ -50242,6 +50284,13 @@ var useForm = function useForm(props) {
50242
50284
  });
50243
50285
  }
50244
50286
  });
50287
+
50288
+ // 设置 settingMap 的值为 false,表示该字段设置值完成
50289
+ setTimeout(function () {
50290
+ values.forEach(function (key) {
50291
+ delete context.settingMap[key];
50292
+ });
50293
+ });
50245
50294
  });
50246
50295
 
50247
50296
  // 获取vals的所有key,包括嵌套对象的key
@@ -50422,11 +50471,18 @@ var useForm = function useForm(props) {
50422
50471
  context.updateMap[n].add(updateFn);
50423
50472
  var shouldTriggerResetChange = context.removeArr.has(n);
50424
50473
  context.removeArr.delete(n);
50425
- var shouldTriggerDefaultChange = df !== undefined && deepGet(context.value, n) === undefined;
50474
+ var currentValue = deepGet(context.value, n);
50475
+ var shouldTriggerDefaultChange = df !== undefined && currentValue === undefined;
50426
50476
  if (shouldTriggerDefaultChange || shouldTriggerResetChange) {
50427
50477
  if (!context.mounted) context.defaultValues[n] = df;
50478
+ var _defaultValue = df;
50479
+
50480
+ // 如果组件是重新 bind ,比如更改了 key 或者通过三元表达式切换了组件但 name 都是相同的情况下,在切换过程中改了 value 的值(比如通过 datum.set),需要阻止 defaultValue 的上位,按照当前的 value 来设置 defaultValue
50481
+ if (shouldTriggerResetChange && context.settingMap[n]) {
50482
+ _defaultValue = currentValue !== undefined ? currentValue : df;
50483
+ }
50428
50484
  onChange(function (v) {
50429
- deepSet(v, n, df, deepSetOptions);
50485
+ deepSet(v, n, _defaultValue, deepSetOptions);
50430
50486
  });
50431
50487
  update(n);
50432
50488
  }
@@ -51493,12 +51549,12 @@ function util_createStyle(text, id) {
51493
51549
  }
51494
51550
  function generateGrid(width, className, responsive) {
51495
51551
  var minWidth = RESPONSIVE[responsive];
51496
- var text = "@media screen and (min-width: ".concat(minWidth, "px) { .").concat(className, "{width: ").concat(width, "%} }");
51552
+ var text = "@media screen and (min-width: ".concat(minWidth, "px) { .").concat(GridClassName, ".").concat(className, "{width: ").concat(width, "%} }");
51497
51553
  util_createStyle(text, className);
51498
51554
  }
51499
51555
  function generateOffset(width, className, responsive) {
51500
51556
  var minWidth = RESPONSIVE[responsive];
51501
- var text = "@media screen and (min-width: ".concat(minWidth, "px) { .").concat(className, "{margin-left: ").concat(width, "%} }");
51557
+ var text = "@media screen and (min-width: ".concat(minWidth, "px) { .").concat(GridClassName, ".").concat(className, "{margin-left: ").concat(width, "%} }");
51502
51558
  util_createStyle(text, className);
51503
51559
  }
51504
51560
  function generate(w, type, res) {
@@ -54045,6 +54101,7 @@ var TreeCheckbox = function TreeCheckbox(props) {
54045
54101
 
54046
54102
 
54047
54103
  var NodeContent = function NodeContent(props) {
54104
+ var _jssStyle$common;
54048
54105
  var jssStyle = props.jssStyle,
54049
54106
  id = props.id,
54050
54107
  virtual = props.virtual,
@@ -54082,7 +54139,7 @@ var NodeContent = function NodeContent(props) {
54082
54139
  var disabled = isDisabled(id);
54083
54140
  bindUpdate(id, forceUpdate);
54084
54141
  var contentStyle = (jssStyle === null || jssStyle === void 0 ? void 0 : jssStyle.tree()) || {};
54085
- var commonStyles = (jssStyle === null || jssStyle === void 0 ? void 0 : jssStyle.common()) || {};
54142
+ var commonStyles = (jssStyle === null || jssStyle === void 0 || (_jssStyle$common = jssStyle.common) === null || _jssStyle$common === void 0 ? void 0 : _jssStyle$common.call(jssStyle)) || {};
54086
54143
  var rootClass = classnames_default()(contentStyle.contentWrapper, defineProperty_default()(defineProperty_default()(defineProperty_default()({}, contentStyle.childnode, data[childrenKey] && data[childrenKey].length > 0), contentStyle.inlineContent, inlineNode), contentStyle.contentDisabled, disabled));
54087
54144
  var contentClass = classnames_default()(contentStyle.content, isString(contentClassProp) && contentClassProp, isFunc(contentClassProp) && contentClassProp(data));
54088
54145
  var hasExpandIcons = expandIcons !== undefined;
@@ -62848,33 +62905,17 @@ var FilterSelect = function FilterSelect(props) {
62848
62905
  var config = filter.config;
62849
62906
  var currentFilter = (_props$filterInfo = props.filterInfo) === null || _props$filterInfo === void 0 ? void 0 : _props$filterInfo.get(props.columnKey);
62850
62907
  var treeOptions = (config === null || config === void 0 ? void 0 : config.data) || [];
62851
- var onReset = function onReset() {
62852
- setTempValue(undefined);
62853
- props.onFilterChange(props.columnKey, undefined);
62854
- setPopoverVisible(false);
62855
- };
62856
- var onConfirm = function onConfirm() {
62857
- props.onFilterChange(props.columnKey, tempValue);
62858
- setPopoverVisible(false);
62859
- };
62860
- var onVisibleChange = function onVisibleChange(visible) {
62861
- // 关闭popover时就提交筛选条件,包括click away触发的
62862
- if (!visible) {
62863
- props.onFilterChange(props.columnKey, tempValue);
62864
- }
62865
- setPopoverVisible(visible);
62866
- };
62867
62908
  var treeKeygen = function treeKeygen(d) {
62868
62909
  return d.value;
62869
62910
  };
62870
62911
  var treeProps = config !== null && config !== void 0 && config.multiple ? {
62871
- value: currentFilter === null || currentFilter === void 0 ? void 0 : currentFilter.value,
62912
+ value: tempValue,
62872
62913
  onChange: function onChange(v) {
62873
62914
  setTempValue(v);
62874
62915
  },
62875
62916
  renderItem: (config === null || config === void 0 ? void 0 : config.renderItem) || 'label'
62876
62917
  } : {
62877
- active: currentFilter === null || currentFilter === void 0 ? void 0 : currentFilter.value,
62918
+ active: tempValue,
62878
62919
  setActive: function setActive(v) {
62879
62920
  setTempValue(v);
62880
62921
  },
@@ -62907,7 +62948,24 @@ var FilterSelect = function FilterSelect(props) {
62907
62948
  onFilter = _useFilter.onFilter,
62908
62949
  inputText = _useFilter.inputText,
62909
62950
  setInputText = _useFilter.setInputText;
62910
- var displayData = filterData || rawData;
62951
+ var onReset = function onReset() {
62952
+ setTempValue(undefined);
62953
+ setInputText('');
62954
+ props.onFilterChange(props.columnKey, undefined);
62955
+ setPopoverVisible(false);
62956
+ };
62957
+ var onConfirm = function onConfirm() {
62958
+ props.onFilterChange(props.columnKey, tempValue);
62959
+ setPopoverVisible(false);
62960
+ };
62961
+ var onVisibleChange = function onVisibleChange(visible) {
62962
+ // 关闭popover时就提交筛选条件,包括click away触发的
62963
+ if (!visible) {
62964
+ props.onFilterChange(props.columnKey, tempValue);
62965
+ }
62966
+ setPopoverVisible(visible);
62967
+ };
62968
+ var displayData = inputText ? filterData || rawData : rawData;
62911
62969
  return /*#__PURE__*/(0,jsx_runtime.jsxs)(base_src_button_button, {
62912
62970
  jssStyle: props.jssStyle,
62913
62971
  shape: "circle",
@@ -71217,7 +71275,7 @@ var upload_interface = __webpack_require__(8821);
71217
71275
 
71218
71276
 
71219
71277
  /* harmony default export */ var src_0 = ({
71220
- version: '3.7.0-beta.37'
71278
+ version: '3.7.0-beta.39'
71221
71279
  });
71222
71280
  }();
71223
71281
  /******/ return __webpack_exports__;