@douyinfe/semi-foundation 2.24.2 → 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 -434
  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 -420
  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 +70 -32
  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
@@ -1,5 +1,3 @@
1
- /* eslint-disable no-nested-ternary */
2
- /* eslint-disable max-len, max-depth, */
3
1
  import { format, isValid, isSameSecond, isEqual as isDateEqual, isDate } from 'date-fns';
4
2
  import { get, isObject, isString, isEqual, isFunction } from 'lodash';
5
3
 
@@ -19,6 +17,8 @@ import type { ArrayElement, Motion } from '../utils/type';
19
17
  import type { Type, DateInputFoundationProps, InsetInputValue } from './inputFoundation';
20
18
  import type { MonthsGridFoundationProps } from './monthsGridFoundation';
21
19
  import type { WeekStartNumber } from './_utils/getMonthTable';
20
+ import isValidTimeZone from './_utils/isValidTimeZone';
21
+ import warning from '../utils/warning';
22
22
 
23
23
  export type ValidateStatus = ArrayElement<typeof strings.STATUS>;
24
24
  export type InputSize = ArrayElement<typeof strings.SIZE_SET>;
@@ -46,9 +46,10 @@ export type DisabledDateOptions = {
46
46
  */
47
47
  rangeInputFocus?: 'rangeStart' | 'rangeEnd' | false
48
48
  };
49
+
49
50
  export type PresetType = {
50
- start?: string | Date | number;
51
- end?: string | Date | number;
51
+ start?: BaseValueType | (() => BaseValueType);
52
+ end?: BaseValueType | (() => BaseValueType);
52
53
  text?: string
53
54
  };
54
55
 
@@ -109,19 +110,18 @@ export interface EventHandlerProps {
109
110
  onPanelChange?: OnPanelChangeType;
110
111
  onConfirm?: OnConfirmType;
111
112
  // properties below need overwrite
112
- // onBlur?: React.MouseEventHandler<HTMLInputElement>;
113
113
  onBlur?: (e: any) => void;
114
- // onClear?: React.MouseEventHandler<HTMLDivElement>;
115
114
  onClear?: (e: any) => void;
116
- // onFocus?: React.MouseEventHandler<HTMLInputElement>;
117
115
  onFocus?: (e: any, rangType: RangeType) => void;
118
- onPresetClick?: OnPresetClickType
116
+ onPresetClick?: OnPresetClickType;
117
+ onClickOutSide?: () => void
119
118
  }
120
119
 
121
- export interface DatePickerFoundationProps extends ElementProps, RenderProps, EventHandlerProps {
120
+ export interface DatePickerFoundationProps extends ElementProps, RenderProps, EventHandlerProps, Pick<MonthsGridFoundationProps, 'startYear' | 'endYear'> {
122
121
  autoAdjustOverflow?: boolean;
123
122
  autoFocus?: boolean;
124
123
  autoSwitchDate?: boolean;
124
+ borderless?: boolean;
125
125
  className?: string;
126
126
  defaultOpen?: boolean;
127
127
  defaultPickerValue?: ValueType;
@@ -168,19 +168,22 @@ export interface DatePickerFoundationProps extends ElementProps, RenderProps, Ev
168
168
  dateFnsLocale?: any;
169
169
  localeCode?: string;
170
170
  rangeSeparator?: string;
171
- insetInput?: boolean;
171
+ insetInput?: DateInputFoundationProps['insetInput'];
172
172
  preventScroll?: boolean
173
173
  }
174
174
 
175
175
  export interface DatePickerFoundationState {
176
176
  panelShow: boolean;
177
177
  isRange: boolean;
178
+ /** value of trigger input */
178
179
  inputValue: string;
179
180
  value: Date[];
180
- cachedSelectedValue: Date[];
181
+ // Save last selected date, maybe include null
182
+ cachedSelectedValue: (Date | null)[];
181
183
  prevTimeZone: string | number;
182
184
  rangeInputFocus: RangeType;
183
185
  autofocus: boolean;
186
+ /** value of inset input */
184
187
  insetInputValue: InsetInputValue;
185
188
  triggerDisabled: boolean
186
189
  }
@@ -188,7 +191,7 @@ export interface DatePickerFoundationState {
188
191
  export { Type, DateInputFoundationProps };
189
192
 
190
193
  export interface DatePickerAdapter extends DefaultAdapter<DatePickerFoundationProps, DatePickerFoundationState> {
191
- togglePanel: (panelShow: boolean) => void;
194
+ togglePanel: (panelShow: boolean, cb?: () => void) => void;
192
195
  registerClickOutSide: () => void;
193
196
  unregisterClickOutSide: () => void;
194
197
  notifyBlur: DatePickerFoundationProps['onBlur'];
@@ -210,7 +213,10 @@ export interface DatePickerAdapter extends DefaultAdapter<DatePickerFoundationPr
210
213
  isEventTarget: (e: any) => boolean;
211
214
  updateInsetInputValue: (insetInputValue: InsetInputValue) => void;
212
215
  setInsetInputFocus: () => void;
213
- setTriggerDisabled: (disabled: boolean) => void
216
+ setTriggerDisabled: (disabled: boolean) => void;
217
+ setInputFocus: () => void;
218
+ setInputBlur: () => void;
219
+ setRangeInputBlur: () => void
214
220
  }
215
221
 
216
222
 
@@ -221,6 +227,7 @@ export interface DatePickerAdapter extends DefaultAdapter<DatePickerFoundationPr
221
227
  */
222
228
  export default class DatePickerFoundation extends BaseFoundation<DatePickerAdapter> {
223
229
 
230
+ clickConfirmButton: boolean;
224
231
  constructor(adapter: DatePickerAdapter) {
225
232
  super({ ...adapter });
226
233
  }
@@ -236,19 +243,13 @@ export default class DatePickerFoundation extends BaseFoundation<DatePickerAdapt
236
243
  this.initPanelOpenStatus(this.getProp('defaultOpen'));
237
244
  }
238
245
 
239
- isValidTimeZone(timeZone?: string | number) {
240
- const propTimeZone = this.getProp('timeZone');
241
- const _timeZone = isNullOrUndefined(timeZone) ? propTimeZone : timeZone;
242
-
243
- return ['string', 'number'].includes(typeof _timeZone) && _timeZone !== '';
244
- }
245
-
246
246
  initFromProps({ value, timeZone, prevTimeZone }: Pick<DatePickerFoundationProps, 'value' | 'timeZone'> & { prevTimeZone?: string | number }) {
247
247
  const _value = (Array.isArray(value) ? [...value] : (value || value === 0) && [value]) || [];
248
248
 
249
249
  const result = this.parseWithTimezone(_value, timeZone, prevTimeZone);
250
250
  this._adapter.updatePrevTimezone(prevTimeZone);
251
- this._adapter.updateInputValue(null);
251
+ // reset input value when value update
252
+ this.clearInputValue();
252
253
  this._adapter.updateValue(result);
253
254
  this.resetCachedSelectedValue(result);
254
255
  this.initRangeInputFocus(result);
@@ -270,17 +271,30 @@ export default class DatePickerFoundation extends BaseFoundation<DatePickerAdapt
270
271
  }
271
272
  }
272
273
 
274
+ /**
275
+ * value 可能是 UTC value 也可能是 zoned value
276
+ *
277
+ * UTC value -> 受控传入的 value
278
+ *
279
+ * zoned value -> statue.value,保存的是当前计算机时区下选择的日期
280
+ *
281
+ * 如果是时区变化,则需要将旧 zoned value 转为新时区下的 zoned value
282
+ *
283
+ * 如果是 value 变化,则不需要传入之前的时区,将 UTC value 转为 zoned value 即可
284
+ *
285
+ */
273
286
  parseWithTimezone(value: ValueType, timeZone: string | number, prevTimeZone: string | number) {
274
287
  const result: Date[] = [];
275
288
  if (Array.isArray(value) && value.length) {
276
289
  for (const v of value) {
277
290
  let parsedV = (v || v === 0) && this._parseValue(v);
278
291
  if (parsedV) {
279
- if (this.isValidTimeZone(prevTimeZone)) {
280
- parsedV = zonedTimeToUtc(parsedV, prevTimeZone as string);
292
+ if (isValidTimeZone(prevTimeZone)) {
293
+ parsedV = zonedTimeToUtc(parsedV, prevTimeZone);
281
294
  }
282
-
283
- result.push(this.isValidTimeZone(timeZone) ? utcToZonedTime(parsedV, timeZone as string) : parsedV);
295
+ result.push(isValidTimeZone(timeZone) ? utcToZonedTime(parsedV, timeZone) : parsedV);
296
+ } else {
297
+ warning(true, `[Semi DatePicker] value cannot be parsed, value: ${String(v)}`);
284
298
  }
285
299
  }
286
300
  }
@@ -323,7 +337,7 @@ export default class DatePickerFoundation extends BaseFoundation<DatePickerAdapt
323
337
 
324
338
  destroy() {
325
339
  // Ensure that event listeners will be uninstalled and users may not trigger closePanel
326
- // this._adapter.togglePanel(false);
340
+ this._adapter.togglePanel(false);
327
341
  this._adapter.unregisterClickOutSide();
328
342
  }
329
343
 
@@ -340,46 +354,12 @@ export default class DatePickerFoundation extends BaseFoundation<DatePickerAdapt
340
354
  openPanel() {
341
355
  if (!this.getProp('disabled')) {
342
356
  if (!this._isControlledComponent('open')) {
343
- this._adapter.togglePanel(true);
344
- this._adapter.registerClickOutSide();
357
+ this.open();
345
358
  }
346
359
  this._adapter.notifyOpenChange(true);
347
360
  }
348
361
  }
349
362
 
350
- /**
351
- * do these side effects when type is dateRange or dateTimeRange
352
- * 1. trigger input blur, if input value is invalid, set input value and state value to previous status
353
- * 2. set cachedSelectedValue using given dates(in needConfirm mode)
354
- * - directly closePanel without click confirm will set cachedSelectedValue to state value
355
- * - select one date(which means that the selection value is incomplete) and click confirm also set cachedSelectedValue to state value
356
- */
357
- rangeTypeSideEffectsWhenClosePanel(inputValue: string, willUpdateDates: Date[]) {
358
- if (this._isRangeType()) {
359
- this._adapter.setRangeInputFocus(false);
360
- /**
361
- * inputValue is string when it is not disabled or can't parsed
362
- * when inputValue is null, picker value will back to last selected value
363
- */
364
- this.handleInputBlur(inputValue);
365
- this.resetCachedSelectedValue(willUpdateDates);
366
- }
367
- }
368
-
369
- /**
370
- * clear input value when selected date is not confirmed
371
- */
372
- needConfirmSideEffectsWhenClosePanel(willUpdateDates: Date[] | null | undefined) {
373
- if (this._adapter.needConfirm() && !this._isRangeType()) {
374
- /**
375
- * if `null` input element will show `cachedSelectedValue` formatted value(format in DateInput render)
376
- * if `` input element will show `` directly
377
- */
378
- this._adapter.updateInputValue(null);
379
- this.resetCachedSelectedValue(willUpdateDates);
380
- }
381
- }
382
-
383
363
  /**
384
364
  * clear inset input value when close panel
385
365
  */
@@ -417,17 +397,92 @@ export default class DatePickerFoundation extends BaseFoundation<DatePickerAdapt
417
397
  const { value } = this._adapter.getStates();
418
398
  const willUpdateDates = isNullOrUndefined(dates) ? value : dates;
419
399
  if (!this._isControlledComponent('open')) {
420
- this._adapter.togglePanel(false);
421
- this._adapter.unregisterClickOutSide();
400
+ this.close();
401
+ } else {
402
+ this.resetInnerSelectedStates(willUpdateDates);
422
403
  }
423
- // range type picker, closing panel requires the following side effects
424
- this.rangeTypeSideEffectsWhenClosePanel(inputValue, willUpdateDates as Date[]);
425
- this.needConfirmSideEffectsWhenClosePanel(willUpdateDates as Date[]);
426
- this.clearInsetInputValue();
427
404
  this._adapter.notifyOpenChange(false);
405
+ }
406
+
407
+ open() {
408
+ this._adapter.togglePanel(true);
409
+ this._adapter.registerClickOutSide();
410
+ }
411
+
412
+ close() {
413
+ this._adapter.togglePanel(false, () => this.resetInnerSelectedStates());
414
+ this._adapter.unregisterClickOutSide();
415
+ }
416
+
417
+ focus(focusType?: Exclude<RangeType, false>) {
418
+ if (this._isRangeType()) {
419
+ const rangeInputFocus = focusType ?? 'rangeStart';
420
+ this._adapter.setRangeInputFocus(rangeInputFocus);
421
+ } else {
422
+ this._adapter.setInputFocus();
423
+ }
424
+ }
425
+
426
+ blur() {
427
+ if (this._isRangeType()) {
428
+ this._adapter.setRangeInputBlur();
429
+ } else {
430
+ this._adapter.setInputBlur();
431
+ }
432
+ }
433
+
434
+ /**
435
+ * reset cachedSelectedValue, inputValue when close panel
436
+ */
437
+ resetInnerSelectedStates(willUpdateDates?: Date[]) {
438
+ const { value } = this._adapter.getStates();
439
+ const needResetCachedSelectedValue = !this.isCachedSelectedValueValid(willUpdateDates) || this._adapter.needConfirm() && !this.clickConfirmButton;
440
+ if (needResetCachedSelectedValue) {
441
+ this.resetCachedSelectedValue(value);
442
+ }
443
+ this.resetFocus();
444
+ this.clearInputValue();
445
+ this.clickConfirmButton = false;
446
+ }
447
+
448
+ resetFocus(e?: any) {
449
+ this._adapter.setRangeInputFocus(false);
428
450
  this._adapter.notifyBlur(e);
429
451
  }
430
452
 
453
+ /**
454
+ * cachedSelectedValue can be `(Date|null)[]` or `null`
455
+ */
456
+ isCachedSelectedValueValid(dates: Date[]) {
457
+ const cachedSelectedValue = dates || this._adapter.getState('cachedSelectedValue');
458
+ const { type } = this._adapter.getProps();
459
+ let isValid = true;
460
+ switch (true) {
461
+ case type === 'dateRange':
462
+ case type === 'dateTimeRange':
463
+ if (!this._isRangeValueComplete(cachedSelectedValue)) {
464
+ isValid = false;
465
+ }
466
+ break;
467
+ default:
468
+ const value = cachedSelectedValue?.filter(item => item);
469
+ if (!(Array.isArray(value) && value.length)) {
470
+ isValid = false;
471
+ }
472
+ break;
473
+ }
474
+ return isValid;
475
+ }
476
+
477
+ /**
478
+ * 将输入框内容置空
479
+ */
480
+ clearInputValue() {
481
+ this._adapter.updateInputValue(null);
482
+ this._adapter.updateInsetInputValue(null);
483
+ }
484
+
485
+
431
486
  /**
432
487
  * clear range input focus when open is controlled
433
488
  * fixed github 1375
@@ -460,7 +515,7 @@ export default class DatePickerFoundation extends BaseFoundation<DatePickerAdapt
460
515
  this._updateValueAndInput(result, input === '', input);
461
516
  // Updates the selected value when entering a valid date
462
517
  const changedDates = this._getChangedDates(result);
463
- if (!this._someDateDisabled(changedDates)) {
518
+ if (!this._someDateDisabled(changedDates, result)) {
464
519
  if (!isEqual(result, stateValue)) {
465
520
  this._notifyChange(result);
466
521
  }
@@ -485,7 +540,7 @@ export default class DatePickerFoundation extends BaseFoundation<DatePickerAdapt
485
540
 
486
541
  if ((result && result.length)) {
487
542
  const changedDates = this._getChangedDates(result);
488
- if (!this._someDateDisabled(changedDates)) {
543
+ if (!this._someDateDisabled(changedDates, result)) {
489
544
  if (!isEqual(result, stateValue)) {
490
545
  if (!this._isControlledComponent() && !this._adapter.needConfirm()) {
491
546
  this._adapter.updateValue(result);
@@ -505,7 +560,7 @@ export default class DatePickerFoundation extends BaseFoundation<DatePickerAdapt
505
560
  _updateCachedSelectedValueFromInput(input: string) {
506
561
  const looseResult = this.getLooseDateFromInput(input);
507
562
  const changedLooseResult = this._getChangedDates(looseResult);
508
- if (!this._someDateDisabled(changedLooseResult)) {
563
+ if (!this._someDateDisabled(changedLooseResult, looseResult)) {
509
564
  this.resetCachedSelectedValue(looseResult);
510
565
  }
511
566
  }
@@ -516,37 +571,6 @@ export default class DatePickerFoundation extends BaseFoundation<DatePickerAdapt
516
571
  * @param {Event} e
517
572
  */
518
573
  handleInputBlur(input = '', e?: any) {
519
- const parsedResult = input ?
520
- this._isMultiple() ?
521
- this.parseMultipleInput(input, ',', true) :
522
- this.parseInput(input) :
523
- [];
524
-
525
- const stateValue = this.getState('value');
526
-
527
- // console.log(input, parsedResult);
528
-
529
- if (parsedResult && parsedResult.length) {
530
- this._updateValueAndInput(parsedResult, input === '');
531
- } else if (input === '') {
532
- // if clear input, set input to `''`
533
- this._updateValueAndInput('' as any, true, '');
534
- } else {
535
- this._updateValueAndInput(stateValue);
536
- }
537
-
538
- /**
539
- * 当不是范围类型且不需要确认时,使用 stateValue 重置 cachedSelectedValue
540
- * 这样做的目的是,在输入非法值时,使用上次选中的值作为已选值
541
- * needConfirm 或者 range type 时,我们在 close panel 时调用 resetCachedSelectedValue,这里不用重复调用
542
- *
543
- * Use stateValue to reset cachedSelectedValue when it is not a range type and does not require confirmation
544
- * The purpose of this is to use the last selected value as the selected value when an invalid value is entered
545
- * When needConfirm or range type, we call resetCachedSelectedValue when close panel, no need to call repeatedly here
546
- */
547
- if (!this._adapter.needConfirm() && !this._isRangeType()) {
548
- this.resetCachedSelectedValue(stateValue);
549
- }
550
574
  }
551
575
 
552
576
  /**
@@ -594,12 +618,14 @@ export default class DatePickerFoundation extends BaseFoundation<DatePickerAdapt
594
618
  const inputValue = '';
595
619
  if (!this._isControlledComponent('value')) {
596
620
  this._updateValueAndInput(value, true, inputValue);
621
+ this._adapter.updateInsetInputValue(null);
597
622
  this.resetCachedSelectedValue(value);
598
623
  }
599
624
  this._notifyChange(value);
625
+ this._adapter.setRangeInputFocus(false);
600
626
  this._adapter.notifyClear(e);
601
627
  }
602
- // eslint-disable-next-line @typescript-eslint/no-empty-function
628
+
603
629
  handleRangeInputBlur(value: any, e: any) {
604
630
  }
605
631
 
@@ -627,7 +653,7 @@ export default class DatePickerFoundation extends BaseFoundation<DatePickerAdapt
627
653
  this._updateValueAndInput(parsedResult);
628
654
  const { value: stateValue } = this.getStates();
629
655
  const changedDates = this._getChangedDates(parsedResult);
630
- if (!this._someDateDisabled(changedDates) && !isEqual(parsedResult, stateValue)) {
656
+ if (!this._someDateDisabled(changedDates, parsedResult) && !isEqual(parsedResult, stateValue)) {
631
657
  this._notifyChange(parsedResult);
632
658
  }
633
659
  }
@@ -662,6 +688,7 @@ export default class DatePickerFoundation extends BaseFoundation<DatePickerAdapt
662
688
  break;
663
689
  case 'dateRange':
664
690
  case 'dateTimeRange':
691
+ case 'monthRange':
665
692
  const separator = rangeSeparator;
666
693
  const values = input.split(separator);
667
694
  parsedResult =
@@ -855,6 +882,7 @@ export default class DatePickerFoundation extends BaseFoundation<DatePickerAdapt
855
882
 
856
883
  case 'dateRange':
857
884
  case 'dateTimeRange':
885
+ case 'monthRange':
858
886
  const startIsTruthy = !isNullOrUndefined(dates[0]);
859
887
  const endIsTruthy = !isNullOrUndefined(dates[1]);
860
888
  if (startIsTruthy && endIsTruthy) {
@@ -894,6 +922,7 @@ export default class DatePickerFoundation extends BaseFoundation<DatePickerAdapt
894
922
  break;
895
923
  case 'dateRange':
896
924
  case 'dateTimeRange':
925
+ case 'monthRange':
897
926
  for (let i = 0; i < dates.length; i += 2) {
898
927
  strs.push(this.formatDates(dates.slice(i, i + 2), customFormat));
899
928
  }
@@ -924,7 +953,7 @@ export default class DatePickerFoundation extends BaseFoundation<DatePickerAdapt
924
953
 
925
954
  const changedDates = this._getChangedDates(_value);
926
955
  // You cannot update the value directly when needConfirm, you can only change the value through handleConfirm
927
- if (!this._isControlledComponent() && !this._someDateDisabled(changedDates) && !this._adapter.needConfirm()) {
956
+ if (!this._isControlledComponent() && !this._someDateDisabled(changedDates, _value) && !this._adapter.needConfirm()) {
928
957
  this._adapter.updateValue(_value);
929
958
  }
930
959
  }
@@ -953,7 +982,7 @@ export default class DatePickerFoundation extends BaseFoundation<DatePickerAdapt
953
982
  const changedDates = this._getChangedDates(dates);
954
983
 
955
984
  let inputValue, insetInputValue;
956
- if (!this._someDateDisabled(changedDates)) {
985
+ if (!this._someDateDisabled(changedDates, dates)) {
957
986
  this.resetCachedSelectedValue(dates);
958
987
  inputValue = this._isMultiple() ? this.formatMultipleDates(dates) : this.formatDates(dates);
959
988
  if (insetInput) {
@@ -969,26 +998,15 @@ export default class DatePickerFoundation extends BaseFoundation<DatePickerAdapt
969
998
  * 受控时如果输入不完整,由于没有触发 notifyChange
970
999
  * 需要组件内更新一下输入框的值,否则会出现选了一个日期但是输入框没有回显日期的问题 #1357
971
1000
  */
972
- if (!this._adapter.needConfirm() || fromPreset) {
973
- if (isRangeTypeAndInputIncomplete) {
974
- // do not change value when selected value is incomplete
975
- this._adapter.updateInputValue(inputValue);
976
- this._adapter.updateInsetInputValue(insetInputValue);
977
- return;
978
- } else {
979
- if (!controlled || fromPreset) {
980
- this._updateValueAndInput(dates, true, inputValue);
981
- this._adapter.updateInsetInputValue(insetInputValue);
982
- }
983
- }
984
- }
985
- if (!controlled && this._adapter.needConfirm()) {
986
- // select date only change inputValue when needConfirm is true
1001
+ if (isRangeTypeAndInputIncomplete) {
1002
+ // do not change value when selected value is incomplete
987
1003
  this._adapter.updateInputValue(inputValue);
988
1004
  this._adapter.updateInsetInputValue(insetInputValue);
989
- // if inputValue is not complete, don't notifyChange
990
- if (isRangeTypeAndInputIncomplete) {
991
- return;
1005
+ return;
1006
+ } else {
1007
+ if (!controlled || fromPreset) {
1008
+ this._updateValueAndInput(dates, true, inputValue);
1009
+ this._adapter.updateInsetInputValue(insetInputValue);
992
1010
  }
993
1011
  }
994
1012
  if (!isEqual(value, stateValue)) {
@@ -1003,22 +1021,29 @@ export default class DatePickerFoundation extends BaseFoundation<DatePickerAdapt
1003
1021
  }
1004
1022
 
1005
1023
  /**
1006
- * when changing the year and month through the panel when the type is year or month
1024
+ * when changing the year and month through the panel when the type is year or month or monthRange
1007
1025
  * @param {*} item
1008
1026
  */
1009
- handleYMSelectedChange(item: { currentMonth?: number; currentYear?: number } = {}) {
1027
+ handleYMSelectedChange(item: { currentMonth?: { left: number; right: number }; currentYear?: { left: number; right: number } } = {}) {
1010
1028
  // console.log(item);
1011
1029
  const { currentMonth, currentYear } = item;
1030
+ const { type } = this.getProps();
1012
1031
 
1013
- if (typeof currentMonth === 'number' && typeof currentYear === 'number') {
1014
- // Strings with only dates (e.g. "1970-01-01") will be treated as UTC instead of local time #1460
1015
- const date = new Date(currentYear, currentMonth - 1);
1032
+ if (type === 'month') {
1033
+ const date = new Date(currentYear['left'], currentMonth['left'] - 1);
1016
1034
 
1017
1035
  this.handleSelectedChange([date]);
1036
+ } else {
1037
+ const dateLeft = new Date(currentYear['left'], currentMonth['left'] - 1);
1038
+ const dateRight = new Date(currentYear['right'], currentMonth['right'] - 1);
1039
+
1040
+ this.handleSelectedChange([dateLeft, dateRight]);
1041
+
1018
1042
  }
1019
1043
  }
1020
1044
 
1021
1045
  handleConfirm() {
1046
+ this.clickConfirmButton = true;
1022
1047
  const { cachedSelectedValue, value } = this._adapter.getStates();
1023
1048
  const isRangeValueComplete = this._isRangeValueComplete(cachedSelectedValue);
1024
1049
  const newValue = isRangeValueComplete ? cachedSelectedValue : value;
@@ -1044,18 +1069,20 @@ export default class DatePickerFoundation extends BaseFoundation<DatePickerAdapt
1044
1069
  handlePresetClick(item: PresetType, e: any) {
1045
1070
  const { type, timeZone } = this.getProps();
1046
1071
  const prevTimeZone = this.getState('prevTimezone');
1072
+ const start = typeof item.start === 'function' ? item.start() : item.start;
1073
+ const end = typeof item.end === 'function' ? item.end() : item.end;
1047
1074
 
1048
1075
  let value;
1049
1076
  switch (type) {
1050
1077
  case 'month':
1051
1078
  case 'dateTime':
1052
1079
  case 'date':
1053
- value = this.parseWithTimezone([item.start], timeZone, prevTimeZone);
1080
+ value = this.parseWithTimezone([start], timeZone, prevTimeZone);
1054
1081
  this.handleSelectedChange(value);
1055
1082
  break;
1056
1083
  case 'dateTimeRange':
1057
1084
  case 'dateRange':
1058
- value = this.parseWithTimezone([item.start, item.end], timeZone, prevTimeZone);
1085
+ value = this.parseWithTimezone([start, end], timeZone, prevTimeZone);
1059
1086
  this.handleSelectedChange(value, { needCheckFocusRecord: false });
1060
1087
  break;
1061
1088
  default:
@@ -1094,9 +1121,9 @@ export default class DatePickerFoundation extends BaseFoundation<DatePickerAdapt
1094
1121
  */
1095
1122
  disposeCallbackArgs(value: Date | Date[]) {
1096
1123
  let _value = Array.isArray(value) ? value : (value && [value]) || [];
1124
+ const timeZone = this.getProp('timeZone');
1097
1125
 
1098
- if (this.isValidTimeZone()) {
1099
- const timeZone = this.getProp('timeZone');
1126
+ if (isValidTimeZone(timeZone)) {
1100
1127
  _value = _value.map(date => zonedTimeToUtc(date, timeZone));
1101
1128
  }
1102
1129
  const type = this.getProp('type');
@@ -1118,6 +1145,7 @@ export default class DatePickerFoundation extends BaseFoundation<DatePickerAdapt
1118
1145
  break;
1119
1146
  case 'dateRange':
1120
1147
  case 'dateTimeRange':
1148
+ case 'monthRange':
1121
1149
  notifyValue = _value.map(v => v && this.localeFormat(v, formatToken));
1122
1150
  notifyDate = [..._value];
1123
1151
  break;
@@ -1150,32 +1178,29 @@ export default class DatePickerFoundation extends BaseFoundation<DatePickerAdapt
1150
1178
 
1151
1179
  /**
1152
1180
  * Get the date changed through the date panel or enter
1153
- * @param {Date[]} dates
1154
- * @returns {Date[]}
1155
1181
  */
1156
1182
  _getChangedDates(dates: Date[]) {
1157
1183
  const type = this._adapter.getProp('type');
1158
- const stateValue: Date[] = this._adapter.getState('value');
1159
-
1184
+ const { cachedSelectedValue: lastDate } = this._adapter.getStates();
1160
1185
  const changedDates = [];
1161
1186
 
1162
1187
  switch (type) {
1163
1188
  case 'dateRange':
1164
1189
  case 'dateTimeRange':
1165
- const [stateStart, stateEnd] = stateValue;
1190
+ const [lastStart, lastEnd] = lastDate;
1166
1191
  const [start, end] = dates;
1167
- if (!isDateEqual(start, stateStart)) {
1192
+ if (!isDateEqual(start, lastStart)) {
1168
1193
  changedDates.push(start);
1169
1194
  }
1170
- if (!isDateEqual(end, stateEnd)) {
1195
+ if (!isDateEqual(end, lastEnd)) {
1171
1196
  changedDates.push(end);
1172
1197
  }
1173
1198
  break;
1174
1199
  default:
1175
- const stateValueSet = new Set<number>();
1176
- stateValue.forEach(value => stateValueSet.add(isDate(value) && value.valueOf()));
1200
+ const lastValueSet = new Set<number>();
1201
+ lastDate.forEach(value => lastValueSet.add(isDate(value) && value.valueOf()));
1177
1202
  for (const date of dates) {
1178
- if (!stateValueSet.has(isDate(date) && date.valueOf())) {
1203
+ if (!lastValueSet.has(isDate(date) && date.valueOf())) {
1179
1204
  changedDates.push(date);
1180
1205
  }
1181
1206
  }
@@ -1185,22 +1210,22 @@ export default class DatePickerFoundation extends BaseFoundation<DatePickerAdapt
1185
1210
 
1186
1211
  /**
1187
1212
  * Whether a date is disabled
1188
- * @param {Array} value
1213
+ * @param value The date that needs to be judged whether to disable
1214
+ * @param selectedValue Selected date, when selecting a range, pass this date to the second parameter of `disabledDate`
1189
1215
  */
1190
- _someDateDisabled(value: Date[]) {
1191
- const stateValue = this.getState('value');
1216
+ _someDateDisabled(value: Date[], selectedValue: Date[]) {
1192
1217
  const { rangeInputFocus } = this.getStates();
1193
1218
  const disabledOptions = { rangeStart: '', rangeEnd: '', rangeInputFocus };
1194
1219
 
1195
1220
  // DisabledDate needs to pass the second parameter
1196
- if (this._isRangeType() && Array.isArray(stateValue)) {
1197
- if (isValid(stateValue[0])) {
1198
- const rangeStart = format(stateValue[0], 'yyyy-MM-dd');
1221
+ if (this._isRangeType() && Array.isArray(selectedValue)) {
1222
+ if (isValid(selectedValue[0])) {
1223
+ const rangeStart = format(selectedValue[0], 'yyyy-MM-dd');
1199
1224
  disabledOptions.rangeStart = rangeStart;
1200
1225
  }
1201
1226
 
1202
- if (isValid(stateValue[1])) {
1203
- const rangeEnd = format(stateValue[1], 'yyyy-MM-dd');
1227
+ if (isValid(selectedValue[1])) {
1228
+ const rangeEnd = format(selectedValue[1], 'yyyy-MM-dd');
1204
1229
  disabledOptions.rangeEnd = rangeEnd;
1205
1230
  }
1206
1231
  }