@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.
- package/README.md +346 -90
- package/dist/cjs/index.cjs +4883 -1191
- 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/annotation/annotation-lock.js +7 -0
- package/dist/esm/annotation/annotation-lock.js.map +1 -0
- package/dist/esm/annotation/annotation-manager.js +217 -0
- package/dist/esm/annotation/annotation-manager.js.map +1 -0
- package/dist/esm/annotation/annotation-style.js +50 -0
- package/dist/esm/annotation/annotation-style.js.map +1 -0
- package/dist/esm/annotation/draw-controller.js +114 -0
- package/dist/esm/annotation/draw-controller.js.map +1 -0
- package/dist/esm/annotation/text-controller.js +234 -0
- package/dist/esm/annotation/text-controller.js.map +1 -0
- package/dist/esm/core/default-options.js +447 -11
- package/dist/esm/core/default-options.js.map +1 -1
- package/dist/esm/core/editor-object-kind.js +37 -0
- package/dist/esm/core/editor-object-kind.js.map +1 -0
- package/dist/esm/core/errors.js +19 -0
- package/dist/esm/core/errors.js.map +1 -1
- package/dist/esm/core/layer-order.js +100 -0
- package/dist/esm/core/layer-order.js.map +1 -0
- 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 +34 -1
- package/dist/esm/core/public-types.js.map +1 -1
- package/dist/esm/core/state-serializer.js +108 -27
- package/dist/esm/core/state-serializer.js.map +1 -1
- package/dist/esm/crop/crop-controller.js +6 -2
- package/dist/esm/crop/crop-controller.js.map +1 -1
- package/dist/esm/export/export-format.js.map +1 -1
- package/dist/esm/export/export-service.js +140 -141
- package/dist/esm/export/export-service.js.map +1 -1
- package/dist/esm/export/overlay-merge-service.js +75 -0
- package/dist/esm/export/overlay-merge-service.js.map +1 -0
- package/dist/esm/fabric/fabric-animation.js +56 -4
- package/dist/esm/fabric/fabric-animation.js.map +1 -1
- package/dist/esm/history/history-manager.js +2 -2
- package/dist/esm/history/history-manager.js.map +1 -1
- package/dist/esm/image/image-loader.js +27 -65
- 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 +1474 -135
- package/dist/esm/image-editor.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/mask/mask-factory.js +92 -43
- package/dist/esm/mask/mask-factory.js.map +1 -1
- package/dist/esm/mask/mask-label-manager.js +2 -0
- package/dist/esm/mask/mask-label-manager.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/mask/mask-style.js.map +1 -1
- package/dist/esm/mosaic/mosaic-controller.js +666 -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/image-element-loader.js +55 -0
- package/dist/esm/utils/image-element-loader.js.map +1 -0
- package/dist/esm/utils/number.js.map +1 -1
- package/dist/esm/utils/pointer.js +28 -0
- package/dist/esm/utils/pointer.js.map +1 -0
- package/dist/types/animation/animation-queue.d.ts.map +1 -1
- package/dist/types/annotation/annotation-lock.d.ts +12 -0
- package/dist/types/annotation/annotation-lock.d.ts.map +1 -0
- package/dist/types/annotation/annotation-manager.d.ts +33 -0
- package/dist/types/annotation/annotation-manager.d.ts.map +1 -0
- package/dist/types/annotation/annotation-style.d.ts +13 -0
- package/dist/types/annotation/annotation-style.d.ts.map +1 -0
- package/dist/types/annotation/draw-controller.d.ts +43 -0
- package/dist/types/annotation/draw-controller.d.ts.map +1 -0
- package/dist/types/annotation/text-controller.d.ts +47 -0
- package/dist/types/annotation/text-controller.d.ts.map +1 -0
- package/dist/types/core/default-options.d.ts +46 -6
- package/dist/types/core/default-options.d.ts.map +1 -1
- package/dist/types/core/editor-object-kind.d.ts +29 -0
- package/dist/types/core/editor-object-kind.d.ts.map +1 -0
- package/dist/types/core/errors.d.ts +12 -2
- package/dist/types/core/errors.d.ts.map +1 -1
- package/dist/types/core/layer-order.d.ts +21 -0
- package/dist/types/core/layer-order.d.ts.map +1 -0
- 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 +341 -33
- package/dist/types/core/public-types.d.ts.map +1 -1
- package/dist/types/core/state-serializer.d.ts +32 -5
- package/dist/types/core/state-serializer.d.ts.map +1 -1
- package/dist/types/crop/crop-controller.d.ts +6 -7
- package/dist/types/crop/crop-controller.d.ts.map +1 -1
- package/dist/types/export/export-format.d.ts +5 -33
- package/dist/types/export/export-format.d.ts.map +1 -1
- package/dist/types/export/export-service.d.ts +24 -15
- package/dist/types/export/export-service.d.ts.map +1 -1
- package/dist/types/export/overlay-merge-service.d.ts +38 -0
- package/dist/types/export/overlay-merge-service.d.ts.map +1 -0
- package/dist/types/fabric/fabric-animation.d.ts.map +1 -1
- package/dist/types/history/history-manager.d.ts +11 -14
- package/dist/types/history/history-manager.d.ts.map +1 -1
- package/dist/types/image/image-loader.d.ts +24 -21
- package/dist/types/image/image-loader.d.ts.map +1 -1
- package/dist/types/image/image-resampler.d.ts +2 -2
- 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 +6 -9
- package/dist/types/image/transform-controller.d.ts.map +1 -1
- package/dist/types/image-editor.d.ts +93 -14
- package/dist/types/image-editor.d.ts.map +1 -1
- package/dist/types/index.d.cts +3 -3
- package/dist/types/index.d.cts.map +1 -1
- package/dist/types/index.d.ts +3 -3
- 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-label-manager.d.ts +10 -9
- package/dist/types/mask/mask-label-manager.d.ts.map +1 -1
- package/dist/types/mask/mask-list.d.ts +11 -12
- package/dist/types/mask/mask-list.d.ts.map +1 -1
- package/dist/types/mask/mask-style.d.ts +19 -20
- package/dist/types/mask/mask-style.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/ui/visibility-state.d.ts +2 -2
- package/dist/types/utils/image-element-loader.d.ts +19 -0
- package/dist/types/utils/image-element-loader.d.ts.map +1 -0
- package/dist/types/utils/number.d.ts +1 -2
- package/dist/types/utils/number.d.ts.map +1 -1
- package/dist/types/utils/pointer.d.ts +16 -0
- package/dist/types/utils/pointer.d.ts.map +1 -0
- package/dist/umd/image-editor.umd.js +1 -1
- package/dist/umd/image-editor.umd.js.map +1 -1
- package/package.json +1 -1
|
@@ -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 { DrawConfig, ImageEditorOptions, LabelConfig, LayoutMode, MosaicConfig, ResolvedCropConfig, ResolvedDrawConfig, ResolvedMosaicConfig, ResolvedOptions, ResolvedTextAnnotationConfig, TextAnnotationConfig } 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' | 'defaultTextConfig' | 'defaultDrawConfig'>;
|
|
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,45 @@ 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 const DEFAULT_TEXT_ANNOTATION_CONFIG: ResolvedTextAnnotationConfig;
|
|
42
|
+
export declare const DEFAULT_DRAW_CONFIG: ResolvedDrawConfig;
|
|
43
|
+
export declare function isLayoutMode(value: unknown): value is LayoutMode;
|
|
44
|
+
/**
|
|
45
|
+
* Return a mutable defensive copy of a resolved Mosaic config.
|
|
46
|
+
*/
|
|
47
|
+
export declare function cloneResolvedMosaicConfig(config: ResolvedMosaicConfig): ResolvedMosaicConfig;
|
|
48
|
+
/**
|
|
49
|
+
* Normalize a constructor-level Mosaic config against a resolved fallback.
|
|
50
|
+
*/
|
|
51
|
+
export declare function normalizeMosaicConfig(input: unknown, fallback: ResolvedMosaicConfig): ResolvedMosaicConfig;
|
|
52
|
+
/**
|
|
53
|
+
* Merge a runtime Mosaic config patch into the current resolved config.
|
|
54
|
+
* Omitted fields remain unchanged; invalid fields fall back to `current`.
|
|
55
|
+
*/
|
|
56
|
+
export declare function mergeMosaicConfigPatch(current: ResolvedMosaicConfig, patch: MosaicConfig, fallback?: ResolvedMosaicConfig): ResolvedMosaicConfig;
|
|
57
|
+
/**
|
|
58
|
+
* Returns invalid Mosaic config field names for warning/reporting paths.
|
|
59
|
+
*/
|
|
60
|
+
export declare function getInvalidMosaicConfigFields(input: MosaicConfig): string[];
|
|
61
|
+
/**
|
|
62
|
+
* Strict value equality for resolved Mosaic configs.
|
|
63
|
+
*/
|
|
64
|
+
export declare function areResolvedMosaicConfigsEqual(left: ResolvedMosaicConfig, right: ResolvedMosaicConfig): boolean;
|
|
65
|
+
export declare function cloneResolvedTextAnnotationConfig(config: ResolvedTextAnnotationConfig): ResolvedTextAnnotationConfig;
|
|
66
|
+
export declare function cloneResolvedDrawConfig(config: ResolvedDrawConfig): ResolvedDrawConfig;
|
|
67
|
+
export declare function mergeTextAnnotationConfigPatch(current: ResolvedTextAnnotationConfig, patch: TextAnnotationConfig, fallback?: ResolvedTextAnnotationConfig): ResolvedTextAnnotationConfig;
|
|
68
|
+
export declare function normalizeTextAnnotationConfig(input: unknown, fallback: ResolvedTextAnnotationConfig): ResolvedTextAnnotationConfig;
|
|
69
|
+
export declare function mergeDrawConfigPatch(current: ResolvedDrawConfig, patch: DrawConfig, fallback?: ResolvedDrawConfig): ResolvedDrawConfig;
|
|
70
|
+
export declare function normalizeDrawConfig(input: unknown, fallback: ResolvedDrawConfig): ResolvedDrawConfig;
|
|
71
|
+
export declare function areResolvedTextAnnotationConfigsEqual(left: ResolvedTextAnnotationConfig, right: ResolvedTextAnnotationConfig): boolean;
|
|
72
|
+
export declare function areResolvedDrawConfigsEqual(left: ResolvedDrawConfig, right: ResolvedDrawConfig): boolean;
|
|
73
|
+
export declare function getInvalidTextAnnotationConfigFields(input: TextAnnotationConfig): string[];
|
|
74
|
+
export declare function getInvalidDrawConfigFields(input: DrawConfig): string[];
|
|
35
75
|
/**
|
|
36
76
|
* Resolves a partial {@link ImageEditorOptions} into a fully populated
|
|
37
77
|
* {@link ResolvedOptions} object.
|
|
@@ -46,9 +86,9 @@ export declare const DEFAULT_CROP: ResolvedCropConfig;
|
|
|
46
86
|
* - Callback values are normalized: function values are kept, anything
|
|
47
87
|
* else becomes `null`.
|
|
48
88
|
* - Unknown top-level keys are silently dropped.
|
|
49
|
-
* - The returned `label` and `crop` references
|
|
50
|
-
*
|
|
51
|
-
*
|
|
89
|
+
* - The returned options object plus its `label` and `crop` references
|
|
90
|
+
* are frozen so mutating `input` after the call cannot affect the
|
|
91
|
+
* live editor.
|
|
52
92
|
*
|
|
53
93
|
* @param input - Optional partial options object. Defaults to `{}`.
|
|
54
94
|
*/
|
|
@@ -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,EAGR,UAAU,EAEV,kBAAkB,EAClB,WAAW,EACX,UAAU,EACV,YAAY,EAEZ,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,4BAA4B,EAC5B,oBAAoB,EACvB,MAAM,mBAAmB,CAAC;AAQ3B;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,EAAE,IAAI,CAC9B,eAAe,EACf,OAAO,GAAG,MAAM,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,mBAAmB,CAqEvF,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;AAEH,eAAO,MAAM,8BAA8B,EAAE,4BAmB3C,CAAC;AAEH,eAAO,MAAM,mBAAmB,EAAE,kBAUhC,CAAC;AAwEH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAEhE;AA+ID;;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,wBAAgB,iCAAiC,CAC7C,MAAM,EAAE,4BAA4B,GACrC,4BAA4B,CAK9B;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,kBAAkB,GAAG,kBAAkB,CAEtF;AAgCD,wBAAgB,8BAA8B,CAC1C,OAAO,EAAE,4BAA4B,EACrC,KAAK,EAAE,oBAAoB,EAC3B,QAAQ,GAAE,4BAAsC,GACjD,4BAA4B,CAgD9B;AAED,wBAAgB,6BAA6B,CACzC,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,4BAA4B,GACvC,4BAA4B,CAG9B;AAeD,wBAAgB,oBAAoB,CAChC,OAAO,EAAE,kBAAkB,EAC3B,KAAK,EAAE,UAAU,EACjB,QAAQ,GAAE,kBAA4B,GACvC,kBAAkB,CAsBpB;AAED,wBAAgB,mBAAmB,CAC/B,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,kBAAkB,GAC7B,kBAAkB,CAGpB;AAED,wBAAgB,qCAAqC,CACjD,IAAI,EAAE,4BAA4B,EAClC,KAAK,EAAE,4BAA4B,GACpC,OAAO,CAET;AAED,wBAAgB,2BAA2B,CACvC,IAAI,EAAE,kBAAkB,EACxB,KAAK,EAAE,kBAAkB,GAC1B,OAAO,CAYT;AAED,wBAAgB,oCAAoC,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,EAAE,CAW1F;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,EAAE,CAOtE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,cAAc,CAAC,KAAK,CAAC,EAAE,kBAAkB,GAAG,IAAI,GAAG,eAAe,CAoQjF"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Metadata markers for objects owned by the editor runtime.
|
|
3
|
+
*
|
|
4
|
+
* All base images, masks, annotations, and session-only objects should be
|
|
5
|
+
* marked through these helpers so public type guards can reject legacy
|
|
6
|
+
* duck-typed objects reliably.
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
import type * as FabricNS from 'fabric';
|
|
11
|
+
import type { AnnotationObject, AnnotationType, BaseImageObject, MaskObject, SessionObject, SessionObjectType } from './public-types.js';
|
|
12
|
+
export declare function markBaseImageObject(image: FabricNS.FabricImage): BaseImageObject;
|
|
13
|
+
export declare function markMaskObject(object: FabricNS.FabricObject, meta: {
|
|
14
|
+
maskId: number;
|
|
15
|
+
maskUid: string;
|
|
16
|
+
maskName: string;
|
|
17
|
+
originalAlpha: number;
|
|
18
|
+
originalStroke?: FabricNS.TFiller | string | null;
|
|
19
|
+
originalStrokeWidth?: number;
|
|
20
|
+
}): MaskObject;
|
|
21
|
+
export declare function markAnnotationObject(object: FabricNS.FabricObject, meta: {
|
|
22
|
+
annotationId: number;
|
|
23
|
+
annotationType: AnnotationType;
|
|
24
|
+
annotationName: string;
|
|
25
|
+
annotationHidden?: boolean;
|
|
26
|
+
annotationLocked?: boolean;
|
|
27
|
+
}): AnnotationObject;
|
|
28
|
+
export declare function markSessionObject<T extends FabricNS.FabricObject>(object: T, sessionObjectType: SessionObjectType): T & SessionObject;
|
|
29
|
+
//# sourceMappingURL=editor-object-kind.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editor-object-kind.d.ts","sourceRoot":"","sources":["../../../src/core/editor-object-kind.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,KAAK,QAAQ,MAAM,QAAQ,CAAC;AAExC,OAAO,KAAK,EACR,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,UAAU,EACV,aAAa,EACb,iBAAiB,EACpB,MAAM,mBAAmB,CAAC;AAE3B,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,WAAW,GAAG,eAAe,CAIhF;AAED,wBAAgB,cAAc,CAC1B,MAAM,EAAE,QAAQ,CAAC,YAAY,EAC7B,IAAI,EAAE;IACF,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,QAAQ,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;IAClD,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAChC,GACF,UAAU,CAYZ;AAED,wBAAgB,oBAAoB,CAChC,MAAM,EAAE,QAAQ,CAAC,YAAY,EAC7B,IAAI,EAAE;IACF,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B,GACF,gBAAgB,CASlB;AAED,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,QAAQ,CAAC,YAAY,EAC7D,MAAM,EAAE,CAAC,EACT,iBAAiB,EAAE,iBAAiB,GACrC,CAAC,GAAG,aAAa,CAKnB"}
|
|
@@ -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
|
|
@@ -70,7 +70,7 @@ export declare class ImageLoadTimeoutError extends Error {
|
|
|
70
70
|
* returns `null`).
|
|
71
71
|
*
|
|
72
72
|
* Surfaces to consumer as: rejection of the `loadImage` promise. The
|
|
73
|
-
*
|
|
73
|
+
* image-loader rollback runs before the rejection.
|
|
74
74
|
*
|
|
75
75
|
*/
|
|
76
76
|
export declare class DownsampleError extends Error {
|
|
@@ -93,6 +93,16 @@ export declare class MergeMasksError extends Error {
|
|
|
93
93
|
readonly originalError: unknown;
|
|
94
94
|
constructor(message?: string, originalError?: unknown);
|
|
95
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* Raised when flattening annotations into the base image fails. The
|
|
98
|
+
* pre-merge snapshot is restored before the rejection.
|
|
99
|
+
*/
|
|
100
|
+
export declare class MergeAnnotationsError extends Error {
|
|
101
|
+
readonly name = "MergeAnnotationsError";
|
|
102
|
+
/** Original error thrown during the merge pipeline. */
|
|
103
|
+
readonly originalError: unknown;
|
|
104
|
+
constructor(message?: string, originalError?: unknown);
|
|
105
|
+
}
|
|
96
106
|
/**
|
|
97
107
|
* Raised by `crop/crop-controller.ts.applyCrop` on any failure during the
|
|
98
108
|
* crop pipeline (crop computation, cropped-image load via the loader, or
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/core/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAkBH;;;;;;;;;GASG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IAC7C,SAAyB,IAAI,4BAA4B;gBAGrD,OAAO,SAA6H;CAK3I;AAED;;;;;;;;GAQG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;IACvC,SAAyB,IAAI,sBAAsB;IAEnD,uEAAuE;IACvE,SAAgB,aAAa,EAAE,OAAO,CAAC;gBAE3B,OAAO,SAAqC,EAAE,aAAa,GAAE,OAAc;CAK1F;AAED;;;;;;;;;;GAUG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAC5C,SAAyB,IAAI,2BAA2B;IAExD,oEAAoE;IACpE,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,wDAAwD;IACxD,SAAgB,SAAS,EAAE,MAAM,CAAC;gBAEtB,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAM/C;AAED;;;;;;;;;GASG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IACtC,SAAyB,IAAI,qBAAqB;IAElD,8CAA8C;IAC9C,SAAgB,aAAa,EAAE,OAAO,CAAC;gBAGnC,OAAO,SAAoD,EAC3D,aAAa,GAAE,OAAc;CAMpC;AAED;;;;;;;GAOG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IACtC,SAAyB,IAAI,qBAAqB;IAElD,uDAAuD;IACvD,SAAgB,aAAa,EAAE,OAAO,CAAC;gBAE3B,OAAO,SAA0C,EAAE,aAAa,GAAE,OAAc;CAK/F;AAED;;;;;;;;;GASG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACrC,SAAyB,IAAI,oBAAoB;IAEjD,sDAAsD;IACtD,SAAgB,aAAa,EAAE,OAAO,CAAC;gBAE3B,OAAO,SAAuC,EAAE,aAAa,GAAE,OAAc;CAK5F;AAED;;;;;;;;;;GAUG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IAC1C,SAAyB,IAAI,yBAAyB;IAEtD,uDAAuD;IACvD,SAAgB,SAAS,EAAE,MAAM,CAAC;gBAEtB,SAAS,SAAoB;CAK5C;AAED;;;;;;GAMG;AACH,qBAAa,WAAY,SAAQ,KAAK;IAClC,SAAyB,IAAI,iBAAiB;IAE9C,wDAAwD;IACxD,SAAgB,aAAa,EAAE,OAAO,CAAC;gBAE3B,OAAO,SAA4B,EAAE,aAAa,GAAE,OAAc;CAKjF"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/core/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAkBH;;;;;;;;;GASG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IAC7C,SAAyB,IAAI,4BAA4B;gBAGrD,OAAO,SAA6H;CAK3I;AAED;;;;;;;;GAQG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;IACvC,SAAyB,IAAI,sBAAsB;IAEnD,uEAAuE;IACvE,SAAgB,aAAa,EAAE,OAAO,CAAC;gBAE3B,OAAO,SAAqC,EAAE,aAAa,GAAE,OAAc;CAK1F;AAED;;;;;;;;;;GAUG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAC5C,SAAyB,IAAI,2BAA2B;IAExD,oEAAoE;IACpE,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,wDAAwD;IACxD,SAAgB,SAAS,EAAE,MAAM,CAAC;gBAEtB,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAM/C;AAED;;;;;;;;;GASG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IACtC,SAAyB,IAAI,qBAAqB;IAElD,8CAA8C;IAC9C,SAAgB,aAAa,EAAE,OAAO,CAAC;gBAGnC,OAAO,SAAoD,EAC3D,aAAa,GAAE,OAAc;CAMpC;AAED;;;;;;;GAOG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IACtC,SAAyB,IAAI,qBAAqB;IAElD,uDAAuD;IACvD,SAAgB,aAAa,EAAE,OAAO,CAAC;gBAE3B,OAAO,SAA0C,EAAE,aAAa,GAAE,OAAc;CAK/F;AAED;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAC5C,SAAyB,IAAI,2BAA2B;IAExD,uDAAuD;IACvD,SAAgB,aAAa,EAAE,OAAO,CAAC;gBAGnC,OAAO,SAAgD,EACvD,aAAa,GAAE,OAAc;CAMpC;AAED;;;;;;;;;GASG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACrC,SAAyB,IAAI,oBAAoB;IAEjD,sDAAsD;IACtD,SAAgB,aAAa,EAAE,OAAO,CAAC;gBAE3B,OAAO,SAAuC,EAAE,aAAa,GAAE,OAAc;CAK5F;AAED;;;;;;;;;;GAUG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IAC1C,SAAyB,IAAI,yBAAyB;IAEtD,uDAAuD;IACvD,SAAgB,SAAS,EAAE,MAAM,CAAC;gBAEtB,SAAS,SAAoB;CAK5C;AAED;;;;;;GAMG;AACH,qBAAa,WAAY,SAAQ,KAAK;IAClC,SAAyB,IAAI,iBAAiB;IAE9C,wDAAwD;IACxD,SAAgB,aAAa,EAAE,OAAO,CAAC;gBAE3B,OAAO,SAA4B,EAAE,aAAa,GAAE,OAAc;CAKjF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Layer-order helpers for editor-owned Fabric objects.
|
|
3
|
+
*
|
|
4
|
+
* The invariant is base images at the bottom, host objects next, editable
|
|
5
|
+
* overlays above them, and session-only objects at the top.
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
9
|
+
import type * as FabricNS from 'fabric';
|
|
10
|
+
import { type AnnotationObject, type BaseImageObject, type MaskObject, type SessionObject } from './public-types.js';
|
|
11
|
+
export declare function normalizeLayerOrder(canvas: FabricNS.Canvas): void;
|
|
12
|
+
export declare function placeBaseImageObject(canvas: FabricNS.Canvas, image: BaseImageObject): void;
|
|
13
|
+
export declare function placeMaskObject(canvas: FabricNS.Canvas, mask: MaskObject): void;
|
|
14
|
+
export declare function placeAnnotationObject(canvas: FabricNS.Canvas, annotation: AnnotationObject): void;
|
|
15
|
+
export declare function placeSessionObject(canvas: FabricNS.Canvas, sessionObject: SessionObject): void;
|
|
16
|
+
export declare function getEditableOverlayRange(canvas: FabricNS.Canvas): {
|
|
17
|
+
start: number;
|
|
18
|
+
end: number;
|
|
19
|
+
overlays: Array<MaskObject | AnnotationObject>;
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=layer-order.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layer-order.d.ts","sourceRoot":"","sources":["../../../src/core/layer-order.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,KAAK,QAAQ,MAAM,QAAQ,CAAC;AAExC,OAAO,EAIH,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,aAAa,EACrB,MAAM,mBAAmB,CAAC;AA6E3B,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,IAAI,CAYjE;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,CAI1F;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CAK/E;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAKjG;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,aAAa,GAAG,IAAI,CAG9F;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,KAAK,CAAC,UAAU,GAAG,gBAAgB,CAAC,CAAC;CAClD,CAWA"}
|
|
@@ -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"}
|