@bensitu/image-editor 2.0.0 → 2.1.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.
- package/README.md +118 -16
- package/dist/cjs/index.cjs +1800 -330
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/esm/animation/animation-queue.js +16 -9
- package/dist/esm/animation/animation-queue.js.map +1 -1
- package/dist/esm/core/default-options.js +216 -9
- package/dist/esm/core/default-options.js.map +1 -1
- package/dist/esm/core/operation-guard.js +28 -0
- package/dist/esm/core/operation-guard.js.map +1 -1
- package/dist/esm/core/public-types.js.map +1 -1
- package/dist/esm/core/state-serializer.js +5 -4
- package/dist/esm/core/state-serializer.js.map +1 -1
- package/dist/esm/crop/crop-controller.js +4 -2
- package/dist/esm/crop/crop-controller.js.map +1 -1
- package/dist/esm/export/export-service.js +21 -10
- package/dist/esm/export/export-service.js.map +1 -1
- package/dist/esm/fabric/fabric-animation.js +56 -4
- package/dist/esm/fabric/fabric-animation.js.map +1 -1
- package/dist/esm/image/image-loader.js +9 -16
- package/dist/esm/image/image-loader.js.map +1 -1
- package/dist/esm/image/image-resampler.js +7 -2
- package/dist/esm/image/image-resampler.js.map +1 -1
- package/dist/esm/image/layout-manager.js +2 -20
- package/dist/esm/image/layout-manager.js.map +1 -1
- package/dist/esm/image/transform-controller.js.map +1 -1
- package/dist/esm/image-editor.js +383 -47
- package/dist/esm/image-editor.js.map +1 -1
- package/dist/esm/mask/mask-factory.js +53 -29
- package/dist/esm/mask/mask-factory.js.map +1 -1
- package/dist/esm/mask/mask-list.js +9 -3
- package/dist/esm/mask/mask-list.js.map +1 -1
- package/dist/esm/mosaic/mosaic-controller.js +670 -0
- package/dist/esm/mosaic/mosaic-controller.js.map +1 -0
- package/dist/esm/mosaic/mosaic-geometry.js +81 -0
- package/dist/esm/mosaic/mosaic-geometry.js.map +1 -0
- package/dist/esm/mosaic/mosaic-pixelate.js +71 -0
- package/dist/esm/mosaic/mosaic-pixelate.js.map +1 -0
- package/dist/esm/ui/dom-bindings.js +10 -3
- package/dist/esm/ui/dom-bindings.js.map +1 -1
- package/dist/esm/utils/number.js.map +1 -1
- package/dist/types/animation/animation-queue.d.ts.map +1 -1
- package/dist/types/core/default-options.d.ts +34 -6
- package/dist/types/core/default-options.d.ts.map +1 -1
- package/dist/types/core/errors.d.ts +1 -1
- package/dist/types/core/operation-guard.d.ts +2 -0
- package/dist/types/core/operation-guard.d.ts.map +1 -1
- package/dist/types/core/public-types.d.ts +123 -13
- package/dist/types/core/public-types.d.ts.map +1 -1
- package/dist/types/core/state-serializer.d.ts +3 -1
- package/dist/types/core/state-serializer.d.ts.map +1 -1
- package/dist/types/crop/crop-controller.d.ts.map +1 -1
- package/dist/types/export/export-service.d.ts.map +1 -1
- package/dist/types/fabric/fabric-animation.d.ts.map +1 -1
- package/dist/types/image/image-loader.d.ts +2 -4
- package/dist/types/image/image-loader.d.ts.map +1 -1
- package/dist/types/image/image-resampler.d.ts +1 -1
- package/dist/types/image/image-resampler.d.ts.map +1 -1
- package/dist/types/image/layout-manager.d.ts +5 -49
- package/dist/types/image/layout-manager.d.ts.map +1 -1
- package/dist/types/image/transform-controller.d.ts +1 -2
- package/dist/types/image/transform-controller.d.ts.map +1 -1
- package/dist/types/image-editor.d.ts +20 -9
- package/dist/types/image-editor.d.ts.map +1 -1
- package/dist/types/index.d.cts +1 -1
- package/dist/types/index.d.cts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/mask/mask-factory.d.ts +24 -21
- package/dist/types/mask/mask-factory.d.ts.map +1 -1
- package/dist/types/mask/mask-list.d.ts.map +1 -1
- package/dist/types/mosaic/mosaic-controller.d.ts +82 -0
- package/dist/types/mosaic/mosaic-controller.d.ts.map +1 -0
- package/dist/types/mosaic/mosaic-geometry.d.ts +29 -0
- package/dist/types/mosaic/mosaic-geometry.d.ts.map +1 -0
- package/dist/types/mosaic/mosaic-pixelate.d.ts +23 -0
- package/dist/types/mosaic/mosaic-pixelate.d.ts.map +1 -0
- package/dist/types/ui/dom-bindings.d.ts +3 -1
- package/dist/types/ui/dom-bindings.d.ts.map +1 -1
- package/dist/types/utils/number.d.ts +1 -2
- package/dist/types/utils/number.d.ts.map +1 -1
- package/dist/umd/image-editor.umd.js +1 -1
- package/dist/umd/image-editor.umd.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mosaic-controller.js","sourceRoot":"","sources":["../../../src/mosaic/mosaic-controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
const MATRIX_DETERMINANT_EPSILON = 1e-8;
|
|
2
|
+
const MATRIX_SCALE_EPSILON = 1e-8;
|
|
3
|
+
function toMatrix2D(matrix) {
|
|
4
|
+
if (matrix.length < 6)
|
|
5
|
+
return null;
|
|
6
|
+
const a = matrix[0];
|
|
7
|
+
const b = matrix[1];
|
|
8
|
+
const c = matrix[2];
|
|
9
|
+
const d = matrix[3];
|
|
10
|
+
const e = matrix[4];
|
|
11
|
+
const f = matrix[5];
|
|
12
|
+
if (!Number.isFinite(a) ||
|
|
13
|
+
!Number.isFinite(b) ||
|
|
14
|
+
!Number.isFinite(c) ||
|
|
15
|
+
!Number.isFinite(d) ||
|
|
16
|
+
!Number.isFinite(e) ||
|
|
17
|
+
!Number.isFinite(f)) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
return { a: a, b: b, c: c, d: d, e: e, f: f };
|
|
21
|
+
}
|
|
22
|
+
function invertMatrix(matrix) {
|
|
23
|
+
const determinant = matrix.a * matrix.d - matrix.b * matrix.c;
|
|
24
|
+
if (!Number.isFinite(determinant) || Math.abs(determinant) < MATRIX_DETERMINANT_EPSILON) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
return {
|
|
28
|
+
a: matrix.d / determinant,
|
|
29
|
+
b: -matrix.b / determinant,
|
|
30
|
+
c: -matrix.c / determinant,
|
|
31
|
+
d: matrix.a / determinant,
|
|
32
|
+
e: (matrix.c * matrix.f - matrix.d * matrix.e) / determinant,
|
|
33
|
+
f: (matrix.b * matrix.e - matrix.a * matrix.f) / determinant,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function transformPoint(point, matrix) {
|
|
37
|
+
return {
|
|
38
|
+
x: matrix.a * point.x + matrix.c * point.y + matrix.e,
|
|
39
|
+
y: matrix.b * point.x + matrix.d * point.y + matrix.f,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
function getSourceRadiusFromMatrix(matrix, canvasRadius) {
|
|
43
|
+
const scaleX = Math.hypot(matrix.a, matrix.b);
|
|
44
|
+
const scaleY = Math.hypot(matrix.c, matrix.d);
|
|
45
|
+
const minScale = Math.min(scaleX > MATRIX_SCALE_EPSILON ? scaleX : Number.POSITIVE_INFINITY, scaleY > MATRIX_SCALE_EPSILON ? scaleY : Number.POSITIVE_INFINITY);
|
|
46
|
+
if (!Number.isFinite(minScale) || minScale <= 0)
|
|
47
|
+
return canvasRadius;
|
|
48
|
+
return canvasRadius / minScale;
|
|
49
|
+
}
|
|
50
|
+
export function getMosaicImagePoint(fabric, image, canvasPoint, brushDiameterCanvasPx) {
|
|
51
|
+
void fabric;
|
|
52
|
+
const width = Number(image.width) || 0;
|
|
53
|
+
const height = Number(image.height) || 0;
|
|
54
|
+
const brushDiameter = Number(brushDiameterCanvasPx);
|
|
55
|
+
if (width <= 0 ||
|
|
56
|
+
height <= 0 ||
|
|
57
|
+
!Number.isFinite(canvasPoint.x) ||
|
|
58
|
+
!Number.isFinite(canvasPoint.y) ||
|
|
59
|
+
!Number.isFinite(brushDiameter) ||
|
|
60
|
+
brushDiameter <= 0) {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
const matrix = toMatrix2D(image.calcTransformMatrix());
|
|
64
|
+
if (!matrix)
|
|
65
|
+
return null;
|
|
66
|
+
const inverse = invertMatrix(matrix);
|
|
67
|
+
if (!inverse)
|
|
68
|
+
return null;
|
|
69
|
+
const localPoint = transformPoint(canvasPoint, inverse);
|
|
70
|
+
const sourceX = localPoint.x + width / 2;
|
|
71
|
+
const sourceY = localPoint.y + height / 2;
|
|
72
|
+
if (sourceX < 0 || sourceY < 0 || sourceX > width || sourceY > height) {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
return {
|
|
76
|
+
sourceX,
|
|
77
|
+
sourceY,
|
|
78
|
+
sourceRadius: getSourceRadiusFromMatrix(matrix, brushDiameter / 2),
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=mosaic-geometry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mosaic-geometry.js","sourceRoot":"","sources":["../../../src/mosaic/mosaic-geometry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
function normalizeBlockSize(value) {
|
|
2
|
+
return Number.isFinite(value) && value > 0 ? Math.max(1, Math.floor(value)) : 1;
|
|
3
|
+
}
|
|
4
|
+
function isInsideCircle(x, y, centerX, centerY, radiusSquared) {
|
|
5
|
+
const dx = x - centerX;
|
|
6
|
+
const dy = y - centerY;
|
|
7
|
+
return dx * dx + dy * dy <= radiusSquared;
|
|
8
|
+
}
|
|
9
|
+
function pixelOffset(width, x, y) {
|
|
10
|
+
return (y * width + x) * 4;
|
|
11
|
+
}
|
|
12
|
+
export function applyCircularMosaicToImageData(options) {
|
|
13
|
+
var _a, _b, _c, _d;
|
|
14
|
+
const { imageData } = options;
|
|
15
|
+
const { width, height, data } = imageData;
|
|
16
|
+
const centerX = Number(options.centerX);
|
|
17
|
+
const centerY = Number(options.centerY);
|
|
18
|
+
const radius = Number(options.radius);
|
|
19
|
+
if (!Number.isFinite(centerX) ||
|
|
20
|
+
!Number.isFinite(centerY) ||
|
|
21
|
+
!Number.isFinite(radius) ||
|
|
22
|
+
radius <= 0 ||
|
|
23
|
+
width <= 0 ||
|
|
24
|
+
height <= 0) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
const blockSize = normalizeBlockSize(options.blockSize);
|
|
28
|
+
const minX = Math.max(0, Math.floor(centerX - radius));
|
|
29
|
+
const maxX = Math.min(width - 1, Math.ceil(centerX + radius));
|
|
30
|
+
const minY = Math.max(0, Math.floor(centerY - radius));
|
|
31
|
+
const maxY = Math.min(height - 1, Math.ceil(centerY + radius));
|
|
32
|
+
if (minX > maxX || minY > maxY)
|
|
33
|
+
return false;
|
|
34
|
+
const radiusSquared = radius * radius;
|
|
35
|
+
let processed = false;
|
|
36
|
+
for (let blockY = minY; blockY <= maxY; blockY += blockSize) {
|
|
37
|
+
for (let blockX = minX; blockX <= maxX; blockX += blockSize) {
|
|
38
|
+
const blockMaxX = Math.min(maxX, blockX + blockSize - 1);
|
|
39
|
+
const blockMaxY = Math.min(maxY, blockY + blockSize - 1);
|
|
40
|
+
let sampleOffset = -1;
|
|
41
|
+
for (let y = blockY; y <= blockMaxY && sampleOffset < 0; y += 1) {
|
|
42
|
+
for (let x = blockX; x <= blockMaxX; x += 1) {
|
|
43
|
+
if (!isInsideCircle(x, y, centerX, centerY, radiusSquared))
|
|
44
|
+
continue;
|
|
45
|
+
sampleOffset = pixelOffset(width, x, y);
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
if (sampleOffset < 0)
|
|
50
|
+
continue;
|
|
51
|
+
const red = (_a = data[sampleOffset]) !== null && _a !== void 0 ? _a : 0;
|
|
52
|
+
const green = (_b = data[sampleOffset + 1]) !== null && _b !== void 0 ? _b : 0;
|
|
53
|
+
const blue = (_c = data[sampleOffset + 2]) !== null && _c !== void 0 ? _c : 0;
|
|
54
|
+
const alpha = (_d = data[sampleOffset + 3]) !== null && _d !== void 0 ? _d : 0;
|
|
55
|
+
for (let y = blockY; y <= blockMaxY; y += 1) {
|
|
56
|
+
for (let x = blockX; x <= blockMaxX; x += 1) {
|
|
57
|
+
if (!isInsideCircle(x, y, centerX, centerY, radiusSquared))
|
|
58
|
+
continue;
|
|
59
|
+
const offset = pixelOffset(width, x, y);
|
|
60
|
+
data[offset] = red;
|
|
61
|
+
data[offset + 1] = green;
|
|
62
|
+
data[offset + 2] = blue;
|
|
63
|
+
data[offset + 3] = alpha;
|
|
64
|
+
processed = true;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return processed;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=mosaic-pixelate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mosaic-pixelate.js","sourceRoot":"","sources":["../../../src/mosaic/mosaic-pixelate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export class DomBindings {
|
|
2
|
-
constructor(resolveElementId, isDisposed) {
|
|
2
|
+
constructor(resolveElementId, isDisposed, resolveDocument = () => document) {
|
|
3
3
|
Object.defineProperty(this, "registry", {
|
|
4
4
|
enumerable: true,
|
|
5
5
|
configurable: true,
|
|
@@ -18,14 +18,21 @@ export class DomBindings {
|
|
|
18
18
|
writable: true,
|
|
19
19
|
value: void 0
|
|
20
20
|
});
|
|
21
|
+
Object.defineProperty(this, "resolveDocument", {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
configurable: true,
|
|
24
|
+
writable: true,
|
|
25
|
+
value: void 0
|
|
26
|
+
});
|
|
21
27
|
this.resolveElementId = resolveElementId;
|
|
22
28
|
this.isDisposed = isDisposed;
|
|
29
|
+
this.resolveDocument = resolveDocument;
|
|
23
30
|
}
|
|
24
31
|
bindIfExists(key, eventType, handler) {
|
|
25
32
|
const id = this.resolveElementId(key);
|
|
26
33
|
if (!id)
|
|
27
34
|
return false;
|
|
28
|
-
const element =
|
|
35
|
+
const element = this.resolveDocument().getElementById(id);
|
|
29
36
|
if (!element)
|
|
30
37
|
return false;
|
|
31
38
|
const wrapped = (event) => {
|
|
@@ -42,7 +49,7 @@ export class DomBindings {
|
|
|
42
49
|
const id = this.resolveElementId(entry.elementKey);
|
|
43
50
|
if (!id)
|
|
44
51
|
continue;
|
|
45
|
-
const element =
|
|
52
|
+
const element = this.resolveDocument().getElementById(id);
|
|
46
53
|
if (!element)
|
|
47
54
|
continue;
|
|
48
55
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom-bindings.js","sourceRoot":"","sources":["../../../src/ui/dom-bindings.ts"],"names":[],"mappings":"AA6EA,MAAM,OAAO,WAAW;
|
|
1
|
+
{"version":3,"file":"dom-bindings.js","sourceRoot":"","sources":["../../../src/ui/dom-bindings.ts"],"names":[],"mappings":"AA6EA,MAAM,OAAO,WAAW;IAepB,YACI,gBAAgE,EAChE,UAAyB,EACzB,kBAAkC,GAAG,EAAE,CAAC,QAAQ;QAjB5C;;;;mBAA2B,EAAE;WAAC;QACrB;;;;;WAAiE;QACjE;;;;;WAA0B;QAC1B;;;;;WAAgC;QAgB7C,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IAC3C,CAAC;IAcD,YAAY,CAAC,GAAe,EAAE,SAAiB,EAAE,OAAsB;QACnE,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,EAAE;YAAE,OAAO,KAAK,CAAC;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAK3B,MAAM,OAAO,GAAkB,CAAC,KAAK,EAAE,EAAE;YACrC,IAAI,IAAI,CAAC,UAAU,EAAE;gBAAE,OAAO;YAC9B,OAAO,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC,CAAC;QAEF,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC;IAChB,CAAC;IASD,SAAS;QACL,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACnD,IAAI,CAAC,EAAE;gBAAE,SAAS;YAClB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YAC1D,IAAI,CAAC,OAAO;gBAAE,SAAS;YACvB,IAAI,CAAC;gBACD,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAChE,CAAC;YAAC,MAAM,CAAC;YAGT,CAAC;QACL,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACvB,CAAC;IAMD,IAAI;QACA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAChC,CAAC;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number.js","sourceRoot":"","sources":["../../../src/utils/number.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"number.js","sourceRoot":"","sources":["../../../src/utils/number.ts"],"names":[],"mappings":"AA2GA,MAAM,UAAU,cAAc,CAC1B,GAAgC,EAChC,IAAU,EACV,QAAgB,EAChB,MAAuB,EACvB,OAAwB;IAExB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,GAAG,CAAC;IACf,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;QAC5B,OAAO,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,QAAQ,CAAC;QACpB,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QAClE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC;AAuBD,MAAM,UAAU,WAAW,CAAC,EAAgB;IACxC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;QACpB,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClD,CAAC;IACD,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAChD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"animation-queue.d.ts","sourceRoot":"","sources":["../../../src/animation/animation-queue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAWH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,cAAc;IACvB,uDAAuD;IACvD,OAAO,CAAC,KAAK,CAAoB;IACjC,sEAAsE;IACtE,OAAO,CAAC,OAAO,CAAS;IAExB;;;;;;;;;;;;;;OAcG;IACH,GAAG,CAAC,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IASpD;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI;IAiB7B;;;;OAIG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,MAAM,IAAI,OAAO;IAIjB;;;;;;;;;;;;OAYG;IACH,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;YAUd,UAAU;
|
|
1
|
+
{"version":3,"file":"animation-queue.d.ts","sourceRoot":"","sources":["../../../src/animation/animation-queue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAWH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,cAAc;IACvB,uDAAuD;IACvD,OAAO,CAAC,KAAK,CAAoB;IACjC,sEAAsE;IACtE,OAAO,CAAC,OAAO,CAAS;IAExB;;;;;;;;;;;;;;OAcG;IACH,GAAG,CAAC,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IASpD;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI;IAiB7B;;;;OAIG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,MAAM,IAAI,OAAO;IAIjB;;;;;;;;;;;;OAYG;IACH,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;YAUd,UAAU;CAoB3B"}
|
|
@@ -7,11 +7,12 @@
|
|
|
7
7
|
* `crop` values merge with their defaults, callback values normalize to a
|
|
8
8
|
* function or `null`, unknown top-level keys are ignored, top-level scalar
|
|
9
9
|
* values remain internally mutable for controlled updates such as
|
|
10
|
-
* `setLayoutMode()
|
|
10
|
+
* `setLayoutMode()` stores its runtime mode separately, and returned
|
|
11
|
+
* option objects are frozen.
|
|
11
12
|
*
|
|
12
13
|
* @module
|
|
13
14
|
*/
|
|
14
|
-
import type { ImageEditorOptions, LabelConfig, ResolvedCropConfig, ResolvedOptions } from './public-types.js';
|
|
15
|
+
import type { ImageEditorOptions, LabelConfig, LayoutMode, MosaicConfig, ResolvedCropConfig, ResolvedMosaicConfig, ResolvedOptions } from './public-types.js';
|
|
15
16
|
/**
|
|
16
17
|
* Documented defaults for every top-level option except the nested
|
|
17
18
|
* {@link LabelConfig} and {@link CropConfig} configs, which are owned by
|
|
@@ -21,7 +22,7 @@ import type { ImageEditorOptions, LabelConfig, ResolvedCropConfig, ResolvedOptio
|
|
|
21
22
|
* Nested label and crop defaults are carried by {@link DEFAULT_LABEL} and
|
|
22
23
|
* {@link DEFAULT_CROP}.
|
|
23
24
|
*/
|
|
24
|
-
export declare const DEFAULT_OPTIONS: Omit<ResolvedOptions, 'label' | 'crop'>;
|
|
25
|
+
export declare const DEFAULT_OPTIONS: Omit<ResolvedOptions, 'label' | 'crop' | 'defaultMosaicConfig'>;
|
|
25
26
|
/**
|
|
26
27
|
* Default {@link LabelConfig}. Consumers can override `getText`, supply a
|
|
27
28
|
* `create` factory, or provide partial `textOptions` — unspecified keys fall
|
|
@@ -32,6 +33,33 @@ export declare const DEFAULT_LABEL: LabelConfig;
|
|
|
32
33
|
* Default {@link CropConfig}.
|
|
33
34
|
*/
|
|
34
35
|
export declare const DEFAULT_CROP: ResolvedCropConfig;
|
|
36
|
+
/**
|
|
37
|
+
* Default Mosaic configuration used to seed each editor's current runtime
|
|
38
|
+
* Mosaic tool config.
|
|
39
|
+
*/
|
|
40
|
+
export declare const DEFAULT_MOSAIC_CONFIG: ResolvedMosaicConfig;
|
|
41
|
+
export declare function isLayoutMode(value: unknown): value is LayoutMode;
|
|
42
|
+
/**
|
|
43
|
+
* Return a mutable defensive copy of a resolved Mosaic config.
|
|
44
|
+
*/
|
|
45
|
+
export declare function cloneResolvedMosaicConfig(config: ResolvedMosaicConfig): ResolvedMosaicConfig;
|
|
46
|
+
/**
|
|
47
|
+
* Normalize a constructor-level Mosaic config against a resolved fallback.
|
|
48
|
+
*/
|
|
49
|
+
export declare function normalizeMosaicConfig(input: unknown, fallback: ResolvedMosaicConfig): ResolvedMosaicConfig;
|
|
50
|
+
/**
|
|
51
|
+
* Merge a runtime Mosaic config patch into the current resolved config.
|
|
52
|
+
* Omitted fields remain unchanged; invalid fields fall back to `current`.
|
|
53
|
+
*/
|
|
54
|
+
export declare function mergeMosaicConfigPatch(current: ResolvedMosaicConfig, patch: MosaicConfig, fallback?: ResolvedMosaicConfig): ResolvedMosaicConfig;
|
|
55
|
+
/**
|
|
56
|
+
* Returns invalid Mosaic config field names for warning/reporting paths.
|
|
57
|
+
*/
|
|
58
|
+
export declare function getInvalidMosaicConfigFields(input: MosaicConfig): string[];
|
|
59
|
+
/**
|
|
60
|
+
* Strict value equality for resolved Mosaic configs.
|
|
61
|
+
*/
|
|
62
|
+
export declare function areResolvedMosaicConfigsEqual(left: ResolvedMosaicConfig, right: ResolvedMosaicConfig): boolean;
|
|
35
63
|
/**
|
|
36
64
|
* Resolves a partial {@link ImageEditorOptions} into a fully populated
|
|
37
65
|
* {@link ResolvedOptions} object.
|
|
@@ -46,9 +74,9 @@ export declare const DEFAULT_CROP: ResolvedCropConfig;
|
|
|
46
74
|
* - Callback values are normalized: function values are kept, anything
|
|
47
75
|
* else becomes `null`.
|
|
48
76
|
* - Unknown top-level keys are silently dropped.
|
|
49
|
-
* - The returned `label` and `crop` references
|
|
50
|
-
*
|
|
51
|
-
*
|
|
77
|
+
* - The returned options object plus its `label` and `crop` references
|
|
78
|
+
* are frozen so mutating `input` after the call cannot affect the
|
|
79
|
+
* live editor.
|
|
52
80
|
*
|
|
53
81
|
* @param input - Optional partial options object. Defaults to `{}`.
|
|
54
82
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-options.d.ts","sourceRoot":"","sources":["../../../src/core/default-options.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"default-options.d.ts","sourceRoot":"","sources":["../../../src/core/default-options.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAIR,kBAAkB,EAClB,WAAW,EACX,UAAU,EACV,YAAY,EAEZ,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EAClB,MAAM,mBAAmB,CAAC;AAQ3B;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,GAAG,MAAM,GAAG,qBAAqB,CAgE3F,CAAC;AAmBF;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,WAG3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,kBAS1B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,oBASlC,CAAC;AAkEH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAEhE;AA4ID;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,oBAAoB,GAAG,oBAAoB,CAO5F;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACjC,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,oBAAoB,GAC/B,oBAAoB,CAGtB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAClC,OAAO,EAAE,oBAAoB,EAC7B,KAAK,EAAE,YAAY,EACnB,QAAQ,GAAE,oBAA8B,GACzC,oBAAoB,CA4CtB;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,EAAE,CA0D1E;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CACzC,IAAI,EAAE,oBAAoB,EAC1B,KAAK,EAAE,oBAAoB,GAC5B,OAAO,CAoBT;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,cAAc,CAAC,KAAK,CAAC,EAAE,kBAAkB,GAAG,IAAI,GAAG,eAAe,CA0OjF"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* callers can discriminate via `instanceof` or `error.name` checks. The
|
|
7
7
|
* hierarchy is intentionally flat — there is no shared `ImageEditorError`
|
|
8
8
|
* base class — to keep `name`/message contracts independent per pipeline
|
|
9
|
-
* and
|
|
9
|
+
* and avoid coupling unrelated error contracts.
|
|
10
10
|
*
|
|
11
11
|
* These classes are internal to the package and are NOT re-exported from
|
|
12
12
|
* `src/index.ts`. Consumers see them via promise rejections from public
|
|
@@ -66,6 +66,7 @@ export declare class OperationGuard {
|
|
|
66
66
|
private isLoadingActive;
|
|
67
67
|
private currentOperationName;
|
|
68
68
|
private currentOperationToken;
|
|
69
|
+
private readonly animationAborters;
|
|
69
70
|
/**
|
|
70
71
|
* Returns `true` while an animation block is open (between
|
|
71
72
|
* {@link beginAnimation} and {@link endAnimation}).
|
|
@@ -117,6 +118,7 @@ export declare class OperationGuard {
|
|
|
117
118
|
* Idempotent: calling twice is a no-op.
|
|
118
119
|
*/
|
|
119
120
|
markDisposed(): void;
|
|
121
|
+
registerAnimationAborter(abort: () => void): () => void;
|
|
120
122
|
/**
|
|
121
123
|
* Mark a transactional image load as active.
|
|
122
124
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operation-guard.d.ts","sourceRoot":"","sources":["../../../src/core/operation-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC3B,0EAA0E;IAC1E,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,wEAAwE;IACxE,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AAEpC;;;;;;;;GAQG;AACH,qBAAa,cAAc;IACvB,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,qBAAqB,CAA+B;
|
|
1
|
+
{"version":3,"file":"operation-guard.d.ts","sourceRoot":"","sources":["../../../src/core/operation-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC3B,0EAA0E;IAC1E,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,wEAAwE;IACxE,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AAEpC;;;;;;;;GAQG;AACH,qBAAa,cAAc;IACvB,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,qBAAqB,CAA+B;IAC5D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAyB;IAE3D;;;;;;OAMG;IACH,WAAW,IAAI,OAAO;IAItB;;;OAGG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,mBAAmB,IAAI,MAAM,GAAG,IAAI;IAIpC;;OAEG;IACH,MAAM,IAAI,OAAO;IAMjB;;;;;;;OAOG;IACH,cAAc,IAAI,IAAI;IAItB;;;;OAIG;IACH,YAAY,IAAI,IAAI;IAIpB;;;;;;;;;OASG;IACH,YAAY,IAAI,IAAI;IAgBpB,wBAAwB,CAAC,KAAK,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAgBvD;;OAEG;IACH,YAAY,IAAI,IAAI;IAIpB;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;;OAGG;IACH,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc;IAOzD;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;IAOhE;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO;IAIjE;;;;;;;;;;;;;;;;OAgBG;IACG,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IASlE;;;;;;;;;;;;;;;;;;OAkBG;IACH,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAQhD;;;;OAIG;IACH,sBAAsB,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,IAAI,GAAG,IAAI;IAuBnF;;;;OAIG;IACH,uBAAuB,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,IAAI,GAAG,IAAI;CAiBvF"}
|
|
@@ -62,6 +62,14 @@ export type ExportArea = 'image' | 'canvas';
|
|
|
62
62
|
* the Fabric canvas when it is known, falling back to PNG otherwise.
|
|
63
63
|
*/
|
|
64
64
|
export type CropExportFileType = ImageFileType | 'source';
|
|
65
|
+
/**
|
|
66
|
+
* Intermediate raster format used by Mosaic mode when committing edited
|
|
67
|
+
* pixels back into the base image.
|
|
68
|
+
*
|
|
69
|
+
* `'source'` preserves the current image MIME type when known, falling back
|
|
70
|
+
* to PNG otherwise.
|
|
71
|
+
*/
|
|
72
|
+
export type MosaicOutputFileType = ImageFileType | 'source';
|
|
65
73
|
/**
|
|
66
74
|
* A Fabric.js object augmented with mask-specific runtime properties.
|
|
67
75
|
* Returned from {@link ImageEditor.createMask} and exposed in mask-related
|
|
@@ -103,7 +111,7 @@ export declare function isMaskObject(object: FabricNS.FabricObject): object is M
|
|
|
103
111
|
/**
|
|
104
112
|
* Public operation/reason associated with lifecycle and state callbacks.
|
|
105
113
|
*/
|
|
106
|
-
export type ImageEditorOperation = 'init' | 'loadImage' | 'loadFromState' | 'saveState' | 'scaleImage' | 'rotateImage' | 'resetImageTransform' | 'createMask' | 'removeSelectedMask' | 'removeAllMasks' | 'mergeMasks' | 'enterCropMode' | 'applyCrop' | 'cancelCrop' | 'undo' | 'redo' | 'exportImageBase64' | 'exportImageFile' | 'downloadImage' | 'dispose';
|
|
114
|
+
export type ImageEditorOperation = 'init' | 'loadImage' | 'loadFromState' | 'saveState' | 'scaleImage' | 'rotateImage' | 'resetImageTransform' | 'createMask' | 'removeSelectedMask' | 'removeAllMasks' | 'mergeMasks' | 'enterCropMode' | 'applyCrop' | 'cancelCrop' | 'enterMosaicMode' | 'exitMosaicMode' | 'applyMosaic' | 'setMosaicConfig' | 'resetMosaicConfig' | 'setMosaicBrushSize' | 'setMosaicBlockSize' | 'undo' | 'redo' | 'exportImageBase64' | 'exportImageFile' | 'downloadImage' | 'dispose';
|
|
107
115
|
/**
|
|
108
116
|
* Context passed to lifecycle and state callbacks.
|
|
109
117
|
*/
|
|
@@ -140,6 +148,7 @@ export interface ImageEditorState {
|
|
|
140
148
|
currentRotation: number;
|
|
141
149
|
isBusy: boolean;
|
|
142
150
|
isCropMode: boolean;
|
|
151
|
+
isMosaicMode: boolean;
|
|
143
152
|
canUndo: boolean;
|
|
144
153
|
canRedo: boolean;
|
|
145
154
|
canvasWidth: number;
|
|
@@ -228,6 +237,72 @@ export interface CropConfig {
|
|
|
228
237
|
* `downsampleQuality`".
|
|
229
238
|
*/
|
|
230
239
|
export type ResolvedCropConfig = Required<Omit<CropConfig, 'exportQuality'>> & Pick<CropConfig, 'exportQuality'>;
|
|
240
|
+
/**
|
|
241
|
+
* Mosaic-mode configuration. Constructor-level `defaultMosaicConfig` uses
|
|
242
|
+
* this shape to initialize the editor's current Mosaic tool config; runtime
|
|
243
|
+
* setters update only the current config.
|
|
244
|
+
*/
|
|
245
|
+
export interface MosaicConfig {
|
|
246
|
+
/**
|
|
247
|
+
* Brush diameter in canvas pixels.
|
|
248
|
+
* The preview circle uses this diameter.
|
|
249
|
+
* @default 48
|
|
250
|
+
*/
|
|
251
|
+
brushSize?: number;
|
|
252
|
+
/**
|
|
253
|
+
* Pixel block size in source-image pixels.
|
|
254
|
+
* Larger values produce chunkier mosaic.
|
|
255
|
+
* @default 8
|
|
256
|
+
*/
|
|
257
|
+
blockSize?: number;
|
|
258
|
+
/**
|
|
259
|
+
* Stroke color for the brush preview circle.
|
|
260
|
+
* @default '#333'
|
|
261
|
+
*/
|
|
262
|
+
previewStroke?: string;
|
|
263
|
+
/**
|
|
264
|
+
* Stroke width for the brush preview circle.
|
|
265
|
+
* @default 1
|
|
266
|
+
*/
|
|
267
|
+
previewStrokeWidth?: number;
|
|
268
|
+
/**
|
|
269
|
+
* Optional dash pattern for the brush preview circle.
|
|
270
|
+
* @default [4, 4]
|
|
271
|
+
*/
|
|
272
|
+
previewStrokeDashArray?: number[] | null;
|
|
273
|
+
/**
|
|
274
|
+
* Fill for the brush preview circle.
|
|
275
|
+
* @default 'rgba(0,0,0,0)'
|
|
276
|
+
*/
|
|
277
|
+
previewFill?: string;
|
|
278
|
+
/**
|
|
279
|
+
* Output format used when committing the mosaiced base image.
|
|
280
|
+
*
|
|
281
|
+
* - 'source' preserves the current image MIME type when known.
|
|
282
|
+
* - image format values follow the same normalization rules as export.
|
|
283
|
+
*
|
|
284
|
+
* @default 'source'
|
|
285
|
+
*/
|
|
286
|
+
outputFileType?: MosaicOutputFileType;
|
|
287
|
+
/**
|
|
288
|
+
* Lossy quality used when outputFileType resolves to jpeg/webp.
|
|
289
|
+
* Ignored for PNG. Defaults to options.downsampleQuality.
|
|
290
|
+
*/
|
|
291
|
+
outputQuality?: number;
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Mosaic config after defaults and normalization are applied.
|
|
295
|
+
*/
|
|
296
|
+
export interface ResolvedMosaicConfig {
|
|
297
|
+
brushSize: number;
|
|
298
|
+
blockSize: number;
|
|
299
|
+
previewStroke: string;
|
|
300
|
+
previewStrokeWidth: number;
|
|
301
|
+
previewStrokeDashArray: number[] | null;
|
|
302
|
+
previewFill: string;
|
|
303
|
+
outputFileType: MosaicOutputFileType;
|
|
304
|
+
outputQuality?: number;
|
|
305
|
+
}
|
|
231
306
|
/**
|
|
232
307
|
* A numeric property that may be provided as:
|
|
233
308
|
* - a plain `number` in canvas pixels,
|
|
@@ -323,6 +398,13 @@ export interface MaskConfig {
|
|
|
323
398
|
*/
|
|
324
399
|
fabricGenerator?: (config: ResolvedMaskConfig, canvas: FabricNS.Canvas, options: ResolvedOptions) => FabricNS.FabricObject;
|
|
325
400
|
}
|
|
401
|
+
/**
|
|
402
|
+
* Constructor-level defaults applied to newly created masks.
|
|
403
|
+
*
|
|
404
|
+
* Uses the same shape as {@link MaskConfig}, except lifecycle hooks and custom
|
|
405
|
+
* Fabric object factories remain per-call only.
|
|
406
|
+
*/
|
|
407
|
+
export type DefaultMaskConfig = Omit<Partial<MaskConfig>, 'onCreate' | 'fabricGenerator'>;
|
|
326
408
|
/**
|
|
327
409
|
* Fully resolved mask config produced after defaults and percentage resolution
|
|
328
410
|
* have been applied. Exposed because consumers may receive it via
|
|
@@ -417,6 +499,20 @@ export interface ElementIdMap {
|
|
|
417
499
|
applyCropButton?: string | null;
|
|
418
500
|
/** Cancel crop button. @default 'cancelCropButton' */
|
|
419
501
|
cancelCropButton?: string | null;
|
|
502
|
+
/** Enter Mosaic mode button. @default 'enterMosaicModeButton' */
|
|
503
|
+
enterMosaicModeButton?: string | null;
|
|
504
|
+
/** Exit Mosaic mode button. @default 'exitMosaicModeButton' */
|
|
505
|
+
exitMosaicModeButton?: string | null;
|
|
506
|
+
/**
|
|
507
|
+
* Optional input/range control for Mosaic brush diameter.
|
|
508
|
+
* @default 'mosaicBrushSizeInput'
|
|
509
|
+
*/
|
|
510
|
+
mosaicBrushSizeInput?: string | null;
|
|
511
|
+
/**
|
|
512
|
+
* Optional input/range control for Mosaic block size.
|
|
513
|
+
* @default 'mosaicBlockSizeInput'
|
|
514
|
+
*/
|
|
515
|
+
mosaicBlockSizeInput?: string | null;
|
|
420
516
|
/** Clickable upload area (delegates to imageInput). @default 'uploadArea' */
|
|
421
517
|
uploadArea?: string | null;
|
|
422
518
|
}
|
|
@@ -500,18 +596,16 @@ export interface ImageEditorOptions {
|
|
|
500
596
|
/** Rotation step in degrees. Non-finite values fall back to the default. @default 90 */
|
|
501
597
|
rotationStep?: number;
|
|
502
598
|
/**
|
|
503
|
-
*
|
|
504
|
-
*
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
*
|
|
511
|
-
* size, and expand overflowing canvas axes so the container can scroll.
|
|
512
|
-
* @default false
|
|
599
|
+
* Initial layout mode used for image loads until changed by
|
|
600
|
+
* {@link ImageEditor.setLayoutMode}.
|
|
601
|
+
*
|
|
602
|
+
* Invalid JavaScript runtime values fall back to `'expand'` during
|
|
603
|
+
* construction. Use `setLayoutMode()` to change the mode for future
|
|
604
|
+
* image loads.
|
|
605
|
+
*
|
|
606
|
+
* @default 'expand'
|
|
513
607
|
*/
|
|
514
|
-
|
|
608
|
+
defaultLayoutMode?: LayoutMode;
|
|
515
609
|
/** Downsample very large images on load. @default true */
|
|
516
610
|
downsampleOnLoad?: boolean;
|
|
517
611
|
/** Max pixel width before downsampling kicks in. @default 4000 */
|
|
@@ -570,6 +664,12 @@ export interface ImageEditorOptions {
|
|
|
570
664
|
defaultMaskWidth?: number;
|
|
571
665
|
/** Default height for new rect/ellipse masks. @default 80 */
|
|
572
666
|
defaultMaskHeight?: number;
|
|
667
|
+
/**
|
|
668
|
+
* Global defaults used by {@link ImageEditor.createMask}.
|
|
669
|
+
*
|
|
670
|
+
* Per-call `createMask(config)` values override these defaults.
|
|
671
|
+
*/
|
|
672
|
+
defaultMaskConfig?: DefaultMaskConfig;
|
|
573
673
|
/** Allow masks to be rotated by the user. @default false */
|
|
574
674
|
maskRotatable?: boolean;
|
|
575
675
|
/** Show a name label above a selected mask. @default true */
|
|
@@ -623,17 +723,27 @@ export interface ImageEditorOptions {
|
|
|
623
723
|
label?: LabelConfig;
|
|
624
724
|
/** Crop-mode configuration. */
|
|
625
725
|
crop?: CropConfig;
|
|
726
|
+
/**
|
|
727
|
+
* Default Mosaic configuration used to initialize the current Mosaic tool config.
|
|
728
|
+
*
|
|
729
|
+
* Runtime calls such as setMosaicConfig(), setMosaicBrushSize(), and
|
|
730
|
+
* setMosaicBlockSize() update the current tool config only.
|
|
731
|
+
*/
|
|
732
|
+
defaultMosaicConfig?: MosaicConfig;
|
|
626
733
|
}
|
|
627
734
|
/**
|
|
628
735
|
* Fully resolved options with every required field guaranteed present.
|
|
629
736
|
* Produced by `core/default-options.ts` after merging defaults with the
|
|
630
737
|
* user-supplied partial options.
|
|
631
738
|
*/
|
|
632
|
-
export interface ResolvedOptions extends Required<Omit<ImageEditorOptions, 'label' | 'crop' | 'onImageLoadStart' | 'onImageLoaded' | 'onImageCleared' | 'onImageChanged' | 'onBusyChange' | 'onEditorDisposed' | 'onMasksChanged' | 'onSelectionChange' | 'onError' | 'onWarning' | 'downsampleQuality' | 'maxExportPixels'>> {
|
|
739
|
+
export interface ResolvedOptions extends Required<Omit<ImageEditorOptions, 'label' | 'crop' | 'defaultMosaicConfig' | 'onImageLoadStart' | 'onImageLoaded' | 'onImageCleared' | 'onImageChanged' | 'onBusyChange' | 'onEditorDisposed' | 'onMasksChanged' | 'onSelectionChange' | 'onError' | 'onWarning' | 'downsampleQuality' | 'maxExportPixels'>> {
|
|
633
740
|
downsampleQuality: number;
|
|
634
741
|
maxExportPixels: number;
|
|
742
|
+
/** Current layout mode used by future image loads. */
|
|
743
|
+
layoutMode: LayoutMode;
|
|
635
744
|
label: LabelConfig;
|
|
636
745
|
crop: ResolvedCropConfig;
|
|
746
|
+
defaultMosaicConfig: ResolvedMosaicConfig;
|
|
637
747
|
onImageLoadStart: ((context: ImageEditorCallbackContext) => void) | null;
|
|
638
748
|
onImageLoaded: ((imageInfo: ImageInfo, context: ImageEditorCallbackContext) => void) | null;
|
|
639
749
|
onImageCleared: ((previousImage: FabricNS.FabricImage | null, context: ImageEditorCallbackContext) => void) | null;
|