2024-06-27 16:00:54 +02:00
! function ( e ) {
var n , i , t , o , r , a , s , l , f , c , d , u , m , g
function h ( ) {
return window . MutationObserver || window . WebKitMutationObserver || window . MozMutationObserver
}
function p ( e , n , i ) {
e . addEventListener ( n , i , ! 1 )
}
function b ( e , n , i ) {
e . removeEventListener ( n , i , ! 1 )
}
function y ( e ) {
return c [ e ] ? c [ e ] . log : i
}
function v ( e , n ) {
_ ( "log" , e , n , y ( e ) )
}
function $ ( e , n ) {
_ ( "info" , e , n , y ( e ) )
}
function w ( e , n ) {
_ ( "warn" , e , n , ! 0 )
}
function _ ( e , n , i , t ) {
var o , a
! 0 === t && "object" == typeof window . console && console [ e ] ( r + "[" + ( a = "Host page: " + ( o = n ) , a = window . top !== window . self ? window . parentIFrame && window . parentIFrame . getId ? window . parentIFrame . getId ( ) + ": " + o : "Nested host page: " + o : a ) + "]" , i )
}
function x ( e ) {
function n ( ) {
i ( "Height" ) , i ( "Width" ) , O ( function ( ) {
E ( j ) , I ( L ) , h ( "onResized" , j )
} , j , "init" )
}
function i ( e ) {
var n = Number ( c [ L ] [ "max" + e ] ) , i = Number ( c [ L ] [ "min" + e ] ) , e = e . toLowerCase ( ) , t = Number ( j [ e ] )
v ( L , "Checking " + e + " is in range " + i + "-" + n ) , t < i && ( t = i , v ( L , "Set " + e + " to min value" ) ) , n < t && ( t = n , v ( L , "Set " + e + " to max value" ) ) , j [ e ] = "" + t
}
function t ( e ) {
return P . slice ( P . indexOf ( ":" ) + o + e )
}
function l ( e , n ) {
var i , t , o
i = function ( ) {
var i , t
T ( "Send Page Info" , "pageInfo:" + ( i = document . body . getBoundingClientRect ( ) , JSON . stringify ( {
iframeHeight : ( t = j . iframe . getBoundingClientRect ( ) ) . height ,
iframeWidth : t . width ,
clientHeight : Math . max ( document . documentElement . clientHeight , window . innerHeight || 0 ) ,
clientWidth : Math . max ( document . documentElement . clientWidth , window . innerWidth || 0 ) ,
offsetTop : parseInt ( t . top - i . top , 10 ) ,
offsetLeft : parseInt ( t . left - i . left , 10 ) ,
scrollTop : window . pageYOffset ,
scrollLeft : window . pageXOffset ,
documentHeight : document . documentElement . clientHeight ,
documentWidth : document . documentElement . clientWidth ,
windowHeight : window . innerHeight ,
windowWidth : window . innerWidth
} ) ) , e , n )
} , t = 32 , m [ o = n ] || ( m [ o ] = setTimeout ( function ( ) {
m [ o ] = null , i ( )
} , t ) )
}
function f ( e ) {
return e = e . getBoundingClientRect ( ) , M ( L ) , {
x : Math . floor ( Number ( e . left ) + Number ( s . x ) ) ,
y : Math . floor ( Number ( e . top ) + Number ( s . y ) )
}
}
function d ( e ) {
var n = e ? f ( j . iframe ) : { x : 0 , y : 0 } , i = { x : Number ( j . width ) + n . x , y : Number ( j . height ) + n . y }
v ( L , "Reposition requested from iFrame (offset x:" + n . x + " y:" + n . y + ")" ) , window . top === window . self ? ( s = i , u ( ) , v ( L , "--" ) ) : window . parentIFrame ? window . parentIFrame [ "scrollTo" + ( e ? "Offset" : "" ) ] ( i . x , i . y ) : w ( L , "Unable to scroll to requested position, window.parentIFrame not found" )
}
function u ( ) {
! 1 === h ( "onScroll" , s ) ? R ( ) : I ( L )
}
function g ( e ) {
var n , i = { }
i = 0 === Number ( j . width ) && 0 === Number ( j . height ) ? { x : ( n = t ( 9 ) . split ( ":" ) ) [ 1 ] , y : n [ 0 ] } : {
x : j . width ,
y : j . height
} , h ( e , { iframe : j . iframe , screenX : Number ( i . x ) , screenY : Number ( i . y ) , type : j . type } )
}
function h ( e , n ) {
return k ( L , e , n )
}
var y , _ , x , z , H , S , P = e . data , j = { } , L = null
if ( "[iFrameResizerChild]Ready" === P ) for ( var A in c ) T ( "iFrame requested init" , C ( A ) , c [ A ] . iframe , A ) ; else r === ( "" + P ) . slice ( 0 , a ) && P . slice ( a ) . split ( ":" ) [ 0 ] in c ? ( c [ L = ( j = ( _ = ( y = P . slice ( a ) . split ( ":" ) ) [ 1 ] ? parseInt ( y [ 1 ] , 10 ) : 0 , z = getComputedStyle ( x = c [ y [ 0 ] ] && c [ y [ 0 ] ] . iframe ) , {
iframe : x ,
id : y [ 0 ] ,
height : _ + function ( e ) {
if ( "border-box" !== e . boxSizing ) return 0
var n = e . paddingTop ? parseInt ( e . paddingTop , 10 ) : 0 , e = e . paddingBottom ? parseInt ( e . paddingBottom , 10 ) : 0
return n + e
} ( z ) + function ( e ) {
if ( "border-box" !== e . boxSizing ) return 0
var n = e . borderTopWidth ? parseInt ( e . borderTopWidth , 10 ) : 0 ,
e = e . borderBottomWidth ? parseInt ( e . borderBottomWidth , 10 ) : 0
return n + e
} ( z ) ,
width : y [ 2 ] ,
type : y [ 3 ]
} ) ) . id ] && ( c [ L ] . loaded = ! 0 ) , ( S = j . type in {
true : 1 ,
false : 1 ,
undefined : 1
} ) && v ( L , "Ignoring init message from meta parent page" ) , ! S && ( S = ! 0 , c [ H = L ] || ( S = ! 1 , w ( j . type + " No settings for " + H + ". Message was: " + P ) ) , S ) && ( v ( L , "Received: " + P ) , H = ! 0 , null === j . iframe && ( w ( L , "IFrame (" + j . id + ") not found" ) , H = ! 1 ) , H && function n ( ) {
var i = e . origin , t = c [ L ] && c [ L ] . checkOrigin
if ( t && "" + i != "null" && ! function ( ) {
if ( t . constructor !== Array ) return e = c [ L ] && c [ L ] . remoteHost , v ( L , "Checking connection is from: " + e ) , i === e
var e , n = 0 , o = ! 1
for ( v ( L , "Checking connection is from allowed list of origins: " + t ) ; n < t . length ; n ++ ) if ( t [ n ] === i ) {
o = ! 0
break
}
return o
} ( ) ) throw Error ( "Unexpected message received from: " + i + " for " + j . iframe . id + ". Message was: " + e . data + ". This error can be disabled by setting the checkOrigin: false option or by providing of array of trusted domains." )
return 1
} ( ) && function e ( ) {
var i , o , r , a , m
switch ( c [ L ] && c [ L ] . firstRun && c [ L ] && ( c [ L ] . firstRun = ! 1 ) , j . type ) {
case "close" :
F ( j . iframe )
break
case "message" :
o = t ( 6 ) , v ( L , "onMessage passed: {iframe: " + j . iframe . id + ", message: " + o + "}" ) , h ( "onMessage" , {
iframe : j . iframe ,
message : JSON . parse ( o )
} ) , v ( L , "--" )
break
case "mouseenter" :
g ( "onMouseEnter" )
break
case "mouseleave" :
g ( "onMouseLeave" )
break
case "autoResize" :
c [ L ] . autoResize = JSON . parse ( t ( 9 ) )
break
case "scrollTo" :
d ( ! 1 )
break
case "scrollToOffset" :
d ( ! 0 )
break
case "pageInfo" :
l ( c [ L ] && c [ L ] . iframe , L ) , i = L , y ( "Add " , p ) , c [ i ] && ( c [ i ] . stopPageInfo = $ )
break
case "pageInfoStop" :
c [ L ] && c [ L ] . stopPageInfo && ( c [ L ] . stopPageInfo ( ) , delete c [ L ] . stopPageInfo )
break
case "inPageLink" :
t ( 9 ) , m = decodeURIComponent ( a = a . split ( "#" ) [ 1 ] || "" ) , ( m = document . getElementById ( m ) || document . getElementsByName ( m ) [ 0 ] ) ? ( m = f ( m ) , v ( L , "Moving to in page link (#" + a + ") at x: " + m . x + " y: " + m . y ) , s = {
x : m . x ,
y : m . y
} , u ( ) , v ( L , "--" ) ) : window . top === window . self ? v ( L , "In page link #" + a + " not found" ) : window . parentIFrame ? window . parentIFrame . moveToAnchor ( a ) : v ( L , "In page link #" + a + " not found and window.parentIFrame not found" )
break
case "reset" :
W ( j )
break
case "init" :
n ( ) , h ( "onInit" , j . iframe )
break
default :
0 === Number ( j . width ) && 0 === Number ( j . height ) ? w ( "Unsupported message received (" + j . type + "), this is likely due to the iframe containing a later version of iframe-resizer than the parent page" ) : n ( )
}
function y ( e , n ) {
function t ( ) {
c [ i ] ? l ( c [ i ] . iframe , i ) : $ ( )
}
[ "scroll" , "resize" ] . forEach ( function ( o ) {
v ( i , e + o + " listener for sendPageInfo" ) , n ( window , o , t )
} )
}
function $ ( ) {
y ( "Remove " , b )
}
} ( ) ) ) : $ ( L , "Ignored: " + P )
}
function k ( e , n , i ) {
var t = null , o = null
if ( c [ e ] ) {
if ( "function" != typeof ( t = c [ e ] [ n ] ) ) throw TypeError ( n + " on iFrame[" + e + "] is not a function" )
o = t ( i )
}
return o
}
function z ( e ) {
delete c [ e = e . id ]
}
function F ( e ) {
var n = e . id
if ( ! 1 === k ( n , "onClose" , n ) ) v ( n , "Close iframe cancelled by onClose event" ) ; else {
v ( n , "Removing iFrame: " + n )
try {
e . parentNode && e . parentNode . removeChild ( e )
} catch ( i ) {
w ( i )
}
k ( n , "onClosed" , n ) , v ( n , "--" ) , z ( e )
}
}
function M ( n ) {
null === s && v ( n , "Get page position: " + ( s = {
x : window . pageXOffset === e ? document . documentElement . scrollLeft : window . pageXOffset ,
y : window . pageYOffset === e ? document . documentElement . scrollTop : window . pageYOffset
} ) . x + "," + s . y )
}
function I ( e ) {
null !== s && ( window . scrollTo ( s . x , s . y ) , v ( e , "Set page position: " + s . x + "," + s . y ) , R ( ) )
}
function R ( ) {
s = null
}
function W ( e ) {
v ( e . id , "Size reset requested by " + ( "init" === e . type ? "host page" : "iFrame" ) ) , M ( e . id ) , O ( function ( ) {
E ( e ) , T ( "reset" , "reset" , e . iframe , e . id )
} , e , "reset" )
}
function E ( e ) {
function n ( n ) {
var o
o = n , e . id ? ( e . iframe . style [ o ] = e [ o ] + "px" , v ( e . id , "IFrame (" + i + ") " + o + " set to " + e [ o ] + "px" ) ) : v ( "undefined" , "messageData id not set" ) , function n ( o ) {
var r
function a ( ) {
Object . keys ( c ) . forEach ( function ( e ) {
var n
function i ( e ) {
return "0px" === ( c [ n ] && c [ n ] . iframe . style [ e ] )
}
c [ n = e ] && null !== c [ n ] . iframe . offsetParent && ( i ( "height" ) || i ( "width" ) ) && T ( "Visibility change" , "resize" , c [ n ] . iframe , n )
} )
}
! t && "0" === e [ o ] && ( t = ! 0 , v ( i , "Hidden iFrame detected, creating visibility listener" ) , o = h ( ) ) && ( r = document . querySelector ( "body" ) , new o ( function e ( n ) {
v ( "window" , "Mutation observed: " + n [ 0 ] . target + " " + n [ 0 ] . type ) , S ( a , 16 )
} ) . observe ( r , {
attributes : ! 0 ,
attributeOldValue : ! 1 ,
characterData : ! 0 ,
characterDataOldValue : ! 1 ,
childList : ! 0 ,
subtree : ! 0
} ) )
} ( n )
}
var i = e . iframe . id
c [ i ] && ( c [ i ] . sizeHeight && n ( "height" ) , c [ i ] . sizeWidth ) && n ( "width" )
}
function O ( e , n , i ) {
i !== n . type && l && ! window . jasmine ? ( v ( n . id , "Requesting animation frame" ) , l ( e ) ) : e ( )
}
function T ( e , n , i , t , o ) {
var a , s = ! 1
c [ t = t || i . id ] && ( i && "contentWindow" in i && null !== i . contentWindow ? ( a = c [ t ] && c [ t ] . targetOrigin , v ( t , "[" + e + "] Sending msg to iframe[" + t + "] (" + n + ") targetOrigin: " + a ) , i . contentWindow . postMessage ( r + n , a ) ) : w ( t , "[" + e + "] IFrame(" + t + ") not found" ) , o && c [ t ] && c [ t ] . warningTimeout && ( c [ t ] . msgTimeout = setTimeout ( function ( ) {
! c [ t ] || c [ t ] . loaded || s || ( s = ! 0 , w ( t , "IFrame has not responded within " + c [ t ] . warningTimeout / 1e3 + " seconds. Check iFrameResizer.contentWindow.js has been loaded in iFrame. This message can be ignored if everything is working, or you can set the warningTimeout option to a higher value or zero to suppress this warning." ) )
} , c [ t ] . warningTimeout ) ) )
}
function C ( e ) {
return e + ":" + c [ e ] . bodyMarginV1 + ":" + c [ e ] . sizeWidth + ":" + c [ e ] . log + ":" + c [ e ] . interval + ":" + c [ e ] . enablePublicMethods + ":" + c [ e ] . autoResize + ":" + c [ e ] . bodyMargin + ":" + c [ e ] . heightCalculationMethod + ":" + c [ e ] . bodyBackground + ":" + c [ e ] . bodyPadding + ":" + c [ e ] . tolerance + ":" + c [ e ] . inPageLinks + ":" + c [ e ] . resizeFrom + ":" + c [ e ] . widthCalculationMethod + ":" + c [ e ] . mouseEvents
}
function H ( t , o ) {
function r ( e ) {
var n = e . split ( "Callback" )
2 === n . length && ( this [ n = "on" + n [ 0 ] . charAt ( 0 ) . toUpperCase ( ) + n [ 0 ] . slice ( 1 ) ] = this [ e ] , delete this [ e ] , w ( l , "Deprecated: '" + e + "' has been renamed '" + n + "'. The old method will be removed in the next major version." ) )
}
var a , s , l = function ( e ) {
var r
if ( "string" != typeof e ) throw TypeError ( "Invaild id for iFrame. Expected String" )
return "" === e && ( t . id = ( r = o && o . id || u . id + n ++ , null !== document . getElementById ( r ) && ( r += n ++ ) , e = r ) , i = ( o || { } ) . log , v ( e , "Added missing iframe ID: " + e + " (" + t . src + ")" ) ) , e
} ( t . id )
if ( l in c && "iFrameResizer" in t ) w ( l , "Ignored iFrame, already setup." ) ; else {
switch ( function e ( n ) {
if ( n = n || { } , c [ l ] = Object . create ( null ) , c [ l ] . iframe = t , c [ l ] . firstRun = ! 0 , c [ l ] . remoteHost = t . src && t . src . split ( "/" ) . slice ( 0 , 3 ) . join ( "/" ) , "object" != typeof n ) throw TypeError ( "Options is not an object" )
Object . keys ( n ) . forEach ( r , n )
var i , o = n
for ( i in u ) Object . prototype . hasOwnProperty . call ( u , i ) && ( c [ l ] [ i ] = ( Object . prototype . hasOwnProperty . call ( o , i ) ? o : u ) [ i ] )
c [ l ] && ( c [ l ] . targetOrigin = ! 0 !== c [ l ] . checkOrigin || "" === ( n = c [ l ] . remoteHost ) || null !== n . match ( /^(about:blank|javascript:|file:\/\/)/ ) ? "*" : n )
} ( o ) , v ( l , "IFrame scrolling " + ( c [ l ] && c [ l ] . scrolling ? "enabled" : "disabled" ) + " for " + l ) , t . style . overflow = ! 1 === ( c [ l ] && c [ l ] . scrolling ) ? "hidden" : "auto" , c [ l ] && c [ l ] . scrolling ) {
case "omit" :
break
case ! 0 :
t . scrolling = "yes"
break
case ! 1 :
t . scrolling = "no"
break
default :
t . scrolling = c [ l ] ? c [ l ] . scrolling : "no"
}
m ( "Height" ) , m ( "Width" ) , d ( "maxHeight" ) , d ( "minHeight" ) , d ( "maxWidth" ) , d ( "minWidth" ) , "number" != typeof ( c [ l ] && c [ l ] . bodyMargin ) && "0" !== ( c [ l ] && c [ l ] . bodyMargin ) || ( c [ l ] . bodyMarginV1 = c [ l ] . bodyMargin , c [ l ] . bodyMargin = c [ l ] . bodyMargin + "px" ) , a = C ( l ) , ( s = h ( ) ) && t . parentNode && new s ( function ( e ) {
e . forEach ( function ( e ) {
Array . prototype . slice . call ( e . removedNodes ) . forEach ( function ( e ) {
e === t && F ( t )
} )
} )
} ) . observe ( t . parentNode , { childList : ! 0 } ) , p ( t , "load" , function ( ) {
var n , i
T ( "iFrame.onload" , a , t , e , ! 0 ) , n = c [ l ] && c [ l ] . firstRun , i = c [ l ] && c [ l ] . heightCalculationMethod in f , ! n && i && W ( {
iframe : t ,
height : 0 ,
width : 0 ,
type : "init"
} )
} ) , T ( "init" , a , t , e , ! 0 ) , c [ l ] && ( c [ l ] . iframe . iFrameResizer = {
close : F . bind ( null , c [ l ] . iframe ) ,
removeListeners : z . bind ( null , c [ l ] . iframe ) ,
resize : T . bind ( null , "Window resize" , "resize" , c [ l ] . iframe ) ,
moveToAnchor : function ( e ) {
T ( "Move to anchor" , "moveToAnchor:" + e , c [ l ] . iframe , l )
} ,
sendMessage : function ( e ) {
T ( "Send Message" , "message:" + ( e = JSON . stringify ( e ) ) , c [ l ] . iframe , l )
}
} )
}
function d ( e ) {
var n = c [ l ] [ e ]
1 / 0 !== n && 0 !== n && ( t . style [ e ] = "number" == typeof n ? n + "px" : n , v ( l , "Set " + e + " = " + t . style [ e ] ) )
}
function m ( e ) {
if ( c [ l ] [ "min" + e ] > c [ l ] [ "max" + e ] ) throw Error ( "Value for min" + e + " can not be greater than max" + e )
}
}
function S ( e , n ) {
null === d && ( d = setTimeout ( function ( ) {
d = null , e ( )
} , n ) )
}
function P ( ) {
"hidden" !== document . visibilityState && ( v ( "document" , "Trigger event: Visibility change" ) , S ( function ( ) {
j ( "Tab Visible" , "resize" )
} , 16 ) )
}
function j ( e , n ) {
Object . keys ( c ) . forEach ( function ( i ) {
var t
c [ t = i ] && "parent" === c [ t ] . resizeFrom && c [ t ] . autoResize && ! c [ t ] . firstRun && T ( e , n , c [ i ] . iframe , i )
} )
}
function L ( ) {
function n ( e , n ) {
if ( n ) {
if ( ! n . tagName ) throw TypeError ( "Object is not a valid DOM element" )
if ( "IFRAME" !== n . tagName . toUpperCase ( ) ) throw TypeError ( "Expected <IFRAME> tag, found <" + n . tagName + ">" )
H ( n , e ) , i . push ( n )
}
}
for ( var i , t = [ "moz" , "webkit" , "o" , "ms" ] , o = 0 ; o < t . length && ! l ; o += 1 ) l = window [ t [ o ] + "RequestAnimationFrame" ]
return l ? l = l . bind ( window ) : v ( "setup" , "RequestAnimationFrame not supported" ) , p ( window , "message" , x ) , p ( window , "resize" , function ( ) {
var e
v ( "window" , "Trigger event: " + ( e = "resize" ) ) , S ( function ( ) {
j ( "Window " + e , "resize" )
} , 16 )
} ) , p ( document , "visibilitychange" , P ) , p ( document , "-webkit-visibilitychange" , P ) , function ( t , o ) {
var r
switch ( i = [ ] , ( r = t ) && r . enablePublicMethods && w ( "enablePublicMethods option has been removed, public methods are now always available in the iFrame" ) , typeof o ) {
case "undefined" :
case "string" :
Array . prototype . forEach . call ( document . querySelectorAll ( o || "iframe" ) , n . bind ( e , t ) )
break
case "object" :
n ( t , o )
break
default :
throw TypeError ( "Unexpected data type (" + typeof o + ")" )
}
return i
}
}
"undefined" != typeof window && ( n = 0 , t = i = ! 1 , o = 7 , a = ( r = "[iFrameSizer]" ) . length , s = null , l = window . requestAnimationFrame , f = Object . freeze ( {
max : 1 ,
scroll : 1 ,
bodyScroll : 1 ,
documentElementScroll : 1
} ) , c = { } , d = null , u = Object . freeze ( {
autoResize : ! 0 ,
bodyBackground : null ,
bodyMargin : null ,
bodyMarginV1 : 8 ,
bodyPadding : null ,
checkOrigin : ! 0 ,
inPageLinks : ! 1 ,
enablePublicMethods : ! 0 ,
heightCalculationMethod : "bodyOffset" ,
id : "iFrameResizer" ,
interval : 32 ,
log : ! 1 ,
maxHeight : 1 / 0 ,
maxWidth : 1 / 0 ,
minHeight : 0 ,
minWidth : 0 ,
mouseEvents : ! 0 ,
resizeFrom : "parent" ,
scrolling : ! 1 ,
sizeHeight : ! 0 ,
sizeWidth : ! 1 ,
warningTimeout : 5e3 ,
tolerance : 0 ,
widthCalculationMethod : "scroll" ,
onClose : function ( ) {
return ! 0
} ,
onClosed : function ( ) {
} ,
onInit : function ( ) {
} ,
onMessage : function ( ) {
w ( "onMessage function not defined" )
} ,
onMouseEnter : function ( ) {
} ,
onMouseLeave : function ( ) {
} ,
onResized : function ( ) {
} ,
onScroll : function ( ) {
return ! 0
}
} ) , m = { } , window . jQuery !== e && ( ( g = window . jQuery ) . fn ? g . fn . iFrameResize || ( g . fn . iFrameResize = function ( e ) {
return this . filter ( "iframe" ) . each ( function ( n , i ) {
H ( i , e )
} ) . end ( )
} ) : $ ( "" , "Unable to bind to jQuery, it is not fully loaded." ) ) , "function" == typeof define && define . amd ? define ( [ ] , L ) : "object" == typeof module && "object" == typeof module . exports && ( module . exports = L ( ) ) , window . iFrameResize = window . iFrameResize || L ( ) )
} ( )
/ * *
* Starting from here is OpnForm custom code .
* @ type { string }
* /
const formSlug = document . currentScript . getAttribute ( 'data-form-slug' )
document . addEventListener ( "DOMContentLoaded" , function ( ) {
if ( formSlug ) {
iFrameResize ( { log : false , checkOrigin : false } , '#' + formSlug )
}
window . addEventListener ( 'message' , function ( event ) {
// Make sure that the event data has the type `form-submitted`
if ( event . data ? . type !== 'form-submitted' || event . data ? . form ? . slug !== formSlug ) {
return
}
// Redirect
if ( event . data ? . form ? . redirect _target _url ) {
// redirect to target URL
2024-06-27 16:23:55 +02:00
window . top . location . href = event . data . form . redirect _target _url
2024-06-27 16:00:54 +02:00
}
} )
} )