@gm-pc/react 1.25.1-beta.1 → 1.26.0-beta.0

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 +56 -56
  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 +187 -187
  76. package/src/component/date_picker/index.ts +2 -2
  77. package/src/component/date_picker/overlay.tsx +115 -115
  78. package/src/component/date_picker/stories.tsx +109 -109
  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 +52 -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 +79 -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 +154 -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 +172 -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,84 +1,84 @@
1
- import React, { Component, createRef, FC, HTMLAttributes } from 'react'
2
- import { FunctionSetData, FunctionSetProps } from './types'
3
- import { Popover } from '../popover'
4
- import Overlay from './overlay'
5
- import { Button } from '../button'
6
- import { getLocale } from '@gm-pc/locales'
7
- import { IconDownUp } from '../icon_down_up'
8
- import { ConfigConsumer, ConfigProvider } from '../config_provider'
9
-
10
- interface InnerProps extends HTMLAttributes<HTMLDivElement> {
11
- disabled: boolean
12
- }
13
-
14
- const Inner: FC<InnerProps> = ({ disabled, className, children, ...rest }) => {
15
- return (
16
- <div className='gm-inline-block' {...rest}>
17
- {children ?? (
18
- <Default
19
- active={(className ?? '').includes('gm-popover-active')}
20
- disabled={disabled}
21
- />
22
- )}
23
- </div>
24
- )
25
- }
26
-
27
- interface DefaultProps {
28
- disabled: boolean
29
- active: boolean
30
- }
31
-
32
- const Default: FC<DefaultProps> = ({ disabled, active }) => {
33
- return (
34
- <Button type='primary' plain disabled={disabled}>
35
- {getLocale('更多功能')} &nbsp;
36
- <IconDownUp active={active} />
37
- </Button>
38
- )
39
- }
40
-
41
- class FunctionSet extends Component<FunctionSetProps> {
42
- private _popoverRef = createRef<Popover>()
43
-
44
- public apiDoSetActive = (active?: boolean): void => {
45
- this._popoverRef.current!.apiDoSetActive(active)
46
- }
47
-
48
- private _handleSelect = (select: FunctionSetData): void => {
49
- if (!select.onClick) {
50
- return
51
- }
52
- this._popoverRef.current!.apiDoSetActive()
53
- select.onClick()
54
- }
55
-
56
- render() {
57
- const { data, right, disabled, children } = this.props
58
- const newData = data.filter((value) => value.show !== false)
59
- if (!newData.length) {
60
- return null
61
- }
62
- return (
63
- <ConfigConsumer>
64
- {(config) => (
65
- <Popover
66
- ref={this._popoverRef}
67
- popup={
68
- <ConfigProvider {...config}>
69
- <Overlay data={newData} onSelect={this._handleSelect} isReverse={right} />
70
- </ConfigProvider>
71
- }
72
- right={right}
73
- type='hover'
74
- disabled={disabled}
75
- pureContainer
76
- >
77
- <Inner disabled={!!disabled}>{children}</Inner>
78
- </Popover>
79
- )}
80
- </ConfigConsumer>
81
- )
82
- }
83
- }
84
- export default FunctionSet
1
+ import React, { Component, createRef, FC, HTMLAttributes } from 'react'
2
+ import { FunctionSetData, FunctionSetProps } from './types'
3
+ import { Popover } from '../popover'
4
+ import Overlay from './overlay'
5
+ import { Button } from '../button'
6
+ import { getLocale } from '@gm-pc/locales'
7
+ import { IconDownUp } from '../icon_down_up'
8
+ import { ConfigConsumer, ConfigProvider } from '../config_provider'
9
+
10
+ interface InnerProps extends HTMLAttributes<HTMLDivElement> {
11
+ disabled: boolean
12
+ }
13
+
14
+ const Inner: FC<InnerProps> = ({ disabled, className, children, ...rest }) => {
15
+ return (
16
+ <div className='gm-inline-block' {...rest}>
17
+ {children ?? (
18
+ <Default
19
+ active={(className ?? '').includes('gm-popover-active')}
20
+ disabled={disabled}
21
+ />
22
+ )}
23
+ </div>
24
+ )
25
+ }
26
+
27
+ interface DefaultProps {
28
+ disabled: boolean
29
+ active: boolean
30
+ }
31
+
32
+ const Default: FC<DefaultProps> = ({ disabled, active }) => {
33
+ return (
34
+ <Button type='primary' plain disabled={disabled}>
35
+ {getLocale('更多功能')} &nbsp;
36
+ <IconDownUp active={active} />
37
+ </Button>
38
+ )
39
+ }
40
+
41
+ class FunctionSet extends Component<FunctionSetProps> {
42
+ private _popoverRef = createRef<Popover>()
43
+
44
+ public apiDoSetActive = (active?: boolean): void => {
45
+ this._popoverRef.current!.apiDoSetActive(active)
46
+ }
47
+
48
+ private _handleSelect = (select: FunctionSetData): void => {
49
+ if (!select.onClick) {
50
+ return
51
+ }
52
+ this._popoverRef.current!.apiDoSetActive()
53
+ select.onClick()
54
+ }
55
+
56
+ render() {
57
+ const { data, right, disabled, children } = this.props
58
+ const newData = data.filter((value) => value.show !== false)
59
+ if (!newData.length) {
60
+ return null
61
+ }
62
+ return (
63
+ <ConfigConsumer>
64
+ {(config) => (
65
+ <Popover
66
+ ref={this._popoverRef}
67
+ popup={
68
+ <ConfigProvider {...config}>
69
+ <Overlay data={newData} onSelect={this._handleSelect} isReverse={right} />
70
+ </ConfigProvider>
71
+ }
72
+ right={right}
73
+ type='hover'
74
+ disabled={disabled}
75
+ pureContainer
76
+ >
77
+ <Inner disabled={!!disabled}>{children}</Inner>
78
+ </Popover>
79
+ )}
80
+ </ConfigConsumer>
81
+ )
82
+ }
83
+ }
84
+ export default FunctionSet
@@ -1,2 +1,2 @@
1
- export { default as FunctionSet } from './function_set'
2
- export type { FunctionSetProps } from './types'
1
+ export { default as FunctionSet } from './function_set'
2
+ export type { FunctionSetProps } from './types'
@@ -1,41 +1,41 @@
1
- import React, { FC, useCallback, useState } from 'react'
2
- import { FunctionSetData } from './types'
3
- import { processDataWithValue } from './utils'
4
- import { LevelList } from '../level_list'
5
-
6
- interface OverlayProps {
7
- data: FunctionSetData[]
8
- onSelect(selected: FunctionSetData): void
9
- isReverse?: boolean
10
- }
11
-
12
- const Overlay: FC<OverlayProps> = ({ data, onSelect, isReverse }) => {
13
- const [will, setWill] = useState<string[]>([])
14
-
15
- // 做个map存起来,方便快速通过 value 找到 item
16
- const map: { [key: string]: FunctionSetData } = {}
17
- const newData = processDataWithValue(data, map)
18
-
19
- const handleSelect = useCallback(
20
- (selected: string[]) => {
21
- // 取最后一个
22
- const item = map[selected.slice(-1)[0]]
23
- onSelect(item)
24
- },
25
- [map, onSelect]
26
- )
27
-
28
- return (
29
- <LevelList
30
- data={newData}
31
- selected={[]}
32
- onSelect={handleSelect}
33
- willActiveSelected={will}
34
- onWillActiveSelect={(will) => setWill(will)}
35
- isReverse={isReverse}
36
- isForFunctionSet
37
- />
38
- )
39
- }
40
-
41
- export default Overlay
1
+ import React, { FC, useCallback, useState } from 'react'
2
+ import { FunctionSetData } from './types'
3
+ import { processDataWithValue } from './utils'
4
+ import { LevelList } from '../level_list'
5
+
6
+ interface OverlayProps {
7
+ data: FunctionSetData[]
8
+ onSelect(selected: FunctionSetData): void
9
+ isReverse?: boolean
10
+ }
11
+
12
+ const Overlay: FC<OverlayProps> = ({ data, onSelect, isReverse }) => {
13
+ const [will, setWill] = useState<string[]>([])
14
+
15
+ // 做个map存起来,方便快速通过 value 找到 item
16
+ const map: { [key: string]: FunctionSetData } = {}
17
+ const newData = processDataWithValue(data, map)
18
+
19
+ const handleSelect = useCallback(
20
+ (selected: string[]) => {
21
+ // 取最后一个
22
+ const item = map[selected.slice(-1)[0]]
23
+ onSelect(item)
24
+ },
25
+ [map, onSelect]
26
+ )
27
+
28
+ return (
29
+ <LevelList
30
+ data={newData}
31
+ selected={[]}
32
+ onSelect={handleSelect}
33
+ willActiveSelected={will}
34
+ onWillActiveSelect={(will) => setWill(will)}
35
+ isReverse={isReverse}
36
+ isForFunctionSet
37
+ />
38
+ )
39
+ }
40
+
41
+ export default Overlay
@@ -1,71 +1,71 @@
1
- import React from 'react'
2
- import FunctionSet from './function_set'
3
-
4
- const data = [
5
- {
6
- text: '功能1',
7
- onClick: () => {
8
- window.alert('功能1')
9
- },
10
- },
11
- {
12
- text: '功能2',
13
- onClick: () => {
14
- window.alert('功能2')
15
- },
16
- },
17
- {
18
- text: '功能3(不可用)',
19
- disabled: true,
20
- onClick: () => {
21
- window.alert('功能3')
22
- },
23
- },
24
- {
25
- text: '功能4(不会示)',
26
- show: false,
27
- onClick: () => {
28
- window.alert('功能4')
29
- },
30
- },
31
- {
32
- text: '新建',
33
- children: [
34
- {
35
- text: '商品新建',
36
- children: [
37
- {
38
- text: '商品新建1',
39
- onClick: () => {
40
- window.alert('商品新建1')
41
- },
42
- },
43
- {
44
- text: '商品新建2',
45
- onClick: () => {
46
- window.alert('商品新建2')
47
- },
48
- },
49
- ],
50
- },
51
- ],
52
- },
53
- ]
54
-
55
- export const ComFunctionSet = () => (
56
- <div style={{ padding: '50px' }}>
57
- <FunctionSet data={data} />
58
- <div>disabled</div>
59
- <FunctionSet data={data} disabled />
60
- <div>children</div>
61
- <FunctionSet data={data}>自定义 children</FunctionSet>
62
- <div>right</div>
63
- <FunctionSet data={data} right />
64
- <div>data [] 不显示</div>
65
- <FunctionSet data={[]} />
66
- </div>
67
- )
68
-
69
- export default {
70
- title: '表单/FunctionSet',
71
- }
1
+ import React from 'react'
2
+ import FunctionSet from './function_set'
3
+
4
+ const data = [
5
+ {
6
+ text: '功能1',
7
+ onClick: () => {
8
+ window.alert('功能1')
9
+ },
10
+ },
11
+ {
12
+ text: '功能2',
13
+ onClick: () => {
14
+ window.alert('功能2')
15
+ },
16
+ },
17
+ {
18
+ text: '功能3(不可用)',
19
+ disabled: true,
20
+ onClick: () => {
21
+ window.alert('功能3')
22
+ },
23
+ },
24
+ {
25
+ text: '功能4(不会示)',
26
+ show: false,
27
+ onClick: () => {
28
+ window.alert('功能4')
29
+ },
30
+ },
31
+ {
32
+ text: '新建',
33
+ children: [
34
+ {
35
+ text: '商品新建',
36
+ children: [
37
+ {
38
+ text: '商品新建1',
39
+ onClick: () => {
40
+ window.alert('商品新建1')
41
+ },
42
+ },
43
+ {
44
+ text: '商品新建2',
45
+ onClick: () => {
46
+ window.alert('商品新建2')
47
+ },
48
+ },
49
+ ],
50
+ },
51
+ ],
52
+ },
53
+ ]
54
+
55
+ export const ComFunctionSet = () => (
56
+ <div style={{ padding: '50px' }}>
57
+ <FunctionSet data={data} />
58
+ <div>disabled</div>
59
+ <FunctionSet data={data} disabled />
60
+ <div>children</div>
61
+ <FunctionSet data={data}>自定义 children</FunctionSet>
62
+ <div>right</div>
63
+ <FunctionSet data={data} right />
64
+ <div>data [] 不显示</div>
65
+ <FunctionSet data={[]} />
66
+ </div>
67
+ )
68
+
69
+ export default {
70
+ title: '表单/FunctionSet',
71
+ }
@@ -1,15 +1,15 @@
1
- interface FunctionSetData {
2
- text: string
3
- onClick?(): void
4
- show?: boolean
5
- disabled?: boolean
6
- children?: FunctionSetData[]
7
- }
8
-
9
- interface FunctionSetProps {
10
- data: FunctionSetData[]
11
- right?: boolean
12
- disabled?: boolean
13
- }
14
-
15
- export type { FunctionSetData, FunctionSetProps }
1
+ interface FunctionSetData {
2
+ text: string
3
+ onClick?(): void
4
+ show?: boolean
5
+ disabled?: boolean
6
+ children?: FunctionSetData[]
7
+ }
8
+
9
+ interface FunctionSetProps {
10
+ data: FunctionSetData[]
11
+ right?: boolean
12
+ disabled?: boolean
13
+ }
14
+
15
+ export type { FunctionSetData, FunctionSetProps }
@@ -1,21 +1,21 @@
1
- import { FunctionSetData } from './types'
2
- import { TreeDataItem } from '../../types'
3
-
4
- interface ProcessDataWithValue {
5
- (data: FunctionSetData[], map: { [key: string]: any }, pre?: string): TreeDataItem<
6
- string
7
- >[]
8
- }
9
-
10
- const processDataWithValue: ProcessDataWithValue = (data, map, pre = '') => {
11
- return data.map((item, index) => {
12
- const value = `${pre}_${index}`
13
- map[value] = item
14
- if (item.children) {
15
- item.children = processDataWithValue(item.children, map, value)
16
- }
17
- return { value, ...item } as TreeDataItem<string>
18
- })
19
- }
20
-
21
- export { processDataWithValue }
1
+ import { FunctionSetData } from './types'
2
+ import { TreeDataItem } from '../../types'
3
+
4
+ interface ProcessDataWithValue {
5
+ (data: FunctionSetData[], map: { [key: string]: any }, pre?: string): TreeDataItem<
6
+ string
7
+ >[]
8
+ }
9
+
10
+ const processDataWithValue: ProcessDataWithValue = (data, map, pre = '') => {
11
+ return data.map((item, index) => {
12
+ const value = `${pre}_${index}`
13
+ map[value] = item
14
+ if (item.children) {
15
+ item.children = processDataWithValue(item.children, map, value)
16
+ }
17
+ return { value, ...item } as TreeDataItem<string>
18
+ })
19
+ }
20
+
21
+ export { processDataWithValue }
@@ -1,55 +1,55 @@
1
- import React, { FC, useContext } from 'react'
2
- import classNames from 'classnames'
3
- import { ColProps } from './types'
4
- import { RowContext } from './util'
5
-
6
- const SIZE_LIST = ['sm', 'md', 'lg', 'xl']
7
-
8
- const Col: FC<ColProps> = ({ span, offset, style, className, children, ...rest }) => {
9
- const { gutter } = useContext(RowContext)
10
-
11
- // 这段有点看不懂
12
- let sizeClasses: object = {}
13
- SIZE_LIST.forEach((size) => {
14
- let sizeProps: ColProps = {}
15
- if (typeof (rest as any)[size] === 'number') {
16
- sizeProps.span = (rest as any)[size]
17
- } else if (typeof (rest as any)[size] === 'object') {
18
- sizeProps = (rest as any)[size] ?? {}
19
- }
20
-
21
- delete (rest as any)[size]
22
-
23
- sizeClasses = {
24
- ...sizeClasses,
25
- [`gm-grid-col-${size}-span-${sizeProps.span}`]: !!sizeProps.span,
26
- [`gm-grid-col-${size}-offset-${sizeProps.offset}`]: !!sizeProps.offset,
27
- }
28
- })
29
-
30
- const colStyle = style || {}
31
- if (typeof gutter === 'number' && gutter! > 0) {
32
- colStyle.paddingLeft = gutter / 2
33
- colStyle.paddingRight = gutter / 2
34
- }
35
-
36
- return (
37
- <div
38
- {...rest}
39
- style={colStyle}
40
- className={classNames(
41
- 'gm-grid-col',
42
- {
43
- [`gm-grid-col-span-${span}`]: span,
44
- [`gm-grid-col-offset-${offset}`]: offset,
45
- },
46
- className,
47
- sizeClasses
48
- )}
49
- >
50
- {children}
51
- </div>
52
- )
53
- }
54
-
55
- export default Col
1
+ import React, { FC, useContext } from 'react'
2
+ import classNames from 'classnames'
3
+ import { ColProps } from './types'
4
+ import { RowContext } from './util'
5
+
6
+ const SIZE_LIST = ['sm', 'md', 'lg', 'xl']
7
+
8
+ const Col: FC<ColProps> = ({ span, offset, style, className, children, ...rest }) => {
9
+ const { gutter } = useContext(RowContext)
10
+
11
+ // 这段有点看不懂
12
+ let sizeClasses: object = {}
13
+ SIZE_LIST.forEach((size) => {
14
+ let sizeProps: ColProps = {}
15
+ if (typeof (rest as any)[size] === 'number') {
16
+ sizeProps.span = (rest as any)[size]
17
+ } else if (typeof (rest as any)[size] === 'object') {
18
+ sizeProps = (rest as any)[size] ?? {}
19
+ }
20
+
21
+ delete (rest as any)[size]
22
+
23
+ sizeClasses = {
24
+ ...sizeClasses,
25
+ [`gm-grid-col-${size}-span-${sizeProps.span}`]: !!sizeProps.span,
26
+ [`gm-grid-col-${size}-offset-${sizeProps.offset}`]: !!sizeProps.offset,
27
+ }
28
+ })
29
+
30
+ const colStyle = style || {}
31
+ if (typeof gutter === 'number' && gutter! > 0) {
32
+ colStyle.paddingLeft = gutter / 2
33
+ colStyle.paddingRight = gutter / 2
34
+ }
35
+
36
+ return (
37
+ <div
38
+ {...rest}
39
+ style={colStyle}
40
+ className={classNames(
41
+ 'gm-grid-col',
42
+ {
43
+ [`gm-grid-col-span-${span}`]: span,
44
+ [`gm-grid-col-offset-${offset}`]: offset,
45
+ },
46
+ className,
47
+ sizeClasses
48
+ )}
49
+ >
50
+ {children}
51
+ </div>
52
+ )
53
+ }
54
+
55
+ export default Col
@@ -1,3 +1,3 @@
1
- export { default as Row } from './row'
2
- export { default as Col } from './col'
3
- export type { RowProps, ColProps, Gutter } from './types'
1
+ export { default as Row } from './row'
2
+ export { default as Col } from './col'
3
+ export type { RowProps, ColProps, Gutter } from './types'