@tmagic/stage 1.1.0-beta.6 → 1.1.0-beta.7
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/tmagic-stage.mjs +10 -4
- package/dist/tmagic-stage.mjs.map +1 -1
- package/dist/tmagic-stage.umd.js +10 -4
- package/dist/tmagic-stage.umd.js.map +1 -1
- package/package.json +4 -4
- package/src/StageCore.ts +1 -1
- package/src/StageMask.ts +7 -2
- package/src/StageMultiDragResize.ts +7 -3
- package/types/StageMultiDragResize.d.ts +1 -1
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.1.0-beta.
|
|
2
|
+
"version": "1.1.0-beta.7",
|
|
3
3
|
"name": "@tmagic/stage",
|
|
4
4
|
"sideEffects": [
|
|
5
5
|
"dist/*"
|
|
@@ -29,9 +29,9 @@
|
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@scena/guides": "^0.17.0",
|
|
32
|
-
"@tmagic/core": "1.1.0-beta.
|
|
33
|
-
"@tmagic/schema": "1.1.0-beta.
|
|
34
|
-
"@tmagic/utils": "1.1.0-beta.
|
|
32
|
+
"@tmagic/core": "1.1.0-beta.7",
|
|
33
|
+
"@tmagic/schema": "1.1.0-beta.7",
|
|
34
|
+
"@tmagic/utils": "1.1.0-beta.7",
|
|
35
35
|
"events": "^3.3.0",
|
|
36
36
|
"keycon": "^1.1.2",
|
|
37
37
|
"lodash-es": "^4.17.21",
|
package/src/StageCore.ts
CHANGED
|
@@ -180,7 +180,7 @@ export default class StageCore extends EventEmitter {
|
|
|
180
180
|
if (!canSelectByProp) return false;
|
|
181
181
|
// 多选规则
|
|
182
182
|
if (this.mask.isMultiSelectStatus) {
|
|
183
|
-
return this.multiDr.canSelect(el);
|
|
183
|
+
return this.multiDr.canSelect(el, stop);
|
|
184
184
|
}
|
|
185
185
|
return true;
|
|
186
186
|
}
|
package/src/StageMask.ts
CHANGED
|
@@ -108,11 +108,16 @@ export default class StageMask extends Rule {
|
|
|
108
108
|
this.content.addEventListener('wheel', this.mouseWheelHandler);
|
|
109
109
|
this.content.addEventListener('mousemove', this.highlightHandler);
|
|
110
110
|
this.content.addEventListener('mouseleave', this.mouseLeaveHandler);
|
|
111
|
-
|
|
111
|
+
|
|
112
|
+
const isMac = /mac os x/.test(navigator.userAgent.toLowerCase());
|
|
113
|
+
|
|
114
|
+
const ctrl = isMac ? 'meta' : 'ctrl';
|
|
115
|
+
|
|
116
|
+
KeyController.global.keydown(ctrl, (e) => {
|
|
112
117
|
e.inputEvent.preventDefault();
|
|
113
118
|
this.isMultiSelectStatus = true;
|
|
114
119
|
});
|
|
115
|
-
KeyController.global.keyup(
|
|
120
|
+
KeyController.global.keyup(ctrl, (e) => {
|
|
116
121
|
e.inputEvent.preventDefault();
|
|
117
122
|
this.isMultiSelectStatus = false;
|
|
118
123
|
});
|
|
@@ -127,16 +127,20 @@ export default class StageMultiDragResize extends EventEmitter {
|
|
|
127
127
|
});
|
|
128
128
|
}
|
|
129
129
|
|
|
130
|
-
public canSelect(el: HTMLElement): Boolean {
|
|
131
|
-
//
|
|
130
|
+
public canSelect(el: HTMLElement, stop: () => boolean): Boolean {
|
|
131
|
+
// 多选状态下不可以选中magic-ui-page,并停止继续向上层选中
|
|
132
132
|
if (el.className.includes(PAGE_CLASS)) {
|
|
133
133
|
this.core.highlightedDom = undefined;
|
|
134
134
|
this.core.highlightLayer.clearHighlight();
|
|
135
|
+
stop();
|
|
135
136
|
return false;
|
|
136
137
|
}
|
|
137
138
|
const currentTargetMode = getMode(el);
|
|
138
139
|
let selectedDomMode = '';
|
|
139
|
-
|
|
140
|
+
if (this.core.selectedDom?.className.includes(PAGE_CLASS)) {
|
|
141
|
+
// 先单击选中了页面(magic-ui-page),再按住多选键多选时,任一元素均可选中
|
|
142
|
+
return true;
|
|
143
|
+
}
|
|
140
144
|
if (this.targetList.length === 0 && this.core.selectedDom) {
|
|
141
145
|
// 单选后添加到多选的情况
|
|
142
146
|
selectedDomMode = getMode(this.core.selectedDom);
|