@gm-pc/react 1.24.9-beta.5 → 1.24.9-beta.9

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 (399) hide show
  1. package/package.json +3 -3
  2. package/src/common/hooks/index.ts +5 -5
  3. package/src/common/hooks/use_form/index.ts +2 -2
  4. package/src/common/hooks/use_form/use_form.ts +184 -184
  5. package/src/common/hooks/use_form/utils.ts +23 -23
  6. package/src/common/hooks/use_mutation_observer.ts +19 -19
  7. package/src/common/utils/date.ts +28 -28
  8. package/src/common/utils/get_record_partical_object.ts +4 -4
  9. package/src/common/utils/index.ts +3 -3
  10. package/src/common/utils/utils.ts +16 -16
  11. package/src/component/affix/affix.tsx +31 -31
  12. package/src/component/affix/index.ts +2 -2
  13. package/src/component/affix/stories.tsx +16 -16
  14. package/src/component/affix/style.less +3 -3
  15. package/src/component/auto_complete/auto_complete.tsx +202 -202
  16. package/src/component/auto_complete/index.ts +6 -6
  17. package/src/component/auto_complete/stories.tsx +37 -37
  18. package/src/component/auto_full/auto_full.tsx +36 -36
  19. package/src/component/auto_full/index.ts +1 -1
  20. package/src/component/box/box.tsx +29 -29
  21. package/src/component/box/box_form.tsx +83 -83
  22. package/src/component/box/box_pagination.tsx +12 -12
  23. package/src/component/box/box_panel.tsx +91 -91
  24. package/src/component/box/box_table.tsx +57 -57
  25. package/src/component/box/index.ts +10 -10
  26. package/src/component/box/stories.tsx +119 -119
  27. package/src/component/box/style.less +41 -41
  28. package/src/component/button/button.tsx +94 -94
  29. package/src/component/button/button_text.tsx +33 -33
  30. package/src/component/button/index.ts +4 -4
  31. package/src/component/button/stories.tsx +131 -131
  32. package/src/component/button/style.less +158 -158
  33. package/src/component/calendar/calendar.tsx +25 -25
  34. package/src/component/calendar/content.tsx +87 -87
  35. package/src/component/calendar/day.tsx +106 -106
  36. package/src/component/calendar/head.tsx +244 -244
  37. package/src/component/calendar/index.ts +4 -4
  38. package/src/component/calendar/range_calendar.tsx +121 -121
  39. package/src/component/calendar/stories.tsx +54 -54
  40. package/src/component/calendar/style.less +136 -136
  41. package/src/component/calendar/types.ts +54 -54
  42. package/src/component/calendar/week.tsx +27 -27
  43. package/src/component/card/card.tsx +148 -148
  44. package/src/component/card/form_card.tsx +42 -42
  45. package/src/component/card/index.ts +2 -2
  46. package/src/component/card/stories.tsx +90 -90
  47. package/src/component/card/style.less +125 -125
  48. package/src/component/checkbox/checkbox.tsx +75 -75
  49. package/src/component/checkbox/checkbox_group.tsx +51 -51
  50. package/src/component/checkbox/index.ts +5 -5
  51. package/src/component/checkbox/stories.tsx +152 -152
  52. package/src/component/checkbox/style.less +73 -73
  53. package/src/component/checkbox/util.ts +19 -19
  54. package/src/component/collapse/collapse.tsx +27 -27
  55. package/src/component/collapse/index.ts +2 -2
  56. package/src/component/collapse/stories.tsx +21 -21
  57. package/src/component/color_picker/color_list.ts +34 -34
  58. package/src/component/color_picker/color_picker.tsx +43 -43
  59. package/src/component/color_picker/color_select.tsx +97 -97
  60. package/src/component/color_picker/index.ts +2 -2
  61. package/src/component/color_picker/stories.tsx +20 -20
  62. package/src/component/color_picker/style.less +41 -41
  63. package/src/component/config_provider/config_provider.tsx +16 -16
  64. package/src/component/config_provider/context.ts +10 -10
  65. package/src/component/config_provider/index.ts +3 -3
  66. package/src/component/controlled_form/context.tsx +18 -18
  67. package/src/component/controlled_form/controlled_form.tsx +141 -141
  68. package/src/component/controlled_form/index.ts +8 -8
  69. package/src/component/controlled_form/items/index.tsx +115 -115
  70. package/src/component/controlled_form/items/utils.ts +132 -132
  71. package/src/component/controlled_form/stories/components/date_range_filter.tsx +83 -83
  72. package/src/component/controlled_form/stories/components/index.ts +2 -2
  73. package/src/component/controlled_form/stories/components/search_filter.tsx +52 -52
  74. package/src/component/controlled_form/stories/stories.tsx +372 -372
  75. package/src/component/date_picker/date_picker.tsx +183 -183
  76. package/src/component/date_picker/index.ts +2 -2
  77. package/src/component/date_picker/overlay.tsx +106 -106
  78. package/src/component/date_picker/stories.tsx +108 -108
  79. package/src/component/date_picker/style.less +23 -23
  80. package/src/component/date_picker/time_select.tsx +58 -58
  81. package/src/component/date_picker/types.ts +7 -7
  82. package/src/component/date_range_picker/date_range_picker.tsx +144 -144
  83. package/src/component/date_range_picker/index.ts +2 -2
  84. package/src/component/date_range_picker/left.tsx +107 -107
  85. package/src/component/date_range_picker/overlay.tsx +204 -204
  86. package/src/component/date_range_picker/stories.tsx +181 -181
  87. package/src/component/date_range_picker/style.less +41 -41
  88. package/src/component/date_range_picker/time_range_select.tsx +144 -144
  89. package/src/component/date_range_picker/two.tsx +108 -108
  90. package/src/component/date_range_picker/types.ts +42 -42
  91. package/src/component/date_range_picker/util.ts +11 -11
  92. package/src/component/dialog/alert.tsx +38 -38
  93. package/src/component/dialog/confirm.tsx +120 -120
  94. package/src/component/dialog/delete_com.tsx +27 -27
  95. package/src/component/dialog/dialog.tsx +70 -70
  96. package/src/component/dialog/index.ts +16 -16
  97. package/src/component/dialog/prompt.tsx +95 -95
  98. package/src/component/dialog/stories.tsx +195 -195
  99. package/src/component/dialog/types.ts +70 -70
  100. package/src/component/divider/divider.tsx +25 -25
  101. package/src/component/divider/index.ts +2 -2
  102. package/src/component/divider/stories.tsx +14 -14
  103. package/src/component/divider/style.less +29 -29
  104. package/src/component/flex/flex.tsx +133 -133
  105. package/src/component/flex/index.ts +2 -2
  106. package/src/component/flex/stories.tsx +17 -17
  107. package/src/component/flex/style.less +105 -105
  108. package/src/component/flip_number/flip_number.tsx +209 -209
  109. package/src/component/flip_number/index.ts +2 -2
  110. package/src/component/flip_number/stories.tsx +28 -28
  111. package/src/component/flip_number/utils.ts +58 -58
  112. package/src/component/form/context.tsx +15 -15
  113. package/src/component/form/form.tsx +142 -142
  114. package/src/component/form/form_block.tsx +39 -39
  115. package/src/component/form/form_button.tsx +28 -28
  116. package/src/component/form/form_group.tsx +157 -157
  117. package/src/component/form/form_item.tsx +141 -141
  118. package/src/component/form/form_panel.tsx +63 -63
  119. package/src/component/form/index.ts +15 -15
  120. package/src/component/form/stories.tsx +448 -448
  121. package/src/component/form/style.less +159 -159
  122. package/src/component/form/types.ts +110 -110
  123. package/src/component/function_set/function_set.tsx +84 -84
  124. package/src/component/function_set/index.ts +2 -2
  125. package/src/component/function_set/overlay.tsx +41 -41
  126. package/src/component/function_set/stories.tsx +71 -71
  127. package/src/component/function_set/types.ts +15 -15
  128. package/src/component/function_set/utils.ts +21 -21
  129. package/src/component/grid/col.tsx +55 -55
  130. package/src/component/grid/index.ts +3 -3
  131. package/src/component/grid/mixin.less +48 -48
  132. package/src/component/grid/row.tsx +27 -27
  133. package/src/component/grid/stories.tsx +65 -65
  134. package/src/component/grid/style.less +27 -27
  135. package/src/component/grid/types.ts +35 -35
  136. package/src/component/grid/util.ts +12 -12
  137. package/src/component/icon_down_up/icon_down_up.tsx +22 -22
  138. package/src/component/icon_down_up/index.ts +2 -2
  139. package/src/component/icon_down_up/stories.tsx +21 -21
  140. package/src/component/icon_down_up/style.less +10 -10
  141. package/src/component/icon_expand/icon_expand.tsx +22 -22
  142. package/src/component/icon_expand/index.ts +1 -1
  143. package/src/component/img_uploader/img_uploader.tsx +168 -168
  144. package/src/component/img_uploader/index.ts +2 -2
  145. package/src/component/img_uploader/stories.tsx +58 -58
  146. package/src/component/img_uploader/style.less +22 -22
  147. package/src/component/input/index.ts +5 -5
  148. package/src/component/input/input.tsx +24 -24
  149. package/src/component/input/input_close.tsx +51 -51
  150. package/src/component/input/stories.tsx +56 -56
  151. package/src/component/input/style.less +33 -33
  152. package/src/component/input_number/index.ts +2 -2
  153. package/src/component/input_number/input_number.tsx +115 -115
  154. package/src/component/input_number/stories.tsx +27 -27
  155. package/src/component/input_number/style.less +10 -10
  156. package/src/component/input_number/utils.ts +44 -44
  157. package/src/component/label/index.tsx +19 -19
  158. package/src/component/label/stories.tsx +26 -26
  159. package/src/component/label/style.less +34 -34
  160. package/src/component/layout_root/index.ts +2 -2
  161. package/src/component/layout_root/layout_root.tsx +116 -116
  162. package/src/component/layout_root/types.ts +38 -38
  163. package/src/component/level_list/index.ts +2 -2
  164. package/src/component/level_list/level_item.tsx +79 -79
  165. package/src/component/level_list/level_list.tsx +123 -123
  166. package/src/component/level_list/stories/constants.ts +72 -72
  167. package/src/component/level_list/stories/stories.tsx +87 -87
  168. package/src/component/level_list/style.less +41 -41
  169. package/src/component/level_list/types.ts +36 -36
  170. package/src/component/level_list/utils.ts +19 -19
  171. package/src/component/level_select/index.ts +7 -7
  172. package/src/component/level_select/level_select.tsx +216 -216
  173. package/src/component/level_select/multiple_level_select.tsx +104 -104
  174. package/src/component/level_select/stories.tsx +102 -102
  175. package/src/component/level_select/types.ts +38 -38
  176. package/src/component/level_select/util.ts +20 -20
  177. package/src/component/list/base.tsx +129 -129
  178. package/src/component/list/index.ts +3 -3
  179. package/src/component/list/list.tsx +61 -61
  180. package/src/component/list/stories.tsx +113 -113
  181. package/src/component/list/style.less +58 -58
  182. package/src/component/list/types.ts +37 -37
  183. package/src/component/loading/index.ts +10 -10
  184. package/src/component/loading/loading.tsx +26 -26
  185. package/src/component/loading/loading_chunk.tsx +37 -37
  186. package/src/component/loading/loading_full_screen.tsx +45 -45
  187. package/src/component/loading/stories.tsx +43 -43
  188. package/src/component/loading/style.less +69 -69
  189. package/src/component/loading/types.ts +30 -30
  190. package/src/component/mask/index.ts +2 -2
  191. package/src/component/mask/mask.tsx +22 -22
  192. package/src/component/mask/style.less +10 -10
  193. package/src/component/modal/clean_modal.tsx +14 -14
  194. package/src/component/modal/index.ts +5 -5
  195. package/src/component/modal/modal.tsx +145 -145
  196. package/src/component/modal/right_side_modal.tsx +22 -22
  197. package/src/component/modal/stories.tsx +132 -132
  198. package/src/component/modal/style.less +138 -138
  199. package/src/component/modal/types.ts +27 -27
  200. package/src/component/more_select/base.tsx +408 -408
  201. package/src/component/more_select/index.ts +6 -6
  202. package/src/component/more_select/more_select.tsx +137 -137
  203. package/src/component/more_select/render_list_filter.ts +39 -39
  204. package/src/component/more_select/stories.tsx +323 -323
  205. package/src/component/more_select/style.less +72 -72
  206. package/src/component/more_select/types.ts +114 -114
  207. package/src/component/multiple_selection/index.ts +2 -2
  208. package/src/component/multiple_selection/multiple_selection.tsx +118 -118
  209. package/src/component/multiple_selection/stories.tsx +37 -37
  210. package/src/component/multiple_selection/style.less +57 -57
  211. package/src/component/n_progress/index.ts +1 -1
  212. package/src/component/n_progress/n_progress.tsx +39 -39
  213. package/src/component/n_progress/stories.tsx +25 -25
  214. package/src/component/n_progress/style.less +39 -39
  215. package/src/component/nav/a.tsx +7 -7
  216. package/src/component/nav/index.ts +10 -10
  217. package/src/component/nav/nav.tsx +114 -114
  218. package/src/component/nav/nav_item.tsx +98 -98
  219. package/src/component/nav/nav_single_item.tsx +28 -28
  220. package/src/component/nav/popup.tsx +100 -100
  221. package/src/component/nav/portal.ts +17 -17
  222. package/src/component/nav/stories.tsx +152 -152
  223. package/src/component/nav/style.less +246 -246
  224. package/src/component/nav/types.ts +93 -93
  225. package/src/component/pagination/index.ts +2 -2
  226. package/src/component/pagination/left.tsx +45 -45
  227. package/src/component/pagination/page_with_count.tsx +115 -115
  228. package/src/component/pagination/page_without_count.tsx +64 -64
  229. package/src/component/pagination/pagination.tsx +23 -23
  230. package/src/component/pagination/right.tsx +78 -78
  231. package/src/component/pagination/stories.tsx +62 -62
  232. package/src/component/pagination/style.less +51 -51
  233. package/src/component/pagination/types.ts +16 -16
  234. package/src/component/pagination/util.ts +7 -7
  235. package/src/component/popover/index.ts +2 -2
  236. package/src/component/popover/popover.tsx +279 -279
  237. package/src/component/popover/stories.tsx +104 -104
  238. package/src/component/popover/types.ts +25 -25
  239. package/src/component/popover/utils.ts +22 -22
  240. package/src/component/popup/element_in_viewport.ts +33 -33
  241. package/src/component/popup/index.ts +4 -4
  242. package/src/component/popup/popup.tsx +149 -149
  243. package/src/component/popup/popup_content_confirm.tsx +106 -106
  244. package/src/component/popup/style.less +107 -107
  245. package/src/component/price/constant.ts +4 -4
  246. package/src/component/price/event_bus.ts +13 -13
  247. package/src/component/price/index.ts +2 -2
  248. package/src/component/price/price.tsx +152 -152
  249. package/src/component/price/stories.tsx +22 -22
  250. package/src/component/progress/index.ts +2 -2
  251. package/src/component/progress/progress.tsx +53 -53
  252. package/src/component/progress/stories.tsx +20 -20
  253. package/src/component/progress/style.less +35 -35
  254. package/src/component/progress_circle/index.ts +2 -2
  255. package/src/component/progress_circle/progress_circle.tsx +85 -85
  256. package/src/component/progress_circle/stories.tsx +31 -31
  257. package/src/component/progress_circle/style.less +21 -21
  258. package/src/component/radio/index.ts +5 -5
  259. package/src/component/radio/radio.tsx +72 -72
  260. package/src/component/radio/radio_group.tsx +48 -48
  261. package/src/component/radio/stories.tsx +103 -103
  262. package/src/component/radio/style.less +56 -56
  263. package/src/component/radio/util.ts +19 -19
  264. package/src/component/recommend_input/index.ts +2 -2
  265. package/src/component/recommend_input/recommend_input.tsx +100 -100
  266. package/src/component/recommend_input/stories.tsx +47 -47
  267. package/src/component/recommend_input/style.less +25 -25
  268. package/src/component/select/index.ts +2 -2
  269. package/src/component/select/select.tsx +171 -171
  270. package/src/component/select/stories.tsx +140 -140
  271. package/src/component/select/style.less +4 -4
  272. package/src/component/select/types.ts +29 -29
  273. package/src/component/selection/index.ts +2 -2
  274. package/src/component/selection/selection.tsx +162 -162
  275. package/src/component/selection/stories.tsx +45 -45
  276. package/src/component/selection/style.less +65 -65
  277. package/src/component/steps/index.ts +2 -2
  278. package/src/component/steps/steps.tsx +61 -61
  279. package/src/component/steps/stories.tsx +18 -18
  280. package/src/component/steps/style.less +39 -39
  281. package/src/component/storage/index.ts +1 -1
  282. package/src/component/storage/storage.ts +7 -7
  283. package/src/component/storage/stories.tsx +7 -7
  284. package/src/component/switch/index.ts +2 -2
  285. package/src/component/switch/stories.tsx +39 -39
  286. package/src/component/switch/style.less +60 -60
  287. package/src/component/switch/switch.tsx +127 -127
  288. package/src/component/table_select/index.ts +2 -2
  289. package/src/component/table_select/stories.tsx +97 -97
  290. package/src/component/table_select/style.less +20 -20
  291. package/src/component/table_select/table_select.tsx +92 -92
  292. package/src/component/table_select/types.ts +30 -30
  293. package/src/component/table_select/util.ts +15 -15
  294. package/src/component/tabs/index.ts +2 -2
  295. package/src/component/tabs/stories.tsx +172 -172
  296. package/src/component/tabs/style.less +149 -149
  297. package/src/component/tabs/tabs.tsx +232 -232
  298. package/src/component/textarea/index.ts +3 -3
  299. package/src/component/textarea/stories.tsx +37 -37
  300. package/src/component/textarea/style.less +12 -12
  301. package/src/component/textarea/textarea.tsx +22 -22
  302. package/src/component/time_span/index.ts +4 -4
  303. package/src/component/time_span/stories.tsx +87 -87
  304. package/src/component/time_span/style.less +45 -45
  305. package/src/component/time_span/time_span.tsx +129 -129
  306. package/src/component/time_span/time_span_picker.tsx +71 -71
  307. package/src/component/time_span/types.ts +58 -58
  308. package/src/component/time_span/util.ts +18 -18
  309. package/src/component/tip/index.ts +2 -2
  310. package/src/component/tip/stories.tsx +44 -44
  311. package/src/component/tip/style.less +53 -53
  312. package/src/component/tip/tip.tsx +95 -95
  313. package/src/component/tip/types.ts +20 -20
  314. package/src/component/tooltip/index.ts +2 -2
  315. package/src/component/tooltip/stories.tsx +32 -32
  316. package/src/component/tooltip/tooltip.tsx +40 -40
  317. package/src/component/transfer/index.ts +2 -2
  318. package/src/component/transfer/stories.tsx +140 -140
  319. package/src/component/transfer/transfer.tsx +147 -147
  320. package/src/component/transfer/types.ts +42 -42
  321. package/src/component/tree/bottom.tsx +34 -34
  322. package/src/component/tree/find.tsx +73 -73
  323. package/src/component/tree/index.ts +2 -2
  324. package/src/component/tree/item.tsx +75 -75
  325. package/src/component/tree/list.tsx +123 -123
  326. package/src/component/tree/search.tsx +29 -29
  327. package/src/component/tree/stories.tsx +309 -309
  328. package/src/component/tree/style.less +35 -35
  329. package/src/component/tree/tree.tsx +238 -238
  330. package/src/component/tree/types.ts +155 -155
  331. package/src/component/tree/util.ts +208 -208
  332. package/src/component/uploader/default_container.tsx +24 -24
  333. package/src/component/uploader/default_image.tsx +15 -15
  334. package/src/component/uploader/index.ts +10 -10
  335. package/src/component/uploader/stories.tsx +53 -53
  336. package/src/component/uploader/style.less +22 -22
  337. package/src/component/uploader/types.ts +25 -25
  338. package/src/component/uploader/uploader.tsx +62 -62
  339. package/src/component/v_browser/context/browser.ts +7 -7
  340. package/src/component/v_browser/context/browserWindow.ts +7 -7
  341. package/src/component/v_browser/hooks/useWindowEffect.ts +53 -53
  342. package/src/component/v_browser/index.ts +4 -4
  343. package/src/component/v_browser/types.ts +46 -46
  344. package/src/component/v_browser/ui/iframe_portal.tsx +28 -28
  345. package/src/component/v_browser/ui/index.tsx +213 -213
  346. package/src/component/v_browser/ui/style.less +113 -113
  347. package/src/component/v_browser/ui/window_wrapper.tsx +74 -74
  348. package/src/component/v_browser/v_browser.stories.mdx +128 -128
  349. package/src/component/v_browser/v_browser.tsx +287 -287
  350. package/src/css/base.less +64 -64
  351. package/src/css/bg.less +52 -52
  352. package/src/css/border.less +40 -40
  353. package/src/css/cursor.less +19 -19
  354. package/src/css/display.less +16 -16
  355. package/src/css/distance.less +93 -93
  356. package/src/css/error.less +8 -8
  357. package/src/css/other.less +15 -15
  358. package/src/css/overflow.less +23 -23
  359. package/src/css/position.less +11 -11
  360. package/src/css/svg.less +48 -48
  361. package/src/css/text.less +127 -127
  362. package/src/css/var/mixin.less +75 -75
  363. package/src/css/var/variables.less +125 -125
  364. package/src/event_type.ts +11 -11
  365. package/src/index.less +64 -64
  366. package/src/index.ts +61 -61
  367. package/src/svg/calendar-month.svg +8 -8
  368. package/src/svg/calendar-year.svg +13 -13
  369. package/src/svg/calendar.svg +17 -17
  370. package/src/svg/check-detail.svg +18 -18
  371. package/src/svg/close-circle.svg +13 -13
  372. package/src/svg/close-square.svg +12 -12
  373. package/src/svg/closeup.svg +20 -20
  374. package/src/svg/delete.svg +10 -10
  375. package/src/svg/down-small.svg +1 -1
  376. package/src/svg/down.svg +1 -1
  377. package/src/svg/edit-box.svg +17 -17
  378. package/src/svg/edit-pen.svg +17 -17
  379. package/src/svg/empty.svg +27 -27
  380. package/src/svg/expand.svg +21 -21
  381. package/src/svg/left-small.svg +1 -1
  382. package/src/svg/more.svg +10 -10
  383. package/src/svg/next.svg +40 -40
  384. package/src/svg/pen.svg +12 -12
  385. package/src/svg/remove.svg +1 -1
  386. package/src/svg/right-small.svg +1 -1
  387. package/src/svg/search.svg +8 -8
  388. package/src/svg/setting.svg +17 -17
  389. package/src/svg/up-small.svg +1 -1
  390. package/src/svg/up.svg +1 -1
  391. package/src/svg/vbrowser-tab-delete.svg +8 -8
  392. package/src/svg/vbrowser-tab-left.svg +8 -8
  393. package/src/svg/vbrowser-tab-right.svg +8 -8
  394. package/src/types.ts +33 -33
  395. package/src/validator/index.ts +16 -16
  396. package/src/validator/rules.ts +61 -61
  397. package/src/validator/types.ts +10 -10
  398. package/src/validator/validator.ts +95 -95
  399. package/src/var.less +2 -2
@@ -1,40 +1,40 @@
1
- import React, { forwardRef, HTMLAttributes, ReactNode } from 'react'
2
- import classNames from 'classnames'
3
- import { Popover } from '../popover'
4
- import SVGQuestionCircle from '../../svg/question-circle-o.svg'
5
-
6
- interface TooltipProps extends HTMLAttributes<HTMLSpanElement> {
7
- popup: ReactNode
8
- right?: boolean
9
- top?: boolean
10
- center?: boolean
11
- offset?: number
12
- showArrow?: boolean
13
- }
14
-
15
- const Tooltip = forwardRef<Popover, TooltipProps>(
16
- (
17
- { popup, children, right, top, center, offset, showArrow, className, ...rest },
18
- ref
19
- ) => (
20
- <Popover
21
- popup={popup}
22
- ref={ref}
23
- top={top}
24
- type='hover'
25
- right={right}
26
- offset={offset}
27
- center={center}
28
- showArrow={showArrow}
29
- >
30
- {children ?? (
31
- <span {...rest} className={classNames('gm-text-desc', className)}>
32
- <SVGQuestionCircle />
33
- </span>
34
- )}
35
- </Popover>
36
- )
37
- )
38
-
39
- export default Tooltip
40
- export type { TooltipProps }
1
+ import React, { forwardRef, HTMLAttributes, ReactNode } from 'react'
2
+ import classNames from 'classnames'
3
+ import { Popover } from '../popover'
4
+ import SVGQuestionCircle from '../../svg/question-circle-o.svg'
5
+
6
+ interface TooltipProps extends HTMLAttributes<HTMLSpanElement> {
7
+ popup: ReactNode
8
+ right?: boolean
9
+ top?: boolean
10
+ center?: boolean
11
+ offset?: number
12
+ showArrow?: boolean
13
+ }
14
+
15
+ const Tooltip = forwardRef<Popover, TooltipProps>(
16
+ (
17
+ { popup, children, right, top, center, offset, showArrow, className, ...rest },
18
+ ref
19
+ ) => (
20
+ <Popover
21
+ popup={popup}
22
+ ref={ref}
23
+ top={top}
24
+ type='hover'
25
+ right={right}
26
+ offset={offset}
27
+ center={center}
28
+ showArrow={showArrow}
29
+ >
30
+ {children ?? (
31
+ <span {...rest} className={classNames('gm-text-desc', className)}>
32
+ <SVGQuestionCircle />
33
+ </span>
34
+ )}
35
+ </Popover>
36
+ )
37
+ )
38
+
39
+ export default Tooltip
40
+ export type { TooltipProps }
@@ -1,2 +1,2 @@
1
- export { default as Transfer } from './transfer'
2
- export type { TransferProps, TransferListItem } from './types'
1
+ export { default as Transfer } from './transfer'
2
+ export type { TransferProps, TransferListItem } from './types'
@@ -1,140 +1,140 @@
1
- import React from 'react'
2
- import { observable, toJS } from 'mobx'
3
- import Transfer from './transfer'
4
-
5
- const store = observable({
6
- treeData: [
7
- {
8
- value: 'A33792',
9
- children: [
10
- {
11
- value: 'B119099',
12
- children: [
13
- { value: 'C4125709', text: '腿肉(冷鲜)' },
14
- { value: 'C4125717', text: '肉片(冷鲜)' },
15
- { value: 'C4125676', text: '带皮五花肉(冷鲜)' },
16
- { value: 'C4125698', text: '去皮五花肉(冷鲜)' },
17
- { value: 'C4125706', text: '瘦肉(冷鲜)' },
18
- ],
19
- text: '冷鲜肉',
20
- },
21
- ],
22
- text: '冷鲜肉类',
23
- },
24
- {
25
- value: 'A6982',
26
- children: [
27
- {
28
- value: 'B34032',
29
- children: [
30
- { value: 'C1292441', text: '中排骨' },
31
- { value: 'C3125818', text: '保鲜筒子骨' },
32
- { value: 'C1292444', text: '排骨 不砍' },
33
- { value: 'C1292448', text: '棒骨(带肉)' },
34
- { value: 'C1292443', text: '仔排' },
35
- { value: 'C1292449', text: '棒骨(不带扇骨)' },
36
- { value: 'C1292451', text: '肉脊骨(20%肉)' },
37
- { value: 'C1292445', text: '排骨 砍块' },
38
- { value: 'C1292455', text: '猪脆骨 ' },
39
- { value: 'C1292456', text: '猪腔骨 ' },
40
- { value: 'C1292454', text: '猪肋骨(二级)' },
41
- { value: 'C1292453', text: '猪头骨(7斤/只)' },
42
- { value: 'C1292446', text: '猪前排(去颈/1.25kg/块)' },
43
- { value: 'C1292447', text: '棒骨 (砍断)' },
44
- { value: 'C1292442', text: '排骨块(老排/约3-5厘米)' },
45
- { value: 'C1292452', text: '扇骨(剁块)' },
46
- { value: 'C1292450', text: '前腿骨头(带肉)' },
47
- ],
48
- text: '猪排骨类',
49
- },
50
- {
51
- value: 'B34021',
52
- children: [
53
- { value: 'C1292514', text: '土鸡 (鲜 2斤/只 去内脏)' },
54
- { value: 'C1354435', text: '老鸡' },
55
- { value: 'C1634180', text: '黄油鸡' },
56
- { value: 'C1292516', text: '叫鸡 (鲜 3斤/只 去内脏)' },
57
- { value: 'C1292509', text: '老母鸡(鲜 3斤/只 去内脏)' },
58
- { value: 'C1634561', text: '活 乌鸡' },
59
- { value: 'C1620471', text: '蛋鸡' },
60
- { value: 'C1292518', text: '草鸡 (鲜 3斤/只 去内脏)' },
61
- { value: 'C1292513', text: '黑脚鸡 (鲜 3斤/只去内脏)' },
62
- { value: 'C1880029', text: '正宗土鸡' },
63
- { value: 'C1292507', text: '乌鸡 (鲜 2斤/只 去内脏)' },
64
- { value: 'C1292512', text: '矮脚鸡(鲜 2斤/只 去内脏)' },
65
- { value: 'C1292515', text: '肉鸡 (鲜 3斤/只 去内脏)' },
66
- { value: 'C1292511', text: '清远鸡 (鲜 2斤/只 去内脏)' },
67
- { value: 'C1292510', text: '黑毛鸡 (鲜 2斤/只 去内脏)' },
68
- { value: 'C1354096', text: '仔鸡' },
69
- { value: 'C1292517', text: '老公鸡 (鲜 3斤/只 去内脏)' },
70
- { value: 'C1292505', text: '三黄鸡 (鲜 2斤/只 去内脏)' },
71
- ],
72
- text: '整鸡类',
73
- },
74
- ],
75
- text: '肉禽类',
76
- },
77
- ],
78
- flatData: [
79
- { value: 'C1292441', text: '中排骨' },
80
- { value: 'C3125818', text: '保鲜筒子骨' },
81
- { value: 'C1292444', text: '排骨 不砍' },
82
- { value: 'C1292448', text: '棒骨(带肉)' },
83
- { value: 'C1292443', text: '仔排' },
84
- { value: 'C1292449', text: '棒骨(不带扇骨)' },
85
- { value: 'C1292451', text: '肉脊骨(20%肉)' },
86
- { value: 'C1292445', text: '排骨 砍块' },
87
- { value: 'C1292455', text: '猪脆骨 ' },
88
- { value: 'C1292456', text: '猪腔骨 ' },
89
- { value: 'C1292454', text: '猪肋骨(二级)' },
90
- { value: 'C1292453', text: '猪头骨(7斤/只)' },
91
- { value: 'C1292446', text: '猪前排(去颈/1.25kg/块)' },
92
- { value: 'C1292447', text: '棒骨 (砍断)' },
93
- { value: 'C1292442', text: '排骨块(老排/约3-5厘米)' },
94
- { value: 'C1292452', text: '扇骨(剁块)' },
95
- { value: 'C1292450', text: '前腿骨头(带肉)' },
96
- ],
97
- selected: ['C1292452'],
98
- onSelected(selected: string[]) {
99
- this.selected = selected
100
- },
101
- parentInfo: [] as string[],
102
- doShowParentInfo(select: string[]) {
103
- this.parentInfo = select
104
- },
105
- })
106
-
107
- export const ComTransfer = () => (
108
- <Transfer
109
- list={toJS(store.flatData)}
110
- selectedValues={store.selected}
111
- onSelectValues={(selected) => store.onSelected(selected)}
112
- rightTree
113
- />
114
- )
115
-
116
- export const ComTransferWithRightTree = () => (
117
- <div style={{ display: 'flex' }}>
118
- <div style={{ marginRight: '30px' }}>
119
- <p>右边非树结构</p>
120
- <Transfer
121
- list={toJS(store.treeData)}
122
- selectedValues={store.selected}
123
- onSelectValues={(selected) => store.onSelected(selected)}
124
- />
125
- </div>
126
- <div>
127
- <p>右边树结构</p>
128
- <Transfer
129
- list={toJS(store.treeData)}
130
- selectedValues={store.selected}
131
- onSelectValues={(selected) => store.onSelected(selected)}
132
- rightTree
133
- />
134
- </div>
135
- </div>
136
- )
137
-
138
- export default {
139
- title: '表单/Transfer',
140
- }
1
+ import React from 'react'
2
+ import { observable, toJS } from 'mobx'
3
+ import Transfer from './transfer'
4
+
5
+ const store = observable({
6
+ treeData: [
7
+ {
8
+ value: 'A33792',
9
+ children: [
10
+ {
11
+ value: 'B119099',
12
+ children: [
13
+ { value: 'C4125709', text: '腿肉(冷鲜)' },
14
+ { value: 'C4125717', text: '肉片(冷鲜)' },
15
+ { value: 'C4125676', text: '带皮五花肉(冷鲜)' },
16
+ { value: 'C4125698', text: '去皮五花肉(冷鲜)' },
17
+ { value: 'C4125706', text: '瘦肉(冷鲜)' },
18
+ ],
19
+ text: '冷鲜肉',
20
+ },
21
+ ],
22
+ text: '冷鲜肉类',
23
+ },
24
+ {
25
+ value: 'A6982',
26
+ children: [
27
+ {
28
+ value: 'B34032',
29
+ children: [
30
+ { value: 'C1292441', text: '中排骨' },
31
+ { value: 'C3125818', text: '保鲜筒子骨' },
32
+ { value: 'C1292444', text: '排骨 不砍' },
33
+ { value: 'C1292448', text: '棒骨(带肉)' },
34
+ { value: 'C1292443', text: '仔排' },
35
+ { value: 'C1292449', text: '棒骨(不带扇骨)' },
36
+ { value: 'C1292451', text: '肉脊骨(20%肉)' },
37
+ { value: 'C1292445', text: '排骨 砍块' },
38
+ { value: 'C1292455', text: '猪脆骨 ' },
39
+ { value: 'C1292456', text: '猪腔骨 ' },
40
+ { value: 'C1292454', text: '猪肋骨(二级)' },
41
+ { value: 'C1292453', text: '猪头骨(7斤/只)' },
42
+ { value: 'C1292446', text: '猪前排(去颈/1.25kg/块)' },
43
+ { value: 'C1292447', text: '棒骨 (砍断)' },
44
+ { value: 'C1292442', text: '排骨块(老排/约3-5厘米)' },
45
+ { value: 'C1292452', text: '扇骨(剁块)' },
46
+ { value: 'C1292450', text: '前腿骨头(带肉)' },
47
+ ],
48
+ text: '猪排骨类',
49
+ },
50
+ {
51
+ value: 'B34021',
52
+ children: [
53
+ { value: 'C1292514', text: '土鸡 (鲜 2斤/只 去内脏)' },
54
+ { value: 'C1354435', text: '老鸡' },
55
+ { value: 'C1634180', text: '黄油鸡' },
56
+ { value: 'C1292516', text: '叫鸡 (鲜 3斤/只 去内脏)' },
57
+ { value: 'C1292509', text: '老母鸡(鲜 3斤/只 去内脏)' },
58
+ { value: 'C1634561', text: '活 乌鸡' },
59
+ { value: 'C1620471', text: '蛋鸡' },
60
+ { value: 'C1292518', text: '草鸡 (鲜 3斤/只 去内脏)' },
61
+ { value: 'C1292513', text: '黑脚鸡 (鲜 3斤/只去内脏)' },
62
+ { value: 'C1880029', text: '正宗土鸡' },
63
+ { value: 'C1292507', text: '乌鸡 (鲜 2斤/只 去内脏)' },
64
+ { value: 'C1292512', text: '矮脚鸡(鲜 2斤/只 去内脏)' },
65
+ { value: 'C1292515', text: '肉鸡 (鲜 3斤/只 去内脏)' },
66
+ { value: 'C1292511', text: '清远鸡 (鲜 2斤/只 去内脏)' },
67
+ { value: 'C1292510', text: '黑毛鸡 (鲜 2斤/只 去内脏)' },
68
+ { value: 'C1354096', text: '仔鸡' },
69
+ { value: 'C1292517', text: '老公鸡 (鲜 3斤/只 去内脏)' },
70
+ { value: 'C1292505', text: '三黄鸡 (鲜 2斤/只 去内脏)' },
71
+ ],
72
+ text: '整鸡类',
73
+ },
74
+ ],
75
+ text: '肉禽类',
76
+ },
77
+ ],
78
+ flatData: [
79
+ { value: 'C1292441', text: '中排骨' },
80
+ { value: 'C3125818', text: '保鲜筒子骨' },
81
+ { value: 'C1292444', text: '排骨 不砍' },
82
+ { value: 'C1292448', text: '棒骨(带肉)' },
83
+ { value: 'C1292443', text: '仔排' },
84
+ { value: 'C1292449', text: '棒骨(不带扇骨)' },
85
+ { value: 'C1292451', text: '肉脊骨(20%肉)' },
86
+ { value: 'C1292445', text: '排骨 砍块' },
87
+ { value: 'C1292455', text: '猪脆骨 ' },
88
+ { value: 'C1292456', text: '猪腔骨 ' },
89
+ { value: 'C1292454', text: '猪肋骨(二级)' },
90
+ { value: 'C1292453', text: '猪头骨(7斤/只)' },
91
+ { value: 'C1292446', text: '猪前排(去颈/1.25kg/块)' },
92
+ { value: 'C1292447', text: '棒骨 (砍断)' },
93
+ { value: 'C1292442', text: '排骨块(老排/约3-5厘米)' },
94
+ { value: 'C1292452', text: '扇骨(剁块)' },
95
+ { value: 'C1292450', text: '前腿骨头(带肉)' },
96
+ ],
97
+ selected: ['C1292452'],
98
+ onSelected(selected: string[]) {
99
+ this.selected = selected
100
+ },
101
+ parentInfo: [] as string[],
102
+ doShowParentInfo(select: string[]) {
103
+ this.parentInfo = select
104
+ },
105
+ })
106
+
107
+ export const ComTransfer = () => (
108
+ <Transfer
109
+ list={toJS(store.flatData)}
110
+ selectedValues={store.selected}
111
+ onSelectValues={(selected) => store.onSelected(selected)}
112
+ rightTree
113
+ />
114
+ )
115
+
116
+ export const ComTransferWithRightTree = () => (
117
+ <div style={{ display: 'flex' }}>
118
+ <div style={{ marginRight: '30px' }}>
119
+ <p>右边非树结构</p>
120
+ <Transfer
121
+ list={toJS(store.treeData)}
122
+ selectedValues={store.selected}
123
+ onSelectValues={(selected) => store.onSelected(selected)}
124
+ />
125
+ </div>
126
+ <div>
127
+ <p>右边树结构</p>
128
+ <Transfer
129
+ list={toJS(store.treeData)}
130
+ selectedValues={store.selected}
131
+ onSelectValues={(selected) => store.onSelected(selected)}
132
+ rightTree
133
+ />
134
+ </div>
135
+ </div>
136
+ )
137
+
138
+ export default {
139
+ title: '表单/Transfer',
140
+ }
@@ -1,147 +1,147 @@
1
- import React, { useState, useMemo, FC } from 'react'
2
- import { getLocale } from '@gm-pc/locales'
3
- import { Tree } from '../tree'
4
- import { Flex } from '../flex'
5
- import SvgRightSmall from '../../svg/right-small.svg'
6
- import SvgLeftSmall from '../../svg/left-small.svg'
7
- import { Button } from '../button'
8
- import _ from 'lodash'
9
- import { filterGroupListLeaf } from '@gm-common/tool'
10
- import { Value, TransferListItem, TransferProps } from './types'
11
-
12
- function getLeftAndRightList(
13
- list: TransferListItem[],
14
- selectedValues: Value[],
15
- rightTree?: boolean
16
- ) {
17
- let rightList: TransferListItem[] = []
18
- const leftList = filterGroupListLeaf(list, (leaf) => {
19
- const isRight = selectedValues.includes(leaf.value)
20
- if (isRight) {
21
- rightList.push(leaf)
22
- }
23
- return !isRight
24
- })
25
-
26
- if (rightTree) {
27
- rightList = filterGroupListLeaf(list, (leaf) => {
28
- return _.includes(selectedValues, leaf.value)
29
- })
30
- }
31
-
32
- return [leftList, rightList]
33
- }
34
-
35
- interface State {
36
- lefts: Value[]
37
- rights: Value[]
38
- }
39
-
40
- const Transfer: FC<TransferProps> = ({
41
- list,
42
- selectedValues,
43
- onSelectValues,
44
- rightTree,
45
- className,
46
- style,
47
-
48
- leftTitle = getLocale('待选择'),
49
- leftPlaceholder,
50
- leftWithFilter,
51
- leftRenderLeafItem,
52
- leftRenderGroupItem,
53
- leftStyle = { width: '300px', height: '500px' },
54
- leftClassName,
55
-
56
- rightTitle = getLocale('已选择'),
57
- rightPlaceholder,
58
- rightWithFilter,
59
- rightRenderLeafItem,
60
- rightRenderGroupItem,
61
- rightStyle = { width: '300px', height: '500px' },
62
- rightClassName,
63
- hideToLeftBtn,
64
-
65
- ...rest
66
- }) => {
67
- const [{ lefts, rights }, setLeftRights] = useState<State>({
68
- lefts: [],
69
- rights: [],
70
- })
71
-
72
- const [leftList, rightList] = useMemo(() => {
73
- return getLeftAndRightList(list, selectedValues, rightTree)
74
- }, [list, selectedValues, rightTree])
75
-
76
- const handleLefts = (values: Value[]) => {
77
- setLeftRights({
78
- lefts: values,
79
- rights,
80
- })
81
- }
82
- const handleRights = (values: Value[]) => {
83
- setLeftRights({
84
- lefts,
85
- rights: values,
86
- })
87
- }
88
-
89
- const handleClick = (isLeft: boolean) => {
90
- setLeftRights({ lefts: [], rights: [] })
91
- onSelectValues(_.xor(selectedValues, isLeft ? rights : lefts))
92
- }
93
-
94
- const handleToLeft = () => {
95
- handleClick(true)
96
- }
97
-
98
- const handleToRight = () => {
99
- handleClick(false)
100
- }
101
-
102
- return (
103
- <Flex className={className} {...rest}>
104
- <Tree
105
- list={leftList}
106
- onSelectValues={handleLefts}
107
- selectedValues={lefts}
108
- title={leftTitle}
109
- placeholder={leftPlaceholder}
110
- withFilter={leftWithFilter}
111
- renderLeafItem={leftRenderLeafItem}
112
- renderGroupItem={leftRenderGroupItem}
113
- style={leftStyle}
114
- />
115
- <div className='gm-gap-5' />
116
- <Flex column justifyCenter alignCenter className='gm-transfer-operation'>
117
- <Button
118
- className='gm-margin-bottom-5'
119
- plain
120
- disabled={lefts.length === 0}
121
- onClick={handleToRight}
122
- >
123
- <SvgRightSmall />
124
- </Button>
125
- {!hideToLeftBtn && (
126
- <Button plain disabled={rights.length === 0} onClick={handleToLeft}>
127
- <SvgLeftSmall />
128
- </Button>
129
- )}
130
- </Flex>
131
- <div className='gm-gap-5' />
132
- <Tree
133
- list={rightList}
134
- onSelectValues={handleRights}
135
- selectedValues={rights}
136
- title={rightTitle}
137
- placeholder={rightPlaceholder}
138
- withFilter={rightWithFilter}
139
- renderLeafItem={rightRenderLeafItem}
140
- renderGroupItem={rightRenderGroupItem}
141
- style={rightStyle}
142
- />
143
- </Flex>
144
- )
145
- }
146
-
147
- export default Transfer
1
+ import React, { useState, useMemo, FC } from 'react'
2
+ import { getLocale } from '@gm-pc/locales'
3
+ import { Tree } from '../tree'
4
+ import { Flex } from '../flex'
5
+ import SvgRightSmall from '../../svg/right-small.svg'
6
+ import SvgLeftSmall from '../../svg/left-small.svg'
7
+ import { Button } from '../button'
8
+ import _ from 'lodash'
9
+ import { filterGroupListLeaf } from '@gm-common/tool'
10
+ import { Value, TransferListItem, TransferProps } from './types'
11
+
12
+ function getLeftAndRightList(
13
+ list: TransferListItem[],
14
+ selectedValues: Value[],
15
+ rightTree?: boolean
16
+ ) {
17
+ let rightList: TransferListItem[] = []
18
+ const leftList = filterGroupListLeaf(list, (leaf) => {
19
+ const isRight = selectedValues.includes(leaf.value)
20
+ if (isRight) {
21
+ rightList.push(leaf)
22
+ }
23
+ return !isRight
24
+ })
25
+
26
+ if (rightTree) {
27
+ rightList = filterGroupListLeaf(list, (leaf) => {
28
+ return _.includes(selectedValues, leaf.value)
29
+ })
30
+ }
31
+
32
+ return [leftList, rightList]
33
+ }
34
+
35
+ interface State {
36
+ lefts: Value[]
37
+ rights: Value[]
38
+ }
39
+
40
+ const Transfer: FC<TransferProps> = ({
41
+ list,
42
+ selectedValues,
43
+ onSelectValues,
44
+ rightTree,
45
+ className,
46
+ style,
47
+
48
+ leftTitle = getLocale('待选择'),
49
+ leftPlaceholder,
50
+ leftWithFilter,
51
+ leftRenderLeafItem,
52
+ leftRenderGroupItem,
53
+ leftStyle = { width: '300px', height: '500px' },
54
+ leftClassName,
55
+
56
+ rightTitle = getLocale('已选择'),
57
+ rightPlaceholder,
58
+ rightWithFilter,
59
+ rightRenderLeafItem,
60
+ rightRenderGroupItem,
61
+ rightStyle = { width: '300px', height: '500px' },
62
+ rightClassName,
63
+ hideToLeftBtn,
64
+
65
+ ...rest
66
+ }) => {
67
+ const [{ lefts, rights }, setLeftRights] = useState<State>({
68
+ lefts: [],
69
+ rights: [],
70
+ })
71
+
72
+ const [leftList, rightList] = useMemo(() => {
73
+ return getLeftAndRightList(list, selectedValues, rightTree)
74
+ }, [list, selectedValues, rightTree])
75
+
76
+ const handleLefts = (values: Value[]) => {
77
+ setLeftRights({
78
+ lefts: values,
79
+ rights,
80
+ })
81
+ }
82
+ const handleRights = (values: Value[]) => {
83
+ setLeftRights({
84
+ lefts,
85
+ rights: values,
86
+ })
87
+ }
88
+
89
+ const handleClick = (isLeft: boolean) => {
90
+ setLeftRights({ lefts: [], rights: [] })
91
+ onSelectValues(_.xor(selectedValues, isLeft ? rights : lefts))
92
+ }
93
+
94
+ const handleToLeft = () => {
95
+ handleClick(true)
96
+ }
97
+
98
+ const handleToRight = () => {
99
+ handleClick(false)
100
+ }
101
+
102
+ return (
103
+ <Flex className={className} {...rest}>
104
+ <Tree
105
+ list={leftList}
106
+ onSelectValues={handleLefts}
107
+ selectedValues={lefts}
108
+ title={leftTitle}
109
+ placeholder={leftPlaceholder}
110
+ withFilter={leftWithFilter}
111
+ renderLeafItem={leftRenderLeafItem}
112
+ renderGroupItem={leftRenderGroupItem}
113
+ style={leftStyle}
114
+ />
115
+ <div className='gm-gap-5' />
116
+ <Flex column justifyCenter alignCenter className='gm-transfer-operation'>
117
+ <Button
118
+ className='gm-margin-bottom-5'
119
+ plain
120
+ disabled={lefts.length === 0}
121
+ onClick={handleToRight}
122
+ >
123
+ <SvgRightSmall />
124
+ </Button>
125
+ {!hideToLeftBtn && (
126
+ <Button plain disabled={rights.length === 0} onClick={handleToLeft}>
127
+ <SvgLeftSmall />
128
+ </Button>
129
+ )}
130
+ </Flex>
131
+ <div className='gm-gap-5' />
132
+ <Tree
133
+ list={rightList}
134
+ onSelectValues={handleRights}
135
+ selectedValues={rights}
136
+ title={rightTitle}
137
+ placeholder={rightPlaceholder}
138
+ withFilter={rightWithFilter}
139
+ renderLeafItem={rightRenderLeafItem}
140
+ renderGroupItem={rightRenderGroupItem}
141
+ style={rightStyle}
142
+ />
143
+ </Flex>
144
+ )
145
+ }
146
+
147
+ export default Transfer