mirror of
https://github.com/NohamR/safari-internal-js.git
synced 2026-02-22 02:45:41 +00:00
Add 26.2 versioned JS files and move 15.7 files
This commit is contained in:
71
15.7/js/layout/WebContentLayoutAnalyzer.js
Normal file
71
15.7/js/layout/WebContentLayoutAnalyzer.js
Normal file
@@ -0,0 +1,71 @@
|
||||
//# sourceURL=__InjectedScript_WebContentLayoutAnalyzer.js
|
||||
/* Copyright (c) 2025 Apple Inc. All rights reserved. */
|
||||
// Copyright (c) 2013 Apple Inc. All rights reserved.
|
||||
function elementAppearsCentered(e, t) {
|
||||
var n = window.innerWidth - t.right - t.left;
|
||||
return Math.abs(n) <= 1;
|
||||
}
|
||||
function centeredElementIsNotAContainer(e, t) {
|
||||
if (e === document.documentElement || e === document.body) return !0;
|
||||
if (0 === t.left && t.width === window.innerWidth) return !0;
|
||||
if (!t.height) return !0;
|
||||
var n = e.innerText;
|
||||
return !n || !n.trim();
|
||||
}
|
||||
var WebContentLayoutAnalyzer = function () {
|
||||
((this.centeredContainerElement = null),
|
||||
(this.rectOfCenteredContainerElementBeforeResize = null),
|
||||
(this.rectOfCenteredContainerElementAfterResize = null));
|
||||
};
|
||||
WebContentLayoutAnalyzer.prototype = {
|
||||
findCenteredContainerElement: function () {
|
||||
for (
|
||||
var e = null,
|
||||
t = null,
|
||||
n = document.getElementsByTagName("*"),
|
||||
r = n.length,
|
||||
i = 0;
|
||||
i < r;
|
||||
++i
|
||||
) {
|
||||
var o = n[i],
|
||||
l = o.getBoundingClientRect();
|
||||
elementAppearsCentered(o, l) &&
|
||||
(centeredElementIsNotAContainer(o, l) ||
|
||||
((!t || l.width > t.width) && ((e = o), (t = l))));
|
||||
}
|
||||
return e;
|
||||
},
|
||||
collectInformationBeforeResize: function () {
|
||||
((this.centeredContainerElement = this.findCenteredContainerElement()),
|
||||
this.centeredContainerElement &&
|
||||
(this.rectOfCenteredContainerElementBeforeResize =
|
||||
this.centeredContainerElement.getBoundingClientRect()));
|
||||
},
|
||||
collectInformationAfterResize: function () {
|
||||
this.centeredContainerElement &&
|
||||
document.contains(this.centeredContainerElement) &&
|
||||
(this.rectOfCenteredContainerElementAfterResize =
|
||||
this.centeredContainerElement.getBoundingClientRect());
|
||||
},
|
||||
layoutInformation: function () {
|
||||
var e = !1,
|
||||
t = null;
|
||||
return (
|
||||
this.rectOfCenteredContainerElementBeforeResize &&
|
||||
this.rectOfCenteredContainerElementAfterResize &&
|
||||
((e =
|
||||
this.rectOfCenteredContainerElementBeforeResize.width ===
|
||||
this.rectOfCenteredContainerElementAfterResize.width),
|
||||
(t =
|
||||
this.rectOfCenteredContainerElementBeforeResize.left -
|
||||
this.rectOfCenteredContainerElementAfterResize.left)),
|
||||
{
|
||||
FoundCenteredContainer: !!this.centeredContainerElement,
|
||||
CenteredContainerIsFixedWidth: e,
|
||||
DistanceContainerMoved: t,
|
||||
}
|
||||
);
|
||||
},
|
||||
};
|
||||
var WebContentLayoutAnalyzerJS = new WebContentLayoutAnalyzer();
|
||||
Reference in New Issue
Block a user