@nutui/nutui-react 2.0.0-alpha.1 → 2.0.0-alpha.3

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 (49) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/esm/Address.js +1 -1
  3. package/dist/esm/Animate.js +6 -7
  4. package/dist/esm/Badge.js +15 -22
  5. package/dist/esm/CalendarItem.js +2 -12
  6. package/dist/esm/Cascader.js +4 -2
  7. package/dist/esm/Dialog.js +162 -171
  8. package/dist/esm/Divider.js +4 -3
  9. package/dist/esm/Drag.js +7 -9
  10. package/dist/esm/Elevator.js +38 -41
  11. package/dist/esm/Menu.js +75 -73
  12. package/dist/esm/MenuItem.js +29 -27
  13. package/dist/esm/NavBar.js +17 -48
  14. package/dist/esm/Popup.js +2 -4
  15. package/dist/esm/Progress.js +20 -68
  16. package/dist/esm/Switch.js +16 -30
  17. package/dist/esm/TabPane.js +0 -2
  18. package/dist/esm/Tabs.js +2 -2
  19. package/dist/esm/Uploader.js +2 -3
  20. package/dist/esm/nutui-react.es.js +170 -170
  21. package/dist/esm/overlay2.js +12 -14
  22. package/dist/esm/raf.js +16 -0
  23. package/dist/esm/tabpane2.js +7 -9
  24. package/dist/esm/tabs2.js +101 -93
  25. package/dist/locales/base.js +1 -1
  26. package/dist/locales/en-US.js +1 -1
  27. package/dist/locales/id-ID.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.mjs +18642 -19336
  32. package/dist/nutui.react.umd.js +18640 -19334
  33. package/dist/packages/badge/badge.scss +8 -17
  34. package/dist/packages/dialog/dialog.scss +36 -65
  35. package/dist/packages/elevator/elevator.scss +2 -28
  36. package/dist/packages/menu/menu.scss +44 -55
  37. package/dist/packages/menuitem/menuitem.scss +16 -26
  38. package/dist/packages/navbar/navbar.scss +16 -115
  39. package/dist/packages/overlay/overlay.scss +11 -4
  40. package/dist/packages/progress/progress.scss +19 -58
  41. package/dist/packages/switch/switch.scss +13 -31
  42. package/dist/packages/tabs/tabs.scss +196 -225
  43. package/dist/style.css +1 -1
  44. package/dist/style.mjs +1 -1
  45. package/dist/styles/themes/default.scss +17 -17
  46. package/dist/styles/variables-jmapp.scss +35 -125
  47. package/dist/styles/variables.scss +53 -136
  48. package/dist/types/index.d.ts +343 -400
  49. package/package.json +2 -2
package/dist/esm/Drag.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
4
  var _excluded = ["attract", "direction", "boundary", "children", "className", "style"];
5
5
  function ownKeys(object, enumerableOnly) {
6
6
  var keys = Object.keys(object);
@@ -26,9 +26,8 @@ function _objectSpread(target) {
26
26
  import React__default, { useState, useRef, useEffect } from "react";
27
27
  import { useDrag } from "@use-gesture/react";
28
28
  import { useSpring, animated } from "@react-spring/web";
29
- import { c as cn } from "./bem.js";
30
- import "@bem-react/classname";
31
- var defaultProps = {
29
+ import { C as ComponentDefaults } from "./typings.js";
30
+ var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, {
32
31
  attract: false,
33
32
  direction: void 0,
34
33
  boundary: {
@@ -36,12 +35,11 @@ var defaultProps = {
36
35
  left: 0,
37
36
  right: 0,
38
37
  bottom: 0
39
- },
40
- className: ""
41
- };
38
+ }
39
+ });
42
40
  var Drag = function Drag2(props) {
43
41
  var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props), attract = _defaultProps$props.attract, direction = _defaultProps$props.direction, boundary = _defaultProps$props.boundary, children = _defaultProps$props.children, className = _defaultProps$props.className, style = _defaultProps$props.style, reset = _objectWithoutProperties(_defaultProps$props, _excluded);
44
- var b = cn("drag");
42
+ var classPrefix = "nut-drag";
45
43
  var _useState = useState(boundary), _useState2 = _slicedToArray(_useState, 2), boundaryState = _useState2[0], setBoundaryState = _useState2[1];
46
44
  var myDrag = useRef(null);
47
45
  var _useSpring = useSpring(function() {
@@ -102,7 +100,7 @@ var Drag = function Drag2(props) {
102
100
  }, [myDrag]);
103
101
  return React__default.createElement("div", _objectSpread(_objectSpread({
104
102
  style,
105
- className: "".concat(b(), " ").concat(className)
103
+ className: "".concat(classPrefix, " ").concat(className)
106
104
  }, reset), {}, {
107
105
  ref: myDrag
108
106
  }), React__default.createElement(animated.div, _objectSpread({
@@ -1,7 +1,7 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
- var _excluded = ["height", "acceptKey", "indexList", "isSticky", "spaceHeight", "titleHeight", "className", "onClickItem", "onClickIndex", "children"];
3
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
+ var _excluded = ["height", "floorKey", "list", "sticky", "spaceHeight", "titleHeight", "className", "style", "onClickItem", "onClickIndex", "children"];
5
5
  function ownKeys(object, enumerableOnly) {
6
6
  var keys = Object.keys(object);
7
7
  if (Object.getOwnPropertySymbols) {
@@ -26,21 +26,21 @@ function _objectSpread(target) {
26
26
  import React__default, { createContext, useRef, useState, useEffect } from "react";
27
27
  import { useGesture } from "@use-gesture/react";
28
28
  import { animated } from "@react-spring/web";
29
- import { c as cn } from "./bem.js";
30
- import "@bem-react/classname";
29
+ import classNames from "classnames";
30
+ import { C as ComponentDefaults } from "./typings.js";
31
31
  var elevatorContext = createContext({});
32
- var defaultProps = {
32
+ var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, {
33
33
  height: "200px",
34
- acceptKey: "title",
35
- indexList: [],
36
- isSticky: false,
34
+ floorKey: "title",
35
+ list: [],
36
+ sticky: false,
37
37
  spaceHeight: 23,
38
- titleHeight: 35,
39
- className: ""
40
- };
38
+ titleHeight: 35
39
+ });
41
40
  var Elevator = function Elevator2(props) {
42
- var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props), height = _defaultProps$props.height, acceptKey = _defaultProps$props.acceptKey, indexList = _defaultProps$props.indexList, isSticky = _defaultProps$props.isSticky, spaceHeight = _defaultProps$props.spaceHeight, titleHeight = _defaultProps$props.titleHeight, className = _defaultProps$props.className, onClickItem = _defaultProps$props.onClickItem, onClickIndex = _defaultProps$props.onClickIndex, children = _defaultProps$props.children, rest = _objectWithoutProperties(_defaultProps$props, _excluded);
43
- var b = cn("elevator");
41
+ var _classNames2;
42
+ var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props), height = _defaultProps$props.height, floorKey = _defaultProps$props.floorKey, list = _defaultProps$props.list, sticky = _defaultProps$props.sticky, spaceHeight = _defaultProps$props.spaceHeight, titleHeight = _defaultProps$props.titleHeight, className = _defaultProps$props.className, style = _defaultProps$props.style, onClickItem = _defaultProps$props.onClickItem, onClickIndex = _defaultProps$props.onClickIndex, children = _defaultProps$props.children, rest = _objectWithoutProperties(_defaultProps$props, _excluded);
43
+ var classPrefix = "nut-elevator";
44
44
  var listview = useRef(null);
45
45
  var initData = {
46
46
  anchorIndex: 0,
@@ -160,61 +160,58 @@ var Elevator = function Elevator2(props) {
160
160
  }
161
161
  }, [listview]);
162
162
  return React__default.createElement("div", _objectSpread({
163
- className: "".concat(b(), " ").concat(className)
164
- }, rest), isSticky && scrollY > 0 ? React__default.createElement("div", {
165
- className: b("list__fixed")
163
+ className: "".concat(classPrefix, " ").concat(className),
164
+ style
165
+ }, rest), sticky && scrollY > 0 ? React__default.createElement("div", {
166
+ className: "".concat(classPrefix, "__list__fixed")
166
167
  }, React__default.createElement("span", {
167
- className: "fixed-title"
168
- }, indexList[currentIndex][acceptKey])) : null, React__default.createElement("div", {
169
- className: b("list"),
168
+ className: "".concat(classPrefix, "__list__fixed__title")
169
+ }, list[currentIndex][floorKey])) : null, React__default.createElement("div", {
170
+ className: "".concat(classPrefix, "__list"),
170
171
  style: {
171
172
  height: Number.isNaN(+height) ? height : "".concat(height, "px")
172
173
  }
173
174
  }, React__default.createElement("div", {
174
- className: b("list__inner"),
175
+ className: "".concat(classPrefix, "__list__inner"),
175
176
  ref: listview
176
- }, indexList.map(function(item, idx) {
177
+ }, list.map(function(item, idx) {
177
178
  return React__default.createElement("div", {
178
- className: b("list__item"),
179
+ className: "".concat(classPrefix, "__list__item"),
179
180
  key: idx
180
181
  }, React__default.createElement("div", {
181
- className: b("list__item__code")
182
- }, item[acceptKey]), React__default.createElement(React__default.Fragment, null, item.list.map(function(subitem) {
182
+ className: "".concat(classPrefix, "__list__item__code")
183
+ }, item[floorKey]), React__default.createElement(React__default.Fragment, null, item.list.map(function(subitem) {
184
+ var _classNames;
183
185
  return React__default.createElement("div", {
184
- className: b("list__item__name", {
185
- highcolor: currentData.id === subitem.id && currentKey === item[acceptKey]
186
- }),
186
+ className: classNames((_classNames = {}, _defineProperty(_classNames, "".concat(classPrefix, "__list__item__name"), true), _defineProperty(_classNames, "".concat(classPrefix, "__list__item__name--highcolor"), currentData.id === subitem.id && currentKey === item[floorKey]), _classNames)),
187
187
  key: subitem.id,
188
188
  onClick: function onClick() {
189
- return handleClickItem(item[acceptKey], subitem);
189
+ return handleClickItem(item[floorKey], subitem);
190
190
  }
191
191
  }, children ? React__default.createElement(React__default.Fragment, null, React__default.createElement(elevatorContext.Provider, {
192
192
  value: subitem
193
193
  }, children)) : subitem.name);
194
194
  })));
195
- }))), indexList.length && scrollStart ? React__default.createElement("div", {
196
- className: b("code--current", {
197
- current: true
198
- })
199
- }, indexList[codeIndex][acceptKey]) : null, React__default.createElement("div", {
200
- className: b("bars")
195
+ }))), list.length && scrollStart ? React__default.createElement("div", {
196
+ className: classNames((_classNames2 = {}, _defineProperty(_classNames2, "".concat(classPrefix, "__code--current"), true), _defineProperty(_classNames2, "".concat(classPrefix, "__code--current--current"), true), _classNames2))
197
+ }, list[codeIndex][floorKey]) : null, React__default.createElement("div", {
198
+ className: "".concat(classPrefix, "__bars")
201
199
  }, React__default.createElement(animated.div, _objectSpread(_objectSpread({
202
- className: b("bars__inner")
200
+ className: "".concat(classPrefix, "__bars__inner")
203
201
  }, bind()), {}, {
204
202
  style: {
205
203
  touchAction: "pan-y"
206
204
  }
207
- }), indexList.map(function(item, index) {
205
+ }), list.map(function(item, index) {
206
+ var _classNames3;
208
207
  return React__default.createElement("div", {
209
- className: b("bars__inner__item", {
210
- active: item[acceptKey] === indexList[currentIndex][acceptKey]
211
- }),
208
+ className: classNames((_classNames3 = {}, _defineProperty(_classNames3, "".concat(classPrefix, "__bars__inner__item"), true), _defineProperty(_classNames3, "".concat(classPrefix, "__bars__inner__item--active"), item[floorKey] === list[currentIndex][floorKey]), _classNames3)),
212
209
  "data-index": index,
213
210
  key: index,
214
211
  onClick: function onClick() {
215
- return handleClickIndex(item[acceptKey]);
212
+ return handleClickIndex(item[floorKey]);
216
213
  }
217
- }, item[acceptKey]);
214
+ }, item[floorKey]);
218
215
  }))));
219
216
  };
220
217
  Elevator.defaultProps = defaultProps;
package/dist/esm/Menu.js CHANGED
@@ -2,7 +2,7 @@ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
4
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
5
- var _excluded = ["className", "titleIcon", "scrollFixed", "lockScroll", "closeOnClickOverlay", "children", "activeColor"];
5
+ var _excluded = ["className", "icon", "scrollFixed", "lockScroll", "closeOnOverlayClick", "children", "activeColor"];
6
6
  function ownKeys(object, enumerableOnly) {
7
7
  var keys = Object.keys(object);
8
8
  if (Object.getOwnPropertySymbols) {
@@ -29,17 +29,15 @@ import classNames from "classnames";
29
29
  import { ArrowUp2, ArrowDown2 } from "@nutui/icons-react";
30
30
  import { C as ComponentDefaults } from "./typings.js";
31
31
  var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, {
32
- className: "",
33
- style: {},
34
32
  activeColor: "",
35
- closeOnClickOverlay: true,
33
+ closeOnOverlayClick: true,
36
34
  scrollFixed: false,
37
35
  lockScroll: true,
38
- titleIcon: null
36
+ icon: null
39
37
  });
40
38
  var Menu = function Menu2(props) {
41
- var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props), className = _defaultProps$props.className, titleIcon = _defaultProps$props.titleIcon, scrollFixed = _defaultProps$props.scrollFixed, lockScroll = _defaultProps$props.lockScroll, closeOnClickOverlay = _defaultProps$props.closeOnClickOverlay, children = _defaultProps$props.children, activeColor = _defaultProps$props.activeColor, rest = _objectWithoutProperties(_defaultProps$props, _excluded);
42
- var parentRef = useRef(null);
39
+ var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props), className = _defaultProps$props.className, icon = _defaultProps$props.icon, scrollFixed = _defaultProps$props.scrollFixed, lockScroll = _defaultProps$props.lockScroll, closeOnOverlayClick = _defaultProps$props.closeOnOverlayClick, children = _defaultProps$props.children, activeColor = _defaultProps$props.activeColor, rest = _objectWithoutProperties(_defaultProps$props, _excluded);
40
+ var menuRef = useRef(null);
43
41
  var _useState = useState(false), _useState2 = _slicedToArray(_useState, 2), isScrollFixed = _useState2[0], setIsScrollFixed = _useState2[1];
44
42
  var getScrollTop = function getScrollTop2(el) {
45
43
  return Math.max(0, "scrollTop" in el ? el.scrollTop : el.pageYOffset);
@@ -58,92 +56,96 @@ var Menu = function Menu2(props) {
58
56
  return window.removeEventListener("scroll", onScroll);
59
57
  };
60
58
  }, []);
61
- var _useState3 = useState([]), _useState4 = _slicedToArray(_useState3, 2), itemShow = _useState4[0], setItemShow = _useState4[1];
62
- var _useState5 = useState([]), _useState6 = _slicedToArray(_useState5, 2), itemTitle = _useState6[0], setItemTitle = _useState6[1];
63
- var toggleItemShow = function toggleItemShow2(index) {
64
- itemShow[index] = !itemShow[index];
65
- var temp = itemShow.map(function(i, idx) {
59
+ var _useState3 = useState([]), _useState4 = _slicedToArray(_useState3, 2), showMenuItem = _useState4[0], setShowMenuItem = _useState4[1];
60
+ var _useState5 = useState([]), _useState6 = _slicedToArray(_useState5, 2), menuItemTitle = _useState6[0], setMenuItemTitle = _useState6[1];
61
+ var toggleMenuItem = function toggleMenuItem2(index) {
62
+ showMenuItem[index] = !showMenuItem[index];
63
+ var temp = showMenuItem.map(function(i, idx) {
66
64
  return idx === index ? i : false;
67
65
  });
68
- setItemShow(_toConsumableArray(temp));
66
+ setShowMenuItem(_toConsumableArray(temp));
69
67
  };
70
- var hideItemShow = function hideItemShow2(index) {
71
- itemShow[index] = false;
72
- setItemShow(_toConsumableArray(itemShow));
68
+ var hideMenuItem = function hideMenuItem2(index) {
69
+ showMenuItem[index] = false;
70
+ setShowMenuItem(_toConsumableArray(showMenuItem));
73
71
  };
74
72
  var updateTitle = function updateTitle2(text, index) {
75
- itemTitle[index] = text;
76
- setItemTitle(_toConsumableArray(itemTitle));
77
- };
78
- var parent = function parent2() {
79
- return parentRef;
73
+ menuItemTitle[index] = text;
74
+ setMenuItemTitle(_toConsumableArray(menuItemTitle));
80
75
  };
81
76
  var cloneChildren = function cloneChildren2() {
82
77
  return React__default.Children.map(children, function(child, index) {
83
78
  return React__default.cloneElement(child, {
84
- showPopup: itemShow[index],
85
- orderKey: index,
79
+ show: showMenuItem[index],
80
+ index,
86
81
  activeColor,
87
82
  parent: {
88
- closeOnClickOverlay,
83
+ closeOnOverlayClick,
89
84
  lockScroll,
90
- toggleItemShow,
85
+ toggleMenuItem,
91
86
  updateTitle,
92
- hideItemShow,
93
- parent
87
+ hideMenuItem,
88
+ menuRef
94
89
  }
95
90
  });
96
91
  });
97
92
  };
98
- return React__default.createElement("div", _objectSpread(_objectSpread({
99
- className: "nut-menu ".concat(className, " ").concat(isScrollFixed ? "scroll-fixed" : "")
100
- }, rest), {}, {
101
- ref: parentRef
93
+ var menuTitle = function menuTitle2() {
94
+ return React__default.Children.map(children, function(child, index) {
95
+ if (React__default.isValidElement(child)) {
96
+ var _child$props = child.props, title = _child$props.title, options = _child$props.options, value = _child$props.value, disabled = _child$props.disabled, direction = _child$props.direction;
97
+ var selected = options === null || options === void 0 ? void 0 : options.filter(function(option) {
98
+ return option.value === value;
99
+ });
100
+ var finallyTitle = function finallyTitle2() {
101
+ if (title)
102
+ return title;
103
+ if (menuItemTitle && menuItemTitle[index])
104
+ return menuItemTitle[index];
105
+ if (selected && selected.length && selected[0].text)
106
+ return selected[0].text;
107
+ return "";
108
+ };
109
+ return React__default.createElement("div", {
110
+ className: classNames("nut-menu__item ", className, {
111
+ active: showMenuItem[index],
112
+ disabled
113
+ }),
114
+ style: {
115
+ color: showMenuItem[index] ? activeColor : ""
116
+ },
117
+ key: index,
118
+ onClick: function onClick() {
119
+ !disabled && toggleMenuItem(index);
120
+ }
121
+ }, React__default.createElement("div", {
122
+ className: classNames("nut-menu__title ", {
123
+ active: showMenuItem[index],
124
+ disabled
125
+ })
126
+ }, React__default.createElement("div", {
127
+ className: "nut-menu__title-text"
128
+ }, finallyTitle()), icon || (direction === "up" ? React__default.createElement(ArrowUp2, {
129
+ className: "nut-menu__title-icon"
130
+ }) : React__default.createElement(ArrowDown2, {
131
+ className: "nut-menu__title-icon"
132
+ }))));
133
+ }
134
+ return null;
135
+ });
136
+ };
137
+ return React__default.createElement("div", _objectSpread(_objectSpread({}, rest), {}, {
138
+ className: classNames("nut-menu", className, {
139
+ "scroll-fixed": isScrollFixed
140
+ }),
141
+ ref: menuRef
102
142
  }), React__default.createElement("div", {
103
143
  className: "nut-menu-relative"
104
144
  }, React__default.createElement("div", {
105
- className: "nut-menu__bar ".concat(itemShow.includes(true) ? "opened" : "", " ").concat(className)
106
- }, React__default.Children.toArray(children).map(function(child, index) {
107
- if (!child)
108
- return null;
109
- var _child$props = child.props, disabled = _child$props.disabled, title = _child$props.title, value = _child$props.value, direction = _child$props.direction, options = _child$props.options, className2 = _child$props.className;
110
- var currentTitle = options === null || options === void 0 ? void 0 : options.filter(function(option) {
111
- return option.value === value;
112
- });
113
- function finallyTitle() {
114
- if (title)
115
- return title;
116
- if (itemTitle && itemTitle[index])
117
- return itemTitle[index];
118
- if (currentTitle && currentTitle[0] && currentTitle[0].text)
119
- return currentTitle[0].text;
120
- return "";
121
- }
122
- return React__default.createElement("div", {
123
- className: "nut-menu__item ".concat(classNames({
124
- active: itemShow[index],
125
- disabled
126
- }), " ").concat(className2),
127
- style: {
128
- color: itemShow[index] ? activeColor : ""
129
- },
130
- key: index,
131
- onClick: function onClick() {
132
- !disabled && toggleItemShow(index);
133
- }
134
- }, React__default.createElement("div", {
135
- className: "nut-menu__title ".concat(classNames({
136
- active: itemShow[index],
137
- disabled
138
- }))
139
- }, React__default.createElement("div", {
140
- className: "nut-menu__title-text"
141
- }, finallyTitle()), titleIcon || React__default.createElement(React__default.Fragment, null, direction === "up" ? React__default.createElement(ArrowUp2, {
142
- className: "nut-menu__title-icon"
143
- }) : React__default.createElement(ArrowDown2, {
144
- className: "nut-menu__title-icon"
145
- }))));
146
- })), cloneChildren()));
145
+ className: classNames("nut-menu__bar", {
146
+ opened: showMenuItem.includes(true)
147
+ })
148
+ }, menuTitle()), cloneChildren()));
147
149
  };
148
150
  Menu.defaultProps = defaultProps;
149
151
  Menu.displayName = "NutMenu";
@@ -28,11 +28,10 @@ import { Check } from "@nutui/icons-react";
28
28
  import { O as Overlay } from "./overlay2.js";
29
29
  import { C as ComponentDefaults } from "./typings.js";
30
30
  var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, {
31
- className: "",
32
- style: {},
33
31
  columns: 1,
34
32
  direction: "down",
35
- optionsIcon: null,
33
+ icon: null,
34
+ closeOnClickAway: false,
36
35
  activeTitleClass: "",
37
36
  inactiveTitleClass: "",
38
37
  onChange: function onChange(value) {
@@ -40,20 +39,18 @@ var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, {
40
39
  }
41
40
  });
42
41
  var MenuItem = forwardRef(function(props, ref) {
43
- var mergedProps = _objectSpread(_objectSpread({}, defaultProps), props);
44
- var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props), style = _defaultProps$props.style, options = _defaultProps$props.options, value = _defaultProps$props.value, columns = _defaultProps$props.columns, title = _defaultProps$props.title, optionsIcon = _defaultProps$props.optionsIcon, direction = _defaultProps$props.direction, onChange2 = _defaultProps$props.onChange, activeTitleClass = _defaultProps$props.activeTitleClass, inactiveTitleClass = _defaultProps$props.inactiveTitleClass, children = _defaultProps$props.children;
45
- var activeColor = mergedProps.activeColor, showPopup = mergedProps.showPopup, parent = mergedProps.parent, orderKey = mergedProps.orderKey;
46
- var _useState = useState(showPopup), _useState2 = _slicedToArray(_useState, 2), _showPopup = _useState2[0], setShowPopup = _useState2[1];
42
+ var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props), className = _defaultProps$props.className, style = _defaultProps$props.style, options = _defaultProps$props.options, value = _defaultProps$props.value, columns = _defaultProps$props.columns, title = _defaultProps$props.title, icon = _defaultProps$props.icon, direction = _defaultProps$props.direction, onChange2 = _defaultProps$props.onChange, activeTitleClass = _defaultProps$props.activeTitleClass, inactiveTitleClass = _defaultProps$props.inactiveTitleClass, closeOnClickAway = _defaultProps$props.closeOnClickAway, children = _defaultProps$props.children, activeColor = _defaultProps$props.activeColor, show = _defaultProps$props.show, parent = _defaultProps$props.parent, index = _defaultProps$props.index;
43
+ var _useState = useState(show), _useState2 = _slicedToArray(_useState, 2), _showPopup = _useState2[0], setShowPopup = _useState2[1];
47
44
  var _useState3 = useState(value), _useState4 = _slicedToArray(_useState3, 2), _value = _useState4[0], setValue = _useState4[1];
48
45
  useEffect(function() {
49
- setShowPopup(showPopup);
50
- }, [showPopup]);
46
+ setShowPopup(show);
47
+ }, [show]);
51
48
  useEffect(function() {
52
49
  getParentOffset();
53
50
  }, [_showPopup]);
54
51
  useImperativeHandle(ref, function() {
55
52
  return {
56
- toggle: parent.toggleItemShow
53
+ toggle: parent.toggleMenuItem
57
54
  };
58
55
  });
59
56
  var getIconCName = function getIconCName2(optionVal, value2) {
@@ -62,11 +59,11 @@ var MenuItem = forwardRef(function(props, ref) {
62
59
  };
63
60
  var setTitle = function setTitle2(text) {
64
61
  if (!title) {
65
- parent.updateTitle(text, orderKey);
62
+ parent.updateTitle(text, index);
66
63
  }
67
64
  };
68
65
  var handleClick = function handleClick2(item) {
69
- parent.toggleItemShow(orderKey);
66
+ parent.toggleMenuItem(index);
70
67
  setTitle(item.text);
71
68
  setValue(item.value);
72
69
  onChange2 && onChange2(item);
@@ -77,7 +74,7 @@ var MenuItem = forwardRef(function(props, ref) {
77
74
  }), _useState6 = _slicedToArray(_useState5, 2), position = _useState6[0], setPosition = _useState6[1];
78
75
  var getParentOffset = function getParentOffset2() {
79
76
  setTimeout(function() {
80
- var p = parent.parent().current;
77
+ var p = parent.menuRef.current;
81
78
  var rect = p.getBoundingClientRect();
82
79
  setPosition({
83
80
  height: rect.height,
@@ -102,42 +99,47 @@ var MenuItem = forwardRef(function(props, ref) {
102
99
  };
103
100
  var placeholderStyle = function placeholderStyle2() {
104
101
  if (direction === "down") {
105
- return _objectSpread(_objectSpread({
106
- height: "".concat(position.top + position.height, "px")
107
- }, isShow()), style);
102
+ return _objectSpread({
103
+ height: "".concat(position.top + position.height, "px"),
104
+ top: 0
105
+ }, isShow());
108
106
  }
109
- return _objectSpread(_objectSpread({
107
+ return _objectSpread({
110
108
  height: "".concat(window.innerHeight - position.top, "px"),
109
+ bottom: "0px",
111
110
  top: "auto"
112
- }, isShow()), style);
111
+ }, isShow());
113
112
  };
114
- return React__default.createElement(React__default.Fragment, null, React__default.createElement("div", {
113
+ return React__default.createElement(React__default.Fragment, null, closeOnClickAway ? React__default.createElement("div", {
115
114
  className: "placeholder-element ".concat(classNames({
116
115
  up: direction === "up"
117
116
  })),
118
117
  style: placeholderStyle(),
119
118
  onClick: function onClick() {
120
- return parent.toggleItemShow(orderKey);
119
+ return parent.toggleMenuItem(index);
121
120
  }
122
- }), React__default.createElement(Overlay, {
121
+ }) : null, React__default.createElement(Overlay, {
123
122
  className: "nut-menu__overlay",
124
123
  style: getPosition(),
125
124
  lockScroll: parent.lockScroll,
126
125
  visible: _showPopup,
127
- closeOnOverlayClick: parent.closeOnClickOverlay,
126
+ closeOnOverlayClick: parent.closeOnOverlayClick,
128
127
  onClick: function onClick() {
129
- parent.closeOnClickOverlay && parent.toggleItemShow(orderKey);
128
+ parent.closeOnOverlayClick && parent.toggleMenuItem(index);
130
129
  }
131
130
  }), React__default.createElement("div", {
132
- className: direction === "down" ? "nut-menu-item__wrap" : "nut-menu-item__wrap-up",
133
- style: _objectSpread({}, isShow())
131
+ className: classNames(className, {
132
+ "nut-menu-item__wrap": direction === "down",
133
+ "nut-menu-item__wrap-up": direction !== "down"
134
+ }),
135
+ style: _objectSpread(_objectSpread({}, style), isShow())
134
136
  }, React__default.createElement(CSSTransition, {
135
137
  "in": _showPopup,
136
138
  timeout: 100,
137
139
  classNames: direction === "down" ? "menu-item" : "menu-item-up"
138
140
  }, React__default.createElement("div", {
139
141
  className: "nut-menu-item__content"
140
- }, options === null || options === void 0 ? void 0 : options.map(function(item, index) {
142
+ }, options === null || options === void 0 ? void 0 : options.map(function(item, index2) {
141
143
  return React__default.createElement("div", {
142
144
  className: "nut-menu-item__option ".concat(classNames({
143
145
  active: item.value === _value
@@ -149,7 +151,7 @@ var MenuItem = forwardRef(function(props, ref) {
149
151
  onClick: function onClick() {
150
152
  handleClick(item);
151
153
  }
152
- }, item.value === _value ? React__default.createElement("i", null, optionsIcon || React__default.createElement(Check, {
154
+ }, item.value === _value ? React__default.createElement("i", null, icon || React__default.createElement(Check, {
153
155
  color: activeColor,
154
156
  className: getIconCName(item.value, value)
155
157
  })) : null, React__default.createElement("div", {
@@ -22,35 +22,21 @@ function _objectSpread(target) {
22
22
  }
23
23
  import React__default from "react";
24
24
  import classNames from "classnames";
25
- import { Left } from "@nutui/icons-react";
26
- import { c as cn } from "./bem.js";
27
25
  import { C as ComponentDefaults } from "./typings.js";
28
- import "@bem-react/classname";
29
26
  var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, {
30
- title: "",
31
- description: "",
32
- leftShow: true,
33
- className: "",
34
- leftText: "",
27
+ left: "",
28
+ right: "",
29
+ back: "",
35
30
  fixed: false,
36
31
  safeAreaInsetTop: false,
37
- border: false,
38
32
  placeholder: false,
39
- zIndex: 10,
40
- style: {}
33
+ zIndex: 10
41
34
  });
42
35
  var NavBar = function NavBar2(props) {
43
36
  var _classNames;
44
- var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props), description = _defaultProps$props.description, title = _defaultProps$props.title, leftShow = _defaultProps$props.leftShow, className = _defaultProps$props.className, style = _defaultProps$props.style, leftText = _defaultProps$props.leftText, fixed = _defaultProps$props.fixed, safeAreaInsetTop = _defaultProps$props.safeAreaInsetTop, border = _defaultProps$props.border, placeholder = _defaultProps$props.placeholder, zIndex = _defaultProps$props.zIndex, onClickTitle = _defaultProps$props.onClickTitle, onClickIcon = _defaultProps$props.onClickIcon, onClickBack = _defaultProps$props.onClickBack, onClickRight = _defaultProps$props.onClickRight;
45
- var b = cn("navbar");
37
+ var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props), right = _defaultProps$props.right, left = _defaultProps$props.left, className = _defaultProps$props.className, style = _defaultProps$props.style, back = _defaultProps$props.back, fixed = _defaultProps$props.fixed, safeAreaInsetTop = _defaultProps$props.safeAreaInsetTop, placeholder = _defaultProps$props.placeholder, zIndex = _defaultProps$props.zIndex, onClickBack = _defaultProps$props.onClickBack;
38
+ var classPrefix = "nut-navbar";
46
39
  var children = Array.isArray(props.children) ? props.children : [props.children];
47
- var slot = children.reduce(function(slot2, item) {
48
- var data = slot2;
49
- if (item && item.props) {
50
- data[item.props.slot] = item.props.children;
51
- }
52
- return data;
53
- }, {});
54
40
  var styles = function styles2() {
55
41
  return _objectSpread(_objectSpread({}, style), {}, {
56
42
  zIndex
@@ -58,40 +44,23 @@ var NavBar = function NavBar2(props) {
58
44
  };
59
45
  var renderLeft = function renderLeft2() {
60
46
  return React__default.createElement("div", {
61
- className: "".concat(b("left")),
47
+ className: "".concat(classPrefix, "__left")
48
+ }, back && React__default.createElement("div", {
49
+ className: "".concat(classPrefix, "__left__back"),
62
50
  onClick: function onClick(e) {
63
51
  return onClickBack(e);
64
52
  }
65
- }, leftShow && React__default.createElement(Left, {
66
- name: "left",
67
- color: "#979797"
68
- }), leftText && React__default.createElement("div", {
69
- className: "".concat(b("text"))
70
- }, leftText), slot.left);
53
+ }, back), left);
71
54
  };
72
55
  var renderContent = function renderContent2() {
73
56
  return React__default.createElement("div", {
74
- className: "".concat(b("title"))
75
- }, title && React__default.createElement("div", {
76
- className: "title",
77
- onClick: function onClick(e) {
78
- return onClickTitle(e);
79
- }
80
- }, title), slot.titleIcon && React__default.createElement("div", {
81
- onClick: function onClick(e) {
82
- return onClickIcon(e);
83
- }
84
- }, slot.titleIcon), slot.content);
57
+ className: "".concat(classPrefix, "__title")
58
+ }, children);
85
59
  };
86
60
  var renderRight = function renderRight2() {
87
61
  return React__default.createElement("div", {
88
- className: "".concat(b("right")),
89
- onClick: function onClick(e) {
90
- return onClickRight(e);
91
- }
92
- }, description && React__default.createElement("div", {
93
- className: "".concat(b("text"))
94
- }, description), slot.right);
62
+ className: "".concat(classPrefix, "__right")
63
+ }, right);
95
64
  };
96
65
  var renderWrapper = function renderWrapper2() {
97
66
  return React__default.createElement("div", {
@@ -99,10 +68,10 @@ var NavBar = function NavBar2(props) {
99
68
  style: styles()
100
69
  }, renderLeft(), renderContent(), renderRight());
101
70
  };
102
- var classes = classNames((_classNames = {}, _defineProperty(_classNames, "nut-navbar--border", border), _defineProperty(_classNames, "nut-navbar--fixed", fixed), _defineProperty(_classNames, "nut-navbar--safe-area-inset-top", safeAreaInsetTop), _classNames));
103
- var cls = classNames(b(""), classes, className);
71
+ var classes = classNames((_classNames = {}, _defineProperty(_classNames, "".concat(classPrefix, "--fixed"), fixed), _defineProperty(_classNames, "".concat(classPrefix, "--safe-area-inset-top"), safeAreaInsetTop), _classNames));
72
+ var cls = classNames(classPrefix, classes, className);
104
73
  return React__default.createElement(React__default.Fragment, null, fixed && placeholder ? React__default.createElement("div", {
105
- className: "".concat(b(""), "--placeholder")
74
+ className: "".concat(classPrefix, "--placeholder")
106
75
  }, renderWrapper()) : renderWrapper());
107
76
  };
108
77
  NavBar.defaultProps = defaultProps;
package/dist/esm/Popup.js CHANGED
@@ -45,8 +45,6 @@ var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, {
45
45
  },
46
46
  onClose: function onClose() {
47
47
  },
48
- onClick: function onClick(e) {
49
- },
50
48
  onClickOverlay: function onClickOverlay(e) {
51
49
  return true;
52
50
  },
@@ -57,7 +55,7 @@ var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, {
57
55
  var _zIndex = 1e3;
58
56
  var Popup = function Popup2(props) {
59
57
  var _classNames, _classNames2;
60
- var children = props.children, visible = props.visible, overlay = props.overlay, closeOnOverlayClick = props.closeOnOverlayClick, overlayStyle = props.overlayStyle, overlayClassName = props.overlayClassName, zIndex = props.zIndex, lockScroll = props.lockScroll, duration = props.duration, closeable = props.closeable, closeIconPosition = props.closeIconPosition, closeIcon = props.closeIcon, style = props.style, transition = props.transition, round = props.round, position = props.position, className = props.className, destroyOnClose = props.destroyOnClose, portal = props.portal, onOpen2 = props.onOpen, onClose2 = props.onClose, onClickOverlay2 = props.onClickOverlay, onClickCloseIcon2 = props.onClickCloseIcon, afterShow = props.afterShow, afterClose = props.afterClose, onClick2 = props.onClick;
58
+ var children = props.children, visible = props.visible, overlay = props.overlay, closeOnOverlayClick = props.closeOnOverlayClick, overlayStyle = props.overlayStyle, overlayClassName = props.overlayClassName, zIndex = props.zIndex, lockScroll = props.lockScroll, duration = props.duration, closeable = props.closeable, closeIconPosition = props.closeIconPosition, closeIcon = props.closeIcon, style = props.style, transition = props.transition, round = props.round, position = props.position, className = props.className, destroyOnClose = props.destroyOnClose, portal = props.portal, onOpen2 = props.onOpen, onClose2 = props.onClose, onClickOverlay2 = props.onClickOverlay, onClickCloseIcon2 = props.onClickCloseIcon, afterShow = props.afterShow, afterClose = props.afterClose, onClick = props.onClick;
61
59
  var _useState = useState(zIndex || _zIndex), _useState2 = _slicedToArray(_useState, 2), index = _useState2[0], setIndex = _useState2[1];
62
60
  var _useState3 = useState(visible), _useState4 = _slicedToArray(_useState3, 2), innerVisible = _useState4[0], setInnerVisible = _useState4[1];
63
61
  var _useState5 = useState(true), _useState6 = _slicedToArray(_useState5, 2), showChildren = _useState6[0], setShowChildren = _useState6[1];
@@ -101,7 +99,7 @@ var Popup = function Popup2(props) {
101
99
  }
102
100
  };
103
101
  var onHandleClick = function onHandleClick2(e) {
104
- onClick2 && onClick2(e);
102
+ onClick && onClick(e);
105
103
  };
106
104
  var onHandleClickCloseIcon = function onHandleClickCloseIcon2(e) {
107
105
  var closed = onClickCloseIcon2 && onClickCloseIcon2(e);