mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2026-02-28 12:50:38 +00:00
feat: metadata 增加 canHovering 配置
This commit is contained in:
parent
e7287d47b1
commit
88e128e3d5
@ -73,6 +73,14 @@ export class BorderDetecting extends Component<{ host: BuiltinSimulatorHost }> {
|
||||
render() {
|
||||
const { host } = this.props;
|
||||
const { current } = this;
|
||||
|
||||
const canHoverHook = current?.componentMeta.getMetadata()?.experimental?.callbacks?.onHoverHook;
|
||||
const canHover = (canHoverHook && typeof canHoverHook === 'function') ? canHoverHook(current) : true;
|
||||
|
||||
if (!canHover) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!current || host.viewport.scrolling || host.liveEditing.editing) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -37,7 +37,7 @@ export default class DragGhost extends Component<{ designer: Designer }> {
|
||||
this.y = e.globalY;
|
||||
if (isSimulatorHost(e.sensor)) {
|
||||
const container = e.sensor.getDropContainer(e);
|
||||
if (container.container.componentMeta.getMetadata().experimental?.isAbsoluteLayoutContainer) {
|
||||
if (container?.container.componentMeta.getMetadata().experimental?.isAbsoluteLayoutContainer) {
|
||||
this.isAbsoluteLayoutContainer = true;
|
||||
return;
|
||||
}
|
||||
|
||||
@ -145,6 +145,7 @@ export interface OldPrototypeConfig {
|
||||
// alias to canDragging
|
||||
canDraging?: boolean; // => onDrag
|
||||
canDragging?: boolean; // => ?
|
||||
canHovering?: ((dragment: Node) => boolean) | boolean;
|
||||
|
||||
canOperating?: boolean; // => disabledActions
|
||||
canUseCondition?: boolean;
|
||||
@ -614,6 +615,7 @@ export function upgradeMetadata(oldConfig: OldPrototypeConfig) {
|
||||
// hooks
|
||||
canDraging,
|
||||
canDragging, // handleDragging
|
||||
canHovering,
|
||||
// events
|
||||
didDropOut, // onNodeRemove
|
||||
didDropIn, // onNodeAdd
|
||||
@ -760,6 +762,9 @@ export function upgradeMetadata(oldConfig: OldPrototypeConfig) {
|
||||
}
|
||||
callbacks.onMoveHook = () => v;
|
||||
}
|
||||
if (canHovering != null) {
|
||||
callbacks.onHoverHook = typeof canHovering === 'boolean' ? () => canHovering : canHovering;
|
||||
}
|
||||
if (didDropIn) {
|
||||
callbacks.onNodeAdd = didDropIn;
|
||||
}
|
||||
|
||||
@ -184,6 +184,7 @@ export interface Callbacks {
|
||||
onLocateHook?: (e: any, currentNode: any) => any;
|
||||
onAcceptHook?: (currentNode: any, locationData: any) => any;
|
||||
onMoveHook?: (currentNode: any) => boolean; // thinkof 限制性拖拽
|
||||
onHoverHook?: (currentNode: any) => boolean;
|
||||
onChildMoveHook?: (childNode: any, currentNode: any) => boolean;
|
||||
|
||||
// events
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user