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 KeyController from 'keycon';
import { throttle } from 'lodash-es'; import { throttle } from 'lodash-es';
import type { MoveableOptions } from 'moveable';
import { Env } from '@tmagic/core'; import { Env } from '@tmagic/core';
import { Id } from '@tmagic/schema'; import type { Id } from '@tmagic/schema';
import { addClassName, getDocument, removeClassNameByClassName } from '@tmagic/utils'; import { addClassName, getDocument, removeClassNameByClassName } from '@tmagic/utils';
import { CONTAINER_HIGHLIGHT_CLASS_NAME, GHOST_EL_ID_PREFIX, GuidesType, MouseButton, PAGE_CLASS } from './const'; 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; 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 * @param event

View File

@ -36,6 +36,7 @@ export default class MoveableOptionsManager extends EventEmitter {
/** 画布容器 */ /** 画布容器 */
protected container: HTMLElement; protected container: HTMLElement;
protected options: MoveableOptions = {};
/** 水平参考线 */ /** 水平参考线 */
private horizontalGuidelines: number[] = []; private horizontalGuidelines: number[] = [];
@ -55,6 +56,10 @@ export default class MoveableOptionsManager extends EventEmitter {
this.getRootContainer = config.getRootContainer; this.getRootContainer = config.getRootContainer;
} }
public getOption<K extends keyof MoveableOptions>(key: K): MoveableOptions[K] {
return this.options[key];
}
/** /**
* /线 * /线
* @param type 线 * @param type 线
@ -106,7 +111,8 @@ export default class MoveableOptionsManager extends EventEmitter {
const defaultOptions = this.getDefaultOptions(isMultiSelect); const defaultOptions = this.getDefaultOptions(isMultiSelect);
const customizedOptions = this.getCustomizeOptions(); 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 { EventEmitter } from 'events';
import { Id } from '@tmagic/schema'; import type { MoveableOptions } from 'moveable';
import type { Id } from '@tmagic/schema';
import ActionManager from './ActionManager'; import ActionManager from './ActionManager';
import { DEFAULT_ZOOM } from './const'; import { DEFAULT_ZOOM } from './const';
import StageMask from './StageMask'; import StageMask from './StageMask';
import StageRender from './StageRender'; import StageRender from './StageRender';
import { import type {
ActionManagerConfig, ActionManagerConfig,
CustomizeRender, CustomizeRender,
GuidesEventData, GuidesEventData,
@ -207,6 +209,10 @@ export default class StageCore extends EventEmitter {
return this.actionManager.delayedMarkContainer(event, excludeElList); return this.actionManager.delayedMarkContainer(event, excludeElList);
} }
public getMoveableOption<K extends keyof MoveableOptions>(key: K): MoveableOptions[K] | undefined {
return this.actionManager.getMoveableOption(key);
}
/** /**
* *
*/ */