@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
@@ -1 +1 @@
1
- {"version":3,"file":"crop-controller.js","sourceRoot":"","sources":["../../../src/crop/crop-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crop-controller.js","sourceRoot":"","sources":["../../../src/crop/crop-controller.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"export-format.js","sourceRoot":"","sources":["../../../src/export/export-format.ts"],"names":[],"mappings":"AAoEA,MAAM,kBAAkB,GAAoD,MAAM,CAAC,MAAM,CAAC;IACtF,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,MAAM;IACX,YAAY,EAAE,MAAM;IACpB,GAAG,EAAE,KAAK;IACV,WAAW,EAAE,KAAK;IAClB,IAAI,EAAE,MAAM;IACZ,YAAY,EAAE,MAAM;CACvB,CAAC,CAAC;AAQH,MAAM,UAAU,GAA2D,MAAM,CAAC,MAAM,CAAC;IACrF,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,WAAW;IAChB,IAAI,EAAE,YAAY;CACrB,CAAC,CAAC;AAkBH,MAAM,UAAU,oBAAoB,CAAC,KAAqB;;IACtD,OAAO,MAAA,uBAAuB,CAAC,KAAK,CAAC,mCAAI,MAAM,CAAC;AACpD,CAAC;AASD,MAAM,UAAU,uBAAuB,CAAC,KAAqB;;IAGzD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IACxC,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,CAAC,EAAE,CAAC;QAChE,OAAO,MAAA,kBAAkB,CAAC,GAAG,CAAC,mCAAI,IAAI,CAAC;IAC3C,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAWD,MAAM,UAAU,WAAW,CAAC,MAA6B;IACrD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAoBD,MAAM,UAAU,YAAY,CAAC,OAAgB,EAAE,QAAgB;IAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC/C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAC7C,CAAC;AA6BD,MAAM,UAAU,mBAAmB,CAC/B,OAIU,EACV,iBAAyB;;IAEzB,MAAM,eAAe,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;IAItC,MAAM,QAAQ,GAAI,eAAuC,CAAC,QAAQ,CAAC;IACnE,MAAM,WAAW,GAAI,eAAuC,CAAC,MAAM,CAAC;IACpE,MAAM,SAAS,GAAG,QAAQ,IAAI,WAAW,CAAC;IAE1C,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAErC,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QAInB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IACpD,CAAC;IASD,MAAM,UAAU,GAAG,MAAA,eAAe,CAAC,OAAO,mCAAI,iBAAiB,CAAC;IAChE,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IAE5D,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"export-format.js","sourceRoot":"","sources":["../../../src/export/export-format.ts"],"names":[],"mappings":"AAwCA,MAAM,kBAAkB,GAAoD,MAAM,CAAC,MAAM,CAAC;IACtF,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,MAAM;IACX,YAAY,EAAE,MAAM;IACpB,GAAG,EAAE,KAAK;IACV,WAAW,EAAE,KAAK;IAClB,IAAI,EAAE,MAAM;IACZ,YAAY,EAAE,MAAM;CACvB,CAAC,CAAC;AAQH,MAAM,UAAU,GAA2D,MAAM,CAAC,MAAM,CAAC;IACrF,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,WAAW;IAChB,IAAI,EAAE,YAAY;CACrB,CAAC,CAAC;AAkBH,MAAM,UAAU,oBAAoB,CAAC,KAAqB;;IACtD,OAAO,MAAA,uBAAuB,CAAC,KAAK,CAAC,mCAAI,MAAM,CAAC;AACpD,CAAC;AASD,MAAM,UAAU,uBAAuB,CAAC,KAAqB;;IAGzD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IACxC,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,CAAC,EAAE,CAAC;QAChE,OAAO,MAAA,kBAAkB,CAAC,GAAG,CAAC,mCAAI,IAAI,CAAC;IAC3C,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAWD,MAAM,UAAU,WAAW,CAAC,MAA6B;IACrD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAoBD,MAAM,UAAU,YAAY,CAAC,OAAgB,EAAE,QAAgB;IAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC/C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAC7C,CAAC;AA6BD,MAAM,UAAU,mBAAmB,CAC/B,OAIU,EACV,iBAAyB;;IAEzB,MAAM,eAAe,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;IAItC,MAAM,QAAQ,GAAI,eAAuC,CAAC,QAAQ,CAAC;IACnE,MAAM,WAAW,GAAI,eAAuC,CAAC,MAAM,CAAC;IACpE,MAAM,SAAS,GAAG,QAAQ,IAAI,WAAW,CAAC;IAE1C,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAErC,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QAInB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IACpD,CAAC;IASD,MAAM,UAAU,GAAG,MAAA,eAAe,CAAC,OAAO,mCAAI,iBAAiB,CAAC;IAChE,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IAE5D,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AACzC,CAAC"}
@@ -1,10 +1,11 @@
1
- import { isMaskObject } from '../core/public-types.js';
1
+ import { isAnnotationObject, isMaskObject, isSessionObject } from '../core/public-types.js';
2
2
  import { reportError } from '../core/callback-reporter.js';
3
- import { ExportError, ExportNotReadyError, MergeMasksError } from '../core/errors.js';
4
- import { Command } from '../history/history-manager.js';
3
+ import { ExportError, ExportNotReadyError } from '../core/errors.js';
5
4
  import { withMaskStyleBackup } from '../mask/mask-style.js';
6
5
  import { getClampedCanvasRegion, getObjectBBox, getPartialExportEdges, hasMeaningfulCanvasRegion, } from '../utils/canvas-region.js';
6
+ import { startImageElementLoad } from '../utils/image-element-loader.js';
7
7
  import { resolveExportFormat } from './export-format.js';
8
+ import { flattenOverlayGroupToBaseImage, } from './overlay-merge-service.js';
8
9
  function resolveMultiplier(requested, fallback) {
9
10
  const num = Number(requested);
10
11
  if (Number.isFinite(num) && num > 0)
@@ -21,13 +22,31 @@ function resolveExportOptions(context, options) {
21
22
  const providedOptions = options !== null && options !== void 0 ? options : {};
22
23
  return {
23
24
  exportArea: resolveExportArea(providedOptions.exportArea, context.options.exportAreaByDefault),
24
- mergeMask: typeof providedOptions.mergeMask === 'boolean'
25
- ? providedOptions.mergeMask
26
- : context.options.mergeMaskByDefault,
25
+ mergeMasks: typeof providedOptions.mergeMasks === 'boolean'
26
+ ? providedOptions.mergeMasks
27
+ : context.options.mergeMasksByDefault,
28
+ mergeAnnotations: typeof providedOptions.mergeAnnotations === 'boolean'
29
+ ? providedOptions.mergeAnnotations
30
+ : context.options.mergeAnnotationsByDefault,
27
31
  multiplier: resolveMultiplier(providedOptions.multiplier, context.options.exportMultiplier),
28
32
  format: resolveExportFormat(providedOptions, context.options.downsampleQuality),
29
33
  };
30
34
  }
35
+ function resolveDownloadOptions(context, options) {
36
+ var _a;
37
+ const providedOptions = typeof options === 'string'
38
+ ? { fileName: options }
39
+ : (options !== null && options !== void 0 ? options : {});
40
+ return {
41
+ fileName: (_a = providedOptions.fileName) !== null && _a !== void 0 ? _a : context.options.defaultDownloadFileName,
42
+ exportOptions: {
43
+ exportArea: context.options.exportAreaByDefault,
44
+ mergeMasks: providedOptions.mergeMasks,
45
+ mergeAnnotations: providedOptions.mergeAnnotations,
46
+ multiplier: context.options.exportMultiplier,
47
+ },
48
+ };
49
+ }
31
50
  function readCanvasDimension(canvas, getterName, propertyName) {
32
51
  const canvasLike = canvas;
33
52
  const getter = canvasLike[getterName];
@@ -67,25 +86,26 @@ function computeExportRegion(context, exportArea) {
67
86
  partialEdges: getPartialExportEdges(bounds, Number(originalImage.angle) || 0),
68
87
  };
69
88
  }
70
- async function withMaskExportState(context, mergeMask, callback) {
71
- if (!mergeMask)
72
- return withMasksHidden(context, callback);
89
+ async function withMaskExportState(context, mergeMasks, callback) {
90
+ if (!mergeMasks) {
91
+ return withObjectsHidden(context.canvas, isMaskObject, callback);
92
+ }
73
93
  return withMaskStyleBackup({ canvas: context.canvas, options: context.options }, applyExportBakeInStyle, callback);
74
94
  }
75
- async function withMasksHidden(context, callback) {
76
- const backups = getCanvasObjects(context.canvas)
77
- .filter(isMaskObject)
78
- .map((mask) => ({
79
- mask,
80
- visible: mask.visible,
95
+ async function withObjectsHidden(canvas, predicate, callback) {
96
+ const backups = getCanvasObjects(canvas)
97
+ .filter(predicate)
98
+ .map((object) => ({
99
+ object,
100
+ visible: object.visible,
81
101
  }));
82
102
  for (const backup of backups) {
83
103
  try {
84
- if (typeof backup.mask.set === 'function') {
85
- backup.mask.set({ visible: false });
104
+ if (typeof backup.object.set === 'function') {
105
+ backup.object.set({ visible: false });
86
106
  }
87
107
  else {
88
- backup.mask.visible = false;
108
+ backup.object.visible = false;
89
109
  }
90
110
  }
91
111
  catch {
@@ -97,18 +117,31 @@ async function withMasksHidden(context, callback) {
97
117
  finally {
98
118
  for (const backup of backups) {
99
119
  try {
100
- if (typeof backup.mask.set === 'function') {
101
- backup.mask.set({ visible: backup.visible });
120
+ if (typeof backup.object.set === 'function') {
121
+ backup.object.set({ visible: backup.visible });
102
122
  }
103
123
  else {
104
- backup.mask.visible = backup.visible;
124
+ backup.object.visible = backup.visible;
105
125
  }
106
126
  }
107
127
  catch {
108
128
  }
109
129
  }
130
+ requestRender(canvas);
110
131
  }
111
132
  }
133
+ async function withSessionObjectsHidden(context, callback) {
134
+ return withObjectsHidden(context.canvas, (object) => isSessionObject(object) ||
135
+ object.isCropRect === true ||
136
+ object.maskLabel === true ||
137
+ object.isMosaicPreview === true, callback);
138
+ }
139
+ async function withAnnotationsExportState(context, mergeAnnotations, callback) {
140
+ if (!mergeAnnotations) {
141
+ return withObjectsHidden(context.canvas, isAnnotationObject, callback);
142
+ }
143
+ return withObjectsHidden(context.canvas, (object) => isAnnotationObject(object) && object.annotationHidden === true, callback);
144
+ }
112
145
  function getCanvasObjects(canvas) {
113
146
  try {
114
147
  return canvas.getObjects();
@@ -241,44 +274,17 @@ function getImageDimensions(imageElement) {
241
274
  };
242
275
  }
243
276
  function loadImageElement(dataUrl) {
244
- return new Promise((resolve, reject) => {
245
- const imageElement = new Image();
246
- imageElement.crossOrigin = 'anonymous';
247
- const cleanup = () => {
248
- if (typeof imageElement.removeEventListener === 'function') {
249
- imageElement.removeEventListener('load', handleLoad);
250
- imageElement.removeEventListener('error', handleError);
251
- }
252
- else {
253
- imageElement.onload = null;
254
- imageElement.onerror = null;
255
- }
256
- };
257
- const handleLoad = () => {
258
- cleanup();
259
- resolve(imageElement);
260
- };
261
- const handleError = () => {
262
- cleanup();
263
- reject(new Error('Failed to decode export data URL'));
264
- };
265
- if (typeof imageElement.addEventListener === 'function') {
266
- imageElement.addEventListener('load', handleLoad, { once: true });
267
- imageElement.addEventListener('error', handleError, { once: true });
268
- }
269
- else {
270
- imageElement.onload = handleLoad;
271
- imageElement.onerror = handleError;
272
- }
273
- imageElement.src = dataUrl;
274
- });
277
+ return startImageElementLoad(dataUrl, {
278
+ crossOrigin: 'anonymous',
279
+ createError: () => new Error('Failed to decode export data URL'),
280
+ }).promise;
275
281
  }
276
- async function sealPartialTransparentEdges(dataUrl, edges) {
282
+ async function sealPartialTransparentEdges(dataUrl, edges, target, ownerDocument) {
277
283
  if (!hasPartialEdges(edges))
278
284
  return dataUrl;
279
285
  const imageElement = await loadImageElement(dataUrl);
280
286
  const { width, height } = getImageDimensions(imageElement);
281
- const offscreenCanvas = document.createElement('canvas');
287
+ const offscreenCanvas = ownerDocument.createElement('canvas');
282
288
  offscreenCanvas.width = width;
283
289
  offscreenCanvas.height = height;
284
290
  const canvasContext = offscreenCanvas.getContext('2d');
@@ -321,16 +327,18 @@ async function sealPartialTransparentEdges(dataUrl, edges) {
321
327
  sealPixel(x, height - 1, x, height - 2);
322
328
  }
323
329
  canvasContext.putImageData(imageData, 0, 0);
324
- return offscreenCanvas.toDataURL('image/png');
330
+ return target.quality === undefined
331
+ ? offscreenCanvas.toDataURL(target.mimeType)
332
+ : offscreenCanvas.toDataURL(target.mimeType, target.quality);
325
333
  }
326
- function getJpegBackgroundColor(backgroundColor) {
327
- return resolveCanvasFillStyle(backgroundColor);
334
+ function getJpegBackgroundColor(backgroundColor, ownerDocument) {
335
+ return resolveCanvasFillStyle(backgroundColor, ownerDocument);
328
336
  }
329
- function resolveCanvasFillStyle(backgroundColor, fallback = '#ffffff') {
337
+ function resolveCanvasFillStyle(backgroundColor, ownerDocument, fallback = '#ffffff') {
330
338
  const value = String(backgroundColor !== null && backgroundColor !== void 0 ? backgroundColor : '').trim();
331
339
  if (!value || isTransparentCssColor(value))
332
340
  return '#ffffff';
333
- const context = createColorValidationContext();
341
+ const context = createColorValidationContext(ownerDocument);
334
342
  if (!context)
335
343
  return fallback;
336
344
  context.fillStyle = '#000001';
@@ -347,17 +355,24 @@ function resolveCanvasFillStyle(backgroundColor, fallback = '#ffffff') {
347
355
  return secondResolved;
348
356
  return fallback;
349
357
  }
350
- function createColorValidationContext() {
358
+ function createColorValidationContext(ownerDocument) {
351
359
  try {
352
- if (typeof document === 'undefined' || typeof document.createElement !== 'function') {
353
- return null;
354
- }
355
- return document.createElement('canvas').getContext('2d');
360
+ return ownerDocument.createElement('canvas').getContext('2d');
356
361
  }
357
362
  catch {
358
363
  return null;
359
364
  }
360
365
  }
366
+ function getCanvasDocument(canvas) {
367
+ var _a, _b, _c, _d;
368
+ const canvasLike = canvas;
369
+ const ownerDocument = (_c = (_b = (_a = canvasLike.getElement) === null || _a === void 0 ? void 0 : _a.call(canvasLike)) === null || _b === void 0 ? void 0 : _b.ownerDocument) !== null && _c !== void 0 ? _c : (_d = canvasLike.lowerCanvasEl) === null || _d === void 0 ? void 0 : _d.ownerDocument;
370
+ if (ownerDocument)
371
+ return ownerDocument;
372
+ if (typeof document !== 'undefined')
373
+ return document;
374
+ throw new Error('Document is unavailable for export canvas creation.');
375
+ }
361
376
  function isTransparentCssColor(value) {
362
377
  const normalized = value.trim().toLowerCase();
363
378
  if (normalized === 'transparent')
@@ -385,28 +400,27 @@ function isZeroCssAlpha(value) {
385
400
  const numericAlpha = Number.parseFloat(alpha);
386
401
  return Number.isFinite(numericAlpha) && numericAlpha === 0;
387
402
  }
388
- async function convertDataUrlToOpaqueJpeg(dataUrl, backgroundColor, quality) {
403
+ async function convertDataUrlToOpaqueJpeg(dataUrl, backgroundColor, quality, ownerDocument) {
389
404
  const imageElement = await loadImageElement(dataUrl);
390
405
  const { width, height } = getImageDimensions(imageElement);
391
- const offscreenCanvas = document.createElement('canvas');
406
+ const offscreenCanvas = ownerDocument.createElement('canvas');
392
407
  offscreenCanvas.width = width;
393
408
  offscreenCanvas.height = height;
394
409
  const canvasContext = offscreenCanvas.getContext('2d');
395
410
  if (!canvasContext)
396
411
  throw new Error('2D canvas context is unavailable');
397
- canvasContext.fillStyle = getJpegBackgroundColor(backgroundColor);
412
+ canvasContext.fillStyle = getJpegBackgroundColor(backgroundColor, ownerDocument);
398
413
  canvasContext.fillRect(0, 0, width, height);
399
414
  canvasContext.drawImage(imageElement, 0, 0, width, height);
400
415
  return offscreenCanvas.toDataURL('image/jpeg', quality);
401
416
  }
402
417
  function dataUrlToBytes(dataUrl) {
403
418
  var _a;
404
- const match = /^data:image\/[a-z0-9.+-]+;base64,([A-Za-z0-9+/=\s]+)$/i.exec(dataUrl);
405
- if (!match || !((_a = match[1]) === null || _a === void 0 ? void 0 : _a.trim())) {
419
+ const match = /^data:image\/[a-z0-9.+-]+;base64,([A-Za-z0-9+/=]+)$/i.exec(dataUrl);
420
+ const base64 = (_a = match === null || match === void 0 ? void 0 : match[1]) !== null && _a !== void 0 ? _a : '';
421
+ if (!base64) {
406
422
  throw new Error('exportImageFile received a malformed or empty image data URL.');
407
423
  }
408
- const commaAt = dataUrl.indexOf(',');
409
- const base64 = dataUrl.slice(commaAt + 1).replace(/\s/g, '');
410
424
  if (typeof globalThis.atob === 'function') {
411
425
  const binary = globalThis.atob(base64);
412
426
  const buffer = new ArrayBuffer(binary.length);
@@ -426,13 +440,14 @@ function dataUrlToBytes(dataUrl) {
426
440
  }
427
441
  throw new Error('No base64 decoder is available for exportImageFile.');
428
442
  }
429
- async function reencodeDataUrlAs(sourceDataUrl, target, backgroundColor) {
443
+ async function reencodeDataUrlAs(sourceDataUrl, target, backgroundColor, canvas) {
430
444
  if (sourceDataUrl.startsWith(`data:${target.mimeType}`)) {
431
445
  return sourceDataUrl;
432
446
  }
433
447
  const imageElement = await loadImageElement(sourceDataUrl);
434
448
  const { width, height } = getImageDimensions(imageElement);
435
- const offscreenCanvas = document.createElement('canvas');
449
+ const ownerDocument = getCanvasDocument(canvas);
450
+ const offscreenCanvas = ownerDocument.createElement('canvas');
436
451
  offscreenCanvas.width = width;
437
452
  offscreenCanvas.height = height;
438
453
  const canvasContext = offscreenCanvas.getContext('2d');
@@ -440,7 +455,7 @@ async function reencodeDataUrlAs(sourceDataUrl, target, backgroundColor) {
440
455
  throw new Error('Unable to acquire 2D context for export conversion');
441
456
  }
442
457
  if (target.format === 'jpeg') {
443
- canvasContext.fillStyle = getJpegBackgroundColor(backgroundColor);
458
+ canvasContext.fillStyle = getJpegBackgroundColor(backgroundColor, ownerDocument);
444
459
  canvasContext.fillRect(0, 0, width, height);
445
460
  }
446
461
  canvasContext.drawImage(imageElement, 0, 0, width, height);
@@ -463,11 +478,16 @@ export async function exportImageBase64(context, options) {
463
478
  assertExportPixelBudget(context, resolved.multiplier, region);
464
479
  const renderFormat = region && resolved.format.format === 'jpeg' ? 'png' : resolved.format.format;
465
480
  const renderQuality = renderFormat === 'png' ? undefined : resolved.format.quality;
466
- let dataUrl = await withMaskExportState(context, resolved.mergeMask, async () => renderCanvasToDataUrl(context.canvas, renderFormat, renderQuality, resolved.multiplier, region));
481
+ let dataUrl = await withSessionObjectsHidden(context, async () => withMaskExportState(context, resolved.mergeMasks, async () => withAnnotationsExportState(context, resolved.mergeAnnotations, async () => renderCanvasToDataUrl(context.canvas, renderFormat, renderQuality, resolved.multiplier, region))));
467
482
  if (region) {
468
- dataUrl = await sealPartialTransparentEdges(dataUrl, partialEdges);
483
+ const sealedFormat = resolved.format.format === 'jpeg'
484
+ ? { format: 'png', mimeType: 'image/png', quality: undefined }
485
+ : resolved.format;
486
+ if (hasPartialEdges(partialEdges)) {
487
+ dataUrl = await sealPartialTransparentEdges(dataUrl, partialEdges, sealedFormat, getCanvasDocument(context.canvas));
488
+ }
469
489
  if (resolved.format.format === 'jpeg') {
470
- dataUrl = await convertDataUrlToOpaqueJpeg(dataUrl, context.options.backgroundColor, resolved.format.quality);
490
+ dataUrl = await convertDataUrlToOpaqueJpeg(dataUrl, context.options.backgroundColor, resolved.format.quality, getCanvasDocument(context.canvas));
471
491
  }
472
492
  }
473
493
  return dataUrl;
@@ -489,7 +509,8 @@ export async function exportImageFile(context, options) {
489
509
  const resolved = resolveExportFormat(providedOptions, context.options.downsampleQuality);
490
510
  const base64 = await exportImageBase64(context, {
491
511
  exportArea: providedOptions.exportArea,
492
- mergeMask: providedOptions.mergeMask,
512
+ mergeMasks: providedOptions.mergeMasks,
513
+ mergeAnnotations: providedOptions.mergeAnnotations,
493
514
  multiplier: providedOptions.multiplier,
494
515
  quality: providedOptions.quality,
495
516
  fileType: providedOptions.fileType,
@@ -497,7 +518,7 @@ export async function exportImageFile(context, options) {
497
518
  if (!base64) {
498
519
  throw new ExportNotReadyError('exportImageFile');
499
520
  }
500
- const finalDataUrl = await reencodeDataUrlAs(base64, resolved, context.options.backgroundColor);
521
+ const finalDataUrl = await reencodeDataUrlAs(base64, resolved, context.options.backgroundColor, context.canvas);
501
522
  let bytes;
502
523
  try {
503
524
  bytes = dataUrlToBytes(finalDataUrl);
@@ -507,29 +528,27 @@ export async function exportImageFile(context, options) {
507
528
  }
508
529
  return new File([bytes], fileName, { type: resolved.mimeType });
509
530
  }
510
- export function downloadImage(context, fileName) {
531
+ export function downloadImage(context, options) {
511
532
  if (!context.isImageLoaded()) {
512
533
  warnNoImageLoaded('downloadImage');
513
534
  return;
514
535
  }
515
- const resolvedFileName = fileName !== null && fileName !== void 0 ? fileName : context.options.defaultDownloadFileName;
516
- void exportImageBase64(context, {
517
- exportArea: context.options.exportAreaByDefault,
518
- mergeMask: context.options.mergeMaskByDefault,
519
- multiplier: context.options.exportMultiplier,
520
- })
536
+ const resolved = resolveDownloadOptions(context, options);
537
+ void exportImageBase64(context, resolved.exportOptions)
521
538
  .then((dataUrl) => {
522
539
  if (!dataUrl)
523
540
  return;
524
- const link = document.createElement('a');
525
- link.download = resolvedFileName;
541
+ const ownerDocument = getCanvasDocument(context.canvas);
542
+ const link = ownerDocument.createElement('a');
543
+ link.download = resolved.fileName;
526
544
  link.href = dataUrl;
527
- document.body.appendChild(link);
545
+ const body = ownerDocument.body;
546
+ body.appendChild(link);
528
547
  try {
529
548
  link.click();
530
549
  }
531
550
  finally {
532
- document.body.removeChild(link);
551
+ body.removeChild(link);
533
552
  }
534
553
  })
535
554
  .catch((error) => {
@@ -538,59 +557,39 @@ export function downloadImage(context, fileName) {
538
557
  });
539
558
  }
540
559
  export async function mergeMasks(context) {
541
- if (!context.isImageLoaded())
542
- return;
543
- const masks = context.canvas
544
- .getObjects()
545
- .filter((o) => 'maskId' in o && typeof o.maskId === 'number');
546
- if (masks.length === 0)
547
- return;
548
- const beforeSnapshot = context.saveState();
549
- context.canvas.discardActiveObject();
550
- context.canvas.renderAll();
551
- const preScrollTop = context.containerElement ? context.containerElement.scrollTop : null;
552
- const preScrollLeft = context.containerElement ? context.containerElement.scrollLeft : null;
553
- try {
554
- const merged = await exportImageBase64(context, {
560
+ await flattenOverlayGroupToBaseImage(context, {
561
+ operation: 'mergeMasks',
562
+ exportOptions: {
555
563
  exportArea: 'image',
556
- mergeMask: true,
564
+ mergeMasks: true,
565
+ mergeAnnotations: false,
557
566
  multiplier: context.options.exportMultiplier,
558
567
  fileType: 'png',
559
- });
560
- if (!merged) {
561
- throw new MergeMasksError('mergeMasks: exportImageBase64 returned an empty data URL.');
562
- }
563
- context.removeAllMasksNoHistory();
564
- await context.loadImage(merged, { preserveScroll: true });
565
- const afterSnapshot = context.saveState();
566
- if (context.containerElement) {
567
- try {
568
- if (preScrollTop !== null) {
569
- context.containerElement.scrollTop = preScrollTop;
570
- }
571
- if (preScrollLeft !== null) {
572
- context.containerElement.scrollLeft = preScrollLeft;
573
- }
574
- }
575
- catch (scrollError) {
576
- console.warn('[ImageEditor] mergeMasks: scroll restore failed', scrollError);
577
- }
578
- }
579
- if (beforeSnapshot && afterSnapshot && beforeSnapshot !== afterSnapshot) {
580
- context.historyManager.push(new Command(() => context.loadFromState(afterSnapshot), () => context.loadFromState(beforeSnapshot)));
581
- }
582
- }
583
- catch (error) {
584
- try {
585
- await context.loadFromState(beforeSnapshot);
586
- }
587
- catch (rollbackError) {
588
- console.warn('[ImageEditor] mergeMasks: rollback failed', rollbackError);
589
- }
590
- if (error instanceof MergeMasksError)
591
- throw error;
592
- const message = error instanceof Error ? `mergeMasks failed: ${error.message}` : 'mergeMasks failed';
593
- throw new MergeMasksError(message, error);
594
- }
568
+ },
569
+ getTargets: () => context.canvas.getObjects().filter(isMaskObject),
570
+ getPreservedObjects: () => context.getAnnotations(),
571
+ removeTargetsNoHistory: () => {
572
+ context.removeAllMasksNoHistory();
573
+ },
574
+ restorePreservedObjects: (objects) => context.restoreAnnotations(objects),
575
+ });
576
+ }
577
+ export async function mergeAnnotations(context) {
578
+ await flattenOverlayGroupToBaseImage(context, {
579
+ operation: 'mergeAnnotations',
580
+ exportOptions: {
581
+ exportArea: 'image',
582
+ mergeMasks: false,
583
+ mergeAnnotations: true,
584
+ multiplier: context.options.exportMultiplier,
585
+ fileType: 'png',
586
+ },
587
+ getTargets: () => context.canvas.getObjects().filter(isAnnotationObject),
588
+ getPreservedObjects: () => context.getMasks(),
589
+ removeTargetsNoHistory: () => {
590
+ context.removeAllAnnotationsNoHistory();
591
+ },
592
+ restorePreservedObjects: (objects) => context.restoreMasks(objects),
593
+ });
595
594
  }
596
595
  //# sourceMappingURL=export-service.js.map