@tmagic/stage 1.3.3 → 1.3.5
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.js +17 -10
- package/dist/tmagic-stage.js.map +1 -1
- package/dist/tmagic-stage.umd.cjs +17 -10
- package/dist/tmagic-stage.umd.cjs.map +1 -1
- package/package.json +4 -4
- package/src/ActionManager.ts +1 -0
- package/src/MoveableOptionsManager.ts +28 -9
- package/src/StageDragResize.ts +1 -3
- package/src/StageMultiDragResize.ts +1 -3
- package/src/types.ts +1 -0
- package/types/MoveableOptionsManager.d.ts +2 -3
- package/types/types.d.ts +1 -0
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.3.
|
|
2
|
+
"version": "1.3.5",
|
|
3
3
|
"name": "@tmagic/stage",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"sideEffects": [
|
|
@@ -31,9 +31,9 @@
|
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"@scena/guides": "^0.29.2",
|
|
34
|
-
"@tmagic/core": "1.3.
|
|
35
|
-
"@tmagic/schema": "1.3.
|
|
36
|
-
"@tmagic/utils": "1.3.
|
|
34
|
+
"@tmagic/core": "1.3.5",
|
|
35
|
+
"@tmagic/schema": "1.3.5",
|
|
36
|
+
"@tmagic/utils": "1.3.5",
|
|
37
37
|
"events": "^3.3.0",
|
|
38
38
|
"keycon": "^1.4.0",
|
|
39
39
|
"lodash-es": "^4.17.21",
|
package/src/ActionManager.ts
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
import EventEmitter from 'events';
|
|
20
20
|
|
|
21
21
|
import { merge } from 'lodash-es';
|
|
22
|
-
import { MoveableOptions } from 'moveable';
|
|
22
|
+
import type { ElementGuidelineValueOption, MoveableOptions, MoveableRefType } from 'moveable';
|
|
23
23
|
|
|
24
24
|
import { GuidesType, Mode } from './const';
|
|
25
25
|
import MoveableActionsAble from './MoveableActionsAble';
|
|
@@ -88,16 +88,19 @@ export default class MoveableOptionsManager extends EventEmitter {
|
|
|
88
88
|
/**
|
|
89
89
|
* 设置有哪些元素要辅助对齐
|
|
90
90
|
* @param selectedElList 选中的元素列表,需要排除在对齐元素之外
|
|
91
|
-
* @param allElList 全部元素列表
|
|
92
91
|
*/
|
|
93
|
-
protected setElementGuidelines(selectedElList: HTMLElement[]
|
|
92
|
+
protected setElementGuidelines(selectedElList: HTMLElement[]): void {
|
|
94
93
|
this.elementGuidelines.forEach((node) => {
|
|
95
94
|
node.remove();
|
|
96
95
|
});
|
|
97
96
|
this.elementGuidelines = [];
|
|
98
97
|
|
|
98
|
+
// 设置选中元素的周围元素,用于选中元素跟周围元素对齐辅助
|
|
99
|
+
const elementGuidelines: Array<ElementGuidelineValueOption | MoveableRefType<Element>> =
|
|
100
|
+
this.getCustomizeOptions()?.elementGuidelines || Array.from(selectedElList[0]?.parentElement?.children || []);
|
|
101
|
+
|
|
99
102
|
if (this.mode === Mode.ABSOLUTE) {
|
|
100
|
-
this.container.append(this.createGuidelineElements(selectedElList,
|
|
103
|
+
this.container.append(this.createGuidelineElements(selectedElList, elementGuidelines));
|
|
101
104
|
}
|
|
102
105
|
}
|
|
103
106
|
|
|
@@ -224,13 +227,29 @@ export default class MoveableOptionsManager extends EventEmitter {
|
|
|
224
227
|
* @param allElList 全部元素列表
|
|
225
228
|
* @returns frame 辅助对齐元素集合的页面片
|
|
226
229
|
*/
|
|
227
|
-
private createGuidelineElements(
|
|
230
|
+
private createGuidelineElements(
|
|
231
|
+
selectedElList: HTMLElement[],
|
|
232
|
+
allElList: Array<ElementGuidelineValueOption | MoveableRefType<Element>>,
|
|
233
|
+
): DocumentFragment {
|
|
228
234
|
const frame = globalThis.document.createDocumentFragment();
|
|
229
235
|
|
|
230
|
-
for (const
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
236
|
+
for (const element of allElList) {
|
|
237
|
+
let node: MoveableRefType<Element> =
|
|
238
|
+
(element as ElementGuidelineValueOption).element || (element as MoveableRefType<Element>);
|
|
239
|
+
|
|
240
|
+
if (!node || typeof node === 'string') continue;
|
|
241
|
+
|
|
242
|
+
if (typeof node === 'function') {
|
|
243
|
+
node = node();
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
if (this.isInElementList(node as Element, selectedElList)) continue;
|
|
247
|
+
|
|
248
|
+
const { width, height } = (node as Element).getBoundingClientRect();
|
|
249
|
+
|
|
250
|
+
if (!width || !height) continue;
|
|
251
|
+
|
|
252
|
+
const { left, top } = getOffset(node as Element);
|
|
234
253
|
const elementGuideline = globalThis.document.createElement('div');
|
|
235
254
|
elementGuideline.style.cssText = `position: absolute;width: ${width}px;height: ${height}px;top: ${top}px;left: ${left}px`;
|
|
236
255
|
this.elementGuidelines.push(elementGuideline);
|
package/src/StageDragResize.ts
CHANGED
|
@@ -131,9 +131,7 @@ export default class StageDragResize extends MoveableOptionsManager {
|
|
|
131
131
|
this.dragResizeHelper.updateShadowEl(el);
|
|
132
132
|
this.dragResizeHelper.setMode(this.mode);
|
|
133
133
|
|
|
134
|
-
|
|
135
|
-
const elementGuidelines: Element[] = Array.from(this.target?.parentElement?.children || []);
|
|
136
|
-
this.setElementGuidelines([this.target as HTMLElement], elementGuidelines);
|
|
134
|
+
this.setElementGuidelines([this.target as HTMLElement]);
|
|
137
135
|
|
|
138
136
|
return this.getOptions(false, {
|
|
139
137
|
target: this.dragResizeHelper.getShadowEl(),
|
|
@@ -79,9 +79,7 @@ export default class StageMultiDragResize extends MoveableOptionsManager {
|
|
|
79
79
|
|
|
80
80
|
this.dragResizeHelper.updateGroup(els);
|
|
81
81
|
|
|
82
|
-
|
|
83
|
-
const elementGuidelines: Element[] = Array.from(this.targetList[0].parentElement?.children || []);
|
|
84
|
-
this.setElementGuidelines(this.targetList, elementGuidelines);
|
|
82
|
+
this.setElementGuidelines(this.targetList);
|
|
85
83
|
|
|
86
84
|
this.moveableForMulti?.destroy();
|
|
87
85
|
this.dragResizeHelper.clear();
|
package/src/types.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import EventEmitter from 'events';
|
|
3
|
-
import { MoveableOptions } from 'moveable';
|
|
3
|
+
import type { MoveableOptions } from 'moveable';
|
|
4
4
|
import { GuidesType, Mode } from './const';
|
|
5
5
|
import { MoveableOptionsManagerConfig } from './types';
|
|
6
6
|
/**
|
|
@@ -38,9 +38,8 @@ export default class MoveableOptionsManager extends EventEmitter {
|
|
|
38
38
|
/**
|
|
39
39
|
* 设置有哪些元素要辅助对齐
|
|
40
40
|
* @param selectedElList 选中的元素列表,需要排除在对齐元素之外
|
|
41
|
-
* @param allElList 全部元素列表
|
|
42
41
|
*/
|
|
43
|
-
protected setElementGuidelines(selectedElList: HTMLElement[]
|
|
42
|
+
protected setElementGuidelines(selectedElList: HTMLElement[]): void;
|
|
44
43
|
/**
|
|
45
44
|
* 获取moveable参数
|
|
46
45
|
* @param isMultiSelect 是否多选模式
|