tntd 2.5.6 → 2.5.9

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 (768) hide show
  1. package/es/affix/index.js +1 -2
  2. package/es/alert/index.js +1 -2
  3. package/es/anchor/index.js +1 -2
  4. package/es/array-input/icon.js +24 -6
  5. package/es/array-input/index.js +203 -119
  6. package/es/auth-context/index.js +1 -2
  7. package/es/auto-complete/index.js +1 -2
  8. package/es/avatar/index.js +1 -2
  9. package/es/back-top/index.js +1 -2
  10. package/es/badge/index.js +1 -2
  11. package/es/breadcrumb/index.js +1 -2
  12. package/es/button/index.js +1 -2
  13. package/es/calendar/index.js +1 -2
  14. package/es/card/index.js +1 -2
  15. package/es/carousel/index.js +1 -2
  16. package/es/cascader/index.js +1 -2
  17. package/es/checkbox/index.js +1 -2
  18. package/es/col/index.js +1 -2
  19. package/es/collapse/index.js +1 -2
  20. package/es/color-picker/ColorPicker.js +126 -80
  21. package/es/color-picker/index.js +8 -5
  22. package/es/columns/index.js +66 -30
  23. package/es/columns/style/index.js +1 -2
  24. package/es/comment/index.js +1 -2
  25. package/es/config-provider/config-provider.js +1 -2
  26. package/es/config-provider/index.js +1 -2
  27. package/es/date-picker/index.js +1 -2
  28. package/es/descriptions/descriptions.js +38 -30
  29. package/es/descriptions/index.js +1 -2
  30. package/es/development-login/LoginModal.js +81 -46
  31. package/es/development-login/index.js +17 -8
  32. package/es/divider/index.js +1 -2
  33. package/es/drawer/drawer.js +27 -20
  34. package/es/drawer/index.js +1 -2
  35. package/es/dropdown/index.js +1 -2
  36. package/es/ellipsis/Svg/CopySVG.js +63 -16
  37. package/es/ellipsis/Svg/CopySVG.js.map +1 -1
  38. package/es/ellipsis/Svg/TickSVG.js +41 -11
  39. package/es/ellipsis/Svg/TickSVG.js.map +1 -1
  40. package/es/ellipsis/index.js +115 -78
  41. package/es/ellipsis/index.js.map +1 -1
  42. package/es/ellipsis/index.less +9 -0
  43. package/es/empty/empty.js +58 -48
  44. package/es/empty/empty.stories.js +5 -6
  45. package/es/empty/index.js +1 -2
  46. package/es/exception/exception.js +32 -19
  47. package/es/exception/index.js +1 -2
  48. package/es/form/index.js +1 -2
  49. package/es/handle/index.js +110 -71
  50. package/es/icon/index.js +1 -2
  51. package/es/icon-list/index.js +1 -120
  52. package/es/img/Contain.js +60 -39
  53. package/es/img/Cover.js +98 -72
  54. package/es/img/index.js +48 -32
  55. package/es/index.js +1 -2
  56. package/es/index.js.map +1 -1
  57. package/es/input/index.js +4 -4
  58. package/es/input/index.js.map +1 -1
  59. package/es/input/input.js +97 -0
  60. package/es/input/input.js.map +1 -0
  61. package/es/input/input.less +39 -0
  62. package/es/input-number/index.js +1 -2
  63. package/es/label/index.js +140 -0
  64. package/es/label/index.js.map +1 -0
  65. package/es/label/label.less +60 -0
  66. package/es/layout/index.js +1 -2
  67. package/es/list/index.js +1 -2
  68. package/es/loading-button/index.js +33 -28
  69. package/es/locale/default.js +3 -4
  70. package/es/locale/en_US.js +30 -31
  71. package/es/locale/index.js +1 -2
  72. package/es/locale/zh_CN.js +30 -31
  73. package/es/locale-provider/index.js +2 -3
  74. package/es/mention/index.js +1 -2
  75. package/es/mentions/index.js +1 -2
  76. package/es/menu/index.js +1 -2
  77. package/es/message/index.js +1 -2
  78. package/es/modal/index.js +1 -2
  79. package/es/modal/modal.js +20 -17
  80. package/es/notification/index.js +1 -2
  81. package/es/page/Box.js +49 -33
  82. package/es/page/index.js +119 -84
  83. package/es/page/utils.js +12 -14
  84. package/es/page-header/index.js +1 -2
  85. package/es/pagination/index.js +1 -2
  86. package/es/popconfirm/index.js +1 -2
  87. package/es/popover/index.js +1 -2
  88. package/es/prev-locale.js +49 -47
  89. package/es/progress/index.js +1 -2
  90. package/es/query-form/Field/Checkbox.js +20 -17
  91. package/es/query-form/Field/Select.js +54 -39
  92. package/es/query-form/Field/SelectInput.js +63 -45
  93. package/es/query-form/Field/fieldsMap.js +19 -20
  94. package/es/query-form/Field/index.js +104 -66
  95. package/es/query-form/createActions.js +46 -46
  96. package/es/query-form/index.js +327 -247
  97. package/es/query-form/index.js.map +1 -1
  98. package/es/query-form/useForm.js +3 -4
  99. package/es/query-list-scene/List.js +321 -255
  100. package/es/query-list-scene/List.js.map +1 -1
  101. package/es/query-list-scene/QueryForm.js +132 -94
  102. package/es/query-list-scene/QueryListScene.js +29 -21
  103. package/es/query-list-scene/Title.js +6 -4
  104. package/es/query-list-scene/Toolbar.js +21 -15
  105. package/es/query-list-scene/createActions.js +60 -60
  106. package/es/query-list-scene/index.js +1 -2
  107. package/es/query-list-scene/useActions.js +3 -4
  108. package/es/radio/index.js +1 -2
  109. package/es/rate/index.js +1 -2
  110. package/es/render-empty/index.js +1 -2
  111. package/es/render-empty/render-empty.js +19 -16
  112. package/es/result/index.js +1 -2
  113. package/es/row/index.js +1 -2
  114. package/es/select/index.js +3 -3
  115. package/es/select/index.js.map +1 -1
  116. package/es/select/select.js +31 -0
  117. package/es/select/select.js.map +1 -0
  118. package/es/select/select.less +11 -0
  119. package/es/skeleton/index.js +1 -2
  120. package/es/slider/index.js +1 -2
  121. package/es/spin/index.js +1 -2
  122. package/es/statistic/index.js +1 -2
  123. package/es/steps/index.js +1 -2
  124. package/es/steps/steps.js +51 -35
  125. package/es/svg-components/illustration-403.js +206 -58
  126. package/es/svg-components/illustration-404.js +290 -75
  127. package/es/svg-components/illustration-500.js +321 -83
  128. package/es/svg-components/illustration-empty.js +54 -15
  129. package/es/svg-components/illustration-failure.js +112 -36
  130. package/es/svg-components/illustration-no-access.js +114 -35
  131. package/es/svg-components/illustration-no-chart.js +134 -37
  132. package/es/svg-components/illustration-no-result.js +92 -32
  133. package/es/svg-components/illustration-offline.js +131 -43
  134. package/es/svg-components/illustration-success.js +137 -43
  135. package/es/svg-components/index.js +1 -2
  136. package/es/switch/index.js +1 -2
  137. package/es/table/assets/image-loading-background.js +45 -17
  138. package/es/table/assets/image-loading.js +26 -5
  139. package/es/table/constants.js +1 -2
  140. package/es/table/context.js +1 -2
  141. package/es/table/hooks/index.js +1 -2
  142. package/es/table/hooks/use-column-setting.js +13 -16
  143. package/es/table/index.js +1 -2
  144. package/es/table/table.js +80 -53
  145. package/es/table/table.js.map +1 -1
  146. package/es/table/table.less +24 -5
  147. package/es/table/table.stories.js +148 -139
  148. package/es/table/utils.js +17 -18
  149. package/es/tabs/index.js +1 -2
  150. package/es/tag/index.js +2 -123
  151. package/es/tag/index.js.map +1 -1
  152. package/es/time-picker/index.js +1 -2
  153. package/es/timeline/index.js +1 -2
  154. package/es/title/index.js +34 -20
  155. package/es/tntd-cascader/AntdCascader/component/DisabledContext.js +9 -5
  156. package/es/tntd-cascader/AntdCascader/component/FormItemInputContext.js +1 -2
  157. package/es/tntd-cascader/AntdCascader/component/SizeContext.js +1 -2
  158. package/es/tntd-cascader/AntdCascader/component/context.js +5 -7
  159. package/es/tntd-cascader/AntdCascader/component/defaultRenderEmpty.js +22 -10
  160. package/es/tntd-cascader/AntdCascader/component/getIcons.js +72 -50
  161. package/es/tntd-cascader/AntdCascader/component/useCompactItemContext.js +22 -20
  162. package/es/tntd-cascader/AntdCascader/config/utils.js +17 -18
  163. package/es/tntd-cascader/AntdCascader/config/warning.js +9 -10
  164. package/es/tntd-cascader/AntdCascader/index.js +189 -118
  165. package/es/tntd-cascader/AntdCascader/interface.js +1 -2
  166. package/es/tntd-cascader/index.js +1 -2
  167. package/es/tntd-cascader/rc-cascader/Cascader.js +256 -239
  168. package/es/tntd-cascader/rc-cascader/OptionList/Checkbox.js +21 -11
  169. package/es/tntd-cascader/rc-cascader/OptionList/Column.js +175 -116
  170. package/es/tntd-cascader/rc-cascader/OptionList/index.js +180 -128
  171. package/es/tntd-cascader/rc-cascader/OptionList/useActive.js +22 -19
  172. package/es/tntd-cascader/rc-cascader/OptionList/useKeyboard.js +144 -137
  173. package/es/tntd-cascader/rc-cascader/context.js +1 -2
  174. package/es/tntd-cascader/rc-cascader/hooks/useDisplayValues.js +44 -37
  175. package/es/tntd-cascader/rc-cascader/hooks/useEntities.js +25 -24
  176. package/es/tntd-cascader/rc-cascader/hooks/useMissingValues.js +15 -17
  177. package/es/tntd-cascader/rc-cascader/hooks/useRefFunc.js +7 -8
  178. package/es/tntd-cascader/rc-cascader/hooks/useSearchConfig.js +20 -21
  179. package/es/tntd-cascader/rc-cascader/hooks/useSearchOptions.js +51 -41
  180. package/es/tntd-cascader/rc-cascader/index.js +1 -2
  181. package/es/tntd-cascader/rc-cascader/utils/commonUtil.js +33 -27
  182. package/es/tntd-cascader/rc-cascader/utils/treeUtil.js +29 -32
  183. package/es/tntd-cascader/rc-cascader/utils/warningPropsUtil.js +26 -23
  184. package/es/tntd-form/TntdForm/components/Item.js +42 -30
  185. package/es/tntd-form/TntdForm/components/ItemComp.js +167 -158
  186. package/es/tntd-form/TntdForm/components/ItemComp.js.map +1 -1
  187. package/es/tntd-form/TntdForm/components/List.js +89 -78
  188. package/es/tntd-form/TntdForm/index.js +38 -33
  189. package/es/tntd-form/TntdForm/interface.js +1 -2
  190. package/es/tntd-form/TntdForm/store.js +1 -2
  191. package/es/tntd-form/TntdForm/utils.js +158 -168
  192. package/es/tntd-form/index.js +1 -2
  193. package/es/tntd-icon/fonts/iconfont.js +36 -53
  194. package/es/tntd-icon/index.js +23 -17
  195. package/es/tntd-layout/ActionsContext.js +1 -2
  196. package/es/tntd-layout/AppList.js +135 -77
  197. package/es/tntd-layout/Application.js +42 -29
  198. package/es/tntd-layout/Avatar.js +80 -42
  199. package/es/tntd-layout/CompatibleLanguage.js +93 -56
  200. package/es/tntd-layout/EnterpriseLayout/Avatar.js +93 -47
  201. package/es/tntd-layout/EnterpriseLayout/Language.js +56 -34
  202. package/es/tntd-layout/EnterpriseLayout/Theme.js +45 -24
  203. package/es/tntd-layout/EnterpriseLayout/index.js +17 -9
  204. package/es/tntd-layout/GlobalNavigation/NavigationPopup.js +212 -153
  205. package/es/tntd-layout/GlobalNavigation/index.js +84 -50
  206. package/es/tntd-layout/Header.js +59 -26
  207. package/es/tntd-layout/HeaderActions.js +83 -34
  208. package/es/tntd-layout/HeaderNavs.js +46 -35
  209. package/es/tntd-layout/HeaderTabs.js +176 -140
  210. package/es/tntd-layout/Iconfont.js +1 -2
  211. package/es/tntd-layout/Language.js +55 -33
  212. package/es/tntd-layout/Layout.js +176 -78
  213. package/es/tntd-layout/Logo.js +52 -40
  214. package/es/tntd-layout/OrgAppList.js +208 -139
  215. package/es/tntd-layout/SideMenu.js +230 -160
  216. package/es/tntd-layout/Theme.js +47 -29
  217. package/es/tntd-layout/createActions.js +28 -29
  218. package/es/tntd-layout/images/index.js +31 -32
  219. package/es/tntd-layout/index.js +92 -60
  220. package/es/tntd-layout/paaslayout/CompactSideMenu.js +109 -65
  221. package/es/tntd-layout/paaslayout/Header.js +37 -14
  222. package/es/tntd-layout/paaslayout/Logo.js +2 -3
  223. package/es/tntd-layout/paaslayout/SideMenu.js +109 -63
  224. package/es/tntd-layout/paaslayout/index.js +159 -79
  225. package/es/tntd-layout/storage.js +18 -11
  226. package/es/tntd-modal/index.js +73 -32
  227. package/es/tntd-second-page/index.js +47 -24
  228. package/es/tntd-select/DropDownWrap.js +73 -52
  229. package/es/tntd-select/index.js +574 -492
  230. package/es/tooltip/index.js +1 -2
  231. package/es/transfer/index.js +1 -2
  232. package/es/tree/index.js +1 -2
  233. package/es/tree-select/index.js +1 -2
  234. package/es/typography/index.js +1 -2
  235. package/es/upload/index.js +1 -2
  236. package/es/utils/checkAuth.js +24 -21
  237. package/es/utils/findMenuInfoByPath.js +33 -30
  238. package/es/utils/index.js +65 -59
  239. package/es/version/index.js +1 -2
  240. package/lib/affix/index.d.ts +3 -3
  241. package/lib/affix/index.js +23 -22
  242. package/lib/affix/index.js.map +1 -1
  243. package/lib/alert/index.d.ts +3 -3
  244. package/lib/alert/index.js +23 -22
  245. package/lib/alert/index.js.map +1 -1
  246. package/lib/anchor/index.d.ts +3 -3
  247. package/lib/anchor/index.js +23 -22
  248. package/lib/anchor/index.js.map +1 -1
  249. package/lib/array-input/icon.js +33 -12
  250. package/lib/array-input/index.js +254 -150
  251. package/lib/array-input/index.js.map +1 -1
  252. package/lib/auth-context/index.js +10 -4
  253. package/lib/auto-complete/index.d.ts +3 -3
  254. package/lib/auto-complete/index.js +23 -22
  255. package/lib/auto-complete/index.js.map +1 -1
  256. package/lib/avatar/index.d.ts +3 -3
  257. package/lib/avatar/index.js +23 -22
  258. package/lib/avatar/index.js.map +1 -1
  259. package/lib/back-top/index.d.ts +3 -3
  260. package/lib/back-top/index.js +23 -22
  261. package/lib/back-top/index.js.map +1 -1
  262. package/lib/badge/index.d.ts +3 -3
  263. package/lib/badge/index.js +23 -22
  264. package/lib/badge/index.js.map +1 -1
  265. package/lib/breadcrumb/index.d.ts +3 -3
  266. package/lib/breadcrumb/index.js +23 -22
  267. package/lib/breadcrumb/index.js.map +1 -1
  268. package/lib/button/index.d.ts +3 -3
  269. package/lib/button/index.js +23 -22
  270. package/lib/button/index.js.map +1 -1
  271. package/lib/calendar/index.d.ts +3 -3
  272. package/lib/calendar/index.js +23 -22
  273. package/lib/calendar/index.js.map +1 -1
  274. package/lib/card/index.d.ts +3 -3
  275. package/lib/card/index.js +23 -22
  276. package/lib/card/index.js.map +1 -1
  277. package/lib/carousel/index.d.ts +3 -3
  278. package/lib/carousel/index.js +23 -22
  279. package/lib/carousel/index.js.map +1 -1
  280. package/lib/cascader/index.d.ts +3 -3
  281. package/lib/cascader/index.js +23 -22
  282. package/lib/cascader/index.js.map +1 -1
  283. package/lib/checkbox/index.d.ts +3 -3
  284. package/lib/checkbox/index.js +23 -22
  285. package/lib/checkbox/index.js.map +1 -1
  286. package/lib/col/index.d.ts +3 -3
  287. package/lib/col/index.js +23 -22
  288. package/lib/col/index.js.map +1 -1
  289. package/lib/collapse/index.d.ts +3 -3
  290. package/lib/collapse/index.js +24 -23
  291. package/lib/collapse/index.js.map +1 -1
  292. package/lib/color-picker/ColorPicker.js +156 -113
  293. package/lib/color-picker/ColorPicker.js.map +1 -1
  294. package/lib/color-picker/index.js +18 -14
  295. package/lib/color-picker/index.js.map +1 -1
  296. package/lib/columns/index.js +81 -41
  297. package/lib/columns/style/index.js +1 -2
  298. package/lib/comment/index.d.ts +3 -3
  299. package/lib/comment/index.js +23 -22
  300. package/lib/comment/index.js.map +1 -1
  301. package/lib/config-provider/config-provider.d.ts +1 -1
  302. package/lib/config-provider/config-provider.js +12 -8
  303. package/lib/config-provider/config-provider.js.map +1 -1
  304. package/lib/config-provider/index.d.ts +3 -3
  305. package/lib/config-provider/index.js +23 -22
  306. package/lib/config-provider/index.js.map +1 -1
  307. package/lib/date-picker/index.d.ts +3 -3
  308. package/lib/date-picker/index.js +23 -22
  309. package/lib/date-picker/index.js.map +1 -1
  310. package/lib/descriptions/descriptions.d.ts +4 -4
  311. package/lib/descriptions/descriptions.d.ts.map +1 -1
  312. package/lib/descriptions/descriptions.js +64 -55
  313. package/lib/descriptions/descriptions.js.map +1 -1
  314. package/lib/descriptions/index.d.ts +1 -1
  315. package/lib/descriptions/index.js +23 -22
  316. package/lib/descriptions/index.js.map +1 -1
  317. package/lib/development-login/LoginModal.js +110 -79
  318. package/lib/development-login/LoginModal.js.map +1 -1
  319. package/lib/development-login/index.js +42 -35
  320. package/lib/development-login/index.js.map +1 -1
  321. package/lib/divider/index.d.ts +3 -3
  322. package/lib/divider/index.js +23 -22
  323. package/lib/divider/index.js.map +1 -1
  324. package/lib/drawer/drawer.d.ts +1 -1
  325. package/lib/drawer/drawer.js +41 -30
  326. package/lib/drawer/drawer.js.map +1 -1
  327. package/lib/drawer/index.d.ts +2 -2
  328. package/lib/drawer/index.js +22 -20
  329. package/lib/drawer/index.js.map +1 -1
  330. package/lib/dropdown/index.d.ts +3 -3
  331. package/lib/dropdown/index.js +23 -22
  332. package/lib/dropdown/index.js.map +1 -1
  333. package/lib/ellipsis/Svg/CopySVG.js +70 -20
  334. package/lib/ellipsis/Svg/CopySVG.js.map +1 -1
  335. package/lib/ellipsis/Svg/TickSVG.js +48 -15
  336. package/lib/ellipsis/Svg/TickSVG.js.map +1 -1
  337. package/lib/ellipsis/index.js +146 -115
  338. package/lib/ellipsis/index.js.map +1 -1
  339. package/lib/ellipsis/index.less +9 -0
  340. package/lib/empty/empty.d.ts +2 -2
  341. package/lib/empty/empty.js +90 -75
  342. package/lib/empty/empty.js.map +1 -1
  343. package/lib/empty/empty.stories.js +19 -18
  344. package/lib/empty/index.d.ts +1 -1
  345. package/lib/empty/index.js +20 -19
  346. package/lib/empty/index.js.map +1 -1
  347. package/lib/exception/exception.js +46 -31
  348. package/lib/exception/exception.js.map +1 -1
  349. package/lib/exception/index.js +19 -18
  350. package/lib/exception/index.js.map +1 -1
  351. package/lib/form/index.d.ts +3 -3
  352. package/lib/form/index.js +23 -22
  353. package/lib/form/index.js.map +1 -1
  354. package/lib/handle/index.js +140 -104
  355. package/lib/handle/index.js.map +1 -1
  356. package/lib/icon/index.d.ts +3 -3
  357. package/lib/icon/index.js +23 -22
  358. package/lib/icon/index.js.map +1 -1
  359. package/lib/icon-list/index.js +7 -121
  360. package/lib/img/Contain.js +69 -44
  361. package/lib/img/Cover.js +117 -78
  362. package/lib/img/index.js +74 -60
  363. package/lib/img/index.js.map +1 -1
  364. package/lib/index.d.ts +1 -1
  365. package/lib/index.d.ts.map +1 -1
  366. package/lib/index.js +621 -186
  367. package/lib/index.js.map +1 -1
  368. package/lib/input/index.d.ts +4 -3
  369. package/lib/input/index.d.ts.map +1 -1
  370. package/lib/input/index.js +21 -22
  371. package/lib/input/index.js.map +1 -1
  372. package/lib/input/input.d.ts +25 -0
  373. package/lib/input/input.d.ts.map +1 -0
  374. package/lib/input/input.js +86 -0
  375. package/lib/input/input.js.map +1 -0
  376. package/lib/input/input.less +39 -0
  377. package/lib/input-number/index.d.ts +3 -3
  378. package/lib/input-number/index.js +23 -22
  379. package/lib/input-number/index.js.map +1 -1
  380. package/lib/label/index.d.ts +52 -0
  381. package/lib/label/index.d.ts.map +1 -0
  382. package/lib/label/index.js +150 -0
  383. package/lib/label/index.js.map +1 -0
  384. package/lib/label/label.less +60 -0
  385. package/lib/layout/index.d.ts +3 -3
  386. package/lib/layout/index.js +23 -22
  387. package/lib/layout/index.js.map +1 -1
  388. package/lib/list/index.d.ts +3 -3
  389. package/lib/list/index.js +23 -22
  390. package/lib/list/index.js.map +1 -1
  391. package/lib/loading-button/index.js +58 -55
  392. package/lib/loading-button/index.js.map +1 -1
  393. package/lib/locale/default.js +12 -10
  394. package/lib/locale/default.js.map +1 -1
  395. package/lib/locale/en_US.js +38 -36
  396. package/lib/locale/en_US.js.map +1 -1
  397. package/lib/locale/index.js +36 -18
  398. package/lib/locale/index.js.map +1 -1
  399. package/lib/locale/zh_CN.js +38 -36
  400. package/lib/locale/zh_CN.js.map +1 -1
  401. package/lib/locale-provider/index.d.ts +3 -3
  402. package/lib/locale-provider/index.js +26 -25
  403. package/lib/locale-provider/index.js.map +1 -1
  404. package/lib/mention/index.d.ts +3 -3
  405. package/lib/mention/index.js +23 -22
  406. package/lib/mention/index.js.map +1 -1
  407. package/lib/mentions/index.d.ts +3 -3
  408. package/lib/mentions/index.js +23 -22
  409. package/lib/mentions/index.js.map +1 -1
  410. package/lib/menu/index.d.ts +3 -3
  411. package/lib/menu/index.js +23 -22
  412. package/lib/menu/index.js.map +1 -1
  413. package/lib/message/index.d.ts +3 -3
  414. package/lib/message/index.js +23 -22
  415. package/lib/message/index.js.map +1 -1
  416. package/lib/modal/index.d.ts +1 -1
  417. package/lib/modal/index.js +22 -21
  418. package/lib/modal/index.js.map +1 -1
  419. package/lib/modal/modal.d.ts +9 -9
  420. package/lib/modal/modal.js +53 -49
  421. package/lib/modal/modal.js.map +1 -1
  422. package/lib/notification/index.d.ts +3 -3
  423. package/lib/notification/index.js +23 -22
  424. package/lib/notification/index.js.map +1 -1
  425. package/lib/page/Box.js +66 -40
  426. package/lib/page/index.js +147 -95
  427. package/lib/page/utils.js +22 -16
  428. package/lib/page-header/index.d.ts +3 -3
  429. package/lib/page-header/index.js +23 -22
  430. package/lib/page-header/index.js.map +1 -1
  431. package/lib/pagination/index.d.ts +3 -3
  432. package/lib/pagination/index.js +23 -22
  433. package/lib/pagination/index.js.map +1 -1
  434. package/lib/popconfirm/index.d.ts +3 -3
  435. package/lib/popconfirm/index.js +23 -22
  436. package/lib/popconfirm/index.js.map +1 -1
  437. package/lib/popover/index.d.ts +3 -3
  438. package/lib/popover/index.js +23 -22
  439. package/lib/popover/index.js.map +1 -1
  440. package/lib/prev-locale.js +67 -53
  441. package/lib/progress/index.d.ts +3 -3
  442. package/lib/progress/index.js +23 -22
  443. package/lib/progress/index.js.map +1 -1
  444. package/lib/query-form/Field/Checkbox.js +28 -22
  445. package/lib/query-form/Field/Select.js +79 -68
  446. package/lib/query-form/Field/Select.js.map +1 -1
  447. package/lib/query-form/Field/SelectInput.js +85 -73
  448. package/lib/query-form/Field/SelectInput.js.map +1 -1
  449. package/lib/query-form/Field/fieldsMap.d.ts +2 -2
  450. package/lib/query-form/Field/fieldsMap.js +34 -32
  451. package/lib/query-form/Field/index.d.ts +0 -6
  452. package/lib/query-form/Field/index.d.ts.map +1 -1
  453. package/lib/query-form/Field/index.js +139 -95
  454. package/lib/query-form/Field/index.js.map +1 -1
  455. package/lib/query-form/createActions.js +53 -50
  456. package/lib/query-form/index.d.ts +0 -9
  457. package/lib/query-form/index.d.ts.map +1 -1
  458. package/lib/query-form/index.js +377 -286
  459. package/lib/query-form/index.js.map +1 -1
  460. package/lib/query-form/useForm.js +11 -11
  461. package/lib/query-list-scene/List.d.ts +0 -13
  462. package/lib/query-list-scene/List.d.ts.map +1 -1
  463. package/lib/query-list-scene/List.js +360 -289
  464. package/lib/query-list-scene/List.js.map +1 -1
  465. package/lib/query-list-scene/QueryForm.d.ts +0 -3
  466. package/lib/query-list-scene/QueryForm.d.ts.map +1 -1
  467. package/lib/query-list-scene/QueryForm.js +161 -103
  468. package/lib/query-list-scene/QueryListScene.d.ts +0 -1
  469. package/lib/query-list-scene/QueryListScene.d.ts.map +1 -1
  470. package/lib/query-list-scene/QueryListScene.js +66 -31
  471. package/lib/query-list-scene/Title.js +15 -9
  472. package/lib/query-list-scene/Toolbar.js +31 -20
  473. package/lib/query-list-scene/createActions.js +79 -64
  474. package/lib/query-list-scene/index.js +28 -24
  475. package/lib/query-list-scene/useActions.js +11 -11
  476. package/lib/radio/index.d.ts +3 -3
  477. package/lib/radio/index.js +23 -22
  478. package/lib/radio/index.js.map +1 -1
  479. package/lib/rate/index.d.ts +3 -3
  480. package/lib/rate/index.js +23 -22
  481. package/lib/rate/index.js.map +1 -1
  482. package/lib/render-empty/index.js +8 -4
  483. package/lib/render-empty/render-empty.js +28 -22
  484. package/lib/render-empty/render-empty.js.map +1 -1
  485. package/lib/result/index.d.ts +3 -3
  486. package/lib/result/index.js +23 -22
  487. package/lib/result/index.js.map +1 -1
  488. package/lib/row/index.d.ts +3 -3
  489. package/lib/row/index.js +23 -22
  490. package/lib/row/index.js.map +1 -1
  491. package/lib/select/index.d.ts +4 -3
  492. package/lib/select/index.d.ts.map +1 -1
  493. package/lib/select/index.js +22 -22
  494. package/lib/select/index.js.map +1 -1
  495. package/lib/select/select.d.ts +12 -0
  496. package/lib/select/select.d.ts.map +1 -0
  497. package/lib/select/select.js +40 -0
  498. package/lib/select/select.js.map +1 -0
  499. package/lib/select/select.less +11 -0
  500. package/lib/skeleton/index.d.ts +3 -3
  501. package/lib/skeleton/index.js +23 -22
  502. package/lib/skeleton/index.js.map +1 -1
  503. package/lib/slider/index.d.ts +3 -3
  504. package/lib/slider/index.js +23 -22
  505. package/lib/slider/index.js.map +1 -1
  506. package/lib/spin/index.d.ts +3 -3
  507. package/lib/spin/index.js +23 -22
  508. package/lib/spin/index.js.map +1 -1
  509. package/lib/statistic/index.d.ts +3 -3
  510. package/lib/statistic/index.js +23 -22
  511. package/lib/statistic/index.js.map +1 -1
  512. package/lib/steps/index.d.ts +1 -1
  513. package/lib/steps/index.js +20 -19
  514. package/lib/steps/index.js.map +1 -1
  515. package/lib/steps/steps.d.ts +3 -3
  516. package/lib/steps/steps.js +72 -59
  517. package/lib/steps/steps.js.map +1 -1
  518. package/lib/svg-components/illustration-403.d.ts +1 -1
  519. package/lib/svg-components/illustration-403.js +217 -84
  520. package/lib/svg-components/illustration-403.js.map +1 -1
  521. package/lib/svg-components/illustration-404.d.ts +1 -1
  522. package/lib/svg-components/illustration-404.js +301 -101
  523. package/lib/svg-components/illustration-404.js.map +1 -1
  524. package/lib/svg-components/illustration-500.d.ts +1 -1
  525. package/lib/svg-components/illustration-500.js +332 -109
  526. package/lib/svg-components/illustration-500.js.map +1 -1
  527. package/lib/svg-components/illustration-empty.d.ts +1 -1
  528. package/lib/svg-components/illustration-empty.js +65 -41
  529. package/lib/svg-components/illustration-empty.js.map +1 -1
  530. package/lib/svg-components/illustration-failure.d.ts +1 -1
  531. package/lib/svg-components/illustration-failure.js +123 -62
  532. package/lib/svg-components/illustration-failure.js.map +1 -1
  533. package/lib/svg-components/illustration-no-access.d.ts +1 -1
  534. package/lib/svg-components/illustration-no-access.js +125 -61
  535. package/lib/svg-components/illustration-no-access.js.map +1 -1
  536. package/lib/svg-components/illustration-no-chart.d.ts +1 -1
  537. package/lib/svg-components/illustration-no-chart.js +145 -63
  538. package/lib/svg-components/illustration-no-chart.js.map +1 -1
  539. package/lib/svg-components/illustration-no-result.d.ts +1 -1
  540. package/lib/svg-components/illustration-no-result.js +103 -58
  541. package/lib/svg-components/illustration-no-result.js.map +1 -1
  542. package/lib/svg-components/illustration-offline.d.ts +1 -1
  543. package/lib/svg-components/illustration-offline.js +142 -69
  544. package/lib/svg-components/illustration-offline.js.map +1 -1
  545. package/lib/svg-components/illustration-success.d.ts +1 -1
  546. package/lib/svg-components/illustration-success.js +148 -69
  547. package/lib/svg-components/illustration-success.js.map +1 -1
  548. package/lib/svg-components/index.js +75 -26
  549. package/lib/switch/index.d.ts +3 -3
  550. package/lib/switch/index.js +23 -22
  551. package/lib/switch/index.js.map +1 -1
  552. package/lib/table/assets/image-loading-background.d.ts +1 -1
  553. package/lib/table/assets/image-loading-background.js +56 -43
  554. package/lib/table/assets/image-loading-background.js.map +1 -1
  555. package/lib/table/assets/image-loading.d.ts +1 -1
  556. package/lib/table/assets/image-loading.js +37 -31
  557. package/lib/table/assets/image-loading.js.map +1 -1
  558. package/lib/table/constants.js +6 -3
  559. package/lib/table/context.js +7 -4
  560. package/lib/table/hooks/index.js +14 -16
  561. package/lib/table/hooks/index.js.map +1 -1
  562. package/lib/table/hooks/use-column-setting.d.ts +1 -1
  563. package/lib/table/hooks/use-column-setting.js +37 -20
  564. package/lib/table/hooks/use-column-setting.js.map +1 -1
  565. package/lib/table/index.d.ts +1 -1
  566. package/lib/table/index.js +20 -19
  567. package/lib/table/index.js.map +1 -1
  568. package/lib/table/table.d.ts +6 -4
  569. package/lib/table/table.d.ts.map +1 -1
  570. package/lib/table/table.js +114 -92
  571. package/lib/table/table.js.map +1 -1
  572. package/lib/table/table.less +24 -5
  573. package/lib/table/table.stories.js +182 -154
  574. package/lib/table/utils.d.ts +1 -1
  575. package/lib/table/utils.js +24 -25
  576. package/lib/table/utils.js.map +1 -1
  577. package/lib/tabs/index.d.ts +3 -3
  578. package/lib/tabs/index.js +23 -22
  579. package/lib/tabs/index.js.map +1 -1
  580. package/lib/tag/index.d.ts +3 -52
  581. package/lib/tag/index.d.ts.map +1 -1
  582. package/lib/tag/index.js +22 -155
  583. package/lib/tag/index.js.map +1 -1
  584. package/lib/time-picker/index.d.ts +3 -3
  585. package/lib/time-picker/index.js +23 -22
  586. package/lib/time-picker/index.js.map +1 -1
  587. package/lib/timeline/index.d.ts +3 -3
  588. package/lib/timeline/index.js +23 -22
  589. package/lib/timeline/index.js.map +1 -1
  590. package/lib/title/index.js +45 -26
  591. package/lib/tntd-cascader/AntdCascader/component/DisabledContext.js +18 -31
  592. package/lib/tntd-cascader/AntdCascader/component/DisabledContext.js.map +1 -1
  593. package/lib/tntd-cascader/AntdCascader/component/FormItemInputContext.js +9 -26
  594. package/lib/tntd-cascader/AntdCascader/component/FormItemInputContext.js.map +1 -1
  595. package/lib/tntd-cascader/AntdCascader/component/SizeContext.js +9 -26
  596. package/lib/tntd-cascader/AntdCascader/component/SizeContext.js.map +1 -1
  597. package/lib/tntd-cascader/AntdCascader/component/context.js +18 -16
  598. package/lib/tntd-cascader/AntdCascader/component/defaultRenderEmpty.js +36 -39
  599. package/lib/tntd-cascader/AntdCascader/component/defaultRenderEmpty.js.map +1 -1
  600. package/lib/tntd-cascader/AntdCascader/component/getIcons.js +81 -75
  601. package/lib/tntd-cascader/AntdCascader/component/getIcons.js.map +1 -1
  602. package/lib/tntd-cascader/AntdCascader/component/useCompactItemContext.js +31 -50
  603. package/lib/tntd-cascader/AntdCascader/component/useCompactItemContext.js.map +1 -1
  604. package/lib/tntd-cascader/AntdCascader/config/utils.js +29 -27
  605. package/lib/tntd-cascader/AntdCascader/config/warning.js +19 -35
  606. package/lib/tntd-cascader/AntdCascader/config/warning.js.map +1 -1
  607. package/lib/tntd-cascader/AntdCascader/index.js +216 -162
  608. package/lib/tntd-cascader/AntdCascader/index.js.map +1 -1
  609. package/lib/tntd-cascader/AntdCascader/interface.js +13 -6
  610. package/lib/tntd-cascader/img/no-data-s.png +0 -0
  611. package/lib/tntd-cascader/index.js +12 -8
  612. package/lib/tntd-cascader/rc-cascader/Cascader.js +325 -284
  613. package/lib/tntd-cascader/rc-cascader/Cascader.js.map +1 -1
  614. package/lib/tntd-cascader/rc-cascader/OptionList/Checkbox.js +30 -41
  615. package/lib/tntd-cascader/rc-cascader/OptionList/Checkbox.js.map +1 -1
  616. package/lib/tntd-cascader/rc-cascader/OptionList/Column.js +198 -152
  617. package/lib/tntd-cascader/rc-cascader/OptionList/Column.js.map +1 -1
  618. package/lib/tntd-cascader/rc-cascader/OptionList/index.js +223 -163
  619. package/lib/tntd-cascader/rc-cascader/OptionList/index.js.map +1 -1
  620. package/lib/tntd-cascader/rc-cascader/OptionList/useActive.js +40 -48
  621. package/lib/tntd-cascader/rc-cascader/OptionList/useActive.js.map +1 -1
  622. package/lib/tntd-cascader/rc-cascader/OptionList/useKeyboard.js +179 -166
  623. package/lib/tntd-cascader/rc-cascader/OptionList/useKeyboard.js.map +1 -1
  624. package/lib/tntd-cascader/rc-cascader/context.js +11 -27
  625. package/lib/tntd-cascader/rc-cascader/context.js.map +1 -1
  626. package/lib/tntd-cascader/rc-cascader/hooks/useDisplayValues.js +62 -63
  627. package/lib/tntd-cascader/rc-cascader/hooks/useDisplayValues.js.map +1 -1
  628. package/lib/tntd-cascader/rc-cascader/hooks/useEntities.js +39 -49
  629. package/lib/tntd-cascader/rc-cascader/hooks/useEntities.js.map +1 -1
  630. package/lib/tntd-cascader/rc-cascader/hooks/useMissingValues.js +26 -41
  631. package/lib/tntd-cascader/rc-cascader/hooks/useMissingValues.js.map +1 -1
  632. package/lib/tntd-cascader/rc-cascader/hooks/useRefFunc.js +16 -33
  633. package/lib/tntd-cascader/rc-cascader/hooks/useRefFunc.js.map +1 -1
  634. package/lib/tntd-cascader/rc-cascader/hooks/useSearchConfig.js +30 -51
  635. package/lib/tntd-cascader/rc-cascader/hooks/useSearchConfig.js.map +1 -1
  636. package/lib/tntd-cascader/rc-cascader/hooks/useSearchOptions.js +75 -65
  637. package/lib/tntd-cascader/rc-cascader/hooks/useSearchOptions.js.map +1 -1
  638. package/lib/tntd-cascader/rc-cascader/index.js +9 -7
  639. package/lib/tntd-cascader/rc-cascader/utils/commonUtil.js +49 -38
  640. package/lib/tntd-cascader/rc-cascader/utils/treeUtil.js +42 -39
  641. package/lib/tntd-cascader/rc-cascader/utils/warningPropsUtil.js +34 -30
  642. package/lib/tntd-form/TntdForm/components/Item.js +55 -61
  643. package/lib/tntd-form/TntdForm/components/Item.js.map +1 -1
  644. package/lib/tntd-form/TntdForm/components/ItemComp.js +203 -190
  645. package/lib/tntd-form/TntdForm/components/ItemComp.js.map +1 -1
  646. package/lib/tntd-form/TntdForm/components/List.js +118 -111
  647. package/lib/tntd-form/TntdForm/components/List.js.map +1 -1
  648. package/lib/tntd-form/TntdForm/index.js +61 -67
  649. package/lib/tntd-form/TntdForm/index.js.map +1 -1
  650. package/lib/tntd-form/TntdForm/interface.js +4 -2
  651. package/lib/tntd-form/TntdForm/store.js +8 -7
  652. package/lib/tntd-form/TntdForm/utils.js +182 -184
  653. package/lib/tntd-form/index.js +12 -8
  654. package/lib/tntd-icon/fonts/iconfont.js +36 -53
  655. package/lib/tntd-icon/index.js +40 -25
  656. package/lib/tntd-layout/ActionsContext.js +8 -4
  657. package/lib/tntd-layout/AppList.js +173 -224
  658. package/lib/tntd-layout/AppList.js.map +1 -1
  659. package/lib/tntd-layout/Application.js +75 -111
  660. package/lib/tntd-layout/Application.js.map +1 -1
  661. package/lib/tntd-layout/Avatar.js +100 -135
  662. package/lib/tntd-layout/Avatar.js.map +1 -1
  663. package/lib/tntd-layout/CompatibleLanguage.js +128 -180
  664. package/lib/tntd-layout/CompatibleLanguage.js.map +1 -1
  665. package/lib/tntd-layout/EnterpriseLayout/Avatar.js +117 -146
  666. package/lib/tntd-layout/EnterpriseLayout/Avatar.js.map +1 -1
  667. package/lib/tntd-layout/EnterpriseLayout/Language.js +73 -90
  668. package/lib/tntd-layout/EnterpriseLayout/Language.js.map +1 -1
  669. package/lib/tntd-layout/EnterpriseLayout/Theme.js +69 -102
  670. package/lib/tntd-layout/EnterpriseLayout/Theme.js.map +1 -1
  671. package/lib/tntd-layout/EnterpriseLayout/index.js +28 -17
  672. package/lib/tntd-layout/GlobalNavigation/NavigationPopup.js +283 -276
  673. package/lib/tntd-layout/GlobalNavigation/NavigationPopup.js.map +1 -1
  674. package/lib/tntd-layout/GlobalNavigation/index.js +108 -115
  675. package/lib/tntd-layout/GlobalNavigation/index.js.map +1 -1
  676. package/lib/tntd-layout/Header.js +77 -136
  677. package/lib/tntd-layout/Header.js.map +1 -1
  678. package/lib/tntd-layout/HeaderActions.js +105 -106
  679. package/lib/tntd-layout/HeaderActions.js.map +1 -1
  680. package/lib/tntd-layout/HeaderNavs.js +78 -107
  681. package/lib/tntd-layout/HeaderNavs.js.map +1 -1
  682. package/lib/tntd-layout/HeaderTabs.js +224 -316
  683. package/lib/tntd-layout/HeaderTabs.js.map +1 -1
  684. package/lib/tntd-layout/Iconfont.js +11 -7
  685. package/lib/tntd-layout/Language.js +69 -76
  686. package/lib/tntd-layout/Language.js.map +1 -1
  687. package/lib/tntd-layout/Layout.js +214 -171
  688. package/lib/tntd-layout/Layout.js.map +1 -1
  689. package/lib/tntd-layout/Logo.js +69 -144
  690. package/lib/tntd-layout/Logo.js.map +1 -1
  691. package/lib/tntd-layout/OrgAppList.js +238 -388
  692. package/lib/tntd-layout/OrgAppList.js.map +1 -1
  693. package/lib/tntd-layout/SideMenu.js +269 -408
  694. package/lib/tntd-layout/SideMenu.js.map +1 -1
  695. package/lib/tntd-layout/Theme.js +75 -93
  696. package/lib/tntd-layout/Theme.js.map +1 -1
  697. package/lib/tntd-layout/createActions.js +45 -34
  698. package/lib/tntd-layout/images/avatar/empty.png +0 -0
  699. package/lib/tntd-layout/images/avatar/female1.png +0 -0
  700. package/lib/tntd-layout/images/avatar/female2.png +0 -0
  701. package/lib/tntd-layout/images/avatar/female3.png +0 -0
  702. package/lib/tntd-layout/images/avatar/female4.png +0 -0
  703. package/lib/tntd-layout/images/avatar/female5.png +0 -0
  704. package/lib/tntd-layout/images/avatar/female6.png +0 -0
  705. package/lib/tntd-layout/images/avatar/male1.png +0 -0
  706. package/lib/tntd-layout/images/avatar/male2.png +0 -0
  707. package/lib/tntd-layout/images/avatar/male3.png +0 -0
  708. package/lib/tntd-layout/images/avatar/male4.png +0 -0
  709. package/lib/tntd-layout/images/avatar/male5.png +0 -0
  710. package/lib/tntd-layout/images/avatar/male6.png +0 -0
  711. package/lib/tntd-layout/images/index.js +68 -66
  712. package/lib/tntd-layout/index.js +137 -95
  713. package/lib/tntd-layout/index.js.map +1 -1
  714. package/lib/tntd-layout/paaslayout/CompactSideMenu.js +131 -182
  715. package/lib/tntd-layout/paaslayout/CompactSideMenu.js.map +1 -1
  716. package/lib/tntd-layout/paaslayout/Header.js +51 -79
  717. package/lib/tntd-layout/paaslayout/Header.js.map +1 -1
  718. package/lib/tntd-layout/paaslayout/Logo.js +15 -30
  719. package/lib/tntd-layout/paaslayout/SideMenu.js +131 -147
  720. package/lib/tntd-layout/paaslayout/SideMenu.js.map +1 -1
  721. package/lib/tntd-layout/paaslayout/index.js +205 -141
  722. package/lib/tntd-layout/paaslayout/index.js.map +1 -1
  723. package/lib/tntd-layout/storage.js +58 -30
  724. package/lib/tntd-modal/index.js +98 -62
  725. package/lib/tntd-modal/index.js.map +1 -1
  726. package/lib/tntd-second-page/index.js +60 -33
  727. package/lib/tntd-second-page/index.js.map +1 -1
  728. package/lib/tntd-select/DropDownWrap.d.ts +0 -10
  729. package/lib/tntd-select/DropDownWrap.d.ts.map +1 -1
  730. package/lib/tntd-select/DropDownWrap.js +102 -78
  731. package/lib/tntd-select/DropDownWrap.js.map +1 -1
  732. package/lib/tntd-select/index.d.ts +1 -12
  733. package/lib/tntd-select/index.d.ts.map +1 -1
  734. package/lib/tntd-select/index.js +617 -529
  735. package/lib/tntd-select/index.js.map +1 -1
  736. package/lib/tooltip/index.d.ts +3 -3
  737. package/lib/tooltip/index.js +23 -22
  738. package/lib/tooltip/index.js.map +1 -1
  739. package/lib/transfer/index.d.ts +3 -3
  740. package/lib/transfer/index.js +23 -22
  741. package/lib/transfer/index.js.map +1 -1
  742. package/lib/tree/index.d.ts +3 -3
  743. package/lib/tree/index.js +23 -22
  744. package/lib/tree/index.js.map +1 -1
  745. package/lib/tree-select/index.d.ts +3 -3
  746. package/lib/tree-select/index.js +23 -22
  747. package/lib/tree-select/index.js.map +1 -1
  748. package/lib/typography/index.d.ts +3 -3
  749. package/lib/typography/index.js +23 -22
  750. package/lib/typography/index.js.map +1 -1
  751. package/lib/upload/index.d.ts +3 -3
  752. package/lib/upload/index.js +23 -22
  753. package/lib/upload/index.js.map +1 -1
  754. package/lib/utils/checkAuth.js +34 -23
  755. package/lib/utils/findMenuInfoByPath.js +41 -34
  756. package/lib/utils/index.js +117 -80
  757. package/lib/utils/index.js.map +1 -1
  758. package/lib/version/index.d.ts +3 -3
  759. package/lib/version/index.js +23 -22
  760. package/lib/version/index.js.map +1 -1
  761. package/package.json +7 -10
  762. package/themes/default/variables.less +2 -2
  763. package/codemod/__testfixtures__/v1-to-v2-react.input.js +0 -24
  764. package/codemod/__testfixtures__/v1-to-v2-react.output.js +0 -23
  765. package/codemod/__testfixtures__/v1-to-v2.input.js +0 -2
  766. package/codemod/__testfixtures__/v1-to-v2.output.js +0 -2
  767. package/codemod/__tests__/v1-to-v2-test.js +0 -4
  768. package/codemod/v1-to-v2.js +0 -96
@@ -1,13 +1,10 @@
1
- var __rest = (this && this.__rest) || function (s, e) {
2
- var t = {};
3
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
- t[p] = s[p];
5
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
- t[p[i]] = s[p[i]];
9
- }
10
- return t;
1
+ var __rest = this && this.__rest || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
4
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
5
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
6
+ }
7
+ return t;
11
8
  };
12
9
  import React, { PureComponent } from 'react';
13
10
  import Select from '../select';
@@ -17,504 +14,589 @@ import DropDownWrap from './DropDownWrap';
17
14
  const ITEM_ELEMENT_NUMBER = 30;
18
15
  // Select size 配置
19
16
  const ITEM_HEIGHT_CFG = {
20
- small: 24,
21
- large: 40,
22
- default: 32,
17
+ small: 24,
18
+ large: 40,
19
+ default: 32
23
20
  };
24
21
  const ARROW_CODE = {
25
- 40: 'down',
26
- 38: 'up',
22
+ 40: 'down',
23
+ 38: 'up'
27
24
  };
28
25
  const DROPDOWN_HEIGHT = 224;
29
26
  const Option = Select.Option;
30
27
  class SuperSelect extends PureComponent {
31
- constructor(props) {
32
- super(props);
33
- Object.defineProperty(this, "turnChildren", {
34
- enumerable: true,
35
- configurable: true,
36
- writable: true,
37
- value: (children) => {
38
- if (!children)
39
- return [];
40
- let arr = [];
41
- if (children && children.props) {
42
- arr.push(children);
43
- }
44
- else {
45
- children.forEach((item) => {
46
- if (item) {
47
- if (item instanceof Array) {
48
- arr = arr.concat(item);
49
- }
50
- else {
51
- arr.push(item);
52
- }
53
- }
54
- });
55
- }
56
- return arr;
57
- }
58
- });
59
- Object.defineProperty(this, "formulaWidth", {
60
- enumerable: true,
61
- configurable: true,
62
- writable: true,
63
- value: () => {
64
- // 获取dom设置宽度
65
- const { children: arr2, dropdownMatchSelectWidth = true, maxWidth } = this.props;
66
- const selectDom = document.getElementById(this.id);
67
- const selectWidth = selectDom.clientWidth || selectDom.offsetWidth;
68
- let arr = [];
69
- let formulaMaxWidth = 10;
70
- if (!dropdownMatchSelectWidth) {
71
- formulaMaxWidth = maxWidth || 10;
72
- }
73
- if (!dropdownMatchSelectWidth && !maxWidth) {
74
- const children = this.turnChildren(arr2);
75
- for (let i = 0; i < children.length; i++) {
76
- const val = children[i].props.children;
77
- const textWidth = this.getTextPixelWith(val);
78
- arr.push(textWidth.toFixed(2));
79
- }
80
- if (arr.length > 0) {
81
- formulaMaxWidth = Math.max(...arr);
82
- }
83
- }
84
- this.setState({
85
- selectWidth,
86
- maxWidth: formulaMaxWidth,
87
- });
88
- }
89
- });
90
- // 获取单行文本的像素宽度
91
- Object.defineProperty(this, "getTextPixelWith", {
92
- enumerable: true,
93
- configurable: true,
94
- writable: true,
95
- value: (text, fontStyle = '14px') => {
96
- let canvas = document.createElement('canvas'); // 创建 canvas 画布
97
- let context = canvas.getContext('2d'); // 获取 canvas 绘图上下文环境
98
- context.font = fontStyle; // 设置字体样式,使用前设置好对应的 font 样式才能准确获取文字的像素长度
99
- let dimension = context.measureText(text); // 测量文字
100
- return dimension.width;
101
- }
102
- });
103
- Object.defineProperty(this, "getItemStyle", {
104
- enumerable: true,
105
- configurable: true,
106
- writable: true,
107
- value: (i) => ({
108
- position: 'absolute',
109
- top: this.ITEM_HEIGHT * i,
110
- width: '100%',
111
- height: this.ITEM_HEIGHT,
112
- })
113
- });
114
- Object.defineProperty(this, "preventEvent", {
115
- enumerable: true,
116
- configurable: true,
117
- writable: true,
118
- value: (e) => {
119
- e.preventDefault();
120
- }
121
- });
122
- Object.defineProperty(this, "addEvent", {
123
- enumerable: true,
124
- configurable: true,
125
- writable: true,
126
- value: () => {
127
- this.scrollEle = document.querySelector(`.${this.dropdownClassName}`);
128
- // 下拉菜单未展开时元素不存在
129
- if (!this.scrollEle)
130
- return;
131
- this.scrollEle.addEventListener('mousedown', this.preventEvent, false);
132
- this.scrollEle.addEventListener('scroll', this.onScroll, false);
133
- this.inputEle = document.querySelector(`#${this.id}`);
134
- if (!this.inputEle)
135
- return;
136
- this.inputEle.addEventListener('keydown', this.onKeyDown, false);
137
- }
138
- });
139
- // 模拟 antd select 按下 上下箭头 键时滚动列表
140
- Object.defineProperty(this, "onKeyDown", {
141
- enumerable: true,
142
- configurable: true,
143
- writable: true,
144
- value: (e) => {
145
- const { keyCode } = e || {};
146
- setTimeout(() => {
147
- const activeItem = document.querySelector(`.${this.dropdownClassName} .ant-select-dropdown-menu-item-active`);
148
- if (!activeItem)
149
- return;
150
- const { offsetTop } = activeItem;
151
- const isUp = ARROW_CODE[keyCode] === 'up';
152
- const isDown = ARROW_CODE[keyCode] === 'down';
153
- // 在所有列表第一行按上键
154
- if (offsetTop - this.prevTop > DROPDOWN_HEIGHT && isUp) {
155
- this.scrollEle.scrollTo(0, this.allHeight - DROPDOWN_HEIGHT);
156
- this.prevTop = this.allHeight;
157
- return;
158
- }
159
- // 在所有列表中最后一行按下键
160
- if (this.prevTop > offsetTop + DROPDOWN_HEIGHT && isDown) {
161
- this.scrollEle.scrollTo(0, 0);
162
- this.prevTop = 0;
163
- return;
164
- }
165
- this.prevTop = offsetTop;
166
- // 向下滚动到下拉框最后一行时,向下滚动一行的高度
167
- if (offsetTop > this.scrollEle.scrollTop + DROPDOWN_HEIGHT - this.ITEM_HEIGHT + 10 &&
168
- isDown) {
169
- this.scrollEle.scrollTo(0, this.scrollTop + this.ITEM_HEIGHT);
170
- return;
171
- }
172
- // 向上滚动到下拉框第一一行时,向上滚动一行的高度
173
- if (offsetTop < this.scrollEle.scrollTop && isUp) {
174
- this.scrollEle.scrollTo(0, this.scrollTop - this.ITEM_HEIGHT);
175
- }
176
- }, 100);
177
- }
178
- });
179
- Object.defineProperty(this, "onScroll", {
180
- enumerable: true,
181
- configurable: true,
182
- writable: true,
183
- value: () => this.throttleByHeight(this.onScrollReal)
184
- });
185
- Object.defineProperty(this, "onScrollReal", {
186
- enumerable: true,
187
- configurable: true,
188
- writable: true,
189
- value: () => {
190
- this.allList = this.getUseChildrenList();
191
- const { startIndex, endIndex } = this.getStartAndEndIndex();
192
- this.prevScrollTop = this.scrollTop;
193
- // 重新渲染列表组件 Wrap
194
- const allHeight = this.allList.length * this.ITEM_HEIGHT || 100;
195
- this.wrap.reactList(allHeight, startIndex, endIndex);
196
- }
197
- });
198
- Object.defineProperty(this, "throttleByHeight", {
199
- enumerable: true,
200
- configurable: true,
201
- writable: true,
202
- value: () => {
203
- this.scrollTop = this.scrollEle.scrollTop;
204
- // 滚动的高度
205
- let delta = this.prevScrollTop - this.scrollTop;
206
- delta = delta < 0 ? 0 - delta : delta;
207
- delta > this.reactDelta && this.onScrollReal();
208
- }
209
- });
210
- // 列表可展示所有 children
211
- Object.defineProperty(this, "getUseChildrenList", {
212
- enumerable: true,
213
- configurable: true,
214
- writable: true,
215
- value: () => this.state.filterChildren || this.state.children
216
- });
217
- Object.defineProperty(this, "getStartAndEndIndex", {
218
- enumerable: true,
219
- configurable: true,
220
- writable: true,
221
- value: () => {
222
- // 滚动后显示在列表可视区中的第一个 item 的 index
223
- const showIndex = Number((this.scrollTop / this.ITEM_HEIGHT).toFixed(0));
224
- const startIndex = showIndex - ITEM_ELEMENT_NUMBER < 0 ? 0 : showIndex - ITEM_ELEMENT_NUMBER / 2;
225
- const endIndex = showIndex + ITEM_ELEMENT_NUMBER;
226
- return { startIndex, endIndex };
227
- }
228
- });
229
- // 须使用 setTimeout 确保在 dom 加载完成之后添加事件
230
- Object.defineProperty(this, "setSuperDrowDownMenu", {
231
- enumerable: true,
232
- configurable: true,
233
- writable: true,
234
- value: (visible) => {
235
- if (!visible)
236
- return;
237
- this.allList = this.getUseChildrenList();
238
- if (!this.eventTimer || !this.scrollEle) {
239
- this.eventTimer = setTimeout(() => this.addEvent(), 0);
240
- }
241
- else {
242
- const allHeight = this.allList.length * this.ITEM_HEIGHT || 100;
243
- // 下拉列表单独重新渲染
244
- const { startIndex, endIndex } = this.getStartAndEndIndex();
245
- setTimeout(() => {
246
- this.wrap && this.wrap.reactList(allHeight, startIndex, endIndex);
247
- }, 0);
248
- }
249
- }
250
- });
251
- Object.defineProperty(this, "onDropdownVisibleChange", {
252
- enumerable: true,
253
- configurable: true,
254
- writable: true,
255
- value: (visible) => {
256
- const { onDropdownVisibleChange } = this.props;
257
- onDropdownVisibleChange && onDropdownVisibleChange(visible);
258
- const { value, children } = this.state;
259
- // 关闭下拉框前清空筛选条件,防止下次打开任然显示筛选后的 options
260
- if (!visible) {
261
- // 定时器确保关闭后再设置 filterChildren,防止列表刷新闪烁
262
- setTimeout(() => {
263
- this.setState({ filterChildren: null });
264
- this.setDefaultScrollTop(value);
265
- }, 100);
266
- // this.removeEvent();
267
- }
268
- else {
269
- // this.addEvent();
270
- if (value) {
271
- // 如果已有 value, 设置默认滚动位置
272
- this.setDefaultScrollTop();
273
- // 设置下拉列表显示数据
274
- this.setSuperDrowDownMenu(visible);
275
- }
276
- else if (!value && value !== 0 && children && children.length > 0) {
277
- // 无数据时,下拉回归至第一个
278
- const val = children[0].props.value;
279
- this.setDefaultScrollTop(val);
280
- }
281
- }
282
- }
283
- });
284
- Object.defineProperty(this, "onDeselect", {
285
- enumerable: true,
286
- configurable: true,
287
- writable: true,
288
- value: (value) => {
289
- const { onDeselect } = this.props;
290
- onDeselect && onDeselect(value);
291
- }
292
- });
293
- // 在搜索重新计算下拉滚动条高度
294
- Object.defineProperty(this, "onChange", {
295
- enumerable: true,
296
- configurable: true,
297
- writable: true,
298
- value: (value, opt) => {
299
- const { showSearch, onChange, autoClearSearchValue, maxCount, mode } = this.props;
300
- if (showSearch || this.isMultiple) {
301
- // 搜索模式下选择后是否需要重置搜索状态
302
- if (autoClearSearchValue !== false) {
303
- this.setState({ filterChildren: null }, () => {
304
- // 搜索成功后重新设置列表的总高度
305
- this.setSuperDrowDownMenu(true);
306
- });
307
- }
308
- }
309
- if (mode === 'multiple') {
310
- if (value.length <= maxCount) {
311
- this.setState({ value });
312
- }
313
- }
314
- else {
315
- this.setState({ value });
316
- }
317
- onChange && onChange(value, opt);
318
- if (mode !== 'multiple') {
319
- this.select && this.select.blur();
320
- }
321
- }
322
- });
323
- Object.defineProperty(this, "onSearch", {
324
- enumerable: true,
325
- configurable: true,
326
- writable: true,
327
- value: (v) => {
328
- const { showSearch, onSearch, filterOption, children: arr } = this.props;
329
- let children = this.turnChildren(arr);
330
- if (showSearch && filterOption !== false) {
331
- // 须根据 filterOption(如有该自定义函数)手动 filter 搜索匹配的列表
332
- let filterChildren = null;
333
- if (typeof filterOption === 'function') {
334
- filterChildren = children.filter((item) => filterOption(v, item));
335
- }
336
- else if (filterOption === undefined) {
337
- filterChildren = children.filter((item) => this.filterOption(v, item));
338
- }
339
- // 搜索框有值,去除disabled=true的children
340
- let newFilterChild = [];
341
- filterChildren &&
342
- filterChildren.forEach((item, index) => {
343
- if (!item.props.disabled) {
344
- newFilterChild.push(item);
345
- }
346
- });
347
- filterChildren = newFilterChild;
348
- // 设置下拉列表显示数据
349
- this.setState({ filterChildren: v === '' ? null : filterChildren }, () => {
350
- setTimeout(() => {
351
- // 搜索后需要重置滚动位置到0,防止上次 scrollTop 位置无数据
352
- if (filterChildren) {
353
- this.scrollTop = 0;
354
- this.scrollEle.scrollTo(0, 0);
355
- }
356
- // 搜索成功后需要重新设置列表的总高度
357
- this.setSuperDrowDownMenu(true);
358
- }, 0);
359
- });
360
- }
361
- onSearch && onSearch(v);
362
- }
363
- });
364
- Object.defineProperty(this, "filterOption", {
365
- enumerable: true,
366
- configurable: true,
367
- writable: true,
368
- value: (v, option) => {
369
- // 自定义过滤对应的 option 属性配置
370
- const filterProps = this.props.optionFilterProp || 'value';
371
- return `${option.props[filterProps]}`.indexOf(v) >= 0;
372
- }
373
- });
374
- Object.defineProperty(this, "setDefaultScrollTop", {
375
- enumerable: true,
376
- configurable: true,
377
- writable: true,
378
- value: (data) => {
379
- const { value } = this.state;
380
- const { children: arr } = this.props;
381
- const children = this.turnChildren(arr);
382
- let val = data || data === 0 ? data : value;
383
- for (let i = 0; i < children.length; i++) {
384
- const item = children[i];
385
- const itemValue = item.props.value;
386
- if (itemValue === val || (Array.isArray(val) && val.includes(itemValue))) {
387
- const targetScrollTop = i * this.ITEM_HEIGHT;
388
- setTimeout(() => {
389
- if (!this.scrollEle) {
390
- this.addEvent();
391
- }
392
- this.scrollEle && this.scrollEle.scrollTo(0, targetScrollTop);
393
- }, 100);
394
- return;
395
- }
396
- }
397
- }
398
- });
399
- Object.defineProperty(this, "removeEvent", {
400
- enumerable: true,
401
- configurable: true,
402
- writable: true,
403
- value: () => {
404
- if (!this.scrollEle)
405
- return;
406
- this.scrollEle.removeEventListener('mousedown', this.preventEvent, false);
407
- this.scrollEle.removeEventListener('scroll', this.onScroll, false);
408
- if (!this.inputEle)
409
- return;
410
- this.inputEle.removeEventListener('keydown', this.onKeyDown, false);
28
+ constructor(props) {
29
+ super(props);
30
+ Object.defineProperty(this, "turnChildren", {
31
+ enumerable: true,
32
+ configurable: true,
33
+ writable: true,
34
+ value: children => {
35
+ if (!children) return [];
36
+ let arr = [];
37
+ if (children && children.props) {
38
+ arr.push(children);
39
+ } else {
40
+ children.forEach(item => {
41
+ if (item) {
42
+ if (item instanceof Array) {
43
+ arr = arr.concat(item);
44
+ } else {
45
+ arr.push(item);
46
+ }
411
47
  }
48
+ });
49
+ }
50
+ return arr;
51
+ }
52
+ });
53
+ Object.defineProperty(this, "formulaWidth", {
54
+ enumerable: true,
55
+ configurable: true,
56
+ writable: true,
57
+ value: () => {
58
+ // 获取dom设置宽度
59
+ const {
60
+ children: arr2,
61
+ dropdownMatchSelectWidth = true,
62
+ maxWidth
63
+ } = this.props;
64
+ const selectDom = document.getElementById(this.id);
65
+ const selectWidth = selectDom.clientWidth || selectDom.offsetWidth;
66
+ let arr = [];
67
+ let formulaMaxWidth = 10;
68
+ if (!dropdownMatchSelectWidth) {
69
+ formulaMaxWidth = maxWidth || 10;
70
+ }
71
+ if (!dropdownMatchSelectWidth && !maxWidth) {
72
+ const children = this.turnChildren(arr2);
73
+ for (let i = 0; i < children.length; i++) {
74
+ const val = children[i].props.children;
75
+ const textWidth = this.getTextPixelWith(val);
76
+ arr.push(textWidth.toFixed(2));
77
+ }
78
+ if (arr.length > 0) {
79
+ formulaMaxWidth = Math.max(...arr);
80
+ }
81
+ }
82
+ this.setState({
83
+ selectWidth,
84
+ maxWidth: formulaMaxWidth
412
85
  });
413
- const { mode, defaultValue, value, optionHeight, children: arr } = props;
414
- this.isMultiple = ['tags', 'multiple'].includes(mode);
415
- const children = this.turnChildren(arr);
416
- // 设置默认 value
417
- let defaultV = this.isMultiple ? [] : '';
418
- defaultV = value || defaultValue || defaultV;
419
- this.state = {
420
- children: children || [],
421
- filterChildren: null,
422
- value: defaultV,
423
- maxWidth: null,
424
- selectWidth: null,
425
- };
426
- // 下拉菜单项行高
427
- this.ITEM_HEIGHT = optionHeight || ITEM_HEIGHT_CFG[props.size || 'default'];
428
- // 可视区 dom 高度
429
- this.visibleDomHeight = this.ITEM_HEIGHT * ITEM_ELEMENT_NUMBER;
430
- // 滚动时重新渲染的 scrollTop 判断值,大于 reactDelta 则刷新下拉列表
431
- this.reactDelta = this.visibleDomHeight / 3;
432
- // 是否拖动滚动条快速滚动状态
433
- this.isStopReact = false;
434
- // 上一次滚动的 scrollTop
435
- this.prevScrollTop = 0;
436
- // 上一次按下方向键时 scrollTop 值
437
- this.prevTop = 0;
438
- this.scrollTop = 0;
439
- // className
440
- this.dropdownClassName = `dc${+new Date()}`;
441
- this.id = `sid${+new Date()}`;
442
- }
443
- componentDidMount() {
444
- // defaultOpens=true 时添加滚动事件
86
+ }
87
+ });
88
+ // 获取单行文本的像素宽度
89
+ Object.defineProperty(this, "getTextPixelWith", {
90
+ enumerable: true,
91
+ configurable: true,
92
+ writable: true,
93
+ value: (text, fontStyle = '14px') => {
94
+ let canvas = document.createElement('canvas'); // 创建 canvas 画布
95
+ let context = canvas.getContext('2d'); // 获取 canvas 绘图上下文环境
96
+ context.font = fontStyle; // 设置字体样式,使用前设置好对应的 font 样式才能准确获取文字的像素长度
97
+ let dimension = context.measureText(text); // 测量文字
98
+ return dimension.width;
99
+ }
100
+ });
101
+ Object.defineProperty(this, "getItemStyle", {
102
+ enumerable: true,
103
+ configurable: true,
104
+ writable: true,
105
+ value: i => ({
106
+ position: 'absolute',
107
+ top: this.ITEM_HEIGHT * i,
108
+ width: '100%',
109
+ height: this.ITEM_HEIGHT
110
+ })
111
+ });
112
+ Object.defineProperty(this, "preventEvent", {
113
+ enumerable: true,
114
+ configurable: true,
115
+ writable: true,
116
+ value: e => {
117
+ e.preventDefault();
118
+ }
119
+ });
120
+ Object.defineProperty(this, "addEvent", {
121
+ enumerable: true,
122
+ configurable: true,
123
+ writable: true,
124
+ value: () => {
125
+ this.scrollEle = document.querySelector(`.${this.dropdownClassName}`);
126
+ // 下拉菜单未展开时元素不存在
127
+ if (!this.scrollEle) return;
128
+ this.scrollEle.addEventListener('mousedown', this.preventEvent, false);
129
+ this.scrollEle.addEventListener('scroll', this.onScroll, false);
130
+ this.inputEle = document.querySelector(`#${this.id}`);
131
+ if (!this.inputEle) return;
132
+ this.inputEle.addEventListener('keydown', this.onKeyDown, false);
133
+ }
134
+ });
135
+ // 模拟 antd select 按下 上下箭头 键时滚动列表
136
+ Object.defineProperty(this, "onKeyDown", {
137
+ enumerable: true,
138
+ configurable: true,
139
+ writable: true,
140
+ value: e => {
141
+ const {
142
+ keyCode
143
+ } = e || {};
445
144
  setTimeout(() => {
446
- this.addEvent();
447
- }, 500);
448
- const { children: arr } = this.props;
449
- const children = this.turnChildren(arr);
450
- // if (children && children.length > 0) {
451
- this.formulaWidth();
452
- // }
453
- }
454
- componentDidUpdate(prevProps) {
455
- const { mode, defaultValue, value, children } = this.props;
456
- let arr = this.turnChildren(children);
457
- if (prevProps.children !== children) {
458
- this.isMultiple = ['tags', 'multiple'].includes(mode);
145
+ const activeItem = document.querySelector(`.${this.dropdownClassName} .ant-select-dropdown-menu-item-active`);
146
+ if (!activeItem) return;
147
+ const {
148
+ offsetTop
149
+ } = activeItem;
150
+ const isUp = ARROW_CODE[keyCode] === 'up';
151
+ const isDown = ARROW_CODE[keyCode] === 'down';
152
+ // 在所有列表第一行按上键
153
+ if (offsetTop - this.prevTop > DROPDOWN_HEIGHT && isUp) {
154
+ this.scrollEle.scrollTo(0, this.allHeight - DROPDOWN_HEIGHT);
155
+ this.prevTop = this.allHeight;
156
+ return;
157
+ }
158
+ // 在所有列表中最后一行按下键
159
+ if (this.prevTop > offsetTop + DROPDOWN_HEIGHT && isDown) {
160
+ this.scrollEle.scrollTo(0, 0);
161
+ this.prevTop = 0;
162
+ return;
163
+ }
164
+ this.prevTop = offsetTop;
165
+ // 向下滚动到下拉框最后一行时,向下滚动一行的高度
166
+ if (offsetTop > this.scrollEle.scrollTop + DROPDOWN_HEIGHT - this.ITEM_HEIGHT + 10 && isDown) {
167
+ this.scrollEle.scrollTo(0, this.scrollTop + this.ITEM_HEIGHT);
168
+ return;
169
+ }
170
+ // 向上滚动到下拉框第一一行时,向上滚动一行的高度
171
+ if (offsetTop < this.scrollEle.scrollTop && isUp) {
172
+ this.scrollEle.scrollTo(0, this.scrollTop - this.ITEM_HEIGHT);
173
+ }
174
+ }, 100);
175
+ }
176
+ });
177
+ Object.defineProperty(this, "onScroll", {
178
+ enumerable: true,
179
+ configurable: true,
180
+ writable: true,
181
+ value: () => this.throttleByHeight(this.onScrollReal)
182
+ });
183
+ Object.defineProperty(this, "onScrollReal", {
184
+ enumerable: true,
185
+ configurable: true,
186
+ writable: true,
187
+ value: () => {
188
+ this.allList = this.getUseChildrenList();
189
+ const {
190
+ startIndex,
191
+ endIndex
192
+ } = this.getStartAndEndIndex();
193
+ this.prevScrollTop = this.scrollTop;
194
+ // 重新渲染列表组件 Wrap
195
+ const allHeight = this.allList.length * this.ITEM_HEIGHT || 100;
196
+ this.wrap.reactList(allHeight, startIndex, endIndex);
197
+ }
198
+ });
199
+ Object.defineProperty(this, "throttleByHeight", {
200
+ enumerable: true,
201
+ configurable: true,
202
+ writable: true,
203
+ value: () => {
204
+ this.scrollTop = this.scrollEle.scrollTop;
205
+ // 滚动的高度
206
+ let delta = this.prevScrollTop - this.scrollTop;
207
+ delta = delta < 0 ? 0 - delta : delta;
208
+ delta > this.reactDelta && this.onScrollReal();
209
+ }
210
+ });
211
+ // 列表可展示所有 children
212
+ Object.defineProperty(this, "getUseChildrenList", {
213
+ enumerable: true,
214
+ configurable: true,
215
+ writable: true,
216
+ value: () => this.state.filterChildren || this.state.children
217
+ });
218
+ Object.defineProperty(this, "getStartAndEndIndex", {
219
+ enumerable: true,
220
+ configurable: true,
221
+ writable: true,
222
+ value: () => {
223
+ // 滚动后显示在列表可视区中的第一个 item 的 index
224
+ const showIndex = Number((this.scrollTop / this.ITEM_HEIGHT).toFixed(0));
225
+ const startIndex = showIndex - ITEM_ELEMENT_NUMBER < 0 ? 0 : showIndex - ITEM_ELEMENT_NUMBER / 2;
226
+ const endIndex = showIndex + ITEM_ELEMENT_NUMBER;
227
+ return {
228
+ startIndex,
229
+ endIndex
230
+ };
231
+ }
232
+ });
233
+ // 须使用 setTimeout 确保在 dom 加载完成之后添加事件
234
+ Object.defineProperty(this, "setSuperDrowDownMenu", {
235
+ enumerable: true,
236
+ configurable: true,
237
+ writable: true,
238
+ value: visible => {
239
+ if (!visible) return;
240
+ this.allList = this.getUseChildrenList();
241
+ if (!this.eventTimer || !this.scrollEle) {
242
+ this.eventTimer = setTimeout(() => this.addEvent(), 0);
243
+ } else {
244
+ const allHeight = this.allList.length * this.ITEM_HEIGHT || 100;
245
+ // 下拉列表单独重新渲染
246
+ const {
247
+ startIndex,
248
+ endIndex
249
+ } = this.getStartAndEndIndex();
250
+ setTimeout(() => {
251
+ this.wrap && this.wrap.reactList(allHeight, startIndex, endIndex);
252
+ }, 0);
253
+ }
254
+ }
255
+ });
256
+ Object.defineProperty(this, "onDropdownVisibleChange", {
257
+ enumerable: true,
258
+ configurable: true,
259
+ writable: true,
260
+ value: visible => {
261
+ const {
262
+ onDropdownVisibleChange
263
+ } = this.props;
264
+ onDropdownVisibleChange && onDropdownVisibleChange(visible);
265
+ const {
266
+ value,
267
+ children
268
+ } = this.state;
269
+ // 关闭下拉框前清空筛选条件,防止下次打开任然显示筛选后的 options
270
+ if (!visible) {
271
+ // 定时器确保关闭后再设置 filterChildren,防止列表刷新闪烁
272
+ setTimeout(() => {
459
273
  this.setState({
460
- children: arr || [],
461
- filterChildren: null,
274
+ filterChildren: null
462
275
  });
463
- if (arr && arr.length > 0) {
464
- this.formulaWidth();
465
- }
276
+ this.setDefaultScrollTop(value);
277
+ }, 100);
278
+ // this.removeEvent();
279
+ } else {
280
+ // this.addEvent();
281
+ if (value) {
282
+ // 如果已有 value, 设置默认滚动位置
283
+ this.setDefaultScrollTop();
284
+ // 设置下拉列表显示数据
285
+ this.setSuperDrowDownMenu(visible);
286
+ } else if (!value && value !== 0 && children && children.length > 0) {
287
+ // 无数据时,下拉回归至第一个
288
+ const val = children[0].props.value;
289
+ this.setDefaultScrollTop(val);
290
+ }
466
291
  }
467
- if (prevProps.value !== value) {
468
- // 更新时设置默认 value
469
- let defaultV = this.isMultiple ? [] : '';
470
- defaultV = value || defaultValue || defaultV;
471
- this.setState({ value: defaultV });
292
+ }
293
+ });
294
+ Object.defineProperty(this, "onDeselect", {
295
+ enumerable: true,
296
+ configurable: true,
297
+ writable: true,
298
+ value: value => {
299
+ const {
300
+ onDeselect
301
+ } = this.props;
302
+ onDeselect && onDeselect(value);
303
+ }
304
+ });
305
+ // 在搜索重新计算下拉滚动条高度
306
+ Object.defineProperty(this, "onChange", {
307
+ enumerable: true,
308
+ configurable: true,
309
+ writable: true,
310
+ value: (value, opt) => {
311
+ const {
312
+ showSearch,
313
+ onChange,
314
+ autoClearSearchValue,
315
+ maxCount,
316
+ mode
317
+ } = this.props;
318
+ if (showSearch || this.isMultiple) {
319
+ // 搜索模式下选择后是否需要重置搜索状态
320
+ if (autoClearSearchValue !== false) {
321
+ this.setState({
322
+ filterChildren: null
323
+ }, () => {
324
+ // 搜索成功后重新设置列表的总高度
325
+ this.setSuperDrowDownMenu(true);
326
+ });
327
+ }
472
328
  }
473
- }
474
- componentWillUnmount() {
475
- this.removeEvent();
476
- }
477
- render() {
478
- const { maxWidth, selectWidth } = this.state;
479
- let _a = this.props, { dropdownStyle, optionLabelProp, dropdownClassName } = _a, props = __rest(_a, ["dropdownStyle", "optionLabelProp", "dropdownClassName"]);
480
- this.allList = this.getUseChildrenList();
481
- this.allHeight = this.allList.length * this.ITEM_HEIGHT || 100;
482
- const { startIndex, endIndex } = this.getStartAndEndIndex();
483
- let dynamicWidth = maxWidth;
484
- if (this.allList.length === 0 || maxWidth < selectWidth) {
485
- dynamicWidth = selectWidth;
329
+ if (mode === 'multiple') {
330
+ if (value.length <= maxCount) {
331
+ this.setState({
332
+ value
333
+ });
334
+ }
335
+ } else {
336
+ this.setState({
337
+ value
338
+ });
339
+ }
340
+ onChange && onChange(value, opt);
341
+ if (mode !== 'multiple') {
342
+ this.select && this.select.blur();
486
343
  }
487
- dropdownStyle = Object.assign(Object.assign({ maxHeight: `${DROPDOWN_HEIGHT}px` }, dropdownStyle), { overflow: 'auto', position: 'relative', maxWidth: dynamicWidth });
488
- const { value } = this.state;
489
- // 判断处于 antd Form 中时不自动设置 value
490
- const _props = Object.assign({}, props);
491
- // 先删除 value,再手动赋值,防止空 value 影响 placeholder
492
- delete _props.value;
493
- // value 为空字符会隐藏 placeholder,改为 undefined
494
- if (typeof value === 'string' && !value) {
495
- _props.value = undefined;
344
+ }
345
+ });
346
+ Object.defineProperty(this, "onSearch", {
347
+ enumerable: true,
348
+ configurable: true,
349
+ writable: true,
350
+ value: v => {
351
+ const {
352
+ showSearch,
353
+ onSearch,
354
+ filterOption,
355
+ children: arr
356
+ } = this.props;
357
+ let children = this.turnChildren(arr);
358
+ if (showSearch && filterOption !== false) {
359
+ // 须根据 filterOption(如有该自定义函数)手动 filter 搜索匹配的列表
360
+ let filterChildren = null;
361
+ if (typeof filterOption === 'function') {
362
+ filterChildren = children.filter(item => filterOption(v, item));
363
+ } else if (filterOption === undefined) {
364
+ filterChildren = children.filter(item => this.filterOption(v, item));
365
+ }
366
+ // 搜索框有值,去除disabled=true的children
367
+ let newFilterChild = [];
368
+ filterChildren && filterChildren.forEach((item, index) => {
369
+ if (!item.props.disabled) {
370
+ newFilterChild.push(item);
371
+ }
372
+ });
373
+ filterChildren = newFilterChild;
374
+ // 设置下拉列表显示数据
375
+ this.setState({
376
+ filterChildren: v === '' ? null : filterChildren
377
+ }, () => {
378
+ setTimeout(() => {
379
+ // 搜索后需要重置滚动位置到0,防止上次 scrollTop 位置无数据
380
+ if (filterChildren) {
381
+ this.scrollTop = 0;
382
+ this.scrollEle.scrollTo(0, 0);
383
+ }
384
+ // 搜索成功后需要重新设置列表的总高度
385
+ this.setSuperDrowDownMenu(true);
386
+ }, 0);
387
+ });
496
388
  }
497
- else {
498
- _props.value = value;
389
+ onSearch && onSearch(v);
390
+ }
391
+ });
392
+ Object.defineProperty(this, "filterOption", {
393
+ enumerable: true,
394
+ configurable: true,
395
+ writable: true,
396
+ value: (v, option) => {
397
+ // 自定义过滤对应的 option 属性配置
398
+ const filterProps = this.props.optionFilterProp || 'value';
399
+ return `${option.props[filterProps]}`.indexOf(v) >= 0;
400
+ }
401
+ });
402
+ Object.defineProperty(this, "setDefaultScrollTop", {
403
+ enumerable: true,
404
+ configurable: true,
405
+ writable: true,
406
+ value: data => {
407
+ const {
408
+ value
409
+ } = this.state;
410
+ const {
411
+ children: arr
412
+ } = this.props;
413
+ const children = this.turnChildren(arr);
414
+ let val = data || data === 0 ? data : value;
415
+ for (let i = 0; i < children.length; i++) {
416
+ const item = children[i];
417
+ const itemValue = item.props.value;
418
+ if (itemValue === val || Array.isArray(val) && val.includes(itemValue)) {
419
+ const targetScrollTop = i * this.ITEM_HEIGHT;
420
+ setTimeout(() => {
421
+ if (!this.scrollEle) {
422
+ this.addEvent();
423
+ }
424
+ this.scrollEle && this.scrollEle.scrollTo(0, targetScrollTop);
425
+ }, 100);
426
+ return;
427
+ }
499
428
  }
500
- optionLabelProp = optionLabelProp || 'children';
501
- return (React.createElement(Select, Object.assign({}, _props, { id: this.id, onSearch: this.onSearch, onChange: this.onChange, dropdownClassName: `${this.dropdownClassName} ${dropdownClassName || ''}`, optionLabelProp: optionLabelProp, dropdownStyle: dropdownStyle, onDropdownVisibleChange: this.onDropdownVisibleChange, onDeselect: this.onDeselect, ref: (ele) => (this.select = ele), dropdownRender: (menu, props) => {
502
- if (this.allList.length === 0) {
503
- return (React.createElement("div", { style: { padding: '5px 12px' } },
504
- React.createElement(Empty, { image: Empty.PRESENTED_IMAGE_SIMPLE })));
505
- }
506
- return (React.createElement(DropDownWrap, Object.assign({}, {
507
- startIndex,
508
- endIndex,
509
- allHeight: this.allHeight,
510
- menu,
511
- itemHeight: this.ITEM_HEIGHT,
512
- }, { ref: (ele) => {
513
- this.wrap = ele;
514
- } })));
515
- } }), this.allList));
429
+ }
430
+ });
431
+ Object.defineProperty(this, "removeEvent", {
432
+ enumerable: true,
433
+ configurable: true,
434
+ writable: true,
435
+ value: () => {
436
+ if (!this.scrollEle) return;
437
+ this.scrollEle.removeEventListener('mousedown', this.preventEvent, false);
438
+ this.scrollEle.removeEventListener('scroll', this.onScroll, false);
439
+ if (!this.inputEle) return;
440
+ this.inputEle.removeEventListener('keydown', this.onKeyDown, false);
441
+ }
442
+ });
443
+ const {
444
+ mode,
445
+ defaultValue,
446
+ value,
447
+ optionHeight,
448
+ children: arr
449
+ } = props;
450
+ this.isMultiple = ['tags', 'multiple'].includes(mode);
451
+ const children = this.turnChildren(arr);
452
+ // 设置默认 value
453
+ let defaultV = this.isMultiple ? [] : '';
454
+ defaultV = value || defaultValue || defaultV;
455
+ this.state = {
456
+ children: children || [],
457
+ filterChildren: null,
458
+ value: defaultV,
459
+ maxWidth: null,
460
+ selectWidth: null
461
+ };
462
+ // 下拉菜单项行高
463
+ this.ITEM_HEIGHT = optionHeight || ITEM_HEIGHT_CFG[props.size || 'default'];
464
+ // 可视区 dom 高度
465
+ this.visibleDomHeight = this.ITEM_HEIGHT * ITEM_ELEMENT_NUMBER;
466
+ // 滚动时重新渲染的 scrollTop 判断值,大于 reactDelta 则刷新下拉列表
467
+ this.reactDelta = this.visibleDomHeight / 3;
468
+ // 是否拖动滚动条快速滚动状态
469
+ this.isStopReact = false;
470
+ // 上一次滚动的 scrollTop 值
471
+ this.prevScrollTop = 0;
472
+ // 上一次按下方向键时 scrollTop 值
473
+ this.prevTop = 0;
474
+ this.scrollTop = 0;
475
+ // className
476
+ this.dropdownClassName = `dc${+new Date()}`;
477
+ this.id = `sid${+new Date()}`;
478
+ }
479
+ componentDidMount() {
480
+ // defaultOpens=true 时添加滚动事件
481
+ setTimeout(() => {
482
+ this.addEvent();
483
+ }, 500);
484
+ const {
485
+ children: arr
486
+ } = this.props;
487
+ const children = this.turnChildren(arr);
488
+ // if (children && children.length > 0) {
489
+ this.formulaWidth();
490
+ // }
491
+ }
492
+
493
+ componentDidUpdate(prevProps) {
494
+ const {
495
+ mode,
496
+ defaultValue,
497
+ value,
498
+ children
499
+ } = this.props;
500
+ let arr = this.turnChildren(children);
501
+ if (prevProps.children !== children) {
502
+ this.isMultiple = ['tags', 'multiple'].includes(mode);
503
+ this.setState({
504
+ children: arr || [],
505
+ filterChildren: null
506
+ });
507
+ if (arr && arr.length > 0) {
508
+ this.formulaWidth();
509
+ }
510
+ }
511
+ if (prevProps.value !== value) {
512
+ // 更新时设置默认 value
513
+ let defaultV = this.isMultiple ? [] : '';
514
+ defaultV = value || defaultValue || defaultV;
515
+ this.setState({
516
+ value: defaultV
517
+ });
516
518
  }
519
+ }
520
+ componentWillUnmount() {
521
+ this.removeEvent();
522
+ }
523
+ render() {
524
+ const {
525
+ maxWidth,
526
+ selectWidth
527
+ } = this.state;
528
+ let _a = this.props,
529
+ {
530
+ dropdownStyle,
531
+ optionLabelProp,
532
+ dropdownClassName
533
+ } = _a,
534
+ props = __rest(_a, ["dropdownStyle", "optionLabelProp", "dropdownClassName"]);
535
+ this.allList = this.getUseChildrenList();
536
+ this.allHeight = this.allList.length * this.ITEM_HEIGHT || 100;
537
+ const {
538
+ startIndex,
539
+ endIndex
540
+ } = this.getStartAndEndIndex();
541
+ let dynamicWidth = maxWidth;
542
+ if (this.allList.length === 0 || maxWidth < selectWidth) {
543
+ dynamicWidth = selectWidth;
544
+ }
545
+ dropdownStyle = Object.assign(Object.assign({
546
+ maxHeight: `${DROPDOWN_HEIGHT}px`
547
+ }, dropdownStyle), {
548
+ overflow: 'auto',
549
+ position: 'relative',
550
+ maxWidth: dynamicWidth
551
+ });
552
+ const {
553
+ value
554
+ } = this.state;
555
+ // 判断处于 antd Form 中时不自动设置 value
556
+ const _props = Object.assign({}, props);
557
+ // 先删除 value,再手动赋值,防止空 value 影响 placeholder
558
+ delete _props.value;
559
+ // value 为空字符会隐藏 placeholder,改为 undefined
560
+ if (typeof value === 'string' && !value) {
561
+ _props.value = undefined;
562
+ } else {
563
+ _props.value = value;
564
+ }
565
+ optionLabelProp = optionLabelProp || 'children';
566
+ return React.createElement(Select, Object.assign({}, _props, {
567
+ id: this.id,
568
+ onSearch: this.onSearch,
569
+ onChange: this.onChange,
570
+ dropdownClassName: `${this.dropdownClassName} ${dropdownClassName || ''}`,
571
+ optionLabelProp: optionLabelProp,
572
+ dropdownStyle: dropdownStyle,
573
+ onDropdownVisibleChange: this.onDropdownVisibleChange,
574
+ onDeselect: this.onDeselect,
575
+ ref: ele => this.select = ele,
576
+ dropdownRender: (menu, props) => {
577
+ if (this.allList.length === 0) {
578
+ return React.createElement("div", {
579
+ style: {
580
+ padding: '5px 12px'
581
+ }
582
+ }, React.createElement(Empty, {
583
+ image: Empty.PRESENTED_IMAGE_SIMPLE
584
+ }));
585
+ }
586
+ return React.createElement(DropDownWrap, Object.assign({}, {
587
+ startIndex,
588
+ endIndex,
589
+ allHeight: this.allHeight,
590
+ menu,
591
+ itemHeight: this.ITEM_HEIGHT
592
+ }, {
593
+ ref: ele => {
594
+ this.wrap = ele;
595
+ }
596
+ }));
597
+ }
598
+ }), this.allList);
599
+ }
517
600
  }
518
601
  SuperSelect.Option = Option;
519
- export default SuperSelect;
520
- //# sourceMappingURL=index.js.map
602
+ export default SuperSelect;