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