@gm-pc/react 1.26.2-beta.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,107 +1,107 @@
1
- .gm-popup {
2
- position: absolute;
3
- z-index: 2000;
4
- background: white;
5
- outline: none;
6
- //box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
7
- box-shadow:
8
- 0 3px 6px -4px rgba(0, 0, 0, 0.12),
9
- 0 6px 16px 0 rgba(0, 0, 0, 0.08),
10
- 0 9px 28px 8px rgba(0, 0, 0, 0.05);
11
- // 开启硬件加速
12
- transform: translateZ(0);
13
-
14
- // 默认arrow边框颜色 var(--gm-color-border)
15
- // 默认arrow背景色 #FFF
16
- .gm-popup-arrow {
17
- position: absolute;
18
- display: block;
19
- width: 0;
20
- height: 0;
21
- border: 5px solid transparent;
22
-
23
- &::after {
24
- content: ' ';
25
- display: block;
26
- width: 0;
27
- height: 0;
28
- position: absolute;
29
- margin-left: -4px;
30
- border: 4px solid transparent;
31
- }
32
-
33
- &.gm-popup-arrow-bottom {
34
- top: -5px;
35
- border-top-width: 0;
36
- border-bottom-color: hsla(0, 0%, 85%, 0.7);
37
-
38
- &::after {
39
- top: 1px;
40
- border-top-width: 0;
41
- border-bottom-color: white;
42
- }
43
- }
44
-
45
- &.gm-popup-arrow-left {
46
- left: 10px;
47
- }
48
-
49
- &.gm-popup-arrow-top {
50
- bottom: -5px;
51
- border-bottom-width: 0;
52
- border-top-color: hsla(0, 0%, 85%, 0.7);
53
-
54
- &::after {
55
- bottom: 1px;
56
- border-bottom-width: 0;
57
- border-top-color: white;
58
- }
59
- }
60
-
61
- &.gm-popup-arrow-right {
62
- left: ~'calc(100% - 20px)';
63
- }
64
-
65
- &.gm-popup-arrow-center {
66
- left: ~'calc(50% - 4px)';
67
- }
68
- }
69
-
70
- &.gm-popup-pure {
71
- background-color: transparent;
72
- box-shadow: none;
73
- }
74
- }
75
-
76
- .gm-popup-content-confirm {
77
- min-width: 300px;
78
- max-width: 450px;
79
- position: relative;
80
-
81
- .gm-popup-content-confirm-title-wrap {
82
- padding: 20px;
83
-
84
- .gm-popup-content-confirm-title {
85
- padding-left: 5px;
86
- border-left: 3px solid var(--gm-color-primary);
87
- }
88
- }
89
-
90
- .gm-popup-content-confirm-content {
91
- padding: 0 20px 20px;
92
- }
93
-
94
- .gm-popup-content-confirm-button {
95
- text-align: right;
96
- margin-top: 10px;
97
- }
98
-
99
- .gm-popup-content-confirm-close {
100
- position: absolute;
101
- top: 15px;
102
- right: 15px;
103
- color: var(--gm-color-secondary);
104
- cursor: pointer;
105
- padding: 5px;
106
- }
107
- }
1
+ .gm-popup {
2
+ position: absolute;
3
+ z-index: 2000;
4
+ background: white;
5
+ outline: none;
6
+ //box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
7
+ box-shadow:
8
+ 0 3px 6px -4px rgba(0, 0, 0, 0.12),
9
+ 0 6px 16px 0 rgba(0, 0, 0, 0.08),
10
+ 0 9px 28px 8px rgba(0, 0, 0, 0.05);
11
+ // 开启硬件加速
12
+ transform: translateZ(0);
13
+
14
+ // 默认arrow边框颜色 var(--gm-color-border)
15
+ // 默认arrow背景色 #FFF
16
+ .gm-popup-arrow {
17
+ position: absolute;
18
+ display: block;
19
+ width: 0;
20
+ height: 0;
21
+ border: 5px solid transparent;
22
+
23
+ &::after {
24
+ content: ' ';
25
+ display: block;
26
+ width: 0;
27
+ height: 0;
28
+ position: absolute;
29
+ margin-left: -4px;
30
+ border: 4px solid transparent;
31
+ }
32
+
33
+ &.gm-popup-arrow-bottom {
34
+ top: -5px;
35
+ border-top-width: 0;
36
+ border-bottom-color: hsla(0, 0%, 85%, 0.7);
37
+
38
+ &::after {
39
+ top: 1px;
40
+ border-top-width: 0;
41
+ border-bottom-color: white;
42
+ }
43
+ }
44
+
45
+ &.gm-popup-arrow-left {
46
+ left: 10px;
47
+ }
48
+
49
+ &.gm-popup-arrow-top {
50
+ bottom: -5px;
51
+ border-bottom-width: 0;
52
+ border-top-color: hsla(0, 0%, 85%, 0.7);
53
+
54
+ &::after {
55
+ bottom: 1px;
56
+ border-bottom-width: 0;
57
+ border-top-color: white;
58
+ }
59
+ }
60
+
61
+ &.gm-popup-arrow-right {
62
+ left: ~'calc(100% - 20px)';
63
+ }
64
+
65
+ &.gm-popup-arrow-center {
66
+ left: ~'calc(50% - 4px)';
67
+ }
68
+ }
69
+
70
+ &.gm-popup-pure {
71
+ background-color: transparent;
72
+ box-shadow: none;
73
+ }
74
+ }
75
+
76
+ .gm-popup-content-confirm {
77
+ min-width: 300px;
78
+ max-width: 450px;
79
+ position: relative;
80
+
81
+ .gm-popup-content-confirm-title-wrap {
82
+ padding: 20px;
83
+
84
+ .gm-popup-content-confirm-title {
85
+ padding-left: 5px;
86
+ border-left: 3px solid var(--gm-color-primary);
87
+ }
88
+ }
89
+
90
+ .gm-popup-content-confirm-content {
91
+ padding: 0 20px 20px;
92
+ }
93
+
94
+ .gm-popup-content-confirm-button {
95
+ text-align: right;
96
+ margin-top: 10px;
97
+ }
98
+
99
+ .gm-popup-content-confirm-close {
100
+ position: absolute;
101
+ top: 15px;
102
+ right: 15px;
103
+ color: var(--gm-color-secondary);
104
+ cursor: pointer;
105
+ padding: 5px;
106
+ }
107
+ }
@@ -1,4 +1,4 @@
1
- const symbolKey = 'Price#symbol'
2
- const unitKey = 'Price#unit'
3
-
4
- export { symbolKey, unitKey }
1
+ const symbolKey = 'Price#symbol'
2
+ const unitKey = 'Price#unit'
3
+
4
+ export { symbolKey, unitKey }
@@ -1,13 +1,13 @@
1
- const eventBus = {
2
- add(eventName: string, handler: (event: Event) => any): void {
3
- window.addEventListener(eventName, handler)
4
- },
5
- dispatch(eventName: string, detail?: any): void {
6
- window.dispatchEvent(new window.CustomEvent(eventName, { detail }))
7
- },
8
- remove(eventName: string, handler: (event: Event) => any): void {
9
- window.removeEventListener(eventName, handler)
10
- },
11
- }
12
-
13
- export default eventBus
1
+ const eventBus = {
2
+ add(eventName: string, handler: (event: Event) => any): void {
3
+ window.addEventListener(eventName, handler)
4
+ },
5
+ dispatch(eventName: string, detail?: any): void {
6
+ window.dispatchEvent(new window.CustomEvent(eventName, { detail }))
7
+ },
8
+ remove(eventName: string, handler: (event: Event) => any): void {
9
+ window.removeEventListener(eventName, handler)
10
+ },
11
+ }
12
+
13
+ export default eventBus
@@ -1,2 +1,2 @@
1
- export { default as Price } from './price'
2
- export type { PriceProps, CurrencyListOptions } from './price'
1
+ export { default as Price } from './price'
2
+ export type { PriceProps, CurrencyListOptions } from './price'
@@ -1,154 +1,154 @@
1
- import React, { Component, HTMLAttributes } from 'react'
2
- import Big from 'big.js'
3
- import eventBus from './event_bus'
4
- import { Storage } from '../storage'
5
- import { symbolKey, unitKey } from './constant'
6
-
7
- interface PriceProps extends HTMLAttributes<HTMLSpanElement> {
8
- value: number
9
- /* 保留几位小数 */
10
- precision?: number
11
- /* 是否使用千分符 */
12
- useGrouping?: boolean
13
- /* 货币符号缩放大小 */
14
- currencyScale?: number
15
- /* 保留小数点后无效的零 */
16
- keepZero?: boolean
17
- isFenUnit?: boolean
18
- feeType?: string
19
- }
20
-
21
- interface CurrencyListOptions {
22
- symbol: string
23
- type: string
24
- unit: string
25
- }
26
-
27
- let currencyList: CurrencyListOptions[] = []
28
-
29
- function getCurrentFromType(type: string): CurrencyListOptions | undefined {
30
- return currencyList.find((value) => value.type === type)
31
- }
32
-
33
- let symbol = Storage.get(symbolKey) ?? '¥'
34
- let unit = Storage.get(unitKey) ?? '元'
35
-
36
- class Price extends Component<PriceProps> {
37
- /**
38
- * 设置符号列表
39
- */
40
- static setCurrencyList(list: CurrencyListOptions[]): void {
41
- if (!list || !list.length) {
42
- return
43
- }
44
- currencyList = list
45
- }
46
-
47
- /**
48
- * 设置符号
49
- */
50
- static setCurrency(_symbol: string): void {
51
- if (!_symbol || _symbol === symbol) {
52
- return
53
- }
54
- Storage.set(symbolKey, _symbol)
55
- symbol = _symbol
56
- eventBus.dispatch('REACT_GM_UPDATE_PRICE')
57
- }
58
-
59
- /**
60
- * 获取符号
61
- */
62
- static getCurrency(type = ''): string {
63
- const current = type ? getCurrentFromType(type) : null
64
- return current ? current.symbol : (symbol as string)
65
- }
66
-
67
- static setUnit(_unit: string): void {
68
- if (!_unit || _unit === unit) {
69
- return
70
- }
71
- Storage.set(unitKey, _unit)
72
- unit = _unit
73
- }
74
-
75
- static getUnit(type = ''): string {
76
- const current = type ? getCurrentFromType(type) : null
77
- return current ? current.unit : (unit as string)
78
- }
79
-
80
- static defaultProps = {
81
- precision: 2,
82
- useGrouping: true,
83
- currencyScale: 0.85,
84
- keepZero: true,
85
- feeType: '',
86
- }
87
-
88
- componentDidMount() {
89
- eventBus.add('REACT_GM_UPDATE_PRICE', this._rerender)
90
- }
91
-
92
- componentWillUnmount() {
93
- eventBus.remove('REACT_GM_UPDATE_PRICE', this._rerender)
94
- }
95
-
96
- private _rerender = (): void => {
97
- this.forceUpdate()
98
- }
99
-
100
- private _formatValue = (
101
- value: number,
102
- precision: number,
103
- keepZero: boolean,
104
- isFenUnit: boolean
105
- ): string => {
106
- if (isNaN(value)) {
107
- console.trace('value can not be NaN')
108
- return ''
109
- }
110
- const divRatio = isFenUnit ? 100 : 1
111
- const result = Big(Math.abs(value)).div(divRatio).toFixed(precision)
112
- return keepZero ? result : `${parseFloat(result)}`
113
- }
114
-
115
- /**
116
- * 增加千分符
117
- */
118
- private _addComma = (useGrouping: boolean, num: string): string => {
119
- if (!useGrouping) {
120
- return num
121
- }
122
- return num.toString().replace(/^\d+/g, (m) => m.replace(/(?=(?!^)(\d{3})+$)/g, ','))
123
- }
124
-
125
- render() {
126
- const {
127
- value,
128
- useGrouping,
129
- precision,
130
- currencyScale,
131
- keepZero,
132
- isFenUnit,
133
- feeType,
134
- ...rest
135
- } = this.props
136
- const current = getCurrentFromType(feeType!)
137
-
138
- return (
139
- <span {...rest}>
140
- {value < 0 ? '-' : ''}
141
- <span style={{ fontSize: `${currencyScale! > 1 ? '1' : currencyScale}em` }}>
142
- {current ? current.symbol : symbol}
143
- </span>
144
- {this._addComma(
145
- !!useGrouping,
146
- this._formatValue(value, precision!, !!keepZero, !!isFenUnit)
147
- )}
148
- </span>
149
- )
150
- }
151
- }
152
-
153
- export default Price
154
- export type { PriceProps, CurrencyListOptions }
1
+ import React, { Component, HTMLAttributes } from 'react'
2
+ import Big from 'big.js'
3
+ import eventBus from './event_bus'
4
+ import { Storage } from '../storage'
5
+ import { symbolKey, unitKey } from './constant'
6
+
7
+ interface PriceProps extends HTMLAttributes<HTMLSpanElement> {
8
+ value: number
9
+ /* 保留几位小数 */
10
+ precision?: number
11
+ /* 是否使用千分符 */
12
+ useGrouping?: boolean
13
+ /* 货币符号缩放大小 */
14
+ currencyScale?: number
15
+ /* 保留小数点后无效的零 */
16
+ keepZero?: boolean
17
+ isFenUnit?: boolean
18
+ feeType?: string
19
+ }
20
+
21
+ interface CurrencyListOptions {
22
+ symbol: string
23
+ type: string
24
+ unit: string
25
+ }
26
+
27
+ let currencyList: CurrencyListOptions[] = []
28
+
29
+ function getCurrentFromType(type: string): CurrencyListOptions | undefined {
30
+ return currencyList.find((value) => value.type === type)
31
+ }
32
+
33
+ let symbol = Storage.get(symbolKey) ?? '¥'
34
+ let unit = Storage.get(unitKey) ?? '元'
35
+
36
+ class Price extends Component<PriceProps> {
37
+ /**
38
+ * 设置符号列表
39
+ */
40
+ static setCurrencyList(list: CurrencyListOptions[]): void {
41
+ if (!list || !list.length) {
42
+ return
43
+ }
44
+ currencyList = list
45
+ }
46
+
47
+ /**
48
+ * 设置符号
49
+ */
50
+ static setCurrency(_symbol: string): void {
51
+ if (!_symbol || _symbol === symbol) {
52
+ return
53
+ }
54
+ Storage.set(symbolKey, _symbol)
55
+ symbol = _symbol
56
+ eventBus.dispatch('REACT_GM_UPDATE_PRICE')
57
+ }
58
+
59
+ /**
60
+ * 获取符号
61
+ */
62
+ static getCurrency(type = ''): string {
63
+ const current = type ? getCurrentFromType(type) : null
64
+ return current ? current.symbol : (symbol as string)
65
+ }
66
+
67
+ static setUnit(_unit: string): void {
68
+ if (!_unit || _unit === unit) {
69
+ return
70
+ }
71
+ Storage.set(unitKey, _unit)
72
+ unit = _unit
73
+ }
74
+
75
+ static getUnit(type = ''): string {
76
+ const current = type ? getCurrentFromType(type) : null
77
+ return current ? current.unit : (unit as string)
78
+ }
79
+
80
+ static defaultProps = {
81
+ precision: 2,
82
+ useGrouping: true,
83
+ currencyScale: 0.85,
84
+ keepZero: true,
85
+ feeType: '',
86
+ }
87
+
88
+ componentDidMount() {
89
+ eventBus.add('REACT_GM_UPDATE_PRICE', this._rerender)
90
+ }
91
+
92
+ componentWillUnmount() {
93
+ eventBus.remove('REACT_GM_UPDATE_PRICE', this._rerender)
94
+ }
95
+
96
+ private _rerender = (): void => {
97
+ this.forceUpdate()
98
+ }
99
+
100
+ private _formatValue = (
101
+ value: number,
102
+ precision: number,
103
+ keepZero: boolean,
104
+ isFenUnit: boolean
105
+ ): string => {
106
+ if (isNaN(value)) {
107
+ console.trace('value can not be NaN')
108
+ return ''
109
+ }
110
+ const divRatio = isFenUnit ? 100 : 1
111
+ const result = Big(Math.abs(value)).div(divRatio).toFixed(precision)
112
+ return keepZero ? result : `${parseFloat(result)}`
113
+ }
114
+
115
+ /**
116
+ * 增加千分符
117
+ */
118
+ private _addComma = (useGrouping: boolean, num: string): string => {
119
+ if (!useGrouping) {
120
+ return num
121
+ }
122
+ return num.toString().replace(/^\d+/g, (m) => m.replace(/(?=(?!^)(\d{3})+$)/g, ','))
123
+ }
124
+
125
+ render() {
126
+ const {
127
+ value,
128
+ useGrouping,
129
+ precision,
130
+ currencyScale,
131
+ keepZero,
132
+ isFenUnit,
133
+ feeType,
134
+ ...rest
135
+ } = this.props
136
+ const current = getCurrentFromType(feeType!)
137
+
138
+ return (
139
+ <span {...rest}>
140
+ {value < 0 ? '-' : ''}
141
+ <span style={{ fontSize: `${currencyScale! > 1 ? '1' : currencyScale}em` }}>
142
+ {current ? current.symbol : symbol}
143
+ </span>
144
+ {this._addComma(
145
+ !!useGrouping,
146
+ this._formatValue(value, precision!, !!keepZero, !!isFenUnit)
147
+ )}
148
+ </span>
149
+ )
150
+ }
151
+ }
152
+
153
+ export default Price
154
+ export type { PriceProps, CurrencyListOptions }
@@ -1,22 +1,22 @@
1
- import React from 'react'
2
- import { storiesOf } from '@storybook/react'
3
- import _ from 'lodash'
4
- import Price from './price'
5
-
6
- const list = [0, 10839, 2345454545, 1000, 12310, 10000000, -10, -226, -1000, -1000002323]
7
-
8
- storiesOf('其他/Price', module).add('default', () => (
9
- <div>
10
- {_.map(list, (v) => (
11
- <div key={v}>
12
- <Price value={v} />
13
- </div>
14
- ))}
15
- <Price isFenUnit value={1234} style={{ fontSize: '28px', color: 'red' }} /> <br />
16
- <Price
17
- value={40002288}
18
- currencyScale={0.8}
19
- style={{ fontSize: '28px', color: 'red' }}
20
- />
21
- </div>
22
- ))
1
+ import React from 'react'
2
+ import { storiesOf } from '@storybook/react'
3
+ import _ from 'lodash'
4
+ import Price from './price'
5
+
6
+ const list = [0, 10839, 2345454545, 1000, 12310, 10000000, -10, -226, -1000, -1000002323]
7
+
8
+ storiesOf('其他/Price', module).add('default', () => (
9
+ <div>
10
+ {_.map(list, (v) => (
11
+ <div key={v}>
12
+ <Price value={v} />
13
+ </div>
14
+ ))}
15
+ <Price isFenUnit value={1234} style={{ fontSize: '28px', color: 'red' }} /> <br />
16
+ <Price
17
+ value={40002288}
18
+ currencyScale={0.8}
19
+ style={{ fontSize: '28px', color: 'red' }}
20
+ />
21
+ </div>
22
+ ))
@@ -1,2 +1,2 @@
1
- export { default as Progress } from './progress'
2
- export type { ProgressProps } from './progress'
1
+ export { default as Progress } from './progress'
2
+ export type { ProgressProps } from './progress'