@nutui/nutui-react 2.0.0 → 2.0.1-beta.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 (50) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/esm/Card/style/style.css +1 -1
  3. package/dist/esm/CircleProgress.js +1 -1
  4. package/dist/esm/DatePicker.js +31 -25
  5. package/dist/esm/Ellipsis/style/style.css +1 -1
  6. package/dist/esm/Form.js +1 -1
  7. package/dist/esm/InputNumber.js +6 -6
  8. package/dist/esm/SearchBar/style/style.css +1 -1
  9. package/dist/esm/SearchBar.js +2 -2
  10. package/dist/esm/Tag/style/style.css +1 -1
  11. package/dist/esm/Uploader.js +1 -0
  12. package/dist/esm/formitem2.js +2 -1
  13. package/dist/esm/tabs2.js +2 -8
  14. package/dist/esm/types/src/packages/animatingnumbers/animatingnumbers.d.ts +1 -3
  15. package/dist/esm/types/src/packages/animatingnumbers/animatingnumbers.taro.d.ts +1 -3
  16. package/dist/esm/types/src/packages/circleprogress/circleprogress.d.ts +1 -1
  17. package/dist/esm/types/src/packages/circleprogress/circleprogress.taro.d.ts +1 -1
  18. package/dist/esm/types/src/packages/configprovider/types.d.ts +1 -1
  19. package/dist/esm/types/src/packages/datepicker/datepicker.d.ts +2 -2
  20. package/dist/esm/types/src/packages/datepicker/datepicker.taro.d.ts +2 -2
  21. package/dist/esm/types/src/packages/nutui.react.taro.d.ts +1 -1
  22. package/dist/esm/types/src/packages/nutui.taro.react.build.d.ts +1 -1
  23. package/dist/esm/types/src/packages/tag/tag.d.ts +1 -1
  24. package/dist/esm/types/src/packages/tag/tag.taro.d.ts +1 -1
  25. package/dist/esm/types/src/packages/uploader/upload.d.ts +6 -6
  26. package/dist/esm/types/src/packages/uploader/uploader.taro.d.ts +2 -2
  27. package/dist/esm/use-props-value.js +21 -8
  28. package/dist/locales/base.js +1 -1
  29. package/dist/locales/en-US.js +1 -1
  30. package/dist/locales/id-ID.js +1 -1
  31. package/dist/locales/tr-TR.js +1 -1
  32. package/dist/locales/zh-CN.js +1 -1
  33. package/dist/locales/zh-TW.js +1 -1
  34. package/dist/locales/zh-UG.js +1 -1
  35. package/dist/nutui.react.es.js +66 -50
  36. package/dist/nutui.react.umd.js +66 -50
  37. package/dist/packages/searchbar/searchbar.scss +2 -0
  38. package/dist/packages/tag/tag.scss +5 -0
  39. package/dist/style.css +1 -1
  40. package/dist/style.mjs +1 -1
  41. package/dist/styles/theme-dark.scss +1 -0
  42. package/dist/styles/theme-default.scss +1 -0
  43. package/dist/styles/variables.scss +6 -6
  44. package/dist/types/packages/animatingnumbers/animatingnumbers.d.ts +1 -3
  45. package/dist/types/packages/circleprogress/circleprogress.d.ts +1 -1
  46. package/dist/types/packages/configprovider/types.d.ts +1 -1
  47. package/dist/types/packages/datepicker/datepicker.d.ts +2 -2
  48. package/dist/types/packages/tag/tag.d.ts +1 -1
  49. package/dist/types/packages/uploader/upload.d.ts +6 -6
  50. package/package.json +2 -3
@@ -47,10 +47,10 @@ export interface UploaderProps extends BasicComponent {
47
47
  autoUpload: boolean;
48
48
  multiple: boolean;
49
49
  timeout: number;
50
- data: object;
50
+ data: any;
51
51
  method: string;
52
52
  xhrState: number | string;
53
- headers: object;
53
+ headers: any;
54
54
  preview: boolean;
55
55
  deletable: boolean;
56
56
  className: string;
@@ -1,18 +1,31 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
- import { useState } from "react";
2
+ import React__default, { useRef, useCallback } from "react";
3
+ function useForceUpdate() {
4
+ var _React__default$useSt = React__default.useState(), _React__default$useSt2 = _slicedToArray(_React__default$useSt, 2), updateState = _React__default$useSt2[1];
5
+ return React__default.useCallback(function() {
6
+ return updateState({});
7
+ }, []);
8
+ }
3
9
  function usePropsValue(_ref) {
4
10
  var value = _ref.value, defaultValue = _ref.defaultValue, finalValue = _ref.finalValue, _ref$onChange = _ref.onChange, onChange = _ref$onChange === void 0 ? function(value2) {
5
11
  } : _ref$onChange;
6
- var _useState = useState(defaultValue !== void 0 ? defaultValue : finalValue), _useState2 = _slicedToArray(_useState, 2), uncontrolled = _useState2[0], setUncontrolled = _useState2[1];
7
- var handleUncontrolledChange = function handleUncontrolledChange2(val) {
8
- setUncontrolled(val);
9
- onChange === null || onChange === void 0 ? void 0 : onChange(val);
10
- };
12
+ var forceUpdate = useForceUpdate();
13
+ var dfValue = defaultValue !== void 0 ? defaultValue : finalValue;
14
+ var stateRef = useRef(value !== void 0 ? value : dfValue);
11
15
  if (value !== void 0) {
12
- return [value, onChange];
16
+ stateRef.current = value;
13
17
  }
14
- return [uncontrolled, handleUncontrolledChange];
18
+ var setState = useCallback(function(v) {
19
+ var prevState = stateRef.current;
20
+ stateRef.current = v;
21
+ if (prevState !== stateRef.current) {
22
+ forceUpdate();
23
+ }
24
+ onChange === null || onChange === void 0 ? void 0 : onChange(v);
25
+ }, [value, onChange]);
26
+ return [stateRef.current, setState];
15
27
  }
16
28
  export {
29
+ useForceUpdate as a,
17
30
  usePropsValue as u
18
31
  };
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @nutui/nutui-react v2.0.0 Fri Jun 30 2023 14:28:35 GMT+0800 (China Standard Time)
2
+ * @nutui/nutui-react v2.0.1 Wed Jul 05 2023 14:15:29 GMT+0800 (China Standard Time)
3
3
  * (c) 2023 @jdf2e.
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @nutui/nutui-react v2.0.0 Fri Jun 30 2023 14:28:35 GMT+0800 (China Standard Time)
2
+ * @nutui/nutui-react v2.0.1 Wed Jul 05 2023 14:15:29 GMT+0800 (China Standard Time)
3
3
  * (c) 2023 @jdf2e.
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @nutui/nutui-react v2.0.0 Fri Jun 30 2023 14:28:35 GMT+0800 (China Standard Time)
2
+ * @nutui/nutui-react v2.0.1 Wed Jul 05 2023 14:15:29 GMT+0800 (China Standard Time)
3
3
  * (c) 2023 @jdf2e.
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @nutui/nutui-react v2.0.0 Fri Jun 30 2023 14:28:35 GMT+0800 (China Standard Time)
2
+ * @nutui/nutui-react v2.0.1 Wed Jul 05 2023 14:15:29 GMT+0800 (China Standard Time)
3
3
  * (c) 2023 @jdf2e.
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @nutui/nutui-react v2.0.0 Fri Jun 30 2023 14:28:35 GMT+0800 (China Standard Time)
2
+ * @nutui/nutui-react v2.0.1 Wed Jul 05 2023 14:15:29 GMT+0800 (China Standard Time)
3
3
  * (c) 2023 @jdf2e.
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @nutui/nutui-react v2.0.0 Fri Jun 30 2023 14:28:35 GMT+0800 (China Standard Time)
2
+ * @nutui/nutui-react v2.0.1 Wed Jul 05 2023 14:15:29 GMT+0800 (China Standard Time)
3
3
  * (c) 2023 @jdf2e.
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @nutui/nutui-react v2.0.0 Fri Jun 30 2023 14:28:35 GMT+0800 (China Standard Time)
2
+ * @nutui/nutui-react v2.0.1 Wed Jul 05 2023 14:15:29 GMT+0800 (China Standard Time)
3
3
  * (c) 2023 @jdf2e.
4
4
  * Released under the MIT License.
5
5
  */
@@ -6,7 +6,7 @@ var __publicField = (obj, key, value) => {
6
6
  };
7
7
  var _a;
8
8
  /*!
9
- * @nutui/nutui-react v2.0.0 Fri Jun 30 2023 14:27:42 GMT+0800 (China Standard Time)
9
+ * @nutui/nutui-react v2.0.1 Wed Jul 05 2023 14:14:34 GMT+0800 (China Standard Time)
10
10
  * (c) 2023 @jdf2e.
11
11
  * Released under the MIT License.
12
12
  */
@@ -11382,6 +11382,10 @@ const SubSideNavBar = (props) => {
11382
11382
  const iconClass = open ? "arrow-icon arrow-down" : "arrow-icon arrow-up";
11383
11383
  return /* @__PURE__ */ React__default.createElement("div", { className: divClass, ref: listRef, onClick: clickFn, ...rest }, /* @__PURE__ */ React__default.createElement("div", { className: `${classPrefix2}__title ${classPrefix2}-border-bt` }, title, " ", /* @__PURE__ */ React__default.createElement("i", { className: iconClass })), /* @__PURE__ */ React__default.createElement("div", { className: `${classPrefix2}__content` }, children));
11384
11384
  };
11385
+ function useForceUpdate() {
11386
+ const [, updateState] = React__default.useState();
11387
+ return React__default.useCallback(() => updateState({}), []);
11388
+ }
11385
11389
  function usePropsValue({
11386
11390
  value,
11387
11391
  defaultValue,
@@ -11389,17 +11393,24 @@ function usePropsValue({
11389
11393
  onChange = (value2) => {
11390
11394
  }
11391
11395
  }) {
11392
- const [uncontrolled, setUncontrolled] = useState(
11393
- defaultValue !== void 0 ? defaultValue : finalValue
11394
- );
11395
- const handleUncontrolledChange = (val) => {
11396
- setUncontrolled(val);
11397
- onChange == null ? void 0 : onChange(val);
11398
- };
11396
+ const forceUpdate = useForceUpdate();
11397
+ const dfValue = defaultValue !== void 0 ? defaultValue : finalValue;
11398
+ const stateRef = useRef(value !== void 0 ? value : dfValue);
11399
11399
  if (value !== void 0) {
11400
- return [value, onChange];
11400
+ stateRef.current = value;
11401
11401
  }
11402
- return [uncontrolled, handleUncontrolledChange];
11402
+ const setState = useCallback(
11403
+ (v) => {
11404
+ const prevState = stateRef.current;
11405
+ stateRef.current = v;
11406
+ if (prevState !== stateRef.current) {
11407
+ forceUpdate();
11408
+ }
11409
+ onChange == null ? void 0 : onChange(v);
11410
+ },
11411
+ [value, onChange]
11412
+ );
11413
+ return [stateRef.current, setState];
11403
11414
  }
11404
11415
  const defaultProps$17 = {
11405
11416
  ...ComponentDefaults,
@@ -11596,10 +11607,6 @@ function requestAniFrame() {
11596
11607
  };
11597
11608
  }
11598
11609
  const requestAniFrame$1 = requestAniFrame();
11599
- function useForceUpdate() {
11600
- const [, updateState] = React__default.useState();
11601
- return React__default.useCallback(() => updateState({}), []);
11602
- }
11603
11610
  const defaultProps$13 = {
11604
11611
  ...ComponentDefaults,
11605
11612
  tabStyle: {},
@@ -14286,12 +14293,12 @@ const DatePicker = (props) => {
14286
14293
  }
14287
14294
  let timestmp = Math.max(cvalue.getTime(), startDate.getTime());
14288
14295
  timestmp = Math.min(timestmp, endDate.getTime());
14289
- return new Date(timestmp);
14296
+ return timestmp;
14290
14297
  };
14291
14298
  const [currentDate, setCurrentDate] = usePropsValue({
14292
14299
  value: props.value && formatValue(props.value),
14293
14300
  defaultValue: formatValue(props.defaultValue || null),
14294
- finalValue: null,
14301
+ finalValue: 0,
14295
14302
  onChange: (val) => {
14296
14303
  }
14297
14304
  });
@@ -14334,7 +14341,7 @@ const DatePicker = (props) => {
14334
14341
  };
14335
14342
  };
14336
14343
  const ranges = () => {
14337
- const curDate = currentDate;
14344
+ const curDate = new Date(currentDate);
14338
14345
  if (!curDate)
14339
14346
  return [];
14340
14347
  const { maxYear, maxDate, maxMonth, maxHour, maxMinute, maxSeconds } = getBoundary("max", curDate);
@@ -14391,19 +14398,21 @@ const DatePicker = (props) => {
14391
14398
  return result;
14392
14399
  };
14393
14400
  const updateChooseValueCustmer = (selectedOptions, selectedValue, index) => {
14401
+ var _a2;
14402
+ const rangeType = type4.toLocaleLowerCase();
14394
14403
  if (["date", "datetime", "datehour", "month-day", "year-month"].includes(
14395
- type4.toLocaleLowerCase()
14404
+ rangeType
14396
14405
  )) {
14397
14406
  const formatDate = [];
14398
14407
  selectedValue.forEach((item) => {
14399
14408
  formatDate.push(item);
14400
14409
  });
14401
- if (type4.toLocaleLowerCase() === "month-day" && formatDate.length < 3) {
14410
+ if (rangeType === "month-day" && formatDate.length < 3) {
14402
14411
  formatDate.unshift(
14403
14412
  new Date(defaultValue || startDate || endDate).getFullYear()
14404
14413
  );
14405
14414
  }
14406
- if (type4.toLocaleLowerCase() === "year-month" && formatDate.length < 3) {
14415
+ if (rangeType === "year-month" && formatDate.length < 3) {
14407
14416
  formatDate.push(
14408
14417
  new Date(defaultValue || startDate || endDate).getDate()
14409
14418
  );
@@ -14415,9 +14424,9 @@ const DatePicker = (props) => {
14415
14424
  getMonthEndDay(Number(formatDate[0]), Number(formatDate[1]))
14416
14425
  );
14417
14426
  let date4 = null;
14418
- if (type4.toLocaleLowerCase() === "date" || type4.toLocaleLowerCase() === "month-day" || type4.toLocaleLowerCase() === "year-month") {
14427
+ if (rangeType === "date" || rangeType === "month-day" || rangeType === "year-month") {
14419
14428
  date4 = new Date(year, month, day);
14420
- } else if (type4.toLocaleLowerCase() === "datetime") {
14429
+ } else if (rangeType === "datetime") {
14421
14430
  date4 = new Date(
14422
14431
  year,
14423
14432
  month,
@@ -14425,10 +14434,10 @@ const DatePicker = (props) => {
14425
14434
  Number(formatDate[3]),
14426
14435
  Number(formatDate[4])
14427
14436
  );
14428
- } else if (type4.toLocaleLowerCase() === "datehour") {
14437
+ } else if (rangeType === "datehour") {
14429
14438
  date4 = new Date(year, month, day, Number(formatDate[3]));
14430
14439
  }
14431
- const isEqual2 = (currentDate == null ? void 0 : currentDate.getTime()) === (date4 == null ? void 0 : date4.getTime());
14440
+ const isEqual2 = ((_a2 = new Date(currentDate)) == null ? void 0 : _a2.getTime()) === (date4 == null ? void 0 : date4.getTime());
14432
14441
  date4 && isDate(date4) && !isEqual2 && setCurrentDate(formatValue(date4));
14433
14442
  }
14434
14443
  props.onChange && props.onChange(selectedOptions, selectedValue, index);
@@ -14478,23 +14487,28 @@ const DatePicker = (props) => {
14478
14487
  return arr;
14479
14488
  };
14480
14489
  const getDateIndex = (type22) => {
14490
+ const date4 = new Date(currentDate);
14481
14491
  if (!currentDate)
14482
14492
  return 0;
14483
- let d = 0;
14484
14493
  if (type22 === "year") {
14485
- d = currentDate.getFullYear();
14486
- } else if (type22 === "month") {
14487
- d = currentDate.getMonth() + 1;
14488
- } else if (type22 === "day") {
14489
- d = currentDate.getDate();
14490
- } else if (type22 === "hour") {
14491
- d = currentDate.getHours();
14492
- } else if (type22 === "minute") {
14493
- d = currentDate.getMinutes();
14494
- } else if (type22 === "seconds") {
14495
- d = currentDate.getSeconds();
14496
- }
14497
- return d;
14494
+ return date4.getFullYear();
14495
+ }
14496
+ if (type22 === "month") {
14497
+ return date4.getMonth() + 1;
14498
+ }
14499
+ if (type22 === "day") {
14500
+ return date4.getDate();
14501
+ }
14502
+ if (type22 === "hour") {
14503
+ return date4.getHours();
14504
+ }
14505
+ if (type22 === "minute") {
14506
+ return date4.getMinutes();
14507
+ }
14508
+ if (type22 === "seconds") {
14509
+ return date4.getSeconds();
14510
+ }
14511
+ return 0;
14498
14512
  };
14499
14513
  const columns = () => {
14500
14514
  const val = ranges().map((res, columnIndex) => {
@@ -14512,7 +14526,7 @@ const DatePicker = (props) => {
14512
14526
  if (currentDate) {
14513
14527
  setOptions(columns());
14514
14528
  }
14515
- }, []);
14529
+ }, [currentDate]);
14516
14530
  return /* @__PURE__ */ React__default.createElement("div", { className: `nut-datepicker ${className}`, style, ...rest }, options2.length && /* @__PURE__ */ React__default.createElement(
14517
14531
  Picker$1,
14518
14532
  {
@@ -15601,7 +15615,7 @@ class FormStore {
15601
15615
  __publicField(this, "registerField", (field) => {
15602
15616
  this.fieldEntities.push(field);
15603
15617
  return () => {
15604
- this.fieldEntities = this.fieldEntities.filter((item) => item != field);
15618
+ this.fieldEntities = this.fieldEntities.filter((item) => item !== field);
15605
15619
  if (this.store) {
15606
15620
  delete this.store[field.props.name];
15607
15621
  }
@@ -15759,9 +15773,10 @@ class FormItem extends React__default.Component {
15759
15773
  if ((_a2 = children == null ? void 0 : children.props) == null ? void 0 : _a2.defaultValue) {
15760
15774
  console.warn("通过 initialValue 设置初始值");
15761
15775
  }
15776
+ const fieldValue = getFieldValue(name);
15762
15777
  const controlled = {
15763
15778
  ...children.props,
15764
- [this.props.valuePropName || "value"]: getFieldValue(name) || this.props.initialValue,
15779
+ [this.props.valuePropName || "value"]: fieldValue !== void 0 ? fieldValue : this.props.initialValue,
15765
15780
  [this.props.trigger || "onChange"]: (...args) => {
15766
15781
  const originOnChange = children.props[this.props.trigger || "onChange"];
15767
15782
  if (originOnChange) {
@@ -16201,14 +16216,14 @@ const InputNumber = (props) => {
16201
16216
  };
16202
16217
  const addAllow = (value2 = _checked) => {
16203
16218
  if (formatter) {
16204
- const numValue = String(value2).replace(/[^0-9|\.]/gi, "");
16219
+ const numValue = String(value2).replace(/[^0-9|.]/gi, "");
16205
16220
  return Number(numValue) < Number(max) && !disabled;
16206
16221
  }
16207
16222
  return Number(value2) < Number(max) && !disabled;
16208
16223
  };
16209
16224
  const reduceAllow = (value2 = _checked) => {
16210
16225
  if (formatter) {
16211
- const numValue = String(value2).replace(/[^0-9|\.]/gi, "");
16226
+ const numValue = String(value2).replace(/[^0-9|.]/gi, "");
16212
16227
  return Number(numValue) > Number(min) && !disabled;
16213
16228
  }
16214
16229
  return Number(value2) > Number(min) && !disabled;
@@ -16239,7 +16254,7 @@ const InputNumber = (props) => {
16239
16254
  onMinus && onMinus(e);
16240
16255
  if (reduceAllow()) {
16241
16256
  if (formatter) {
16242
- const numValue = String(_checked).replace(/[^0-9|\.]/gi, "");
16257
+ const numValue = String(_checked).replace(/[^0-9|.]/gi, "");
16243
16258
  const outputValue = Number(numValue) - Number(step);
16244
16259
  inputRef.current = formatter(outputValue);
16245
16260
  emitChange(outputValue, e);
@@ -16255,7 +16270,7 @@ const InputNumber = (props) => {
16255
16270
  onPlus && onPlus(e);
16256
16271
  if (addAllow()) {
16257
16272
  if (formatter) {
16258
- const numValue = String(_checked).replace(/[^0-9|\.]/gi, "");
16273
+ const numValue = String(_checked).replace(/[^0-9|.]/gi, "");
16259
16274
  const outputValue = Number(numValue) + Number(step);
16260
16275
  inputRef.current = formatter(outputValue);
16261
16276
  emitChange(outputValue, e);
@@ -16281,7 +16296,7 @@ const InputNumber = (props) => {
16281
16296
  const changeFormatValue = (e) => {
16282
16297
  const input = e.target.value;
16283
16298
  const numReg = new RegExp("^[0-9]*$");
16284
- const numValue = input.replace(/[^0-9|\.]/gi, "");
16299
+ const numValue = input.replace(/[^0-9|.]/gi, "");
16285
16300
  if (formatter) {
16286
16301
  if (!numReg.test(input[0]) && numValue) {
16287
16302
  setChecked(formatter(numValue));
@@ -16300,7 +16315,7 @@ const InputNumber = (props) => {
16300
16315
  const burFormatValue = (e) => {
16301
16316
  const input = e.target.value;
16302
16317
  const numReg = new RegExp("^[0-9]*$");
16303
- const numValue = input.replace(/[^0-9|\.]/gi, "");
16318
+ const numValue = input.replace(/[^0-9|.]/gi, "");
16304
16319
  if (formatter) {
16305
16320
  if (formatter(numValue) === input) {
16306
16321
  emitChange(numValue, e);
@@ -17555,7 +17570,7 @@ const SearchBar = (props) => {
17555
17570
  disabled,
17556
17571
  readOnly,
17557
17572
  maxLength,
17558
- onKeyPress: onKeypress,
17573
+ onKeyDown: onKeydown,
17559
17574
  onChange: (e) => change(e),
17560
17575
  onFocus: (e) => focus(e),
17561
17576
  onBlur: (e) => blur(e),
@@ -17604,7 +17619,7 @@ const SearchBar = (props) => {
17604
17619
  onClear && onClear(event);
17605
17620
  forceFocus();
17606
17621
  };
17607
- const onKeypress = (e) => {
17622
+ const onKeydown = (e) => {
17608
17623
  if (e.key === "Enter") {
17609
17624
  const event = e.nativeEvent;
17610
17625
  if (typeof event.cancelable !== "boolean" || event.cancelable) {
@@ -18344,6 +18359,7 @@ const InternalUploader = (props, ref) => {
18344
18359
  try {
18345
18360
  uploadOption.sourceFile = fileItem.formData.get(name);
18346
18361
  } catch (error) {
18362
+ console.warn(error);
18347
18363
  }
18348
18364
  uploadOption.onStart = (option) => {
18349
18365
  clearUploadQueue(index);
@@ -21350,7 +21366,7 @@ const CircleProgress = (props) => {
21350
21366
  (a2, b) => parseFloat(a2) - parseFloat(b)
21351
21367
  );
21352
21368
  const stopArr = [];
21353
- colorArr.map((item) => {
21369
+ colorArr.forEach((item) => {
21354
21370
  const obj = {
21355
21371
  key: "",
21356
21372
  value: ""