From 1c354ab5d32236f4c48a1bff7eca3641ac578b1e Mon Sep 17 00:00:00 2001 From: fancy Date: Tue, 10 Mar 2026 15:34:24 +0800 Subject: [PATCH] refactor(page-controller): remove viewportExpansion constants module --- .../page-controller/src/PageController.ts | 3 +-- packages/page-controller/src/constants.ts | 20 ------------------- packages/page-controller/src/dom/index.ts | 16 ++++++++++++++- 3 files changed, 16 insertions(+), 23 deletions(-) delete mode 100644 packages/page-controller/src/constants.ts diff --git a/packages/page-controller/src/PageController.ts b/packages/page-controller/src/PageController.ts index 3e79145..c30f508 100644 --- a/packages/page-controller/src/PageController.ts +++ b/packages/page-controller/src/PageController.ts @@ -14,7 +14,6 @@ import { scrollVertically, selectOptionElement, } from './actions' -import { resolveViewportExpansion } from './constants' import * as dom from './dom' import type { FlatDomTree, InteractiveElementDomNode } from './dom/dom_tree/type' import { getPageInfo } from './dom/getPageInfo' @@ -130,7 +129,7 @@ export class PageController extends EventTarget { const url = window.location.href const title = document.title const pi = getPageInfo() - const viewportExpansion = resolveViewportExpansion(this.config.viewportExpansion) + const viewportExpansion = dom.resolveViewportExpansion(this.config.viewportExpansion) await this.updateTree() diff --git a/packages/page-controller/src/constants.ts b/packages/page-controller/src/constants.ts deleted file mode 100644 index 41a7e7d..0000000 --- a/packages/page-controller/src/constants.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Copyright (C) 2025 Alibaba Group Holding Limited - * All rights reserved. - */ - -/** - * Viewport expansion for DOM tree extraction. - * -1 means full page (no viewport restriction) - * 0 means viewport only - * positive values expand the viewport by that many pixels - * - * @note Since isTopElement depends on elementFromPoint, - * it returns null when out of viewport, this feature has no practical use, only differ between -1 and 0 - */ -// export const VIEWPORT_EXPANSION = 100 -export const VIEWPORT_EXPANSION = -1 - -export function resolveViewportExpansion(viewportExpansion?: number): number { - return viewportExpansion ?? VIEWPORT_EXPANSION -} diff --git a/packages/page-controller/src/dom/index.ts b/packages/page-controller/src/dom/index.ts index 7235f33..2968c0c 100644 --- a/packages/page-controller/src/dom/index.ts +++ b/packages/page-controller/src/dom/index.ts @@ -1,4 +1,3 @@ -import { resolveViewportExpansion } from '../constants' import domTree from './dom_tree/index.js' import { ElementDomNode, @@ -7,6 +6,21 @@ import { TextDomNode, } from './dom_tree/type' +/** + * Viewport expansion for DOM tree extraction. + * -1 means full page (no viewport restriction) + * 0 means viewport only + * positive values expand the viewport by that many pixels + * + * @note Since isTopElement depends on elementFromPoint, + * it returns null when out of viewport, this feature has no practical use, only differ between -1 and 0 + */ +const DEFAULT_VIEWPORT_EXPANSION = -1 + +export function resolveViewportExpansion(viewportExpansion?: number): number { + return viewportExpansion ?? DEFAULT_VIEWPORT_EXPANSION +} + export interface DomConfig { viewportExpansion?: number interactiveBlacklist?: (Element | (() => Element))[]