opnform-host-nginx/client/public/widgets/iframeResizer.contentWindow...

782 lines
22 KiB
JavaScript
Raw Normal View History

/* eslint-disable */
/*! iFrame Resizer (iframeSizer.contentWindow.min.js) - v4.3.9 - 2023-11-10
* Desc: Include this file in any page being loaded into an iframe
* to force the iframe to resize to the content size.
* Requires: iframeResizer.min.js on host page.
* Copyright: (c) 2023 David J. Bradshaw - dave@bradshaw.net
* License: MIT
*/
!(function (a) {
if ("undefined" != typeof window) {
var r = !0,
P = "",
u = 0,
c = "",
s = null,
D = "",
d = !1,
j = { resize: 1, click: 1 },
l = 128,
q = !0,
f = 1,
n = "bodyOffset",
m = n,
H = !0,
W = "",
h = {},
g = 32,
B = null,
p = !1,
v = !1,
y = "[iFrameSizer]",
J = y.length,
w = "",
U = { max: 1, min: 1, bodyScroll: 1, documentElementScroll: 1 },
b = "child",
V = !0,
X = window.parent,
T = "*",
E = 0,
i = !1,
Y = null,
O = 16,
S = 1,
K = "scroll",
M = K,
Q = window,
G = function () {
x("onMessage function not defined")
},
Z = function () {},
$ = function () {},
_ = {
height: function () {
return (
x("Custom height calculation function not defined"),
document.documentElement.offsetHeight
)
},
width: function () {
return (
x("Custom width calculation function not defined"),
document.body.scrollWidth
)
},
},
ee = {},
te = !1
try {
var ne = Object.create(
{},
{
passive: {
get: function () {
te = !0
},
},
},
)
window.addEventListener("test", ae, ne),
window.removeEventListener("test", ae, ne)
} catch (e) {
console.erroe(e)
}
var oe,
o,
I,
ie,
N,
A,
C = {
bodyOffset: function () {
return (
document.body.offsetHeight + ye("marginTop") + ye("marginBottom")
)
},
offset: function () {
return C.bodyOffset()
},
bodyScroll: function () {
return document.body.scrollHeight
},
custom: function () {
return _.height()
},
documentElementOffset: function () {
return document.documentElement.offsetHeight
},
documentElementScroll: function () {
return document.documentElement.scrollHeight
},
max: function () {
return Math.max.apply(null, e(C))
},
min: function () {
return Math.min.apply(null, e(C))
},
grow: function () {
return C.max()
},
lowestElement: function () {
return Math.max(
C.bodyOffset() || C.documentElementOffset(),
we("bottom", Te()),
)
},
taggedElement: function () {
return be("bottom", "data-iframe-height")
},
},
z = {
bodyScroll: function () {
return document.body.scrollWidth
},
bodyOffset: function () {
return document.body.offsetWidth
},
custom: function () {
return _.width()
},
documentElementScroll: function () {
return document.documentElement.scrollWidth
},
documentElementOffset: function () {
return document.documentElement.offsetWidth
},
scroll: function () {
return Math.max(z.bodyScroll(), z.documentElementScroll())
},
max: function () {
return Math.max.apply(null, e(z))
},
min: function () {
return Math.min.apply(null, e(z))
},
rightMostElement: function () {
return we("right", Te())
},
taggedElement: function () {
return be("right", "data-iframe-width")
},
},
re =
((oe = Ee),
(N = null),
(A = 0),
function () {
var e = Date.now(),
t = O - (e - (A = A || e))
return (
(o = this),
(I = arguments),
t <= 0 || O < t
? (N && (clearTimeout(N), (N = null)),
(A = e),
(ie = oe.apply(o, I)),
N || (o = I = null))
: (N = N || setTimeout(Oe, t)),
ie
)
})
k(window, "message", function (t) {
var n = {
init: function () {
(W = t.data),
(X = t.source),
se(),
(q = !1),
setTimeout(function () {
H = !1
}, l)
},
reset: function () {
H
? R("Page reset ignored by init")
: (R("Page size reset by host page"), Me("resetPage"))
},
resize: function () {
L("resizeParent", "Parent window requested size check")
},
moveToAnchor: function () {
h.findTarget(i())
},
inPageLink: function () {
this.moveToAnchor()
},
pageInfo: function () {
var e = i()
R("PageInfoFromParent called from parent: " + e),
$(JSON.parse(e)),
R(" --")
},
message: function () {
var e = i()
R("onMessage called from parent: " + e), G(JSON.parse(e)), R(" --")
},
}
function o() {
return t.data.split("]")[1].split(":")[0]
}
function i() {
return t.data.slice(t.data.indexOf(":") + 1)
}
function r() {
return t.data.split(":")[2] in { true: 1, false: 1 }
}
function e() {
var e = o()
e in n
? n[e]()
: (("undefined" == typeof module || !module.exports) &&
"iFrameResize" in window) ||
(window.jQuery !== a &&
"iFrameResize" in window.jQuery.prototype) ||
r() ||
x("Unexpected message (" + t.data + ")")
}
y === ("" + t.data).slice(0, J) &&
(!1 === q
? e()
: r()
? n.init()
: R(
'Ignored message of type "' +
o() +
'". Received before initialization.',
))
}),
k(window, "readystatechange", Ne),
Ne()
}
function ae() {}
function k(e, t, n, o) {
e.addEventListener(t, n, !!te && (o || {}))
}
function ue(e) {
return e.charAt(0).toUpperCase() + e.slice(1)
}
function ce(e) {
return y + "[" + w + "] " + e
}
function R(e) {
p && "object" == typeof window.console && console.log(ce(e))
}
function x(e) {
"object" == typeof window.console && console.warn(ce(e))
}
function se() {
function e(e) {
return "true" === e
}
function t(e, t) {
return (
"function" == typeof e &&
(R("Setup custom " + t + "CalcMethod"), (_[t] = e), (e = "custom")),
e
)
}
{
var n;
(n = W.slice(J).split(":")),
(w = n[0]),
(u = a === n[1] ? u : Number(n[1])),
(d = a === n[2] ? d : e(n[2])),
(p = a === n[3] ? p : e(n[3])),
(g = a === n[4] ? g : Number(n[4])),
(r = a === n[6] ? r : e(n[6])),
(c = n[7]),
(m = a === n[8] ? m : n[8]),
(P = n[9]),
(D = n[10]),
(E = a === n[11] ? E : Number(n[11])),
(h.enable = a !== n[12] && e(n[12])),
(b = a === n[13] ? b : n[13]),
(M = a === n[14] ? M : n[14]),
(v = a === n[15] ? v : e(n[15])),
R("Initialising iFrame (" + window.location.href + ")"),
"iFrameResizer" in window &&
Object === window.iFrameResizer.constructor &&
((n = window.iFrameResizer),
R("Reading data from page: " + JSON.stringify(n)),
Object.keys(n).forEach(de, n),
(G = "onMessage" in n ? n.onMessage : G),
(Z = "onReady" in n ? n.onReady : Z),
(T = "targetOrigin" in n ? n.targetOrigin : T),
(m = "heightCalculationMethod" in n ? n.heightCalculationMethod : m),
(M = "widthCalculationMethod" in n ? n.widthCalculationMethod : M),
(m = t(m, "height")),
(M = t(M, "width")))
}
function o(e) {
F(0, 0, e.type, e.screenY + ":" + e.screenX)
}
function i(e, t) {
R("Add event listener: " + t), k(window.document, e, o)
}
R("TargetOrigin for parent set to: " + T),
le(
"margin",
(function (e, t) {
-1 !== t.indexOf("-") &&
(x("Negative CSS value ignored for " + e), (t = ""))
return t
})("margin", (c = a === c ? u + "px" : c)),
),
le("background", P),
le("padding", D),
((n = document.createElement("div")).style.clear = "both"),
(n.style.display = "block"),
(n.style.height = "0"),
document.body.appendChild(n),
he(),
ge(),
(document.documentElement.style.height = ""),
(document.body.style.height = ""),
R('HTML & body height set to "auto"'),
R("Enable public methods"),
(Q.parentIFrame = {
autoResize: function (e) {
return (
!0 === e && !1 === r
? ((r = !0), pe())
: !1 === e &&
!0 === r &&
((r = !1),
fe("remove"),
null !== s && s.disconnect(),
clearInterval(B)),
F(0, 0, "autoResize", JSON.stringify(r)),
r
)
},
close: function () {
F(0, 0, "close")
},
getId: function () {
return w
},
getPageInfo: function (e) {
"function" == typeof e
? (($ = e), F(0, 0, "pageInfo"))
: (($ = function () {}), F(0, 0, "pageInfoStop"))
},
moveToAnchor: function (e) {
h.findTarget(e)
},
reset: function () {
Ie("parentIFrame.reset")
},
scrollTo: function (e, t) {
F(t, e, "scrollTo")
},
scrollToOffset: function (e, t) {
F(t, e, "scrollToOffset")
},
sendMessage: function (e, t) {
F(0, 0, "message", JSON.stringify(e), t)
},
setHeightCalculationMethod: function (e) {
(m = e), he()
},
setWidthCalculationMethod: function (e) {
(M = e), ge()
},
setTargetOrigin: function (e) {
R("Set targetOrigin: " + e), (T = e)
},
size: function (e, t) {
L(
"size",
"parentIFrame.size(" + ((e || "") + (t ? "," + t : "")) + ")",
e,
t,
)
},
}),
!0 === v &&
(i("mouseenter", "Mouse Enter"), i("mouseleave", "Mouse Leave")),
pe(),
(h = (function () {
function n(e) {
var e = e.getBoundingClientRect(),
t = {
x:
window.pageXOffset === a
? document.documentElement.scrollLeft
: window.pageXOffset,
y:
window.pageYOffset === a
? document.documentElement.scrollTop
: window.pageYOffset,
}
return {
x: parseInt(e.left, 10) + parseInt(t.x, 10),
y: parseInt(e.top, 10) + parseInt(t.y, 10),
}
}
function o(e) {
var e = e.split("#")[1] || e,
t = decodeURIComponent(e),
t = document.getElementById(t) || document.getElementsByName(t)[0]
a === t
? (R(
"In page link (#" +
e +
") not found in iFrame, so sending to parent",
),
F(0, 0, "inPageLink", "#" + e))
: ((t = n((t = t))),
R(
"Moving to in page link (#" +
e +
") at x: " +
t.x +
" y: " +
t.y,
),
F(t.y, t.x, "scrollToOffset"))
}
function e() {
var e = window.location.hash,
t = window.location.href
"" !== e && "#" !== e && o(t)
}
function t() {
Array.prototype.forEach.call(
document.querySelectorAll('a[href^="#"]'),
function (e) {
"#" !== e.getAttribute("href") &&
k(e, "click", function (e) {
e.preventDefault(), o(this.getAttribute("href"))
})
},
)
}
function i() {
Array.prototype.forEach && document.querySelectorAll
? (R("Setting up location.hash handlers"),
t(),
k(window, "hashchange", e),
setTimeout(e, l))
: x(
"In page linking not fully supported in this browser! (See README.md for IE8 workaround)",
)
}
h.enable ? i() : R("In page linking not enabled")
return { findTarget: o }
})()),
L("init", "Init message from host page"),
Z()
}
function de(e) {
var t = e.split("Callback")
2 === t.length &&
((this[(t = "on" + t[0].charAt(0).toUpperCase() + t[0].slice(1))] =
this[e]),
delete this[e],
x(
"Deprecated: '" +
e +
"' has been renamed '" +
t +
"'. The old method will be removed in the next major version.",
))
}
function le(e, t) {
a !== t &&
"" !== t &&
"null" !== t &&
R("Body " + e + ' set to "' + (document.body.style[e] = t) + '"')
}
function t(n) {
var e = {
add: function (e) {
function t() {
L(n.eventName, n.eventType)
}
(ee[e] = t), k(window, e, t, { passive: !0 })
},
remove: function (e) {
var t = ee[e]
delete ee[e], window.removeEventListener(e, t, !1)
},
}
n.eventNames && Array.prototype.map
? ((n.eventName = n.eventNames[0]), n.eventNames.map(e[n.method]))
: e[n.method](n.eventName),
R(ue(n.method) + " event listener: " + n.eventType)
}
function fe(e) {
t({
method: e,
eventType: "Animation Start",
eventNames: ["animationstart", "webkitAnimationStart"],
}),
t({
method: e,
eventType: "Animation Iteration",
eventNames: ["animationiteration", "webkitAnimationIteration"],
}),
t({
method: e,
eventType: "Animation End",
eventNames: ["animationend", "webkitAnimationEnd"],
}),
t({ method: e, eventType: "Input", eventName: "input" }),
t({ method: e, eventType: "Mouse Up", eventName: "mouseup" }),
t({ method: e, eventType: "Mouse Down", eventName: "mousedown" }),
t({
method: e,
eventType: "Orientation Change",
eventName: "orientationchange",
}),
t({
method: e,
eventType: "Print",
eventNames: ["afterprint", "beforeprint"],
}),
t({
method: e,
eventType: "Ready State Change",
eventName: "readystatechange",
}),
t({ method: e, eventType: "Touch Start", eventName: "touchstart" }),
t({ method: e, eventType: "Touch End", eventName: "touchend" }),
t({ method: e, eventType: "Touch Cancel", eventName: "touchcancel" }),
t({
method: e,
eventType: "Transition Start",
eventNames: [
"transitionstart",
"webkitTransitionStart",
"MSTransitionStart",
"oTransitionStart",
"otransitionstart",
],
}),
t({
method: e,
eventType: "Transition Iteration",
eventNames: [
"transitioniteration",
"webkitTransitionIteration",
"MSTransitionIteration",
"oTransitionIteration",
"otransitioniteration",
],
}),
t({
method: e,
eventType: "Transition End",
eventNames: [
"transitionend",
"webkitTransitionEnd",
"MSTransitionEnd",
"oTransitionEnd",
"otransitionend",
],
}),
"child" === b &&
t({ method: e, eventType: "IFrame Resized", eventName: "resize" })
}
function me(e, t, n, o) {
return (
t !== e &&
(e in n ||
(x(e + " is not a valid option for " + o + "CalculationMethod."),
(e = t)),
R(o + ' calculation method set to "' + e + '"')),
e
)
}
function he() {
m = me(m, n, C, "height")
}
function ge() {
M = me(M, K, z, "width")
}
function pe() {
var e
!0 === r
? (fe("add"),
(e = g < 0),
window.MutationObserver || window.WebKitMutationObserver
? e
? ve()
: (s = (function () {
function t(e) {
function t(e) {
!1 === e.complete &&
(R("Attach listeners to " + e.src),
e.addEventListener("load", i, !1),
e.addEventListener("error", r, !1),
u.push(e))
}
"attributes" === e.type && "src" === e.attributeName
? t(e.target)
: "childList" === e.type &&
Array.prototype.forEach.call(
e.target.querySelectorAll("img"),
t,
)
}
function o(e) {
R("Remove listeners from " + e.src),
e.removeEventListener("load", i, !1),
e.removeEventListener("error", r, !1),
u.splice(u.indexOf(e), 1)
}
function n(e, t, n) {
o(e.target), L(t, n + ": " + e.target.src)
}
function i(e) {
n(e, "imageLoad", "Image loaded")
}
function r(e) {
n(e, "imageLoadFailed", "Image load failed")
}
function a(e) {
L(
"mutationObserver",
"mutationObserver: " + e[0].target + " " + e[0].type,
),
e.forEach(t)
}
var u = [],
c = window.MutationObserver || window.WebKitMutationObserver,
s = (function () {
var e = document.querySelector("body")
return (
(s = new c(a)),
R("Create body MutationObserver"),
s.observe(e, {
attributes: !0,
attributeOldValue: !1,
characterData: !0,
characterDataOldValue: !1,
childList: !0,
subtree: !0,
}),
s
)
})()
return {
disconnect: function () {
"disconnect" in s &&
(R("Disconnect body MutationObserver"),
s.disconnect(),
u.forEach(o))
},
}
})())
: (R("MutationObserver not supported in this browser!"), ve()))
: R("Auto Resize disabled")
}
function ve() {
0 !== g &&
(R("setInterval: " + g + "ms"),
(B = setInterval(function () {
L("interval", "setInterval: " + g)
}, Math.abs(g))))
}
function ye(e, t) {
return (
(t = t || document.body),
(t =
null === (t = document.defaultView.getComputedStyle(t, null))
? 0
: t[e]),
parseInt(t, 10)
)
}
function we(e, t) {
for (
var n, o = t.length, i = 0, r = ue(e), a = Date.now(), u = 0;
u < o;
u++
)
i < (n = t[u].getBoundingClientRect()[e] + ye("margin" + r, t[u])) &&
(i = n)
return (
(a = Date.now() - a),
R("Parsed " + o + " HTML elements"),
R("Element position calculated in " + a + "ms"),
O / 2 < (a = a) && R("Event throttle increased to " + (O = 2 * a) + "ms"),
i
)
}
function e(e) {
return [
e.bodyOffset(),
e.bodyScroll(),
e.documentElementOffset(),
e.documentElementScroll(),
]
}
function be(e, t) {
var n = document.querySelectorAll("[" + t + "]")
return (
0 === n.length &&
(x("No tagged elements (" + t + ") found on page"),
document.querySelectorAll("body *")),
we(e, n)
)
}
function Te() {
return document.querySelectorAll("body *")
}
function Ee(e, t, n, o) {
function i() {
e in { init: 1, interval: 1, size: 1 } || !(m in U || (d && M in U))
? e in { interval: 1 } || R("No change in size detected")
: Ie(t)
}
function r(e, t) {
return !(Math.abs(e - t) <= E)
}
(n = a === n ? C[m]() : n),
(o = a === o ? z[M]() : o),
r(f, n) || (d && r(S, o)) || "init" === e
? (Se(), F((f = n), (S = o), e))
: i()
}
function Oe() {
(A = Date.now()), (N = null), (ie = oe.apply(o, I)), N || (o = I = null)
}
function L(e, t, n, o) {
i && e in j
? R("Trigger event cancelled: " + e)
: (e in { reset: 1, resetPage: 1, init: 1 } || R("Trigger event: " + t),
("init" === e ? Ee : re)(e, t, n, o))
}
function Se() {
i || ((i = !0), R("Trigger event lock on")),
clearTimeout(Y),
(Y = setTimeout(function () {
(i = !1), R("Trigger event lock off"), R("--")
}, l))
}
function Me(e) {
(f = C[m]()), (S = z[M]()), F(f, S, e)
}
function Ie(e) {
var t = m;
(m = n), R("Reset trigger event: " + e), Se(), Me("reset"), (m = t)
}
function F(e, t, n, o, i) {
!0 === V &&
(a === i ? (i = T) : R("Message targetOrigin: " + i),
R(
"Sending message to host page (" +
(e = w + ":" + (e + ":" + t) + ":" + n + (a === o ? "" : ":" + o)) +
")",
),
X.postMessage(y + e, i))
}
function Ne() {
"loading" !== document.readyState &&
window.parent.postMessage("[iFrameResizerChild]Ready", "*")
}
})()
//# sourceMappingURL=iframeResizer.contentWindow.map