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() {
|
render() {
|
||||||
const { host } = this.props;
|
const { host } = this.props;
|
||||||
const { current } = this;
|
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) {
|
if (!current || host.viewport.scrolling || host.liveEditing.editing) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -37,7 +37,7 @@ export default class DragGhost extends Component<{ designer: Designer }> {
|
|||||||
this.y = e.globalY;
|
this.y = e.globalY;
|
||||||
if (isSimulatorHost(e.sensor)) {
|
if (isSimulatorHost(e.sensor)) {
|
||||||
const container = e.sensor.getDropContainer(e);
|
const container = e.sensor.getDropContainer(e);
|
||||||
if (container.container.componentMeta.getMetadata().experimental?.isAbsoluteLayoutContainer) {
|
if (container?.container.componentMeta.getMetadata().experimental?.isAbsoluteLayoutContainer) {
|
||||||
this.isAbsoluteLayoutContainer = true;
|
this.isAbsoluteLayoutContainer = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -145,6 +145,7 @@ export interface OldPrototypeConfig {
|
|||||||
// alias to canDragging
|
// alias to canDragging
|
||||||
canDraging?: boolean; // => onDrag
|
canDraging?: boolean; // => onDrag
|
||||||
canDragging?: boolean; // => ?
|
canDragging?: boolean; // => ?
|
||||||
|
canHovering?: ((dragment: Node) => boolean) | boolean;
|
||||||
|
|
||||||
canOperating?: boolean; // => disabledActions
|
canOperating?: boolean; // => disabledActions
|
||||||
canUseCondition?: boolean;
|
canUseCondition?: boolean;
|
||||||
@ -614,6 +615,7 @@ export function upgradeMetadata(oldConfig: OldPrototypeConfig) {
|
|||||||
// hooks
|
// hooks
|
||||||
canDraging,
|
canDraging,
|
||||||
canDragging, // handleDragging
|
canDragging, // handleDragging
|
||||||
|
canHovering,
|
||||||
// events
|
// events
|
||||||
didDropOut, // onNodeRemove
|
didDropOut, // onNodeRemove
|
||||||
didDropIn, // onNodeAdd
|
didDropIn, // onNodeAdd
|
||||||
@ -760,6 +762,9 @@ export function upgradeMetadata(oldConfig: OldPrototypeConfig) {
|
|||||||
}
|
}
|
||||||
callbacks.onMoveHook = () => v;
|
callbacks.onMoveHook = () => v;
|
||||||
}
|
}
|
||||||
|
if (canHovering != null) {
|
||||||
|
callbacks.onHoverHook = typeof canHovering === 'boolean' ? () => canHovering : canHovering;
|
||||||
|
}
|
||||||
if (didDropIn) {
|
if (didDropIn) {
|
||||||
callbacks.onNodeAdd = didDropIn;
|
callbacks.onNodeAdd = didDropIn;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -184,6 +184,7 @@ export interface Callbacks {
|
|||||||
onLocateHook?: (e: any, currentNode: any) => any;
|
onLocateHook?: (e: any, currentNode: any) => any;
|
||||||
onAcceptHook?: (currentNode: any, locationData: any) => any;
|
onAcceptHook?: (currentNode: any, locationData: any) => any;
|
||||||
onMoveHook?: (currentNode: any) => boolean; // thinkof 限制性拖拽
|
onMoveHook?: (currentNode: any) => boolean; // thinkof 限制性拖拽
|
||||||
|
onHoverHook?: (currentNode: any) => boolean;
|
||||||
onChildMoveHook?: (childNode: any, currentNode: any) => boolean;
|
onChildMoveHook?: (childNode: any, currentNode: any) => boolean;
|
||||||
|
|
||||||
// events
|
// events
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user