tntd 2.0.23 → 2.0.25

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