Skip to content

Commit 19077ec

Browse files
committed
Adressed issue
1 parent 9fa53cb commit 19077ec

File tree

5 files changed

+38
-29
lines changed

5 files changed

+38
-29
lines changed

lib/commons/dom/create-grid.js

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ const DEFAULT_LEVEL = 0.1;
1414
const FLOAT_LEVEL = 0.2;
1515
const POSITION_LEVEL = 0.3;
1616
let nodeIndex = 0;
17+
let gridSize = constants.gridSize;
1718

1819
/**
1920
* Setup the 2d grid and add every element to it, even elements not
@@ -23,14 +24,16 @@ let nodeIndex = 0;
2324
export default function createGrid(
2425
root = document.body,
2526
rootGrid,
26-
parentVNode = null
27+
parentVNode = null,
28+
ruleData = null
2729
) {
30+
if (ruleData && ruleData.ruleId && ruleData.gridSize) {
31+
gridSize = ruleData.gridSize;
32+
}
33+
2834
// Prevent multiple calls per run
2935
if (cache.get('gridCreated') && !parentVNode) {
30-
if (cache.get('gridSize')) {
31-
return cache.get('gridSize');
32-
}
33-
return constants.gridSize;
36+
return gridSize;
3437
}
3538
cache.set('gridCreated', true);
3639

@@ -114,10 +117,7 @@ export default function createGrid(
114117
node = treeWalker.nextNode();
115118
}
116119

117-
if (cache.get('gridSize')) {
118-
return cache.get('gridSize');
119-
}
120-
return constants.gridSize;
120+
return gridSize;
121121
}
122122

123123
/**
@@ -437,10 +437,7 @@ class Grid {
437437
* @returns {number}
438438
*/
439439
toGridIndex(num) {
440-
if (cache.get('gridSize')) {
441-
return Math.floor(num / cache.get('gridSize'));
442-
}
443-
return Math.floor(num / constants.gridSize);
440+
return Math.floor(num / gridSize);
444441
}
445442

446443
/**

lib/commons/dom/get-element-stack.js

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,21 @@ import createGrid from './create-grid';
99
* @param {Node} node
1010
* @return {Node[]}
1111
*/
12-
function getElementStack(node, isCoordsPassed = false, x, y) {
13-
createGrid();
12+
function getElementStack(
13+
node,
14+
ruleId = null,
15+
isCoordsPassed = false,
16+
x = null,
17+
y = null
18+
) {
19+
if (ruleId === 'zoom-text-overlap-viewport') {
20+
createGrid(document.body, null, null, {
21+
ruleId,
22+
gridSize: 500
23+
});
24+
} else {
25+
createGrid();
26+
}
1427

1528
const vNode = getNodeFromTree(node);
1629
const grid = vNode._grid;

lib/commons/dom/get-overflow-hidden-ancestors.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import cache from '../../core/base/cache';
21
import memoize from '../../core/utils/memoize';
32

43
/**
@@ -9,7 +8,7 @@ import memoize from '../../core/utils/memoize';
98
* @returns {VirtualNode[]}
109
*/
1110
const getOverflowHiddenAncestors = memoize(
12-
function getOverflowHiddenAncestorsMemoized(vNode) {
11+
function getOverflowHiddenAncestorsMemoized(vNode, ruleId = null) {
1312
const ancestors = [];
1413

1514
if (!vNode) {
@@ -18,7 +17,7 @@ const getOverflowHiddenAncestors = memoize(
1817

1918
const overflow = vNode.getComputedStylePropertyValue('overflow');
2019

21-
if (cache.get('200%ZoomRule')) {
20+
if (ruleId && ruleId === 'zoom-text-overlap-viewport') {
2221
if (
2322
overflow.includes('hidden') ||
2423
overflow.includes('clip') ||

lib/commons/dom/get-rect-stack.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ export function getRectStack(
55
grid,
66
rect,
77
recursed = false,
8-
isCoordsPassed,
9-
x,
10-
y
8+
isCoordsPassed = false,
9+
x = null,
10+
y = null
1111
) {
1212
const center = getRectCenter(rect);
1313
const gridCell = grid.getCellFromPoint(center) || [];

lib/commons/dom/get-visible-child-text-rects.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import { getNodeFromTree, memoize } from '../../core/utils';
22
import { sanitize } from '../text';
33
import { getIntersectionRect, getRectCenter, isPointInRect } from '../math';
44
import getOverflowHiddenAncestors from './get-overflow-hidden-ancestors';
5-
import cache from '../../core/base/cache';
65

76
/**
87
* Get the visible text client rects of a node.
@@ -12,29 +11,30 @@ import cache from '../../core/base/cache';
1211
* @param {Element} node
1312
*/
1413
const getVisibleChildTextRects = memoize(
15-
function getVisibleChildTextRectsMemoized(node) {
14+
function getVisibleChildTextRectsMemoized(node, ruleId = null) {
1615
const vNode = getNodeFromTree(node);
1716
const nodeRect = vNode.boundingClientRect;
1817
const clientRects = [];
19-
const overflowHiddenNodes = getOverflowHiddenAncestors(vNode);
18+
const overflowHiddenNodes = getOverflowHiddenAncestors(vNode, ruleId);
2019

2120
node.childNodes.forEach(textNode => {
2221
if (textNode.nodeType !== 3 || sanitize(textNode.nodeValue) === '') {
2322
return;
2423
}
2524

2625
const contentRects = getContentRects(textNode);
27-
if (
28-
isOutsideNodeBounds(contentRects, nodeRect) &&
29-
!cache.get('200%ZoomRule')
30-
) {
26+
if (isOutsideNodeBounds(contentRects, nodeRect) && !ruleId) {
3127
return;
3228
}
3329

3430
clientRects.push(...filterHiddenRects(contentRects, overflowHiddenNodes));
3531
});
3632

37-
if (clientRects.length <= 0 && cache.get('200%ZoomRule')) {
33+
if (
34+
clientRects.length <= 0 &&
35+
ruleId &&
36+
ruleId === 'zoom-text-overlap-viewport'
37+
) {
3838
return [];
3939
}
4040
/**

0 commit comments

Comments
 (0)