@gm-pc/react 1.25.1-beta.0 → 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,105 +1,105 @@
1
- .gm-flex-flex {
2
- flex: 1;
3
- }
4
-
5
- .gm-flex-auto {
6
- flex: auto;
7
- }
8
-
9
- .gm-flex-none {
10
- flex: none;
11
- }
12
-
13
- .gm-flex {
14
- display: flex;
15
- flex-direction: row;
16
- flex-wrap: nowrap;
17
- justify-content: flex-start;
18
- align-content: stretch;
19
- align-items: stretch;
20
- box-sizing: border-box;
21
-
22
- .gm-flex-block {
23
- display: block;
24
- }
25
-
26
- &.gm-flex-wrap {
27
- flex-wrap: wrap;
28
- }
29
-
30
- &.gm-flex-nowrap {
31
- flex-wrap: nowrap;
32
- }
33
-
34
- &.gm-flex-row {
35
- flex-direction: row;
36
- }
37
-
38
- &.gm-flex-column {
39
- flex-direction: column;
40
- }
41
-
42
- &.gm-flex-justify-start {
43
- justify-content: flex-start;
44
- }
45
-
46
- &.gm-flex-justify-end {
47
- justify-content: flex-end;
48
- }
49
-
50
- &.gm-flex-justify-center {
51
- justify-content: center;
52
- }
53
-
54
- &.gm-flex-justify-between {
55
- justify-content: space-between;
56
- }
57
-
58
- &.gm-flex-justify-around {
59
- justify-content: space-around;
60
- }
61
-
62
- &.gm-flex-align-start {
63
- align-items: flex-start;
64
- }
65
-
66
- &.gm-flex-align-end {
67
- align-items: flex-end;
68
- }
69
-
70
- &.gm-flex-align-center {
71
- align-items: center;
72
- }
73
-
74
- &.gm-flex-align-baseline {
75
- align-items: baseline;
76
- }
77
-
78
- &.gm-flex-align-stretch {
79
- align-items: stretch;
80
- }
81
-
82
- &.gm-flex-align-content-start {
83
- align-content: flex-start;
84
- }
85
-
86
- &.gm-flex-align-content-end {
87
- align-content: flex-end;
88
- }
89
-
90
- &.gm-flex-align-content-center {
91
- align-content: center;
92
- }
93
-
94
- &.gm-flex-align-content-between {
95
- align-content: space-between;
96
- }
97
-
98
- &.gm-flex-align-content-around {
99
- align-content: space-around;
100
- }
101
-
102
- &.gm-flex-align-content-stretch {
103
- align-content: stretch;
104
- }
105
- }
1
+ .gm-flex-flex {
2
+ flex: 1;
3
+ }
4
+
5
+ .gm-flex-auto {
6
+ flex: auto;
7
+ }
8
+
9
+ .gm-flex-none {
10
+ flex: none;
11
+ }
12
+
13
+ .gm-flex {
14
+ display: flex;
15
+ flex-direction: row;
16
+ flex-wrap: nowrap;
17
+ justify-content: flex-start;
18
+ align-content: stretch;
19
+ align-items: stretch;
20
+ box-sizing: border-box;
21
+
22
+ .gm-flex-block {
23
+ display: block;
24
+ }
25
+
26
+ &.gm-flex-wrap {
27
+ flex-wrap: wrap;
28
+ }
29
+
30
+ &.gm-flex-nowrap {
31
+ flex-wrap: nowrap;
32
+ }
33
+
34
+ &.gm-flex-row {
35
+ flex-direction: row;
36
+ }
37
+
38
+ &.gm-flex-column {
39
+ flex-direction: column;
40
+ }
41
+
42
+ &.gm-flex-justify-start {
43
+ justify-content: flex-start;
44
+ }
45
+
46
+ &.gm-flex-justify-end {
47
+ justify-content: flex-end;
48
+ }
49
+
50
+ &.gm-flex-justify-center {
51
+ justify-content: center;
52
+ }
53
+
54
+ &.gm-flex-justify-between {
55
+ justify-content: space-between;
56
+ }
57
+
58
+ &.gm-flex-justify-around {
59
+ justify-content: space-around;
60
+ }
61
+
62
+ &.gm-flex-align-start {
63
+ align-items: flex-start;
64
+ }
65
+
66
+ &.gm-flex-align-end {
67
+ align-items: flex-end;
68
+ }
69
+
70
+ &.gm-flex-align-center {
71
+ align-items: center;
72
+ }
73
+
74
+ &.gm-flex-align-baseline {
75
+ align-items: baseline;
76
+ }
77
+
78
+ &.gm-flex-align-stretch {
79
+ align-items: stretch;
80
+ }
81
+
82
+ &.gm-flex-align-content-start {
83
+ align-content: flex-start;
84
+ }
85
+
86
+ &.gm-flex-align-content-end {
87
+ align-content: flex-end;
88
+ }
89
+
90
+ &.gm-flex-align-content-center {
91
+ align-content: center;
92
+ }
93
+
94
+ &.gm-flex-align-content-between {
95
+ align-content: space-between;
96
+ }
97
+
98
+ &.gm-flex-align-content-around {
99
+ align-content: space-around;
100
+ }
101
+
102
+ &.gm-flex-align-content-stretch {
103
+ align-content: stretch;
104
+ }
105
+ }
@@ -1,209 +1,209 @@
1
- // @ts-nocheck
2
- import React, { Component } from 'react'
3
- import classNames from 'classnames'
4
- import { filterForNum, formatNum, getNumLength, getRawArray } from './utils'
5
- import _ from 'lodash'
6
-
7
- interface FlipNumberProps {
8
- /* 最后显示的数字 */
9
- to: number
10
- /* 起始数字,默认为 0 */
11
- from?: number
12
- /* 延迟,默认为 0 */
13
- delay?: number
14
- /* 滚动时长,默认为 1500 毫秒 */
15
- duration?: number
16
- /**
17
- * 滚动函数,控制滚动的加速度,默认起末慢,中间快
18
- * @see https://github.com/danro/easing-js/blob/4f5e7edbde7f7200a1baf08e357377896c0d207e/easing.js#L39-L42
19
- */
20
- easeFn?(percent: number): number
21
- /* 是否逐个数字滚动,默认 true */
22
- individually?: boolean
23
- /* 小数点个数,默认无小数点 */
24
- decimal?: number
25
- /* 是否启用逗号分隔数字 */
26
- useGroup?: boolean
27
- className?: string
28
- }
29
-
30
- interface FlipNumberState {
31
- height: number
32
- heightList: number[]
33
- }
34
-
35
- class FlipNumber extends Component<FlipNumberProps, FlipNumberState> {
36
- static defaultProps = {
37
- from: 0,
38
- duration: 1500,
39
- individually: true,
40
- decimal: 0,
41
- easeFn(percent: number): number {
42
- return (percent /= 0.5) < 1
43
- ? 0.5 * Math.pow(percent, 3)
44
- : 0.5 * (Math.pow(percent - 2, 3) + 2)
45
- },
46
- }
47
-
48
- constructor(props) {
49
- super(props)
50
- // eslint-disable-next-line react/state-in-constructor
51
- this.state = {
52
- height: 0,
53
- heightList: [],
54
- }
55
-
56
- this.height = 0
57
- this.numberArray = [...Array(10).keys()]
58
-
59
- this.doInitData(props)
60
- }
61
-
62
- componentDidMount() {
63
- this.height =
64
- this['gm-flip-number-digit0'].clientHeight / (this.numberArray.length + 1)
65
- this.doInitView(this.props)
66
- }
67
-
68
- // eslint-disable-next-line camelcase
69
- UNSAFE_componentWillReceiveProps(nextProps) {
70
- if (nextProps.to !== this.props.to) {
71
- window.cancelAnimationFrame(this.requestId)
72
- clearTimeout(this.timeoutID)
73
- this.doInitData(nextProps)
74
- this.doInitView(nextProps)
75
- }
76
- }
77
-
78
- doInitData = (props) => {
79
- const { from, to, decimal, useGroup } = props
80
- // 小数点 + useGroup
81
- this.fromStr = formatNum(from, decimal, useGroup)
82
- this.toStr = formatNum(to, decimal, useGroup)
83
- // 格式化滚动数字数组
84
- const totalLen = getNumLength(this.fromStr, this.toStr)
85
- this.toRawArr = getRawArray(this.toStr, totalLen) // to 的字符串数组
86
- this.toNumArr = filterForNum(this.toRawArr.rawList).map(Number) // to 的去掉',' '.'后的数字数组
87
- this.digitLen = this.toNumArr.length
88
- this.fromRawArr = getRawArray(this.fromStr, totalLen)
89
- this.fromNumArr = _.map([...Array(this.digitLen)], (_) => 0)
90
- }
91
-
92
- doInitView = (props) => {
93
- const { delay, duration } = props
94
- const fromNum = parseInt(filterForNum(this.fromStr.split('')).join(''), 10)
95
- const heightList = []
96
- _.forEach(this.toNumArr, (dom, index) => {
97
- const height = this.onDraw({
98
- from: this.fromNumArr[index],
99
- percent: 1,
100
- alter: Math.floor(fromNum / Math.pow(10, index)),
101
- })
102
- heightList.unshift(height)
103
- })
104
- this.setState({
105
- heightList: heightList,
106
- })
107
-
108
- delay
109
- ? (this.timeoutID = setTimeout(() => this.flipTo(duration), delay))
110
- : this.flipTo(duration)
111
- }
112
-
113
- /**
114
- * @description 数字的绘制函数,通过上下移动每一条数字轴来实现
115
- * @argument from 开始滚动的数字
116
- * @argument percent 已经滚动的时间占总滚动时间 duration 的比例
117
- * @argument alter from 变成 to 每个数字轴需要改变的距离
118
- * @returns 返回数字轴应该移动的距离
119
- */
120
- onDraw = ({ from, percent, alter }) => {
121
- const expectNum = (percent * alter + from) % 10 // 表示需要滚动多少个数字,小数居多,整数表示刚好显示完全一个数字
122
- return -expectNum * this.height
123
- }
124
-
125
- flipTo = (duration) => {
126
- const { easeFn, individually } = this.props
127
- this.fromNumArr = filterForNum(this.fromRawArr.rawList).map(Number)
128
- const draw = (percent) => {
129
- let temp = 0
130
- const heightList = []
131
- for (let d = this.toNumArr.length - 1; d >= 0; d--) {
132
- const alter = this.toNumArr[d] - this.fromNumArr[d]
133
- temp += alter
134
- const height = this.onDraw({
135
- from: this.fromNumArr[d],
136
- percent: easeFn(percent),
137
- alter: individually ? temp : alter,
138
- })
139
- heightList.push(height)
140
- temp *= 10
141
- }
142
- this.setState({
143
- heightList,
144
- })
145
- }
146
- const startTime = window.performance.now()
147
- const tick = (now) => {
148
- const timeConsuming = now - startTime
149
- draw(timeConsuming / duration)
150
- if (timeConsuming < duration) this.requestId = window.requestAnimationFrame(tick)
151
- else {
152
- draw(1)
153
- }
154
- }
155
- this.requestId = window.requestAnimationFrame(tick)
156
- }
157
-
158
- renderDigitAxis = () => {
159
- const { heightList } = this.state
160
- const digitAxis = _.map(this.toNumArr, (item, index) => (
161
- <div
162
- style={{ transform: `translateY(${heightList[index]}px)` }}
163
- ref={(rel) => {
164
- this[`gm-flip-number-digit${index}`] = rel
165
- }}
166
- className='gm-inline-block gm-position-relative'
167
- key={`digitAxis${index}`}
168
- >
169
- {_.map(this.numberArray, (i, d) => (
170
- <div key={`digitChild${d}`}>{i}</div>
171
- ))}
172
- <div>{this.numberArray[0]}</div>
173
- </div>
174
- ))
175
-
176
- _.forEach(this.toRawArr.symbolList, (item, index) => {
177
- const symbolAxis = (
178
- <div className='gm-inline-block' key={`symbolAxis${index}`}>
179
- {_.map(this.numberArray, (i, d) => (
180
- <div key={`symbolChile${d}`}>{item.symbol}</div>
181
- ))}
182
- <div>{item.symbol}</div>
183
- </div>
184
- )
185
- digitAxis.splice(item.position, 0, symbolAxis)
186
- })
187
-
188
- return digitAxis
189
- }
190
-
191
- render() {
192
- const { className, to } = this.props
193
- return (
194
- <div
195
- key={`${to}`}
196
- ref={(rel) => {
197
- this.wrap = rel
198
- }}
199
- style={{ height: `${this.height}px` }}
200
- className={classNames('gm-position-relative gm-overflow-hidden', className)}
201
- >
202
- {this.renderDigitAxis()}
203
- </div>
204
- )
205
- }
206
- }
207
-
208
- export default FlipNumber
209
- export type { FlipNumberProps }
1
+ // @ts-nocheck
2
+ import React, { Component } from 'react'
3
+ import classNames from 'classnames'
4
+ import { filterForNum, formatNum, getNumLength, getRawArray } from './utils'
5
+ import _ from 'lodash'
6
+
7
+ interface FlipNumberProps {
8
+ /* 最后显示的数字 */
9
+ to: number
10
+ /* 起始数字,默认为 0 */
11
+ from?: number
12
+ /* 延迟,默认为 0 */
13
+ delay?: number
14
+ /* 滚动时长,默认为 1500 毫秒 */
15
+ duration?: number
16
+ /**
17
+ * 滚动函数,控制滚动的加速度,默认起末慢,中间快
18
+ * @see https://github.com/danro/easing-js/blob/4f5e7edbde7f7200a1baf08e357377896c0d207e/easing.js#L39-L42
19
+ */
20
+ easeFn?(percent: number): number
21
+ /* 是否逐个数字滚动,默认 true */
22
+ individually?: boolean
23
+ /* 小数点个数,默认无小数点 */
24
+ decimal?: number
25
+ /* 是否启用逗号分隔数字 */
26
+ useGroup?: boolean
27
+ className?: string
28
+ }
29
+
30
+ interface FlipNumberState {
31
+ height: number
32
+ heightList: number[]
33
+ }
34
+
35
+ class FlipNumber extends Component<FlipNumberProps, FlipNumberState> {
36
+ static defaultProps = {
37
+ from: 0,
38
+ duration: 1500,
39
+ individually: true,
40
+ decimal: 0,
41
+ easeFn(percent: number): number {
42
+ return (percent /= 0.5) < 1
43
+ ? 0.5 * Math.pow(percent, 3)
44
+ : 0.5 * (Math.pow(percent - 2, 3) + 2)
45
+ },
46
+ }
47
+
48
+ constructor(props) {
49
+ super(props)
50
+ // eslint-disable-next-line react/state-in-constructor
51
+ this.state = {
52
+ height: 0,
53
+ heightList: [],
54
+ }
55
+
56
+ this.height = 0
57
+ this.numberArray = [...Array(10).keys()]
58
+
59
+ this.doInitData(props)
60
+ }
61
+
62
+ componentDidMount() {
63
+ this.height =
64
+ this['gm-flip-number-digit0'].clientHeight / (this.numberArray.length + 1)
65
+ this.doInitView(this.props)
66
+ }
67
+
68
+ // eslint-disable-next-line camelcase
69
+ UNSAFE_componentWillReceiveProps(nextProps) {
70
+ if (nextProps.to !== this.props.to) {
71
+ window.cancelAnimationFrame(this.requestId)
72
+ clearTimeout(this.timeoutID)
73
+ this.doInitData(nextProps)
74
+ this.doInitView(nextProps)
75
+ }
76
+ }
77
+
78
+ doInitData = (props) => {
79
+ const { from, to, decimal, useGroup } = props
80
+ // 小数点 + useGroup
81
+ this.fromStr = formatNum(from, decimal, useGroup)
82
+ this.toStr = formatNum(to, decimal, useGroup)
83
+ // 格式化滚动数字数组
84
+ const totalLen = getNumLength(this.fromStr, this.toStr)
85
+ this.toRawArr = getRawArray(this.toStr, totalLen) // to 的字符串数组
86
+ this.toNumArr = filterForNum(this.toRawArr.rawList).map(Number) // to 的去掉',' '.'后的数字数组
87
+ this.digitLen = this.toNumArr.length
88
+ this.fromRawArr = getRawArray(this.fromStr, totalLen)
89
+ this.fromNumArr = _.map([...Array(this.digitLen)], (_) => 0)
90
+ }
91
+
92
+ doInitView = (props) => {
93
+ const { delay, duration } = props
94
+ const fromNum = parseInt(filterForNum(this.fromStr.split('')).join(''), 10)
95
+ const heightList = []
96
+ _.forEach(this.toNumArr, (dom, index) => {
97
+ const height = this.onDraw({
98
+ from: this.fromNumArr[index],
99
+ percent: 1,
100
+ alter: Math.floor(fromNum / Math.pow(10, index)),
101
+ })
102
+ heightList.unshift(height)
103
+ })
104
+ this.setState({
105
+ heightList: heightList,
106
+ })
107
+
108
+ delay
109
+ ? (this.timeoutID = setTimeout(() => this.flipTo(duration), delay))
110
+ : this.flipTo(duration)
111
+ }
112
+
113
+ /**
114
+ * @description 数字的绘制函数,通过上下移动每一条数字轴来实现
115
+ * @argument from 开始滚动的数字
116
+ * @argument percent 已经滚动的时间占总滚动时间 duration 的比例
117
+ * @argument alter from 变成 to 每个数字轴需要改变的距离
118
+ * @returns 返回数字轴应该移动的距离
119
+ */
120
+ onDraw = ({ from, percent, alter }) => {
121
+ const expectNum = (percent * alter + from) % 10 // 表示需要滚动多少个数字,小数居多,整数表示刚好显示完全一个数字
122
+ return -expectNum * this.height
123
+ }
124
+
125
+ flipTo = (duration) => {
126
+ const { easeFn, individually } = this.props
127
+ this.fromNumArr = filterForNum(this.fromRawArr.rawList).map(Number)
128
+ const draw = (percent) => {
129
+ let temp = 0
130
+ const heightList = []
131
+ for (let d = this.toNumArr.length - 1; d >= 0; d--) {
132
+ const alter = this.toNumArr[d] - this.fromNumArr[d]
133
+ temp += alter
134
+ const height = this.onDraw({
135
+ from: this.fromNumArr[d],
136
+ percent: easeFn(percent),
137
+ alter: individually ? temp : alter,
138
+ })
139
+ heightList.push(height)
140
+ temp *= 10
141
+ }
142
+ this.setState({
143
+ heightList,
144
+ })
145
+ }
146
+ const startTime = window.performance.now()
147
+ const tick = (now) => {
148
+ const timeConsuming = now - startTime
149
+ draw(timeConsuming / duration)
150
+ if (timeConsuming < duration) this.requestId = window.requestAnimationFrame(tick)
151
+ else {
152
+ draw(1)
153
+ }
154
+ }
155
+ this.requestId = window.requestAnimationFrame(tick)
156
+ }
157
+
158
+ renderDigitAxis = () => {
159
+ const { heightList } = this.state
160
+ const digitAxis = _.map(this.toNumArr, (item, index) => (
161
+ <div
162
+ style={{ transform: `translateY(${heightList[index]}px)` }}
163
+ ref={(rel) => {
164
+ this[`gm-flip-number-digit${index}`] = rel
165
+ }}
166
+ className='gm-inline-block gm-position-relative'
167
+ key={`digitAxis${index}`}
168
+ >
169
+ {_.map(this.numberArray, (i, d) => (
170
+ <div key={`digitChild${d}`}>{i}</div>
171
+ ))}
172
+ <div>{this.numberArray[0]}</div>
173
+ </div>
174
+ ))
175
+
176
+ _.forEach(this.toRawArr.symbolList, (item, index) => {
177
+ const symbolAxis = (
178
+ <div className='gm-inline-block' key={`symbolAxis${index}`}>
179
+ {_.map(this.numberArray, (i, d) => (
180
+ <div key={`symbolChile${d}`}>{item.symbol}</div>
181
+ ))}
182
+ <div>{item.symbol}</div>
183
+ </div>
184
+ )
185
+ digitAxis.splice(item.position, 0, symbolAxis)
186
+ })
187
+
188
+ return digitAxis
189
+ }
190
+
191
+ render() {
192
+ const { className, to } = this.props
193
+ return (
194
+ <div
195
+ key={`${to}`}
196
+ ref={(rel) => {
197
+ this.wrap = rel
198
+ }}
199
+ style={{ height: `${this.height}px` }}
200
+ className={classNames('gm-position-relative gm-overflow-hidden', className)}
201
+ >
202
+ {this.renderDigitAxis()}
203
+ </div>
204
+ )
205
+ }
206
+ }
207
+
208
+ export default FlipNumber
209
+ export type { FlipNumberProps }
@@ -1,2 +1,2 @@
1
- export { default as FlipNumber } from './flip_number'
2
- export type { FlipNumberProps } from './flip_number'
1
+ export { default as FlipNumber } from './flip_number'
2
+ export type { FlipNumberProps } from './flip_number'