@leapfrog/interactive-canvas 2.0.8 → 2.0.9-beta.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 (68) hide show
  1. package/dist/abstract-interactive-canvas.d.ts +372 -0
  2. package/dist/dimensions/millimeter-dimensions.d.ts +15 -0
  3. package/dist/dimensions/pixel-canvas-dimensions.d.ts +13 -0
  4. package/dist/dimensions/print-6-col-canvas-dimensions.d.ts +18 -0
  5. package/dist/dimensions/print-8-col-canvas-dimensions.d.ts +18 -0
  6. package/dist/font/font-library.d.ts +27 -0
  7. package/dist/font/font-library.interface.d.ts +24 -0
  8. package/dist/font/font.interface.d.ts +20 -0
  9. package/dist/font/unknown-font.d.ts +6 -0
  10. package/dist/headless-interactive-canvas.d.ts +10 -0
  11. package/dist/index.d.ts +54 -0
  12. package/dist/interactive-canvas.d.ts +25 -0
  13. package/dist/interactive-canvas.es.js +3995 -0
  14. package/dist/interactive-canvas.interface.d.ts +297 -0
  15. package/dist/interactive-canvas.js +4028 -0
  16. package/dist/layout/abstract-layout-manager.d.ts +17 -0
  17. package/dist/layout/advanced-layout-manager.d.ts +16 -0
  18. package/dist/layout/function/pin-to-bottom.layout-function.d.ts +4 -0
  19. package/dist/layout/function/redraw-all.layout-function.d.ts +4 -0
  20. package/dist/layout/function/reposition-backgrounds.layout-function.d.ts +4 -0
  21. package/dist/layout/function/reposition-borders.layout-function.d.ts +4 -0
  22. package/dist/layout/function/reposition-cutoffs.layout-function.d.ts +4 -0
  23. package/dist/layout/function/resize-canvas.layout-function.d.ts +4 -0
  24. package/dist/layout/function/stack-objects.layout-function.d.ts +11 -0
  25. package/dist/layout/function/update-object-dimensions.layout-function.d.ts +4 -0
  26. package/dist/layout/layout-manager.enum.d.ts +5 -0
  27. package/dist/layout/layout-manager.interface.d.ts +13 -0
  28. package/dist/layout/standard-layout-manager.d.ts +40 -0
  29. package/dist/mutator/mutable-background-color.interface.d.ts +15 -0
  30. package/dist/mutator/mutable-color.interface.d.ts +6 -0
  31. package/dist/mutator/mutable-image.interface.d.ts +28 -0
  32. package/dist/mutator/mutable-position.interface.d.ts +63 -0
  33. package/dist/mutator/mutable-stroke.interface.d.ts +8 -0
  34. package/dist/mutator/mutable-text-style.interface.d.ts +163 -0
  35. package/dist/mutator/mutable-text.interface.d.ts +80 -0
  36. package/dist/object/abstract-canvas-object.d.ts +207 -0
  37. package/dist/object/canvas-object-data.d.ts +24 -0
  38. package/dist/object/canvas-object.interface.d.ts +109 -0
  39. package/dist/object/impl/background-image.d.ts +38 -0
  40. package/dist/object/impl/border.d.ts +70 -0
  41. package/dist/object/impl/cutoff.d.ts +59 -0
  42. package/dist/object/impl/extended-fabric-object.interface.d.ts +7 -0
  43. package/dist/object/impl/extended-fabric-textbox.interface.d.ts +7 -0
  44. package/dist/object/impl/horizontal-rule.d.ts +83 -0
  45. package/dist/object/impl/image.d.ts +76 -0
  46. package/dist/object/impl/rectangle.d.ts +78 -0
  47. package/dist/object/impl/rich-text.d.ts +39 -0
  48. package/dist/object/impl/text.d.ts +314 -0
  49. package/dist/object/impl/vertical-rule.d.ts +83 -0
  50. package/dist/profile/canvas-profile.interface.d.ts +22 -0
  51. package/dist/profile/default-canvas-profile.d.ts +23 -0
  52. package/dist/types/canvas-dimension-restrictions.interface.d.ts +15 -0
  53. package/dist/types/canvas-dimensions.interface.d.ts +21 -0
  54. package/dist/types/canvas-state.interface.d.ts +11 -0
  55. package/dist/types/dimension-restrictions.interface.d.ts +6 -0
  56. package/dist/types/image-type.enum.d.ts +6 -0
  57. package/dist/types/margin.interface.d.ts +6 -0
  58. package/dist/types/object-dimensions.interface.d.ts +23 -0
  59. package/dist/types/object-type.enum.d.ts +12 -0
  60. package/dist/types/overflow.interface.d.ts +4 -0
  61. package/dist/types/position.interface.d.ts +9 -0
  62. package/dist/types/rect.interface.d.ts +6 -0
  63. package/dist/types/selection-data.interface.d.ts +19 -0
  64. package/dist/types/text-alignment.interface.d.ts +1 -0
  65. package/dist/undo-stack.d.ts +27 -0
  66. package/dist/undo-stack.interface.d.ts +6 -0
  67. package/package.json +30 -30
  68. package/readme.md +60 -60
@@ -0,0 +1,207 @@
1
+ import { Observable } from "rxjs";
2
+ import { ICanvasProfile, ILayoutManager, IMargin, IObjectDimensions, IOverflow, IPosition, ObjectType } from "..";
3
+ import { ICanvasObject } from "./canvas-object.interface";
4
+ import { CanvasObjectData } from "./canvas-object-data";
5
+ import { IInteractiveCanvas } from "../interactive-canvas.interface";
6
+ import { Object } from "fabric/fabric-impl";
7
+ export declare abstract class AbstractCanvasObject<T extends Object> implements ICanvasObject {
8
+ protected pinToBottomDistance: number;
9
+ protected canvas: IInteractiveCanvas;
10
+ protected fabricObject: T;
11
+ protected data: CanvasObjectData;
12
+ private readonly dimensions$;
13
+ private readonly opacity$;
14
+ /**
15
+ * Create a new instance.
16
+ * @param type Object type.
17
+ * @param canvas Interactive canvas that the field will be rendered on.
18
+ * @param fabricObject The fabric object to bind this field to.
19
+ * @param data Existing persisted field data to load from, if applicable.
20
+ */
21
+ protected constructor(type: ObjectType, canvas: IInteractiveCanvas, fabricObject: any, data?: CanvasObjectData);
22
+ /**
23
+ * @override
24
+ * @inheritDoc
25
+ */
26
+ getId(): string;
27
+ /**
28
+ * @override
29
+ * @inheritDoc
30
+ */
31
+ getType(): ObjectType;
32
+ /**
33
+ * @override
34
+ * @inheritDoc
35
+ */
36
+ getDescription(): string;
37
+ /**
38
+ * @override
39
+ * @inheritDoc
40
+ */
41
+ setSortCaption(value: boolean): void;
42
+ /**
43
+ * @override
44
+ * @inheritDoc
45
+ */
46
+ isSortCaption(): boolean;
47
+ /**
48
+ * @override
49
+ * @inheritDoc
50
+ */
51
+ getDimensions(): IObjectDimensions;
52
+ /**
53
+ * @override
54
+ * @inheritDoc
55
+ */
56
+ getDimensions$(): Observable<IObjectDimensions>;
57
+ /**
58
+ * @override
59
+ * @inheritDoc
60
+ */
61
+ getOpacity(): number;
62
+ /**
63
+ * @override
64
+ * @inheritDoc
65
+ */
66
+ getOpacity$(): Observable<number>;
67
+ /**
68
+ * @override
69
+ * @inheritDoc
70
+ */
71
+ setOpacity(value: number): void;
72
+ /**
73
+ * @override
74
+ * @inheritDoc
75
+ */
76
+ getMargin(): IMargin;
77
+ /**
78
+ * @override
79
+ * @inheritDoc
80
+ */
81
+ setMargin(margin: IMargin): void;
82
+ /**
83
+ * @override
84
+ * @inheritDoc
85
+ */
86
+ getColumnWidthPercent(): number;
87
+ /**
88
+ * @override
89
+ * @inheritDoc
90
+ */
91
+ setColumnWidthPercent(percent: number): void;
92
+ /**
93
+ * @override
94
+ * @inheritDoc
95
+ */
96
+ bringForward(): void;
97
+ /**
98
+ * @override
99
+ * @inheritDoc
100
+ */
101
+ bringToFront(): void;
102
+ /**
103
+ * @override
104
+ * @inheritDoc
105
+ */
106
+ sendBackward(): void;
107
+ /**
108
+ * @override
109
+ * @inheritDoc
110
+ */
111
+ sendToBack(): void;
112
+ /**
113
+ * @override
114
+ * @inheritDoc
115
+ */
116
+ moveUp(): void;
117
+ /**
118
+ * @override
119
+ * @inheritDoc
120
+ */
121
+ moveDown(): void;
122
+ /**
123
+ * @override
124
+ * @inheritDoc
125
+ */
126
+ delete(): void;
127
+ /**
128
+ * @override
129
+ * @inheritDoc
130
+ */
131
+ persist(): CanvasObjectData;
132
+ /**
133
+ * @override
134
+ * @inheritDoc
135
+ */
136
+ isPinToBottom(): boolean;
137
+ /**
138
+ * @override
139
+ * @inheritDoc
140
+ */
141
+ setPinToBottom(value?: boolean): void;
142
+ /**
143
+ * @override
144
+ * @inheritDoc
145
+ */
146
+ setLeft(left: number): void;
147
+ /**
148
+ * @override
149
+ * @inheritDoc
150
+ */
151
+ setTop(top: number): void;
152
+ /**
153
+ * @override
154
+ * @inheritDoc
155
+ */
156
+ setHeight(height: number): void;
157
+ /**
158
+ * @override
159
+ * @inheritDoc
160
+ */
161
+ setWidth(width: number): void;
162
+ /**
163
+ * @override
164
+ * @inheritDoc
165
+ */
166
+ setAngle(angle: number): void;
167
+ /**
168
+ * @override
169
+ * @inheritDoc
170
+ */
171
+ setScaleX(scale: number): void;
172
+ /**
173
+ * @override
174
+ * @inheritDoc
175
+ */
176
+ setScaleY(scale: number): void;
177
+ /**
178
+ * Get the underlying fabric object.
179
+ * (Internal use only, do not expose this outside the canvas module).
180
+ */
181
+ getFabricObjectInternal(): T;
182
+ setPosition(position: IPosition): void;
183
+ setCoords(): void;
184
+ updateDimensions(): void;
185
+ getBoundingBox(): {
186
+ top: number;
187
+ left: number;
188
+ width: number;
189
+ height: number;
190
+ };
191
+ moveToPinnedPosition(): void;
192
+ protected updatePinToBottomDistance(): void;
193
+ protected redraw(): void;
194
+ protected onProfileChange(profile: ICanvasProfile): void;
195
+ protected onLayoutManagerChange(layoutManager: ILayoutManager): void;
196
+ protected onMove(event: any): void;
197
+ protected onRotate(event: any): void;
198
+ protected onScale(event: any): void;
199
+ protected afterScale(event: any): void;
200
+ protected onDelete(): void;
201
+ protected preventLeavingCanvas(): void;
202
+ protected getCanvasOverflow(): IOverflow;
203
+ protected centerHorizontallyInternal(): void;
204
+ protected centerVerticallyInternal(): void;
205
+ protected nudgeInternal(x?: number, y?: number): void;
206
+ protected updateFabricObjectBehavior(): void;
207
+ }
@@ -0,0 +1,24 @@
1
+ import { IMargin, IRect, ObjectType } from "..";
2
+ /**
3
+ * Data for a persisted canvas object.
4
+ */
5
+ export declare class CanvasObjectData {
6
+ type: ObjectType;
7
+ id: string;
8
+ fieldName?: string;
9
+ pinToBottom?: boolean;
10
+ margin?: IMargin;
11
+ columnWidthPercent?: number;
12
+ color?: string;
13
+ strokeWidth?: number;
14
+ padding?: IRect;
15
+ editable?: boolean;
16
+ prefillType: string;
17
+ sortCaption?: boolean;
18
+ resizeCanvas: boolean;
19
+ placeholder?: string;
20
+ userText?: string;
21
+ bulleted?: boolean;
22
+ imagePath?: string;
23
+ constructor(type: ObjectType, id: string);
24
+ }
@@ -0,0 +1,109 @@
1
+ import { Observable } from "rxjs";
2
+ import { IMargin, IObjectDimensions, ObjectType } from "..";
3
+ import { CanvasObjectData } from "./canvas-object-data";
4
+ /**
5
+ * An object rendered on the {@link IInteractiveCanvas Interactive Canvas}.
6
+ */
7
+ export interface ICanvasObject {
8
+ /**
9
+ * Get the field id.
10
+ */
11
+ getId(): string;
12
+ /**
13
+ * Get the field type.
14
+ */
15
+ getType(): ObjectType;
16
+ /**
17
+ * Get the field description, a user-friendly version of Type.
18
+ */
19
+ getDescription(): string;
20
+ /**
21
+ * Set whether this field is to be used for the sort caption.
22
+ */
23
+ setSortCaption(value: boolean): void;
24
+ /**
25
+ * True if this field is a sort caption.
26
+ */
27
+ isSortCaption(): boolean;
28
+ /**
29
+ * Get object dimensions.
30
+ * @see IObjectDimensions.
31
+ */
32
+ getDimensions(): IObjectDimensions;
33
+ /**
34
+ * Get an observable for the field dimensions.
35
+ */
36
+ getDimensions$(): Observable<IObjectDimensions>;
37
+ /**
38
+ * Get object opacity.
39
+ */
40
+ getOpacity(): number;
41
+ /**
42
+ * Get an observable for the object opacity.
43
+ */
44
+ getOpacity$(): Observable<number>;
45
+ /**
46
+ * Set the object opacity.
47
+ * @param value Opacity.
48
+ */
49
+ setOpacity(value: number): void;
50
+ /**
51
+ * Get the component margin.
52
+ */
53
+ getMargin(): IMargin;
54
+ /**
55
+ * Set component margin.
56
+ * @param margin New margin.
57
+ */
58
+ setMargin(margin: IMargin): void;
59
+ /**
60
+ * Get the column width percentage.
61
+ */
62
+ getColumnWidthPercent(): number;
63
+ /**
64
+ * Set column width percentage.
65
+ * @param percent New value.
66
+ */
67
+ setColumnWidthPercent(percent: number): void;
68
+ /**
69
+ * Bring object to front.
70
+ */
71
+ bringToFront(): void;
72
+ /**
73
+ * Bring object forward one place.
74
+ */
75
+ bringForward(): void;
76
+ /**
77
+ * Send object backward one place.
78
+ */
79
+ sendBackward(): void;
80
+ /**
81
+ * Send object to the back.
82
+ */
83
+ sendToBack(): void;
84
+ /**
85
+ * Move the object up in the object list.
86
+ */
87
+ moveUp(): void;
88
+ /**
89
+ * Move the object down in the object list.
90
+ */
91
+ moveDown(): void;
92
+ /**
93
+ * Delete this object, removing it from the canvas.
94
+ */
95
+ delete(): void;
96
+ /**
97
+ * Persist this object, returning a copy of the data block.
98
+ */
99
+ persist(): CanvasObjectData;
100
+ /**
101
+ * Get whether the object is pinned to the bottom of the canvas.
102
+ */
103
+ isPinToBottom(): boolean;
104
+ /**
105
+ * Set whether the object is pinned to the bottom of the canvas.
106
+ * @param value New value.
107
+ */
108
+ setPinToBottom(value?: boolean): void;
109
+ }
@@ -0,0 +1,38 @@
1
+ import { AbstractCanvasObject, CanvasObjectData, IDimensionRestrictions, IInteractiveCanvas, IMutableImage } from "../..";
2
+ import { ICanvasObject } from "../canvas-object.interface";
3
+ import { fabric } from "fabric";
4
+ import { Observable } from "rxjs";
5
+ export interface IBackgroundImage extends ICanvasObject, IMutableImage {
6
+ updatePosition(): void;
7
+ }
8
+ export declare class BackgroundImage extends AbstractCanvasObject<fabric.Image> implements IBackgroundImage {
9
+ private readonly imageUrl$;
10
+ constructor(canvas: IInteractiveCanvas, fabricObject: fabric.Image, persistedField?: CanvasObjectData);
11
+ updatePosition(): void;
12
+ /**
13
+ * @override
14
+ * @inheritDoc
15
+ */
16
+ protected updateFabricObjectBehavior(): void;
17
+ /**
18
+ * @override
19
+ * @inheritDoc
20
+ */
21
+ getImageUrl(): string;
22
+ /**
23
+ * @override
24
+ * @inheritDoc
25
+ */
26
+ getImageUrl$(): Observable<string>;
27
+ /**
28
+ * @override
29
+ * @inheritDoc
30
+ */
31
+ setImageUrl(url: string): Promise<void>;
32
+ /**
33
+ * @override
34
+ * @inheritDoc
35
+ */
36
+ setImageWidth(px: number, sizeRestrictions: IDimensionRestrictions): number;
37
+ private setCanvasImage;
38
+ }
@@ -0,0 +1,70 @@
1
+ import { Observable } from "rxjs";
2
+ import { ICanvasObject } from "../canvas-object.interface";
3
+ import { IInteractiveCanvas, IMutableColor, IRect } from "../..";
4
+ import { AbstractCanvasObject } from "../abstract-canvas-object";
5
+ import { CanvasObjectData } from "../canvas-object-data";
6
+ import { fabric } from "fabric";
7
+ /**
8
+ * Border field. A rectangle with a stroke width that automatically follows the canvas border.
9
+ */
10
+ export interface IBorder extends ICanvasObject, IMutableColor {
11
+ /**
12
+ * Get the width of the border stroke.
13
+ */
14
+ getStrokeWidth(): number;
15
+ /**
16
+ * Get an observable of the width of the cutoff stroke.
17
+ */
18
+ getStrokeWidth$(): Observable<number>;
19
+ /**
20
+ * Set the border stroke width.
21
+ * @param width New width.
22
+ */
23
+ setStrokeWidth(width: number): void;
24
+ /**
25
+ * Get the padding within the border.
26
+ */
27
+ getPadding(): IRect;
28
+ /**
29
+ * Set the padding within the border.
30
+ * @param padding New padding.
31
+ */
32
+ setPadding(padding: any): void;
33
+ }
34
+ export declare class Border extends AbstractCanvasObject<fabric.Rect> implements IBorder {
35
+ private readonly strokeWidth$;
36
+ constructor(canvas: IInteractiveCanvas, fabricObject: fabric.Rect, persistedField?: CanvasObjectData);
37
+ /**
38
+ * @override
39
+ * @inheritDoc
40
+ */
41
+ getColor(): string;
42
+ /**
43
+ * @override
44
+ * @inheritDoc
45
+ */
46
+ setColor(color: string): void;
47
+ /**
48
+ * @override
49
+ * @inheritDoc
50
+ */
51
+ getStrokeWidth(): number;
52
+ /**
53
+ * @override
54
+ * @inheritDoc
55
+ */
56
+ getStrokeWidth$(): Observable<number>;
57
+ /**
58
+ * @override
59
+ * @inheritDoc
60
+ */
61
+ setStrokeWidth(width: number): void;
62
+ getPadding(): IRect;
63
+ setPadding(padding: any): void;
64
+ updatePosition(): void;
65
+ /**
66
+ * @override
67
+ * @inheritDoc
68
+ */
69
+ protected updateFabricObjectBehavior(): void;
70
+ }
@@ -0,0 +1,59 @@
1
+ import { Observable } from "rxjs";
2
+ import { ICanvasObject } from "../canvas-object.interface";
3
+ import { IInteractiveCanvas, IMutableColor } from "../..";
4
+ import { AbstractCanvasObject } from "../abstract-canvas-object";
5
+ import { CanvasObjectData } from "../canvas-object-data";
6
+ import { fabric } from "fabric";
7
+ /**
8
+ * Cutoff field. A cutoff rule that sits on the bottom of the canvas.
9
+ */
10
+ export interface ICutoff extends ICanvasObject, IMutableColor {
11
+ /**
12
+ * Get the width of the cutoff stroke.
13
+ */
14
+ getStrokeWidth(): number;
15
+ /**
16
+ * Get an observable of the width of the cutoff stroke.
17
+ */
18
+ getStrokeWidth$(): Observable<number>;
19
+ /**
20
+ * Set the cutoff stroke width.
21
+ * @param width New width.
22
+ */
23
+ setStrokeWidth(width: number): void;
24
+ }
25
+ export declare class Cutoff extends AbstractCanvasObject<fabric.Rect> implements ICutoff {
26
+ private readonly strokeWidth$;
27
+ constructor(canvas: IInteractiveCanvas, fabricObject: fabric.Rect, persistedField?: CanvasObjectData);
28
+ /**
29
+ * @override
30
+ * @inheritDoc
31
+ */
32
+ getColor(): string;
33
+ /**
34
+ * @override
35
+ * @inheritDoc
36
+ */
37
+ setColor(color: string): void;
38
+ /**
39
+ * @override
40
+ * @inheritDoc
41
+ */
42
+ getStrokeWidth(): number;
43
+ /**
44
+ * @override
45
+ * @inheritDoc
46
+ */
47
+ getStrokeWidth$(): Observable<number>;
48
+ /**
49
+ * @override
50
+ * @inheritDoc
51
+ */
52
+ setStrokeWidth(width: number): void;
53
+ updatePosition(): void;
54
+ /**
55
+ * @override
56
+ * @inheritDoc
57
+ */
58
+ protected updateFabricObjectBehavior(): void;
59
+ }
@@ -0,0 +1,7 @@
1
+ import { fabric } from "fabric";
2
+ export interface ExtendedFabricObject extends fabric.Object {
3
+ /**
4
+ * If true, this object is a slave object controlled by another object and not directly by the user, such as the line markers in an ordered list.
5
+ */
6
+ _isSlaveObject?: boolean;
7
+ }
@@ -0,0 +1,7 @@
1
+ import { fabric } from "fabric";
2
+ import { ExtendedFabricObject } from "./extended-fabric-object.interface";
3
+ export interface ExtendedFabricTextbox extends fabric.Textbox, ExtendedFabricObject {
4
+ _isOrderedList?: boolean;
5
+ _orderedListStart?: number;
6
+ _orderedListMarkerEntities?: fabric.Textbox[];
7
+ }
@@ -0,0 +1,83 @@
1
+ import { Observable } from "rxjs";
2
+ import { ICanvasObject } from "../canvas-object.interface";
3
+ import { IInteractiveCanvas, IMutableColor, IMutablePosition } from "../..";
4
+ import { AbstractCanvasObject } from "../abstract-canvas-object";
5
+ import { CanvasObjectData } from "../canvas-object-data";
6
+ import { fabric } from "fabric";
7
+ /**
8
+ * Horizontal rule. A basic block of color in a thin line across the canvas.
9
+ */
10
+ export interface IHorizontalRule extends ICanvasObject, IMutableColor, IMutablePosition {
11
+ /**
12
+ * Get the width of the rule.
13
+ */
14
+ getStrokeWidth(): number;
15
+ /**
16
+ * Get an observable of the width of the rule.
17
+ */
18
+ getStrokeWidth$(): Observable<number>;
19
+ /**
20
+ * Set the rule width.
21
+ * @param width New width.
22
+ */
23
+ setStrokeWidth(width: number): void;
24
+ }
25
+ export declare class HorizontalRule extends AbstractCanvasObject<fabric.Rect> implements IHorizontalRule {
26
+ private readonly strokeWidth$;
27
+ constructor(canvas: IInteractiveCanvas, fabricObject: fabric.Rect, persistedField?: CanvasObjectData);
28
+ /**
29
+ * @override
30
+ * @inheritDoc
31
+ */
32
+ getStrokeWidth(): number;
33
+ /**
34
+ * @override
35
+ * @inheritDoc
36
+ */
37
+ getStrokeWidth$(): Observable<number>;
38
+ /**
39
+ * @override
40
+ * @inheritDoc
41
+ */
42
+ setStrokeWidth(value: number): void;
43
+ /**
44
+ * @override
45
+ * @inheritDoc
46
+ */
47
+ getColor(): string;
48
+ /**
49
+ * @override
50
+ * @inheritDoc
51
+ */
52
+ setColor(color: string): void;
53
+ /**
54
+ * @override
55
+ * @inheritDoc
56
+ */
57
+ centerHorizontally(): void;
58
+ /**
59
+ * @override
60
+ * @inheritDoc
61
+ */
62
+ centerVertically(): void;
63
+ /**
64
+ * @override
65
+ * @inheritDoc
66
+ */
67
+ nudgeUp(): void;
68
+ /**
69
+ * @override
70
+ * @inheritDoc
71
+ */
72
+ nudgeDown(): void;
73
+ /**
74
+ * @override
75
+ * @inheritDoc
76
+ */
77
+ nudgeLeft(): void;
78
+ /**
79
+ * @override
80
+ * @inheritDoc
81
+ */
82
+ nudgeRight(): void;
83
+ }
@@ -0,0 +1,76 @@
1
+ import { IDimensionRestrictions, IInteractiveCanvas, IMutableImage, IMutablePosition, IPosition } from "../..";
2
+ import { ICanvasObject } from "../canvas-object.interface";
3
+ import { AbstractCanvasObject } from "../abstract-canvas-object";
4
+ import { Observable } from "rxjs";
5
+ import { CanvasObjectData } from "../canvas-object-data";
6
+ import { fabric } from "fabric";
7
+ /**
8
+ * Image field. Displays a custom image on the canvas.
9
+ */
10
+ export interface IImage extends ICanvasObject, IMutableImage, IMutablePosition {
11
+ }
12
+ export declare class Image extends AbstractCanvasObject<fabric.Image> implements IImage {
13
+ private readonly DEFAULT_RESTRICTIONS;
14
+ private layoutWidth;
15
+ private readonly imageUrl$;
16
+ constructor(canvas: IInteractiveCanvas, fabricObject: fabric.Image, persistedField?: CanvasObjectData);
17
+ /**
18
+ * @override
19
+ * @inheritDoc
20
+ */
21
+ getImageUrl(): string;
22
+ /**
23
+ * @override
24
+ * @inheritDoc
25
+ */
26
+ getImageUrl$(): Observable<string>;
27
+ /**
28
+ * @override
29
+ * @inheritDoc
30
+ */
31
+ setImageUrl(url: string): Promise<void>;
32
+ /**
33
+ * @override
34
+ * @inheritDoc
35
+ */
36
+ setImageWidth(px: number, sizeRestrictions?: IDimensionRestrictions): number;
37
+ /**
38
+ * @override
39
+ * @inheritDoc
40
+ */
41
+ centerHorizontally(): void;
42
+ /**
43
+ * @override
44
+ * @inheritDoc
45
+ */
46
+ centerVertically(): void;
47
+ /**
48
+ * @override
49
+ * @inheritDoc
50
+ */
51
+ nudgeUp(): void;
52
+ /**
53
+ * @override
54
+ * @inheritDoc
55
+ */
56
+ nudgeDown(): void;
57
+ /**
58
+ * @override
59
+ * @inheritDoc
60
+ */
61
+ nudgeLeft(): void;
62
+ /**
63
+ * @override
64
+ * @inheritDoc
65
+ */
66
+ nudgeRight(): void;
67
+ /**
68
+ * @override
69
+ * @inheritDoc
70
+ */
71
+ setPosition(position: IPosition): void;
72
+ private centerHorizontallyInLayoutWidth;
73
+ private setCanvasImage;
74
+ private getMinWidthBasedOnMinHeight;
75
+ private getMaxWidthBasedOnMaxHeight;
76
+ }