@nutui/nutui-react 1.5.2-beta.0 → 1.5.2-beta.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 (350) hide show
  1. package/CHANGELOG.md +0 -1
  2. package/dist/esm/ActionSheet/style/index.js +2 -0
  3. package/dist/esm/ActionSheet.js +92 -0
  4. package/dist/esm/Address/style/index.js +4 -0
  5. package/dist/esm/Address.js +622 -0
  6. package/dist/esm/Animate/style/index.js +2 -0
  7. package/dist/esm/Animate.js +55 -0
  8. package/dist/esm/AnimatingNumbers/style/index.js +3 -0
  9. package/dist/esm/AnimatingNumbers.js +127 -0
  10. package/dist/esm/Audio/style/index.js +4 -0
  11. package/dist/esm/Audio.js +266 -0
  12. package/dist/esm/Avatar/style/index.js +2 -0
  13. package/dist/esm/Avatar.js +132 -0
  14. package/dist/esm/AvatarContext-15733596.js +3 -0
  15. package/dist/esm/AvatarGroup/style/index.js +2 -0
  16. package/dist/esm/AvatarGroup.js +43 -0
  17. package/dist/esm/BackTop/style/index.js +2 -0
  18. package/dist/esm/BackTop.js +139 -0
  19. package/dist/esm/Badge/style/index.js +2 -0
  20. package/dist/esm/Badge.js +73 -0
  21. package/dist/esm/Barrage/style/index.js +2 -0
  22. package/dist/esm/Barrage.js +99 -0
  23. package/dist/esm/Button/style/index.js +2 -0
  24. package/dist/esm/Button.js +109 -0
  25. package/dist/esm/Calendar/style/index.js +2 -0
  26. package/dist/esm/Calendar.js +129 -0
  27. package/dist/esm/CalendarItem/style/index.js +2 -0
  28. package/dist/esm/CalendarItem.js +676 -0
  29. package/dist/esm/Card/style/index.js +4 -0
  30. package/dist/esm/Card.js +63 -0
  31. package/dist/esm/Cascader/style/index.js +3 -0
  32. package/dist/esm/Cascader.js +673 -0
  33. package/dist/esm/Cell/style/index.js +2 -0
  34. package/dist/esm/Cell.js +103 -0
  35. package/dist/esm/CellGroup/style/index.js +2 -0
  36. package/dist/esm/CellGroup.js +5 -0
  37. package/dist/esm/Checkbox/style/index.js +3 -0
  38. package/dist/esm/Checkbox.js +8 -0
  39. package/dist/esm/CheckboxGroup/style/index.js +2 -0
  40. package/dist/esm/CheckboxGroup.js +113 -0
  41. package/dist/esm/CircleProgress/style/index.js +2 -0
  42. package/dist/esm/CircleProgress.js +116 -0
  43. package/dist/esm/Col/style/index.js +2 -0
  44. package/dist/esm/Col.js +58 -0
  45. package/dist/esm/Collapse/style/index.js +2 -0
  46. package/dist/esm/Collapse.js +99 -0
  47. package/dist/esm/CollapseItem/style/index.js +2 -0
  48. package/dist/esm/CollapseItem.js +148 -0
  49. package/dist/esm/ConfigProvider/style/index.js +2 -0
  50. package/dist/esm/ConfigProvider.js +187 -0
  51. package/dist/esm/CountDown/style/index.js +2 -0
  52. package/dist/esm/CountDown.js +249 -0
  53. package/dist/esm/DatePicker/style/index.js +2 -0
  54. package/dist/esm/DatePicker.js +310 -0
  55. package/dist/esm/Dialog/style/index.js +3 -0
  56. package/dist/esm/Dialog.js +296 -0
  57. package/dist/esm/Divider/style/index.js +2 -0
  58. package/dist/esm/Divider.js +36 -0
  59. package/dist/esm/Drag/style/index.js +2 -0
  60. package/dist/esm/Drag.js +120 -0
  61. package/dist/esm/Elevator/style/index.js +2 -0
  62. package/dist/esm/Elevator.js +236 -0
  63. package/dist/esm/Ellipsis/style/index.js +2 -0
  64. package/dist/esm/Ellipsis.js +177 -0
  65. package/dist/esm/Empty/style/index.js +2 -0
  66. package/dist/esm/Empty.js +82 -0
  67. package/dist/esm/FixedNav/style/index.js +3 -0
  68. package/dist/esm/FixedNav.js +105 -0
  69. package/dist/esm/Form/style/index.js +2 -0
  70. package/dist/esm/Form.js +219 -0
  71. package/dist/esm/FormItem/style/index.js +2 -0
  72. package/dist/esm/FormItem.js +5 -0
  73. package/dist/esm/Grid/style/index.js +2 -0
  74. package/dist/esm/Grid.js +83 -0
  75. package/dist/esm/GridItem/style/index.js +2 -0
  76. package/dist/esm/GridItem.js +125 -0
  77. package/dist/esm/Icon/style/index.js +4 -0
  78. package/dist/esm/Icon.js +5 -0
  79. package/dist/esm/Image/style/index.js +2 -0
  80. package/dist/esm/Image.js +170 -0
  81. package/dist/esm/ImagePreview/style/index.js +4 -0
  82. package/dist/esm/ImagePreview.js +226 -0
  83. package/dist/esm/Indicator/style/index.js +2 -0
  84. package/dist/esm/Indicator.js +52 -0
  85. package/dist/esm/Infiniteloading/style/index.js +2 -0
  86. package/dist/esm/Infiniteloading.js +217 -0
  87. package/dist/esm/Input/style/index.js +2 -0
  88. package/dist/esm/Input.js +363 -0
  89. package/dist/esm/InputNumber/style/index.js +2 -0
  90. package/dist/esm/InputNumber.js +277 -0
  91. package/dist/esm/Layout/style/index.js +2 -0
  92. package/dist/esm/Layout.js +14 -0
  93. package/dist/esm/Menu/style/index.js +3 -0
  94. package/dist/esm/Menu.js +154 -0
  95. package/dist/esm/MenuItem/style/index.js +3 -0
  96. package/dist/esm/MenuItem.js +177 -0
  97. package/dist/esm/NavBar/style/index.js +2 -0
  98. package/dist/esm/NavBar.js +116 -0
  99. package/dist/esm/NoticeBar/style/index.js +2 -0
  100. package/dist/esm/NoticeBar.js +570 -0
  101. package/dist/esm/Notify/style/index.js +2 -0
  102. package/dist/esm/Notify.js +236 -0
  103. package/dist/esm/NumberKeyboard/style/index.js +2 -0
  104. package/dist/esm/NumberKeyboard.js +249 -0
  105. package/dist/esm/Overlay/style/index.js +2 -0
  106. package/dist/esm/Overlay.js +6 -0
  107. package/dist/esm/Pagination/style/index.js +2 -0
  108. package/dist/esm/Pagination.js +170 -0
  109. package/dist/esm/Picker/style/index.js +2 -0
  110. package/dist/esm/Picker.js +496 -0
  111. package/dist/esm/Popover/style/index.js +3 -0
  112. package/dist/esm/Popover.js +225 -0
  113. package/dist/esm/Popup/style/index.js +3 -0
  114. package/dist/esm/Popup.js +195 -0
  115. package/dist/esm/Price/style/index.js +2 -0
  116. package/dist/esm/Price.js +86 -0
  117. package/dist/esm/Progress/style/index.js +2 -0
  118. package/dist/esm/Progress.js +124 -0
  119. package/dist/esm/PullToRefresh/style/index.js +2 -0
  120. package/dist/esm/PullToRefresh.js +277 -0
  121. package/dist/esm/Radio/style/index.js +3 -0
  122. package/dist/esm/Radio.js +6 -0
  123. package/dist/esm/RadioGroup/style/index.js +2 -0
  124. package/dist/esm/RadioGroup.js +123 -0
  125. package/dist/esm/Range/style/index.js +2 -0
  126. package/dist/esm/Range.js +407 -0
  127. package/dist/esm/Rate/style/index.js +2 -0
  128. package/dist/esm/Rate.js +123 -0
  129. package/dist/esm/Row/style/index.js +2 -0
  130. package/dist/esm/Row.js +50 -0
  131. package/dist/esm/SearchBar/style/index.js +2 -0
  132. package/dist/esm/SearchBar.js +237 -0
  133. package/dist/esm/ShortPassword/style/index.js +3 -0
  134. package/dist/esm/ShortPassword.js +193 -0
  135. package/dist/esm/SideNavBar/style/index.js +2 -0
  136. package/dist/esm/SideNavBar.js +58 -0
  137. package/dist/esm/SideNavBarItem/style/index.js +2 -0
  138. package/dist/esm/SideNavBarItem.js +25 -0
  139. package/dist/esm/Signature/style/index.js +2 -0
  140. package/dist/esm/Signature.js +155 -0
  141. package/dist/esm/Skeleton/style/index.js +2 -0
  142. package/dist/esm/Skeleton.js +100 -0
  143. package/dist/esm/Step/style/index.js +2 -0
  144. package/dist/esm/Step.js +89 -0
  145. package/dist/esm/Steps/style/index.js +2 -0
  146. package/dist/esm/Steps.js +40 -0
  147. package/dist/esm/Sticky/style/index.js +2 -0
  148. package/dist/esm/Sticky.js +192 -0
  149. package/dist/esm/SubSideNavBar/style/index.js +2 -0
  150. package/dist/esm/SubSideNavBar.js +79 -0
  151. package/dist/esm/Swipe/style/index.js +2 -0
  152. package/dist/esm/Swipe.js +232 -0
  153. package/dist/esm/Swiper/style/index.js +2 -0
  154. package/dist/esm/Swiper.js +492 -0
  155. package/dist/esm/SwiperItem/style/index.js +2 -0
  156. package/dist/esm/SwiperItem.js +38 -0
  157. package/dist/esm/Switch/style/index.js +2 -0
  158. package/dist/esm/Switch.js +73 -0
  159. package/dist/esm/TabPane/style/index.js +2 -0
  160. package/dist/esm/TabPane.js +6 -0
  161. package/dist/esm/Tabbar/style/index.js +2 -0
  162. package/dist/esm/Tabbar.js +70 -0
  163. package/dist/esm/TabbarItem/style/index.js +2 -0
  164. package/dist/esm/TabbarItem.js +80 -0
  165. package/dist/esm/Table/style/index.js +2 -0
  166. package/dist/esm/Table.js +142 -0
  167. package/dist/esm/Tabs/style/index.js +4 -0
  168. package/dist/esm/Tabs.js +9 -0
  169. package/dist/esm/Tag/style/index.js +2 -0
  170. package/dist/esm/Tag.js +111 -0
  171. package/dist/esm/TextArea/style/index.js +2 -0
  172. package/dist/esm/TextArea.js +150 -0
  173. package/dist/esm/TimeDetail/style/index.js +2 -0
  174. package/dist/esm/TimeDetail.js +69 -0
  175. package/dist/esm/TimePannel/style/index.js +2 -0
  176. package/dist/esm/TimePannel.js +31 -0
  177. package/dist/esm/TimeSelect/style/index.js +4 -0
  178. package/dist/esm/TimeSelect.js +173 -0
  179. package/dist/esm/Toast/style/index.js +2 -0
  180. package/dist/esm/Toast.js +271 -0
  181. package/dist/esm/TrendArrow/style/index.js +2 -0
  182. package/dist/esm/TrendArrow.js +101 -0
  183. package/dist/esm/Uploader/style/index.js +4 -0
  184. package/dist/esm/Uploader.js +568 -0
  185. package/dist/esm/UserContext-101ad4a4.js +3 -0
  186. package/dist/esm/UserContext-2629d479.js +3 -0
  187. package/dist/esm/UserContext-b33bcf21.js +3 -0
  188. package/dist/esm/Video/style/index.js +2 -0
  189. package/dist/esm/Video.js +92 -0
  190. package/dist/esm/VirtualList/style/index.js +2 -0
  191. package/dist/esm/VirtualList.js +315 -0
  192. package/dist/esm/WaterMark/style/index.js +2 -0
  193. package/dist/esm/WaterMark.js +113 -0
  194. package/dist/esm/bem-3b438e61.js +8 -0
  195. package/dist/esm/cellgroup-fcc72767.js +34 -0
  196. package/dist/esm/checkbox-44e13cd0.js +137 -0
  197. package/dist/esm/date-c7aad4c0.js +97 -0
  198. package/dist/esm/formitem-8a73a5fb.js +157 -0
  199. package/dist/esm/get-scroll-parent-5f85dee8.js +24 -0
  200. package/dist/esm/grid.context-2ee27d95.js +6 -0
  201. package/dist/esm/icon-4ef1581c.js +70 -0
  202. package/dist/esm/index-030b7245.js +11 -0
  203. package/dist/esm/nutui-react.es.js +94 -0
  204. package/dist/esm/offsetContext-3ab00d40.js +16 -0
  205. package/dist/esm/overlay-de6c79d5.js +83 -0
  206. package/dist/esm/radio-9f141e6b.js +118 -0
  207. package/dist/esm/render-bbebb760.js +79 -0
  208. package/dist/esm/tabpane-01075e6c.js +29 -0
  209. package/dist/esm/tabs-e1b4e4b1.js +181 -0
  210. package/dist/esm/typings-f27b58f4.js +8 -0
  211. package/dist/esm/useClientRect-56bb675b.js +39 -0
  212. package/dist/esm/useTouch-cf73a407.js +99 -0
  213. package/dist/locales/base.d.ts +129 -0
  214. package/dist/locales/base.js +5 -0
  215. package/dist/locales/en-US.d.ts +3 -0
  216. package/dist/locales/en-US.js +135 -0
  217. package/dist/locales/id-ID.d.ts +3 -0
  218. package/dist/locales/id-ID.js +135 -0
  219. package/dist/locales/zh-CN.d.ts +3 -0
  220. package/dist/locales/zh-CN.js +137 -0
  221. package/dist/locales/zh-TW.d.ts +3 -0
  222. package/dist/locales/zh-TW.js +135 -0
  223. package/dist/locales/zh-UG.d.ts +3 -0
  224. package/dist/locales/zh-UG.js +135 -0
  225. package/dist/nutui.react.mjs +2 -2
  226. package/dist/nutui.react.umd.js +2 -2
  227. package/dist/packages/actionsheet/actionsheet.scss +103 -0
  228. package/dist/packages/address/address.scss +243 -0
  229. package/dist/packages/animate/animate.scss +284 -0
  230. package/dist/packages/animatingnumbers/animatingnumbers.scss +0 -0
  231. package/dist/packages/animatingnumbers/countup.scss +45 -0
  232. package/dist/packages/audio/audio.scss +93 -0
  233. package/dist/packages/avatar/avatar.scss +58 -0
  234. package/dist/packages/avatargroup/avatargroup.scss +14 -0
  235. package/dist/packages/backtop/backtop.scss +29 -0
  236. package/dist/packages/badge/badge.scss +53 -0
  237. package/dist/packages/barrage/barrage.scss +60 -0
  238. package/dist/packages/button/button.scss +245 -0
  239. package/dist/packages/calendar/calendar.scss +265 -0
  240. package/dist/packages/calendaritem/calendaritem.scss +0 -0
  241. package/dist/packages/card/card.scss +83 -0
  242. package/dist/packages/cascader/cascader.scss +108 -0
  243. package/dist/packages/cell/cell.scss +107 -0
  244. package/dist/packages/cellgroup/cellgroup.scss +46 -0
  245. package/dist/packages/checkbox/checkbox.scss +49 -0
  246. package/dist/packages/checkboxgroup/checkboxgroup.scss +33 -0
  247. package/dist/packages/circleprogress/circleprogress.scss +33 -0
  248. package/dist/packages/col/col.scss +24 -0
  249. package/dist/packages/collapse/collapse.scss +0 -0
  250. package/dist/packages/collapseitem/collapseitem.scss +161 -0
  251. package/dist/packages/configprovider/configprovider.scss +0 -0
  252. package/dist/packages/countdown/countdown.scss +3 -0
  253. package/dist/packages/datepicker/datepicker.scss +0 -0
  254. package/dist/packages/dialog/dialog.scss +135 -0
  255. package/dist/packages/divider/divider.scss +73 -0
  256. package/dist/packages/drag/drag.scss +10 -0
  257. package/dist/packages/elevator/elevator.scss +124 -0
  258. package/dist/packages/ellipsis/ellipsis.scss +17 -0
  259. package/dist/packages/empty/empty.scss +42 -0
  260. package/dist/packages/fixednav/fixednav.scss +141 -0
  261. package/dist/packages/form/form.scss +31 -0
  262. package/dist/packages/formitem/formitem.scss +100 -0
  263. package/dist/packages/grid/grid.scss +10 -0
  264. package/dist/packages/griditem/griditem.scss +108 -0
  265. package/dist/packages/icon/icon.scss +132 -0
  266. package/dist/packages/image/image.scss +53 -0
  267. package/dist/packages/imagepreview/imagepreview.scss +51 -0
  268. package/dist/packages/indicator/indicator.scss +70 -0
  269. package/dist/packages/infiniteloading/infiniteloading.scss +69 -0
  270. package/dist/packages/input/input.scss +203 -0
  271. package/dist/packages/inputnumber/inputnumber.scss +79 -0
  272. package/dist/packages/layout/layout.scss +2 -0
  273. package/dist/packages/menu/menu.scss +75 -0
  274. package/dist/packages/menuitem/menuitem.scss +120 -0
  275. package/dist/packages/navbar/navbar.scss +185 -0
  276. package/dist/packages/noticebar/noticebar.scss +156 -0
  277. package/dist/packages/notify/notify.scss +93 -0
  278. package/dist/packages/numberkeyboard/numberkeyboard.scss +147 -0
  279. package/dist/packages/overlay/overlay.scss +75 -0
  280. package/dist/packages/pagination/pagination.scss +81 -0
  281. package/dist/packages/picker/picker.scss +225 -0
  282. package/dist/packages/popover/popover.scss +288 -0
  283. package/dist/packages/popup/popup.scss +201 -0
  284. package/dist/packages/price/price.scss +37 -0
  285. package/dist/packages/progress/progress.scss +114 -0
  286. package/dist/packages/pulltorefresh/pulltorefresh.scss +26 -0
  287. package/dist/packages/radio/radio.scss +84 -0
  288. package/dist/packages/radiogroup/radiogroup.scss +86 -0
  289. package/dist/packages/range/range.scss +224 -0
  290. package/dist/packages/rate/rate.scss +36 -0
  291. package/dist/packages/row/row.scss +83 -0
  292. package/dist/packages/searchbar/searchbar.scss +146 -0
  293. package/dist/packages/shortpassword/shortpassword.scss +203 -0
  294. package/dist/packages/sidenavbar/sidenavbar.scss +100 -0
  295. package/dist/packages/sidenavbaritem/sidenavbaritem.scss +25 -0
  296. package/dist/packages/signature/signature.scss +39 -0
  297. package/dist/packages/skeleton/skeleton.scss +70 -0
  298. package/dist/packages/step/step.scss +274 -0
  299. package/dist/packages/steps/steps.scss +7 -0
  300. package/dist/packages/sticky/sticky.scss +3 -0
  301. package/dist/packages/subsidenavbar/subsidenavbar.scss +35 -0
  302. package/dist/packages/swipe/swipe.scss +33 -0
  303. package/dist/packages/swiper/swiper.scss +45 -0
  304. package/dist/packages/swiperitem/swiperitem.scss +3 -0
  305. package/dist/packages/switch/switch.scss +87 -0
  306. package/dist/packages/tabbar/tabbar.scss +46 -0
  307. package/dist/packages/tabbaritem/tabbaritem.scss +97 -0
  308. package/dist/packages/table/table.scss +152 -0
  309. package/dist/packages/tabpane/tabpane.scss +23 -0
  310. package/dist/packages/tabs/tabs.scss +284 -0
  311. package/dist/packages/tag/tag.scss +67 -0
  312. package/dist/packages/textarea/textarea.scss +60 -0
  313. package/dist/packages/timedetail/timedetail.scss +45 -0
  314. package/dist/packages/timepannel/timepannel.scss +17 -0
  315. package/dist/packages/timeselect/timeselect.scss +73 -0
  316. package/dist/packages/toast/toast.scss +98 -0
  317. package/dist/packages/trendarrow/trendarrow.scss +17 -0
  318. package/dist/packages/uploader/uploader.scss +237 -0
  319. package/dist/packages/video/video.scss +18 -0
  320. package/dist/packages/virtuallist/virtuallist.scss +87 -0
  321. package/dist/packages/watermark/watermark.scss +13 -0
  322. package/dist/style.css +1 -0
  323. package/dist/style.mjs +9 -0
  324. package/dist/styles/animation/drop.scss +24 -0
  325. package/dist/styles/animation/ease.scss +23 -0
  326. package/dist/styles/animation/fade.scss +20 -0
  327. package/dist/styles/animation/icon.scss +245 -0
  328. package/dist/styles/animation/index.scss +7 -0
  329. package/dist/styles/animation/rotate.scss +10 -0
  330. package/dist/styles/animation/zoom.scss +26 -0
  331. package/dist/styles/font/config.json +175 -0
  332. package/dist/styles/font/demo.css +539 -0
  333. package/dist/styles/font/demo_index.html +3063 -0
  334. package/dist/styles/font/iconfont.css +515 -0
  335. package/dist/styles/font/iconfont.eot +0 -0
  336. package/dist/styles/font/iconfont.js +68 -0
  337. package/dist/styles/font/iconfont.json +884 -0
  338. package/dist/styles/font/iconfont.svg +356 -0
  339. package/dist/styles/font/iconfont.ttf +0 -0
  340. package/dist/styles/font/iconfont.woff +0 -0
  341. package/dist/styles/font/iconfont.woff2 +0 -0
  342. package/dist/styles/mixins/index.scss +2 -0
  343. package/dist/styles/mixins/make-animation.scss +24 -0
  344. package/dist/styles/mixins/text-ellipsis.scss +20 -0
  345. package/dist/styles/theme-dark.scss +26 -0
  346. package/dist/styles/theme-default.scss +40 -0
  347. package/dist/styles/themes/default.scss +97 -0
  348. package/dist/styles/variables.scss +2610 -0
  349. package/dist/types/index.d.ts +2201 -0
  350. package/package.json +1 -1
@@ -0,0 +1,676 @@
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
+ 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 React__default, { useState, useRef, useEffect } from 'react';
7
+ import classNames from 'classnames';
8
+ import { c as cn } from './bem-3b438e61.js';
9
+ import { U as Utils } from './date-c7aad4c0.js';
10
+ import { useConfig } from './ConfigProvider.js';
11
+ import '@bem-react/classname';
12
+ function requestAniFrame() {
13
+ if (typeof window !== 'undefined') {
14
+ return window.requestAnimationFrame || function (callback) {
15
+ window.setTimeout(callback, 1000 / 60);
16
+ };
17
+ }
18
+ return function (callback) {
19
+ setTimeout(callback, 1000 / 60);
20
+ };
21
+ }
22
+ var requestAniFrame$1 = requestAniFrame();
23
+ var defaultProps = {
24
+ type: 'one',
25
+ isAutoBackFill: false,
26
+ poppable: true,
27
+ visible: false,
28
+ title: '日历选择',
29
+ defaultValue: '',
30
+ startDate: Utils.getDay(0),
31
+ endDate: Utils.getDay(365),
32
+ showToday: true,
33
+ startText: '开始',
34
+ endText: '结束',
35
+ confirmText: '确认',
36
+ showTitle: true,
37
+ showSubTitle: true,
38
+ toDateAnimation: true,
39
+ onBtn: undefined,
40
+ onDay: undefined,
41
+ onTopInfo: undefined,
42
+ onBottomInfo: undefined,
43
+ onChoose: function onChoose(data) {},
44
+ onUpdate: function onUpdate() {},
45
+ onSelected: function onSelected(data) {},
46
+ onYearMonthChange: function onYearMonthChange(data) {}
47
+ };
48
+ var CalendarItem = React__default.forwardRef(function (props, ref) {
49
+ var _classNames, _classNames2;
50
+ var _useConfig = useConfig(),
51
+ locale = _useConfig.locale;
52
+ var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),
53
+ type = _defaultProps$props.type,
54
+ isAutoBackFill = _defaultProps$props.isAutoBackFill,
55
+ poppable = _defaultProps$props.poppable,
56
+ title = _defaultProps$props.title,
57
+ defaultValue = _defaultProps$props.defaultValue,
58
+ showToday = _defaultProps$props.showToday,
59
+ startText = _defaultProps$props.startText,
60
+ endText = _defaultProps$props.endText,
61
+ confirmText = _defaultProps$props.confirmText,
62
+ showTitle = _defaultProps$props.showTitle,
63
+ showSubTitle = _defaultProps$props.showSubTitle,
64
+ toDateAnimation = _defaultProps$props.toDateAnimation,
65
+ onBtn = _defaultProps$props.onBtn,
66
+ onDay = _defaultProps$props.onDay,
67
+ onTopInfo = _defaultProps$props.onTopInfo,
68
+ onBottomInfo = _defaultProps$props.onBottomInfo,
69
+ onChoose = _defaultProps$props.onChoose,
70
+ onUpdate = _defaultProps$props.onUpdate,
71
+ onSelected = _defaultProps$props.onSelected,
72
+ onYearMonthChange = _defaultProps$props.onYearMonthChange;
73
+ var weeks = locale.calendaritem.weekdays;
74
+ var _useState = useState(''),
75
+ _useState2 = _slicedToArray(_useState, 2),
76
+ yearMonthTitle = _useState2[0],
77
+ setYearMonthTitle = _useState2[1];
78
+ var _useState3 = useState([]),
79
+ _useState4 = _slicedToArray(_useState3, 2),
80
+ monthsData = _useState4[0],
81
+ setMonthsData = _useState4[1];
82
+ var _useState5 = useState(0),
83
+ _useState6 = _slicedToArray(_useState5, 2),
84
+ translateY = _useState6[0],
85
+ setTranslateY = _useState6[1];
86
+ var _useState7 = useState([]),
87
+ _useState8 = _slicedToArray(_useState7, 2),
88
+ monthDefaultRange = _useState8[0],
89
+ setMonthDefaultRange = _useState8[1];
90
+ var _useState9 = useState({
91
+ currDate: '',
92
+ propStartDate: '',
93
+ propEndDate: '',
94
+ unLoadPrev: false,
95
+ touchParams: {
96
+ startY: 0,
97
+ endY: 0,
98
+ startTime: 0,
99
+ endTime: 0,
100
+ lastY: 0,
101
+ lastTime: 0
102
+ },
103
+ transformY: 0,
104
+ scrollDistance: 0,
105
+ defaultData: [],
106
+ chooseData: [],
107
+ monthsData: [],
108
+ dayPrefix: 'calendar-month-day',
109
+ startData: '',
110
+ endData: '',
111
+ isRange: props.type === 'range',
112
+ timer: 0,
113
+ currentIndex: 0,
114
+ avgHeight: 0,
115
+ monthsNum: 0
116
+ }),
117
+ _useState10 = _slicedToArray(_useState9, 1),
118
+ state = _useState10[0];
119
+ var weeksPanel = useRef(null);
120
+ var months = useRef(null);
121
+ var monthsPanel = useRef(null);
122
+ var viewArea = useRef(null);
123
+ var viewHeight = 0;
124
+ var b = cn('calendar');
125
+ var classes = classNames((_classNames = {}, _defineProperty(_classNames, "".concat(b(''), "-tile"), !poppable), _defineProperty(_classNames, "".concat(b(''), "-nofooter"), !!isAutoBackFill), _classNames), b(''));
126
+ var headerClasses = classNames((_classNames2 = {}, _defineProperty(_classNames2, "".concat(b(''), "-header"), true), _defineProperty(_classNames2, "".concat(b(''), "-header-tile"), !poppable), _classNames2));
127
+ var monthitemclasses = classNames(_defineProperty({
128
+ 'calendar-month-item': true
129
+ }, "".concat(type === 'range' ? 'month-item-range' : ''), true));
130
+ var splitDate = function splitDate(date) {
131
+ return date.split('-');
132
+ };
133
+ var isStart = function isStart(currDate) {
134
+ return Utils.isEqual(state.currDate[0], currDate);
135
+ };
136
+ var isEnd = function isEnd(currDate) {
137
+ return Utils.isEqual(state.currDate[1], currDate);
138
+ };
139
+ var isMultiple = function isMultiple(currDate) {
140
+ if (state.currDate.length > 0) {
141
+ return state.currDate.some(function (item) {
142
+ return Utils.isEqual(item, currDate);
143
+ });
144
+ }
145
+ return false;
146
+ };
147
+ var getCurrDate = function getCurrDate(day, month) {
148
+ return "".concat(month.curData[0], "-").concat(month.curData[1], "-").concat(Utils.getNumTwoBit(+day.day));
149
+ };
150
+ var getClass = function getClass(day, month) {
151
+ var currDate = getCurrDate(day, month);
152
+ if (day.type === 'curr') {
153
+ if (Utils.isEqual(state.currDate, currDate) || type === 'range' && (isStart(currDate) || isEnd(currDate)) || type === 'multiple' && isMultiple(currDate)) {
154
+ return "".concat(state.dayPrefix, "-active");
155
+ }
156
+ if (state.propStartDate && Utils.compareDate(currDate, state.propStartDate) || state.propEndDate && Utils.compareDate(state.propEndDate, currDate)) {
157
+ return "".concat(state.dayPrefix, "-disabled");
158
+ }
159
+ if (type === 'range' && Array.isArray(state.currDate) && Object.values(state.currDate).length === 2 && Utils.compareDate(state.currDate[0], currDate) && Utils.compareDate(currDate, state.currDate[1])) {
160
+ return "".concat(state.dayPrefix, "-choose");
161
+ }
162
+ return null;
163
+ }
164
+ return "".concat(state.dayPrefix, "-disabled");
165
+ };
166
+ var isActive = function isActive(day, month) {
167
+ return state.isRange && day.type === 'curr' && getClass(day, month) === 'calendar-month-day-active';
168
+ };
169
+ var isCurrDay = function isCurrDay(month, day) {
170
+ var date = "".concat(month.curData[0], "-").concat(month.curData[1], "-").concat(day);
171
+ return Utils.isEqual(date, Utils.date2Str(new Date()));
172
+ };
173
+ var confirm = function confirm() {
174
+ var type = props.type;
175
+ if (type === 'range' && state.chooseData.length === 2 || type !== 'range') {
176
+ var chooseData = state.chooseData.slice(0);
177
+ onChoose && onChoose(chooseData);
178
+ if (poppable) {
179
+ onUpdate && onUpdate();
180
+ }
181
+ }
182
+ };
183
+ var chooseDay = function chooseDay(day, month, isFirst) {
184
+ if (getClass(day, month) !== "".concat(state.dayPrefix, "-disabled")) {
185
+ var _type = props.type;
186
+ var days = _toConsumableArray(month.curData);
187
+ days[2] = typeof day.day === 'number' ? Utils.getNumTwoBit(day.day) : day.day;
188
+ days[3] = "".concat(days[0], "-").concat(days[1], "-").concat(days[2]);
189
+ days[4] = Utils.getWhatDay(+days[0], +days[1], +days[2]);
190
+ if (_type === 'multiple') {
191
+ if (state.currDate.length > 0) {
192
+ var hasIndex = '';
193
+ state.currDate.forEach(function (item, index) {
194
+ if (item === days[3]) {
195
+ hasIndex = index;
196
+ }
197
+ });
198
+ if (isFirst) {
199
+ state.chooseData.push(_toConsumableArray(days));
200
+ } else if (hasIndex !== '') {
201
+ state.currDate.splice(hasIndex, 1);
202
+ state.chooseData.splice(hasIndex, 1);
203
+ } else {
204
+ state.currDate.push(days[3]);
205
+ state.chooseData.push(_toConsumableArray(days));
206
+ }
207
+ } else {
208
+ state.currDate = [days[3]];
209
+ state.chooseData = [_toConsumableArray(days)];
210
+ }
211
+ } else if (_type === 'range') {
212
+ var curDataLength = Object.values(state.currDate).length;
213
+ if (curDataLength === 2 || curDataLength === 0) {
214
+ state.currDate = [days[3]];
215
+ } else if (Utils.compareDate(state.currDate[0], days[3])) {
216
+ Array.isArray(state.currDate) && state.currDate.push(days[3]);
217
+ } else {
218
+ Array.isArray(state.currDate) && state.currDate.unshift(days[3]);
219
+ }
220
+ if (state.chooseData.length === 2 || !state.chooseData.length) {
221
+ state.chooseData = [_toConsumableArray(days)];
222
+ } else if (Utils.compareDate(state.chooseData[0][3], days[3])) {
223
+ state.chooseData = [].concat(_toConsumableArray(state.chooseData), [_toConsumableArray(days)]);
224
+ } else {
225
+ state.chooseData = [_toConsumableArray(days)].concat(_toConsumableArray(state.chooseData));
226
+ }
227
+ } else {
228
+ state.currDate = days[3];
229
+ state.chooseData = _toConsumableArray(days);
230
+ }
231
+ if (!isFirst) {
232
+ // 点击日期 触发
233
+ onSelected && onSelected(state.chooseData);
234
+ if (isAutoBackFill || !poppable) {
235
+ confirm();
236
+ }
237
+ }
238
+ setMonthsData(state.monthsData.slice());
239
+ }
240
+ };
241
+ var isStartTip = function isStartTip(day, month) {
242
+ return isActive(day, month) && isStart(getCurrDate(day, month));
243
+ };
244
+ // 是否有结束提示
245
+ var isEndTip = function isEndTip(day, month) {
246
+ if (state.currDate.length >= 2 && isEnd(getCurrDate(day, month))) {
247
+ return isActive(day, month);
248
+ }
249
+ return false;
250
+ };
251
+ // 开始结束时间是否相等
252
+ var rangeTip = function rangeTip() {
253
+ if (state.currDate.length >= 2) {
254
+ return Utils.isEqual(state.currDate[0], state.currDate[1]);
255
+ }
256
+ return false;
257
+ };
258
+ // 获取当前月数据
259
+ var getCurrData = function getCurrData(type) {
260
+ var monthData = type === 'prev' ? state.monthsData[0] : state.monthsData[state.monthsData.length - 1];
261
+ var year = parseInt(monthData.curData[0]);
262
+ var month = parseInt(monthData.curData[1].toString().replace(/^0/, ''));
263
+ switch (type) {
264
+ case 'prev':
265
+ month === 1 && (year -= 1);
266
+ month = month === 1 ? 12 : --month;
267
+ break;
268
+ case 'next':
269
+ month === 12 && (year += 1);
270
+ month = month === 12 ? 1 : ++month;
271
+ break;
272
+ }
273
+ return [year, Utils.getNumTwoBit(month), Utils.getMonthDays(String(year), String(month))];
274
+ };
275
+ // 获取日期状态
276
+ var getDaysStatus = function getDaysStatus(days, type, dateInfo) {
277
+ // 修复:当某个月的1号是周日时,月份下方会空出来一行
278
+ var year = dateInfo.year,
279
+ month = dateInfo.month;
280
+ if (type === 'prev' && days >= 7) {
281
+ days -= 7;
282
+ }
283
+ return Array.from(Array(days), function (v, k) {
284
+ return {
285
+ day: k + 1,
286
+ type: type,
287
+ year: year,
288
+ month: month
289
+ };
290
+ });
291
+ };
292
+ // 获取上一个月的最后一周天数,填充当月空白
293
+ var getPreDaysStatus = function getPreDaysStatus(days, type, dateInfo, preCurrMonthDays) {
294
+ // 修复:当某个月的1号是周日时,月份下方会空出来一行
295
+ var year = dateInfo.year,
296
+ month = dateInfo.month;
297
+ if (type === 'prev' && days >= 7) {
298
+ days -= 7;
299
+ }
300
+ var months = Array.from(Array(preCurrMonthDays), function (v, k) {
301
+ return {
302
+ day: k + 1,
303
+ type: type,
304
+ year: year,
305
+ month: month
306
+ };
307
+ });
308
+ return months.slice(preCurrMonthDays - days);
309
+ };
310
+ // 获取月数据
311
+ var getMonth = function getMonth(curData, type) {
312
+ var preMonthDays = Utils.getMonthPreDay(+curData[0], +curData[1]);
313
+ var preMonth = +curData[1] - 1;
314
+ var preYear = curData[0];
315
+ if (preMonth <= 0) {
316
+ preMonth = 12;
317
+ preYear += 1;
318
+ }
319
+ var currMonthDays = Utils.getMonthDays(curData[0], curData[1]);
320
+ var preCurrMonthDays = Utils.getMonthDays("".concat(preYear), "".concat(preMonth));
321
+ var title = {
322
+ year: curData[0],
323
+ month: curData[1]
324
+ };
325
+ var monthInfo = {
326
+ curData: curData,
327
+ title: locale.calendaritem.monthTitle(title.year, title.month),
328
+ monthData: [].concat(_toConsumableArray(getPreDaysStatus(preMonthDays, 'prev', {
329
+ month: preMonth,
330
+ year: preYear
331
+ }, preCurrMonthDays)), _toConsumableArray(getDaysStatus(currMonthDays, 'curr', title)))
332
+ };
333
+ monthInfo.cssHeight = 39 + (monthInfo.monthData.length > 35 ? 384 : 320);
334
+ var cssScrollHeight = 0;
335
+ if (state.monthsData.length > 0) {
336
+ cssScrollHeight = state.monthsData[state.monthsData.length - 1].cssScrollHeight + state.monthsData[state.monthsData.length - 1].cssHeight;
337
+ }
338
+ monthInfo.cssScrollHeight = cssScrollHeight;
339
+ if (type === 'next') {
340
+ if (!state.endData || !Utils.compareDate("".concat(state.endData[0], "-").concat(state.endData[1], "-").concat(Utils.getMonthDays(state.endData[0], state.endData[1])), "".concat(curData[0], "-").concat(curData[1], "-").concat(curData[2]))) {
341
+ state.monthsData.push(monthInfo);
342
+ }
343
+ } else if (!state.startData || !Utils.compareDate("".concat(curData[0], "-").concat(curData[1], "-").concat(curData[2]), "".concat(state.startData[0], "-").concat(state.startData[1], "-01"))) {
344
+ state.monthsData.unshift(monthInfo);
345
+ }
346
+ setMonthsData(state.monthsData);
347
+ };
348
+ var setReachedYearMonthInfo = function setReachedYearMonthInfo() {
349
+ var currentMonthsData = state.monthsData[state.currentIndex];
350
+ var _currentMonthsData$cu = _slicedToArray(currentMonthsData.curData, 2),
351
+ year = _currentMonthsData$cu[0],
352
+ month = _currentMonthsData$cu[1];
353
+ if (currentMonthsData.title === yearMonthTitle) return;
354
+ onYearMonthChange && onYearMonthChange([year, month, "".concat(year, "-").concat(month)]);
355
+ setYearMonthTitle(currentMonthsData.title);
356
+ };
357
+ var setDefaultRange = function setDefaultRange(monthsNum, current) {
358
+ var start = 0;
359
+ var end = 0;
360
+ if (monthsNum >= 3) {
361
+ if (current > 0 && current < monthsNum) {
362
+ start = current - 1;
363
+ end = current + 3;
364
+ } else if (current === 0) {
365
+ start = current;
366
+ end = current + 4;
367
+ } else if (current === monthsNum) {
368
+ start = current - 2;
369
+ end = current + 2;
370
+ }
371
+ } else {
372
+ start = 0;
373
+ end = monthsNum + 2;
374
+ }
375
+ setMonthDefaultRange([start, end]);
376
+ setTranslateY(state.monthsData[start].cssScrollHeight);
377
+ };
378
+ var monthsViewScroll = function monthsViewScroll(e) {
379
+ if (state.monthsData.length <= 1) {
380
+ return;
381
+ }
382
+ var target = e.target;
383
+ var currentScrollTop = target.scrollTop;
384
+ var current = Math.floor(currentScrollTop / state.avgHeight);
385
+ if (current === 0) {
386
+ if (currentScrollTop >= state.monthsData[current + 1].cssScrollHeight) {
387
+ current += 1;
388
+ }
389
+ } else if (current > 0 && current < state.monthsNum - 1) {
390
+ if (currentScrollTop >= state.monthsData[current + 1].cssScrollHeight) {
391
+ current += 1;
392
+ }
393
+ if (currentScrollTop < state.monthsData[current].cssScrollHeight) {
394
+ current -= 1;
395
+ }
396
+ } else {
397
+ var viewPosition = Math.round(currentScrollTop + viewHeight);
398
+ if (viewPosition < state.monthsData[current].cssScrollHeight + state.monthsData[current].cssHeight && currentScrollTop > state.monthsData[current - 1].cssScrollHeight) {
399
+ current -= 1;
400
+ }
401
+ if (current + 1 <= state.monthsNum && viewPosition >= state.monthsData[current + 1].cssScrollHeight + state.monthsData[current + 1].cssHeight) {
402
+ current += 1;
403
+ }
404
+ if (current >= 1 && currentScrollTop < state.monthsData[current - 1].cssScrollHeight) {
405
+ current -= 1;
406
+ }
407
+ }
408
+ if (state.currentIndex !== current) {
409
+ state.currentIndex = current;
410
+ setDefaultRange(state.monthsNum, current);
411
+ }
412
+ setReachedYearMonthInfo();
413
+ };
414
+ var initData = function initData() {
415
+ // 初始化开始结束数据
416
+ var propStartDate = props.startDate ? props.startDate : Utils.getDay(0);
417
+ var propEndDate = props.endDate ? props.endDate : Utils.getDay(365);
418
+ state.propStartDate = propStartDate;
419
+ state.propEndDate = propEndDate;
420
+ state.startData = splitDate(propStartDate);
421
+ state.endData = splitDate(propEndDate);
422
+ // 根据是否存在默认时间,初始化当前日期
423
+ if (defaultValue || Array.isArray(defaultValue) && defaultValue.length > 0) {
424
+ state.currDate = props.type !== 'one' ? _toConsumableArray(props.defaultValue) : props.defaultValue;
425
+ }
426
+ // 判断时间范围内存在多少个月
427
+ var startDate = {
428
+ year: Number(state.startData[0]),
429
+ month: Number(state.startData[1])
430
+ };
431
+ var endDate = {
432
+ year: Number(state.endData[0]),
433
+ month: Number(state.endData[1])
434
+ };
435
+ var monthsNum = endDate.month - startDate.month;
436
+ if (endDate.year - startDate.year > 0) {
437
+ monthsNum += 12 * (endDate.year - startDate.year);
438
+ }
439
+ if (monthsNum <= 0) {
440
+ monthsNum = 1;
441
+ }
442
+ // 设置月份数据
443
+ getMonth(state.startData, 'next');
444
+ var i = 1;
445
+ do {
446
+ getMonth(getCurrData('next'), 'next');
447
+ } while (i++ < monthsNum);
448
+ state.monthsNum = monthsNum;
449
+ // 日期转化为数组,限制初始日期。判断时间范围
450
+ if (type === 'range' && Array.isArray(state.currDate)) {
451
+ if (state.currDate.length > 0) {
452
+ if (propStartDate && Utils.compareDate(state.currDate[0], propStartDate)) {
453
+ state.currDate.splice(0, 1, propStartDate);
454
+ }
455
+ if (propEndDate && Utils.compareDate(propEndDate, state.currDate[1])) {
456
+ state.currDate.splice(1, 1, propEndDate);
457
+ }
458
+ state.defaultData = [].concat(_toConsumableArray(splitDate(state.currDate[0])), _toConsumableArray(splitDate(state.currDate[1])));
459
+ }
460
+ } else if (props.type === 'multiple' && Array.isArray(state.currDate)) {
461
+ if (state.currDate.length > 0) {
462
+ var defaultArr = [];
463
+ var obj = {};
464
+ state.currDate.forEach(function (item) {
465
+ if (propStartDate && !Utils.compareDate(item, propStartDate) && propEndDate && !Utils.compareDate(propEndDate, item)) {
466
+ if (!Object.hasOwnProperty.call(obj, item)) {
467
+ defaultArr.push(item);
468
+ obj[item] = item;
469
+ }
470
+ }
471
+ });
472
+ state.currDate = [].concat(defaultArr);
473
+ state.defaultData = _toConsumableArray(splitDate(defaultArr[0]));
474
+ }
475
+ } else if (state.currDate) {
476
+ if (propStartDate && Utils.compareDate(state.currDate, propStartDate)) {
477
+ state.currDate = propStartDate;
478
+ } else if (propEndDate && !Utils.compareDate(state.currDate, propEndDate)) {
479
+ state.currDate = propEndDate;
480
+ }
481
+ state.defaultData = _toConsumableArray(splitDate(state.currDate));
482
+ }
483
+ // 设置默认可见区域
484
+ var current = 0;
485
+ var lastCurrent = 0;
486
+ if (state.defaultData.length > 0) {
487
+ state.monthsData.forEach(function (item, index) {
488
+ if (item.title === locale.calendaritem.monthTitle(state.defaultData[0], state.defaultData[1])) {
489
+ current = index;
490
+ }
491
+ if (props.type === 'range') {
492
+ if (item.title === locale.calendaritem.monthTitle(state.defaultData[3], state.defaultData[4])) {
493
+ lastCurrent = index;
494
+ }
495
+ }
496
+ });
497
+ } else {
498
+ // 当 defaultValue 为空时,如果月份列表包含当月,则默认定位到当月
499
+ var currentYear = new Date().getFullYear();
500
+ var currentMonth = new Date().getMonth() + 1;
501
+ var currentYearMonthIndex = state.monthsData.findIndex(function (item) {
502
+ return +item.curData[0] === currentYear && +item.curData[1] === currentMonth;
503
+ });
504
+ if (currentYearMonthIndex > -1) {
505
+ current = currentYearMonthIndex;
506
+ }
507
+ }
508
+ setDefaultRange(monthsNum, current);
509
+ state.currentIndex = current;
510
+ setReachedYearMonthInfo();
511
+ if (state.defaultData.length > 0) {
512
+ // 设置当前选中日期
513
+ if (type === 'range') {
514
+ chooseDay({
515
+ day: state.defaultData[2],
516
+ type: 'curr'
517
+ }, state.monthsData[state.currentIndex], true);
518
+ chooseDay({
519
+ day: state.defaultData[5],
520
+ type: 'curr'
521
+ }, state.monthsData[lastCurrent], true);
522
+ } else if (type === 'multiple') {
523
+ _toConsumableArray(state.currDate).forEach(function (item) {
524
+ var dateArr = splitDate(item);
525
+ var current = state.currentIndex;
526
+ state.monthsData.forEach(function (item, index) {
527
+ if (item.title === locale.calendaritem.monthTitle(dateArr[0], dateArr[1])) {
528
+ current = index;
529
+ }
530
+ });
531
+ chooseDay({
532
+ day: dateArr[2],
533
+ type: 'curr'
534
+ }, state.monthsData[current], true);
535
+ });
536
+ } else {
537
+ chooseDay({
538
+ day: state.defaultData[2],
539
+ type: 'curr'
540
+ }, state.monthsData[state.currentIndex], true);
541
+ }
542
+ }
543
+ var lastItem = state.monthsData[state.monthsData.length - 1];
544
+ var containerHeight = lastItem.cssHeight + lastItem.cssScrollHeight;
545
+ requestAniFrame$1(function () {
546
+ // 初始化 日历位置
547
+ if (months && monthsPanel && viewArea) {
548
+ viewHeight = months.current.clientHeight;
549
+ monthsPanel.current.style.height = "".concat(containerHeight, "px");
550
+ months.current.scrollTop = state.monthsData[state.currentIndex].cssScrollHeight;
551
+ }
552
+ });
553
+ state.avgHeight = Math.floor(containerHeight / (monthsNum + 1));
554
+ };
555
+ var resetRender = function resetRender() {
556
+ state.chooseData.splice(0);
557
+ state.monthsData.splice(0);
558
+ initData();
559
+ };
560
+ // 暴露出的API
561
+ var scrollToDate = function scrollToDate(date) {
562
+ if (Utils.compareDate(date, state.propStartDate)) {
563
+ date = state.propStartDate;
564
+ } else if (!Utils.compareDate(date, state.propEndDate)) {
565
+ date = state.propEndDate;
566
+ }
567
+ var dateArr = splitDate(date);
568
+ state.monthsData.forEach(function (item, index) {
569
+ if (item.title === locale.calendaritem.monthTitle(dateArr[0], dateArr[1])) {
570
+ if (months.current) {
571
+ var distance = state.monthsData[index].cssScrollHeight - months.current.scrollTop;
572
+ if (toDateAnimation) {
573
+ var flag = 0;
574
+ var interval = setInterval(function () {
575
+ flag++;
576
+ if (months.current) {
577
+ var offset = distance / 10;
578
+ months.current.scrollTop += offset;
579
+ }
580
+ if (flag >= 10) {
581
+ clearInterval(interval);
582
+ if (months.current) {
583
+ months.current.scrollTop = state.monthsData[index].cssScrollHeight;
584
+ }
585
+ }
586
+ }, 40);
587
+ } else {
588
+ months.current.scrollTop = state.monthsData[index].cssScrollHeight;
589
+ }
590
+ }
591
+ }
592
+ });
593
+ };
594
+ useEffect(function () {
595
+ initData();
596
+ }, []);
597
+ useEffect(function () {
598
+ poppable && resetRender();
599
+ }, [defaultValue]);
600
+ React__default.useImperativeHandle(ref, function () {
601
+ return {
602
+ scrollToDate: scrollToDate
603
+ };
604
+ });
605
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement("div", {
606
+ className: classes
607
+ }, React__default.createElement("div", {
608
+ className: headerClasses
609
+ }, showTitle && React__default.createElement("div", {
610
+ className: "calendar-title"
611
+ }, title || locale.calendaritem.title), onBtn && React__default.createElement("div", {
612
+ className: "calendar-top-slot"
613
+ }, onBtn()), showSubTitle && React__default.createElement("div", {
614
+ className: "calendar-curr-month"
615
+ }, yearMonthTitle), React__default.createElement("div", {
616
+ className: "calendar-weeks",
617
+ ref: weeksPanel
618
+ }, weeks.map(function (item) {
619
+ return React__default.createElement("div", {
620
+ className: "calendar-week-item",
621
+ key: item
622
+ }, item);
623
+ }))), React__default.createElement("div", {
624
+ className: "nut-calendar-content",
625
+ onScroll: monthsViewScroll,
626
+ ref: months
627
+ }, React__default.createElement("div", {
628
+ className: "calendar-months-panel",
629
+ ref: monthsPanel
630
+ }, React__default.createElement("div", {
631
+ className: "viewArea",
632
+ ref: viewArea,
633
+ style: {
634
+ transform: "translateY(".concat(translateY, "px)")
635
+ }
636
+ }, state.monthsData.slice(monthDefaultRange[0], monthDefaultRange[1]).map(function (month, key) {
637
+ return React__default.createElement("div", {
638
+ className: "calendar-month",
639
+ key: key
640
+ }, React__default.createElement("div", {
641
+ className: "calendar-month-title"
642
+ }, month.title), React__default.createElement("div", {
643
+ className: "calendar-month-con"
644
+ }, React__default.createElement("div", {
645
+ className: monthitemclasses
646
+ }, month.monthData.map(function (day, i) {
647
+ return React__default.createElement("div", {
648
+ className: ['calendar-month-day', getClass(day, month)].join(' '),
649
+ onClick: function onClick() {
650
+ chooseDay(day, month);
651
+ },
652
+ key: i
653
+ }, React__default.createElement("div", {
654
+ className: "calendar-day"
655
+ }, onDay ? onDay(day) : day.day), onTopInfo && React__default.createElement("div", {
656
+ className: "calendar-curr-tips calendar-curr-tips-top"
657
+ }, onTopInfo(day)), onBottomInfo && React__default.createElement("div", {
658
+ className: "calendar-curr-tips calendar-curr-tips-bottom"
659
+ }, onBottomInfo(day)), !onBottomInfo && showToday && isCurrDay(month, day.day) && React__default.createElement("div", {
660
+ className: "calendar-curr-tip-curr"
661
+ }, locale.calendaritem.today), isStartTip(day, month) && React__default.createElement("div", {
662
+ className: "calendar-day-tip ".concat(rangeTip() ? 'calendar-curr-tips-top' : '')
663
+ }, startText || locale.calendaritem.start), isEndTip(day, month) && React__default.createElement("div", {
664
+ className: "calendar-day-tip"
665
+ }, endText || locale.calendaritem.end));
666
+ }))));
667
+ })))), poppable && !isAutoBackFill ? React__default.createElement("div", {
668
+ className: "nut-calendar-footer"
669
+ }, React__default.createElement("div", {
670
+ className: "calendar-confirm-btn",
671
+ onClick: confirm
672
+ }, confirmText || locale.confirm)) : ''));
673
+ });
674
+ CalendarItem.defaultProps = defaultProps;
675
+ CalendarItem.displayName = 'NutCalendarItem';
676
+ export { CalendarItem as default };
@@ -0,0 +1,4 @@
1
+ import '../../Price/style'
2
+ import '../../Tag/style'
3
+
4
+ import '../../../packages/card/card.scss'