@bensitu/image-editor 2.0.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/README.md +346 -90
  2. package/dist/cjs/index.cjs +4883 -1191
  3. package/dist/cjs/index.cjs.map +1 -1
  4. package/dist/esm/animation/animation-queue.js +16 -9
  5. package/dist/esm/animation/animation-queue.js.map +1 -1
  6. package/dist/esm/annotation/annotation-lock.js +7 -0
  7. package/dist/esm/annotation/annotation-lock.js.map +1 -0
  8. package/dist/esm/annotation/annotation-manager.js +217 -0
  9. package/dist/esm/annotation/annotation-manager.js.map +1 -0
  10. package/dist/esm/annotation/annotation-style.js +50 -0
  11. package/dist/esm/annotation/annotation-style.js.map +1 -0
  12. package/dist/esm/annotation/draw-controller.js +114 -0
  13. package/dist/esm/annotation/draw-controller.js.map +1 -0
  14. package/dist/esm/annotation/text-controller.js +234 -0
  15. package/dist/esm/annotation/text-controller.js.map +1 -0
  16. package/dist/esm/core/default-options.js +447 -11
  17. package/dist/esm/core/default-options.js.map +1 -1
  18. package/dist/esm/core/editor-object-kind.js +37 -0
  19. package/dist/esm/core/editor-object-kind.js.map +1 -0
  20. package/dist/esm/core/errors.js +19 -0
  21. package/dist/esm/core/errors.js.map +1 -1
  22. package/dist/esm/core/layer-order.js +100 -0
  23. package/dist/esm/core/layer-order.js.map +1 -0
  24. package/dist/esm/core/operation-guard.js +28 -0
  25. package/dist/esm/core/operation-guard.js.map +1 -1
  26. package/dist/esm/core/public-types.js +34 -1
  27. package/dist/esm/core/public-types.js.map +1 -1
  28. package/dist/esm/core/state-serializer.js +108 -27
  29. package/dist/esm/core/state-serializer.js.map +1 -1
  30. package/dist/esm/crop/crop-controller.js +6 -2
  31. package/dist/esm/crop/crop-controller.js.map +1 -1
  32. package/dist/esm/export/export-format.js.map +1 -1
  33. package/dist/esm/export/export-service.js +140 -141
  34. package/dist/esm/export/export-service.js.map +1 -1
  35. package/dist/esm/export/overlay-merge-service.js +75 -0
  36. package/dist/esm/export/overlay-merge-service.js.map +1 -0
  37. package/dist/esm/fabric/fabric-animation.js +56 -4
  38. package/dist/esm/fabric/fabric-animation.js.map +1 -1
  39. package/dist/esm/history/history-manager.js +2 -2
  40. package/dist/esm/history/history-manager.js.map +1 -1
  41. package/dist/esm/image/image-loader.js +27 -65
  42. package/dist/esm/image/image-loader.js.map +1 -1
  43. package/dist/esm/image/image-resampler.js +7 -2
  44. package/dist/esm/image/image-resampler.js.map +1 -1
  45. package/dist/esm/image/layout-manager.js +2 -20
  46. package/dist/esm/image/layout-manager.js.map +1 -1
  47. package/dist/esm/image/transform-controller.js.map +1 -1
  48. package/dist/esm/image-editor.js +1474 -135
  49. package/dist/esm/image-editor.js.map +1 -1
  50. package/dist/esm/index.js +1 -1
  51. package/dist/esm/index.js.map +1 -1
  52. package/dist/esm/mask/mask-factory.js +92 -43
  53. package/dist/esm/mask/mask-factory.js.map +1 -1
  54. package/dist/esm/mask/mask-label-manager.js +2 -0
  55. package/dist/esm/mask/mask-label-manager.js.map +1 -1
  56. package/dist/esm/mask/mask-list.js +9 -3
  57. package/dist/esm/mask/mask-list.js.map +1 -1
  58. package/dist/esm/mask/mask-style.js.map +1 -1
  59. package/dist/esm/mosaic/mosaic-controller.js +666 -0
  60. package/dist/esm/mosaic/mosaic-controller.js.map +1 -0
  61. package/dist/esm/mosaic/mosaic-geometry.js +81 -0
  62. package/dist/esm/mosaic/mosaic-geometry.js.map +1 -0
  63. package/dist/esm/mosaic/mosaic-pixelate.js +71 -0
  64. package/dist/esm/mosaic/mosaic-pixelate.js.map +1 -0
  65. package/dist/esm/ui/dom-bindings.js +10 -3
  66. package/dist/esm/ui/dom-bindings.js.map +1 -1
  67. package/dist/esm/utils/image-element-loader.js +55 -0
  68. package/dist/esm/utils/image-element-loader.js.map +1 -0
  69. package/dist/esm/utils/number.js.map +1 -1
  70. package/dist/esm/utils/pointer.js +28 -0
  71. package/dist/esm/utils/pointer.js.map +1 -0
  72. package/dist/types/animation/animation-queue.d.ts.map +1 -1
  73. package/dist/types/annotation/annotation-lock.d.ts +12 -0
  74. package/dist/types/annotation/annotation-lock.d.ts.map +1 -0
  75. package/dist/types/annotation/annotation-manager.d.ts +33 -0
  76. package/dist/types/annotation/annotation-manager.d.ts.map +1 -0
  77. package/dist/types/annotation/annotation-style.d.ts +13 -0
  78. package/dist/types/annotation/annotation-style.d.ts.map +1 -0
  79. package/dist/types/annotation/draw-controller.d.ts +43 -0
  80. package/dist/types/annotation/draw-controller.d.ts.map +1 -0
  81. package/dist/types/annotation/text-controller.d.ts +47 -0
  82. package/dist/types/annotation/text-controller.d.ts.map +1 -0
  83. package/dist/types/core/default-options.d.ts +46 -6
  84. package/dist/types/core/default-options.d.ts.map +1 -1
  85. package/dist/types/core/editor-object-kind.d.ts +29 -0
  86. package/dist/types/core/editor-object-kind.d.ts.map +1 -0
  87. package/dist/types/core/errors.d.ts +12 -2
  88. package/dist/types/core/errors.d.ts.map +1 -1
  89. package/dist/types/core/layer-order.d.ts +21 -0
  90. package/dist/types/core/layer-order.d.ts.map +1 -0
  91. package/dist/types/core/operation-guard.d.ts +2 -0
  92. package/dist/types/core/operation-guard.d.ts.map +1 -1
  93. package/dist/types/core/public-types.d.ts +341 -33
  94. package/dist/types/core/public-types.d.ts.map +1 -1
  95. package/dist/types/core/state-serializer.d.ts +32 -5
  96. package/dist/types/core/state-serializer.d.ts.map +1 -1
  97. package/dist/types/crop/crop-controller.d.ts +6 -7
  98. package/dist/types/crop/crop-controller.d.ts.map +1 -1
  99. package/dist/types/export/export-format.d.ts +5 -33
  100. package/dist/types/export/export-format.d.ts.map +1 -1
  101. package/dist/types/export/export-service.d.ts +24 -15
  102. package/dist/types/export/export-service.d.ts.map +1 -1
  103. package/dist/types/export/overlay-merge-service.d.ts +38 -0
  104. package/dist/types/export/overlay-merge-service.d.ts.map +1 -0
  105. package/dist/types/fabric/fabric-animation.d.ts.map +1 -1
  106. package/dist/types/history/history-manager.d.ts +11 -14
  107. package/dist/types/history/history-manager.d.ts.map +1 -1
  108. package/dist/types/image/image-loader.d.ts +24 -21
  109. package/dist/types/image/image-loader.d.ts.map +1 -1
  110. package/dist/types/image/image-resampler.d.ts +2 -2
  111. package/dist/types/image/image-resampler.d.ts.map +1 -1
  112. package/dist/types/image/layout-manager.d.ts +5 -49
  113. package/dist/types/image/layout-manager.d.ts.map +1 -1
  114. package/dist/types/image/transform-controller.d.ts +6 -9
  115. package/dist/types/image/transform-controller.d.ts.map +1 -1
  116. package/dist/types/image-editor.d.ts +93 -14
  117. package/dist/types/image-editor.d.ts.map +1 -1
  118. package/dist/types/index.d.cts +3 -3
  119. package/dist/types/index.d.cts.map +1 -1
  120. package/dist/types/index.d.ts +3 -3
  121. package/dist/types/index.d.ts.map +1 -1
  122. package/dist/types/mask/mask-factory.d.ts +24 -21
  123. package/dist/types/mask/mask-factory.d.ts.map +1 -1
  124. package/dist/types/mask/mask-label-manager.d.ts +10 -9
  125. package/dist/types/mask/mask-label-manager.d.ts.map +1 -1
  126. package/dist/types/mask/mask-list.d.ts +11 -12
  127. package/dist/types/mask/mask-list.d.ts.map +1 -1
  128. package/dist/types/mask/mask-style.d.ts +19 -20
  129. package/dist/types/mask/mask-style.d.ts.map +1 -1
  130. package/dist/types/mosaic/mosaic-controller.d.ts +82 -0
  131. package/dist/types/mosaic/mosaic-controller.d.ts.map +1 -0
  132. package/dist/types/mosaic/mosaic-geometry.d.ts +29 -0
  133. package/dist/types/mosaic/mosaic-geometry.d.ts.map +1 -0
  134. package/dist/types/mosaic/mosaic-pixelate.d.ts +23 -0
  135. package/dist/types/mosaic/mosaic-pixelate.d.ts.map +1 -0
  136. package/dist/types/ui/dom-bindings.d.ts +3 -1
  137. package/dist/types/ui/dom-bindings.d.ts.map +1 -1
  138. package/dist/types/ui/visibility-state.d.ts +2 -2
  139. package/dist/types/utils/image-element-loader.d.ts +19 -0
  140. package/dist/types/utils/image-element-loader.d.ts.map +1 -0
  141. package/dist/types/utils/number.d.ts +1 -2
  142. package/dist/types/utils/number.d.ts.map +1 -1
  143. package/dist/types/utils/pointer.d.ts +16 -0
  144. package/dist/types/utils/pointer.d.ts.map +1 -0
  145. package/dist/umd/image-editor.umd.js +1 -1
  146. package/dist/umd/image-editor.umd.js.map +1 -1
  147. package/package.json +1 -1
@@ -0,0 +1,37 @@
1
+ export function markBaseImageObject(image) {
2
+ const baseImage = image;
3
+ baseImage.editorObjectKind = 'baseImage';
4
+ return baseImage;
5
+ }
6
+ export function markMaskObject(object, meta) {
7
+ const mask = object;
8
+ mask.editorObjectKind = 'mask';
9
+ mask.maskId = meta.maskId;
10
+ mask.maskUid = meta.maskUid;
11
+ mask.maskName = meta.maskName;
12
+ mask.originalAlpha = meta.originalAlpha;
13
+ if ('originalStroke' in meta)
14
+ mask.originalStroke = meta.originalStroke;
15
+ if (typeof meta.originalStrokeWidth === 'number') {
16
+ mask.originalStrokeWidth = meta.originalStrokeWidth;
17
+ }
18
+ return mask;
19
+ }
20
+ export function markAnnotationObject(object, meta) {
21
+ var _a, _b;
22
+ const annotation = object;
23
+ annotation.editorObjectKind = 'annotation';
24
+ annotation.annotationId = meta.annotationId;
25
+ annotation.annotationType = meta.annotationType;
26
+ annotation.annotationName = meta.annotationName;
27
+ annotation.annotationHidden = (_a = meta.annotationHidden) !== null && _a !== void 0 ? _a : false;
28
+ annotation.annotationLocked = (_b = meta.annotationLocked) !== null && _b !== void 0 ? _b : false;
29
+ return annotation;
30
+ }
31
+ export function markSessionObject(object, sessionObjectType) {
32
+ const sessionObject = object;
33
+ sessionObject.editorObjectKind = 'session';
34
+ sessionObject.sessionObjectType = sessionObjectType;
35
+ return sessionObject;
36
+ }
37
+ //# sourceMappingURL=editor-object-kind.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor-object-kind.js","sourceRoot":"","sources":["../../../src/core/editor-object-kind.ts"],"names":[],"mappings":"AAqBA,MAAM,UAAU,mBAAmB,CAAC,KAA2B;IAC3D,MAAM,SAAS,GAAG,KAAwB,CAAC;IAC3C,SAAS,CAAC,gBAAgB,GAAG,WAAW,CAAC;IACzC,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,cAAc,CAC1B,MAA6B,EAC7B,IAOC;IAED,MAAM,IAAI,GAAG,MAAoB,CAAC;IAClC,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;IAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC9B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;IACxC,IAAI,gBAAgB,IAAI,IAAI;QAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;IACxE,IAAI,OAAO,IAAI,CAAC,mBAAmB,KAAK,QAAQ,EAAE,CAAC;QAC/C,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;IACxD,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAChC,MAA6B,EAC7B,IAMC;;IAED,MAAM,UAAU,GAAG,MAA0B,CAAC;IAC9C,UAAU,CAAC,gBAAgB,GAAG,YAAY,CAAC;IAC3C,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IAC5C,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;IAChD,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;IAChD,UAAU,CAAC,gBAAgB,GAAG,MAAA,IAAI,CAAC,gBAAgB,mCAAI,KAAK,CAAC;IAC7D,UAAU,CAAC,gBAAgB,GAAG,MAAA,IAAI,CAAC,gBAAgB,mCAAI,KAAK,CAAC;IAC7D,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC7B,MAAS,EACT,iBAAoC;IAEpC,MAAM,aAAa,GAAG,MAA2B,CAAC;IAClD,aAAa,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAC3C,aAAa,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IACpD,OAAO,aAAa,CAAC;AACzB,CAAC"}
@@ -96,6 +96,25 @@ export class MergeMasksError extends Error {
96
96
  fixPrototype(this, MergeMasksError);
97
97
  }
98
98
  }
99
+ export class MergeAnnotationsError extends Error {
100
+ constructor(message = 'Failed to merge annotations into the image.', originalError = null) {
101
+ super(message);
102
+ Object.defineProperty(this, "name", {
103
+ enumerable: true,
104
+ configurable: true,
105
+ writable: true,
106
+ value: 'MergeAnnotationsError'
107
+ });
108
+ Object.defineProperty(this, "originalError", {
109
+ enumerable: true,
110
+ configurable: true,
111
+ writable: true,
112
+ value: void 0
113
+ });
114
+ this.originalError = originalError;
115
+ fixPrototype(this, MergeAnnotationsError);
116
+ }
117
+ }
99
118
  export class CropApplyError extends Error {
100
119
  constructor(message = 'Failed to apply crop to the image.', originalError = null) {
101
120
  super(message);
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/core/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/core/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ import { isBaseImageObject, isEditableOverlayObject, isSessionObject, } from './public-types.js';
2
+ function isLegacySessionObject(object) {
3
+ const candidate = object;
4
+ return (candidate.isCropRect === true ||
5
+ candidate.maskLabel === true ||
6
+ candidate.isMosaicPreview === true);
7
+ }
8
+ function moveObjectTo(canvas, object, index) {
9
+ const canvasWithLayerApi = canvas;
10
+ if (typeof canvasWithLayerApi.moveObjectTo === 'function') {
11
+ canvasWithLayerApi.moveObjectTo(object, index);
12
+ return;
13
+ }
14
+ try {
15
+ canvas.remove(object);
16
+ canvas.insertAt(index, object);
17
+ }
18
+ catch {
19
+ canvas.add(object);
20
+ }
21
+ }
22
+ function ensureOnCanvas(canvas, object) {
23
+ if (!canvas.getObjects().includes(object)) {
24
+ canvas.add(object);
25
+ }
26
+ }
27
+ function withoutObject(canvas, object) {
28
+ return canvas.getObjects().filter((candidate) => candidate !== object);
29
+ }
30
+ function findFirstSessionIndex(objects) {
31
+ return objects.findIndex((object) => isSessionObject(object) || isLegacySessionObject(object));
32
+ }
33
+ function getOrderedGroups(canvas) {
34
+ const baseImages = [];
35
+ const overlays = [];
36
+ const sessions = [];
37
+ const others = [];
38
+ for (const object of canvas.getObjects()) {
39
+ if (isBaseImageObject(object)) {
40
+ baseImages.push(object);
41
+ }
42
+ else if (isEditableOverlayObject(object)) {
43
+ overlays.push(object);
44
+ }
45
+ else if (isSessionObject(object) || isLegacySessionObject(object)) {
46
+ sessions.push(object);
47
+ }
48
+ else {
49
+ others.push(object);
50
+ }
51
+ }
52
+ return { baseImages, overlays, sessions, others };
53
+ }
54
+ export function normalizeLayerOrder(canvas) {
55
+ const groups = getOrderedGroups(canvas);
56
+ const ordered = [
57
+ ...groups.baseImages,
58
+ ...groups.others,
59
+ ...groups.overlays,
60
+ ...groups.sessions,
61
+ ];
62
+ ordered.forEach((object, index) => {
63
+ moveObjectTo(canvas, object, index);
64
+ });
65
+ }
66
+ export function placeBaseImageObject(canvas, image) {
67
+ ensureOnCanvas(canvas, image);
68
+ const targetIndex = withoutObject(canvas, image).filter(isBaseImageObject).length;
69
+ moveObjectTo(canvas, image, targetIndex);
70
+ }
71
+ export function placeMaskObject(canvas, mask) {
72
+ ensureOnCanvas(canvas, mask);
73
+ const objects = withoutObject(canvas, mask);
74
+ const firstSessionIndex = findFirstSessionIndex(objects);
75
+ moveObjectTo(canvas, mask, firstSessionIndex === -1 ? objects.length : firstSessionIndex);
76
+ }
77
+ export function placeAnnotationObject(canvas, annotation) {
78
+ ensureOnCanvas(canvas, annotation);
79
+ const objects = withoutObject(canvas, annotation);
80
+ const firstSessionIndex = findFirstSessionIndex(objects);
81
+ moveObjectTo(canvas, annotation, firstSessionIndex === -1 ? objects.length : firstSessionIndex);
82
+ }
83
+ export function placeSessionObject(canvas, sessionObject) {
84
+ ensureOnCanvas(canvas, sessionObject);
85
+ moveObjectTo(canvas, sessionObject, withoutObject(canvas, sessionObject).length);
86
+ }
87
+ export function getEditableOverlayRange(canvas) {
88
+ const objects = canvas.getObjects();
89
+ const overlayIndexes = objects
90
+ .map((object, index) => ({ object, index }))
91
+ .filter(({ object }) => isEditableOverlayObject(object));
92
+ if (overlayIndexes.length === 0)
93
+ return { start: -1, end: -1, overlays: [] };
94
+ return {
95
+ start: overlayIndexes[0].index,
96
+ end: overlayIndexes[overlayIndexes.length - 1].index,
97
+ overlays: overlayIndexes.map(({ object }) => object),
98
+ };
99
+ }
100
+ //# sourceMappingURL=layer-order.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layer-order.js","sourceRoot":"","sources":["../../../src/core/layer-order.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,12 @@ export class OperationGuard {
30
30
  writable: true,
31
31
  value: null
32
32
  });
33
+ Object.defineProperty(this, "animationAborters", {
34
+ enumerable: true,
35
+ configurable: true,
36
+ writable: true,
37
+ value: new Set()
38
+ });
33
39
  }
34
40
  isAnimating() {
35
41
  return this.isAnimationActive;
@@ -58,6 +64,28 @@ export class OperationGuard {
58
64
  this.isLoadingActive = false;
59
65
  this.currentOperationName = null;
60
66
  this.currentOperationToken = null;
67
+ for (const abort of this.animationAborters) {
68
+ try {
69
+ abort();
70
+ }
71
+ catch {
72
+ }
73
+ }
74
+ this.animationAborters.clear();
75
+ }
76
+ registerAnimationAborter(abort) {
77
+ if (this.isDisposedFlag) {
78
+ try {
79
+ abort();
80
+ }
81
+ catch {
82
+ }
83
+ return () => undefined;
84
+ }
85
+ this.animationAborters.add(abort);
86
+ return () => {
87
+ this.animationAborters.delete(abort);
88
+ };
61
89
  }
62
90
  beginLoading() {
63
91
  this.isLoadingActive = true;
@@ -1 +1 @@
1
- {"version":3,"file":"operation-guard.js","sourceRoot":"","sources":["../../../src/core/operation-guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operation-guard.js","sourceRoot":"","sources":["../../../src/core/operation-guard.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,37 @@
1
+ export function isBaseImageObject(object) {
2
+ return (!!object &&
3
+ typeof object === 'object' &&
4
+ object.editorObjectKind === 'baseImage');
5
+ }
1
6
  export function isMaskObject(object) {
2
- return 'maskId' in object && typeof object.maskId === 'number';
7
+ const candidate = object;
8
+ return (!!candidate &&
9
+ candidate.editorObjectKind === 'mask' &&
10
+ typeof candidate.maskId === 'number' &&
11
+ typeof candidate.maskUid === 'string' &&
12
+ typeof candidate.maskName === 'string');
13
+ }
14
+ export function isAnnotationObject(object) {
15
+ const candidate = object;
16
+ return (!!candidate &&
17
+ candidate.editorObjectKind === 'annotation' &&
18
+ typeof candidate.annotationId === 'number' &&
19
+ typeof candidate.annotationType === 'string' &&
20
+ typeof candidate.annotationName === 'string');
21
+ }
22
+ export function isTextAnnotationObject(object) {
23
+ return isAnnotationObject(object) && object.annotationType === 'text';
24
+ }
25
+ export function isDrawAnnotationObject(object) {
26
+ return isAnnotationObject(object) && object.annotationType === 'draw';
27
+ }
28
+ export function isSessionObject(object) {
29
+ const candidate = object;
30
+ return (!!candidate &&
31
+ candidate.editorObjectKind === 'session' &&
32
+ typeof candidate.sessionObjectType === 'string');
33
+ }
34
+ export function isEditableOverlayObject(object) {
35
+ return isMaskObject(object) || isAnnotationObject(object);
3
36
  }
4
37
  //# sourceMappingURL=public-types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"public-types.js","sourceRoot":"","sources":["../../../src/core/public-types.ts"],"names":[],"mappings":"AA4HA,MAAM,UAAU,YAAY,CAAC,MAA6B;IACtD,OAAO,QAAQ,IAAI,MAAM,IAAI,OAAQ,MAAqB,CAAC,MAAM,KAAK,QAAQ,CAAC;AACnF,CAAC"}
1
+ {"version":3,"file":"public-types.js","sourceRoot":"","sources":["../../../src/core/public-types.ts"],"names":[],"mappings":"AA6KA,MAAM,UAAU,iBAAiB,CAAC,MAAe;IAC7C,OAAO,CACH,CAAC,CAAC,MAAM;QACR,OAAO,MAAM,KAAK,QAAQ;QACzB,MAAyC,CAAC,gBAAgB,KAAK,WAAW,CAC9E,CAAC;AACN,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAe;IACxC,MAAM,SAAS,GAAG,MAAgD,CAAC;IACnE,OAAO,CACH,CAAC,CAAC,SAAS;QACX,SAAS,CAAC,gBAAgB,KAAK,MAAM;QACrC,OAAO,SAAS,CAAC,MAAM,KAAK,QAAQ;QACpC,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ;QACrC,OAAO,SAAS,CAAC,QAAQ,KAAK,QAAQ,CACzC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAe;IAC9C,MAAM,SAAS,GAAG,MAAsD,CAAC;IACzE,OAAO,CACH,CAAC,CAAC,SAAS;QACX,SAAS,CAAC,gBAAgB,KAAK,YAAY;QAC3C,OAAO,SAAS,CAAC,YAAY,KAAK,QAAQ;QAC1C,OAAO,SAAS,CAAC,cAAc,KAAK,QAAQ;QAC5C,OAAO,SAAS,CAAC,cAAc,KAAK,QAAQ,CAC/C,CAAC;AACN,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAe;IAClD,OAAO,kBAAkB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,cAAc,KAAK,MAAM,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAe;IAClD,OAAO,kBAAkB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,cAAc,KAAK,MAAM,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAe;IAC3C,MAAM,SAAS,GAAG,MAAmD,CAAC;IACtE,OAAO,CACH,CAAC,CAAC,SAAS;QACX,SAAS,CAAC,gBAAgB,KAAK,SAAS;QACxC,OAAO,SAAS,CAAC,iBAAiB,KAAK,QAAQ,CAClD,CAAC;AACN,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAAe;IACnD,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAC9D,CAAC"}
@@ -1,5 +1,8 @@
1
- import { isMaskObject } from './public-types.js';
1
+ import { isAnnotationObject, isBaseImageObject, isMaskObject } from './public-types.js';
2
+ import { markAnnotationObject, markBaseImageObject, markMaskObject } from './editor-object-kind.js';
2
3
  export const SNAPSHOT_CUSTOM_KEYS = [
4
+ 'editorObjectKind',
5
+ 'sessionObjectType',
3
6
  'maskId',
4
7
  'maskUid',
5
8
  'maskName',
@@ -16,6 +19,12 @@ export const SNAPSHOT_CUSTOM_KEYS = [
16
19
  'borderColor',
17
20
  'cornerColor',
18
21
  'cornerSize',
22
+ 'isMosaicPreview',
23
+ 'annotationId',
24
+ 'annotationType',
25
+ 'annotationName',
26
+ 'annotationHidden',
27
+ 'annotationLocked',
19
28
  ];
20
29
  function copySnapshotCustomPropsFromCanvas(canvasObjects, jsonObjects) {
21
30
  if (!Array.isArray(jsonObjects))
@@ -25,6 +34,12 @@ function copySnapshotCustomPropsFromCanvas(canvasObjects, jsonObjects) {
25
34
  const jsonObject = jsonObjects[index];
26
35
  if (!liveObject || !jsonObject)
27
36
  continue;
37
+ if (typeof liveObject.editorObjectKind === 'string') {
38
+ jsonObject.editorObjectKind = liveObject.editorObjectKind;
39
+ }
40
+ if (typeof liveObject.sessionObjectType === 'string') {
41
+ jsonObject.sessionObjectType = liveObject.sessionObjectType;
42
+ }
28
43
  if (typeof liveObject.maskId === 'number')
29
44
  jsonObject.maskId = liveObject.maskId;
30
45
  if (typeof liveObject.maskUid === 'string')
@@ -67,6 +82,23 @@ function copySnapshotCustomPropsFromCanvas(canvasObjects, jsonObjects) {
67
82
  jsonObject.isCropRect = true;
68
83
  if (liveObject.maskLabel === true)
69
84
  jsonObject.maskLabel = true;
85
+ if (liveObject.isMosaicPreview === true)
86
+ jsonObject.isMosaicPreview = true;
87
+ if (typeof liveObject.annotationId === 'number') {
88
+ jsonObject.annotationId = liveObject.annotationId;
89
+ }
90
+ if (typeof liveObject.annotationType === 'string') {
91
+ jsonObject.annotationType = liveObject.annotationType;
92
+ }
93
+ if (typeof liveObject.annotationName === 'string') {
94
+ jsonObject.annotationName = liveObject.annotationName;
95
+ }
96
+ if (typeof liveObject.annotationHidden === 'boolean') {
97
+ jsonObject.annotationHidden = liveObject.annotationHidden;
98
+ }
99
+ if (typeof liveObject.annotationLocked === 'boolean') {
100
+ jsonObject.annotationLocked = liveObject.annotationLocked;
101
+ }
70
102
  }
71
103
  }
72
104
  function isActiveSelectionObject(object) {
@@ -77,9 +109,7 @@ function isActiveSelectionObject(object) {
77
109
  return true;
78
110
  const isType = object.isType;
79
111
  return (typeof isType === 'function' &&
80
- (isType.call(object, 'ActiveSelection') ||
81
- isType.call(object, 'activeSelection') ||
82
- isType.call(object, 'activeselection')));
112
+ (isType.call(object, 'ActiveSelection') || isType.call(object, 'activeSelection')));
83
113
  }
84
114
  export function saveState(input) {
85
115
  var _a, _b, _c;
@@ -90,22 +120,34 @@ export function saveState(input) {
90
120
  : typeof input.activeMaskId === 'number'
91
121
  ? input.activeMaskId
92
122
  : null;
123
+ const activeAnnotationId = activeObject && isAnnotationObject(activeObject)
124
+ ? activeObject.annotationId
125
+ : typeof input.activeAnnotationId === 'number'
126
+ ? input.activeAnnotationId
127
+ : null;
93
128
  if (isActiveSelectionObject(activeObject)) {
94
129
  canvas.discardActiveObject();
95
130
  }
96
131
  const jsonObj = canvas.toJSON(SNAPSHOT_CUSTOM_KEYS);
97
132
  copySnapshotCustomPropsFromCanvas(canvas.getObjects(), jsonObj.objects);
98
133
  if (Array.isArray(jsonObj.objects)) {
99
- jsonObj.objects = jsonObj.objects.filter((o) => o.isCropRect !== true && o.maskLabel !== true);
134
+ jsonObj.objects = jsonObj.objects.filter((o) => o.editorObjectKind !== 'session' &&
135
+ o.isCropRect !== true &&
136
+ o.maskLabel !== true &&
137
+ o.isMosaicPreview !== true);
100
138
  }
101
139
  jsonObj._editorState = {
102
140
  currentScale,
103
141
  currentRotation,
104
142
  baseImageScale,
105
143
  currentImageMimeType: (_c = input.currentImageMimeType) !== null && _c !== void 0 ? _c : null,
144
+ activeObjectKind: activeMaskId !== null ? 'mask' : activeAnnotationId !== null ? 'annotation' : null,
106
145
  };
107
146
  if (activeMaskId !== null)
108
147
  jsonObj._editorState.activeMaskId = activeMaskId;
148
+ if (activeAnnotationId !== null) {
149
+ jsonObj._editorState.activeAnnotationId = activeAnnotationId;
150
+ }
109
151
  return JSON.stringify(jsonObj);
110
152
  }
111
153
  export async function loadFromState(input) {
@@ -121,7 +163,7 @@ export async function loadFromState(input) {
121
163
  }
122
164
  await canvas.loadFromJSON(json);
123
165
  const objects = canvas.getObjects();
124
- restoreMaskPropsFromJson(objects, (_a = json.objects) !== null && _a !== void 0 ? _a : []);
166
+ restoreEditorObjectPropsFromJson(objects, (_a = json.objects) !== null && _a !== void 0 ? _a : []);
125
167
  const editorState = json._editorState && typeof json._editorState === 'object'
126
168
  ? {
127
169
  currentScale: typeof json._editorState.currentScale === 'number'
@@ -138,6 +180,16 @@ export async function loadFromState(input) {
138
180
  if (editorState && json._editorState && typeof json._editorState.activeMaskId === 'number') {
139
181
  editorState.activeMaskId = json._editorState.activeMaskId;
140
182
  }
183
+ if (editorState &&
184
+ json._editorState &&
185
+ typeof json._editorState.activeAnnotationId === 'number') {
186
+ editorState.activeAnnotationId = json._editorState.activeAnnotationId;
187
+ }
188
+ if (editorState && json._editorState && 'activeObjectKind' in json._editorState) {
189
+ const kind = json._editorState.activeObjectKind;
190
+ editorState.activeObjectKind =
191
+ kind === 'mask' || kind === 'annotation' || kind === null ? kind : null;
192
+ }
141
193
  if (editorState && json._editorState && 'currentImageMimeType' in json._editorState) {
142
194
  const mimeType = json._editorState.currentImageMimeType;
143
195
  editorState.currentImageMimeType =
@@ -148,29 +200,54 @@ export async function loadFromState(input) {
148
200
  const maxMaskId = objects
149
201
  .filter(isMaskObject)
150
202
  .reduce((max, maskObject) => Math.max(max, maskObject.maskId), 0);
151
- const originalImage = ((_b = objects.find(isOriginalImageObject)) !== null && _b !== void 0 ? _b : null);
203
+ const maxAnnotationId = objects
204
+ .filter(isAnnotationObject)
205
+ .reduce((max, annotationObject) => Math.max(max, annotationObject.annotationId), 0);
206
+ const masks = objects.filter(isMaskObject);
207
+ const annotations = objects.filter(isAnnotationObject);
208
+ const originalImage = (_b = objects.find(isBaseImageObject)) !== null && _b !== void 0 ? _b : null;
152
209
  return {
153
210
  editorState,
154
211
  maxMaskId,
212
+ maxAnnotationId,
155
213
  originalImage,
156
214
  objects,
215
+ masks,
216
+ annotations,
157
217
  jsonString,
158
218
  };
159
219
  }
160
- function isOriginalImageObject(object) {
161
- if (isMaskObject(object))
162
- return false;
163
- const type = typeof object.type === 'string' ? object.type.toLowerCase() : '';
164
- if (type === 'image')
165
- return true;
166
- const isType = object.isType;
167
- return typeof isType === 'function' && isType.call(object, 'image');
168
- }
169
- function restoreMaskPropsFromJson(canvasObjs, jsonObjs) {
170
- var _a, _b, _c, _d, _e;
220
+ function restoreEditorObjectPropsFromJson(canvasObjs, jsonObjs) {
221
+ var _a, _b, _c, _d;
222
+ jsonObjs.forEach((jObj, index) => {
223
+ const canvasObj = canvasObjs[index];
224
+ if (!canvasObj)
225
+ return;
226
+ if (jObj.editorObjectKind === 'baseImage') {
227
+ markBaseImageObject(canvasObj);
228
+ return;
229
+ }
230
+ if (jObj.editorObjectKind === 'annotation' &&
231
+ typeof jObj.annotationId === 'number' &&
232
+ typeof jObj.annotationType === 'string' &&
233
+ typeof jObj.annotationName === 'string') {
234
+ markAnnotationObject(canvasObj, {
235
+ annotationId: jObj.annotationId,
236
+ annotationType: jObj.annotationType === 'draw' ? 'draw' : 'text',
237
+ annotationName: jObj.annotationName,
238
+ annotationHidden: typeof jObj.annotationHidden === 'boolean' ? jObj.annotationHidden : false,
239
+ annotationLocked: typeof jObj.annotationLocked === 'boolean' ? jObj.annotationLocked : false,
240
+ });
241
+ return;
242
+ }
243
+ if (jObj.editorObjectKind === 'session' && typeof jObj.sessionObjectType === 'string') {
244
+ canvasObj.editorObjectKind = 'session';
245
+ canvasObj.sessionObjectType = jObj.sessionObjectType;
246
+ }
247
+ });
171
248
  const consumedCanvasIndexes = new Set();
172
249
  for (const jObj of jsonObjs) {
173
- if (typeof jObj.maskId !== 'number')
250
+ if (jObj.editorObjectKind !== 'mask' || typeof jObj.maskId !== 'number')
174
251
  continue;
175
252
  const jType = String((_a = jObj.type) !== null && _a !== void 0 ? _a : '');
176
253
  const jLeft = Number((_b = jObj.left) !== null && _b !== void 0 ? _b : 0);
@@ -199,15 +276,19 @@ function restoreMaskPropsFromJson(canvasObjs, jsonObjs) {
199
276
  consumedCanvasIndexes.add(matchIndex);
200
277
  const match = canvasObjs[matchIndex];
201
278
  const maskObject = match;
202
- maskObject.maskId = jObj.maskId;
203
- if (typeof jObj.maskUid === 'string') {
204
- maskObject.maskUid = jObj.maskUid;
205
- }
206
- maskObject.maskName = String((_d = jObj.maskName) !== null && _d !== void 0 ? _d : '');
207
- maskObject.originalAlpha =
208
- typeof jObj.originalAlpha === 'number'
279
+ const originalStroke = 'originalStroke' in jObj
280
+ ? jObj.originalStroke
281
+ : undefined;
282
+ markMaskObject(maskObject, {
283
+ maskId: jObj.maskId,
284
+ maskUid: typeof jObj.maskUid === 'string' ? jObj.maskUid : `mask-${jObj.maskId}`,
285
+ maskName: typeof jObj.maskName === 'string' ? jObj.maskName : '',
286
+ originalAlpha: typeof jObj.originalAlpha === 'number'
209
287
  ? jObj.originalAlpha
210
- : ((_e = maskObject.opacity) !== null && _e !== void 0 ? _e : 0.5);
288
+ : ((_d = maskObject.opacity) !== null && _d !== void 0 ? _d : 0.5),
289
+ originalStroke,
290
+ originalStrokeWidth: typeof jObj.originalStrokeWidth === 'number' ? jObj.originalStrokeWidth : undefined,
291
+ });
211
292
  if ('originalStroke' in jObj) {
212
293
  maskObject.originalStroke = jObj.originalStroke;
213
294
  }
@@ -1 +1 @@
1
- {"version":3,"file":"state-serializer.js","sourceRoot":"","sources":["../../../src/core/state-serializer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state-serializer.js","sourceRoot":"","sources":["../../../src/core/state-serializer.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { CropApplyError } from '../core/errors.js';
2
+ import { markSessionObject } from '../core/editor-object-kind.js';
2
3
  import { isMaskObject } from '../core/public-types.js';
3
4
  import { Command } from '../history/history-manager.js';
4
5
  import { applyCropHideMaskStyle, captureMaskStyleBackup, reattachMaskHoverHandlers, restoreMaskStyleBackup, } from '../mask/mask-style.js';
@@ -118,14 +119,16 @@ function maskIntersectsRegion(mask, region) {
118
119
  function capturePreservedMasks(canvas, cropRegion, maskBackups = []) {
119
120
  var _a;
120
121
  const records = [];
121
- const styleBackupByMask = new Map(maskBackups.map((backup) => [backup.object, backup]));
122
+ const styleBackupByMask = maskBackups.length > 0
123
+ ? new Map(maskBackups.map((backup) => [backup.object, backup]))
124
+ : null;
122
125
  const masks = canvas.getObjects().filter(isMaskObject);
123
126
  for (const mask of masks) {
124
127
  try {
125
128
  mask.setCoords();
126
129
  const intersects = maskIntersectsRegion(mask, cropRegion);
127
130
  if (intersects) {
128
- const styleBackup = (_a = styleBackupByMask.get(mask)) !== null && _a !== void 0 ? _a : captureMaskStyleBackup(mask);
131
+ const styleBackup = (_a = styleBackupByMask === null || styleBackupByMask === void 0 ? void 0 : styleBackupByMask.get(mask)) !== null && _a !== void 0 ? _a : captureMaskStyleBackup(mask);
129
132
  records.push({
130
133
  mask,
131
134
  left: finiteNumberOrFallback(mask.left, 0),
@@ -234,6 +237,7 @@ export function enterCropMode(context) {
234
237
  cropRect.setControlVisible('mtr', false);
235
238
  }
236
239
  canvas.add(cropRect);
240
+ markSessionObject(cropRect, 'cropRect');
237
241
  cropRect.isCropRect = true;
238
242
  canvas.bringObjectToFront(cropRect);
239
243
  canvas.setActiveObject(cropRect);