@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 _omit2 = _interopRequireDefault(require("lodash/omit"));
9
+
10
+ var _isEqual2 = _interopRequireDefault(require("lodash/isEqual"));
11
+
12
+ var _isString2 = _interopRequireDefault(require("lodash/isString"));
13
+
14
+ var _isNumber2 = _interopRequireDefault(require("lodash/isNumber"));
15
+
16
+ var _foundation = _interopRequireDefault(require("../base/foundation"));
17
+
18
+ var _keyCode = _interopRequireWildcard(require("../utils/keyCode"));
19
+
20
+ var _warning = _interopRequireDefault(require("../utils/warning"));
21
+
22
+ var _isNullOrUndefined = _interopRequireDefault(require("../utils/isNullOrUndefined"));
23
+
24
+ var _isEnterPress = _interopRequireDefault(require("../utils/isEnterPress"));
25
+
26
+ var _a11y = require("../utils/a11y");
27
+
28
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
29
+
30
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
+
32
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
+
34
+ var __rest = void 0 && (void 0).__rest || function (s, e) {
35
+ var t = {};
36
+
37
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
38
+
39
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
40
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
41
+ }
42
+ return t;
43
+ };
44
+ /* argus-disable unPkgSensitiveInfo */
45
+
46
+ /* eslint-disable max-len */
47
+
48
+
49
+ class SelectFoundation extends _foundation.default {
50
+ constructor(adapter) {
51
+ super(Object.assign({}, adapter)); // keyboard event listner
52
+ // eslint-disable-next-line @typescript-eslint/member-ordering
53
+
54
+ this._keydownHandler = null;
55
+ }
56
+
57
+ init() {
58
+ this._setDropdownWidth();
59
+
60
+ const isDefaultOpen = this.getProp('defaultOpen');
61
+ const isOpen = this.getProp('open');
62
+
63
+ const originalOptions = this._collectOptions();
64
+
65
+ this._setDefaultSelection(originalOptions);
66
+
67
+ if (isDefaultOpen || isOpen) {
68
+ this.open(undefined, originalOptions);
69
+ }
70
+
71
+ const autoFocus = this.getProp('autoFocus');
72
+
73
+ if (autoFocus) {
74
+ this.focus();
75
+ }
76
+ }
77
+
78
+ focus() {
79
+ const isFilterable = this._isFilterable();
80
+
81
+ const isMultiple = this._isMultiple();
82
+
83
+ this._adapter.updateFocusState(true);
84
+
85
+ this._adapter.setIsFocusInContainer(false);
86
+
87
+ if (isFilterable && isMultiple) {
88
+ // when filter and multiple, only focus input
89
+ this.focusInput();
90
+ } else if (isFilterable && !isMultiple) {
91
+ // when filter and not multiple, only show input and focus input
92
+ this.toggle2SearchInput(true);
93
+ } else {
94
+ this._focusTrigger();
95
+ }
96
+ }
97
+
98
+ _focusTrigger() {
99
+ this._adapter.focusTrigger(); // this.bindKeyBoardEvent();
100
+
101
+ }
102
+
103
+ destroy() {
104
+ this._adapter.unregisterClickOutsideHandler(); // this.unBindKeyBoardEvent();
105
+
106
+ }
107
+
108
+ _setDropdownWidth() {
109
+ const {
110
+ style,
111
+ dropdownMatchSelectWidth
112
+ } = this.getProps();
113
+ let width;
114
+
115
+ if (dropdownMatchSelectWidth) {
116
+ if (style && (0, _isNumber2.default)(style.width)) {
117
+ width = style.width;
118
+ } else if (style && (0, _isString2.default)(style.width) && !style.width.includes('%')) {
119
+ width = style.width;
120
+ } else {
121
+ width = this._adapter.getTriggerWidth();
122
+ }
123
+
124
+ this._adapter.setOptionWrapperWidth(width);
125
+ }
126
+ }
127
+
128
+ _collectOptions() {
129
+ const originalOptions = this._adapter.getOptionsFromChildren();
130
+
131
+ this._adapter.updateOptions(originalOptions); // Reposition the drop-down layer
132
+
133
+
134
+ this._adapter.rePositionDropdown();
135
+
136
+ return originalOptions;
137
+ }
138
+
139
+ _setDefaultSelection(originalOptions) {
140
+ let {
141
+ value
142
+ } = this.getProps();
143
+ const {
144
+ defaultValue
145
+ } = this.getProps();
146
+
147
+ if (this._isControlledComponent()) {// do nothing
148
+ } else {
149
+ value = defaultValue;
150
+ }
151
+
152
+ this._update(value, originalOptions);
153
+ } // call when props.optionList change
154
+
155
+
156
+ handleOptionListChange() {
157
+ const newOptionList = this._collectOptions();
158
+
159
+ const {
160
+ selections
161
+ } = this.getStates();
162
+ this.updateOptionsActiveStatus(selections, newOptionList); // reset focusIndex
163
+
164
+ const {
165
+ defaultActiveFirstOption
166
+ } = this.getProps();
167
+
168
+ if (defaultActiveFirstOption) {
169
+ this._adapter.updateFocusIndex(0);
170
+ }
171
+ } // In uncontrolled mode, when props.optionList change,
172
+ // but already had defaultValue or choose some option
173
+
174
+
175
+ handleOptionListChangeHadDefaultValue() {
176
+ const selections = this.getState('selections');
177
+ let value;
178
+ const {
179
+ onChangeWithObject
180
+ } = this.getProps();
181
+
182
+ const isMultiple = this._isMultiple();
183
+
184
+ switch (true) {
185
+ case isMultiple && Boolean(selections.size):
186
+ try {
187
+ value = [...selections].map(item => // At this point item1 is directly the object
188
+ onChangeWithObject ? item[1] : item[1].value);
189
+ } catch (error) {
190
+ value = [];
191
+ }
192
+
193
+ break;
194
+
195
+ case isMultiple && !selections.size:
196
+ value = [];
197
+ break;
198
+
199
+ case !isMultiple && Boolean(selections.size):
200
+ try {
201
+ value = onChangeWithObject ? [...selections][0][1] : [...selections][0][1].value;
202
+ } catch (error) {}
203
+
204
+ break;
205
+
206
+ case !isMultiple && !selections.size:
207
+ break;
208
+
209
+ default:
210
+ break;
211
+ }
212
+
213
+ const originalOptions = this._adapter.getOptionsFromChildren();
214
+
215
+ this._update(value, originalOptions);
216
+ } // call when props.value change
217
+
218
+
219
+ handleValueChange(value) {
220
+ const {
221
+ allowCreate,
222
+ autoClearSearchValue
223
+ } = this.getProps();
224
+ const {
225
+ inputValue
226
+ } = this.getStates();
227
+ let originalOptions; // AllowCreate and controlled mode, no need to re-collect optionList
228
+
229
+ if (allowCreate && this._isControlledComponent()) {
230
+ originalOptions = this.getState('options');
231
+ originalOptions.forEach(item => item._show = true);
232
+ } else {
233
+ // originalOptions = this.getState('options');
234
+ // The options in state cannot be used directly here,
235
+ // because it is possible to update the optionList and props.value at the same time, and the options in state are still old at this time
236
+ originalOptions = this._adapter.getOptionsFromChildren();
237
+ } // Multi-selection, controlled mode, you need to reposition the drop-down menu after updating
238
+
239
+
240
+ this._adapter.rePositionDropdown();
241
+
242
+ if (this._isFilterable() && !autoClearSearchValue && inputValue) {
243
+ originalOptions = this._filterOption(originalOptions, inputValue);
244
+ }
245
+
246
+ this._update(value, originalOptions);
247
+ } // Update the selected item in the selection box
248
+
249
+
250
+ _update(propValue, originalOptions) {
251
+ let selections;
252
+
253
+ if (!this._isMultiple()) {
254
+ // Radio
255
+ selections = this._updateSingle(propValue, originalOptions);
256
+ } else {
257
+ selections = this._updateMultiple(propValue, originalOptions);
258
+ this.updateOverflowItemCount(selections.size);
259
+ } // Update the text in the selection box
260
+
261
+
262
+ this._adapter.updateSelection(selections); // Update the selected item in the drop-down box
263
+
264
+
265
+ this.updateOptionsActiveStatus(selections, originalOptions);
266
+ } // Optionally selected updates (when components are mounted, or after value changes)
267
+
268
+
269
+ _updateSingle(propValue, originalOptions) {
270
+ const selections = new Map();
271
+ const {
272
+ onChangeWithObject
273
+ } = this.getProps(); // When onChangeWithObject is true, the defaultValue or Value passed by the props should be the object, which corresponds to the result returned by onChange, so the value of the object needs to be taken as a judgment comparison
274
+
275
+ const selectedValue = onChangeWithObject && typeof propValue !== 'undefined' ? propValue.value : propValue;
276
+ const selectedOptions = originalOptions.filter(option => option.value === selectedValue);
277
+ const noMatchOptionInList = !selectedOptions.length && typeof selectedValue !== 'undefined'; // If the current value, there is a matching option in the optionList
278
+
279
+ if (selectedOptions.length) {
280
+ const selectedOption = selectedOptions[0];
281
+ const optionExist = Object.assign({}, selectedOption); // if (onChangeWithObject) {
282
+ // OptionExist = {... propValue }; // value is the object with the'value 'Key
283
+ // }
284
+
285
+ selections.set(optionExist.label, optionExist);
286
+ } else if (noMatchOptionInList) {
287
+ // If the current value does not have a corresponding item in the optionList, construct an option and update it to the selection. However, it does not need to be inserted into the list
288
+ let optionNotExist = {
289
+ value: propValue,
290
+ label: propValue,
291
+ _notExist: true,
292
+ _scrollIndex: -1
293
+ };
294
+
295
+ if (onChangeWithObject) {
296
+ optionNotExist = Object.assign(Object.assign({}, propValue), {
297
+ _notExist: true,
298
+ _scrollIndex: -1
299
+ });
300
+ }
301
+
302
+ selections.set(optionNotExist.label, optionNotExist);
303
+ }
304
+
305
+ return selections;
306
+ } // Multi-selected option update (when the component is mounted, or after the value changes)
307
+
308
+
309
+ _updateMultiple(propValue, originalOptions) {
310
+ const nowSelections = this.getState('selections');
311
+ let selectedOptionList = []; // Multiple selection is to determine whether it is an array to avoid the problem of defaultValue/value incoming string error
312
+
313
+ const propValueIsArray = Array.isArray(propValue);
314
+ this.checkMultipleProps(); // If N values are currently selected, the corresponding option data is retrieved from the current selections for retrieval. Because these selected options may not exist in the new optionList
315
+
316
+ if (nowSelections.size) {
317
+ selectedOptionList = [...nowSelections].map(item => item[1]);
318
+ }
319
+
320
+ const selections = new Map();
321
+ let selectedValues = propValue;
322
+ const {
323
+ onChangeWithObject
324
+ } = this.getProps(); // When onChangeWithObject is true
325
+
326
+ if (onChangeWithObject && propValueIsArray) {
327
+ selectedValues = propValue.map(item => item.value);
328
+ }
329
+
330
+ if (propValueIsArray && selectedValues.length) {
331
+ selectedValues.forEach((selectedValue, i) => {
332
+ // The current value exists in the current optionList
333
+ const index = originalOptions.findIndex(option => option.value === selectedValue);
334
+
335
+ if (index !== -1) {
336
+ selections.set(originalOptions[index].label, originalOptions[index]);
337
+ } else {
338
+ // The current value exists in the optionList that has been selected before the change, and does not exist in the current optionList, then directly take the corresponding value from the selections, no need to construct a new option
339
+ const indexInSelectedList = selectedOptionList.findIndex(option => option.value === selectedValue);
340
+
341
+ if (indexInSelectedList !== -1) {
342
+ const option = selectedOptionList[indexInSelectedList];
343
+ selections.set(option.label, option);
344
+ } else {
345
+ // The current value does not exist in the current optionList or the list before the change. Construct an option and update it to the selection
346
+ let optionNotExist = {
347
+ value: selectedValue,
348
+ label: selectedValue,
349
+ _notExist: true
350
+ };
351
+ onChangeWithObject ? optionNotExist = Object.assign(Object.assign({}, propValue[i]), {
352
+ _notExist: true
353
+ }) : null;
354
+ selections.set(optionNotExist.label, Object.assign(Object.assign({}, optionNotExist), {
355
+ _scrollIndex: -1
356
+ }));
357
+ }
358
+ }
359
+ });
360
+ }
361
+
362
+ return selections;
363
+ }
364
+
365
+ _isMultiple() {
366
+ return this.getProp('multiple');
367
+ }
368
+
369
+ _isDisabled() {
370
+ return this.getProp('disabled');
371
+ }
372
+
373
+ _isFilterable() {
374
+ return Boolean(this.getProp('filter')); // filter can be boolean or function
375
+ }
376
+
377
+ handleClick(e) {
378
+ const {
379
+ clickToHide
380
+ } = this.getProps();
381
+ const {
382
+ isOpen
383
+ } = this.getStates();
384
+
385
+ const isDisabled = this._isDisabled();
386
+
387
+ if (isDisabled) {
388
+ return;
389
+ } else if (!isOpen) {
390
+ this.open();
391
+
392
+ this._notifyFocus(e);
393
+ } else if (isOpen && clickToHide) {
394
+ this.close(e);
395
+ } else if (isOpen && !clickToHide) {
396
+ this.focusInput();
397
+ }
398
+ }
399
+
400
+ open(acInput, originalOptions) {
401
+ const isFilterable = this._isFilterable();
402
+
403
+ const options = originalOptions || this.getState('options'); // When searchable, when the drop-down box expands
404
+
405
+ if (isFilterable) {
406
+ // Also clears the options filter to show all candidates
407
+ // Options created dynamically but not selected are also filtered out
408
+ const sugInput = '';
409
+
410
+ const newOptions = this._filterOption(options, sugInput).filter(item => !item._inputCreateOnly);
411
+
412
+ this._adapter.updateOptions(newOptions);
413
+
414
+ this.toggle2SearchInput(true);
415
+ }
416
+
417
+ this._adapter.openMenu();
418
+
419
+ this._setDropdownWidth();
420
+
421
+ this._adapter.notifyDropdownVisibleChange(true);
422
+
423
+ this.bindKeyBoardEvent();
424
+
425
+ this._adapter.registerClickOutsideHandler(e => {
426
+ this.close(e);
427
+
428
+ this._notifyBlur(e);
429
+
430
+ this._adapter.updateFocusState(false);
431
+ });
432
+ }
433
+
434
+ toggle2SearchInput(isShow) {
435
+ if (isShow) {
436
+ this._adapter.toggleInputShow(isShow, () => this.focusInput());
437
+ } else {
438
+ // only when choose the option and close the panel, the input can be hide
439
+ this._adapter.toggleInputShow(isShow, () => undefined);
440
+ }
441
+ }
442
+
443
+ close(e, closeCb) {
444
+ // to support A11y, closing the panel trigger does not necessarily lose focus
445
+ this._adapter.closeMenu();
446
+
447
+ this._adapter.notifyDropdownVisibleChange(false);
448
+
449
+ this._adapter.setIsFocusInContainer(false); // this.unBindKeyBoardEvent();
450
+ // this._notifyBlur(e);
451
+
452
+
453
+ this._adapter.unregisterClickOutsideHandler(); // this._adapter.updateFocusState(false);
454
+
455
+
456
+ const isFilterable = this._isFilterable();
457
+
458
+ if (isFilterable) {
459
+ this.toggle2SearchInput(false);
460
+ }
461
+
462
+ this._adapter.once('popoverClose', () => {
463
+ if (isFilterable) {
464
+ this.clearInput();
465
+ }
466
+
467
+ if (closeCb) {
468
+ closeCb();
469
+ }
470
+ });
471
+ }
472
+
473
+ onSelect(option, optionIndex, event) {
474
+ const isDisabled = this._isDisabled();
475
+
476
+ if (isDisabled) {
477
+ return;
478
+ } // If the allowCreate dynamically created option is selected, onCreate needs to be triggered
479
+
480
+
481
+ if (option._inputCreateOnly) {
482
+ this._adapter.notifyCreate(option);
483
+ }
484
+
485
+ const isMultiple = this._isMultiple();
486
+
487
+ if (!isMultiple) {
488
+ this._handleSingleSelect(option, event);
489
+
490
+ this._focusTrigger();
491
+ } else {
492
+ this._handleMultipleSelect(option, event);
493
+ }
494
+
495
+ this._adapter.updateFocusIndex(optionIndex);
496
+ }
497
+
498
+ _handleSingleSelect(_a, event) {
499
+ var {
500
+ value,
501
+ label
502
+ } = _a,
503
+ rest = __rest(_a, ["value", "label"]);
504
+
505
+ const selections = new Map().set(label, Object.assign({
506
+ value,
507
+ label
508
+ }, rest)); // First trigger onSelect, then trigger onChange
509
+
510
+ this._notifySelect(value, Object.assign({
511
+ value,
512
+ label
513
+ }, rest)); // If it is a controlled component, directly notify
514
+ // Make sure that the operations of updating updateOptions are done after the animation ends
515
+ // otherwise the content will be updated when the popup layer is not collapsed, and it looks like it will flash once when it is closed
516
+
517
+
518
+ if (this._isControlledComponent()) {
519
+ this.close(event, () => {
520
+ this._notifyChange(selections);
521
+ });
522
+ } else {
523
+ this._adapter.updateSelection(selections); // notify user
524
+
525
+
526
+ this._notifyChange(selections);
527
+
528
+ this.close(event, () => {
529
+ // Update the selected item in the drop-down box
530
+ this.updateOptionsActiveStatus(selections);
531
+ });
532
+ }
533
+ }
534
+
535
+ _handleMultipleSelect(_a, event) {
536
+ var {
537
+ value,
538
+ label
539
+ } = _a,
540
+ rest = __rest(_a, ["value", "label"]);
541
+
542
+ const maxLimit = this._adapter.getMaxLimit();
543
+
544
+ const selections = this._adapter.getSelections();
545
+
546
+ const {
547
+ autoClearSearchValue
548
+ } = this.getProps();
549
+
550
+ if (selections.has(label)) {
551
+ this._notifyDeselect(value, Object.assign({
552
+ value,
553
+ label
554
+ }, rest));
555
+
556
+ selections.delete(label);
557
+ } else if (maxLimit && selections.size === maxLimit) {
558
+ this._adapter.notifyMaxLimit(Object.assign({
559
+ value,
560
+ label
561
+ }, (0, _omit2.default)(rest, '_scrollIndex')));
562
+
563
+ return;
564
+ } else {
565
+ this._notifySelect(value, Object.assign({
566
+ value,
567
+ label
568
+ }, rest));
569
+
570
+ selections.set(label, Object.assign({
571
+ value,
572
+ label
573
+ }, rest));
574
+ }
575
+
576
+ if (this._isControlledComponent()) {
577
+ // Controlled components, directly notified
578
+ this._notifyChange(selections);
579
+
580
+ if (this._isFilterable()) {
581
+ if (autoClearSearchValue) {
582
+ this.clearInput();
583
+ }
584
+
585
+ this.focusInput();
586
+ }
587
+ } else {
588
+ // Uncontrolled components, update ui
589
+ this._adapter.updateSelection(selections);
590
+
591
+ this.updateOverflowItemCount(selections.size); // In multi-select mode, the drop-down pop-up layer is repositioned every time the value is changed, because the height selection of the selection box may have changed
592
+
593
+ this._adapter.rePositionDropdown();
594
+
595
+ let {
596
+ options
597
+ } = this.getStates(); // Searchable filtering, when selected, resets Input
598
+
599
+ if (this._isFilterable()) {
600
+ // When filter active,if autoClearSearchValue is true,reset input after select
601
+ if (autoClearSearchValue) {
602
+ this.clearInput(); // At the same time, the filtering of options is also cleared, in order to show all candidates
603
+
604
+ const sugInput = '';
605
+ options = this._filterOption(options, sugInput);
606
+ }
607
+
608
+ this.focusInput();
609
+ }
610
+
611
+ this.updateOptionsActiveStatus(selections, options);
612
+
613
+ this._notifyChange(selections);
614
+ }
615
+ }
616
+
617
+ clearSelected() {
618
+ const selections = new Map();
619
+
620
+ if (this._isControlledComponent()) {
621
+ this._notifyChange(selections);
622
+
623
+ this._adapter.notifyClear();
624
+ } else {
625
+ this._adapter.updateSelection(selections);
626
+
627
+ this.updateOptionsActiveStatus(selections);
628
+
629
+ this._notifyChange(selections);
630
+
631
+ this._adapter.notifyClear();
632
+ } // when call manually by ref method
633
+
634
+
635
+ const {
636
+ isOpen
637
+ } = this.getStates();
638
+
639
+ if (isOpen) {
640
+ this._adapter.rePositionDropdown();
641
+ }
642
+ } // Update the selected item in the drop-down box
643
+
644
+
645
+ updateOptionsActiveStatus(selections) {
646
+ let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getState('options');
647
+ const {
648
+ allowCreate
649
+ } = this.getProps();
650
+ const newOptions = options.map(option => {
651
+ if (selections.has(option.label)) {
652
+ option._selected = true;
653
+
654
+ if (allowCreate) {
655
+ delete option._inputCreateOnly;
656
+ }
657
+ } else {
658
+ if (option._inputCreateOnly) {
659
+ option._show = false;
660
+ }
661
+
662
+ option._selected = false;
663
+ }
664
+
665
+ return option;
666
+ });
667
+
668
+ this._adapter.updateOptions(newOptions);
669
+ }
670
+
671
+ removeTag(item) {
672
+ const selections = this._adapter.getSelections();
673
+
674
+ selections.delete(item.label);
675
+
676
+ if (this._isControlledComponent()) {
677
+ this._notifyDeselect(item.value, item);
678
+
679
+ this._notifyChange(selections);
680
+ } else {
681
+ this._notifyDeselect(item.value, item);
682
+
683
+ this._adapter.updateSelection(selections);
684
+
685
+ this.updateOverflowItemCount(selections.size);
686
+ this.updateOptionsActiveStatus(selections); // Repostion drop-down layer, because the selection may have changed the number of rows, resulting in a height change
687
+
688
+ this._adapter.rePositionDropdown();
689
+
690
+ this._notifyChange(selections);
691
+ }
692
+ }
693
+
694
+ clearInput() {
695
+ const {
696
+ inputValue
697
+ } = this.getStates(); // only when input is not null, select should notifySearch and updateOptions
698
+
699
+ if (inputValue !== '') {
700
+ this._adapter.updateInputValue('');
701
+
702
+ this._adapter.notifySearch(''); // reset options filter
703
+
704
+
705
+ const {
706
+ options
707
+ } = this.getStates();
708
+ const {
709
+ remote
710
+ } = this.getProps();
711
+ let optionsAfterFilter = options;
712
+
713
+ if (!remote) {
714
+ optionsAfterFilter = this._filterOption(options, '');
715
+ }
716
+
717
+ this._adapter.updateOptions(optionsAfterFilter);
718
+ }
719
+ }
720
+
721
+ focusInput() {
722
+ this._adapter.focusInput();
723
+
724
+ this._adapter.updateFocusState(true);
725
+
726
+ this._adapter.setIsFocusInContainer(false);
727
+ }
728
+
729
+ handleInputChange(sugInput) {
730
+ // Input is a controlled component, so the value needs to be updated
731
+ this._adapter.updateInputValue(sugInput);
732
+
733
+ const {
734
+ options,
735
+ isOpen
736
+ } = this.getStates();
737
+ const {
738
+ allowCreate,
739
+ remote
740
+ } = this.getProps();
741
+ let optionsAfterFilter = options;
742
+
743
+ if (!remote) {
744
+ // Filter options based on input
745
+ optionsAfterFilter = this._filterOption(options, sugInput);
746
+ } // When allowClear is true, an entry can be created. You need to include the current input as a new Option input
747
+
748
+
749
+ optionsAfterFilter = this._createOptionByInput(allowCreate, optionsAfterFilter, sugInput);
750
+
751
+ this._adapter.updateOptions(optionsAfterFilter);
752
+
753
+ this._adapter.notifySearch(sugInput); // In multi-select mode, the drop-down box is repositioned each time you enter, because it may cause a line break as the input changes
754
+
755
+
756
+ if (this._isMultiple()) {
757
+ this._adapter.rePositionDropdown();
758
+ }
759
+ }
760
+
761
+ _filterOption(originalOptions, sugInput) {
762
+ const filter = this.getProp('filter');
763
+
764
+ if (!filter) {
765
+ // 1. No filtering
766
+ return originalOptions;
767
+ } else if (typeof filter === 'boolean' && filter) {
768
+ // 2. When true, the default filter is used
769
+ const input = sugInput.toLowerCase();
770
+ return originalOptions.map(option => {
771
+ const label = option.label.toString().toLowerCase();
772
+ const groupLabel = option._parentGroup && option._parentGroup.label;
773
+ const matchOption = label.includes(input);
774
+ const matchGroup = (0, _isString2.default)(groupLabel) && groupLabel.toLowerCase().includes(input);
775
+
776
+ if (matchOption || matchGroup) {
777
+ option._show = true;
778
+ } else {
779
+ option._show = false;
780
+ }
781
+
782
+ return option;
783
+ });
784
+ } else if (typeof filter === 'function') {
785
+ // 3. When passing in a custom function, use a custom function for filtering
786
+ return originalOptions.map(option => {
787
+ filter(sugInput, option) ? option._show = true : option._show = false;
788
+ return option;
789
+ });
790
+ }
791
+
792
+ return undefined;
793
+ }
794
+
795
+ _createOptionByInput(allowCreate, optionsAfterFilter, sugInput) {
796
+ if (allowCreate) {
797
+ if (sugInput) {
798
+ // optionsAfterFilter clone ??? needClone ?
799
+ const newOptionByInput = {
800
+ _show: true,
801
+ _selected: false,
802
+ value: sugInput,
803
+ label: sugInput,
804
+ // True indicates that the option was dynamically created during user filtering
805
+ _inputCreateOnly: true
806
+ };
807
+ let createOptionIndex = -1;
808
+ let matchOptionIndex = -1;
809
+ optionsAfterFilter.forEach((option, index) => {
810
+ if (!option._show && !option._inputCreateOnly) {
811
+ return;
812
+ } // The matching algorithm is not necessarily through labels?
813
+
814
+
815
+ if (option.label === sugInput) {
816
+ matchOptionIndex = index;
817
+ }
818
+
819
+ if (option._inputCreateOnly) {
820
+ createOptionIndex = index;
821
+ option.value = sugInput;
822
+ option.label = sugInput;
823
+ option._show = true;
824
+ }
825
+ });
826
+
827
+ if (createOptionIndex === -1 && matchOptionIndex === -1) {
828
+ optionsAfterFilter.push(newOptionByInput);
829
+ }
830
+
831
+ if (matchOptionIndex !== -1) {
832
+ optionsAfterFilter = optionsAfterFilter.filter(item => !item._inputCreateOnly);
833
+ }
834
+ } else {
835
+ // Delete input unselected items
836
+ optionsAfterFilter = optionsAfterFilter.filter(item => !item._inputCreateOnly);
837
+ }
838
+ } // TODO Promise supports asynchronous creation
839
+
840
+
841
+ return optionsAfterFilter;
842
+ }
843
+
844
+ bindKeyBoardEvent() {
845
+ this._keydownHandler = event => {
846
+ this._handleKeyDown(event);
847
+ };
848
+
849
+ this._adapter.registerKeyDown(this._keydownHandler);
850
+ }
851
+
852
+ unBindKeyBoardEvent() {
853
+ if (this._keydownHandler) {
854
+ this._adapter.unregisterKeyDown();
855
+ }
856
+ }
857
+
858
+ _handleKeyDown(event) {
859
+ const key = event.keyCode;
860
+ const {
861
+ loading,
862
+ filter,
863
+ multiple,
864
+ disabled
865
+ } = this.getProps();
866
+ const {
867
+ isOpen
868
+ } = this.getStates();
869
+
870
+ if (loading || disabled) {
871
+ return;
872
+ }
873
+
874
+ switch (key) {
875
+ case _keyCode.default.UP:
876
+ // Prevent Input's cursor from following
877
+ // Prevent Input cursor from following
878
+ event.preventDefault();
879
+
880
+ this._handleArrowKeyDown(-1);
881
+
882
+ break;
883
+
884
+ case _keyCode.default.DOWN:
885
+ // Prevent Input's cursor from following
886
+ // Prevent Input cursor from following
887
+ event.preventDefault();
888
+
889
+ this._handleArrowKeyDown(1);
890
+
891
+ break;
892
+
893
+ case _keyCode.default.BACKSPACE:
894
+ this._handleBackspaceKeyDown();
895
+
896
+ break;
897
+
898
+ case _keyCode.default.ENTER:
899
+ // internal-issues:302
900
+ // prevent trigger form’s submit when use in form
901
+ (0, _a11y.handlePrevent)(event);
902
+
903
+ this._handleEnterKeyDown(event);
904
+
905
+ break;
906
+
907
+ case _keyCode.default.ESC:
908
+ isOpen && this.close(event);
909
+ filter && !multiple && this._focusTrigger();
910
+ break;
911
+
912
+ case _keyCode.default.TAB:
913
+ // check if slot have focusable element
914
+ this._handleTabKeyDown(event);
915
+
916
+ break;
917
+
918
+ default:
919
+ break;
920
+ }
921
+ }
922
+
923
+ handleContainerKeyDown(event) {
924
+ // when focus in contanier, handle the key down
925
+ const key = event.keyCode;
926
+ const {
927
+ isOpen
928
+ } = this.getStates();
929
+
930
+ switch (key) {
931
+ case _keyCode.default.TAB:
932
+ isOpen && this._handleTabKeyDown(event);
933
+ break;
934
+
935
+ default:
936
+ break;
937
+ }
938
+ }
939
+
940
+ _getEnableFocusIndex(offset) {
941
+ const {
942
+ focusIndex,
943
+ options
944
+ } = this.getStates();
945
+ const visibleOptions = options.filter(item => item._show); // let visibleOptions = options;
946
+
947
+ const optionsLength = visibleOptions.length;
948
+ let index = focusIndex + offset;
949
+
950
+ if (index < 0) {
951
+ index = optionsLength - 1;
952
+ }
953
+
954
+ if (index >= optionsLength) {
955
+ index = 0;
956
+ } // avoid newIndex option is disabled
957
+
958
+
959
+ if (offset > 0) {
960
+ let nearestActiveOption = -1;
961
+
962
+ for (let i = 0; i < visibleOptions.length; i++) {
963
+ const optionIsActive = !visibleOptions[i].disabled;
964
+
965
+ if (optionIsActive) {
966
+ nearestActiveOption = i;
967
+ }
968
+
969
+ if (nearestActiveOption >= index) {
970
+ break;
971
+ }
972
+ }
973
+
974
+ index = nearestActiveOption;
975
+ } else {
976
+ let nearestActiveOption = visibleOptions.length;
977
+
978
+ for (let i = optionsLength - 1; i >= 0; i--) {
979
+ const optionIsActive = !visibleOptions[i].disabled;
980
+
981
+ if (optionIsActive) {
982
+ nearestActiveOption = i;
983
+ }
984
+
985
+ if (nearestActiveOption <= index) {
986
+ break;
987
+ }
988
+ }
989
+
990
+ index = nearestActiveOption;
991
+ } // console.log('new:' + index);
992
+
993
+
994
+ this._adapter.updateFocusIndex(index);
995
+
996
+ this._adapter.updateScrollTop(index);
997
+ }
998
+
999
+ _handleArrowKeyDown(offset) {
1000
+ const {
1001
+ isOpen
1002
+ } = this.getStates();
1003
+ isOpen ? this._getEnableFocusIndex(offset) : this.open();
1004
+ }
1005
+
1006
+ _handleTabKeyDown(event) {
1007
+ const {
1008
+ isOpen
1009
+ } = this.getStates();
1010
+
1011
+ this._adapter.updateFocusState(false);
1012
+
1013
+ if (isOpen) {
1014
+ const container = this._adapter.getContainer();
1015
+
1016
+ const focusableElements = this._adapter.getFocusableElements(container);
1017
+
1018
+ const focusableNum = focusableElements.length;
1019
+
1020
+ if (focusableNum > 0) {
1021
+ // Shift + Tab will move focus backward
1022
+ if (event.shiftKey) {
1023
+ this._handlePanelOpenShiftTabKeyDown(focusableElements, event);
1024
+ } else {
1025
+ this._handlePanelOpenTabKeyDown(focusableElements, event);
1026
+ }
1027
+ } else {
1028
+ // there are no focusable elements inside the container, tab to next element and trigger blur
1029
+ this.close();
1030
+
1031
+ this._notifyBlur(event);
1032
+ }
1033
+ } else {
1034
+ // tab or shift tab to next element and trigger blur
1035
+ this._notifyBlur(event);
1036
+ }
1037
+ }
1038
+
1039
+ _handlePanelOpenTabKeyDown(focusableElements, event) {
1040
+ const activeElement = this._adapter.getActiveElement();
1041
+
1042
+ const isFocusInContainer = this._adapter.getIsFocusInContainer();
1043
+
1044
+ if (!isFocusInContainer) {
1045
+ // focus in trigger, set next focus to the first element in container
1046
+ focusableElements[0].focus();
1047
+
1048
+ this._adapter.setIsFocusInContainer(true);
1049
+
1050
+ (0, _a11y.handlePrevent)(event);
1051
+ } else if (activeElement === focusableElements[focusableElements.length - 1]) {
1052
+ // focus in the last element in container, focus back to trigger and close panel
1053
+ this._focusTrigger();
1054
+
1055
+ this.close();
1056
+ (0, _a11y.handlePrevent)(event);
1057
+ }
1058
+ }
1059
+
1060
+ _handlePanelOpenShiftTabKeyDown(focusableElements, event) {
1061
+ const activeElement = this._adapter.getActiveElement();
1062
+
1063
+ const isFocusInContainer = this._adapter.getIsFocusInContainer();
1064
+
1065
+ if (!isFocusInContainer) {
1066
+ // focus in trigger, close the panel, shift tab to previe element and trigger blur
1067
+ this.close();
1068
+
1069
+ this._notifyBlur(event);
1070
+ } else if (activeElement === focusableElements[0]) {
1071
+ // focus in the first element in container, focus back to trigger
1072
+ this._focusTrigger();
1073
+
1074
+ this._adapter.setIsFocusInContainer(false);
1075
+
1076
+ (0, _a11y.handlePrevent)(event);
1077
+ }
1078
+ }
1079
+
1080
+ _handleEnterKeyDown(event) {
1081
+ const {
1082
+ isOpen,
1083
+ options,
1084
+ focusIndex
1085
+ } = this.getStates();
1086
+
1087
+ if (!isOpen) {
1088
+ this.open();
1089
+ } else {
1090
+ if (focusIndex !== -1) {
1091
+ const visibleOptions = options.filter(item => item._show);
1092
+ const {
1093
+ length
1094
+ } = visibleOptions; // fix issue 1201
1095
+
1096
+ if (length <= focusIndex) {
1097
+ return;
1098
+ }
1099
+
1100
+ if (visibleOptions && length) {
1101
+ const selectedOption = visibleOptions[focusIndex];
1102
+
1103
+ if (selectedOption.disabled) {
1104
+ return;
1105
+ }
1106
+
1107
+ this.onSelect(selectedOption, focusIndex, event);
1108
+ }
1109
+ } else {
1110
+ this.close();
1111
+ }
1112
+ }
1113
+ }
1114
+
1115
+ _handleBackspaceKeyDown() {
1116
+ if (this._isMultiple()) {
1117
+ const selections = this._adapter.getSelections();
1118
+
1119
+ const {
1120
+ inputValue
1121
+ } = this.getStates();
1122
+ const length = selections.size;
1123
+
1124
+ if (length && !inputValue) {
1125
+ const keys = [...selections.keys()];
1126
+ let index = length - 1;
1127
+ let targetLabel = keys[index];
1128
+ let targetItem = selections.get(targetLabel);
1129
+ let isAllDisabled = false; // can skip disabled item when remove trigger by backspace
1130
+
1131
+ if (targetItem.disabled && index === 0) {
1132
+ return;
1133
+ }
1134
+
1135
+ while (targetItem.disabled && index !== 0) {
1136
+ index = index - 1;
1137
+ targetLabel = keys[index];
1138
+ targetItem = selections.get(targetLabel); // eslint-disable-next-line
1139
+
1140
+ if (index == 0 && targetItem.disabled) {
1141
+ isAllDisabled = true;
1142
+ }
1143
+ }
1144
+
1145
+ if (!isAllDisabled) {
1146
+ this.removeTag(targetItem);
1147
+ }
1148
+ }
1149
+ }
1150
+ }
1151
+
1152
+ _notifyChange(selections) {
1153
+ const {
1154
+ onChangeWithObject
1155
+ } = this.getProps();
1156
+ const stateSelections = this.getState('selections');
1157
+ let notifyVal;
1158
+ const selectionsProps = [...selections.values()];
1159
+
1160
+ const isMultiple = this._isMultiple();
1161
+
1162
+ const hasChange = this._diffSelections(selections, stateSelections, isMultiple);
1163
+
1164
+ if (!hasChange) {
1165
+ return;
1166
+ }
1167
+
1168
+ switch (true) {
1169
+ case onChangeWithObject:
1170
+ this._notifyChangeWithObject(selections);
1171
+
1172
+ break;
1173
+
1174
+ case !onChangeWithObject && !isMultiple:
1175
+ notifyVal = selectionsProps.length ? selectionsProps[0].value : undefined;
1176
+
1177
+ this._adapter.notifyChange(notifyVal);
1178
+
1179
+ break;
1180
+
1181
+ case !onChangeWithObject && isMultiple:
1182
+ notifyVal = selectionsProps.length ? selectionsProps.map(props => props.value) : [];
1183
+
1184
+ this._adapter.notifyChange(notifyVal);
1185
+
1186
+ break;
1187
+
1188
+ default:
1189
+ break;
1190
+ }
1191
+ }
1192
+
1193
+ _removeInternalKey(option) {
1194
+ // eslint-disable-next-line
1195
+ let newOption = Object.assign({}, option);
1196
+ delete newOption._parentGroup;
1197
+ delete newOption._show;
1198
+ delete newOption._selected;
1199
+ delete newOption._scrollIndex;
1200
+
1201
+ if ('_keyInOptionList' in newOption) {
1202
+ newOption.key = newOption._keyInOptionList;
1203
+ delete newOption._keyInOptionList;
1204
+ }
1205
+
1206
+ return newOption;
1207
+ }
1208
+
1209
+ _notifySelect(value, option) {
1210
+ const newOption = this._removeInternalKey(option);
1211
+
1212
+ this._adapter.notifySelect(value, newOption);
1213
+ }
1214
+
1215
+ _notifyDeselect(value, option) {
1216
+ const newOption = this._removeInternalKey(option);
1217
+
1218
+ this._adapter.notifyDeselect(value, newOption);
1219
+ }
1220
+
1221
+ _diffSelections(selections, oldSelections, isMultiple) {
1222
+ let diff = true;
1223
+
1224
+ if (!isMultiple) {
1225
+ const selectionProps = [...selections.values()];
1226
+ const oldSelectionProps = [...oldSelections.values()];
1227
+ const optionLabel = selectionProps[0] ? selectionProps[0].label : selectionProps[0];
1228
+ const oldOptionLabel = oldSelectionProps[0] ? oldSelectionProps[0].label : oldSelectionProps[0];
1229
+ diff = !(0, _isEqual2.default)(optionLabel, oldOptionLabel);
1230
+ } else {// When multiple selection, there is no scene where the value is different between the two operations
1231
+ }
1232
+
1233
+ return diff;
1234
+ } // When onChangeWithObject is true, the onChange input parameter is not only value, but also label and other parameters
1235
+
1236
+
1237
+ _notifyChangeWithObject(selections) {
1238
+ const stateSelections = this.getState('selections');
1239
+ const values = [];
1240
+
1241
+ for (const item of selections.entries()) {
1242
+ let val = Object.assign({
1243
+ label: item[0]
1244
+ }, item[1]);
1245
+ val = this._removeInternalKey(val);
1246
+ values.push(val);
1247
+ }
1248
+
1249
+ if (!this._isMultiple()) {
1250
+ this._adapter.notifyChange(values[0]);
1251
+ } else {
1252
+ this._adapter.notifyChange(values);
1253
+ }
1254
+ } // Scenes that may trigger blur:
1255
+ // 1、clickOutSide
1256
+ // 2、 tab to next element/ shift tab to previous element
1257
+ // 3、[remove when add a11y] click option / press enter, and then select complete(when multiple is false
1258
+ // 4、[remove when add a11y] press esc when dropdown list open
1259
+
1260
+
1261
+ _notifyBlur(e) {
1262
+ this._adapter.notifyBlur(e);
1263
+ } // Scenes that may trigger focus:
1264
+ // 1、click selection
1265
+
1266
+
1267
+ _notifyFocus(e) {
1268
+ this._adapter.notifyFocus(e);
1269
+ }
1270
+
1271
+ handleMouseEnter(e) {
1272
+ this._adapter.updateHovering(true);
1273
+
1274
+ this._adapter.notifyMouseEnter(e);
1275
+ }
1276
+
1277
+ handleMouseLeave(e) {
1278
+ this._adapter.updateHovering(false);
1279
+
1280
+ this._adapter.notifyMouseLeave(e);
1281
+ }
1282
+
1283
+ handleClearClick(e) {
1284
+ const {
1285
+ filter
1286
+ } = this.getProps();
1287
+
1288
+ if (filter) {
1289
+ this.clearInput();
1290
+ }
1291
+
1292
+ this.clearSelected(); // prevent this click open dropdown
1293
+
1294
+ e.stopPropagation();
1295
+ }
1296
+
1297
+ handleKeyPress(e) {
1298
+ if (e && e.key === _keyCode.ENTER_KEY) {
1299
+ this.handleClick(e);
1300
+ }
1301
+ }
1302
+ /* istanbul ignore next */
1303
+
1304
+
1305
+ handleClearBtnEnterPress(e) {
1306
+ if ((0, _isEnterPress.default)(e)) {
1307
+ this.handleClearClick(e);
1308
+ }
1309
+ }
1310
+
1311
+ handleOptionMouseEnter(optionIndex) {
1312
+ this._adapter.updateFocusIndex(optionIndex);
1313
+ }
1314
+
1315
+ handleListScroll(e) {
1316
+ this._adapter.notifyListScroll(e);
1317
+ }
1318
+
1319
+ handleTriggerFocus(e) {
1320
+ this.bindKeyBoardEvent(); // close the tag in multiple select did not trigger select focus, but trigger TriggerFocus, so not need to updateFocusState in this function
1321
+ // this._adapter.updateFocusState(true);
1322
+
1323
+ this._adapter.setIsFocusInContainer(false);
1324
+ }
1325
+
1326
+ handleTriggerBlur(e) {
1327
+ this._adapter.updateFocusState(false);
1328
+
1329
+ const {
1330
+ filter,
1331
+ autoFocus
1332
+ } = this.getProps();
1333
+ const {
1334
+ isOpen,
1335
+ isFocus
1336
+ } = this.getStates(); // Under normal circumstances, blur will be accompanied by clickOutsideHandler, so the notify of blur can be called uniformly in clickOutsideHandler
1337
+ // But when autoFocus or the panel is close, because clickOutsideHandler is not register or unregister, you need to listen for the trigger's blur and trigger the notify callback
1338
+
1339
+ if (isFocus && !isOpen) {
1340
+ this._notifyBlur(e);
1341
+ }
1342
+ }
1343
+
1344
+ handleInputBlur(e) {
1345
+ const {
1346
+ filter,
1347
+ autoFocus
1348
+ } = this.getProps();
1349
+
1350
+ const isMultiple = this._isMultiple();
1351
+
1352
+ if (autoFocus && filter && !isMultiple) {
1353
+ // under this condition, when input blur, hide the input
1354
+ this.toggle2SearchInput(false);
1355
+ }
1356
+ }
1357
+
1358
+ selectAll() {
1359
+ const {
1360
+ options
1361
+ } = this.getStates();
1362
+ const {
1363
+ onChangeWithObject
1364
+ } = this.getProps();
1365
+ let selectedValues = [];
1366
+
1367
+ const isMultiple = this._isMultiple();
1368
+
1369
+ if (!isMultiple) {
1370
+ console.warn(`[Semi Select]: It seems that you have called the selectAll method in the single-selection Select.
1371
+ Please note that this is not a legal way to use it`);
1372
+ return;
1373
+ }
1374
+
1375
+ if (onChangeWithObject) {
1376
+ selectedValues = options;
1377
+ } else {
1378
+ selectedValues = options.map(option => option.value);
1379
+ }
1380
+
1381
+ this.handleValueChange(selectedValues);
1382
+
1383
+ this._adapter.notifyChange(selectedValues);
1384
+ }
1385
+ /**
1386
+ * Check whether the props
1387
+ * -defaultValue/value in multiple selection mode is array
1388
+ * @param {Object} props
1389
+ */
1390
+
1391
+
1392
+ checkMultipleProps(props) {
1393
+ if (this._isMultiple()) {
1394
+ const currentProps = props ? props : this.getProps();
1395
+ const {
1396
+ defaultValue,
1397
+ value
1398
+ } = currentProps;
1399
+ const selectedValues = value || defaultValue;
1400
+
1401
+ if (!(0, _isNullOrUndefined.default)(selectedValues) && !Array.isArray(selectedValues)) {
1402
+ /* istanbul ignore next */
1403
+ (0, _warning.default)(true, '[Semi Select] defaultValue/value should be array type in multiple mode');
1404
+ }
1405
+ }
1406
+ }
1407
+
1408
+ updateScrollTop() {
1409
+ this._adapter.updateScrollTop();
1410
+ }
1411
+
1412
+ updateOverflowItemCount(selectionLength, overFlowCount) {
1413
+ const {
1414
+ maxTagCount,
1415
+ ellipsisTrigger
1416
+ } = this.getProps();
1417
+
1418
+ if (!ellipsisTrigger) {
1419
+ return;
1420
+ }
1421
+
1422
+ if (overFlowCount) {
1423
+ this._adapter.updateOverflowItemCount(overFlowCount);
1424
+ } else if (typeof maxTagCount === 'number') {
1425
+ if (selectionLength - maxTagCount > 0) {
1426
+ this._adapter.updateOverflowItemCount(selectionLength - maxTagCount);
1427
+ } else {
1428
+ this._adapter.updateOverflowItemCount(0);
1429
+ }
1430
+ }
1431
+ }
1432
+
1433
+ updateIsFullTags() {
1434
+ const {
1435
+ isFullTags
1436
+ } = this.getStates();
1437
+
1438
+ if (!isFullTags) {
1439
+ this._adapter.setState({
1440
+ isFullTags: true
1441
+ });
1442
+ }
1443
+ }
1444
+
1445
+ handlePopoverClose() {
1446
+ this._adapter.emit('popoverClose');
1447
+ } // need to remove focus style of option when user hover slot
1448
+
1449
+
1450
+ handleSlotMouseEnter() {
1451
+ this._adapter.updateFocusIndex(-1);
1452
+ }
1453
+
1454
+ }
1455
+
1456
+ exports.default = SelectFoundation;