fix(page-controller): honor viewportExpansion in DOM extraction
This commit is contained in:
@@ -14,7 +14,7 @@ import {
|
||||
scrollVertically,
|
||||
selectOptionElement,
|
||||
} from './actions'
|
||||
import { VIEWPORT_EXPANSION } from './constants'
|
||||
import { resolveViewportExpansion } from './constants'
|
||||
import * as dom from './dom'
|
||||
import type { FlatDomTree, InteractiveElementDomNode } from './dom/dom_tree/type'
|
||||
import { getPageInfo } from './dom/getPageInfo'
|
||||
@@ -24,7 +24,6 @@ import { patchReact } from './patches/react'
|
||||
* Configuration for PageController
|
||||
*/
|
||||
export interface PageControllerConfig extends dom.DomConfig {
|
||||
viewportExpansion?: number
|
||||
/** Enable visual mask overlay during operations (default: false) */
|
||||
enableMask?: boolean
|
||||
}
|
||||
@@ -131,7 +130,7 @@ export class PageController extends EventTarget {
|
||||
const url = window.location.href
|
||||
const title = document.title
|
||||
const pi = getPageInfo()
|
||||
const viewportExpansion = this.config.viewportExpansion ?? VIEWPORT_EXPANSION
|
||||
const viewportExpansion = resolveViewportExpansion(this.config.viewportExpansion)
|
||||
|
||||
await this.updateTree()
|
||||
|
||||
|
||||
@@ -14,3 +14,7 @@
|
||||
*/
|
||||
// export const VIEWPORT_EXPANSION = 100
|
||||
export const VIEWPORT_EXPANSION = -1
|
||||
|
||||
export function resolveViewportExpansion(viewportExpansion?: number): number {
|
||||
return viewportExpansion ?? VIEWPORT_EXPANSION
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { VIEWPORT_EXPANSION } from '../constants'
|
||||
import { resolveViewportExpansion } from '../constants'
|
||||
import domTree from './dom_tree/index.js'
|
||||
import {
|
||||
ElementDomNode,
|
||||
@@ -8,6 +8,7 @@ import {
|
||||
} from './dom_tree/type'
|
||||
|
||||
export interface DomConfig {
|
||||
viewportExpansion?: number
|
||||
interactiveBlacklist?: (Element | (() => Element))[]
|
||||
interactiveWhitelist?: (Element | (() => Element))[]
|
||||
includeAttributes?: string[]
|
||||
@@ -21,6 +22,8 @@ export interface DomConfig {
|
||||
const newElementsCache = new WeakMap<HTMLElement, string>()
|
||||
|
||||
export function getFlatTree(config: DomConfig): FlatDomTree {
|
||||
const viewportExpansion = resolveViewportExpansion(config.viewportExpansion)
|
||||
|
||||
const interactiveBlacklist = [] as Element[]
|
||||
for (const item of config.interactiveBlacklist || []) {
|
||||
if (typeof item === 'function') {
|
||||
@@ -43,7 +46,7 @@ export function getFlatTree(config: DomConfig): FlatDomTree {
|
||||
doHighlightElements: true,
|
||||
debugMode: true,
|
||||
focusHighlightIndex: -1,
|
||||
viewportExpansion: VIEWPORT_EXPANSION,
|
||||
viewportExpansion,
|
||||
interactiveBlacklist,
|
||||
interactiveWhitelist,
|
||||
highlightOpacity: config.highlightOpacity ?? 0.0,
|
||||
|
||||
Reference in New Issue
Block a user