@nutui/nutui-react-taro 1.5.2-beta.1 → 1.5.2

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 (231) hide show
  1. package/dist/esm/ActionSheet.js +90 -14
  2. package/dist/esm/Address.js +620 -21
  3. package/dist/esm/Animate.js +53 -7
  4. package/dist/esm/AnimatingNumbers.js +125 -7
  5. package/dist/esm/Audio.js +264 -19
  6. package/dist/esm/Avatar.js +130 -11
  7. package/dist/esm/{AvatarContext-c96afdcc.js → AvatarContext-15733596.js} +1 -3
  8. package/dist/esm/AvatarGroup.js +41 -11
  9. package/dist/esm/BackTop.js +138 -10
  10. package/dist/esm/Badge.js +71 -9
  11. package/dist/esm/Barrage.js +97 -8
  12. package/dist/esm/Button.js +108 -9
  13. package/dist/esm/Calendar.js +128 -20
  14. package/dist/esm/CalendarItem.js +674 -12
  15. package/dist/esm/Card.js +61 -11
  16. package/dist/esm/Cascader.js +671 -16
  17. package/dist/esm/Cell.js +101 -9
  18. package/dist/esm/CellGroup.js +2 -5
  19. package/dist/esm/Checkbox.js +5 -7
  20. package/dist/esm/CheckboxGroup.js +111 -8
  21. package/dist/esm/CircleProgress.js +114 -8
  22. package/dist/esm/Col.js +57 -7
  23. package/dist/esm/Collapse.js +97 -7
  24. package/dist/esm/CollapseItem.js +146 -8
  25. package/dist/esm/ConfigProvider.js +187 -8
  26. package/dist/esm/CountDown.js +247 -9
  27. package/dist/esm/DatePicker.js +309 -25
  28. package/dist/esm/Dialog.js +296 -17
  29. package/dist/esm/Divider.js +34 -7
  30. package/dist/esm/Drag.js +118 -7
  31. package/dist/esm/Elevator.js +234 -8
  32. package/dist/esm/Ellipsis.js +176 -10
  33. package/dist/esm/Empty.js +79 -8
  34. package/dist/esm/FixedNav.js +103 -14
  35. package/dist/esm/Form.js +215 -10
  36. package/dist/esm/FormItem.js +3 -10
  37. package/dist/esm/Grid.js +81 -11
  38. package/dist/esm/GridItem.js +123 -13
  39. package/dist/esm/Icon.js +2 -5
  40. package/dist/esm/Image.js +169 -11
  41. package/dist/esm/ImagePreview.js +225 -19
  42. package/dist/esm/Indicator.js +50 -7
  43. package/dist/esm/Infiniteloading.js +215 -14
  44. package/dist/esm/Input.js +362 -12
  45. package/dist/esm/InputNumber.js +275 -9
  46. package/dist/esm/Layout.js +13 -5
  47. package/dist/esm/Menu.js +153 -10
  48. package/dist/esm/MenuItem.js +175 -15
  49. package/dist/esm/NavBar.js +114 -9
  50. package/dist/esm/NoticeBar.js +568 -10
  51. package/dist/esm/Notify.js +234 -8
  52. package/dist/esm/NumberKeyboard.js +247 -17
  53. package/dist/esm/Overlay.js +2 -6
  54. package/dist/esm/Pagination.js +168 -9
  55. package/dist/esm/Picker.js +494 -22
  56. package/dist/esm/Popover.js +223 -12
  57. package/dist/esm/Popup.js +193 -13
  58. package/dist/esm/Price.js +84 -6
  59. package/dist/esm/Progress.js +122 -9
  60. package/dist/esm/PullToRefresh.js +276 -13
  61. package/dist/esm/Radio.js +4 -8
  62. package/dist/esm/RadioGroup.js +120 -7
  63. package/dist/esm/Range.js +406 -15
  64. package/dist/esm/Rate.js +121 -9
  65. package/dist/esm/Row.js +49 -7
  66. package/dist/esm/SearchBar.js +235 -12
  67. package/dist/esm/ShortPassword.js +191 -17
  68. package/dist/esm/SideNavBar.js +57 -19
  69. package/dist/esm/SideNavBarItem.js +24 -5
  70. package/dist/esm/Signature.js +153 -13
  71. package/dist/esm/Skeleton.js +98 -12
  72. package/dist/esm/Step.js +87 -10
  73. package/dist/esm/Steps.js +38 -8
  74. package/dist/esm/Sticky.js +190 -11
  75. package/dist/esm/SubSideNavBar.js +78 -6
  76. package/dist/esm/Swipe.js +230 -10
  77. package/dist/esm/Swiper.js +490 -9
  78. package/dist/esm/SwiperItem.js +36 -8
  79. package/dist/esm/Switch.js +71 -6
  80. package/dist/esm/TabPane.js +2 -5
  81. package/dist/esm/Tabbar.js +68 -6
  82. package/dist/esm/TabbarItem.js +78 -9
  83. package/dist/esm/Table.js +140 -12
  84. package/dist/esm/Tabs.js +5 -8
  85. package/dist/esm/Tag.js +110 -10
  86. package/dist/esm/TextArea.js +148 -9
  87. package/dist/esm/TimeDetail.js +67 -9
  88. package/dist/esm/TimePannel.js +29 -9
  89. package/dist/esm/TimeSelect.js +171 -19
  90. package/dist/esm/Toast.js +268 -7
  91. package/dist/esm/TrendArrow.js +99 -7
  92. package/dist/esm/Uploader.js +566 -17
  93. package/dist/esm/{UserContext-0aac9a82.js → UserContext-101ad4a4.js} +1 -3
  94. package/dist/esm/{UserContext-e402e1a6.js → UserContext-2629d479.js} +1 -3
  95. package/dist/esm/{UserContext-e8176108.js → UserContext-b33bcf21.js} +1 -3
  96. package/dist/esm/Video.js +90 -7
  97. package/dist/esm/VirtualList.js +313 -9
  98. package/dist/esm/WaterMark.js +111 -11
  99. package/dist/esm/{bem-350c1702.js → bem-3b438e61.js} +6 -3
  100. package/dist/esm/cellgroup-fcc72767.js +34 -0
  101. package/dist/esm/checkbox-44e13cd0.js +137 -0
  102. package/dist/esm/date-c7aad4c0.js +97 -0
  103. package/dist/esm/formitem-8a73a5fb.js +157 -0
  104. package/dist/esm/get-scroll-parent-5f85dee8.js +24 -0
  105. package/dist/esm/{grid.taro.context-c2bbfb4f.js → grid.context-2ee27d95.js} +2 -4
  106. package/dist/esm/icon-4ef1581c.js +70 -0
  107. package/dist/esm/index-030b7245.js +11 -0
  108. package/dist/esm/nutui-react.es.js +94 -119
  109. package/dist/esm/offsetContext-3ab00d40.js +16 -0
  110. package/dist/esm/overlay-de6c79d5.js +83 -0
  111. package/dist/esm/radio-9f141e6b.js +118 -0
  112. package/dist/esm/render-bbebb760.js +79 -0
  113. package/dist/esm/tabpane-01075e6c.js +29 -0
  114. package/dist/esm/tabs-e1b4e4b1.js +181 -0
  115. package/dist/esm/typings-f27b58f4.js +8 -0
  116. package/dist/esm/useClientRect-56bb675b.js +39 -0
  117. package/dist/esm/useTouch-cf73a407.js +99 -0
  118. package/dist/locales/base.js +1 -1
  119. package/dist/locales/en-US.js +1 -1
  120. package/dist/locales/id-ID.js +1 -1
  121. package/dist/locales/zh-CN.js +1 -1
  122. package/dist/locales/zh-TW.js +1 -1
  123. package/dist/locales/zh-UG.js +1 -1
  124. package/dist/nutui.react.mjs +15025 -13192
  125. package/dist/nutui.react.umd.js +15004 -13169
  126. package/dist/style.mjs +1 -1
  127. package/dist/types/index.d.ts +183 -176
  128. package/package.json +1 -1
  129. package/dist/esm/actionsheet.taro-e6a51446.js +0 -53
  130. package/dist/esm/address.taro-3a9b6396.js +0 -461
  131. package/dist/esm/animate.taro-fb7986d6.js +0 -40
  132. package/dist/esm/animatingnumbers.taro-03e5d61d.js +0 -104
  133. package/dist/esm/audio.taro-87ec8bf2.js +0 -161
  134. package/dist/esm/avatar.taro-3676f38f.js +0 -103
  135. package/dist/esm/avatargroup-f3574510.js +0 -34
  136. package/dist/esm/backtop.taro-66394a36.js +0 -48
  137. package/dist/esm/badge.taro-a4e59c11.js +0 -52
  138. package/dist/esm/barrage.taro-0495a1b2.js +0 -94
  139. package/dist/esm/button.taro-9244d065.js +0 -100
  140. package/dist/esm/calendar.taro-670842ea.js +0 -65
  141. package/dist/esm/calendaritem.taro-2a603571.js +0 -787
  142. package/dist/esm/can-use-dom-3eeb5af4.js +0 -6
  143. package/dist/esm/card.taro-e4c76dad.js +0 -33
  144. package/dist/esm/cascader.taro-eb1fb011.js +0 -438
  145. package/dist/esm/cell.taro-a10a74d3.js +0 -64
  146. package/dist/esm/cellgroup.taro-abe501bc.js +0 -25
  147. package/dist/esm/checkbox.taro-6120e3e3.js +0 -171
  148. package/dist/esm/circleprogress.taro-79854448.js +0 -109
  149. package/dist/esm/col.taro-53eed3cc.js +0 -41
  150. package/dist/esm/collapse.taro-1a9e4ba2.js +0 -83
  151. package/dist/esm/collapseitem-4d0bc55d.js +0 -83
  152. package/dist/esm/configprovider-67d19d3a.js +0 -19
  153. package/dist/esm/configprovider.taro-8d71eb49.js +0 -42
  154. package/dist/esm/countdown.taro-5b17c607.js +0 -226
  155. package/dist/esm/datepicker.taro-6e9b4b8f.js +0 -275
  156. package/dist/esm/dialog.taro-a3267d29.js +0 -118
  157. package/dist/esm/divider.taro-26d1d8b4.js +0 -35
  158. package/dist/esm/drag.taro-79bb8744.js +0 -110
  159. package/dist/esm/elevator.taro-6019669e.js +0 -178
  160. package/dist/esm/ellipsis.taro-f15f26da.js +0 -241
  161. package/dist/esm/empty.taro-04ae4389.js +0 -62
  162. package/dist/esm/fixednav.taro-1f05acaf.js +0 -53
  163. package/dist/esm/form.taro-0c8e7a39.js +0 -179
  164. package/dist/esm/formitem.taro-190a3326.js +0 -89
  165. package/dist/esm/get-scroll-parent-b4a07e65.js +0 -25
  166. package/dist/esm/grid.taro-3503b82c.js +0 -61
  167. package/dist/esm/griditem.taro-cdb3f119.js +0 -98
  168. package/dist/esm/icon-296a1bec.js +0 -63
  169. package/dist/esm/icon.taro-296a1bec.js +0 -63
  170. package/dist/esm/image.taro-142cf512.js +0 -64
  171. package/dist/esm/imagepreview.taro-c50bb0a3.js +0 -167
  172. package/dist/esm/index-5bcb0ff8.js +0 -7
  173. package/dist/esm/indicator.taro-cba8b010.js +0 -37
  174. package/dist/esm/infiniteloading.taro-183bccbf.js +0 -144
  175. package/dist/esm/input.taro-97af6c96.js +0 -240
  176. package/dist/esm/inputnumber.taro-91f65d17.js +0 -130
  177. package/dist/esm/layout.taro-9046d093.js +0 -11
  178. package/dist/esm/menu.taro-7e4038a1.js +0 -99
  179. package/dist/esm/menuitem.taro-96cc4f15.js +0 -130
  180. package/dist/esm/navbar.taro-777c4705.js +0 -79
  181. package/dist/esm/noticebar.taro-4a23cdee.js +0 -448
  182. package/dist/esm/notify.taro-e17c6f82.js +0 -75
  183. package/dist/esm/numberkeyboard.taro-1bc24744.js +0 -159
  184. package/dist/esm/offsetContext-c2a746fa.js +0 -5
  185. package/dist/esm/overlay.taro-21e87fb1.js +0 -69
  186. package/dist/esm/pagination.taro-715a173b.js +0 -124
  187. package/dist/esm/picker.taro-9ad1b7c5.js +0 -473
  188. package/dist/esm/popover.taro-ad5e76ea.js +0 -156
  189. package/dist/esm/popup.taro-01676bff.js +0 -137
  190. package/dist/esm/price.taro-776ed16e.js +0 -83
  191. package/dist/esm/progress.taro-f0ce38e9.js +0 -90
  192. package/dist/esm/pulltorefresh.taro-a294f656.js +0 -181
  193. package/dist/esm/radio.taro-a6eff96c.js +0 -168
  194. package/dist/esm/range.taro-d8fc7656.js +0 -332
  195. package/dist/esm/rate.taro-6cdf03bd.js +0 -75
  196. package/dist/esm/row.taro-f64d4a13.js +0 -46
  197. package/dist/esm/searchbar.taro-0c25927b.js +0 -152
  198. package/dist/esm/shortpassword.taro-9ee034f7.js +0 -111
  199. package/dist/esm/sidenavbar.taro-c307b35e.js +0 -35
  200. package/dist/esm/sidenavbaritem.taro-5a7965d0.js +0 -12
  201. package/dist/esm/signature.taro-ec4e713b.js +0 -143
  202. package/dist/esm/skeleton.taro-76faf63f.js +0 -62
  203. package/dist/esm/step.taro-b7903e8c.js +0 -59
  204. package/dist/esm/steps.taro-c82d2252.js +0 -30
  205. package/dist/esm/sticky.taro-218bda37.js +0 -138
  206. package/dist/esm/subsidenavbar.taro-69cb9752.js +0 -63
  207. package/dist/esm/supports-passive-c85ef996.js +0 -18
  208. package/dist/esm/swipe.taro-ea35f07f.js +0 -177
  209. package/dist/esm/swiper.taro-7a94e211.js +0 -451
  210. package/dist/esm/swiperitem-c9e3d0d5.js +0 -29
  211. package/dist/esm/switch.taro-34ca8228.js +0 -50
  212. package/dist/esm/tabbar.taro-9acfc2fa.js +0 -59
  213. package/dist/esm/tabbaritem.taro-bf517487.js +0 -58
  214. package/dist/esm/table.taro-91fc0c01.js +0 -93
  215. package/dist/esm/tabpane.taro-4ca340ef.js +0 -23
  216. package/dist/esm/tabs.taro-6a7524a4.js +0 -140
  217. package/dist/esm/tag.taro-23ba0834.js +0 -92
  218. package/dist/esm/textarea.taro-442e7350.js +0 -94
  219. package/dist/esm/timedetail.taro-5b2f2269.js +0 -44
  220. package/dist/esm/timepannel.taro-d6e40180.js +0 -22
  221. package/dist/esm/timeselect.taro-a07036f4.js +0 -133
  222. package/dist/esm/toast.taro-d6c14811.js +0 -109
  223. package/dist/esm/trendarrow.taro-b8c5ccd9.js +0 -73
  224. package/dist/esm/typings-b9828dba.js +0 -9
  225. package/dist/esm/uploader.taro-587e6bf3.js +0 -492
  226. package/dist/esm/useClientRect-1f8ed1fe.js +0 -18
  227. package/dist/esm/useTouch-db24bb5c.js +0 -69
  228. package/dist/esm/video-f1be8a91.js +0 -67
  229. package/dist/esm/virtuallist.taro-f0b0270d.js +0 -214
  230. package/dist/esm/watermark.taro-9ce2ae37.js +0 -114
  231. package/dist/esm/zh-CN-c779e6c1.js +0 -131
@@ -1,11 +1,116 @@
1
- import { N as NavBar } from './navbar.taro-777c4705.js';
2
- import 'react';
3
- import 'classnames';
4
- import './icon.taro-296a1bec.js';
5
- import './bem-350c1702.js';
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
+ import React__default from 'react';
5
+ import classNames from 'classnames';
6
+ import Icon from './Icon.js';
7
+ import { c as cn } from './bem-3b438e61.js';
8
+ import { C as ComponentDefaults } from './typings-f27b58f4.js';
6
9
  import '@bem-react/classname';
7
- import './typings-b9828dba.js';
8
-
9
-
10
-
10
+ var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, {
11
+ title: '',
12
+ desc: '',
13
+ leftShow: true,
14
+ titIcon: '',
15
+ className: '',
16
+ leftText: '',
17
+ fixed: false,
18
+ safeAreaInsetTop: false,
19
+ border: false,
20
+ placeholder: false,
21
+ zIndex: 10,
22
+ style: {}
23
+ });
24
+ var NavBar = function NavBar(props) {
25
+ var _classNames;
26
+ var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),
27
+ desc = _defaultProps$props.desc,
28
+ title = _defaultProps$props.title,
29
+ titIcon = _defaultProps$props.titIcon,
30
+ leftShow = _defaultProps$props.leftShow,
31
+ className = _defaultProps$props.className,
32
+ style = _defaultProps$props.style,
33
+ leftText = _defaultProps$props.leftText,
34
+ fixed = _defaultProps$props.fixed,
35
+ safeAreaInsetTop = _defaultProps$props.safeAreaInsetTop,
36
+ border = _defaultProps$props.border,
37
+ placeholder = _defaultProps$props.placeholder,
38
+ zIndex = _defaultProps$props.zIndex,
39
+ onClickTitle = _defaultProps$props.onClickTitle,
40
+ onClickIcon = _defaultProps$props.onClickIcon,
41
+ onClickBack = _defaultProps$props.onClickBack,
42
+ onClickRight = _defaultProps$props.onClickRight,
43
+ iconClassPrefix = _defaultProps$props.iconClassPrefix,
44
+ iconFontClassName = _defaultProps$props.iconFontClassName;
45
+ var b = cn('navbar');
46
+ var children = Array.isArray(props.children) ? props.children : [props.children];
47
+ var slot = children.reduce(function (slot, item) {
48
+ var data = slot;
49
+ if (item && item.props) {
50
+ data[item.props.slot] = item;
51
+ }
52
+ return data;
53
+ }, {});
54
+ var styles = function styles() {
55
+ return _objectSpread(_objectSpread({}, style), {}, {
56
+ zIndex: zIndex
57
+ });
58
+ };
59
+ var renderLeft = function renderLeft() {
60
+ return React__default.createElement("div", {
61
+ className: "".concat(b('left')),
62
+ onClick: function onClick(e) {
63
+ return onClickBack(e);
64
+ }
65
+ }, leftShow && React__default.createElement(Icon, {
66
+ classPrefix: iconClassPrefix,
67
+ fontClassName: iconFontClassName,
68
+ name: "left",
69
+ color: "#979797"
70
+ }), leftText && React__default.createElement("div", {
71
+ className: "".concat(b('text'))
72
+ }, leftText), slot.left);
73
+ };
74
+ var renderContent = function renderContent() {
75
+ return React__default.createElement("div", {
76
+ className: "".concat(b('title'))
77
+ }, title && React__default.createElement("div", {
78
+ className: "title",
79
+ onClick: function onClick(e) {
80
+ return onClickTitle(e);
81
+ }
82
+ }, title), titIcon && React__default.createElement("div", {
83
+ onClick: function onClick(e) {
84
+ return onClickIcon(e);
85
+ }
86
+ }, React__default.createElement(Icon, {
87
+ classPrefix: iconClassPrefix,
88
+ fontClassName: iconFontClassName,
89
+ name: titIcon
90
+ })), slot.content);
91
+ };
92
+ var renderRight = function renderRight() {
93
+ return React__default.createElement("div", {
94
+ className: "".concat(b('right')),
95
+ onClick: function onClick(e) {
96
+ return onClickRight(e);
97
+ }
98
+ }, desc && React__default.createElement("div", {
99
+ className: "".concat(b('text'))
100
+ }, desc), slot.right);
101
+ };
102
+ var renderWrapper = function renderWrapper() {
103
+ return React__default.createElement("div", {
104
+ className: cls,
105
+ style: styles()
106
+ }, renderLeft(), renderContent(), renderRight());
107
+ };
108
+ 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));
109
+ var cls = classNames(b(''), classes, className);
110
+ return React__default.createElement(React__default.Fragment, null, fixed && placeholder ? React__default.createElement("div", {
111
+ className: "".concat(b(''), "--placeholder")
112
+ }, renderWrapper()) : renderWrapper());
113
+ };
114
+ NavBar.defaultProps = defaultProps;
115
+ NavBar.displayName = 'NutNavBar';
11
116
  export { NavBar as default };
@@ -1,12 +1,570 @@
1
- import { N as NoticeBar } from './noticebar.taro-4a23cdee.js';
2
- import 'react';
3
- import 'classnames';
4
- import './icon.taro-296a1bec.js';
5
- import './bem-350c1702.js';
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+ 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; }
4
+ 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; }
5
+ import React__default, { useRef, useState, useMemo, useEffect } from 'react';
6
+ import classNames from 'classnames';
7
+ import Icon from './Icon.js';
8
+ import { c as cn } from './bem-3b438e61.js';
9
+ import { g as getRect } from './useClientRect-56bb675b.js';
10
+ import { C as ComponentDefaults } from './typings-f27b58f4.js';
6
11
  import '@bem-react/classname';
7
- import './useClientRect-1f8ed1fe.js';
8
- import './typings-b9828dba.js';
9
-
10
-
11
-
12
+ var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, {
13
+ // 滚动方向 across 横向 vertical 纵向
14
+ direction: 'across',
15
+ list: [],
16
+ standTime: 1000,
17
+ complexAm: false,
18
+ height: 40,
19
+ text: '',
20
+ closeMode: false,
21
+ wrapable: false,
22
+ leftIcon: '',
23
+ color: '',
24
+ background: '',
25
+ delay: 1,
26
+ scrollable: null,
27
+ speed: 50
28
+ });
29
+ var NoticeBar = function NoticeBar(props) {
30
+ var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),
31
+ children = _defaultProps$props.children,
32
+ className = _defaultProps$props.className,
33
+ style = _defaultProps$props.style,
34
+ direction = _defaultProps$props.direction,
35
+ list = _defaultProps$props.list,
36
+ standTime = _defaultProps$props.standTime,
37
+ complexAm = _defaultProps$props.complexAm,
38
+ height = _defaultProps$props.height,
39
+ text = _defaultProps$props.text,
40
+ closeMode = _defaultProps$props.closeMode,
41
+ wrapable = _defaultProps$props.wrapable,
42
+ leftIcon = _defaultProps$props.leftIcon,
43
+ color = _defaultProps$props.color,
44
+ background = _defaultProps$props.background,
45
+ delay = _defaultProps$props.delay,
46
+ scrollable = _defaultProps$props.scrollable,
47
+ speed = _defaultProps$props.speed,
48
+ rightIcon = _defaultProps$props.rightIcon,
49
+ close = _defaultProps$props.close,
50
+ click = _defaultProps$props.click,
51
+ onClose = _defaultProps$props.onClose,
52
+ onClick = _defaultProps$props.onClick,
53
+ onClickItem = _defaultProps$props.onClickItem,
54
+ iconClassPrefix = _defaultProps$props.iconClassPrefix,
55
+ iconFontClassName = _defaultProps$props.iconFontClassName;
56
+ var wrap = useRef(null);
57
+ var content = useRef(null);
58
+ var _useState = useState(true),
59
+ _useState2 = _slicedToArray(_useState, 2),
60
+ showNoticeBar = _useState2[0],
61
+ SetShowNoticeBar = _useState2[1];
62
+ var scrollList = useRef([]);
63
+ var _useState3 = useState(0),
64
+ _useState4 = _slicedToArray(_useState3, 2),
65
+ wrapWidth = _useState4[0],
66
+ SetWrapWidth = _useState4[1];
67
+ var _useState5 = useState(true),
68
+ _useState6 = _slicedToArray(_useState5, 2),
69
+ firstRound = _useState6[0],
70
+ SetFirstRound = _useState6[1];
71
+ var _useState7 = useState(0),
72
+ _useState8 = _slicedToArray(_useState7, 2),
73
+ duration = _useState8[0],
74
+ SetDuration = _useState8[1];
75
+ var _useState9 = useState(0),
76
+ _useState10 = _slicedToArray(_useState9, 2),
77
+ offsetWidth = _useState10[0],
78
+ SetOffsetW = _useState10[1];
79
+ var _useState11 = useState(''),
80
+ _useState12 = _slicedToArray(_useState11, 2),
81
+ animationClass = _useState12[0],
82
+ SetAnimationClass = _useState12[1];
83
+ var _useState13 = useState(false),
84
+ _useState14 = _slicedToArray(_useState13, 2),
85
+ animate = _useState14[0],
86
+ SetAnimate = _useState14[1];
87
+ var _useState15 = useState(0),
88
+ _useState16 = _slicedToArray(_useState15, 2),
89
+ distance = _useState16[0],
90
+ SetDistance = _useState16[1];
91
+ var _useState17 = useState(0),
92
+ _useState18 = _slicedToArray(_useState17, 2),
93
+ timer = _useState18[0],
94
+ SetTimer = _useState18[1];
95
+ var _useState19 = useState(null),
96
+ _useState20 = _slicedToArray(_useState19, 2),
97
+ isCanScroll = _useState20[0],
98
+ SetIsCanScroll = _useState20[1];
99
+ var isVertical = direction === 'vertical';
100
+ var _useState21 = useState(null),
101
+ _useState22 = _slicedToArray(_useState21, 2),
102
+ rect = _useState22[0],
103
+ setRect = _useState22[1];
104
+ var active = 0;
105
+ var _useState23 = useState(''),
106
+ _useState24 = _slicedToArray(_useState23, 2),
107
+ vLeftIcon = _useState24[0],
108
+ setLeftIcon = _useState24[1];
109
+ var _useState25 = useState(false),
110
+ _useState26 = _slicedToArray(_useState25, 2),
111
+ ready = _useState26[0],
112
+ setReady = _useState26[1];
113
+ var container = useRef(null);
114
+ var innerRef = useRef(null);
115
+ var _swiper = useRef({
116
+ moving: false,
117
+ autoplayTimer: null,
118
+ width: 0,
119
+ height: 0,
120
+ offset: 0,
121
+ size: 0
122
+ });
123
+ var _useState27 = useState([]),
124
+ _useState28 = _slicedToArray(_useState27, 2),
125
+ childOffset = _useState28[0],
126
+ setChildOffset = _useState28[1];
127
+ var _useState29 = useState(0),
128
+ _useState30 = _slicedToArray(_useState29, 2),
129
+ offset = _useState30[0],
130
+ setOffset = _useState30[1];
131
+ // 获取自定义slot数据内容和总条数
132
+ var _useMemo = useMemo(function () {
133
+ var childCount = 0;
134
+ var childs = React__default.Children.map(children, function (child) {
135
+ if (!React__default.isValidElement(child)) return null;
136
+ childCount++;
137
+ return child;
138
+ });
139
+ return {
140
+ childs: childs,
141
+ childCount: childCount
142
+ };
143
+ }, [children]),
144
+ childs = _useMemo.childs,
145
+ childCount = _useMemo.childCount;
146
+ // 滚动消息的总高度
147
+ var trackSize = childCount * Number(height);
148
+ // 设置最小偏移量(最后一条的偏移位置)
149
+ var minOffset = function () {
150
+ if (rect) {
151
+ var base = isVertical ? rect.height : rect.width;
152
+ return base - Number(height) * childCount;
153
+ }
154
+ return 0;
155
+ }();
156
+ useEffect(function () {
157
+ if (isVertical) {
158
+ // 兼容老版本无左侧Icon问题
159
+ if (leftIcon !== '') {
160
+ setLeftIcon(leftIcon);
161
+ } else {
162
+ setLeftIcon('close');
163
+ }
164
+ if (children) {
165
+ scrollList.current = [].concat(childs);
166
+ } else {
167
+ scrollList.current = [].concat(list);
168
+ startRollEasy();
169
+ }
170
+ complexAm && startRoll();
171
+ } else {
172
+ initScrollWrap();
173
+ }
174
+ return function () {
175
+ // 销毁事件
176
+ clearInterval(timer);
177
+ };
178
+ }, []);
179
+ useEffect(function () {
180
+ initScrollWrap();
181
+ }, [text]);
182
+ useEffect(function () {
183
+ if (list && list.length) {
184
+ scrollList.current = [].concat(list);
185
+ }
186
+ }, [list]);
187
+ var initScrollWrap = function initScrollWrap(value) {
188
+ if (showNoticeBar === false) {
189
+ return;
190
+ }
191
+ setTimeout(function () {
192
+ if (!wrap.current || !content.current) {
193
+ return;
194
+ }
195
+ var wrapW = getRect(wrap.current).width;
196
+ var offsetW = getRect(content.current).width;
197
+ var canScroll = scrollable == null ? offsetW > wrapW : scrollable;
198
+ SetIsCanScroll(canScroll);
199
+ if (canScroll) {
200
+ SetWrapWidth(wrapW);
201
+ SetOffsetW(offsetW);
202
+ SetDuration(offsetW / speed);
203
+ SetAnimationClass('play');
204
+ } else {
205
+ SetAnimationClass('');
206
+ }
207
+ }, 0);
208
+ };
209
+ var handleClick = function handleClick(event) {
210
+ click && click(event);
211
+ onClick && onClick(event);
212
+ };
213
+ var onClickIcon = function onClickIcon(event) {
214
+ event.stopPropagation();
215
+ SetShowNoticeBar(!closeMode);
216
+ close && close(event);
217
+ onClose && onClose(event);
218
+ };
219
+ var onAnimationEnd = function onAnimationEnd() {
220
+ SetFirstRound(false);
221
+ setTimeout(function () {
222
+ SetDuration((offsetWidth + wrapWidth) / speed);
223
+ SetAnimationClass('play-infinite');
224
+ }, 0);
225
+ };
226
+ // 滚动时间间隔
227
+ var time = height / speed / 4 < 1 ? Number((height / speed / 4).toFixed(1)) * 1000 : ~~(height / speed / 4) * 1000;
228
+ /**
229
+ * 滚动方式一,普通垂直滚动
230
+ */
231
+ var startRollEasy = function startRollEasy() {
232
+ showhorseLamp();
233
+ var timerCurr = window.setInterval(showhorseLamp, time + Number(standTime));
234
+ SetTimer(timerCurr);
235
+ };
236
+ var showhorseLamp = function showhorseLamp() {
237
+ SetAnimate(true);
238
+ setTimeout(function () {
239
+ scrollList.current.push(scrollList.current[0]);
240
+ scrollList.current.shift();
241
+ SetAnimate(false);
242
+ }, time);
243
+ };
244
+ /**
245
+ * 复杂滚动方式
246
+ */
247
+ var startRoll = function startRoll() {
248
+ var timerCurr = window.setInterval(function () {
249
+ var chunk = 100;
250
+ for (var i = 0; i < chunk; i++) {
251
+ scroll(i, !(i < chunk - 1));
252
+ }
253
+ }, Number(standTime) + 100 * speed);
254
+ SetTimer(timerCurr);
255
+ };
256
+ var scroll = function scroll(n, last) {
257
+ SetAnimate(true);
258
+ setTimeout(function () {
259
+ var _long = distance;
260
+ _long -= height / 100;
261
+ SetDistance(_long);
262
+ if (last) {
263
+ scrollList.current.push(scrollList.current[0]);
264
+ scrollList.current.shift();
265
+ SetDistance(0);
266
+ SetAnimate(false);
267
+ }
268
+ }, n * speed);
269
+ };
270
+ /**
271
+ * 点击滚动单元
272
+ */
273
+ var handleClickIcon = function handleClickIcon(event) {
274
+ event.stopPropagation();
275
+ SetShowNoticeBar(!closeMode);
276
+ close && close(event);
277
+ onClose && onClose(event);
278
+ };
279
+ var iconShow = function iconShow() {
280
+ if (leftIcon === 'close' || vLeftIcon === 'close') {
281
+ return false;
282
+ }
283
+ return true;
284
+ };
285
+ var iconBg = function iconBg() {
286
+ var iconBg = '';
287
+ if (leftIcon) {
288
+ iconBg = leftIcon;
289
+ }
290
+ return iconBg;
291
+ };
292
+ var isEllipsis = function isEllipsis() {
293
+ if (isCanScroll == null) {
294
+ return wrapable;
295
+ }
296
+ return !isCanScroll && !wrapable;
297
+ };
298
+ var contentStyle = {
299
+ animationDelay: "".concat(firstRound ? delay : 0, "s"),
300
+ animationDuration: "".concat(duration, "s"),
301
+ transform: "translateX(".concat(firstRound ? 0 : "".concat(wrapWidth, "px"), ")")
302
+ };
303
+ var barStyle = {
304
+ color: color,
305
+ background: background,
306
+ height: isVertical ? "".concat(height, "px") : ''
307
+ };
308
+ var duringTime = height / speed / 4 < 1 ? Number((height / speed / 4).toFixed(1)) : ~~(height / speed / 4);
309
+ var noDuring = height / speed < 1 ? (height / speed).toFixed(1) : ~~(height / speed);
310
+ var horseLampStyle = {
311
+ transform: complexAm ? "translateY(".concat(distance, "px)") : '',
312
+ transition: animate ? "all ".concat(duringTime === 0 ? noDuring : duringTime, "s") : '',
313
+ marginTop: animate ? "-".concat(height, "px") : ''
314
+ };
315
+ /**
316
+ * 垂直自定义滚动方式
317
+ */
318
+ var init = function init() {
319
+ var active = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : +0;
320
+ var rects = getRect(container === null || container === void 0 ? void 0 : container.current);
321
+ var _active = Math.max(Math.min(childCount - 1, active), 0);
322
+ var _height = rects.height;
323
+ trackSize = childCount * Number(_height);
324
+ var targetOffset = getOffset(_active);
325
+ _swiper.current.moving = true;
326
+ if (ready) {
327
+ _swiper.current.moving = false;
328
+ }
329
+ active = _active;
330
+ setRect(rects);
331
+ setOffset(targetOffset);
332
+ setReady(true);
333
+ };
334
+ useEffect(function () {
335
+ if (ready) {
336
+ stopAutoPlay();
337
+ autoplay();
338
+ }
339
+ return function () {
340
+ setReady(false);
341
+ };
342
+ }, [ready]);
343
+ useEffect(function () {
344
+ if (isVertical && children) {
345
+ init();
346
+ stopAutoPlay();
347
+ autoplay();
348
+ }
349
+ }, [children, container === null || container === void 0 ? void 0 : container.current]);
350
+ // 清除定时器
351
+ var stopAutoPlay = function stopAutoPlay() {
352
+ clearTimeout(_swiper.current.autoplayTimer);
353
+ _swiper.current.autoplayTimer = null;
354
+ };
355
+ // 定时轮播
356
+ var autoplay = function autoplay() {
357
+ if (childCount <= 1) return;
358
+ stopAutoPlay();
359
+ _swiper.current.autoplayTimer = setTimeout(function () {
360
+ next();
361
+ autoplay();
362
+ }, Number(standTime) + 100 * speed);
363
+ };
364
+ // 切换方法
365
+ var move = function move(_ref) {
366
+ var _ref$pace = _ref.pace,
367
+ pace = _ref$pace === void 0 ? 0 : _ref$pace,
368
+ _ref$offset = _ref.offset,
369
+ offset = _ref$offset === void 0 ? 0 : _ref$offset;
370
+ if (childCount <= 1) return;
371
+ var targetActive = getActive(pace);
372
+ // 父级容器偏移量
373
+ var targetOffset = getOffset(targetActive, offset);
374
+ // 循环滚动,调整开头结尾图片位置
375
+ if (Array.isArray(children) && children[0] && targetOffset !== minOffset) {
376
+ var rightBound = targetOffset < minOffset;
377
+ childOffset[0] = rightBound ? trackSize : 0;
378
+ }
379
+ if (Array.isArray(children) && children[childCount - 1] && targetOffset !== 0) {
380
+ var leftBound = targetOffset > 0;
381
+ childOffset[childCount - 1] = leftBound ? -trackSize : 0;
382
+ }
383
+ setChildOffset(childOffset);
384
+ active = targetActive;
385
+ setOffset(targetOffset);
386
+ getStyle(targetOffset);
387
+ };
388
+ // 下一页
389
+ var next = function next() {
390
+ resettPosition();
391
+ requestFrame(function () {
392
+ requestFrame(function () {
393
+ _swiper.current.moving = false;
394
+ move({
395
+ pace: 1
396
+ });
397
+ });
398
+ });
399
+ };
400
+ var handleItemClick = function handleItemClick(event, value) {
401
+ onClickItem && onClickItem(event, value);
402
+ };
403
+ var getStyle = function getStyle() {
404
+ var moveOffset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : offset;
405
+ var target = innerRef.current;
406
+ var _offset = 0;
407
+ // 容器高度-元素高度
408
+ var val = rect.height - height;
409
+ _offset = moveOffset + Number(active === childCount - 1 && val / 2);
410
+ target.style.transitionDuration = "".concat(_swiper.current.moving ? 0 : standTime, "ms");
411
+ target.style.height = "".concat(Number(height) * childCount, "px");
412
+ target.style.transform = "translate3D(0,".concat(_offset, "px,0)");
413
+ };
414
+ // 无缝滚动第一个元素位移控制
415
+ var itemStyle = function itemStyle(index) {
416
+ var style = {};
417
+ if (height) {
418
+ style.height = "".concat(height, "px");
419
+ style.lineHeight = "".concat(height, "px");
420
+ }
421
+ var offset = childOffset[index];
422
+ if (offset) {
423
+ style.transform = "translate3D(0,".concat(offset, "px,0)");
424
+ }
425
+ return style;
426
+ };
427
+ // 确定当前active 元素
428
+ var getActive = function getActive(pace) {
429
+ if (pace) {
430
+ var _active = active + pace;
431
+ return range(_active, -1, childCount);
432
+ }
433
+ return active;
434
+ };
435
+ // 计算位移
436
+ var getOffset = function getOffset(active) {
437
+ var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
438
+ var currentPosition = active * Number(height);
439
+ var targetOffset = offset - currentPosition;
440
+ return targetOffset;
441
+ };
442
+ // 浏览器 帧 事件
443
+ var requestFrame = function requestFrame(fn) {
444
+ window.requestAnimationFrame.call(window, fn);
445
+ };
446
+ // 取值 方法
447
+ var range = function range(num, min, max) {
448
+ return Math.min(Math.max(num, min), max);
449
+ };
450
+ // 重置首尾位置信息
451
+ var resettPosition = function resettPosition() {
452
+ _swiper.current.moving = true;
453
+ if (active <= -1) {
454
+ move({
455
+ pace: childCount
456
+ });
457
+ }
458
+ if (active >= childCount) {
459
+ move({
460
+ pace: -childCount
461
+ });
462
+ }
463
+ };
464
+ var b = cn('noticebar');
465
+ var noticebarClass = classNames({
466
+ 'nut-noticebar-page': true,
467
+ withicon: closeMode,
468
+ close: closeMode,
469
+ wrapable: wrapable
470
+ });
471
+ useEffect(function () {
472
+ return function () {
473
+ stopAutoPlay();
474
+ };
475
+ }, []);
476
+ return React__default.createElement("div", {
477
+ className: "".concat(b(), " ").concat(className || ''),
478
+ style: style
479
+ }, showNoticeBar && direction === 'across' ? React__default.createElement("div", {
480
+ className: noticebarClass,
481
+ style: barStyle,
482
+ onClick: handleClick
483
+ }, iconShow() ? React__default.createElement("div", {
484
+ className: "left-icon",
485
+ style: {
486
+ backgroundImage: "url(".concat(iconBg() || '', ")")
487
+ }
488
+ }, !iconBg() ? React__default.createElement(Icon, {
489
+ classPrefix: iconClassPrefix,
490
+ fontClassName: iconFontClassName,
491
+ name: "notice",
492
+ size: "16",
493
+ color: color
494
+ }) : null) : null, React__default.createElement("div", {
495
+ ref: wrap,
496
+ className: "wrap"
497
+ }, React__default.createElement("div", {
498
+ ref: content,
499
+ className: "content ".concat(animationClass, " ").concat(isEllipsis() ? 'nut-ellipsis' : ''),
500
+ style: contentStyle,
501
+ onAnimationEnd: onAnimationEnd
502
+ }, children, text)), closeMode || rightIcon ? React__default.createElement("div", {
503
+ className: "right-icon",
504
+ onClick: onClickIcon
505
+ }, React__default.createElement(Icon, {
506
+ classPrefix: iconClassPrefix,
507
+ fontClassName: iconFontClassName,
508
+ name: rightIcon || 'close',
509
+ color: color
510
+ })) : null) : null, showNoticeBar && scrollList.current.length > 0 && isVertical ? React__default.createElement("div", {
511
+ className: "nut-noticebar-vertical",
512
+ style: barStyle,
513
+ ref: container,
514
+ onClick: handleClick
515
+ }, iconShow() ? React__default.createElement("div", {
516
+ className: "left-icon",
517
+ style: {
518
+ backgroundImage: "url(".concat(iconBg() || '', ")")
519
+ }
520
+ }, !iconBg() ? React__default.createElement(Icon, {
521
+ classPrefix: iconClassPrefix,
522
+ fontClassName: iconFontClassName,
523
+ name: "notice",
524
+ size: "16",
525
+ color: color
526
+ }) : null) : null, children ? React__default.createElement(React__default.Fragment, null, React__default.createElement("div", {
527
+ className: "nut-noticebar__inner",
528
+ ref: innerRef
529
+ }, scrollList.current.map(function (item, index) {
530
+ return React__default.createElement("div", {
531
+ className: "scroll-inner ",
532
+ style: itemStyle(index),
533
+ key: index,
534
+ onClick: function onClick(e) {
535
+ handleItemClick(e, item);
536
+ }
537
+ }, item);
538
+ }))) : React__default.createElement("div", {
539
+ className: "horseLamp_list",
540
+ style: horseLampStyle
541
+ }, scrollList.current.map(function (item, index) {
542
+ return (
543
+ // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions
544
+ React__default.createElement("div", {
545
+ className: "horseLamp_list_item",
546
+ style: {
547
+ height: height
548
+ },
549
+ key: index,
550
+ onClick: function onClick(e) {
551
+ handleItemClick(e, item);
552
+ }
553
+ }, item)
554
+ );
555
+ })), React__default.createElement("div", {
556
+ className: "go",
557
+ onClick: function onClick(e) {
558
+ handleClickIcon(e);
559
+ }
560
+ }, rightIcon || (closeMode ? React__default.createElement(Icon, {
561
+ classPrefix: iconClassPrefix,
562
+ fontClassName: iconFontClassName,
563
+ name: rightIcon || 'close',
564
+ color: color,
565
+ size: "11px"
566
+ }) : null))) : null);
567
+ };
568
+ NoticeBar.defaultProps = defaultProps;
569
+ NoticeBar.displayName = 'NutNoticeBar';
12
570
  export { NoticeBar as default };