You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
chuckn0rris opened this issue
Aug 9, 2023
· 1 comment
Assignees
Labels
bugSomething isn't workingforumIssues from forumlarge-accountReported by large customerOEMOEM customerpremiumresolvedFixed but not yet released (available in the nightly builds)
Uncaught RangeError: Maximum call stack size exceeded
at get containingWidget [as containingWidget] (Widget.js:4734:1)
at get isVisible [as isVisible] (Widget.js:4064:1)
at get isVisible [as isVisible] (Widget.js:4064:1)
at get isVisible [as isVisible] (Widget.js:4064:1)
at Tooltip.realign (Widget.js:3056:1)
at Tooltip.realign (Tooltip.js:802:1)
at Tooltip.alignTo (Tooltip.js:833:1)
at Tooltip.realign (Widget.js:3065:1)
at Tooltip.realign (Tooltip.js:802:1)
at Tooltip.alignTo (Tooltip.js:833:1)
RangeError: Maximum call stack size exceeded
at Rectangle.clone (Rectangle.js:365:1)
at Rectangle.alignTo (Rectangle.js:776:1)
at Object.alignTo (Widget.js:2786:1)
at Object.alignTo (Tooltip.js:833:1)
at Object.realign (Widget.js:3065:1)
at Object.realign (Tooltip.js:802:1)
at Object.alignTo (Tooltip.js:833:1)
at Object.realign (Widget.js:3065:1)
at Object.realign (Tooltip.js:802:1)
at Object.alignTo (Tooltip.js:833:1)
Introducing hasOffset into alignTo method of Tooltip class will fix the problem for almost all cases
alignTo(spec) {
const
me = this,
{
mouseOffsetX,
mouseOffsetY
} = me,
hasOffset = mouseOffsetX | mouseOffsetY; // <<<< here
if (!me.isVisible) {
return;
}
let mousePosition;
if (!me.anchorToTarget && spec.position === 'mouse') {
mousePosition = new Point(
me.triggeredByEvent.pageX - globalThis.scrollX,
me.triggeredByEvent.pageY - globalThis.scrollY
);
spec.position = new Point(
mousePosition.x + me.mouseOffsetX * (me.rtl ? -1 : 1),
mousePosition.y + me.mouseOffsetY
);
}
// If mouse pointer is over this, do not attempt
// to call the getHtml method.
if (spec && !(me.triggeredByEvent && me.element.contains(me.triggeredByEvent.target))) {
//<debug>
if (!(spec.nodeType || spec.target || spec.position || spec.domEvent || spec.event || (spec instanceof Point))) {
throw new Error('alignTo must be either passed a target to position by, or a position Point to position at');
}
//</debug>
if (spec.nodeType === Node.ELEMENT_NODE) {
spec = {
target : spec
};
}
}
super.alignTo(spec);
// If the mouse comes within 5 pixels of our result position, flip the mouseOffsets to the opposite sides
if (hasOffset && mousePosition && me.lastAlignSpec.result.inflate(5).contains(mousePosition)) { // <<<< here
me.lastAlignSpec.position = 'mouse';
me.mouseOffsetY = -mouseOffsetY - me.height;
me.mouseOffsetX = -mouseOffsetX - me.width;
me.realign();
me.mouseOffsetY = mouseOffsetY;
me.mouseOffsetX = mouseOffsetX;
}
}
bugSomething isn't workingforumIssues from forumlarge-accountReported by large customerOEMOEM customerpremiumresolvedFixed but not yet released (available in the nightly builds)
Forum post
In my React app with Bryntum 5.4.2 when I set
then I get these stack overflow errors:
The error disappears with:
The text was updated successfully, but these errors were encountered: