@nutui/nutui-react-taro 1.4.4 → 1.4.5-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (219) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/esm/Address.js +5 -5
  3. package/dist/esm/Audio.js +5 -5
  4. package/dist/esm/AvatarContext-7153ad2b.js +3 -1
  5. package/dist/esm/AvatarGroup.js +4 -4
  6. package/dist/esm/Calendar.js +5 -5
  7. package/dist/esm/CalendarItem.js +4 -4
  8. package/dist/esm/Card.js +4 -3
  9. package/dist/esm/Cell.js +2 -2
  10. package/dist/esm/ConfigProvider.js +3 -3
  11. package/dist/esm/CountDown.js +4 -4
  12. package/dist/esm/DatePicker.js +5 -5
  13. package/dist/esm/Dialog.js +4 -4
  14. package/dist/esm/Ellipsis.js +4 -4
  15. package/dist/esm/Empty.js +4 -4
  16. package/dist/esm/FixedNav.js +4 -4
  17. package/dist/esm/Form.js +4 -4
  18. package/dist/esm/FormItem.js +3 -3
  19. package/dist/esm/Grid.js +4 -4
  20. package/dist/esm/GridItem.js +4 -4
  21. package/dist/esm/Image.js +4 -4
  22. package/dist/esm/Infiniteloading.js +4 -4
  23. package/dist/esm/Input.js +4 -4
  24. package/dist/esm/MenuItem.js +4 -4
  25. package/dist/esm/NoticeBar.js +2 -2
  26. package/dist/esm/NumberKeyboard.js +4 -4
  27. package/dist/esm/Pagination.js +4 -4
  28. package/dist/esm/Picker.js +4 -4
  29. package/dist/esm/PullToRefresh.js +4 -4
  30. package/dist/esm/Range.js +4 -4
  31. package/dist/esm/SearchBar.js +4 -4
  32. package/dist/esm/ShortPassword.js +4 -4
  33. package/dist/esm/SideNavBar.js +4 -4
  34. package/dist/esm/Signature.js +4 -4
  35. package/dist/esm/Sticky.js +4 -4
  36. package/dist/esm/Table.js +4 -4
  37. package/dist/esm/Tag.js +3 -2
  38. package/dist/esm/TextArea.js +4 -4
  39. package/dist/esm/TimeDetail.js +4 -4
  40. package/dist/esm/TimePannel.js +4 -4
  41. package/dist/esm/TimeSelect.js +6 -6
  42. package/dist/esm/Uploader.js +4 -4
  43. package/dist/esm/UserContext-68f62e66.js +3 -1
  44. package/dist/esm/UserContext-b4181162.js +3 -1
  45. package/dist/esm/UserContext-be8097d2.js +3 -1
  46. package/dist/esm/VirtualList.js +6 -4
  47. package/dist/esm/WaterMark.js +4 -4
  48. package/dist/esm/actionsheet.taro-a58d3d12.js +45 -83
  49. package/dist/esm/address.taro-79cc7c96.js +461 -0
  50. package/dist/esm/animate.taro-b0e83dd5.js +32 -46
  51. package/dist/esm/animatingnumbers.taro-6f40a2e9.js +93 -134
  52. package/dist/esm/audio.taro-4fadc583.js +161 -0
  53. package/dist/esm/avatar.taro-85ced995.js +93 -119
  54. package/dist/esm/avatargroup-1d900174.js +34 -0
  55. package/dist/esm/backtop.taro-99107c30.js +39 -62
  56. package/dist/esm/badge.taro-fe9171ec.js +40 -58
  57. package/dist/esm/barrage.taro-0e157b5e.js +61 -91
  58. package/dist/esm/bem-893ad28d.js +3 -6
  59. package/dist/esm/button.taro-4ce133b9.js +87 -98
  60. package/dist/esm/calendar.taro-4ed72058.js +38 -0
  61. package/dist/esm/calendaritem.taro-1ebe428d.js +571 -0
  62. package/dist/esm/card.taro-39055e82.js +32 -0
  63. package/dist/esm/cascader.taro-d8cb1c3e.js +397 -636
  64. package/dist/esm/cell.taro-9a04a92e.js +64 -0
  65. package/dist/esm/cellgroup.taro-e094471c.js +18 -27
  66. package/dist/esm/checkbox.taro-0bda9796.js +160 -232
  67. package/dist/esm/circleprogress.taro-47db537c.js +99 -120
  68. package/dist/esm/col.taro-b61c7cba.js +33 -50
  69. package/dist/esm/collapse.taro-af58206c.js +73 -86
  70. package/dist/esm/collapseitem-ce1849d2.js +75 -139
  71. package/dist/esm/configprovider-5eea4f5d.js +19 -0
  72. package/dist/esm/configprovider.taro-26882dd2.js +42 -0
  73. package/dist/esm/countdown.taro-9e40de9c.js +225 -0
  74. package/dist/esm/datepicker.taro-7220e495.js +270 -0
  75. package/dist/esm/dialog.taro-1c03960e.js +123 -0
  76. package/dist/esm/divider.taro-5236fe6a.js +27 -27
  77. package/dist/esm/drag.taro-82b6b27a.js +99 -138
  78. package/dist/esm/elevator.taro-d7d65470.js +185 -259
  79. package/dist/esm/ellipsis.taro-49b6db0c.js +232 -0
  80. package/dist/esm/empty.taro-7bd813f9.js +62 -0
  81. package/dist/esm/fixednav.taro-5ad15202.js +53 -0
  82. package/dist/esm/form.taro-71d32671.js +179 -0
  83. package/dist/esm/formitem.taro-3089489b.js +89 -0
  84. package/dist/esm/grid.taro-e6decfce.js +58 -0
  85. package/dist/esm/grid.taro.context-39636af9.js +4 -2
  86. package/dist/esm/griditem.taro-4cade72e.js +90 -0
  87. package/dist/esm/icon-8dc4de10.js +43 -51
  88. package/dist/esm/icon.taro-1d0d4fb7.js +43 -51
  89. package/dist/esm/image.taro-e6dc5867.js +64 -0
  90. package/dist/esm/imagepreview.taro-3400ea03.js +158 -205
  91. package/dist/esm/index.taro-a36f96fb.js +149 -210
  92. package/dist/esm/indicator.taro-183ea169.js +29 -43
  93. package/dist/esm/infiniteloading.taro-6c2a2e95.js +142 -0
  94. package/dist/esm/input.taro-fd566407.js +243 -0
  95. package/dist/esm/inputnumber.taro-dc39b853.js +129 -177
  96. package/dist/esm/layout.taro-358f014f.js +6 -9
  97. package/dist/esm/menu.taro-4abed328.js +89 -132
  98. package/dist/esm/menuitem.taro-6e8b27c3.js +130 -0
  99. package/dist/esm/navbar.taro-c931c078.js +69 -105
  100. package/dist/esm/noticebar.taro-69ea7673.js +450 -0
  101. package/dist/esm/notify.taro-308e5892.js +66 -97
  102. package/dist/esm/numberkeyboard.taro-194519e4.js +158 -0
  103. package/dist/esm/nutui-react.es.js +44 -44
  104. package/dist/esm/offsetContext-bfb02c25.js +3 -1
  105. package/dist/esm/overlay.taro-98367bc1.js +59 -74
  106. package/dist/esm/pagination.taro-bb490de9.js +124 -0
  107. package/dist/esm/picker.taro-2a8ded7c.js +420 -0
  108. package/dist/esm/popover.taro-46d813e8.js +132 -222
  109. package/dist/esm/popup.taro-cb777e09.js +125 -178
  110. package/dist/esm/price.taro-8801462e.js +75 -86
  111. package/dist/esm/progress.taro-623bc807.js +84 -118
  112. package/dist/esm/pulltorefresh.taro-cab7b51c.js +221 -0
  113. package/dist/esm/range.taro-5d6ff217.js +332 -0
  114. package/dist/esm/rate.taro-10197384.js +64 -111
  115. package/dist/esm/row.taro-37a895de.js +38 -42
  116. package/dist/esm/searchbar.taro-839dd622.js +148 -0
  117. package/dist/esm/shortpassword.taro-182d46f7.js +111 -0
  118. package/dist/esm/sidenavbar.taro-006cf38b.js +35 -0
  119. package/dist/esm/sidenavbaritem.taro-fee11d26.js +9 -22
  120. package/dist/esm/signature.taro-33632585.js +143 -0
  121. package/dist/esm/skeleton.taro-853ce460.js +51 -88
  122. package/dist/esm/step.taro-1c94e067.js +49 -78
  123. package/dist/esm/steps.taro-acf205a0.js +21 -30
  124. package/dist/esm/sticky.taro-d0553f48.js +13 -0
  125. package/dist/esm/subsidenavbar.taro-f46b4c73.js +58 -75
  126. package/dist/esm/swipe.taro-83bc248f.js +164 -254
  127. package/dist/esm/swiper.taro-852f6615.js +424 -505
  128. package/dist/esm/swiperitem-86a3578a.js +20 -28
  129. package/dist/esm/switch.taro-bae2dca0.js +43 -64
  130. package/dist/esm/tabbar.taro-86cece39.js +47 -57
  131. package/dist/esm/tabbaritem.taro-8dfb8055.js +51 -79
  132. package/dist/esm/table.taro-cb4dd2c3.js +92 -0
  133. package/dist/esm/tabpane.taro-91cd6cf4.js +17 -22
  134. package/dist/esm/tabs.taro-e71875fa.js +121 -165
  135. package/dist/esm/tag.taro-00fe554d.js +89 -0
  136. package/dist/esm/textarea.taro-42600f8c.js +74 -0
  137. package/dist/esm/timedetail.taro-c5f564fd.js +44 -0
  138. package/dist/esm/timepannel.taro-29f9dd86.js +22 -0
  139. package/dist/esm/timeselect.taro-3ecce65d.js +133 -0
  140. package/dist/esm/toast.taro-0804b6b4.js +99 -137
  141. package/dist/esm/trendarrow.taro-5a7153e4.js +63 -90
  142. package/dist/esm/types/src/packages/cell/cell.taro.d.ts +0 -1
  143. package/dist/esm/types/src/packages/noticebar/noticebar.d.ts +5 -4
  144. package/dist/esm/types/src/packages/noticebar/noticebar.taro.d.ts +5 -4
  145. package/dist/esm/types/src/packages/uploader/uploader.d.ts +1 -1
  146. package/dist/esm/types/src/packages/virtuallist/virtuallist.taro.d.ts +13 -2
  147. package/dist/esm/typings-1c5f2628.js +7 -6
  148. package/dist/esm/uploader.taro-f80d76d9.js +392 -0
  149. package/dist/esm/useClientRect-bf69d7b3.js +5 -25
  150. package/dist/esm/useTouch-a2ea68c6.js +63 -93
  151. package/dist/esm/video-8a3518c5.js +59 -83
  152. package/dist/esm/virtuallist.taro-e3345ced.js +215 -0
  153. package/dist/esm/watermark.taro-cd9db98a.js +114 -0
  154. package/dist/esm/zh-CN-dfc384d0.js +128 -133
  155. package/dist/locales/base.js +1 -1
  156. package/dist/locales/en-US.js +1 -1
  157. package/dist/locales/id-ID.js +1 -1
  158. package/dist/locales/zh-CN.js +1 -1
  159. package/dist/locales/zh-TW.js +1 -1
  160. package/dist/locales/zh-UG.js +1 -1
  161. package/dist/nutui.react.es.js +634 -5664
  162. package/dist/nutui.react.umd.js +634 -5664
  163. package/dist/packages/noticebar/noticebar.scss +17 -0
  164. package/dist/packages/radio/radio.scss +3 -1
  165. package/dist/packages/row/row.scss +2 -0
  166. package/dist/packages/searchbar/searchbar.scss +1 -1
  167. package/dist/packages/tag/tag.scss +13 -5
  168. package/dist/packages/virtuallist/virtuallist.scss +24 -0
  169. package/dist/style.css +1 -1
  170. package/dist/style.es.js +1 -1
  171. package/dist/styles/temp.scss +2340 -0
  172. package/dist/styles/theme-dark.scss +7 -0
  173. package/dist/styles/theme-default.scss +11 -0
  174. package/dist/styles/variables.scss +1945 -710
  175. package/dist/types/index.d.ts +16 -23
  176. package/package.json +9 -4
  177. package/dist/esm/address.taro-1e2aea24.js +0 -615
  178. package/dist/esm/audio.taro-fddcdfc0.js +0 -228
  179. package/dist/esm/avatargroup-f7f600ff.js +0 -42
  180. package/dist/esm/calendar.taro-72974415.js +0 -83
  181. package/dist/esm/calendaritem.taro-84e889eb.js +0 -580
  182. package/dist/esm/card.taro-a530dfb3.js +0 -61
  183. package/dist/esm/cell.taro-cf50c4f2.js +0 -109
  184. package/dist/esm/configprovider-c7d60e20.js +0 -18
  185. package/dist/esm/configprovider.taro-8bdb3a28.js +0 -50
  186. package/dist/esm/countdown.taro-d7dc8681.js +0 -246
  187. package/dist/esm/datepicker.taro-7199f521.js +0 -304
  188. package/dist/esm/dialog.taro-f54cfbf0.js +0 -187
  189. package/dist/esm/ellipsis.taro-c0de6ff4.js +0 -309
  190. package/dist/esm/empty.taro-dbc66496.js +0 -81
  191. package/dist/esm/fixednav.taro-9e759320.js +0 -97
  192. package/dist/esm/form.taro-880014b1.js +0 -181
  193. package/dist/esm/formitem.taro-3695f4a7.js +0 -136
  194. package/dist/esm/grid.taro-c2cc12d6.js +0 -81
  195. package/dist/esm/griditem.taro-892153cd.js +0 -122
  196. package/dist/esm/image.taro-c30973d5.js +0 -105
  197. package/dist/esm/infiniteloading.taro-b5ddf3cc.js +0 -188
  198. package/dist/esm/input.taro-104130c1.js +0 -361
  199. package/dist/esm/menuitem.taro-216e9f7d.js +0 -193
  200. package/dist/esm/noticebar.taro-94002898.js +0 -368
  201. package/dist/esm/numberkeyboard.taro-5e8f0ddf.js +0 -245
  202. package/dist/esm/pagination.taro-9925ffab.js +0 -169
  203. package/dist/esm/picker.taro-3b5cc054.js +0 -540
  204. package/dist/esm/pulltorefresh.taro-f26a20dd.js +0 -302
  205. package/dist/esm/range.taro-c41e9b90.js +0 -469
  206. package/dist/esm/searchbar.taro-01ed4ea4.js +0 -236
  207. package/dist/esm/shortpassword.taro-3a3bf412.js +0 -190
  208. package/dist/esm/sidenavbar.taro-06026f31.js +0 -66
  209. package/dist/esm/signature.taro-17648cac.js +0 -192
  210. package/dist/esm/sticky.taro-36013e97.js +0 -16
  211. package/dist/esm/table.taro-adda6622.js +0 -139
  212. package/dist/esm/tag.taro-bd900990.js +0 -104
  213. package/dist/esm/textarea.taro-83d5fe73.js +0 -102
  214. package/dist/esm/timedetail.taro-105f5380.js +0 -68
  215. package/dist/esm/timepannel.taro-c66c63dd.js +0 -30
  216. package/dist/esm/timeselect.taro-fc7ec6ee.js +0 -172
  217. package/dist/esm/uploader.taro-a1edf38f.js +0 -529
  218. package/dist/esm/virtuallist.taro-4add61c3.js +0 -315
  219. package/dist/esm/watermark.taro-323d1cf3.js +0 -132
@@ -1,142 +1,99 @@
1
- import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
- import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
5
- var _excluded = ["className", "titleIcon", "scrollFixed", "lockScroll", "closeOnClickOverlay", "children", "activeColor", "iconClassPrefix", "iconFontClassName"];
6
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8
1
  import React__default, { useRef, useEffect, useState } from 'react';
9
2
  import classNames from 'classnames';
10
3
  import { I as Icon } from './icon.taro-1d0d4fb7.js';
11
4
  import { C as ComponentDefaults } from './typings-1c5f2628.js';
12
- var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, {
13
- className: '',
14
- style: {},
15
- activeColor: '#F2270C',
16
- closeOnClickOverlay: true,
17
- scrollFixed: false,
18
- lockScroll: true,
19
- titleIcon: ''
20
- });
21
- var Menu = function Menu(props) {
22
- var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),
23
- className = _defaultProps$props.className,
24
- titleIcon = _defaultProps$props.titleIcon,
25
- scrollFixed = _defaultProps$props.scrollFixed,
26
- lockScroll = _defaultProps$props.lockScroll,
27
- closeOnClickOverlay = _defaultProps$props.closeOnClickOverlay,
28
- children = _defaultProps$props.children,
29
- activeColor = _defaultProps$props.activeColor,
30
- iconClassPrefix = _defaultProps$props.iconClassPrefix,
31
- iconFontClassName = _defaultProps$props.iconFontClassName,
32
- rest = _objectWithoutProperties(_defaultProps$props, _excluded);
33
- var parentRef = useRef(null);
34
- var onScroll = function onScroll() {};
35
- useEffect(function () {
36
- if (scrollFixed) {
37
- window.addEventListener('scroll', onScroll);
38
- }
39
- return function () {
40
- return window.removeEventListener('scroll', onScroll);
5
+
6
+ const defaultProps = {
7
+ ...ComponentDefaults,
8
+ className: '',
9
+ style: {},
10
+ activeColor: '#F2270C',
11
+ closeOnClickOverlay: true,
12
+ scrollFixed: false,
13
+ lockScroll: true,
14
+ titleIcon: '',
15
+ };
16
+ const Menu = (props) => {
17
+ const { className, titleIcon, scrollFixed, lockScroll, closeOnClickOverlay, children, activeColor, iconClassPrefix, iconFontClassName, ...rest } = {
18
+ ...defaultProps,
19
+ ...props,
41
20
  };
42
- }, []);
43
- var _useState = useState([]),
44
- _useState2 = _slicedToArray(_useState, 2),
45
- itemShow = _useState2[0],
46
- setItemShow = _useState2[1];
47
- var _useState3 = useState([]),
48
- _useState4 = _slicedToArray(_useState3, 2),
49
- itemTitle = _useState4[0],
50
- setItemTitle = _useState4[1];
51
- var toggleItemShow = function toggleItemShow(index) {
52
- itemShow[index] = !itemShow[index];
53
- var temp = itemShow.map(function (i, idx) {
54
- return idx === index ? i : false;
55
- });
56
- setItemShow(_toConsumableArray(temp));
57
- };
58
- var hideItemShow = function hideItemShow(index) {
59
- itemShow[index] = false;
60
- setItemShow(_toConsumableArray(itemShow));
61
- };
62
- var updateTitle = function updateTitle(text, index) {
63
- itemTitle[index] = text;
64
- setItemTitle(_toConsumableArray(itemTitle));
65
- };
66
- var parent = function parent() {
67
- return parentRef;
68
- };
69
- var cloneChildren = function cloneChildren() {
70
- return React__default.Children.map(children, function (child, index) {
71
- return React__default.cloneElement(child, {
72
- showPopup: itemShow[index],
73
- orderKey: index,
74
- activeColor: activeColor,
75
- parent: {
76
- closeOnClickOverlay: closeOnClickOverlay,
77
- lockScroll: lockScroll,
78
- toggleItemShow: toggleItemShow,
79
- updateTitle: updateTitle,
80
- hideItemShow: hideItemShow,
81
- parent: parent
21
+ const parentRef = useRef(null);
22
+ const onScroll = () => { };
23
+ useEffect(() => {
24
+ if (scrollFixed) {
25
+ window.addEventListener('scroll', onScroll);
82
26
  }
83
- });
84
- });
85
- };
86
- return React__default.createElement("div", _objectSpread(_objectSpread({
87
- className: "nut-menu ".concat(className)
88
- }, rest), {}, {
89
- ref: parentRef
90
- }), React__default.createElement("div", {
91
- className: "nut-menu-relative"
92
- }, React__default.createElement("div", {
93
- className: "nut-menu__bar ".concat(itemShow.includes(true) ? 'opened' : '', " ").concat(className)
94
- }, React__default.Children.toArray(children).map(function (child, index) {
95
- if (!child) return null;
96
- var _child$props = child.props,
97
- disabled = _child$props.disabled,
98
- title = _child$props.title,
99
- value = _child$props.value,
100
- direction = _child$props.direction,
101
- options = _child$props.options,
102
- className = _child$props.className;
103
- var currentTitle = options === null || options === void 0 ? void 0 : options.filter(function (option) {
104
- return option.value === value;
105
- });
106
- function finallyTitle() {
107
- if (title) return title;
108
- if (itemTitle && itemTitle[index]) return itemTitle[index];
109
- if (currentTitle && currentTitle[0] && currentTitle[0].text) return currentTitle[0].text;
110
- return '';
111
- }
112
- return React__default.createElement("div", {
113
- className: "nut-menu__item ".concat(classNames({
114
- active: itemShow[index],
115
- disabled: disabled
116
- }), " ").concat(className),
117
- style: {
118
- color: itemShow[index] ? activeColor : ''
119
- },
120
- key: index,
121
- onClick: function onClick() {
122
- !disabled && toggleItemShow(index);
123
- }
124
- }, React__default.createElement("div", {
125
- className: "nut-menu__title ".concat(classNames({
126
- active: itemShow[index],
127
- disabled: disabled
128
- }))
129
- }, React__default.createElement("div", {
130
- className: "nut-menu__title-text"
131
- }, finallyTitle()), React__default.createElement(Icon, {
132
- classPrefix: iconClassPrefix,
133
- fontClassName: iconFontClassName,
134
- className: "nut-menu__title-icon",
135
- size: "10",
136
- name: titleIcon || (direction === 'up' ? 'arrow-up' : 'down-arrow')
137
- })));
138
- })), cloneChildren()));
27
+ return () => window.removeEventListener('scroll', onScroll);
28
+ }, []);
29
+ const [itemShow, setItemShow] = useState([]);
30
+ const [itemTitle, setItemTitle] = useState([]);
31
+ const toggleItemShow = (index) => {
32
+ itemShow[index] = !itemShow[index];
33
+ const temp = itemShow.map((i, idx) => (idx === index ? i : false));
34
+ setItemShow([...temp]);
35
+ };
36
+ const hideItemShow = (index) => {
37
+ itemShow[index] = false;
38
+ setItemShow([...itemShow]);
39
+ };
40
+ const updateTitle = (text, index) => {
41
+ itemTitle[index] = text;
42
+ setItemTitle([...itemTitle]);
43
+ };
44
+ const parent = () => {
45
+ return parentRef;
46
+ };
47
+ const cloneChildren = () => {
48
+ return React__default.Children.map(children, (child, index) => {
49
+ return React__default.cloneElement(child, {
50
+ showPopup: itemShow[index],
51
+ orderKey: index,
52
+ activeColor,
53
+ parent: {
54
+ closeOnClickOverlay,
55
+ lockScroll,
56
+ toggleItemShow,
57
+ updateTitle,
58
+ hideItemShow,
59
+ parent,
60
+ },
61
+ });
62
+ });
63
+ };
64
+ return (React__default.createElement("div", { className: `nut-menu ${className}`, ...rest, ref: parentRef },
65
+ React__default.createElement("div", { className: "nut-menu-relative" },
66
+ React__default.createElement("div", { className: `nut-menu__bar ${itemShow.includes(true) ? 'opened' : ''} ${className}` }, React__default.Children.toArray(children).map((child, index) => {
67
+ if (!child)
68
+ return null;
69
+ const { disabled, title, value, direction, options, className } = child.props;
70
+ const currentTitle = options?.filter((option) => option.value === value);
71
+ function finallyTitle() {
72
+ if (title)
73
+ return title;
74
+ if (itemTitle && itemTitle[index])
75
+ return itemTitle[index];
76
+ if (currentTitle && currentTitle[0] && currentTitle[0].text)
77
+ return currentTitle[0].text;
78
+ return '';
79
+ }
80
+ return (React__default.createElement("div", { className: `nut-menu__item ${classNames({
81
+ active: itemShow[index],
82
+ disabled,
83
+ })} ${className}`, style: { color: itemShow[index] ? activeColor : '' }, key: index, onClick: () => {
84
+ !disabled && toggleItemShow(index);
85
+ } },
86
+ React__default.createElement("div", { className: `nut-menu__title ${classNames({
87
+ active: itemShow[index],
88
+ disabled,
89
+ })}` },
90
+ React__default.createElement("div", { className: "nut-menu__title-text" }, finallyTitle()),
91
+ React__default.createElement(Icon, { classPrefix: iconClassPrefix, fontClassName: iconFontClassName, className: "nut-menu__title-icon", size: "10", name: titleIcon ||
92
+ (direction === 'up' ? 'arrow-up' : 'down-arrow') }))));
93
+ })),
94
+ cloneChildren())));
139
95
  };
140
96
  Menu.defaultProps = defaultProps;
141
97
  Menu.displayName = 'NutMenu';
98
+
142
99
  export { Menu as M };
@@ -0,0 +1,130 @@
1
+ import React__default, { forwardRef, useState, useEffect, useImperativeHandle } from 'react';
2
+ import classNames from 'classnames';
3
+ import { CSSTransition } from 'react-transition-group';
4
+ import { u as useConfig } from './configprovider.taro-26882dd2.js';
5
+ import { I as Icon } from './icon.taro-1d0d4fb7.js';
6
+ import { O as Overlay } from './overlay.taro-98367bc1.js';
7
+ import { C as ComponentDefaults } from './typings-1c5f2628.js';
8
+
9
+ const defaultProps = {
10
+ ...ComponentDefaults,
11
+ className: '',
12
+ style: {},
13
+ columns: 1,
14
+ direction: 'down',
15
+ optionsIcon: 'Check',
16
+ activeTitleClass: '',
17
+ inactiveTitleClass: '',
18
+ iconClassPrefix: 'nut-icon',
19
+ fontClassName: 'nutui-iconfont',
20
+ onChange: (value) => undefined,
21
+ };
22
+ const MenuItem = forwardRef((props, ref) => {
23
+ useConfig();
24
+ const mergedProps = { ...defaultProps, ...props };
25
+ const { style, options, value, columns, title, optionsIcon, direction, onChange, activeTitleClass, inactiveTitleClass, children, iconClassPrefix, iconFontClassName, } = {
26
+ ...defaultProps,
27
+ ...props,
28
+ };
29
+ const { activeColor, showPopup, parent, orderKey } = mergedProps;
30
+ const [_showPopup, setShowPopup] = useState(showPopup);
31
+ const [_value, setValue] = useState(value);
32
+ useEffect(() => {
33
+ setShowPopup(showPopup);
34
+ }, [showPopup]);
35
+ useEffect(() => {
36
+ getParentOffset();
37
+ }, [_showPopup]);
38
+ useImperativeHandle(ref, () => ({
39
+ toggle: parent.toggleItemShow,
40
+ }));
41
+ const getIconCName = (optionVal, value) => {
42
+ return classNames({
43
+ [activeTitleClass]: optionVal === value,
44
+ [inactiveTitleClass]: optionVal !== value,
45
+ });
46
+ };
47
+ const setTitle = (text) => {
48
+ if (!title) {
49
+ parent.updateTitle(text, orderKey);
50
+ }
51
+ };
52
+ const handleClick = (item) => {
53
+ parent.toggleItemShow(orderKey);
54
+ setTitle(item.text);
55
+ setValue(item.value);
56
+ onChange && onChange(item);
57
+ };
58
+ const [position, setPosition] = useState({
59
+ top: 0,
60
+ height: 0,
61
+ });
62
+ const getParentOffset = () => {
63
+ setTimeout(async () => {
64
+ const p = parent.parent().current;
65
+ const rect = await p.getBoundingClientRect();
66
+ setPosition({
67
+ height: rect.height,
68
+ top: rect.top,
69
+ });
70
+ });
71
+ };
72
+ const isShow = () => {
73
+ if (_showPopup)
74
+ return {};
75
+ return { display: 'none' };
76
+ };
77
+ const getPosition = () => {
78
+ return direction === 'down'
79
+ ? { top: `${position.top + position.height}px` }
80
+ : { bottom: `${window.innerHeight - position.top}px`, top: 'auto' };
81
+ };
82
+ const placeholderStyle = () => {
83
+ if (direction === 'down') {
84
+ return {
85
+ height: `${position.top + position.height}px`,
86
+ ...isShow(),
87
+ ...style,
88
+ };
89
+ }
90
+ return {
91
+ height: `${window.innerHeight - position.top}px`,
92
+ top: 'auto',
93
+ ...isShow(),
94
+ ...style,
95
+ };
96
+ };
97
+ return (React__default.createElement(React__default.Fragment, null,
98
+ React__default.createElement("div", { className: `placeholder-element ${classNames({
99
+ up: direction === 'up',
100
+ })}`, style: placeholderStyle(), onClick: () => parent.toggleItemShow(orderKey) }),
101
+ React__default.createElement(Overlay, { overlayClass: "nut-menu__overlay", style: getPosition(), lockScroll: parent.lockScroll, visible: _showPopup, closeOnClickOverlay: parent.closeOnClickOverlay, onClick: () => {
102
+ parent.closeOnClickOverlay && parent.toggleItemShow(orderKey);
103
+ } }),
104
+ React__default.createElement("div", { className: direction === 'down'
105
+ ? 'nut-menu-item__wrap'
106
+ : 'nut-menu-item__wrap-up', style: {
107
+ // ...getPosition(),
108
+ ...isShow(),
109
+ } },
110
+ React__default.createElement(CSSTransition, { in: _showPopup, timeout: 100, classNames: direction === 'down' ? 'menu-item' : 'menu-item-up' },
111
+ React__default.createElement("div", { className: "nut-menu-item__content" },
112
+ options?.map((item, index) => {
113
+ return (React__default.createElement("div", { className: `nut-menu-item__option ${classNames({
114
+ active: item.value === _value,
115
+ })}`, key: item.text, style: {
116
+ flexBasis: `${100 / columns}%`,
117
+ }, onClick: () => {
118
+ handleClick(item);
119
+ } },
120
+ item.value === _value ? (React__default.createElement(Icon, { classPrefix: iconClassPrefix, fontClassName: iconFontClassName, className: getIconCName(item.value, value), name: optionsIcon, color: activeColor })) : null,
121
+ React__default.createElement("div", { className: getIconCName(item.value, value), style: {
122
+ color: `${item.value === _value ? activeColor : ''}`,
123
+ } }, item.text)));
124
+ }),
125
+ children)))));
126
+ });
127
+ MenuItem.defaultProps = defaultProps;
128
+ MenuItem.displayName = 'NutMenuItem';
129
+
130
+ export { MenuItem as M };
@@ -1,115 +1,79 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
1
  import React__default from 'react';
5
2
  import classNames from 'classnames';
6
3
  import { I as Icon } from './icon.taro-1d0d4fb7.js';
7
4
  import { c as cn } from './bem-893ad28d.js';
8
5
  import { C as ComponentDefaults } from './typings-1c5f2628.js';
9
- var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, {
10
- title: '',
11
- desc: '',
12
- leftShow: true,
13
- titIcon: '',
14
- className: '',
15
- leftText: '',
16
- fixed: false,
17
- safeAreaInsetTop: false,
18
- border: false,
19
- placeholder: false,
20
- zIndex: 10,
21
- style: {}
22
- });
23
- var NavBar = function NavBar(props) {
24
- var _classNames;
25
- var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),
26
- desc = _defaultProps$props.desc,
27
- title = _defaultProps$props.title,
28
- titIcon = _defaultProps$props.titIcon,
29
- leftShow = _defaultProps$props.leftShow,
30
- className = _defaultProps$props.className,
31
- style = _defaultProps$props.style,
32
- leftText = _defaultProps$props.leftText,
33
- fixed = _defaultProps$props.fixed,
34
- safeAreaInsetTop = _defaultProps$props.safeAreaInsetTop,
35
- border = _defaultProps$props.border,
36
- placeholder = _defaultProps$props.placeholder,
37
- zIndex = _defaultProps$props.zIndex,
38
- onClickTitle = _defaultProps$props.onClickTitle,
39
- onClickIcon = _defaultProps$props.onClickIcon,
40
- onClickBack = _defaultProps$props.onClickBack,
41
- onClickRight = _defaultProps$props.onClickRight,
42
- iconClassPrefix = _defaultProps$props.iconClassPrefix,
43
- iconFontClassName = _defaultProps$props.iconFontClassName;
44
- var b = cn('navbar');
45
- var children = Array.isArray(props.children) ? props.children : [props.children];
46
- var slot = children.reduce(function (slot, item) {
47
- var data = slot;
48
- if (item && item.props) {
49
- data[item.props.slot] = item;
50
- }
51
- return data;
52
- }, {});
53
- var styles = function styles() {
54
- return _objectSpread(_objectSpread({}, style), {}, {
55
- zIndex: zIndex
6
+
7
+ const defaultProps = {
8
+ ...ComponentDefaults,
9
+ title: '',
10
+ desc: '',
11
+ leftShow: true,
12
+ titIcon: '',
13
+ className: '',
14
+ leftText: '',
15
+ fixed: false,
16
+ safeAreaInsetTop: false,
17
+ border: false,
18
+ placeholder: false,
19
+ zIndex: 10,
20
+ style: {},
21
+ };
22
+ const NavBar = (props) => {
23
+ const { desc, title, titIcon, leftShow, className, style, leftText, fixed, safeAreaInsetTop, border, placeholder, zIndex, onClickTitle, onClickIcon, onClickBack, onClickRight, iconClassPrefix, iconFontClassName, } = {
24
+ ...defaultProps,
25
+ ...props,
26
+ };
27
+ const b = cn('navbar');
28
+ const children = Array.isArray(props.children)
29
+ ? props.children
30
+ : [props.children];
31
+ const slot = children.reduce((slot, item) => {
32
+ const data = slot;
33
+ if (item && item.props) {
34
+ data[item.props.slot] = item;
35
+ }
36
+ return data;
37
+ }, {});
38
+ const styles = () => {
39
+ return {
40
+ ...style,
41
+ zIndex,
42
+ };
43
+ };
44
+ const renderLeft = () => {
45
+ return (React__default.createElement("div", { className: `${b('left')}`, onClick: (e) => onClickBack(e) },
46
+ leftShow && (React__default.createElement(Icon, { classPrefix: iconClassPrefix, fontClassName: iconFontClassName, name: "left", color: "#979797" })),
47
+ leftText && React__default.createElement("div", { className: `${b('text')}` }, leftText),
48
+ slot.left));
49
+ };
50
+ const renderContent = () => {
51
+ return (React__default.createElement("div", { className: `${b('title')}` },
52
+ title && (React__default.createElement("div", { className: "title", onClick: (e) => onClickTitle(e) }, title)),
53
+ titIcon && (React__default.createElement("div", { onClick: (e) => onClickIcon(e) },
54
+ React__default.createElement(Icon, { classPrefix: iconClassPrefix, fontClassName: iconFontClassName, name: titIcon }))),
55
+ slot.content));
56
+ };
57
+ const renderRight = () => {
58
+ return (React__default.createElement("div", { className: `${b('right')}`, onClick: (e) => onClickRight(e) },
59
+ desc && React__default.createElement("div", { className: `${b('text')}` }, desc),
60
+ slot.right));
61
+ };
62
+ const renderWrapper = () => {
63
+ return (React__default.createElement("div", { className: cls, style: styles() },
64
+ renderLeft(),
65
+ renderContent(),
66
+ renderRight()));
67
+ };
68
+ const classes = classNames({
69
+ [`nut-navbar--border`]: border,
70
+ [`nut-navbar--fixed`]: fixed,
71
+ [`nut-navbar--safe-area-inset-top`]: safeAreaInsetTop,
56
72
  });
57
- };
58
- var renderLeft = function renderLeft() {
59
- return React__default.createElement("div", {
60
- className: "".concat(b('left')),
61
- onClick: function onClick(e) {
62
- return onClickBack(e);
63
- }
64
- }, leftShow && React__default.createElement(Icon, {
65
- classPrefix: iconClassPrefix,
66
- fontClassName: iconFontClassName,
67
- name: "left",
68
- color: "#979797"
69
- }), leftText && React__default.createElement("div", {
70
- className: "".concat(b('text'))
71
- }, leftText), slot.left);
72
- };
73
- var renderContent = function renderContent() {
74
- return React__default.createElement("div", {
75
- className: "".concat(b('title'))
76
- }, title && React__default.createElement("div", {
77
- className: "title",
78
- onClick: function onClick(e) {
79
- return onClickTitle(e);
80
- }
81
- }, title), titIcon && React__default.createElement("div", {
82
- onClick: function onClick(e) {
83
- return onClickIcon(e);
84
- }
85
- }, React__default.createElement(Icon, {
86
- classPrefix: iconClassPrefix,
87
- fontClassName: iconFontClassName,
88
- name: titIcon
89
- })), slot.content);
90
- };
91
- var renderRight = function renderRight() {
92
- return React__default.createElement("div", {
93
- className: "".concat(b('right')),
94
- onClick: function onClick(e) {
95
- return onClickRight(e);
96
- }
97
- }, desc && React__default.createElement("div", {
98
- className: "".concat(b('text'))
99
- }, desc), slot.right);
100
- };
101
- var renderWrapper = function renderWrapper() {
102
- return React__default.createElement("div", {
103
- className: cls,
104
- style: styles()
105
- }, renderLeft(), renderContent(), renderRight());
106
- };
107
- 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));
108
- var cls = classNames(b(''), classes, className);
109
- return React__default.createElement(React__default.Fragment, null, fixed && placeholder ? React__default.createElement("div", {
110
- className: "".concat(b(''), "--placeholder")
111
- }, renderWrapper()) : renderWrapper());
73
+ const cls = classNames(b(''), classes, className);
74
+ return (React__default.createElement(React__default.Fragment, null, fixed && placeholder ? (React__default.createElement("div", { className: `${b('')}--placeholder` }, renderWrapper())) : (renderWrapper())));
112
75
  };
113
76
  NavBar.defaultProps = defaultProps;
114
77
  NavBar.displayName = 'NutNavBar';
78
+
115
79
  export { NavBar as N };