@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,56 +1,56 @@
1
- import React from 'react'
2
- import Input from './input'
3
- import InputClose from './input_close'
4
- import { observable } from 'mobx'
5
-
6
- const store = observable({
7
- value: 'a',
8
- })
9
-
10
- export const ComInput = () => {
11
- return (
12
- <div className='gm-padding-10' style={{ width: '200px' }}>
13
- <Input
14
- placeholder='请输入'
15
- value={store.value}
16
- onChange={(e) => {
17
- store.value = e.target.value
18
- }}
19
- />
20
- <Input
21
- placeholder='请输入'
22
- value={store.value}
23
- onChange={(e) => {
24
- store.value = e.target.value
25
- }}
26
- disabled
27
- />
28
- </div>
29
- )
30
- }
31
-
32
- export const ComInputClose = () => {
33
- return (
34
- <div className='gm-padding-10' style={{ width: '200px' }}>
35
- <InputClose
36
- placeholder='请输入'
37
- value={store.value}
38
- onChange={(value: string) => {
39
- store.value = value
40
- }}
41
- />
42
- <InputClose
43
- placeholder='请输入'
44
- value={store.value}
45
- onChange={(value: string) => {
46
- store.value = value
47
- }}
48
- disabled
49
- />
50
- </div>
51
- )
52
- }
53
-
54
- export default {
55
- title: '表单/Input',
56
- }
1
+ import React from 'react'
2
+ import Input from './input'
3
+ import InputClose from './input_close'
4
+ import { observable } from 'mobx'
5
+
6
+ const store = observable({
7
+ value: 'a',
8
+ })
9
+
10
+ export const ComInput = () => {
11
+ return (
12
+ <div className='gm-padding-10' style={{ width: '200px' }}>
13
+ <Input
14
+ placeholder='请输入'
15
+ value={store.value}
16
+ onChange={(e) => {
17
+ store.value = e.target.value
18
+ }}
19
+ />
20
+ <Input
21
+ placeholder='请输入'
22
+ value={store.value}
23
+ onChange={(e) => {
24
+ store.value = e.target.value
25
+ }}
26
+ disabled
27
+ />
28
+ </div>
29
+ )
30
+ }
31
+
32
+ export const ComInputClose = () => {
33
+ return (
34
+ <div className='gm-padding-10' style={{ width: '200px' }}>
35
+ <InputClose
36
+ placeholder='请输入'
37
+ value={store.value}
38
+ onChange={(value: string) => {
39
+ store.value = value
40
+ }}
41
+ />
42
+ <InputClose
43
+ placeholder='请输入'
44
+ value={store.value}
45
+ onChange={(value: string) => {
46
+ store.value = value
47
+ }}
48
+ disabled
49
+ />
50
+ </div>
51
+ )
52
+ }
53
+
54
+ export default {
55
+ title: '表单/Input',
56
+ }
@@ -1,33 +1,33 @@
1
- .gm-input {
2
- .gmFormControl();
3
-
4
- .gmDisabledBgWith();
5
-
6
- /** 字体大小 */
7
- &.gm-input-sm {
8
- font-size: var(--gm-size-text-sm);
9
- }
10
- }
11
-
12
- .gm-input-close {
13
- position: relative;
14
-
15
- .gm-input {
16
- padding-right: 20px;
17
- }
18
-
19
- .gm-input-close-icon {
20
- cursor: pointer;
21
- position: absolute;
22
- right: 5px;
23
- top: 9px;
24
- color: var(--gm-color-desc);
25
- font-size: 12px;
26
- }
27
-
28
- &.disabled {
29
- .gm-input-close-icon {
30
- display: none;
31
- }
32
- }
33
- }
1
+ .gm-input {
2
+ .gmFormControl();
3
+
4
+ .gmDisabledBgWith();
5
+
6
+ /** 字体大小 */
7
+ &.gm-input-sm {
8
+ font-size: var(--gm-size-text-sm);
9
+ }
10
+ }
11
+
12
+ .gm-input-close {
13
+ position: relative;
14
+
15
+ .gm-input {
16
+ padding-right: 20px;
17
+ }
18
+
19
+ .gm-input-close-icon {
20
+ cursor: pointer;
21
+ position: absolute;
22
+ right: 5px;
23
+ top: 9px;
24
+ color: var(--gm-color-desc);
25
+ font-size: 12px;
26
+ }
27
+
28
+ &.disabled {
29
+ .gm-input-close-icon {
30
+ display: none;
31
+ }
32
+ }
33
+ }
@@ -1,2 +1,2 @@
1
- export { default as InputNumber } from './input_number'
2
- export type { InputNumberProps } from './input_number'
1
+ export { default as InputNumber } from './input_number'
2
+ export type { InputNumberProps } from './input_number'
@@ -1,115 +1,115 @@
1
- import React, {
2
- ChangeEvent,
3
- Component,
4
- createRef,
5
- CSSProperties,
6
- InputHTMLAttributes,
7
- } from 'react'
8
- import classNames from 'classnames'
9
- import { checkValue, fixNumber, processPropsValue, text2Number } from './utils'
10
- import { Input } from '../input'
11
-
12
- interface InputNumberProps
13
- extends Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange'> {
14
- value: number | null
15
- onChange?(value: number | null): void
16
- disabled?: boolean
17
- placeholder?: string
18
- min?: number
19
- max?: number
20
- precision?: number
21
- className?: string
22
- style?: CSSProperties
23
- }
24
-
25
- interface InputNumberState {
26
- value: string
27
- }
28
-
29
- class InputNumber extends Component<InputNumberProps, InputNumberState> {
30
- static defaultProps = {
31
- value: null,
32
- precision: 2,
33
- }
34
-
35
- static getDerivedStateFromProps(
36
- props: InputNumberProps,
37
- state: InputNumberState
38
- ): InputNumberState | null {
39
- // 一旦不一致就应该改,要比较 number 形式
40
- if (props.value !== text2Number(state.value)) {
41
- return {
42
- value: processPropsValue(props.value as number),
43
- }
44
- }
45
-
46
- return null
47
- }
48
-
49
- private _inputRef = createRef<HTMLInputElement>()
50
- private _isUnmount = false
51
-
52
- readonly state: InputNumberState = {
53
- value: processPropsValue(this.props.value as number),
54
- }
55
-
56
- componentWillUnmount() {
57
- this._isUnmount = true
58
- }
59
-
60
- public apiDoFocus(): void {
61
- if (this._isUnmount) {
62
- return
63
- }
64
- this._inputRef.current!.focus()
65
- }
66
-
67
- public apiDoSelect(): void {
68
- if (this._isUnmount) {
69
- return
70
- }
71
- this._inputRef.current!.select()
72
- }
73
-
74
- private _handleChange = (event: ChangeEvent<HTMLInputElement>): void => {
75
- const { min, max, precision, onChange } = this.props
76
- const eValue = event.target.value
77
-
78
- // 检测是否合法输入
79
- if (!checkValue(eValue, precision!, min)) {
80
- return
81
- }
82
-
83
- const newValue = text2Number(eValue)
84
- const newFixValue = fixNumber(newValue, min, max)
85
-
86
- // 如果数据有被修正,则同步下修改的值到 state
87
- if (newFixValue !== newValue) {
88
- this.setState({
89
- value: processPropsValue(newFixValue),
90
- })
91
- } else {
92
- this.setState({
93
- value: eValue,
94
- })
95
- }
96
- onChange(newFixValue)
97
- }
98
-
99
- render() {
100
- const { value, onChange, max, min, precision, className, ...rest } = this.props
101
- return (
102
- <Input
103
- {...rest}
104
- ref={this._inputRef}
105
- value={this.state.value}
106
- type='text'
107
- className={classNames('gm-input-number', className)}
108
- onChange={this._handleChange}
109
- />
110
- )
111
- }
112
- }
113
-
114
- export default InputNumber
115
- export type { InputNumberProps }
1
+ import React, {
2
+ ChangeEvent,
3
+ Component,
4
+ createRef,
5
+ CSSProperties,
6
+ InputHTMLAttributes,
7
+ } from 'react'
8
+ import classNames from 'classnames'
9
+ import { checkValue, fixNumber, processPropsValue, text2Number } from './utils'
10
+ import { Input } from '../input'
11
+
12
+ interface InputNumberProps
13
+ extends Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange'> {
14
+ value: number | null
15
+ onChange?(value: number | null): void
16
+ disabled?: boolean
17
+ placeholder?: string
18
+ min?: number
19
+ max?: number
20
+ precision?: number
21
+ className?: string
22
+ style?: CSSProperties
23
+ }
24
+
25
+ interface InputNumberState {
26
+ value: string
27
+ }
28
+
29
+ class InputNumber extends Component<InputNumberProps, InputNumberState> {
30
+ static defaultProps = {
31
+ value: null,
32
+ precision: 2,
33
+ }
34
+
35
+ static getDerivedStateFromProps(
36
+ props: InputNumberProps,
37
+ state: InputNumberState
38
+ ): InputNumberState | null {
39
+ // 一旦不一致就应该改,要比较 number 形式
40
+ if (props.value !== text2Number(state.value)) {
41
+ return {
42
+ value: processPropsValue(props.value as number),
43
+ }
44
+ }
45
+
46
+ return null
47
+ }
48
+
49
+ private _inputRef = createRef<HTMLInputElement>()
50
+ private _isUnmount = false
51
+
52
+ readonly state: InputNumberState = {
53
+ value: processPropsValue(this.props.value as number),
54
+ }
55
+
56
+ componentWillUnmount() {
57
+ this._isUnmount = true
58
+ }
59
+
60
+ public apiDoFocus(): void {
61
+ if (this._isUnmount) {
62
+ return
63
+ }
64
+ this._inputRef.current!.focus()
65
+ }
66
+
67
+ public apiDoSelect(): void {
68
+ if (this._isUnmount) {
69
+ return
70
+ }
71
+ this._inputRef.current!.select()
72
+ }
73
+
74
+ private _handleChange = (event: ChangeEvent<HTMLInputElement>): void => {
75
+ const { min, max, precision, onChange } = this.props
76
+ const eValue = event.target.value
77
+
78
+ // 检测是否合法输入
79
+ if (!checkValue(eValue, precision!, min)) {
80
+ return
81
+ }
82
+
83
+ const newValue = text2Number(eValue)
84
+ const newFixValue = fixNumber(newValue, min, max)
85
+
86
+ // 如果数据有被修正,则同步下修改的值到 state
87
+ if (newFixValue !== newValue) {
88
+ this.setState({
89
+ value: processPropsValue(newFixValue),
90
+ })
91
+ } else {
92
+ this.setState({
93
+ value: eValue,
94
+ })
95
+ }
96
+ onChange(newFixValue)
97
+ }
98
+
99
+ render() {
100
+ const { value, onChange, max, min, precision, className, ...rest } = this.props
101
+ return (
102
+ <Input
103
+ {...rest}
104
+ ref={this._inputRef}
105
+ value={this.state.value}
106
+ type='text'
107
+ className={classNames('gm-input-number', className)}
108
+ onChange={this._handleChange}
109
+ />
110
+ )
111
+ }
112
+ }
113
+
114
+ export default InputNumber
115
+ export type { InputNumberProps }
@@ -1,27 +1,27 @@
1
- import React from 'react'
2
- import InputNumber from './input_number'
3
- import { observable } from 'mobx'
4
-
5
- const store = observable({
6
- value: null,
7
- setValue(value: number | null) {
8
- // @ts-ignore
9
- this.value = value
10
- },
11
- })
12
-
13
- export const ComInputNumber = () => (
14
- <div style={{ width: '200px' }}>
15
- <InputNumber
16
- value={store.value}
17
- onChange={(value) => {
18
- store.setValue(value)
19
- }}
20
- min={0}
21
- />
22
- </div>
23
- )
24
-
25
- export default {
26
- title: '表单/InputNumber',
27
- }
1
+ import React from 'react'
2
+ import InputNumber from './input_number'
3
+ import { observable } from 'mobx'
4
+
5
+ const store = observable({
6
+ value: null,
7
+ setValue(value: number | null) {
8
+ // @ts-ignore
9
+ this.value = value
10
+ },
11
+ })
12
+
13
+ export const ComInputNumber = () => (
14
+ <div style={{ width: '200px' }}>
15
+ <InputNumber
16
+ value={store.value}
17
+ onChange={(value) => {
18
+ store.setValue(value)
19
+ }}
20
+ min={0}
21
+ />
22
+ </div>
23
+ )
24
+
25
+ export default {
26
+ title: '表单/InputNumber',
27
+ }
@@ -1,10 +1,10 @@
1
- .gm-input-number {
2
- /* Firefox */
3
- -moz-appearance: textfield;
4
- }
5
-
6
- .gm-input-number::-webkit-outer-spin-button,
7
- .gm-input-number::-webkit-inner-spin-button {
8
- margin: 0;
9
- -webkit-appearance: none !important;
10
- }
1
+ .gm-input-number {
2
+ /* Firefox */
3
+ -moz-appearance: textfield;
4
+ }
5
+
6
+ .gm-input-number::-webkit-outer-spin-button,
7
+ .gm-input-number::-webkit-inner-spin-button {
8
+ margin: 0;
9
+ -webkit-appearance: none !important;
10
+ }
@@ -1,44 +1,44 @@
1
- import _ from 'lodash'
2
-
3
- function checkValue(value: string, precision: number, min?: number): boolean {
4
- // 正则说明:前置无限【1-9】的数字加小数点加精度个数字,前置为「0」加小数点加精度个数字
5
- const reg = new RegExp(
6
- '(^[1-9]\\d*(\\.\\d{0,' + precision + '})?$)|(^0(\\.\\d{0,' + precision + '})?$)'
7
- )
8
- // min >= 0 '-' 就是不合法的
9
- if ((_.isUndefined(min) || min < 0) && value.startsWith('-')) {
10
- value = value.slice(1)
11
- }
12
- if (value === '') {
13
- return true
14
- }
15
- return reg.test(value)
16
- }
17
-
18
- function text2Number(value: string): number | null {
19
- if (value === '') {
20
- return null
21
- }
22
- return _.isNaN(parseFloat(value)) ? null : parseFloat(value)
23
- }
24
-
25
- function fixNumber(value: number | null, min?: number, max?: number): number | null {
26
- if (value !== null) {
27
- if (max !== undefined && value > max) {
28
- value = max
29
- } else if (min !== undefined && value < min) {
30
- value = min
31
- }
32
- }
33
-
34
- return value
35
- }
36
-
37
- function processPropsValue(value: number | null): string {
38
- if (value === null) {
39
- return ''
40
- }
41
- return `${value}`
42
- }
43
-
44
- export { checkValue, text2Number, fixNumber, processPropsValue }
1
+ import _ from 'lodash'
2
+
3
+ function checkValue(value: string, precision: number, min?: number): boolean {
4
+ // 正则说明:前置无限【1-9】的数字加小数点加精度个数字,前置为「0」加小数点加精度个数字
5
+ const reg = new RegExp(
6
+ '(^[1-9]\\d*(\\.\\d{0,' + precision + '})?$)|(^0(\\.\\d{0,' + precision + '})?$)'
7
+ )
8
+ // min >= 0 '-' 就是不合法的
9
+ if ((_.isUndefined(min) || min < 0) && value.startsWith('-')) {
10
+ value = value.slice(1)
11
+ }
12
+ if (value === '') {
13
+ return true
14
+ }
15
+ return reg.test(value)
16
+ }
17
+
18
+ function text2Number(value: string): number | null {
19
+ if (value === '') {
20
+ return null
21
+ }
22
+ return _.isNaN(parseFloat(value)) ? null : parseFloat(value)
23
+ }
24
+
25
+ function fixNumber(value: number | null, min?: number, max?: number): number | null {
26
+ if (value !== null) {
27
+ if (max !== undefined && value > max) {
28
+ value = max
29
+ } else if (min !== undefined && value < min) {
30
+ value = min
31
+ }
32
+ }
33
+
34
+ return value
35
+ }
36
+
37
+ function processPropsValue(value: number | null): string {
38
+ if (value === null) {
39
+ return ''
40
+ }
41
+ return `${value}`
42
+ }
43
+
44
+ export { checkValue, text2Number, fixNumber, processPropsValue }
@@ -1,19 +1,19 @@
1
- import React, { FC, HTMLAttributes } from 'react'
2
- import classNames from 'classnames'
3
-
4
- export type LabelType = 'default' | 'primary' | 'danger' | 'inactive' | 'gray'
5
-
6
- interface LabelProps extends HTMLAttributes<HTMLDivElement> {
7
- /** 标签样式种类 */
8
- type?: LabelType
9
- }
10
-
11
- const Label: FC<LabelProps> = ({ type = 'default', className, children, ...rest }) => {
12
- return (
13
- <div {...rest} className={classNames('gm-label', className, `gm-label-${type}`)}>
14
- {children}
15
- </div>
16
- )
17
- }
18
-
19
- export default Label
1
+ import React, { FC, HTMLAttributes } from 'react'
2
+ import classNames from 'classnames'
3
+
4
+ export type LabelType = 'default' | 'primary' | 'danger' | 'inactive' | 'gray'
5
+
6
+ interface LabelProps extends HTMLAttributes<HTMLDivElement> {
7
+ /** 标签样式种类 */
8
+ type?: LabelType
9
+ }
10
+
11
+ const Label: FC<LabelProps> = ({ type = 'default', className, children, ...rest }) => {
12
+ return (
13
+ <div {...rest} className={classNames('gm-label', className, `gm-label-${type}`)}>
14
+ {children}
15
+ </div>
16
+ )
17
+ }
18
+
19
+ export default Label
@@ -1,26 +1,26 @@
1
- import React from 'react'
2
- import Label from './index'
3
-
4
- export const ComLabel = () => {
5
- return (
6
- <div className='gm-padding-10'>
7
- <Label className='gm-margin-lr-5'>标签</Label>
8
- <Label type='primary' className='gm-margin-lr-5'>
9
- 标签
10
- </Label>
11
- <Label type='danger' className='gm-margin-lr-5'>
12
- 标签
13
- </Label>
14
- <Label type='inactive' className='gm-margin-lr-5'>
15
- 标签
16
- </Label>
17
- <Label type='gray' className='gm-margin-lr-5'>
18
- 标签
19
- </Label>
20
- </div>
21
- )
22
- }
23
-
24
- export default {
25
- title: '其他/Label',
26
- }
1
+ import React from 'react'
2
+ import Label from './index'
3
+
4
+ export const ComLabel = () => {
5
+ return (
6
+ <div className='gm-padding-10'>
7
+ <Label className='gm-margin-lr-5'>标签</Label>
8
+ <Label type='primary' className='gm-margin-lr-5'>
9
+ 标签
10
+ </Label>
11
+ <Label type='danger' className='gm-margin-lr-5'>
12
+ 标签
13
+ </Label>
14
+ <Label type='inactive' className='gm-margin-lr-5'>
15
+ 标签
16
+ </Label>
17
+ <Label type='gray' className='gm-margin-lr-5'>
18
+ 标签
19
+ </Label>
20
+ </div>
21
+ )
22
+ }
23
+
24
+ export default {
25
+ title: '其他/Label',
26
+ }