@yoka-ui/ui 1.0.1

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 (488) hide show
  1. package/@Docs-yoka/exports.generated.md +93 -0
  2. package/@Docs-yoka/llms.txt +23 -0
  3. package/README.md +113 -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 +733 -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 +16 -0
  28. package/dist/es/business/AiChat/sse.js +171 -0
  29. package/dist/es/business/AiChat/sse.js.map +7 -0
  30. package/dist/es/business/AiChat/type.d.ts +156 -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 +268 -0
  35. package/dist/es/business/AiChat/useAiChat.js.map +7 -0
  36. package/dist/es/business/AiChat/useTaskWorkflow.d.ts +25 -0
  37. package/dist/es/business/AiChat/useTaskWorkflow.js +196 -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/YkDateRangePicker.mdx +180 -0
  131. package/dist/es/components/YkDateRangePicker/index.d.ts +61 -0
  132. package/dist/es/components/YkDateRangePicker/index.js +317 -0
  133. package/dist/es/components/YkDateRangePicker/index.js.map +7 -0
  134. package/dist/es/components/YkDateRangePicker/index.module.less +304 -0
  135. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.d.ts +16 -0
  136. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.js +193 -0
  137. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.js.map +7 -0
  138. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSRange.d.ts +31 -0
  139. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSRange.js +576 -0
  140. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSRange.js.map +7 -0
  141. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.d.ts +16 -0
  142. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.js +55 -0
  143. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.js.map +7 -0
  144. package/dist/es/components/YkRangeDateWithVS/index.d.ts +62 -0
  145. package/dist/es/components/YkRangeDateWithVS/index.js +130 -0
  146. package/dist/es/components/YkRangeDateWithVS/index.js.map +7 -0
  147. package/dist/es/components/YkRangeDateWithVS/index.module.less +566 -0
  148. package/dist/es/components/YkRangeDateWithVS/styles.d.ts +2 -0
  149. package/dist/es/components/YkRangeDateWithVS/styles.js +18 -0
  150. package/dist/es/components/YkRangeDateWithVS/styles.js.map +7 -0
  151. package/dist/es/components/YkRangeDateWithVS/typing.d.ts +15 -0
  152. package/dist/es/components/YkRangeTimeWithRecent/constants.d.ts +48 -0
  153. package/dist/es/components/YkRangeTimeWithRecent/constants.js +288 -0
  154. package/dist/es/components/YkRangeTimeWithRecent/constants.js.map +7 -0
  155. package/dist/es/components/YkRangeTimeWithRecent/index.d.ts +26 -0
  156. package/dist/es/components/YkRangeTimeWithRecent/index.js +647 -0
  157. package/dist/es/components/YkRangeTimeWithRecent/index.js.map +7 -0
  158. package/dist/es/components/YkRangeTimeWithRecent/index.module.less +263 -0
  159. package/dist/es/creative/ButtonRadioWithInfo/index.d.ts +17 -0
  160. package/dist/es/creative/ButtonRadioWithInfo/index.js +103 -0
  161. package/dist/es/creative/ButtonRadioWithInfo/index.js.map +7 -0
  162. package/dist/es/creative/ButtonRadioWithInfo/index.less +106 -0
  163. package/dist/es/creative/ButtonWithProgress/index.d.ts +11 -0
  164. package/dist/es/creative/ButtonWithProgress/index.js +79 -0
  165. package/dist/es/creative/ButtonWithProgress/index.js.map +7 -0
  166. package/dist/es/creative/ButtonWithProgress/index.less +66 -0
  167. package/dist/es/global.less +12 -0
  168. package/dist/es/index.d.ts +43 -0
  169. package/dist/es/index.js +87 -0
  170. package/dist/es/index.js.map +7 -0
  171. package/dist/es/index.less +35 -0
  172. package/dist/es/layout/FlexGrid/index.d.ts +25 -0
  173. package/dist/es/layout/FlexGrid/index.js +63 -0
  174. package/dist/es/layout/FlexGrid/index.js.map +7 -0
  175. package/dist/es/layout/YkContainer/index.d.ts +27 -0
  176. package/dist/es/layout/YkContainer/index.js +79 -0
  177. package/dist/es/layout/YkContainer/index.js.map +7 -0
  178. package/dist/es/layout/YkDrawer/index.d.ts +22 -0
  179. package/dist/es/layout/YkDrawer/index.js +160 -0
  180. package/dist/es/layout/YkDrawer/index.js.map +7 -0
  181. package/dist/es/layout/YkDrawer/index.module.less +45 -0
  182. package/dist/es/ui/LabelSelect/demo.d.ts +3 -0
  183. package/dist/es/ui/LabelSelect/demo.js +83 -0
  184. package/dist/es/ui/LabelSelect/demo.js.map +7 -0
  185. package/dist/es/ui/LabelSelect/index.d.ts +41 -0
  186. package/dist/es/ui/LabelSelect/index.js +136 -0
  187. package/dist/es/ui/LabelSelect/index.js.map +7 -0
  188. package/dist/es/ui/LogicOperator/index.d.ts +10 -0
  189. package/dist/es/ui/LogicOperator/index.js +12 -0
  190. package/dist/es/ui/LogicOperator/index.js.map +7 -0
  191. package/dist/es/ui/LogicOperator/index.module.less +97 -0
  192. package/dist/es/ui/YkButton/index.d.ts +9 -0
  193. package/dist/es/ui/YkButton/index.js +59 -0
  194. package/dist/es/ui/YkButton/index.js.map +7 -0
  195. package/dist/es/ui/YkCard/index.d.ts +4 -0
  196. package/dist/es/ui/YkCard/index.js +79 -0
  197. package/dist/es/ui/YkCard/index.js.map +7 -0
  198. package/dist/es/ui/YkCard/index.module.less +30 -0
  199. package/dist/es/ui/YkCheckbox/index.d.ts +4 -0
  200. package/dist/es/ui/YkCheckbox/index.js +45 -0
  201. package/dist/es/ui/YkCheckbox/index.js.map +7 -0
  202. package/dist/es/ui/YkCheckbox/index.module.less +22 -0
  203. package/dist/es/ui/YkDescriptions/index.d.ts +4 -0
  204. package/dist/es/ui/YkDescriptions/index.js +41 -0
  205. package/dist/es/ui/YkDescriptions/index.js.map +7 -0
  206. package/dist/es/ui/YkPagination/index.d.ts +4 -0
  207. package/dist/es/ui/YkPagination/index.js +63 -0
  208. package/dist/es/ui/YkPagination/index.js.map +7 -0
  209. package/dist/es/ui/YkPagination/index.module.less +22 -0
  210. package/dist/es/ui/YkRadio/index.d.ts +4 -0
  211. package/dist/es/ui/YkRadio/index.js +51 -0
  212. package/dist/es/ui/YkRadio/index.js.map +7 -0
  213. package/dist/es/ui/YkRadio/index.module.less +22 -0
  214. package/dist/es/ui/YkRadioBtnSpecial/index.d.ts +15 -0
  215. package/dist/es/ui/YkRadioBtnSpecial/index.js +23 -0
  216. package/dist/es/ui/YkRadioBtnSpecial/index.js.map +7 -0
  217. package/dist/es/ui/YkRadioBtnSpecial/index.module.less +112 -0
  218. package/dist/es/ui/YkSegmented/index.d.ts +4 -0
  219. package/dist/es/ui/YkSegmented/index.js +41 -0
  220. package/dist/es/ui/YkSegmented/index.js.map +7 -0
  221. package/dist/es/ui/YkSelect/index.d.ts +7 -0
  222. package/dist/es/ui/YkSelect/index.js +54 -0
  223. package/dist/es/ui/YkSelect/index.js.map +7 -0
  224. package/dist/es/ui/YkSpin/index.d.ts +4 -0
  225. package/dist/es/ui/YkSpin/index.js +41 -0
  226. package/dist/es/ui/YkSpin/index.js.map +7 -0
  227. package/dist/es/ui/YkStatistic/index.d.ts +4 -0
  228. package/dist/es/ui/YkStatistic/index.js +41 -0
  229. package/dist/es/ui/YkStatistic/index.js.map +7 -0
  230. package/dist/es/ui/YkSwitch/index.d.ts +4 -0
  231. package/dist/es/ui/YkSwitch/index.js +51 -0
  232. package/dist/es/ui/YkSwitch/index.js.map +7 -0
  233. package/dist/es/ui/YkTabs/index.d.ts +12 -0
  234. package/dist/es/ui/YkTabs/index.js +75 -0
  235. package/dist/es/ui/YkTabs/index.js.map +7 -0
  236. package/dist/es/ui/YkTabs/index.module.less +11 -0
  237. package/dist/es/ui/YkTooltip/index.d.ts +4 -0
  238. package/dist/es/ui/YkTooltip/index.js +50 -0
  239. package/dist/es/ui/YkTooltip/index.js.map +7 -0
  240. package/dist/es/utils/styleUtils.d.ts +18 -0
  241. package/dist/es/utils/styleUtils.js +57 -0
  242. package/dist/es/utils/styleUtils.js.map +7 -0
  243. package/dist/es/utils/ykStorybookDoc.d.ts +17 -0
  244. package/dist/es/utils/ykStorybookDoc.js +18 -0
  245. package/dist/es/utils/ykStorybookDoc.js.map +7 -0
  246. package/dist/lib/Themes/InputTheme/index.d.ts +6 -0
  247. package/dist/lib/Themes/InputTheme/index.js +52 -0
  248. package/dist/lib/Themes/InputTheme/index.js.map +7 -0
  249. package/dist/lib/Themes/TableTheme/index.d.ts +7 -0
  250. package/dist/lib/Themes/TableTheme/index.js +61 -0
  251. package/dist/lib/Themes/TableTheme/index.js.map +7 -0
  252. package/dist/lib/Themes/TableTheme/index.less +46 -0
  253. package/dist/lib/assets/image/YKUI-logo.png +0 -0
  254. package/dist/lib/assets/less/ant-reset.less +402 -0
  255. package/dist/lib/assets/less/index.less +1 -0
  256. package/dist/lib/assets/less/variables.less +16 -0
  257. package/dist/lib/business/AiChat/MarkdownRender.d.ts +9 -0
  258. package/dist/lib/business/AiChat/MarkdownRender.js +102 -0
  259. package/dist/lib/business/AiChat/MarkdownRender.js.map +7 -0
  260. package/dist/lib/business/AiChat/index.d.ts +16 -0
  261. package/dist/lib/business/AiChat/index.js +723 -0
  262. package/dist/lib/business/AiChat/index.js.map +7 -0
  263. package/dist/lib/business/AiChat/intentRecognizer.d.ts +33 -0
  264. package/dist/lib/business/AiChat/intentRecognizer.js +193 -0
  265. package/dist/lib/business/AiChat/intentRecognizer.js.map +7 -0
  266. package/dist/lib/business/AiChat/navigationManager.d.ts +94 -0
  267. package/dist/lib/business/AiChat/navigationManager.js +214 -0
  268. package/dist/lib/business/AiChat/navigationManager.js.map +7 -0
  269. package/dist/lib/business/AiChat/sse.d.ts +16 -0
  270. package/dist/lib/business/AiChat/sse.js +171 -0
  271. package/dist/lib/business/AiChat/sse.js.map +7 -0
  272. package/dist/lib/business/AiChat/type.d.ts +156 -0
  273. package/dist/lib/business/AiChat/type.js +18 -0
  274. package/dist/lib/business/AiChat/type.js.map +7 -0
  275. package/dist/lib/business/AiChat/useAiChat.d.ts +2 -0
  276. package/dist/lib/business/AiChat/useAiChat.js +252 -0
  277. package/dist/lib/business/AiChat/useAiChat.js.map +7 -0
  278. package/dist/lib/business/AiChat/useTaskWorkflow.d.ts +25 -0
  279. package/dist/lib/business/AiChat/useTaskWorkflow.js +182 -0
  280. package/dist/lib/business/AiChat/useTaskWorkflow.js.map +7 -0
  281. package/dist/lib/business/DrawerPageInfo/index.d.ts +35 -0
  282. package/dist/lib/business/DrawerPageInfo/index.js +163 -0
  283. package/dist/lib/business/DrawerPageInfo/index.js.map +7 -0
  284. package/dist/lib/business/DrawerPageInfo/index.module.less +87 -0
  285. package/dist/lib/business/DrawerPageInfo/test.png +0 -0
  286. package/dist/lib/business/Editor/index.d.ts +11 -0
  287. package/dist/lib/business/Editor/index.js +99 -0
  288. package/dist/lib/business/Editor/index.js.map +7 -0
  289. package/dist/lib/business/Editor/index.less +31 -0
  290. package/dist/lib/business/Empty/empty.png +0 -0
  291. package/dist/lib/business/Empty/index.d.ts +19 -0
  292. package/dist/lib/business/Empty/index.js +65 -0
  293. package/dist/lib/business/Empty/index.js.map +7 -0
  294. package/dist/lib/business/ModCommonFilter/assets/images/empty.png +0 -0
  295. package/dist/lib/business/ModCommonFilter/components/FilterButton/IconClose.d.ts +13 -0
  296. package/dist/lib/business/ModCommonFilter/components/FilterButton/IconClose.js +50 -0
  297. package/dist/lib/business/ModCommonFilter/components/FilterButton/IconClose.js.map +7 -0
  298. package/dist/lib/business/ModCommonFilter/components/FilterButton/IconXiala.d.ts +13 -0
  299. package/dist/lib/business/ModCommonFilter/components/FilterButton/IconXiala.js +50 -0
  300. package/dist/lib/business/ModCommonFilter/components/FilterButton/IconXiala.js.map +7 -0
  301. package/dist/lib/business/ModCommonFilter/components/FilterButton/index.d.ts +25 -0
  302. package/dist/lib/business/ModCommonFilter/components/FilterButton/index.js +60 -0
  303. package/dist/lib/business/ModCommonFilter/components/FilterButton/index.js.map +7 -0
  304. package/dist/lib/business/ModCommonFilter/components/FilterButton/index.module.less +97 -0
  305. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Category.d.ts +18 -0
  306. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Category.js +69 -0
  307. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Category.js.map +7 -0
  308. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Content.d.ts +37 -0
  309. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Content.js +211 -0
  310. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Content.js.map +7 -0
  311. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Selected.d.ts +26 -0
  312. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Selected.js +97 -0
  313. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Selected.js.map +7 -0
  314. package/dist/lib/business/ModCommonFilter/components/PopoverContent/index.d.ts +51 -0
  315. package/dist/lib/business/ModCommonFilter/components/PopoverContent/index.js +101 -0
  316. package/dist/lib/business/ModCommonFilter/components/PopoverContent/index.js.map +7 -0
  317. package/dist/lib/business/ModCommonFilter/components/PopoverContent/index.module.less +260 -0
  318. package/dist/lib/business/ModCommonFilter/index.d.ts +53 -0
  319. package/dist/lib/business/ModCommonFilter/index.js +143 -0
  320. package/dist/lib/business/ModCommonFilter/index.js.map +7 -0
  321. package/dist/lib/business/ModCommonFilter/index.module.less +7 -0
  322. package/dist/lib/business/ModCommonFilter/typing.d.ts +20 -0
  323. package/dist/lib/business/ModCommonFilter/typing.js +18 -0
  324. package/dist/lib/business/ModCommonFilter/typing.js.map +7 -0
  325. package/dist/lib/business/YkPorjectSelect/icon-product.png +0 -0
  326. package/dist/lib/business/YkPorjectSelect/index.d.ts +51 -0
  327. package/dist/lib/business/YkPorjectSelect/index.js +235 -0
  328. package/dist/lib/business/YkPorjectSelect/index.js.map +7 -0
  329. package/dist/lib/business/YkPorjectSelect/index.module.less +334 -0
  330. package/dist/lib/business/YkPorjectSelect/product-close.png +0 -0
  331. package/dist/lib/components/Clock/index.d.ts +19 -0
  332. package/dist/lib/components/Clock/index.js +85 -0
  333. package/dist/lib/components/Clock/index.js.map +7 -0
  334. package/dist/lib/components/DebounceInput/index.d.ts +16 -0
  335. package/dist/lib/components/DebounceInput/index.js +107 -0
  336. package/dist/lib/components/DebounceInput/index.js.map +7 -0
  337. package/dist/lib/components/DebounceInput/index.module.less +23 -0
  338. package/dist/lib/components/MultipleSelect/index.d.ts +23 -0
  339. package/dist/lib/components/MultipleSelect/index.js +279 -0
  340. package/dist/lib/components/MultipleSelect/index.js.map +7 -0
  341. package/dist/lib/components/MultipleSelect/index.module.less +174 -0
  342. package/dist/lib/components/NumericInput/index.d.ts +19 -0
  343. package/dist/lib/components/NumericInput/index.js +67 -0
  344. package/dist/lib/components/NumericInput/index.js.map +7 -0
  345. package/dist/lib/components/RefreshButton/index.d.ts +8 -0
  346. package/dist/lib/components/RefreshButton/index.js +51 -0
  347. package/dist/lib/components/RefreshButton/index.js.map +7 -0
  348. package/dist/lib/components/SearchWithHistory/index.d.ts +21 -0
  349. package/dist/lib/components/SearchWithHistory/index.js +145 -0
  350. package/dist/lib/components/SearchWithHistory/index.js.map +7 -0
  351. package/dist/lib/components/SearchWithHistory/index.module.less +64 -0
  352. package/dist/lib/components/TextWithInput/index.d.ts +15 -0
  353. package/dist/lib/components/TextWithInput/index.js +65 -0
  354. package/dist/lib/components/TextWithInput/index.js.map +7 -0
  355. package/dist/lib/components/TextWithToolTip/index.d.ts +17 -0
  356. package/dist/lib/components/TextWithToolTip/index.js +134 -0
  357. package/dist/lib/components/TextWithToolTip/index.js.map +7 -0
  358. package/dist/lib/components/TreeTransfer/components/TreeTransferPanel/index.d.ts +28 -0
  359. package/dist/lib/components/TreeTransfer/components/TreeTransferPanel/index.js +191 -0
  360. package/dist/lib/components/TreeTransfer/components/TreeTransferPanel/index.js.map +7 -0
  361. package/dist/lib/components/TreeTransfer/components/TreeTransferPanel/index.less +151 -0
  362. package/dist/lib/components/TreeTransfer/index.d.ts +28 -0
  363. package/dist/lib/components/TreeTransfer/index.js +214 -0
  364. package/dist/lib/components/TreeTransfer/index.js.map +7 -0
  365. package/dist/lib/components/TreeTransfer/index.less +69 -0
  366. package/dist/lib/components/TreeTransfer/types.d.ts +122 -0
  367. package/dist/lib/components/TreeTransfer/types.js +30 -0
  368. package/dist/lib/components/TreeTransfer/types.js.map +7 -0
  369. package/dist/lib/components/TreeTransfer/utils/index.d.ts +120 -0
  370. package/dist/lib/components/TreeTransfer/utils/index.js +208 -0
  371. package/dist/lib/components/TreeTransfer/utils/index.js.map +7 -0
  372. package/dist/lib/components/YkDateRangePicker/YkDateRangePicker.mdx +180 -0
  373. package/dist/lib/components/YkDateRangePicker/index.d.ts +61 -0
  374. package/dist/lib/components/YkDateRangePicker/index.js +338 -0
  375. package/dist/lib/components/YkDateRangePicker/index.js.map +7 -0
  376. package/dist/lib/components/YkDateRangePicker/index.module.less +304 -0
  377. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.d.ts +16 -0
  378. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.js +223 -0
  379. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.js.map +7 -0
  380. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSRange.d.ts +31 -0
  381. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSRange.js +587 -0
  382. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSRange.js.map +7 -0
  383. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.d.ts +16 -0
  384. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.js +85 -0
  385. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.js.map +7 -0
  386. package/dist/lib/components/YkRangeDateWithVS/index.d.ts +62 -0
  387. package/dist/lib/components/YkRangeDateWithVS/index.js +140 -0
  388. package/dist/lib/components/YkRangeDateWithVS/index.js.map +7 -0
  389. package/dist/lib/components/YkRangeDateWithVS/index.module.less +566 -0
  390. package/dist/lib/components/YkRangeDateWithVS/styles.d.ts +2 -0
  391. package/dist/lib/components/YkRangeDateWithVS/styles.js +48 -0
  392. package/dist/lib/components/YkRangeDateWithVS/styles.js.map +7 -0
  393. package/dist/lib/components/YkRangeDateWithVS/typing.d.ts +15 -0
  394. package/dist/lib/components/YkRangeTimeWithRecent/constants.d.ts +48 -0
  395. package/dist/lib/components/YkRangeTimeWithRecent/constants.js +333 -0
  396. package/dist/lib/components/YkRangeTimeWithRecent/constants.js.map +7 -0
  397. package/dist/lib/components/YkRangeTimeWithRecent/index.d.ts +26 -0
  398. package/dist/lib/components/YkRangeTimeWithRecent/index.js +647 -0
  399. package/dist/lib/components/YkRangeTimeWithRecent/index.js.map +7 -0
  400. package/dist/lib/components/YkRangeTimeWithRecent/index.module.less +263 -0
  401. package/dist/lib/creative/ButtonRadioWithInfo/index.d.ts +17 -0
  402. package/dist/lib/creative/ButtonRadioWithInfo/index.js +102 -0
  403. package/dist/lib/creative/ButtonRadioWithInfo/index.js.map +7 -0
  404. package/dist/lib/creative/ButtonRadioWithInfo/index.less +106 -0
  405. package/dist/lib/creative/ButtonWithProgress/index.d.ts +11 -0
  406. package/dist/lib/creative/ButtonWithProgress/index.js +70 -0
  407. package/dist/lib/creative/ButtonWithProgress/index.js.map +7 -0
  408. package/dist/lib/creative/ButtonWithProgress/index.less +66 -0
  409. package/dist/lib/global.less +12 -0
  410. package/dist/lib/index.d.ts +43 -0
  411. package/dist/lib/index.js +161 -0
  412. package/dist/lib/index.js.map +7 -0
  413. package/dist/lib/index.less +35 -0
  414. package/dist/lib/layout/FlexGrid/index.d.ts +25 -0
  415. package/dist/lib/layout/FlexGrid/index.js +77 -0
  416. package/dist/lib/layout/FlexGrid/index.js.map +7 -0
  417. package/dist/lib/layout/YkContainer/index.d.ts +27 -0
  418. package/dist/lib/layout/YkContainer/index.js +79 -0
  419. package/dist/lib/layout/YkContainer/index.js.map +7 -0
  420. package/dist/lib/layout/YkDrawer/index.d.ts +22 -0
  421. package/dist/lib/layout/YkDrawer/index.js +152 -0
  422. package/dist/lib/layout/YkDrawer/index.js.map +7 -0
  423. package/dist/lib/layout/YkDrawer/index.module.less +45 -0
  424. package/dist/lib/ui/LabelSelect/demo.d.ts +3 -0
  425. package/dist/lib/ui/LabelSelect/demo.js +113 -0
  426. package/dist/lib/ui/LabelSelect/demo.js.map +7 -0
  427. package/dist/lib/ui/LabelSelect/index.d.ts +41 -0
  428. package/dist/lib/ui/LabelSelect/index.js +124 -0
  429. package/dist/lib/ui/LabelSelect/index.js.map +7 -0
  430. package/dist/lib/ui/LogicOperator/index.d.ts +10 -0
  431. package/dist/lib/ui/LogicOperator/index.js +42 -0
  432. package/dist/lib/ui/LogicOperator/index.js.map +7 -0
  433. package/dist/lib/ui/LogicOperator/index.module.less +97 -0
  434. package/dist/lib/ui/YkButton/index.d.ts +9 -0
  435. package/dist/lib/ui/YkButton/index.js +55 -0
  436. package/dist/lib/ui/YkButton/index.js.map +7 -0
  437. package/dist/lib/ui/YkCard/index.d.ts +4 -0
  438. package/dist/lib/ui/YkCard/index.js +76 -0
  439. package/dist/lib/ui/YkCard/index.js.map +7 -0
  440. package/dist/lib/ui/YkCard/index.module.less +30 -0
  441. package/dist/lib/ui/YkCheckbox/index.d.ts +4 -0
  442. package/dist/lib/ui/YkCheckbox/index.js +42 -0
  443. package/dist/lib/ui/YkCheckbox/index.js.map +7 -0
  444. package/dist/lib/ui/YkCheckbox/index.module.less +22 -0
  445. package/dist/lib/ui/YkDescriptions/index.d.ts +4 -0
  446. package/dist/lib/ui/YkDescriptions/index.js +41 -0
  447. package/dist/lib/ui/YkDescriptions/index.js.map +7 -0
  448. package/dist/lib/ui/YkPagination/index.d.ts +4 -0
  449. package/dist/lib/ui/YkPagination/index.js +60 -0
  450. package/dist/lib/ui/YkPagination/index.js.map +7 -0
  451. package/dist/lib/ui/YkPagination/index.module.less +22 -0
  452. package/dist/lib/ui/YkRadio/index.d.ts +4 -0
  453. package/dist/lib/ui/YkRadio/index.js +51 -0
  454. package/dist/lib/ui/YkRadio/index.js.map +7 -0
  455. package/dist/lib/ui/YkRadio/index.module.less +22 -0
  456. package/dist/lib/ui/YkRadioBtnSpecial/index.d.ts +15 -0
  457. package/dist/lib/ui/YkRadioBtnSpecial/index.js +53 -0
  458. package/dist/lib/ui/YkRadioBtnSpecial/index.js.map +7 -0
  459. package/dist/lib/ui/YkRadioBtnSpecial/index.module.less +112 -0
  460. package/dist/lib/ui/YkSegmented/index.d.ts +4 -0
  461. package/dist/lib/ui/YkSegmented/index.js +41 -0
  462. package/dist/lib/ui/YkSegmented/index.js.map +7 -0
  463. package/dist/lib/ui/YkSelect/index.d.ts +7 -0
  464. package/dist/lib/ui/YkSelect/index.js +54 -0
  465. package/dist/lib/ui/YkSelect/index.js.map +7 -0
  466. package/dist/lib/ui/YkSpin/index.d.ts +4 -0
  467. package/dist/lib/ui/YkSpin/index.js +41 -0
  468. package/dist/lib/ui/YkSpin/index.js.map +7 -0
  469. package/dist/lib/ui/YkStatistic/index.d.ts +4 -0
  470. package/dist/lib/ui/YkStatistic/index.js +41 -0
  471. package/dist/lib/ui/YkStatistic/index.js.map +7 -0
  472. package/dist/lib/ui/YkSwitch/index.d.ts +4 -0
  473. package/dist/lib/ui/YkSwitch/index.js +51 -0
  474. package/dist/lib/ui/YkSwitch/index.js.map +7 -0
  475. package/dist/lib/ui/YkTabs/index.d.ts +12 -0
  476. package/dist/lib/ui/YkTabs/index.js +70 -0
  477. package/dist/lib/ui/YkTabs/index.js.map +7 -0
  478. package/dist/lib/ui/YkTabs/index.module.less +11 -0
  479. package/dist/lib/ui/YkTooltip/index.d.ts +4 -0
  480. package/dist/lib/ui/YkTooltip/index.js +45 -0
  481. package/dist/lib/ui/YkTooltip/index.js.map +7 -0
  482. package/dist/lib/utils/styleUtils.d.ts +18 -0
  483. package/dist/lib/utils/styleUtils.js +84 -0
  484. package/dist/lib/utils/styleUtils.js.map +7 -0
  485. package/dist/lib/utils/ykStorybookDoc.d.ts +17 -0
  486. package/dist/lib/utils/ykStorybookDoc.js +41 -0
  487. package/dist/lib/utils/ykStorybookDoc.js.map +7 -0
  488. package/package.json +148 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/components/YkRangeTimeWithRecent/index.tsx"],
4
+ "sourcesContent": ["/**\n * 组件名称:YkRangeTimeWithRecent\n * 组件描述:时间范围 + 动态「最近 N 天」等能力的时间筛选(Range + Recent)\n * 组件使用场景:在需要选择时间范围的场景中使用,如筛选、排序等\n * 组件参数说明:\n * - value: {\n * time_range: [string, string] | null | undefined;\n * recent_day: string | null | undefined;\n * time_type: number | undefined;\n * }\n * - timeTypes: 时间类型选项\n * - onChange: 时间范围变化回调\n * - placement: 弹层位置\n * - placeholder: 占位符\n * - noTimeFilter: 是否禁用动态时间\n * - noIcon: 是否禁用图标\n */\nimport { ClockCircleOutlined } from '@ant-design/icons';\nimport {\n Button,\n ConfigProvider,\n DatePicker,\n DatePickerProps,\n Divider,\n InputNumber,\n message,\n Popover,\n Radio,\n Select,\n Tabs,\n} from 'antd';\nimport datePickerZhCN from 'antd/es/date-picker/locale/zh_CN';\nimport zhCN from 'antd/locale/zh_CN';\nimport classNames from 'classnames';\nimport dayjs, { Dayjs } from 'dayjs';\nimport 'dayjs/locale/zh-cn';\nimport isoWeek from 'dayjs/plugin/isoWeek';\nimport weekOfYear from 'dayjs/plugin/weekOfYear';\nimport React, { FC, useEffect, useMemo, useRef, useState } from 'react';\nimport { endTimeOptions, optionsMap, pickerMap, recentOptionsMap, startTimeOptions } from './constants';\nimport styles from './index.module.less';\n\ndayjs.extend(isoWeek);\ndayjs.extend(weekOfYear);\ndayjs.locale({\n ...dayjs.Ls['zh-cn'],\n weekStart: 1,\n});\n\nconst { RangePicker } = DatePicker;\n\nexport type YkRangeTimeWithRecentTimeType = '合计' | '按小时' | '按天' | '按周' | '按月';\nexport interface YkRangeTimeWithRecentProps {\n style?: React.CSSProperties;\n clearable?: boolean;\n value: {\n time_range: [string, string] | null | undefined;\n recent_day: string | null | undefined;\n time_type: number | undefined;\n };\n timeTypes?: YkRangeTimeWithRecentTimeType[];\n onChange: (value: {\n time_range: [string, string] | null | undefined;\n recent_day: string | null | undefined;\n time_type: number | undefined;\n }) => void;\n placement?: 'bottomLeft' | 'bottomRight' | 'topLeft' | 'topRight';\n placeholder?: string | React.ReactNode;\n noTimeFilter?: boolean;\n noIcon?: boolean;\n disabled?: boolean;\n dateFieldOptionName?: string;\n}\n\ntype RangeValue = [string, string] | null;\n\nconst timeTypeKeys = {\n 0: '合计',\n 1: '按小时',\n 2: '按天',\n 3: '按周',\n 4: '按月',\n};\n\n/** 未提供「合计」Tab 时,不应使用 time_type 0,回落为按天 */\nfunction normalizeTimeTypeForTimeTypes(\n timeType: number | undefined,\n timeTypes: YkRangeTimeWithRecentTimeType[] | undefined,\n): number {\n const raw = typeof timeType === 'number' ? timeType : 2;\n if (Array.isArray(timeTypes) && !timeTypes.includes('合计') && raw === 0) {\n return 2;\n }\n return raw;\n}\n\nconst YkRangeTimeWithRecent: FC<YkRangeTimeWithRecentProps> = ({\n value,\n onChange,\n timeTypes,\n style,\n clearable,\n placement = 'bottomLeft',\n placeholder = '开始时间 ~ 结束时间',\n noTimeFilter = false,\n noIcon = false,\n dateFieldOptionName = '',\n}) => {\n // 格式化时间\n const formatTime = (time: string) => {\n switch (normalizeTimeTypeForTimeTypes(value.time_type, timeTypes)) {\n case 1: // 按小时\n return dayjs(time).format('YYYY-MM-DD HH:mm');\n case 3: // 按周\n return dayjs(time).format('YYYY-MM-DD');\n case 4: // 按月\n return dayjs(time).format('YYYY-MM');\n case 2: // 按天\n case 0: // 合计\n default:\n return dayjs(time).format('YYYY-MM-DD');\n }\n };\n\n const [open, setOpen] = useState(false);\n /** 外层 Popover 与内层 RangePicker 均基于 rc-trigger,嵌套时外层常收不到「点击外部」;用捕获阶段统一判定 */\n const triggerWrapRef = useRef<HTMLDivElement>(null);\n const [active, setActive] = useState<'start' | 'end'>('start');\n // 是否静态时间 默认是静态时间\n const [timeFilterType, setTimeFilterType] = useState(0);\n // 弹层内时间\n const [localValue, setLocalValue] = useState<[Dayjs, Dayjs] | null>(null);\n // dayjs.isoWeek存在跨年问题,d=2025-12-30时,d.isoWeekYear()=2026\n const [startWeekDate, setStartWeekDate] = useState<Dayjs | null>(null);\n const [startMonth, setStartMonth] = useState<Dayjs | null>(null);\n // 弹层内时间类型\n const [localTimeType, setLocalTimeType] = useState<number | undefined>(() =>\n normalizeTimeTypeForTimeTypes(value?.time_type, timeTypes),\n );\n // 弹层内时间类型名称\n const localTimeTypeName = useMemo(() => {\n const type = typeof localTimeType === 'number' ? localTimeType : 2;\n return timeTypeKeys[type as keyof typeof timeTypeKeys] || timeTypeKeys[2];\n }, [localTimeType]);\n\n const getFormattedTimeRange = (recent: number, type: 'start' | 'end') => {\n const today = dayjs();\n switch (localTimeType) {\n case 1: // 按小时\n return today.subtract(recent, 'day').format(`YYYY-MM-DD ${type === 'start' ? '00:00' : '23:59'}`);\n case 3: // 按周\n return `${today.subtract(recent, 'week').format('YYYY')}年-${today.subtract(recent, 'week').week()}周 (${today.subtract(recent, 'week').startOf('week').format('MM.DD')}-${today.subtract(recent, 'week').endOf('week').format('MM.DD')})`;\n case 4: // 按月\n return today.subtract(recent, 'month').format('YYYY-MM月');\n default:\n return today.subtract(recent, 'day').format('YYYY-MM-DD');\n }\n };\n\n // 外部格式化\n const getFormattedRecentTime = (recent: number, type: 'start' | 'end') => {\n const today = dayjs();\n switch (localTimeType) {\n case 1: // 按小时\n return today.subtract(recent, 'day').format(`YYYY-MM-DD ${type === 'start' ? '00:00' : '23:59'}`);\n case 3: // 按周\n return `${today.subtract(recent, 'week').format('YYYY')}年-${today.subtract(recent, 'week').week()}周`;\n case 4: // 按月\n return today.subtract(recent, 'month').format('YYYY-MM月');\n default:\n return today.subtract(recent, 'day').format('YYYY-MM-DD');\n }\n };\n\n // 动态时间\n const [recentStart, setRecentStart] = useState<number>(0);\n const [recentEnd, setRecentEnd] = useState<number>(0);\n\n useEffect(() => {\n setRecentStart(value?.recent_day ? Number(value.recent_day.split('|')[1]) : 0);\n setRecentEnd(value?.recent_day ? Number(value.recent_day.split('|')[2]) : 0);\n }, [value?.recent_day]);\n\n // 显示时间\n const showRangeTime = useMemo(() => {\n if (value?.time_range && value?.time_range.length === 2) {\n return formatTime(value.time_range[0]) + ' ~ ' + formatTime(value.time_range[1]);\n } else if (value?.recent_day) {\n const [type, start, end] = value.recent_day.split('|');\n let showTimeText = '';\n const unit = type === 'D' ? '天' : type === 'W' ? '周' : '月';\n const options = recentOptionsMap[localTimeType || 2].options;\n if (options.map((m) => m.value).includes(value.recent_day)) {\n showTimeText = options.find((m) => m.value === value.recent_day)?.label || '';\n } else if (end === '0') {\n showTimeText = '近' + (Number(start) - Number(end) + 1) + unit;\n } else {\n showTimeText = start + unit + '前 ~ ' + end + unit + '前';\n }\n // 合计、按小时、按天 里本周上周本月上月特殊处理\n if (\n value.time_type !== undefined &&\n [0, 1, 2].includes(normalizeTimeTypeForTimeTypes(value.time_type, timeTypes)) &&\n (value.recent_day.split('|')[0] === 'W' || value.recent_day.split('|')[0] === 'M')\n ) {\n const today = dayjs();\n const lastDayOfLastMonth = today.subtract(1, 'month').endOf('month');\n const daysToLastMonthStart = today.diff(lastDayOfLastMonth.startOf('month'), 'day');\n const daysToLastMonthEnd = today.diff(lastDayOfLastMonth, 'day') + 1;\n let startNum, endNum;\n switch (value.recent_day) {\n case 'W|0|0':\n startNum = today.day() === 0 ? 6 : today.day() - 1;\n endNum = 0;\n showTimeText = '本周';\n break;\n case 'W|1|1':\n startNum = today.day() === 0 ? 13 : today.day() + 6;\n endNum = today.day() === 0 ? 7 : today.day();\n showTimeText = '上周';\n break;\n case 'M|0|0':\n startNum = today.date() - 1;\n endNum = 0;\n showTimeText = '本月';\n break;\n case 'M|1|1':\n startNum = daysToLastMonthStart;\n endNum = daysToLastMonthEnd;\n showTimeText = '上月';\n break;\n default:\n startNum = 0;\n endNum = 0;\n showTimeText = '';\n break;\n }\n return (\n <>\n {showTimeText}\n <Divider type=\"vertical\" />\n {getFormattedRecentTime(startNum, 'start')} ~ {getFormattedRecentTime(endNum, 'end')}\n </>\n );\n }\n return (\n <>\n {showTimeText}\n <Divider type=\"vertical\" />\n {getFormattedRecentTime(Number(start), 'start')} ~ {getFormattedRecentTime(Number(end), 'end')}\n </>\n );\n }\n return '';\n }, [value, timeTypes, localTimeType]);\n\n const recentType = useMemo(() => {\n switch (localTimeType) {\n case 3:\n return 'W';\n case 4:\n return 'M';\n default:\n return 'D';\n }\n }, [localTimeType]);\n\n // 显示的开始时间\n const showRecentStart = useMemo(() => {\n return getFormattedTimeRange(recentStart, 'start');\n }, [recentStart, localTimeType]);\n\n // 显示的结束时间\n const showRecentEnd = useMemo(() => {\n return getFormattedTimeRange(recentEnd, 'end');\n }, [recentEnd, localTimeType]);\n\n // 时间类型选项\n const timeTypeOptions = useMemo(() => {\n return (\n timeTypes?.map((item) => ({\n key: item,\n label: item,\n children: null,\n })) || []\n );\n }, [timeTypes]);\n\n // 时间类型 'date' | 'week' | 'month'\n const picker = useMemo(() => {\n return localTimeType ? pickerMap[localTimeType] : 'date';\n }, [localTimeType]);\n\n // 预选时间\n const presetsTime = useMemo(() => {\n if (timeFilterType === 1) {\n return recentOptionsMap[localTimeType || 2];\n }\n return optionsMap[localTimeType || 2];\n }, [localTimeType, timeFilterType]);\n\n const startTime = useMemo(() => {\n return Number(localValue?.[0]?.format('HH')) || 0;\n }, [localValue]);\n\n const endTime = useMemo(() => {\n return Number(localValue?.[1]?.format('HH')) || 0;\n }, [localValue]);\n\n // 过滤禁用开始时间\n const disabledStartHours = useMemo(() => {\n if (localValue?.[0] && dayjs(localValue[0]).isSame(dayjs(), 'day')) {\n const currentHour = dayjs().hour();\n return startTimeOptions.filter((option) => option.value <= currentHour);\n }\n return startTimeOptions;\n }, [localValue]);\n\n // 过滤禁用结束时间\n const disabledEndHours = useMemo(() => {\n if (localValue?.[1] && dayjs(localValue[1]).isSame(dayjs(), 'day')) {\n const currentHour = dayjs().hour();\n return endTimeOptions.filter((option) => option.value <= currentHour);\n }\n return endTimeOptions;\n }, [localValue]);\n\n useEffect(() => {\n if (value?.recent_day) {\n setTimeFilterType(1);\n }\n }, [value?.recent_day]);\n\n useEffect(() => {\n if (!open) return;\n const onPointerDownCapture = (e: PointerEvent) => {\n const el = e.target;\n if (!(el instanceof Element)) return;\n if (triggerWrapRef.current?.contains(el)) return;\n if (el.closest('[data-yk-range-time-with-recent-content]')) return;\n setOpen(false);\n };\n document.addEventListener('pointerdown', onPointerDownCapture, true);\n return () => document.removeEventListener('pointerdown', onPointerDownCapture, true);\n }, [open]);\n\n // 打开时,初始化时间范围和时间类型\n useEffect(() => {\n if (open) {\n setActive('start');\n setStartWeekDate(null);\n setStartMonth(null);\n const rangeStart = document.getElementById('RangeStart');\n setTimeout(() => {\n rangeStart?.focus();\n }, 10);\n setLocalTimeType(normalizeTimeTypeForTimeTypes(value?.time_type, timeTypes));\n if (value?.recent_day) {\n // 合计、按小时、按天 里本周上周本月上月特殊处理\n if (\n value.time_type !== undefined &&\n [0, 1, 2].includes(normalizeTimeTypeForTimeTypes(value.time_type, timeTypes)) &&\n (value.recent_day.split('|')[0] === 'W' || value.recent_day.split('|')[0] === 'M')\n ) {\n const today = dayjs();\n const lastDayOfLastMonth = today.subtract(1, 'month').endOf('month');\n const daysToLastMonthStart = today.diff(lastDayOfLastMonth.startOf('month'), 'day');\n const daysToLastMonthEnd = today.diff(lastDayOfLastMonth, 'day') + 1;\n switch (value.recent_day) {\n case 'W|0|0':\n setRecentStart(today.day() === 0 ? 6 : today.day() - 1);\n setRecentEnd(0);\n break;\n case 'W|1|1':\n setRecentStart(today.day() === 0 ? 13 : today.day() + 6);\n setRecentEnd(today.day() === 0 ? 7 : today.day());\n break;\n case 'M|0|0':\n setRecentStart(today.date() - 1);\n setRecentEnd(0);\n break;\n case 'M|1|1':\n setRecentStart(daysToLastMonthStart);\n setRecentEnd(daysToLastMonthEnd);\n break;\n default:\n setRecentStart(0);\n setRecentEnd(0);\n break;\n }\n } else {\n setRecentStart(Number(value.recent_day.split('|')[1]));\n setRecentEnd(Number(value.recent_day.split('|')[2]));\n }\n } else {\n setLocalValue([dayjs(value?.time_range?.[0]), dayjs(value?.time_range?.[1])]);\n }\n }\n }, [open]);\n\n const timeChange = (hour: number, type: 'start' | 'end') => {\n const [start, end] = localValue || [];\n if (type === 'start') {\n setLocalValue([dayjs(start).hour(hour), end]);\n } else {\n setLocalValue([start, dayjs(end).hour(hour)]);\n }\n };\n\n // 预选时间点击\n const presetClick = (item: { value: () => RangeValue }) => {\n setLocalValue(item.value()?.map((time) => dayjs(time)) as [Dayjs, Dayjs] | null);\n switch (localTimeType) {\n case 1:\n onChange({\n time_range: [\n dayjs(item.value()?.[0]).format('YYYY-MM-DD HH:00'),\n dayjs(item.value()?.[1]).format('YYYY-MM-DD HH:59'),\n ],\n recent_day: null,\n time_type: localTimeType,\n });\n break;\n default:\n onChange({\n time_range: [dayjs(item.value()?.[0]).format('YYYY-MM-DD'), dayjs(item.value()?.[1]).format('YYYY-MM-DD')],\n recent_day: null,\n time_type: localTimeType,\n });\n }\n setOpen(false);\n };\n\n // 点击日期\n const cellClick = (current: Dayjs, type: string) => {\n // 提取公共方法\n const handleInputFocus = (isStart: boolean) => {\n const element = document.getElementById('YkRangeTimeWithRecent');\n const inputs = element?.querySelectorAll('input');\n inputs?.[isStart ? 0 : 1].focus();\n };\n const handleDateChange = (start: Dayjs, end: Dayjs, closePopup = true) => {\n setLocalValue([start, end]);\n setActive(active === 'start' ? 'end' : 'start');\n handleInputFocus(active === 'end');\n if (closePopup) {\n const format = localTimeType === 4 ? 'YYYY-MM' : 'YYYY-MM-DD';\n onChange({\n time_range: [dayjs(start).format(format), dayjs(end).format(format)],\n recent_day: null,\n time_type: localTimeType,\n });\n setOpen(false);\n }\n };\n\n // 处理不同类型的日期选择\n const dateTypeHandlers = {\n month: () => {\n const selectedMonth = current.startOf('month');\n if (active === 'start') {\n setStartMonth(selectedMonth);\n setActive('end');\n handleInputFocus(false);\n } else {\n if (!startMonth) return;\n const endMonth = selectedMonth;\n const [start, end] =\n endMonth.isAfter(startMonth) || endMonth.isSame(startMonth)\n ? [startMonth, endMonth]\n : [endMonth, startMonth.endOf('month')];\n handleDateChange(start, end);\n }\n },\n week: () => {\n if (active === 'start') {\n setStartWeekDate(current.startOf('week'));\n setActive('end');\n handleInputFocus(false);\n } else {\n if (!startWeekDate) return;\n const startWeekStart = startWeekDate;\n const endWeekStart = current.startOf('week');\n if (endWeekStart.isAfter(startWeekStart) || endWeekStart.isSame(startWeekStart)) {\n const start = startWeekStart;\n const end = endWeekStart.isSame(dayjs().startOf('week')) ? dayjs() : endWeekStart.endOf('week');\n handleDateChange(start, end);\n } else {\n const start = endWeekStart;\n const end = startWeekStart.endOf('week');\n const finalEnd = end.isAfter(dayjs()) ? dayjs() : end;\n handleDateChange(start, finalEnd);\n }\n }\n },\n date: () => {\n if (active === 'start') {\n handleDateChange(current, localValue?.[1] || current, false);\n } else {\n if (!localValue?.[0]) return;\n const [start, end] = localValue[0] > current ? [current, localValue[0]] : [localValue[0], current];\n handleDateChange(start, end, localTimeType !== 1);\n }\n },\n };\n\n const handler = dateTypeHandlers[type as keyof typeof dateTypeHandlers];\n if (handler) handler();\n };\n\n // 日期单元格渲染\n const cellRender: DatePickerProps<Dayjs>['cellRender'] = (current, info) => {\n if (typeof current === 'number' || typeof current === 'string') {\n // 不确定什么时候会是number或string\n return <div className=\"ant-picker-cell-inner\">{current}</div>;\n }\n if (info.type !== 'date') {\n return (\n <div style={{ width: 36 }} onClick={() => cellClick(current, info.type)}>\n {info.originNode}\n </div>\n );\n }\n return (\n <div className=\"ant-picker-cell-inner\" style={{ width: 36 }} onClick={() => cellClick(current, info.type)}>\n {current.date()}\n </div>\n );\n };\n\n const content = (\n <div className={styles.popoverContent} data-yk-range-time-with-recent-content>\n {!timeTypes && noTimeFilter ? null : (\n <div className={styles.header}>\n {timeTypes && timeTypes.length > 0 && (\n <Tabs\n activeKey={localTimeTypeName}\n items={timeTypeOptions}\n onChange={(key) => {\n const timeTypeKey = Object.entries(timeTypeKeys).find(([_, label]) => label === key)?.[0];\n setLocalTimeType(Number(timeTypeKey));\n setLocalValue(\n optionsMap[timeTypeKey !== undefined ? Number(timeTypeKey) : 2]\n .default()\n ?.map((time) => dayjs(time)) as [Dayjs, Dayjs] | null,\n );\n }}\n />\n )}\n {!noTimeFilter && (\n <Radio.Group\n optionType=\"button\"\n value={timeFilterType}\n style={{\n marginLeft: 'auto',\n }}\n onChange={(e) => {\n setTimeFilterType(e.target.value);\n }}\n >\n <Radio\n value={0}\n style={{\n borderRadius: '2px 0 0 2px',\n height: 26,\n lineHeight: '24px',\n padding: '0 10px',\n }}\n >\n 静态时间\n </Radio>\n <Radio\n value={1}\n style={{\n borderRadius: '0 2px 2px 0',\n height: 26,\n lineHeight: '24px',\n padding: '0 10px',\n }}\n >\n 动态时间\n </Radio>\n </Radio.Group>\n )}\n </div>\n )}\n <div\n className={classNames(styles.body, {\n [styles.showTimes]: localTimeType === 1 && timeFilterType === 0,\n })}\n >\n <div className={styles.left}>\n {presetsTime.options.map((item) => (\n <Button\n key={item.label}\n className={styles.presetBtn}\n onClick={() => {\n if (timeFilterType === 1) {\n onChange({\n time_range: null,\n recent_day: item.value as string,\n time_type: localTimeType,\n });\n setOpen(false);\n } else {\n presetClick(item as { value: () => RangeValue });\n }\n }}\n >\n {item.label}\n </Button>\n ))}\n </div>\n {timeFilterType === 0 ? (\n <div className={styles.right} id=\"YkRangeTimeWithRecent\" key={open ? 'open' : 'close'}>\n <RangePicker\n id=\"RangeStart\"\n locale={datePickerZhCN}\n className={styles.rangePicker}\n getPopupContainer={(triggerNode) => triggerNode.parentElement as HTMLElement}\n open={open}\n cellRender={cellRender}\n picker={picker}\n autoFocus\n showWeek={false}\n onOpenChange={() => {}}\n classNames={{ popup: { root: styles.rangePickerPopup } }}\n value={localValue}\n placement=\"bottomLeft\"\n />\n {localTimeType === 1 && (\n <div className={styles.boxTimes}>\n <Select\n options={disabledStartHours}\n value={startTime}\n defaultValue={startTimeOptions[0].value}\n prefix={<ClockCircleOutlined />}\n className={styles.timeSelectItem}\n getPopupContainer={(triggerNode) => triggerNode.parentElement as HTMLElement}\n onChange={(hour) => {\n timeChange(hour, 'start');\n }}\n />\n <Select\n options={disabledEndHours}\n value={endTime}\n defaultValue={endTimeOptions[endTimeOptions.length - 1].value}\n prefix={<ClockCircleOutlined />}\n className={styles.timeSelectItem}\n getPopupContainer={(triggerNode) => triggerNode.parentElement as HTMLElement}\n onChange={(hour) => {\n timeChange(hour, 'end');\n }}\n />\n </div>\n )}\n </div>\n ) : (\n <div className={styles.rightDynamic}>\n <div className={styles.dynamicItem}>\n <div className={styles.dynamicItemTitle}>\n <span>开始时间:{showRecentStart}</span>\n </div>\n <div className={styles.dynamicItemContent}>\n <InputNumber\n min={0}\n className={styles.inputNumber}\n value={recentStart}\n onChange={(next) => {\n const newStart = next || 0;\n // 确保开始时间大于等于结束时间\n if (newStart < recentEnd) {\n setRecentStart(newStart);\n setRecentEnd(newStart);\n } else {\n setRecentStart(newStart);\n }\n }}\n />\n <span style={{ color: '#333' }}>{recentType === 'D' ? '天' : recentType === 'W' ? '周' : '月'}前</span>\n </div>\n </div>\n <div className={styles.dynamicItem}>\n <div className={styles.dynamicItemTitle}>\n <span>结束时间:{showRecentEnd}</span>\n </div>\n <div className={styles.dynamicItemContent}>\n <InputNumber\n min={0}\n className={styles.inputNumber}\n value={recentEnd}\n onChange={(next) => {\n const newEnd = next || 0;\n // 确保结束时间小于等于开始时间\n if (newEnd > recentStart) {\n setRecentEnd(newEnd);\n setRecentStart(newEnd);\n } else {\n setRecentEnd(newEnd);\n }\n }}\n />\n <span style={{ color: '#333' }}>{recentType === 'D' ? '天' : recentType === 'W' ? '周' : '月'}前</span>\n </div>\n </div>\n </div>\n )}\n </div>\n {(localTimeType === 1 || timeFilterType === 1) && (\n <div className={styles.footer}>\n <Button\n onClick={() => {\n if (timeFilterType === 1) {\n // 动态时间\n onChange({\n time_range: null,\n recent_day: `${recentType}|${recentStart}|${recentEnd}`,\n time_type: localTimeType,\n });\n } else {\n // 如果是按小时,结束时间不能早于开始时间\n if (localTimeType === 1) {\n if (dayjs(localValue?.[1]).isBefore(dayjs(localValue?.[0]))) {\n message.warning('结束时间不能早于开始时间');\n return;\n }\n }\n // 静态时间\n onChange({\n time_range: [\n dayjs(localValue?.[0]).format('YYYY-MM-DD HH:00'),\n dayjs(localValue?.[1]).format('YYYY-MM-DD HH:59'),\n ],\n recent_day: null,\n time_type: localTimeType,\n });\n }\n setOpen(false);\n }}\n type=\"primary\"\n >\n 确认\n </Button>\n </div>\n )}\n </div>\n );\n return (\n <ConfigProvider locale={zhCN}>\n <Popover\n open={open}\n onOpenChange={setOpen}\n content={content}\n arrow={false}\n placement={placement}\n trigger=\"click\"\n styles={{ body: { borderRadius: 2, padding: 0 } }}\n >\n <div className={styles.btnRange} style={style} ref={triggerWrapRef}>\n {timeTypes && timeTypes.length > 0 && (\n <>\n <span className={styles.btnTimeType}>\n {timeTypeKeys[normalizeTimeTypeForTimeTypes(value.time_type, timeTypes) as keyof typeof timeTypeKeys]}\n </span>\n <Divider type=\"vertical\" />\n </>\n )}\n {dateFieldOptionName && (\n <>\n <span className={styles.btnTimeType}>{dateFieldOptionName}</span>\n <Divider type=\"vertical\" />\n </>\n )}\n {!noIcon && <i className=\"iconfont icon-date\" style={{ color: '#3B86F9' }} />}\n {/* 显示时间 */}\n {showRangeTime ? (\n <span className={styles.btnRangeValue} style={!noIcon ? { marginLeft: 5 } : undefined}>\n {showRangeTime}\n </span>\n ) : placeholder ? (\n <div className={styles.placeholder}>{placeholder}</div>\n ) : null}\n {/* 清除 */}\n {clearable && (value.time_range || value.recent_day) && (\n <i\n onClick={(e) => {\n e.stopPropagation();\n onChange({\n time_range: null,\n recent_day: null,\n time_type: localTimeType,\n });\n }}\n className={classNames(styles.clearIcon, 'iconfont icon-guanbi1')}\n />\n )}\n </div>\n </Popover>\n </ConfigProvider>\n );\n};\n\nexport default YkRangeTimeWithRecent;\n"],
5
+ "mappings": "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",
6
+ "names": ["import_zh_CN", "dayjs", "isoWeek", "weekOfYear", "React", "styles", "classNames", "datePickerZhCN", "zhCN"]
7
+ }
@@ -0,0 +1,263 @@
1
+ .btnRange {
2
+ position: relative;
3
+ /* 随内部元素宽度收缩,不占满父级一行(块级 flex 会默认拉满) */
4
+ display: inline-flex;
5
+ width: fit-content;
6
+ max-width: min(400px, 100%);
7
+ height: 30px;
8
+ padding: 0 10px;
9
+ border: 1px solid #d9d9d9;
10
+ transition: all 0.1s linear;
11
+ cursor: pointer;
12
+ line-height: 28px;
13
+ border-radius: 2px;
14
+ align-items: center;
15
+ box-shadow: none;
16
+ box-sizing: border-box;
17
+
18
+ &.disabled {
19
+ pointer-events: none;
20
+ opacity: 0.5;
21
+ }
22
+
23
+ &:hover {
24
+ border-color: #66a8ff;
25
+ color: #66a8ff !important;
26
+
27
+ .clearIcon {
28
+ opacity: 1;
29
+ }
30
+ }
31
+
32
+ .btnRangeValue {
33
+ min-width: 0;
34
+ overflow: hidden;
35
+ text-overflow: ellipsis;
36
+ white-space: nowrap;
37
+ font-size: 14px;
38
+ }
39
+
40
+ .placeholder {
41
+ color: #999;
42
+ margin-left: 10px;
43
+ }
44
+
45
+ :global {
46
+ .ant-divider {
47
+ margin: 0 4px;
48
+ }
49
+ }
50
+
51
+ .btnTimeType {
52
+ font-size: 12px;
53
+ transition: none;
54
+ color: #3b86f9;
55
+ background-color: #f0f9ff;
56
+ padding: 0 4px;
57
+ border-radius: 2px;
58
+ border: 1px solid #e7e7e7;
59
+ line-height: 20px;
60
+
61
+ .btnTimeTypeIcon {
62
+ color: #999;
63
+ font-size: 14px;
64
+ }
65
+
66
+ :where.ant-btn-color-default {
67
+ color: #333;
68
+ }
69
+ }
70
+
71
+ .clearIcon {
72
+ color: #66a8ff;
73
+ transition: opacity 0.2s linear;
74
+ cursor: pointer;
75
+ font-size: 12px;
76
+ margin-left: 5px;
77
+ margin-right: -5px;
78
+ opacity: 0;
79
+ }
80
+ }
81
+
82
+ .popoverContent {
83
+ width: 780px;
84
+ padding: 0;
85
+
86
+ .header {
87
+ display: flex;
88
+ height: 50px;
89
+ padding: 2px 15px;
90
+ border-bottom: 1px solid #ecedf1;
91
+ align-items: center;
92
+ justify-content: space-between;
93
+
94
+ :global {
95
+ .ant-tabs {
96
+ .ant-tabs-nav {
97
+ margin-bottom: 0;
98
+
99
+ &::before {
100
+ display: none;
101
+ }
102
+ }
103
+ }
104
+ }
105
+ }
106
+
107
+ .body {
108
+ display: flex;
109
+ height: 310px;
110
+
111
+ &.showTimes {
112
+ height: 350px;
113
+ }
114
+
115
+ .left {
116
+ display: grid;
117
+ width: 204px;
118
+ grid-template-columns: repeat(2, 1fr);
119
+ grid-auto-rows: max-content;
120
+ align-content: start;
121
+ gap: 10px;
122
+ padding: 15px;
123
+ border-right: 1px solid #ecedf1;
124
+ box-sizing: border-box;
125
+
126
+ .presetBtn {
127
+ width: 80px;
128
+ min-width: 0;
129
+ height: 30px;
130
+ border-radius: 2px;
131
+ font-size: 14px;
132
+ text-align: center;
133
+ line-height: 30px;
134
+ border: 1px solid #ecedf1;
135
+ box-shadow: none;
136
+
137
+ &:hover {
138
+ border-color: #66a8ff;
139
+ }
140
+ }
141
+ }
142
+
143
+ .right {
144
+ position: relative;
145
+ flex: 1;
146
+ width: 576px;
147
+
148
+ .rangePicker {
149
+ position: absolute;
150
+ top: -40px;
151
+ left: 0;
152
+ pointer-events: none;
153
+ opacity: 0;
154
+ }
155
+
156
+ .boxTimes {
157
+ position: absolute;
158
+ bottom: 0;
159
+ display: flex;
160
+ width: 100%;
161
+ height: 50px;
162
+ align-items: center;
163
+ justify-content: space-around;
164
+
165
+ .timeSelectItem {
166
+ width: 80px;
167
+ text-align: center;
168
+
169
+ :global {
170
+ .ant-select-selection-item {
171
+ padding: 0;
172
+ }
173
+
174
+ .ant-select-arrow {
175
+ display: none;
176
+ }
177
+
178
+ .ant-select-selector {
179
+ border: none;
180
+ box-shadow: none;
181
+ }
182
+ }
183
+ }
184
+ }
185
+
186
+ :global {
187
+ .ant-picker-body {
188
+ padding: 0 8px;
189
+ }
190
+
191
+ .ant-picker-dropdown .ant-picker-cell::before {
192
+ height: 36px;
193
+ }
194
+
195
+ .ant-picker-cell {
196
+ padding: 0;
197
+
198
+ .ant-picker-cell-inner {
199
+ height: 36px;
200
+ line-height: 36px;
201
+ min-width: 36px;
202
+ }
203
+ }
204
+ }
205
+ }
206
+
207
+ .rightDynamic {
208
+ position: relative;
209
+ display: flex;
210
+ width: 576px;
211
+ flex: 1;
212
+
213
+ .dynamicItem {
214
+ position: relative;
215
+ width: 50%;
216
+ height: 100%;
217
+ padding: 15px;
218
+
219
+ &:nth-child(1) {
220
+ border-right: 1px solid #ecedf1;
221
+ }
222
+
223
+ .dynamicItemTitle {
224
+ font-size: 14px;
225
+ color: #666;
226
+ margin-bottom: 5px;
227
+ }
228
+
229
+ .inputNumber {
230
+ width: 200px;
231
+ height: 30px;
232
+ margin-right: 10px;
233
+ border: 1px solid #e7e7e7;
234
+ border-radius: 2px;
235
+ }
236
+ }
237
+ }
238
+ }
239
+
240
+ .footer {
241
+ display: flex;
242
+ height: 50px;
243
+ padding: 0 15px;
244
+ border-top: 1px solid #ecedf1;
245
+ align-items: center;
246
+ justify-content: flex-end;
247
+ }
248
+ }
249
+
250
+ .rangePickerPopup {
251
+ :global {
252
+ .ant-picker-panel-container {
253
+ border: none;
254
+ box-shadow: none;
255
+ }
256
+
257
+ .ant-picker-date-panel,
258
+ .ant-picker-week-panel,
259
+ .ant-picker-month-panel {
260
+ width: 288px !important;
261
+ }
262
+ }
263
+ }
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import './index.less';
3
+ export interface ButtonRadioWithInfoOption {
4
+ label: React.ReactNode;
5
+ value: string;
6
+ /** 角标文案,如 SAVE 28% */
7
+ badge?: React.ReactNode;
8
+ disabled?: boolean;
9
+ }
10
+ export interface ButtonRadioWithInfoProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {
11
+ options: ButtonRadioWithInfoOption[];
12
+ value?: string;
13
+ defaultValue?: string;
14
+ onChange?: (value: string) => void;
15
+ }
16
+ declare const ButtonRadioWithInfo: React.ForwardRefExoticComponent<ButtonRadioWithInfoProps & React.RefAttributes<HTMLDivElement>>;
17
+ export default ButtonRadioWithInfo;
@@ -0,0 +1,102 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/creative/ButtonRadioWithInfo/index.tsx
30
+ var ButtonRadioWithInfo_exports = {};
31
+ __export(ButtonRadioWithInfo_exports, {
32
+ default: () => ButtonRadioWithInfo_default
33
+ });
34
+ module.exports = __toCommonJS(ButtonRadioWithInfo_exports);
35
+ var import_classnames = __toESM(require("classnames"));
36
+ var import_react = __toESM(require("react"));
37
+ var import_index = require("./index.less");
38
+ var ButtonRadioWithInfo = import_react.default.forwardRef(
39
+ ({ options, value: valueProp, defaultValue, onChange, className, style, ...rest }, ref) => {
40
+ const uid = (0, import_react.useId)().replace(/:/g, "");
41
+ const name = `brwi-${uid}`;
42
+ const [inner, setInner] = (0, import_react.useState)(() => {
43
+ var _a;
44
+ return defaultValue ?? ((_a = options[0]) == null ? void 0 : _a.value) ?? "";
45
+ });
46
+ const value = valueProp !== void 0 ? valueProp : inner;
47
+ const selectedIndex = (0, import_react.useMemo)(() => {
48
+ const i = options.findIndex((o) => o.value === value);
49
+ return i >= 0 ? i : 0;
50
+ }, [options, value]);
51
+ const handleSelect = (next) => {
52
+ const opt = options.find((o) => o.value === next);
53
+ if (opt == null ? void 0 : opt.disabled)
54
+ return;
55
+ if (valueProp === void 0)
56
+ setInner(next);
57
+ onChange == null ? void 0 : onChange(next);
58
+ };
59
+ if (!options.length) {
60
+ return null;
61
+ }
62
+ return /* @__PURE__ */ import_react.default.createElement(
63
+ "div",
64
+ {
65
+ ref,
66
+ className: (0, import_classnames.default)("button-radio-with-info", className),
67
+ style: {
68
+ ...style,
69
+ "--brwi-n": options.length,
70
+ "--brwi-i": selectedIndex
71
+ },
72
+ ...rest
73
+ },
74
+ /* @__PURE__ */ import_react.default.createElement("div", { className: "button-radio-with-info__tabs", role: "radiogroup" }, options.map((opt) => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, { key: opt.value }, /* @__PURE__ */ import_react.default.createElement(
75
+ "input",
76
+ {
77
+ type: "radio",
78
+ className: "button-radio-with-info__input",
79
+ id: `${name}-${opt.value}`,
80
+ name,
81
+ value: opt.value,
82
+ checked: value === opt.value,
83
+ disabled: opt.disabled,
84
+ onChange: () => handleSelect(opt.value)
85
+ }
86
+ ), /* @__PURE__ */ import_react.default.createElement(
87
+ "label",
88
+ {
89
+ htmlFor: `${name}-${opt.value}`,
90
+ className: (0, import_classnames.default)("button-radio-with-info__tab", {
91
+ "button-radio-with-info__tab--disabled": opt.disabled
92
+ })
93
+ },
94
+ opt.label,
95
+ opt.badge != null && opt.badge !== "" ? /* @__PURE__ */ import_react.default.createElement("span", { className: "button-radio-with-info__badge" }, opt.badge) : null
96
+ ))), /* @__PURE__ */ import_react.default.createElement("span", { className: "button-radio-with-info__glider", "aria-hidden": true }))
97
+ );
98
+ }
99
+ );
100
+ ButtonRadioWithInfo.displayName = "ButtonRadioWithInfo";
101
+ var ButtonRadioWithInfo_default = ButtonRadioWithInfo;
102
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/creative/ButtonRadioWithInfo/index.tsx"],
4
+ "sourcesContent": ["import classNames from 'classnames';\nimport React, { useId, useMemo, useState } from 'react';\n\nimport './index.less';\n\nexport interface ButtonRadioWithInfoOption {\n label: React.ReactNode;\n value: string;\n /** 角标文案,如 SAVE 28% */\n badge?: React.ReactNode;\n disabled?: boolean;\n}\n\nexport interface ButtonRadioWithInfoProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {\n options: ButtonRadioWithInfoOption[];\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n}\n\nconst ButtonRadioWithInfo = React.forwardRef<HTMLDivElement, ButtonRadioWithInfoProps>(\n ({ options, value: valueProp, defaultValue, onChange, className, style, ...rest }, ref) => {\n const uid = useId().replace(/:/g, '');\n const name = `brwi-${uid}`;\n const [inner, setInner] = useState(() => defaultValue ?? options[0]?.value ?? '');\n const value = valueProp !== undefined ? valueProp : inner;\n\n const selectedIndex = useMemo(() => {\n const i = options.findIndex((o) => o.value === value);\n return i >= 0 ? i : 0;\n }, [options, value]);\n\n const handleSelect = (next: string) => {\n const opt = options.find((o) => o.value === next);\n if (opt?.disabled) return;\n if (valueProp === undefined) setInner(next);\n onChange?.(next);\n };\n\n if (!options.length) {\n return null;\n }\n\n return (\n <div\n ref={ref}\n className={classNames('button-radio-with-info', className)}\n style={\n {\n ...style,\n '--brwi-n': options.length,\n '--brwi-i': selectedIndex,\n } as React.CSSProperties\n }\n {...rest}\n >\n <div className=\"button-radio-with-info__tabs\" role=\"radiogroup\">\n {options.map((opt) => (\n <React.Fragment key={opt.value}>\n <input\n type=\"radio\"\n className=\"button-radio-with-info__input\"\n id={`${name}-${opt.value}`}\n name={name}\n value={opt.value}\n checked={value === opt.value}\n disabled={opt.disabled}\n onChange={() => handleSelect(opt.value)}\n />\n <label\n htmlFor={`${name}-${opt.value}`}\n className={classNames('button-radio-with-info__tab', {\n 'button-radio-with-info__tab--disabled': opt.disabled,\n })}\n >\n {opt.label}\n {opt.badge != null && opt.badge !== '' ? (\n <span className=\"button-radio-with-info__badge\">{opt.badge}</span>\n ) : null}\n </label>\n </React.Fragment>\n ))}\n <span className=\"button-radio-with-info__glider\" aria-hidden />\n </div>\n </div>\n );\n },\n);\n\nButtonRadioWithInfo.displayName = 'ButtonRadioWithInfo';\n\nexport default ButtonRadioWithInfo;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAuB;AACvB,mBAAgD;AAEhD,mBAAO;AAiBP,IAAM,sBAAsB,aAAAA,QAAM;AAAA,EAChC,CAAC,EAAE,SAAS,OAAO,WAAW,cAAc,UAAU,WAAW,OAAO,GAAG,KAAK,GAAG,QAAQ;AACzF,UAAM,UAAM,oBAAM,EAAE,QAAQ,MAAM,EAAE;AACpC,UAAM,OAAO,QAAQ;AACrB,UAAM,CAAC,OAAO,QAAQ,QAAI,uBAAS,MAAG;AAxB1C;AAwB6C,+BAAgB,aAAQ,CAAC,MAAT,mBAAY,UAAS;AAAA,KAAE;AAChF,UAAM,QAAQ,cAAc,SAAY,YAAY;AAEpD,UAAM,oBAAgB,sBAAQ,MAAM;AAClC,YAAM,IAAI,QAAQ,UAAU,CAAC,MAAM,EAAE,UAAU,KAAK;AACpD,aAAO,KAAK,IAAI,IAAI;AAAA,IACtB,GAAG,CAAC,SAAS,KAAK,CAAC;AAEnB,UAAM,eAAe,CAAC,SAAiB;AACrC,YAAM,MAAM,QAAQ,KAAK,CAAC,MAAM,EAAE,UAAU,IAAI;AAChD,UAAI,2BAAK;AAAU;AACnB,UAAI,cAAc;AAAW,iBAAS,IAAI;AAC1C,2CAAW;AAAA,IACb;AAEA,QAAI,CAAC,QAAQ,QAAQ;AACnB,aAAO;AAAA,IACT;AAEA,WACE,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,eAAW,kBAAAC,SAAW,0BAA0B,SAAS;AAAA,QACzD,OACE;AAAA,UACE,GAAG;AAAA,UACH,YAAY,QAAQ;AAAA,UACpB,YAAY;AAAA,QACd;AAAA,QAED,GAAG;AAAA;AAAA,MAEJ,6BAAAD,QAAA,cAAC,SAAI,WAAU,gCAA+B,MAAK,gBAChD,QAAQ,IAAI,CAAC,QACZ,6BAAAA,QAAA,cAAC,aAAAA,QAAM,UAAN,EAAe,KAAK,IAAI,SACvB,6BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,WAAU;AAAA,UACV,IAAI,GAAG,QAAQ,IAAI;AAAA,UACnB;AAAA,UACA,OAAO,IAAI;AAAA,UACX,SAAS,UAAU,IAAI;AAAA,UACvB,UAAU,IAAI;AAAA,UACd,UAAU,MAAM,aAAa,IAAI,KAAK;AAAA;AAAA,MACxC,GACA,6BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,SAAS,GAAG,QAAQ,IAAI;AAAA,UACxB,eAAW,kBAAAC,SAAW,+BAA+B;AAAA,YACnD,yCAAyC,IAAI;AAAA,UAC/C,CAAC;AAAA;AAAA,QAEA,IAAI;AAAA,QACJ,IAAI,SAAS,QAAQ,IAAI,UAAU,KAClC,6BAAAD,QAAA,cAAC,UAAK,WAAU,mCAAiC,IAAI,KAAM,IACzD;AAAA,MACN,CACF,CACD,GACD,6BAAAA,QAAA,cAAC,UAAK,WAAU,kCAAiC,eAAW,MAAC,CAC/D;AAAA,IACF;AAAA,EAEJ;AACF;AAEA,oBAAoB,cAAc;AAElC,IAAO,8BAAQ;",
6
+ "names": ["React", "classNames"]
7
+ }
@@ -0,0 +1,106 @@
1
+ .button-radio-with-info {
2
+ &__tabs {
3
+ display: flex;
4
+ position: relative;
5
+ background-color: #fff;
6
+ box-shadow:
7
+ 0 0 1px 0 rgba(24, 94, 224, 0.15),
8
+ 0 6px 12px 0 rgba(24, 94, 224, 0.15);
9
+ padding: 0.25rem;
10
+ border-radius: 2px;
11
+ }
12
+
13
+ &__tabs > &__tab {
14
+ position: relative;
15
+ z-index: 2;
16
+ min-width: 40px;
17
+ }
18
+
19
+ &__input {
20
+ border: 0;
21
+ clip: rect(0, 0, 0, 0);
22
+ height: 1px;
23
+ margin: -1px;
24
+ overflow: hidden;
25
+ padding: 0;
26
+ position: absolute;
27
+ width: 1px;
28
+ white-space: nowrap;
29
+ }
30
+
31
+ &__tab {
32
+ display: flex;
33
+ align-items: center;
34
+ justify-content: center;
35
+ flex: 1 1 0;
36
+ min-width: 0;
37
+ min-height: 30px;
38
+ padding: 0 8px;
39
+ font-size: 0.8rem;
40
+ color: #000;
41
+ font-weight: 500;
42
+ border-radius: 2px;
43
+ cursor: pointer;
44
+ transition: color 0.15s ease-in;
45
+ text-align: center;
46
+ user-select: none;
47
+ }
48
+
49
+ &__tab--disabled {
50
+ cursor: not-allowed;
51
+ opacity: 0.5;
52
+ }
53
+
54
+ &__badge {
55
+ display: inline-flex;
56
+ align-items: center;
57
+ justify-content: center;
58
+ padding: 0 6px;
59
+ min-height: 12px;
60
+ position: absolute;
61
+ top: -5px;
62
+ font-size: 10px;
63
+ line-height: 11px;
64
+ border-radius: 2px;
65
+ background-color: #e6eef9;
66
+ transition:
67
+ background-color 0.15s ease-in,
68
+ color 0.15s ease-in;
69
+ white-space: nowrap;
70
+ }
71
+
72
+ &__input:checked + &__tab {
73
+ color: #185ee0;
74
+ }
75
+
76
+ &__input:checked + &__tab &__badge {
77
+ background-color: #185ee0;
78
+ color: #fff;
79
+ }
80
+
81
+ &__input:focus-visible + &__tab {
82
+ outline: 2px solid #185ee0;
83
+ outline-offset: 2px;
84
+ }
85
+
86
+ &__glider {
87
+ position: absolute;
88
+ left: 0.25rem;
89
+ top: 0.25rem;
90
+ height: 30px;
91
+ width: calc((100% - 0.5rem) / var(--brwi-n, 2));
92
+ background-color: #e6eef9;
93
+ z-index: 1;
94
+ border-radius: 2px;
95
+ transition: transform 0.15s ease-out;
96
+ transform: translateX(calc(var(--brwi-i, 0) * 100%));
97
+ pointer-events: none;
98
+ }
99
+ }
100
+
101
+ @media (max-width: 700px) {
102
+ .button-radio-with-info__tabs {
103
+ transform: scale(0.6);
104
+ transform-origin: left center;
105
+ }
106
+ }
@@ -0,0 +1,11 @@
1
+ import { ButtonProps } from 'antd';
2
+ import React from 'react';
3
+ import './index.less';
4
+ export interface ButtonWithProgressProps extends ButtonProps {
5
+ progress?: number;
6
+ progressColor?: string;
7
+ progressing?: boolean;
8
+ subtitle?: string;
9
+ }
10
+ declare const ButtonWithProgress: React.FC<ButtonWithProgressProps>;
11
+ export default ButtonWithProgress;