linkmore-design 1.1.3 → 1.1.4

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 (120) hide show
  1. package/dist/CropImg/LmCropImg.d.ts +11 -0
  2. package/dist/CropImg/body/Operate.d.ts +5 -0
  3. package/dist/CropImg/body/index.d.ts +5 -0
  4. package/dist/CropImg/demos/basic.d.ts +2 -0
  5. package/dist/CropImg/fns/index.d.ts +14 -0
  6. package/dist/CropImg/index.d.ts +4 -0
  7. package/dist/CropImg/style/index.d.ts +1 -0
  8. package/dist/CropImg/style/variables.d.ts +1 -0
  9. package/dist/CropImg/utils.d.ts +18 -0
  10. package/dist/CropImg/wrapper/Container.d.ts +5 -0
  11. package/dist/CropImg/wrapper/Root.d.ts +3 -0
  12. package/dist/CropImg/wrapper/Wrapper.d.ts +5 -0
  13. package/dist/CropImg/wrapper/reducer.d.ts +13 -0
  14. package/dist/ImageViewer/wrapeer/Container.d.ts +4 -3
  15. package/dist/ImageViewer/wrapeer/Wrapper.d.ts +4 -3
  16. package/dist/LmUpload/components/Crop.d.ts +5 -0
  17. package/dist/LmUpload/demos/crop.d.ts +2 -0
  18. package/dist/LmUpload/demos/custom.d.ts +2 -0
  19. package/dist/LmUpload/fns/index.d.ts +2 -0
  20. package/dist/LmUpload/wrapper/reducer.d.ts +1 -0
  21. package/dist/index.d.ts +3 -0
  22. package/dist/index.umd.js +2529 -27
  23. package/dist/index.umd.min.js +46 -18
  24. package/dist/variables.css +90 -30
  25. package/es/CardTable/pager/TablePagination.js +1 -3
  26. package/es/CardTable/pager/index.js +0 -1
  27. package/es/CropImg/LmCropImg.d.ts +11 -0
  28. package/es/CropImg/LmCropImg.js +17 -0
  29. package/es/CropImg/body/Operate.d.ts +5 -0
  30. package/es/CropImg/body/Operate.js +90 -0
  31. package/es/CropImg/body/index.d.ts +5 -0
  32. package/es/CropImg/body/index.js +46 -0
  33. package/es/CropImg/fns/index.d.ts +14 -0
  34. package/es/CropImg/fns/index.js +50 -0
  35. package/es/CropImg/index.d.ts +4 -0
  36. package/es/CropImg/index.js +4 -0
  37. package/es/CropImg/style/index.css +17 -0
  38. package/es/CropImg/style/index.js +3 -0
  39. package/es/CropImg/style/variables.css +17 -0
  40. package/es/CropImg/style/variables.js +3 -0
  41. package/es/CropImg/utils.js +161 -0
  42. package/es/CropImg/wrapper/Container.d.ts +5 -0
  43. package/es/CropImg/wrapper/Container.js +107 -0
  44. package/es/CropImg/wrapper/Root.d.ts +3 -0
  45. package/es/CropImg/wrapper/Root.js +44 -0
  46. package/es/CropImg/wrapper/Wrapper.d.ts +5 -0
  47. package/es/CropImg/wrapper/Wrapper.js +11 -0
  48. package/es/CropImg/wrapper/reducer.d.ts +13 -0
  49. package/es/CropImg/wrapper/reducer.js +33 -0
  50. package/es/ImageViewer/wrapeer/Container.d.ts +4 -3
  51. package/es/ImageViewer/wrapeer/Container.js +1 -1
  52. package/es/ImageViewer/wrapeer/Wrapper.d.ts +4 -3
  53. package/es/ImageViewer/wrapeer/Wrapper.js +1 -1
  54. package/es/LmFilter/components/CheckboxFilter.js +7 -4
  55. package/es/LmFilter/filterFns/index.js +15 -3
  56. package/es/LmFilter/style/index.css +73 -30
  57. package/es/LmFilter/style/variables.css +73 -30
  58. package/es/LmTable/Table.js +3 -2
  59. package/es/LmUpload/LmUpload.js +1 -0
  60. package/es/LmUpload/components/Crop.d.ts +5 -0
  61. package/es/LmUpload/components/Crop.js +23 -0
  62. package/es/LmUpload/fns/index.d.ts +2 -0
  63. package/es/LmUpload/fns/index.js +90 -14
  64. package/es/LmUpload/wrapper/UploadWrapper.js +3 -0
  65. package/es/LmUpload/wrapper/reducer.d.ts +1 -0
  66. package/es/LmUpload/wrapper/reducer.js +9 -2
  67. package/es/index.d.ts +3 -0
  68. package/es/index.js +3 -1
  69. package/es/styles/variables.css +90 -30
  70. package/lib/CardTable/pager/TablePagination.js +1 -3
  71. package/lib/CardTable/pager/index.js +0 -1
  72. package/lib/CropImg/LmCropImg.d.ts +11 -0
  73. package/lib/CropImg/LmCropImg.js +31 -0
  74. package/lib/CropImg/body/Operate.d.ts +5 -0
  75. package/lib/CropImg/body/Operate.js +102 -0
  76. package/lib/CropImg/body/index.d.ts +5 -0
  77. package/lib/CropImg/body/index.js +60 -0
  78. package/lib/CropImg/fns/index.d.ts +14 -0
  79. package/lib/CropImg/fns/index.js +60 -0
  80. package/lib/CropImg/index.d.ts +4 -0
  81. package/lib/CropImg/index.js +33 -0
  82. package/lib/CropImg/style/index.css +17 -0
  83. package/lib/CropImg/style/index.js +3 -0
  84. package/lib/CropImg/style/variables.css +17 -0
  85. package/lib/CropImg/style/variables.js +3 -0
  86. package/lib/CropImg/utils.js +161 -0
  87. package/lib/CropImg/wrapper/Container.d.ts +5 -0
  88. package/lib/CropImg/wrapper/Container.js +124 -0
  89. package/lib/CropImg/wrapper/Root.d.ts +3 -0
  90. package/lib/CropImg/wrapper/Root.js +61 -0
  91. package/lib/CropImg/wrapper/Wrapper.d.ts +5 -0
  92. package/lib/CropImg/wrapper/Wrapper.js +23 -0
  93. package/lib/CropImg/wrapper/reducer.d.ts +13 -0
  94. package/lib/CropImg/wrapper/reducer.js +45 -0
  95. package/lib/ImageViewer/wrapeer/Container.d.ts +4 -3
  96. package/lib/ImageViewer/wrapeer/Container.js +2 -1
  97. package/lib/ImageViewer/wrapeer/Wrapper.d.ts +4 -3
  98. package/lib/ImageViewer/wrapeer/Wrapper.js +2 -1
  99. package/lib/LmFilter/components/CheckboxFilter.js +7 -4
  100. package/lib/LmFilter/filterFns/index.js +15 -3
  101. package/lib/LmFilter/style/index.css +73 -30
  102. package/lib/LmFilter/style/variables.css +73 -30
  103. package/lib/LmTable/Table.js +3 -2
  104. package/lib/LmUpload/LmUpload.js +1 -0
  105. package/lib/LmUpload/components/Crop.d.ts +5 -0
  106. package/lib/LmUpload/components/Crop.js +35 -0
  107. package/lib/LmUpload/fns/index.d.ts +2 -0
  108. package/lib/LmUpload/fns/index.js +90 -14
  109. package/lib/LmUpload/wrapper/UploadWrapper.js +4 -0
  110. package/lib/LmUpload/wrapper/reducer.d.ts +1 -0
  111. package/lib/LmUpload/wrapper/reducer.js +9 -2
  112. package/lib/index.d.ts +3 -0
  113. package/lib/index.js +21 -3
  114. package/lib/styles/variables.css +90 -30
  115. package/package.json +3 -1
  116. package/dist/LmUpload/components/card.d.ts +0 -2
  117. package/es/LmUpload/components/card.d.ts +0 -2
  118. package/es/LmUpload/components/card.js +0 -9
  119. package/lib/LmUpload/components/card.d.ts +0 -2
  120. package/lib/LmUpload/components/card.js +0 -19
@@ -1,7 +1,8 @@
1
1
  // 状态管理操作
2
2
  export var reducer = function reducer(state, action) {
3
3
  var fileList = action.fileList,
4
- percent = action.percent;
4
+ percent = action.percent,
5
+ cropFile = action.cropFile;
5
6
 
6
7
  switch (action.type) {
7
8
  case 'changeFileList':
@@ -14,6 +15,11 @@ export var reducer = function reducer(state, action) {
14
15
  percent: percent
15
16
  });
16
17
 
18
+ case 'changeCropFile':
19
+ return Object.assign(Object.assign({}, state), {
20
+ cropFile: cropFile
21
+ });
22
+
17
23
  default:
18
24
  throw new Error();
19
25
  }
@@ -26,7 +32,8 @@ export var initialState = function initialState(props) {
26
32
  upload: upload,
27
33
  process: 0,
28
34
  status: 'done',
29
- fileList: defaultFileList // 用于非受控模式时的数据收集
35
+ fileList: defaultFileList,
36
+ cropFile: null // 需要裁剪的图片
30
37
 
31
38
  };
32
39
  };
package/es/index.d.ts CHANGED
@@ -120,3 +120,6 @@ export type { DescriptionsProps } from './Descriptions';
120
120
  export { default as FullScreen } from './FullScreen';
121
121
  export type { IFullScreenProps } from './FullScreen';
122
122
  export * from './LmImgList';
123
+ export { default as LmImgList } from './LmImgList';
124
+ export { default as CropImg } from './CropImg';
125
+ export type { CropImgProps } from './CropImg';
package/es/index.js CHANGED
@@ -79,4 +79,6 @@ export { default as Divider } from './Divider';
79
79
  export { default as Skeleton } from './Skeleton';
80
80
  export { default as Descriptions } from './Descriptions';
81
81
  export { default as FullScreen } from './FullScreen';
82
- export * from './LmImgList';
82
+ export * from './LmImgList';
83
+ export { default as LmImgList } from './LmImgList';
84
+ export { default as CropImg } from './CropImg';
@@ -1699,6 +1699,23 @@ p {
1699
1699
  .lm-radio-group.lm-radio-group-column .lm-radio:last-child {
1700
1700
  margin-bottom: 0;
1701
1701
  }
1702
+ .lm_cutimg_container .lm_cutimg_crop {
1703
+ position: relative;
1704
+ height: 40vh;
1705
+ }
1706
+ .lm_cutimg_container .img_crop_control {
1707
+ display: flex;
1708
+ gap: var(--gap);
1709
+ align-items: center;
1710
+ width: 60%;
1711
+ margin: auto;
1712
+ }
1713
+ .lm_cutimg_container .img_crop_control .ant-slider {
1714
+ flex: 1;
1715
+ }
1716
+ .lm_cutimg_container .img_crop_control .anticon {
1717
+ font-size: 16px;
1718
+ }
1702
1719
  .lm_custom-table-option.lm_drawer .ant-drawer-body {
1703
1720
  padding: 0 0 24px 0;
1704
1721
  }
@@ -9873,53 +9890,53 @@ p {
9873
9890
  visibility: hidden;
9874
9891
  transform: translateY(-36px);
9875
9892
  }
9876
- .ant-dropdown .filter_dropdown {
9893
+ .filter_dropdown {
9877
9894
  display: flex;
9878
9895
  flex-flow: column;
9879
9896
  box-shadow: 0 2px 6px var(--box-shadow-color);
9880
9897
  background-color: #fff;
9881
9898
  }
9882
- .ant-dropdown .filter_dropdown .filter_header {
9899
+ .filter_dropdown .filter_header {
9883
9900
  min-height: 40px;
9884
9901
  border-bottom: 1px solid #eee;
9885
9902
  padding: 8px;
9886
9903
  }
9887
- .ant-dropdown .filter_dropdown .filter_header .filter_header_operate {
9904
+ .filter_dropdown .filter_header .filter_header_operate {
9888
9905
  display: flex;
9889
9906
  align-items: center;
9890
9907
  justify-content: space-between;
9891
9908
  }
9892
- .ant-dropdown .filter_dropdown .filter_header .filter_header_operate .filter_header_operate_checked {
9909
+ .filter_dropdown .filter_header .filter_header_operate .filter_header_operate_checked {
9893
9910
  display: inline-flex;
9894
9911
  align-items: center;
9895
9912
  }
9896
- .ant-dropdown .filter_dropdown .filter_header .filter_header_operate .filter_reset {
9913
+ .filter_dropdown .filter_header .filter_header_operate .filter_reset {
9897
9914
  font-size: 12px;
9898
9915
  color: var(--primary-color);
9899
9916
  cursor: pointer;
9900
9917
  }
9901
- .ant-dropdown .filter_dropdown .filter_header .filter_header_operate .filter_tip {
9918
+ .filter_dropdown .filter_header .filter_header_operate .filter_tip {
9902
9919
  font-size: 12px;
9903
9920
  color: var(--text-color);
9904
9921
  }
9905
- .ant-dropdown .filter_dropdown .filter_header .ant-input-group {
9922
+ .filter_dropdown .filter_header .ant-input-group {
9906
9923
  line-height: 1;
9907
9924
  }
9908
- .ant-dropdown .filter_dropdown .filter_header input {
9925
+ .filter_dropdown .filter_header input {
9909
9926
  font-size: 12px;
9910
9927
  }
9911
- .ant-dropdown .filter_dropdown .filter_header .ant-input-search + .filter_header_operate {
9928
+ .filter_dropdown .filter_header .ant-input-search + .filter_header_operate {
9912
9929
  margin-top: 8px;
9913
9930
  }
9914
- .ant-dropdown .filter_dropdown .filter_body {
9931
+ .filter_dropdown .filter_body {
9915
9932
  width: 100%;
9916
9933
  }
9917
- .ant-dropdown .filter_dropdown .filter_body .virtual_list {
9934
+ .filter_dropdown .filter_body .virtual_list {
9918
9935
  min-width: 168px;
9919
9936
  max-height: 224px;
9920
9937
  overflow: auto;
9921
9938
  }
9922
- .ant-dropdown .filter_dropdown .filter_body .filter_item {
9939
+ .filter_dropdown .filter_body .filter_item {
9923
9940
  display: flex;
9924
9941
  align-items: center;
9925
9942
  justify-content: space-between;
@@ -9932,39 +9949,39 @@ p {
9932
9949
  cursor: pointer;
9933
9950
  gap: 8px;
9934
9951
  }
9935
- .ant-dropdown .filter_dropdown .filter_body .filter_item.last_item {
9952
+ .filter_dropdown .filter_body .filter_item.last_item {
9936
9953
  border-top: 1px solid var(--line-color);
9937
9954
  }
9938
- .ant-dropdown .filter_dropdown .filter_body .filter_item .filter_item_content {
9955
+ .filter_dropdown .filter_body .filter_item .filter_item_content {
9939
9956
  flex: auto;
9940
9957
  }
9941
- .ant-dropdown .filter_dropdown .filter_body .filter_item .filter_item_operate {
9958
+ .filter_dropdown .filter_body .filter_item .filter_item_operate {
9942
9959
  display: inline-flex;
9943
9960
  align-items: center;
9944
9961
  gap: 4px;
9945
9962
  }
9946
- .ant-dropdown .filter_dropdown .filter_body .filter_item .filter_item_operate .icon_hover {
9963
+ .filter_dropdown .filter_body .filter_item .filter_item_operate .icon_hover {
9947
9964
  font-size: 16px;
9948
9965
  transition: 0.3s;
9949
9966
  opacity: 0;
9950
9967
  }
9951
- .ant-dropdown .filter_dropdown .filter_body .filter_item .filter_item_operate .icon_hover:hover {
9968
+ .filter_dropdown .filter_body .filter_item .filter_item_operate .icon_hover:hover {
9952
9969
  color: var(--primary-color);
9953
9970
  }
9954
- .ant-dropdown .filter_dropdown .filter_body .filter_item[disabled] {
9971
+ .filter_dropdown .filter_body .filter_item[disabled] {
9955
9972
  display: none;
9956
9973
  }
9957
- .ant-dropdown .filter_dropdown .filter_body .filter_item.checked {
9974
+ .filter_dropdown .filter_body .filter_item.checked {
9958
9975
  color: var(--font-color);
9959
9976
  background-color: var(--primary-select-color);
9960
9977
  }
9961
- .ant-dropdown .filter_dropdown .filter_body .filter_item:hover {
9978
+ .filter_dropdown .filter_body .filter_item:hover {
9962
9979
  background-color: var(--background-color);
9963
9980
  }
9964
- .ant-dropdown .filter_dropdown .filter_body .filter_item:hover .filter_item_operate .icon_hover {
9981
+ .filter_dropdown .filter_body .filter_item:hover .filter_item_operate .icon_hover {
9965
9982
  opacity: 1;
9966
9983
  }
9967
- .ant-dropdown .filter_dropdown .filter_footer {
9984
+ .filter_dropdown .filter_footer {
9968
9985
  display: flex;
9969
9986
  align-items: center;
9970
9987
  justify-content: space-between;
@@ -9974,24 +9991,24 @@ p {
9974
9991
  border-top: 1px solid #eee;
9975
9992
  letter-spacing: 1px;
9976
9993
  }
9977
- .ant-dropdown .filter_dropdown .filter_footer button {
9994
+ .filter_dropdown .filter_footer button {
9978
9995
  font-size: 12px;
9979
9996
  padding: 0 8px;
9980
9997
  }
9981
- .ant-dropdown .filter_dropdown .filter_footer .footer_save {
9998
+ .filter_dropdown .filter_footer .footer_save {
9982
9999
  color: var(--primary-color);
9983
10000
  cursor: pointer;
9984
10001
  transition: 0.3s;
9985
10002
  }
9986
- .ant-dropdown .filter_dropdown .filter_footer .footer_clear {
10003
+ .filter_dropdown .filter_footer .footer_clear {
9987
10004
  color: var(--text-color);
9988
10005
  cursor: pointer;
9989
10006
  transition: 0.3s;
9990
10007
  }
9991
- .ant-dropdown .filter_dropdown .filter_footer .footer_clear:hover {
10008
+ .filter_dropdown .filter_footer .footer_clear:hover {
9992
10009
  color: var(--font-color);
9993
10010
  }
9994
- .ant-dropdown .filter_dropdown .filter_empty {
10011
+ .filter_dropdown .filter_empty {
9995
10012
  display: flex;
9996
10013
  flex-flow: column;
9997
10014
  align-items: center;
@@ -10003,19 +10020,19 @@ p {
10003
10020
  margin: auto;
10004
10021
  gap: 4px;
10005
10022
  }
10006
- .ant-dropdown .filter_dropdown .filter_empty .filter_empty_text {
10023
+ .filter_dropdown .filter_empty .filter_empty_text {
10007
10024
  display: inline-flex;
10008
10025
  align-items: center;
10009
10026
  justify-content: center;
10010
10027
  min-height: 20px;
10011
10028
  color: var(--font-color);
10012
10029
  }
10013
- .ant-dropdown .filter_dropdown .ant-checkbox-wrapper {
10030
+ .filter_dropdown .ant-checkbox-wrapper {
10014
10031
  flex: 1;
10015
10032
  font-size: 12px;
10016
10033
  align-items: center;
10017
10034
  }
10018
- .ant-dropdown .filter_dropdown .ant-checkbox-wrapper .ant-checkbox {
10035
+ .filter_dropdown .ant-checkbox-wrapper .ant-checkbox {
10019
10036
  top: initial;
10020
10037
  }
10021
10038
  .ant-drawer .ant-drawer-header .ant-drawer-title {
@@ -10180,9 +10197,52 @@ p {
10180
10197
  .lm_filter_dropdown_picker {
10181
10198
  padding: 0 !important;
10182
10199
  }
10200
+ .lm_filter_dropdown_picker .filter_picker_box {
10201
+ display: flex;
10202
+ }
10203
+ .lm_filter_dropdown_picker .filter_picker_box .filter_picker_aside {
10204
+ font-size: 12px;
10205
+ border-right: 1px solid var(--background-color-hover);
10206
+ padding: 6px 0;
10207
+ }
10208
+ .lm_filter_dropdown_picker .filter_picker_box .filter_picker_aside .filter_picker_aside_item {
10209
+ display: flex;
10210
+ align-items: center;
10211
+ height: 32px;
10212
+ padding: 0 8px;
10213
+ transition: 0.3s;
10214
+ cursor: pointer;
10215
+ }
10216
+ .lm_filter_dropdown_picker .filter_picker_box .filter_picker_aside .filter_picker_aside_item:hover,
10217
+ .lm_filter_dropdown_picker .filter_picker_box .filter_picker_aside .filter_picker_aside_item.active {
10218
+ background-color: var(--primary-select-color);
10219
+ }
10220
+ .lm_filter_dropdown_picker .filter_picker_box .filter_picker_main .filter_picker_header {
10221
+ display: flex;
10222
+ align-items: center;
10223
+ justify-content: space-between;
10224
+ min-height: 40px;
10225
+ line-height: 1;
10226
+ padding: 0 16px;
10227
+ border-bottom: 1px solid var(--background-color-hover);
10228
+ }
10229
+ .lm_filter_dropdown_picker .filter_picker_box .filter_picker_main .filter_picker_header .ant-radio-button-wrapper {
10230
+ font-size: 12px;
10231
+ color: var(--font2-color);
10232
+ }
10233
+ .lm_filter_dropdown_picker .filter_picker_box .filter_picker_main .filter_picker_header .ant-radio-button-wrapper:hover,
10234
+ .lm_filter_dropdown_picker .filter_picker_box .filter_picker_main .filter_picker_header .ant-radio-button-wrapper.ant-radio-button-wrapper-checked {
10235
+ color: var(--primary-color);
10236
+ }
10183
10237
  .lm_filter_dropdown_picker .ant-picker-range-arrow {
10184
10238
  display: none;
10185
10239
  }
10240
+ .ant-select-dropdown.ant-cascader-dropdown {
10241
+ padding: 0;
10242
+ }
10243
+ .ant-select-dropdown.ant-cascader-dropdown .ant-cascader-menu-item {
10244
+ padding: 5px 8px;
10245
+ }
10186
10246
  .lm_imglist_container {
10187
10247
  position: relative;
10188
10248
  display: grid;
@@ -2,8 +2,6 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
@@ -13,7 +11,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
13
11
 
14
12
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
13
 
16
- var _react = _interopRequireWildcard(require("react"));
14
+ var _react = _interopRequireDefault(require("react"));
17
15
 
18
16
  var _linkmoreDesign = require("linkmore-design");
19
17
 
@@ -24,7 +24,6 @@ var CardTablePager = /*#__PURE__*/_react.default.memo(function (_ref) {
24
24
  return /*#__PURE__*/_react.default.createElement("div", null);
25
25
  }
26
26
 
27
- ;
28
27
  return typeof left === 'function' ? left(table) : left;
29
28
  }; // 底部工具栏右侧插槽
30
29
 
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ export interface CropImgProps {
3
+ visible?: boolean;
4
+ file?: any;
5
+ minZoom?: number;
6
+ zoomSpeed?: number;
7
+ aspect?: number;
8
+ cropSize: any;
9
+ }
10
+ declare const CropImg: React.ForwardRefExoticComponent<React.RefAttributes<unknown>>;
11
+ export default CropImg;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ var _react = _interopRequireWildcard(require("react"));
13
+
14
+ var _Root = _interopRequireDefault(require("./wrapper/Root"));
15
+
16
+ var CropImg = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
17
+ var defaultRef = (0, _react.useRef)(null);
18
+ var defaultProps = Object.assign({
19
+ visible: null,
20
+ file: null,
21
+ minZoom: 0.1,
22
+ zoomSpeed: 0.2,
23
+ aspect: 4 / 3,
24
+ cropSize: null
25
+ }, props);
26
+ return /*#__PURE__*/_react.default.createElement(_Root.default, Object.assign({
27
+ ref: ref || defaultRef
28
+ }, defaultProps));
29
+ });
30
+ var _default = CropImg;
31
+ exports.default = _default;
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ declare const _default: React.MemoExoticComponent<({ instance }: {
3
+ instance: any;
4
+ }) => JSX.Element>;
5
+ export default _default;
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _linkmoreDesign = require("linkmore-design");
13
+
14
+ var __rest = void 0 && (void 0).__rest || function (s, e) {
15
+ var t = {};
16
+
17
+ for (var p in s) {
18
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
19
+ }
20
+
21
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
22
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
23
+ }
24
+ return t;
25
+ };
26
+
27
+ var ResetSlider = function ResetSlider(_a) {
28
+ var value = _a.value,
29
+ _onChange = _a.onChange,
30
+ leftIcon = _a.leftIcon,
31
+ rightIcon = _a.rightIcon,
32
+ props = __rest(_a, ["value", "onChange", "leftIcon", "rightIcon"]); // 减
33
+
34
+
35
+ var decrement = function decrement() {
36
+ if (!(value > props.min)) return;
37
+ var nValue = Math.round(value * 100 - props.step * 100) / 100;
38
+ _onChange === null || _onChange === void 0 ? void 0 : _onChange(nValue);
39
+ }; // 增
40
+
41
+
42
+ var increment = function increment() {
43
+ if (!(value < props.max)) return;
44
+ var nValue = Math.round(value * 100 + props.step * 100) / 100;
45
+ _onChange === null || _onChange === void 0 ? void 0 : _onChange(nValue);
46
+ };
47
+
48
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
49
+ type: leftIcon,
50
+ onClick: decrement
51
+ }), /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Slider, Object.assign({}, props, {
52
+ value: value,
53
+ onChange: function onChange(val) {
54
+ return _onChange(val);
55
+ }
56
+ })), /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
57
+ type: rightIcon,
58
+ onClick: increment
59
+ }));
60
+ }; // 图片调整
61
+
62
+
63
+ var Operate = function Operate(_ref) {
64
+ var instance = _ref.instance;
65
+ var state = instance.state,
66
+ setTransform = instance.setTransform;
67
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
68
+ className: "img_crop_control"
69
+ }, /*#__PURE__*/_react.default.createElement(ResetSlider, {
70
+ value: state.zoom,
71
+ onChange: function onChange(zoom) {
72
+ return setTransform({
73
+ zoom: zoom
74
+ });
75
+ },
76
+ defaultValue: 1,
77
+ leftIcon: "lmweb-minus",
78
+ rightIcon: "lmweb-plus",
79
+ step: 0.1,
80
+ min: 0.1,
81
+ max: 3
82
+ })), /*#__PURE__*/_react.default.createElement("div", {
83
+ className: "img_crop_control"
84
+ }, /*#__PURE__*/_react.default.createElement(ResetSlider, {
85
+ value: state.rotation,
86
+ onChange: function onChange(rotation) {
87
+ return setTransform({
88
+ rotation: rotation
89
+ });
90
+ },
91
+ defaultValue: 0,
92
+ leftIcon: "lmweb-rotate-left",
93
+ rightIcon: "lmweb-rotate-right",
94
+ step: 1,
95
+ min: -180,
96
+ max: 180
97
+ })));
98
+ };
99
+
100
+ var _default = /*#__PURE__*/_react.default.memo(Operate);
101
+
102
+ exports.default = _default;
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ declare const _default: React.MemoExoticComponent<({ instance }: {
3
+ instance: any;
4
+ }) => JSX.Element>;
5
+ export default _default;
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ var _react = _interopRequireWildcard(require("react"));
13
+
14
+ var _reactEasyCrop = _interopRequireDefault(require("react-easy-crop"));
15
+
16
+ var Index = function Index(_ref) {
17
+ var instance = _ref.instance;
18
+ var state = instance.state,
19
+ imgURL = instance.imgURL,
20
+ setTransform = instance.setTransform,
21
+ minZoom = instance.minZoom,
22
+ zoomSpeed = instance.zoomSpeed,
23
+ aspect = instance.aspect,
24
+ cropSize = instance.cropSize;
25
+ var onCropComplete = (0, _react.useCallback)(function (croppedArea, croppedAreaPixels) {
26
+ // console.log('croppedArea:', croppedArea, 'croppedAreaPixels:', croppedAreaPixels)
27
+ setTransform({
28
+ croppedAreaPixels: croppedAreaPixels
29
+ });
30
+ }, [setTransform]);
31
+ var cropConfig = {
32
+ minZoom: minZoom,
33
+ zoomSpeed: zoomSpeed,
34
+ aspect: aspect,
35
+ cropSize: cropSize
36
+ };
37
+ return /*#__PURE__*/_react.default.createElement("div", {
38
+ className: "lm_cutimg_crop"
39
+ }, /*#__PURE__*/_react.default.createElement(_reactEasyCrop.default, Object.assign({}, cropConfig, {
40
+ image: imgURL,
41
+ crop: state.crop,
42
+ zoom: state.zoom,
43
+ rotation: state.rotation,
44
+ onCropChange: function onCropChange(crop) {
45
+ return setTransform({
46
+ crop: crop
47
+ });
48
+ },
49
+ onCropComplete: onCropComplete,
50
+ onZoomChange: function onZoomChange(zoom) {
51
+ return setTransform({
52
+ zoom: zoom
53
+ });
54
+ }
55
+ })));
56
+ };
57
+
58
+ var _default = /*#__PURE__*/_react.default.memo(Index);
59
+
60
+ exports.default = _default;
@@ -0,0 +1,14 @@
1
+ declare const useCoreOptions: ({ state, dispatch, props }: {
2
+ state: any;
3
+ dispatch: any;
4
+ props: any;
5
+ }) => {
6
+ CoreMethds: {
7
+ setTransform: (obj: any) => void;
8
+ getCropImageAsync: () => Promise<any>;
9
+ };
10
+ RefMethods: {
11
+ imgURL: string;
12
+ };
13
+ };
14
+ export default useCoreOptions;
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = require("react");
9
+
10
+ var _utils = require("../utils");
11
+
12
+ // 仅支持单个文件(多文件待扩展)
13
+ var useCoreOptions = function useCoreOptions(_ref) {
14
+ var state = _ref.state,
15
+ dispatch = _ref.dispatch,
16
+ props = _ref.props;
17
+ var file = props.file; // 本地文件URL
18
+
19
+ var imgURL = (0, _react.useMemo)(function () {
20
+ return file && window.URL.createObjectURL(file);
21
+ }, [file]); // 设置transform参数
22
+
23
+ var setTransform = (0, _react.useCallback)(function (obj) {
24
+ dispatch({
25
+ type: 'changeResult',
26
+ result: obj
27
+ });
28
+ }, [dispatch]); // 获取裁剪后的图片
29
+
30
+ var getCropImageAsync = (0, _react.useCallback)(function () {
31
+ try {
32
+ return (0, _utils.getCroppedImg)(imgURL, state.croppedAreaPixels, state.rotation);
33
+ } catch (e) {
34
+ console.error('getCropImageAsync图片获取失败!', e);
35
+ return null;
36
+ }
37
+ }, [imgURL, state.croppedAreaPixels, state.rotation]);
38
+ (0, _react.useEffect)(function () {
39
+ dispatch({
40
+ type: 'changeInit',
41
+ init: {
42
+ visible: !!file
43
+ }
44
+ });
45
+ }, [file]);
46
+ var CoreMethds = {
47
+ setTransform: setTransform,
48
+ getCropImageAsync: getCropImageAsync
49
+ };
50
+ var RefMethods = {
51
+ imgURL: imgURL
52
+ };
53
+ return {
54
+ CoreMethds: CoreMethds,
55
+ RefMethods: RefMethods
56
+ };
57
+ };
58
+
59
+ var _default = useCoreOptions;
60
+ exports.default = _default;
@@ -0,0 +1,4 @@
1
+ import LmCropImg from './LmCropImg';
2
+ export * from './LmCropImg';
3
+ export { LmCropImg };
4
+ export default LmCropImg;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ var _exportNames = {
9
+ LmCropImg: true
10
+ };
11
+ Object.defineProperty(exports, "LmCropImg", {
12
+ enumerable: true,
13
+ get: function get() {
14
+ return _LmCropImg.default;
15
+ }
16
+ });
17
+ exports.default = void 0;
18
+
19
+ var _LmCropImg = _interopRequireWildcard(require("./LmCropImg"));
20
+
21
+ Object.keys(_LmCropImg).forEach(function (key) {
22
+ if (key === "default" || key === "__esModule") return;
23
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
24
+ if (key in exports && exports[key] === _LmCropImg[key]) return;
25
+ Object.defineProperty(exports, key, {
26
+ enumerable: true,
27
+ get: function get() {
28
+ return _LmCropImg[key];
29
+ }
30
+ });
31
+ });
32
+ var _default = _LmCropImg.default;
33
+ exports.default = _default;
@@ -0,0 +1,17 @@
1
+ .lm_cutimg_container .lm_cutimg_crop {
2
+ position: relative;
3
+ height: 40vh;
4
+ }
5
+ .lm_cutimg_container .img_crop_control {
6
+ display: flex;
7
+ gap: var(--gap);
8
+ align-items: center;
9
+ width: 60%;
10
+ margin: auto;
11
+ }
12
+ .lm_cutimg_container .img_crop_control .ant-slider {
13
+ flex: 1;
14
+ }
15
+ .lm_cutimg_container .img_crop_control .anticon {
16
+ font-size: 16px;
17
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+
3
+ require("./index.css");