mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2025-12-16 15:01:15 +00:00
31 lines
986 B
TypeScript
31 lines
986 B
TypeScript
import Viewport from '../builtin-simulator/viewport';
|
||
|
||
export function isElementNode(domNode: Element) {
|
||
return domNode.nodeType === Node.ELEMENT_NODE;
|
||
}
|
||
|
||
/**
|
||
* 判断节点是否在 viewport 内,判断依据:只要节点有一部分在 viewport 内,都算 true,其余情况 false
|
||
* @param domNode 待检测的节点
|
||
* @param viewport 画布 viewport
|
||
* @returns 是否在 viewport 内
|
||
*/
|
||
export function isDOMNodeVisible(domNode: Element, viewport: Viewport) {
|
||
const domNodeRect = domNode.getBoundingClientRect();
|
||
const { width, height } = viewport.contentBounds;
|
||
const { left, right, top, bottom, width: nodeWidth, height: nodeHeight } = domNodeRect;
|
||
return (
|
||
left >= -nodeWidth &&
|
||
top >= -nodeHeight &&
|
||
bottom <= height + nodeHeight &&
|
||
right <= width + nodeWidth
|
||
);
|
||
}
|
||
|
||
/**
|
||
* normalize triggers
|
||
* @param triggers
|
||
*/
|
||
export function normalizeTriggers(triggers: string[]) {
|
||
return triggers.map((trigger: string) => trigger?.toUpperCase());
|
||
} |