fabric-vectr 6.6.2 → 6.6.4
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 +83 -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 +83 -7
- package/dist/index.mjs.map +1 -1
- package/dist/index.node.cjs +83 -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 +83 -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 +36 -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 +72 -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 +36 -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 +88 -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.4";
|
|
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,23 @@
|
|
|
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);
|
|
13632
|
+
/**
|
|
13633
|
+
* 指定的搜索对象
|
|
13634
|
+
* @type Boolean
|
|
13635
|
+
* @default null
|
|
13636
|
+
*/
|
|
13637
|
+
_defineProperty(this, "_searchTargets", void 0);
|
|
13622
13638
|
/**
|
|
13623
13639
|
* Keep track of the subTargets for Mouse Events, ordered bottom up from innermost nested subTarget
|
|
13624
13640
|
* @type FabricObject[]
|
|
@@ -14023,6 +14039,56 @@
|
|
|
14023
14039
|
ctx.strokeRect(minX, minY, maxX - minX, maxY - minY);
|
|
14024
14040
|
}
|
|
14025
14041
|
|
|
14042
|
+
/**
|
|
14043
|
+
* 双击选择
|
|
14044
|
+
* @param e
|
|
14045
|
+
* @returns
|
|
14046
|
+
*/
|
|
14047
|
+
dblClickLock(e) {
|
|
14048
|
+
if (this.dblClickIsolateObject) {
|
|
14049
|
+
const pointer = this.getViewportPoint(e);
|
|
14050
|
+
const objects = this.isolatedObject ? this.isolatedObject.getObjects() : this.getObjects();
|
|
14051
|
+
const obj = this.searchPossibleTargets(objects, pointer);
|
|
14052
|
+
if (obj) {
|
|
14053
|
+
if (obj instanceof Group) {
|
|
14054
|
+
// 组才修改锁定
|
|
14055
|
+
this.isolatedObject = obj;
|
|
14056
|
+
this.discardActiveObject();
|
|
14057
|
+
// 新创建的组对象,子节点coords初始化,否则无法选中
|
|
14058
|
+
obj._objects.forEach(o => {
|
|
14059
|
+
o.setCoords();
|
|
14060
|
+
});
|
|
14061
|
+
} else {
|
|
14062
|
+
// 非组对象不处理锁定,返回false继续对象自己的双击事件
|
|
14063
|
+
return false;
|
|
14064
|
+
}
|
|
14065
|
+
} else {
|
|
14066
|
+
// 取消锁定
|
|
14067
|
+
this.isolatedObject = null;
|
|
14068
|
+
this.discardActiveObject();
|
|
14069
|
+
}
|
|
14070
|
+
return true;
|
|
14071
|
+
}
|
|
14072
|
+
return false;
|
|
14073
|
+
}
|
|
14074
|
+
|
|
14075
|
+
/**
|
|
14076
|
+
* 设置搜索对象
|
|
14077
|
+
* 如当编辑path时,设置点为可搜索对象
|
|
14078
|
+
* @param objects
|
|
14079
|
+
*/
|
|
14080
|
+
setSearchTargets(objects) {
|
|
14081
|
+
this._searchTargets = objects;
|
|
14082
|
+
}
|
|
14083
|
+
|
|
14084
|
+
/**
|
|
14085
|
+
* 返回搜索对象
|
|
14086
|
+
* @returns
|
|
14087
|
+
*/
|
|
14088
|
+
getSearchTargets() {
|
|
14089
|
+
return this._searchTargets || (this.isolatedObject ? this.isolatedObject._objects : this._objects);
|
|
14090
|
+
}
|
|
14091
|
+
|
|
14026
14092
|
/**
|
|
14027
14093
|
* Method that determines what object we are clicking on
|
|
14028
14094
|
* 11/09/2018 TODO: would be cool if findTarget could discern between being a full target
|
|
@@ -14054,7 +14120,7 @@
|
|
|
14054
14120
|
} else {
|
|
14055
14121
|
const subTargets = this.targets;
|
|
14056
14122
|
this.targets = [];
|
|
14057
|
-
const target = this.searchPossibleTargets(this.
|
|
14123
|
+
const target = this.searchPossibleTargets(this.getSearchTargets(), pointer);
|
|
14058
14124
|
if (e[this.altSelectionKey] && target && target !== activeObject) {
|
|
14059
14125
|
// alt selection: select active object even though it is not the top most target
|
|
14060
14126
|
// restore targets
|
|
@@ -14065,7 +14131,7 @@
|
|
|
14065
14131
|
}
|
|
14066
14132
|
}
|
|
14067
14133
|
}
|
|
14068
|
-
return this.searchPossibleTargets(this.
|
|
14134
|
+
return this.searchPossibleTargets(this.getSearchTargets(), pointer);
|
|
14069
14135
|
}
|
|
14070
14136
|
|
|
14071
14137
|
/**
|
|
@@ -14139,7 +14205,8 @@
|
|
|
14139
14205
|
while (i--) {
|
|
14140
14206
|
const target = objects[i];
|
|
14141
14207
|
if (this._checkTarget(target, pointer)) {
|
|
14142
|
-
|
|
14208
|
+
// 没有开启双击锁定节点才搜索子节点
|
|
14209
|
+
if (!this.dblClickIsolateObject && isCollection(target) && target.subTargetCheck) {
|
|
14143
14210
|
const subTarget = this._searchPossibleTargets(target._objects, pointer);
|
|
14144
14211
|
subTarget && this.targets.push(subTarget);
|
|
14145
14212
|
}
|
|
@@ -15156,11 +15223,20 @@
|
|
|
15156
15223
|
const clicks = e.detail;
|
|
15157
15224
|
if (clicks > 3 || clicks < 2) return;
|
|
15158
15225
|
this._cacheTransformEventData(e);
|
|
15159
|
-
clicks == 2 && e.type === 'dblclick' && this.
|
|
15226
|
+
clicks == 2 && e.type === 'dblclick' && this._onDblClick(e);
|
|
15160
15227
|
clicks == 3 && this._handleEvent(e, 'tripleclick');
|
|
15161
15228
|
this._resetTransformEventData();
|
|
15162
15229
|
}
|
|
15163
15230
|
|
|
15231
|
+
/**
|
|
15232
|
+
* 双击选择锁定组的子节点
|
|
15233
|
+
* @param e
|
|
15234
|
+
*/
|
|
15235
|
+
_onDblClick(e) {
|
|
15236
|
+
if (this.dblClickLock(e)) return;
|
|
15237
|
+
this._handleEvent(e, 'dblclick');
|
|
15238
|
+
}
|
|
15239
|
+
|
|
15164
15240
|
/**
|
|
15165
15241
|
* Return a the id of an event.
|
|
15166
15242
|
* returns either the pointerId or the identifier or 0 for the mouse event
|