feat(stage): feat(stage): 新增获取moveable配置的方法

re #521
This commit is contained in:
roymondchen 2023-07-06 16:29:42 +08:00
parent 9d24069dcd
commit 17101687bf
3 changed files with 26 additions and 4 deletions

View File

@ -19,9 +19,10 @@ import EventEmitter from 'events';
import KeyController from 'keycon';
import { throttle } from 'lodash-es';
import type { MoveableOptions } from 'moveable';
import { Env } from '@tmagic/core';
import { Id } from '@tmagic/schema';
import type { Id } from '@tmagic/schema';
import { addClassName, getDocument, removeClassNameByClassName } from '@tmagic/utils';
import { CONTAINER_HIGHLIGHT_CLASS_NAME, GHOST_EL_ID_PREFIX, GuidesType, MouseButton, PAGE_CLASS } from './const';
@ -186,6 +187,15 @@ export default class ActionManager extends EventEmitter {
return this.selectedElList;
}
public getMoveableOption<K extends keyof MoveableOptions>(key: K): MoveableOptions[K] | undefined {
if (this.dr.getTarget()) {
return this.dr.getOption(key);
}
if (this.multiDr.targetList.length) {
return this.multiDr.getOption(key);
}
}
/**
*
* @param event

View File

@ -36,6 +36,7 @@ export default class MoveableOptionsManager extends EventEmitter {
/** 画布容器 */
protected container: HTMLElement;
protected options: MoveableOptions = {};
/** 水平参考线 */
private horizontalGuidelines: number[] = [];
@ -55,6 +56,10 @@ export default class MoveableOptionsManager extends EventEmitter {
this.getRootContainer = config.getRootContainer;
}
public getOption<K extends keyof MoveableOptions>(key: K): MoveableOptions[K] {
return this.options[key];
}
/**
* /线
* @param type 线
@ -106,7 +111,8 @@ export default class MoveableOptionsManager extends EventEmitter {
const defaultOptions = this.getDefaultOptions(isMultiSelect);
const customizedOptions = this.getCustomizeOptions();
return merge(defaultOptions, customizedOptions, runtimeOptions);
this.options = merge(defaultOptions, customizedOptions, runtimeOptions);
return this.options;
}
/**

View File

@ -18,13 +18,15 @@
import { EventEmitter } from 'events';
import { Id } from '@tmagic/schema';
import type { MoveableOptions } from 'moveable';
import type { Id } from '@tmagic/schema';
import ActionManager from './ActionManager';
import { DEFAULT_ZOOM } from './const';
import StageMask from './StageMask';
import StageRender from './StageRender';
import {
import type {
ActionManagerConfig,
CustomizeRender,
GuidesEventData,
@ -207,6 +209,10 @@ export default class StageCore extends EventEmitter {
return this.actionManager.delayedMarkContainer(event, excludeElList);
}
public getMoveableOption<K extends keyof MoveableOptions>(key: K): MoveableOptions[K] | undefined {
return this.actionManager.getMoveableOption(key);
}
/**
*
*/