@nutui/nutui-react 1.3.0-beta.5 → 1.3.1-beta.1

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 (159) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/esm/Audio/style/index.js +4 -0
  3. package/dist/esm/Audio.js +293 -0
  4. package/dist/esm/Calendar/style/index.js +1 -2
  5. package/dist/esm/Calendar.js +80 -33
  6. package/dist/esm/CalendarItem.js +429 -231
  7. package/dist/esm/Cascader/style/index.js +2 -0
  8. package/dist/esm/Cascader.js +788 -0
  9. package/dist/esm/ConfigProvider.js +16 -0
  10. package/dist/esm/DatePicker.js +37 -6
  11. package/dist/esm/Dialog.js +9 -16
  12. package/dist/esm/Elevator.js +16 -5
  13. package/dist/esm/Grid/style/index.js +2 -0
  14. package/dist/esm/Grid.js +91 -0
  15. package/dist/esm/GridItem/style/index.js +2 -0
  16. package/dist/esm/GridItem.js +99 -0
  17. package/dist/esm/ImagePreview/style/index.js +2 -0
  18. package/dist/esm/ImagePreview.js +257 -0
  19. package/dist/esm/Menu/style/index.js +3 -0
  20. package/dist/esm/Menu.js +153 -0
  21. package/dist/esm/MenuItem/style/index.js +3 -0
  22. package/dist/esm/MenuItem.js +197 -0
  23. package/dist/esm/NoticeBar.js +3 -2
  24. package/dist/esm/Notify.js +2 -1
  25. package/dist/esm/Popover.js +4 -11
  26. package/dist/esm/Range.js +2 -45
  27. package/dist/esm/Swipe/style/index.js +2 -0
  28. package/dist/esm/Swipe.js +265 -0
  29. package/dist/esm/Swiper.js +2 -1
  30. package/dist/esm/TabPane.js +5 -33
  31. package/dist/esm/Tabs.js +6 -196
  32. package/dist/esm/TextArea.js +45 -4
  33. package/dist/esm/Toast.js +2 -1
  34. package/dist/esm/nutui-react.es.js +8 -0
  35. package/dist/esm/render-4a3856cb.js +32 -0
  36. package/dist/esm/tabpane-c957ab14.js +33 -0
  37. package/dist/esm/tabs-a48583e9.js +196 -0
  38. package/dist/esm/useClientRect-839d18c5.js +44 -0
  39. package/dist/locales/base.d.ts +16 -0
  40. package/dist/locales/base.js +1 -1
  41. package/dist/locales/en-US.js +17 -1
  42. package/dist/locales/id-ID.js +17 -1
  43. package/dist/locales/zh-CN.js +17 -1
  44. package/dist/locales/zh-TW.js +17 -1
  45. package/dist/nutui.react.es.js +2338 -530
  46. package/dist/nutui.react.umd.js +2345 -529
  47. package/dist/packages/audio/audio.scss +80 -0
  48. package/dist/packages/calendar/calendar.scss +57 -36
  49. package/dist/packages/calendaritem/calendaritem.scss +0 -191
  50. package/dist/packages/cascader/cascader.scss +69 -0
  51. package/dist/packages/grid/grid.scss +10 -0
  52. package/dist/packages/griditem/griditem.scss +103 -0
  53. package/dist/packages/imagepreview/imagepreview.scss +51 -0
  54. package/dist/packages/menu/menu.scss +72 -0
  55. package/dist/packages/menuitem/menuitem.scss +90 -0
  56. package/dist/packages/popup/popup.scss +1 -1
  57. package/dist/packages/searchbar/searchbar.scss +1 -0
  58. package/dist/packages/shortpassword/shortpassword.scss +6 -1
  59. package/dist/packages/swipe/swipe.scss +33 -0
  60. package/dist/packages/textarea/textarea.scss +16 -1
  61. package/dist/style.css +1 -1
  62. package/dist/style.es.js +1 -1
  63. package/dist/styles/font/iconfont.js +20 -18
  64. package/dist/styles/themes/default.scss +8 -0
  65. package/dist/styles/variables.scss +59 -8
  66. package/dist/types/audio/__test__/audio.spec.d.ts +1 -0
  67. package/dist/types/audio/audio.d.ts +18 -0
  68. package/dist/types/audio/audio.taro.d.ts +18 -0
  69. package/dist/types/audio/demo.d.ts +4 -0
  70. package/dist/types/audio/index.d.ts +2 -0
  71. package/dist/types/audio/index.taro.d.ts +2 -0
  72. package/dist/types/backtop/__test__/backtop.spec.d.ts +1 -0
  73. package/dist/types/calendar/__tests__/calendar.spec.d.ts +1 -0
  74. package/dist/types/calendar/calendar.d.ts +22 -2
  75. package/dist/types/calendar/demo.d.ts +1 -0
  76. package/dist/types/calendaritem/calendaritem.d.ts +21 -3
  77. package/dist/types/cascader/__tests__/cascader.spec.d.ts +1 -0
  78. package/dist/types/cascader/cascader.d.ts +25 -0
  79. package/dist/types/cascader/cascader.taro.d.ts +25 -0
  80. package/dist/types/cascader/cascaderItem.d.ts +25 -0
  81. package/dist/types/cascader/cascaderItem.taro.d.ts +25 -0
  82. package/dist/types/cascader/demo.d.ts +3 -0
  83. package/dist/types/cascader/helper.d.ts +4 -0
  84. package/dist/types/cascader/index.d.ts +2 -0
  85. package/dist/types/cascader/index.taro.d.ts +2 -0
  86. package/dist/types/cascader/tree.d.ts +12 -0
  87. package/dist/types/cascader/types.d.ts +28 -0
  88. package/dist/types/checkbox/checkbox.d.ts +2 -2
  89. package/dist/types/checkbox/checkbox.taro.d.ts +2 -2
  90. package/dist/types/checkboxgroup/checkboxgroup.d.ts +2 -2
  91. package/dist/types/checkboxgroup/checkboxgroup.taro.d.ts +2 -2
  92. package/dist/types/dialog/__test__/dialog.spec.d.ts +1 -0
  93. package/dist/types/dialog/config.d.ts +3 -3
  94. package/dist/types/dialog/dialog.d.ts +2 -1
  95. package/dist/types/dialog/dialog.taro.d.ts +2 -1
  96. package/dist/types/fixednav/fixednav.d.ts +2 -2
  97. package/dist/types/grid/__test__/grid.spec.d.ts +1 -0
  98. package/dist/types/grid/demo.d.ts +3 -0
  99. package/dist/types/grid/grid.d.ts +16 -0
  100. package/dist/types/grid/grid.taro.d.ts +16 -0
  101. package/dist/types/grid/index.d.ts +2 -0
  102. package/dist/types/grid/index.taro.d.ts +2 -0
  103. package/dist/types/griditem/griditem.d.ts +20 -0
  104. package/dist/types/griditem/griditem.taro.d.ts +20 -0
  105. package/dist/types/griditem/index.d.ts +2 -0
  106. package/dist/types/griditem/index.taro.d.ts +2 -0
  107. package/dist/types/icon/icon.d.ts +1 -2
  108. package/dist/types/icon/icon.taro.d.ts +1 -2
  109. package/dist/types/imagepreview/__test__/imagepreview.spec.d.ts +1 -0
  110. package/dist/types/imagepreview/demo.d.ts +3 -0
  111. package/dist/types/imagepreview/imagepreview.d.ts +26 -0
  112. package/dist/types/imagepreview/imagepreview.taro.d.ts +26 -0
  113. package/dist/types/imagepreview/index.d.ts +2 -0
  114. package/dist/types/imagepreview/index.taro.d.ts +2 -0
  115. package/dist/types/input/__test__/input.spec.d.ts +1 -0
  116. package/dist/types/menu/__test__/menu.spec.d.ts +1 -0
  117. package/dist/types/menu/demo.d.ts +4 -0
  118. package/dist/types/menu/index.d.ts +2 -0
  119. package/dist/types/menu/index.taro.d.ts +2 -0
  120. package/dist/types/menu/menu.d.ts +12 -0
  121. package/dist/types/menu/menu.taro.d.ts +12 -0
  122. package/dist/types/menuitem/index.d.ts +2 -0
  123. package/dist/types/menuitem/index.taro.d.ts +2 -0
  124. package/dist/types/menuitem/menuitem.d.ts +23 -0
  125. package/dist/types/menuitem/menuitem.taro.d.ts +23 -0
  126. package/dist/types/notify/__test__/notify.spec.d.ts +1 -0
  127. package/dist/types/notify/notify.d.ts +13 -0
  128. package/dist/types/notify/notify.taro.d.ts +13 -0
  129. package/dist/types/nutui.react.d.ts +95 -1
  130. package/dist/types/picker/doc.en.d.ts +142 -0
  131. package/dist/types/picker/picker.d.ts +2 -2
  132. package/dist/types/picker/picker.taro.d.ts +2 -2
  133. package/dist/types/popup/popup.d.ts +1 -1
  134. package/dist/types/popup/popup.taro.d.ts +1 -1
  135. package/dist/types/shortpassword/shortpassword.taro.d.ts +3 -3
  136. package/dist/types/sidenavbar/sidenavbar.d.ts +14 -2
  137. package/dist/types/sidenavbar/sidenavbar.taro.d.ts +14 -2
  138. package/dist/types/sidenavbaritem/sidenavbaritem.d.ts +10 -2
  139. package/dist/types/sidenavbaritem/sidenavbaritem.taro.d.ts +10 -2
  140. package/dist/types/subsidenavbar/subsidenavbar.d.ts +13 -3
  141. package/dist/types/subsidenavbar/subsidenavbar.taro.d.ts +13 -3
  142. package/dist/types/swipe/__tests__/swipe.spec.d.ts +1 -0
  143. package/dist/types/swipe/demo.d.ts +3 -0
  144. package/dist/types/swipe/index.d.ts +2 -0
  145. package/dist/types/swipe/index.taro.d.ts +2 -0
  146. package/dist/types/swipe/swipe.d.ts +41 -0
  147. package/dist/types/swipe/swipe.taro.d.ts +41 -0
  148. package/dist/types/swiper/swiper.d.ts +1 -2
  149. package/dist/types/swiperitem/swiperitem.d.ts +1 -2
  150. package/dist/types/table/table.d.ts +2 -1
  151. package/dist/types/table/table.taro.d.ts +2 -1
  152. package/dist/types/table/types.d.ts +1 -1
  153. package/dist/types/textarea/__test__/textarea.spec.d.ts +1 -0
  154. package/dist/types/toast/toast.d.ts +21 -0
  155. package/dist/types/toast/toast.taro.d.ts +18 -0
  156. package/dist/types/virtuallist/type.d.ts +1 -1
  157. package/dist/types/virtuallist/virtuallist.d.ts +2 -1
  158. package/dist/types/virtuallist/virtuallist.taro.d.ts +2 -1
  159. package/package.json +4 -4
package/CHANGELOG.md CHANGED
@@ -1,3 +1,31 @@
1
+ ## v1.3.0
2
+ `2022-08-24`
3
+
4
+ * :sparkles: chore: Taro support (#240) @xiaoyatong
5
+ * :sparkles: chore: support react18 (#224) @oasis-cloud
6
+ * :sparkles: chore: noticebar (#233) @vickyYe
7
+ * :sparkles: feat: add SideNavBar (#198) @mangov587
8
+ * :sparkles: feat: add Table (#185) @yangjinjun3
9
+ * :sparkles: feat: popover 功能补齐与单元测试 (#219) @yangxiaolu1993
10
+ * :sparkles: feat: notify 增加props+国际化文档 (#221) @vickyYe
11
+ * :sparkles: feat: icon 组件增加自定义字体新方案,增加 fontClassName 属性 (#232) @oasis-cloud
12
+ * :sparkles: feat: toast 组件props补齐+国际化,input组件issue问题修改 (#214) @vickyYe
13
+ * :sparkles: feat: shortpassword 优化demo,增加单元测试,增加国际化 (#222) @Drjingfubo
14
+ * :sparkles: feat: fixednav 单元测试 (#217) @Ymm0008
15
+ * :sparkles: feat: timeselect (#216) @shadow-Fiend
16
+ * :sparkles: feat: layout props补齐,单元测试 (#208) @Ymm0008
17
+ * :sparkles: feat: Address 组件功能补齐-添加默认选中项;单元测试添加 (#207) @yangxiaolu1993
18
+ * :sparkles: feat: popup 增加指定节点挂载与多层堆叠功能 (#197) @love_forever
19
+ * :sparkles: feat: Swiper 组件能力补齐,新增demo,添加国际化文档 (#196) @lkjh3214
20
+ * :bug: fix: checkbox 组件的全选 demo 无法高亮全选按钮 (#239) @oasis-cloud
21
+ * :bug: fix: 解决Picker滚动结束延迟触发事件问题 (#218) @yangxiaolu1993
22
+ * :bug: fix: radio 组件 demo 中自定义尺寸文案错误 (#231) @oasis-cloud
23
+ * :bug: fix: radio 组件 demo 中自定义图标展示错误 (#230) @oasis-cloud
24
+ * :bug: fix: checkbox 全选 demo 中的错误 (#229) @oasis-cloud
25
+ * :bug: fix: vite 构建 umd 文件时 banner 插入错误 @oasis-cloud
26
+ * :bug: fix: 修复Infiniteloading 组件 pullTxt、loadTxt 和 loadMoreTxt 参数无效 (#227) @junjun666
27
+ * :bug: fix: radio 组件选中后可以取消的问题 (#211) @oasis-cloud
28
+
1
29
  ## v1.2.2
2
30
  `2022-08-10`
3
31
 
@@ -0,0 +1,4 @@
1
+ require('../../Icon/style')
2
+ require('../../Button/style')
3
+ require('../../Range/style')
4
+ require('../../../packages/audio/audio.scss')
@@ -0,0 +1,293 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
+ var _excluded = ["className", "url", "style", "muted", "autoplay", "loop", "preload", "type", "onFastBack", "onForward", "onPause", "onPlayEnd", "onMute", "onCanPlay", "children"];
5
+
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
+
8
+ 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; }
9
+
10
+ import React__default, { useState, useRef, useEffect } from 'react';
11
+ import Icon from './Icon.js';
12
+ import Range from './Range.js';
13
+ import { c as cn } from './bem-893ad28d.js';
14
+ import Button from './Button.js';
15
+ import { useConfig } from './ConfigProvider.js';
16
+ import '@bem-react/classname';
17
+ var defaultProps = {
18
+ className: '',
19
+ url: '',
20
+ style: {},
21
+ muted: false,
22
+ autoplay: false,
23
+ loop: false,
24
+ preload: 'auto',
25
+ type: 'progress',
26
+ onFastBack: function onFastBack(e) {},
27
+ onForward: function onForward(e) {},
28
+ onPause: function onPause(e) {},
29
+ onPlayEnd: function onPlayEnd(e) {},
30
+ onMute: function onMute(e) {},
31
+ onCanPlay: function onCanPlay(e) {}
32
+ };
33
+
34
+ var Audio = function Audio(props) {
35
+ var _useConfig = useConfig(),
36
+ locale = _useConfig.locale;
37
+
38
+ var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),
39
+ className = _defaultProps$props.className,
40
+ url = _defaultProps$props.url,
41
+ style = _defaultProps$props.style,
42
+ muted = _defaultProps$props.muted,
43
+ autoplay = _defaultProps$props.autoplay,
44
+ loop = _defaultProps$props.loop,
45
+ preload = _defaultProps$props.preload,
46
+ type = _defaultProps$props.type,
47
+ onFastBack = _defaultProps$props.onFastBack,
48
+ onForward = _defaultProps$props.onForward,
49
+ onPause = _defaultProps$props.onPause,
50
+ onPlayEnd = _defaultProps$props.onPlayEnd,
51
+ onMute = _defaultProps$props.onMute,
52
+ onCanPlay = _defaultProps$props.onCanPlay,
53
+ children = _defaultProps$props.children,
54
+ rest = _objectWithoutProperties(_defaultProps$props, _excluded);
55
+
56
+ var _useState = useState(false),
57
+ _useState2 = _slicedToArray(_useState, 2),
58
+ playing = _useState2[0],
59
+ setPlaying = _useState2[1];
60
+
61
+ var _useState3 = useState(0),
62
+ _useState4 = _slicedToArray(_useState3, 2),
63
+ percent = _useState4[0],
64
+ setPercent = _useState4[1];
65
+
66
+ var _useState5 = useState(false),
67
+ _useState6 = _slicedToArray(_useState5, 2),
68
+ isCanPlay = _useState6[0],
69
+ setIsCanPlay = _useState6[1];
70
+
71
+ var _useState7 = useState('00:00:00'),
72
+ _useState8 = _slicedToArray(_useState7, 2),
73
+ currentDuration = _useState8[0],
74
+ setCurrentDuration = _useState8[1];
75
+
76
+ var AudioRef = useRef(null);
77
+ var statusRef = useRef({
78
+ currentTime: 0,
79
+ currentDuration: '00:00:00',
80
+ percent: 0,
81
+ duration: '00:00:00',
82
+ second: 0,
83
+ hanMuted: props.muted,
84
+ playing: props.autoplay,
85
+ handPlaying: false
86
+ });
87
+ var b = cn('audio');
88
+ var warn = console.warn;
89
+
90
+ var handleEnded = function handleEnded(e) {
91
+ if (props.loop) {
92
+ warn(locale.audio.tips || 'onPlayEnd事件在loop=false时才会触发');
93
+ } else {
94
+ props.onPlayEnd && props.onPlayEnd(e);
95
+ }
96
+ };
97
+
98
+ function watch() {
99
+ if (AudioRef && AudioRef.current) {
100
+ var current = AudioRef.current;
101
+ current.addEventListener('play', function () {
102
+ setPlaying(true);
103
+ });
104
+ }
105
+ }
106
+
107
+ useEffect(function () {
108
+ watch();
109
+ }, []);
110
+ useEffect(function () {}, [currentDuration]);
111
+
112
+ var handleStatusChange = function handleStatusChange() {
113
+ setPlaying(!playing);
114
+
115
+ if (playing) {
116
+ AudioRef && AudioRef.current && AudioRef.current.pause();
117
+ } else {
118
+ AudioRef && AudioRef.current && AudioRef.current.play();
119
+ }
120
+ };
121
+
122
+ var renderIcon = function renderIcon() {
123
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement("div", {
124
+ className: b('icon')
125
+ }, React__default.createElement("div", {
126
+ className: "".concat(b('icon-box'), " ").concat(playing ? b('icon-play') : b('icon-stop')),
127
+ onClick: handleStatusChange
128
+ }, playing ? React__default.createElement(Icon, {
129
+ name: "service",
130
+ className: "nut-icon-loading"
131
+ }) : React__default.createElement(Icon, {
132
+ name: "service"
133
+ }))));
134
+ };
135
+
136
+ var handleBack = function handleBack() {
137
+ if (statusRef.current.currentTime > 0 && AudioRef.current) {
138
+ statusRef.current.currentTime--;
139
+ AudioRef.current.currentTime = statusRef.current.currentTime;
140
+ props.onFastBack && props.onFastBack(AudioRef.current);
141
+ }
142
+ };
143
+
144
+ var handleForward = function handleForward() {
145
+ if (AudioRef.current) {
146
+ statusRef.current.currentTime++;
147
+ AudioRef.current.currentTime = statusRef.current.currentTime;
148
+ props.onForward && props.onForward(AudioRef.current);
149
+ }
150
+ };
151
+
152
+ var handleMute = function handleMute() {
153
+ if (AudioRef.current) {
154
+ AudioRef.current.muted = !AudioRef.current.muted;
155
+ props.onMute && props.onMute(AudioRef.current);
156
+ }
157
+ };
158
+
159
+ var handlePause = function handlePause(e) {
160
+ setPlaying(false);
161
+ props.onPause && props.onPause(e);
162
+ };
163
+
164
+ var formatSeconds = function formatSeconds(value) {
165
+ if (!value) {
166
+ return '00:00:00';
167
+ }
168
+
169
+ var time = parseInt(value);
170
+ var hours = Math.floor(time / 3600);
171
+ var minutes = Math.floor((time - hours * 3600) / 60);
172
+ var seconds = time - hours * 3600 - minutes * 60;
173
+ var result = '';
174
+ result += "".concat("0".concat(hours.toString()).slice(-2), ":");
175
+ result += "".concat("0".concat(minutes.toString()).slice(-2), ":");
176
+ result += "0".concat(seconds.toString()).slice(-2);
177
+ return result;
178
+ };
179
+
180
+ var renderProgerss = function renderProgerss() {
181
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement("div", {
182
+ className: b('progress')
183
+ }, React__default.createElement("div", {
184
+ className: "time"
185
+ }, currentDuration), React__default.createElement("div", {
186
+ className: b('progress-bar-wrapper')
187
+ }, React__default.createElement(Range, {
188
+ modelValue: percent,
189
+ hiddenTag: true,
190
+ hiddenRange: true,
191
+ "inactive-color": "#cccccc",
192
+ "active-color": "#fa2c19"
193
+ })), React__default.createElement("div", {
194
+ className: "time"
195
+ }, AudioRef.current ? formatSeconds("".concat(statusRef.current.second)) : '00:00:00')), React__default.createElement("div", {
196
+ className: isCanPlay ? 'custom-button-group' : 'custom-button-group-disable'
197
+ }, React__default.createElement(Button, {
198
+ type: "primary",
199
+ size: "small",
200
+ className: "back",
201
+ onClick: handleBack
202
+ }, locale.audio.back || '快退'), React__default.createElement(Button, {
203
+ type: "primary",
204
+ size: "small",
205
+ className: "start",
206
+ onClick: handleStatusChange
207
+ }, playing ? "".concat(locale.audio.pause || '暂停') : "".concat(locale.audio.start || '开始')), React__default.createElement(Button, {
208
+ type: "primary",
209
+ size: "small",
210
+ onClick: handleForward
211
+ }, locale.audio.forward || '快进'), React__default.createElement(Button, {
212
+ type: AudioRef.current && AudioRef.current.muted ? 'default' : 'primary',
213
+ size: "small",
214
+ onClick: handleMute
215
+ }, locale.audio.mute || '静音')));
216
+ };
217
+
218
+ var renderNone = function renderNone() {
219
+ return React__default.createElement("div", {
220
+ className: b('none-container'),
221
+ onClick: handleStatusChange
222
+ }, children);
223
+ };
224
+
225
+ var renderAudio = function renderAudio() {
226
+ switch (type) {
227
+ case 'icon':
228
+ return renderIcon();
229
+
230
+ case 'progress':
231
+ return renderProgerss();
232
+
233
+ case 'none':
234
+ return renderNone();
235
+
236
+ default:
237
+ return null;
238
+ }
239
+ };
240
+
241
+ var handleCanplay = function handleCanplay(e) {
242
+ setIsCanPlay(true);
243
+
244
+ if (props.autoplay && !playing) {
245
+ AudioRef && AudioRef.current && AudioRef.current.play();
246
+ }
247
+
248
+ if (AudioRef.current) {
249
+ statusRef.current.second = AudioRef.current.duration || 0;
250
+ props.onCanPlay && props.onCanPlay(e);
251
+ }
252
+ };
253
+
254
+ var onTimeupdate = function onTimeupdate(e) {
255
+ var time = parseInt(e.target.currentTime);
256
+ var formated = formatSeconds("".concat(time));
257
+ statusRef.current.currentDuration = formated;
258
+ setPercent(time / statusRef.current.second * 100);
259
+ setCurrentDuration(formated);
260
+ statusRef.current.currentTime = time;
261
+ };
262
+
263
+ return React__default.createElement("div", _objectSpread({
264
+ className: "".concat(b(), " ").concat(className),
265
+ style: style
266
+ }, rest), renderAudio(), React__default.createElement("audio", {
267
+ className: "audioMain",
268
+ controls: type === 'controls',
269
+ ref: AudioRef,
270
+ src: url,
271
+ muted: muted,
272
+ preload: preload,
273
+ loop: loop,
274
+ onPause: function onPause(e) {
275
+ return handlePause(e);
276
+ },
277
+ onEnded: function onEnded(e) {
278
+ return handleEnded(e);
279
+ },
280
+ onCanPlay: function onCanPlay(e) {
281
+ return handleCanplay(e);
282
+ },
283
+ onTimeUpdate: function onTimeUpdate(e) {
284
+ return onTimeupdate(e);
285
+ }
286
+ }, React__default.createElement("track", {
287
+ kind: "captions"
288
+ })));
289
+ };
290
+
291
+ Audio.defaultProps = defaultProps;
292
+ Audio.displayName = 'NutAudio';
293
+ export { Audio as default };
@@ -1,3 +1,2 @@
1
- require('../../Popup/style')
2
- require('../../CalendarItem/style')
1
+ require('../../Popup/style')
3
2
  require('../../../packages/calendar/calendar.scss')
@@ -4,7 +4,7 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
4
4
 
5
5
  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; }
6
6
 
7
- import React__default from 'react';
7
+ import React__default, { useRef } from 'react';
8
8
  import Popup from './Popup.js';
9
9
  import CalendarItem from './CalendarItem.js';
10
10
  import { U as Utils } from './date-710f8c7c.js';
@@ -18,16 +18,26 @@ var defaultProps = {
18
18
  defaultValue: '',
19
19
  startDate: Utils.getDay(0),
20
20
  endDate: Utils.getDay(365),
21
+ showToday: true,
22
+ startText: '开始',
23
+ endText: '结束',
24
+ confirmText: '确认',
25
+ showTitle: true,
26
+ showSubTitle: true,
27
+ toDateAnimation: true,
28
+ onBtn: undefined,
29
+ onDay: undefined,
30
+ onTopInfo: undefined,
31
+ onBottomInfo: undefined,
21
32
  onClose: function onClose() {},
22
- onChoose: function onChoose(param) {}
33
+ onChoose: function onChoose(param) {},
34
+ onSelected: function onSelected(data) {}
23
35
  };
24
-
25
- var Calendar = function Calendar(props) {
36
+ var Calendar = React__default.forwardRef(function (props, ref) {
26
37
  var _useConfig = useConfig(),
27
38
  locale = _useConfig.locale;
28
39
 
29
40
  var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),
30
- children = _defaultProps$props.children,
31
41
  poppable = _defaultProps$props.poppable,
32
42
  visible = _defaultProps$props.visible,
33
43
  type = _defaultProps$props.type,
@@ -36,15 +46,27 @@ var Calendar = function Calendar(props) {
36
46
  defaultValue = _defaultProps$props.defaultValue,
37
47
  startDate = _defaultProps$props.startDate,
38
48
  endDate = _defaultProps$props.endDate,
49
+ showToday = _defaultProps$props.showToday,
50
+ startText = _defaultProps$props.startText,
51
+ endText = _defaultProps$props.endText,
52
+ confirmText = _defaultProps$props.confirmText,
53
+ showTitle = _defaultProps$props.showTitle,
54
+ showSubTitle = _defaultProps$props.showSubTitle,
55
+ toDateAnimation = _defaultProps$props.toDateAnimation,
56
+ onBtn = _defaultProps$props.onBtn,
57
+ onDay = _defaultProps$props.onDay,
58
+ onTopInfo = _defaultProps$props.onTopInfo,
59
+ onBottomInfo = _defaultProps$props.onBottomInfo,
39
60
  onClose = _defaultProps$props.onClose,
40
- onChoose = _defaultProps$props.onChoose;
61
+ onChoose = _defaultProps$props.onChoose,
62
+ onSelected = _defaultProps$props.onSelected;
63
+
64
+ var calendarRef = useRef(null);
41
65
 
42
66
  var close = function close() {
43
67
  onClose && onClose();
44
68
  };
45
69
 
46
- var update = function update() {};
47
-
48
70
  var choose = function choose(param) {
49
71
  close();
50
72
  onChoose && onChoose(param);
@@ -54,37 +76,62 @@ var Calendar = function Calendar(props) {
54
76
  close();
55
77
  };
56
78
 
79
+ var select = function select(param) {
80
+ onSelected && onSelected(param);
81
+ };
82
+
83
+ var scrollToDate = function scrollToDate(date) {
84
+ var _calendarRef$current;
85
+
86
+ (_calendarRef$current = calendarRef.current) === null || _calendarRef$current === void 0 ? void 0 : _calendarRef$current.scrollToDate(date);
87
+ };
88
+
89
+ React__default.useImperativeHandle(ref, function () {
90
+ return {
91
+ scrollToDate: scrollToDate
92
+ };
93
+ });
94
+
95
+ var renderItem = function renderItem() {
96
+ return React__default.createElement(CalendarItem, {
97
+ ref: calendarRef,
98
+ type: type,
99
+ isAutoBackFill: isAutoBackFill,
100
+ poppable: poppable,
101
+ title: locale.calendaritem.title || title,
102
+ defaultValue: defaultValue,
103
+ startDate: startDate,
104
+ endDate: endDate,
105
+ showToday: showToday,
106
+ startText: startText,
107
+ endText: endText,
108
+ confirmText: confirmText,
109
+ showTitle: showTitle,
110
+ showSubTitle: showSubTitle,
111
+ toDateAnimation: toDateAnimation,
112
+ onBtn: onBtn,
113
+ onDay: onDay,
114
+ onTopInfo: onTopInfo,
115
+ onBottomInfo: onBottomInfo,
116
+ onChoose: choose,
117
+ onSelected: select
118
+ });
119
+ };
120
+
57
121
  return React__default.createElement(React__default.Fragment, null, poppable ? React__default.createElement(Popup, {
58
122
  visible: visible,
59
123
  position: "bottom",
60
124
  round: true,
125
+ duration: 0.5,
61
126
  closeable: true,
127
+ destroyOnClose: true,
62
128
  onClickOverlay: closePopup,
63
- onClickCloseIcon: closePopup
64
- }, React__default.createElement(CalendarItem, {
65
- type: type,
66
- isAutoBackFill: isAutoBackFill,
67
- poppable: poppable,
68
- title: locale.calendaritem.title || title,
69
- defaultValue: defaultValue,
70
- startDate: startDate,
71
- endDate: endDate,
72
- onUpdate: update,
73
- onClose: close,
74
- onChoose: choose
75
- })) : React__default.createElement(CalendarItem, {
76
- type: type,
77
- isAutoBackFill: isAutoBackFill,
78
- poppable: poppable,
79
- title: locale.calendaritem.title,
80
- defaultValue: defaultValue,
81
- startDate: startDate,
82
- endDate: endDate,
83
- onClose: close,
84
- onChoose: choose
85
- }));
86
- };
87
-
129
+ onClickCloseIcon: closePopup,
130
+ style: {
131
+ height: '85vh'
132
+ }
133
+ }, renderItem()) : renderItem());
134
+ });
88
135
  Calendar.defaultProps = defaultProps;
89
136
  Calendar.displayName = 'NutCalendar';
90
137
  export { Calendar as default };