import { AbstractSelectorQuery } from "../SelectorQuery/AbstractSelectorQuery"; import { NodesRefFields } from "./NodesRefFields"; /** * 用于获取 KSML 节点信息的对象。 */ export interface NodesRef { /** * 添加节点的布局位置的查询请求。相对于显示区域,以像素为单位。其功能类似于 DOM 的 `getBoundingClientRect`。返回 `NodesRef` 对应的 `SelectorQuery`。 * @param callback 回调函数,在执行 `SelectorQuery.exec` 方法后,节点信息会在 `callback` 中返回。 * @returns * @example * ```javascript * ks.createSelectorQuery() * .select('#the-id') * .boundingClientRect(function (rect) { * rect.id; // 节点的ID * rect.dataset; // 节点的dataset * rect.left; // 节点的左边界坐标 * rect.right; // 节点的右边界坐标 * rect.top; // 节点的上边界坐标 * rect.bottom; // 节点的下边界坐标 * rect.width; // 节点的宽度 * rect.height; // 节点的高度 * }) * .exec(); * * ks.createSelectorQuery() * .selectAll('.a-class') * .boundingClientRect(function (rects) { * rects.forEach(function (rect) { * rect.id; // 节点的ID * rect.dataset; // 节点的dataset * rect.left; // 节点的左边界坐标 * rect.right; // 节点的右边界坐标 * rect.top; // 节点的上边界坐标 * rect.bottom; // 节点的下边界坐标 * rect.width; // 节点的宽度 * rect.height; // 节点的高度 * }); * }) * .exec(); * * ``` * */ boundingClientRect(callback?: (result: Record | Record[]) => void): AbstractSelectorQuery; /** * 添加节点的 `Context` 对象查询请求。目前支持 `CanvasContext` 的获取。 * @param callback 回调函数。在执行 `SelectorQuery.exec` 方法后,返回节点信息 * @returns * @example * ```javascript * ks.createSelectorQuery() * .select('.the-video-class') * .context(function (res) { * console.log(res.context); // 节点对应的 Context 对象。如:选中的节点是