tntd 2.0.2 → 2.0.4

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 (308) hide show
  1. package/es/drawer/drawer.js +28 -0
  2. package/es/drawer/drawer.js.map +1 -0
  3. package/es/drawer/drawer.less +18 -0
  4. package/es/drawer/index.js +2 -1
  5. package/es/drawer/index.js.map +1 -1
  6. package/es/index.js +1 -0
  7. package/es/index.js.map +1 -1
  8. package/es/locale/en_US.js +3 -0
  9. package/es/locale/en_US.js.map +1 -1
  10. package/es/locale/zh_CN.js +3 -0
  11. package/es/locale/zh_CN.js.map +1 -1
  12. package/es/message/index.js +1 -0
  13. package/es/message/index.js.map +1 -1
  14. package/es/message/message.less +8 -0
  15. package/es/modal/index.js +1 -0
  16. package/es/modal/index.js.map +1 -1
  17. package/es/modal/modal.less +35 -0
  18. package/es/page/index.js +1 -1
  19. package/es/page/index.js.map +1 -1
  20. package/es/prev-locale.js +7 -1
  21. package/es/prev-locale.js.map +1 -1
  22. package/es/steps/index.js +2 -2
  23. package/es/steps/index.js.map +1 -1
  24. package/es/steps/steps.js +46 -0
  25. package/es/steps/steps.js.map +1 -0
  26. package/es/steps/style/nav.less +158 -64
  27. package/es/tntd-cascader/AntdCascader/component/DisabledContext.js +8 -0
  28. package/es/tntd-cascader/AntdCascader/component/DisabledContext.js.map +1 -0
  29. package/es/tntd-cascader/AntdCascader/component/FormItemInputContext.js +3 -0
  30. package/es/tntd-cascader/AntdCascader/component/FormItemInputContext.js.map +1 -0
  31. package/es/tntd-cascader/AntdCascader/component/SizeContext.js +3 -0
  32. package/es/tntd-cascader/AntdCascader/component/SizeContext.js.map +1 -0
  33. package/es/tntd-cascader/AntdCascader/component/context.js +14 -0
  34. package/es/tntd-cascader/AntdCascader/component/context.js.map +1 -0
  35. package/es/tntd-cascader/AntdCascader/component/defaultRenderEmpty.js +20 -0
  36. package/es/tntd-cascader/AntdCascader/component/defaultRenderEmpty.js.map +1 -0
  37. package/es/tntd-cascader/AntdCascader/component/getIcons.js +52 -0
  38. package/es/tntd-cascader/AntdCascader/component/getIcons.js.map +1 -0
  39. package/es/tntd-cascader/AntdCascader/component/useCompactItemContext.js +24 -0
  40. package/es/tntd-cascader/AntdCascader/component/useCompactItemContext.js.map +1 -0
  41. package/es/tntd-cascader/AntdCascader/config/utils.js +24 -0
  42. package/es/tntd-cascader/AntdCascader/config/utils.js.map +1 -0
  43. package/es/tntd-cascader/AntdCascader/config/warning.js +15 -0
  44. package/es/tntd-cascader/AntdCascader/config/warning.js.map +1 -0
  45. package/es/tntd-cascader/AntdCascader/index.js +147 -0
  46. package/es/tntd-cascader/AntdCascader/index.js.map +1 -0
  47. package/es/tntd-cascader/AntdCascader/index.less +2325 -0
  48. package/es/tntd-cascader/AntdCascader/interface.js +5 -0
  49. package/es/tntd-cascader/AntdCascader/interface.js.map +1 -0
  50. package/es/tntd-cascader/img/no-data-s.png +0 -0
  51. package/es/tntd-cascader/index.js +2 -0
  52. package/es/tntd-cascader/index.js.map +1 -0
  53. package/es/tntd-cascader/rc-cascader/Cascader.js +274 -0
  54. package/es/tntd-cascader/rc-cascader/Cascader.js.map +1 -0
  55. package/es/tntd-cascader/rc-cascader/OptionList/Checkbox.js +14 -0
  56. package/es/tntd-cascader/rc-cascader/OptionList/Checkbox.js.map +1 -0
  57. package/es/tntd-cascader/rc-cascader/OptionList/Column.js +126 -0
  58. package/es/tntd-cascader/rc-cascader/OptionList/Column.js.map +1 -0
  59. package/es/tntd-cascader/rc-cascader/OptionList/index.js +141 -0
  60. package/es/tntd-cascader/rc-cascader/OptionList/index.js.map +1 -0
  61. package/es/tntd-cascader/rc-cascader/OptionList/useActive.js +26 -0
  62. package/es/tntd-cascader/rc-cascader/OptionList/useActive.js.map +1 -0
  63. package/es/tntd-cascader/rc-cascader/OptionList/useKeyboard.js +145 -0
  64. package/es/tntd-cascader/rc-cascader/OptionList/useKeyboard.js.map +1 -0
  65. package/es/tntd-cascader/rc-cascader/context.js +4 -0
  66. package/es/tntd-cascader/rc-cascader/context.js.map +1 -0
  67. package/es/tntd-cascader/rc-cascader/hooks/useDisplayValues.js +41 -0
  68. package/es/tntd-cascader/rc-cascader/hooks/useDisplayValues.js.map +1 -0
  69. package/es/tntd-cascader/rc-cascader/hooks/useEntities.js +30 -0
  70. package/es/tntd-cascader/rc-cascader/hooks/useEntities.js.map +1 -0
  71. package/es/tntd-cascader/rc-cascader/hooks/useMissingValues.js +19 -0
  72. package/es/tntd-cascader/rc-cascader/hooks/useMissingValues.js.map +1 -0
  73. package/es/tntd-cascader/rc-cascader/hooks/useRefFunc.js +15 -0
  74. package/es/tntd-cascader/rc-cascader/hooks/useRefFunc.js.map +1 -0
  75. package/es/tntd-cascader/rc-cascader/hooks/useSearchConfig.js +26 -0
  76. package/es/tntd-cascader/rc-cascader/hooks/useSearchConfig.js.map +1 -0
  77. package/es/tntd-cascader/rc-cascader/hooks/useSearchOptions.js +46 -0
  78. package/es/tntd-cascader/rc-cascader/hooks/useSearchOptions.js.map +1 -0
  79. package/es/tntd-cascader/rc-cascader/index.js +3 -0
  80. package/es/tntd-cascader/rc-cascader/index.js.map +1 -0
  81. package/es/tntd-cascader/rc-cascader/index.less +19 -0
  82. package/es/tntd-cascader/rc-cascader/utils/commonUtil.js +41 -0
  83. package/es/tntd-cascader/rc-cascader/utils/commonUtil.js.map +1 -0
  84. package/es/tntd-cascader/rc-cascader/utils/treeUtil.js +37 -0
  85. package/es/tntd-cascader/rc-cascader/utils/treeUtil.js.map +1 -0
  86. package/es/tntd-cascader/rc-cascader/utils/warningPropsUtil.js +30 -0
  87. package/es/tntd-cascader/rc-cascader/utils/warningPropsUtil.js.map +1 -0
  88. package/es/tntd-layout/Avatar.js +25 -19
  89. package/es/tntd-layout/Avatar.js.map +1 -1
  90. package/es/tntd-layout/EnterpriseLayout/Avatar.js +10 -8
  91. package/es/tntd-layout/EnterpriseLayout/Avatar.js.map +1 -1
  92. package/es/tntd-layout/EnterpriseLayout/Language.js +5 -4
  93. package/es/tntd-layout/EnterpriseLayout/Language.js.map +1 -1
  94. package/es/tntd-layout/EnterpriseLayout/Theme.js +7 -6
  95. package/es/tntd-layout/EnterpriseLayout/Theme.js.map +1 -1
  96. package/es/tntd-layout/HeaderActions.js +5 -4
  97. package/es/tntd-layout/HeaderActions.js.map +1 -1
  98. package/es/tntd-layout/Layout.js +2 -2
  99. package/es/tntd-layout/Layout.js.map +1 -1
  100. package/es/tntd-layout/SideMenu.js.map +1 -1
  101. package/es/tntd-layout/index.js +2 -2
  102. package/es/tntd-layout/index.js.map +1 -1
  103. package/es/tntd-layout/storage.js +10 -2
  104. package/es/tntd-layout/storage.js.map +1 -1
  105. package/lib/drawer/drawer.d.ts +4 -0
  106. package/lib/drawer/drawer.d.ts.map +1 -0
  107. package/lib/drawer/drawer.js +35 -0
  108. package/lib/drawer/drawer.js.map +1 -0
  109. package/lib/drawer/drawer.less +18 -0
  110. package/lib/drawer/index.d.ts +2 -1
  111. package/lib/drawer/index.d.ts.map +1 -1
  112. package/lib/drawer/index.js +3 -5
  113. package/lib/drawer/index.js.map +1 -1
  114. package/lib/index.d.ts +1 -0
  115. package/lib/index.d.ts.map +1 -1
  116. package/lib/index.js +3 -1
  117. package/lib/index.js.map +1 -1
  118. package/lib/locale/default.d.ts +3 -0
  119. package/lib/locale/default.d.ts.map +1 -1
  120. package/lib/locale/en_US.d.ts +3 -0
  121. package/lib/locale/en_US.d.ts.map +1 -1
  122. package/lib/locale/en_US.js +3 -0
  123. package/lib/locale/en_US.js.map +1 -1
  124. package/lib/locale/zh_CN.d.ts +3 -0
  125. package/lib/locale/zh_CN.d.ts.map +1 -1
  126. package/lib/locale/zh_CN.js +3 -0
  127. package/lib/locale/zh_CN.js.map +1 -1
  128. package/lib/message/index.d.ts +1 -0
  129. package/lib/message/index.d.ts.map +1 -1
  130. package/lib/message/index.js +1 -0
  131. package/lib/message/index.js.map +1 -1
  132. package/lib/message/message.less +8 -0
  133. package/lib/modal/index.d.ts +1 -0
  134. package/lib/modal/index.d.ts.map +1 -1
  135. package/lib/modal/index.js +1 -0
  136. package/lib/modal/index.js.map +1 -1
  137. package/lib/modal/modal.less +35 -0
  138. package/lib/page/index.js +1 -1
  139. package/lib/page/index.js.map +1 -1
  140. package/lib/prev-locale.d.ts +6 -0
  141. package/lib/prev-locale.d.ts.map +1 -1
  142. package/lib/prev-locale.js +7 -1
  143. package/lib/prev-locale.js.map +1 -1
  144. package/lib/steps/index.d.ts +2 -2
  145. package/lib/steps/index.d.ts.map +1 -1
  146. package/lib/steps/index.js +3 -6
  147. package/lib/steps/index.js.map +1 -1
  148. package/lib/steps/steps.d.ts +12 -0
  149. package/lib/steps/steps.d.ts.map +1 -0
  150. package/lib/steps/steps.js +67 -0
  151. package/lib/steps/steps.js.map +1 -0
  152. package/lib/steps/style/nav.less +158 -64
  153. package/lib/svg-components/illustration-403.d.ts +1 -1
  154. package/lib/svg-components/illustration-404.d.ts +1 -1
  155. package/lib/svg-components/illustration-500.d.ts +1 -1
  156. package/lib/svg-components/illustration-empty.d.ts +1 -1
  157. package/lib/svg-components/illustration-failure.d.ts +1 -1
  158. package/lib/svg-components/illustration-no-access.d.ts +1 -1
  159. package/lib/svg-components/illustration-no-chart.d.ts +1 -1
  160. package/lib/svg-components/illustration-no-result.d.ts +1 -1
  161. package/lib/svg-components/illustration-offline.d.ts +1 -1
  162. package/lib/svg-components/illustration-success.d.ts +1 -1
  163. package/lib/table/assets/image-loading-background.d.ts +1 -1
  164. package/lib/table/assets/image-loading.d.ts +1 -1
  165. package/lib/tntd-cascader/AntdCascader/component/DisabledContext.d.ts +10 -0
  166. package/lib/tntd-cascader/AntdCascader/component/DisabledContext.d.ts.map +1 -0
  167. package/lib/tntd-cascader/AntdCascader/component/DisabledContext.js +35 -0
  168. package/lib/tntd-cascader/AntdCascader/component/DisabledContext.js.map +1 -0
  169. package/lib/tntd-cascader/AntdCascader/component/FormItemInputContext.d.ts +4 -0
  170. package/lib/tntd-cascader/AntdCascader/component/FormItemInputContext.d.ts.map +1 -0
  171. package/lib/tntd-cascader/AntdCascader/component/FormItemInputContext.js +29 -0
  172. package/lib/tntd-cascader/AntdCascader/component/FormItemInputContext.js.map +1 -0
  173. package/lib/tntd-cascader/AntdCascader/component/SizeContext.d.ts +4 -0
  174. package/lib/tntd-cascader/AntdCascader/component/SizeContext.d.ts.map +1 -0
  175. package/lib/tntd-cascader/AntdCascader/component/SizeContext.js +29 -0
  176. package/lib/tntd-cascader/AntdCascader/component/SizeContext.js.map +1 -0
  177. package/lib/tntd-cascader/AntdCascader/component/context.d.ts +42 -0
  178. package/lib/tntd-cascader/AntdCascader/component/context.d.ts.map +1 -0
  179. package/lib/tntd-cascader/AntdCascader/component/context.js +20 -0
  180. package/lib/tntd-cascader/AntdCascader/component/context.js.map +1 -0
  181. package/lib/tntd-cascader/AntdCascader/component/defaultRenderEmpty.d.ts +5 -0
  182. package/lib/tntd-cascader/AntdCascader/component/defaultRenderEmpty.d.ts.map +1 -0
  183. package/lib/tntd-cascader/AntdCascader/component/defaultRenderEmpty.js +48 -0
  184. package/lib/tntd-cascader/AntdCascader/component/defaultRenderEmpty.js.map +1 -0
  185. package/lib/tntd-cascader/AntdCascader/component/getIcons.d.ts +25 -0
  186. package/lib/tntd-cascader/AntdCascader/component/getIcons.d.ts.map +1 -0
  187. package/lib/tntd-cascader/AntdCascader/component/getIcons.js +78 -0
  188. package/lib/tntd-cascader/AntdCascader/component/getIcons.js.map +1 -0
  189. package/lib/tntd-cascader/AntdCascader/component/useCompactItemContext.d.ts +9 -0
  190. package/lib/tntd-cascader/AntdCascader/component/useCompactItemContext.d.ts.map +1 -0
  191. package/lib/tntd-cascader/AntdCascader/component/useCompactItemContext.js +54 -0
  192. package/lib/tntd-cascader/AntdCascader/component/useCompactItemContext.js.map +1 -0
  193. package/lib/tntd-cascader/AntdCascader/config/utils.d.ts +6 -0
  194. package/lib/tntd-cascader/AntdCascader/config/utils.d.ts.map +1 -0
  195. package/lib/tntd-cascader/AntdCascader/config/utils.js +34 -0
  196. package/lib/tntd-cascader/AntdCascader/config/utils.js.map +1 -0
  197. package/lib/tntd-cascader/AntdCascader/config/warning.d.ts +4 -0
  198. package/lib/tntd-cascader/AntdCascader/config/warning.d.ts.map +1 -0
  199. package/lib/tntd-cascader/AntdCascader/config/warning.js +40 -0
  200. package/lib/tntd-cascader/AntdCascader/config/warning.js.map +1 -0
  201. package/lib/tntd-cascader/AntdCascader/index.d.ts +44 -0
  202. package/lib/tntd-cascader/AntdCascader/index.d.ts.map +1 -0
  203. package/lib/tntd-cascader/AntdCascader/index.js +175 -0
  204. package/lib/tntd-cascader/AntdCascader/index.js.map +1 -0
  205. package/lib/tntd-cascader/AntdCascader/index.less +2325 -0
  206. package/lib/tntd-cascader/AntdCascader/interface.d.ts +25 -0
  207. package/lib/tntd-cascader/AntdCascader/interface.d.ts.map +1 -0
  208. package/lib/tntd-cascader/AntdCascader/interface.js +9 -0
  209. package/lib/tntd-cascader/AntdCascader/interface.js.map +1 -0
  210. package/lib/tntd-cascader/img/no-data-s.png +0 -0
  211. package/lib/tntd-cascader/index.d.ts +2 -0
  212. package/lib/tntd-cascader/index.d.ts.map +1 -0
  213. package/lib/tntd-cascader/index.js +9 -0
  214. package/lib/tntd-cascader/index.js.map +1 -0
  215. package/lib/tntd-cascader/rc-cascader/Cascader.d.ts +92 -0
  216. package/lib/tntd-cascader/rc-cascader/Cascader.d.ts.map +1 -0
  217. package/lib/tntd-cascader/rc-cascader/Cascader.js +302 -0
  218. package/lib/tntd-cascader/rc-cascader/Cascader.js.map +1 -0
  219. package/lib/tntd-cascader/rc-cascader/OptionList/Checkbox.d.ts +10 -0
  220. package/lib/tntd-cascader/rc-cascader/OptionList/Checkbox.d.ts.map +1 -0
  221. package/lib/tntd-cascader/rc-cascader/OptionList/Checkbox.js +43 -0
  222. package/lib/tntd-cascader/rc-cascader/OptionList/Checkbox.js.map +1 -0
  223. package/lib/tntd-cascader/rc-cascader/OptionList/Column.d.ts +27 -0
  224. package/lib/tntd-cascader/rc-cascader/OptionList/Column.d.ts.map +1 -0
  225. package/lib/tntd-cascader/rc-cascader/OptionList/Column.js +156 -0
  226. package/lib/tntd-cascader/rc-cascader/OptionList/Column.js.map +1 -0
  227. package/lib/tntd-cascader/rc-cascader/OptionList/index.d.ts +5 -0
  228. package/lib/tntd-cascader/rc-cascader/OptionList/index.d.ts.map +1 -0
  229. package/lib/tntd-cascader/rc-cascader/OptionList/index.js +169 -0
  230. package/lib/tntd-cascader/rc-cascader/OptionList/index.js.map +1 -0
  231. package/lib/tntd-cascader/rc-cascader/OptionList/useActive.d.ts +7 -0
  232. package/lib/tntd-cascader/rc-cascader/OptionList/useActive.d.ts.map +1 -0
  233. package/lib/tntd-cascader/rc-cascader/OptionList/useActive.js +54 -0
  234. package/lib/tntd-cascader/rc-cascader/OptionList/useActive.js.map +1 -0
  235. package/lib/tntd-cascader/rc-cascader/OptionList/useKeyboard.d.ts +6 -0
  236. package/lib/tntd-cascader/rc-cascader/OptionList/useKeyboard.d.ts.map +1 -0
  237. package/lib/tntd-cascader/rc-cascader/OptionList/useKeyboard.js +173 -0
  238. package/lib/tntd-cascader/rc-cascader/OptionList/useKeyboard.js.map +1 -0
  239. package/lib/tntd-cascader/rc-cascader/context.d.ts +26 -0
  240. package/lib/tntd-cascader/rc-cascader/context.d.ts.map +1 -0
  241. package/lib/tntd-cascader/rc-cascader/context.js +29 -0
  242. package/lib/tntd-cascader/rc-cascader/context.js.map +1 -0
  243. package/lib/tntd-cascader/rc-cascader/hooks/useDisplayValues.d.ts +11 -0
  244. package/lib/tntd-cascader/rc-cascader/hooks/useDisplayValues.d.ts.map +1 -0
  245. package/lib/tntd-cascader/rc-cascader/hooks/useDisplayValues.js +66 -0
  246. package/lib/tntd-cascader/rc-cascader/hooks/useDisplayValues.js.map +1 -0
  247. package/lib/tntd-cascader/rc-cascader/hooks/useEntities.d.ts +11 -0
  248. package/lib/tntd-cascader/rc-cascader/hooks/useEntities.d.ts.map +1 -0
  249. package/lib/tntd-cascader/rc-cascader/hooks/useEntities.js +55 -0
  250. package/lib/tntd-cascader/rc-cascader/hooks/useEntities.js.map +1 -0
  251. package/lib/tntd-cascader/rc-cascader/hooks/useMissingValues.d.ts +4 -0
  252. package/lib/tntd-cascader/rc-cascader/hooks/useMissingValues.d.ts.map +1 -0
  253. package/lib/tntd-cascader/rc-cascader/hooks/useMissingValues.js +44 -0
  254. package/lib/tntd-cascader/rc-cascader/hooks/useMissingValues.js.map +1 -0
  255. package/lib/tntd-cascader/rc-cascader/hooks/useRefFunc.d.ts +6 -0
  256. package/lib/tntd-cascader/rc-cascader/hooks/useRefFunc.d.ts.map +1 -0
  257. package/lib/tntd-cascader/rc-cascader/hooks/useRefFunc.js +41 -0
  258. package/lib/tntd-cascader/rc-cascader/hooks/useRefFunc.js.map +1 -0
  259. package/lib/tntd-cascader/rc-cascader/hooks/useSearchConfig.d.ts +3 -0
  260. package/lib/tntd-cascader/rc-cascader/hooks/useSearchConfig.d.ts.map +1 -0
  261. package/lib/tntd-cascader/rc-cascader/hooks/useSearchConfig.js +55 -0
  262. package/lib/tntd-cascader/rc-cascader/hooks/useSearchConfig.js.map +1 -0
  263. package/lib/tntd-cascader/rc-cascader/hooks/useSearchOptions.d.ts +5 -0
  264. package/lib/tntd-cascader/rc-cascader/hooks/useSearchOptions.d.ts.map +1 -0
  265. package/lib/tntd-cascader/rc-cascader/hooks/useSearchOptions.js +72 -0
  266. package/lib/tntd-cascader/rc-cascader/hooks/useSearchOptions.js.map +1 -0
  267. package/lib/tntd-cascader/rc-cascader/index.d.ts +4 -0
  268. package/lib/tntd-cascader/rc-cascader/index.d.ts.map +1 -0
  269. package/lib/tntd-cascader/rc-cascader/index.js +8 -0
  270. package/lib/tntd-cascader/rc-cascader/index.js.map +1 -0
  271. package/lib/tntd-cascader/rc-cascader/index.less +19 -0
  272. package/lib/tntd-cascader/rc-cascader/utils/commonUtil.d.ts +11 -0
  273. package/lib/tntd-cascader/rc-cascader/utils/commonUtil.d.ts.map +1 -0
  274. package/lib/tntd-cascader/rc-cascader/utils/commonUtil.js +50 -0
  275. package/lib/tntd-cascader/rc-cascader/utils/commonUtil.js.map +1 -0
  276. package/lib/tntd-cascader/rc-cascader/utils/treeUtil.d.ts +10 -0
  277. package/lib/tntd-cascader/rc-cascader/utils/treeUtil.d.ts.map +1 -0
  278. package/lib/tntd-cascader/rc-cascader/utils/treeUtil.js +42 -0
  279. package/lib/tntd-cascader/rc-cascader/utils/treeUtil.js.map +1 -0
  280. package/lib/tntd-cascader/rc-cascader/utils/warningPropsUtil.d.ts +5 -0
  281. package/lib/tntd-cascader/rc-cascader/utils/warningPropsUtil.d.ts.map +1 -0
  282. package/lib/tntd-cascader/rc-cascader/utils/warningPropsUtil.js +37 -0
  283. package/lib/tntd-cascader/rc-cascader/utils/warningPropsUtil.js.map +1 -0
  284. package/lib/tntd-layout/Avatar.d.ts.map +1 -1
  285. package/lib/tntd-layout/Avatar.js +25 -19
  286. package/lib/tntd-layout/Avatar.js.map +1 -1
  287. package/lib/tntd-layout/EnterpriseLayout/Avatar.d.ts.map +1 -1
  288. package/lib/tntd-layout/EnterpriseLayout/Avatar.js +10 -8
  289. package/lib/tntd-layout/EnterpriseLayout/Avatar.js.map +1 -1
  290. package/lib/tntd-layout/EnterpriseLayout/Language.js +4 -3
  291. package/lib/tntd-layout/EnterpriseLayout/Language.js.map +1 -1
  292. package/lib/tntd-layout/EnterpriseLayout/Theme.js +6 -5
  293. package/lib/tntd-layout/EnterpriseLayout/Theme.js.map +1 -1
  294. package/lib/tntd-layout/HeaderActions.js +5 -4
  295. package/lib/tntd-layout/HeaderActions.js.map +1 -1
  296. package/lib/tntd-layout/Layout.js +2 -2
  297. package/lib/tntd-layout/Layout.js.map +1 -1
  298. package/lib/tntd-layout/SideMenu.js.map +1 -1
  299. package/lib/tntd-layout/index.d.ts.map +1 -1
  300. package/lib/tntd-layout/index.js +2 -2
  301. package/lib/tntd-layout/index.js.map +1 -1
  302. package/lib/tntd-layout/storage.d.ts +3 -2
  303. package/lib/tntd-layout/storage.d.ts.map +1 -1
  304. package/lib/tntd-layout/storage.js +15 -3
  305. package/lib/tntd-layout/storage.js.map +1 -1
  306. package/package.json +11 -2
  307. package/themes/default/colors.less +3 -3
  308. package/themes/default/variables.less +6 -2
@@ -0,0 +1,5 @@
1
+ export const tuple = (...args) => args;
2
+ const ValidateStatuses = tuple('success', 'warning', 'error', 'validating', '');
3
+ const SelectPlacements = tuple('bottomLeft', 'bottomRight', 'topLeft', 'topRight');
4
+ const InputStatuses = tuple('warning', 'error', '');
5
+ //# sourceMappingURL=interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../src/tntd-cascader/AntdCascader/interface.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,KAAK,GAAG,CAAqB,GAAG,IAAO,EAAE,EAAE,CAAC,IAAI,CAAA;AAE7D,MAAM,gBAAgB,GAAG,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,CAAC,CAAA;AAI/E,MAAM,gBAAgB,GAAG,KAAK,CAAC,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;AAIlF,MAAM,aAAa,GAAG,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA","sourcesContent":["import type { ReactElement, JSXElementConstructor } from 'react'\n\nexport type SizeType = 'small' | 'middle' | 'large' | undefined\n\nexport type DirectionType = 'ltr' | 'rtl' | undefined\n\nexport const tuple = <T extends string[]>(...args: T) => args\n\nconst ValidateStatuses = tuple('success', 'warning', 'error', 'validating', '')\n\nexport type ValidateStatus = typeof ValidateStatuses[number]\n\nconst SelectPlacements = tuple('bottomLeft', 'bottomRight', 'topLeft', 'topRight')\n\nexport type SelectCommonPlacement = typeof SelectPlacements[number]\n\nconst InputStatuses = tuple('warning', 'error', '')\n\nexport type InputStatus = typeof InputStatuses[number]\n\nexport interface SpaceCompactItemContextType {\n compactSize?: SizeType\n compactDirection?: 'horizontal' | 'vertical'\n isFirstItem?: boolean\n isLastItem?: boolean\n}\n\nexport interface FormItemStatusContextProps {\n isFormItemInput?: boolean\n status?: ValidateStatus\n hasFeedback?: boolean\n feedbackIcon?: React.ReactNode\n}\n\nexport type DropdownRender = (\n menu: ReactElement<any, string | JSXElementConstructor<any>>\n) => ReactElement<any, string | JSXElementConstructor<any>>\n"]}
@@ -0,0 +1,2 @@
1
+ export { default } from './AntdCascader';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tntd-cascader/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA","sourcesContent":["export { default } from './AntdCascader'\n"]}
@@ -0,0 +1,274 @@
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;
11
+ };
12
+ import { BaseSelect } from 'rc-select';
13
+ import useId from 'rc-select/lib/hooks/useId';
14
+ import { conductCheck } from 'rc-tree/lib/utils/conductUtil';
15
+ import useMergedState from 'rc-util/lib/hooks/useMergedState';
16
+ import * as React from 'react';
17
+ import CascaderContext from './context';
18
+ import useDisplayValues from './hooks/useDisplayValues';
19
+ import useEntities from './hooks/useEntities';
20
+ import useMissingValues from './hooks/useMissingValues';
21
+ import useRefFunc from './hooks/useRefFunc';
22
+ import useSearchConfig from './hooks/useSearchConfig';
23
+ import useSearchOptions from './hooks/useSearchOptions';
24
+ import OptionList from './OptionList';
25
+ import { fillFieldNames, SHOW_CHILD, SHOW_PARENT, toPathKey, toPathKeys } from './utils/commonUtil';
26
+ import { formatStrategyValues, toPathOptions } from './utils/treeUtil';
27
+ import warningProps, { warningNullOptions } from './utils/warningPropsUtil';
28
+ import './context';
29
+ import './index.less';
30
+ function isMultipleValue(value) {
31
+ return Array.isArray(value) && Array.isArray(value[0]);
32
+ }
33
+ function toRawValues(value) {
34
+ if (!value) {
35
+ return [];
36
+ }
37
+ if (isMultipleValue(value)) {
38
+ return value;
39
+ }
40
+ return (value.length === 0 ? [] : [value]).map((val) => (Array.isArray(val) ? val : [val]));
41
+ }
42
+ const Cascader = React.forwardRef((props, ref) => {
43
+ const {
44
+ // MISC
45
+ id, prefixCls = 'rc-cascader', fieldNames,
46
+ // Value
47
+ defaultValue, value, changeOnSelect, onChange, displayRender, checkable,
48
+ // Search
49
+ searchValue, onSearch, showSearch,
50
+ // Trigger
51
+ expandTrigger,
52
+ // Options
53
+ options, dropdownPrefixCls, loadData,
54
+ // Open
55
+ popupVisible, open, popupClassName, dropdownClassName, dropdownMenuColumnStyle, popupPlacement, placement, onDropdownVisibleChange, onPopupVisibleChange, renderItem,
56
+ // Icon
57
+ expandIcon = '>', loadingIcon,
58
+ // Children
59
+ children, dropdownMatchSelectWidth = false, showCheckedStrategy = SHOW_PARENT } = props, restProps = __rest(props, ["id", "prefixCls", "fieldNames", "defaultValue", "value", "changeOnSelect", "onChange", "displayRender", "checkable", "searchValue", "onSearch", "showSearch", "expandTrigger", "options", "dropdownPrefixCls", "loadData", "popupVisible", "open", "popupClassName", "dropdownClassName", "dropdownMenuColumnStyle", "popupPlacement", "placement", "onDropdownVisibleChange", "onPopupVisibleChange", "renderItem", "expandIcon", "loadingIcon", "children", "dropdownMatchSelectWidth", "showCheckedStrategy"]);
60
+ const mergedId = useId(id);
61
+ const multiple = !!checkable;
62
+ const [dropdownVisible, setDropdownVisible] = React.useState(false);
63
+ // =========================== Values ===========================
64
+ const [rawValues, setRawValues] = useMergedState(defaultValue, {
65
+ value,
66
+ postState: toRawValues,
67
+ });
68
+ // ========================= FieldNames =========================
69
+ const mergedFieldNames = React.useMemo(() => fillFieldNames(fieldNames),
70
+ /* eslint-disable react-hooks/exhaustive-deps */
71
+ [JSON.stringify(fieldNames)]
72
+ /* eslint-enable react-hooks/exhaustive-deps */
73
+ );
74
+ // =========================== Option ===========================
75
+ const mergedOptions = React.useMemo(() => options || [], [options]);
76
+ // Only used in multiple mode, this fn will not call in single mode
77
+ const getPathKeyEntities = useEntities(mergedOptions, mergedFieldNames);
78
+ /** Convert path key back to value format */
79
+ const getValueByKeyPath = React.useCallback((pathKeys) => {
80
+ const keyPathEntities = getPathKeyEntities();
81
+ return pathKeys.map((pathKey) => {
82
+ const { nodes } = keyPathEntities[pathKey];
83
+ return nodes.map((node) => node[mergedFieldNames.value]);
84
+ });
85
+ }, [getPathKeyEntities, mergedFieldNames]);
86
+ // =========================== Search ===========================
87
+ const [mergedSearchValue, setSearchValue] = useMergedState('', {
88
+ value: searchValue,
89
+ postState: (search) => search || '',
90
+ });
91
+ const onInternalSearch = (searchText, info) => {
92
+ setSearchValue(searchText);
93
+ if (info.source !== 'blur' && onSearch) {
94
+ onSearch(searchText);
95
+ }
96
+ };
97
+ const [mergedShowSearch, searchConfig] = useSearchConfig(showSearch);
98
+ const searchOptions = useSearchOptions(mergedSearchValue, mergedOptions, mergedFieldNames, dropdownPrefixCls || prefixCls, searchConfig, changeOnSelect);
99
+ // =========================== Values ===========================
100
+ const getMissingValues = useMissingValues(mergedOptions, mergedFieldNames);
101
+ // Fill `rawValues` with checked conduction values
102
+ const [checkedValues, halfCheckedValues, missingCheckedValues] = React.useMemo(() => {
103
+ const [existValues, missingValues] = getMissingValues(rawValues);
104
+ if (!multiple || !rawValues.length) {
105
+ return [existValues, [], missingValues];
106
+ }
107
+ const keyPathValues = toPathKeys(existValues);
108
+ const keyPathEntities = getPathKeyEntities();
109
+ const { checkedKeys, halfCheckedKeys } = conductCheck(keyPathValues, true, keyPathEntities);
110
+ // Convert key back to value cells
111
+ return [getValueByKeyPath(checkedKeys), getValueByKeyPath(halfCheckedKeys), missingValues];
112
+ }, [multiple, rawValues, getPathKeyEntities, getValueByKeyPath, getMissingValues]);
113
+ const deDuplicatedValues = React.useMemo(() => {
114
+ const checkedKeys = toPathKeys(checkedValues);
115
+ const deduplicateKeys = formatStrategyValues(checkedKeys, getPathKeyEntities, showCheckedStrategy);
116
+ return [...missingCheckedValues, ...getValueByKeyPath(deduplicateKeys)];
117
+ }, [
118
+ checkedValues,
119
+ getPathKeyEntities,
120
+ getValueByKeyPath,
121
+ missingCheckedValues,
122
+ showCheckedStrategy,
123
+ ]);
124
+ const displayValues = useDisplayValues(deDuplicatedValues, mergedOptions, mergedFieldNames, multiple, displayRender);
125
+ // =========================== Change ===========================
126
+ const triggerChange = useRefFunc((nextValues) => {
127
+ setRawValues(nextValues);
128
+ // Save perf if no need trigger event
129
+ if (onChange) {
130
+ const nextRawValues = toRawValues(nextValues);
131
+ const valueOptions = nextRawValues.map((valueCells) => toPathOptions(valueCells, mergedOptions, mergedFieldNames).map((valueOpt) => valueOpt.option));
132
+ const triggerValues = multiple ? nextRawValues : nextRawValues[0];
133
+ const triggerOptions = multiple ? valueOptions : valueOptions[0];
134
+ onChange(triggerValues, triggerOptions);
135
+ }
136
+ });
137
+ // =========================== Select ===========================
138
+ const onInternalSelect = useRefFunc((valuePath) => {
139
+ setSearchValue('');
140
+ if (!multiple) {
141
+ triggerChange(valuePath);
142
+ }
143
+ else {
144
+ // Prepare conduct required info
145
+ const pathKey = toPathKey(valuePath);
146
+ const checkedPathKeys = toPathKeys(checkedValues);
147
+ const halfCheckedPathKeys = toPathKeys(halfCheckedValues);
148
+ const existInChecked = checkedPathKeys.includes(pathKey);
149
+ const existInMissing = missingCheckedValues.some((valueCells) => toPathKey(valueCells) === pathKey);
150
+ // Do update
151
+ let nextCheckedValues = checkedValues;
152
+ let nextMissingValues = missingCheckedValues;
153
+ if (existInMissing && !existInChecked) {
154
+ // Missing value only do filter
155
+ nextMissingValues = missingCheckedValues.filter((valueCells) => toPathKey(valueCells) !== pathKey);
156
+ }
157
+ else {
158
+ // Update checked key first
159
+ const nextRawCheckedKeys = existInChecked
160
+ ? checkedPathKeys.filter((key) => key !== pathKey)
161
+ : [...checkedPathKeys, pathKey];
162
+ const pathKeyEntities = getPathKeyEntities();
163
+ // Conduction by selected or not
164
+ let checkedKeys;
165
+ if (existInChecked) {
166
+ ;
167
+ ({ checkedKeys } = conductCheck(nextRawCheckedKeys, { checked: false, halfCheckedKeys: halfCheckedPathKeys }, pathKeyEntities));
168
+ }
169
+ else {
170
+ ;
171
+ ({ checkedKeys } = conductCheck(nextRawCheckedKeys, true, pathKeyEntities));
172
+ }
173
+ // Roll up to parent level keys
174
+ const deDuplicatedKeys = formatStrategyValues(checkedKeys, getPathKeyEntities, showCheckedStrategy);
175
+ nextCheckedValues = getValueByKeyPath(deDuplicatedKeys);
176
+ }
177
+ triggerChange([...nextMissingValues, ...nextCheckedValues]);
178
+ }
179
+ });
180
+ // Display Value change logic
181
+ const onDisplayValuesChange = (_, info) => {
182
+ if (info.type === 'clear') {
183
+ triggerChange([]);
184
+ return;
185
+ }
186
+ // Cascader do not support `add` type. Only support `remove`
187
+ const { valueCells } = info.values[0];
188
+ onInternalSelect(valueCells);
189
+ };
190
+ // ============================ Open ============================
191
+ const mergedOpen = open !== undefined ? open : popupVisible;
192
+ const mergedDropdownClassName = dropdownClassName || popupClassName;
193
+ const mergedPlacement = placement || popupPlacement;
194
+ const onInternalDropdownVisibleChange = (nextVisible) => {
195
+ onDropdownVisibleChange === null || onDropdownVisibleChange === void 0 ? void 0 : onDropdownVisibleChange(nextVisible);
196
+ onPopupVisibleChange === null || onPopupVisibleChange === void 0 ? void 0 : onPopupVisibleChange(nextVisible);
197
+ setDropdownVisible(nextVisible);
198
+ };
199
+ // ========================== Warning ===========================
200
+ if (process.env.NODE_ENV !== 'production') {
201
+ warningProps(props);
202
+ warningNullOptions(mergedOptions, mergedFieldNames);
203
+ }
204
+ // ========================== Context ===========================
205
+ const cascaderContext = React.useMemo(() => ({
206
+ options: mergedOptions,
207
+ fieldNames: mergedFieldNames,
208
+ values: checkedValues,
209
+ halfValues: halfCheckedValues,
210
+ changeOnSelect,
211
+ onSelect: onInternalSelect,
212
+ checkable,
213
+ searchOptions,
214
+ dropdownPrefixCls,
215
+ loadData,
216
+ expandTrigger,
217
+ expandIcon,
218
+ loadingIcon,
219
+ dropdownMenuColumnStyle,
220
+ renderItem,
221
+ dropdownVisible,
222
+ }), [
223
+ mergedOptions,
224
+ mergedFieldNames,
225
+ checkedValues,
226
+ halfCheckedValues,
227
+ changeOnSelect,
228
+ onInternalSelect,
229
+ checkable,
230
+ searchOptions,
231
+ dropdownPrefixCls,
232
+ loadData,
233
+ expandTrigger,
234
+ expandIcon,
235
+ loadingIcon,
236
+ dropdownMenuColumnStyle,
237
+ renderItem,
238
+ dropdownVisible,
239
+ ]);
240
+ // ==============================================================
241
+ // == Render ==
242
+ // ==============================================================
243
+ const emptyOptions = !(mergedSearchValue ? searchOptions : mergedOptions).length;
244
+ const dropdownStyle =
245
+ // Search to match width
246
+ (mergedSearchValue && searchConfig.matchInputWidth) ||
247
+ // Empty keep the width
248
+ emptyOptions
249
+ ? {}
250
+ : {
251
+ minWidth: 'auto',
252
+ };
253
+ return (React.createElement(CascaderContext.Provider, { value: cascaderContext },
254
+ React.createElement(BaseSelect, Object.assign({}, restProps, {
255
+ // MISC
256
+ ref: ref, id: mergedId, prefixCls: prefixCls, dropdownMatchSelectWidth: dropdownMatchSelectWidth, dropdownStyle: dropdownStyle,
257
+ // Value
258
+ displayValues: displayValues, onDisplayValuesChange: onDisplayValuesChange, mode: multiple ? 'multiple' : undefined,
259
+ // Search
260
+ searchValue: mergedSearchValue, onSearch: onInternalSearch, showSearch: mergedShowSearch,
261
+ // Options
262
+ OptionList: OptionList, emptyOptions: emptyOptions,
263
+ // Open
264
+ open: mergedOpen, dropdownClassName: mergedDropdownClassName, placement: mergedPlacement, onDropdownVisibleChange: onInternalDropdownVisibleChange,
265
+ // Children
266
+ getRawInputElement: () => children }))));
267
+ });
268
+ if (process.env.NODE_ENV !== 'production') {
269
+ Cascader.displayName = 'Cascader';
270
+ }
271
+ Cascader.SHOW_PARENT = SHOW_PARENT;
272
+ Cascader.SHOW_CHILD = SHOW_CHILD;
273
+ export default Cascader;
274
+ //# sourceMappingURL=Cascader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cascader.js","sourceRoot":"","sources":["../../../src/tntd-cascader/rc-cascader/Cascader.tsx"],"names":[],"mappings":"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","sourcesContent":["// @ts-nocheck\nimport type { BaseSelectProps, BaseSelectPropsWithoutPrivate, BaseSelectRef } from 'rc-select'\nimport { BaseSelect } from 'rc-select'\nimport type { DisplayValueType, Placement } from 'rc-select/lib/BaseSelect'\nimport useId from 'rc-select/lib/hooks/useId'\nimport { conductCheck } from 'rc-tree/lib/utils/conductUtil'\nimport useMergedState from 'rc-util/lib/hooks/useMergedState'\nimport * as React from 'react'\nimport CascaderContext from './context'\nimport useDisplayValues from './hooks/useDisplayValues'\nimport useEntities from './hooks/useEntities'\nimport useMissingValues from './hooks/useMissingValues'\nimport useRefFunc from './hooks/useRefFunc'\nimport useSearchConfig from './hooks/useSearchConfig'\nimport useSearchOptions from './hooks/useSearchOptions'\nimport OptionList from './OptionList'\nimport { fillFieldNames, SHOW_CHILD, SHOW_PARENT, toPathKey, toPathKeys } from './utils/commonUtil'\nimport { formatStrategyValues, toPathOptions } from './utils/treeUtil'\nimport warningProps, { warningNullOptions } from './utils/warningPropsUtil'\nimport { RenderItem } from './context'\nimport './index.less'\n\nexport interface ShowSearchType<OptionType extends BaseOptionType = DefaultOptionType> {\n filter?: (inputValue: string, options: OptionType[], fieldNames: FieldNames) => boolean\n render?: (\n inputValue: string,\n path: OptionType[],\n prefixCls: string,\n fieldNames: FieldNames\n ) => React.ReactNode\n sort?: (a: OptionType[], b: OptionType[], inputValue: string, fieldNames: FieldNames) => number\n matchInputWidth?: boolean\n limit?: number | false\n}\n\nexport interface FieldNames {\n label?: string\n value?: string\n children?: string\n}\n\nexport interface InternalFieldNames extends Required<FieldNames> {\n key: string\n}\n\nexport type SingleValueType = (string | number)[]\n\nexport type ValueType = SingleValueType | SingleValueType[]\nexport type ShowCheckedStrategy = typeof SHOW_PARENT | typeof SHOW_CHILD\n\nexport interface BaseOptionType {\n disabled?: boolean\n [name: string]: any\n}\nexport interface DefaultOptionType extends BaseOptionType {\n label: React.ReactNode\n value?: string | number | null\n children?: DefaultOptionType[]\n}\n\ninterface BaseCascaderProps<OptionType extends BaseOptionType = DefaultOptionType>\n extends Omit<\n BaseSelectPropsWithoutPrivate,\n 'tokenSeparators' | 'labelInValue' | 'mode' | 'showSearch'\n > {\n // MISC\n id?: string\n prefixCls?: string\n fieldNames?: FieldNames\n children?: React.ReactElement\n\n // Value\n value?: ValueType\n defaultValue?: ValueType\n changeOnSelect?: boolean\n displayRender?: (label: string[], selectedOptions?: OptionType[]) => React.ReactNode\n checkable?: boolean | React.ReactNode\n showCheckedStrategy?: ShowCheckedStrategy\n\n // Search\n showSearch?: boolean | ShowSearchType<OptionType>\n searchValue?: string\n onSearch?: (value: string) => void\n\n // Trigger\n expandTrigger?: 'hover' | 'click'\n\n // Options\n options?: OptionType[]\n /** @private Internal usage. Do not use in your production. */\n dropdownPrefixCls?: string\n loadData?: (selectOptions: OptionType[]) => void\n\n // Open\n /** @deprecated Use `open` instead */\n popupVisible?: boolean\n\n /** @deprecated Use `dropdownClassName` instead */\n popupClassName?: string\n dropdownClassName?: string\n dropdownMenuColumnStyle?: React.CSSProperties\n\n /** @deprecated Use `placement` instead */\n popupPlacement?: Placement\n placement?: Placement\n\n /** @deprecated Use `onDropdownVisibleChange` instead */\n onPopupVisibleChange?: (open: boolean) => void\n onDropdownVisibleChange?: (open: boolean) => void\n renderItem?: (item: RenderItem) => React.ReactNode\n\n // Icon\n expandIcon?: React.ReactNode\n loadingIcon?: React.ReactNode\n}\n\ntype OnSingleChange<OptionType> = (value: SingleValueType, selectOptions: OptionType[]) => void\ntype OnMultipleChange<OptionType> = (\n value: SingleValueType[],\n selectOptions: OptionType[][]\n) => void\n\nexport interface SingleCascaderProps<OptionType extends BaseOptionType = DefaultOptionType>\n extends BaseCascaderProps<OptionType> {\n checkable?: false\n\n onChange?: OnSingleChange<OptionType>\n}\n\nexport interface MultipleCascaderProps<OptionType extends BaseOptionType = DefaultOptionType>\n extends BaseCascaderProps<OptionType> {\n checkable: true | React.ReactNode\n\n onChange?: OnMultipleChange<OptionType>\n}\n\nexport type CascaderProps<OptionType extends BaseOptionType = DefaultOptionType> =\n | SingleCascaderProps<OptionType>\n | MultipleCascaderProps<OptionType>\n\nexport type InternalCascaderProps<OptionType extends BaseOptionType = DefaultOptionType> = Omit<\n SingleCascaderProps<OptionType> | MultipleCascaderProps<OptionType>,\n 'onChange'\n> & {\n onChange?: (\n value: SingleValueType | SingleValueType[],\n selectOptions: OptionType[] | OptionType[][]\n ) => void\n}\n\nexport type CascaderRef = Omit<BaseSelectRef, 'scrollTo'>\n\nfunction isMultipleValue(value: ValueType): value is SingleValueType[] {\n return Array.isArray(value) && Array.isArray(value[0])\n}\n\nfunction toRawValues(value: ValueType): SingleValueType[] {\n if (!value) {\n return []\n }\n\n if (isMultipleValue(value)) {\n return value\n }\n\n return (value.length === 0 ? [] : [value]).map((val) => (Array.isArray(val) ? val : [val]))\n}\n\nconst Cascader = React.forwardRef<CascaderRef, InternalCascaderProps>((props, ref) => {\n const {\n // MISC\n id,\n prefixCls = 'rc-cascader',\n fieldNames,\n\n // Value\n defaultValue,\n value,\n changeOnSelect,\n onChange,\n displayRender,\n checkable,\n\n // Search\n searchValue,\n onSearch,\n showSearch,\n\n // Trigger\n expandTrigger,\n\n // Options\n options,\n dropdownPrefixCls,\n loadData,\n\n // Open\n popupVisible,\n open,\n\n popupClassName,\n dropdownClassName,\n dropdownMenuColumnStyle,\n\n popupPlacement,\n placement,\n\n onDropdownVisibleChange,\n onPopupVisibleChange,\n renderItem,\n\n // Icon\n expandIcon = '>',\n loadingIcon,\n\n // Children\n children,\n dropdownMatchSelectWidth = false,\n showCheckedStrategy = SHOW_PARENT,\n ...restProps\n } = props\n\n const mergedId = useId(id)\n const multiple = !!checkable\n const [dropdownVisible, setDropdownVisible] = React.useState(false)\n\n // =========================== Values ===========================\n const [rawValues, setRawValues] = useMergedState<ValueType, SingleValueType[]>(defaultValue, {\n value,\n postState: toRawValues,\n })\n\n // ========================= FieldNames =========================\n const mergedFieldNames = React.useMemo(\n () => fillFieldNames(fieldNames),\n /* eslint-disable react-hooks/exhaustive-deps */\n [JSON.stringify(fieldNames)]\n /* eslint-enable react-hooks/exhaustive-deps */\n )\n\n // =========================== Option ===========================\n const mergedOptions = React.useMemo(() => options || [], [options])\n\n // Only used in multiple mode, this fn will not call in single mode\n const getPathKeyEntities = useEntities(mergedOptions, mergedFieldNames)\n\n /** Convert path key back to value format */\n const getValueByKeyPath = React.useCallback(\n (pathKeys: React.Key[]): SingleValueType[] => {\n const keyPathEntities = getPathKeyEntities()\n\n return pathKeys.map((pathKey) => {\n const { nodes } = keyPathEntities[pathKey]\n\n return nodes.map((node) => node[mergedFieldNames.value])\n })\n },\n [getPathKeyEntities, mergedFieldNames]\n )\n\n // =========================== Search ===========================\n const [mergedSearchValue, setSearchValue] = useMergedState('', {\n value: searchValue,\n postState: (search) => search || '',\n })\n\n const onInternalSearch: BaseSelectProps['onSearch'] = (searchText, info) => {\n setSearchValue(searchText)\n\n if (info.source !== 'blur' && onSearch) {\n onSearch(searchText)\n }\n }\n\n const [mergedShowSearch, searchConfig] = useSearchConfig(showSearch)\n\n const searchOptions = useSearchOptions(\n mergedSearchValue,\n mergedOptions,\n mergedFieldNames,\n dropdownPrefixCls || prefixCls,\n searchConfig,\n changeOnSelect\n )\n\n // =========================== Values ===========================\n const getMissingValues = useMissingValues(mergedOptions, mergedFieldNames)\n\n // Fill `rawValues` with checked conduction values\n const [checkedValues, halfCheckedValues, missingCheckedValues] = React.useMemo(() => {\n const [existValues, missingValues] = getMissingValues(rawValues)\n\n if (!multiple || !rawValues.length) {\n return [existValues, [], missingValues]\n }\n\n const keyPathValues = toPathKeys(existValues)\n const keyPathEntities = getPathKeyEntities()\n\n const { checkedKeys, halfCheckedKeys } = conductCheck(keyPathValues, true, keyPathEntities)\n\n // Convert key back to value cells\n return [getValueByKeyPath(checkedKeys), getValueByKeyPath(halfCheckedKeys), missingValues]\n }, [multiple, rawValues, getPathKeyEntities, getValueByKeyPath, getMissingValues])\n\n const deDuplicatedValues = React.useMemo(() => {\n const checkedKeys = toPathKeys(checkedValues)\n const deduplicateKeys = formatStrategyValues(\n checkedKeys,\n getPathKeyEntities,\n showCheckedStrategy\n )\n\n return [...missingCheckedValues, ...getValueByKeyPath(deduplicateKeys)]\n }, [\n checkedValues,\n getPathKeyEntities,\n getValueByKeyPath,\n missingCheckedValues,\n showCheckedStrategy,\n ])\n\n const displayValues = useDisplayValues(\n deDuplicatedValues,\n mergedOptions,\n mergedFieldNames,\n multiple,\n displayRender\n )\n\n // =========================== Change ===========================\n const triggerChange = useRefFunc((nextValues: ValueType) => {\n setRawValues(nextValues)\n\n // Save perf if no need trigger event\n if (onChange) {\n const nextRawValues = toRawValues(nextValues)\n\n const valueOptions = nextRawValues.map((valueCells) =>\n toPathOptions(valueCells, mergedOptions, mergedFieldNames).map(\n (valueOpt) => valueOpt.option\n )\n )\n\n const triggerValues = multiple ? nextRawValues : nextRawValues[0]\n const triggerOptions = multiple ? valueOptions : valueOptions[0]\n\n onChange(triggerValues, triggerOptions)\n }\n })\n\n // =========================== Select ===========================\n const onInternalSelect = useRefFunc((valuePath: SingleValueType) => {\n setSearchValue('')\n if (!multiple) {\n triggerChange(valuePath)\n } else {\n // Prepare conduct required info\n const pathKey = toPathKey(valuePath)\n const checkedPathKeys = toPathKeys(checkedValues)\n const halfCheckedPathKeys = toPathKeys(halfCheckedValues)\n\n const existInChecked = checkedPathKeys.includes(pathKey)\n const existInMissing = missingCheckedValues.some(\n (valueCells) => toPathKey(valueCells) === pathKey\n )\n\n // Do update\n let nextCheckedValues = checkedValues\n let nextMissingValues = missingCheckedValues\n\n if (existInMissing && !existInChecked) {\n // Missing value only do filter\n nextMissingValues = missingCheckedValues.filter(\n (valueCells) => toPathKey(valueCells) !== pathKey\n )\n } else {\n // Update checked key first\n const nextRawCheckedKeys = existInChecked\n ? checkedPathKeys.filter((key) => key !== pathKey)\n : [...checkedPathKeys, pathKey]\n\n const pathKeyEntities = getPathKeyEntities()\n\n // Conduction by selected or not\n let checkedKeys: React.Key[]\n if (existInChecked) {\n ;({ checkedKeys } = conductCheck(\n nextRawCheckedKeys,\n { checked: false, halfCheckedKeys: halfCheckedPathKeys },\n pathKeyEntities\n ))\n } else {\n ;({ checkedKeys } = conductCheck(nextRawCheckedKeys, true, pathKeyEntities))\n }\n\n // Roll up to parent level keys\n const deDuplicatedKeys = formatStrategyValues(\n checkedKeys,\n getPathKeyEntities,\n showCheckedStrategy\n )\n nextCheckedValues = getValueByKeyPath(deDuplicatedKeys)\n }\n\n triggerChange([...nextMissingValues, ...nextCheckedValues])\n }\n })\n\n // Display Value change logic\n const onDisplayValuesChange: BaseSelectProps['onDisplayValuesChange'] = (_, info) => {\n if (info.type === 'clear') {\n triggerChange([])\n return\n }\n\n // Cascader do not support `add` type. Only support `remove`\n const { valueCells } = info.values[0] as DisplayValueType & { valueCells: SingleValueType }\n onInternalSelect(valueCells)\n }\n\n // ============================ Open ============================\n const mergedOpen = open !== undefined ? open : popupVisible\n\n const mergedDropdownClassName = dropdownClassName || popupClassName\n\n const mergedPlacement = placement || popupPlacement\n\n const onInternalDropdownVisibleChange = (nextVisible: boolean) => {\n onDropdownVisibleChange?.(nextVisible)\n onPopupVisibleChange?.(nextVisible)\n setDropdownVisible(nextVisible)\n }\n\n // ========================== Warning ===========================\n if (process.env.NODE_ENV !== 'production') {\n warningProps(props)\n warningNullOptions(mergedOptions, mergedFieldNames)\n }\n\n // ========================== Context ===========================\n const cascaderContext = React.useMemo(\n () => ({\n options: mergedOptions,\n fieldNames: mergedFieldNames,\n values: checkedValues,\n halfValues: halfCheckedValues,\n changeOnSelect,\n onSelect: onInternalSelect,\n checkable,\n searchOptions,\n dropdownPrefixCls,\n loadData,\n expandTrigger,\n expandIcon,\n loadingIcon,\n dropdownMenuColumnStyle,\n renderItem,\n dropdownVisible,\n }),\n [\n mergedOptions,\n mergedFieldNames,\n checkedValues,\n halfCheckedValues,\n changeOnSelect,\n onInternalSelect,\n checkable,\n searchOptions,\n dropdownPrefixCls,\n loadData,\n expandTrigger,\n expandIcon,\n loadingIcon,\n dropdownMenuColumnStyle,\n renderItem,\n dropdownVisible,\n ]\n )\n\n // ==============================================================\n // == Render ==\n // ==============================================================\n const emptyOptions = !(mergedSearchValue ? searchOptions : mergedOptions).length\n\n const dropdownStyle: React.CSSProperties =\n // Search to match width\n (mergedSearchValue && searchConfig.matchInputWidth) ||\n // Empty keep the width\n emptyOptions\n ? {}\n : {\n minWidth: 'auto',\n }\n return (\n <CascaderContext.Provider value={cascaderContext}>\n <BaseSelect\n {...restProps}\n // MISC\n ref={ref as any}\n id={mergedId}\n prefixCls={prefixCls}\n dropdownMatchSelectWidth={dropdownMatchSelectWidth}\n dropdownStyle={dropdownStyle}\n // Value\n displayValues={displayValues}\n onDisplayValuesChange={onDisplayValuesChange}\n mode={multiple ? 'multiple' : undefined}\n // Search\n searchValue={mergedSearchValue}\n onSearch={onInternalSearch}\n showSearch={mergedShowSearch}\n // Options\n OptionList={OptionList}\n emptyOptions={emptyOptions}\n // Open\n open={mergedOpen}\n dropdownClassName={mergedDropdownClassName}\n placement={mergedPlacement}\n onDropdownVisibleChange={onInternalDropdownVisibleChange}\n // Children\n getRawInputElement={() => children}\n />\n </CascaderContext.Provider>\n )\n}) as unknown as (<OptionType extends BaseOptionType | DefaultOptionType = DefaultOptionType>(\n props: React.PropsWithChildren<CascaderProps<OptionType>> & {\n ref?: React.Ref<BaseSelectRef>\n }\n) => React.ReactElement) & {\n displayName?: string\n SHOW_PARENT: typeof SHOW_PARENT\n SHOW_CHILD: typeof SHOW_CHILD\n}\n\nif (process.env.NODE_ENV !== 'production') {\n Cascader.displayName = 'Cascader'\n}\n\nCascader.SHOW_PARENT = SHOW_PARENT\nCascader.SHOW_CHILD = SHOW_CHILD\nexport default Cascader\n"]}
@@ -0,0 +1,14 @@
1
+ import * as React from 'react';
2
+ import classNames from 'classnames';
3
+ import CascaderContext from '../context';
4
+ export default function Checkbox({ prefixCls, checked, halfChecked, disabled, onClick, }) {
5
+ // @ts-ignore
6
+ const { checkable } = React.useContext(CascaderContext);
7
+ const customCheckbox = typeof checkable !== 'boolean' ? checkable : null;
8
+ return (React.createElement("span", { className: classNames(`${prefixCls}`, {
9
+ [`${prefixCls}-checked`]: checked,
10
+ [`${prefixCls}-indeterminate`]: !checked && halfChecked,
11
+ [`${prefixCls}-disabled`]: disabled,
12
+ }), onClick: onClick }, customCheckbox));
13
+ }
14
+ //# sourceMappingURL=Checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../../../../src/tntd-cascader/rc-cascader/OptionList/Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,UAAU,MAAM,YAAY,CAAA;AACnC,OAAO,eAAe,MAAM,YAAY,CAAA;AAUxC,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,SAAS,EACT,OAAO,EACP,WAAW,EACX,QAAQ,EACR,OAAO,GACO;IACd,aAAa;IACb,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAA;IAEvD,MAAM,cAAc,GAAG,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAA;IAExE,OAAO,CACL,8BACE,SAAS,EAAE,UAAU,CAAC,GAAG,SAAS,EAAE,EAAE;YACpC,CAAC,GAAG,SAAS,UAAU,CAAC,EAAE,OAAO;YACjC,CAAC,GAAG,SAAS,gBAAgB,CAAC,EAAE,CAAC,OAAO,IAAI,WAAW;YACvD,CAAC,GAAG,SAAS,WAAW,CAAC,EAAE,QAAQ;SACpC,CAAC,EACF,OAAO,EAAE,OAAO,IAEf,cAAc,CACV,CACR,CAAA;AACH,CAAC","sourcesContent":["import * as React from 'react'\nimport classNames from 'classnames'\nimport CascaderContext from '../context'\n\nexport interface CheckboxProps {\n prefixCls: string\n checked?: boolean\n halfChecked?: boolean\n disabled?: boolean\n onClick?: React.MouseEventHandler\n}\n\nexport default function Checkbox({\n prefixCls,\n checked,\n halfChecked,\n disabled,\n onClick,\n}: CheckboxProps) {\n // @ts-ignore\n const { checkable } = React.useContext(CascaderContext)\n\n const customCheckbox = typeof checkable !== 'boolean' ? checkable : null\n\n return (\n <span\n className={classNames(`${prefixCls}`, {\n [`${prefixCls}-checked`]: checked,\n [`${prefixCls}-indeterminate`]: !checked && halfChecked,\n [`${prefixCls}-disabled`]: disabled,\n })}\n onClick={onClick}\n >\n {customCheckbox}\n </span>\n )\n}\n"]}
@@ -0,0 +1,126 @@
1
+ // @ts-nocheck
2
+ import * as React from 'react';
3
+ import classNames from 'classnames';
4
+ import { isLeaf, toPathKey } from '../utils/commonUtil';
5
+ import CascaderContext from '../context';
6
+ import Checkbox from './Checkbox';
7
+ import { SEARCH_MARK } from '../hooks/useSearchOptions';
8
+ import List from 'rc-virtual-list';
9
+ export const FIX_LABEL = '__cascader_fix_label__';
10
+ export default function Column({ prefixCls, multiple, options, activeValue, prevValuePath, onToggleOpen, onSelect, onActive, checkedSet, halfCheckedSet, loadingKeys, isSelectable, renderItem, searchValue, level, dropdownVisible, optionHeight, }) {
11
+ const ref = React.useRef(null);
12
+ const menuPrefixCls = `${prefixCls}-menu ${prefixCls}-menu-${level}`;
13
+ const menuItemPrefixCls = `${prefixCls}-menu-item`;
14
+ const { fieldNames, changeOnSelect, expandTrigger, expandIcon, loadingIcon, dropdownMenuColumnStyle, } = React.useContext(CascaderContext);
15
+ const hoverOpen = expandTrigger === 'hover';
16
+ /** 单选情况下滚动到相应的位置 */
17
+ React.useEffect(() => {
18
+ let timer = null;
19
+ if (ref.current && ref.current.scrollTo && !multiple && dropdownVisible) {
20
+ const index = options.findIndex((it) => it[fieldNames.value] === activeValue);
21
+ if (index > 0 && !isNaN(index)) {
22
+ timer = window.setTimeout(() => {
23
+ ref.current.scrollTo((optionHeight || 36) * index);
24
+ }, 5);
25
+ }
26
+ }
27
+ return () => {
28
+ if (timer) {
29
+ window.clearTimeout(timer);
30
+ }
31
+ timer = null;
32
+ };
33
+ }, [multiple, activeValue, options, fieldNames, dropdownVisible, optionHeight]);
34
+ // ============================ Option ============================
35
+ const optionInfoList = React.useMemo(() => options.map((option) => {
36
+ var _a;
37
+ const { disabled } = option;
38
+ const searchOptions = option[SEARCH_MARK];
39
+ const label = (_a = option[FIX_LABEL]) !== null && _a !== void 0 ? _a : option[fieldNames.label];
40
+ const value = option[fieldNames.value];
41
+ const isMergedLeaf = isLeaf(option, fieldNames);
42
+ // Get real value of option. Search option is different way.
43
+ const fullPath = searchOptions
44
+ ? // @ts-ignore
45
+ searchOptions.map((opt) => opt[fieldNames.value])
46
+ : [...prevValuePath, value];
47
+ const fullPathKey = toPathKey(fullPath);
48
+ const isLoading = loadingKeys.includes(fullPathKey);
49
+ // >>>>> checked
50
+ const checked = checkedSet.has(fullPathKey);
51
+ // >>>>> halfChecked
52
+ const halfChecked = halfCheckedSet.has(fullPathKey);
53
+ return {
54
+ disabled,
55
+ label,
56
+ value,
57
+ isLeaf: isMergedLeaf,
58
+ isLoading,
59
+ checked,
60
+ halfChecked,
61
+ option,
62
+ fullPath,
63
+ fullPathKey,
64
+ };
65
+ }), [options, checkedSet, fieldNames, halfCheckedSet, loadingKeys, prevValuePath]);
66
+ // ============================ Render ============================
67
+ return (React.createElement("ul", { className: menuPrefixCls, role: "menu" },
68
+ React.createElement(List, { className: optionInfoList[0].fullPathKey === '__EMPTY__' || !!searchValue
69
+ ? 'rc-virtual-list-full'
70
+ : '', data: optionInfoList, height: 180, itemHeight: optionHeight || 36, itemKey: "value", ref: ref }, ({ disabled, label, value, isLeaf: isMergedLeaf, isLoading, checked, halfChecked, option, fullPath, fullPathKey, }) => {
71
+ // >>>>> Open
72
+ const triggerOpenPath = () => {
73
+ if (!disabled && (!hoverOpen || !isMergedLeaf)) {
74
+ onActive(fullPath);
75
+ }
76
+ };
77
+ // >>>>> Selection
78
+ const triggerSelect = () => {
79
+ if (isSelectable(option)) {
80
+ onSelect(fullPath, isMergedLeaf);
81
+ }
82
+ };
83
+ // >>>>> Title
84
+ let title;
85
+ if (typeof option.title === 'string') {
86
+ title = option.title;
87
+ }
88
+ else if (typeof label === 'string') {
89
+ title = label;
90
+ }
91
+ return (React.createElement("li", { key: fullPathKey, className: classNames(menuItemPrefixCls, {
92
+ [`${menuItemPrefixCls}-expand`]: !isMergedLeaf,
93
+ [`${menuItemPrefixCls}-active`]: activeValue === value,
94
+ [`${menuItemPrefixCls}-disabled`]: disabled,
95
+ [`${menuItemPrefixCls}-loading`]: isLoading,
96
+ }), style: dropdownMenuColumnStyle, role: "menuitemcheckbox",
97
+ // @ts-ignore
98
+ title: title, "aria-checked": checked, "data-path-key": fullPathKey, onClick: () => {
99
+ triggerOpenPath();
100
+ if (!multiple || isMergedLeaf) {
101
+ triggerSelect();
102
+ }
103
+ }, onDoubleClick: () => {
104
+ if (changeOnSelect) {
105
+ onToggleOpen(false);
106
+ }
107
+ }, onMouseEnter: () => {
108
+ if (hoverOpen) {
109
+ triggerOpenPath();
110
+ }
111
+ }, onMouseDown: (e) => {
112
+ // Prevent selector from blurring
113
+ e.preventDefault();
114
+ } },
115
+ multiple && (React.createElement(Checkbox, { prefixCls: `${prefixCls}-checkbox`, checked: checked, halfChecked: halfChecked, disabled: disabled, onClick: (e) => {
116
+ e.stopPropagation();
117
+ triggerSelect();
118
+ } })),
119
+ React.createElement("div", { className: `${menuItemPrefixCls}-content` }, optionInfoList[0].fullPathKey !== '__EMPTY__' && renderItem
120
+ ? renderItem(option, level)
121
+ : label),
122
+ !isLoading && expandIcon && !isMergedLeaf && (React.createElement("div", { className: `${menuItemPrefixCls}-expand-icon` }, expandIcon)),
123
+ isLoading && loadingIcon && (React.createElement("div", { className: `${menuItemPrefixCls}-loading-icon` }, loadingIcon))));
124
+ })));
125
+ }
126
+ //# sourceMappingURL=Column.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Column.js","sourceRoot":"","sources":["../../../../src/tntd-cascader/rc-cascader/OptionList/Column.tsx"],"names":[],"mappings":"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","sourcesContent":["// @ts-nocheck\nimport * as React from 'react'\nimport classNames from 'classnames'\nimport { isLeaf, toPathKey } from '../utils/commonUtil'\nimport CascaderContext from '../context'\nimport Checkbox from './Checkbox'\nimport type { DefaultOptionType, SingleValueType } from '../Cascader'\nimport { SEARCH_MARK } from '../hooks/useSearchOptions'\nimport List, { ListRef } from 'rc-virtual-list'\nimport type { RenderItem } from '../context'\n\nexport const FIX_LABEL = '__cascader_fix_label__'\n\nexport interface ColumnProps {\n prefixCls: string\n multiple?: boolean\n options: DefaultOptionType[]\n /** Current Column opened item key */\n activeValue?: React.Key\n /** The value path before current column */\n prevValuePath: React.Key[]\n onToggleOpen: (open: boolean) => void\n onSelect: (valuePath: SingleValueType, leaf: boolean) => void\n onActive: (valuePath: SingleValueType) => void\n checkedSet: Set<React.Key>\n halfCheckedSet: Set<React.Key>\n loadingKeys: React.Key[]\n isSelectable: (option: DefaultOptionType) => boolean\n renderItem?: (item: RenderItem) => React.ReactNode\n searchValue?: string\n level?: number\n dropdownVisible?: boolean\n optionHeight?: number\n}\n\nexport default function Column({\n prefixCls,\n multiple,\n options,\n activeValue,\n prevValuePath,\n onToggleOpen,\n onSelect,\n onActive,\n checkedSet,\n halfCheckedSet,\n loadingKeys,\n isSelectable,\n renderItem,\n searchValue,\n level,\n dropdownVisible,\n optionHeight,\n}: ColumnProps) {\n const ref = React.useRef<ListRef>(null)\n const menuPrefixCls = `${prefixCls}-menu ${prefixCls}-menu-${level}`\n const menuItemPrefixCls = `${prefixCls}-menu-item`\n\n const {\n fieldNames,\n changeOnSelect,\n expandTrigger,\n expandIcon,\n loadingIcon,\n dropdownMenuColumnStyle,\n } = React.useContext(CascaderContext)\n\n const hoverOpen = expandTrigger === 'hover'\n\n /** 单选情况下滚动到相应的位置 */\n React.useEffect(() => {\n let timer = null\n if (ref.current && ref.current.scrollTo && !multiple && dropdownVisible) {\n const index = options.findIndex((it) => it[fieldNames.value] === activeValue)\n\n if (index > 0 && !isNaN(index)) {\n timer = window.setTimeout(() => {\n ref.current.scrollTo((optionHeight || 36) * index)\n }, 5)\n }\n }\n\n return () => {\n if (timer) {\n window.clearTimeout(timer)\n }\n timer = null\n }\n }, [multiple, activeValue, options, fieldNames, dropdownVisible, optionHeight])\n\n // ============================ Option ============================\n const optionInfoList = React.useMemo(\n () =>\n options.map((option) => {\n const { disabled } = option\n const searchOptions = option[SEARCH_MARK]\n const label = option[FIX_LABEL] ?? option[fieldNames.label]\n const value = option[fieldNames.value]\n\n const isMergedLeaf = isLeaf(option, fieldNames)\n\n // Get real value of option. Search option is different way.\n const fullPath = searchOptions\n ? // @ts-ignore\n searchOptions.map((opt) => opt[fieldNames.value])\n : [...prevValuePath, value]\n const fullPathKey = toPathKey(fullPath)\n\n const isLoading = loadingKeys.includes(fullPathKey)\n\n // >>>>> checked\n const checked = checkedSet.has(fullPathKey)\n\n // >>>>> halfChecked\n const halfChecked = halfCheckedSet.has(fullPathKey)\n\n return {\n disabled,\n label,\n value,\n isLeaf: isMergedLeaf,\n isLoading,\n checked,\n halfChecked,\n option,\n fullPath,\n fullPathKey,\n }\n }),\n [options, checkedSet, fieldNames, halfCheckedSet, loadingKeys, prevValuePath]\n )\n // ============================ Render ============================\n return (\n <ul className={menuPrefixCls} role=\"menu\">\n <List\n className={\n optionInfoList[0].fullPathKey === '__EMPTY__' || !!searchValue\n ? 'rc-virtual-list-full'\n : ''\n }\n data={optionInfoList}\n height={180}\n itemHeight={optionHeight || 36}\n itemKey=\"value\"\n ref={ref}\n >\n {({\n disabled,\n label,\n value,\n isLeaf: isMergedLeaf,\n isLoading,\n checked,\n halfChecked,\n option,\n fullPath,\n fullPathKey,\n }) => {\n // >>>>> Open\n const triggerOpenPath = () => {\n if (!disabled && (!hoverOpen || !isMergedLeaf)) {\n onActive(fullPath)\n }\n }\n\n // >>>>> Selection\n const triggerSelect = () => {\n if (isSelectable(option)) {\n onSelect(fullPath, isMergedLeaf)\n }\n }\n\n // >>>>> Title\n let title: string\n if (typeof option.title === 'string') {\n title = option.title\n } else if (typeof label === 'string') {\n title = label\n }\n return (\n <li\n key={fullPathKey}\n className={classNames(menuItemPrefixCls, {\n [`${menuItemPrefixCls}-expand`]: !isMergedLeaf,\n [`${menuItemPrefixCls}-active`]: activeValue === value,\n [`${menuItemPrefixCls}-disabled`]: disabled,\n [`${menuItemPrefixCls}-loading`]: isLoading,\n })}\n style={dropdownMenuColumnStyle}\n role=\"menuitemcheckbox\"\n // @ts-ignore\n title={title}\n aria-checked={checked}\n data-path-key={fullPathKey}\n onClick={() => {\n triggerOpenPath()\n if (!multiple || isMergedLeaf) {\n triggerSelect()\n }\n }}\n onDoubleClick={() => {\n if (changeOnSelect) {\n onToggleOpen(false)\n }\n }}\n onMouseEnter={() => {\n if (hoverOpen) {\n triggerOpenPath()\n }\n }}\n onMouseDown={(e) => {\n // Prevent selector from blurring\n e.preventDefault()\n }}\n >\n {multiple && (\n <Checkbox\n prefixCls={`${prefixCls}-checkbox`}\n checked={checked}\n halfChecked={halfChecked}\n disabled={disabled}\n onClick={(e: React.MouseEvent<HTMLSpanElement>) => {\n e.stopPropagation()\n triggerSelect()\n }}\n />\n )}\n <div className={`${menuItemPrefixCls}-content`}>\n {optionInfoList[0].fullPathKey !== '__EMPTY__' && renderItem\n ? renderItem(option, level)\n : label}\n </div>\n {!isLoading && expandIcon && !isMergedLeaf && (\n <div className={`${menuItemPrefixCls}-expand-icon`}>{expandIcon}</div>\n )}\n {isLoading && loadingIcon && (\n <div className={`${menuItemPrefixCls}-loading-icon`}>{loadingIcon}</div>\n )}\n </li>\n )\n }}\n </List>\n </ul>\n )\n}\n"]}