@gm-pc/react 1.27.0 → 1.27.1-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 +56 -56
  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 -79
  231. package/src/component/pagination/stories.tsx +63 -63
  232. package/src/component/pagination/style.less +51 -51
  233. package/src/component/pagination/types.ts +18 -18
  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 -154
  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 -172
  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,72 +1,72 @@
1
- .gm-more-select {
2
- .gm-more-select-selected {
3
- cursor: pointer;
4
- vertical-align: middle;
5
- position: relative;
6
- border: 1px solid var(--gm-color-border);
7
- background-color: white;
8
- min-height: 30px;
9
- padding: 6px 20px 6px 10px;
10
- border-radius: var(--gm-size-border-radius);
11
-
12
- &.gm-popover-active {
13
- border-color: var(--gm-color-primary);
14
- }
15
- }
16
-
17
- .gm-more-select-clear-btn {
18
- position: absolute;
19
- right: 5px;
20
- top: 7px;
21
- cursor: pointer;
22
- color: var(--gm-color-desc);
23
- }
24
-
25
- &.disabled {
26
- .gmDisabledBg();
27
-
28
- .gm-more-select-selected {
29
- .gmDisabledBg();
30
- }
31
-
32
- input {
33
- cursor: not-allowed;
34
- }
35
-
36
- .gm-more-select-clear-btn {
37
- cursor: not-allowed;
38
- }
39
- }
40
-
41
- &.gm-more-select-multiple {
42
- .gm-more-select-selected-item {
43
- position: relative;
44
- padding: 0 16px 0 5px;
45
- background-color: var(--gm-color-bg-primary-more-light);
46
- margin-right: 5px;
47
- border-radius: 4px;
48
-
49
- .gm-more-select-clear-btn {
50
- top: 2px;
51
- right: 0;
52
- }
53
- }
54
- }
55
- }
56
-
57
- .gm-more-select-popup {
58
- background: white;
59
-
60
- .gm-more-select-popup-input {
61
- padding: 5px 10px;
62
-
63
- input {
64
- padding: 0 5px;
65
- height: 28px;
66
- box-shadow: none;
67
- min-width: 50px;
68
- width: 100%;
69
- outline: none;
70
- }
71
- }
72
- }
1
+ .gm-more-select {
2
+ .gm-more-select-selected {
3
+ cursor: pointer;
4
+ vertical-align: middle;
5
+ position: relative;
6
+ border: 1px solid var(--gm-color-border);
7
+ background-color: white;
8
+ min-height: 30px;
9
+ padding: 6px 20px 6px 10px;
10
+ border-radius: var(--gm-size-border-radius);
11
+
12
+ &.gm-popover-active {
13
+ border-color: var(--gm-color-primary);
14
+ }
15
+ }
16
+
17
+ .gm-more-select-clear-btn {
18
+ position: absolute;
19
+ right: 5px;
20
+ top: 7px;
21
+ cursor: pointer;
22
+ color: var(--gm-color-desc);
23
+ }
24
+
25
+ &.disabled {
26
+ .gmDisabledBg();
27
+
28
+ .gm-more-select-selected {
29
+ .gmDisabledBg();
30
+ }
31
+
32
+ input {
33
+ cursor: not-allowed;
34
+ }
35
+
36
+ .gm-more-select-clear-btn {
37
+ cursor: not-allowed;
38
+ }
39
+ }
40
+
41
+ &.gm-more-select-multiple {
42
+ .gm-more-select-selected-item {
43
+ position: relative;
44
+ padding: 0 16px 0 5px;
45
+ background-color: var(--gm-color-bg-primary-more-light);
46
+ margin-right: 5px;
47
+ border-radius: 4px;
48
+
49
+ .gm-more-select-clear-btn {
50
+ top: 2px;
51
+ right: 0;
52
+ }
53
+ }
54
+ }
55
+ }
56
+
57
+ .gm-more-select-popup {
58
+ background: white;
59
+
60
+ .gm-more-select-popup-input {
61
+ padding: 5px 10px;
62
+
63
+ input {
64
+ padding: 0 5px;
65
+ height: 28px;
66
+ box-shadow: none;
67
+ min-width: 50px;
68
+ width: 100%;
69
+ outline: none;
70
+ }
71
+ }
72
+ }
@@ -1,114 +1,114 @@
1
- import { Popover } from '@gm-pc/react'
2
- import { CSSProperties, ReactNode, KeyboardEvent } from 'react'
3
-
4
- /** 普通的数据格式 */
5
- interface MoreSelectDataItem<V extends string | number = string> {
6
- value: V
7
- text: string
8
- disabled?: boolean
9
- [key: string]: any
10
- }
11
-
12
- /** 分组的数据格式 */
13
- interface MoreSelectGroupDataItem<V extends string | number = string> {
14
- label: string | ReactNode
15
- children: MoreSelectDataItem<V>[]
16
- }
17
-
18
- interface MoreSelectCommonProps<V extends string | number = string> {
19
- multiple?: boolean
20
-
21
- disabled?: boolean
22
- /** 单选禁止显示关闭按钮 */
23
- disabledClose?: boolean
24
-
25
- delay?: number
26
- searchPlaceholder?: string
27
-
28
- /** 过滤方式 */
29
- renderListFilterType?: 'default' | 'pinyin'
30
-
31
- placeholder?: string
32
-
33
- /** 自定义渲染已选择项 */
34
- renderSelected?(selected: MoreSelectDataItem<V>): ReactNode
35
- /** 自定义渲染列表项 */
36
- renderListItem?(value: MoreSelectDataItem<V>, index: number): ReactNode
37
-
38
- /** 自定义popup底部渲染 */
39
- renderCustomizedBottom?(ref: React.RefObject<Popover>): ReactNode
40
-
41
- /**
42
- * 自定义“空状态”渲染
43
- *
44
- * 若函数返回 undefined 则使用默认的空状态
45
- */
46
- renderEmpty?(searchValue?: string): ReactNode
47
-
48
- listHeight?: string
49
- isGroupList?: boolean
50
- popoverType?: 'focus' | 'realFocus'
51
-
52
- isInPopup?: boolean
53
-
54
- popupClassName?: string
55
-
56
- className?: string
57
- style?: CSSProperties
58
- children?: ReactNode
59
-
60
- /** 目前为了 keyboard */
61
- isKeyboard?: boolean
62
- onKeyDown?(event: KeyboardEvent): void
63
- }
64
-
65
- interface MoreSelectBaseProps<V extends string | number = string>
66
- extends MoreSelectCommonProps<V> {
67
- data: MoreSelectGroupDataItem<V>[]
68
- selected: MoreSelectDataItem<V>[]
69
- onSelect(selected: MoreSelectDataItem<V>[]): void
70
-
71
- /** 搜索回调 */
72
- onSearch?(searchWord: string, data: MoreSelectGroupDataItem<V>[]): Promise<void> | void
73
- /** 点击回调 */
74
- onClick?(selected: MoreSelectSelected<V>[]): void
75
-
76
- /** 自定义搜索过滤展示的数据 */
77
- renderListFilter?(
78
- data: MoreSelectGroupDataItem<V>[],
79
- searchValue: string
80
- ): MoreSelectGroupDataItem<V>[]
81
- /** 是否在active的时候搜索,订单业务相关,searchValue放在localstorage */
82
- searchOnActive?: boolean
83
- }
84
-
85
- type MoreSelectData<V extends string | number = string> =
86
- | MoreSelectDataItem<V>[]
87
- | MoreSelectGroupDataItem<V>[]
88
- type MoreSelectSelected<V extends string | number = string> =
89
- | MoreSelectDataItem<V>[]
90
- | MoreSelectDataItem<V>
91
-
92
- interface MoreSelectProps<V extends string | number = string>
93
- extends MoreSelectCommonProps<V>,
94
- Pick<MoreSelectBaseProps, 'searchOnActive'> {
95
- data?: MoreSelectData<V>
96
- selected?: MoreSelectSelected<V>
97
- value?: V | V[]
98
- onSelect?(selected?: MoreSelectSelected<V>): void
99
- onChange?(value: V | V[]): void
100
- /** 搜索回调 */
101
- onSearch?(searchWord: string, data: MoreSelectData<V>): Promise<void> | void
102
- /** 点击回调 */
103
- onClick?(selected: MoreSelectSelected<V>[]): void
104
-
105
- /** 自定义搜索过滤展示的数据 */
106
- renderListFilter?(data: MoreSelectData<V>, searchValue: string): MoreSelectData<V>
107
- }
108
-
109
- export type {
110
- MoreSelectGroupDataItem,
111
- MoreSelectDataItem,
112
- MoreSelectBaseProps,
113
- MoreSelectProps,
114
- }
1
+ import { Popover } from '@gm-pc/react'
2
+ import { CSSProperties, ReactNode, KeyboardEvent } from 'react'
3
+
4
+ /** 普通的数据格式 */
5
+ interface MoreSelectDataItem<V extends string | number = string> {
6
+ value: V
7
+ text: string
8
+ disabled?: boolean
9
+ [key: string]: any
10
+ }
11
+
12
+ /** 分组的数据格式 */
13
+ interface MoreSelectGroupDataItem<V extends string | number = string> {
14
+ label: string | ReactNode
15
+ children: MoreSelectDataItem<V>[]
16
+ }
17
+
18
+ interface MoreSelectCommonProps<V extends string | number = string> {
19
+ multiple?: boolean
20
+
21
+ disabled?: boolean
22
+ /** 单选禁止显示关闭按钮 */
23
+ disabledClose?: boolean
24
+
25
+ delay?: number
26
+ searchPlaceholder?: string
27
+
28
+ /** 过滤方式 */
29
+ renderListFilterType?: 'default' | 'pinyin'
30
+
31
+ placeholder?: string
32
+
33
+ /** 自定义渲染已选择项 */
34
+ renderSelected?(selected: MoreSelectDataItem<V>): ReactNode
35
+ /** 自定义渲染列表项 */
36
+ renderListItem?(value: MoreSelectDataItem<V>, index: number): ReactNode
37
+
38
+ /** 自定义popup底部渲染 */
39
+ renderCustomizedBottom?(ref: React.RefObject<Popover>): ReactNode
40
+
41
+ /**
42
+ * 自定义“空状态”渲染
43
+ *
44
+ * 若函数返回 undefined 则使用默认的空状态
45
+ */
46
+ renderEmpty?(searchValue?: string): ReactNode
47
+
48
+ listHeight?: string
49
+ isGroupList?: boolean
50
+ popoverType?: 'focus' | 'realFocus'
51
+
52
+ isInPopup?: boolean
53
+
54
+ popupClassName?: string
55
+
56
+ className?: string
57
+ style?: CSSProperties
58
+ children?: ReactNode
59
+
60
+ /** 目前为了 keyboard */
61
+ isKeyboard?: boolean
62
+ onKeyDown?(event: KeyboardEvent): void
63
+ }
64
+
65
+ interface MoreSelectBaseProps<V extends string | number = string>
66
+ extends MoreSelectCommonProps<V> {
67
+ data: MoreSelectGroupDataItem<V>[]
68
+ selected: MoreSelectDataItem<V>[]
69
+ onSelect(selected: MoreSelectDataItem<V>[]): void
70
+
71
+ /** 搜索回调 */
72
+ onSearch?(searchWord: string, data: MoreSelectGroupDataItem<V>[]): Promise<void> | void
73
+ /** 点击回调 */
74
+ onClick?(selected: MoreSelectSelected<V>[]): void
75
+
76
+ /** 自定义搜索过滤展示的数据 */
77
+ renderListFilter?(
78
+ data: MoreSelectGroupDataItem<V>[],
79
+ searchValue: string
80
+ ): MoreSelectGroupDataItem<V>[]
81
+ /** 是否在active的时候搜索,订单业务相关,searchValue放在localstorage */
82
+ searchOnActive?: boolean
83
+ }
84
+
85
+ type MoreSelectData<V extends string | number = string> =
86
+ | MoreSelectDataItem<V>[]
87
+ | MoreSelectGroupDataItem<V>[]
88
+ type MoreSelectSelected<V extends string | number = string> =
89
+ | MoreSelectDataItem<V>[]
90
+ | MoreSelectDataItem<V>
91
+
92
+ interface MoreSelectProps<V extends string | number = string>
93
+ extends MoreSelectCommonProps<V>,
94
+ Pick<MoreSelectBaseProps, 'searchOnActive'> {
95
+ data?: MoreSelectData<V>
96
+ selected?: MoreSelectSelected<V>
97
+ value?: V | V[]
98
+ onSelect?(selected?: MoreSelectSelected<V>): void
99
+ onChange?(value: V | V[]): void
100
+ /** 搜索回调 */
101
+ onSearch?(searchWord: string, data: MoreSelectData<V>): Promise<void> | void
102
+ /** 点击回调 */
103
+ onClick?(selected: MoreSelectSelected<V>[]): void
104
+
105
+ /** 自定义搜索过滤展示的数据 */
106
+ renderListFilter?(data: MoreSelectData<V>, searchValue: string): MoreSelectData<V>
107
+ }
108
+
109
+ export type {
110
+ MoreSelectGroupDataItem,
111
+ MoreSelectDataItem,
112
+ MoreSelectBaseProps,
113
+ MoreSelectProps,
114
+ }
@@ -1,2 +1,2 @@
1
- export { default as MultipleSelection } from './multiple_selection'
2
- export type { MultipleSelectionProps } from './multiple_selection'
1
+ export { default as MultipleSelection } from './multiple_selection'
2
+ export type { MultipleSelectionProps } from './multiple_selection'
@@ -1,118 +1,118 @@
1
- import React, {
2
- cloneElement,
3
- MouseEvent,
4
- ReactElement,
5
- ReactNode,
6
- CSSProperties,
7
- } from 'react'
8
- import _ from 'lodash'
9
- import classNames from 'classnames'
10
- import SVGRemove from '../../svg/remove.svg'
11
- import { IconDownUp } from '../icon_down_up'
12
- import { Flex } from '../flex'
13
-
14
- interface MultipleSelectionSelectedItem<V> {
15
- value: V
16
- text: string
17
- [key: string]: any
18
- }
19
-
20
- interface MultipleSelectionProps<V> {
21
- selected: MultipleSelectionSelectedItem<V>[]
22
- onSelect(selected: MultipleSelectionSelectedItem<V>[]): void
23
-
24
- placeholder?: string
25
-
26
- /** 自定义 selected */
27
- renderSelected?(item: MultipleSelectionSelectedItem<V>): ReactNode
28
- /** 代替默认的 Icon */
29
- funIcon?: ReactNode
30
- /** 禁用清除 */
31
- disabledClose?: boolean
32
-
33
- className?: string
34
- style?: CSSProperties
35
- }
36
-
37
- function MultipleSelection<V = any>({
38
- selected,
39
- onSelect,
40
- placeholder,
41
- renderSelected = (value: any) => value.text,
42
- funIcon,
43
- disabledClose,
44
- className,
45
- style,
46
- ...rest
47
- }: MultipleSelectionProps<V>) {
48
- const handleClear = (e: MouseEvent<HTMLDivElement>): void => {
49
- e.preventDefault()
50
- e.stopPropagation()
51
-
52
- onSelect([])
53
- }
54
-
55
- const handleClose = (item: MultipleSelectionSelectedItem<V>) => {
56
- onSelect(_.xorBy(selected, [item], (v) => v.value))
57
- }
58
-
59
- return (
60
- <div
61
- {...rest}
62
- className={classNames(
63
- 'gm-multiple-selection',
64
- {
65
- 'gm-multiple-selection-disabled-close': disabledClose,
66
- },
67
- className
68
- )}
69
- style={style}
70
- >
71
- <Flex alignCenter wrap className='gm-multiple-selection-selected'>
72
- {selected.length === 0 && <span className='gm-text-desc'>{placeholder}</span>}
73
- {_.map(selected, (item: MultipleSelectionSelectedItem<V>, i) => (
74
- <div key={i} className='gm-multiple-selection-item'>
75
- {renderSelected(item)}
76
- <SVGRemove
77
- onClick={() => {
78
- handleClose(item)
79
- }}
80
- className='gm-multiple-selection-item-close'
81
- />
82
- </div>
83
- ))}
84
- </Flex>
85
-
86
- {selected && !disabledClose && (
87
- <div onClick={handleClear}>
88
- <SVGRemove className='gm-multiple-selection-icon gm-multiple-selection-close-icon' />
89
- </div>
90
- )}
91
- {funIcon ? (
92
- cloneElement(funIcon as ReactElement, {
93
- className: classNames(
94
- 'gm-multiple-selection-icon',
95
- {
96
- 'gm-multiple-selection-fun-icon': selected && !disabledClose,
97
- },
98
- (funIcon as ReactElement).props?.className
99
- ),
100
- })
101
- ) : (
102
- <IconDownUp
103
- active={(className ?? '').includes('gm-popover-active')}
104
- className={classNames(
105
- 'gm-multiple-selection-icon',
106
- 'gm-multiple-selection-down-up',
107
- {
108
- 'gm-multiple-selection-fun-icon': selected && !disabledClose,
109
- }
110
- )}
111
- />
112
- )}
113
- </div>
114
- )
115
- }
116
-
117
- export default MultipleSelection
118
- export type { MultipleSelectionProps, MultipleSelectionSelectedItem }
1
+ import React, {
2
+ cloneElement,
3
+ MouseEvent,
4
+ ReactElement,
5
+ ReactNode,
6
+ CSSProperties,
7
+ } from 'react'
8
+ import _ from 'lodash'
9
+ import classNames from 'classnames'
10
+ import SVGRemove from '../../svg/remove.svg'
11
+ import { IconDownUp } from '../icon_down_up'
12
+ import { Flex } from '../flex'
13
+
14
+ interface MultipleSelectionSelectedItem<V> {
15
+ value: V
16
+ text: string
17
+ [key: string]: any
18
+ }
19
+
20
+ interface MultipleSelectionProps<V> {
21
+ selected: MultipleSelectionSelectedItem<V>[]
22
+ onSelect(selected: MultipleSelectionSelectedItem<V>[]): void
23
+
24
+ placeholder?: string
25
+
26
+ /** 自定义 selected */
27
+ renderSelected?(item: MultipleSelectionSelectedItem<V>): ReactNode
28
+ /** 代替默认的 Icon */
29
+ funIcon?: ReactNode
30
+ /** 禁用清除 */
31
+ disabledClose?: boolean
32
+
33
+ className?: string
34
+ style?: CSSProperties
35
+ }
36
+
37
+ function MultipleSelection<V = any>({
38
+ selected,
39
+ onSelect,
40
+ placeholder,
41
+ renderSelected = (value: any) => value.text,
42
+ funIcon,
43
+ disabledClose,
44
+ className,
45
+ style,
46
+ ...rest
47
+ }: MultipleSelectionProps<V>) {
48
+ const handleClear = (e: MouseEvent<HTMLDivElement>): void => {
49
+ e.preventDefault()
50
+ e.stopPropagation()
51
+
52
+ onSelect([])
53
+ }
54
+
55
+ const handleClose = (item: MultipleSelectionSelectedItem<V>) => {
56
+ onSelect(_.xorBy(selected, [item], (v) => v.value))
57
+ }
58
+
59
+ return (
60
+ <div
61
+ {...rest}
62
+ className={classNames(
63
+ 'gm-multiple-selection',
64
+ {
65
+ 'gm-multiple-selection-disabled-close': disabledClose,
66
+ },
67
+ className
68
+ )}
69
+ style={style}
70
+ >
71
+ <Flex alignCenter wrap className='gm-multiple-selection-selected'>
72
+ {selected.length === 0 && <span className='gm-text-desc'>{placeholder}</span>}
73
+ {_.map(selected, (item: MultipleSelectionSelectedItem<V>, i) => (
74
+ <div key={i} className='gm-multiple-selection-item'>
75
+ {renderSelected(item)}
76
+ <SVGRemove
77
+ onClick={() => {
78
+ handleClose(item)
79
+ }}
80
+ className='gm-multiple-selection-item-close'
81
+ />
82
+ </div>
83
+ ))}
84
+ </Flex>
85
+
86
+ {selected && !disabledClose && (
87
+ <div onClick={handleClear}>
88
+ <SVGRemove className='gm-multiple-selection-icon gm-multiple-selection-close-icon' />
89
+ </div>
90
+ )}
91
+ {funIcon ? (
92
+ cloneElement(funIcon as ReactElement, {
93
+ className: classNames(
94
+ 'gm-multiple-selection-icon',
95
+ {
96
+ 'gm-multiple-selection-fun-icon': selected && !disabledClose,
97
+ },
98
+ (funIcon as ReactElement).props?.className
99
+ ),
100
+ })
101
+ ) : (
102
+ <IconDownUp
103
+ active={(className ?? '').includes('gm-popover-active')}
104
+ className={classNames(
105
+ 'gm-multiple-selection-icon',
106
+ 'gm-multiple-selection-down-up',
107
+ {
108
+ 'gm-multiple-selection-fun-icon': selected && !disabledClose,
109
+ }
110
+ )}
111
+ />
112
+ )}
113
+ </div>
114
+ )
115
+ }
116
+
117
+ export default MultipleSelection
118
+ export type { MultipleSelectionProps, MultipleSelectionSelectedItem }