@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,26 +1,310 @@
1
- import { D as DatePicker } from './datepicker.taro-6e9b4b8f.js';
2
- import 'react';
3
- import './picker.taro-9ad1b7c5.js';
4
- import '@tarojs/taro';
5
- import '@tarojs/components';
6
- import './popup.taro-01676bff.js';
7
- import 'react-dom';
8
- import 'react-transition-group';
9
- import 'classnames';
10
- import './overlay.taro-21e87fb1.js';
11
- import './bem-350c1702.js';
12
- import '@bem-react/classname';
13
- import './icon.taro-296a1bec.js';
14
- import './typings-b9828dba.js';
15
- import './useTouch-db24bb5c.js';
16
- import './useClientRect-1f8ed1fe.js';
17
- import './supports-passive-c85ef996.js';
18
- import './can-use-dom-3eeb5af4.js';
19
- import './configprovider.taro-8d71eb49.js';
20
- import 'lodash.kebabcase';
21
- import './zh-CN-c779e6c1.js';
22
- import './configprovider-67d19d3a.js';
23
-
24
-
25
-
1
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
5
+ var _excluded = ["minDate", "maxDate", "type", "isShowChinese", "minuteStep", "modelValue", "visible", "title", "formatter", "onCloseDatePicker", "onConfirmDatePicker", "filter", "onChange", "threeDimensional", "className", "style"];
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
+ import React__default, { useState, useRef, useEffect } from 'react';
9
+ import Picker from './Picker.js';
10
+ import { useConfig } from './ConfigProvider.js';
11
+ var currentYear = new Date().getFullYear();
12
+ var defaultProps = {
13
+ modelValue: null,
14
+ visible: false,
15
+ title: '',
16
+ type: 'date',
17
+ isShowChinese: false,
18
+ threeDimensional: true,
19
+ minuteStep: 1,
20
+ minDate: new Date(currentYear - 10, 0, 1),
21
+ maxDate: new Date(currentYear + 10, 11, 31)
22
+ };
23
+ var DatePicker = function DatePicker(props) {
24
+ var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),
25
+ minDate = _defaultProps$props.minDate,
26
+ maxDate = _defaultProps$props.maxDate,
27
+ type = _defaultProps$props.type,
28
+ isShowChinese = _defaultProps$props.isShowChinese,
29
+ minuteStep = _defaultProps$props.minuteStep,
30
+ modelValue = _defaultProps$props.modelValue,
31
+ visible = _defaultProps$props.visible,
32
+ title = _defaultProps$props.title,
33
+ formatter = _defaultProps$props.formatter,
34
+ onCloseDatePicker = _defaultProps$props.onCloseDatePicker,
35
+ onConfirmDatePicker = _defaultProps$props.onConfirmDatePicker,
36
+ filter = _defaultProps$props.filter,
37
+ onChange = _defaultProps$props.onChange,
38
+ threeDimensional = _defaultProps$props.threeDimensional,
39
+ className = _defaultProps$props.className,
40
+ style = _defaultProps$props.style,
41
+ rest = _objectWithoutProperties(_defaultProps$props, _excluded);
42
+ var _useConfig = useConfig(),
43
+ locale = _useConfig.locale;
44
+ var _useState = useState(false),
45
+ _useState2 = _slicedToArray(_useState, 2),
46
+ show = _useState2[0],
47
+ setShow = _useState2[1];
48
+ var _useState3 = useState(modelValue),
49
+ _useState4 = _slicedToArray(_useState3, 2),
50
+ currentDate = _useState4[0],
51
+ setCurrentDate = _useState4[1];
52
+ var _useState5 = useState([]),
53
+ _useState6 = _slicedToArray(_useState5, 2),
54
+ defaultValue = _useState6[0],
55
+ setDefaultValue = _useState6[1];
56
+ var _useState7 = useState([]),
57
+ _useState8 = _slicedToArray(_useState7, 2),
58
+ listData = _useState8[0],
59
+ setListData = _useState8[1];
60
+ var pickerRef = useRef(null);
61
+ var isDate = function isDate(val) {
62
+ return Object.prototype.toString.call(val) === '[object Date]' && !Number.isNaN(val.getTime());
63
+ };
64
+ var datepickerLang = locale.datepicker;
65
+ var zhCNType = {
66
+ day: datepickerLang.day,
67
+ year: datepickerLang.year,
68
+ month: datepickerLang.month,
69
+ hour: datepickerLang.hour,
70
+ minute: datepickerLang.min,
71
+ seconds: datepickerLang.seconds
72
+ };
73
+ var formatValue = function formatValue(value) {
74
+ var cvalue = value;
75
+ if (!cvalue || cvalue && !isDate(cvalue)) {
76
+ cvalue = minDate;
77
+ }
78
+ var timestmp = Math.max(cvalue.getTime(), minDate.getTime());
79
+ timestmp = Math.min(timestmp, maxDate.getTime());
80
+ return new Date(timestmp);
81
+ };
82
+ function getMonthEndDay(year, month) {
83
+ return new Date(year, month, 0).getDate();
84
+ }
85
+ var getBoundary = function getBoundary(type, value) {
86
+ var _ref;
87
+ var boundary = type === 'min' ? minDate : maxDate;
88
+ var year = boundary.getFullYear();
89
+ var month = 1;
90
+ var date = 1;
91
+ var hour = 0;
92
+ var minute = 0;
93
+ if (type === 'max') {
94
+ month = 12;
95
+ date = getMonthEndDay(value.getFullYear(), value.getMonth() + 1);
96
+ hour = 23;
97
+ minute = 59;
98
+ }
99
+ var seconds = minute;
100
+ if (value.getFullYear() === year) {
101
+ month = boundary.getMonth() + 1;
102
+ if (value.getMonth() + 1 === month) {
103
+ date = boundary.getDate();
104
+ if (value.getDate() === date) {
105
+ hour = boundary.getHours();
106
+ if (value.getHours() === hour) {
107
+ minute = boundary.getMinutes();
108
+ }
109
+ }
110
+ }
111
+ }
112
+ return _ref = {}, _defineProperty(_ref, "".concat(type, "Year"), year), _defineProperty(_ref, "".concat(type, "Month"), month), _defineProperty(_ref, "".concat(type, "Date"), date), _defineProperty(_ref, "".concat(type, "Hour"), hour), _defineProperty(_ref, "".concat(type, "Minute"), minute), _defineProperty(_ref, "".concat(type, "Seconds"), seconds), _ref;
113
+ };
114
+ var ranges = function ranges(date) {
115
+ var curDate = date || currentDate;
116
+ if (!curDate) return [];
117
+ var _getBoundary = getBoundary('max', curDate),
118
+ maxYear = _getBoundary.maxYear,
119
+ maxDate = _getBoundary.maxDate,
120
+ maxMonth = _getBoundary.maxMonth,
121
+ maxHour = _getBoundary.maxHour,
122
+ maxMinute = _getBoundary.maxMinute,
123
+ maxSeconds = _getBoundary.maxSeconds;
124
+ var _getBoundary2 = getBoundary('min', curDate),
125
+ minYear = _getBoundary2.minYear,
126
+ minDate = _getBoundary2.minDate,
127
+ minMonth = _getBoundary2.minMonth,
128
+ minHour = _getBoundary2.minHour,
129
+ minMinute = _getBoundary2.minMinute,
130
+ minSeconds = _getBoundary2.minSeconds;
131
+ var result = [{
132
+ type: 'year',
133
+ range: [minYear, maxYear]
134
+ }, {
135
+ type: 'month',
136
+ range: [minMonth, maxMonth]
137
+ }, {
138
+ type: 'day',
139
+ range: [minDate, maxDate]
140
+ }, {
141
+ type: 'hour',
142
+ range: [minHour, maxHour]
143
+ }, {
144
+ type: 'minute',
145
+ range: [minMinute, maxMinute]
146
+ }, {
147
+ type: 'seconds',
148
+ range: [minSeconds, maxSeconds]
149
+ }];
150
+ switch (type.toLocaleLowerCase()) {
151
+ case 'date':
152
+ result = result.slice(0, 3);
153
+ break;
154
+ case 'datetime':
155
+ result = result.slice(0, 5);
156
+ break;
157
+ case 'time':
158
+ result = result.slice(3, 6);
159
+ break;
160
+ case 'year-month':
161
+ result = result.slice(0, 2);
162
+ break;
163
+ case 'hour-minutes':
164
+ result = result.slice(3, 5);
165
+ break;
166
+ case 'month-day':
167
+ result = result.slice(1, 3);
168
+ break;
169
+ case 'datehour':
170
+ result = result.slice(0, 4);
171
+ break;
172
+ }
173
+ return result;
174
+ };
175
+ var updateChooseValueCustmer = function updateChooseValueCustmer(index, selectedValue, cacheValueData) {
176
+ if (['date', 'datetime', 'datehour', 'month-day', 'year-month'].includes(type.toLocaleLowerCase())) {
177
+ var _date;
178
+ var formatDate = [];
179
+ selectedValue.forEach(function (item) {
180
+ formatDate.push(item);
181
+ });
182
+ if (type.toLocaleLowerCase() === 'month-day' && formatDate.length < 3) {
183
+ formatDate.unshift(new Date(modelValue || minDate || maxDate).getFullYear());
184
+ }
185
+ if (type.toLocaleLowerCase() === 'year-month' && formatDate.length < 3) {
186
+ formatDate.push(new Date(modelValue || minDate || maxDate).getDate());
187
+ }
188
+ var year = Number(formatDate[0]);
189
+ var month = Number(formatDate[1]) - 1;
190
+ var day = Math.min(Number(formatDate[2]), getMonthEndDay(Number(formatDate[0]), Number(formatDate[1])));
191
+ var date = null;
192
+ if (type.toLocaleLowerCase() === 'date' || type.toLocaleLowerCase() === 'month-day' || type.toLocaleLowerCase() === 'year-month') {
193
+ date = new Date(year, month, day);
194
+ } else if (type.toLocaleLowerCase() === 'datetime') {
195
+ date = new Date(year, month, day, Number(formatDate[3]), Number(formatDate[4]));
196
+ } else if (type.toLocaleLowerCase() === 'datehour') {
197
+ date = new Date(year, month, day, Number(formatDate[3]));
198
+ }
199
+ var isEqual = (currentDate === null || currentDate === void 0 ? void 0 : currentDate.getTime()) === ((_date = date) === null || _date === void 0 ? void 0 : _date.getTime());
200
+ date && isDate(date) && !isEqual && setCurrentDate(formatValue(date));
201
+ }
202
+ props.onChange && props.onChange(index, selectedValue, cacheValueData);
203
+ };
204
+ var padZero = function padZero(num) {
205
+ var targetLength = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;
206
+ var str = "".concat(num);
207
+ while (str.length < targetLength) {
208
+ str = "0".concat(str);
209
+ }
210
+ return str;
211
+ };
212
+ var formatterOption = function formatterOption(type, value) {
213
+ var fOption = null;
214
+ if (formatter) {
215
+ fOption = formatter(type, {
216
+ text: padZero(value, 2),
217
+ value: padZero(value, 2)
218
+ });
219
+ } else {
220
+ var padMin = padZero(value, 2);
221
+ var fatter = isShowChinese ? zhCNType[type] : '';
222
+ fOption = {
223
+ text: padMin + fatter,
224
+ value: padMin
225
+ };
226
+ }
227
+ return fOption;
228
+ };
229
+ var generateValue = function generateValue(min, max, val, type, columnIndex) {
230
+ var cmin = min;
231
+ var arr = [];
232
+ var index = 0;
233
+ while (cmin <= max) {
234
+ arr.push(formatterOption(type, cmin));
235
+ if (type === 'minute') {
236
+ cmin += minuteStep;
237
+ } else {
238
+ cmin++;
239
+ }
240
+ if (cmin <= val) {
241
+ index++;
242
+ }
243
+ }
244
+ defaultValue[columnIndex] = arr[index].value;
245
+ setDefaultValue(_toConsumableArray(defaultValue));
246
+ if (props.filter && props.filter(type, arr)) {
247
+ return props.filter(type, arr);
248
+ }
249
+ return arr;
250
+ };
251
+ var getDateIndex = function getDateIndex(type) {
252
+ if (!currentDate) return 0;
253
+ var d = 0;
254
+ if (type === 'year') {
255
+ d = currentDate.getFullYear();
256
+ } else if (type === 'month') {
257
+ d = currentDate.getMonth() + 1;
258
+ } else if (type === 'day') {
259
+ d = currentDate.getDate();
260
+ } else if (type === 'hour') {
261
+ d = currentDate.getHours();
262
+ } else if (type === 'minute') {
263
+ d = currentDate.getMinutes();
264
+ } else if (type === 'seconds') {
265
+ d = currentDate.getSeconds();
266
+ }
267
+ return d;
268
+ };
269
+ var columns = function columns(date) {
270
+ var val = ranges(date).map(function (res, columnIndex) {
271
+ return generateValue(res.range[0], res.range[1], getDateIndex(res.type), res.type, columnIndex);
272
+ });
273
+ return val || [];
274
+ };
275
+ useEffect(function () {
276
+ setCurrentDate(formatValue(modelValue));
277
+ }, []);
278
+ useEffect(function () {
279
+ setCurrentDate(formatValue(modelValue));
280
+ }, [modelValue]);
281
+ useEffect(function () {
282
+ setShow(visible);
283
+ }, [visible]);
284
+ useEffect(function () {
285
+ if (currentDate) {
286
+ setListData(columns());
287
+ }
288
+ }, [currentDate]);
289
+ return React__default.createElement("div", _objectSpread({
290
+ className: "nut-datepicker ".concat(className || ''),
291
+ style: style
292
+ }, rest), listData.length > 0 && React__default.createElement(Picker, {
293
+ title: title,
294
+ isVisible: show,
295
+ listData: listData,
296
+ onClose: onCloseDatePicker,
297
+ defaultValueData: defaultValue,
298
+ onConfirm: function onConfirm(values, options) {
299
+ return onConfirmDatePicker && onConfirmDatePicker(values, options);
300
+ },
301
+ onChange: function onChange(index, value, list) {
302
+ return updateChooseValueCustmer(index, value, list);
303
+ },
304
+ threeDimensional: threeDimensional,
305
+ ref: pickerRef
306
+ }));
307
+ };
308
+ DatePicker.defaultProps = defaultProps;
309
+ DatePicker.displayName = 'NutDatePicker';
26
310
  export { DatePicker as default };
@@ -1,17 +1,296 @@
1
- import { B as BaseDialog } from './dialog.taro-a3267d29.js';
2
- import 'react';
3
- import 'classnames';
4
- import './button.taro-9244d065.js';
5
- import './icon.taro-296a1bec.js';
6
- import './bem-350c1702.js';
7
- import '@bem-react/classname';
8
- import './typings-b9828dba.js';
9
- import '@tarojs/components';
10
- import 'react-transition-group';
11
- import './configprovider.taro-8d71eb49.js';
12
- import 'lodash.kebabcase';
13
- import './zh-CN-c779e6c1.js';
14
-
15
-
16
-
17
- export { BaseDialog as default };
1
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+ var _excluded = ["visible", "footer", "noFooter", "noOkBtn", "noCancelBtn", "lockScroll", "okBtnDisabled", "cancelAutoClose", "okText", "cancelText", "onClosed", "onCancel", "onOk"];
4
+ 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; }
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
+ import * as React from 'react';
7
+ import React__default, { useEffect, forwardRef } from 'react';
8
+ import classNames from 'classnames';
9
+ import Button from './Button.js';
10
+ import { CSSTransition } from 'react-transition-group';
11
+ import { r as render, u as unmount } from './render-bbebb760.js';
12
+ import 'react-dom';
13
+ var Content = function Content(props) {
14
+ var visible = props.visible,
15
+ title = props.title,
16
+ footer = props.footer,
17
+ textAlign = props.textAlign,
18
+ footerDirection = props.footerDirection,
19
+ onClickSelf = props.onClickSelf,
20
+ children = props.children;
21
+ var headerNode;
22
+ if (title) {
23
+ headerNode = React__default.createElement("div", {
24
+ className: "nut-dialog__header"
25
+ }, title);
26
+ }
27
+ var footerNode;
28
+ if (footer) {
29
+ footerNode = React__default.createElement("div", {
30
+ className: classNames('nut-dialog__footer', _defineProperty({}, footerDirection, footerDirection))
31
+ }, footer);
32
+ }
33
+ var handleClick = function handleClick() {
34
+ onClickSelf && onClickSelf();
35
+ };
36
+ return React__default.createElement("div", {
37
+ className: "nut-dialog__outer",
38
+ onClick: handleClick
39
+ }, React__default.createElement("div", {
40
+ className: "nut-dialog",
41
+ style: {
42
+ display: visible ? 'flex' : 'none'
43
+ }
44
+ }, headerNode, React__default.createElement("div", {
45
+ className: "nut-dialog__content",
46
+ style: {
47
+ textAlign: textAlign
48
+ }
49
+ }, React__default.createElement("div", null, children)), footerNode));
50
+ };
51
+ Content.displayName = 'NutContent';
52
+ function Mask(props) {
53
+ return React.createElement("div", {
54
+ className: "nut-dialog__mask"
55
+ });
56
+ }
57
+ var DialogWrap = function DialogWrap(props) {
58
+ var className = props.className,
59
+ style = props.style,
60
+ visible = props.visible,
61
+ mask = props.mask,
62
+ closeOnClickOverlay = props.closeOnClickOverlay,
63
+ lockScroll = props.lockScroll,
64
+ onClosed = props.onClosed,
65
+ onCancel = props.onCancel;
66
+ var handleClick = function handleClick(e) {
67
+ if (closeOnClickOverlay && visible && e.target === e.currentTarget) {
68
+ onClosed === null || onClosed === void 0 ? void 0 : onClosed();
69
+ onCancel === null || onCancel === void 0 ? void 0 : onCancel();
70
+ lockScroll && document.body.classList.remove('nut-overflow-hidden');
71
+ }
72
+ };
73
+ var wrapStyle = _objectSpread(_objectSpread({}, style), {}, {
74
+ display: visible ? 'block' : 'none'
75
+ });
76
+ if (lockScroll && visible) {
77
+ document.body.classList.add('nut-overflow-hidden');
78
+ }
79
+ return React__default.createElement(React__default.Fragment, null, mask ? React__default.createElement(CSSTransition, {
80
+ "in": visible,
81
+ timeout: 300,
82
+ classNames: "fadeDialog",
83
+ unmountOnExit: true,
84
+ appear: true
85
+ }, React__default.createElement(Mask, null)) : null, React__default.createElement("div", {
86
+ className: classNames('nut-dialog__wrap', className),
87
+ onClick: handleClick,
88
+ style: wrapStyle
89
+ }, React__default.createElement(Content, _objectSpread(_objectSpread({}, props), {}, {
90
+ visible: visible
91
+ }))));
92
+ };
93
+ DialogWrap.displayName = 'NutDialogWrap';
94
+ var DialogWrapper = function DialogWrapper(props) {
95
+ var visible = props.visible,
96
+ lockScroll = props.lockScroll;
97
+ useEffect(function () {
98
+ if (lockScroll && visible) {
99
+ document.body.classList.add('nut-overflow-hidden');
100
+ } else {
101
+ document.body.classList.remove('nut-overflow-hidden');
102
+ }
103
+ }, [visible]);
104
+ useEffect(function () {
105
+ return function () {
106
+ if (document.body.classList.value.includes('nut-overflow-hidden')) {
107
+ document.body.classList.remove('nut-overflow-hidden');
108
+ }
109
+ };
110
+ }, []);
111
+ return React__default.createElement("div", {
112
+ style: {
113
+ display: visible ? 'block' : 'none'
114
+ }
115
+ }, React__default.createElement(DialogWrap, _objectSpread({}, props)));
116
+ };
117
+ DialogWrapper.displayName = 'NutDialogWrapper';
118
+ function ConfirmDialog(props) {
119
+ return React__default.createElement(Dialog, _objectSpread({}, props), props.content);
120
+ }
121
+ // 如果是消息提示型弹出框,那么只有确认按钮
122
+ var normalizeConfig = function normalizeConfig(_config) {
123
+ if (_config.isNotice) {
124
+ var icon = _config.icon;
125
+ if (!icon && icon !== null) {
126
+ switch (_config.noticeType) {
127
+ case 'alert':
128
+ icon = '';
129
+ break;
130
+ }
131
+ }
132
+ _config.noCancelBtn = true;
133
+ }
134
+ return _config;
135
+ };
136
+ function confirm(config, renderFunc) {
137
+ var div = document.createElement('div');
138
+ document.body.appendChild(div);
139
+ function render$1(props, callback) {
140
+ render(React__default.createElement(ConfirmDialog, _objectSpread(_objectSpread({}, props), {}, {
141
+ onCancel: onCancel
142
+ })), div);
143
+ callback && callback();
144
+ }
145
+ var renderFunction = renderFunc || render$1;
146
+ var dialogConfig = _objectSpread(_objectSpread({}, config), {}, {
147
+ visible: false
148
+ });
149
+ var onOk = function onOk() {
150
+ var ret;
151
+ var _onOk = config.onOk || config.onConfirm;
152
+ if (_onOk) {
153
+ ret = _onOk();
154
+ }
155
+ if (ret && ret.then) {
156
+ renderFunction(dialogConfig);
157
+ ret.then(function () {
158
+ onCancel(true);
159
+ }, function (e) {
160
+ console.error(e);
161
+ renderFunction(dialogConfig);
162
+ });
163
+ }
164
+ if (!ret) {
165
+ onCancel(true);
166
+ }
167
+ };
168
+ // 如果是promise,那么处理loading和加载完成关闭
169
+ dialogConfig.onOk = onOk;
170
+ dialogConfig = normalizeConfig(dialogConfig);
171
+ dialogConfig.visible = true;
172
+ renderFunction(dialogConfig);
173
+ function destroy() {
174
+ unmount(div);
175
+ if (div !== null && div !== void 0 && div.parentNode) {
176
+ div.parentNode.removeChild(div);
177
+ }
178
+ }
179
+ function onCancel(isOnOk) {
180
+ !isOnOk && config.onCancel && config.onCancel();
181
+ dialogConfig.visible = false;
182
+ dialogConfig.onClosed = function () {
183
+ config.onClosed && config.onClosed();
184
+ };
185
+ renderFunction(dialogConfig, function () {
186
+ destroy();
187
+ });
188
+ }
189
+ function update(newConfig) {
190
+ dialogConfig = _objectSpread(_objectSpread({}, dialogConfig), {}, {
191
+ title: config.title
192
+ }, newConfig);
193
+ dialogConfig = normalizeConfig(dialogConfig);
194
+ renderFunction(dialogConfig);
195
+ }
196
+ function close() {
197
+ dialogConfig.visible = false;
198
+ dialogConfig.onClosed = function () {
199
+ config.onClosed && config.onClosed();
200
+ destroy();
201
+ };
202
+ renderFunction(dialogConfig);
203
+ }
204
+ return {
205
+ close: close,
206
+ update: update
207
+ };
208
+ }
209
+ var defaultProps = {
210
+ okText: '确认',
211
+ cancelText: '取消',
212
+ mask: true,
213
+ closeOnClickOverlay: true,
214
+ noFooter: false,
215
+ noOkBtn: false,
216
+ noCancelBtn: false,
217
+ okBtnDisabled: false,
218
+ cancelAutoClose: true,
219
+ textAlign: 'center',
220
+ footerDirection: 'horizontal',
221
+ lockScroll: false
222
+ };
223
+ var BaseDialog = function BaseDialog(props, ref) {
224
+ var visible = props.visible,
225
+ footer = props.footer,
226
+ noFooter = props.noFooter,
227
+ noOkBtn = props.noOkBtn,
228
+ noCancelBtn = props.noCancelBtn,
229
+ lockScroll = props.lockScroll,
230
+ okBtnDisabled = props.okBtnDisabled,
231
+ cancelAutoClose = props.cancelAutoClose,
232
+ okText = props.okText,
233
+ cancelText = props.cancelText,
234
+ onClosed = props.onClosed,
235
+ onCancel = props.onCancel,
236
+ onOk = props.onOk,
237
+ restProps = _objectWithoutProperties(props, _excluded);
238
+ var renderFooter = function renderFooter() {
239
+ if (footer === null || noFooter) return '';
240
+ var handleCancel = function handleCancel(e) {
241
+ e.stopPropagation();
242
+ if (!cancelAutoClose) return;
243
+ onClosed === null || onClosed === void 0 ? void 0 : onClosed();
244
+ onCancel === null || onCancel === void 0 ? void 0 : onCancel();
245
+ if (lockScroll && visible) {
246
+ document.body.classList.remove('nut-overflow-hidden');
247
+ }
248
+ };
249
+ var handleOk = function handleOk(e) {
250
+ e.stopPropagation();
251
+ onClosed === null || onClosed === void 0 ? void 0 : onClosed();
252
+ onOk === null || onOk === void 0 ? void 0 : onOk(e);
253
+ if (lockScroll && visible) {
254
+ document.body.classList.remove('nut-overflow-hidden');
255
+ }
256
+ };
257
+ var footerContent = footer || React__default.createElement(React__default.Fragment, null, !noCancelBtn && React__default.createElement(Button, {
258
+ size: "small",
259
+ plain: true,
260
+ type: "primary",
261
+ className: "nut-dialog__footer-cancel",
262
+ onClick: handleCancel
263
+ }, cancelText), !noOkBtn && React__default.createElement(Button, {
264
+ size: "small",
265
+ type: "primary",
266
+ className: classNames('nut-dialog__footer-ok', {
267
+ disabled: okBtnDisabled
268
+ }),
269
+ disabled: okBtnDisabled,
270
+ onClick: handleOk
271
+ }, okText));
272
+ return footerContent;
273
+ };
274
+ return React__default.createElement(DialogWrapper, _objectSpread(_objectSpread({}, restProps), {}, {
275
+ visible: visible,
276
+ lockScroll: lockScroll,
277
+ footer: renderFooter(),
278
+ onClosed: onClosed,
279
+ onCancel: onCancel
280
+ }));
281
+ };
282
+ var Dialog = forwardRef(BaseDialog);
283
+ Dialog.confirm = function (props) {
284
+ return confirm(props);
285
+ };
286
+ ['alert'].forEach(function (type) {
287
+ Dialog[type] = function (props) {
288
+ return confirm(_objectSpread(_objectSpread({}, props), {}, {
289
+ isNotice: false,
290
+ noticeType: type
291
+ }));
292
+ };
293
+ });
294
+ Dialog.defaultProps = defaultProps;
295
+ Dialog.displayName = 'NutDialog';
296
+ export { Dialog as default };