tntd 2.0.22 → 2.0.23

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