@nutui/nutui-react 2.0.0-alpha.15 → 2.0.0-alpha.16

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 (40) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/esm/DatePicker.js +54 -58
  3. package/dist/esm/Dialog/style/index.js +1 -0
  4. package/dist/esm/Dialog/style/style.css +1 -1
  5. package/dist/esm/Menu/style/style.css +1 -1
  6. package/dist/esm/Menu.js +5 -3
  7. package/dist/esm/MenuItem/style/style.css +1 -1
  8. package/dist/esm/MenuItem.js +31 -44
  9. package/dist/esm/NoticeBar.js +2 -2
  10. package/dist/esm/Picker.js +1 -1
  11. package/dist/esm/Popover.js +3 -40
  12. package/dist/esm/Popup.js +1 -1
  13. package/dist/esm/Toast.js +16 -7
  14. package/dist/esm/Uploader.js +1 -1
  15. package/dist/esm/index.js +2 -2
  16. package/dist/esm/types/src/packages/datepicker/datepicker.d.ts +11 -17
  17. package/dist/esm/types/src/packages/datepicker/datepicker.taro.d.ts +11 -17
  18. package/dist/esm/types/src/packages/datepicker/index.d.ts +1 -0
  19. package/dist/esm/types/src/packages/datepicker/index.taro.d.ts +1 -0
  20. package/dist/esm/types/src/packages/nutui.react.taro.d.ts +2 -2
  21. package/dist/esm/types/src/packages/nutui.taro.react.build.d.ts +2 -2
  22. package/dist/esm/types/src/packages/toast/Notification.d.ts +4 -1
  23. package/dist/esm/use-click-away.js +43 -0
  24. package/dist/locales/base.js +1 -1
  25. package/dist/locales/en-US.js +1 -1
  26. package/dist/locales/id-ID.js +1 -1
  27. package/dist/locales/tr-TR.js +1 -1
  28. package/dist/locales/zh-CN.js +1 -1
  29. package/dist/locales/zh-TW.js +1 -1
  30. package/dist/locales/zh-UG.js +1 -1
  31. package/dist/nutui.react.es.js +210 -224
  32. package/dist/nutui.react.umd.js +210 -224
  33. package/dist/packages/menuitem/menuitem.scss +1 -1
  34. package/dist/packages/noticebar/noticebar.scss +0 -3
  35. package/dist/style.css +1 -1
  36. package/dist/style.mjs +1 -1
  37. package/dist/types/packages/datepicker/datepicker.d.ts +79 -25
  38. package/dist/types/packages/datepicker/index.d.ts +1 -0
  39. package/dist/types/packages/toast/Notification.d.ts +4 -1
  40. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ # v2.0.0-alpha.16
2
+ `2023-06-09`
3
+
4
+ * :bug: fix(toast): 修复连续调用 show 方法时无法销毁的问题 (#1102) @Eiinu
5
+ * :bug: fix: dialog 需要增加 overlay 的样式,否则按需加载样式出现异常 (#1103) @oasis-cloud
6
+ * :bug: fix: menu 组件被使用 transform 的组件嵌套后,遮罩层发生偏移 (#1093) @oasis-cloud
7
+ * :bug: fix: noticebar 修复小程序多行展示问题 (#1107) @xiaoyatong
8
+ * :bug: fix: pikcer 在关闭动画未结束时修改 visible,导致状态更新异常 (#1097) @oasis-cloud
9
+ * 🛠 refactor: datepicker (#1091) @xiaoyatong
10
+ * 🔨 chore: 修复 Taro Demo 的字号 (#1105) @oasis-cloud
11
+ * 🔨 chore(script): 生成 Props 功能增强 (#1096) @Eiinu
12
+ * 📖 docs: 文档修订 (#1106) @xiaoyatong
13
+
14
+
1
15
  # v2.0.0-alpha.15
2
16
  `2023-06-07`
3
17
 
@@ -1,8 +1,8 @@
1
1
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
3
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
5
- var _excluded = ["minDate", "maxDate", "type", "isShowChinese", "minuteStep", "modelValue", "visible", "title", "formatter", "onCloseDatePicker", "onConfirmDatePicker", "filter", "onChange", "threeDimensional", "className", "style"];
4
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
5
+ var _excluded = ["startDate", "endDate", "type", "showChinese", "minuteStep", "visible", "title", "defaultValue", "formatter", "onClose", "onConfirm", "filter", "onChange", "threeDimensional", "className", "style"];
6
6
  function ownKeys(object, enumerableOnly) {
7
7
  var keys = Object.keys(object);
8
8
  if (Object.getOwnPropertySymbols) {
@@ -24,32 +24,25 @@ function _objectSpread(target) {
24
24
  }
25
25
  return target;
26
26
  }
27
- import React__default, { useState, useRef, useEffect } from "react";
27
+ import React__default, { useState, useEffect } from "react";
28
28
  import Picker from "./Picker.js";
29
29
  import { useConfig } from "./ConfigProvider.js";
30
+ import { u as usePropsValue } from "./use-props-value.js";
31
+ import { C as ComponentDefaults } from "./typings.js";
30
32
  var currentYear = /* @__PURE__ */ (/* @__PURE__ */ new Date()).getFullYear();
31
- var defaultProps = {
32
- modelValue: null,
33
+ var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, {
33
34
  visible: false,
34
35
  title: "",
35
36
  type: "date",
36
- isShowChinese: false,
37
+ showChinese: false,
37
38
  threeDimensional: true,
38
39
  minuteStep: 1,
39
- minDate: new Date(currentYear - 10, 0, 1),
40
- maxDate: new Date(currentYear + 10, 11, 31)
41
- };
40
+ startDate: new Date(currentYear - 10, 0, 1),
41
+ endDate: new Date(currentYear + 10, 11, 31)
42
+ });
42
43
  var DatePicker = function DatePicker2(props) {
43
- var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props), minDate = _defaultProps$props.minDate, maxDate = _defaultProps$props.maxDate, type = _defaultProps$props.type, isShowChinese = _defaultProps$props.isShowChinese, minuteStep = _defaultProps$props.minuteStep, modelValue = _defaultProps$props.modelValue, visible = _defaultProps$props.visible, title = _defaultProps$props.title, formatter = _defaultProps$props.formatter, onCloseDatePicker = _defaultProps$props.onCloseDatePicker, onConfirmDatePicker = _defaultProps$props.onConfirmDatePicker, filter = _defaultProps$props.filter, onChange = _defaultProps$props.onChange, threeDimensional = _defaultProps$props.threeDimensional, className = _defaultProps$props.className, style = _defaultProps$props.style, rest = _objectWithoutProperties(_defaultProps$props, _excluded);
44
+ var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props), startDate = _defaultProps$props.startDate, endDate = _defaultProps$props.endDate, type = _defaultProps$props.type, showChinese = _defaultProps$props.showChinese, minuteStep = _defaultProps$props.minuteStep, visible = _defaultProps$props.visible, title = _defaultProps$props.title, defaultValue = _defaultProps$props.defaultValue, formatter = _defaultProps$props.formatter, onClose = _defaultProps$props.onClose, _onConfirm = _defaultProps$props.onConfirm, filter = _defaultProps$props.filter, onChange = _defaultProps$props.onChange, threeDimensional = _defaultProps$props.threeDimensional, className = _defaultProps$props.className, style = _defaultProps$props.style, rest = _objectWithoutProperties(_defaultProps$props, _excluded);
44
45
  var _useConfig = useConfig(), locale = _useConfig.locale;
45
- var _useState = useState(false), _useState2 = _slicedToArray(_useState, 2), show = _useState2[0], setShow = _useState2[1];
46
- var _useState3 = useState(modelValue), _useState4 = _slicedToArray(_useState3, 2), currentDate = _useState4[0], setCurrentDate = _useState4[1];
47
- var _useState5 = useState([]), _useState6 = _slicedToArray(_useState5, 2), defaultValue = _useState6[0], setDefaultValue = _useState6[1];
48
- var _useState7 = useState([]), _useState8 = _slicedToArray(_useState7, 2), options = _useState8[0], setListData = _useState8[1];
49
- var pickerRef = useRef(null);
50
- var isDate = function isDate2(val) {
51
- return Object.prototype.toString.call(val) === "[object Date]" && !Number.isNaN(val.getTime());
52
- };
53
46
  var datepickerLang = locale.datepicker;
54
47
  var zhCNType = {
55
48
  day: datepickerLang.day,
@@ -59,21 +52,33 @@ var DatePicker = function DatePicker2(props) {
59
52
  minute: datepickerLang.min,
60
53
  seconds: datepickerLang.seconds
61
54
  };
55
+ var _useState = useState([]), _useState2 = _slicedToArray(_useState, 2), defaultValueOfPicker = _useState2[0], setDefaultValueOfPicker = _useState2[1];
56
+ var _useState3 = useState([]), _useState4 = _slicedToArray(_useState3, 2), options = _useState4[0], setOptions = _useState4[1];
57
+ var isDate = function isDate2(val) {
58
+ return Object.prototype.toString.call(val) === "[object Date]" && !Number.isNaN(val.getTime());
59
+ };
62
60
  var formatValue = function formatValue2(value) {
63
61
  var cvalue = value;
64
62
  if (!cvalue || cvalue && !isDate(cvalue)) {
65
- cvalue = minDate;
63
+ cvalue = startDate;
66
64
  }
67
- var timestmp = Math.max(cvalue.getTime(), minDate.getTime());
68
- timestmp = Math.min(timestmp, maxDate.getTime());
65
+ var timestmp = Math.max(cvalue.getTime(), startDate.getTime());
66
+ timestmp = Math.min(timestmp, endDate.getTime());
69
67
  return new Date(timestmp);
70
68
  };
69
+ var _usePropsValue = usePropsValue({
70
+ value: props.value && formatValue(props.value),
71
+ defaultValue: formatValue(props.defaultValue || null),
72
+ finalValue: null,
73
+ onChange: function onChange2(val) {
74
+ }
75
+ }), _usePropsValue2 = _slicedToArray(_usePropsValue, 2), currentDate = _usePropsValue2[0], setCurrentDate = _usePropsValue2[1];
71
76
  function getMonthEndDay(year, month) {
72
77
  return new Date(year, month, 0).getDate();
73
78
  }
74
79
  var getBoundary = function getBoundary2(type2, value) {
75
80
  var _ref;
76
- var boundary = type2 === "min" ? minDate : maxDate;
81
+ var boundary = type2 === "min" ? startDate : endDate;
77
82
  var year = boundary.getFullYear();
78
83
  var month = 1;
79
84
  var date = 1;
@@ -100,12 +105,12 @@ var DatePicker = function DatePicker2(props) {
100
105
  }
101
106
  return _ref = {}, _defineProperty(_ref, "".concat(type2, "Year"), year), _defineProperty(_ref, "".concat(type2, "Month"), month), _defineProperty(_ref, "".concat(type2, "Date"), date), _defineProperty(_ref, "".concat(type2, "Hour"), hour), _defineProperty(_ref, "".concat(type2, "Minute"), minute), _defineProperty(_ref, "".concat(type2, "Seconds"), seconds), _ref;
102
107
  };
103
- var ranges = function ranges2(date) {
104
- var curDate = date || currentDate;
108
+ var ranges = function ranges2() {
109
+ var curDate = currentDate;
105
110
  if (!curDate)
106
111
  return [];
107
- var _getBoundary = getBoundary("max", curDate), maxYear = _getBoundary.maxYear, maxDate2 = _getBoundary.maxDate, maxMonth = _getBoundary.maxMonth, maxHour = _getBoundary.maxHour, maxMinute = _getBoundary.maxMinute, maxSeconds = _getBoundary.maxSeconds;
108
- var _getBoundary2 = getBoundary("min", curDate), minYear = _getBoundary2.minYear, minDate2 = _getBoundary2.minDate, minMonth = _getBoundary2.minMonth, minHour = _getBoundary2.minHour, minMinute = _getBoundary2.minMinute, minSeconds = _getBoundary2.minSeconds;
112
+ var _getBoundary = getBoundary("max", curDate), maxYear = _getBoundary.maxYear, maxDate = _getBoundary.maxDate, maxMonth = _getBoundary.maxMonth, maxHour = _getBoundary.maxHour, maxMinute = _getBoundary.maxMinute, maxSeconds = _getBoundary.maxSeconds;
113
+ var _getBoundary2 = getBoundary("min", curDate), minYear = _getBoundary2.minYear, minDate = _getBoundary2.minDate, minMonth = _getBoundary2.minMonth, minHour = _getBoundary2.minHour, minMinute = _getBoundary2.minMinute, minSeconds = _getBoundary2.minSeconds;
109
114
  var result = [{
110
115
  type: "year",
111
116
  range: [minYear, maxYear]
@@ -114,7 +119,7 @@ var DatePicker = function DatePicker2(props) {
114
119
  range: [minMonth, maxMonth]
115
120
  }, {
116
121
  type: "day",
117
- range: [minDate2, maxDate2]
122
+ range: [minDate, maxDate]
118
123
  }, {
119
124
  type: "hour",
120
125
  range: [minHour, maxHour]
@@ -150,7 +155,7 @@ var DatePicker = function DatePicker2(props) {
150
155
  }
151
156
  return result;
152
157
  };
153
- var updateChooseValueCustmer = function updateChooseValueCustmer2(cacheValueData, selectedValue, index) {
158
+ var updateChooseValueCustmer = function updateChooseValueCustmer2(selectedOptions, selectedValue, index) {
154
159
  if (["date", "datetime", "datehour", "month-day", "year-month"].includes(type.toLocaleLowerCase())) {
155
160
  var _date;
156
161
  var formatDate = [];
@@ -158,10 +163,10 @@ var DatePicker = function DatePicker2(props) {
158
163
  formatDate.push(item);
159
164
  });
160
165
  if (type.toLocaleLowerCase() === "month-day" && formatDate.length < 3) {
161
- formatDate.unshift(new Date(modelValue || minDate || maxDate).getFullYear());
166
+ formatDate.unshift(new Date(defaultValue || startDate || endDate).getFullYear());
162
167
  }
163
168
  if (type.toLocaleLowerCase() === "year-month" && formatDate.length < 3) {
164
- formatDate.push(new Date(modelValue || minDate || maxDate).getDate());
169
+ formatDate.push(new Date(defaultValue || startDate || endDate).getDate());
165
170
  }
166
171
  var year = Number(formatDate[0]);
167
172
  var month = Number(formatDate[1]) - 1;
@@ -177,7 +182,7 @@ var DatePicker = function DatePicker2(props) {
177
182
  var isEqual = (currentDate === null || currentDate === void 0 ? void 0 : currentDate.getTime()) === ((_date = date) === null || _date === void 0 ? void 0 : _date.getTime());
178
183
  date && isDate(date) && !isEqual && setCurrentDate(formatValue(date));
179
184
  }
180
- props.onChange && props.onChange(cacheValueData, selectedValue, index);
185
+ props.onChange && props.onChange(selectedOptions, selectedValue, index);
181
186
  };
182
187
  var padZero = function padZero2(num) {
183
188
  var targetLength = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 2;
@@ -196,7 +201,7 @@ var DatePicker = function DatePicker2(props) {
196
201
  });
197
202
  } else {
198
203
  var padMin = padZero(value, 2);
199
- var fatter = isShowChinese ? zhCNType[type2] : "";
204
+ var fatter = showChinese ? zhCNType[type2] : "";
200
205
  fOption = {
201
206
  text: padMin + fatter,
202
207
  value: padMin
@@ -205,6 +210,7 @@ var DatePicker = function DatePicker2(props) {
205
210
  return fOption;
206
211
  };
207
212
  var generateValue = function generateValue2(min, max, val, type2, columnIndex) {
213
+ var _arr$index;
208
214
  var cmin = min;
209
215
  var arr = [];
210
216
  var index = 0;
@@ -219,8 +225,8 @@ var DatePicker = function DatePicker2(props) {
219
225
  index++;
220
226
  }
221
227
  }
222
- defaultValue[columnIndex] = arr[index].value;
223
- setDefaultValue(_toConsumableArray(defaultValue));
228
+ defaultValueOfPicker[columnIndex] = (_arr$index = arr[index]) === null || _arr$index === void 0 ? void 0 : _arr$index.value;
229
+ setDefaultValueOfPicker(_toConsumableArray(defaultValueOfPicker));
224
230
  if (props.filter && props.filter(type2, arr)) {
225
231
  return props.filter(type2, arr);
226
232
  }
@@ -245,43 +251,33 @@ var DatePicker = function DatePicker2(props) {
245
251
  }
246
252
  return d;
247
253
  };
248
- var columns = function columns2(date) {
249
- var val = ranges(date).map(function(res, columnIndex) {
254
+ var columns = function columns2() {
255
+ var val = ranges().map(function(res, columnIndex) {
250
256
  return generateValue(res.range[0], res.range[1], getDateIndex(res.type), res.type, columnIndex);
251
257
  });
252
258
  return val || [];
253
259
  };
254
- useEffect(function() {
255
- setCurrentDate(formatValue(modelValue));
256
- }, []);
257
- useEffect(function() {
258
- setCurrentDate(formatValue(modelValue));
259
- }, [modelValue]);
260
- useEffect(function() {
261
- setShow(visible);
262
- }, [visible]);
263
260
  useEffect(function() {
264
261
  if (currentDate) {
265
- setListData(columns());
262
+ setOptions(columns());
266
263
  }
267
- }, [currentDate]);
264
+ }, []);
268
265
  return React__default.createElement("div", _objectSpread({
269
- className: "nut-datepicker ".concat(className || ""),
266
+ className: "nut-datepicker ".concat(className),
270
267
  style
271
- }, rest), options.length > 0 && React__default.createElement(Picker, {
268
+ }, rest), options.length && React__default.createElement(Picker, {
272
269
  title,
273
- visible: show,
270
+ visible,
274
271
  options,
275
- onClose: onCloseDatePicker,
276
- defaultValue,
277
- onConfirm: function onConfirm(options2, values) {
278
- return onConfirmDatePicker && onConfirmDatePicker(options2, values);
272
+ onClose,
273
+ defaultValue: defaultValueOfPicker,
274
+ onConfirm: function onConfirm(options2, value) {
275
+ return _onConfirm && _onConfirm(options2, value);
279
276
  },
280
- onChange: function onChange2(list, value, index) {
281
- return updateChooseValueCustmer(list, value, index);
277
+ onChange: function onChange2(options2, value, index) {
278
+ return updateChooseValueCustmer(options2, value, index);
282
279
  },
283
- threeDimensional,
284
- ref: pickerRef
280
+ threeDimensional
285
281
  }));
286
282
  };
287
283
  DatePicker.defaultProps = defaultProps;
@@ -1,3 +1,4 @@
1
1
  import '../../Button/style'
2
+ import '../../Overlay/style'
2
3
 
3
4
  import '../../../packages/dialog/dialog.scss'
@@ -1 +1 @@
1
- .nut-button{position:relative;display:inline-block;flex-shrink:0;height:var(--nutui-button-default-height, 38px);box-sizing:border-box;margin:0;padding:0;line-height:var(--nutui-button-default-line-height, 36px);font-size:var(--nutui-button-default-font-size, var(--nutui-font-size-2, 14px));text-align:center;cursor:pointer;transition:opacity .2s;-webkit-appearance:none;user-select:none;touch-action:manipulation;color:var(--nutui-button-default-color, var(--nutui-gray-1, #1a1a1a));background:var(--nutui-button-default-bg-color, var(--nutui-gray-6, #ffffff));border:var(--nutui-button-border-width, 1px) solid var(--nutui-button-default-border-color, rgb(204, 204, 204))}.nut-button .nut-button-text{margin-left:var(--nutui-button-text-icon-margin-left, 5px)}.nut-button:before{position:absolute;top:50%;left:50%;width:100%;height:100%;background-color:var(--nutui-gray-0, #000000);border:inherit;border-color:var(--nutui-gray-0, #000000);border-radius:inherit;transform:translate(-50%,-50%);opacity:0;content:" "}.nut-button:after{border:none}.nut-button:active:before{opacity:.1}.nut-button__warp{height:100%;width:100%;display:flex;align-items:center;justify-content:center;background:initial}.nut-button--loading:before,.nut-button--disabled:before{display:none}.nut-button--solid{color:var(--nutui-button-primary-color, var(--nutui-brand-text-color, #ffffff));background:linear-gradient(135deg,var(--nutui-brand-color, #fa2c19) 0%,var(--nutui-brand-color-end, #fa2c19) 100%);border:var(--nutui-button-border-width, 1px) solid transparent}.nut-button.nut-button--outline{color:var(--nutui-button-primary-border-color, var(--nutui-brand-color, #fa2c19));border-color:var(--nutui-button-primary-border-color, var(--nutui-brand-color, #fa2c19));background:transparent}.nut-button.nut-button--none{color:var(--nutui-button-primary-border-color, var(--nutui-brand-color, #fa2c19));background:transparent;border-color:transparent}.nut-button--primary{color:var(--nutui-button-primary-color, var(--nutui-brand-text-color, #ffffff));background:linear-gradient(135deg,var(--nutui-brand-color, #fa2c19) 0%,var(--nutui-brand-color-end, #fa2c19) 100%);border:var(--nutui-button-border-width, 1px) solid transparent}.nut-button--primary.nut-button--outline{color:var(--nutui-button-primary-border-color, var(--nutui-brand-color, #fa2c19));border-color:var(--nutui-button-primary-border-color, var(--nutui-brand-color, #fa2c19));background:transparent}.nut-button--primary.nut-button--none{color:var(--nutui-button-primary-border-color, var(--nutui-brand-color, #fa2c19));background:transparent;border-color:transparent}.nut-button--info{color:var(--nutui-button-info-color, var(--nutui-brand-text-color, #ffffff));background:linear-gradient(315deg,rgb(73,143,242) 0%,rgb(73,101,242) 100%);border:var(--nutui-button-border-width, 1px) solid transparent}.nut-button--info.nut-button--outline{color:var(--nutui-button-info-border-color, #496af2);border-color:var(--nutui-button-info-border-color, #496af2);background:transparent}.nut-button--info.nut-button--none{color:var(--nutui-button-info-border-color, #496af2);background:transparent;border-color:transparent}.nut-button--success{color:var(--nutui-button-success-color, var(--nutui-brand-text-color, #ffffff));background:linear-gradient(135deg,rgb(38,191,38) 0%,rgb(39,197,48) 45%,rgb(40,207,63) 83%,rgb(41,212,70) 100%);border:var(--nutui-button-border-width, 1px) solid transparent}.nut-button--success.nut-button--outline{color:var(--nutui-button-success-border-color, rgb(38, 191, 38));border-color:var(--nutui-button-success-border-color, rgb(38, 191, 38));background:transparent}.nut-button--success.nut-button--none{color:var(--nutui-button-success-border-color, rgb(38, 191, 38));background:transparent;border-color:transparent}.nut-button--danger{color:var(--nutui-button-danger-color, var(--nutui-brand-text-color, #ffffff));background:var(--nutui-button-danger-background-color, rgb(250, 44, 25));border:var(--nutui-button-border-width, 1px) solid transparent}.nut-button--danger.nut-button--outline{color:var(--nutui-button-danger-border-color, rgb(250, 44, 25));border-color:var(--nutui-button-danger-border-color, rgb(250, 44, 25));background:transparent}.nut-button--danger.nut-button--none{color:var(--nutui-button-danger-border-color, rgb(250, 44, 25));background:transparent;border-color:transparent}.nut-button--warning{color:var(--nutui-button-warning-color, var(--nutui-brand-text-color, #ffffff));background:linear-gradient(135deg,rgb(255,158,13) 0%,rgb(255,167,13) 45%,rgb(255,182,13) 83%,rgb(255,190,13) 100%);border:var(--nutui-button-border-width, 1px) solid transparent}.nut-button--warning.nut-button--outline{color:var(--nutui-button-warning-border-color, rgb(255, 158, 13));border-color:var(--nutui-button-warning-border-color, rgb(255, 158, 13));background:transparent}.nut-button--warning.nut-button--none{color:var(--nutui-button-warning-border-color, rgb(255, 158, 13));background:transparent;border-color:transparent}.nut-button--large{width:100%;height:var(--nutui-button-large-height, 48px);line-height:var(--nutui-button-large-line-height, 46px)}.nut-button--large .text{margin-left:var(--nutui-button-text-icon-large-margin-left, 10px)}.nut-button--normal{padding:var(--nutui-button-default-padding, 0 18px);font-size:var(--nutui-button-default-font-size, var(--nutui-font-size-2, 14px))}.nut-button--small{height:var(--nutui-button-small-height, 28px);line-height:var(--nutui-button-small-line-height, 26px);padding:var(--nutui-button-small-padding, 0 12px);font-size:var(--nutui-button-small-font-size, var(--nutui-font-size-1, 12px))}.nut-button--small .text{margin-left:var(--nutui-button-text-icon-small-margin-left, 2px)}.nut-button--mini{height:var(--nutui-button-mini-height, 24px);line-height:var(--nutui-button-mini-line-height, 1.2);padding:var(--nutui-button-mini-padding, 0 12px);font-size:var(--nutui-button-mini-font-size, var(--nutui-font-size-1, 12px))}.nut-button--mini .text{margin-left:var(--nutui-button-text-icon-mini-margin-left, 1px)}.nut-button--block{display:block;width:100%}.nut-button--disabled{cursor:not-allowed;opacity:var(--nutui-button-disabled-opacity, .68)}.nut-button--loading{cursor:default;opacity:.9}.nut-button--round{border-radius:var(--nutui-button-border-radius, 25px)}.nut-button--square{border-radius:0}.nut-dialog{display:flex;flex-direction:column;align-items:center;width:var(--nutui-dialog-width, 296px);min-height:var(--nutui-dialog-min-height, 156px);padding:var(--nutui-dialog-padding, 28px 24px 16px 24px);box-sizing:border-box}.nut-dialog__outer{position:fixed;max-height:100%;overflow-y:auto;background-color:var(--nutui-gray-6, #ffffff);transition:transform .2s,-webkit-transform .2s;-webkit-overflow-scrolling:touch;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);border-radius:var(--nutui-dialog-outer-bordder-radius, 20px);z-index:var(--nutui-dialog-outer-z-index, 1200);animation-duration:.3s}.nut-dialog__header{display:block;text-align:center;font-size:var(--nutui-font-size-3, 16px);color:var(--nutui-gray-1, #1a1a1a);width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nut-dialog__content{width:100%;overflow:auto;flex:1;margin:var(--nutui-dialog-content-margin, 20px 0);max-height:var(--nutui-dialog-content-max-height, 268px);line-height:var(--nutui-dialog-content-line-height, 16px);font-size:var(--nutui-font-size-1, 12px);color:var(--nutui-gray-2, #757575);word-wrap:break-word;word-break:break-all;white-space:pre-wrap;text-align:var(--nutui-dialog-content-text-align, center)}.nut-dialog__footer{display:flex;align-items:center;width:100%;justify-content:space-around}.nut-dialog__footer.vertical{flex-direction:column}.nut-dialog__footer.vertical .nut-button{min-width:100%;margin:0}.nut-dialog__footer.vertical .nut-button.nut-dialog__footer-cancel{border:0}.nut-dialog__footer.vertical .nut-button.nut-dialog__footer-ok{margin-top:var(--nutui-dialog-vertical-footer-ok-margin-top, 10px)}.nut-dialog__footer .nut-button{min-width:var(--nutui-dialog-footer-button-min-width, 100px)}.nut-dialog__footer-cancel.nut-dialog__footer-cancel{margin-right:var(--nutui-dialog-footer-cancel-margin-right, 20px)}.nut-dialog__footer-ok{max-width:var(--nutui-dialog-footer-ok-max-width, 128px)}
1
+ .nut-button{position:relative;display:inline-block;flex-shrink:0;height:var(--nutui-button-default-height, 38px);box-sizing:border-box;margin:0;padding:0;line-height:var(--nutui-button-default-line-height, 36px);font-size:var(--nutui-button-default-font-size, var(--nutui-font-size-2, 14px));text-align:center;cursor:pointer;transition:opacity .2s;-webkit-appearance:none;user-select:none;touch-action:manipulation;color:var(--nutui-button-default-color, var(--nutui-gray-1, #1a1a1a));background:var(--nutui-button-default-bg-color, var(--nutui-gray-6, #ffffff));border:var(--nutui-button-border-width, 1px) solid var(--nutui-button-default-border-color, rgb(204, 204, 204))}.nut-button .nut-button-text{margin-left:var(--nutui-button-text-icon-margin-left, 5px)}.nut-button:before{position:absolute;top:50%;left:50%;width:100%;height:100%;background-color:var(--nutui-gray-0, #000000);border:inherit;border-color:var(--nutui-gray-0, #000000);border-radius:inherit;transform:translate(-50%,-50%);opacity:0;content:" "}.nut-button:after{border:none}.nut-button:active:before{opacity:.1}.nut-button__warp{height:100%;width:100%;display:flex;align-items:center;justify-content:center;background:initial}.nut-button--loading:before,.nut-button--disabled:before{display:none}.nut-button--solid{color:var(--nutui-button-primary-color, var(--nutui-brand-text-color, #ffffff));background:linear-gradient(135deg,var(--nutui-brand-color, #fa2c19) 0%,var(--nutui-brand-color-end, #fa2c19) 100%);border:var(--nutui-button-border-width, 1px) solid transparent}.nut-button.nut-button--outline{color:var(--nutui-button-primary-border-color, var(--nutui-brand-color, #fa2c19));border-color:var(--nutui-button-primary-border-color, var(--nutui-brand-color, #fa2c19));background:transparent}.nut-button.nut-button--none{color:var(--nutui-button-primary-border-color, var(--nutui-brand-color, #fa2c19));background:transparent;border-color:transparent}.nut-button--primary{color:var(--nutui-button-primary-color, var(--nutui-brand-text-color, #ffffff));background:linear-gradient(135deg,var(--nutui-brand-color, #fa2c19) 0%,var(--nutui-brand-color-end, #fa2c19) 100%);border:var(--nutui-button-border-width, 1px) solid transparent}.nut-button--primary.nut-button--outline{color:var(--nutui-button-primary-border-color, var(--nutui-brand-color, #fa2c19));border-color:var(--nutui-button-primary-border-color, var(--nutui-brand-color, #fa2c19));background:transparent}.nut-button--primary.nut-button--none{color:var(--nutui-button-primary-border-color, var(--nutui-brand-color, #fa2c19));background:transparent;border-color:transparent}.nut-button--info{color:var(--nutui-button-info-color, var(--nutui-brand-text-color, #ffffff));background:linear-gradient(315deg,rgb(73,143,242) 0%,rgb(73,101,242) 100%);border:var(--nutui-button-border-width, 1px) solid transparent}.nut-button--info.nut-button--outline{color:var(--nutui-button-info-border-color, #496af2);border-color:var(--nutui-button-info-border-color, #496af2);background:transparent}.nut-button--info.nut-button--none{color:var(--nutui-button-info-border-color, #496af2);background:transparent;border-color:transparent}.nut-button--success{color:var(--nutui-button-success-color, var(--nutui-brand-text-color, #ffffff));background:linear-gradient(135deg,rgb(38,191,38) 0%,rgb(39,197,48) 45%,rgb(40,207,63) 83%,rgb(41,212,70) 100%);border:var(--nutui-button-border-width, 1px) solid transparent}.nut-button--success.nut-button--outline{color:var(--nutui-button-success-border-color, rgb(38, 191, 38));border-color:var(--nutui-button-success-border-color, rgb(38, 191, 38));background:transparent}.nut-button--success.nut-button--none{color:var(--nutui-button-success-border-color, rgb(38, 191, 38));background:transparent;border-color:transparent}.nut-button--danger{color:var(--nutui-button-danger-color, var(--nutui-brand-text-color, #ffffff));background:var(--nutui-button-danger-background-color, rgb(250, 44, 25));border:var(--nutui-button-border-width, 1px) solid transparent}.nut-button--danger.nut-button--outline{color:var(--nutui-button-danger-border-color, rgb(250, 44, 25));border-color:var(--nutui-button-danger-border-color, rgb(250, 44, 25));background:transparent}.nut-button--danger.nut-button--none{color:var(--nutui-button-danger-border-color, rgb(250, 44, 25));background:transparent;border-color:transparent}.nut-button--warning{color:var(--nutui-button-warning-color, var(--nutui-brand-text-color, #ffffff));background:linear-gradient(135deg,rgb(255,158,13) 0%,rgb(255,167,13) 45%,rgb(255,182,13) 83%,rgb(255,190,13) 100%);border:var(--nutui-button-border-width, 1px) solid transparent}.nut-button--warning.nut-button--outline{color:var(--nutui-button-warning-border-color, rgb(255, 158, 13));border-color:var(--nutui-button-warning-border-color, rgb(255, 158, 13));background:transparent}.nut-button--warning.nut-button--none{color:var(--nutui-button-warning-border-color, rgb(255, 158, 13));background:transparent;border-color:transparent}.nut-button--large{width:100%;height:var(--nutui-button-large-height, 48px);line-height:var(--nutui-button-large-line-height, 46px)}.nut-button--large .text{margin-left:var(--nutui-button-text-icon-large-margin-left, 10px)}.nut-button--normal{padding:var(--nutui-button-default-padding, 0 18px);font-size:var(--nutui-button-default-font-size, var(--nutui-font-size-2, 14px))}.nut-button--small{height:var(--nutui-button-small-height, 28px);line-height:var(--nutui-button-small-line-height, 26px);padding:var(--nutui-button-small-padding, 0 12px);font-size:var(--nutui-button-small-font-size, var(--nutui-font-size-1, 12px))}.nut-button--small .text{margin-left:var(--nutui-button-text-icon-small-margin-left, 2px)}.nut-button--mini{height:var(--nutui-button-mini-height, 24px);line-height:var(--nutui-button-mini-line-height, 1.2);padding:var(--nutui-button-mini-padding, 0 12px);font-size:var(--nutui-button-mini-font-size, var(--nutui-font-size-1, 12px))}.nut-button--mini .text{margin-left:var(--nutui-button-text-icon-mini-margin-left, 1px)}.nut-button--block{display:block;width:100%}.nut-button--disabled{cursor:not-allowed;opacity:var(--nutui-button-disabled-opacity, .68)}.nut-button--loading{cursor:default;opacity:.9}.nut-button--round{border-radius:var(--nutui-button-border-radius, 25px)}.nut-button--square{border-radius:0}.nut-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--nutui-overlay-bg-color, var(--nutui-gray-7, rgba(0, 0, 0, .7)))}.nut-overflow-hidden{overflow:hidden!important}.nut-overlay-fade-enter-active{animation:nut-fade-in}.nut-overlay-fade-enter-active .wrapper .content{background-color:var(--nutui-overlay-content-bg-color, var(--nutui-gray-6, #ffffff));color:var(--nutui-overlay-content-color, var(--nutui-gray-1, #1a1a1a))}.nut-overlay-fade-leave-active{animation:nut-fade-out}.nut-overlay-first-render,.nut-overlay-hidden-render{display:none}@keyframes nut-fade-in{0%{opacity:0}1%{opacity:0}to{opacity:1}}@keyframes nut-fade-out{0%{opacity:1}1%{opacity:1}to{opacity:0}}.nut-dialog{display:flex;flex-direction:column;align-items:center;width:var(--nutui-dialog-width, 296px);min-height:var(--nutui-dialog-min-height, 156px);padding:var(--nutui-dialog-padding, 28px 24px 16px 24px);box-sizing:border-box}.nut-dialog__outer{position:fixed;max-height:100%;overflow-y:auto;background-color:var(--nutui-gray-6, #ffffff);transition:transform .2s,-webkit-transform .2s;-webkit-overflow-scrolling:touch;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);border-radius:var(--nutui-dialog-outer-bordder-radius, 20px);z-index:var(--nutui-dialog-outer-z-index, 1200);animation-duration:.3s}.nut-dialog__header{display:block;text-align:center;font-size:var(--nutui-font-size-3, 16px);color:var(--nutui-gray-1, #1a1a1a);width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nut-dialog__content{width:100%;overflow:auto;flex:1;margin:var(--nutui-dialog-content-margin, 20px 0);max-height:var(--nutui-dialog-content-max-height, 268px);line-height:var(--nutui-dialog-content-line-height, 16px);font-size:var(--nutui-font-size-1, 12px);color:var(--nutui-gray-2, #757575);word-wrap:break-word;word-break:break-all;white-space:pre-wrap;text-align:var(--nutui-dialog-content-text-align, center)}.nut-dialog__footer{display:flex;align-items:center;width:100%;justify-content:space-around}.nut-dialog__footer.vertical{flex-direction:column}.nut-dialog__footer.vertical .nut-button{min-width:100%;margin:0}.nut-dialog__footer.vertical .nut-button.nut-dialog__footer-cancel{border:0}.nut-dialog__footer.vertical .nut-button.nut-dialog__footer-ok{margin-top:var(--nutui-dialog-vertical-footer-ok-margin-top, 10px)}.nut-dialog__footer .nut-button{min-width:var(--nutui-dialog-footer-button-min-width, 100px)}.nut-dialog__footer-cancel.nut-dialog__footer-cancel{margin-right:var(--nutui-dialog-footer-cancel-margin-right, 20px)}.nut-dialog__footer-ok{max-width:var(--nutui-dialog-footer-ok-max-width, 128px)}
@@ -1 +1 @@
1
- .nut-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--nutui-overlay-bg-color, var(--nutui-gray-7, rgba(0, 0, 0, .7)))}.nut-overflow-hidden{overflow:hidden!important}.nut-overlay-fade-enter-active{animation:nut-fade-in}.nut-overlay-fade-enter-active .wrapper .content{background-color:var(--nutui-overlay-content-bg-color, var(--nutui-gray-6, #ffffff));color:var(--nutui-overlay-content-color, var(--nutui-gray-1, #1a1a1a))}.nut-overlay-fade-leave-active{animation:nut-fade-out}.nut-overlay-first-render,.nut-overlay-hidden-render{display:none}@keyframes nut-fade-in{0%{opacity:0}1%{opacity:0}to{opacity:1}}@keyframes nut-fade-out{0%{opacity:1}1%{opacity:1}to{opacity:0}}.nut-menu-item__content{padding:var(--nutui-menu-item-content-padding, 12px 24px);max-height:var(--nutui-menu-item-content-max-height, 214px);overflow-y:auto;display:flex;flex-wrap:wrap;background:var(--nutui-menu-item-content-bg-color, var(--nutui-gray-6, #ffffff))}.nut-menu-item__content_fixed{width:100%;opacity:0;position:fixed}.nut-menu-item__option{color:var(--nutui-gray-1, #1a1a1a);font-size:var(--nutui-font-size-2, 14px);padding-top:var(--nutui-menu-item-option-padding-top, 12px);padding-bottom:var(--nutui-menu-item-option-padding-bottom, 12px);display:flex;align-items:center}.nut-menu-item__option.active{font-weight:500;color:var(--nutui-menu-item-active-text-color, var(--nutui-brand-color, #fa2c19))}.nut-menu-item__option i{margin-right:var(--nutui-menu-item-option-i-margin-right, 6px);display:inline-flex;align-items:center}.nut-menu-item__wrap,.nut-menu-item__wrap-up{position:absolute;width:100%;z-index:2052;overflow:hidden}.nut-menu-item__wrap-up{bottom:var(--nutui-menu-bar-line-height, 48px)}.overlay-fade-enter-active.nut-menu__overlay{top:auto;z-index:2052}.nut-menu__pop.nut-popup{transition:all 0s ease 0s;transform:none}.placeholder-element{position:fixed;top:-var(--nutui-menu-bar-line-height,48px);left:0;right:0;z-index:var(--nutui-menu-bar-opened-z-index, 2001);background-color:transparent}.placeholder-element.up{bottom:-var(--nutui-menu-bar-line-height,48px)}.menu-item-enter{opacity:0;transform:translateY(-30px)}.menu-item-enter-done{opacity:1;transform:translate(0);transition:all .1s}.menu-item-exit{opacity:1;transition:all .1s}.menu-item-exit-done{opacity:0;transition:all .1s}.menu-item-up-enter{opacity:0;transform:translateY(30px)}.menu-item-up-enter-done{opacity:1;transform:translate(0);transition:all .1s}.menu-item-up-exit{opacity:1;transition:all .1s}.menu-item-up-exit-done{opacity:0;transition:all .1s}.nut-menu.scroll-fixed{position:fixed;top:var(--nutui-menu-scroll-fixed-top, 0);z-index:var(--nutui-menu-scroll-fixed-z-index, 1000);width:100%}.nut-menu-relative{position:relative}.nut-menu__bar{position:relative;display:flex;line-height:var(--nutui-menu-bar-line-height, 48px);background-color:var(--nutui-gray-6, #ffffff);box-shadow:var(--nutui-menu-bar-box-shadow, 0 2px 12px rgba(89, 89, 89, .12))}.nut-menu__bar.opened{z-index:var(--nutui-menu-bar-opened-z-index, 2001)}.nut-menu__item{flex:1;text-align:center;font-size:var(--nutui-menu-item-font-size, var(--nutui-font-size-2, 14px));color:var(--nutui-menu-item-text-color, var(--nutui-gray-1, #1a1a1a));min-width:0}.nut-menu__item.active{color:var(--nutui-menu-item-active-text-color, var(--nutui-brand-color, #fa2c19))}.nut-menu__item.disabled{color:var(--nutui-menu-item-disabled-color, #969799)}.nut-menu__title-icon{transition:all .2s linear}.nut-menu__title{display:flex;align-items:center;justify-content:center;max-width:100%}.nut-menu__title.active .nut-menu__title-icon{transform:rotate(180deg)}.nut-menu__title-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;padding-left:var(--nutui-menu-title-text-padding-left, 8px);padding-right:var(--nutui-menu-title-text-padding-right, 8px)}
1
+ .nut-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--nutui-overlay-bg-color, var(--nutui-gray-7, rgba(0, 0, 0, .7)))}.nut-overflow-hidden{overflow:hidden!important}.nut-overlay-fade-enter-active{animation:nut-fade-in}.nut-overlay-fade-enter-active .wrapper .content{background-color:var(--nutui-overlay-content-bg-color, var(--nutui-gray-6, #ffffff));color:var(--nutui-overlay-content-color, var(--nutui-gray-1, #1a1a1a))}.nut-overlay-fade-leave-active{animation:nut-fade-out}.nut-overlay-first-render,.nut-overlay-hidden-render{display:none}@keyframes nut-fade-in{0%{opacity:0}1%{opacity:0}to{opacity:1}}@keyframes nut-fade-out{0%{opacity:1}1%{opacity:1}to{opacity:0}}.nut-menu-item__content{padding:var(--nutui-menu-item-content-padding, 12px 24px);max-height:var(--nutui-menu-item-content-max-height, 214px);overflow-y:auto;display:flex;flex-wrap:wrap;background:var(--nutui-menu-item-content-bg-color, var(--nutui-gray-6, #ffffff))}.nut-menu-item__content_fixed{width:100%;opacity:0;position:fixed}.nut-menu-item__option{color:var(--nutui-gray-1, #1a1a1a);font-size:var(--nutui-font-size-2, 14px);padding-top:var(--nutui-menu-item-option-padding-top, 12px);padding-bottom:var(--nutui-menu-item-option-padding-bottom, 12px);display:flex;align-items:center}.nut-menu-item__option.active{font-weight:500;color:var(--nutui-menu-item-active-text-color, var(--nutui-brand-color, #fa2c19))}.nut-menu-item__option i{margin-right:var(--nutui-menu-item-option-i-margin-right, 6px);display:inline-flex;align-items:center}.nut-menu-item__wrap,.nut-menu-item__wrap-up{position:absolute;width:100%;z-index:2052;overflow:hidden}.nut-menu-item__wrap-up{bottom:var(--nutui-menu-bar-line-height, 48px)}.overlay-fade-enter-active.nut-menu__overlay{top:auto;z-index:2052}.nut-menu__pop.nut-popup{transition:all 0s ease 0s;transform:none}.placeholder-element{position:absolute;top:-var(--nutui-menu-bar-line-height,48px);left:0;right:0;z-index:var(--nutui-menu-bar-opened-z-index, 2001);background-color:transparent}.placeholder-element.up{bottom:-var(--nutui-menu-bar-line-height,48px)}.menu-item-enter{opacity:0;transform:translateY(-30px)}.menu-item-enter-done{opacity:1;transform:translate(0);transition:all .1s}.menu-item-exit{opacity:1;transition:all .1s}.menu-item-exit-done{opacity:0;transition:all .1s}.menu-item-up-enter{opacity:0;transform:translateY(30px)}.menu-item-up-enter-done{opacity:1;transform:translate(0);transition:all .1s}.menu-item-up-exit{opacity:1;transition:all .1s}.menu-item-up-exit-done{opacity:0;transition:all .1s}.nut-menu.scroll-fixed{position:fixed;top:var(--nutui-menu-scroll-fixed-top, 0);z-index:var(--nutui-menu-scroll-fixed-z-index, 1000);width:100%}.nut-menu-relative{position:relative}.nut-menu__bar{position:relative;display:flex;line-height:var(--nutui-menu-bar-line-height, 48px);background-color:var(--nutui-gray-6, #ffffff);box-shadow:var(--nutui-menu-bar-box-shadow, 0 2px 12px rgba(89, 89, 89, .12))}.nut-menu__bar.opened{z-index:var(--nutui-menu-bar-opened-z-index, 2001)}.nut-menu__item{flex:1;text-align:center;font-size:var(--nutui-menu-item-font-size, var(--nutui-font-size-2, 14px));color:var(--nutui-menu-item-text-color, var(--nutui-gray-1, #1a1a1a));min-width:0}.nut-menu__item.active{color:var(--nutui-menu-item-active-text-color, var(--nutui-brand-color, #fa2c19))}.nut-menu__item.disabled{color:var(--nutui-menu-item-disabled-color, #969799)}.nut-menu__title-icon{transition:all .2s linear}.nut-menu__title{display:flex;align-items:center;justify-content:center;max-width:100%}.nut-menu__title.active .nut-menu__title-icon{transform:rotate(180deg)}.nut-menu__title-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;padding-left:var(--nutui-menu-title-text-padding-left, 8px);padding-right:var(--nutui-menu-title-text-padding-right, 8px)}
package/dist/esm/Menu.js CHANGED
@@ -67,6 +67,7 @@ var Menu = function Menu2(props) {
67
67
  };
68
68
  var hideMenuItem = function hideMenuItem2(index) {
69
69
  showMenuItem[index] = false;
70
+ console.log(_toConsumableArray(showMenuItem));
70
71
  setShowMenuItem(_toConsumableArray(showMenuItem));
71
72
  };
72
73
  var updateTitle = function updateTitle2(text, index) {
@@ -75,7 +76,7 @@ var Menu = function Menu2(props) {
75
76
  };
76
77
  var cloneChildren = function cloneChildren2() {
77
78
  return React__default.Children.map(children, function(child, index) {
78
- return React__default.cloneElement(child, {
79
+ return React__default.cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {
79
80
  show: showMenuItem[index],
80
81
  index,
81
82
  activeColor,
@@ -87,7 +88,7 @@ var Menu = function Menu2(props) {
87
88
  hideMenuItem,
88
89
  menuRef
89
90
  }
90
- });
91
+ }));
91
92
  });
92
93
  };
93
94
  var menuTitle = function menuTitle2() {
@@ -115,7 +116,8 @@ var Menu = function Menu2(props) {
115
116
  color: showMenuItem[index] ? activeColor : ""
116
117
  },
117
118
  key: index,
118
- onClick: function onClick() {
119
+ onClick: function onClick(e) {
120
+ e.stopPropagation();
119
121
  !disabled && toggleMenuItem(index);
120
122
  }
121
123
  }, React__default.createElement("div", {
@@ -1 +1 @@
1
- .nut-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--nutui-overlay-bg-color, var(--nutui-gray-7, rgba(0, 0, 0, .7)))}.nut-overflow-hidden{overflow:hidden!important}.nut-overlay-fade-enter-active{animation:nut-fade-in}.nut-overlay-fade-enter-active .wrapper .content{background-color:var(--nutui-overlay-content-bg-color, var(--nutui-gray-6, #ffffff));color:var(--nutui-overlay-content-color, var(--nutui-gray-1, #1a1a1a))}.nut-overlay-fade-leave-active{animation:nut-fade-out}.nut-overlay-first-render,.nut-overlay-hidden-render{display:none}@keyframes nut-fade-in{0%{opacity:0}1%{opacity:0}to{opacity:1}}@keyframes nut-fade-out{0%{opacity:1}1%{opacity:1}to{opacity:0}}.nut-menu-item__content{padding:var(--nutui-menu-item-content-padding, 12px 24px);max-height:var(--nutui-menu-item-content-max-height, 214px);overflow-y:auto;display:flex;flex-wrap:wrap;background:var(--nutui-menu-item-content-bg-color, var(--nutui-gray-6, #ffffff))}.nut-menu-item__content_fixed{width:100%;opacity:0;position:fixed}.nut-menu-item__option{color:var(--nutui-gray-1, #1a1a1a);font-size:var(--nutui-font-size-2, 14px);padding-top:var(--nutui-menu-item-option-padding-top, 12px);padding-bottom:var(--nutui-menu-item-option-padding-bottom, 12px);display:flex;align-items:center}.nut-menu-item__option.active{font-weight:500;color:var(--nutui-menu-item-active-text-color, var(--nutui-brand-color, #fa2c19))}.nut-menu-item__option i{margin-right:var(--nutui-menu-item-option-i-margin-right, 6px);display:inline-flex;align-items:center}.nut-menu-item__wrap,.nut-menu-item__wrap-up{position:absolute;width:100%;z-index:2052;overflow:hidden}.nut-menu-item__wrap-up{bottom:var(--nutui-menu-bar-line-height, 48px)}.overlay-fade-enter-active.nut-menu__overlay{top:auto;z-index:2052}.nut-menu__pop.nut-popup{transition:all 0s ease 0s;transform:none}.placeholder-element{position:fixed;top:-var(--nutui-menu-bar-line-height,48px);left:0;right:0;z-index:var(--nutui-menu-bar-opened-z-index, 2001);background-color:transparent}.placeholder-element.up{bottom:-var(--nutui-menu-bar-line-height,48px)}.menu-item-enter{opacity:0;transform:translateY(-30px)}.menu-item-enter-done{opacity:1;transform:translate(0);transition:all .1s}.menu-item-exit{opacity:1;transition:all .1s}.menu-item-exit-done{opacity:0;transition:all .1s}.menu-item-up-enter{opacity:0;transform:translateY(30px)}.menu-item-up-enter-done{opacity:1;transform:translate(0);transition:all .1s}.menu-item-up-exit{opacity:1;transition:all .1s}.menu-item-up-exit-done{opacity:0;transition:all .1s}
1
+ .nut-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--nutui-overlay-bg-color, var(--nutui-gray-7, rgba(0, 0, 0, .7)))}.nut-overflow-hidden{overflow:hidden!important}.nut-overlay-fade-enter-active{animation:nut-fade-in}.nut-overlay-fade-enter-active .wrapper .content{background-color:var(--nutui-overlay-content-bg-color, var(--nutui-gray-6, #ffffff));color:var(--nutui-overlay-content-color, var(--nutui-gray-1, #1a1a1a))}.nut-overlay-fade-leave-active{animation:nut-fade-out}.nut-overlay-first-render,.nut-overlay-hidden-render{display:none}@keyframes nut-fade-in{0%{opacity:0}1%{opacity:0}to{opacity:1}}@keyframes nut-fade-out{0%{opacity:1}1%{opacity:1}to{opacity:0}}.nut-menu-item__content{padding:var(--nutui-menu-item-content-padding, 12px 24px);max-height:var(--nutui-menu-item-content-max-height, 214px);overflow-y:auto;display:flex;flex-wrap:wrap;background:var(--nutui-menu-item-content-bg-color, var(--nutui-gray-6, #ffffff))}.nut-menu-item__content_fixed{width:100%;opacity:0;position:fixed}.nut-menu-item__option{color:var(--nutui-gray-1, #1a1a1a);font-size:var(--nutui-font-size-2, 14px);padding-top:var(--nutui-menu-item-option-padding-top, 12px);padding-bottom:var(--nutui-menu-item-option-padding-bottom, 12px);display:flex;align-items:center}.nut-menu-item__option.active{font-weight:500;color:var(--nutui-menu-item-active-text-color, var(--nutui-brand-color, #fa2c19))}.nut-menu-item__option i{margin-right:var(--nutui-menu-item-option-i-margin-right, 6px);display:inline-flex;align-items:center}.nut-menu-item__wrap,.nut-menu-item__wrap-up{position:absolute;width:100%;z-index:2052;overflow:hidden}.nut-menu-item__wrap-up{bottom:var(--nutui-menu-bar-line-height, 48px)}.overlay-fade-enter-active.nut-menu__overlay{top:auto;z-index:2052}.nut-menu__pop.nut-popup{transition:all 0s ease 0s;transform:none}.placeholder-element{position:absolute;top:-var(--nutui-menu-bar-line-height,48px);left:0;right:0;z-index:var(--nutui-menu-bar-opened-z-index, 2001);background-color:transparent}.placeholder-element.up{bottom:-var(--nutui-menu-bar-line-height,48px)}.menu-item-enter{opacity:0;transform:translateY(-30px)}.menu-item-enter-done{opacity:1;transform:translate(0);transition:all .1s}.menu-item-exit{opacity:1;transition:all .1s}.menu-item-exit-done{opacity:0;transition:all .1s}.menu-item-up-enter{opacity:0;transform:translateY(30px)}.menu-item-up-enter-done{opacity:1;transform:translate(0);transition:all .1s}.menu-item-up-exit{opacity:1;transition:all .1s}.menu-item-up-exit-done{opacity:0;transition:all .1s}
@@ -21,17 +21,18 @@ function _objectSpread(target) {
21
21
  }
22
22
  return target;
23
23
  }
24
- import React__default, { forwardRef, useState, useEffect, useImperativeHandle } from "react";
24
+ import React__default, { forwardRef, useState, useEffect, useImperativeHandle, useRef } from "react";
25
25
  import classNames from "classnames";
26
26
  import { CSSTransition } from "react-transition-group";
27
27
  import { Check } from "@nutui/icons-react";
28
28
  import { O as Overlay } from "./overlay2.js";
29
+ import { u as useClickAway } from "./use-click-away.js";
29
30
  import { C as ComponentDefaults } from "./typings.js";
31
+ import "./index.js";
30
32
  var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, {
31
33
  columns: 1,
32
34
  direction: "down",
33
35
  icon: null,
34
- closeOnClickAway: false,
35
36
  activeTitleClass: "",
36
37
  inactiveTitleClass: "",
37
38
  onChange: function onChange(value) {
@@ -45,9 +46,6 @@ var MenuItem = forwardRef(function(props, ref) {
45
46
  useEffect(function() {
46
47
  setShowPopup(show);
47
48
  }, [show]);
48
- useEffect(function() {
49
- getParentOffset();
50
- }, [_showPopup]);
51
49
  useImperativeHandle(ref, function() {
52
50
  return {
53
51
  toggle: parent.toggleMenuItem
@@ -68,20 +66,6 @@ var MenuItem = forwardRef(function(props, ref) {
68
66
  setValue(item.value);
69
67
  onChange2 && onChange2(item);
70
68
  };
71
- var _useState5 = useState({
72
- top: 0,
73
- height: 0
74
- }), _useState6 = _slicedToArray(_useState5, 2), position = _useState6[0], setPosition = _useState6[1];
75
- var getParentOffset = function getParentOffset2() {
76
- setTimeout(function() {
77
- var p = parent.menuRef.current;
78
- var rect = p.getBoundingClientRect();
79
- setPosition({
80
- height: rect.height,
81
- top: rect.top
82
- });
83
- });
84
- };
85
69
  var isShow = function isShow2() {
86
70
  if (_showPopup)
87
71
  return {};
@@ -91,34 +75,37 @@ var MenuItem = forwardRef(function(props, ref) {
91
75
  };
92
76
  var getPosition = function getPosition2() {
93
77
  return direction === "down" ? {
94
- top: "".concat(position.top + position.height, "px")
78
+ position: "absolute",
79
+ height: "".concat(window.innerHeight, "px")
95
80
  } : {
96
- bottom: "".concat(window.innerHeight - position.top, "px"),
97
- top: "auto"
81
+ position: "absolute",
82
+ bottom: "100%",
83
+ top: "auto",
84
+ height: "".concat(window.innerHeight, "px")
98
85
  };
99
86
  };
100
- var placeholderStyle = function placeholderStyle2() {
101
- if (direction === "down") {
102
- return _objectSpread({
103
- height: "".concat(position.top + position.height, "px"),
104
- top: 0
105
- }, isShow());
106
- }
107
- return _objectSpread({
108
- height: "".concat(window.innerHeight - position.top, "px"),
109
- bottom: "0px",
110
- top: "auto"
111
- }, isShow());
112
- };
113
- return React__default.createElement(React__default.Fragment, null, closeOnClickAway ? React__default.createElement("div", {
114
- className: "placeholder-element ".concat(classNames({
115
- up: direction === "up"
116
- })),
117
- style: placeholderStyle(),
118
- onClick: function onClick() {
119
- return parent.toggleMenuItem(index);
87
+ var micRef = useRef(null);
88
+ var targetSet = [micRef.current];
89
+ useClickAway(
90
+ function() {
91
+ parent.hideMenuItem(index);
92
+ },
93
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
94
+ // @ts-ignore
95
+ targetSet,
96
+ "click",
97
+ _showPopup,
98
+ closeOnClickAway
99
+ );
100
+ return React__default.createElement("div", {
101
+ className: "nut-menu-item-container",
102
+ ref: micRef,
103
+ style: {
104
+ position: "absolute",
105
+ left: 0,
106
+ right: 0
120
107
  }
121
- }) : null, React__default.createElement(Overlay, {
108
+ }, React__default.createElement(Overlay, {
122
109
  className: "nut-menu__overlay",
123
110
  style: getPosition(),
124
111
  lockScroll: parent.lockScroll,
@@ -139,7 +126,7 @@ var MenuItem = forwardRef(function(props, ref) {
139
126
  classNames: direction === "down" ? "menu-item" : "menu-item-up"
140
127
  }, React__default.createElement("div", {
141
128
  className: "nut-menu-item__content"
142
- }, options === null || options === void 0 ? void 0 : options.map(function(item, index2) {
129
+ }, options === null || options === void 0 ? void 0 : options.map(function(item) {
143
130
  return React__default.createElement("div", {
144
131
  className: "nut-menu-item__option ".concat(classNames({
145
132
  active: item.value === _value
@@ -370,7 +370,7 @@ var NoticeBar = function NoticeBar2(props) {
370
370
  onClick: handleClick
371
371
  }, leftIcon ? React__default.createElement("div", {
372
372
  className: "left-icon"
373
- }, leftIcon) : null, children ? React__default.createElement(React__default.Fragment, null, React__default.createElement("div", {
373
+ }, leftIcon) : null, children ? React__default.createElement("div", {
374
374
  className: "nut-noticebar__inner",
375
375
  ref: innerRef
376
376
  }, scrollList.current.map(function(item, index) {
@@ -382,7 +382,7 @@ var NoticeBar = function NoticeBar2(props) {
382
382
  handleItemClick(e, item);
383
383
  }
384
384
  }, item);
385
- }))) : React__default.createElement("div", {
385
+ })) : React__default.createElement("div", {
386
386
  className: "horseLamp_list",
387
387
  style: horseLampStyle
388
388
  }, scrollList.current.map(function(item, index) {
@@ -425,7 +425,7 @@ var InternalPicker = function InternalPicker2(props, ref) {
425
425
  return React__default.createElement(Popup, {
426
426
  visible,
427
427
  position: "bottom",
428
- onClose: function onClose2() {
428
+ afterClose: function afterClose2() {
429
429
  closePicker();
430
430
  }
431
431
  }, React__default.createElement("div", _objectSpread({
@@ -23,50 +23,13 @@ function _objectSpread(target) {
23
23
  }
24
24
  return target;
25
25
  }
26
- import React__default, { useEffect, useRef, useState } from "react";
26
+ import React__default, { useRef, useState, useEffect } from "react";
27
27
  import classNames from "classnames";
28
28
  import Popup from "./Popup.js";
29
29
  import { g as getRect } from "./use-client-rect.js";
30
- import { a as isFunction, u as upperCaseFirst } from "./index.js";
30
+ import { u as upperCaseFirst } from "./index.js";
31
31
  import { C as ComponentDefaults } from "./typings.js";
32
- var getTargetElement = function getTargetElement2(target) {
33
- var targetElement;
34
- if (isFunction(target)) {
35
- targetElement = target();
36
- } else if ("current" in target) {
37
- targetElement = target.current;
38
- } else {
39
- targetElement = target;
40
- }
41
- return targetElement;
42
- };
43
- function useClickAway(onClickAway, target) {
44
- var eventName = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : "click";
45
- var isListener = arguments.length > 3 ? arguments[3] : void 0;
46
- var outerVar = arguments.length > 4 ? arguments[4] : void 0;
47
- var handler = function handler2(event) {
48
- var targets = Array.isArray(target) ? target : [target];
49
- if (targets.some(function(item) {
50
- var targetElement = getTargetElement(item);
51
- return !targetElement || targetElement.contains(event.target);
52
- })) {
53
- return;
54
- }
55
- if (outerVar) {
56
- onClickAway();
57
- }
58
- };
59
- useEffect(function() {
60
- if (isListener) {
61
- window.addEventListener(eventName, handler, true);
62
- } else {
63
- window.removeEventListener(eventName, handler, true);
64
- }
65
- return function() {
66
- window.removeEventListener(eventName, handler, true);
67
- };
68
- }, [target]);
69
- }
32
+ import { u as useClickAway } from "./use-click-away.js";
70
33
  var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, {
71
34
  list: [],
72
35
  location: "bottom",
package/dist/esm/Popup.js CHANGED
@@ -138,7 +138,7 @@ var Popup = function Popup2(props) {
138
138
  return React__default.createElement(CSSTransition, {
139
139
  classNames: transitionName,
140
140
  unmountOnExit: true,
141
- timeout: 500,
141
+ timeout: 300,
142
142
  "in": innerVisible,
143
143
  onEntered: onHandleOpened,
144
144
  onExited: onHandleClosed