tntd 2.0.2 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. package/es/index.js +1 -0
  2. package/es/index.js.map +1 -1
  3. package/es/locale/en_US.js +3 -0
  4. package/es/locale/en_US.js.map +1 -1
  5. package/es/locale/zh_CN.js +3 -0
  6. package/es/locale/zh_CN.js.map +1 -1
  7. package/es/page/index.js +1 -1
  8. package/es/page/index.js.map +1 -1
  9. package/es/prev-locale.js +7 -1
  10. package/es/prev-locale.js.map +1 -1
  11. package/es/steps/index.js +2 -2
  12. package/es/steps/index.js.map +1 -1
  13. package/es/steps/steps.js +46 -0
  14. package/es/steps/steps.js.map +1 -0
  15. package/es/steps/style/nav.less +158 -64
  16. package/es/tntd-cascader/AntdCascader/component/DisabledContext.js +8 -0
  17. package/es/tntd-cascader/AntdCascader/component/DisabledContext.js.map +1 -0
  18. package/es/tntd-cascader/AntdCascader/component/FormItemInputContext.js +3 -0
  19. package/es/tntd-cascader/AntdCascader/component/FormItemInputContext.js.map +1 -0
  20. package/es/tntd-cascader/AntdCascader/component/SizeContext.js +3 -0
  21. package/es/tntd-cascader/AntdCascader/component/SizeContext.js.map +1 -0
  22. package/es/tntd-cascader/AntdCascader/component/context.js +14 -0
  23. package/es/tntd-cascader/AntdCascader/component/context.js.map +1 -0
  24. package/es/tntd-cascader/AntdCascader/component/defaultRenderEmpty.js +20 -0
  25. package/es/tntd-cascader/AntdCascader/component/defaultRenderEmpty.js.map +1 -0
  26. package/es/tntd-cascader/AntdCascader/component/getIcons.js +52 -0
  27. package/es/tntd-cascader/AntdCascader/component/getIcons.js.map +1 -0
  28. package/es/tntd-cascader/AntdCascader/component/useCompactItemContext.js +24 -0
  29. package/es/tntd-cascader/AntdCascader/component/useCompactItemContext.js.map +1 -0
  30. package/es/tntd-cascader/AntdCascader/config/utils.js +24 -0
  31. package/es/tntd-cascader/AntdCascader/config/utils.js.map +1 -0
  32. package/es/tntd-cascader/AntdCascader/config/warning.js +15 -0
  33. package/es/tntd-cascader/AntdCascader/config/warning.js.map +1 -0
  34. package/es/tntd-cascader/AntdCascader/index.css +2327 -0
  35. package/es/tntd-cascader/AntdCascader/index.js +149 -0
  36. package/es/tntd-cascader/AntdCascader/index.js.map +1 -0
  37. package/es/tntd-cascader/AntdCascader/interface.js +5 -0
  38. package/es/tntd-cascader/AntdCascader/interface.js.map +1 -0
  39. package/es/tntd-cascader/img/no-data-s.png +0 -0
  40. package/es/tntd-cascader/index.js +2 -0
  41. package/es/tntd-cascader/index.js.map +1 -0
  42. package/es/tntd-cascader/rc-cascader/Cascader.js +270 -0
  43. package/es/tntd-cascader/rc-cascader/Cascader.js.map +1 -0
  44. package/es/tntd-cascader/rc-cascader/OptionList/Checkbox.js +14 -0
  45. package/es/tntd-cascader/rc-cascader/OptionList/Checkbox.js.map +1 -0
  46. package/es/tntd-cascader/rc-cascader/OptionList/Column.js +126 -0
  47. package/es/tntd-cascader/rc-cascader/OptionList/Column.js.map +1 -0
  48. package/es/tntd-cascader/rc-cascader/OptionList/index.js +140 -0
  49. package/es/tntd-cascader/rc-cascader/OptionList/index.js.map +1 -0
  50. package/es/tntd-cascader/rc-cascader/OptionList/useActive.js +24 -0
  51. package/es/tntd-cascader/rc-cascader/OptionList/useActive.js.map +1 -0
  52. package/es/tntd-cascader/rc-cascader/OptionList/useKeyboard.js +145 -0
  53. package/es/tntd-cascader/rc-cascader/OptionList/useKeyboard.js.map +1 -0
  54. package/es/tntd-cascader/rc-cascader/context.js +4 -0
  55. package/es/tntd-cascader/rc-cascader/context.js.map +1 -0
  56. package/es/tntd-cascader/rc-cascader/hooks/useDisplayValues.js +41 -0
  57. package/es/tntd-cascader/rc-cascader/hooks/useDisplayValues.js.map +1 -0
  58. package/es/tntd-cascader/rc-cascader/hooks/useEntities.js +30 -0
  59. package/es/tntd-cascader/rc-cascader/hooks/useEntities.js.map +1 -0
  60. package/es/tntd-cascader/rc-cascader/hooks/useMissingValues.js +19 -0
  61. package/es/tntd-cascader/rc-cascader/hooks/useMissingValues.js.map +1 -0
  62. package/es/tntd-cascader/rc-cascader/hooks/useRefFunc.js +15 -0
  63. package/es/tntd-cascader/rc-cascader/hooks/useRefFunc.js.map +1 -0
  64. package/es/tntd-cascader/rc-cascader/hooks/useSearchConfig.js +26 -0
  65. package/es/tntd-cascader/rc-cascader/hooks/useSearchConfig.js.map +1 -0
  66. package/es/tntd-cascader/rc-cascader/hooks/useSearchOptions.js +46 -0
  67. package/es/tntd-cascader/rc-cascader/hooks/useSearchOptions.js.map +1 -0
  68. package/es/tntd-cascader/rc-cascader/index.js +3 -0
  69. package/es/tntd-cascader/rc-cascader/index.js.map +1 -0
  70. package/es/tntd-cascader/rc-cascader/index.less +19 -0
  71. package/es/tntd-cascader/rc-cascader/utils/commonUtil.js +41 -0
  72. package/es/tntd-cascader/rc-cascader/utils/commonUtil.js.map +1 -0
  73. package/es/tntd-cascader/rc-cascader/utils/treeUtil.js +37 -0
  74. package/es/tntd-cascader/rc-cascader/utils/treeUtil.js.map +1 -0
  75. package/es/tntd-cascader/rc-cascader/utils/warningPropsUtil.js +30 -0
  76. package/es/tntd-cascader/rc-cascader/utils/warningPropsUtil.js.map +1 -0
  77. package/es/tntd-layout/Avatar.js +25 -19
  78. package/es/tntd-layout/Avatar.js.map +1 -1
  79. package/es/tntd-layout/EnterpriseLayout/Avatar.js +10 -8
  80. package/es/tntd-layout/EnterpriseLayout/Avatar.js.map +1 -1
  81. package/es/tntd-layout/EnterpriseLayout/Language.js +5 -4
  82. package/es/tntd-layout/EnterpriseLayout/Language.js.map +1 -1
  83. package/es/tntd-layout/EnterpriseLayout/Theme.js +7 -6
  84. package/es/tntd-layout/EnterpriseLayout/Theme.js.map +1 -1
  85. package/es/tntd-layout/HeaderActions.js +5 -4
  86. package/es/tntd-layout/HeaderActions.js.map +1 -1
  87. package/es/tntd-layout/Layout.js +2 -2
  88. package/es/tntd-layout/Layout.js.map +1 -1
  89. package/es/tntd-layout/SideMenu.js.map +1 -1
  90. package/es/tntd-layout/index.js +2 -2
  91. package/es/tntd-layout/index.js.map +1 -1
  92. package/es/tntd-layout/storage.js +10 -2
  93. package/es/tntd-layout/storage.js.map +1 -1
  94. package/lib/index.d.ts +1 -0
  95. package/lib/index.d.ts.map +1 -1
  96. package/lib/index.js +3 -1
  97. package/lib/index.js.map +1 -1
  98. package/lib/locale/default.d.ts +3 -0
  99. package/lib/locale/default.d.ts.map +1 -1
  100. package/lib/locale/en_US.d.ts +3 -0
  101. package/lib/locale/en_US.d.ts.map +1 -1
  102. package/lib/locale/en_US.js +3 -0
  103. package/lib/locale/en_US.js.map +1 -1
  104. package/lib/locale/zh_CN.d.ts +3 -0
  105. package/lib/locale/zh_CN.d.ts.map +1 -1
  106. package/lib/locale/zh_CN.js +3 -0
  107. package/lib/locale/zh_CN.js.map +1 -1
  108. package/lib/page/index.js +1 -1
  109. package/lib/page/index.js.map +1 -1
  110. package/lib/prev-locale.d.ts +6 -0
  111. package/lib/prev-locale.d.ts.map +1 -1
  112. package/lib/prev-locale.js +7 -1
  113. package/lib/prev-locale.js.map +1 -1
  114. package/lib/steps/index.d.ts +2 -2
  115. package/lib/steps/index.d.ts.map +1 -1
  116. package/lib/steps/index.js +3 -6
  117. package/lib/steps/index.js.map +1 -1
  118. package/lib/steps/steps.d.ts +12 -0
  119. package/lib/steps/steps.d.ts.map +1 -0
  120. package/lib/steps/steps.js +67 -0
  121. package/lib/steps/steps.js.map +1 -0
  122. package/lib/steps/style/nav.less +158 -64
  123. package/lib/tntd-cascader/AntdCascader/component/DisabledContext.d.ts +10 -0
  124. package/lib/tntd-cascader/AntdCascader/component/DisabledContext.d.ts.map +1 -0
  125. package/lib/tntd-cascader/AntdCascader/component/DisabledContext.js +35 -0
  126. package/lib/tntd-cascader/AntdCascader/component/DisabledContext.js.map +1 -0
  127. package/lib/tntd-cascader/AntdCascader/component/FormItemInputContext.d.ts +4 -0
  128. package/lib/tntd-cascader/AntdCascader/component/FormItemInputContext.d.ts.map +1 -0
  129. package/lib/tntd-cascader/AntdCascader/component/FormItemInputContext.js +29 -0
  130. package/lib/tntd-cascader/AntdCascader/component/FormItemInputContext.js.map +1 -0
  131. package/lib/tntd-cascader/AntdCascader/component/SizeContext.d.ts +4 -0
  132. package/lib/tntd-cascader/AntdCascader/component/SizeContext.d.ts.map +1 -0
  133. package/lib/tntd-cascader/AntdCascader/component/SizeContext.js +29 -0
  134. package/lib/tntd-cascader/AntdCascader/component/SizeContext.js.map +1 -0
  135. package/lib/tntd-cascader/AntdCascader/component/context.d.ts +42 -0
  136. package/lib/tntd-cascader/AntdCascader/component/context.d.ts.map +1 -0
  137. package/lib/tntd-cascader/AntdCascader/component/context.js +20 -0
  138. package/lib/tntd-cascader/AntdCascader/component/context.js.map +1 -0
  139. package/lib/tntd-cascader/AntdCascader/component/defaultRenderEmpty.d.ts +5 -0
  140. package/lib/tntd-cascader/AntdCascader/component/defaultRenderEmpty.d.ts.map +1 -0
  141. package/lib/tntd-cascader/AntdCascader/component/defaultRenderEmpty.js +48 -0
  142. package/lib/tntd-cascader/AntdCascader/component/defaultRenderEmpty.js.map +1 -0
  143. package/lib/tntd-cascader/AntdCascader/component/getIcons.d.ts +25 -0
  144. package/lib/tntd-cascader/AntdCascader/component/getIcons.d.ts.map +1 -0
  145. package/lib/tntd-cascader/AntdCascader/component/getIcons.js +78 -0
  146. package/lib/tntd-cascader/AntdCascader/component/getIcons.js.map +1 -0
  147. package/lib/tntd-cascader/AntdCascader/component/useCompactItemContext.d.ts +9 -0
  148. package/lib/tntd-cascader/AntdCascader/component/useCompactItemContext.d.ts.map +1 -0
  149. package/lib/tntd-cascader/AntdCascader/component/useCompactItemContext.js +54 -0
  150. package/lib/tntd-cascader/AntdCascader/component/useCompactItemContext.js.map +1 -0
  151. package/lib/tntd-cascader/AntdCascader/config/utils.d.ts +6 -0
  152. package/lib/tntd-cascader/AntdCascader/config/utils.d.ts.map +1 -0
  153. package/lib/tntd-cascader/AntdCascader/config/utils.js +34 -0
  154. package/lib/tntd-cascader/AntdCascader/config/utils.js.map +1 -0
  155. package/lib/tntd-cascader/AntdCascader/config/warning.d.ts +4 -0
  156. package/lib/tntd-cascader/AntdCascader/config/warning.d.ts.map +1 -0
  157. package/lib/tntd-cascader/AntdCascader/config/warning.js +40 -0
  158. package/lib/tntd-cascader/AntdCascader/config/warning.js.map +1 -0
  159. package/lib/tntd-cascader/AntdCascader/index.css +2327 -0
  160. package/lib/tntd-cascader/AntdCascader/index.d.ts +44 -0
  161. package/lib/tntd-cascader/AntdCascader/index.d.ts.map +1 -0
  162. package/lib/tntd-cascader/AntdCascader/index.js +177 -0
  163. package/lib/tntd-cascader/AntdCascader/index.js.map +1 -0
  164. package/lib/tntd-cascader/AntdCascader/interface.d.ts +25 -0
  165. package/lib/tntd-cascader/AntdCascader/interface.d.ts.map +1 -0
  166. package/lib/tntd-cascader/AntdCascader/interface.js +9 -0
  167. package/lib/tntd-cascader/AntdCascader/interface.js.map +1 -0
  168. package/lib/tntd-cascader/img/no-data-s.png +0 -0
  169. package/lib/tntd-cascader/index.d.ts +2 -0
  170. package/lib/tntd-cascader/index.d.ts.map +1 -0
  171. package/lib/tntd-cascader/index.js +9 -0
  172. package/lib/tntd-cascader/index.js.map +1 -0
  173. package/lib/tntd-cascader/rc-cascader/Cascader.d.ts +92 -0
  174. package/lib/tntd-cascader/rc-cascader/Cascader.d.ts.map +1 -0
  175. package/lib/tntd-cascader/rc-cascader/Cascader.js +298 -0
  176. package/lib/tntd-cascader/rc-cascader/Cascader.js.map +1 -0
  177. package/lib/tntd-cascader/rc-cascader/OptionList/Checkbox.d.ts +10 -0
  178. package/lib/tntd-cascader/rc-cascader/OptionList/Checkbox.d.ts.map +1 -0
  179. package/lib/tntd-cascader/rc-cascader/OptionList/Checkbox.js +43 -0
  180. package/lib/tntd-cascader/rc-cascader/OptionList/Checkbox.js.map +1 -0
  181. package/lib/tntd-cascader/rc-cascader/OptionList/Column.d.ts +26 -0
  182. package/lib/tntd-cascader/rc-cascader/OptionList/Column.d.ts.map +1 -0
  183. package/lib/tntd-cascader/rc-cascader/OptionList/Column.js +156 -0
  184. package/lib/tntd-cascader/rc-cascader/OptionList/Column.js.map +1 -0
  185. package/lib/tntd-cascader/rc-cascader/OptionList/index.d.ts +5 -0
  186. package/lib/tntd-cascader/rc-cascader/OptionList/index.d.ts.map +1 -0
  187. package/lib/tntd-cascader/rc-cascader/OptionList/index.js +168 -0
  188. package/lib/tntd-cascader/rc-cascader/OptionList/index.js.map +1 -0
  189. package/lib/tntd-cascader/rc-cascader/OptionList/useActive.d.ts +7 -0
  190. package/lib/tntd-cascader/rc-cascader/OptionList/useActive.d.ts.map +1 -0
  191. package/lib/tntd-cascader/rc-cascader/OptionList/useActive.js +52 -0
  192. package/lib/tntd-cascader/rc-cascader/OptionList/useActive.js.map +1 -0
  193. package/lib/tntd-cascader/rc-cascader/OptionList/useKeyboard.d.ts +6 -0
  194. package/lib/tntd-cascader/rc-cascader/OptionList/useKeyboard.d.ts.map +1 -0
  195. package/lib/tntd-cascader/rc-cascader/OptionList/useKeyboard.js +173 -0
  196. package/lib/tntd-cascader/rc-cascader/OptionList/useKeyboard.js.map +1 -0
  197. package/lib/tntd-cascader/rc-cascader/context.d.ts +26 -0
  198. package/lib/tntd-cascader/rc-cascader/context.d.ts.map +1 -0
  199. package/lib/tntd-cascader/rc-cascader/context.js +29 -0
  200. package/lib/tntd-cascader/rc-cascader/context.js.map +1 -0
  201. package/lib/tntd-cascader/rc-cascader/hooks/useDisplayValues.d.ts +11 -0
  202. package/lib/tntd-cascader/rc-cascader/hooks/useDisplayValues.d.ts.map +1 -0
  203. package/lib/tntd-cascader/rc-cascader/hooks/useDisplayValues.js +66 -0
  204. package/lib/tntd-cascader/rc-cascader/hooks/useDisplayValues.js.map +1 -0
  205. package/lib/tntd-cascader/rc-cascader/hooks/useEntities.d.ts +11 -0
  206. package/lib/tntd-cascader/rc-cascader/hooks/useEntities.d.ts.map +1 -0
  207. package/lib/tntd-cascader/rc-cascader/hooks/useEntities.js +55 -0
  208. package/lib/tntd-cascader/rc-cascader/hooks/useEntities.js.map +1 -0
  209. package/lib/tntd-cascader/rc-cascader/hooks/useMissingValues.d.ts +4 -0
  210. package/lib/tntd-cascader/rc-cascader/hooks/useMissingValues.d.ts.map +1 -0
  211. package/lib/tntd-cascader/rc-cascader/hooks/useMissingValues.js +44 -0
  212. package/lib/tntd-cascader/rc-cascader/hooks/useMissingValues.js.map +1 -0
  213. package/lib/tntd-cascader/rc-cascader/hooks/useRefFunc.d.ts +6 -0
  214. package/lib/tntd-cascader/rc-cascader/hooks/useRefFunc.d.ts.map +1 -0
  215. package/lib/tntd-cascader/rc-cascader/hooks/useRefFunc.js +41 -0
  216. package/lib/tntd-cascader/rc-cascader/hooks/useRefFunc.js.map +1 -0
  217. package/lib/tntd-cascader/rc-cascader/hooks/useSearchConfig.d.ts +3 -0
  218. package/lib/tntd-cascader/rc-cascader/hooks/useSearchConfig.d.ts.map +1 -0
  219. package/lib/tntd-cascader/rc-cascader/hooks/useSearchConfig.js +55 -0
  220. package/lib/tntd-cascader/rc-cascader/hooks/useSearchConfig.js.map +1 -0
  221. package/lib/tntd-cascader/rc-cascader/hooks/useSearchOptions.d.ts +5 -0
  222. package/lib/tntd-cascader/rc-cascader/hooks/useSearchOptions.d.ts.map +1 -0
  223. package/lib/tntd-cascader/rc-cascader/hooks/useSearchOptions.js +72 -0
  224. package/lib/tntd-cascader/rc-cascader/hooks/useSearchOptions.js.map +1 -0
  225. package/lib/tntd-cascader/rc-cascader/index.d.ts +4 -0
  226. package/lib/tntd-cascader/rc-cascader/index.d.ts.map +1 -0
  227. package/lib/tntd-cascader/rc-cascader/index.js +8 -0
  228. package/lib/tntd-cascader/rc-cascader/index.js.map +1 -0
  229. package/lib/tntd-cascader/rc-cascader/index.less +19 -0
  230. package/lib/tntd-cascader/rc-cascader/utils/commonUtil.d.ts +11 -0
  231. package/lib/tntd-cascader/rc-cascader/utils/commonUtil.d.ts.map +1 -0
  232. package/lib/tntd-cascader/rc-cascader/utils/commonUtil.js +50 -0
  233. package/lib/tntd-cascader/rc-cascader/utils/commonUtil.js.map +1 -0
  234. package/lib/tntd-cascader/rc-cascader/utils/treeUtil.d.ts +10 -0
  235. package/lib/tntd-cascader/rc-cascader/utils/treeUtil.d.ts.map +1 -0
  236. package/lib/tntd-cascader/rc-cascader/utils/treeUtil.js +42 -0
  237. package/lib/tntd-cascader/rc-cascader/utils/treeUtil.js.map +1 -0
  238. package/lib/tntd-cascader/rc-cascader/utils/warningPropsUtil.d.ts +5 -0
  239. package/lib/tntd-cascader/rc-cascader/utils/warningPropsUtil.d.ts.map +1 -0
  240. package/lib/tntd-cascader/rc-cascader/utils/warningPropsUtil.js +37 -0
  241. package/lib/tntd-cascader/rc-cascader/utils/warningPropsUtil.js.map +1 -0
  242. package/lib/tntd-layout/Avatar.d.ts.map +1 -1
  243. package/lib/tntd-layout/Avatar.js +25 -19
  244. package/lib/tntd-layout/Avatar.js.map +1 -1
  245. package/lib/tntd-layout/EnterpriseLayout/Avatar.d.ts.map +1 -1
  246. package/lib/tntd-layout/EnterpriseLayout/Avatar.js +10 -8
  247. package/lib/tntd-layout/EnterpriseLayout/Avatar.js.map +1 -1
  248. package/lib/tntd-layout/EnterpriseLayout/Language.js +4 -3
  249. package/lib/tntd-layout/EnterpriseLayout/Language.js.map +1 -1
  250. package/lib/tntd-layout/EnterpriseLayout/Theme.js +6 -5
  251. package/lib/tntd-layout/EnterpriseLayout/Theme.js.map +1 -1
  252. package/lib/tntd-layout/HeaderActions.js +5 -4
  253. package/lib/tntd-layout/HeaderActions.js.map +1 -1
  254. package/lib/tntd-layout/Layout.js +2 -2
  255. package/lib/tntd-layout/Layout.js.map +1 -1
  256. package/lib/tntd-layout/SideMenu.js.map +1 -1
  257. package/lib/tntd-layout/index.d.ts.map +1 -1
  258. package/lib/tntd-layout/index.js +2 -2
  259. package/lib/tntd-layout/index.js.map +1 -1
  260. package/lib/tntd-layout/storage.d.ts +3 -2
  261. package/lib/tntd-layout/storage.d.ts.map +1 -1
  262. package/lib/tntd-layout/storage.js +15 -3
  263. package/lib/tntd-layout/storage.js.map +1 -1
  264. package/package.json +11 -2
@@ -0,0 +1,149 @@
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 { Icon } from 'antd';
13
+ import classNames from 'classnames';
14
+ import RcCascader from '../rc-cascader';
15
+ import omit from 'rc-util/lib/omit';
16
+ import * as React from 'react';
17
+ import { useContext } from 'react';
18
+ import { ConfigContext } from './component/context';
19
+ import defaultRenderEmpty from './component/defaultRenderEmpty';
20
+ import DisabledContext from './component/DisabledContext';
21
+ import { SizeContext } from './component/SizeContext';
22
+ import { useCompactItemContext } from './component/useCompactItemContext';
23
+ import { FormItemInputContext } from './component/FormItemInputContext';
24
+ import getIcons from './component/getIcons';
25
+ import { getTransitionDirection, getTransitionName, getMergedStatus, getStatusClassNames, } from './config/utils';
26
+ import warning from './config/warning';
27
+ import './index.css';
28
+ const { SHOW_CHILD, SHOW_PARENT } = RcCascader;
29
+ function highlightKeyword(str, lowerKeyword, prefixCls) {
30
+ const cells = str
31
+ .toLowerCase()
32
+ .split(lowerKeyword)
33
+ .reduce((list, cur, index) => (index === 0 ? [cur] : [...list, lowerKeyword, cur]), []);
34
+ const fillCells = [];
35
+ let start = 0;
36
+ cells.forEach((cell, index) => {
37
+ const end = start + cell.length;
38
+ let originWorld = str.slice(start, end);
39
+ start = end;
40
+ if (index % 2 === 1) {
41
+ originWorld = (
42
+ // eslint-disable-next-line react/no-array-index-key
43
+ React.createElement("span", { className: `${prefixCls}-menu-item-keyword`, key: `seperator-${index}` }, originWorld));
44
+ }
45
+ fillCells.push(originWorld);
46
+ });
47
+ return fillCells;
48
+ }
49
+ const defaultSearchRender = (inputValue, path, prefixCls, fieldNames) => {
50
+ const optionList = [];
51
+ // We do lower here to save perf
52
+ const lower = inputValue.toLowerCase();
53
+ path.forEach((node, index) => {
54
+ if (index !== 0) {
55
+ optionList.push(' / ');
56
+ }
57
+ let label = node[fieldNames.label];
58
+ const type = typeof label;
59
+ if (type === 'string' || type === 'number') {
60
+ label = highlightKeyword(String(label), lower, prefixCls);
61
+ }
62
+ optionList.push(label);
63
+ });
64
+ return optionList;
65
+ };
66
+ const Cascader = React.forwardRef((props, ref) => {
67
+ const { prefixCls: customizePrefixCls, size: customizeSize, disabled: customDisabled, className, multiple, bordered = true, transitionName, choiceTransitionName = '', popupClassName, dropdownClassName, expandIcon, placement, showSearch, allowClear = true, notFoundContent, direction, getPopupContainer, status: customStatus, showArrow } = props, rest = __rest(props, ["prefixCls", "size", "disabled", "className", "multiple", "bordered", "transitionName", "choiceTransitionName", "popupClassName", "dropdownClassName", "expandIcon", "placement", "showSearch", "allowClear", "notFoundContent", "direction", "getPopupContainer", "status", "showArrow"]);
68
+ const restProps = omit(rest, ['suffixIcon']);
69
+ const { getPopupContainer: getContextPopupContainer, getPrefixCls, renderEmpty, direction: rootDirection,
70
+ // virtual,
71
+ // dropdownMatchSelectWidth,
72
+ } = useContext(ConfigContext);
73
+ const mergedDirection = direction || rootDirection;
74
+ const isRtl = mergedDirection === 'rtl';
75
+ // =================== Form =====================
76
+ const { status: contextStatus, hasFeedback, isFormItemInput, feedbackIcon, } = useContext(FormItemInputContext);
77
+ const mergedStatus = getMergedStatus(contextStatus, customStatus);
78
+ // =================== Warning =====================
79
+ warning(!dropdownClassName, 'Cascader', '`dropdownClassName` is deprecated which will be removed in next major version. Please use `popupClassName` instead.');
80
+ warning(!multiple || !props.displayRender, 'Cascader', '`displayRender` not work on `multiple`. Please use `tagRender` instead.');
81
+ // =================== No Found ====================
82
+ const mergedNotFoundContent = notFoundContent || (renderEmpty || defaultRenderEmpty)('Cascader');
83
+ // ==================== Prefix =====================
84
+ const rootPrefixCls = getPrefixCls();
85
+ const prefixCls = getPrefixCls('select', customizePrefixCls);
86
+ const cascaderPrefixCls = getPrefixCls('cascader', customizePrefixCls);
87
+ const { compactSize, compactItemClassnames } = useCompactItemContext(prefixCls, direction);
88
+ // =================== Dropdown ====================
89
+ const mergedDropdownClassName = classNames(popupClassName || dropdownClassName, `${cascaderPrefixCls}-dropdown`, {
90
+ [`${cascaderPrefixCls}-dropdown-rtl`]: mergedDirection === 'rtl',
91
+ });
92
+ // ==================== Search =====================
93
+ const mergedShowSearch = React.useMemo(() => {
94
+ if (!showSearch) {
95
+ return showSearch;
96
+ }
97
+ let searchConfig = {
98
+ render: defaultSearchRender,
99
+ };
100
+ if (typeof showSearch === 'object') {
101
+ searchConfig = Object.assign(Object.assign({}, searchConfig), showSearch);
102
+ }
103
+ return searchConfig;
104
+ }, [showSearch]);
105
+ // ===================== Size ======================
106
+ const size = React.useContext(SizeContext);
107
+ const mergedSize = compactSize || customizeSize || size;
108
+ // ===================== Disabled =====================
109
+ const disabled = React.useContext(DisabledContext);
110
+ const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;
111
+ // ===================== Icon ======================
112
+ let mergedExpandIcon = expandIcon;
113
+ if (!expandIcon) {
114
+ mergedExpandIcon = isRtl ? React.createElement(Icon, { type: "left" }) : React.createElement(Icon, { type: "right" });
115
+ }
116
+ const loadingIcon = (React.createElement("span", { className: `${prefixCls}-menu-item-loading-icon` },
117
+ React.createElement(Icon, { type: "loading" })));
118
+ // =================== Multiple ====================
119
+ const checkable = React.useMemo(() => (multiple ? React.createElement("span", { className: `${cascaderPrefixCls}-checkbox-inner` }) : false), [multiple]);
120
+ // ===================== Icons =====================
121
+ const mergedShowArrow = showArrow !== undefined ? showArrow : props.loading || !multiple;
122
+ const { suffixIcon, removeIcon, clearIcon } = getIcons(Object.assign(Object.assign({}, props), { hasFeedback,
123
+ feedbackIcon, showArrow: mergedShowArrow, multiple,
124
+ prefixCls }));
125
+ // ===================== Placement =====================
126
+ const getPlacement = () => {
127
+ if (placement !== undefined) {
128
+ return placement;
129
+ }
130
+ return direction === 'rtl'
131
+ ? 'bottomRight'
132
+ : 'bottomLeft';
133
+ };
134
+ // ==================== Render =====================
135
+ return (React.createElement(RcCascader, Object.assign({ prefixCls: prefixCls, className: classNames(!customizePrefixCls && cascaderPrefixCls, {
136
+ [`${prefixCls}-lg`]: mergedSize === 'large',
137
+ [`${prefixCls}-sm`]: mergedSize === 'small',
138
+ [`${prefixCls}-rtl`]: isRtl,
139
+ [`${prefixCls}-borderless`]: !bordered,
140
+ [`${prefixCls}-in-form-item`]: isFormItemInput,
141
+ }, getStatusClassNames(prefixCls, mergedStatus, hasFeedback), compactItemClassnames, className), disabled: mergedDisabled }, restProps, { direction: mergedDirection, placement: getPlacement(), notFoundContent: mergedNotFoundContent, allowClear: allowClear, showSearch: mergedShowSearch, expandIcon: mergedExpandIcon, inputIcon: suffixIcon, removeIcon: removeIcon, clearIcon: clearIcon, loadingIcon: loadingIcon, checkable: checkable, dropdownClassName: mergedDropdownClassName, dropdownPrefixCls: customizePrefixCls || cascaderPrefixCls, choiceTransitionName: getTransitionName(rootPrefixCls, '', choiceTransitionName), transitionName: getTransitionName(rootPrefixCls, getTransitionDirection(placement), transitionName), getPopupContainer: getPopupContainer || getContextPopupContainer, ref: ref, showArrow: hasFeedback || showArrow })));
142
+ });
143
+ if (process.env.NODE_ENV !== 'production') {
144
+ Cascader.displayName = 'Cascader';
145
+ }
146
+ Cascader.SHOW_PARENT = SHOW_PARENT;
147
+ Cascader.SHOW_CHILD = SHOW_CHILD;
148
+ export default Cascader;
149
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tntd-cascader/AntdCascader/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Icon } from 'antd';\nimport classNames from 'classnames';\nimport type {\n BaseOptionType,\n DefaultOptionType,\n FieldNames,\n MultipleCascaderProps as RcMultipleCascaderProps,\n ShowSearchType,\n SingleCascaderProps as RcSingleCascaderProps,\n} from '../rc-cascader';\nimport RcCascader from '../rc-cascader';\nimport omit from 'rc-util/lib/omit';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { ConfigContext } from './component/context';\nimport defaultRenderEmpty from './component/defaultRenderEmpty';\nimport DisabledContext from './component/DisabledContext';\nimport type { SizeType } from './interface';\nimport { SizeContext } from './component/SizeContext';\nimport { useCompactItemContext } from './component/useCompactItemContext';\nimport { FormItemInputContext } from './component/FormItemInputContext';\nimport getIcons from './component/getIcons';\nimport type { SelectCommonPlacement } from './interface';\nimport {\n getTransitionDirection,\n getTransitionName,\n getMergedStatus,\n getStatusClassNames,\n} from './config/utils';\nimport type { InputStatus } from './interface';\nimport warning from './config/warning';\nimport './index.css';\n\n// Align the design since we use `rc-select` in root. This help:\n// - List search content will show all content\n// - Hover opacity style\n// - Search filter match case\n\nexport { BaseOptionType, DefaultOptionType };\n\nexport type FieldNamesType = FieldNames;\n\nexport type FilledFieldNamesType = Required<FieldNamesType>;\n\nconst { SHOW_CHILD, SHOW_PARENT } = RcCascader;\n\nfunction highlightKeyword(str: string, lowerKeyword: string, prefixCls: string | undefined) {\n const cells = str\n .toLowerCase()\n .split(lowerKeyword)\n .reduce(\n (list, cur, index) => (index === 0 ? [cur] : [...list, lowerKeyword, cur]),\n [] as string[],\n );\n const fillCells: React.ReactNode[] = [];\n let start = 0;\n\n cells.forEach((cell: string, index: number) => {\n const end = start + cell.length;\n let originWorld: React.ReactNode = str.slice(start, end);\n start = end;\n\n if (index % 2 === 1) {\n originWorld = (\n // eslint-disable-next-line react/no-array-index-key\n <span className={`${prefixCls}-menu-item-keyword`} key={`seperator-${index}`}>\n {originWorld}\n </span>\n );\n }\n\n fillCells.push(originWorld);\n });\n\n return fillCells;\n}\n\nconst defaultSearchRender: ShowSearchType['render'] = (inputValue, path, prefixCls, fieldNames) => {\n const optionList: React.ReactNode[] = [];\n\n // We do lower here to save perf\n const lower = inputValue.toLowerCase();\n\n path.forEach((node, index) => {\n if (index !== 0) {\n optionList.push(' / ');\n }\n\n let label = (node as any)[fieldNames.label!];\n const type = typeof label;\n if (type === 'string' || type === 'number') {\n label = highlightKeyword(String(label), lower, prefixCls);\n }\n\n optionList.push(label);\n });\n return optionList;\n};\n\ntype SingleCascaderProps = Omit<RcSingleCascaderProps, 'checkable' | 'options'> & {\n multiple?: false;\n};\ntype MultipleCascaderProps = Omit<RcMultipleCascaderProps, 'checkable' | 'options'> & {\n multiple: true;\n};\n\ntype UnionCascaderProps = SingleCascaderProps | MultipleCascaderProps;\n\nexport type CascaderProps<DataNodeType> = UnionCascaderProps & {\n multiple?: boolean;\n size?: SizeType;\n disabled?: boolean;\n bordered?: boolean;\n placement?: SelectCommonPlacement;\n suffixIcon?: React.ReactNode;\n options?: DataNodeType[];\n status?: InputStatus;\n /**\n * @deprecated `dropdownClassName` is deprecated which will be removed in next major\n * version.Please use `popupClassName` instead.\n */\n dropdownClassName?: string;\n};\n\nexport interface CascaderRef {\n focus: () => void;\n blur: () => void;\n}\n\nconst Cascader = React.forwardRef((props: CascaderProps<any>, ref: React.Ref<CascaderRef>) => {\n const {\n prefixCls: customizePrefixCls,\n size: customizeSize,\n disabled: customDisabled,\n className,\n multiple,\n bordered = true,\n transitionName,\n choiceTransitionName = '',\n popupClassName,\n dropdownClassName,\n expandIcon,\n placement,\n showSearch,\n allowClear = true,\n notFoundContent,\n direction,\n getPopupContainer,\n status: customStatus,\n showArrow,\n ...rest\n } = props;\n\n const restProps = omit(rest, ['suffixIcon' as any]);\n\n const {\n getPopupContainer: getContextPopupContainer,\n getPrefixCls,\n renderEmpty,\n direction: rootDirection,\n // virtual,\n // dropdownMatchSelectWidth,\n } = useContext(ConfigContext);\n\n const mergedDirection = direction || rootDirection;\n const isRtl = mergedDirection === 'rtl';\n\n // =================== Form =====================\n const {\n status: contextStatus,\n hasFeedback,\n isFormItemInput,\n feedbackIcon,\n } = useContext(FormItemInputContext);\n const mergedStatus = getMergedStatus(contextStatus, customStatus);\n\n // =================== Warning =====================\n warning(\n !dropdownClassName,\n 'Cascader',\n '`dropdownClassName` is deprecated which will be removed in next major version. Please use `popupClassName` instead.',\n );\n\n warning(\n !multiple || !props.displayRender,\n 'Cascader',\n '`displayRender` not work on `multiple`. Please use `tagRender` instead.',\n );\n\n // =================== No Found ====================\n const mergedNotFoundContent = notFoundContent || (renderEmpty || defaultRenderEmpty)('Cascader');\n\n // ==================== Prefix =====================\n const rootPrefixCls = getPrefixCls();\n const prefixCls = getPrefixCls('select', customizePrefixCls);\n const cascaderPrefixCls = getPrefixCls('cascader', customizePrefixCls);\n const { compactSize, compactItemClassnames } = useCompactItemContext(prefixCls, direction);\n // =================== Dropdown ====================\n const mergedDropdownClassName = classNames(\n popupClassName || dropdownClassName,\n `${cascaderPrefixCls}-dropdown`,\n {\n [`${cascaderPrefixCls}-dropdown-rtl`]: mergedDirection === 'rtl',\n },\n );\n\n // ==================== Search =====================\n const mergedShowSearch = React.useMemo(() => {\n if (!showSearch) {\n return showSearch;\n }\n\n let searchConfig: ShowSearchType = {\n render: defaultSearchRender,\n };\n\n if (typeof showSearch === 'object') {\n searchConfig = {\n ...searchConfig,\n ...showSearch,\n };\n }\n\n return searchConfig;\n }, [showSearch]);\n\n // ===================== Size ======================\n const size = React.useContext(SizeContext);\n const mergedSize = compactSize || customizeSize || size;\n\n // ===================== Disabled =====================\n const disabled = React.useContext(DisabledContext);\n const mergedDisabled = customDisabled ?? disabled;\n\n // ===================== Icon ======================\n let mergedExpandIcon = expandIcon;\n if (!expandIcon) {\n mergedExpandIcon = isRtl ? <Icon type=\"left\" /> : <Icon type=\"right\" />;\n }\n\n const loadingIcon = (\n <span className={`${prefixCls}-menu-item-loading-icon`}>\n <Icon type=\"loading\" />\n </span>\n );\n\n // =================== Multiple ====================\n const checkable = React.useMemo(\n () => (multiple ? <span className={`${cascaderPrefixCls}-checkbox-inner`} /> : false),\n [multiple],\n );\n\n // ===================== Icons =====================\n const mergedShowArrow = showArrow !== undefined ? showArrow : props.loading || !multiple;\n const { suffixIcon, removeIcon, clearIcon } = getIcons({\n ...props,\n hasFeedback,\n feedbackIcon,\n showArrow: mergedShowArrow,\n multiple,\n prefixCls,\n });\n\n // ===================== Placement =====================\n const getPlacement = () => {\n if (placement !== undefined) {\n return placement;\n }\n return direction === 'rtl'\n ? ('bottomRight' as SelectCommonPlacement)\n : ('bottomLeft' as SelectCommonPlacement);\n };\n\n // ==================== Render =====================\n return (\n <RcCascader\n prefixCls={prefixCls}\n className={classNames(\n !customizePrefixCls && cascaderPrefixCls,\n {\n [`${prefixCls}-lg`]: mergedSize === 'large',\n [`${prefixCls}-sm`]: mergedSize === 'small',\n [`${prefixCls}-rtl`]: isRtl,\n [`${prefixCls}-borderless`]: !bordered,\n [`${prefixCls}-in-form-item`]: isFormItemInput,\n },\n getStatusClassNames(prefixCls, mergedStatus, hasFeedback),\n compactItemClassnames,\n className,\n )}\n disabled={mergedDisabled}\n {...(restProps as any)}\n direction={mergedDirection}\n placement={getPlacement()}\n notFoundContent={mergedNotFoundContent}\n allowClear={allowClear}\n showSearch={mergedShowSearch}\n expandIcon={mergedExpandIcon}\n inputIcon={suffixIcon}\n removeIcon={removeIcon}\n clearIcon={clearIcon}\n loadingIcon={loadingIcon}\n checkable={checkable}\n dropdownClassName={mergedDropdownClassName}\n dropdownPrefixCls={customizePrefixCls || cascaderPrefixCls}\n choiceTransitionName={getTransitionName(rootPrefixCls, '', choiceTransitionName)}\n transitionName={getTransitionName(\n rootPrefixCls,\n getTransitionDirection(placement),\n transitionName,\n )}\n getPopupContainer={getPopupContainer || getContextPopupContainer}\n ref={ref}\n showArrow={hasFeedback || showArrow}\n />\n );\n}) as unknown as (<OptionType extends BaseOptionType | DefaultOptionType = DefaultOptionType>(\n props: React.PropsWithChildren<CascaderProps<OptionType>> & { ref?: React.Ref<CascaderRef> },\n) => React.ReactElement) & {\n displayName: string;\n SHOW_PARENT: typeof SHOW_PARENT;\n SHOW_CHILD: typeof SHOW_CHILD;\n};\nif (process.env.NODE_ENV !== 'production') {\n Cascader.displayName = 'Cascader';\n}\nCascader.SHOW_PARENT = SHOW_PARENT;\nCascader.SHOW_CHILD = SHOW_CHILD;\n\nexport default Cascader;\n"]}
@@ -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,CAAC;AAE9D,MAAM,gBAAgB,GAAG,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;AAIhF,MAAM,gBAAgB,GAAG,KAAK,CAAC,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAInF,MAAM,aAAa,GAAG,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC","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,CAAC","sourcesContent":["export { default } from './AntdCascader';\n"]}
@@ -0,0 +1,270 @@
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
+ // =========================== Option ===========================
73
+ const mergedOptions = React.useMemo(() => options || [], [options]);
74
+ // Only used in multiple mode, this fn will not call in single mode
75
+ const getPathKeyEntities = useEntities(mergedOptions, mergedFieldNames);
76
+ /** Convert path key back to value format */
77
+ const getValueByKeyPath = React.useCallback((pathKeys) => {
78
+ const keyPathEntities = getPathKeyEntities();
79
+ return pathKeys.map((pathKey) => {
80
+ const { nodes } = keyPathEntities[pathKey];
81
+ return nodes.map((node) => node[mergedFieldNames.value]);
82
+ });
83
+ }, [getPathKeyEntities, mergedFieldNames]);
84
+ // =========================== Search ===========================
85
+ const [mergedSearchValue, setSearchValue] = useMergedState('', {
86
+ value: searchValue,
87
+ postState: (search) => search || '',
88
+ });
89
+ const onInternalSearch = (searchText, info) => {
90
+ setSearchValue(searchText);
91
+ if (info.source !== 'blur' && onSearch) {
92
+ onSearch(searchText);
93
+ }
94
+ };
95
+ const [mergedShowSearch, searchConfig] = useSearchConfig(showSearch);
96
+ const searchOptions = useSearchOptions(mergedSearchValue, mergedOptions, mergedFieldNames, dropdownPrefixCls || prefixCls, searchConfig, changeOnSelect);
97
+ // =========================== Values ===========================
98
+ const getMissingValues = useMissingValues(mergedOptions, mergedFieldNames);
99
+ // Fill `rawValues` with checked conduction values
100
+ const [checkedValues, halfCheckedValues, missingCheckedValues] = React.useMemo(() => {
101
+ const [existValues, missingValues] = getMissingValues(rawValues);
102
+ if (!multiple || !rawValues.length) {
103
+ return [existValues, [], missingValues];
104
+ }
105
+ const keyPathValues = toPathKeys(existValues);
106
+ const keyPathEntities = getPathKeyEntities();
107
+ const { checkedKeys, halfCheckedKeys } = conductCheck(keyPathValues, true, keyPathEntities);
108
+ // Convert key back to value cells
109
+ return [getValueByKeyPath(checkedKeys), getValueByKeyPath(halfCheckedKeys), missingValues];
110
+ }, [multiple, rawValues, getPathKeyEntities, getValueByKeyPath, getMissingValues]);
111
+ const deDuplicatedValues = React.useMemo(() => {
112
+ const checkedKeys = toPathKeys(checkedValues);
113
+ const deduplicateKeys = formatStrategyValues(checkedKeys, getPathKeyEntities, showCheckedStrategy);
114
+ return [...missingCheckedValues, ...getValueByKeyPath(deduplicateKeys)];
115
+ }, [
116
+ checkedValues,
117
+ getPathKeyEntities,
118
+ getValueByKeyPath,
119
+ missingCheckedValues,
120
+ showCheckedStrategy,
121
+ ]);
122
+ const displayValues = useDisplayValues(deDuplicatedValues, mergedOptions, mergedFieldNames, multiple, displayRender);
123
+ // =========================== Change ===========================
124
+ const triggerChange = useRefFunc((nextValues) => {
125
+ setRawValues(nextValues);
126
+ // Save perf if no need trigger event
127
+ if (onChange) {
128
+ const nextRawValues = toRawValues(nextValues);
129
+ const valueOptions = nextRawValues.map((valueCells) => toPathOptions(valueCells, mergedOptions, mergedFieldNames).map((valueOpt) => valueOpt.option));
130
+ const triggerValues = multiple ? nextRawValues : nextRawValues[0];
131
+ const triggerOptions = multiple ? valueOptions : valueOptions[0];
132
+ onChange(triggerValues, triggerOptions);
133
+ }
134
+ });
135
+ // =========================== Select ===========================
136
+ const onInternalSelect = useRefFunc((valuePath) => {
137
+ setSearchValue('');
138
+ if (!multiple) {
139
+ triggerChange(valuePath);
140
+ }
141
+ else {
142
+ // Prepare conduct required info
143
+ const pathKey = toPathKey(valuePath);
144
+ const checkedPathKeys = toPathKeys(checkedValues);
145
+ const halfCheckedPathKeys = toPathKeys(halfCheckedValues);
146
+ const existInChecked = checkedPathKeys.includes(pathKey);
147
+ const existInMissing = missingCheckedValues.some((valueCells) => toPathKey(valueCells) === pathKey);
148
+ // Do update
149
+ let nextCheckedValues = checkedValues;
150
+ let nextMissingValues = missingCheckedValues;
151
+ if (existInMissing && !existInChecked) {
152
+ // Missing value only do filter
153
+ nextMissingValues = missingCheckedValues.filter((valueCells) => toPathKey(valueCells) !== pathKey);
154
+ }
155
+ else {
156
+ // Update checked key first
157
+ const nextRawCheckedKeys = existInChecked
158
+ ? checkedPathKeys.filter((key) => key !== pathKey)
159
+ : [...checkedPathKeys, pathKey];
160
+ const pathKeyEntities = getPathKeyEntities();
161
+ // Conduction by selected or not
162
+ let checkedKeys;
163
+ if (existInChecked) {
164
+ ({ checkedKeys } = conductCheck(nextRawCheckedKeys, { checked: false, halfCheckedKeys: halfCheckedPathKeys }, pathKeyEntities));
165
+ }
166
+ else {
167
+ ({ checkedKeys } = conductCheck(nextRawCheckedKeys, true, pathKeyEntities));
168
+ }
169
+ // Roll up to parent level keys
170
+ const deDuplicatedKeys = formatStrategyValues(checkedKeys, getPathKeyEntities, showCheckedStrategy);
171
+ nextCheckedValues = getValueByKeyPath(deDuplicatedKeys);
172
+ }
173
+ triggerChange([...nextMissingValues, ...nextCheckedValues]);
174
+ }
175
+ });
176
+ // Display Value change logic
177
+ const onDisplayValuesChange = (_, info) => {
178
+ if (info.type === 'clear') {
179
+ triggerChange([]);
180
+ return;
181
+ }
182
+ // Cascader do not support `add` type. Only support `remove`
183
+ const { valueCells } = info.values[0];
184
+ onInternalSelect(valueCells);
185
+ };
186
+ // ============================ Open ============================
187
+ const mergedOpen = open !== undefined ? open : popupVisible;
188
+ const mergedDropdownClassName = dropdownClassName || popupClassName;
189
+ const mergedPlacement = placement || popupPlacement;
190
+ const onInternalDropdownVisibleChange = (nextVisible) => {
191
+ onDropdownVisibleChange === null || onDropdownVisibleChange === void 0 ? void 0 : onDropdownVisibleChange(nextVisible);
192
+ onPopupVisibleChange === null || onPopupVisibleChange === void 0 ? void 0 : onPopupVisibleChange(nextVisible);
193
+ setDropdownVisible(nextVisible);
194
+ };
195
+ // ========================== Warning ===========================
196
+ if (process.env.NODE_ENV !== 'production') {
197
+ warningProps(props);
198
+ warningNullOptions(mergedOptions, mergedFieldNames);
199
+ }
200
+ // ========================== Context ===========================
201
+ const cascaderContext = React.useMemo(() => ({
202
+ options: mergedOptions,
203
+ fieldNames: mergedFieldNames,
204
+ values: checkedValues,
205
+ halfValues: halfCheckedValues,
206
+ changeOnSelect,
207
+ onSelect: onInternalSelect,
208
+ checkable,
209
+ searchOptions,
210
+ dropdownPrefixCls,
211
+ loadData,
212
+ expandTrigger,
213
+ expandIcon,
214
+ loadingIcon,
215
+ dropdownMenuColumnStyle,
216
+ renderItem,
217
+ dropdownVisible,
218
+ }), [
219
+ mergedOptions,
220
+ mergedFieldNames,
221
+ checkedValues,
222
+ halfCheckedValues,
223
+ changeOnSelect,
224
+ onInternalSelect,
225
+ checkable,
226
+ searchOptions,
227
+ dropdownPrefixCls,
228
+ loadData,
229
+ expandTrigger,
230
+ expandIcon,
231
+ loadingIcon,
232
+ dropdownMenuColumnStyle,
233
+ renderItem,
234
+ dropdownVisible,
235
+ ]);
236
+ // ==============================================================
237
+ // == Render ==
238
+ // ==============================================================
239
+ const emptyOptions = !(mergedSearchValue ? searchOptions : mergedOptions).length;
240
+ const dropdownStyle =
241
+ // Search to match width
242
+ (mergedSearchValue && searchConfig.matchInputWidth) ||
243
+ // Empty keep the width
244
+ emptyOptions
245
+ ? {}
246
+ : {
247
+ minWidth: 'auto',
248
+ };
249
+ return (React.createElement(CascaderContext.Provider, { value: cascaderContext },
250
+ React.createElement(BaseSelect, Object.assign({}, restProps, {
251
+ // MISC
252
+ ref: ref, id: mergedId, prefixCls: prefixCls, dropdownMatchSelectWidth: dropdownMatchSelectWidth, dropdownStyle: dropdownStyle,
253
+ // Value
254
+ displayValues: displayValues, onDisplayValuesChange: onDisplayValuesChange, mode: multiple ? 'multiple' : undefined,
255
+ // Search
256
+ searchValue: mergedSearchValue, onSearch: onInternalSearch, showSearch: mergedShowSearch,
257
+ // Options
258
+ OptionList: OptionList, emptyOptions: emptyOptions,
259
+ // Open
260
+ open: mergedOpen, dropdownClassName: mergedDropdownClassName, placement: mergedPlacement, onDropdownVisibleChange: onInternalDropdownVisibleChange,
261
+ // Children
262
+ getRawInputElement: () => children }))));
263
+ });
264
+ if (process.env.NODE_ENV !== 'production') {
265
+ Cascader.displayName = 'Cascader';
266
+ }
267
+ Cascader.SHOW_PARENT = SHOW_PARENT;
268
+ Cascader.SHOW_CHILD = SHOW_CHILD;
269
+ export default Cascader;
270
+ //# 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,CAAC;AAC/B,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,eAAe,MAAM,YAAY,CAAC;AAUzC,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,CAAC;IAExD,MAAM,cAAc,GAAG,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IAEzE,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,CAAC;AACJ,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"]}