feat: 支持自定制画布中被忽略的节点选择器 - customizeIgnoreSelectors

This commit is contained in:
lihao.ylh 2021-06-24 14:32:19 +08:00
parent 0d6b690594
commit b5edc4b140
2 changed files with 7 additions and 1 deletions

View File

@ -695,8 +695,9 @@ export class BuiltinSimulatorHost implements ISimulatorHost<BuiltinSimulatorProp
this._iframe?.dispatchEvent(x);
const target = e.target as HTMLElement;
const customizeIgnoreSelectors = engineConfig.get('customizeIgnoreSelectors', (defaultSelectors: string[]) => defaultSelectors);
// TODO: need more elegant solution to ignore click events of components in designer
const ignoreSelectors: any = [
const defaultIgnoreSelectors: any = [
'.next-input-group',
'.next-checkbox-group',
'.next-checkbox-wrapper',
@ -718,6 +719,7 @@ export class BuiltinSimulatorHost implements ISimulatorHost<BuiltinSimulatorProp
'.next-calendar-table',
'.editor-container', // 富文本组件
];
const ignoreSelectors = customizeIgnoreSelectors(defaultIgnoreSelectors);
const ignoreSelectorsString = ignoreSelectors.join(',');
if (isFormEvent(e) || target?.closest(ignoreSelectorsString)) {
e.preventDefault();

View File

@ -199,6 +199,10 @@ interface EngineOptions {
* 线false
*/
disableDetecting?: boolean;
/**
* selectors(selectors) => selectors
*/
customizeIgnoreSelectors?: (defaultIgnoreSelectors: string[]) => string[];
/**
* Vision-polyfill settings
*/