@yoka-ui/ui 1.0.10-test

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 (484) hide show
  1. package/@Docs-yoka/exports.generated.md +92 -0
  2. package/@Docs-yoka/llms.txt +23 -0
  3. package/README.md +291 -0
  4. package/dist/es/Themes/InputTheme/index.d.ts +6 -0
  5. package/dist/es/Themes/InputTheme/index.js +22 -0
  6. package/dist/es/Themes/InputTheme/index.js.map +7 -0
  7. package/dist/es/Themes/TableTheme/index.d.ts +7 -0
  8. package/dist/es/Themes/TableTheme/index.js +31 -0
  9. package/dist/es/Themes/TableTheme/index.js.map +7 -0
  10. package/dist/es/Themes/TableTheme/index.less +46 -0
  11. package/dist/es/assets/image/YKUI-logo.png +0 -0
  12. package/dist/es/assets/less/ant-reset.less +402 -0
  13. package/dist/es/assets/less/index.less +1 -0
  14. package/dist/es/assets/less/variables.less +16 -0
  15. package/dist/es/business/AiChat/MarkdownRender.d.ts +9 -0
  16. package/dist/es/business/AiChat/MarkdownRender.js +72 -0
  17. package/dist/es/business/AiChat/MarkdownRender.js.map +7 -0
  18. package/dist/es/business/AiChat/index.d.ts +16 -0
  19. package/dist/es/business/AiChat/index.js +521 -0
  20. package/dist/es/business/AiChat/index.js.map +7 -0
  21. package/dist/es/business/AiChat/intentRecognizer.d.ts +33 -0
  22. package/dist/es/business/AiChat/intentRecognizer.js +166 -0
  23. package/dist/es/business/AiChat/intentRecognizer.js.map +7 -0
  24. package/dist/es/business/AiChat/navigationManager.d.ts +94 -0
  25. package/dist/es/business/AiChat/navigationManager.js +208 -0
  26. package/dist/es/business/AiChat/navigationManager.js.map +7 -0
  27. package/dist/es/business/AiChat/sse.d.ts +1 -0
  28. package/dist/es/business/AiChat/sse.js +60 -0
  29. package/dist/es/business/AiChat/sse.js.map +7 -0
  30. package/dist/es/business/AiChat/type.d.ts +157 -0
  31. package/dist/es/business/AiChat/type.js +1 -0
  32. package/dist/es/business/AiChat/type.js.map +7 -0
  33. package/dist/es/business/AiChat/useAiChat.d.ts +2 -0
  34. package/dist/es/business/AiChat/useAiChat.js +238 -0
  35. package/dist/es/business/AiChat/useAiChat.js.map +7 -0
  36. package/dist/es/business/AiChat/useTaskWorkflow.d.ts +26 -0
  37. package/dist/es/business/AiChat/useTaskWorkflow.js +230 -0
  38. package/dist/es/business/AiChat/useTaskWorkflow.js.map +7 -0
  39. package/dist/es/business/DrawerPageInfo/index.d.ts +35 -0
  40. package/dist/es/business/DrawerPageInfo/index.js +133 -0
  41. package/dist/es/business/DrawerPageInfo/index.js.map +7 -0
  42. package/dist/es/business/DrawerPageInfo/index.module.less +87 -0
  43. package/dist/es/business/DrawerPageInfo/test.png +0 -0
  44. package/dist/es/business/Editor/index.d.ts +11 -0
  45. package/dist/es/business/Editor/index.js +86 -0
  46. package/dist/es/business/Editor/index.js.map +7 -0
  47. package/dist/es/business/Editor/index.less +31 -0
  48. package/dist/es/business/Empty/empty.png +0 -0
  49. package/dist/es/business/Empty/index.d.ts +19 -0
  50. package/dist/es/business/Empty/index.js +51 -0
  51. package/dist/es/business/Empty/index.js.map +7 -0
  52. package/dist/es/business/ModCommonFilter/assets/images/empty.png +0 -0
  53. package/dist/es/business/ModCommonFilter/components/FilterButton/IconClose.d.ts +13 -0
  54. package/dist/es/business/ModCommonFilter/components/FilterButton/IconClose.js +51 -0
  55. package/dist/es/business/ModCommonFilter/components/FilterButton/IconClose.js.map +7 -0
  56. package/dist/es/business/ModCommonFilter/components/FilterButton/IconXiala.d.ts +13 -0
  57. package/dist/es/business/ModCommonFilter/components/FilterButton/IconXiala.js +51 -0
  58. package/dist/es/business/ModCommonFilter/components/FilterButton/IconXiala.js.map +7 -0
  59. package/dist/es/business/ModCommonFilter/components/FilterButton/index.d.ts +25 -0
  60. package/dist/es/business/ModCommonFilter/components/FilterButton/index.js +30 -0
  61. package/dist/es/business/ModCommonFilter/components/FilterButton/index.js.map +7 -0
  62. package/dist/es/business/ModCommonFilter/components/FilterButton/index.module.less +97 -0
  63. package/dist/es/business/ModCommonFilter/components/PopoverContent/Category.d.ts +18 -0
  64. package/dist/es/business/ModCommonFilter/components/PopoverContent/Category.js +74 -0
  65. package/dist/es/business/ModCommonFilter/components/PopoverContent/Category.js.map +7 -0
  66. package/dist/es/business/ModCommonFilter/components/PopoverContent/Content.d.ts +37 -0
  67. package/dist/es/business/ModCommonFilter/components/PopoverContent/Content.js +216 -0
  68. package/dist/es/business/ModCommonFilter/components/PopoverContent/Content.js.map +7 -0
  69. package/dist/es/business/ModCommonFilter/components/PopoverContent/Selected.d.ts +26 -0
  70. package/dist/es/business/ModCommonFilter/components/PopoverContent/Selected.js +102 -0
  71. package/dist/es/business/ModCommonFilter/components/PopoverContent/Selected.js.map +7 -0
  72. package/dist/es/business/ModCommonFilter/components/PopoverContent/index.d.ts +51 -0
  73. package/dist/es/business/ModCommonFilter/components/PopoverContent/index.js +71 -0
  74. package/dist/es/business/ModCommonFilter/components/PopoverContent/index.js.map +7 -0
  75. package/dist/es/business/ModCommonFilter/components/PopoverContent/index.module.less +260 -0
  76. package/dist/es/business/ModCommonFilter/index.d.ts +53 -0
  77. package/dist/es/business/ModCommonFilter/index.js +129 -0
  78. package/dist/es/business/ModCommonFilter/index.js.map +7 -0
  79. package/dist/es/business/ModCommonFilter/index.module.less +7 -0
  80. package/dist/es/business/ModCommonFilter/typing.d.ts +20 -0
  81. package/dist/es/business/ModCommonFilter/typing.js +1 -0
  82. package/dist/es/business/ModCommonFilter/typing.js.map +7 -0
  83. package/dist/es/business/YkPorjectSelect/icon-product.png +0 -0
  84. package/dist/es/business/YkPorjectSelect/index.d.ts +51 -0
  85. package/dist/es/business/YkPorjectSelect/index.js +260 -0
  86. package/dist/es/business/YkPorjectSelect/index.js.map +7 -0
  87. package/dist/es/business/YkPorjectSelect/index.module.less +334 -0
  88. package/dist/es/business/YkPorjectSelect/product-close.png +0 -0
  89. package/dist/es/components/Clock/index.d.ts +19 -0
  90. package/dist/es/components/Clock/index.js +55 -0
  91. package/dist/es/components/Clock/index.js.map +7 -0
  92. package/dist/es/components/DebounceInput/index.d.ts +16 -0
  93. package/dist/es/components/DebounceInput/index.js +77 -0
  94. package/dist/es/components/DebounceInput/index.js.map +7 -0
  95. package/dist/es/components/DebounceInput/index.module.less +23 -0
  96. package/dist/es/components/MultipleSelect/index.d.ts +23 -0
  97. package/dist/es/components/MultipleSelect/index.js +249 -0
  98. package/dist/es/components/MultipleSelect/index.js.map +7 -0
  99. package/dist/es/components/MultipleSelect/index.module.less +174 -0
  100. package/dist/es/components/NumericInput/index.d.ts +19 -0
  101. package/dist/es/components/NumericInput/index.js +56 -0
  102. package/dist/es/components/NumericInput/index.js.map +7 -0
  103. package/dist/es/components/RefreshButton/index.d.ts +8 -0
  104. package/dist/es/components/RefreshButton/index.js +21 -0
  105. package/dist/es/components/RefreshButton/index.js.map +7 -0
  106. package/dist/es/components/SearchWithHistory/index.d.ts +21 -0
  107. package/dist/es/components/SearchWithHistory/index.js +115 -0
  108. package/dist/es/components/SearchWithHistory/index.js.map +7 -0
  109. package/dist/es/components/SearchWithHistory/index.module.less +64 -0
  110. package/dist/es/components/TextWithInput/index.d.ts +15 -0
  111. package/dist/es/components/TextWithInput/index.js +35 -0
  112. package/dist/es/components/TextWithInput/index.js.map +7 -0
  113. package/dist/es/components/TextWithToolTip/index.d.ts +17 -0
  114. package/dist/es/components/TextWithToolTip/index.js +118 -0
  115. package/dist/es/components/TextWithToolTip/index.js.map +7 -0
  116. package/dist/es/components/TreeTransfer/components/TreeTransferPanel/index.d.ts +28 -0
  117. package/dist/es/components/TreeTransfer/components/TreeTransferPanel/index.js +161 -0
  118. package/dist/es/components/TreeTransfer/components/TreeTransferPanel/index.js.map +7 -0
  119. package/dist/es/components/TreeTransfer/components/TreeTransferPanel/index.less +151 -0
  120. package/dist/es/components/TreeTransfer/index.d.ts +28 -0
  121. package/dist/es/components/TreeTransfer/index.js +210 -0
  122. package/dist/es/components/TreeTransfer/index.js.map +7 -0
  123. package/dist/es/components/TreeTransfer/index.less +69 -0
  124. package/dist/es/components/TreeTransfer/types.d.ts +122 -0
  125. package/dist/es/components/TreeTransfer/types.js +6 -0
  126. package/dist/es/components/TreeTransfer/types.js.map +7 -0
  127. package/dist/es/components/TreeTransfer/utils/index.d.ts +120 -0
  128. package/dist/es/components/TreeTransfer/utils/index.js +195 -0
  129. package/dist/es/components/TreeTransfer/utils/index.js.map +7 -0
  130. package/dist/es/components/YkDateRangePicker/index.d.ts +57 -0
  131. package/dist/es/components/YkDateRangePicker/index.js +261 -0
  132. package/dist/es/components/YkDateRangePicker/index.js.map +7 -0
  133. package/dist/es/components/YkDateRangePicker/index.module.less +281 -0
  134. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.d.ts +16 -0
  135. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.js +193 -0
  136. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.js.map +7 -0
  137. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSRange.d.ts +31 -0
  138. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSRange.js +556 -0
  139. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSRange.js.map +7 -0
  140. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.d.ts +16 -0
  141. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.js +55 -0
  142. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.js.map +7 -0
  143. package/dist/es/components/YkRangeDateWithVS/index.d.ts +62 -0
  144. package/dist/es/components/YkRangeDateWithVS/index.js +130 -0
  145. package/dist/es/components/YkRangeDateWithVS/index.js.map +7 -0
  146. package/dist/es/components/YkRangeDateWithVS/index.module.less +548 -0
  147. package/dist/es/components/YkRangeDateWithVS/styles.d.ts +2 -0
  148. package/dist/es/components/YkRangeDateWithVS/styles.js +18 -0
  149. package/dist/es/components/YkRangeDateWithVS/styles.js.map +7 -0
  150. package/dist/es/components/YkRangeDateWithVS/typing.d.ts +15 -0
  151. package/dist/es/components/YkRangeTimeWithRecent/constants.d.ts +48 -0
  152. package/dist/es/components/YkRangeTimeWithRecent/constants.js +288 -0
  153. package/dist/es/components/YkRangeTimeWithRecent/constants.js.map +7 -0
  154. package/dist/es/components/YkRangeTimeWithRecent/index.d.ts +26 -0
  155. package/dist/es/components/YkRangeTimeWithRecent/index.js +647 -0
  156. package/dist/es/components/YkRangeTimeWithRecent/index.js.map +7 -0
  157. package/dist/es/components/YkRangeTimeWithRecent/index.module.less +263 -0
  158. package/dist/es/creative/ButtonRadioWithInfo/index.d.ts +17 -0
  159. package/dist/es/creative/ButtonRadioWithInfo/index.js +103 -0
  160. package/dist/es/creative/ButtonRadioWithInfo/index.js.map +7 -0
  161. package/dist/es/creative/ButtonRadioWithInfo/index.less +106 -0
  162. package/dist/es/creative/ButtonWithProgress/index.d.ts +11 -0
  163. package/dist/es/creative/ButtonWithProgress/index.js +79 -0
  164. package/dist/es/creative/ButtonWithProgress/index.js.map +7 -0
  165. package/dist/es/creative/ButtonWithProgress/index.less +66 -0
  166. package/dist/es/global.less +12 -0
  167. package/dist/es/index.d.ts +41 -0
  168. package/dist/es/index.js +85 -0
  169. package/dist/es/index.js.map +7 -0
  170. package/dist/es/layout/FlexGrid/index.d.ts +25 -0
  171. package/dist/es/layout/FlexGrid/index.js +63 -0
  172. package/dist/es/layout/FlexGrid/index.js.map +7 -0
  173. package/dist/es/layout/YkContainer/index.d.ts +27 -0
  174. package/dist/es/layout/YkContainer/index.js +79 -0
  175. package/dist/es/layout/YkContainer/index.js.map +7 -0
  176. package/dist/es/layout/YkDrawer/index.d.ts +22 -0
  177. package/dist/es/layout/YkDrawer/index.js +160 -0
  178. package/dist/es/layout/YkDrawer/index.js.map +7 -0
  179. package/dist/es/layout/YkDrawer/index.module.less +45 -0
  180. package/dist/es/ui/LabelSelect/demo.d.ts +3 -0
  181. package/dist/es/ui/LabelSelect/demo.js +83 -0
  182. package/dist/es/ui/LabelSelect/demo.js.map +7 -0
  183. package/dist/es/ui/LabelSelect/index.d.ts +41 -0
  184. package/dist/es/ui/LabelSelect/index.js +136 -0
  185. package/dist/es/ui/LabelSelect/index.js.map +7 -0
  186. package/dist/es/ui/LogicOperator/index.d.ts +10 -0
  187. package/dist/es/ui/LogicOperator/index.js +12 -0
  188. package/dist/es/ui/LogicOperator/index.js.map +7 -0
  189. package/dist/es/ui/LogicOperator/index.module.less +97 -0
  190. package/dist/es/ui/YkButton/index.d.ts +9 -0
  191. package/dist/es/ui/YkButton/index.js +59 -0
  192. package/dist/es/ui/YkButton/index.js.map +7 -0
  193. package/dist/es/ui/YkCard/index.d.ts +4 -0
  194. package/dist/es/ui/YkCard/index.js +79 -0
  195. package/dist/es/ui/YkCard/index.js.map +7 -0
  196. package/dist/es/ui/YkCard/index.module.less +30 -0
  197. package/dist/es/ui/YkCheckbox/index.d.ts +4 -0
  198. package/dist/es/ui/YkCheckbox/index.js +45 -0
  199. package/dist/es/ui/YkCheckbox/index.js.map +7 -0
  200. package/dist/es/ui/YkCheckbox/index.module.less +22 -0
  201. package/dist/es/ui/YkDescriptions/index.d.ts +4 -0
  202. package/dist/es/ui/YkDescriptions/index.js +41 -0
  203. package/dist/es/ui/YkDescriptions/index.js.map +7 -0
  204. package/dist/es/ui/YkPagination/index.d.ts +4 -0
  205. package/dist/es/ui/YkPagination/index.js +63 -0
  206. package/dist/es/ui/YkPagination/index.js.map +7 -0
  207. package/dist/es/ui/YkPagination/index.module.less +22 -0
  208. package/dist/es/ui/YkRadio/index.d.ts +4 -0
  209. package/dist/es/ui/YkRadio/index.js +51 -0
  210. package/dist/es/ui/YkRadio/index.js.map +7 -0
  211. package/dist/es/ui/YkRadio/index.module.less +22 -0
  212. package/dist/es/ui/YkRadioBtnSpecial/index.d.ts +15 -0
  213. package/dist/es/ui/YkRadioBtnSpecial/index.js +23 -0
  214. package/dist/es/ui/YkRadioBtnSpecial/index.js.map +7 -0
  215. package/dist/es/ui/YkRadioBtnSpecial/index.module.less +112 -0
  216. package/dist/es/ui/YkSegmented/index.d.ts +4 -0
  217. package/dist/es/ui/YkSegmented/index.js +41 -0
  218. package/dist/es/ui/YkSegmented/index.js.map +7 -0
  219. package/dist/es/ui/YkSelect/index.d.ts +7 -0
  220. package/dist/es/ui/YkSelect/index.js +54 -0
  221. package/dist/es/ui/YkSelect/index.js.map +7 -0
  222. package/dist/es/ui/YkSpin/index.d.ts +4 -0
  223. package/dist/es/ui/YkSpin/index.js +41 -0
  224. package/dist/es/ui/YkSpin/index.js.map +7 -0
  225. package/dist/es/ui/YkStatistic/index.d.ts +4 -0
  226. package/dist/es/ui/YkStatistic/index.js +41 -0
  227. package/dist/es/ui/YkStatistic/index.js.map +7 -0
  228. package/dist/es/ui/YkSwitch/index.d.ts +4 -0
  229. package/dist/es/ui/YkSwitch/index.js +51 -0
  230. package/dist/es/ui/YkSwitch/index.js.map +7 -0
  231. package/dist/es/ui/YkTabs/index.d.ts +12 -0
  232. package/dist/es/ui/YkTabs/index.js +75 -0
  233. package/dist/es/ui/YkTabs/index.js.map +7 -0
  234. package/dist/es/ui/YkTabs/index.module.less +11 -0
  235. package/dist/es/ui/YkTooltip/index.d.ts +4 -0
  236. package/dist/es/ui/YkTooltip/index.js +50 -0
  237. package/dist/es/ui/YkTooltip/index.js.map +7 -0
  238. package/dist/es/utils/styleUtils.d.ts +18 -0
  239. package/dist/es/utils/styleUtils.js +57 -0
  240. package/dist/es/utils/styleUtils.js.map +7 -0
  241. package/dist/es/utils/ykStorybookDoc.d.ts +17 -0
  242. package/dist/es/utils/ykStorybookDoc.js +18 -0
  243. package/dist/es/utils/ykStorybookDoc.js.map +7 -0
  244. package/dist/lib/Themes/InputTheme/index.d.ts +6 -0
  245. package/dist/lib/Themes/InputTheme/index.js +52 -0
  246. package/dist/lib/Themes/InputTheme/index.js.map +7 -0
  247. package/dist/lib/Themes/TableTheme/index.d.ts +7 -0
  248. package/dist/lib/Themes/TableTheme/index.js +61 -0
  249. package/dist/lib/Themes/TableTheme/index.js.map +7 -0
  250. package/dist/lib/Themes/TableTheme/index.less +46 -0
  251. package/dist/lib/assets/image/YKUI-logo.png +0 -0
  252. package/dist/lib/assets/less/ant-reset.less +402 -0
  253. package/dist/lib/assets/less/index.less +1 -0
  254. package/dist/lib/assets/less/variables.less +16 -0
  255. package/dist/lib/business/AiChat/MarkdownRender.d.ts +9 -0
  256. package/dist/lib/business/AiChat/MarkdownRender.js +102 -0
  257. package/dist/lib/business/AiChat/MarkdownRender.js.map +7 -0
  258. package/dist/lib/business/AiChat/index.d.ts +16 -0
  259. package/dist/lib/business/AiChat/index.js +514 -0
  260. package/dist/lib/business/AiChat/index.js.map +7 -0
  261. package/dist/lib/business/AiChat/intentRecognizer.d.ts +33 -0
  262. package/dist/lib/business/AiChat/intentRecognizer.js +193 -0
  263. package/dist/lib/business/AiChat/intentRecognizer.js.map +7 -0
  264. package/dist/lib/business/AiChat/navigationManager.d.ts +94 -0
  265. package/dist/lib/business/AiChat/navigationManager.js +214 -0
  266. package/dist/lib/business/AiChat/navigationManager.js.map +7 -0
  267. package/dist/lib/business/AiChat/sse.d.ts +1 -0
  268. package/dist/lib/business/AiChat/sse.js +61 -0
  269. package/dist/lib/business/AiChat/sse.js.map +7 -0
  270. package/dist/lib/business/AiChat/type.d.ts +157 -0
  271. package/dist/lib/business/AiChat/type.js +18 -0
  272. package/dist/lib/business/AiChat/type.js.map +7 -0
  273. package/dist/lib/business/AiChat/useAiChat.d.ts +2 -0
  274. package/dist/lib/business/AiChat/useAiChat.js +222 -0
  275. package/dist/lib/business/AiChat/useAiChat.js.map +7 -0
  276. package/dist/lib/business/AiChat/useTaskWorkflow.d.ts +26 -0
  277. package/dist/lib/business/AiChat/useTaskWorkflow.js +216 -0
  278. package/dist/lib/business/AiChat/useTaskWorkflow.js.map +7 -0
  279. package/dist/lib/business/DrawerPageInfo/index.d.ts +35 -0
  280. package/dist/lib/business/DrawerPageInfo/index.js +163 -0
  281. package/dist/lib/business/DrawerPageInfo/index.js.map +7 -0
  282. package/dist/lib/business/DrawerPageInfo/index.module.less +87 -0
  283. package/dist/lib/business/DrawerPageInfo/test.png +0 -0
  284. package/dist/lib/business/Editor/index.d.ts +11 -0
  285. package/dist/lib/business/Editor/index.js +99 -0
  286. package/dist/lib/business/Editor/index.js.map +7 -0
  287. package/dist/lib/business/Editor/index.less +31 -0
  288. package/dist/lib/business/Empty/empty.png +0 -0
  289. package/dist/lib/business/Empty/index.d.ts +19 -0
  290. package/dist/lib/business/Empty/index.js +65 -0
  291. package/dist/lib/business/Empty/index.js.map +7 -0
  292. package/dist/lib/business/ModCommonFilter/assets/images/empty.png +0 -0
  293. package/dist/lib/business/ModCommonFilter/components/FilterButton/IconClose.d.ts +13 -0
  294. package/dist/lib/business/ModCommonFilter/components/FilterButton/IconClose.js +50 -0
  295. package/dist/lib/business/ModCommonFilter/components/FilterButton/IconClose.js.map +7 -0
  296. package/dist/lib/business/ModCommonFilter/components/FilterButton/IconXiala.d.ts +13 -0
  297. package/dist/lib/business/ModCommonFilter/components/FilterButton/IconXiala.js +50 -0
  298. package/dist/lib/business/ModCommonFilter/components/FilterButton/IconXiala.js.map +7 -0
  299. package/dist/lib/business/ModCommonFilter/components/FilterButton/index.d.ts +25 -0
  300. package/dist/lib/business/ModCommonFilter/components/FilterButton/index.js +60 -0
  301. package/dist/lib/business/ModCommonFilter/components/FilterButton/index.js.map +7 -0
  302. package/dist/lib/business/ModCommonFilter/components/FilterButton/index.module.less +97 -0
  303. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Category.d.ts +18 -0
  304. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Category.js +69 -0
  305. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Category.js.map +7 -0
  306. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Content.d.ts +37 -0
  307. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Content.js +211 -0
  308. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Content.js.map +7 -0
  309. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Selected.d.ts +26 -0
  310. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Selected.js +97 -0
  311. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Selected.js.map +7 -0
  312. package/dist/lib/business/ModCommonFilter/components/PopoverContent/index.d.ts +51 -0
  313. package/dist/lib/business/ModCommonFilter/components/PopoverContent/index.js +101 -0
  314. package/dist/lib/business/ModCommonFilter/components/PopoverContent/index.js.map +7 -0
  315. package/dist/lib/business/ModCommonFilter/components/PopoverContent/index.module.less +260 -0
  316. package/dist/lib/business/ModCommonFilter/index.d.ts +53 -0
  317. package/dist/lib/business/ModCommonFilter/index.js +143 -0
  318. package/dist/lib/business/ModCommonFilter/index.js.map +7 -0
  319. package/dist/lib/business/ModCommonFilter/index.module.less +7 -0
  320. package/dist/lib/business/ModCommonFilter/typing.d.ts +20 -0
  321. package/dist/lib/business/ModCommonFilter/typing.js +18 -0
  322. package/dist/lib/business/ModCommonFilter/typing.js.map +7 -0
  323. package/dist/lib/business/YkPorjectSelect/icon-product.png +0 -0
  324. package/dist/lib/business/YkPorjectSelect/index.d.ts +51 -0
  325. package/dist/lib/business/YkPorjectSelect/index.js +235 -0
  326. package/dist/lib/business/YkPorjectSelect/index.js.map +7 -0
  327. package/dist/lib/business/YkPorjectSelect/index.module.less +334 -0
  328. package/dist/lib/business/YkPorjectSelect/product-close.png +0 -0
  329. package/dist/lib/components/Clock/index.d.ts +19 -0
  330. package/dist/lib/components/Clock/index.js +85 -0
  331. package/dist/lib/components/Clock/index.js.map +7 -0
  332. package/dist/lib/components/DebounceInput/index.d.ts +16 -0
  333. package/dist/lib/components/DebounceInput/index.js +107 -0
  334. package/dist/lib/components/DebounceInput/index.js.map +7 -0
  335. package/dist/lib/components/DebounceInput/index.module.less +23 -0
  336. package/dist/lib/components/MultipleSelect/index.d.ts +23 -0
  337. package/dist/lib/components/MultipleSelect/index.js +279 -0
  338. package/dist/lib/components/MultipleSelect/index.js.map +7 -0
  339. package/dist/lib/components/MultipleSelect/index.module.less +174 -0
  340. package/dist/lib/components/NumericInput/index.d.ts +19 -0
  341. package/dist/lib/components/NumericInput/index.js +67 -0
  342. package/dist/lib/components/NumericInput/index.js.map +7 -0
  343. package/dist/lib/components/RefreshButton/index.d.ts +8 -0
  344. package/dist/lib/components/RefreshButton/index.js +51 -0
  345. package/dist/lib/components/RefreshButton/index.js.map +7 -0
  346. package/dist/lib/components/SearchWithHistory/index.d.ts +21 -0
  347. package/dist/lib/components/SearchWithHistory/index.js +145 -0
  348. package/dist/lib/components/SearchWithHistory/index.js.map +7 -0
  349. package/dist/lib/components/SearchWithHistory/index.module.less +64 -0
  350. package/dist/lib/components/TextWithInput/index.d.ts +15 -0
  351. package/dist/lib/components/TextWithInput/index.js +65 -0
  352. package/dist/lib/components/TextWithInput/index.js.map +7 -0
  353. package/dist/lib/components/TextWithToolTip/index.d.ts +17 -0
  354. package/dist/lib/components/TextWithToolTip/index.js +134 -0
  355. package/dist/lib/components/TextWithToolTip/index.js.map +7 -0
  356. package/dist/lib/components/TreeTransfer/components/TreeTransferPanel/index.d.ts +28 -0
  357. package/dist/lib/components/TreeTransfer/components/TreeTransferPanel/index.js +191 -0
  358. package/dist/lib/components/TreeTransfer/components/TreeTransferPanel/index.js.map +7 -0
  359. package/dist/lib/components/TreeTransfer/components/TreeTransferPanel/index.less +151 -0
  360. package/dist/lib/components/TreeTransfer/index.d.ts +28 -0
  361. package/dist/lib/components/TreeTransfer/index.js +214 -0
  362. package/dist/lib/components/TreeTransfer/index.js.map +7 -0
  363. package/dist/lib/components/TreeTransfer/index.less +69 -0
  364. package/dist/lib/components/TreeTransfer/types.d.ts +122 -0
  365. package/dist/lib/components/TreeTransfer/types.js +30 -0
  366. package/dist/lib/components/TreeTransfer/types.js.map +7 -0
  367. package/dist/lib/components/TreeTransfer/utils/index.d.ts +120 -0
  368. package/dist/lib/components/TreeTransfer/utils/index.js +208 -0
  369. package/dist/lib/components/TreeTransfer/utils/index.js.map +7 -0
  370. package/dist/lib/components/YkDateRangePicker/index.d.ts +57 -0
  371. package/dist/lib/components/YkDateRangePicker/index.js +282 -0
  372. package/dist/lib/components/YkDateRangePicker/index.js.map +7 -0
  373. package/dist/lib/components/YkDateRangePicker/index.module.less +281 -0
  374. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.d.ts +16 -0
  375. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.js +223 -0
  376. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.js.map +7 -0
  377. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSRange.d.ts +31 -0
  378. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSRange.js +567 -0
  379. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSRange.js.map +7 -0
  380. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.d.ts +16 -0
  381. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.js +85 -0
  382. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.js.map +7 -0
  383. package/dist/lib/components/YkRangeDateWithVS/index.d.ts +62 -0
  384. package/dist/lib/components/YkRangeDateWithVS/index.js +140 -0
  385. package/dist/lib/components/YkRangeDateWithVS/index.js.map +7 -0
  386. package/dist/lib/components/YkRangeDateWithVS/index.module.less +548 -0
  387. package/dist/lib/components/YkRangeDateWithVS/styles.d.ts +2 -0
  388. package/dist/lib/components/YkRangeDateWithVS/styles.js +48 -0
  389. package/dist/lib/components/YkRangeDateWithVS/styles.js.map +7 -0
  390. package/dist/lib/components/YkRangeDateWithVS/typing.d.ts +15 -0
  391. package/dist/lib/components/YkRangeTimeWithRecent/constants.d.ts +48 -0
  392. package/dist/lib/components/YkRangeTimeWithRecent/constants.js +333 -0
  393. package/dist/lib/components/YkRangeTimeWithRecent/constants.js.map +7 -0
  394. package/dist/lib/components/YkRangeTimeWithRecent/index.d.ts +26 -0
  395. package/dist/lib/components/YkRangeTimeWithRecent/index.js +647 -0
  396. package/dist/lib/components/YkRangeTimeWithRecent/index.js.map +7 -0
  397. package/dist/lib/components/YkRangeTimeWithRecent/index.module.less +263 -0
  398. package/dist/lib/creative/ButtonRadioWithInfo/index.d.ts +17 -0
  399. package/dist/lib/creative/ButtonRadioWithInfo/index.js +102 -0
  400. package/dist/lib/creative/ButtonRadioWithInfo/index.js.map +7 -0
  401. package/dist/lib/creative/ButtonRadioWithInfo/index.less +106 -0
  402. package/dist/lib/creative/ButtonWithProgress/index.d.ts +11 -0
  403. package/dist/lib/creative/ButtonWithProgress/index.js +70 -0
  404. package/dist/lib/creative/ButtonWithProgress/index.js.map +7 -0
  405. package/dist/lib/creative/ButtonWithProgress/index.less +66 -0
  406. package/dist/lib/global.less +12 -0
  407. package/dist/lib/index.d.ts +41 -0
  408. package/dist/lib/index.js +158 -0
  409. package/dist/lib/index.js.map +7 -0
  410. package/dist/lib/layout/FlexGrid/index.d.ts +25 -0
  411. package/dist/lib/layout/FlexGrid/index.js +77 -0
  412. package/dist/lib/layout/FlexGrid/index.js.map +7 -0
  413. package/dist/lib/layout/YkContainer/index.d.ts +27 -0
  414. package/dist/lib/layout/YkContainer/index.js +79 -0
  415. package/dist/lib/layout/YkContainer/index.js.map +7 -0
  416. package/dist/lib/layout/YkDrawer/index.d.ts +22 -0
  417. package/dist/lib/layout/YkDrawer/index.js +152 -0
  418. package/dist/lib/layout/YkDrawer/index.js.map +7 -0
  419. package/dist/lib/layout/YkDrawer/index.module.less +45 -0
  420. package/dist/lib/ui/LabelSelect/demo.d.ts +3 -0
  421. package/dist/lib/ui/LabelSelect/demo.js +113 -0
  422. package/dist/lib/ui/LabelSelect/demo.js.map +7 -0
  423. package/dist/lib/ui/LabelSelect/index.d.ts +41 -0
  424. package/dist/lib/ui/LabelSelect/index.js +124 -0
  425. package/dist/lib/ui/LabelSelect/index.js.map +7 -0
  426. package/dist/lib/ui/LogicOperator/index.d.ts +10 -0
  427. package/dist/lib/ui/LogicOperator/index.js +42 -0
  428. package/dist/lib/ui/LogicOperator/index.js.map +7 -0
  429. package/dist/lib/ui/LogicOperator/index.module.less +97 -0
  430. package/dist/lib/ui/YkButton/index.d.ts +9 -0
  431. package/dist/lib/ui/YkButton/index.js +55 -0
  432. package/dist/lib/ui/YkButton/index.js.map +7 -0
  433. package/dist/lib/ui/YkCard/index.d.ts +4 -0
  434. package/dist/lib/ui/YkCard/index.js +76 -0
  435. package/dist/lib/ui/YkCard/index.js.map +7 -0
  436. package/dist/lib/ui/YkCard/index.module.less +30 -0
  437. package/dist/lib/ui/YkCheckbox/index.d.ts +4 -0
  438. package/dist/lib/ui/YkCheckbox/index.js +42 -0
  439. package/dist/lib/ui/YkCheckbox/index.js.map +7 -0
  440. package/dist/lib/ui/YkCheckbox/index.module.less +22 -0
  441. package/dist/lib/ui/YkDescriptions/index.d.ts +4 -0
  442. package/dist/lib/ui/YkDescriptions/index.js +41 -0
  443. package/dist/lib/ui/YkDescriptions/index.js.map +7 -0
  444. package/dist/lib/ui/YkPagination/index.d.ts +4 -0
  445. package/dist/lib/ui/YkPagination/index.js +60 -0
  446. package/dist/lib/ui/YkPagination/index.js.map +7 -0
  447. package/dist/lib/ui/YkPagination/index.module.less +22 -0
  448. package/dist/lib/ui/YkRadio/index.d.ts +4 -0
  449. package/dist/lib/ui/YkRadio/index.js +51 -0
  450. package/dist/lib/ui/YkRadio/index.js.map +7 -0
  451. package/dist/lib/ui/YkRadio/index.module.less +22 -0
  452. package/dist/lib/ui/YkRadioBtnSpecial/index.d.ts +15 -0
  453. package/dist/lib/ui/YkRadioBtnSpecial/index.js +53 -0
  454. package/dist/lib/ui/YkRadioBtnSpecial/index.js.map +7 -0
  455. package/dist/lib/ui/YkRadioBtnSpecial/index.module.less +112 -0
  456. package/dist/lib/ui/YkSegmented/index.d.ts +4 -0
  457. package/dist/lib/ui/YkSegmented/index.js +41 -0
  458. package/dist/lib/ui/YkSegmented/index.js.map +7 -0
  459. package/dist/lib/ui/YkSelect/index.d.ts +7 -0
  460. package/dist/lib/ui/YkSelect/index.js +54 -0
  461. package/dist/lib/ui/YkSelect/index.js.map +7 -0
  462. package/dist/lib/ui/YkSpin/index.d.ts +4 -0
  463. package/dist/lib/ui/YkSpin/index.js +41 -0
  464. package/dist/lib/ui/YkSpin/index.js.map +7 -0
  465. package/dist/lib/ui/YkStatistic/index.d.ts +4 -0
  466. package/dist/lib/ui/YkStatistic/index.js +41 -0
  467. package/dist/lib/ui/YkStatistic/index.js.map +7 -0
  468. package/dist/lib/ui/YkSwitch/index.d.ts +4 -0
  469. package/dist/lib/ui/YkSwitch/index.js +51 -0
  470. package/dist/lib/ui/YkSwitch/index.js.map +7 -0
  471. package/dist/lib/ui/YkTabs/index.d.ts +12 -0
  472. package/dist/lib/ui/YkTabs/index.js +70 -0
  473. package/dist/lib/ui/YkTabs/index.js.map +7 -0
  474. package/dist/lib/ui/YkTabs/index.module.less +11 -0
  475. package/dist/lib/ui/YkTooltip/index.d.ts +4 -0
  476. package/dist/lib/ui/YkTooltip/index.js +45 -0
  477. package/dist/lib/ui/YkTooltip/index.js.map +7 -0
  478. package/dist/lib/utils/styleUtils.d.ts +18 -0
  479. package/dist/lib/utils/styleUtils.js +84 -0
  480. package/dist/lib/utils/styleUtils.js.map +7 -0
  481. package/dist/lib/utils/ykStorybookDoc.d.ts +17 -0
  482. package/dist/lib/utils/ykStorybookDoc.js +41 -0
  483. package/dist/lib/utils/ykStorybookDoc.js.map +7 -0
  484. package/package.json +147 -0
@@ -0,0 +1,118 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
4
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __spreadValues = (a, b) => {
7
+ for (var prop in b || (b = {}))
8
+ if (__hasOwnProp.call(b, prop))
9
+ __defNormalProp(a, prop, b[prop]);
10
+ if (__getOwnPropSymbols)
11
+ for (var prop of __getOwnPropSymbols(b)) {
12
+ if (__propIsEnum.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ }
15
+ return a;
16
+ };
17
+
18
+ // src/components/TextWithToolTip/index.tsx
19
+ import { Tooltip } from "antd";
20
+ import React, { useRef, useState } from "react";
21
+ var TextWithTooltip = ({
22
+ text,
23
+ placement = "top",
24
+ zIndex,
25
+ width,
26
+ maxWidth,
27
+ className,
28
+ style = {},
29
+ color,
30
+ styles,
31
+ highlight = "",
32
+ arrow = false
33
+ }) => {
34
+ const [showTooltip, setShowTooltip] = useState(false);
35
+ const textRef = useRef(null);
36
+ const handleMouseEnter = () => {
37
+ if (textRef.current) {
38
+ const range = document.createRange();
39
+ range.selectNodeContents(textRef.current);
40
+ const rangeWidth = range.getBoundingClientRect().width;
41
+ const actualWidth = textRef.current.getBoundingClientRect().width;
42
+ setShowTooltip(rangeWidth > actualWidth);
43
+ }
44
+ };
45
+ function splitString(str, delimiter) {
46
+ const result = [];
47
+ let match;
48
+ const escapedDelimiter = delimiter.replace(/[-/\\^$*+?.()|[\]{}]/g, "\\$&");
49
+ const regex = new RegExp(`(${escapedDelimiter})`, "gi");
50
+ let remaining = str;
51
+ while ((match = regex.exec(remaining)) !== null) {
52
+ const index = match.index;
53
+ if (index !== 0) {
54
+ result.push(remaining.slice(0, index));
55
+ }
56
+ result.push(match[1]);
57
+ remaining = remaining.slice(index + match[1].length);
58
+ regex.lastIndex = 0;
59
+ }
60
+ if (remaining.length > 0) {
61
+ result.push(remaining);
62
+ }
63
+ return result;
64
+ }
65
+ const highlightedText = (text2) => {
66
+ if (highlight && (typeof text2 === "string" || typeof text2 === "number")) {
67
+ return splitString(text2.toString(), highlight).map((part, index) => {
68
+ if (part.toUpperCase() === highlight.toUpperCase()) {
69
+ return /* @__PURE__ */ React.createElement("span", { key: index, style: { color: "#ffb401" } }, part);
70
+ } else {
71
+ return /* @__PURE__ */ React.createElement("span", { key: index }, part);
72
+ }
73
+ });
74
+ } else {
75
+ return text2;
76
+ }
77
+ };
78
+ const formatWidth = (value) => {
79
+ if (typeof value === "string" && /^\d+$/.test(value)) {
80
+ return `${value}px`;
81
+ }
82
+ return value;
83
+ };
84
+ return /* @__PURE__ */ React.createElement(
85
+ Tooltip,
86
+ __spreadValues({
87
+ open: showTooltip,
88
+ title: text,
89
+ placement,
90
+ arrow,
91
+ destroyOnHidden: true,
92
+ color: color ? color : "#fff",
93
+ styles: styles ? styles : { body: { color: "#333", fontSize: 12 } }
94
+ }, zIndex ? { zIndex } : {}),
95
+ /* @__PURE__ */ React.createElement(
96
+ "span",
97
+ {
98
+ ref: textRef,
99
+ onMouseEnter: handleMouseEnter,
100
+ onMouseLeave: () => setShowTooltip(false),
101
+ className,
102
+ style: __spreadValues(__spreadValues({
103
+ display: "inline-block",
104
+ overflow: "hidden",
105
+ textOverflow: "ellipsis",
106
+ whiteSpace: "nowrap",
107
+ verticalAlign: "bottom"
108
+ }, style), maxWidth ? { maxWidth: formatWidth(maxWidth) } : { width: formatWidth(width) })
109
+ },
110
+ highlightedText(text)
111
+ )
112
+ );
113
+ };
114
+ var TextWithToolTip_default = TextWithTooltip;
115
+ export {
116
+ TextWithToolTip_default as default
117
+ };
118
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/components/TextWithToolTip/index.tsx"],
4
+ "sourcesContent": ["import { Tooltip, TooltipProps } from 'antd';\nimport React, { useRef, useState } from 'react';\n\ntype PropsType = {\n text: number | string | React.ReactNode;\n placement?: 'top' | 'left' | 'right' | 'bottom';\n zIndex?: number;\n color?: string;\n styles?: TooltipProps['styles'];\n width: number | string;\n maxWidth?: number | string;\n className?: string;\n style?: React.CSSProperties;\n highlight?: string; // 高亮的关键字\n arrow?: boolean;\n};\n\nconst TextWithTooltip: React.FC<PropsType> = ({\n text,\n placement = 'top',\n zIndex,\n width,\n maxWidth,\n className,\n style = {},\n color,\n styles,\n highlight = '',\n arrow = false,\n}) => {\n const [showTooltip, setShowTooltip] = useState(false);\n const textRef = useRef(null);\n\n const handleMouseEnter = () => {\n if (textRef.current) {\n const range = document.createRange();\n range.selectNodeContents(textRef.current);\n const rangeWidth = range.getBoundingClientRect().width;\n const actualWidth = (textRef.current as HTMLElement).getBoundingClientRect().width;\n setShowTooltip(rangeWidth > actualWidth);\n }\n };\n\n // 将text按照高亮关键字拆分成数组\n function splitString(str: string, delimiter: string) {\n const result = [];\n let match;\n const escapedDelimiter = delimiter.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n const regex = new RegExp(`(${escapedDelimiter})`, 'gi');\n let remaining = str; // 新建变量存储剩余字符串\n\n while ((match = regex.exec(remaining)) !== null) {\n const index = match.index;\n if (index !== 0) {\n result.push(remaining.slice(0, index));\n }\n result.push(match[1]);\n remaining = remaining.slice(index + match[1].length);\n regex.lastIndex = 0;\n }\n if (remaining.length > 0) {\n result.push(remaining);\n }\n return result;\n }\n\n // text是ReactNode时,不处理高亮\n const highlightedText = (text: number | string | React.ReactNode): React.ReactNode => {\n if (highlight && (typeof text === 'string' || typeof text === 'number')) {\n return splitString(text.toString(), highlight).map((part, index) => {\n if (part.toUpperCase() === highlight.toUpperCase()) {\n return (\n <span key={index} style={{ color: '#ffb401' }}>\n {part}\n </span>\n );\n } else {\n return <span key={index}>{part}</span>;\n }\n });\n } else {\n return text;\n }\n };\n\n // 处理宽度值,确保字符串数字能正确转换为带单位的 CSS 值\n const formatWidth = (value: number | string): number | string => {\n if (typeof value === 'string' && /^\\d+$/.test(value)) {\n // 如果是纯数字字符串,添加 px 单位\n return `${value}px`;\n }\n return value;\n };\n\n return (\n <Tooltip\n open={showTooltip}\n title={text}\n placement={placement}\n arrow={arrow}\n destroyOnHidden={true}\n color={color ? color : '#fff'}\n styles={styles ? styles : { body: { color: '#333', fontSize: 12 } }}\n {...(zIndex ? { zIndex } : {})}\n >\n <span\n ref={textRef}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={() => setShowTooltip(false)}\n className={className}\n style={{\n display: 'inline-block',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n verticalAlign: 'bottom',\n ...style,\n ...(maxWidth ? { maxWidth: formatWidth(maxWidth) } : { width: formatWidth(width) }),\n }}\n >\n {highlightedText(text)}\n </span>\n </Tooltip>\n );\n};\n\nexport default TextWithTooltip;\n"],
5
+ "mappings": "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",
6
+ "names": ["text"]
7
+ }
@@ -0,0 +1,28 @@
1
+ /**
2
+ * TreeTransferPanel
3
+ *
4
+ * 树形穿梭框单侧面板:搜索框 + 树形表格 + 分页器。
5
+ *
6
+ * @example
7
+ * ```tsx
8
+ * <TreeTransferPanel
9
+ * dataSource={data}
10
+ * selectedRowKeys={selectedKeys}
11
+ * onRowSelect={handleRowSelect}
12
+ * searchValue={searchValue}
13
+ * setSearchValue={setSearchValue}
14
+ * totalCount={totalCount}
15
+ * title="待分配项"
16
+ * showPagination={true}
17
+ * currentPage={currentPage}
18
+ * pageSize={20}
19
+ * onPageChange={handlePageChange}
20
+ * columns={customColumns}
21
+ * />
22
+ * ```
23
+ */
24
+ import React from 'react';
25
+ import { TreeTransferPanelProps } from '../../types';
26
+ import './index.less';
27
+ declare const TreeTransferPanel: <T>({ dataSource, selectedRowKeys, onRowSelect, searchValue, setSearchValue, totalCount, title, showPagination, currentPage, pageSize, onPageChange, columns: customColumns, customRender, searchPlaceholder, }: TreeTransferPanelProps<T>) => React.JSX.Element;
28
+ export default TreeTransferPanel;
@@ -0,0 +1,161 @@
1
+ // src/components/TreeTransfer/components/TreeTransferPanel/index.tsx
2
+ import React, { useMemo, useRef, useState, useEffect, useCallback } from "react";
3
+ import { Table, Input, Empty, Pagination, Typography, Tooltip } from "antd";
4
+ import { SearchOutlined } from "@ant-design/icons";
5
+ import { DEFAULT_PAGE_SIZE } from "../../types";
6
+ import "./index.less";
7
+ var { Text } = Typography;
8
+ var HEADER_HEIGHT = 34;
9
+ var SEARCH_HEIGHT = 44;
10
+ var PAGINATION_HEIGHT = 36;
11
+ var MARGIN = 8;
12
+ var EXTRA_PADDING = 60;
13
+ var MIN_SCROLL_Y = 100;
14
+ var TreeTransferPanel = ({
15
+ dataSource,
16
+ selectedRowKeys,
17
+ onRowSelect,
18
+ searchValue,
19
+ setSearchValue,
20
+ totalCount,
21
+ title,
22
+ showPagination = false,
23
+ currentPage = 1,
24
+ pageSize = DEFAULT_PAGE_SIZE,
25
+ onPageChange,
26
+ columns: customColumns,
27
+ customRender,
28
+ searchPlaceholder
29
+ }) => {
30
+ const panelRef = useRef(null);
31
+ const [tableScrollY, setTableScrollY] = useState(void 0);
32
+ useEffect(() => {
33
+ if (!panelRef.current)
34
+ return void 0;
35
+ let rafId;
36
+ const calculateScrollHeight = () => {
37
+ var _a, _b;
38
+ const panelHeight = (_b = (_a = panelRef.current) == null ? void 0 : _a.clientHeight) != null ? _b : 0;
39
+ const paginationOffset = showPagination ? PAGINATION_HEIGHT : 0;
40
+ const available = panelHeight - HEADER_HEIGHT - SEARCH_HEIGHT - paginationOffset - MARGIN - EXTRA_PADDING;
41
+ setTableScrollY(Math.max(available, MIN_SCROLL_Y));
42
+ };
43
+ const scheduleCalc = () => {
44
+ cancelAnimationFrame(rafId);
45
+ rafId = requestAnimationFrame(calculateScrollHeight);
46
+ };
47
+ scheduleCalc();
48
+ const resizeObserver = new ResizeObserver(scheduleCalc);
49
+ resizeObserver.observe(panelRef.current);
50
+ const mutationObserver = new MutationObserver(scheduleCalc);
51
+ const tableBody = panelRef.current.querySelector(".ant-table-tbody");
52
+ if (tableBody) {
53
+ mutationObserver.observe(tableBody, {
54
+ childList: true,
55
+ subtree: true,
56
+ attributes: true,
57
+ attributeFilter: ["class"]
58
+ });
59
+ }
60
+ return () => {
61
+ cancelAnimationFrame(rafId);
62
+ resizeObserver.disconnect();
63
+ mutationObserver.disconnect();
64
+ };
65
+ }, [showPagination]);
66
+ const defaultColumns = useMemo(
67
+ () => [
68
+ {
69
+ title: "ID",
70
+ dataIndex: "key",
71
+ key: "id",
72
+ width: "35%",
73
+ onCell: (record) => record.isParent ? {} : { colSpan: 0 },
74
+ render: (_, record) => record.isParent ? String(record.key) : ""
75
+ },
76
+ {
77
+ title: "名称",
78
+ dataIndex: "data",
79
+ key: "name",
80
+ width: "65%",
81
+ ellipsis: { showTitle: false },
82
+ onCell: (record) => {
83
+ if (!record.isParent)
84
+ return { colSpan: 2 };
85
+ return (customRender == null ? void 0 : customRender.onCell) ? customRender.onCell(record) : {};
86
+ },
87
+ render: (_, record, index) => {
88
+ if (customRender == null ? void 0 : customRender.cellRender)
89
+ return customRender.cellRender(_, record, index);
90
+ const content = JSON.stringify(record.data);
91
+ if (content.length > 20) {
92
+ return /* @__PURE__ */ React.createElement(Tooltip, { placement: "topLeft", title: content }, content);
93
+ }
94
+ return content;
95
+ }
96
+ }
97
+ ],
98
+ [customRender]
99
+ );
100
+ const columns = customColumns != null ? customColumns : defaultColumns;
101
+ const rowSelection = useMemo(
102
+ () => ({
103
+ selectedRowKeys,
104
+ onChange: (selectedKeys, selectedRows) => {
105
+ onRowSelect(selectedRows, selectedKeys);
106
+ },
107
+ checkStrictly: false,
108
+ columnWidth: 50
109
+ }),
110
+ [selectedRowKeys, onRowSelect]
111
+ );
112
+ const handleSearchChange = useCallback(
113
+ (e) => setSearchValue(e.target.value),
114
+ [setSearchValue]
115
+ );
116
+ return /* @__PURE__ */ React.createElement("div", { ref: panelRef, className: "tree-transfer-panel" }, /* @__PURE__ */ React.createElement("div", { className: "tree-transfer-panel-header" }, /* @__PURE__ */ React.createElement(Text, null, title), /* @__PURE__ */ React.createElement(Text, { type: "secondary" }, "(", totalCount, ")")), /* @__PURE__ */ React.createElement("div", { className: "tree-transfer-panel-search" }, /* @__PURE__ */ React.createElement(
117
+ Input,
118
+ {
119
+ placeholder: searchPlaceholder != null ? searchPlaceholder : "搜索",
120
+ prefix: /* @__PURE__ */ React.createElement(SearchOutlined, null),
121
+ value: searchValue,
122
+ onChange: handleSearchChange,
123
+ allowClear: true
124
+ }
125
+ )), /* @__PURE__ */ React.createElement("div", { className: "tree-transfer-panel-content" }, dataSource.length > 0 ? /* @__PURE__ */ React.createElement(
126
+ Table,
127
+ {
128
+ rowKey: "key",
129
+ columns,
130
+ dataSource,
131
+ rowSelection,
132
+ expandable: {
133
+ childrenColumnName: "children",
134
+ defaultExpandAllRows: true,
135
+ indentSize: 30
136
+ },
137
+ pagination: false,
138
+ size: "small",
139
+ className: "tree-transfer-table",
140
+ scroll: tableScrollY !== void 0 ? { y: tableScrollY } : void 0
141
+ }
142
+ ) : /* @__PURE__ */ React.createElement(Empty, { description: "暂无数据", image: Empty.PRESENTED_IMAGE_SIMPLE })), showPagination && onPageChange && totalCount > pageSize && /* @__PURE__ */ React.createElement("div", { className: "tree-transfer-panel-pagination" }, /* @__PURE__ */ React.createElement(
143
+ Pagination,
144
+ {
145
+ current: currentPage,
146
+ pageSize,
147
+ total: totalCount,
148
+ showSizeChanger: false,
149
+ showQuickJumper: false,
150
+ showTitle: false,
151
+ onChange: onPageChange,
152
+ size: "small",
153
+ simple: true
154
+ }
155
+ )));
156
+ };
157
+ var TreeTransferPanel_default = TreeTransferPanel;
158
+ export {
159
+ TreeTransferPanel_default as default
160
+ };
161
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/components/TreeTransfer/components/TreeTransferPanel/index.tsx"],
4
+ "sourcesContent": ["/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOTICE file distributed with\n * this work for additional information regarding copyright ownership.\n * The ASF licenses this file to You under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with\n * the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n/**\n * TreeTransferPanel\n *\n * 树形穿梭框单侧面板:搜索框 + 树形表格 + 分页器。\n *\n * @example\n * ```tsx\n * <TreeTransferPanel\n * dataSource={data}\n * selectedRowKeys={selectedKeys}\n * onRowSelect={handleRowSelect}\n * searchValue={searchValue}\n * setSearchValue={setSearchValue}\n * totalCount={totalCount}\n * title=\"待分配项\"\n * showPagination={true}\n * currentPage={currentPage}\n * pageSize={20}\n * onPageChange={handlePageChange}\n * columns={customColumns}\n * />\n * ```\n */\n\nimport React, { useMemo, useRef, useState, useEffect, useCallback } from 'react';\nimport { Table, Input, Empty, Pagination, Typography, Tooltip } from 'antd';\nimport type { ColumnsType } from 'antd/es/table';\nimport { SearchOutlined } from '@ant-design/icons';\nimport { TreeTransferPanelProps, TreeTransferRow, DEFAULT_PAGE_SIZE } from '../../types';\nimport './index.less';\n\nconst { Text } = Typography;\n\n// ─────────────────────────────────────────────────────────────────────────────\n// 固定元素高度常量(与 CSS 保持一致)\n// ─────────────────────────────────────────────────────────────────────────────\nconst HEADER_HEIGHT = 34; // .tree-transfer-panel-header padding + border\nconst SEARCH_HEIGHT = 44; // .tree-transfer-panel-search padding + input\nconst PAGINATION_HEIGHT = 36; // .tree-transfer-panel-pagination\nconst MARGIN = 8; // 底部预留间距\nconst EXTRA_PADDING = 60; // 最后一行防遮挡预留空间\nconst MIN_SCROLL_Y = 100; // 表格最小可见高度(px)\n\n// ─────────────────────────────────────────────────────────────────────────────\n// TreeTransferPanel\n// ─────────────────────────────────────────────────────────────────────────────\n\nconst TreeTransferPanel = <T,>({\n dataSource,\n selectedRowKeys,\n onRowSelect,\n searchValue,\n setSearchValue,\n totalCount,\n title,\n showPagination = false,\n currentPage = 1,\n pageSize = DEFAULT_PAGE_SIZE,\n onPageChange,\n columns: customColumns,\n customRender,\n searchPlaceholder,\n}: TreeTransferPanelProps<T>) => {\n const panelRef = useRef<HTMLDivElement>(null);\n\n // 表格滚动高度(undefined 表示尚未计算完成,Table 自适应)\n const [tableScrollY, setTableScrollY] = useState<number | undefined>(undefined);\n\n // ── 动态计算表格可滚动高度 ─────────────────────────────────────────────────\n //\n // 计算逻辑:面板总高 - 固定头部/搜索/分页区域高度 = 表格可用高度。\n //\n // 修复说明:\n // 1. 初始值改为 undefined,避免 Table 短暂以 scroll.y=0 渲染导致高度坍塌。\n // 2. MutationObserver 回调中原使用 setTimeout(fn, 150),每次 DOM 变化都会\n // 入队新定时器;树形展开时大量 mutation 会堆积数十个 timer。\n // 修复:改用 requestAnimationFrame,每次只在下一帧执行一次计算。\n // 3. 移除 `dataSource` 出 deps:dataSource 每次 render 都是新数组引用,\n // 导致 observer 被频繁拆卸/重建。表格内容的 DOM 变化已由 MutationObserver 捕获,\n // 无需在数据变化时重建整个 effect。\n //\n useEffect(() => {\n if (!panelRef.current) return undefined;\n\n let rafId: number;\n\n const calculateScrollHeight = () => {\n const panelHeight = panelRef.current?.clientHeight ?? 0;\n const paginationOffset = showPagination ? PAGINATION_HEIGHT : 0;\n const available = panelHeight - HEADER_HEIGHT - SEARCH_HEIGHT - paginationOffset - MARGIN - EXTRA_PADDING;\n setTableScrollY(Math.max(available, MIN_SCROLL_Y));\n };\n\n const scheduleCalc = () => {\n cancelAnimationFrame(rafId);\n rafId = requestAnimationFrame(calculateScrollHeight);\n };\n\n // 初次计算\n scheduleCalc();\n\n // 监听面板容器尺寸(窗口 resize、flex 布局变化等)\n const resizeObserver = new ResizeObserver(scheduleCalc);\n resizeObserver.observe(panelRef.current);\n\n // 监听表格 DOM 变化(树形行展开 / 收起会增删行节点)\n const mutationObserver = new MutationObserver(scheduleCalc);\n const tableBody = panelRef.current.querySelector('.ant-table-tbody');\n if (tableBody) {\n mutationObserver.observe(tableBody, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['class'],\n });\n }\n\n return () => {\n cancelAnimationFrame(rafId);\n resizeObserver.disconnect();\n mutationObserver.disconnect();\n };\n }, [showPagination]); // 只在 showPagination 变化时重建(影响固定高度计算)\n\n // ── 默认列配置 ─────────────────────────────────────────────────────────────\n // 第一列:父节点显示 ID,子节点合并到名称列(colSpan:0)\n // 第二列:名称列,子节点 colSpan:2 占满整行\n const defaultColumns: ColumnsType<TreeTransferRow<T>> = useMemo(\n () => [\n {\n title: 'ID',\n dataIndex: 'key',\n key: 'id',\n width: '35%',\n onCell: (record: TreeTransferRow<T>) => (record.isParent ? {} : { colSpan: 0 }),\n render: (_: unknown, record: TreeTransferRow<T>) => (record.isParent ? String(record.key) : ''),\n },\n {\n title: '名称',\n dataIndex: 'data',\n key: 'name',\n width: '65%',\n ellipsis: { showTitle: false },\n onCell: (record: TreeTransferRow<T>) => {\n if (!record.isParent) return { colSpan: 2 };\n return customRender?.onCell ? customRender.onCell(record) : {};\n },\n render: (_: unknown, record: TreeTransferRow<T>, index: number) => {\n if (customRender?.cellRender) return customRender.cellRender(_, record, index);\n const content = JSON.stringify(record.data);\n if (content.length > 20) {\n return (\n <Tooltip placement='topLeft' title={content}>\n {content}\n </Tooltip>\n );\n }\n return content;\n },\n },\n ],\n [customRender],\n );\n\n // 优先使用调用方传入的列配置\n const columns = customColumns ?? defaultColumns;\n\n // ── 行选择配置 ─────────────────────────────────────────────────────────────\n // checkStrictly:false — 选中父节点时自动全选子节点\n const rowSelection = useMemo(\n () => ({\n selectedRowKeys,\n onChange: (selectedKeys: React.Key[], selectedRows: TreeTransferRow<T>[]) => {\n onRowSelect(selectedRows, selectedKeys);\n },\n checkStrictly: false,\n columnWidth: 50,\n }),\n [selectedRowKeys, onRowSelect],\n );\n\n // ── 搜索框 onChange ────────────────────────────────────────────────────────\n const handleSearchChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => setSearchValue(e.target.value),\n [setSearchValue],\n );\n\n // ── 渲染 ──────────────────────────────────────────────────────────────────\n\n return (\n <div ref={panelRef} className='tree-transfer-panel'>\n {/* 头部:标题和数量 */}\n <div className='tree-transfer-panel-header'>\n <Text>{title}</Text>\n <Text type='secondary'>({totalCount})</Text>\n </div>\n\n {/* 搜索框 */}\n <div className='tree-transfer-panel-search'>\n <Input\n placeholder={searchPlaceholder ?? '搜索'}\n prefix={<SearchOutlined />}\n value={searchValue}\n onChange={handleSearchChange}\n allowClear\n />\n </div>\n\n {/* 表格内容区域 */}\n <div className='tree-transfer-panel-content'>\n {dataSource.length > 0 ? (\n <Table\n rowKey='key'\n columns={columns}\n dataSource={dataSource}\n rowSelection={rowSelection}\n expandable={{\n childrenColumnName: 'children',\n defaultExpandAllRows: true,\n indentSize: 30,\n }}\n pagination={false}\n size='small'\n className='tree-transfer-table'\n // tableScrollY 未计算完成时不传 y,Table 自适应高度,避免初始高度坍塌\n scroll={tableScrollY !== undefined ? { y: tableScrollY } : undefined}\n />\n ) : (\n <Empty description='暂无数据' image={Empty.PRESENTED_IMAGE_SIMPLE} />\n )}\n </div>\n\n {/* 分页器:数据超过 1 页才显示 */}\n {showPagination && onPageChange && totalCount > pageSize && (\n <div className='tree-transfer-panel-pagination'>\n <Pagination\n current={currentPage}\n pageSize={pageSize}\n total={totalCount}\n showSizeChanger={false}\n showQuickJumper={false}\n showTitle={false}\n onChange={onPageChange}\n size='small'\n simple\n />\n </div>\n )}\n </div>\n );\n};\n\nexport default TreeTransferPanel;\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,151 @@
1
+ /*
2
+ * Licensed to the Apache Software Foundation (ASF) under one or more
3
+ * contributor license agreements. See the NOTICE file distributed with
4
+ * this work for additional information regarding copyright ownership.
5
+ * The ASF licenses this file to You under the Apache License, Version 2.0
6
+ * (the "License"); you may not use this file except in compliance with
7
+ * the License. You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ *
17
+ */
18
+
19
+ .tree-transfer-panel {
20
+ flex: 1;
21
+ display: flex;
22
+ flex-direction: column;
23
+ min-width: 350px;
24
+ max-width: 500px;
25
+ background: #fff;
26
+ border-radius: 4px;
27
+ overflow: hidden;
28
+
29
+ // 头部区域
30
+ .tree-transfer-panel-header {
31
+ display: flex;
32
+ justify-content: flex-start;
33
+ align-items: center;
34
+ padding-top: 12px;
35
+ padding-bottom: 12px;
36
+ padding-left: 17px;
37
+ background: #fafafa;
38
+ border-bottom: 1px solid #f0f0f0;
39
+ flex-shrink: 0;
40
+ gap: 8px;
41
+
42
+ .ant-typography {
43
+ margin-bottom: 0;
44
+ font-size: 14px;
45
+ font-weight: normal;
46
+ }
47
+ }
48
+
49
+ // 搜索区域
50
+ .tree-transfer-panel-search {
51
+ padding: 12px 16px;
52
+ flex-shrink: 0;
53
+ }
54
+
55
+ // 表格内容区域
56
+ .tree-transfer-panel-content {
57
+ flex: 1;
58
+ overflow: hidden;
59
+
60
+ .tree-transfer-table {
61
+ .ant-table {
62
+ font-size: 13px;
63
+ border: 1px solid #f0f0f0;
64
+
65
+ // 去掉列边线,保留行边线
66
+ .ant-table-tbody > tr > td {
67
+ border-left: none;
68
+ border-right: none;
69
+ }
70
+
71
+ // 表头样式
72
+ .ant-table-thead > tr > th {
73
+ padding: 8px 12px;
74
+ background: #fafafa;
75
+ font-weight: 500;
76
+ font-size: 13px;
77
+ border-left: none;
78
+ border-right: none;
79
+ border-bottom: 1px solid #f0f0f0;
80
+ }
81
+
82
+ // 单元格样式
83
+ .ant-table-tbody > tr > td {
84
+ padding: 8px 12px;
85
+ }
86
+
87
+ // 树形展开图标样式
88
+ .ant-table-row-expand-icon {
89
+ width: 16px;
90
+ height: 16px;
91
+ line-height: 14px;
92
+ font-size: 10px;
93
+ }
94
+
95
+ // 展开行背景色
96
+ .ant-table-expanded-row {
97
+ background: #fafafa;
98
+ }
99
+
100
+ // 强制子项缩进30px
101
+ .ant-table-tbody > tr.ant-table-row-level-1 > td {
102
+ padding-left: 32px !important;
103
+ }
104
+
105
+ // 第一层不缩进
106
+ .ant-table-tbody > tr.ant-table-row-level-0 > td {
107
+ padding-left: 12px;
108
+ }
109
+
110
+ // 复选框样式
111
+ .ant-checkbox-wrapper {
112
+ .ant-checkbox {
113
+ .ant-checkbox-inner {
114
+ width: 14px;
115
+ height: 14px;
116
+ }
117
+ }
118
+ }
119
+
120
+ // 空状态样式
121
+ .ant-empty {
122
+ padding: 40px 0;
123
+ }
124
+ }
125
+ }
126
+
127
+ // 空状态容器
128
+ .ant-empty {
129
+ height: 100%;
130
+ display: flex;
131
+ align-items: center;
132
+ justify-content: center;
133
+ }
134
+ }
135
+
136
+ // 分页器区域
137
+ .tree-transfer-panel-pagination {
138
+ padding: 12px 16px;
139
+ border-top: 1px solid #f0f0f0;
140
+ flex-shrink: 0;
141
+ display: flex;
142
+ justify-content: center;
143
+
144
+ .ant-space-compact {
145
+ .ant-btn {
146
+ min-width: 70px;
147
+ font-size: 12px;
148
+ }
149
+ }
150
+ }
151
+ }
@@ -0,0 +1,28 @@
1
+ /**
2
+ * TreeTransfer
3
+ *
4
+ * 树形表格穿梭框组件。支持:
5
+ * - 树形结构展示,父子联动选择(checkStrictly: false)
6
+ * - 前端分页 + 防抖搜索
7
+ * - 左右穿梭操作(含多级树正确迁移)
8
+ * - 自定义列配置和渲染
9
+ * - 完整的 TypeScript 泛型支持
10
+ *
11
+ * @template T - 行数据的自定义业务类型
12
+ *
13
+ * @example
14
+ * ```tsx
15
+ * <TreeTransfer
16
+ * leftDataSource={leftData}
17
+ * rightDataSource={rightData}
18
+ * leftTitle="待分配"
19
+ * rightTitle="已分配"
20
+ * onChange={({ leftData, rightData }) => { ... }}
21
+ * />
22
+ * ```
23
+ */
24
+ import React from 'react';
25
+ import { TreeTransferProps } from './types';
26
+ import './index.less';
27
+ declare function TreeTransfer<T>({ leftDataSource, rightDataSource, loading, leftTitle, rightTitle, pageSize, columns, customRender, searchFields, searchPlaceholder, onChange, }: TreeTransferProps<T>): React.JSX.Element;
28
+ export default TreeTransfer;