fabric-vectr 6.6.2 → 6.6.3
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/dist/index.js +64 -7
- 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 +64 -7
- package/dist/index.mjs.map +1 -1
- package/dist/index.node.cjs +64 -7
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.min.mjs +1 -1
- package/dist/index.node.min.mjs.map +1 -1
- package/dist/index.node.mjs +64 -7
- 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/canvas/Canvas.d.ts +5 -0
- package/dist/src/canvas/Canvas.d.ts.map +1 -1
- package/dist/src/canvas/Canvas.min.mjs +1 -1
- package/dist/src/canvas/Canvas.min.mjs.map +1 -1
- package/dist/src/canvas/Canvas.mjs +10 -1
- package/dist/src/canvas/Canvas.mjs.map +1 -1
- package/dist/src/canvas/CanvasOptions.d.ts +6 -0
- package/dist/src/canvas/CanvasOptions.d.ts.map +1 -1
- package/dist/src/canvas/CanvasOptions.min.mjs.map +1 -1
- package/dist/src/canvas/CanvasOptions.mjs.map +1 -1
- package/dist/src/canvas/SelectableCanvas.d.ts +24 -0
- 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 +53 -5
- package/dist/src/canvas/SelectableCanvas.mjs.map +1 -1
- package/dist/src/shapes/Object/InteractiveObject.min.mjs +1 -1
- package/dist/src/shapes/Object/InteractiveObject.min.mjs.map +1 -1
- package/dist/src/shapes/Object/InteractiveObject.mjs +1 -1
- package/dist/src/shapes/Object/InteractiveObject.mjs.map +1 -1
- package/dist-extensions/src/canvas/Canvas.d.ts +5 -0
- package/dist-extensions/src/canvas/Canvas.d.ts.map +1 -1
- package/dist-extensions/src/canvas/CanvasOptions.d.ts +6 -0
- package/dist-extensions/src/canvas/CanvasOptions.d.ts.map +1 -1
- package/dist-extensions/src/canvas/SelectableCanvas.d.ts +24 -0
- package/dist-extensions/src/canvas/SelectableCanvas.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/canvas/Canvas.ts +10 -1
- package/src/canvas/CanvasOptions.ts +7 -0
- package/src/canvas/SelectableCanvas.ts +65 -3
- package/src/shapes/Object/InteractiveObject.ts +1 -1
package/dist/index.js
CHANGED
|
@@ -366,7 +366,7 @@
|
|
|
366
366
|
}
|
|
367
367
|
const cache = new Cache();
|
|
368
368
|
|
|
369
|
-
var version = "6.6.
|
|
369
|
+
var version = "6.6.3";
|
|
370
370
|
|
|
371
371
|
// use this syntax so babel plugin see this import here
|
|
372
372
|
const VERSION = version;
|
|
@@ -9537,7 +9537,7 @@
|
|
|
9537
9537
|
*/
|
|
9538
9538
|
findControl(pointer) {
|
|
9539
9539
|
let forTouch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
9540
|
-
if (!this.hasControls || !this.canvas) {
|
|
9540
|
+
if (!this.hasControls || !this.canvas || !this.oCoords) {
|
|
9541
9541
|
return undefined;
|
|
9542
9542
|
}
|
|
9543
9543
|
this.__corner = undefined;
|
|
@@ -13618,7 +13618,17 @@
|
|
|
13618
13618
|
* @type Boolean
|
|
13619
13619
|
* @default
|
|
13620
13620
|
*/
|
|
13621
|
-
|
|
13621
|
+
/**
|
|
13622
|
+
* 启用双击锁定组对象,锁定后只能选择对象的子节点,无论group中interative和subTargetCheck是否启用
|
|
13623
|
+
* @type Boolean
|
|
13624
|
+
* @default
|
|
13625
|
+
*/
|
|
13626
|
+
/**
|
|
13627
|
+
* 双击锁定的节点, 目前只支持组节点
|
|
13628
|
+
* @type Group | null
|
|
13629
|
+
* @default
|
|
13630
|
+
*/
|
|
13631
|
+
_defineProperty(this, "isolatedObject", void 0);
|
|
13622
13632
|
/**
|
|
13623
13633
|
* Keep track of the subTargets for Mouse Events, ordered bottom up from innermost nested subTarget
|
|
13624
13634
|
* @type FabricObject[]
|
|
@@ -14023,6 +14033,43 @@
|
|
|
14023
14033
|
ctx.strokeRect(minX, minY, maxX - minX, maxY - minY);
|
|
14024
14034
|
}
|
|
14025
14035
|
|
|
14036
|
+
/**
|
|
14037
|
+
* 双击选择
|
|
14038
|
+
* @param e
|
|
14039
|
+
* @returns
|
|
14040
|
+
*/
|
|
14041
|
+
dblClickLock(e) {
|
|
14042
|
+
if (this.dblClickIsolateObject) {
|
|
14043
|
+
const pointer = this.getViewportPoint(e);
|
|
14044
|
+
const objects = this.isolatedObject ? this.isolatedObject.getObjects() : this.getObjects();
|
|
14045
|
+
const obj = this.searchPossibleTargets(objects, pointer);
|
|
14046
|
+
if (obj) {
|
|
14047
|
+
if (obj instanceof Group) {
|
|
14048
|
+
// 组才修改锁定
|
|
14049
|
+
this.isolatedObject = obj;
|
|
14050
|
+
this.discardActiveObject();
|
|
14051
|
+
} else {
|
|
14052
|
+
// 非组对象不处理锁定,返回false继续对象自己的双击事件
|
|
14053
|
+
return false;
|
|
14054
|
+
}
|
|
14055
|
+
} else {
|
|
14056
|
+
// 取消锁定
|
|
14057
|
+
this.isolatedObject = null;
|
|
14058
|
+
this.discardActiveObject();
|
|
14059
|
+
}
|
|
14060
|
+
return true;
|
|
14061
|
+
}
|
|
14062
|
+
return false;
|
|
14063
|
+
}
|
|
14064
|
+
|
|
14065
|
+
/**
|
|
14066
|
+
* 返回搜索对象
|
|
14067
|
+
* @returns
|
|
14068
|
+
*/
|
|
14069
|
+
getSearchTargets() {
|
|
14070
|
+
return this.isolatedObject ? this.isolatedObject._objects : this._objects;
|
|
14071
|
+
}
|
|
14072
|
+
|
|
14026
14073
|
/**
|
|
14027
14074
|
* Method that determines what object we are clicking on
|
|
14028
14075
|
* 11/09/2018 TODO: would be cool if findTarget could discern between being a full target
|
|
@@ -14054,7 +14101,7 @@
|
|
|
14054
14101
|
} else {
|
|
14055
14102
|
const subTargets = this.targets;
|
|
14056
14103
|
this.targets = [];
|
|
14057
|
-
const target = this.searchPossibleTargets(this.
|
|
14104
|
+
const target = this.searchPossibleTargets(this.getSearchTargets(), pointer);
|
|
14058
14105
|
if (e[this.altSelectionKey] && target && target !== activeObject) {
|
|
14059
14106
|
// alt selection: select active object even though it is not the top most target
|
|
14060
14107
|
// restore targets
|
|
@@ -14065,7 +14112,7 @@
|
|
|
14065
14112
|
}
|
|
14066
14113
|
}
|
|
14067
14114
|
}
|
|
14068
|
-
return this.searchPossibleTargets(this.
|
|
14115
|
+
return this.searchPossibleTargets(this.getSearchTargets(), pointer);
|
|
14069
14116
|
}
|
|
14070
14117
|
|
|
14071
14118
|
/**
|
|
@@ -14139,7 +14186,8 @@
|
|
|
14139
14186
|
while (i--) {
|
|
14140
14187
|
const target = objects[i];
|
|
14141
14188
|
if (this._checkTarget(target, pointer)) {
|
|
14142
|
-
|
|
14189
|
+
// 没有开启双击锁定节点才搜索子节点
|
|
14190
|
+
if (!this.dblClickIsolateObject && isCollection(target) && target.subTargetCheck) {
|
|
14143
14191
|
const subTarget = this._searchPossibleTargets(target._objects, pointer);
|
|
14144
14192
|
subTarget && this.targets.push(subTarget);
|
|
14145
14193
|
}
|
|
@@ -15156,11 +15204,20 @@
|
|
|
15156
15204
|
const clicks = e.detail;
|
|
15157
15205
|
if (clicks > 3 || clicks < 2) return;
|
|
15158
15206
|
this._cacheTransformEventData(e);
|
|
15159
|
-
clicks == 2 && e.type === 'dblclick' && this.
|
|
15207
|
+
clicks == 2 && e.type === 'dblclick' && this._onDblClick(e);
|
|
15160
15208
|
clicks == 3 && this._handleEvent(e, 'tripleclick');
|
|
15161
15209
|
this._resetTransformEventData();
|
|
15162
15210
|
}
|
|
15163
15211
|
|
|
15212
|
+
/**
|
|
15213
|
+
* 双击选择锁定组的子节点
|
|
15214
|
+
* @param e
|
|
15215
|
+
*/
|
|
15216
|
+
_onDblClick(e) {
|
|
15217
|
+
if (this.dblClickLock(e)) return;
|
|
15218
|
+
this._handleEvent(e, 'dblclick');
|
|
15219
|
+
}
|
|
15220
|
+
|
|
15164
15221
|
/**
|
|
15165
15222
|
* Return a the id of an event.
|
|
15166
15223
|
* returns either the pointerId or the identifier or 0 for the mouse event
|