tntd 2.6.1 → 2.6.3

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 (644) 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/color-picker/ColorPicker.js +80 -126
  21. package/es/color-picker/index.js +5 -8
  22. package/es/columns/index.js +30 -66
  23. package/es/columns/style/index.js +2 -1
  24. package/es/comment/index.js +2 -1
  25. package/es/config-provider/config-provider.js +2 -1
  26. package/es/config-provider/index.js +2 -1
  27. package/es/date-picker/index.js +2 -1
  28. package/es/descriptions/descriptions.js +30 -38
  29. package/es/descriptions/index.js +2 -1
  30. package/es/development-login/LoginModal.js +46 -81
  31. package/es/development-login/index.js +8 -17
  32. package/es/divider/index.js +2 -1
  33. package/es/drawer/drawer.js +20 -27
  34. package/es/drawer/index.js +2 -1
  35. package/es/dropdown/index.js +2 -1
  36. package/es/ellipsis/Svg/CopySVG.js +16 -63
  37. package/es/ellipsis/Svg/TickSVG.js +11 -41
  38. package/es/ellipsis/index.js +78 -115
  39. package/es/ellipsis/index.less +7 -2
  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/input.js +47 -83
  55. package/es/input-number/index.js +2 -1
  56. package/es/label/index.js +98 -115
  57. package/es/layout/index.js +2 -1
  58. package/es/list/index.js +2 -1
  59. package/es/loading-button/index.js +28 -33
  60. package/es/locale/default.js +4 -3
  61. package/es/locale/en_US.js +31 -30
  62. package/es/locale/index.js +2 -1
  63. package/es/locale/zh_CN.js +31 -30
  64. package/es/locale-provider/index.js +3 -2
  65. package/es/mentions/index.js +2 -1
  66. package/es/menu/index.js +2 -1
  67. package/es/message/index.js +2 -1
  68. package/es/modal/index.js +2 -1
  69. package/es/modal/modal.js +17 -20
  70. package/es/notification/index.js +2 -1
  71. package/es/page/Box.js +33 -49
  72. package/es/page/index.js +84 -119
  73. package/es/page/utils.js +14 -12
  74. package/es/page-header/index.js +2 -1
  75. package/es/pagination/index.js +2 -1
  76. package/es/popconfirm/index.js +2 -1
  77. package/es/popover/index.js +2 -1
  78. package/es/prev-locale.js +47 -49
  79. package/es/progress/index.js +2 -1
  80. package/es/query-form/Field/Checkbox.js +17 -20
  81. package/es/query-form/Field/Select.js +39 -54
  82. package/es/query-form/Field/SelectInput.js +45 -63
  83. package/es/query-form/Field/fieldsMap.js +20 -19
  84. package/es/query-form/Field/index.js +66 -104
  85. package/es/query-form/createActions.js +46 -46
  86. package/es/query-form/index.js +247 -327
  87. package/es/query-form/useForm.js +4 -3
  88. package/es/query-list-scene/List.js +255 -321
  89. package/es/query-list-scene/QueryForm.js +94 -132
  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/select/select.js +19 -23
  104. package/es/skeleton/index.js +2 -1
  105. package/es/slider/index.js +2 -1
  106. package/es/spin/index.js +2 -1
  107. package/es/statistic/index.js +2 -1
  108. package/es/steps/index.js +2 -1
  109. package/es/steps/steps.js +35 -51
  110. package/es/svg-components/illustration-403.js +58 -206
  111. package/es/svg-components/illustration-404.js +75 -290
  112. package/es/svg-components/illustration-500.js +83 -321
  113. package/es/svg-components/illustration-empty.js +15 -54
  114. package/es/svg-components/illustration-failure.js +36 -112
  115. package/es/svg-components/illustration-no-access.js +35 -114
  116. package/es/svg-components/illustration-no-chart.js +37 -134
  117. package/es/svg-components/illustration-no-result.js +32 -92
  118. package/es/svg-components/illustration-offline.js +43 -131
  119. package/es/svg-components/illustration-success.js +43 -137
  120. package/es/svg-components/index.js +2 -1
  121. package/es/switch/index.js +2 -1
  122. package/es/table/assets/image-loading-background.js +17 -45
  123. package/es/table/assets/image-loading.js +5 -26
  124. package/es/table/constants.js +2 -1
  125. package/es/table/context.js +2 -1
  126. package/es/table/hooks/index.js +2 -1
  127. package/es/table/hooks/use-column-setting.js +16 -13
  128. package/es/table/index.js +2 -1
  129. package/es/table/table.js +55 -80
  130. package/es/table/table.stories.js +139 -148
  131. package/es/table/utils.js +18 -17
  132. package/es/tabs/index.js +2 -1
  133. package/es/tag/index.js +2 -1
  134. package/es/tag/tag.less +61 -0
  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 +153 -212
  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 +494 -581
  212. package/es/tntd-select/index.js.map +1 -1
  213. package/es/tooltip/index.js +2 -1
  214. package/es/transfer/index.js +2 -1
  215. package/es/tree/index.js +2 -1
  216. package/es/tree-select/index.js +2 -1
  217. package/es/typography/index.js +2 -1
  218. package/es/upload/index.js +2 -1
  219. package/es/utils/checkAuth.js +21 -24
  220. package/es/utils/findMenuInfoByPath.js +30 -33
  221. package/es/utils/index.js +59 -65
  222. package/es/version/index.js +2 -1
  223. package/lib/affix/index.d.ts +3 -3
  224. package/lib/affix/index.js +19 -24
  225. package/lib/affix/index.js.map +1 -1
  226. package/lib/alert/index.d.ts +3 -3
  227. package/lib/alert/index.js +19 -24
  228. package/lib/alert/index.js.map +1 -1
  229. package/lib/anchor/index.d.ts +3 -3
  230. package/lib/anchor/index.js +19 -24
  231. package/lib/anchor/index.js.map +1 -1
  232. package/lib/array-input/icon.js +12 -33
  233. package/lib/array-input/index.js +146 -254
  234. package/lib/auth-context/index.js +4 -10
  235. package/lib/auto-complete/index.d.ts +3 -3
  236. package/lib/auto-complete/index.js +19 -24
  237. package/lib/auto-complete/index.js.map +1 -1
  238. package/lib/avatar/index.d.ts +3 -3
  239. package/lib/avatar/index.js +19 -24
  240. package/lib/avatar/index.js.map +1 -1
  241. package/lib/back-top/index.d.ts +3 -3
  242. package/lib/back-top/index.js +19 -24
  243. package/lib/back-top/index.js.map +1 -1
  244. package/lib/badge/index.d.ts +3 -3
  245. package/lib/badge/index.js +19 -24
  246. package/lib/badge/index.js.map +1 -1
  247. package/lib/breadcrumb/index.d.ts +3 -3
  248. package/lib/breadcrumb/index.js +19 -24
  249. package/lib/breadcrumb/index.js.map +1 -1
  250. package/lib/button/index.d.ts +3 -3
  251. package/lib/button/index.js +19 -24
  252. package/lib/button/index.js.map +1 -1
  253. package/lib/calendar/index.d.ts +3 -3
  254. package/lib/calendar/index.js +19 -24
  255. package/lib/calendar/index.js.map +1 -1
  256. package/lib/card/index.d.ts +3 -3
  257. package/lib/card/index.js +19 -24
  258. package/lib/card/index.js.map +1 -1
  259. package/lib/carousel/index.d.ts +3 -3
  260. package/lib/carousel/index.js +19 -24
  261. package/lib/carousel/index.js.map +1 -1
  262. package/lib/cascader/index.d.ts +3 -3
  263. package/lib/cascader/index.js +19 -24
  264. package/lib/cascader/index.js.map +1 -1
  265. package/lib/checkbox/index.d.ts +3 -3
  266. package/lib/checkbox/index.js +19 -24
  267. package/lib/checkbox/index.js.map +1 -1
  268. package/lib/col/index.d.ts +3 -3
  269. package/lib/col/index.js +19 -24
  270. package/lib/col/index.js.map +1 -1
  271. package/lib/collapse/index.d.ts +3 -3
  272. package/lib/collapse/index.js +20 -25
  273. package/lib/collapse/index.js.map +1 -1
  274. package/lib/color-picker/ColorPicker.js +109 -156
  275. package/lib/color-picker/index.js +14 -18
  276. package/lib/color-picker/index.js.map +1 -1
  277. package/lib/columns/index.js +41 -81
  278. package/lib/columns/style/index.js +2 -1
  279. package/lib/comment/index.d.ts +3 -3
  280. package/lib/comment/index.js +19 -24
  281. package/lib/comment/index.js.map +1 -1
  282. package/lib/config-provider/config-provider.d.ts +1 -1
  283. package/lib/config-provider/config-provider.js +8 -12
  284. package/lib/config-provider/config-provider.js.map +1 -1
  285. package/lib/config-provider/index.d.ts +3 -3
  286. package/lib/config-provider/index.js +19 -24
  287. package/lib/config-provider/index.js.map +1 -1
  288. package/lib/date-picker/index.d.ts +3 -3
  289. package/lib/date-picker/index.js +19 -24
  290. package/lib/date-picker/index.js.map +1 -1
  291. package/lib/descriptions/descriptions.d.ts +4 -4
  292. package/lib/descriptions/descriptions.d.ts.map +1 -1
  293. package/lib/descriptions/descriptions.js +51 -64
  294. package/lib/descriptions/descriptions.js.map +1 -1
  295. package/lib/descriptions/index.d.ts +1 -1
  296. package/lib/descriptions/index.js +18 -23
  297. package/lib/descriptions/index.js.map +1 -1
  298. package/lib/development-login/LoginModal.js +75 -110
  299. package/lib/development-login/index.js +31 -42
  300. package/lib/divider/index.d.ts +3 -3
  301. package/lib/divider/index.js +19 -24
  302. package/lib/divider/index.js.map +1 -1
  303. package/lib/drawer/drawer.d.ts +1 -1
  304. package/lib/drawer/drawer.js +30 -41
  305. package/lib/drawer/drawer.js.map +1 -1
  306. package/lib/drawer/index.d.ts +2 -2
  307. package/lib/drawer/index.js +16 -22
  308. package/lib/drawer/index.js.map +1 -1
  309. package/lib/dropdown/index.d.ts +3 -3
  310. package/lib/dropdown/index.js +19 -24
  311. package/lib/dropdown/index.js.map +1 -1
  312. package/lib/ellipsis/Svg/CopySVG.js +20 -70
  313. package/lib/ellipsis/Svg/TickSVG.js +15 -48
  314. package/lib/ellipsis/index.js +111 -146
  315. package/lib/ellipsis/index.less +7 -2
  316. package/lib/empty/empty.d.ts +2 -2
  317. package/lib/empty/empty.js +71 -90
  318. package/lib/empty/empty.js.map +1 -1
  319. package/lib/empty/empty.stories.js +18 -19
  320. package/lib/empty/index.d.ts +1 -1
  321. package/lib/empty/index.js +16 -21
  322. package/lib/empty/index.js.map +1 -1
  323. package/lib/exception/exception.js +31 -46
  324. package/lib/exception/exception.js.map +1 -1
  325. package/lib/exception/index.js +15 -20
  326. package/lib/form/index.d.ts +3 -3
  327. package/lib/form/index.js +19 -24
  328. package/lib/form/index.js.map +1 -1
  329. package/lib/handle/index.js +100 -140
  330. package/lib/handle/index.js.map +1 -1
  331. package/lib/icon/index.d.ts +3 -3
  332. package/lib/icon/index.js +19 -24
  333. package/lib/icon/index.js.map +1 -1
  334. package/lib/icon-list/index.js +121 -7
  335. package/lib/img/Contain.js +44 -69
  336. package/lib/img/Cover.js +78 -117
  337. package/lib/img/index.js +56 -74
  338. package/lib/index.js +186 -621
  339. package/lib/input/index.d.ts +1 -1
  340. package/lib/input/index.js +16 -21
  341. package/lib/input/index.js.map +1 -1
  342. package/lib/input/input.d.ts +1 -1
  343. package/lib/input/input.js +56 -74
  344. package/lib/input/input.js.map +1 -1
  345. package/lib/input-number/index.d.ts +3 -3
  346. package/lib/input-number/index.js +19 -24
  347. package/lib/input-number/index.js.map +1 -1
  348. package/lib/label/index.d.ts +2 -2
  349. package/lib/label/index.js +133 -134
  350. package/lib/label/index.js.map +1 -1
  351. package/lib/layout/index.d.ts +3 -3
  352. package/lib/layout/index.js +19 -24
  353. package/lib/layout/index.js.map +1 -1
  354. package/lib/list/index.d.ts +3 -3
  355. package/lib/list/index.js +19 -24
  356. package/lib/list/index.js.map +1 -1
  357. package/lib/loading-button/index.js +51 -58
  358. package/lib/locale/default.js +10 -12
  359. package/lib/locale/default.js.map +1 -1
  360. package/lib/locale/en_US.js +36 -38
  361. package/lib/locale/en_US.js.map +1 -1
  362. package/lib/locale/index.js +15 -37
  363. package/lib/locale/zh_CN.js +36 -38
  364. package/lib/locale/zh_CN.js.map +1 -1
  365. package/lib/locale-provider/index.d.ts +3 -3
  366. package/lib/locale-provider/index.js +22 -27
  367. package/lib/locale-provider/index.js.map +1 -1
  368. package/lib/mentions/index.d.ts +3 -3
  369. package/lib/mentions/index.js +19 -24
  370. package/lib/mentions/index.js.map +1 -1
  371. package/lib/menu/index.d.ts +3 -3
  372. package/lib/menu/index.js +19 -24
  373. package/lib/menu/index.js.map +1 -1
  374. package/lib/message/index.d.ts +3 -3
  375. package/lib/message/index.js +19 -24
  376. package/lib/message/index.js.map +1 -1
  377. package/lib/modal/index.d.ts +1 -1
  378. package/lib/modal/index.js +18 -23
  379. package/lib/modal/index.js.map +1 -1
  380. package/lib/modal/modal.d.ts +9 -9
  381. package/lib/modal/modal.js +45 -53
  382. package/lib/modal/modal.js.map +1 -1
  383. package/lib/notification/index.d.ts +3 -3
  384. package/lib/notification/index.js +19 -24
  385. package/lib/notification/index.js.map +1 -1
  386. package/lib/page/Box.js +40 -66
  387. package/lib/page/index.js +95 -147
  388. package/lib/page/utils.js +16 -22
  389. package/lib/page-header/index.d.ts +3 -3
  390. package/lib/page-header/index.js +19 -24
  391. package/lib/page-header/index.js.map +1 -1
  392. package/lib/pagination/index.d.ts +3 -3
  393. package/lib/pagination/index.js +19 -24
  394. package/lib/pagination/index.js.map +1 -1
  395. package/lib/popconfirm/index.d.ts +3 -3
  396. package/lib/popconfirm/index.js +19 -24
  397. package/lib/popconfirm/index.js.map +1 -1
  398. package/lib/popover/index.d.ts +3 -3
  399. package/lib/popover/index.js +19 -24
  400. package/lib/popover/index.js.map +1 -1
  401. package/lib/prev-locale.js +53 -67
  402. package/lib/progress/index.d.ts +3 -3
  403. package/lib/progress/index.js +19 -24
  404. package/lib/progress/index.js.map +1 -1
  405. package/lib/query-form/Field/Checkbox.js +22 -28
  406. package/lib/query-form/Field/Select.js +64 -79
  407. package/lib/query-form/Field/SelectInput.js +69 -85
  408. package/lib/query-form/Field/fieldsMap.d.ts +1 -1
  409. package/lib/query-form/Field/fieldsMap.js +32 -34
  410. package/lib/query-form/Field/index.js +91 -139
  411. package/lib/query-form/createActions.js +50 -53
  412. package/lib/query-form/index.js +282 -377
  413. package/lib/query-form/useForm.js +11 -11
  414. package/lib/query-list-scene/List.js +285 -360
  415. package/lib/query-list-scene/QueryForm.js +103 -161
  416. package/lib/query-list-scene/QueryListScene.js +31 -66
  417. package/lib/query-list-scene/Title.js +9 -15
  418. package/lib/query-list-scene/Toolbar.js +20 -31
  419. package/lib/query-list-scene/createActions.js +64 -79
  420. package/lib/query-list-scene/index.js +24 -28
  421. package/lib/query-list-scene/useActions.js +11 -11
  422. package/lib/radio/index.d.ts +3 -3
  423. package/lib/radio/index.js +19 -24
  424. package/lib/radio/index.js.map +1 -1
  425. package/lib/rate/index.d.ts +3 -3
  426. package/lib/rate/index.js +19 -24
  427. package/lib/rate/index.js.map +1 -1
  428. package/lib/render-empty/index.js +4 -8
  429. package/lib/render-empty/render-empty.js +22 -28
  430. package/lib/render-empty/render-empty.js.map +1 -1
  431. package/lib/result/index.d.ts +3 -3
  432. package/lib/result/index.js +19 -24
  433. package/lib/result/index.js.map +1 -1
  434. package/lib/row/index.d.ts +3 -3
  435. package/lib/row/index.js +19 -24
  436. package/lib/row/index.js.map +1 -1
  437. package/lib/select/index.d.ts +2 -2
  438. package/lib/select/index.js +16 -22
  439. package/lib/select/index.js.map +1 -1
  440. package/lib/select/select.d.ts +4 -4
  441. package/lib/select/select.d.ts.map +1 -1
  442. package/lib/select/select.js +29 -35
  443. package/lib/select/select.js.map +1 -1
  444. package/lib/skeleton/index.d.ts +3 -3
  445. package/lib/skeleton/index.js +19 -24
  446. package/lib/skeleton/index.js.map +1 -1
  447. package/lib/slider/index.d.ts +3 -3
  448. package/lib/slider/index.js +19 -24
  449. package/lib/slider/index.js.map +1 -1
  450. package/lib/spin/index.d.ts +3 -3
  451. package/lib/spin/index.js +19 -24
  452. package/lib/spin/index.js.map +1 -1
  453. package/lib/statistic/index.d.ts +3 -3
  454. package/lib/statistic/index.js +19 -24
  455. package/lib/statistic/index.js.map +1 -1
  456. package/lib/steps/index.d.ts +1 -1
  457. package/lib/steps/index.js +16 -21
  458. package/lib/steps/index.js.map +1 -1
  459. package/lib/steps/steps.d.ts +3 -3
  460. package/lib/steps/steps.js +55 -72
  461. package/lib/steps/steps.js.map +1 -1
  462. package/lib/svg-components/illustration-403.d.ts +1 -1
  463. package/lib/svg-components/illustration-403.js +80 -217
  464. package/lib/svg-components/illustration-404.d.ts +1 -1
  465. package/lib/svg-components/illustration-404.js +97 -301
  466. package/lib/svg-components/illustration-500.d.ts +1 -1
  467. package/lib/svg-components/illustration-500.js +105 -332
  468. package/lib/svg-components/illustration-empty.d.ts +1 -1
  469. package/lib/svg-components/illustration-empty.js +37 -65
  470. package/lib/svg-components/illustration-failure.d.ts +1 -1
  471. package/lib/svg-components/illustration-failure.js +58 -123
  472. package/lib/svg-components/illustration-no-access.d.ts +1 -1
  473. package/lib/svg-components/illustration-no-access.js +57 -125
  474. package/lib/svg-components/illustration-no-chart.d.ts +1 -1
  475. package/lib/svg-components/illustration-no-chart.js +59 -145
  476. package/lib/svg-components/illustration-no-result.d.ts +1 -1
  477. package/lib/svg-components/illustration-no-result.js +54 -103
  478. package/lib/svg-components/illustration-offline.d.ts +1 -1
  479. package/lib/svg-components/illustration-offline.js +65 -142
  480. package/lib/svg-components/illustration-success.d.ts +1 -1
  481. package/lib/svg-components/illustration-success.js +65 -148
  482. package/lib/svg-components/index.js +26 -75
  483. package/lib/switch/index.d.ts +3 -3
  484. package/lib/switch/index.js +19 -24
  485. package/lib/switch/index.js.map +1 -1
  486. package/lib/table/assets/image-loading-background.d.ts +1 -1
  487. package/lib/table/assets/image-loading-background.js +39 -56
  488. package/lib/table/assets/image-loading.d.ts +1 -1
  489. package/lib/table/assets/image-loading.js +27 -37
  490. package/lib/table/constants.js +3 -6
  491. package/lib/table/context.js +4 -7
  492. package/lib/table/hooks/index.js +13 -15
  493. package/lib/table/hooks/use-column-setting.d.ts +1 -1
  494. package/lib/table/hooks/use-column-setting.js +20 -37
  495. package/lib/table/hooks/use-column-setting.js.map +1 -1
  496. package/lib/table/index.d.ts +1 -1
  497. package/lib/table/index.js +16 -21
  498. package/lib/table/index.js.map +1 -1
  499. package/lib/table/table.d.ts +3 -3
  500. package/lib/table/table.js +90 -114
  501. package/lib/table/table.js.map +1 -1
  502. package/lib/table/table.stories.js +154 -182
  503. package/lib/table/utils.d.ts +1 -1
  504. package/lib/table/utils.js +25 -24
  505. package/lib/table/utils.js.map +1 -1
  506. package/lib/tabs/index.d.ts +3 -3
  507. package/lib/tabs/index.js +19 -24
  508. package/lib/tabs/index.js.map +1 -1
  509. package/lib/tag/index.d.ts +3 -3
  510. package/lib/tag/index.js +19 -24
  511. package/lib/tag/index.js.map +1 -1
  512. package/lib/tag/tag.less +61 -0
  513. package/lib/time-picker/index.d.ts +3 -3
  514. package/lib/time-picker/index.js +19 -24
  515. package/lib/time-picker/index.js.map +1 -1
  516. package/lib/timeline/index.d.ts +3 -3
  517. package/lib/timeline/index.js +19 -24
  518. package/lib/timeline/index.js.map +1 -1
  519. package/lib/title/index.js +26 -45
  520. package/lib/tntd-cascader/AntdCascader/component/DisabledContext.js +27 -18
  521. package/lib/tntd-cascader/AntdCascader/component/FormItemInputContext.js +22 -9
  522. package/lib/tntd-cascader/AntdCascader/component/SizeContext.js +22 -9
  523. package/lib/tntd-cascader/AntdCascader/component/context.js +16 -18
  524. package/lib/tntd-cascader/AntdCascader/component/defaultRenderEmpty.js +35 -36
  525. package/lib/tntd-cascader/AntdCascader/component/defaultRenderEmpty.js.map +1 -1
  526. package/lib/tntd-cascader/AntdCascader/component/getIcons.js +71 -81
  527. package/lib/tntd-cascader/AntdCascader/component/useCompactItemContext.js +46 -31
  528. package/lib/tntd-cascader/AntdCascader/config/utils.d.ts +1 -1
  529. package/lib/tntd-cascader/AntdCascader/config/utils.js +27 -29
  530. package/lib/tntd-cascader/AntdCascader/config/warning.js +31 -19
  531. package/lib/tntd-cascader/AntdCascader/index.js +158 -216
  532. package/lib/tntd-cascader/AntdCascader/interface.js +6 -13
  533. package/lib/tntd-cascader/img/no-data-s.png +0 -0
  534. package/lib/tntd-cascader/index.js +8 -12
  535. package/lib/tntd-cascader/rc-cascader/Cascader.js +280 -325
  536. package/lib/tntd-cascader/rc-cascader/OptionList/Checkbox.js +37 -30
  537. package/lib/tntd-cascader/rc-cascader/OptionList/Column.js +148 -198
  538. package/lib/tntd-cascader/rc-cascader/OptionList/index.js +159 -223
  539. package/lib/tntd-cascader/rc-cascader/OptionList/useActive.js +44 -40
  540. package/lib/tntd-cascader/rc-cascader/OptionList/useKeyboard.js +162 -179
  541. package/lib/tntd-cascader/rc-cascader/context.js +23 -11
  542. package/lib/tntd-cascader/rc-cascader/hooks/useDisplayValues.js +59 -62
  543. package/lib/tntd-cascader/rc-cascader/hooks/useEntities.js +45 -39
  544. package/lib/tntd-cascader/rc-cascader/hooks/useMissingValues.js +37 -26
  545. package/lib/tntd-cascader/rc-cascader/hooks/useRefFunc.js +29 -16
  546. package/lib/tntd-cascader/rc-cascader/hooks/useSearchConfig.js +47 -30
  547. package/lib/tntd-cascader/rc-cascader/hooks/useSearchOptions.js +61 -75
  548. package/lib/tntd-cascader/rc-cascader/index.js +7 -9
  549. package/lib/tntd-cascader/rc-cascader/utils/commonUtil.js +38 -49
  550. package/lib/tntd-cascader/rc-cascader/utils/treeUtil.js +39 -42
  551. package/lib/tntd-cascader/rc-cascader/utils/warningPropsUtil.js +30 -34
  552. package/lib/tntd-form/TntdForm/components/Item.js +57 -55
  553. package/lib/tntd-form/TntdForm/components/ItemComp.js +186 -203
  554. package/lib/tntd-form/TntdForm/components/List.js +107 -118
  555. package/lib/tntd-form/TntdForm/index.js +63 -61
  556. package/lib/tntd-form/TntdForm/interface.js +2 -4
  557. package/lib/tntd-form/TntdForm/store.js +7 -8
  558. package/lib/tntd-form/TntdForm/utils.js +184 -182
  559. package/lib/tntd-form/index.js +8 -12
  560. package/lib/tntd-icon/fonts/iconfont.js +53 -36
  561. package/lib/tntd-icon/index.js +25 -40
  562. package/lib/tntd-layout/ActionsContext.js +4 -8
  563. package/lib/tntd-layout/AppList.js +220 -173
  564. package/lib/tntd-layout/Application.js +107 -75
  565. package/lib/tntd-layout/Avatar.js +131 -100
  566. package/lib/tntd-layout/CompatibleLanguage.js +176 -128
  567. package/lib/tntd-layout/EnterpriseLayout/Avatar.js +142 -117
  568. package/lib/tntd-layout/EnterpriseLayout/Language.js +86 -73
  569. package/lib/tntd-layout/EnterpriseLayout/Theme.js +98 -69
  570. package/lib/tntd-layout/EnterpriseLayout/index.js +17 -28
  571. package/lib/tntd-layout/GlobalNavigation/NavigationPopup.js +272 -283
  572. package/lib/tntd-layout/GlobalNavigation/index.js +111 -108
  573. package/lib/tntd-layout/Header.js +132 -77
  574. package/lib/tntd-layout/HeaderActions.js +102 -105
  575. package/lib/tntd-layout/HeaderNavs.js +103 -78
  576. package/lib/tntd-layout/HeaderTabs.js +312 -224
  577. package/lib/tntd-layout/Iconfont.js +7 -11
  578. package/lib/tntd-layout/Language.js +72 -69
  579. package/lib/tntd-layout/Layout.js +167 -214
  580. package/lib/tntd-layout/Logo.js +140 -69
  581. package/lib/tntd-layout/OrgAppList.js +384 -238
  582. package/lib/tntd-layout/SideMenu.js +404 -269
  583. package/lib/tntd-layout/Theme.js +89 -75
  584. package/lib/tntd-layout/createActions.js +34 -45
  585. package/lib/tntd-layout/images/avatar/empty.png +0 -0
  586. package/lib/tntd-layout/images/avatar/female1.png +0 -0
  587. package/lib/tntd-layout/images/avatar/female2.png +0 -0
  588. package/lib/tntd-layout/images/avatar/female3.png +0 -0
  589. package/lib/tntd-layout/images/avatar/female4.png +0 -0
  590. package/lib/tntd-layout/images/avatar/female5.png +0 -0
  591. package/lib/tntd-layout/images/avatar/female6.png +0 -0
  592. package/lib/tntd-layout/images/avatar/male1.png +0 -0
  593. package/lib/tntd-layout/images/avatar/male2.png +0 -0
  594. package/lib/tntd-layout/images/avatar/male3.png +0 -0
  595. package/lib/tntd-layout/images/avatar/male4.png +0 -0
  596. package/lib/tntd-layout/images/avatar/male5.png +0 -0
  597. package/lib/tntd-layout/images/avatar/male6.png +0 -0
  598. package/lib/tntd-layout/images/index.js +66 -68
  599. package/lib/tntd-layout/index.js +91 -137
  600. package/lib/tntd-layout/paaslayout/CompactSideMenu.js +178 -131
  601. package/lib/tntd-layout/paaslayout/Header.js +75 -51
  602. package/lib/tntd-layout/paaslayout/Logo.js +30 -15
  603. package/lib/tntd-layout/paaslayout/SideMenu.js +143 -131
  604. package/lib/tntd-layout/paaslayout/index.js +137 -205
  605. package/lib/tntd-layout/storage.js +30 -58
  606. package/lib/tntd-modal/index.js +58 -98
  607. package/lib/tntd-second-page/index.js +33 -60
  608. package/lib/tntd-second-page/index.js.map +1 -1
  609. package/lib/tntd-select/DropDownWrap.js +74 -102
  610. package/lib/tntd-select/index.d.ts +1 -1
  611. package/lib/tntd-select/index.js +528 -625
  612. package/lib/tntd-select/index.js.map +1 -1
  613. package/lib/tooltip/index.d.ts +3 -3
  614. package/lib/tooltip/index.js +19 -24
  615. package/lib/tooltip/index.js.map +1 -1
  616. package/lib/transfer/index.d.ts +3 -3
  617. package/lib/transfer/index.js +19 -24
  618. package/lib/transfer/index.js.map +1 -1
  619. package/lib/tree/index.d.ts +3 -3
  620. package/lib/tree/index.js +19 -24
  621. package/lib/tree/index.js.map +1 -1
  622. package/lib/tree-select/index.d.ts +3 -3
  623. package/lib/tree-select/index.js +19 -24
  624. package/lib/tree-select/index.js.map +1 -1
  625. package/lib/typography/index.d.ts +3 -3
  626. package/lib/typography/index.js +19 -24
  627. package/lib/typography/index.js.map +1 -1
  628. package/lib/upload/index.d.ts +3 -3
  629. package/lib/upload/index.js +19 -24
  630. package/lib/upload/index.js.map +1 -1
  631. package/lib/utils/checkAuth.js +23 -34
  632. package/lib/utils/findMenuInfoByPath.js +34 -41
  633. package/lib/utils/index.js +76 -117
  634. package/lib/version/index.d.ts +3 -3
  635. package/lib/version/index.js +19 -24
  636. package/lib/version/index.js.map +1 -1
  637. package/package.json +1 -1
  638. package/lib/tntd-form/CustomForm/components/Item.js +0 -50
  639. package/lib/tntd-form/CustomForm/components/ItemComp.js +0 -169
  640. package/lib/tntd-form/CustomForm/components/List.js +0 -96
  641. package/lib/tntd-form/CustomForm/index.js +0 -66
  642. package/lib/tntd-form/CustomForm/interface.js +0 -5
  643. package/lib/tntd-form/CustomForm/store.js +0 -10
  644. package/lib/tntd-form/CustomForm/utils.js +0 -235
@@ -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';
@@ -15,597 +18,507 @@ import DropDownWrap from './DropDownWrap';
15
18
  const ITEM_ELEMENT_NUMBER = 30;
16
19
  // Select size 配置
17
20
  const ITEM_HEIGHT_CFG = {
18
- small: 24,
19
- large: 40,
20
- default: 32
21
+ small: 24,
22
+ large: 40,
23
+ default: 32,
21
24
  };
22
25
  const ARROW_CODE = {
23
- 40: 'down',
24
- 38: 'up'
26
+ 40: 'down',
27
+ 38: 'up',
25
28
  };
26
29
  const DROPDOWN_HEIGHT = 224;
27
30
  const Option = Select.Option;
28
31
  class SuperSelect extends PureComponent {
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
- }
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;
48
58
  }
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
86
59
  });
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 || {};
145
- setTimeout(() => {
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) {
155
- this.scrollEle.scrollTo(0, this.allHeight - DROPDOWN_HEIGHT);
156
- this.prevTop = this.allHeight;
157
- return;
158
- }
159
- // 在所有列表中最后一行按下键
160
- if (this.prevTop > offsetTop + DROPDOWN_HEIGHT && isDown) {
161
- this.scrollEle.scrollTo(0, 0);
162
- this.prevTop = 0;
163
- return;
164
- }
165
- this.prevTop = offsetTop;
166
- // 向下滚动到下拉框最后一行时,向下滚动一行的高度
167
- if (offsetTop > this.scrollEle.scrollTop + DROPDOWN_HEIGHT - this.ITEM_HEIGHT + 10 && 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
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);
412
+ }
413
+ });
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,
231
426
  };
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) {
322
- this.setState({
323
- filterChildren: null
324
- }, () => {
325
- // 搜索成功后重新设置列表的总高度
326
- this.setSuperDrowDownMenu(true);
327
- });
328
- }
329
- }
330
- if (mode === 'multiple') {
331
- if (value.length <= maxCount) {
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 时添加滚动事件
446
+ 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);
332
460
  this.setState({
333
- value
461
+ children: arr || [],
462
+ filterChildren: null,
334
463
  });
335
- }
336
- } else {
337
- this.setState({
338
- value
339
- });
340
- }
341
- onChange && onChange(value, opt);
342
- if (mode !== 'multiple') {
343
- this.select && this.select.blur();
344
- }
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);
464
+ if (arr && arr.length > 0) {
465
+ this.formulaWidth();
372
466
  }
373
- });
374
- filterChildren = newFilterChild;
375
- // 设置下拉列表显示数据
376
- this.setState({
377
- filterChildren: v === '' ? null : filterChildren
378
- }, () => {
379
- setTimeout(() => {
380
- // 搜索后需要重置滚动位置到0,防止上次 scrollTop 位置无数据
381
- if (filterChildren) {
382
- this.scrollTop = 0;
383
- this.scrollEle.scrollTo(0, 0);
384
- }
385
- // 搜索成功后需要重新设置列表的总高度
386
- this.setSuperDrowDownMenu(true);
387
- }, 0);
388
- });
389
467
  }
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
- }
468
+ if (prevProps.value !== value) {
469
+ // 更新时设置默认 value
470
+ let defaultV = this.isMultiple ? [] : '';
471
+ defaultV = value || defaultValue || defaultV;
472
+ this.setState({ value: defaultV });
429
473
  }
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
- }
511
- }
512
- if (prevProps.value !== value) {
513
- // 更新时设置默认 value
514
- let defaultV = this.isMultiple ? [] : '';
515
- defaultV = value || defaultValue || defaultV;
516
- this.setState({
517
- value: defaultV
518
- });
519
474
  }
520
- }
521
- componentWillUnmount() {
522
- this.removeEvent();
523
- }
524
- render() {
525
- const {
526
- maxWidth,
527
- selectWidth
528
- } = this.state;
529
- let _a = this.props,
530
- {
531
- dropdownStyle,
532
- optionLabelProp,
533
- dropdownClassName
534
- } = _a,
535
- props = __rest(_a, ["dropdownStyle", "optionLabelProp", "dropdownClassName"]);
536
- this.allList = this.getUseChildrenList();
537
- this.allHeight = this.allList.length * this.ITEM_HEIGHT || 100;
538
- const {
539
- startIndex,
540
- endIndex
541
- } = this.getStartAndEndIndex();
542
- let dynamicWidth = maxWidth;
543
- if (this.allList.length === 0 || maxWidth < selectWidth) {
544
- dynamicWidth = selectWidth;
475
+ componentWillUnmount() {
476
+ this.removeEvent();
545
477
  }
546
- dropdownStyle = Object.assign(Object.assign({
547
- maxHeight: `${DROPDOWN_HEIGHT}px`
548
- }, dropdownStyle), {
549
- overflow: 'auto',
550
- position: 'relative',
551
- maxWidth: dynamicWidth
552
- });
553
- const {
554
- value
555
- } = this.state;
556
- // 判断处于 antd Form 中时不自动设置 value
557
- const _props = Object.assign({}, props);
558
- // 先删除 value,再手动赋值,防止空 value 影响 placeholder
559
- delete _props.value;
560
- // value 为空字符会隐藏 placeholder,改为 undefined
561
- if (typeof value === 'string' && !value) {
562
- _props.value = undefined;
563
- } else {
564
- _props.value = value;
565
- }
566
- optionLabelProp = optionLabelProp || 'children';
567
- return React.createElement(Select, Object.assign({}, _props, {
568
- id: this.id,
569
- onSearch: this.onSearch,
570
- onChange: this.onChange,
571
- dropdownClassName: `${this.dropdownClassName} ${dropdownClassName || ''}`,
572
- optionLabelProp: optionLabelProp,
573
- dropdownStyle: dropdownStyle,
574
- onDropdownVisibleChange: this.onDropdownVisibleChange,
575
- onDeselect: this.onDeselect,
576
- ref: ele => this.select = ele,
577
- dropdownRender: (menu, props) => {
578
- if (_props.loading) {
579
- return React.createElement(Spin, {
580
- size: "small",
581
- style: {
582
- marginLeft: 8
583
- }
584
- });
478
+ render() {
479
+ const { maxWidth, selectWidth } = this.state;
480
+ let _a = this.props, { dropdownStyle, optionLabelProp, dropdownClassName } = _a, props = __rest(_a, ["dropdownStyle", "optionLabelProp", "dropdownClassName"]);
481
+ this.allList = this.getUseChildrenList();
482
+ this.allHeight = this.allList.length * this.ITEM_HEIGHT || 100;
483
+ const { startIndex, endIndex } = this.getStartAndEndIndex();
484
+ let dynamicWidth = maxWidth;
485
+ if (this.allList.length === 0 || maxWidth < selectWidth) {
486
+ dynamicWidth = selectWidth;
585
487
  }
586
- if (this.allList.length === 0) {
587
- return React.createElement("div", {
588
- style: {
589
- padding: '5px 12px'
590
- }
591
- }, React.createElement(Empty, {
592
- image: Empty.PRESENTED_IMAGE_SIMPLE
593
- }));
488
+ dropdownStyle = Object.assign(Object.assign({ maxHeight: `${DROPDOWN_HEIGHT}px` }, dropdownStyle), { overflow: 'auto', position: 'relative', maxWidth: dynamicWidth });
489
+ const { value } = this.state;
490
+ // 判断处于 antd Form 中时不自动设置 value
491
+ const _props = Object.assign({}, props);
492
+ // 先删除 value,再手动赋值,防止空 value 影响 placeholder
493
+ delete _props.value;
494
+ // value 为空字符会隐藏 placeholder,改为 undefined
495
+ if (typeof value === 'string' && !value) {
496
+ _props.value = undefined;
594
497
  }
595
- return React.createElement(DropDownWrap, Object.assign({}, {
596
- startIndex,
597
- endIndex,
598
- allHeight: this.allHeight,
599
- menu,
600
- itemHeight: this.ITEM_HEIGHT
601
- }, {
602
- ref: ele => {
603
- this.wrap = ele;
604
- }
605
- }));
606
- }
607
- }), this.allList);
608
- }
498
+ else {
499
+ _props.value = value;
500
+ }
501
+ optionLabelProp = optionLabelProp || 'children';
502
+ 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) => {
503
+ if (_props.loading) {
504
+ return (React.createElement(Spin, { size: "small", style: { marginLeft: 8 } }));
505
+ }
506
+ if (this.allList.length === 0) {
507
+ return (React.createElement("div", { style: { padding: '5px 12px' } },
508
+ React.createElement(Empty, { image: Empty.PRESENTED_IMAGE_SIMPLE })));
509
+ }
510
+ return (React.createElement(DropDownWrap, Object.assign({}, {
511
+ startIndex,
512
+ endIndex,
513
+ allHeight: this.allHeight,
514
+ menu,
515
+ itemHeight: this.ITEM_HEIGHT,
516
+ }, { ref: (ele) => {
517
+ this.wrap = ele;
518
+ } })));
519
+ } }), this.allList));
520
+ }
609
521
  }
610
522
  SuperSelect.Option = Option;
611
- export default SuperSelect;
523
+ export default SuperSelect;
524
+ //# sourceMappingURL=index.js.map