@iframe-resizer/child
Version:
Keep iframes sized to their content.
21 lines (18 loc) • 29.3 kB
JavaScript
/*!
* @preserve
*
* @module iframe-resizer/child 5.5.9 (cjs) - 2026-02-06
*
* @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 <info@iframe-resizer.com>
*
* @see {@link https://iframe-resizer.com}
*
* @copyright (c) 2013 - 2026, David J. Bradshaw. All rights reserved.
*/
;const e=require("auto-console-group"),t="5.5.9",n="iframeResizer",o=":",r="init",i="message",a="pageHide",s="pageInfo",c="parentInfo",l="scrollToOffset",d="title",u=10,m="data-iframe-size",f="data-iframe-overflowed",p="data-iframe-ignore",h="height",y="width",g="offset",b="offsetSize",v="string",z="number",w="object",$="function",O="auto",I="readystatechange",S="bottom",T="right",E="autoResizeEnabled",M=Symbol("sizeChanged"),H="manualResize",j="parentResize",k={[H]:1,[j]:1},N="setOffsetSize",R="resizeObserver",x="overflowObserver",A="mutationObserver",L="visibilityObserver",C="[iFrameSizer]",G=new Set(["head","body","meta","base","title","script","link","style","map","area","option","optgroup","template","track","wbr","nobr"]),P=e=>{if(!e)return"";let t=-559038744,n=1103547984;for(let o,r=0;r<e.length;r++)o=e.codePointAt(r),t=Math.imul(t^o,2246822519),n=Math.imul(n^o,3266489917);return t^=Math.imul(t^n>>>15,1935289751),n^=Math.imul(n^t>>>15,3405138345),t^=n>>>16,n^=t>>>16,(2097152*(n>>>0)+(t>>>11)).toString(36)},D=e=>e.replace(/[A-Za-z]/g,e=>String.fromCodePoint((e<="Z"?90:122)>=(e=e.codePointAt(0)+19)?e:e-26)),B=["spjluzl","rlf","clyzpvu"],q=["<yi>Puchspk Spjluzl Rlf</><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</>.","<iy><yi>Zvsv spjluzl kvlz uva zbwwvya jyvzz-kvthpu</><iy><iy>Av bzl <p>pmyhtl-ylzpgly</> dpao jyvzz kvthpu pmyhtlz fvb ullk lpaoly aol Wyvmlzzpvuhs vy Ibzpulzz spjluzlz. Mvy klahpsz vu bwnyhkl wypjpun wslhzl jvuahja pumv@pmyhtl-ylzpgly.jvt.","Pu whnl spurpun ylxbpylz h Wyvmlzzpvuhs vy Ibzpulzz spjluzl. Wslhzl zll <b>oaawz://pmyhtl-ylzpgly.jvt/wypjpun</> mvy tvyl klahpsz."],F=["NWSc3","zvsv","wyv","ibzpulzz","vlt"],W=Object.fromEntries(["2cgs7fdf4xb","1c9ctcccr4z","1q2pc4eebgb","ueokt0969w","w2zxchhgqz","1umuxblj2e5","2b5sdlfhbev","zo4ui3arjo","oclbb4thgl"].map((e,t)=>[e,Math.max(0,t-1)])),U=e=>D(q[e]),V=e=>{const t=e[D(B[0])]||e[D(B[1])]||e[D(B[2])];if(!t)return-1;const n=t.split("-");let o=function(e=""){let t=-2;const n=P(D(e));return n in W&&(t=W[n]),t>4?t-4:t}(n[0]);return 0===o||(e=>e[2]===P(e[0]+e[1]))(n)||(o=-2),o},Z=(e,...t)=>setTimeout(()=>e(...t),0),J=e=>{let t=!1;return function(){return t?void 0:(t=!0,Reflect.apply(e,this,arguments))}},_=e=>e,Q=e=>Math.round(1e3*e)/1e3,Y=e=>e.charAt(0).toUpperCase()+e.slice(1),X=e=>""!=`${e}`&&void 0!==e,K=e=>e();const ee=(e,t,n)=>{if(typeof e!==t)throw new TypeError(`${n} is not a ${Y(t)}`)},te={br:"\n",rb:"[31;1m",bb:"[34;1m",b:"[1m",i:"[3m",u:"[4m","/":"[m"},ne=Object.keys(te),oe=new RegExp(`<(${ne.join("|")})>`,"gi"),re=(e,t)=>te[t]??"";let ie=!0,ae=n;var se;const ce=(se=e,se?.__esModule?se.default:se)({label:`${n}(child)`,expand:!1});var le;const de=(le="log",(...e)=>!ie||ce[le](...e));const{assert:ue,endAutoGroup:me,error:fe,errorBoundary:pe,event:he,label:ye,purge:ge,warn:be}=ce,ve=(ze=_,e=>ze(typeof e===v?window.chrome?e.replace(oe,re):(e=>e.replaceAll("<br>","\n").replaceAll(/<\/?[^>]+>/gi,""))(e):e));var ze;const we=(...e)=>ce.warn(...e.map(ve)),$e=(e=>(t,n="renamed to")=>(o,r,i="",a="")=>e(a,`<rb>Deprecated ${t}(${o.replace("()","")})</>\n\nThe <b>${o}</> ${t.toLowerCase()} has been ${n} <b>${r}</>. ${i}Use of the old ${t.toLowerCase()} will be removed in a future version of <i>iframe-resizer</>.`))((e,t)=>we(t)),Oe=$e("Method"),Ie=$e("Method","replaced with"),Se=$e("Option"),Te=["min-height","min-width","max-height","max-width"],Ee=new Set,Me=(e,t)=>window.getComputedStyle(e).getPropertyValue(t),He=(e,t)=>{return(n=Me(e,t))&&"0px"!==n&&n!==O&&"none"!==n;var n};function je({href:e}){Ee.has(e)||Ee.add(e)}const ke=(e,t)=>function(e,t){const n=e.style[t];return n?{source:"an inline style attribute",value:n}:null}(e,t)||function(e,t){for(const n of document.styleSheets)try{for(const o of n.cssRules||[])if(o.selectorText&&e.matches(o.selectorText)){const e=o.style[t];if(e)return{source:"STYLE"===n.ownerNode.tagName?"an inline <style> block":`stylesheet (${n.href})`,value:e}}}catch(e){je(n)}return{source:"cross-origin stylesheet",value:Me(e,t)}}(e,t),Ne=(e,t)=>{const{source:n,value:o}=ke(e,t),r=(e=>e.tagName?e.tagName.toLowerCase():"unknown")(e);we(`The <b>${t}</> CSS property is set to <b>${o}</> on the <b><${r}></> element via ${n}. This may cause issues with the correct operation of <i>iframe-resizer</>.\n\nIf you wish to restrict the size of the iframe, then you should set this property on the iframe element itself, not the content inside it.`)};function Re(){for(const e of[document.documentElement,document.body])for(const t of Te)He(e,t)&&Ne(e,t)}const xe=e=>t=>void 0===t?void 0:e(t),Ae=xe(e=>"true"===e),Le=xe(Number),Ce=[],Ge=(e,t,n,o)=>{e.removeEventListener(t,n,o)},Pe=(e,t,n,o=!1)=>{e.addEventListener(t,n,o),Ce.push(()=>Ge(e,t,n,o))},De=e=>e=>{e.size},Be=((e="")=>t=>n=>{n.size>0&&fe(`${t}Observer ${e}:`,...Array.from(n).flatMap(e=>["\n",e]))})("already attached"),qe=e=>e=>{e.size},Fe=(t,n=!0)=>o=>{o>0&&de(`${n?"At":"De"}tached %c${t}Observer%c ${n?"to":"from"} %c${o}%c element${1===o?"":"s"}`,e.HIGHLIGHT,e.NORMAL,e.HIGHLIGHT,e.NORMAL)},We=(e,t,n,o)=>{const r=qe(e);return e=>{const i=new Set;let a=0;for(const o of e)n.has(o)&&(t.unobserve(o),n.delete(o),i.add(o),a+=1);r(i),o(a),i.clear()}},Ue=new Set,Ve=new Set,Ze=new Set,Je=[],_e={attributes:!0,attributeFilter:[p,m],attributeOldValue:!1,characterData:!1,characterDataOldValue:!1,childList:!0,subtree:!0};let Qe,Ye=1,Xe=!1,Ke=0;const et=e=>{e.size},tt=e=>{e.size},nt=e=>{e.size},ot=e=>e.nodeType!==Node.ELEMENT_NODE||G.has(e.tagName.toLowerCase());function rt(e){const t=e.addedNodes;for(const e of t)ot(e)||Ue.add(e)}function it(e){const t=e.removedNodes;for(const e of t)ot(e)||(Ue.has(e)?(Ue.delete(e),Ze.add(e)):Ve.add(e))}const at=e=>{de("Mutations:",e);for(const t of e)rt(t),it(t);et(Ue),tt(Ve),nt(Ze),Ze.clear()};const st=t=>()=>{const n=performance.now(),o=n-Ke,r=16*Ye+++2;if(o>r&&o<200)return he("mutationThrottled"),de("Update delayed due to heavy workload on the callStack"),de(`EventLoop busy time: %c${Q(o)}ms %c> Max wait: %c${r-2}ms`,e.HIGHLIGHT,e.FOREGROUND,e.HIGHLIGHT),setTimeout(Qe,16*Ye),void(Ke=n);Ye=1,Je.forEach(at),Je.length=0,Xe=!1,Ve.size,Ue.size,t({addedNodes:Ue,removedNodes:Ve}),Ue.clear(),Ve.clear()};function ct(e){Je.push(e),Xe||(Ke=performance.now(),Xe=!0,requestAnimationFrame(Qe))}function lt(t){const n=new window.MutationObserver(ct),o=document.body||document.documentElement;return Qe=st(t),n.observe(o,_e),de("Attached%c MutationObserver%c to body",e.HIGHLIGHT,e.FOREGROUND),{...n,disconnect:()=>{Ue.clear(),Ve.clear(),Je.length=0,n.disconnect(),de("Detached%c MutationObserver",e.HIGHLIGHT)}}}const dt="Overflow",ut=Fe(dt),mt=Fe(dt,!1),ft=De(dt),pt=Be(dt),ht=e=>e.hidden||null===e.offsetParent||"none"===e.style.display,yt=(t,n)=>{const o=n.side,r={root:n.root,rootMargin:"0px",threshold:1},i=window?.requestAnimationFrame||_,a=(e=!1)=>t(e),s=(e,t)=>0===e||e>t[o],c=(e,t)=>e.toggleAttribute(f,t);const l=new IntersectionObserver(function(e){for(const t of e){const{boundingClientRect:e,rootBounds:n,target:r}=t;if(!n)continue;const i=e[o],a=s(i,n)&&!ht(r);c(r,a)}i(a)},r),d=new WeakSet;return{attachObservers:function(e){const t=new Set,n=new Set;let o=0;for(const r of e)r.nodeType===Node.ELEMENT_NODE&&(d.has(r)?t.add(r):(l.observe(r),d.add(r),n.add(r),o+=1));pt(t),ft(n),ut(o),n.clear(),t.clear()},detachObservers:We(dt,l,d,mt),disconnect:()=>{l.disconnect(),de("Detached%c OverflowObserver",e.HIGHLIGHT)}}},gt="--ifr-start",bt="--ifr-end",vt="--ifr-measure",zt=[];let wt,$t={},Ot=0;function It(){try{performance.clearMarks(gt),performance.clearMarks(bt),performance.clearMeasures(vt)}catch{}}function St(e){e.getEntries().forEach(e=>{if(e.name===bt)try{const{duration:t}=performance.measure(vt,gt,bt);$t=e.detail,zt.push(t),zt.length>100&&zt.shift()}catch{}})}function Tt(){de("Attached%c PerformanceObserver%c to page",e.HIGHLIGHT,e.FOREGROUND);const t=new PerformanceObserver(St);return t.observe({entryTypes:["mark"]}),wt=setInterval(()=>{if(zt.length<10)return;if($t.hasTags&&$t.len<25)return;zt.sort();const e=Math.min(zt.reduce((e,t)=>e+t,0)/zt.length,zt[Math.floor(zt.length/2)]),t=Q(e);t>Ot&&(Ot=t,he("performanceObserver")),It(),e<=4||(clearInterval(wt),we(`<rb>Performance Warning</>\n\nCalculating the page size is taking an excessive amount of time (${Q(e)}ms).\n\nTo improve performance add the <b>data-iframe-size</> attribute to the ${$t.Side.toLowerCase()} most element on the page. For more details see: <u>https://iframe-resizer.com/perf</>.`))},5e3),{disconnect:()=>{It(),clearInterval(wt),t.disconnect(),de("Detached%c PerformanceObserver",e.HIGHLIGHT)}}}const Et="Resize",Mt=Fe(Et),Ht=Fe(Et,!1),jt=De(Et),kt=Be(Et),Nt=new WeakSet,Rt=new Set,xt=new Set;let At;function Lt(e){let t=0;for(const n of e){if(n.nodeType!==Node.ELEMENT_NODE)continue;const e=getComputedStyle(n)?.position;""!==e&&"static"!==e&&(Nt.has(n)?Rt.add(n):(At.observe(n),Nt.add(n),xt.add(n),t+=1))}kt(Rt),jt(xt),Mt(t),xt.clear(),Rt.clear()}function Ct(t){const n=new IntersectionObserver(e=>t(e.at(-1).isIntersecting),{threshold:0}),o=document.documentElement;return n.observe(o),de("Attached%c VisibilityObserver%c to page",e.HIGHLIGHT,e.FOREGROUND),{disconnect:()=>{n.disconnect(),de("Detached%c VisibilityObserver",e.HIGHLIGHT)}}}const Gt=e=>(t,n)=>{if(n in t){if(typeof t[n]===e)return t[n];throw new TypeError(`${n} is not a ${e}.`)}},Pt=Gt($),Dt=Gt(z),Bt=Gt(v);"undefined"!=typeof window&&function(){const P={height:()=>(be("Custom height calculation function not defined"),Hn.auto()),width:()=>(be("Custom width calculation function not defined"),jn.auto())},q={bodyOffset:1,bodyScroll:1,offset:1,documentElementOffset:1,documentElementScroll:1,boundingClientRect:1,max:1,min:1,grow:1,lowestElement:1},W={},Q=O,te="scroll";let ne,oe,re,se,le,ve,ze,$e=!0,Te="",Ee=0,Me="",He="",je=!1,ke=!0,Ne=!1,xe=!0,De=!1,Be=!1,qe=!0,Fe=!1,Ue=1,Ve=Q,Ze="",Je=!0,_e={},Qe=!1,Ye=!1,Xe=!1,Ke=0,et=!1,tt=0,nt=0,ot=new Set,rt="",it="child",at=!1,st="",ct=[],dt=window.parent,ut="*",mt=0,ft=!1,pt=1,ht=te,vt=window,zt=()=>{be("onMessage function not defined")},wt=()=>{},$t=null,Ot=null;function It(o){var i;!function(e){rt=e[0]??rt,Ee=Le(e[1])??Ee,Ne=Ae(e[2])??Ne,Xe=Ae(e[3])??Xe,$e=Ae(e[6])??$e,Me=e[7]??Me,Ve=e[8]??Ve,Te=e[9]??Te,He=e[10]??He,mt=Le(e[11])??mt,_e.enable=Ae(e[12])??!1,it=e[13]??it,ht=e[14]??ht,et=Ae(e[15])??et,tt=Le(e[16])??tt,nt=Le(e[17])??nt,ke=Ae(e[18])??ke,ne=e[19]??ne,ve=e[20]??ve,Ke=Le(e[21])??Ke,Ye=Ae(e[23])??Ye}(o),ae=(i={id:rt,enabled:Xe,expand:Ye}).id||n,ce.label(`${ae}`),ce.expand(i.expand),ie=i.enabled,he("initReceived"),function(){function t(e){ze=Pt(e,"onBeforeResize")??ze,zt=Pt(e,"onMessage")??zt,wt=Pt(e,"onReady")??wt,typeof e?.offset===z&&(Se(g,b),ke&&(tt=Dt(e,g)??tt),Ne&&(nt=Dt(e,g)??nt)),typeof e?.offsetSize===z&&(ke&&(tt=Dt(e,b)??tt),Ne&&(nt=Dt(e,b)??nt)),oe=Bt(e,D(B[0]))??oe,Ze=Bt(e,"ignoreSelector")??Ze,st=Bt(e,"sizeSelector")??st,ut=Bt(e,"targetOrigin")??ut,Ve=e?.heightCalculationMethod||Ve,ht=e?.widthCalculationMethod||ht}function n(e,t){return typeof e===$&&(we(`<rb>Deprecated Option(${t}CalculationMethod)</>\n\nThe use of <b>${t}CalculationMethod</> as a function is deprecated and will be removed in a future version of <i>iframe-resizer</>. Please use the new <b>onBeforeResize</> event handler instead.\n\nSee <u>https://iframe-resizer.com/api/child</> for more details.`),P[t]=e,e="custom"),e}if(1===Ke)return;const o=window.iframeResizer||window.iFrameResizer;typeof o===w&&(t(o),Ve=n(Ve,h),ht=n(ht,y),de(`Set targetOrigin for parent: %c${ut}`,e.HIGHLIGHT))}(),[Ft,Ut,nn,Gt,Wt,en,tn,Xt,qt,Rt,je?_:Re,_t,()=>Vt("background",Te),()=>Vt("padding",He),je?_:Qt,rn,Jt,zn,an,on,sn,Mt,cn].forEach(e=>{try{e()}catch(e){if(Ke<0)throw e;we("<rb>Error in setup function</>\n<i>iframe-resizer</> detected an error during setup.\n\nPlease report the following error message at <u>https://github.com/davidjbradshaw/iframe-resizer/issues</>"),fe(e)}}),kt(J(wt)),me(),Cn(r,"Init message from host page",void 0,void 0,`${t}:${Ke}`),document.title&&""!==document.title&&Dn(0,0,d,document.title)}function St({persisted:e}){e||Dn(0,0,"beforeUnload"),he(a),de("Page persisted:",e),e||Ce.forEach(K)}const Mt=()=>Pe(window,a.toLowerCase(),St);let jt=!1;function kt(e){"complete"===document.readyState?Z(e):jt||Pe(document,I,()=>kt(e)),jt=!0}function Rt(){ct=document.querySelectorAll(`[${m}]`),Fe=ct.length>0}let xt=0;function Gt(){const t=document.querySelectorAll(`*[${p}]`);return De=t.length>0,De&&t.length!==xt&&(function(t){const n=1===t.length?"":"s";be(`%c[${p}]%c found on %c${t.length}%c element${n}`,e.BOLD,e.NORMAL,e.BOLD,e.NORMAL)}(t),xt=t.length),De}function qt(){"BackCompat"===document.compatMode&&we("<rb>Quirks Mode Detected</>\n\nThis iframe is running in the browser's legacy <b>Quirks Mode</>, this may cause issues with the correct operation of <i>iframe-resizer</>. It is recommended that you switch to the modern <b>Standards Mode</>.\n\nFor more information see <u>https://iframe-resizer.com/quirks-mode</>.\n")}function Ft(){ve&&""!==ve&&"false"!==ve?ve!==t&&we(`<b>Version mismatch</>\n\nThe parent and child pages are running different versions of <i>iframe resizer</>.\n\nParent page: ${ve} - Child page: ${t}.\n`):we("<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")}function Wt(){try{at=1===Ke||"iframeParentListener"in window.parent}catch(e){}}function Ut(){Ne===ke&&(je=!0)}function Vt(t,n){void 0!==n&&""!==n&&"null"!==n&&(document.body.style.setProperty(t,n),de(`Set body ${t}: %c${n}`,e.HIGHLIGHT))}function Zt(e,t,n){if(""!==n)for(const e of document.querySelectorAll(n))e.toggleAttribute(t,!0)}function Jt(){Zt(0,m,st),Zt(0,p,Ze)}function _t(){var e,t;void 0===Me&&(Me=`${Ee}px`),Vt("margin",(e="margin",(t=Me).includes("-")&&(be(`Negative CSS value ignored for ${e}`),t=""),t))}function Qt(){const e=e=>e.style.setProperty(h,O,"important");e(document.documentElement),e(document.body)}function Yt(e){({add(t){function n(){Cn(e.eventName,e.eventType)}W[t]=n,Pe(window,t,n,{passive:!0})},remove(e){const t=W[e];delete W[e],Ge(window,e,t)}})[e.method](e.eventName)}function Xt(){let e=!1;const t=t=>document.querySelectorAll(`[${t}]`).forEach(n=>{e=!0,n.removeAttribute(t),n.toggleAttribute(m,!0)});t("data-iframe-height"),t("data-iframe-width"),e&&we("<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</>.")}function Kt(e,t,n){const{label:o}=n;return t!==e&&(e in n||(be(`${e} is not a valid option for ${o}CalculationMethod.`),e=t),e in q)&&we(`<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 ${ve?"remove this option.":`set this option to <b>'auto'</> when using an older version of <i>iframe-resizer</> on the parent page. This can be done on the child page by adding the following code:\n\nwindow.iframeResizer = {\n license: 'xxxx',\n ${o}CalculationMethod: '${O}',\n}\n`}\n`),e}function en(){Ve=Kt(Ve,Q,Hn)}function tn(){ht=Kt(ht,te,jn)}function nn(){const n=Ke,o=V({key:ne}),r=V({key:oe});if(Ke=Math.max(o,r),Ke<0){if(Ke=Math.min(o,r),ge(),we(`${U(Ke+2)}${U(2)}`),X(ve))throw U(Ke+2).replace(/<\/?[a-z][^>]*>|<\/>/gi,"")}else(!X(ve)||n>-1&&Ke>n)&&(sessionStorage.getItem("ifr")!==t&&function(t,n){console.info(`${ae} %ciframe-resizer ${t}`,ie||n<1?"font-weight: bold;":e.NORMAL)}(`v${t} (${(e=>D(F[e]))(Ke)})`,Ke),Ke<2&&we(U(3)),sessionStorage.setItem("ifr",t))}function on(){!function(e){Yt({method:e,eventType:"After Print",eventName:"afterprint"}),Yt({method:e,eventType:"Before Print",eventName:"beforeprint"})}("add")}function rn(){const e=document.createElement("div");e.style.clear="both",e.style.display="block",e.style.height="0",document.body.append(e)}function an(){function e(e){const t=e.getBoundingClientRect(),n={x:document.documentElement.scrollLeft,y:document.documentElement.scrollTop};return{x:parseInt(t.left,u)+parseInt(n.x,u),y:parseInt(t.top,u)+parseInt(n.y,u)}}function t(t){const n=t.split("#")[1]||t,o=decodeURIComponent(n),r=document.getElementById(o)||document.getElementsByName(o)[0];void 0===r?Dn(0,0,"inPageLink",`#${n}`):function(t){const n=e(t);Dn(n.y,n.x,l)}(r)}function n(){const{hash:e,href:n}=window.location;""!==e&&"#"!==e&&t(n)}const{enable:o}=_e;o&&(1===Ke?we(U(5)):(function(){for(const e of document.querySelectorAll('a[href^="#"]'))"#"!==e.getAttribute("href")&&Pe(e,"click",n=>{n.preventDefault(),t(e.getAttribute("href"))})}(),Pe(window,"hashchange",n),setTimeout(n,128))),_e={..._e,findTarget:t}}function sn(){function e(e){Dn(0,0,e.type,`${e.screenY}:${e.screenX}`)}function t(t,n){Pe(window.document,t,e)}!0===et&&(t("mouseenter"),t("mouseleave"))}function cn(){1!==Ke&&(vt.parentIframe=Object.freeze({autoResize:e=>(ee(e,"boolean","parentIframe.autoResize(enable) enable"),!1===Ne&&!1===ke?(he(E),we("Auto Resize can not be changed when <b>direction</> is set to 'none'."),!1):(!0===e&&!1===$e?($e=!0,queueMicrotask(()=>Cn(E,"Auto Resize enabled"))):!1===e&&!0===$e&&($e=!1),Dn(0,0,"autoResize",JSON.stringify($e)),$e)),close(){Dn(0,0,"close")},getId:()=>rt,getOrigin:()=>(he("getOrigin"),Oe("getOrigin()","getParentOrigin()"),re),getParentOrigin:()=>re,getPageInfo(e){if(typeof e===$)return $t=e,Dn(0,0,s),void Ie("getPageInfo()","getParentProps()","See <u>https://iframe-resizer.com/upgrade</> for details. ");$t=null,Dn(0,0,"pageInfoStop")},getParentProps:e=>(ee(e,$,"parentIframe.getParentProps(callback) callback"),Ot=e,Dn(0,0,c),()=>{Ot=null,Dn(0,0,"parentInfoStop")}),getParentProperties(e){Oe("getParentProperties()","getParentProps()"),this.getParentProps(e)},moveToAnchor(e){ee(e,v,"parentIframe.moveToAnchor(anchor) anchor"),_e.findTarget(e)},reset(){!function(){const e=Ve;Ve=Q,ft||(ft=!0,requestAnimationFrame(()=>{ft=!1})),Gn("reset"),Ve=e}()},setOffsetSize(e){ee(e,z,"parentIframe.setOffsetSize(offset) offset"),tt=e,nt=e,Cn(N,`parentIframe.setOffsetSize(${e})`)},scrollBy(e,t){ee(e,z,"parentIframe.scrollBy(x, y) x"),ee(t,z,"parentIframe.scrollBy(x, y) y"),Dn(t,e,"scrollBy")},scrollTo(e,t){ee(e,z,"parentIframe.scrollTo(x, y) x"),ee(t,z,"parentIframe.scrollTo(x, y) y"),Dn(t,e,"scrollTo")},scrollToOffset(e,t){ee(e,z,"parentIframe.scrollToOffset(x, y) x"),ee(t,z,"parentIframe.scrollToOffset(x, y) y"),Dn(t,e,l)},sendMessage(e,t){t&&ee(t,v,"parentIframe.sendMessage(msg, targetOrigin) targetOrigin"),Dn(0,0,i,JSON.stringify(e),t)},setHeightCalculationMethod(e){Ve=e,en()},setWidthCalculationMethod(e){ht=e,tn()},setTargetOrigin(e){ee(e,v,"parentIframe.setTargetOrigin(targetOrigin) targetOrigin"),ut=e},resize(e,t){void 0!==e&&ee(e,z,"parentIframe.resize(customHeight, customWidth) customHeight"),void 0!==t&&ee(t,z,"parentIframe.resize(customHeight, customWidth) customWidth"),Cn(H,`parentIframe.resize(${e||""}${t?`,${t}`:""})`,e,t)},size(e,t){Oe("size()","resize()"),this.resize(e,t)}}),vt.parentIFrame=vt.parentIframe)}let ln=new Set;function dn(){const e=document.querySelectorAll(`[${f}]`);ot=function(e){const t=new Set,n=new Set;for(const o of e)o.closest(`[${p}]`)?n.add(o):t.add(o);return n.size>0&&queueMicrotask(()=>{he("overflowIgnored"),de("Ignoring elements with [data-iframe-ignore] > *:\n",n),me()}),t}(e),Be=ot.size>0,typeof Set.prototype.symmetricDifference===$&&(qe=ot.symmetricDifference(ln).size>0),ln=ot}function un(){switch(dn(),!0){case!qe:return;case ot.size>1:de("Overflowed Elements:",ot);break;case Be:break;default:de("No overflow detected")}Cn(x,"Overflow updated")}function mn(e){const t={root:document.documentElement,side:ke?S:T};return se=yt(un,t),se.attachObservers(e),se}function fn(e){if(!Array.isArray(e)||0===e.length)return;const t=e[0].target;Cn(R,`Element resized <${function(e){switch(!0){case!X(e):return"";case X(e.id):return`${e.nodeName}#${e.id}`;case X(e.name):return`${e.nodeName} (${e.name}`;case X(e.className):return`${e.nodeName}.${e.className}`;default:return e.nodeName}}(t)}>`)}function pn(t){return At=new ResizeObserver(fn),At.observe(document.body),Nt.add(document.body),de("Attached%c ResizeObserver%c to body",e.HIGHLIGHT,e.FOREGROUND),le={attachObserverToNonStaticElements:Lt,detachObservers:We(Et,At,Nt,Ht),disconnect:()=>{At.disconnect(),de("Detached%c ResizeObserver",e.HIGHLIGHT)}},le.attachObserverToNonStaticElements(t),le}function hn(e){Qe=!e,Cn(L,"Visibility changed")}const yn=e=>{const t=new Set;for(const n of e){t.add(n);for(const e of In(n))t.add(e)}return de("Inspecting:\n",t),t},gn=e=>{if(0===e.size)return;he("addObservers");const t=yn(e);se.attachObservers(t),le.attachObserverToNonStaticElements(t),me()},bn=e=>{if(0===e.size)return;he("removeObservers");const t=yn(e);se.detachObservers(t),le.detachObservers(t),me()};function vn(e){!function({addedNodes:e,removedNodes:t}){he("contentMutated"),Jt(),Rt(),dn(),me(),bn(t),gn(e)}(e),Cn(A,"Mutation Observed")}function zn(){const e=In(document.documentElement);var t;t=[lt(vn),mn(e),Tt(),pn(e),Ct(hn)],Ce.push(...t.map(e=>e.disconnect))}function wn(t){performance.mark(gt);const n=Y(t);let o=1,r=document.documentElement,i=Fe?0:document.documentElement.getBoundingClientRect().bottom;const a=Fe?ct:Be?Array.from(ot):In(document.documentElement);for(const e of a)o=e.getBoundingClientRect()[t]+parseFloat(getComputedStyle(e).getPropertyValue(`margin-${t}`)),o>i&&(i=o,r=e);return de(`${n} position calculated from:`,r),de(`Checked %c${a.length}%c elements`,e.HIGHLIGHT,e.FOREGROUND),performance.mark(bt,{detail:{hasTags:Fe,len:a.length,logging:Xe,Side:n}}),i}const $n=e=>[e.bodyOffset(),e.bodyScroll(),e.documentElementOffset(),e.documentElementScroll(),e.boundingClientRect()],On=`* ${Array.from(G).map(e=>`:not(${e})`).join("")}`,In=e=>e.querySelectorAll(On),Sn={height:0,width:0},Tn={height:0,width:0},En=[e.HIGHLIGHT,e.FOREGROUND,e.HIGHLIGHT];function Mn(t){function n(){return Tn[r]=i,Sn[r]=c,Math.max(i,1)}const o=t===Hn,r=t.label,i=t.boundingClientRect(),a=Math.ceil(i),s=Math.floor(i),c=(e=>e.documentElementScroll()+Math.max(0,e.getOffset()))(t),l=`HTML: %c${i}px %cPage: %c${c}px`;let d=1;switch(!0){case!t.enabled():return Math.max(c,1);case Fe:de("Found element with data-iframe-size attribute"),d=t.taggedElement();break;case!Be&&xe&&0===Tn[r]&&0===Sn[r]:de(`Initial page size values: ${l}`,...En),d=n();break;case ft&&i===Tn[r]&&c===Sn[r]:de(`Size unchanged: ${l}`,...En),d=Math.max(i,c);break;case 0===i&&0!==c:de(`Page is hidden: ${l}`,...En),d=c;break;case!Be&&i!==Tn[r]&&c<=Sn[r]:de(`New <html> size: ${l} `,...En),de(`Previous <html> size: %c${Tn[r]}px`,e.HIGHLIGHT),d=n();break;case!o:d=t.taggedElement();break;case!Be&&i<Tn[r]:de(`<html> size decreased: ${l}`,...En),d=n();break;case c===s||c===a:de(`<html> size equals page size: ${l}`,...En),d=n();break;case i>c:de(`Page size < <html> size: ${l}`,...En),d=n();break;case Be:de("Found elements possibly overflowing <html> "),d=t.taggedElement();break;default:de(`Using <html> size: ${l}`,...En),d=n()}return de(`Content ${r}: %c${d}px`,e.HIGHLIGHT),d+=function(t){const n=t.getOffset();return 0!==n&&de(`Page offsetSize: %c${n}px`,e.HIGHLIGHT),n}(t),Math.max(d,1)}const Hn={label:h,enabled:()=>ke,getOffset:()=>tt,auto:()=>Mn(Hn),bodyOffset:()=>{const{body:e}=document,t=getComputedStyle(e);return e.offsetHeight+parseInt(t.marginTop,u)+parseInt(t.marginBottom,u)},bodyScroll:()=>document.body.scrollHeight,offset:()=>Hn.bodyOffset(),custom:()=>P.height(),documentElementOffset:()=>document.documentElement.offsetHeight,documentElementScroll:()=>document.documentElement.scrollHeight,boundingClientRect:()=>Math.max(document.documentElement.getBoundingClientRect().bottom,document.body.getBoundingClientRect().bottom),max:()=>Math.max(...$n(Hn)),min:()=>Math.min(...$n(Hn)),grow:()=>Hn.max(),lowestElement:()=>wn(S),taggedElement:()=>wn(S)},jn={label:y,enabled:()=>Ne,getOffset:()=>nt,auto:()=>Mn(jn),bodyScroll:()=>document.body.scrollWidth,bodyOffset:()=>document.body.offsetWidth,custom:()=>P.width(),documentElementScroll:()=>document.documentElement.scrollWidth,documentElementOffset:()=>document.documentElement.offsetWidth,boundingClientRect:()=>Math.max(document.documentElement.getBoundingClientRect().right,document.body.getBoundingClientRect().right),max:()=>Math.max(...$n(jn)),min:()=>Math.min(...$n(jn)),rightMostElement:()=>wn(T),scroll:()=>Math.max(jn.bodyScroll(),jn.documentElementScroll()),taggedElement:()=>wn(T)},kn=(e,t)=>!(Math.abs(e-t)<=mt);function Nn(e,t){const n=e[t](),o=e.enabled()&&void 0!==ze?function(e){const t=ze(e);if(void 0===t)throw new TypeError("No value returned from onBeforeResize(), expected a numeric value");if(Number.isNaN(t))throw new TypeError(`Invalid value returned from onBeforeResize(): ${t}, expected Number`);if(t<1)throw new RangeError(`Out of range value returned from onBeforeResize(): ${t}, must be at least 1`);return t}(n):n;return ue(o>=1,`New iframe ${e.label} is too small: ${o}, must be at least 1`),o}let Rn=!1;const xn=J(()=>we(U(4)));let An,Ln=!1;const Cn=pe((e,t,n,o,i)=>{switch(he(e),!0){case!0===Qe:if(!0===Ln)break;Ln=!0,Rn=!1,cancelAnimationFrame(An),An=null;break;case!0===Rn&&e!==x:ge();break;case!$e&&!(e in k):de("Resizing disabled");break;default:Ln=!1,Rn=!0,performance.now(),An||(An=requestAnimationFrame(()=>{Rn=!1,An=null,he("requestAnimationFrame")})),function(e,t,n,o,i){const a=n??Nn(Hn,Ve),s=o??Nn(jn,ht);switch(ke&&kn(Ue,a)||Ne&&kn(pt,s)?M:e){case r:case E:case M:Ue=a,pt=s;case N:Pn(Ue,pt,e,i);break;case x:case A:case R:case L:ge();break;default:ge(),de("No change in content size detected")}}(e,0,n,o,i)}me()});function Gn(e){Ue=Hn[Ve](),pt=jn[ht](),Dn(Ue,pt,e)}function Pn(t,n,o,r,i){Ke<-1||(void 0!==i||(i=ut),function(){const a=`${rt}:${t}:${n}:${o}${void 0===r?"":`:${r}`}`;if(at)try{window.parent.iframeParentListener(C+a)}catch(e){if(1!==Ke)throw e;return void xn()}else dt.postMessage(C+a,i);de(`Sending message to parent page via ${at?"sameOrigin":"postMessage"}: %c%c${a}`,e.ITALIC,e.HIGHLIGHT)}())}const Dn=pe((e,t,n,o,r)=>{he(n),Pn(e,t,n,o,r),me()}),Bn=pe(function(e){he("onMessage");const{freeze:t}=Object,{parse:n}=JSON,i=e=>Dn(0,0,`${e}Stop`),a={init:function(){if("loading"===document.readyState)return;const t=e.data.slice(13).split(o);dt=e.source,re=e.origin,It(t),xe=!1,setTimeout(()=>{Je=!1},128)},reset(){Je||Gn("resetPage")},resize(){Cn(j,"Parent window requested size check")},moveToAnchor(){_e.findTarget(d())},inPageLink(){this.moveToAnchor()},pageInfo(){const e=d();$t?Z($t,n(e)):i(s)},parentInfo(){const e=(o=d(),t(n(o)));var o;Ot?Z(Ot,e):i(c)},message(){const e=d();Z(zt,n(e))}},l=()=>e.data.split("]")[1].split(o)[0],d=()=>e.data.slice(e.data.indexOf(o)+1),u=()=>e.data.split(o)[2]in{true:1,false:1};function m(){const t=l();he(t),t in a?a[t]():"iframeResize"in window||void 0!==window.jQuery&&""in window.jQuery.prototype||u()||be(`Unexpected message (${e.data})`)}C===`${e.data}`.slice(0,13)&&function(){if(!1!==xe)return u()?(ye(l()),he(r),void a.init()):void 0;m()}()});let qn=!1;const Fn=e=>e.postMessage("[iFrameResizerChild]Ready",window?.iframeResizer?.targetOrigin||"*");function Wn(){if("loading"===document.readyState||!xe||qn)return;const{parent:e,top:t}=window;he("ready"),Fn(e),e!==t&&Fn(t),qn=!0}"iframeChildListener"in window?be("Already setup"):(window.iframeChildListener=e=>setTimeout(()=>Bn({data:e,sameOrigin:!0})),he("listen"),Pe(window,i,Bn),Pe(document,I,Wn),Wn())}();