/*!
* @preserve
*
* @module iframe-resizer/legacy (child) 5.2.4 (iife)
*
* @license GPL-3.0 for non-commercial use only.
* For commercial use, you must purchase a license from
* https://iframe-resizer.com/pricing
*
* @description Keep same and cross domain iFrames sized to their content
*
* @author David J. Bradshaw <[email protected]>
*
* @see {@link https://iframe-resizer.com}
*
* @copyright (c) 2013 - 2024, David J. Bradshaw. All rights reserved.
*/
!function(){"use strict";const e="5.2.4",t=10,n="data-iframe-size",o="data-iframe-overflow",i="bottom",r="right",a="resizeParent",l=(e,t,n,o)=>e.addEventListener(t,n,o||!1),s=["<iy><yi>Puchspk Spjluzl Rlf</><iy><iy>","<iy><yi>Tpzzpun Spjluzl Rlf</><iy><iy>","Aopz spiyhyf pz hchpshisl dpao ivao Jvttlyjphs huk Vwlu-Zvbyjl spjluzlz.<iy><iy><i>Jvttlyjphs Spjluzl</><iy>Mvy jvttlyjphs bzl, <p>pmyhtl-ylzpgly</> ylxbpylz h svd jvza vul aptl spjluzl mll. Mvy tvyl pumvythapvu cpzpa <b>oaawz://pmyhtl-ylzpgly.jvt/wypjpun</>.<iy><iy><i>Vwlu Zvbyjl Spjluzl</><iy>Pm fvb hyl bzpun aopz spiyhyf pu h uvu-jvttlyjphs vwlu zvbyjl wyvqlja aolu fvb jhu bzl pa mvy myll bukly aol alytz vm aol NWS C3 Spjluzl. Av jvumpyt fvb hjjlwa aolzl alytz, wslhzl zla aol <i>spjluzl</> rlf pu <p>pmyhtl-ylzpgly</> vwapvuz av <i>NWSc3</>.<iy><iy>Mvy tvyl pumvythapvu wslhzl zll: <b>oaawz://pmyhtl-ylzpgly.jvt/nws</>","<i>NWSc3 Spjluzl Clyzpvu</><iy><iy>Aopz clyzpvu vm <p>pmyhtl-ylzpgly</> pz ilpun bzlk bukly aol alytz vm aol <i>NWS C3</> spjluzl. Aopz spjluzl hssvdz fvb av bzl <p>pmyhtl-ylzpgly</> pu Vwlu Zvbyjl wyvqljaz, iba pa ylxbpylz fvby wyvqlja av il wbispj, wyvcpkl haaypibapvu huk il spjluzlk bukly clyzpvu 3 vy shaly vm aol NUB Nlulyhs Wbispj Spjluzl.<iy><iy>Pm fvb hyl bzpun aopz spiyhyf pu h uvu-vwlu zvbyjl wyvqlja vy dlizpal, fvb dpss ullk av wbyjohzl h svd jvza vul aptl jvttlyjphs spjluzl.<iy><iy>Mvy tvyl pumvythapvu cpzpa <b>oaawz://pmyhtl-ylzpgly.jvt/wypjpun</>."];Object.fromEntries(["2cgs7fdf4xb","1c9ctcccr4z","1q2pc4eebgb","ueokt0969w","w2zxchhgqz","1umuxblj2e5"].map(((e,t)=>[e,Math.max(0,t-1)])));const c=e=>(e=>e.replaceAll(/[A-Za-z]/g,(e=>String.fromCodePoint((e<="Z"?90:122)>=(e=e.codePointAt(0)+19)?e:e-26))))(s[e]),d=e=>{let t=!1;return function(){return t?void 0:(t=!0,Reflect.apply(e,this,arguments))}},u=e=>e;let m="";const f=e=>""!=`${e}`&&void 0!==e;const p=(...e)=>[`[iframe-resizer][${m}]`,...e].join(" "),h=(...e)=>console?.info(`[iframe-resizer][${m}]`,...e),y=(...e)=>console?.warn(p(...e)),g=(...e)=>console?.warn((e=>t=>window.chrome?e(t.replaceAll("<br>","\n").replaceAll("<rb>","[31;1m").replaceAll("</>","[m").replaceAll("<b>","[1m").replaceAll("<i>","[3m").replaceAll("<u>","[4m")):e(t.replaceAll("<br>","\n").replaceAll(/<[/a-z]+>/gi,"")))(p)(...e)),v=e=>g(e);let b=[];const z=e=>{const t=e.side||i,n=e.onChange||u,r={root:document.documentElement,rootMargin:"0px",threshold:1},a=new WeakSet,l=new IntersectionObserver((e=>{e.forEach((e=>{e.target.toggleAttribute(o,(e=>0===e.boundingClientRect[t]||e.boundingClientRect[t]>e.rootBounds[t])(e))})),b=document.querySelectorAll(`[${o}]`),n()}),r);function s(e){e?.nodeType===Node.ELEMENT_NODE&&(a.has(e)||(l.observe(e),a.add(e)))}return e=>e.forEach(s)},w=()=>b.length>0,E=1e5,S="--ifr-start",j="--ifr-end",$="--ifr-measure",P=[],T=new WeakSet,C=e=>"object"==typeof e&&T.add(e),O=e=>Math.floor(e*E)/E;let M=null,A=null,N={};const R=setInterval((()=>{if(P.length<10)return;if(N.hasTags&&N.len<25)return;P.sort();const e=Math.min(P.reduce(((e,t)=>e+t),0)/P.length,P[Math.floor(P.length/2)]);e<=4||(clearInterval(R),g(`<rb>Performance Warning</>\n\nCalculating the page size is taking an excessive amount of time (${O(e)}ms).\n\nTo improve performance add the <b>data-iframe-size</> attribute to the ${N.Side.toLowerCase()} most element on the page. For more details see: <u>https://iframe-resizer.com/perf</>.`))}),5e3);function k(e){e.getEntries().forEach((e=>{if(e.name===j){const{duration:t}=performance.measure($,S,j);!function(e,t){const{Side:n,len:o,hasTags:i,logging:r}=e;N=e,T.has(A)||M===A||i&&o<=1||(r||C(A),M=A,h(`\n${n} position calculated from:`,A,`\nParsed ${o} ${i?"tagged":"potentially overflowing"} elements in ${O(t)}ms`))}(e.detail,t),P.push(t),P.length>100&&P.shift()}}))}function I(){new PerformanceObserver(k).observe({entryTypes:["mark"]}),C(document.documentElement),C(document.body)}"undefined"!=typeof document&&"undefined"!=typeof PerformanceObserver&&("loading"===document.readyState?document.addEventListener("DOMContentLoaded",I):I()),"undefined"!=typeof window&&function(){const o={contentVisibilityAuto:!0,opacityProperty:!0,visibilityProperty:!0},s={height:()=>(y("Custom height calculation function not defined"),qe.auto()),width:()=>(y("Custom width calculation function not defined"),Le.auto())},p={bodyOffset:1,bodyScroll:1,offset:1,documentElementOffset:1,documentElementScroll:1,documentElementBoundingClientRect:1,max:1,min:1,grow:1,lowestElement:1},h=128,E={},$="checkVisibility"in window,P="auto",T="[iFrameSizer]",C=T.length,O={max:1,min:1,bodyScroll:1,documentElementScroll:1},M="scroll";let N,R,k=!0,I="",x=0,B="",q="",L=!0,D=!1,W=!0,F=!1,U=1,V=P,J=!0,H="",Z={},_=!1,Q=0,X=!1,Y="",G=u,K="child",ee=null,te=!1,ne="",oe=[],ie=window.parent,re="*",ae=0,le=!1,se="",ce=1,de=M,ue=window,me=()=>{y("onMessage function not defined")},fe=()=>{},pe=null,he=null;function ye(){var o,u;!function(){const e=e=>"true"===e,t=H.slice(C).split(":");Y=t[0],x=void 0===t[1]?x:Number(t[1]),D=void 0===t[2]?D:e(t[2]),_=void 0===t[3]?_:e(t[3]),k=void 0===t[6]?k:e(t[6]),B=t[7],V=void 0===t[8]?V:t[8],I=t[9],q=t[10],ae=void 0===t[11]?ae:Number(t[11]),Z.enable=void 0!==t[12]&&e(t[12]),K=void 0===t[13]?K:t[13],de=void 0===t[14]?de:t[14],X=void 0===t[15]?X:e(t[15]),N=void 0===t[16]?N:Number(t[16]),R=void 0===t[17]?R:Number(t[17]),L=void 0===t[18]?L:e(t[18]),t[19],se=t[20]||se,Q=void 0===t[21]?Q:Number(t[21])}(),function(){function e(){const e=window.iframeResizer||window.iFrameResizer;me=e?.onMessage||me,fe=e?.onReady||fe,"number"==typeof e?.offset&&(g("<rb>Deprecated option</>\n\n The <b>offset</> option has been renamed to <b>offsetSize</>. Use of the old name will be removed in a future version of <i>iframe-resizer</>."),L&&(N=e?.offset),D&&(R=e?.offset)),"number"==typeof e?.offsetSize&&(L&&(N=e?.offsetSize),D&&(R=e?.offsetSize)),Object.prototype.hasOwnProperty.call(e,"sizeSelector")&&(ne=e.sizeSelector),re=e?.targetOrigin||re,V=e?.heightCalculationMethod||V,de=e?.widthCalculationMethod||de}function t(e,t){return"function"==typeof e&&(s[t]=e,e="custom"),e}1!==Q&&"iFrameResizer"in window&&Object===window.iFrameResizer.constructor&&(e(),V=t(V,"height"),de=t(de,"width"))}(),m={id:Y,logging:_}.id,function(){try{te="iframeParentListener"in window.parent}catch(e){}}(),Q<0?v(`${c(Q+2)}${c(2)}`):se.codePointAt(0)>4||Q<2&&v(c(3)),se&&""!==se&&"false"!==se?se!==e&&g(`<b>Version mismatch</>\n\nThe parent and child pages are running different versions of <i>iframe resizer</>.\n\nParent page: ${se} - Child page: ${e}.\n`):g("<rb>Legacy version detected on parent page</>\n\nDetected legacy version of parent page script. It is recommended to update the parent page to use <b>@iframe-resizer/parent</>.\n\nSee <u>https://iframe-resizer.com/setup/</> for more details.\n"),je(),$e(),function(){let e=!1;const t=t=>document.querySelectorAll(`[${t}]`).forEach((o=>{e=!0,o.removeAttribute(t),o.toggleAttribute(n,!0)}));t("data-iframe-height"),t("data-iframe-width"),e&&g("<rb>Deprecated Attributes</>\n \nThe <b>data-iframe-height</> and <b>data-iframe-width</> attributes have been deprecated and replaced with the single <b>data-iframe-size</> attribute. Use of the old attributes will be removed in a future version of <i>iframe-resizer</>.")}(),ve(),L!==D&&(G=z({onChange:d(ge),side:L?i:r})),1!==Q&&(ue.parentIframe=Object.freeze({autoResize:e=>(!0===e&&!1===k?(k=!0,We("autoResizeEnabled","Auto Resize enabled")):!1===e&&!0===k&&(k=!1),Je(0,0,"autoResize",JSON.stringify(k)),k),close(){Je(0,0,"close")},getId:()=>Y,getPageInfo(e){if("function"==typeof e)return pe=e,Je(0,0,"pageInfo"),void g("<rb>Deprecated Method</>\n \nThe <b>getPageInfo()</> method has been deprecated and replaced with <b>getParentProps()</>. Use of this method will be removed in a future version of <i>iframe-resizer</>.\n");pe=null,Je(0,0,"pageInfoStop")},getParentProps(e){if("function"!=typeof e)throw new TypeError("parentIFrame.getParentProps(callback) callback not a function");return he=e,Je(0,0,"parentInfo"),()=>{he=null,Je(0,0,"parentInfoStop")}},getParentProperties(e){g("<rb>Renamed Method</>\n \nThe <b>getParentProperties()</> method has been renamed <b>getParentProps()</>. Use of the old name will be removed in a future version of <i>iframe-resizer</>.\n"),this.getParentProps(e)},moveToAnchor(e){Z.findTarget(e)},reset(){Ve()},scrollBy(e,t){Je(t,e,"scrollBy")},scrollTo(e,t){Je(t,e,"scrollTo")},scrollToOffset(e,t){Je(t,e,"scrollToOffset")},sendMessage(e,t){Je(0,0,"message",JSON.stringify(e),t)},setHeightCalculationMethod(e){V=e,je()},setWidthCalculationMethod(e){de=e,$e()},setTargetOrigin(e){re=e},resize(e,t){We(a,`parentIFrame.resize(${e||""}${t?`,${t}`:""})`,e,t)},size(e,t){g("<rb>Deprecated Method</>\n \nThe <b>size()</> method has been deprecated and replaced with <b>resize()</>. Use of this method will be removed in a future version of <i>iframe-resizer</>.\n"),this.resize(e,t)}}),ue.parentIFrame=ue.parentIframe),function(){function e(e){Je(0,0,e.type,`${e.screenY}:${e.screenX}`)}function t(t,n){l(window.document,t,e)}!0===X&&(t("mouseenter"),t("mouseleave"))}(),Z=function(){const e=()=>({x:document.documentElement.scrollLeft,y:document.documentElement.scrollTop});function n(n){const o=n.getBoundingClientRect(),i=e();return{x:parseInt(o.left,t)+parseInt(i.x,t),y:parseInt(o.top,t)+parseInt(i.y,t)}}function o(e){function t(e){const t=n(e);Je(t.y,t.x,"scrollToOffset")}const o=e.split("#")[1]||e,i=decodeURIComponent(o),r=document.getElementById(i)||document.getElementsByName(i)[0];void 0===r?Je(0,0,"inPageLink",`#${o}`):t(r)}function i(){const{hash:e,href:t}=window.location;""!==e&&"#"!==e&&o(t)}function r(){function e(e){function t(e){e.preventDefault(),o(this.getAttribute("href"))}"#"!==e.getAttribute("href")&&l(e,"click",t)}document.querySelectorAll('a[href^="#"]').forEach(e)}function a(){l(window,"hashchange",i)}function s(){setTimeout(i,h)}function c(){r(),a(),s()}return Z.enable&&(1===Q?g("In page linking requires a Professional or Business license. Please see https://iframe-resizer.com/pricing for more details."):c()),{findTarget:o}}(),be(ke(document)()),void 0===B&&(B=`${x}px`),ze("margin",(o="margin",(u=B).includes("-")&&(y(`Negative CSS value ignored for ${o}`),u=""),u)),ze("background",I),ze("padding",q),function(){const e=document.createElement("div");e.style.clear="both",e.style.display="block",e.style.height="0",document.body.append(e)}(),function(){const e=e=>e.style.setProperty("height","auto","important");e(document.documentElement),e(document.body)}(),we()}const ge=()=>{var t;We("init","Init message from host page",void 0,void 0,e),document.title&&""!==document.title&&Je(0,0,"title",document.title),Ee({method:t="add",eventType:"After Print",eventName:"afterprint"}),Ee({method:t,eventType:"Before Print",eventName:"beforeprint"}),Ee({method:t,eventType:"Ready State Change",eventName:"readystatechange"}),function(){const e=new Set;let t=!1,n=0,o=[];const i=t=>{const{length:n}=t;for(let o=0;o<n;o++){const{addedNodes:n,removedNodes:i}=t[o],r=n.length,a=i.length;if(r)for(let t=0;t<r;t++)e.add(n[t]);if(a)for(let t=0;t<a;t++)e.delete(i[t])}},r=16,a=2,l=200;let s=1;function c(){const d=performance.now(),u=d-n;if(u>r*s+++a&&u<l)return setTimeout(c,r*s),void(n=d);s=1,o.forEach(i),o=[],0!==e.size?(we(),ve(),be(e),e.forEach(Oe),e.clear(),t=!1):t=!1}function d(e){o.push(e),t||(n=performance.now(),t=!0,requestAnimationFrame(c))}function u(){const e=new window.MutationObserver(d),t=document.querySelector("body"),n={attributes:!1,attributeOldValue:!1,characterData:!1,characterDataOldValue:!1,childList:!0,subtree:!0};return e.observe(t,n),e}u()}(),ee=new ResizeObserver(Te),Ae(document.body),Oe(document.body),fe()};function ve(){oe=document.querySelectorAll(`[${n}]`),F=oe.length>0}function be(e){F?setTimeout(ge):G(e)}function ze(e,t){void 0!==t&&""!==t&&"null"!==t&&document.body.style.setProperty(e,t)}function we(){""!==ne&&document.querySelectorAll(ne).forEach((e=>{e.dataset.iframeSize=!0}))}function Ee(e){({add(t){function n(){We(e.eventName,e.eventType)}E[t]=n,l(window,t,n,{passive:!0})},remove(e){const t=E[e];var n,o;delete E[e],n=e,o=t,window.removeEventListener(n,o,!1)}})[e.method](e.eventName)}function Se(e,t,n,o){return t!==e&&(e in n||(y(`${e} is not a valid option for ${o}CalculationMethod.`),e=t),e in p&&g(`<rb>Deprecated ${o}CalculationMethod (${e})</>\n\nThis version of <i>iframe-resizer</> can auto detect the most suitable ${o} calculation method. It is recommended that you remove this option.`)),e}function je(){V=Se(V,P,qe,"height")}function $e(){de=Se(de,M,Le,"width")}let Pe;function Te(e){if(!Array.isArray(e)||0===e.length)return;const t=e[0].target;Pe=()=>We("resizeObserver",`Resize Observed: ${function(e){switch(!0){case!f(e):return"";case f(e.id):return`${e.nodeName.toUpperCase()}#${e.id}`;case f(e.name):return`${e.nodeName.toUpperCase()} (${e.name})`;default:return e.nodeName.toUpperCase()+(f(e.className)?`.${e.className}`:"")}}(t)}`),setTimeout((()=>{Pe&&Pe(),Pe=void 0}),0)}const Ce=e=>{if(e?.nodeType!==Node.ELEMENT_NODE)return!1;const t=getComputedStyle(e);return""!==t?.position&&"static"!==t?.position},Oe=e=>e?.nodeType!==Node.ELEMENT_NODE?null:[...ke(e)()].filter(Ce).forEach(Ae),Me=new WeakSet;function Ae(e){Me.has(e)||(ee.observe(e),Me.add(e))}function Ne(e){performance.mark(S);const t=(n=e).charAt(0).toUpperCase()+n.slice(1);var n;let i=0,r=document.documentElement,a=F?0:document.documentElement.getBoundingClientRect().bottom;performance.mark(S);const l=F?oe:w()?b:ke(document)();let s=l.length;return l.forEach((t=>{F||!$||t.checkVisibility(o)?(i=t.getBoundingClientRect()[e]+parseFloat(getComputedStyle(t).getPropertyValue(`margin-${e}`)),i>a&&(a=i,r=t)):s-=1})),A=r,performance.mark(j,{detail:{Side:t,len:s,hasTags:F,logging:_}}),a}const Re=e=>[e.bodyOffset(),e.bodyScroll(),e.documentElementOffset(),e.documentElementScroll(),e.documentElementBoundingClientRect()],ke=e=>()=>e.querySelectorAll("* :not(head):not(meta):not(base):not(title):not(script):not(link):not(style):not(map):not(area):not(option):not(optgroup):not(template):not(track):not(wbr):not(nobr)"),Ie={height:0,width:0},xe={height:0,width:0};function Be(e){function t(){return xe[i]=r,Ie[i]=s,r}const n=w(),o=e===qe,i=o?"height":"width",r=e.documentElementBoundingClientRect(),a=Math.ceil(r),l=Math.floor(r),s=(e=>e.documentElementScroll()+Math.max(0,e.getOffset()))(e);switch(!0){case!e.enabled():return s;case F:return e.taggedElement();case!n&&0===xe[i]&&0===Ie[i]:return t();case le&&r===xe[i]&&s===Ie[i]:return Math.max(r,s);case 0===r:return s;case!n&&r!==xe[i]&&s<=Ie[i]:return t();case!o:return e.taggedElement();case!n&&r<xe[i]:case s===l||s===a:case r>s:return t()}return Math.max(e.taggedElement(),t())}const qe={enabled:()=>L,getOffset:()=>N,auto:()=>Be(qe),bodyOffset:()=>{const{body:e}=document,n=getComputedStyle(e);return e.offsetHeight+parseInt(n.marginTop,t)+parseInt(n.marginBottom,t)},bodyScroll:()=>document.body.scrollHeight,offset:()=>qe.bodyOffset(),custom:()=>s.height(),documentElementOffset:()=>document.documentElement.offsetHeight,documentElementScroll:()=>document.documentElement.scrollHeight,documentElementBoundingClientRect:()=>document.documentElement.getBoundingClientRect().bottom,max:()=>Math.max(...Re(qe)),min:()=>Math.min(...Re(qe)),grow:()=>qe.max(),lowestElement:()=>Ne(i),taggedElement:()=>Ne(i)},Le={enabled:()=>D,getOffset:()=>R,auto:()=>Be(Le),bodyScroll:()=>document.body.scrollWidth,bodyOffset:()=>document.body.offsetWidth,custom:()=>s.width(),documentElementScroll:()=>document.documentElement.scrollWidth,documentElementOffset:()=>document.documentElement.offsetWidth,documentElementBoundingClientRect:()=>document.documentElement.getBoundingClientRect().right,max:()=>Math.max(...Re(Le)),min:()=>Math.min(...Re(Le)),rightMostElement:()=>Ne(r),scroll:()=>Math.max(Le.bodyScroll(),Le.documentElementScroll()),taggedElement:()=>Ne(r)};function De(e,t,n,o,i){let r,a;!function(){const e=(e,t)=>!(Math.abs(e-t)<=ae);return r=void 0===n?qe[V]():n,a=void 0===o?Le[de]():o,L&&e(U,r)||D&&e(ce,a)}()&&"init"!==e?!(e in{init:1,size:1})&&(L&&V in O||D&&de in O)&&Ve():(Fe(),U=r,ce=a,Je(U,ce,e,i))}function We(e,t,n,o,i){(k||e===a)&&(document.hidden||De(e,0,n,o,i))}function Fe(){le||(le=!0,requestAnimationFrame((()=>{le=!1})))}function Ue(e){U=qe[V](),ce=Le[de](),Je(U,ce,e)}function Ve(e){const t=V;V=P,Fe(),Ue("reset"),V=t}function Je(e,t,n,o,i){Q<-1||(void 0!==i||(i=re),function(){const r=`${Y}:${e+(N||0)}:${t+(R||0)}:${n}${void 0===o?"":`:${o}`}`;te?window.parent.iframeParentListener(T+r):ie.postMessage(T+r,i)}())}function He(e){const t={init:function(){H=e.data,ie=e.source,ye(),W=!1,setTimeout((()=>{J=!1}),h)},reset(){J||Ue("resetPage")},resize(){We(a)},moveToAnchor(){Z.findTarget(o())},inPageLink(){this.moveToAnchor()},pageInfo(){const e=o();pe?pe(JSON.parse(e)):Je(0,0,"pageInfoStop")},parentInfo(){const e=o();he?he(Object.freeze(JSON.parse(e))):Je(0,0,"parentInfoStop")},message(){const e=o();me(JSON.parse(e))}},n=()=>e.data.split("]")[1].split(":")[0],o=()=>e.data.slice(e.data.indexOf(":")+1),i=()=>"iframeResize"in window||void 0!==window.jQuery&&""in window.jQuery.prototype,r=()=>e.data.split(":")[2]in{true:1,false:1};T===`${e.data}`.slice(0,C)&&(!1!==W?r()&&t.init():function(){const o=n();o in t?t[o]():i()||r()||y(`Unexpected message (${e.data})`)}())}function Ze(){"loading"!==document.readyState&&window.parent.postMessage("[iFrameResizerChild]Ready","*")}window.iframeChildListener=e=>He({data:e,sameDomain:!0}),l(window,"message",He),l(window,"readystatechange",Ze),Ze()}()}();