@douyinfe/semi-foundation 2.24.3 → 2.25.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (971) hide show
  1. package/anchor/anchor.scss +6 -0
  2. package/anchor/foundation.ts +7 -6
  3. package/anchor/linkFoundation.ts +0 -1
  4. package/anchor/variables.scss +4 -0
  5. package/autoComplete/autoComplete.scss +2 -0
  6. package/autoComplete/foundation.ts +23 -20
  7. package/autoComplete/optionFoundation.ts +0 -2
  8. package/avatar/animation.scss +19 -0
  9. package/avatar/avatar.scss +314 -1
  10. package/avatar/constants.ts +21 -4
  11. package/avatar/foundation.ts +21 -4
  12. package/avatar/variables.scss +66 -10
  13. package/badge/badge.scss +13 -0
  14. package/badge/constants.ts +1 -1
  15. package/badge/variables.scss +4 -0
  16. package/base/foundation.ts +2 -3
  17. package/breadcrumb/breadcrumb.scss +10 -4
  18. package/breadcrumb/foundation.ts +0 -1
  19. package/breadcrumb/variables.scss +4 -0
  20. package/button/button.scss +88 -21
  21. package/button/iconButton.scss +1 -0
  22. package/button/splitButtonGroup.scss +10 -9
  23. package/button/variables.scss +13 -0
  24. package/calendar/calendar.scss +1 -1
  25. package/calendar/eventUtil.ts +14 -10
  26. package/calendar/foundation.ts +9 -9
  27. package/carousel/carousel.scss +4 -0
  28. package/carousel/foundation.ts +12 -7
  29. package/cascader/cascader.scss +66 -23
  30. package/cascader/constants.ts +5 -1
  31. package/cascader/foundation.ts +111 -63
  32. package/cascader/util.ts +64 -10
  33. package/cascader/variables.scss +5 -1
  34. package/checkbox/checkbox.scss +0 -1
  35. package/checkbox/checkboxFoundation.ts +1 -2
  36. package/checkbox/checkboxGroupFoundation.ts +0 -1
  37. package/collapse/foundation.ts +1 -0
  38. package/datePicker/_utils/getDefaultFormatToken.ts +1 -0
  39. package/datePicker/_utils/getInsetInputFormatToken.ts +1 -0
  40. package/datePicker/_utils/getInsetInputValueFromInsetInputStr.ts +1 -0
  41. package/datePicker/_utils/getYears.ts +8 -4
  42. package/datePicker/_utils/isValidTimeZone.ts +3 -0
  43. package/datePicker/constants.ts +1 -1
  44. package/datePicker/datePicker.scss +170 -21
  45. package/datePicker/foundation.ts +175 -150
  46. package/datePicker/inputFoundation.ts +34 -16
  47. package/datePicker/monthFoundation.ts +0 -1
  48. package/datePicker/monthsGridFoundation.ts +52 -32
  49. package/datePicker/variables.scss +13 -4
  50. package/datePicker/yearAndMonthFoundation.ts +68 -21
  51. package/descriptions/constants.ts +2 -1
  52. package/descriptions/descriptions.scss +20 -0
  53. package/descriptions/foundation.ts +36 -0
  54. package/descriptions/variables.scss +10 -0
  55. package/dropdown/constants.ts +1 -1
  56. package/dropdown/dropdown.scss +5 -0
  57. package/dropdown/foundation.ts +4 -3
  58. package/dropdown/menuFoundation.ts +3 -3
  59. package/form/constants.ts +2 -1
  60. package/form/form.scss +5 -2
  61. package/form/foundation.ts +12 -10
  62. package/form/interface.ts +5 -6
  63. package/form/utils.ts +39 -16
  64. package/form/variables.scss +3 -0
  65. package/grid/grid.scss +1 -1
  66. package/image/constants.ts +5 -1
  67. package/image/image.scss +9 -5
  68. package/image/previewFooterFoundation.ts +1 -4
  69. package/image/previewFoundation.ts +1 -1
  70. package/image/previewImageFoundation.ts +61 -70
  71. package/image/previewInnerFoundation.ts +93 -47
  72. package/image/utils.ts +18 -20
  73. package/image/variables.scss +1 -1
  74. package/input/foundation.ts +2 -4
  75. package/input/input.scss +48 -3
  76. package/input/textarea.scss +34 -0
  77. package/input/textareaFoundation.ts +42 -18
  78. package/input/variables.scss +7 -0
  79. package/inputNumber/foundation.ts +0 -5
  80. package/inputNumber/inputNumber.scss +9 -0
  81. package/lib/cjs/anchor/anchor.css +5 -0
  82. package/lib/cjs/anchor/anchor.scss +6 -0
  83. package/lib/cjs/anchor/constants.js +1 -3
  84. package/lib/cjs/anchor/foundation.js +20 -80
  85. package/lib/cjs/anchor/linkFoundation.js +3 -16
  86. package/lib/cjs/anchor/variables.scss +4 -0
  87. package/lib/cjs/autoComplete/autoComplete.css +1 -0
  88. package/lib/cjs/autoComplete/autoComplete.scss +2 -0
  89. package/lib/cjs/autoComplete/constants.js +3 -6
  90. package/lib/cjs/autoComplete/foundation.d.ts +3 -1
  91. package/lib/cjs/autoComplete/foundation.js +37 -149
  92. package/lib/cjs/autoComplete/optionFoundation.js +2 -14
  93. package/lib/cjs/avatar/animation.scss +19 -0
  94. package/lib/cjs/avatar/avatar.css +261 -0
  95. package/lib/cjs/avatar/avatar.scss +314 -1
  96. package/lib/cjs/avatar/constants.js +1 -4
  97. package/lib/cjs/avatar/foundation.d.ts +3 -0
  98. package/lib/cjs/avatar/foundation.js +21 -19
  99. package/lib/cjs/avatar/variables.scss +66 -10
  100. package/lib/cjs/backtop/constants.js +1 -3
  101. package/lib/cjs/backtop/foundation.d.ts +2 -2
  102. package/lib/cjs/backtop/foundation.js +0 -21
  103. package/lib/cjs/badge/badge.css +10 -0
  104. package/lib/cjs/badge/badge.scss +13 -0
  105. package/lib/cjs/badge/constants.js +2 -4
  106. package/lib/cjs/badge/variables.scss +4 -0
  107. package/lib/cjs/banner/constants.js +1 -3
  108. package/lib/cjs/banner/foundation.js +0 -7
  109. package/lib/cjs/base/constants.js +2 -4
  110. package/lib/cjs/base/foundation.d.ts +3 -3
  111. package/lib/cjs/base/foundation.js +12 -46
  112. package/lib/cjs/base/index.js +0 -3
  113. package/lib/cjs/breadcrumb/breadcrumb.css +5 -3
  114. package/lib/cjs/breadcrumb/breadcrumb.scss +10 -4
  115. package/lib/cjs/breadcrumb/constants.js +1 -3
  116. package/lib/cjs/breadcrumb/foundation.js +0 -13
  117. package/lib/cjs/breadcrumb/itemFoundation.js +0 -7
  118. package/lib/cjs/breadcrumb/variables.scss +4 -0
  119. package/lib/cjs/button/button.css +32 -5
  120. package/lib/cjs/button/button.scss +88 -21
  121. package/lib/cjs/button/constants.js +1 -3
  122. package/lib/cjs/button/iconButton.css +1 -0
  123. package/lib/cjs/button/iconButton.scss +1 -0
  124. package/lib/cjs/button/splitButtonGroup.scss +10 -9
  125. package/lib/cjs/button/variables.scss +13 -0
  126. package/lib/cjs/calendar/calendar.css +2 -2
  127. package/lib/cjs/calendar/calendar.scss +1 -1
  128. package/lib/cjs/calendar/constants.js +1 -3
  129. package/lib/cjs/calendar/eventUtil.d.ts +7 -6
  130. package/lib/cjs/calendar/eventUtil.js +15 -83
  131. package/lib/cjs/calendar/foundation.d.ts +4 -4
  132. package/lib/cjs/calendar/foundation.js +32 -128
  133. package/lib/cjs/card/constants.js +1 -3
  134. package/lib/cjs/carousel/carousel.css +4 -0
  135. package/lib/cjs/carousel/carousel.scss +4 -0
  136. package/lib/cjs/carousel/constants.js +9 -11
  137. package/lib/cjs/carousel/foundation.d.ts +2 -0
  138. package/lib/cjs/carousel/foundation.js +7 -52
  139. package/lib/cjs/cascader/cascader.css +45 -4
  140. package/lib/cjs/cascader/cascader.scss +66 -23
  141. package/lib/cjs/cascader/constants.d.ts +3 -0
  142. package/lib/cjs/cascader/constants.js +9 -8
  143. package/lib/cjs/cascader/foundation.d.ts +27 -8
  144. package/lib/cjs/cascader/foundation.js +122 -300
  145. package/lib/cjs/cascader/util.d.ts +9 -1
  146. package/lib/cjs/cascader/util.js +69 -33
  147. package/lib/cjs/cascader/variables.scss +5 -1
  148. package/lib/cjs/checkbox/checkbox.css +0 -1
  149. package/lib/cjs/checkbox/checkbox.scss +0 -1
  150. package/lib/cjs/checkbox/checkboxFoundation.js +1 -38
  151. package/lib/cjs/checkbox/checkboxGroupFoundation.js +1 -23
  152. package/lib/cjs/checkbox/constants.js +13 -15
  153. package/lib/cjs/collapse/constants.js +1 -3
  154. package/lib/cjs/collapse/foundation.d.ts +2 -1
  155. package/lib/cjs/collapse/foundation.js +2 -13
  156. package/lib/cjs/collapsible/constants.js +1 -3
  157. package/lib/cjs/collapsible/foundation.js +0 -9
  158. package/lib/cjs/datePicker/_utils/formatter.js +4 -10
  159. package/lib/cjs/datePicker/_utils/getDayOfWeek.d.ts +1 -1
  160. package/lib/cjs/datePicker/_utils/getDayOfWeek.js +0 -4
  161. package/lib/cjs/datePicker/_utils/getDefaultFormatToken.d.ts +1 -0
  162. package/lib/cjs/datePicker/_utils/getDefaultFormatToken.js +2 -6
  163. package/lib/cjs/datePicker/_utils/getDefaultPickerDate.d.ts +1 -1
  164. package/lib/cjs/datePicker/_utils/getDefaultPickerDate.js +0 -15
  165. package/lib/cjs/datePicker/_utils/getFullDateOffset.js +0 -7
  166. package/lib/cjs/datePicker/_utils/getInsetInputFormatToken.js +2 -6
  167. package/lib/cjs/datePicker/_utils/getInsetInputValueFromInsetInputStr.js +1 -6
  168. package/lib/cjs/datePicker/_utils/getMonthTable.d.ts +1 -1
  169. package/lib/cjs/datePicker/_utils/getMonthTable.js +7 -18
  170. package/lib/cjs/datePicker/_utils/getMonthsInYear.js +1 -3
  171. package/lib/cjs/datePicker/_utils/getYears.d.ts +1 -1
  172. package/lib/cjs/datePicker/_utils/getYears.js +9 -7
  173. package/lib/cjs/datePicker/_utils/index.js +0 -13
  174. package/lib/cjs/datePicker/_utils/isAfter.js +0 -4
  175. package/lib/cjs/datePicker/_utils/isBefore.js +0 -4
  176. package/lib/cjs/datePicker/_utils/isBetween.js +0 -4
  177. package/lib/cjs/datePicker/_utils/isDate.js +0 -1
  178. package/lib/cjs/datePicker/_utils/isSameDay.js +0 -4
  179. package/lib/cjs/datePicker/_utils/isTimestamp.js +0 -4
  180. package/lib/cjs/datePicker/_utils/isUnixTimestamp.js +0 -4
  181. package/lib/cjs/datePicker/_utils/isValidDate.js +0 -1
  182. package/lib/cjs/datePicker/_utils/isValidTimeZone.d.ts +1 -0
  183. package/lib/cjs/datePicker/_utils/isValidTimeZone.js +9 -0
  184. package/lib/cjs/datePicker/_utils/isWithinInterval.js +0 -4
  185. package/lib/cjs/datePicker/_utils/parser.js +0 -10
  186. package/lib/cjs/datePicker/constants.d.ts +1 -1
  187. package/lib/cjs/datePicker/constants.js +28 -31
  188. package/lib/cjs/datePicker/datePicker.css +88 -13
  189. package/lib/cjs/datePicker/datePicker.scss +170 -21
  190. package/lib/cjs/datePicker/foundation.d.ts +79 -50
  191. package/lib/cjs/datePicker/foundation.js +173 -441
  192. package/lib/cjs/datePicker/inputFoundation.d.ts +15 -6
  193. package/lib/cjs/datePicker/inputFoundation.js +35 -98
  194. package/lib/cjs/datePicker/monthFoundation.d.ts +1 -1
  195. package/lib/cjs/datePicker/monthFoundation.js +2 -28
  196. package/lib/cjs/datePicker/monthsGridFoundation.d.ts +18 -13
  197. package/lib/cjs/datePicker/monthsGridFoundation.js +70 -247
  198. package/lib/cjs/datePicker/variables.scss +13 -4
  199. package/lib/cjs/datePicker/yearAndMonthFoundation.d.ts +68 -13
  200. package/lib/cjs/datePicker/yearAndMonthFoundation.js +55 -42
  201. package/lib/cjs/descriptions/constants.d.ts +1 -0
  202. package/lib/cjs/descriptions/constants.js +3 -4
  203. package/lib/cjs/descriptions/descriptions.css +15 -0
  204. package/lib/cjs/descriptions/descriptions.scss +20 -0
  205. package/lib/cjs/descriptions/foundation.d.ts +7 -0
  206. package/lib/cjs/descriptions/foundation.js +45 -0
  207. package/lib/cjs/descriptions/variables.scss +10 -0
  208. package/lib/cjs/divider/constants.js +1 -3
  209. package/lib/cjs/dropdown/constants.js +4 -7
  210. package/lib/cjs/dropdown/dropdown.css +4 -0
  211. package/lib/cjs/dropdown/dropdown.scss +5 -0
  212. package/lib/cjs/dropdown/foundation.js +9 -25
  213. package/lib/cjs/dropdown/menuFoundation.js +9 -28
  214. package/lib/cjs/empty/constants.js +1 -3
  215. package/lib/cjs/form/constants.d.ts +1 -0
  216. package/lib/cjs/form/constants.js +3 -4
  217. package/lib/cjs/form/form.css +4 -0
  218. package/lib/cjs/form/form.scss +5 -2
  219. package/lib/cjs/form/foundation.d.ts +4 -4
  220. package/lib/cjs/form/foundation.js +84 -214
  221. package/lib/cjs/form/interface.d.ts +10 -10
  222. package/lib/cjs/form/utils.d.ts +10 -1
  223. package/lib/cjs/form/utils.js +85 -93
  224. package/lib/cjs/form/variables.scss +3 -0
  225. package/lib/cjs/grid/constants.js +1 -3
  226. package/lib/cjs/grid/grid.css +1 -1
  227. package/lib/cjs/grid/grid.scss +1 -1
  228. package/lib/cjs/highlight/constants.js +1 -3
  229. package/lib/cjs/icons/constants.js +1 -3
  230. package/lib/cjs/image/constants.d.ts +4 -1
  231. package/lib/cjs/image/constants.js +7 -5
  232. package/lib/cjs/image/image.css +4 -2
  233. package/lib/cjs/image/image.scss +9 -5
  234. package/lib/cjs/image/imageFoundation.js +4 -18
  235. package/lib/cjs/image/previewFooterFoundation.d.ts +0 -1
  236. package/lib/cjs/image/previewFooterFoundation.js +0 -14
  237. package/lib/cjs/image/previewFoundation.js +0 -11
  238. package/lib/cjs/image/previewImageFoundation.d.ts +9 -24
  239. package/lib/cjs/image/previewImageFoundation.js +79 -164
  240. package/lib/cjs/image/previewInnerFoundation.d.ts +19 -15
  241. package/lib/cjs/image/previewInnerFoundation.js +108 -114
  242. package/lib/cjs/image/utils.d.ts +1 -1
  243. package/lib/cjs/image/utils.js +46 -35
  244. package/lib/cjs/image/variables.scss +1 -1
  245. package/lib/cjs/input/constants.js +1 -3
  246. package/lib/cjs/input/foundation.js +19 -104
  247. package/lib/cjs/input/input.css +45 -1
  248. package/lib/cjs/input/input.scss +48 -3
  249. package/lib/cjs/input/textarea.css +20 -0
  250. package/lib/cjs/input/textarea.scss +34 -0
  251. package/lib/cjs/input/textareaFoundation.d.ts +1 -1
  252. package/lib/cjs/input/textareaFoundation.js +58 -101
  253. package/lib/cjs/input/util/calculateNodeHeight.js +6 -18
  254. package/lib/cjs/input/util/getSizingData.js +7 -11
  255. package/lib/cjs/input/variables.scss +7 -0
  256. package/lib/cjs/inputNumber/constants.js +0 -2
  257. package/lib/cjs/inputNumber/foundation.js +28 -197
  258. package/lib/cjs/inputNumber/inputNumber.css +4 -0
  259. package/lib/cjs/inputNumber/inputNumber.scss +9 -0
  260. package/lib/cjs/layout/constants.js +1 -3
  261. package/lib/cjs/list/constants.js +1 -3
  262. package/lib/cjs/modal/constants.js +1 -3
  263. package/lib/cjs/modal/modal.css +8 -0
  264. package/lib/cjs/modal/modal.scss +10 -1
  265. package/lib/cjs/modal/modalContentFoundation.js +0 -20
  266. package/lib/cjs/modal/modalFoundation.d.ts +8 -4
  267. package/lib/cjs/modal/modalFoundation.js +40 -15
  268. package/lib/cjs/modal/variables.scss +6 -1
  269. package/lib/cjs/navigation/NavItem.js +0 -12
  270. package/lib/cjs/navigation/constants.js +1 -4
  271. package/lib/cjs/navigation/foundation.js +3 -70
  272. package/lib/cjs/navigation/itemFoundation.js +3 -22
  273. package/lib/cjs/navigation/subNavFoundation.js +7 -42
  274. package/lib/cjs/notification/constants.js +3 -6
  275. package/lib/cjs/notification/notification.css +18 -0
  276. package/lib/cjs/notification/notification.scss +21 -1
  277. package/lib/cjs/notification/notificationFoundation.d.ts +6 -6
  278. package/lib/cjs/notification/notificationFoundation.js +0 -16
  279. package/lib/cjs/notification/notificationListFoundation.d.ts +4 -1
  280. package/lib/cjs/notification/notificationListFoundation.js +15 -18
  281. package/lib/cjs/overflowList/constants.d.ts +6 -4
  282. package/lib/cjs/overflowList/constants.js +3 -3
  283. package/lib/cjs/overflowList/foundation.d.ts +3 -1
  284. package/lib/cjs/overflowList/foundation.js +59 -68
  285. package/lib/cjs/pagination/constants.js +1 -3
  286. package/lib/cjs/pagination/foundation.d.ts +5 -3
  287. package/lib/cjs/pagination/foundation.js +36 -93
  288. package/lib/cjs/pagination/pagination.css +23 -0
  289. package/lib/cjs/pagination/pagination.scss +29 -0
  290. package/lib/cjs/pagination/variables.scss +1 -0
  291. package/lib/cjs/popconfirm/constants.js +2 -4
  292. package/lib/cjs/popconfirm/popconfirm.css +4 -24
  293. package/lib/cjs/popconfirm/popconfirm.scss +4 -16
  294. package/lib/cjs/popconfirm/popconfirmFoundation.d.ts +4 -0
  295. package/lib/cjs/popconfirm/popconfirmFoundation.js +17 -19
  296. package/lib/cjs/popconfirm/rtl.scss +0 -13
  297. package/lib/cjs/popconfirm/variables.scss +0 -4
  298. package/lib/cjs/popover/constants.d.ts +1 -1
  299. package/lib/cjs/popover/constants.js +3 -6
  300. package/lib/cjs/popover/popover.css +2 -0
  301. package/lib/cjs/popover/popover.scss +2 -0
  302. package/lib/cjs/progress/constants.js +1 -3
  303. package/lib/cjs/progress/generates.d.ts +2 -2
  304. package/lib/cjs/progress/generates.js +33 -74
  305. package/lib/cjs/radio/constants.js +13 -15
  306. package/lib/cjs/radio/radio.css +3 -0
  307. package/lib/cjs/radio/radio.scss +6 -3
  308. package/lib/cjs/radio/radioFoundation.js +0 -14
  309. package/lib/cjs/radio/radioGroupFoundation.js +3 -23
  310. package/lib/cjs/radio/radioInnerFoundation.js +1 -19
  311. package/lib/cjs/radio/variables.scss +4 -0
  312. package/lib/cjs/rating/constants.js +1 -3
  313. package/lib/cjs/rating/foundation.js +10 -62
  314. package/lib/cjs/scrollList/constants.js +2 -4
  315. package/lib/cjs/scrollList/foundation.js +0 -4
  316. package/lib/cjs/scrollList/itemFoundation.js +8 -61
  317. package/lib/cjs/scrollList/scrollTo.js +2 -5
  318. package/lib/cjs/select/constants.js +3 -6
  319. package/lib/cjs/select/foundation.d.ts +8 -6
  320. package/lib/cjs/select/foundation.js +172 -433
  321. package/lib/cjs/select/option.scss +1 -1
  322. package/lib/cjs/select/optionFoundation.js +2 -14
  323. package/lib/cjs/select/select.css +50 -0
  324. package/lib/cjs/select/select.scss +74 -5
  325. package/lib/cjs/select/variables.scss +9 -6
  326. package/lib/cjs/sideSheet/constants.js +2 -4
  327. package/lib/cjs/sideSheet/sideSheet.css +30 -0
  328. package/lib/cjs/sideSheet/sideSheet.scss +38 -0
  329. package/lib/cjs/sideSheet/sideSheetFoundation.d.ts +1 -0
  330. package/lib/cjs/sideSheet/sideSheetFoundation.js +0 -18
  331. package/lib/cjs/sideSheet/variables.scss +7 -0
  332. package/lib/cjs/skeleton/constants.js +1 -3
  333. package/lib/cjs/skeleton/skeleton.css +3 -2
  334. package/lib/cjs/skeleton/skeleton.scss +1 -0
  335. package/lib/cjs/skeleton/variables.scss +2 -2
  336. package/lib/cjs/slider/constants.d.ts +1 -0
  337. package/lib/cjs/slider/constants.js +8 -9
  338. package/lib/cjs/slider/foundation.d.ts +13 -2
  339. package/lib/cjs/slider/foundation.js +30 -226
  340. package/lib/cjs/slider/slider.css +25 -11
  341. package/lib/cjs/slider/slider.scss +16 -1
  342. package/lib/cjs/slider/variables.scss +15 -9
  343. package/lib/cjs/space/constants.js +1 -3
  344. package/lib/cjs/spin/constants.js +1 -3
  345. package/lib/cjs/spin/foundation.js +3 -13
  346. package/lib/cjs/spin/spin.css +3 -0
  347. package/lib/cjs/spin/spin.scss +3 -0
  348. package/lib/cjs/steps/bacisSteps.scss +10 -3
  349. package/lib/cjs/steps/constants.js +2 -4
  350. package/lib/cjs/steps/fillSteps.scss +7 -7
  351. package/lib/cjs/steps/steps.css +27 -22
  352. package/lib/cjs/steps/variables.scss +3 -3
  353. package/lib/cjs/switch/constants.js +13 -15
  354. package/lib/cjs/switch/foundation.js +1 -21
  355. package/lib/cjs/switch/switch.css +10 -0
  356. package/lib/cjs/switch/switch.scss +13 -2
  357. package/lib/cjs/table/bodyFoundation.js +1 -34
  358. package/lib/cjs/table/cellFoundation.js +0 -5
  359. package/lib/cjs/table/constants.d.ts +0 -1
  360. package/lib/cjs/table/constants.js +13 -18
  361. package/lib/cjs/table/foundation.d.ts +26 -16
  362. package/lib/cjs/table/foundation.js +79 -308
  363. package/lib/cjs/table/rtl.scss +33 -2
  364. package/lib/cjs/table/table.css +100 -64
  365. package/lib/cjs/table/table.scss +66 -8
  366. package/lib/cjs/table/tableRowFoundation.js +0 -12
  367. package/lib/cjs/table/tableSelectionCellFoundation.js +0 -6
  368. package/lib/cjs/table/utils.d.ts +6 -4
  369. package/lib/cjs/table/utils.js +27 -160
  370. package/lib/cjs/table/variables.scss +6 -3
  371. package/lib/cjs/tabs/constants.js +21 -23
  372. package/lib/cjs/tabs/foundation.js +2 -40
  373. package/lib/cjs/tabs/tabs.css +207 -7
  374. package/lib/cjs/tabs/tabs.scss +339 -24
  375. package/lib/cjs/tag/constants.js +1 -4
  376. package/lib/cjs/tag/tag.css +34 -1
  377. package/lib/cjs/tag/tag.scss +43 -4
  378. package/lib/cjs/tag/variables.scss +5 -0
  379. package/lib/cjs/tagInput/constants.js +1 -3
  380. package/lib/cjs/tagInput/foundation.d.ts +7 -4
  381. package/lib/cjs/tagInput/foundation.js +64 -88
  382. package/lib/cjs/tagInput/tagInput.css +35 -9
  383. package/lib/cjs/tagInput/tagInput.scss +41 -12
  384. package/lib/cjs/tagInput/utils/getSplitedArray.js +0 -11
  385. package/lib/cjs/tagInput/variables.scss +2 -0
  386. package/lib/cjs/timePicker/ComboxFoundation.js +6 -41
  387. package/lib/cjs/timePicker/constants.js +3 -6
  388. package/lib/cjs/timePicker/foundation.d.ts +2 -2
  389. package/lib/cjs/timePicker/foundation.js +28 -107
  390. package/lib/cjs/timePicker/inputFoundation.js +4 -25
  391. package/lib/cjs/timePicker/timePicker.css +15 -0
  392. package/lib/cjs/timePicker/timePicker.scss +22 -1
  393. package/lib/cjs/timePicker/utils/index.js +12 -51
  394. package/lib/cjs/timePicker/utils/localeDate.js +0 -10
  395. package/lib/cjs/timeline/constants.js +2 -4
  396. package/lib/cjs/toast/animation.scss +3 -0
  397. package/lib/cjs/toast/constants.js +3 -6
  398. package/lib/cjs/toast/toast.css +35 -3
  399. package/lib/cjs/toast/toast.scss +43 -3
  400. package/lib/cjs/toast/toastFoundation.d.ts +5 -4
  401. package/lib/cjs/toast/toastFoundation.js +0 -14
  402. package/lib/cjs/toast/toastListFoundation.d.ts +5 -0
  403. package/lib/cjs/toast/toastListFoundation.js +10 -22
  404. package/lib/cjs/toast/variables.scss +14 -0
  405. package/lib/cjs/tooltip/constants.d.ts +1 -1
  406. package/lib/cjs/tooltip/constants.js +2 -4
  407. package/lib/cjs/tooltip/foundation.d.ts +5 -2
  408. package/lib/cjs/tooltip/foundation.js +143 -336
  409. package/lib/cjs/tooltip/tooltip.css +7 -0
  410. package/lib/cjs/tooltip/tooltip.scss +9 -0
  411. package/lib/cjs/transfer/constants.js +1 -3
  412. package/lib/cjs/transfer/foundation.d.ts +1 -1
  413. package/lib/cjs/transfer/foundation.js +4 -69
  414. package/lib/cjs/transfer/transfer.css +4 -0
  415. package/lib/cjs/transfer/transfer.scss +7 -0
  416. package/lib/cjs/transfer/transferUtils.js +5 -27
  417. package/lib/cjs/tree/constants.js +2 -4
  418. package/lib/cjs/tree/foundation.d.ts +14 -9
  419. package/lib/cjs/tree/foundation.js +60 -183
  420. package/lib/cjs/tree/rtl.scss +19 -11
  421. package/lib/cjs/tree/tree.css +147 -65
  422. package/lib/cjs/tree/tree.scss +112 -17
  423. package/lib/cjs/tree/treeUtil.d.ts +17 -8
  424. package/lib/cjs/tree/treeUtil.js +102 -195
  425. package/lib/cjs/tree/variables.scss +3 -2
  426. package/lib/cjs/treeSelect/constants.js +3 -5
  427. package/lib/cjs/treeSelect/foundation.d.ts +26 -13
  428. package/lib/cjs/treeSelect/foundation.js +153 -248
  429. package/lib/cjs/treeSelect/treeSelect.css +55 -10
  430. package/lib/cjs/treeSelect/treeSelect.scss +76 -20
  431. package/lib/cjs/treeSelect/variables.scss +4 -2
  432. package/lib/cjs/typography/constants.d.ts +1 -0
  433. package/lib/cjs/typography/constants.js +2 -3
  434. package/lib/cjs/typography/formatNumeral.d.ts +3 -3
  435. package/lib/cjs/typography/formatNumeral.js +22 -43
  436. package/lib/cjs/typography/typography.css +135 -2
  437. package/lib/cjs/typography/typography.scss +151 -8
  438. package/lib/cjs/typography/variables.scss +52 -0
  439. package/lib/cjs/upload/constants.js +2 -4
  440. package/lib/cjs/upload/fileCardFoundation.d.ts +9 -0
  441. package/lib/cjs/upload/fileCardFoundation.js +18 -0
  442. package/lib/cjs/upload/foundation.d.ts +14 -5
  443. package/lib/cjs/upload/foundation.js +107 -247
  444. package/lib/cjs/upload/upload.css +9 -0
  445. package/lib/cjs/upload/upload.scss +8 -0
  446. package/lib/cjs/upload/utils.js +14 -33
  447. package/lib/cjs/utils/Event.js +1 -21
  448. package/lib/cjs/utils/FocusHandle.d.ts +1 -1
  449. package/lib/cjs/utils/FocusHandle.js +6 -35
  450. package/lib/cjs/utils/Logger.js +0 -21
  451. package/lib/cjs/utils/Store.js +0 -10
  452. package/lib/cjs/utils/a11y.js +18 -43
  453. package/lib/cjs/utils/array.d.ts +2 -2
  454. package/lib/cjs/utils/array.js +2 -9
  455. package/lib/cjs/utils/arrayMove.js +0 -1
  456. package/lib/cjs/utils/classnames.js +0 -12
  457. package/lib/cjs/utils/date-fns-extra.d.ts +28 -17
  458. package/lib/cjs/utils/date-fns-extra.js +82 -51
  459. package/lib/cjs/utils/dom.d.ts +1 -1
  460. package/lib/cjs/utils/dom.js +0 -13
  461. package/lib/cjs/utils/function.js +0 -2
  462. package/lib/cjs/utils/getDataAttr.js +1 -3
  463. package/lib/cjs/utils/getHighlight.js +5 -26
  464. package/lib/cjs/utils/getMotionObjFromProps.js +4 -16
  465. package/lib/cjs/utils/index.js +0 -4
  466. package/lib/cjs/utils/isBothNaN.js +0 -2
  467. package/lib/cjs/utils/isElement.js +0 -1
  468. package/lib/cjs/utils/isEnterPress.js +0 -5
  469. package/lib/cjs/utils/isEscPress.js +0 -5
  470. package/lib/cjs/utils/isNullOrUndefined.js +0 -1
  471. package/lib/cjs/utils/isNumber.js +0 -1
  472. package/lib/cjs/utils/isObject.js +0 -1
  473. package/lib/cjs/utils/isPromise.js +0 -3
  474. package/lib/cjs/utils/isString.js +0 -1
  475. package/lib/cjs/utils/keyCode.js +0 -105
  476. package/lib/cjs/utils/log.js +0 -5
  477. package/lib/cjs/utils/number.js +0 -2
  478. package/lib/cjs/utils/object.d.ts +4 -4
  479. package/lib/cjs/utils/object.js +10 -36
  480. package/lib/cjs/utils/set.js +0 -8
  481. package/lib/cjs/utils/shallowEqualObjects.js +0 -7
  482. package/lib/cjs/utils/touchPolyfill.js +1 -8
  483. package/lib/cjs/utils/type.d.ts +3 -3
  484. package/lib/cjs/utils/uuid.js +4 -11
  485. package/lib/cjs/utils/warning.js +1 -2
  486. package/lib/es/anchor/anchor.css +5 -0
  487. package/lib/es/anchor/anchor.scss +6 -0
  488. package/lib/es/anchor/constants.js +1 -1
  489. package/lib/es/anchor/foundation.js +20 -73
  490. package/lib/es/anchor/linkFoundation.js +3 -12
  491. package/lib/es/anchor/variables.scss +4 -0
  492. package/lib/es/autoComplete/autoComplete.css +1 -0
  493. package/lib/es/autoComplete/autoComplete.scss +2 -0
  494. package/lib/es/autoComplete/constants.js +3 -3
  495. package/lib/es/autoComplete/foundation.d.ts +3 -1
  496. package/lib/es/autoComplete/foundation.js +37 -142
  497. package/lib/es/autoComplete/optionFoundation.js +2 -10
  498. package/lib/es/avatar/animation.scss +19 -0
  499. package/lib/es/avatar/avatar.css +261 -0
  500. package/lib/es/avatar/avatar.scss +314 -1
  501. package/lib/es/avatar/constants.js +1 -2
  502. package/lib/es/avatar/foundation.d.ts +3 -0
  503. package/lib/es/avatar/foundation.js +21 -14
  504. package/lib/es/avatar/variables.scss +66 -10
  505. package/lib/es/backtop/constants.js +1 -1
  506. package/lib/es/backtop/foundation.d.ts +2 -2
  507. package/lib/es/backtop/foundation.js +0 -16
  508. package/lib/es/badge/badge.css +10 -0
  509. package/lib/es/badge/badge.scss +13 -0
  510. package/lib/es/badge/constants.js +2 -2
  511. package/lib/es/badge/variables.scss +4 -0
  512. package/lib/es/banner/constants.js +1 -1
  513. package/lib/es/banner/foundation.js +0 -3
  514. package/lib/es/base/constants.js +2 -2
  515. package/lib/es/base/foundation.d.ts +3 -3
  516. package/lib/es/base/foundation.js +11 -44
  517. package/lib/es/breadcrumb/breadcrumb.css +5 -3
  518. package/lib/es/breadcrumb/breadcrumb.scss +10 -4
  519. package/lib/es/breadcrumb/constants.js +1 -1
  520. package/lib/es/breadcrumb/foundation.js +0 -8
  521. package/lib/es/breadcrumb/itemFoundation.js +0 -3
  522. package/lib/es/breadcrumb/variables.scss +4 -0
  523. package/lib/es/button/button.css +32 -5
  524. package/lib/es/button/button.scss +88 -21
  525. package/lib/es/button/constants.js +1 -1
  526. package/lib/es/button/iconButton.css +1 -0
  527. package/lib/es/button/iconButton.scss +1 -0
  528. package/lib/es/button/splitButtonGroup.scss +10 -9
  529. package/lib/es/button/variables.scss +13 -0
  530. package/lib/es/calendar/calendar.css +2 -2
  531. package/lib/es/calendar/calendar.scss +1 -1
  532. package/lib/es/calendar/constants.js +1 -1
  533. package/lib/es/calendar/eventUtil.d.ts +7 -6
  534. package/lib/es/calendar/eventUtil.js +15 -45
  535. package/lib/es/calendar/foundation.d.ts +4 -4
  536. package/lib/es/calendar/foundation.js +32 -122
  537. package/lib/es/card/constants.js +1 -1
  538. package/lib/es/carousel/carousel.css +4 -0
  539. package/lib/es/carousel/carousel.scss +4 -0
  540. package/lib/es/carousel/constants.js +9 -9
  541. package/lib/es/carousel/foundation.d.ts +2 -0
  542. package/lib/es/carousel/foundation.js +7 -47
  543. package/lib/es/cascader/cascader.css +45 -4
  544. package/lib/es/cascader/cascader.scss +66 -23
  545. package/lib/es/cascader/constants.d.ts +3 -0
  546. package/lib/es/cascader/constants.js +7 -5
  547. package/lib/es/cascader/foundation.d.ts +27 -8
  548. package/lib/es/cascader/foundation.js +125 -286
  549. package/lib/es/cascader/util.d.ts +9 -1
  550. package/lib/es/cascader/util.js +65 -24
  551. package/lib/es/cascader/variables.scss +5 -1
  552. package/lib/es/checkbox/checkbox.css +0 -1
  553. package/lib/es/checkbox/checkbox.scss +0 -1
  554. package/lib/es/checkbox/checkboxFoundation.js +1 -34
  555. package/lib/es/checkbox/checkboxGroupFoundation.js +1 -20
  556. package/lib/es/checkbox/constants.js +13 -13
  557. package/lib/es/collapse/constants.js +1 -1
  558. package/lib/es/collapse/foundation.d.ts +2 -1
  559. package/lib/es/collapse/foundation.js +2 -9
  560. package/lib/es/collapsible/constants.js +1 -1
  561. package/lib/es/collapsible/foundation.js +0 -7
  562. package/lib/es/datePicker/_utils/formatter.js +4 -8
  563. package/lib/es/datePicker/_utils/getDayOfWeek.d.ts +1 -1
  564. package/lib/es/datePicker/_utils/getDayOfWeek.js +0 -3
  565. package/lib/es/datePicker/_utils/getDefaultFormatToken.d.ts +1 -0
  566. package/lib/es/datePicker/_utils/getDefaultFormatToken.js +2 -3
  567. package/lib/es/datePicker/_utils/getDefaultPickerDate.d.ts +1 -1
  568. package/lib/es/datePicker/_utils/getDefaultPickerDate.js +0 -10
  569. package/lib/es/datePicker/_utils/getFullDateOffset.js +0 -3
  570. package/lib/es/datePicker/_utils/getInsetInputFormatToken.js +2 -5
  571. package/lib/es/datePicker/_utils/getInsetInputValueFromInsetInputStr.js +1 -5
  572. package/lib/es/datePicker/_utils/getMonthTable.d.ts +1 -1
  573. package/lib/es/datePicker/_utils/getMonthTable.js +8 -18
  574. package/lib/es/datePicker/_utils/getMonthsInYear.js +1 -2
  575. package/lib/es/datePicker/_utils/getYears.d.ts +1 -1
  576. package/lib/es/datePicker/_utils/getYears.js +9 -6
  577. package/lib/es/datePicker/_utils/isBetween.js +0 -1
  578. package/lib/es/datePicker/_utils/isValidTimeZone.d.ts +1 -0
  579. package/lib/es/datePicker/_utils/isValidTimeZone.js +3 -0
  580. package/lib/es/datePicker/_utils/parser.js +0 -8
  581. package/lib/es/datePicker/constants.d.ts +1 -1
  582. package/lib/es/datePicker/constants.js +28 -28
  583. package/lib/es/datePicker/datePicker.css +88 -13
  584. package/lib/es/datePicker/datePicker.scss +170 -21
  585. package/lib/es/datePicker/foundation.d.ts +79 -50
  586. package/lib/es/datePicker/foundation.js +173 -426
  587. package/lib/es/datePicker/inputFoundation.d.ts +15 -6
  588. package/lib/es/datePicker/inputFoundation.js +35 -85
  589. package/lib/es/datePicker/monthFoundation.d.ts +1 -1
  590. package/lib/es/datePicker/monthFoundation.js +3 -22
  591. package/lib/es/datePicker/monthsGridFoundation.d.ts +18 -13
  592. package/lib/es/datePicker/monthsGridFoundation.js +70 -231
  593. package/lib/es/datePicker/variables.scss +13 -4
  594. package/lib/es/datePicker/yearAndMonthFoundation.d.ts +68 -13
  595. package/lib/es/datePicker/yearAndMonthFoundation.js +55 -37
  596. package/lib/es/descriptions/constants.d.ts +1 -0
  597. package/lib/es/descriptions/constants.js +3 -2
  598. package/lib/es/descriptions/descriptions.css +15 -0
  599. package/lib/es/descriptions/descriptions.scss +20 -0
  600. package/lib/es/descriptions/foundation.d.ts +7 -0
  601. package/lib/es/descriptions/foundation.js +37 -0
  602. package/lib/es/descriptions/variables.scss +10 -0
  603. package/lib/es/divider/constants.js +1 -1
  604. package/lib/es/dropdown/constants.js +4 -4
  605. package/lib/es/dropdown/dropdown.css +4 -0
  606. package/lib/es/dropdown/dropdown.scss +5 -0
  607. package/lib/es/dropdown/foundation.js +9 -20
  608. package/lib/es/dropdown/menuFoundation.js +9 -23
  609. package/lib/es/empty/constants.js +1 -1
  610. package/lib/es/form/constants.d.ts +1 -0
  611. package/lib/es/form/constants.js +3 -2
  612. package/lib/es/form/form.css +4 -0
  613. package/lib/es/form/form.scss +5 -2
  614. package/lib/es/form/foundation.d.ts +4 -4
  615. package/lib/es/form/foundation.js +84 -203
  616. package/lib/es/form/interface.d.ts +10 -10
  617. package/lib/es/form/utils.d.ts +10 -1
  618. package/lib/es/form/utils.js +83 -86
  619. package/lib/es/form/variables.scss +3 -0
  620. package/lib/es/grid/constants.js +1 -1
  621. package/lib/es/grid/grid.css +1 -1
  622. package/lib/es/grid/grid.scss +1 -1
  623. package/lib/es/highlight/constants.js +1 -1
  624. package/lib/es/icons/constants.js +1 -1
  625. package/lib/es/image/constants.d.ts +4 -1
  626. package/lib/es/image/constants.js +5 -2
  627. package/lib/es/image/image.css +4 -2
  628. package/lib/es/image/image.scss +9 -5
  629. package/lib/es/image/imageFoundation.js +4 -13
  630. package/lib/es/image/previewFooterFoundation.d.ts +0 -1
  631. package/lib/es/image/previewFooterFoundation.js +0 -10
  632. package/lib/es/image/previewFoundation.js +0 -7
  633. package/lib/es/image/previewImageFoundation.d.ts +9 -24
  634. package/lib/es/image/previewImageFoundation.js +79 -156
  635. package/lib/es/image/previewInnerFoundation.d.ts +19 -15
  636. package/lib/es/image/previewInnerFoundation.js +108 -107
  637. package/lib/es/image/utils.d.ts +1 -1
  638. package/lib/es/image/utils.js +46 -27
  639. package/lib/es/image/variables.scss +1 -1
  640. package/lib/es/input/constants.js +1 -1
  641. package/lib/es/input/foundation.js +19 -96
  642. package/lib/es/input/input.css +45 -1
  643. package/lib/es/input/input.scss +48 -3
  644. package/lib/es/input/textarea.css +20 -0
  645. package/lib/es/input/textarea.scss +34 -0
  646. package/lib/es/input/textareaFoundation.d.ts +1 -1
  647. package/lib/es/input/textareaFoundation.js +58 -91
  648. package/lib/es/input/util/calculateNodeHeight.js +6 -18
  649. package/lib/es/input/util/getSizingData.js +7 -11
  650. package/lib/es/input/variables.scss +7 -0
  651. package/lib/es/inputNumber/foundation.js +28 -188
  652. package/lib/es/inputNumber/inputNumber.css +4 -0
  653. package/lib/es/inputNumber/inputNumber.scss +9 -0
  654. package/lib/es/layout/constants.js +1 -1
  655. package/lib/es/list/constants.js +1 -1
  656. package/lib/es/modal/constants.js +1 -1
  657. package/lib/es/modal/modal.css +8 -0
  658. package/lib/es/modal/modal.scss +10 -1
  659. package/lib/es/modal/modalContentFoundation.js +0 -15
  660. package/lib/es/modal/modalFoundation.d.ts +8 -4
  661. package/lib/es/modal/modalFoundation.js +40 -11
  662. package/lib/es/modal/variables.scss +6 -1
  663. package/lib/es/navigation/NavItem.js +0 -8
  664. package/lib/es/navigation/constants.js +2 -2
  665. package/lib/es/navigation/foundation.js +3 -63
  666. package/lib/es/navigation/itemFoundation.js +3 -19
  667. package/lib/es/navigation/subNavFoundation.js +7 -38
  668. package/lib/es/notification/constants.js +4 -4
  669. package/lib/es/notification/notification.css +18 -0
  670. package/lib/es/notification/notification.scss +21 -1
  671. package/lib/es/notification/notificationFoundation.d.ts +6 -6
  672. package/lib/es/notification/notificationFoundation.js +0 -11
  673. package/lib/es/notification/notificationListFoundation.d.ts +4 -1
  674. package/lib/es/notification/notificationListFoundation.js +15 -14
  675. package/lib/es/overflowList/constants.d.ts +6 -4
  676. package/lib/es/overflowList/constants.js +3 -1
  677. package/lib/es/overflowList/foundation.d.ts +3 -1
  678. package/lib/es/overflowList/foundation.js +59 -64
  679. package/lib/es/pagination/constants.js +1 -1
  680. package/lib/es/pagination/foundation.d.ts +5 -3
  681. package/lib/es/pagination/foundation.js +36 -90
  682. package/lib/es/pagination/pagination.css +23 -0
  683. package/lib/es/pagination/pagination.scss +29 -0
  684. package/lib/es/pagination/variables.scss +1 -0
  685. package/lib/es/popconfirm/constants.js +2 -2
  686. package/lib/es/popconfirm/popconfirm.css +4 -24
  687. package/lib/es/popconfirm/popconfirm.scss +4 -16
  688. package/lib/es/popconfirm/popconfirmFoundation.d.ts +4 -0
  689. package/lib/es/popconfirm/popconfirmFoundation.js +17 -14
  690. package/lib/es/popconfirm/rtl.scss +0 -13
  691. package/lib/es/popconfirm/variables.scss +0 -4
  692. package/lib/es/popover/constants.d.ts +1 -1
  693. package/lib/es/popover/constants.js +3 -3
  694. package/lib/es/popover/popover.css +2 -0
  695. package/lib/es/popover/popover.scss +2 -0
  696. package/lib/es/progress/constants.js +1 -1
  697. package/lib/es/progress/generates.d.ts +2 -2
  698. package/lib/es/progress/generates.js +33 -73
  699. package/lib/es/radio/constants.js +13 -13
  700. package/lib/es/radio/radio.css +3 -0
  701. package/lib/es/radio/radio.scss +6 -3
  702. package/lib/es/radio/radioFoundation.js +0 -9
  703. package/lib/es/radio/radioGroupFoundation.js +3 -19
  704. package/lib/es/radio/radioInnerFoundation.js +1 -15
  705. package/lib/es/radio/variables.scss +4 -0
  706. package/lib/es/rating/constants.js +1 -1
  707. package/lib/es/rating/foundation.js +10 -55
  708. package/lib/es/scrollList/constants.js +2 -2
  709. package/lib/es/scrollList/itemFoundation.js +8 -60
  710. package/lib/es/scrollList/scrollTo.js +2 -4
  711. package/lib/es/select/constants.js +3 -3
  712. package/lib/es/select/foundation.d.ts +8 -6
  713. package/lib/es/select/foundation.js +172 -419
  714. package/lib/es/select/option.scss +1 -1
  715. package/lib/es/select/optionFoundation.js +2 -10
  716. package/lib/es/select/select.css +50 -0
  717. package/lib/es/select/select.scss +74 -5
  718. package/lib/es/select/variables.scss +9 -6
  719. package/lib/es/sideSheet/constants.js +2 -2
  720. package/lib/es/sideSheet/sideSheet.css +30 -0
  721. package/lib/es/sideSheet/sideSheet.scss +38 -0
  722. package/lib/es/sideSheet/sideSheetFoundation.d.ts +1 -0
  723. package/lib/es/sideSheet/sideSheetFoundation.js +0 -12
  724. package/lib/es/sideSheet/variables.scss +7 -0
  725. package/lib/es/skeleton/constants.js +1 -1
  726. package/lib/es/skeleton/skeleton.css +3 -2
  727. package/lib/es/skeleton/skeleton.scss +1 -0
  728. package/lib/es/skeleton/variables.scss +2 -2
  729. package/lib/es/slider/constants.d.ts +1 -0
  730. package/lib/es/slider/constants.js +8 -7
  731. package/lib/es/slider/foundation.d.ts +13 -2
  732. package/lib/es/slider/foundation.js +30 -219
  733. package/lib/es/slider/slider.css +25 -11
  734. package/lib/es/slider/slider.scss +16 -1
  735. package/lib/es/slider/variables.scss +15 -9
  736. package/lib/es/space/constants.js +1 -1
  737. package/lib/es/spin/constants.js +1 -1
  738. package/lib/es/spin/foundation.js +3 -11
  739. package/lib/es/spin/spin.css +3 -0
  740. package/lib/es/spin/spin.scss +3 -0
  741. package/lib/es/steps/bacisSteps.scss +10 -3
  742. package/lib/es/steps/constants.js +2 -2
  743. package/lib/es/steps/fillSteps.scss +7 -7
  744. package/lib/es/steps/steps.css +27 -22
  745. package/lib/es/steps/variables.scss +3 -3
  746. package/lib/es/switch/constants.js +13 -13
  747. package/lib/es/switch/foundation.js +1 -16
  748. package/lib/es/switch/switch.css +10 -0
  749. package/lib/es/switch/switch.scss +13 -2
  750. package/lib/es/table/bodyFoundation.js +1 -25
  751. package/lib/es/table/cellFoundation.js +0 -1
  752. package/lib/es/table/constants.d.ts +0 -1
  753. package/lib/es/table/constants.js +13 -16
  754. package/lib/es/table/foundation.d.ts +26 -16
  755. package/lib/es/table/foundation.js +79 -313
  756. package/lib/es/table/rtl.scss +33 -2
  757. package/lib/es/table/table.css +100 -64
  758. package/lib/es/table/table.scss +66 -8
  759. package/lib/es/table/tableRowFoundation.js +1 -9
  760. package/lib/es/table/tableSelectionCellFoundation.js +0 -2
  761. package/lib/es/table/utils.d.ts +6 -4
  762. package/lib/es/table/utils.js +25 -119
  763. package/lib/es/table/variables.scss +6 -3
  764. package/lib/es/tabs/constants.js +21 -21
  765. package/lib/es/tabs/foundation.js +2 -35
  766. package/lib/es/tabs/tabs.css +207 -7
  767. package/lib/es/tabs/tabs.scss +339 -24
  768. package/lib/es/tag/constants.js +1 -2
  769. package/lib/es/tag/tag.css +34 -1
  770. package/lib/es/tag/tag.scss +43 -4
  771. package/lib/es/tag/variables.scss +5 -0
  772. package/lib/es/tagInput/constants.js +1 -1
  773. package/lib/es/tagInput/foundation.d.ts +7 -4
  774. package/lib/es/tagInput/foundation.js +64 -78
  775. package/lib/es/tagInput/tagInput.css +35 -9
  776. package/lib/es/tagInput/tagInput.scss +41 -12
  777. package/lib/es/tagInput/utils/getSplitedArray.js +0 -7
  778. package/lib/es/tagInput/variables.scss +2 -0
  779. package/lib/es/timePicker/ComboxFoundation.js +6 -32
  780. package/lib/es/timePicker/constants.js +3 -3
  781. package/lib/es/timePicker/foundation.d.ts +2 -2
  782. package/lib/es/timePicker/foundation.js +30 -101
  783. package/lib/es/timePicker/inputFoundation.js +4 -22
  784. package/lib/es/timePicker/timePicker.css +15 -0
  785. package/lib/es/timePicker/timePicker.scss +22 -1
  786. package/lib/es/timePicker/utils/index.js +12 -30
  787. package/lib/es/timePicker/utils/localeDate.js +0 -8
  788. package/lib/es/timeline/constants.js +2 -2
  789. package/lib/es/toast/animation.scss +3 -0
  790. package/lib/es/toast/constants.js +4 -4
  791. package/lib/es/toast/toast.css +35 -3
  792. package/lib/es/toast/toast.scss +43 -3
  793. package/lib/es/toast/toastFoundation.d.ts +5 -4
  794. package/lib/es/toast/toastFoundation.js +0 -9
  795. package/lib/es/toast/toastListFoundation.d.ts +5 -0
  796. package/lib/es/toast/toastListFoundation.js +10 -18
  797. package/lib/es/toast/variables.scss +14 -0
  798. package/lib/es/tooltip/constants.d.ts +1 -1
  799. package/lib/es/tooltip/constants.js +2 -2
  800. package/lib/es/tooltip/foundation.d.ts +5 -2
  801. package/lib/es/tooltip/foundation.js +143 -332
  802. package/lib/es/tooltip/tooltip.css +7 -0
  803. package/lib/es/tooltip/tooltip.scss +9 -0
  804. package/lib/es/transfer/constants.js +1 -1
  805. package/lib/es/transfer/foundation.d.ts +1 -1
  806. package/lib/es/transfer/foundation.js +5 -62
  807. package/lib/es/transfer/transfer.css +4 -0
  808. package/lib/es/transfer/transfer.scss +7 -0
  809. package/lib/es/transfer/transferUtils.js +5 -21
  810. package/lib/es/tree/constants.js +2 -2
  811. package/lib/es/tree/foundation.d.ts +14 -9
  812. package/lib/es/tree/foundation.js +60 -176
  813. package/lib/es/tree/rtl.scss +19 -11
  814. package/lib/es/tree/tree.css +147 -65
  815. package/lib/es/tree/tree.scss +112 -17
  816. package/lib/es/tree/treeUtil.d.ts +17 -8
  817. package/lib/es/tree/treeUtil.js +102 -161
  818. package/lib/es/tree/variables.scss +3 -2
  819. package/lib/es/treeSelect/constants.js +3 -3
  820. package/lib/es/treeSelect/foundation.d.ts +26 -13
  821. package/lib/es/treeSelect/foundation.js +155 -235
  822. package/lib/es/treeSelect/treeSelect.css +55 -10
  823. package/lib/es/treeSelect/treeSelect.scss +76 -20
  824. package/lib/es/treeSelect/variables.scss +4 -2
  825. package/lib/es/typography/constants.d.ts +1 -0
  826. package/lib/es/typography/constants.js +2 -1
  827. package/lib/es/typography/formatNumeral.d.ts +3 -3
  828. package/lib/es/typography/formatNumeral.js +22 -40
  829. package/lib/es/typography/typography.css +135 -2
  830. package/lib/es/typography/typography.scss +151 -8
  831. package/lib/es/typography/variables.scss +52 -0
  832. package/lib/es/upload/constants.js +2 -2
  833. package/lib/es/upload/fileCardFoundation.d.ts +9 -0
  834. package/lib/es/upload/fileCardFoundation.js +10 -0
  835. package/lib/es/upload/foundation.d.ts +14 -5
  836. package/lib/es/upload/foundation.js +107 -240
  837. package/lib/es/upload/upload.css +9 -0
  838. package/lib/es/upload/upload.scss +8 -0
  839. package/lib/es/upload/utils.js +14 -28
  840. package/lib/es/utils/Event.js +1 -17
  841. package/lib/es/utils/FocusHandle.d.ts +1 -1
  842. package/lib/es/utils/FocusHandle.js +6 -32
  843. package/lib/es/utils/Logger.js +0 -20
  844. package/lib/es/utils/Store.js +0 -9
  845. package/lib/es/utils/a11y.js +18 -31
  846. package/lib/es/utils/array.d.ts +2 -2
  847. package/lib/es/utils/array.js +2 -7
  848. package/lib/es/utils/classnames.js +0 -10
  849. package/lib/es/utils/date-fns-extra.d.ts +28 -17
  850. package/lib/es/utils/date-fns-extra.js +78 -40
  851. package/lib/es/utils/dom.d.ts +1 -1
  852. package/lib/es/utils/dom.js +0 -9
  853. package/lib/es/utils/function.js +0 -1
  854. package/lib/es/utils/getDataAttr.js +1 -2
  855. package/lib/es/utils/getHighlight.js +5 -26
  856. package/lib/es/utils/getMotionObjFromProps.js +4 -12
  857. package/lib/es/utils/isBothNaN.js +0 -1
  858. package/lib/es/utils/isEnterPress.js +0 -2
  859. package/lib/es/utils/isEscPress.js +0 -2
  860. package/lib/es/utils/keyCode.js +0 -104
  861. package/lib/es/utils/log.js +0 -3
  862. package/lib/es/utils/object.d.ts +4 -4
  863. package/lib/es/utils/object.js +10 -29
  864. package/lib/es/utils/set.js +0 -5
  865. package/lib/es/utils/shallowEqualObjects.js +0 -6
  866. package/lib/es/utils/touchPolyfill.js +1 -6
  867. package/lib/es/utils/type.d.ts +3 -3
  868. package/lib/es/utils/uuid.js +4 -10
  869. package/lib/es/utils/warning.js +1 -1
  870. package/modal/modal.scss +10 -1
  871. package/modal/modalContentFoundation.ts +3 -3
  872. package/modal/modalFoundation.ts +32 -7
  873. package/modal/variables.scss +6 -1
  874. package/navigation/NavItem.ts +0 -2
  875. package/navigation/foundation.ts +1 -3
  876. package/navigation/itemFoundation.ts +0 -1
  877. package/navigation/subNavFoundation.ts +3 -2
  878. package/notification/notification.scss +21 -1
  879. package/notification/notificationFoundation.ts +3 -3
  880. package/notification/notificationListFoundation.ts +14 -4
  881. package/overflowList/constants.ts +4 -2
  882. package/overflowList/foundation.ts +51 -33
  883. package/package.json +6 -5
  884. package/pagination/foundation.ts +13 -3
  885. package/pagination/pagination.scss +29 -0
  886. package/pagination/variables.scss +1 -0
  887. package/popconfirm/popconfirm.scss +4 -16
  888. package/popconfirm/popconfirmFoundation.ts +20 -2
  889. package/popconfirm/rtl.scss +0 -13
  890. package/popconfirm/variables.scss +0 -4
  891. package/popover/constants.ts +1 -1
  892. package/popover/popover.scss +2 -0
  893. package/radio/radio.scss +6 -3
  894. package/radio/radioFoundation.ts +1 -1
  895. package/radio/radioGroupFoundation.ts +0 -1
  896. package/radio/radioInnerFoundation.ts +0 -1
  897. package/radio/variables.scss +4 -0
  898. package/rating/foundation.ts +0 -1
  899. package/select/foundation.ts +68 -31
  900. package/select/option.scss +1 -1
  901. package/select/optionFoundation.ts +0 -2
  902. package/select/select.scss +74 -5
  903. package/select/variables.scss +9 -6
  904. package/sideSheet/sideSheet.scss +38 -0
  905. package/sideSheet/sideSheetFoundation.ts +3 -2
  906. package/sideSheet/variables.scss +7 -0
  907. package/skeleton/skeleton.scss +1 -0
  908. package/skeleton/variables.scss +2 -2
  909. package/slider/constants.ts +1 -0
  910. package/slider/foundation.ts +25 -29
  911. package/slider/slider.scss +16 -1
  912. package/slider/variables.scss +15 -9
  913. package/spin/spin.scss +3 -0
  914. package/steps/bacisSteps.scss +10 -3
  915. package/steps/fillSteps.scss +7 -7
  916. package/steps/variables.scss +3 -3
  917. package/switch/foundation.ts +2 -4
  918. package/switch/switch.scss +13 -2
  919. package/table/bodyFoundation.ts +0 -1
  920. package/table/constants.ts +0 -3
  921. package/table/foundation.ts +33 -31
  922. package/table/rtl.scss +33 -2
  923. package/table/table.scss +66 -8
  924. package/table/tableRowFoundation.ts +0 -1
  925. package/table/utils.ts +23 -43
  926. package/table/variables.scss +6 -3
  927. package/tabs/foundation.ts +2 -2
  928. package/tabs/tabs.scss +339 -24
  929. package/tag/constants.ts +19 -2
  930. package/tag/tag.scss +43 -4
  931. package/tag/variables.scss +5 -0
  932. package/tagInput/foundation.ts +57 -3
  933. package/tagInput/tagInput.scss +41 -12
  934. package/tagInput/variables.scss +2 -0
  935. package/timePicker/foundation.ts +27 -18
  936. package/timePicker/inputFoundation.ts +0 -2
  937. package/timePicker/timePicker.scss +22 -1
  938. package/timePicker/utils/index.ts +3 -2
  939. package/toast/animation.scss +3 -0
  940. package/toast/toast.scss +43 -3
  941. package/toast/toastFoundation.ts +4 -6
  942. package/toast/toastListFoundation.ts +13 -3
  943. package/toast/variables.scss +14 -0
  944. package/tooltip/constants.ts +1 -1
  945. package/tooltip/foundation.ts +96 -58
  946. package/tooltip/tooltip.scss +9 -0
  947. package/transfer/foundation.ts +0 -1
  948. package/transfer/transfer.scss +7 -0
  949. package/tree/foundation.ts +38 -33
  950. package/tree/rtl.scss +19 -11
  951. package/tree/tree.scss +112 -17
  952. package/tree/treeUtil.ts +64 -32
  953. package/tree/variables.scss +3 -2
  954. package/treeSelect/foundation.ts +132 -70
  955. package/treeSelect/treeSelect.scss +76 -20
  956. package/treeSelect/variables.scss +4 -2
  957. package/typography/constants.ts +1 -0
  958. package/typography/formatNumeral.ts +2 -5
  959. package/typography/typography.scss +151 -8
  960. package/typography/variables.scss +52 -0
  961. package/upload/fileCardFoundation.ts +17 -0
  962. package/upload/foundation.ts +85 -10
  963. package/upload/upload.scss +8 -0
  964. package/utils/Event.ts +0 -1
  965. package/utils/a11y.ts +6 -6
  966. package/utils/array.ts +4 -4
  967. package/utils/date-fns-extra.ts +83 -22
  968. package/utils/function.ts +0 -1
  969. package/utils/getDataAttr.ts +1 -1
  970. package/utils/getMotionObjFromProps.ts +3 -2
  971. package/utils/object.ts +0 -3
@@ -4,45 +4,25 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _isFunction2 = _interopRequireDefault(require("lodash/isFunction"));
9
-
10
8
  var _isEqual2 = _interopRequireDefault(require("lodash/isEqual"));
11
-
12
9
  var _isString2 = _interopRequireDefault(require("lodash/isString"));
13
-
14
10
  var _isObject2 = _interopRequireDefault(require("lodash/isObject"));
15
-
16
11
  var _get2 = _interopRequireDefault(require("lodash/get"));
17
-
18
12
  var _dateFns = require("date-fns");
19
-
20
13
  var _foundation = _interopRequireDefault(require("../base/foundation"));
21
-
22
14
  var _index = require("./_utils/index");
23
-
24
15
  var _isNullOrUndefined = _interopRequireDefault(require("../utils/isNullOrUndefined"));
25
-
26
16
  var _dateFnsExtra = require("../utils/date-fns-extra");
27
-
28
17
  var _parser = require("./_utils/parser");
29
-
30
18
  var _getDefaultFormatToken = require("./_utils/getDefaultFormatToken");
31
-
32
19
  var _constants = require("./constants");
33
-
34
20
  var _constants2 = require("../input/constants");
35
-
36
21
  var _getInsetInputFormatToken = _interopRequireDefault(require("./_utils/getInsetInputFormatToken"));
37
-
38
22
  var _getInsetInputValueFromInsetInputStr = _interopRequireDefault(require("./_utils/getInsetInputValueFromInsetInputStr"));
39
-
23
+ var _isValidTimeZone = _interopRequireDefault(require("./_utils/isValidTimeZone"));
24
+ var _warning = _interopRequireDefault(require("../utils/warning"));
40
25
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
41
-
42
- /* eslint-disable no-nested-ternary */
43
-
44
- /* eslint-disable max-len, max-depth, */
45
-
46
26
  /**
47
27
  * The datePicker foundation.js is responsible for maintaining the date value and the input box value, as well as the callback of both
48
28
  * task 1. Accept the selected date change, update the date value, and update the input box value according to the date = > Notify the change
@@ -55,41 +35,31 @@ class DatePickerFoundation extends _foundation.default {
55
35
  * clear range input focus when open is controlled
56
36
  * fixed github 1375
57
37
  */
58
-
59
38
  this.clearRangeInputFocus = () => {
60
39
  const {
61
40
  type
62
41
  } = this._adapter.getProps();
63
-
64
42
  const {
65
43
  rangeInputFocus
66
44
  } = this._adapter.getStates();
67
-
68
45
  if (type === 'dateTimeRange' && rangeInputFocus) {
69
46
  this._adapter.setRangeInputFocus(false);
70
47
  }
71
48
  };
72
-
73
49
  this._isRangeType = () => {
74
50
  const type = this._adapter.getProp('type');
75
-
76
51
  return /range/i.test(type);
77
52
  };
78
-
79
53
  this._isRangeValueComplete = value => {
80
54
  let result = false;
81
-
82
55
  if (Array.isArray(value)) {
83
56
  result = !value.some(date => (0, _isNullOrUndefined.default)(date));
84
57
  }
85
-
86
58
  return result;
87
59
  };
88
60
  }
89
-
90
61
  init() {
91
62
  const timeZone = this.getProp('timeZone');
92
-
93
63
  if (this._isControlledComponent()) {
94
64
  this.initFromProps({
95
65
  timeZone,
@@ -101,38 +71,22 @@ class DatePickerFoundation extends _foundation.default {
101
71
  value: this.getProp('defaultValue')
102
72
  });
103
73
  }
104
-
105
74
  this.initPanelOpenStatus(this.getProp('defaultOpen'));
106
75
  }
107
-
108
- isValidTimeZone(timeZone) {
109
- const propTimeZone = this.getProp('timeZone');
110
-
111
- const _timeZone = (0, _isNullOrUndefined.default)(timeZone) ? propTimeZone : timeZone;
112
-
113
- return ['string', 'number'].includes(typeof _timeZone) && _timeZone !== '';
114
- }
115
-
116
76
  initFromProps(_ref) {
117
77
  let {
118
78
  value,
119
79
  timeZone,
120
80
  prevTimeZone
121
81
  } = _ref;
122
-
123
82
  const _value = (Array.isArray(value) ? [...value] : (value || value === 0) && [value]) || [];
124
-
125
83
  const result = this.parseWithTimezone(_value, timeZone, prevTimeZone);
126
-
127
84
  this._adapter.updatePrevTimezone(prevTimeZone);
128
-
129
- this._adapter.updateInputValue(null);
130
-
85
+ // reset input value when value update
86
+ this.clearInputValue();
131
87
  this._adapter.updateValue(result);
132
-
133
88
  this.resetCachedSelectedValue(result);
134
89
  this.initRangeInputFocus(result);
135
-
136
90
  if (this._adapter.needConfirm()) {
137
91
  this._adapter.updateCachedSelectedValue(result);
138
92
  }
@@ -142,38 +96,43 @@ class DatePickerFoundation extends _foundation.default {
142
96
  *
143
97
  * If the user passes an empty value, you need to set the range input focus to rangeStart, so that the user can continue to select from the beginning after clearing
144
98
  */
145
-
146
-
147
99
  initRangeInputFocus(result) {
148
100
  const {
149
101
  triggerRender
150
102
  } = this.getProps();
151
-
152
103
  if (this._isRangeType() && (0, _isFunction2.default)(triggerRender) && result.length === 0) {
153
104
  this._adapter.setRangeInputFocus('rangeStart');
154
105
  }
155
106
  }
156
-
107
+ /**
108
+ * value 可能是 UTC value 也可能是 zoned value
109
+ *
110
+ * UTC value -> 受控传入的 value
111
+ *
112
+ * zoned value -> statue.value,保存的是当前计算机时区下选择的日期
113
+ *
114
+ * 如果是时区变化,则需要将旧 zoned value 转为新时区下的 zoned value
115
+ *
116
+ * 如果是 value 变化,则不需要传入之前的时区,将 UTC value 转为 zoned value 即可
117
+ *
118
+ */
157
119
  parseWithTimezone(value, timeZone, prevTimeZone) {
158
120
  const result = [];
159
-
160
121
  if (Array.isArray(value) && value.length) {
161
122
  for (const v of value) {
162
123
  let parsedV = (v || v === 0) && this._parseValue(v);
163
-
164
124
  if (parsedV) {
165
- if (this.isValidTimeZone(prevTimeZone)) {
125
+ if ((0, _isValidTimeZone.default)(prevTimeZone)) {
166
126
  parsedV = (0, _dateFnsExtra.zonedTimeToUtc)(parsedV, prevTimeZone);
167
127
  }
168
-
169
- result.push(this.isValidTimeZone(timeZone) ? (0, _dateFnsExtra.utcToZonedTime)(parsedV, timeZone) : parsedV);
128
+ result.push((0, _isValidTimeZone.default)(timeZone) ? (0, _dateFnsExtra.utcToZonedTime)(parsedV, timeZone) : parsedV);
129
+ } else {
130
+ (0, _warning.default)(true, `[Semi DatePicker] value cannot be parsed, value: ${String(v)}`);
170
131
  }
171
132
  }
172
133
  }
173
-
174
134
  return result;
175
135
  }
176
-
177
136
  _isMultiple() {
178
137
  return Boolean(this.getProp('multiple'));
179
138
  }
@@ -187,17 +146,12 @@ class DatePickerFoundation extends _foundation.default {
187
146
  Unified here to format the incoming value and output it as a Date object
188
147
  *
189
148
  */
190
-
191
-
192
149
  _parseValue(value) {
193
150
  const dateFnsLocale = this._adapter.getProp('dateFnsLocale');
194
-
195
151
  let dateObj;
196
-
197
152
  if (!value && value !== 0) {
198
153
  return new Date();
199
154
  }
200
-
201
155
  if ((0, _index.isValidDate)(value)) {
202
156
  dateObj = value;
203
157
  } else if ((0, _isString2.default)(value)) {
@@ -207,87 +161,37 @@ class DatePickerFoundation extends _foundation.default {
207
161
  } else {
208
162
  throw new TypeError('defaultValue should be valid Date object/timestamp or string');
209
163
  }
210
-
211
164
  return dateObj;
212
165
  }
213
-
214
166
  destroy() {
215
167
  // Ensure that event listeners will be uninstalled and users may not trigger closePanel
216
- // this._adapter.togglePanel(false);
168
+ this._adapter.togglePanel(false);
217
169
  this._adapter.unregisterClickOutSide();
218
170
  }
219
-
220
171
  initPanelOpenStatus(defaultOpen) {
221
172
  if ((this.getProp('open') || defaultOpen) && !this.getProp('disabled')) {
222
173
  this._adapter.togglePanel(true);
223
-
224
174
  this._adapter.registerClickOutSide();
225
175
  } else {
226
176
  this._adapter.togglePanel(false);
227
-
228
177
  this._adapter.unregisterClickOutSide();
229
178
  }
230
179
  }
231
-
232
180
  openPanel() {
233
181
  if (!this.getProp('disabled')) {
234
182
  if (!this._isControlledComponent('open')) {
235
- this._adapter.togglePanel(true);
236
-
237
- this._adapter.registerClickOutSide();
183
+ this.open();
238
184
  }
239
-
240
185
  this._adapter.notifyOpenChange(true);
241
186
  }
242
187
  }
243
- /**
244
- * do these side effects when type is dateRange or dateTimeRange
245
- * 1. trigger input blur, if input value is invalid, set input value and state value to previous status
246
- * 2. set cachedSelectedValue using given dates(in needConfirm mode)
247
- * - directly closePanel without click confirm will set cachedSelectedValue to state value
248
- * - select one date(which means that the selection value is incomplete) and click confirm also set cachedSelectedValue to state value
249
- */
250
-
251
-
252
- rangeTypeSideEffectsWhenClosePanel(inputValue, willUpdateDates) {
253
- if (this._isRangeType()) {
254
- this._adapter.setRangeInputFocus(false);
255
- /**
256
- * inputValue is string when it is not disabled or can't parsed
257
- * when inputValue is null, picker value will back to last selected value
258
- */
259
-
260
-
261
- this.handleInputBlur(inputValue);
262
- this.resetCachedSelectedValue(willUpdateDates);
263
- }
264
- }
265
- /**
266
- * clear input value when selected date is not confirmed
267
- */
268
-
269
-
270
- needConfirmSideEffectsWhenClosePanel(willUpdateDates) {
271
- if (this._adapter.needConfirm() && !this._isRangeType()) {
272
- /**
273
- * if `null` input element will show `cachedSelectedValue` formatted value(format in DateInput render)
274
- * if `` input element will show `` directly
275
- */
276
- this._adapter.updateInputValue(null);
277
-
278
- this.resetCachedSelectedValue(willUpdateDates);
279
- }
280
- }
281
188
  /**
282
189
  * clear inset input value when close panel
283
190
  */
284
-
285
-
286
191
  clearInsetInputValue() {
287
192
  const {
288
193
  insetInput
289
194
  } = this._adapter.getProps();
290
-
291
195
  if (insetInput) {
292
196
  this._adapter.updateInsetInputValue(null);
293
197
  }
@@ -295,16 +199,12 @@ class DatePickerFoundation extends _foundation.default {
295
199
  /**
296
200
  * call it when change state value or input value
297
201
  */
298
-
299
-
300
202
  resetCachedSelectedValue(willUpdateDates) {
301
203
  const {
302
204
  value,
303
205
  cachedSelectedValue
304
206
  } = this._adapter.getStates();
305
-
306
207
  const newCachedSelectedValue = Array.isArray(willUpdateDates) ? willUpdateDates : value;
307
-
308
208
  if (!(0, _isEqual2.default)(newCachedSelectedValue, cachedSelectedValue)) {
309
209
  this._adapter.updateCachedSelectedValue(newCachedSelectedValue);
310
210
  }
@@ -321,64 +221,117 @@ class DatePickerFoundation extends _foundation.default {
321
221
  * @param {String} inputValue
322
222
  * @param {Date[]} dates
323
223
  */
324
-
325
-
326
224
  closePanel(e) {
327
225
  let inputValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
328
226
  let dates = arguments.length > 2 ? arguments[2] : undefined;
329
-
330
227
  const {
331
228
  value
332
229
  } = this._adapter.getStates();
333
-
334
230
  const willUpdateDates = (0, _isNullOrUndefined.default)(dates) ? value : dates;
335
-
336
231
  if (!this._isControlledComponent('open')) {
337
- this._adapter.togglePanel(false);
338
-
339
- this._adapter.unregisterClickOutSide();
340
- } // range type picker, closing panel requires the following side effects
341
-
342
-
343
- this.rangeTypeSideEffectsWhenClosePanel(inputValue, willUpdateDates);
344
- this.needConfirmSideEffectsWhenClosePanel(willUpdateDates);
345
- this.clearInsetInputValue();
346
-
232
+ this.close();
233
+ } else {
234
+ this.resetInnerSelectedStates(willUpdateDates);
235
+ }
347
236
  this._adapter.notifyOpenChange(false);
348
-
237
+ }
238
+ open() {
239
+ this._adapter.togglePanel(true);
240
+ this._adapter.registerClickOutSide();
241
+ }
242
+ close() {
243
+ this._adapter.togglePanel(false, () => this.resetInnerSelectedStates());
244
+ this._adapter.unregisterClickOutSide();
245
+ }
246
+ focus(focusType) {
247
+ if (this._isRangeType()) {
248
+ const rangeInputFocus = focusType !== null && focusType !== void 0 ? focusType : 'rangeStart';
249
+ this._adapter.setRangeInputFocus(rangeInputFocus);
250
+ } else {
251
+ this._adapter.setInputFocus();
252
+ }
253
+ }
254
+ blur() {
255
+ if (this._isRangeType()) {
256
+ this._adapter.setRangeInputBlur();
257
+ } else {
258
+ this._adapter.setInputBlur();
259
+ }
260
+ }
261
+ /**
262
+ * reset cachedSelectedValue, inputValue when close panel
263
+ */
264
+ resetInnerSelectedStates(willUpdateDates) {
265
+ const {
266
+ value
267
+ } = this._adapter.getStates();
268
+ const needResetCachedSelectedValue = !this.isCachedSelectedValueValid(willUpdateDates) || this._adapter.needConfirm() && !this.clickConfirmButton;
269
+ if (needResetCachedSelectedValue) {
270
+ this.resetCachedSelectedValue(value);
271
+ }
272
+ this.resetFocus();
273
+ this.clearInputValue();
274
+ this.clickConfirmButton = false;
275
+ }
276
+ resetFocus(e) {
277
+ this._adapter.setRangeInputFocus(false);
349
278
  this._adapter.notifyBlur(e);
350
279
  }
280
+ /**
281
+ * cachedSelectedValue can be `(Date|null)[]` or `null`
282
+ */
283
+ isCachedSelectedValueValid(dates) {
284
+ const cachedSelectedValue = dates || this._adapter.getState('cachedSelectedValue');
285
+ const {
286
+ type
287
+ } = this._adapter.getProps();
288
+ let isValid = true;
289
+ switch (true) {
290
+ case type === 'dateRange':
291
+ case type === 'dateTimeRange':
292
+ if (!this._isRangeValueComplete(cachedSelectedValue)) {
293
+ isValid = false;
294
+ }
295
+ break;
296
+ default:
297
+ const value = cachedSelectedValue === null || cachedSelectedValue === void 0 ? void 0 : cachedSelectedValue.filter(item => item);
298
+ if (!(Array.isArray(value) && value.length)) {
299
+ isValid = false;
300
+ }
301
+ break;
302
+ }
303
+ return isValid;
304
+ }
305
+ /**
306
+ * 将输入框内容置空
307
+ */
308
+ clearInputValue() {
309
+ this._adapter.updateInputValue(null);
310
+ this._adapter.updateInsetInputValue(null);
311
+ }
351
312
  /**
352
313
  * Callback when the content of the input box changes
353
314
  * Update the date panel if the changed value is a legal date, otherwise only update the input box
354
315
  * @param {String} input The value of the input box after the change
355
316
  * @param {Event} e
356
317
  */
357
-
358
-
359
318
  handleInputChange(input, e) {
360
319
  const result = this._isMultiple() ? this.parseMultipleInput(input) : this.parseInput(input);
361
320
  const {
362
321
  value: stateValue
363
322
  } = this.getStates();
364
-
365
- this._updateCachedSelectedValueFromInput(input); // Enter a valid date or empty
366
-
367
-
323
+ this._updateCachedSelectedValueFromInput(input);
324
+ // Enter a valid date or empty
368
325
  if (result && result.length || input === '') {
369
326
  // If you click the clear button
370
327
  if ((0, _get2.default)(e, _constants2.strings.CLEARBTN_CLICKED_EVENT_FLAG) && this._isControlledComponent('value')) {
371
328
  this._notifyChange(result);
372
-
373
329
  return;
374
330
  }
375
-
376
- this._updateValueAndInput(result, input === '', input); // Updates the selected value when entering a valid date
377
-
378
-
331
+ this._updateValueAndInput(result, input === '', input);
332
+ // Updates the selected value when entering a valid date
379
333
  const changedDates = this._getChangedDates(result);
380
-
381
- if (!this._someDateDisabled(changedDates)) {
334
+ if (!this._someDateDisabled(changedDates, result)) {
382
335
  if (!(0, _isEqual2.default)(result, stateValue)) {
383
336
  this._notifyChange(result);
384
337
  }
@@ -393,55 +346,40 @@ class DatePickerFoundation extends _foundation.default {
393
346
  * - inputValue(可以解析为合法日期时)
394
347
  * - value(可以解析为合法日期时)
395
348
  */
396
-
397
-
398
349
  handleInsetInputChange(options) {
399
350
  const {
400
351
  insetInputStr,
401
352
  format,
402
353
  insetInputValue
403
354
  } = options;
404
-
405
355
  const _isMultiple = this._isMultiple();
406
-
407
356
  const result = _isMultiple ? this.parseMultipleInput(insetInputStr, format) : this.parseInput(insetInputStr, format);
408
357
  const {
409
358
  value: stateValue
410
359
  } = this.getStates();
411
-
412
360
  this._updateCachedSelectedValueFromInput(insetInputStr);
413
-
414
361
  if (result && result.length) {
415
362
  const changedDates = this._getChangedDates(result);
416
-
417
- if (!this._someDateDisabled(changedDates)) {
363
+ if (!this._someDateDisabled(changedDates, result)) {
418
364
  if (!(0, _isEqual2.default)(result, stateValue)) {
419
365
  if (!this._isControlledComponent() && !this._adapter.needConfirm()) {
420
366
  this._adapter.updateValue(result);
421
367
  }
422
-
423
368
  this._notifyChange(result);
424
369
  }
425
-
426
370
  const triggerInput = _isMultiple ? this.formatMultipleDates(result) : this.formatDates(result);
427
-
428
371
  this._adapter.updateInputValue(triggerInput);
429
372
  }
430
373
  }
431
-
432
374
  this._adapter.updateInsetInputValue(insetInputValue);
433
375
  }
434
376
  /**
435
377
  * when input change we reset cached selected value
436
378
  */
437
-
438
-
439
379
  _updateCachedSelectedValueFromInput(input) {
440
380
  const looseResult = this.getLooseDateFromInput(input);
441
-
442
381
  const changedLooseResult = this._getChangedDates(looseResult);
443
-
444
- if (!this._someDateDisabled(changedLooseResult)) {
382
+ if (!this._someDateDisabled(changedLooseResult, looseResult)) {
445
383
  this.resetCachedSelectedValue(looseResult);
446
384
  }
447
385
  }
@@ -450,43 +388,14 @@ class DatePickerFoundation extends _foundation.default {
450
388
  * @param {String} input
451
389
  * @param {Event} e
452
390
  */
453
-
454
-
455
391
  handleInputBlur() {
456
392
  let input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
457
393
  let e = arguments.length > 1 ? arguments[1] : undefined;
458
- const parsedResult = input ? this._isMultiple() ? this.parseMultipleInput(input, ',', true) : this.parseInput(input) : [];
459
- const stateValue = this.getState('value'); // console.log(input, parsedResult);
460
-
461
- if (parsedResult && parsedResult.length) {
462
- this._updateValueAndInput(parsedResult, input === '');
463
- } else if (input === '') {
464
- // if clear input, set input to `''`
465
- this._updateValueAndInput('', true, '');
466
- } else {
467
- this._updateValueAndInput(stateValue);
468
- }
469
- /**
470
- * 当不是范围类型且不需要确认时,使用 stateValue 重置 cachedSelectedValue
471
- * 这样做的目的是,在输入非法值时,使用上次选中的值作为已选值
472
- * needConfirm 或者 range type 时,我们在 close panel 时调用 resetCachedSelectedValue,这里不用重复调用
473
- *
474
- * Use stateValue to reset cachedSelectedValue when it is not a range type and does not require confirmation
475
- * The purpose of this is to use the last selected value as the selected value when an invalid value is entered
476
- * When needConfirm or range type, we call resetCachedSelectedValue when close panel, no need to call repeatedly here
477
- */
478
-
479
-
480
- if (!this._adapter.needConfirm() && !this._isRangeType()) {
481
- this.resetCachedSelectedValue(stateValue);
482
- }
483
394
  }
484
395
  /**
485
396
  * called when range type rangeEnd input tab press
486
397
  * @param {Event} e
487
398
  */
488
-
489
-
490
399
  handleRangeEndTabPress(e) {
491
400
  this._adapter.setRangeInputFocus(false);
492
401
  }
@@ -495,26 +404,20 @@ class DatePickerFoundation extends _foundation.default {
495
404
  * @param {Event} e input focus event
496
405
  * @param {String} range 'rangeStart' or 'rangeEnd', use when type is range
497
406
  */
498
-
499
-
500
407
  handleInputFocus(e, range) {
501
408
  const rangeInputFocus = this._adapter.getState('rangeInputFocus');
502
-
503
409
  range && this._adapter.setRangeInputFocus(range);
504
410
  /**
505
411
  * rangeType: only notify when range is false
506
412
  * not rangeType: notify when focus
507
413
  */
508
-
509
414
  if (!range || !['rangeStart', 'rangeEnd'].includes(rangeInputFocus)) {
510
415
  this._adapter.notifyFocus(e, range);
511
416
  }
512
417
  }
513
-
514
418
  handleSetRangeFocus(rangeInputFocus) {
515
419
  this._adapter.setRangeInputFocus(rangeInputFocus);
516
420
  }
517
-
518
421
  handleInputClear(e) {
519
422
  this._adapter.notifyClear(e);
520
423
  }
@@ -525,52 +428,40 @@ class DatePickerFoundation extends _foundation.default {
525
428
  * callback of range input clear button
526
429
  * Since the clear button is not integrated in Input, you need to manually clear value, inputValue, cachedValue
527
430
  */
528
-
529
-
530
431
  handleRangeInputClear(e) {
531
432
  const value = [];
532
433
  const inputValue = '';
533
-
534
434
  if (!this._isControlledComponent('value')) {
535
435
  this._updateValueAndInput(value, true, inputValue);
536
-
436
+ this._adapter.updateInsetInputValue(null);
537
437
  this.resetCachedSelectedValue(value);
538
438
  }
539
-
540
439
  this._notifyChange(value);
541
-
440
+ this._adapter.setRangeInputFocus(false);
542
441
  this._adapter.notifyClear(e);
543
- } // eslint-disable-next-line @typescript-eslint/no-empty-function
544
-
545
-
546
- handleRangeInputBlur(value, e) {} // Parses input only after user returns
547
-
548
-
442
+ }
443
+ handleRangeInputBlur(value, e) {}
444
+ // Parses input only after user returns
549
445
  handleInputComplete() {
550
446
  let input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
551
447
  // console.log(input);
552
448
  let parsedResult = input ? this._isMultiple() ? this.parseMultipleInput(input, ',', true) : this.parseInput(input) : [];
553
- parsedResult = parsedResult && parsedResult.length ? parsedResult : this.getState('value'); // Use the current date as the value when the current input is empty and the last input is also empty
554
-
449
+ parsedResult = parsedResult && parsedResult.length ? parsedResult : this.getState('value');
450
+ // Use the current date as the value when the current input is empty and the last input is also empty
555
451
  if (!parsedResult || !parsedResult.length) {
556
452
  const nowDate = new Date();
557
-
558
453
  if (this._isRangeType()) {
559
454
  parsedResult = [nowDate, nowDate];
560
455
  } else {
561
456
  parsedResult = [nowDate];
562
457
  }
563
458
  }
564
-
565
459
  this._updateValueAndInput(parsedResult);
566
-
567
460
  const {
568
461
  value: stateValue
569
462
  } = this.getStates();
570
-
571
463
  const changedDates = this._getChangedDates(parsedResult);
572
-
573
- if (!this._someDateDisabled(changedDates) && !(0, _isEqual2.default)(parsedResult, stateValue)) {
464
+ if (!this._someDateDisabled(changedDates, parsedResult) && !(0, _isEqual2.default)(parsedResult, stateValue)) {
574
465
  this._notifyChange(parsedResult);
575
466
  }
576
467
  }
@@ -581,39 +472,33 @@ class DatePickerFoundation extends _foundation.default {
581
472
  * @param {string} input
582
473
  * @returns {Date [] | '}
583
474
  */
584
-
585
-
586
475
  parseInput() {
587
476
  let input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
588
477
  let format = arguments.length > 1 ? arguments[1] : undefined;
589
- let result = []; // console.log(input);
590
-
478
+ let result = [];
479
+ // console.log(input);
591
480
  const {
592
481
  dateFnsLocale,
593
482
  rangeSeparator
594
483
  } = this.getProps();
595
-
596
484
  if (input && input.length) {
597
485
  const type = this.getProp('type');
598
486
  const formatToken = format || this.getProp('format') || (0, _getDefaultFormatToken.getDefaultFormatTokenByType)(type);
599
487
  let parsedResult, formatedInput;
600
488
  const nowDate = new Date();
601
-
602
489
  switch (type) {
603
490
  case 'date':
604
491
  case 'dateTime':
605
492
  case 'month':
606
493
  parsedResult = input ? (0, _parser.compatibleParse)(input, formatToken, nowDate, dateFnsLocale) : '';
607
494
  formatedInput = parsedResult && (0, _dateFns.isValid)(parsedResult) && this.localeFormat(parsedResult, formatToken);
608
-
609
495
  if (parsedResult && formatedInput === input) {
610
496
  result = [parsedResult];
611
497
  }
612
-
613
498
  break;
614
-
615
499
  case 'dateRange':
616
500
  case 'dateTimeRange':
501
+ case 'monthRange':
617
502
  const separator = rangeSeparator;
618
503
  const values = input.split(separator);
619
504
  parsedResult = values && values.reduce((arr, cur) => {
@@ -622,26 +507,20 @@ class DatePickerFoundation extends _foundation.default {
622
507
  return arr;
623
508
  }, []);
624
509
  formatedInput = parsedResult && parsedResult.map(v => v && (0, _dateFns.isValid)(v) && this.localeFormat(v, formatToken)).join(separator);
625
-
626
510
  if (parsedResult && formatedInput === input) {
627
511
  parsedResult.sort((d1, d2) => d1.getTime() - d2.getTime());
628
512
  result = parsedResult;
629
513
  }
630
-
631
514
  break;
632
-
633
515
  default:
634
516
  break;
635
517
  }
636
518
  }
637
-
638
519
  return result;
639
520
  }
640
521
  /**
641
522
  * get date which may include null from input
642
523
  */
643
-
644
-
645
524
  getLooseDateFromInput(input) {
646
525
  const value = this._isMultiple() ? this.parseMultipleInputLoose(input) : this.parseInputLoose(input);
647
526
  return value;
@@ -657,8 +536,6 @@ class DatePickerFoundation extends _foundation.default {
657
536
  * parseInputLoose('2022-03- ~ 2022-0'); // [null, null]
658
537
  * ```
659
538
  */
660
-
661
-
662
539
  parseInputLoose() {
663
540
  let input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
664
541
  let result = [];
@@ -668,64 +545,50 @@ class DatePickerFoundation extends _foundation.default {
668
545
  type,
669
546
  format
670
547
  } = this.getProps();
671
-
672
548
  if (input && input.length) {
673
549
  const formatToken = format || (0, _getDefaultFormatToken.getDefaultFormatTokenByType)(type);
674
550
  let parsedResult, formatedInput;
675
551
  const nowDate = new Date();
676
-
677
552
  switch (type) {
678
553
  case 'date':
679
554
  case 'dateTime':
680
555
  case 'month':
681
556
  const _parsedResult = (0, _parser.compatibleParse)(input, formatToken, nowDate, dateFnsLocale);
682
-
683
557
  if ((0, _index.isValidDate)(_parsedResult)) {
684
558
  formatedInput = this.localeFormat(_parsedResult, formatToken);
685
-
686
559
  if (formatedInput === input) {
687
560
  parsedResult = _parsedResult;
688
561
  }
689
562
  } else {
690
563
  parsedResult = null;
691
564
  }
692
-
693
565
  result = [parsedResult];
694
566
  break;
695
-
696
567
  case 'dateRange':
697
568
  case 'dateTimeRange':
698
569
  const separator = rangeSeparator;
699
570
  const values = input.split(separator);
700
571
  parsedResult = values && values.reduce((arr, cur) => {
701
572
  let parsedVal = null;
702
-
703
573
  const _parsedResult = (0, _parser.compatibleParse)(cur, formatToken, nowDate, dateFnsLocale);
704
-
705
574
  if ((0, _index.isValidDate)(_parsedResult)) {
706
575
  formatedInput = this.localeFormat(_parsedResult, formatToken);
707
-
708
576
  if (formatedInput === cur) {
709
577
  parsedVal = _parsedResult;
710
578
  }
711
579
  }
712
-
713
580
  arr.push(parsedVal);
714
581
  return arr;
715
582
  }, []);
716
-
717
583
  if (Array.isArray(parsedResult) && parsedResult.every(item => (0, _dateFns.isValid)(item))) {
718
584
  parsedResult.sort((d1, d2) => d1.getTime() - d2.getTime());
719
585
  }
720
-
721
586
  result = parsedResult;
722
587
  break;
723
-
724
588
  default:
725
589
  break;
726
590
  }
727
591
  }
728
-
729
592
  return result;
730
593
  }
731
594
  /**
@@ -738,8 +601,6 @@ class DatePickerFoundation extends _foundation.default {
738
601
  * parseMultipleInputLoose(''); // [];
739
602
  * ```
740
603
  */
741
-
742
-
743
604
  parseMultipleInputLoose() {
744
605
  let input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
745
606
  let separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _constants.strings.DEFAULT_SEPARATOR_MULTIPLE;
@@ -747,11 +608,9 @@ class DatePickerFoundation extends _foundation.default {
747
608
  const max = this.getProp('max');
748
609
  const inputArr = input.split(separator);
749
610
  const result = [];
750
-
751
611
  for (const curInput of inputArr) {
752
612
  let tmpParsed = curInput && this.parseInputLoose(curInput);
753
613
  tmpParsed = Array.isArray(tmpParsed) ? tmpParsed : tmpParsed && [tmpParsed];
754
-
755
614
  if (tmpParsed && tmpParsed.length) {
756
615
  if (needDedupe) {
757
616
  !result.filter(r => Boolean(tmpParsed.find(tp => (0, _dateFns.isSameSecond)(r, tp)))) && result.push(...tmpParsed);
@@ -761,12 +620,10 @@ class DatePickerFoundation extends _foundation.default {
761
620
  } else {
762
621
  return [];
763
622
  }
764
-
765
623
  if (max && max > 0 && result.length > max) {
766
624
  return [];
767
625
  }
768
626
  }
769
-
770
627
  return result;
771
628
  }
772
629
  /**
@@ -778,8 +635,6 @@ class DatePickerFoundation extends _foundation.default {
778
635
  * @param {boolean} [needDedupe=false]
779
636
  * @returns {Date[]}
780
637
  */
781
-
782
-
783
638
  parseMultipleInput() {
784
639
  let input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
785
640
  let separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _constants.strings.DEFAULT_SEPARATOR_MULTIPLE;
@@ -787,11 +642,9 @@ class DatePickerFoundation extends _foundation.default {
787
642
  const max = this.getProp('max');
788
643
  const inputArr = input.split(separator);
789
644
  const result = [];
790
-
791
645
  for (const curInput of inputArr) {
792
646
  let tmpParsed = curInput && this.parseInput(curInput);
793
647
  tmpParsed = Array.isArray(tmpParsed) ? tmpParsed : tmpParsed && [tmpParsed];
794
-
795
648
  if (tmpParsed && tmpParsed.length) {
796
649
  if (needDedupe) {
797
650
  // 20190519 TODO: needs to determine the case where multiple is true and range
@@ -802,12 +655,10 @@ class DatePickerFoundation extends _foundation.default {
802
655
  } else {
803
656
  return [];
804
657
  }
805
-
806
658
  if (max && max > 0 && result.length > max) {
807
659
  return [];
808
660
  }
809
661
  }
810
-
811
662
  return result;
812
663
  }
813
664
  /**
@@ -816,47 +667,39 @@ class DatePickerFoundation extends _foundation.default {
816
667
  * @param {Date[]} dates
817
668
  * @returns {string}
818
669
  */
819
-
820
-
821
670
  formatDates() {
822
671
  let dates = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
823
672
  let customFormat = arguments.length > 1 ? arguments[1] : undefined;
824
673
  let str = '';
825
674
  const rangeSeparator = this.getProp('rangeSeparator');
826
-
827
675
  if (Array.isArray(dates) && dates.length) {
828
676
  const type = this.getProp('type');
829
677
  const formatToken = customFormat || this.getProp('format') || (0, _getDefaultFormatToken.getDefaultFormatTokenByType)(type);
830
-
831
678
  switch (type) {
832
679
  case 'date':
833
680
  case 'dateTime':
834
681
  case 'month':
835
682
  str = this.localeFormat(dates[0], formatToken);
836
683
  break;
837
-
838
684
  case 'dateRange':
839
685
  case 'dateTimeRange':
686
+ case 'monthRange':
840
687
  const startIsTruthy = !(0, _isNullOrUndefined.default)(dates[0]);
841
688
  const endIsTruthy = !(0, _isNullOrUndefined.default)(dates[1]);
842
-
843
689
  if (startIsTruthy && endIsTruthy) {
844
- str = "".concat(this.localeFormat(dates[0], formatToken)).concat(rangeSeparator).concat(this.localeFormat(dates[1], formatToken));
690
+ str = `${this.localeFormat(dates[0], formatToken)}${rangeSeparator}${this.localeFormat(dates[1], formatToken)}`;
845
691
  } else {
846
692
  if (startIsTruthy) {
847
- str = "".concat(this.localeFormat(dates[0], formatToken)).concat(rangeSeparator);
693
+ str = `${this.localeFormat(dates[0], formatToken)}${rangeSeparator}`;
848
694
  } else if (endIsTruthy) {
849
- str = "".concat(rangeSeparator).concat(this.localeFormat(dates[1], formatToken));
695
+ str = `${rangeSeparator}${this.localeFormat(dates[1], formatToken)}`;
850
696
  }
851
697
  }
852
-
853
698
  break;
854
-
855
699
  default:
856
700
  break;
857
701
  }
858
702
  }
859
-
860
703
  return str;
861
704
  }
862
705
  /**
@@ -865,37 +708,30 @@ class DatePickerFoundation extends _foundation.default {
865
708
  * @param {Date[]} dates
866
709
  * @returns {string}
867
710
  */
868
-
869
-
870
711
  formatMultipleDates() {
871
712
  let dates = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
872
713
  let separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _constants.strings.DEFAULT_SEPARATOR_MULTIPLE;
873
714
  let customFormat = arguments.length > 2 ? arguments[2] : undefined;
874
715
  const strs = [];
875
-
876
716
  if (Array.isArray(dates) && dates.length) {
877
717
  const type = this.getProp('type');
878
-
879
718
  switch (type) {
880
719
  case 'date':
881
720
  case 'dateTime':
882
721
  case 'month':
883
722
  dates.forEach(date => strs.push(this.formatDates([date], customFormat)));
884
723
  break;
885
-
886
724
  case 'dateRange':
887
725
  case 'dateTimeRange':
726
+ case 'monthRange':
888
727
  for (let i = 0; i < dates.length; i += 2) {
889
728
  strs.push(this.formatDates(dates.slice(i, i + 2), customFormat));
890
729
  }
891
-
892
730
  break;
893
-
894
731
  default:
895
732
  break;
896
733
  }
897
734
  }
898
-
899
735
  return strs.join(separator);
900
736
  }
901
737
  /**
@@ -906,26 +742,20 @@ class DatePickerFoundation extends _foundation.default {
906
742
  * @param {Boolean} forceUpdateValue
907
743
  * @param {String} input
908
744
  */
909
-
910
-
911
745
  _updateValueAndInput(value, forceUpdateValue, input) {
912
746
  let _value;
913
-
914
747
  if (forceUpdateValue || value) {
915
748
  if (!Array.isArray(value)) {
916
749
  _value = value ? [value] : [];
917
750
  } else {
918
751
  _value = value;
919
752
  }
920
-
921
- const changedDates = this._getChangedDates(_value); // You cannot update the value directly when needConfirm, you can only change the value through handleConfirm
922
-
923
-
924
- if (!this._isControlledComponent() && !this._someDateDisabled(changedDates) && !this._adapter.needConfirm()) {
753
+ const changedDates = this._getChangedDates(_value);
754
+ // You cannot update the value directly when needConfirm, you can only change the value through handleConfirm
755
+ if (!this._isControlledComponent() && !this._someDateDisabled(changedDates, _value) && !this._adapter.needConfirm()) {
925
756
  this._adapter.updateValue(_value);
926
757
  }
927
758
  }
928
-
929
759
  this._adapter.updateInputValue(input);
930
760
  }
931
761
  /**
@@ -933,8 +763,6 @@ class DatePickerFoundation extends _foundation.default {
933
763
  * @param {*} value
934
764
  * @param {*} options
935
765
  */
936
-
937
-
938
766
  handleSelectedChange(value, options) {
939
767
  const {
940
768
  type,
@@ -942,13 +770,10 @@ class DatePickerFoundation extends _foundation.default {
942
770
  rangeSeparator,
943
771
  insetInput
944
772
  } = this._adapter.getProps();
945
-
946
773
  const {
947
774
  value: stateValue
948
775
  } = this.getStates();
949
-
950
776
  const controlled = this._isControlledComponent();
951
-
952
777
  const fromPreset = (0, _isObject2.default)(options) ? options.fromPreset : options;
953
778
  const closePanel = (0, _get2.default)(options, 'closePanel', true);
954
779
  /**
@@ -956,18 +781,13 @@ class DatePickerFoundation extends _foundation.default {
956
781
  * To determine whether both starting Time and endTime have been selected, it is used to judge whether the two inputs have been Focused.
957
782
  * This variable is used to indicate whether such a judgment is required. In the scene with shortcut operations, it is not required.
958
783
  */
959
-
960
784
  const needCheckFocusRecord = (0, _get2.default)(options, 'needCheckFocusRecord', true);
961
785
  const dates = Array.isArray(value) ? [...value] : value ? [value] : [];
962
-
963
786
  const changedDates = this._getChangedDates(dates);
964
-
965
787
  let inputValue, insetInputValue;
966
-
967
- if (!this._someDateDisabled(changedDates)) {
788
+ if (!this._someDateDisabled(changedDates, dates)) {
968
789
  this.resetCachedSelectedValue(dates);
969
790
  inputValue = this._isMultiple() ? this.formatMultipleDates(dates) : this.formatDates(dates);
970
-
971
791
  if (insetInput) {
972
792
  const insetInputFormatToken = (0, _getInsetInputFormatToken.default)({
973
793
  format,
@@ -980,7 +800,6 @@ class DatePickerFoundation extends _foundation.default {
980
800
  rangeSeparator
981
801
  });
982
802
  }
983
-
984
803
  const isRangeTypeAndInputIncomplete = this._isRangeType() && !this._isRangeValueComplete(dates);
985
804
  /**
986
805
  * If the input is incomplete when under control, the notifyChange is not triggered because
@@ -989,53 +808,30 @@ class DatePickerFoundation extends _foundation.default {
989
808
  * 受控时如果输入不完整,由于没有触发 notifyChange
990
809
  * 需要组件内更新一下输入框的值,否则会出现选了一个日期但是输入框没有回显日期的问题 #1357
991
810
  */
992
-
993
- if (!this._adapter.needConfirm() || fromPreset) {
994
- if (isRangeTypeAndInputIncomplete) {
995
- // do not change value when selected value is incomplete
996
- this._adapter.updateInputValue(inputValue);
997
-
998
- this._adapter.updateInsetInputValue(insetInputValue);
999
-
1000
- return;
1001
- } else {
1002
- if (!controlled || fromPreset) {
1003
- this._updateValueAndInput(dates, true, inputValue);
1004
-
1005
- this._adapter.updateInsetInputValue(insetInputValue);
1006
- }
1007
- }
1008
- }
1009
-
1010
- if (!controlled && this._adapter.needConfirm()) {
1011
- // select date only change inputValue when needConfirm is true
811
+ if (isRangeTypeAndInputIncomplete) {
812
+ // do not change value when selected value is incomplete
1012
813
  this._adapter.updateInputValue(inputValue);
1013
-
1014
- this._adapter.updateInsetInputValue(insetInputValue); // if inputValue is not complete, don't notifyChange
1015
-
1016
-
1017
- if (isRangeTypeAndInputIncomplete) {
1018
- return;
814
+ this._adapter.updateInsetInputValue(insetInputValue);
815
+ return;
816
+ } else {
817
+ if (!controlled || fromPreset) {
818
+ this._updateValueAndInput(dates, true, inputValue);
819
+ this._adapter.updateInsetInputValue(insetInputValue);
1019
820
  }
1020
821
  }
1021
-
1022
822
  if (!(0, _isEqual2.default)(value, stateValue)) {
1023
823
  this._notifyChange(value);
1024
824
  }
1025
825
  }
1026
-
1027
826
  const focusRecordChecked = !needCheckFocusRecord || needCheckFocusRecord && this._adapter.couldPanelClosed();
1028
-
1029
827
  if (type === 'date' && !this._isMultiple() && closePanel || type === 'dateRange' && this._isRangeValueComplete(dates) && closePanel && focusRecordChecked) {
1030
828
  this.closePanel(undefined, inputValue, dates);
1031
829
  }
1032
830
  }
1033
831
  /**
1034
- * when changing the year and month through the panel when the type is year or month
832
+ * when changing the year and month through the panel when the type is year or month or monthRange
1035
833
  * @param {*} item
1036
834
  */
1037
-
1038
-
1039
835
  handleYMSelectedChange() {
1040
836
  let item = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1041
837
  // console.log(item);
@@ -1043,41 +839,39 @@ class DatePickerFoundation extends _foundation.default {
1043
839
  currentMonth,
1044
840
  currentYear
1045
841
  } = item;
1046
-
1047
- if (typeof currentMonth === 'number' && typeof currentYear === 'number') {
1048
- // Strings with only dates (e.g. "1970-01-01") will be treated as UTC instead of local time #1460
1049
- const date = new Date(currentYear, currentMonth - 1);
842
+ const {
843
+ type
844
+ } = this.getProps();
845
+ if (type === 'month') {
846
+ const date = new Date(currentYear['left'], currentMonth['left'] - 1);
1050
847
  this.handleSelectedChange([date]);
848
+ } else {
849
+ const dateLeft = new Date(currentYear['left'], currentMonth['left'] - 1);
850
+ const dateRight = new Date(currentYear['right'], currentMonth['right'] - 1);
851
+ this.handleSelectedChange([dateLeft, dateRight]);
1051
852
  }
1052
853
  }
1053
-
1054
854
  handleConfirm() {
855
+ this.clickConfirmButton = true;
1055
856
  const {
1056
857
  cachedSelectedValue,
1057
858
  value
1058
859
  } = this._adapter.getStates();
1059
-
1060
860
  const isRangeValueComplete = this._isRangeValueComplete(cachedSelectedValue);
1061
-
1062
861
  const newValue = isRangeValueComplete ? cachedSelectedValue : value;
1063
-
1064
862
  if (this._adapter.needConfirm() && !this._isControlledComponent()) {
1065
863
  this._adapter.updateValue(newValue);
1066
- } // If the input is incomplete, the legal date of the last input is used
1067
-
1068
-
864
+ }
865
+ // If the input is incomplete, the legal date of the last input is used
1069
866
  this.closePanel(undefined, undefined, newValue);
1070
-
1071
867
  if (isRangeValueComplete) {
1072
868
  const {
1073
869
  notifyValue,
1074
870
  notifyDate
1075
871
  } = this.disposeCallbackArgs(cachedSelectedValue);
1076
-
1077
872
  this._adapter.notifyConfirm(notifyDate, notifyValue);
1078
873
  }
1079
874
  }
1080
-
1081
875
  handleCancel() {
1082
876
  this.closePanel();
1083
877
  const value = this.getState('value');
@@ -1085,38 +879,34 @@ class DatePickerFoundation extends _foundation.default {
1085
879
  notifyValue,
1086
880
  notifyDate
1087
881
  } = this.disposeCallbackArgs(value);
1088
-
1089
882
  this._adapter.notifyCancel(notifyDate, notifyValue);
1090
883
  }
1091
-
1092
884
  handlePresetClick(item, e) {
1093
885
  const {
1094
886
  type,
1095
887
  timeZone
1096
888
  } = this.getProps();
1097
889
  const prevTimeZone = this.getState('prevTimezone');
890
+ const start = typeof item.start === 'function' ? item.start() : item.start;
891
+ const end = typeof item.end === 'function' ? item.end() : item.end;
1098
892
  let value;
1099
-
1100
893
  switch (type) {
1101
894
  case 'month':
1102
895
  case 'dateTime':
1103
896
  case 'date':
1104
- value = this.parseWithTimezone([item.start], timeZone, prevTimeZone);
897
+ value = this.parseWithTimezone([start], timeZone, prevTimeZone);
1105
898
  this.handleSelectedChange(value);
1106
899
  break;
1107
-
1108
900
  case 'dateTimeRange':
1109
901
  case 'dateRange':
1110
- value = this.parseWithTimezone([item.start, item.end], timeZone, prevTimeZone);
902
+ value = this.parseWithTimezone([start, end], timeZone, prevTimeZone);
1111
903
  this.handleSelectedChange(value, {
1112
904
  needCheckFocusRecord: false
1113
905
  });
1114
906
  break;
1115
-
1116
907
  default:
1117
908
  break;
1118
909
  }
1119
-
1120
910
  this._adapter.notifyPresetsClick(item, e);
1121
911
  }
1122
912
  /**
@@ -1147,20 +937,15 @@ class DatePickerFoundation extends _foundation.default {
1147
937
  * @param {Date|Date[]} value
1148
938
  * @return {{ notifyDate: Date|Date[], notifyValue: string|string[]}}
1149
939
  */
1150
-
1151
-
1152
940
  disposeCallbackArgs(value) {
1153
941
  let _value = Array.isArray(value) ? value : value && [value] || [];
1154
-
1155
- if (this.isValidTimeZone()) {
1156
- const timeZone = this.getProp('timeZone');
942
+ const timeZone = this.getProp('timeZone');
943
+ if ((0, _isValidTimeZone.default)(timeZone)) {
1157
944
  _value = _value.map(date => (0, _dateFnsExtra.zonedTimeToUtc)(date, timeZone));
1158
945
  }
1159
-
1160
946
  const type = this.getProp('type');
1161
947
  const formatToken = this.getProp('format') || (0, _getDefaultFormatToken.getDefaultFormatTokenByType)(type);
1162
948
  let notifyValue, notifyDate;
1163
-
1164
949
  switch (type) {
1165
950
  case 'date':
1166
951
  case 'dateTime':
@@ -1172,19 +957,16 @@ class DatePickerFoundation extends _foundation.default {
1172
957
  notifyValue = _value.map(v => v && this.localeFormat(v, formatToken));
1173
958
  notifyDate = [..._value];
1174
959
  }
1175
-
1176
960
  break;
1177
-
1178
961
  case 'dateRange':
1179
962
  case 'dateTimeRange':
963
+ case 'monthRange':
1180
964
  notifyValue = _value.map(v => v && this.localeFormat(v, formatToken));
1181
965
  notifyDate = [..._value];
1182
966
  break;
1183
-
1184
967
  default:
1185
968
  break;
1186
969
  }
1187
-
1188
970
  return {
1189
971
  notifyValue,
1190
972
  notifyDate
@@ -1194,13 +976,10 @@ class DatePickerFoundation extends _foundation.default {
1194
976
  * Notice: Check whether the date is the same as the state value before calling
1195
977
  * @param {Date[]} value
1196
978
  */
1197
-
1198
-
1199
979
  _notifyChange(value) {
1200
980
  if (this._isRangeType() && !this._isRangeValueComplete(value)) {
1201
981
  return;
1202
982
  }
1203
-
1204
983
  const {
1205
984
  onChangeWithDateFirst
1206
985
  } = this.getProps();
@@ -1208,7 +987,6 @@ class DatePickerFoundation extends _foundation.default {
1208
987
  notifyValue,
1209
988
  notifyDate
1210
989
  } = this.disposeCallbackArgs(value);
1211
-
1212
990
  if (onChangeWithDateFirst) {
1213
991
  this._adapter.notifyChange(notifyDate, notifyValue);
1214
992
  } else {
@@ -1217,56 +995,42 @@ class DatePickerFoundation extends _foundation.default {
1217
995
  }
1218
996
  /**
1219
997
  * Get the date changed through the date panel or enter
1220
- * @param {Date[]} dates
1221
- * @returns {Date[]}
1222
998
  */
1223
-
1224
-
1225
999
  _getChangedDates(dates) {
1226
1000
  const type = this._adapter.getProp('type');
1227
-
1228
- const stateValue = this._adapter.getState('value');
1229
-
1001
+ const {
1002
+ cachedSelectedValue: lastDate
1003
+ } = this._adapter.getStates();
1230
1004
  const changedDates = [];
1231
-
1232
1005
  switch (type) {
1233
1006
  case 'dateRange':
1234
1007
  case 'dateTimeRange':
1235
- const [stateStart, stateEnd] = stateValue;
1008
+ const [lastStart, lastEnd] = lastDate;
1236
1009
  const [start, end] = dates;
1237
-
1238
- if (!(0, _dateFns.isEqual)(start, stateStart)) {
1010
+ if (!(0, _dateFns.isEqual)(start, lastStart)) {
1239
1011
  changedDates.push(start);
1240
1012
  }
1241
-
1242
- if (!(0, _dateFns.isEqual)(end, stateEnd)) {
1013
+ if (!(0, _dateFns.isEqual)(end, lastEnd)) {
1243
1014
  changedDates.push(end);
1244
1015
  }
1245
-
1246
1016
  break;
1247
-
1248
1017
  default:
1249
- const stateValueSet = new Set();
1250
- stateValue.forEach(value => stateValueSet.add((0, _dateFns.isDate)(value) && value.valueOf()));
1251
-
1018
+ const lastValueSet = new Set();
1019
+ lastDate.forEach(value => lastValueSet.add((0, _dateFns.isDate)(value) && value.valueOf()));
1252
1020
  for (const date of dates) {
1253
- if (!stateValueSet.has((0, _dateFns.isDate)(date) && date.valueOf())) {
1021
+ if (!lastValueSet.has((0, _dateFns.isDate)(date) && date.valueOf())) {
1254
1022
  changedDates.push(date);
1255
1023
  }
1256
1024
  }
1257
-
1258
1025
  }
1259
-
1260
1026
  return changedDates;
1261
1027
  }
1262
1028
  /**
1263
1029
  * Whether a date is disabled
1264
- * @param {Array} value
1030
+ * @param value The date that needs to be judged whether to disable
1031
+ * @param selectedValue Selected date, when selecting a range, pass this date to the second parameter of `disabledDate`
1265
1032
  */
1266
-
1267
-
1268
- _someDateDisabled(value) {
1269
- const stateValue = this.getState('value');
1033
+ _someDateDisabled(value, selectedValue) {
1270
1034
  const {
1271
1035
  rangeInputFocus
1272
1036
  } = this.getStates();
@@ -1274,22 +1038,19 @@ class DatePickerFoundation extends _foundation.default {
1274
1038
  rangeStart: '',
1275
1039
  rangeEnd: '',
1276
1040
  rangeInputFocus
1277
- }; // DisabledDate needs to pass the second parameter
1278
-
1279
- if (this._isRangeType() && Array.isArray(stateValue)) {
1280
- if ((0, _dateFns.isValid)(stateValue[0])) {
1281
- const rangeStart = (0, _dateFns.format)(stateValue[0], 'yyyy-MM-dd');
1041
+ };
1042
+ // DisabledDate needs to pass the second parameter
1043
+ if (this._isRangeType() && Array.isArray(selectedValue)) {
1044
+ if ((0, _dateFns.isValid)(selectedValue[0])) {
1045
+ const rangeStart = (0, _dateFns.format)(selectedValue[0], 'yyyy-MM-dd');
1282
1046
  disabledOptions.rangeStart = rangeStart;
1283
1047
  }
1284
-
1285
- if ((0, _dateFns.isValid)(stateValue[1])) {
1286
- const rangeEnd = (0, _dateFns.format)(stateValue[1], 'yyyy-MM-dd');
1048
+ if ((0, _dateFns.isValid)(selectedValue[1])) {
1049
+ const rangeEnd = (0, _dateFns.format)(selectedValue[1], 'yyyy-MM-dd');
1287
1050
  disabledOptions.rangeEnd = rangeEnd;
1288
1051
  }
1289
1052
  }
1290
-
1291
1053
  let isSomeDateDisabled = false;
1292
-
1293
1054
  for (const date of value) {
1294
1055
  // skip check if date is null
1295
1056
  if (!(0, _isNullOrUndefined.default)(date) && this.disabledDisposeDate(date, disabledOptions)) {
@@ -1297,7 +1058,6 @@ class DatePickerFoundation extends _foundation.default {
1297
1058
  break;
1298
1059
  }
1299
1060
  }
1300
-
1301
1061
  return isSomeDateDisabled;
1302
1062
  }
1303
1063
  /**
@@ -1306,11 +1066,8 @@ class DatePickerFoundation extends _foundation.default {
1306
1066
  * @param {Date} date
1307
1067
  * @param {String} token
1308
1068
  */
1309
-
1310
-
1311
1069
  localeFormat(date, token) {
1312
1070
  const dateFnsLocale = this._adapter.getProp('dateFnsLocale');
1313
-
1314
1071
  return (0, _dateFns.format)(date, token, {
1315
1072
  locale: dateFnsLocale
1316
1073
  });
@@ -1324,8 +1081,6 @@ class DatePickerFoundation extends _foundation.default {
1324
1081
  * @param {Date|Date[]} date
1325
1082
  * @returns {Boolean}
1326
1083
  */
1327
-
1328
-
1329
1084
  disposeDateFn(fn, date) {
1330
1085
  const {
1331
1086
  notifyDate
@@ -1333,17 +1088,14 @@ class DatePickerFoundation extends _foundation.default {
1333
1088
  const dateIsArray = Array.isArray(date);
1334
1089
  const notifyDateIsArray = Array.isArray(notifyDate);
1335
1090
  let disposeDate;
1336
-
1337
1091
  if (dateIsArray === notifyDateIsArray) {
1338
1092
  disposeDate = notifyDate;
1339
1093
  } else {
1340
1094
  disposeDate = dateIsArray ? [notifyDate] : notifyDate[0];
1341
1095
  }
1342
-
1343
1096
  for (var _len = arguments.length, rest = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
1344
1097
  rest[_key - 2] = arguments[_key];
1345
1098
  }
1346
-
1347
1099
  return fn(disposeDate, ...rest);
1348
1100
  }
1349
1101
  /**
@@ -1352,17 +1104,13 @@ class DatePickerFoundation extends _foundation.default {
1352
1104
  * @param {Date} date
1353
1105
  * @returns {Boolean}
1354
1106
  */
1355
-
1356
-
1357
1107
  disabledDisposeDate(date) {
1358
1108
  const {
1359
1109
  disabledDate
1360
1110
  } = this.getProps();
1361
-
1362
1111
  for (var _len2 = arguments.length, rest = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
1363
1112
  rest[_key2 - 1] = arguments[_key2];
1364
1113
  }
1365
-
1366
1114
  return this.disposeDateFn(disabledDate, date, ...rest);
1367
1115
  }
1368
1116
  /**
@@ -1371,17 +1119,13 @@ class DatePickerFoundation extends _foundation.default {
1371
1119
  * @param {Date|Date[]} date
1372
1120
  * @returns {Object}
1373
1121
  */
1374
-
1375
-
1376
1122
  disabledDisposeTime(date) {
1377
1123
  const {
1378
1124
  disabledTime
1379
1125
  } = this.getProps();
1380
-
1381
1126
  for (var _len3 = arguments.length, rest = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
1382
1127
  rest[_key3 - 1] = arguments[_key3];
1383
1128
  }
1384
-
1385
1129
  return this.disposeDateFn(disabledTime, date, ...rest);
1386
1130
  }
1387
1131
  /**
@@ -1392,18 +1136,14 @@ class DatePickerFoundation extends _foundation.default {
1392
1136
  * @param {Event} e
1393
1137
  * @returns
1394
1138
  */
1395
-
1396
-
1397
1139
  handleTriggerWrapperClick(e) {
1398
1140
  const {
1399
1141
  disabled,
1400
1142
  triggerRender
1401
1143
  } = this._adapter.getProps();
1402
-
1403
1144
  const {
1404
1145
  rangeInputFocus
1405
1146
  } = this._adapter.getStates();
1406
-
1407
1147
  if (disabled) {
1408
1148
  return;
1409
1149
  }
@@ -1414,8 +1154,6 @@ class DatePickerFoundation extends _foundation.default {
1414
1154
  * - When type is not range type, Input component will automatically focus in the same case
1415
1155
  * - isEventTarget is used to judge whether the event is a bubbling event
1416
1156
  */
1417
-
1418
-
1419
1157
  if (this._isRangeType() && !rangeInputFocus) {
1420
1158
  if (this._adapter.isEventTarget(e)) {
1421
1159
  setTimeout(() => {
@@ -1427,13 +1165,11 @@ class DatePickerFoundation extends _foundation.default {
1427
1165
  // If it is a triggerRender scene, because there is no input, the default focus is rangeStart when the panel is opened
1428
1166
  this._adapter.setRangeInputFocus('rangeStart');
1429
1167
  }
1430
-
1431
1168
  this.openPanel();
1432
1169
  } else {
1433
1170
  this.openPanel();
1434
1171
  }
1435
1172
  }
1436
-
1437
1173
  handlePanelVisibleChange(visible) {
1438
1174
  if (visible) {
1439
1175
  this._adapter.setInsetInputFocus();
@@ -1441,8 +1177,6 @@ class DatePickerFoundation extends _foundation.default {
1441
1177
  * After the panel is closed, the trigger input is disabled
1442
1178
  * 面板关闭后,trigger input 禁用
1443
1179
  */
1444
-
1445
-
1446
1180
  setTimeout(() => {
1447
1181
  this._adapter.setTriggerDisabled(true);
1448
1182
  }, 0);
@@ -1450,7 +1184,5 @@ class DatePickerFoundation extends _foundation.default {
1450
1184
  this._adapter.setTriggerDisabled(false);
1451
1185
  }
1452
1186
  }
1453
-
1454
1187
  }
1455
-
1456
1188
  exports.default = DatePickerFoundation;