fabric 6.0.2 → 6.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/CHANGELOG.md +15 -0
- package/dist/index.js +250 -101
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/dist/index.min.mjs +1 -1
- package/dist/index.min.mjs.map +1 -1
- package/dist/index.mjs +250 -101
- package/dist/index.mjs.map +1 -1
- package/dist/index.node.cjs +250 -101
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.mjs +250 -101
- package/dist/index.node.mjs.map +1 -1
- package/dist/package.json.min.mjs +1 -1
- package/dist/package.json.mjs +1 -1
- package/dist/src/ClassRegistry.d.ts +1 -0
- package/dist/src/ClassRegistry.d.ts.map +1 -1
- package/dist/src/ClassRegistry.min.mjs +1 -1
- package/dist/src/ClassRegistry.min.mjs.map +1 -1
- package/dist/src/ClassRegistry.mjs +3 -0
- package/dist/src/ClassRegistry.mjs.map +1 -1
- package/dist/src/Collection.d.ts +3 -3
- package/dist/src/Collection.d.ts.map +1 -1
- package/dist/src/EventTypeDefs.d.ts +19 -11
- package/dist/src/EventTypeDefs.d.ts.map +1 -1
- package/dist/src/LayoutManager/LayoutManager.d.ts.map +1 -1
- package/dist/src/LayoutManager/LayoutManager.min.mjs +1 -1
- package/dist/src/LayoutManager/LayoutManager.min.mjs.map +1 -1
- package/dist/src/LayoutManager/LayoutManager.mjs +2 -2
- package/dist/src/LayoutManager/LayoutManager.mjs.map +1 -1
- package/dist/src/Shadow.d.ts.map +1 -1
- package/dist/src/Shadow.min.mjs +1 -1
- package/dist/src/Shadow.min.mjs.map +1 -1
- package/dist/src/Shadow.mjs +1 -5
- package/dist/src/Shadow.mjs.map +1 -1
- package/dist/src/canvas/DOMManagers/util.d.ts.map +1 -1
- package/dist/src/canvas/DOMManagers/util.min.mjs +1 -1
- package/dist/src/canvas/DOMManagers/util.min.mjs.map +1 -1
- package/dist/src/canvas/DOMManagers/util.mjs +9 -15
- package/dist/src/canvas/DOMManagers/util.mjs.map +1 -1
- package/dist/src/canvas/SelectableCanvas.d.ts.map +1 -1
- package/dist/src/canvas/SelectableCanvas.min.mjs +1 -1
- package/dist/src/canvas/SelectableCanvas.min.mjs.map +1 -1
- package/dist/src/canvas/SelectableCanvas.mjs +3 -0
- package/dist/src/canvas/SelectableCanvas.mjs.map +1 -1
- package/dist/src/canvas/StaticCanvas.d.ts +20 -24
- package/dist/src/canvas/StaticCanvas.d.ts.map +1 -1
- package/dist/src/color/util.d.ts.map +1 -1
- package/dist/src/constants.d.ts +1 -0
- package/dist/src/constants.d.ts.map +1 -1
- package/dist/src/constants.min.mjs +1 -1
- package/dist/src/constants.min.mjs.map +1 -1
- package/dist/src/constants.mjs +2 -1
- package/dist/src/constants.mjs.map +1 -1
- package/dist/src/controls/controlRendering.d.ts +1 -1
- package/dist/src/controls/controlRendering.d.ts.map +1 -1
- package/dist/src/controls/controlRendering.min.mjs.map +1 -1
- package/dist/src/controls/controlRendering.mjs.map +1 -1
- package/dist/src/controls/fireEvent.d.ts +2 -2
- package/dist/src/controls/fireEvent.d.ts.map +1 -1
- package/dist/src/controls/fireEvent.min.mjs.map +1 -1
- package/dist/src/controls/fireEvent.mjs.map +1 -1
- package/dist/src/controls/index.d.ts +1 -0
- package/dist/src/controls/index.d.ts.map +1 -1
- package/dist/src/controls/index.min.mjs +1 -1
- package/dist/src/controls/index.mjs +1 -0
- package/dist/src/controls/index.mjs.map +1 -1
- package/dist/src/controls/pathControl.d.ts +12 -0
- package/dist/src/controls/pathControl.d.ts.map +1 -0
- package/dist/src/controls/pathControl.min.mjs +2 -0
- package/dist/src/controls/pathControl.min.mjs.map +1 -0
- package/dist/src/controls/pathControl.mjs +156 -0
- package/dist/src/controls/pathControl.mjs.map +1 -0
- package/dist/src/controls/polyControl.d.ts.map +1 -1
- package/dist/src/controls/polyControl.min.mjs +1 -1
- package/dist/src/controls/polyControl.min.mjs.map +1 -1
- package/dist/src/controls/polyControl.mjs +1 -9
- package/dist/src/controls/polyControl.mjs.map +1 -1
- package/dist/src/controls/util.d.ts +1 -1
- package/dist/src/controls/wrapWithFireEvent.d.ts +5 -3
- package/dist/src/controls/wrapWithFireEvent.d.ts.map +1 -1
- package/dist/src/controls/wrapWithFireEvent.min.mjs +1 -1
- package/dist/src/controls/wrapWithFireEvent.min.mjs.map +1 -1
- package/dist/src/controls/wrapWithFireEvent.mjs +7 -4
- package/dist/src/controls/wrapWithFireEvent.mjs.map +1 -1
- package/dist/src/controls/wrapWithFixedAnchor.d.ts.map +1 -1
- package/dist/src/env/index.d.ts.map +1 -1
- package/dist/src/env/node.d.ts.map +1 -1
- package/dist/src/filters/BaseFilter.d.ts.map +1 -1
- package/dist/src/filters/BaseFilter.min.mjs.map +1 -1
- package/dist/src/filters/BaseFilter.mjs +0 -1
- package/dist/src/filters/BaseFilter.mjs.map +1 -1
- package/dist/src/filters/ColorMatrix.d.ts.map +1 -1
- package/dist/src/filters/ColorMatrixFilters.d.ts +8 -96
- package/dist/src/filters/ColorMatrixFilters.d.ts.map +1 -1
- package/dist/src/filters/Convolute.d.ts +2 -1
- package/dist/src/filters/Convolute.d.ts.map +1 -1
- package/dist/src/filters/shaders/baseFilter.d.ts +1 -1
- package/dist/src/filters/shaders/baseFilter.d.ts.map +1 -1
- package/dist/src/filters/utils.d.ts.map +1 -1
- package/dist/src/parser/normalizeAttr.d.ts.map +1 -1
- package/dist/src/parser/parseStyleString.d.ts.map +1 -1
- package/dist/src/parser/parseStyleString.min.mjs +1 -1
- package/dist/src/parser/parseStyleString.min.mjs.map +1 -1
- package/dist/src/parser/parseStyleString.mjs +1 -0
- package/dist/src/parser/parseStyleString.mjs.map +1 -1
- package/dist/src/parser/parseUseDirectives.d.ts.map +1 -1
- package/dist/src/parser/parseUseDirectives.min.mjs +1 -1
- package/dist/src/parser/parseUseDirectives.min.mjs.map +1 -1
- package/dist/src/parser/parseUseDirectives.mjs +61 -43
- package/dist/src/parser/parseUseDirectives.mjs.map +1 -1
- package/dist/src/shapes/Group.d.ts +20 -20
- package/dist/src/shapes/Group.d.ts.map +1 -1
- package/dist/src/shapes/IText/DraggableTextDelegate.d.ts.map +1 -1
- package/dist/src/shapes/IText/ITextBehavior.d.ts.map +1 -1
- package/dist/src/shapes/IText/ITextBehavior.min.mjs.map +1 -1
- package/dist/src/shapes/IText/ITextBehavior.mjs +0 -1
- package/dist/src/shapes/IText/ITextBehavior.mjs.map +1 -1
- package/dist/src/shapes/Image.d.ts.map +1 -1
- package/dist/src/shapes/Image.min.mjs.map +1 -1
- package/dist/src/shapes/Image.mjs +0 -2
- package/dist/src/shapes/Image.mjs.map +1 -1
- package/dist/src/shapes/Path.d.ts +9 -9
- package/dist/src/shapes/Path.d.ts.map +1 -1
- package/dist/src/shapes/Polyline.d.ts +1 -1
- package/dist/src/shapes/Rect.d.ts +1 -1
- package/dist/src/shapes/Text/Text.d.ts +1 -1
- package/dist/src/shapes/Text/Text.d.ts.map +1 -1
- package/dist/src/shapes/Text/TextSVGExportMixin.d.ts.map +1 -1
- package/dist/src/shapes/Text/TextSVGExportMixin.min.mjs.map +1 -1
- package/dist/src/shapes/Text/TextSVGExportMixin.mjs +0 -2
- package/dist/src/shapes/Text/TextSVGExportMixin.mjs.map +1 -1
- package/dist/src/shapes/Textbox.d.ts.map +1 -1
- package/dist/src/shapes/Textbox.min.mjs.map +1 -1
- package/dist/src/shapes/Textbox.mjs +0 -2
- package/dist/src/shapes/Textbox.mjs.map +1 -1
- package/dist/src/util/applyMixins.d.ts.map +1 -1
- package/dist/src/util/dom_misc.d.ts.map +1 -1
- package/dist/src/util/dom_misc.min.mjs +1 -1
- package/dist/src/util/dom_misc.min.mjs.map +1 -1
- package/dist/src/util/dom_misc.mjs +7 -9
- package/dist/src/util/dom_misc.mjs.map +1 -1
- package/dist/src/util/internals/cloneDeep.d.ts.map +1 -1
- package/dist/src/util/internals/console.d.ts +1 -1
- package/dist/src/util/internals/findRight.d.ts.map +1 -1
- package/dist/src/util/internals/removeFromArray.d.ts.map +1 -1
- package/dist/src/util/misc/dom.d.ts.map +1 -1
- package/dist/src/util/misc/groupSVGElements.d.ts.map +1 -1
- package/dist/src/util/misc/matrix.d.ts.map +1 -1
- package/dist/src/util/misc/objectEnlive.d.ts +1 -1
- package/dist/src/util/misc/objectEnlive.d.ts.map +1 -1
- package/dist/src/util/misc/objectEnlive.min.mjs +1 -1
- package/dist/src/util/misc/objectEnlive.min.mjs.map +1 -1
- package/dist/src/util/misc/objectEnlive.mjs +7 -11
- package/dist/src/util/misc/objectEnlive.mjs.map +1 -1
- package/dist/src/util/misc/objectTransforms.d.ts.map +1 -1
- package/dist/src/util/misc/pick.d.ts.map +1 -1
- package/dist/src/util/misc/planeChange.d.ts.map +1 -1
- package/dist/src/util/misc/svgParsing.d.ts.map +1 -1
- package/dist/src/util/misc/textStyles.d.ts.map +1 -1
- package/dist/src/util/path/index.d.ts +0 -1
- package/dist/src/util/path/index.d.ts.map +1 -1
- package/dist/src/util/path/index.min.mjs +1 -1
- package/dist/src/util/path/index.min.mjs.map +1 -1
- package/dist/src/util/path/index.mjs +1 -2
- package/dist/src/util/path/index.mjs.map +1 -1
- package/dist/src/util/path/typedefs.d.ts +1 -0
- package/dist/src/util/path/typedefs.d.ts.map +1 -1
- package/dist/src/util/typeAssertions.d.ts +2 -2
- package/dist/src/util/typeAssertions.d.ts.map +1 -1
- package/lib/aligning_guidelines.js +76 -1
- package/lib/centering_guidelines.js +3 -1
- package/package.json +3 -3
- package/src/ClassRegistry.spec.ts +39 -0
- package/src/ClassRegistry.ts +4 -0
- package/src/EventTypeDefs.ts +22 -10
- package/src/LayoutManager/ActiveSelectionLayoutManager.spec.ts +1 -0
- package/src/LayoutManager/LayoutManager.spec.ts +1 -0
- package/src/LayoutManager/LayoutManager.ts +2 -0
- package/src/Shadow.ts +1 -6
- package/src/canvas/DOMManagers/util.ts +11 -15
- package/src/canvas/SelectableCanvas.spec.ts +18 -0
- package/src/canvas/SelectableCanvas.ts +3 -0
- package/src/constants.ts +1 -0
- package/src/controls/controlRendering.ts +4 -2
- package/src/controls/fireEvent.ts +2 -2
- package/src/controls/index.ts +1 -0
- package/src/controls/pathControl.spec.ts +75 -0
- package/src/controls/pathControl.ts +293 -0
- package/src/controls/polyControl.ts +1 -1
- package/src/controls/wrapWithFireEvent.ts +14 -5
- package/src/filters/BaseFilter.ts +1 -2
- package/src/parser/parseStyleString.ts +1 -0
- package/src/parser/parseUseDirectives.test.ts +113 -0
- package/src/parser/parseUseDirectives.ts +64 -58
- package/src/shapes/IText/ITextBehavior.ts +4 -2
- package/src/shapes/Image.ts +0 -2
- package/src/shapes/Text/TextSVGExportMixin.ts +0 -2
- package/src/shapes/Textbox.ts +0 -2
- package/src/util/dom_misc.ts +17 -10
- package/src/util/misc/objectEnlive.spec.ts +68 -0
- package/src/util/misc/objectEnlive.ts +7 -13
- package/src/util/path/__snapshots__/index.spec.ts.snap +327 -0
- package/src/util/path/index.spec.ts +13 -2
- package/src/util/path/index.ts +2 -4
- package/src/util/path/typedefs.ts +2 -0
- package/.gitmodules +0 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typedefs.d.ts","sourceRoot":"","sources":["../../../../src/util/path/typedefs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"typedefs.d.ts","sourceRoot":"","sources":["../../../../src/util/path/typedefs.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import type { ActiveSelection } from '../shapes/ActiveSelection';
|
|
|
7
7
|
export declare const isFiller: (filler: TFiller | string | null) => filler is TFiller;
|
|
8
8
|
export declare const isSerializableFiller: (filler: TFiller | string | null) => filler is TFiller;
|
|
9
9
|
export declare const isPattern: (filler: TFiller) => filler is Pattern;
|
|
10
|
-
export declare const isTextObject: (fabricObject?: FabricObject) => fabricObject is FabricText
|
|
11
|
-
export declare const isPath: (fabricObject?: FabricObject) => fabricObject is Path
|
|
10
|
+
export declare const isTextObject: (fabricObject?: FabricObject) => fabricObject is FabricText;
|
|
11
|
+
export declare const isPath: (fabricObject?: FabricObject) => fabricObject is Path;
|
|
12
12
|
export declare const isActiveSelection: (fabricObject?: FabricObject) => fabricObject is ActiveSelection;
|
|
13
13
|
//# sourceMappingURL=typeAssertions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typeAssertions.d.ts","sourceRoot":"","sources":["../../../src/util/typeAssertions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,eAAO,MAAM,QAAQ,WACX,OAAO,GAAG,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"typeAssertions.d.ts","sourceRoot":"","sources":["../../../src/util/typeAssertions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,eAAO,MAAM,QAAQ,WACX,OAAO,GAAG,MAAM,GAAG,IAAI,KAC9B,MAAM,IAAI,OAEZ,CAAC;AAEF,eAAO,MAAM,oBAAoB,WACvB,OAAO,GAAG,MAAM,GAAG,IAAI,KAC9B,MAAM,IAAI,OAEZ,CAAC;AAEF,eAAO,MAAM,SAAS,WAAY,OAAO,KAAG,MAAM,IAAI,OAIrD,CAAC;AAEF,eAAO,MAAM,YAAY,kBACR,YAAY,KAC1B,YAAY,IAAI,UAKlB,CAAC;AAEF,eAAO,MAAM,MAAM,kBAAmB,YAAY,KAAG,YAAY,IAAI,IAOpE,CAAC;AAEF,eAAO,MAAM,iBAAiB,kBACb,YAAY,KAC1B,YAAY,IAAI,eACyC,CAAC"}
|
|
@@ -89,6 +89,79 @@ function initAligningGuidelines(canvas) {
|
|
|
89
89
|
objectHeight = objectBoundingRect.height / viewportTransform[3],
|
|
90
90
|
objectWidth = objectBoundingRect.width / viewportTransform[0];
|
|
91
91
|
|
|
92
|
+
|
|
93
|
+
// snaps if the right side of the active object touches the left side of the object
|
|
94
|
+
if (isInRange(activeObjectLeft + activeObjectWidth / 2, objectLeft - objectWidth / 2)) {
|
|
95
|
+
|
|
96
|
+
verticalInTheRange = true;
|
|
97
|
+
verticalLines.push({
|
|
98
|
+
x: objectLeft - objectWidth / 2,
|
|
99
|
+
y1: (objectTop < activeObjectTop)
|
|
100
|
+
? (objectTop - objectHeight / 2 - aligningLineOffset)
|
|
101
|
+
: (objectTop + objectHeight / 2 + aligningLineOffset),
|
|
102
|
+
y2: (activeObjectTop > objectTop)
|
|
103
|
+
? (activeObjectTop + activeObjectHeight / 2 + aligningLineOffset)
|
|
104
|
+
: (activeObjectTop - activeObjectHeight / 2 - aligningLineOffset)
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
activeObject.setPositionByOrigin(new fabric.Point(objectLeft - objectWidth / 2 - activeObjectWidth / 2, activeObjectTop), 'center', 'center');
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
// snaps if the left side of the active object touches the right side of the object
|
|
113
|
+
if (isInRange(activeObjectLeft - activeObjectWidth / 2, objectLeft + objectWidth / 2)) {
|
|
114
|
+
|
|
115
|
+
verticalInTheRange = true;
|
|
116
|
+
verticalLines.push({
|
|
117
|
+
x: objectLeft + objectWidth / 2,
|
|
118
|
+
y1: (objectTop < activeObjectTop)
|
|
119
|
+
? (objectTop - objectHeight / 2 - aligningLineOffset)
|
|
120
|
+
: (objectTop + objectHeight / 2 + aligningLineOffset),
|
|
121
|
+
y2: (activeObjectTop > objectTop)
|
|
122
|
+
? (activeObjectTop + activeObjectHeight / 2 + aligningLineOffset)
|
|
123
|
+
: (activeObjectTop - activeObjectHeight / 2 - aligningLineOffset)
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
activeObject.setPositionByOrigin(new fabric.Point(objectLeft + objectWidth / 2 + activeObjectWidth / 2, activeObjectTop), 'center', 'center');
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
// snaps if the bottom of the object touches the top of the active object
|
|
131
|
+
if (isInRange(objectTop + objectHeight / 2, activeObjectTop - activeObjectHeight / 2)) {
|
|
132
|
+
|
|
133
|
+
horizontalInTheRange = true;
|
|
134
|
+
horizontalLines.push({
|
|
135
|
+
y: objectTop + objectHeight / 2,
|
|
136
|
+
x1: (objectLeft < activeObjectLeft)
|
|
137
|
+
? (objectLeft - objectWidth / 2 - aligningLineOffset)
|
|
138
|
+
: (objectLeft + objectWidth / 2 + aligningLineOffset),
|
|
139
|
+
x2: (activeObjectLeft > objectLeft)
|
|
140
|
+
? (activeObjectLeft + activeObjectWidth / 2 + aligningLineOffset)
|
|
141
|
+
: (activeObjectLeft - activeObjectWidth / 2 - aligningLineOffset)
|
|
142
|
+
});
|
|
143
|
+
|
|
144
|
+
activeObject.setPositionByOrigin(new fabric.Point(activeObjectLeft, objectTop + objectHeight / 2 + activeObjectHeight / 2), 'center', 'center');
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
// snaps if the top of the object touches the bottom of the active object
|
|
149
|
+
if (isInRange(objectTop - objectHeight / 2, activeObjectTop + activeObjectHeight / 2)) {
|
|
150
|
+
|
|
151
|
+
horizontalInTheRange = true;
|
|
152
|
+
horizontalLines.push({
|
|
153
|
+
y: objectTop - objectHeight / 2,
|
|
154
|
+
x1: (objectLeft < activeObjectLeft)
|
|
155
|
+
? (objectLeft - objectWidth / 2 - aligningLineOffset)
|
|
156
|
+
: (objectLeft + objectWidth / 2 + aligningLineOffset),
|
|
157
|
+
x2: (activeObjectLeft > objectLeft)
|
|
158
|
+
? (activeObjectLeft + activeObjectWidth / 2 + aligningLineOffset)
|
|
159
|
+
: (activeObjectLeft - activeObjectWidth / 2 - aligningLineOffset)
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
activeObject.setPositionByOrigin(new fabric.Point(activeObjectLeft, objectTop - objectHeight / 2 - activeObjectHeight / 2), 'center', 'center');
|
|
163
|
+
}
|
|
164
|
+
|
|
92
165
|
// snap by the horizontal center line
|
|
93
166
|
if (isInRange(objectLeft, activeObjectLeft)) {
|
|
94
167
|
verticalInTheRange = true;
|
|
@@ -190,7 +263,9 @@ function initAligningGuidelines(canvas) {
|
|
|
190
263
|
});
|
|
191
264
|
|
|
192
265
|
canvas.on('before:render', function() {
|
|
193
|
-
|
|
266
|
+
if (canvas.contextTop) {
|
|
267
|
+
canvas.clearContext(canvas.contextTop);
|
|
268
|
+
}
|
|
194
269
|
});
|
|
195
270
|
|
|
196
271
|
canvas.on('after:render', function() {
|
|
@@ -68,7 +68,9 @@ function initCenteringGuidelines(canvas) {
|
|
|
68
68
|
});
|
|
69
69
|
|
|
70
70
|
canvas.on('before:render', function() {
|
|
71
|
-
|
|
71
|
+
if (canvas.contextTop) {
|
|
72
|
+
canvas.clearContext(canvas.contextTop);
|
|
73
|
+
}
|
|
72
74
|
});
|
|
73
75
|
|
|
74
76
|
canvas.on('after:render', function() {
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "fabric",
|
|
3
3
|
"description": "Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.",
|
|
4
4
|
"homepage": "http://fabricjs.com/",
|
|
5
|
-
"version": "6.0
|
|
5
|
+
"version": "6.2.0",
|
|
6
6
|
"author": "Juriy Zaytsev <kangax@gmail.com>",
|
|
7
7
|
"contributors": [
|
|
8
8
|
{
|
|
@@ -117,12 +117,12 @@
|
|
|
117
117
|
"prettier": "2.7.1",
|
|
118
118
|
"ps-list": "^8.1.0",
|
|
119
119
|
"qunit": "^2.17.2",
|
|
120
|
-
"rollup": "^4.
|
|
120
|
+
"rollup": "^4.20.0",
|
|
121
121
|
"semver": "^7.3.8",
|
|
122
122
|
"source-map-support": "^0.5.21",
|
|
123
123
|
"testem": "^3.8.0",
|
|
124
124
|
"tslib": "^2.4.1",
|
|
125
|
-
"typescript": "^
|
|
125
|
+
"typescript": "^5.5.4",
|
|
126
126
|
"v8-to-istanbul": "^9.1.0"
|
|
127
127
|
},
|
|
128
128
|
"engines": {
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { ClassRegistry } from './ClassRegistry';
|
|
2
|
+
|
|
3
|
+
describe('ClassRegistry', () => {
|
|
4
|
+
let classRegistry: ClassRegistry;
|
|
5
|
+
beforeEach(() => {
|
|
6
|
+
classRegistry = new ClassRegistry();
|
|
7
|
+
});
|
|
8
|
+
it('will error if a class is request that is not registered', () => {
|
|
9
|
+
expect(() => classRegistry.getClass('any')).toThrow(
|
|
10
|
+
'No class registered for any'
|
|
11
|
+
);
|
|
12
|
+
});
|
|
13
|
+
it('will return a class previously registered', () => {
|
|
14
|
+
classRegistry.setClass(Set, 'any');
|
|
15
|
+
expect(classRegistry.getClass('any')).toBe(Set);
|
|
16
|
+
});
|
|
17
|
+
it('will check if a class was previously registered', () => {
|
|
18
|
+
expect(classRegistry.has('any')).toBe(false);
|
|
19
|
+
classRegistry.setClass(Set, 'any');
|
|
20
|
+
expect(classRegistry.has('any')).toBe(true);
|
|
21
|
+
});
|
|
22
|
+
it('not specified will register the class using the type static prop', () => {
|
|
23
|
+
class Set2 extends Set {
|
|
24
|
+
static type = 'SETABC';
|
|
25
|
+
}
|
|
26
|
+
classRegistry.setClass(Set2);
|
|
27
|
+
expect(classRegistry.has('SETABC')).toBe(true);
|
|
28
|
+
expect(classRegistry.getClass('SETABC')).toBe(Set2);
|
|
29
|
+
expect(classRegistry.getClass('setabc')).toBe(Set2);
|
|
30
|
+
});
|
|
31
|
+
it('has a method for SVG parsing classes', () => {
|
|
32
|
+
class Set2 extends Set {
|
|
33
|
+
static type = 'SETABC';
|
|
34
|
+
}
|
|
35
|
+
classRegistry.setSVGClass(Set2);
|
|
36
|
+
expect(classRegistry.getSVGClass('SETABC')).toBe(undefined);
|
|
37
|
+
expect(classRegistry.getSVGClass('setabc')).toBe(Set2);
|
|
38
|
+
});
|
|
39
|
+
});
|
package/src/ClassRegistry.ts
CHANGED
|
@@ -24,6 +24,10 @@ export class ClassRegistry {
|
|
|
24
24
|
this[SVG] = new Map();
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
has(classType: string): boolean {
|
|
28
|
+
return this[JSON].has(classType);
|
|
29
|
+
}
|
|
30
|
+
|
|
27
31
|
getClass<T>(classType: string): T {
|
|
28
32
|
const constructor = this[JSON].get(classType);
|
|
29
33
|
if (!constructor) {
|
package/src/EventTypeDefs.ts
CHANGED
|
@@ -12,6 +12,8 @@ import type {
|
|
|
12
12
|
LayoutAfterEvent,
|
|
13
13
|
} from './LayoutManager/types';
|
|
14
14
|
import type {
|
|
15
|
+
MODIFIED,
|
|
16
|
+
MODIFY_PATH,
|
|
15
17
|
MODIFY_POLY,
|
|
16
18
|
MOVING,
|
|
17
19
|
RESIZING,
|
|
@@ -110,7 +112,8 @@ export type TModificationEvents =
|
|
|
110
112
|
| typeof ROTATING
|
|
111
113
|
| typeof SKEWING
|
|
112
114
|
| typeof RESIZING
|
|
113
|
-
| typeof MODIFY_POLY
|
|
115
|
+
| typeof MODIFY_POLY
|
|
116
|
+
| typeof MODIFY_PATH;
|
|
114
117
|
|
|
115
118
|
export interface ModifiedEvent<E extends Event = TPointerEvent> {
|
|
116
119
|
e?: E;
|
|
@@ -119,14 +122,20 @@ export interface ModifiedEvent<E extends Event = TPointerEvent> {
|
|
|
119
122
|
action?: string;
|
|
120
123
|
}
|
|
121
124
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
125
|
+
export interface ModifyPathEvent {
|
|
126
|
+
commandIndex: number;
|
|
127
|
+
pointIndex: number;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export type ObjectModificationEvents = {
|
|
131
|
+
[MOVING]: BasicTransformEvent;
|
|
132
|
+
[SCALING]: BasicTransformEvent;
|
|
133
|
+
[ROTATING]: BasicTransformEvent;
|
|
134
|
+
[SKEWING]: BasicTransformEvent;
|
|
135
|
+
[RESIZING]: BasicTransformEvent;
|
|
136
|
+
[MODIFY_POLY]: BasicTransformEvent;
|
|
137
|
+
[MODIFY_PATH]: BasicTransformEvent & ModifyPathEvent;
|
|
138
|
+
[MODIFIED]: ModifiedEvent;
|
|
130
139
|
};
|
|
131
140
|
|
|
132
141
|
type CanvasModificationEvents = {
|
|
@@ -137,6 +146,9 @@ type CanvasModificationEvents = {
|
|
|
137
146
|
'object:skewing': BasicTransformEvent & { target: FabricObject };
|
|
138
147
|
'object:resizing': BasicTransformEvent & { target: FabricObject };
|
|
139
148
|
'object:modifyPoly': BasicTransformEvent & { target: FabricObject };
|
|
149
|
+
'object:modifyPath': BasicTransformEvent & {
|
|
150
|
+
target: FabricObject;
|
|
151
|
+
} & ModifyPathEvent;
|
|
140
152
|
'object:modified': ModifiedEvent;
|
|
141
153
|
};
|
|
142
154
|
|
|
@@ -336,6 +348,6 @@ export interface CanvasEvents
|
|
|
336
348
|
// IText
|
|
337
349
|
'text:selection:changed': { target: IText };
|
|
338
350
|
'text:changed': { target: IText };
|
|
339
|
-
'text:editing:entered': { target: IText }
|
|
351
|
+
'text:editing:entered': { target: IText } & Partial<TEvent>;
|
|
340
352
|
'text:editing:exited': { target: IText };
|
|
341
353
|
}
|
|
@@ -3,6 +3,7 @@ import {
|
|
|
3
3
|
CENTER,
|
|
4
4
|
CHANGED,
|
|
5
5
|
MODIFIED,
|
|
6
|
+
MODIFY_PATH,
|
|
6
7
|
MODIFY_POLY,
|
|
7
8
|
MOVING,
|
|
8
9
|
RESIZING,
|
|
@@ -97,6 +98,7 @@ export class LayoutManager {
|
|
|
97
98
|
SKEWING,
|
|
98
99
|
CHANGED,
|
|
99
100
|
MODIFY_POLY,
|
|
101
|
+
MODIFY_PATH,
|
|
100
102
|
] as (TModificationEvents & 'modified')[]
|
|
101
103
|
).map((key) =>
|
|
102
104
|
object.on(key, (e) =>
|
package/src/Shadow.ts
CHANGED
|
@@ -126,12 +126,7 @@ export class Shadow {
|
|
|
126
126
|
constructor(arg0: string | Partial<TClassProperties<Shadow>>) {
|
|
127
127
|
const options: Partial<TClassProperties<Shadow>> =
|
|
128
128
|
typeof arg0 === 'string' ? Shadow.parseShadow(arg0) : arg0;
|
|
129
|
-
Object.assign(this, Shadow.ownDefaults);
|
|
130
|
-
for (const prop in options) {
|
|
131
|
-
// @ts-expect-error for loops are so messy in TS
|
|
132
|
-
this[prop] = options[prop];
|
|
133
|
-
}
|
|
134
|
-
|
|
129
|
+
Object.assign(this, Shadow.ownDefaults, options);
|
|
135
130
|
this.id = uid();
|
|
136
131
|
}
|
|
137
132
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { NONE } from '../../constants';
|
|
2
2
|
import type { TSize } from '../../typedefs';
|
|
3
3
|
import {
|
|
4
4
|
getDocumentFromElement,
|
|
@@ -50,25 +50,21 @@ export const setCSSDimensions = (
|
|
|
50
50
|
* @return {Object} Object with "left" and "top" properties
|
|
51
51
|
*/
|
|
52
52
|
export function getElementOffset(element: HTMLElement) {
|
|
53
|
-
let box = { left: 0, top: 0 };
|
|
54
53
|
const doc = element && getDocumentFromElement(element),
|
|
55
|
-
offset = { left: 0, top: 0 }
|
|
56
|
-
offsetAttributes = {
|
|
57
|
-
borderLeftWidth: LEFT,
|
|
58
|
-
borderTopWidth: TOP,
|
|
59
|
-
paddingLeft: LEFT,
|
|
60
|
-
paddingTop: TOP,
|
|
61
|
-
} as const;
|
|
54
|
+
offset = { left: 0, top: 0 };
|
|
62
55
|
|
|
63
56
|
if (!doc) {
|
|
64
57
|
return offset;
|
|
65
58
|
}
|
|
66
|
-
const elemStyle =
|
|
67
|
-
getWindowFromElement(element)?.getComputedStyle(element, null) ||
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
59
|
+
const elemStyle: CSSStyleDeclaration =
|
|
60
|
+
getWindowFromElement(element)?.getComputedStyle(element, null) ||
|
|
61
|
+
({} as CSSStyleDeclaration);
|
|
62
|
+
offset.left += parseInt(elemStyle.borderLeftWidth, 10) || 0;
|
|
63
|
+
offset.top += parseInt(elemStyle.borderTopWidth, 10) || 0;
|
|
64
|
+
offset.left += parseInt(elemStyle.paddingLeft, 10) || 0;
|
|
65
|
+
offset.top += parseInt(elemStyle.paddingTop, 10) || 0;
|
|
66
|
+
|
|
67
|
+
let box = { left: 0, top: 0 };
|
|
72
68
|
|
|
73
69
|
const docElem = doc.documentElement;
|
|
74
70
|
if (typeof element.getBoundingClientRect !== 'undefined') {
|
|
@@ -2,6 +2,7 @@ import { FabricObject } from '../shapes/Object/FabricObject';
|
|
|
2
2
|
import { Point } from '../Point';
|
|
3
3
|
import { Canvas } from './Canvas';
|
|
4
4
|
import { Group } from '../shapes/Group';
|
|
5
|
+
import { ActiveSelection } from '../shapes/ActiveSelection';
|
|
5
6
|
|
|
6
7
|
describe('Selectable Canvas', () => {
|
|
7
8
|
describe('_pointIsInObjectSelectionArea', () => {
|
|
@@ -481,4 +482,21 @@ describe('Selectable Canvas', () => {
|
|
|
481
482
|
expect(spy).toHaveBeenCalledTimes(1);
|
|
482
483
|
});
|
|
483
484
|
});
|
|
485
|
+
|
|
486
|
+
describe('_discardActiveObject', () => {
|
|
487
|
+
test('will clear hovered target if the target is the active selection', () => {
|
|
488
|
+
const objects = [new FabricObject(), new FabricObject()];
|
|
489
|
+
const canvas = new Canvas();
|
|
490
|
+
canvas.add(...objects);
|
|
491
|
+
const as = new ActiveSelection(objects);
|
|
492
|
+
as.canvas = canvas;
|
|
493
|
+
canvas._hoveredTarget = as;
|
|
494
|
+
canvas.setActiveObject(as);
|
|
495
|
+
expect(canvas._activeObject).toBe(as);
|
|
496
|
+
expect(canvas._hoveredTarget).toBe(as);
|
|
497
|
+
canvas.discardActiveObject();
|
|
498
|
+
expect(canvas._activeObject).toBe(undefined);
|
|
499
|
+
expect(canvas._hoveredTarget).toBe(undefined);
|
|
500
|
+
});
|
|
501
|
+
});
|
|
484
502
|
});
|
|
@@ -1189,6 +1189,9 @@ export class SelectableCanvas<EventSpec extends CanvasEvents = CanvasEvents>
|
|
|
1189
1189
|
if (this._currentTransform && this._currentTransform.target === obj) {
|
|
1190
1190
|
this.endCurrentTransform(e);
|
|
1191
1191
|
}
|
|
1192
|
+
if (isActiveSelection(obj) && obj === this._hoveredTarget) {
|
|
1193
|
+
this._hoveredTarget = undefined;
|
|
1194
|
+
}
|
|
1192
1195
|
this._activeObject = undefined;
|
|
1193
1196
|
return true;
|
|
1194
1197
|
}
|
package/src/constants.ts
CHANGED
|
@@ -33,6 +33,7 @@ export const ROTATE = 'rotate';
|
|
|
33
33
|
export const SKEWING = 'skewing';
|
|
34
34
|
export const RESIZING = 'resizing';
|
|
35
35
|
export const MODIFY_POLY = 'modifyPoly';
|
|
36
|
+
export const MODIFY_PATH = 'modifyPath';
|
|
36
37
|
export const CHANGED = 'changed';
|
|
37
38
|
export const SCALE = 'scale';
|
|
38
39
|
export const SCALE_X = 'scaleX';
|
|
@@ -15,12 +15,14 @@ export type ControlRenderingStyleOverride = Partial<
|
|
|
15
15
|
>
|
|
16
16
|
>;
|
|
17
17
|
|
|
18
|
-
export type ControlRenderer
|
|
18
|
+
export type ControlRenderer<
|
|
19
|
+
O extends InteractiveFabricObject = InteractiveFabricObject
|
|
20
|
+
> = (
|
|
19
21
|
ctx: CanvasRenderingContext2D,
|
|
20
22
|
left: number,
|
|
21
23
|
top: number,
|
|
22
24
|
styleOverride: ControlRenderingStyleOverride,
|
|
23
|
-
fabricObject:
|
|
25
|
+
fabricObject: O
|
|
24
26
|
) => void;
|
|
25
27
|
|
|
26
28
|
/**
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type {
|
|
2
|
-
|
|
2
|
+
ObjectModificationEvents,
|
|
3
3
|
TModificationEvents,
|
|
4
4
|
} from '../EventTypeDefs';
|
|
5
5
|
|
|
6
6
|
export const fireEvent = (
|
|
7
7
|
eventName: TModificationEvents,
|
|
8
|
-
options:
|
|
8
|
+
options: ObjectModificationEvents[typeof eventName]
|
|
9
9
|
) => {
|
|
10
10
|
const {
|
|
11
11
|
transform: { target },
|
package/src/controls/index.ts
CHANGED
|
@@ -20,3 +20,4 @@ export { skewCursorStyleHandler, skewHandlerX, skewHandlerY } from './skew';
|
|
|
20
20
|
export { getLocalPoint } from './util';
|
|
21
21
|
export { wrapWithFireEvent } from './wrapWithFireEvent';
|
|
22
22
|
export { wrapWithFixedAnchor } from './wrapWithFixedAnchor';
|
|
23
|
+
export * from './pathControl';
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/* eslint-disable no-restricted-globals */
|
|
2
|
+
import { Canvas } from '../canvas/Canvas';
|
|
3
|
+
import { Path } from '../shapes/Path';
|
|
4
|
+
import { createPathControls } from './pathControl';
|
|
5
|
+
|
|
6
|
+
describe('pathControls', () => {
|
|
7
|
+
it('should fire events', () => {
|
|
8
|
+
const path = new Path('M 50 50 C 150 100, 50 100, 50 150');
|
|
9
|
+
path.controls = createPathControls(path);
|
|
10
|
+
expect(Object.keys(path.controls)).toEqual([
|
|
11
|
+
'c_0_M',
|
|
12
|
+
'c_1_C',
|
|
13
|
+
'c_1_C_CP_1',
|
|
14
|
+
'c_1_C_CP_2',
|
|
15
|
+
]);
|
|
16
|
+
const canvas = new Canvas();
|
|
17
|
+
canvas.add(path);
|
|
18
|
+
canvas.setActiveObject(path);
|
|
19
|
+
const spyModifyPath = jest.fn();
|
|
20
|
+
const spyModified = jest.fn();
|
|
21
|
+
path.on('modifyPath', spyModifyPath);
|
|
22
|
+
path.on('modified', spyModified);
|
|
23
|
+
canvas
|
|
24
|
+
.getSelectionElement()
|
|
25
|
+
.dispatchEvent(new MouseEvent('mousedown', { clientX: 50, clientY: 50 }));
|
|
26
|
+
canvas._setupCurrentTransform(
|
|
27
|
+
new MouseEvent('mousedown', { clientX: 50, clientY: 50 }),
|
|
28
|
+
path,
|
|
29
|
+
true
|
|
30
|
+
);
|
|
31
|
+
document.dispatchEvent(
|
|
32
|
+
new MouseEvent('mousemove', { clientX: 55, clientY: 55 })
|
|
33
|
+
);
|
|
34
|
+
document.dispatchEvent(
|
|
35
|
+
new MouseEvent('mouseup', { clientX: 55, clientY: 55 })
|
|
36
|
+
);
|
|
37
|
+
|
|
38
|
+
expect(spyModifyPath).toHaveBeenCalledWith(
|
|
39
|
+
expect.objectContaining({
|
|
40
|
+
commandIndex: 0,
|
|
41
|
+
pointIndex: 1,
|
|
42
|
+
transform: expect.objectContaining({
|
|
43
|
+
action: 'modifyPath',
|
|
44
|
+
}),
|
|
45
|
+
})
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
canvas
|
|
49
|
+
.getSelectionElement()
|
|
50
|
+
.dispatchEvent(
|
|
51
|
+
new MouseEvent('mousedown', { clientX: 50, clientY: 150 })
|
|
52
|
+
);
|
|
53
|
+
canvas._setupCurrentTransform(
|
|
54
|
+
new MouseEvent('mousedown', { clientX: 50, clientY: 150 }),
|
|
55
|
+
path,
|
|
56
|
+
true
|
|
57
|
+
);
|
|
58
|
+
document.dispatchEvent(
|
|
59
|
+
new MouseEvent('mousemove', { clientX: 55, clientY: 155 })
|
|
60
|
+
);
|
|
61
|
+
document.dispatchEvent(
|
|
62
|
+
new MouseEvent('mouseup', { clientX: 55, clientY: 155 })
|
|
63
|
+
);
|
|
64
|
+
|
|
65
|
+
expect(spyModifyPath).toHaveBeenCalledWith(
|
|
66
|
+
expect.objectContaining({
|
|
67
|
+
commandIndex: 1,
|
|
68
|
+
pointIndex: 5,
|
|
69
|
+
transform: expect.objectContaining({
|
|
70
|
+
action: 'modifyPath',
|
|
71
|
+
}),
|
|
72
|
+
})
|
|
73
|
+
);
|
|
74
|
+
});
|
|
75
|
+
});
|