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