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.
- package/dist/CropImg/LmCropImg.d.ts +11 -0
- package/dist/CropImg/body/Operate.d.ts +5 -0
- package/dist/CropImg/body/index.d.ts +5 -0
- package/dist/CropImg/demos/basic.d.ts +2 -0
- package/dist/CropImg/fns/index.d.ts +14 -0
- package/dist/CropImg/index.d.ts +4 -0
- package/dist/CropImg/style/index.d.ts +1 -0
- package/dist/CropImg/style/variables.d.ts +1 -0
- package/dist/CropImg/utils.d.ts +18 -0
- package/dist/CropImg/wrapper/Container.d.ts +5 -0
- package/dist/CropImg/wrapper/Root.d.ts +3 -0
- package/dist/CropImg/wrapper/Wrapper.d.ts +5 -0
- package/dist/CropImg/wrapper/reducer.d.ts +13 -0
- package/dist/ImageViewer/wrapeer/Container.d.ts +4 -3
- package/dist/ImageViewer/wrapeer/Wrapper.d.ts +4 -3
- package/dist/LmUpload/components/Crop.d.ts +5 -0
- package/dist/LmUpload/demos/crop.d.ts +2 -0
- package/dist/LmUpload/demos/custom.d.ts +2 -0
- package/dist/LmUpload/fns/index.d.ts +2 -0
- package/dist/LmUpload/wrapper/reducer.d.ts +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.umd.js +2529 -27
- package/dist/index.umd.min.js +46 -18
- package/dist/variables.css +90 -30
- package/es/CardTable/pager/TablePagination.js +1 -3
- package/es/CardTable/pager/index.js +0 -1
- package/es/CropImg/LmCropImg.d.ts +11 -0
- package/es/CropImg/LmCropImg.js +17 -0
- package/es/CropImg/body/Operate.d.ts +5 -0
- package/es/CropImg/body/Operate.js +90 -0
- package/es/CropImg/body/index.d.ts +5 -0
- package/es/CropImg/body/index.js +46 -0
- package/es/CropImg/fns/index.d.ts +14 -0
- package/es/CropImg/fns/index.js +50 -0
- package/es/CropImg/index.d.ts +4 -0
- package/es/CropImg/index.js +4 -0
- package/es/CropImg/style/index.css +17 -0
- package/es/CropImg/style/index.js +3 -0
- package/es/CropImg/style/variables.css +17 -0
- package/es/CropImg/style/variables.js +3 -0
- package/es/CropImg/utils.js +161 -0
- package/es/CropImg/wrapper/Container.d.ts +5 -0
- package/es/CropImg/wrapper/Container.js +107 -0
- package/es/CropImg/wrapper/Root.d.ts +3 -0
- package/es/CropImg/wrapper/Root.js +44 -0
- package/es/CropImg/wrapper/Wrapper.d.ts +5 -0
- package/es/CropImg/wrapper/Wrapper.js +11 -0
- package/es/CropImg/wrapper/reducer.d.ts +13 -0
- package/es/CropImg/wrapper/reducer.js +33 -0
- package/es/ImageViewer/wrapeer/Container.d.ts +4 -3
- package/es/ImageViewer/wrapeer/Container.js +1 -1
- package/es/ImageViewer/wrapeer/Wrapper.d.ts +4 -3
- package/es/ImageViewer/wrapeer/Wrapper.js +1 -1
- package/es/LmFilter/components/CheckboxFilter.js +7 -4
- package/es/LmFilter/filterFns/index.js +15 -3
- package/es/LmFilter/style/index.css +73 -30
- package/es/LmFilter/style/variables.css +73 -30
- package/es/LmTable/Table.js +3 -2
- package/es/LmUpload/LmUpload.js +1 -0
- package/es/LmUpload/components/Crop.d.ts +5 -0
- package/es/LmUpload/components/Crop.js +23 -0
- package/es/LmUpload/fns/index.d.ts +2 -0
- package/es/LmUpload/fns/index.js +90 -14
- package/es/LmUpload/wrapper/UploadWrapper.js +3 -0
- package/es/LmUpload/wrapper/reducer.d.ts +1 -0
- package/es/LmUpload/wrapper/reducer.js +9 -2
- package/es/index.d.ts +3 -0
- package/es/index.js +3 -1
- package/es/styles/variables.css +90 -30
- package/lib/CardTable/pager/TablePagination.js +1 -3
- package/lib/CardTable/pager/index.js +0 -1
- package/lib/CropImg/LmCropImg.d.ts +11 -0
- package/lib/CropImg/LmCropImg.js +31 -0
- package/lib/CropImg/body/Operate.d.ts +5 -0
- package/lib/CropImg/body/Operate.js +102 -0
- package/lib/CropImg/body/index.d.ts +5 -0
- package/lib/CropImg/body/index.js +60 -0
- package/lib/CropImg/fns/index.d.ts +14 -0
- package/lib/CropImg/fns/index.js +60 -0
- package/lib/CropImg/index.d.ts +4 -0
- package/lib/CropImg/index.js +33 -0
- package/lib/CropImg/style/index.css +17 -0
- package/lib/CropImg/style/index.js +3 -0
- package/lib/CropImg/style/variables.css +17 -0
- package/lib/CropImg/style/variables.js +3 -0
- package/lib/CropImg/utils.js +161 -0
- package/lib/CropImg/wrapper/Container.d.ts +5 -0
- package/lib/CropImg/wrapper/Container.js +124 -0
- package/lib/CropImg/wrapper/Root.d.ts +3 -0
- package/lib/CropImg/wrapper/Root.js +61 -0
- package/lib/CropImg/wrapper/Wrapper.d.ts +5 -0
- package/lib/CropImg/wrapper/Wrapper.js +23 -0
- package/lib/CropImg/wrapper/reducer.d.ts +13 -0
- package/lib/CropImg/wrapper/reducer.js +45 -0
- package/lib/ImageViewer/wrapeer/Container.d.ts +4 -3
- package/lib/ImageViewer/wrapeer/Container.js +2 -1
- package/lib/ImageViewer/wrapeer/Wrapper.d.ts +4 -3
- package/lib/ImageViewer/wrapeer/Wrapper.js +2 -1
- package/lib/LmFilter/components/CheckboxFilter.js +7 -4
- package/lib/LmFilter/filterFns/index.js +15 -3
- package/lib/LmFilter/style/index.css +73 -30
- package/lib/LmFilter/style/variables.css +73 -30
- package/lib/LmTable/Table.js +3 -2
- package/lib/LmUpload/LmUpload.js +1 -0
- package/lib/LmUpload/components/Crop.d.ts +5 -0
- package/lib/LmUpload/components/Crop.js +35 -0
- package/lib/LmUpload/fns/index.d.ts +2 -0
- package/lib/LmUpload/fns/index.js +90 -14
- package/lib/LmUpload/wrapper/UploadWrapper.js +4 -0
- package/lib/LmUpload/wrapper/reducer.d.ts +1 -0
- package/lib/LmUpload/wrapper/reducer.js +9 -2
- package/lib/index.d.ts +3 -0
- package/lib/index.js +21 -3
- package/lib/styles/variables.css +90 -30
- package/package.json +3 -1
- package/dist/LmUpload/components/card.d.ts +0 -2
- package/es/LmUpload/components/card.d.ts +0 -2
- package/es/LmUpload/components/card.js +0 -9
- package/lib/LmUpload/components/card.d.ts +0 -2
- package/lib/LmUpload/components/card.js +0 -19
|
@@ -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,161 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.dataURLtoBlob = exports.createImage = exports.blobToFile = void 0;
|
|
9
|
+
exports.getCroppedImg = getCroppedImg;
|
|
10
|
+
exports.getRadianAngle = getRadianAngle;
|
|
11
|
+
exports.rotateSize = rotateSize;
|
|
12
|
+
|
|
13
|
+
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
|
|
14
|
+
|
|
15
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
16
|
+
|
|
17
|
+
// dataURL转Blob
|
|
18
|
+
var dataURLtoBlob = function dataURLtoBlob(base64Url) {
|
|
19
|
+
var bytes = window.atob(base64Url.split(',')[1]);
|
|
20
|
+
var array = [];
|
|
21
|
+
|
|
22
|
+
for (var i = 0; i < bytes.length; i += 1) {
|
|
23
|
+
array.push(bytes.charCodeAt(i));
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return new Blob([new Uint8Array(array)], {
|
|
27
|
+
type: 'image/png'
|
|
28
|
+
});
|
|
29
|
+
}; // 将blob转换为file
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
exports.dataURLtoBlob = dataURLtoBlob;
|
|
33
|
+
|
|
34
|
+
var blobToFile = function blobToFile(theBlob, fileName) {
|
|
35
|
+
theBlob.lastModifiedDate = new Date();
|
|
36
|
+
theBlob.name = fileName;
|
|
37
|
+
return theBlob;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
exports.blobToFile = blobToFile;
|
|
41
|
+
|
|
42
|
+
var createImage = function createImage(url) {
|
|
43
|
+
return new Promise(function (resolve, reject) {
|
|
44
|
+
var image = new Image();
|
|
45
|
+
image.addEventListener('load', function () {
|
|
46
|
+
return resolve(image);
|
|
47
|
+
});
|
|
48
|
+
image.addEventListener('error', function (error) {
|
|
49
|
+
return reject(error);
|
|
50
|
+
});
|
|
51
|
+
image.setAttribute('crossOrigin', 'anonymous'); // needed to avoid cross-origin issues on CodeSandbox
|
|
52
|
+
|
|
53
|
+
image.src = url;
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
exports.createImage = createImage;
|
|
58
|
+
|
|
59
|
+
function getRadianAngle(degreeValue) {
|
|
60
|
+
return degreeValue * Math.PI / 180;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Returns the new bounding area of a rotated rectangle.
|
|
64
|
+
*/
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
function rotateSize(width, height, rotation) {
|
|
68
|
+
var rotRad = getRadianAngle(rotation);
|
|
69
|
+
return {
|
|
70
|
+
width: Math.abs(Math.cos(rotRad) * width) + Math.abs(Math.sin(rotRad) * height),
|
|
71
|
+
height: Math.abs(Math.sin(rotRad) * width) + Math.abs(Math.cos(rotRad) * height)
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* This function was adapted from the one in the ReadMe of https://github.com/DominicTobias/react-image-crop
|
|
76
|
+
*/
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
function getCroppedImg(_x, _x2) {
|
|
80
|
+
return _getCroppedImg.apply(this, arguments);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
function _getCroppedImg() {
|
|
84
|
+
_getCroppedImg = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(imageSrc, pixelCrop) {
|
|
85
|
+
var rotation,
|
|
86
|
+
flip,
|
|
87
|
+
image,
|
|
88
|
+
canvas,
|
|
89
|
+
ctx,
|
|
90
|
+
rotRad,
|
|
91
|
+
_rotateSize,
|
|
92
|
+
bBoxWidth,
|
|
93
|
+
bBoxHeight,
|
|
94
|
+
data,
|
|
95
|
+
_args = arguments;
|
|
96
|
+
|
|
97
|
+
return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
|
|
98
|
+
while (1) {
|
|
99
|
+
switch (_context.prev = _context.next) {
|
|
100
|
+
case 0:
|
|
101
|
+
rotation = _args.length > 2 && _args[2] !== undefined ? _args[2] : 0;
|
|
102
|
+
flip = _args.length > 3 && _args[3] !== undefined ? _args[3] : {
|
|
103
|
+
horizontal: false,
|
|
104
|
+
vertical: false
|
|
105
|
+
};
|
|
106
|
+
_context.next = 4;
|
|
107
|
+
return createImage(imageSrc);
|
|
108
|
+
|
|
109
|
+
case 4:
|
|
110
|
+
image = _context.sent;
|
|
111
|
+
canvas = document.createElement('canvas');
|
|
112
|
+
ctx = canvas.getContext('2d');
|
|
113
|
+
|
|
114
|
+
if (ctx) {
|
|
115
|
+
_context.next = 9;
|
|
116
|
+
break;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
return _context.abrupt("return", null);
|
|
120
|
+
|
|
121
|
+
case 9:
|
|
122
|
+
rotRad = getRadianAngle(rotation); // calculate bounding box of the rotated image
|
|
123
|
+
|
|
124
|
+
_rotateSize = rotateSize(image.width, image.height, rotation), bBoxWidth = _rotateSize.width, bBoxHeight = _rotateSize.height; // set canvas size to match the bounding box
|
|
125
|
+
|
|
126
|
+
canvas.width = bBoxWidth;
|
|
127
|
+
canvas.height = bBoxHeight; // translate canvas context to a central location to allow rotating and flipping around the center
|
|
128
|
+
|
|
129
|
+
ctx.translate(bBoxWidth / 2, bBoxHeight / 2);
|
|
130
|
+
ctx.rotate(rotRad);
|
|
131
|
+
ctx.scale(flip.horizontal ? -1 : 1, flip.vertical ? -1 : 1);
|
|
132
|
+
ctx.translate(-image.width / 2, -image.height / 2); // draw rotated image
|
|
133
|
+
|
|
134
|
+
ctx.drawImage(image, 0, 0); // croppedAreaPixels values are bounding box relative
|
|
135
|
+
// extract the cropped image using these values
|
|
136
|
+
|
|
137
|
+
data = ctx.getImageData(pixelCrop.x, pixelCrop.y, pixelCrop.width, pixelCrop.height); // set canvas width to final desired crop size - this will clear existing context
|
|
138
|
+
|
|
139
|
+
canvas.width = pixelCrop.width;
|
|
140
|
+
canvas.height = pixelCrop.height; // paste generated rotate image at the top left corner
|
|
141
|
+
|
|
142
|
+
ctx.putImageData(data, 0, 0); // As Base64 string
|
|
143
|
+
// return canvas.toDataURL('image/jpeg');
|
|
144
|
+
// As a blob
|
|
145
|
+
|
|
146
|
+
return _context.abrupt("return", new Promise(function (resolve, reject) {
|
|
147
|
+
canvas.toBlob(function (file) {
|
|
148
|
+
// resolve(URL.createObjectURL(file))
|
|
149
|
+
resolve(file);
|
|
150
|
+
}, 'image/jpeg');
|
|
151
|
+
}));
|
|
152
|
+
|
|
153
|
+
case 23:
|
|
154
|
+
case "end":
|
|
155
|
+
return _context.stop();
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}, _callee);
|
|
159
|
+
}));
|
|
160
|
+
return _getCroppedImg.apply(this, arguments);
|
|
161
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.default = void 0;
|
|
11
|
+
|
|
12
|
+
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
|
|
13
|
+
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
+
|
|
16
|
+
var _linkmoreDesign = require("linkmore-design");
|
|
17
|
+
|
|
18
|
+
var _body = _interopRequireDefault(require("../body"));
|
|
19
|
+
|
|
20
|
+
var _Operate = _interopRequireDefault(require("../body/Operate"));
|
|
21
|
+
|
|
22
|
+
var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
|
|
23
|
+
function adopt(value) {
|
|
24
|
+
return value instanceof P ? value : new P(function (resolve) {
|
|
25
|
+
resolve(value);
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
30
|
+
function fulfilled(value) {
|
|
31
|
+
try {
|
|
32
|
+
step(generator.next(value));
|
|
33
|
+
} catch (e) {
|
|
34
|
+
reject(e);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function rejected(value) {
|
|
39
|
+
try {
|
|
40
|
+
step(generator["throw"](value));
|
|
41
|
+
} catch (e) {
|
|
42
|
+
reject(e);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function step(result) {
|
|
47
|
+
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
// import { dataURLtoBlob, blobToFile } from '../utils'
|
|
55
|
+
var LmBoxContainer = function LmBoxContainer(_ref) {
|
|
56
|
+
var instance = _ref.instance;
|
|
57
|
+
var visible = instance.visible,
|
|
58
|
+
onClose = instance.onClose,
|
|
59
|
+
state = instance.state,
|
|
60
|
+
dispatch = instance.dispatch,
|
|
61
|
+
getCropImageAsync = instance.getCropImageAsync,
|
|
62
|
+
file = instance.file;
|
|
63
|
+
var boxContainerRef = (0, _react.useRef)(null); // 关闭时初始化
|
|
64
|
+
|
|
65
|
+
var handleClose = function handleClose(blobFile) {
|
|
66
|
+
dispatch({
|
|
67
|
+
type: 'changeResult',
|
|
68
|
+
result: {
|
|
69
|
+
visible: false
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
onClose === null || onClose === void 0 ? void 0 : onClose(blobFile, file);
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
var handleOk = function handleOk() {
|
|
76
|
+
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
|
|
77
|
+
var croppedImage;
|
|
78
|
+
return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
|
|
79
|
+
while (1) {
|
|
80
|
+
switch (_context.prev = _context.next) {
|
|
81
|
+
case 0:
|
|
82
|
+
_context.next = 2;
|
|
83
|
+
return getCropImageAsync();
|
|
84
|
+
|
|
85
|
+
case 2:
|
|
86
|
+
croppedImage = _context.sent;
|
|
87
|
+
dispatch({
|
|
88
|
+
type: 'changeResult',
|
|
89
|
+
result: {
|
|
90
|
+
croppedImage: croppedImage
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
handleClose(croppedImage);
|
|
94
|
+
|
|
95
|
+
case 5:
|
|
96
|
+
case "end":
|
|
97
|
+
return _context.stop();
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}, _callee);
|
|
101
|
+
}));
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
var config = {
|
|
105
|
+
title: '编辑图片',
|
|
106
|
+
open: visible !== null && visible !== void 0 ? visible : state.visible,
|
|
107
|
+
onCancel: function onCancel() {
|
|
108
|
+
return handleClose(false);
|
|
109
|
+
},
|
|
110
|
+
onOk: handleOk
|
|
111
|
+
};
|
|
112
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Modal, Object.assign({}, config), /*#__PURE__*/_react.default.createElement("div", {
|
|
113
|
+
ref: boxContainerRef,
|
|
114
|
+
className: "lm_cutimg_container"
|
|
115
|
+
}, /*#__PURE__*/_react.default.createElement(_body.default, {
|
|
116
|
+
instance: instance
|
|
117
|
+
}), /*#__PURE__*/_react.default.createElement(_Operate.default, {
|
|
118
|
+
instance: instance
|
|
119
|
+
}))));
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
var _default = /*#__PURE__*/_react.default.memo(LmBoxContainer);
|
|
123
|
+
|
|
124
|
+
exports.default = _default;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.default = void 0;
|
|
11
|
+
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
+
|
|
16
|
+
var _reducer = _interopRequireWildcard(require("./reducer"));
|
|
17
|
+
|
|
18
|
+
var _fns = _interopRequireDefault(require("../fns"));
|
|
19
|
+
|
|
20
|
+
var _Wrapper = _interopRequireDefault(require("./Wrapper"));
|
|
21
|
+
|
|
22
|
+
var LmBox = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
23
|
+
var initialState = (0, _react.useMemo)(function () {
|
|
24
|
+
return (0, _reducer.initialState)();
|
|
25
|
+
}, []);
|
|
26
|
+
|
|
27
|
+
var _useReducer = (0, _react.useReducer)(_reducer.default, initialState),
|
|
28
|
+
_useReducer2 = (0, _slicedToArray2.default)(_useReducer, 2),
|
|
29
|
+
state = _useReducer2[0],
|
|
30
|
+
dispatch = _useReducer2[1]; // 获取核心Methods
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
var _useCoreOptions = (0, _fns.default)({
|
|
34
|
+
state: state,
|
|
35
|
+
dispatch: dispatch,
|
|
36
|
+
props: props
|
|
37
|
+
}),
|
|
38
|
+
CoreMethds = _useCoreOptions.CoreMethds,
|
|
39
|
+
RefMethods = _useCoreOptions.RefMethods; // 组件实例
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
var instance = (0, _react.useMemo)(function () {
|
|
43
|
+
return Object.assign(Object.assign(Object.assign(Object.assign({}, props), CoreMethds), RefMethods), {
|
|
44
|
+
state: state,
|
|
45
|
+
dispatch: dispatch
|
|
46
|
+
});
|
|
47
|
+
}, [props, RefMethods, state, dispatch]); // 向外暴露出的方法
|
|
48
|
+
|
|
49
|
+
(0, _react.useImperativeHandle)(ref, function () {
|
|
50
|
+
return Object.assign({
|
|
51
|
+
getState: function getState() {
|
|
52
|
+
return state;
|
|
53
|
+
}
|
|
54
|
+
}, RefMethods);
|
|
55
|
+
});
|
|
56
|
+
return /*#__PURE__*/_react.default.createElement(_Wrapper.default, {
|
|
57
|
+
instance: instance
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
var _default = LmBox;
|
|
61
|
+
exports.default = _default;
|
|
@@ -0,0 +1,23 @@
|
|
|
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 _Container = _interopRequireDefault(require("./Container"));
|
|
13
|
+
|
|
14
|
+
var Wrapper = function Wrapper(_ref) {
|
|
15
|
+
var instance = _ref.instance;
|
|
16
|
+
return /*#__PURE__*/_react.default.createElement(_Container.default, {
|
|
17
|
+
instance: instance
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
var _default = /*#__PURE__*/_react.default.memo(Wrapper);
|
|
22
|
+
|
|
23
|
+
exports.default = _default;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const reducer: (state: any, action: any) => any;
|
|
2
|
+
export declare const initialState: () => {
|
|
3
|
+
visible: boolean;
|
|
4
|
+
zoom: number;
|
|
5
|
+
rotation: number;
|
|
6
|
+
crop: {
|
|
7
|
+
x: number;
|
|
8
|
+
y: number;
|
|
9
|
+
};
|
|
10
|
+
croppedAreaPixels: any;
|
|
11
|
+
croppedImage: any;
|
|
12
|
+
};
|
|
13
|
+
export default reducer;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.reducer = exports.initialState = exports.default = void 0;
|
|
7
|
+
var defaultState = {
|
|
8
|
+
visible: false,
|
|
9
|
+
zoom: 1,
|
|
10
|
+
rotation: 0,
|
|
11
|
+
crop: {
|
|
12
|
+
x: 0,
|
|
13
|
+
y: 0
|
|
14
|
+
},
|
|
15
|
+
croppedAreaPixels: null,
|
|
16
|
+
croppedImage: null // 裁剪后的图片File
|
|
17
|
+
|
|
18
|
+
}; // 状态管理操作
|
|
19
|
+
|
|
20
|
+
var reducer = function reducer(state, action) {
|
|
21
|
+
var result = action.result,
|
|
22
|
+
init = action.init;
|
|
23
|
+
|
|
24
|
+
switch (action.type) {
|
|
25
|
+
case 'changeInit':
|
|
26
|
+
return Object.assign(Object.assign(Object.assign({}, state), defaultState), init);
|
|
27
|
+
|
|
28
|
+
case 'changeResult':
|
|
29
|
+
return Object.assign(Object.assign({}, state), result);
|
|
30
|
+
|
|
31
|
+
default:
|
|
32
|
+
throw new Error();
|
|
33
|
+
}
|
|
34
|
+
}; // 仅在初始化时触发一次
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
exports.reducer = reducer;
|
|
38
|
+
|
|
39
|
+
var initialState = function initialState() {
|
|
40
|
+
return Object.assign({}, defaultState);
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
exports.initialState = initialState;
|
|
44
|
+
var _default = reducer;
|
|
45
|
+
exports.default = _default;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import React from 'react';
|
|
2
|
+
declare const _default: React.MemoExoticComponent<({ instance }: {
|
|
2
3
|
instance: any;
|
|
3
|
-
}) => JSX.Element
|
|
4
|
-
export default
|
|
4
|
+
}) => JSX.Element>;
|
|
5
|
+
export default _default;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import React from 'react';
|
|
2
|
+
declare const _default: React.MemoExoticComponent<({ instance }: {
|
|
2
3
|
instance: any;
|
|
3
|
-
}) => JSX.Element
|
|
4
|
-
export default
|
|
4
|
+
}) => JSX.Element>;
|
|
5
|
+
export default _default;
|
|
@@ -104,7 +104,10 @@ var CheckboxFilter = function CheckboxFilter(_ref) {
|
|
|
104
104
|
return !options.some(function (v) {
|
|
105
105
|
return v.value === value;
|
|
106
106
|
});
|
|
107
|
-
}) : (0, _utils.uniqueFunc)([].concat((0, _toConsumableArray2.default)(checkedValues), (0, _toConsumableArray2.default)(options)
|
|
107
|
+
}) : (0, _utils.uniqueFunc)([].concat((0, _toConsumableArray2.default)(checkedValues), (0, _toConsumableArray2.default)(options.map(function (_ref3) {
|
|
108
|
+
var value = _ref3.value;
|
|
109
|
+
return value;
|
|
110
|
+
}))), 'value');
|
|
108
111
|
setCheckedValues(nValue);
|
|
109
112
|
}; // 取消 不执行查询操作 关闭下拉框
|
|
110
113
|
|
|
@@ -157,9 +160,9 @@ var CheckboxFilter = function CheckboxFilter(_ref) {
|
|
|
157
160
|
}, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.VirtualList, {
|
|
158
161
|
options: options,
|
|
159
162
|
className: "filter_list"
|
|
160
|
-
}, function (
|
|
161
|
-
var item =
|
|
162
|
-
resetProps = (0, _objectWithoutProperties2.default)(
|
|
163
|
+
}, function (_ref4) {
|
|
164
|
+
var item = _ref4.item,
|
|
165
|
+
resetProps = (0, _objectWithoutProperties2.default)(_ref4, _excluded);
|
|
163
166
|
return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, resetProps, {
|
|
164
167
|
className: (0, _classnames.default)('filter_item', {
|
|
165
168
|
checked: checkedValues.some(function (value) {
|
|
@@ -487,14 +487,26 @@ var useCoreOptions = function useCoreOptions(_ref) {
|
|
|
487
487
|
filterQuery: filterQuery,
|
|
488
488
|
type: 'basic'
|
|
489
489
|
};
|
|
490
|
-
}, [state, dataSource]);
|
|
490
|
+
}, [state, dataSource]);
|
|
491
|
+
/*
|
|
492
|
+
* 设置筛选的值 itemValue => String || Array => ['', '', ...]
|
|
493
|
+
* 后端仅接受数组包字符串形式, 不接受数值及布尔值
|
|
494
|
+
*/
|
|
491
495
|
|
|
492
496
|
var setFilterValue = (0, _react.useCallback)(function (itemValue, item) {
|
|
493
497
|
var field = item.field;
|
|
494
498
|
|
|
495
499
|
if (field) {
|
|
496
500
|
// 将结果转换为字符串
|
|
497
|
-
var
|
|
501
|
+
var isArray = Array.isArray(itemValue);
|
|
502
|
+
|
|
503
|
+
var transformString = function transformString(val) {
|
|
504
|
+
return isArray ? val.map(function (v) {
|
|
505
|
+
return String(v);
|
|
506
|
+
}) : String(val);
|
|
507
|
+
};
|
|
508
|
+
|
|
509
|
+
var stringValue = enableAutoString ? transformString(itemValue) : itemValue; // 基础查询数据(受控数据)
|
|
498
510
|
|
|
499
511
|
var basicFilter = Object.assign(Object.assign({}, state.basicFilter), (0, _defineProperty2.default)({}, field, stringValue)); // 外部查询数据结构
|
|
500
512
|
|
|
@@ -502,7 +514,7 @@ var useCoreOptions = function useCoreOptions(_ref) {
|
|
|
502
514
|
fieldName: field,
|
|
503
515
|
fieldType: item.valueType || 'string',
|
|
504
516
|
type: item.type,
|
|
505
|
-
value:
|
|
517
|
+
value: isArray ? stringValue : [stringValue],
|
|
506
518
|
operator: item.operator || 'equal'
|
|
507
519
|
})); // 数据清除时不返回结构体
|
|
508
520
|
|