@nutui/nutui-react 2.6.14 → 2.6.15

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/README.md CHANGED
@@ -1,4 +1,3 @@
1
-
2
1
  <p align="center">
3
2
  <img alt="logo" src="https://img11.360buyimg.com/imagetools/jfs/t1/211965/25/7152/22022/61b16785E433119bb/aa41d7a9f7e823f3.png" width="150" style="margin-bottom: 10px;">
4
3
  </p>
@@ -36,27 +35,26 @@
36
35
 
37
36
  ---
38
37
 
39
- > Nut[nʌt]: the one Squirrel Scrat pursues resolutely for a lifetime and will never let go even if it causes a catastrophe from the animated film ***Ice Age***.
38
+ > Nut[nʌt]: the one Squirrel Scrat pursues resolutely for a lifetime and will never let go even if it causes a catastrophe from the animated film **_Ice Age_**.
40
39
 
41
40
  [简体中文](./README_ZH.md) | English
42
41
 
43
42
  ## Features
44
43
 
45
- * 🚀 70+ High Quality Components
46
- * 📖 Based on JD APP 11.0 Visual Specifications
47
- * 🍭 Support Tree Shaking
48
- * 📖 Extensive Documentation and Demos
49
- * 💪 Written in TypeScript
50
- * 💪 Support SSR (Experimental)
51
- * 🍭 Support Custom Themes
52
- * 🍭 90%+ Unit Test Coverage
53
- * 📖 Provide Sketch Design Resources
54
-
55
-
44
+ - 🚀 70+ High Quality Components
45
+ - 📖 Based on JD APP 11.0 Visual Specifications
46
+ - 🍭 Support Tree Shaking
47
+ - 📖 Extensive Documentation and Demos
48
+ - 💪 Written in TypeScript
49
+ - 💪 Support SSR (Experimental)
50
+ - 🍭 Support Custom Themes
51
+ - 🍭 90%+ Unit Test Coverage
52
+ - 📖 Provide Sketch Design Resources
56
53
 
57
54
  ## Running locally
58
55
 
59
56
  ### running with H5
57
+
60
58
  ```sh
61
59
  # Clone repository
62
60
  git clone https://github.com/jdf2e/nutui-react.git
@@ -72,7 +70,9 @@ pnpm run dev
72
70
 
73
71
  # visit in browser: http:http://localhost:3000 (you don't have to open it manually if you've run it in the browser again)
74
72
  ```
73
+
75
74
  ### running with mini-program
75
+
76
76
  ```sh
77
77
  # Clone repository
78
78
  git clone https://github.com/jdf2e/nutui-react.git
@@ -96,12 +96,11 @@ pnpm run dev:taro:jd
96
96
 
97
97
  > If you are using AMD environment or build tools such as Webpack, Vite, etc., we recommend using the `es` version. If it is a non-module environment (such as direct reference through the `<script>` tag), it is recommended to use the `umd` compressed version.
98
98
 
99
- * es **nutui.es.js**
100
-
101
- * umd **nutui.umd.js**
99
+ - es **nutui.es.js**
102
100
 
101
+ - umd **nutui.umd.js**
103
102
 
104
- ## Links
103
+ ## Links
105
104
 
106
105
  <ul>
107
106
  <li>
@@ -126,33 +125,30 @@ pnpm run dev:taro:jd
126
125
  </li>
127
126
  </ul>
128
127
 
129
-
130
128
  ## Communication
131
129
 
132
130
  | Version | WeChat Group | JD Dongdong Group |
133
- | --- | --- |--- |
131
+ | --- | --- | --- |
134
132
  | [NutUI React](https://github.com/jdf2e/nutui-react/issues) | <img src="https://storage.360buyimg.com/imgtools/17c67beff6-4acf07c0-609c-11ed-a6ef-69df15b605e4.png" width="100" /> Reply 「NutUI-React」 after following | 1025679314 |
135
133
  | [NutUI x Taro](https://github.com/jdf2e/nutui/issues) | <img src="https://camo.githubusercontent.com/db4276b4ee4b443158195e943e9e678cb4d2afb7580f70d4d817ef0a90413aec/687474703a2f2f73746f726167652e333630627579696d672e636f6d2f7461726f2d6a642d636f6d2f7374617469632f636f6e746163745f7461726f5f6e757475695f71722e706e67" width="100" />Reply 「NutUI-React」 after following | 1022545110 |
136
134
 
137
-
138
135
  ## Join Us
139
136
 
140
137
  #### NutUI Community
141
138
 
142
- [*Welcome To NutUI-React Community*](https://github.com/jdf2e/nutui-react/discussions/348)
139
+ [_Welcome To NutUI-React Community_](https://github.com/jdf2e/nutui-react/discussions/348)
143
140
 
144
141
  #### Contribute to NutUI
145
142
 
146
143
  There are some choices of contributing to NutUI as follows, solving issues, fixing bugs, adding new components, i18n, UI customization, platform and cross-end adaptation, etc.
147
144
 
148
- You are very welcome to contribute code to NutUI. Before your pull requests, please read [*NutUI Developer Contributing Guide*](https://github.com/jdf2e/nutui-react/discussions/348)。
149
-
145
+ You are very welcome to contribute code to NutUI. Before your pull requests, please read [_NutUI Developer Contributing Guide_](https://github.com/jdf2e/nutui-react/discussions/348)。
150
146
 
151
147
  ## Issue & Discussion
152
148
 
153
149
  [Report issues to NutUI](https://nutui.jd.com/nutui-issue-helper/?repo=jdf2e/nutui-react&lang=zh-cn)
154
150
 
155
- > It is highly recommended to read [*How To Ask Questions The Smart Way*](https://github.com/ryanhanwu/, [*How To Ask Questions Of GitHub Community*](https://github.com/seajs/seajs/issues/545) and [*How to Report Bugs Effectively*](https://www.chiark.greenend.org.uk/~sgtatham/bugs.html), then you can get understanding and help more easily.
151
+ > It is highly recommended to read [*How To Ask Questions The Smart Way*](https://github.com/ryanhanwu/, [_How To Ask Questions Of GitHub Community_](https://github.com/seajs/seajs/issues/545) and [_How to Report Bugs Effectively_](https://www.chiark.greenend.org.uk/~sgtatham/bugs.html), then you can get understanding and help more easily.
156
152
 
157
153
  [NutUI Discussion](https://github.com/jdf2e/nutui-react/discussions)
158
154
 
@@ -162,13 +158,11 @@ If you have any ideas, questions or suggestions, you can share your opinions her
162
158
 
163
159
  Thanks to all the following [developers](https://github.com/jdf2e/nutui-react/graphs/contributors)。 who have contributed code to NutUI.
164
160
 
165
-
166
161
  <a href="https://github.com/jdf2e/nutui-react/graphs/contributors">
167
162
  <img src="https://contrib.rocks/image?repo=jdf2e/nutui-react" alt="contributors"/>
168
163
  </a>
169
164
 
170
-
171
- ## Stargazers
165
+ ## Stargazers
172
166
 
173
167
  [![Stargazers repo roster for @jdf2e/nutui-react](https://reporoster.com/stars/jdf2e/nutui-react)](https://github.com/jdf2e/nutui-react/stargazers)
174
168
 
@@ -184,7 +178,6 @@ Thanks to all the following [developers](https://github.com/jdf2e/nutui-react/gr
184
178
 
185
179
  NutUI follows [Angular Style Commit Message Conventions](https://gist.github.com/stephenparish/9941e89d80e2bc58a153). The up-to-date release notes are available on [Release](https://github.com/jdf2e/nutui-react/releases)
186
180
 
187
-
188
181
  ## Open Source License
189
182
 
190
183
  This project is based on **MIT** protocol
package/dist/esm/Audio.js CHANGED
@@ -27,16 +27,16 @@ const Audio = (props) => {
27
27
  percent: 0,
28
28
  duration: "00:00:00",
29
29
  second: 0,
30
- hanMuted: props.muted,
31
- playing: props.autoPlay,
30
+ hanMuted: muted,
31
+ playing: autoPlay,
32
32
  handPlaying: false
33
33
  });
34
34
  const classPrefix = "nut-audio";
35
35
  const handleEnded = (e) => {
36
- if (props.loop) {
36
+ if (loop) {
37
37
  console.warn(locale.audio.tips || "onPlayEnd事件在loop=false时才会触发");
38
38
  } else {
39
- props.onEnd && props.onEnd(e);
39
+ onEnd === null || onEnd === void 0 ? void 0 : onEnd(e);
40
40
  }
41
41
  };
42
42
  function watch() {
@@ -75,25 +75,25 @@ const Audio = (props) => {
75
75
  if (statusRef.current.currentTime > 0 && AudioRef.current) {
76
76
  statusRef.current.currentTime--;
77
77
  AudioRef.current.currentTime = statusRef.current.currentTime;
78
- props.onBack && props.onBack(AudioRef.current);
78
+ onBack === null || onBack === void 0 ? void 0 : onBack(AudioRef.current);
79
79
  }
80
80
  };
81
81
  const handleForward = () => {
82
82
  if (AudioRef.current) {
83
83
  statusRef.current.currentTime++;
84
84
  AudioRef.current.currentTime = statusRef.current.currentTime;
85
- props.onForward && props.onForward(AudioRef.current);
85
+ onForward === null || onForward === void 0 ? void 0 : onForward(AudioRef.current);
86
86
  }
87
87
  };
88
88
  const handleMute = () => {
89
89
  if (AudioRef.current) {
90
90
  AudioRef.current.muted = !AudioRef.current.muted;
91
- props.onMute && props.onMute(AudioRef.current);
91
+ onMute === null || onMute === void 0 ? void 0 : onMute(AudioRef.current);
92
92
  }
93
93
  };
94
94
  const handlePause = (e) => {
95
95
  setPlaying(false);
96
- props.onPause && props.onPause(e);
96
+ onPause === null || onPause === void 0 ? void 0 : onPause(e);
97
97
  };
98
98
  const formatSeconds = (value) => {
99
99
  if (!value) {
@@ -151,12 +151,12 @@ const Audio = (props) => {
151
151
  };
152
152
  const handleCanplay = (e) => {
153
153
  setIsCanPlay(true);
154
- if (props.autoPlay && !playing) {
154
+ if (autoPlay && !playing) {
155
155
  AudioRef && AudioRef.current && AudioRef.current.play();
156
156
  }
157
157
  if (AudioRef.current) {
158
158
  statusRef.current.second = AudioRef.current.duration || 0;
159
- props.onCanPlay && props.onCanPlay(e);
159
+ onCanPlay === null || onCanPlay === void 0 ? void 0 : onCanPlay(e);
160
160
  }
161
161
  };
162
162
  const onTimeupdate = (e) => {
@@ -178,7 +178,6 @@ const Audio = (props) => {
178
178
  )
179
179
  );
180
180
  };
181
- Audio.defaultProps = defaultProps;
182
181
  Audio.displayName = "NutAudio";
183
182
  export {
184
183
  Audio as default
@@ -307,8 +307,10 @@ const CalendarItem = React__default.forwardRef((props, ref) => {
307
307
  };
308
308
  useEffect(() => {
309
309
  setCurrentDate(resetDefaultValue() || []);
310
- popup && resetRender();
311
310
  }, [defaultValue]);
311
+ useEffect(() => {
312
+ popup && resetRender();
313
+ }, [currentDate]);
312
314
  const scrollToDate = (date) => {
313
315
  if (Utils.compareDate(date, propStartDate)) {
314
316
  date = propStartDate;
@@ -17,7 +17,7 @@ const defaultProps = {
17
17
  };
18
18
  const classPrefix = "nut-checkboxgroup";
19
19
  const CheckboxGroup = React__default.forwardRef((props, ref) => {
20
- const _a = Object.assign(Object.assign({}, defaultProps), props), { children, className, disabled, list, onChange, value, defaultValue, max, min, onLimit, labelPosition, direction, options } = _a, rest = __rest(_a, ["children", "className", "disabled", "list", "onChange", "value", "defaultValue", "max", "min", "onLimit", "labelPosition", "direction", "options"]);
20
+ const _a = Object.assign(Object.assign({}, defaultProps), props), { children, className, disabled, list, value, defaultValue, max, min, labelPosition, direction, options, onChange, onLimit } = _a, rest = __rest(_a, ["children", "className", "disabled", "list", "value", "defaultValue", "max", "min", "labelPosition", "direction", "options", "onChange", "onLimit"]);
21
21
  useImperativeHandle(ref, () => ({
22
22
  toggle(state) {
23
23
  if (state === false) {
@@ -42,8 +42,8 @@ const CheckboxGroup = React__default.forwardRef((props, ref) => {
42
42
  }
43
43
  }));
44
44
  const [_value, setValue] = usePropsValue({
45
- value: props.value,
46
- defaultValue: props.defaultValue,
45
+ value,
46
+ defaultValue,
47
47
  finalValue: [],
48
48
  onChange
49
49
  });
@@ -80,12 +80,11 @@ const CheckboxGroup = React__default.forwardRef((props, ref) => {
80
80
  }
81
81
  } },
82
82
  React__default.createElement("div", Object.assign({ className: classNames(classPrefix, {
83
- [`nut-checkboxgroup-${props.direction}`]: props.direction,
83
+ [`nut-checkboxgroup-${direction}`]: direction,
84
84
  [`nut-checkboxgroup-list`]: list
85
85
  }, className) }, rest), (options === null || options === void 0 ? void 0 : options.length) ? renderOptions() : children)
86
86
  );
87
87
  });
88
- CheckboxGroup.defaultProps = defaultProps;
89
88
  CheckboxGroup.displayName = "NutCheckboxGroup";
90
89
  export {
91
90
  CheckboxGroup as default
@@ -131,7 +131,7 @@ const DatePicker = (props) => {
131
131
  if (!isEqual) {
132
132
  setSelectedDate(formatValue(newDate));
133
133
  }
134
- props.onChange && props.onChange(selectedOptions, [
134
+ onChange === null || onChange === void 0 ? void 0 : onChange(selectedOptions, [
135
135
  String(newDate.getFullYear()),
136
136
  String(newDate.getMonth() + 1),
137
137
  String(newDate.getDate())
@@ -202,8 +202,8 @@ const DatePicker = (props) => {
202
202
  }
203
203
  pickerValue[columnIndex] = (_a2 = arr[index]) === null || _a2 === void 0 ? void 0 : _a2.value;
204
204
  setPickerValue([...pickerValue]);
205
- if (props.filter && props.filter(type2, arr)) {
206
- return props.filter(type2, arr);
205
+ if (filter === null || filter === void 0 ? void 0 : filter(type2, arr)) {
206
+ return filter === null || filter === void 0 ? void 0 : filter(type2, arr);
207
207
  }
208
208
  return arr;
209
209
  };
@@ -242,7 +242,6 @@ const DatePicker = (props) => {
242
242
  }, [selectedDate, startDate, endDate]);
243
243
  return React__default.createElement("div", Object.assign({ className: `nut-datepicker ${className}`, style }, rest), pickerOptions.length && React__default.createElement(Picker__default, Object.assign({}, pickerProps, { title, visible, options: pickerOptions, onClose, onCancel, value: pickerValue, onConfirm: (options, value) => onConfirm && onConfirm(options, value), onChange: (options, value, index) => handlePickerChange(options, value, index), threeDimensional })));
244
244
  };
245
- DatePicker.defaultProps = defaultProps;
246
245
  DatePicker.displayName = "NutDatePicker";
247
246
  export {
248
247
  DatePicker as default
@@ -122,7 +122,7 @@ const Content = (props) => {
122
122
  );
123
123
  };
124
124
  Content.displayName = "NutContent";
125
- const defaultDialogProps = Object.assign(Object.assign(Object.assign({}, ComponentDefaults), { overlay: true, overlayStyle: {}, overlayClassName: "", onCancel: () => {
125
+ Object.assign(Object.assign(Object.assign({}, ComponentDefaults), { overlay: true, overlayStyle: {}, overlayClassName: "", onCancel: () => {
126
126
  }, onClose: () => {
127
127
  }, onOverlayClick: (e) => true }), defaultOverlayProps);
128
128
  const DialogWrap = (props) => {
@@ -145,7 +145,6 @@ const DialogWrap = (props) => {
145
145
  )
146
146
  );
147
147
  };
148
- DialogWrap.defaultProps = defaultDialogProps;
149
148
  DialogWrap.displayName = "NutDialogWrap";
150
149
  const defaultProps = Object.assign(Object.assign({}, ComponentDefaults), { confirmText: "", cancelText: "", overlay: true, closeOnOverlayClick: true, hideConfirmButton: false, hideCancelButton: false, disableConfirmButton: false, footerDirection: "horizontal", lockScroll: true, closeIconPosition: "bottom", closeIcon: false, beforeCancel: () => true, beforeClose: () => true });
151
150
  const BaseDialog = (props, ref) => {
package/dist/esm/Menu.js CHANGED
@@ -81,10 +81,10 @@ const Menu = (props) => {
81
81
  };
82
82
  return React__default.createElement(
83
83
  "div",
84
- { className: classNames("nut-menu-title ", {
84
+ { className: classNames("nut-menu-title", `nut-menu-title-${index}`, {
85
85
  active: showMenuItem[index],
86
86
  disabled
87
- }, className), style: { color: showMenuItem[index] ? activeColor : "" }, key: index, onClick: (e) => {
87
+ }), style: { color: showMenuItem[index] ? activeColor : "" }, key: index, onClick: (e) => {
88
88
  e.stopPropagation();
89
89
  if ((!options || !options.length) && !child.props.children)
90
90
  return;
@@ -190,7 +190,6 @@ const PullToRefresh = (p) => {
190
190
  React__default.createElement("div", { className: `${classPrefix}-content` }, props.children)
191
191
  );
192
192
  };
193
- PullToRefresh.defaultProps = defaultProps;
194
193
  PullToRefresh.displayName = "NutPullToRefresh";
195
194
  export {
196
195
  PullToRefresh as default
@@ -44,7 +44,6 @@ const RadioGroup = React__default.forwardRef((props, ref) => {
44
44
  }, className) }, rest), (options === null || options === void 0 ? void 0 : options.length) ? renderOptionsChildren() : children)
45
45
  );
46
46
  });
47
- RadioGroup.defaultProps = defaultProps;
48
47
  RadioGroup.displayName = "NutRadioGroup";
49
48
  export {
50
49
  RadioGroup as default
@@ -45,14 +45,15 @@ const Sticky = (props) => {
45
45
  useEffect(() => {
46
46
  if (position === "top")
47
47
  return;
48
- const containerEle = container === null || container === void 0 ? void 0 : container.current;
49
- if (!rootRef.current && !containerEle)
48
+ const containerEle = container && container.current;
49
+ const rootEle = rootRef.current;
50
+ const stickyEle = stickyRef.current;
51
+ if (!rootEle && !containerEle)
50
52
  return;
51
- const rootRect = getRect(rootRef.current);
53
+ const rootRect = getRect(rootEle);
52
54
  const containerRect = getRect(containerEle);
53
55
  const clientHeight = document.documentElement.clientHeight;
54
- const stCurrent = stickyRef.current;
55
- const stickyRect = getRect(stCurrent);
56
+ const stickyRect = getRect(stickyEle);
56
57
  let fixed = clientHeight - threshold < rootRect.bottom;
57
58
  if (containerEle) {
58
59
  fixed = containerRect.bottom > clientHeight - threshold - stickyRect.height && clientHeight - threshold - stickyRect.height > containerRect.top;
@@ -64,17 +65,16 @@ const Sticky = (props) => {
64
65
  setIsFixed(fixed);
65
66
  }, [position, container, threshold]);
66
67
  const handleScroll = useCallback(() => {
67
- const containerEle = container === null || container === void 0 ? void 0 : container.current;
68
- if (!rootRef.current && !containerEle)
68
+ const containerEle = container && container.current;
69
+ const rootEle = rootRef.current;
70
+ const stickyEle = stickyRef.current;
71
+ if (!rootEle && !containerEle)
69
72
  return;
70
- const rootRect = getRect(rootRef.current);
71
- const stCurrent = stickyRef.current;
72
- const stickyRect = getRect(stCurrent);
73
+ const rootRect = getRect(rootEle);
74
+ const stickyRect = getRect(stickyEle);
73
75
  const containerRect = getRect(containerEle);
74
76
  if (rootRect.height) {
75
- setRootStyle((prev) => {
76
- return Object.assign(Object.assign({}, prev), { height: rootRect.height });
77
- });
77
+ setRootStyle((prev) => Object.assign(Object.assign({}, prev), { height: rootRect.height }));
78
78
  }
79
79
  const getFixed = () => {
80
80
  let fixed2 = false;
@@ -90,22 +90,16 @@ const Sticky = (props) => {
90
90
  };
91
91
  };
92
92
  const getTransform = () => {
93
- if (position === "top") {
94
- if (containerEle) {
95
- const diff = containerRect.bottom - threshold - stickyRect.height;
96
- const transform = diff < 0 ? diff : 0;
97
- return { transform: `translate3d(0, ${transform}px, 0)` };
98
- }
99
- return {};
93
+ if (position === "top" && containerEle) {
94
+ const diff = containerRect.bottom - threshold - stickyRect.height;
95
+ const transform = diff < 0 ? diff : 0;
96
+ return { transform: `translate3d(0, ${transform}px, 0)` };
100
97
  }
101
- if (position === "bottom") {
102
- if (containerEle) {
103
- const clientHeight = document.documentElement.clientHeight;
104
- const diff = containerRect.bottom - (clientHeight - threshold);
105
- const transform = diff < 0 ? diff : 0;
106
- return { transform: `translate3d(0, ${transform}px, 0)` };
107
- }
108
- return {};
98
+ if (position === "bottom" && containerEle) {
99
+ const clientHeight = document.documentElement.clientHeight;
100
+ const diff = containerRect.bottom - (clientHeight - threshold);
101
+ const transform = diff < 0 ? diff : 0;
102
+ return { transform: `translate3d(0, ${transform}px, 0)` };
109
103
  }
110
104
  return {};
111
105
  };
@@ -120,9 +114,9 @@ const Sticky = (props) => {
120
114
  });
121
115
  useEffect(() => {
122
116
  const el = getElement();
123
- el.addEventListener("scroll", handleScroll, false);
117
+ el === null || el === void 0 ? void 0 : el.addEventListener("scroll", handleScroll, false);
124
118
  return () => {
125
- el.removeEventListener("scroll", handleScroll);
119
+ el === null || el === void 0 ? void 0 : el.removeEventListener("scroll", handleScroll);
126
120
  };
127
121
  }, [getElement, handleScroll]);
128
122
  return React__default.createElement(
package/dist/esm/Swipe.js CHANGED
@@ -168,7 +168,6 @@ const Swipe = forwardRef((props, instanceRef) => {
168
168
  )
169
169
  );
170
170
  });
171
- Swipe.defaultProps = defaultProps;
172
171
  Swipe.displayName = "NutSwipe";
173
172
  export {
174
173
  Swipe as default
@@ -325,7 +325,6 @@ const Swiper = React__default.forwardRef((props, ref) => {
325
325
  renderIndicator()
326
326
  );
327
327
  });
328
- Swiper.defaultProps = defaultProps;
329
328
  Swiper.displayName = "NutSwiper";
330
329
  const InnerSwiper = Swiper;
331
330
  InnerSwiper.Item = SwiperItem__default;
@@ -9,7 +9,6 @@ const SwiperItem = (props) => {
9
9
  const classes = classNames(classPrefix, className);
10
10
  return React__default.createElement("div", { className: classes, onClick: props.onClick, style }, children);
11
11
  };
12
- SwiperItem.defaultProps = defaultProps;
13
12
  SwiperItem.displayName = "NutSwiperItem";
14
13
  export {
15
14
  SwiperItem as default
package/dist/esm/Table.js CHANGED
@@ -130,17 +130,18 @@ const Table = (props) => {
130
130
  });
131
131
  };
132
132
  const renderBodyTds = (item, rowIndex) => {
133
- const { rowRender } = item;
134
- if (rowRender && typeof rowRender === "function") {
135
- return rowRender(item, rowIndex);
136
- }
137
133
  return sortDataItem().map(([value, render]) => {
138
134
  return React__default.createElement("div", { className: classNames(`${bodyClassPrefix}-td`, cellClasses(getColumnItem(value)), getStickyClass(value)), key: value, style: getStickyStyle(value) }, typeof item[value] === "function" || typeof render === "function" ? React__default.createElement("div", null, render ? render(item, rowIndex) : item[value](item)) : item[value]);
139
135
  });
140
136
  };
141
137
  const renderBodyTrs = () => {
142
138
  return innerValue.map((item, index) => {
143
- return React__default.createElement("div", { className: bodyClassPrefix, key: index }, renderBodyTds(item, index));
139
+ const inner = renderBodyTds(item, index);
140
+ const { rowRender } = item;
141
+ if (rowRender && typeof rowRender === "function") {
142
+ return rowRender(item, index, { inner });
143
+ }
144
+ return React__default.createElement("div", { className: bodyClassPrefix, key: index }, inner);
144
145
  });
145
146
  };
146
147
  return React__default.createElement(
@@ -1 +1 @@
1
- .nut-progress{display:flex;align-items:center;position:relative;width:100%}.nut-progress-outer{flex:auto;border-radius:var(--nutui-progress-border-radius, 12px);height:var(--nutui-progress-height, 10px);background:var(--nutui-progress-background, var(--nutui-gray-3, #f6f6f6))}.nut-progress-outer .nut-progress-active:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;border-radius:var(--nutui-progress-border-radius, 12px);animation:progressActive 2s ease-in-out infinite}.nut-progress-inner{height:100%;display:flex;flex-direction:column;justify-content:center;transition:all .4s;border-radius:var(--nutui-progress-border-radius, 12px);background:var(--nutui-progress-color, linear-gradient(135deg, var(--nutui-color-primary-stop-1, #f53d4d) 0%, var(--nutui-color-primary-stop-2, #fa2c19) 100%))}.nut-progress-text{display:flex;align-items:center;position:absolute;top:var(--nutui-progress-text-position-top, -4px);bottom:var(--nutui-progress-text-position-bottom, -4px);transition:all .4s;transform:translate(-50%)}.nut-progress-text-inner{display:flex;align-items:center;height:100%;width:100%;color:var(--nutui-progress-text-color, var(--nutui-color-primary-text, #ffffff));padding:var(--nutui-progress-text-padding, 0 5px);border-radius:var(--nutui-progress-text-border-radius, 5px);font-size:var(--nutui-progress-text-font-size, 9px);line-height:1;background:var(--nutui-progress-text-background, var(--nutui-progress-color, linear-gradient(135deg, var(--nutui-color-primary-stop-1, #f53d4d) 0%, var(--nutui-color-primary-stop-2, #fa2c19) 100%)))}@keyframes progressActive{0%{background:#ffffff1a;width:0}20%{background:#ffffff80;width:0}to{background:#fff0;width:100%}}[dir=rtl] .nut-progress-text,.nut-rtl .nut-progress-text{transform:translate(50%)}.nut-uploader{position:relative;display:flex;flex-wrap:wrap}.nut-uploader-slot{position:relative}.nut-uploader-upload{position:relative;display:flex;align-items:center;justify-content:center;background:var(--nutui-uploader-background, var(--nutui-gray-3, #f6f6f6));width:var(--nutui-uploader-image-width, 100px);height:var(--nutui-uploader-image-height, 100px);border:var(--nutui-uploader-image-border, 0px);border-radius:var(--nutui-uploader-image-border-radius, 4px)}.nut-uploader-icon{display:flex;flex-direction:column;justify-content:center;align-items:center;color:var(--nutui-uploader-image-color, var(--nutui-gray-5, #8c8c8c))}.nut-uploader-icon i,.nut-uploader-icon .nut-icon{color:var(--nutui-uploader-image-color, var(--nutui-gray-5, #8c8c8c));margin-bottom:var(--nutui-uploader-image-icon-margin-bottom, 6px)}.nut-uploader-icon-tip{font-size:var(--nutui-uploader-image-icon-tip-font-size, 12px)}.nut-uploader-input{position:absolute!important;top:0;left:0;width:100%!important;height:100%!important;overflow:hidden;cursor:pointer;opacity:0}.nut-uploader-input:disabled{cursor:not-allowed}.nut-uploader-upload-disabled{background:var(--nutui-uploader-background-disabled, var(--nutui-gray-3, #f6f6f6));color:var(--nutui-uploader-image-disabled, var(--nutui-color-text-disabled, #bfbfbf))}.nut-uploader-upload-disabled .nut-uploader-icon i,.nut-uploader-upload-disabled .nut-uploader-icon .nut-icon{color:var(--nutui-uploader-image-disabled, var(--nutui-color-text-disabled, #bfbfbf));margin-bottom:var(--nutui-uploader-image-icon-margin-bottom, 6px)}.nut-uploader-preview{position:relative;margin-right:var(--nutui-uploader-preview-margin-right, 10px);margin-bottom:var(--nutui-uploader-preview-margin-bottom, 10px);border-radius:var(--nutui-uploader-image-border-radius, 4px);box-shadow:0 2px 10px #0000001a}.nut-uploader-preview-progress{position:absolute;left:0;top:0;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;background:var(--nutui-uploader-preview-progress-background, var(--nutui-black-10, rgba(0, 0, 0, .7)));border-radius:var(--nutui-uploader-image-border-radius, 4px)}.nut-uploader-preview-progress i{margin-bottom:var(--nutui-uploader-image-icon-margin-bottom, 6px)}.nut-uploader-preview-progress-msg{color:var(--nutui-gray-5, #8c8c8c);font-size:12px}.nut-uploader-preview.list{width:100%;margin-right:0;margin-bottom:0;margin-top:10px;box-shadow:0 2px 10px #00000003}.nut-uploader-preview-list{width:100%;height:32px;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;padding:0 10px;background-color:var(--nutui-gray-2, #f8f8f8)}.nut-uploader-preview-list .nut-uploader-preview-img-file-name{display:flex;align-items:center;-webkit-line-clamp:1;padding:2px;height:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nut-uploader-preview-list .nut-progress{position:absolute;left:0;right:0;bottom:0}.nut-uploader-preview-list .nut-progress .nut-progress-outer{height:2px!important}.nut-uploader-preview .close{position:absolute;right:var(--nutui-uploader-preview-close-right, 0px);top:var(--nutui-uploader-preview-close-top, 0px);transform:translate(50%,-50%);z-index:1}.nut-uploader-preview-img{position:relative;width:var(--nutui-uploader-image-width, 100px);height:var(--nutui-uploader-image-height, 100px);border-radius:var(--nutui-uploader-image-border-radius, 4px);overflow:hidden}.nut-uploader-preview-img i{color:var(--nutui-gray-7, #1a1a1a)}.nut-uploader-preview-img .tips{position:absolute;bottom:0;left:0;font-size:12px;color:#fff;text-align:center;box-sizing:border-box;height:var(--nutui-uploader-preview-tips-height, 24px);line-height:var(--nutui-uploader-preview-tips-height, 24px);border-radius:var(--nutui-uploader-image-border-radius, 4px);border-top-left-radius:0;border-top-right-radius:0;padding:var(--nutui-uploader-preview-tips-padding, 0 5px);background:var(--nutui-uploader-preview-tips-background, var(--nutui-black-7));width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nut-uploader-preview-img-c{width:100%;height:100%;position:initial;border-radius:var(--nutui-uploader-image-border-radius, 4px)}.nut-uploader-preview-img-file{height:100%;width:100%;display:flex;align-items:center;justify-content:center;transition:all .3s}.nut-uploader-preview-img-file-name{display:flex;width:90%;font-size:12px;color:var(--nutui-gray-6, #595959);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;word-break:break-all}.nut-uploader-preview-img-file-name.error{color:red!important}.nut-uploader-preview-img-file-name.success{color:#1890ff!important}.nut-uploader-preview-img-file-name .nut-icon-Link{flex-shrink:0}[dir=rtl] .nut-uploader-input,.nut-rtl .nut-uploader-input{left:auto;right:0}[dir=rtl] .nut-uploader-preview,.nut-rtl .nut-uploader-preview{margin-right:0;margin-left:var(--nutui-uploader-preview-margin-right, 10px)}[dir=rtl] .nut-uploader-preview-progress,.nut-rtl .nut-uploader-preview-progress{left:auto;right:0}[dir=rtl] .nut-uploader-preview.list,.nut-rtl .nut-uploader-preview.list{margin-right:0;margin-left:0}[dir=rtl] .nut-uploader-preview .close,.nut-rtl .nut-uploader-preview .close{right:auto;left:var(--nutui-uploader-preview-close-right, 0px);transform:translate(-50%,-50%)}[dir=rtl] .nut-uploader-preview-img .tips,.nut-rtl .nut-uploader-preview-img .tips{left:auto;right:0}
1
+ .nut-progress{display:flex;align-items:center;position:relative;width:100%}.nut-progress-outer{flex:auto;border-radius:var(--nutui-progress-border-radius, 12px);height:var(--nutui-progress-height, 10px);background:var(--nutui-progress-background, var(--nutui-gray-3, #f6f6f6))}.nut-progress-outer .nut-progress-active:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;border-radius:var(--nutui-progress-border-radius, 12px);animation:progressActive 2s ease-in-out infinite}.nut-progress-inner{height:100%;display:flex;flex-direction:column;justify-content:center;transition:all .4s;border-radius:var(--nutui-progress-border-radius, 12px);background:var(--nutui-progress-color, linear-gradient(135deg, var(--nutui-color-primary-stop-1, #f53d4d) 0%, var(--nutui-color-primary-stop-2, #fa2c19) 100%))}.nut-progress-text{display:flex;align-items:center;position:absolute;top:var(--nutui-progress-text-position-top, -4px);bottom:var(--nutui-progress-text-position-bottom, -4px);transition:all .4s;transform:translate(-50%)}.nut-progress-text-inner{display:flex;align-items:center;height:100%;width:100%;color:var(--nutui-progress-text-color, var(--nutui-color-primary-text, #ffffff));padding:var(--nutui-progress-text-padding, 0 5px);border-radius:var(--nutui-progress-text-border-radius, 5px);font-size:var(--nutui-progress-text-font-size, 9px);line-height:1;background:var(--nutui-progress-text-background, var(--nutui-progress-color, linear-gradient(135deg, var(--nutui-color-primary-stop-1, #f53d4d) 0%, var(--nutui-color-primary-stop-2, #fa2c19) 100%)))}@keyframes progressActive{0%{background:#ffffff1a;width:0}20%{background:#ffffff80;width:0}to{background:#fff0;width:100%}}[dir=rtl] .nut-progress-text,.nut-rtl .nut-progress-text{transform:translate(50%)}.nut-uploader{position:relative;display:flex;flex-wrap:wrap}.nut-uploader-slot{position:relative}.nut-uploader-upload{position:relative;display:flex;align-items:center;justify-content:center;background:var(--nutui-uploader-background, var(--nutui-gray-3, #f6f6f6));width:var(--nutui-uploader-image-width, 100px);height:var(--nutui-uploader-image-height, 100px);border:var(--nutui-uploader-image-border, 0px);border-radius:var(--nutui-uploader-image-border-radius, 4px)}.nut-uploader-icon{display:flex;flex-direction:column;justify-content:center;align-items:center;color:var(--nutui-uploader-image-color, var(--nutui-gray-5, #8c8c8c))}.nut-uploader-icon i,.nut-uploader-icon .nut-icon{color:var(--nutui-uploader-image-color, var(--nutui-gray-5, #8c8c8c));margin-bottom:var(--nutui-uploader-image-icon-margin-bottom, 6px)}.nut-uploader-icon-tip{font-size:var(--nutui-uploader-image-icon-tip-font-size, 12px)}.nut-uploader-input{position:absolute!important;top:0;left:0;width:100%!important;height:100%!important;overflow:hidden;cursor:pointer;opacity:0}.nut-uploader-input:disabled{cursor:not-allowed}.nut-uploader-upload-disabled{background:var(--nutui-uploader-background-disabled, var(--nutui-gray-3, #f6f6f6));color:var(--nutui-uploader-image-disabled, var(--nutui-color-text-disabled, #bfbfbf))}.nut-uploader-upload-disabled .nut-uploader-icon i,.nut-uploader-upload-disabled .nut-uploader-icon .nut-icon{color:var(--nutui-uploader-image-disabled, var(--nutui-color-text-disabled, #bfbfbf));margin-bottom:var(--nutui-uploader-image-icon-margin-bottom, 6px)}.nut-uploader-preview{position:relative;margin-right:var(--nutui-uploader-preview-margin-right, 10px);margin-bottom:var(--nutui-uploader-preview-margin-bottom, 10px);border-radius:var(--nutui-uploader-image-border-radius, 4px);box-shadow:0 2px 10px #0000001a}.nut-uploader-preview-progress{position:absolute;left:0;top:0;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;background:var(--nutui-uploader-preview-progress-background, var(--nutui-black-10, rgba(0, 0, 0, .7)));border-radius:var(--nutui-uploader-image-border-radius, 4px)}.nut-uploader-preview-progress i{margin-bottom:var(--nutui-uploader-image-icon-margin-bottom, 6px)}.nut-uploader-preview-progress-msg{color:var(--nutui-gray-5, #8c8c8c);font-size:12px}.nut-uploader-preview.list{width:100%;margin-right:0;margin-bottom:0;margin-top:10px;box-shadow:0 2px 10px #00000003}.nut-uploader-preview-list{width:100%;height:32px;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;padding:0 10px;background-color:var(--nutui-gray-2, #f8f8f8)}.nut-uploader-preview-list .nut-uploader-preview-img-file-name{display:flex;align-items:center;-webkit-line-clamp:1;padding:2px;height:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nut-uploader-preview-list .nut-progress{position:absolute;left:0;right:0;bottom:0}.nut-uploader-preview-list .nut-progress .nut-progress-outer{height:2px!important}.nut-uploader-preview .close{position:absolute;right:var(--nutui-uploader-preview-close-right, 0px);top:var(--nutui-uploader-preview-close-top, 0px);transform:translate(50%,-50%);z-index:1}.nut-uploader-preview-img{position:relative;width:var(--nutui-uploader-image-width, 100px);height:var(--nutui-uploader-image-height, 100px);border-radius:var(--nutui-uploader-image-border-radius, 4px);overflow:hidden}.nut-uploader-preview-img i{color:var(--nutui-gray-7, #1a1a1a)}.nut-uploader-preview-img .tips{position:absolute;bottom:0;left:0;font-size:12px;color:#fff;text-align:center;box-sizing:border-box;height:var(--nutui-uploader-preview-tips-height, 24px);line-height:var(--nutui-uploader-preview-tips-height, 24px);border-radius:var(--nutui-uploader-image-border-radius, 4px);border-top-left-radius:0;border-top-right-radius:0;padding:var(--nutui-uploader-preview-tips-padding, 0 5px);background:var(--nutui-uploader-preview-tips-background, var(--nutui-black-7));width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nut-uploader-preview-img-c{display:flex;justify-content:center;align-items:center;height:100%;position:initial;border-radius:var(--nutui-uploader-image-border-radius, 4px)}.nut-uploader-preview-img-file{height:100%;width:100%;display:flex;align-items:center;justify-content:center;transition:all .3s}.nut-uploader-preview-img-file-name{display:flex;width:90%;font-size:12px;color:var(--nutui-gray-6, #595959);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;word-break:break-all}.nut-uploader-preview-img-file-name.error{color:red!important}.nut-uploader-preview-img-file-name.success{color:#1890ff!important}.nut-uploader-preview-img-file-name .nut-icon-Link{flex-shrink:0}[dir=rtl] .nut-uploader-input,.nut-rtl .nut-uploader-input{left:auto;right:0}[dir=rtl] .nut-uploader-preview,.nut-rtl .nut-uploader-preview{margin-right:0;margin-left:var(--nutui-uploader-preview-margin-right, 10px)}[dir=rtl] .nut-uploader-preview-progress,.nut-rtl .nut-uploader-preview-progress{left:auto;right:0}[dir=rtl] .nut-uploader-preview.list,.nut-rtl .nut-uploader-preview.list{margin-right:0;margin-left:0}[dir=rtl] .nut-uploader-preview .close,.nut-rtl .nut-uploader-preview .close{right:auto;left:var(--nutui-uploader-preview-close-right, 0px);transform:translate(-50%,-50%)}[dir=rtl] .nut-uploader-preview-img .tips,.nut-rtl .nut-uploader-preview-img .tips{left:auto;right:0}
@@ -1,5 +1,5 @@
1
1
  import { _ as __rest } from "./tslib.es6.js";
2
- import React__default, { useState, useImperativeHandle } from "react";
2
+ import React__default, { useRef, useState, useEffect, useImperativeHandle } from "react";
3
3
  import classNames from "classnames";
4
4
  import { Failure, Link, Del, Loading, Photograph } from "@nutui/icons-react";
5
5
  import { useConfig } from "./ConfigProvider.js";
@@ -161,6 +161,7 @@ const defaultProps = Object.assign(Object.assign({}, ComponentDefaults), { url:
161
161
  } });
162
162
  const InternalUploader = (props, ref) => {
163
163
  const { locale } = useConfig();
164
+ const fileListRef = useRef([]);
164
165
  const _a = Object.assign(Object.assign({}, defaultProps), props), { children, uploadIcon, uploadLabel, name, accept, defaultValue, value, previewType, fit, disabled, multiple, url, previewUrl, headers, timeout, method, xhrState, withCredentials, data, preview, deletable, maxCount, capture, maxFileSize, className, autoUpload, clearInput, onStart, onDelete, onChange, onFileItemClick, onProgress, onSuccess, onUpdate, onFailure, onOversize, beforeUpload, beforeXhrUpload, beforeDelete } = _a, restProps = __rest(_a, ["children", "uploadIcon", "uploadLabel", "name", "accept", "defaultValue", "value", "previewType", "fit", "disabled", "multiple", "url", "previewUrl", "headers", "timeout", "method", "xhrState", "withCredentials", "data", "preview", "deletable", "maxCount", "capture", "maxFileSize", "className", "autoUpload", "clearInput", "onStart", "onDelete", "onChange", "onFileItemClick", "onProgress", "onSuccess", "onUpdate", "onFailure", "onOversize", "beforeUpload", "beforeXhrUpload", "beforeDelete"]);
165
166
  const [fileList, setFileList] = usePropsValue({
166
167
  value,
@@ -172,6 +173,9 @@ const InternalUploader = (props, ref) => {
172
173
  });
173
174
  const [uploadQueue, setUploadQueue] = useState([]);
174
175
  const classes = classNames(className, "nut-uploader");
176
+ useEffect(() => {
177
+ fileListRef.current = fileList;
178
+ }, [fileList]);
175
179
  useImperativeHandle(ref, () => ({
176
180
  submit: () => {
177
181
  Promise.all(uploadQueue).then((res) => {
@@ -215,28 +219,28 @@ const InternalUploader = (props, ref) => {
215
219
  }
216
220
  uploadOption.onStart = (option) => {
217
221
  clearUploadQueue(index);
218
- setFileList(fileList.map((item) => {
222
+ setFileList(fileListRef.current.map((item) => {
219
223
  if (item.uid === fileItem.uid) {
220
224
  item.status = "ready";
221
225
  item.message = locale.uploader.readyUpload;
222
226
  }
223
227
  return item;
224
228
  }));
225
- onStart && onStart(option);
229
+ onStart === null || onStart === void 0 ? void 0 : onStart(option);
226
230
  };
227
231
  uploadOption.onProgress = (e, option) => {
228
- setFileList(fileList.map((item) => {
232
+ setFileList(fileListRef.current.map((item) => {
229
233
  if (item.uid === fileItem.uid) {
230
234
  item.status = UPLOADING;
231
235
  item.message = locale.uploader.uploading;
232
236
  item.percentage = (e.loaded / e.total * 100).toFixed(0);
233
- onProgress && onProgress({ e, option, percentage: item.percentage });
237
+ onProgress === null || onProgress === void 0 ? void 0 : onProgress({ e, option, percentage: item.percentage });
234
238
  }
235
239
  return item;
236
240
  }));
237
241
  };
238
242
  uploadOption.onSuccess = (responseText, option) => {
239
- const list = fileList.map((item) => {
243
+ const list = fileListRef.current.map((item) => {
240
244
  if (item.uid === fileItem.uid) {
241
245
  item.status = SUCCESS;
242
246
  item.message = locale.uploader.success;
@@ -253,7 +257,7 @@ const InternalUploader = (props, ref) => {
253
257
  });
254
258
  };
255
259
  uploadOption.onFailure = (responseText, option) => {
256
- const list = fileList.map((item) => {
260
+ const list = fileListRef.current.map((item) => {
257
261
  if (item.uid === fileItem.uid) {
258
262
  item.status = ERROR;
259
263
  item.message = locale.uploader.error;
@@ -313,9 +317,7 @@ const InternalUploader = (props, ref) => {
313
317
  }
314
318
  return true;
315
319
  });
316
- if (oversizes.length) {
317
- onOversize && onOversize(files);
318
- }
320
+ oversizes.length && (onOversize === null || onOversize === void 0 ? void 0 : onOversize(files));
319
321
  if (filterFile.length > maximum) {
320
322
  filterFile.splice(maximum, filterFile.length - maximum);
321
323
  }
@@ -352,7 +354,6 @@ const InternalUploader = (props, ref) => {
352
354
  const _files = filterFiles(new Array().slice.call(files));
353
355
  readFile(_files);
354
356
  }
355
- setFileList(fileList);
356
357
  if (clearInput) {
357
358
  clearInputValue($el);
358
359
  }
@@ -2,10 +2,10 @@ import React__default, { useState, useEffect } from "react";
2
2
  import classNames from "classnames";
3
3
  import { useConfig } from "./ConfigProvider.js";
4
4
  import { C as ComponentDefaults } from "./typings.js";
5
- const defaultProps = Object.assign(Object.assign({}, ComponentDefaults), { content: "", fullPage: true, zIndex: 2e3, gapX: 24, gapY: 48, width: 120, height: 64, image: "", imageWidth: 120, imageHeight: 64, rotate: -22, color: "rgba(0,0,0,.15)", fontStyle: "normal", fontWeight: "normal", fontSize: 14 });
5
+ const defaultProps = Object.assign(Object.assign({}, ComponentDefaults), { content: "", fullPage: true, zIndex: 2e3, gapX: 24, gapY: 48, width: 120, height: 64, startX: 0, startY: 0, image: "", imageWidth: 120, imageHeight: 64, rotate: -22, color: "rgba(0,0,0,.15)", fontStyle: "normal", fontWeight: "normal", fontSize: 14 });
6
6
  const WaterMark = (props) => {
7
7
  const { locale } = useConfig();
8
- const { content, fullPage, zIndex, className, gapX, gapY, width, height, image, imageWidth, imageHeight, rotate, color, fontStyle, fontFamily, fontWeight, fontSize, style } = Object.assign(Object.assign({}, defaultProps), props);
8
+ const { content, fullPage, zIndex, className, gapX, gapY, startX, startY, width, height, image, imageWidth, imageHeight, rotate, color, fontStyle, fontFamily, fontWeight, fontSize, style } = Object.assign(Object.assign({}, defaultProps), props);
9
9
  const [base64Url, setBase64Url] = useState("");
10
10
  const classPrefix = "nut-watermark";
11
11
  const classes = classNames(classPrefix, {
@@ -46,7 +46,7 @@ const WaterMark = (props) => {
46
46
  const markSize = Number(fontSize) * ratio;
47
47
  ctx.font = `${fontStyle} normal ${fontWeight} ${markSize}px/${markHeight}px ${fontFamily}`;
48
48
  ctx.fillStyle = color;
49
- ctx.fillText(content, 0, 0);
49
+ ctx.fillText(content, startX, startY);
50
50
  ctx.restore();
51
51
  setBase64Url(canvas.toDataURL());
52
52
  }
@@ -86,7 +86,6 @@ const Radio = (props) => {
86
86
  [`${classPrefix}-reverse`]: labelPosition === "left"
87
87
  }, className), style, onClick: handleClick }, rest), renderRadioItem());
88
88
  };
89
- Radio.defaultProps = defaultProps;
90
89
  Radio.displayName = "NutRadio";
91
90
  Radio.Group = RadioGroup__default;
92
91
  export {
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @nutui/nutui-react v2.6.14 Fri Jul 19 2024 16:21:59 GMT+0800 (China Standard Time)
2
+ * @nutui/nutui-react v2.6.15 Fri Jul 26 2024 15:21:32 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.6.14 Fri Jul 19 2024 16:21:59 GMT+0800 (China Standard Time)
2
+ * @nutui/nutui-react v2.6.15 Fri Jul 26 2024 15:21:32 GMT+0800 (China Standard Time)
3
3
  * (c) 2023 @jdf2e.
4
4
  * Released under the MIT License.
5
5
  */